TCP / IP堆栈中的链路层是否根据目的地的IP地址得出要接收数据包的NIC的MAC地址?

时间:2019-02-13 18:11:26

标签: tcp

我试图了解TCP / IP堆栈中不同层的功能,我只想澄清一下链路层如何派生NIC的MAC地址以接收数据包。

1 个答案:

答案 0 :(得分:1)

这本身不是TCP / IP的功能。而是在IPv4中使用ARP(地址解析协议)将目标IP地址转换为正确的MAC地址。

这是通过堆栈来完成的,方法是首先将目标与配置的网络掩码进行比较,确定交付是否是本地的(在子网内)。如果它是本地的,则将使用ARP在链路层生成广播帧,尝试将已知IP地址解析为已知MAC地址。

另一方面,如果确定目标IP地址不在本地子网上,则ARP协议将用于在链路层发送广播ARP以发现应使用的路由器的MAC地址。基于已配置的路由表。

使用IPv6,可以消除ARP,并使用ICMP6上的邻居发现协议将其替换为多播(更具体地说,是请求的节点多播)。