一种分段计算网络延迟的测量方法与流程

文档序号:11147719阅读:858来源:国知局
一种分段计算网络延迟的测量方法与制造工艺

本发明涉及一种网络延迟的测量方法,具体涉及一种分段计算网络延迟的测量方法。



背景技术:

网络延迟是指各式各样的数据在网络介质中通过网络协议(如TCP/IP)进行传输,如果信息量过大不加以限制,超额的网络流量就会导致设备反应缓慢,造成网络延迟。网络延迟是现代网络的重要指标,它对提供QoS保证、通信工程、错误和拥塞检测、网络性能调试、网络管理都需要对网络延迟进行精确测量。测量网络延迟主要采用主动测量和被动测量两种方式,主动测量方式通过发送测量包来获取链路的延迟;被动测量方式使用接入网络的探针来记录和统计链路上数据包的网络特性。

被动测量方式可以通过两点监控或者单点监控来完成。两点监控测量方法要求所有的设备必须时间同步,而且因为需要查看包头或者数据包内容来判断是否为同一个包,网络流量越大,从大量数据包中过滤和鉴别数据包对系统性能的影响也会越大,在大规模网络中,两点监控的被动测量方法不具备很好的可扩展性,单点监控利用了TCP的确认机制,但仅限于检测TCP数据流。

主动测量的方式为从A点发起向B的探测包,并等待从B到A的回复包,从而计算出从A到B的网络延迟。目前实际工作中最常用的是使用ping命令利用ICMP进行测量。但是要想测量从A到B的延迟,必须在主机A上发起这个命令,对于一个大的网络管理而言,例如企业网或者城域网,则不方便管理员主动探测各个子网内主机到特定目标的网络延迟。



技术实现要素:

为了克服上述现有技术的不足,本发明提供一种分段计算网络延迟的测量方法,本发明采用分段测量方式,既可进行主动测量也可进行被动测量。不需要各个终端主机配合,在网络边界上测量内网节点与外网服务之间的网络延迟。

为了实现上述发明目的,本发明采取如下技术方案:

一种分段计算网络延迟的测量方法,所述方法包括如下步骤:

(1)部署测量设备和被测量设备;

(2)所述测量设备对所述被测量设备进行数据包检测;

(3)基于数据包检测分别对ICMP协议和TCP协议进行被动分段延时测量或主动分段延时测量。

优选的,所述步骤(1)中,所述测量设备包括网络设备D和与其相连接的一台操作主机M,所述D串接在内网和外网的边界出口处;所述被测设备包括目标网络节点S和内网终端节点C,所述S与所述C之间通过所述D进行通信。

优选的,所述步骤(2)包括如下步骤:

步骤2-1、进行分段延时测量时,所述M向所述D下发的ACL规则为针对所述S和所述C之间通信的两个方向的数据包;

步骤2-2、从所述S发往所述C的数据包和从所述C发往所述S的数据包,都会经过所述D,并且由所述D根据ACL规则复制转发给所述M一份。

优选的,所述步骤2-1中,所述ACL规则包括目标IP地址、源IP地址、源端口、目标端口和网络协议信息或者其中的一部分。

优选的,所述步骤(3)中,所述ICMP协议进行被动分段延时测量包括如下步骤:

步骤3-1-1、所述C向所述S发送request包,即“C ping S”;

步骤3-1-2、所述M在收到的数据包中取出ID相同的一系列数据包,并取出相邻的三个包,所述三个包包括:

所述C发送给所述S的第n个request包,n为seq值,指ICMP协议中用于标识询问方发出的request包的序列号,每次增加1;

所述S针对seq为n的request包的回应包,所述回应包用于收到了询问方发起的某个request包,包中带有原request包中的seq;

所述C发送给所述S的第n+1个request包;

步骤3-1-3、分别取出所述三个包到达所述M的时间戳:t1、t2和t3,则(t2-t1)/2为所述M到所述S的延迟,(t3-t2)/2为所述M到所述C的延迟,所述C到所述S的总延迟为:(t2-t1)/2+(t3-t2)/2即:(t3-t1)/2。

