CN105915462B - 一种面向tcp会话的对称性rss电路 - Google Patents

一种面向tcp会话的对称性rss电路 Download PDF

Info

Publication number
CN105915462B
CN105915462B CN201610394135.XA CN201610394135A CN105915462B CN 105915462 B CN105915462 B CN 105915462B CN 201610394135 A CN201610394135 A CN 201610394135A CN 105915462 B CN105915462 B CN 105915462B
Authority
CN
China
Prior art keywords
module
hash
tcp
rss
extraction
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
CN201610394135.XA
Other languages
English (en)
Other versions
CN105915462A (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.)
771 Research Institute of 9th Academy of CASC
Original Assignee
771 Research Institute of 9th Academy of CASC
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 771 Research Institute of 9th Academy of CASC filed Critical 771 Research Institute of 9th Academy of CASC
Priority to CN201610394135.XA priority Critical patent/CN105915462B/zh
Publication of CN105915462A publication Critical patent/CN105915462A/zh
Application granted granted Critical
Publication of CN105915462B publication Critical patent/CN105915462B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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

一种面向TCP会话的对称性RSS电路,包括TCP/IP头提取模块、Hash函数计算模块、Hash结果重组模块、间接表查询模块和用于存储配置信息的RSS寄存器模块;TCP/IP头提取模块连接有MAC模块,间接表查询模块连接有RQP模块;本发明通过主动地计算反向提取内容的Hash结果,使用由正向提取内容和反向提取内容的Hash结果产生的最终结果作为CPU核的判决依据。因为使用该方法后,TCP会话中的上行数据和下行数据得到的Hash结果相同,因此会指向同一个CPU核,即实现了将不同方向但却属于同一个TCP/IP链接的报文分配到相同的CPU核上进行处理,实现了对现有RSS的兼容。

Description

