APP下载

数据包探测法在解决网络故障中的应用

2016-07-06西安翻译学院西安710105

电子测试 2016年12期
关键词:网络故障数据包路由

李 军(西安翻译学院,西安,710105)



数据包探测法在解决网络故障中的应用

李 军
(西安翻译学院,西安,710105)

摘要:网络故障排查是一个十分复杂的过程。本文分析了网络故障排查的特点和常用方法,提出了以网络探测数据包发送和确认为基础的通信链路检查方法。

关键词:网络链路;故障排查

0 引言

网络是由若干条通信链路组成的,通信链路是网络运行的基础,其传输质量是数据能否正确传输的关键。一般的网络中心对外有多个通信链路,包括内部到各个外部节点。在实际通信过程中,经常出现由于网络故障,导致数据不能正常进行收发的情况。

1 通信链路及故障检查常用方法

典型的通信链路可以描述如图1所示。从图中可以看出,通信链路上的关键节点一般有:①内部主机;②核心交换机;③通信交换机;④通信路由器;⑤对方路由器;⑥对方交换机;⑦对方主机。

当网络链路发生故障时,最直接的处理方法就是人工对通信线路和网络中的各个节点设备进行配置检查。人工检查能够发现设备配置上的错误,但在某些情况下,难以直观的从设备配置上看出故障发生的原因,即各个通信节点配置检查都正确,但整条链路就是不通。而且,由于一个通信链路上的节点由不同的单位分管,设备配置检查往往由各单位自行完成,难免会出现检查人员水平参差不齐、对链路配置理解不一致和掌握不准确的情况,从而导致检查结果不够客观。

图1 典型的通信链路

在链路检查过程中,还可以使用PING命令发送ICMP数据包来验证链路的通断性,对于有多个中间通信节点的链路来说,PING命令和TRACEROUTE命令结合,可以检查出到哪个中间节点链路停止响应。这种方法具有使用方便的优点。但在某些情况下却不太适用,主要有以下几种情况:

(1)在中间通信节点较多的情况下,为了安全,路由设置不指向所有的中间节点,仅指向链路两端的目标节点。如在图1中,节点④通信路由器配置指向节点⑦对方主机的路由,并不配置指向节点⑥对方交换机的路由。而PING数据包是需要通过返回应答包来确认链路正确的,由于中间节点路由配置的特点,往往对于中间节点的ICMP数据包无法收到应答信息,导致检查过程难以进行,不能准确判断是哪个中间节点出现了问题导致路由不通。

(2)对于某些有特殊安全要求的方向,设置了网络加密机进行数据的加解密,网络加密机对于大多数网络协议进行了屏蔽和加密,必须在网络中成对使用。在这种情况下,PING命令往往只能在两个网络保密机的两端进行测试,不能跨过一个保密机到达链路的中间节点。导致难以实现故障节点的准确定位。

(3)由于PING命令发出的ICMP数据包协议类型不同于实际收发的组播或点播格式数据,因此仅能够测试路由链路,不能够测试组播链路的正确性。

2 数据包探测原理及实现

2.1 基本过程

数据包探测的基本过程如图2所示,该方法需要在内部网络选择一台能够与对方主机进行路由连接的计算机作为探测主机。主要分为以下步骤:

2.1.1 从内网探测主机向对方主机发送探测数据包。数据包的发送采用软件自动设定参数进行,根据需要可以采用以下两种方式:

(1)点播。该方式主要是为了验证从内网探测主机到对方主机的路由正确性。在采用点播方式发送时,目标地址为对方主机的IP地址。

(2)组播。该方式主要是为了验证路由及组播协议配置的正确性。在采用组播方式发送时,组播地址和端口号为内部网络向该外部单位实际发送数据的地址和端口。

2.1.2 如果对方主机接收到内网发送的数据,说明该方向链路通信正常,结束探测过程。如果对方主机没有接收到内网发送的数据,则说明该方向链路存在问题,进行下一步的检测。

2.2 中间节点故障定位

在数据链路的各个中间节点上,检查数据包的命令为:show interfaces *。其中 * 表示在该通信节点上进行数据通信的端口名称。该命令输出的结果信息如图3所示,图中加粗字体部分表示5分钟内输入输出该接口的数据量,分别以平均位计数和平均包计数进行显示。因为发送的探测数据计量单位是包,所以仅关心平均包计数的变化。

以每秒发送50个数据包为例,假设原来该端口5分钟内平均输入速率分别为每秒0个、1个、5个、10个数据包,且均匀分布,则从开始发送数据起,端口的输入变化和时间关系如表1所示。由表中可以看出,当开始发送探测数据包后,导致端口速率发生稳定变化,发送5分钟后,端口速率达到稳定值。如果端口的输入速率符合此规律,则说明发送的探测数据包已经到达该端口,该端口之前的各个节点配置和线路没有问题。

表1:端口包速率变化

2.3 数据发送软件设计

数据发送软件设计为能够同时向多个组播和UDP地址发送数据,也能够接收任意源和指定源组播。在发送时,可以根据需要设置每次发送数据包的长度、个数以及两次数据发送之间的间隔,并能够进行发送包、接收包统计。该软件不仅能够用于发送探测数据包,还可以用于通信链路的两端计算机上,接收任意组播的数据,达到独立检测和验证链路正确性的目的。

(2)包计数。为了在通信链路两端能够确认数据包的唯一性,在每个发送的数据包上加入了包序号,以此来判断是否为本软件发送出的包,并且能够在发生丢包的时候准确定位其在发送序列中的位置,为进一步的故障排除提供了详细依据。简化的发送端实现代码如图5所示。

3 运行效果

数据包探测法在处理网络链路故障时得到了很好的应用。不仅能够将问题准确定位,而且效率较高,使用该方法,经常只用几分钟就可以解决人工花费几个小时甚至一天多的问题。

4 结论

本文提出的方法能够满足日常网络故障定位和问题解决的需要,该方法有以下特点:

(1)思路明确,针对性强,对网络链路故障特点有很好的适应性。

(2)软件界面可操作性好,工作稳定。

(3)检测结论明确,具有足够的说服力。

参考文献

[1]田萌.一种探测网络拓扑的新方法及其在向量网的应用[D].北京交通大学,2014.

[2]何子昂.10kV架空线故障定位系统的研究与开发[D].华南理工大学,2012.

Application of data packet detection method in solving network fault

Li Jun
(Xi`an FanYi University,Xi`an,710105)

Abstract:Network fault investigation is a very complex process.This paper analyzes the characteristics and common methods of network fault detection, and puts forward a communication link checking method based on network detection packet transmission and confirmation.

Keywords:network link;failure investigation

基金项目:电子商务专业综合改革试点

作者简介

性别:男,出生:1977年7月,籍贯:陕西西安,职称:工程师,西安翻译学院电子工程系教师,研究方向:计算机网络。

猜你喜欢

网络故障数据包路由
二维隐蔽时间信道构建的研究*
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
铁路数据网路由汇聚引发的路由迭代问题研究
多点双向路由重发布潜在问题研究
一种基于虚拟分扇的簇间多跳路由算法
VxWorks网络存储池分析在网络故障排查中的应用
基于信息流的RBC系统外部通信网络故障分析
SmartSniff
探究路由与环路的问题
Wireshark协议解析在网络故障排查中的应用