Windows系统命令行(cmd)常用重要网络命令之tracert

Windows系统命令行(cmd)常用重要网络命令之tracert用法:

tracert(traceroute)是一个常用的网络工具,用于追踪分析数据包在网络中传输时经过的路径,并输出到目标地址的延迟情况和节点信息;基于ICMP协议来实现的,当网络出现故障时,可以使用Tracert确定出现故障的网络节点;原理就是利用UDP+ICMP不可达消息

在命令行中输入tracert /?,如下图所示:

tracert /?

假设你要追踪分析百度的 IP 地址的路由信息,可以使用以下命令:

tracert baidu.com

tracert 百度 默认是IPv6

tracert -4 baidu.com

tracert -4 使用IPv4

备注:大家觉得奇怪,为什么ping或tracert百度,都指向了www.a.shifen.com。多个域名指向同一台机器,如果都是A记录的话,管理起来比较麻烦。假如要更换IP,需要同时更新多个域名的记录。所以发明了所谓的 canonical name 记录,中文叫权威域名记录,也就是 CNAME。其本意是从同一台机器的众多域名中选一个做主域名,其他的域名通过设置 CNAME 记录指向主域名。CName记录是Canonical Name的简称,称别名指向。

红框内为权威域名


Tracert原理

1:发送一个UDP报文,TTL值为1

向目的端主机发送一个UDP报文,TTL值为1,目的UDP端口号是大于30000的一个数,目的端收到源端发出的UDP报文后,判断出报文的目的IP地址不是本机IP地址,将TTL值减1后,判断出TTL值等于0,则丢弃报文并向源端发送一个ICMP超时(Time Exceeded)报文,这样源端就得到了第1跳的地址。

2:发送一个UDP报文,TTL值为2

源端收到第1步的ICMP超时报文后,再次向目的端发送一个UDP报文,TTL值为2,第二跳收到源端发出的UDP报文后,回应一个ICMP超时报文,这样源端就得到了第2跳的地址。

N:发送一个UDP报文,TTL值为N

以上过程重复进行,直到目的端收到源端发送的UDP报文后,判断出目的IP地址是本机IP地址,则处理此报文。根据报文中的目的UDP端口号寻找占用此端口号的上层协议,因目的端没有应用程序使用该UDP端口号,则向源端返回一个ICMP端口不可达(Destination Unreachable)报文。源端收到ICMP端口不可达报文后,判断出UDP报文已经到达目的端,则停止Tracert程序,从而得到数据报文从源端到目的端所经历的路径。

举报
评论 0