CN106941457A - 基于多核处理器的ip报文分片重组的方法及装置 - Google Patents
基于多核处理器的ip报文分片重组的方法及装置 Download PDFInfo
- Publication number
- CN106941457A CN106941457A CN201610006349.5A CN201610006349A CN106941457A CN 106941457 A CN106941457 A CN 106941457A CN 201610006349 A CN201610006349 A CN 201610006349A CN 106941457 A CN106941457 A CN 106941457A
- Authority
- CN
- China
- Prior art keywords
- hash
- grades
- level
- message
- core
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/36—Flow control; Congestion control by determining packet size, e.g. maximum transfer unit [MTU]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6245—Modifications to standard FIFO or LIFO
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9036—Common buffer combined with individual queues
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9042—Separate storage for different parts of the packet, e.g. header and payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种基于多核处理器的IP报文分片重组的方法及装置,该方法包括:根据源IP和目的IP组成的IP对及ip verion对获取的待处理的IP报文分片进行第一级hash查找,以在一级哈希hash表中获取所述IP对对应的表项,并根据所述表项获取二级hash表起始指针;根据IP报文分片的IP id和所述二级hash表起始指针进行第二级hash查找,以在二级hash表中获取到匹配的IP报文分片;将所述匹配的IP报文分片发送给下一级线程或其他CPU核,以使所述下级硬线程或其他CPU核对所述匹配的IP报文分片进行组包,以进行后续处理。本发明可在同样处理器条件下大幅提高分片组包的速率,并实现业务包的保序,改进IP分片报文处理能力,满足更高性能需求,并可满足BBU产品更高集成度的设计要求。
Description
技术领域
本发明涉及网络通信技术领域,特别是涉及一种基于多核处理器的IP报文分片重组的方法及装置。
背景技术
硬线程多核CPU是广泛用于嵌入式***的CPU。多核CPU上vxWorks或linux下基于纯软件协议栈的ip包分片组包,其传输性能很低:在一款硬线程多核CPU上的IP分片组包速度只有80Mbps左右。在分组核心网PCN中,所传送的用户净荷(用户数据)将分别通过添加和去除GTP信头来封装和拆除封装。eNodeB(Evolved Node B,演进型Node B)与在服务网关S-GW之间以及S-GW与公用数据网PDN网关P-GW之间的对应的通用数据传输平台(General Data TransferPlatform,简称GTP)隧道需要被建立,以便在用户设备UE与分组数据网络PDN之间成功地传送IP分组,同时S-GW充当两个隧道之间的中介。在无线网络的eNodeB/S-GW/P-GW中,各网络单元都将重组IP分组以获得完整数据,然后建立GTP隧道以将数据发送给下一个网络单元(参见图1)。
随着IP技术的大规模应用和部署,各个网元的处理性能需要不断的提高。以无线接入网网元eNodeB为例,其主要板卡的IP报文处理能力需要达到1.2Gbps~2.4Gbps(根据不同载扇处理能力配置)。而且在不限制分片的配置下,其中大半是分片包。这种高速转发需要进一步改进IP分片报文处理能力以满足更高性能需求。
采用多核多硬线程处理器实现高性能IP分片报文处理能力,一般的做法是:利用硬件hash分发将分片组包负荷分担到多个核多个硬线程,从而实现分片组包能力的提升。普通的分片包负荷分担是将“源地址、源端口、目的地址、目的端口以及协议号”五元组信息或者“源IP地址、目的IP地址、IP版本以及IP id”信息合并计算哈希值,这种方法通过多核多线程较大的提升了分片组包处理能力,而且一般的多核的网络处理器里都只处理分片包指针,而不拷贝数据体,因而有较高的分片组包能力。
但是,上述方法牺牲了室内基带处理单元(BBU,Building Baseband Unit)的一个重要特性:业务包的保序,而没有这种保序就可能引起BBU的功能混乱。而且由于hash后需要做IP地址对的二次匹配,部分降低了分片组包性能。因而,如何提供一种高效的基于多核处理器的IP报文分片重组的方法就成为了亟待解决的技术问题。
发明内容
为解决上述技术问题,本发明一方面提出了一种基于多核处理器的IP报文分片重组的方法,该方法包括:
一级核根据源IP和目的IP组成的IP对对获取的待处理的IP报文分片进行第一级hash查找,以在一级哈希hash表中获取所述IP对对应的表项,并根据所述表项获取二级hash表起始指针;
所述一级核根据IP报文分片的IP id和所述二级hash表起始指针进行第二级hash查找,以在二级hash表中获取到匹配的IP报文分片;
所述一级核将所述匹配的IP报文分片发送给下一级线程或其他CPU核,以使所述下级硬线程或其他CPU核对所述匹配的IP报文分片进行组包,以进行后续处理。
优选地,所述一级核根据IP报文分片的IP id和所述二级hash表起始指针进行第二级hash查找,以在二级hash表中获取到匹配的IP报文分片之前,该方法还包括:
所述一级核根据预设数据通道流量等级以及信息量准则分配所述二级hash表的表长。
优选地,所述一级核根据源IP和目的IP组成的IP对对获取的待处理的IP报文分片进行第一级hash查找,以在一级哈希hash表中获取所述IP对对应的表项,并根据所述表项获取二级hash表起始指针之前,所述方法还包括:
对于有超大吞吐量的分片组包***,在硬件加速器里根据源IP地址、目的IP地址进行hash查找,以通过硬件自动将hash出来的IP报文分片包分散给多个一级核。
优选地,该方法还包括:
在多核多线程访问同一表项时,采用写操作标识、读操作标识以及冲突数据标识三个变量控制并发免锁方法访问该表项以获取到IP报文分片信息。
优选地,该方法还包括:
与其他硬线程间的通讯均通过异步核间消息收发方式进行报文收发。
优选地,该方法还包括:
在多核多线程将产生的所述IP报文分片向外并发发送时,对同一ip对采用同一全局变量作为对应的id索引,其他核分别根据所述全局变量区别递增产生各自对应的分片id索引。
另一方面,本发明还提供了一种基于多核处理器的IP报文分片重组的装置,该装置包括:
第一级hash单元:用于根据源IP和目的IP组成的IP对对获取的待处理的IP报文分片进行第一级hash查找,以在一级哈希hash表中获取所述IP对对应的表项,并根据所述表项获取二级hash表起始指针;
第二级hash单元:用于根据IP报文分片的IP id和所述二级hash表起始指针进行第二级hash查找,以在二级hash表中获取到匹配的IP报文分片;
发送单元,用于将所述匹配的IP报文分片发送给下一级线程或其他CPU核,以使所述下级硬线程或其他CPU核对所述匹配的IP报文分片进行组包,以进行后续处理。
优选地,该装置还包括:
表长分配单元,用于根据预设数据通道流量等级以及信息量准则分配所述二级hash表的表长。
优选地,对于有超大吞吐量的分片组包***,该装置还包括:
分片包获取单元,用于在硬件加速器里根据源IP地址、目的IP地址进行hash查找,以通过硬件自动将hash出来的IP报文分片包分散给多个一级核。
优选地,所述第二级hash单元,进一步用于在多核多线程访问同一表项时,采用写操作标识、读操作标识以及冲突数据标识三个变量控制并发免锁方法访问该表项以获取到IP报文分片信息。
本发明可以在同样处理器条件下大幅提高分片组包的速率,并实现业务包的保序,进一步改进了IP分片报文处理能力,可满足更高性能需求,并且可满足BBU产品更高集成度的设计要求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明一个实施例的LTE***中各节点间的分片组包交互模型示意图;
图2示出了本发明一个实施例的基于多核处理器的IP报文分片重组的方法流程图;
图3示出了本发明一个实施例的基于多核处理器的IP报文分片重组的装置结构框图;
图4示出了本发明一个实施例的在第一级核上进行的按流量分配二级hash的方法流程图;
图5示出了本发明一个实施例的二级hash结构示意图;
图6示出了本发明一个实施例的各个核或硬线程间的分工协作流程示意图;
图7示出了本发明一个实施例的二级hash数组成员的核间互斥变量示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图2示出了本发明一个实施例的基于多核处理器的IP报文分片重组的方法流程图;如图2所示,该方法包括:
S1:一级核根据源IP和目的IP组成的IP对,并可考虑IP版本信息,对获取的待处理的IP报文分片进行第一级hash查找,以在一级哈希hash表中获取所述IP对对应的表项,并根据所述表项获取二级hash表起始指针
S2:所述一级核根据IP报文分片的IP id和所述二级hash表起始指针进行第二级hash查找,以在二级hash表中获取到匹配的IP报文分片;
S3:所述一级核将所述匹配的IP报文分片发送给下一级线程或其他CPU核,以使所述下级硬线程或其他CPU核对所述匹配的IP报文分片进行组包,以进行后续处理(例如按序转发等)。
需要说明的是,本方法可以由CPU核或者硬线程进行实施,且本方法中所涉及的分片组包不仅适用于LTE eNodeB和核心网节点间的分片组包,还适用于L2TP或其它基于多核多线程的分片组包应用。
本实施例可以在同样处理器条件下大幅提高分片组包的速率,并实现业务包的保序,进一步改进了IP分片报文处理能力,可满足更高性能需求,并且可满足BBU产品更高集成度的设计要求。
作为本实施例的优选,步骤S2之前,该方法还可包括:
S4:所述一级核根据预设数据通道流量等级以及信息量准则分配所述二级hash表的表长。
进一步地,步骤S1之前,所述方法还可包括:
S5:对于有超大吞吐量的分片组包***(比如10G以上流量),在硬件加速器里根据源IP地址、目的IP地址进行hash查找,以通过硬件自动将hash出来的IP报文分片包分散给多个一级核。
相当于有多套上述分片组包***,实现更大规模的分片组包处理。
在此基础上,该方法还可进一步包括:
S6:在多核多线程访问同一表项时,采用写操作标识、读操作标识以及冲突数据标识三个变量控制并发免锁方法访问该表项以获取到IP报文分片信息。
此外,本实施的方法还可包括:
S7:与其他硬线程间的通讯均通过异步核间消息收发方式进行报文收发。
优选地,该方法还包括:
S8:在多核多线程将产生的所述IP报文分片向外并发发送时,对同一ip对采用同一全局变量作为对应的id索引,其他核分别根据所述全局变量区别递增产生各自对应的分片id索引。
图3示出了本发明一个实施例的基于多核处理器的IP报文分片重组的装置结构框图;如图3所示,本装置包括:
第一级hash单元100:用于根据源IP和目的IP组成的IP对对获取的待处理的IP报文分片进行第一级hash查找,以在一级哈希hash表中获取所述IP对对应的表项,并根据所述表项获取二级hash表起始指针;
第二级hash单元200:用于根据IP报文分片的IP id和所述二级hash表起始指针进行第二级hash查找,以在二级hash表中获取到匹配的IP报文分片;
发送单元300,用于将所述匹配的IP报文分片发送给下一级线程或其他CPU核,以使所述下级硬线程或其他CPU核对所述匹配的IP报文分片进行组包,以进行后续处理。
本实施例所述的装置可以用于执行上述方法实施例,其原理和技术效果类似,此处不再赘述。
作为本实施例的优选,该装置还可以包括:
表长分配单元400,用于根据预设数据通道流量等级以及信息量准则分配所述二级hash表的表长。
进一步地,上述装置还可以包括:
分片包获取单元500,用于在硬件加速器里根据源IP地址、目的IP地址(以及考虑IP版本信息)进行hash查找,以通过硬件自动将hash出来的IP报文分片包分散给多个一级核,以实现更大规模的分片组包处理。作为优选,上述实施例中的第二级hash单元200可以进一步用于在多核多线程访问同一表项时,采用写操作标识、读操作标识以及冲突数据标识三个变量控制并发免锁方法访问该表项以获取到IP报文分片信息。
本实施例所述的装置可以用于执行上述方法实施例,其原理和技术效果类似,此处不再赘述。
下面通过具体实例详细介绍本发明的基于多核处理器的IP报文分片重组的方法及装置的应用过程。
本实施例中,从外部进入的分片包首先要进入“第一级核”(执行第一级hash查找的CPU核)进行hash匹配查找:
现有技术中,普通硬线程多核分片组包是用的一级hash查找分片,这种方式由于无法保证多核多线程的均匀处理,因而做不到业务包在小区级的保序。因此,本实施例采用2级hash计算以提高搜索命中效率。
另外,本实施例的2级hash计算方法可以进一步区分重点数据,进行针对重点数据的更高性能处理。比如,在BBU基站上业务包是重点分片数据,所以针对业务包分配了更大的hash空间(一个hash表的表越长,数据越分散,自然命中概率越高),从而最好的保证重点分片数据的命中概率,实现性能的大幅提升。
具体地,图4示出了本发明一个实施例的在第一级核上进行的按流量分配二级hash的方法流程图;如图4所示,例如在BBU上,能确认是业务包有独立的ip,且业务包主要来自S-GW的固定地址段,所以以源ip、目的ip(包括IP版本)组合信息作为第一级hash很快能定位重要的一级表项,然后用分片id进行更精确的2级hash查找。由于是重要的数据,业务报文的2级hash表更长,可以极大的提高命中精度,从而实现更高的性能。通过这种侧重“重要分片数据”的方法即可实现提升整体性能,有效提升分片组包的速率和稳定性。
进一步地,本实施例的方法是基于“信息量准则”—即数据流量最大的通路上的分片组包能获得最高效的处理,而普通的低速分片数据处理效率更低。
特别说明的是,上述信息量准则是借用通信理论中信息编码思想,举例说明如下:假如要发的信息由0、1、2、3表达,普通编码方法会用0x00、0x01、0x10、0x11表达(平均信息量是2比特),这是不考虑信息权重的低效编码方案,但如果发出的信息99%是1,只有1%是0、2、3,则可以将1编码成1比特,其它编成2或3比特,得出平均信息量是1.01比特,则这种考虑权重的编码效率相对于普通编码大约实现了100%的提升,这种参考权重的处理思想就是信息量准则。
类似于信息编码中出现概率高的数据获得短的编码,出现概率低的数据获得长的编码。以LTE eNodeB的分片组包为例:由于大部分的分片来自“S-GW业务网关”,X2通道次之,其它更少,所以来自“S-GW业务网关”的分片在作2级hash时,预先为其分配了64项的表长,而X2通道的2级hash表表长L则只分配了8项(参见图5)。如此,即可使来自“S-GW业务网关”的分片会以最快的效率匹配。
类似的,因为在S-GW上其服务的eNodeB是明确的,同样可以根据流量预估按“信息量准则”分配各eNodeB匹配流量的2级hash表长。对于极少有超大吞吐量的P-GW或S-GW***,可以进一步补充如下前置方法:先在硬件加速器里针对“源IP地址、目的IP地址”及ip verion进行hash查找,以通过硬件自动将hash查找出来的包分散给多个“第一级核”。从而实现更大规模的分片组包处理。
除了利用上述“信息量准则”提升性能,本方法采用如下多核多线程的负荷分担方式以进一步提升性能:
图6示出了本发明一个实施例的各个核或硬线程间的分工协作流程示意图;如图6所示,本方法只有分片包的查找匹配放在“第一级核”,其它功能如匹配后的组包或按序转发或重分片以及过期报文的标记由其它硬线程完成,这样可以极大的实现负荷分担,相当于流水线操作提升整体性能。“第一级核”和其它硬线程间的接收发送均采用不等待的核间消息收发方法(即异步核间消息收发方法,先发出核间消息,不检测发送完成就继续接收处理下一消息,直到要发出下一核间消息才检查上一消息是否发送完成),可大量减少投递等待时间,进一步提升分片处理速度.正是由于只有hash匹配查找放在“第一级核”,所以能很好的实现高速保序(有些数据如LTE里eNodeB,S-GW的业务数据包需要ip包的保序),因为可以按指定的字段(比如在LTE里就是按相同的teid的包投递到同一硬线程进行组包后处理的)分派给同一下级硬线程的方式实现的保序(如果分到了不同的硬线程就不能保序了)。
另外对分片的过期搜索是在和处理hash匹配的核(可称为“第一级核”)不同的硬线程里,为了避免多核数据访问锁影响性能,负责“过期搜索的核或硬线程”会将过期信息指针通过不等待核间投递的方法告知“第一级核”,这样“第一级核”可以很快释放缓冲区和分片信息,且不需加锁。
由于多线程多核下的分片重组需要在多核同时发出高速分片,为了避免分片id的加锁保护(一般用spinlock加锁)影响性能,本方法采用同一全局变量作为分片id索引,各个核“区别递增”的方法,以两个硬线程都要发出分片包为例,具体说明如下:假如源ip和目的ip对(分片id都是和这种id对对应的)确定有一全局索引变量g_frag_ip_parts_index,则:
线程0向外发时取分片id为2*(g_frag_ip_parts_index++);
线程1向外发时取分片id为2*(g_frag_ip_parts_index++)+1;
这样相当于线程0的分片id永远为偶数,线程1的分片id永远为奇数,在不加互斥锁的情况下能很好产生不冲突的分片id。
而如果按普通的方法:各线程分片id都取(g_frag_ip_parts_index++),由于多核没加锁,有时不同的硬线程会用相同的分片id产生分片包,这在组包的接收端会引起混乱,而加数据锁又会引起性能严重下降。所以,本实施例方法采用了上述“各个核分别递增索引”的方法提升分片处理性能。
具体地,以LTE BBU上的分片重组为例:“第一级核”从网口收到分片包后,以“源ip,目的ip,IP版本组合信息”作为第一级hash计算匹配找到该“地址对”下的“分片信息存放指针”,“分片信息存放指针”下存放了:源ip、目的ip、IP版本,指向下一个“ip地址对”的“i分片信息存放指针”,最重要的存放了二级hash表数组的起始指针、长度,当前分片计数和ip分片id等。
根据“ip地址对”的“分片信息存放指针”里的信息及当前ip包里的数据开始二级hash匹配查找,由于大部分的分片来自“S-GW业务网关”,来自其它eNodeB的X2通道分片较少,所以根据“信息量准则”给来自S-GW的二级hash分配了64项的表长,而来自其它eNodeB只分配了8项的表长,所以大流量的S-GW分片数据可以很快地匹配到具体的id分片。
如图5所示,以LTE eNodeB上的2级hash表结构为例,竖向数组长度为2级hash表长,对来自S-GW的分片,该表长为64,横向为串连的分片信息指针(每个分片信息结构内的分片id是不同的)。
下面具体说明本实施例中在多核多线程访问同一表项时,采用写操作标识、读操作标识以及冲突数据标识三个变量控制并发免锁方法访问该表项以获取到IP报文分片信息的过程。
图7示出了本发明一个实施例的二级hash数组成员的核间互斥变量示意图;如图7所示,本实施例的“第一级核”将匹配ip分片id后的分片包指针信息链通过“不等待的核间消息”发给多个“第二级硬线程或核”进行组包或按序转发等后处理操作,同时置原子写操作标识为1并从第1级核里清除hash链中的已匹配的分片信息指针,然后清“写操作标识”为0(这个“写操作标识”是为了“单独处理分片超时的硬线程”可以不等待的搜索“第一级核”里的分片信息链)。
需要注意的是,本实施例在每次置“写操作标识”为1时都要检查“读操作标识”,如果检查到“读操作标识”为1则原子操作置“写冲突数据标识”为1(见二级hash数组成员的核间互斥变量示意图),这样配合后面的操作实现多核免锁并发操作。
“单独处理分片超时的硬线程”T毫秒(比如在LTE eNodeB上用100ms)搜索“第一级核”的所有hash信息链,查找过期分片,但要注意的是要原子读hash表项里的“写操作标识”,当“写操作标识”为1时,跳过该表项,这样避免了加锁等待(一般用spinlock加锁),实现最高效率的多核并发。
如图7所示的三个互斥标识量的时序关系:
在LTE eNodeB上,三个互斥标识量存放在“指针链头”信息里。具体的说“处理超时的硬线程”是两次读,如果首先读到“写操作标识”为0,则原子写“读操作标识”为1并读出该“指针链头”下横向链中的全部“分片信息ptr”,然后读一次“冲突数据标识”,如果该标识也为0,则表示读出数有效,否则丢弃已读信息,而且原子操作清空“读操作标识”和“冲突数据标识”。
需要说明的是,图7中的“读操作标识”总是在“写操作标识”之前置1(因为如果之前检查到“写操作标识”为1,则直接跳过了这个“指针链头”(相当于不操作这个表项了)走到下一表项,所以会出现如图7所示“写操作标识”置1总是在后)。但不确定哪个“标识”会先清0,所以要引入“写冲突数据标识”以保留曾经“冲突”的状态,但只有“读操作标识”的一方才能清“冲突”标识。
本发明可以在同样处理器条件下大幅提高分片组包的速率,并实现业务包的保序,进一步改进了IP分片报文处理能力,可满足更高性能需求,并且可满足BBU产品更高集成度的设计要求。
以上实施例仅用于说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于多核处理器的IP报文分片重组的方法,其特征在于,包括:
一级核根据源IP和目的IP组成的IP对对获取的待处理的IP报文分片进行第一级hash查找,以在一级哈希hash表中获取所述IP对对应的表项,并根据所述表项获取二级hash表起始指针;
所述一级核根据IP报文分片的IP id和所述二级hash表起始指针进行第二级hash查找,以在二级hash表中获取到匹配的IP报文分片;
所述一级核将所述匹配的IP报文分片发送给下一级线程或其他CPU核,以使所述下级硬线程或其他CPU核对所述匹配的IP报文分片进行组包,以进行后续处理。
2.如权利要求1所述的方法,其特征在于,所述一级核根据IP报文分片的IP id和所述二级hash表起始指针进行第二级hash查找,以在二级hash表中获取到匹配的IP报文分片之前,该方法还包括:
所述一级核根据预设数据通道流量等级以及信息量准则分配所述二级hash表的表长。
3.如权利要求1所述的方法,其特征在于,所述一级核根据源IP和目的IP组成的IP对对获取的待处理的IP报文分片进行第一级hash查找,以在一级哈希hash表中获取所述IP对对应的表项,并根据所述表项获取二级hash表起始指针之前,所述方法还包括:
对于有超大吞吐量的分片组包***,在硬件加速器里根据源IP地址、目的IP地址进行hash查找,以通过硬件自动将hash出来的IP报文分片包分散给多个一级核。
4.如权利要求1所述的方法,其特征在于,该方法还包括:
在多核多线程访问同一表项时,采用写操作标识、读操作标识以及冲突数据标识三个变量控制并发免锁方法访问该表项以获取到IP报文分片信息。
5.如权利要求1所述的方法,其特征在于,该方法还包括:
与其他硬线程间的通讯均通过异步核间消息收发方式进行报文收发。
6.如权利要求1所述的方法,其特征在于,该方法还包括:
在多核多线程将产生的所述IP报文分片向外并发发送时,对同一ip对采用同一全局变量作为对应的id索引,其他核分别根据所述全局变量区别递增产生各自对应的分片id索引。
7.一种基于多核处理器的IP报文分片重组的装置,其特征在于,包括:
第一级hash单元:用于根据源IP和目的IP组成的IP对对获取的待处理的IP报文分片进行第一级hash查找,以在一级哈希hash表中获取所述IP对对应的表项,并根据所述表项获取二级hash表起始指针;
第二级hash单元:用于根据IP报文分片的IP id和所述二级hash表起始指针进行第二级hash查找,以在二级hash表中获取到匹配的IP报文分片;
发送单元,用于将所述匹配的IP报文分片发送给下一级线程或其他CPU核,以使所述下级硬线程或其他CPU核对所述匹配的IP报文分片进行组包,以进行后续处理。
8.如权利要求7所述的装置,其特征在于,该装置还包括:
表长分配单元,用于根据预设数据通道流量等级以及信息量准则分配所述二级hash表的表长。
9.如权利要求7所述的装置,其特征在于,对于有超大吞吐量的分片组包***,该装置还包括:
分片包获取单元,用于在硬件加速器里根据源IP地址、目的IP地址进行hash查找,以通过硬件自动将hash出来的IP报文分片包分散给多个一级核。
10.如权利要求9所述的装置,其特征在于,所述第二级hash单元,进一步用于在多核多线程访问同一表项时,采用写操作标识、读操作标识以及冲突数据标识三个变量控制并发免锁方法访问该表项以获取到IP报文分片信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610006349.5A CN106941457B (zh) | 2016-01-04 | 2016-01-04 | 基于多核处理器的ip报文分片重组的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610006349.5A CN106941457B (zh) | 2016-01-04 | 2016-01-04 | 基于多核处理器的ip报文分片重组的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106941457A true CN106941457A (zh) | 2017-07-11 |
CN106941457B CN106941457B (zh) | 2019-09-06 |
Family
ID=59469881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610006349.5A Expired - Fee Related CN106941457B (zh) | 2016-01-04 | 2016-01-04 | 基于多核处理器的ip报文分片重组的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106941457B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109286577A (zh) * | 2017-07-21 | 2019-01-29 | 东软集团股份有限公司 | 一种多核***中的分片重组方法、装置及设备 |
CN109900491A (zh) * | 2017-12-11 | 2019-06-18 | 通用汽车环球科技运作有限责任公司 | 使用冗余处理器架构通过参数数据进行诊断故障检测的***、方法和装置 |
CN111786905A (zh) * | 2020-06-30 | 2020-10-16 | 北京天融信网络安全技术有限公司 | 报文重组方法及装置、处理器、存储介质及网络设备 |
CN112653639A (zh) * | 2020-12-21 | 2021-04-13 | 北京华环电子股份有限公司 | 一种基于多线程交互处理的IPv6报文分片重组方法 |
CN115022423A (zh) * | 2022-06-22 | 2022-09-06 | 上海弘积信息科技有限公司 | 一种负载均衡设备中IPv4标识分配方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645851A (zh) * | 2009-09-03 | 2010-02-10 | 中兴通讯股份有限公司 | 一种ip分片报文的重组方法和装置 |
CN101656677A (zh) * | 2009-09-18 | 2010-02-24 | 杭州迪普科技有限公司 | 一种报文分流处理方法及装置 |
CN102123090A (zh) * | 2011-02-23 | 2011-07-13 | 中国人民解放军国防科学技术大学 | 基于两级表存储和查询传输层信息的ip分片处理方法 |
CN102752198A (zh) * | 2012-06-21 | 2012-10-24 | 北京星网锐捷网络技术有限公司 | 多核报文转发方法、多核处理器及网络设备 |
-
2016
- 2016-01-04 CN CN201610006349.5A patent/CN106941457B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101645851A (zh) * | 2009-09-03 | 2010-02-10 | 中兴通讯股份有限公司 | 一种ip分片报文的重组方法和装置 |
CN101656677A (zh) * | 2009-09-18 | 2010-02-24 | 杭州迪普科技有限公司 | 一种报文分流处理方法及装置 |
CN102123090A (zh) * | 2011-02-23 | 2011-07-13 | 中国人民解放军国防科学技术大学 | 基于两级表存储和查询传输层信息的ip分片处理方法 |
CN102752198A (zh) * | 2012-06-21 | 2012-10-24 | 北京星网锐捷网络技术有限公司 | 多核报文转发方法、多核处理器及网络设备 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109286577A (zh) * | 2017-07-21 | 2019-01-29 | 东软集团股份有限公司 | 一种多核***中的分片重组方法、装置及设备 |
CN109900491A (zh) * | 2017-12-11 | 2019-06-18 | 通用汽车环球科技运作有限责任公司 | 使用冗余处理器架构通过参数数据进行诊断故障检测的***、方法和装置 |
CN109900491B (zh) * | 2017-12-11 | 2021-05-11 | 通用汽车环球科技运作有限责任公司 | 使用冗余处理器架构通过参数数据进行诊断故障检测的***、方法和装置 |
CN111786905A (zh) * | 2020-06-30 | 2020-10-16 | 北京天融信网络安全技术有限公司 | 报文重组方法及装置、处理器、存储介质及网络设备 |
CN112653639A (zh) * | 2020-12-21 | 2021-04-13 | 北京华环电子股份有限公司 | 一种基于多线程交互处理的IPv6报文分片重组方法 |
CN112653639B (zh) * | 2020-12-21 | 2022-10-14 | 北京华环电子股份有限公司 | 一种基于多线程交互处理的IPv6报文分片重组方法 |
CN115022423A (zh) * | 2022-06-22 | 2022-09-06 | 上海弘积信息科技有限公司 | 一种负载均衡设备中IPv4标识分配方法 |
Also Published As
Publication number | Publication date |
---|---|
CN106941457B (zh) | 2019-09-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106941457A (zh) | 基于多核处理器的ip报文分片重组的方法及装置 | |
Kogan et al. | SAX-PAC (scalable and expressive packet classification) | |
RU2643626C1 (ru) | Способ распределения принимаемых пакетов, селектор очереди, устройство обработки пакетов и носитель информации | |
CN104580027B (zh) | 一种OpenFlow报文转发方法及设备 | |
CN104283806B (zh) | 业务链处理方法和设备 | |
CN104734964B (zh) | 报文处理方法、节点及*** | |
CN105224692A (zh) | 支持多核处理器的sdn多级流表并行查找的***及方法 | |
CN113132249A (zh) | 一种负载均衡方法和设备 | |
CN102752198A (zh) | 多核报文转发方法、多核处理器及网络设备 | |
CN107466079A (zh) | 自动中继切换方法及装置 | |
HK1126052A1 (en) | Aggregated resource reservation for data flows | |
CN104579948A (zh) | 一种报文分片处理方法及装置 | |
CN105391634B (zh) | 一种报文处理方法、装置及交换机 | |
CN105556916A (zh) | 网络流的信息统计方法和装置 | |
CN106685862B (zh) | 一种分片数据包处理方法及装置 | |
EP3310093B1 (en) | Traffic control method and apparatus | |
CN110383792A (zh) | 通过多包处理核心对无线订户包处理的负载平衡 | |
CN104821924A (zh) | 一种网络数据包处理方法、装置和网络处理设备 | |
WO2013000116A1 (zh) | 一种漏桶限速方法及装置 | |
CN110555079A (zh) | 数据处理方法、装置、设备以及存储介质 | |
CN104572498A (zh) | 报文的缓存管理方法和装置 | |
CN108259374A (zh) | 一种多核处理器及报文处理方法 | |
CN104484619B (zh) | 一种解决客户端多逻辑通道访问pkcs#15文件冲突的方法 | |
CN106453092B (zh) | 一种路由更新方法和装置 | |
Wu et al. | Toward energy‐proportional Internet core networks: an energy‐minimized routing and virtual topology design for Internet protocol layer |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190906 Termination date: 20220104 |