一种可编程虚拟化路由器多协议类型数据包并行处理方法及装置制造方法

文档序号:7799372阅读:256来源:国知局
一种可编程虚拟化路由器多协议类型数据包并行处理方法及装置制造方法
【专利摘要】本发明公开了一种可编程虚拟化路由器多协议类型数据包并行处理方法及装置。主要是在可编程虚拟化路由器数据平面中设置两个虚拟路由查找模块,并在每个模块中设置解析数据包的方法模块,构成虚拟路由查找模块。其包括以下步骤:数据分发模块接收到完整的数据包以后,先判断数据包类型和来源,然后根据数据包类型发送给下一级模块;虚拟路由查找模块一和虚拟路由查找模块二接收到来自上一级的数据包后,调用各自内部定义的处理模块进行处理;校验更新模块根据控制信号及时更新数据包checksum以及TTL值。本发明实现了不同协议类型数据包的并行处理。
【专利说明】一种可编程虚拟化路由器多协议类型数据包并行处理方法及装置
【技术领域】
[0001]本发明涉及计算机网络技术和可编程虚拟化路由器的可编程、可扩展和虚拟化【技术领域】,具体是一种可编程虚拟化路由器多协议类型数据包并行处理方法。
【背景技术】
[0002]随着互联网商业应用规模的不断发展,其应用范围已经远远超出了互联网的设计初衷。现有的互联网体系架构已无法满足未来网络的需求,新的网络内容和服务的出现,对现有互联网功能和结构带来了巨大挑战。[0003]未来网络旨在从互联网的基本组成、工作原理和实现机理方面进行理论和方法探索和算法设计,解决现有网络在灵活性、可扩展性以及安全性等方面的不足。未来网络研究新的体系结构、协议、算法等在实际应用之前需要进行大量的理论分析以及仿真实验,更需要在试验网络体系结构中进行评估与验证。为此,一种能够处理多种协议类型数据包的方法的提出与设计,显得尤为重要。
[0004]为满足新型网络协议特殊的数据包处理需求,研究者提出了界和3界11x11813(16两种方案。虽然较好的体现了可编程性,但更专注于数据包的匹配转发,无法作为支持路由交换的可编程路由器化池匕如可以实现新协议的部署,也允许用户自定义数据包处理流程,具有良好的可编程性,但是其只注重可编程性,却忽略了可编程性和资源可扩展性的折中。
[0005]一专利名为“一种基于他切?以的可编程虚拟化路由器通信方法”,给出了如何实现可编程虚拟化路由器通信的详细步骤。该专利通过在主机上虚拟化出多个虚拟容器,构建虚拟路由器,并在虚拟路由器内部创建虚拟以太网卡,虚拟以太网卡与物理硬件网络接口之间通过软件网桥桥接,虚拟路由器通过虚拟以太网卡和软件网桥接收来自~6切?以板卡网络接口的数据包,处理后得到的路由信息再次通过虚拟以太网卡和软件网桥发送给他切?以板卡的寄存器,然后发送出去。该专利虽然给出了可编程虚拟化路由器的通信方法的详细设计步骤,但是没有给出可编程虚拟化路由器底层处理多协议类型数据包的方法。
[0006]与本发明接近的一项发明专利-“基于他切?以的可编程路由器”,给出了一种可编程路由的设计框架,并给出了模块的划分和各个模块的功能实现。该专利提供了各个模块的详细实现,并且可以处理非I?包,但是并不能同时处理不同协议的数据包,因此不能够实现并行处理多种协议类型的数据包,以及减少时延。

【发明内容】

[0007]针对以上现有技术的不足,本发明公开了一种多协议类型数据包并行处理方法,旨在使可编程虚拟化路由器能够并行处理多种协议类型的数据包。
[0008]本发明涉及一种可编程虚拟化路由器多协议类型数据包并行处理方法。主要是对可编程虚拟化路由器数据平面的路由查找部分进行修改,定义处理模块与处理流程。如图2所示,在不影响性能的情况下,为节约硬件资源,虚拟路由查找模块一与虚拟路由查找模块二共享数据分发模块和更新校验模块;所述数据分发模块接收所有数据包,分发给所述虚拟路由查找模块一和虚拟路由查找模块二;所述更新校验模块为所述虚拟路由查找模块一和所述虚拟路由查找模块二提供首部效验和以及III值更新服务。具体包括以下步骤:
步骤一:数据包读取:数据包读取模块接收来自外部的数据包,以轮询的方式读取数据,然后检查读取的数据是否完整;若为完整的数据包,则转发给下一级模块,否则丢弃,继续读取;
步骤二:数据分发模块接收到数据包以后,先解析数据包类型,检查目标端口是否匹配其相应的监地址,若不匹配,则丢弃;若匹配,然后再解析数据包的来源,即是否来自于上层控制平面,若数据包来自于上层控制平面,则直接送交给所述虚拟路由查找模块一或者所述虚拟路由查找模块二内定义的数据包重新封装模块直接处理,否则按照正常数据包处理流程进行处理。
[0009]步骤三:所述虚拟路由查找模块一和所述虚拟路由查找模块二分别用于处理不同协议类型的数据包,其中,所述虚拟路由查找模块一用于处理一般以太网包。当接收到来自上一级的数据包后,所述虚拟路由查找模块一调用其内定义的处理方法模块对数据包首部进行最长前缀匹配、地址解析和过滤操作,返回下一跳I?地址和端口号,然后根据各项信息重新封装数据包,产生新的数据包转发出去。
[0010]所述虚拟路由查找模块二用于处理用户自定义数据包。当接收到数据包后,先发送给所述虚拟路由查找模块二内定义缓冲池,为所述数据包重新封装模块缓存数据,然后拷贝一份发送给所述虚拟路由查找模块二内定义的哈希处理模块,由于输入的数据包并非标准格式,因此先将数据包进行哈希计算,生成标准格式的逻辑地址,而后送到图4所示的各自定义数据包解析模块做地址解析等处理。所述数据包重新封装模块将根据先前得到的信息,重新封装数据包,然后转发出去。
[0011]所述更新校验模块用于计算效验和更新II值,为虚拟路由查找模模块一和所述虚拟路由查找模块二所共用。根据数据包类型和控制信号,更新不同协议类型数据包的效验和及171值,节约硬件资源。
[0012]本发明的行处理方法具有以下优点:
与传统路由器相比,由于其灵活的、开放的可编程性,使得用户可以接触到路由器数据包内部处理流程,更是允许用户自定义数据包处理流程,用于满足不同需求。
[0013]根据硬件资源的多少允许用户虚拟出若干块处理模块,并且允许用户自定义各个处理模块的行为,满足开发者的诸多需求。该方法可以并行处理多种协议类型的数据包,具有良好的可扩展性和重构性。
[0014]所述虚拟路由查找模块一和所述虚拟路由查找模块二相互独立,互不影响,具有较好的隔离性。而且,其中所述数据分发模块和所述更新校验模块为共享模块,在保证处理性能的情况下,节约了一定的资源,避免了资源的浪费。
【专利附图】

【附图说明】
[0015]图1为可编程虚拟化路由器数据包处理架构; 图2为路由查找模块整体结构图;
图3为一般以太网包处理结构图;
图4为用户自定义数据包处理结构图;
图5为数据包处理工作流程图。
【具体实施方式】
[0016]如图1所示为可编程虚拟化路由器底层数据包处理结构图,该部分主要由以下几个模块组成:数据包读取模块、路由查找模块、数据包输出模块和寄存器控制模块。
[0017]八、所述数据包读取模块接收来自外部的数据包,以轮询的方式读取数据,然后检查读取的数据是否完整;若为完整的数据包,则转发给下一级模块,否则丢弃,继续读取。
[0018]8、所述路由查找模块为数据包处理的核心模块,主要是用来做路由查找。其包括有数据分发模块、虚拟路由查找模块一、虚拟路由查找模块二和更新校验模块。
[0019]如图2所示,数据分发模块为数据包类型判断和数据来源识别模块,接收到来自数据包读取模块的数据包后,先对数据包进行类型判断,并检查目标端口是否匹配其相应的嫩地址,若不匹配,则丢弃;若匹配,再识别数据包来源,即判断数据包是否来自于上层控制平面。若来自于上层控制平面,则直接发送给虚拟路由查找模块一或者虚拟路由查找模块二内定义的数据包重新封装模块,直接进行封装转发;否则按照正常数据包处理流程进行处理。
[0020]具体的,所述数据分发模块内定义了两个模块,分别是类型判别模块和端口解析模块。当接收到数据包以后,先将数据包送交给类型判别模块解析数据包的类型,即为一般以太网包还是用户自定义包;然后发送给端口解析模块检验其端口号,若数据包来自于上层控制平面,则根据数据类型将数据包直接发送给所述虚拟路由查找模块一或者所述虚拟路由查找模块二内定义的数据包重新封装模块进行重新封装转发;否则按照正常数据包处理流程进行处理。
[0021]如图3和图4所示,即为所述虚拟路由查找模块一和虚拟路由查找模块二的内部
处理结构。
[0022]图3所示的为一般以太网包处理流程,与传统路由器处理过程类似,这里不多做介绍。
[0023]图4为所述为用户自定义数据包处理流程。所述虚拟路由查找模块二接收到来自上一级的数据包后,其内部处理过程为:先经过哈希处理模块,进行哈希计算,生成标准格式的逻辑地址信息,然后信号控制模块依次启动自定义数据包解析模块一、自定义数据包解析模块二以及自定义数据包解析模块三。其中所述自定义数据包解析模块一主要做最长前缀匹配,用来给出下一跳逻辑地址和输出端口 ;所述自定义数据包解析模块二主要用来返回下一跳嫩地址信息;而所述自定义数据包解析模块三则用来做详细查找,若有对应的匹配值,则查找成功,反之,则将数据包上传至控制平面做进一步处理。而数据包重新封装模块根据自定义数据包解析模块一、自定义数据包解析模块二和自定义数据包解析模块三得到的信息对数据包进行重新封装,得到新的数据包。图中缓冲池为数据包重新封装模块缓存数据包,寄存器控制模块为图4中的各模块提供配置信息。
[0024]图2中的更新校验模块为虚拟路由查找模块一和虚拟路由查找模块二所共有。它据包后,先发送给所述哈希处理模块,进行:理模块和哈希编码模块。当接收到数据包5格式将目的逻辑地址取出并设置有效位,后,接收逻辑地址,对该逻辑地址进行105
动各自定义数据包解析模块。先进行自定《认路由,则丢弃数据包,若匹配成功,则返查询,若查找成功,则返回下一跳嫩地址,一个仙?广播,请求获取下一跳嫩地址信丨勺匹配值,则查找成功,反之,则将数据包上
数据包重新封装模块封装成适合在数据链
0
【权利要求】
1.一种可编程虚拟化路由器多协议类型数据包并行处理方法,其特征在于,包括以下步骤: (1)数据包读取:数据包读取模块接收来自外部的数据包,以轮询的方式读取数据,然后检查读取的数据是否完整;若为完整的数据包,则转发给下一级模块,否则丢弃,继续读取; (2)路由查找: (2.1)数据分发:数据分发模块接收到数据包读取模块转发的数据包后,检查目标端口是否匹配其相应的监地址,并判断数据包类型,若不匹配,则丢弃;若匹配,再判断数据包是否来自于上层控制平面,若是则交给下一级处理模块内定义的数据包重新封装模块直接处理,否则交给下一级处理模块按正常流程进行处理; (2.2)数据处理:数据分发模块接收到符合要求的数据包为一般以太网包,则发送给所述虚拟路由查找模块一,按照一般以太网包处理流程处理;若为用户自定义数据包,则发送给所述虚拟路由查找模块二; 所述虚拟路由查找模块二接收到数据包后,先发送给哈希处理模块,进行哈希处理;所述哈希处理模块内有哈希预处理模块和哈希编码模块:当接收到数据包后,所述哈希预处理模块根据自定义数据包首部格式将目的逻辑地址取出并设置有效位,所述哈希编码模块检测到来自上一级的有效位后,接收逻辑地址,对该逻辑地址进行105计算,生成标准格式的逻辑地址信息; (2.3)更新校验:更新校验模块接收来自上一级的控制信号,计算数据包的效验和((61160^811111)以及更新值,并输出新的效验和及171值; 所述数据分发模块和所述更新校验模块为所述虚拟路由查找模块一和所述虚拟路由查找模块二所共享,提供服务; (3)数据包输出:数据包输出模块将处理完毕并重新封装的数据包排队输出; 上述各模块都是由寄存器控制模块进行配置管理。
2.一种可编程虚拟化路由器多协议类型数据包并行处理装置,其特征在于:其包括数据包读取模块、路由查找模块、数据包输出模块和寄存器控制模块; 所述数据包读取模块用于接收来自外部的数据包,以轮询的方式读取数据,然后检查读取的数据是否完整;若为完整的数据包,则转发给下一级模块,否则丢弃,继续读取; 所述路由查找模块为数据包处理的核心模块,主要是用来做路由查找,其包括有数据分发模块、虚拟路由查找模块一、虚拟路由查找模块二和更新校验模块; 所述数据分发模块用作数据包类型判断和数据包来源识别;当接收到来自数据包读取模块的数据包后,检查目标端口是否匹配其相应的监地址并判断数据包类型;若不匹配,则丢弃;若匹配,再判断数据包是否来自于上层控制平面,若是则交给下一级处理模块内定义的数据包重新封装模块直接处理,否则交给下一级处理模块按正常流程进行处理;所述虚拟路由查找模块一用于处理一般以太网包,当接收到来自上一级的数据包后,所述虚拟路由查找模块一调用其内定义的处理方法模块对数据包首部进行最长前缀匹配、地址解析和过滤操作,返回下一跳I?地址和端口号,然后根据各项信息重新封装数据包,产生新的数据包转发出去; 所述虚拟路由查找模块二用于处理用户自定义数据包,当接收到数据包后,先发送给所述虚拟路由查找模块二内定义缓冲池,为所述数据包重新封装模块缓存数据,然后拷贝一份发送给所述虚拟路由查找模块二内定义的哈希处理模块,生成标准格式的逻辑地址,尔后送到各自定义数据包解析模块做地址解析等处理; 所述更新校验模块用于根据控制信号及时更新数据包的效验和以及丁!1值,输出新的效验和及III值; 所述数据包输出模块用于将重新封装的数据包排队输出; 所述寄存器控制模块用于对上述各模块进行配置管理。
3.根据权利要求2所述的可编程虚拟化路由器多协议类型数据包并行处理装置,其特征在于:所述数据分发模块和所述更新校验模块为所述虚拟路由查找模块一和所述虚拟路由查找模块二所共享,提供服务,更新校验模块根据控制信号及时更新数据包的效验和((61160^811111)以及171值,输出新的效验和(及171值。
4.根据权利要求2所述的可编程虚拟化路由器多协议类型数据包并行处理装置,其特征在于:所述虚拟路由查找模块一和所述虚拟路由查找模块二可以并行处理不同种协议类型的数据包,用户可根据需要自定义数据包处理流程,并且所述虚拟路由查找模块一和所述虚拟路由查找模 块二相互独立,互不影响。
【文档编号】H04L12/721GK103841016SQ201410101979
【公开日】2014年6月4日 申请日期:2014年3月19日 优先权日:2014年3月19日
【发明者】张毅, 胡健, 赵国峰, 胡书敏, 侯海兵 申请人:重庆邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1