? Ping基于ICMP协议。
? Ping可以分为 内网Ping 和 外网Ping
? 下面以内网Ping为例,使用的软件是eNSP和WireShark
?
? Step1.创建拓扑,PC A和PC B在同一网段内。
?
? PC-A若要Ping PC-B,就要进行数据链路层的报文封装。首先PC-A查看MAC表,若没有查到PC-B的MAC地址,就会发送ARP广播包。交换机收到ARP广播包后,会检查自己MAC地址表有没有PC-B的MAC地址,如果有,就返回;如果没有,则向交换机的端口发送ARP广播包,如果该交换机的端口上还连接了PC-C、PC-D等多个主机,那么与该交换机连接的主机在收到APR后,会检查交换机是否在找自己,若不是找自己,则丢弃。PC-B就会接收ARP广播包,然后响应,告诉交换机PC-B的MAC地址,同时PC-B拥有了PC-A的MAC地址。交换机在收到PC-B的MAC地址后将会转发给PC-A。
? Step2.PC-A ping PC-B,Wireshark数据抓包
? Request
上图:PC-A 192.168.10.2没有查到PC-B的MAC地址(因为Target MAC address: Broadcast (ff:ff:ff:ff:ff:ff)),于是发送了ARP广播包(谁有192.168.10.3的MAC地址,请告诉192.168.10.2)。
?
? Reply
? 上图:PC-B收到了ARP广播包,发现是在询问自己的MAC,于是响应发送自己的MAC给PC-A
? 构造ICMP数据报,建立连接
? ICMP相关内容可参考
原文:https://www.cnblogs.com/joshuaq/p/14773678.html