一种用于OWAMP和TWAMP的发包装置及方法与流程

文档序号:15357878发布日期:2018-09-05 00:13阅读:478来源:国知局

本发明涉及传输数据帧的通信网络领域,具体来讲是一种用于owamp(one-wayactivemeasurementprotocol,单向主动测量协议)和twamp(two-wayactivemeasurementprotocol,双向主动测量协议)的发包装置及方法。



背景技术:

当今的internet(互联网)不断地在变化着自己的位置,网络中流动的“比特”所代表的内容已从原来单纯的数据不断向多媒体演变。网络中信息流量在不断增长,基于internet的各种业务也在飞速发展,尤其是实时性通信业务则更是如此。

一方面,由于多媒体业务占去了大量的带宽,导致现有网络要保证的关键业务就难以得到可靠的传输;另一方面,实时性通信业务对网络传输延时、延时抖动等特性较为敏感,当网络上有突发性高的ftp(filetransferprotocol,文件传输协议)或者含有图像文件的http(hypertexttransferprotocol,超文本传输协议)等业务时,实时业务就会受到很大影响。

因此,如何提高ip网络的传输效率、确保关键业务的通信带宽就成为人们关注的热点问题。另外,由于ip网络基于面向非连接的tcp/ip(transmissioncontrolprotocol/internetprotocol,传输控制协议/网际协议)技术,它在传送实时性很强的通信业务时,如何保证通信质量成为了必须解决的重要问题。

目前,提高ip网络的传输效率以及ip网络保证实时性业务通信质量面临的最严峻挑战是网络延时问题。该问题源于ip网络(tcp/ip系统)采用自动请求重发(arq)纠错的数据传输机制,需要使用反向通路,过大的延时,将严重降低网络系统的传输效率。而ip网络的实时性通信业务,它的传递密切依赖于网络情况,分组传送延时的大小直接影响着它的通信质量。因此,准确的测量ip延时对于分组传送网络是非常重要的。而现有的单程主动测量协议(以下简称owamp)和双程主动测量协议(以下简称twamp)就是用于ip网络中性能监控的两种重要方法。

延时和延时变化是owamp/twamp能测量的两个度量标准。测量是通过使用加上时戳的测试包来执行的。在某些使用案例中,例如载波网络中,这两个度量标准是服务等级协议(sla)的基本方面,因此必须测量的非常准确。

延时测量的准确性依赖于加时戳的方法以及它的实现。因此,为了方便加时戳,传统的发包装置使用如图1所示的结构,包括软件组包引擎和硬件改包引擎。其中,加时戳操作是由基于硬件的硬件改包引擎中的加时戳模块实现。在这种情况中,owamp/twamp测试包通过发包装置中的软件组包引擎来发送和接收,然而硬件改包引擎中的加时戳模块则通过将准确的发送时间加到测试包的时戳域中来修改每个输出的测试包。

另外,owamp/twamp测试包通过udp(userdataprotocol,用户数据报协议)来传输。由于owamp/twamp是作为udp的净荷存在的,因此在计算udp的校验和值时,owamp/twamp的所有字段都是需要包含进去的。当udp净荷被一个中间实体(例如加时戳模块)改变时,udp校验和域必须被更新以反映新的净荷。当使用ipv4(internetprotocolversion4,因特网协议版本4)中的udp时,无法更新udp校验和的中间实体只能将校验和域配置为0,使得接收者忽略校验和域,这可能导致接收到损坏的包。而对于在ipv6(internetprotocolversion6,因特网协议版本6)上的udp,不允许全0的校验和,除非是特定的情况,为此通常不建议使用0校验和,应尽量避免。

因此,设备在对udp域内加上时戳后,应有相应的更新udp校验和域的能力。通常情况下,最直接的方法就是根据加上时戳后的udp净荷重新计算校验和,并将原始的校验和域进行更新。由于udp的校验和位于udp头,而该校验和需要对整个udp净荷进行计算,因此,如果需要重新计算udp校验和,则需要将整个数据帧进行缓存,相应的就需要在硬件改包引擎中增设包缓存模块(如图2所示),这势必将增加设备的成本和包处理的延时。从经济角度和性能角度来考量,这都不能称为一种理想的处理方法。而对于有些现有设备简单的将udp校验和域固定为全0,或者不更新udp校验和域,则会影响数据包的正确性,特别是在ipv6网络的情况下。

