一种基于多核网络处理器的TCP粘合系统及方法与流程

文档序号:12752967阅读:259来源:国知局

本发明涉及计算机网络技术领域,特别涉及一种基于多核网络处理器的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)所述客户端数据发送单元启动,将所述粘合处理单元处理后的数据包通过所述客户端通信模块发送给客户端。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1