TTL 数据包存活时间

TTL是IP协议包中的一个值,它告诉网络,数据包(例如ICMP包)在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。例如,不正确的路由表可能导致包的无限循环。一个解决方法就是在一段时间后丢弃这个包,然后给发送者一个报文,由发送者决定是否要重发。TTL的初值通常是系统缺省值,是包头中的8位的域。TTL的最初设想是确定一个时间范围,超过此时间就把包丢弃。由于每个路由器都至少要把TTL域减一,TTL通常表示包在被丢弃前最多能经过的路由器个数。当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者。
  TTL:(Time To Live ) 生存时间
  指定数据包被路由器丢弃之前允许通过的网段数量。
  TTL 是由发送主机设置的,以防止数据包不断在 IP 互联网络上永不终止地循环。转发 IP 数据包时,要求路由器至少将 TTL 减小 1。
  使用PING时涉及到的 ICMP 报文类型
  一个为ICMP请求回显(ICMP Echo Request)
  一个为ICMP回显应答(ICMP Echo Reply)
  TTL 字段值可以帮助我们识别操作系统类型。
  UNIX 及类 UNIX 操作系统 ICMP 回显应答的 TTL 字段值为 255
  Compaq Tru64 5.0 ICMP 回显应答的 TTL 字段值为 64
  微软 Windows NT/2K操作系统 ICMP 回显应答的 TTL 字段值为 128
  微软 Windows 95 操作系统 ICMP 回显应答的 TTL 字段值为 32
  当然,返回的TTL值是相同的
  但有些情况下有所特殊
  LINUX Kernel 2.2.x & 2.4.x ICMP 回显应答的 TTL 字段值为 64
  FreeBSD 4.1, 4.0, 3.4;
  Sun Solaris 2.5.1, 2.6, 2.7, 2.8;
  OpenBSD 2.6, 2.7,
  NetBSD
  HP UX 10.20
  ICMP 回显应答的 TTL 字段值为 255
  Windows 95/98/98SE
  Windows ME
  ICMP 回显应答的 TTL 字段值为 32
  Windows NT4 WRKS
  Windows NT4 Server
  Windows 2000
  Windows XP
  ICMP 回显应答的 TTL 字段值为 128
  这样,我们就可以通过这种方法来辨别操作系统
  TTL值的注册表位置HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Services\Tcpip\Parameters 其中有个DefaultTTL的DWORD值,其数据就是默认的TTL值了,我们可以修改,但不能大于十进制的255

 

TTL 定义的本意是数据包的存活时间,以秒为单位,但实际应用中大多被作为数据包可通过的网络数(或者叫跳数,或者叫路由数)比如说我们用ping或tracert的时候,ttl就是跳数,但在ip层对数据包进行分段和重组时,TTL 就表示实际时间了,在收到第一个分段时以其TTL开始计时,在定时器过期之前分段没有全部到达,则接收方会发送含有代码为1(分段重组超时)的ICMP消息类型11(超时)要求重传。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值