CN110944358B - 数据传输方法和设备 - Google Patents
数据传输方法和设备 Download PDFInfo
- Publication number
- CN110944358B CN110944358B CN201811117085.6A CN201811117085A CN110944358B CN 110944358 B CN110944358 B CN 110944358B CN 201811117085 A CN201811117085 A CN 201811117085A CN 110944358 B CN110944358 B CN 110944358B
- Authority
- CN
- China
- Prior art keywords
- message
- data channel
- data
- serial number
- packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 111
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000011156 evaluation Methods 0.000 claims description 61
- 238000012545 processing Methods 0.000 claims description 45
- 238000012790 confirmation Methods 0.000 claims description 23
- 238000004590 computer program Methods 0.000 claims description 20
- 238000010606 normalization Methods 0.000 claims description 9
- 230000000694 effects Effects 0.000 abstract description 20
- 238000004891 communication Methods 0.000 description 33
- 238000010586 diagram Methods 0.000 description 18
- 238000005516 engineering process Methods 0.000 description 9
- 101150081243 STA1 gene Proteins 0.000 description 7
- 101100161473 Arabidopsis thaliana ABCB25 gene Proteins 0.000 description 5
- 101100096893 Mus musculus Sult2a1 gene Proteins 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 3
- 238000005538 encapsulation Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 239000013307 optical fiber Substances 0.000 description 3
- 238000011144 upstream manufacturing Methods 0.000 description 3
- OVGWMUWIRHGGJP-WTODYLRWSA-N (z)-7-[(1r,3s,4s,5r)-3-[(e,3r)-3-hydroxyoct-1-enyl]-6-thiabicyclo[3.1.1]heptan-4-yl]hept-5-enoic acid Chemical compound OC(=O)CCC\C=C/C[C@H]1[C@H](/C=C/[C@H](O)CCCCC)C[C@H]2S[C@@H]1C2 OVGWMUWIRHGGJP-WTODYLRWSA-N 0.000 description 2
- 101100366889 Caenorhabditis elegans sta-2 gene Proteins 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- OVGWMUWIRHGGJP-WVDJAODQSA-N (z)-7-[(1s,3r,4r,5s)-3-[(e,3r)-3-hydroxyoct-1-enyl]-6-thiabicyclo[3.1.1]heptan-4-yl]hept-5-enoic acid Chemical compound OC(=O)CCC\C=C/C[C@@H]1[C@@H](/C=C/[C@H](O)CCCCC)C[C@@H]2S[C@H]1C2 OVGWMUWIRHGGJP-WVDJAODQSA-N 0.000 description 1
- 101000988961 Escherichia coli Heat-stable enterotoxin A2 Proteins 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Images
Classifications
-
- 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/08—Load balancing or load distribution
- H04W28/082—Load balancing or load distribution among bearers or channels
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6295—Queue scheduling characterised by scheduling criteria using multiple queues, one for each individual QoS, connection, flow or priority
-
- 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/10—Flow control between communication endpoints
- H04W28/14—Flow control between communication endpoints using intermediate storage
-
- 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/16—Multipoint routing
-
- 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/34—Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/56—Queue scheduling implementing delay-aware scheduling
-
- 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/0289—Congestion control
-
- 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]
Abstract
本申请实施例提供一种数据传输方法和设备。其中,数据传输方法包括:发送设备周期性获取第一报文序列号和第二报文序列号;其中,第一报文序列号为统计周期内接收设备通过第一数据通道接收到的属于第一数据流的报文分别对应的报文序列号中的最大值,第二报文序列号为统计周期内接收设备通过第二数据通道接收到的属于第一数据流的报文分别对应的报文序列号中的最大值,第一数据流的至少一个报文在第一数据通道上和第二数据通道上均进行发送,发送设备根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列。通过动态调整第一数据通道和第二数据通道的报文缓存队列中的至少一个,提升了数据传输的效率和效果。
Description
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种数据传输方法和设备。
背景技术
无线局域网络(Wireless Local Area Networks,WLAN)技术是一种常用的无线通信技术,广泛应用在手机、平板电脑、笔记本电脑等终端设备上。WLAN技术广泛使用的通信标准是电气电子工程师学会(Institute of Electrical and Electronics Engineers,IEEE)802.11协议标准。不同的协议标准支持不同的频段。比如,802.11g工作在2.4G频段,802.11ac工作在5G频段,802.11n可以工作在2.4G或5G频段。
目前,支持WLAN技术的通信设备可以包括多个WLAN芯片,通过不同的WLAN芯片可以同时发送或者接收数据。比如,通信设备包括两个WLAN芯片,一个WLAN芯片工作在2.4G频段,另一个WLAN芯片工作在5G频段。当通信双方的两条WLAN链路的信号质量很好,并且链路都比较空闲时,在两条链路上传输报文的时延都比较小,接收方会选择时延更小的报文,而丢弃另外一条链路上晚到的相同报文。当通信双方的两条WLAN链路中一条链路的信号比较差或者存在很大的干扰时,在该链路上传输报文的时延将会很大。在另外一条信号较好或者干扰较小的链路上传输报文的时延会较小。接收方会选择信号较好或者干扰较小的链路上的报文。
由于接收方始终选择时延小的链路上的报文,使得慢速链路中的无效报文增多,增加了网络拥塞,通过两条链路起不到很好的数据传输效果。
发明内容
本申请实施例提供一种数据传输方法和设备,提升了数据传输的效率和效果。
第一方面,本申请实施例提供一种数据传输方法,包括:发送设备周期性获取第一报文序列号和第二报文序列号;其中,第一报文序列号为统计周期内接收设备通过发送设备与接收设备之间的第一数据通道接收到的属于第一数据流的报文分别对应的报文序列号中的最大值,第二报文序列号为统计周期内接收设备通过发送设备与接收设备之间的第二数据通道接收到的属于第一数据流的报文分别对应的报文序列号中的最大值,第一数据流的至少一个报文在第一数据通道上和第二数据通道上均进行发送,报文序列号用于指示对应报文在第一数据流中的排列顺序;发送设备根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列。
通过第一方面提供的数据传输方法,通过两个数据通道传输同一个数据流的至少一个报文,周期性获取接收设备通过两个数据通道分别接收到的同一个数据流的报文的报文序列号的最大值,根据第一报文序列号和第二报文序列号,可以更新第一数据通道和第二数据通道的报文缓存队列中的至少一个。由于动态调整了数据通道的报文缓存队列,提升了数据传输的效率和效果,降低了数据传输时延。
可选的,在第一方面的一种可能的实施方式中,发送设备根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列,可以包括:若第一报文序列号与第二报文序列号之间的差值大于预设阈值,则发送设备根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列。
通过该可能的实施方式提供的数据传输方法,避免了频繁的更新数据通道的报文缓存队列,提升了数据传输效率和效果。
可选的,在第一方面的一种可能的实施方式中,发送设备根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列,可以包括:若第一报文序列号大于第二报文序列号,则发送设备在第二数据通道的报文缓存队列中,删除报文序列号小于或者等于第一报文序列号的第一数据流的报文。
通过该可能的实施方式提供的数据传输方法,可以删除慢速数据通道的报文缓存队列中的报文,使得两条数据通道强制对齐,避免了慢速数据通道中无效报文的发送,利用两条数据通道的同步发送,降低了报文传输时延。
可选的,在第一方面的一种可能的实施方式中,发送设备根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列,可以包括:若第一报文序列号大于第二报文序列号,且第二数据通道的报文缓存队列中存在目标报文,目标报文为发送设备在第一数据通道上尝试发送报文的次数达到预设最大重发次数的报文,则发送设备在第二数据通道的报文缓存队列中,删除除目标报文之外的,且报文序列号小于或者等于第一报文序列号的第一数据流的报文。
通过该可能的实施方式提供的数据传输方法,删除慢速数据通道的报文缓存队列中的报文时,保留快速数据通道传输失败的报文,使得该报文可以在慢速数据通道中继续发送,提升数据传输效率的同时降低了丢包率。
可选的,在第一方面的一种可能的实施方式中,发送设备周期性获取第一报文序列号和第二报文序列号,可以包括:针对第一数据通道和第二数据通道中的任一数据通道,在统计周期内,发送设备通过该数据通道接收接收设备发送的确认消息,该确认消息用于指示接收设备通过该数据通道接收到的报文;发送设备根据该确认消息获取指示接收到的报文的报文序列号;发送设备根据指示接收到的报文的报文序列号,获取第一报文序列号或第二报文序列号。
可选的,在第一方面的一种可能的实施方式中,还可以包括:发送设备根据该确认消息获取指示接收到的报文所属数据流的流标识;发送设备根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列,包括:在第一报文序列号对应的流标识与第二报文序列号对应的流标识相同时,根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列。
可选的,在第一方面的一种可能的实施方式中,第一数据通道为第一WLAN链路,第二数据通道为第二WLAN链路。
可选的,在第一方面的一种可能的实施方式中,还可以包括:发送设备获取待发送报文;若确定待发送报文在第一数据通道上和第二数据通道上均进行发送,则发送设备将待发送报文分别在第一数据通道和第二数据通道的报文缓存队列中排队。
可选的,在第一方面的一种可能的实施方式中,若在第一数据通道上和第二数据通道上均进行发送的待发送报文所属的数据流为一个,发送设备将待发送报文分别在第一数据通道和第二数据通道的报文缓存队列中排队,包括:发送设备设置待发送报文的优先级高于除待发送报文所属数据流之外的其他数据流的报文的优先级;发送设备根据待发送报文的优先级将待发送报文分别在第一数据通道和第二数据通道的报文缓存队列中排队。
通过该可能的实施方式提供的数据传输方法,通过设置唯一一个在两个数据通道中传输的数据流的报文的优先级为最高,该数据流的报文可以位于同一个队列中。便于后续更新数据通道的报文缓存队列,提升了队列调整效率,进而提升了数据传输效率和效果。
第二方面,本申请实施例提供一种数据传输方法,包括:发送设备周期性获取调整参考信息,调整参考信息用于指示发送设备通过发送设备与接收设备之间的两个数据通道的任一数据通道发送报文时的拥塞状态,或者用于指示发送设备向接收设备待发送的数据流的传输速率;发送设备根据调整参考信息调整至少一个数据通道的发送报文集合;其中,两个数据通道分别对应的发送报文集合的并集为第一报文集合,第一报文集合包括数据流的全部的待发送报文,两个数据通道分别对应的发送报文集合的交集非空。
通过该可能的实施方式提供的数据传输方法,通过周期性获取调整参考信息,可以获得数据发送情况。进而可以根据调整参考信息调整多发数据流在至少一个数据通道的发送报文集合。提升了数据传输的适应性、效率和效果。
可选的,在第二方面的一种可能的实施方式中,调整参考信息包括每个数据通道分别对应的评估值,评估值为下列中的任意一种:数据流对应的队列的队列利用率X;链路时延的归一化值Y;链路时延的归一化值Y用于指示链路时延与预设链路时延最大值之间的比值,链路时延为数据通道的链路时延、数据通道中数据流对应的队列的链路时延,或者数据通道中数据流的链路时延;α*X+β*Y;其中,α为队列利用率对应的权重值,β为链路时延的归一化值Y对应的权重值。
通过该可能的实施方式提供的数据传输方法,通过队列利用率和/或链路时延可以动态反映数据通道的拥塞状态。发送设备根据两个数据通道分别对应的队列利用率和/或链路时延等指标评估数据通道的拥塞状态,对于处于拥塞状态的数据通道,可以减少报文的发送,提升了数据传输的适应性、效率和效果。
可选的,在第二方面的一种可能的实施方式中,发送设备根据调整参考信息调整至少一个数据通道的发送报文集合,可以包括:针对两个数据通道分别对应的评估值中的任一评估值,若该评估值小于第一门限值,则发送设备调整该评估值对应的数据通道的发送报文集合为第一报文集合;若该评估值大于第一门限值,则发送设备根据该评估值调整该评估值对应的数据通道的发送报文集合。
可选的,在第二方面的一种可能的实施方式中,调整参考信息包括发送设备向接收设备待发送的数据流的传输速率,第一数据通道的发送报文集合为第一报文集合;发送设备根据调整参考信息调整至少一个数据通道的发送报文集合,包括:若调整参考信息小于第二门限值,则发送设备调整第二数据通道的发送报文集合为第一报文集合;若调整参考信息大于第二门限值,则发送设备根据第二门限值与调整参考信息的比值,调整第二数据通道的发送报文集合;其中,第二门限值为根据接收设备与发送设备之间针对第二数据通道的协商速率确定的。
通过该可能的实施方式提供的数据传输方法,可以确保快速数据通道上可以发送数据流的全部报文,只根据调整参考信息调整慢速数据通道的发送报文集合。提升了数据传输的适应性、效率和效果。
第三方面,本申请实施例提供发送设备,包括:获取模块,用于周期性获取第一报文序列号和第二报文序列号;其中,第一报文序列号为统计周期内接收设备通过发送设备与接收设备之间的第一数据通道接收到的属于第一数据流的报文分别对应的报文序列号中的最大值,第二报文序列号为统计周期内接收设备通过发送设备与接收设备之间的第二数据通道接收到的属于第一数据流的报文分别对应的报文序列号中的最大值,第一数据流的至少一个报文在第一数据通道上和第二数据通道上均进行发送,报文序列号用于指示对应报文在第一数据流中的排列顺序;处理模块,用于根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列。
可选的,在第三方面的一种可能的实施方式中,处理模块具体用于:若第一报文序列号与第二报文序列号之间的差值大于预设阈值,则根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列。
可选的,在第三方面的一种可能的实施方式中,处理模块具体用于:若第一报文序列号大于第二报文序列号,则在第二数据通道的报文缓存队列中,删除报文序列号小于或者等于第一报文序列号的第一数据流的报文。
可选的,在第三方面的一种可能的实施方式中,处理模块具体用于:若第一报文序列号大于第二报文序列号,且第二数据通道的报文缓存队列中存在目标报文,目标报文为在第一数据通道上尝试发送报文的次数达到预设最大重发次数的报文,则在第二数据通道的报文缓存队列中,删除除目标报文之外的,且报文序列号小于或者等于第一报文序列号的第一数据流的报文。
可选的,在第三方面的一种可能的实施方式中,获取模块具体用于:针对第一数据通道和第二数据通道中的任一数据通道,在统计周期内,通过该数据通道接收接收设备发送的确认消息,该确认消息用于指示接收设备通过该数据通道接收到的报文;根据该确认消息获取指示接收到的报文的报文序列号;根据指示接收到的报文的报文序列号,获取第一报文序列号或第二报文序列号。
可选的,在第三方面的一种可能的实施方式中,获取模块还用于:根据该确认消息获取指示接收到的报文所属数据流的流标识;处理模块具体用于:在第一报文序列号对应的流标识与第二报文序列号对应的流标识相同时,根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列。
可选的,在第三方面的一种可能的实施方式中,第一数据通道为第一WLAN链路,第二数据通道为第二WLAN链路。
可选的,在第三方面的一种可能的实施方式中,还包括接收模块;接收模块,用于获取待发送报文;处理模块还用于,若确定待发送报文在第一数据通道上和第二数据通道上均进行发送,则将待发送报文分别在第一数据通道和第二数据通道的报文缓存队列中排队。
可选的,在第三方面的一种可能的实施方式中,若在第一数据通道上和第二数据通道上均进行发送的待发送报文所属的数据流为一个,处理模块具体用于:设置待发送报文的优先级高于除待发送报文所属数据流之外的其他数据流的报文的优先级;根据待发送报文的优先级将待发送报文分别在第一数据通道和第二数据通道的报文缓存队列中排队。
第四方面,本申请实施例提供一种发送设备,包括:获取模块,用于周期性获取调整参考信息,调整参考信息用于指示发送设备通过发送设备与接收设备之间的两个数据通道的任一数据通道发送报文时的拥塞状态,或者用于指示发送设备向接收设备待发送的数据流的传输速率;处理模块,用于根据调整参考信息调整至少一个数据通道的发送报文集合;其中,两个数据通道分别对应的发送报文集合的并集为第一报文集合,第一报文集合包括数据流的全部的待发送报文,两个数据通道分别对应的发送报文集合的交集非空。
可选的,在第四方面的一种可能的实施方式中,调整参考信息包括每个数据通道分别对应的评估值,评估值为下列中的任意一种:数据流对应的队列的队列利用率X;链路时延的归一化值Y;链路时延的归一化值Y用于指示链路时延与预设链路时延最大值之间的比值,链路时延为数据通道的链路时延、数据通道中数据流对应的队列的链路时延,或者数据通道中数据流的链路时延;α*X+β*Y;其中,α为队列利用率对应的权重值,β为链路时延的归一化值Y对应的权重值。
可选的,在第四方面的一种可能的实施方式中,处理模块具体用于:针对两个数据通道分别对应的评估值中的任一评估值,若该评估值小于第一门限值,则调整该评估值对应的数据通道的发送报文集合为第一报文集合;若该评估值大于第一门限值,则根据该评估值调整该评估值对应的数据通道的发送报文集合。
可选的,在第四方面的一种可能的实施方式中,调整参考信息包括发送设备向接收设备待发送的数据流的传输速率,第一数据通道的发送报文集合为第一报文集合;处理模块具体用于:若调整参考信息小于第二门限值,则调整第二数据通道的发送报文集合为第一报文集合;若调整参考信息大于第二门限值,则根据第二门限值与调整参考信息的比值,调整第二数据通道的发送报文集合;其中,第二门限值为根据接收设备与发送设备之间针对第二数据通道的协商速率确定的。
第五方面,本申请实施例提供一种发送设备,该发送设备包括处理器、存储器和收发器。存储器用于存储指令,收发器用于和其他设备通信,处理器用于执行存储器中存储的指令,以使发送设备执行上述第一方面任一实施方式提供的数据传输方法。
第六方面,本申请实施例提供一种发送设备,该发送设备包括处理器、存储器和收发器。存储器用于存储指令,收发器用于和其他设备通信,处理器用于执行存储器中存储的指令,以使发送设备执行上述第二方面任一实施方式提供的数据传输方法。
第七方面,本申请实施例提供一种存储介质,包括:可读存储介质和计算机程序,所述计算机程序用于实现第一方面任一实施方式提供的数据传输方法。
第八方面,本申请实施例提供一种存储介质,包括:可读存储介质和计算机程序,所述计算机程序用于实现第二方面任一实施方式提供的数据传输方法。
第九方面,本申请实施例提供一种程序产品,该程序产品包括计算机程序(即执行指令),该计算机程序存储在可读存储介质中。处理器可以从可读存储介质读取该计算机程序,处理器执行该计算机程序用于执行上述第一方面任一实施方式提供的数据传输方法。
第十方面,本申请实施例提供一种程序产品,该程序产品包括计算机程序(即执行指令),该计算机程序存储在可读存储介质中。处理器可以从可读存储介质读取该计算机程序,处理器执行该计算机程序用于执行上述第二方面任一实施方式提供的数据传输方法。
本申请实施例提供一种数据传输方法和设备,包括:发送设备周期性获取第一报文序列号和第二报文序列号,发送设备根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列。由于两个数据通道传输同一个数据流的报文可能有快有慢,周期性获取接收设备通过两个数据通道分别接收到的同一个数据流的报文的报文序列号的最大值,可以动态调整数据通道的报文缓存队列,提升了数据传输的效率和效果。
附图说明
图1为本申请实施例适用的通信系统的架构图;
图2A为本申请实施例适用的一种应用场景的示意图;
图2B为本申请实施例适用的另一种应用场景的示意图;
图3为本申请实施例适用的HGW的硬件架构示意图;
图4为本申请实施例提供的报文缓冲队列的示意图;
图5为本申请实施例一提供的数据传输方法的流程图;
图6为本申请实施例二提供的数据传输方法的流程图;
图7为本申请实施例适用的AP的软件架构示意图;
图8为本申请实施例一提供的发送设备的结构示意图;
图9为本申请实施例二提供的发送设备的结构示意图;
图10为本申请实施例三提供的发送设备的结构示意图。
具体实施方式
图1为本申请实施例适用的通信系统的架构图。
如图1所示,通信系统可以包括发送设备100和接收设备200。发送设备100与接收设备200之间具有至少两个数据通道。本实施例对于数据通道的类型、数量、通信频段和遵循的通信协议不做限定。可选的,数据通道可以为WLAN链路,遵循的通信协议可以为电气电子工程师学会(Institute of Electrical and Electronics Engineers,IEEE)802.11协议。可选的,发送设备100与接收设备200可以针对数据通道协商通信速率。
示例性的,在图1中,数据通道可以为WLAN链路。数据通道的数量为3个。发送设备100包括WLAN接口A1、WLAN接口B1和WLAN接口C1。接收设备200包括WLAN接口A2、WLAN接口B2和WLAN接口C2。其中,WLAN接口A1与WLAN接口A2的通信频段和通信协议相同,组成数据通道A。相似的,WLAN接口B1与WLAN接口B2组成数据通道B,WLAN接口C1与WLAN接口C2组成数据通道C。可选的,WLAN接口A1和WLAN接口A2的通信频段可以为2.4G,通信协议可以为802.11g协议。WLAN接口B1和WLAN接口B2的通信频段可以为2.4G,通信协议可以为802.11n协议。WLAN接口C1和WLAN接口C2的通信频段可以为5G,通信协议可以为802.11ac协议。
在本申请实施例中,发送设备100可以向接收设备200发送至少一条数据流的报文。其中,存在至少一条数据流,该数据流的至少一个报文需要在至少两个数据通道中发送。在本申请实施例中,若数据流的所有报文只需要在一个数据通道中发送,该数据流可以称为单发数据流。若数据流的至少一个报文需要在至少两个数据通道中发送,该数据流可以称为多发数据流。对于多发数据流,至少两个数据通道分别对应的发送报文集合的并集为第一报文集合。第一报文集合包括该多发数据流的全部的待发送报文。至少两个数据通道分别对应的发送报文集合的交集非空。
示例性的,在图1中,发送设备100可以向接收设备200发送3条数据流,分别标记为数据流1、数据流2和数据流3。数据流1为单发数据流。数据流2和数据流3为多发数据流。对于数据流1,发送设备100可以通过数据通道A向接收设备200发送数据流1的报文。相应的,接收设备200可以通过数据通道A接收发送设备100发送的数据流1的报文。对于数据流2,发送设备100可以通过数据通道A、数据通道B和数据通道C向接收设备200分别发送数据流2的报文。相应的,接收设备200可以通过数据通道A、数据通道B和数据通道C分别接收发送设备100发送的数据流2的报文。对于数据流3,发送设备100可以通过数据通道B和数据通道C向接收设备200分别发送数据流3的报文。相应的,接收设备200可以通过数据通道B和数据通道C分别接收发送设备100发送的数据流3的报文。
示例性的,假设数据流3包括100个报文,依次标记为报文1~报文100。在一个示例中,数据通道C对应的发送报文集合包括报文1~报文100,数据通道B对应的发送报文集合包括报文1~报文100。在另一个示例中,数据通道C对应的发送报文集合包括报文1~报文100,数据通道B对应的发送报文集合包括报文1~报文50。在又一个示例中,数据通道C对应的发送报文集合包括报文1~报文90,数据通道B对应的发送报文集合包括报文80~报文100。
需要说明的是,在本申请实施例中,针对每个数据通道,“发送设备需要发送的报文”、“发送设备发送的报文或者已发送的报文”和“接收设备接收的报文”含义不同。
“发送设备需要发送的报文”是指该报文可以在数据通道的报文缓存队列中排队,等待发送设备通过该数据通道发送。但是,发送设备不一定将该报文发送出去,这与数据通道的实际状态相关。例如,数据通道的带宽、拥塞状态、干扰状态、信号质量状态等等。“发送设备发送的报文或者已发送的报文”是指发送设备通过数据通道已经发送的报文。“接收设备接收的报文”是指接收设备通过数据通道接收到的报文。发送设备发送的报文,接收设备可能接收到,也可能接收不到。
还以上述数据流3为例进行说明。
对于数据通道B,“发送设备需要发送的报文”可以为报文1~报文100,“发送设备发送的报文或者已发送的报文”可以为报文1~报文40,“接收设备接收的报文”可以为报文1~报文30。对于数据通道C,“发送设备需要发送的报文”可以为报文1~报文100,“发送设备发送的报文或者已发送的报文”可以为报文1~报文70,“接收设备接收的报文”可以为报文1~报文50、报文60~报文70。
需要说明的是,本申请实施例对于发送设备100、接收设备200的数量和类型不做限定。在一些实施例中,发送设备100和接收设备200也可以称为通信设备。
可选的,发送设备100或者接收设备200可以包括:家庭网关(Home Gateway,HGW)、接入点(Access Point,AP)、终端(Station,STA)以及其他具有无线连接功能的手机、平板电脑、手持设备、车载设备、可穿戴设备、计算设备,以及各种形式的用户设备(userequipment,UE)、移动台(mobile station,MS)及终端(terminal)等,本申请实施例不作限制。
示例性的,图2A为本申请实施例适用的一种应用场景的示意图。
如图2A所示,在家庭网络场景中,通信设备可以包括HGW/AP和STA。HGW/AP可以与服务器进行有线连接,例如铜线连接或者光纤连接,已使HGW/AP接入互联网。HGW/AP可以与STA进行无线连接,例如通过WiFi网络连接。HGW/AP和STA之间可以具有多个WLAN链路。
其中,HGW在上行方向可以通过数字用户线路(Digital Subscriber Line,DSL)、吉比特无源光网络(Gigabit Passive Optical Network,GPON)/以太网无源光网络(Ethernet Passive Optical Network,EPON)等技术接入互联网,在下行方向可以通过以太网、WiFi技术为STA提供网络接入。AP在上行方向可以通过以太网接入互联网,在下行方向可以通过以太网、WiFi技术为STA提供网络接入。
示例性的,图2B为本申请实施例适用的另一种应用场景的示意图。
如图2B所示,在家庭网络场景中,通信设备可以包括HGW、AP和STA。其中,HGW可以与服务器进行有线连接,以使HGW接入互联网。HGW和AP之间、AP和STA之间可以进行无线连接,例如通过WiFi网络连接。为了增加WiFi网络的覆盖范围,可以通过部署多个AP实现。HGW和AP之间、AP和STA之间均可以具有多个WLAN链路。
示例性的,本申请实施例还可以应用于企业场景的AP和STA之间,或者AP与AP之间。
下面以HGW为例,对本申请实施例提供的发送设备或者接收设备的硬件结构进行示例性说明。
图3为本申请实施例适用的HGW的硬件架构示意图。
如图3所示,HGW的硬件结构可以包括:主芯片31和内存32。还可以包括下列接口中的至少一种:光纤接口33、WiFi芯片34、1000M传输速率的以太网(Gigabit Ethernet,GE)接口35和铜线接口36。WiFi芯片34可以包括WiFi接口。WiFi接口341的通信频段可以为2.4G,WiFi接口342的通信频段可以为5G。
在图3中,HGW在上行方向可以通过光纤接口33利用GPON/EPON技术接入互联网,或者通过铜线接口36利用DSL技术接入互联网。HGW在下行方向可以通过WiFi接口341、WiFi接口342或者GE接口35为AP或者STA提供网络接入。可选的,主芯片31上可以集成主中央处理器(Central Processing Unit,CPU)和转发芯片。主CPU可以用于执行计算机程序(即执行指令),以实现报文的转发处理、HGW的设备管理等功能。转发芯片用于通过硬件执行报文的二层转发,提高了转发性能,减轻了主CPU的处理负担。内存32可以用于存储数据。所述数据可以包括计算机程序(即执行指令)。
需要说明的是,本实施例对于主芯片31、主CPU、转发芯片和WiFi芯片34的型号和实现方式不做限定。本实施例对于内存32的实现方式不做限定,例如,动态随机存取存储器(Dynamic Random Access Memory,DRAM)。本实施例对于光纤接口33、WiFi芯片34和GE接口35的数量不做限定。例如,GE接口可以为4个。
示例性的,本申请实施例适用的AP的硬件结构可以参考图3所示示例。
可选的,在图2A所示场景中,AP在上行方向可以通过GE接口接入互联网,在下行方向可以通过WiFi接口或者GE接口与STA通信。可选的,在图2B所示场景中,AP在上行方向可以通过WiFi接口或者GE接口与HGW通信,在下行方向可以通过WiFi接口或者GE接口与STA通信。
示例性的,本申请实施例适用的STA的硬件结构可以参考图3所示示例。
可选的,在图2A或者图2B所示场景中,STA可以采用WiFi接口或者GE接口与HGW或者AP通信。
下面,对本申请实施例涉及的数据发送方法进行说明。执行主体可以为发送设备。
示例性的,发送设备与接收设备之间具有2个WLAN链路,可以分别标记为第一WLAN链路和第二WLAN链路。第一WLAN链路的通信频段可以为2.4G,第二WLAN链路的通信频段可以为5G。
步骤1、获取待发送报文。
步骤2、若待发送报文需要在2个WLAN链路上均进行发送,则生成标识信息。
具体的,发送设备和接收设备可以通过人工配置或者控制消息的交互,确定多发数据流。对于多发数据流的报文,可以在2个WLAN链路上均进行发送。
可选的,可以通过待发送报文的五元组信息确定待发送报文是否需要在2个WLAN链路上均进行发送。
可选的,五元组信息可以包括:源IP地址、目的IP地址、协议号、源端口和目的端口。
可选的,标识信息可以包括报文序列号。其中,报文序列号用于指示报文在所属数据流中的排列顺序。
通过报文序列号,可以区分待发送报文是否需要在2个WLAN链路上均进行发送。
可选的,标识信息还可以包括流标识。流标识用于唯一区分不同的数据流。
具体的,对于多发数据流,发送设备每获取到该多发数据流的一个报文,就将报文序列号加1。例如,报文序列号当前已经标记到100。对于新获得的该多发数据流的报文,对应的报文序列号为101。
可选的,流标识可以根据待发送报文的五元组信息生成。
可选的,若待发送报文不需要在2个WLAN链路上均进行发送,也可以生成标识信息。
可选的,对于非多发数据流,标识信息中的流标识和报文序列号可以均为0。
可选的,标识信息可以携带在报文的描述符中。
所述描述符,是IP转发过程中的一种数据结构。获取报文后,可以把报文存储在内存中。描述符中携带报文的基本信息,在协议栈一层一层的处理。处理过程中可以不传输报文,只传输描述符。
步骤3、封装待发送报文。
可选的,对待发送报文可以进行通用路由封装(Generic RoutingEncapsulation,GRE)或者添加标签头。例如,在网络之间互连协议(Internet Protocol,IP)层和媒体访问控制(Media Access Control,MAC)层之间添加新的标签头。
可选的,封装后的待发送报文可以包括待发送报文的标识信息。
步骤4、将待发送报文在WLAN链路的报文缓存队列中排队。
具体的,报文缓冲队列用于缓存发送给接收设备的报文。若待发送报文不需要在2个WLAN链路上均进行发送,则将待发送报文在需要发送的WLAN链路的报文缓存队列中排队。若待发送报文需要在2个WLAN链路上均进行发送,则将待发送报文分别在2个WLAN链路的报文缓存队列中排队。
下面参照图4对报文缓存队列进行示例性说明。假设,发送设备为AP,接收设备为STA。
AP可以与至少一个STA通信。针对每个WLAN链路和每个STA,AP中管理有与WLAN链路和STA对应的报文缓冲队列。
例如,AP与STA1和STA2通信。则AP管理的报文缓冲队列可以包括:与第一WLAN链路和STA1对应的报文缓冲队列、与第一WLAN链路和STA2对应的报文缓冲队列、与第二WLAN链路和STA1对应的报文缓冲队列和与第二WLAN链路和STA2对应的报文缓冲队列。
图4为本申请实施例提供的报文缓冲队列的示意图,示出了针对一个WLAN链路和不同STA的报文缓冲队列。
如图4所示,AP可以与STA 1~STA N通信。对于每个STA,AP可以维护若干个不同优先级的队列,例如,队列1~队列n。AP会根据报文的优先级将报文缓存到不同的队列中。
可选的,发送设备可以设置多发数据流的报文的优先级高于非多发数据流的报文的优先级。
可选的,不同的多发数据流的报文的优先级不同。
通过将多发数据流的报文的优先级设置为较高,便于在报文缓冲队列中排队,易于区分多发数据流和非多发数据流分别对应的队列,便于队列的管理。
例如,AP向STA 1发送3条数据流。其中,数据流1为单发数据流。数据流2和数据流3为多发数据流。在一个示例中,数据流2和数据流3的报文的优先级相同,均高于数据流1的报文的优先级。在另一个示例中,数据流2的报文的优先级高于数据流3的报文的优先级,均高于数据流1的报文的优先级。
例如,AP向STA 1发送3条数据流。其中,数据流1和数据流2为单发数据流。数据流3为多发数据流。在一个示例中,数据流3的报文的优先级均高于数据流1和数据流2的报文的优先级。
需要说明的是,将待发送报文在WLAN链路的报文缓存队列中排队,可以根据报文的描述符的优先级,将待发送报文在WLAN链路的报文缓存队列中排队。
可选的,发送设备可以设置多发数据流的报文的描述符的优先级高于非多发数据流的报文的描述符的优先级。
可选的,不同的多发数据流的报文的描述符的优先级不同。
设置报文的优先级与设置报文的描述符的优先级相似,可以参见上述描述,此处不再赘述。
步骤5、根据2个WLAN链路的报文缓存队列分别通过2个WLAN链路发送报文。
具体的,可以根据802.11协议进行802.11帧格式封装、报文聚合等,最后通过硬件发送给接收设备。其中,根据802.11协议进行802.11帧格式封装后,每个报文具有根据802.11协议生成的序号,可以称为WLAN帧序列号。对于多发数据流的报文,报文的WLAN帧序列号与报文序列号之间具有一定的对应关系。
下面,对本申请实施例涉及的数据接收方法进行说明。执行主体可以为接收设备。
示例性的,发送设备与接收设备之间具有2个WLAN链路,可以分别标记为第一WLAN链路和第二WLAN链路。第一WLAN链路的通信频段可以为2.4G,第二WLAN链路的通信频段可以为5G。
步骤1、分别通过2个WLAN链路接收发送设备发送的报文,并分别通过2个WLAN链路向发送设备发送反馈消息。
具体的,接收设备在接收到报文后,向发送设备发送反馈消息。发送设备根据反馈消息可以确定接收设备接收到了哪些报文或者没有接收到哪些报文。对于没有接收到的报文,发送设备可以主动发起重传。如果报文的重传次数超过预设的最大重发次数,则发送设备可以放弃发送该报文,造成丢包。
可选的,反馈消息可以包括确认消息。所述确认消息用于指示接收设备是否接收到单个报文。
可选的,确认消息可以包括确认指示(acknowlegde,ACK)。
可选的,反馈消息可以包括组确认消息。所述组确认消息用于指示接收设备已经接收到多个报文中的哪些报文。
可选的,组确认消息可以包括起始WLAN帧序列号和K比特的指示信息,K为大于1的整数。起始WLAN帧序列号为一个报文的WLAN帧序列号。K比特的指示信息中的每个比特,用于分别指示接收设备是否接收到以该报文为起始的在排列顺序上连续的K个报文。
步骤2、对报文解封装。若报文在2个WLAN链路上均进行了发送,对于同一报文,只接收最先达到的报文,丢弃另一条WLAN链路上晚到达的报文。
可选的,对报文解封装,可以获得报文的报文序列号。
根据报文的报文序列号,可以确定报文是否在2个WLAN链路上均进行了发送。
可选的,对报文解封装后,可以根据报文的五元组信息生成报文的流标识。
需要说明的是,发送设备和接收设备根据报文的五元组信息生成报文的流标识,方法可以相同。
本申请实施例提供的数据传输方法,旨在解决目前通过两条链路起不到很好的数据传输效果的技术问题。
下面以具体实施例对本申请的技术方案以及本申请的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
示例性的,本申请各实施例中,以发送设备与接收设备之间具有两个数据通道为例进行说明。可选的,第一数据通道可以为第一WLAN链路,第二数据通道可以为第二WLAN链路。
图5为本申请实施例一提供的数据传输方法的流程图。本实施例提供的数据传输方法,执行主体可以为发送设备。如图5所示,本实施例提供的数据传输方法,可以包括:
S501、发送设备周期性获取第一报文序列号和第二报文序列号。
其中,第一报文序列号为统计周期内接收设备通过发送设备与接收设备之间的第一数据通道接收到的属于第一数据流的报文分别对应的报文序列号中的最大值,第二报文序列号为统计周期内接收设备通过发送设备与接收设备之间的第二数据通道接收到的属于第一数据流的报文分别对应的报文序列号中的最大值,第一数据流的至少一个报文在第一数据通道上和第二数据通道上均进行发送,报文序列号用于指示对应报文在第一数据流中的排列顺序。
具体的,发送设备与接收设备之间具有2个数据通道,分别称为第一数据通道和第二数据通道。发送设备分别通过第一数据通道和第二数据通道向接收设备发送第一数据流的报文。在统计周期内,接收设备通过第一数据通道接收到第一数据流的至少一个报文。其中,报文序列号的最大值称为第一报文序列号。接收设备通过第二数据通道接收到第一数据流的至少一个报文。其中,报文序列号的最大值称为第二报文序列号。
由于两个数据通道的带宽、拥塞情况、干扰情况、协商通信速率等因素的不同,第一报文序列号和第二报文序列号可能不同。如果第一报文序列号大于第二报文序列号,说明通过第一数据通道传输第一数据流的报文的速度较快。此时,第一数据通道可以称为快速数据通道,第二数据通道可以称为慢速数据通道。如果第二报文序列号大于第一报文序列号,说明通过第二数据通道传输第一数据流的报文的速度较快。此时,第二数据通道可以称为快速数据通道,第一数据通道可以称为慢速数据通道。
可选的,第一数据流的所有报文均需要在第一数据通道上和第二数据通道上进行发送。
下面通过示例进行说明。
假设,第一数据流的报文的报文序列号顺序标记为:1,2,…,100,101,…。第一数据流的所有报文均需要在第一数据通道上和第二数据通道上进行发送。在当前的统计周期中,接收设备通过第一数据通道接收到报文10~15,17~20,通过第二数据通道接收到报文15~31,35~40。此时,第一报文序列号为20,第二报文序列号为40。通过第二数据通道传输第一数据流的报文的速度较快。
需要说明的是,本实施例对于统计周期的具体取值不做限定。
S502、发送设备根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列。
本实施例提供的数据传输方法,通过两个数据通道传输同一个数据流的报文可能有快有慢,周期性获取接收设备通过两个数据通道分别接收到的同一个数据流的报文的报文序列号的最大值,根据第一报文序列号和第二报文序列号,可以更新第一数据通道和第二数据通道的报文缓存队列中的至少一个。通过动态调整数据通道的报文缓存队列,提升了数据传输的效率和效果,降低了数据传输时延。
可选的,在一种实现方式中,S502,发送设备根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列,可以包括:
若第一报文序列号与第二报文序列号之间的差值大于预设阈值,则发送设备根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列。
具体的,第一报文序列号与第二报文序列号之间的差值是指绝对值。若第一报文序列号大于第二报文序列号,则判断第一报文序列号减去第二报文序列号的值是否大于预设阈值。若第一报文序列号小于第二报文序列号,则判断第二报文序列号减去第一报文序列号的值是否大于预设阈值。当第一报文序列号与第二报文序列号之间的差值足够大,已经大于预设阈值时,可以更新第一数据通道和第二数据通道的报文缓存队列中的至少一个。
通过设置预设阈值,避免了频繁的更新数据通道的报文缓存队列,提升了数据传输效率和效果。
需要说明的是,本实施例对于预设阈值的具体取值不做限定。
可选的,在另一种实现方式中,S502,发送设备根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列,可以包括:
若第一报文序列号大于第二报文序列号,则发送设备在第二数据通道的报文缓存队列中,删除报文序列号小于或者等于第一报文序列号的第一数据流的报文。
若第二报文序列号大于第一报文序列号,则发送设备在第一数据通道的报文缓存队列中,删除报文序列号小于或者等于第二报文序列号的第一数据流的报文。
具体的,对于慢速数据通道,该数据通道的报文缓存队列中部分未发送的报文,接收设备通过另一个快速数据通道已经接收到了。因此,可以删除慢速数据通道的报文缓存队列中的报文,使得两条数据通道强制对齐,避免了慢速数据通道中无效报文的发送,利用两条数据通道的同步发送,降低了报文传输时延。
可选的,在又一种实现方式中,S502,发送设备根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列,可以包括:
若第一报文序列号大于第二报文序列号,且第二数据通道的报文缓存队列中存在目标报文,目标报文为发送设备在第一数据通道上尝试发送报文的次数达到预设最大重发次数的报文,则发送设备在第二数据通道的报文缓存队列中,删除除目标报文之外的,且报文序列号小于或者等于第一报文序列号的第一数据流的报文。
若第二报文序列号大于第一报文序列号,且第一数据通道的报文缓存队列中存在目标报文,目标报文为发送设备在第二数据通道上尝试发送报文的次数达到预设最大重发次数的报文,则发送设备在第一数据通道的报文缓存队列中,删除除目标报文之外的,且报文序列号小于或者等于第二报文序列号的第一数据流的报文。
具体的,接收设备通过数据通道接收发送设备发送的报文,可能接收到,也可能没有接收到。对于通过快速数据通道没有接收到的报文,发送设备可以通过快速数据通道重新发送该报文。当发送设备通过快速数据通道发送该报文的次数达到预设最大重发次数时,该报文通过快速数据通道传输失败。在该场景中,删除慢速数据通道的报文缓存队列中的报文时,保留快速数据通道传输失败的报文,使得该报文可以在慢速数据通道中继续发送,提升数据传输效率的同时降低了丢包率。
需要说明的是,在本实施例中,比较第一报文序列号和第二报文序列号时,需要注意序列号翻转的问题。
具体的,报文序列号通常采用预设二进制长度表示,例如,16bit。传输一段时间后,报文序列号可能发生翻转,例如从0xFFFF翻转为0。此时,报文序列号的数值会突然产生跳变。因此,在比较第一报文序列号和第二报文序列号时,需要确定是否发生序列号翻转。
例如,在上一个统计周期,第一报文序列号和第二报文序列号分别为0xFFF0和0xFFD0。在当前的统计周期,第一报文序列号和第二报文序列号分别为0x0012和0xFFF2。由于第一报文序列号的取值发生跳变,因此,在比较第一报文序列号和第二报文序列号时,第一报文序列号实际为0x0012+0xFFFF。
可选的,S501,发送设备周期性获取第一报文序列号和第二报文序列号,可以包括:
针对第一数据通道和第二数据通道中的任一数据通道,在统计周期内,发送设备通过该数据通道接收接收设备发送的确认消息,该确认消息用于指示接收设备通过该数据通道接收到的报文。
发送设备根据该确认消息获取指示接收到的报文的报文序列号。
发送设备根据指示接收到的报文的报文序列号,获取第一报文序列号或第二报文序列号。
需要说明的是,这里的“确认消息”与本申请上述数据接收方法中的“反馈消息”含义相同。
其中,确认消息的实现方式不同,根据确认消息获取报文序列号的方式不同。
可选的,在一种实现方式中,确认消息可以为组确认消息。组确认消息可以包括起始WLAN帧序列号和K比特的指示信息。
其中,关于确认消息和组确认消息可以参见本申请数据接收方法中的相关描述,此处不再赘述。
发送设备根据该确认消息获取指示接收到的报文的报文序列号,可以包括:
发送设备根据报文的WLAN帧序列号获取报文的报文序列号。
具体的,报文的WLAN帧序列号为根据802.11协议确定的802.11帧中的序号。报文的WLAN帧序列号与报文的报文序列号之间具有一定的对应关系。发送设备存储有该对应关系。因此,发送设备可以根据报文的WLAN帧序列号获得报文的报文序列号。
可选的,本实施例提供的数据传输方法,还可以包括:
发送设备根据该确认消息获取指示接收到的报文所属数据流的流标识。
发送设备根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列,可以包括:
在第一报文序列号对应的流标识与第二报文序列号对应的流标识相同时,根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列。
具体的,接收设备通过数据通道接收报文,这些报文可能属于不同的数据流。发送设备根据确认消息可以获取同一个数据流的报文序列号。其中,不同的数据流通过流标识进行区分。当第一报文序列号对应的流标识与第二报文序列号对应的流标识相同,且为第一数据流的流标识时,发送设备根据第一报文序列号和第二报文序列号,更新第一数据通道和第二数据通道的报文缓存队列中的至少一个。
可选的,本实施例提供的数据传输方法,还可以包括:
发送设备获取待发送报文。
若确定待发送报文在第一数据通道上和第二数据通道上均进行发送,则发送设备将待发送报文分别在第一数据通道和第二数据通道的报文缓存队列中排队。
具体的,发送设备持续获取待发送报文。对于每个待发送报文,发送设备需要判断该报文是否需要在第一数据通道和第二数据通道上均进行发送。对于需要在第一数据通道和第二数据通道上均进行发送的报文,发送设备将该报文分别在第一数据通道和第二数据通道的报文缓存队列中排队。
可选的,若在第一数据通道上和第二数据通道上均进行发送的待发送报文所属的数据流为一个,发送设备将待发送报文分别在第一数据通道和第二数据通道的报文缓存队列中排队,可以包括:
发送设备设置待发送报文的优先级高于除待发送报文所属数据流之外的其他数据流的报文的优先级。
发送设备根据待发送报文的优先级将待发送报文分别在第一数据通道和第二数据通道的报文缓存队列中排队。
具体的,当多发数据流的数量为一个时,可以将该数据流的报文的优先级设置为最高。这样,将该数据流的报文在报文缓存队列中排队时,由于优先级最高,该数据流的报文将位于同一个队列中。便于后续更新数据通道的报文缓存队列,提升了队列调整效率,进而提升了数据传输效率和效果。
本实施例提供一种数据传输方法,包括:发送设备周期性获取第一报文序列号和第二报文序列号,发送设备根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列。本实施例提供的数据传输方法,根据第一报文序列号和第二报文序列号,可以动态调整第一数据通道和第二数据通道的报文缓存队列中的至少一个,提升了数据传输的效率和效果,降低了数据传输时延。
图6为本申请实施例二提供的数据传输方法的流程图。本实施例提供的数据传输方法,执行主体可以为发送设备,可以调整多发数据流在数据通道上的报文发送集合。本实施例不限定多发数据流的数量。其中,任意一个多发数据流均可以称为第一数据流。如图6所示,本实施例提供的数据传输方法,可以包括:
S601、发送设备周期性获取调整参考信息。
其中,调整参考信息用于指示发送设备通过发送设备与接收设备之间的两个数据通道的任一数据通道发送报文时的拥塞状态,或者用于指示发送设备向接收设备发送的第一数据流的传输速率。
具体的,在数据传输过程中,由于数据通道的拥塞情况、干扰情况、信号质量情况以及向接收设备发送第一数据流的待发送业务量是实时变化的,通过周期性获取调整参考信息,可以实时获取数据发送情况,以便及时调整数据通道上的数据发送量。
其中,在一种实现方式中,调整参考信息可以指示数据通道的拥塞状态。数据通道越拥塞,发送时延越大。
在另一种实现方式中,调整参考信息可以指示向接收设备发送的第一数据流的传输速率。可选的,发送设备向接收设备发送的第一数据流的传输速率,可以包括:统计周期内发送设备从上游设备接收到的针对接收设备的第一数据流的平均速率,或者,统计周期内发送设备向接收设备发送的第一数据流的平均速率。比如,如图2A所示,调整参考信息可以为HGW/AP从服务器接收到的针对不同STA的第一数据流的平均速率。平均速率越大,说明针对该STA和第一数据流需要发送给接收设备的数据量越大。
需要说明的是,本实施例对于获取调整参考信息的周期的具体取值不做限定。例如,10ms。
S602、发送设备根据调整参考信息调整至少一个数据通道针对第一数据流的发送报文集合。
其中,两个数据通道分别对应的发送报文集合的并集为第一报文集合,第一报文集合包括第一数据流的全部的待发送报文,两个数据通道分别对应的发送报文集合的交集非空。
具体的,对于多发数据流,可以根据调整参考信息调整该多发数据流在至少一个数据通道针对多发数据流的发送报文集合。在调整过程中,通过两个数据通道可以发送多发数据流的全部报文。并且,多发数据流的至少一个报文需要在两个数据通道中均进行发送。
本实施例提供的数据传输方法,通过周期性获取调整参考信息,可以获得数据发送情况。进而可以根据调整参考信息调整多发数据流在至少一个数据通道的发送报文集合。提升了数据传输的适应性、效率和效果。
可选的,在一种实现方式中,调整参考信息可以包括每个数据通道分别对应的评估值。评估值可以为下列中的任意一种:
第一数据流对应的队列的队列利用率X。
链路时延的归一化值Y。链路时延的归一化值Y用于指示链路时延与预设链路时延最大值之间的比值,链路时延为数据通道的链路时延、数据通道中第一数据流对应的队列的链路时延,或者数据通道中第一数据流的链路时延。
α*X+β*Y。其中,α为队列利用率对应的权重值,β为链路时延的归一化值Y对应的权重值。
具体的,当数据通道受到空口干扰、信号变差等原因造成链路拥塞时,队列利用率和链路时延都会变大。这些指标可以动态反映数据通道的拥塞状态。发送设备可以根据两个数据通道分别对应的队列利用率和/或链路时延等指标评估数据通道的拥塞状态,对于处于拥塞状态的数据通道,可以减少报文的发送。
其中,队列利用率X是针对多发数据流对应的队列进行统计的。比如,如图4所示,以STA 1为例。假如多发数据流对应的队列为队列1,则评估值为队列1的队列利用率。
其中,链路时延可以针对数据通道、多发数据流或者多发数据流对应的队列进行统计。比如,如图4所示,以第一数据通道和STA 1为例。假如多发数据流A对应的队列为队列1。则,链路时延可以为第一数据通道的链路时延、第一数据通道中多发数据流A的链路时延,或者是第一数据通道中队列1的链路时延。
其中,链路时延的归一化值Y可以为链路时延与预设链路时延最大值之间的比值。比如,预设链路时延最大值为100ms。链路时延用Z表示。若0≤Z≤100ms,则Y=(Z/100ms)*100%。若Z>100ms,则Y=100%。
需要说明的是,本实施例对于预设链路时延、α和β的具体取值不做限定。
可见,X、Y、α*X+β*Y为0到100%之间的数值。
可选的,S602中,发送设备根据调整参考信息调整至少一个数据通道针对第一数据流的发送报文集合,可以包括:
针对两个数据通道分别对应的评估值中的任一评估值,若该评估值小于第一门限值,则发送设备调整该评估值对应的数据通道的发送报文集合为第一报文集合。
若该评估值大于第一门限值,则发送设备根据该评估值调整该评估值对应的数据通道的发送报文集合。
具体的,对于每个数据通道,如果该数据通道对应的评估值小于第一门限值,说明该数据通道不拥塞,可以在该数据通道上发送第一数据流的全部报文。如果该数据通道对应的评估值大于第一门限值,说明该数据通道拥塞。由于数据通道对应的评估值位于0到100%之间,可以根据数据通道对应的评估值按比例调整数据通道的发送报文集合。
比如,数据通道对应的评估值大于第一门限值,该评估值为30%。则可以调整该数据通道的发送报文集合与第一报文集合的比例为30%。即,发送第一数据流的全部报文的30%。假设,第一数据流的报文为100个,依次标记为报文1~报文30。则,通过该数据通道可以发送报文1~30,或者报文71-100,或者报文51-80,等等。
需要说明的是,本实施例对于第一门限值的具体取值不做限定。
可选的,S602中,发送设备根据调整参考信息调整至少一个数据通道针对第一数据流的发送报文集合,还可以包括:
调整其中一个数据通道的发送报文集合为第一报文集合。
在该种实现方式中,可以确保在一个数据通道上可以发送第一数据流的全部报文。通常,该数据通道可以为传输报文速度较快的数据通道。
可选的,在另一种实现方式中,调整参考信息可以包括发送设备向接收设备发送的第一数据流的传输速率。
在该种实现方式中,调整参考信息可以反映针对接收设备的第一数据流的待发送业务量的情况,是否发生突发业务流量。
可选的,S602中,发送设备根据调整参考信息调整至少一个数据通道针对第一数据流的发送报文集合,可以包括:
发送设备调整第一数据通道的发送报文集合为第一报文集合。
可选的,S602中,发送设备根据调整参考信息调整至少一个数据通道针对第一数据流的发送报文集合,可以包括:
若传输速率小于第二门限值,则发送设备调整第二数据通道的发送报文集合为第一报文集合。
若传输速率大于第二门限值,则发送设备根据第二门限值与调整参考信息的比值,调整第二数据通道的发送报文集合。
其中,第二门限值为根据接收设备与发送设备之间针对第二数据通道的协商速率确定的。
在该种实现方式中,发送设备与接收设备之间的两个数据通道可以为第一数据通道和第二数据通道。可以确保其中一个数据通道上(第一数据通道)发送第一数据流的全部报文,根据调整参考信息调整另一个数据通道(第二数据通道)的发送报文集合。可选的,若第一数据通道的报文传输速率较快,若第二数据通道的报文传输速率较慢,则可以确保快速数据通道上可以发送第一数据流的全部报文,只根据调整参考信息调整慢速数据通道的发送报文集合。当传输速率小于第二门限值时,说明没有发生突发数据流。发送设备可以在慢速数据通道上发送第一数据流的全部报文。当传输速率大于第二门限值时,说明发生了突发数据流。发送设备可以根据调整参考信息按比例调整慢速数据通道的发送报文集合。该比例为调整参考信息与第二门限值之间的比值。
可选的,第二门限值小于或者等于接收设备与发送设备之间针对第二数据通道的协商速率。
需要说明的是,本实施例对于第二门限值的具体取值不做限定。
例如,第二数据通道的协商速率为50Mbps/s,第二门限值等于该协商速率,也为50Mbps/s。发送设备向接收设备发送的第一数据流的传输速率为100Mbps/s。则,发送设备可以调整第二数据通道的发送报文集合为第一报文集合的50%。即,通过第二数据通道发送第一数据流的一半的报文。
本实施例提供一种数据传输方法,包括:发送设备周期性获取调整参考信息,发送设备根据调整参考信息调整至少一个数据通道针对第一数据流的发送报文集合。本实施例提供的数据传输方法,根据调整参考信息调整多发数据流在至少一个数据通道的发送报文集合,提升了数据传输的适应性、效率和效果。
下面以AP为例,对本申请实施例提供的发送设备或者接收设备的软件结构进行示例性说明。
图7为本申请实施例适用的AP的软件架构示意图。以WLAN技术为例进行说明。
如图7所示,AP的软件结构可以包括协议栈711和WLAN驱动模块。其中,协议栈711运行于主CPU71上。WLAN驱动模块可以包括运行于主CPU71上的WLAN驱动模块712。可选的,WLAN驱动模块还可以包括运行于WiFi芯片上的WLAN驱动模块。例如,WiFi芯片72中的WLAN驱动模块721,WiFi芯片73中的WLAN驱动模块731。
协议栈711可以用于接收上行设备(例如HGW)发送的报文,并将报文转发给WLAN驱动模块。WLAN驱动模块可以用于按照802.11协议对报文进行处理,并最终通过WLAN接口722和/或WLAN接口732发送给下行设备(例如STA)。其中,WLAN驱动模块主要在主CPU71上运行,即WLAN驱动模块712。但是,为了减轻主CPU71的处理负担,WiFi芯片上也可以设置WLAN驱动模块,即,WLAN驱动模块721和WLAN驱动模块731。可以将一部分WLAN驱动功能(如帧聚合,MAC层确认报文的接收处理,速率控制等)卸载到WiFi芯片上执行。
需要说明的是,若WiFi芯片上设置WLAN驱动模块,通常,WLAN驱动模块721和WLAN驱动模块731由于通信频段或其他原因无法直接通信。此时,WLAN驱动模块721和WLAN驱动模块731之间的通信需要通过主CPU71上的WLAN驱动模块712进行中转。
可选的,主CPU71与WiFi芯片之间通过高速串行计算机扩展总线标准(peripheralcomponent interconnect express,PCIE)接口连接。
需要说明的是,本实施例对于WiFi芯片的数量不做限定。
图8为本申请实施例一提供的发送设备的结构示意图。本实施例提供的发送设备,用于执行图5所示实施例提供的数据传输方法。如图8所示,本实施例提供的发送设备,可以包括:
获取模块81,用于周期性获取第一报文序列号和第二报文序列号;其中,第一报文序列号为统计周期内接收设备通过发送设备与接收设备之间的第一数据通道接收到的属于第一数据流的报文分别对应的报文序列号中的最大值,第二报文序列号为统计周期内接收设备通过发送设备与接收设备之间的第二数据通道接收到的属于第一数据流的报文分别对应的报文序列号中的最大值,第一数据流的至少一个报文在第一数据通道上和第二数据通道上均进行发送,报文序列号用于指示对应报文在第一数据流中的排列顺序;
处理模块82,用于根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列。
可选的,处理模块82具体用于:
若第一报文序列号与第二报文序列号之间的差值大于预设阈值,则根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列。
可选的,处理模块82具体用于:
若第一报文序列号大于第二报文序列号,则在第二数据通道的报文缓存队列中,删除报文序列号小于或者等于第一报文序列号的第一数据流的报文。
可选的,处理模块82具体用于:
若第一报文序列号大于第二报文序列号,且第二数据通道的报文缓存队列中存在目标报文,目标报文为在第一数据通道上尝试发送报文的次数达到预设最大重发次数的报文,则在第二数据通道的报文缓存队列中,删除除目标报文之外的,且报文序列号小于或者等于第一报文序列号的第一数据流的报文。
可选的,获取模块81具体用于:
针对第一数据通道和第二数据通道中的任一数据通道,在统计周期内,通过该数据通道接收接收设备发送的确认消息,该确认消息用于指示接收设备通过该数据通道接收到的报文;
根据该确认消息获取指示接收到的报文的报文序列号;
根据指示接收到的报文的报文序列号,获取第一报文序列号或第二报文序列号。
可选的,获取模块81还用于:
根据该确认消息获取指示接收到的报文所属数据流的流标识;
处理模块82具体用于:
在第一报文序列号对应的流标识与第二报文序列号对应的流标识相同时,根据第一报文序列号和第二报文序列号,更新第一数据通道和/或第二数据通道的报文缓存队列。
可选的,第一数据通道为第一WLAN链路,第二数据通道为第二WLAN链路。
可选的,还包括接收模块83;
接收模块83,用于获取待发送报文;
处理模块82还用于,若确定待发送报文在第一数据通道上和第二数据通道上均进行发送,则将待发送报文分别在第一数据通道和第二数据通道的报文缓存队列中排队。
可选的,若在第一数据通道上和第二数据通道上均进行发送的待发送报文所属的数据流为一个,处理模块82具体用于:
设置待发送报文的优先级高于除待发送报文所属数据流之外的其他数据流的报文的优先级;
根据待发送报文的优先级将待发送报文分别在第一数据通道和第二数据通道的报文缓存队列中排队。
需要说明的是,结合图7和图8,本实施例中的获取模块81、处理模块82可以为图7中的WLAN驱动模块712、驱动模块721和驱动模块731的任意一个。接收模块83可以为图7中的协议栈711。
本实施例提供的发送设备,用于执行图5所示实施例提供的数据传输方法,其技术原理和技术效果类似,此处不再赘述。
图9为本申请实施例二提供的发送设备的结构示意图。本实施例提供的发送设备,用于执行图6所示实施例提供的数据传输方法。如图9所示,本实施例提供的发送设备,可以包括:
获取模块86,用于周期性获取调整参考信息,调整参考信息用于指示发送设备通过发送设备与接收设备之间的两个数据通道的任一数据通道发送报文时的拥塞状态,或者用于指示发送设备向接收设备发送的第一数据流的传输速率;
处理模块87,用于根据调整参考信息调整至少一个数据通道针对第一数据流的发送报文集合;其中,两个数据通道分别对应的发送报文集合的并集为第一报文集合,第一报文集合包括第一数据流的全部的待发送报文,两个数据通道分别对应的发送报文集合的交集非空。
可选的,调整参考信息包括每个数据通道分别对应的评估值,评估值为下列中的任意一种:
第一数据流对应的队列的队列利用率X;
链路时延的归一化值Y;链路时延的归一化值Y用于指示链路时延与预设链路时延最大值之间的比值,链路时延为数据通道的链路时延、数据通道中第一数据流对应的队列的链路时延,或者数据通道中第一数据流的链路时延;
α*X+β*Y;其中,α为队列利用率对应的权重值,β为链路时延的归一化值Y对应的权重值。
可选的,处理模块87具体用于:
针对两个数据通道分别对应的评估值中的任一评估值,若该评估值小于第一门限值,则调整该评估值对应的数据通道的发送报文集合为第一报文集合;
若该评估值大于第一门限值,则根据该评估值调整该评估值对应的数据通道的发送报文集合。
可选的,调整参考信息包括发送设备向接收设备发送的第一数据流的传输速率,第一数据通道的发送报文集合为第一报文集合;
处理模块87具体用于:
若传输速率小于第二门限值,则调整第二数据通道的发送报文集合为第一报文集合;
若传输速率大于第二门限值,则根据第二门限值与调整参考信息的比值,调整第二数据通道的发送报文集合;
需要说明的是,结合图7和图9,本实施例中的获取模块86和处理模块87可以为图7中的WLAN驱动模块712、驱动模块721和驱动模块731的任意一个。
其中,第二门限值为根据接收设备与发送设备之间针对第二数据通道的协商速率确定的。
本实施例提供的发送设备,用于执行图6所示实施例提供的数据传输方法,其技术原理和技术效果类似,此处不再赘述。
图10为本申请实施例三提供的发送设备的结构示意图。如图10所示,所述发送设备包括处理器91、存储器92和收发器93,所述存储器92用于存储指令,所述收发器93用于和其他设备通信,所述处理器91用于执行所述存储器92中存储的指令,以使所述发送设备执行图5或图6所示实施例中提供的数据传输方法,具体实现方式和技术效果类似,这里不再赘述。
需要说明的是,应理解以上装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。例如,确定模块可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上确定模块的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integrated circuit,ASIC),或,一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(centralprocessing unit,CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘solid state disk(SSD))等。
可选的,本申请实施例还提供一种存储介质,所述存储介质中存储有指令,当其在计算机上运行时,使得计算机执行如上述图5至图6所示实施例的方法。
可选的,本申请实施例还提供一种运行指令的芯片,所述芯片用于执行上述图5至图6所示实施例的方法。
本申请实施例还提供一种程序产品,所述程序产品包括计算机程序,所述计算机程序存储在存储介质中,至少一个处理器可以从所述存储介质读取所述计算机程序,所述至少一个处理器执行所述计算机程序时可实现上述图5至图6所示实施例的方法。
Claims (19)
1.一种数据传输方法,其特征在于,包括:
发送设备周期性获取第一报文序列号和第二报文序列号;其中,所述第一报文序列号为统计周期内接收设备通过所述发送设备与所述接收设备之间的第一数据通道接收到的属于第一数据流的报文分别对应的报文序列号中的最大值,所述第二报文序列号为所述统计周期内所述接收设备通过所述发送设备与所述接收设备之间的第二数据通道接收到的属于所述第一数据流的报文分别对应的报文序列号中的最大值,所述第一数据流的至少一个报文在所述第一数据通道上和所述第二数据通道上均进行发送,所述报文序列号用于指示对应报文在所述第一数据流中的排列顺序;
所述发送设备根据所述第一报文序列号和所述第二报文序列号,更新所述第一报文序列号和所述第二报文序列号中报文序列号小的数据通道的报文缓存队列。
2.根据权利要求1所述的方法,其特征在于,所述发送设备根据所述第一报文序列号和所述第二报文序列号,更新所述第一报文序列号和所述第二报文序列号中报文序列号小的数据通道的报文缓存队列,包括:
若所述第一报文序列号大于所述第二报文序列号,则所述发送设备在所述第二数据通道的报文缓存队列中,删除报文序列号小于或者等于所述第一报文序列号的所述第一数据流的报文。
3.根据权利要求1所述的方法,其特征在于,所述发送设备根据所述第一报文序列号和所述第二报文序列号,更新所述第一报文序列号和所述第二报文序列号中报文序列号小的数据通道的报文缓存队列,包括:
若所述第一报文序列号大于所述第二报文序列号,且所述第二数据通道的报文缓存队列中存在目标报文,所述目标报文为所述发送设备在所述第一数据通道上尝试发送报文的次数达到预设最大重发次数的报文,则所述发送设备在所述第二数据通道的报文缓存队列中,删除除所述目标报文之外的,且报文序列号小于或者等于所述第一报文序列号的所述第一数据流的报文。
4.根据权利要求1所述的方法,其特征在于,所述发送设备周期性获取第一报文序列号和第二报文序列号,包括:
针对所述第一数据通道和所述第二数据通道中的任一数据通道,在所述统计周期内,所述发送设备通过该数据通道接收所述接收设备发送的确认消息,该确认消息用于指示所述接收设备通过该数据通道接收到的报文;
所述发送设备根据该确认消息获取指示接收到的报文的报文序列号;
所述发送设备根据所述指示接收到的报文的报文序列号,获取所述第一报文序列号或所述第二报文序列号。
5.根据权利要求4所述的方法,其特征在于,还包括:
所述发送设备根据该确认消息获取指示接收到的报文所属数据流的流标识;
所述发送设备根据所述第一报文序列号和所述第二报文序列号,更新所述第一报文序列号和所述第二报文序列号中报文序列号小的数据通道的报文缓存队列,包括:
在所述第一报文序列号对应的流标识与所述第二报文序列号对应的流标识相同时,根据所述第一报文序列号和所述第二报文序列号,更新所述第一报文序列号和所述第二报文序列号中报文序列号小的数据通道的报文缓存队列。
6.根据权利要求4所述的方法,其特征在于,所述第一数据通道为第一无线局域网络WLAN链路,所述第二数据通道为第二WLAN链路。
7.根据权利要求1、5或6任一项所述的方法,其特征在于,还包括:
所述发送设备获取待发送报文;
若确定所述待发送报文在所述第一数据通道上和所述第二数据通道上均进行发送,则所述发送设备将所述待发送报文分别在所述第一数据通道和所述第二数据通道的报文缓存队列中排队。
8.根据权利要求7所述的方法,其特征在于,若在所述第一数据通道上和所述第二数据通道上均进行发送的待发送报文所属的数据流为一个,所述发送设备将所述待发送报文分别在所述第一数据通道和所述第二数据通道的报文缓存队列中排队,包括:
所述发送设备设置所述待发送报文的优先级高于除所述待发送报文所属数据流之外的其他数据流的报文的优先级;
所述发送设备根据所述待发送报文的优先级将所述待发送报文分别在所述第一数据通道和所述第二数据通道的报文缓存队列中排队。
9.一种数据传输方法,其特征在于,包括:
发送设备周期性获取调整参考信息;
所述发送设备根据所述调整参考信息调整所述发送设备与接收设备之间的两个数据通道中至少一个所述数据通道针对第一数据流的发送报文集合,所述第一数据流的至少一个报文在所述两个数据通道上均进行发送;其中,所述两个数据通道分别对应的发送报文集合的并集为第一报文集合,所述第一报文集合包括所述第一数据流的全部的待发送报文,所述两个数据通道分别对应的发送报文集合的交集非空;
其中,所述调整参考信息用于指示所述两个数据通道的任一数据通道发送报文时的拥塞状态;所述调整参考信息包括每个所述数据通道分别对应的评估值;
所述评估值为下列中的任意一种:
所述第一数据流对应的队列的队列利用率X;
α * X + β * Y;其中,α为所述队列利用率对应的权重值,β为链路时延的归一化值Y对应的权重值;所述发送设备根据所述调整参考信息调整所述发送设备与接收设备之间的两个数据通道中至少一个所述数据通道针对第一数据流的发送报文集合,包括:
针对所述两个数据通道分别对应的评估值中的任一评估值,若该评估值小于第一门限值,则所述发送设备调整该评估值对应的数据通道的发送报文集合为所述第一报文集合;
若该评估值大于所述第一门限值,则所述发送设备根据该评估值调整该评估值对应的数据通道的发送报文集合。
10.一种发送设备,其特征在于,包括:
获取模块,用于周期性获取第一报文序列号和第二报文序列号;其中,所述第一报文序列号为统计周期内接收设备通过发送设备与接收设备之间的第一数据通道接收到的属于第一数据流的报文分别对应的报文序列号中的最大值,所述第二报文序列号为所述统计周期内所述接收设备通过所述发送设备与所述接收设备之间的第二数据通道接收到的属于所述第一数据流的报文分别对应的报文序列号中的最大值,所述第一数据流的至少一个报文在所述第一数据通道上和所述第二数据通道上均进行发送,所述报文序列号用于指示对应报文在所述第一数据流中的排列顺序;
处理模块,用于根据所述第一报文序列号和所述第二报文序列号,更新所述第一报文序列号和所述第二报文序列号中报文序列号小的数据通道的报文缓存队列。
11.根据权利要求10所述的发送设备,其特征在于,所述处理模块具体用于:
若所述第一报文序列号大于所述第二报文序列号,则在所述第二数据通道的报文缓存队列中,删除报文序列号小于或者等于所述第一报文序列号的所述第一数据流的报文。
12.根据权利要求10所述的发送设备,其特征在于,所述处理模块具体用于:
若所述第一报文序列号大于所述第二报文序列号,且所述第二数据通道的报文缓存队列中存在目标报文,所述目标报文为在所述第一数据通道上尝试发送报文的次数达到预设最大重发次数的报文,则在所述第二数据通道的报文缓存队列中,删除除所述目标报文之外的,且报文序列号小于或者等于所述第一报文序列号的所述第一数据流的报文。
13.根据权利要求10所述的发送设备,其特征在于,所述获取模块具体用于:
针对所述第一数据通道和所述第二数据通道中的任一数据通道,在所述统计周期内,通过该数据通道接收所述接收设备发送的确认消息,该确认消息用于指示所述接收设备通过该数据通道接收到的报文;
根据该确认消息获取指示接收到的报文的报文序列号;
根据所述指示接收到的报文的报文序列号,获取所述第一报文序列号或所述第二报文序列号。
14.根据权利要求13所述的发送设备,其特征在于,所述获取模块还用于:
根据该确认消息获取指示接收到的报文所属数据流的流标识;
所述处理模块具体用于:
在所述第一报文序列号对应的流标识与所述第二报文序列号对应的流标识相同时,根据所述第一报文序列号和所述第二报文序列号,更新所述第一报文序列号和所述第二报文序列号中报文序列号小的数据通道的报文缓存队列。
15.根据权利要求13所述的发送设备,其特征在于,所述第一数据通道为第一无线局域网络WLAN链路,所述第二数据通道为第二WLAN链路。
16.根据权利要求10、14或15任一项所述的发送设备,其特征在于,还包括接收模块;
所述接收模块,用于获取待发送报文;
所述处理模块还用于,若确定所述待发送报文在所述第一数据通道上和所述第二数据通道上均进行发送,则将所述待发送报文分别在所述第一数据通道和所述第二数据通道的报文缓存队列中排队。
17.根据权利要求16所述的发送设备,其特征在于,若在所述第一数据通道上和所述第二数据通道上均进行发送的待发送报文所属的数据流为一个,所述处理模块具体用于:
设置所述待发送报文的优先级高于除所述待发送报文所属数据流之外的其他数据流的报文的优先级;
根据所述待发送报文的优先级将所述待发送报文分别在所述第一数据通道和所述第二数据通道的报文缓存队列中排队。
18.一种发送设备,其特征在于,包括:
获取模块,用于周期性获取调整参考信息;
处理模块,用于根据所述调整参考信息调整发送设备与接收设备之间的两个数据通道中至少一个所述数据通道针对第一数据流的发送报文集合,所述第一数据流的至少一个报文在所述两个数据通道上均进行发送;其中,所述两个数据通道分别对应的发送报文集合的并集为第一报文集合,所述第一报文集合包括所述第一数据流的全部的待发送报文,所述两个数据通道分别对应的发送报文集合的交集非空;所述调整参考信息用于指示所述两个数据通道的任一数据通道发送报文时的拥塞状态;所述调整参考信息包括每个所述数据通道分别对应的评估值;
所述评估值为下列中的任意一种:
所述第一数据流对应的队列的队列利用率X;
α * X + β * Y;其中,α为所述队列利用率对应的权重值,β为链路时延的归一化值Y对应的权重值;所述处理模块具体用于:
针对所述两个数据通道分别对应的评估值中的任一评估值,若该评估值小于第一门限值,则调整该评估值对应的数据通道的发送报文集合为所述第一报文集合;
若该评估值大于所述第一门限值,则根据该评估值调整该评估值对应的数据通道的发送报文集合。
19.一种存储介质,其特征在于,包括:可读存储介质和计算机程序,所述计算机程序用于实现如权利要求1-9中任一项所述的数据传输方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811117085.6A CN110944358B (zh) | 2018-09-25 | 2018-09-25 | 数据传输方法和设备 |
EP19868099.3A EP3846529B1 (en) | 2018-09-25 | 2019-09-11 | Data transmission method and device |
PCT/CN2019/105260 WO2020063340A1 (zh) | 2018-09-25 | 2019-09-11 | 数据传输方法和设备 |
US17/211,466 US11509597B2 (en) | 2018-09-25 | 2021-03-24 | Data transmission method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811117085.6A CN110944358B (zh) | 2018-09-25 | 2018-09-25 | 数据传输方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110944358A CN110944358A (zh) | 2020-03-31 |
CN110944358B true CN110944358B (zh) | 2021-12-24 |
Family
ID=69904988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811117085.6A Active CN110944358B (zh) | 2018-09-25 | 2018-09-25 | 数据传输方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11509597B2 (zh) |
EP (1) | EP3846529B1 (zh) |
CN (1) | CN110944358B (zh) |
WO (1) | WO2020063340A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111385828B (zh) * | 2020-05-19 | 2020-09-15 | 成都极米科技股份有限公司 | 无线局域网收发数据的方法、终端和系统及网络接入设备 |
CN111988240B (zh) * | 2020-07-27 | 2024-03-29 | 北京北方华创微电子装备有限公司 | 一种数据发送方法、装置、电子设备及存储介质 |
WO2022047742A1 (en) * | 2020-09-04 | 2022-03-10 | Arris Enterprises Llc | Improve gaming performance for dual wi-fi device |
EP4207938A4 (en) * | 2020-10-13 | 2024-02-28 | Sony Group Corp | COMMUNICATION DEVICE AND COMMUNICATION METHOD |
CN114095124B (zh) * | 2021-11-03 | 2023-05-12 | 中国联合网络通信集团有限公司 | 通信方法、装置及计算机可读存储介质 |
CN115484517B (zh) * | 2022-09-06 | 2023-06-23 | 苏州大学 | 一种无源光网络中线路速率优化方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002023833A2 (en) * | 2000-09-12 | 2002-03-21 | Sri International | A reduced-overhead protocol for discovering new neighbor nodes and detecting the loss of existing neighbor nodes in a network |
CN104954248A (zh) * | 2014-03-27 | 2015-09-30 | 华为技术有限公司 | 报文传送保护倒换方法、设备及系统 |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7573827B2 (en) * | 2003-05-06 | 2009-08-11 | Hewlett-Packard Development Company, L.P. | Method and apparatus for detecting network congestion |
US7751404B2 (en) * | 2006-10-06 | 2010-07-06 | Broadcom Corporation | Method, system, and computer program product for high performance bonding resequencing |
CN101541037B (zh) * | 2008-03-20 | 2011-10-26 | 华为技术有限公司 | 数据传输方法、数据传输装置及基站 |
CN101547469B (zh) * | 2008-03-24 | 2011-10-05 | 华为技术有限公司 | 一种发送数据的方法、系统和设备 |
EP2490501A1 (en) * | 2011-02-18 | 2012-08-22 | British Telecommunications Public Limited Company | Interference and congestion mitigation in a CSMA/CA system |
US9264353B2 (en) * | 2011-09-22 | 2016-02-16 | Qualcomm Incorporated | Dynamic subflow control for a multipath transport connection in a wireless communication network |
JP2015097349A (ja) * | 2013-11-15 | 2015-05-21 | 株式会社日立製作所 | 送信装置、通信制御方法及び通信システム |
US9094856B1 (en) * | 2014-02-25 | 2015-07-28 | Intelligent Fusion Technology, Inc. | Routing method for satellite communication network |
KR101881969B1 (ko) * | 2014-02-28 | 2018-07-25 | 후아웨이 테크놀러지 컴퍼니 리미티드 | 데이터 재전송 방법 및 장치 |
CN105812415B (zh) * | 2014-12-30 | 2019-02-26 | 华为技术有限公司 | 实现负载均衡的方法及存储系统 |
CN105656798A (zh) * | 2016-01-08 | 2016-06-08 | 努比亚技术有限公司 | 数据传输方法、装置、多通道路由方法及用户设备 |
CN106027413B (zh) * | 2015-08-05 | 2019-04-02 | 深圳市恒扬数据股份有限公司 | 报文缓存方法、装置及设备 |
CN106330414B (zh) * | 2016-08-16 | 2021-03-26 | 新华三技术有限公司 | 一种报文传输方法及装置 |
CN106572013A (zh) * | 2016-11-09 | 2017-04-19 | 蔡日基 | 单连接多路由备份的tcp网络系统 |
CN108234338B (zh) * | 2016-12-21 | 2021-08-20 | 华为技术有限公司 | 报文传输方法及混合接入网关 |
US10284480B2 (en) * | 2016-12-27 | 2019-05-07 | Netflix, Inc. | Packet loss tolerant transmission control protocol congestion control |
CN108512708B (zh) * | 2017-02-24 | 2023-01-06 | 中兴通讯股份有限公司 | 一种缓存计算的方法及装置 |
-
2018
- 2018-09-25 CN CN201811117085.6A patent/CN110944358B/zh active Active
-
2019
- 2019-09-11 EP EP19868099.3A patent/EP3846529B1/en active Active
- 2019-09-11 WO PCT/CN2019/105260 patent/WO2020063340A1/zh unknown
-
2021
- 2021-03-24 US US17/211,466 patent/US11509597B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002023833A2 (en) * | 2000-09-12 | 2002-03-21 | Sri International | A reduced-overhead protocol for discovering new neighbor nodes and detecting the loss of existing neighbor nodes in a network |
CN104954248A (zh) * | 2014-03-27 | 2015-09-30 | 华为技术有限公司 | 报文传送保护倒换方法、设备及系统 |
Non-Patent Citations (1)
Title |
---|
R3-122737 "Specification cleanup before freeze";Ericsson;《3GPP tsg_ran\WG3_Iu》;20121103;全文 * |
Also Published As
Publication number | Publication date |
---|---|
EP3846529A1 (en) | 2021-07-07 |
US11509597B2 (en) | 2022-11-22 |
EP3846529B1 (en) | 2023-11-08 |
US20210211390A1 (en) | 2021-07-08 |
WO2020063340A1 (zh) | 2020-04-02 |
EP3846529A4 (en) | 2022-03-02 |
CN110944358A (zh) | 2020-03-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110944358B (zh) | 数据传输方法和设备 | |
EP1938528B1 (en) | Provision of qos treatment based upon multiple requests | |
EP1938531B1 (en) | Packet routing in a wireless communications environment | |
JP5001283B2 (ja) | 資源要求者への移動表示の提供 | |
WO2020038172A1 (zh) | 一种流量控制的方法及装置 | |
WO2022002221A1 (zh) | 多链路建立方法及通信装置 | |
KR102267116B1 (ko) | 패킷 전송 방법, 프록시 서버 및 컴퓨터 판독가능 저장 매체 | |
WO2020221296A1 (zh) | 数据传输的方法和装置 | |
WO2021249039A1 (zh) | 通信方法、装置及系统 | |
CN111066272B (zh) | 移动无线电接入网络中的分组延迟减少 | |
CN113543219A (zh) | 通信方法和装置 | |
US10999210B2 (en) | Load sharing method and network device | |
CN116980968B (zh) | 一种多链路的数据传输方法和装置 | |
CN116321223A (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 |