CN118474103A - 数据请求的处理方法、装置、计算机设备和存储介质 - Google Patents

数据请求的处理方法、装置、计算机设备和存储介质 Download PDF

Info

Publication number
CN118474103A
CN118474103A CN202310150980.2A CN202310150980A CN118474103A CN 118474103 A CN118474103 A CN 118474103A CN 202310150980 A CN202310150980 A CN 202310150980A CN 118474103 A CN118474103 A CN 118474103A
Authority
CN
China
Prior art keywords
end server
data
client
packet
connection
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
Application number
CN202310150980.2A
Other languages
English (en)
Inventor
汪福裕
罗明明
欧阳昌葵
王志强
罗成
郭凌峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202310150980.2A priority Critical patent/CN118474103A/zh
Priority to PCT/CN2023/130699 priority patent/WO2024164601A1/zh
Publication of CN118474103A publication Critical patent/CN118474103A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及一种数据请求的处理方法、装置、计算机设备、存储介质和计算机程序产品,该方法可以应用于云技术、内容分发等技术领域。该方法包括:通过第一快速连接接收所述客户端发送的数据请求;基于所述数据请求确定所要调度的后端服务器,并创建第二快速连接;所述第二快速连接是与所述后端服务器之间的快速连接;依据所述第二快速连接将所述数据请求迁移至所述后端服务器,以指示所述后端服务器创建与所述客户端之间的伪连接,基于所述伪连接向所述客户端发送所述数据请求对应的数据包。采用本方法可以在不改变客户端已有逻辑的情况下支持基于请求内容的精细调度,可以提升容灾能力、降低延迟、降低带宽消耗、以及提升传输性能。

Description

