一种数据包转发方法、装置及设备制造方法及图纸

技术编号:27833159 阅读:37 留言:0更新日期:2021-03-30 11:46
本申请实施例公开了一种数据包转发方法、装置和设备。在本申请中,可以在通过与客户端之间已建立的TCP长连接接收到TCP数据包时,从TCP数据包中的TCP数据字段中按照顺序查找到指定长度标识起始位置对应的长度标识位置,将查找到的长度标识位置之后的N个bit的数据确定为一个消息数据,最后将确定出的各个消息数据分别转发到各个消息数据对应的目标服务器,其中不同消息数据对应的目标服务器相同或不同,最终通过将一个TCP数据包中的各个消息数据转发到多个目标服务器,实现了对TCP长连接进行负载均衡。进行负载均衡。进行负载均衡。

【技术实现步骤摘要】
一种数据包转发方法、装置及设备


[0001]本申请涉及通信
,特别涉及一种数据包转发方法、装置及设备。

技术介绍

[0002]互联网中多个用户可以在客户端上通过统一的访问入口进入一个大型开放的平台上,并在这个平台上请求不同的服务。当用户量过大时,如果将为用户提供的所有服务搭建在一台服务器上,一台服务器承受不了这么多服务的压力,所以为了减轻单台服务器压力,将部署多台服务器为用户提供服务。
[0003]在部署多台服务器为用户提供服务的情况下,客户端和服务器之间如果通过TCP长连接通讯,TCP长连接一旦分配完成后,相关技术中客户端和服务器之间的对应关系是固定的。如果某些客户端的基于TCP协议的请求的TCP数据包特别多,由于中间的负载均衡设备无法干预TCP数据包的传输,所以这些TCP数据包也只会传输到和与它对应的服务器,这时会出现该服务器繁忙,但其他服务器空闲的情况。
[0004]所以为了解决上述负载不均衡的情况,亟需一种能够针对TCP长连接进行负载均衡的TCP数据包转发方法。

技术实现思路