一种面向TCP会话的对称性RSS电路
技术领域
本发明属于计算机网络领域,涉及一种网络控制器中的接收端调控机构,尤其适用于网络安全领域的对TCP会话敏感的高性能网络数据处理系统,如网络入侵检测系统和硬件防火墙系统等,具体涉及一种面向TCP会话的对称性RSS电路。
背景技术
目前在主流的以太网控制器中,都使用了Receive-side Scaling(RSS,接收端调控)技术。RSS技术通过对接收到的数据报文进行分析处理,将属于同一个TCP/IP流的数据分配到相同的CPU核上处理,从而在多处理器(多核)系统之间平衡了网络数据吞吐,同时也提高了CPU对网络数据的处理能力。
然而在网络安全领域,如网络入侵检测系统和硬件防火墙系统中,为了确保网络的安全和可靠,都需要对整个网络的数据进行监测和分析。因为TCP会话是双向的,因此网络入侵检测系统和硬件防火墙系统会接收到双向的TCP/IP报文。这就需要其对TCP会话具有非常高的处理能力,但是现有的RSS不能够保证属于同一个TCP会话的上行数据和下行数据都在同一个CPU核中处理,这样一来就会产生多核之间跨线程访问等问题,从而增大了CPU的开销,降低了系统的性能。
一种通过修改RSS算法中的Key值来实现对称的RSS方法(Shinae Woo,ScalableTCP Session Monitoring with Symmetric Receive-side Scaling),通过对RSS中采用的Toeplitz Hash算法的研究,发现当Hash类型为带有TCP头的IPv4情况时,只要Hash Key为16位循环的方式,那么对于同一个TCP/IP会话,无论其是上行数据还是下行数据,最终计算出的Hash结果是相同的,这也就意味着将会由一个CPU核来处理双向的数据。该方法实现起来简单,只需要将Hash Key配成16位循环的方式即可,但是其还是存在以下缺陷:1、存在边界条件(corner cases),当Hash Key全为1或全为0时,该方法将失效;2、适用性不强。该方法只针对一种Hash类型,对于其它三种Hash类型并不适用。3、存在潜在的风险。修改HashKey使该方法成为了Toeplitz Hash算法的子集,不能保证Hash结果的唯一性。
一种面向多核处理器系统的传输友好的网卡,(Wenji Wu,Phil DeMar,ATransport-Friendly NIC for Multicore/Multiprocessor Systems,2012),通过操作系统软件和网卡硬件电路的配合,在原有的RSS电路基础上,由软件来计算和维护间接表,从而得到数据流-CPU核的对应关系,实现对双向TCP/IP数据的同核处理。该架构存在的主要缺陷是:1、硬件设计相对传统的RSS较为复杂,且需要大量的memory来存储数据流-CPU核的对应关系;2、需要操作系统的支持,需要对操作系统进行一定的修改,风险较高,可移植性较差。
一种Ethernet Flow Director技术的提出,虽然能够保证属于同一个TCP会话的上行数据和下行数据都在同一个CPU核中处理,但是其存在TCP报文重排序的问题,无法保障QoS。因此,RSS仍然被广泛地应用在网络控制器设计中。这主要是因为RSS技术相对来说较成熟,且具有很好的软件兼容性。
发明内容
本发明为了有效解决在对TCP会话敏感的处理系统中TCP上行和下行数据不在同一个CPU核中处理的问题,目的在于提出一种面向TCP会话的对称性RSS电路,有效解决双向TCP报文与CPU核的唯一绑定问题,且与现有的RSS兼容,无需软件层面做任何的修改,同时实现了将不同方向但却属于同一个TCP/IP链接的报文分配到相同的CPU核上进行处理。
为实现上述目的,本发明采用如下的技术方案来实现:
一种面向TCP会话的对称性RSS电路,包括TCP/IP头提取模块、Hash函数计算模块、Hash结果重组模块、间接表查询模块和用于存储配置信息的RSS寄存器模块;TCP/IP头提取模块连接有MAC模块,间接表查询模块连接有RQP模块;
TCP/IP头提取模块用于根据RSS寄存器模块中Hash类型寄存器的配置,对从MAC模块接收到的数据帧分别进行TCP/IP头和反向的TCP/IP头的提取,并将提取结果分别发送到Hash函数计算模块;
Hash函数计算模块用于完成对接收到的TCP/IP头提取模块1的提取结果的Hash结果计算,包括对正向提取内容的计算和反向提取内容的计算;并将计算结果发送到Hash结果重组模块;
Hash结果重组模块用于接收到正向提取内容和反向提取内容的Hash结果,并对两个结果进行重组,重组的方式为:对两个结果做算术加法运算,取运算结果的低7位作为重组后的输出结果,并发送到间接表查询模块;
间接表查询模块用于根据接收到的Hash结果重组模块输出的结果决定由哪个CPU核来对该报文进行处理。
本发明进一步的改进在于,RSS寄存器模块存储的配置信息包括Hash类型、HashKey和间接表。
本发明进一步的改进在于,反向的TCP/IP头的提取的规则是将源IP地址和目的IP地址以及源端口地址和目的端口地址分别进行交换。
本发明进一步的改进在于,针对4种Hash类型,具体的提取方式如下:
(1)带TCP头的IPv4帧
正向提取内容={源IPv4地址,目的IPv4地址,源端口地址,目的端口地址};
反向提取内容={目的IPv4地址,源IPv4地址,目的端口地址,源端口地址};
(2)IPv4帧
正向提取内容={源IPv4地址,目的IPv4地址};
反向提取内容={目的IPv4地址,源IPv4地址};
(3)带TCP头的IPv6帧
正向提取内容={源IPv6地址,目的IPv6地址,源端口地址,目的端口地址};
反向提取内容={目的IPv6地址,源IPv6地址,目的端口地址,源端口地址};
(4)IPv6帧
正向提取内容={源IPv6地址,目的IPv6地址};
反向提取内容={目的IPv6地址,源IPv6地址};
对于带TCP头的IPv4的数据帧和IPv4的数据帧,其提取内容长度分别为12bytes和8bytes;对于带TCP头的IPv6数据帧和IPv6数据帧的提取内容长度分别为36bytes和32bytes。
本发明进一步的改进在于,Hash函数计算模块由两套功能相同的计算结构组成,分别对TCP/IP头提取模块送来的正向提取内容和反向提取内容进行Hash结果计算,每套计算结构包括由1个提取内容分割模块、1个Key值分割模块、字节Hash计算模块以及1个结果输出模块构成;
提取内容分割模块根据RSS寄存器模块中Hash类型寄存器的配置,判断出接收到的提取内容的长度,接着对接收到的提取内容进行分割;
Key值分割模块根据RSS寄存器模块中Hash Key寄存器的配置,获得相应的Key值,并对Key值进行分割;
提取内容分割模块和Key值分割模块分别将分割后的结果按照一一对应的关系送入字节Hash计算模块8,完成一个字节的Hash结果计算;字节Hash计算模块共有36个,按照Toeplitz函数的算法完成对8位提取内容的计算,完成计算后将32位计算结果输送给结果输出模块;
结果输出模块接收来自36个字节Hash计算模块的计算结果,并对36组32位的结果进行异或运算,输出32位的最终结果。
本发明进一步的改进在于,提取内容分割模块分割的方式为按照从数据最高位到最低位的方向,从数据的最高位开始,每连续8位分为一组,然后将分好的各组数据并行输出;对于带TCP头的IPv4数据帧的提取内容,其分组数为12组;对于IPv4数据帧的提取内容,其分组数为8组;对于带TCP头的IPv6数据帧的提取内容,其分组数为36组;对于IPv6数据帧的提取内容,其分组数为32组。
本发明进一步的改进在于,提取内容分割模块最多支持36组数据的并行输出,对于分割组数不到36组的情况,指定剩余的组的输出值为全零。
本发明进一步的改进在于,Key值分割模块分割的方式为按照从Key值最高位到最低位的方向,从Key值的最高位开始,每间隔8位向后取40位Key值组成一组,然后将分好的各组Key值并行输出。
本发明进一步的改进在于,间接表查询模块根据接收到的Hash结果重组模块输出的结果决定由哪个CPU核来对该报文进行处理的具体的工作过程是:间接表查询模块根据输入的7位结果,进行相应的地址转换,然后用转换后的地址从RSS寄存器模块5中读出间接表信息并输出给RQP模块;从间接表中读出的信息是一组4位的数据,其值分别对应CPU0~CPU15,RQP模块根据4位数据的结果将数据帧分配给对应的CPU核处理。
与现有技术相比,本发明具有的有益效果:本发明通过主动地计算反向提取内容的Hash结果,使用由正向提取内容和反向提取内容的Hash结果产生的最终结果来作为CPU核的判决依据。因为使用该方法后,TCP会话中的上行数据和下行数据得到的Hash结果相同,因此会指向同一个CPU核,即实现了将不同方向但却属于同一个TCP/IP链接的报文分配到相同的CPU核上进行处理,克服了现有RSS技术的不足,实现了对现有RSS的兼容。
本发明有效解决了双向TCP报文与CPU核的唯一绑定问题,即实现了将不同方向但却属于同一个TCP/IP链接的报文分配到相同的CPU核上进行处理,从而提高了CPU对网络数据的处理能力,避免了多核之间跨线程访问的问题,动态地调节了数据接收时的性能,使网络吞吐达到最高状态。
通过对该发明进行功能仿真,并与现有的RSS方法进行比较。在测试环境中,随机产生1000组双向的TCP报文,并分别采用现有的RSS电路和该发明提出的对称性RSS电路对这些报文进行Hash值的计算。其中,Hash类型、Hash Key以及间接表信息均相同。仿真结果表明,对称性RSS电路对于同一个TCP链接,无论方向如何,计算出的Hash结果值均相同。同时,为了与现有RSS比较,对两种电路的计算结果分别计算了变化系数。变化系数越接近零就表明CPU核间的负载越平衡。分别在CPU核数为4、8、12、16的情况下对Hash计算结果进行了变化系数的计算。计算结果表明,在CPU核数为4、12、16的情况下,对称性RSS的变化系数均略高于现有RSS的变化系数;在CPU核数为8的情况下,对称性RSS的变化系数均低于现有RSS的变化系数。但在四种情况下,对称性RSS的变化系数和现有RSS的变化系数均低于0.008,属于同一个数量级。因此,对称性RSS可以保持与现有RSS相同数量级的负载平衡。
附图说明
图1为对称性RSS电路总体结构框图。
图2为Hash函数计算模块的结构框图。
图中,1为TCP/IP头提取模块,2为Hash函数计算模块,3为Hash结果重组模块,4为间接表查询模块,5为RSS寄存器模块,6为提取内容分割模块,7为Key值分割模块,8为字节Hash计算模块,9为结果输出模块。
具体实施方式
下面结合附图对本发明进行详细说明。
本发明的总体结构框图如图1所示。其中,虚线内部结构为本发明所提出的对称性RSS电路结构,虚线外部为与其连接的网络控制器中的其它模块,其中MAC模块为媒体接入控制模块,负责完成数据帧的封装、解封、发送和接收功能,RQP(Receive QueuePlacement)模块为接收队列分配模块,将数据帧分配到不同的接收队列中,并由不同的CPU核对其进行处理。
参见图1,包括TCP/IP头提取模块1、Hash函数计算模块2、Hash结果重组模块3、间接表查询模块4和用于存储配置信息的RSS寄存器模块5;TCP/IP头提取模块1连接有MAC模块10,间接表查询模块4连接有RQP模块11;
TCP/IP头提取模块1主要功能是根据RSS寄存器模块5中Hash类型寄存器的配置,对从MAC接收到的数据帧分别进行TCP/IP头和反向的TCP/IP头的提取,并将提取结果分别发送到Hash函数计算模块。与现有RSS技术一致,该模块支持4种Hash类型的TCP/IP头提取,分别为IPv4、带TCP头的IPv4、IPv6以及带TCP头的IPv6。不同之处是该模块除了对数据帧的TCP/IP头进行提取,还需要对反向的TCP/IP头进行提取。反向提取的规则是将源IP地址和目的IP地址以及源端口地址和目的端口地址分别进行交换。针对支持的4种Hash类型,下面给出具体的提取方式:
(1)带TCP头的IPv4帧
正向提取内容={源IPv4地址,目的IPv4地址,源端口地址,目的端口地址};
反向提取内容={目的IPv4地址,源IPv4地址,目的端口地址,源端口地址}。
(2)IPv4帧
正向提取内容={源IPv4地址,目的IPv4地址};
反向提取内容={目的IPv4地址,源IPv4地址}。
(3)带TCP头的IPv6帧
正向提取内容={源IPv6地址,目的IPv6地址,源端口地址,目的端口地址};反向提取内
容={目的IPv6地址,源IPv6地址,目的端口地址,源端口地址}。
(4)IPv6帧
正向提取内容={源IPv6地址,目的IPv6地址};
反向提取内容={目的IPv6地址,源IPv6地址}。
因为IPv4地址为32位,IPv6地址为128位,而端口地址均为16位,所以针对4种不同的Hash类型,其提取内容长度也不相同。具体说来,对于带TCP头的IPv4的数据帧和IPv4的数据帧,其提取内容长度分别为12bytes和8bytes;对于带TCP头的IPv6数据帧和IPv6数据帧的提取内容长度分别为36bytes和32bytes。
参见图2,Hash函数计算模块2主要功能是完成对提取内容的Hash结果计算,包括对正向提取内容的计算和反向提取内容的计算。该模块主要由2个提取内容分割模块、2个Key值分割模块、72个字节Hash计算模块以及2个结果输出模块构成,其结构框图如图2所示。
该模块由两套功能相同的计算结构组成,分别对TCP/IP头提取模块送来的正向提取内容和反向提取内容进行Hash结果计算。RSS技术中的Hash计算采用Toeplitz函数。下面详细地介绍该模块中的一套计算结构是如何实现Hash计算的。
首先,提取内容分割模块6根据RSS寄存器模块5中Hash类型寄存器的配置,判断出接收到的提取内容的长度,接着对接收到的提取内容进行分割。分割的方式为按照从数据最高位到最低位的方向,从数据的最高位开始,每连续8位分为一组,然后将分好的各组数据并行输出。因为4种类型的提取内容长度不同,所以分组数也不相同。具体说来,对于带TCP头的IPv4数据帧的提取内容,其分组数为12组;对于IPv4数据帧的提取内容,其分组数为8组;对于带TCP头的IPv6数据帧的提取内容,其分组数为36组;对于IPv6数据帧的提取内容,其分组数为32组。
提取内容分割模块6最多支持36组数据的并行输出,对于分割组数不到36组的情况,指定剩余的组的输出值为全零。
同时,Key值分割模块7根据RSS寄存器模块中Hash Key寄存器的配置,获得相应的Key值,并对Key值进行分割。分割的方式为按照从Key值最高位到最低位的方向,从Key值的最高位开始,每间隔8位向后取40位Key值组成一组,然后将分好的各组Key值并行输出。
为了更准确、更清楚的描述Key值的分割方法和思想,下面以Key值为320位为例给出分割结果。当Key值为320位时(最高位在最左边),其各组分割结果为Key[319:279],Key[311:271],Key[303:263],Key[295:255],……,Key[48:8],Key[40:0]。对于带TCP头的IPv6数据帧,Key值有320位,对于带TCP头的IPv4数据帧,Key值有128位。因此Key值分割模块也需要根据Hash类型寄存器的配置,读取出相应的Key值。Key值分割模块最多支持36组分割结果的并行输出。对于IPv6的320位Key值来说,按照上述分割方法,正好分割为36组;然而对于IPv4的128位的Key值,按照上述分割方法只能分割出11组。因此,对于分割组数不到36组的情况,指定剩余组的输出值为全零。
提取内容分割模块6和Key值分割模块7分别将分割后的结果按照一一对应的关系送入字节Hash计算模块8,完成一个字节的Hash结果计算。一套计算结构中字节Hash计算模块8共有36个,按照Toeplitz函数的算法完成对8位提取内容的计算。该模块由纯硬件电路实现,完成计算后将32位计算结果输送给结果输出模块9。
结果输出模块9接收来自36个字节Hash计算模块的计算结果,并对36组32位的结果进行异或运算,输出32位的最终结果。
至此,Hash结果计算过程结束。
Hash函数计算模块2通过硬件实现了Toeplitz函数的算法,并且通过对算法的分析,采用分割计算的方式,实现了并行的处理,提高了计算的速率。除此之外,对于分割组数不到36组的情况,指定剩余组的输出值为全零,有效的避免了设计中使能信号的产生,因为其计算结果必定为全零,因此在结果输出模块中,该结果对最终的结果没有产生任何影响。
Hash结果重组模块3主要功能是完成对正向和反向提取内容的Hash结果的再次计算,并输出重组后的结果。Hash结果重组模块会分别接收到正向提取内容和反向提取内容的Hash结果,对两个结果进行重组的方式为:对两个结果做算术加法运算,取运算结果的低7位作为重组后的输出结果。
间接表查询模块4主要功能是根据输入的7位结果决定由哪个CPU核来对该报文进行处理。
具体的工作过程是:间接表查询模块根据输入的7位结果,进行相应的地址转换,然后用转换后的地址从RSS寄存器模块中读出间接表信息并输出给RQP(Receive QueuePlacement)模块。从间接表中读出的信息是一组4位的数据,其值分别对应CPU0~CPU15,因此该RSS电路最多支持16个CPU核的系统。RQP模块根据4位数据的结果将数据帧分配给对应的CPU核处理。
RSS寄存器模块5主要存储整个对称性RSS电路的配置信息。主要的配置信息包括Hash类型、Hash Key和间接表。该模块上电后由主机驱动程序进行配置,并且在实时工作中,驱动程序也可以根据需求动态地修改相应的寄存器信息,从而达到动态的负载平衡。
本发明的核心思想是通过主动地计算反向提取内容的Hash结果,使用由正向和反向的Hash结果产生的最终结果来作为CPU核的判决依据。因为使用该方法后,TCP会话中的上行数据和下行数据得到的结果相同,因此会指向同一个CPU核,即实现了将不同方向但却属于同一个TCP/IP链接的报文分配到相同的CPU核上进行处理。
下面对图1中模块进行详细说明。
TCP/IP头提取模块1,其数量为1,主要功能是根据RSS寄存器模块中Hash类型寄存器的配置,对从MAC接收到的数据帧分别进行TCP/IP头和反向的TCP/IP头的提取,并将提取结果分别发送到Hash函数计算模块。
Hash函数计算模块2,其数量为1,主要功能是完成对提取内容的Hash结果计算,包括对正向提取内容的计算和反向提取内容的计算。
Hash结果重组模块3,其数量为1,主要功能是完成对正向和反向提取内容的Hash结果的再次计算,并输出重组后的结果。
间接表查询模块4,其数量为1,主要功能是根据输入的7位结果决定由哪个CPU核来对该报文进行处理。
RSS寄存器模块5,其数量为1,主要存储整个对称性RSS电路的配置信息。
图2为Hash函数计算模块的结构框图。
下面对图2中模块进行详细说明。
提取内容分割模块6,其数量为2,主要功能是根据RSS寄存器模块中Hash类型寄存器的配置,判断出接收到的提取内容的长度,接着对接收到的提取内容进行分割。
Key值分割模块7,其数量为2,主要功能是根据RSS寄存器模块中Hash Key寄存器的配置,获得相应的Key值,并对Key值进行分割。
字节Hash计算模块8,其数量为72,主要功能是完成一个字节的Hash结果计算。
结果输出模块9,其数量为2,主要功能是接收来自36个字节Hash计算模块的计算结果,并对36组32位的结果进行异或运算,输出32位的最终结果。
本发明可用于具有RSS功能的网络控制器中,特别适用于对TCP会话敏感的、高性能网络数据处理系统中。
在网络安全领域,如网络入侵检测系统和硬件防火墙系统中,为了确保网络的安全和可靠,都需要对整个网络的数据进行监测和分析。因为TCP会话是双向的,因此网络入侵检测系统和硬件防火墙系统会接收到双向的TCP/IP报文。这就需要其对TCP会话具有非常高的处理能力,但是现有的RSS不能够保证属于同一个TCP会话的上行数据和下行数据都在同一个CPU核中处理,这样一来就会产生多核之间跨线程访问等问题,从而增大了CPU的开销,降低了系统的性能。
采用本发明提出的对称性RSS电路,可对现有的RSS技术做完全的兼容,在网络控制器的设计中可以完整地替代现有的RSS电路,同时实现将不同方向但却属于同一个TCP/IP链接的报文分配到相同的CPU核上进行处理的功能。
根据上述方案,用Verilog语言对本发明中各个模块的逻辑设计进行描述,并将其与网络控制器中的其它模块集成在一起,进行系统级的验证。验证结果表明,本发明实现了设计功能,且性能满足预期。
通过对该发明进行功能仿真,并与现有的RSS方法进行比较。在测试环境中,随机产生1000组双向的TCP报文,并分别采用现有的RSS电路和该发明提出的对称性RSS电路对这些报文进行Hash值的计算。其中,Hash类型、Hash Key以及间接表信息均相同。仿真结果表明,对称性RSS电路对于同一个TCP链接,无论方向如何,计算出的Hash结果值均相同。同时,为了与现有RSS比较,对两种电路的计算结果分别计算了变化系数。变化系数越接近零就表明CPU核间的负载越平衡。分别在CPU核数为4、8、12、16的情况下对Hash计算结果进行了变化系数的计算。计算结果表明,在CPU核数为4、12、16的情况下,对称性RSS的变化系数均略高于现有RSS的变化系数;在CPU核数为8的情况下,对称性RSS的变化系数均低于现有RSS的变化系数。但在四种情况下,对称性RSS的变化系数和现有RSS的变化系数均低于0.008,属于同一个数量级。因此,对称性RSS可以保持与现有RSS相同数量级的负载平衡。