数据请求的处理方法、装置、计算机设备和存储介质
技术领域
本申请涉及计算机网络技术领域,特别是涉及一种数据请求的处理方法、装置、计算机设备、存储介质和计算机程序产品。
背景技术
随着互联网的发展,用户对互联网的传输性能的要求越来越高。相关技术中,客户端向前端服务器发起请求,前端服务器按照负载均衡确定响应该请求的后端服务器,后端服务器向前端服务器发送响应数据,再由前端服务器将响应数据发送至客户端;通过负载均衡确定后端服务器,容易出现后端服务器不具备该请求对应的响应数据的情况,进而后端服务器需要通过回源获取响应数据,导致带宽要求高、延迟较长和传输性能低下的问题。
发明内容
基于此,有必要针对上述技术问题,提供一种数据请求的处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品,能够降低延迟,提升传输性能。
第一方面,本申请提供了一种数据请求的处理方法。所述方法包括:
通过第一快速连接接收客户端发送的数据请求;基于数据请求确定所要调度的后端服务器,并创建第二快速连接;第二快速连接是与后端服务器之间的快速连接;依据第二快速连接将数据请求迁移至后端服务器,以指示后端服务器创建与客户端之间的伪连接,基于伪连接向客户端发送数据请求对应的数据包。
第二方面,本申请提供了一种数据请求的处理方法。所述方法包括:
基于第二快速连接接收前端服务器迁移的数据请求;数据请求,是客户端基于第一快速连接发送至前端服务器的请求;响应于数据请求,创建与客户端之间的伪连接,以及获取数据请求对应的目标数据;通过伪连接向客户端发送封装了目标数据的数据包。
第三方面,本申请还提供了一种数据请求的处理装置。所述装置包括:
数据请求接收模块,用于通过第一快速连接接收客户端发送的数据请求;后端服务器调度模块,用于基于数据请求确定所要调度的后端服务器,并创建第二快速连接;第二快速连接是与后端服务器之间的快速连接;第一数据请求迁移模块,用于依据第二快速连接将数据请求迁移至后端服务器,以指示后端服务器创建与客户端之间的伪连接,基于伪连接向客户端发送数据请求对应的数据包。
第四方面,本申请还提供了一种数据请求的处理装置。所述装置包括:
第二数据请求迁移模块,用于基于第二快速连接接收前端服务器迁移的数据请求;数据请求,是客户端基于第一快速连接发送至前端服务器的请求;目标数据获取模块,用于响应于数据请求,创建与客户端之间的伪连接,以及获取数据请求对应的目标数据;数据包发送模块,用于通过伪连接向客户端发送封装了目标数据的数据包。
第五方面,本申请还提供了一种计算机设备。所述计算机设备包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
通过第一快速连接接收客户端发送的数据请求;基于数据请求确定所要调度的后端服务器,并创建第二快速连接;第二快速连接是与后端服务器之间的快速连接;依据第二快速连接将数据请求迁移至后端服务器,以指示后端服务器创建与客户端之间的伪连接,基于伪连接向客户端发送数据请求对应的数据包;或者,
基于第二快速连接接收前端服务器迁移的数据请求;数据请求,是客户端基于第一快速连接发送至前端服务器的请求;响应于数据请求,创建与客户端之间的伪连接,以及获取数据请求对应的目标数据;通过伪连接向客户端发送封装了目标数据的数据包。
第六方面,本申请还提供了一种计算机可读存储介质。所述计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
通过第一快速连接接收客户端发送的数据请求;基于数据请求确定所要调度的后端服务器,并创建第二快速连接;第二快速连接是与后端服务器之间的快速连接;依据第二快速连接将数据请求迁移至后端服务器,以指示后端服务器创建与客户端之间的伪连接,基于伪连接向客户端发送数据请求对应的数据包;或者,
基于第二快速连接接收前端服务器迁移的数据请求;数据请求,是客户端基于第一快速连接发送至前端服务器的请求;响应于数据请求,创建与客户端之间的伪连接,以及获取数据请求对应的目标数据;通过伪连接向客户端发送封装了目标数据的数据包。
第七方面,本申请还提供了一种计算机程序产品。所述计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
通过第一快速连接接收客户端发送的数据请求;基于数据请求确定所要调度的后端服务器,并创建第二快速连接;第二快速连接是与后端服务器之间的快速连接;依据第二快速连接将数据请求迁移至后端服务器,以指示后端服务器创建与客户端之间的伪连接,基于伪连接向客户端发送数据请求对应的数据包;或者,
基于第二快速连接接收前端服务器迁移的数据请求;数据请求,是客户端基于第一快速连接发送至前端服务器的请求;响应于数据请求,创建与客户端之间的伪连接,以及获取数据请求对应的目标数据;通过伪连接向客户端发送封装了目标数据的数据包。
上述数据请求的处理方法、装置、计算机设备、存储介质和计算机程序产品,前端服务器通过与客户端之间的第一快速连接,接收客户端发送的数据请求,根据数据请求确定所要调度的后端服务器,前端服务器通过与后端服务器之间的第二快速连接,将数据请求迁移至后端服务器,以使得后端服务器创建与客户端之间的伪连接,后端服务器依据伪连接直接向客户端发送数据请求对应的数据包。前端服务器进行请求级别的调度,确定所要调度的后端服务器具备响应数据请求的数据,使得后端服务器可以直接响应数据请求,不需要回源获取响应数据请求的数据,降低了延迟,以及服务器之间的通信开销;后端服务器通过伪连接直接向客户端发送数据包,而不是后端服务器将数据包发送至前端服务器,再由前端服务器向客户端发送数据包,降低了后端服务器与前端服务器之间的带宽消耗,降低了前端服务器下行流量的压力,提升了前端服务器的上行吞吐量,降低了延迟,提升了传输性能。
附图说明
图1为一个实施例中数据请求的处理方法的应用环境图;
图2为一个实施例中数据请求的处理方法的流程示意图;
图3为一个实施例中延迟确认对应的环路时长的示意图;
图4为一个实施例中前端服务器延迟响应第一确认帧的示意图;
图5为一个场景实施例中,数据请求的处理方法的示意图;
图6为另一个实施例中数据请求的处理方法的流程示意图;
图7为又一个实施例中数据请求的处理方法的流程示意图;
图8为又一个实施例中数据请求的处理方法的流程示意图;
图9为一个实施例中后端服务器发送第二数据包和第三数据包的流程示意图;
图10为一个实施例中后端服务器发送重发数据包的示意图;
图11为另一个场景实施例中,数据请求的处理方法的示意图;
图12为又一个实施例中数据请求的处理方法的流程示意图;
图13为一个实施例中数据请求的处理装置的结构框图;
图14为另一个实施例中数据请求的处理装置的结构框图;
图15为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。
在一些实施例中,本申请实施例提供的数据请求的处理方法,可以应用于如图1所示的应用环境中。其中,客户端102、前端服务器104以及后端服务器106,通过网络进行通信。前端服务器104的数据存储系统,可以存储前端服务器104需要处理的数据,前端服务器104的数据存储系统可以集成在前端服务器104上,也可以放在云上或其他网络服务器上。后端服务器的106的数据存储系统,可以存储后端服务器106需要处理的数据,后端服务器106的数据存储系统可以集成在后端服务器106上,也可以放在云上或其他网络服务器上。
前端服务器104通过与客户端102之间的第一快速连接,接收客户端102发送的数据请求,前端服务器104基于数据请求确定所要调度的后端服务器106,并创建与后端服务器106之间的第二快速连接,依据第二快速连接,将数据请求迁移至后端服务器106,后端服务器106响应数据请求,创建与客户端102之间的伪连接,获取数据请求对应的目标数据,通过伪连接向客户端102发送封装了目标数据的数据包。
其中,客户端102可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、物联网设备和便携式可穿戴设备,物联网设备可为智能音箱、智能电视、智能空调和智能车载设备等。便携式可穿戴设备可为智能手表、智能手环、头戴设备等。
前端服务器104和后端服务器106可以是独立的物理服务器,也可以是区块链系统中的服务节点,该区块链系统中的各服务节点之间形成组成点对点(P2P,Peer To Peer)网络,P2P协议是一个运行在传输控制协议(TCP,Transmission Control Protocol)协议之上的应用层协议。
此外,前端服务器104和后端服务器106还可以是多个物理服务器构成的服务器集群,可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
客户端102与前端服务器104和后端服务器106之间可以通过蓝牙、USB(UniversalSerial Bus,通用串行总线)或者网络等通讯连接方式进行连接,本申请在此不做限制。
在一些实施例中,如图2所示,提供了一种数据请求的处理方法,该方法由图1中的客户端、或前端服务器、或后端服务器执行,也可以由图1中的客户端、前端服务器和后端服务器协同执行,以该方法由图1中的前端服务器执行为例进行说明,包括以下步骤:
步骤202,通过第一快速连接接收客户端发送的数据请求。
其中,快速连接即QUIC(Quick UDP Internet Connection)连接,是基于QUIC协议创建的连接,QUIC是基于UDP(User Datagram Protocol,用户数据报协议)的低时延的互联网传输层协议;第一快速连接,是前端服务器与客户端之间的快速连接,用于实现前端服务器和客户端之间的数据传输。
其中,数据请求可以是用于获取数据的请求,可以理解的是,在不同的应用场景,客户端需要获取的数据不同,比如在网页加载场景中,数据请求用于获取加载网页的数据;在视频播放场景中,数据请求用于获取播放的视频数据。数据请求的数量可以是多个,即前端服务器通过第一快速连接接收客户端并发的多个数据请求。
在一些实施例中,在客户端与前端服务器首次快速连接的情况下,客户端向前端服务器发起连接消息,前端服务器响应该连接消息,向客户端发送密钥配置信息,通过此次往返创建客户端与前端服务器之间的快速连接,客户端通过与前端服务器之间的快速连接,向前端服务器发送数据请求和密钥,前端服务器通过与客户端之间的快速连接,接收客户端发送的数据请求和密钥。
前端服务器可以基于密钥和密钥配置信息确定会话密钥,以便于后续基于会话密钥进行客户端和前端服务器之间的通信。需要说明的是,在客户端与前端服务器首次快速连接的情况下,通过一次数据往返,客户端便可向前端服务器发送数据请求,即发送数据请求的时间成本是1RTT(Round-Trip Time,往返时延)。
在客户端与前端服务器非首次快速连接的情况下,客户端保存有首次快速连接时获取的密钥配置信息,在非首次快速连接时,可以直接向前端服务器发送数据请求和密钥配置信息,也就是说,在非首次快速连接时,客户端可以直接向前端服务器发送数据请求,即发送数据请求的时间成本是0RTT。
在相关技术中,大部分连接需要至少2RTT才能建立连接,导致延迟较高,而通过QUIC连接,在非首次快速连接时,可以实现0RTT建立QUIC连接,降低了延迟,并且减少前端服务器和客户端在握手阶段的流量消耗。
步骤204,基于数据请求确定所要调度的后端服务器,并创建第二快速连接;第二快速连接是与后端服务器之间的快速连接。
其中,后端服务器是为客户端提供服务的服务器,后端服务器存储有响应数据请求的数据。
其中,第二快速连接是前端服务器和后端服务器之间的QUIC连接,用于实现前端服务器与后端服务器之间的数据传输。
在一些实施例中,前端服务器将接收的数据请求转发至调度中心,调度中心依据数据请求确定响应该数据请求的后端服务器的地址,前端服务器获取调度中心发送的后端服务器的地址,以确定所要调度的后端服务器。前端服务器创建与后端服务器的地址对应的后端服务器之间的第二快速连接。
在创建前端服务器与后端服务器之间的第二快速连接之后,可以将第二快速连接与数据请求对应的流标识相关联,以便于后续根据数据请求对应的流标识确定该第二快速连接,并通过第二快速连接,在前端服务器和后端服务器之间进行数据请求相关的数据传输。
在一些实施例中,前端服务器可以采用QUIC协议将数据请求转发至调度中心,也可以采用HTTP/2协议和HTTP/3协议将数据请求转发至调度中心,HTTP/2协议是超文本传输协议第二版,HTTP/3协议是超文本传输协议第三版。调度中心可以与前端服务器处于同一物理设备中,也可以不处于同一物理设备中。
在一些实施例中,在客户端向前端服务器并发多个数据请求的情况下,前端服务器将多个数据请求转发至调度中心,以获取到多个数据请求各自对应的后端服务器,各数据请求对应的后端服务器具备响应其对应的数据请求的数据;前端服务器分别创建与多个数据请求各自对应的后端服务器之间的第二快速连接,以实现请求级别的调度;需要说明的是,当多个数据请求中存在至少两个数据请求对应同一后端服务器时,该至少两个数据请求对应同一第二快速连接。
本申请实施例通过调度中心,确定实际响应数据请求的后端服务器的地址,以进行请求级别的调度,而不是通过负载均衡确定服务器地址,基于数据请求确定的后端服务器具备响应数据请求的数据,不需要回源获取响应数据请求的数据,降低了延迟,以及服务器之间的通信开销;在不改变客户端已有逻辑的情况下,可以进行请求级别的精细调度,提升了容灾能力。
步骤206,依据第二快速连接将数据请求迁移至后端服务器,以指示后端服务器创建与客户端之间的伪连接,基于伪连接向客户端发送数据请求对应的数据包。
其中,伪连接可以是后端服务器与客户端之间的快速连接,后端服务器作为前端服务器的伪服务器,通过伪连接与客户端进行数据传输。数据包是对响应数据请求的目标数据封装得到的,数据包的数量为多个,后端服务器向客户端发送多个数据包。
在一些实施例中,前端服务器采用HTTP/3协议,通过第一快速连接将携带了初始信令的数据请求发送至后端服务器,以实现数据请求的迁移,后端服务器根据数据请求和初始信令进行上下文恢复,创建与客户端之间的伪连接,以实现将后端服务器伪装成与客户端直接通信的前端服务器,后端服务器基于获取响应数据请求的目标数据,并依据伪连接向客户端发送目标数据对应的数据包。后端服务器直接向客户端发送响应数据请求的目标数据所对应的数据包,即实现了DSR(Direct Server Return,直接服务器返回)方式发送数据包,而不是后端服务器将数据包发送至前端服务器,再由前端服务器向客户端发送数据包,降低了后端服务器与前端服务器之间的带宽消耗,降低了前端服务器下行流量的压力,提升了前端服务器的上行吞吐量,还降低了延迟,提升了传输性能。
其中,初始信令包括用于创建伪连接的初始信息;初始信令包括但不限于:连接标识、流标识和四元组;连接标识是第一快速连接的标识,流标识是数据请求对应的数据流的标识,四元组包括:客户端的网际协议地址(IP地址,Internet Protocol Address)和端口(PORT),以及前端服务器的IP地址和PORT。若将数据请求和初始信令分开发送,在出现队头阻塞时,后端服务器接收到数据请求之后,还需要继续等待初始信令,导致延迟较高。将携带有初始信令的数据请求转发至后端服务器,使得后端服务器可以同时接收数据请求和初始信令,降低了延迟。
在实际应用中,前端服务器扩展HTTP/3头域,将携带有初始信令的数据请求转发至后端服务器;HTTP/3的头域可以被扩展为多行,通过扩展的头域将初始信令和数据请求一同发送至后端服务器。
需要说明的是,也可以采用其他协议,通过第一快速连接将携带了初始信令的数据请求发送至后端服务器,以实现数据请求的迁移,比如可以采用HTTP/2协议。
在一些实施例中,在客户端并发多个数据请求的情况下,多个数据请求各自对应的后端服务器通过相应第二快速连接,接收前端服务器迁移的数据请求,创建与客户端之间的伪连接,通过伪连接向客户端发送数据请求对应的数据包;通过多个数据请求各自对应的后端服务器直接向客户端发送对应的数据包,分散下行流量至不同的路径,降低了单一路径的拥塞度,提升了传输效率。
在一些实施例中,前端服务器配置有边缘数据中心(OC,Outer Center),后端服务器配置有边缘雾计算节点(FOG),相较于OC来说,FOG距离客户端更近,因此通过后端服务器直接向客户端发送数据包,可以降低延迟,提升传输效率。
在上述实施例中,前端服务器通过与客户端之间的第一快速连接,接收客户端发送的数据请求,根据数据请求确定所要调度的后端服务器,前端服务器通过与后端服务器之间的第二快速连接,将数据请求迁移至后端服务器,以使得后端服务器创建与客户端之间的伪连接,后端服务器依据伪连接直接向客户端发送数据请求对应的数据包。前端服务器进行请求级别的调度,确定所要调度的后端服务器具备响应数据请求的数据,使得后端服务器可以直接响应数据请求,不需要回源获取响应数据请求的数据,降低了延迟,以及服务器之间的通信开销;后端服务器通过伪连接直接向客户端发送数据包,而不是后端服务器将数据包发送至前端服务器,再由前端服务器向客户端发送数据包,降低了后端服务器与前端服务器之间的带宽消耗,降低了前端服务器下行流量的压力,提升了前端了服务器的上行吞吐量,降低了延迟,提升了传输性能。
在一些实施例中,数据请求的处理方法还包括:在数据请求迁移完成的情况下,依据第二快速连接的第一单向流接收后端服务器发送的迁移完成指令;第一单向流是后端服务器发起的;基于迁移完成指令更新数据请求的迁移状态。
其中,单向流指的是单向传输的数据流,在本申请是实施例中,单向流指的是QUIC协议标准化版本规范RFC9000中的单向流;第一单向流是后端服务器向前端服务器发送数据的流。
在一些实施例中,在数据请求迁移至后端服务器的情况下,后端服务器创建第二快速连接的第一单向流,依据第二快速连接的第一单向流向前端服务器发送迁移完成指令,迁移完成指令包括数据请求对应的流标识,前端服务器依据第一单向流接收迁移完成指令,根据迁移完成指令包括的流标识将对应的数据请求的迁移状态更新为已迁移状态。
在实际应用中,后端服务器将迁移完成指令对应的流数据,作为有序字节流,封装为第一单向流的流帧,通过第一单向流发送流帧,前端服务器通过流帧,依序缓存迁移完成指令对应的流数据,以实现基于第一单向流接收迁移完成指令。
在一些实施例中,在前端服务器接收数据请求对应的迁移完成指令之前,数据请求的前一状态为未迁移状态;在距离后端服务器向前端服务器发送数据请求的时长达到预设超时时长,且未接收到迁移完成指令的情况下,前端服务器可以再次向后端服务器发送数据请求,或者由前端服务器向客户端提供响应数据请求的服务。
在上述实施例中,前端服务器依据第一单向流接收后端服务器发送的迁移完成指令,后端服务器可以主动向前端服务器传输数据,不用等待前端服务器建流,提高了迁移状态更新的实时性,并且相对于双向流来说,单向流所需的流控资源较少,减少了数据传输所消耗的资源。
在一些实施例中,数据包包括第一数据包和第二数据包;数据请求的处理方法还包括:依据第一快速连接接收客户端发送的第一确认帧;第一确认帧是客户端确认在收到第一数据包时发送的确认帧,第一数据包的包号属于第一包号区间;依据第二快速连接向后端服务器发送第一确认帧和第二包号区间,以指示后端服务器在基于第一确认帧确定未丢包的情况下,基于伪连接向客户端发送第二数据包;第二数据包的包号属于第二包号区间。
其中,第一数据包的数量可以为多个,第一数据包可以是对数据请求对应的目标数据的第一部分数据进行封装得到的;第二数据包的数量可以为多个,第二数据包可以是对目标数据的第二部分数据进行封装得到的。第一包号区间包括封装得到第一数据包所使用的包号,第二包号区间包括封装得到第二数据包所使用的包号;需要说明的是,第一包号区间和第二包号区间均为前端发送至后端服务器。
在一些实施例中,当第一数据包是后端服务器第一次向客户端发送的数据包时,第一包号区间可以是初始信令中包括的包号区间,也就是说,在将数据请求迁移至后端服务器时,将包括第一包号区间的初始信令同时发送至后端服务器,以使得后端服务器可以采用第一包号区间中的包号进行发包。
需要说明的是,该第一包号区间和数据请求对应的流标识相关联,在实际应用中,前端服务器向数据请求对应的后端服务器分配的各包号区间,均与数据请求对应的流标识相关联。
在一些实施例中,后端服务器基于第一包号区间中的包号对目标数据的第一部分数据进行封装,得到第一数据包,通过伪连接向客户端发送第一数据包,客户端接收到第一数据包后,基于第一数据包获取连接标识,通过连接标识对应的第一快速连接,向前端服务器发送第一确认帧,第一确认帧包括客户端接收到的第一数据包的包号;客户端通过第一确认帧告知前端服务器已收到第一数据包。
前端服务器通过第一快速连接接收客户端发送的第一确认帧,基于第一确认帧包括的包号确定流标识,依据流标识确定对应的第二快速连接,通过第二快速连接向后端服务器发送第一确认帧和第二包号区间,后端服务器通过第二快速连接接收前端服务器发送的第一确认帧和第二包号区间,后端服务器基于第一确认帧进行丢包检测,在确定未丢包的情况下,通过第二包号区间中的包号对目标数据的第二部分数据进行封装,得到第二数据包,通过伪连接向客户端发送第二数据包。
在一些实施例中,第一数据包的数量可以为多个,后端服务器基于发送的多个第一数据包的包号,以及第一确认帧中包括的客户端接收到的多个第一数据包的包号进行丢包检测,在确定发送的多个第一数据包均被客户端接收到的情况下,通过伪连接向客户端发送第二数据包。
在上述实施例中,前端服务器将接收的第一确认帧转发至后端服务器,使得后端服务器可以根据第一确认帧确定是否发生丢包,在未丢包的情况下,继续向客户端发送第二数据包,前端服务器在转发第一确认帧的同时,为后端服务器分配第二包号区间,使得后端服务器有充足的包号可用,避免后端服务器的包号耗尽。
在一些实施例中,数据包还包括第三数据包,依据第一快速连接接收客户端发送的第一确认帧之后,还包括:依据第一快速连接接收客户端发送的第二确认帧;第二确认帧是客户端确认收到第三数据包时发送的确认帧;第三数据包的包号属于第一包号区间,且第三数据包的包号大于第一数据包的包号;依据第二快速连接向后端服务器发送第一确认帧和第二包号区间之后,还包括:依据第一快速连接接收客户端发送的第三确认帧;第三确认帧是客户端确认收到第二数据包时发送的确认帧;第二包号区间的包号大于第一包号区间的包号;依据第一快速连接向客户端反馈第四确认帧,以指示客户端确定第一确认帧已被确认。
其中,数据请求的数量为多个;第二确认帧包括客户端收到的第三数据包的包号,第三确认帧包括客户端收到的各第二数据包的包号。客户端通过数据包的形式发送确认帧,第四确认帧包括第一确认帧对应的包号。
在一些实施例中,客户端通过第一确认帧告知前端服务器已收到第一数据包,通过第二确认帧告知前端服务器已收到第三数据包,通过第三确认帧告知前端服务器已收到第二数据包。
在前端服务器根据第三确认帧确定后端服务器已经采用第二包号区间进行发包的情况下,依据第一快速连接向客户端反馈第四确认帧,第四确认帧用于向客户端反馈,第一确认帧已被前端服务器确认。
需要说明的是,前端服务器并未立刻响应客户端发送的第一确认帧,而是在基于第三确认帧确定后端服务器已经采用第二包号区间发包后,再响应第一确认帧,此过程可以称为延迟确认。
如图3所示,客户端向前端服务器发送第一确认帧(图3中1所示),前端服务器向后端服务器转发第一确认帧,以及分配第二包号区间(图3中2所示),后端服务器采用第二包号区间的包号向客户端发送第二数据包(图3中3所示),客户端获取到第二数据包,向前端服务器发送第三确认帧(图3中4所示),此过程在图3中形成环路,延迟确认的时长为客户端向前端服务器发送第一确认帧,至客户端向前端服务器发送第三确认帧之间的环路时长。
在一些实施例中,客户端通过第一快速连接接收到前端服务器发送的第四确认帧之后,将接收记录中,包号小于或等于接收的第一数据包中最大包号的接收记录删除,若后续接收到包号小于或等于该最大包号的数据包,则将该数据包丢弃。
示例性地,前端服务器在进行数据请求迁移时,将数据请求和第一包号区间(100,120],通过第二快速连接发送到后端服务器,后端服务器采用第一包号区间中的包号(100,110],封装目标数据的第一部分数据得到第一数据包,客户端获取到第一数据包,通过第一快速连接向前端服务器发送第一确认帧;客户端接收到针对第一确认帧反馈的第四确认帧后,清除包号小于或等于第一数据包的最大包号(110)的记录,并且,若客户端后续收到包号小于或等于110的数据包,则将该包号小于或等于110的数据包丢弃。
在一些实施例中,数据请求的数量为多个,前端服务器向多个数据请求各自对应的后端服务器分别发送第一包号区间,各后端服务器采用各自对应的第一包号区间的包号,向客户端发送第一数据包,客户端接收各后端服务器发送的第一数据包,向前端服务器发送第一确认帧;各后端服务器采用各自对应的第一包号区间的包号,向客户端发送第三数据包,客户端接收各后端服务器发送的第三数据包,向前端服务器发送第二确认帧;前端服务器向各后端服务器转发该第一确认帧,以及各自对应的第二包号区间,后端服务器采用各自对应的第二包号区间,向客户端发送第三数据包,客户端接收各后端服务器发送的第三数据包,向前端服务器发送第三确认帧,前端服务器基于第三确认帧确定后端服务器已采用第二包号区间发包,向客户端反馈第四确认帧。
如图4所示,以客户端并发两个数据请求为例进行说明,通过后端服务器BE1(BackEnd 1)响应数据请求1,通过后端服务器BE2响应数据请求2,后端服务器BE1的第一包号区间为(100,120],后端服务器BE2的第一包号区间为(120,140];
在t1时刻,后端服务器BE1采用第一包号区间(100,120]中属于(100,110]的包号封装得到第一数据包P1,向客户端发送包号属于(100,110]的第一数据包;在t2时刻,后端服务器BE2采用第一包号区间(120,140]中属于(120,130]的包号封装得到的第一数据包,向客户端发送包号属于(120,130]的第一数据包P2;
客户端获取到P1和P2,在t3时刻,客户端向前端服务器FE(Front End)发送第一确认帧,第一确认帧包括的包号范围为:(100,110]和(120,130];
在t4时刻,前端服务器FE接收到第一确认帧,将第一确认帧发送至后端服务器BE1和后端服务器BE2,并向后端服务器BE1发送第二包号区间(140,160],并向后端服务器BE2发送第二包号区间(160,180](如图4中虚线所示);
在t5时刻,后端服务器BE1采用第一包号区间(100,120]中属于(110,120]的包号封装得到第三数据包,向客户端发送包号属于(110,120]的第三数据包P3;
在t6时刻,客户端接收到第三数据包P3,向前端服务器FE发送第二确认帧;后端服务器BE1接收到第一确认帧和第二包号区间(140,160],后端服务器BE2接收到第一确认帧和第二包号区间(160,180];
在t7时刻,后端服务器BE1采用第二包号区间(140,160]中属于(140,150]的包号封装得到的第二数据包P4,在t8时刻,后端服务器BE2采用第二包号区间(160,180]中属于(160,170]的包号封装得到的第二数据包P5;
客户端获取到P4和P5,在t9时刻,客户端向前端服务器FE发送第三确认帧,第三确认帧包括的包号范围为:P1、P2、P3、P4和P5的包号并集;
在t10时刻,前端服务器FE接收到第三确认帧,根据第三确认帧确定后端服务器BE1和后端服务器BE2已采用第二包号区间发包,向客户端发送第四确认帧;
在t11时刻,客户端接收到针对第一确认帧的第四确认帧之后,确定第一确认帧已经被前端服务器FE确认,将接收记录中,包号小于或等于接收的第一数据包中最大包号(本示例中的最大包号为130)的接收记录删除,若后续接收到包号小于或等于130的数据包的情况下,将该数据包丢弃;
在后端服务器接收到第二包号区间之前,后端服务器还可以采用第一包号区间的包号进行发包,比如,在t5时刻,后端服务器BE1发送的P3对应的包号均小于130,而在客户端接收到P3时,客户端还未接收到第四确认帧,因此P3不会被客户端丢弃,降低了数据传输过程的丢包率,进而降低了重传数据包所消耗的带宽资源,提升了传输性能。
在相关技术中,前端服务器在接受到客户端发送的确认帧之后,立即响应该确认帧,比如在上述示例中,客户端在t3时刻向前端服务器发送第一确认帧,前端服务器立即响应该确认帧,客户端在t5时刻接收到前端服务器针对该第一确认帧反馈的确认帧,第一确认帧对应的被确认的最大包号为130,客户端后续会丢弃包号小于或等于130的数据包,比如在t6时刻,客户端接收到的包号属于(110,120]的数据包P3会被丢弃。
在上述实施例中,前端服务器在接收到客户端基于接收的第一数据包发送的第一确认帧时,不立刻响应该第一确认帧,后端服务器的发包动作是持续进行的,因此在各后端服务器发送第一数据包之后,还会采用第一包号区间发送第三数据包,在前端服务器基于第三确认帧,确定各后端服务器已经采用第二包号区间发包的情况下,前端服务器再向客户端发送针对第一确认帧的第四确认帧,使得在后端服务器采用第一包号区间中的包号发送的第三数据包,不会被客户端丢弃,降低了数据传输过程的丢包率,进而降低了重传数据包所消耗的带宽资源,提升了传输性能。
在一些实施例中,数据请求的处理方法还包括:发起第二快速连接的第二单向流;依据第二快速连接向后端服务器发送第一确认帧和第二包号区间,包括:在基于第一确认帧和第一包号区间确定达到包号分配条件的情况下,依据第二单向流向后端服务器发送第一确认帧和第二包号区间。
其中,第二单向流是前端服务器向后端服务器发送数据的流。
在一些实施例中,第一确认帧包括第一数据包的包号,包号分配条件可以是第一确认帧包括的最大包号与第一包号区间包括的最大包号之间的差值小于或等于预设差值。
前端服务器依据第一快速连接接收客户端发送的第一确认帧,将第一确认帧包括的包号与向后端服务器分配的第一包号区间包括的包号进行比较,在第一确认帧包括的最大包号与第一包号区间包括的最大包号之间的差值小于或等于预设差值的情况下,前端服务器依据第二单向流向后端服务器发送第一确认帧和第二包号区间。
需要说明的是,后端服务器的发包动作是持续进行的,在后端服务器发送第一数据包,至前端服务器获取到第一确认帧之间,后端服务器采用第一包号区间中的包号发包,因此,在前端服务器确定第一确认帧包括的最大包号与第一包号区间包括的最大包号之间的差值小于或等于预设差值时,表示第一包号区间的可用包号不多,可以为后端服务器分配第二包号区间。
在一些实施例中,包号分配条件可以是第一确认帧包括的包号属于第一包号区间。在前端服务器确定第一确认帧包括的包号的属于第一包号区间的情况下,表示后端服务器已经采用第一包号区间发包,为了保证后端服务器有充足的包号可用,前端服务器可以为后端服务器分配第二包号区间。
在一些实施例中,在客户端并发多个数据请求的情况下,客户端接收到各后端服务器各自发送的各第一数据包,通过第一快速连接向前端服务器发送第一确认帧,该第一确认帧包括各后端服务器发送的各第一数据包的包号,当前端服务器确定该第一确认帧包括各后端服务器各自对应的第一包号区间的包号时,即当前端服务器确定各后端服务器已经采用第一包号区间发包时,向各后端服务器发送该第一确认帧以及各自对应的第二包号区间。
需要说明的是,前端服务器分配的包号不能重复使用,进而各后端服务器各自对应的第一包号区间不同;各后端服务器各自对应的第二包号区间不同,前端服务器分配的包号是递增的,因此各第二包号区间的包号均大于各第一包号区间的包号。
在上述实施例中,在前端服务器接收到第一确认帧,并根据第一确认帧和第一包号区间确定达到包号分配条件的情况下,主动为后端服务器分配新的第二包号区间,以保证后端服务器有充足的可用包号。
在一些实施例中,数据包还包括第四数据包;数据请求的处理方法还包括:依据第二快速连接的第一单向流接收后端服务器发送的包号获取请求;响应于包号获取请求,向后端服务器发送第三包号区间,以指示后端服务器基于第三包号区间发送第四数据包;第三包号区间包括的包号大于第一包号区间包括的包号。
其中,包号获取请求包括数据请求对应的流标识,以指示前端服务器基于该流标识确定上一次为后端服务器分配的包号区间。
在一些实施例中,后端服务器可以根据包号资源的消耗情况,主动向前端服务器获取新的包号区间,示例性地,后端服务器获取包号的消耗速度以及可用包号数量,在根据包号的消耗速度和可用包号数量确定可用包号不足的情况下,依据第二快速连接的第一单向流向前端服务器发送包号获取请求。
前端服务器依据该第一单向流接收包号获取请求,响应该包号获取请求,依据第二快速连接的第二单向流向后端服务器发送第三包号区间,后端服务器依据该第二单向流接收第三包号区间,采用第三包号区间包括的包号对目标数据中的部分数据进行封装,得到第四数据包。
由于前端服务器分配的包号单调递增,第一包号区间是初始信令包括的包号区间,因此前端服务器后续分配的包号区间包括的包号均大于第一包号区间包括的包号。
在一些实施例中,前端服务器向后端服务器发送的包号区间包括的包号数量,可以是预设包号数量,比如,第一包号区间、第二包号区间和第三包号区间包括的包号数量均可以是预设包号数量,预设包号数量可以根据实际需求设定,本申请实施例对此不进行限定。
在一些实施例中,前端服务器向后端服务器发送的包号区间包括的包号数量,也可以根据后端服务器消耗包号的实际情况确定。
在前端服务器向后端服务器发送第一包号区间之后,获取到包号获取请求,基于第一包号区间包括的包号数量和预设倍数,确定第三包号区间包括的包号数量,依据第三包号区间包括的包号数量向后端服务器发送第三包号区间。预设倍数可以根据实际需求设定,本申请实施例对此不进行限定。
在前端服务器基于第一确认帧和第一包号区间确定达到包号分配条件,并且在分配第一包号区间之后,接收到包号获取请求的情况下,基于第一包号区间包括的包号数量和预设倍数,确定第二包号区间包括的包号数量,依据第二包号区间包括的包号数量向后端服务器发送第二包号区间。
也就是说,在前端服务器向后端服务器分配第一包号区间之后,前端服务器接收到包号获取请求,表示前端服务器分配的第一包号区间包括的包号数量较小,进而前端服务器按照第一包号区间包括的包号数量和预设倍数分配第二包号区间或第三包号区间,可以减少后端服务器发送包号获取请求的次数,以及保证后端服务器有充足的可用包号。
示例性地,预设包号数量为50,预设包号倍数为2;前端服务器在t20时刻,按照预设包号数量向后端服务器分配第一包号区间,第一包号区间包括的包号数量为50;前端服务器在t21时刻获取到后端服务器发送的包号获取请求,按照预设包号数量和预设包号倍数向后端服务器分配第三包号区间,第三包号区间包括的包号数量为100;前端服务器在t22时刻获取到第一确认帧,按照预设包号数量和预设包号倍数向后端服务器分配第二包号区间,第二包号区间包括的包号数量为100。
在上述实施例中,后端服务器在确定可用包号不足的情况下,可以向前端服务器发送包号获取请求,以主动向前端服务器获取新的包号,避免了被动等待前端服务器分配包号,导致自身没有可用包号,进而影响发包的情况。
在一些实施例中,数据请求携带初始信令,初始信令包括客户端信息和流控资源;依据第二快速连接将数据请求迁移至后端服务器,以指示后端服务器创建与客户端之间的伪连接,基于伪连接向客户端发送数据请求对应的数据包,包括:依据第二快速连接向后端服务器发送数据请求,以指示后端服务器,基于客户端信息创建与客户端之间的伪连接,以及在流控资源的限制下,通过伪连接向客户端发送数据请求对应的数据包。
其中,客户端信息包括客户端的网际协议地址(IP地址,Internet ProtocolAddress)和端口(PORT),客户端信息用于建立与客户端之间的伪连接;流控资源包括流级别的流控资源和连接级别的流控资源。
在一些实施例中,在建立第一快速连接的过程中,客户端通过传输参数设置流级别的流控资源和连接级别的总流控资源;连接级别的总流控资源可以反映第一快速连接可以发送的数据量,连接级别的总流控资源会限制单条流可用的连接级别的流控资源,比如所有流可以发送的数据量的总和等于第一快速连接可以发送的数据量。
前端服务器依据流级别的流控资源和连接级别的总流控资源,为后端服务器分配连接级别的流控资源;前端服务器将携带有初始信令的数据请求发送至后端服务器,后端服务器依据初始信令包括的客户端信息创建与相应客户端之间的伪连接,在初始信令包括的流级别的流控资源和连接级别的流控资源的限制下,通过伪连接向客户端发送数据请求对应的数据包。
在一些实施例中,连接级别的总流控资源可以反映客户端中第一快速连接对应的缓冲区的容量,后端服务器在连接级别的流控资源和流级别的流控资源的限制下发送数据请求对应的数据包,避免后端服务器消耗该缓冲区的全部容量;连接级别的流控资源和流级别的流控资源限制后端服务器发送的数据量,当后端服务器需要发送的数据包超过连接级别的流控资源时,可以申请增加连接级别的流控资源限制。
在一些实施例中,流控资源包括流窗口值和连接窗口值,在实际应用中,初始信令对应的连接窗口值可以为第一预设连接窗口值,预设连接窗口值可以根据实际需求设定,示例性地,第一预设连接窗口值可以为1MB。
在一些实施例中,在当前已分配的流窗口值远小于当前可用连接窗口值时(比如已分配的流窗口值小于当前可用连接窗口值的1/10),可以设定初始信令对应的连接窗口值为流窗口值的3/4,使得后端服务器在消耗部分流窗口值时可以更新该流窗口值;在当前已分配的流窗口值接近当前可用连接窗口值时(比如当前已分配的流窗口值大于当前可用连接窗口值的9/10),可以设定初始信令对应的连接窗口值为第二预设连接窗口值和当前可用连接窗口值中的最小值,第二预设连接窗口值可以根据实际需求设定,示例性地,第二预设连接窗口值可以为256KB。
在一些实施例中,在客户端并发多个数据请求的情况下,前端服务器为多个数据请求各自对应的后端服务器分配连接级别的流控资源,使得各后端服务器均能及时获取到所需的连接级别的流控资源;分配至每个后端服务器的连接级别的流控资源,小于前端服务器的连接级别的流控资源,并且各后端服务器的连接级别的流控资源的总和,小于前端服务器的连接级别的流控资源的总和,以便于在后续创建的新的流的情况下,可以为创建的新的流分配连接级别的流控资源;在后端服务器结束数据请求的响应后,若存在未使用的连接级别的流控资源,可以将未使用的连接级别的流控资源归还至前端服务器,以便于前端服务器分配至其他后端服务器。
在上述实施例中,前端服务器将携带有初始信令的数据请求迁移至后端服务器,以使得后端服务器基于初始信令包括的客户端信息创建与客户端之间的伪连接,在流控资源的限制下发送数据请求对应的数据包,避免在客户端中第一快速连接对应的缓冲区已经满了的情况下,后端服务器继续发送数据包,导致数据丢失,降低数据重传率,提升传输性能。
在一些实施例中,流控资源包括流窗口值和连接窗口值;数据请求的处理方法,还包括:依据第一快速连接接收客户端发送目标流偏移量;基于目标流偏移量更新流窗口值,得到更新后流窗口值;依据第二快速连接的第二单向流,向后端服务器发送更新后流窗口值;在流控资源的限制下,通过伪连接向客户端发送数据请求对应的数据包,包括:在更新后流窗口值和连接窗口值的限制下,通过伪连接向客户端发送数据请求对应的数据包。
其中,连接窗口值用于指示第一快速连接对应的被允许传输的字节数,流窗口值和连接窗口值用于指示后端服务器响应所述数据请求时被允许传输的字节数。
在一些实施例中,客户端通过第一快速连接向前端服务器发送最大流偏移(MAX_STREAM_DATA)帧,在MAX_STREAM_DATA帧中的最大可发送数据偏移量存在更新的情况下,基于MAX_STREAM_DATA帧确定目标流偏移量,通过目标流偏移量更新流控资源包括的流窗口值,得到更新后流窗口值,依据第二快速连接的第二单向流,向后端服务器发送更新后流窗口值,后端服务器依据第二快速连接的第二单向流接收更新后流窗口值,并在更新后流窗口值和连接窗口值的限制下,通过伪连接向客户端发送数据请求对应的数据包。
在上述实施例中,客户端可以对流窗口值进行更新,使得后端服务器在更新后流窗口值和连接窗口值的限制下发包,在更新后流窗口值大于流控资源包括的流窗口值的情况下,避免在发送数据时没有可用流窗口值,减少了后端服务器等待分配可用流窗口值导致的延迟,保证数据请求对应目标数据的持续传输,提升了数据传输效率。
在一些实施例中,流控资源包括流窗口值和连接窗口值;数据请求的处理方法,还包括:依据第一快速连接接收客户端发送的目标连接偏移量;基于目标连接偏移量对连接窗口值进行更新,得到更新后连接窗口值;依据第二快速连接的第二单向流,向后端服务器发送更新后连接窗口值;在流控资源的限制下,通过伪连接向客户端发送数据请求对应的数据包,包括:在更新后连接窗口值和流窗口值的限制下,通过伪连接向客户端发送数据请求对应的数据包。
在一些实施例中,客户端通过第一快速连接向前端服务器发送最大连接偏移(MAX_DATA)帧,在MAX_DATA帧中的最大可发送数据偏移量存在更新的情况下,基于MAX_DATA帧确定目标连接偏移量,采用目标连接偏移量更新流控资源包括的连接窗口值,得到更新后连接窗口值,依据第二快速连接的第二单向流向后端服务器发送更新后连接窗口值和流窗口值,后端服务器在更新后连接窗口值和流窗口值的限制下发包。
在一些实施例中,前端服务器基于目标连接偏移量对连接窗口值进行更新,得到更新后连接窗口值,可以是,根据目标连接偏移量确定更新后总连接窗口值,根据更新后总连接窗口值和更新前总连接窗口值之间的变化量,以及当前维护的流对应连接窗口值的消耗速率,按照比例确定参考变化量,按照参考变化量对连接窗口值进行更新,得到更新后连接窗口值。
在一些实施例中,后端服务器依据第二快速连接的第二单向流接收到更新后流控资源后,依据第二快速连接的第一单向流向前端服务器发送资源信息,资源信息包括:更新后流控资源和消耗速度,以使得前端服务器基于资源信息确定后端服务器的流控资源的消耗情况,在前端服务器的流控资源不足时,前端可以通过第二快速连接的第二单向流向后端服务器发送流控资源归还指令,在后端服务器存在可用流控资源的情况下,后端服务器可以基于流控资源归还指令归还可用流控资源。
在上述实施例中,客户端可以对连接窗口值进行更新,使得后端服务器在流窗口值和更新后连接窗口值的限制下发包,在更新后连接窗口值大于流控资源包括的连接窗口值的情况下,保证数据请求对应目标数据的持续传输,提升了数据传输效率。
在一些实施例中,初始信令还包括初始连接标识;数据请求的处理方法还包括:依据第一快速连接接收客户端发送的更新连接标识帧;基于更新连接标识帧获取目标连接标识;依据第二快速连接的第二单向流,向后端服务器发送目标连接标识,以指示后端服务器通过伪连接向客户端发送携带有目标连接标识的数据包;依据第一快速连接向客户端发送停用连接标识帧;停用连接标识帧用于指示客户端将初始连接标识标记为停用状态,将目标连接标识标记为使用状态,并接收携带有目标连接标识的数据包。
其中,连接标识(Connection,CID)是第一快速连接的连接标识,本实施例中的连接标识指的是客户端生成的源连接标识(Source Connection,SCID);初始连接标识是初始信令中包括的连接标识。
后端服务器发送的数据包的短包头,包括连接标识,客户端依据接收的数据包的短包头获取连接标识,在该连接标识与客户端生成的连接标识不一致时,客户端会丢弃该数据包,因此在客户端更新连接标识时,后端服务器也需要及时更新连接标识,避免丢包。
在一些实施例中,客户端依据第一快速连接向前端服务器发送更新连接标识(NEW_CONNECTION_ID)帧,前端服务器根据NEW_CONNECTION_ID帧确定目标连接标识,依据第二快速连接的第二单向流,将目标连接标识发送到后端服务器,再依据第一快速连接向客户端发送停用连接标识(RETIRE_CONNECTION_ID)帧,客户端根据RETIRE_CONNECTION_ID帧,将初始连接标识标记为停用状态,将目标连接标识标记为使用状态,停用初始连接标识,若客户端后续接收到短包头包括初始连接标识的数据包,则会丢弃该数据包。
在一些实施例中,前端服务器依据第二快速连接的第二单向流,向后端服务器发送目标连接标识,后端服务器向客户端发送携带有目标连接标识的数据包之后,前端服务器依据第一快速连接向客户端发送停用连接标识帧;也就是说,前端服务器在确定后端服务器采用目标连接标识替换初始连接标识后,再向客户端发送停用连接标识帧。
在上述实施例中,前端服务器接收到更新连接标识帧后,先将基于更新连接标识帧确定的目标连接标识发送到后端服务器,再向客户端反馈停用连接标识帧,避免先向客户端反馈停用连接标识帧,而后端服务器还未接收到目标连接标识,仍采用初始连接标识发包,导致数据包被客户端丢弃的情况,降低了丢包率,提升了数据传输效率。
在一些实施例中,数据请求的处理方法还包括:依据第一快速连接接收客户端发送的更新会话密钥标识;基于更新会话密钥标识确定目标会话密钥;目标会话密钥是对初始信令包括的初始会话密钥进行更新所得的;依据第二快速连接的第二单向流,向后端服务器发送更新会话密钥标识,以指示后端服务器基于更新会话密钥标识确定目标会话密钥,并基于目标会话密钥加密数据请求对应的数据包。
其中,初始信令包括初始会话密钥,初始会话密钥是客户端与前端服务器建立第一快速连接时,客户端和前端服务器共同确定的会话密钥。
在一些实施例中,前端服务器依据第二快速连接,将包括初始会话密钥的初始信令发送至后端服务器,后端服务器接收初始信令,通过初始信令中的会话密钥对数据请求对应的数据包进行加密,通过伪连接向客户端发送加密后的数据包,客户端采用初始会话密钥对加密后的数据包进行解密,得到数据包。
为了保证数据传输的安全性,客户端可以对初始会话密钥进行更新;客户端确定目标会话密钥,依据第一快速连接向前端服务器发送更新会话密钥标识(key_phase),前端服务器依据第一快速连接获取key_phase,根据key_phase和初始会话密钥确定目标会话密钥,前端服务器采用目标会话密钥替换初始会话密钥,依据第二快速连接的第二单向流,向后端服务器发送key_phase,后端服务器依据第二快速连接的第二单向流接收key_phase,根据key_phase和初始会话密钥确定目标会话密钥,并通过目标会话密钥对数据请求对应的数据包进行加密,通过伪连接向客户端发送加密后的数据包,客户端采用目标会话密钥对加密后的数据包进行解密,得到数据包。
需要说明的是,将初始会话密钥更新为目标会话密钥之后,若在后续再获取到key_phase,则基于获取的key_phase和目标会话密钥确定更新的会话密钥,也就是说,在每次获取到key_phase时,均通过获取的key_phase和当前使用的会话密钥确定更新的会话密钥。
需要说明的是,数据请求对应的数据包括多个数据包,后端服务器可以基于初始会话密钥对多个数据包中的第一部分数据包进行加密,在初始会话密钥更新为目标会话密钥之后,后端服务器可以基于目标会话密钥对多个数据包中的第二部分数据包进行加密。
在一些实施例中,前端服务器依据第二快速连接的第一单向流接收当前使用的会话密钥和当前使用的会话密钥对应的加密数量;当前使用的会话密钥和对应的加密数量是后端服务器接收到前端服务器发送的包号区间时发送的;当前端服务器确定加密数量大于或等于加密阈值时,生成新的会话密钥,通过第一快速连接向客户端发送该新的会话密钥,通过第二快速连接的第二单向流向后端服务器发送该新的会话密钥,以使得客户端和后端服务器采用新的会话密钥替换当前使用的会话密钥。
其中,当前使用的会话密钥可以是初始会话密钥,也可以是目标会话密钥,也可以是其他会话密钥;当前使用的会话密钥对应的加密数量,是采用当前使用的会话密钥加密的数据包的数量;前端服务器发送的包号区间可以是第二包号区间,也可以是第三包号区间,也可以是其他包号区间;加密阈值可以根据实际需求设定,本申请实施例对此不进行限定。
本实施例是前端服务器发起更新会话密钥的方案;在一些实施例中,在后端服务器接收到前端服务器发送包号区间时,依据第二快速连接第一单向流,将当前使用的会话密钥和当前使用的会话密钥对应的加密数量,发送至前端服务器;在当前使用的会话密钥对应的加密数量达到加密阈值时,前端服务器主动更新会话密钥。
在上述实施例中,客户端发起更新会话密钥标识,前端服务器将更新会话密钥标识同步至后端服务器,使得后端服务器基于更新会话密钥标识确定目标会话密钥,采用目标会话密钥对数据请求对应数据包进行加密,更新初始会话密钥,提高了数据传输的安全性。
在一些实施例中,数据请求的处理方法还包括:依据第一快速连接接收客户端发送的第五确认帧;第五确认帧是客户端在接收到基于目标会话密钥加密的数据包时发送的;依据第一快速连接向客户端反馈第六确认帧,以指示客户端确定初始会话密钥已更新为目标会话密钥。
其中,第六确认帧是针对更新会话密钥标识的发送的确认帧。
在一些实施例中,客户端接收到基于目标会话密钥加密的数据包后,依据第一快速连接向前端服务器发送第五确认帧,在前端服务器基于第五确认帧确定后端服务器已经采用目标会话密钥加密数据包的情况下,依据第一快速连接向客户端反馈针对更新会话密钥标识的第六确认帧,客户端依据第六确认帧确定初始会话密钥已更新为目标会话密钥,进而淘汰初始会话密钥。
在一些实施例中,依据第二快速连接的第二单向流,向后端服务器发送目标会话密钥还包括:依据第二快速连接的第二单向流向后端服务器发送更新会话密钥标识和第四包号区间,以指示后端服务器采用第四包号区间中的包号对数据请求对应的数据进行封装,得到数据包,依据更新会话密钥标识确定目标会话密钥,采用目标会话密钥对数据包进行加密。前端服务器接收到第五确认帧,当第五确认帧包括第四包号区间的包号时,前端服务器确定第五确认帧是客户端在接收到基于目标会话密钥加密的数据包时发送的。
在前端服务器接收到客户端发送的更新会话密钥标识时,重新为后端服务器分配新的包号区间(第四包号区间),使得后端服务器通过第四包号区间和目标会话密钥进行发包,前端服务器基于第五确认帧确定后端服务器已经采用第四包号区间进行发包时,反馈针对更新会话密钥标识的目标会话密钥。
在相关技术中,前端服务器接收到更新会话密钥标识时,立即反馈针对更新会话密钥标识的确认帧,可能会存在后端服务器还未将初始会话密钥同步更新为目标会话密钥的情况下,客户端确定初始会话密钥已更新为目标会话密钥,进而废除初始会话密钥,导致后端服务器采用初始会话密钥加密的数据包被客户端丢弃,影响数据传输。
在上述实施例中,前端服务器在基于第五确认帧确定后端服务器已经采用目标会话密钥加密数据包,再针对更新会话密钥标识反馈第六确认帧,避免了在后端服务器还未将初始会话密钥同步更新为目标会话密钥的情况下,客户端确定初始会话密钥已更新为目标会话密钥,进而导致后端服务器采用初始会话密钥加密的数据包被客户端丢弃的情况,降低了丢包率,提高了传输效率。
在一些实施例中,初始信令包括四元组;四元组包括:客户端的IP地址和端口,以及后端服务器的IP地址和端口;当客户端的IP地址和端口发生变更时,前端服务器依据第二快速连接的第二单向流,向后端服务器发送客户端变更后的IP地址和端口,以指示后端服务器采用变更后的IP地址和端口发送数据请求对应的数据包。
在本实施例中,当客户端的IP地址和端口发生变更时,客户端采用变更后的IP地址和端口向前端服务器发包,前端服务器后续也采用变更后的IP地址和端口向客户端发包;前端服务器依据第二快速连接的第二单向流,向后端服务器发送客户端变更后的IP地址和端口,后端服务器采用变更后的IP地址和端口。
在一些实施例中,数据请求的处理方法可以应用于直播视频时获取播放数据的场景,如图5所示,以客户端并发两个数据请求为例进行说明,通过客户端、前端服务器FE、调度中心、后端服务器BE1和后端服务器BE2协同执行数据请求的处理方法,其中,前端服务器FE用于建立与客户端、调度中心和后端服务器之间的快速连接,对建立的快速连接进行维护,还用于从调度中心获取数据请求对应的后端服务器IP地址,还用于迁移数据请求,还用于为后端服务器分配包号,以及连接数据同步,包括同步确认帧,更新的连接标识和更新的会话密钥等;后端服务器BE1和后端服务器BE2可以独立进行丢包检测和拥塞检测,还用于对发送的数据包进行加密,以及连接数据同步;调度中心用于响应数据请求对应的后端服务器IP地址。
通过客户端观看直播视频,创建客户端与前端服务器FE之间的第一快速连接,客户端依据第一快速连接,向前端服务器FE发送两个数据请求,分别为数据请求1和数据请求2,前端服务器FE通过与调度中心之间的快速连接,将各数据请求转发至调度中心,调度中心确定各数据请求对应的后端服务器IP地址,前端服务器FE接收到调度中心各自调度的后端服务器;
前端服务器FE根据数据请求1对应的后端服务器IP,创建与后端服务器BE1之间的第二快速连接Q21,根据数据请求2对应的后端服务器IP,创建与后端服务器BE2之间的第二快速连接Q22;
前端服务器FE依据Q21将数据请求1迁移至后端服务器BE1,后端服务器BE1创建与客户端之间的伪连接,前端服务器FE基于Q22将数据请求1迁移至后端服务器BE2,后端服务器BE2创建与客户端之间的伪连接;
后端服务器BE1获取数据请求1对应的目标数据,通过与客户端之间的伪连接向客户端发送数据请求1对应的数据包,后端服务器BE1获取数据请求2对应的目标数据,通过与客户端之间的伪连接向客户端发送数据请求2对应的数据包。
在一些实施例中,如图6所示,数据请求的处理方法包括:
步骤601,前端服务器通过第一快速连接接收客户端发送的数据请求;
步骤602,前端服务器基于数据请求确定所要调度的后端服务器,并创建第二快速连接;第二快速连接是与后端服务器之间的快速连接;
步骤603,前端服务器依据第二快速连接向后端服务器发送数据请求,以指示后端服务器,基于客户端信息创建与客户端之间的伪连接,以及在流控资源的限制下,通过伪连接向客户端发送数据请求对应的第一数据包;
步骤604,前端服务器依据第一快速连接接收客户端发送的第一确认帧;第一确认帧是客户端确认收到第一数据包时发送的确认帧,第一数据包的包号属于第一包号区间;
步骤605,前端服务器依据第一快速连接接收客户端发送的第二确认帧;第二确认帧是客户端确认收到第三数据包时发送的确认帧;第三数据包的包号属于第一包号区间,且第三数据包的包号大于第一数据包的包号;
步骤606,前端服务器发起第二快速连接的第二单向流,在基于第一确认帧和第一包号区间确定达到包号分配条件的情况下,依据第二单向流向后端服务器发送第一确认帧和第二包号区间,以指示后端服务器在基于第一确认帧确定未丢包的情况下,基于伪连接向客户端发送第二数据包;第二数据包的包号属于第二包号区间;
步骤607,前端服务器依据第一快速连接接收客户端发送的第三确认帧;第三确认帧是客户端确认收到第二数据包时发送的确认帧;第二包号区间的包号大于第一包号区间的包号;
步骤608,前端服务器依据第一快速连接向客户端反馈第四确认帧,以指示第一确认帧已被确认。
在一些实施例中,如图7所示,数据请求的处理方法还包括:
步骤701,前端服务器依据第二快速连接的第一单向流接收后端服务器发送的包号获取请求;响应于包号获取请求,向后端服务器发送第三包号区间,以指示后端服务器基于第三包号区间发送第四数据包;第三包号区间包括的包号大于第一包号区间包括的包号;
步骤702,在数据请求迁移完成的情况下,前端服务器依据第二快速连接的第一单向流接收后端服务器发送的迁移完成指令;基于迁移完成指令更新数据请求的迁移状态;
步骤703,流控资源包括流窗口值和连接窗口值;前端服务器依据第一快速连接接收客户端发送目标流偏移量;基于目标流偏移量更新流窗口值,得到更新后流窗口值;依据第二快速连接的第二单向流,向后端服务器发送更新后流窗口值,以指示后端服务器在更新后流窗口值和连接窗口值的限制下,通过伪连接向客户端发送数据请求对应的数据包;
步骤704,前端服务器依据第一快速连接接收客户端发送的目标连接偏移量;基于目标连接偏移量对连接窗口值进行更新,得到更新后连接窗口值;依据第二快速连接的第二单向流,向后端服务器发送更新后连接窗口值,以指示后端服务器在更新后连接窗口值和流窗口值的限制下,通过伪连接向客户端发送数据请求对应的数据包;
步骤705,初始信令还包括初始连接标识;前端服务器依据第一快速连接接收客户端发送的更新连接标识帧;基于更新连接标识帧获取目标连接标识;依据第二快速连接的第二单向流,向后端服务器发送目标连接标识,以指示后端服务器通过伪连接向客户端发送携带有目标连接标识的数据包;依据第一快速连接向客户端发送停用连接标识帧;停用连接标识帧用于指示客户端将初始连接标识标记为停用状态,将目标连接标识标记为使用状态,并接收携带有目标连接标识的数据包;
步骤706,前端服务器依据第一快速连接接收客户端发送的更新会话密钥标识;基于更新会话密钥标识确定目标会话密钥;目标会话密钥是对初始信令包括的初始会话密钥进行更新所得的;依据第二快速连接的第二单向流,向后端服务器发送更新会话密钥标识,以指示后端服务器基于更新会话密钥标识确定目标会话密钥,基于目标会话密钥加密数据请求对应的数据包;
步骤707,前端服务器依据第一快速连接接收客户端发送的第五确认帧;第五确认帧是客户端在接收到基于目标会话密钥加密的数据包时发送的;依据第一快速连接向客户端反馈第六确认帧,以指示客户端确定初始会话密钥已更新为目标会话密钥。
在上述实施例中,前端服务器通过与客户端之间的第一快速连接,接收客户端发送的数据请求,根据数据请求确定所要调度的后端服务器,前端服务器通过与后端服务器之间的第二快速连接,将数据请求迁移至后端服务器,以使得后端服务器创建与客户端之间的伪连接,后端服务器依据伪连接直接向客户端发送数据请求对应的数据包。前端服务器进行请求级别的调度,确定所要调度的后端服务器具备响应数据请求的数据,使得后端服务器可以直接响应数据请求,不需要回源获取响应数据请求的数据,降低了延迟,以及服务器之间的通信开销;后端服务器通过伪连接直接向客户端发送数据包,而不是后端服务器将数据包发送至前端服务器,再由前端服务器向客户端发送数据包,降低了后端服务器与前端服务器之间的带宽消耗,降低了前端服务器下行流量的压力,提升了前端服务器的上行吞吐量,降低了延迟,提升了传输性能。
在一些实施例中,如图8所示,提供了一种数据请求的处理方法,以该方法应用于图1中的后端服务器为例进行说明,包括以下步骤:
步骤802,基于第二快速连接接收前端服务器迁移的数据请求;数据请求,是客户端基于第一快速连接发送至前端服务器的请求;
步骤804,响应于数据请求,创建与客户端之间的伪连接,以及获取数据请求对应的目标数据;
步骤806,通过伪连接向客户端发送封装了目标数据的数据包。
其中,步骤802至步骤806的详细过程可以参考上述步骤202至步骤206的实施例。
在上述实施例中,前端服务器通过与客户端之间的第一快速连接,接收客户端发送的数据请求,根据数据请求确定所要调度的后端服务器,前端服务器通过与后端服务器之间的第二快速连接,将数据请求迁移至后端服务器,以使得后端服务器创建与客户端之间的伪连接,后端服务器依据伪连接直接向客户端发送数据请求对应的数据包。前端服务器进行请求级别的调度,确定所要调度的后端服务器具备响应数据请求的数据,使得后端服务器可以直接响应数据请求,不需要回源获取响应数据请求的数据,降低了延迟,以及服务器之间的通信开销;后端服务器通过伪连接直接向客户端发送数据包,而不是后端服务器将数据包发送至前端服务器,再由前端服务器向客户端发送数据包,降低了对后端服务器与前端服务器之间的带宽消耗,降低了前端服务器下行流量的压力,提升了前端服务器的上行吞吐量,降低了延迟,提升了传输性能。
在一些实施例中,基于第二快速连接接收前端服务器迁移的数据请求之后,还包括:在数据请求迁移完成的情况下,创建第二快速连接的第一单向流;依据第一单向流,向前端服务器发送迁移完成指令,以指示前端服务器更新数据请求的迁移状态。
在本实施例中,后端服务器创建第一单向流,依据第一单向流向前端发送迁移完成指令,前端服务器依据迁移完成指令更新数据请求的迁移状态的详细过程,可以参考上述实施例中,前端服务器依据第二快速连接第一单向流接收后端服务器发送的迁移完成指令,基于迁移完成指令更新数据请求的迁移状态的相关说明。
在上述实施例中,后端服务器可以主动发起第一单向流,并依据第一单向流向前端服务器发送迁移完成指令,不用等待前端服务器建流,提高了迁移状态更新的实时性,并且相对于双向流来说,单向流所需的流控资源较少,减少了数据传输所消耗的资源。
在一些实施例中,数据包包括第一数据包;通过伪连接向客户端发送封装了目标数据的数据包,包括:基于迁移的数据请求确定第一包号区间;依据第一包号区间的包号对目标数据的第一部分数据进行封装,得到第一数据包;通过伪连接向客户端发送第一数据包。
其中,迁移的数据请求携带有初始信令,初始信令包括第一包号区间;第一部分数据是采用第一包号区间中的包号进行封装的数据。
在一些实施例中,后端服务器获取迁移的数据请求携带的第一包号区间,通过第一包号区间中的包号对目标数据的第一部分数据进行封装,得到第一数据包,后端服务器通过伪连接向客户端发送第一数据包。
需要说明的是,后端服务器封装得到第一数据包,不一定需要用尽第一包号区间的所有包号,后端服务器发包的过程是持续进行的,后端服务器可以采用第一包号区间中的部分包号,对目标数据的第一部分数据进行封装,得到第一数据包,之后该可以采用第一包号区间中的另一部分包号,对目标数据的另一部分数据进行封装,得到另一数据包。示例性地,第一包号区间为(100,120],可以通过属于(100,110]的包号对第一部分数据进行封装,得到第一数据包。
在上述实施例中,后端服务器通过迁移的数据请求确定第一包号区间,使得后端服务器在接收到数据请求的同时,接收到第一包号区间,在发送响应数据请求对应的数据包时,可以直接使用第一包号区间包括的包号,不需要再次获取可用包号,或者等待前端服务器发送可用包号,降低了数据传输的延迟,提升了数据传输效率。
在一些实施例中,数据包还包括第二数据包和第三数据包;如图9所示,通过伪连接向客户端发送第一数据包之后,还包括:
步骤901,通过伪连接向客户端发送第三数据包,以使得客户端在收到第三数据包时,向前端服务器发送第二确认帧;第三数据包的包号属于第一包号区间,且第三数据包的包号大于第一数据包的包号;
步骤902,依据第二快速连接的第二单向流,接收前端服务器发送的第一确认帧和第二包号区间;第一确认帧是客户端确认收到第一数据包时,向前端服务器发送的确认帧;
步骤903,基于第一确认帧进行丢包检测,得到检测结果;
步骤904,当检测结果为未丢包时,依据第二包号区间的包号对目标数据的第二部分数据进行封装,得到第二数据包;
步骤905,通过伪连接向客户端发送第二数据包,以使得客户端确认收到第二数据包时,向前端服务器发送第三确认帧,以指示前端服务器向客户端反馈第四确认帧,第四确认帧用于表示第一确认帧已被确认。
在本实施例中,上述后端服务器发送第三数据包、接收第一确认帧和第二包号区间、以及发送第二数据包的详细说明,可以参考上述实施例中,前端服务器接收客户端在接收到第三数据包时发送的第二确认帧、向后端服务器发送第一确认帧和第二包号区间、接收客户端在接收到第二数据包时发送的第三确认帧、以及向客户端反馈第四确认帧的相关说明。
在一些实施例中,当检测结果为未丢包时,后端服务器可以筛选第一确认帧中属于第一包号区间的确认信息,基于确认信息进行拥塞检测,得到拥塞窗口和发包速率,依据拥塞窗口和发包速率向客户端发送第二数据包。
在上述实施例中,在上述实施例中,前端服务器在接收到客户端基于接收的第一数据包发送的第一确认帧时,不立刻响应该第一确认帧,后端服务器的发包动作是持续进行的,因此在各后端服务器发送第一数据包之后,还会采用第一包号区间发送第三数据包,在前端服务器基于第三确认帧,确定各后端服务器已经采用第二包号区间发包的情况下,前端服务器再向客户端发送针对第一确认帧的第四确认帧,使得在后端服务器采用第一包号区间中的包号发送的第三数据包,不会被客户端丢弃,降低了数据传输过程的丢包率,进而降低了重传数据包所消耗的带宽资源,提升了传输性能。
在一些实施例中,基于第一确认帧进行丢包检测,得到检测结果,包括:筛选第一确认帧中属于第一包号区间的确认信息;基于确认信息进行丢包检测,得到检测结果;数据包还包括重发数据包;数据请求的处理方法还包括:当检测结果为丢包时,基于确认信息进行拥塞检测,得到拥塞窗口和发包速率;基于第二包号区间的包号对丢包数据进行重新封装得到重发数据包;通过伪连接,依据拥塞窗口和发包速率向客户端发送重发数据包。
其中,确认信息是第一确认帧中包号属于第一包号区间的信息,包括属于第一包号区间的包号;拥塞窗口用于限制发送数据包的数据量,发包速率是发送数据包的速率。
在一些实施例中,第一确认帧可能包括多个各后端服务器发送的第一数据包的包号,后端服务器接收到第一确认帧后,根据第一包号区间筛选出对应的确认信息。后端服务器根据确定信息包括的包号,与发送的第一数据包的包号进行丢包检测,在确认信息包括的包号与第一数据包的包号一致的情况下,确定检测结果为未丢包,在确认信息包括的包号与第一数据包的包号不一致的情况下,确定检测结果为丢包。
当检测结果为丢包时,根据确认信息进行拥塞检测,得到拥塞窗口和发包速率,根据确认信息包括的包号和第一数据包的包号确定丢包数据,通过第二包号区间中的包号对丢包数据进行重新封装得到重发数据包,通过伪连接,依据拥塞窗口和发包速率向客户端发送重发数据包。需要说明的是,相关技术中,拥塞检测也被称为拥塞控制。
在一些实施例中,重发数据包的数量为多个,依据拥塞窗口和发包速率向客户端发送重发数据包,指的是多个重发数据包的字节数不超过拥塞窗口对应的数据量,发送多个重发数据包的速率不超过发包速率。
在一些实施例中,在客户端并发多个数据请求的情况下,客户端接收各后端服务器采用各自对应的第一包号区间发送的各第一数据包,向前端服务器发送第一确认帧,第一确认帧包括属于各后端服务器各自对应的第一包号区间的包号,前端服务器将第一确认帧发送至各后端服务器,各后端服务器各自基于第一确认帧筛选属于其第一包号区间的确认信息。
示例性地,如图10所示,各后端服务器分别为后端服务器BE1和后端服务器BE2,前端服务器FE向BE1发送第一确认帧,以及为BE1分配的第二包号区间,向BE2发送第一确认帧,以及为BE2分配的第二包号区间;以BE1进行举例说明,BE1筛选第一确认帧中属于BE1的第一包号区间的确认信息,基于该确认信息进行丢包检测,在确定丢包时,基于确认信息进行拥塞检测,得到拥塞窗口和发包速率,通过BE1接收的第二包号区间的包号对丢包数据进行重新封装,得到重发数据包,按照拥塞窗口和发包速率向客户端发送重发数据包。
在上述实施例中,后端服务器接收第一确认帧,依据第一确认帧进行丢包检测,在确定发生丢包时,可以及时发送重发数据包,依据拥塞窗口和发包速率向客户端发送重发数据包,可以减少因拥塞导致重发数据包丢失,进而使得客户端及时接收到重发数据包,在实际应用中,避免客户端因为丢包数据出现加载等待,或者页面卡顿的情况,提升了数据传输效率。
在一些实施例中,后端服务器的最大传输单元探测,与前端服务器的最大传输单元探测相互独立。最大传输单元是后端服务器(前端服务器)发送数据到客户端时,不需要分片的最大传输单元,最大传输单元探测可以按照最大传输单元的大小将发送数据分片后进行发送,使得后端服务器(前端服务器)可以发送数据量更大的数据包。本申请实施例对最大传输单元探测的具体过程不进行限定。
在一些实施例中,客户端向前端服务器发送数据时,采用QPACK对发送数据的头域进行压缩,前端服务器可以按照QPACK对客户端发送的数据进行头域解析,后端服务器不参与此解析过程;QPACK代表HTTP/3头域的编码;在客户端并发多个数据请求的场景下,多个后端服务器的QPACK动态表难同步,因此当后端服务器向客户端发送数据时,禁用QPACK动态表,仅采用静态表对发送的数据的头域进行压缩。
在一些实施例中,QUIC是基于UDP的低时延的互联网传输层协议,需要在应用层完成UDP数据的组装,通过sendmsg接口发送应用层的数据,sendmsg接口是用于发送应用层数据的接口;在后端服务器根据数据请求和初始信令进行上下文恢复时,后端服务器从初始信令中获取虚拟IP地址,将后端服务器的IP地址设置为该虚拟IP地址,后端服务器发送数据包,将后端服务器创建的套接字(socket),作为sendmsg接口所需的socket,进而可以复用后端服务器当前已有的发包接口;需要说明的是,本实施例中的sendmsg接口仅为一种示例,在实际应用中,也可以是其他用于发送应用层数据的接口。
在一些实施例中,数据请求的处理方法可以应用于点播视频时获取播放数据的场景,点播视频不是实时播放的视频,比如观看的电影视频为点播视频。
以客户端并发两个数据请求为例进行说明,通过客户端、前端服务器FE、调度中心、后端服务器BE1和后端服务器BE2协同执行数据请求的处理方法,如图11所示(图11中前端服务器与后端服务器BE2之间的交互未示出),数据请求的处理方法包括:
1、创建前端服务器FE与客户端之间的第一快速连接;
2、客户端依据第一快速连接向前端服务器FE发送数据请求1和数据请求2;
3、前端服务器FE接收数据请求1和数据请求2,依据与调度中心之间的快速连接,向调度中心发送数据请求1和数据请求2,接收调度中心返回的数据请求1对应的后端服务器地址IP1,以及数据请求2对应的后端服务器地址IP2;
4、前端服务器FE根据后端服务器地址IP1创建与后端服务器BE1之间第二快速连接Q21,根据后端服务器地址IP2创建与后端服务器BE2之间的第二快速连接Q22;
5、前端服务器FE根据第二快速连接Q21,将数据请求1和初始信令x1迁移至后端服务器BE1;根据第二快速连接Q22,将数据请求2和初始信令x2迁移至后端服务器BE2;
6、后端服务器BE1根据数据请求1和初始信令x1创建与客户端之间的伪连接W1;后端服务器BE2根据数据请求2和初始信令x2创建与客户端之间的伪连接W2;
7、在完成数据请求1的迁移后,后端服务器BE1发起第二快速连接Q21的第一单向流s11,通过第一单向流s11向前端服务器FE发送迁移完成指令;在完成数据请求2的迁移后,后端服务器BE2发起第二快速连接Q22的第一单向流s12,通过第一单向流s12向前端服务器FE发送迁移完成指令;
8、前端服务器FE依据后端服务器BE1发送的迁移完成指令,更新数据请求1的迁移状态;依据后端服务器BE2发送的迁移完成指令,更新数据请求2的迁移状态;
9、后端服务器BE1获取数据请求1对应的目标数据d1,基于目标数据d1、初始信令x1包括的第一包号区间r1、初始连接标识cid1和初始会话密钥key1,确定目标数据d1对应的第一数据包y1,依据伪连接W1向客户端发送第一数据包y1;
后端服务器BE2获取数据请求2对应的目标数据d2,基于目标数据d2、初始信令x2包括的第一包号区间r2、初始连接标识cid1和初始会话密钥key1,确定目标数据d2对应的第一数据包y2,依据伪连接W2向客户端发送第一数据包y2;
10、客户端获取到第一数据包y1和y2后,依据第一快速连接向前端服务器FE发送第一确认帧;
11、前端服务器FE接收到第一确认帧,发起第二快速连接Q21的第二单向流s21,发起第二快速连接Q21的第二单向流s22,依据第二单向流s21向后端服务器BE1发送第一确认帧和第二包号区间r3,依据第二单向流s22向后端服务器BE2发送第二确认帧和第二包号区间r4;后端服务器BE1依据第二包号区间r3向客户端发送第二数据包y3,后端服务器BE2依据第二包号区间r4向客户端发送第二数据包y4;
12、前端服务器FE接收到客户端的依据接收到第二数据包发送的第三确认帧时,发送用于响应第一确认帧的第四确认帧;
13、客户端通过第一快速连接向前端服务器FE发送更新连接标识帧,前端服务器FE获取到目标连接标识cid2;
14、前端服务器FE依据第二单向流s21向后端服务器BE1发送目标连接标识cid2,依据第二单向流s22向后端服务器BE2发送目标连接标识cid2,后端服务器BE1和后端服务器BE2将初始连接标识cid1更新为目标连接标识cid2;
15、客户端通过第一快速连接向前端服务器FE发送更新的流控资源,前端服务器FE根据更新的流控资源确定后端服务器BE1和后端服务器BE1各自对应的更新流控资源;
16、前端服务器FE依据第二单向流s21向后端服务器BE1发送对应的更新流控资源,依据第二单向流s22向后端服务器BE2发送对应的更新流控资源;
17、客户端通过第一快速连接向前端服务器FE发送更新会话密钥标识key_phase2;
18、前端服务器根据key_phase2确定目标会话密钥key2,依据第二单向流s21向后端服务器BE1发送更新会话密钥标识key_phase2,依据第二单向流s22向后端服务器BE2发送更新会话密钥标识key_phase2,后端服务器BE1和后端服务器BE2依据key_phase2确定目标会话密钥key2。
在一些实施例中,如图12所示,数据请求的处理方法包括:
S1201、后端服务器基于第二快速连接接收前端服务器迁移的数据请求;数据请求,是客户端基于第一快速连接发送至前端服务器的请求;
S1202、在数据请求迁移完成的情况下,后端服务器发起第二快速连接的第一单向流;依据第一单向流,向前端服务器发送迁移完成指令,以指示前端服务器更新数据请求的迁移状态;
S1203、后端服务器响应于数据请求,创建与客户端之间的伪连接,以及获取数据请求对应的目标数据;
S1204、后端服务器基于迁移的数据请求确定第一包号区间;依据第一包号区间的包号对目标数据的第一部分数据进行封装,得到第一数据包,通过伪连接向客户端发送第一数据包;
S1205、后端服务器通过伪连接向客户端发送第三数据包,以使得客户端在收到第三数据包时,向前端服务器发送第二确认帧;第三数据包的包号属于第一包号区间,且第三数据包的包号大于第一数据包的包号;
S1206、后端服务器依据第二快速连接的第二单向流,接收前端服务器发送的第一确认帧和第二包号区间;第一确认帧是客户端确认收到第一数据包时,向前端服务器发送的确认帧;
S1207、后端服务器筛选第一确认帧中属于第一包号区间的确认信息;基于确认信息进行丢包检测,得到检测结果;
S1208A、当检测结果为未丢包时,后端服务器依据第二包号区间的包号对目标数据的第二部分数据进行封装,得到第二数据包;
S1209A、后端服务器通过伪连接向客户端发送第二数据包,以使得客户端确认收到第二数据包时,向前端服务器发送第三确认帧,以指示前端服务器向客户端反馈第四确认帧,第四确认帧用于表示第一确认帧已被确认;
S1208B、当检测结果为丢包时,后端服务器基于确认信息进行拥塞检测,得到拥塞窗口和发包速率;基于第二包号区间的包号对丢包数据进行重新封装得到重发数据包;通过伪连接,依据拥塞窗口和发包速率向客户端发送重发数据包。
在上述实施例中,前端服务器通过与客户端之间的第一快速连接,接收客户端发送的数据请求,根据数据请求确定所要调度的后端服务器,前端服务器通过与后端服务器之间的第二快速连接,将数据请求迁移至后端服务器,以使得后端服务器创建与客户端之间的伪连接,后端服务器依据伪连接直接向客户端发送数据请求对应的数据包。前端服务器进行请求级别的调度,确定所要调度的后端服务器具备响应数据请求的数据,使得后端服务器可以直接响应数据请求,不需要回源获取响应数据请求的数据,降低了延迟,以及服务器之间的通信开销;后端服务器通过伪连接直接向客户端发送数据包,而不是后端服务器将数据包发送至前端服务器,再由前端服务器向客户端发送数据包,降低了后端服务器与前端服务器之间的带宽消耗,降低了前端服务器下行流量的压力,提升了前端服务器的上行吞吐量,降低了延迟,提升了传输性能。
应该理解的是,虽然如上的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
基于同样的发明构思,本申请实施例还提供了一种用于实现上述所涉及的数据请求的处理方法的数据请求的处理装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个数据请求的处理装置实施例中的具体限定可以参见上文中对于数据请求的处理方法的限定,在此不再赘述。
在一个实施例中,如图13所示,提供了一种数据请求的处理装置,包括:数据请求接收模块1301、后端服务器调度模块1302和第一数据请求迁移模块1303,其中:
数据请求接收模块1301,用于通过第一快速连接接收客户端发送的数据请求;
后端服务器调度模块1302,用于基于数据请求确定所要调度的后端服务器,并创建第二快速连接;第二快速连接是与后端服务器之间的快速连接;
第一数据请求迁移模块1303,用于依据第二快速连接将数据请求迁移至后端服务器,以指示后端服务器创建与客户端之间的伪连接,基于伪连接向客户端发送数据请求对应的数据包。
在一些实施例中,数据请求的处理装置还包括:迁移状态更新模块,用于在数据请求迁移完成的情况下,依据第二快速连接的第一单向流接收后端服务器发送的迁移完成指令;基于迁移完成指令更新数据请求的迁移状态。
在一些实施例中,数据包包括第一数据包和第二数据包;数据请求的处理装置还包括:包号区间发送模块,用于依据第一快速连接接收客户端发送的第一确认帧;第一确认帧是客户端确认收到第一数据包时发送的确认帧,第一数据包的包号属于第一包号区间;依据第二快速连接向后端服务器发送第一确认帧和第二包号区间,以指示后端服务器在基于第一确认帧确定未丢包的情况下,基于伪连接向客户端发送第二数据包;第二数据包的包号属于第二包号区间。
在一些实施例中,数据包包括第一数据包和第二数据包;数据请求的处理装置还包括:延迟确认模块;在依据第一快速连接接收客户端发送的第一确认帧之后,用于依据第一快速连接接收客户端发送的第二确认帧;第二确认帧是客户端确认收到第三数据包时发送的确认帧;第三数据包的包号属于第一包号区间,且第三数据包的包号大于第一数据包的包号;
在依据第二快速连接向后端服务器发送第一确认帧和第二包号区间之后,还用于依据第一快速连接接收客户端发送的第三确认帧;第三确认帧是客户端确认收到第二数据包时发送的确认帧;第二包号区间的包号大于第一包号区间的包号;依据第一快速连接向客户端反馈第四确认帧,以指示客户端确定第一确认帧已被确认。
在一些实施例中,数据请求的处理装置,还用于创建第二快速连接的第二单向流;包号区间发送模块,具体用于在基于第一确认帧和第一包号区间确定达到包号分配条件的情况下,依据第二单向流向后端服务器发送第一确认帧和第二包号区间。
在一些实施例中,数据包还包括第四数据包;
依据第二快速连接的第一单向流接收后端服务器发送的包号获取请求;响应于包号获取请求,向后端服务器发送第三包号区间,以指示后端服务器基于第三包号区间发送第四数据包;第三包号区间包括的包号大于第一包号区间包括的包号。
在一些实施例中,数据请求携带初始信令,初始信令包括客户端信息和流控资源;第一数据请求迁移模块1303,具体用于依据第二快速连接向后端服务器发送数据请求,以指示后端服务器,基于客户端信息创建与客户端之间的伪连接,以及在流控资源的限制下,通过伪连接向客户端发送数据请求对应的数据包。
在一些实施例中,流控资源包括流窗口值和连接窗口值;数据请求的处理装置还包括:流控资源更新模块,用于依据第一快速连接接收客户端发送目标流偏移量;基于目标流偏移量更新流窗口值,得到更新后流窗口值;依据第二快速连接的第二单向流,向后端服务器发送更新后流窗口值;相应地,在流控资源的限制下,通过伪连接向客户端发送数据请求对应的数据包,包括:在更新后流窗口值和连接窗口值的限制下,通过伪连接向客户端发送数据请求对应的数据包。
在一些实施例中,流控资源更新模块,还用于依据第一快速连接接收客户端发送的目标连接偏移量;基于目标连接偏移量对连接窗口值进行更新,得到更新后连接窗口值;依据第二快速连接的第二单向流,向后端服务器发送更新后连接窗口值;在流控资源的限制下,通过伪连接向客户端发送数据请求对应的数据包,包括:在更新后连接窗口值和流窗口值的限制下,通过伪连接向客户端发送数据请求对应的数据包。
在一些实施例中,初始信令还包括初始连接标识,数据请求的处理装置还包括:连接标识更新模块,用于依据第一快速连接接收客户端发送的更新连接标识帧;基于更新连接标识帧获取目标连接标识;依据第二快速连接的第二单向流,向后端服务器发送目标连接标识,以指示后端服务器通过伪连接向客户端发送携带有目标连接标识的数据包;依据第一快速连接向客户端发送停用连接标识帧;停用连接标识帧用于指示客户端将初始连接标识标记为停用状态,将目标连接标识标记为使用状态,并接收携带有目标连接标识的数据包。
在一些实施例中,数据请求的处理装置还包括:会话密钥更新模块,用于依据第一快速连接接收客户端发送的更新会话密钥标识;基于更新会话密钥标识确定目标会话密钥;目标会话密钥是对初始信令包括的初始会话密钥进行更新所得的;依据第二快速连接的第二单向流,向后端服务器发送更新会话密钥标识,以指示后端服务器基于更新会话密钥标识确定目标会话密钥,基于目标会话密钥加密数据请求对应的数据包。
在一些实施例中,会话密钥更新模块,还用于依据第一快速连接接收客户端发送的第五确认帧;第五确认帧是客户端在接收到基于目标会话密钥加密的数据包时发送的;依据第一快速连接向客户端反馈第六确认帧,以指示客户端确定初始会话密钥已更新为目标会话密钥。
在一个实施例中,如图14所示,提供了一种数据请求的处理装置,包括:第二数据请求迁移模块1401、目标数据获取模块1402和数据包发送模块1403,其中:
第二数据请求迁移模块1401,用于基于第二快速连接接收前端服务器迁移的数据请求;数据请求,是客户端基于第一快速连接发送至前端服务器的请求;
目标数据获取模块1402,用于响应于数据请求,创建与客户端之间的伪连接,以及获取数据请求对应的目标数据;
数据包发送模块1403,用于通过伪连接向客户端发送封装了目标数据的数据包。
在一些实施例中,数据请求的处理装置还包括:
迁移完成指令发送模块,用于在数据请求迁移完成的情况下,创建第二快速连接的第一单向流;依据第一单向流,向前端服务器发送迁移完成指令,以指示前端服务器更新数据请求的迁移状态。
在一些实施例中,数据包包括第一数据包,数据包发送模块1403,具体用于基于迁移的数据请求确定第一包号区间;依据第一包号区间的包号对目标数据的第一部分数据进行封装,得到第一数据包;通过伪连接向客户端发送第一数据包。
在一些实施例中,数据包还包括第二数据包和第三数据包;数据包发送模块1403,还用于通过伪连接向客户端发送第三数据包,以使得客户端在收到第三数据包时,向前端服务器发送第二确认帧;第三数据包的包号属于第一包号区间,且第三数据包的包号大于第一数据包的包号;依据第二快速连接的第二单向流,接收前端服务器发送的第一确认帧和第二包号区间;第一确认帧是客户端确认收到第一数据包时,向前端服务器发送的确认帧;基于第一确认帧进行丢包检测,得到检测结果;当检测结果为未丢包时,依据第二包号区间的包号对目标数据的第二部分数据进行封装,得到第二数据包;通过伪连接向客户端发送第二数据包,以使得客户端确认收到第二数据包时,向前端服务器发送第三确认帧,以指示前端服务器向客户端反馈第四确认帧,第四确认帧用于表示第一确认帧已被确认。
在一些实施例中,数据请求的处理装置还包括:筛选第一确认帧中属于第一包号区间的确认信息;基于确认信息进行丢包检测,得到检测结果;当检测结果为丢包时,基于确认信息进行拥塞检测,得到拥塞窗口和发包速率;基于第二包号区间的包号对丢包数据进行重新封装得到重发数据包;通过伪连接,依据拥塞窗口和发包速率向客户端发送重发数据包。
上述数据请求的处理装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是前端服务器,或者后端服务器,其内部结构图可以如图15所示。该计算机设备包括处理器、存储器、输入/输出接口(Input/Output,简称I/O)和通信接口。其中,处理器、存储器和输入/输出接口通过系统总线连接,通信接口通过输入/输出接口连接到系统总线。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质和内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储响应数据请求的数据。该计算机设备的输入/输出接口用于处理器与外部设备之间交换信息。该计算机设备的通信接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种数据请求的处理方法。
本领域技术人员可以理解,图15中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
通过第一快速连接接收客户端发送的数据请求;基于数据请求确定所要调度的后端服务器,并创建第二快速连接;第二快速连接是与后端服务器之间的快速连接;依据第二快速连接将数据请求迁移至后端服务器,以指示后端服务器创建与客户端之间的伪连接,基于伪连接向客户端发送数据请求对应的数据包;或者,
基于第二快速连接接收前端服务器迁移的数据请求;数据请求,是客户端基于第一快速连接发送至前端服务器的请求;响应于数据请求,创建与客户端之间的伪连接,以及获取数据请求对应的目标数据;通过伪连接向客户端发送封装了目标数据的数据包。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
通过第一快速连接接收客户端发送的数据请求;基于数据请求确定所要调度的后端服务器,并创建第二快速连接;第二快速连接是与后端服务器之间的快速连接;依据第二快速连接将数据请求迁移至后端服务器,以指示后端服务器创建与客户端之间的伪连接,基于伪连接向客户端发送数据请求对应的数据包;或者,
基于第二快速连接接收前端服务器迁移的数据请求;数据请求,是客户端基于第一快速连接发送至前端服务器的请求;响应于数据请求,创建与客户端之间的伪连接,以及获取数据请求对应的目标数据;通过伪连接向客户端发送封装了目标数据的数据包。
在一个实施例中,提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
通过第一快速连接接收客户端发送的数据请求;基于数据请求确定所要调度的后端服务器,并创建第二快速连接;第二快速连接是与后端服务器之间的快速连接;依据第二快速连接将数据请求迁移至后端服务器,以指示后端服务器创建与客户端之间的伪连接,基于伪连接向客户端发送数据请求对应的数据包;或者,
基于第二快速连接接收前端服务器迁移的数据请求;数据请求,是客户端基于第一快速连接发送至前端服务器的请求;响应于数据请求,创建与客户端之间的伪连接,以及获取数据请求对应的目标数据;通过伪连接向客户端发送封装了目标数据的数据包。
需要说明的是,本申请所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-OnlyMemory,ROM)、磁带、软盘、闪存、光存储器、高密度嵌入式非易失性存储器、阻变存储器(ReRAM)、磁变存储器(Magnetoresistive Random Access Memory,MRAM)、铁电存储器(Ferroelectric Random Access Memory,FRAM)、相变存储器(Phase Change Memory,PCM)、石墨烯存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器等。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic RandomAccess Memory,DRAM)等。本申请所提供的各实施例中所涉及的数据库可包括关系型数据库和非关系型数据库中至少一种。非关系型数据库可包括基于区块链的分布式数据库等,不限于此。本申请所提供的各实施例中所涉及的处理器可为通用处理器、中央处理器、图形处理器、数字信号处理器、可编程逻辑器、基于量子计算的数据处理逻辑器等,不限于此。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。

