一、tracert工作过程分析

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 工作过程分析
PING (Packet Internet Groper),因特网包探索器,用于测试网络连接量的程序。Ping发送一个ICMP echo请求消息给目的地并报告是否收到所希望的ICMP echo (ICMP回声应答)。它是用来检查网络是否通畅或者网络连接速度的命令。原理:利用网络上机器IP地址的唯一性,给目标IP地址发送一个数据包,再要求对方返回一个同样大小的数据包来确定两台网络机器是否连接相通,时延是多少。

反馈信息(百度百科)
Request timed out
a.对方已关机
b.对方与自己不在同一网段内,通过路由也无法找到对方
c.对方确实存在,但设置了ICMP数据包过滤(比如防火墙设置)
怎样知道对方是存在,还是不存在呢,可以用带参数 -a 的Ping命令探测对方,如果能得到对方的NETBIOS名称,则说明对方是存在的,是有防火墙设置,如果得不到,多半是对方不存在或关机,或不在同一网段内。
d.错误设置IP地址
Destination host Unreachable
对方与自己不在同一网段内,而自己又未设置默认的路由,或者网络上根本没有这个地址,比如上例中A机中不设定默认的路由,运行Ping 192.168.1.4就会出现“Destination host Unreachable”。
网线出了故障
这里要说明一下“destination host unreachable”和 “time out”的区别,如果所经过的路由器的路由表中具有到达目标的路由,而目标因为其他原因不可到达,这时候会出现“time out”,如果路由表中连到达目标的路由都没有,那就会出现“destination host unreachable”。
Bad IP address
这个信息表示您可能没有连接到DNS服务器,所以无法解析这个IP地址,也可能是IP地址不存在。
Source quench received
这个信息比较特殊,它出现的机率很少。它表示对方或中途的服务器繁忙无法回应。
Unknown host——不知名主机
这种出错信息的意思是,该远程主机的名字不能被域名服务器(DNS)转换成IP地址。故障原因可能是域名服务器有故障,或者其名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。
No answer——无响应
这种故障说明本地系统有一条通向中心主机的路由,但却接收不到它发给该中心主机的任何信息。故障原因可能是下列之一:中心主机没有工作;本地或中心主机网络配置不正确;本地或中心的路由器没有工作;通信线路有故障;中心主机存在路由选择问题。
Ping 127.0.0.1:127.0.0.1是本地循环地址
如果本地址无法Ping通,则表明本地机TCP/IP协议不能正常工作。
no rout to host:网卡工作不正常
transmit failed,error code:10043网卡驱动不正常
unknown host name:DNS配置不正确

参数详解

-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重组。
————————————————
版权声明:本文为CSDN博主「Tasfa」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_30135181/java/article/details/50992151

发表评论

邮箱地址不会被公开。 必填项已用*标注