Claims (8)

1.一种面向TCP会话的对称性RSS电路,其特征在于,包括TCP/IP头提取模块(1)、Hash函数计算模块(2)、Hash结果重组模块(3)、间接表查询模块(4)和用于存储配置信息的接收端调控(RSS)寄存器模块(5);TCP/IP头提取模块(1)连接有MAC模块(10),间接表查询模块(4)连接有接收队列分配(RQP)模块(11);
TCP/IP头提取模块(1)用于根据RSS寄存器模块(5)中Hash类型寄存器的配置,对从MAC模块接收到的数据帧分别进行TCP/IP头和反向的TCP/IP头的提取,并将提取结果分别发送到Hash函数计算模块(2);
Hash函数计算模块(2)用于完成对接收到的TCP/IP头提取模块1的提取结果的Hash结果计算,包括对正向提取内容的计算和反向提取内容的计算;并将计算结果发送到Hash结果重组模块(3);
Hash函数计算模块(2)由两套功能相同的计算结构组成,分别对TCP/IP头提取模块送来的正向提取内容和反向提取内容进行Hash结果计算,每套计算结构包括由1个提取内容分割模块(6)、1个Key值分割模块(7)、字节Hash计算模块(8)以及1个结果输出模块(9)构成;
提取内容分割模块(6)根据RSS寄存器模块(5)中Hash类型寄存器的配置,判断出接收到的提取内容的长度,接着对接收到的提取内容进行分割;
Key值分割模块(7)根据RSS寄存器模块(5)中Hash Key寄存器的配置,获得相应的Key值,并对Key值进行分割;
提取内容分割模块(6)和Key值分割模块(7)分别将分割后的结果按照一一对应的关系送入字节Hash计算模块8,完成一个字节的Hash结果计算;字节Hash计算模块(8)共有36个,按照Toeplitz函数的算法完成对8位提取内容的计算,完成计算后将32位计算结果输送给结果输出模块(9);
结果输出模块(9)接收来自36个字节Hash计算模块(8)的计算结果,并对36组32位的结果进行异或运算,输出32位的最终结果;
Hash结果重组模块(3)用于接收到正向提取内容和反向提取内容的Hash结果,并对两个结果进行重组,重组的方式为:对两个结果做算术加法运算,取运算结果的低7位作为重组后的输出结果,并发送到间接表查询模块(4);
间接表查询模块(4)用于根据接收到的Hash结果重组模块(3)输出的结果决定由哪个CPU核来对报文进行处理。
2.根据权利要求1所述的一种面向TCP会话的对称性RSS电路,其特征在于,RSS寄存器模块(5)存储的配置信息包括Hash类型、Hash Key和间接表。
3.根据权利要求1所述的一种面向TCP会话的对称性RSS电路,其特征在于,反向的TCP/IP头的提取的规则是将源IP地址和目的IP地址以及源端口地址和目的端口地址分别进行交换。
4.根据权利要求3所述的一种面向TCP会话的对称性RSS电路,其特征在于,针对4种Hash类型,具体的提取方式如下:
(1)带TCP头的IPv4帧
正向提取内容={源IPv4地址,目的IPv4地址,源端口地址,目的端口地址};
反向提取内容={目的IPv4地址,源IPv4地址,目的端口地址,源端口地址};
(2)IPv4帧
正向提取内容={源IPv4地址,目的IPv4地址};
反向提取内容={目的IPv4地址,源IPv4地址};
(3)带TCP头的IPv6帧
正向提取内容={源IPv6地址,目的IPv6地址,源端口地址,目的端口地址};
反向提取内容={目的IPv6地址,源IPv6地址,目的端口地址,源端口地址};
(4)IPv6帧
正向提取内容={源IPv6地址,目的IPv6地址};
反向提取内容={目的IPv6地址,源IPv6地址};
对于带TCP头的IPv4的数据帧和IPv4的数据帧,其提取内容长度分别为12bytes和8bytes;对于带TCP头的IPv6数据帧和IPv6数据帧的提取内容长度分别为36bytes和32bytes。
5.根据权利要求1所述的一种面向TCP会话的对称性RSS电路,其特征在于,提取内容分割模块(6)分割的方式为按照从数据最高位到最低位的方向,从数据的最高位开始,每连续8位分为一组,然后将分好的各组数据并行输出;对于带TCP头的IPv4数据帧的提取内容,其分组数为12组;对于IPv4数据帧的提取内容,其分组数为8组;对于带TCP头的IPv6数据帧的提取内容,其分组数为36组;对于IPv6数据帧的提取内容,其分组数为32组。
6.根据权利要求5所述的一种面向TCP会话的对称性RSS电路,其特征在于,提取内容分割模块(6)最多支持36组数据的并行输出,对于分割组数不到36组的情况,指定剩余的组的输出值为全零。
7.根据权利要求1所述的一种面向TCP会话的对称性RSS电路,其特征在于,Key值分割模块(7)分割的方式为按照从Key值最高位到最低位的方向,从Key值的最高位开始,每间隔8位向后取40位Key值组成一组,然后将分好的各组Key值并行输出。
8.根据权利要求1所述的一种面向TCP会话的对称性RSS电路,其特征在于,间接表查询模块(4)根据接收到的Hash结果重组模块(3)输出的结果决定由哪个CPU核来对报文进行处理的具体的工作过程是:间接表查询模块(4)根据输入的7位结果,进行相应的地址转换,然后用转换后的地址从RSS寄存器模块5中读出间接表信息并输出给RQP模块;从间接表中读出的信息是一组4位的数据,其值分别对应CPU0~CPU15,RQP模块根据4位数据的结果将数据帧分配给对应的CPU核处理。
CN201610394135.XA 2016-06-03 2016-06-03 一种面向tcp会话的对称性rss电路 Active CN105915462B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610394135.XA CN105915462B (zh) 2016-06-03 2016-06-03 一种面向tcp会话的对称性rss电路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610394135.XA CN105915462B (zh) 2016-06-03 2016-06-03 一种面向tcp会话的对称性rss电路

