ping命令的TTL是什么意思?
TTL是IP协议数据包中的一个值,它告诉网络路由器该数据包是否在网络中存在太久,是否应该被丢弃。包裹在一定时间内无法送达目的地的原因有很多。例如,不正确的路由表可能导致数据包无限循环。一种解决方案是在一段时间后丢弃数据包,然后向发送方发送消息,由发送方决定是否重新发送。TTL的初始值通常是系统默认值,是报头中的一个8位字段。TTL最初的想法是确定一个时间范围,在这个时间范围之后数据包将被丢弃。由于每个路由器都必须将TTL字段减少至少一个,因此TTL通常表示数据包在被丢弃之前可以通过的最大路由器数量。当计数达到0时,路由器决定丢弃数据包,并向原始发送者发送ICMP消息。
Windows 95/98中TTL的默认值是32。建议在难以到达某个节点时,将该值设置为128。ping和tracerouter都使用TTL值来尝试到达给定主机或跟踪到该主机的路由。Traceroute将数据包的TTL值设置得很小,这样在到达目的地的途中,每台路由器都会不断丢弃该数据包。发送数据包和接收返回的ICMP消息之间的时间用于计算从一台路由器到另一台路由器的时间。
使用多路复用IP协议时,TTL值表示数据包的转发范围。有以下几种转换:0、限于同一主机1、限于同一子网32、限于同一节点64、限于同一地区)128、限于同一洲)255、
因为不同操作系统默认的TTL值是不一样的,所以说可以通过返回的TTL值来判断目标系统的类型,这是正确的,但这不是TTL的功能,而是TTL理解的一个应用。TTL的值可以修改。一些特殊的系统(如NIDS)会定义特殊的TTL值来拒绝非法访问数据。在执行PING命令时,我们可以使用-i参数来指定TTL值。您可以将TTL设置为0,数据包将立即被丢弃。有时我们在执行PING命令时,会延迟发送另一个地址,并带有英文提示(大致意思是TTL无效),这意味着在数据包到达目的地之前(也就是回到IP位置的时候),该数据包的TTL已经为0或者小于下一个网段允许的TTL值,该数据包已经被路由丢弃。