1.ping
ping使用了ICMP回送请求和回送应答报文。ping工具发出去的数据包没有通过tcp/udp协议,但是要经过ip协议。ping命令计算的时间是数据包的往返总时间。
ping命令常用的选项如下:
- -c num ——表示使用ping发出去num个数据包
- -n ——表示ping的输出中包含主机信息的都用ip表示,不在进行ip和主机名之间的映射,那样ping的响应速度会更快
- -s packetsize ——指定ping发出去的数据包的大小,单位是B. 如果不配置此选项将默认为56B
- -t ttl ——设定数据包在网络上传输的Time To Live(TTL)生命周期
- -f ——快速ping,Flood ping,发送接收ICMP Echo报文的频率快了非常多
举例如下:
- ping -c 3 -s 512 www.baidu.com #表示向www.baidu.com发送3个512B大小的数据包,来进行网络探测
- ping -f www.baidu.com #快速ping
2.traceroute
traceroute也是使用ICMP协议,使用了ICMP的时间超过差错差错报告报文以及ICMP终点不可达报文。对于ICMP协议,其原理为:
traceroute的重要选项有:
- -U ——使用UDP协议来探测,这是默认的检测协议。
- -I ——使用ICMP协议来探测
- -T ——使用TCP协议来探测
使用举例如下:
- traceroute www.baidu.com
备注,使用traceroute返回的每行信息中有三个时间值,那是因为对于每个节点或者路由器,源端发了三次探测请求。
3.mtr
在Linux中有一个更好的网络连通性判断工具,它可以结合ping | nslookup | tracert 来判断网络的相关特性,这个命令就是mtr
使用格式:
- mtr [options] hostname
常用的选项:
- -r ——将mtr设置为报告模式,追踪结果以报告模式输出。若没有-r显现,那么将进入mtr的实时交互模式。
- -c num ——定义追踪的次数,每次是1s,且-c必须和-r配合使用,默认的10次。
使用举例:
(1)mtr的实时显示模式
- mtr 202.108.33.94
- [root@10.10.90.97 ~]# mtr -r 202.108.33.94
- FOCUS9097 Snt: 10 Loss% Last Avg Best Wrst StDev
- 220.181.61.252 0.0% 6.8 3.3 1.8 7.4 2.2
- 220.181.17.217 0.0% 0.4 0.5 0.4 0.7 0.1
- 220.181.16.17 0.0% 0.6 0.5 0.5 0.6 0.0
- 202.97.53.14 10.0% 0.7 0.7 0.7 0.8 0.0
- 219.158.35.1 0.0% 0.8 0.8 0.8 0.9 0.0
- 219.158.5.81 0.0% 1.2 1.3 1.2 1.6 0.1
- 123.126.0.138 0.0% 1.2 1.1 1.1 1.3 0.1
- 61.148.153.126 0.0% 1.9 10.5 1.5 89.9 27.9
- 61.148.143.22 0.0% 1.5 1.6 1.5 1.7 0.0
- 210.74.178.198 0.0% 1.6 1.6 1.5 1.9 0.1
- 202.108.33.94 0.0% 1.5 1.5 1.4 1.5 0.0
第一列:显示的是IP地址和本机域名,这点和tracert很像
第二列:snt:10 设置追踪的次数,默认值是10 可以通过参数 -c来定制,例如mtr -r -c 15 202.108.33.94
第三列 Loss: 是显示的每个对应IP的丢包率
第四列 Last: 显示的最近一次的返回时延
第五列 Avg : 是平均值 这个应该是发送ping包的平均时延
第六列 Best: 是最好或者说时延最短的
第七列 Wrst: 是最差或者说时延最常的
第八列 StDev: 是标准偏差