[发明专利]高速网络环境中提高TCP并发连接速度的方法有效
申请号: | 201110447305.3 | 申请日: | 2011-12-28 |
公开(公告)号: | CN102420771A | 公开(公告)日: | 2012-04-18 |
发明(设计)人: | 张凯;王俊昌;华蓓 | 申请(专利权)人: | 中国科学技术大学苏州研究院 |
主分类号: | H04L12/56 | 分类号: | H04L12/56;H04L29/06 |
代理公司: | 苏州创元专利商标事务所有限公司 32103 | 代理人: | 范晴 |
地址: | 215123 江苏省苏州*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 高速 网络 环境 提高 tcp 并发 连接 速度 方法 | ||
技术领域
本发明涉及网络数据处理领域,具体涉及一种高速网络环境中提高TCP并发连接速度的方法。
背景技术
TCP连接管理是TCP/IP协议栈处理的重要内容,其使用一个TCP连接表保存当前所有的TCP连接状态及信息。当新的TCP连接建立时,需要在TCP连接表中新建表项,当TCP连接关闭后,需要把该连接从表中删除。同时在处理同一个连接的每一个包的时候,需根据其四元组(源IP地址,目的IP地址,源端口地址,目的端口地址)查找连接表。
网络上的服务器、防火墙、网关等设备花费了大量的时间进行协议处理,然而随着网络流量的快速增长,现在主干网络的速度已达到10Gbps,而且同时的并发连接数也已达到了百万级别。能够处理百万级别的连接数已经成为主干网络设备的一项重要的能力,如防火墙,四层网关,等等。然而,随着连接数目的增多,现有的软件方法在维护如此多的连接时存在着巨大的开销,硬件方法也由于其高昂的造价难以实施。
在当前的软件协议栈实现中,普遍采用了哈希表的方法以管理连接数。然而,TCB(transmit control block,传输控制模块)是一个280-1300bytes大小的每个连接的结构体,TCP/IP协议栈用其来存储TCP连接的状态并在每次包处理的关键路径中都会访问。TCB用于记录tcp协议运行过程中的变量。对于有多个连接的tcp,每个连接都有一个tcb。tcb结构的定义包括这个连接使用的源端口、目的端口、目的ip、序号、应答序号、对方窗口大小、已方窗口大小、tcp状态、top输入/输出队列、应用层输出队列、tcp的重传有关变量。
当网络中存在大量连接数时,存储TCB所需的空间开销将会变得十分巨大(280M-1.3G,若有1百万并发连接),导致其查找和管理的速度变得十分缓慢。从而会引入许多复杂问题并提出了新的挑战:由于TCB是在关键路径中被访问,若TCB访问延迟过大会阻碍协议栈的处理速度,因此TCP/IP协议栈处理的速度在很大程度上取决于TCB访问的速度。
而由于在一个10Gbps的网络中,一个64byte的包的处理时间应该被限制在67ns。而一次访存的时间就在50ns左右,因此在10Gbps高速网络环境中管理如此多的连接就变成了十分困难甚至不可能的事情。如果TCB按照哈希表的方式组织,那么在查找的遍历冲突链表过程中,在找到真正要找的TCB之前的每一步都会访问一个TCB,也即会造成一次访存。由于当连接数增多后,冲突的链也会相应变长,因此这也是TCP阶段开销变大的根本原因。为了能够在大规模并发连接下依然达到线速,优化TCB的组织方式以减少访存次数就显得十分重要。本发明因此而来。
发明内容
本发明目的在于提供一种高速网络环境中提高TCP并发连接速度的方法,解决了在高速网络环境中大量TCP连接的速度瓶颈问题。
为了解决现有技术中的这些问题,本发明提供的技术方案是:
一种高速网络环境中提高TCP并发连接速度的方法,其特征在于所述方法包括以下步骤:
(1)在内存或高速缓存cache中构建查找表,所述查找表存储根据已有TCP连接的源IP地址、目的IP地址、源端口地址、目的端口地址计算得到的签名值,并实现TCB与查找表中的相应签名值形成关联;
(2)当进行TCP连接的创建、删除时,先根据TCP连接的源IP地址、目的IP地址、源端口地址、目的端口地址计算得到该TCP连接的签名值,通过该TCP连接的签名值在查找表中进行查找,根据查找结果进行TCP连接的创建、删除操作。
优选的,所述方法步骤(1)中所述TCB通过系统预先分配能处理的最大TCB的数组;所述数组中TCB与查找表中的相应签名值形成关联。
优选的,所述方法步骤(1)中查找表的数据结构为哈希表。
优选的,所述方法步骤(1)中所述查找表空间大小确定,且内存或高速缓存cache中还构建用于解决哈希项冲突的冲突链表。
优选的,所述方法步骤(2)中所述查找步骤包括:
A1)将需要查找的TCP连接的源IP地址、目的IP地址、源端口地址、目的端口地址计算得到该TCP连接签名值;
A2)将该TCP连接签名值与查找表哈希项中的所有签名进行比较;当没有找到匹配的签名时,将该TCP连接签名值与冲突链表中哈希项中的所有签名进行比较;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学技术大学苏州研究院,未经中国科学技术大学苏州研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110447305.3/2.html,转载请声明来源钻瓜专利网。