关于TTL值

IP包被路由器丢弃之前允许通过的最大网段数量。虽然意思是生存时间,但看这个解释是不是有点让人摸不清头脑?

载图1。

  

iostat正常值 pingttl值_IP

TTL是43,那么TTL值原来的值是多少?我们访问百度的服务器到底经过了多少个路由器呢?

 

  (1)关于操作系统设置的TTL默认值

  要想知道TTL原来的值是多少还是比较简单的,我目前知道两个办法。

  第一种就是ping一下同一个局域网的某台主机,不要经过三层路由器的PC主机,然后看看这个TTL值,就可以清楚的知道这个系统默认设置的TTL值。可以看到截图TTL值是64,截图2。

  

iostat正常值 pingttl值_系统设置_02

 

  第二种就是在window操作系统的注册表中,可以查到这个默认值。

  TTL值的注册表位置 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters ,其中有个DefaultTTL的DWORD值,其数据就是默认的TTL值。可以看到载图TTL值是16进制的40,十进制就是64这就是系统默认的TTL值。那就已经回答了第一个问题TTL的原来的系统默认值的问题,当然这个系统的默认值是可以修改的,可以修改成多少,等下我们后面再说,截图3。

  

iostat正常值 pingttl值_系统设置_03

 

  (2)访问某网站我们经过了多少路由器转发

  要回答这个问题,我们开动一下脑子,我又使用tracert命令追踪到达www.baidu.com的路由,我们看看截图4,追踪的结果是20跳,基实从截图1数到截图3也可以得出43至64,这两个值间的距离是20。

  

iostat正常值 pingttl值_默认值_04

 

  (3)TTL值可以设置的范围是什么呢?

而win7系统的默认设置是64跳。

  

iostat正常值 pingttl值_IP_05

 

  (4)比较值得意考的问题

  就是在城域网或局域网内,这个TTL值可能会被相关的路由器设成最大值,这是我在测试中发现的,但是到了广域网TTL值都遵循操作系统的默认值来计算路由器的跳数值了,这是为什么,大家自己思考一下。收工!