码迷,mamicode.com
首页 > 其他好文 > 详细

关于PING命令TTL值的理解

时间:2020-11-16 13:43:03      阅读:9      评论:0      收藏:0      [点我收藏+]

标签:字节   efault   ati   def   思考   观察   数值   baidu   bit   

关于TTL值

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

  好那么我们可以看看IP数据包,这个TTL值到底是指什么?结果我干了一件事就是ping了www.baidu.com的域名,我们来看看这个载图1

  技术图片

  从中我们可以知道,www.baidu.com网站应该是做了负载均衡,网站的响应域名是www.a.shifen.com而IP地址是183.232.231.172,这又看到了熟悉的TTL值,这个TTL是43,那么TTL值原来的值是多少?我们访问百度的服务器到底经过了多少个路由器呢?

 

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

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

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

  技术图片

 

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

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

  技术图片

 

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

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

  技术图片

 

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

  要回答这个问题,其实我们光看操作系统的设定值是不准确的,我们应该了解的是IP数据包,TTL值可以设成的值,那么我们抓一个ICMP数据包观察下?从数据包可以看到TTL值占用的长度是1个字节,也就是8bit,那这个值最大可以设置为255,也就是255跳,而win7系统的默认设置是64跳

  技术图片

 

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

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

关于PING命令TTL值的理解

标签:字节   efault   ati   def   思考   观察   数值   baidu   bit   

原文地址:https://www.cnblogs.com/PBDragon/p/13955329.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!