CN113157445B - 基于哈希运算和索引值比对的双向报文对称rss处理方法及系统 - Google Patents
基于哈希运算和索引值比对的双向报文对称rss处理方法及系统 Download PDFInfo
- Publication number
- CN113157445B CN113157445B CN202110343585.7A CN202110343585A CN113157445B CN 113157445 B CN113157445 B CN 113157445B CN 202110343585 A CN202110343585 A CN 202110343585A CN 113157445 B CN113157445 B CN 113157445B
- Authority
- CN
- China
- Prior art keywords
- tunnel
- message
- cpu
- hash
- module
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及一种基于哈希运算和索引值比对的双向报文对称RSS处理方法及系统,第一隧道设备和第二隧道设备设置有RSS模块,哈希模块,间接寻址模块及若干CPU、环形缓冲区队列和普通队列;RSS模块对客户端和服务器端数据报文利用哈希模块进行哈希运算并通过间接寻址模块索引值匹配,通过普通队列分发至匹配索引值序号CPU上;CPU读取报文并通过索引值与自身序号匹配,匹配正确则进行相应报文处理,否则将报文送至CPU对应的环形缓冲区队列中进行缓存;第一隧道设备和第二隧道设备中的任一CPU均与对应的哈希模块和间接寻址模块连接,CPU利用哈希模块运算获取的哈希值与间接寻址模块索引值比对来确定报文分配的目标CPU索引值序号,提升DPDK架构下报文处理速度和效率。
Description
技术领域
本发明属于网络技术领域,特别涉及一种基于哈希运算和索引值比对的双向报文对称RSS 处理方法及系统。
背景技术
DPDK(Data Plane Development Kit,数据平面开发套件)是由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处理并封装了原始报文的隧道报文在发到另一端隧道设备后和收到从该 另一端隧道设备返回的前述原始报文的响应隧道报文时,该响应隧道报文能够再次分配回归 到与先前相同的同一个CPU进行后续处理。之所以出现对称RSS失效问题是因为正向报文是 基于原始报文四元组{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端 口号}的哈希值来计算由哪个CPU进行处理,而反向报文是基于隧道报文四元组{第二隧道设 备的IP地址,第二隧道设备的端口号,第一隧道设备的IP地址,第一隧道设备的端口号}的哈 希值来计算由哪个CPU进行处理,两者的哈希值不同,所以,不能分配到同一个CPU上进行 处理。如何根据隧道报文的处理过程和对称RSS的特点,实现DPDK架构下的隧道报文对称 RSS处理,从而提升CPU匹配及报文处理速度和效率,是目前急需解决的问题。
发明内容
为此,本发明提供一种基于哈希运算和索引值比对的双向报文对称RSS处理方法及系统, 解决原始报文与隧道报文的隧道设备上的处理核心CPU不一致问题,实现隧道报文的对称RSS 处理,提升DPDK架构下报文处理速度和效率。
按照本发明所提供的设计方案,提供一种基于哈希运算和索引值比对的双向报文对称 RSS处理系统,包括客户端,服务器端,及设置于客户端和服务器端之间用于正向报文和反 向报文传送的第一隧道设备和第二隧道设备,第一隧道设备和第二隧道设备共同构成正向报 文和反向报文传送隧道的两端,所述第一隧道设备和第二隧道设备内均设置有RSS模块,哈 希模块,间接寻址模块及若干CPU、环形缓冲区队列和普通队列,其中,每个隧道设备的CPU 个数均与对应的环形缓冲区队列和普通队列相一致,CPU、环形缓冲区队列及普通队列三者 通过索引值相匹配;RSS模块对客户端和服务器端传送的数据报文利用哈希模块进行哈希运 算并通过间接寻址模块索引值匹配,通过普通队列分发至匹配到的索引值序号CPU上;CPU 读取报文并通过索引值与自身序号匹配,匹配正确则进行相应报文处理,否则将报文送至CPU 对应的环形缓冲区队列中进行缓存;第一隧道设备和第二隧道设备中的任一CPU均与对应的 哈希模块和间接寻址模块连接,CPU利用哈希模块运算获取的哈希值与间接寻址模块索引值 比对来确定报文分配的目标CPU索引值序号。
作为本发明基于哈希运算和索引值比对的双向报文对称RSS处理系统,进一步地,哈希 值包括源IP地址、源端口号、目的端IP地址和目的端口号。
作为本发明基于哈希运算和索引值比对的双向报文对称RSS处理系统,进一步地,针对 第一隧道设备和第二隧道设备中,每个隧道设备至少包含一个CPU、一个环形缓冲区队列和 一个普通队列,且两个隧道设备内的CPU个数相同。
作为本发明基于哈希运算和索引值比对的双向报文对称RSS处理系统,进一步地,第一 隧道设备中CPU、环形缓冲区队列和普通队列分别用CPU1i、RING1i和QUE1i表示,其哈希模块 和间接寻址模块与每个CPU1i相连接,其RSS模块与每个QUE1i相连接,并通过第一网口与客 户端连接,通过第二网口与第二隧道设备对应连接,其中,i=1,2,…,n,n为第一隧道设备 内实际CPU个数;第二隧道设备中CPU、环形缓冲区队列和普通队列分别用CPU2i、RING2i和 QUE2i表示,第二隧道设备的哈希模块和间接寻址模块分别与与每个CPU1i相连接,第二隧道设 备的RSS模块与每个QUE2i相连接,且通过第三网口与第一隧道设备连接,通过第四网口与服 务器端连接。
进一步地,基于上述的系统,本发明还提供一种基于哈希运算和索引值比对的双向报文 对称RSS处理方法,利用CPU的普通队列和环形缓冲区队列对接收到的双向报文进行二次 分流以实现同一个连接的双向报文处理,具体包含如下内容:
针对客户端生成的第一原始报文,第一隧道设备利用其哈希模块对第一原始报文进行哈 希运算,并将哈希运算的哈希值与其间接寻址模块索引值进行比对,通过比对结果将第一原 始报文发送至对应索引值的第一隧道设备CPU的普通队列;CPU从普通队列中读取第一原始 报文,并添加隧道信息后封装成第一隧道报文,发送至第二隧道设备;
第二隧道设备利用其哈希模块对第一隧道报文进行哈希运算获取哈希值,第二隧道设备 的RSS模块利用哈希值和第二隧道设备的间接寻址模块索引值进行比对,通过比对结果将第 一隧道报文发送至相应的第二隧道设备CPU的普通队列中;CPU从普通队列中读取第一隧道 报文来获取第一隧道报文内的第一原始报文,并通过调用第二隧道设备的哈希模块对第一原 始报文进行哈希运算,将哈希运算获取的哈希值与第二隧道设备的间接寻址模块索引值进行 比对,根据比对结果确定第一隧道报文发送的CPU索引值序号,判断该索引值序号与其自身 序号是否相同,若不同,则将该第一隧道报文发送至索引值序号对应的CPU环形缓冲区队列 中缓存,与索引值序号对应的第二隧道设备CPU从其环形缓冲区队列中读取第一隧道报文来 获取与索引值序号一致的CPU;与索引值序号一致的第二隧道设备CPU对第一隧道报文进行 拆分,得到第一隧道报文内的第一原始报文,并将第一原始报文发送至服务器端;
服务器端对第一原始报文进行响应,生成第二原始报文并发送至第二隧道设备;第二隧 道设备利用其哈希模块对第二原始报文进行拆解和哈希运算,第二隧道设备的RSS模块将哈 希运算获取的哈希值与第二隧道设备的间接寻址模块内索引值比对,根据比对结果将第二原 始报文发送至第二隧道设备相应CPU的普通队列中;CPU从普通队列中读取第二原始报文, 将第二原始报文通过添加隧道相关信息进行封装后生成第二隧道报文发送至第一隧道设备;
第一隧道设备的RSS模块调用第一隧道设备的哈希模块对第二隧道报文进行哈希运算, 第一隧道设备的RSS模块将哈希运算得到的哈希值与第一隧道设备的间接寻址模块内索引值 进行比对,根据比对结果将第二隧道报文发送至相应CPU普通队列;CPU从普通队列中读取 第二隧道报文并获取第二原始报文,对第二原始报文进行拆解并调用第一隧道设备的哈希模 块来获取用于获取CPU索引值序号的哈希值,通过哈希值与第一隧道设备的间接寻址模块索 引值进行比对来确定第二隧道报文发送的CPU索引值序号,判断该索引值序号与其自身序号 是否相同,若不同,则将第二隧道报文发送至索引值序号对应的CPU环形缓冲队列中缓存, 索引值序号对应的CPU从环形缓冲队列中读取第二隧道报文来确定与索引值序号对应的CPU; 与索引值序号一致的CPU对第二隧道报文进行拆分获取第二原始报文,并将第二原始报文发 送至客户端。
作为本发明基于哈希运算和索引值比对的双向报文对称RSS处理方法,进一步地,第一 原始报文和第二原始报文均包含原始源IP地址、原始源端口号、原始目的IP地址、原始目 的端口号和原始报文数据。
作为本发明基于哈希运算和索引值比对的双向报文对称RSS处理方法,进一步地,第一 原始报文包括客户端IP地址、客户端端口号、服务器端IP地址、服务器端端口号和第一原 始报文数据;第二原始报文包括服务器端IP地址、服务器端端口号、客户端IP地址、客户 端端口号和第二原始报文数据。
作为本发明基于哈希运算和索引值比对的双向报文对称RSS处理方法,进一步地,第一 隧道报文和第二隧道报文均包含隧道源IP地址、隧道源端口号、隧道目的IP地址、隧道目 的端口号和隧道报文数据。
作为本发明基于哈希运算和索引值比对的双向报文对称RSS处理方法,进一步地,第一 隧道设备和第二隧道设备两者的RSS模块中的间接寻址模块内均预先设置有用于CPU间接 寻址的索引值,且预先设置的索引值相匹配,第一隧道设备和第二隧道设备内的CPU个数相 同。
作为本发明基于哈希运算和索引值比对的双向报文对称RSS处理方法,进一步地,第一 隧道设备中CPU对第二原始报文进行拆解,组合成包含客户端IP地址、客户端端口号、服 务器端IP地址和服务器端端口号的新四元组报文数据,并通过调用第一隧道设备的哈希模块 对该新四元组报文数据进行哈希运算来获取哈希值。
本发明的有益效果:
本发明在隧道设备收到原始报文时,根据原始报文的四元组来确定对该数据报文进行处 理的CPU;在隧道设备收到隧道报文时,先按隧道报文本身的报头四元组信息来分配报文的 处理核心CPU,然后,利用第一隧道设备和第二隧道设备中CPU的环形缓冲区队列和普通队 列采用二次分流方案,通过隧道报文数据内所携带的原始报文的四元组来二次最终确定应该 对该隧道报文进行处理的CPU,使得该CPU与前述对原始报文进行处理的CPU是同一个, 以此解决原始报文与隧道报文的隧道设备上的处理核心CPU不一致问题,实现隧道报文的对 称RSS处理;在第一隧道设备和第二隧道设备都实现报文的对称RSS处理,且每个CPU均 与对应的哈希模块和间接寻址模块连接,提升CPU匹配及报文处理的速度和效率,特别是对 于同一个连接的双向报文,将不会再被分发到不同的CPU,从而避免了在两个不同的CPU 之间处理和共享这个连接的信息时可能遇到的时间和性能方面的影响。既安全可靠,又简单 高效,具有较好的应用前景。
附图说明:
图1为实施例中基于哈希运算和索引值比对的双向报文对称RSS处理系统原理示意。
具体实施方式:
为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发 明作进一步详细的说明。
RSS(Receive Side Scaling)是由微软提出的一种负载分流方法,通过计算网络数据报 文中的网络层和传输层二/三/四元组的HASH哈希值,取HASH值的最低有效位(LSB)用于索引 间接寻址表RETA(Redirection Table),间接寻址表RETA中的保存索引值用于分配数据报文 到不同的CPU进行处理。现阶段RSS基本已有硬件实现,通过这项技术能够将网络流量分载 到多个CPU上,降低操作系统单个CPU的占用率。索引间接寻址表RETA的一个例子是INTEL 82576/82599RETA,它作为一个包含位宽4位的128项的索引映射表,通过取固定取HASH值 低7位,将其映射到RETA表项,输出索引可在运行时动态调整更新来实现网络流量动态的负 载均衡。隧道,即网络隧道技术,指的是利用一种网络协议(称为隧道协议)来传输另一种 网络协议(称为原始协议),如VXLAN、VPN隧道等。隧道是指,通过用户设定的隧道两端隧 道设备的源、目的IP地址和源、目的端口作为隧道报文的隧道包头信息,同时将需要通过隧 道传输的报文(即原始报文)封装到隧道报文的隧道报文数据部分,从而构成整个隧道报文。 隧道设备是指处理隧道报文的设备。支持对输入的原始报文可封装和输出隧道报文、对输入 的隧道报文可解封装得到原始报文。常规隧道设备中,原始报文从普通网络端口进入隧道设 备,经过预配置的隧道模块处理后会封装外层隧道头信息将报文转发到隧道另一端的隧道设 备。另一端的隧道设备从其隧道网络端口接收到隧道报文后,进行解封装隧道报文,得到相 应的原始报文。本发明实施例,提供一种基于哈希运算和索引值比对的双向报文对称RSS处 理系统,包括客户端,服务器端,及设置于客户端和服务器端之间用于正向报文和反向报文 传送的第一隧道设备和第二隧道设备,第一隧道设备和第二隧道设备共同构成正向报文和反 向报文传送隧道的两端,所述第一隧道设备和第二隧道设备内均设置有RSS模块,哈希模块, 间接寻址模块及若干CPU、环形缓冲区队列和普通队列,其中,每个隧道设备的CPU个数均 与对应的环形缓冲区队列和普通队列相一致,CPU、环形缓冲区队列及普通队列三者通过索 引值相匹配;RSS模块对客户端和服务器端传送的数据报文利用哈希模块进行哈希运算并通 过间接寻址模块索引值匹配,通过普通队列分发至匹配到的索引值序号CPU上;CPU读取报 文并通过索引值与自身序号匹配,匹配正确则进行相应报文处理,否则将报文送至CPU对应 的环形缓冲区队列中进行缓存;第一隧道设备和第二隧道设备中的任一CPU均与对应的哈希 模块和间接寻址模块连接,CPU利用哈希模块运算获取的哈希值与间接寻址模块索引值比对 来确定报文分配的目标CPU索引值序号。
在基于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 时,就不再是CPUi了,而是另一个CPUj,其中,i,j=1,2,…,n;j≠i。
本案实施例中,参见图1所示,系统内收发的数据包称统为报文,一隧道设备包括至少 一个CPU、至少一个环形缓冲区队列和至少一个普通队列,分别用CPU1i、RING1i和QUE1i表示; 所述CPU1i、RING1i和QUE1i的数量相同;所述CPU1i和QUE1i相连接,所述CPU1i从QUE1i中读取 数据;所述CPU1i与每个环形缓冲区队列RING1i相连接,所述CPU1i从RING1i中读取数据;所述 第一隧道设备还包括第一间接寻址模块、第一哈希模块、第一RSS模块、第一网口和第二网 口;所述第一间接寻址模块、所述第一哈希模块、所述第一网口和第二网口分别与所述第一 RSS模块相连接;所述第一间接寻址模块、所述第一哈希模块分别与每个CPU1i相连接,所述 第一RSS模块与每个QUE1i相连接,其中i=1,2,…,n;n为第一隧道设备内实际CPU的个数;
第二隧道设备包括至少一个CPU、至少一个环形缓冲区队列和至少一个普通队列,分别 用CPU2i、RING2i和QUE2i表示;所述CPU2i、RING2i和QUE2i的数量相同;所述CPU2i和QUE2i相连 接;所述CPU2i从QUE2i中读取数据;所述CPU2i与每个环形缓冲区队列RING2i相连接,所述CPU2i从RING2i中读取数据;所述第二隧道设备还包括第二间接寻址模块、第二哈希模块、第二RSS 模块、第三网口和第四网口;所述第二间接寻址模块、所述第二哈希模块、所述第三网口和 第四网口分别与所述第二RSS模块相连接;所述第二间接寻址模块、所述第二哈希模块分别 与每个CPU1i相连接,所述第二RSS模块与每个QUE2i相连接,其中i=1,2,…,n;第二隧道设 备内实际CPU的个数与第一隧道设备内实际CPU的个数相同均为n个;
所述第一哈希模块和所述第二哈希模块用于执行哈希运算,所述哈希运算用HA{·}表示;
客户端用于与所述第一隧道设备的第一网口进行通信,以收发第一原始报文;所述服务 器端用于与所述第二隧道设备的第四网口进行通信,以收发第二原始报文;所述第一原始报 文和第二原始报文均包括原始源IP地址、原始源端口号、原始目的IP地址、原始目的端口 号和原始报文数据;所述第一原始报文具体包括客户端的IP地址、客户端的端口号、服务器 端的IP地址、服务器端的端口号和第一原始报文数据;所述第二原始报文具体包括服务器端 的IP地址、服务器端的端口号、客户端的IP地址、客户端的端口号和第二原始报文数据;
所述第一隧道设备和所述第二隧道设备共同构成隧道的两端;所述第一隧道设备的第二 网口与所述第二隧道设备的第三网口进行通信,以收发隧道报文;所述第一隧道设备内预先 配置保存有用于组成第一隧道报文的所述第二隧道设备的第三网口的IP地址和端口号;所述 第二隧道设备内预先配置保存有用于组成第二隧道报文的所述第一隧道设备的第二网口的IP 地址和端口号;第一隧道报文由所述第一隧道设备的第二网口发送给所述第二隧道设备的第 三网口;第二隧道报文由所述第二隧道设备的第三网口发送给所述第一隧道设备的第二网口; 所述第一隧道报文和第二隧道报文均包括隧道源IP地址、隧道源端口号、隧道目的IP地址、 隧道目的端口号和隧道报文数据;
所述第一间接寻址模块内预先设置有预先确定好的若干第一索引值;所述第一RSS模块 将所述第一哈希模块对相应报文进行哈希运算后所得的哈希值与各所述第一索引值进行比对, 然后根据比对结果将报文分配到所述第一隧道设备内的对应的CPU所对应的普通队列QUE, 以供所述第一隧道设备内的相应CPU进行处理;所述第一隧道设备内的任一CPU均可将所述 第一哈希模块对相应报文进行哈希运算后所得的哈希值与各所述第一索引值进行比对,然后 根据比对结果来确定应该将该报文分配到所述第一隧道设备内的哪个CPU进行处理;
所述第二间接寻址模块内预先设置有预先确定好的若干第二索引值;所述第二RSS模块 将所述第二哈希模块对相应报文进行哈希运算后所得的哈希值与各所述第二索引值进行比对, 然后根据比对结果将报文分配到所述第二隧道设备内的对应的CPU所对应的普通队列QUE, 以供所述第二隧道设备内的相应CPU进行处理;所述第二隧道设备内的任一CPU均可将所述 第二哈希模块对相应报文进行哈希运算后所得的哈希值与各所述第二索引值进行比对,然后 根据比对结果来确定应该将该报文分配到所述第二隧道设备内的哪个CPU进行处理。
所述第一间接寻址模块内的第一索引值与所述第二间接寻址模块内的第二索引值配置为 相同的值。
进一步地,基于上述的系统,本发明实施例还提供一种基于哈希运算和索引值比对的双 向报文对称RSS处理方法,利用CPU的普通队列和环形缓冲区队列对接收到的双向报文进 行二次分流以实现同一个连接的双向报文处理,具体包含如下内容:
针对客户端生成的第一原始报文,第一隧道设备利用其哈希模块对第一原始报文进行哈 希运算,并将哈希运算的哈希值与其间接寻址模块索引值进行比对,通过比对结果将第一原 始报文发送至对应索引值的第一隧道设备CPU的普通队列;CPU从普通队列中读取第一原始 报文,并添加隧道信息后封装成第一隧道报文,发送至第二隧道设备;
第二隧道设备利用其哈希模块对第一隧道报文进行哈希运算获取哈希值,第二隧道设备 的RSS模块利用哈希值和第二隧道设备的间接寻址模块索引值进行比对,通过比对结果将第 一隧道报文发送至相应的第二隧道设备CPU的普通队列中;CPU从普通队列中读取第一隧道 报文来获取第一隧道报文内的第一原始报文,并通过调用第二隧道设备的哈希模块对第一原 始报文进行哈希运算,将哈希运算获取的哈希值与第二隧道设备的间接寻址模块索引值进行 比对,根据比对结果确定第一隧道报文发送的CPU索引值序号,判断该索引值序号与其自身 序号是否相同,若不同,则将该第一隧道报文发送至索引值序号对应的CPU环形缓冲区队列 中缓存,与索引值序号对应的第二隧道设备CPU从其环形缓冲区队列中读取第一隧道报文来 获取与索引值序号一致的CPU;与索引值序号一致的第二隧道设备CPU对第一隧道报文进行 拆分,得到第一隧道报文内的第一原始报文,并将第一原始报文发送至服务器端;
服务器端对第一原始报文进行响应,生成第二原始报文并发送至第二隧道设备;第二隧 道设备利用其哈希模块对第二原始报文进行拆解和哈希运算,第二隧道设备的RSS模块将哈 希运算获取的哈希值与第二隧道设备的间接寻址模块内索引值比对,根据比对结果将第二原 始报文发送至第二隧道设备相应CPU的普通队列中;CPU从普通队列中读取第二原始报文, 将第二原始报文通过添加隧道相关信息进行封装后生成第二隧道报文发送至第一隧道设备;
第一隧道设备的RSS模块调用第一隧道设备的哈希模块对第二隧道报文进行哈希运算, 第一隧道设备的RSS模块将哈希运算得到的哈希值与第一隧道设备的间接寻址模块内索引值 进行比对,根据比对结果将第二隧道报文发送至相应CPU普通队列;CPU从普通队列中读取 第二隧道报文并获取第二原始报文,对第二原始报文进行拆解并调用第一隧道设备的哈希模 块来获取用于获取CPU索引值序号的哈希值,通过哈希值与第一隧道设备的间接寻址模块索 引值进行比对来确定第二隧道报文发送的CPU索引值序号,判断该索引值序号与其自身序号 是否相同,若不同,则将第二隧道报文发送至索引值序号对应的CPU环形缓冲队列中缓存, 索引值序号对应的CPU从环形缓冲队列中读取第二隧道报文来确定与索引值序号对应的CPU; 与索引值序号一致的CPU对第二隧道报文进行拆分获取第二原始报文,并将第二原始报文发 送至客户端。
在隧道设备收到原始报文时,根据原始报文的四元组来确定对该数据报文进行处理的 CPU;在隧道设备收到隧道报文时,先按隧道报文本身的报头四元组信息来分配报文的处理 核心CPU,然后,采用二次分流方案,通过隧道报文数据内所携带的原始报文的四元组来二 次最终确定应该对该隧道报文进行处理的CPU,使得该CPU与前述对原始报文进行处理的 CPU是同一个,以此解决原始报文与隧道报文的隧道设备上的处理核心CPU不一致问题。下 面结合图1所示的系统架构,对本案方案流程做进一步解释说明:
步骤1,客户端生成第一原始报文,然后发送到所述第一隧道设备的第一网口;所述第 一网口接收到客户端发来的第一原始报文后,将所述第一原始报文发送给第一RSS模块,所 述第一RSS模块调用第一哈希模块对所述第一原始报文中的四元组{客户端的IP地址,客户 端的端口号,服务器端的IP地址,服务器端的端口号}进行哈希运算得到哈希值HA{客户端 的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号},然后,所述第一 RSS模块将所述哈希值HA{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器 端的端口号}与所述第一间接寻址模块内预先设置的若干第一索引值进行比对,然后根据比对 结果将所述第一原始报文发送到相应的CPU1i所对应的QUE1i,其中i=1,2,…,n;
步骤2,CPU1i从QUE1i中读取第一原始报文后,将所述第一原始报文封装成第一隧道报文 数据,并加上隧道相关信息后封装得到第一隧道报文,所述第一隧道报文包括第二网口的IP 地址、第二网口的端口号、第三网口的IP地址、第三网口的端口号和所述第一隧道报文数据; 所述CPU1i将所述第一隧道报文经所述第一RSS模块和所述第二网口发送给所述第二隧道设备 的第三网口;
步骤3,所述第二隧道设备的第三网口将所述第一隧道报文传送给所述第二RSS模块; 所述第二RSS模块调用第二哈希模块对所述第一隧道报文的四元组{第二网口的IP地址,第 二网口的端口号,第三网口的IP地址,第三网口的端口号}进行哈希运算得到哈希值HA{第 二网口的IP地址,第二网口的端口号,第三网口的IP地址,第三网口的端口号},然后,所 述第二RSS模块将所述哈希值HA{第二网口的IP地址,第二网口的端口号,第三网口的IP 地址,第三网口的端口号}与所述第二间接寻址模块内预先设置的若干第二索引值进行比对, 然后根据比对结果将所述第一隧道报文发送到相应的CPU2j所对应的QUE2j,其中j=1,2,…,n;
步骤4,CPU2j从QUE2j中读取所述第一隧道报文后,CPU2j对所述第一隧道报文进行拆分, 得到封装在所述第一隧道报文数据内的所述第一原始报文;CPU2j调用第二哈希模块对所述第 一原始报文中的四元组{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端 的端口号}进行哈希运算得到哈希值HA{客户端的IP地址,客户端的端口号,服务器端的IP 地址,服务器端的端口号},然后,CPU2j将所述哈希值HA{客户端的IP地址,客户端的端口 号,服务器端的IP地址,服务器端的端口号}与所述第二间接寻址模块内预先设置的若干第 二索引值进行比对,然后根据比对结果确定应该将所述第一隧道报文发送到的相应的CPU2i, 然后,CPU2j判断i值是否与j值相同,若i≠j,则CPU2j将所述第一隧道报文发送到RING2i, 然后CPU2i从RING2i中读取所述第一隧道报文;若i=j,则CPU2j即为CPU2i;
步骤5,CPU2i对所述第一隧道报文进行拆分,得到封装在所述第一隧道报文数据内的所 述第一原始报文;然后,通过所述第四网口将所述第一原始报文发送给所述服务器端;
步骤6,所述服务器端在收到第一原始报文后,对其进行响应,生成第二原始报文,然 后将所述第二原始报文发送到所述第二隧道设备的第四网口;所述第四网口将所收到的所述 服务器端发送回来的第二原始报文发送给所述第二RSS模块,所述第二RSS模块将第二原始 报文的四元组{服务器端的IP地址,服务器端的端口号,客户端的IP地址,客户端的端口号} 进行拆解,组合成新的四元组{客户端的IP地址,客户端的端口号,服务器端的IP地址,服 务器端的端口号};然后再计算该新四元组的哈希值HA{客户端的IP地址,客户端的端口号, 服务器端的IP地址,服务器端的端口号};然后,第二RSS模块将所述哈希值HA{客户端的 IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号}与所述第二间接寻址模 块内预先设置的若干第二索引值进行比对,然后根据比对结果将所述第二原始报文发送到相 应的CPU2i所对应的QUE2i,其中i=1,2,…,n;
步骤7,CPU2i从QUE2i中读取第二原始报文后,将所述第二原始报文封装成第二隧道报文 数据,并加上隧道相关信息后封装得到第二隧道报文,所述第二隧道报文包括第三网口的IP 地址、第三网口的端口号、第二网口的IP地址、第二网口的端口号和所述第二隧道报文数据; 所述CPU2i将所述第二隧道报文经所述第二RSS模块和所述第三网口发送给所述第一隧道设备 的第二网口;
步骤8,所述第一隧道设备的第二网口将所述第二隧道报文传送给所述第一RSS模块; 所述第一RSS模块调用第一哈希模块对所述第二隧道报文的四元组{第三网口的IP地址,第 三网口的端口号,第二网口的IP地址,第二网口的端口号}进行哈希运算得到哈希值HA{第 三网口的IP地址,第三网口的端口号,第二网口的IP地址,第二网口的端口号},然后,所 述第一RSS模块将所述哈希值HA{第三网口的IP地址,第三网口的端口号,第二网口的IP 地址,第二网口的端口号}与所述第一间接寻址模块内预先设置的若干第一索引值进行比对, 然后根据比对结果将所述第二隧道报文发送到相应的CPU1k所对应的QUE1k,其中k=1,2,…,n;
步骤9,CPU1k从QUE1k中读取所述第二隧道报文后,CPU1k对所述第二隧道报文进行拆分, 得到封装在所述第二隧道报文数据内的所述第二原始报文;CPU1k将所述第二原始报文的四元 组{服务器端的IP地址,服务器端的端口号,客户端的IP地址,客户端的端口号}进行拆解, 组合成新的四元组{客户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端 口号};然后CPU1k调用第一哈希模块对所述新四元组{客户端的IP地址,客户端的端口号, 服务器端的IP地址,服务器端的端口号}进行哈希运算得到哈希值HA{客户端的IP地址,客 户端的端口号,服务器端的IP地址,服务器端的端口号},然后,CPU1k将所述哈希值HA{客 户端的IP地址,客户端的端口号,服务器端的IP地址,服务器端的端口号}与所述第一间接 寻址模块内预先设置的若干第一索引值进行比对,然后根据比对结果确定应该将所述第二隧 道报文发送到的相应的CPU1i,然后,CPU1k判断i值是否与k值相同,若i≠k,则CPU1k将所 述第二隧道报文发送到RING1i,然后CPU1i从RING1i中读取所述第一隧道报文;若i=j,则CPU1k即为CPU1i;
步骤10,CPU1i对所述第二隧道报文进行拆分,得到封装在所述第二隧道报文数据内的所 述第二原始报文;然后,通过所述第一网口将所述第二原始报文发送给所述客户端。
所述第一原始报文、所述第一隧道报文均为正向报文;所述第二原始报文、所述第二隧 道报文均为反向报文。
所述环形缓冲区队列是指一种环状的存储数据的区域,是一种先进先出的队列类型结构, 其空间使用数组或链表等技术来进行构造。环形缓冲区队列特点是对其读出和写入可以是分 开的,写入数据之后可以先不去读取,等到需要读取的时候再去读取。假设CPU有n个,则 对应的环形缓冲区队列也相应的有n个,CPU i可以从环形缓冲区队列i接收数据包,但CPU i可以根据一定的规则向每个环形缓冲区队列发送数据包,其中,i=1,2,…,n。所述普通队 列是指一种先进先出FIFO(First Input First Output)的队列类型结构,其特点是先存入 的数据先被提取。HASH,又称作散列、杂凑或哈希,是把任意长度的输入通过散列算法变换 成固定长度的输出,该输出就是散列值。本发明实施例中源隧道设备和目的隧道设备部署相 同的DPDK工作核心CPU数目。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对步骤、数字表达式和 数值并不限制本发明的范围。
在这里示出和描述的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为 限制,因此,示例性实施例的其他示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附 图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
最后应说明的是:以上所述实施例,仅为本发明的具体实施方式,用以说明本发明的技 术方案,而非对其限制,本发明的保护范围并不局限于此,尽管参照前述实施例对本发明进 行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本发 明揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变 化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术 方案的本质脱离本发明实施例技术方案的精神和范围,都应涵盖在本发明的保护范围之内。 因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种基于哈希运算和索引值比对的双向报文对称RSS处理方法,其特征在于,利用CPU的普通队列和环形缓冲区队列对接收到的双向报文进行二次分流以实现同一个连接的双向报文处理,具体包含如下内容:
针对客户端生成的第一原始报文,第一隧道设备利用其哈希模块对第一原始报文进行哈希运算,并将哈希运算的哈希值与其间接寻址模块索引值进行比对,通过比对结果将第一原始报文发送至对应索引值的第一隧道设备CPU的普通队列;CPU从普通队列中读取第一原始报文,并添加隧道信息后封装成第一隧道报文,发送至第二隧道设备;
第二隧道设备利用其哈希模块对第一隧道报文进行哈希运算获取哈希值,第二隧道设备的RSS模块利用哈希值和第二隧道设备的间接寻址模块索引值进行比对,通过比对结果将第一隧道报文发送至相应的第二隧道设备CPU的普通队列中;CPU从普通队列中读取第一隧道报文来获取第一隧道报文内的第一原始报文,并通过调用第二隧道设备的哈希模块对第一原始报文进行哈希运算,将哈希运算获取的哈希值与第二隧道设备的间接寻址模块索引值进行比对,根据比对结果确定第一隧道报文发送的CPU索引值序号,判断该索引值序号与其自身序号是否相同,若不同,则将该第一隧道报文发送至索引值序号对应的CPU环形缓冲区队列中缓存,与索引值序号对应的第二隧道设备CPU从其环形缓冲区队列中读取第一隧道报文来获取与索引值序号一致的CPU;与索引值序号一致的第二隧道设备CPU对第一隧道报文进行拆分,得到第一隧道报文内的第一原始报文,并将第一原始报文发送至服务器端;
服务器端对第一原始报文进行响应,生成第二原始报文并发送至第二隧道设备;第二隧道设备利用其哈希模块对第二原始报文进行拆解和哈希运算,第二隧道设备的RSS模块将哈希运算获取的哈希值与第二隧道设备的间接寻址模块内索引值比对,根据比对结果将第二原始报文发送至第二隧道设备相应CPU的普通队列中;CPU从普通队列中读取第二原始报文,将第二原始报文通过添加隧道相关信息进行封装后生成第二隧道报文发送至第一隧道设备;
第一隧道设备的RSS模块调用第一隧道设备的哈希模块对第二隧道报文进行哈希运算,第一隧道设备的RSS模块将哈希运算得到的哈希值与第一隧道设备的间接寻址模块内索引值进行比对,根据比对结果将第二隧道报文发送至相应CPU普通队列;CPU从普通队列中读取第二隧道报文并获取第二原始报文,对第二原始报文进行拆解并调用第一隧道设备的哈希模块来获取用于获取CPU索引值序号的哈希值,通过哈希值与第一隧道设备的间接寻址模块索引值进行比对来确定第二隧道报文发送的CPU索引值序号,判断该索引值序号与其自身序号是否相同,若不同,则将第二隧道报文发送至索引值序号对应的CPU环形缓冲队列中缓存,索引值序号对应的CPU从环形缓冲队列中读取第二隧道报文来确定与索引值序号对应的CPU;与索引值序号一致的CPU对第二隧道报文进行拆分获取第二原始报文,并将第二原始报文发送至客户端。
2.根据权利要求1所述的基于哈希运算和索引值比对的双向报文对称RSS处理方法,其特征在于,第一原始报文和第二原始报文均包含原始源IP地址、原始源端口号、原始目的IP地址、原始目的端口号和原始报文数据。
3.根据权利要求1或2所述的基于哈希运算和索引值比对的双向报文对称RSS处理方法,其特征在于,第一原始报文包括客户端IP地址、客户端端口号、服务器端IP地址、服务器端端口号和第一原始报文数据;第二原始报文包括服务器端IP地址、服务器端端口号、客户端IP地址、客户端端口号和第二原始报文数据。
4.根据权利要求1所述的基于哈希运算和索引值比对的双向报文对称RSS处理方法,其特征在于,第一隧道报文和第二隧道报文均包含隧道源IP地址、隧道源端口号、隧道目的IP地址、隧道目的端口号和隧道报文数据。
5.根据权利要求1所述的基于哈希运算和索引值比对的双向报文对称RSS处理方法,其特征在于,第一隧道设备和第二隧道设备两者的间接寻址模块内均预先设置有用于CPU间接寻址的索引值,且预先设置的索引值相匹配,第一隧道设备和第二隧道设备内的CPU个数相同。
6.根据权利要求1所述的基于哈希运算和索引值比对的双向报文对称RSS处理方法,其特征在于,第一隧道设备中CPU对第二原始报文进行拆解,组合成包含客户端IP地址、客户端端口号、服务器端IP地址和服务器端端口号的新四元组报文数据,并通过调用第一隧道设备的哈希模块对该新四元组报文数据进行哈希运算来获取哈希值。
7.一种用于实施根据权利要求1至6之一所述的基于哈希运算和索引值比对的双向报文对称RSS处理方法的基于哈希运算和索引值比对的双向报文对称RSS处理系统,包括客户端,服务器端,及设置于客户端和服务器端之间用于正向报文和反向报文传送的第一隧道设备和第二隧道设备,第一隧道设备和第二隧道设备共同构成正向报文和反向报文传送隧道的两端,其特征在于,所述第一隧道设备和第二隧道设备内均设置有RSS模块,哈希模块,间接寻址模块及若干CPU、环形缓冲区队列和普通队列,其中,每个隧道设备的CPU个数均与对应的环形缓冲区队列个数和普通队列个数相一致,CPU、环形缓冲区队列及普通队列三者通过索引值相匹配;RSS模块对客户端和服务器端传送的数据报文利用哈希模块进行哈希运算并通过间接寻址模块索引值匹配,通过普通队列分发至匹配到的索引值序号CPU上;CPU读取报文并通过索引值与自身序号匹配,匹配正确则进行相应报文处理,否则将报文送至CPU对应的环形缓冲区队列中进行缓存;第一隧道设备和第二隧道设备中的任一CPU均与对应的哈希模块和间接寻址模块连接,CPU利用哈希模块运算获取的哈希值与间接寻址模块索引值比对来确定报文分配的目标CPU索引值序号。
8.根据权利要求7所述的基于哈希运算和索引值比对的双向报文对称RSS处理系统,其特征在于,哈希值包括源IP地址、源端口号、目的端IP地址和目的端口号。
9.根据权利要求7所述的基于哈希运算和索引值比对的双向报文对称RSS处理系统,其特征在于,针对第一隧道设备和第二隧道设备,每个隧道设备至少包含一个CPU、一个环形缓冲区队列和一个普通队列,且两个隧道设备内的CPU个数相同。
10.根据权利要求7或9所述的基于哈希运算和索引值比对的双向报文对称RSS处理系统,其特征在于,第一隧道设备中CPU、环形缓冲区队列和普通队列分别用CPU1i、RING1i和QUE1i表示,其哈希模块和间接寻址模块与每个CPU1i相连接,其RSS模块与每个QUE1i相连接,并通过第一网口与客户端连接,通过第二网口与第二隧道设备对应连接,其中,i=1,2,…,n,n为第一隧道设备内实际CPU个数;第二隧道设备中CPU、环形缓冲区队列和普通队列分别用CPU2i、RING2i和QUE2i表示,第二隧道设备的哈希模块和间接寻址模块分别与每个CPU2i相连接,第二隧道设备的RSS模块与每个QUE2i相连接,且通过第三网口与第一隧道设备连接,通过第四网口与服务器端连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110343585.7A CN113157445B (zh) | 2021-03-30 | 2021-03-30 | 基于哈希运算和索引值比对的双向报文对称rss处理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110343585.7A CN113157445B (zh) | 2021-03-30 | 2021-03-30 | 基于哈希运算和索引值比对的双向报文对称rss处理方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113157445A CN113157445A (zh) | 2021-07-23 |
CN113157445B true CN113157445B (zh) | 2022-04-08 |
Family
ID=76885507
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110343585.7A Active CN113157445B (zh) | 2021-03-30 | 2021-03-30 | 基于哈希运算和索引值比对的双向报文对称rss处理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113157445B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114374666A (zh) * | 2021-12-30 | 2022-04-19 | 中国电信股份有限公司 | 一种报文转发方法、装置、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871725A (zh) * | 2015-01-23 | 2016-08-17 | 阿里巴巴集团控股有限公司 | 一种报文分流方法及装置 |
CN106789668A (zh) * | 2016-12-12 | 2017-05-31 | 锐捷网络股份有限公司 | 一种处理报文的方法和装置 |
CN107968791A (zh) * | 2017-12-15 | 2018-04-27 | 杭州迪普科技股份有限公司 | 一种攻击报文的检测方法及装置 |
CN108199982A (zh) * | 2018-01-03 | 2018-06-22 | 腾讯科技(深圳)有限公司 | 报文处理方法、装置、存储介质和计算机设备 |
CN111988211A (zh) * | 2019-05-21 | 2020-11-24 | 华为技术有限公司 | 网络设备的报文分流方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8413225B2 (en) * | 2009-12-23 | 2013-04-02 | Citrix Systems, Inc. | Systems and methods for management of common application firewall session data in a multiple core system |
-
2021
- 2021-03-30 CN CN202110343585.7A patent/CN113157445B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871725A (zh) * | 2015-01-23 | 2016-08-17 | 阿里巴巴集团控股有限公司 | 一种报文分流方法及装置 |
CN106789668A (zh) * | 2016-12-12 | 2017-05-31 | 锐捷网络股份有限公司 | 一种处理报文的方法和装置 |
CN107968791A (zh) * | 2017-12-15 | 2018-04-27 | 杭州迪普科技股份有限公司 | 一种攻击报文的检测方法及装置 |
CN108199982A (zh) * | 2018-01-03 | 2018-06-22 | 腾讯科技(深圳)有限公司 | 报文处理方法、装置、存储介质和计算机设备 |
CN111988211A (zh) * | 2019-05-21 | 2020-11-24 | 华为技术有限公司 | 网络设备的报文分流方法和装置 |
Non-Patent Citations (2)
Title |
---|
Hash Function Vulnerability Index and Hash Chain Attacks;David Lee;《2007 3rd IEEE Workshop on Secure Network Protocols》;20071029;全文 * |
基于DPDK的流量动态负载均衡方法;李凯 等;《智能计算机与应用》;20170914;第7卷(第4期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN113157445A (zh) | 2021-07-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6904040B2 (en) | Packet preprocessing interface for multiprocessor network handler | |
CN115134245B (zh) | 网络装置、方法、计算机化的系统和机器可读存储介质 | |
CN101019385B (zh) | 在整个设备堆栈中的端口聚合 | |
US7274706B1 (en) | Methods and systems for processing network data | |
US7916632B1 (en) | Systems and methods for handling packet fragmentation | |
CN113490927B (zh) | 具有硬件集成和乱序放置的rdma输送 | |
US8085780B1 (en) | Optimized buffer loading for packet header processing | |
US20210359952A1 (en) | Technologies for protocol-agnostic network packet segmentation | |
CN113326228A (zh) | 基于远程直接数据存储的报文转发方法、装置及设备 | |
EP3928213A1 (en) | Rdma transport with hardware integration | |
US5864553A (en) | Multiport frame exchange system | |
US20220217085A1 (en) | Server fabric adapter for i/o scaling of heterogeneous and accelerated compute systems | |
CN115941598B (zh) | 一种流表半卸载方法、设备及介质 | |
CN113746749A (zh) | 网络连接设备 | |
US8990422B1 (en) | TCP segmentation offload (TSO) using a hybrid approach of manipulating memory pointers and actual packet data | |
CN113986811A (zh) | 一种高性能内核态网络数据包加速方法 | |
CN113157445B (zh) | 基于哈希运算和索引值比对的双向报文对称rss处理方法及系统 | |
KR20240004315A (ko) | Smartnic들 내의 네트워크 연결형 mpi 프로세싱 아키텍처 | |
CN116471242A (zh) | 基于rdma的发送端、接收端、数据传输系统及方法 | |
US8386626B2 (en) | Transmit scaling using multiple queues | |
CN113079077B (zh) | 基于队列实现的dpdk架构下隧道报文对称rss处理方法及系统 | |
CN113098794B (zh) | 利用二次分流实现隧道报文对称rss处理的方法及系统 | |
US10367758B2 (en) | Merging read requests in network device architecture | |
US7272151B2 (en) | Centralized switching fabric scheduler supporting simultaneous updates | |
US7940764B2 (en) | Method and system for processing multicast packets |
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 |