在此回答对于与从操作中解释 TTL 值相关的问题,ping
据说 TTL 值因操作系统而异。我或多或少了解了 TTL 的用途,它主要用于防止网络中出现循环。在每一跳,该值都会减少,当它达到 0 时,如果数据包未到达目的地,则会被丢弃。我不确定这个值是否真的与操作系统或实际路由器或调制解调器或其他东西有关。请解释一下。
我的问题是:我如何找到这些初始值?如果有人能给出详尽的答案(即针对 Windows 和基于 Unix 的操作系统,以及可能使用终端或其他界面),那就太好了。
一种解决方法是 ping 并查看 ttl 值,然后跟踪路由并计算跳数,但这不够精确......
答案1
发送到本地主机的数据包不会经过任何跳数,因此显示的 ttl 将是起始值。
Windows 10
C:\>ping -4 localhost
Pinging Win10Main [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128
....
OpenWrt 15.05
root@OpenWrt:~# ping localhost
PING localhost (127.0.0.1): 56 data bytes
64 bytes from 127.0.0.1: seq=0 ttl=64 time=0.283 ms
...