CN113079077B - 基于队列实现的dpdk架构下隧道报文对称rss处理方法及系统 - Google Patents

基于队列实现的dpdk架构下隧道报文对称rss处理方法及系统 Download PDF

Info

Publication number
CN113079077B
CN113079077B CN202110342041.9A CN202110342041A CN113079077B CN 113079077 B CN113079077 B CN 113079077B CN 202110342041 A CN202110342041 A CN 202110342041A CN 113079077 B CN113079077 B CN 113079077B
Authority
CN
China
Prior art keywords
tunnel
message
cpu
address
rss
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.)
Active
Application number
CN202110342041.9A
Other languages
English (en)
Other versions
CN113079077A (zh
Inventor
穆远彪
李昭熹
冀博
马骥
孙晓鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhengzhou Xinda Jiean Information Technology Co Ltd
Original Assignee
Zhengzhou Xinda Jiean Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Zhengzhou Xinda Jiean Information Technology Co Ltd filed Critical Zhengzhou Xinda Jiean Information Technology Co Ltd
Priority to CN202110342041.9A priority Critical patent/CN113079077B/zh
Publication of CN113079077A publication Critical patent/CN113079077A/zh
Application granted granted Critical
Publication of CN113079077B publication Critical patent/CN113079077B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明属于网络技术领域,特别涉及一种基于队列实现的DPDK架构下隧道报文对称RSS处理方法及系统,第一隧道设备和第二隧道设备内均设置有RSS模块,及若干CPU和通过索引值与若干CPU匹配连接的队列;RSS模块对客户端和服务器端传送的数据报文通过队列分发至对应CPU;CPU读取报文并通过索引值进行匹配,匹配正确则进行相应报文处理;所述RSS模块包含用于对报文执行哈希运算获取哈希值的哈希模块和用于通过哈希值和索引值将报文分配至对应队列的间接寻址模块,每个间接寻址模块内均预置有若干索引值。本发明利用队列实现DPDK架构下隧道报文的RSS对称处理,提升报文处理速度和效率,安全、可靠,简单、高效,提升DPDK架构下数据处理性能,具有较好的应用前景。

Description

基于队列实现的DPDK架构下隧道报文对称RSS处理方法及 系统
技术领域
本发明属于网络技术领域,特别涉及一种基于队列实现的DPDK架构下隧道报文对称RSS处理方法及系统。
背景技术
DPDK(Data Plane Development Kit,数据平面开发套件)是由6WIND、Intel等多家公司开发,主要基于Linux系统运行,用于快速数据包处理的函数库与驱动集合,可以极大提高数据处理性能和吞吐量,提高数据平面应用程序的工作效率。DPDK是一个开源的数据平面开发工具集。其通过网卡RSS、旁路OS、网卡无中断轮询、用户态驱动、独占CPU、大页内存等技术提供了用户态下高性能的数据包处理能力。在DPDK架构中为了提供更高报文处理性能,往往启用多个核心(CPU)、多线程模式,各自CPU独立处理。网卡收到报文后根据报文特征{源IP地址、源端口号、目的IP地址、目的端口号等}对接收报文进行RSS处理分发到不同的CPU处理。
RSS(Receive Side Scaling)是由微软提出的一种负载分流方法,通过计算网络数据报文中的网络层和传输层二/三/四元组的HASH哈希值,取HASH值的最低有效位(LSB)用于索引间接寻址表RETA(Redirection Table),间接寻址表RETA中的保存索引值用于分配数据报文到不同的CPU进行处理。现阶段RSS基本已有硬件实现,通过这项技术能够将网络流量分载到多个CPU上,降低操作系统单个CPU的占用率。索引间接寻址表RETA的一个例子是INTEL82576/82599RETA,它作为一个包含位宽4位的128项的索引映射表,通过取固定取HASH值低7位,将其映射到RETA表项,输出索引可在运行时动态调整更新来实现网络流量动态的负载均衡。
在网络应用中,如果同一个连接的双向报文在开启RSS之后被分发到同一个CPU上处理,这种RSS就称为对称RSS。对于需要为连接保存一些信息的网络应用来说,对称RSS对性能提升有很大帮助。如果同一个连接的双向报文被分发到不同的CPU,那么两个CPU之间共享这个连接的信息就会涉及到锁,而锁显然是会影响处理性能的。
隧道,即网络隧道技术,指的是利用一种网络协议(称为隧道协议)来传输另一种网络协议(称为原始协议),如VXLAN、VPN隧道等。隧道是指,通过用户设定的隧道两端隧道设备的源、目的IP地址和源、目的端口作为隧道报文的隧道包头信息,同时将需要通过隧道传输的报文(即原始报文)封装到隧道报文的隧道报文数据部分,从而构成整个隧道报文。隧道设备是指处理隧道报文的设备。支持对输入的原始报文可封装和输出隧道报文、对输入的隧道报文可解封装得到原始报文。常规隧道设备中,原始报文从普通网络端口进入隧道设备,经过预配置的隧道模块处理后会封装外层隧道头信息将报文转发到隧道另一端的隧道设备。另一端的隧道设备从其隧道网络端口接收到隧道报文后,进行解封装隧道报文,得到相应的原始报文。
在基于DPDK架构实现的隧道设备中,由于隧道报文的特殊性,导致面临对称RSS问题,以下简要地说明存在问题及原因:假设整个报文处理系统包括:客户端、第一隧道设备、第二隧道设备和服务器端。设第一隧道设备和第二隧道设备内CPU数量均为n个(n为隧道设备内实际CPU的个数,为大于等于1的自然数),第一隧道设备和第二隧道设备共同构成隧道的两端;第一隧道设备和第二隧道设备具备RSS和封装拆解隧道报文等功能;客户端所发出的正向原始报文经第一隧道设备和第二隧道设备所构成隧道传送给服务器端;服务器端所发出的反向原始报文经第一隧道设备和第二隧道设备所构成隧道传送给客户端。其中,正向报文/反向报文的含义为:转发设备中标记报文流量方向是正向或者反向。报文流量的方向是一个相对的概念,通过四元组{IPi,PORTi,IPj,PORTj}进行描述。一般认为转发设备中接收到连接首次发起方的报文时,认为此时该报文的四元组描述的连接方向的报文为正向报文,而接收到的与正向报文连接的四元组的源IP地址和端口号、目的IP地址和端口号相反的连接报文则认为是反向报文。例如客户端发起四元组为{IP1,PORT1,IP2,PORT2}的报文后,在转发设备收到后,认为该四元组{IP1,PORT1,IP2,PORT2}描述的连接为正向报文。而转发设备收到该连接的反向连接四元组{IP2,PORT2,IP1,PORT1}时,则认为是反向报文,其中IP代表IP地址,PORT代表端口号。哈希运算用HA{·}表示。
(1)第一隧道设备从客户端接收正向原始报文,通过RSS计算,得出哈希值HA1=HA{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号},RSS根据HA1将该正向原始报文分配到CPU i进行处理,其中,i=1,2,…,n;
(2)CPU i上的隧道模块处理正向原始报文得到正向隧道报文,正向隧道报文是包括了步骤(1)接收的正向原始报文进行封装后的新报文,其四元组从正向原始报文{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号}更改为正向隧道报文{第一隧道设备的IP地址,第一隧道设备的端口号,第二隧道设备的IP地址,第二隧道设备的端口号};然后,第一隧道设备将该正向隧道报文发送给第二隧道设备;
(3)第二隧道设备在收到正向隧道报文后,对其进行拆解,还原出正向原始报文后发送给服务器端;服务器端生成反向原始报文后发送回第二隧道设备,并按与上述步骤(1)和(2)类似的方法进行处理,生成反向隧道报文,反向隧道报文的四元组为{第二隧道设备的IP地址,第二隧道设备的端口号,第一隧道设备的IP地址,第一隧道设备的端口号};第二隧道设备将反向隧道报文发送给第一隧道设备;
(4)第一隧道设备在收到正向隧道报文后,通过RSS计算,得出哈希值HA2=HA{第二隧道设备的IP地址,第二隧道设备的端口号,第一隧道设备的IP地址,第一隧道设备的端口号},此时,显然,HA2不等于步骤(1)中的HA1,那么在RSS根据HA2将该正向原始报文分配给CPU时,就不再是CPU i了,而是另一个CPU j,其中,i,j=1,2,…,n;j≠i;
到这里,就可以看出,正向报文在CPU i处理,而反向报文在CPU j处理,j≠i,不满足对称RSS的要求。之所以出现对称RSS失效问题是因为正向报文是基于原始报文四元组{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号}的哈希值来计算由哪个CPU进行处理,而反向报文是基于隧道报文四元组{第二隧道设备的IP地址,第二隧道设备的端口号,第一隧道设备的IP地址,第一隧道设备的端口号}的哈希值来计算由哪个CPU进行处理,两者的哈希值不同,所以,不能分配到同一个CPU上进行处理。
如何根据隧道报文的处理过程和对称RSS的特点,实现DPDK架构下的隧道报文对称RSS处理,从而提升报文处理速度和效率,是目前急需解决的问题。
发明内容
为此,本发明提供一种基于队列实现的DPDK架构下隧道报文对称RSS处理方法及系统,实现报文的RSS对称处理,并提升DPDK架构下报文处理速度和效率。
按照本发明所提供的设计方案,提供一种基于队列实现的DPDK架构下隧道报文对称RSS处理系统,包括客户端,服务器端,及设置于客户端和服务器端之间用于正向报文和反向报文传送的第一隧道设备和第二隧道设备,第一隧道设备和第二隧道设备共同构成正向报文和反向报文传送隧道的两端,所述第一隧道设备和第二隧道设备内均设置有RSS模块,及若干CPU和通过索引值与若干CPU匹配连接的队列;RSS模块对客户端和服务器端传送的数据报文通过队列分发至对应CPU;CPU读取报文并通过索引值进行匹配,匹配正确则进行相应报文处理;所述RSS模块包含用于对报文执行哈希运算获取哈希值的哈希模块和用于通过哈希值和索引值将报文分配至对应队列的间接寻址模块,每个间接寻址模块内均预置有若干索引值。
作为本发明基于队列实现的DPDK架构下隧道报文对称RSS处理系统,进一步地,哈希值包括源IP地址、源端口号、目的端IP地址和目的端口号。
作为本发明基于队列实现的DPDK架构下隧道报文对称RSS处理系统,进一步地,针对第一隧道设备和第二隧道设备,每个隧道设备至少包含一个CPU和一个队列,且两个隧道设备内的CPU个数相同。
作为本发明基于队列实现的DPDK架构下隧道报文对称RSS处理系统,进一步地,第一隧道设备中CPU和队列分别用CPU1i和QUE1i表示,第一隧道设备的RSS模块与每个QUE1i相连接,并通过第一网口与客户端连接,通过第二网口与第二隧道设备对应连接,其中,i=1,2,…,n,n为第一隧道设备内CPU个数;第二隧道设备中CPU和队列分别用CPU2i和QUE2i表示,第二隧道设备的RSS模块与每个QUE2i相连接,且通过第三网口与第一隧道设备连接,通过第四网口与服务器端连接。
进一步地,基于上述的系统,本发明还提供一种基于队列实现的DPDK架构下隧道报文对称RSS处理方法,利用队列对CPU进行报文匹配处理,具体包含如下内容:
准备阶段:第一隧道设备和第二隧道设备中的RSS模块预先配置有与CPU个数对应的四元组,该四元组包含源IP地址、CPU对应索引值序号、目的IP地址和目的端口号;通过RSS模块调用哈希模块对四元组信息进行哈希运算获取哈希值,RSS模块将哈希值进行保存并与对应CPU进行绑定;
报文处理阶段:
针对客户端生成的第一原始报文,该第一原始报文包含四元组{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号},第一隧道设备利用其RSS模块的哈希模块对第一原始报文中四元组进行哈希运算获取哈希值,该哈希值包含客户端的IP地址、客户端的端口号、服务器端的IP地址及服务器端的端口号,将哈希值与该RSS模块中间接寻址模块内预设的索引值进行比对,通过比对结果将第一原始报文发送至对应索引值的第一隧道设备CPU的队列;CPU从队列中读取第一原始报文,将其索引值序号与第一原始报文组合并添加隧道信息后封装成第一隧道报文,发送至第二隧道设备,所述第一隧道报文包含:源IP地址、第一隧道设备CPU序号、目的IP地址、目的端口号及隧道报文数据;
第二隧道设备利用其RSS模块对第一隧道报文进行拆解并确定第一隧道报文发送的第二隧道设备CPU队列并进行报文发送;第二隧道设备CPU从队列中读取第一隧道报文并获取第一原始报文,将第一原始报文发送至服务器端;
服务器端对第一原始报文进行响应,生成第二原始报文并发送至第二隧道设备,第二原始报文包含四元组{服务器端的IP地址,服务器端的端口号,客户端的IP地址,客户端的端口号};第二隧道设备利用其RSS模块对第二原始报文四元组进行拆解,形成新四元组{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号},利用第二隧道设备RSS模块的哈希模块对新四元组进行哈希运算获取包含客户端的IP地址、客户端的端口号、服务器端的IP地址及服务器端端口号的哈希值,并通过将哈希值与第二隧道设备中间接寻址模块内预先设置的索引值进行比对来确定第二原始报文应发送的第二隧道设备CPU队列并进行报文发送;第二隧道设备CPU从队列中读取第二原始报文,将其序号与第二原始报文组合并添加隧道相关信息封装后生成第二隧道报文发送至第一隧道设备,第二隧道报文包含源IP地址、第二隧道设备CPU序号、目的IP地址、目的端口号及隧道报文数据;
第一隧道设备调用其RSS模块对第二隧道报文进行拆解获取包含源IP地址、CPU序号、目的IP地址及目的端口号的新四元组,利用第一隧道设备RSS模块的哈希模块对新四元组进行哈希运算,得到包含源IP地址、CPU序号、目的IP地址及目的端口号的哈希值,利用该哈希值与第二隧道设备RSS模块的间接寻址模块内预先设置的索引值进行比对,若比对失败,则隧道报文通信失败,若通过比对获取到匹配的索引值,则将第二隧道报文发送至该索引值对应的第一隧道设备CPU队列;第一隧道设备CPU从队列中读取第二隧道报文并进行拆分获取第二原始报文,将第二原始报文发送至客户端。
进一步地,基于上述的系统,本发明还提供一种基于队列实现的DPDK架构下隧道报文对称RSS处理方法,利用队列对CPU进行报文匹配处理,具体包含如下内容:
针对客户端生成的第一原始报文,该第一原始报文包含四元组{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号},第一隧道设备利用其RSS模块的哈希模块对第一原始报文中四元组进行哈希运算获取包含客户端IP地址、客户端端口号、服务器端IP地址及服务器端端口号的哈希值,将哈希值与该RSS模块中间接寻址模块内预设的索引值进行比对来确定第一原始报文发送的第一隧道设备CPU队列并进行报文发送;CPU从队列中读取第一原始报文,将其序号与第一原始报文组合并添加隧道信息后封装成第一隧道报文,发送至第二隧道设备,所述第一隧道报文包含:源IP地址、第一隧道设备CPU序号、目的IP地址、目的端口号及隧道报文数据;
第二隧道设备利用其RSS模块对第一隧道报文进行拆解来确定第一隧道报文发送的第二隧道设备CPU队列并进行报文发送;第二隧道设备CPU从队列中读取第一隧道报文并获取第一原始报文,将第一原始报文发送至服务器端;
服务器端对第一原始报文进行响应,生成第二原始报文并发送至第二隧道设备,第二原始报文包含四元组{服务器端的IP地址,服务器端的端口号,客户端的IP地址,客户端的端口号};第二隧道设备利用其RSS模块对第二原始报文四元组进行拆解,形成新四元组{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号},利用第二隧道设备RSS模块的哈希模块对新四元组进行哈希运算获取包含客户端的IP地址、客户端的端口号、服务器端的IP地址及服务器端端口号的哈希值,并通过将哈希值与第二隧道设备中间接寻址模块内预先设置的索引值进行比对来确定第二原始报文应发送的第二隧道设备CPU队列并进行报文发送;第二隧道设备CPU从队列中读取第二原始报文,将其序号与第二原始报文组合并添加隧道相关信息封装后生成第二隧道报文发送至第一隧道设备,第二隧道报文包含源IP地址、第二隧道设备CPU序号、目的IP地址、目的端口号及隧道报文数据;
第一隧道设备调用其RSS模块对第二隧道报文进行拆解获取得到第二隧道设备CPU序号,根据该序号将第二隧道报文发送至该序号对应的第一隧道设备CPU队列;第一隧道设备CPU从队列中读取第二隧道报文并进行拆分获取第二原始报文,将第二原始报文发送至客户端。
本发明的有益效果:
本发明利用第一隧道设备和第二隧道设备中CPU的队列,将处理核心CPU的ID标识号携带在隧道报文的包头中传递到接收的隧道设备中,接收隧道报文的隧道设备根据该ID的指示将报文分配到对应的核心上进行隧道报文的处理,之后,在服务器端返回原始报文时,在选择相应处理核心前,对原始报文的四元组进行重新拆分和组合,以满足将该报文送到相应ID的CPU上进行处理的条件,以此解决处理核心CPU不一致问题,实现隧道报文的对称RSS处理;在第一隧道设备和第二隧道设备都实现报文的对称RSS处理,提升报文处理速度和效率,特别是对于同一个连接的双向报文,将不会再被分发到不同的CPU,从而避免了在两个不同的CPU之间处理和共享这个连接的信息时可能遇到的时间和性能方面的影响。并进一步,通过在第一和第一隧道设备上预先配置与各隧道设备CPU个数相对应的若干特定报文四元组信息,其中,特定报文四元组的形式为{IP1,PORT1,IP2,PORT2},设CPU为n个,将CPU从1到n进行编号,然后,上述n个特定报文四元组中的PORT1分别设定为从1到n值。然后对这些特定报文四元组信息进行哈希运算,并将每个哈希值与相应编号的CPU进行对应关系绑定。既安全可靠,又简单高效,提升DPDK架构下数据包处理性能,具有较好的应用前景。
附图说明:
图1为实施例中基于队列实现的DPDK架构下隧道报文对称RSS处理系统原理示意。
具体实施方式:
为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发明作进一步详细的说明。
本发明实施例,提供一种基于队列实现的DPDK架构下隧道报文对称RSS处理系统,包括客户端,服务器端,及设置于客户端和服务器端之间用于正向报文和反向报文传送的第一隧道设备和第二隧道设备,第一隧道设备和第二隧道设备共同构成正向报文和反向报文传送隧道的两端,所述第一隧道设备和第二隧道设备内均设置有RSS模块,及若干CPU和通过索引值与若干CPU匹配连接的队列;RSS模块对客户端和服务器端传送的数据报文通过队列分发至对应CPU;CPU读取报文并通过索引值进行匹配,匹配正确则进行相应报文处理;所述RSS模块包含用于对报文执行哈希运算获取哈希值的哈希模块和用于通过哈希值和索引值将报文分配至对应队列的间接寻址模块,每个间接寻址模块内均预置有若干索引值。
参见图1所示,系统内收发的数据包称统为报文,第一隧道设备包括至少一个CPU和至少一个队列,分别用CPU1i和QUE1i表示,所述CPU1i和QUE1i相连接,所述CPU1i从QUE1i中读取数据;所述第一隧道设备还包括第一RSS模块、第一网口和第二网口;所述第一RSS模块包括第一哈希模块和第一间接寻址模块;所述第一网口和第二网口分别与所述第一RSS模块相连接;所述第一RSS模块与每个QUE1i相连接;其中i=1,2,…,n;n为第一隧道设备内实际CPU的个数;
第二隧道设备包括至少一个CPU和至少一个队列,分别用CPU2i和QUE2i表示,所述CPU2i和QUE2i相连接;所述CPU2i从QUE2i中读取数据;所述第二隧道设备还包括第二RSS模块、第三网口和第四网口;所述第二RSS模块包括第二哈希模块和第二间接寻址模块;所述第三网口和第四网口均与所述第二RSS模块相连接;所述第二RSS模块与每个QUE2i相连接;其中i=1,2,…,n;第二隧道设备内实际CPU的个数与第一隧道设备内实际CPU的个数相同均为n个;
所述第一哈希模块和所述第二哈希模块用于执行哈希运算,所述哈希运算用HA{·}表示;
所述客户端用于与所述第一隧道设备的第一网口进行通信,以收发第一原始报文;所述服务器端用于与所述第二隧道设备的第四网口进行通信,以收发第二原始报文;所述第一原始报文和第二原始报文均包括原始源IP地址、原始源端口号、原始目的IP地址、原始目的端口号和原始报文数据;所述第一原始报文具体包括客户端的IP地址、客户端的端口号、服务器端的IP地址、服务器端的端口号和第一原始报文数据;所述第二原始报文具体包括服务器端的IP地址、服务器端的端口号、客户端的IP地址、客户端的端口号和第二原始报文数据;
所述第一隧道设备和所述第二隧道设备共同构成隧道的两端;所述第一隧道设备的第二网口与所述第二隧道设备的第三网口进行通信,以收发隧道报文;所述第一隧道设备内预先配置保存有用于组成第一隧道报文的所述第二隧道设备的第三网口的IP地址和端口号;所述第二隧道设备内预先配置保存有用于组成第二隧道报文的所述第一隧道设备的第二网口的IP地址和端口号;第一隧道报文由所述第一隧道设备的第二网口发送给所述第二隧道设备的第三网口;第二隧道报文由所述第二隧道设备的第三网口发送给所述第一隧道设备的第二网口;所述第一隧道报文和第二隧道报文均包括隧道源IP地址、隧道源端口号、隧道目的IP地址、隧道目的端口号和隧道报文数据;
所述第一间接寻址模块内预先设置有预先或以带外方式事先确定好的若干第一索引值,所述第一RSS模块将所述第一哈希模块对相应报文进行哈希运算后所得的哈希值与各所述第一索引值进行比对,然后根据比对结果将报文分配到所述第一隧道设备内的对应的CPU所对应的队列QUE,以供相应CPU进行处理;
所述第二间接寻址模块内预先设置有预先或以带外方式事先确定好的若干第二索引值,所述第二RSS模块将所述第二哈希模块对相应报文进行哈希运算后所得的哈希值与各所述第二索引值进行比对,然后根据比对结果将报文分配到所述第二隧道设备内的对应的CPU所对应的队列QUE,以供相应CPU进行处理;
所述第一间接寻址模块内的第一索引值与所述第二间接寻址模块内的第二索引值配置为相同的值。
进一步地,基于上述的系统,本发明实施例还提供一种基于队列实现的DPDK架构下隧道报文对称RSS处理方法,利用队列对CPU进行报文匹配处理,具体包含如下内容:
准备阶段:
在所述第一隧道设备的第一RSS模块内预先分别配置n个的四元组{第二网口的IP地址,CPU1i所对应的序号i,第三网口的IP地址,第三网口的端口号}信息,其中i=1,2,…,n;然后,第一RSS模块调用第一哈希模块分别对上述n个预先配置的四元组信息进行哈希运算,得到哈希值HAYX1i=HA{第二网口的IP地址,CPU1i所对应的序号i,第三网口的IP地址,第三网口的端口号};然后,第一RSS模块将每个HAYX1i值进行保存,与CPU1i进行对应绑定;
在所述第二隧道设备的第二RSS模块内预先分别配置n个的四元组{第三网口的IP地址,CPU2i所对应的序号i,第二网口的IP地址,第二网口的端口号}信息,其中i=1,2,…,n;然后,第二RSS模块调用第二哈希模块分别对上述n个预先配置的四元组信息进行哈希运算,得到哈希值HAYX2i=HA{第三网口的IP地址,CPU2i所对应的序号i,第二网口的IP地址,第二网口的端口号};然后,第二RSS模块将每个HAYX2i值进行保存,与CPU2i进行对应绑定;
报文处理阶段
步骤1,客户端生成第一原始报文,然后发送到所述第一隧道设备的第一网口;所述第一网口接收到客户端发来的第一原始报文后,将所述第一原始报文发送给第一RSS模块,所述第一RSS模块调用第一哈希模块对所述第一原始报文中的四元组{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号}进行哈希运算得到哈希值HA{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号},然后,第一RSS模块将所述哈希值HA{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号}与所述第一间接寻址模块内预先设置的若干第一索引值进行比对,然后根据比对结果将所述第一原始报文发送到相应的CPU1i所对应的QUE1i,其中i=1,2,…,n;n为大于1的自然数;
步骤2,CPU1i从QUE1i中读取第一原始报文后,将所述第一原始报文封装成隧道报文数据,并加上隧道相关信息后得到第一隧道报文,所述第一隧道报文包括第二网口的IP地址、CPU1i所对应的序号i、第三网口的IP地址、第三网口的端口号和隧道报文数据;所述CPU1i将所述第一隧道报文经所述第一RSS模块和所述第二网口发送给所述第二隧道设备的第三网口;
步骤3,所述第二隧道设备的第三网口将所述第一隧道报文传送给所述第二RSS模块;所述第二RSS模块将第一隧道报文的四元组{第二网口的IP地址,CPU1i所对应的序号i,第三网口的IP地址,第三网口的端口号}进行拆解,组合成新的四元组{第三网口的IP地址,i,第二网口的IP地址,第二网口的端口号};然后再计算该新四元组的哈希值HA{第三网口的IP地址,i,第二网口的IP地址,第二网口的端口号},并将该值与前述的每个HAYX2i进行比对,其中i=1,2,…,n;如果与每个HAYX2i都不相同,则本次隧道报文通信失败;如果与某个值HAYX2i相同,则所述第二RSS模块将该第一隧道报文发送到与CPU2i对应的QUE2i;随后由CPU2i从QUE2i中读取所述第一隧道报文;然后,CPU2i对所述第一隧道报文进行拆分,得到封装在所述隧道报文数据内的所述第一原始报文;然后,所述第四网口将所述第一原始报文发送给所述服务器端;
步骤4,所述服务器端生成第二原始报文,然后发送到所述第二隧道设备的第四网口;所述第四网口将所收到的所述服务器端发送回来的第二原始报文发送给所述第二RSS模块,将第二原始报文的四元组{服务器端的IP地址,服务器端的端口号,客户端的IP地址,客户端的端口号}进行拆解,组合成新的四元组{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号};然后再计算该新四元组的哈希值HA{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号};然后,第二RSS模块所述哈希值HA{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号}与所述第二间接寻址模块内预先设置的若干第二索引值进行比对,然后根据比对结果将所述第二原始报文发送到相应的CPU2i所对应的QUE2i,其中i=1,2,…,n;n为大于1的自然数;
步骤5,CPU2i从QUE2i中读取第二原始报文后,将所述第二原始报文封装成隧道报文数据,并加上隧道相关信息后得到第二隧道报文,所述第二隧道报文包括第三网口的IP地址、CPU2i所对应的序号i、第二网口的IP地址、第二网口的端口号和隧道报文数据;所述CPU2i将所述第二隧道报文经所述第二RSS模块和所述第三网口发送给所述第一隧道设备的第二网口;
步骤6,所述第一隧道设备的第二网口将所述第二隧道报文传送给所述第一RSS模块;所述第一RSS模块将第二隧道报文的四元组{第三网口的IP地址,CPU2i所对应的序号i,第二网口的IP地址,第二网口的端口号}进行拆解,组合成新的四元组{第二网口的IP地址,i,第三网口的IP地址,第三网口的端口号};然后再计算该新四元组的哈希值HA{第二网口的IP地址,i,第三网口的IP地址,第三网口的端口号},并将该值与前述的每个HAYX1i进行比对,其中i=1,2,…,n;如果与每个HAYX1i都不相同,则本次隧道报文通信失败;如果与某个值HAYX1i相同,则所述第一RSS模块将该第二隧道报文发送到与CPU1i对应的QUE1i;随后由CPU1i从QUE1i中读取所述第二隧道报文;然后,CPU1i对所述第二隧道报文进行拆分,得到封装在所述隧道报文数据内的所述第二原始报文;然后,所述第一网口将所述第二原始报文发送给所述客户端。
通过在第一和第一隧道设备上预先配置与各隧道设备CPU个数相对应的若干特定报文四元组信息,其中,特定报文四元组的形式为{IP1,PORT1,IP2,PORT2},设CPU为n个,将CPU从1到n进行编号,然后,上述n个特定报文四元组中的PORT1分别设定为从1到n值。然后对这些特定报文四元组信息进行哈希运算,并将每个哈希值与相应编号的CPU进行对应关系绑定。
当第一隧道设备收到第一原始报文后,根据对第一原始报文进行处理的CPU的编号(编号假定为i),设定第一隧道报文的隧道源端口号为该CPU的编号i。第一隧道设备将设置好的第一隧道报文发送到第二隧道设备。第二隧道设备对收到的第一隧道报文进行拆解,将第一隧道报文四元组按发明内容步骤3进行处理,然后,根据上述预先配置的特定报文四元组哈希值与相应编号的CPU的对应关系,实现将第一隧道报文分配给与第一隧道设备上编号相同、同为i的CPU进行处理。之后,第二隧道设备将拆解出来的第一原始报文发送给服务器端。服务器端收到第一原始报文后,生成第二原始报文,并发回给第二隧道设备。第二隧道设备按发明内容步骤3,依然可以通过计算与比对将第二原始报文发送给编号为i的CPU进行处理,然后,第二隧道设备生成第二隧道报文后发送给第一隧道设备。第一隧道设备按发明内容步骤6,也依然可以通过计算与比对将第二隧道报文发送回编号为i的CPU进行处理。在第一隧道设备和第二隧道设备都实现了报文的对称RSS处理,提升报文处理速度和效率,特别是对于同一个连接的双向报文,将不会再被分发到不同的CPU,从而避免了在两个不同的CPU之间处理和共享这个连接的信息时可能遇到的时间和性能方面的影响。
进一步地,基于上述的系统,本发明实施例还提供另一种基于队列实现的DPDK架构下隧道报文对称RSS处理方法,利用队列对CPU进行报文匹配处理,具体包含如下内容:
步骤1,客户端生成第一原始报文,然后发送到所述第一隧道设备的第一网口;所述第一网口接收到客户端发来的第一原始报文后,将所述第一原始报文发送给第一RSS模块,所述第一RSS模块调用第一哈希模块对所述第一原始报文中的四元组{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号}进行哈希运算得到哈希值HA{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号},然后,所述第一RSS模块将所述哈希值HA{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号}与所述第一间接寻址模块内预先设置的若干第一索引值进行比对,然后根据比对结果将所述第一原始报文发送到相应的CPU1i所对应的QUE1i,其中i=1,2,…,n;
步骤2,CPU1i从QUE1i中读取所述第一原始报文后,将所述第一原始报文封装成第一隧道报文数据,并加上隧道相关信息后封装得到第一隧道报文,所述第一隧道报文包括第二网口的IP地址、CPU1i所对应的序号i、第三网口的IP地址、第三网口的端口号和所述第一隧道报文数据;所述CPU1i将所述第一隧道报文经所述第一RSS模块和所述第二网口发送给所述第二隧道设备的第三网口;
步骤3,所述第二隧道设备的第三网口将所述第一隧道报文传送给所述第二RSS模块;所述第二RSS模块将所述第一隧道报文的四元组{第二网口的IP地址、CPU1i所对应的序号i、第三网口的IP地址、第三网口的端口号}进行拆解,得到所述CPU1i所对应的序号i,然后所述第二RSS模块根据序号i,将所述第一隧道报文发送到相应的CPU2i所对应的QUE2i,其中i=1,2,…,n;
步骤4,CPU2i对所述第一隧道报文进行拆分,得到封装在所述第一隧道报文数据内的所述第一原始报文;然后,通过所述第四网口将所述第一原始报文发送给所述服务器端;
步骤5,所述服务器端在收到所述第一原始报文后,对其进行响应,生成第二原始报文,然后将所述第二原始报文发送到所述第二隧道设备的第四网口;所述第四网口将所收到的所述服务器端发送回来的第二原始报文发送给所述第二RSS模块,所述第二RSS模块将第二原始报文的四元组{服务器端的IP地址,服务器端的端口号,客户端的IP地址,客户端的端口号}进行拆解,组合成新的四元组{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号};然后再计算该新四元组的哈希值HA{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号};然后,所述第二RSS模块将所述哈希值HA{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号}与所述第二间接寻址模块内预先设置的若干第二索引值进行比对,然后根据比对结果将所述第二原始报文发送到相应的CPU2i所对应的QUE2i,其中i=1,2,…,n;
步骤6,CPU2i从QUE2i中读取所述第二原始报文后,将所述第二原始报文封装成第二隧道报文数据,并加上隧道相关信息后封装得到第二隧道报文,所述第二隧道报文包括第三网口的IP地址、CPU2i所对应的序号i、第二网口的IP地址、第二网口的端口号和所述第二隧道报文数据;所述CPU2i将所述第二隧道报文经所述第二RSS模块和所述第三网口发送给所述第一隧道设备的第二网口;
步骤7,所述第一隧道设备的第二网口将所述第二隧道报文传送给所述第一RSS模块;所述第一RSS模块将所述第二隧道报文的四元组{第三网口的IP地址、CPU2i所对应的序号i、第二网口的IP地址、第二网口的端口号}进行拆解,得到所述CPU2i所对应的序号i,然后所述第一RSS模块根据序号i,将所述第二隧道报文发送到相应的CPU1i所对应的QUE1i,其中i=1,2,…,n;
步骤8,CPU1i从QUE1i中读取所述第二隧道报文后,对所述第二隧道报文进行拆分,得到封装在所述第二隧道报文数据内的所述第二原始报文;然后,通过所述第一网口将所述第二原始报文发送给所述客户端。
将处理核心CPU的ID标识号携带在隧道报文的包头中传递到接收的隧道设备中,接收隧道报文的隧道设备根据该ID的指示将报文分配到对应的核心上进行隧道报文的处理,之后,在服务器端返回原始报文时,在选择相应处理核心前,对原始报文的四元组进行重新拆分和组合,以满足将该报文送到相应ID的CPU上进行处理的条件,以此解决处理核心CPU不一致问题,从而实现隧道报文的对称RSS处理;在第一隧道设备和第二隧道设备都实现了报文的对称RSS处理,提升报文处理速度和效率,特别是对于同一个连接的双向报文,将不会再被分发到不同的CPU,从而避免了在两个不同的CPU之间处理和共享这个连接的信息时可能遇到的时间和性能方面的影响。
所述第一原始报文、所述第一隧道报文均为正向报文;所述第二原始报文、所述第二隧道报文均为反向报文。
所述队列是指一种先进先出FIFO(First Input First Output)的队列类型结构,其特点是先存入的数据先被提取。
HASH,又称作散列、杂凑或哈希,是把任意长度的输入通过散列算法变换成固定长度的输出,该输出就是散列值。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和数值并不限制本发明的范围。
在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制,因此,示例性实施例的其他示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种基于队列实现的DPDK架构下隧道报文对称RSS处理方法,其特征在于,利用队列对CPU进行报文匹配处理,具体包含如下内容:
准备阶段:第一隧道设备和第二隧道设备中的RSS模块预先配置有与CPU个数对应的四元组,该四元组包含源IP地址、CPU对应索引值序号、目的IP地址和目的端口号;通过RSS模块调用哈希模块对四元组信息进行哈希运算获取哈希值,RSS模块将哈希值进行保存并与对应CPU进行绑定;
报文处理阶段:
针对客户端生成的第一原始报文,该第一原始报文包含四元组{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号},第一隧道设备利用其RSS模块的哈希模块对第一原始报文中四元组进行哈希运算获取哈希值,该哈希值包含客户端的IP地址、客户端的端口号、服务器端的IP地址及服务器端的端口号,将哈希值与该RSS模块中间接寻址模块内预设的索引值进行比对,通过比对结果将第一原始报文发送至对应索引值的第一隧道设备CPU的队列;CPU从队列中读取第一原始报文,将其索引值序号与第一原始报文组合并添加隧道信息后封装成第一隧道报文,发送至第二隧道设备,所述第一隧道报文包含:源IP地址、第一隧道设备CPU序号、目的IP地址、目的端口号及隧道报文数据;
第二隧道设备调用其RSS模块对第一隧道报文进行拆解获取包含源IP地址、CPU序号、目的IP地址及目的端口号的新四元组,利用第二隧道设备RSS模块的哈希模块对新四元组进行哈希运算,得到包含源IP地址、CPU序号、目的IP地址及目的端口号的哈希值,利用该哈希值与第二隧道设备RSS模块的间接寻址模块内预先设置的索引值进行比对,若比对失败,则隧道报文通信失败,若通过比对获取到匹配的索引值,则将第一隧道报文发送至该索引值对应的第二隧道设备CPU队列;第二隧道设备CPU从队列中读取第一隧道报文并进行拆分获取第一原始报文,将第一原始报文发送至服务器端;
服务器端对第一原始报文进行响应,生成第二原始报文并发送至第二隧道设备,第二原始报文包含四元组{服务器端的IP地址,服务器端的端口号,客户端的IP地址,客户端的端口号};第二隧道设备利用其RSS模块对第二原始报文四元组进行拆解,形成新四元组{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号},利用第二隧道设备RSS模块的哈希模块对新四元组进行哈希运算获取包含客户端的IP地址、客户端的端口号、服务器端的IP地址及服务器端端口号的哈希值,并通过将哈希值与第二隧道设备中间接寻址模块内预先设置的索引值进行比对来确定第二原始报文应发送的第二隧道设备CPU队列并进行报文发送;第二隧道设备CPU从队列中读取第二原始报文,将其序号与第二原始报文组合并添加隧道相关信息封装后生成第二隧道报文发送至第一隧道设备,第二隧道报文包含源IP地址、第二隧道设备CPU序号、目的IP地址、目的端口号及隧道报文数据;
第一隧道设备调用其RSS模块对第二隧道报文进行拆解获取包含源IP地址、CPU序号、目的IP地址及目的端口号的新四元组,利用第一隧道设备RSS模块的哈希模块对新四元组进行哈希运算,得到包含源IP地址、CPU序号、目的IP地址及目的端口号的哈希值,利用该哈希值与第一隧道设备RSS模块的间接寻址模块内预先设置的索引值进行比对,若比对失败,则隧道报文通信失败,若通过比对获取到匹配的索引值,则将第二隧道报文发送至该索引值对应的第一隧道设备CPU队列;第一隧道设备CPU从队列中读取第二隧道报文并进行拆分获取第二原始报文,将第二原始报文发送至客户端。
2.根据权利要求1所述的基于队列实现的DPDK架构下隧道报文对称RSS处理方法,其特征在于,第一隧道设备CPU和队列分别用CPU1i和QUE1i表示,第二隧道设备CPU和队列分别用CPU2i和QUE2i表示,i=1,2,…,n,n为大于1的自然数。
3.根据权利要求1所述的基于队列实现的DPDK架构下隧道报文对称RSS处理方法,其特征在于,第一隧道设备和第二隧道设备两者中RSS模块的间接寻址模块预先设置有以带外方式事先约定的若干索引值。
4.一种基于队列实现的DPDK架构下隧道报文对称RSS处理方法,其特征在于,利用队列对CPU进行报文匹配处理,具体包含如下内容:
针对客户端生成的第一原始报文,该第一原始报文包含四元组{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号},第一隧道设备利用其RSS模块的哈希模块对第一原始报文中四元组进行哈希运算获取包含客户端IP地址、客户端端口号、服务器端IP地址及服务器端端口号的哈希值,将哈希值与该RSS模块中间接寻址模块内预设的索引值进行比对来确定第一原始报文发送的第一隧道设备CPU队列并进行报文发送;CPU从队列中读取第一原始报文,将其序号与第一原始报文组合并添加隧道信息后封装成第一隧道报文,发送至第二隧道设备,所述第一隧道报文包含:源IP地址、第一隧道设备CPU序号、目的IP地址、目的端口号及隧道报文数据;
第二隧道设备调用其RSS模块对第一隧道报文进行拆解获取得到第一隧道设备CPU序号,根据该序号将第一隧道报文发送至该序号对应的第二隧道设备CPU队列;第二隧道设备CPU从队列中读取第一隧道报文并获取第一原始报文,将第一原始报文发送至服务器端;
服务器端对第一原始报文进行响应,生成第二原始报文并发送至第二隧道设备,第二原始报文包含四元组{服务器端的IP地址,服务器端的端口号,客户端的IP地址,客户端的端口号};第二隧道设备利用其RSS模块对第二原始报文四元组进行拆解,形成新四元组{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号},利用第二隧道设备RSS模块的哈希模块对新四元组进行哈希运算获取包含客户端的IP地址、客户端的端口号、服务器端的IP地址及服务器端端口号的哈希值,并通过将哈希值与第二隧道设备中间接寻址模块内预先设置的索引值进行比对来确定第二原始报文应发送的第二隧道设备CPU队列并进行报文发送;第二隧道设备CPU从队列中读取第二原始报文,将其序号与第二原始报文组合并添加隧道相关信息封装后生成第二隧道报文发送至第一隧道设备,第二隧道报文包含源IP地址、第二隧道设备CPU序号、目的IP地址、目的端口号及隧道报文数据;
第一隧道设备调用其RSS模块对第二隧道报文进行拆解获取得到第二隧道设备CPU序号,根据该序号将第二隧道报文发送至该序号对应的第一隧道设备CPU队列;第一隧道设备CPU从队列中读取第二隧道报文并进行拆分获取第二原始报文,将第二原始报文发送至客户端。
5.根据权利要求4所述的基于队列实现的DPDK架构下隧道报文对称RSS处理方法,其特征在于,第一隧道设备CPU和队列分别用CPU1i和QUE1i表示,第二隧道设备CPU和队列分别用CPU2i和QUE2i表示,i=1,2,…,n,n为两个隧道设备内CPU个数。
6.根据权利要求4或5所述的基于队列实现的DPDK架构下隧道报文对称RSS处理方法,其特征在于,第一隧道设备和第二隧道设备两者中RSS模块的间接寻址模块预先设置有事先约定的若干索引值。
7.一种用于实施根据权利要求1至6之一所述的基于队列实现的DPDK架构下隧道报文对称RSS处理方法的基于队列实现的DPDK架构下隧道报文对称RSS处理系统,包括客户端,服务器端,及设置于客户端和服务器端之间用于正向报文和反向报文传送的第一隧道设备和第二隧道设备,第一隧道设备和第二隧道设备共同构成正向报文和反向报文传送隧道的两端,其特征在于,所述第一隧道设备和第二隧道设备内均设置有RSS模块,及若干CPU和通过索引值与若干CPU匹配连接的队列;RSS模块对客户端和服务器端传送的数据报文通过队列分发至对应CPU;CPU读取报文并通过索引值进行匹配,匹配正确则进行相应报文处理;所述RSS模块包含用于对报文执行哈希运算获取哈希值的哈希模块和用于通过哈希值和索引值将报文分配至对应队列的间接寻址模块,每个间接寻址模块内均预置有若干索引值。
8.根据权利要求7所述的基于队列实现的DPDK架构下隧道报文对称RSS处理系统,其特征在于,哈希值包括源IP地址、源端口号、目的端IP地址和目的端口号。
9.根据权利要求7所述的基于队列实现的DPDK架构下隧道报文对称RSS处理系统,其特征在于,针对第一隧道设备和第二隧道设备,每个隧道设备至少包含一个CPU和一个队列,且两个隧道设备内的CPU个数相同。
10.根据权利要求7或9所述的基于队列实现的DPDK架构下隧道报文对称RSS处理系统,其特征在于,第一隧道设备中CPU和队列分别用CPU1i和QUE1i表示,第一隧道设备的RSS模块与每个QUE1i相连接,并通过第一网口与客户端连接,通过第二网口与第二隧道设备对应连接,其中,i=1,2,…,n,n为第一隧道设备内CPU个数;第二隧道设备中CPU和队列分别用CPU2i和QUE2i表示,第二隧道设备的RSS模块与每个QUE2i相连接,且通过第三网口与第一隧道设备连接,通过第四网口与服务器端连接。
CN202110342041.9A 2021-03-30 2021-03-30 基于队列实现的dpdk架构下隧道报文对称rss处理方法及系统 Active CN113079077B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110342041.9A CN113079077B (zh) 2021-03-30 2021-03-30 基于队列实现的dpdk架构下隧道报文对称rss处理方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110342041.9A CN113079077B (zh) 2021-03-30 2021-03-30 基于队列实现的dpdk架构下隧道报文对称rss处理方法及系统

Publications (2)

Publication Number Publication Date
CN113079077A CN113079077A (zh) 2021-07-06
CN113079077B true CN113079077B (zh) 2022-04-08

Family

ID=76611922

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110342041.9A Active CN113079077B (zh) 2021-03-30 2021-03-30 基于队列实现的dpdk架构下隧道报文对称rss处理方法及系统

Country Status (1)

Country Link
CN (1) CN113079077B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115955517B (zh) * 2023-03-10 2023-07-28 北京太一星晨信息技术有限公司 一种报文处理方法、系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105871741A (zh) * 2015-01-23 2016-08-17 阿里巴巴集团控股有限公司 一种报文分流方法及装置
CN106713185A (zh) * 2016-12-06 2017-05-24 瑞斯康达科技发展股份有限公司 一种多核cpu的负载均衡方法及装置
CN107196870A (zh) * 2017-07-20 2017-09-22 哈尔滨工业大学 一种基于dpdk的流量动态负载均衡方法
CN107547508A (zh) * 2017-06-29 2018-01-05 新华三信息安全技术有限公司 一种报文发送、接收方法、装置及网络设备
CN107911349A (zh) * 2017-11-01 2018-04-13 西安微电子技术研究所 一种面向UDP传输的对称性Receive‑side Scaling电路
CN111669374A (zh) * 2020-05-25 2020-09-15 成都安恒信息技术有限公司 一种IPsec VPN单条隧道软件加解密性能扩展方法
CN111984415A (zh) * 2020-08-24 2020-11-24 北京亚鸿世纪科技发展有限公司 一种基于流水线转发模型的负载均衡方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8990431B2 (en) * 2009-05-05 2015-03-24 Citrix Systems, Inc. Systems and methods for identifying a processor from a plurality of processors to provide symmetrical request and response processing
US8635352B2 (en) * 2011-02-22 2014-01-21 Qwilt, Inc. System and method for symmetric receive-side scaling (RSS)

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105871741A (zh) * 2015-01-23 2016-08-17 阿里巴巴集团控股有限公司 一种报文分流方法及装置
CN106713185A (zh) * 2016-12-06 2017-05-24 瑞斯康达科技发展股份有限公司 一种多核cpu的负载均衡方法及装置
CN107547508A (zh) * 2017-06-29 2018-01-05 新华三信息安全技术有限公司 一种报文发送、接收方法、装置及网络设备
CN107196870A (zh) * 2017-07-20 2017-09-22 哈尔滨工业大学 一种基于dpdk的流量动态负载均衡方法
CN107911349A (zh) * 2017-11-01 2018-04-13 西安微电子技术研究所 一种面向UDP传输的对称性Receive‑side Scaling电路
CN111669374A (zh) * 2020-05-25 2020-09-15 成都安恒信息技术有限公司 一种IPsec VPN单条隧道软件加解密性能扩展方法
CN111984415A (zh) * 2020-08-24 2020-11-24 北京亚鸿世纪科技发展有限公司 一种基于流水线转发模型的负载均衡方法及装置

Also Published As

Publication number Publication date
CN113079077A (zh) 2021-07-06

Similar Documents

Publication Publication Date Title
EP3603001B1 (en) Hardware-accelerated payload filtering in secure communication
US6909713B2 (en) Hash-based data frame distribution for web switches
CN115134245B (zh) 网络装置、方法、计算机化的系统和机器可读存储介质
CN101019385B (zh) 在整个设备堆栈中的端口聚合
US6614808B1 (en) Network packet aggregation
US6904040B2 (en) Packet preprocessing interface for multiprocessor network handler
WO2023005773A1 (zh) 基于远程直接数据存储的报文转发方法、装置、网卡及设备
US20030195919A1 (en) Packet distributing system and method for distributing access packets to a plurality of server apparatuses
US7283538B2 (en) Load balanced scalable network gateway processor architecture
US9774532B2 (en) Information processing system, information processing apparatus and control method of information processing system
US20070198897A1 (en) Method and apparatus to perform error control
US20210359952A1 (en) Technologies for protocol-agnostic network packet segmentation
US5864553A (en) Multiport frame exchange system
US20220217085A1 (en) Server fabric adapter for i/o scaling of heterogeneous and accelerated compute systems
CN113079077B (zh) 基于队列实现的dpdk架构下隧道报文对称rss处理方法及系统
CN115941598A (zh) 一种流表半卸载方法、设备及介质
CN113986811A (zh) 一种高性能内核态网络数据包加速方法
CN116366379A (zh) 智能网卡组件、物理机、云服务系统以及报文发送方法
US8386626B2 (en) Transmit scaling using multiple queues
US7580410B2 (en) Extensible protocol processing system
CN116248304A (zh) 一种高性能计算的云服务消息传递监测系统及其使用方法
CN113157445B (zh) 基于哈希运算和索引值比对的双向报文对称rss处理方法及系统
WO2020233442A1 (zh) 区块链与网络系统、数据接收与发送方法及设备
CN113098794B (zh) 利用二次分流实现隧道报文对称rss处理的方法及系统
CN117014501A (zh) 基于可编程交换机的无状态SRv6服务链代理方法及系统

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
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Method and System for Symmetric RSS Processing of Tunnel Messages in DPDK Architecture Based on Queue Implementation

Granted publication date: 20220408

Pledgee: Bank of Zhengzhou Co.,Ltd. Zhongyuan Science and Technology City Sub branch

Pledgor: ZHENGZHOU XINDA JIEAN INFORMATION TECHNOLOGY Co.,Ltd.

Registration number: Y2024980013861

PE01 Entry into force of the registration of the contract for pledge of patent right