我们在使用Ping命令的时候,通常关注的是“时间”这个值,忽略“TTL”这个值。但是细心的人会发现,TTL的值不是每次Ping都一样,也不是Ping每个域名都一样,这是什么原因呢?“TTL”又是什么意思呢?可能不少人认为,“TTL”的值越小越好,就像“时间”这个值一样。我以前也是这么认为,只笼统知道“TTL”是“生存时间”(Time To Live)的意思,认为这个值越小越好。事实上是怎样的呢?本文将为你解开疑惑。
“TTL”是生存时间(Time To Live)的意思
首先我们了解一下“TTL”的意思,“TTL”是 Time To Live 的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。这样说可能比较抽象。下面我们看一下Ping命令的数据,如图:
Ping百度服务器
上图,我ping了百度的服务器(windows下默认ping 4次)。
字节代表数据包的大小,时间顾名思义就是返回时间,“TTL”的意思就是数据包的生存时间,当然你得到的这个就是剩余的生存时间。TTL用来计算数据包在路由器的消耗时间,因为现在绝大多数路由器的消耗时间都小于1s,而时间小于1s就当1s计算,所以数据包没经过一个路由器节点TTL都减一。
那么TTL的值一开始是什么呢?不同的操作系统默认下TTL是不同的。默认情况下,Linux系统的TTL值为64或255,Windows NT/2000/XP系统的TTL值为128,Windows 98系统的TTL值为32,UNIX主机的TTL值为255。
上图看到Ping百