网络基础


前言

tracert


tracert

简单网络诊断工具,探测数据包从源地址到目的地址经过的路由器IP地址

Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。

实现原理

1、tracert发出TTL值为1的ICMP数据包(40个字节、源地址、目标地址和发出时间标签,一般发3个)

2、当到达路径上第一个路由器时,路由器会将,TTL值减1

3、此时TTL值为0,该路由器将此数据包丢弃,向源地址返回一个ICMP超时通知(数据包的源地址、路由器的IP地址)

4、当tracert收到该数据包,获得了这个路径上的第一个路由器的地址

5、tracert再发送另一个TTL为2的数据包

6、第一个路由器会将此数据包转发给第二个路由器

7、当TTL=0,第二个路由器返回一个超时通知,tracert得到第二个路由器地址

Tracert每次发出数据报时便会将TTL加1,发现下一个路由器

这个动作一直重复,直到到达目的地或者确定目标主机不可到达为止

到达目的IP后,目标主机并不返回超时报文

Tracert发送数据报时,会选择一个一般应用程序不会使用的号码来做端口(3000以上)

当到达目的地后,目标主机返回一个ICMP port unreachable(端口不可达)的消息

当tracert收到这个消息后,就知道目的地到达了

Tracert会提取ICMP的超时回应数据报中的IP地址并作主机名解析
(用-d参数表示不解析主机名,解析主机名会耽误一些时间),

然后将所经过的路由器的主机名及IP地址、数据报每次往返花费的时间显示出来。
Tracert有一个固定的等待响应时间,如果这个时间过了
tracert就会输出“*”来表示某个设备没有在规定的时间内作出响应,然后tracert会将TTL值加1,继续进行检测。

ICMP差错报文

1、终点不可达

2、端口不可达

3、源点抑制

给IP提供一种流量监控的机制

ICMP源点抑制机制并不能控制流量大小,但能根据流量使用情况,给源主机提供一些建议

作用:

通知数据报在拥塞时被丢弃了

还会警告源主机流量出现了拥塞的情况,然后源主机然后源主机根据反馈的ICMP源点一直报文信息做出处理

4、ICMP超时报文

  • 当路由器接收到的数据报的TTL生命周期字段值为0时,路由器会把该数据报丢掉,并向源主机发回一个ICMP超时报文

  • 当目标主机在规定时间内没有收到所有的数据分片时,会把已收到的所有数据分片丢弃,向源主机发回一个ICMP超时报文

什么时候会发送ICMP超时报文呢?

比如:当路由器R4收到数据报文TTL减1后值为0的话,那么路由器R4会丢弃该数据报文,然后向主机A发送一个ICMP超时报文。如图所示:

在这里插入图片描述

当主机A给主机B发送一个数据报文时,该数据报文在网络中会有一个TTL生存时间字段,就是数据报文每经过一台路由器,TTL字段值就会减1,当路由器收到数据报文后TTL字段值减1后为0的话,那么该路由器就会把数据报丢弃并向主机A发回一个ICMP超时报文,这种机制有效的防止了路由环路,也就是解决了数据报在路由器之间一直转圈的问题。

在实际情况中会出现TTL=55 TTL=118
因为生命周期的初始值:255、128、64对于不同系统有不同的TTL初始值
实际TTL=初始值减去经过的路由器

使用方法1

1、打开命令行
2、输入tracert 后面加域名

在这里插入图片描述

DNS自动将域名转换为IP地址,查出途径的路由器信息

带*号的信息表示该次ICMP包返回时间超时

从左到右五条信息

TTL “生存时间”(每途径一个路由器节点自增1)

三次发送的ICMP包返回时间

途经路由器的IP地址

使用方法2

在这里插入图片描述

tracert URL -h 5

在tracert命令与URL(或IP地址)之间输入-h 5

在这里插入图片描述
只在追踪5个路由器

在这里插入图片描述

参考资料:

https://cn.bluehost.com/blog/

https://blog.csdn.net/qq_35733751/article/details/80053091

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