我试图了解TCP / IP堆栈中不同层的功能,我只想澄清一下链路层如何派生NIC的MAC地址以接收数据包。
答案 0 :(得分:1)
这本身不是TCP / IP的功能。而是在IPv4中使用ARP(地址解析协议)将目标IP地址转换为正确的MAC地址。
这是通过堆栈来完成的,方法是首先将目标与配置的网络掩码进行比较,确定交付是否是本地的(在子网内)。如果它是本地的,则将使用ARP在链路层生成广播帧,尝试将已知IP地址解析为已知MAC地址。
另一方面,如果确定目标IP地址不在本地子网上,则ARP协议将用于在链路层发送广播ARP以发现应使用的路由器的MAC地址。基于已配置的路由表。
使用IPv6,可以消除ARP,并使用ICMP6上的邻居发现协议将其替换为多播(更具体地说,是请求的节点多播)。