一种面向tcp会话的对称性rss电路的制作方法

文档序号:10555521阅读:441来源:国知局
一种面向tcp会话的对称性rss电路的制作方法
【专利摘要】一种面向TCP会话的对称性RSS电路,包括TCP/IP头提取模块、Hash函数计算模块、Hash结果重组模块、间接表查询模块和用于存储配置信息的RSS寄存器模块;TCP/IP头提取模块连接有MAC模块,间接表查询模块连接有RQP模块;本发明通过主动地计算反向提取内容的Hash结果,使用由正向提取内容和反向提取内容的Hash结果产生的最终结果作为CPU核的判决依据。因为使用该方法后,TCP会话中的上行数据和下行数据得到的Hash结果相同,因此会指向同一个CPU核,即实现了将不同方向但却属于同一个TCP/IP链接的报文分配到相同的CPU核上进行处理,实现了对现有RSS的兼容。
【专利说明】
一种面向TCP会话的对称性RSS电路
技术领域
[0001]本发明属于计算机网络领域,涉及一种网络控制器中的接收端调控机构,尤其适用于网络安全领域的对TCP会话敏感的高性能网络数据处理系统,如网络入侵检测系统和硬件防火墙系统等,具体涉及一种面向TCP会话的对称性RSS电路。
【背景技术】
[0002]目前在主流的以太网控制器中,都使用了Receive-sideScaling(RSS,接收端调控)技术。RSS技术通过对接收到的数据报文进行分析处理,将属于同一个TCP/IP流的数据分配到相同的CPU核上处理,从而在多处理器(多核)系统之间平衡了网络数据吞吐,同时也提高了 CPU对网络数据的处理能力。
[0003]然而在网络安全领域,如网络入侵检测系统和硬件防火墙系统中,为了确保网络的安全和可靠,都需要对整个网络的数据进行监测和分析。因为TCP会话是双向的,因此网络入侵检测系统和硬件防火墙系统会接收到双向的TCP/IP报文。这就需要其对TCP会话具有非常高的处理能力,但是现有的RSS不能够保证属于同一个TCP会话的上行数据和下行数据都在同一个CPU核中处理,这样一来就会产生多核之间跨线程访问等问题,从而增大了(PU的开销,降低了系统的性能。
[0004]—种通过修改RSS算法中的Key值来实现对称的RSS方法(Shinae Woo , ScalableTCP Sess1n 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全为I或全为O时,该方法将失效;2、适用性不强。该方法只针对一种Hash类型,对于其它三种Hash类型并不适用。3、存在潜在的风险。修改HashKey使该方法成为了Toeplitz Hash算法的子集,不能保证Hash结果的唯一"性。
[0005]—种面向多核处理器系统的传输友好的网卡,(Wenji Wu1Phil DeMar1ATransport-Friendly NIC for Multicore/Multiprocessor Systems,2012),通过操作系统软件和网卡硬件电路的配合,在原有的RSS电路基础上,由软件来计算和维护间接表,从而得到数据流-CPU核的对应关系,实现对双向TCP/IP数据的同核处理。该架构存在的主要缺陷是:1、硬件设计相对传统的RSS较为复杂,且需要大量的memory来存储数据流-CPU核的对应关系;2、需要操作系统的支持,需要对操作系统进行一定的修改,风险较高,可移植性较差。
[0006]一种Ethernet Flow Director技术的提出,虽然能够保证属于同一个TCP会话的上行数据和下行数据都在同一个CHJ核中处理,但是其存在TCP报文重排序的问题,无法保障QoS。因此,RSS仍然被广泛地应用在网络控制器设计中。这主要是因为RSS技术相对来说较成熟,且具有很好的软件兼容性。

【发明内容】

[0007]本发明为了有效解决在对TCP会话敏感的处理系统中TCP上行和下行数据不在同一个CPU核中处理的问题,目的在于提出一种面向TCP会话的对称性RSS电路,有效解决双向TCP报文与CPU核的唯一绑定问题,且与现有的RSS兼容,无需软件层面做任何的修改,同时实现了将不同方向但却属于同一个TCP/IP链接的报文分配到相同的CPU核上进行处理。
[0008]为实现上述目的,本发明采用如下的技术方案来实现:
[0009]一种面向TCP会话的对称性RSS电路,包括TCP/IP头提取模块、Hash函数计算模块、Hash结果重组模块、间接表查询模块和用于存储配置信息的RSS寄存器模块;TCP/IP头提取模块连接有MAC模块,间接表查询模块连接有RQP模块;
[0010]TCP/IP头提取模块用于根据RSS寄存器模块中Hash类型寄存器的配置,对从MAC模块接收到的数据帧分别进行TCP/IP头和反向的TCP/IP头的提取,并将提取结果分别发送到Hash函数计算模块;
[0011 ] Hash函数计算模块用于完成对接收到的TCP/IP头提取模块I的提取结果的Hash结果计算,包括对正向提取内容的计算和反向提取内容的计算;并将计算结果发送到Ha s h结果重组模块;
[0012]Hash结果重组模块用于接收到正向提取内容和反向提取内容的Hash结果,并对两个结果进行重组,重组的方式为:对两个结果做算术加法运算,取运算结果的低7位作为重组后的输出结果,并发送到间接表查询模块;
[0013]间接表查询模块用于根据接收到的Hash结果重组模块输出的结果决定由哪个CPU核来对该报文进行处理。
[0014]本发明进一步的改进在于,RSS寄存器模块存储的配置信息包括Hash类型、HashKey和间接表。
[0015]本发明进一步的改进在于,反向的TCP/IP头的提取的规则是将源IP地址和目的IP地址以及源端口地址和目的端口地址分别进行交换。
[0016]本发明进一步的改进在于,针对4种Hash类型,具体的提取方式如下:
[0017](I)带TCP 头的 IPv4 帧
[0018]正向提取内容={源IPv4地址,目的IPv4地址,源端口地址,目的端口地址};
[0019]反向提取内容={目的IPv4地址,源IPv4地址,目的端口地址,源端口地址};
[0020](2)IPv4 帧
[0021]正向提取内容={源IPv4地址,目的IPv4地址};
[0022]反向提取内容={目的IPv4地址,源IPv4地址};
[0023](3)带 TCP 头的 IPv6 帧
[0024]正向提取内容={源IPv6地址,目的IPv6地址,源端口地址,目的端口地址};
[0025]反向提取内容={目的IPv6地址,源IPv6地址,目的端口地址,源端口地址};
[0026](4)IPv6帧
[0027]正向提取内容={源IPv6地址,目的IPv6地址};
[0028]反向提取内容={目的IPv6地址,源IPv6地址};
[0029]对于带TCP头的IPv4的数据帧和IPv4的数据帧,其提取内容长度分别为12bytes和Sbytes ;对于带TCP头的IPv6数据帧和IPv6数据帧的提取内容长度分别为36bytes和32bytes0
[OO3O]本发明进一步的改进在于,Hash函数计算模块由两套功能相同的计算结构组成,分别对TCP/IP头提取模块送来的正向提取内容和反向提取内容进行Hash结果计算,每套计算结构包括由I个提取内容分割模块、I个Key值分割模块、字节Hash计算模块以及I个结果输出模块构成;
[0031 ]提取内容分割模块根据RSS寄存器模块中Hash类型寄存器的配置,判断出接收到的提取内容的长度,接着对接收到的提取内容进行分割;
[0032]Key值分割模块根据RSS寄存器模块中Hash Key寄存器的配置,获得相应的Key值,并对Key值进行分割;
[0033]提取内容分割模块和Key值分割模块分别将分割后的结果按照一一对应的关系送入字节Hash计算模块8,完成一个字节的Hash结果计算;字节Hash计算模块共有36个,按照Toeplitz函数的算法完成对8位提取内容的计算,完成计算后将32位计算结果输送给结果输出模块;
[0034]结果输出模块接收来自36个字节Hash计算模块的计算结果,并对36组32位的结果进行异或运算,输出32位的最终结果。
[0035]本发明进一步的改进在于,提取内容分割模块分割的方式为按照从数据最高位到最低位的方向,从数据的最高位开始,每连续8位分为一组,然后将分好的各组数据并行输出;对于带TCP头的IPv4数据帧的提取内容,其分组数为12组;对于IPv4数据帧的提取内容,其分组数为8组;对于带TCP头的IPv6数据帧的提取内容,其分组数为36组;对于IPv6数据帧的提取内容,其分组数为32组。
[0036]本发明进一步的改进在于,提取内容分割模块最多支持36组数据的并行输出,对于分割组数不到36组的情况,指定剩余的组的输出值为全零。
[0037]本发明进一步的改进在于,Key值分割模块分割的方式为按照从Key值最高位到最低位的方向,从Key值的最高位开始,每间隔8位向后取40位Key值组成一组,然后将分好的各组Key值并行输出。
[0038]本发明进一步的改进在于,间接表查询模块根据接收到的Hash结果重组模块输出的结果决定由哪个CHJ核来对该报文进行处理的具体的工作过程是:间接表查询模块根据输入的7位结果,进行相应的地址转换,然后用转换后的地址从RSS寄存器模块5中读出间接表信息并输出给RQP模块;从间接表中读出的信息是一组4位的数据,其值分别对应CPUO?CPU15,RQP模块根据4位数据的结果将数据帧分配给对应的CPU核处理。
[0039]与现有技术相比,本发明具有的有益效果:本发明通过主动地计算反向提取内容的Hash结果,使用由正向提取内容和反向提取内容的Hash结果产生的最终结果来作为CPU核的判决依据。因为使用该方法后,TCP会话中的上行数据和下行数据得到的Hash结果相同,因此会指向同一个CPU核,即实现了将不同方向但却属于同一个TCP/IP链接的报文分配到相同的(PU核上进行处理,克服了现有RSS技术的不足,实现了对现有RSS的兼容。
[0040]本发明有效解决了双向TCP报文与CPU核的唯一绑定问题,即实现了将不同方向但却属于同一个TCP/IP链接的报文分配到相同的CPU核上进行处理,从而提高了 CPU对网络数据的处理能力,避免了多核之间跨线程访问的问题,动态地调节了数据接收时的性能,使网络吞吐达到最尚状态。
[0041]通过对该发明进行功能仿真,并与现有的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相同数量级的负载平衡。
【附图说明】
[0042]图1为对称性RSS电路总体结构框图。
[0043]图2为Hash函数计算模块的结构框图。
[0044]图中,I为TCP/IP头提取模块,2为Hash函数计算模块,3为Hash结果重组模块,4为间接表查询模块,5为RSS寄存器模块,6为提取内容分割模块,7为Key值分割模块,8为字节Hash计算模块,9为结果输出模块。
【具体实施方式】
[0045]下面结合附图对本发明进行详细说明。
[0046]本发明的总体结构框图如图1所示。其中,虚线内部结构为本发明所提出的对称性RSS电路结构,虚线外部为与其连接的网络控制器中的其它模块,其中MAC模块为媒体接入控制模块,负责完成数据帧的封装、解封、发送和接收功能,RQP(Receive QueuePlacement)模块为接收队列分配模块,将数据帧分配到不同的接收队列中,并由不同的CPU核对其进行处理。
[0047]参见图1,包括TCP/IP头提取模块l、Hash函数计算模块2、Hash结果重组模块3、间接表查询模块4和用于存储配置信息的RSS寄存器模块5; TCP/IP头提取模块I连接有MAC模块10,间接表查询模块4连接有RQP模块11;
[0048]TCP/IP头提取模块I主要功能是根据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类型,下面给出具体的提取方式:
[0049](I)带TCP 头的 IPv4 帧
[0050]正向提取内容={源IPv4地址,目的IPv4地址,源端口地址,目的端口地址};
[0051 ] 反向提取内容={目的IPv4地址,源IPv4地址,目的端口地址,源端口地址}。
[0052](2)IPv4 帧
[0053]正向提取内容={源IPv4地址,目的IPv4地址};
[0054]反向提取内容={目的IPv4地址,源IPv4地址}。
[0055](3)带TCP 头的 IPv6帧
[0056]正向提取内容={源IPv6地址,目的IPv6地址,源端口地址,目的端口地址};反向提取内
[0057]容={目的IPv6地址,源IPv6地址,目的端口地址,源端口地址}。
[0058](4)IPv6帧
[0059]正向提取内容={源IPv6地址,目的IPv6地址};
[0060]反向提取内容={目的IPv6地址,源IPv6地址}。
[0061 ] 因为IPv4地址为32位,IPv6地址为128位,而端口地址均为16位,所以针对4种不同的Hash类型,其提取内容长度也不相同。具体说来,对于带TCP头的IPv4的数据帧和IPv4的数据帧,其提取内容长度分别为12bytes和8bytes;对于带TCP头的IPv6数据帧和IPv6数据帧的提取内容长度分别为36bytes和32bytes。
[0062]参见图2,Hash函数计算模块2主要功能是完成对提取内容的Hash结果计算,包括对正向提取内容的计算和反向提取内容的计算。该模块主要由2个提取内容分割模块、2个Key值分割模块、72个字节Hash计算模块以及2个结果输出模块构成,其结构框图如图2所不O
[0063]该模块由两套功能相同的计算结构组成,分别对TCP/IP头提取模块送来的正向提取内容和反向提取内容进行Hash结果计算。RSS技术中的Hash计算采用Toeplitz函数。下面详细地介绍该模块中的一套计算结构是如何实现Hash计算的。
[0064]首先,提取内容分割模块6根据RSS寄存器模块5中Hash类型寄存器的配置,判断出接收到的提取内容的长度,接着对接收到的提取内容进行分割。分割的方式为按照从数据最高位到最低位的方向,从数据的最高位开始,每连续8位分为一组,然后将分好的各组数据并行输出。因为4种类型的提取内容长度不同,所以分组数也不相同。具体说来,对于带TCP头的IPv4数据帧的提取内容,其分组数为12组;对于IPv4数据帧的提取内容,其分组数为8组;对于带TCP头的IPv6数据帧的提取内容,其分组数为36组;对于IPv6数据帧的提取内容,其分组数为32组。
[0065]提取内容分割模块6最多支持36组数据的并行输出,对于分割组数不到36组的情况,指定剩余的组的输出值为全零。
[0066]同时,Key值分割模块7根据RSS寄存器模块中HashKey寄存器的配置,获得相应的Key值,并对Key值进行分割。分割的方式为按照从Key值最高位到最低位的方向,从Key值的最高位开始,每间隔8位向后取40位Key值组成一组,然后将分好的各组Key值并行输出。
[0067]为了更准确、更清楚的描述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组的情况,指定剩余组的输出值为全零。
[0068]提取内容分割模块6和Key值分割模块7分别将分割后的结果按照一一对应的关系送入字节Hash计算模块8,完成一个字节的Hash结果计算。一套计算结构中字节Hash计算模块8共有36个,按照Toeplitz函数的算法完成对8位提取内容的计算。该模块由纯硬件电路实现,完成计算后将32位计算结果输送给结果输出模块9。
[0069]结果输出模块9接收来自36个字节Hash计算模块的计算结果,并对36组32位的结果进行异或运算,输出32位的最终结果。
[°07°] 至此,Hash结果计算过程结束。
[°071 ] Hash函数计算模块2通过硬件实现了Toeplitz函数的算法,并且通过对算法的分析,采用分割计算的方式,实现了并行的处理,提高了计算的速率。除此之外,对于分割组数不到36组的情况,指定剩余组的输出值为全零,有效的避免了设计中使能信号的产生,因为其计算结果必定为全零,因此在结果输出模块中,该结果对最终的结果没有产生任何影响。
[0072]Hash结果重组模块3主要功能是完成对正向和反向提取内容的Hash结果的再次计算,并输出重组后的结果。Hash结果重组模块会分别接收到正向提取内容和反向提取内容的Hash结果,对两个结果进行重组的方式为:对两个结果做算术加法运算,取运算结果的低7位作为重组后的输出结果。
[0073]间接表查询模块4主要功能是根据输入的7位结果决定由哪个CPU核来对该报文进行处理。
[0074]具体的工作过程是:间接表查询模块根据输入的7位结果,进行相应的地址转换,然后用转换后的地址从RSS寄存器模块中读出间接表信息并输出给RQP(ReCeive QueuePlacement)模块。从间接表中读出的信息是一组4位的数据,其值分别对应CPUO?CPU15,因此该RSS电路最多支持16个CPU核的系统。RQP模块根据4位数据的结果将数据帧分配给对应的CPU核处理。
[0075]RSS寄存器模块5主要存储整个对称性RSS电路的配置信息。主要的配置信息包括Hash类型、Hash Key和间接表。该模块上电后由主机驱动程序进行配置,并且在实时工作中,驱动程序也可以根据需求动态地修改相应的寄存器信息,从而达到动态的负载平衡。
[0076]本发明的核心思想是通过主动地计算反向提取内容的Hash结果,使用由正向和反向的Hash结果产生的最终结果来作为CPU核的判决依据。因为使用该方法后,TCP会话中的上行数据和下行数据得到的结果相同,因此会指向同一个CHJ核,即实现了将不同方向但却属于同一个TCP/IP链接的报文分配到相同的CPU核上进行处理。
[0077]下面对图1中模块进行详细说明。
[0078]TCP/IP头提取模块I,其数量为I,主要功能是根据RSS寄存器模块中Hash类型寄存器的配置,对从MAC接收到的数据帧分别进行TCP/IP头和反向的TCP/IP头的提取,并将提取结果分别发送到Hash函数计算模块。
[0079]Hash函数计算模块2,其数量为I,主要功能是完成对提取内容的Hash结果计算,包括对正向提取内容的计算和反向提取内容的计算。
[0080]Hash结果重组模块3,其数量为I,主要功能是完成对正向和反向提取内容的Hash结果的再次计算,并输出重组后的结果。[0081 ]间接表查询模块4,其数量为I,主要功能是根据输入的7位结果决定由哪个CPU核来对该报文进行处理。
[0082]RSS寄存器模块5,其数量为I,主要存储整个对称性RSS电路的配置信息。
[0083]图2为Hash函数计算模块的结构框图。
[0084]下面对图2中模块进行详细说明。
[0085]提取内容分割模块6,其数量为2,主要功能是根据RSS寄存器模块中Hash类型寄存器的配置,判断出接收到的提取内容的长度,接着对接收到的提取内容进行分割。
[0086]Key值分割模块7,其数量为2,主要功能是根据RSS寄存器模块中Hash Key寄存器的配置,获得相应的Key值,并对Key值进行分割。
[0087]字节Hash计算模块8,其数量为72,主要功能是完成一个字节的Hash结果计算。
[0088]结果输出模块9,其数量为2,主要功能是接收来自36个字节Hash计算模块的计算结果,并对36组32位的结果进行异或运算,输出32位的最终结果。
[0089]本发明可用于具有RSS功能的网络控制器中,特别适用于对TCP会话敏感的、高性能网络数据处理系统中。
[0090]在网络安全领域,如网络入侵检测系统和硬件防火墙系统中,为了确保网络的安全和可靠,都需要对整个网络的数据进行监测和分析。因为TCP会话是双向的,因此网络入侵检测系统和硬件防火墙系统会接收到双向的TCP/IP报文。这就需要其对TCP会话具有非常高的处理能力,但是现有的RSS不能够保证属于同一个TCP会话的上行数据和下行数据都在同一个CPU核中处理,这样一来就会产生多核之间跨线程访问等问题,从而增大了 CPU的开销,降低了系统的性能。
[0091 ]采用本发明提出的对称性RSS电路,可对现有的RSS技术做完全的兼容,在网络控制器的设计中可以完整地替代现有的RSS电路,同时实现将不同方向但却属于同一个TCP/IP链接的报文分配到相同的(PU核上进行处理的功能。
[0092]根据上述方案,用Verilog语言对本发明中各个模块的逻辑设计进行描述,并将其与网络控制器中的其它模块集成在一起,进行系统级的验证。验证结果表明,本发明实现了设计功能,且性能满足预期。
[0093]通过对该发明进行功能仿真,并与现有的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.一种面向TCP会话的对称性RSS电路,其特征在于,包括TCP/IP头提取模块(I),Hash函数计算模块(2)、Hash结果重组模块(3)、间接表查询模块(4)和用于存储配置信息的RSS寄存器模块(5); TCP/IP头提取模块(I)连接有MAC模块(1),间接表查询模块(4)连接有RQP丰旲块(11); TCP/IP头提取模块(I)用于根据RSS寄存器模块(5)中Hash类型寄存器的配置,对从MAC模块接收到的数据帧分别进行TCP/IP头和反向的TCP/IP头的提取,并将提取结果分别发送到Hash函数计算模块(2); Hash函数计算模块(2)用于完成对接收到的TCP/IP头提取模块I的提取结果的Hash结果计算,包括对正向提取内容的计算和反向提取内容的计算;并将计算结果发送到Ha s h结果重组模块(3); Hash结果重组模块(3)用于接收到正向提取内容和反向提取内容的Hash结果,并对两个结果进行重组,重组的方式为:对两个结果做算术加法运算,取运算结果的低7位作为重组后的输出结果,并发送到间接表查询模块(4); 间接表查询模块(4)用于根据接收到的Hash结果重组模块(3)输出的结果决定由哪个(PU核来对该报文进行处理。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和32bytes05.根据权利要求1所述的一种面向TCP会话的对称性RSS电路,其特征在于,Hash函数计算模块(2)由两套功能相同的计算结构组成,分别对TCP/IP头提取模块送来的正向提取内容和反向提取内容进行Hash结果计算,每套计算结构包括由I个提取内容分割模块(6)、1个Key值分割模块(7)、字节Hash计算模块(8)以及I个结果输出模块(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位的最终结果。6.根据权利要求5所述的一种面向TCP会话的对称性RSS电路,其特征在于,提取内容分割模块(6)分割的方式为按照从数据最高位到最低位的方向,从数据的最高位开始,每连续8位分为一组,然后将分好的各组数据并行输出;对于带TCP头的IPv4数据帧的提取内容,其分组数为12组;对于IPv4数据帧的提取内容,其分组数为8组;对于带TCP头的IPv6数据帧的提取内容,其分组数为36组;对于IPv6数据帧的提取内容,其分组数为32组。7.根据权利要求6所述的一种面向TCP会话的对称性RSS电路,其特征在于,提取内容分割模块(6)最多支持36组数据的并行输出,对于分割组数不到36组的情况,指定剩余的组的输出值为全零。8.根据权利要求5所述的一种面向TCP会话的对称性RSS电路,其特征在于,Key值分割模块(7)分割的方式为按照从Key值最高位到最低位的方向,从Key值的最高位开始,每间隔8位向后取40位Key值组成一组,然后将分好的各组Key值并行输出。9.根据权利要求1所述的一种面向TCP会话的对称性RSS电路,其特征在于,间接表查询模块(4)根据接收到的Hash结果重组模块(3)输出的结果决定由哪个CPU核来对该报文进行处理的具体的工作过程是:间接表查询模块(4)根据输入的7位结果,进行相应的地址转换,然后用转换后的地址从RSS寄存器模块5中读出间接表信息并输出给RQP模块;从间接表中读出的信息是一组4位的数据,其值分别对应CPUO?CPU15,RQP模块根据4位数据的结果将数据帧分配给对应的CHJ核处理。
【文档编号】H04L12/801GK105915462SQ201610394135
【公开日】2016年8月31日
【申请日】2016年6月3日
【发明人】李龙飞, 贺占庄, 王剑峰, 史阳春, 冯海强
【申请人】中国航天科技集团公司第九研究院第七七研究所, 中国航天科技集团公司第九研究院第七七一研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1