因此,本领域亟需一种用于owamp和twamp的发包方案,能在低延时和低成本的条件下准确处理owamp/twamp测试包中的udp校验和。



技术实现要素:

本发明的目的是为了克服上述背景技术的不足,提供一种用于owamp和twamp的发包装置及方法,能在低延时和低成本的条件下准确处理owamp/twamp测试包中的udp校验和。

为达到以上目的,本发明提供一种用于owamp和twamp的发包装置,包括:

软件组包引擎,用于组成owamp/twamp测试包并发送给硬件改包引擎,软件组包引擎组包时,在测试包包含有时戳域的udp净荷中增设冗余字段,该冗余字段用于存储增量计算的udp校验和;

硬件改包引擎,用于识别owamp/twamp测试包,并对应修改测试包中时戳域的时戳值;根据修改后的时戳域计算校验和补数值;根据校验和补数值替换测试包的udp净荷中的冗余字段,并将该测试包及其他以太网包发送出去。

在上述技术方案的基础上,所述软件组包引擎组成的owamp/twamp测试包包括:以太网包头、ip层帧头、udp头和udp净荷;所述udp头中包含有校验和域,该校验和域的值根据该软件组包引擎实际产生的udp头和udp净荷的净荷值计算得到。

在上述技术方案的基础上,所述硬件改包引擎包括包识别模块、加时戳模块、校验和补数计算模块和包修改模块;包识别模块用于:识别owamp/twamp测试包;加时戳模块用于:修改包识别模块所识别出的owamp/twamp测试包中的时戳域的时戳值;校验和补数计算模块用于:根据修改后的时戳域,通过校验和标准计算方法,计算得到的校验和补数值;包修改模块用于:根据计算得到的校验和补数值,替换测试包的udp净荷中的冗余字段,并将该测试包及其他以太网包发送出去。

在上述技术方案的基础上,所述包识别模块识别owamp/twamp测试包的具体流程包括:所述包识别模块从接收到的以太网包中识别出软件组包引擎组成的owamp/twamp测试包,并产生对应的owamp/twamp测试包指示信号;再将以太网包及owamp/twamp测试包指示信号输出到加时戳模块;

所述加时戳模块修改测试包中时戳域的时戳值的具体流程包括:所述加时戳模块维护一个计时器,该计时器用于实时硬件产生时戳值;当所述加时戳模块从包识别模块收到以太网包,并根据owamp/twamp测试包指示信号指示出该以太网包是owamp/twamp测试包时,所述加时戳模块将收到该测试包时所对应的时戳值从计时器中提取出来,替换该测试包中时戳域的时戳值,并将修改后的测试包输出到校验和补数计算模块。

在上述技术方案的基础上,所述冗余字段至少为2个字节。

本发明还提供一种基于上述发包装置的用于owamp和twamp的发包方法,包括以下步骤:

a、软件组包引擎组成owamp/twamp测试包并发送给硬件改包引擎;软件组包引擎组包时,在测试包包含有时戳域的udp净荷中增设冗余字段,该冗余字段用于存储增量计算的udp校验和。

b、硬件改包引擎识别owamp/twamp测试包,并对应修改测试包中时戳域的时戳值;根据修改后的时戳域计算校验和补数值;根据校验和补数值替换测试包的udp净荷中的冗余字段,并将该测试包及其他以太网包发送出去。

在上述技术方案的基础上,所述步骤a中,软件组包引擎组成的owamp/twamp测试包包括:以太网包头、ip层帧头、udp头和udp净荷;所述udp头中包含有校验和域,该校验和域的值根据该软件组包引擎实际产生的udp头和udp净荷的净荷值计算得到。

在上述技术方案的基础上,所述硬件改包引擎包括包识别模块、加时戳模块、校验和补数计算模块和包修改模块;所述步骤b具体包括以下操作:

步骤b1、包识别模块识别owamp/twamp测试包;

步骤b2、加时戳模块对应修改包识别模块所识别出的owamp/twamp测试包中的时戳域的时戳值;

