TTL和DNS TTL的区别

什么是TTL?

  TTL是IP协议包中的一个值,指定数据报被路由器丢弃之前允许通过的网段数量。

在很多情况下数据包在一定时间内不能被传递到目的地。解决方法就是在一段时间后丢弃这个包,然后给发送者一个报文,由发送者决定是否要重发。TTL是由发送主机设置的,以防止数据包不断在IP互联网络上永不终止地循环。转发IP数据包时,要求路由器至少将TTL减小1。当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者。

TTL值帮助我们大致的识别主机的操作系统类型:

UNIX及类UNIX操作系统ICMP回显应答的TTL字段值为255

Compaq Tru64 5.0 ICMP回显应答的TTL字段值为64

微软Windows NT/2K操作系统ICMP回显应答的TTL字段值为128

微软Windows 95操作系统ICMP回显应答的TTL字段值为32

特殊情况:

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

 

什么是DNS TTL值?

TTL(Time-To-Live),简单的说它表示一条域名解析记录在DNS服务器上缓存时间.当各地的DNS服务器接受到解析请求时,就会向域名指定的DNS服务器发出解析请求从而获得解析记录;在获得这个记录之后,记录会在DNS服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向DNS服务器发出请求,而是直接返回刚才获得的记录;而这个记录在DNS服务器上保留的时间,就是TTL值。

合理设置域名TTL值:

1、增大TTL值,以节约域名解析时间

通常情况下域名解析记录是很少更改的。我们可以通过增大域名记录的TTL值让记录在各地DNS服务器中缓存的时间加长,这样在更长的时间段内,我们访问这个网站时,本地ISP的DNS服务器就不需要向域名的NS服务器发出解析请求,而直接从本地缓存中返回域名解析记录。

TTL值是以秒为单位的,通常的默认值都是3600,也就是默认缓存1小时。我们可以根据实际需要把TTL值扩大,例如要缓存一天就设置成86400。

2、减小TTL值,减少更换空间时的不可访问时间

更换域名空间时会对DNS记录进行修改,因为DNS记录缓存的问题,新的域名记录在有的地方可能生效了,但在有的地方可能等上一两天甚至更久才生效,只就导致有部分用户在一段时间内无法不可访问网站了。

  1.   为了尽可能的减小这个各地的解析时间差,合理的做法是:
  2.   先查看域名当前的TTL值。
  3.   修改TTL值为可设定的最小值,建议为60秒。
  4.   等待一天,保证各地的DNS服务器缓存都过期并更新了记录。
  5.   设置修改DNS解析到新的记录,这个时候各地的DNS就能以最快的速度更新到新的记录。
  6.   确认各地的DNS已经更新完成后,再TTL值设置成常用的值(如:TTL=86400)。

在电脑运行中,当你PING一个IP时,会出现一些数据,那么TTL=114代表什么意思?

  1.   TTL是一个ip协议的值,它告诉网络,数据包在网络中的时间是否太长而应被丢弃。有很多原因使包在一定时间内不能被传递到目的地。
  2.   TTL的初值通常是系统缺省值,是包头中的8位的域。TTL的最初设想是确定一个时间范围,超过此时间就把包丢弃。由于每个路由器都至少要把TTL域减一,TTL通常表示包在被丢弃前最多能经过的路由器个数。当记数到0时,路由器决定丢弃该包,并发送一个ICMP报文给最初的发送者。
  3.   不同操作系统的ttl初始值是不同的,Linux系统的TTL值为64或255,Windows NT/2000/XP系统的默认TTL值为128,Win7系统的TTL值是64,Windows 98系统的TTL值为32,UNIX主机的TTL值为255。
  4.   因此如果用户主机是win2000系统,用128-114=14,表示用户主机达到目标主机经过了14个路由器节点。