数据链路层负责在物理层提供的比特流上建立逻辑连接,实现点对点或点对多点的数据传输。数据链路层中有两种重要的地址:IP地址和MAC地址。
IP地址是网络层提供的逻辑地址,它标识了网络中的主机或路由器。IP地址可以根据网络拓扑变化而改变,它是网络层实现路由选择和分组转发的依据。
MAC地址是数据链路层提供的物理地址,它标识了网络中的网卡或接口。MAC地址是固定不变的,它是数据链路层实现帧的封装和解封装的依据。
IP地址和MAC地址的作用是相互补充的,它们共同实现了从源主机到目的主机的数据传输。在同一局域网内,数据链路层可以直接根据MAC地址发送帧;在不同局域网之间,数据链路层需要借助网络层根据IP地址找到下一跳的MAC地址,然后发送帧。
IP地址和MAC地址之间可以通过ARP协议进行映射。
数据包转发时IP地址与MAC地址变化情况
当数据包从一个网络传输到另一个网络时,它需要经过路由器的转发。路由器根据数据包的目的IP地址,查找路由表,决定将数据包转发到哪个接口。在转发过程中,数据包的源IP地址和目的IP地址不会改变,但是源MAC地址和目的MAC地址会改变。源MAC地址会变成路由器接口的MAC地址,目的MAC地址会变成下一跳设备的MAC地址。(图截自湖科大教书匠视频)
ARP协议
ARP协议是一种用于在局域网中根据IP地址获取MAC地址的协议。它通过发送ARP请求和ARP应答报文来实现地址解析的功能。
ARP请求报文是以广播方式发送的,目标MAC地址为全0,目标IP地址为要查询的IP地址。ARP应答报文是以单播方式发送的,源MAC地址和源IP地址为被查询的主机的地址,目标MAC地址和目标IP地址为发送ARP请求的主机的地址。
ARP协议可以维护一张ARP缓存表,用于存储已经解析过的IP地址和MAC地址的映射关系。ARP缓存表可以分为动态ARP表项和静态ARP表项,动态ARP表项可以被老化或更新,静态ARP表项是手工配置的,不会被老化或覆盖。
ARP协议工作流程
当主机B要向主机C发送数据,却发现自己的ARP缓存表中没有与主机C对应的MAC地址时,会通过以下过程来获取( 图截自湖科大教书匠视频):
1. 主机B向网络广播一个ARP请求报文,询问目标主机C的MAC地址。该报文包含了主机B的IP地址和MAC地址,以及主机C的IP地址。
2. 网络上所有主机收到该报文后,检查自己的IP地址是否与主机C的IP地址相同。如果不同,则丢弃该报文;如果相同,则回复一个ARP应答报文(单播),告知主机A自己的MAC地址,同时根据源MAC地址,将主机B的IP地址和MAC地址存入自己的ARP缓存表中,以便后续通信。
3. 主机B收到ARP应答报文后,将主机B的IP地址和MAC地址存入自己的ARP缓存表中。
文章来源:https://www.toymoban.com/news/detail-603527.html
文章来源地址https://www.toymoban.com/news/detail-603527.html
到了这里,关于数据链路层中的IP地址与MAC地址的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!