【技术实现步骤摘要】
基于哈希运算和索引值比对的双向报文对称RSS处理方法及系统
本专利技术属于网络
,特别涉及一种基于哈希运算和索引值比对的双向报文对称RSS处理方法及系统。
技术介绍
DPDK(DataPlaneDevelopmentKit,数据平面开发套件)是由6WIND、Intel等多家公司开发,主要基于Linux系统运行,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。DPDK是一个开源的数据平面开发工具集。其通过网卡RSS、旁路OS、网卡无中断轮询、用户态驱动、独占CPU、大页内存等技术提供了用户态下高性能的数据包处理能力。在DPDK架构中为了提供更高报文处理性能,往往启用多个核心(CPU)、多线程模式,各自CPU独立处理。网卡收到报文后根据报文特征{源IP地址、源端口号、目的IP地址、目的端口号等}对接收报文进行RSS处理分发到不同的CPU处理。在网络应用中,如果同一个连接的双向报文在开启RSS之后被分发到同一个CPU上处理,这种RSS就称为对称RSS。对于需要为连接保存一些信息的网络应用来说,对称RSS对性能提升有很大帮助。如果同一个连接的双向报文被分发到不同的CPU,那么两个CPU之间共享这个连接的信息就会涉及到锁,而锁显然是会影响处理性能的。在基于DPDK技术的隧道设备实现中,当基于DPDK的多CPU高性能模式运行时,会面临到对称RSS问题:即如何保证经由隧道设备的某一个CPU处理并封装了原始报文的隧道报文在发到另一端隧道设备后和收到从该另一 ...
【技术保护点】
1.一种基于哈希运算和索引值比对的双向报文对称RSS处理系统,包括客户端,服务器端,及设置于客户端和服务器端之间用于正向报文和反向报文传送的第一隧道设备和第二隧道设备,第一隧道设备和第二隧道设备共同构成正向报文和反向报文传送隧道的两端,其特征在于,所述第一隧道设备和第二隧道设备内均设置有RSS模块,哈希模块,间接寻址模块及若干CPU、环形缓冲区队列和普通队列,其中,每个隧道设备的CPU个数均与对应的环形缓冲区队列和普通队列相一致,CPU、环形缓冲区队列及普通队列三者通过索引值相匹配;RSS模块对客户端和服务器端传送的数据报文利用哈希模块进行哈希运算并通过间接寻址模块索引值匹配,通过普通队列分发至匹配到的索引值序号CPU上;CPU读取报文并通过索引值与自身序号匹配,匹配正确则进行相应报文处理,否则将报文送至CPU对应的环形缓冲区队列中进行缓存;第一隧道设备和第二隧道设备中的任一CPU均与对应的哈希模块和间接寻址模块连接,CPU利用哈希模块运算获取的哈希值与间接寻址模块索引值比对来确定报文分配的目标CPU索引值序号。/n
【技术特征摘要】
1.一种基于哈希运算和索引值比对的双向报文对称RSS处理系统,包括客户端,服务器端,及设置于客户端和服务器端之间用于正向报文和反向报文传送的第一隧道设备和第二隧道设备,第一隧道设备和第二隧道设备共同构成正向报文和反向报文传送隧道的两端,其特征在于,所述第一隧道设备和第二隧道设备内均设置有RSS模块,哈希模块,间接寻址模块及若干CPU、环形缓冲区队列和普通队列,其中,每个隧道设备的CPU个数均与对应的环形缓冲区队列和普通队列相一致,CPU、环形缓冲区队列及普通队列三者通过索引值相匹配;RSS模块对客户端和服务器端传送的数据报文利用哈希模块进行哈希运算并通过间接寻址模块索引值匹配,通过普通队列分发至匹配到的索引值序号CPU上;CPU读取报文并通过索引值与自身序号匹配,匹配正确则进行相应报文处理,否则将报文送至CPU对应的环形缓冲区队列中进行缓存;第一隧道设备和第二隧道设备中的任一CPU均与对应的哈希模块和间接寻址模块连接,CPU利用哈希模块运算获取的哈希值与间接寻址模块索引值比对来确定报文分配的目标CPU索引值序号。
2.根据权利要求1所述的基于哈希运算和索引值比对的双向报文对称RSS处理系统,其特征在于,哈希值包括源IP地址、源端口号、目的端IP地址和目的端口号。
3.根据权利要求1所述的基于哈希运算和索引值比对的双向报文对称RSS处理系统,其特征在于,针对第一隧道设备和第二隧道设备,每个隧道设备至少包含一个CPU、一个环形缓冲区队列和一个普通队列,且两个隧道设备内的CPU个数相同。
4.根据权利要求1或3所述的基于哈希运算和索引值比对的双向报文对称RSS处理系统,其特征在于,第一隧道设备中CPU、环形缓冲区队列和普通队列分别用CPU1i、RING1i和QUE1i表示,其哈希模块和间接寻址模块与每个CPU1i相连接,其RSS模块与每个QUE1i相连接,并通过第一网口与客户端连接,通过第二网口与第二隧道设备对应连接,其中,i=1,2,…,n,n为第一隧道设备内实际CPU个数;第二隧道设备中CPU、环形缓冲区队列和普通队列分别用CPU2i、RING2i和QUE2i表示,第二隧道设备的哈希模块和间接寻址模块分别与与每个CPU1i相连接,第二隧道设备的RSS模块与每个QUE2i相连接,且通过第三网口与第一隧道设备连接,通过第四网口与服务器端连接。
5.一种基于哈希运算和索引值比对的双向报文对称RSS处理方法,其特征在于,基于权利要求1所述的系统实现,利用CPU的普通队列和环形缓冲区队列对接收到的双向报文进行二次分流以实现同一个连接的双向报文处理,具体包含如下内容:
针对客户端生成的第一原始报文,第一隧道设备利用其哈希模块对第一原始报文进行哈希运算,并将哈希运算的哈希值与其间接寻址模块索引值进行比对,通过比对结果将第一原始报文发送至对应索引值的第一隧道设备CPU的普通队列;CPU从普通队列中读取第一原始报文,并添加隧道信息后封装成第一隧道报文,发送至第二隧道设备;
第二隧道设备利用其哈希模块对第一隧道报文进行哈希运算获取哈希值,第二隧道设备的RSS模块利用哈希值和第二隧道设备的间接寻址模块索引值进行比对,通过比对结果将第一隧道报文发送至相应的第二隧道设备CPU的普通队列中;CPU从普通队列中读取第一隧道报文来获取第一隧道报文内的第一原始报文,并通过调用第二隧道设备的哈希模块对第一原始报文进行哈希运算,将哈希运算获取的哈希值与第...
【专利技术属性】
技术研发人员:李平,穆远彪,廖正赟,彭金辉,李鑫,
申请(专利权)人:郑州信大捷安信息技术股份有限公司,
类型:发明
国别省市:河南;41
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。