CN109218186A - 一种多路径数据传输处理方法及网络设备 - Google Patents
一种多路径数据传输处理方法及网络设备 Download PDFInfo
- Publication number
- CN109218186A CN109218186A CN201710544954.2A CN201710544954A CN109218186A CN 109218186 A CN109218186 A CN 109218186A CN 201710544954 A CN201710544954 A CN 201710544954A CN 109218186 A CN109218186 A CN 109218186A
- Authority
- CN
- China
- Prior art keywords
- network equipment
- host
- connection identifier
- data packet
- connection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 123
- 238000000034 method Methods 0.000 title claims abstract description 90
- 238000012545 processing Methods 0.000 title abstract description 7
- 238000005538 encapsulation Methods 0.000 claims abstract description 14
- 238000004891 communication Methods 0.000 claims abstract description 13
- 238000012790 confirmation Methods 0.000 claims description 78
- 230000008569 process Effects 0.000 claims description 36
- 230000009849 deactivation Effects 0.000 claims description 3
- 101000611240 Homo sapiens Low molecular weight phosphotyrosine protein phosphatase Proteins 0.000 description 228
- 102100040323 Low molecular weight phosphotyrosine protein phosphatase Human genes 0.000 description 228
- 230000006870 function Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 17
- 241000234295 Musa Species 0.000 description 4
- 235000018290 Musa x paradisiaca Nutrition 0.000 description 4
- 230000002776 aggregation Effects 0.000 description 3
- 238000004220 aggregation Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000002360 preparation method Methods 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- BZUZJVLPAKJIBP-UHFFFAOYSA-N 6-amino-1,2-dihydropyrazolo[3,4-d]pyrimidin-4-one Chemical compound O=C1N=C(N)N=C2NNC=C21 BZUZJVLPAKJIBP-UHFFFAOYSA-N 0.000 description 1
- 241000720945 Hosta Species 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006116 polymerization reaction Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001737 promoting effect Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/66—Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
-
- 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
- H04L5/00—Arrangements affording multiple use of the transmission path
- H04L5/003—Arrangements for allocating sub-channels of the transmission path
- H04L5/0053—Allocation of signaling, i.e. of overhead other than pilot signals
- H04L5/0055—Physical resource allocation for ACK/NACK
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- 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]
-
- 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/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- 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/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例涉及一种多路径数据传输处理方法及网络设备。第一网络设备接收来自第一主机设备的数据包,根据所述数据包确定所述第一网络设备与第二网络设备的第一连接标识。所述第一网络设备根据所述第一连接标识对所述数据包进行封装。所述第一网络设备将封装后的数据包,通过所述第一网络设备与所述第二网络设备之间的多条子流中的一条子流,发送到所述第二网络设备中。本申请实施例实现了多路径的数据传输,增大了数据传输速率,而主机设备对多路径无感知。本申请实施例能够应用于现有的任意一种通信系统中。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及多路径的数据传输。
背景技术
在标准的传输控制协议(Transmission Control Protocol,TCP)中,每个连接只使用一条路径进行传输。
然而,在当前的移动互联网中,多种无线接入技术相互融合,通信终端往往具有多种网络接口,例如无线保真(WIreless-Fidelity,Wi-Fi)接口和第三代移动通信技术(4rd-Generation,4G)接口。具有多种网络接口的两个终端之间的通信存在多条可用路径,如果依然按照标准TCP协议只使用一条路径的话,会造成其他路径资源的浪费。另一方面,目前,智能终端需要越来越多的应用程序接入互联网,如果这些应用程序能够通过不同接口的多个路径同时接入,就能够减少由无线网络因链路变化、高误码率等带来的网络连接的问题。
基于此目的,国际互联网工程任务组(The Internet Engineering Task Force,IETF)成立了因特网接入带宽聚合(BANdwidth Aggregation for interNet Access,BANANA)工作组和多径TCP(MultiPath TCP,MPTCP)工作组,以对多路径传输进行研究。快速UDP网络连接(Quick UDP Internet Connection,QUIC)工作组后期也在多径传输方向进行了研究。
现有的MPTCP工作组和QUIC工作组虽然给出了多路径传输方案,但是进行多路径传输的发送端和接收端的主机例如两个移动终端和网络服务器都能够感知其进行的数据传输是多路径数据传输。因此,需要主机的用户做出相应操作例如升级系统软件等操作,才能够实现正常的多路径传输,从而影响了用户体验。
BANANA工作组主要研究的是家庭网关(Home Gateway,HG)和混合接入汇聚结点(Hybrid Access Aggregation Point,HAAP)之间的多径连接。BANANA致力于由中间网络结点完成多路径的传输,以实现两主机的无感知多径传输。然而,目前BANANA工作组对于主机之间的无感知多径传输正处于研究阶段,并没有给出具体的实现方案。
发明内容
本申请实施例提供了一种多路径数据传输处理方法及网络设备,实现了多路径的数据传输,且主机对多路径的数据传输无感知。
第一方面,本申请实施例提供了一种多路径的数据传输方法。首先,第一网络设备接收来自第一主机设备的数据包,根据所述数据包确定所述第一网络设备与第二网络设备的第一连接标识。然后,所述第一网络设备根据所述第一连接标识对所述数据包进行封装。最后,所述第一网络设备将封装后的数据包,通过所述第一网络设备与所述第二网络设备之间的多条子流中的一条子流,发送到所述第二网络设备中。
第二方面,本申请实施例提供了一种第一网络设备。所述第一网络设备包括接收器、处理器、发射器。所述接收器用于接收来自第一主机设备的数据包,根据所述数据包确定所述第一网络设备与第二网络设备的第一连接标识。该处理器用于根据所述第一连接标识对所述数据包进行封装。该发射器用于将封装后的数据包,通过所述第一网络设备与所述第二网络设备之间的多条子流中的一条子流,发送到所述第二网络设备中。
本申请实施例通过第一网络设备接收到的数据包确定第一连接标识,并将封装后的该数据包通过多条子流的一条子流发送到第二网络设备。因此,本申请实施例实现了多路径的数据传输,提升了数据传输速度,同时主机设备却对多路径的数据传输是无感知的,无需对主机设备进行软硬件和更新,也无需重配置,不影响用户的正常使用。
在一个示例中,所述根据所述数据包确定所述第一网络设备与第二网络设备的第一连接标识,具体为:从所述数据包中获取第二连接标识,且所述第二连接标识是所述第一主机设备与所述第二主机设备之间的连接标识;根据所述第二连接标识,以及所述第一连接标识与所述第二连接标识的对应关系,确定所述第一连接标识;且所述第一网络设备包含所述第一连接标识与第二连接标识的对应关系。
在一个示例中,所述第二连接标识为所述第一主机设备与所述第二主机设备的套接字socket或者互联网协议IP五元组;所述第一连接标识为所述第一网络设备与第二网络设备的连接标识connection ID。
在一个示例中,所述第一网络设备与所述第二网络设备建立连接,并在所述连接建立之后,所述第一网络设备向所述第二网络设备发送第一确认数据包,和/或所述第一网络设备接收来自所述第二网络设备的第二确认数据包。
在一个示例中,所述第一网络设备与所述第二网络设备建立连接,在所述第一网络设备接收到来自第二网络设备的数据包的情况下,所述第一网络设备向所述第二网络设备发送确认消息。
在一个示例中,在所述第一网络设备与所述第二网络设备建立连接过程中携带确认消息功能去激活信息ACK disable。
在一个示例中,所述第一网络设备根据所述第一连接标识对所述数据包进行封装,具体为:所述第一网络设备根据所述第一连接标识对应用层数据包进行封装。
在一个示例中,所述第一网络设备根据所述第一连接标识对所述数据包进行封装,具体为:所述第一网络设备根据所述第一连接标识对互联网协议IP数据包进行封装。
第三方面,本申请实施例提供了一种多路径的数据传输方法。第二网络设备通过所述第一网络设备与第二网络设备之间的多条子流中的一条子流,接收数据包。所述第二网络设备根据所述数据包确定第一连接标识;所述第一连接标识是第一主机设备与第二主机设备的连接标识,且所述第一主机设备是与所述第一网络设备相连的主机设备,所述第二主机设备是与所述第二网络设备相连的主机设备。所述第二网络设备根据所述第一连接标识,将所述数据包发送至所述第二主机设备。
第四方面,本申请实施例提供了一种第二网络设备。所述第二网络设备包括接收器、处理器、发射器。所述接收器用于通过所述第一网络设备与第二网络设备之间的多条子流中的一条子流,接收数据包。所述处理器用于根据所述数据包确定第一连接标识;所述第一连接标识是第一主机设备与第二主机设备的连接标识,且所述第一主机设备是与所述第二网络设备相连的主机设备,所述第二主机设备是与所述第一网络设备相连的主机设备。所述发射器用于根据所述第一连接标识,将所述数据包发送至所述第二主机设备。
本申请实施例通过第二网络设备接收通过第一网络设备转发的来自第一主机的数据包,根据所述数据包确定第一连接标识,所述第一连接标识是第一网络设备与所述第二网络设备的连接标识,实现了多路径的数据传输,提升了数据传输速率,而主机对多路径传输是无感知的,用户不需要对软硬件更新,也不需要重新配置,提升了用户体验。
在一个示例中,所述第二网络设备根据所述数据包确定第一连接标识,具体为:所述第二网络设备从所述数据包中获取第二连接标识,且所述第二连接标识是所述第一网络设备与所述第二网络设备之间的连接标识;所述第二网络设备包含所述第一连接标识与第二连接标识的对应关系,所述第二网络设备根据所述对应关系以及所述第二连接标识得到所述第一连接标识。
在一个示例中,在所述第二网络设备通过所述第一网络设备与第二网络设备之间的多条子流中的一条子流,接收数据包之后,包括:所述第二网络设备对所述数据包进行解封装,得到应用层数据包。
在一个示例中,所述第二网络设备根据所述数据包确定第一连接标识,具体为:所述第二网络设备在所述解封装过程中获取所述第一连接标识。
在一个示例中,所述第一连接标识为所述第一主机设备与第二主机设备的套接字socket或者互联网协议IP五元组,所述第二连接标识为所述第一网络设备与第二网络设备的连接标识connection ID。
在一个示例中,所述第一网络设备与所述第二网络设备建立连接,在所述第一网络设备接收到来自第二网络设备的数据包的情况下,所述第一网络设备向所述第二网络设备发送确认消息。
在一个示例中,所述第二网络设备从所述第一网络设备与第二网络设备之间的多条子流中的一条子流中,接收数据包之前,包括:所述第二网络设备与所述第一网络设备建立连接,并在所述连接建立过程中携带确认消息功能去激活信息ACK disable。
第五方面,本申请实施例提供一种通信实体,可以执行实现上述第一方面提供的数据传输的方法。
第六方面,本申请实施例提供一种通信实体,可以执行实现上述第一方面提供的数据传输的方法。
本申请实施例通过第一主机与第二主机的连接标识,即第二连接标识,以及第一连接标识与第二连接标识的对应关系,得到第一连接标识,并将该第一连接标识封装在数据包中,从而实现了中间节点的多路径传输,增大了数据传输速率。而两端主机则对中间节点的多路径传输无感知,因此,用户无需对主机进行软硬件升级或者重新配置,不影响用户的使用,提升了用户的体验。
附图说明
图1为本申请实施例提供的基于QUIC连接的多路径数据传输的协议栈示意图;
图2为本申请实施例提供的一个QUIC连接支持多个IP地址的示意图;
图3为本申请实施例提供的一种基于QUIC连接的多路径数据传输方法的示意图;
图4为本申请实施例提供的一种基于QUIC连接的多路径传输的数据包确认方法示意图;
图5为本申请实施例提供的另一种基于QUIC连接的多路径传输的数据包确认方法示意图;
图6为本申请实施例提供的基于MPTCP连接的多路径数据传输的协议栈的示意图;
图7为本申请实施例提供的一种基于MPTCP连接的多路径数据传输方法示意图;
图8为本申请实施例提供的第一网络设备示意图;
图9为本申请实施例提供的第二网络设备示意图;
图10为本申请实施例提供的一种多路径数据传输装置示意图;
图11为本申请实施例提供的另一种多路径数据传输装置示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
图1是本申请实施例提供的基于QUIC连接的多路径数据传输的协议栈示意图。
图1中,第一主机设备如主机A可以是终端设备,第二主机设备如主机B可以是服务器。第一主机设备如主机A与第一网络设备如家庭网关(Home Gateway,HG)之间的数据传输是单路径的数据传输。第一主机设备如主机A与第一网络设备如HG的传输层协议是TCP协议或者UDP协议。第一网络设备如HG与第二网络设备如混合接入汇聚结点(Hybrid AccessAggregation Point,HAAP)之间的数据传输是多路径的数据传输。第一网络设备如HG与第二网络设备如HAAP的传输层协议是QUIC协议。第二网络设备如HAAP与第二主机设备如主机B之间的数据传输是单路径的数据传输。第二网络设备如HAAP与第二主机设备如主机B的传输层协议是TCP协议或UDP协议。
下面以第一主机设备为主机A,第一网络设备为HG,第二主机设备为主机B,第二网络设备为HAAP为例,进行阐述。
HG有多个接口,例如4G接口和Wi-Fi接口。HAAP也有多个接口,例如4G接口和Wi-Fi接口。HG与HAAP可以同时使用Wi-Fi接口和4G接口与主机B进行通信,因此增加了通信带宽。图1中,HG上的Wi-Fi接口的IP地址是A1,HG上的4G接口的IP地址是A2。HAAP上的Wi-Fi接口的IP地址是B1,HAAP上的4G接口的IP地址是B2。HG的Wi-Fi接口对应端口A1,HG的4G接口对应端口A2。HAAP的Wi-Fi接口对应端口B1,HAAP的4G接口对应端口B2。
由图1可见,本申请实施例的主机A收发数据是单路径的,主机B收发数据也是单路径的。主机A和主机B对中间设备包括HG和HAAP的多路径传输是无感知的。因此,无需对主机A和主机B的参数进行修改,即不需要对主机A、主机B的软硬件进行升级,现有的任意主机设备包括现有的任意终端、服务器都能够实现多路径的数据传输,因此在提升数据传输速率的同时不影响用户的正常使用。
下面结合附图1详细阐述本申请实施例提供的多路径的数据传输处理方法。
图1中,主机A与HG通过传输控制协议/网络之间互连协议(Transmission ControlProtocol/Internet Protocol,TCP/IP)进行数据传输,其中,该TCP/IP协议中的传输层协议可以是TCP或者用户数据报协议(User Datagram Protocol,UDP)。
在主机A中,应用层数据通过套接字Socket到达传输层(TCP层或UDP层)。该套接字Socket是指应用层与TCP/IP层通信的中间软件抽象层,其本质是编程接口(API),Socket用于描述IP地址和端口,且是一个通信链的句柄。在主机A中,应用层数据到达传输层后,将应用层数据包的包头进行封装,从而得到TCP数据包或UDP数据包。该TCP数据包或UDP数据包到达网络层(IP层),在网络层封装头部后,得到IP数据包。主机A将该IP数据包通过单路径传输至HG。HG作为中间节点接收来自主机A的该IP数据包。
在HG中,该IP数据包首先经由网络层(IP层)到达传输层(TCP/UDP层)。在传输层,对该IP数据包解封装后,得到TCP数据包或UDP数据包。该TCP数据包或UDP数据包通过HG的套接字socket到达应用层。而后,HG将该应用层数据封装到QUIC数据包的包头中,得到QUIC数据包。然后再将该QUIC数据包通过多条子流中的一条子流,例如子流2或子流1,并经由UDP层、IP层传输给HAAP。
需要说明的是,以上描述的是HG对应用层数据包进行封装的情况,在此种情况下,HG对其接收到的来自主机A的IP数据包进行解封装,从而得到应用层数据包,而后再对该应用层数据包进行封装。实际上,HG也可以不对其接收到(即来自主机A)的IP数据包解封装,而是直接对其接收到的IP数据包进行封装。也就是说,HG不需要解封装得到应用层数据包,而是直接将其接收到的IP数据包封装在QUIC数据包的包头上。此种情况下,HAAP在接收到来自HG的数据包之后,仅去掉QUIC包的包头,就能够直接得到IP数据包。然后再将该IP数据包发送给主机B。图1示出的是前一种实现方式,也就是说,图1仅示出了HG将其接收到的IP数据包进行解封装得到应用层数据包,然后再对该应用层数据包进行封装。
需要说明的是,图1中的connection ID仅是QUIC数据包的包头中的一个字段,而并不代表其是协议中的某一层,也就是说,HG不仅将应用层数据封装到QUIC数据包的包头上,也将连接标识connection ID封装到QUIC数据包的包头上。同样,图1中的API:子流2、API:子流1也并不代表是协议中的某一层,仅用来分别表示两个不同的子流。
需要说明的是,路径和子流是一一对应关系,也就是说,有多少条路径就有多少条子流。
在HG中,HG基于QUIC协议实现了多路径的数据传输。该QUIC协议是实现多路复用以及安全性保护的传输协议。QUIC协议不仅集成了超文本传输协议(HyperText TransferProtocol,HTTP)2.0、安全传输层协议(Transport Layer Security,TLS)、TCP协议的优点,而且具有更小的接入时延、更便捷的流量拥塞控制、更佳的纠错机制等优点。
具体地,QUIC协议规定了通过同一连接标识(connection ID)的QUIC连接,可支持多个IP地址。换句话说,具有多个IP地址的设备通过同一connection ID能干与另一设备进行多路径的数据传输,参见图2。图2中,设备201具有多个IP地址,包括IP1和IP2。该设备201可以使用IP1、IP2与设备202进行多路径的数据传输。而该设备201与设备202之间的多路径连接的连接标识connection ID是相同的。
一个典型的应用场景为:一个智能手机支持多个IP地址,例如包括家庭无线保证(WIreless-Fidelity,Wi-Fi)IP地址以及移动通信网络的第三代合作伙伴计划(3rdGeneration Partnership Project,3GPP)的IP地址。用户在家里通过该智能手机的Wi-FiIP地址观看在线视频。而后该用户离家出门,此时该智能手机不在该家庭Wi-Fi网络覆盖范围之内,则此时该智能手机通过该4G网络的IP地址继续观看该在线视频。由于该智能手机与该在线视频所在服务器之间的QUIC连接对应的是同一个connection ID。虽然该QUIC连接的子连接Wi-Fi连接断了,但是该QUIC连接的另外一个子连接4G子连接负责连接该智能手机与该在线视频所在服务器,并且该4G链接与该Wi-Fi连接均对应同一connectionID。因此,该在线视频播放业务不会中断,用户能够通过该智能手机观看到连续的在线视频,而不会被中断。
图1中,HG与HostA进行单路径的数据传输,而HG与HAAP则是进行多路径的数据传输。因此,HG需要完成由单路径与多路径之间的映射。下面详细阐述。对于单路径的数据传输,在TCP/UDP传输协议中,通过套接字Socket或IP五元组来识别不同的连接。对于多路径的数据传输,在QUIC中,同一应用层数据包对应同一connection ID,同一connection ID对应多个传输路径。
在一个示例中,HG存储套接字socket与连接标识connection ID的对应关系;其中,该连接标识connection ID是HG与HAAP之间的连接标识。参见下表1。
socket | Connection ID |
1 | C1 |
2 | C2 |
3 | C3 |
…… | …… |
Sn | Cn |
表1
由上表1可知,套接字socket与连接标识connection ID具有一一对应关系。当得到主机A的socket,通过查询该表1就能够得到HG与HAAP的连接标识(connection ID)。
在一个示例中,主机A向HG发送数据包,该数据包携带有套接字socket。HG根据该socket,并通过查询上表1得到HG与HAAP之间的连接标识connection ID。
在另一个示例中,主机A向HG发送数据包,HG接收到该数据包后,从该数据包中获取IP五元组,该IP五元组包括主机A的端口号、主机A的IP地址、协议号、主机B的端口号、主机B的IP地址。并且HG存储有IP五元组与socket之间的对应关系。HG根据该IP五元组,并通过该IP五元组与socket之间的对应关系,得到套接字socket。然后,该HG根据该套接字socket,并通过查询上表1,得到HG与HAAP之间的连接标识connecion ID。
图1中,主机A将数据包发送给HG,HG将其接收到的IP数据包进行解封装得到应用层数据包。应用层数据包与QUIC connection ID(QUIC连接标识)一一相对应。也就是说,不同的应用层数据对应不同的QUIC connection ID(QUIC连接标识)。例如,QQ应用、淘宝应用分别对应不同的QUIC connection ID(QUIC连接标识),如QQ应用的应用层数据对应的是QUIC connection ID 1(QUIC连接标识1),淘宝应用的应用层数据对应的QUIC connectionID 2(QUIC连接标识2)。
根据上文可知,HG根据其接收到的数据包中携带的socket或者根据IP五元组,并通过查询表1得到相应的QUIC connection ID(QUIC连接标识)。图1中,HG根据该QUICconnection ID,对该应用层数据包进行封装,且将该QUIC的connection ID封装在该应用层数据包的包头中,以得到QUIC数据包。在汇聚层,HG将该QUIC数据包进行分流。例如对于属于帧头的QUIC数据包通过子流1进行传输,对于属于数据帧的QUIC数据包通过子流2传输。
在一个示例中,HG根据多条路径中各路径的时延等特性确定各路径的优劣,将一帧数据中属于帧头的QUIC数据包通过时延低的路径进行传输,将一帧数据中属于数据帧部分的QUIC数据包通过时延高的路径进行传输。
需要说明的是,HG如何分流,也就是说HG所采用的分流规则,不限于上文所述,本申请不对HG所采用的分流方式作出限定。
图1中,在HG中,一部分QUIC数据包,例如属于帧头的QUIC数据包,通过一个子流如子流1,到达子流1对应的UDP层端口1;另一部分QUIC数据包,例如属于数据帧的QUIC数据包,则通过另一个子流如子流2,到达子流2对应的UDP层端口2。在传输层,HG对子流1对应的QUIC数据包1进行封装得到相应UDP数据包1,或者将子流2对应的QUIC数据包2进行封装得到相应UDP数据包2。而后,该子流1对应的UDP数据包1到达相应网络层1(IP层1),而该子流2对应的UDP数据包2则到达相应网络层2(IP层2)。在网络层,HG将子流1对应的UDP数据包1进行封装,得到IP数据包1;或者将子流2对应的UDP数据包2进行封装,得到IP数据2。UDP将子流1对应的IP数据包1通过一条路径,如Wi-Fi网络,发送给HAAP;或者将子流2对应的IP数据包2通过另一条路径,如4G网络,发送给HAAP。
由此可见,HG通过存储的socket与connection ID对应关系,并通过解析其接收到的数据包,从而得到数据包中携带的socket,进而得到相应connection ID。需要说明的是,HG存储有多个connection ID。也就是说,与该HG相连接的目的主机即服务器有多个,根据不同的connection ID能够确定相应的目的主机。而多路径的选择与connecion ID没有关系。换句话说说,并不是不同的connection ID选择不同的路径。路径的选择方式可以有多种,例如上文所述的将属于帧头部分的数据包通过一条路径传输,将属于数据帧部分的数据包通过另一条路径传输。
图1中,相应地,HAAP通过多条路径接收来自HG的IP数据包。HAAP对该IP数据进行解封装,得到UDP数据包。HAAP对该UDP数据包进行解封装得到QUIC数据包,并得到HG与HAAP的connection ID(连接标识)。HAAP对该QUIC数据包进行解封装得到相应应用层数据包。HAAP通过其得到到connection ID,并根据该connection ID与socket的对应关系,即查询上表1,从而得到相应socket。HAAP根据根据该socket,并通过其存储的socket与IP五元组的对应关系,得到IP五元组。或者,主机B存储有connection ID与IP五元组的对应关系,主机B根据conneciton ID得到IP五元组。HAAP将该IP五元组封装在应用层数据包中,得到TCP/UDP数据包。然后HAAP将该TCP/UDP数据包进行封装,得到IP数据包,并将该IP数据包发送至主机B。主机B接收来自HAAP的IP数据包,对该IP数据包进行解封装,得到TCP/UDP数据包。然后主机B对该TCP/UDP数据包进行解封装,得到应用层数据包,并根据该应用层数据包做相应处理。
上文是以HG对其接收到的IP数据包进行解封装得到应用层数据包,根据socket得到connection ID,并根据connection ID对该应用层数据包进行封装,得到IP数据包。同样,HAAP也是对其接收到的IP数据包解封装后得到应用层数据包,根据connection ID得到socket,根据socket得到IP五元组,将该IP五元组封装到该应用层数据包中,而后再将得到的IP数据包发送出去。实际上,本申请实施例的HG、HAAP对数据包的处理方式不限于此。下面详述本申请实施例提供的另一种HG、HAAP对数据包处理的方式。
HG接收来自主机A的IP数据包,在此称该IP数据包为第一IP数据包,不对该第一IP数据包解封装,而是将QUIC连接标识(connection ID)封装到该第一IP数据包的包头上,得到QUIC数据包。也就是说,主机A将其接收到的该第一IP数据包作为数据包的内容部分,用该connection ID封装该第一IP数据包,得到QUIC数据包。主机A对该QUIC数据包进行封装,得到TCP/UDP数据包,再对该TCP/UDP数据包进行封装,得到IP数据包,在此称该IP数据包为第二IP数据包。HAAP接收来自HG的第二IP数据包,对该第二IP数据包进行解封装,得到TCP/UDP数据包。HAAP对该TCP/UDP数据包进行解封装,得到QUIC数据包。HAAP对该QUIC数据包进行解封装,得到该QUIC数据包的内容部分,即得到第二IP数据包,并将该第二IP数据包发送至主机B。
综上,HG与HAAP之间通过QUIC协议进行多路径数据传输,其中,传输层协议采用的是UDP。QUIC协议实现了多路复用,并提供了安全性保护,QUIC协议不仅集成了HTTP2.0、TLS、TCP的优点,而且减小了接入时延,提供了更便捷的流量拥塞控制以及更优异的纠错机制。主机A与HAAP是单路径传输,HAAP与主机B是单路径传输。主机A、主机B对中间网络实体HG与HAAP的多路径数据传输无感知。因此,现有的任何主机设备,例如现有的终端、服务器,不需要对软硬件功能进行升级,也不需要修改任何配置,就能够实现多路径的数据传输,提高了数据传输的速度同时不影响用户的正常使用。
下面结合附图3对本申请实施例提供的多路径数据传输方法进行详细阐述。
步骤301,第一主机设备如主机A与第一网络设备如HG建立连接,如建立TCP或UDP连接,且在该TCP连接建立过程中,携带第一主机设备如主机A与第二主机设备如主机B的第二连接标识。
连接标识表示两个设备之间的逻辑上的连接关系。该第二连接标识是指第一主机设备如主机A与第二主机设备如主机B的连接标识,该第二连接标识例如IP五元组或套接字socket。
具体地,主机A与HG通过TCP三次握手,建立主机A与HG的TCP连接,并在该TCP三次握手的TCP握手消息(SYN)中携带主机A与主机B的IP五元组或套接字。该IP五元组主机A的IP地址、主机B的IP地址、主机A的端口号、主机B的端口号以及协议号。
步骤302,HG与HAAP建立QUIC连接,且在该连接建立过程中携带QUIC连接标识(connection ID)、主机A与主机B的IP五元组。
具体地,HG向HAAP发送QUIC客户端连接请求(QUIC Client hello)消息,并在该QUIC Client hello消息中携带QUIC连接标识、IP五元组。HAAP接收到该QUIC Clienthello消息后,保存该QUIC连接标识、IP五元组,然后向HG反馈QUIC服务端连接请求(QUICServer hello)消息。HG接收到该QUIC Server hello消息之后,向HAAP返回QUIC连接完成(QUIC finish)消息,HG与HAAP的QUIC连接建立完成。
步骤303,HAAP与主机B建立连接,如建立TCP或UDP连接,并该连接建立过程中,携带主机A与主机B的连接标识。
在一个示例中,该主机A与主机B的连接标识为IP五元组或套接字socket。
具体地,HAAP与主机B通过TCP三次握手,建立HAAP与主机B的TCP连接,并在该TCP三次握手的TCP握手消息(SYN)中携带主机A与主机B的IP五元组或套接字。该IP五元组包括主机A的IP地址、主机B的IP地址、主机A的端口号、主机B的端口号以及协议号。
步骤304,第一主机设备如主机A向第一网络设备如HG发送数据包,也就是说,第一网络设备如HG接收来自第一主机设备如主机A的数据包,且在该数据包中携带主机A与主机B的连接标识,在此称该主机A与主机B的连接标识为第二连接标识。
在一个示例中,该主机A与主机B的连接标识即该第二连接标识为主机A、主机B的IP五元组或者套接字socket。
步骤305,第一网络设备如HG根据其接收到的数据包得到第一主机设备如主机A与第二主机设备如主机B的连接标识,即得到第二连接标识,并根据该第二连接标识,确定第一网络设备如HG与第二网络设备如HAAP的连接标识,即得到第一连接标识。
在一个示例中,第一网络设备如HG通过查表如查上表1,得到HG与HAAP的QUIC连接标识,即connecion ID,即得到该HG与HAAP的连接标识,也就是说,得到第一连接标识。
需要说明的是,连接标识示出了两个设备的连接关系,第一连接标识示出了第一网络设备如HG与第二连接标识如HAAP之间的连接关系,第二连接标识示出了第一主机如主机A与第二主机如主机B之间的连接关系。
具体地,HG存储有第二连接标识与第一连接标识的对应关系,例如,HG存储有IP五元组或套接字socket与QUIC连接标识的对应关系。HG在接收到来自主机A的数据包之后,获取该数据包中携带的第二连接标识,即获取该数据包中的IP五元组或者套接字socket。HG根据该IP五元组或socket,并通过查询IP五元组或socket与QUIC连接标识的对应关系,得到相应QUIC连接标识。
步骤306,第一网络设备如HG根据该第一连接标识即根据该QUIC连接标识对其接收到的数据包封装。
在一个示例中,第一网络设备如HG将其接收到的数据包封装到该数据包的包头上,从而得到QUIC数据包。其中,该接收到的数据包是来自于第一主机设备如主机A的数据包。
步骤307,第一网络设备如HG将该QUIC数据包通过第一网络设备如HG与第二网络设备如HAAP之间的多条子流中的一条子流发送给该第二网络设备如HAAP。也就是说,将该QUIC数据包通过第一网络设备如HG与第二网络设备如HAAP之间的多条路径中的一条路径,发送给该第二网络设备如HAAP。
在多路径传输中,两个设备之间有多少条路径就有多少条子流,一条子流可由一个IP五元组表示。
具体地,步骤307a,HG将属于帧头部分的数据包通过第一路径发送给HAAP;步骤307b,HG将属于数据帧部分的数据包通过第二路径发送给HAAP。
例如,HG与HAAP有两条传输路径,一条是Wi-Fi网络,另一条是4G网络。HG根据其设置的数据传输规则,将该封装了QUIC连接标识的数据包,通过该两条传输路径中的一条路径发送给HAAP。所述数据传输规则的一个例子为:将属于某帧的帧头的数据包通过Wi-Fi网络传输;将属于该帧的数据部分的数据包通过4G网络传输。也就是说,如果数据包属于一个帧的帧头部分,则将该数据包通过Wi-Fi网络传输,如果数据包属于一个帧的数据部分,则将该数据包通过4G网络传输。
步骤308,HAAP对其接收到的QUIC数据包进行解封装,得到应用层数据包以及得到第一连接标识,即得到HG与HAAP的QUIC连接标识(connection ID)。
步骤309,HAAP根据该第一连接标识即HG与HAAP的QUIC连接标识,并通过查询该第二连接标识与第一连接标识的对应关系,如查询上表1,得到该第二连接标识,即得到主机A与主机B的IP五元组或套接字socket。
在一个示例中,HAAP存储有QUIC连接标识与套接字socket对应关系,以及套接字socket与IP五元组的对应关系,HAAP根据其接收到的数据包得到QUIC连接标识,并根据该QUIC连接标识,得到IP五元组。
在另一个示例中,HAAP存储有QUIC连接标识与IP五元组的对应关系,HAAP根据其接收到的数据包得到QUIC连接标识,并根据该QUIC连接标识,得到IP五元组。
步骤310,HAAP根据其得到连接标识,如IP五元组封装到应用层数据包,得到IP数据包;其中,该IP五元组包括主机A的IP地址、主机A的端口号、主机B的IP地址、主机B的端口号、协议号。
步骤311,HAAP将封装了IP五元组的应用层数据包即IP数据包,发送给主机B。
需要说明的是,上文(即图3及相关内容)阐述的基于QUIC的多路径的数据传输处理过程,省略了数据包的确认及重传。实际上,在数据包的传输过程中,接收端设备每接收到若干数据包,例如每接收到10个数据包,就会向发送端发送确认(ACK)消息。下面详细阐述本申请实施例提供的两种多路径传输数据的确认方法。
本申请实施例提供的一种基于多路径传输的数据包的确认方法是,两两设备分别做数据包的确认及重传。也就是说,在两个设备建立连接之后,该两个设备之间做数据包的确认及重传。即主机A与HG建立连接之后,主机A与HG做数据包的确认及重传;在HG与HAAP建立连接之后,HG与HAAP做数据包的确认及重传;在HAAP与主机B建立连接之后,HAAP与主机B做数据包的确认及重传。即,在HG与HAAP建立连接之后,在HG接收到来自HAAP的数据包的情况下,HG向HAAP发送第一确认消息。如图4所示。
图4为本申请实施例提供的一种基于QUIC连接的多路径传输的数据包确认方法示意图。步骤401,在主机A与HG连接建立完成之后,主机A与HG之间就可以进行数据包的传输,在主机A接收到来自HG的多个数据包如10个数据包之后,主机A向HG发送确认(ACK)消息。而在约定的时间内,如果主机A未接受到来自HG的一个或多个数据包,则主机A向HG发送重传消息。同样,HG在接收到主机A的多个数据包如10个数据包之后,HG向主机A发送确认(ACK)消息。而在约定的时间内,如果HG未接受到来自主机A的一个或多个数据包,则HG向主机A发送重传消息。由此可见,主机A与HG之间的数据包的确认及重传与其它连接无关。也就是说,主机A与HG的数据包的确认及重传即与HG和HAAP的连接的建立及数据包的传输无关,也与HAAP和主机B的连接的建立及数据包的传输无关。
步骤402,在HG与HAAP连接建立完成之后,HG与HAAP之间就可以进行数据包的传输,在HG接收到来自HAAP的多个数据包如10个数据包之后,HG向HAAP发送确认(ACK)消息。而在约定的时间内,如果HG未接受到来自HAAP的一个或多个数据包,则HG向HAPP发送重传消息。同样,HAAP在接收到HG的多个数据包如10个数据包之后,HAAP向HG发送确认(ACK)消息。而在约定的时间内,如果HAAP未接受到来自HG的一个或多个数据包,则HAAP向HG发送重传消息。由此可见,HG与HAAP之间的数据包的确认及重传与其它连接无关。也就是说,HG与HAAP的数据包的确认及重传即与主机A和HG的连接的建立及数据包的传输无关,也与HAAP和主机B的连接的建立及数据包的传输无关。
步骤403,在HAAP与主机B连接建立完成之后,HAAP与主机B之间就可以进行数据包的传输,在HAAP接收到来自主机B的多个数据包如10个数据包之后,HAAP向主机B发送确认(ACK)消息。而在约定的时间内,如果HAAP未接受到来自主机B的一个或多个数据包,则HAAP向主机B发送重传消息。同样,HAAP在接收到主机B的多个数据包如10个数据包之后,HAAP向主机B发送确认(ACK)消息。而在约定的时间内,如果HAAP未接受到来自主机B的一个或多个数据包,则HAAP向主机B发送重传消息。由此可见,HAAP与主机B之间的数据包的确认及重传与其它连接无关。也就是说,HAAP与主机B的数据包的确认及重传即与主机A和HG的连接的建立及数据包的传输无关,也与HG和HAAP的连接的建立及数据包的传输无关。
本领域技术人员可以理解,上述步骤401、步骤402、步骤403之间没有先后顺序关系。
本申请实施例提供的另一种基于多路径传输的数据包的确认方法是,在所有设备之间的连接都建立完成之后,接收端设备向发送端设备做确认或重传。也就是说,在主机A与HG、HG与HAAP、HAAP与主机B均建立连接完成之后,在主机A通过HG、HAAP向主机B发送下行数据之后,主机B在接收到多个数据包如10个数据包之后,主机B通过HAAP、HG向主机A做确认。如果在预定的时间之内,主机B未接收到主机A的一个或多个数据包,主机B通过HAAP、HG向主机A发送重传消息。
也就是说,第一网络设备如HG与第一主机设备如主机A建立连接,第一网络设备如HG与第二网络设备如HAAP建立连接,第一网络设备如HG通过第二网络设备如HAAP与第二主机设备如主机B建立连接。第一网络设备如HG通过第一网络设备HG与第二网络设备如HAAP之间的多条子流的一条子流,接收来自第二主机设备如主机B且由所述第二网络设备如HAAP转发的第二确认数据包。
下面通过图5做详细阐述。
图5是本申请实施例提供的另一种基于QUIC连接的多路径传输的数据包确认方法示意图。
图5是以主机A与HG建立TCP连接,HAAP与主机B也是建立TCP连接为例。实际上,主机A与HG也可以建立UDP等单连接,HAAP也可以与主机B建立UDP等单连接。
步骤501,主机A向HG发送第一TCP握手消息(SYN),且在该第一TCP握手消息中携带主机A与主机B的连接标识,如IP五元组或者套接字socket。
需要说明的是,该步骤501中主机A向HG发送第一次TCP握手消息,完成了主机A与HG的第一次TCP握手。该第一次TCP握手与下面步骤513中发送的第四TCP握手消息,以及下面步骤514中发送的第五TCP握手消息,构成了主机A与HG之间的三次TCP握手。也就是说,步骤513中发送的第四TCP握手消息实际上是,完成主机A与HG的第二次TCP握手。而步骤514中发送的第五TCP握手消息则是,完成主机A与HG的第三次TCP握手。因此,在步骤514之后,即在主机A与HG的第三次TCP握手完成之后,主机A与HG之间建立了TCP连接。
步骤502,HG与HAAP建立QUIC连接,并在该QUIC连接建立过程中携带确认功能去激活(ACK disable)。该ACK disable的作用是,在HG与HAAP建立连接之后,HG与HAAP之间不做数据包的确认。
在一个示例中,在该QUIC连接建立过程中还携带QUIC连接标识(connection ID)、IP五元组或套接字socket(下面将以QUIC连接建立过程中携带IP五元组为例)。
具体地,HG向HAAP发送QUIC客户端连接请求(QUIC Client hello)消息,并在该QUIC Client hello消息中携带QUIC连接标识(connection ID)、IP五元组、确认功能去激活(ACK disable)。HAAP向HG返回QUIC服务端连接请求(QUIC Server hello)消息,并在该QUIC Server hello消息中携带QUIC连接标识(connection ID)、IP五元组、确认功能去激活(ACK disable)。HG向HAAP返回QUIC连接完成(QUIC finish)消息,且该QUIC finish消息携带携带QUIC连接标识(connection ID)、IP五元组、确认功能去激活(ACK disable)。
上面步骤502是在QUIC连接建立过程中,通过在HG与HAAP相互传输的QUIC连接请求消息中携带确认功能去激活消息,完成了HG与HAAP协商确定不使用确认(ACK)功能,使得HG与HAAP之间不使用数据包确认和重传功能。此种场景适用于QUIC连接丢包率低的场景。
步骤503,HG从其接收到的数据包中获取主机A与主机B的连接标识,在此称该主机A与主机B的连接标识为第二连接标识,并根据该第二连接标识通过查表如上表1,得到HG与HAAP的连接标识,在此称该HG与HAAP的连接标识为第一连接标识。
具体地,HG存储有第二连接标识与第一连接标识的对应关系,例如,HG存储有IP五元组或套接字socket与QUIC连接标识的对应关系。HG在接收到来自主机A的数据包之后,获取该数据包中携带的第二连接标识,即获取该数据包中的IP五元组或者套接字socket。HG根据该IP五元组或socket,并通过查询IP五元组或socket与QUIC连接标识的对应关系,得到相应QUIC连接标识。
步骤504,HG通过该第一连接标识即该QUIC连接标识封装该第一TCP握手消息,得到相应QUIC数据包;其中,该QUIC数据包携带第一握手消息。该第一握手消息来自于主机A(参见步骤501)。
步骤505,HG将该QUIC数据包通过HG与HAAP之间的多条路径中的一条路径,发送给HAAP,且该QUIC数据包携带第一TCP握手消息。
具体HG如何通过多条路径的一条路径将QUIC数据包发送给HAAP,参见上文的步骤307中的相关内容描述。
步骤506,HAAP对其接收到的QUIC数据包进行解封装,得到第一连接标识,即得到HG与HAAP的QUIC连接标识(connection ID),以及得到第一TCP握手消息。
步骤507,HAAP根据该第一连接标识即HG与HAAP的QUIC连接标识,并通过查询该第二连接标识与第一连接标识的对应关系,得到该第二连接标识,即得到主机A与主机B的IP五元组或套接字socket。
在一个示例中,HAAP存储有QUIC连接标识与套接字socket对应关系,以及套接字socket与IP五元组的对应关系,HAAP根据其接收到的数据包得到QUIC连接标识,并根据该QUIC连接标识,得到IP五元组。
在另一个示例中,HAAP存储有QUIC连接标识与IP五元组的对应关系,HAAP根据其接收到的数据包得到QUIC连接标识,并根据该QUIC连接标识,得到IP五元组。
步骤508,HAAP向主机B发送第二TCP握手消息,且该第二TCP握手消息中携带IP五元组或socket。
需要说明的是,步骤508中HAAP向主机B发送的第二TCP握手消息,实际上是HAAP向主机B第一次发送的TCP握手消息,完成了HAAP与主机B的第一次TCP握手。该步骤508中HAAP向主机B发送的第二TCP握手消息,步骤509中主机B向HAAP发送的第三TCP握手消息以及步骤518中HAAP向主机B发送的第六TCP握手消息,构成了HAAP与主机B之间的三次TCP握手。也就是说,步骤509中主机B向HAAP发送的第三TCP握手消息,实际是完成了HAAP与主机B的第二次TCP握手。而步骤518中HAAP向主机B发送的第六TCP握手消息则是,完成HAAP与主机B之间的三次TCP握手。因此,在步骤518之后,即在HAAP与主机B的三次TCP握手完成之后,HAAP与主机B之间建立了TCP连接。
步骤509,主机B向HAAP发送第三TCP握手消息,且该第三TCP握手消息中携带IP五元组或socket。
步骤510,HAAP将第二连接标识如IP五元组封装到第三TCP握手消息中,得到相应QUIC数据包。
步骤511,HAAP将该QUIC数据包通过HAAP与HG之间的多条路径中的一条路径,发送给HG,且该QUIC数据包携带第三TCP握手消息。
具体HAAP如何通过多条路径的一条路径将QUIC数据包发送给HG,参见上文的步骤307的相关内容描述。
步骤512,HG对该QUIC数据包解封装,得到第三握手消息以及第二连接标识,如得到IP五元组。
步骤513,HG向主机A发送第四TCP握手消息,且该第四TCP握手消息发送的过程就是主机A与HG之间的第二次TCP握手的过程;其中,该第四TCP握手消息携带IP五元组或socket。
步骤514,主机A向HG发送第五TCP握手消息,且该第五TCP握手消息发送的过程就是主机A与HG之间的第三次TCP握手的过程;其中,该第五TCP握手消息携带IP五元组或socket。
需要说明的是,在上述步骤514之后,即在主机A与HG完成三次TCP握手之后,主机A与HG之间建立了TCP连接。
此外,本申请实施例是以主机A与HG建立TCP连接为例,实际上,主机A与HG也可以建立UDP连接。
步骤515,HG通过第二连接标识如IP五元组,封装该第五TCP握手消息,得到相应QUIC数据包。
步骤516,HG将该QUIC数据包通过HG与HAAP之间的多条路径中的一条路径,发送给HAAP;其中,该QUIC数据包中携带第五TCP握手消息,且该第五TCP握手消息是在上述步骤514中由主机A发送给HG的。
具体HG如何通过多条路径的一条路径将QUIC数据包发送给HAAP,参见上文的步骤307中的相关内容描述。
步骤517,HAAP将该QUIC数据包解封装,得到第五TCP握手消息以及第二连接标识如IP五元组。
步骤518,HAAP向主机B发送第六TCP握手消息,且该第六TCP握手消息的发送过程就是HAAP与主机B之间的第三次TCP握手过程;其中,该第六TCP握手消息携带IP五元组或socket。
需要说明的是,在上述步骤518之后,即在HAAP与主机B完成三次握手之后,HAAP与主机B之间建立了TCP连接。
此外,本申请实施例是以HAAP与主机B建立TCP连接为例,实际上,HAAP与主机B也可以建立UDP连接。
综上,步骤501、步骤513、步骤514是主机A与HG之间的TCP连接建立过程,步骤502是HG与HAAP之间的QUIC连接建立过程,步骤508、步骤509、步骤518是HAAP与主机B之间TCP连接建立过程。因此,在步骤518之后,主机A通过HG、HAAP与主机B建立了连接,主机A能够通过HG、HAAP与主机B进行数据传输。
因此,上面步骤501至步骤518是主机A通过HG、HAAP与主机B建立连接的过程,下面步骤519至步骤521是主机A通过HG、HAAP向主机B发送数据的过程,步骤522至步骤526则是主机B向主机A发送确认(ACK)消息的过程。
步骤519,主机A开始向HG发送下行数据。并在下行数据包中携带IP五元组或socket。
步骤520,HG将其接收到的下行数据包通过HG与HAAP之间的多条路径中的一条路径,发送给HAAP;其中,该数据包携带IP五元组或socket。
具体HG如何通过多条路径的一条路径将该数据包发送给HAAP,参见上文的步骤307中的相关内容描述。
步骤521,HAAP将其接收到的下行数据包发送给主机B,且该数据包中携带有IP五元组或socket。
步骤522,主机B向HAAP发送确认(ACK)消息,该ACK消息用于通过HAAP、HG向主机A确认已接收到来自主机A的数据包。例如,该主机B每接收到来自主机A的10个数据包,就会通过HAAP、HG发送ACK消息。
步骤523,HAAP封装确认(ACK)消息,得到相应QUIC数据包中,并选取HG与HAAP之间的多条路径中的一条路径,该选取的路径用于向HG发送该QUIC数据包。
在一个示例中,HAAP选取HAAP与HG之间的多条路径中的时延小的一条路径,用于发送该QUIC数据包。
步骤524,HAAP将该QUIC数据包通过其选取的一条路径发送至HG。
步骤525,HG对该QUIC数据包进行解封装,得到确认(ACK)消息。
步骤526,HG将其解封装得到的确认消息发送至主机A。
在一个示例中,如果主机A在约定的时间内没有接收到确认消息,则主机A通过HG、HAAP向主机B发送重传消息。
需要说明的是,以上步骤522至步骤526是,主机B在接收到来自主机A的多个数据包如10个数据包之后,通过HAAP、HG向主机A发送的确认消息的过程。实际上,在主机B通过HAAP、HG向主机A发送上行数据后,主机A在接收到多个数据包如10个数据包之后,也会向主机B发送确认(ACK)消息。该主机A向主机B发送确认消息的方法,与主机B向主机A发送确认消息的方法相同,具体参见上述步骤522至步骤526。
上面阐述的是本申请实施例提供的基于QUIC的多路径数据传输方法。下面阐述基于MPTCP的多路径数据传输方法。
MPTCP是在应用层和传输层中间加入支持多路径传输的MPTCP层,如图6所示。基于MPTCP的多路径数据传输是将传统的TCP数据流分为多个TCP子流,不同的TCP子流沿不同的路径传输。
图6是本申请实施例提供的基于MPTCP连接的多路径数据传输的协议栈的示意图。
图6中,HG有多个接口,例如4G接口和Wi-Fi接口。HAAP也有多个接口,例如4G接口和Wi-Fi接口。HG与HAAP可以同时使用Wi-Fi接口和4G接口与主机B进行通信,因此增加了通信带宽。图6中,HG上的Wi-Fi接口的IP地址是A1,HG上的4G接口的IP地址是A2。HAAP上的Wi-Fi接口的IP地址是B1,HAAP上的4G接口的IP地址是B2。
由图6可见,主机A与主机B可采用现有的任意主机设备,并且主机A、主机B的软硬件功能以及配置都没有改变,数据传输过程也并没有改变。具体的数据包处理过程参见图1以及相关内容描述。
图6中,HG对数据包的解封装过程也与现有的HG解封装过程相同,具体参见图1及相关内容描述。下面详细阐述HG如何对应用层数据包进行封装。HG将应用层数据包封装到MPTCP数据包的包头上,得到MPTCP数据包。然后再将该MPTCP数据包通过通过多条TCP子流中的一条TCP子流,如TCP子流1或TCP子流2,并经由IP层传输给HAAP。
此外,HG也可以不对其接收到(即来自主机A)的IP数据包解封装。也就是说,HG不需要解封装得到应用层数据包,而是直接将其接收到的IP数据包封装在MPTCP数据包的包头上。此种情况下,HAAP在接收到来自HG是数据包之后,仅去掉QUIC包的包头就能够得到IP数据包。然后再将该IP数据包发送给主机B。图6示出的是前一种实现方式,也就是说,图6仅示出了HG将其接收到的IP数据包进行解封装得到应用层数据包,然后再对该应用层数据包进行封装。HAAP通过多条路径接收来自HG的IP数据包。HAAP对该IP数据包进行解封装,得到TCP数据包。HAAP对该TCP数据包进行解封装得到应用层数据包,并得到socket。HAAP根据该socket,并通过其存储的socket与IP五元组的对应关系,得到IP五元组。HAAP再对该应用层数据包进行封装,并将socket封装在TCP/UDP数据包的包头上,得到IP数据包。然后HAAP根据其得到的IP五元组,将该IP数据包发送到相应的主机B上。
需要说明的是,如果HG不对其接收到的IP数据包进行解封装,而是直接将其接收到的TCP/IP数据包封装起来发送给HAAP。那么,HAAP就可以在接收到数据包之后,先解封装去掉MPTCP包头,然后直接将其发送给主机B。原因是,HAAP解封装其接收到的数据包之后,得到的就是TCP/IP数据包。
下面结合附图图7对本申请实施例提供的一种基于MPTCP连接的多路径数据传输方法进行详细阐述。
步骤701,主机A如终端设备与HG建立TCP连接,并在该TCP连接建立过程中携带机A与主机B的连接标识。
在一个示例中,该主机A与主机B的连接标识为IP五元组或套接字socket。
具体地,主机A与HG通过TCP三次握手,建立主机A与HG的TCP连接,并在该TCP三次握手的TCP握手消息(SYN)中携带主机A与主机B的IP五元组或套接字。该IP五元组主机A的IP地址、主机B的IP地址、主机A的端口号、主机B的端口号以及协议号。
步骤702,HG与HAAP建立MPTCP连接。
具体地,HG向HAAP发送MPTCP连接请求消息,且在该MPTCP连接请求消息的可选(option)字段中包括指示该消息为是MPTCP连接请求消息。HAAP接收到该MPTCP连接请求消息后,向HG返回MPTCP连接请求确认消息,且在该MPTCP连接请求确认消息的可选(option)字段中包括指示该消息是MPTCP连接请求确认消息。然后HG向HAAP返回MPTCP连接确认消息,且在该消息的可选(option)字段中包括指示该消息为MPTCP链接确认消息。
步骤703,HAAP与主机B建立TCP连接,并该连接建立过程中,携带主机A与主机B的连接标识。
在一个示例中,该主机A与主机B的连接标识为IP五元组或套接字socket。
具体地,HAAP与主机B通过TCP三次握手,建立HAAP与主机B的TCP连接,并在该TCP三次握手的TCP握手消息(SYN)中携带主机A与主机B的IP五元组或套接字。该IP五元组包括主机A的IP地址、主机B的IP地址、主机A的端口号、主机B的端口号以及协议号。
在上述步骤703之后,主机A与HG、HG与HAAP、HAAP与主机B的连接均建立完成,主机A可以通过HG、HAAP与主机B进行通信。下面继续阐述数据的传输及确认。
步骤704,主机A向HG发送上行数据,且在上行数据包中携带主机A与主机B的连接标识。在一个示例中,该连接标识为主机A、主机B的IP五元组或者套接字socket。
由图6可见,TCP连接与MPTCP连接属于同一类型的连接。在TCP连接中,将socket封装在应用层数据包的包头上,得到TCP数据包。在MPTCP中,也是将socket封装在应用层数据包的包头上,得到TCP数据包。区别仅在于MPTCP是多径PCT,也就是说,HG与HAAP之间可以同时传输多个PCT数据包。而主机A与HG之间一次只能传输一个数据包。因此,HG无需做映射。也就是说,HG接收的数据包封装了socket,HG发送出去的数据包也是封装了socket,因此,不需要HG做映射。
步骤705,HG将TCP数据包通过HG与HAAP之间的多条路径中的一条路径,发送给HAAP。
具体地,步骤705a,HG将属于帧头部分的数据包通过第一路径发送给HAAP;步骤705b,HG将属于数据帧部分的数据包通过第二路径发送给HAAP。
例如,HG与HAAP有两条传输路径,HG根据其设置的数据传输规则,将TCP数据包,通过该两条传输路径中的一条路径发送给HAAP。所述数据传输规则的一个例子为:将属于某帧的帧头的数据包通过Wi-Fi网络传输;将属于该帧的数据部分的数据包通过4G网络传输。也就是说,如果数据包属于一个帧的帧头部分,则将该数据包通过Wi-Fi网络传输,如果数据包属于一个帧的数据部分,则将该数据包通过4G网络传输。
步骤706,HAAP将其通过多条路径中的一条路径接收到的数据包发送给主机B。
需要说明的是,上述步骤704至步骤706是数据包传输处理过程,下面继续阐述数据包的确认或重传过程。
步骤707,主机B在接收到来自主机A的一个或多个数据包如10个数据包之后,向HAAP发送确认(ACK)消息。
步骤708,HAAP接收到确认(ACK)消息之后,从多条路径中确定一条路径,例如从4G网络、Wi-Fi网络中确定4G网络,所述确定的路径用于传输来自主机B的该确认(ACK)消息。
在一个示例中,HAAP从多条路径中选取传输时延小的路径,用于传输来自主机B的确认(ACK)消息。
步骤709,HAAP将该确认(ACK)消息发送给HG。
步骤710,HG将该确认(ACK)消息发送给主机A。
在一个示例中,主机A在约定时间内未接收到来自主机B的确认消息,则主机A通过HG、HAAP向主机B发送重传消息。
由以上内容可知,步骤707至步骤710是主机B在接收到来自主机A的一个或多个数据包如10个数据包之后,通过HAAP、HG向主机A发送确认消息,且该HG与HAAP是多路径的数据传输。
实际上,在主机A接收到来自主机B的一个或多个数据包如10个数据包之后,主机A通过HG、HAAP向主机B发送确认(ACK)消息。并且主机B在约定时间内未接收到来自主机A的确认消息,则主机B通过HAAP、HG向主机A发送重传消息。
图8是本申请实施例提供的第一网络设备示意图。该第一网络设备包括接收器801、处理器802、发射器803。
接收器801用于接收通过第二网络设备转发的来自第一主机设备的数据包,根据所述数据包确定所述第一网络设备与第二网络设备的第一连接标识。
处理器802用于根据所述第一连接标识对所述数据包进行封装。
发射器803用于将封装后的数据包,通过所述第一网络设备与所述第二网络设备之间的多条子流中的一条子流,发送到所述第二网络设备中。
在一个示例中,所述处理器802具体用于,从所述数据包中获取第二连接标识,且所述第二连接标识是所述第一主机设备与所述第二主机设备之间的连接标识;根据所述第二连接标识,以及所述第一连接标识与所述第二连接标识的对应关系,确定所述第一连接标识;其中,所述第一网络设备包含所述第一连接标识与第二连接标识的对应关系。
在一个示例中,所述第二连接标识为所述第一主机设备与所述第二主机设备的套接字socket或者互联网协议IP五元组;所述第一连接标识为所述第一网络设备与第二网络设备的连接标识connection ID。
在一个示例中,所述处理器802还用于所述第一网络设备与所述第二网络设备建立连接。所述发射器803还用于在所述第一网络设备接收到来自第二网络设备的数据包的情况下,所述第一网络设备向所述第二网络设备发送确认消息。
在一个示例中,所述处理器802还用于与所述第一主机设备建立连接,与所述第二网络设备建立连接,通过所述第二网络设备与所述第二主机设备建立连接;所述接收器801还用于,通过所述第一网络设备与所述第二网络设备之间的多条子流的一条子流,接收来自所述第二主机设备且由所述第二网络设备转发的第二确认数据包。
在一个示例中,在所述第一网络设备与所述第二网络设备建立连接过程中携带确认消息功能去激活信息ACK disable。
在一个示例中,所述处理器802根据所述第一连接标识对所述数据包进行封装,具体为:所述处理器根据所述第一连接标识对应用层数据包进行封装。
在一个示例中,所述处理器802根据所述第一连接标识对所述数据包进行封装,具体为:所述处理器根据所述第一连接标识对互联网协议IP数据包进行封装。
图9是本申请实施例提供的第二网络设备示意图。该第二网络设备包括接收器901、处理器902、发射器903。
接收器901用于通过所述第一网络设备与第二网络设备之间的多条子流中的一条子流,接收数据包。
处理器902用于根据所述数据包确定第一连接标识;所述第一连接标识是第一主机设备与第二主机设备的连接标识,且所述第一主机设备是与所述第二网络设备相连的主机设备,所述第二主机设备是与所述第一网络设备相连的主机设备。
发射器903用于根据所述第一连接标识,将所述数据包发送至所述第二主机设备。
在一个示例中,所述处理器902根据所述数据包确定第一连接标识,具体为:所述处理器从所述数据包中获取第二连接标识,且所述第二连接标识是所述第一网络设备与所述第二网络设备之间的连接标识;且所述第二网络设备包含所述第一连接标识与第二连接标识的对应关系,所述处理器还用于根据所述对应关系以及所述第二连接标识得到所述第一连接标识。
在一个示例中,在所述处理器902通过所述第一网络设备与第二网络设备之间的多条子流中的一条子流,接收数据包之后,所述处理器还用于对所述数据包进行解封装,得到应用层数据包。
在一个示例中,所述处理器902根据所述数据包确定第一连接标识,具体为:所述处理器在所述解封装过程中获取所述第一连接标识。
在一个示例中,所述第一连接标识为所述第一主机设备与第二主机设备的套接字socket或者互联网协议IP五元组,所述第二连接标识为所述第一网络设备与第二网络设备的连接标识connection ID。
在一个示例中,所述处理器902还用于所述第一网络设备与所述第二网络设备建立连接。所述发射器903还用于在所述第一网络设备接收到来自第二网络设备的数据包的情况下,所述第一网络设备向所述第二网络设备发送确认消息。
在一个示例中,所述接收器901从所述第一网络设备与第二网络设备之间的多条子流中的一条子流中,接收数据包之前,所述处理器还用于,与所述第二网络设备建立连接,并在所述连接建立过程中携带确认消息功能去激活信息ACK disable。
图10是本申请一个实施例提供的一种多路径的数据传输装置示意图。所述多路径数据传输装置100包括接收单元101、确定单元102、封装单元103、发送单元104。
所述接收单元101用于接收来自第一主机设备的数据包。
所述确定单元102用于根据所述数据包确定所述第一网络设备与第二网络设备的第一连接标识。
所述封装单元103用于根据所述第一连接标识对所述数据包进行封装。
所述发送单元104用于将所述封装后的数据包,通过所述第一网络设备与所述第二网络设备之间的多条子流中的一条子流,发送到所述第二网络设备中。
在一个示例中,所述确定单元102具体用于从所述数据包中获取第二连接标识,且所述第二连接标识是所述第一主机设备与所述第二主机设备之间的连接标识;根据所述第二连接标识,以及所述第一连接标识与所述第二连接标识的对应关系,确定所述第一连接标识;且所述第一网络设备包含所述第一连接标识与第二连接标识的对应关系。
在一个示例中,所述第二连接标识为所述第一主机设备与所述第二主机设备的套接字socket或者互联网协议IP五元组;所述第一连接标识为所述第一网络设备与第二网络设备的连接标识connection ID。
在一个示例中,所述多路径数据传输装置100还包括建立连接单元105,所述建立连接单元105用于建立所述第一网络设备与所述第二网络设备的连接;且所述发送单元104还用于在所述接收单元101接收到来自第二网络设备的数据包的情况下,向所述第二网络设备发送确认消息。
在另一个示例中,所述多路径数据传输装置100还包括建立连接单元105,所述建立连接单元用于建立所述第一网络设备与所述第一主机设备建立连接,以及建立所述第一网络设备与所述第二网络设备建立的连接,并且建立所述第一网络设备通过所述第二网络设备与所述第二主机设备的连接。所述接收单元101还用于通过所述第一网络设备与所述第二网络设备之间的多条子流的一条子流,接收来自所述第二主机设备且由所述第二网络设备转发的第二确认数据包。
在一个示例中,所述建立连接单元105在建立所述第一网络设备与所述第二网络的连接的过程中,携带确认消息功能去激活信息ACK disable。
在一个示例中,所述封装单元103具体用于根据所述第一连接标识对应用层数据包进行封装。
在另一个示例中,所述封装单元103具体用于根据所述第一连接标识对互联网协议IP数据包进行封装。
图11是本申请另一个实施例提供的一种多路径的数据传输装置示意图。所述多路径数据传输装置110包括接收单元111、确定单元112、发送单元113。
所述接收单元111用于通过所述第一网络设备与第二网络设备之间的多条子流中的一条子流,接收数据包。
所述确定单元112用于根据所述数据包确定第一连接标识;所述第一连接标识是第一主机设备与第二主机设备的连接标识,且所述第一主机设备是与所述第一网络设备相连的主机设备,所述第二主机设备是与所述第二网络设备相连的主机设备。
所述发送单元113用于根据所述第一连接标识,将所述数据包发送至所述第二主机设备。
在一个示例中,确定单元112具体用于从所述数据包中获取第二连接标识,且所述第二连接标识是所述第一网络设备与所述第二网络设备之间的连接标识;以及根据所述对应关系以及所述第二连接标识,确定所述第一连接标识;所述第一网络设备包含所述第一连接标识与第二连接标识的对应关系。
在一个示例中,所述多路径数据传输装置110还包括解封装单元114,所述解封装单元114用于在所述第一网络设备通过所述第一网络设备与第二网络设备之间的多条子流中的一条子流,接收数据包之后,对所述数据包进行解封装,得到应用层数据包。
在一个示例中,确定单元112根据所述数据包确定第一连接标识,具体为:所述第一网络设备在所述解封装过程中获取所述第一连接标识。
在一个示例中,所述第一连接标识为所述第一主机设备与第二主机设备的套接字socket或者互联网协议IP五元组,所述第二连接标识为所述第一网络设备与第二网络设备的连接标识connection ID。
在一个示例中,所述多路径数据传输装置110还包括建立连接单元115,所述建立连接单元115用于使所述第一网络设备与所述第二网络设备建立连接;所述发送单元113还用于在所述第一网络设备接收到来自第二网络设备的数据包的情况下,向所述第二网络设备发送确认消息。
在另一个示例中,所述多路径数据传输装置110还包括建立连接单元115,所述建立连接单元115用于从所述第一网络设备与第二网络设备之间的多条子流中的一条子流中,接收数据包之前,所述第一网络设备与所述第二网络设备建立连接,并在所述连接建立过程中所传输的数据包中包括确认消息功能去激活信息ACK disable。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令处理器完成,所述的程序可以存储于计算机可读存储介质中,所述存储介质是非短暂性(英文:non-transitory)介质,例如随机存取存储器,只读存储器,快闪存储器,硬盘,固态硬盘,磁带(英文:magnetic tape),软盘(英文:floppy disk),光盘(英文:optical disc)及其任意组合。
以上所述,仅为本申请较佳的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。
Claims (32)
1.一种多路径的数据传输方法,其特征在于,所述方法包括:
第一网络设备接收来自第一主机设备的数据包,根据所述数据包确定所述第一网络设备与第二网络设备的第一连接标识;
所述第一网络设备根据所述第一连接标识对所述数据包进行封装;
所述第一网络设备将封装后的数据包,通过所述第一网络设备与所述第二网络设备之间的多条子流中的一条子流,发送到所述第二网络设备中。
2.如权利要求1所述的方法,其特征在于,所述根据所述数据包确定所述第一网络设备与第二网络设备的第一连接标识,具体为:
从所述数据包中获取第二连接标识,且所述第二连接标识是所述第一主机设备与所述第二主机设备之间的连接标识;
根据所述第二连接标识,以及所述第一连接标识与所述第二连接标识的对应关系,确定所述第一连接标识;且所述第一网络设备包含所述第一连接标识与第二连接标识的对应关系。
3.如权利要求2所述的方法,其特征在于,所述第二连接标识为所述第一主机设备与所述第二主机设备的套接字socket或者互联网协议IP五元组;所述第一连接标识为所述第一网络设备与第二网络设备的连接标识connection ID。
4.如权利要求1至3任意一项所述的方法,其特征在于,所述方法还包括:所述第一网络设备与所述第二网络设备建立连接,在所述第一网络设备接收到来自第二网络设备的数据包的情况下,所述第一网络设备向所述第二网络设备发送确认消息。
5.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述第一网络设备与所述第一主机设备建立连接,所述第一网络设备与所述第二网络设备建立连接,所述第一网络设备通过所述第二网络设备与所述第二主机设备建立连接;
所述第一网络设备通过所述第一网络设备与所述第二网络设备之间的多条子流的一条子流,接收来自所述第二主机设备且由所述第二网络设备转发的第二确认数据包。
6.如权利要求5所述的方法,其特征在于,在所述第一网络设备与所述第二网络设备建立连接过程中携带确认消息功能去激活信息ACK disable。
7.根据权利要求1所述的方法,其特征在于,所述第一网络设备根据所述第一连接标识对所述数据包进行封装,具体为:
所述第一网络设备根据所述第一连接标识对应用层数据包进行封装。
8.根据权利要求1所述的方法,其特征在于,所述第一网络设备根据所述第一连接标识对所述数据包进行封装,具体为:
所述第一网络设备根据所述第一连接标识对互联网协议IP数据包进行封装。
9.一种多路径的数据传输方法,其特征在于,所述方法包括:
第一网络设备通过所述第一网络设备与第二网络设备之间的多条子流中的一条子流,接收数据包;
所述第一网络设备根据所述数据包确定第一连接标识;所述第一连接标识是第一主机设备与第二主机设备的连接标识,且所述第一主机设备是与所述第一网络设备相连的主机设备,所述第二主机设备是与所述第二网络设备相连的主机设备;
所述第一网络设备根据所述第一连接标识,将所述数据包发送至所述第二主机设备。
10.如权利要求9所述的方法,其特征在于,所述第一网络设备根据所述数据包确定第一连接标识,具体为:
所述第一网络设备从所述数据包中获取第二连接标识,且所述第二连接标识是所述第一网络设备与所述第二网络设备之间的连接标识;
所述第一网络设备包含所述第一连接标识与第二连接标识的对应关系,所述第一网络设备根据所述对应关系以及所述第二连接标识得到所述第一连接标识。
11.如权利要求9或10所述的方法,其特征在于,在所述第一网络设备通过所述第一网络设备与第二网络设备之间的多条子流中的一条子流,接收数据包之后,包括:
所述第一网络设备对所述数据包进行解封装,得到应用层数据包。
12.如权利要求11所述的方法,其特征在于,所述第一网络设备根据所述数据包确定第一连接标识,具体为:
所述第一网络设备在所述解封装过程中获取所述第一连接标识。
13.如权利要求10至12任意一项所述的方法,其特征在于,所述第一连接标识为所述第一主机设备与第二主机设备的套接字socket或者互联网协议IP五元组,所述第二连接标识为所述第一网络设备与第二网络设备的连接标识connection ID。
14.如权利要求9至13任意一项所述的方法,其特征在于,所述方法还包括:所述第一网络设备与所述第二网络设备建立连接,在所述第一网络设备接收到来自第二网络设备的数据包的情况下,所述第一网络设备向所述第二网络设备发送确认消息。
15.如权利要求9至14任意一项所述的方法,其特征在于,所述第一网络设备从所述第一网络设备与第二网络设备之间的多条子流中的一条子流中,接收数据包之前,包括:
所述第一网络设备与所述第二网络设备建立连接,并在所述连接建立过程中所传输的数据包中包括确认消息功能去激活信息ACK disable。
16.一种第一网络设备,其特征在于,包括:
接收器,用于接收通过第二网络设备转发的来自第一主机设备的数据包,根据所述数据包确定所述第一网络设备与第二网络设备的第一连接标识;
处理器,用于根据所述第一连接标识对所述数据包进行封装;
发射器,用于将封装后的数据包,通过所述第一网络设备与所述第二网络设备之间的多条子流中的一条子流,发送到所述第二网络设备中。
17.如权利要求16所述的第一网络设备,其特征在于,所述处理器具体用于,从所述数据包中获取第二连接标识,且所述第二连接标识是所述第一主机设备与所述第二主机设备之间的连接标识;根据所述第二连接标识,以及所述第一连接标识与所述第二连接标识的对应关系,确定所述第一连接标识;其中,所述第一网络设备包含所述第一连接标识与第二连接标识的对应关系。
18.如权利要求17所述的第一网络设备,其特征在于,所述第二连接标识为所述第一主机设备与所述第二主机设备的套接字socket或者互联网协议IP五元组;所述第一连接标识为所述第一网络设备与第二网络设备的连接标识connection ID。
19.如权利要求16至18任意一项所述的第一网络设备,其特征在于,所述处理器还用于所述第一网络设备与所述第二网络设备建立连接;所述发射器还用于在所述第一网络设备接收到来自第二网络设备的数据包的情况下,所述第一网络设备向所述第二网络设备发送确认消息。
20.如权利要求16所述的第一网络设备,其特征在于,所述处理器还用于与所述第一主机设备建立连接,与所述第二网络设备建立连接,通过所述第二网络设备与所述第二主机设备建立连接;
所述接收器还用于,通过所述第一网络设备与所述第二网络设备之间的多条子流的一条子流,接收来自所述第二主机设备且由所述第二网络设备转发的第二确认数据包。
21.如权利要求20所述的第一网络设备,其特征在于,在所述第一网络设备与所述第二网络设备建立连接过程中携带确认消息功能去激活信息ACK disable。
22.根据权利要求16所述的第一网络设备,其特征在于,所述处理器根据所述第一连接标识对所述数据包进行封装,具体为:所述处理器根据所述第一连接标识对应用层数据包进行封装。
23.根据权利要求16所述的第一网络设备,其特征在于,所述处理器根据所述第一连接标识对所述数据包进行封装,具体为:所述处理器根据所述第一连接标识对互联网协议IP数据包进行封装。
24.一种第二网络设备,其特征在于,包括:
接收器,用于通过所述第一网络设备与第二网络设备之间的多条子流中的一条子流,接收数据包;
处理器,用于根据所述数据包确定第一连接标识;所述第一连接标识是第一主机设备与第二主机设备的连接标识,且所述第一主机设备是与所述第二网络设备相连的主机设备,所述第二主机设备是与所述第一网络设备相连的主机设备;
发射器,用于根据所述第一连接标识,将所述数据包发送至所述第二主机设备。
25.如权利要求24所述的第二网络设备,其特征在于,所述处理器根据所述数据包确定第一连接标识,具体为:所述处理器从所述数据包中获取第二连接标识,且所述第二连接标识是所述第一网络设备与所述第二网络设备之间的连接标识;且所述第二网络设备包含所述第一连接标识与第二连接标识的对应关系,所述处理器还用于根据所述对应关系以及所述第二连接标识得到所述第一连接标识。
26.如权利要求24或25所述的第二网络设备,其特征在于,在所述处理器通过所述第一网络设备与第二网络设备之间的多条子流中的一条子流,接收数据包之后,所述处理器还用于对所述数据包进行解封装,得到应用层数据包。
27.如权利要求26所述的第二网络设备,其特征在于,所述处理器根据所述数据包确定第一连接标识,具体为:所述处理器在所述解封装过程中获取所述第一连接标识。
28.如权利要求25至27任意一项所述的第二网络设备,其特征在于,所述第一连接标识为所述第一主机设备与第二主机设备的套接字socket或者互联网协议IP五元组,所述第二连接标识为所述第一网络设备与第二网络设备的连接标识connection ID。
29.如权利要求25至28任意一项所述的第二网络设备,其特征在于,处理器还用于与所述第一网络设备与所述第二网络设备建立连接;所述发射器还用于在所述第一网络设备接收到来自第二网络设备的数据包的情况下,所述第一网络设备向所述第二网络设备发送确认消息。
30.如权利要求24至29任意一项所述的第二网络设备,其特征在于,所述接收器从所述第一网络设备与第二网络设备之间的多条子流中的一条子流中,接收数据包之前,所述处理器还用于,与所述第二网络设备建立连接,并在所述连接建立过程中携带确认消息功能去激活信息ACK disable。
31.一种通信实体,其特征在于,所述通信实体用于执行权利要求1至8任一所述的数据传输的方法。
32.一种通信实体,其特征在于,所述通信实体用于执行权利要求9至15任一所述的数据传输的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710544954.2A CN109218186B (zh) | 2017-07-05 | 2017-07-05 | 一种多路径数据传输处理方法及网络设备 |
PCT/CN2018/092026 WO2019007209A1 (zh) | 2017-07-05 | 2018-06-20 | 一种多路径数据传输处理方法及网络设备 |
EP18828447.5A EP3633932A4 (en) | 2017-07-05 | 2018-06-20 | MULTIPLE-WAY DATA TRANSMISSION PROCESSING METHOD AND NETWORK DEVICE |
US16/733,915 US11522790B2 (en) | 2017-07-05 | 2020-01-03 | Multipath data transmission processing method and network device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710544954.2A CN109218186B (zh) | 2017-07-05 | 2017-07-05 | 一种多路径数据传输处理方法及网络设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109218186A true CN109218186A (zh) | 2019-01-15 |
CN109218186B CN109218186B (zh) | 2021-02-23 |
Family
ID=64950589
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710544954.2A Active CN109218186B (zh) | 2017-07-05 | 2017-07-05 | 一种多路径数据传输处理方法及网络设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11522790B2 (zh) |
EP (1) | EP3633932A4 (zh) |
CN (1) | CN109218186B (zh) |
WO (1) | WO2019007209A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110177082A (zh) * | 2019-04-25 | 2019-08-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、设备、介质以及装置 |
CN110213241A (zh) * | 2019-05-09 | 2019-09-06 | 阿里巴巴集团控股有限公司 | 一种数据传输方法、设备、介质以及装置 |
CN110621040A (zh) * | 2019-10-24 | 2019-12-27 | 北京大学 | 一种实现多路并行传输通信的方法和系统 |
CN110635988A (zh) * | 2019-10-24 | 2019-12-31 | 北京大学 | 一种用于多路径传输的数据转发方法及设备 |
WO2020151449A1 (zh) * | 2019-01-25 | 2020-07-30 | 上海哔哩哔哩科技有限公司 | 基于quic协议栈的数据处理方法、系统、设备及存储介质 |
US10778812B1 (en) | 2019-05-09 | 2020-09-15 | Alibaba Group Holding Limited | Data encapsulation conversion and transmission |
CN112039824A (zh) * | 2019-06-03 | 2020-12-04 | 上海哔哩哔哩科技有限公司 | 通信方法、系统、设备及计算机可读存储介质 |
WO2021078231A1 (zh) * | 2019-10-24 | 2021-04-29 | 北京大学 | 基于位置感知的网络中间设备 |
CN112738855A (zh) * | 2020-09-29 | 2021-04-30 | 网络通信与安全紫金山实验室 | 一种应用在quic的基于多链路的传输方法和装置 |
CN115277560A (zh) * | 2022-09-28 | 2022-11-01 | 鹏城实验室 | 基于mptcp和mpquic的异构网络融合传输方法 |
US11570100B2 (en) | 2019-04-25 | 2023-01-31 | Advanced New Technologies Co., Ltd. | Data processing method, apparatus, medium and device |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9607336B1 (en) * | 2011-06-16 | 2017-03-28 | Consumerinfo.Com, Inc. | Providing credit inquiry alerts |
US10819524B2 (en) * | 2016-10-19 | 2020-10-27 | Qualcomm Incorporated | Methods for header extension preservation, security, authentication, and protocol translation for RTP over MPRTP |
FR3067550A1 (fr) * | 2017-06-27 | 2018-12-14 | Orange | Procede de communication quic via des chemins multiples |
ES2798127T3 (es) * | 2018-02-06 | 2020-12-09 | Deutsche Telekom Ag | Técnicas para transmisión de múltiples trayectos eficaz |
FR3079987A1 (fr) * | 2018-04-06 | 2019-10-11 | Orange | Procede de traitement d'une transaction entre un terminal source et un terminal destinataire, systeme de services bancaires, terminal et programme d'ordinateur correspondants. |
WO2020056642A1 (zh) * | 2018-09-19 | 2020-03-26 | Oppo广东移动通信有限公司 | 一种数据传输方法、设备及存储介质 |
US10791485B2 (en) * | 2018-10-16 | 2020-09-29 | Cisco Technology, Inc. | Systems and methods for quick user datagram protocol internet connection (QUIC) with multipath |
CN115244897A (zh) * | 2020-02-14 | 2022-10-25 | Idac控股公司 | 用于使用quic实现多主机多路径安全传输的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103516694A (zh) * | 2012-06-28 | 2014-01-15 | 华为技术有限公司 | 通信方法、装置和系统 |
CN104285472A (zh) * | 2014-04-24 | 2015-01-14 | 华为技术有限公司 | Mptcp连接的移动性管理方法和装置 |
CN104854837A (zh) * | 2012-12-14 | 2015-08-19 | 瑞典爱立信有限公司 | 处理通信网络中的多路径传输控制协议信令 |
US20160037428A1 (en) * | 2014-08-01 | 2016-02-04 | Satish Kanugovi | Methods and devices for providing application services to users in communications network |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9455897B2 (en) * | 2010-04-06 | 2016-09-27 | Qualcomm Incorporated | Cooperative bandwidth aggregation using multipath transport |
US20120144062A1 (en) * | 2010-06-04 | 2012-06-07 | Interdigital Patent Holdings, Inc. | MPTCP And Mobile IP Interworking |
CN104158761B (zh) * | 2014-08-05 | 2018-02-13 | 华为技术有限公司 | 一种分流流量的方法和装置 |
EP3016347B1 (en) * | 2014-10-27 | 2019-02-13 | Cisco Technology, Inc. | Multipath provisioning of l4-l7 traffic in a network |
CN106464567B (zh) * | 2015-04-30 | 2020-04-28 | 华为技术有限公司 | 一种流量动态控制方法、设备及网关、融合接入汇聚点 |
EP3151504B1 (en) * | 2015-09-30 | 2018-06-06 | Tessares SA | Method and device for establishing multipath network connections |
CN105703999B (zh) * | 2016-03-29 | 2019-06-11 | 华为技术有限公司 | 建立gre隧道的方法和设备 |
US10205804B2 (en) * | 2017-02-01 | 2019-02-12 | Hughes Network Systems, Llc | Methods and systems for enhanced support of TCP options in a TCP spoofed system |
US11202230B2 (en) * | 2017-05-19 | 2021-12-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Technique for enabling multipath transmission |
-
2017
- 2017-07-05 CN CN201710544954.2A patent/CN109218186B/zh active Active
-
2018
- 2018-06-20 EP EP18828447.5A patent/EP3633932A4/en active Pending
- 2018-06-20 WO PCT/CN2018/092026 patent/WO2019007209A1/zh unknown
-
2020
- 2020-01-03 US US16/733,915 patent/US11522790B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103516694A (zh) * | 2012-06-28 | 2014-01-15 | 华为技术有限公司 | 通信方法、装置和系统 |
CN104854837A (zh) * | 2012-12-14 | 2015-08-19 | 瑞典爱立信有限公司 | 处理通信网络中的多路径传输控制协议信令 |
CN104285472A (zh) * | 2014-04-24 | 2015-01-14 | 华为技术有限公司 | Mptcp连接的移动性管理方法和装置 |
US20160037428A1 (en) * | 2014-08-01 | 2016-02-04 | Satish Kanugovi | Methods and devices for providing application services to users in communications network |
Non-Patent Citations (2)
Title |
---|
A. MENON等: "Network Enhancements for QUIC draft-abilash-quic-network-00", 《INTERNET ENGINEERING TASK FORCE》 * |
张志超: "基于主机标识的多路径TCP设计与实现", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》 * |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111490963B (zh) * | 2019-01-25 | 2022-07-29 | 上海哔哩哔哩科技有限公司 | 基于quic协议栈的数据处理方法、系统、设备及存储介质 |
WO2020151449A1 (zh) * | 2019-01-25 | 2020-07-30 | 上海哔哩哔哩科技有限公司 | 基于quic协议栈的数据处理方法、系统、设备及存储介质 |
US11954530B2 (en) | 2019-01-25 | 2024-04-09 | Shanghai Bilibili Technology Co., Ltd. | Method and system of processing data based on QUIC protocol stack, device and storage medium |
CN111490963A (zh) * | 2019-01-25 | 2020-08-04 | 上海哔哩哔哩科技有限公司 | 基于quic协议栈的数据处理方法、系统、设备及存储介质 |
CN110177082A (zh) * | 2019-04-25 | 2019-08-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、设备、介质以及装置 |
US11570100B2 (en) | 2019-04-25 | 2023-01-31 | Advanced New Technologies Co., Ltd. | Data processing method, apparatus, medium and device |
CN110177082B (zh) * | 2019-04-25 | 2022-03-01 | 创新先进技术有限公司 | 一种数据处理方法、设备、介质以及装置 |
CN110213241A (zh) * | 2019-05-09 | 2019-09-06 | 阿里巴巴集团控股有限公司 | 一种数据传输方法、设备、介质以及装置 |
US10778812B1 (en) | 2019-05-09 | 2020-09-15 | Alibaba Group Holding Limited | Data encapsulation conversion and transmission |
CN112039824A (zh) * | 2019-06-03 | 2020-12-04 | 上海哔哩哔哩科技有限公司 | 通信方法、系统、设备及计算机可读存储介质 |
CN112039824B (zh) * | 2019-06-03 | 2022-08-26 | 上海哔哩哔哩科技有限公司 | 通信方法、系统、设备及计算机可读存储介质 |
CN110621040A (zh) * | 2019-10-24 | 2019-12-27 | 北京大学 | 一种实现多路并行传输通信的方法和系统 |
WO2021078231A1 (zh) * | 2019-10-24 | 2021-04-29 | 北京大学 | 基于位置感知的网络中间设备 |
CN110635988A (zh) * | 2019-10-24 | 2019-12-31 | 北京大学 | 一种用于多路径传输的数据转发方法及设备 |
CN110621040B (zh) * | 2019-10-24 | 2021-02-02 | 北京大学 | 一种实现多路并行传输通信的方法和系统 |
CN112738855A (zh) * | 2020-09-29 | 2021-04-30 | 网络通信与安全紫金山实验室 | 一种应用在quic的基于多链路的传输方法和装置 |
CN115277560A (zh) * | 2022-09-28 | 2022-11-01 | 鹏城实验室 | 基于mptcp和mpquic的异构网络融合传输方法 |
Also Published As
Publication number | Publication date |
---|---|
EP3633932A4 (en) | 2020-05-06 |
US11522790B2 (en) | 2022-12-06 |
EP3633932A1 (en) | 2020-04-08 |
WO2019007209A1 (zh) | 2019-01-10 |
CN109218186B (zh) | 2021-02-23 |
US20200145324A1 (en) | 2020-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109218186A (zh) | 一种多路径数据传输处理方法及网络设备 | |
CN109644190B (zh) | 两个终端之间的多路径udp通信方法 | |
CN105814941B (zh) | 用于多连接通信的一体化子层 | |
CN103441996B (zh) | 并发传输文件的方法及系统 | |
US20160380884A1 (en) | Flow-Based Distribution in Hybrid Access Networks | |
EP1858199A2 (en) | Communication system and management device and relay device used therein | |
US20120144062A1 (en) | MPTCP And Mobile IP Interworking | |
US10911413B2 (en) | Encapsulating and tunneling WebRTC traffic | |
WO2018120966A1 (zh) | 一种多通道网络切换方法和系统 | |
US11502962B2 (en) | Method, apparatus, and system for implementing data transmission | |
CN108601043A (zh) | 用于控制无线接入点的方法和设备 | |
CN105009544A (zh) | 报文的隧道处理方法、交换设备及控制设备 | |
JP2004533138A (ja) | デュアル・プロキシ装置を設けることによる無線インタフェースを介するtcp性能の改良技術 | |
US10673991B2 (en) | Method and system for the scheduling of packets in a bundling scenario based on TCP tunnels and native TCP information | |
WO2020135457A1 (zh) | 连接建立方法及相关设备 | |
WO2016074211A1 (zh) | 一种数据转发的方法和控制器 | |
WO2016172958A1 (zh) | 一种流量动态控制方法、设备及网关、融合接入汇聚点 | |
CN110313160A (zh) | 移动通信系统中用于避免封包分割的方法及其装置 | |
WO2014036728A1 (zh) | 一种空口传输方法及相关设备、系统 | |
JP2020010326A (ja) | WiFi管理フレームを利用したデータ送信方法、データ受信方法及びデータ通信方法 | |
Sun et al. | Multipath ip routing on end devices: Motivation, design, and performance | |
WO2008066089A1 (fr) | Dispositif de commande de communication, disposition de communication sans fil, procédé de commande de communication et procédé de communication sans fil | |
CN104105222B (zh) | 建立通信 | |
JP2014528183A (ja) | リアルタイム通信セッションを確立する通信システム | |
CN104023091B (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 | ||
GR01 | Patent grant |