一种数据包快速转发方法及装置制造方法及图纸

技术编号:9796220 阅读:121 留言:0更新日期:2014-03-22 02:49
本发明专利技术提供的一种数据包快速转发方法及装置,通过确定多个数据包在各自转发过程中的相同环节,进而根据所述相同环节对应提取所述各数据包中的相同特征信息,并且,根据所述相同特征信息对所述各预定种类的数据包进行快转分类,再将快转分类后的数据包类别关联上对应的转发操作集,而当后续要转发的数据包属于所述数据包类别时,即可根据所对应的转发操作集修改数据包并转发,从而节省查路由表、查NAT表等等的操作时间,加速了数据包的转发。

【技术实现步骤摘要】
一种数据包快速转发方法及装置
本专利技术涉及通信
,特别是涉及一种数据包快速转发方法及装置。
技术介绍
互联网设备发展迅猛,网关产品上Linux网络协议栈对数据包的转发按转发方向分类可以分为:上行转发和下行转发;按转发涉及的网络层次分类可以分为:二层转发和三层转发。对于一般的需要做转发处理的数据包的转发流程是:第一步:当网络接口驱动程序接收到数据包后,交给Linux网络协议栈的收包函数,协议栈根据目的MAC做二层转发还是三层转发的判断,第二步:如果是二层转发,上行和下行转发的处理过程是一样的。先交由bridge模块先做防火墙过滤规则检查;对于能够转发的数据包,根据桥的端口配置关系进行转发;然后交由出接口的网络接口驱动层序发送到物理链路。第三步:如果是三层转发,对于下行数据包,如果是PPPoE封包,先去掉PPPoE封装;然后进入Netfilter模块的PREROUTING模块,做DNAT检查,对于下行数据包需要修改目的IP和目的端口 ;然后进入FORWARD模块,做防火墙的过滤规则检查;然后进入OUTPUT模块,查路由表,选择出去的路由,然后做防火墙的过滤规则检查;然后进入P0STR0UTING模块,对于上行数据包需要根据NAT规则,修改源IP和源端口 ;对于上行数据包如果出接口是PPPoE类型的,需要对封包进行PPPoE封装;然后交由出接口的网络接口驱动程序发送到物理链路。但是,终端用户对网络带宽的要求越来越大,提升网关设备的转发性能也越来来越迫切。解决这个问题总体来说有两个方案:一个是提升硬件的处理能力;另一个是在软件上做优化,但是目前针对网关设备的软件优化方案还是比较少。
技术实现思路
鉴于以上所述现有技术的缺点,本专利技术的目的在于提供一种数据包快速转发方法及装置,用于解决上述现有技术网关产品性能不足以应对网络带宽要求的问题。为实现上述目的及其他相关目的,本专利技术提供一种数据包快速转发方法,包括:确定多个数据包在各自转发过程中的相同环节;根据所述相同环节对应提取所述各数据包中的相同特征信息;根据所述相同特征信息对所述各预定种类的数据包进行快转分类;将快转分类后的数据包类别关联上对应的转发操作集;当数据包属于所述数据包类别时,根据所对应的转发操作集修改数据包并转发;当数据包不属于所述数据包类别时,通过Linux系统的网络协议栈转发。优选的,所述数据包是在MAC层即二层和/或IP层即三层转发的;所述相同特征信息包括:对于二层转发所有源MAC地址和目的MAC地址相同的报文,同一个组播源的组播数据报文,TCP三次握手成功后续传数据的报文,UDP传输数据时源IP地址、目的IP地址、源端口信息目的端口信息都相同的报文。优选的,所述快转分类指的是:生成快速转发表,其中,所述快速转发表记录所述快转分类后的数据包类别及对应的转发操作集;所述数据包属于所述数据包类别指的是:从数据包中提取的信息字段命中所述快速转发表中的数据包类别对应的相同特征信息。优选的,所述数据包快速转发方法还包括:快速转发表更新步骤:学习已经成功转发的数据包所包含的信息字段,以更新所述快速转发表中的数据包类别信息。优选的,所述数据包类别所包括的信息有:数据包的源MAC地址、目的MAC地址、虚拟局域网标识、源IP地址、目的IP地址、通信协议、源端口信息、目的端口信息。优选的,所述快速转发表包括:对应MAC层的二层快速转发表、对应TCP/IP层的三层快速转发表;所述二层快速转发表中的数据包类别信息包括:源MAC地址、目的MAC地址、虚拟局域网标识;所述三层快速转发表的数据包类别信息包括:虚拟局域网标识、源IP地址、目的IP地址信息、通信协议、源端口信息、目的端口信息。优选的,所述根据所对应的转发操作集修改数据包,包括:对应所述二层快速转发表的修改,包括:数据包的虚拟局域网标识信息的修改、二层网络协议的修改;对应所述三层快速转发表的修改,包括:数据包的源MAC地址的修改、目的MAC地址的修改、虚拟局域网标识的修改、源IP地址的修改、目的IP地址的修改、通信协议的修改、源端口信息的修改、目的端口信息的修改、PPPoE封装、TTL的修改。优选的,所述源IP地址信息的修改和源端口信息的修改是在三层上行数据包的转发过程中有NAT时进行的;所述目的IP地址信息的修改和目的端口信息的修改是在三层下行数据包的转发过程中有NAT时进行的;所述PPPoE封装是在三层转发中涉及PPPoE端口信息时进行的;所述TTL的修改指的是三层转发数据包时TTL值减I。优选的,所述根据所对应的转发操作集修改数据包,包括:修改数据包格式以适应指定转发的网络接口。优选的,所述数据包快速转发方法还包括:记录数据包被防火墙拦截的信息;根据所述数据包被防火墙拦截的信息,将与被拦截数据包在所述数据包类别中属于同类的数据包通过Linux系统的网络协议栈转发。为实现上述目的及其他相关目的,本专利技术还提供一种数据包快速转发装置,包括:确认模块,用于确定多个数据包在各自转发过程中的相同环节;提取模块,用于根据所述相同环节对应提取所述各数据包中的相同特征信息;快转分类模块,用于根据所述相同特征信息对所述各预定种类的数据包进行快转分类;关联模块,用于将快转分类后的数据包类别关联上对应的转发操作集;判断模块,用于当判断出待转发的数据包是否属于所述数据包类别,当判断出数据包不属于所述数据包类别时,通过Linux网络协议栈转发;修改模块,用于当所述判断模块判断出数据包属于所述数据包类别时,根据所对应的转发操作集修改数据包并转发。优选的,所述数据包是在MAC层即二层和/或IP层即三层转发的;所述相同特征信息包括:对于二层转发所有源MAC地址和目的MAC地址相同的报文,同一个组播源的组播数据报文,TCP三次握手成功后续传数据的报文,UDP传输数据时源IP地址、目的IP地址、源端口信息目的端口信息都相同的报文。优选的,所述快转分类指的是:生成快速转发表,其中,所述快速转发表记录所述快转分类后的数据包类别及对应的转发操作集;所述数据包属于所述数据包类别指的是:从数据包中提取的信息字段命中所述快速转发表中的数据包类别对应的相同特征信息。优选的,所述数据包快速转发装置还包括:快速转发表更新模块,用于学习已经成功转发的数据包所包含的信息字段,以更新所述快速转发表中的数据包类别信息。优选的,所述数据包类别所包括的信息有:数据包的源MAC地址、目的MAC地址、虚拟局域网标识、源IP地址、目的IP地址、通信协议、源端口信息、目的端口信息。优选的,所述快速转发表包括:对应MAC层的二层快速转发表、对应TCP/IP层的三层快速转发表;所述二层快速转发表中的数据包类别信息包括:源MAC地址、目的MAC地址、虚拟局域网标识;所述三层快速转发表的数据包类别信息包括:虚拟局域网标识、源IP地址、目的IP地址信息、通信协议、源端口信息、目的端口信息。优选的,所述修改模块对数据包的修改包括:对应所述二层快速转发表的修改,包括:待转发的数据包的虚拟局域网标识信息的修改、二层网络协议的修改;对应所述三层快速转发表的修改,包括:待转发的数据包的源MAC地址的修改、目的MAC地址的修改、虚拟局域网标识的修改、源IP地址的修改、目的IP地本文档来自技高网
...

