ping 命令中的 TTL
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相关推荐
- PING命令中TTL的具体含义
简单来说,TTL全程Time to Live,意思就是生存周期. 首先要说明ping命令是使用的网络层协议ICMP,所以TTL指的是一个网络层的网络数据包(package)的生存周期,这句话不懂的先回 ...
- Ping命令返回的TTL值详解
Time To Live (TTL) 域的信息很有趣.每一个被发送出的IP信息包都有一个TTL域,该域被设置为一个较高的数值(在本例中ping信息包的TTL值为255).当信息包在网络中被传输时,TT ...
- 计算机网络 ping中ttl,ping命令显示的TTL是什么意思?
文章目录 [+] 1,TTL是指定数据报被路由器丢弃之前允许通过的网段数量,如果同一服务器不同的ip,你ping这些 ip得到的ttl越高(经过转发的路由器少),延时越小,说明直连该ip会更快. 2, ...
- Linux ping 命令集合
不管在windows平台,还是在linux平台,ping都是非常常用的网络命令:ping命令通过ICMP(Internet控制消息协议)工作:ping可以用来测试本机与目标主机是否联通.联通速度如何. ...
- 关于 Linux ping 命令详解
转自:微点阅读 https://www.weidianyuedu.com 不管在windows平台,还是在linux平台,ping都是非常常用的网络命令:ping命令通过ICMP(Internet控 ...
- Linux ping 命令介绍
转自:微点阅读 https://www.weidianyuedu.com 不管在windows平台,还是在linux平台,ping都是非常常用的网络命令:ping命令通过ICMP(Internet控 ...
- linux中的ping命令
ping 命令入门详解:http://www.linkwan.com/gb/tech/htm/928.htm Ping是Windows.Unix和Linux系统下的一个命令.ping也属于一个通信协议 ...
- ping命令和arp命令、ping常见问题解决、TTL值判断操作系统
基础CMD命令 ipconfig/all //查本地网络配置 ipconfig/displaydns //查看本机缓存的服务器域名 tracert 域名/ip //你的主机到目标主机经过路由器的ip( ...
- linux ping程序设计与实现,一步步学Linux网络编程--ping命令的实现分析
先来说说ping程序的原理吧,其实挺简单,就是一个主机系统向另外一个主机系统说:I love you(ICMP报文),然后那个主机如果相信你或者说想和你通信,和你心知心,那它就把收到的I love y ...
最新文章
- PCL两种方式的点云读写
- Java web学习(一)Servlet简介
- java正则 找出数字,Java顶用正则表达式找出数字
- mac中打开nginx位置
- Matplotlib课程–学习Python数据可视化
- CodeSite日志使用
- c语言 指针_C 语言指针详解
- python读取txt文件每一行存为列表,从txt文件中读取一定数量的行,并以python方式转换为list...
- maven实战 源码_Docker与Jib(maven插件版)实战
- Java面试笔试题大全
- WinXP升级IE6至IE8以及WIN7下IE8升级至IE11
- DB数据库密码怎么破啊~~~求高手帮忙解决下~
- shell脚本从基础到实战(全网最详细)监控、加减乘除、购票、批量创建与删除用户等脚本
- Android 关于display的几个问题
- 微信小程序顶部下拉菜单栏
- matlab gps信号,gps信号和其干扰的matlab仿真
- 族蚂和凡科两大自助建站平台性价比哪家强?
- 域名的过户转移是否影响DNS解析?
- 老魔杖(博弈 大数取模)
- 【七夕节】html+css+JavaScript+服务器 给女朋友的七夕过节网站
热门文章
- 18.QT中的write函数
- Apollo Planning(三)
- 中文核心小论文投稿到最终记录 《红外技术》
- 抖音本地生活团购服务商
- 关于 Activity 的跳转。
- 零配置自动开局——Zero Touch Provisioning
- Unity 之 NullReferenceException(空引用异常)问题
- 阿里巴巴大数据计算平台MaxCompute(原名ODPS)全套攻略(持续更新20171127)
- 如何下载popper.js/popper.min.js
- 山东大学软件学院高级语言课程设计JAVA课程设计-学生在线考试系统平台