CN102014005B - 一种利用多级内存查找方式进行tcp连接管理的方法 - Google Patents
一种利用多级内存查找方式进行tcp连接管理的方法 Download PDFInfo
- Publication number
- CN102014005B CN102014005B CN201010598141XA CN201010598141A CN102014005B CN 102014005 B CN102014005 B CN 102014005B CN 201010598141X A CN201010598141X A CN 201010598141XA CN 201010598141 A CN201010598141 A CN 201010598141A CN 102014005 B CN102014005 B CN 102014005B
- Authority
- CN
- China
- Prior art keywords
- tcp
- connection
- linkage record
- buffering area
- order
- 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
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种利用多级内存查找方式进行TCP连接管理的方法,根据TCP连接的四元组建立哈希表,每个表项外挂一个桶结构;在桶项中存放保存该链接状态的缓冲区地址,通过缓冲区地址能够读回连接当前状态信息。本发明用硬件实现连接管理,由于哈希表只记录地址信息,需要的内存空间较小,所以在有限内存空间中可以建立较多哈希表项,有效解决哈希冲突问题。
Description
技术领域
本发明涉及网络安全领域,具体涉及一种利用多级内存查找方式进行TCP连接管理的方法。
背景技术
TCP/IP(Trans control protocol/Internet Protocol)协议栈已成为目前互联网中的实际连接标准。TCP协议是属于TCP/IP协议栈中的传输层,它向应用层提供一种面向连接,可靠的字节流服务。面向连接意味着两个TCP的应用,通常是一个客户和一个服务器之间在彼此交换数据之前必须建立一个TCP连接。当连接建立后,才能在彼此之间交换数据,进行通信。完成通信后,必须释放连接。通过在IP协议头中获得连接双方的IP地址和端口号,可以确定唯一的连接。
为维持和保证一个TCP连接,TCP协议对连接的建立,维护和拆除都有相应的处理规定,并形成标准的TCP状态变迁图及对应状态下的定时器,反应不同时间和情况下的连接状态,用于保证各种正常或异常条件下的都能正常工作。
目前互联网检测系统中存在多级查找方式管理连接的方法,利用片内和片外存储相结合的方式。由于片内存储空间比较小,可维护的并发连接数目比较少。利用片外一级状态表维护连接,有些空间空闲且由于状态存储字节多,会造成存储空间浪费。本系统中第一级结点只记录了第二级存储的地址信息,虽然也会有空闲,但造成的存储空间浪费很少。
发明内容
本发明目的是提供一种基于硬件实现TCP连接状态管理的方法,采用两级内存查找方式动态维护连接信息。
一种利用多级内存查找方式进行TCP连接管理的方法,包含以下步骤:
A、网卡从接收到的TCP报文提取四元组,用四元组在第一级TCP连接记录索引表中查找;
B、根据步骤A中的查找结果以及TCP报文中的flags状态,对第二级该TCP连接记录缓冲区的表项进行新建、删除或修改;
C、第一级连接记录索引表采用链表方式管理,每个节点外挂一个桶结构,桶深可由软件动态配置,最大为24,最大程度缓解哈希冲突问题。第二级采用动态方式进行分配和回收,连接建立时地址取自可用地址池,连接释放时再送回可用地址池,充分利用内存。
D、根据连接记录缓冲区中记录的连接状态,确定需要上传的报文并附加TCP连接信息,包括连接新建标志、数据包标志、连接结束标志和超时结束标志;
E、如果上层软件不关心某个连接,可以通过PCIE控制器下发删除连接命令,管理系统接收命令删除该连接并上传断开该连接的超时包结构,表明成功删除该连接。
本发明的一种优选技术方案在于:第一级为TCP连接记录索引表,存储并发连接记录缓冲区的地址,以及冲突链长度和连接访问先后信息,第二级为TCP连接记录缓冲区,存储TCP连接当前状态和四元组信息。
附图说明
图1是本发明结构图
具体实施方式
1:当前报文为syn包。
根据TCP连接的四元组查找TCP连接索引表,如果没有查到结点并且当前包Syn标志有效,则为该连接建立节点并从可用地址池中取出地址为其分配一块TCP连接记录缓冲区,记录下该连接的四元组和序列号以及当前状态信息。
如果查到结点并且当前包Syn标志有效且四元组一样,则进行重建和替换操作,空连接进行重建,数据连接进行替换,同时更新TCP连接记录缓冲区信息。
如果查到结点并且当前包Syn标志有效且四元组不一样,如果外挂桶没有满,为其分配连接记录缓冲区,如果外挂桶已经满,则进行重建和替换操作,与前述操作相同。
2:当前报文是数据包
利用哈希值进行第一级查找没有找到结点,对该报文做丢弃处理。如果找到结点,根据结点中记录的连接记录缓冲区地址进行第二次查找,得到连接当前状态信息。如果该包导致连接乱序,则提交该包到乱序处理模块并且更新连接记录缓冲区乱序标记为乱序;如果是正序包,更新当前序列号即可,上传数据包;如果是重传报文做上传处理并打上重传标记。
3:当前报文是fin包
通过两级查找得到连接状态信息,如果该包双向乱序则把fin包当做数据报文处理,如果不是双向乱序,如果该报文携带数据,则将数据部分做上传处理。如果另一方向已经断开,则删除第一级中的结点同时回收第二级中的连接记录缓冲区地址,上传fin包;如果另一方向没有断开,则更新连接记录缓冲区中该方向状态为断开状态。
4:当前报文是rst包
通过两级查找得到连接状态信息,如果该包是重传包做丢弃处理,如果是非重传包,不管两个方向处于何种状态,都删除第一级中结点,回收连接记录缓冲区地址,上传rst包。
根据当前报文中的flags标志,建立、更新和删除连接记录缓冲区,上传相应标志报文。
Claims (2)
1.一种利用多级内存查找方式进行TCP连接管理的方法,其特征在于:包含以下步骤:
A、网卡从接收到的TCP报文提取四元组,用四元组在第一级TCP连接记录索引表中查找;
B、根据步骤A中的查找结果以及TCP报文中的flags状态,对第二级该TCP连接记录缓冲区的表项进行新建、删除或修改;
C、第一级连接记录索引表采用链表方式管理,每个节点外挂一个桶结构,桶深可由软件动态配置,最大为24,最大程度缓解哈希冲突问题;第二级采用动态方式进行分配和回收,连接建立时地址取自可用地址池,连接释放时再送回可用地址池,充分利用内存;
D、根据连接记录缓冲区中记录的连接状态,确定需要上传的报文并附加TCP连接信息,包括连接新建标志、数据包标志、连接结束标志和超时结束标志;
E、如果上层软件不关心某个连接,可以通过PCIE控制器下发删除连接命令,管理系统接收命令删除该连接并上传断开该连接的超时包结构,表明成功删除该连接。
2.如权利要求1所述一种利用多级内存查找方式进行TCP连接管理的方法,其特征在于:第一级为TCP连接记录索引表,存储并发连接记录缓冲区的地址,以及冲突链长度和连接访问先后信息,第二级为TCP连接记录缓冲区,存储TCP连接当前状态和四元组信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010598141XA CN102014005B (zh) | 2010-12-17 | 2010-12-17 | 一种利用多级内存查找方式进行tcp连接管理的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010598141XA CN102014005B (zh) | 2010-12-17 | 2010-12-17 | 一种利用多级内存查找方式进行tcp连接管理的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102014005A CN102014005A (zh) | 2011-04-13 |
CN102014005B true CN102014005B (zh) | 2013-08-07 |
Family
ID=43844033
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010598141XA Active CN102014005B (zh) | 2010-12-17 | 2010-12-17 | 一种利用多级内存查找方式进行tcp连接管理的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102014005B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102510483B (zh) * | 2011-12-13 | 2014-07-23 | 曙光信息产业(北京)有限公司 | 一种基于fpga多视频监控终端控制策略的实现系统和方法 |
CN103607311B (zh) * | 2013-11-29 | 2017-01-18 | 厦门市美亚柏科信息股份有限公司 | 一种无缝重建tcp连接的系统及方法 |
CN103761192B (zh) * | 2014-01-20 | 2016-08-17 | 华为技术有限公司 | 一种内存分配的方法和装置 |
CN107708110B (zh) * | 2016-08-09 | 2020-08-28 | 京信通信系统(中国)有限公司 | 一种标识分配方法及装置 |
CN109672648B (zh) * | 2017-10-16 | 2020-05-22 | 中国科学院信息工程研究所 | 一种tcp链接动态管理方法及设备 |
CN110019232B (zh) * | 2017-12-27 | 2021-04-27 | 中移(杭州)信息技术有限公司 | 一种报文保存方法及装置 |
CN110535827B (zh) * | 2019-07-17 | 2021-08-24 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 实现多连接管理的tcp协议全卸载ip核的方法及系统 |
CN112887213B (zh) * | 2019-11-29 | 2023-04-18 | 北京百度网讯科技有限公司 | 报文清洗方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1941732A (zh) * | 2005-09-28 | 2007-04-04 | 北京大学 | 一种无需ip分片重组实现动态流分类的装置和方法 |
CN101702680A (zh) * | 2009-11-26 | 2010-05-05 | 福建星网锐捷网络有限公司 | 媒体接入控制地址的老化方法、装置和通信设备 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7031314B2 (en) * | 2001-05-16 | 2006-04-18 | Bytemobile, Inc. | Systems and methods for providing differentiated services within a network communication system |
-
2010
- 2010-12-17 CN CN201010598141XA patent/CN102014005B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1941732A (zh) * | 2005-09-28 | 2007-04-04 | 北京大学 | 一种无需ip分片重组实现动态流分类的装置和方法 |
CN101702680A (zh) * | 2009-11-26 | 2010-05-05 | 福建星网锐捷网络有限公司 | 媒体接入控制地址的老化方法、装置和通信设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102014005A (zh) | 2011-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102014005B (zh) | 一种利用多级内存查找方式进行tcp连接管理的方法 | |
CN100520758C (zh) | 提高tcp重发处理速度 | |
US8537815B2 (en) | Accelerating data routing | |
CN101877604B (zh) | 一种传输文件的方法及系统 | |
KR100850254B1 (ko) | 순서가 어긋난 RDMA Send 메시지들의 전달에관련한 기입 연산들 수의 감소 | |
CN101039212B (zh) | 一种数据快速入库方法 | |
CN101827019B (zh) | 网络接口设备 | |
CN107948094A (zh) | 一种高速数据帧无冲突入队处理的装置及方法 | |
US9998373B2 (en) | Data routing acceleration | |
US20130138771A1 (en) | Apparatus and method for transmitting data | |
CN104618961A (zh) | 应用于智能电网的单通道tcp/ip头压缩方法及系统 | |
CN104462562A (zh) | 一种基于数据仓库自动化的数据迁移系统及方法 | |
US20230156102A1 (en) | Packet processing method, network device, and related device | |
CN101911612B (zh) | 分组丢失得以降低的网络卸载 | |
CN102687109A (zh) | 使用分组分段和转发的存储器管理 | |
CN102860049A (zh) | 一种短信处理方法、相关设备及系统 | |
CN1679015A (zh) | 用于独立于带宽延迟产品的tcp/ip卸载的系统和方法 | |
CN103856435A (zh) | 一种地址解析协议缓存及其缓存方法 | |
EP2774342B1 (en) | Reducing tcp timeouts due to incast collapse at a network switch | |
CN103442091A (zh) | 一种数据传输方法及装置 | |
CN102104596B (zh) | 一种tcp连接重排序方法 | |
CN116260887A (zh) | 数据传输方法、数据发送装置、数据接收装置和存储介质 | |
CN1281037C (zh) | 具有有效分组管理单元的分组转发系统及其操作方法 | |
CN105323139B (zh) | 一种用于虚拟交换机系统的虚拟链路协商方法 | |
CN103108256A (zh) | 一种接收rtp包时消除抖动乱序重包的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221215 Address after: 430040 NO.666, Wuhuan Avenue, linkonggang economic and Technological Development Zone, Wuhan City, Hubei Province (10) Patentee after: Dawning Network Technology Co.,Ltd. Address before: 300384 Xiqing District, Tianjin Huayuan Industrial Zone (outside the ring) 15 1-3, hahihuayu street. Patentee before: DAWNING INFORMATION INDUSTRY Co.,Ltd. |
|
TR01 | Transfer of patent right |