掌桥专利:专业的专利平台
掌桥专利
首页

一种数据报文处理方法及系统

文献发布时间:2024-04-29 00:47:01


一种数据报文处理方法及系统

技术领域

本申请涉及网络安全技术领域,具体涉及一种数据报文处理方法,本申请同时涉及一种数据报文处理装置、电子设备及计算机存储介质。本申请同时涉及另一种数据报文处理方法、装置、电子设备及计算机存储介质。本申请同时涉及另一种数据报文处理方法、装置、电子设备及计算机存储介质。本申请同时涉及一种数据报文处理系统。

背景技术

QUIC-LB(Quick UDP Intemet Connection Load Balance),QUIC负载均衡器,是一种可支持网络连接迁移和网络多路径等特性的负载均衡设备。

现有技术中,服务器负载均衡器中的QUIC-LB传输客户端与服务器端之间的数据报文时,采用的是明文传输数据报文的连接标识。这会造成网络攻击者获取连接标识中的路由因子,从而获取后端服务器与路由因子之间的映射关系,对后端服务器进行攻击。

因此,如何减少网络攻击者对后端服务器进行攻击的风险是需要解决的技术问题。

发明内容

本申请实施例提供一种数据报文处理方法,以减少网络攻击者对后端服务器进行攻击的风险。本申请实施例还提供一种数据报文处理系统、电子设备及计算机存储介质。本申请实施例还提供一种数据报文处理装置、电子设备及计算机存储介质。本申请实施例还提供另一种数据报文处理方法、装置、电子设备及计算机存储介质。本申请实施例还提供另一种数据报文处理方法、装置、电子设备及计算机存储介质。本申请实施例还提供一种数据报文处理系统。

本申请实施例提供一种数据报文处理方法,包括:获得客户端发送的数据报文包含的客户端目标连接标识;根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息;其中,所述服务器标识信息的生成方式由负载均衡设备与服务器之间预先确定;将所述数据报文转发至所述服务器标识信息对应的服务器实例,以由所述服务器实例对所述数据报文进行处理。

可选的,还包括:获得所述服务器实例重新生成的服务器连接标识,所述服务器连接标识包含所述服务器实例的服务器标识信息;将所述服务器连接标识发送给所述客户端,替换所述客户端目标连接标识,作为第二类型的数据报文的目标连接标识,其中,所述第二类型的数据报文为客户端与服务器已完成连接建立之后传输的数据报文;其中,所述服务器实例通过如下方法重新生成所述服务器连接标识:根据所述数据报文的客户端目标连接标识中包含的客户端源地址信息和客户端源端口信息,以及由服务器标识信息生成方式,获得服务器标识信息;其中,所述服务器标识信息的生成方式由负载均衡设备与服务器之间预先确定;根据所述服务器标识信息,以及所述服务器实例的服务器地址信息,服务器端口信息,生成所述服务器连接标识。

可选的,还包括:解析所述数据报文所属的报文类型;所述根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息,包括:如果所述数据报文的报文类型为第一类型的数据报文,则根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息;其中,第一类型的数据报文为客户端发起连接的过程中发送的数据报文。

可选的,还包括:如果所述数据报文的报文类型为第二类型,则对所述第二类型的数据报文执行如下方法:如果所述第二类型的数据报文的客户端目标连接标识处于合法状态以及加密状态,且所述第二类型的数据报文的客户端目标连接标识的第一字节中的配置旋转字段的配置版本信息处于合法状态,则解密获取所述数据报文的服务器连接标识中包含的服务器标识信息;将所述数据报文转发至所述服务器标识信息对应的服务器实例,以由所述服务器实例对所述数据报文进行处理。

可选的,还包括:如果所述数据报文的报文类型为第二类型,且所述第二类型的数据报文的客户端目标连接标识存在如下至少一种情况,则对所述第二类型的数据报文执行所述根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息的步骤:所述第二类型的数据报文的客户端目标连接标识处于不合法状态;所述第二类型的数据报文的客户端目标连接标识处于未加密状态;所述第二类型的数据报文的客户端目标连接标识的第一字节中的配置旋转字段的配置版本信息处于不合法状态。

可选的,还包括:解析所述数据报文的报文头类型;所述解析所述数据报文所属的报文类型,包括:如果所述数据报文的报文头类型为长报文头类型,则解析所述数据报文所属的报文类型。

可选的,还包括:如果所述数据报文的报文头为短报文头类型,则对所述短报文头类型的数据报文执行如下方法:如果所述短报文头类型的数据报文的客户端目标连接标识处于合法状态以及加密状态,且所述短报文头类型的数据报文的客户端目标连接标识的第一字节中的配置旋转字段的配置版本信息处于合法状态,则解密获取所述数据报文的服务器连接标识中包含的服务器标识信息;将所述数据报文转发至所述服务器标识信息对应的服务器实例,以由所述服务器实例对所述数据报文进行处理。

可选的,还包括:如果所述数据报文的报文头为短报文头类型,且所述短报文头类型的数据报文的客户端目标连接标识存在如下至少一种情况,则对所述短报文头类型的数据报文执行所述根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息的步骤:所述短报文头类型的数据报文的客户端目标连接标识处于不合法状态;所述短报文头类型的数据报文的客户端目标连接标识处于未加密状态;所述短报文头类型的数据报文的客户端目标连接标识的第一字节中的配置旋转字段的配置版本信息处于不合法状态。

可选的,还包括:获得配置中心发送的共享密钥、服务器标识信息长度信息、随机数长度信息;所述根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息,包括:将所述客户端源地址信息和所述客户端源端口信息,结合所述共享密钥、服务器标识信息长度信息、以及所述随机数长度信息,计算获得满足所述服务器标识信息长度信息的服务器标识信息。

可选的,所述将所述数据报文转发至所述服务器标识信息对应的服务器实例,以由所述服务器实例对所述数据报文进行处理,包括:将所述服务器标识信息作为一致性路由算法的输入信息,进行一致性路由计算,获得与所述服务器标识信息对应的服务器实例。

可选的,还包括:如果所述客户端发送数据报文的网络通道由第一网络通道迁移至第二网络通道,则获取所述数据报文已携带的服务器连接标识中的服务器标识信息,将所述服务器标识信息对应的服务器实例作为处理所述数据报文的服务器实例。

可选的,所述如果所述客户端发送数据报文的网络通道由第一网络通道迁移至第二网络通道,包括如下至少一种情况:所述客户端的客户端源地址信息由第一客户端源地址信息切换为第二客户端源地址信息;所述客户端的客户端源端口信息由第一客户端源端口信息切换为第二客户端源端口信息;所述客户端通过移动通信网络建立通信连接时,所述客户端的移动通信网络信号由第一移动基站迁移至第二移动基站;所述客户端通过无线局域网访问外部网络资源时,所述无线局域网的路由器地址信息由第一路由器地址信息切换为第二路由器地址信息。

可选的,如果所述客户端同时连接多种通信连接方式;所述方法还包括:获得所述客户端通过多种通信连接方式发送的多个数据报文,其中,所述多个数据报文包括由所述服务器实例生成的同一个服务器连接标识;获取所述多个数据报文携带的服务器连接标识中的服务器标识信息;将具有相同的服务器标识信息的多个数据报文转发至所述服务器标识信息对应的服务器实例。

本申请实施例还提供一种数据报文处理方法,包括:获得负载均衡设备发送的数据报文包含的客户端目标连接标识;根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息;其中,所述服务器标识信息的生成方式由负载均衡设备与服务器之间预先确定;根据所述服务器标识信息,以及所述服务器的服务器地址信息,服务器端口信息,生成服务器连接标识;将所述服务器连接标识发送给所述负载均衡设备。

可选的,还包括:获得配置中心发送的共享密钥、服务器标识信息长度信息、以及随机数长度信息;所述根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息,包括:将所述客户端源地址信息和所述客户端源端口信息,结合所述共享密钥、服务器标识信息长度信息、以及所述随机数长度信息,计算获得满足所述服务器标识信息长度信息的服务器标识信息。

本申请实施例还提供一种数据报文处理方法,包括:将包含客户端目标连接标识的第一类型的数据报文发送给负载均衡设备,获得所述负载均衡设备返回的服务器连接标识,其中,所述第一类型的数据报文为客户端发起连接的过程中发送的数据报文;将所述服务器连接标识替换所述客户端目标连接标识,作为第二类型的数据报文的目标连接标识,其中,所述第二类型的数据报文为客户端与服务器已完成连接建立之后传输的数据报文;将所述第二类型的数据报文发送给所述负载均衡设备;其中,所述服务器连接标识包含服务器标识信息,所述服务器标识信息由所述负载均衡设备通过如下方式获得:根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息;其中,所述服务器标识信息的生成方式由负载均衡设备与服务器之间预先确定。

本申请实施例还提供一种数据报文处理系统,包括:负载均衡设备,服务器;所述负载均衡设备用于获得客户端发送的数据报文包含的客户端目标连接标识;根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息;其中,所述服务器标识信息的生成方式由负载均衡设备与服务器之间预先确定;将所述数据报文转发至所述服务器标识信息对应的服务器实例,以由所述服务器实例对所述数据报文进行处理;所述服务器用于根据所述数据报文的客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及所述服务器标识信息生成方式,获得所述服务器标识信息;根据所述服务器标识信息,以及所述服务器实例的服务器地址信息,服务器端口信息,生成服务器连接标识;将所述服务器连接标识发送给所述负载均衡设备。

可选的,所述负载均衡设备还用于将所述服务器连接标识发送给客户端,替换所述客户端目标连接标识,作为第二类型的数据报文的目标连接标识,其中,所述第二类型的数据报文为客户端与服务器已完成连接建立之后传输的数据报文。

可选的,还包括:配置中心;所述配置中心用于分别向所述负载均衡设备和所述服务器发送共享密钥、服务器标识信息长度信息、以及随机数长度信息;所述负载均衡设备具体用于将所述客户端源地址信息和所述客户端源端口信息,结合所述共享密钥、服务器标识信息长度信息、以及所述随机数长度信息,计算获得满足所述服务器标识信息长度信息的服务器标识信息;所述服务器具体用于将所述客户端源地址信息和所述客户端源端口信息,结合所述共享密钥、服务器标识信息长度信息、以及所述随机数长度信息,计算获得满足所述服务器标识信息长度信息的服务器标识信息。

本申请实施例还提供一种电子设备,所述电子设备包括处理器和存储器;所述存储器中存储有计算机程序,所述处理器运行所述计算机程序后,执行上述方法。

本申请实施例还提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器运行后,执行上述方法。

与现有技术相比,本申请实施例具有如下优点:

本申请实施例提供一种数据报文处理方法,包括:获得客户端发送的数据报文包含的客户端目标连接标识;根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息;其中,所述服务器标识信息的生成方式由负载均衡设备与服务器之间预先确定;将所述数据报文转发至所述服务器标识信息对应的服务器实例,以由所述服务器实例对所述数据报文进行处理。

上述方法中,通过客户端目标连接标识获取客户端源地址信息和客户端源端口信息,根据客户端源地址信息和客户端源端口信息,以及由服务器标识信息生成方式,生成服务器标识信息;其中,所述服务器标识信息的生成方式由负载均衡设备与服务器之间预先确定。将数据报文转发至服务器标识信息对应的服务器实例。此方法应用于负载均衡设备,客户端源地址信息和客户端源端口信息属于负载均衡设备通过数据报文可获得的信息,预先确定的服务器标识信息生成方式属于负载均衡设备和服务器之间预先确定的服务器标识信息生成方式,由此获得的服务器标识信息无法被攻击者获取,进而减少了网络攻击者发送数据报文给服务器标识信息对应的服务器实例的概率,减少了网络攻击者对后端服务器进行攻击的风险。

