CN118101782A - 一种数据传输的方法、装置、电子设备及存储介质 - Google Patents
一种数据传输的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN118101782A CN118101782A CN202211436459.7A CN202211436459A CN118101782A CN 118101782 A CN118101782 A CN 118101782A CN 202211436459 A CN202211436459 A CN 202211436459A CN 118101782 A CN118101782 A CN 118101782A
- Authority
- CN
- China
- Prior art keywords
- link
- data stream
- stream
- transmission
- connection identifier
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 116
- 238000000034 method Methods 0.000 title claims abstract description 115
- 230000004044 response Effects 0.000 claims description 48
- 238000001514 detection method Methods 0.000 claims description 36
- 238000012545 processing Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 18
- 238000004891 communication Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 4
- 238000002474 experimental method Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000010791 quenching Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000011895 specific detection Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供一种数据传输的方法、装置、电子设备以及存储介质,涉及数据传输技术领域。该方法包括:根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在该第一链路传输的第一数据流和在该第二链路传输的第二数据流,其中,该第一链路对应的该第一装置的物理地址与该第二链路对应的该第一装置的物理地址不同,该第一链路和该第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;根据该第一链路的第一发送流,向该第二装置发送该第一数据流;根据该第二链路的第一发送流,向该第二装置发送该第二数据流。该方法实现了应用QUIC协议建立设备之间的多条物理链路来传输数据,进而提高设备之间数据传输的带宽,提高用户体验度。
Description
技术领域
本申请涉及通信领域,并且具体的,涉及一种数据传输的方法、装置、电子设备及存储介质。
背景技术
快速用户数据报协议(User Datagram Protocol,UDP)互联网连接(Quick UDPInternet Connection,QUIC)协议是一种基于UDP的低时延的互联网传输层协议,相比其他协议有一些明显优势,QUIC协议工作于应用层不需要内核支持,QUIC协议在保证可靠性的同时可以降低网络延迟,改进的拥塞控制,更优的多路复用。但是根据QUIC协议建立的QUIC路径,无法突破实际物理链路的性能瓶颈,在物理链路性能约束的情况下,QUIC单路径可能也无法达到更高的传输带宽。
随着网络技术的发展,设备之间的连接方式越来越丰富,从一个设备到另一个设备会有多种连接方式。如何将QUIC协议应用于设备之间的多种连接方式,建立设备之间的多条物理链路来传输数据,进而提高设备之间数据传输的带宽,提高用户体验度,是一项亟待解决的问题。
发明内容
本申请实施例提供了一种数据传输的方法,实现了应用QUIC协议建立设备之间的多条物理链路来传输数据,进而提高设备之间数据传输的带宽,提高用户体验度。
第一方面,本申请实施例提供了一种数据传输的方法,所述方法应用于第一装置,包括:
根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,
其中,所述第一链路和所述第二链路是所述第一装置与第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;
根据所述第一链路的第一发送流,向所述第二装置发送所述第一数据流;
根据所述第二链路的第一发送流,向所述第二装置发送所述第二数据流。
第二方面,本申请实施例提供了一种数据传输的方法,所述方法应用于第二装置,包括:
根据第一链路的第一接收流,接收第一装置发送的第一数据流;
根据第二链路的第一接收流,接收所述第一装置发送的第二数据流,
其中,所述第一链路和所述第二链路是所述第一装置与所述第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;
根据所述第一数据流和所述第二数据流,确定第一业务数据流。
第三方面,本申请实施例提供了一种数据传输的装置,包括:
处理单元,用于根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,
其中,所述第一链路和所述第二链路是所述第一装置与第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;
收发单元,用于根据所述第一链路的发送流,向所述第二装置发送所述第一数据流;
所述收发单元还用于根据所述第二链路的发送流,向所述第二装置发送所述第二数据流。
第四方面,本申请实施例提供了一种数据传输的装置,包括:
收发单元,用于根据第一链路的接收流,接收第一装置发送的第一数据流;
所述收发单元还用于根据第二链路的接收流,接收所述第一装置发送的第二数据流,
其中,所述第一链路和所述第二链路是所述第一装置与所述第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;
处理单元,用于根据所述第一数据流和所述第二数据流,确定第一业务数据流。
第五方面,本申请实施例本申请提供了一种电子设备,包括:
处理器,适于实现计算机指令;以及,
存储器,存储有计算机指令,计算机指令适于由处理器加载并执行上述第一方面的方法或者上述第二方面的方法。
第六方面,本申请实施例提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机指令,该计算机指令被计算机设备的处理器读取并执行时,使得计算机设备执行上述第一方面的方法或者上述第二方面的方法。
第七方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述第一方面的方法或者上述第二方面的方法。
通过上述技术方案,所述第一装置与所述第二装置之间建立了两条支持QUIC协议的第一链路和第二链路,所述第一装置可以根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,然后通过所述第一链路的第一发送流,向所述服务端设备发送所述第一数据流,通过所述第二链路的第一发送流,向所述服务端设备发送所述第二数据流,这样通过支持QUIC协议的第一链路和第二链路进行所述第一装置与所述第二装置之间的所述第一业务的数据传输,可以突破实际单条物理链路本身的性能瓶颈,大大提高了网络带宽和网络传输速度,提高了用户的体验度。
附图说明
图1为本申请实施例涉及的系统架构的一个可选的示意图;
图2为本申请实施例提供的一种数据传输的方法的示意性流程图;
图3为本申请实施例提供的第一装置与第二装置之间的两条QUIC链路的示意性框图;
图4为本申请实施例提供的一种建立QUIC多路径的方法300的示意性流程图;
图5是本申请实施例涉及的实验场景的一个可选的示意图;
图6是本申请实施提供的QUIC单路径和QUIC多路径链路性能参数示意图;
图7是本申请实施例的装置的示意性框图;
图8是本申请实施例的装置的示意性框图;
图9为本申请实施例提供的电子设备的示意性框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
图1为本申请实施例涉及的系统架构100的一个可选的示意图。如图1所示,系统架构100包括客户端设备110和服务端设备120,其中,客户端设备110和服务器120之间可以通过有线或无线方式进行通信交互。
客户端设备110支持QUIC协议,客户端设备110可以是无线终端设备也可以是有线终端设备,无线终端设备可以是指一种具有无线收发功能的设备,可以是智能手机、平板电脑(Pad)、智能音箱、智能手表、笔记本电脑、虚拟现实(Virtual Reality,VR)用户设备、增强现实(Augmented Reality,AR)用户设备、车载设备、可穿戴设备等,有线终端可以是台式计算机、服务器等,但并不局限于此。终端以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
服务端设备120同样支持QUIC协议,服务端设备120可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。
QUIC协议是一种基于用户数据包协议(User Datagram Protocol,UDP)的传输协议,相比其他协议有一些明显优势,QUIC协议工作于应用层不需要内核支持。QUIC协议保证可靠性的同时降低了网络延迟,其具有更优的拥塞控制、更优的多路复用、链接迁移等优点,提升了单物理路径的性能。因此,QUIC协议在互联网领域得到广泛的应用。
QUIC数据包分为包头Header和数据Data部分,其中Header是明文传输,Header中包括标志位(Flags),连接标识(Connection ID,CID),CID可用于连接迁移,QUIC Version是QUIC的版本号,Packet Number是包序号,用于保证可靠传输;Data部分是密文传输,Data包括一些数据帧,数据帧包括多种帧类型。
图1所示的客户端设备110和服务端设备120建立网络连接,客户端设备110可以通过服务端设备120观看直播内容。在现有的直播推流、拉流、点播、内容分发网络(ContentDelivery Network,CDN)等流媒体传输场景下,往往需要消耗大量的网络资源,如对网络带宽、网络传播速度等要求较高。目前,在这些流媒体传输场景下,设备之间采用QUIC协议建立网络连接,虽然在一定程度上可以降低网络延迟,但是,无法突破实际物理链路本身的性能瓶颈,在物理链路性能约束的情况下,QUIC单路径可能也无法达到更高的传输带宽,使得用户的体验感依然不佳。
随着网络技术的发展,客户端设备的网络接入方式越来越丰富,从一个终端到另一个终端会有无线网络保真技术(Wireless Fidelity,WIFI)/4G/5G等多链路可达,这为多路径的实现提供了物理基础。如何充分利用多条链路进行并行的传输提高传输带宽、利用多条链路作为链路备份提高链路的稳定性,对需要消耗大量网络资源传输的流媒体场景有重要的意义。在这些场景下,如果可以利用QUIC协议建立多条物理链路,多路径把多条能力有限的路径叠加得到一条能力更高能力的逻辑路径,这样可以大大提高传输速度、增大网络带宽,进而满足了流媒体场景下对网络资源的要求。
因此,本申请提出了一种数据传输的方法,该方法在客户端设备与服务端设备之间建立了支持QUIC协议的链路,分别为第一链路和第二链路,客户端设备可以根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,然后通过所述第一链路的第一发送流,向所述服务端设备发送所述第一数据流,通过所述第二链路的第一发送流,向所述服务端设备发送所述第二数据流,通过支持QUIC协议的第一链路和第二链路进行所述客户端设备与所述服务端设备之间的数据传输,大大提高了网络带宽和网络传输速度,提高了用户的体验度。
以下结合附图对本申请实施例提供的方案进行描述。
图2为本申请实施例提供的一种数据传输的方法200的示意性流程图。方法200可以由任何具有数据处理能力的电子设备执行。例如,该电子设备可实施为服务器或计算机。下面以该电子设备是第一装置为例进行说明。如图2所示,方法200可以包括步骤210至260。
为了更清楚的理解方法200。在描述该方法的步骤之前,简单描述一下所述第一装置与所述第二装置之间建立的两条QUIC链路。所述第一装置与所述第二装置之间建立的两条QUIC链路,分别为第一链路和第二链路,QUIC协议采用的数据流一般为单向流,因此所述第一链路包括第一发送流和第二发送流,所述第一发送流用于所述第一装置向所述第二装置发送数据,相应的,所述第二装置通过所述第一发送流接收所述第一装置发送的数据,所述第一发送流对所述第二装置而言,也可以称作第一接收流;所述第二发送流用于所述第二装置向所述第一装置发送数据,相应的,所述第一装置通过所述第二发送流接收所述第二装置发送的数据,所述第二发送流对所述第一装置而言,也可以称作第二接收流;同样,所述第二链路包括第一发送流和第二发送流,所述第一发送流用于所述第一装置向所述第二装置发送数据,相应的,所述第二装置通过所述第一发送流接收所述第一装置发送的数据,所述第一发送流对所述第二装置而言,也可以称作第一接收流;所述第二发送流用于所述第二装置向所述第一装置发送数据,相应的,所述第一装置通过所述第二发送流接收所述第二装置发送的数据,所述第二发送流对所述第一装置而言,也可以称作第二接收流,所述第一链路和所述第二链路用单向流标识(unique flow identification,UID)标记,所述第一链路标识为第一UID,所述第二链路标识为第二UID,所述第一链路的第一发送流的标识为第一连接标识(connection identification,CID),所述第一链路的第二发送流的标识为第二CID,所述第二链路的第一发送流的标识为第三CID,所述第二链路的第二发送流的标识为第四CID。
应理解,在所述第一装置与所述第二装置之间建立两条QUIC链路,至少需要所述第一装置有两条可用的物理链路,如所述第一装置分别安装两张网卡,分别为网卡1和网卡2,网卡1的IP地址为IP1,网卡2的IP地址为IP2,所述第二装置至少有一条可用的物理链路,如所述第二装置安装一张网卡,为网卡3,网卡3的IP地址为IP3,如图3所示,图3为本申请实施例提供的第一装置与第二装置之间的两条QUIC链路的示意性框图。
下面对方法200的具体步骤进行描述。
S210,第一装置根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,其中,所述第一链路和所述第二链路是所述第一装置与第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路。
S220,所述第一装置根据所述第一链路的第一发送流,向所述第二装置发送所述第一数据流。
S230,所述第一装置根据所述第二链路的第一发送流,向所述第二装置发送所述第二数据流。
S240,所述第二装置根据第一链路的第一接收流,接收所述第一装置发送的第一数据流。
S250,所述第二装置根据第二链路的第一接收流,接收所述第一装置发送的第二数据流。
S260,所述第二装置根据所述第一数据流和所述第二数据流,确定所述第一业务数据流。
在方法200中,所述第一装置与所述第二装置之间建立了两条支持QUIC协议的第一链路和第二链路,所述第一装置可以根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,然后通过所述第一链路的第一发送流,向所述服务端设备发送所述第一数据流,通过所述第二链路的第一发送流,向所述服务端设备发送所述第二数据流,这样通过支持QUIC协议的第一链路和第二链路进行所述第一装置与所述第二装置之间的所述第一业务的数据传输,可以突破实际单条物理链路本身的性能瓶颈,大大提高了网络带宽和网络传输速度,提高了用户的体验度。
还应理解,建立多路径QUIC链路,还可以提高系统稳定性,如在所述第一链路出现故障时,还能继续使用所述第二链路进行所述第一装置与所述第二装置之间的数据传输。
可选的,所述第一链路对应的所述第二装置的物理地址与所述第二链路对应的所述第二装置的物理地址不同。
具体而言,所述第二物理装置也可以安装有两张不同的网卡,如网卡3和网卡4,网卡3的IP地址为IP3,网卡4的IP地址为IP4,所述第一链路为网卡1至网卡3的链路,所述第二链路为网卡2至网卡4的链路。
可选的,当所述第一装置将所述第一业务数据流分配在所述第一链路和所述第二链路同时传输时,为了使得所述第二装置在接收到所述第一链路的所述第一数据流和所述第二链路的第二数据流时,可以确定所述第一业务数据流,即为了保证数据的有序性,所述第一装置可以在所述第一数据流和所述第二数据流分别对应的数据包中添加偏移量offset,所述偏移量指示了其所在的数据包在原始数据包即第一业务数据流的位置,所述第二装置根据所述第一数据流和所述第二数据流分别对应的数据包中的offset字段,对所述第一数据流和所述第二数据流分别对应的数据包进行排序,从而确定所述第一业务数据流。
可选的,所述方法200还包括:
所述第二装置根据第一链路的带宽和第二链路的带宽,分配第二业务数据流在所述第一链路传输的第三数据流和在所述第二链路传输的第四数据流;
所述第二装置根据所述第一链路的第二发送流,向所述第二装置发送所述第三数据流;
所述第二装置根据所述第二链路的第二发送流,向所述第二装置发送所述第四数据流;
所述第一装置根据第一链路的第二接收流,接收所述第二装置发送的第三数据流;
所述第一装置根据第二链路的第二接收流,接收所述第二装置发送的第四数据流;
所述第一装置根据所述第三数据流和所述第四数据流,确定所述第二业务数据流。
以上描述了所述第一装置与所述第二装置之间如何在多条QUIC链路间发送数据的过程。下面具体描述所述第一装置与所述第二装置之间如何建立QUIC多路径。应理解,所述方法300在步骤S210之前执行。
图4为本申请实施例提供的一种建立QUIC多路径的方法300的示意性流程图。方法300可以由任何具有数据处理能力的电子设备执行。例如,该电子设备可实施为服务器或计算机。下面以该电子设备是第一装置为例进行说明。如图4所示,方法300可以包括步骤310至330。
S301,所述第一装置向所述第二装置发送建链请求消息,所述建链请求消息包括第一连接标识,所述第一连接标识是所述第一链路的第一发送流的连接标识,所述建链请求消息还包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数。
相应的,所述第二装置接收所述第一装置发送的建链请求消息。
S302,所述第二装置根据所述建链请求消息,向所述第一装置发送反馈消息,所述反馈消息包括第二连接标识,所述第二连接标识为所述第一链路的第二发送流的连接标识,所述反馈消息还包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数。
相应的,所述第一装置接收所述第二装置发送的反馈消息。
S303,所述第一装置向所述第二装置发送认证通过,确认建立初始QUIC链路的消息。
S304,所述第一装置根据所述反馈消息,生成所述第一链路的参数信息,所述第一链路的参数信息包括:所述第一连接标识、所述第二连接标识和所述第一链路的链路标识。
S305,所述第二装置根据所述建链请求消息,生成所述第一链路的参数信息,所述第一链路的参数信息包括:所述第一连接标识、所述第二连接标识和所述第一链路的链路标识。
应理解,所述第一链路为所述第一装置与所述第二装置之间建立的第一条QUIC链路。
应理解,在所述第一装置与所述第二装置初始建立QUIC连时,所述第一装置可以和所述第二装置交换各自是否具备所述QUIC协议多路径的能力和/或各自支持的所述QUIC协议多路径的个数。即,所述第一装置向所述第二装置发送的建链请求消息可以包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数,以及所述第二装置根据所述建链请求消息向所述第一装置发送的反馈消息可以包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数。
还应理解,在所述第一装置与所述第二装置初始建立QUIC连时,所述第一装置可以和所述第二装置不交换各自是否具备所述QUIC协议多路径的能力和/或各自支持的所述QUIC协议多路径的个数,即,所述第一装置与所述第二装置只建立单条链路的QUIC连接,所述建链请求消息包括第一连接标识。在当所述第一装置检测到所述当前发送流的带宽,当前发送速率不能满足所述第一业务的要求时,所述第一装置向所述第二装置发送第一消息,所述第一消息包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数,所述第二装置接收到所述第一消息,向所述第一装置发送第二消息,所述第二消息包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数。然后,所述第一装置和所述第二装置协商QUIC多路径。
可选的,所述建链请求消息可以是客户问候(client hello)报文,所述clienthello报文包括第一公开数,所述第一公开数用于所述第二装置信生成通密钥,所述第二装置根据随机生成的私钥和所述第一公开数生成所述通信密钥。
可选的,所述反馈消息可以是拒绝(reject)报文,所述reject报文包括第二公开数,所述第二公开数是所述第二装置配置参数,所述第二公开数用于所述第一装置信生成通信密钥,所述第一装置根据随机生成的私钥和所述第二公开数生成所述通信密钥。
具体而言,所述client hello报文和所述reject报文是所述第一装置与所述第二装置建立初始的QUIC连接时相互发送的报文,主要用于通信双方的验证。
一般而言,QUIC连接仅需要1次往返时延(Round-Trip Time,RTT)就可以完成通信密钥的协商。当然,在所述第一装置缓存了所述第二装置的配置参数,如上述第二参数的情况下,所述第一装置可以向所述第二装置发送所述client hello报文,所述第一装置基于所述第二装置的配置参数,计算通信密钥,加密向所述第二装置发送应用数据,所述第二装置根据所述client hello报文计算通信密钥,也就是说,所述第一装置不需要经过握手就可以发送应用数据,这就是0-RTT握手。有关QUIC连接通过1次RTT协商通信密钥的过程以及QUIC连接0次RTT的过程可以参考现有的QUIC连接流程,此处不再赘述。
应理解的是,所述第一装置可以在与所述第二装置建立QUIC连接时,就携带所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数,如上述的client hello报文包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数,所述第二装置接收到所述clienthello报文,所述第二装置向所述第一装置发送的所述reject报文包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数;或者,在所述第一装置与所述第二装置已经建立所述第一链路时,在所述第一装置检测到所述当前发送流的带宽或者当前发送速率不能满足所述第一业务的要求时,所述第一装置可以向所述第二装置协商建立所述第二链路,所述第一装置向所述第二装置发送第一消息,所述第一消息包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数,所述第二装置接收到所述第一消息,向所述第一装置发送第二消息,所述第二消息包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数。然后,所述第一装置与所述第二装置建立所述第二链路。
通过所述第一装置向所述第二装置发送所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数,所述第二装置向所述第一装置发送所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数,所述第一装置与所述第二装置获得了对端支持的多路径的能力,但所述第二链路并没有开启,因此还需要进行下述步骤:
S306,所述第一装置通过所述第二链路,向所述第二装置发送第一检测消息,所述第一检测消息包括第一路径检测帧,所述第一路径检测帧包括所述第三连接标识;
相应的,所述第二装置通过所述第二链路,接收所述第一装置发送的所述第一检测消息;
S307,所述第二装置生成所述第二链路的第一发送流的参数信息,所述第二链路的第一发送流的参数信息包括:第三连接标识和所述第二链路的链路标识,所述第二链路的链路标识为第二链路标识;
S308,所述第二装置通过所述第二链路,向所述第一装置发送第一响应消息,所述第一响应消息包括第一路径响应帧;
相应的,所述第一装置通过所述第二链路,接收所述第二装置发送的第一响应消息,所述第一响应消息包括第一路径响应帧;
S309,所述第一装置根据所述第一响应消息,生成所述第二链路的第一发送流的参数信息,所述第二链路的发送流的参数信息包括:第三连接标识和所述第二链路的链路标识。
具体而言,所述第一装置创建所述第二链路上的第一发送流。所述第一装置在所述第二链路上发送第一路径检测帧,如PATH_CHALLENGE帧;所述第二装置接收到PATH_CHALLENGE帧后,检查是否开启多路径,如所述第二装置开启了多路径,所述第二装置创建第二链路和所述第二链路的第一接收流,所述第二装置生成所述第二链路的第一接收流的参数信息,所述第二链路的第一接收流的参数信息包括:第三连接标识和所述第二链路的链路标识,所述第三连接标识为所述第二链路的第一发送流的连接标识,所述第二链路的链路标识为第二链路标识。所述第二装置向所述第一装置发送所述第一响应消息,如PATH_RESPONSE帧,所述第一装置接收到所述第一响应消息后,生成所述第二链路的第一发送流的参数信息。
可选的,所述第二链路标识与所述第一链路标识可以是连续递增的排列顺序。如所述第一链路标识为1,所述第二链路标识为2。
此时,所述第一装置可以在所述第二链路的第一发送流上向所述第二装置发送数据,但是反向的数据发送通道还没建立,即所述第二装置还无法向所述第一装置发送数据,需要还需要下述步骤:
S310,所述第二装置通过所述第二链路,向所述第一装置发送第二检测消息,所述第一检测消息包括第二路径检测帧;
相应的,所述第一装置通过所述第二链路,接收所述第二装置发送的所述第二检测消息;
S311,所述第一装置生成所述第二链路的第二发送流的参数信息,所述第二链路的第二发送流的参数信息包括:第四连接标识和所述第二链路的链路标识,所述第四连接标识为所述第二链路的第二发送流的连接标识,所述第二链路的链路标识为第二链路标识;
S312,所述第一装置通过所述第二链路,向所述第二装置发送第二响应消息,所述第二响应消息包括第二路径响应帧;
相应的,所述第二装置通过所述第二链路,接收所述第一装置发送的第二响应消息;
S313,所述第二装置根据所述第二响应消息,生成所述第二链路的第二发送流的参数信息,所述第二链路的发送流的参数信息包括:第四连接标识和所述第二链路的链路标识,所述第四连接标识为所述第二链路的发送流的连接标识,所述第二链路的链路标识为第二链路标识。
具体而言,所述第二装置创建所述第二链路上的第二发送流。所述第二装置在所述第二链路上发送第二路径检测帧,如PATH_CHALLENGE帧;所述第一装置接收到PATH_CHALLENGE帧后,检查是否开启多路径,如所述第一装置开启了多路径,所述第一装置创建所述第二链路和所述第二链路的第二接收流,所述第二装置生成所述第二链路的第二接收流的参数信息,所述第二链路的第二接收流的参数信息包括:第四连接标识和所述第二链路的链路标识,所述第四连接标识为所述第二链路的发送流的连接标识,所述第二链路的链路标识为第二链路标识。所述第一装置向所述第二装置发送所述第二响应消息,如PATH_RESPONSE帧,所述第二装置接收到所述第一响应消息后,生成所述第二链路的第二发送流的参数信息,第二发送流的参数信息。
应理解,所述第二链路是所述第一装置与所述第二装置之间除了所述第一链路以外的其他QUIC链路,所述第二链路可以包括一条链路,也可以包括多条链路,如果所述第二链路包括多条链路,那么所述多条链路的链路标识可以采用按序递增的顺序,如所述第一链路的链路标识为1,则第一条所述第二链路的链路标识为2,所述第二条所述第二链路的链路标识为3等。
经过上述过程,所述第一装置与所述第二装置之间建立了多条QUIC路径,它们之间可以通过多条QUIC路径来收发数据流。一个完整的多路径系统还包含路径状态管理、路径能力评估、数据流发包决策等功能模块。
路径状态管理可以包含:检查路径是否活跃和剔除失效路径,下面分别描述检查路径是否活跃和剔除失效路径。
可选的,所述方法200还包括:
所述第一装置确定所述第一链路的第一发送流和/或所述第二链路的第一发送流是否有效;
当所述第一装置确定所述第一链路的第一发送流无效时,所述第一装置通过所述第二链路的第一发送流向所述第二装置发送路径剔除消息,所述路径剔除消息包括所述第一连接标识,或者,
当所述第一装置确定所述第二链路的第一发送流无效时,所述第一装置通过所述第一链路的第一发送流向所述第二装置发送路径剔除消息,所述路径剔除消息包括所述第三连接标识。
可选的,所述方法200还包括:
所述第二装置通过所述第二链路的第一接收流接收所述第一装置发送的所述路径剔除消息;
所述第二装置根据所述路径剔除消息,删除所述第一连接标识标记的所述第一链路的第一发送流。
可选的,所述方法200还包括:
所述第二装置通过所述第一链路的第一接收流接收所述第一装置发送的所述路径剔除消息;
所述第二装置根据所述路径剔除消息,删除所述第三连接标识标记的所述第二链路的第一发送流。
可选的,所述第一装置确定所述第一链路是否有效,包括:
所述第一装置通过所述第一链路的第一发送流向所述第二装置发送路径状态检测消息;
当所述第一装置通过所述第一链路的第二接收流,接收到所述第二装置发送的路径状态响应消息时,确定所述第一链路的第一发送流有效;
所述第一装置通过所述第一链路的第二接收流,没有接收到所述第二装置发送的路径状态响应消息时,确定所述第一链路的第一发送流无效。
可选的,所述路径状态检测消息可以是数据包,所述路径状态响应消息可以是ACK帧。
可选的,所述路径状态检测消息可以是ping帧,所述路径状态响应消息可以是PONG帧。
可选的,所述第一装置在检测所述第一链路是否有效时,可以基于ACK和PING帧双重检查路径的活跃状态。
具体而言,当所述第一链路的第一发送流上预设时间内有数据发送,并接收到所述第二装置发送的ACK帧时,则认为所述第一链路是活跃的;否则,在所述第一链路的第一发送流上发送PING帧,如果所述第二装置能在预设时间内时响应PONG帧,则认为所述第一链路是活跃的,否则继续在所述第一链路的第一发送流上发送PING帧(间隔发送时间1/2/4/8)最多发送5个PING帧,如果所述第二装置能在预设时间内都没有响应,则所述第一链路无效。当路径失效后,触发路径剔除,通过所述第二链路的第一发送流发送PATH_ABANBON帧,携带需要剔除的第一链路标识,通知所述第二装置剔除所述第一路径。
应理解,所述第一链路的第二发送流和所述第二链路的第二发送流由所述第二装置检测是否有效,具体检测过程可以参考上述所述第一装置检测所述第一链路的第一发送流和所述第二链路的第一发送流的过程,此处不再赘述。
下面描述路径能力评估。路径能力评估包含几个部分:路径带宽评估、路径拥塞处理等。QUIC协议本身支持瓶颈带宽和往返时延(Bottleneck Bandwidth and RTT,BBR)、CBUIC(CBUIC算法是二进制增加阻塞传输控制协议(Binary Increase Congestion-Transmission Control Protocol,BIC-TCP)的改进版本)等拥塞算法,所述第一装置与所述第二装置可以根据用赛算法提取的RTT和单位时间的发送的数据量,实时估计每条路径的带宽,所述第一装置与所述第二装置根据用赛算法提取RTT和单位时间的发送的数据量,可以参考现有技术,本申请不再叙述。
可选的,所述第一装置根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,包括:
根据所述第一链路的带宽和所述第二链路的带宽,调整所述第一业务数据流的发送窗口,所述发送窗口包括第一子窗口和第二子窗口,所述第一子窗口对应所述第一链路的发送流,所述第二子窗口对应所述第二链路的发送流;
根据所述第一子窗口,通过所述第一链路传输所述第一数据流;
根据所述第二子窗口,通过所述第二链路传输所述第二数据流。
具体而言,所述第一链路和所述第二链路这两条不同的物理链路可以看成一条逻辑链路,所述逻辑链路用于传输所述第一业务数据流。所述逻辑链路对应一个发送窗口,所述发送窗口包括第一子窗口和第二子窗口,所述第一子窗口对应所述第一链路的发送流,所述第二子窗口对应所述第二链路的发送流。根据所述第一链路的带宽和所述第二链路的带宽,动态调整所述第一子窗口和所述第二子窗口,达到动态调整各路径的发送能力。
可选的,在所述第一子窗口与所述第二子窗口的初始窗口大小相同。
具体而言,在所述第一装置通过所述第一链路与所述第二链路初始传输所述第一业务数据流时建立多路径之初,所述第一链路把所述发送窗口均分给所述第一链路与所述第二链路,确保每条路径都有机会发送流数据。
可选的,所述第一装置根据当前拥塞算法里面提取的RTT和单位时间的发送的数据量,估计所述第一链路与所述第二链路的带宽,然后根据估计出的带宽比例,动态调整所述第一子窗口与所述第二子窗口。
上述方法实现了应用QUIC协议建立设备之间的多条物理链路来传输数据,有效解决了因为单条物理链路的性能瓶颈而引起带宽较低、帧率降低的问题,提高了用户体验度。为了更直观的展示该效果,下面通过一组实验进行说明。
图5是本申请实施例涉及的实验场景的一个可选的示意图。如图5所示,系统架构400包括客服务器410、服务器420、服务器430、服务器440和用户设备450,其中,服务器410上有两张网卡,网卡0和网卡1,通过限速工具来限制物理链路的带宽能力,设置网卡0的带宽为2.4Mbps,网卡1网卡的带宽为1.6Mbps,服务器420有一张网卡,网卡2。
本次实验需要对比QUIC单路径和QUIC多路径的性能,RTMP OVER QUIC单路径通过所述服务器410的网卡0到所述服务器420之间的物理链路推流。所述服务器410与所述服务器420之间的QUIC多路径,为第一链路和第二链路,分别是通过所述服务器410的网卡0到所述服务器420的网卡2之间的物理链路和通过所述服务器410的网卡1到所述服务器420的网卡2之间的物理链路,所述服务器410通过实时消息传输协议(Real Time MessagingProtocol,rtmp)over quic工具推流,将本地的流数据通过所述第一链路和所述第二链路传输至所述服务器420,所述服务器420将流数据传输到所述服务器430,所述服务器430可以是第三方机房,用于给用户设备提供应用数据,所述服务器430将接收到的流数据发送给所述服务器440,所述服务器440可以是用户接入的服务网络,用户设备450从所述服务器440处拉流播放。
在实验过程中,所述服务器410使用RTMP OVER QUIC单路径、RTMP OVER QUIC多路径工具分别推码率为3Mbps、帧率为30帧的码流,然后在直播系统的统计平台、用户侧播放推流的效果,进行对比实验。
经过对比实验表明:使用RTMP OVER QUIC单路径方式推流30帧、3Mbps的码流,在直播平台统计的平均帧率为25帧左右,观测侧的画面也由偶尔卡顿。使用RTMP OVER QUIC多路径方式推流30帧、3Mbps的码流,在直播平台统计的平均帧率为30帧左右,观众侧的画面更加流畅。对比数据如图6所示,图6是本申请实施提供的QUIC单路径和QUIC多路径链路性能参数示意图。在图6中,实线为QUIC单路径,虚线为QUIC多路径,由图6所提供的数据,可以看到QUIC多路径能突破单条物理链路的能力限制,通过叠加多条物理链路的能力,实现更佳的效果。
以上结合附图详细描述了本申请的具体实施方式,但是,本申请并不限于上述实施方式中的具体细节,在本申请的技术构思范围内,可以对本申请的技术方案进行多种简单变型,这些简单变型均属于本申请的保护范围。例如,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合,为了避免不必要的重复,本申请对各种可能的组合方式不再另行说明。又例如,本申请的各种不同的实施方式之间也可以进行任意组合,只要其不违背本申请的思想,其同样应当视为本申请所公开的内容。
还应理解,在本申请的各种方法实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。应理解这些序号在适当情况下可以互换,以便描述的本申请的实施例能够以除了在图示或描述的那些以外的顺序实施。
上文结合图1至图6,详细描述了本申请的方法实施例,下文结合图7至图9,详细描述本申请的装置实施例。
图7是本申请实施例的装置500的示意性框图,该装置500可以实现上述方法中第一装置的功能。如图7所示,装置500可包括处理单元510和收发单元520。
处理单元510,用于根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,
其中,所述第一链路和所述第二链路是所述第一装置与第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路。
收发单元520,用于根据所述第一链路的发送流,向所述第二装置发送所述第一数据流;
所述收发单元520还用于根据所述第二链路的发送流,向所述第二装置发送所述第二数据流。
在一些实施例中,在所述根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流之前,所述收发单元520还用于:
向所述第二装置发送建链请求消息,所述建链请求消息包括第一连接标识,所述第一连接标识是所述第一链路的发送流的连接标识,所述建链请求消息还包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数;
接收所述第二装置发送的反馈消息,所述反馈消息包括第二连接标识,所述第二连接标识为所述第一链路的第二发送流的连接标识,所述反馈消息还包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数;
所述处理单元510还用于:
根据所述反馈消息,生成所述第一链路的参数信息,所述第一链路的参数信息包括:所述第一连接标识、所述第二连接标识和所述第一链路的链路标识,所述第一链路的链路标识为第一链路标识。
在一些实施例中,所述收发单元520还用于:
通过所述第二链路,向所述第二装置发送第一检测消息,所述第一检测消息包括第一路径检测帧;
通过所述第二链路,接收所述第二装置发送的第一响应消息,所述第一响应消息包括第一路径响应帧;
所述处理单元510还用于:
根据所述第一响应消息,生成所述第二链路的发送流的参数信息,所述第二链路的发送流的参数信息包括:第三连接标识和所述第二链路的链路标识,所述第三连接标识为所述第二链路的发送流的连接标识,所述第二链路的链路标识为第二链路标识。
在一些实施例中,所述收发单元520还用于:
通过所述第二链路,接收所述第二装置发送的第二检测消息,所述第二检测消息包括第二路径检测帧;
通过所述第二链路,向所述第二装置发送第二响应消息,所述第二响应消息包括第二路径响应帧。
在一些实施例中,所述收发单元520还用于:
当确定所述第一链路的第一发送流无效时,通过所述第二链路的第一发送流向所述第二装置发送路径剔除消息,所述路径剔除消息包括所述第一连接标识;或者,
当所述第二链路的第一发送流无效时,通过所述第一链路的第一发送流向所述第二装置发送路径剔除消息,所述路径剔除消息包括所述第三连接标识。
在一些实施例中,所述处理单元510具体用于:
根据所述第一链路的带宽和所述第二链路的带宽,调整所述第一业务数据流的发送窗口,所述发送窗口包括第一子窗口和第二子窗口,所述第一子窗口对应所述第一链路的发送流,所述第二子窗口对应所述第二链路的发送流;
所述收发单元520还用于:
根据所述第一子窗口,通过所述第一链路传输所述第一数据流;
根据所述第二子窗口,通过所述第二链路传输所述第二数据流。
在一些实施例中,所述收发单元520还用于:
根据所述第一链路的接收流,接收第二装置发送的第三数据流;
根据所述第二链路的接收流,接收所述第二装置发送的第四数据流;
所述处理单元510还用于:
根据所述第三数据流和所述第四数据流,确定第二业务数据流。
在一些实施例中,所述第一链路对应的所述第二装置的物理地址与所述第二链路对应的所述第二装置的物理地址不同。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,当在该实施例中数据处理的装置500可以对应于执行本申请实施例的方法200或方法300的执行主体时,装置500中的各个模块的前述和其它操作和/或功能分别为了实现图2或图4中的各个方法相应流程,为了简洁,在此不再赘述。
图8是本申请实施例的装置600的示意性框图,该装置600可以实现上述方法中第二装置的功能。如图8所示,装置600可包括收发单元610和处理单元620。
所述收发单元610,用于根据第一链路的接收流,接收第一装置发送的第一数据流;
所述收发单元610,还用于根据第二链路的接收流,接收所述第一装置发送的第二数据流,
其中,所述第一链路和所述第二链路是所述第一装置与所述第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;
所述处理单元620,用于根据所述第一数据流和所述第二数据流,确定第一业务数据流。
在一些实施例中,在所述根据第一链路的第一接收流,接收第一装置发送的第一数据流之前,所述收发单元610还用于:
接收所述第一装置发送的建链请求消息,所述建链请求消息包括第一连接标识,所述第一连接标识是所述第一链路的发送流的连接标识,所述建链请求消息还包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数;
根据所述建链请求消息,向所述第一装置发送反馈消息,所述反馈消息包括第二连接标识,所述第二连接标识为所述第一链路的接收流的连接标识,所述反馈消息还包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数;
所述处理单元620还用于:
生成所述第一链路的参数信息,所述第一链路的参数信息包括:所述第一连接标识、所述第二连接标识和所述第一链路的链路标识,所述第一链路的链路标识为第一链路标识。
在一些实施例中,所述收发单元610还用于:通过所述第二链路,接收所述第一装置发送的第一检测消息,所述第一检测消息包括第一路径检测帧;
通过所述第二链路,向所述第一装置发送第一响应消息,所述第一响应消息包括第一路径响应帧。
在一些实施例中,所述收发单元610还用于:
通过所述第二链路,向所述第一装置发送第二检测消息,所述第一检测消息包括第二路径检测帧;
通过所述第二链路,接收所述第一装置发送的第二响应消息,所述第二响应消息包括第二路径响应帧;
所述处理单元620还用于:
根据所述第二响应消息,生成所述第二链路的发送流的参数信息,所述第二链路的发送流的参数信息包括:第四连接标识和所述第二链路的链路标识,所述第四连接标识为所述第二链路的发送流的连接标识,所述第二链路的链路标识为第二链路标识。
在一些实施例中,所述收发单元610还用于:
当所述第一链路的发送流无效时,通过所述第二链路的发送流向所述第一装置发送路径剔除消息,所述路径剔除消息包括所述第一链路标识;或者,
当所述第二链路的发送流无效时,通过所述第一链路的发送流向所述第一装置发送路径剔除消息,所述路径剔除消息包括所述第二链路标识。
在一些实施例中,所述处理单元620还用于:
根据第一链路的带宽和第二链路的带宽,分配第二业务数据流在所述第一链路传输的第三数据流和在所述第二链路传输的第四数据流;
所述收发单元610还用于:
根据所述第一链路的发送流,向所述第一装置发送所述第三数据流;
根据所述第二链路的发送流,向所述第一装置发送所述第四数据流。
在一些实施例中,所述第一链路对应的所述第二装置的物理地址与所述第二链路对应的所述第二装置的物理地址不同。
应理解,装置实施例与方法实施例可以相互对应,类似的描述可以参照方法实施例。为避免重复,此处不再赘述。具体地,当在该实施例中数据处理的装置600可以对应于执行本申请实施例的方法200或方法300的执行主体时,装置600中的各个模块的前述和其它操作和/或功能分别为了实现图2或图4中的各个方法相应流程,为了简洁,在此不再赘述。
上文中结合附图从功能模块的角度描述了本申请实施例的装置和系统。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法实施例中的步骤。
如图9是本申请实施例提供的电子设备700的示意性框图。
如图9所示,该电子设备700可包括:
存储器710和处理器720,该存储器710用于存储计算机程序,并将该程序代码传输给该处理器720。换言之,该处理器720可以从存储器710中调用并运行计算机程序,以实现本申请实施例中的方法。
例如,该处理器720可用于根据该计算机程序中的指令执行上述方法300中各执行主体的步骤。
在本申请的一些实施例中,该处理器720可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器710包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(Random Access Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器710中,并由该处理器720执行,以完成本申请提供的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序在该电子设备700中的执行过程。
可选的,该电子设备700还可包括:
通信接口730,该通信接口730可连接至该处理器720或存储器710。
其中,处理器720可以控制该通信接口730与其他设备进行通信,具体地,可以向其他设备发送信息或数据,或接收其他设备发送的信息或数据。示例性的,通信接口730可以包括发射机和接收机。通信接口730还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备700中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
根据本申请的一个方面,提供了一种通信装置,包括处理器和存储器,该存储器用于存储计算机程序,该处理器用于调用并运行所述存储器中存储的计算机程序,使得所述编码器执行上述方法实施例的方法。
根据本申请的一个方面,提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
根据本申请的另一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法实施例的方法。
换言之,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
应理解,在本申请实施例中,“与A对应的B”表示B与A相关联。在一种实现方式中,可以根据A确定B。但还应理解,根据A确定B并不意味着仅仅根据A确定B,还可以根据A和/或其它信息确定B。
在本申请的描述中,除非另有说明,“至少一个”是指一个或多个,“多个”是指两个或多于两个。另外,“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a-b,a-c,b-c,或a-b-c,其中a,b,c可以是单个,也可以是多个。
还应理解,本申请实施例中出现的第一、第二等描述,仅作示意与区分描述对象之用,没有次序之分,也不表示本申请实施例中对设备个数的特别限定,不能构成对本申请实施例的任何限制。
还应理解,说明书中与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
可以理解的是,在本申请的具体实施方式中,可能涉及到用户信息等相关的数据。当本申请以上实施例运用到具体产品或技术中时,需要获得用户许可或者同意,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
Claims (20)
1.一种数据传输的方法,所述方法应用于第一装置,其特征在于,包括:
根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,
其中,所述第一链路和所述第二链路是所述第一装置与第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;
根据所述第一链路的第一发送流,向所述第二装置发送所述第一数据流;
根据所述第二链路的第一发送流,向所述第二装置发送所述第二数据流。
2.根据权利要求1所述的方法,其特征在于,在所述根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流之前,所述方法还包括:
向所述第二装置发送建链请求消息,所述建链请求消息包括第一连接标识,所述第一连接标识是所述第一链路的第一发送流的连接标识,所述建链请求消息还包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数;
接收所述第二装置发送的反馈消息,所述反馈消息包括第二连接标识,所述第二连接标识为所述第一链路的第二发送流的连接标识,所述反馈消息还包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数;
根据所述反馈消息,生成所述第一链路的参数信息,所述第一链路的参数信息包括:所述第一连接标识、所述第二连接标识和所述第一链路的链路标识,所述第一链路的链路标识为第一链路标识。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
通过所述第二链路,向所述第二装置发送第一检测消息,所述第一检测消息包括第一路径检测帧;
通过所述第二链路,接收所述第二装置发送的第一响应消息,所述第一响应消息包括第一路径响应帧;
根据所述第一响应消息,生成所述第二链路的发送流的参数信息,所述第二链路的发送流的参数信息包括:第三连接标识和所述第二链路的链路标识,所述第三连接标识为所述第二链路的第一发送流的连接标识,所述第二链路的链路标识为第二链路标识。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
通过所述第二链路,接收所述第二装置发送的第二检测消息,所述第二检测消息包括第二路径检测帧;
通过所述第二链路,向所述第二装置发送第二响应消息,所述第二响应消息包括第二路径响应帧。
5.根据权利要求3所述的方法,其特征在于,所述方法还包括:
当确定所述第一链路的第一发送流无效时,通过所述第二链路的第一发送流向所述第二装置发送路径剔除消息,所述路径剔除消息包括所述第一连接标识;或者,
当所述第二链路的第一发送流无效时,通过所述第一链路的第一发送流向所述第二装置发送路径剔除消息,所述路径剔除消息包括所述第三连接标识。
6.根据权利要求1所述的方法,其特征在于,所述根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,包括:
根据所述第一链路的带宽和所述第二链路的带宽,调整所述第一业务数据流的发送窗口,所述发送窗口包括第一子窗口和第二子窗口,所述第一子窗口对应所述第一链路的发送流,所述第二子窗口对应所述第二链路的发送流;
根据所述第一子窗口,通过所述第一链路的第一发送流传输所述第一数据流;
根据所述第二子窗口,通过所述第二链路的第一发送流传输所述第二数据流。
7.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述第一链路的第二接收流,接收所述第二装置发送的第三数据流;
根据所述第二链路的第二接收流,接收所述第二装置发送的第四数据流;
根据所述第三数据流和所述第四数据流,确定第二业务数据流。
8.根据权利要求1所述的方法,其特征在于,所述第一链路对应的所述第二装置的物理地址与所述第二链路对应的所述第二装置的物理地址不同。
9.一种数据传输的方法,所述方法应用于第二装置,其特征在于,包括:
根据第一链路的第一接收流,接收第一装置发送的第一数据流;
根据第二链路的第一接收流,接收所述第一装置发送的第二数据流,
其中,所述第一链路和所述第二链路是所述第一装置与所述第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;
根据所述第一数据流和所述第二数据流,确定第一业务数据流。
10.根据权利要求9所述的方法,其特征在于,在所述根据第一链路的第一接收流,接收第一装置发送的第一数据流之前,所述方法还包括:
接收所述第一装置发送的建链请求消息,所述建链请求消息包括第一连接标识,所述第一连接标识是所述第一链路的发送流的连接标识,所述建链请求消息还包括所述第一装置具备所述QUIC协议多路径的能力和/或所述第一装置支持的所述QUIC协议多路径的个数;
根据所述建链请求消息,向所述第一装置发送反馈消息,所述反馈消息包括第二连接标识,所述第二连接标识为所述第一链路的接收流的连接标识,所述反馈消息还包括所述第二装置具备所述QUIC协议多路径的能力和/或所述第二装置支持的所述QUIC协议多路径的个数;
生成所述第一链路的参数信息,所述第一链路的参数信息包括:所述第一连接标识、所述第二连接标识和所述第一链路的链路标识,所述第一链路的链路标识为第一链路标识。
11.根据权利要求10所述的方法,其特征在于,所述方法还包括:
通过所述第二链路,接收所述第一装置发送的第一检测消息,所述第一检测消息包括第一路径检测帧;
通过所述第二链路,向所述第一装置发送第一响应消息,所述第一响应消息包括第一路径响应帧。
12.根据权利要求10或11所述的方法,其特征在于,所述方法还包括:
通过所述第二链路,向所述第一装置发送第二检测消息,所述第二检测消息包括第二路径检测帧;
通过所述第二链路,接收所述第一装置发送的第二响应消息,所述第二响应消息包括第二路径响应帧;
根据所述第二响应消息,生成所述第二链路的发送流的参数信息,所述第二链路的发送流的参数信息包括:第四连接标识和所述第二链路的链路标识,所述第四连接标识为所述第二链路的发送流的连接标识,所述第二链路的链路标识为第二链路标识。
13.根据权利要求10所述的方法,其特征在于,所述方法还包括:
通过所述第二链路的第一接收流接收所述第一装置发送的路径剔除消息,所述路径剔除消息包括所述第一连接标识;或者,
通过所述第一链路的第一接收流接收所述第一装置发送的路径剔除消息,所述路径剔除消息包括第三连接标识;
根据所述路径剔除消息,删除所述第一链路的第一发送流或者所述第二链路的第一发送流。
14.根据权利要求9所述的方法,其特征在于,所述方法还包括:
根据第一链路的带宽和第二链路的带宽,分配第二业务数据流在所述第一链路传输的第三数据流和在所述第二链路传输的第四数据流;
根据所述第一链路的发送流,向所述第一装置发送所述第三数据流;
根据所述第二链路的发送流,向所述第一装置发送所述第四数据流。
15.根据权利要求9所述的方法,其特征在于,所述第一链路对应的所述第二装置的物理地址与所述第二链路对应的所述第二装置的物理地址不同。
16.一种数据传输的装置,所述装置为第一装置,其特征在于,包括:
处理单元,用于根据第一链路的带宽和第二链路的带宽,分配第一业务数据流在所述第一链路传输的第一数据流和在所述第二链路传输的第二数据流,
其中,所述第一链路和所述第二链路是所述第一装置与第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;
收发单元,用于根据所述第一链路的第一发送流,向所述第二装置发送所述第一数据流;
所述收发单元还用于根据所述第二链路的第一发送流,向所述第二装置发送所述第二数据流。
17.一种数据传输的装置,所述装置为第二装置,其特征在于,包括:
收发单元,用于根据第一链路的第一接收流,接收第一装置发送的第一数据流;
所述收发单元还用于根据第二链路的第一接收流,接收所述第一装置发送的第二数据流,
其中,所述第一链路和所述第二链路是所述第一装置与所述第二装置连接的链路,所述第一链路对应的所述第一装置的物理地址与所述第二链路对应的所述第一装置的物理地址不同,所述第一链路和所述第二链路是支持快速用户数据报协议互联网连接QUIC协议的链路;
处理单元,用于根据所述第一数据流和所述第二数据流,确定第一业务数据流。
18.一种电子设备,其特征在于,包括处理器和存储器,所述存储器中存储有指令,所述处理器运行所述指令时,使得所述处理器执行权利要求1-8任一项所述的方法,或者执行权利要求9-15任一项所述的方法。
19.一种计算机存储介质,其特征在于,包括指令,当其在计算机上运行时,使得所述计算机执行权利要求1-8任一项所述的方法,或者执行权利要求9-15任一项所述的方法。
20.一种计算机程序产品,其特征在于,包括计算机程序代码,当所述计算机程序代码被电子设备运行时,使得所述电子设备执行权利要求1-8中任一项所述的方法,或者执行权利要求9-15任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211436459.7A CN118101782A (zh) | 2022-11-16 | 2022-11-16 | 一种数据传输的方法、装置、电子设备及存储介质 |
PCT/CN2023/124080 WO2024104016A1 (zh) | 2022-11-16 | 2023-10-11 | 一种数据传输的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211436459.7A CN118101782A (zh) | 2022-11-16 | 2022-11-16 | 一种数据传输的方法、装置、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118101782A true CN118101782A (zh) | 2024-05-28 |
Family
ID=91083799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211436459.7A Pending CN118101782A (zh) | 2022-11-16 | 2022-11-16 | 一种数据传输的方法、装置、电子设备及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118101782A (zh) |
WO (1) | WO2024104016A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018203336A1 (en) * | 2017-05-04 | 2018-11-08 | Liveu Ltd. | Device, system, and method of pre-processing and data delivery for multi-link communications and for media content |
CN113365369A (zh) * | 2020-03-06 | 2021-09-07 | 华为技术有限公司 | 通信方法和装置 |
CN113709901B (zh) * | 2020-05-21 | 2024-04-26 | 华为技术有限公司 | 通信方法和装置 |
CN112738855B (zh) * | 2020-09-29 | 2023-04-18 | 网络通信与安全紫金山实验室 | 一种应用在quic的基于多链路的传输方法和装置 |
CN114172948B (zh) * | 2022-02-09 | 2022-06-17 | 北京数码视讯技术有限公司 | 基于udp的ip透传网关传输系统和方法 |
-
2022
- 2022-11-16 CN CN202211436459.7A patent/CN118101782A/zh active Pending
-
2023
- 2023-10-11 WO PCT/CN2023/124080 patent/WO2024104016A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024104016A1 (zh) | 2024-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113411313B (zh) | 数据传输方法、装置和系统 | |
US9300733B2 (en) | System and/or method for client-driven server load distribution | |
CA2611776C (en) | Method and communication unit for communicating between communication apparatuses | |
CN109450923B (zh) | 一种视频传输系统及方法 | |
US20230083441A1 (en) | Managing subpacket transmission and reception for advanced interactive services | |
CN108574818B (zh) | 一种信息显示的方法、装置和服务器 | |
EP3269110B1 (en) | Method of communicating data packets within data communication systems | |
CN109196842B (zh) | 一种会话保持方法、设备及存储介质 | |
KR101991388B1 (ko) | 이종 네트워크상에서의 컨텐츠 전송 방법 및 이를 위한 장치 | |
CN107819809A (zh) | 对内容进行同步操作的方法及装置 | |
CN110113306A (zh) | 分发数据的方法和网络设备 | |
CN115002023B (zh) | 一种链路聚合方法、链路聚合装置、电子设备及存储介质 | |
CN114615237B (zh) | 流媒体通信方法、系统、设备及存储介质 | |
CN114221909B (zh) | 数据传输方法、装置、终端及存储介质 | |
FR3042081A1 (fr) | "procede de controle d'un systeme de communications de donnees par paquets et systeme de communications mettant en œuvre le procede" | |
CN112398754B (zh) | 数据传输方法、装置、介质、电子设备及网络接入设备 | |
CN106130746B (zh) | 一种数据传输方法及装置 | |
CN114710568B (zh) | 音视频数据通信方法、设备及存储介质 | |
CN112514490B (zh) | 无线通信的方法和设备 | |
CN114143387B (zh) | 基于quic的应用层通讯方法、装置、存储介质 | |
CN112838983A (zh) | 数据传输方法、系统、设备、代理服务器及存储介质 | |
CN118101782A (zh) | 一种数据传输的方法、装置、电子设备及存储介质 | |
CN109039928A (zh) | 数据的传输方法、装置和无线保真路由器 | |
CN106921624B (zh) | 会话边界控制器及数据传输方法 | |
CN109462591B (zh) | 一种数据传输方法、接收方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication |