Linux ping TTL是什么
本地主机通过网络连接目标主机时,通常不是直连,中间会经过路由器,而且通常会经过多个路由器。
TTL表示中间经过路由器的个数情况。
TTL = TTL默认值 - 经过路由器个数
TTL默认值由Linux系统默认设置,ping不同域名时而且可能不同,一般是2的N次方,通常是64、128,最大值为255。
数据包每经过1个路由器,则TTL减1;当TTL减为0,则数据包被丢弃,避免网络中的死循环传递。
经过路由器个数越少,TTL相对越大(因为默认值可能不同),网络状况更好。
1 Linux中查看TTL
本人VMWare虚拟机测试的TTL值始终为默认值,没有减去经过路由器个数。
以下测试在阿里云服务器上测试。
ping www.baidu.com
TTL为53,TTL默认值基本确定为64,则经过路由器数量=64-53=11。
CentOS通过命令进行路由跟踪
安装traceroute工具
yum install -y traceroute
路由跟踪www.baidu.com
traceroute www.baidu.com
其中列出9项路由,与上述TTL值一致。
ping必应
ping www.bing.com
其中TTL值为111,则基本判断TTL默认值为128,经过路由器数=128-111=17。
traceroute www.bing.com
查询路由项为15。基本一致。
2 Windows中查看TTL
因为虚拟机中查看TTL不准,为便于大家理解TTL,介绍在Windows中查看TTL。
以下操作均在本地Windows中操作。
Win + DOS 启动DOS窗口。
ping www.baidu.com
TTL为49,经过路由器数=64-49=15。
路由跟踪
tracert www.baidu.com
图示共16条路由,与上述数据基本一致。