本申请实施例还提供了一种数据报文处理方法,应用于服务器,服务器通过负载均衡设备发送的数据报文包含的客户端目标连接标识中获取客户端源地址信息和客户端源端口信息,预先确定的服务器标识信息生成方式属于负载均衡设备和服务器之间预先确定的服务器标识信息生成方法。因此,根据客户端源地址信息和客户端源端口信息,结合服务器标识信息生成方式,生成的服务器标识信息无法被网络攻击者获取,进而减少了网络攻击者发送数据给服务器标识信息对应的服务器实例的概率。在服务器标识信息无法被网络攻击者获取的基础上,服务器根据服务器标识信息,结合服务器地址信息和服务器端口信息重新生成的服务器连接标识也无法被网络攻击者获取。因此,上述方法减少了网络攻击者对后端服务器进行攻击的风险。

本申请实施例还提供了一种数据报文处理方法,应用于客户端,向负载均衡设备发送第一类型的数据报文包含客户端目标连接标识,负载均衡设备返回服务器连接标识,其中,服务器连接标识中包含服务器标识信息,服务器标识信息是由负载均衡设备通过客户端源地址信息和客户端源端口信息,以及服务器标识信息生成方式生成的。此种服务器标识信息的生成方式是由负载均衡设备和服务器预先确定的,其生成的服务器标识信息无法被网络攻击者获取,进而减少了网络攻击者发送数据给服务器标识信息对应的服务器实例的概率。在客户端与服务器实例建立完整连接之后,客户端将服务器标识信息替换客户端目标连接标识,作为第二类型的数据报文的目标连接标识,将第二类型的数据报文发送给负载均衡设备。此过程中,在服务器标识信息无法被网络攻击者获取的基础上,服务器连接标识也无法被网络攻击者获取。因此,上述方式减少了网络攻击者对后端服务器进行攻击的风险。

本申请实施例还提供了一种数据报文处理系统,负载均衡设备生成服务器标识信息的过程中,客户端源地址信息和客户端源端口信息属于负载均衡设备通过数据报文可获得的信息,预先确定的服务器标识信息生成方式属于负载均衡设备和服务器之间预先确定的服务器标识信息生成方式,由此获得的服务器标识信息无法被攻击者获取,进而减少了网络攻击者发送数据报文给服务器标识信息对应的服务器实例的概率,减少了网络攻击者对后端服务器进行攻击的风险。相应的,服务器根据客户端源地址信息和客户端源端口信息,结合该服务器标识信息生成方式,生成的服务器标识信息无法被网络攻击者获取,进而减少了网络攻击者发送数据给服务器标识信息对应的服务器实例的概率。在服务器标识信息无法被网络攻击者获取的基础上,服务器根据服务器标识信息,结合服务器地址信息和服务器端口信息重新生成的服务器连接标识也无法被网络攻击者获取。因此,该系统减少了网络攻击者对后端服务器进行攻击的风险。

附图说明

图1为本申请实施例提供的数据报文处理方法的场景示意图。

图2为现有技术中数据报文处理过程中各个端之间进行数据交互的时序图。

图3为本申请实施例提供的数据报文处理过程中各个端之间数据交互的时序图。

图4为现有技术中数据报文处理的过程图。

图5为本申请实施例提供的数据报文处理的过程图。

图6为本申请第一实施例提供的数据报文处理方法的流程图。

图7为本申请第二实施例提供的数据报文处理装置的示意图。

图8为本申请第三实施例提供的数据报文处理方法的流程图。

图9为本申请第四实施例提供的数据报文处理装置的示意图。

图10为本申请第五实施例提供的数据报文处理方法的示意图。

图11为本申请第六实施例提供的数据报文处理装置的示意图。

图12为本申请第七实施例提供的数据报文处理系统的逻辑框架图。

图13为本申请第八实施例提供的电子设备的示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的每个其他实施例,都属于本申请保护的范围。

本说明书中使用用语“一个”、“一”、“该”和“所述”用以表示存在一个或多个要素/组成部分/等;用语“包括”和“具有”用以表示开放式的包括在内的意思并且是指除了列出的要素/组成部分/等之外还可存在另外的要素/组成部分/等;用语“第一”和“第二”等仅作为标记使用,不是对其对象的数量限制。应当理解,在本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或者两个以上。“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“包含A、B和/或C”是指包含A、B、C三者中任1个或任2个或3个。应当理解,在本申请实施例中,“与A对应的B”、“与A相对应的B”、“A与B相对应”或者“B与A相对应”,表示B与A相关联,根据A可以确定B。根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其他信息确定B。在详细介绍本申请实施例之前,首先介绍本申请涉及的方案的背景技术。

QUIC-LB(QUIC Load Balance,QUIC负载均衡设备):一种基于QUIC协议的负载均衡设备,支持QUIC协议的网络连接迁移特性和网络多路径特性,提供了一种更加高效、可靠的负载均衡解决方案。通过使用QUIC-LB功能,用户可以享受到更快、更稳定的数据传输服务,同时也可以提升网络资源的利用效率和相应速度。网络连接迁移是客户端发送数据报文的网络通道由第一网络通道迁移至第二网络通道,客户端仍然可以复用变化之前的通信连接,将数据报文转发至相同的服务器标识信息对应的服务器实例。网络多路径是QUIC协议可以在同一时间内使用多个网络路径传输数据。这种特性有效地利用网络带宽,提升数据传输的速度和效率。此外,网络多路径特征可以提升网络的容错能力,因为即使其中一个网络路径出现故障,QUIC协议也可以自动切换到其他路径,从而保证数据传输的连续性和可靠性。

SLB(Server Load Balancer,服务器负载均衡器):将客户端的访问请求分配给多个服务器,从而减轻单个服务器的压力,以达到负载均衡的目的,提高系统整体的处理能力。还可以检测服务器的健康状况,并确保只将流量发送到可用的服务器上,有助于保持整个系统的稳定性。此外,根据实际情况动态调整各个服务器的负载,从而整个系统的资源得到更好的利用。

SLA(Service Level Agreement,服务级别协议):其表示后端服务器的服务可用性,该协议明确了后端服务器提供的服务级别,并包括承诺的响应时间、可用性等方面的要求。例如,一个典型的后端服务器的服务器级别协议要求服务器每月至少99.9%的可用性,并且对所有请求做出响应的时间不超过几秒钟。这种协议通常是由服务提供商和客户共同签署并维护的。

RS(Real Server,后端服务器):一个服务器群组,其包含多个服务器,它们共同承担网络请求的任务,并负责生成动态内容或处理客户端的请求。当客户端发出一个请求时,负载均衡器会把该请求分发给后端服务器群组中的某个服务器进行处理。本申请实施例中,被负载均衡器分配的处理该请求的该服务器可以称为服务器实例。负载均衡服务器将客户端的请求分配给服务器时,还可以结合服务器的服务可用性,以达到负载均衡的目的。

HTTP3:HTTP协议的最新版本,也被称为HTTP-over-QUIC。HTTP3基于QUIC传输协议,主要特征为:更快的连接建立速度:QUIC使用UDP(User Datagram Protocol,用户数据报协议)作为底层传输协议,相对于TCP/IP(Transmission Control Protocol/InternetProtocol,传输控制协议/网际协议),使得它能够更快地建立连接;增强的安全性:QUIC支持加密所有数据,包括初始握手消息,从而提供了更强的安全保障;更低的延迟:QUIC采用多路复用技术,可以在同一个连接上并发传输多个HTTP请求,从而降低延迟;更好的拥塞控制:QUIC采用了新的拥塞控制算法,能够在高丢包率的情况下保持良好的性能。

CID(Connection ID,连接ID或者链接ID):CID为DCID(Destination ConnectionID,目标连接标识)和SCID(Source Connection ID,源连接标识)的统称,在QUIC协议中,客户端发送初始报文时,初始报文携带DCID;服务端接收到客户端发送的初始报文后,生成SCID,并向客户端返回携带SCID的数据报文。在后续数据报文传输过程中,客户端的数据报文中的DCID采用服务端提供的SCID。换言之,在客户端和服务端之间传输其他数据报文时,可以将DCID和SCID相互转换,统称为CID。

DDOS(Distributed Denial of Service,分布式拒绝服务)攻击:一种网络攻击手段,攻击者会使用许多设备和网络资源对目标系统进行攻击,使其无法正常运行。在这种攻击中,攻击者会同时从多个源头发送大量的请求或数据包给目标系统,使目标系统的带宽、处理器、内存等资源都被耗尽,最终导致目标系统无法响应正常的请求。

重放攻击:网络攻击者尝试发送已经被加密处理的客户端目标连接标识的副本,以欺骗接收者并使其认为攻击者正在发送新的指令,该过程中,网络攻击者试图“重放”已经被加密的指令,称为重放攻击。重放攻击可能会导致包含客户端目标连接标识指令的误用或泄露敏感信息,因此需要采取有效的防范措施放置这种攻击。

Qch(Quic-id Based Consistent Hash,基于Quic-id的一致性哈希)调度算法:一种基于Quic-id的一致性哈希算法,是一种将客户端的请求分发到多个服务器的有效方法,具体介绍如下:一致性哈希的基本思想是将数据分布到一组环形结构中的各个节点上,每个节点都有一个唯一的哈希值,通过计算哈希函数得到要存储或查找的数据项的哈希值,然后根据该哈希值将其存储到相应的位置。

在Quic-id的一致性哈希算法中,每个客户端都会有一个唯一的Quic-id,视为该客户端的身份标识符。其中,Quic-id包括Quic cid(基于Quic协议的连接标识)或有Quic的server id(基于Quic协议的服分器标识信息)。将这个Quic-id用作数据项的哈希键,通过哈希函数计算出对应的哈希值,进而映射到环状结构上。在该过程中,可以先创建一个空的环状结构,代表服务器节点的集合。然后,为每个服务器节点分配一个哈希值,代表它的位置。按照以下步骤实现客户端请求的分发:对于每个客户端的请求,计算其Quic-id的哈希值,并根据这个哈希值将其映射到环状结构上;找到距离最近的一个服务器节点,将客户端的请求发送给该服务器。

因此,Quic-id的一致性哈希算法的目的是,即使服务器数量发生变化,也不会影响到所有客户端,只会改变一小部分客户端的请求分配。另外,由于每个服务器被映射到环状结构的不同位置,因此可以保证请求的均匀分配。由此可以有效减少重新分布数据的成本,保持稳定的性能和可靠的服务质量。

为了便于理解本申请提供的数据报文处理方法,在介绍本申请实施例之前,先对本申请实施例的背景进行介绍。请参考图1,其为数据报文处理的场景示意图。客户端集群101包括多个客户端,例如,第一客户端101-1,第二客户端101-2,第n客户端101-n。服务器集群103包括多个服务器,例如,第一服务器103-1,第二服务器103-2,第n服务器103-n。服务器集群中的多个服务器用于处理客户端集群发送的多个访问请求或者数据报文。

负载均衡设备102将客户端的访问请求分配给多个服务器,从而减轻单个服务器的压力,以达到负载均衡的目的,提高系统整体的处理能力。还可以检测服务器的健康状况,并确保只将流量发送到可用的服务器上,有助于保持整个系统的稳定性。此外,根据实际情况动态调整各个服务器的负载,从而整个系统的资源得到更好的利用。

现有技术中,服务器负载均衡器中的QUIC-LB传输客户端与服务器端之间的数据报文时,采用的是明文传输数据报文的连接标识。这会造成网络攻击者获取连接标识中的路由因子,从而获取后端服务器与路由因子之间的映射关系,对后端服务器进行攻击。基于现有技术存在的问题,QUIC-LB的建议提案中建议对连接标识进行加密,以解决QUIC-LB的安全风险。然而,该建立提案中提供的实现方式存在配置中心组件的设计过于复杂,导致存在数据一致性和稳定性的问题,也未考虑网络攻击者重放加密后的连接标识进行攻击的安全风险。