Claims (22)

1.一种数据请求的处理方法,其特征在于,所述方法包括:
通过第一快速连接接收所述客户端发送的数据请求;
基于所述数据请求确定所要调度的后端服务器,并创建第二快速连接;所述第二快速连接是与所述后端服务器之间的快速连接;
依据所述第二快速连接将所述数据请求迁移至所述后端服务器,以指示所述后端服务器创建与所述客户端之间的伪连接,基于所述伪连接向所述客户端发送所述数据请求对应的数据包。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述数据请求迁移完成的情况下,依据所述第二快速连接的第一单向流接收所述后端服务器发送的迁移完成指令;
基于所述迁移完成指令更新所述数据请求的迁移状态。
3.根据权利要求1所述的方法,其特征在于,所述数据包包括第一数据包和第二数据包;所述方法还包括:
依据所述第一快速连接接收所述客户端发送的第一确认帧;所述第一确认帧是所述客户端确认收到所述第一数据包时发送的确认帧,所述第一数据包的包号属于第一包号区间;
依据所述第二快速连接向所述后端服务器发送所述第一确认帧和第二包号区间,以指示所述后端服务器在基于所述第一确认帧确定未丢包的情况下,基于所述伪连接向所述客户端发送所述第二数据包;所述第二数据包的包号属于所述第二包号区间。
4.根据权利要求3所述的方法,其特征在于,所述数据包还包括第三数据包;所述依据所述第一快速连接接收所述客户端发送的第一确认帧之后,还包括:
依据所述第一快速连接接收所述客户端发送的第二确认帧;所述第二确认帧是所述客户端确认收到所述第三数据包时发送的确认帧;所述第三数据包的包号属于所述第一包号区间,且所述第三数据包的包号大于所述第一数据包的包号;
所述依据所述第二快速连接向所述后端服务器发送所述第一确认帧和第二包号区间之后,还包括:
依据所述第一快速连接接收所述客户端发送的第三确认帧;所述第三确认帧是所述客户端确认收到所述第二数据包时发送的确认帧;所述第二包号区间的包号大于所述第一包号区间的包号;
依据所述第一快速连接向所述客户端反馈第四确认帧,以指示所述客户端确定所述第一确认帧已被确认。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
发起所述第二快速连接的第二单向流;
所述依据所述第二快速连接向所述后端服务器发送所述第一确认帧和第二包号区间,包括:
在基于所述第一确认帧和所述第一包号区间确定达到包号分配条件的情况下,依据所述第二单向流向所述后端服务器发送所述第一确认帧和第二包号区间。
6.根据权利要求5所述的方法,其特征在于,所述数据包还包括第四数据包;所述方法还包括:
依据所述第二快速连接的第一单向流接收所述后端服务器发送的包号获取请求;
响应于所述包号获取请求,向所述后端服务器发送第三包号区间,以指示所述后端服务器基于所述第三包号区间发送所述第四数据包;所述第三包号区间包括的包号大于所述第一包号区间包括的包号。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述数据请求携带初始信令,所述初始信令包括客户端信息和流控资源;
所述依据所述第二快速连接将所述数据请求迁移至所述后端服务器,以指示所述后端服务器创建与所述客户端之间的伪连接,基于所述伪连接向所述客户端发送所述数据请求对应的数据包,包括:
依据所述第二快速连接向所述后端服务器发送所述数据请求,以指示所述后端服务器,基于所述客户端信息创建与所述客户端之间的伪连接,以及在所述流控资源的限制下,通过所述伪连接向所述客户端发送所述数据请求对应的数据包。
8.根据权利要求7所述的方法,其特征在于,所述流控资源包括流窗口值和连接窗口值;所述方法还包括:
依据所述第一快速连接接收所述客户端发送目标流偏移量;
基于所述目标流偏移量更新所述流窗口值,得到更新后流窗口值;
依据所述第二快速连接的第二单向流,向所述后端服务器发送所述更新后流窗口值;
所述在所述流控资源的限制下,通过所述伪连接向所述客户端发送所述数据请求对应的数据包,包括:
在所述更新后流窗口值和所述连接窗口值的限制下,通过所述伪连接向所述客户端发送所述数据请求对应的数据包。
9.根据权利要求7所述的方法,其特征在于,所述流控资源包括流窗口值和连接窗口值;所述方法还包括:
依据所述第一快速连接接收所述客户端发送的目标连接偏移量;
基于所述目标连接偏移量对所述连接窗口值进行更新,得到更新后连接窗口值;
依据所述第二快速连接的第二单向流,向所述后端服务器发送所述更新后连接窗口值;
所述在所述流控资源的限制下,通过所述伪连接向所述客户端发送所述数据请求对应的数据包,包括:
在所述更新后连接窗口值和所述流窗口值的限制下,通过所述伪连接向所述客户端发送所述数据请求对应的数据包。
10.根据权利要求7所述的方法,其特征在于,所述初始信令还包括初始连接标识;所述方法还包括:
依据所述第一快速连接接收所述客户端发送的更新连接标识帧;
基于所述更新连接标识帧获取目标连接标识;
依据所述第二快速连接的第二单向流,向所述后端服务器发送所述目标连接标识,以指示所述后端服务器通过所述伪连接向所述客户端发送携带有所述目标连接标识的数据包;
依据所述第一快速连接向所述客户端发送停用连接标识帧;所述停用连接标识帧用于指示所述客户端将所述初始连接标识标记为停用状态,将所述目标连接标识标记为使用状态,并接收携带有所述目标连接标识的数据包。
11.根据权利要求7所述的方法,其特征在于,所述方法还包括:
依据所述第一快速连接接收所述客户端发送的更新会话密钥标识;
基于所述更新会话密钥标识确定所述目标会话密钥;所述目标会话密钥是对所述初始信令包括的初始会话密钥进行更新所得的;
依据所述第二快速连接的第二单向流,向所述后端服务器发送所述更新会话密钥标识,以指示所述后端服务器基于所述更新会话密钥标识确定所述目标会话密钥,基于所述目标会话密钥加密所述数据请求对应的数据包。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括:
依据所述第一快速连接接收所述客户端发送的第五确认帧;所述第五确认帧是所述客户端在接收到基于所述目标会话密钥加密的数据包时发送的;
依据所述第一快速连接向所述客户端反馈第六确认帧,以指示所述客户端确定所述初始会话密钥已更新为所述目标会话密钥。
13.一种数据请求的处理方法,其特征在于,所述方法包括:
基于第二快速连接接收所述前端服务器迁移的数据请求;所述数据请求,是客户端基于第一快速连接发送至所述前端服务器的请求;
响应于所述数据请求,创建与所述客户端之间的伪连接,以及获取所述数据请求对应的目标数据;
通过所述伪连接向所述客户端发送封装了所述目标数据的数据包。
14.根据权利要求13所述的方法,其特征在于,所述基于第二快速连接接收所述前端服务器迁移的数据请求之后,还包括:
在所述数据请求迁移完成的情况下,创建所述第二快速连接的第一单向流;
依据所述第一单向流,向所述前端服务器发送迁移完成指令,以指示所述前端服务器更新所述数据请求的迁移状态。
15.根据权利要求13所述的方法,其特征在于,所述数据包包括第一数据包;所述通过所述伪连接向所述客户端发送封装了所述目标数据的数据包,包括:
基于迁移的所述数据请求确定第一包号区间;
依据所述第一包号区间的包号对所述目标数据的第一部分数据进行封装,得到第一数据包;
通过所述伪连接向所述客户端发送所述第一数据包。
16.根据权利要求15所述的方法,其特征在于,所述数据包还包括第二数据包和第三数据包;
所述通过所述伪连接向所述客户端发送所述第一数据包之后,还包括:
通过所述伪连接向所述客户端发送所述第三数据包,以使得所述客户端在收到所述第三数据包时,向所述前端服务器发送第二确认帧;所述第三数据包的包号属于所述第一包号区间,且所述第三数据包的包号大于所述第一数据包的包号;
依据所述第二快速连接的第二单向流,接收所述前端服务器发送的第一确认帧和第二包号区间;所述第一确认帧是所述客户端确认收到所述第一数据包时,向所述前端服务器发送的确认帧;
基于所述第一确认帧进行丢包检测,得到检测结果;
当所述检测结果为未丢包时,依据所述第二包号区间的包号对所述目标数据的第二部分数据进行封装,得到第二数据包;
通过所述伪连接向所述客户端发送所述第二数据包,以使得所述客户端确认收到所述第二数据包时,向所述前端服务器发送第三确认帧,以指示所述前端服务器向所述客户端反馈第四确认帧,所述第四确认帧用于表示所述第一确认帧已被确认。
17.根据权利要求16所述的方法,其特征在于,所述基于所述第一确认帧进行丢包检测,得到检测结果,包括:
筛选所述第一确认帧中属于所述第一包号区间的确认信息;
基于所述确认信息进行丢包检测,得到检测结果;
所述数据包还包括重发数据包;所述方法还包括:
当所述检测结果为丢包时,基于所述确认信息进行拥塞检测,得到拥塞窗口和发包速率;
基于所述第二包号区间的包号对所述丢包数据进行重新封装得到重发数据包;
通过所述伪连接,依据所述拥塞窗口和所述发包速率向所述客户端发送所述重发数据包。
18.一种数据请求的处理装置,其特征在于,所述装置包括:
数据请求接收模块,用于通过第一快速连接接收所述客户端发送的数据请求;
后端服务器调度模块,用于基于所述数据请求确定所要调度的后端服务器,并创建第二快速连接;所述第二快速连接是与所述后端服务器之间的快速连接;
第一数据请求迁移模块,用于依据所述第二快速连接将所述数据请求迁移至所述后端服务器,以指示所述后端服务器创建与所述客户端之间的伪连接,基于所述伪连接向所述客户端发送所述数据请求对应的数据包。
19.一种数据请求的处理装置,其特征在于,所述装置包括:
第二数据请求迁移模块,用于基于第二快速连接接收所述前端服务器迁移的数据请求;所述数据请求,是客户端基于第一快速连接发送至所述前端服务器的请求;
目标数据获取模块,用于响应于所述数据请求,创建与所述客户端之间的伪连接,以及获取所述数据请求对应的目标数据;
数据包发送模块,用于通过所述伪连接向所述客户端发送封装了所述目标数据的数据包。
20.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至17中任一项所述的方法的步骤。
21.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至17中任一项所述的方法的步骤。
22.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至17中任一项所述的方法的步骤。
CN202310150980.2A 2023-02-07 2023-02-07 数据请求的处理方法、装置、计算机设备和存储介质 Pending CN118474103A (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202310150980.2A CN118474103A (zh) 2023-02-07 2023-02-07 数据请求的处理方法、装置、计算机设备和存储介质
PCT/CN2023/130699 WO2024164601A1 (zh) 2023-02-07 2023-11-09 数据请求的处理方法、装置、计算机设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310150980.2A CN118474103A (zh) 2023-02-07 2023-02-07 数据请求的处理方法、装置、计算机设备和存储介质

Publications (1)

Publication Number Publication Date
CN118474103A true CN118474103A (zh) 2024-08-09

Family

ID=92161201

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310150980.2A Pending CN118474103A (zh) 2023-02-07 2023-02-07 数据请求的处理方法、装置、计算机设备和存储介质

Country Status (2)

Country Link
CN (1) CN118474103A (zh)
WO (1) WO2024164601A1 (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8478813B2 (en) * 2010-04-28 2013-07-02 Microsoft Corporation Transparent migration of endpoint
US8812727B1 (en) * 2011-06-23 2014-08-19 Amazon Technologies, Inc. System and method for distributed load balancing with distributed direct server return
CN104660550B (zh) * 2013-11-20 2019-03-01 北京邮电大学 一种在多服务器之间进行会话迁移的方法
CN108011929B (zh) * 2017-11-14 2020-08-25 平安科技(深圳)有限公司 数据请求处理方法、装置、计算机设备和存储介质
CN115665500A (zh) * 2022-10-19 2023-01-31 阿里巴巴(中国)有限公司 调度处理方法、装置、设备及存储介质

Also Published As

Publication number Publication date
WO2024164601A1 (zh) 2024-08-15

Similar Documents

Publication Publication Date Title
US20200358886A1 (en) Data Transmission Method, Apparatus, And System
TWI473455B (zh) 機載通訊網路
EP3211852A1 (en) Ssh protocol-based session parsing method and system
WO2014101402A1 (zh) 应用识别方法、数据挖掘方法、装置及系统
WO2017000720A1 (zh) Ott媒体的组播传输方法、装置及系统
WO2021068973A1 (zh) 一种基于应用层协议的数据通信方法及其装置
US10764411B2 (en) Stream control transmission protocol SCTP-based communications method and system, and apparatus
CN110445723B (zh) 一种网络数据调度方法及边缘节点
CN113326155A (zh) 一种信息处理方法、装置、系统和存储介质
WO2012167531A1 (zh) 一种数据快速分发方法和装置
WO2022143468A1 (zh) 数据传输方法、装置、系统及存储介质
WO2011140910A1 (zh) 业务处理单元和方法以及业务控制网关和负载均衡方法
CN112631788A (zh) 数据传输方法及数据传输服务器
WO2023151264A1 (zh) 负载均衡方法、装置、节点及存储介质
CN112100146B (zh) 一种高效的纠删分布式存储写入方法、系统、介质及终端
CN113810349B (zh) 数据传输方法、装置、计算机设备和存储介质
WO2017148419A1 (zh) 数据传输方法及服务器
WO2022100199A1 (zh) 数据传输方法、装置、介质、电子设备及网络接入设备
US8819107B2 (en) Relay apparatus, recording medium storing a relay program, and a relay method
WO2023109891A1 (zh) 组播传输方法、装置和系统
CN103916906A (zh) 对用户数据报文分发处理的方法、设备与系统
CN118474103A (zh) 数据请求的处理方法、装置、计算机设备和存储介质
CN114244850B (zh) 数据包处理方法、装置、计算机设备和存储介质
CN111464448B (zh) 一种数据传输方法及装置
US20190373085A1 (en) Transfer apparatus, transfer method, and program

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination