概念

ping是用来检测网络是否通畅或者网络连接速度的命令。

工作原理:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。
即主要看:第一是不是超时;第二是不是延时太高

Ping发送一个ICMP(Internet Control Messages Protocol,因特网信报控制协议);回声请求消息给目的地并报告是否收到所希望的ICMPecho (ICMP回声应答)。

具体过程

环境准备:

  • A电脑(IP地址: 192.168.2.135 / MAC地址: 98:22:EF:E8:A8:87)
  • B电脑(IP地址: 192.168.2.179 / MAC地址: 90:A4:DE:C2:DF:FE)

流程如下:

  • A 电脑( 192.168.2.135)发起 ping请求, ping192.168.2.179
  • A 电脑广播发起 ARP请求,查询 192.168.2.179的 MAC地址。
  • B 电脑应答 ARP请求,向 A电脑发起单向应答,告诉 A电脑自己的 MAC地址为 90:A4:DE:C2:DF:FE
  • A电脑知道了 MAC地址后,开始进行真正的 ping请求,由于 B电脑可以根据A电脑发送的请求知道
    源 MAC地址,所以就可以根据源 MAC地址进行响应了。

流程图:
Ping命令的具体过程
Ping 4次请求和响应结束后,还有一次 B电脑对 A电脑的 ARP请求,原因如下:

  • 由于 ARP有缓存机制,为了防止 ARP过期,结束后重新更新下 ARP缓存,保证下次请求能去往正确的路径,如果 ARP过期就会导致出现一次错误,从而影响测试准确性。
  • 由于 ping命令的响应时间是根据请求包和响应包的时间戳计算出来的,所以一次 ARP过程也是会消耗时间。这里提前缓存最新的 ARP结果就是节省了下次 ping的 ARP时间。

文字描述:

首先源主机会查看自己的MAC地址表,看看有没有目的主机的地址;
如果没有则源主机会向外部发送ARP广播包(ICMP数据包);
当交换机接收到报文后,会查询交换机的MAC地址表,如果有目的主机的MAC地址,则直接返回给源主机;
如果没有,交换机会向所有端口发送ARP广播,其他端口上的主机发现以后,如果目标不是自己,就会丢弃报文;
直到目的主机收到报文后,会响应自己的MAC地址是多少,同时学习源主机的MAC地址,并按照同样的格式报文返回源主机。

总结

ping命令是依托于 ICMP协议的, ICMP协议的存在就是为了更高效的转发 IP数据报和提高交付成功的机会。 ping命令除了依托于 ICMP,在局域网下还要借助于 ARP协议, ARP协议能根据 IP地址反查出计算机的 MAC地址。另外 ARP是有缓存的,为了保证 ARP的准确性,计算机会更新ARP缓存。

相关文章:

  • 2021-11-19
  • 2022-02-07
  • 2021-05-10
  • 2021-05-24
  • 2021-10-12
  • 2021-10-28
猜你喜欢
  • 2022-01-11
  • 2021-04-07
  • 2021-06-22
  • 2021-10-11
  • 2021-03-31
  • 2022-12-23
相关资源
相似解决方案