CN110943935B - 一种实现数据传输的方法、装置和*** - Google Patents
一种实现数据传输的方法、装置和*** Download PDFInfo
- Publication number
- CN110943935B CN110943935B CN201811115534.3A CN201811115534A CN110943935B CN 110943935 B CN110943935 B CN 110943935B CN 201811115534 A CN201811115534 A CN 201811115534A CN 110943935 B CN110943935 B CN 110943935B
- Authority
- CN
- China
- Prior art keywords
- data packet
- target data
- data stream
- data
- physical links
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
- H04L47/283—Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
-
- 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
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/32—Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W28/00—Network traffic management; Network resource management
- H04W28/02—Traffic management, e.g. flow control or congestion control
- H04W28/0231—Traffic management, e.g. flow control or congestion control based on communication conditions
- H04W28/0236—Traffic management, e.g. flow control or congestion control based on communication conditions radio quality, e.g. interference, losses or delay
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/15—Setup of multiple wireless link connections
-
- 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/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/255—Maintenance or indexing of mapping tables
-
- 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/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- 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/5069—Address allocation for group communication, multicast communication or broadcast communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/02—Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
- H04W84/10—Small scale networks; Flat hierarchical networks
- H04W84/12—WLAN [Wireless Local Area Networks]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例公开了一种实现数据传输的方法、装置和***。所述方法包括:发送设备获取目标数据流的数据包,并通过与接收设备之间的至少两个物理链路发送所述数据包,其中,通过所述至少两个物理链路发送的所述数据包的序列号相同。由于通过不同的物理链路发送目标数据流的数据包,而不是仅通过一个物理链路发送,因此当任一物理链路由于存在突发流量或电磁波干扰等带宽不稳定因素导致数据包传输时延加大时,接收设备可以利用其它物理链路发送的时延较小的数据包组合所述目标视频流,从而有效降低数据传输的时延。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种实现数据传输的方法、装置和***。
背景技术
目前,网络手游、虚拟现实(Virtual Reality,VR)VR游戏等对时延要求较高的业务越来越普遍。对于此类业务,数据包的传输时延大小对用户的业务体验影响很大。如,对于网络手游业务,如果时延小于50ms时,用户体验会非常流畅,如果大于100ms则体验急剧下降。因此,此类业务又称为时延敏感性业务。
在现有技术中,不同通信设备之间通过一个物理链路传输数据。当这两个通信设备之间的数据流存在突发流量或由于电磁波干扰导致带宽不稳定等问题时,往往会造成传输时延增加。
发明内容
本申请实施例提供一种实现数据传输的方法、装置和***,用于降低通过WLAN网络进行数据传输的时延。
第一方面,提供了一种实现数据传输的方法,所述方法包括:发送设备获取目标数据流的数据包,并通过与接收设备之间的至少两个物理链路发送所述数据包,其中,通过所述至少两个物理链路发送的所述数据包的序列号相同。
根据第一方面的实现方式,通过不同的物理链路发送目标数据流的数据包,而不是仅通过一个物理链路发送,因此当任一物理链路由于存在突发流量或电磁波干扰等带宽不稳定因素导致数据包传输时延加大时,接收设备可以利用其它物理链路发送的时延较小的数据包组合所述目标视频流,从而有效降低数据传输的时延。
在第一方面的第一种实现方式中,该数据包的序列号携带在该数据包的数据链路层头部和网络层头部之间扩展的头部中。
根据该实现方式,由于携带在数据链路层头部和网络层头部之间扩展的头部,可以兼容上层不同的网络层协议,也可以兼容下层不同的数据链路层协议,兼容性较强。并且,对发送设备和接收设备中现有的数据链路层的处理逻辑和网络层的处理逻辑没有改动,易于实现。
第二方面,提供了一种实现数据传输的方法,所述方法包括:接收设备通过与发送设备之间的至少两个物理链路接收目标数据流的数据包,通过所述至少两个物理链路接收的所述目标数据流的每个数据包携带序列号,并且,对于所述发送设备分别通过所述至少两个物理链路中的每个物理链路发送的所述目标数据流的序列号相同的数据包,所述接收设备利用先接收到的携带所述序列号的数据包组合所述目标数据流。
根据第二方面的实现方式,通过不同的物理链路发送目标数据流的数据包,而不是仅通过一个物理链路发送,因此当任一物理链路由于存在突发流量或电磁波干扰等带宽不稳定因素导致数据包传输时延加大时,接收设备可以利用其它物理链路发送的时延较小的数据包组合所述目标视频流,从而有效降低数据传输的时延。
在第二方面的第一种实现方式中,对于所述发送设备通过所述至少两个物理链路发送的所述目标数据流的序列号相同的数据包,所述接收设备丢弃后接收到的携带所述序列号的数据包。
根据该实现方式,丢弃后接收到的数据包,可以有效节省存储资源。
基于第二方面或第二方面的第一种实现方式,在第二方面的第二种实现方式中,所述目标数据流的每个数据包的序列号携带在所述数据包的数据链路层头部和网络层头部之间扩展的头部中。
根据该实现方式,由于携带在数据链路层头部和网络层头部之间扩展的头部,可以兼容上层不同的网络层协议,也可以兼容下层不同的数据链路层协议,兼容性较强。并且,对发送设备和接收设备中现有的数据链路层的处理逻辑和网络层的处理逻辑没有改动,易于实现。
第三方面,提供了一种通信设备,所述通信设备包括获取单元和通信单元。其中,所述获取单元,用于获取目标数据流的数据包。所述通信单元,用于通过与接收设备之间的至少两个物理链路发送所述数据包,其中,通过所述至少两个物理链路发送的所述数据包的序列号相同。
在第三方面的第一种实现方式中,所述数据包的序列号携带在所述数据包的数据链路层头部和网络层头部之间扩展的头部中。
第四方面,提供了一种通信设备,所述通信设备包括通信单元和处理单元。其中,所述通信单元用于,通过与发送设备之间的至少两个物理链路接收目标数据流的数据包,通过所述至少两个物理链路接收的所述目标数据流的每个数据包携带序列号。所述处理单元用于,对于所述发送设备分别通过所述至少两个物理链路中的每个物理链路发送的所述目标数据流的序列号相同的数据包,利用先接收到的携带所述序列号的数据包组合所述目标数据流。
在第四方面的第一种实现方式中,所述目标数据流的每个数据包的序列号携带在所述数据包的数据链路层头部和网络层头部之间扩展的头部中。
第五方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
第六方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。
图1A-1C是本申请实施例提供的通信***100的组网结构示意图;
图2-3是本申请实施例提供的方法100的流程示意图;
图4A-4B是本申请实施例提供的协议结构示意图;
图5是本申请实施例2提供的通信设备200的结构示意图;
图6是本申请实施例3提供的通信设备300的结构示意图;
图7是本申请实施例4提供的通信设备1000的结构示意图;
图8是本申请实施例5提供的通信设备2000的结构示意图;
具体实施方式
下面结合附图,对本申请的实施例进行描述。
图1A-1C为本申请实施例提供的通信***100的组网结构示意图,通信***100包括第一设备101和第二设备102。第一设备101和第二设备102之间可以是有线通信,也可以是无线通信,如通过无线保真(Wireless Fidelity,WiFi)通信,也可以既通过有线通信又通过无线通信。第一设备101可以为路由器、交换机等传输设备,第二设备可以为路由器、交换机等传输设备,也可以为用户终端,如机顶盒(Set Top Box,STB)、VR终端等。该通信***还可以包括业务服务器103,该业务服务器103可以为IPTV服务器、VR视频服务器等。
以第一设备和第二设备之间通过WiFi通信为例,第一设备101可以为AP设备,具体可以为光网络终端(Optical Network Terminal,ONT)、客户端设备(Customer PremiseEquipment,CPE)等家用AP设备,也可以为企业网AP设备。
如图1B所示,第二设备102可以为无线用户终端,如无线机顶盒(Set Top Box,STB)、无线VR终端等。通过Wifi通信的无线用户终端又可以称为站(Station,STA)。在如图1B所示的通信***100中,该业务服务器发送的数据流通过第一设备101发送至第二设备102。
如图1C所示,第二设备102可以为另一个AP设备。如图1C所示的通信***100还可以包括用户终端104,如STB、VR终端等。在如图1C所示的通信***100中,该业务服务器发送的数据流通过第一设备101和第二设备102发送至用户终端104。
第一设备101和第二设备102均可以部署多个网卡。第一设备101和第二设备102均为无线设备时,均可以部署多个无线网卡,如,均部署分别工作在2.4G和5G频段的无线网卡。下面结合图2、图3、图4A-4B介绍本申请实施例一提供的方法100。
图2是本申请实施例1提供的方法流程示意图,本申请实施例1的方法可以应用于图1A-1C所示的通信***100。
如图2所示,方法100包括如下步骤:
S110:第一设备(如图1A-1C所示的第一设备101)与第二设备(如图1A-1C所示的第二设备102)之间建立M个物理链路,其中M为不小于2的自然数。
所述第一设备和所述第二设备均可以部署M个网卡,所述第一设备和所述第二设备的对应网卡之间建立物理链路。
当所述第一设备和所述第二设备之间通过以太网通信时,建立的物理链路为以太网链路。当所述第一设备和所述第二设备之间通过WiFi通信时,建立的物理链路为WLAN链路。
S120:第一设备向第二设备发送启动通知。
所述第一设备可以在开始接收到所述目标数据流的数据包时发送所述启动通知。所述启动通知用于通知所述第二设备将要采用多发选收方式通过N个物理链路向所述第二设备发送目标数据流,其中N为大于1且不大于M的自然数。可以理解的是,当N等于M时,则用于采用多发选收方式发送所述目标数据流的物理链路是所述第一设备和所述第二设备之间建立的所有物理链路,如,第一设备和第二设备之间建立两条WLAN链路,可以分别为5G链路和2.4G链路,并通过这两条WLAN链路发送所述目标数据流。当N小于M时,用于采用多发选收方式发送所述目标数据流的物理链路是所述第一设备和所述第二设备之间建立的部分物理链路。如,所述第一设备和所述第二设备之间建立3条物理链路,可以通过这3条物理链路采用多发选收方式发送所述目标数据流,也可以通过其中2条物理链路采用多发选收方式发送所述目标数据流。
该启动通知可以包括目标数据流的初始序列号,还可以包括所述N个物理链路的链路标识。其中,所述目标数据流的初始序列号为在步骤S150中通过多发选收方式发送的第一个属于所述目标数据流的数据包的序列号。该启动通知还可以包括数据传输方式,该数据传输方式表明第一设备要通过多发选收方式向第二设备发送目标数据流的数据包。所述启动通知还可以包括所述目标数据流的流标识,用于所述第二设备确定要对通过不同物理链路接收的携带所述流标识的数据包进行组合。
另外,第一设备在确定不再通过多发选收方式发送所述目标数据流时,还可以向所述第二设备发送结束通知。
在本申请实施例中,第一设备向第二设备发送目标数据流,因此,可以将第一设备称为发送设备并将第二设备称为接收设备。
本申请实施例中的多发选收指的是发送设备通过与接收设备之间的不同物理链路发送同一个数据包,接收设备对于收到的序列号相同的数据包利用先收到的携带该序列号的数据包组合数据流。本申请实施例中的数据包可以为因特网协议(InternetProtocol,IP)数据包。
S130-S140:第二设备在接收到该启动通知后,根据所述启动通知确定所述第一设备将要采用多发选收的方式通过所述N个物理链路发送所述目标数据流,记录启动通知中携带的信息,如初始序列号,并回复确认消息。
S150:第一设备获取目标数据流的数据包,并通过与第二设备之间的N个物理链路发送所述数据包,其中,通过不同物理链路发送的所述数据包的序列号相同。
具体地,第一设备通过不同物理链路对应的通信接口(如wifi接口)发送所述数据包。
所述第一设备为通过多发选收方式发送的该目标数据流的数据包添加的序列号是连续的。为在步骤S150中发送的目标数据流的第一个数据包添加初始序列号并为后续数据包依次添加递增1的序列号。可以理解的是,如果在步骤S150中对于目标数据流的每个数据包均采用多发选收的方式进行发送,则在步骤S150中通过任一物理链路发送的该目标数据流的数据包的序列号是连续的。
在步骤S150中,所述第一设备具体可以对所述数据包进行复制以获得N-1个复制数据包,通过其中一个物理链路发送该数据包并通过另外N-1个物理链路发送所述N-1个复制数据包。
在具体实现时,所述第一设备可以在对所述数据包进行复制之后再将所述序列号添加到所述数据包和所述数据包的复制数据包中,也可以在对所述数据包进行复制之前将所述序列号添加到所述数据包中,则对该数据包进行复制得到的复制数据包自然携带该序列号。
所述第一设备具体从要发送给所述第二设备的待发送数据包中获取所述目标数据流的数据包,具体可以对待发送数据包进行识别,将满足所述目标数据流的预设条件的数据包识别为所述目标数据流的数据包。在具体实现时,第一设备可能向第二设备发送多种业务的数据包,可以仅对部分业务的数据包通过多发选收的方式进行传输,如针对网络手游、VR游戏等对时延要求较高的业务的数据流通过多发选收的方式进行传输。相应地,所述第一设备可以将向第二设备发送的满足所述预设条件的数据包识别为目标数据流的数据包进行多发选收。如将属于一个或多个预设业务的数据包识别为所述目标数据流的数据包,又如将五元组为预设五元组的数据包识别为所述目标数据流的数据包。
在一种实施方式中,可以对一个或多个业务服务器发送的数据流作为整体进行多发选收。具体可以将源IP地址属于源IP地址列表的数据包识别为所述目标数据流的数据包,即将源IP地址属于所述源IP地址列表的数据包的整体作为目标数据流。所述源IP地址列表包括一个或多个IP地址,如包括提供各大码率视频业务的业务服务器的IP地址。在具体实现时,所述第一设备可以对待发送数据包中的源IP地址与所述源IP地址列表中的IP地址进行比较,如果该待发送数据包的源IP地址与所述源IP地址列表中的任一IP地址相同,则将所述待发送数据包识别为所述目标数据流的数据包。所述第一设备可以将获取的一个或多个IPTV组播IP地址加到所述源IP地址列表中,也可以从用户终端和业务服务器之间的域名***(Domain Name System,DNS)交互消息中获取与预设域名(如VR服务器域名)对应的IP地址,并将该IP地址加到所述源IP地址列表中。
在另一种实施方式中,可以对特定业务服务器发送的数据流进行多发选收。具体可以将待发送数据包中源IP地址为预设源IP地址(如VR服务器的IP地址)的数据包识别为所述目标数据流的数据包,即将源IP地址为所述预设源IP地址的数据包的整体作为所述目标数据流。在具体实现时,所述第一设备可以对待发送数据包中的源IP地址与所述预设源IP地址进行比较,如果该待发送数据包的源IP地址与所述预设源IP地址相同,则将所述待发送数据包识别为所述目标数据流的数据包。所述第一设备可以将获取的IPTV组播IP地址设置为该预设源IP地址,也可以从用户终端和业务服务器之间的DNS交互消息中获取与预设域名(如VR服务器域名)对应的IP地址,并将该IP地址设置为该预设源IP地址。在具体实现时可以预设多个源IP地址,将源IP地址为不同预设源IP地址的数据包作为不同的目标数据流分别采用多发选收方式传输。相应地,针对每个数据流均执行方法100的步骤S120-S160。
在另一种实施方式中,可以对发给一个或多个用户终端(如VR终端)的数据流作为整体进行多发选收。具体可以将目的IP地址属于目的IP地址列表的数据包识别为所述目标数据流的数据包,即将目的IP地址属于所述目的IP地址列表的数据包的整体作为目标数据流。所述目的IP地址列表包括一个或多个IP地址,如包括多个VR终端的IP地址。也可以对发给特定用户终端(如VR终端)的数据流进行多发选收。具体可以将待发送数据包中目的IP地址为预设目的IP地址(如VR终端的IP地址)的数据包识别为所述目标数据流的数据包,即将目的IP地址为所述预设目的IP地址的数据包的整体作为所述目标数据流。
在另一种实施方式中,可以基于单个数据流进行多发选收,即对五元组为预设五元组的数据流进行多发选收。具体可以将待发送数据包中五元组为所述预设五元组的数据包识别为所述目标数据流的数据包,即将五元组为所述预设五元组的数据包的整体作为一个目标数据流。在具体实现时,所述第一设备可以对待发送数据包中的五元组与所述预设五元组进行比较,如果该待发送数据包的五元组与所述预设五元组相同,则将所述待发送数据包识别为所述目标数据流的数据包。可以预设多个五元组,将五元组为不同预设五元组的数据包作为不同的目标数据流分别采用多发选收方式传输。相应地,针对每个数据流均执行方法100的步骤S120-S160。
在另一种实施方式中,可以对视频流统一进行多发选收。具体可以将待发送数据包中的视频数据包识别为所述目标数据流的数据包,即将视频数据包的整体作为一个目标数据流。视频数据包中携带了用于表示封装的为视频数据的信息,可以根据该信息从待发送数据包中识别出视频数据包。
另外,所述第一设备也可以将向第二设备发送的所有数据包作为整体采用多发选收的方式进行传输,即将第一设备向第二设备发送的所有数据包的整体作为所述目标数据流。
第一设备在通过多发选收方式发送所述目标数据流的每个数据包之前,还可以为该数据包添加用于传输该数据包的物理链路的链路标识、所述目标数据流的流标识、用于表明通过多发选收方式发送该数据包的信息等。每个数据包携带的链路标识用于所述第二设备识别该数据包接收自哪个物理链路。每个数据包携带的流标识用于所述第二设备将携带所述流标识的数据包识别为所述目标数据流的数据包。每个数据包携带的用于表明通过多发选收方式发送该数据包的信息用于所述第二设备确定该数据包的发送方式,进而在确定该数据包的发送方式为多发选收方式后利用通过所述N个物理链路接收的数据包对所述目标数据流进行组合。
步骤S160:第二设备通过所述N个物理链路接收目标数据流的数据包,对于所述发送设备分别通过所述N个物理链路发送的所述目标数据流的序列号相同的数据包,所述第二设备利用先接收到的携带所述序列号的数据包组合所述目标数据流。
在步骤S160中,第二设备可以先识别出属于所述目标数据流的数据包。如果所述目标数据流的数据包携带所述目标数据流的流标识,所述第二设备还可以先根据所述流标识从接收的数据包中识别出属于所述目标数据流的数据包。如果同一时间段内只有一路目标数据流,该目标数据流的数据包中可以不用携带流标识,相应地,该第二设备可以将携带序列号的数据包识别为属于所述目标数据流的数据包。
在组合所述目标数据流的过程中,对于所述第一设备分别通过所述N个物理链路发送的所述目标数据流的序列号相同的数据包,所述第二设备利用先接收到的携带所述序列号的数据包组合所述目标数据流,并丢弃后接收到的携带所述序列号的数据包,以节省存储资源。对于用于组合所述目标数据流的每个数据包,转发该数据包或将该数据包收往第二设备的操作***协议栈。具体地,如果该第二设备不是用户终端,需要向下游设备(如用户终端,或所述第二设备与用户终端之间的其它设备)转发该目标数据流,则转发该数据包。如,所述第二设备为AP,将该数据包转发给该第二设备所连接的用户终端。如果所述第二设备为用户终端,将该数据包收往所述第二设备的操作***协议栈。
下面结合图3介绍步骤S160的具体实现方式。
后续将第二设备当前接收的数据包称为当前数据包,并将该当前数据包的序列号表示为Sx,将第二设备已接收的所述目标数据流的数据包的序列号的最大值的序列号表示为Sm。
当前数据包为在步骤S160中接收的所述目标数据流的第一个数据包时,将Sx作为Sm的值。另外,如果Sx等于步骤S130中记录的初始序列号Sc时,直接转发该当前数据包或将该当前数据包收往操作***协议栈,如果Sx大于Sc,则确定序列号小于Sx的数据包发生了丢包,记录丢包序列号范围,记录的丢包序列号范围可以是丢失数据包的序列号的列表,如该列表包括Sc,也可以是一个区间,如[Sc,Sx)。
当前数据包为在步骤S160中接收的所述目标数据流的后续数据包时,通过如下步骤进行处理。
步骤S201:所述第二设备接收到所述当前数据包。
步骤S202:所述第二设备比较Sx和Sm。
如果Sx等于Sm,则确定当前数据包为重复接收的数据包,转步骤S203丢弃该当前数据包。
如果Sx小于Sm,则转步骤S204以进一步判断当前数据包是否落在丢包序列号范围内。
如果Sx等于Sm+1,说明Sx为Sm顺序上的下一数据包,则可以转步骤S206将Sm更新为Sx,并进而转步骤S205转发该当前数据包或将该当前数据包收往操作***协议栈。
如果Sx大于Sm+1,则确定序列号在Sx和Sm+1之间的数据包发生了丢包,转步骤S207以记录丢包序列号范围。
步骤S203:丢弃该当前数据包。
步骤S204:判断该当前数据包是否落在丢包序列号范围内。
如果落在丢包序列号范围内,则转步骤S205以转发该当前数据包,并更新丢包序列号范围,更新的丢包序列号范围不包括Sx。否则,说明该当前数据包为重复接收的数据包,转步骤S203丢弃该当前数据包。
步骤S205:转发该当前数据包或将该当前数据包收往操作***协议栈。
步骤S206:将Sm更新为Sx。
步骤S207:记录丢包序列号范围并转步骤S206,记录的丢包序列号范围可以是丢失数据包的序列号的列表,如该列表包括Sm+2,也可以是序列号区间[Sm+1,Sx)。
执行步骤S203或S205之后,将接收的下一数据包作为新的当前数据包重新执行步骤S201-S207。
根据本申请实施例,可以通过在目标数据流的数据包的二层(即数据链路层)头部和三层头部之间扩展头部来携带该数据包的主序列号、子序列号、所属目标数据流的流标识等信息。后续将扩展的头部称为垫层头部,将该垫层头部所对应的协议称为垫层协议。本申请实施例中的目标数据流的数据包通常为网络层数据包,如IP数据包,相应地,所述数据包的网络层头部为所述数据包中的IP报文头,所述数据包的数据链路层头部为所述数据包外封装的媒体访问控制(Media Access Control,MAC)头。
图4A为增加了垫层的网络层次示意图。如图4A所示,在二层和三层之间扩展垫层,扩展的垫层位于二层和三层之间,又可以称为2.5层。通过负载均衡方式发送的所述目标数据流的每个数据包均携带垫层头部。如,所述目标数据流的数据包为IP数据包,第一设备对IP数据包封装垫层头部,在该IP数据包的垫层头部中携带主序列号等信息。相应地,第二设备在转发该IP数据包或将该IP数据包收往操作***协议栈之前剥除该IP数据包的垫层头部。
如图4A所示,301为802.3以太(Ethernet,ETH)协议,302为802.11WLAN协议,均属于物理层和二层协议;304为IP,305为802.1Q VLAN协议,均属于三层协议;306为传输控制协议(Transmission Control Protocol,TCP)/用户数据报协议(User DatagramProtocol,UDP),307为应用层(Application Layer)协议,均为三层以上协议。303为本申请实施例扩展的垫层(Shim Layer)协议。
扩展的垫层头部的数据结构如图4B所示。
垫层头部的各字段定义如表1所示。
表1
在本申请实施例中,加垫层头部的报文的类型可以分为两种,一种是控制消息,另一种是通过多发选收方式发送的数据包。其中,控制消息用于控制通过多发选收方式发送目标数据流的过程,具体可以是上述启动通知、结束通知、确认消息等,控制消息中的垫层头部用于携带目标数据流的相关信息。其中,启动通知的垫层头部包括初始序列号、流标识等信息。结束通知和确认消息的垫层头部包括流标识等信息。当PT字段的值表示相应报文为控制消息时,Sequence Number字段的值为初始序列号。当PT字段的值表示相应报文为通过多发选收方式发送的数据包时,Sequence Number字段的值为该数据包的序列号。
具体可以通过PT字段区分报文类型,PT(Packet Type)的标记位定义如表2所示。
表2
其中,PT字段的bit 0的值用于表明所在报文是否有options字段,0表明有,1表明没有。PT字段的Bit 1-3的值用于表明所在报文的类型,其中,0x0表明所在报文为通过多链路方式(如负载均衡、多发选收)发送的目标数据流的数据包,0x1-0x3表明所在报文为控制消息,其中,0x1表明所在报文为启动通知,0x2表明所在报文为结束通知,0x3表明所在报文为确认消息。需要说明的是,该控制消息可以是信令,也可以利用没有通过多链路方式发送的数据包来实现,只要在该数据包中携带用于表明该数据包用作控制消息的字段值即可。
流状态字段Status的标记位定义如表3所示。
表3
其中,Status字段的Bit0的值表明所在数据流当前采用单物理链路发送还是采用多物理链路发送,Status字段的Bit 1-3的值用于表明所在数据流所采用的数据传输方式是多发选收还是负载均衡。其中,0x1表明是多发选收,0x2表明是负载均衡。负载均衡方式指的是,将目标数据流的待发送数据包分担到多个物理链路上发送,第二设备根据通过不同物理链路接收的该目标数据流的不同数据包组合目标数据流。
根据本申请实施例1提供的方法100,由于通过不同的物理链路发送目标数据流的数据包,而不是仅通过一个物理链路发送,因此当任一物理链路由于存在突发流量或电磁波干扰等带宽不稳定因素导致数据包传输时延加大时,第二设备可以利用其它物理链路发送的时延较小的数据包组合所述目标视频流,从而有效降低数据传输的时延。
根据本申请实施例1,本申请实施例2提出了一种通信设备200,如图5所示,通信设备200包括:获取单元210和通信单元220。
获取单元210,用于获取目标数据流的数据包。具体用于从待发送数据包中获取所述目标数据流的数据包,如将向第二设备发送的满足预设条件的数据包(如属于一个或多个预设业务的数据包)识别为所述目标数据流的数据包。获取单元210所能够进行的各具体操作可参考前述图2-4B所示实施例中第一设备侧的对应操作的详细处理过程,如步骤S150的详细处理过程,此处不再逐一赘述。
通信单元220,用于与其它设备通信,包括用于通过与接收设备之间的至少两个物理链路发送所述数据包,其中,通过所述至少两个物理链路发送的所述数据包的序列号相同。还可以用于收发控制消息(如发送启动通知)、建立与第二设备之间的物理链路、为所述目标数据流的待发送数据包添加序列号、流标识等多发选收相关信息。通信单元220所能够进行的各具体操作可参考前述图2-4B所示实施例中第一设备侧的对应操作的详细处理过程,如步骤S110、S120、S140和S150的详细处理过程,此处不再逐一赘述。
根据本申请实施例1,本申请实施例2提出了一种通信设备300,如图6所示,通信设备300包括:通信单元310和处理单元320。
通信单元310用于,用于与其它设备通信,包括通过与发送设备之间的至少两个物理链路接收目标数据流的数据包,通过所述至少两个物理链路接收的所述目标数据流的每个数据包携带序列号。还可以用于收发控制消息(如接收启动通知)、建立与第一设备之间的物理链路等。通信单元310所能够进行的各具体操作可参考前述图2-4B所示实施例中第二设备侧的对应操作的详细处理过程,如步骤S110、S120、S140、S201和S205的详细处理过程,此处不再逐一赘述。
处理单元320用于,对于所述发送设备分别通过所述至少两个物理链路中的每个物理链路发送的所述目标数据流的序列号相同的数据包,利用先接收到的携带所述序列号的数据包组合所述目标数据流。对于用于组合所述目标数据流的每个数据包,通过通信单元310转发该数据包。处理单元320的所能够进行的各具体操作可参考上述图2-4B所示实施例中第二设备侧的对应操作的详细处理过程,如步骤S130、S160、S202-S204和S206-S207的详细处理过程,此处不再逐一赘述。
根据本申请实施例1,本申请实施例4提供了一种通信设备1000。如图7所示,通信设备1000包括处理器1010和多个通信接口1020。
处理器1010,用于实施本申请实施例1提供的方法100中的第一设备执行的操作,其中,在与其它设备通信时通过通信接口1020与其它设备通信。处理器1010具体可以是中央处理器(central processing unit,CPU),或者是特定集成电路(Application SpecificIntegratedCircuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路。
如图7所示,通信设备1000还可以包括存储器1030。处理器1010和存储器1030之间可以通过总线完成相互间的通信。存储器1030,用于存放计算机操作指令,具体可以是高速随机存取存储器(Random Access Memory,RAM),也可以是非易失性存储器(non-volatilememory)。处理器1010具体可以执行存储器1030中存放的计算机操作指令,通过执行所述计算机操作指令使得通信设备1000执行上述实施例1所述的方法中第一设备所执行的操作。在具体实现时,存储器1030可以包括获取模块1031和通信模块1032,分别存储用于实现图5所示的获取单元210和通信单元220的功能。相应地,处理器1010具体通过执行获取模块1031中的指令实现获取单元210的功能并通过执行通信模块1032中的指令实现通信单元220的功能。上述通信设备1000中的各单元所能够进行的各具体操作可参考上述图2-4B所示实施例中第一设备侧的对应操作的详细处理过程,此处不再逐一赘述。
根据本申请实施例1,本申请实施例5提供了一种通信设备2000。如图8所示,通信设备2000包括处理器2010和多个通信接口2020。
处理器2010,用于实施本申请实施例1提供的方法100中的第二设备执行的操作,其中,在与其它设备通信时通过通信接口2020与其它设备通信。处理器2010具体可以是CPU,或者是ASIC,或者是被配置成实施本申请实施例的一个或多个集成电路。
如图8所示,通信设备2000还可以包括存储器2030。处理器2010和存储器2030之间可以通过总线完成相互间的通信。存储器2030,用于存放计算机操作指令,具体可以是RAM,也可以是非易失性存储器。处理器2010具体可以执行存储器2030中存放的计算机操作指令,通过执行所述计算机操作指令使得通信设备2000执行上述实施例1所述的方法中第二设备所执行的操作。在具体实现时,存储器2030可以包括通信模块2031和处理模块2032,分别存储用于实现图6所示的通信单元310和处理单元320的功能。相应地,处理器2010具体通过执行通信模块2031中的指令实现通信单元310的功能、并通过执行处理模块2032中的指令实现通信单元310的功能。上述通信设备1000中的各单元所能够进行的各具体操作可参考上述图2-4B所示实施例中第二设备侧的对应操作的详细处理过程,此处不再逐一赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
Claims (18)
1.一种实现数据传输的方法,其特征在于,所述方法包括:
发送设备获取目标数据流的数据包;
所述发送设备通过与接收设备之间的至少两个物理链路发送所述数据包,其中,通过所述至少两个物理链路发送的所述数据包的序列号相同;所述数据包的序列号携带在所述数据包的数据链路层头部和网络层头部之间扩展的垫层头部中,且所述垫层头部对应于垫层协议。
2.如权利要求1所述的方法,其特征在于,所述发送设备通过与接收设备之间的至少两个物理链路发送所述数据包之前还包括,所述发送设备将所述序列号添加到所述数据包中。
3.如权利要求1所述的方法,其特征在于,所述数据包还携带所述目标数据流的流标识。
4.如权利要求1-3任意一项所述的方法,其特征在于,所述目标数据流由一个或多个预设业务的数据流组成。
5.如权利要求1-3任意一项所述的方法,其特征在于,所述目标数据流的五元组为预设五元组。
6.一种实现数据传输的方法,其特征在于,所述方法包括:
接收设备通过与发送设备之间的至少两个物理链路接收目标数据流的数据包,通过所述至少两个物理链路接收的所述目标数据流的每个数据包携带序列号;所述目标数据流的每个数据包的序列号携带在所述数据包的数据链路层头部和网络层头部之间扩展的垫层头部中,且所述垫层头部对应于垫层协议;
对于所述发送设备分别通过所述至少两个物理链路中的每个物理链路发送的所述目标数据流的序列号相同的数据包,所述接收设备利用先接收到的携带所述序列号的数据包组合所述目标数据流。
7.如权利要求6所述的方法,其特征在于,所述方法还包括,对于所述发送设备通过所述至少两个物理链路发送的所述目标数据流的序列号相同的数据包,所述接收设备丢弃后接收到的携带所述序列号的数据包。
8.如权利要求6或7所述的方法,其特征在于,所述发送设备通过所述至少两个物理链路发送的所述目标数据流的每个数据包还包括所述目标数据流的流标识;
所述方法还包括,所述接收设备将接收的数据包中携带所述目标数据流的流标识的数据包识别为所述目标数据流的数据包。
9.一种通信设备,其特征在于,所述通信设备包括获取单元和通信单元;
所述获取单元,用于获取目标数据流的数据包;
所述通信单元,用于通过与接收设备之间的至少两个物理链路发送所述数据包,其中,通过所述至少两个物理链路发送的所述数据包的序列号相同。
10.如权利要求9所述的通信设备,其特征在于,所述通信单元在通过与接收设备之间的至少两个物理链路发送所述数据包之前还用于将所述序列号添加到所述数据包中。
11.如权利要求9所述的通信设备,其特征在于,所述数据包还包括所述目标数据流的流标识。
12.如权利要求9-11任意一项所述的通信设备,其特征在于,所述目标数据流由一个或多个预设业务的数据流组成。
13.如权利要求9-11任意一项所述的通信设备,其特征在于,所述目标数据流的五元组为预设五元组。
14.一种通信设备,其特征在于,所述通信设备包括:通信单元和处理单元;
所述通信单元用于,通过与发送设备之间的至少两个物理链路接收目标数据流的数据包,通过所述至少两个物理链路接收的所述目标数据流的每个数据包携带序列号;
所述处理单元用于,对于所述发送设备分别通过所述至少两个物理链路中的每个物理链路发送的所述目标数据流的序列号相同的数据包,利用先接收到的携带所述序列号的数据包组合所述目标数据流。
15.如权利要求14所述的通信设备,其特征在于,所述处理单元还用于,对于所述发送设备通过所述至少两个物理链路发送的所述目标数据流的序列号相同的数据包,丢弃后接收到的携带所述序列号的数据包。
16.如权利要求14或15所述的通信设备,其特征在于,所述发送设备通过所述至少两个物理链路发送的所述目标数据流的每个数据包还包括所述目标数据流的流标识;
所述处理单元还用于,将接收的数据包中携带所述目标数据流的流标识的数据包识别为所述目标数据流的数据包。
17.一种实现数据传输的***,其特征在于,所述***包括发送设备和接收设备;
所述发送设备具体为如权利要求9-13任意一项所述的通信设备;
所述接收设备具体为如权利要求14-16任意一项所述的通信设备。
18.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-8任意一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811115534.3A CN110943935B (zh) | 2018-09-25 | 2018-09-25 | 一种实现数据传输的方法、装置和*** |
PCT/CN2019/105252 WO2020063338A1 (zh) | 2018-09-25 | 2019-09-11 | 一种实现数据传输的方法、装置和*** |
EP19866959.0A EP3846397B1 (en) | 2018-09-25 | 2019-09-11 | Method for implementing data transmission, apparatus, and system |
US17/211,077 US11502962B2 (en) | 2018-09-25 | 2021-03-24 | Method, apparatus, and system for implementing data transmission |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811115534.3A CN110943935B (zh) | 2018-09-25 | 2018-09-25 | 一种实现数据传输的方法、装置和*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110943935A CN110943935A (zh) | 2020-03-31 |
CN110943935B true CN110943935B (zh) | 2023-05-19 |
Family
ID=69904904
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811115534.3A Active CN110943935B (zh) | 2018-09-25 | 2018-09-25 | 一种实现数据传输的方法、装置和*** |
Country Status (4)
Country | Link |
---|---|
US (1) | US11502962B2 (zh) |
EP (1) | EP3846397B1 (zh) |
CN (1) | CN110943935B (zh) |
WO (1) | WO2020063338A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110943933B (zh) * | 2018-09-25 | 2023-09-01 | 华为技术有限公司 | 一种实现数据传输的方法、装置和*** |
WO2022047742A1 (en) * | 2020-09-04 | 2022-03-10 | Arris Enterprises Llc | Improve gaming performance for dual wi-fi device |
CN112383472A (zh) * | 2020-11-13 | 2021-02-19 | Oppo广东移动通信有限公司 | 网络传输方法、装置、存储介质及电子设备 |
CN114553969B (zh) * | 2020-11-20 | 2024-01-30 | 比亚迪股份有限公司 | 数据传输方法、电子设备及存储介质 |
CN113992607B (zh) * | 2021-09-09 | 2023-11-03 | 新华三信息安全技术有限公司 | 报文处理方法及装置 |
CN115460157A (zh) * | 2022-07-26 | 2022-12-09 | 亿航智能设备(广州)有限公司 | 一种多网卡融合通信方法及通信*** |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4703475A (en) * | 1985-12-04 | 1987-10-27 | American Telephone And Telegraph Company At&T Bell Laboratories | Data communication method and apparatus using multiple physical data links |
CN101686180A (zh) * | 2008-09-28 | 2010-03-31 | 华为技术有限公司 | 数据传输方法及网络节点和数据传输*** |
CN103618678A (zh) * | 2013-11-18 | 2014-03-05 | 北京星网锐捷网络技术有限公司 | 自适应多链路聚合的方法、装置及*** |
CN107959551A (zh) * | 2017-12-29 | 2018-04-24 | 河海大学常州校区 | 一种基于网络编码的无线传感器网络可靠数据传输方法 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6751746B1 (en) * | 2000-07-31 | 2004-06-15 | Cisco Technology, Inc. | Method and apparatus for uninterrupted packet transfer using replication over disjoint paths |
JP5915015B2 (ja) * | 2011-07-25 | 2016-05-11 | ソニー株式会社 | 通信装置及び通信方法、並びに通信システム |
CN104040932B (zh) * | 2012-01-17 | 2018-10-02 | 网络洞察力知识产权公司 | 一种网络通信冗余方法 |
JP5716712B2 (ja) * | 2012-07-24 | 2015-05-13 | 横河電機株式会社 | パケット転送装置及び方法 |
CN104426866B (zh) * | 2013-08-28 | 2018-12-14 | 华为技术有限公司 | 一种数据传输方法及装置 |
US9712442B2 (en) * | 2013-09-24 | 2017-07-18 | Broadcom Corporation | Efficient memory bandwidth utilization in a network device |
JP6197708B2 (ja) * | 2014-03-17 | 2017-09-20 | 富士通株式会社 | 動画像伝送システム、動画像符号化装置、動画像復号装置及び動画像符号化用コンピュータプログラムならびに動画像復号用コンピュータプログラム |
US9565594B2 (en) * | 2014-03-28 | 2017-02-07 | Qualcomm Incorporated | Link aggregation in wireless local area networks |
CN107370688B (zh) * | 2016-05-12 | 2022-09-27 | 中兴通讯股份有限公司 | 数据传输方法及装置 |
CN106411560A (zh) * | 2016-06-01 | 2017-02-15 | 深圳市永兴元科技有限公司 | 数据传输方法和装置 |
US10856203B2 (en) * | 2017-01-19 | 2020-12-01 | Qualcomm Incorporated | Signaling for link aggregation setup and reconfiguration |
KR102065137B1 (ko) * | 2017-03-10 | 2020-01-10 | 주식회사 케이티 | 버퍼 상태 리포트 전송 방법 및 그 장치 |
CN207166527U (zh) * | 2017-06-15 | 2018-03-30 | 南京审计大学金审学院 | 一种ofdm无线通讯装置 |
-
2018
- 2018-09-25 CN CN201811115534.3A patent/CN110943935B/zh active Active
-
2019
- 2019-09-11 EP EP19866959.0A patent/EP3846397B1/en active Active
- 2019-09-11 WO PCT/CN2019/105252 patent/WO2020063338A1/zh unknown
-
2021
- 2021-03-24 US US17/211,077 patent/US11502962B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4703475A (en) * | 1985-12-04 | 1987-10-27 | American Telephone And Telegraph Company At&T Bell Laboratories | Data communication method and apparatus using multiple physical data links |
CN101686180A (zh) * | 2008-09-28 | 2010-03-31 | 华为技术有限公司 | 数据传输方法及网络节点和数据传输*** |
CN103618678A (zh) * | 2013-11-18 | 2014-03-05 | 北京星网锐捷网络技术有限公司 | 自适应多链路聚合的方法、装置及*** |
CN107959551A (zh) * | 2017-12-29 | 2018-04-24 | 河海大学常州校区 | 一种基于网络编码的无线传感器网络可靠数据传输方法 |
Non-Patent Citations (2)
Title |
---|
"S4-AHM038 -Specification of media layer adaptatioin for speech".3GPP tsg_sa\WG4_CODEC.2006,1-9. * |
S2-043061 "Non-VLAN Packet Routing CR".3GPP tsg_sa\WG2_Arch.2004,(TSGS2_42_Sophia_Antipolis),1-6. * |
Also Published As
Publication number | Publication date |
---|---|
EP3846397B1 (en) | 2024-07-10 |
EP3846397A4 (en) | 2021-11-17 |
CN110943935A (zh) | 2020-03-31 |
WO2020063338A1 (zh) | 2020-04-02 |
US11502962B2 (en) | 2022-11-15 |
EP3846397A1 (en) | 2021-07-07 |
US20210211386A1 (en) | 2021-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110943935B (zh) | 一种实现数据传输的方法、装置和*** | |
CN110943933B (zh) | 一种实现数据传输的方法、装置和*** | |
US12010592B2 (en) | Sidelink communications method and apparatus | |
CN110351024B (zh) | 数据传输方法和装置 | |
JP6852096B2 (ja) | パケット処理方法、及びデバイス | |
US20200358886A1 (en) | Data Transmission Method, Apparatus, And System | |
CN103401773B (zh) | 一种实现板间通信的方法及网络设备 | |
CN110944358B (zh) | 数据传输方法和设备 | |
CN107079524B (zh) | 一种数据转发的方法和控制器 | |
KR102267116B1 (ko) | 패킷 전송 방법, 프록시 서버 및 컴퓨터 판독가능 저장 매체 | |
CN114079674B (zh) | 一种数据处理方法、用户面功能及装置 | |
CN107196834B (zh) | 报文处理方法及设备 | |
US20130336275A1 (en) | Mobile data comunication | |
KR20220089708A (ko) | 다중경로 통신의 실행 | |
US9847929B2 (en) | Cluster and forwarding method | |
CN109873763B (zh) | 一种通信方法及设备 | |
EP3324587B1 (en) | Multicast method, multicast relay device and system | |
WO2022002215A1 (zh) | 传输数据的方法和装置 | |
JP7379476B2 (ja) | ワイヤレスメッシュネットワークにおけるマルチバンド通信 | |
WO2017177438A1 (zh) | 一种控制信息的传输方法及装置 | |
CN115038138A (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 |