CN102497431B - 一种tcp连接缓存应用数据的内存申请方法和*** - Google Patents
一种tcp连接缓存应用数据的内存申请方法和*** Download PDFInfo
- Publication number
- CN102497431B CN102497431B CN201110415220.7A CN201110415220A CN102497431B CN 102497431 B CN102497431 B CN 102497431B CN 201110415220 A CN201110415220 A CN 201110415220A CN 102497431 B CN102497431 B CN 102497431B
- Authority
- CN
- China
- Prior art keywords
- cache node
- module
- application
- stream
- node
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种TCP连接缓存应用数据的方法,其特征在于,TCP连接在应用负载小的情况下,从静态缓存池中申请获得固定长度的缓冲区块;而在应用负载大的情况下,从操作***动态申请固定长度的缓冲区块。与现有技术相比,本发明的有益效果在于:很好的支持了上层应用暂存负载进行内容分析,在上层应用内存负载小,能快速的从静态缓存池中获取资源;在上层应用内存负载大时,也能做适当的缓冲,避免丢包。
Description
技术领域
本发明属于网络安全领域,具体涉及一种TCP连接缓存应用数据的内存申请方法和***。
背景技术
随着网路的高速发展,网路给人们带来了便利,同时带来不少问题。如:色情,***舆论等都可以通过网络来传输。因此,对网络的监控的重要性也越来越显著。当前网络大部分采用TCP/IP的四层模型,若要对应用层中数据内容进行监控,必须对数据包的应用负载内容进行检查。在TCP/IP模型下,只要在传输层对负载分析即可。基于TCP连接的应用,可以对每个TCP连接的数据进行检查,确定其内容是否非法。
专利号CN200580031571.0(在网络元件处缓存内容和状态数据)公开了用于在网络元件处缓存内容和状态数据的方法。在一个实施例中,在网络元件处截取数据。从数据分组中确定指定向服务器应用对指定数据的请求的应用层消息。确定包含在网络元件的缓存中的指定数据的第一部分。向服务器应用发送请求未包含在缓存中的数据的第二部分的消息。接收包含第二部分但不包含第一部分的第一响应。向客户端应用发送包含第一和第二部分的第二响应。在一个实施例中,在网络元件处截取数据分组。从数据分组中确定指定会话或数据库连接状态信息的应用层消息。在网络元件处缓存状态信息。
专利号CN200680012181.3(分布式数据管理***及其动态订阅数据的方法)公开了一种分布式数据管理***,包括:应用模块(1)和数据管理器(2);所述应用模块(1)中设有数据访问模块(11)和数据缓存器(12);所述数据管理器(2)中设有订阅管理模块(21)、订阅列表模块(22)、通知模块(23)和数据存储器(24);另外,所述应用模块(1)中还设有动态订阅管理模块(14)和数据记录模块(15);所述数据管理器(2)中还设有数据发布模块(25),该数据发布模块(25)与所述数据存储器(24)连接;所述动态订阅管理模块(14)分别与所述数据记录模块(15)、所述数据缓存器(12)以及所述数据访问模块(11)连接,与所述订阅管理模块(21)、所述通知模块(23)以及所述数据发布模块(25)通信连接;本发明还包括一种动态订阅数据的方法。采用本发明,可有效减小网络传输和***处理的数据量,减轻网络负担,提高***的工作性能。
上述tcp卸载***中,软硬件不配置或只配置对少量的缓冲区用于缓存应用数据。
上述技术的缺点是:在tcp卸载***中,硬件不配置或只配置对少量的缓冲区用于缓存应用数据。对于TCP连接的负载内容不做检查,有不支持为上层应用暂时缓存部分数据,因此,不能很好的配合上层应用的内容分析,在上层应用较忙时,也只能丢包。
发明内容
本发明克服现有技术的不足,提供应用的缓存分配机制,能为每个连接静态分配一定容量的内存,当内存不够时,通过动态分配从OS获得内存资源动静结合,即节省资源又能尽快满足应用需求。
本发明提供了一种TCP连接缓存应用数据的内存申请方法,其包括如下步骤:
(1)初始化,根据应用规模为流缓存节点按多种尺度(如三种尺度,5k,1.5k,0.5k)申请数个节点组成静态池,转步骤(2);
(2)流节点申请转步骤(3);流节点释放转步骤(7);
(3)从静态池中申请空闲节点,如果申请成功,则进入步骤(5),否则进入步骤(4);
(4)从操作***申请动态流缓存节点(大小为静态中能满足需求最小的一种),如果申请成功,则进入步骤(5),否则进入步骤(6);
(5)返回节点头指针,转步骤(11);
(6)返回空指针,转步骤(11);
(7)流缓存节点有动态申请标志转步骤(8),否则转步骤(9);
(8)静态池中,相同尺度的流缓存节点数小于设定阈值(如:1k个),转步骤
(9),否则转步骤(10);
(9)流缓存节点放入静态池中,转步骤(11);
(10)流缓存节点归还给操作***,转步骤(11);
(11)结束。
本发明提供的TCP连接缓存应用数据的内存申请方法,步骤(3)中TCP连接从静态的缓存池中的空闲缓冲区链表中申请获得固定长度len的缓冲区块。
本发明提供的TCP连接缓存应用数据的内存申请方法,步骤(4)中TCP连接从操作***动态地申请获得固定长度len的缓冲区块。
本发明提供的TCP连接缓存应用数据的内存申请方法,步骤(7)~(10)中根据被释放节点的标识和静态池中相同尺度的节点个数(与静态池中相同尺度的预设阈值比较)确定节点由静态池回收还是操作***回收。
本发明提供的TCP连接缓存应用数据的内存申请方法,所述TCP连接关闭或淘汰时,也采用节点回收的(7)~(10)模块来处理。
本发明还提供了一种TCP连接缓存应用数据的内存申请的***,其包括如下模块:
(1)初始化模块,根据应用规模为流缓存节点按多种尺度申请数个节点组成静态池;
(2)申请静态缓冲区块模块,流节点申请转模块(3);流节点释放转模块(7);
(3)从静态池中申请空闲节点,如果申请成功,则进入模块(5),否则进入模块(4);
(4)申请动态缓冲区模块,从操作***申请动态流缓存节点,如果申请成功,则进入模块(5),否则进入模块(6);
(5)返回节点头指针,转模块(11);
(6)返回空指针,转模块(11);
(7)流缓存节点有动态申请标志转模块(8),否则转模块(9);
(8)静态池中,相同尺度的流缓存节点数小于设定阈值,转模块(9),否则转模块(10);
(9)流缓存节点放入静态池中,转模块(11);
(10)流缓存节点归还给操作***,转模块(11);
(11)结束;
其中,初始化模块中所述的尺度包括三种,分别为:5k,1.5k,0.5k;申请动态缓冲区模块中所述节点大小为静态中能满足需求最小的一种。
本发明还提供的TCP连接缓存应用数据的内存申请***,模块(2)中TCP连接从静态的缓存池中的空闲缓冲区链表中申请获得固定长度len的缓冲区块。
本发明还提供的TCP连接缓存应用数据的内存申请***,模块(4)中TCP连接从动态的缓存池中的空闲缓冲区链表中申请获得固定长度len的缓冲区块。
本发明还提供的TCP连接缓存应用数据的内存释放***,模块(7、8、9、10)中根据流缓冲节点的标志(动态申请还是静态申请)和静态缓冲池中的流缓存节点数,确定缓冲节点回收给静态池还是操作***。
本发明提供的TCP连接缓存应用数据的内存申请***,所述TCP连接关闭或淘汰时,也采用节点回收的(7)~(10)模块来处理。
与现有技术相比,本发明的有益效果在于:很好的支持了上层应用暂存负载进行内容分析,在上层应用cpu负载大时,也能做适当的缓冲,避免丢包;将静态申请和动态申请结合,兼顾了申请速度和申请的效率,***流缓存节点消耗少时,直接从静态池中获取,实现快速申请。***流缓存节点消耗大时,从操作***获取,有效地利用了操作***资源。静态释放和动态释放结合,从静态池中申请的流缓存节点,释放给静态池,从操作***申请的动态节点,根据***消耗的静态节点情况,确定释放给静态池还是操作***。可以划分成以下几点:1.避免从操作***频繁地申请和释放流缓存节点,一定数目的缓存直接从优先申请的流缓存节点池中申请和释放;2.当静态池中的流缓存节点不够时,可以从操作***中申请,满足应用需求;3.流缓存节点在释放时,根据流缓存节点的标志(从静态缓存获得还是操作***动态获得)和***对静态池中的空闲流缓存节点的情况,来判断释放给静态池还是操作***。
附图说明
图1是本发明流程示意图。
具体实施方式
参见图1的本发明流程示意图,本发明的方法是如下进行的:
1.为TCP连接从静态的缓存池中的空闲缓冲区链表中申请获得固定长度len(以后说的len即为固定长度的len)的缓冲区块。
2.步骤1失败,则静态内存不够,则动态申请len的缓冲区,若申请失败,则说明***资源耗尽,返回空,动态申请成功,则把此缓冲区的信息节点连接到动态链表中,在信息节点中记录动态标志,步骤1成功,则把缓冲区块连接到连接到静态链表中,在信息节点中记录动态标志;
3.TCP连接关闭或淘汰时,根据信息节点的标志,把缓冲区返回给***或放回静态空闲链表。
本发明首先静态分配一片缓存作为缓存池,满足正常流量下TCP流的缓存,在流量较大时,动态分配缓存,当流量恢复正常水平后,按一定的策略把动态分配的缓存返回给***。缓冲保存上传给应用的数据,根据需求上传给应用。从而解决为tcp连接缓存应用层数据提供一种内存分配机制的问题。
以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所述领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者同等替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求范围当中。
Claims (8)
1.一种TCP连接缓存应用数据的方法,其包括如下步骤:
(1)初始化,根据应用规模为流缓存节点按多种大小申请数个节点组成静态池,转步骤(2);
(2)流缓存节点申请转步骤(3);流缓存节点释放转步骤(7);
(3)从静态池中申请空闲节点,如果申请成功,则进入步骤(5),否则进入步骤(4);
(4)从操作***申请动态流缓存节点,如果申请成功,则进入步骤(5),否则进入步骤(6);
(5)返回节点头指针,转步骤(11);
(6)返回空指针,转步骤(11);
(7)流缓存节点有动态申请标志转步骤(8),否则转步骤(9);
(8)静态池中,与当前释放的流缓存节点大小相同的流缓存节点数小于设定阈值,转步骤(9),否则转步骤(10);
(9)流缓存节点放入静态池中,转步骤(11);
(10)流缓存节点归还给操作***,转步骤(11);
(11)结束;
其中,步骤(1)中所述流缓存节点的大小包括三种,分别为:5KB、1.5KB、0.5KB;步骤(4)中所述动态流缓存节点的大小为静态池中能满足申请动态流缓存节点需求的最小的一种流缓存节点大小;
步骤(7)~(10)中根据流缓存节点的动态申请标志和静态池中与当前释放的流缓存节点大小相同的流缓存节点数,确定流缓存节点由静态池回收还是操作***回收。
2.根据权利要求1所述的方法,其特征在于,步骤(3)中TCP连接从静态池中的空闲缓冲区链表中申请获得固定长度len的缓冲区块。
3.根据权利要求1或2所述的方法,其特征在于,步骤(4)中TCP连接从操作***动态地申请获得固定长度len的缓冲区块。
4.根据权利要求1所述方法,其特征在于,所述TCP连接关闭或淘汰时,也采用节点回收的步骤(7)~(10)来处理。
5.一种TCP连接缓存应用数据的内存申请的***,其包括如下模块(1)~(11):
模块(1):初始化模块,根据应用规模为流缓存节点按多种大小申请数个节点组成静态池;
模块(2):流缓存节点申请转模块(3);流缓存节点释放转模块(7);
模块(3):从静态池中申请空闲节点,如果申请成功,则进入模块(5),否则进入模块(4);
模块(4):从操作***申请动态流缓存节点,如果申请成功,则进入模块(5),否则进入模块(6);
模块(5):返回节点头指针,转模块(11);
模块(6):返回空指针,转模块(11);
模块(7):流缓存节点有动态申请标志,转模块(8),否则转模块(9);
模块(8):静态池中,与当前释放的流缓存节点大小相同的流缓存节点数小于设定阈值,转模块(9),否则转模块(10);
模块(9):流缓存节点放入静态池中,转模块(11);
模块(10):流缓存节点归还给操作***,转模块(11);
模块(11):结束;
其中,初始化模块中所述流缓存节点的大小包括三种,分别为:5KB、1.5KB、0.5KB;模块(4)中所述动态流缓存节点大小为静态池中能满足申请动态流缓存节点需求的最小的一种流缓存节点大小;
模块(7)~(10)中根据流缓存节点的动态申请标志和静态池中与当前释放的流缓存节点大小相同的流缓存节点数,确定流缓冲节点回收给静态池还是操作***。
6.根据权利要求5所述的***,其特征在于,模块(3)中TCP连接从静态池中的空闲缓冲区链表中申请获得固定长度len的缓冲区块。
7.根据权利要求5或6所述的***,其特征在于,模块(4)中TCP连接从操作***动态地申请获得固定长度len的缓冲区块。
8.根据权利要求5所述***,其特征在于,所述TCP连接关闭或淘汰时,也采用节点回收的(7)~(10)模块来处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110415220.7A CN102497431B (zh) | 2011-12-13 | 2011-12-13 | 一种tcp连接缓存应用数据的内存申请方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110415220.7A CN102497431B (zh) | 2011-12-13 | 2011-12-13 | 一种tcp连接缓存应用数据的内存申请方法和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102497431A CN102497431A (zh) | 2012-06-13 |
CN102497431B true CN102497431B (zh) | 2014-10-22 |
Family
ID=46189216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110415220.7A Active CN102497431B (zh) | 2011-12-13 | 2011-12-13 | 一种tcp连接缓存应用数据的内存申请方法和*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102497431B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103761192B (zh) * | 2014-01-20 | 2016-08-17 | 华为技术有限公司 | 一种内存分配的方法和装置 |
CN113992731B (zh) * | 2021-11-02 | 2024-04-30 | 四川安迪科技实业有限公司 | 基于stomp协议的异常控制方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1444812A (zh) * | 2000-07-24 | 2003-09-24 | 睦塞德技术公司 | 减少共享存储器交换机中的存储池不足的方法和装置 |
CN1798094A (zh) * | 2004-12-23 | 2006-07-05 | 华为技术有限公司 | 一种使用缓存区的方法 |
EP1890425A1 (en) * | 2005-12-22 | 2008-02-20 | Huawei Technologies Co., Ltd. | A distributed data management system and a method for data dynamic subscribing |
CN101069169B (zh) * | 2004-11-23 | 2010-10-27 | 思科技术公司 | 在网络元件处缓存内容和状态数据 |
-
2011
- 2011-12-13 CN CN201110415220.7A patent/CN102497431B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1444812A (zh) * | 2000-07-24 | 2003-09-24 | 睦塞德技术公司 | 减少共享存储器交换机中的存储池不足的方法和装置 |
CN101069169B (zh) * | 2004-11-23 | 2010-10-27 | 思科技术公司 | 在网络元件处缓存内容和状态数据 |
CN1798094A (zh) * | 2004-12-23 | 2006-07-05 | 华为技术有限公司 | 一种使用缓存区的方法 |
EP1890425A1 (en) * | 2005-12-22 | 2008-02-20 | Huawei Technologies Co., Ltd. | A distributed data management system and a method for data dynamic subscribing |
Also Published As
Publication number | Publication date |
---|---|
CN102497431A (zh) | 2012-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chaczko et al. | Availability and load balancing in cloud computing | |
CN110191148B (zh) | 一种面向边缘计算的统计函数分布式执行方法及*** | |
CN104243481B (zh) | 一种用电信息采集前置数据处理的方法及*** | |
CN109672627A (zh) | 基于集群服务器的业务处理方法、平台、设备及存储介质 | |
CN110138732A (zh) | 访问请求的响应方法、装置、设备及存储介质 | |
CN103067297B (zh) | 一种基于资源消耗预测的动态负载均衡方法及装置 | |
CN103338252B (zh) | 一种分布式数据库并发存储虚拟请求机制的实现方法 | |
WO2021012663A1 (zh) | 一种访问日志的处理方法及装置 | |
CN109697122A (zh) | 任务处理方法、设备及计算机存储介质 | |
CN104821887A (zh) | 通过使用具有不同延迟的存储器来进行分组处理的设备和方法 | |
CN102012891B (zh) | 计算机集群管理方法、装置和*** | |
CN107329811A (zh) | 一种数据中心功耗调节方法及装置 | |
WO2021120633A1 (zh) | 一种负载均衡方法及相关设备 | |
CN108664116A (zh) | 网络功能虚拟化的自适应省电方法、装置及cpu控制器 | |
CN111796935B (zh) | 调用日志信息的消费实例分配方法及*** | |
CN106713378A (zh) | 实现多个应用服务器提供服务的方法和*** | |
CN105681426A (zh) | 异构*** | |
CN103577469B (zh) | 数据库连接复用方法和装置 | |
CN111865817A (zh) | 遥测采集器负载均衡管控方法、装置、设备及存储介质 | |
CN104360724A (zh) | 一种基于作业调度的刀片服务器的散热***和方法 | |
CN113301590A (zh) | 一种面向5g接入网的虚拟资源管控*** | |
CN103685436B (zh) | 数据获取方法和终端设备 | |
CN110351199A (zh) | 流量平滑方法、服务器及转发设备 | |
CN114710571B (zh) | 数据包处理*** | |
CN106131162B (zh) | 一种基于iocp机制实现网络服务代理的方法 |
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: 20220728 Address after: 100193 No. 36 Building, No. 8 Hospital, Wangxi Road, Haidian District, Beijing Patentee after: Dawning Information Industry (Beijing) Co.,Ltd. Patentee after: DAWNING INFORMATION INDUSTRY Co.,Ltd. Address before: 100084 Beijing Haidian District City Mill Street No. 64 Patentee before: Dawning Information Industry (Beijing) Co.,Ltd. |
|
TR01 | Transfer of patent right |