在使用Ping命令来判断网络状态的时候,通常都会看到TTL的具体数值,TTL是发送主机设置的,用来防止数据包不断在IP互联网上面永不终止地循环的一个值,它表示在网络层的数据包在被丢弃前最多能经过的路由器个数,TTL字段可以帮助我们识别操作系统类型,下面我们就来了解一下TTL的工作原理,以及如何通过TTL识别目标主机操作系统类型。

wKioL1h_Gy7Ts6LPAABbC5NY988347.jpg-wh_50

什么是TTL

TTL(Time To Live,生存时间)是IP协议包中的一个值,当我们使用Ping命令进行网络连通测试或者是测试网速的时候,本地计算机会向目的主机发送数据包,但是有的数据包会因为一些特殊的原因不能正常传送到目的主机,如果没有设置TTL值的话,数据包会一直在网络上面传送,浪费网络资源。数据包在传送的时候至少会经过一个以上的路由器,当数据包经过一个路由器的时候,TTL就会自动减1,如果减到0了还是没有传送到目的主机,那么这个数据包就会自动丢失,这时路由器会发送一个ICMP报文给最初的发送者。举个例子,如果一个主机的TTL是64,那么当它经过64个路由器后还没有将数据包发送到目的主机的话,那么这个数据包就会自动丢弃。

如何通过TTL来判断目的主机的操作系统类型

不同的操作系统的默认TTL值是不同的, 所以我们可以通过TTL值来判断主机的操作系统,但是当用户修改了TTL值的时候,就会误导我们的判断,所以这种判断方式也不一定准确。下面是默认操作系统的TTL: