[发明专利]连接管理方法和系统有效

专利信息
申请号: 201110439809.0 申请日: 2011-12-24
公开(公告)号: CN103178981A 公开(公告)日: 2013-06-26
发明(设计)人: 黄文才 申请(专利权)人: 腾讯科技(深圳)有限公司
主分类号: H04L12/24 分类号: H04L12/24
代理公司: 广州华进联合专利商标代理有限公司 44224 代理人: 何平;曾旻辉
地址: 518044 广东省深圳*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 连接 管理 方法 系统
【说明书】:

【技术领域】

发明涉及网络技术领域,特别是涉及一种网络连接的管理方法和系统。

【背景技术】

数据通信已经非常普及,众所周知,要和某个服务器(网站)进行数据通信,首先需要通过某种协议与之建立连接,如TCP连接。连接建立后,若长时间没有数据通讯,服务器通常会关闭这些超时(空闲)连接,也称为踢掉TCP空闲连接。

TCP空闲连接:在服务器上,一个TCP连接如果若干秒都没有收到数据,则认为它是空闲连接。

踢掉TCP空闲连接:TCP服务器在监听并接受和管理client的连接上,一般在CS之间会采用心跳协议来维持正常的TCP连接。最简单的也可以采用TCP层的套接字选项keepalive来实现。但从可靠性等方面考虑,一般会采用应用层的心跳协议。

在Linux 2.6.16之前,内核一直使用一种称为timer wheel的机制来管理时钟。这就是熟知的kernel一直采用的基于HZ的timer机制。就像钟表上的秒针,每秒移动一格,由此得名。

传统技术中,服务器内维护和管理各TCP连接所对应的struct成员中有记录最后一次收到数据包的时间。每次通过定时器回调去遍历所有连接对象,对于超过的空闲连接执行关闭TCP连接。

传统技术不足是:效率低,每次在检查连接超时的定时器回调时,都需要遍历所有的连接对象检查满足超时的空闲连接执行关闭TCP连接的条件。当某个连接接收到数据包时,则需要查找并修改连接对象里面的最后一次收到数据包的时间。有些则采用了优先队列的来管理,但当某个连接接收到数据包时,则需要不断的调整优先队列。

【发明内容】

基于此,有必要提供一种高效的连接管理方法和系统。

一种连接管理方法,包括如下步骤:

建立一个hash_set数组,以及指向一个数组元素的索引;

当某个连接对象接收到数据包时,将该连接对象的shared_ptr对象插入到当前所述索引指向的数组元素中;

每隔预定时间,所述索引循环移动指向下一个数组元素,并清空移动后指向的数组元素中的shared_ptr对象;

根据hash_set数组中各个连接对象对应的shared_ptr对象的数量,增减对应连接对象的引用计数;

关闭所述引用计数为0的连接。

本发明一较佳实施例中,所述连接管理方法还包括如下步骤:

在连接对象里保存最后一次往数组元素中插入shared_ptr对象时所述索引的位置;

在将连接对象的shared_ptr对象插入数组元素前,检查当前索引位置和连接对象里的索引位置是否相同,若不同,则将连接对象的shared_ptr对象插入,若相同,则不插入。

本发明一较佳实施例中,所述预定时间为1秒。

本发明一较佳实施例中,所述索引初始化时指向hash_set数组最后一个数组元素。

一种连接管理系统,其包括存储器、信息维护模块、计时模块、数组维护模块以及处理模块,

所述存储器存储有一个hash_set数组,以及指向一个数组元素的索引(tail);

所述信息维护模块用于在某个连接对象接收到数据包时,将该连接对象的shared_ptr对象插入到当前所述索引指向的数组元素中;

所述计时模块用于计时,并每隔预定时间发送一个控制信号给所述数组维护模块;

所述数组维护模块用于响应所述控制信号,将所述索引循环移动指向下一个数组元素,并清空移动后指向的数组元素中的shared_ptr对象;且根据hash_set数组中各个连接对象对应的shared_ptr对象的数量,增减对应连接对象的引用计数;

所述处理模块用于关闭引用计数为0的连接。

本发明一较佳实施例中,所述信息维护模块包括记录单元、比较单元和维护单元,

所述记录单元用于在连接对象里保存最后一次往数组元素中插入shared_ptr对象时所述索引的位置;

所述比较单元用于在连接对象的shared_ptr对象插入数组元素前,检查当前索引位置和连接对象里的索引位置是否相同;

所述维护单元用于在当前索引位置和连接对象里的索引位置不同时,将连接对象的shared_ptr对象插入当前所述索引指向的数组元素中。

本发明一较佳实施例中,所述预定时间为1秒。

本发明一较佳实施例中,所述索引初始化时指向hash_set数组最后一个数组元素。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201110439809.0/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top