IP首部中的TTL字段是由路由器递减的,每经过一个路由器就将该字段减1,当TTL等于0时,就丢弃IP数据报。TTL(生存期)本来是按时间来计算的,但在IP协议的实现中,人们有些偷懒。
如果要想在Windows XP下看到TTL字段,最简单的办法是运行Ping命令。下面是运行“Ping 192.168.1.1”的结果,这条命令用于检查本计算机与192.168.1.1(该地址是市场上路由器的默认地址)结点的连通性。在返回的每行结尾,会显示出TTL值。
不同版本的操作系统默认的TTL值并不相同。在WindowsXP中默认的TTL值通常可以通过注册表文件进行修改,具体位置如下:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters中的“DefaultTTL”值。
另外,在WindowsXP系统下还可以运行另外一个与网络相关的命令“tracert”,这条命令是对TTL字段的直接应用。Tracert命令可以让用户看到IP数据报从一台主机传到另一台主机所经过的所有路由。例如,在南开大学学生宿舍通过校园网访问南开大学主页www.nankai.edu.cn,如果想知道,从宿舍计算机到学校服务器要经过哪些路由器?下面显示了输入“tracert www.nankai.edu.cn”后的执行结果。(www.daowen.com)
上面显示的IP地址就是数据报经过的路由器的IP地址。在这个例子中可以看到,访问本校服务器网站竟然要经过6次路由。可以想象,只是简单地单击网页,数据要经过多么繁复的周折才会到达服务器。
如果在命令中加入一个-h参数,则可以看到,tracert只是经过了h个路由器就结束了,如下所示。-h参数指定探测路由的最大跳数,在该例中把最大跳数设为3,路由探测没有到达指定的目的网站。
可能有人会问,提到了TTL值在哪里?其实,在tracert命令的实现中,是通过向目的地址发送一些短小的IP探测包来完成的。这些IP探测包的TTL值从1开始逐渐增加,直到到达目的地,或者TTL值到达了所设定的最大跳数。当把-h参数设为3时,tracert只发送了3个探测包,这就是不再能输出完整路由的原因。至于这些IP探测包是如何探测它们所到达的路由器的IP地址,又是如何把它返回给计算机的,则需要借助后面要讲到的ICMP报文,实质上,IP探测包里面封装的是ICMP报文。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。