【技术保护点】
一种数据包快速转发方法,其特征在于,包括:确定多个数据包在各自转发过程中的相同环节;根据所述相同环节对应提取所述各数据包中的相同特征信息;根据所述相同特征信息对所述各预定种类的数据包进行快转分类;将快转分类后的数据包类别关联上对应的转发操作集;当数据包属于所述数据包类别时,根据所对应的转发操作集修改数据包并转发;当数据包不属于所述数据包类别时,通过Linux系统的网络协议栈转发。

【技术特征摘要】
1.一种数据包快速转发方法,其特征在于,包括: 确定多个数据包在各自转发过程中的相同环节; 根据所述相同环节对应提取所述各数据包中的相同特征信息; 根据所述相同特征信息对所述各预定种类的数据包进行快转分类; 将快转分类后的数据包类别关联上对应的转发操作集; 当数据包属于所述数据包类别时,根据所对应的转发操作集修改数据包并转发; 当数据包不属于所述数据包类别时,通过Linux系统的网络协议栈转发。2.根据权利要求1所述的数据包快速转发方法,其特征在于,所述数据包是在MAC层即二层和/或IP层即三层转发的;所述相同特征信息包括:对于二层转发所有源MAC地址和目的MAC地 址相同的报文,同一个组播源的组播数据报文,TCP三次握手成功后续传数据的报文,UDP传输数据时源IP地址、目的IP地址、源端口信息目的端口信息都相同的报文。3.根据权利要求2所述的数据包快速转发方法,其特征在于,所述快转分类指的是: 生成快速转发表,其中,所述快速转发表记录所述快转分类后的数据包类别及对应的转发操作集; 所述数据包属于所述数据包类别指的是:从数据包中提取的信息字段命中所述快速转发表中的数据包类别对应的相同特征信息。4.根据权利要求3所述的数据包快速转发方法,其特征在于,还包括快速转发表更新步骤: 学习已经成功转发的数据包所包含的信息字段,以更新所述快速转发表中的数据包类别信息。5.根据权利要求3所述的数据包快速转发方法,其特征在于,所述数据包类别所包括的信息有:数据包的源MAC地址、目的MAC地址、虚拟局域网标识、源IP地址、目的IP地址、通信协议、源端口信息、目的端口信息。6.根据权利要求5所述的数据包快速转发方法,其特征在于,所述快速转发表包括:对应MAC层的二层快速转发表、对应TCP/IP层的三层快速转发表; 所述二层快速转发表中的数据包类别信息包括:源MAC地址、目的MAC地址、虚拟局域网标识; 所述三层快速转发表的数据包类别信息包括:虚拟局域网标识、源IP地址、目的IP地址信息、通信协议、源端口信息、目的端口信息。7.根据权利要求6所述的数据包快速转发方法,其特征在于,所述根据所对应的转发操作集修改数据包,包括: 对应所述二层快速转发表的修改,包括:数据包的虚拟局域网标识信息的修改、二层网络协议的修改; 对应所述三层快速转发表的修改,包括:数据包的源MAC地址的修改、目的MAC地址的修改、虚拟局域网标识的修改、源IP地址的修改、目的IP地址的修改、通信协议的修改、源端口信息的修改、目的端口信息的修改、PPPoE封装、TTL的修改。8.根据权利要求7所述的数据包快速转发方法,其特征在于,所述源IP地址信息的修改和源端口信息的修改是在三层上行数据包的转发过程中有NAT时进行的;所述目的IP地址信息的修改和目的端口信息的修改是在三层下行数据包的转发过程中有NAT时进行的;所述PPPoE封装是在三层转发中涉及PPPoE端口信息时进行的;所述TTL的修改指的是三层转发数据包时TTL值减I。9.根据权利要求1至7中任一项所述的数据包快速转发方法,其特征在于,所述根据所对应的转发操作集修改数据包,包括:修改数据包格式以适应指定转发的网络接口。10.根据权利要求1所述的数据包快速转发方法,其特征在于,还包括: 记录数据包被防火墙拦截的信息; 根据所述数据包被防火墙拦截的信息,将与被拦截数据包在所述数据包类别中属于同类的数据包通过Linux系统的网络协议栈转发。11.一种数据包快速转发装置,其特征在于,包括: 确认模块,用于确定多个数据包在各自转...

【专利技术属性】
技术研发人员:管建智
申请(专利权)人:上海斐讯数据通信技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1