我正在我的Linux系统上运行ping。我检查了系统上的默认TTL:
i@cloudshell:~$ sudo sysctl -a | grep ttl
net.ipv4.ip_default_ttl = 64我试着点击1.1.1.1,一切都很正常:
i@cloudshell:~$ ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
64 bytes from 1.1.1.1: icmp_seq=1 ttl=54 time=7.75 ms
64 bytes from 1.1.1.1: icmp_seq=2 ttl=54 time=7.26 ms但是,当我尝试ping 8.8.8.8时,我得到一个大于默认TTL的TTL:
i@cloudshell:~$ ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=1 ttl=114 time=1.15 ms
64 bytes from 8.8.8.8: icmp_seq=2 ttl=114 time=1.36 ms我正在考虑的任何路由器在中途,是否会增加的TTL?这有可能吗?据我所知,路由器应该总是减少TTL,而不是增加。
发布于 2021-01-31 21:10:43
我认为ping正在从服务器返回响应包上向您显示TTL。Pings不仅仅是一个回波,您ping的服务器读取ping请求并返回一个匹配的响应,这是一个具有新TTL的新数据包。
默认情况下,路由器将从每个数据包的TTL中减去1,并丢弃任何达到0的数据包。这就是TTL的全部要点。
从理论上讲,路由器增加TTL是可能的,但我不知道有任何硬件能够真正做到这一点。它真的可以通过创建无限的路由循环来破坏事物。
您在这里看到的是google (8.8.8.8)和cloudflare (1.1.1.1)减去中间的任何路由器的TTL设置。
https://unix.stackexchange.com/questions/631975
复制相似问题