一、ping 命令
ping 通常用来检测网络连通性,使用的是ICMP协议
ICMP协议
它是TCP/IP协议族的一个子协议,用于在IP主机,路由器之间传递控制消息。控制消息指网络通不通,主机可否达,路由是否可用等。ping命令就是ICMP协议工作的过程。
使用
ping www.baidu.com
执行结果说明
可以看到是从14.215.177.39返回过来的信息,数据包的大小是32个字节,时间是5、6ms,TTL是54
TTL(Time To Live)的值默认一般有3个,分别是:64、128、255。64 说明是Linux主机,128 说明是Windows主机,255 说明是路由器。需注意,这个定义也不太准确,比如,可以修改注册表修改这个值。执行 ping www.baidu.com 的结果中TTL是54,可以说明,网络经过了 64-54=10 台路由器(可以用 tracert 命令确认一下),为什么是用64去减,不是128或者255呢?因为一个网络中路由器的个数不会超过50台。
tracert 和 traceroute 都是用来探测数据包经过网络路径的工具
tracert 是 Windows 下的测试工具
traceroute 是 Linux 下的测试工具
二、tracert
打开CMD命令窗口,输入 tracert /? 查看该命令的用法
工作原理
可以参考百度百科:https://baike.baidu.com/item/Tracert%E5%91%BD%E4%BB%A4/7680170
使用
tracert -d www.baidu.com
三、traceroute
在Linux终端输入 traceroute --help 或者 man traceroute 查看该命令的用法
工作原理
可以参考百度百科:https://baike.baidu.com/item/Traceroute
使用
traceroute -m 10 www.baidu.com # 跳数设置
traceroute -n www.baidu.com # 显示IP地址,不查主机名
traceroute -p 6888 www.baidu.com # 探测包使用的基本UDP端口设置6888
traceroute -q 4 www.baidu.com # 把探测包的个数设置为值4
traceroute -r www.baidu.com # 绕过正常的路由表,直接发送到网络相连的主机
traceroute -w 3 www.baidu.com # 把对外发探测包的等待响应时间设置为3秒