请参考图2和图4介绍QUIC-LB的建议提案提供的数据报文处理过程以及存在的问题。其中,图2为现有技术中数据报文处理过程中各个端之间进行数据交互的时序图。图4为现有技术中数据报文处理的过程图。

以下结合图2详细描述QUIC-LB的建议提案中配置中心,客户端,QUIC-LB和服务端之间的交互过程。其中,服务端可以为图1所示的服务器集群。配置中心:分别向QUIC负载均衡设备和服务端发送服务器标识信息与服务器地址映射关系、服务器标识信息的长度、随机数填充字段的长度、共享密钥。

配置中心为每个服务器分配服务器标识信息server id,并下发服务器标识信息与后端服务器地址的映射关系。服务器标识信息作为每个服务器实例的身份标识符,便于为每个服务器实例提供定制化配置文件,及管理每个服务器实例。

配置中心向QUIC负载均衡设备和服务端发送服务器标识信息与服务器地址映射关系,QUIC负载均衡设备接收到客户端发送的数据报文后,根据数据报文的客户端连接标识信息,结合服务器标识信息与服务器地址映射关系,将数据报文转发至对应的服务器实例。

服务器标识信息(server id)的长度,服务器标识信息为SCID中的组成部分,服务器标识信息的长度会影响网络传输的开销和控件占用量,同时可能影响配置文件的复杂度。服务器标识信息的长度越短,占用的网络传输带宽就越小,但也意味着可能不够唯一。反之,服务器标识信息的长度越长,虽然占用的网络传输带宽较大,但更有可能保证唯一性。

随机数填充字段(nonce,随机数填充字段)的长度,随机数填充字段用于防止重放攻击,随机数填充字段的长度越长,安全性越高,但也会增加额外的计算和传输成本。通常,随机数填充字段的长度至少应该是16位,以确保其足够随机和难以预测。

共享密钥,用于对传输的数据内容进行加密和完整性校验。通常情况下,QUIC协议支持两种类型的加密方式:第一层加密:客户端和服务器使用共享密钥对每个报文段的内容进行加密,以保护其中的传输不被窃取或篡改。第二层加密:客户端和服务器使用共享密钥对整个QUIC会话中的所有报文段的内容进行加密和完整性校验,以保证通信双方的隐私和会话的完整性和可靠性。

以下描述客户端、QUIC负载均衡设备和服务端之间针对数据报文处理过程中的交互过程。S201:客户端向QUIC负载均衡设备发送初始报文包含随机客户端目标连接标识。

客户端发送的初始报文,简称Initial报文,是在网络通信开始时发送的第一个数据包,主要用于初始化新的连接。在QUIC协议中,客户端发送的初始报文并不携带任何实际的数据,而是主要用于建立连接的基础框架和协商参数。客户端向服务器初始报文,服务器接收到初始报文后,客户端和服务器之间还需要进行几次握手过程,以确认协商的参数是否正确,并继续建立连接。

随机客户端目标连接标识为客户端发起新的QUIC连接时,随机生成一个8~28字节的长度的字符串,简称DCID。客户端会在发送给服务器的初始报文中包含这个DCID,便于服务器正确识别和处理后续的数据包。

其中,客户端随机生成的DCID包含客户端的源IP(Intemet Protocol,互联网协议)地址信息和源端口号信息,不包含服务端的IP地址和端口号。服务端的IP地址和端口号包含于其他字段中。客户端向QUIC负载均衡设备发送初始数据报文,根据初始数据报文中的DCID,对初始数据报文转发对应的服务器实例。

S202:QUIC负载均衡设备根据某种路由算法(如四元组)转发。

QUIC负载均衡设备转发初始报文的方式,可以四元组路由方式,也可以是其他方式,此处选择四元组路由方式。四元组路由包含如下要素:源IP地址:发出数据包的网络设备的IP地址:目标IP地址:接收数据包的网络设备的IP地址;协议类型:数据包所使用的协议类型,如TCP、UDP;端口号:数据包的目标端口号。四元组路由的实现通常需要使用一些专门的软件或硬件设备来进行处理。这些设备会对传入的数据包进行分析,找出它们的四元组信息,并根据预设的路由策略将数据包转发到相应的服务器或其他网络设备。

S202中,QUIC负载均衡设备根据客户端发送的初始报文中包含的随机客户端目标连接标识,按照四元组路由的方式,获取初始报文对应的服务器标识IP地址和端口号,结合配置中心下发的服务器标识信息与服务器地址映射关系,将初始报文转发至对应的后端服务器。

S203:服务端生成包含自己服务器标识信息的服务器连接标识。

服务端获得初始报文后,重新生成包含自己服务器标识信息的服务器连接标识,简称为SCID。服务端生成服务器连接标识时,将服务器标识信息,结合随机数填充字段,使用共享密钥加密,生成加密后的服务器连接标识。

服务器连接标识包括:服务器的IP地址,端口号,和服务器标识信息。

S204:服务端将服务器连接标识发送给QUIC负载均衡设备。S205:QUIC负载均衡设备将服务器连接标识发送给客户端。S206:客户端采用服务器连接标识替换客户端目标连接标识,将包含服务器连接标识的数据报文发送给QUIC负载均衡设备。

客户端接收到服务器标识信息后,将服务器信息替换客户端目标连接标识,在后续的数据报文传递过程中,作为客户端与服务器之间传输数据的连接标识。

S207:QUIC负载均衡设备解密该数据报文中的服务器连接标识,获得服务器标识信息,根据服务器标识信息进行路由,将数据报文路由至服务器标识信息对应的服务器实例。

上一个步骤中,客户端发送给QUIC负载均衡设备的数据报文包含服务器连接标识,服务器连接标识包含服务器标识信息。本步骤中,QUIC负载均衡设备接收到客户端发送的数据报文,解析该数据报文,获得服务器连接标识中的服务器标识信息,根据服务器标识信息路由方式,将数据报文路由至服务器标识信息对应的服务器实例。

S208:服务端向QUIC负载均衡设备传输通信报文。S209:QUIC负载均衡设备向客户端传输通信报文。在客户端与服务器之间已完成建立连接后,客户端与服务器之间通过服务器连接标识传输通信报文。

上述过程即为QUIC-LB的建议提案中配置中心,客户端,QUIC-LB和服务端之间的交互过程。在该过程中,配置中心生成服务器标识信息和后端服务器地址映射关系,其需要感知所有的后端服务器地址,并为服务器地址配置服务器标识信息,因此,配置中心需要知道后端服务器的服务可用性以及感知的实时性。然而,后端服务器的数量经常发生变化,例如,健康检查失败,服务器发生变动等,由此,服务器标识信息与后端服务器地址映射关系发生变化的频率较高。因此会产生如下几点问题:

(1)如果后端服务器的数量每次发送更新,服务器标识信息与后端服务器地址映射关系需要更新,配置中心都下发新的配置版本,而QUIC-LB的建议提案中的配置旋转字段(其表示用于存放配置版本的字段),只有三个可用值,无法满足这种频繁更新的需求。

(2)服务器标识信息与后端服务器地址映射关系的频繁更新会造成稳定性问题,例如,数据不一致,版本更新不及时的问题。因为配置中心承载的角色比较重要,当配置中心的数据出现问题时,会造成客户端和服务器之间大规模的连接中断问题。

(3)配置中心自身的复杂性,以及与外部组件的耦合,导致配置中心的服务可用性指标因为复杂性和耦合性受到影响。

此外,以下结合图4描述QUIC-LB的建议提案提供的QUIC负载均衡设备处理数据报文的过程。S401:解析数据报文的报文头类型。在QUIC协议中,报文头是QUIC报文中的头部部分,用于传输控制信息和元数据。

S402:判断所述数据报文的报文头类型为长报文头还是短报文头。数据报文的报文头类型不同,其包含的控制信息种类不同,长报文头包含了更多的控制信息,如报文编号、版本号、加密阶段等,而短报文头只包含少量的控制信息,目的是为了减少头部开销,加快数据传输速度。但是,只有在连接建立成功之后,才能使用短报文头,而且需要先发送一个长报文头才能启用短报文头。

针对长报文头的数据报文,按照S403~S410的步骤,对数据报文进行处理。

S403:对于长报文头的数据报文,判断数据报文的连接标识(DCID)的长度是否合法。连接标识通常是8~28个字节的长度的字符串。如果连接标识的长度为该长度范围内,则表示连接标识的长度合法。如果连接标识的长度大于28个字节的长度或者小于8个字节的长度,则表示连接标识的长度不合法。

S403的判断结果包括合法和不合法两种结果,如果连接标识的长度合法,对应S404,如果连接标识的长度不合法,对应S409,通过备用路由的方式将数据报文路由至服务器。

S404:数据报文的连接标识的长度合法,解密数据报文的连接标识中的第一个字节,获得第一字节中的配置旋转字段以及该连接标识的有效字段,有效字段的长度为客户端连接标识的长度与配置旋转字段的长度之差。第一个字节中包含ConfigurationRotation(配置旋转)字段,配置旋转字段具有配置功能,主要用于兼容性切换。本申请实施例中,根据配置旋转字段的值,判断客户端发送的数据报文中的连接标识是否加密。

S405:判断配置旋转字段的值是否为预设值,如果配置旋转字段的值为预设值,则通过四元组路由的方式将数据报文路由至后端服务器;如果配置旋转字段的值不是预设值,为其他值,则对应S406。

如果配置旋转字段的值为预设值,例如,0b11(0b11相当于一个保留版本信息,该保留版本表示连接处于未加密状态),则表示数据报文中的连接标识处于未加密状态。如果配置旋转字段的值不是预设值,为其他值,则标识数据报文中的连接标识处于加密状态。

在QUIC协议中,只有客户端在发起新的连接建立过程中,才会出现处于未加密状态的数据报文的连接标识,当客户端与服务器已完成连接建立后,客户端与服务器之间传输的所有数据报文的连接标识均处于加密状态。

因此,如果配置旋转字段的值为预设值,例如,0b11,则表示数据报文中的连接标识处于未加密状态,说明该数据报文可能是客户端在建立新的连接过程中发出的数据报文,对于客户端发送的数据报文,通过四元组路由的方式将数据报文转发至后端服务器。如果配置旋转字段的值不是预设值,为其他值,则说明数据报文中的连接标识处于加密状态,该数据报文为客户端与服务器之间已完成连接建立的过程,需要对该数据报文进行其他验证,请参考步骤S406。

S406:配置旋转字段的值为其他值,判断配置旋转字段的配置版本验证是否合法,如果配置版本验证不合法,对应S409,如果配置版本验证合法,对应S407。配置旋转字段用于存放配置版本信息,配置版本信息包含2个bit位(此处可称为配置信息位)。因为2个bit位可以区分4个值,也就是,配置旋转字段的配置版本包括4个版本。通常情况下,配置旋转字段存放的是线上正在使用的2个版本。在版本发布时,控制发布版本的频率,使线上正在使用的版本同时不超过2个版本,因此,验证配置旋转字段的配置版本合法性,只需要验证线上正在使用的这2个版本是否合法即可。如果配置版本不合法,QUIC负载均衡设备和后端服务器之间的配合会出现问题,因此,需要保证配置旋转字段的配置版本验证合法。

S407:配置旋转字段的配置版本验证合法,解析连接标识,获得连接标识中的服务器标识信息。如果配置旋转字段的配置版本验证合法,说明客户端所使用的QUIC协议属于当前QUIC协议。基于此种情况,解析数据报文的连接标识,获得服务器标识信息,用于后续通过服务器标识信息路由的方式将数据报文路由至对应的后端服务器实例。

