在发送icmp包的时候三层头不会变化,而二层头的目的地mac会发生变化,变为网关的mac
在icmp发送跨网段数据包的时候,需要先发送arp请求报文获取网关的mac
pc1 to switch:
|aa:aa:aa:11|??:??:??:??|192.168.1.2|192.168.2.2|
// 这个时候pc1还不知道目的mac,需要发送arp报文请求
arp 请求 switch:
|aa:aa:aa:11|FF:FF:FF:FF:FF:FF|aa:aa:aa:11|192.168.1.2|00:00:00:00|192.168.1.1|
switch 应答 arp:
aa:aa:aa:44|aa:aa:aa:11|aa:aa:aa:44|192.168.1.1|aa:aa:aa:11|192.168.1.2|
这个时候在pc1就会学习到网关的arp表,icmp包中的目的mac就会填入网关的mac,aa:aa:aa:44
icmp:
|aa:aa:aa:11|aa:aa:aa:44|192.168.1.2|192.168.2.2|
假如在switch和pc2之间还有一台设备的话,需要继续发送一次arp来或获取到下一条设备的mac地址,然后icmp包的目的mac改为这次arp获取到的mac
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。