首页 / 专利库 / 物理 / 加速 / 一种基于SMID指令的为网络分组分类提供加速支持的方法

一种基于SMID指令的为网络分组分类提供加速支持的方法

阅读:188发布:2023-02-13

专利汇可以提供一种基于SMID指令的为网络分组分类提供加速支持的方法专利检索,专利查询,专利分析的服务。并且一种基于SMID指令的为网络分组分类提供 加速 支持的方法,包括:根据网络分组的头部信息的特性构建所述网络分组的映射结构;通过所述SIMD指令将所述网络分组中的包含有五元组信息的字段一次性装载到所述映射结构中;通过所述映射结构中的五元组信息,对网络分组进行分类。本 发明 的优点是,通过优化的网络分组的映射结构,使得该映射结构可以通过SIMD并行指令被一次性装载,减少了访存的次数,实现了对网络分组分类的加速支持。,下面是一种基于SMID指令的为网络分组分类提供加速支持的方法专利的具体信息内容。

1.一种基于SMID指令的为网络分组分类提供加速支持的方法,包括:
根据网络分组的头部信息的特性构建所述网络分组的映射结构;
通过所述SIMD指令将所述网络分组中的包含有五元组信息的字段一次性装载到所述映射结构中;
通过所述映射结构中的五元组信息,对网络分组进行分类。
2.根据权利要求1所述的网络分组分类加速支持方法,其特征在于,构建后的映射结构保存在内存中。
3.根据权利要求1所述的网络分组分类加速支持方法,其特征在于,所述五元组信息包括:源网络地址、目的网络地址、四层协议号、源端口以及目的端口,其中,源网络地址、目的网络地址以及四层协议号由网络层提供,源端口以及目的端口由传输层提供。
4.根据权利要求2所述的网络分组分类加速支持方法,其特征在于,所述高位寄存器为
128位寄存器。
5.根据权利要求4所述的网络分组分类加速支持方法,其特征在于,所述128位寄存器的定义方法由其使用平台决定,所述使用平台包括:X86平台以及支持SIMD并行运算的ARM平台。
6.根据权利要求1所述的网络分组分类加速支持方法,其特征在于,所述包含有五元组信息的字段包括:网络协议的生存时间字段、网咯协议的四层协议字段、网络协议的检验码字段、网络协议的源地址字段、网络协议的目的地址字段、传输协议的源端口字段、用户数据报的源端口字段、传输协议的目的端口字段以及用户数据报的目的端口字段。
7.根据权利要求6所述的网络分组分类加速支持方法,其特征在于,所述包含有五元组信息的字段的获得方式包括:
获取网络分组,并对接收到的网络分组进行解析;
跟据所述解析结果,从所述网络分组的各个协议层中提取包含五元组信息的字段。
8.根据权利要求1所述的网络分组分类加速支持方法,其特征在于,所述通过所述SIMD指令将所述网络分组中的包含有五元组信息的字段一次性装载到所述映射结构中包括:
根据所述字段的长度指示,确定网络协议字段的起始位置
从网络协议的生存时间字段开始,一次性获取紧跟其后的连续的16个字节数据。
9.根据权利要求1所述的网络分组分类加速支持方法,其特征在于,所述通过所述映射结构中的五元组信息,对网络分组进行分类包括:
将具有相同五元组信息的分组归为一类,从而获得一类或多类的分组。
10.根据权利要求1所述的网络分组分类加速支持方法,其特征在于,该方法还包括:根据预置的分类处理流程,对不同归类的网络分组区分处理。

说明书全文

一种基于SMID指令的为网络分组分类提供加速支持的方法

技术领域

[0001] 本发明涉及计算机技术应用领域,特别是涉及了一种基于SMID指令的为网络分组分类提供加速支持的方法。

背景技术