S408:判断服务器标识信息是否合法,如果服务器标识信息合法,对应S410,如果服务器标识信息不合法,对应S409。S409:通过备用路由的方式,将数据报文路由至后端服务器。S410:通过服务器标识信息路由的方式,将数据报文路由至服务器标识信息对应的后端服务器。

针对短报文头的数据报文,按照S411~S418的步骤,对数据报文进行处理。

S411:对于短报文头的数据报文,判断数据报文的连接标识的长度是否合法。连接标识通常是8~28个字节的长度的字符串。如果连接标识的长度为该长度范围内,则表示连接标识的长度合法。如果连接标识的长度大于28个字节的长度或者小于8个字节的长度,则表示连接标识的长度不合法。S411的判断结果包括合法和不合法两种情况,如果数据报文的连接标识的长度合法,对应S412,如果数据报文的连接标识的长度不合法,对应S417,丢弃报文。

对于短报文头的数据报文,如果该数据报文的连接标识的长度不合法,则表明该数据报文为无效的数据报文。因此,如果短报文头的数据报文的连接标识的长度不合法,则对应S417,丢弃报文。如果短报文头的数据报文的连接标识的长度合法,则进一步对该数据报文的连接标识执行如下步骤。

S412:如果数据报文的连接标识的长度合法,解密连接标识的第一个字节,获得第一个字节的配置旋转字段和连接标识的有效字段,有效字段的长度为连接标识的长度与配置旋转字段的长度之差。步骤S412与步骤S404相对应,相关解释可以参考S404,此处不再赘述。

S413:判断配置旋转字段是否为预设值,如果配置旋转字段的值为预设值,按照四元组路由的方式将数据报文路由至后端服务器。如果配置旋转字段的值不是预设值,为其他值,对应S414。步骤S413与步骤S405相对应,相关解释可以参考S405,此处不再赘述。

S414:配置旋转字段的值为其他值,判断配置旋转字段的配置版本验证是否合法,如果配置版本验证合法,对应S415,如果配置版本验证不合法,对应S417,丢弃报文。配置旋转字段用于存放配置版本信息,配置版本信息包含2个bit位(此处可称为配置信息位)。因为2个bit位可以区分4个值,也就是,配置旋转字段的配置版本包括4个版本。

通常情况下,配置旋转字段存放的是线上正在使用的2个版本。在版本发布时,控制发布版本的频率,使线上正在使用的版本同时不超过2个版本,因此,验证配置旋转字段的配置版本合法性,只需要验证线上正在使用的这2个版本是否合法即可。如果配置版本不合法,QUIC负载均衡设备和后端服务器之间的配合会出现问题,因此,需要保证配置旋转字段的配置版本验证合法。

S415:配置版本验证合法,解析数据报文的连接标识,获得连接标识中包含的服务器标识信息。如果配置旋转字段的配置版本验证合法,说明客户端所使用的QUIC协议属于当前QUIC协议。基于此种情况,解析数据报文的连接标识,获得服务器标识信息,用于后续通过服务器标识信息路由的方式将数据报文路由至对应的后端服务器实例。

S416:判断服务器标识信息是否合法,如果服务器标识信息合法,对应S418,如果服务器标识信息不合法,对应S417。

如果服务器标识信息为客户端与服务器建立连接之后,服务器提供的一个随机字符串,称为服务器标识信息,用于标识客户端和服务器之间的该连接,验证身份和数据的完整性和安全性。如果服务器标识信息不合法,则说明该数据报文是伪造的,从而导致数据丢失或者安全问题。因此,如果服务器标识信息不合法,将会立即丢弃该数据报文,并拒绝进一步处理。同时,客户端也会拒绝再次建立连接,以防止数据泄露或破坏系统的稳定性。

S417:丢弃报文。S418:通过服务器标识信息的路由方式,将数据报文路由至服务器标识信息对应的后端服务器。以上即为QUIC-LB的建议提案提供的QUIC负载均衡设备处理数据报文的过程。

根据图4所示的数据报文处理流程图可知,QUIC-LB的建议提案中对数据报文进行处理的过程存在攻击者对数据报文进行重放攻击的风险,具体如下:

攻击者观察到服务端下发的加密后的客户端目标连接标识DCID后,可以提取加密后的DCID,重新发起连接,将提取的DCID放置初始报文中。QUIC负载均衡设备接收到该初始报文后,解密该初始报文中的DCID,获得合法的服务器标识信息,直接使用该服务器标识信息将数据报文路由服务器标识信息对应的后端服务器实例中。该过程称为攻击者重放攻击。

如果攻击者使用该DCID发起分布式的建立操作,所有的连接就会转发到后端单台服务器上,容易造成该服务器被攻击。如果攻击者准备一批这种加密后的DCID进行以上攻击,仍然有概率造成一批后端服务器被攻击。因此,如何减少网络攻击者对后端服务器进行攻击的风险是需要解决的技术问题。

基于上述问题,本申请实施例提供的数据报文处理方法,通过客户端目标连接标识获取客户端源地址信息和客户端源端口信息,根据客户端源地址信息和客户端源端口信息,以及服务器标识信息生成方式,生成服务器标识信息;其中,所述服务器标识信息的生成方式由负载均衡设备与服务器之间预先确定。将数据报文转发至服务器标识信息对应的服务器实例。此方法中,客户端源地址信息和客户端源端口信息属于负载均衡设备通过数据报文可获得的信息,预先确定的服务器标识信息生成方式属于负载均衡设备和服务器之间预先确定的服务器标识信息生成方式,由此获得的服务器标识信息无法被攻击者获取,进而减少了网络攻击者发送数据报文给服务器标识信息对应的服务器实例的概率,减少了网络攻击者对后端服务器进行攻击的风险。

经过上述内容的背景介绍,本领域技术人员可以了解现有技术存在的问题,接下来对本申请的数据报文处理方法的应用场景进行详细说明。本申请提供的数据报文处理方法可以应用于客户端发起数据访问请求的过程中,负载均衡设备对该数据访问请求中的数据报文进行处理,转发至匹配的后端服务器实例的应用场景。

其中,本申请提供的数据报文处理方法,采用QUIC负载均衡设备对数据报文进行处理,具体过程可以结合图3和图5进行详细说明。图3为本申请实施例提供的数据报文处理过程中各个端之间数据交互的时序图。图5为本申请实施例提供的数据报文处理的过程图。

以下结合图3详细描述本申请实施例提供的数据报文处理过程中,配置中心,客户端,负载均衡设备,服务器之间的交互过程。

配置中心分别向QUIC负载均衡设备和服务端发送服务器标识信息的长度、随机数填充字段的长度、共享密钥。此处可以是QUIC负载均衡设备和服务端向配置中心请求发送上述信息,也可以是服务端在订阅模式中,配置中心满足预设条件时,向服务端推送上述信息,预设条件包括配置中心的配置发生变化。

本申请实施例中提供的数据报文处理过程,在QUIC-LB的建议提案中基础上解决其所存在的问题,配置中心无需承担配置服务器标识信息与服务器地址映射关系的任务,服务器标识信息与服务器地址映射关系是由QUIC负载均衡设备和服务器配合生成。QUIC负载均衡设备根据客户端源地址信息和客户端源端口信息,结合服务器标识信息生成方法,获得服务器标识信息;其中,所述服务器标识信息的生成方式由负载均衡设备与服务器之间预先确定。将数据报文转发至服务器标识信息对应的服务器实例。

服务器使用该预先确定的服务器标识信息生成方法,获得服务器标识信息。根据服务器标识信息,服务器地址信息,服务器端口信息,生成服务器连接标识,发送给客户端,客户端将该服务器连接标识作为新的客户端目标连接标识,用于与服务器进行后续数据报文传递的目标连接标识。

上述过程中,客户端源地址信息和客户端源端口信息是QUIC负载均衡设备和服务器均可获得的信息,服务器标识信息与服务器地址映射关系是由QUIC负载均衡设备和服务器配合生成的。因此,生成服务器标识信息的方式是在QUIC负载均衡设备和服务器之间完成的,不仅降低了配置中心的复杂度及更新频率,还避免了攻击者重放加密后的客户端目标连接标识进行攻击的安全问题。

以下结合图3和图5对本申请提供的数据报文处理方法的具体实现方式进行介绍。图3所提供的数据报文处理过程是对QUIC-LB的建议提案中所存在的问题进行改善,因此,此处对步骤S301~步骤S309中进行改进的步骤进行详细描述,其他未作改进的步骤可以参考图2中的对应步骤的描述,此处不再赘述。

S301:客户端向QUIC负载均衡设备发送初始报文,初始报文包含随机客户端目标连接标识。初始报文是指客户端发起一个新的连接时发送的数据报文,因此,初始报文中包含的随机客户端目标连接标识DCID中只包含客户端源地址信息和客户端源端口信息,不包含服务器标识信息。

S302:QUIC负载均衡设备根据源地址信息和端口计算获得服务器标识信息,进行一致性hash转发,将数据报文转发至服务器标识信息对应的后端服务器。

QUIC负载均衡设备根据初始报文的随机客户端目标连接标识中的客户端源地址信息和客户端源端口信息,结合该服务器标识信息生成方法,生成服务器标识信息;其中,所述服务器标识信息的生成方式由负载均衡设备与服务器之间预先确定。

随机客户端目标连接标识中的客户端源地址信息是一个4字节(IPV4,互联网协议第4版)或者16字节(IPV6,互联网协议第6版)的整数,客户端源端口信息是一个2字节的整数,将客户端源地址信息和客户端源端口信息映射成一个符合服务器标识信息(serverid)长度的整数,最终服务器标识信息需要携带在客户端目标连接标识中。QUIC负载均衡设备将包含由服务器标识信息的客户端目标连接标识信息发送至该服务器标识信息对应的后端服务器。

其中,QUIC负载均衡设备和服务器预先确定的服务器标识信息生成方法,可以是哈希算法,具体如公式1:

Hash function(client_ip,client_port)-->server id公式1

其中,Hash function表示哈希函数,client_ip表示客户端源地址信息,client_port表示客户端源端口信息,server id表示服务器标识信息。

公式1是将客户端源地址信息和客户端源端口信息组合成一个值,将这个值作为索引从服务器列表中取出对应的服务器标识信息(server id)。

该哈希函数输出的server id为一个整数,server id的长度由配置中心下发的服务器标识信息的长度决定。例如,通过服务器标识信息选择后端服务器的过程,一般是通过server id这个整数计算后端服务器的索引值,例如,如果后端服务器共1000台,那么后端服务器的索引就是0-999。在选择后端服务器时,可以直接通过server id除以后端服务器的总数,获得一个0-999之间的数值,再根据这个数值选择对应的服务器作为该服务器标识信息对应的后端服务器。

在这个过程中.如果后端服务器的总数量出现变化.则相同的服务器标识信息除以变化后的服务器总数时,得到的第二索引值和之前未发生变化的第一索引值不一样。如果将同一条连接的数据传输到第二索引值对应的后端服务器,因为第二索引值对应的后端服务器与第一索引值对应的后端服务器不同,因此,导致连接失败。为了解决这个技术问题,本申请采用了一致性哈希算法,当后端服务器数量发生变化时,保证变化前和变化后同一个服务器标识信息的数据报文转发到相同的后端服务器上。