优选的,所述步骤(3)中,所述TCP协议进行被动分段延时测量包括如下步骤:

步骤3-2-1、所述M收到的数据包中找出五元组相同的一系列数据包,取出与所述M三次握手的数据包包括:所述C发给所述S的syn包,所述S回复给所述C的syn+ack包,所述C给所述S发的握手确认包;

步骤3-2-2、取出与所述M三次握手的数据包到达所述M的时间戳:t1,t2和t3,则(t2-t1)/2为所述M到所述S的延迟,(t3-t2)/2为所述M到所述C的延迟,所述C到所述S的总延迟为:(t2-t1)/2+(t3-t2)/2即:(t3-t1)/2。

优选的,所述步骤(3)中,所述ICMP协议进行主动分段延时测量包括如下步骤:

步骤3-3-1、所述M模拟所述C向S发送seq为n的request包,并记录下发送的时间戳t1;

步骤3-3-2、当所述M获取到所述S对seq为n的request包的回应包,记录下时间戳t2,则所述M与所述S之间的延迟为:(t2-t1)/2;

步骤3-3-3、所述M模拟所述S向所述C发送seq为m的request包,并记录下发送的时间戳t3;

步骤3-3-4、当所述M获取到所述C对seq为m的request包的回应包,记录下时间戳为t4,则所述M与所述C之间的延迟为(t4-t3)/2,所述C到所述S的总延迟为(t2-t1)/2+(t4-t3)/2。

优选的,所述步骤(3)中,所述TCP协议进行主动分段延时测量包括如下步骤:

步骤3-4-1、所述M模拟所述C向所述S发送syn包,并记录下发送的时间戳t1;

步骤3-4-2、当所述M得到所述S对syn包的回应包syn+ack时,记录下时间戳t2,则M与S之间的延迟为(t2-t1)/2;

步骤3-4-3、所述M模拟S向所述C发送syn包,并记录下发送的时间戳t3;

步骤3-4-4、当所述M得到所述C对syn包的回应包syn+ack时,记录下时间戳t4,则M与C之间的延迟为(t4-t3)/2,所述C到所述S的延迟为(t2-t1)/2+(t4-t3)/2。

与现有技术相比,本发明的有益效果在于:

本发明采用分段测量方式,进行主动测量和被动测量,每一种测量方法里面又分为使用TCP和ICMP两种协议进行测量。由于它不需要操作待测双方的机器,在网络边界上测量内网节点和外网服务之间的网络延迟,同时也方便管理员主动探测各个子网内主机到特定目标的网络延迟,因此适用于大规模网络,例如企业网,城域网,运营商网内的特定链路延迟的测量。

附图说明

图1是本发明提供的一种分段计算网络延迟的测量方法的流程图

图2是本发明提供的网络延迟测量设备的结构示意图

图3是本发明提供的被动式分段延迟测量示意图

图4是本发明提供的主动式分段延迟测量示意图

具体实施方式

下面结合附图对本发明作进一步详细说明。

本发明提出了一种分段计算网络延迟的测量方法,可以采用被动监测或主动注入的 方式来测量一个完整访问路径中的不同阶段的网络延迟,包括如下步骤:

步骤1、部署测量设备和被测量设备;

如图2所示,测量设备包括专用测量设备D和与其相连接的一台处理服务器M,所述D串接在内网和外网的边界出口处(例如边界路由);所述被测设备包括目标网络节点S和内网终端节点C,所述S与所述C之间通过所述D进行通信。

步骤2、所述测量设备对所述被测量设备进行数据包检测;

测量设备D将经过它的流量根据ACL规则从指定的网络端口转发给处理设备M,也可以将特定端口的输入数据注入到网络中。处理设备M可以向D下发ACL规则,并接收测量设备D转发出来的流量,也可以通过特定的端口向测量设备D发送流量,测量设备D会将M发送给它的数据包发送到网络中。

