关于ping以及TTL的分析【转】

简介: 转自:http://blog.csdn.net/u013451221/article/details/46608881 首先介绍一下ping这个工具 ping [目标] 的意思就是向目标发送几个数据包,之后如果目标接受到一个数据包,那么目标就会向发送ping的主机返回一个数据包 比如上图,我ping了百度的服务器(windows下默认ping 4次) 字节代表数据包的大小,时间顾名思义就是返回时间,TTL这里稍微说一下: TTL的意思就是数据包的生存时间,当然你得到的这个就是剩余的生存时间。

转自:http://blog.csdn.net/u013451221/article/details/46608881

首先介绍一下ping这个工具

ping [目标]

的意思就是向目标发送几个数据包,之后如果目标接受到一个数据包,那么目标就会向发送ping的主机返回一个数据包


比如上图,我ping了百度的服务器(windows下默认ping 4次)

字节代表数据包的大小,时间顾名思义就是返回时间,TTL这里稍微说一下:

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。

在这里不难得到百度服务器返回给我的数据包的TTL值应该为64(一般都是找2^n且离返回值最近的那个值),我得到的时候TTL为47,那么途中则经过了64-47=17个路由器。

在比如,我ping了自己的ip


可以看到我自己给自己发送数据包不需要经过路由器,所以TTL值为64,也就是说我的数据包生存时间默认为64


提到ping就不得不提到另外一个windows下的工具tracert

tracert [目标]

的意思就是得到你的主机到目标主机经过路由器的ip

如图:


tracert的原理就不多阐述了,和ICMP协议有关,利用了数据包的生存期进行路径的取得

在这里我们可以看到达到目标我们经过了15个路由器(不算终点)

注意一下有的值为 请求超时 ,原因是有的路由器是禁止ping的(所以不会返回信息)

另外由于现在网络状况很复杂,你ping不同地址可能得到的路径不同,就像我再一次ping了一下百度:


得到的结果是不是不同了?

这个和不同时间网络状况以及很多因素有关

【作者】 张昺华
【新浪微博】 张昺华--sky
【twitter】 @sky2030_
【facebook】 张昺华 zhangbinghua
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利.
目录
相关文章
|
4月前
|
Java 测试技术
TTL的CRR操作
TTL的CRR操作
54 0
|
8月前
TTL
TTL
81 0
|
8月前
|
NoSQL Redis
PING
PING
59 0
|
网络协议 网络架构
什么是 ICMP ?ping和ICMP之间有啥关系?
Internet 控制消息协议 (ICMP) 是 TCP/IP 的实用协议,负责提供有关 TCP/IP 网络上的设备、服务或路由的可用性的信息,大多数网络故障排除技术和工具都以常见的 ICMP 消息类型为中心,最著名的就是ping,主要用于测试设备之间的通信。
687 0
什么是 ICMP ?ping和ICMP之间有啥关系?
|
缓存 运维 网络协议
ping 问题分析
ping 问题分析
516 0
ping 问题分析
|
Windows
ping命令使用技巧(一次Ping多个地址)
打开windows 命令行 窗口, 在命令行输入以下命令: for /l %i in (1,1,255) do ping -n 1  -w 60 192.168.0.%i  | find "Reply" >>d:\pingall.
3437 0
|
网络架构
ping
关于网关的Misc 两台计算机, 可以ping通呢? 1. 通过网关 2. 在网关中有一个路由表, 在该表中, 有一条一条的NextStep的记录, 记录了目标地址为什么就走那一条记录 3. 网关都会先拿自己的IP地址与发过来的请求报文匹配, 如果匹配成功就响应 4.
956 0
|
网络协议 网络安全 网络架构