TTL
=======================
例如我ping了一下网易。
Pinging www.163.com [113.106.194.220] with 32 bytes of data: Reply from 113.106.194.220: bytes=32 time=3ms TTL=60 Reply from 113.106.194.220: bytes=32 time=19ms TTL=60 Reply from 113.106.194.220: bytes=32 time=3ms TTL=60 Reply from 113.106.194.220: bytes=32 time=6ms TTL=60 Ping statistics for 113.106.194.220: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 3ms, Maximum = 19ms, Average = 7ms
这里TTL的值是60,可以估计出来是Linux操作系统。64-60+1=5,可以知道它经过了5个路由到了我这里。(加1是因为64是指0~64)
为什么不说是windows系统呢?128-60+1=69,经过了69个路由到的。其实这种情况不太可能,经过69个路由节点,那这网络基本可以说是瘫痪了。一般就找比ttl值大的而且与它最接近的应该就差不多了,经过路由节点一半都不会超过30个的。
如果真的特别纠结不知道应该是那个可以用tracert工具,linux下叫traceroute。linux下apt-get就能安装,window的话到tracert IP。
下面是我在ubuntu下traceroute 网易出来的结果
Tracing route to www.163.com [113.106.194.220] over a maximum of 30 hops: 1 1 ms 2 ms 4 ms 10.0.59.254 2 3 ms 3 ms 3 ms 10.0.59.254 3 7 ms 8 ms 2 ms 113.106.194.225 4 4 ms 3 ms 8 ms 220.243.136.2 5 5 ms 2 ms 3 ms 113.106.194.220 Trace complete.
这里是表示经过了5路由。和上面计算的就符合了。这就可以确定是linux系统了。
下面是在网上找到的各个系统的TTL字段值:
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