所述ACL规则包括目标IP地址、源IP地址、源端口、目标端口和网络协议信息或者其中的一部分。

步骤3、基于数据包检测分别对ICMP协议和TCP协议进行被动分段延时测量或主动分段延时测量。

如图3所示,在使用被动方式测量时,M利用D设备监测C和S之间的通信,并根据三个连续的数据包来计算从C到S以及从S到C的网络延迟,并根据这两个延迟,计算出C和S之间的网络延迟,该方法支持使用ICMP和TCP两种协议的数据包来进行被动测量。

对于ICMP协议来说,当启用echo询问(request)和应答(reply)时(即C ping S)时,M在收到的数据包中取出ID相同的一系列数据包,并取出相邻的三个包。假设这三个包分别为:

(1)C发送给S的request包,包中的seq为:n(seq是一个整数,指ICMP协议中用于标识询问方发出的request包的序列号,每次增加1);

(2)S针对seq为n的request包的回应包(回应包用于表示收到了询问方发起的某个request包,包中带有原request包中的seq);

(3)C发送给S的第n+1个request包;

分别取出这三个数据包到达M的时间戳:t1,t2,t3,则:(t2-t1)/2为M到S的延迟,(t3-t2)/2为M到C的延迟,C到S的总延迟为:(t2-t1)/2+(t3-t2)/2即:(t3-t1)/2

对于TCP协议,M在收到的数据包中找出五元组(源ip,目的IP,源端口,目的端口,协议)相同的一系列数据包,这些数据包属于同一连接的通信过程。并取出其三次 握手的包进行分析。三次握手的包分别为:

(1)C发给S的syn包,时间戳为:t1,syn包为TCP协议连接的一个数据包;

(2)S回复给C的syn+ack包,时间戳为t2,syn+ack包为syn包的回应包;

(3)C给S发的握手确认包,时间戳为t3;

则:(t2-t1)/2为M到S的延迟,(t3-t2)/2为M到C的延迟,C到S的总延迟为:(t2-t1)/2+(t3-t2)/2即:(t3-t1)/2。

如图4所示,在使用主动方式测量时,M向C和S各发送一个数据包。发往C的数据包,目的IP为C,源IP为S,发往S的数据包目的IP为S,源IP为C。在C和S对数据包做出响应后,专用设备D根据ACL规则获取到对应的响应包并转交给M,从而M并计算出从C到S以及从S到C的网络延迟,并根据这两个延迟,计算出C和S之间的网络延迟。该方法同样支持使用ICMP和TCP两种协议的数据包来进行主动测量。

对于ICMP协议来说,首先使用M模拟C向S发送seq为n的echo request包,并记录下发送的时间戳:t1,当M获取到S对seq为n的echo request包的echo reply包时,记录下时间为t2,则M与S之间的延迟为:(t2-t1)/2。同理,使用M模拟S向C发送seq为m的echo request包,并记录下发送的时间戳:t3,当M获取到C对seq为m的echo request包的echo reply包时,记录下时间为t4,则M与C之间的延迟为:(t4-t3)/2,C到S的总延迟为:(t2-t1)/2+(t4-t3)/2。

对于TCP协议,首先使用M模拟C向S发送syn包,并记录下发送的时间戳:t1,当得到S对M所发出syn包的回应包(syn+ack)时,记录下时间为t2,则M与S之间的延迟为:(t2-t1)/2。同理,使用M模拟S向C发送syn包,并记录下发送的时间戳:t3,当得到C对M所发出syn包的回应包(syn+ack)时,记录下时间为t4,则M与C之间的延迟为:(t4-t3)/2,C到S的总延迟为:(t2-t1)/2+(t4-t3)/2。注意:在使用TCP协议进行主动测量时,如果对方端口为打开,则回复包也可能为RST,此时不影响结果的测量。

最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1