ping 命令中的 TTL


TTL(Time To Live)

当我们在使用ping命令时,返回结果里会带一个TTL值。这个东西的含义其实就是Time To Live,指的是报文在网络中能够‘存活’的限制。以前这个限制方式是设定一个时间(Time To Live中的Time就是这样来的),当报文在网络中转发时,时间超过这个限制,最后一个收到报文的‘路由点’就会把它扔掉,而不继续转发。后来把时间限制改为了跳数限制,就是当报文在网络中转发时,每经过一个‘路由点‘,就把预先设定的这个TTL数值减1,直到最后TTL=1时报文就被扔掉,不向下转发。

路由点:我这里是指完成路由功能的机器,因为并不是只有路由器才可以完成路由转发功能,比如主机可以配置路由转发。


ping命令中的TTL

上边解释的TTL是基础,然后,我们这篇文章要说明的是ping中的TTL到底是什么意思。因为不管怎么想,返回了一个TTL这东西,是说被你ping的主机预设的报文TTL是这个值吗?还是说你ping它的时候自己的报文自动设定了TTL是这个值?还是说你的报文经过了TTL跳到达被ping主机?。。。总之就是不能明确地说出这个TTL的意义。

其实这个TTL是指:被ping主机那里返回的报文,到了你这里,从它自己预设的TTL减小到还剩下多少。

有点绕口,举个例子就明白了。


我们先tracert www.baidu.com

这里表示,我们发出的ICMP报文从自己主机到目标主机一共经过12跳,这里可以想成我们发过去的和对方返回的路由路径是一样的(其实网络很复杂的,这样说是在基本理论上简化问题——一般网络情况不变化就是这样的),也就是目标主机它预设的报文TTL要减掉12。现在,按照刚才说的“被ping主机那里返回的报文,到了你这里,从它自己预设的TTL减小到还剩下多少。”,我们可以计算ping www.baidu.com时的TTL了。

TTL = 目标主机预设报文TTL - 12

现在等式中有两个未知数,但是“目标主机预设报文TTL”其实比较容易知道。并且有一个前提:一般有64、128等几个值(这些东西大家另外去查资料吧)

我们先来ping www.baidu.com

这里我们看到 TTL = 52。一般就可以推断目标主机预设的报文TTL为64,因为它比较接近(一般啦)。然后对比一下上边的等式,代入数值:

52 = 64 - 12……bingo~


by the way

因为上边的说明中涉及到的网络原理中其它挺多的内容,比如“网络的拓扑或者网络的流量情况会影响路由路径”、“TTL其实是可以修改的”、“64与128等TTL值也只是一般常见的,其实还有其它的”等等,总之就是任何一个点发生了偏差,都会让我上边做的这个说明变成废纸。。。所以大家要多去验证,比如把我只对www.baidu.com的测试多验证几次,还要把测试用到其它主机上,多次验证。

另外,我们可以通过这个返回的TTL猜测目标主机使用的操作系统,我些知识就不放在这篇文章里了,大家另外搜索吧。


reference (with thanks)

http://blog.163.com/zzy_85569381/blog/static/149518907201312114815772/

ping 命令中的 TTL相关推荐

  1. PING命令中TTL的具体含义

    简单来说,TTL全程Time to Live,意思就是生存周期. 首先要说明ping命令是使用的网络层协议ICMP,所以TTL指的是一个网络层的网络数据包(package)的生存周期,这句话不懂的先回 ...

  2. Ping命令返回的TTL值详解

    Time To Live (TTL) 域的信息很有趣.每一个被发送出的IP信息包都有一个TTL域,该域被设置为一个较高的数值(在本例中ping信息包的TTL值为255).当信息包在网络中被传输时,TT ...

  3. 计算机网络 ping中ttl,ping命令显示的TTL是什么意思?

    文章目录 [+] 1,TTL是指定数据报被路由器丢弃之前允许通过的网段数量,如果同一服务器不同的ip,你ping这些 ip得到的ttl越高(经过转发的路由器少),延时越小,说明直连该ip会更快. 2, ...

  4. Linux ping 命令集合

    不管在windows平台,还是在linux平台,ping都是非常常用的网络命令:ping命令通过ICMP(Internet控制消息协议)工作:ping可以用来测试本机与目标主机是否联通.联通速度如何. ...

  5. 关于 Linux ping 命令详解

    转自:微点阅读  https://www.weidianyuedu.com 不管在windows平台,还是在linux平台,ping都是非常常用的网络命令:ping命令通过ICMP(Internet控 ...

  6. Linux ping 命令介绍

    转自:微点阅读  https://www.weidianyuedu.com 不管在windows平台,还是在linux平台,ping都是非常常用的网络命令:ping命令通过ICMP(Internet控 ...

  7. linux中的ping命令

    ping 命令入门详解:http://www.linkwan.com/gb/tech/htm/928.htm Ping是Windows.Unix和Linux系统下的一个命令.ping也属于一个通信协议 ...

  8. ping命令和arp命令、ping常见问题解决、TTL值判断操作系统

    基础CMD命令 ipconfig/all //查本地网络配置 ipconfig/displaydns //查看本机缓存的服务器域名 tracert 域名/ip //你的主机到目标主机经过路由器的ip( ...

  9. linux ping程序设计与实现,一步步学Linux网络编程--ping命令的实现分析

    先来说说ping程序的原理吧,其实挺简单,就是一个主机系统向另外一个主机系统说:I love you(ICMP报文),然后那个主机如果相信你或者说想和你通信,和你心知心,那它就把收到的I love y ...

最新文章

  1. PCL两种方式的点云读写
  2. Java web学习(一)Servlet简介
  3. java正则 找出数字,Java顶用正则表达式找出数字
  4. mac中打开nginx位置
  5. Matplotlib课程–学习Python数据可视化
  6. CodeSite日志使用
  7. c语言 指针_C 语言指针详解
  8. python读取txt文件每一行存为列表,从txt文件中读取一定数量的行,并以python方式转换为list...
  9. maven实战 源码_Docker与Jib(maven插件版)实战
  10. Java面试笔试题大全
  11. WinXP升级IE6至IE8以及WIN7下IE8升级至IE11
  12. DB数据库密码怎么破啊~~~求高手帮忙解决下~
  13. shell脚本从基础到实战(全网最详细)监控、加减乘除、购票、批量创建与删除用户等脚本
  14. Android 关于display的几个问题
  15. 微信小程序顶部下拉菜单栏
  16. matlab gps信号,gps信号和其干扰的matlab仿真
  17. 族蚂和凡科两大自助建站平台性价比哪家强?
  18. 域名的过户转移是否影响DNS解析?
  19. 老魔杖(博弈 大数取模)
  20. 【七夕节】html+css+JavaScript+服务器 给女朋友的七夕过节网站

热门文章

  1. 18.QT中的write函数
  2. Apollo Planning(三)
  3. 中文核心小论文投稿到最终记录 《红外技术》
  4. 抖音本地生活团购服务商
  5. 关于 Activity 的跳转。
  6. 零配置自动开局——Zero Touch Provisioning
  7. Unity 之 NullReferenceException(空引用异常)问题
  8. 阿里巴巴大数据计算平台MaxCompute(原名ODPS)全套攻略(持续更新20171127)
  9. 如何下载popper.js/popper.min.js
  10. 山东大学软件学院高级语言课程设计JAVA课程设计-学生在线考试系统平台