CN106357710A - 一种基于多核网络处理器的tcp粘合***及方法 - Google Patents
一种基于多核网络处理器的tcp粘合***及方法 Download PDFInfo
- Publication number
- CN106357710A CN106357710A CN201510416692.2A CN201510416692A CN106357710A CN 106357710 A CN106357710 A CN 106357710A CN 201510416692 A CN201510416692 A CN 201510416692A CN 106357710 A CN106357710 A CN 106357710A
- Authority
- CN
- China
- Prior art keywords
- tcp
- client
- module
- bonding
- core network
- 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.)
- Pending
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1045—Proxies, e.g. for session initiation protocol [SIP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种基于多核网络处理器的TCP粘合***,所述***包括:客户端通信模块、网络代理服务模块、服务端通信模块和TCP粘合模块;所述客户端通信模块用于建立客户端与多核网络处理器的TCP连接;所述网络代理服务模块用于解析和提取客户端发送的数据请求;对提取的数据请求进行判断生成TCP粘合指令与TCP连接基本信息;并发送到所述TCP粘合模块;执行负载均衡策略选择指定的服务节点作为服务端;所述服务端通信模块,用于建立指定的服务端与多核网络处理器的TCP连接;所述TCP粘合模块,用于接收服务端发送的响应数据包,完成客户端与服务端双向连接的数据包粘合处理,并将粘合处理后的数据包发送给客户端。
Description
技术领域
本发明涉及计算机网络技术领域,特别涉及一种基于多核网络处理器的TCP粘合***及方法。
背景技术
负载均衡集群是实现多台服务器协同工作和并行处理业务的手段,核心思想是增加并行工作的主机数量,根据当前的主机运行状况,采用一定的调度策略,将大量的请求报文分配到不同的服务器处理,以减轻单个服务器的工作负载,提高资源利用率和应用***的运行性能。其中,面向内容交换的负载平衡能够克服基于TCP,IP分负载均衡技术的缺点,在对具体的服务请求进行调度时考虑请求的内容。
TCP粘合技术通过在内核中对包头的序列号等字段的处理,将已调度的数据包进行对应端口的数据传送,无需再经过负载的高层协议处理,使得应用数据包的处理速度大大加快,接近IP交换的速度。
目前,在Linux操作***上实现TCP粘合,会造成无法避免的网络包处理开销,包括数据拷贝次数增加、上下文切换延迟、网络包处理产生大量中断操作等,以上网络包处理开销将导致***的CPU使用效率降低,同时数据处理速率大幅降低,代理服务器节点成为整个***的瓶颈,影响用户体验。
发明内容
本发明的目的在于克服目前在在Linux操作***上实现TCP粘合存在的上述问题,基于目前多核网络处理多个核心可以分别运行不同的操作***,提出了一种基于多核网络处理器的TCP粘合方法,该方法通过将TCP粘合功能卸载到实时操作***中,加速应用级负载均衡代理设备的数据处理,提高了网络数据包的处理速度。
为了实现上述目的,本发明提供了一种基于多核网络处理器的TCP粘合***,所述***包括:客户端通信模块、网络代理服务模块、服务端通信模块和TCP粘合模块;
所述客户端通信模块,用于建立客户端与多核网络处理器的TCP连接;
所述网络代理服务模块,运行在多核网络处理器中的Linux操作***上,用于解析和提取客户端通过所述客户端通信模块发送的数据请求;对提取的数据请求进行判断生成TCP粘合指令与TCP连接基本信息;执行负载均衡策略;选择指定的服务节点作为服务端;下发生成的TCP粘合指令与TCP连接基本信息到所述TCP粘合模块;
所述服务端通信模块,用于建立指定的服务端与多核网络处理器的TCP连接;将客户端的数据请求发送到指定的服务端,并将服务端的响应数据包发送到TCP粘合模块;
所述TCP粘合模块,运行在多核网络处理器中的实时***上,用于接收网络代理服务模块下发的TCP粘合指令和TCP连接信息,接收服务端发送的响应数据包,完成客户端与服务端双向连接的数据包粘合处理,并将粘合处理后的数据包通过所述客户端通信模块发送给客户端。
上述技术方案中,所述网络代理服务模块包括:客户端数据接收单元、Linux通信接口单元和负载均衡处理单元;
所述客户端数据接收单元,用于接收客户端通过所述客户端通信模块发送的数据请求,并对数据请求进行解析和提取;对提取的数据请求进行判断生成TCP粘合指令与TCP连接基本信息,将TCP粘合指令与TCP连接基本信息通过所述Linux通信接口单元发送到TCP粘合模块;将解析后的请求数据中的目标文件类型和服务级别的响应信息发送到负载均衡处理单元;
所述Linux通信接口单元,用于建立所述网络代理服务模块与TCP粘合模块的连接通信;
所述负载均衡处理单元,用于根据请求数据中的目标文件类型或者服务级别的响应信息,执行负载均衡策略,选择符合服务条件的负载最轻的节点为指定服务端。
上述技术方案中,所述TCP连接信息包括:两个方向TCP连接的四元组信息:源IP地址、目的IP地址、源端口号和目的端口号、客户端报文初始序列号CSEQ、代理设备响应客户端的报文初始序列号DSEQ、被选实际服务节点报文初始序列号SSEQ。
上述技术方案中,所述负载最轻的节点的判断依据为实时连接数、CPU使用率、响应速度或处理能力中的一项或多项组合。
上述技术方案中,所述TCP粘合模块包括实时***通信接口单元、客户端数据发送单元和粘合处理单元;
所述实时***通信接口单元,用于与所述Linux通信接口单元连接,建立所述网络代理服务模块与TCP粘合模块之间的通信连接;
所述粘合处理单元,用于根据接收到的TCP粘合指令对服务端发送的响应数据内容进行处理,完成客户端与服务端的数据包粘合处理;并将粘合处理结果通过所述实时***通信接口单元发送到所述网络代理服务模块;
所述客户端数据发送单元,用于将所述粘合处理单元处理后的数据包通过所述客户端通信模块发送给客户端。
上述技术方案中,所述实时***通信接口单元与Linux通信接口单元的通信方式为:核间通信或共享内存。
基于上述的***,本发明还提供了一种基于多核网络处理器的TCP粘合方法,所述方法包括:
所述客户端通信模块启动,客户端建立与多核网络处理器的TCP连接;
所述网络代理服务模块启动,解析和提取客户端通过所述客户端通信模块发送的数据请求;对提取的数据请求进行判断生成TCP粘合指令与TCP连接基本信息;执行负载均衡策略;选择指定的服务节点作为服务端;下发生成的TCP粘合指令与TCP连接基本信息到所述TCP粘合模块;
所述服务端通信模块启动,建立指定的服务端与多核网络处理器的TCP连接;将客户端的数据请求发送到指定的服务端,并将服务端的响应数据包发送到TCP粘合模块;
所述TCP粘合模块启动,接收网络代理服务模块下发的TCP粘合指令和TCP连接信息,接收服务端发送的响应数据包,完成客户端与服务端双向连接的数据包粘合处理,并将粘合处理后的数据包通过所述客户端通信模块发送给客户端。
本发明的优点在于:
本发明的***将Linux操作***上的TCP粘合处理卸载到实时***上实现,能够发挥实时***数据拷贝少、上下文切换延迟低的优势,加速TCP粘合的数据处理,提升网络应用级中间代理的性能。
附图说明
图1是本发明的在多核网络处理器上实现TCP粘合的***的结构图。
具体实施方式
现结合附图对本发明作进一步的详细的说明。
如图1所示,一种基于多核网络处理器的TCP粘合***,所述***包括:客户端通信模块、网络代理服务模块、服务端通信模块和TCP粘合模块;
所述客户端通信模块,用于建立客户端与多核网络处理器的TCP连接;
所述网络代理服务模块,运行在多核网络处理器中的Linux操作***上,包括:客户端数据接收单元、Linux通信接口单元和负载均衡处理单元;
所述客户端数据接收单元,用于接收客户端通过所述客户端通信模块发送的数据请求,并对数据请求进行解析和提取;对提取的数据请求进行判断生成TCP粘合指令与TCP连接基本信息,将TCP粘合指令与TCP连接基本信息通过所述Linux通信接口单元发送到TCP粘合模块;将解析后的请求数据中的目标文件类型和服务级别的响应信息发送到负载均衡处理单元;
所述TCP粘合指令包括:TCP粘合开始指令与需要粘合的数据字节数;所述TCP连接信息包括:两个方向TCP连接的四元组信息:源IP地址、目的IP地址、源端口号和目的端口号、客户端报文初始序列号CSEQ、代理设备响应客户端的报文初始序列号DSEQ、被选实际服务节点报文初始序列号SSEQ。
所述Linux通信接口单元,用于建立所述网络代理服务模块与TCP粘合模块的连接通信;
所述负载均衡处理单元,用于根据请求数据中的目标文件类型或者服务级别的响应信息,执行负载均衡策略,选择符合服务条件的负载最轻的节点为指定服务端。
所述负载最轻的节点的判断依据为实时连接数、CPU使用率、响应速度或处理能力中的一项或多项组合;
所述服务端连接模块,用于建立指定的服务端与多核网络处理器的TCP连接;将客户端的请求发送到指定的服务端,并将服务端的响应数据包发送到TCP粘合模块;
所述TCP粘合模块,运行在多核网络处理器中的实时***上,包括实时***通信接口单元、客户端数据发送单元和粘合处理单元;
所述实时***通信接口单元,用于与所述Linux通信接口单元连接,建立所述网络代理服务模块与TCP粘合模块之间的通信连接;
所述粘合处理单元,用于根据接收到的TCP粘合指令对服务端发送的响应数据内容进行处理,完成客户端与服务端的数据包粘合处理;并将粘合处理结果通过所述实时***通信接口单元发送到所述网络代理服务模块;
所述客户端数据发送单元,用于将所述粘合处理单元处理后的数据包通过所述客户端通信模块发送给客户端。
基于上述***,本发明还提供了一种基于多核网络处理器的TCP粘合方法,所述方法包括:
步骤1)所述客户端通信模块启动,建立客户端与多核网络处理器的TCP连接;
步骤2)所述客户端数据接收单元启动,接收客户端通过所述客户端通信模块发送的数据请求,并对数据请求进行解析和提取;对提取的数据请求进行判断生成TCP粘合指令与TCP连接基本信息,将TCP粘合指令与TCP连接基本信息通过所述Linux通信接口单元发送到TCP粘合模块;将解析后的请求数据中的目标文件类型和服务级别的响应信息发送到负载均衡处理单元;
步骤3)所述Linux通信接口单元启动,建立所述网络代理服务模块与TCP粘合模块的连接通信;
步骤4)所述负载均衡处理单元,根据请求数据中的目标文件类型或者服务级别的响应信息,执行负载均衡策略,选择符合服务条件的负载最轻的节点为指定服务端;
步骤5)所述服务端连接模块启动,建立指定的服务端与多核网络处理器的TCP连接;将客户端的请求发送到服务端,并将服务端的响应数据包发送到TCP粘合模块;
步骤6)所述实时***通信接口单元启动,与所述Linux通信接口单元连接,建立所述网络代理服务模块与TCP粘合模块之间的通信连接;
步骤7)根据接收到的TCP粘合指令对服务端发送的响应数据内容进行处理,完成客户端与服务端的数据包粘合处理;并将粘合处理结果通过所述实时***通信接口单元发送到所述网络代理服务模块;
步骤8)所述客户端数据发送单元启动,将所述粘合处理单元处理后的数据包通过所述客户端通信模块发送给客户端。
Claims (7)
1.一种基于多核网络处理器的TCP粘合***,所述***包括:客户端通信模块、网络代理服务模块、服务端通信模块和TCP粘合模块;
所述客户端通信模块,用于建立客户端与多核网络处理器的TCP连接;
所述网络代理服务模块,运行在多核网络处理器中的Linux操作***上,用于解析和提取客户端通过所述客户端通信模块发送的数据请求;对提取的数据请求进行判断生成TCP粘合指令与TCP连接基本信息;执行负载均衡策略;选择指定的服务节点作为服务端;下发生成的TCP粘合指令与TCP连接基本信息到所述TCP粘合模块;
所述服务端通信模块,用于建立指定的服务端与多核网络处理器的TCP连接;将客户端的数据请求发送到指定的服务端,并将服务端的响应数据包发送到TCP粘合模块;
所述TCP粘合模块,运行在多核网络处理器中的实时***上,用于接收网络代理服务模块下发的TCP粘合指令和TCP连接信息,接收服务端发送的响应数据包,完成客户端与服务端双向连接的数据包粘合处理,并将粘合处理后的数据包通过所述客户端通信模块发送给客户端。
2.根据权利要求1所述的基于多核网络处理器的TCP粘合***,其特征在于,所述网络代理服务模块包括:客户端数据接收单元、Linux通信接口单元和负载均衡处理单元;
所述客户端数据接收单元,用于接收客户端通过所述客户端通信模块发送的数据请求,并对数据请求进行解析和提取;对提取的数据请求进行判断生成TCP粘合指令与TCP连接基本信息,将TCP粘合指令与TCP连接基本信息通过所述Linux通信接口单元发送到TCP粘合模块;将解析后的请求数据中的目标文件类型和服务级别的响应信息发送到负载均衡处理单元;
所述Linux通信接口单元,用于建立所述网络代理服务模块与TCP粘合模块的连接通信;
所述负载均衡处理单元,用于根据请求数据中的目标文件类型或者服务级别的响应信息,执行负载均衡策略,选择符合服务条件的负载最轻的节点为指定服务端。
3.根据权利要求2所述的基于多核网络处理器的TCP粘合***,其特征在于,所述TCP连接信息包括:两个方向TCP连接的四元组信息:源IP地址、目的IP地址、源端口号和目的端口号、客户端报文初始序列号CSEQ、代理设备响应客户端的报文初始序列号DSEQ、被选实际服务节点报文初始序列号SSEQ。
4.根据权利要求2所述的基于多核网络处理器的TCP粘合***,其特征在于,所述负载最轻的节点的判断依据为实时连接数、CPU使用率、响应速度或处理能力中的一项或多项组合。
5.根据权利要求2所述的基于多核网络处理器的TCP粘合***,其特征在于,所述TCP粘合模块包括实时***通信接口单元、客户端数据发送单元和粘合处理单元;
所述实时***通信接口单元,用于与所述Linux通信接口单元连接,建立所述网络代理服务模块与TCP粘合模块之间的通信连接;
所述粘合处理单元,用于根据接收到的TCP粘合指令对服务端发送的响应数据内容进行处理,完成客户端与服务端的数据包粘合处理;并将粘合处理结果通过所述实时***通信接口单元发送到所述网络代理服务模块;
所述客户端数据发送单元,用于将所述粘合处理单元处理后的数据包通过所述客户端通信模块发送给客户端。
6.根据权利要求5所述的基于多核网络处理器的TCP粘合***,其特征在于,所述实时***通信接口单元与Linux通信接口单元的通信方式为:核间通信或共享内存。
7.一种基于多核网络处理器的TCP粘合方法,基于权利要求1-6之一的***实现,所述方法包括:
所述客户端通信模块启动,客户端建立与多核网络处理器的TCP连接;
所述网络代理服务模块启动,解析和提取客户端通过所述客户端通信模块发送的数据请求;对提取的数据请求进行判断生成TCP粘合指令与TCP连接基本信息;执行负载均衡策略;选择指定的服务节点作为服务端;下发生成的TCP粘合指令与TCP连接基本信息到所述TCP粘合模块;
所述服务端通信模块启动,建立指定的服务端与多核网络处理器的TCP连接;将客户端的数据请求发送到指定的服务端,并将服务端的响应数据包发送到TCP粘合模块;
所述TCP粘合模块启动,接收网络代理服务模块下发的TCP粘合指令和TCP连接信息,接收服务端发送的响应数据包,完成客户端与服务端双向连接的数据包粘合处理,并将粘合处理后的数据包通过所述客户端通信模块发送给客户端。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510416692.2A CN106357710A (zh) | 2015-07-15 | 2015-07-15 | 一种基于多核网络处理器的tcp粘合***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510416692.2A CN106357710A (zh) | 2015-07-15 | 2015-07-15 | 一种基于多核网络处理器的tcp粘合***及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106357710A true CN106357710A (zh) | 2017-01-25 |
Family
ID=57842627
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510416692.2A Pending CN106357710A (zh) | 2015-07-15 | 2015-07-15 | 一种基于多核网络处理器的tcp粘合***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106357710A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101924771A (zh) * | 2010-08-26 | 2010-12-22 | 北京天融信科技有限公司 | 一种用于加速应用代理的核心级tcp连接粘合方法 |
CN103491065A (zh) * | 2012-06-14 | 2014-01-01 | 中兴通讯股份有限公司 | 一种透明代理及其实现方法 |
CN105791239A (zh) * | 2014-12-24 | 2016-07-20 | 中国科学院声学研究所 | 一种tcp中间人处理方法 |
-
2015
- 2015-07-15 CN CN201510416692.2A patent/CN106357710A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101924771A (zh) * | 2010-08-26 | 2010-12-22 | 北京天融信科技有限公司 | 一种用于加速应用代理的核心级tcp连接粘合方法 |
CN103491065A (zh) * | 2012-06-14 | 2014-01-01 | 中兴通讯股份有限公司 | 一种透明代理及其实现方法 |
CN105791239A (zh) * | 2014-12-24 | 2016-07-20 | 中国科学院声学研究所 | 一种tcp中间人处理方法 |
Non-Patent Citations (3)
Title |
---|
查奇文 等: "基于多核处理器的TCP/IP协议栈加速技术", 《网络新媒体技术》 * |
程文青 等: "基于FPGA的TCP粘合设计与实现", 《电子技术应用》 * |
胡勇: "筛网式Web服务器集群研究与设计", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10868767B2 (en) | Data transmission method and apparatus in optoelectronic hybrid network | |
US10698717B2 (en) | Accelerator virtualization method and apparatus, and centralized resource manager | |
US7149817B2 (en) | Infiniband TM work queue to TCP/IP translation | |
US11392995B2 (en) | Efficient translation and load balancing of OpenRTB and header bidding requests | |
CN103176780B (zh) | 一种多网络接口绑定***及方法 | |
CN102638582B (zh) | 数据通信方法及通信端 | |
US10148565B2 (en) | OPENFLOW communication method and system, controller, and service gateway | |
CN102377640B (zh) | 一种报文处理装置和报文处理方法、及预处理器 | |
CN102143218B (zh) | web接入云体系结构及接入方法 | |
US10609125B2 (en) | Method and system for transmitting communication data | |
CN101977234A (zh) | 基于并行tcp技术的广域网通信加速方法 | |
WO2022032984A1 (zh) | 一种mqtt协议仿真方法及仿真设备 | |
CN104702627B (zh) | 一种基于报文分类的同步并发通信方法及*** | |
WO2013178099A1 (zh) | 一种实现远程桌面的***、方法、客户端和服务中心 | |
CN113259415B (zh) | 一种网络报文处理方法、装置及网络服务器 | |
WO2023151264A1 (zh) | 负载均衡方法、装置、节点及存储介质 | |
CN107846365A (zh) | 一种基于sdn的负载均衡实现***及方法 | |
JP2011203810A (ja) | サーバ、計算機システム及び仮想計算機管理方法 | |
CN103368872A (zh) | 数据包转发***和方法 | |
WO2006121247A1 (en) | High speed data processing communication method and apparatus for embedded system | |
CN103501295A (zh) | 一种基于虚拟机迁移的远程访问方法和设备 | |
JP2014528611A5 (zh) | ||
CN112311448B (zh) | 一种基于虚拟机的卫星网络加速*** | |
US10567551B1 (en) | System and method for improving infrastructure to infrastructure communications | |
Ke et al. | Load balancing using P4 in software-defined networks |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170125 |