1 TTL

1.1 TTL基数

是指对于一个没有经过任何网关和路由的网络直接ping对方系统得到的TTL的值。回顾TTL在IP协议中的位置【温故而知新】。

IP协议之TTL_IP

在IPv4中, TTL是IP协议的一个8个二进制位的值【0-255】. 这个值可以被认为是数据包在internet系统中可以跳跃的次数上限. TTL是由数据包的发送者设置的, 在前往目的地的过程中, 每经过一台主机或设备, 这个值就要减少一点. 如果在数据包到达目的地前, TTL值被减到了0,那么这个包将作为一个ICMP错误的数据包被丢弃。

1.2 TTL查看

要检测目标主机的TTL设置,可以使用ping命令【ICMP协议】来查看。
查看本机TTL设置

[root@ABC build]# ping 127.0.0.1
PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.015 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.028 ms

查看远程主机TTL:

[root@ABC build]# ping 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.
64 bytes from 8.8.8.8: icmp_seq=2 ttl=40 time=51.6 ms
64 bytes from 8.8.8.8: icmp_seq=3 ttl=40 time=51.6 ms

TTL的设置一般情况下与主机的操作系统相关,当然也可以手动去修改。

操作系统

TTL

UNIX

255

Linux

64

MS Windows 95/98/NT 3.51

32

MS Windows NT 4.0/2000/XP/2003 Server

128

FreeBSD 2.1R

64

VMS/Multinet

64

Windows XP

128

当不知道目的主机的操作系统的时候,我们可以根据TTL来猜测,但是不一定100%准确。

2 拓展-劫持

使用wireshark抓包分析网络流量,可以根据TTL的值来确定是否被劫持。

DNS、HTTP劫持后,一般通过检测TTL的变化或HTML元素检查来判定,判定方法可以从以下几个地方考虑:

  • 查看客户端抓包,服务器的TTL是否有较大波动,如果有较大的波动,很有可能百劫持。
  • 查看TTL的大小,根据网民的实际网络环境,初步判断网民到服务节点的路由个数【虽然比较难】,如果TTL的减量明显很少,只有1-5的减量,那很有可能是被劫持后的流量。