ping 命令-根据TTL判断对方是什么操作系统
- 首先先来学习一下定义~
TTL(Time To Live,生存时间),是IP协议包中的一个值,指定数据包被路由器丢弃之前允许通过的网段数量,数据包每经过路由器转发一次都至少要把TTL减一,TTL通常表示包在被丢弃前最多能经过的路由器个数。当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者。有很多原因使包在一定时间内不能被传递到目的地。例如,不正确的路由表可能导致包的无限循环。
- TTL 是由发送主机设置的,TTL字段值可以帮助我们识别操作系统类型。
下面是默认操作系统 TTL。
Liunx 64
Windows 2000/NT 128
Windows系列 32
Unix系列 255
- 实际操作一下~
我们可以更改注册表设置TTL的值,可以修改,但不能大于十进制的255,
使用ping发现的TTL可以粗略判断对方是什么操作系统,中间经过了多少个路由器。
下面使用ping返回来的TTL值判断百度的操作系统以及途经的路由器。
可以返回来的数据包TTL值为54,接近64,可以初步断定其是Linux操作系统,
中间经过10个路由器到达本机因此TTL变为54。
使用ping后面添加i参数,可以更改计算机发送ICMP数据包的TTL值,如下所示,数据包-i后面添加了1,
从网关(也就是第一个路由器)就返回TTL在传输中过期。
如果是2,就会从第二个路由器返回TTL在传输过程中过期,
如果输入3,我们就可以不用使用pathping,也能判断数据包经过的路由器。