TTL(Time To Live,生存时间)是IP协议包中的一个值,当我们使用Ping命令进行网络连通测试或者是测试网速的时候,本地计算机会向目的主机发送数据包,但是有的数据包会因为一些特殊的原因不能正常传送到目的主机,如果没有设置TTL值的话,数据包会一直在网络上面传送,浪费网络资源。数据包在传送的时候至少会经过一个以上的路由器,当数据包经过一个路由器的时候,TTL就会自动减1,如果减到0了还是没有传送到目的主机,那么这个数据包就会自动丢失,这时路由器会发送一个ICMP报文给最初的发送者。举个例子,如果一个主机的TTL是64,那么当它经过64个路由器后还没有将数据包发送到目的主机的话,那么这个数据包就会自动丢弃。
如何通过TTL来判断目的主机的 *** 作系统类型
不同的 *** 作系统的默认TTL值是不同的, 所以我们可以通过TTL值来判断主机的 *** 作系统,但是当用户修改了TTL值的时候,就会误导我们的判断,所以这种判断方式也不一定准确。下面是默认 *** 作系统的TTL:
WINDOWS NT/2000 TTL:128
WINDOWS 95/98 TTL:32
UNIX TTL:255
LINUX TTL:64
WIN7 TTL:64
我们先来看两个例子:
例1:
D:\Documents and Settings\hx>ping 61.152.93.131
Pinging 61.152.93.131 with 32 bytes of data:
Reply from 61.152.93.131: bytes=32 time=21ms TTL=118
Reply from 61.152.93.131: bytes=32 time=19ms TTL=118
Reply from 61.152.93.131: bytes=32 time=18ms TTL=118
Reply from 61.152.93.131: bytes=32 time=22ms TTL=118
Ping statistics for 61.152.93.131:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss
Approximate round trip times in milli-seconds:
Minimum = 18ms, Maximum = 22ms, Average = 20ms
例2:
D:\Documents and Settings\hx>ping 61.152.104.40
Pinging 61.152.104.40 with 32 bytes of data:
Reply from 61.152.104.40: bytes=32 time=28ms TTL=54
Reply from 61.152.104.40: bytes=32 time=18ms TTL=54
Reply from 61.152.104.40: bytes=32 time=18ms TTL=54
Reply from 61.152.104.40: bytes=32 time=13ms TTL=54
Ping statistics for 61.152.104.40:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss
Approximate round trip times in milli-seconds:
Minimum = 13ms, Maximum = 28ms, Average = 19ms
上面的两个例子中,例1里面的TTL值是118,比较接近128,所以我们可以初步判断这台机洞明器的 *** 作系统是Windows *** 作系统,128-118=10,所以它经过了10个路由器(不正颤纤包含本机路由器)到达目的主机。在例2中我们可以看到TTL值是54,比较接近64,所以可以判断出这台机器使用的是Linux的 *** 作系统,64-54=10,所以一共经过了10个路由器(不包含本机路由器)。有人也许会问为什么第二个例子举仿中不认为它的TTL默认值是128,然后经过了74个路由器,所以128-74=54呢?首先,路由器在选择路径的时候会选择最佳的路由路径,当然,如果你想知道它经过了哪些路由器的话,可以使用cmd命令里面的tracert命令来查看,详情如下:
D:\Documents and Settings\hx>tracert 61.152.104.40
Tracing route to 61.152.104.40 over a maximum of 30 hops
1 13 ms 16 ms 9 ms 10.120.32.1
2 9 ms 9 ms 11 ms 219.233.244.105
3 12 ms 10 ms 10 ms 219.233.238.173
4 15 ms 15 ms 17 ms 219.233.238.13
5 14 ms 19 ms 19 ms 202.96.222.73
6 14 ms 17 ms 13 ms 202.96.222.121
7 14 ms 15 ms 14 ms 61.152.81.86
8 15 ms 14 ms 13 ms 61.152.87.162
9 16 ms 16 ms 28 ms 61.152.99.26
10 12 ms 13 ms 18 ms 61.152.99.94
11 14 ms 18 ms 16 ms 61.152.104.40
Trace complete.
我们可以看到,如果不包含本机路由的话(第一个路由地址10.120.32.1为本机网络IP),数据包是经过了10个路由器,而不是前面所说的74个路由器。
如何修改本机电脑上面的默认TTL值
通过修改本机上的TTL值可以混淆攻击者的判断(当然,很少有用户会这么做)。TTL值在注册表的位置是:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters (通过在cmd命令里面输入:regedit,然后回车的方式可以打开注册表)。其中有个DefaultTTL的DWORD值,其数据就是默认的TTL值了,我们可以修改DefaultTTL里面的TTL默认值,但不能大于十进制的255。
TTL=128 说明你直接和对方可以进行通信。TTL=64 跨多个路由器进行通信。ping 发出的是 hello 报文,基于ICMP 的协议,如果跨的路由器很多那就说明 TTL(time to live) 值就减了多少,每跨一个路由器就减1。
在IPv4包头中TTL是一个8 bit字段,如下图所示:
扩展资料
TTL的主要作用是避免IP包在网络中的无限循环和收发,节省了网络资源,并能使IP包的发送者能收到告警消息。
TTL 是由发送主机设置的,以防止数据包不断在IP互联网络上睁链慎永不终止地循环。转发IP数据包时,要求路由器至少将 TTL 减小 1。
TTL值的注册表位置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
其中有个DefaultTTL的DWORD值,其数据就是默认的TTL值了,我们可以修改,但不能大于悉敬十进制的255。Windows系统设置后重启才生效。
生存时间,就是一条域名解析记录在DNS服务器中的存留时间。当各地的DNS服务器接受到解析请求时,就会向域名指定的NS服务器(权威域名服务器)发出解析请求从而获得解析记录。
在获唤慧得这个记录之后,记录会在DNS服务器(各地的缓存服务器,也叫递归域名服务器)中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向NS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。
参考资料:百度百科-TTL
和XP是基本一样的,点击开始》运行,在运行对话框中输入regedit命令,d出注册派敏表编辑器,尘散枝依次打开HKEY_LOCAL_MACHINE/System/CurrentControlSet/Services/Tcpip/Parameters,找到DefaultTTL,将该值掘此修改为【十进制】的255,重新启动就行了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)