[发明专利]一种基于信令传输的TCP长连接的实现方法及装置有效

专利信息
申请号: 201410469367.8 申请日: 2014-09-15
公开(公告)号: CN105490985B 公开(公告)日: 2019-12-13
发明(设计)人: 李天騻;娄继冰;陈杰 申请(专利权)人: 腾讯科技(深圳)有限公司
主分类号: H04L29/06 分类号: H04L29/06
代理公司: 11270 北京派特恩知识产权代理有限公司 代理人: 蒋雅洁;张颖玲
地址: 518000 广东省深圳*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 信令传输 目标参数 标识信息 内存消耗 内核态 服务器 处理结果返回 参数配置 配置参数 配置结果 实现装置 系统内核 对端 监听 减小 预置 数据库 查询 场景
【说明书】:

一种基于信令传输的TCP长连接的实现方法,包括:获取服务器的标识信息,查询预置的配置参数数据库,获取与该标识信息对应的目标参数,该目标参数用于减小处理TCP长连接而产生的内核态内存消耗;根据该目标参数,对该服务器进行系统内核的参数配置;根据配置结果监听TCP长连接请求,对监听到的TCP长连接请求进行处理,并将处理结果返回给对端。此外,本发明还提供一种基于信令传输的TCP长连接的实现装置。上述基于信令传输的TCP长连接的实现方法及装置,可减少处理TCP长连接而产生的内核态内存消耗,实现信令传输场景下的海量TCP长连接。

技术领域

本发明涉及通信技术领域,尤其涉及一种基于信令传输的TCP长连接的实现方法及装置。

背景技术

信令传输场景是一个非常特殊的TCP(Transmission Control Protocol,传输控制协议)连接场景,它具有超高连接数和超低网络传输的特点。MCP(Main control,Cache,Proxy)++是MCP框架的C++语言版本,是一种高性能网络编程框架,它根据epoll模型维护TCP的连接。

然而经过测试,现有的MCP++框架为每个TCP长连接耗费约0.5KB内存。算上内核态的消耗,单个TCP长连接消耗约3.5KB内存。根据epoll的实现,在64位环境下,epoll在内核中需要为每个fd(文件描述符)消耗160Bytes的内存。并且,根据linux内核2.6.32.43中对TCP协议栈的实现,内核为每个应用层中打开的socket(套接字)维护structsocket_alloc数据结构,它包含struct socket和structinode结构,分别对应socket在tcp中的表示和vfs中的inode数据结构。在网络层中,还需要struct sock数据结构来表示socket。对于TCP每个连接收发的数据,使用structsk_buff来记录收发数据信息,并从内核中分配相应的空间来存放数据。存放数据的内核空间的分配单位是page。当TCP连接的数据接收和发送完成后,sk_buff和数据page也相应的释放。在无数据收发时,内核中不会消耗额外的内存空间。因此,内核中socket相关的内存消耗都是描述socket的数据结构。相关的数据结构都是从内核的slab高速缓冲区中申请和释放的。通过查看系统的slab信息,可以计算得出socket相关数据结构(包括epoll)内核态的消耗为2.7KB(包括epoll的消耗)。再加上slab数据结构对齐造成的额外开销,socket相关数据结构总共消耗3KB。以“TCP”数据结构为例:每个slab的size=768032KB/964004=8KB,每个slab存储5个对象,每个对象1.44KB,则每个slab因为对齐而浪费的空间是8KB-1.44*5=0.8KB。对应每个对象浪费0.8KB/5=0.16KB。以此推算,上述slab结构总共浪费的空间如表1所示。

表1 SLAB结构总共浪费的空间

此外,当某个socket有数据发送时候,在struct sock中有“struct page*sk_sndmsg_page”变量指向额外的一个page,用来作为发送缓存,只有当该sock关闭的时候才释放该page。经过测试证明,进程打开的socket无数据发送时,单个socket消耗3KB;有数据发送时,额外消耗4KB。这样一来内核中为每个socket连接需要消耗的内存空间为3KB+4KB=7KB。

海量TCP长连接通常数以万计(20000以上),结合上述测试结果不难发现,当数以万计的TCP长连接并发时,现有的MCP++框架为处理这些连接将会产生巨大的内核态内存消耗,而基于TCP长连接的特性,处理的最终结果将只能是服务器宕机。因此,现有的MCP++在处理TCP长连接过程中所产生的内核态内存消耗巨大,无法实现海量TCP长连接。

发明内容

有鉴于此,本发明提供一种基于信令传输的TCP长连接的实现方法及装置,可减少处理TCP长连接而产生的内核态内存消耗,实现信令传输场景下的海量TCP长连接。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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