首页> 中国专利> 一种采用静态链表构造TCP节点池优化TCP连接管理的方法

一种采用静态链表构造TCP节点池优化TCP连接管理的方法

摘要

本发明提供了一种采用静态链表构造TCP节点池优化TCP连接管理的方法。连接管理结构包括TCP并发连接hash表和TCP节点池,在系统开始时一次申请所有TCP节点需要的内存,并串联在一个静态链表中,形成一个TCP节点池,当一个TCP连接建立时,只需要从节点池中取出一个节点挂到hash表中,当一个TCP连接删除时,只需要把该TCP节点从hash表摘下放回节点池,避免系统运行过程中,频繁新建和关闭TCP连接时的内存申请和释放操作,提高TCP连接管理系统的效率。

著录项

  • 公开/公告号CN102098288A

    专利类型发明专利

  • 公开/公告日2011-06-15

    原文格式PDF

  • 申请/专利权人 天津曙光计算机产业有限公司;

    申请/专利号CN201010597787.6

  • 申请日2010-12-17

  • 分类号H04L29/06;

  • 代理机构北京安博达知识产权代理有限公司;

  • 代理人徐国文

  • 地址 300384 天津市西青区华苑产业区(环外)海泰华科大街15号1-3层

  • 入库时间 2023-12-18 02:34:45

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-12-30

    专利权的转移 IPC(主分类):H04L29/06 专利号:ZL2010105977876 登记生效日:20221219 变更事项:专利权人 变更前权利人:曙光信息产业股份有限公司 变更后权利人:曙光网络科技有限公司 变更事项:地址 变更前权利人:300384 天津西青区华苑产业区(环外)海泰华科大街15号1-3层 变更后权利人:430040 湖北省武汉市临空港经济技术开发区五环大道666号(10)

    专利申请权、专利权的转移

  • 2014-01-22

    授权

    授权

  • 2011-09-07

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20101217

    实质审查的生效

  • 2011-06-15

    公开

    公开

说明书

技术领域

本发明涉及网络数据处理领域,具体涉及一种采用静态链表构造TCP节点池优化TCP连接管理的方法。

背景技术

TCP连接管理是TCP协议栈处理的重要内容,需要使用一个并发TCP连接表,保存当前的每个TCP连接,当一个新的TCP连接建立时,需要在TCP连接表中新建一个表项,当一个TCP连接关闭时,需要把该连接表项从并发连接表中删除。

在高速网络监测系统上,往往需要管理百万到千万个并发连接,TCP连接的建立和删除十分频繁,每秒钟内新建和关闭的连接数有时高达几十万个,每次新建和关闭连接都要申请和释放TCP节点结构,也就是说要频繁进行小内存的申请和释放,这会明显降低整个系统的效率。

专利号200710178168.1公开了一种互联网旁路监测系统的TCP连接管理方法,因为每个报文都要查找TCP连接表,所以在有大量的并发的TCP连接的情况下,大容量的TCP连接表必须使用hash表以提高查找效率。因为并发的TCP连接数是动态变化的,所以在hash表初始化时,没有给每个表项分配保存TCP连接信息的数据结构,而是用一个动态申请的TCP节点数据结构来保存TCP连接信息,当一个TCP连接建立或删除时,需要动态申请或释放一个TCP节点的内存。

发明内容

本发明的目的是减少避免新建和关闭TCP连接时的内存申请和释放操作。

一种采用静态链表构造TCP节点池优化TCP连接管理的方法,包括TCP并发连接hash表和TCP节点池,步骤如下:

A、申请内存,初始化保存TCP连接的hash表,每个hash表项指向TCP节点的索引指针设为-1,表示未分配的节点;

B、根据系统需要支持的最大并发TCP连接数,初始化时一次申请下所有TCP节点需要的内存,构造连续的TCP节点数组,每个TCP节点通过一个后继节点的索引指针连接起来,形成一个节点链表;

C、当TCP连接表中分配了一个hash表项,需要新建一个TCP连接时,就从TCP节点池的可用节点链表表头,摘下一个节点,把hash表项的节点索引指针设置为指向该节点的索引;

D、当TCP连接表中需要关闭一个TCP连接时,就把该连接的hash表项指向的TCP节点索引取出,从TCP节点池中找到该节点,把该节点连接到TCP可用节点链表表头,同时把hash表项的节点索引指针设置为-1,表示该表项没有分配TCP节点;

E、退出时释放TCP连接表和节点池内存。

本发明的一种优选技术方案在于:所述TCP并发连接表使用hash表结构实现,每个表项的指向是指向TCP节点结构的指针;所述TCP节点池使用静态链表构造,在内存分配时,节点池是连续的静态内存的TCP节点构成的数组,只在系统初始化时申请一次,节点池中的每个可用的TCP节点通过节点索引连成一个链表,可以动态的从节点池取出或放回。

本发明采用静态链表构造和hash表结合,在系统开始时一次申请所有TCP节点需要的内存,并串联在一个静态链表中,形成一个TCP节点池,当一个TCP连接建立时,只需要从节点池中取出一个节点挂到hash表中,当一个TCP连接删除时,只需要把该TCP节点从hash表摘下放回节点池,避免系统运行过程中,频繁新建和关闭TCP连接时的内存申请和释放操作,提高TCP连接管理系统的效率。

附图说明

图1是本发明连接表和节点池结构图

具体实施方式

本发明的TCP管理功能有两部分构成,一个是TCP并发连接表,另一个是TCP节点池。

连接表使用hash表结构实现,每个表项指向是指向TCP节点结构的指针。

TCP节点池使用静态链表构造,在内存分配时,节点池是连续的静态内存的TCP节点构成的数组,只在系统初始化时申请一次;节点池中的每个可用的TCP节点通过节点索引联成一个链表,可以动态的从节点池取出或放回。

TCP连接管理的方法和过程如下:

(1)系统开始时初始化TCP连接表。

申请内存,初始化保存TCP连接的hash表,每个hash表项指向TCP节点的索引指针设为-1,表示未分配节点。

(2)系统开始时初始化TCP节点池。

根据系统需要支持的最大并发TCP连接数,初始化时一次申请下所有TCP节点需要的内存,构造连续的TCP节点数组,每个TCP节点通过一个后继节点的索引指针连结起来,形成一个可用节点链表。

(3)新建TCP连接时分配TCP节点。

当TCP连接表中分配了一个hash表项,需要新建一个TCP连接时,就从TCP节点池的可用节点链表表头,摘下一个节点,把hash表项的节点索引指针设置为指向该节点的索引。

(4)关闭TCP连接时释放TCP节点。

当TCP连接表中需要关闭一个TCP连接时,就把该连接的hash表项指向的TCP节点索引取出,从TCP节点池中找到该节点,把该节点链接到TCP可用节点链表表头,同时,把hash表项的节点索引指针设置为-1,表示该表项没有分配TCP节点。

(5)系统退出时释放TCP连接表和节点池内存。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号