一、IP数据包的交换转发 PC1 ping PC2 过程分析
pc1的ip地址为1.1.1.1,pc2的ip地址为1.1.1.2,两者通过交换机sw1连接。
在pc1上ping pc2,即pc1向 pc2发起icmp请求。此时pc1上生成一个icmp请求报文,来判断pc2的存在性(根据数据包封装原理,要生成icmp请求需要有目的IP地址和目的MAC地址,此处即pc2的地址,其中pc2的ip地址是pc1上发起ping时我们写入的。因此需要找到pc2的MAC地址即可。
即:pc1若要将这个ICMP协议封装的请求发送给目标主机pc2就必须要使用IP协议来“运输”该请求。这样,IP协议这个时候就充当了一个邮差的角色,将ICMP这个数据包写上发送者(pc1)的IP地址和接收者(pc2)的IP地址,然后就可以根据这个目标地址(pc2的地址)来“投递”这个数据包了)。
在pc1封装的时候pc1会查看自己的arp表中是否有pc2的MAC地址,由于是一个新连接的网络,pc1发现自己没有pc2的MAC地址,但是icmp请求报文又必须需要。
1)pc1会生成一个arp请求包,请求pc2的MAC地址(pc1触发ARP协议来请求pc2的MAC地址,补全自己的arp表项)。arp请求包的目的MAC(Dst MAC)为全f,全f的MAC地址是广播MAC,能在自己的广播域中达到任何一个网口上,arp请求包广播出去后到达交换机sw1。