网络故障诊断 使用TTL分析网络故障

   一、 TTL简介
    TTL,全称是Time To Live,中文名为生存时间,它是IP报头中一个非常重要的参数。通过TTL的值,我们可以判断出当前网络IP层的工作状况。
    TTL告诉网络中的路由器数据包在网络中的时间是否太长而应被丢弃,TTL的最初设想是确定一个时间范围,超过此时间就把包丢弃。由于数据包每经过一个路由器时,TTL值都会至少被路由器减1,所以TTL值通常表示包在被丢弃前还能最多经过的路由器个数。当TTL值为0时,路由器丢弃该数据包,并发送一个ICMP报文给数据包的最初发送者。
    有很多原因会导致数据包在一定时间内不能被传递到目的地。例如,不正确的路由表配置可能导致数据包的无限循环,而解决方法就是在一段时间后丢弃这个数据包,然后给发送者发送一个报文,由发送者决定是否重发该数据包。当网络出现这种情况时,数据包就会在路由表中配置错误的路由器处重复发送,每发送一次,TTL值减1,直到TTL为0时路由器丢弃该数据包,造成网络中数据传输错误。
    操作系统和传输协议不同,对应TTL的默认值也不同。表1列出了常见操作系统通过TCP和UDP协议传输时的TTL默认值。
操作系统                                       TCP传输             UDP传输
AIX                                                       60                         30
DEC Patchworks V5                            30                          30
FreeBSD 2.1                                         64                          64
HP/UX 9.0x                                         30                           30
HP/UX 10.01                                       64                          64
Irix 5.3                                                  60                          60
Irix 6.x                                                  60                          60
UNIX                                                  255                        255
Linux                                                    64                          64
MacOS/MacTCP 2.0.x                        60                          60
OS/2 TCP/IP 3.0                                 64                          64
OSF/1 V3.2A                                       60                         30
Solaris 2.x                                           255                        255
SunOS 4.1.3/4.1.4                               60                          60
Ultrix V4.1/V4.2A                              60                          30
VMS/Multinet                                    64                         64
VMS/TCPware                                   60                         64
VMS/Wollongong 1.1.1.1                   128                       30
VMS/UCX (latest rel.)                       128                      128
MS Windows 95/98/NT 3.51            32                          32
Windows NT 4.0/2000/XP/2003 Server 128                 128

(表1 不同操作系统的TTL默认值)

 

  二、 查看数据包的TTL值并分析传输故障

  网络中的网络设备,其内部都是由操作系统进行处理的(有些硬件设备将系统预装在了硬件芯片里面),在网络遇到传输故障时,我们可以使用网络检测软件,结合上表的信息对网络中流通的数据包进行检测,查看数据包的TTL值,以确定故障是否由错误的路由等原因引起。图1是使用科来网络分析系统5.0查看一个数据包TTL值的情况。

 

 

  (图1 科来网络分析系统5查看到的TTL值)

  图中的生存时间(TTL)是247,结合表1,确定出这个数据包在从源端(这里是61.139.2.69)到目的端(这里是192.168.10.44)共经历了255-247=8个路由器,且在传输过程中未出现故障。

  注意:

  1. 确定数据包在网络中经历了多少个路由器,可用数据包源端设备的TTL默认值减去捕获到的数据包TTL值;

  2. 在不知道数据包源端设备的默认TTL时,一般用大于捕获数据包的TTL,且最接近这个TTL的默认值。

  3. TTL字段长1个字节,所以TTL的最大值255;

  通过查看数据包的TTL,可以确定网络传输是否正常。如果捕获到的数据包的TTL值过小,则表示网络中很可能存在传输故障,应及时检查网络中三层设备的路由表配置,以及各主机上的路由表信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值