物理地址是数据链路层和物理层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址(IP地址是用软件实现的)。
在发送数据时,数据从高层下到底层,然后才到通信链路上传输。使用IP地址的IP数据报一旦交给了数据链路层,就被封装成MAC帧。MAC帧在传送时使用的源地址和目的地址都是硬件地址,这两个硬件地址都写在MAC帧的首部中。
连接在通信链路上的设备(主机或路由器)在收到MAC帧时,其根据是MAC帧首部中的硬件地址。在数据链路层看不见隐藏在MAC帧的数据中的IP地址。只有在剥去MAC帧的首部和尾部后把MAC层的数据上交给网络层后,网络层才能在IP数据报的首部中找到源IP地址和目的IP地址。
总之,IP地址放在IP数据报的首部,而硬件地址则放在MAC帧的首部。在网络层和网络层以上使用的是IP地址,而数据链路层以及以下使用的是硬件地址。在上图中知道,当IP数据报放入数据链路层的MAC帧中以后,整个的IP数据报就成为MAC帧的数据,因而在数据链路层看不见数据报的IP地址。
举例:a画的是三个局域网用两个路由器R1和R2互连起来。现在主机H1要和主机H2通信。这两个主机的IP地址分别是IP1和IP2,而它们的硬件地址分别是HA1和HA2(HA表示hardware address)。通信路径是:
H1->经过R1转发->再经过R2转发->H2。路由器R1因同时连接到两个局域网上,因此它由两个硬件地址,即HA3和HA4。同理,路由器R2也有两个硬件地址HA5和HA6。
这里注意:
1:在IP层抽象的互联网上只能看到IP数据报。虽然IP数据报要经过路由器R1和R2的两次转发,但在它的首部中的源地址和目的地址始终分别是IP1和IP2。图中的数据报上写的从IP1到IP2就表示前者是源地址而后知是目的地址。数据报中间经过的两个路由器的IP地址并不出现在IP数据报的首部中。
2:虽然在IP数据报首部有源站IP地址,但路由器只根据目的站的IP地址的网络号进行路由选择。
3:在局域网的链路层,只能看见MAC帧。IP数据报被封装在MAC帧中。MAC帧在不同网络上传送时,其MAC帧首部中的源地址和目的地址要发生变化。
4:尽管互连在一起的网络的硬件地址体系各不相同,单IP层抽象的互联网却屏蔽了下层这些很复杂的细节。只要我们在网络层上讨论问题,就能够使用统一的,抽象的IP地址研究主机和主机或路由器直接的通信。
阅读(588) | 评论(0) | 转发(0) |