Publications (2)

Publication Number Publication Date
CN105915462A CN105915462A (zh) 2016-08-31
CN105915462B true CN105915462B (zh) 2018-08-31

Family

ID=56749752

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610394135.XA Active CN105915462B (zh) 2016-06-03 2016-06-03 一种面向tcp会话的对称性rss电路

Country Status (1)

Country Link
CN (1) CN105915462B (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109218229B (zh) * 2017-06-30 2020-12-01 华为技术有限公司 一种报文处理方法、网络设备及存储介质
CN107911349A (zh) * 2017-11-01 2018-04-13 西安微电子技术研究所 一种面向UDP传输的对称性Receive‑side Scaling电路
CN107832149B (zh) * 2017-11-01 2020-05-12 西安微电子技术研究所 一种针对多核处理器动态分组管理的Receive-side Scaling电路
CN109905898B (zh) * 2017-12-07 2022-10-11 北京中科晶上科技股份有限公司 基带处理资源分配方法
CN108111530B (zh) * 2017-12-30 2020-11-13 世纪网通成都科技有限公司 用于侦测voip通话状态的计算机可读存储介质和应用该介质的侦测系统
CN110177047B (zh) * 2019-05-27 2022-03-04 北京字节跳动网络技术有限公司 报文发送方法、装置、电子设备和计算机可读存储介质
CN110912832A (zh) * 2019-10-15 2020-03-24 深圳市恒扬数据股份有限公司 流量负载均衡的处理方法、装置、电子设备及存储介质
CN111031065B (zh) * 2019-12-25 2022-02-11 东软集团股份有限公司 一种文件传输方法、系统、客户端及防火墙
CN113098794B (zh) * 2021-03-30 2022-04-05 郑州信大捷安信息技术股份有限公司 利用二次分流实现隧道报文对称rss处理的方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102483707A (zh) * 2009-06-22 2012-05-30 思杰系统有限公司 在负载平衡的多核环境中保持源ip的系统和方法
CN102549984A (zh) * 2009-05-05 2012-07-04 思杰系统有限公司 在多核架构中分组引导的系统和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102549984A (zh) * 2009-05-05 2012-07-04 思杰系统有限公司 在多核架构中分组引导的系统和方法
CN102483707A (zh) * 2009-06-22 2012-05-30 思杰系统有限公司 在负载平衡的多核环境中保持源ip的系统和方法

Also Published As

Publication number Publication date
CN105915462A (zh) 2016-08-31

Similar Documents

Publication Publication Date Title
CN105915462B (zh) 一种面向tcp会话的对称性rss电路
US10944660B2 (en) Managing congestion in a network
Caulfield et al. A cloud-scale acceleration architecture
Agrawal et al. Intel tofino2–a 12.9 tbps p4-programmable ethernet switch
CN113849452A (zh) 堆叠管芯网络接口控制器电路
US11909642B2 (en) Offload of acknowledgements to a network device
US20210328930A1 (en) Predictive queue depth
CN116018790A (zh) 基于接收方的精密拥塞控制
CN107911349A (zh) 一种面向UDP传输的对称性Receive‑side Scaling电路
US9900090B1 (en) Inter-packet interval prediction learning algorithm
CN103139093B (zh) 基于fpga的高速网络数据流负载均衡调度方法
WO2020181977A1 (zh) 具有多个异构网络接口端口的存储控制器的系统、方法和装置
US20220078119A1 (en) Network interface device with flow control capability
CN107832149B (zh) 一种针对多核处理器动态分组管理的Receive-side Scaling电路
US20220124035A1 (en) Switch-originated congestion messages
US20220311711A1 (en) Congestion control based on network telemetry
US20240195749A1 (en) Path selection for packet transmission
Choi et al. Accelerating memcached on aws cloud fpgas
US20190207853A1 (en) Selection of inputs for lookup operations
CN101442490A (zh) 流量负载均衡处理方法
US9344384B2 (en) Inter-packet interval prediction operating algorithm
US20220278946A1 (en) Programmable packet processing pipeline with offload circuitry
CN112995245B (zh) 一种基于fpga的可配置负载均衡系统与方法
Su et al. Technology trends in large-scale high-efficiency network computing
Biswas et al. Implementing a partial group based routing for homogeneous fat tree network on chip architecture

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant