CN114697240B - 数据传输方法、装置、系统及存储介质 - Google Patents
数据传输方法、装置、系统及存储介质 Download PDFInfo
- Publication number
- CN114697240B CN114697240B CN202011631931.3A CN202011631931A CN114697240B CN 114697240 B CN114697240 B CN 114697240B CN 202011631931 A CN202011631931 A CN 202011631931A CN 114697240 B CN114697240 B CN 114697240B
- Authority
- CN
- China
- Prior art keywords
- unidirectional
- measurement
- path
- paths
- delay
- 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.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 350
- 238000000034 method Methods 0.000 title claims abstract description 122
- 238000003860 storage Methods 0.000 title claims abstract description 25
- 238000005259 measurement Methods 0.000 claims abstract description 693
- 230000004044 response Effects 0.000 claims abstract description 177
- 230000001934 delay Effects 0.000 claims abstract description 79
- 238000012163 sequencing technique Methods 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims description 52
- 230000015654 memory Effects 0.000 claims description 38
- 238000004590 computer program Methods 0.000 claims description 10
- 230000008859 change Effects 0.000 claims description 5
- 239000000523 sample Substances 0.000 claims 4
- 239000000758 substrate Substances 0.000 claims 2
- 238000004891 communication Methods 0.000 abstract description 20
- 238000005516 engineering process Methods 0.000 abstract description 8
- 230000003993 interaction Effects 0.000 abstract description 5
- 230000006870 function Effects 0.000 description 25
- 238000010586 diagram Methods 0.000 description 19
- 238000004422 calculation algorithm Methods 0.000 description 14
- 238000007726 management method Methods 0.000 description 12
- 238000013507 mapping Methods 0.000 description 7
- 238000010791 quenching Methods 0.000 description 7
- 101100011863 Arabidopsis thaliana ERD15 gene Proteins 0.000 description 5
- 101100191082 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GLC7 gene Proteins 0.000 description 5
- 101100274406 Schizosaccharomyces pombe (strain 972 / ATCC 24843) cid1 gene Proteins 0.000 description 5
- 230000005291 magnetic effect Effects 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 101100274417 Arabidopsis thaliana CID3 gene Proteins 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 238000009826 distribution Methods 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000004806 packaging method and process Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000003068 static effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 101150021084 CID2 gene Proteins 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 239000002243 precursor Substances 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0858—One way delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/121—Shortest path evaluation by minimising delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/24—Multipath
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/14—Multichannel or multilink protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请涉及通信技术领域,尤其涉及一种数据传输方法、装置、系统及存储介质。所述方法包括:第一设备向第二设备发送测量请求,第一设备和第二设备之间建立有多个单向路径;在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告;向第二设备发送测量结果通告,测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果。本申请实施例通过第一设备主动发起测量请求,通过与第二设备的三次交互,向第二设备通告单向传输时延的测量情况,从而使第二设备能够调度选择最小单向传输时延的单向路径进行数据传输,保证了多路径传输的传输性能。
Description
技术领域
本申请涉及通信技术领域,尤其涉及一种数据传输方法、装置、系统及存储介质。
背景技术
快速UDP互联网连接(Quick UDP Internet Connections,QUIC)报文承载在用户数据报协议(User Datagram Protocol,UDP)/数据包传输层安全性(Datagram TransportLayer Security,DTLS)协议上。QUIC报文包括报文头部和帧包,其中业务流(Stream)帧作为QUIC报文中一种特殊类型的帧,用于区分承载一个应用的不同业务流,比如业务流为音视频业务流、应用文字业务流或应用层控制协议业务流。在QUIC协议的基础上将传输时所使用的一个单向路径扩展到多个单向路径,从而形成了多路径快速UDP因特网连接(Multipath Quick UDP Internet Connection,MPQUIC)协议。
一个QUIC会话可以创建多个连接(Connections)即路径,一个业务流的报文可以在不同的连接传输,而且即使是在同一条物理链路上的往返连接也可以定义成不同的单向连接,基于MPQUIC协议交互的双方在发包时分别独立进行连接调度选路。该多路径两端独立选路场景若仍采用最小往返时延优先(min-RTT-First,minRTT)的数据调度策略进行调度,会导致调度误差较大,影响多路径传输的传输性能。
发明内容
有鉴于此,提出了一种数据传输方法、装置、系统及存储介质,报文接收端即第一设备主动发起测量请求,通过与报文发送端即第二设备的三次交互,确定第二设备到第一设备的多个单向路径各自对应的单向传输时延的测量情况,并将测量情况通知至第二设备,从而使得第二设备能够调度选择最小单向传输时延的单向路径进行数据传输,保证了多路径传输的传输性能。
第一方面,本申请的实施例提供了一种数据传输方法,用于第一设备中,第一设备和第二设备之间建立有多个单向路径,该方法包括:
向第二设备发送测量请求;
在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告;
向第二设备发送测量结果通告,测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果。
在该实现方式中,第一设备和第二设备之间建立有多个单向路径,第一设备向第二设备发送测量请求,在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告,向第二设备发送测量结果通告,该测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果,从而使得后续第二设备能够根据测量结果通告按照最小单向传输时延优先的算法选择对应的单向路径进行数据报文传输,提高了数据调度的准确性,保证了多路径传输的传输性能。
结合第一方面,在第一方面的第一种可能的实现方式中,在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告,包括:
在接收到每个单向路径上发送的测量应答后,确定测量应答对应的往返路径的往返时延(Round-Trip Time,RTT),往返路径包括传输测量请求的单向路径和传输测量应答的单向路径;
根据多个往返路径各自对应的单向路径标识和往返时延,确定多个单向路径各自对应的单向传输时延的数值或排序结果,单向路径标识用于指示传输测量应答的单向路径;
根据多个单向路径各自对应的单向传输时延的数值或排序结果,确定测量结果通告。
在该实现方式中,第一设备在接收到每个单向路径上发送的测量应答后,确定测量应答对应的往返路径的往返时延,根据多个往返路径各自对应的单向路径标识和往返时延,确定多个单向路径各自对应的单向传输时延的数值或排序结果,以便第一设备能够准确地确定出第二设备到第一设备的多个单向路径各自对应的单向传输时延的测量情况。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,该方法还包括:
记录测量请求对应的测量序号和测量请求的发送时刻,测量序号用于指示本次测量任务。
在该实现方式中,第一设备记录测量请求对应的测量序号和测量请求的发送时刻,以便在第一设备接收到在多个单向路径上分别发送的测量应答后,准确估算比较多个单向路径各自对应的单向传输时延。
结合第一方面或第一方面的第二种可能的实现方式,在第一方面的第三种可能的实现方式中,
测量应答携带有单向路径标识、测量序号和本地处理时延,本地处理时延为第二设备发送测量应答的时刻与接收测量请求的时刻之间的差值。
在该实现方式中,第二设备向到第一设备的每个单向路径上发送测量应答,该测量应答携带有单向路径标识、测量序号和本地处理时延,以便保证后续第一设备计算单向传输时延的准确性。
结合第一方面或第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,在接收到每个单向路径上发送的测量应答后,确定测量应答对应的往返路径的往返时延,包括:
在接收到每个单向路径上发送的测量应答后,记录测量应答的接收时刻;
根据测量应答的接收时刻、测量请求的发送时刻和测量应答携带的本地处理时延,确定测量应答对应的往返路径的往返时延。
在该实现方式中,对于在每个单向路径上发送的测量应答来说,第一设备根据测量应答的接收时刻、测量请求的发送时刻和测量应答携带的本地处理时延,确定测量应答对应的往返路径的往返时延,以便后续能够准确地确定出该往返路径中第二设备到第一设备的单向路径的单向传输时延。
结合第一方面,在第一方面的第五种可能的实现方式中,向第二设备发送测量请求,包括:
在接收到第二设备发送的通知报文后,向第二设备发送测量请求,通知报文用于指示第二设备到第一设备的单向路径数量发生变更;或者,
根据预配置或预定义的测量周期,向第二设备发送测量请求。
在该实现方式中,第一设备在感知到连接新增事件的情况下触发单向传输时延测量的测量任务,即测量任务是基于连接新增事件触发的;或者,第一设备按照预配置或预定义的测量周期向第二设备发送测量请求,即测量任务是周期性触发的,减少不必要的测量流程和网络开销。
结合第一方面,在第一方面的第六种可能的实现方式中,该方法还包括:
在发送测量请求后启动本次测量任务的第一定时器;
在第一定时器所指示的第一测量超时时刻前,接收在多个单向路径上分别发送的测量应答。
在该实现方式中,第一设备在发送测量请求后启动本次测量任务的第一定时器,用于等待接收第二设备在多个单向路径上分别发送该测量应答,避免长时间等待接收的情况,节省了网络开销,保证了本次测量任务的可控性和可靠性。
结合第一方面,在第一方面的第七种可能的实现方式中,测量结果通告包括单向路径标识列表或者单向传输时延最小的单向路径的单向路径标识,单向路径标识列表用于指示多个单向路径各自对应的单向传输时延的数值或排序结果。
在该实现方式中,测量结果通告可以包括单向路径标识列表,单向路径标识列表用于指示多个单向路径各自对应的单向传输时延的数值或排序结果,以便后续第一设备按照单向路径标识列表选择的当前可用的单向路径进行数据传输;测量结果通道还可以包括单向传输时延最小的单向路径的单向路径标识,以便后续第一设备在当前可用的单向传输时延最小的单向路径上传输数据,提高了多路径传输的传输性能。
结合第一方面及第一方面的第一种至第七种可能的实现方式中的任意一种可能的实现方式,在第一方面的第八种可能的实现方式中,测量结果通告用于指示多个单向路径各自对应的单向传输时延的数值或排序结果,向第二设备发送测量结果通告之后,还包括:
接收第二设备在第二单向路径上发送的数据报文,第二单向路径为第二设备按照单向传输时延从小到大的顺序选择的当前可用的单向路径。
在该实现方式中,第二设备按照单向传输时延从小到大的顺序选择可用的单向路径作为第二单向路径,第二设备在第二单向路径发送数据报文,第一设备接收在该第二单向路径上发送的数据报文;即优先选择单向传输时延最小的单向路径作为第二单向路径,当该单向路径上的剩余带宽不足时,按照单向传输时延从小到大的顺序选择单向传输时延尽可能小的可用的单向路径作为第二单向路径,进一步提高了多路径传输的传输性能。
结合第一方面及第一方面的第一种至第七种可能的实现方式中的任意一种可能的实现方式,在第一方面的第九种可能的实现方式中,测量结果通告用于指示单向传输时延最小的单向路径,向第二设备发送测量结果通告之后,还包括:
接收第二设备在第三单向路径上发送的数据报文,第三单向路径为单向传输时延最小的单向路径。
在该实现方式中,第二设备将单向传输时延最小的单向路径作为第三单向路径,在第三单向路径上发送数据报文,对应的第一设备接收在该第三单向路径上发送的数据报文;使得第二设备能够直接在单向传输时延最小的单向路径上发送数据报文,进一步提高了多路径传输的传输性能。
结合第一方面及第一方面的第一种至第九种可能的实现方式中的任意一种可能的实现方式,在第一方面的第十种可能的实现方式中,向第二设备发送测量请求,包括:
在第一单向路径上向第二设备发送一次测量请求,第一单向路径为第一设备到第二设备的多个单向路径中的任意一个单向路径。
在该实现方式中,第一设备在第一设备到第二设备的多个单向路径中选择任意一个单向路径作为第一单线该路径,在第一单向路径上向第二设备发送一次测量请求,使得通过发送一次测量请求触发第二设备反馈多个测量应答,以实现后续多个单向路径各自对应的单向传输时延的测量比较,提高了单向传输时延的测量效率。
结合第一方面及第一方面的第一种至第十种可能的实现方式中的任意一种可能的实现方式,在第一方面的第十一种可能的实现方式中,单向路径包括MPQUIC协议的连接或者单向流。
在该实现方式中,提供了一种基于MPQUIC协议的数据传输方法,不依赖IEEE 1588协议等网络时间协议实现多个单向路径各自对应的单向传输时延的测量比较,从而使得MPQUIC发送端能够调度选择当前可用的最小单向传输时延的单向路径进行数据传输,保证了MPQUIC协议的多路径传输的传输性能。
第二方面,本申请的实施例提供了一种数据传输方法,用于第二设备中,第一设备和第二设备之间建立有多个单向路径,该方法包括:
接收第一设备发送的测量请求;
在多个单向路径上分别发送测量应答;
接收第一设备发送的测量结果通告,测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果。
结合第二方面,在第二方面的第一种可能的实现方式中,测量应答携带有单向路径标识、测量序号和本地处理时延;
其中,单向路径标识用于指示传输测量应答的单向路径,测量序号用于指示本次测量任务,本地处理时延为第二设备发送测量应答的时刻与接收测量请求的时刻之间的差值。
结合第二方面,在第二方面的第二种可能的实现方式中,该方法还包括:
在第二设备到第一设备的单向路径数量发生变更的情况下,向第一设备发送通知报文。
结合第二方面,在第二方面的第三种可能的实现方式中,该方法还包括:
在接收到测量请求后启动本次测量任务的第二定时器;
在第二定时器所指示的第二测量超时时刻前,接收测量结果通告。
结合第二方面,在第二方面的第四种可能的实现方式中,测量结果通告包括单向路径标识列表或者单向传输时延最小的单向路径的单向路径标识,单向路径标识列表用于指示多个单向路径各自对应的单向传输时延的数值或排序结果。
结合第二方面及第二方面的第一种至第四种可能的实现方式中的任意一种可能的实现方式,在第二方面的第五种可能的实现方式中,测量结果通告用于指示多个单向路径各自对应的单向传输时延的数值或排序结果,该方法还包括:
根据测量结果通告,按照单向传输时延从小到大的顺序选择当前可用的第二单向路径;
在第二单向路径上向第一设备发送数据报文。
结合第二方面及第二方面的第一种至第四种可能的实现方式中的任意一种可能的实现方式,在第二方面的第六种可能的实现方式中,测量结果通告用于指示单向传输时延最小的单向路径,该方法还包括:
在第三单向路径上向第一设备发送数据报文,第三单向路径为单向传输时延最小的单向路径。
结合第二方面及第二方面的第一种至第六种可能的实现方式中的任意一种可能的实现方式,在第二方面的第七种可能的实现方式中,接收第一设备发送的测量请求,包括:
接收第一设备在第一单向路径上发送的一次测量请求,第一单向路径为第一设备到第二设备的多个单向路径中的任意一个单向路径。
结合第二方面及第二方面的第一种至第七种可能的实现方式中的任意一种可能的实现方式,在第二方面的第八种可能的实现方式中,单向路径包括MPQUIC协议的连接或者单向流。
第三方面,本申请的实施例提供了一种数据传输方法,其特征在于,用于包括第一设备和第二设备的数据传输系统中,第一设备和第二设备之间建立有多个单向路径,该方法包括:
第一设备向第二设备发送测量请求;
第二设备在接收到第一设备发送的测量请求后,在多个单向路径上分别发送测量应答;
第一设备在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告;
第一设备向第二设备发送测量结果通告;
第二设备接收第一设备发送的测量结果通告;
其中,测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果。
结合第三方面,在第三方面的第一种可能的实现方式中,第一设备在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告,包括:
第一设备在接收到每个单向路径上发送的测量应答后,确定测量应答对应的往返路径的往返时延,往返路径包括传输测量请求的单向路径和传输测量应答的单向路径;
第一设备根据多个往返路径各自对应的单向路径标识和往返时延,确定多个单向路径各自对应的单向传输时延的数值或排序结果,单向路径标识用于指示传输测量应答的单向路径;
第一设备根据多个单向路径各自对应的单向传输时延的数值或排序结果,确定测量结果通告。
结合第三方面的第一种可能的实现方式,在第三方面的第二种可能的实现方式中,该方法还包括:
第一设备记录测量请求对应的测量序号和测量请求的发送时刻,测量序号用于指示本次测量任务。
结合第三方面的第二种可能的实现方式,在第三方面的第三种可能的实现方式中,测量应答携带有单向路径标识、测量序号和本地处理时延,本地处理时延为第二设备发送测量应答的时刻与接收测量请求的时刻之间的差值。
结合第三方面的第三种可能的实现方式,在第三方面的第四种可能的实现方式中,第一设备在接收到每个单向路径上发送的测量应答后,确定测量应答对应的往返路径的往返时延,包括:
第一设备在接收到每个单向路径上发送的测量应答后,记录测量应答的接收时刻;
第一设备根据测量应答的接收时刻、测量请求的发送时刻和测量应答携带的本地处理时延,确定测量应答对应的往返路径的往返时延。
结合第三方面,在第三方面的第五种可能的实现方式中,该方法还包括:
在第二设备到第一设备的单向路径数量发生变更的情况下,第二设备向第一设备发送通知报文;
第一设备向第二设备发送测量请求,包括:
第一设备在接收到第二设备发送的通知报文后,向第二设备发送测量请求。
结合第三方面,在第三方面的第六种可能的实现方式中,第一设备向第二设备发送测量请求,包括:
第一设备根据预配置或预定义的测量周期,向第二设备发送测量请求。
结合第三方面,在第三方面的第七种可能的实现方式中,该方法还包括:
第一设备在发送测量请求后启动本次测量任务的第一定时器;
第一设备在第一定时器所指示的第一测量超时时刻前,接收在多个单向路径上分别发送的测量应答。
结合第三方面,在第三方面的第八种可能的实现方式中,该方法还包括:
第二设备在接收到测量请求后启动本次测量任务的第二定时器;
第二设备在第二定时器所指示的第二测量超时时刻前,接收测量结果通告。
结合第三方面,在第三方面的第九种可能的实现方式中,测量结果通告包括单向路径标识列表或者单向传输时延最小的单向路径的单向路径标识,单向路径标识列表用于指示多个单向路径各自对应的单向传输时延的数值或排序结果。
结合第三方面及第三方面的第一种至第九种可能的实现方式中的任意一种可能的实现方式,在第三方面的第十种可能的实现方式中,测量结果通告用于指示多个单向路径各自对应的单向传输时延的数值或排序结果,第二设备接收第一设备发送的测量结果通告之后,还包括:
第二设备根据测量结果通告,按照单向传输时延从小到大的顺序选择当前可用的第二单向路径;
第二设备在第二单向路径上向第一设备发送数据报文;
第一设备接收第二设备在第二单向路径上发送的数据报文。
结合第三方面及第三方面的第一种至第九种可能的实现方式中的任意一种可能的实现方式,在第三方面的第十一种可能的实现方式中,测量结果通告用于指示单向传输时延最小的单向路径,第二设备接收第一设备发送的测量结果通告之后,还包括:
第二设备在第三单向路径上向第一设备发送数据报文,第三单向路径为单向传输时延最小的单向路径;
第一设备接收第二设备在第三单向路径上发送的数据报文。
结合第三方面及第三方面的第一种至第十一种可能的实现方式中的任意一种可能的实现方式,在第三方面的第十二种可能的实现方式中,第一设备向第二设备发送测量请求,包括:
第一设备在第一单向路径上向第二设备发送一次测量请求,第一单向路径为第一设备到第二设备的多个单向路径中的任意一个单向路径。
结合第三方面及第三方面的第一种至第十二种可能的实现方式中的任意一种可能的实现方式,在第三方面的第十三种可能的实现方式中,单向路径包括MPQUIC协议的连接或者单向流。
第四方面,本申请的实施例提供了一种数据传输装置,用于第一设备中,第一设备和第二设备之间建立有多个单向路径,该装置包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为:
向第二设备发送测量请求;
在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告;
向第二设备发送测量结果通告,测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果。
结合第四方面,在第四方面的第一种可能的实现方式中,该处理器还被配置为:
在接收到每个单向路径上发送的测量应答后,确定测量应答对应的往返路径的往返时延,往返路径包括传输测量请求的单向路径和传输测量应答的单向路径;
根据多个往返路径各自对应的单向路径标识和往返时延,确定多个单向路径各自对应的单向传输时延的数值或排序结果,单向路径标识用于指示传输测量应答的单向路径;
根据多个单向路径各自对应的单向传输时延的数值或排序结果,确定测量结果通告。
结合第四方面或第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,该处理器还被配置为:
记录测量请求对应的测量序号和测量请求的发送时刻,测量序号用于指示本次测量任务。
结合第四方面或第四方面的第二种可能的实现方式,在第四方面的第三种可能的实现方式中,测量应答携带有单向路径标识、测量序号和本地处理时延,本地处理时延为第二设备发送测量应答的时刻与接收测量请求的时刻之间的差值。
结合第四方面或第四方面的第三种可能的实现方式,在第四方面的第四种可能的实现方式中,该处理器还被配置为:
在接收到每个单向路径上发送的测量应答后,记录测量应答的接收时刻;
根据测量应答的接收时刻、测量请求的发送时刻和测量应答携带的本地处理时延,确定测量应答对应的往返路径的往返时延。
结合第四方面,在第四方面的第五种可能的实现方式中,该处理器还被配置为:
在接收到第二设备发送的通知报文后,向第二设备发送测量请求,通知报文用于指示第二设备到第一设备的单向路径数量发生变更;或者,
根据预配置或预定义的测量周期,向第二设备发送测量请求。
结合第四方面,在第四方面的第六种可能的实现方式中,该处理器还被配置为:
在发送测量请求后启动本次测量任务的第一定时器;
在第一定时器所指示的第一测量超时时刻前,接收在多个单向路径上分别发送的测量应答。
结合第四方面,在第四方面的第七种可能的实现方式中,测量结果通告包括单向路径标识列表或者单向传输时延最小的单向路径的单向路径标识,单向路径标识列表用于指示多个单向路径各自对应的单向传输时延的数值或排序结果。
结合第四方面及第四方面的第一种至第七种可能的实现方式中的任意一种可能的实现方式,在第四方面的第八种可能的实现方式中,该处理器还被配置为:
接收第二设备在第二单向路径上发送的数据报文,第二单向路径为第二设备按照单向传输时延从小到大的顺序选择的当前可用的单向路径。
结合第四方面及第四方面的第一种至第七种可能的实现方式中的任意一种可能的实现方式,在第四方面的第九种可能的实现方式中,测量结果通告用于指示单向传输时延最小的单向路径,该处理器还被配置为:
接收第二设备在第三单向路径上发送的数据报文,第三单向路径为单向传输时延最小的单向路径。
结合第四方面及第四方面的第一种至第九种可能的实现方式中的任意一种可能的实现方式,在第四方面的第十种可能的实现方式中,该处理器还被配置为:
在第一单向路径上向第二设备发送一次测量请求,第一单向路径为第一设备到第二设备的多个单向路径中的任意一个单向路径。
结合第四方面及第四方面的第一种至第十种可能的实现方式中的任意一种可能的实现方式,在第四方面的第十一种可能的实现方式中,单向路径包括MPQUIC协议的连接或者单向流。
第五方面,本申请的实施例提供了一种数据传输装置,用于第二设备中,第一设备和第二设备之间建立有多个单向路径,该装置包括:处理器;用于存储处理器可执行指令的存储器;其中,处理器被配置为:
接收第一设备发送的测量请求;
在多个单向路径上分别发送测量应答;
接收第一设备发送的测量结果通告,测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果。
结合第五方面,在第五方面的第一种可能的实现方式中,测量应答携带有单向路径标识、测量序号和本地处理时延;
其中,单向路径标识用于指示传输测量应答的单向路径,测量序号用于指示本次测量任务,本地处理时延为第二设备发送测量应答的时刻与接收测量请求的时刻之间的差值。
结合第五方面,在第五方面的第二种可能的实现方式中,该处理器还被配置为:
在第二设备到第一设备的单向路径数量发生变更的情况下,向第一设备发送通知报文。
结合第五方面,在第五方面的第三种可能的实现方式中,该处理器还被配置为:
在接收到测量请求后启动本次测量任务的第二定时器;
在第二定时器所指示的第二测量超时时刻前,接收测量结果通告。
结合第五方面,在第五方面的第四种可能的实现方式中,测量结果通告包括单向路径标识列表或者单向传输时延最小的单向路径的单向路径标识,单向路径标识列表用于指示多个单向路径各自对应的单向传输时延的数值或排序结果。
结合第五方面及第五方面的第一种至第四种可能的实现方式中的任意一种可能的实现方式,在第五方面的第五种可能的实现方式中,该处理器还被配置为:
根据测量结果通告,按照单向传输时延从小到大的顺序选择当前可用的第二单向路径;
在第二单向路径上向第一设备发送数据报文。
结合第五方面及第五方面的第一种至第四种可能的实现方式中的任意一种可能的实现方式,在第五方面的第六种可能的实现方式中,测量结果通告用于指示单向传输时延最小的单向路径,该处理器还被配置为:
在第三单向路径上向第一设备发送数据报文,第三单向路径为单向传输时延最小的单向路径。
结合第五方面及第五方面的第一种至第六种可能的实现方式中的任意一种可能的实现方式,在第五方面的第七种可能的实现方式中,该处理器还被配置为:
接收第一设备在第一单向路径上发送的一次测量请求,第一单向路径为第一设备到第二设备的多个单向路径中的任意一个单向路径。
结合第五方面及第五方面的第一种至第七种可能的实现方式中的任意一种可能的实现方式,在第五方面的第八种可能的实现方式中,单向路径包括MPQUIC协议的连接或者单向流。
第六方面,本申请的实施例提供了一种数据传输装置,该装置包括至少一个单元,至少一个单元用于实现上述第一方面或第一方面中的任意一种可能的实现方式所提供的数据传输方法。
第七方面,本申请的实施例提供了一种数据传输装置,该装置包括至少一个单元,至少一个单元用于实现上述第二方面或第二方面中的任意一种可能的实现方式所提供的数据传输方法。
第八方面,本申请的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当计算机可读代码在电子设备中运行时,电子设备中的处理器执行上述第一方面或第一方面中的任意一种可能的实现方式所提供的数据传输方法。
第九方面,本申请的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当计算机可读代码在电子设备中运行时,电子设备中的处理器执行上述第二方面或第二方面中的任意一种可能的实现方式所提供的数据传输方法。
第十方面,本申请的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述第一方面或第一方面中的任意一种可能的实现方式所提供的数据传输方法。
第十一方面,本申请的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述第二方面或第二方面中的任意一种可能的实现方式所提供的数据传输方法。
第十二方面,本申请的实施例提供了一种数据传输系统,该数据传输系统包括第一设备和第二设备,第一设备和第二设备之间建立有多个单向路径;该第一设备包括如上述第四方面的数据传输装置,该第二设备包括如上述第五方面的数据传输装置;或者,该第一设备包括如上述第六方面的数据传输装置,该第二设备包括如上述第七方面的数据传输装置。
第十三方面,本申请的实施例提供了一种数据传输系统,该数据传输系统包括第一设备和第二设备,第一设备和第二设备之间建立有多个单向路径;该数据传输系统用于执行上述第三方面或第三方面中的任意一种可能的实现方式所提供的数据传输方法。
附图说明
包含在说明书中并且构成说明书的一部分的附图与说明书一起示出了本申请的示例性实施例、特征和方面,并且用于解释本申请的原理。
图1示出了相关技术中计算双向传输时延的过程的流程图。
图2示出本申请实施例提供的一种通信系统的架构示意图。
图3示出了本申请一个示例性实施例提供的数据传输方法的流程图。
图4示出了本申请另一个示例性实施例提供的数据传输方法的流程图。
图5示出了本申请另一个示例性实施例提供的数据传输方法的流程图。
图6示出了本申请另一个示例性实施例提供的数据传输方法的流程图。
图7示出了本申请一个示例性实施例提供的数据传输装置的框图。
图8示出了本申请另一个示例性实施例提供的数据传输装置的框图。
图9示出了本申请一个示例性实施例提供的第一设备的结构示意图。
图10示出了本申请一个示例性实施例提供的第二设备的结构示意图。
具体实施方式
以下将参考附图详细说明本申请的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。
在这里专用的词“示例性”意为“用作例子、实施例或说明性”。这里作为“示例性”所说明的任何实施例不必解释为优于或好于其它实施例。
另外,为了更好的说明本申请,在下文的具体实施方式中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本申请同样可以实施。在一些实例中,对于本领域技术人员熟知的方法、手段、元件和电路未作详细描述,以便于凸显本申请的主旨。
随着网页内容丰富程度大大增加,网页元素的数量和分布范围也大幅增长,网页时延的高低会影响网络服务质量。对于时延敏感型的网络服务来说,即使很小的网络时延也会带来较大的损失。对于一些网络应用如在线游戏、视频聊天、实时支付、金融交易等应用,网络时延的高低是满足其服务质量最为重要的指标之一。
为了减少网络时延,提高网络服务质量,相关技术从不同层次对网络协议进行了一系列的优化。优化主要针对以下两个方面:
第一方面,队头阻塞(Head-of-line blocking)问题。在应用层,队头阻塞问题指的是超文本传输协议(HyperText Transfer Protocol,HTTP)请求或者响应必须遵循一定的顺序,如果前一个请求或者响应没有完成,则不能进行下一个请求或者响应。在HTTP/1.1协议中,在连续的请求时保持(Transmission Control Protocol,TCP)连接打开的状态,不用等待在接收到响应后再请求下一个元素,这种技术被称为“流水线”(pipelining),然而在HTTP/1.1协议中也存在一些问题,虽然它可以在一个TCP连接上连续请求,但是所有的响应必须按照请求发送的顺序来按序接收,因此单个慢响应可以阻塞其后的所有响应,为了解决这个问题,SPDY协议(HTTP/2协议的前身)采取了多路复用(multiplexing)的方法,即多个请求或响应共享一个TCP连接,且多个请求或响应的传输是并行的方式,在应用层不会相互产生队头阻塞。在传输层,队头阻塞的问题是指,由于SPDY协议在一条TCP连接上进行多路复用,而TCP连接只支持顺序传输,因此一个请求的数据缺失会影响到其他请求数据的传输。
第二方面,网络内容的优先级设置。如果无差别地传输所有请求或响应,在带宽有限的情况下,一些关键的请求可能会被阻塞,因此,在应用层协议中,SPDY协议引入了请求优先级的概念,使得优先级高的请求或响应得到更多的带宽资源,从而有针对性地优化了关键请求的时延。在传输层也有针对网络内容的优先级进行了协议的改进。然而,在TCP层面做优先级划分的工作会给应用层带来管理连接和分配资源上的负担,作为一个多路复用的协议,QUIC可以在传输层提供对多个流的管理和资源分配功能,这一特性为不同流的优先级的划分提供了可能。QUIC协议对传输层进行了多路复用:在建立了客户端到服务器之间的基本连接之后,对于每个网页元素的传输,它都单独提供一个“流”进行数据传输,其中流也称为业务流。业务流的开启和关闭都是轻量级的,不会影响其所属连接且业务流与业务流相互之间独立,不影响各自的传输。
QUIC报文承载在用户数据报协议(User Datagram Protocol,UDP)/数据包传输层安全性(Datagram Transport Layer Security,DTLS)协议上。QUIC报文包括报文头部和帧包,其中Stream帧作为QUIC报文中一种特殊类型的帧,用于区分承载一个应用的不同业务流,比如业务流为音视频业务流、应用文字业务流或应用层控制协议业务流。在QUIC协议的基础上将传输时所使用的一个单向路径扩展到多个单向路径,从而形成了MPQUIC协议。
一个QUIC会话可以创建多个连接(Connections)即路径,一个业务流的报文可以在不同的连接传输,而且即使是在同一条物理链路上的往返连接也可以定义成不同的单向连接,基于MPQUIC协议交互的双方在发包时分别独立进行连接调度选路。
相关技术中,在传输过程中通过MPQUIC协议对流在多个单向路径上进行性能优先的调度选路,主要通过minRTT调度器对流进行调度。采用minRTT调度器进行调度包括:在传输数据时,对于每个打包好的数据包,选择当前RTT最小的单向路径进行传输。在多路径的场景中,首先使用RTT最小的路径(path)直到填满其发送窗口为止,然后使用RTT第二小的路径,以此类推。
该调度算法依赖计算RTT,在QUIC报文的往返路径固定的场景,RTT的计算方式通常包括如下两种可能的实现方式:
在一种可能的实现方式中,依赖网络设备之间的时间同步,比如网络时间协议(Network Time Protocol,NTP)或电子技术与信息科学工程师的协会(Institute ofElectrical and Electronics Engineers,IEEE)1588协议,然后接收端通过收到的QUIC报文中的发送时间戳和本地时间进行比较,计算单向传输时延,该方案计算单向传输时延的准确性取决于设备的时间同步状态(比如是否开启时间同步功能,是否锁定时间同步源,完成同步校准等)和时间同步的精度。
在另一种可能的实现方式中,计算双向传输时延。如图1所示,计算双向传输时延的过程包括如下步骤:步骤101,发送端发送QUIC报文,并记录该QUIC报文的发送时刻T1;步骤102,接收端向发送端反馈该QUIC报文对应的确认(Acknowledge,ACK)报文,该ACK报文携带有接收端处理该QUIC报文的时延Delay;步骤103,发送端接收到该ACK报文后,记录ACK报文的接收时刻T2和读取ACK报文中携带的时延Delay;步骤104,发送端根据接收时刻T2、发送时刻T1和时延Delay计算RTT值,即RTT=T2-T1-Delay。
在基于QUIC协议的单路径交互场景,RTT用于调整QUIC协议的发包窗口,可以进行拥塞预防,往返数据的流量耦合在一个子流即等价于在一个单向路径上,采用上述数据调度策略是合适的。
但是在某些多路径传输的场景比如MPQUIC场景,为了解耦业务流和单向路径,允许数据/控制报文和其对应的ACK报文在不同的单向路径上传输。
在MPQUIC协议中,同一个业务流的报文(包括ACK报文)往返时可能选择不同的单向路径发送,所以该场景下使用测量RTT对拥塞避免有一定的价值,但是minRTT作为QUIC报文的选路调度算法就无法有效保障性能优先的转发。另外,可以采用上述的最小单向传输时延作为选路调度算法,但是NTP协议典型的授时精度是10ms,误差较大,不适合作为RTT计算依据,而高精度时间协议(Precision Time Protocol,PTP)和IEEE 1588协议一般需要硬件支持,在终端设备上还不够普及。所以相关技术中尚未提供一种合理且有效的方法可以解决上述的技术问题。
本申请实施例提供了一种多路径传输的时延测量场景中支持测量单向传输时延的方案,通过第一设备向第二设备发送测量请求,在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告,向第二设备发送测量结果通告,该测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果;从而在存在一定的时域惯性特征的网络中实现第二设备能够根据测量结果通告按照最小单向传输时延优先的算法选择对应的单向路径进行数据报文传输,避免了相关技术中因为同一个业务流的报文往返时传输路径无绑定关系即可能采用不同的单向路径,导致RTT测量结果无法有效应用minRTT调度算法的问题,提高了数据调度的准确性,保证了多路径传输的传输性能。
首先,对本申请实施例中可能涉及的术语进行解释。
路径:是发送端与接收端之间的路径。路径可以用四元组来标识,该四元组用于表示源地址(和/或端口)和目的地址(和/或端口)对。应理解,支持多路径传输技术的接收端和发送端,都可以在其主机(host)中准备多个地址,以便标识多个路径。
在本申请实施例中,单向路径也称连接或单向流路径。示意性的,在MP-QUIC协议中,单向路径称为连接(Connection)或者单向流(uniflow)。单向路径与物理链路存在映射关系,根据建链情况和网络路由信息可以将单向路径映射到物理链路上,该映射关系在单向路径的MP-QUIC协议定义的生命周期内并不是固定的,可能随着网络部署的冗余链路在单物理链路故障场景发生变化。
多路径连接:通过一个应用,在两个主机间可以通信的一组连接,该组连接包括多个连接。其中,连接和应用的套接字(socket)之间可以是一一映射,也可以是多对一映射。多路径连接就是使用多个路径传输数据的连接。比如,在QUIC协议中,一个应用创建一个套接字,对应一个QUIC会话(Session),其中可以创建多个连接,应用可以不感知存在多个连接。
在本申请实施例中,第一设备和第二设备之间建立有多个单向路径即多路径连接,多路径连接包括MPQUIC协议连接,或者包括基于流量工程扩展的资源预留协议(Resource ReSerVation Protocol-Traffic Engineering,RSVP-TE)、或标签分发协议(Label Distribution Protocol,LDP)、或边界网关协议(Border Gateway Protocol,BGP)-虚拟专用网络(Virtual Private Network,VPN)/以太网虚拟专用网络(EthernetVirtual Private Network,EVPN)创建的标记交换路径(Label Switched Path,LSP)、或虚拟扩展局域网(Virtual Extensible Local Area Network,VXLAN)隧道、或通用路由封装(Generic Routing Encapsulation,GRE)隧道。为了方便说明,下面主要以第一设备与第二设备之间的多路径连接包括MPQUIC协议连接为例进行说明。非MPQUIC协议的多路径传输的时延测量场景可类比参考相关描述,在此不再赘述。
包(packet):带有头部(header)的一包数据,该头部可以是逻辑上完整或者不完整的。通常,是一物理上打包(physical packaging of data)的数据,当然,也可以是一逻辑上打包的数据(logical packaging of data)。包这个概念用于描述数据在主机以及与该主机相连的网络之间的交互。
ACK报文:也称为确认包、确认报文、ACK、反馈报文、通知。ACK报文中包括QUIC协议的ACK帧或MP_ACK帧,比如某一数据包的序列号,通常用于表示接收端通知发送端已接收到该数据包。
需要说明的是,本申请实施例所涉及的一部分相关名词(比如主机、路径、链路、子流)可参考IETF标准组织的文件中对应的相关描述,本文对此不再赘述。
RTT:表示发送端从发送数据开始,直到接收到接收端发送的对应该数据的接收确认信息(如ACK报文)的过程,所经历的时延。
第一设备/第二设备:第一设备/第二设备为物理设备或者虚拟设备。其中,物理设备是指物理设备是实际存在的设备;虚拟设备是指通过由物理设备变化成的多个对应的逻辑设备来表现的设备;逻辑设备是指与物理设备具有映射关系的,由逻辑元件构成的,可以进行逻辑运算(与,或,非等)的设备。其中,该映射关系可以包括逻辑设备名、物理设备名、设备驱动程序入口。
在某些场景下,第一设备和第二设备可能在同一物理设备上或者同一个集群中。
请参考图2,其示出本申请实施例提供的一种通信系统的架构示意图。该通信系统可以包括第一设备10和第二设备20。第一设备10和第二设备20均包括多个网络地址,如图2所示,第一设备10与第二设备20可以通过彼此的多个网络地址建立多个单向路径。比如单向路径1,单向路径2,……,单向路径N,N为大于1的正整数。第一设备10和第二设备20可以通过该多个单向路径进行多路径数据传输。
可选地,第一设备10与第二设备20之间建立的多路径连接包括MPQUIC协议连接。第一设备10和第二设备20之间采用MPQUIC协议传输数据。
在第一设备10与第二设备20之间的多路径连接建立后,既可以测量第二设备20到第一设备10的多个单向路径各自对应的单向传输时延,也可以测量第一设备10到第二设备20的多个单向路径各自对应的单向传输时延。
若需要测量第二设备20到第一设备10的多个单向路径各自对应的单向传输时延,则第一设备10作为报文接收端向第二设备20发送的测量请求,第二设备20作为报文发送端响应第一设备10发送的测量请求。
若需要测量第一设备10到第二设备20的多个单向路径各自对应的单向传输时延,则第二设备20作为报文接收端向第一设备10发送的测量请求,第一设备10作为报文发送端响应第二设备20发送的测量请求。
为了方便说明,本申请实施例仅以第一设备10为报文接收端,第二设备20为报文发送端,测量第二设备20到第一设备10的多个单向路径的单向传输时延为例进行说明。
第一设备10和第二设备20在建立上述多个单向路径后,协商数据调度策略,数据调度策略协商由报文接收端即第一设备10主动发起,第一设备10用于向第二设备20发送测量请求;在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告;向第二设备20发送测量结果通告,测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果。
其中,上述的单向路径可以是WiFi连接,蜂窝连接(如4G LTE连接,5G NR连接,3G连接,码分多址连接(Code Division Multiple Access,CDMA),2G连接等),蓝牙连接,数据传输线,近场通信NFC,红外,光保真(Light Fidelity,Li-fi)技术等,还可以是其他无线连接或者有线连接,对此,本申请实施例不做限定。
其中,第一设备10和/或第二设备20可以是具有无线通信功能的电子设备。可选地,第一设备10和/或第二设备20为智能设备,该智能设备用于配合无线上网(Wi-Fi)路由器按需提供免配置热点功能。示意性的,第一设备10和/或第二设备20为终端设备,比如可以是手机(mobile phone)、平板电脑(Pad)、带收发功能的电脑、虚拟现实(virtualreality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self-driving)中的无线终端、远程医疗(remote medical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、可穿戴设备、车载设备等。
第一设备10和/或第二设备20还可以是支持多路径传输协议的网元,包括网络侧设备,比如网关、接入路由器、核心路由器、前端路由器或者负载均衡器。第一设备10和/或第二设备20还可以是支持多路径传输协议的云端设备,比如服务器。服务器也称为服务端,服务端可以是为客户端服务的,服务端可以向客户端提供资源以及保存客户端数据等。
需要说明的是,第一设备10和第二设备20可以是同类的设备,比如,第一设备10和第二设备20均可以为通信终端类设备,如手机、智能手表、台式机、平板电脑、智能电视盒,UMPC、上网本、PDA或者PMP等。第一设备10和第二设备20也可以是不同类的设备。比如,第一设备10是通信终端类设备时,第二设备20可以是网络侧设备,如网关、服务器、接入路由器、核心路由器、前端路由器或者负载均衡器等。
下面,采用几个示例性实施例对本申请实施例提供的数据传输方法进行介绍。
请参考图3,其示出了本申请一个示例性实施例提供的数据传输方法的流程图,本实施例以该方法用于图2所示的通信系统中来举例说明。该方法包括以下几个步骤。
步骤301,第一设备向第二设备发送测量请求。
可选地,第二设备到第一设备之间建立完成多个单向路径,即第二设备的发送路径标识与第一设备的接收路径标识一一对应,且第一设备的发送路径标识和第二设备的接收路径标识也一一对应。在第一设备与第二设备之间建立完成多个单向路径后,第一设备主动发起测量请求,其中第一设备为报文接收端,第二设备为报文发送端。
可选地,测量请求为测量请求帧,或者,测量请求为数据报文中携带的测量请求选项或标记位。在一种可能的实现方式中,第一设备向第二设备发送测量请求帧。在另一种可能的实现方式中,第一设备向第二设备发送携带有测量请求选项或标记位的数据报文。在MPQUIC协议中,数据报文也称为QUIC报文,数据报文为包括Stream帧或ACK/MP_ACK帧的QUIC报文。
第一设备在第一单向路径上向第二设备发送一次测量请求,第一单向路径为第一设备到第二设备的多个单向路径中的任意一个单向路径。
可选地,第一单向路径为第一设备到第二设备的多个单向路径中单向传输时延最小的单向路径。
步骤302,第二设备接收第一设备发送的测量请求。
可选地,第二设备接收到第一设备在单向路径上发送的测量请求,其中单向路径为第一设备到第二设备的任意一个可用的单向路径,或者单向路径为第一设备到第二设备的多个单向路径中单向传输时延最小的单向路径。
可选地,测量请求用于指示第二设备在接收到测量请求后在多个单向路径上分别发送测量应答。
步骤303,第二设备在多个单向路径上分别发送测量应答。
第二设备在接收到测量请求后,在第二设备到第一设备的多个单向路径上分别发送对应的测量应答,该测量应答为测量请求对应的测量应答,该测量应答用于指示第二设备成功接收到该测量请求。
可选地,对于第二设备到第一设备的多个单向路径中的每个单向路径,第二设备在该单向路径上发送该测量应答。其中,第二设备到第一设备的多个单向路径为第二设备到第一设备的所有单向路径或者第二设备到第一设备的指定测量的多个单向路径。本申请实施例对此不加以限定。
可选地,传输测量应答的多个单向路径中的任意一个单向路径与传输测量请求的单向路径均不相同。或者,传输测量应答的多个单向路径中存在一个单向路径与传输测量请求的单向路径相同。
可选地,测量应答为测量应答帧。
步骤304,第一设备在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告。
第一设备依次接收到在多个单向路径上分别发送的测量应答后,测量比较多个单向路径各自对应的单向传输时延,根据多个单向路径各自对应的单向传输时延确定测量结果通告。
可选地,第一设备在多个单向路径中确定单向传输时延最小的单向路径。
需要说明的是,测量比较多个单向路径各自对应的单向传输时延,可以基于连接测量,不区分业务流,也可以基于业务流测量。若基于连接测量,则测量结果针对所有业务流的数据调度选路生效,若基于业务流测量,则测量结果只针对指定测量的业务流的数据调度选路生效。
步骤305,第一设备向第二设备发送测量结果通告,测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果。
可选地,第一设备在第一设备到第二设备的单向路径上发送测量结果通告,其中单向路径为第一设备到第二设备的任意一个可用的单向路径,或者单向路径为第一设备到第二设备的多个单向路径中单向传输时延最小的单向路径。
可选地,多个单向路径各自对应的单向传输时延的排序结果包括多个单向路径各自对应的单向传输时延从小到大的排序顺序,或者,多个单向路径各自对应的单向传输时延的排序结果包括多个单向路径各自对应的单向传输时延从大到小的排序顺序。本申请实施例对此不加以限定。
其中,测量结果通告中携带有测量序号。可选地,测量结果通告为测量结果通告帧。
步骤306,第二设备接收第一设备发送的测量结果通告。
第二设备接收第一设备发送的测量结果通告,测量结果通告以供第二设备在向第一设备发送数据报文时按最小单向传输时延优先的算法选择对应的单向路径发送数据报文。
测量结果通告用于指示单向传输时延最小的单向路径或者多个单向路径各自对应的单向传输时延的数值或排序结果。其中,多个单向路径为第二设备到第一设备的所有单向路径或者第二设备到第一设备的指定测量的多个单向路径。本申请实施例对此不加以限定。
第二设备到第一设备的所有单向路径中未参与测量的单向路径对应的单向传输时延默认为最大。
可选地,第二设备接收到第一设备在单向路径上发送的测量结果通告,其中单向路径为第一设备到第二设备的任意一个可用的单向路径,或者单向路径为第一设备到第二设备的多个单向路径中单向传输时延最小的单向路径。
可选地,传输测量应答的多个单向路径中的任意一个单向路径与传输测量结果通告的单向路径均不相同。或者,传输测量应答的多个单向路径中存在一个单向路径与传输测量结果通告的单向路径相同。
可选地,传输测量请求的单向路径与传输测量结果通告的单向路径为同一个单向路径,或者为不同的两个单向路径。本实施例对此不加以限定。
在一种可能的实现方式中,测量结果通告用于指示多个单向路径各自对应的单向传输时延的数值,则在本次测量任务完成后,第二设备按照单向传输时延的数值将多个单向路径进行排序,在排序后根据单向传输时延从小到大的顺序,按最小单向传输时延优先的算法选择对应的单向路径发送数据报文。
在另一种可能的实现方式中,测量结果通告用于指示多个单向路径各自对应的单向传输时延的排序结果,比如排序结果包括多个单向路径各自对应的单向传输时延从小到大的排序顺序,则在本次测量任务完成后,第二设备根据单向传输时延从小到大的顺序,按最小单向传输时延优先的算法选择对应的单向路径发送数据报文。
在另一种可能的实现方式中,测量结果通告用于指示单向传输时延最小的单向路径,则在本次测量任务完成后,第二设备在该单向传输时延最小的单向路径上发送数据报文。
需要说明的是,第一设备与第二设备之间交互的数据帧(比如测量请求帧、测量应答帧、测量结果通告帧)可以封装为数据报文后发送,并在对端设备接收到数据报文后解析得到其中的数据帧。在MPQUIC协议中,数据报文为QUIC报文。
综上所述,本申请实施例通过报文接收端即第一设备主动发起测量请求,通过与第二设备的三次交互,向第二设备通告第二设备到第一设备的多个单向路径各自对应的单向传输时延的数值或排序结果或者单向传输时延最小的单向路径;从而在存在一定的时域惯性特征的网络中实现第二设备能够根据测量结果通告按照最小单向传输时延优先的算法选择对应的单向路径进行数据报文传输,避免了相关技术中因为同一个业务流的报文往返时传输路径无绑定关系即可能采用不同的单向路径,导致RTT测量结果无法有效应用minRTT调度算法的问题,提高了数据调度的准确性,保证了多路径传输的传输性能。
本申请实施例还通过第二设备收到测量请求后,向所有到第一设备的单向路径上发送测量应答,以便第一设备能够准确地确定出第二设备到第一设备的多个单向路径各自对应的单向传输时延的测量情况。
请参考图4,其示出了本申请另一个示例性实施例提供的数据传输方法的流程图,本实施例以该方法用于图2所示的通信系统中来举例说明。该方法包括以下几个步骤。
步骤401,第一设备向第二设备发送测量请求,并记录测量请求对应的测量序号和发送时刻。
可选地,测量请求为操作触发或者事件触发或者周期任务触发。即第一设备向第二设备发送测量请求的触发条件,包括但不限于以下几种可能的实现方式:
在一种可能的实现方式中,第一设备在接收到预设操作信号的情况下,向第二设备发送测量请求。
在另一种可能的实现方式中,第一设备感知到预设触发事件的情况下,向第二设备发送测量请求。比如,预设触发事件为第一设备与第二设备之间的连接新增事件,连接新增事件为第二设备到第一设备的单向路径数量发生变更的事件。
可选的,第一设备在接收到第二设备发送的通知报文后,向第二设备发送测量请求,通知报文用于指示第二设备到第一设备的单向路径数量发生变更即连接新增事件。
在第二设备到第一设备的单向路径数量发生变更的情况下,第二设备向第一设备发送通知报文。第一设备在接收到第二设备发送的通知报文后,向第二设备发送测量请求。
示意性的,第二设备到第一设备的单向路径数量发生变更(比如从3个变成4个),第一设备接收到第二设备发送的MPQUIC通告报文,该MPQUIC协议通告报文用于指示连接新增事件或者单向流新增事件,在连接成功后触发本次测量任务,即向第二设备发送测量请求。
比如,MPQUIC协议通告报文为包括NEW_CONNECTION_ID/MP_NEW_CONNECTI ON_ID帧的QUIC报文,用于请求创建新的连接。又比如,MPQUIC协议通告报文为包括U NIFLOWS帧的QUIC报文,该UNIFLOWS帧中的单向流标识(uinflow ID)第一设备本地没有创建,用于请求创建新的单向流。
示意性的,第一设备接收到第二设备发送的BGP-VPN通告报文,该BGP-VPN通告报文用于指示标签路由新增事件,触发本次测量任务,即向第二设备发送测量请求。
在另一种可能的实现方式中,第一设备根据预配置或预定义的测量周期,向第二设备发送测量请求。
其中,测量周期可以是预配置的,也可以是第一设备与第二设备协议交互后确定的测量周期。比如,测量周期为5s。
示意性的,第一设备首次感知到连接新增事件后启动定时器,按照测量周期向第二设备发送测量请求。
需要说明的是,本实施例对发送测量请求的触发条件不加以限定。
可选地,以多路径连接为MPQUIC协议连接为例,第一设备与第二设备进行交互,完成QUIC会话和多路径连接的建立。第一设备触发本次测量任务时,生成本次测量任务的测量请求,向第二设备发送测量请求,并记录测量请求对应的测量序号和发送时刻。
其中,测量请求中携带有测量序号,测量序号用于指示本次测量任务。测量序号的初始值为零,创建下一次测量任务后对应的测量序号加一。
可选地,第一设备还记录指示传输测量请求的单向路径的单向路径标识。示意性的,单向路径标识为通信信道标识(Communication Channel ID,CID)。
可选地,第一设备在发送测量请求后启动本次测量任务的第一定时器,用于等待接收第二设备在多个单向路径上分别发送该测量应答。
可选地,第一设备生成本次测量任务的测量请求帧,将测量请求帧封装为数据报文,将数据报文发送至第二设备。可选地,测量请求对应的发送时刻为第一设备生成该测量请求帧的时刻。
示意性的,测量请求帧包括但不限于如下几个字段:类型字段、测量序号字段和时间戳字段。
1、类型字段,该类型字段用于指示帧类型为测量请求帧。比如,指示测量请求帧的类型字段Type为TBD1,比如0x80。
2、测量序号字段,该测量序号字段为指示测量序号的字段。比如,测量序号字段为Me asureTask SN。
3、时间戳字段,该时间戳字段为指示测量请求的发送时刻的字段。比如,时间戳字段为TimeStamp。其中,时间戳字段为可选的字段。
需要说明的是,上述仅示例性地对测量请求帧的帧格式进行介绍,本申请实施例对此不加以限定。
可选地,在MPQUIC协议中,测量请求帧封装的数据报文的报文头至少携带有第一单向路径标识。
步骤402,第二设备接收第一设备发送的测量请求。
第二设备接收第一设备发送的测量请求,并记录该测量请求的接收时刻。
需要说明的是,第二设备接收第一设备发送的测量请求的细节可参考上述实施例中的相关描述,在此不再赘述。
步骤403,第二设备在多个单向路径上分别发送测量应答。
第二设备接收到第一设备发送的测量请求后,对于第二设备到第二设备的多个单向路径中的每个单向路径,第二设备在该单向路径上发送该测量应答。
其中,测量应答携带有单向路径标识、测量序号和本地处理时延,单向路径标识用于指示传输测量应答的单向路径,本地处理时延为第二设备发送测量应答的时刻与接收测量请求的时刻之间的差值。
可选地,测量应答还携带有测量请求的接收时刻,即第二设备接收到测量请求的时刻。
可选地,第二设备接收到测量请求后启动本次测量任务的第二定时器,用于等待接收第一设备发送的测量结果通告。即在第二定时器所指示的第二测量超时时刻前,第二设备接收测量结果通告。
可选地,对于第二设备到第二设备的多个单向路径中的每个单向路径,第二设备生成该单向路径对应的测量应答帧,将该测量应答帧封装为数据报文,在该单向路径上发送该测量应答帧封装后的数据报文。可选地,第二设备发送测量应答的时刻为第二设备生成该测量应答帧的时刻。
示意性的,测量应答帧包括但不限于如下几个字段:类型字段、测量序号字段、时间戳字段和时延字段。
1、类型字段,该类型字段用于指示帧类型为测量应答帧。比如,指示测量应答帧的类型字段Type为TBD2,比如0x81。
2、测量序号字段,该测量序号字段为指示测量序号的字段。比如,测量序号字段为Me asureTask SN。
3、时间戳字段,该时间戳字段为指示测量请求的发送时刻的字段和/或指示测量请求的接收时刻的字段,比如,时间戳字段为TimeStamp。其中,时间戳字段为可选的字段。
4、时延字段,该时延字段为指示本地处理时延的字段。比如,时延字段为Delay。
需要说明的是,上述仅示例性地对测量应答帧的帧格式进行介绍,本申请实施例对此不加以限定。
步骤404,第一设备在接收到在多个单向路径上分别发送的测量应答后,根据多个单向路径各自对应的单向传输时延确定测量结果通告。
可选地,第一设备在发送测量请求后启动本次测量任务的第一定时器,在第一定时器所指示的第一测量超时时刻前,接收在多个单向路径上分别发送的测量应答。
若在单向路径上传输的测量应答发生丢失,则在第一测量超时时刻前第二设备可以在该单向路径上重传该测量应答。
可选地,第一设备在接收到每个单向路径上发送的测量应答后,确定测量应答对应的往返路径的往返时延,往返路径包括传输测量请求的单向路径和传输测量应答的单向路径;根据多个往返路径各自对应的单向路径标识和往返时延,确定多个单向路径各自对应的单向传输时延的数值或排序结果,单向路径标识用于指示传输测量应答的单向路径。第一设备根据多个单向路径各自对应的单向传输时延的数值或排序结果,确定测量结果通告。
其中测量应答对应的往返路径包括传输测量请求的单向路径和传输该测量应答的单向路径。往返路径的往返时延为传输测量请求的单向路径对应的单向传输时延与传输对应的测量应答的单向路径对应的单向传输时延之和。
可选地,传输测量应答的多个单向路径中的任意一个单向路径与传输测量请求的单向路径均不相同。或者,传输测量应答的多个单向路径中存在一个单向路径与传输测量请求的单向路径相同。
可选地,第一设备在接收到每个单向路径上发送的测量应答后,记录测量应答的接收时刻;根据测量应答的接收时刻、测量请求的发送时刻和测量应答携带的本地处理时延,确定测量应答对应的往返路径的往返时延。
可选地,测量请求的发送时刻在测量请求和测量应答中携带。第一设备在生成并发送测量请求时,记录该测量请求的发送时刻,将该发送时刻填充至测量请求中。第二设备记录测量请求的发送时刻,并将测量请求的发送时刻填充至测量应答中。
测量请求的发送时刻用于在第一设备接收到在多个单向路径上分别发送的测量应答后估算比较多个单向路径各自对应的单向传输时延。第一设备本地缓存该测量请求的发送时刻,在本次测量任务中第一设备收到多个测量应答或者本次测量任务失败后,可以删除缓存的记录(包括测量请求的发送时刻)。若测量请求和测量应答中携带有测量请求的发送时刻,则第一设备本地可以不用缓存该测量请求的发送时刻。
第一设备将测量应答的接收时刻与测量请求的发送时刻、测量应答携带的本地处理时延依次相减得到该测量应答对应的往返路径的往返时延。
示意性的,以单向路径标识为CID为例,第一设备在单向路径CID3发送测量请求,并记录测量请求的发送时刻T1,第一设备在接收到每个测量应答帧,记录测量应答帧对应的QUIC报文的接收时刻Tx(比如单向路径CID1上的接收时刻为T2,单向路径CID2上的接收时刻为T3),然后解析测量应答帧中的本地处理时延Dx(比如单向路径CID1的本地处理时延为D1,单向路径CID2的本地处理时延为D2),计算测量应答帧对应的往返路径的往返时延即RTT值。比如,往返路径即单向路径CID3和单向路径CID1的RTT(CID3,CID1)=T2-T1-D1=Delay(CID3)+Delay(CID1);往返路径即单向路径CID3和单向路径CID2的RTT(CID3,CID2)=T3-T1-D2=Delay(CID3)+Delay(CID2)。
可选地,第一设备根据多个往返路径各自对应的单向路径标识和往返时延,确定多个单向路径各自对应的单向传输时延的数值或排序结果。其中,多个单向路径为第二设备到第一设备之间的多个单向路径。
在一种可能的实现方式中,测量应答还携带有测量请求的接收时刻,第一设备可确定多个单向路径各自对应的单向传输时延的数值或排序结果。第一设备将测量请求的接收时刻与测量请求的发送时刻的差值确定为用于传输测量请求的单向路径的单向传输时延;根据该单向传输时延、单向路径标识和往返时延,确定第二设备到第一设备之间的多个单向路径各自对应的单向传输时延,从而确定多个单向路径各自对应的单向传输时延的数值或排序结果。
即对于每个往返路径,该往返路径包括用于传输测量请求的单向路径和用于传输测量应答的单向路径,将往返路径的往返时延与用于传输测量请求的单向路径的单向传输时延的差值确定为多个单向路径各自对应的单向传输时延。
示意性的,基于上述例子提供的往返时延RTT(CID3,CID1)和RTT(CID3,CID2),若测量应答帧携带有测量请求的接收时刻T4,则确定CID3对应的单向传输时延Ti=T4-T1,从而确定CID1对应的单向传输时延Ty=T2-T1-D1-Ti,CID2对应的单向传输时延Tz=T3-T1-D2-Ti。
在另一种可能的实现方式中,测量应答未携带有测量请求的接收时刻,第一设备可确定多个单向路径各自对应的单向传输时延的排序结果。由于往返时延为用于传输测量请求的单向路径的单向传输时延与用于传输测量应答的单向路径的单向传输时延之和,同一次测量任务中测量请求只传输一次,即用于传输测量请求的单向路径是相同的,则根据多个往返路径各自对应的往返时延,确定用于传输测量应答的多个单向路径各自对应的单向传输时延的数值或排序结果。多个往返时延各自对应的排序结果,即为多个往返时延各自对应的用于传输测量应答的单向路径对应的单向传输时延的排序结果。
示意性的,基于上述例子提供的往返时延RTT(CID3,CID1)和RTT(CID3,CID2),若RTT(CID3,CID1)小于RTT(CID3,CID2),则确定CID1对应的单向传输时延小于CID2对应的单向传输时延。
步骤405,第一设备向第二设备发送测量结果通告,测量结果通告包括单向路径标识列表或者单向传输时延最小的单向路径的单向路径标识,单向路径标识列表用于指示多个单向路径各自对应的单向传输时延的数值或排序结果。
第一设备确定单向路径标识列表或者单向传输时延最小的单向路径的单向路径标识后,向第二设备发送测量结果通告,测量结果通告包括单向路径标识列表或者单向传输时延最小的单向路径的单向路径标识。
可选地,第一设备根据多个单向路径各自对应的单向传输时延的数值或排序结果,得到单向路径标识列表,将单向路径标识列表和测量序号填充至测量结果通告帧中,将测量结果通告帧封装为数据报文后发送至第二设备。
示意性的,测量结果通告帧包括但不限于如下几个字段:类型字段、测量序号字段、数量字段、长度字段和单向路径标识列表字段。
1、类型字段,该类型字段用于指示帧类型为测量结果通告帧。比如,指示测量结果通告帧的类型字段Type为TBD3,比如0x82。
2、测量序号字段,该测量序号字段为指示测量序号的字段。比如,测量序号字段为Me asureTask SN。
3、数量字段,数量字段为指示单向路径标识列表中的单向路径标识的数量的字段。比如,数量字段为unipath num。
4、长度字段,长度字段为指示单向路径标识的长度的字段,对于同一组QUIC会话中的各个单向路径标识的字节长度定义相同。比如,长度字段为unipath ID length。
5、单向路径标识列表字段,该单向路径标识列表字段为指示单向路径标识列表的字段。比如,单向路径标识列表字段为unipath id list。
需要说明的是,上述仅示例性地对测量结果通告帧的帧格式进行介绍,本申请实施例对此不加以限定。
可选地,单向路径标识列表包括按照单向传输时延的大小顺序排序后的多个单向路径标识。比如,单向路径标识列表包括按照单向传输时延从小到大顺序依次排列的多个单向路径标识。
可选地,单向路径标识列表包括多个单向路径和多个单向路径各自对应的单向传输时延的数值。
第一设备向第二设备发送测量结果通告后,关闭第一定时器。若启动的第一定时器超时,表示本次测量任务失败,第一设备释放本次测量任务所使用的资源,包括第一定时器。
步骤406,第二设备接收第一设备发送的测量结果通告。
第二设备接收第一设备发送的测量结果通告,测量结果通告包括单向路径标识列表或者单向传输时延最小的单向路径的单向路径标识,单向路径标识列表用于指示多个单向路径各自对应的单向传输时延的数值或排序结果。
可选地,测量结果通告以供第二设备作为最小单向传输时延算法来调度业务数据选择合适的单向路径进行数据传输,满足业务数据的性能优先发送的述求。该数据调度算法对于测量应答帧这种需要在每个单向路径上发送的数据报文无效,测量应答帧通常不与其他的控制帧或数据帧合并打包到一个数据报文中,比如控制帧为ACK帧,数据帧为Stream帧。若将测量应答帧与其它的帧打包在一个数据报文,则以测量应答帧自身的单向路径选路为准。
可选地,第二设备接收到数据报文后解析得到测量结果通告帧。
需要说明的是,第二设备接收第一设备发送的测量结果通告的细节可参考上述实施例中的相关细节,在此不再赘述。
步骤407,第二设备在第二单向路径上向第一设备发送数据报文。
可选地,测量结果通告包括单向路径标识列表。在本次测量任务完成后,第二设备根据测量结果通告,按照单向传输时延从小到大的顺序选择当前可用的第二单向路径;在第二单向路径上向第一设备发送数据报文。
示意性的,第二设备根据测量结果通告,优先选择单向传输时延最小的单向路径作为第二单向路径;当该单向路径上的剩余带宽不足时,按照单向传输时延从小到大的顺序选择可用的单向路径作为第二单向路径。
可选地,测量结果通告包括单向传输时延最小的单向路径的单向路径标识,该单向路径标识对应的单向路径即为第二单向路径。在本次测量任务完成后,第二设备在该第二单向路径上向第一设备发送数据报文。
步骤408,第一设备接收第二设备在第二单向路径上发送的数据报文。
第一设备接收第二设备在第二单向路径上发送的数据报文,第二单向路径为第二设备按照单向传输时延从小到大的顺序选择的当前可用的单向路径。
需要说明的是,在MPQUIC协议中,上述的数据报文也称为QUIC报文。
在一个示意性的例子中,如图5所示,第一设备为主机A,第二设备为主机B,主机A与主机B之间建立有两个单向路径即单向路径1和单向路径2。若需测量主机B到主机A的多个单向路径各自对应的单向传输时延,则主机A主动发起测量。步骤501,主机A在单向路径1上向主机B发送测量请求帧,记录该测量请求帧的发送时刻T1。步骤502,主机B在单向路径1和单向路径2上向主机A分别发送测量请求帧对应的测量应答帧,该测量应答帧携带有单向路径标识和本地处理时延Delay。对于在多个单向路径上分别发送的测量应答帧中的每个测量应答帧,主机A在接收到该测量应答帧后,记录该测量应答帧的接收时刻Tx(比如单向路径1上的接收时刻为T2,单向路径2上的接收时刻为T3),读取测量应答帧中携带的单向路径标识和本地处理时延Delay(比如单向路径1的本地处理时延为D1,单向路径2的本地处理时延为D2)。对于每个往返连接,主机A根据接收时刻Tx、发送时刻T1和本地处理时延Delay计算该往返连接对应的RTT值(计算方式可类比参考上述实施例),从而确定单向路径1和单向路径2各自对应的单向传输时延的数值或排序结果。步骤503,主机A在单向路径1上向主机B发送测量结果通告帧,测量结果通告帧包括单向路径标识列表,单向路径标识列表用于指示单向路径1和单向路径2各自对应的单向传输时延的数值或排序结果。
综上所述,本申请实施例还通过在第二设备到第一设备的单向路径数量发生变更的情况下,向第一设备发送通知报文,第一设备在接收到第二设备发送的通知报文后,向第二设备发送测量请求;使得第一设备在感知到连接新增事件的情况下触发单向传输时延测量的测量任务,即测量任务是基于连接新增事件触发的,减少不必要的测量流程和网络开销。
在一种可能的实现方式中,以MPQUIC协议为例,本申请实施例提供的数据传输方法包括基于MPQUIC协议连接,比较多个单向路径各自对应的单向传输时延的大小的方法。以第一设备为MPQUIC接收端(比如MPQUIC客户端),第二设备为MPQUIC发送端(比如MPQUIC服务器)为例,比较MPQUIC发送端到MPQUIC接收端的多个单向路径各自对应的单向传输时延大小,测量请求发起前,MPQUIC接收端和MPQUIC发送端已经完成QUIC会话和多路径连接的建立。测量请求由MPQUIC接收端主动发起。
其中,MPQUIC接收端包括MPQUIC多连接管理模块。MPQUIC发送端包括MPQUIC协议模块。本申请实施例提供的数据传输方法包括但不限于如下步骤,如图6所示:
步骤601,MPQUIC接收端的MPQUIC多连接管理模块感知到连接新增事件,生成UNICONNECTIONS_DELAY_REQ帧。
MPQUIC接收端的MPQUIC多连接管理模块感知到MPQUIC发送端和MPQUIC接收端连接了多个单向路径,相当于感知到连接新增事件,触发本次测量任务,生成一个测量请求帧即UNICONNECTIONS_DELAY_REQ帧。
示意性的,UNICONNECTIONS_DELAY_REQ帧的定义如下:UNICONNECTIONS_DE LAY_REQ Frame{Type(8)=TBD1,MeasureTask SN(24),TimeStamp(64)}。
步骤602,MPQUIC接收端的MPQUIC多连接管理模块将UNICONNECTIONS_DELAY_REQ帧封装为一个QUIC报文,在任意一个可用的单向路径上将QUIC报文发送至MPQUIC发送端。
其中,UNICONNECTIONS_DELAY_REQ帧中携带有本次测量任务的测量序号SN。
MPQUIC接收端本地记录QUIC报文的发送时刻T1,启动本次测量任务的第一定时器准备接收对应的测量应答帧即UNICONNECTIONS_DELAY_RESP帧。
可选地,QUIC报文的发送时刻T1携带在UNICONNECTIONS_DELAY_REQ帧和对应的UNICONNECTIONS_DELAY_RESP帧中。
步骤603,MPQUIC发送端的MPQUIC协议模块收到该QUIC报文后,解析得到UNICONNECTIONS_DELAY_REQ帧。
MPQUIC发送端的MPQUIC协议模块收到该QUIC报文后,解析得到UNICONNECTIONS_DELAY_REQ帧,并记录接收到该QUIC报文的时刻Tr和本次测量任务的测量序号SN。
步骤604,MPQUIC发送端的MPQUIC协议模块将每个单向路径对应的UNICONNECTIONS_DELAY_RESP帧封装为一个QUIC报文,将多个单向路径各自对应的QUIC报文分别发送给MPQUIC接收端。
MPQUIC发送端的MPQUIC协议模块根据测量请求,检测本地的发送连接列表,发送连接列表包括MPQUIC发送端到MPQUIC接收端的多个单向路径。然后为每个单向路径生成一个测量应答帧即UNICONNECTIONS_DELAY_RESP帧。对于每个单向路径,将每个单向路径对应的UNICONNECTIONS_DELAY_RESP帧封装为一个QUIC报文,并在发送QUIC报文前,记录该QUIC报文的发送时刻Tt,将Tt与Tr相减得到的本地处理时延Dx和SN填充到UNICONNECTIONS_DELAY_RESP帧中。MPQUIC发送端的MPQUIC协议模块将多个QUIC报文分别发送给MPQUIC接收端。
示意性的,UNICONNECTIONS_DELAY_RESP帧的定义如下:UNICONNECTIONS_DE LAY_RESP Frame{Type(8)=TBD2,Measure Task SN(24),TimeStamp(64),Delay(i)}。
可选的,MPQUIC发送端的MPQUIC协议模块接收到UNICONNECTIONS_DELAY_REQ帧后启动第二定时器,该第二定时器用于等待MPQUIC接收端发送测量结果通告帧即UNICONNECTIONS_DELAY_RESULT帧。
步骤605,MPQUIC接收端的MPQUIC多连接管理模块收到每个UNICONNECTIONS_DELAY_RESP帧,记录对应QUIC报文接收时间Tx,解析UNICONNECTIONS_DELAY_RESP帧中携带的本地处理时延Dx,计算对应的往返连接的往返时延RTT值。
MPQUIC接收端的MPQUIC多连接管理模块在本次测量任务的测量周期内第一定时器所指示的第一测量超时时刻前,等待接收所有本地接收连接上MPQUIC发送端发送过来的UNICONNECTIONS_DELAY_RESP帧。收到每个UNICONNECTIONS_DELAY_RESP帧,都记录对应QUIC报文接收时间Tx,然后解析UNICONNECTIONS_DELAY_RESP帧的Dx,计算对应连接的RTT值。比如:测量请求的发送时刻为T1,MPQUIC发送端到MPQUIC接收端的单向路径1上的接收时刻为T2,对应的本地处理时延为D1;MPQUIC发送端到MPQUIC接收端的单向路径2上的接收时刻为T3,对应的本地处理时延为D2。RTT(CID3,CID1)=T2-T1-D1=Delay(CID3)+Delay(CID1)。RTT(CID3,CID2)=T3-T1-D2=Delay(CID3)+Delay(CID2)。
步骤606,MPQUIC接收端的MPQUIC多连接管理模块接收到多个UNICONNECTIONS_DELAY_RESP帧后,根据多个单向路径各自对应的单向传输时延确定UNICONNECTIONS_DELAY_RESULT帧。
可选地,MPQUIC接收端的MPQUIC多连接管理模块在第一测量超时时刻前接收到所有的UNICONNECTIONS_DELAY_RESP帧后,比较多个单向路径各自对应的单向传输时延,确定测量结果,即单向路径标识列表或者单向传输时延最小的单向路径的单向路径标识。
可选地,单向路径标识列表包括按照单向传输时延的大小顺序排序后的多个单向路径标识。比如,单向路径标识列表包括按照单向传输时延从小到大顺序依次排列的多个单向路径标识。
可选地,单向路径标识列表包括多个单向路径标识和多个单向路径标识各自对应的单向传输时延的数值。
MPQUIC接收端的MPQUIC多连接管理模块将测量结果和测量序号SN填充到测量结果通告帧即UNICONNECTIONS_DELAY_RESULT帧中。
示意性的,UNICONNECTIONS_DELAY_RESULT帧的定义如下:UNICONNECTIONS_DELAY_RESULT Frame{Type(8)=TBD3,Measure Task SN(24),unipath num(8),unipathID length(8),unipath id list(CID1,CID2)}。
步骤607,MPQUIC接收端的MPQUIC多连接管理模块将UNICONNECTIONS_DELAY_RESULT帧封装为一个QUIC报文,在任意一个单向路径上将该QUIC报文发送至MPQUIC发送端。
步骤608,MPQUIC发送端的MPQUIC协议模块收到该QUIC报文后,解析得到UNICONNECTIONS_DELAY_RESULT帧。
MPQUIC发送端的MPQUIC协议模块收到该QUIC报文后,解析得到UNICONNECTIONS_DELAY_RESULT帧,将测量结果(即单向路径标识列表或单向传输时延最小的单向路径的单向路径标识)应用给MPQUIC发送端的多连接调度器使用,供其作为最小传输时延算法来调度Stream帧等业务数据选择合适的单向路径进行数据传输,从而满足Stream帧等业务数据的性能优先发送的述求。
需要说明的是,本实施例中各个步骤的相关细节可参考上述实施例中的相关描述,在此不再赘述。
综上所述,基于MPQUIC协议,本申请实施例扩展提供了传输时延测量方案,不依赖IEEE1588协议等网络时间协议实现多个单向路径各自对应的单向传输时延的测量比较,从而使得MPQUIC发送端能够调度选择当前可用的最小单向传输时延的单向路径进行数据传输,保证了MPQUIC协议的多路径传输的传输性能。
请参考图7,其示出了本申请一个示例性实施例提供的数据传输装置的框图。该数据传输装置可以通过软件、硬件或者两者的结合实现成为图2所示的第一设备的全部或者一部分。该数据传输装置至少包括:发送单元710和处理单元720。
发送单元710,用于实现上述步骤301、305、401、405、501、503、602、607的功能以及各个步骤中隐含的第一设备侧的发送功能。
处理单元720,用于实现上述步骤304、404、408、601、605、606的功能以及各个步骤中隐含的第一设备侧的处理功能。
相关细节可结合参考图3至图6所述的方法实施例。
请参考图8,其示出了本申请另一个示例性实施例提供的数据传输装置的框图。该数据传输装置可以通过软件、硬件或者两者的结合实现成为图2所示的第二设备的全部或者一部分。该数据传输装置至少包括:接收单元810和发送单元820。
接收单元810,用于实现上述步骤302、306、402、406功能以及各个步骤中隐含的第二设备侧的接收功能。
发送单元820,用于实现上述步骤303、403、502、604的功能以及各个步骤中隐含的第二设备侧的发送功能。
相关细节可结合参考图3至图6所述的方法实施例。
请参考图9,其示出了本申请一个示例性实施例提供的第一设备的结构示意图。该第一设备可以是图2所示的第一设备。该第一设备包括:处理器91、接收器92、发射器93、存储器94和总线95。
处理器91包括一个或者一个以上处理核心,处理器91通过运行软件程序以及模块,从而执行各种功能应用以及信息处理。
接收器92和发射器93可以实现为一个通信组件,该通信组件可以是一块通信芯片,通信芯片中可以包括接收模块、发射模块和调制解调模块等,用于对信息进行调制和/或解调,并通过无线信号接收或发送该信息。
存储器94通过总线95与处理器91相连。存储器94存储有第一设备必要的程序指令和数据。
处理器91用于执行存储器94中的程序指令和数据以实现本申请各个方法实施例中由第一设备执行的各个步骤的功能。
处理器91通过运行存储器94中的至少一个程序指令,控制接收器92来实现上述各个步骤中第一设备侧的接收功能;处理器91通过运行存储器94中的至少一个程序指令,控制发射器93来实现上述各个步骤中第一设备侧的发送功能。
此外,存储器94可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随时存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
可以理解的是,图9仅仅示出了第一设备的简化设计。在其他的实施例中,第一设备可以包含任意数量的发射器,接收器,处理器,控制器,存储器,通信单元等,而所有可以实现本申请的第一设备都在本申请的保护范围之内。
请参考图10,其示出了本申请一个示例性实施例提供的第二设备的结构示意图。该第二设备可以是图2所示的第二设备。该第二设备包括:处理器101、接收器102、发射器103、存储器104和总线105。
处理器101包括一个或者一个以上处理核心,处理器101通过运行软件程序以及模块,从而执行各种功能应用以及信息处理。
接收器102和发射器103可以实现为一个通信组件,该通信组件可以是一块通信芯片,通信芯片中可以包括接收模块、发射模块和调制解调模块等,用于对信息进行调制和/或解调,并通过无线信号接收或发送该信息。
存储器104通过总线105与处理器101相连。存储器104存储有第二设备必要的程序指令和数据。
处理器101用于执行存储器104中的程序指令和数据以实现本申请各个方法实施例中由第二设备执行的各个步骤的功能。
处理器101通过运行存储器104中的至少一个程序指令,控制接收器102来实现上述各个步骤中第二设备侧的接收功能;处理器101通过运行存储器104中的至少一个程序指令,控制发射器103来实现上述各个步骤中第二设备侧的发送功能。
此外,存储器104可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随时存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
可以理解的是,图10仅仅示出了第二设备的简化设计。在其他的实施例中,第二设备可以包含任意数量的发射器,接收器,处理器,控制器,存储器,通信单元等,而所有可以实现本申请的第二设备都在本申请的保护范围之内。
本申请的实施例提供了一种数据传输装置,该装置包括:处理器以及用于存储处理器可执行指令的存储器;其中,处理器被配置为执行指令时实现上述方法。
本申请的实施例提供了一种计算机程序产品,包括计算机可读代码,或者承载有计算机可读代码的非易失性计算机可读存储介质,当计算机可读代码在电子设备的处理器中运行时,电子设备中的处理器执行上述方法。
本申请的实施例提供了一种数据传输系统,该数据传输系统包括第一设备和第二设备,该第一设备包括如图7所示的数据传输装置,该第二设备包括如图8所示的数据传输装置;或者,该第一设备包括如图9所示的第一设备,该第二设备包括如图10所示的第二设备。
本申请的实施例提供了一种非易失性计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令被处理器执行时实现上述方法。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RandomAccess Memory,RAM)、只读存储器(Read Only Memory,ROM)、可擦式可编程只读存储器(Electrically Programmable Read-Only-Memory,EPROM或闪存)、静态随机存取存储器(Static Random-Access Memory,SRAM)、便携式压缩盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、数字多功能盘(Digital Video Disc,DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。
这里所描述的计算机可读程序指令或代码可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(Instruction Set Architecture,ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(Local Area Network,LAN)或广域网(WideArea Network,WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(Field-ProgrammableGate Array,FPGA)或可编程逻辑阵列(Programmable Logic Array,PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。
这里参照根据本申请实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本申请的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本申请的多个实施例的装置、系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。
也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行相应的功能或动作的硬件(例如电路或ASIC(Application SpecificIntegrated Circuit,专用集成电路))来实现,或者可以用硬件和软件的组合,如固件等来实现。
尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看所述附图、公开内容、以及所附权利要求书,可理解并实现所述公开实施例的其它变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其它单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。
Claims (37)
1.一种数据传输方法,其特征在于,用于第一设备中,所述第一设备和第二设备之间建立有多个单向路径,所述方法包括:
向所述第二设备发送测量请求,所述测量请求为在任意一个单向路径上发送的一次测量请求;
在接收到在所述多个单向路径上分别发送的测量应答后,根据所述多个单向路径各自对应的单向传输时延确定测量结果通告;
向所述第二设备发送所述测量结果通告,所述测量结果通告用于指示所述单向传输时延最小的单向路径或者所述多个单向路径各自对应的所述单向传输时延的数值或排序结果;
所述在接收到在所述多个单向路径上分别发送的测量应答后,根据所述多个单向路径各自对应的单向传输时延确定测量结果通告,包括:
在接收到每个所述单向路径上发送的所述测量应答后,确定所述测量应答对应的往返路径的往返时延,所述往返路径包括传输所述测量请求的单向路径和传输所述测量应答的单向路径;
根据多个所述往返路径各自对应的单向路径标识和所述往返时延,确定所述多个单向路径各自对应的所述单向传输时延的数值或排序结果,所述单向路径标识用于指示传输所述测量应答的单向路径;
根据所述多个单向路径各自对应的所述单向传输时延的数值或排序结果,确定所述测量结果通告。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
记录所述测量请求对应的测量序号和所述测量请求的发送时刻,所述测量序号用于指示本次测量任务。
3.根据权利要求2所述的方法,其特征在于,
所述测量应答携带有所述单向路径标识、所述测量序号和本地处理时延,所述本地处理时延为所述第二设备发送所述测量应答的时刻与接收所述测量请求的时刻之间的差值。
4.根据权利要求1所述的方法,其特征在于,所述在接收到每个所述单向路径上发送的所述测量应答后,确定所述测量应答对应的往返路径的往返时延,包括:
在接收到每个所述单向路径上发送的所述测量应答后,记录所述测量应答的接收时刻;
根据所述测量应答的接收时刻、所述测量请求的发送时刻和所述测量应答携带的本地处理时延,确定所述测量应答对应的所述往返路径的所述往返时延。
5.根据权利要求1所述的方法,其特征在于,所述向所述第二设备发送测量请求,包括:
在接收到所述第二设备发送的通知报文后,向所述第二设备发送所述测量请求,所述通知报文用于指示所述第二设备到所述第一设备的单向路径数量发生变更;或者,
根据预配置或预定义的测量周期,向所述第二设备发送所述测量请求。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在发送所述测量请求后启动本次测量任务的第一定时器;
在所述第一定时器所指示的第一测量超时时刻前,接收在所述多个单向路径上分别发送的所述测量应答。
7.根据权利要求1所述的方法,其特征在于,
所述测量结果通告包括单向路径标识列表或者所述单向传输时延最小的单向路径的单向路径标识,所述单向路径标识列表用于指示所述多个单向路径各自对应的所述单向传输时延的数值或排序结果。
8.根据权利要求1至7任一所述的方法,其特征在于,所述测量结果通告用于指示所述多个单向路径各自对应的所述单向传输时延的数值或排序结果,所述向所述第二设备发送所述测量结果通告之后,还包括:
接收所述第二设备在第二单向路径上发送的数据报文,所述第二单向路径为所述第二设备按照所述单向传输时延从小到大的顺序选择的当前可用的单向路径。
9.根据权利要求1至7任一所述的方法,其特征在于,所述测量结果通告用于指示所述单向传输时延最小的单向路径,所述向所述第二设备发送所述测量结果通告之后,还包括:
接收所述第二设备在第三单向路径上发送的数据报文,所述第三单向路径为所述单向传输时延最小的单向路径。
10.根据权利要求1至7任一所述的方法,其特征在于,所述向所述第二设备发送测量请求,包括:
在第一单向路径上向所述第二设备发送一次所述测量请求,所述第一单向路径为所述第一设备到所述第二设备的多个单向路径中的任意一个单向路径。
11.根据权利要求1至7任一所述的方法,其特征在于,所述单向路径包括多路径快速UDP因特网连接MPQUIC协议的连接或者单向流。
12.一种数据传输方法,其特征在于,用于第二设备中,第一设备和所述第二设备之间建立有多个单向路径,所述方法包括:
接收所述第一设备发送的测量请求,所述测量请求为在任意一个单向路径上发送的一次测量请求;
在所述多个单向路径上分别发送测量应答,以使得所述第一设备在接收到每个所述单向路径上发送的所述测量应答后,确定所述测量应答对应的往返路径的往返时延,所述往返路径包括传输所述测量请求的单向路径和传输所述测量应答的单向路径;根据多个所述往返路径各自对应的单向路径标识和所述往返时延,确定所述多个单向路径各自对应的单向传输时延的数值或排序结果,所述单向路径标识用于指示传输所述测量应答的单向路径;根据所述多个单向路径各自对应的所述单向传输时延的数值或排序结果,确定测量结果通告;
接收所述第一设备发送的测量结果通告,所述测量结果通告用于指示所述单向传输时延最小的单向路径或者所述多个单向路径各自对应的单向传输时延的数值或排序结果。
13.根据权利要求12所述的方法,其特征在于,
所述测量应答携带有单向路径标识、测量序号和本地处理时延;
其中,所述单向路径标识用于指示传输所述测量应答的单向路径,所述测量序号用于指示本次测量任务,所述本地处理时延为所述第二设备发送所述测量应答的时刻与接收所述测量请求的时刻之间的差值。
14.根据权利要求12所述的方法,其特征在于,所述方法还包括:
在所述第二设备到所述第一设备的单向路径数量发生变更的情况下,向所述第一设备发送通知报文。
15.根据权利要求12所述的方法,其特征在于,所述方法还包括:
在接收到所述测量请求后启动本次测量任务的第二定时器;
在所述第二定时器所指示的第二测量超时时刻前,接收所述测量结果通告。
16.根据权利要求12所述的方法,其特征在于,
所述测量结果通告包括单向路径标识列表或者所述单向传输时延最小的单向路径的单向路径标识,所述单向路径标识列表用于指示所述多个单向路径各自对应的所述单向传输时延的数值或排序结果。
17.根据权利要求12至16任一所述的方法,其特征在于,所述测量结果通告用于指示所述多个单向路径各自对应的所述单向传输时延的数值或排序结果,所述方法还包括:
根据所述测量结果通告,按照所述单向传输时延从小到大的顺序选择当前可用的第二单向路径;
在所述第二单向路径上向所述第一设备发送数据报文。
18.根据权利要求12至16任一所述的方法,其特征在于,所述测量结果通告用于指示所述单向传输时延最小的单向路径,所述方法还包括:
在第三单向路径上向所述第一设备发送数据报文,所述第三单向路径为所述单向传输时延最小的单向路径。
19.根据权利要求12至16任一所述的方法,其特征在于,所述接收所述第一设备发送的测量请求,包括:
接收所述第一设备在第一单向路径上发送的一次所述测量请求,所述第一单向路径为所述第一设备到所述第二设备的多个单向路径中的任意一个单向路径。
20.根据权利要求12至16任一所述的方法,其特征在于,所述单向路径包括MPQUIC协议的连接或者单向流。
21.一种数据传输方法,其特征在于,用于包括第一设备和第二设备的数据传输系统中,所述第一设备和第二设备之间建立有多个单向路径,所述方法包括:
所述第一设备向所述第二设备发送测量请求,所述测量请求为在任意一个单向路径上发送的一次测量请求;
所述第二设备在接收到所述第一设备发送的所述测量请求后,在所述多个单向路径上分别发送测量应答;
所述第一设备在接收到在所述多个单向路径上分别发送的测量应答后,根据所述多个单向路径各自对应的单向传输时延确定测量结果通告;
所述第一设备向所述第二设备发送所述测量结果通告;
所述第二设备接收所述第一设备发送的所述测量结果通告;
其中,所述测量结果通告用于指示所述单向传输时延最小的单向路径或者所述多个单向路径各自对应的所述单向传输时延的数值或排序结果;
所述第一设备在接收到在所述多个单向路径上分别发送的测量应答后,根据所述多个单向路径各自对应的单向传输时延确定测量结果通告,包括:
所述第一设备在接收到每个所述单向路径上发送的所述测量应答后,确定所述测量应答对应的往返路径的往返时延,所述往返路径包括传输所述测量请求的单向路径和传输所述测量应答的单向路径;
所述第一设备根据多个所述往返路径各自对应的单向路径标识和所述往返时延,确定所述多个单向路径各自对应的所述单向传输时延的数值或排序结果,所述单向路径标识用于指示传输所述测量应答的单向路径;
所述第一设备根据所述多个单向路径各自对应的所述单向传输时延的数值或排序结果,确定所述测量结果通告。
22.根据权利要求21所述的方法,其特征在于,所述方法还包括:
所述第一设备记录所述测量请求对应的测量序号和所述测量请求的发送时刻,所述测量序号用于指示本次测量任务。
23.根据权利要求22所述的方法,其特征在于,
所述测量应答携带有所述单向路径标识、所述测量序号和本地处理时延,所述本地处理时延为所述第二设备发送所述测量应答的时刻与接收所述测量请求的时刻之间的差值。
24.根据权利要求21所述的方法,其特征在于,所述第一设备在接收到每个所述单向路径上发送的所述测量应答后,确定所述测量应答对应的往返路径的往返时延,包括:
所述第一设备在接收到每个所述单向路径上发送的所述测量应答后,记录所述测量应答的接收时刻;
所述第一设备根据所述测量应答的接收时刻、所述测量请求的发送时刻和所述测量应答携带的本地处理时延,确定所述测量应答对应的所述往返路径的所述往返时延。
25.根据权利要求21所述的方法,其特征在于,所述方法还包括:
在所述第二设备到所述第一设备的单向路径数量发生变更的情况下,所述第二设备向所述第一设备发送通知报文;
所述第一设备向所述第二设备发送测量请求,包括:
所述第一设备在接收到所述第二设备发送的所述通知报文后,向所述第二设备发送所述测量请求。
26.根据权利要求21所述的方法,其特征在于,所述第一设备向所述第二设备发送测量请求,包括:
所述第一设备根据预配置或预定义的测量周期,向所述第二设备发送所述测量请求。
27.根据权利要求21所述的方法,其特征在于,所述方法还包括:
所述第一设备在发送所述测量请求后启动本次测量任务的第一定时器;
所述第一设备在所述第一定时器所指示的第一测量超时时刻前,接收在所述多个单向路径上分别发送的所述测量应答。
28.根据权利要求21所述的方法,其特征在于,所述方法还包括:
所述第二设备在接收到所述测量请求后启动本次测量任务的第二定时器;
所述第二设备在所述第二定时器所指示的第二测量超时时刻前,接收所述测量结果通告。
29.根据权利要求21所述的方法,其特征在于,
所述测量结果通告包括单向路径标识列表或者所述单向传输时延最小的单向路径的单向路径标识,所述单向路径标识列表用于指示所述多个单向路径各自对应的所述单向传输时延的数值或排序结果。
30.根据权利要求21至29任一所述的方法,其特征在于,所述测量结果通告用于指示所述多个单向路径各自对应的所述单向传输时延的数值或排序结果,所述第二设备接收所述第一设备发送的所述测量结果通告之后,还包括:
所述第二设备根据所述测量结果通告,按照所述单向传输时延从小到大的顺序选择当前可用的第二单向路径;
所述第二设备在所述第二单向路径上向所述第一设备发送数据报文;
所述第一设备接收所述第二设备在所述第二单向路径上发送的所述数据报文。
31.根据权利要求21至29任一所述的方法,其特征在于,所述测量结果通告用于指示所述单向传输时延最小的单向路径,所述第二设备接收所述第一设备发送的所述测量结果通告之后,还包括:
所述第二设备在第三单向路径上向所述第一设备发送数据报文,所述第三单向路径为所述单向传输时延最小的单向路径;
所述第一设备接收所述第二设备在所述第三单向路径上发送的所述数据报文。
32.根据权利要求21至29任一所述的方法,其特征在于,所述第一设备向所述第二设备发送测量请求,包括:
所述第一设备在第一单向路径上向所述第二设备发送一次所述测量请求,所述第一单向路径为所述第一设备到所述第二设备的多个单向路径中的任意一个单向路径。
33.根据权利要求21至29任一所述的方法,其特征在于,所述单向路径包括MPQUIC协议的连接或者单向流。
34.一种数据传输装置,其特征在于,所述装置包括:
处理器;
用于存储处理器可执行指令的存储器;
其中,所述处理器被配置为执行所述指令时实现权利要求1-11任意一项所述的方法,或者实现权利要求12-20任意一项所述的方法。
35.一种数据传输系统,其特征在于,所述数据传输系统包括第一设备和第二设备,所述第一设备和第二设备之间建立有多个单向路径;
所述第一设备,用于执行权利要求1-11任意一项所述的方法;
所述第二设备,用于执行权利要求12-20任意一项所述的方法。
36.一种数据传输系统,其特征在于,所述数据传输系统包括第一设备和第二设备,所述第一设备和第二设备之间建立有多个单向路径;
所述数据传输系统,用于执行权利要求21-33任意一项所述的方法。
37.一种非易失性计算机可读存储介质,其上存储有计算机程序指令,其特征在于,所述计算机程序指令被处理器执行时实现权利要求1-11任意一项所述的方法,或者实现权利要求12-20任意一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011631931.3A CN114697240B (zh) | 2020-12-31 | 2020-12-31 | 数据传输方法、装置、系统及存储介质 |
PCT/CN2021/141242 WO2022143468A1 (zh) | 2020-12-31 | 2021-12-24 | 数据传输方法、装置、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011631931.3A CN114697240B (zh) | 2020-12-31 | 2020-12-31 | 数据传输方法、装置、系统及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114697240A CN114697240A (zh) | 2022-07-01 |
CN114697240B true CN114697240B (zh) | 2024-07-23 |
Family
ID=82134780
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011631931.3A Active CN114697240B (zh) | 2020-12-31 | 2020-12-31 | 数据传输方法、装置、系统及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114697240B (zh) |
WO (1) | WO2022143468A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024022334A1 (zh) * | 2022-07-26 | 2024-02-01 | 抖音视界有限公司 | 数据传输方法、装置和系统 |
CN117081847B (zh) * | 2023-09-27 | 2024-04-30 | 青岛中企英才集团教育科技有限公司 | 一种基于区块链的金融数据处理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631357A (zh) * | 2008-07-18 | 2010-01-20 | 中国移动通信集团公司 | 一种选择性应答分组传输方法、装置及终端 |
CN102185771A (zh) * | 2011-05-05 | 2011-09-14 | 清华大学 | Mptcp中发送方数据包调度方法及系统 |
CN103905463A (zh) * | 2014-04-21 | 2014-07-02 | 北京邮电大学 | 一种适用于多路径传输的连接管理与控制方法 |
CN108924063A (zh) * | 2018-06-29 | 2018-11-30 | 浙江大学 | 一种时延约束感知的最小化端到端时延的流量分配方法 |
CN112040526A (zh) * | 2020-08-25 | 2020-12-04 | 普联技术有限公司 | 一种通信路径选择方法、设备及通信系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2101452A1 (en) * | 2008-03-13 | 2009-09-16 | Alcatel Lucent | Methods and systems for recovery of bidirectional connections |
CN105933232B (zh) * | 2016-03-29 | 2018-10-23 | 东北大学 | 支持多业务数据传输需求的多径传输控制终端及方法 |
CN105791054B (zh) * | 2016-04-22 | 2018-10-19 | 西安交通大学 | 一种基于流分类实现的自主可控可靠组播传输方法 |
CN108092888B (zh) * | 2017-10-31 | 2021-06-08 | 华为技术有限公司 | 一种基于Overlay网络的传输方法、网关及传输系统 |
CN110086578B (zh) * | 2018-01-25 | 2021-06-01 | 华为技术有限公司 | 数据传输方法、装置和系统 |
CN108696449B (zh) * | 2018-05-09 | 2020-10-09 | 清华大学 | 一种数据调度方法及装置 |
-
2020
- 2020-12-31 CN CN202011631931.3A patent/CN114697240B/zh active Active
-
2021
- 2021-12-24 WO PCT/CN2021/141242 patent/WO2022143468A1/zh active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101631357A (zh) * | 2008-07-18 | 2010-01-20 | 中国移动通信集团公司 | 一种选择性应答分组传输方法、装置及终端 |
CN102185771A (zh) * | 2011-05-05 | 2011-09-14 | 清华大学 | Mptcp中发送方数据包调度方法及系统 |
CN103905463A (zh) * | 2014-04-21 | 2014-07-02 | 北京邮电大学 | 一种适用于多路径传输的连接管理与控制方法 |
CN108924063A (zh) * | 2018-06-29 | 2018-11-30 | 浙江大学 | 一种时延约束感知的最小化端到端时延的流量分配方法 |
CN112040526A (zh) * | 2020-08-25 | 2020-12-04 | 普联技术有限公司 | 一种通信路径选择方法、设备及通信系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2022143468A1 (zh) | 2022-07-07 |
CN114697240A (zh) | 2022-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112889254B (zh) | 使用策略处理数据包的方法和系统 | |
US10237153B2 (en) | Packet retransmission method and apparatus | |
US20200358886A1 (en) | Data Transmission Method, Apparatus, And System | |
EP2984784B1 (en) | System and method for providing a software defined protocol stack | |
EP3154227B1 (en) | Packet transmission method, node, path management server and storage medium | |
US10849008B2 (en) | Processing method and device for radio bearer for transmitting data stream | |
US11064330B2 (en) | Methods for enabling delay-awareness in the constrained application protocol (CoAP) | |
CN109412946B (zh) | 一种确定回源路径的方法、装置、服务器及可读存储介质 | |
CN104954279B (zh) | 一种传输控制方法、装置及系统 | |
CN112165725A (zh) | 报文处理的方法及设备 | |
CN114128228B (zh) | 通过SRv6头传输MTNC-ID以实现5G传输 | |
CN114697240B (zh) | 数据传输方法、装置、系统及存储介质 | |
JP7327730B2 (ja) | パケット処理方法および装置 | |
KR102442083B1 (ko) | Tcp 터널들 및 고유 tcp 정보를 기초로 하는 번들링 시나리오에서 패킷들의 스케줄링을 위한 방법 및 시스템 | |
US11252608B2 (en) | Method and apparatus for transmitting data in wireless communication system | |
CN113455043A (zh) | 用于处置通信系统中的分组延迟预算划分和服务质量监测的方法和装置 | |
US11115343B2 (en) | Transport layer providing deterministic transport across multiple deterministic data links | |
WO2019235136A1 (ja) | 転送システム及び転送方法 | |
CN117812746A (zh) | 一种协议数据单元集合传输方法及装置 | |
WO2023093804A1 (zh) | 一种丢包管理方法及相关装置 | |
KR20120078288A (ko) | 프록시를 사용하여 다중 무선 네트워크를 이용하는 통신 방법 및 장치 | |
AU2018407956A1 (en) | Mobile communication system, method and device | |
US11870865B2 (en) | Distributed proxy for encrypted transport protocol with efficient multi-priority multiplexed transport for improving user's traffic QoS | |
WO2022247416A1 (zh) | 一种数据传输方法、装置及系统 | |
WO2023045901A1 (zh) | 一种数据的传输方法及设备 |
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 | ||
GR01 | Patent grant |