Ping 的TTL理解
http://www.webkaka.com/tutorial/zhanzhang/2017/061570/
根据自己的扩展重新整理了一下,虽然不是运维,想了解一点东西就希望了解清楚。
一.含义
“TTL”是生存时间(Time To Live)的意思
关于时间与跳的讨论,
https://www.zhihu.com/question/61007907
一开始理解为time to leap,wiki上是hop limit
顺便复习了个单词,hop是类似青蛙跳,兔子跳连续的,正符合。
leap是大步跳,并没有连续的意思。
这里把time理解成次数也可以。
首先我们了解一下“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百度服务器返回的数据包的TTL值为56(一般都是找2^n且离返回值最近的那个值),那么途中则经过了64-56=9个路由器。
再比如,我Ping自己的ip,结果如下图:
Ping本地计算器
可以看到我得到的时候TTL为128,那么途中则经过了128-128=0个路由器,也就是我自己给自己发送数据包不需要经过任何路由器,所以TTL值为128,即是说我的数据包生存时间为128。
二.路由器是什么?
通过路由表到达目的地,路由表每一条路由对应两个信息
(目的网络地址,下一跳地址)
详见《计算机网络第七版》4.2.6
从 Tracert 命令了解
上面提到发送数据包要经过多少个路由器,那么路由器是什么意思?这就不得不说到 Tracert 命令了。
Tracert的写法如下:
tracert [目标]
意思是得到你的主机到目标主机经过路由器的ip。
如图:
tracert百度服务器
在这里我们可以看到达到目标我们经过了9个路由器(不算终点),跟上面Ping百度服务器返回的“TTL”值(56)是相关的,64-56=9。
注意一下有的值为“请求超时” ,原因是有的路由器是禁止Ping的(所以不会返回信息)。
三.TTL从哪来的
http://searchnetworking.techtarget.com/definition/time-to-live
An IP TTL is set initially by the system sending the packet. It can be set to any value between 1 and 255; different operating systems set different defaults.
ttl是发送的时候便携带的,有空用wireshark抓包看看。
也就是说,如果你设置ttl为5,然后hop了5下还没到目标地址,那就扔掉。具体返回什么信息没试
如果设置ttl设置为100,返回跳了9下,到了目的地址,是linux服务器,获得ttl为64,64-9=55,返回ttl 55
四.linux和windows的ttl为什么不同
就算目标服务器windows换成linux,路由器hop的路线还是一样的,不明白为什么默认要设置两个不同的地址,让人判断服务器类型。
很想知道历史原因是什么。暂时没搜到,先放着吧。
Ping 的TTL理解的更多相关文章
- 【网络】Ping 的TTL理解
一.含义 “TTL”是生存时间(Time To Live)的意思 关于时间与跳的讨论, https://www.zhihu.com/question/61007907 一开始理解为time to le ...
- Ping出现TTL expired in transit的原因
今天上班检查服务器时发现出现TTL expired in transit的提示,这种提示还是第一次见,如图: ping 和 tracert 的结果 用tracert来看路由状况,原来是出现路由环路导致 ...
- 关于ping以及TTL的分析【转】
转自:http://blog.csdn.net/u013451221/article/details/46608881 首先介绍一下ping这个工具 ping [目标] 的意思就是向目标发送几个数据包 ...
- 关于ping以及TTL的分析
首先介绍一下ping这个工具 ping [目标] 的意思就是向目标发送几个数据包,之后假设目标接受到一个数据包.那么目标就会向发送ping的主机返回一个数据包 比方上图.我ping了百度的server ...
- TTL 生存时间介绍 (转)
TTL: (Time To Live)生存时间,是IP协议包中的一个值,它告诉网络路由器包在网络中的时间是否太长而应被丢弃.有很多原因使包在一定时间内不能被传递到目的地.例如,不正确的路由表可能导致包 ...
- windows 环境和linux环境下 ping命令的区别:
Ping 是Windows自带的一个DOS命令.利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障.该命令可以加许多参数使用,键入Ping按回车即可看到详细说明.Ping 命令可 ...
- linux ping命令实践
ping 解析 Linux系统的ping命令是常用的网络命令,它通常用来检测与目标主机的连通性,经常说"ping以下机器,看是否开着,不能打开网页时候,可以ping ...
- windows ping命令
ping -a 192.168.xxx.xxx 解析计算机NetBios名 ping -n 数字 192.168.xxx.xxx 发送指定数量的echo数据包数,默认是四个 ping -l 192 ...
- ping命令介绍
1.ping是TCP/IP协议的一部分,所以只要安装了TCP/IP协议就(无论windows或linux)都可以使用ping命令. 2.ping命令的原理:本机创建一个数据包发送给(ping对象)目标 ...
随机推荐
- website for .Net Core
5 Ways to Build Routing in ASP.NET Core Bundling in .NET Core MVC Applications with BundlerMinifier. ...
- PTA 7-2 列车调度(25 分)
7-2 列车调度(25 分) 火车站的列车调度铁轨的结构如下图所示. 两端分别是一条入口(Entrance)轨道和一条出口(Exit)轨道,它们之间有N条平行的轨道.每趟列车从入口可以选择任意一条轨道 ...
- java虚拟机知识和 内存 堆(heap)、栈(stack)和方法区(method)
1.虚拟机实例 每个java程序都运行在自己的java虚拟机实例中,运行三个java程序就会得到三个虚拟机实例 守护线程(虚拟机自己使用,比如说执行垃圾收集任务的线程) 非守护线程(java初试线程, ...
- geoserver源码学习与扩展——自动发布shapefile图层
geoserver通过工作空间Workspace-数据源DataStore-图层Layer管理地理数据,这些信息都通过Catalog进行组织和管理,要完成自动发布只需要在Catalog中增加相应的信息 ...
- git代码回滚的两种选择
回滚到指定commit,且保持该commit之前和之后的提交记录 使用git revert命令. git revert HEAD // 回滚到前一次 commit git revert HEAD^ / ...
- centos7 下载安装tomcat9
需要Java环境 https://www.cnblogs.com/sea-stream/p/10404360.html 官网下载安装包 wget http://archive.apache.org/d ...
- idea使用教程(1)
引言:本教程主要讲解一下常用的配置安装方法,不包含软件安装,按照以下教程配置后,可以直接用于生产环境. 参考网址:参考了尚硅谷关于idea的使用教学视屏 idea注册码地址:http://idea.l ...
- wxss与rpx
WXSS(WeiXin Style Sheets)是一套样式语言,用于描述 WXML 的组件样式. WXSS 用来决定 WXML 的组件应该怎么显示. 为了适应广大的前端开发者,WXSS 具有 CSS ...
- 关于Oracle 12C pdb用户无法登录的问题
新装了oracle12c,对新的CDB和PDB用户如何登录一直一头雾水,经过一晚上的查找,终于解决. sqlplus /nolog -> conn /as sysdba 登录到oracle 将s ...
- [转]xml解析工具的效率比较QDomDocument、TinyXml-2、RapidXml、PugiXml
转自:http://www.itdaan.com/blog/2017/02/20/301ad47832f4.html 由于windows环境下测试不稳定,博主选择在linux下进行的测试! Qt - ...