步骤b3、校验和补数计算模块根据修改后的时戳域,通过校验和标准计算方法,计算得到的校验和补数值;

步骤b4、包修改模块根据计算得到的校验和补数值,替换测试包的udp净荷中的冗余字段,并将该测试包及其他以太网包发送出去。

在上述技术方案的基础上,所述步骤b1具体包括以下操作:包识别模块从接收到的以太网包中识别出软件组包引擎组成的owamp/twamp测试包,并产生对应的owamp/twamp测试包指示信号;再将以太网包及owamp/twamp测试包指示信号输出到加时戳模块;

所述步骤b2具体包括以下操作:加时戳模块维护一个计时器,该计时器用于实时硬件产生时戳值;当所述加时戳模块从包识别模块收到以太网包,并根据owamp/twamp测试包指示信号指示出该以太网包是owamp/twamp测试包时,所述加时戳模块将收到该测试包时所对应的时戳值从计时器中提取出来,替换该测试包中时戳域的时戳值,并将修改后的测试包输出到校验和补数计算模块。

在上述技术方案的基础上,所述冗余字段至少为2个字节。

本发明的有益效果在于:

(1)本发明创造性的在owamp/twamp测试包中增设冗余字段,利用该字段存储增量计算的udp校验和,当对owamp/twamp测试包加上发送时戳后,根据该具体的时戳值,增量计算udp校验和并对应修改冗余字段,保证了原始的udp校验和的正确性。与现有技术相比,本发明不需要在硬件改包引擎中增加包缓存模块来存储数据包,并且发送的所有的数据包都不会因为要对owamp/twamp测试包的udp校验和进行更新而增加延时,从而有效的降低了发包装置的成本,避免了处理延时,提高了发包装置的性能。

(2)本发明的包识别模块在识别owamp/twamp测试包时,通过产生对应的owamp/twamp测试包指示信号来标识属于owamp/twamp测试包的以太网包,可方便、快速的对owamp/twamp测试包进行标记,从而使得加时戳模块能快速地从大量以太网包中找出需要用到的owamp/twamp测试包,不但操作简单、快速、准确性高,而且能进一步避免处理延时。

附图说明

图1为背景技术中传统的发包装置的结构框图;

图2为背景技术中传统的硬件改包引擎的结构框图;

图3为本发明实施例中用于owamp和twamp的发包装置的结构框图;

图4为本发明实施例中用于owamp和twamp的发包方法的流程图。

具体实施方式

本发明针对现有技术中传统的发包装置要么为了重新计算校验和需要在硬件改包引擎中增设包缓存模块,导致增加成本和延时增加;要么将udp校验和域固定为全0或者不更新udp校验和域,导致数据包正确性降低的问题,提供了一种改进后的用于owamp和twamp的发包装置及方法,能在低延时和低成本的条件下准确处理owamp/twamp测试包中的udp校验和。

其主要的设计思路为:由于当udp净荷被一个中间实体(例如加时戳模块)改变时,该中间实体仅会修改包中的特定域,即时戳域,因此udp校验和的更新可以增量的执行。又由于owamp/twamp测试包的包长是通过会话的发送端和接收端之间协商得到的,因此发送端可以在协商时对owamp/twamp测试包的包长要求一些冗余字段(如要求一个校验和补数值字段),利用该字段存储增量计算的udp校验和。发送端在发包时,冗余字段可以全部位于udp净荷的尾部,且冗余净荷的内容并不用做任何限制。当对该owamp/twamp测试包加上了发送时戳后,根据该时戳的具体值,增量计算udp校验和,并根据计算结果对udp净荷的冗余字段(如校验和补数值字段)进行修改,从而保证了原始的udp校验和的正确性。通过这种方法,不需要在硬件改包引擎中增加包缓存模块来存储数据包,并且发送的所有的数据包都不会因为要对owamp/twamp测试包的udp校验和进行更新而增加延时,从而有效的降低了发包装置的成本,避免了处理延时,提高了发包装置的性能。

