发明内容
针对相关技术中存在的TCP连接管理大量占用CPU资源、管理效率低、以及管理难度大的问题,本发明的目的在于提供一种传输控制协议连接的管理机制,以解决上述问题中的至少之一。
为实现上述目的,根据本发明的一个方面,提供了一种传输控制协议连接的管理方法。
根据本发明的传输控制协议连接的管理方法包括:分发模块根据报文的连接特征信息得到报文的哈希值;分发模块根据预设对应关系确定与哈希值对应的连接表项,并确定连接表项所属的DDR bank;分发模块向与DDR bank对应的状态表维护模块发送查找请求;响应于查找请求,状态表维护模块向DDR控制器发送维护请求以维护连接状态表,并根据DDR控制器返回的维护结果进行处理。
其中,分发模块确定与哈希值对应的连接表项的处理具体可以包括:分发模块根据预设对应关系以及哈希值的特定位确定连接表项。可选地,上述特定位为以下之一:哈希值最高的至少一位、哈希值中部的至少一位、哈希值最低的至少一位。
此外,状态表维护模块根据维护结果进行的处理可以包括以下之一:将报文转发给主机接口、将报文转发给网络接口并由网卡发送报文、根据维护结果产生新的报文并通过网络接口发送、直接丢弃报文。
优选地,状态表维护模块可以通过先入先出的方式将报文转发给主机接口。
优选地,上述连接特征信息可以包括以下之一:一元组信息、二元组信息、三元组信息、四元组信息、五元组信息。
可选地,上述维护请求可以包括以下至少之一:连接建立请求、连接删除请求、连接更新请求。
根据本发明的另一方面,提供了一种传输控制协议连接的管理装置,该装置设置于网卡侧。
根据本发明的传输控制协议连接的管理装置包括:分发模块,用于根据报文的连接特征信息得到报文的哈希值,根据预设对应关系确定与哈希值对应的连接表项和连接表项所属的DDR bank,并用于向与DDRbank对应的状态表维护模块发送查找请求;至少一个状态表维护模块,被配置为与至少一个DDR bank一一对应,用于响应于来自分发模块的查找请求向DDR控制器发送维护请求,并根据DDR控制器返回的维护结果进行处理;DDR控制器,用于根据维护请求对连接状态表进行维护,并返回维护结果;存储模块,用于存储连接状态表。
其中,分发模块可以用于根据预设对应关系以及哈希值的特定位确定连接表项。
优选地,上述连接特征信息可以包括以下之一:一元组信息、二元组信息、三元组信息、四元组信息、五元组信息。
借助本发明上述至少一个技术方案,通过网卡以硬件的方式实现传输控制协议连接的管理,能够有效提高连接管理的效率和系统处理性能,避免连接管理占用CPU资源的问题,并且能够适应带宽的变化,克服了CPU管理时操作系统协议栈所存在的局限性。
具体实施方式
功能概述
考虑到相关技术中存在的TCP连接管理大量占用CPU资源、管理效率低、以及管理难度大的问题,本发明提出在网卡上采用硬件来专门实现TCP连接管理,即,在网络处理芯片内实现TCP连接的管理,从而避免连接管理占用CPU的资源,克服操作系统协议栈本身不能适应较大网络带宽的局限性,提高整个系统的处理性能。
在实现本发明的过程中,首先需要在网卡上增加DDR内存条存储连接表,配置每个DDR bank的连接表项与哈希值的一一对应关系,并且需要对每个双倍数据速率(Double Data Rate,简称为DDR)bank都配置各自的状态表维护模块,以便进行连接的管理维护。
下面将结合附图详细描述本发明的实施例。
方法实施例
在本实施例中,提供了一种传输控制协议连接的管理方法。
图1是根据本实施例的传输控制协议连接的管理方法的流程图。
如图1所示,根据本实施例的传输控制协议连接的管理方法包括:步骤S102、步骤S104、步骤S106、和步骤S108。
图1中所示的具体处理过程如下:
步骤S102,分发模块(也可以称为dispatch模块)根据报文(例如,可以是收到的网络报文或其他待处理报文)的连接特征信息得到报文的哈希值,该哈希值即可作为连接表的访问地址,优选地,该哈希值可以通过哈希计算得到;并且,在进行哈希计算时,可以将报文的一元组信息(源IP或目的IP)、二元组信息(源IP和目的IP)、三元组信息(源IP、目的IP和协议)、四元组信息(源IP、目的IP、源端口和目的端口)、五元组信息(源IP、目的IP、源端口、目的端口和协议)作为连接特征信息;
步骤S104,分发模块根据预设对应关系(即,哈希值与表项的一一对应关系)确定与得到的哈希值对应的连接表项,并确定该连接表项所属的DDR bank的信息,例如,确定该DDR bank的标识;其中,在预先设置的一一对应关系中,与表项对应的可以是哈希值最高的至少一位,可以是哈希值中部的至少一位,也可以是哈希值最低的至少一位,这样,在分发模块确定与哈希值对应的连接表项时,也需要根据预设对应关系中哈希值的具体位进行匹配,从而正确确定与哈希值对应的表项。具体选择多少位哈希值可以根据DDR内存条的大小来确定,例如,其位数可以是1位、2位、3位、4位、5位等。
步骤S106,分发模块向之前确定的DDR bank所对应的状态表维护模块(也可称为Flow State Table Mngr模块)发送查找请求;
步骤S108,响应于查找请求,状态表维护模块向DDR控制器发送维护请求以维护连接状态表,并根据DDR控制器(也可称为DDR Ctrl)返回的维护结果进行处理,例如,状态表维护模块可以根据维护结果将报文以先入先出的方式(例如,将维护结果写到先入先出队列中)转发给主机接口或其他模块,也可以直接丢弃报文,或者进行其他的处理,例如,可以将报文转发给网络接口并由网卡发送报文、根据维护结果产生新的报文并通过网络接口发送,具体如何根据维护结果确定之后的处理是本领域技术人员所公知的,本文不再详细描述。
优选地,由状态表维护模块发送的维护请求主要可以分为连接建立请求、连接删除请求、连接更新请求,通过这些请求,状态表维护模块4可以要求可以对存储的连接状态表执行诸如读/写的操作,DDR控制器根据维护请求进行相应的操作就能够实现对连接状态表的管理。
通过上述处理,能够借助硬件实现对TCP连接状态表的管理,减少CPU的负担,提高管理的效率和系统的性能。
装置实施例
在本实施例中,提供了一种传输控制协议连接的管理装置,该装置设置于网卡侧,用于实现TCP连接状态表的管理。
图2是根据本实施例的传输控制协议连接的管理装置的框图。
如图2所示,根据本实施例的传输控制协议连接的管理装置包括:分发模块2,多个状态表维护模块4、DDR控制器6、和存储模块8。
应当注意,出于清楚的目的,图2中以层叠的方式示出了多个状态表维护模块,在实际实现过程中,对于每个DDR bank,都应当配置一个与其一一对应的状态表维护模块,每个状态表维护模块均应当连接至分发模块2和DDR控制器6,并且能够输出维护结果,下面将以其中的一个状态表维护模块为例描述根据本发明的传输控制协议连接的管理装置。
图2中所示的各个模块的功能如下:
分发模块2,用于根据报文的连接特征信息(优选地,连接特征信息可以是报文的一元组信息(源IP或目的IP)、二元组信息(源IP和目的IP)、三元组信息(源IP、目的IP和协议)、四元组信息(源IP、目的IP、源端口和目的端口)、五元组信息(源IP、目的IP、源端口、目的端口、和协议)得到报文的哈希值,根据预设对应关系确定与哈希值对应的连接表项和连接表项所属的DDR bank,并用于向与DDR bank对应的状态表维护模块发送查找请求,其中,在预先设置的一一对应关系中,与表项对应的可以是哈希值最高的至少一位,可以是哈希值中部的至少一位,也可以是哈希值最低的至少一位,这样,在分发模块2确定与哈希值对应的连接表项时,也需要根据预设对应关系中哈希值的具体位进行匹配,从而正确确定与哈希值对应的表项;
状态表维护模块4,连接至分发模块2,被配置为与一个DDR bank一一对应,用于响应于来自分发模块2的查找请求向DDR控制器6发送维护请求,并根据DDR控制器6返回的维护结果进行处理,例如,状态表维护模块4可以根据维护结果将报文以先入先出的方式(例如,将维护结果写到状态表先入先出队列中)转发给主机接口或其他模块,也可以直接丢弃报文,或者进行其他的处理,例如,将报文转发给网络接口并由网卡发送报文、根据维护结果产生新的报文并通过网络接口发送,具体如何根据维护结果确定之后的处理是本领域技术人员所公知的,本文不再详细描述;
DDR控制器6,连接至状态表维护模块4,用于根据维护请求对连接状态表进行维护,并返回维护结果,优选地,该DDR控制器可以通过DDR2控制器来实现;
存储模块8,连接至DDR控制器6,用于存储TCP连接状态表,优选地,该存储模块8可以通过DDR2存储器来实现。
优选地,由状态表维护模块4发送的维护请求主要可以分为连接建立请求、连接删除请求、连接更新请求,通过这些请求,状态表维护模块4可以要求对存储模块8存储的连接状态表执行诸如读/写的操作,DDR控制器6根据维护请求进行相应的操作就能够实现对连接状态表的管理。
通过上述装置,能够实现对TCP连接状态表的管理,减少CPU的负担,提高管理的效率和系统的性能。
综上所述,借助本发明上述至少一个技术方案,通过网卡以硬件的方式实现传输控制协议连接的管理,能够有效提高连接管理的效率和系统处理性能,避免连接管理占用CPU资源的问题,并且能够适应带宽的变化,克服了CPU管理时操作系统协议栈所存在的局限性,此外,由于状态表采用hash方式存储和访问,能够有效节省处理的时间。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。