
您好,TTL是 Time To Live的缩写,TTL是生存时间的意思。表示该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。
简单来说,TTL是IP协议包中的一个值,它告诉网络路由器包在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。
TTL由IP数据包的发送者设置,在IP数据包从源到目的的整个转发路径上,每经过一个路由器,则把该TTL的值减1,然后再将IP包转发出去。如果在IP包到达目的IP之前,TTL减少为0,路由器将会丢弃收到的TTL=0的IP包,并向IP包的发送者发送 ICMP time exceeded消息,以防止数据包不断在IP互联网络上永不终止地循环。
扩展资料
TTL的功能特点
TTL的作用是限制IP数据包在计算机网络中的存在的时间。TTL的最大值是255,TTL的一个推荐值是64。
虽然TTL从字面上翻译,是可以存活的时间,但实际上TTL是IP数据包在计算机网络中可以转发的最大跳数。TTL字段由IP数据包的发送者设置,在IP数据包从源到目的的整个转发路径上,每经过一个路由器,路由器都会修改这个TTL字段值,具体的做法是把该TTL的值减1,然后再将IP包转发出去。如果在IP包到达目的IP之前,TTL减少为0,路由器将会丢弃收到的TTL=0的IP包并向IP包的发送者发送 ICMP time exceeded消息。
TTL的主要作用是避免IP包在网络中的无限循环和收发,节省了网络资源,并能使IP包的发送者能收到告警消息。
TTL 是由发送主机设置的,以防止数据包不断在IP互联网络上永不终止地循环。转发IP数据包时,要求路由器至少将 TTL 减小 1。
TTL值的注册表位置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters ,其中有个DefaultTTL的DWORD值,其数据就是默认的TTL值了,我们可以修改,但不能大于十进制的255。Windows系统设置后重启才生效。
参考资料:百度百科-TTL
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,限制在同一区域(region)128,限制在同一大陆(continent)255,
由于不同的 *** 作系统的默认TTL值不同,因此有文章说可以通过返回的TTL值判断目标系统的类型,这是正确的,但不是TTL的功能,只是对TTL理解的一个应用。TTL的值可以修改。有些特殊的、系统(如NIDS)会定义特殊的TTL值,以拒绝非法访问数据进入。我们在执行PING命令时可以用-i参数指定TTL值,大家可以将TTL设置为0,则该包将被立即丢弃。有时我们执行了一个PING
命令,在缓发时却缓发了另一个地址,并带有一个英语的提示(大致意思是TTL无效),则表示该包在到达目标之前(也就是到返回IP位置时),包所带的TTL已经为0了或小于下一网段许可通过的TTL值了,该包已经被路由丢弃了。
指定数据报被路由器丢弃之前允许通过的网段数量。
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
ICMP
回显应答的
TTL
字段值为
128
这样,我们就可以通过这种方法来辨别 *** 作系统
TTL
LINUX
64
WIN2K/NT
128
WINDOWS
系列
32
UNIX
系列
255
在ping命令中,TTL(生存时间值)的主要作用是标示IP数据包在计算机网络中可以转发的最大跳数。TTL由IP数据包的发送者设置,在IP数据包从源到目的的整个转发路径上,每经过一个路由器,则把该TTL的值减1,然后再将IP包转发出去。如果在IP包到达目的IP之前,TTL减少为0,路由器将会丢弃收到的TTL=0的IP包,并向IP包的发送者发送 ICMP time exceeded消息,以防止数据包不断在IP互联网络上永不终止地循环。
【注意事项】:TTL的值在本机可以修改,TTL值的注册表位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 其中有个DefaultTTL的DWORD值,其数据就是默认的TTL值了,我们可以修改,但不能大于十进制的255。Windows系统设置后重启才生效。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)