关于ping以及TTL的分析

首先介绍一下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了一下百度:

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

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

时间: 2024-10-11 13:05:36

关于ping以及TTL的分析的相关文章

Ping 不通的原因分析

背景 简介 ping是常用的网络管理命令,ping也属于一个通信协议,是TCP/IP协议的一部分,适用于windows和linux以及unix 根据reply用来检查网络是否通畅&网络连接的速度(time) 主要是端对端的,针对目标ip或者目标网址 原理 给对端(目标ip)发一个数据包,对方就要返回一个同样大小的数据包,根据reply我们可以确定目标主机的存在 在windows的dos界面可以通过 ping/?来查看其参数含义 常用命令 -t 不间断给对方发包,除非ctrl+c 退出 -l 定义

Ping 命令详解

Ping 是Windows自带的一个DOS命令.利用它可以检查网络是否能够连通,用好它可以很好地帮助我们分析判定网络故障.该命令可以加许多参数使用,键入Ping按回车即可看到详细说明.Ping 命令可以用来验证与远程计算机的连接. ping的参数 ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list] [-

[Android] [Java] Process 创建+控制+分析 经验浅谈

无论是Android亦或者Java中或多或少需要调用底层的一些命令,执行一些参数: 此时我们需要用到Java的Process来创建一个子进程,之所以是子进程是因为此进程依赖于发起创建请求的进程,如果发起者被Kill那个子进程也将Kill. 对于Process相信使用过的朋友一定不会陌生,它具有如下特点: 1.创建简单 2.控制难 3.容易导致无法创建子进程 4.如果是多线程那么很有可能造成内存溢出 以上现象如果你只是偶尔使用一次,创建一个进程或许你什么都没有感觉到,但是如果你使用了多线程,进行了

网络管理常用命令之一 - Ping命令详解

Ping命令... TTL:生存时间... 不带选项... -t 选项... -a 选项... -n 选项... -l 选项(Length)... -f 选项... Request timed out(请求超时) Destination host Unreachable(目标主机不可达) Bad IP address. Source quench received. 7 Unknown host No answer 1.Ping命令 在网络维护过程中,Ping命令是一个经常使用的DOS命令,它是

[Java][Android][Process] Process 创建+控制+分析 经验浅谈

不管是Android亦或者Java中或多或少须要调用底层的一些命令.运行一些參数: 此时我们须要用到Java的Process来创建一个子进程.之所以是子进程是由于此进程依赖于发起创建请求的进程,假设发起者被Kill那个子进程也将Kill. 对于Process相信使用过的朋友一定不会陌生,它具有例如以下特点: 1.创建简单 2.控制难 3.easy导致无法创建子进程 4.假设是多线程那么非常有可能造成内存溢出 以上现象假设你仅仅是偶尔使用一次,创建一个进程也许你什么都没有感觉到,可是假设你使用了多

red5源码分析---6

red5源码分析-客户端和服务器的命令处理 在<red5源码分析-5>中可以知道,在RTMP握手完毕后,客户端会向服务器发送connect命令,connect命令的主要作用就是要和red5服务器上的某个Scope相连接,连接完成后,会向客户端发送带宽协调的指令,ping指令,和一个带宽检测指令.下面先分析ping指令. ping指令 服务端代码 这里先贴一下在服务器将客户端和某个Scope相连后发出的ping指令代码, ... conn.ping(new Ping(Ping.STREAM_BE

eNSP模拟器拓扑图:浮动路由的实际作用和分析,默认路由的配置,抓包分析

本篇介绍一下浮动路由和默认路由的配置和一些讲解本篇内容附带详细的分析讲解.会敲命令并不代表什么,能敲明白才是关键. 往后的篇章内容 都尽量不写地址配置了,如果地址都还不会配置的话,可以去翻一翻其他博文了解一下 打开ensp模拟器如图所示AR3260路由器三台PC机两台Copper线5根操作步骤:1.规划线路,地址2.配置IP地址3.配置浮动路由,默认路由4.ping通所有设备 具体的地址配置就不详细的一 一列出了,基本的地址配置自己配置好在进入系统模式之前在用户模式下可以试着输入undo ter

windows ping命令

ping -a 192.168.xxx.xxx  解析计算机NetBios名 ping -n 数字 192.168.xxx.xxx  发送指定数量的echo数据包数,默认是四个 ping -l 192.168.xxx.xxx   定义echo数据包大小,默认32字节最大65500字节 ping -f 192.168.xxx.xxx   使路由发送数据包时不分段处理,一般所发送的数据包都会通过路由分段 ping -v  tos 192.168.xxx.xxx    将“服务类型”字段设置为tos指

ping 的零碎知识

1. linux中ping命令不会像windows一样自动结束,不手动结束会一直进行下去 ping -c 3 www.baidu.com 表示ping 进行三次后结束 2. 只看结果不看过程:ping -q -c 2 www.baidu.com 如下图所示, 3. 在上面的执行结果中,最后一行中的mdev,mdev是Mean Deviation 的缩写,表示ICMP包的RTT偏离平均值的程度,主要用来衡量网速的稳定性.mdev的值越大说明网速越不稳定. 不同操作系统的mdev的名字也有所不同,在