ping
能够用来检测达到另一个主机的连通性,据此咱们可能:
- 判断网络连接是否通顺;
- 获取某个域名的 IP 地址;
- 依据 time 值获取网络的响应速度;
- 依据 ttl 值判断数据包通过的路由器数量。
macbook:~ aaron$ ping baidu.com
PING baidu.com (220.181.38.148): 56 data bytes
64 bytes from 220.181.38.148: icmp_seq=0 ttl=52 time=32.157 ms
64 bytes from 220.181.38.148: icmp_seq=1 ttl=52 time=34.663 ms
64 bytes from 220.181.38.148: icmp_seq=2 ttl=52 time=32.626 ms
--- baidu.com ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 32.157/32.971/34.663/0.991 ms
以上通过 ping 百度的域名,失去其 IP 地址为 220.181.38.148;响应工夫小于 50 毫秒,阐明网速失常。
后面的文章咱们讲到,在不同的网段间转发数据包是由路由器实现的。这里的 TTL 是 Time To Live 的缩写,示意 IP 包被路由器抛弃之前,容许通过的最大网段数量。不同的操作系统初始值可能不一样,但均为 2 的 N 次方。
这里咱们应用离返回值 52 最近的 2^6 也就是 64 作为初始值,那么途中则通过的路由器数量能够用 64-52=12 来计算失去。
traceroute
用来检测到指标主机之间所通过的路由器数量。首先,它发送一份 TTL(存活工夫)为 1 的数据包给目标主机,解决这个数据包的第一个路由器将 TTL 值减 1,而后抛弃该数据报,并返回一个蕴含路由器 IP 地址的 ICMP 报文,而后顺次减少 TTL 的值持续。
macbook:~ aaron$ traceroute -q 1 114.114.114.114
traceroute to 114.114.114.114 (114.114.114.114), 64 hops max, 52 byte packets
1 192.168.0.1 (192.168.0.1) 2.908 ms
2 192.168.1.1 (192.168.1.1) 3.831 ms
3 58.208.178.1 (58.208.178.1) 5.278 ms
4 218.4.30.205 (218.4.30.205) 7.611 ms
5 221.224.235.61 (221.224.235.61) 7.858 ms
6 10.255.61.9 (10.255.61.9) 8.547 ms
7 61.155.228.158 (61.155.228.158) 13.068 ms
8 *
9 *
这里 - q 示意每次发送一个包,星号示意的行,可能是因为防火墙封掉了 ICMP 的返回信息。