CN105490985A - 一种基于信令传输的tcp长连接的实现方法及装置 - Google Patents
一种基于信令传输的tcp长连接的实现方法及装置 Download PDFInfo
- Publication number
- CN105490985A CN105490985A CN201410469367.8A CN201410469367A CN105490985A CN 105490985 A CN105490985 A CN 105490985A CN 201410469367 A CN201410469367 A CN 201410469367A CN 105490985 A CN105490985 A CN 105490985A
- Authority
- CN
- China
- Prior art keywords
- target component
- configuration
- restriction
- tcp
- server
- 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.)
- Granted
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种基于信令传输的TCP长连接的实现方法,包括:获取服务器的标识信息,查询预置的配置参数数据库,获取与该标识信息对应的目标参数,该目标参数用于减小处理TCP长连接而产生的内核态内存消耗;根据该目标参数,对该服务器进行系统内核的参数配置;根据配置结果监听TCP长连接请求,对监听到的TCP长连接请求进行处理,并将处理结果返回给对端。此外,本发明还提供一种基于信令传输的TCP长连接的实现装置。上述基于信令传输的TCP长连接的实现方法及装置,可减少处理TCP长连接而产生的内核态内存消耗,实现信令传输场景下的海量TCP长连接。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种基于信令传输的TCP长连接的实现方法及装置。
背景技术
信令传输场景是一个非常特殊的TCP(TransmissionControlProtocol,传输控制协议)连接场景,它具有超高连接数和超低网络传输的特点。MCP(Maincontrol,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数据结构,它包含structsocket和structinode结构,分别对应socket在tcp中的表示和vfs中的inode数据结构。在网络层中,还需要structsock数据结构来表示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所示。
表1SLAB结构总共浪费的空间
此外,当某个socket有数据发送时候,在structsock中有“structpage*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长连接。
本发明实施例提供的基于信令传输的TCP长连接的实现方法,包括:获取服务器的标识信息,查询预置的配置参数数据库,获取与所述标识信息对应的目标参数,所述目标参数用于减小处理TCP长连接而产生的内核态内存消耗;根据所述目标参数,对所述服务器进行系统内核的参数配置;根据配置结果监听TCP长连接请求,对监听到的TCP长连接请求进行处理,并将处理结果返回给对端。
本发明实施例提供的基于信令传输的TCP长连接的实现装置,包括:获取模块,用于获取服务器的标识信息,查询预置的配置参数数据库,获取与所述标识信息对应的目标参数,所述目标参数用于减小处理TCP长连接而产生的内核态内存消耗;配置模块,用于根据所述获取模块获取的所述目标参数,对所述服务器进行系统内核的参数配置;处理模块,用于根据所述配置模块的配置结果监听TCP长连接请求,对监听到的TCP长连接请求进行处理,并将处理结果返回给对端。
本发明实施例提供的基于信令传输的TCP长连接的实现方法及装置,通过采用获取与服务器的型号对应的用于减小处理TCP长连接而产生的内核态内存消耗的目标参数,并根据该目标参数对该服务器进行系统内核的参数配置,然后根据配置结果处理TCP长连接这样优化参数的方式,可以较小的成本代价达到减小处理TCP长连接而产生的内核态内存消耗的技术效果,从而实现信令传输场景下的海量TCP长连接。
为让本发明的上述和其他目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附图式,作详细说明如下。
附图说明
图1为本发明实施例提供的基于信令传输的TCP长连接的实现方法及装置的应用环境图;
图2示出了一种服务器的结构示意图;
图3为本发明第一实施例提供的基于信令传输的TCP长连接的实现方法的流程示意图;
图4为本发明第二实施例提供的基于信令传输的TCP长连接的实现方法的流程示意图;
图5为本发明第三实施例提供的基于信令传输的TCP长连接的实现装置的结构示意图;
图6为本发明第四实施例提供的基于信令传输的TCP长连接的实现装置的结构示意图。
具体实施方式
为更进一步阐述本发明为实现预定发明目的所采取的技术手段及功效,以下结合附图及较佳实施例,对依据本发明的具体实施方式、结构、特征及其功效,详细说明如后。
图1为本发明实施例提供的基于信令传输的TCP长连接的实现方法及装置的应用环境图。如图3所示,客户端100、服务器200位于有线或无线网络中,通过该有线网络或无线网络,客户端100与服务器200进行数据交互。
其中,客户端100可以包括支持网络功能的:智能手机、平板电脑、电子书阅读器、MP3播放器(MovingPictureExpertsGroupAudioLayerIII,动态影像专家压缩标准音频层面3)、MP4(MovingPictureExpertsGroupAudioLayerIV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机、车载电脑、可穿戴设备、台式计算机、机顶盒、智能电视、一体机等等。
上述的有线网络可以但不限于包括:采用同轴电缆、双绞线或光纤来连接的计算机网络。上述的无线网络可以使用各种通信标准、协议及技术,包括但并不限于全球移动通信系统(GlobalSystemforMobileCommunication,GSM)、增强型移动通信技术(EnhancedDataGSMEnvironment,EDGE),宽带码分多址技术(widebandcodedivisionmultipleaccess,W-CDMA),码分多址技术(Codedivisionaccess,CDMA)、时分多址技术(timedivisionmultipleaccess,TDMA),蓝牙,无线保真技术(Wireless,Fidelity,WiFi)(如美国电气和电子工程师协会标准IEEE802.11a,IEEE802.11b,IEEE802.11g和/或IEEE802.11n)、网络电话(Voiceoverinternetprotocol,VoIP)、全球微波互联接入(WorldwideInteroperabilityforMicrowaveAccess,Wi-Max)、其他用于邮件、即时通讯及短消息的协议,以及任何其他合适的通讯协议,甚至可包括那些当前仍未被开发出来的协议。
服务器200,用于获取服务器200的标识信息,查询预置的配置参数数据库,获取与该标识信息对应的目标参数,该目标参数用于减小处理TCP长连接而产生的内存消耗;根据该目标参数,对服务器200进行参数配置;根据配置结果监听客户端100发送的TCP长连接请求,对监听到的TCP长连接请求进行处理,并将处理结果返回给客户端100。
图2示出了一种服务器的结构框图。可以理解地,图2所示的结构仅为示意,服务器200还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。图2中所示的各组件可以采用硬件、软件或其组合实现。另外,本发明实施例中的服务器还可以包括多个具体不同功能的服务器。
如图2所示,服务器200可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(centralprocessingunits,CPU)222(例如,一个或一个以上处理器)和存储器232,一个或一个以上存储应用程序242或数据244的存储介质230(例如一个或一个以上存储设备)。其中,存储器232和存储介质230可以是短暂存储或持久存储。存储在存储介质230的程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器222可以设置为与存储介质230通信,在服务器200上执行存储介质230中的一系列指令操作。服务器200还可以包括一个或一个以上电源226,一个或一个以上有线或无线网络接口250,一个或一个以上输入输出接口258,和/或,一个或一个以上操作系统241,例如WindowsServerTM,MacOSXTM,UnixTM,LinuxTM,FreeBSDTM等等。
第一实施例
请参阅图3,图3为本发明第一实施例提供的基于信令传输的TCP长连接的实现方法的流程图。本实施例可应用于图1所示的应用环境中,通过图1所示的服务器200实现基于信令传输的海量TCP长连接。如图3所示,本实施例提供的基于信令传输的TCP长连接的实现方法包括:
步骤S101,获取服务器的标识信息,查询预置的配置参数数据库,获取与该标识信息对应的目标参数,该目标参数用于减小处理TCP长连接而产生的内存消耗;
本实施例提供的方法可应用于信令传输的场景下。信令是在网络传输的各种信号中,用来专门控制电路的一类信号。
具体地,服务器200接收用户的配置指令,获取用户输入的目标参数配置信息,根据该配置指令及该目标参数配置信息生成配置参数数据库。该目标参数配置信息包括:服务器的标识信息、与该标识信息对应的目标参数以及该目标参数的值,其中该目标参数用于减小处理TCP长连接而产生的内存消耗。生成的配置参数数据库中存储有:服务器的标识信息,目标参数,该目标参数的值,服务器的标识信息、目标参数以及该目标参数的值三者之间的对应关系。其中,服务器的标识信息可以包括服务器的型号。根据服务器的型号的不同,不同型号的服务器可以有一个或多个对应的目标参数,而同一个目标参数可以有多个分别与不同型号对应的值。像这样,为不同型号的服务器配置不同的目标参数,为同一个目标参数设置多个分别与不同的服务器的型号对应的值,使得服务器可根据自己的型号配置对应的目标参数,可提高参数配置的灵活性,进而提高处理TCP长连接的效率。
于本实施例中,服务器200获取服务器200的型号,查询预置的配置参数数据库,以获取与服务器200的型号对应的目标参数。
如下表1所示,该目标参数至少可以包括以下参数的任一种:系统最大打开文件数限制(/proc/sys/fs/file-max),单个进程最大打开文件数限制(/proc/sys/fs/nr_open),Epoll监听套接字文件描述符(socketfd)个数限制(/proc/sys/fs/epoll/max_user_watches),监听队列的长度限制(/proc/sys/net/core/somaxconn),将时间等待状态套接字(time-waitsockets)用于新的TCP长连接限制(/proc/sys/net/ipv4/tcp_tw_reuse),快速回收时间等待状态的套接字限制(/proc/sys/net/ipv4/tcp_tw_recycle),分散聚集限制(Ethscatter-gather,Ethsg)以及通用分片卸载限制(Ethgenericsegmentationoffload,Ethgso)。其中,监听套接字文件描述符个数限制包括通过Epoll函数监听套接字文件描述符个数限制。
表1
步骤S102,根据该目标参数,对该服务器进行系统内核的参数配置;
如上表1所示,对服务器200进行系统内核的参数配置。优选地,配置表1中的所有参数。可以理解地,也可以根据预置的配置规则,选择上表1中的一个或多个参数进行配置。
具体地,通过Echo命令写入的方式,分别将/proc/sys/fs/file-max,/proc/sys/fs/nr_open,/proc/sys/fs/epoll/max_user_watches,/proc/sys/net/core/somaxconn四个参数项的参数值配置为从配置参数数据库获取的各自与该标识信息对应的目标参数的值;通过Echo命令写入的方式,将/proc/sys/net/ipv4/tcp_tw_reuse的参数值配置为1,即,开启将时间等待状态套接字用于新的TCP长连接;通过Echo命令写入的方式,将/proc/sys/net/ipv4/tcp_tw_recycle的参数值配置为1,即,开启快速回收时间等待状态的套接字;通过ethtool-Keth1sgoff命令将Ethsg的参数值配置为Off,即,关闭sg;通过ethtool-Keth1命令将Ethgso的参数值配置为Off,即,关闭gso。可以理解地,表1中的值只是一种示例,实际应用中,根据服务器200的型号的不同,表1中各参数项对应的值不限于此。
/proc/sys/net/core/somaxconn(Listenfdbacklog),是Linux中的一个内核(kernel)参数,表示socket监听(listen)的监听队列(backlog)的上限。当一个TCP长连接请求(request)尚未被处理或建立时,他会进入backlog。该参数项的值的大小会影响监听端口上等待建立连接的队列长度。通过调整该值,可以加速TCP长连接的建立过程。
sg用于描述从通道(Channel)中读取或者写入到Channel的操作。分散(scatter)从Channel中读取是指在读操作时将读取的数据写入多个buffer中。因此,Channel将从Channel中读取的数据“分散(scatter)”到多个缓冲器(Buffer)中。聚集(gather)写入Channel是指在写操作时将多个buffer的数据写入同一个Channel,因此,Channel将多个Buffer中的数据“聚集(gather)”后发送到Channel。sgr经常用于需要将传输的数据分开处理的场合,例如传输一个由消息头和消息体组成的消息。
GSO的基本思想就是尽可能的推迟数据分片直至发送到网卡驱动之前,此时会检查网卡是否支持分片功能(如TSO、UFO),如果支持直接发送到网卡,如果不支持就进行分片后再发往网卡。这样大数据包只需走一次协议栈,而不是被分割成几个数据包分别走,这就提高了效率。上述TSO(TCPSegmentationOffload)是一种利用网卡对TCP数据包分片,减轻CPU负荷的一种技术,有时也被叫做LSO(Largesegmentoffload)。上述UFO(UDPFragmentationOffload)是一种利用网卡对UDP(UserDatagramProtocol,用户数据包协议)数据包分片,减轻CPU负荷的一种技术。
关闭网卡的sg和gso特性会对网络性能造成一定的损失,但是在信令传输这样小数据包的特殊场景下,小数据包也没有使用到sg等特性,故而影响不大。
步骤S103,根据配置结果监听TCP长连接请求,对监听到的TCP长连接请求进行处理,并将处理结果返回给对端。
具体地,第一步,使用epoll_create()函数创建文件描述,设定可管理的最大socketfd数目。
第二步,创建与epoll关联的多个接收线程,来处理epoll上的读通知事件。
第三步,创建一个监听socketfdListenSock,将该描述符设定为非阻塞模式,调用Listen()函数在socket上侦听有无新的TCP长连接请求,同时使用epoll_ctl()注册事件,最后启动网络监视线程。并根据/proc/sys/fs/epoll/max_user_watches参数限制Epoll监听socketfd个数限制,根据/proc/sys/net/core/somaxconn参数,限制监听队列的长度限制。
第四步,网络监视线程启动循环,epoll_wait()等待epoll事件发生。
第五步,如果epoll事件表明有新的TCP长连接请求,则调用accept()函数,将用户socketfd添加到epoll_data联合体,同时设定该描述符为非阻塞,并在epoll_event结构中设置要处理的事件类型为读和写,工作方式为epoll_ET。其中,epoll_data联合体用来保存触发事件的某个fd相关的数据,例如一个客户端连接到服务器,服务器通过调用accept函数可以得到于这个客户端对应的socketfd,可以把这fd赋给epoll_data的fd字段以便后面的读写操作在这个fd上进行。通过上述目标参数的设置,可以减小epoll_data联合体的内核态内存消耗。
第六步,如果epoll事件表明socketfd上有数据可读,则将该socket描述符加入可读队列,通知接收线程读入数据,并将接收到的数据放入到接收数据的链表中,经处理进程逻辑处理后,将反馈的数据包放入到发送数据链表中,等待由发送线程发送给客户端100。在逻辑处理过程中,根据/proc/sys/fs/file-max参数控制系统最大打开文件数限制,根据/proc/sys/fs/nr_open参数控制单个进程最大打开文件数。
在上述步骤执行期间,服务器200实时检测是否存在time-waitsockets,若存在,则将该time-waitsockets快速回收,并重新用于新的TCP长连接。
本发明实施例提供的基于信令传输的TCP长连接的实现方法,通过采用获取与服务器的型号对应的用于减小处理TCP长连接而产生的内核态内存消耗的目标参数,并根据该目标参数对该服务器进行系统内核的参数配置,然后根据配置结果处理TCP长连接这样优化参数的方式,可以较小的成本代价达到减小处理TCP长连接而产生的内核态内存消耗的技术效果,从而实现信令传输场景下的海量TCP长连接。
第二实施例
请参阅图4,图4为本发明第二实施例提供的基于信令传输的TCP长连接的实现方法的流程图。本实施例可应用于图1所示的应用环境中,通过图1所示的服务器200实现基于信令传输的海量TCP长连接。如图4所示,本实施例提供的基于信令传输的TCP长连接的实现方法包括:
步骤S201,获取服务器的标识信息,查询预置的配置参数数据库,获取与该标识信息对应的目标参数,该目标参数用于减小处理TCP长连接而产生的内存消耗;
步骤S202,根据该目标参数,对该服务器进行系统内核的参数配置;
步骤S201与步骤S202具体可参考第一实施例的相关内容,此处不再赘述。
步骤S203,检测防火墙的连接跟踪模块是否开启;
若开启,则执行步骤S204:去除该连接跟踪模块对指定端口连接的跟踪,然后执行步骤S205;
当服务器200的系统配置了防火墙策略,并且开启防火墙的连接跟踪模块(例如:nf_conntrack等),系统会对每条连接进行跟踪。收发数据包时,需要在连接跟踪中查找相关连接信息,这将要消耗大量的CPU资源。防火墙操作的时间复杂度为O(N*M),N为连接数,M为数据包数,因此在海量连接情况下更加消耗CPU。进一步地,服务器200可在启动后,检测防火墙的连接跟踪模块是否开启;若开启,则去除该连接跟踪模块对指定端口连接的跟踪,以减少因该连接跟踪模块而导致的CPU资源消耗,进一步提高处理效率。具体地,可通过iptables的raw表,去除nf_conntrack模块对指定端口连接的跟踪。
若未开启,则执行步骤S205,根据配置结果监听TCP长连接请求,对监听到的TCP长连接请求进行处理,并将处理结果返回给对端。
本步骤具体可参考第一实施例的相关内容,此处不再赘述。
本发明实施例提供的基于信令传输的TCP长连接的实现方法,通过采用获取与服务器的型号对应的用于减小处理TCP长连接而产生的内核态内存消耗的目标参数,并根据该目标参数对该服务器进行系统内核的参数配置,然后根据配置结果处理TCP长连接这样优化参数的方式,可以较小的成本代价达到减小处理TCP长连接而产生的内核态内存消耗的技术效果,从而实现信令传输场景下的海量TCP长连接。
第三实施例
图5为本发明第三实施例提供的基于信令传输的TCP长连接的实现装置的结构示意图。本实施例提供的基于信令传输的TCP长连接的实现装置可应用于图1所示的服务器200中,用于实现上述实施例中的基于信令传输的TCP长连接的实现方法。如图5所示,基于信令传输的TCP长连接的实现装置30包括:
获取模块31,用于获取服务器的标识信息,查询预置的配置参数数据库,获取与该标识信息对应的目标参数,该目标参数用于减小处理TCP长连接而产生的内核态内存消耗;
配置模块32,用于根据获取模块31获取的该目标参数,对该服务器进行系统内核的参数配置;
处理模块33,用于根据配置模块32的配置结果监听TCP长连接请求,对监听到的TCP长连接请求进行处理,并将处理结果返回给对端。
本实施例对基于信令传输的TCP长连接的实现装置30的各功能模块实现各自功能的具体过程,请参见上述图1至图4所示实施例中描述的具体内容,此处不再赘述。
本发明实施例提供的基于信令传输的TCP长连接的实现装置,通过采用获取与服务器的型号对应的用于减小处理TCP长连接而产生的内核态内存消耗的目标参数,并根据该目标参数对该服务器进行系统内核的参数配置,然后根据配置结果处理TCP长连接这样优化参数的方式,可以较小的成本代价达到减小处理TCP长连接而产生的内核态内存消耗的技术效果,从而实现信令传输场景下的海量TCP长连接。
第四实施例
图6为本发明第四实施例提供的基于信令传输的TCP长连接的实现装置的结构示意图。本实施例提供的基于信令传输的TCP长连接的实现装置可应用于图1所示的服务器200中,用于实现上述实施例中的基于信令传输的TCP长连接的实现方法。如图6所示,基于信令传输的TCP长连接的实现装置40包括:
获取模块31,用于获取服务器的标识信息,查询预置的配置参数数据库,获取与该标识信息对应的目标参数,该目标参数用于减小处理TCP长连接而产生的内核态内存消耗;
配置模块32,用于根据获取模块31获取的该目标参数,对该服务器进行系统内核的参数配置;
处理模块33,用于根据配置模块32的配置结果监听TCP长连接请求,对监听到的TCP长连接请求进行处理,并将处理结果返回给对端。
优选地,该目标参数至少包括:系统最大打开文件数限制,单个进程最大打开文件数限制,监听套接字文件描述符个数限制,监听队列的长度限制,将时间等待状态套接字用于新的TCP长连接限制,快速回收时间等待状态的套接字限制,分散聚集限制以及通用分片卸载限制中的一种。
优选地,配置模块32,还用于分别将该系统最大打开文件数限制、该单个进程最大打开文件数限制、该监听套接字文件描述符个数限制以及监听队列的长度限制的参数值配置为各自对应的该目标参数的值;
配置模块32,还用于将该将时间等待状态套接字用于新的TCP长连接的参数值配置为1,将该快速回收时间等待状态的套接字的参数值配置为1;
配置模块32,还用于将该分散聚集限制的参数值配置为Off;
配置模块32,还用于将该通用分片卸载限制的参数值配置为Off。
优选地,基于信令传输的TCP长连接的实现装置40还包括:
检测模块44,用于检测防火墙的连接跟踪模块是否开启;
去除模块45,用于若检测模块44的检测结果为开启,则去除该连接跟踪模块对指定端口连接的跟踪。
优选地,基于信令传输的TCP长连接的实现装置40还包括:
接收模块46,用于接收用户的配置指令;
获取模块31,还用于获取该用户输入的目标参数配置信息,该目标参数配置信息包括:该服务器的标识信息与该目标参数,其中该标识信息包括该服务器的型号,该目标参数与该型号对应;
生成模块47,用于根据该配置指令及该目标参数配置信息生成该配置参数数据库。
本实施例对基于信令传输的TCP长连接的实现装置30的各功能模块实现各自功能的具体过程,请参见上述图1至图4所示实施例中描述的具体内容,此处不再赘述。
本发明实施例提供的基于信令传输的TCP长连接的实现装置,通过采用获取与服务器的型号对应的用于减小处理TCP长连接而产生的内核态内存消耗的目标参数,并根据该目标参数对该服务器进行系统内核的参数配置,然后根据配置结果处理TCP长连接这样优化参数的方式,可以较小的成本代价达到减小处理TCP长连接而产生的内核态内存消耗的技术效果,从而实现信令传输场景下的海量TCP长连接。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者装置中还存在另外的相同要素。
本领域技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述,仅是本发明的较佳实施例而已,并非对本发明作任何形式上的限制,虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明,任何熟悉本专业的技术人员,在不脱离本发明技术方案范围内,当可利用上述揭示的技术内容做出些许更动或修饰为等同变化的等效实施例,但凡是未脱离本发明技术方案内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化与修饰,均仍属于本发明技术方案的范围内。
Claims (10)
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所述的装置,其特征在于,所述装置还包括:
接收模块,用于接收用户的配置指令;
所述获取模块,还用于获取所述用户输入的目标参数配置信息,所述目标参数配置信息包括:所述服务器的标识信息与所述目标参数,其中所述标识信息包括所述服务器的型号,所述目标参数与所述型号对应;
生成模块,用于根据所述配置指令及所述目标参数配置信息生成所述配置参数数据库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410469367.8A CN105490985B (zh) | 2014-09-15 | 2014-09-15 | 一种基于信令传输的tcp长连接的实现方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410469367.8A CN105490985B (zh) | 2014-09-15 | 2014-09-15 | 一种基于信令传输的tcp长连接的实现方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105490985A true CN105490985A (zh) | 2016-04-13 |
CN105490985B CN105490985B (zh) | 2019-12-13 |
Family
ID=55677708
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410469367.8A Active CN105490985B (zh) | 2014-09-15 | 2014-09-15 | 一种基于信令传输的tcp长连接的实现方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105490985B (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106201830A (zh) * | 2016-07-27 | 2016-12-07 | 福建富士通信息软件有限公司 | 一种基于epoll写数据监视的方法以及系统 |
CN106254179A (zh) * | 2016-08-05 | 2016-12-21 | 深圳先进技术研究院 | 一种心跳包异步控制方法及装置 |
CN106357607A (zh) * | 2016-07-20 | 2017-01-25 | 北京海誉动想科技股份有限公司 | 电子设备连接与安全验证、通信、通信监测方法及装置 |
CN106375324A (zh) * | 2016-09-08 | 2017-02-01 | 深圳先进技术研究院 | 一种基于tcp/ip通信协议的网络通信系统及方法 |
CN109656628A (zh) * | 2018-12-24 | 2019-04-19 | 中国科学院电子学研究所 | 一种基于网络接口的数据加载方法 |
CN109842511A (zh) * | 2017-11-28 | 2019-06-04 | 网宿科技股份有限公司 | 一种tcp性能参数的确定方法及系统 |
CN110417592A (zh) * | 2019-07-25 | 2019-11-05 | 深圳创维数字技术有限公司 | 一种Qos限速方法、装置、路由设备及存储介质 |
CN112822072A (zh) * | 2020-12-31 | 2021-05-18 | 鲸灵科技股份有限公司 | 一种轻量化计算任务的基于tcp的双向通信协议 |
CN114285771A (zh) * | 2021-12-30 | 2022-04-05 | 阿里巴巴(中国)有限公司 | 一种tcp连接的连接状态追踪方法及装置 |
CN115086441A (zh) * | 2022-06-09 | 2022-09-20 | 北京百度网讯科技有限公司 | 信息传输方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7430738B1 (en) * | 2001-06-11 | 2008-09-30 | Microsoft Corporation | Methods and arrangements for routing server requests to worker processes based on URL |
CN101706754A (zh) * | 2009-09-08 | 2010-05-12 | 厦门敏讯信息技术股份有限公司 | 嵌入式系统中连续物理内存分配方法和装置 |
CN102104628A (zh) * | 2010-12-29 | 2011-06-22 | 北京新媒传信科技有限公司 | 一种服务器集群系统及其管理方法 |
CN103634323A (zh) * | 2013-12-06 | 2014-03-12 | 北京奇虎科技有限公司 | 基于长连接的数据处理实现方法、系统及装置 |
-
2014
- 2014-09-15 CN CN201410469367.8A patent/CN105490985B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7430738B1 (en) * | 2001-06-11 | 2008-09-30 | Microsoft Corporation | Methods and arrangements for routing server requests to worker processes based on URL |
CN101706754A (zh) * | 2009-09-08 | 2010-05-12 | 厦门敏讯信息技术股份有限公司 | 嵌入式系统中连续物理内存分配方法和装置 |
CN102104628A (zh) * | 2010-12-29 | 2011-06-22 | 北京新媒传信科技有限公司 | 一种服务器集群系统及其管理方法 |
CN103634323A (zh) * | 2013-12-06 | 2014-03-12 | 北京奇虎科技有限公司 | 基于长连接的数据处理实现方法、系统及装置 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106357607A (zh) * | 2016-07-20 | 2017-01-25 | 北京海誉动想科技股份有限公司 | 电子设备连接与安全验证、通信、通信监测方法及装置 |
CN106201830A (zh) * | 2016-07-27 | 2016-12-07 | 福建富士通信息软件有限公司 | 一种基于epoll写数据监视的方法以及系统 |
CN106254179A (zh) * | 2016-08-05 | 2016-12-21 | 深圳先进技术研究院 | 一种心跳包异步控制方法及装置 |
CN106254179B (zh) * | 2016-08-05 | 2020-07-24 | 深圳先进技术研究院 | 一种心跳包异步控制方法及装置 |
CN106375324A (zh) * | 2016-09-08 | 2017-02-01 | 深圳先进技术研究院 | 一种基于tcp/ip通信协议的网络通信系统及方法 |
CN109842511B (zh) * | 2017-11-28 | 2022-07-08 | 网宿科技股份有限公司 | 一种tcp性能参数的确定方法及系统 |
CN109842511A (zh) * | 2017-11-28 | 2019-06-04 | 网宿科技股份有限公司 | 一种tcp性能参数的确定方法及系统 |
CN109656628A (zh) * | 2018-12-24 | 2019-04-19 | 中国科学院电子学研究所 | 一种基于网络接口的数据加载方法 |
CN110417592A (zh) * | 2019-07-25 | 2019-11-05 | 深圳创维数字技术有限公司 | 一种Qos限速方法、装置、路由设备及存储介质 |
CN112822072A (zh) * | 2020-12-31 | 2021-05-18 | 鲸灵科技股份有限公司 | 一种轻量化计算任务的基于tcp的双向通信协议 |
CN114285771A (zh) * | 2021-12-30 | 2022-04-05 | 阿里巴巴(中国)有限公司 | 一种tcp连接的连接状态追踪方法及装置 |
CN114285771B (zh) * | 2021-12-30 | 2024-02-06 | 阿里巴巴(中国)有限公司 | 一种tcp连接的连接状态追踪方法及装置 |
CN115086441A (zh) * | 2022-06-09 | 2022-09-20 | 北京百度网讯科技有限公司 | 信息传输方法、装置、电子设备及存储介质 |
CN115086441B (zh) * | 2022-06-09 | 2024-03-19 | 北京百度网讯科技有限公司 | 信息传输方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN105490985B (zh) | 2019-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105490985A (zh) | 一种基于信令传输的tcp长连接的实现方法及装置 | |
WO2023087938A1 (zh) | 数据处理方法、可编程网卡设备、物理服务器及存储介质 | |
US10698717B2 (en) | Accelerator virtualization method and apparatus, and centralized resource manager | |
US20200007445A1 (en) | Enhanced service function chain | |
CA2898053A1 (en) | Deep packet inspection method, device, and coprocessor | |
CN109981403A (zh) | 虚拟机网络数据流量监控方法及装置 | |
CN103209141A (zh) | 一种交换芯片处理数据报文的方法及交换芯片 | |
WO2023103419A1 (zh) | 基于消息队列的5g消息批量发送方法、装置及电子设备 | |
CN112261094A (zh) | 一种报文处理方法及代理服务器 | |
AU2019256257A1 (en) | Processor core scheduling method and apparatus, terminal, and storage medium | |
KR20190029486A (ko) | 탄력적 허니넷 시스템 및 그 동작 방법 | |
CN103944979A (zh) | 一种消息推送方法、装置及系统 | |
CN109088957B (zh) | Nat规则管理的方法、装置和设备 | |
CN114710571A (zh) | 数据包处理系统 | |
CN113282410B (zh) | 资源配置方法及装置 | |
CN113420007B (zh) | 数据库访问的审计处理方法、装置及电子设备 | |
CN103068052B (zh) | 资源动态配置方法、系统和Portal服务器 | |
CN105430028A (zh) | 服务调用方法、提供方法及节点 | |
CN116846669A (zh) | 网络流量处理方法、装置、计算机设备、存储介质及产品 | |
Tang et al. | Towards high-performance packet processing on commodity multi-cores: current issues and future directions | |
CN103558995A (zh) | 一种存储控制芯片及磁盘报文传输方法 | |
CN105323234B (zh) | 业务节点能力处理方法、装置、业务分类器及业务控制器 | |
WO2023030178A1 (zh) | 一种基于用户态协议栈的通信方法及相应装置 | |
CN105939242B (zh) | 实现虚拟系统的方法及装置 | |
CN111669356B (zh) | IPsec VPN服务器中批量处理网络隔离空间的方法及IPsec VPN服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230915 Address after: 518057 Tencent Building, No. 1 High-tech Zone, Nanshan District, Shenzhen City, Guangdong Province, 35 floors Patentee after: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. Patentee after: TENCENT CLOUD COMPUTING (BEIJING) Co.,Ltd. Address before: 2, 518000, East 403 room, SEG science and Technology Park, Zhenxing Road, Shenzhen, Guangdong, Futian District Patentee before: TENCENT TECHNOLOGY (SHENZHEN) Co.,Ltd. |
|
TR01 | Transfer of patent right |