在获取服务器标识信息后,将服务器标识信息做一致性哈希路由,转发至服务器标识信息对应的服务器实例中,具体是以服务器标识信息server id作为一致性哈希路由算法的哈希因子输入,进行一致性哈希计算出转发的目标服务器。如前述Qch(Quic-idBased Consistent Hash,基于Quic-id的一致性哈希)调度算法的概念解释中,可以先创建一个空的环状结构,代表服务器节点的集合。然后,为每个服务器节点分配一个哈希值,代表它的位置。此处哈希函数获得的哈希值为服务器标识信息server id,根据服务器标识信息获得其对应的服务器节点,该服务器节点即为目标服务器。对于初始报文或者零往返时间报文来说,初始报文不包含服务器标识信息,需要通过客户端源地址信息和客户端源端口信息,计算服务器标识信息server id。对于其他报文(例如,一次往返时间报文或者握手报文)来说,数据报文的服务器连接标识中包含服务器标识信息,可以根据服务器连接标识获得服务器标识信息server id。

S303:服务端根据源地址信息和端口,计算并填充服务器标识信息。根据服务器标识信息,服务器地址信息和端口,生成服务器连接标识SCID。此处服务端具体是指服务器标识信息server id对应的服务器实例。服务端获得该数据报文,根据该数据报文包含的客户端目标连接标识获取客户端源地址信息和客户端源端口信息,结合服务器标识信息生成方式,获得服务器标识信息;其中,所述服务器标识信息的生成方式由负载均衡设备与服务器之间预先确定。

其中,QUIC负载均衡设备和服务端分别根据相同的客户端源地址信息和客户端源端口信息,计算获得相同的服务器标识信息。服务端将客户端源地址信息和客户端源端口信息作为哈希算法的输入,输出一个满足长度限制的服务器标识信息server id整数。根据随机数填充字段的长度,产生一个随机数填充字段。将服务器标识信息和随机数填充字段组合,通过配置中心下发的密钥进行加密产生密文,将密文填充到服务器标识信息SCID中。基于此,服务端根据服务器标识信息,及该服务器地址信息,服务器端口信息,生成服务器连接标识。

S304:服务端将服务器连接标识发送给QUIC负载均衡设备。S305:QUIC负载均衡设备将服务器连接标识发送给客户端。服务端将服务器连接标识发送给QUIC负载均衡设备,由QUIC负载均衡设备转发给客户端。基于此,客户端与服务器之间已经完成网络连接的建立过程,在客户端与服务器的后续数据报文传输过程中,客户端将服务器标识信息作为数据报文的目标连接标识。

S306:客户端采用服务器连接标识替换客户端目标连接标识,作为第二类型的数据报文的目标连接标识。将第二类型的数据报文发送至QUIC负载均衡设备中。S307:QUIC负载均衡设备解密服务器连接标识,获得服务器标识信息,根据服务器标识信息的路由方式,将数据报文路由至服务器标识信息对应的后端服务器。在客户端后续发送的数据报文中包含服务器连接标识,可以解密服务器连接标识获得服务器标识信息,因此,根据服务器标识信息路由的方式,将数据报文转发至后端服务器。

S308:服务端向QUIC负载均衡设备传输通信报文。S309:QUIC负载均衡设备向客户端传输通信报文。根据图3描述的数据报文处理过程中各个端之间的数据交互过程可知,本申请提供的数据报文处理方式,无需配置中心下发服务器标识信息和服务器地址映射关系,而是由QUIC负载均衡设备和后端服务器通过计算获得,极大地简化了配置中心的复杂度,提升了配置中心的稳定性和可用性。另外,通过客户端源地址信息和客户端源端口信息,生成服务器标识信息的方式,不仅保证QUIC负载均衡设备和后端服务器基于相同的信息产生相同的服务器标识信息,还可以避免攻击者利用客户端目标连接标识进行重发攻击后端服务器。

以下结合图5详细描述本申请实施例提供的数据报文处理过程。其中,图5的流程处理图中包含部分步骤和图4是相对应的,其中,相对应的部分可以参考图4对应部分的描述,此处主要描述图5的处理流程中和图4不相对应的部分。S501:解析数据报文的报文头类型。在QUIC协议中,报文头是QUIC报文中的头部部分,用于传输控制信息和元数据。在本申请实施例中,对数据报文的报文头类型进行解析,便于在后续步骤中针对不同的报文头的数据报文进行不同的数据报文分析处理过程。

S502:判断数据报文的报文头类型为短报文头类型还是长报文头类型。

其中,对于报文头类型的详细解释可以参考图4中的S402中,此处不再赘述。对于长报文头的数据报文,通过S503-S510的步骤对数据报文进行处理。

S503:解析数据报文所属的报文类型,如果数据报文为第一类型的数据报文,则对应S510。如果数据报文为第二类型的数据报文,则对应S504。

其中,第一类型的数据报文包括initial报文和0RTT data报文。initial报文为初始报文,其表示在QUIC连接建立的起始阶段使用的报文,主要用于传输加密所需的信息,例如,随机数和证书。其也用于发送早期数据,即在握手之前就可以传输的数据。0RTT data报文为零往返时间报文,是一种特殊的TCP数据报文类型,是在已经建立了会话的两个端点之间进行通信时使用的报文。其可以立即发送,无需等待握手过程完成。因为两端都保存了之前会话的加密密钥,且重新使用它们来保护新的连接。此种数据报文的优点是可以显著减少延迟,尤其是在需要快速出传输小量数据的情况下。然而,因为这种数据报文没有经过三次握手过程验证其连接的安全性,因此可能存在安全风险。

第二类型的数据报文包括1RTT data报文、handshake报文。1RTT data报文是一次往返时间报文的简称,属于标准的TCP数据报文类型,是在初始握手完成后发送的第一批报文。其需要经历三次握手过程来建立连接,并在收到接收方的确认消息之后才能发送数据。该过程中,新的加密密钥已经被协商并准备好使用。handshake报文是在建立QUIC连接的过程中使用的报文,用于交换加密参数和验证身份。这种报文必须按照特定的顺序发送和接收,并且在传输过程中受到保护以防止被篡改或监听。

因此,第一类型的数据报文中包含的是客户端目标连接标识,其主要包含客户端源地址信息和客户端源端口信息,不包含服务器标识信息。因此,第一类型的数据报文采用根据源地址信息和源端口信息,生成服务器标识信息,根据服务器标识信息路由的方式路由数据报文。

第二类型的数据报文中包含了服务器重新下发的服务器连接标识,服务器连接标识中包含服务器标识信息。因此,如果第二类型的数据报文满足预设条件,可采用的解密服务器连接标识,获取服务器标识信息,根据服务器标识信息路由的方式路由数据报文。

以下结合其他部分进行具体分析。S510:源地址和源端口路由方式,根据客户端目标连接标识中的客户端源地址和客户端源端口,生成服务器标识信息,将数据报文路由至服务器标识信息对应的后端服务器。

第一类型的数据报文属于客户端发起QUIC连接时发送的数据报文,其客户端目标连接标识中不包含服务器标识信息,包含客户端源地址信息和客户端源端口信息,因此,采用客户端目标连接标识中的客户端源地址和客户端源端口,生成服务器标识信息,将数据报文路由至服务器标识信息对应的后端服务器。此过程在QUIC负载均衡设备和服务器之间均可以进行,无需配置中心下发服务器标识信息与后端服务器地址的映射关系,减轻了配置中心的负担。

S504:判断数据报文的连接标识的长度是否合法。如果连接标识的长度合法,对应S505。如果连接标识的长度不合法,对应S510。

对于第二类型的数据报文,需要对数据报文的连接标识的长度的合法性进行验证。连接标识通常是8~28个字节的长度的字符串。如果连接标识的长度为该长度范围内,则表示连接标识的长度合法。如果连接标识的长度大于28个字节的长度或者小于8个字节的长度,则表示连接标识的长度不合法。

如果连接标识的长度合法,可以通过该数据报文中的连接标识中获取服务器标识信息。如果连接标识的长度不合法,则无法通过该数据报文的连接标识获取服务器标识信息,可以通过S510的方式,根据该数据报文中的连接标识获取客户端源地址信息和客户端源端口信息,重新计算获得服务器标识信息。

S505:数据报文的连接标识的长度合法,解密连接标识的第一个字节,获得第一个字节中的配置旋转字段,以及连接标识的有效字段。

基于数据报文的连接标识的长度合法,进一步获取连接标识中第一个字节的的配置旋转字段,对配置旋转字段的值进行判断。根据配置旋转字段的值,判断客户端发送的数据报文中的连接标识是否加密。

S506:判断配置旋转字段的值是否为预设值,如果配置旋转字段的值为预设值,则对应S510。如果配置旋转字段的值不是预设值,为其他值,对应S507。

在QUIC协议中,只有客户端在发起新的连接建立过程中,才会出现处于未加密状态的数据报文,当客户端与服务器已完成连接建立后,客户端与服务器之间传输的所有数据报文均处于加密状态。

如果配置旋转字段的值为预设值,例如,0b11,则表示数据报文中的连接标识处于未加密状态,其说明该数据报文属于客户端发送的新的连接建立过程中的报文,通过S510的方式,源地址和源端口路由方式,生成服务器标识信息。

S507:配置旋转字段的值为其他值,判断配置旋转字段的配置版本验证是否合法,如果配置版本验证合法,对应S508,如果不合法,对应S510。

配置旋转字段的值为其他值,说明该数据报文中的连接标识处于加密状态,进一步对配置旋转字段的配置版本验证合法性。

S508:配置旋转字段的配置版本验证合法,解析数据报文的连接标识,获得连接标识中包含的服务器标识信息。如果配置旋转字段的配置版本验证合法,则说明客户端所使用的QUIC协议属于当前QUIC协议。基于此种情况,解析数据报文的连接标识,获得服务器标识信息,用于后续通过服务器标识信息路由的方式将数据报文路由至对应的后端服务器实例。

S509:按照服务器标识信息路由的方式,将数据报文路由至服务器标识信息对应的后端服务器。

S510:源地址和源端口路由方式,根据客户端目标连接标识中的客户端源地址和客户端源端口,生成服务器标识信息,将数据报文路由至服务器标识信息对应的后端服务器。

如果配置旋转字段的配置版本验证不合法,则说明客户端所使用的QUIC协议不属于当前QUIC协议。基于此种情况,客户端需要重新更新新的QUIC协议,并根据S510方式,重新生成服务器标识信息。

对于短报文头的数据报文,通过S511-S517的步骤对数据报文进行处理。

S511:对于短报文头的数据报文,判断数据报文的连接标识的长度是否合法。如果数据报文的连接标识的长度不合法,对应S517,如果数据报文的连接标识的长度合法,对应S512。

对于短报文头的数据报文,需要对数据报文的连接标识的长度的合法性进行验证。连接标识通常是8~28个字节的长度的字符串。如果连接标识的长度为该长度范围内,则表示连接标识的长度合法。如果连接标识的长度大于28个字节的长度或者小于8个字节的长度,则表示连接标识的长度不合法。

如果连接标识的长度合法,可以通过该数据报文中的连接标识获取服务器标识信息。如果连接标识的长度不合法,则无法通过该数据报文的连接标识获取服务器标识信息,可以通过S517的方式,根据该数据报文中的连接标识获取客户端源地址信息和客户端源端口信息,重新计算获得服务器标识信息。

S517:源地址和源端口路由,根据数据报文的连接标识中包含的客户端源地址和客户端源端口,生成服务器标识信息,将数据报文路由至服务器标识信息对应的后端服务器。步骤S517与步骤S510相对应,具体可以参考步骤S510。

S512:如果数据报文的连接标识的长度合法,则解密数据报文的连接标识的第一个字节,获得第一个字节的配置旋转字段和连接标识的有效字段。

步骤S512与步骤S505相对应,具体可以参考步骤S505的详细说明。

S513:判断配置旋转字段的值是否为预设值,如果配置旋转字段的值为预设值,则对应S517,如果配置旋转字段的值不是预设值,为其他值,则对应S514。

步骤S513与步骤S506相对应,具体可以参考步骤S506的详细说明。

S514:如果配置旋转字段的值为其他值,判断配置旋转字段的配置版本验证是否合法。如果配置旋转字段的配置版本验证合法,对应S515,如果配置旋转字段的配置版本验证不合法,对应S517。

步骤S514与步骤S507相对应,具体可以参考步骤S507的详细说明。

S515:配置旋转字段的配置版本验证合法,解析数据报文的连接标识,获得服务器标识信息。步骤S515与步骤S508相对应,具体可以参考步骤S508。

S516:按照服务器标识信息路由的方式,将数据报文路由至服务器标识信息对应的后端服务器。

S517:源地址和源端口路由,根据数据报文的连接标识中包含的客户端源地址和客户端源端口,生成服务器标识信息,将数据报文路由至服务器标识信息对应的后端服务器。

以上即为本申请实施例提供的数据报文处理过程的描述。

基于上述图5中数据报文处理的流程图可知,本申请实施例提供的数据报文处理方法,服务器标识信息与服务器端地址的映射关系,无需配置中心同步,简化配置中心的处理任务,提升配置中心的稳定性和服务可用性。

另外,对数据报文的报文类型进行识别,针对不同报文类型的数据报文,采用不同的方式获取服务器标识信息。对于第一类型的数据报文,采用上述通过服务器标识信息与服务器地址的映射关系的生成方法,可避免攻击者获取数据报文的服务器标识信息,进而攻击后端服务器的风险,提升了数据报文处理的安全性,使得本申请实施例提供的数据报文处理方法的安全性等价于传统的负载均衡设备基于四元组的路由方式的安全性。

第一实施例

图6为本申请第一实施例提供的数据报文处理方法的流程图。以下结合图6对本申请第一实施例提供的数据报文处理方法进行详细描述。第一实施例提供的数据报文处理方法与场景实施例相对应,相关过程可以参考场景实施例。此处提供的数据报文处理方法应用于负载均衡设备,其包括步骤S601~步骤S603。

如图6所示,在步骤S601中,获得客户端发送的数据报文包含的客户端目标连接标识。本步骤用于获取客户端发送的数据报文中包含的客户端目标连接标识,以获取客户端目标连接标识中的客户端源地址信息和客户端源端口信息,用于生成服务器标识信息。

数据报文的报文类型不同,其对应的客户端目标连接标识中包含的信息类型不同。因此,还需要解析数据报文的报文类型,数据报文的类型不同,获取数据报文的服务器标识信息的方法不同。因此,需要先区分数据报文的报文类型,如图5中的S503的介绍可知,第一类型的数据报文中包含的是客户端目标连接标识,其主要包含客户端源地址信息和客户端源端口信息,不包含服务器标识信息。因此,第一类型的数据报文采用根据源地址信息和源端口信息,生成服务器标识信息,根据服务器标识信息路由的方式路由数据报文。

第二类型的数据报文中包含了服务器重新下发的服务器连接标识,服务器连接标识中包含服务器标识信息。因此,采用解密服务器连接标识,获取服务器标识信息,根据服务器标识信息路由的方式路由数据报文。

如图6所示,在步骤S602中,根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息;其中,所述服务器标识信息的生成方式由负载均衡设备与服务器之间预先确定。

本步骤用于通过客户端源地址信息和客户端源端口信息,以及服务器标识信息生成方式,生成服务器标识信息。

其中,负载均衡设备根据上述方式生成服务器标识信息时,还包括从配置中心获取相关信息,具体如下:获得配置中心发送的共享密钥、服务器标识信息长度信息、随机数长度信息;所述根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息,包括:将所述客户端源地址信息和所述客户端源端口信息,结合所述共享密钥、服务器标识信息长度信息、以及所述随机数长度信息,计算获得满足所述服务器标识信息长度信息的服务器标识信息。

本申请实施例中,配置中心向负载均衡设备发送共享密钥、服务器标识信息长度信息、随机数长度信息;负载均衡设备生成的服务器标识信息满足配置中心下发的服务器标识信息的长度。在该过程中,配置中心无需发送服务器标识信息和服务器地址的映射关系,不仅减少了配置中心的负担,提升了配置中心的稳定性和可用性。另外,通过负载均衡设备和服务器预先确定的服务器标识信息生成方式,生成服务器标识信息,可以避免被攻击者获取服务器标识信息,进而减少了攻击者对服务器标识信息对应的后端服务器实例进行攻击。

其中,负载均衡设备对于不同类型的数据报文,采用不同的方式生成服务器标识信息,以下分别描述。

(1)对数据报文的报文头类型进行解析,如果数据报文的报文头类型为长报文头类型,进一步分析数据报文的报文类型。具体如下:

解析所述数据报文的报文头类型;所述解析所述数据报文所属的报文类型,包括:如果所述数据报文的报文头类型为长报文头类型,则解析所述数据报文所属的报文类型。

数据报文的报文头类型不同,其包含的控制信息种类不同,长报文头包含了更多的控制信息,如报文编号、版本号、加密阶段等,而短报文头只包含少量的控制信息,目的是为了减少头部开销,加快数据传输速度。但是,只有在连接建立成功之后,才能使用短报文头,而且需要先发送一个长报文头才能启用短报文头。

在数据报文的报文头类型为长报文头的情况下,进一步对数据报文的报文类型进行解析,如果数据报文的报文类型为第一类型的数据报文,则采用步骤S602的方式生成服务器标识信息。具体如下:

解析所述数据报文所属的报文类型;所述根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息,包括:如果所述数据报文的报文类型为第一类型的数据报文,则根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息;其中,所述第一类型的数据报文为客户端发起连接的过程中发送的数据报文。

其中,所述第一类型的数据报文为初始数据报文或者零往返时间数据报文。

第一类型的数据报文中,初始数据报文表示在QUIC连接建立的起始阶段使用的报文,主要用于传输加密所需的信息。零往返时间数据报文是一种特殊的TCP数据报文类型,是在已经建立了会话的两个端点之间进行通信时使用的报文。这种报文可以立即发送,不需要等待握手过程完成。

因此,第一类型的数据报文中不包含服务器标识信息,只包含客户端源地址信息和客户端源端口信息。所以,针对于第一类型的数据报文,根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息。

以上为对第一类型的数据报文生成服务器标识信息的过程描述,此外,如果数据报文的报文类型为第二类型,且第二类型的数据报文存在如下至少一种情况,则采用步骤S602的方式生成服务器标识消息。具体如下:

如果所述数据报文的报文类型为第二类型,且所述第二类型的数据报文的客户端目标连接标识存在如下至少一种情况,则对所述第二类型的数据报文执行所述根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息的步骤:所述第二类型的数据报文的客户端目标连接标识处于不合法状态;所述第二类型的数据报文的客户端目标连接标识处于未加密状态;所述第二类型的数据报文的客户端目标连接标识的第一字节中的配置旋转字段的配置版本信息处于不合法状态。

其中,所述第二类型的数据报文的客户端目标连接标识处于不合法状态,具体是客户端目标连接标识的长度处于不合法状态,客户端目标连接标识的长度为图5中的S504中提到的连接标识(DCID)的长度。

对于第二类型的数据报文,需要对数据报文的客户端目标连接标识的长度的合法性进行验证。客户端目标连接标识通常是8~28个字节的长度的字符串。如果客户端目标连接标识的长度为该长度范围内,则表示客户端目标连接标识的长度合法。如果客户端目标连接标识的长度大于28个字节的长度或者小于8个字节的长度,则表示客户端目标连接标识的长度不合法。

如果客户端目标连接标识的长度不合法,则认为无法通过该数据报文的客户端目标连接标识获取服务器标识信息,可以采用步骤S602的方式,根据该数据报文中的客户端目标连接标识获取客户端源地址信息和客户端源端口信息,计算获得服务器标识信息。

所述第二类型的数据报文的客户端目标连接标识处于未加密状态。

通过对客户端目标连接标识中的第一字节的配置旋转字段的值进行判断,以确定客户端目标连接标识是否处于加密状态。具体可参考图5的S505~S506。

如果配置旋转字段的值为预设值,例如,0b11,则表示数据报文中的客户端目标连接标识处于未加密状态,其说明该数据报文的客户端目标连接标识中包含客户端源地址信息和客户端源端口信息,不包含服务器标识信息。因此,通过步骤S602的方式生成服务器标识信息。

所述第二类型的数据报文的客户端目标连接标识的第一字节中的配置旋转字段的配置版本信息处于不合法状态。

通过对第一字节中的配置旋转字段的配置版本信息验证是否处于合法状态,以确定对第二类型的数据报文获取服务器标识信息的方式,具体可以参考图5的S507的描述。如果配置旋转字段的配置版本验证不合法,则说明客户端所使用的QUIC协议不属于当前QUIC协议。基于此种情况,客户端需要重新更新新的QUIC协议,采用步骤S602的方式,重新生成服务器标识信息。

此外,对于第二类型的数据报文,还可以通过解密数据报文的服务器连接标识中包含的服务器标识信息,具体如下:如果所述数据报文的报文类型为第二类型,则对所述第二类型的数据报文执行如下方法:如果所述第二类型的数据报文的客户端目标连接标识处于合法状态以及加密状态,且所述第二类型的数据报文的客户端目标连接标识的第一字节中的配置旋转字段的配置版本信息处于合法状态,则解密获取所述数据报文的服务器连接标识中包含的服务器标识信息;将所述数据报文转发至所述服务器标识信息对应的服务器实例,以由所述服务器实例对所述数据报文进行处理。

对于第二类型的数据报文,如果客户端目标连接标识处于合法状态,也就是客户端目标连接标识的长度处于合法状态,则确定该数据报文属于当前客户端与服务器的连接中的数据报文。然后,对该数据报文的客户端目标连接标识验证是否处于加密状态,如果处于加密状态,表示该数据报文的客户端目标连接标识的第一字节的配置旋转字段的值为其他值,进一步对配置旋转字段的配置版本验证其合法性。如果配置旋转字段的配置版本验证合法,则说明客户端所使用的QUIC协议属于当前QUIC协议。基于此种情况,解析数据报文的连接标识,获得服务器标识信息,用于后续通过服务器标识信息路由的方式将数据报文路由至对应的后端服务器实例。

以上即为对于数据报文的报文头类型为长报文头时,第一类型的数据报文和第二类型的数据报文在各种情况下生成服务器标识信息的方式。

(2)数据报文的报文头类型还包括短报文头,针对短报文头的数据报文,采用如下方式生成服务器标识信息。具体如下:如果所述数据报文的报文头为短报文头类型,则对所述短报文头类型的数据报文执行如下方法:

如果所述短报文头类型的数据报文的客户端目标连接标识处于合法状态以及加密状态,且所述短报文头类型的数据报文的客户端目标连接标识的第一字节中的配置旋转字段的配置版本信息处于合法状态,则解密获取所述数据报文的服务器连接标识中包含的服务器标识信息;将所述数据报文转发至所述服务器标识信息对应的服务器实例,以由所述服务器实例对所述数据报文进行处理。

其中,对于短报文头类型的数据报文,如果是通过解密数据报文的服务器连接标识获取服务器标识信息,则短报文头类型的数据报文满足客户端目标连接标识处于合法状态以及加密状态,且所述短报文头类型的数据报文的客户端目标连接标识的第一字节中的配置旋转字段的配置版本信息处于合法状态的条件。短报文头类型的数据报文满足上述条件,说明该数据报文中的客户端目标连接标识为客户端与服务器已完成连接的连接标识。具体对于目标连接标识处于合法状态,加密状态,以及第一字节中的配置旋转字段的配置版本信息处于合法状态的分析,与上述第二类型的数据报文采用解密数据报文的服务器连接标识获取服务器标识信息的分析类似,可以参考上述分析。

