TTL是 Time To Live 的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量(一个路由器处理一次基本就相当于跨了一个网段)TTL是IPv4包头的一个8 bit字段

注意:TTL与DNS TTL有区别。二者都是生存时间,但一个指ICMP包的转发次数(跳数),一个指域名解析信息在DNS中的存在时间

在IPv4包头中TTL是一个8 bit字段(所以最大值为 2^8 - 1 = 256 -1 = 255),它位于IPv4包的第9个字节。如下图所示,每一行表示 32 bit(4字节),位从0开始编号,即0~31。image.png

TTL最大值

不同的操作系统,它的TTL值是不相同的。默认情况下,Linux系统的TTL值为64或255,Windows NT/2000/XP系统的TTL值为128,Windows 98系统的TTL值为32,UNIX主机的TTL值为255。域名的dns解析默认的TTL值一般是60。

TTL最大值为255,如UNIX操作系统的TT值初始默认TTL值就是225。不同的系统最大值也是有所不同,对于实验室环境所使用操作系统默认的TTL 最大值是128,所以要视情况而定。

WIN10 PC直接PING自己可以看到最大值为64
image.png

DNS TTL

TTL值全称是“生存时间(Time To Live)”,简单的说它表示DNS记录在DNS服务器上缓存时间,数值越小,修改记录各地生效时间越快。
当各地的DNS(LDNS)服务器接受到解析请求时,就会向域名指定的授权DNS服务器发出解析请求从而获得解析记录;

该解析记录会在DNS(LDNS)服务器中保存一段时间,这段时间内如果再接到这个域名的解析请求,DNS服务器将不再向授权DNS服务器发出请求,而是直接返回刚才获得的记录;而**这个记录在DNS服务器上保留的时间,就是TTL值**。

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