一个夜黑风高的晚上,有个同学找到我,说他的网络延迟好高
实际上是在ping IP/域名时看到的TTL值大小有疑问,误以为TTL值大小代表网络质量,那么具体了解下什么是TTL吧
TTL存活时间(Time To Live,简写TTL)
数据包存活时间(英语:Time To Live,简写TTL)是计算机网络技术的一个术语,指一个数据包在经过一个路由器时,可传递的最长距离(跃点数)。每当数据包经过一个路由器时,其存活次数就会被减一。当其存活次数为0时,路由器便会取消数据包并发送一个ICMP TTL数据包给原数据包的发出者。其设计目的是防止数据包因不正确的路由表等原因造成的无限循环而无法送达及耗尽网络资源。
TTL 值越小越好吗?
“TTL”的值越小越好的说法显然是不对的,相反,应该说是“TTL”的值越大越好才对,因为“TTL”的值越大,说明发送数据包经过路由器越少,而经过路由器越少,说明越快到达目的地,速度当然也就越快。
TTL 缺省值:
不同的操作系统,TTL 缺省值是不相同的。默认情况下:
Linux系统的TTL值为64或255
Windows NT/2000/XP系统的TTL值为128
Windows 98系统的TTL值为32
UNIX主机的TTL值为255
自定义TTL 缺省值:(取值范围0~255)
Windows:
注册表展开“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\ Parameters”,找到“DefaultTTL”,将该值修改为十进制的“255”,重新启动服务器系统后即可
Linux:
编辑文件 /etc/sysctl.conf ,定义 net.ipv4.ip_default_ttl 值,保存后 sysctl -p 使其生效
# echo 64 > /proc/sys/net/ipv4/ip_default_ttl #重启后无效
# sysctl -a | grep default_ttl
net.ipv4.ip_default_ttl = 64
或
# vim /etc/sysctl.conf #重启后有效
net.ipv4.ip_default_ttl= 255
# sysctl -p | grep default_ttl
net.ipv4.ip_default_ttl = 128