UDP报文的处理方法、装置以及网络转发装置与流程

文档序号:11292142阅读:458来源:国知局
UDP报文的处理方法、装置以及网络转发装置与流程
本发明涉及一种报文处理领域,具体的,涉及到对udp协议报文进行优化处理,以克服由于小字节通过nat(networkaddresstranslation,网络地址转换)设备的时候,容易造成的吞吐量小的问题。
背景技术
:随着internet的日益普及,内部网用户访问internet的需求在不断增加,一些企业也需要对外提供诸如www页面浏览、ftp文件传输、dns域名解析等服务,这些因素会导致网络流量的急剧增加。参见图1,由于ip资源的稀缺性,nat(networkaddresstranslation,网络地址转换)设备被普遍应用于企事业单位、校园等各种上网设备较多的区域。nat网关作为内外网之间的数据通道,负责进行内外网的数据转换,如果nat网关吞吐量太小,就会成为网络瓶颈,给整个网络的传输效率带来负面影响。网络吞吐量表示为:在单位时间内通过某个网络(或信道、接口)的数据量。吞吐量受网络的带宽或网络的额定速率的限制。对100mb/s的以太网,其典型的吞吐量可能只有70mb/s。而由于以太网的发送方式是按照一个帧一个帧来发送的,帧与帧之间存在最小12字节的帧间隙和固定7字节的前导码和1字节的帧起始定界符,当网络中存在大量小字节报文时,网络设备中,对于通过cpu发送出去的报文,由于每个报文中均有帧间隙、前导码及帧起始定界符,因此,实际净载荷的吞吐量小很多。因此,如果数据帧有效载荷越小,效率越低,其吞吐量也就越小。而正如上文所分析的,如果nat网关吞吐量太小,就会成为网络瓶颈,给整个网络的传输效率带来负面影响。而相对于tcp报文,udp报文属于对时延要求较低的报文,因此,如何提高udp处理效率,以提高诸如nat的网络设备的吞吐量成为现有技术亟需解决的技术问题。技术实现要素:本发明的目的在于提出一种udp报文的处理方法及装置,能够对于相同流向的udp报文进行分类,并对于同一类别的udp报文进行重组,从而减少无用的开销字节的转发,从而提高网络设备对于实际内容的转发效率,提高nat设备的吞吐量。为达此目的,本发明采用以下技术方案:一种udp报文处理方法,包括如下步骤:接收输入port端口传送的网络报文;判断网络设备的cpu占用率是否大于或等于临界阈值,如果不是,即小于临界阈值,对网络报文直接进行转发,如果是,即等于或高于临界阈值,则对网络报文进行进一步处理;判断网络报文是否属于udp报文,如果不是,对网络报文直接进行转发,如果是,则对网络报文进行进一步处理;对于udp报文进行分类,同一类的报文具有相同的来源、目的及端口,对于同一类别的报文进行累加缓存,在满足一定的时间延迟和报文容量的基础上,对报文进行重组;对重组后的网络报文进行转发;对转发的重组后的网络报文进行分片,恢复成原有的传送的网络报文,并经由输出port口进行发送。可选的,在对于udp报文进行分类时,按照相同的七元组进行分类,并对每个分类进行报文内容的累加。可选的,所述对于同一类别的报文进行累加缓存,在满足一定的时间延迟和报文容量的基础上,对报文进行重组,包括:针对每个分类的报文累加进行计时,同时判断所累加的,即两个连续的报文长度和是否小于mtu,或者定时器的值是否小于合理时延t,如果不满足则直接转发报文,如果满足则继续缓存第3、4、5······n个报文,直到满足累加到第n+1>mtu,或定时器值=t时,停止缓存,对停止缓存后的同一个分类的n个缓存报文进行重组,然后上送cpu转发。可选的,在进行重组时,根据ip字段中的标识字段和片偏移字段,记录每一个报文的标识字段,片偏移值根据每个报文大小进行偏移;在进行分片时,根据标识字段和片偏移字段进行分片恢复。本发明还公开了一种udp报文的处理装置,包括如下单元:报文接收单元200,用于接收输入port端口传送的网络报文;第一判断单元210,用于判断网络设备的cpu占用率是否大于或等于临界阈值,如果不是,即小于临界阈值,对网络报文直接进行转发,如果是,即等于或高于临界阈值,则对网络报文进行进一步处理;第二判断单元220,用于判断网络报文是否属于udp报文,如果不是,对网络报文直接进行转发,如果是,则对网络报文进行进一步处理;分类及重组单元230,用于对于udp报文进行分类,同一类的报文具有相同的来源、目的及端口,对于同一类别的报文进行累加缓存,在满足一定的时间延迟和报文容量的基础上,对报文进行重组;转发单元240,用于对重组后的网络报文进行转发;分片单元250,用于对转发的重组后的网络报文进行分片,恢复成原有的传送的网络报文,并经由输出port口进行发送。可选的,分类及重组单元230,包括:分类子单元,用于在对于udp报文进行分类时,按照相同的依七元组进行分类,并对每个分类进行报文内容的累加;计时子单元,用于对每个分类的报文累加进行计时;判断子单元,用于判断所累加的,即两个连续的报文长度和是否小于mtu,或者计时的值是否小于合理时延t,如果不满足则直接转发报文,如果满足则继续缓存第3、4、5……n个报文,直到满足累加到第n+1>mtu,或计时值=t时,停止缓存;缓存子单元,用于对停止缓存后的同一个分类的n个缓存报文进行重组,然后上送cpu转发。可选的,分类及重组单元230,在进行重组时,根据ip字段中的标识字段和片偏移字段,记录每一个报文的标识字段,片偏移值根据每个报文大小进行偏移;分片单元250在进行分片时,根据标识字段和片偏移字段进行分片恢复。本发明还公开了一种网络转发装置,包括输入port,输入转发模块,输出转发模块和输出port,ip报文经过输入port进行输入转发模块,输入转发模块将报文转交cpu进行转发到输出转发模块,输出转发模块将转发后的报文交由输出port输出,其中,该网络转发装置还具有上述的udp报文的处理装置,其中所述输入转发模块具有报文接收单元200、第一判断单元210、第二判断单元220、分类及重组单元230以及转发单元240,所述输出转发模块具有分片单元250。本发明将udp报文进行分类,将同类的udp报文进行累加并重组,通过牺牲延迟时间,以减少报文开销消息的转发,换取更大的吞吐量,从而提高udp报文的实际转发率。附图说明图1是现有技术的网络结构示意图;图2是根据本发明具体实施例的udp报文处理方法的流程图;图3是根据本发明具体实施例的udp报文处理方法的处理示例;图4是根据本发明具体实施例的udp报文处理装置的模块框图;图5是根据本发明具体实施例的分类及重组单元的具体模块框图;图6是根据本发明具体实施例的网络转发装置的模块框图。具体实施方式下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。本发明的要点在于:判断网络设备的cpu利用率,当cpu利用率超过阈值时,将udp报文进行分类,将同类的udp报文进行累加并重组,通过牺牲延迟时间,以减少报文开销消息的转发,换取更大的吞吐量,从而提高udp报文的实际转发率。本发明的方案适用于对延迟敏感度低的应用场景实施例一:参见图2,示出了根据本发明具体实施例的udp报文处理方法的流程图,包括如下步骤:报文接收步骤s100:接收输入port端口传送的网络报文;在该步骤中,输入port端口指的是网络设备对于各类报文的接收端口。第一判断步骤s110:判断网络设备的cpu占用率是否大于或等于临界阈值,如果不是,即小于临界阈值,对网络报文直接进行转发,如果是,即等于或高于临界阈值,则对网络报文进行进一步处理。该步骤中,用于判断网络设备的cpu占用率,当cpu占用率高的时候,则需要利用本发明的具体步骤,对udp报文进行进一步处理。在该步骤中,可以间隔性的读取cpu的占用率,而临界阈值可以根据用户对于时延的要求,或者对于网络设备的性能的要求而进行设定。第二判断步骤s120:判断网络报文是否属于udp报文,如果不是,对网络报文直接进行转发,如果是,则对网络报文进行进一步处理;该步骤,进一步判断网络报文的类型,由于tcp报文对于网络时延要求较高,则尽量减少对报文的处理,而udp报文对于网络时延要求较低,能够对报文进行处理而不影响发送端的时间要求。具体的,可以对于从输入port发送过来的报文进行ip报文头的检查,当ip报文头协议号不等于17时,说明该网络报文不是udp报文,则对网络报文不做任何处理,按常规方式转发,当ip报文头协议号等于17时,则说明属于udp报文,对网络报文进行进一步处理。分类及重组步骤s130:对于udp报文进行分类,同一类的报文具有相同的来源、目的及端口,对于同一类别的报文进行累加缓存,在满足一定的时间延迟和报文容量的基础上,对报文进行重组;该步骤,对相同来源和目的地的报文进行分类并累加,因为相同来源和目的地的报文往往具有相同的网络头报文,即具有相同的开销,在转发时,无须重复转发。而udp报文在重组的时候不能无限制的将同一类的所有的报文进行重组,将会受到网络报文最大容量,以及最大时延的限制。因此,在累加时,应当在在满足一定的时间延迟和报文容量的基础上,对报文进行重组。转发步骤s140:对重组后的网络报文进行转发;本步骤中,主要用于网络设备,例如nat设备,对内网的网络报文,转发到外网。进一步的,还具有分片步骤s150:对转发的重组后的网络报文进行分片,恢复成原有的传送的网络报文,并经由输出port口进行发送。实施例2:该实施例,是实施例1的一个具体的示例,是对于实施例1中的某些步骤的具体的实施方式的进一步的解释。参见图3,示出了根据本发明的一个对udp报文处理方法的处理示例,包括如下步骤:报文接收步骤s100:接收输入port端口传送的网络报文;第一判断步骤s110:判断网络设备的cpu占用率是否大于或等于临界阈值,例如80%,如果小于临界阈值80%,对网络报文直接进行转发,如果等于或高于临界阈值80%,则对网络报文进行进一步处理第二判断步骤s120:对于从输入port发送过来的报文进行ip报文头的检查,当ip报文头协议号不等于17时,对报文不做任何处理,按常规方式转发,当ip报文头协议号等于17时,则属于udp报文,对网络报文进行进一步处理;分类及重组步骤s130:分析报文的七元组,按照相同的七元组进行分类,即相同的七元组标识为同一条流。网络流是通过七元组来标示,即通过接口索引、源ip地址、目的ip地址、源端口号、目的端口号、协议号和tos组成的七元组确定的。针对每个分类,进行报文内容的累加,并对每个分类的报文累加进行计时,同时判断所累加的,即两个连续的报文长度和是否小于mtu,或者定时器的值是否小于合理时延t,如果不满足则直接转发报文,如果满足则继续缓存第3、4、5……n个报文,直到满足累加到第n+1>mtu,或定时器值=t时,停止缓存,在对对停止缓存后的同一个分类的n个缓存报文进行重组,然后上送cpu转发。其中,mtu(maximumtransmissionunit,最大传输单元)是指一种通信协议的某一层上面所能通过的最大数据包大小(以字节为单位)。最大传输单元这个参数通常与通信接口有关(网络接口卡、串口等),实际应用中,需要从接口中获取mtu值。进一步的,对于报文进行累加转发步骤s140:对重组后的网络报文进行转发;分片步骤s150:对转发的重组后的网络报文进行分片,恢复成原有的传送的网络报文,并经由输出port口进行发送。进一步的,重组时根据ip字段中的标识字段(identificationid)和片偏移字段(fragmentoffset)来完成,即要记录每一个报文的标识字段,片偏移值根据每个报文大小进行偏移。而在分片时,则根据标识字段和片偏移字段可确定进入输入端口之前的报文,从而进行分片恢复,保持标识字段值不变,片偏移字段值设置为0即可。参见表1,示出了,根据本发明的标识字段,片偏移值的示例。framenumdatesizeidentificationidfragmentoffset1100500002100500110035050022004805003250…………表1标识字段和片偏移值实施例3:参见图4,本发明还公开了一种udp报文的处理装置,包括如下单元:报文接收单元200,用于接收输入port端口传送的网络报文;第一判断单元210,用于判断网络设备的cpu占用率是否大于或等于临界阈值,如果不是,即小于临界阈值,对网络报文直接进行转发,如果是,即等于或高于临界阈值,则对网络报文进行进一步处理;第二判断单元220,用于判断网络报文是否属于udp报文,如果不是,对网络报文直接进行转发,如果是,则对网络报文进行进一步处理;分类及重组单元230,用于对于udp报文进行分类,同一类的报文具有相同的来源、目的及端口,对于同一类别的报文进行累加缓存,在满足一定的时间延迟和报文容量的基础上,对报文进行重组;转发单元240,用于对重组后的网络报文进行转发;分片单元250,用于对转发的重组后的网络报文进行分片,恢复成原有的传送的网络报文,并经由输出port口进行发送。进一步的,参见图5,所述分类及重组单元230,包括:分类子单元,用于在对于udp报文进行分类时,按照相同的依七元组进行分类,并对每个分类进行报文内容的累加;计时子单元,用于对每个分类的报文累加进行计时;判断子单元,用于判断所累加的,即两个连续的报文长度和是否小于mtu,或者计时的值是否小于合理时延t,如果不满足则直接转发报文,如果满足则继续缓存第3、4、5……n个报文,直到满足累加到第n+1>mtu,或计时值=t时,停止缓存;缓存子单元,用于对停止缓存后的同一个分类的n个缓存报文进行重组,然后上送cpu转发。进一步的,分类及重组单元230,在进行重组时,根据ip字段中的标识字段和片偏移字段,记录每一个报文的标识字段,片偏移值根据每个报文大小进行偏移;分片单元250在进行分片时,根据标识字段和片偏移字段进行分片恢复。实施例4:参见图6,本发明还示出了一种网络转发装置,包括输入port,输入转发模块,输出转发模块和输出port,ip报文经过输入port进行输入转发模块,输入转发模块将报文转交cpu进行转发到输出转发模块,输出转发模块将转发后的报文交由输出port输出,其特征在于,该网络转发装置还具有上文所述的udp报文的处理装置,其中所述输入转发模块具有报文接收单元200、第一判断单元210、第二判断单元220、分类及重组单元230以及转发单元240,所述输出转发模块具有分片单元250。上述网络转发装置可以是路由器或交换机等网络设备,可以是集中式设备,也可以是分布式设备。若为分布式设备,比如机框设备,包括主控板和多个线卡板,控板包括主用主控板和备用主控板,其上设置有cpu,线卡板上设置有转发芯片。主用主控板上的cpu执行管理或控制操作,可发送实现特定管理或控制功能的报文,各线卡板上的转发芯片接收到cpu或接口发送的报文后,按照本发明的装置或者流程可以进行匹配操作。因此,本发明将udp报文进行分类,将同类的udp报文进行累加并重组,通过牺牲延迟时间,以减少报文开销消息的转发,换取更大的吞吐量,从而提高udp报文的实际转发率。显然,本领域技术人员应该明白,上述的本发明的各单元或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施方式仅限于此,对于本发明所属
技术领域
的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单的推演或替换,都应当视为属于本发明由所提交的权利要求书确定保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1