Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。
首先,tracert送出一个TTL是1的IP 数据包到目的地,当路径上的第一个路由器收到这个数据包时,它将TTL减1。此时,TTL变为0,所以该路由器会将此数据包丢掉,并送回一个「ICMP time exceeded」消息(包括发IP包的源地址,IP包的所有内容及路由器的IP地址),tracert 收到这个消息后,便知道这个路由器存在于这个路径上,接着tracert 再送出另一个TTL是2 的数据包,发现第2 个路由器...... tracert 每次将送出的数据包的TTL 加1来发现另一个路由器,这个重复的动作一直持续到某个数据包 抵达目的地。当数据包到达目的地后,该主机则不会送回ICMP time exceeded消息,一旦到达目的地,由于tracert通过UDP数据包向不常见端口(30000以上)发送数据包,因此会收到「ICMP port unreachable」消息,故可判断到达目的地。
tracert 有一个固定的时间等待响应(ICMP TTL到期消息)。如果这个时间过了,它将打印出一系列的*号表明:在这个路径上,这个设备不能在给定的时间内发出ICMP TTL到期消息的响应。然后,Tracert给TTL记数器加1,继续进行。
图4-5-1 Tracert命令
图4-5-2 Tracert发送的数据包 (TTL递增顺序)
图4-5-3 Tracert接收的数据包
PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP echo请求消息给目的地并报告是否收到所希望的ICMP echo (ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令。原理:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。
参数详解
-a 解析计算机NetBios名。
-n count 发送count指定的Echo数据包数
-l size . 定义echo数据包大小
-f 在数据包中发送“不要分段”标志
-i TTL 指定TTL值在对方的系统里停留的时间
-r count 在“记录路由”字段中记录传出和返回数据包的路由
-w timeout 指定超时间隔,单位为毫秒
-t--连续对IP地址执行Ping命令,直到被用户以Ctrl+C中断
-j host-list 利用 computer-list 指定的计算机列表路由数据包。
图4-5-4 ping数据包
结果分析:
这里发送4个ping数据包,wireshark也是抓到8个数据包,其中包含请求与响应数据包
图4-5-5 ping分片重组数据包
结果分析:这里使用命令:ping www.tasfa.cn -l 30000 -n 1 即发送一个大小为30000字节的ICMP数据包(Ping);由于每个数据包最大数目为1514(1514bytes = 1480(icmp数据) + 20(ip头) +14(以太网))所以需要分片重组,由图4-5-5可知ip数据包在#25重组。