TTL(Time To Live,生存时间),是IP协议包中的一个值,指定数据包被路由器丢弃之前允许通过的网段数量,数据包每经过路由器转发一次都至少要把TTL减一,TTL通常表示包在被丢弃前最多能经过的路由器个数。当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者。有很多原因使包在一定时间内不能被传递到目的地。例如,不正确的路由表可能导致包的无限循环。

TTL 是由发送主机设置的,TTL字段值可以帮助我们识别操作系统类型。下面是默认操作系统 TTL。

§ Liunx 64

   redhat 50

   centos 60

§ Windows 2000/NT 128

§ Windows系列 32

§ Unix系列 255

我们可以更改注册表设置TTL的值,可以修改,但不能大于十进制的255,使用ping发现的TTL可以粗略判断对方是什么操作系统,中间经过了多少个路由器。

143042979.png

下面使用ping返回来的TTL值判断上面的IP的操作系统以及途经的路由器。

可以返回来的数据包TTL值为60,接近64,可以初步断定其是Linux操作系统,中间经过4个路由器到达本机因此TTL变为60。

本人亲自测试过 centos5.10版本 的为60,redhat的为50