简单来说就是打印从你的主机到目标主机所经过的节点
原理就是通过ICMP的差错控制来实现,首先发送TTL =1 的包(IP包)到你的电脑的下一跳的路由器,然后路由器会把TTL-1,即TTL=0,包就被丢掉了,然后会用ICMP来告诉你的电脑,包被我丢掉了。就这样不断重复下去,直到到达目标主机。那么问题来了,如果目标主机收到了这个包,是不会利用ICMP来返回给你的,你是怎么直到这个包到了目标主机的呢?其实这个包用的是UDP 的很大的一个端口,而这个端口一般是不会用的,所以目标主机是会发送说这个端口不可达的信息给你,这样就知道送到了。
常用参数(常用个P,基本就是直接加个地址):
-
-d 使用Socket层级的排错功能。
-
-f 设置第一个检测数据包的存活数值TTL的大小。
-
-F 设置勿离断位。
-
-g 设置来源路由网关,最多可设置8个。
-
-i 使用指定的网络界面送出数据包。
-
-I 使用ICMP回应取代UDP资料信息。
-
-m 设置检测数据包的最大存活数值TTL的大小。
-
-n 直接使用IP地址而非主机名称。
-
-p 设置UDP传输协议的通信端口。
-
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-
-s 设置本地主机送出数据包的IP地址。
-
-t 设置检测数据包的TOS数值。
-
-v 详细显示指令的执行过程。
-
-w 设置等待远端主机回报的时间。
-
-x 开启或关闭数据包的正确性检验
默认是每次对路径上的一台主机发送3个包,然后看返回的包的信息,返回的格式是第几跳+主机名(IP地址)+延时 如果是星号则说明要么被防火墙拦截了,要么有别的什么事情了吧。
网友评论