一种基于信令传输的tcp长连接的实现方法及装置的制造方法
【技术领域】
[0001] 本发明涉及通信技术领域,尤其涉及一种基于信令传输的TCP长连接的实现方法 及装置。
【背景技术】
[0002] 信令传输场景是一个非常特殊的TCP (Transmission Control Protocol,传输控 制协议)连接场景,它具有超高连接数和超低网络传输的特点。MCP (Main control, Cache, Proxy) ++是MCP框架的C++语言版本,是一种高性能网络编程框架,它根据epoll模型维护 TCP的连接。
[0003] 然而经过测试,现有的MCP++框架为每个TCP长连接耗费约0. 5邸内存。算上 内核态的消耗,单个TCP长连接消耗约3. 5邸内存。根据巧oil的实现,在64位环境下, epoll在内核中需要为每个fd(文件描述符)消耗leOBytes的内存。并且,根据linux内 核2. 6. 32.43中对TCP协议找的实现,内核为每个应用层中打开的socket (套接字)维 护st;ructsocket_alloc数据结构,它包含struct socket和structinode结构,分别对应 socket在tcp中的表示和vfs中的inode数据结构。在网络层中,还需要struct sock数 据结构来表示socket。对于TCP每个连接收发的数据,使用S化uctsk_buff来记录收发 数据信息,并从内核中分配相应的空间来存放数据。存放数据的内核空间的分配单位是 page。当TCP连接的数据接收和发送完成后,sk_buff和数据page也相应的释放。在无数 据收发时,内核中不会消耗额外的内存空间。因此,内核中socket相关的内存消耗都是描 述socket的数据结构。相关的数据结构都是从内核的si油高速缓冲区中申请和释放的。 通过查看系统的slab信息,可W计算得出socket相关数据结构(包括巧oil)内核态的消 耗为2. 7邸(包括巧oil的消耗)。再加上si油数据结构对齐造成的额外开销,socket相 关数据结构总共消耗3邸。W"TCP"数据结构为例:每个si油的size = 768032邸/964004 =8邸,每个si油存储5个对象,每个对象1. 44邸,则每个si油因为对齐而浪费的空间是 8邸-1. 44巧=0. 8邸。对应每个对象浪费0. 8邸/5 = 0. 16邸。W此推算,上述si油结构总 共浪费的空间如表1所示。
[0004] 表1SLAB结构总共浪费的空间
[0005]
[0006] 此外,当某个socket有数据发送时候,在struct sock中有"struct page*sk_ sn血sg_page"变量指向额外的一个page,用来作为发送缓存,只有当该sock关闭的时候 才释放该page。经过测试证明,进程打开的socket无数据发送时,单个socket消耗3邸; 有数据发送时,额外消耗4邸。送样一来内核中为每个socket连接需要消耗的内存空间为 3邸+4邸=7邸。
[0007] 海量TCP长连接通常数W万计(20000 W上),结合上述测试结果不难发现,当数W 万计的TCP长连接并发时,现有的MCP++框架为处理送些连接将会产生巨大的内核态内存 消耗,而基于TCP长连接的特性,处理的最终结果将只能是服务器若机。因此,现有的MCP++ 在处理TCP长连接过程中所产生的内核态内存消耗巨大,无法实现海量TCP长连接。
【发明内容】
[0008] 有鉴于此,本发明提供一种基于信令传输的TCP长连接的实现方法及装置,可减 少处理TCP长连接而产生的内核态内存消耗,实现信令传输场景下的海量TCP长连接。
[0009] 本发明实施例提供的基于信令传输的TCP长连接的实现方法,包括:获取服务器 的标识信息,查询预置的配置参数数据库,获取与所述标识信息对应的目标参数,所述目标 参数用于减小处理TCP长连接而产生的内核态内存消耗;根据所述目标参数,对所述服务 器进行系统内核的参数配置;根据配置结果监听TCP长连接请求,对监听到的TCP长连接请 求进行处理,并将处理结果返回给对端。
[0010] 本发明实施例提供的基于信令传输的TCP长连接的实现装置,包括:获取模块,用 于获取服务器的标识信息,查询预置的配置参数数据库,获取与所述标识信息对应的目标 参数,所述目标参数用于减小处理TCP长连接而产生的内核态内存消耗;配置模块,用于根 据所述获取模块获取的所述目标参数,对所述服务器进行系统内核的参数配置;处理模块, 用于根据所述配置模块的配置结果监听TCP长连接请求,对监听到的TCP长连接请求进行 处理,并将处理结果返回给对端。
[0011] 本发明实施例提供的基于信令传输的TCP长连接的实现方法及装置,通过采用获 取与服务器的型号对应的用于减小处理TCP长连接而产生的内核态内存消耗的目标参数, 并根据该目标参数对该服务器进行系统内核的参数配置,然后根据配置结果处理TCP长连 接送样优化参数的方式,可W较小的成本代价达到减小处理TCP长连接而产生的内核态内 存消耗的技术效果,从而实现信令传输场景下的海量TCP长连接。
[0012] 为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例, 并配合所附图式,作详细说明如下。
【附图说明】
[0013] 图1为本发明实施例提供的基于信令传输的TCP长连接的实现方法及装置的应用 环境图;
[0014] 图2示出了一种服务器的结构示意图;
[0015] 图3为本发明第一实施例提供的基于信令传输的TCP长连接的实现方法的流程示 意图;
[0016] 图4为本发明第二实施例提供的基于信令传输的TCP长连接的实现方法的流程示 意图;
[0017] 图5为本发明第Η实施例提供的基于信令传输的TCP长连接的实现装置的结构示 意图;
[0018] 图6为本发明第四实施例提供的基于信令传输的TCP长连接的实现装置的结构示 意图。
【具体实施方式】
[0019] 为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,W下结合 附图及较佳实施例,对依据本发明的【具体实施方式】、结构、特征及其功效,详细说明如后。
[0020] 图1为本发明实施例提供的基于信令传输的TCP长连接的实现方法及装置的应用 环境图。如图3所示,客户端100、服务器200位于有线或无线网络中,通过该有线网络或无 线网络,客户端100与服务器200进行数据交互。
[0021] 其中,客户端100可W包括支持网络功能的:智能手机、平板电脑、电子书阅读器、 MP3播放器(Moving Pierre Experts Group Audio Layer III,动态影像专家压缩标准音 频层面 3)、MP4 (Moving Pic1:ure Experts Group Audio Layer IV,动态影像专家压缩标准 音频层面4)播放器、膝上型便携计算机、车载电脑、可穿戴设备、台式计算机、机顶盒、智能 电视、一体机等等。
[0022] 上述的有线网络可W但不限于包括;采用同轴电缆、双绞线或光纤来连接的计 算机网络。上述的无线网络可W使用各种通信标准、协议及技术,包括但并不限于全球 移动通信系统(Global System for Mobile Communication, GSM)、增强型移动通信技术 巧nhanced Data GSM linvironment,邸GE),宽带码分多址技术(wideband code division multiple access, W-CDMA),码分多址技术(Code division access, CDMA)、时分多址技 术(time division multiple access, TDMA),藍牙,无线保真技术(Wireless, Fidelity, WiFi)(如美国电气和电子工程师协会标准IE邸802. 11a,IE邸802. 1化,I邸E802. llg和/ 或 IE邸802. lln)、网络电话(Voice over internet protocol, VoIP)、全球微波互联接入 (Worldwide Interoper油ility for Microwave Access,Wi-Max)、其他用于邮件、即时通讯 及短消息的协议,W及任何其他合适的通讯协议,甚至可包括郝些当前仍未被开发出来的 协议。
[0
023] 服务器200,用于获取服务器200的标识信息,查询预置的配置参数数据库,获取 与该标识信息对应的目标参数,该目标参数用于减小处理TCP长连接而产生的内存消耗; 根据该目标参数,对服务器200进行参数配置;根据配置结果监听客户端100发送的TCP长 连接请求,对监听到的TCP长连接请求进行处理,并将处理结果返回给客户端100。
[0024] 图2示出了一种服务器的结构框图。可W理解地,图2所示的结构仅为示意,服务 器200还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图 2中所示的各组件可W采用硬件、软件或其组合实现。另外,本发明实施例中的服务器还可 W包括多个具体不同功能的服务器。
[00巧]如图2所示,服务器200可因配置或性能不同而产生比较大的差异,可W包括一个 或一个W上中央处理器(central processing units, CPU) 222 (例如,一个或一个W上处理 器)和存储器232, 一个或一个W上存储应用程序242或数据244的存储介质230 (例如一 个或一个W上存储设备)。其中,存储器232和存储介质230可W是短暂存储或持久存储。 存储在存储介质230的程序可W包括一个或一个W上模块(图示未示出),每个模块可W 包括对服务器中的一系列指令操作。更进一步地,中央处理器222可W设置为与存储介质 230通信,在服务器200上执行存储介质230中的一系列指令操作。服务器200还可W包括 一个或一个W上电源226,一个或一个W上有线或无线网络接口 250,一个或一个W上输入 输出接口 258,和/或,一个或一个W上操作系统241,例如Windows Server?, Mac 0S X?, Unix?, Linux?, FreeBSD? 等等。
[0026] 第一实施例
[0027] 请参阅图3,图3为本发明第一实施例提供的基于信令传输的TCP长连接的实现方 法的流程图。本实施例可应用于图1所示的应用环境中,通过图1所示的服务器200实现 基于信令传输的海量TCP长连接。如图3所示,本实施例提供的基于信令传输的TCP长连 接的实现方法包括:
[0028] 步骤S101,获取服务器的标识信息,查询预置的配置参数数据库,获取与该标识信 息对应的目标参数,该目标参数用于减小处理TCP长连接而产生的内存消耗;
[0029] 本实施例提供的方法可应用于信令传输的场景下。信令是在网络传输的各种信号 中,用来专口控制电路的一类信号。
[0030] 具体地,服务器200接收用户的配置指令,获取用户输入的目标参数配置信息,根 据该配置指令及该目标参数配置信息生成配置参数数据库。该目标参数配置信息包括:月良 务器的标识信息、与该标识信息对应的目标参数W及该目标参数的值,其中该目标参数用 于减小处理TCP长连接而产生的内存消耗。生成的配置参数数据库中存储有:服务器的标 识信息,目标参数,该目标参数的值,服务器的标识信息、目标参数W及该目标参数的值Η 者之间的对应关系。其中,服务器的标识信息可W包括服务器的型号。根据服务器的型号 的不同,不同型号的服务器可W有一个或多个对应的目标参数,而同一个目标参数可W有 多个分别与不同型号对应的值。像送样,为不同型号的服务器配置不同的目标参数,为同一 个目标参数设置多个分别与不同的服务器的型号对应的值,使得服务器可根据自己的型号 配置对应的目标参数,可提高参数配置的灵活性,进而提高处理TCP长连接的效率。
[0031] 于本实施例中,服务器200获取服务器200的型号,查询预置的配置参数数据库, W获取与服务器200的型号对应的目标参数。
[0032] 如下表1所示,该目标参数至少可W包括W下参数的任一种:系统最大打开文 件数限制(/proc/sys/fs/file-max),单个进程最大打开文件数限制(/p;roc/sys/fs/n;r_ open), Epoll 监听套接字文件描述符(socket fd)个数限制(/p;roc/sys^s/epoll/max_ use;r_watches),监听队列的长度限制(/proc/sys/net/core/somaxconn),将时间等待状态 套接字(time-wait sockets)用于新的 TCP 长连接限制(/p;roc/sys/neVipv4/tcp_tw_ reuse),快速回收时间等待状态的套接字限制(/p;roc/sys/net/ipv4/tcp_tw_recycle), 分散聚集限制巧th scatter-gather, Eth sg) W及通用分片卸载限制巧地generic segmentation offload,Eth gso)。其中,监听套接字文件描述符个数限制包括通过化oil 函数监听套接字文件描述符个数限制。
[0033] 表 1
[0034]
[0035]
[0036] 步骤S102,根据该目标参数,对该服务器进行系统内核的参数配置;
[0037] 如上表1所示,对服务器200进行系统内核的参数配置。优选地,配置表1中的所 有参数。可W理解地,也可W根据预置的配置规则,选择上表1中的一个或多个参数进行配 置。
[0038] 具体地,通过Echo命令写入的方式,分别将/proc/sys/fs/file-max, /proc/sys/ fs/nr_open, /proc/sys/fs/epoll/max_user_watches, /proc/sys/net/core/somaxconn 四个参数项的参数值配置为从配置参数数据库获取的各自与该标识信息对应的目标参数 的值;通过Echo命令写入的方式,将/p;roc/sys/net/ipv4/tcp_tw_reuse的参数值配置为 1,即,开启将时间等待状态套接字用于新的TCP长连接;通过Echo命令写入的方式,将/ p;roc/sys/net/ipv4/tcp_tw_recycle的参数值配置为1,即,开启快速回收时间等待状态 的套接字;通过ethtool-K ethlsg off命令将化h sg的参数值配置为Off,即,关闭sg;通 过ethtool-K ethl命令将化h gso的参数值配置为Off,即,关闭gso。可W理解地,表1 中的值只是一种示例,实际应用中,根据服务器200的型号的不同,表1中各参数项对应的 值不限于此。
[0039] /proc/sys/net/core/somaxconn(Listen fd backlog),是 Linux 中的一个内核 化ernel)参数,表示socket监听(listen)的监听队列化acklog)的上限。当一个TCP长 连接请求(request)尚未被处理或建立时,他会进入backlog。该参数项的值的大小会影响 监听端口上等待建立连接的队列长度。通过调整该值,可W加速TCP长连接的建立过程。
[0040] sg用于描述从通道(化anneU中读取或者写入到化annel的操作。分散 (scatter)从化annel中读取是指在读操作时将读取的数据写入多个buffer中。因此, 化annel将从化annel中读取的数据"分散(scatter)"到多个缓冲器度uffer)中。聚集 (gather)写入化annel是指在写操作时将多个buffer的数据写入同一个化annel,因此, 化annel将多个Buffer中的数据"聚集(gather)"后发送到化annel。sgr经常用于需要 将传输的数据分开处理的场合,例如传输一个由消息头和消息体组成的消息。
[0041] GSO的基本思想就是尽可能的推迟数据分片直至发送到网卡驱动之前,此时会检 查网卡是否支持分片功能(如TS0、UF0),如果支持直接发送到网卡,如果不支持就进行分 片后再发往网卡。送样大数据包只需走一次协议找,而不是被分割成几个数据包分别走,送 就提高了效率。上述TSCKTCP Segmentation Offload)是一种利用网卡对TCP数据包分 片,减轻CPU负荷的一种技术,有时也被叫做LS0 (Large segment offload)。上述UF0 0JDP Rragmentation Offload)是一种利用网卡对UDP(User Datagram Protocol,用户数据包协 议)数据包分片,减轻CPU负荷的一种技术。
[0042] 关闭网卡的sg和gso特性会对网络性能造成一定的损失,但是在信令传输送样小 数据包的特殊场景下,小数据包也没有使用到sg等特性,故而影响不大。
[0043] 步骤S103,根据配置结果监听TCP长连接请求,对监听到的TCP长连接请求进行处 理,并将处理结果返回给对端。
[0044] 具体地,第一步,使用巧oll_create〇函数创建文件描述,设定可管理的最大 socket fd 数目。
[0045] 第二步,创建与巧oil关联的多个接收线程,来处理巧oil上的读通知事件。
[0046] 第Η步,仓ij建一个监听socket fd ListenSock,将该描述符设定为非阻塞模式,调 用ListenO函数在socket上侦听有无新的TCP长连接请求,同时使用epoll_ctl 0注册 事件,最后启动网络监视线程。并根据/proc/sys/fs/epoll/max_use;r_watches参数限制 Epoll监听socket fd个数限制,根据/proc/sys/net/core/somaxconn参数,限制监听队列 的长度限制。
[0047] 第四步,网络监视线程启动循环,epoll_wait〇等待巧oil事件发生。
[0048] 第五步,如果巧oil事件表明有新的TCP长连接请求,则调用accept 0函数,将用 户socket fd添加到巧oll_data联合体,同时设定该描述符为非阻塞,并在巧oll_event 结构中设置要处理的事件类型为读和写,工作方式为巧〇ll_ET。其中,巧oll_data联合体 用来保存触发事件的某个fd相关的数据,例如一个客户端连接到服务器,服务器通过调用 accept函数可W得到于送个客户端对应的socket fd,可W把送fd赋给epoll_data的fd 字段W便后面的读写操作在送个fd上进行。通过上述目标参数的设置,可W减小巧〇11_ data联合体的内核态内存消耗。
[0049] 第六步,如果巧oil事件表明socket fd上有数据可读,则将该socket描述符加 入可读队列,通知接收线程读入数据,并将接收到的数据放入到接收数据的链表中,经处理 进程逻辑处理后,将反馈的数据包放入到发送数据链表中,等待由发送线程发送给客户端 100。在逻辑处理过程中,根据/proc/sys/fs/file-max参数控制系统最大打开文件数限制, 根据/pr〇c/sys/fs/n;r_open参数控制单个进程最大打开文件数。
[0050] 在上述步骤执行期间,服务器200实时检测是否存在time-wait sockets,若存 在,则将该time-wait sockets快速回收,并重新用于新的TCP长连接。
[0051] 本发明实施例提供的基于信令传输的TCP长连接的实现方法,通过采用获取与服 务器的型号对应的用于减小处理TCP长连接而产生的内核态内存消耗的目标参数,并根据 该目标参数对该服务器进行系统内核的参数配置,然后根据配置结果处理TCP长连接送样 优化参数的方式,可W较小的成本代价达到减小处理TCP长连接而产生的内核态内存消耗 的技术效果,从而实现信令传输场景下的海量TCP长连接。
[0052] 第二实施例
[0053] 请参阅图4,图4为本发明第二实施例提供的基于信令传输的TCP长连接的实现方 法的流程图。本实施例可应用于图1所示的应用环境中,通过图1所示的服务器200实现 基于信令传输的海量TCP长连接。如图4所示,本实施例提供的基于信令传输的TCP长连 接的实现方法包括:
[0054] 步骤S201,获取服务器的标识信息,查询预置的配置参数数据库,获取与该标识信 息对应的目标参数,该目标参数用于减小处理TCP长连接而产生的内存消耗;
[00巧]步骤S202,根据该目标参数,对该服务器进行系统内核的参数配置;
[0056] 步骤S201与步骤S202具体可参考第一实施例的相关内容,此处不再赏述。
[0057] 步骤S203,检测防火墙的连接跟踪模块是否开启;
[0058] 若开启,则执行步骤S204 ;去除该连接跟踪模块对指定端口连接的跟踪,然后执 行步骤S205 ;
[0059] 当服务器200的系统配置了防火墙策略,并且开启防火墙的连接跟踪模块(例如: nf_conntrack等),系统会对每条连接进行跟踪。收发数据包时,需要在连接跟踪中查找相 关连接信息,送将要消耗大量的CPU资源。防火墙操作的时间复杂度为0(N*M),N为连接 数,Μ为数据包数,因此在海量连接情况下更加消耗CPU。进一步地,服务器200可在启动 后,检测防火墙的连接跟踪模块是否开启;若开启,则去除该连接跟踪模块对指定端口连接 的跟踪,W减少因该连接跟踪模块而导致的CPU资源消耗,进一步提高处理效率。具体地, 可通过ipt油les的raw表,去除nf_conntrack模块对指定端口连接的跟踪。
[0060] 若未开启,则执行步骤S205,根据配置结果监听TCP长连接请求,对监听到的TCP 长连接请求进行处理,并将处理结果返回给对端。
[0061] 本步骤具体可参考第一实施例的相关内容,此处不再赏述。
[0062] 本发明实施例提供的基于信令传输的TCP长连接的实现方法,通过采用获取与服 务器的型号对应的用于减小处理TCP长连接而产生的内核态内存消耗的目标参数,并根据 该目标参数对该服务器进行系统内核的参数配置,然后根据配置结果处理TCP长连接送样 优化参数的方式,可W较小的成本代价达到减小处理TCP长连接而产生的内核态内存消耗 的技术效果,从而实现信令传输场景下的海量TCP长连接。
[0063] 第Η实施例
[0064] 图5为本发明第Η实施例提供的基于信令传输的TCP长连接的实现装置的结构示 意图。本实施例提供的基于信令传输的TCP长连接的实现装置可应用于图1所示的服务器 200中,用于实现上述实施例中的基于信令传输的TCP长连接的实现方法。如图5所示,基 于信令传输的TCP长连接的实现装置30包括:
[0065] 获取模块31,用于获取服务器的标识信息,查询预置的配置参数数据库,获取与 该标识信息对应的目标参数,该目标参数用于减小处理TCP长连接而产生的内核态内存消 耗;
[0066] 配置模块32,用于根据获取模块31获取的该目标参数,对该服务器进行系统内核 的参数配置;
[0067] 处理模块33,用于根据配置模块32的配置结果监听TCP长连接请求,对监听到的 TCP长连接请求进行处理,并将处理结果返回给对端。
[0068] 本实施例对基于信令传输的TCP长连接的实现装置30的各功能模块实现各自功 能的具体过程,请参见上述图1至图4所示实施例中描述的具体内容,此处不再赏述。
[0069] 本发明实施例提供的基于信令传输的TCP长连接的实现装置,通过采用获取与服 务器的型号对应的用于减小处理TCP长连接而产生的内核态内存消耗的目标参数,并根据 该目标参数对该服务器进行系统内核的参数配置,然后根据配置结果处理TCP长连接送样 优化参数的方式,可W较小的成本代价达到减小处理TCP长连接而产生的内核态内存消耗 的技术效果,从而实现信令传输场景下的海量TCP长连接。
[0070] 第四实施例
[0071] 图6为本发明第四实施例提供的基于信令传输的TCP长连接的实现装置的结构示 意图。本实施例提供的基于信令传输的TCP长连接的实现装置可应用于图1所示的服务器 200中,用于实现上述实施例中的基于信令传输的TCP长连接的实现方法。如图6所示,基 于信令传输的TCP长连接的实现装置40包括:
[0072] 获取模块31,用于获取服务器的标识信息,查询预置的配置参数数据库,获取与 该标识信息对应的目标参数,该目标参数用于减小处理TCP长连接而产生的内核态内存消 耗;
[0073] 配置模块32,用于根据获取模块31获取的该目标参数,对该服务器进行系统内核 的参数配置;
[0074] 处理模块33,用于根据配置模块32的配置结果监听TCP长连接请求,对监听到的 TCP长连接请求进行处理,并将处理结果返回给对端。
[00巧]优选地,该目标参数至少包括;系统最大打开文件数限制,单个进程最大打开文件 数限制,监听套接字文件描述符个数限制,监听队列的长度限制,将时间等待状态套接字用 于新的TCP长连接限制,快速回收时间等待状态的套接字限制,分散聚集限制W及通用分 片卸载限制中的一种。
[0076] 优选地,配置模块32,还用于分别将该系统最大打开文件数限制、该单个进程最大 打开文件数限制、该监听套接字
文件描述符个数限制W及监听队列的长度限制的参数值配 置为各自对应的该目标参数的值;
[0077] 配置模块32,还用于将该将时间等待状态套接字用于新的TCP长连接的参数值配 置为1,将该快速回收时间等待状态的套接字的参数值配置为1;
[0078] 配置模块32,还用于将该分散聚集限制的参数值配置为Off ;
[0079] 配置模块32,还用于将该通用分片卸载限制的参数值配置为Off。
[0080] 优选地,基于信令传输的TCP长连接的实现装置40还包括:
[0081] 检测模块44,用于检测防火墙的连接跟踪模块是否开启;
[0082] 去除模块45,用于若检测模块44的检测结果为开启,则去除该连接跟踪模块对指 定端口连接的跟踪。
[0083] 优选地,基于信令传输的TCP长连接的实现装置40还包括:
[0084] 接收模块46,用于接收用户的配置指令;
[0085] 获取模块31,还用于获取该用户输入的目标参数配置信息,该目标参数配置信息 包括;该服务器的标识信息与该目标参数,其中该标识信息包括该服务器的型号,该目标参 数与该型号对应;
[0086] 生成模块47,用于根据该配置指令及该目标参数配置信息生成该配置参数数据 库。
[0087] 本实施例对基于信令传输的TCP长连接的实现装置30的各功能模块实现各自功 能的具体过程,请参见上述图1至图4所示实施例中描述的具体内容,此处不再赏述。
[0088] 本发明实施例提供的基于信令传输的TCP长连接的实现装置,通过采用获取与服 务器的型号对应的用于减小处理TCP长连接而产生的内核态内存消耗的目标参数,并根据 该目标参数对该服务器进行系统内核的参数配置,然后根据配置结果处理TCP长连接送样 优化参数的方式,可W较小的成本代价达到减小处理TCP长连接而产生的内核态内存消耗 的技术效果,从而实现信令传输场景下的海量TCP长连接。
[0089] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实 体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示送些实体或操作之间存 在任何送种实际的关系或者顺序。而且,术语"包括"、"包含"或者其任何其他变体意在涵 盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括郝些要 素,而且还包括没有明确列出的其他要素,或者是还包括为送种过程、方法、物品或者装置 所固有的要素。在没有更多限制的情况下,由语句"包括一个……"限定的要素,并不排除 在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。
[0090] 本领域技术人员可W理解实现上述实施例的全部或部分步骤可W通过硬件来完 成,也可W通过程序来指令相关的硬件完成,所述的程序可W存储于一种计算机可读存储 介质中,上述提到的存储介质可W是只读存储器,磁盘或光盘等。
[0091] W上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽 然本发明已W较佳实施例掲露如上,然而并非用W限定本发明,任何熟悉本专业的技术人 员,在不脱离本发明技术方案范围内,当可利用上述掲示的技术内容做出些许更动或修饰 为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对 W上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
【主权项】
1. 一种基于信令传输的TCP长连接的实现方法,其特征在于,包括: 获取服务器的标识信息,查询预置的配置参数数据库,获取与所述标识信息对应的目 标参数,所述目标参数用于减小处理TCP长连接而产生的内核态内存消耗; 根据所述目标参数,对所述服务器进行系统内核的参数配置; 根据配置结果监听TCP长连接请求,对监听到的TCP长连接请求进行处理,并将处理结 果返回给对端。2. 根据权利要求1所述的方法,其特征在于,所述目标参数至少包括:系统最大打开文 件数限制,单个进程最大打开文件数限制,监听套接字文件描述符个数限制,监听队列的长 度限制,将时间等待状态套接字用于新的TCP长连接限制,快速回收时间等待状态的套接 字限制,分散聚集限制以及通用分片卸载限制中的一种。3. 根据权利要求2所述的方法,其特征在于,所述根据所述目标参数,对所述服务器进 行系统内核的参数配置,包括: 分别将所述系统最大打开文件数限制、所述单个进程最大打开文件数限制、所述监听 套接字文件描述符个数限制以及监听队列的长度限制的参数值配置为各自对应的所述目 标参数的值; 将所述将时间等待状态套接字用于新的TCP长连接的参数值配置为1 ; 将所述快速回收时间等待状态的套接字的参数值配置为1 ; 将所述分散聚集限制的参数值配置为Off; 将所述通用分片卸载限制的参数值配置为Off。4. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 检测防火墙的连接跟踪模块是否开启; 若开启,则去除所述连接跟踪模块对指定端口连接的跟踪。5. 根据权利要求1所述的方法,其特征在于,所述方法还包括: 接收用户的配置指令,获取所述用户输入的目标参数配置信息,所述目标参数配置信 息包括:所述服务器的标识信息与所述目标参数,其中所述标识信息包括所述服务器的型 号,所述目标参数与所述型号对应; 根据所述配置指令及所述目标参数配置信息生成所述配置参数数据库。6. -种基于信令传输的TCP长连接的实现装置,其特征在于,包括: 获取模块,用于获取服务器的标识信息,查询预置的配置参数数据库,获取与所述标识 信息对应的目标参数,所述目标参数用于减小处理TCP长连接而产生的内核态内存消耗; 配置模块,用于根据所述获取模块获取的所述目标参数,对所述服务器进行系统内核 的参数配置; 处理模块,用于根据所述配置模块的配置结果监听TCP长连接请求,对监听到的TCP长 连接请求进行处理,并将处理结果返回给对端。7. 根据权利要求6所述的装置,其特征在于,所述目标参数至少包括:系统最大打开文 件数限制,单个进程最大打开文件数限制,监听套接字文件描述符个数限制,监听队列的长 度限制,将时间等待状态套接字用于新的TCP长连接限制,快速回收时间等待状态的套接 字限制,分散聚集限制以及通用分片卸载限制中的一种。8. 根据权利要求7所述的装置,其特征在于, 所述配置模块,还用于分别将所述系统最大打开文件数限制、所述单个进程最大打开 文件数限制、所述监听套接字文件描述符个数限制以及监听队列的长度限制的参数值配置 为各自对应的所述目标参数的值; 所述配置模块,还用于将所述将时间等待状态套接字用于新的TCP长连接的参数值配 置为1,将所述快速回收时间等待状态的套接字的参数值配置为1 ; 所述配置模块,还用于将所述分散聚集限制的参数值配置为Off; 所述配置模块,还用于将所述通用分片卸载限制的参数值配置为Off。9. 根据权利要求6所述的装置,其特征在于,所述装置还包括: 检测模块,用于检测防火墙的连接跟踪模块是否开启; 去除模块,用于若所述检测模块的检测结果为开启,则去除所述连接跟踪模块对指定 端口连接的跟踪。10. 根据权利要求6所述的装置,其特征在于,所述装置还包括: 接收模块,用于接收用户的配置指令; 所述获取模块,还用于获取所述用户输入的目标参数配置信息,所述目标参数配置信 息包括:所述服务器的标识信息与所述目标参数,其中所述标识信息包括所述服务器的型 号,所述目标参数与所述型号对应; 生成模块,用于根据所述配置指令及所述目标参数配置信息生成所述配置参数数据 库。
【专利摘要】一种基于信令传输的TCP长连接的实现方法,包括:获取服务器的标识信息,查询预置的配置参数数据库,获取与该标识信息对应的目标参数,该目标参数用于减小处理TCP长连接而产生的内核态内存消耗;根据该目标参数,对该服务器进行系统内核的参数配置;根据配置结果监听TCP长连接请求,对监听到的TCP长连接请求进行处理,并将处理结果返回给对端。此外,本发明还提供一种基于信令传输的TCP长连接的实现装置。上述基于信令传输的TCP长连接的实现方法及装置,可减少处理TCP长连接而产生的内核态内存消耗,实现信令传输场景下的海量TCP长连接。
【IPC分类】H04L29/06
【公开号】CN105490985
【申请号】CN201410469367
【发明人】李天騻, 娄继冰, 陈杰
【申请人】腾讯科技(深圳)有限公司
【公开日】2016年4月13日
【申请日】2014年9月15日