ping和traceroute的原理以及实战并抓包分析
Ping程序
ping程序是测试另一个主机是否可达的常用程序。 ping程序的原理就是发送一个ICMP报文给主机,等待返回的ICMP回显应答。
【ICMP协议:用来在网络中传递包括网络不同、不可达等控制信息】
基于ICMP的ping常用来检测网络是否可通以及大致估计网络的速度。通常用ping检测网路时,首先直接ping目标主机,如果不能ping通则大多数情况下说明网络是有问题的。通常检测网络可以按照这个顺序:先ping自己,再ping自己的网关,再ping自己的DNS,然后就可以ping远程主机,通过该顺序可以定位到问题所在的部分。
ping程序通过在ICMP报文数据中存放发送请求的时间值来计算往返时间。当应答返回时,用当前时间减去存放在ICMP报文中的时间值,得到往返时间。
分析:可以看到目标地址的IP地址,以及该ping包是否返回,还有时间,根据时间也可以大致估计网络速度。
wireshark抓ping包分析:
请求报文: