CN102724132B - 一种提高tcp连接复用处理效率的方法及装置 - Google Patents
一种提高tcp连接复用处理效率的方法及装置 Download PDFInfo
- Publication number
- CN102724132B CN102724132B CN201210226876.9A CN201210226876A CN102724132B CN 102724132 B CN102724132 B CN 102724132B CN 201210226876 A CN201210226876 A CN 201210226876A CN 102724132 B CN102724132 B CN 102724132B
- Authority
- CN
- China
- Prior art keywords
- tcp
- data processing
- rear end
- tcp connection
- processing threads
- 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
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种提高TCP连接复用处理效率的装置,应用于后端加速设备上,其特征在于,该装置包括:监听单元,用于建立与前端TCP连接,并按照预定的调度算法将前端TCP连接分配数据处理单元,建立前端TCP连接与数据处理单元之间的对应关系;数据分发单元,根据所述对应关系将通过所述前端TCP连接上发送的TCP数据提交给对应的数据处理单元;数据处理单元,用于将前端TCP连接复用到后端TCP连接。本发明创建了多个socket处理线程,这使得后端加速设备可以并行地处理大量的前端TCP连接。本发明是在内核中创建socket数据处理线程来应对来自前端用户的前端TCP连接,这样简化了后端加速设备在一次TCP连接复用过程中的处理流程。
Description
技术领域
本发明涉及网络传输层处理技术,一种提高TCP连接复用处理效率的方法及装置。
背景技术
随着互联网的飞速发展,网络规模的迅速扩大,网络数据访问量的急剧增加。提供高效的数据访问成为网络发展的新需求。高效的数据访问需要从数据访问速度、实际有效数据的比率、数据提供者的响应能力等方面着手。其中,TCP连接复用通过复用已经建立的TCP连接来实现减少与服务器的连接及断开次数。TCP连接复用通过将客户端的多条短连接合并为与服务器的一条长连接来进行通信,减少了TCP连接及断开的次数,提高了实际有效数据的交换比率(也就是说数据传输的开销减少了),加速了服务器的响应,改善了服务器的性能,从而实现了提供高效的数据访问。
在互联网的网页访问等应用中,很多情况下用户一次访问传送的数据量比较小,但每次访问都可能需要建立起很多的TCP连接,这就会造成同时有大量的TCP连接在冲击服务器。这样的业务模型会带来以下问题:(1)一个TCP连接的建立都需要请求连接方与被请求方之间进行三次握手,因为每次连接都需要分配新的端口号、资源和相应的数据结构,这明显增加了服务器的负担;(2)如果某些服务器需要用户认证以及对数据进行加密等操作,每次连接都进行重新认证会花费很多时间;(3)每台服务器上最大可连接数是有限的,所以同时有大量的连接发生就会导致部分连接失败;(4)大量的连接会导致服务器的CPU开销很高,降低了服务器的性能。
当前实现TCP连接复用的技术中采用用户程序实现,而用户程序是运行在操作系统用户态的,数据需要从设备驱动到内核然后转由用户程序进行处理,处理过程相对复杂,服务器的数据处理能力极大的受到限制。当网络访问请求庞大时,如何及时高效地合并连接并且迅速处理服务器的响应数据成为亟待解决的问题。
发明内容
有鉴于此,本发明提供一种提高TCP连接复用处理效率的装置,应用于后端加速设备上,其特征在于,该装置包括:
监听单元,用于在后端加速设备上建立与前端用户之间的前端TCP连接,并按照预定的调度算法将已经建立的前端TCP连接分配一个数据处理单元;并建立前端TCP连接与数据处理单元之间的对应关系;该监听单元进一步用于在后端加速设备上建立与后端服务器之间的后端TCP连接并将该后端TCP连接分配给所述数据处理单元;
数据分发单元,根据所述对应关系将通过所述前端TCP连接上发送的TCP数据提交给对应的数据处理单元;
数据处理单元,用于将前端TCP连接复用到后端TCP连接,该复用过程包括:将前端TCP连接上发送的TCP数据承载到所述后端TCP连接上发送给所述后端服务器,并将所述后端TCP连接上收到的TCP数据承载到对应的前端TCP连接上发送给所述前端用户。
本发明还一种提高TCP连接复用处理效率的方法,应用于后端加速设备上,其中该后端加速设备运行时创建有至少一个监听线程以及多个数据处理线程,其特征在于,该方法包括:
A、监听线程在后端加速设备上建立与前端用户之间的前端TCP连接,并按照预定的调度算法将已经建立的前端TCP连接分配一个数据处理线程;并建立前端TCP连接与数据处理线程之间的对应关系;
B、监听线程在后端加速设备上建立与后端服务器之间的后端TCP连接并将该后端TCP连接分配给所述数据处理单元;
C、根据所述对应关系将通过所述前端TCP连接上发送的TCP数据提交给对应的数据处理线程;
D、数据处理线程将前端TCP连接复用到后端TCP连接,该复用过程包括:将前端TCP连接上发送的TCP数据承载到所述后端TCP连接上发送给所述后端服务器,并将所述后端TCP连接上收到的TCP数据承载到对应的前端TCP连接上发送给所述前端用户。
由于本发明创建了多个socket处理线程,这使得后端加速设备可以并行地处理大量的前端TCP连接。而且本发明采用一个socket监听线程来做调度,可以将前端TCP连接均衡地调度多个socket数据处理线程进行并行处理。另外,由于本发明是在内核中创建socket数据处理线程来应对来自前端用户的前端TCP连接,这样简化了后端加速设备在一次TCP连接复用过程中的处理流程,比现有技术与操作系统中用户进程交互的方式更加简洁,效率更高。综上所述,本发明可以让后端加速设备的处理效率大幅度提高。
附图说明
图1是本发明一种提高TCP连接复用处理效率装置的逻辑结构图。
图2是本发明一种TCP连接复用处理过程示意图。
具体实施方式
TCP连接复用技术通过将前端多个用户的TCP请求复用到后端加速设备与服务器建立的一个TCP连接上。这种技术能够大大减小服务器的性能负载,减少与服务器之间新建TCP连接所带来的延时,并最大限度的降低前端用户对后端服务器的并发连接数请求,减少服务器的资源占用。请参考图1以及图2,本发明的一种基于计算机程序实现的提高TCP连接复用处理效率的装置包括:资源创建单元、监听单元、数据分发单元以及数据处理单元;该装置运行在后端加速设备时执行如下处理流程:
步骤101,资源创建单元在内核中创建监听单元及多个数据处理单元;
步骤102,监听单元,用于在后端加速设备上建立与前端用户之间的前端TCP连接,并按照预定的调度算法将已经建立的前端TCP连接分配一个数据处理单元;并建立前端TCP连接与数据处理单元之间的对应关系;该监听单元进一步用于在后端加速设备上建立与后端服务器之间的后端TCP连接并将该后端TCP连接分配给所述数据处理单元;
步骤103,数据分发单元,根据所述对应关系将通过所述前端TCP连接上发送的TCP数据提交给对应的数据处理单元;
步骤104,数据处理单元,用于将前端TCP连接复用到后端TCP连接,该复用过程包括:将前端TCP连接上发送的TCP数据承载到所述后端TCP连接上发送给所述后端服务器,并将所述后端TCP连接上收到的TCP数据承载到对应的前端TCP连接上发送给所述前端用户。
步骤105,数据处理单元在所述前端TCP连接符合预设断开条件时断开与所述前端用户之间的前端TCP连接。
在优选的实施方式中,本技术发明采用多线程实现TCP连接复用,初始的时候可以在内核创建一个socket监听线程作为监听单元来实现对前后端TCP连接的建立工作以及TCP连接的调度分配工作,在内核创建多个socket数据处理线程作为数据处理单元来实现TCP连接复用过程中的TCP数据处理以及对分配到前端TCP连接进行后续管理。
来自前端用户的TCP连接请求会先到达后端加速设备的驱动层面,驱动处理后会到达后端加速设备的协议栈,socket监听线程可以监听来自协议栈的前端用户的TCP连接请求,并与前端用户建立前端TCP连接。然后使用预定的调度算法(以轮询方式为例)将前端TCP连接依次分配给socket数据处理线程。
在初始的时候多个数据处理线程可能都没有后端TCP连接可用,当监听线程调度到第一个数据处理线程时,由于该数据处理线程没有可用的后端TCP连接,此时监听线程可以与后端服务器新建一个后端TCP连接,然后将这个新建的后端TCP连接分配给第一个数据处理线程。数据处理线程通常是按照预定的比例进行TCP连接复用的,比如说20个前端TCP连接承载的TCP数据复用到1个后端TCP连接上发送给后端服务器。如果调度到某一个数据处理线程时,如果该数据处理线程已经被分配了40个前端TCP连接,而后端TCP连接只有2个,这说明所述预定的比例已经被充分满足,即当前该数据处理线程没有可用的后端TCP连接,此时监听线程可以与后端服务器新建一个后端TCP连接,然后将这个新建的后端TCP连接分配给该数据处理线程。在优选的实施方式中,后端加速设备与后端服务器之间的后端TCP连接可以长期保持连接状态的,只有在业务特别空闲等特殊情况下才需要考虑释放后端TCP连接,这样可以避免后端服务器在建立后端TCP连接上消耗更多的资源。
在将前端TCP连接分配到数据处理线程时,监听线程还可以将前端TCP连接与数据处理线程之间的对应关系保存起来,这样数据分发单元从协议栈收到某个前端TCP连接上承载TCP数据的时候可以根据该对应关系知道当前的TCP数据分发给对应的数据处理线程进行处理。数据处理线程主要用于将在前后端TCP连接之间进行TCP数据的复用。在优选的实施方式中,复用的方式是以轮询方式进行复用,也就是在时间这个维度上进行复用。需要注意的是,在轮询方式复用的过程中每次复用的时间未必是相同,因为每一次的前端用户与后端服务器之间的数据交互长短不一,而且有时虽然TCP连接虽然还存活,但是轮询到的时候并没有数据交互。
具体来说,假设数据处理线程当前轮询到第15个前端TCP连接(假设来自前端用户A),来自该前端用户A的TCP数据报文会通过这个前端TCP连接到达后端加速设备,经过驱动与协议栈处理之后被数据处理线程收到,数据处理线程可以从TCP数据报文中获得其承载的载荷(也就是实际的TCP数据),把获得的TCP数据再充分封装为新的TCP数据报文放到后端TCP连接上,经过协议栈以及驱动处理之后发送给后端服务器。后端服务器收到之后会回应前端用户,比如说TCP数据可能是一个HTTP请求,后端服务器响应之后可能会发送HTTP应答。后端服务器的TCP数据到达数据处理线程之后,数据处理线程可以将其从后端TCP连接上卸下来然后承载到前端TCP连接上发送给前端用户A。接下来数据处理线程再处理第16个前端TCP连接,如此往复形成轮询的复用方式,从而实现一条后端TCP连接为多个前端TCP连接所共用。
进一步来说,由于前端TCP连接并不是长期保持的,比如说用户可能会主动断开,或者是TCP连接超时等,所以满足各种断开条件时,数据处理线程会相应断开前端TCP连接。然后对自身分配到的前端TCP连接数量进行更新,更新后的前端TCP连接数量可以会被监听线程查看到,监听线程在分配新的前端TCP连接时可以准确地知道数据处理线程是否有的后端TCP连接。
由于本发明创建了多个socket处理线程,这使得后端加速设备可以并行地处理大量的前端TCP连接。而且本发明采用一个socket监听线程来做调度,可以将前端TCP连接均衡地调度多个socket数据处理线程进行并行处理。另外,由于本发明是在内核中创建socket数据处理线程来应对来自前端用户的前端TCP连接,这样简化了后端加速设备在一次TCP连接复用过程中的处理流程,比现有技术与操作系统中用户进程交互的方式更加简洁,效率更高。综上所述,本发明可以让后端加速设备的处理效率大幅度提高。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (10)
1.一种提高TCP连接复用处理效率的装置,应用于后端加速设备上,其特征在于,该装置包括:
资源创建单元,用于在内核中创建监听单元以及多个数据处理单元;
监听单元,用于在后端加速设备上建立与前端用户之间的前端TCP连接,并按照预定的调度算法将已经建立的前端TCP连接分配一个数据处理单元;并建立前端TCP连接与数据处理单元之间的对应关系;该监听单元进一步用于在后端加速设备上建立与后端服务器之间的后端TCP连接并将该后端TCP连接分配给所述数据处理单元;
数据分发单元,根据所述对应关系将通过所述前端TCP连接上发送的TCP数据提交给对应的数据处理单元;
数据处理单元,用于将前端TCP连接复用到后端TCP连接,该复用过程包括:将前端TCP连接上发送的TCP数据承载到所述后端TCP连接上发送给所述后端服务器,并将所述后端TCP连接上收到的TCP数据承载到对应的前端TCP连接上发送给所述前端用户。
2.如权利要求1所述的装置,其特征在于,所述数据处理单元进一步用于以轮询的方式将多个前端TCP连接复用到后端TCP连接上。
3.如权利要求2所述的装置,其特征在于,所述数据处理单元用于按照预定的比例将多个前端TCP连接复用到一个后端TCP连接上,所述监听单元进一步用于以轮询的方式将所述前端TCP连接分配给所述数据处理单元,并在分配所述前端TCP连接之前判断数据处理单元是否有可用的后端TCP连接,如果是则继续,否则新建一个后端TCP连接,并将该后端TCP连接分配给该数据处理单元。
4.如权利要求2所述的装置,其特征在于,所述数据处理单元进一步用于在所述前端TCP连接符合预设断开条件时断开所述前端TCP连接。
5.如权利要求1所述的装置,其特征在于,所述监听单元为内核socket监听线程,所述数据处理单元为内核socket数据处理线程。
6.一种提高TCP连接复用处理效率的方法,应用于后端加速设备上,其中该后端加速设备运行时创建有至少一个监听线程以及多个数据处理线程,其特征在于,该方法包括:
A、监听线程在后端加速设备上建立与前端用户之间的前端TCP连接,并按照预定的调度算法将已经建立的前端TCP连接分配一个数据处理线程;并建立前端TCP连接与数据处理线程之间的对应关系;
B、监听线程在后端加速设备上建立与后端服务器之间的后端TCP连接并将该后端TCP连接分配给所述数据处理线程;
C、根据所述对应关系将通过所述前端TCP连接上发送的TCP数据提交给对应的数据处理线程;
D、数据处理线程将前端TCP连接复用到后端TCP连接,该复用过程包括:将前端TCP连接上发送的TCP数据承载到所述后端TCP连接上发送给所述后端服务器,并将所述后端TCP连接上收到的TCP数据承载到对应的前端TCP连接上发送给所述前端用户。
7.如权利要求6所述的方法,其特征在于,其中所述数据处理线程以轮询的方式将多个前端TCP连接复用到后端TCP连接上。
8.如权利要求7所述的方法,其特征在于,
步骤D所述将前端TCP连接复用到后端TCP连接具体为:按照预定的比例将多个前端TCP连接复用到一个后端TCP连接上;
所述步骤A包括:以轮询的方式将所述前端TCP连接分配给所述数据处理线程,并在分配所述前端TCP连接之前判断数据处理线程是否有可用的后端TCP连接,如果是则继续,否则新建一个后端TCP连接,并将该后端TCP连接分配给该数据处理线程。
9.如权利要求7所述的方法,其特征在于,所述步骤D还包括:数据处理线程在所述前端TCP连接符合预设断开条件时断开所述前端TCP连接。
10.如权利要求6所述的方法,其特征在于,所述监听线程为内核socket监听线程,所述数据处理线程为内核socket数据处理线程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210226876.9A CN102724132B (zh) | 2012-06-29 | 2012-06-29 | 一种提高tcp连接复用处理效率的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210226876.9A CN102724132B (zh) | 2012-06-29 | 2012-06-29 | 一种提高tcp连接复用处理效率的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102724132A CN102724132A (zh) | 2012-10-10 |
CN102724132B true CN102724132B (zh) | 2015-03-18 |
Family
ID=46949797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210226876.9A Active CN102724132B (zh) | 2012-06-29 | 2012-06-29 | 一种提高tcp连接复用处理效率的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102724132B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103533025A (zh) * | 2013-09-18 | 2014-01-22 | 北京航空航天大学 | 一种减少多核系统上tcp连接建立时锁竞争的方法 |
CN103685480A (zh) * | 2013-11-29 | 2014-03-26 | 云海创想信息技术(无锡)有限公司 | 一种传输控制协议网络实现方法以及一种服务器 |
CN104410607B (zh) * | 2014-11-06 | 2018-05-22 | 上海汽车集团股份有限公司 | 基于线程池的发动机测控方法 |
CN104852929B (zh) * | 2015-06-02 | 2018-01-30 | 上海斐讯数据通信技术有限公司 | 一种基于tcp/ip协议的长连接容错机制 |
CN104994093B (zh) * | 2015-07-01 | 2018-11-02 | 网宿科技股份有限公司 | 一种服务负载均衡方法及系统 |
CN105763634B (zh) * | 2016-04-14 | 2019-01-04 | 北京思特奇信息技术股份有限公司 | 一种基于tcp长连接的服务实现方法和装置 |
CN109819031A (zh) * | 2019-01-24 | 2019-05-28 | 广州虎牙信息科技有限公司 | 一种连接方法、装置、设备和存储介质 |
CN114928899B (zh) * | 2022-07-18 | 2022-10-28 | 荣耀终端有限公司 | 物理链路的建立方法和电子设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127645A (zh) * | 2007-08-28 | 2008-02-20 | 中国科学院软件研究所 | 一种远程网络服务的完整性检验方法 |
-
2012
- 2012-06-29 CN CN201210226876.9A patent/CN102724132B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101127645A (zh) * | 2007-08-28 | 2008-02-20 | 中国科学院软件研究所 | 一种远程网络服务的完整性检验方法 |
Non-Patent Citations (2)
Title |
---|
基于TCP的多路复用网络模型的设计与实现;窦凌云等;《计算机应用研究》;20060601;全文 * |
支持HTTP多路复用的代理服务器的设计与实现;黄锦昌等;《计算机应用》;20030630;第23卷;第2-4节 * |
Also Published As
Publication number | Publication date |
---|---|
CN102724132A (zh) | 2012-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102724132B (zh) | 一种提高tcp连接复用处理效率的方法及装置 | |
CN102377685B (zh) | 一种订阅消息的发送系统以及订阅消息的发送方法 | |
CN103812949B (zh) | 一种面向实时云平台的任务调度与资源分配方法及系统 | |
CN105577801B (zh) | 一种业务加速方法及装置 | |
CN104079630A (zh) | 一种业务服务端负载均衡方法、客户端、服务端以及系统 | |
CN103118076A (zh) | 升级服务器集群系统及其负载均衡方法 | |
CN102394929A (zh) | 一种面向会话的云计算负载均衡系统及其方法 | |
CN104735095A (zh) | 一种云计算平台作业调度方法及装置 | |
EP2916522B1 (en) | File transmission method and system thereof | |
CN102158387A (zh) | 基于动态负载均衡与互相热备的保护故障信息处理系统 | |
CN109828940A (zh) | 一种智能网卡及数据处理系统和方法 | |
CN1979423A (zh) | 多处理器负载分配调整方法 | |
US20130054735A1 (en) | Wake-up server | |
CN105786447A (zh) | 服务器处理数据的方法、装置及服务器 | |
CN111327483A (zh) | 一种设备纳管方法、系统及存储介质 | |
CN104468710A (zh) | 一种混合大数据处理系统及处理方法 | |
CN107071067A (zh) | 一种基于Cgo的高性能证券行情接入系统和方法 | |
CN105046393A (zh) | 基于云计算的交通资源管理系统 | |
CN102523107A (zh) | 均衡网管系统服务端和客户端运算压力的方法及装置 | |
CN103297514A (zh) | 基于云架构的虚拟机管理平台及管理方法 | |
CN103618665A (zh) | 一种向客户端推送消息的方法 | |
CN103677994B (zh) | 分布式数据处理系统、设备及方法 | |
KR20120128013A (ko) | 망 부하 감소를 위한 푸시 서비스 제공 시스템 및 방법 | |
CN109376509A (zh) | 一种kvm任务自动派发系统以及自动派发方法 | |
CN105208119A (zh) | 一种云数据中心任务分配方法、装置和系统 |
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 | ||
CP01 | Change in the name or title of a patent holder |
Address after: Binjiang District and Hangzhou city in Zhejiang Province Road 310000 No. 68 in the 6 storey building Patentee after: Hangzhou Dipu Polytron Technologies Inc Address before: Binjiang District and Hangzhou city in Zhejiang Province Road 310000 No. 68 in the 6 storey building Patentee before: Hangzhou Dipu Technology Co., Ltd. |
|
CP01 | Change in the name or title of a patent holder |