[0005]本申请公开了一种数据包转发方法、装置及设备,以实现针对TCP长连接进行负载均衡。
[0006]根据本申请实施例的第一方面,提供一种数据包转发方法,该方法应用于负载均衡设备,包括:
[0007]通过与客户端之间已建立的TCP长连接接收TCP数据包,所述TCP数据包包括TCP头部和TCP数据字段,所述TCP数据字段包括至少一个消息数据的指示信息;所述指示信息包括长度标识;r/>[0008]从所述TCP数据字段中按照顺序查找到指定长度标识起始位置对应的长度标识位置,将查找到的长度标识位置之后的N个bit的数据确定为一个消息数据,所述N为所述长度标识位置上用于表示长度的长度值;
[0009]将确定出的各个消息数据分别转发到各个消息数据对应的目标服务器,不同消息数据对应的目标服务器相同或不同。
[0010]可选的,所述长度标识位置占用所述指定长度标识起始位置之后的K个bit,K大于1。
[0011]可选的,所述指定长度标识起始位置和对应的所述长度标识位置处于同一个字节;
[0012]所述将查找到的长度标识位置之后的N个bit的数据确定为一个消息数据包括:
[0013]将指定长度标识起始位置所处字节之后的N个bit的数据确定为一个消息数据。
[0014]可选的,所述将确定出的各个消息数据分别转发到各个消息数据对应的目标服务
器,包括:
[0015]轮询确定出的各个消息数据;
[0016]将轮询到的消息数据确定为当前消息数据,从已有的各目标服务器中选择负载低的一个目标服务器作为当前消息数据对应的当前目标服务器,将当前消息数据转发至当前目标服务器;
[0017]若确定出的各个消息数据中还存在未被轮询的消息数据,则继续轮询未被轮询的消息数据,返回将轮询到的消息数据确定为当前消息数据的步骤。
[0018]可选的,将确定出的各个消息数据分别转发到各个消息数据对应的目标服务器,包括:
[0019]按照已获得的各目标服务器的负载比例对确定出的各个消息数据进行划分得到对应的M个消息数据组,所述M为目标服务器的数量;
[0020]将每一消息数据组中的每一消息数据作为当前消息数据,将当前消息数据所在的消息数据组对应的目标服务器确定为当前目标服务器,将当前消息数据转发至当前目标服务器。
[0021]可选的,所述将当前消息数据转发至当前目标服务器包括:
[0022]按照TCP协议为当前消息数据封装源地址、目的地址;所述源地址对应负载均衡设备,所述目的地址对应所述当前目标服务器;
[0023]通过所述目的地址将封装当前消息数据后得到的消息报文转发至当前目标服务器。
[0024]根据本申请实施例的第二方面,一种数据包转发装置,该装置应用于负载均衡设备,包括:
[0025]接收单元,用于通过与客户端之间已建立的TCP长连接接收TCP数据包,所述TCP数据包包括TCP头部和TCP数据字段,所述TCP数据字段包括至少一个消息数据的指示信息;所述指示信息包括长度标识;
[0026]确定单元,用于从所述TCP数据字段中按照顺序查找到指定长度标识起始位置对应的长度标识位置,将查找到的长度标识位置之后的N个bit的数据确定为一个消息数据,所述N为所述长度标识位置上用于表示长度的长度值;
[0027]转发单元,用于将确定出的各个消息数据分别转发到各个消息数据对应的目标服务器,不同消息数据对应的目标服务器相同或不同。
[0028]可选的,所述长度标识位置占用所述指定长度标识起始位置之后的K个bit,K大于1。
[0029]可选的,所述指定长度标识起始位置和对应的所述长度标识位置处于同一个字节;
[0030]所述确定单元将查找到的长度标识位置之后的N个bit的数据确定为一个消息数据包括:
[0031]将指定长度标识起始位置所处字节之后的N个bit的数据确定为一个消息数据。
[0032]根据本申请实施例的第三方面,提供一种电子设备,该电子设备包括:处理器和存储器;
[0033]所述存储器,用于存储机器可执行指令;
[0034]所述处理器,用于读取并执行所述存储器存储的机器可执行指令,以实现如上所述的数据包转发方法。
[0035]本申请的实施例提供的技术方案可以包括以下有益效果:
[0036]由以上技术方案可知,本申请提供的方案可以在通过与客户端之间已建立的TCP长连接接收到TCP数据包时,从TCP数据包中的TCP数据字段中按照顺序查找到指定长度标识起始位置对应的长度标识位置,将查找到的长度标识位置之后的N个bit的数据确定为一个消息数据,最后将确定出的各个消息数据分别转发到各个消息数据对应的目标服务器,其中不同消息数据对应的目标服务器相同或不同,最终通过将一个TCP数据包中的各个消息数据转发到多个目标服务器,实现了针对TCP长连接进行负载均衡。
[0037]应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
[0038]此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。
[0039]图1是本申请实施例提供的实现数据包转发方法流程图;
[0040]图2是本申请实施例提供的一种转发消息数据的方法流程图;
[0041]图3是本申请实施例提供的另一种转发消息数据的方法流程图;
[0042]图4是本申请实施例提供的实现数据包转发的装置示意图;
[0043]图5是本申请实施例提供的一种用于实现数据包转发方法的硬件结构示意图。
具体实施方式
[0044]这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种数据包转发方法,其特征在于,该方法应用于负载均衡设备,包括:通过与客户端之间已建立的TCP长连接接收TCP数据包,所述TCP数据包包括TCP头部和TCP数据字段,所述TCP数据字段包括至少一个消息数据的指示信息;所述指示信息包括长度标识;从所述TCP数据字段中按照顺序查找到指定长度标识起始位置对应的长度标识位置,将查找到的长度标识位置之后的N个bit的数据确定为一个消息数据,所述N为所述长度标识位置上用于表示长度的长度值;将确定出的各个消息数据分别转发到各个消息数据对应的目标服务器,不同消息数据对应的目标服务器相同或不同。2.根据权利要求1所述的方法,其特征在于,所述长度标识位置占用所述指定长度标识起始位置之后的K个bit,K大于1。3.根据权利要求2所述的方法,其特征在于,所述指定长度标识起始位置和对应的所述长度标识位置处于同一个字节;所述将查找到的长度标识位置之后的N个bit的数据确定为一个消息数据包括:将指定长度标识起始位置所处字节之后的N个bit的数据确定为一个消息数据。4.根据权利要求1所述的方法,其特征在于,所述将确定出的各个消息数据分别转发到各个消息数据对应的目标服务器,包括:轮询确定出的各个消息数据;将轮询到的消息数据确定为当前消息数据,从已有的各目标服务器中选择负载低的一个目标服务器作为当前消息数据对应的当前目标服务器,将当前消息数据转发至当前目标服务器;若确定出的各个消息数据中还存在未被轮询的消息数据,则继续轮询未被轮询的消息数据,返回将轮询到的消息数据确定为当前消息数据的步骤。5.根据权利要求1所述的方法,其特征在于,将确定出的各个消息数据分别转发到各个消息数据对应的目标服务器,包括:按照已获得的各目标服务器的负载比例对确定出的各个消息数据进行划分得到对应的M个消息数据组,所述M为目标服务器的数量;将每一消息数据组中的每一消...

【专利技术属性】
技术研发人员:周倩倩易盼
申请(专利权)人:杭州迪普科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1