基于上述设计思路,本发明提供了一种改进的用于owamp和twamp的发包装置及方法。与现有技术相比,其不仅仅是简单的省略硬件改包引擎中的包缓存模块(若仅是简单省去包缓存模块,会导致udp校验和错误的问题),而是创造性的在owamp/twamp测试包中增设冗余字段,利用该字段存储增量计算的udp校验和,当对owamp/twamp测试包加上发送时戳后,根据该具体的时戳值,增量计算udp校验和并对应修改冗余字段,保证了原始的udp校验和的正确性,进而实现能在低延时和低成本的条件下准确处理owamp/twamp测试包中的udp校验和的目的。

为使本发明要解决的技术问题、技术方案和优点更加清楚,下面将结合说明书附图以及具体的实施例对本发明的技术方案进行详细的说明。

实施例一

参见图3所示,本实施例提供了一种用于owamp和twamp的发包装置,包括软件组包引擎和硬件改包引擎。其中,软件组包引擎用于:组成owamp/twamp测试包并发送给硬件改包引擎;组包时,在测试包包含有时戳域的udp净荷中增设冗余字段,该冗余字段用于存储增量计算的udp校验和。硬件改包引擎用于:识别owamp/twamp测试包,并对应修改测试包(所识别出的owamp/twamp测试包)中时戳域的时戳值;根据修改后的时戳域,通过校验和标准计算方法,计算得到的校验和补数值;根据计算得到的校验和补数值,替换测试包的udp净荷中的冗余字段,并将该测试包及其他以太网包(如数据包)发送出去。

进一步地,实际应用中,所述软件组包引擎组成的owamp/twamp测试包包括:以太网包头,ip层帧头(ipv4或ipv6),udp头和udp净荷。其中,udp头中包含有校验和域,该校验和域的值根据该软件组包引擎实际产生的udp头和udp净荷的净荷值计算得到;并且,udp净荷中除了包含owamp/twamp测试包所必须的内容外(如时戳域等),还会增设用于存储增量计算的udp校验和的冗余字段。

更进一步地,实际应用中,所述冗余字段要求至少为2个字节(即大于等于2字节),其内容并不用做任何限制。本实施例中,该冗余字段为2个字节且全部位于udp净荷的尾部,并且该冗余字段的赋值默认初始化为全0。

实施例二

本实施例提供的用于owamp和twamp的发包装置,其基本结构与实施例一相同,不同之处在于:参见图3所示,该发包装置的硬件改包引擎包括包识别模块、加时戳模块、校验和补数计算模块和包修改模块。其中,包识别模块用于:识别owamp/twamp测试包;加时戳模块用于:对应修改测试包(包识别模块所识别出的owamp/twamp测试包)中时戳域的时戳值;校验和补数计算模块用于:根据修改后的时戳域,通过校验和标准计算方法,计算得到的校验和补数值;包修改模块用于:根据计算得到的校验和补数值,替换测试包的udp净荷中的冗余字段,并将该测试包及其他以太网包发送出去。

进一步地,实际应用中,所述校验和补数计算模块所使用的校验和标准计算方法为rfc1071所规定的因特网校验和标准算法。

实施例三

本实施例提供的用于owamp和twamp的发包装置,其基本结构与实施例二相同,不同之处在于:所述包识别模块识别owamp/twamp测试包的具体流程包括:包识别模块从接收到的以太网包中识别出软件组包引擎组成的owamp/twamp测试包,并产生对应的owamp/twamp测试包指示信号;再将以太网包及owamp/twamp测试包指示信号输出到加时戳模块。

可以理解的是,由于发包装置的硬件改包引擎接收到的以太网包不仅有owamp/twamp测试包还有其他数据包,因此,需要设置包识别模块来对各种以太网包进行识别,从中识别出属于owamp/twamp测试包的以太网包,从而便于处理后续的操作。而本实施例中,通过产生对应的owamp/twamp测试包指示信号来标识属于owamp/twamp测试包的以太网包,可方便、快速的对owamp/twamp测试包进行标记,从而使得加时戳模块能快速地从大量以太网包中找出需要用到的owamp/twamp测试包,不但操作简单、快速、准确性高,而且能进一步避免处理延时。

实施例四

