大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。
Jetbrains全系列IDE稳定放心使用
网络基础
前言
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://blog.csdn.net/qq_35733751/article/details/80053091
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/189712.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...