此外,如果所述数据报文的报文头为短报文头类型,且所述短报文头类型的数据报文的客户端目标连接标识存在如下至少一种情况,则对所述短报文头类型的数据报文执行所述根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息的步骤:所述短报文头类型的数据报文的客户端目标连接标识处于不合法状态;所述短报文头类型的数据报文的客户端目标连接标识处于未加密状态;所述短报文头类型的数据报文的客户端目标连接标识的第一字节中的配置旋转字段的配置版本信息处于不合法状态。

其中,对于短报文头类型的数据报文的客户端目标连接标识处于不合法状态的分析与第二类型的数据报文的客户端目标连接标识处于不合法状态的分析类似。对于短报文头类型的数据报文的客户端目标连接标识处于未加密状态的分析与第二类型的数据报文的客户端目标连接标识处于未加密状态的分析类似。对于短报文头类型的数据报文的的客户端目标连接标识的第一字节中的配置旋转字段的配置版本信息处于不合法状态的分析与第二类型的数据报文的的客户端目标连接标识的第一字节中的配置旋转字段的配置版本信息处于不合法状态的分析类似。以上即为对于数据报文的报文头类型为短报文头时,在各种情况下生成服务器标识信息的方式。

如图6所示,在步骤S603中,将所述数据报文转发至所述服务器标识信息对应的服务器实例,以由所述服务器实例对所述数据报文进行处理。

其中,负载均衡设备将数据报文转发至服务器标识信息对应的服务器实例后,服务器实例也按照客户端源地址信息和客户端源端口信息,生成服务器标识信息,具体包括如下方式:获得所述服务器实例重新生成的服务器连接标识,所述服务器连接标识包含所述服务器实例的服务器标识信息;将所述服务器连接标识发送给所述客户端,替换所述客户端目标连接标识,作为第二类型的数据报文的目标连接标识,其中,所述第二类型的数据报文为客户端与服务器已完成连接建立之后传输的数据报文;其中,所述服务器实例通过如下方法重新生成所述服务器连接标识:根据所述数据报文的客户端目标连接标识中包含的客户端源地址信息和客户端源端口信息,以及由服务器标识信息生成方式,获得服务器标识信息;其中,所述服务器标识信息的生成方式由负载均衡设备与服务器之间预先确定;根据所述服务器标识信息,以及所述服务器实例的服务器地址信息,服务器端口信息,生成所述服务器连接标识。

服务端将服务器连接标识发送给负载均衡设备,由负载均衡设备转发给客户端。基于此,客户端与服务器之间已经完成网络连接的建立过程,在客户端与服务器的后续数据报文传输过程中,客户端将服务器标识信息作为数据报文的目标连接标识。

其中,所述将所述数据报文转发至所述服务器标识信息对应的服务器实例,以由所述服务器实例对所述数据报文进行处理,可以通过如下方式实现:将所述服务器标识信息作为一致性路由算法的输入信息,进行一致性路由计算,获得与所述服务器标识信息对应的服务器实例。其中,将服务器标识信息进行一致性路由计算,可以是一致性哈希路由计算,具体可以参考图3的S302的描述。

此外,本申请实施例中使用的负载均衡设备可以是QUIC负载均衡设备,支持QUIC协议的网络连接迁移特性和网络多路径特性,提供了一种更加高效、可靠的负载均衡解决方案。因此,具体还包括:

(1)网络连接迁移特性:

如果所述客户端发送数据报文的网络通道由第一网络通道迁移至第二网络通道,则获取所述数据报文已携带的服务器连接标识中的服务器标识信息,将所述服务器标识信息对应的服务器实例作为处理所述数据报文的服务器实例。

所述如果所述客户端发送数据报文的网络通道由第一网络通道迁移至第二网络通道,包括如下至少一种情况:情况1:所述客户端的客户端源地址信息由第一客户端源地址信息切换为第二客户端源地址信息。情况2:所述客户端的客户端源端口信息由第一客户端源端口信息切换为第二客户端源端口信息。

其中,客户端的源IP或者源端口发生变化,其所采用的数据传输协议无感知该源IP或者源端口发生变化的情况时,该客户端可以继续使用变化之前已建立连接的服务器连接标识与服务器之间进行数据报文的传输。在这个过程中,客户端将数据报文发送至负载均衡设备,负载均衡设备解析数据报文中的服务器连接标识,获得服务器连接标识中的服务器标识信息,将该数据报文继续转发至该服务器标识信息对应的服务器实例。

情况3:所述客户端的客户端源地址信息由第一客户端源地址信息切换为第二客户端源地址信息,且所述客户端的客户端源端口信息由第一客户端源端口信息切换为第二客户端源端口信息。情况3可应用于如下2个应用场景:

应用场景1:所述客户端通过移动通信网络建立通信连接时,所述客户端的移动通信网络信号由第一移动基站迁移至第二移动基站。

客户端可以通过移动通信网络建立通信连接,当客户端的移动通信网络所属的移动通信基站从第一移动通信基站迁移至第二移动通信基站时,客户端仍然可以采用相同的服务器连接标识将数据报文转发至该服务器连接标识对应的服务器实例。

应用场景2:所述客户端通过无线局域网访问外部网络资源时,所述无线局域网的路由器地址信息由第一路由器地址信息切换为第二路由器地址信息。

客户端通过无线局域网建立通信连接,具体是连接到一个路由器,路由器为该客户端设备分配一个私有IP地址,该私有IP地址仅在该无线局域网内容有效。当客户端通过该无线局域网访问外部网络设备时,该访问请求的IP地址为该路由器的公共IP地址。此过程中,如果路由器的公共IP地址由第一公共IP地址切换为第二公共IP地址时,客户端仍然可以采用相同的服务器连接标识将数据报文转发至该服务器连接标识对应的服务器实例。

上述三种情况下,客户端将数据报文发送至服务器实例时,变化之前的服务器实例和变化之后的服务器实例相同。

(2)网络多路径特性:

如果所述客户端同时连接多种通信连接方式;获得所述客户端通过多种通信连接方式发送的多个数据报文,其中,所述多个数据报文包括由所述服务器实例生成的同一个服务器连接标识;获取所述多个数据报文携带的服务器连接标识中的服务器标识信息;将具有相同的服务器标识信息的多个数据报文转发至所述服务器标识信息对应的服务器实例。

网络多路径是QUIC协议可以在同一时间内使用多个网络路径传输数据。这种特性有效地利用网络带宽,提升数据传输的速度和效率。此外,网络多路径特征可以提升网络的容错能力,因为即使其中一个网络路径出现故障,QUIC协议也可以自动切换到其他路径,从而保证数据传输的连续性和可靠性。

本申请实施例提供一种数据报文处理方法,包括:获得客户端发送的数据报文包含的客户端目标连接标识;根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息;将所述数据报文转发至所述服务器标识信息对应的服务器实例,以由所述服务器实例对所述数据报文进行处理。

上述方法中,通过客户端目标连接标识获取客户端源地址信息和客户端源端口信息,根据客户端源地址信息和客户端源端口信息,以及由负载均衡设备和服务器预先确定的服务器标识信息生成方式,生成服务器标识信息。将数据报文转发至服务器标识信息对应的服务器实例。此方法应用于负载均衡设备,客户端源地址信息和客户端源端口信息属于负载均衡设备通过数据报文可获得的信息,预先确定的服务器标识信息生成方式属于负载均衡设备和服务器之间预先确定的服务器标识信息生成方式,由此获得的服务器标识信息无法被攻击者获取,进而减少了网络攻击者发送数据报文给服务器标识信息对应的服务器实例的概率,减少了网络攻击者对后端服务器进行攻击的风险。

第二实施例

与上述一种数据报文处理方法的应用场景实施例以及第一实施例提供的一种数据报文处理方法相对应,本申请第二实施例提供一种数据报文处理装置。图7为本申请第二实施例提供的数据报文处理装置的示意图,以下结合图7对本申请第二实施例提供的装置进行描述,本申请第二实施例与场景实施例和第一实施例的相同描述,具体请参考场景实施例和第一实施例,本实施例不再赘述。以下描述所涉及的实施例是用来解释说明方法原理,不是实际使用的限定。

图7所示的数据报文处理装置包括:客户端目标连接标识获得单元701,用于获得客户端发送的数据报文包含的客户端目标连接标识;服务器标识信息获得单元702,用于根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息;数据报文转发单元703,用于将所述数据报文转发至所述服务器标识信息对应的服务器实例,以由所述服务器实例对所述数据报文进行处理。

第三实施例

本申请第三实施例提供一种数据报文处理方法,应用于服务器。图8为本申请第三实施例提供的数据报文处理方法的流程图,以下结合图8对本申请第三实施例提供的方法进行描述,本申请第三实施例与场景实施例和第一实施例的相同描述,具体请参考场景实施例和第一实施例,此处不再赘述。以下描述所涉及的实施例是用来解释说明方法原理,不是实际使用的限定。

图8所示的数据报文处理方法包括步骤S801~步骤S804。

如图8所示,在步骤S801中,获得负载均衡设备发送的数据报文包含的客户端目标连接标识。

本步骤为服务器获得负载均衡设备发送的数据报文,该数据报文中包含客户端目标连接标识。服务端根据该数据报文包含的客户端目标连接标识获取客户端源地址信息和客户端源端口信息,获得服务器标识信息。

如图8所示,在步骤S802中,根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息;其中,所述服务器标识信息的生成方式由负载均衡设备与服务器之间预先确定。

本步骤用于根据客户端源地址信息和客户端源端口信息,以及由负载均衡设备和服务器预先确定的服务器标识信息生成方式,获得服务器标识信息。

其中,服务器根据上述方式生成服务器标识信息时,还包括:获得配置中心发送的共享密钥、服务器标识信息长度信息、以及随机数长度信息;所述根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息,可以通过如下方式实现:

将所述客户端源地址信息和所述客户端源端口信息,结合所述共享密钥、服务器标识信息长度信息、以及所述随机数长度信息,计算获得满足所述服务器标识信息长度信息的服务器标识信息。

其中,配置中心向负载均衡设备发送共享密钥、服务器标识信息长度信息、随机数长度信息;服务端生成的服务器标识信息满足配置中心下发的服务器标识信息的长度。服务端和负载均衡设备均可以通过数据报文的客户端目标连接标识中获取客户端源地址信息和客户端源端口信息。然后,结合由负载均衡设备和服务器预先确定的服务器标识信息生成方式,获得服务器标识信息。负载均衡设备和服务端根据相同的客户端源地址信息和客户端源端口信息,生成相同的服务器标识信息。由此可以避免被攻击者获取服务器标识信息,进而减少了攻击者对服务器标识信息对应的后端服务器实例进行攻击。

如图8所示,在步骤S803中,根据所述服务器标识信息,以及所述服务器的服务器地址信息,服务器端口信息,生成服务器连接标识。

本步骤用于服务器重新生成服务器连接标识,包含服务器标识信息,服务器地址信息,以及服务器端口信息。此处生成的服务器连接标识,用于客户端与服务端之间进行后续数据报文的目标连接标识。

如图8所示,在步骤S804中,将所述服务器连接标识发送给所述负载均衡设备。本步骤用于将服务器连接标识发送给负载均衡设备,通过负载均衡设备发送给客户端。在客户端与服务器完成连接建立后,在后续数据报文中通过服务器连接标识进行传输。

本申请实施例提供的数据报文处理方法,应用于服务器,服务器通过负载均衡设备发送的数据报文包含的客户端目标连接标识中获取客户端源地址信息和客户端源端口信息,预先确定的服务器标识信息生成方式属于负载均衡设备和服务器之间预先确定的服务器标识信息生成方法。因此,根据客户端源地址信息和客户端源端口信息,结合由负载均衡设备和服务器预先确定的服务器标识信息生成方式,生成的服务器标识信息无法被网络攻击者获取,进而减少了网络攻击者发送数据给服务器标识信息对应的服务器实例的概率。在服务器标识信息无法被网络攻击者获取的基础上,服务器根据服务器标识信息,结合服务器地址信息和服务器端口信息重新生成的服务器连接标识也无法被网络攻击者获取。因此,上述方法减少了网络攻击者对后端服务器进行攻击的风险。

