1. 设计目的
“p i n g”这个名字源于声纳定位操作。该程序发送一份I C M P回显请求报文给主机,并等待返回I C M P回显应答
一般来说,如果不能P i n g到某台主机,那么就不能Te l n e t或者F T P到那台主机。反过来,如果不能Te l n e t到某台主机,那么通常可以用P i n g程序来确定问题出在哪里。
P i n g程序还能测出到这台主机的往返时间,以表明该主机离我们有“多远”。
2. 实现原理
我们称发送回显请求的p i n g程序为客户,而称被p i n g的主机为服务器。大多数的T C P / I P实现都在内核中直接支持P i n g服务器—这种服务器不是一个用户进程(I C M P回显请求报文直接在内核中进行处理)。
报文格式:
ping程序每发出一个ICMP 回显请求,都把序号+1
3. ping 实验
3.1 ping 百度实验
ping命令的输出:
jianleya@ubuntu:~$ ping baidu.com
PING baidu.com (220.181.38.148) 56(84) bytes of data.
64 bytes from 220.181.38.148: icmp_seq=1 ttl=128 time=11.6 ms
64 bytes from 220.181.38.148: icmp_seq=2 ttl=128 time=8.27 ms
64 bytes from 220.181.38.148: icmp_seq=3 ttl=128 time=8.17 ms
64 bytes from 220.181.38.148: icmp_seq=4 ttl=128 time=8.21 ms
64 bytes from 220.181.38.148: icmp_seq=5 ttl=128 time=10.5 ms
可分析得到:
从我的主机到baidu服务器经过了(255-128个路由器)
3.2 (以太网链接)测试ARP地址解析时间
如果清空IP-Mac缓存映射,获取Mac地址,需要额外的时间开销
- 清空arp缓存
arp -a - ping baidu.com(比较第一次和后续相应时间)