我们日常的大多数网络应用中,属于数据链路层的 MAC
地址,和属于网络层的 IP
地址都在使用,它们之间存在一定的关系。这里主要介绍 IP
地址的作用
IP
地址是因特网(Internet)上的主机和路由器所使用的地址,用于标识两部分信息:
网络编号
:标识因特网上数以百万计的网络主机编号
:标识同一网络上不同主机(或路由器各接口)例如:
给网络 N8
上的两台主机个分配了一个 IP
地址
给路由器 R4
连接该网络的接口也分配了一个 IP
地址
IP
地址的前三个十进制数是相的,也就是网络 N8
的编号N8
上各主机和路由器接口的编号IP
地址的网络号部分应该相同,而主机号部分各不相同网络 N9
也同理
因特网中不同网络的网络编号必须各不相同
注意:网络上哪部分是主机编号,哪部分是网络编号并不都和本例相同
很显然:MAC
地址不具备区分不同网络的功能,而 IP
地址具备这样的功能
MAC
地址(这不是一般用户的应用方式)。IP
地址和 MAC
地址都需要使用。 MAC
地址则不知道它是哪个网络上的网络层首部中应该封装有源 IP
地址和目的 IP
地址
数据链路层首部中应该封装有源 MAC
地址和目的 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
数据包转发过程中源IP地址和目的IP地址保持不变;\color{red}源 IP 地址和目的 IP 地址保持不变;源IP地址和目的IP地址保持不变;
数据包转发过程中源MAC地址和目的MAC地址逐个链路(或逐个网络)改变。\color{red}源 MAC 地址和目的 MAC 地址逐个链路(或逐个网络)改变。源MAC地址和目的MAC地址逐个链路(或逐个网络)改变。
对于本例:主机 H1
,路由器 R1
和 R2
都存在一个共同的问题
IP
地址,但不知道其相应的 MAC
地址如何通过 IP
地址找出其对应的 MAC
地址(ARP
所要实现的功能)
答案 D
上一篇:mysql基础知识篇(一)
下一篇:内存取证——ABC包