第四实施例

与上述一种数据报文处理方法的应用场景实施例以及第三实施例提供的一种数据报文处理方法相对应,本申请第四实施例提供一种数据报文处理装置。图9为本申请第四实施例提供的数据报文处理装置的示意图,以下结合图9对本申请第四实施例提供的装置进行描述,本申请第四实施例与场景实施例和第三实施例的相同描述,具体请参考场景实施例和第三实施例,本实施例不再赘述。以下描述所涉及的实施例是用来解释说明方法原理,不是实际使用的限定。

图9所示的数据报文处理装置包括:客户端目标连接标识获得单元901,用于获得负载均衡设备发送的数据报文包含的客户端目标连接标识;服务器标识信息获得单元902,用于根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息;其中,所述服务器标识信息的生成方式由负载均衡设备与服务器之间预先确定;服务器连接标识生成单元903,用于根据所述服务器标识信息,以及所述服务器的服务器地址信息,服务器端口信息,生成服务器连接标识;服务器连接标识发送单元904,用于将所述服务器连接标识发送给所述负载均衡设备。

第五实施例

与上述一种数据报文处理方法的应用场景实施例以及第一实施例提供的一种数据报文处理方法相对应,本申请第五实施例提供一种数据报文处理方法,应用于客户端。图10为本申请第五实施例提供的数据报文处理方法的流程图,以下结合图10对本申请第五实施例提供的方法进行描述,本申请第五实施例与场景实施例和第一实施例的相同描述,具体请参考场景实施例和第一实施例,本实施例不再赘述。以下描述所涉及的实施例是用来解释说明方法原理,不是实际使用的限定。

图10所示的数据报文处理方法包括步骤S1001~步骤S1003。

如图10所示,在步骤S1001中,将包含客户端目标连接标识的第一类型的数据报文发送给负载均衡设备,获得所述负载均衡设备返回的服务器连接标识,其中,所述第一类型的数据报文为客户端发起连接的过程中发送的数据报文。

本步骤用于将第一类型的数据报文发送给负载均衡设备,第一类型的数据报文为客户端发起连接过程中通常发送的初始报文或者零往返时间报文,这两种报文中的客户端目标连接标识包含客户端源地址信息和客户端源端口信息,不包含服务器标识信息。由负载均衡设备转发给服务端,服务端生成服务器连接标识,通过负载均衡设备转发给客户端后,客户端与服务端之间进行后续数据报文的传输过程中使用服务器连接标识。

如图10所示,在步骤S1002中,将所述服务器连接标识替换所述客户端目标连接标识,作为所述第二类型的数据报文的目标连接标识,其中,所述第二类型的数据报文为客户端与服务器已完成连接建立之后传输的数据报文。

在本步骤中,客户端获取服务器连接标识后,将服务器连接标识替换客户端目标连接标识,作为第二类型的数据报文的目标连接标识。其中,第二类型的数据报文包括一次往返时间的数据报文和握手报文。因此,第二类型的数据报文属于客户端与服务器成功建立连接之后传输的数据报文。

如图10所示,在步骤S1003中,将所述第二类型的数据报文发送给所述负载均衡设备;其中,所述服务器连接标识包含服务器标识信息,所述服务器标识信息由所述负载均衡设备通过如下方式获得:根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息;其中,所述服务器标识信息的生成方式由负载均衡设备与服务器之间预先确定。

本步骤为客户端与服务端已完成连接建立过程,之后,客户端向负载均衡设备发送的第二类型的数据报文,其包含服务器连接标识。且该服务器标识标识是由服务端生成的,服务器连接标识中包含服务器标识信息,服务器标识信息是由负载均衡设备根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式生成的。

本申请实施例提供的数据报文处理方法应用于客户端,向负载均衡设备发送第一类型的数据报文包含客户端目标连接标识,负载均衡设备返回服务器连接标识,其中,服务器连接标识中包含服务器标识信息,服务器标识信息是由负载均衡设备通过客户端源地址信息和客户端源端口信息,以及由负载均衡设备和服务器预先确定的服务器标识信息生成方式生成的。此种服务器标识信息的生成方式是由负载均衡设备和服务器预先确定的,其生成的服务器标识信息无法被网络攻击者获取,进而减少了网络攻击者发送数据给服务器标识信息对应的服务器实例的概率。在客户端与服务器实例建立完整连接之后,客户端将服务器标识信息替换客户端目标连接标识,作为第二类型的数据报文的目标连接标识,将第二类型的数据报文发送给负载均衡设备。此过程中,在服务器标识信息无法被网络攻击者获取的基础上,服务器连接标识也无法被网络攻击者获取。因此,上述方式减少了网络攻击者对后端服务器进行攻击的风险。

第六实施例

与上述一种数据报文处理方法的应用场景实施例以及第五实施例提供的一种数据报文处理方法相对应,本申请第六实施例提供一种数据报文处理装置。图11为本申请第六实施例提供的数据报文处理装置的示意图,以下结合图11对本申请第六实施例提供的装置进行描述,本申请第六实施例与场景实施例和第五实施例的相同描述,具体请参考场景实施例和第五实施例,此处不再赘述。以下描述所涉及的实施例是用来解释说明方法原理,不是实际使用的限定。

图11所示的数据报文处理装置包括:服务器连接标识获得单元1101,用于将包含客户端目标连接标识的第一类型的数据报文发送给负载均衡设备,获得所述负载均衡设备返回的服务器连接标识,其中,所述第一类型的数据报文为客户端发起连接的过程中发送的数据报文;替换单元1102,用于将所述服务器连接标识替换所述客户端目标连接标识,作为所述第二类型的数据报文的目标连接标识,其中,所述第二类型的数据报文为客户端与服务器已完成连接建立之后传输的数据报文;数据报文发送单元1103,用于将所述第二类型的数据报文发送给所述负载均衡设备;其中,所述服务器连接标识包含服务器标识信息,所述服务器标识信息由所述负载均衡设备通过如下方式获得:根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息;其中,所述服务器标识信息的生成方式由负载均衡设备与服务器之间预先确定。

第七实施例

与上述一种数据报文处理方法的应用场景实施例以及第一实施例提供的一种数据报文处理方法相对应,本申请第七实施例提供一种数据报文处理系统。图12为本申请第七实施例提供的数据报文处理系统的逻辑框架图,以下结合图12对该系统进行描述,本申请第七实施例与场景实施例和第一实施例的相同描述,具体请参考场景实施例和第一实施例,本实施例不再赘述。以下描述所涉及的实施例是用来解释说明方法原理,不是实际使用的限定。

图12所示的数据报文处理系统包括:负载均衡设备1201,服务器1202;

所述负载均衡设备1201用于获得客户端发送的数据报文包含的客户端目标连接标识;根据所述客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及服务器标识信息的生成方式,获得服务器标识信息;其中,所述服务器标识信息的生成方式由负载均衡设备与服务器之间预先确定;将所述数据报文转发至所述服务器标识信息对应的服务器实例,以由所述服务器实例对所述数据报文进行处理。

负载均衡设备根据客户端源地址信息和客户端源端口信息,以及由负载均衡设备和服务器预先确定的服务器标识信息生成方式,获得服务器标识信息。其中,具体获得过程可以参考场景实施例和第一实施例的相关描述。

所述负载均衡设备还用于将所述服务器连接标识发送给客户端,替换所述客户端目标连接标识,作为第二类型的数据报文的目标连接标识,其中,所述第二类型的数据报文为客户端与服务器已完成连接建立之后传输的数据报文。

所述服务器1202用于根据所述数据报文的客户端目标连接标识中的客户端源地址信息和客户端源端口信息,以及由负载均衡设备和服务器预先确定的服务器标识信息生成方式,获得所述服务器标识信息;根据所述服务器标识信息,以及所述服务器实例的服务器地址信息,服务器端口信息,生成服务器连接标识;将所述服务器连接标识发送给所述负载均衡设备。

服务器根据客户端源地址信息和客户端源端口信息,以及由负载均衡设备和服务器预先确定的服务器标识信息生成方式,获得所述服务器标识信息的方式,可以参考场景实施例和第三实施例。

所述系统还包括配置中心,所述配置中心用于分别向所述负载均衡设备和所述服务器发送共享密钥、服务器标识信息长度信息、以及随机数长度信息;所述负载均衡设备具体用于将所述客户端源地址信息和所述客户端源端口信息,结合所述共享密钥、服务器标识信息长度信息、以及所述随机数长度信息,计算获得满足所述服务器标识信息长度信息的服务器标识信息;所述服务器具体用于将所述客户端源地址信息和所述客户端源端口信息,结合所述共享密钥、服务器标识信息长度信息、以及所述随机数长度信息,计算获得满足所述服务器标识信息长度信息的服务器标识信息。

本申请实施例提供的数据报文处理系统,负载均衡设备生成服务器标识信息的过程中,客户端源地址信息和客户端源端口信息属于负载均衡设备通过数据报文可获得的信息,预先确定的服务器标识信息生成方式属于负载均衡设备和服务器之间预先确定的服务器标识信息生成方式,由此获得的服务器标识信息无法被攻击者获取,进而减少了网络攻击者发送数据报文给服务器标识信息对应的服务器实例的概率,减少了网络攻击者对后端服务器进行攻击的风险。相应的,服务器根据客户端源地址信息和客户端源端口信息,结合由负载均衡设备和服务器预先确定的服务器标识信息生成方式,生成的服务器标识信息无法被网络攻击者获取,进而减少了网络攻击者发送数据给服务器标识信息对应的服务器实例的概率。在服务器标识信息无法被网络攻击者获取的基础上,服务器根据服务器标识信息,结合服务器地址信息和服务器端口信息重新生成的服务器连接标识也无法被网络攻击者获取。因此,上述系统减少了网络攻击者对后端服务器进行攻击的风险。

第八实施例

与本申请第一实施例、第三实施例和第五实施例的方法相对应的,本申请第八实施例还提供一种电子设备。如图13所示,图13为本申请第八实施例中提供的一种电子设备的示意图。该电子设备,包括:至少一个处理器1301,至少一个通信接口1302,至少一个存储器1303和至少一个通信总线1304;可选的,通信接口1302可以为通信模块的接口,如GSM模块的接口;处理器1301可能是处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。存储器1303可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。其中,存储器1303存储有程序,处理器1301调用存储器1303所存储的程序,以执行本发明第一实施例、第三实施例和第五实施例的方法。

第九实施例

与本申请第一实施例、第三实施例和第五实施例的方法相对应的,本申请第九实施例还提供一种计算机存储介质。所述计算机存储介质存储有计算机程序,该计算机程序被处理器运行,执行第一实施例、第三实施例和第五实施例的方法。本申请虽然以较佳实施例公开如上,但其并不是用来限定本申请,任何本领域技术人员在不脱离本申请的精神和范围内,都可以做出可能的变动和修改,因此本申请的保护范围应当以本申请权利要求所界定的范围为准。在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。1、计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(Transitory Media),如调制的数据信号和载波。2、本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。需要说明的是,本申请实施例中可能会涉及到对用户数据的使用,在实际应用中,可以在符合所在国的适用法律法规要求的情况下(例如,用户明确同意,对用户切实通知,等),在适用法律法规允许的范围内在本文描述的方案中使用用户特定的个人数据。需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。

相关技术
  • 一种数据实时处理系统及数据实时处理方法
  • 报文数据处理方法、报文数据处理系统及服务器
  • 数据报文处理方法、数据报文处理装置及系统
技术分类

06120116593774