本实施例提供的用于owamp和twamp的发包装置,其基本结构与实施例二相同,不同之处在于:所述加时戳模块对应修改测试包中时戳域的时戳值的具体流程包括:所述加时戳模块维护一个计时器,该计时器用于实时硬件产生时戳值;当所述加时戳模块从包识别模块收到以太网包,并根据owamp/twamp测试包指示信号指示出该以太网包是owamp/twamp测试包时,所述加时戳模块将收到该测试包时所对应的时戳值从计时器中提取出来,替换该测试包中时戳域的时戳值,并将修改后的测试包输出到校验和补数计算模块。

实施例五

基于同一发明构思,参见图4所示,本发明实施例还提供了一种基于上述发包装置的用于owamp和twamp的发包方法,该方法包括以下步骤:

a、软件组包引擎组成owamp/twamp测试包并发送给硬件改包引擎;软件组包引擎组包时,在测试包包含有时戳域的udp净荷中增设冗余字段,该冗余字段用于存储增量计算的udp校验和。

在具体实施过程中,软件组包引擎会根据需求配置来组成相应的owamp/twamp测试包,并发送给硬件改包引擎。所组成的owamp/twamp测试包包括:以太网包头,ip层帧头(ipv4或ipv6),udp头和udp净荷。其中,udp头中包含有校验和域,该校验和域的值根据该软件组包引擎实际产生的udp头和udp净荷的净荷值计算得到。并且,软件组包引擎组包时,会在udp净荷中包含owamp/twamp测试包所必须的内容外(如时戳域等),还会增设用于存储增量计算的udp校验和的冗余字段。

b、硬件改包引擎识别owamp/twamp测试包,并对应修改测试包(所识别出的owamp/twamp测试包)中时戳域的时戳值;根据修改后的时戳域,通过校验和标准计算方法,计算得到的校验和补数值;根据计算得到的校验和补数值,替换测试包的udp净荷中的冗余字段,并将该测试包及其他以太网包发送出去。

通过上述操作,使得由软件组包引擎组成的owamp/twamp测试包中产生的原始udp校验和域,虽然在硬件改包引擎中经过了时戳域的改变,但是由于未对原始的udp校验和域进行直接更新修改(仅修改增设的冗余字段即可),因此,原始的udp校验和仍然是正确的。并且,发送的所有以太网包都不会因为要对owamp/twamp测试包的udp校验和进行更新而增加延时,从而有效的降低了发包装置的成本,避免了处理延时,提高了发包装置的性能。

实施例六

本实施例提供的一种用于owamp和twamp的发包方法,其基本步骤与实施例五相同,不同之处在于:该发包装置的硬件改包引擎包括包识别模块、加时戳模块、校验和补数计算模块和包修改模块。在此基础上,该方法的步骤b具体包括以下操作:

步骤b1、包识别模块识别owamp/twamp测试包;

步骤b2、加时戳模块对应修改包识别模块所识别出的owamp/twamp测试包中的时戳域的时戳值;

步骤b3、校验和补数计算模块根据修改后的时戳域,通过校验和标准计算方法,计算得到的校验和补数值;

步骤b4、包修改模块根据计算得到的校验和补数值,替换测试包的udp净荷中的冗余字段,并将该测试包及其他以太网包发送出去。

实施例七

本实施例提供的一种用于owamp和twamp的发包方法,其基本步骤与实施例六相同,不同之处在于:该方法的步骤b1的具体操作可如下:

所述包识别模块从接收到的以太网包中识别出软件组包引擎组成的owamp/twamp测试包,并产生对应的owamp/twamp测试包指示信号;再将以太网包及owamp/twamp测试包指示信号输出到加时戳模块。

实施例八

本实施例提供的一种用于owamp和twamp的发包方法,其基本步骤与实施例六相同,不同之处在于:该方法的步骤b2的具体操作可如下:

所述加时戳模块维护一个计时器,该计时器用于实时硬件产生时戳值;当所述加时戳模块从包识别模块收到以太网包,并根据owamp/twamp测试包指示信号指示出该以太网包是owamp/twamp测试包时,所述加时戳模块将收到该测试包时所对应的时戳值从计时器中提取出来,替换该测试包中时戳域的时戳值,并将修改后的测试包输出到校验和补数计算模块。

本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。

本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

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