我们日常的大多数网络应用中,属于数据链路层的 MAC
地址,和属于网络层的 IP
地址都在使用,它们之间存在一定的关系。这里主要介绍 IP
地址的作用
1、基本介绍
IP
地址是因特网(Internet)上的主机和路由器所使用的地址,用于标识两部分信息:
网络编号
:标识因特网上数以百万计的网络主机编号
:标识同一网络上不同主机(或路由器各接口)
例如:
-
给网络
N8
上的两台主机个分配了一个IP
地址给路由器
R4
连接该网络的接口也分配了一个IP
地址- 这三个
IP
地址的前三个十进制数是相的,也就是网络N8
的编号 - 最后一个十进制数各不相同,是网络
N8
上各主机和路由器接口的编号 - 换句话说:同一个网络上的各主机和路由器的各接口的
IP
地址的网络号部分应该相同,而主机号部分各不相同
- 这三个
-
网络
N9
也同理
因特网中不同网络的网络编号必须各不相同
注意:网络上哪部分是主机编号,哪部分是网络编号并不都和本例相同
很显然:MAC
地址不具备区分不同网络的功能,而 IP
地址具备这样的功能
- 如果只是一个单独的网络,不接入因特网,可以只使用
MAC
地址(这不是一般用户的应用方式)。 - 如果主机所在的网络要接入因特网,则
IP
地址和MAC
地址都需要使用。- 只使用
MAC
地址则不知道它是哪个网络上的
- 只使用
2、IP 地址和MAC 地址的封装位置
网络层首部中应该封装有源 IP
地址和目的 IP
地址
数据链路层首部中应该封装有源 MAC
地址和目的 MAC
地址
3、数据包转发过程 IP 地址和 MAC 地址的变化情况
为了简单起见,各主机和路由器各接口的 IP
地址和 MAC
地址用比较简单的标识符来表示
- 而并未使用实际的
IP
地址和MAC
地址
假设主机 H1
要给主机 H2
发送数据包
我们忽略除网络层和数据链路层外的其他各层
- 即:可以想象成各网络层进行水平方向的逻辑通信,各数据链路层进行水平方向的逻辑通信
主机 H1
将数据报转发给路由器 R1
在网络层封装的 IP
数据报首部中
- 源
IP
地址应填写主机H1
的IP
地址IP1
- 目的
IP
地址应填写主机H2
的IP
地址IP2
- 也就是从
IP1
发送给IP2
在数据链路层封装的帧首部中
- 源
MAC
地址应填写主机H1
的MAC
地址MAC1
- 目的
MAC
地址应填写路由器 R1
的MAC
地址MAC3
(MAC
地址就是中间的各站) - 也就是从
MAC1
发送给MAC3
路由器 R1
将收到的数据包转发给路由器 R2
在网络层封装的 IP
数据报首部中
- 源
IP
地址应填写主机H1
的IP
地址IP1
- 目的
IP
地址应填写主机H2
的IP
地址IP2
- 也就是从
IP1
发送给IP2
在数据链路层封装的帧首部中
- 源
MAC
地址应填写主机R1
的MAC
地址MAC4
- 目的
MAC
地址应填写路由器 R2
的MAC
地址MAC5
(MAC
地址就是中间的各站) - 也就是从
MAC4
发送给MAC5
路由器 R2
将收到的数据包转发给主机 H2
在网络层封装的 IP
数据报首部中
- 源
IP
地址应填写主机H1
的IP
地址IP1
- 目的
IP
地址应填写主机H2
的IP
地址IP2
- 也就是从
IP1
发送给IP2
在数据链路层封装的帧首部中
- 源
MAC
地址应填写主机R2
的MAC
地址MAC6
- 目的
MAC
地址应填写主机 R2
的MAC
地址MAC2
- 也就是从
MAC6
发送给MAC2
数据包转发过程中 源 I P 地 址 和 目 的 I P 地 址 保 持 不 变 ; \color{red}源 IP 地址和目的 IP 地址保持不变; 源IP地址和目的IP地址保持不变;
数据包转发过程中 源 M A C 地 址 和 目 的 M A C 地 址 逐 个 链 路 ( 或 逐 个 网 络 ) 改 变 。 \color{red}源 MAC 地址和目的 MAC 地址逐个链路(或逐个网络)改变。 源MAC地址和目的MAC地址逐个链路(或逐个网络)改变。
对于本例:主机 H1
,路由器 R1
和 R2
都存在一个共同的问题
- 知道
IP
地址,但不知道其相应的MAC
地址
如何通过 IP
地址找出其对应的 MAC
地址(ARP
所要实现的功能)
4、习题
答案 D