ping与tracert在铁路网络中的应用
2012-07-30王国壬孙建林
任 荣 王国壬 孙建林
任 荣:呼和浩特铁路局包头电务段 工程师 015000 内蒙古临河
王国壬:呼和浩特铁路局包头电务段 助理工程师 015000 内蒙古临河
孙建林:呼和浩特铁路局包头电务段 助理工程师 015000 内蒙古临河
TDCS、微机监测、办公网等局域网在铁路中的应用,实现了资源共享,极大地提高了生产和工作效率。当局域网出现故障时,如何运用一些网络命令分析、处理故障,已成为电务专业技术人员所面临的问题之一。为此,针对经常涉及的DOS命令ping与tracert,以及其工作协议ICMP进行相关分析,并提出运用案例。
1 ICMP协议分析
ICMP是Internet控制消息协议 (Internet Control Message Protocol),属于网络层协议,用于探测和报告IP数据在网络传输过程中产生的各种错误,提供错误诊断、拥塞控制、路径控制、路由器和主机信息的查询服务等功能。
ICMP报文分为查询报文和差错报文2大类:查询报文报告网络中路由器的状况及一个路由器的特定信息;差错报文报告路由器在处理IP数据过程中可能遇到的目标主机可否到达、网络拥塞、路由改变等问题。差错报文只向信源报告差错,不负责纠正差错,提供一致易懂的出错报告信息。信源收到返回的ICMP差错报文后,根据ICMP差错报文的类型,重发失败的数据包。ping使用ICMP的回应请求和应答消息来确定目标主机是否可到达,tracert同样也是根据ICMP的回应请求和应答消息来确定IP数据报的路由。
2 ping分析及应用
ping(互联网包探索器,PacketInternet Grope),用于测试网络连接量的程序。ping发送一个ICMP Echo Request数据包给目标,并报告是否收到所希望的ICMP Echo Reply数据包。
2.1 ping工作原理
利用网络上计算机IP地址的唯一性,给目标IP地址发送一个ICMP Echo Request数据包,再要求目标返回一个同样大小的ICMP Echo Reply数据包,来确定2台网络计算机是否连接相通,时延是多少。ping命令每秒发送一个数据包,并且为每个接收到的数据包打印一行输出。ping命令计算信号往返时间和 (信息)包丢失情况的统计信息,并且在完成之后显示一个简要总结。ping命令在程序超时或当接收到SIGINT信号时结束。
2.2 ping语法
ping[ -t] [-n count] [ -l size] target_name
参数说明如下。
-t:一直ping指定的计算机,直到从键盘按下Ctrl+C组合键中断ping程序。
-n count:发送count指定的Echo Request数据包数。通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,能够测试发送数据包的平均返回时间及时间的快慢程度,默认值为4。
-l size:发送指定数据量的Echo Request数据包。默认为32byte,最大值是65200byte。
target_name:有效的目标主机名或者是互联网IP地址。
在呼铁局监测网中,车间1主机 IP:192.168.121.11,车间2主机IP:192.168.12.11,从车间1ping车间2的一般操作方法如下。
C:>ping 192.168.12.11
Pinging 192.168.12.11 with 32 bytes of data:
Reply from 192.168.12.11:bytes=32 time=23ms TTL=122
Reply from 192.168.12.11:bytes=32 time=20ms TTL=122
Reply from 192.168.12.11:bytes=32 time=20ms TTL=122
Reply from 192.168.12.11:bytes=32 time=20ms TTL=122
Ping statistics for 192.168.12.11:
Approximate round trip times in milli-seconds:
Minimum=20ms,Maximum=23ms,Average=20ms
在默认情况下,ping只发送4个数据包,通过ping命令语法参数-n可以自己定义发送数据包的个数,对衡量网络速度很有帮助,比如想知道发送10个数据包返回的平均时间为多少、最快时间为多少、最慢时间为多少,就可以通过运行ping-n 10 192.168.12.11命令获知,运行该命令后统计信息如下。
Ping statistics for 192.168.12.11:
Packets:Sent=10,Received=10,Lost=0(0%loss),
Approximate round trip times in milli-seconds:
Minimum=20 ms,Maximum=20 ms,Average=20 ms
从以上结果可知,在给192.168.12.11发送10个数据包的过程当中,返回了10个,这10个数据包当中返回速度最快为20 ms,最慢为20 ms,平均速度为20 ms。在默认的情况下ping发送的数据包大小为32byte,也可以自己定义其大小,但最大只能发送65200byte。在TDCS网络中通过发送多个大字节的数据包,根据数据包的统计信息来排除网络故障。
此外,当ping不通目标主机时,ping会给出不同的返回信息,根据不同的返回信息就可以确定相应的故障情况。ping的返回信息一般有以下几种情况。
1.Request Timed Out:表示在路由表中可查到目标路由,目标主机可以到达,目标主机因为其他原因拒绝接收源主机发送的数据包,造成数据包丢失。
2.Destination Net Unreachable:表示路由表中无法查到目标路由,目标主机不存在或者没有跟目标主机建立连接。
3.Bad IP address:表示没有连接到DNS服务器,或者无法解析目标IP地址,或者IP地址不存在。
4.Source quench received:表示目标或中途的服务器繁忙无法回应。
3 tracert分析及应用
tracert(跟踪路由,为 trace router的缩写),是路由跟踪实用程序,用于确定IP数据报文访问目标所采取的路径。tracert命令用 IP生存时间(TTL)字段和ICMP差错报文来确定从一个主机到网络上其他主机的路由。路径上的路由器在转发数据包前,数据包字段TTL至少递减1,数据包上的TTL到达0时,路由器将ICMP Time Exceeded报文发送回源系统。
3.1 tracert工作原理
tracert通过向目标发送不同 IP生存时间(TTL)值的ICMP Echo Request数据包,来确定到达目标的路径。源主机首先给目的主机发送一个TTL=1的数据包,而经过的第1个路由器收到这个包以后自动把TTL减1,TTL变为0以后,第1个路由器就把这个包给抛弃了,并同时产生一个ICMP Time Exceeded数据包给源主机。源主机收到这个消息后,确认出这是第1个路由器,一般要测试3次,统计数据包来回的时间,打印出第1条记录;源主机再发一个TTL=2的数据包给目的主机,第1个路由器收到后,将TTL减1,TTL变为1,再转发该包;第2个路由器收到该包后,将TTL减1,TTL变为0,发回ICMPTime Exceeded数据包;源主机收到该消息后,确认出这是第2个路由器;依次类推,直到目标主机或跃点达到最大值为止。
通过检查中间路由器发回的ICMP Time Exceeded数据包与目标返回的ICMP Echo Reply数据包可确定路径中的所有路由器。默认情况下跃点的最大数量是30,可使用-h参数指定。但是,某些路由器不会为其TTL值已过期的数据包返回ICMP Time Exceeded的数据包,而且这些路由器对于tracert命令不可见。在这种情况下,将为该跃点显示一行星号(*)。按顺序打印出返回ICMP Time Exceeded数据包的路径中的近端路由器接口列表。如果使用-d选项,则 tracert实用程序不在每个IP地址上查询DNS。
3.2 tracert语法
tracert[- d] [- h MaximumHops] [-w Timeout] target_name
参数说明如下。
-d:防止tracert试图将中间路由器的IP地址解析为其名称。这样可加速显示tracert的结果。
-h MaximumHops:指定搜索目标 (目的)的路径中存在的跃点最大数,默认值为30个跃点。
-w Timeout:指定等待 ICMP Time Exceeded数据包或ICMP Echo Reply数据包 (对应于要接收的给定ICMP Echo Request消息)的时间 (以毫秒为单位)。如果超过规定时间内未收到消息,则显示一个星号(*)。默认的超时时间为4000(4s)。
target_name:指定目标,可以是IP地址或主机名。
3.3 举例
在下例中,从车间1tracert车间2主机,ICMP Echo Request数据包必须按顺序通过6个路由器,才能到达目标主机:192.168.12.11。目标主机的默认网关是192.168.121.1。数据包被转发的路径以列表形式显示,其中包含源主机与目标主机之间路径中的近侧路由器接口。近侧接口是指路径中距离发送主机最近的路由器的接口。如果使用tracert命令时不带参数,tracert显示帮助。
C:>tracert 192.168.12.11 -d
上述列表中的第一行说明到车间2主机的路由所经过的第1个路由器的近侧接口是192.168.121.1,向第1个路由器发送的3次测试数据包的往返时间分别为1 ms,<1 ms,<1 ms。列表中其他行比照第一行分析。在上面的tracert命令中,若在tracert后增加输入空格-w空格1,运行程序后,返回的结果列表中第5行显示为5***Request timed out,表示在设定的时间1 s内没有收到该跃点返回的数据包信息,所以无法确定路由中的这一跳路由器。其他行运行结果,路由器的IP没有变化,每行的往返时间略有变化,表示在设定的时间1 s内,收到了路径中其他跃点的回复信息,并给出每个测试数据包所需要的时间。若在tracert后增加输入空格-h空格5,运行程序后,返回的结果列表中没有第6、第7行信息,即本程序在搜索到车间2主机的路径的过程中,只将数据包经过5个路由器转发后结束。
4 结束语
通过上述分析,不难发现了解和运用DOS命令对电务专业人员的重要性。随着联锁、监测等局域网络在铁路的应用,大量的通信设备投入使用,对电务专业技术人员的知识体系提出了新的要求,不能仅仅局限于铁道信号专业领域,还需要在计算机、通信专业等方面有所提高。
[1] 马雪松,褚建立.网络管理与工具软件应用[M] .北京:清华大学出版社,2010.
[2] 马秀峰,元小涛.计算机网络技术基础与应用[M] .北京:北京大学出版社,2010.