CN110875799B - 一种传输控制方法和装置 - Google Patents

一种传输控制方法和装置 Download PDF

Info

Publication number
CN110875799B
CN110875799B CN201811025822.XA CN201811025822A CN110875799B CN 110875799 B CN110875799 B CN 110875799B CN 201811025822 A CN201811025822 A CN 201811025822A CN 110875799 B CN110875799 B CN 110875799B
Authority
CN
China
Prior art keywords
sequence number
control signaling
message
control
data
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
Application number
CN201811025822.XA
Other languages
English (en)
Other versions
CN110875799A (zh
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201811025822.XA priority Critical patent/CN110875799B/zh
Priority to EP19856989.9A priority patent/EP3780440A4/en
Priority to KR1020207033330A priority patent/KR102452752B1/ko
Priority to PCT/CN2019/104343 priority patent/WO2020048478A1/zh
Priority to JP2020566640A priority patent/JP7142722B2/ja
Publication of CN110875799A publication Critical patent/CN110875799A/zh
Priority to US17/097,794 priority patent/US11477130B2/en
Application granted granted Critical
Publication of CN110875799B publication Critical patent/CN110875799B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/24Multipath
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0023Systems modifying transmission characteristics according to link quality, e.g. power backoff characterised by the signalling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/22Arrangements for detecting or preventing errors in the information received using redundant apparatus to increase reliability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/10Active monitoring, e.g. heartbeat, ping or trace-route
    • H04L43/106Active monitoring, e.g. heartbeat, ping or trace-route using time related information in packets, e.g. by adding timestamps
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/18End to end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • H04L47/263Rate modification at the source after receiving feedback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Quality & Reliability (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • General Health & Medical Sciences (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

本申请记载一种传输控制方法,控制方设备通过发送携带多种参数的发送控制信令,控制对端设备发送数据报文,更进一步的,还可以配合其他种类的控制信令,控制对端设备反馈数据报文的发送情况,以及反馈数据报文的接收情况的操作。这样,通过连接一端的设备发送的控制信令,使得另一端的设备无需决策,只需简单地根据控制信令中携带的参数发送报文即可。一旦指定一端设备控制数据的传输,通过修改该端设备发送的控制信令中的参数,以及发送的控制信令的顺序,即可方便地完成多种传输算法的实施、升级和修改。

Description

一种传输控制方法和装置
技术领域
本发明涉及通信领域,尤其涉及一种传输控制方法和装置。
背景技术
传统的通信模式中,通常使用发送端决策的协议栈架构,即由数据的发送端决策报文如何传输,例如常见的传输控制协议(Transmission Control Protocol,TCP),用户数据报协议(User Datagram Protocol,UDP),或者Google提出的快速UDP网络连接(QuickUDP Internet Connections,QUIC),例如图1所示;或者,为了在一些场景下获得更好的传输性能(例如能更好地感知网络拥塞),也可以使用接收端决策的协议栈架构,如图2所示。
一个连接的数据发送端或数据接收端所在的设备可以称为端节点设备,实际组网结构中该端节点设备可以是例如终端设备,云端设备(如云端服务器)、一部分传输设备(如云端代理服务器、负载均衡器或者混合接入网关)等。一个端节点设备在不同的连接或者不同的时间段可以扮演不同的角色,例如可以在一个连接中是发送端,在另一个连接中是接收端。因此,现有的协议中,一个连接的两个端节点设备的协议栈都需要具备控制报文传输的能力,例如对于发送端决策的协议栈架构,所有具有发送报文能力的端设备都需要具备控制报文传输的能力。也就是从设备的角度,连接的两端的设备都要包括用于实现报文控制的模块,报文的传输控制需要双端协同。上述的双端控制实现比较复杂,在很多实际业务场景中协议升级不便,传输控制算法转换响应慢,控制不够灵活。
发明内容
有鉴于此,本发明实施例提供了一种传输控制方法和装置,通过连接一端的设备发送的控制信令,使得另一端的设备无需决策,只需简单地根据控制信令中携带的参数发送报文即可。进一步的,一旦指定一端设备控制数据的传输,通过修改该端设备发送的控制信令中的参数,以及发送的控制信令的顺序,即可实施传输算法,也可以完成传输算法的升级和修改,使传输算法的实施、修改和升级更加方便。
第一方面,本发明实施例提供一种传输控制方法,该方法包括第一设备向第二设备发送第一控制信令,所述第一控制信令指示所述第二设备发送第一组数据报文,以及,该第一设备接收来自所述第二设备的至少一个数据报文,所述至少一个数据报文为所述第一组数据报文中的数据报文。
其中,所述第一控制信令包括第一报文序列号、第一报文序列号范围和第一发送时间间隔,所述第一组数据报文为从所述第一报文序列号起,在所述第一报文序列号范围内的数据报文,所述第一发送时间间隔指示发送所述第一组数据报文中的数据报文的时间间隔;所述第一设备接收来自所述第二设备的至少一个数据报文,所述至少一个数据报文为所述第一组数据报文中的数据报文。
第一方面描述的方法执行于控制方,控制方就是一个连接中,发送本申请中描述的各种控制信令的设备。第一方面中提及的各种控制信令可以封装在帧中,或者封装在报文中,也可以封装在帧中,再封装在报文内。一个报文中可以封装多个携带控制信令的帧,每个帧中可以封装一个或多个控制信令。
第一控制信令是发送控制信令,用于指示第二设备发送该第一组数据报文。
需要说明的是,发送时间间隔是与时间有关的参数,可以用带宽来表示,也可以直接用执行发送两个报文的动作的时间间隔来表示。
一种实现方式下,该第一控制信令封装在握手报文中,所述握手报文为所述第一设备与第二设备建立连接过程中使用的报文。这样,就可以在建链过程就向第二设备发送控制信令,使第二设备能尽快地发送数据报文,避免了由于发送控制信令带来的第二设备较现有技术而言,要稍晚发送数据报文的问题。
一种实现方式下,该第一控制信令封装于第一控制帧,所述第一控制帧包括类型字段,初始报文序列号字段,报文序列号范围字段和发送时间间隔字段,其中,所述第一控制帧中类型字段的值对应所述第一控制信令的类型,所述第一控制帧中的所述初始报文序列号字段的值指示所述第一报文序列号,所述第一控制帧中的所述报文序列号范围字段的值指示所述第一报文序列号范围,所述第一控制帧中的所述发送时间间隔字段的值指示为所述第一发送时间间隔。
一种实现方式下,该第一控制帧还包括流识别号字段,该第一控制帧的流识别号字段的值用于指示该第一组报文所属的数据流。一种实现方式下,该第一控制帧与第五控制帧封装在同一报文中,该第五控制帧封装有第五控制信令,该第五控制帧也包括流识别号字段,所述第五控制信令用于指示所述第二设备发送第五组报文,该第五控制帧的流识别号字段的值用于指示该第五组报文所属的数据流。
这样,通过连接一端的设备发送的控制信令,使得另一端的设备无需决策,只需简单地根据控制信令中携带的参数发送报文即可。应理解,第二设备接收到该第一控制信令后,就会按照其指示发送第一组报文,但是由于有发送时延和传输时延,该第一组报文不会同时或者以发送时间间隔依次到达第一设备,有可能乱序或者丢包,故第一设备接收到一个或多个第一组数据报文中的数据报文,且在下文的一种实施方式下,会继续发送其他控制指令,以加强控制。
一种实现方式下,所述第一设备根据接收的第一数据报文发送第二控制信令。
其中,该第一数据报文的报文序列号在所述至少一个数据报文中最大,所述第二控制信令指示所述第二设备发送第二组数据报文,所述第二控制信令包括第二报文序列号、第二报文序列号范围和第二发送时间间隔,所述第二组数据报文为从所述第二报文序列号起,在所述第二报文序列号范围内的数据报文,所述第二发送时间间隔指示发送所述第二组数据报文中的数据报文的时间间隔,其中,所述第二报文序列号大于所述第一数据报文的报文序列号。
这样,第一设备不会等到第一组数据报文全部接收后再发送新的控制信令,能够更加灵活有效地对对端进行发送控制。一些实现方式下,可以有一定的条件触发第二控制信令发送,这些条件多种多样,可以是超过某个时间第一组数据仍然没有全部接收;或者规定每接收到几个数据报文就再发送一条控制信令等等。
一种实现方式下,接收来自所述第二设备的至少一个数据报文后,该方法还包括:第一设备向所述第二设备发送第三控制信令,所述第三控制信令包括所述第一报文序列号;第一设备接收来自所述第二设备对所述第三控制信令的响应,所述第三控制信令的响应包括所述第一报文序列号,以及从所述第一报文序列号起,至少一个待发送的数据报文的信息。
一种实现方式下,第三控制信令的响应还包括:从该第一报文序列号起,多个已发送的数据报文的信息。上述多个未发送或者已发送的数据报文的信息可以是数据报文的序列号,也可以是数据报文的数目。
这样,第一设备就可指示第二设备反馈该第一组数据报文的发送情况,实时追踪对端设备发送报文的情况。这样第一设备就可以根据反馈的信息,及时调整接下来的控制信令中的参数。上述的几种控制指令及其响应,可以执行本申请的发送控制的部分,通过携带不同的参数和在不同的条件下发送,就可以完成各种用于发送数据的传输控制算法。一种实现方式下,该第一设备中存储有对应于不同传输控制算法的代码,对应每种传输控制算法的代码中应包括多条控制信令。对应一种传输控制算法的代码用于描述在何种条件下按何种顺序执行这些控制信令,以及如何修改这些控制信令中的参数,以执行对应的传输控制算法。
一种实现方式下,该方法还包括第一设备向所述第二设备发送第三组数据报文,所述第三组数据报文为从第三报文序列号起,在第三报文序列号范围内的数据报文;该第一设备向所述第二设备发送第四控制信令,所述第四控制信令包括所述第三报文序列号,所述第三报文序列号范围和时间戳,所述时间戳为所述第一设备发送所述第四控制信令的***时间;第一设备接收来自所述第二设备对所述第四控制信令的响应,所述第四控制信令的响应包括所述时间戳,所述第四控制信令的响应还包括所述第三组数据报文中被接收或者未被接收的数据报文的信息。
第三组数据报文中被接收或者未被接收的数据报文的信息,可以是数据报文的数目或者数据报文的序列号,也可以是这些数据报文对应的数据块的信息,如数据块的数目或者序号。
这样,就可以实现对对端设备的接收控制,即控制对端设备在何时返回对哪些数据报文的接收情况的反馈,从而结合前文描述的发送控制,完整实现了对报文的传输的控制。
一种实现方式下,该第四控制信令封装于第四控制帧,所述第四控制帧包括类型字段、初始报文序列号字段、报文序列号范围字段和时间戳字段,其中,所述第四控制帧中的所述类型字段的值对应所述第四控制信令的类型,所述第四控制帧中的所述初始报文序列号字段的值指示所述第三报文序列号,所述第四控制帧中的所述报文序列号范围字段的值为所述第三报文序列号范围。
一种实现方式下,该第一组数据报文,所述第二组数据报文和所述第三组数据报文分别携带第一流标识号,所述第一控制信令,第二控制信令,第三控制信令,第四控制信令,所述第三控制信令的响应以及所述第四控制信令的响应所在的报文分别携带第二流标识号。
一种实现方式下,该方法还包括:所述第一设备向所述第二设备发送第一协商信令,所述协商信令包括所述第一设备的传输参数和角色参数,所述第一设备的传输参数表示所述第一设备的传输能力,所述角色参数表示所述第一设备控制报文的传输;所述第一设备接收来自所述第二设备的第二协商信令,所述协商信令包括所述第二设备的传输参数和角色参数,所述第二设备的传输参数表示所述第二设备的传输能力,所述角色参数的值表示所述第二设备不控制报文的传输;所述第一设备根据所述第一设备的传输参数,所述第二设备的传输参数,所述第二设备的角色参数以及协商规则。
第二方面,本申请实施例描述了一种传输控制方法,该方法包括:第一设备与第二设备建立连接,所述连接对应多条路径;所述第一设备在所述多条路径中的第一路径上向第二设备发送第一报文,所述第一报文包括双路径标识;在所述双路径标识指示报文传输方式为单路径传输时,所述第一设备从所述第一路径上接收所述第二设备发送的报文;在所述双路径标识指示报文传输方式为多路径传输时,所述第一设备从所述多条路径的每条路径上,接收所述第二设备发送的报文。
其中,所述多路径传输为冗余传输或者聚合传输中的任意一种。该双路径标识用于指示所述连接的报文传输方式。这样,在多路径传输场景下,可以通过双路径标识,指示对端设备发送数据的方式。
第三方面,本申请实施例描述了一种传输控制方法,该方法包括:第二设备接收来自第一设备的第一控制信令,所述第一控制信令包括第一报文序列号、第一报文序列号范围和第一发送时间间隔;所述第二设备根据所述第一控制信令,以所述第一发送时间间隔,向所述第一设备发送多个第一数据报文,所述多个第一数据报文为从所述第一报文序列号起,在所述第一报文序列号范围内的数据报文。
由于第三方面描述的方法与第一方面的描述的方法对应,只是第三方面是站在第二设备的角度进行描述,故有关第三方面的各种实现方式,说明和有益效果,请参考第一方面的描述。
第四方面,本申请实施例描述了一种传输控制方法,第一设备与第二设备之间的连接对应多条路径,所述方法包括:第二设备从所述多条路径中的第一路径接收来自于所述第一设备的第一报文,所述第一报文包括双路径标识,所述双路径标识用于指示所述连接的报文传输方式;在所述双路径标识指示所述报文传输方式为单路径传输情况下,所述第二设备从所述第一路径上,向所述第一设备发送报文;在所述双路径标识指示所述报文传输方式为多路径传输情况下,所述第二设备从所述多条路径的每条路径上,向所述第一设备发送报文。
其中,所述多路径传输为冗余传输或者聚合传输中的任意一种。该双路径标识用于指示所述连接的报文传输方式。这样,在多路径传输场景下,可以通过双路径标识,指示对端设备发送数据的方式。
第五方面,本申请实施例描述一种用于传输控制的装置,该装置包括:控制模块,所述控制模块用于生成第一控制信令;发送模块,所述发送模块用于向第二设备发送第一控制信令,所述第一控制信令指示所述第二设备发送第一组数据报文,其中,所述第一控制信令包括第一报文序列号、第一报文序列号范围和第一发送时间间隔,所述第一组数据报文为从所述第一报文序列号起,在所述第一报文序列号范围内的数据报文,所述第一发送时间间隔指示发送所述第一组数据报文中的数据报文的时间间隔;接收模块,所述接收模块用于接收来自所述第二设备的至少一个数据报文,所述至少一个数据报文为所述第一组数据报文中的数据报文。
一种实现方式下,控制模块还用于通过接口函数,向所述发送模块下发所述第一控制信令。
第五方面描述的装置可以执行第一方面描述的方法。由于第五方面描述的装置与第一方面的描述的方法对应,故有关第五方面的各种实现方式,说明和有益效果,请参考第一方面的描述。
第六方面,本申请实施例记载一种用于传输控制的装置,该装置位于第一设备,所述第一设备与第二设备之间的连接对应多条路径,所述装置包括控制模块,所述控制模块用于生成第一报文,所述第一报文包括双路径标识;发送模块,所述发送模块用于在所述多条路径中的第一路径上向第二设备发送所述第一报文;接收模块,所述接收模块用于在所述双路径标识指示报文传输方式为单路径传输时,所述第一设备从所述第一路径上接收所述第二设备发送的报文;在所述双路径标识指示报文传输方式为多路径传输时,所述第一设备从所述多条路径的每条路径上,接收所述第二设备发送的报文。
其中,所述多路径传输为冗余传输或者聚合传输中的任意一种。这样,在多路径传输场景下,可以通过双路径标识,指示对端设备发送数据的方式。
一种实现方式下,控制模块还用于通过接口函数,向所述发送模块下发所述第一报文。
第七方面,本申请实施例记载一种传输被控制的装置,该装置包括接收模块和发送模块,所述接收模块用于接收来自第一设备的第一控制信令,所述第一控制信令包括第一报文序列号、第一报文序列号范围和第一发送时间间隔;所述发送模块用于根据所述第一控制信令,以所述第一发送时间间隔,向所述第一设备发送多个第一数据报文,所述多个第一数据报文为从所述第一报文序列号起,在所述第一报文序列号范围内的数据报文。
第七方面描述的是对应于第三方面的方法的装置,由于第三方面描述的方法与第一方面的描述的方法对应,只是第三方面是站在第二设备的角度进行描述,故有关第三方面的各种实现方式,说明和有益效果,请参考第一方面的描述。
第八方面,本申请实施例记载一种传输被控制的装置,该装置位于第二设备,其中第一设备与所述第二设备之间的连接对应多条路径,所述装置包括接收模块和发送模块,所述接收模块用于从所述多条路径中的第一路径接收来自于所述第一设备的第一报文,所述第一报文包括双路径标识,所述双路径标识用于指示所述连接的报文传输方式;所述发送模块用于在所述双路径标识指示所述报文传输方式为单路径传输情况下,所述第二设备从所述第一路径上,向所述第一设备发送报文;在所述双路径标识指示所述报文传输方式为多路径传输情况下,所述第二设备从所述多条路径的每条路径上,向所述第一设备发送报文。
其中,所述多路径传输为冗余传输或者聚合传输中的任意一种。这样,在多路径传输场景下,可以通过双路径标识,指示对端设备发送数据的方式。
第九方面,本申请实施例记载一种传输控制设备,其特征在于,所述设备包括处理电路、通信接口和存储介质,所述存储介质中存储有指令,所述通信接口用于根据所述处理器下发的所述指令与其他设备进行信息交互,所述处理器用于运行所述存储介质中的所述指令控制所述通信接口,以实现如第一方面或第二方面任一实现方式中所述的方法。
第九方面是第一方面或者第二方面对应的装置,其各种具体的实现方式、说明以及技术效果请参考第一方面和第二方面的描述,此处不再赘述。
第十方面,本申请实施例描述一种传输被控制的设备,其特征在于,所述设备包括处理电路、通信接口和存储介质,所述存储介质中存储有指令,所述通信接口用于根据所述处理器下发的所述指令与其他设备进行信息交互,所述处理器用于运行所述存储介质中的所述指令控制所述通信接口,以实现如第三方面或第四方面任一实现方式中所述的方法。
第十方面是第三方面或者第四方面对应的装置,其各种具体的实现方式、说明以及技术效果请参考第三方面和第四方面的描述,此处不再赘述。
第十一方面,提供一种计算机程序产品,所述计算机程序产品中存储有用于实现第一至第四方面中各种实现方式中任意一种方法的程序代码。
第十二方面,提供一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得所述计算机执行用于实现第一至第四方面中各种实现方式中任意一种方法的程序代码。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为数据发送端控制传输的***的示意图;
图2为数据接收控制传输的***的示意图;
图3为本申请涉及的一种组网***的示意图;
图4为本申请描述的一种设备的结构图;
图5为本申请描述的一种帧头的示意图;
图6为本申请描述的一种发送控制信令的示意图;
图7为本申请描述的一种对端信息请求信令的响应的示意图;
图8为本申请描述的一种接收控制信令的示意图;
图9为本申请描述的一种传输控制方法的流程图;
图10为本申请描述的一种用于执行传输控制方法的***的示意图;
图11为本申请描述的一种协商控制方的方法的信令交互示意图;
图12为本申请描述的一种用于执行传输控制方法的装置的示意图。
图13为本申请描述的另一种用于执行传输控制方法的装置的示意图。
图14为本申请描述的又一种用于执行传输控制方法的设备的示意图。
具体实施方式
本发明实施例提供了一种传输控制的方法、装置和***,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
前文提到的双端控制的问题在实际场景中十分普遍。例如,目前人们使用手机等终端设备联网,以从获取信息或者服务,就是典型的云侧设备和端侧设备之间的通信。终端产品发展迅猛,其硬件和操作***可以支撑多种应用。端侧设备的软件通常通过在线升级,下载更新包等方式更新,这种灵活的更新方式能够紧跟服务需求的变化,保障新业务的网络传输质量,从而使终端产品能够支撑更多种类更为复杂的服务。终端上的应用或者网页提供的服务往往依赖与云端(例如服务器,云平台等)的数据交互。与日新月异的终端市场不同,作为传输另一个参与者的云侧设备因为业务量大且业务复杂等特点,其更新频率,更新速度甚至更新权限都有诸多限制。云侧设备作为服务内容提供商,这种限制会严重制约移动互联网的传输质量的提高。
因此,本申请提出一种传输控制方法和装置。该方法可以使得由某一端设备来控制报文的传输,通过一端设备发送的控制信令,使得另一端设备无需决策,只需简单地根据控制信令中携带的参数传输报文,以及反馈报文接收情况即可,而不是像现有技术中以数据发送端或者数据接收端来控制报文传输,这样,只需一端控制,即可实施传输控制算法中的各个步骤,传输控制算法升级或者切换无需牵涉两个端设备,能更加方便和高效地完成升级。本申请中,被控制的报文主要是数据包,也就是数据报文,还可以包括一些反馈报文。这样,可以指定控制报文传输的设备,或者通过一个连接中两个端设备的协商,确定出控制的一方(也称为控制方或控制方),则另一个端设备无需决策,完全依照控制方的控制指令发送报文即可。本申请描述的方法适用于各种通信场景,例如终端设备之间通信,云端设备之间通信,以及终端设备与云端设备通信(简称端云通信)。
需要说明的是,本申请中A和/或B:表示A和B,或者A或B。
下面解释本申请出现的一些术语。
连接,用于发端(sender)与收端(reciever)之间传输数据。一个连接可以对应网络拓扑中的多条路径(path),一个连接上可以传输多个流(flow)。路径是发端(sender)与收端(reciever)之间的链路(link)。该多个流可以属于一个应用,也可以属于不同的应用。路径可以用四元组或者五元组来标识。例如,五元组包括源IP地址,源端口号,目的IP地址,目的端口号以及传输层协议名称。
传输:双向的信息交互,也就是说,既包括发送,也包括接收。
ACK(Acknowledgement):也称为确认包、确认报文、ACK报文,该本申请中,ACK用于收端向发端反馈已接收的一个或多个数据报文。相应的还有NACK(即Non-Acknowledgement),NACK用于收端向发端反馈未接收的一个或多个数据报文。
拥塞窗口(CWND,congestion window),指TCP数据传输中,数据的源端在拥塞控制情况下一次最多能发送的数据报文的数量。应理解,拥塞窗口简写为cwnd或者CWND都是可以的。
发送窗口,也简称窗口(window),用于指示数据发送端允许传输的字节数,也是数据接收端允许数据发送端的一次能放入发送队列的数据量的最大值。
RTT(Round-trip Time),往返时延。表示发送端从发送数据开始,到接收到接收端发送的对应该数据的接收确认信息(如ACK或者NACK)的过程,经历的时延。
握手报文(Handshake packet):用户端和客户端之间用于通过安全加密传输协议建立连接的报文。握手报文出现连接的握手阶段。安全加密传输可以使用传输层安全性协议(Transport Layer Security,TLS)、安全套接层(Secure Sockets Layer,SSL)或者数据包传输层安全性协议(Datagram Transport Layer Security,DTLS)等实现。
流(flow):一个连接上传输的一组报文,一个连接上可以传输多个流,该组报文的报文头中携带有相同的流标识号。该组报文可以用于实现一个业务或者一个服务。例如,一个流用于传输一个网页中一组图片的数据,或者一个视频网站中一小段视频的数据。
以端云通信场景举例,图3展示了本申请常见的一种组网***。图3中,终端与云端设备(如图示的云平台1,云服务器2和云服务器3)之间的链路可以经过混合接入网关或者代理服务器。本申请描述的传输控制方法中的控制方可以是终端,这时,被控制的设备就是云端设备(如云服务器3),或者混合接入网关或者代理服务器。反之,控制方是云端设备(如云服务器3),或者混合接入网关或者代理服务器,被控制的设备为接入这些设备的终端。如终端设备为控制方,则一终端设备与云端的通信,可以始终由终端控制,那么就只需升级终端设备,这显然更加容易实现。又或者以一云端设备为控制方,则所有终端设备与该云端设备通信过程中,始终由该云端设备控制报文的传输,那么如果需要升级或者调整传输算法,只需调整云端设备就可以优化传输性能,这对云服务提供方或者网络服务提供商显然也是十分便利的。
本申请所涉及的设备可以是云端设备,也可以是终端设备,云端设备上可以运行各种云平台,终端设备上可以运行应用的客户端。具体的,如图4所示,该设备的硬件包括各种硬件器件或装置,如存储器,处理器以及用于网络互连的网卡等。该设备的软件包括操作***和运行于操作***用户态中的应用(如应用1,应用2,应用3),其中,操作***可分为内核态和用户态,协议栈由于其多层的结构,在内核态和用户态中都有分布,可装载在设备中的不同的协议栈所处位置也略有不同,例如,UDP或者流控制传输协议(Stream ControlTransmission Protocol,STCP)等为内核态协议,而QUIC协议,以及一些私有协议属于用户态协议,而TCP协议则跨内核态和用户态。一个设备往往会配置多种传输协议,本申请并不限制设备支持的协议的种类。
本申请描述的传输方法相当于提出了一种新的传输协议,该新的传输协议是通过对现有的协议的修改,或者定义私有协议实现的。对应到设备的软件结构,可以是对用户态或者内核态中现有的协议栈的改进,例如TCP协议栈,UDP协议栈或者QUIC协议栈等,或者在用户态添加新的私有协议栈,从而生成有统一格式且承载有控制信令的控制报文或者帧控制对端设备,该控制报文或者帧的格式可与数据报文不同。控制信令可以采用多种方式被承载,比如,基于现有协议扩展报文头,采用独立于报文的帧(例如改进QUIC协议就采用这种形式),将控制信令作为QUIC报文或者UDP报文的载荷,或者将控制信令定义在TCP协议的options选项中等等。为了避免过多地发送控制报文或者帧,一条控制报文或者帧中可携带多条控制信令,本申请对具体实现方式不做限制。例如一种实现方式下,一条控制报文包括多个帧,每个帧中包括一条控制信令,由于每个帧都可以携带一个流ID,一个流ID表示该连接上传输的一条流,这样,一条控制报文中就可以携带用于控制不同流的报文传输的控制信令。另一种实现方式下,一个帧中携带多条控制信令,这样可以节省帧头,可以事先定义帧的哪一部分负载对应哪一个流的控制信令。
本申请中,以本端设备为控制方这种视角进行描述,传输控制至少包括两个方面:发送控制,即本端设备控制对端设备如何发送携带数据的报文,以及接收控制,即本端设备向对端设备发送数据后,控制对端设备如何反馈这些数据的接收结果。应理解,本申请反馈的结果可以使用下文新定义的格式。也可以借鉴例如现有的TCP协议中的ACK,NACK等反馈报文的格式。用于实现这两种控制的控制信令携带不同种类的参数,作为控制方的设备通过不断发送控制信令,以及调整控制信令中携带的参数的值,就可以实现各种传输控制算法。例如,本端设备基于连接的网络状态,调整参数,以切换传输控制算法或者实现同一传输控制算法的不同阶段,其中,网络状态可以用这些参数中的至少一个表征:带宽,时延(传输时延或者往返时延),时延抖动(jitter),丢包率,接入的网络的信号强度等。
这样,在传输过程中,本端设备可实时调整切换传输控制算法,具体是调整参数,为不同的应用在不同场景下,提供更好的网络服务品质。
另一方面,本端设备维护多个用于实现不同传输控制算法的控制信令集合,且可以设置其中的一种或多种为默认的传输控制算法。当然,也可以新增控制信令集合以使本端设备支持更多的传输控制算法。而本端设备对自身的传输控制同样也可使用上述的控制信令实现,这些控制信令是通过定义的接口函数来传递的。这样一来,各种传输控制算法都可以用下述的几种控制信令作为基本语素,通过改变参数、有顺序地重复和组合进行表达,打个比方,下述的几种控制信令可以认为是26个英文字母,通过组合,就可以拼出各种单词组成各种句子,这些单词和句子就是多种多样的传输控制算法。因此使用本申请描述的控制信令,仍然可以使用现有协议规定的网络参数,如带宽,丢包率,往返时延等参数描述一个连接的传输性能。因此,只要修改这些控制信令的出现顺序和携带参数的规律就可以调整传输控制算法,无替换整套的算法逻辑,设备处理起来更加简单和方便,也减少了升级或者调整传输控制算法的工作量,提升了升级效率。
控制信令可被封装在控制报文或者控制帧中,例如控制信令被封装成帧,且作为UDP报文的负载。非数据报文(例如控制信令及其响应)和数据可以在不同的流中传输,不同的流用不同的ID标记,称流识别号或流ID。也就是说,一条连接多流复用,即控制流和数据流隔离,数据流和控制流可使用不同的传输协议。一种实现方式下,该数据流和控制流属于同一应用,一条数据流和与之对应的控制流中,只传输该应用的数据。一种实现方式下,多个应用的控制信令在同一控制流中传输。这样,控制帧或控制报文就可以单独分配序号,以更好地在传输中保序,例如,控制帧的序号以公差为1的递增的数组表示。一种实现方式下,每个控制帧都可以包括类型这个参数来表征控制帧中携带的控制信令的种类,以方便接收该控制信令的设备识别,即,一个控制帧中封装种类相同的控制信令。该参数可以携带在帧头中,帧头后携带控制信令。帧头可以有通用的格式,包括类型和帧序号。另一种实现方式下还包括流标识字段,用于承载前文描述的流识别号。例如图5中示意的帧头结构,类型字段长8bit(1字节),流标识字段长32bit(4字节),帧序号字段长32bit(4字节)。那么,控制不同的流的数据报文的控制信令就可以封装在不同的帧中。类型字段可自行定义值,例如,定义发送控制帧的类型为0x01,对端信息请求帧为0x02,对端信息应答帧为0x03,接收控制帧为0x04,各种帧中携带相应类型的信令。
对于一个连接,两个端设备可以在该连接的建链阶段,甚至是在建链之前,确定由谁作为控制方,建链阶段实现确定过程这一实现方式将在后文进行说明。当然,也可以指定某一设备或者默认设置由其中的某个端设备作为控制方。下面以第一设备和第二设备通过一连接传输数据,且第一设备为控制方为例,描述第一设备控制对端设备,也就是第二设备传输报文过程中,使用的信令。例如,端云通信场景下,第一设备为终端,第二设备为云服务器、云端代理服务器、负载均衡器或者混合接入网关。
第一种场景,第一设备为数据接收端,对应前文提及的发送控制。
发送控制涉及以下几种信令。
发送控制信令,通过其包括的发送控制参数,指示对端设备根据这一条发送控制信令,应发送哪些报文,以及这些报文应以什么时间间隔发送。其中包括的发送参数可以有多重组合方式。
具体的,发送控制参数可以是:初始报文序列号、报文序列号范围和发送时间间隔。初始报文序列号是一个报文序号(Sequence Number,SN),用于指示一个控制信令所控制发送的多个报文中的首个报文,例如报文序列号最小的报文。
该发送控制信令指示对端设备发送从该初始报文序列号起,该报文序列号范围内的报文,且使用该发送时间间隔来发送这些报文。初始报文序列号的值是一个报文的序列号。应理解,报文序列号可以标识报文,也可以标识报文的顺序,例如报文序列号小的报文应先于报文序列号大的报文被处理(如发送,接收等)。对于已知的协议,报文序列号的命名规则是确定的,本申请可借鉴。对于私有协议,也需要规定报文序列号的命名规则,因此,通过初始报文序列号和报文序列号范围,就可以表征需要发送的报文。发送时间间隔,则是与时间有关的参数,可以用带宽来表示,也可以直接用时间间隔来表示。这是由于对确定的协议,每个报文的长度是可知的,也就是报文的载荷是可知的,而带宽表示的是单位时间发送的数据量,故带宽与执行报文的发送动作的时间间隔间有明确的数学关系。例如,一条发送控制信令中携带的初始报文序列号为12,报文序列号范围为10,发送时间间隔用带宽表示,值为1mbps,若该连接的协议中,数据报文的报文序列号命名是公差为1的等差数列,则该发送控制信令指示以带宽的倒数,即1/(1mbps)的时间间隔发送序列号从12到21的十条报文。
一种实现方式下,如图6所示,发送控制信令中,报文序列号(也就是初始报文序列号)字段长32bit(4字节),报文序列号范围字段长32bit(4字节),发送时间间隔字段长32bit(4字节)。三个字段的排列顺序,比如可以如图6所示。发送控制帧中可以包括一条或多条发送控制信令。在包括多条发送控制信令时在发送控制帧中就应包括一个字段用于表示该帧中的控制信令的条数。
一种实现方式下,第一设备收到报文序号为A的数据报文,从而触发新的发送控制信令的发送。该新的发送控制信令中参数的取值与第一设备与第二设备间施行的传输控制算法有关。例如,该新的发送控制信令中的初始报文序列号为A+1。
使用上述信令,就可以控制对端设备的数据包发送,不论需要对端设备如何发送数据,都只需要改变发送控制信令中的参数即可实施。
对于某些算法,还需要使用控制信令——对端信息请求信令,和对该控制信令的应答,即对端信息应答来控制。
对端信息请求信令,用于指示对端设备发送与之相应的响应,也就是指示对端设备反馈从该报文序列号起的多个数据报文的发送情况。对端信息请求信令包括一报文序列号,该报文序列号是该对端信息请求信令的初始报文序列号。这样,本端设备就可以根据响应得知对端设备的发送队列的剩余长度,即对端设备的发送队列中还有多少报文或数据量待发送。基于此,本端设备判断该连接上传输的某一条流或者该连接服务的某个应用的流量是否受限,也可以确定本端设备当前对带宽的估计值是与真实的网络带宽相符,还是该应用受限时的带宽。因此,往往可以找到一条对端信息请求信令和一条发送控制信令中携带相同的初始报文序列号。从时序上,一条对端信息请求信令在至少一条发送控制信令之后发送。本申请对触发发送对端信息请求信令的条件不做限定。比如,可以设置对端信息请求信令的发送条件为,周期性发送,估计的网络参数,如带宽、往返时延或传输时延发生的变化满足某种条件时发送,发送若干条发送控制信令后发送,每接收若干个数据报文后发送等。
对端信息应答,是上述对端信息请求信令的响应,对端设备接收到一对端信息请求信令后,发送与之对应的响应。当数据报文和控制报文用不同的流发送时,该对端信息应答在控制流发送。
对端信息应答,包括一个报文序列号(也就是该对端信息应答的初始报文序列号),和待发送数据报文的信息。该待发送数据报文的信息用于指示从该对端信息应答的初始报文序列号起,至少一条待发送数据报文的信息。至少一条待发送数据报文的信息可以是对端设备待发送的一部分或者全部的数据报文的信息。例如可以是一部分或者全部的待发送数据报文的数目或者报文序列号。所谓的待发送的一部分或者全部的数据报文,可以是第二设备此时发送队列中所有或部分未发送的数据报文,也可以是本次业务(如传输一张图片,刷新一个网页)中,第二设备所有未发送的报文。一条对端信息请求信令和与之相应的对端信息应答包括相同的初始报文序列号。
对端信息应答还可以包括已发送报文的信息。其中,已发送报文的信息包括对端设备从该初始报文序列号开始的多个已经发送且已确定被成功接收的报文(或者数据块)的信息。例如该已发送的报文的信息可以是报文序列号,报文序列号的的数目偏移量,数据的偏移量或者位图等。一些实现方式下,还可以包括已发送但未确认被本端设备(如第一设备)接收的报文(或者数据块)的信息。该未发送的报文的信息同样可以是报文序列号,报文序列号的偏移量,数据的偏移量或者位图等。具体是定义一个对端信息应答的某些字节中的数字代表已发送报文信息,另一些字节中的数字代表未发送的报文的信息。本申请不限定对端信息应答的格式,例如图7所示,一条对端信息应答中,初始报文序列号字段长32bit(4字节),接下来依次是若干个可变长度的字段(图7中为7个),每个可变长度的字段的最大长度为32bit(4字节),其中包括:确认块数目字段,用于指示本信令中携带的已确认发送的数据块的数目。确认块字段和未确认块字段间隔设置,每个字段指示一个数据块的发送信息,可以用该数据块的标识或者该数据块的长度表示,这样,就可以指示,用于表示从初始报文序列号开始,几个字段的数据已确认发送,其后几个字段的数据未确认发送。另外,可变长度的字段还包括待发送报文数目字段,用于指示还有多少个报文未发送。
这样,上述多控制信令配合,就可以实现对对端设备的发送控制,也可以执行多种现有的传输控制算法。通过第一设备发送的控制信令,使得另一端的设备无需决策,只需简单地根据控制信令中携带的参数发送报文即可。进一步的,通过修改该端设备发送的控制信令中的参数,以及发送的控制信令的顺序,即可实施数据报文的传输控制算法,也可以完成这类传输算法的升级和修改,使传输算法的实施、修改和升级更加方便。具体可以参考下文的例子。
第二种场景,第一设备为数据发送端,对应前文提及的接收控制。该接收控制通过发送接收控制信令实现。
接收控制信令通过其中的接收控制参数,控制数据接收端反馈数据报文的接收情况。例如,接收控制信令可以告知数据接收端何种条件下反馈(也可理解为反馈的时机),以及需要反馈的数据报文的范围。这样,数据发送端就可以依据这些反馈确定这些数据报文是否正确接收。其中包括的发送参数可以有多重组合方式。在多流复用场景下,数据接收端基于接收控制信令,通过控制流发送反馈报文,本申请对反馈报文的格式不做限定,例如可以是现有技术中的ACK,NACK等。现有技术中,这种控制是由数据接收端实现的,故无需发送接收控制信令。
一种实现方式下,接收控制信令包括报文序列号(即初始报文序列号),报文序列号范围和时间戳。其中,初始报文序列号和报文序列号范围用于表示需要反馈哪些数据报文的接收情况,具体对这两个参数的解释可参考前文的段落。时间戳为该条接收控制信令的发送时刻,可用于统计报文乱序、计算网络时延等。而接收到该接收控制信令,就是触发反馈生成及发送的事件,比如触发反馈的发送过程。例如图8中示意的接收控制信令,其中三个参数次序和长度依次为:时间戳,字段长32bit(4字节),初始报文序列号,字段长32bit(4字节),以及报文序列号范围,字段长32bit(4字节)。类型的值与发送控制信令不同,三个参数的次序也不同。一种实现方式下,初始报文序列号被设置为生成该接收控制信令时,数据发送端已确认接收或者已处理的数据报文的报文序列号中的最大值,其中,已处理是指数据发送端已确定了某个数据报文丢失,故修改了该数据报文的副本的报文序列号以备重传该丢失的数据报文。报文序列号范围被设置为生成该接收控制信令时,数据发送端已发送的数据报文的报文序列号中的最大值,时间戳被设置为发送该控制信令的时刻。
数据接收端,如第二设备收到接收控制信令后,第二设备反馈从初始报文序列号开始,至不小于报文序列号范围所指示的报文序列号为止,这一范围内的数据报文的接收情况。例如接收情况是哪些数据报文被接收或者哪些数据报文未被接收,并且,还应当携带触发该反馈的接收控制信令的时间戳。一种实现方式下,还可以包括处理时延,该处理时延为接收到该接收控制信令的时间与发送与该接收控制信令对应的反馈的时间之间的时间差,这样可以使数据发送端更精确地统计网络传播时延。其中,如果需要反馈的数据报文的范围的值超过反馈报文所能支持的最大规格的值,则无法全部反馈,只反馈数目为最大规格内的数据报文的接收情况。
下面结合图9,说明使用上述的控制信令,实现第一设备作为控制方,控制第一设备与第二设备之间的报文传输的过程。该过程中,第一设备先接收第二设备发送一组数据报文(S901~905),之后,第一设备再向第二设备发送一组数据报文(S906~908)。应理解,下述的S901~908只是为了便于标识,这些步骤不一定是按照编号的大小顺序执行的,以文字解释为准。另外,由于第一设备和第二设备之间的连接支持多流传输,S901~905和S906~908可以在不同的流上发生,则可能同时发生或者发生时间有一定的重叠。
S901:第一设备向第二设备发送第一控制信令,所述第一控制信令指示所述第二设备发送第一组数据报文。
该第一控制信令为上述的发送控制信令,故其中包括第一报文序列号、第一报文序列号范围和第一发送时间间隔。这样,第一报文序列号和第一报文序列号范围就可以指示该第一组数据报文。该第一发送时间间隔指示发送该第一组数据报文的时间间隔。该时间间隔可以用带宽表示。
S902:第二设备根据接收到的第一控制报文,按照其中所指示的报文序列号和该第一发送时间间隔,发送该第一组数据报文。
S903:第一设备接收到第一组数据报文中的至少一个数据报文,根据其中接收的第一数据报文发送第二控制信令,其中第一数据报文的报文序列号在该至少一个数据报文中最大。
第二控制信令包括第二报文序列号、第二报文序列号范围和第二发送时间间隔,第二报文序列号和第二报文序列号范围可认为指示第二组数据报文。第二发送时间间隔指示发送第二组数据报文的时间间隔。
其中,第二报文序列号大于第一数据报文的报文序列号。
第一设备接收到的数据报文可以继续触发发送控制信令的发送。这样,第一设备才可以持续控制第二设备。实际应用中,可以等到该第一组数据报文完全接收后,再发送下一条发送控制信令。也就是说,第二报文序列号和第二报文序列号范围可以指示紧接着第一组数据报文的报文,如第一组数据报文为编号1~10的报文,第二报文序列号为11。接下来第二设备会根据该第二控制信令继续发送数据报文。
另一种实现方式下,也可以在接收到一个或几个数据报文后,就发送下一条发送控制信令,由于设备存在发送时延,网络中存在网络时延,这种实现方式可以更好地控制对端的数据发送。也就是说,第二报文序列号和第二报文序列号范围所指示的报文与第一组数据报文有重叠,如第一组数据报文为编号1~10的报文,收到编号为1~4的报文后,发送该第二控制信令,则第二报文序列号为5。
可见,发送下一条发送控制信令,可穿插在接收第一组数据报文的过程中发送。
S904:第一设备向所述第二设备发送第三控制信令,第三控制信令包括第一报文序列号。
其中,该第三控制信令为上述的对端信息请求信令。
该第三控制信令发送于第一控制信令之后,但是可以发送在第二控制信令之前或者之后。具体时机取决于不同传输控制算法中,触发该第三控制信令的条件。图9描述的是在第二控制信令之后发送的情况。
S905:第一设备接收对第三控制信令的响应,第三控制信令的响应包括所述第一报文序列号,以及从所述第一报文序列号起,至少一个待发送的数据报文的信息。
其中,该第三控制信令的响应对应前述的对端信息应答。
由于在接收到该对端信息应答时,第一组数据报文或者第二组数据报文可能都还没有全部发送完,故第一设备还可以继续接收第二设备发送的数据报文。
S906:第一设备向第二设备发送第三组数据报文。
其中,第三组数据报文为从第三报文序列号起,在第三报文序列号范围内的多个数据报文。
S907:第一设备向第二设备发送第四控制信令,其中,第四控制信令包括所述第三报文序列号,所述第三报文序列号范围和时间戳,所述时间戳为所述第四控制信令被发送时,所述第一设备的***时间。
该第四控制信令为接收控制信令。
S908::第一设备接收所述第四控制信令的响应,第四控制信令的响应包括所述时间戳,所述第四控制信令的响应还包括所述第三组数据报文中被接收或者未被接收的数据报文的信息。
第四控制信令的响应为第四控制信令触发的反馈报文。
下面以***提出的瓶颈带宽与往返时延(Bottleneck Bandwidth and RTT,BBR)算法为例,描述第一设备如何使用上述的信令实现该算法。该连接使用上述用户态的新协议传输数据,该用户态的新协议可以使用上述的报文和帧格式传输实现上述信令。
首轮控制:第一设备向第二设备发送该轮的首条发送控制信令,其中初始报文序列号为1、报文序列号范围为10、发送时间间隔以带宽表示,为1mbps。第二设备收到该首条控制信令后,按照1mbps的带宽发送1~10号数据报文。第一设备收到1号数据报文之后,反馈第二条发送控制信令,其中始报文序列号为2、报文序列号范围为11、带宽为11/RTTmbps,RTT指该连接的往返时延。
在这个过程中,首条发送控制信令的语义是在首个RTT内发送10个数据报文,这个值对应数据流的初始的发送窗口大小,首条发送控制信令和建链信令同在握手报文中发送,这样,建链成功则控制信令也同时发送成功,可以使第二设备立即发送数据。这在现有传输协议同样如此,也就是时效性和现有协议一致。收到第一个数据报文时,第二设备从首次发送数据报文开始经过了RTT/2。第一个数据报文的接收触发第一设备发送第二条发送控制信令,并经过RTT/2到达第二设备,此时刚好第二设备完成首轮(简单理解为一个RTT)传输,且收到了新的控制信令(即第二条发送控制信令)。现有的协议中的实现的BBR,即第二设备首轮发送10个数据报文,等待首个ACK到达、更新拥塞窗口大小为11,且向右滑动窗口再发送一个数据报文。因此,上述的第二条发送控制信令相当于BBR中的首个ACK包到达。这表明,反馈报文的丢失或者乱序(体现在时延上是值忽大忽小的抖动)以及数据报文的丢包,对现有的实现方式和使用本申请描述的控制信令的实现方式的影响是相同的。
第二轮控制:从第二轮开始的控制过程可总结为,从第二轮的首条发送控制信令(首条发送控制信令的初始报文序号应为11,报文序列号范围为10)发送后,每收到一个数据报文,对应生成的下一条发送控制信令中,初始报文序列号加1、报文序列号范围加1、发送时间间隔设置为(报文序列号范围除以RTT),这个变化规则一直持续到本轮首条发送控制信令所指示的最后一个数据报文被接收(比如20号数据报文),且由20号数据报文触发的发送控制信令被发送。自此,进入新一轮控制,变化规律调整为,报文序列号范围在前一个发送控制信令的基础上增大一倍,这样就可以发送接近前一轮2倍的数据量。这个控制过程与BBR拥塞控制慢启动阶段的机理一致,可参考其他描述BBR的文档进行理解。
也就是说,一轮控制就是从一轮控制中的首条发送控制信令发送,到接收到该首条发送控制信令所指示要发送的所有报文的过程。一种实现下,一轮控制中所发送的报文数量为该轮控制首条发送控制信令发送时,发送窗口的值所对应的报文数量。
带宽估计:当第一设备发现连续三轮控制中,(成功发送的数据量/RTT)这一值的增加量小于25%时,则确定该连接的网络带宽已经充满。进入带宽探测与估计阶段,该阶段中,带宽探测8轮一个周期,一个周期中的第一轮报文序列号范围的值为1.25倍的带宽时延积(Bandwidth-delay Product,BDP),第二轮报文序列号范围的值为0.75倍BDP。之后六轮的报文序列号范围为BDP,第一设备不做主动调整。
具体来说,检测到带宽充满后进入带宽探测周期的第一轮发送控制,每收到一个数据报文时,下一条生成发送控制信令的初始报文序列号加1。每收到4个数据报文,报文序列号范围加1,直到接收到本轮的首条发送控制信令所指示要发送的报文序列号最大的数据报文,即本轮控制的最后一个数据报文。之后,开始该带宽探测周期的第二轮,每收到一个新的数据报文、下一条生成发送控制信令的初始报文序列号加1。而每收到4个数据报文,报文序列号范围加1,直到接收到本轮控制的最后一个数据报文。之后,开始带宽探测周期的后六轮,该后六轮中,报文序列号范围保持不变。
上述控制过程中,带宽估计的更新方法为,在一轮发送控制中,每收到一个数据报文计算该数据报文所在的这轮发送控制的带宽值,并且保留这轮发送控制中,计算出的带宽值的前三大的值,本轮估计出的带宽就是这前三大的值中的最大值。新一轮发送控制开始,即新一轮带宽估计周期开始,上一轮的三个值逐渐被新一轮计算的带宽值替代,最终使用新一轮发送控制结束后,更新后的三个值中的最大值作为新一轮估计出的带宽。
进一步的,使用上述信令也可以实现在数据传输中更换传输控制算法。下面举例说明在描述BBR算法的实施例的基础上,使用上述信令切换到另一种算法的过程。切换到另一算法的条件可以是:在带宽探测与估计阶段,在所有检测到的带宽统计值中,最大值和第二大的值之间的相差超过20%。这个条件代表网络不稳定。该另一种算法,可以是基于窗口的拥塞控制算法,该算法下,发送控制信令中的参数按照下述方式调整:1)每成功传输上一轮报文序列号范围的数据报文,下一轮控制中的报文序列号范围加一;2)发送时间间隔用带宽表示,值取发送控制信令中用于表征该参数的字段可表示的最大值;3)当第一设备检测到丢包时,报文序列号范围在现有值基础上减半。每收到一条发送控制信令,数据发送端使用该数据发送端所支持的最大发送速率,去发送该发送控制信令所指示的数据(即该发送控制信令中携带的初始报文序列号和报文序列号范围所指示的报文)。
可见,上述的控制信令中携带的参数随着时间的推移而变化,就可以描述不同种类的拥塞控制算法。进一步的,只要通过改变上述的控制信令中携带的参数,就可以实现现有的不同种类的拥塞控制算法,因此通过本申请描述的方法和控制信令,可以实现现有协议和算法中的传输控制。
另外,对于某些场景,还可以在数据报文中加入一些字段,以实现控制。例如,第一设备与第二设备之间的连接对应多条链路,即使用多路径传输模式。以低时延场景为例,说明如何对对端设备的发送路径的控制,以实现三种传输模式。该三种传输模式为:只用网络1、只用网络2和使用网络1与网络2进行冗余传输。例如网络1为WiFi,网络2为蜂窝无线网络,如LTE。当然MPTCP传输还有其他的传输模式,例如使用网络1与网络2进行聚合传输。MPTCP协议下传输模式的其他组合,同样可以使用类似的方式控制,具体实现方式可参考下文的描述。该控制可实现在第一设备或者第二设备。
具体来说,可在数据报文中包括一个双路径标识,用于指示对端设备发送报文的所使用的路径。双路径标识可以是一个双路径标志位。这样就可以通过该双路径标志位的值或者是否有flag来表征传输方式。以实现于第一设备为例,在双路径标识指示发送方式为单路径发送的情况下,第一设备从发送所述第一报文所使用的路径上接收第二设备发送的报文;在双路径标识指示发送方式为多路径发送的情况下,第一设备从多条路径的每条路径上,接收第二设备发送的报文。一种实现方式下,1)如果双路径标志置0,则表示且控制方处于只用LTE或者WiFi的传输模式,则第二设备从哪条路径上接收到报文,就从该条路径上发送报文;2)如果该标志置1,则表示控制方处于冗余传输模式,则第二设备使用双路径冗余发送数据。该双路径标志位可以加入扩展后的UDP或者TCP报文头部,或者在UDP或者TCP报文头部之后添加自定义的协议的头部来实施。
上述方法也可以通过UDP或者TCP或者MPTCP协议的直接扩展、或者基于对UDP/TCP之上的用户态协议的修改实现。这样,配合前文描述的控制信令,就可以支撑MPTCP场景下,单条传输路径上的报文传输控制
从软件架构的角度,本申请描述的方案的思路是,提取出数据传输必须的收发功能以及一些用于支撑收发功能的基础功能,执行这些功能的模块可统称为基础功能模块,这些模块可以是代码或者函数,由进程或者线程执行。用于支撑收发功能的基础功能可以是用于保障数据安全的数据加解密(如安全传输层协议,Transport Layer Security,TLS)、用于提高传输效率的编解码(如前向错误更正,Forward Error Correction,FEC)、缓存管理、连接管理、路径管理或者流管理等,这些功能仍然如现有技术一样对称实施于信息交互的两个端设备上。这些功能模块是为传输协议的基础架构、必须对称部署。同时,对它们的改动影响较大、所以升级周期较长,这与跨部门升级长周期的特点相匹配。换句话说,这些功能的对称部署不会带来明显的升级效率问题。
另外一方面,从传统协议栈中剥离出控制功能。控制功能是对于上述收发及其必要支撑功能的控制,该控制包括但不限于,上述基础功能的操作对象、行为方式和触发时机等。其中,***作的对象,可以是报文或者帧等承载信息的格式,也可以是上述用于支撑收发功能的基础功能的某一种实现方式。行动的方式,包括但不限于,报文或者帧发送的间隔、顺序、和路径中的至少一种,或者是对报文或者帧的某种处理动作,例如,接收了一个报文或者帧后的清理缓存,或者重传等。
显然,这种架构也支持对本端设备的传输控制。通过调用改进后的协议栈中的函数,例如定义的内部接口,实现控制信令从本端控制模块到收发模块的传达。
具体的,执行该控制功能的控制模块可基于来自本端的网络信息,输出对于本端设备的控制信息,该控制信息可以包括上述的操作对象、行为方式和触发时机等。其中,本端的网络信息可以是通过内部接口函数从本端的基础功能模块获得的,该网络信息包括表征本端设备所处的网络的状态的参数,如带宽,时延,拥塞窗口等,还可以包括如下文提及的本端设备的传输参数。该控制信息通过内部接口函数传递给本端基础功能模块,本端基础功能模块根据该控制信息的指示,执行例如发报文等基础功能,从而实现对本端设备的传输控制。
如图10所示,第一设备和第二设备通信,第一设备为控制方,则第一设备中部署有控制模块。图10中示意性地描绘了第一设备中的控制模块生成发送控制信令(如前文描述的第一控制信令和第二控制信令),通过内部接口将控制信令传递到发送模块,发送模块将该发送控制信令封装为发送控制帧向第二设备发送,该发送控制帧可以承载在控制报文中发送,第二设备的接收模块接收到该发送控制帧后,第二设备的发送模块按照该发送控制帧的指示向第一设备发送数据报文。发送控制帧的格式参考图5和图6。应理解,图10描述的架构也可以用于本申请描述的其他由第一设备控制,第二设备返回报文的过程,例如图9对应的传输过程。
一些实现方式下,也可以采用本申请的架构控制对端设备的数据传输,而对本端设备仍然使用现有的技术进行控制。
综上,执行该控制功能的控制模块可根据业务诉求、网络环境改变等频繁升级。控制模块在厂家或者用户可控制的设备上部署或者运行,也就是说,由哪一端设备控制报文的传输是可控可设计的,从而实现算法快速转化、产品高效运维等。
基于本申请的描述,本领域技术人员可以设计出多种控制报文的格式,也可以定义出多种用于实现上述功能的函数加入协议栈或者库中,故本申请不对控制报文的格式或者函数格式做限制,也不做过多细节的描述。
下面以在第一设备和第二设备的建链阶进行段协商为例,结合图11描述两个设备之间协商控制方的过程,协商过程中使用的信令可以作为载荷携带在建链阶段的报文中,这样既可以保障协商的实时性,又可以尽量减少额外传输的报文。图11中不仅绘出了协商控制方的过程,还包括使用控制报文控制数据报文的传输的过程。
S1101:第一设备向第二设备发送协商信令。
可选的,第一设备可以将协商信令和初始控制信令一起发送。
该S1101步骤可以在第一设备和第二设备相互进行身份认证后进行,例如,第一设备和第二设备第一次建立连接,需要通过互发一条握手报文,即图11中的握手报文1和握手报文2认证身份。那么,协商信令和初始控制信令可在这初始的两条握手报文之后,作为后续的某一条握手报文,如图11中的握手报文3的负载,加密封装在一个报文中,这个后续的握手报文中还可以包括协议版本,密钥等信息。当然,如果第一设备和第二设备之前已经建立过连接,也就是双方已经认证过身份,那么,当第一设备和第二设备再次建链时,可以在传输的第一条握手报文的负载中携带协商信令和初始控制信令,图11中,第一设备直接向第二设备发送携带这两个信令的握手报文3。
第一设备发送的协商信令包括该设备支持的传输参数,以及用于指示该设备是否为控制方的角色参数。其中传输参数,包括该设备支持的最大连接数、该设备支持的最大路径数、数据报文长度、初始窗口大小、该设备所支持的FEC算法、协议以及协议版本号等的至少一种。角色参数可以是一个标识或者一个标记位等,例如角色参数也可以置空,表示本端设备不是控制方。本申请对角色参数的具体形式不做限制。
初始控制信令是第一设备假设自己是控制方,向对端发出的第一条控制指令,用于控制第二设备发送报文。例如该初始控制信令包括待传输对象(例如报文序列号)、传输方式、以及发送传输对象的时机。初始控制信令是第一设备将自己作为控制方,在已知的网络信息和对端信息较少或者失效的情况下发出的,例如可以是基于默认设置,或者随机分配的网络参数。该初始控制信令可以是前文描述的第一控制信令,也就是一条发送控制信令。
这样,如果第二设备也确定出第一设备为控制方,第二设备就可以按照初始控制信令发送报文。这种方式可以尽量减少数据传输前的报文交互,缩短数据传输前的准备时间。
S1102:第二设备根据第二设备中维护的协商规则,第二设备的本端信息以及接收到的协商信令得出协商结果,并向第一设备发送协商信令。
图11中,协商信令承载于协商报文中。
其中,第二设备发送的协商信令中,可以类似第一设备发来的协商信令,携带第二设备支持的传输参数,以及用于指示第二设备是否为控制方的角色参数,以便于第一设备接收后根据第一设备维护的协商规则确定出协商结果,也可以携带第二设备得到的协商结果。该协商结果表示第二设备确定出的控制方,可以是第一设备或者第二设备的标识。第二设备发送的协商信令可以作为载荷在握手报文中或者单独发送的控制报文中。
本端信息包括但不限于,应用参数、数据流参数、路径参数、用户参数和物理层信道参数中的至少一种。其中,应用参数指两个设备上建立连接的应用,包括但不限于,用户ID(User Identifier,UID)和访问域名中的至少一种。
数据流参数为,至少一条本端设备接入的数据流的参数。一条数据流的数据流参数包括数据流的流量、数据报文包长(size)、数据报文到达间隔、数据流对应的IP地址和数据流对应的端口号中的至少一种。
路径(path)参数为至少一条本端设备接入的路径的参数,包括但不限于,该设备所接入的至少一条路径表示路径特征的参数可以是传输速率,往返时延(RTT,Round-timeTrip),丢包率,丢包范围,抖动(jitter),拥塞窗口(CWND,congestion window)以及带宽等参数中的一个或多个。
用户参数,包括但不限于,使用该设备的用户所订的套餐流量大小,以及该用户对该连接对应的应用的使用频率中的至少一种。
物理层信道参数,例如该设备的WiFi信号强度和该设备所在的LTE基站是否切换中的至少一种。
第二设备中可以维护一种或多种协商规则,以便第二设备确定出控制方。在维护多种协商规则时,该多种协商规则之间可以有执行的优先级。本申请不限制协商规则的具体内容和形式,为便于理解,下面简单对协商规则举例:
协商规则1:对端设备的传输参数与本端设备的传输参数中,某些参数的值,例如,数据报文长度和初始窗口大小的值,较小的一端为控制方。
协商规则2:如果协商信令指明对端设备为控制方,则本端设备为非控制方,但是,如果协商信令指明对端设备为控制方且对端设备支持的协议版本低于本端设备,则本端设备为控制方;
如果协商信令指明对端设备为非控制方,则本端设备为控制方;
S1103:如果协商信令指明对端设备为非控制方、且本端设备不支持控制功能,则两个设备都不是控制方,改使用两个设备共同支持的现有的双端控制传输的传输协议。
如果第二设备返回的协商结果为第一设备是控制方,第二设备根据接收到的初始控制信令传输数据,以及第一设备通过内部接口函数控制本端的报文收发。
如果第二设备返回的协商结果为第二设备是控制方,或者来自第二设备的协商信令中指包括第二设备的传输信息和角色参数,则第一设备根据收到来自第二设备的协商信令、第一设备的本端信息以及协商规则,确定控制方,如第一设备也确定出第二设备是控制方,则第二设备控制第一设备的报文传输。
或者,作以下处理:以第一设备确定出的控制方控制该连接的数据传输;
再或者,由于有可能第一设备和第二设备都得出本端设备为控制方的结果,或者有可能第一设备和第二设备都得出本端设备不是控制方的结果,或者有可能协商出的控制方没有控制权限,那么,在上述三种情况下,改使用两个设备共同支持的现有的双端控制传输的传输协议。
通过上述的协商过程,可以根据设备和网络的具体情况,在连接建链阶段为确定出控制方。这种方式更加灵活,也节省了协商过程的报文交互,尽量压缩了协商过程的时长,使得数据传输过程可以尽快开始,使第一设备减少等待数据的时间。
关于第二设备控制第一设备的报文传输的具体实现,可参照前文描述的第一设备作为控制方时的方法流程和实现细节,此处不再重复。
图11中以经过协商后第一设备为控制方为例示意,即第一设备收到第二设备发送的协商信令后,确定控制方为本端设备,如图11中1103所示。图11中还描述了1104,即第二设备按照初始控制信令传输数据。以及1105,1106,即第一设备向第二设备发送控制报文(如控制报文1和控制报文2),该控制消息中携带控制信令;第二设备按照接收到的控制消息(如控制消息1和控制消息2)的指示,发送报文。应理解,控制消息1和控制消息2用于指示第二设备持续发送需要传输的报文,是第一设备接收了来自第二设备的报文后发送的,控制消息1和控制消息2中可以携带前文描述的任意一种控制信令。1101到1106各个步骤的时序关系可参考图中示意的报文交互关系。
应理解,图9-11对应的方法流程中,可使用前文(如图5到图8)对应的段落所描述的各种控制报文,以及控制报文的响应。
图12描述了本发明实施例提供的一种用于传输控制的装置的结构示意图,该装置1200包括控制模块1201,发送模块1202和接收模块1203。例如,图12中的模块可以对应图10中示意的第一设备中的模块。装置1200可以运行于前文描述的第一设备,或者控制方中。类似的,图13描述了另一种传输被控制的装置的结构示意图,该装置1300包括接收模块1301和发送模块1302,图13可对应图10中示意的第二设备。装置1300可以运行于前文描述的第二设备或者被控制方中。因此,图12和图13的装置可以执行前文描述的传输控制方法,例如图9到图11对应的段落所描述的例子,在执行这些传输控制方法的过程中,可使用前文记载的各种控制信令,这些控制信令可使用前文描述的封装格式,例如图5到图8所示的例子。另外,一种实现方式下,装置1200和装置1300可以由如图4所示的操作***中协议栈的代码实现。
下面简要描述装置1200和装置1300的几种实现方式,关于下述的实现方式的细节的说明,以及技术效果,请参考前文,此处不再赘述。
一种实现方式下,控制模块1201,用于生成第一控制信令。发送模块1202,用于向第二设备发送第一控制信令,所述第一控制信令指示所述第二设备发送第一组数据报文,其中,所述第一控制信令包括第一报文序列号、第一报文序列号范围和第一发送时间间隔,所述第一组数据报文为从所述第一报文序列号起,在所述第一报文序列号范围内的数据报文,所述第一发送时间间隔指示发送所述第一组数据报文中的数据报文的时间间隔。接收模块1203,用于接收来自所述第二设备的至少一个数据报文,所述至少一个数据报文为所述第一组数据报文中的数据报文。
一种实现方式下,控制模块1201,还用于通过接口函数,向所述发送模块1202下发所述第一控制信令。
一种实现方式下,控制模块1201还用于根据接收的第一数据报文生成第二控制信令。第一数据报文的报文序列号在所述至少一个数据报文中最大。发送模块1202还用于发送所述第二控制信令,所述第二控制信令指示所述第二设备发送第二组数据报文,所述第二控制信令包括第二报文序列号、第二报文序列号范围和第二发送时间间隔,所述第二组数据报文为从所述第二报文序列号起,在所述第二报文序列号范围内的数据报文,所述第二发送时间间隔指示发送所述第二组数据报文中的数据报文的时间间隔,其中,所述第二报文序列号大于所述第一数据报文的报文序列号。
一种实现方式下,第一控制信令封装于第一控制帧,所述第一控制帧包括类型字段,初始报文序列号字段,报文序列号范围字段和发送时间间隔字段,其中,所述第一控制帧中类型字段的值对应所述第一控制信令的类型,所述第一控制帧中的所述初始报文序列号字段的值指示所述第一报文序列号,所述第一控制帧中的所述报文序列号范围字段的值指示所述第一报文序列号范围,所述第一控制帧中的所述发送时间间隔字段的值指示为所述第一发送时间间隔。
一种实现方式下,发送模块1202还用于向所述第二设备发送第三控制信令,所述第三控制信令包括所述第一报文序列号。所述接收模块1203还用于接收来自所述第二设备对所述第三控制信令的响应,所述第三控制信令的响应包括所述第一报文序列号,以及从所述第一报文序列号起,至少一个待发送的数据报文的信息。
一种实现方式下,发送模块1202还用于向所述第二设备发送第三组数据报文,所述第三组数据报文为从第三报文序列号起,在第三报文序列号范围内的数据报文;以及向所述第二设备发送第四控制信令,所述第四控制信令包括所述第三报文序列号,所述第三报文序列号范围和时间戳,所述时间戳为所述第一设备发送所述第四控制信令的***时间。接收模块1203还用于接收来自所述第二设备对所述第四控制信令的响应,所述第四控制信令的响应包括所述时间戳,所述第四控制信令的响应还包括所述第三组数据报文中被接收或者未被接收的数据报文的信息。
装置1200还可以在多路径传输场景下实现另一种传输控制。在此场景下,装置1200位于第一设备,所述第一设备与第二设备之间的连接对应多条路径,所述装置1200包括控制模块1201,用于生成第一报文,所述第一报文包括双路径标识。发送模块1202,用于在所述多条路径中的第一路径上向第二设备发送所述第一报文。接收模块1203,用于在所述双路径标识指示报文传输方式为单路径传输时,所述第一设备从所述第一路径上接收所述第二设备发送的报文;在所述双路径标识指示报文传输方式为多路径传输时,所述第一设备从所述多条路径的每条路径上,接收所述第二设备发送的报文。
一种实现方式下,控制模块1201还用于通过接口函数,向所述发送模块1202下发所述第一报文。
其中,所述多路径传输为冗余传输或者聚合传输中的任意一种。该双路径标识用于指示所述连接的报文传输方式。这样,在多路径传输场景下,可以通过双路径标识,指示对端设备发送数据的方式。
对装置1300,一种实现方式下,接收模块1301用于接收来自第一设备的第一控制信令,所述第一控制信令包括第一报文序列号、第一报文序列号范围和第一发送时间间隔。发送模块1302用于根据所述第一控制信令,以所述第一发送时间间隔,向所述第一设备发送多个第一数据报文,所述多个第一数据报文为从所述第一报文序列号起,在所述第一报文序列号范围内的数据报文。
一种实现方式下,所述第一控制信令封装于第一控制帧,所述第一控制帧包括类型字段,初始报文序列号字段,报文序列号范围字段和发送时间间隔字段,其中,所述第一控制帧中类型字段的值对应所述第一控制信令的类型,所述第一控制帧中的所述初始报文序列号字段的值指示所述第一报文序列号,所述第一控制帧中的所述报文序列号范围字段的值指示所述第一报文序列号范围,所述第一控制帧中的所述发送时间间隔字段的值指示所述第一发送时间间隔。
一种实现方式下,接收模块1301还用于接收来自所述第一设备的第二控制信令,所述第二控制信令包括第二报文序列号、第二报文序列号范围和第二发送时间间隔,所述第二报文序列号大于所述第一报文的报文序列号。发送模块1302还用于根据所述第二控制信令,以所述第二发送时间间隔,向所述第二设备发送多个第二数据报文,所述第二数据报文为从所述第二报文序列号起,在所述第二报文序列号范围内的数据报文。
一种实现方式下,接收模块1301还用于接收来自所述第一设备的第三控制信令,所述第三控制信令包括所述第一报文序列号。发送模块1302还用于向所述第一设备发送所述第三控制信令的响应,所述第三控制信令的响应包括所述第一报文序列号,以及从所述第一报文序列号起,至少一个待发送的数据报文的信息。
一种实现方式下,接收模块1301还用于接收来自所述第一设备的至少一个第三数据报文以及第四控制信令,所述至少一个第三数据报文为第三组数据报文中的数据报文,所述第四控制信令包括第三报文序列号,第三报文序列号范围和时间戳,所述第三组数据报文为从所述第三报文序列号起,在所述第三报文序列号范围内的数据报文,所述时间戳为所述第四控制信令被发送时,所述第一设备的***时间。发送模块1302还用于向所述第一设备发送所述第四控制信令的反馈报文,所述反馈报文包括所述时间戳,所述反馈报文还包括所述至少一个第三数据报文的信息或者所述第三组数据报文中未被接收的数据报文的信息。
装置1300还可以在多路径传输场景下,配合控制方,实现另一种传输控制。在此场景下,装置1300位于第二设备,其中第一设备与所述第二设备之间的连接对应多条路径,接收模块1301用于从所述多条路径中的第一路径接收来自于所述第一设备的第一报文,所述第一报文包括双路径标识,所述双路径标识用于指示所述连接的报文传输方式。发送模块1302用于在所述双路径标识指示所述报文传输方式为单路径传输情况下,所述第二设备从所述第一路径上,向所述第一设备发送报文;在所述双路径标识指示所述报文传输方式为多路径传输情况下,所述第二设备从所述多条路径的每条路径上,向所述第一设备发送报文。
其中,所述多路径传输为冗余传输或者聚合传输中的任意一种。该双路径标识用于指示所述连接的报文传输方式。这样,在多路径传输场景下,可以通过双路径标识,指示对端设备发送数据的方式。
图14描述了本发明实施例提供的设备的结构示意图,图14描述的设备可以是终端,云服务器、云端代理服务器、负载均衡器或者混合接入网关等。该设备1400包括:至少一个处理电路1401,通信接口1403,通信接口1403包括至少一个物理网卡,存储介质1404,至少一个通信总线1402。通信总线1402用于实现这些组件之间的连接通信。也就是说图4描述的包括处理器,存储器和网卡的设备,是图14的一种具体实现方式。图14可以执行前文描述的各种传输控制方法,例如图9到图11对应的段落所描述的例子,在执行这些传输控制方法的过程中,可使用前文记载的各种控制信令,这些控制信令可使用前文描述的封装格式,例如图5到图8所示的例子。故,具体的实现方式,实施细节和有益效果,此处都不再赘述。
另外,处理电路1401执行存储介质1404中的代码,配合通信接口1403,可以实现图12和图13对应的装置。例如,装置1200和1300中的发送模块和接收模块,可以是处理电路1401执行存储介质1404中的指令,驱动通信接口1403实现的,具体可以是由运行在处理电路1401的不同的进程或者线程执行指令,以调用的通信接口实现。发送模块和接收模块在硬件上有可能是同一个设备(如网卡),其功能是由该设备上的不同端口(port)实现的。
一种实现方式下,该设备1400可以是终端设备,在是终端设备的情况下,可选的包含用户接口,包括显示器(例如,触摸屏、LCD、CRT、全息成像(Holographic)或者投影(Projector)等),键盘或者点击设备(例如,鼠标,轨迹球(trackball),触感板或者触摸屏等)。存储介质1405可以包括只读存储器和随机存取存储器,并向处理电路1401提供指令和数据。存储介质1405的一部分还可以包括非易失性随机存取存储器(NVRAM)。
该设备为终端或者云服务器或云端代理服务器的情况下,存储介质1405存储了如下的元素,可执行模块或者数据结构,或者他们的子集,或者他们的扩展集:操作***,包含各种***程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;应用程序,包含各种应用程序,例如桌面(launcher)、媒体播放器(MediaPlayer)、浏览器(Browser)等,用于实现各种应用业务。而在该设备为网关的情况下,该存储介质1405可以只存储用于执行上文所述的方法(例如包括接收或发送数据报文,以及接收或发送确认包,以及接收到的数据报文或分析接收到的确认包等)所需要的程序代码。
处理电路1401可以通过一个或多个处理器实现,处理电路1401可以为中央处理器(英文:central processing unit,缩写:CPU)。处理电路1401还可以为其他通用处理器、数字信号处理器(英文:digital signal processing,缩写:DSP)、专用集成电路(英文:application specific integrated circuit,缩写:ASIC)、现场可编程门阵列(英文:field-programmable gate array,缩写:FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
***总线1402可以包括数据总线、电源总线、控制总线和信号状态总线等。本实施例中为了清楚说明,在图14中将各种总线都示意为***总线1402。
接口电路1403具体可以是物理机上的通信接口。该通信接口可以为无线通信接口。例如,无线通信接口可以是物理机的无线模块或者网卡等。处理电路40通过接口电路41与其他设备,例如其他物理机之间进行数据的收发。
存储介质1404可以包括易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储介质1404也可以包括非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD);存储介质1404还可以包括上述种类的存储器的组合。
存储介质1404可以包括底层存储介质和内存。底层存储介质例如可以是例如网卡中的存储介质等。其中,内存耦合至底层存储介质,用于作为底层存储介质的缓存。
本申请还提供一种可读存储介质,该可读存储介质包括计算机执行指令,当物理机运行时,物理机的处理器执行该计算机执行指令,以使物理机执行本发明实施例提供的任一种方法。
可选的,本实施例中的可读存储介质可以为上述如图14所示的存储介质1403。
本申请还描述一种计算机程序产品,所述计算机程序产品包括指令,当所述指令在计算机上运行时,使得所述计算机执行本申请描述的任一种方法。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的设备,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。比如,发送模块1202和接收模块1203可以是一个模块,如收发模块或者收发器。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,如前文提到的接口函数,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
在上述实施例使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD),相变存储器)等。
以上为本发明实施例所提供的方法和装置,以上实施例的说明只是用于帮助理解本发明的方法;同时,对于本领域的一般技术人员,依据本发明已记载的内容,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本发明的限制。

Claims (22)

1.一种传输控制的方法,其特征在于,所述方法包括:
第一设备向第二设备发送第一控制信令,所述第一控制信令指示所述第二设备发送第一组数据报文,其中,所述第一控制信令包括第一报文序列号、第一报文序列号范围和第一发送时间间隔,所述第一组数据报文为从所述第一报文序列号起,在所述第一报文序列号范围内的数据报文,所述第一发送时间间隔指示发送所述第一组数据报文中的数据报文的时间间隔;
所述第一设备接收来自所述第二设备的至少一个数据报文,所述至少一个数据报文为所述第一组数据报文中的数据报文;
所述第一设备根据接收的第一数据报文发送第二控制信令,所述第一数据报文的报文序列号在所述至少一个数据报文中最大,所述第二控制信令指示所述第二设备发送第二组数据报文,所述第二控制信令包括第二报文序列号、第二报文序列号范围和第二发送时间间隔,所述第二组数据报文为从所述第二报文序列号起,在所述第二报文序列号范围内的数据报文,所述第二发送时间间隔指示发送所述第二组数据报文中的数据报文的时间间隔,其中,所述第二报文序列号大于所述第一数据报文的报文序列号;
所述第一设备向所述第二设备发送第三控制信令,所述第三控制信令包括所述第一报文序列号;
所述第一设备接收来自所述第二设备对所述第三控制信令的响应,所述第三控制信令的响应包括所述第一报文序列号,以及从所述第一报文序列号起,至少一个待发送的数据报文的信息。
2.根据权利要求1所述的方法,其特征在于,所述第一控制信令封装于第一控制帧,所述第一控制帧包括类型字段,初始报文序列号字段,报文序列号范围字段和发送时间间隔字段,其中,所述第一控制帧中类型字段的值对应所述第一控制信令的类型,所述第一控制帧中的所述初始报文序列号字段的值指示所述第一报文序列号,所述第一控制帧中的所述报文序列号范围字段的值指示所述第一报文序列号范围,所述第一控制帧中的所述发送时间间隔字段的值指示为所述第一发送时间间隔。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述第一设备向所述第二设备发送第三组数据报文,所述第三组数据报文为从第三报文序列号起,在第三报文序列号范围内的数据报文;
所述第一设备向所述第二设备发送第四控制信令,所述第四控制信令包括所述第三报文序列号,所述第三报文序列号范围和时间戳,所述时间戳为所述第一设备发送所述第四控制信令的***时间;
所述第一设备接收来自所述第二设备对所述第四控制信令的响应,所述第四控制信令的响应包括所述时间戳,所述第四控制信令的响应还包括所述第三组数据报文中被接收或者未被接收的数据报文的信息。
4.根据权利要求3所述的方法,其特征在于,所述第四控制信令封装于第四控制帧,所述第四控制帧包括类型字段、初始报文序列号字段、报文序列号范围字段和时间戳字段,其中,所述第四控制帧中的所述类型字段的值对应所述第四控制信令的类型,所述第四控制帧中的所述初始报文序列号字段的值指示所述第三报文序列号,所述第四控制帧中的所述报文序列号范围字段的值为所述第三报文序列号范围。
5.根据权利要求3所述的方法,其特征在于,所述第一组数据报文,所述第二组数据报文和所述第三组数据报文分别携带第一流标识号,所述第一控制信令,第二控制信令,第三控制信令,第四控制信令,所述第三控制信令的响应以及所述第四控制信令的响应所在的报文分别携带第二流标识号。
6.根据权利要求1所述的方法,其特征在于,所述第一控制信令封装于第一控制帧,所述第一控制帧封装于第一控制报文内,所述第一控制帧携带第三流标识号, 所述第一控制报文还包括第五控制帧,所述第五控制帧封装有第五控制信令,所述第五控制信令用于指示所述第二设备发送第五组报文,其中,所述第五控制帧携带第四流识别号。
7.根据权利要求1所述的方法,其特征在于,所述第一控制信令封装在握手报文中,所述握手报文为所述第一设备与第二设备建立连接过程中使用的报文。
8.一种传输控制的方法,其特征在于,所述方法包括:
第二设备接收来自第一设备的第一控制信令,所述第一控制信令包括第一报文序列号、第一报文序列号范围和第一发送时间间隔;
所述第二设备根据所述第一控制信令,以所述第一发送时间间隔,向所述第一设备发送多个第一数据报文,所述多个第一数据报文为从所述第一报文序列号起,在所述第一报文序列号范围内的数据报文;
所述第二设备接收来自所述第一设备的第二控制信令,所述第二控制信令包括第二报文序列号、第二报文序列号范围和第二发送时间间隔,所述第二报文序列号大于所述第一报文的报文序列号;
所述第二设备根据所述第二控制信令,以所述第二发送时间间隔,向所述第一设备发送多个第二数据报文,所述第二数据报文为从所述第二报文序列号起,在所述第二报文序列号范围内的数据报文;
所述第二设备接收来自所述第一设备的第三控制信令,所述第三控制信令包括所述第一报文序列号;
所述第二设备向所述第一设备发送所述第三控制信令的响应,所述第三控制信令的响应包括所述第一报文序列号,以及从所述第一报文序列号起,至少一个待发送的数据报文的信息。
9.根据权利要求8所述的方法,其特征在于,所述第一控制信令封装于第一控制帧,所述第一控制帧包括类型字段,初始报文序列号字段,报文序列号范围字段和发送时间间隔字段,其中,所述第一控制帧中类型字段的值对应所述第一控制信令的类型,所述第一控制帧中的所述初始报文序列号字段的值指示所述第一报文序列号,所述第一控制帧中的所述报文序列号范围字段的值指示所述第一报文序列号范围,所述第一控制帧中的所述发送时间间隔字段的值指示所述第一发送时间间隔。
10.根据权利要求8或9任一所述的方法,其特征在于,所述方法还包括:
所述第二设备接收来自所述第一设备的至少一个第三数据报文以及第四控制信令,所述至少一个第三数据报文为第三组数据报文中的数据报文,所述第四控制信令包括第三报文序列号,第三报文序列号范围和时间戳,所述第三组数据报文为从所述第三报文序列号起,在所述第三报文序列号范围内的数据报文,所述时间戳为所述第四控制信令被发送时,所述第一设备的***时间;
所述第二设备向所述第一设备发送所述第四控制信令的反馈报文,所述反馈报文包括所述时间戳,所述反馈报文还包括所述至少一个第三数据报文的信息或者所述第三组数据报文中未被接收的数据报文的信息。
11.根据权利要求10所述的方法,其特征在于,所述第四控制信令封装于第四控制帧,所述第四控制帧包括类型字段、初始报文序列号字段、报文序列号范围字段和时间戳字段,其中,所述第四控制帧中的所述类型字段的值指示所述第四控制信令的类型,所述第四控制帧中的所述初始报文序列号字段的值指示所述第三报文序列号,所述第四控制帧中的所述报文序列号范围字段的值指示所述第三报文序列号范围。
12.根据权利要求10所述的方法,其特征在于,所述多个第一数据报文,所述多个第二组数据报文和所述至少一个第三组数据报文分别携带第一流标识号,所述第一控制信令,第二控制信令,第三控制信令,第四控制信令,所述第三控制信令的响应以及所述第四控制信令的响应所在的报文分别携第二流标识号。
13.一种用于传输控制的装置,其特征在于,所述装置包括:
控制模块, 所述控制模块用于生成第一控制信令;
发送模块,所述发送模块用于向第二设备发送第一控制信令,所述第一控制信令指示所述第二设备发送第一组数据报文,其中,所述第一控制信令包括第一报文序列号、第一报文序列号范围和第一发送时间间隔,所述第一组数据报文为从所述第一报文序列号起,在所述第一报文序列号范围内的数据报文,所述第一发送时间间隔指示发送所述第一组数据报文中的数据报文的时间间隔;
接收模块,所述接收模块用于接收来自所述第二设备的至少一个数据报文,所述至少一个数据报文为所述第一组数据报文中的数据报文;
所述控制模块还用于根据接收的第一数据报文生成第二控制信令,所述第一数据报文的报文序列号在所述至少一个数据报文中最大;
所述发送模块还用于发送所述第二控制信令,所述第二控制信令指示所述第二设备发送第二组数据报文,所述第二控制信令包括第二报文序列号、第二报文序列号范围和第二发送时间间隔,所述第二组数据报文为从所述第二报文序列号起,在所述第二报文序列号范围内的数据报文,所述第二发送时间间隔指示发送所述第二组数据报文中的数据报文的时间间隔,其中,所述第二报文序列号大于所述第一数据报文的报文序列号;
所述发送模块还用于向所述第二设备发送第三控制信令,所述第三控制信令包括所述第一报文序列号;所述接收模块还用于接收来自所述第二设备对所述第三控制信令的响应,所述第三控制信令的响应包括所述第一报文序列号,以及从所述第一报文序列号起,至少一个待发送的数据报文的信息。
14.根据权利要求13所述的装置,其特征在于,所述控制模块还用于通过接口函数,向所述发送模块下发所述第一控制信令。
15.根据权利要求13或14任一所述的装置,其特征在于,所述第一控制信令封装于第一控制帧,所述第一控制帧包括类型字段,初始报文序列号字段,报文序列号范围字段和发送时间间隔字段,其中,所述第一控制帧中类型字段的值对应所述第一控制信令的类型,所述第一控制帧中的所述初始报文序列号字段的值指示所述第一报文序列号,所述第一控制帧中的所述报文序列号范围字段的值指示所述第一报文序列号范围,所述第一控制帧中的所述发送时间间隔字段的值指示为所述第一发送时间间隔。
16.根据权利要求13所述的装置,其特征在于,所述发送模块还用于向所述第二设备发送第三组数据报文,所述第三组数据报文为从第三报文序列号起,在第三报文序列号范围内的数据报文;以及向所述第二设备发送第四控制信令,所述第四控制信令包括所述第三报文序列号,所述第三报文序列号范围和时间戳,所述时间戳为所述发送模块发送所述第四控制信令的***时间;
所述接收模块还用于接收来自所述第二设备对所述第四控制信令的响应,所述第四控制信令的响应包括所述时间戳,所述第四控制信令的响应还包括所述第三组数据报文中被接收或者未被接收的数据报文的信息。
17.一种传输被控制的装置,其特征在于,所述装置包括接收模块和发送模块,所述接收模块用于接收来自第一设备的第一控制信令,所述第一控制信令包括第一报文序列号、第一报文序列号范围和第一发送时间间隔;
所述发送模块用于根据所述第一控制信令,以所述第一发送时间间隔,向所述第一设备发送多个第一数据报文,所述多个第一数据报文为从所述第一报文序列号起,在所述第一报文序列号范围内的数据报文;
所述接收模块还用于接收来自所述第一设备的第二控制信令,所述第二控制信令包括第二报文序列号、第二报文序列号范围和第二发送时间间隔,所述第二报文序列号大于所述第一报文的报文序列号;
所述发送模块还用于根据所述第二控制信令,以所述第二发送时间间隔,向所述第一设备发送多个第二数据报文,所述第二数据报文为从所述第二报文序列号起,在所述第二报文序列号范围内的数据报文;
所述接收模块还用于接收来自所述第一设备的第三控制信令,所述第三控制信令包括所述第一报文序列号;
所述发送模块还用于向所述第一设备发送所述第三控制信令的响应,所述第三控制信令的响应包括所述第一报文序列号,以及从所述第一报文序列号起,至少一个待发送的数据报文的信息。
18.根据权利要求17所述的装置,其特征在于,所述第一控制信令封装于第一控制帧,所述第一控制帧包括类型字段,初始报文序列号字段,报文序列号范围字段和发送时间间隔字段,其中,所述第一控制帧中类型字段的值对应所述第一控制信令的类型,所述第一控制帧中的所述初始报文序列号字段的值指示所述第一报文序列号,所述第一控制帧中的所述报文序列号范围字段的值指示所述第一报文序列号范围,所述第一控制帧中的所述发送时间间隔字段的值指示所述第一发送时间间隔。
19.根据权利要求17或18所述的装置,其特征在于,所述接收模块还用于接收来自所述第一设备的至少一个第三数据报文以及第四控制信令,所述至少一个第三数据报文为第三组数据报文中的数据报文,所述第四控制信令包括第三报文序列号,第三报文序列号范围和时间戳,所述第三组数据报文为从所述第三报文序列号起,在所述第三报文序列号范围内的数据报文,所述时间戳为所述第四控制信令被发送时,所述第一设备的***时间;
所述发送模块还用于向所述第一设备发送所述第四控制信令的反馈报文,所述反馈报文包括所述时间戳,所述反馈报文还包括所述至少一个第三数据报文的信息或者所述第三组数据报文中未被接收的数据报文的信息。
20.一种传输控制设备,其特征在于,所述设备包括处理电路、通信接口和存储介质,所述存储介质中存储有指令,所述通信接口用于根据所述处理器下发的所述指令与其他设备进行信息交互,所述处理器用于运行所述存储介质中的所述指令控制所述通信接口,以实现如权利要求1到7任一所述的方法。
21.一种传输被控制的设备,其特征在于,所述设备包括处理电路、通信接口和存储介质,所述存储介质中存储有指令,所述通信接口用于根据所述处理器下发的所述指令与其他设备进行信息交互,所述处理器用于运行所述存储介质中的所述指令控制所述通信接口,以实现如权利要求8到12任一所述的方法。
22.一种计算机可读存储介质,包括指令,当所述指令在计算机上运行时,使得所述计算机执行如权利要求1到7,或者8到12任一所述的方法。
CN201811025822.XA 2018-09-04 2018-09-04 一种传输控制方法和装置 Active CN110875799B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
CN201811025822.XA CN110875799B (zh) 2018-09-04 2018-09-04 一种传输控制方法和装置
EP19856989.9A EP3780440A4 (en) 2018-09-04 2019-09-04 TRANSMISSION CONTROL APPARATUS AND METHOD
KR1020207033330A KR102452752B1 (ko) 2018-09-04 2019-09-04 전송 제어 방법 및 장치
PCT/CN2019/104343 WO2020048478A1 (zh) 2018-09-04 2019-09-04 一种传输控制方法和装置
JP2020566640A JP7142722B2 (ja) 2018-09-04 2019-09-04 伝送制御方法および装置
US17/097,794 US11477130B2 (en) 2018-09-04 2020-11-13 Transmission control method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811025822.XA CN110875799B (zh) 2018-09-04 2018-09-04 一种传输控制方法和装置

Publications (2)

Publication Number Publication Date
CN110875799A CN110875799A (zh) 2020-03-10
CN110875799B true CN110875799B (zh) 2023-07-07

Family

ID=69716933

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811025822.XA Active CN110875799B (zh) 2018-09-04 2018-09-04 一种传输控制方法和装置

Country Status (6)

Country Link
US (1) US11477130B2 (zh)
EP (1) EP3780440A4 (zh)
JP (1) JP7142722B2 (zh)
KR (1) KR102452752B1 (zh)
CN (1) CN110875799B (zh)
WO (1) WO2020048478A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11336683B2 (en) * 2019-10-16 2022-05-17 Citrix Systems, Inc. Systems and methods for preventing replay attacks
US20210119930A1 (en) * 2019-10-31 2021-04-22 Intel Corporation Reliable transport architecture
US11522804B2 (en) * 2020-03-20 2022-12-06 Cornami, Inc. Method and system for robust streaming of data
US11489761B2 (en) * 2020-04-23 2022-11-01 Code On Network Coding, Llc Method and apparatus for coded multipath network communication
CN112104635B (zh) * 2020-09-09 2022-10-14 中移(杭州)信息技术有限公司 通信方法、***和网络设备
CN112351041B (zh) * 2020-11-11 2023-04-21 宏图智能物流股份有限公司 一种应用于物流网络的网络请求防篡改方法
CN114979021B (zh) * 2021-02-27 2024-05-14 华为技术有限公司 数据处理方法及电子设备
CN114143061B (zh) * 2021-11-25 2023-06-02 郑州信大信息技术研究院有限公司 基于用户态协议栈实现数据安全可靠传输的方法及***
CN115022251B (zh) * 2022-06-02 2023-09-05 中国电子科技集团公司第二十八研究所 一种信息***间双向报文收发控制方法
KR102669915B1 (ko) * 2022-10-17 2024-05-28 주식회사 브이알크루 크라우드 소싱 기반 3차원 지도 갱신 방법 및 장치

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101883047A (zh) * 2010-06-25 2010-11-10 黄宏程 多网络接口设备的数据并发传输方法
CN102025601A (zh) * 2009-09-17 2011-04-20 中兴通讯股份有限公司 一种数据封装方法及***
CN107425943A (zh) * 2017-08-31 2017-12-01 广州视源电子科技股份有限公司 报文数据传输方法、装置、电子设备及计算机存储介质
CN107872357A (zh) * 2016-09-27 2018-04-03 华为技术有限公司 一种测量链路可用带宽的方法、设备及***

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090083339A (ko) * 2006-09-13 2009-08-03 아산키아 네트웍스 인코포레이티드 다중경로 환경에서 전송 프로토콜의 성능을 향상시키기 위한 시스템 및 방법
CN101656656B (zh) * 2008-08-22 2011-12-14 ***通信集团公司 基于异构化移动通信网络的报文发送、接收方法及装置
CN101594692B (zh) 2009-06-30 2011-05-11 中兴通讯股份有限公司 一种ip abis中的快速呼叫建立的方法及***
JP2013507826A (ja) * 2009-10-07 2013-03-04 トムソン ライセンシング ネットワークにおける信頼性の高いリアルタイム・データストリーミングのための効率的なアプリケーションレイヤの自動再送要求の再送信方法
CN101699786B (zh) * 2009-10-15 2012-09-05 华为技术有限公司 一种丢包检测的方法、装置和***
JP5672063B2 (ja) * 2011-02-24 2015-02-18 富士通株式会社 送信制御プログラム、通信装置および送信制御方法
WO2012159188A1 (en) * 2011-05-20 2012-11-29 Research In Motion Limited Hybrid automatic repeat request using multiple receiver- coordinated transmitters
US9456464B2 (en) 2013-06-06 2016-09-27 Apple Inc. Multipath TCP subflow establishment and control
CN104601483A (zh) * 2013-10-31 2015-05-06 华为技术有限公司 报文转发方法、装置及转发设备
US9781488B2 (en) * 2015-07-30 2017-10-03 Adi Rozenberg Controlled adaptive rate switching system and method for media streaming over IP networks

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102025601A (zh) * 2009-09-17 2011-04-20 中兴通讯股份有限公司 一种数据封装方法及***
CN101883047A (zh) * 2010-06-25 2010-11-10 黄宏程 多网络接口设备的数据并发传输方法
CN107872357A (zh) * 2016-09-27 2018-04-03 华为技术有限公司 一种测量链路可用带宽的方法、设备及***
CN107425943A (zh) * 2017-08-31 2017-12-01 广州视源电子科技股份有限公司 报文数据传输方法、装置、电子设备及计算机存储介质

Also Published As

Publication number Publication date
EP3780440A1 (en) 2021-02-17
EP3780440A4 (en) 2021-06-16
JP2021525044A (ja) 2021-09-16
US20210067457A1 (en) 2021-03-04
JP7142722B2 (ja) 2022-09-27
CN110875799A (zh) 2020-03-10
US11477130B2 (en) 2022-10-18
KR20210003834A (ko) 2021-01-12
KR102452752B1 (ko) 2022-10-07
WO2020048478A1 (zh) 2020-03-12

Similar Documents

Publication Publication Date Title
CN110875799B (zh) 一种传输控制方法和装置
US20200358886A1 (en) Data Transmission Method, Apparatus, And System
US10694005B2 (en) Hardware-based packet forwarding for the transport layer
US9253015B2 (en) Transparent proxy architecture for multi-path data connections
US8122140B2 (en) Apparatus and method for accelerating streams through use of transparent proxy architecture
US20160094467A1 (en) Application aware multihoming for data traffic acceleration in data communications networks
WO2018187135A1 (en) A proxy for serving internet-of-things (iot) devices
JP6035248B2 (ja) コンピュータネットワークによるデータの送信方法及びシステム
US11258823B2 (en) Multilayer tunneling of protocols over QUIC
EP3588906B1 (en) Multi-path management with http/2
JP7050094B2 (ja) パケット送信方法、プロキシサーバ、およびコンピュータ読取り可能記憶媒体
CN109067796A (zh) 一种数据传输方法及装置
US20220407799A1 (en) Method and network device for multi-path communication
CN115002023B (zh) 一种链路聚合方法、链路聚合装置、电子设备及存储介质
Coonjah et al. An investigation of the TCP meltdown problem and proposing raptor codes as a novel to decrease TCP retransmissions in VPN systems
WO2020154872A1 (zh) 一种传输控制协议加速方法和装置
JP2017038297A (ja) 通信装置、通信方法、及び通信システム
CN116032689A (zh) 基于隧道的报文传输方法、客户端网关设备
EP3525419A1 (en) Connectionless protocol with bandwidth and congestion control

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
GR01 Patent grant