[0002] 分组分类是指按照分组携带的所属信息(这些信息在双方通信期间保持不变,因此能标识一个具体的会话)进行归类的技术。该技术的目的是能够区分并处理所关心的分组。针对OSI(Open System Interconnection)开放式系统互联定义的七层协议模型或TCP/IP协议栈定义的五层协议模型来说,从根本上区分不同分组归类或相同分组归类的基本信息是分组携带的五元组。其中,所述五元组信息分别是源网络地址、目的网络地址、四层协议号、源端口、目的端口。
[0003] 其中源网络地址、目的网络地址以及四层协议号由“Network”网络层提供,源端口和目的端口由“Transport”传输层提供。
[0004] 传统的,从分组中在线提取五元组的方法是逐字节的拷贝到用户指定的内存空间,一般是一个特定的结构体,或按照对等结构体赋值(其实也是逐字节赋值的另一种表现形式)。第一种方法的访存次数和待拷贝字节的个数成正相关,字节数越大,访存频次越大;第二种方法能减小访存次数,但依旧受限于标准收据类型的位宽。
[0005] 举例说明:一个标识分组的基本五元组(如下文)其占用空间是13bytes,按照方法一(逐字节拷贝),访存次数为13次,每次复制一个字节。按照方法二,其访存次数为最大为5次(有标准数据类型的支持),最小为3次(源、目的网络地址可用一个64bit位宽的寄存器一次提取,源目的端口可用一个32bit位宽的寄存器一次性提取,协议类型可用一个8bit位宽的寄存器一次性提取)。
[0006] 因此,传统方法不能利用64bit标准位宽的通用寄存器从分组中实现一次性提取,这对转发时延、转发性能要求高的产品影响极大。

发明内容

[0007] 针对上述内容,本发明公开了一种基于SMID指令的为网络分组分类提供加速支持的方法,包括:根据网络分组的头部信息的特性构建所述网络分组的映射结构;通过所述SIMD指令将所述网络分组中的包含有五元组信息的字段一次性装载到所述映射结构中;通过所述映射结构中的五元组信息,对网络分组进行分类。
[0008] 进一步的,构建后的映射结构保存在内存中。
[0009] 进一步的,所述五元组信息包括:源网络地址、目的网络地址、四层协议号、源端口以及目的端口,其中,源网络地址、目的网络地址以及四层协议号由网络层提供,源端口以及目的端口由传输层提供。
[0010] 更进一步的,所述高位寄存器为128位寄存器。
[0011] 更进一步的,所述128位寄存器的定义方法由其使用平台决定,所述使用平台包括:X86平台以及支持SIMD并行运算的ARM平台。
[0012] 进一步的,所述包含有五元组信息的字段包括:网络协议的生存时间字段、网咯协议的四层协议字段、网络协议的检验码字段、网络协议的源地址字段、网络协议的目的地址字段、传输协议的源端口字段、用户数据报的源端口字段、传输协议的目的端口字段以及用户数据报的目的端口字段。
[0013] 更进一步的,所述包含有五元组信息的字段的获得方式包括:获取网络分组,并对接收到的网络分组进行解析;跟据所述解析结果,从所述网络分组的各个协议层中提取包含五元组信息的字段。
[0014] 进一步的,所述通过所述SIMD指令将所述网络分组中的包含有五元组信息的字段一次性装载到所述映射结构中包括:根据所述字段的长度指示,确定网络协议字段的起始位置;从网络协议的生存时间字段开始,一次性获取紧跟其后的连续的16个字节数据。
[0015] 进一步的,所述通过所述映射结构中的五元组信息,对网络分组进行分类包括:将具有相同五元组信息的分组归为一类,从而获得一类或多类的分组。
[0016] 进一步的,所述一种基于SMID指令的为网络分组分类提供加速支持的方法还包括:根据预置的分类处理流程,对不同归类的网络分组区分处理。
[0017] 本发明的优点是,通过优化的网络分组的映射结构,使得该映射结构可以通过SIMD并行指令被一次性装载,从而获取网络分组中的五元组信息,通过减少访存的次数,实现了对网络分组分类的加速支持。附图说明
[0018] 通过阅读下文具体实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出具体实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
[0019] 图1为本发明的方法流程图
[0020] 图2为网络分组结构示意图。
[0021] 图3为本发明的分类过程示意图。

具体实施方式

[0022] 下面将参照附图更详细地描述本公开的示例性实施方式。虽然附图中显示了本公开的示例性实施方式,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0023] 如图1所示,为本发明的方法流程图。本发明方法包括:获取网络分组,并对接收到的网络分组进行解析;根据网络分组的头部信息的特性构建所述网络分组的映射结构;跟据解析结果,从所述网络分组的各个协议层中提取包含五元组信息的字段;通过所述SIMD指令将所述网络分组中的包含有五元组信息的字段一次性装载到所述映射结构中;将具有相同五元组信息的分组归为一类,从而获得一类或多类的分组;根据预置的分类处理流程,对不同归类的网络分组区分处理。其中,所述“分组”是网络的专有名词,由于大多数计算机网络都不能连续地传送任意长的数据,所以实际上网络系统通过把数据分割成小,然后逐块地发送,所述小块就被称作分组;而分组分类则是指按照分组携带的所属信息进行归类,从而用于获取完整的数据信息。而所述并行运算指的是,在所述映射结构被构建后,本法明通过所述SIMD指令将所述网络分组中的包含有五元组信息的字段一次性装载到所述映射结构中。
[0024] 上述中,所述包含有五元组信息的字段以及对应字段所占空间的大小如下表所示:
[0025]
[0026] 其中,包括:网络协议的生存时间字段(Iphdr.time_to_live)、网络协议的四层协议字段(iphdr.next_proto_id)、网络协议的检验码字段(Iphdr.hdr_checksum)、网络协议的源地址字段(Iphdr.ip_src)、网络协议的目的地址字段(Iphdr.dst_src)、传输协议的源端口字段(Tcphdr.port_src)、用户数据报的源端口字段(Udphdr.port_src)、传输协议的目的端口字段(Tcphdr.port_dst)和用户数据报的目的端口字段(Udphdr.port_dst)。现有的网络分组的映射结构中不包含有生网络协议的存时间字段(Iphdr.time_to_live)与网络协议的检验码字段(Iphdr.hdr_checksum),共计13个字节104位宽。而由于目前没有一个通用的为13位的寄存器,因而无法对现有的网络分组的映射结构进行一次性装载,即需多次装载获取五元组信息。本发明中,通过对需要装载的网络协议字段进行拓展,增加了网络协议的生存时间字段以及网络协议的检验码字段,从而使得需要装载的包含有五元组信息的字段的总占有空间拓展为16字节128位宽,通过构建对应位宽(128位)的映射结构,利用SIMD指令,实现对网络分组中五元组信息的一次性装载,进而提高了五元组信息的获取速度。其中,构建后的映射结构保存在内存中。所述装载的具体过程为,当一个具有五元组信息的分组到达时,根据所述字段的长度指示,确定所述分组五元组信息提取的起始位置;从所述网络分组的网络协议的生存时间字段开始,一次性获取紧跟其后的连续的16个字节数据。其中,可选的,通过一种很快速的方法确定所述生存时间字段的位置:
[0027] “key=(uint8_t*)ipv4_hdr+offsetof(struct ipv4_hdr,time_to_live);"[0028] 经此一步,本发明已经得到了一次性从分组某处装载16字节的起始位置(即生存时间字段的位置),并由变量key保存。
[0029] 由于构建的映射结构保存在内存中,因此,向所述映射结构进行装载的方法视不同的平台即中央处理器芯片供应商的不同而不同,具体如下:
[0030]
[0031] 经此一步,利用16个字节,128位的映射结构只需一次访存(从分组->寄存器)以及一次寄存器访问(从高位宽专用寄存器->内存),即可以获得所述网络分组中的五元组信息,该过程中大大减少了访存次数(一般需3到5次),从而加速了分组信息的提取速度,进而实现对分组分类的加速支持。此外,需说明的是对于不支持SIMD高位宽寄存器的平台,无法通过本发明方法起到加速效果。
[0032] 如图2所示,为网络分组结构示意图,包括:前导码,为的起始;数据链路层的头部信息,其包括源网络地址、目的网络地址以及协议号;网络传输层的头部信息,其包括源端口以及目的端口;负载,即分组的有效载荷;帧尾部,用于帧的校验。
[0033] 如图3所示,为本发明的分类过程示意图,其中每一个数字编号代表一个分组,将具有相同五元组信息的分组归为一类,从而将18个分组分为三类,其中分组1、分组7、分组13、分组4、分组10以及分组15为第一类;分组2、分组8、分组14、分组5、分组11以及分组17为第二类;分组3、分组9、分组15、分组6、分组12、以及分组18为第三类。在分组分类的过程中需遵循负载平衡(LB)原则。最后,根据预置的分类处理流程,对不同归类的网络分组区分处理。
[0034] 以上,仅为本发明示例性的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