多频段传输方法及装置转让专利

申请号 : CN201810974728.2

文献号 : CN110858794A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王莹李云波郭宇宸黄国刚

申请人 : 华为技术有限公司

摘要 :

本申请公开了一种多频段传输方法及装置,用以利用多频段并行传输提高业务的业务数据的传输效率。该方法包括:接收端通过M个频段从发送端并行接收数据包,M个频段承载的数据包属于同一业务流;接收端从发送端接收BAR,BAR携带SSN,BAR用于请求发送端在第m个频段上发送的数据包的接收状态;接收端将SN在SSN之前的未接收到的数据包标记为第m状态;接收端判断是否存在一个或多个未接收到的数据包被标记为第1状态、第2状态、…、第M状态,若是,接收端将一个或多个未接收到的数据包标记为丢弃状态;接收端判断是否存在SN连续的数据包;若是,接收端递交SN连续的数据包中的状态为接收状态的数据包。

权利要求 :

1.一种多频段传输方法,其特征在于,包括:

接收端通过M个频段从发送端并行接收数据包,所述M个频段承载的数据包属于同一业务流,M为大于1的整数;

所述接收端从所述发送端接收块确认请求帧BAR,所述BAR携带开始序列号SSN,所述BAR用于请求所述发送端在第m个频段上发送的数据包的接收状态,所述第m个频段为所述M个频段中的任意一个频段;

所述接收端将序列号SN在所述SSN之前的未接收到的数据包标记为第m状态;

所述接收端判断是否存在一个或多个未接收到的数据包被标记为第1状态、第2状态、…、第M状态,若是,所述接收端将所述一个或多个未接收到的数据包标记为丢弃状态;

所述接收端判断是否存在SN连续的数据包;所述SN连续的数据包中的任意一个数据包的状态为接收状态或丢弃状态,所述SN连续的数据包中的SN最小的数据包为所述接收端待处理的数据包中的SN最小的数据包;

若是,所述接收端递交所述SN连续的数据包中的状态为接收状态的数据包。

2.根据权利要求1所述的方法,其特征在于,所述BAR中包括所述第m个频段的信息;或者,所述BAR在所述第m个频段上发送。

3.根据权利要求1或2所述的方法,其特征在于,所述接收端包括媒体访问控制MAC模块和逻辑链路控制LLC模块,所述接收端递交所述SN连续的数据包中的状态为接收状态的数据包,包括:所述接收端的MAC模块向所述接收端的LLC模块递交所述SN连续的数据包中的状态为接收状态的数据包。

4.根据权利要求1-3任一项所述的方法,其特征在于,所述接收端待处理的数据包中的SN最小的数据包为第一数据包;其中,当所述接收端递交过数据包,所述第一数据包为所述接收端上一次判断的SN连续的数据包中的最后一个数据包的下一个数据包,所述接收端上一次递交的数据包为所述接收端上一次判断的SN连续的数据包中的状态为接收状态的数据包;或者,当所述接收端未递交过数据包,所述第一数据包为SN为SN的起始编号的数据包。

5.一种多频段传输方法,其特征在于,包括:

接收端通过M个频段从发送端并行接收数据包,所述M个频段承载的数据包属于同一业务流,M为大于1的整数;

当所述接收端接收到一个或多个数据包,或者,当所述接收端将一个或多个数据包标记为丢弃状态时,所述接收端判断是否存在序列号SN连续的数据包;所述SN连续的数据包中的任意一个数据包的状态为接收状态或丢弃状态,所述SN连续的数据包中的SN最小的数据包为所述接收端待处理的数据包中的SN最小的数据包;

若是,所述接收端递交所述SN连续的数据包中的状态为接收状态的数据包;

其中,当一个承载在第m个频段上的、且所述接收端未接收到的数据包的SN在所述发送端发送的块确认请求帧BAR携带的开始序列号SSN之前时,所述接收端将该数据包标记为丢弃状态;所述BAR用于请求所述发送端在第m个频段上发送的数据包的接收状态,所述第m个频段为所述M个频段中的任意一个频段。

6.根据权利要求5所述的方法,其特征在于,所述BAR中包括所述第m个频段的信息;或者,所述BAR在所述第m个频段上发送。

7.根据权利要求5或6所述的方法,其特征在于,所述接收端包括媒体访问控制MAC模块和逻辑链路控制LLC模块,所述接收端递交所述SN连续的数据包中的状态为接收状态的数据包,包括:所述接收端的MAC模块向所述接收端的LLC模块递交所述SN连续的数据包中的状态为接收状态的数据包。

8.根据权利要求5-7任一项所述的方法,其特征在于,所述接收端待处理的数据包中的SN最小的数据包为第一数据包;其中,当所述接收端递交过数据包,所述第一数据包为所述接收端上一次判断的SN连续的数据包中的最后一个数据包的下一个数据包,所述接收端上一次递交的数据包为所述接收端上一次判断的SN连续的数据包中的状态为接收状态的数据包;或者,当所述接收端未递交过数据包,所述第一数据包为SN为SN的起始编号的数据包。

9.根据权利要求5-8任一项所述的方法,其特征在于,所述方法还包括:

所述接收端获取承载未接收到的数据包的频段的信息。

10.一种多频段传输方法,其特征在于,包括:

发送端通过M个频段向接收端并行发送数据包,所述M个频段承载的数据包属于同一业务流,M为大于1的整数;

当所述发送端将一个或多个数据包标记为丢弃状态或接收状态时,所述发送端确定第一序列号SN,所述第一SN为第一开始序列号SSN的前一个SN,所述第一SSN为第一块确认请求帧BAR中携带的SSN,所述第一BAR为所述发送端发送的上一个BAR;

所述发送端确定是否存在满足预设条件的第二SN;所述第二SN为所述发送端发送的数据包的SN,所述第二SN大于所述第一SSN;满足所述预设条件的第二SN是指使得SN在所述第一SN和所述第二SN之间的数据包中的任意一个数据包的状态为接收状态或丢弃状态的第二SN;

若是,所述发送端向所述接收端发送第二BAR,所述第二BAR携带第二SSN,所述第二SSN为满足所述预设条件的第二SN中的一个第二SN;

其中,所述发送端在确定一个数据包超过最大重传次数或最大重传时限时,将该数据包标记为丢弃状态;所述发送端在确定一个数据包被所述接收端成功接收时,将该数据包标记为接收状态。

11.根据权利要求10所述的方法,其特征在于,所述第二SSN为所有满足所述预设条件的第二SN中的值最大的第二SN。

12.一种多频段传输方法,其特征在于,应用于发送端,所述发送端包括多个媒体访问控制MAC模块,所述方法包括:所述多个MAC模块通过M个频段向所述接收端并行发送数据包,所述M个频段承载的数据包属于同一业务流,M为大于1的整数;

当第一MAC模块将一个或多个数据包标记为丢弃状态或接收状态时,所述第一MAC模块确定第一序列号SN,所述第一SN为第一开始序列号SSN的前一个SN,所述第一SSN为第一块确认请求帧BAR中携带的SSN,所述第一BAR为所述第一MAC模块发送的上一个BAR;

所述第一MAC模块确定是否存在满足预设条件的第二SN;所述第二SN为所述多个MAC模块发送的数据包的SN,所述第二SN大于所述第一SSN;满足所述预设条件的第二SN是指使得SN在所述第一SN和所述第二SN之间的数据包中的任意一个数据包的状态为接收状态或丢弃状态的第二SN;

若是,所述第一MAC模块向所述接收端发送第二BAR,所述第二BAR携带第二SSN,所述第二SSN为满足所述预设条件的第二SN中的一个第二SN;

其中,所述第一MAC模块为所述多个MAC模块中的任意一个MAC模块;一个MAC模块在确定一个数据包超过最大重传次数或最大重传时限时,将该数据包标记为丢弃状态;一个MAC模块在确定一个数据包被所述接收端成功接收时,将该数据包标记为接收状态。

13.根据权利要求12所述的方法,其特征在于,所述第二SSN为所有满足所述预设条件的第二SN中的值最大的第二SN。

14.根据权利要求12或13所述的方法,其特征在于,所述方法还包括:

所述第一MAC模块从所述多个MAC模块中的其他MAC模块接收数据包的状态信息。

15.根据权利要求12-14任一项所述的方法,其特征在于,当第一MAC模块将一个或多个数据包标记为丢弃状态或接收状态时,所述方法还包括:所述第一MAC模块在将所述一个或多个数据包标记为丢弃状态或接收状态后的预设时间段内向所述多个MAC模块中的其他MAC模块发送所述一个或多个数据包的状态信息。

16.一种多频段传输装置,其特征在于,包括:收发单元和处理单元;

所述收发单元,用于通过M个频段从发送端并行接收数据包,所述M个频段承载的数据包属于同一业务流,M为大于1的整数;

所述收发单元,还用于从所述发送端接收块确认请求帧BAR,所述BAR携带开始序列号SSN,所述BAR用于请求所述发送端在第m个频段上发送的数据包的接收状态,所述第m个频段为所述M个频段中的任意一个频段;

所述处理单元,用于将序列号SN在所述SSN之前的未接收到的数据包标记为第m状态;

所述处理单元,还用于判断是否存在一个或多个未接收到的数据包被标记为第1状态、第2状态、…、第M状态,若是,将所述一个或多个未接收到的数据包标记为丢弃状态;

所述处理单元,还用于判断是否存在SN连续的数据包;所述SN连续的数据包中的任意一个数据包的状态为接收状态或丢弃状态,所述SN连续的数据包中的SN最小的数据包为所述装置待处理的数据包中的SN最小的数据包;

若是,所述处理单元,还用于递交所述SN连续的数据包中的状态为接收状态的数据包。

17.根据权利要求16所述的装置,其特征在于,所述BAR中包括所述第m个频段的信息;

或者,所述BAR在所述第m个频段上发送。

18.根据权利要求16或17所述的装置,其特征在于,所述装置包括媒体访问控制MAC模块和逻辑链路控制LLC模块,所述处理单元属于所述MAC模块;

所述处理单元,还用于向所述装置的LLC模块递交所述SN连续的数据包中的状态为接收状态的数据包。

19.根据权利要求16-18任一项所述的装置,其特征在于,所述装置待处理的数据包中的SN最小的数据包为第一数据包;其中,当所述装置递交过数据包,所述第一数据包为所述装置上一次判断的SN连续的数据包中的最后一个数据包的下一个数据包,所述装置上一次递交的数据包为所述装置上一次判断的SN连续的数据包中的状态为接收状态的数据包;或者,当所述装置未递交过数据包,所述第一数据包为SN为SN的起始编号的数据包。

20.一种多频段传输装置,其特征在于,包括:收发单元和处理单元;

所述收发单元,用于通过M个频段从发送端并行接收数据包,所述M个频段承载的数据包属于同一业务流,M为大于1的整数;

当所述装置接收到一个或多个数据包,或者,当所述装置将一个或多个数据包标记为丢弃状态时,所述处理单元,用于判断是否存在序列号SN连续的数据包;所述SN连续的数据包中的任意一个数据包的状态为接收状态或丢弃状态,所述SN连续的数据包中的SN最小的数据包为所述装置待处理的数据包中的SN最小的数据包;

若是,所述处理单元,还用于递交所述SN连续的数据包中的状态为接收状态的数据包;

其中,当一个承载在第m个频段上的、且所述装置未接收到的数据包的SN在所述发送端发送的块确认请求帧BAR携带的开始序列号SSN之前时,所述装置将该数据包标记为丢弃状态;所述BAR用于请求所述发送端在第m个频段上发送的数据包的接收状态,所述第m个频段为所述M个频段中的任意一个频段。

21.根据权利要求20所述的装置,其特征在于,所述BAR中包括所述第m个频段的信息;

或者,所述BAR在所述第m个频段上发送。

22.根据权利要求20或21所述的装置,其特征在于,所述装置包括媒体访问控制MAC模块和逻辑链路控制LLC模块,所述处理单元属于所述MAC模块;

所述处理单元,还用于向所述装置的LLC模块递交所述SN连续的数据包中的状态为接收状态的数据包。

23.根据权利要求20-22任一项所述的装置,其特征在于,所述装置待处理的数据包中的SN最小的数据包为第一数据包;其中,当所述装置递交过数据包,所述第一数据包为所述装置上一次判断的SN连续的数据包中的最后一个数据包的下一个数据包,所述装置上一次递交的数据包为所述装置上一次判断的SN连续的数据包中的状态为接收状态的数据包;或者,当所述装置未递交过数据包,所述第一数据包为SN为SN的起始编号的数据包。

24.根据权利要求20-23任一项所述的装置,其特征在于,

所述收发单元,还用于获取承载未接收到的数据包的频段的信息。

25.一种多频段传输装置,其特征在于,包括:收发单元和处理单元;

所述收发单元,用于通过M个频段向接收端并行发送数据包,所述M个频段承载的数据包属于同一业务流,M为大于1的整数;

当所述装置将一个或多个数据包标记为丢弃状态或接收状态时,所述处理单元,用于确定第一序列号SN,所述第一SN为第一开始序列号SSN的前一个SN,所述第一SSN为第一块确认请求帧BAR中携带的SSN,所述第一BAR为所述装置发送的上一个BAR;

所述处理单元,用于确定是否存在满足预设条件的第二SN;所述第二SN为所述装置发送的数据包的SN,所述第二SN大于所述第一SSN;满足所述预设条件的第二SN是指使得SN在所述第一SN和所述第二SN之间的数据包中的任意一个数据包的状态为接收状态或丢弃状态的第二SN;

若是,所述收发单元,还用于向所述接收端发送第二BAR,所述第二BAR携带第二SSN,所述第二SSN为满足所述预设条件的第二SN中的一个第二SN;

其中,所述装置在确定一个数据包超过最大重传次数或最大重传时限时,将该数据包标记为丢弃状态;所述装置在确定一个数据包被所述接收端成功接收时,将该数据包标记为接收状态。

26.根据权利要求25所述的装置,其特征在于,所述第二SSN为所有满足所述预设条件的第二SN中的值最大的第二SN。

27.一种多频段传输装置,其特征在于,包括多个媒体访问控制MAC模块;

所述多个MAC模块,用于通过M个频段向所述接收端并行发送数据包,所述M个频段承载的数据包属于同一业务流,M为大于1的整数;

当第一MAC模块将一个或多个数据包标记为丢弃状态或接收状态时,所述第一MAC模块,用于确定第一序列号SN,所述第一SN为第一开始序列号SSN的前一个SN,所述第一SSN为第一块确认请求帧BAR中携带的SSN,所述第一BAR为所述第一MAC模块发送的上一个BAR;

所述第一MAC模块,还用于确定是否存在满足预设条件的第二SN;所述第二SN为所述多个MAC模块发送的数据包的SN,所述第二SN大于所述第一SSN;满足所述预设条件的第二SN是指使得SN在所述第一SN和所述第二SN之间的数据包中的任意一个数据包的状态为接收状态或丢弃状态的第二SN;

若是,所述第一MAC模块,还用于向所述接收端发送第二BAR,所述第二BAR携带第二SSN,所述第二SSN为满足所述预设条件的第二SN中的一个第二SN;

其中,所述第一MAC模块为所述多个MAC模块中的任意一个MAC模块;一个MAC模块在确定一个数据包超过最大重传次数或最大重传时限时,将该数据包标记为丢弃状态;一个MAC模块在确定一个数据包被所述接收端成功接收时,将该数据包标记为接收状态。

28.根据权利要求27所述的装置,其特征在于,所述第二SSN为所有满足所述预设条件的第二SN中的值最大的第二SN。

29.根据权利要求27或28所述的装置,其特征在于,

所述第一MAC模块,还用于从所述多个MAC模块中的其他MAC模块接收数据包的状态信息。

30.根据权利要求27-29任一项所述的装置,其特征在于,

所述第一MAC模块,还用于在将所述一个或多个数据包标记为丢弃状态或接收状态后的预设时间段内向所述多个MAC模块中的其他MAC模块发送所述一个或多个数据包的状态信息。

说明书 :

多频段传输方法及装置

技术领域

[0001] 本申请涉及通信技术领域,尤其涉及一种多频段传输方法及装置。

背景技术

[0002] 目前,接入点(access point,简称AP)和站点(station,简称STA)之间可以通过多个频段并行传输不同的业务流(traffic stream,简称TS)。但是对于一个TS而言,由于多个频段上的数据是独立传输的,一个TS中的数据包在多个频段上传输时可能会出现数据包乱序的问题。对于某些业务,例如,速率要求很高的实时视频通话,虚拟现实等,现有技术中无法利用多频段并行传输提高这些业务的业务数据的传输效率。

发明内容

[0003] 本申请实施例提供了一种多频段传输方法及装置,用以利用多频段并行传输提高业务的业务数据的传输效率。
[0004] 第一方面,提供了一种多频段传输方法,包括:接收端通过M个频段从发送端并行接收数据包,M个频段承载的数据包属于同一业务流,M为大于1的整数;接收端从发送端接收 BAR,BAR携带SSN,BAR用于请求发送端在第m个频段上发送的数据包的接收状态,第 m个频段为M个频段中的任意一个频段;接收端将SN在SSN之前的未接收到的数据包标记为第m状态;接收端判断是否存在一个或多个未接收到的数据包被标记为第1状态、第2状态、…、第M状态,若是,接收端将一个或多个未接收到的数据包标记为丢弃状态;接收端判断是否存在SN连续的数据包;SN连续的数据包中的任意一个数据包的状态为接收状态或丢弃状态,SN连续的数据包中的SN最小的数据包为接收端待处理的数据包中的SN最小的数据包;若是,接收端递交SN连续的数据包中的状态为接收状态的数据包。第一方面提供的方法,当一个未接收到的数据包的SN在发送端发送的M个BAR(M个BAR分别用于请求发送端在M个频段上发送的数据包的接收状态)中每个BAR携带的SSN之前时,说明发送端真的丢弃了该数据包。因此,接收端可以将该数据包标记为丢弃状态,从而使得接收端处理的数据包均为发送端实际丢弃或接收端接收到的数据包,保证数据包的正确处理,从而使得发送端和接收端可以通过多个频段并行传输同一个TS中的数据包,提高传输效率。
[0005] 在一种可能的实现方式中,BAR中包括第m个频段的信息;或者,BAR在第m个频段上发送。该种可能的实现方式,发送端可以根据每个频段的链路状态(例如,拥塞程度)灵活的选择发送BAR的频段,或者,发送端与接收端协商发送BAR的频段,接收端也在相应的频段上接收BAR,从而提高BAR的传输效率。
[0006] 在一种可能的实现方式中,接收端包括MAC模块和LLC模块,接收端递交SN连续的数据包中的状态为接收状态的数据包,包括:接收端的MAC模块向接收端的LLC模块递交 SN连续的数据包中的状态为接收状态的数据包。该种可能的实现方式,MAC模块向LLC模块递交SN连续的数据包,可以尽可能保证LLC模块的解包成功率。
[0007] 在一种可能的实现方式中,接收端待处理的数据包中的SN最小的数据包为第一数据包;其中,当接收端递交过数据包,第一数据包为接收端上一次判断的SN连续的数据包中的最后一个数据包的下一个数据包,接收端上一次递交的数据包为接收端上一次判断的SN连续的数据包中的状态为接收状态的数据包;或者,当接收端未递交过数据包,第一数据包为SN 为SN的起始编号的数据包。
[0008] 第二方面,提供了一种多频段传输方法,包括:接收端通过M个频段从发送端并行接收数据包,M个频段承载的数据包属于同一业务流,M为大于1的整数;当接收端接收到一个或多个数据包,或者,当接收端将一个或多个数据包标记为丢弃状态时,接收端判断是否存在SN连续的数据包;SN连续的数据包中的任意一个数据包的状态为接收状态或丢弃状态, SN连续的数据包中的SN最小的数据包为接收端待处理的数据包中的SN最小的数据包;若是,接收端递交SN连续的数据包中的状态为接收状态的数据包;其中,当一个承载在第m 个频段上的、且接收端未接收到的数据包的SN在发送端发送的BAR携带的SSN之前时,接收端将该数据包标记为丢弃状态;BAR用于请求发送端在第m个频段上发送的数据包的接收状态,第m个频段为M个频段中的任意一个频段。第二方面提供的方法,当一个承载在第m个频段上的未接收到的数据包的SN在发送端发送的BAR(该BAR用于请求发送端在第m个频段上发送的数据包的接收状态)携带的SSN之前时,说明发送端真的丢弃了该数据包。因此,接收端可以将该数据包标记为丢弃状态,从而使得接收端处理的数据包均为发送端实际丢弃或接收端接收到的数据包,保证数据包的正确处理,从而使得发送端和接收端可以通过多个频段并行传输同一个TS中的数据包,提高传输效率。
[0009] 在一种可能的实现方式中,BAR中包括第m个频段的信息;或者,BAR在第m个频段上发送。该种可能的实现方式,发送端可以根据每个频段的链路状态(例如,拥塞程度)灵活的选择发送BAR的频段,或者,发送端与接收端协商发送BAR的频段,接收端也在相应的频段上接收BAR,从而提高BAR的传输效率。
[0010] 在一种可能的实现方式中,接收端包括MAC模块和LLC模块,接收端递交SN连续的数据包中的状态为接收状态的数据包,包括:接收端的MAC模块向接收端的LLC模块递交 SN连续的数据包中的状态为接收状态的数据包。该种可能的实现方式,MAC模块向LLC模块递交SN连续的数据包,可以尽可能保证LLC模块的解包成功率。
[0011] 在一种可能的实现方式中,接收端待处理的数据包中的SN最小的数据包为第一数据包;其中,当接收端递交过数据包,第一数据包为接收端上一次判断的SN连续的数据包中的最后一个数据包的下一个数据包,接收端上一次递交的数据包为接收端上一次判断的SN连续的数据包中的状态为接收状态的数据包;或者,当接收端未递交过数据包,第一数据包为SN 为SN的起始编号的数据包。
[0012] 在一种可能的实现方式中,该方法还包括:接收端获取承载未接收到的数据包的频段的信息。该种可能的实现方式,接收端可以根据承载未接收到的数据包的频段的信息,从而确定是否将未接收到的某个数据包标记为丢弃状态。
[0013] 第三方面,提供了一种多频段传输方法,包括:发送端通过M个频段向接收端并行发送数据包,M个频段承载的数据包属于同一TS,M为大于1的整数;发送端向接收端发送BAR, BAR用于请求发送端在第m个频段上发送的数据包的接收状态。第三方面提供的方法,发送端可以通过M个频段并行向接收端发送同一个TS中的数据包,提高传输效率。
[0014] 在一种可能的实现方式中,BAR中包括第m个频段的信息;或者,BAR在第m个频段上发送。该种可能的实现方式,发送端可以根据每个频段的链路状态(例如,拥塞程度)灵活的选择发送BAR的频段,或者,发送端与接收端协商发送BAR的频段,从而提高BAR 的传输效率。
[0015] 在一种可能的实现方式中,该方法还包括:发送端向接收端发送用于承载接收端未接收到的数据包的频段的信息。该种可能的实现方式,能够使得接收端确定承载未接收到的数据包的频段的信息,从而确定是否将未接收到的某个数据包标记为丢弃状态。
[0016] 第四方面,提供了一种多频段传输方法,包括:发送端通过M个频段向接收端并行发送数据包,M个频段承载的数据包属于同一业务流,M为大于1的整数;当发送端将一个或多个数据包标记为丢弃状态或接收状态时,发送端确定第一SN,第一SN为第一SSN的前一个 SN,第一SSN为第一BAR中携带的SSN,第一BAR为发送端发送的上一个BAR;发送端确定是否存在满足预设条件的第二SN;第二SN为发送端发送的数据包的SN,第二SN大于第一SSN;满足预设条件的第二SN是指使得SN在第一SN和第二SN之间的数据包中的任意一个数据包的状态为接收状态或丢弃状态的第二SN;若是,发送端向接收端发送第二BAR,第二BAR携带第二SSN,第二SSN为满足预设条件的第二SN中的一个第二SN;其中,发送端在确定一个数据包超过最大重传次数或最大重传时限时,将该数据包标记为丢弃状态;发送端在确定一个数据包被接收端成功接收时,将该数据包标记为接收状态。第四方面提供的方法,发送端向接收端发送携带第二SSN的第二BAR,其中,第二SSN之前的数据包均为接收端接收到的或发送端真的丢弃的数据包,从而使得接收端清空的均为接收端接收到的或发送端真的丢弃的数据包,可以保证数据包的正确处理,从而使得发送端和接收端可以通过多个频段并行传输同一个业务流中的数据包,提高传输效率。
[0017] 在一种可能的实现方式中,第二SSN为所有满足预设条件的第二SN中的值最大的第二 SN。该种可能的实现方式,可以使得发送端尽量少的发送BAR,降低与接收端之间的信令开销。
[0018] 第五方面,提供了一种多频段传输方法,应用于发送端,发送端包括多个MAC模块,该方法包括:多个MAC模块通过M个频段向接收端并行发送数据包,M个频段承载的数据包属于同一业务流,M为大于1的整数;当第一MAC模块将一个或多个数据包标记为丢弃状态或接收状态时,第一MAC模块确定第一SN,第一SN为第一SSN的前一个SN,第一 SSN为第一BAR中携带的SSN,第一BAR为第一MAC模块发送的上一个BAR;第一MAC 模块确定是否存在满足预设条件的第二SN;第二SN为多个MAC模块发送的数据包的SN,第二SN大于第一SSN;满足预设条件的第二SN是指使得SN在第一SN和第二SN之间的数据包中的任意一个数据包的状态为接收状态或丢弃状态的第二SN;若是,第一MAC模块向接收端发送第二BAR,第二BAR携带第二SSN,第二SSN为满足预设条件的第二SN中的一个第二SN;其中,第一MAC模块为多个MAC模块中的任意一个MAC模块;一个MAC 模块在确定一个数据包超过最大重传次数或最大重传时限时,将该数据包标记为丢弃状态;一个MAC模块在确定一个数据包被接收端成功接收时,将该数据包标记为接收状态。第五方面提供的方法,发送端向接收端发送携带第二SSN的第二BAR,其中,第二SSN之前的数据包均为接收端接收到的或发送端真的丢弃的数据包,从而使得接收端清空的均为接收端接收到的或发送端真的丢弃的数据包,可以保证数据包的正确处理,从而使得发送端和接收端可以通过多个频段并行传输同一个业务流中的数据包,提高传输效率。
[0019] 在一种可能的实现方式中,第二SSN为所有满足预设条件的第二SN中的值最大的第二 SN。该种可能的实现方式,可以使得发送端尽量少的发送BAR,降低与接收端之间的信令开销。
[0020] 在一种可能的实现方式中,该方法还包括:第一MAC模块从多个MAC模块中的其他 MAC模块接收数据包的状态信息。该种可能的实现方式,通过接收其他MAC模块发送的数据包的状态信息,可以使得发送端对数据包的状态作更加全面的判断,从而尽量少的发送 BAR,降低与接收端之间的信令开销。
[0021] 在一种可能的实现方式中,当第一MAC模块将一个或多个数据包标记为丢弃状态或接收状态时,该方法还包括:第一MAC模块在将一个或多个数据包标记为丢弃状态或接收状态后的预设时间段内向多个MAC模块中的其他MAC模块发送一个或多个数据包的状态信息。该种可能的实现方式,第一MAC模块也可以向其他MAC模块发送数据包的状态信息,以便其他MAC模块确定发送的BAR中携带的SSN的值。
[0022] 第六方面,提供了一种多频段传输装置,该装置具有实现第一方面或第二方面提供的任意一种方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的单元。该装置可以以芯片的产品形态存在。
[0023] 第七方面,提供了一种多频段传输装置,该装置具有实现第三方面至第五方面中的任一方面提供的任意一种方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的单元。该装置可以以芯片的产品形态存在。
[0024] 第八方面,提供了一种多频段传输装置,包括:收发器/收发管脚和处理器,可选地,还包括存储器。其中,收发器/收发管脚、处理器和存储器通过内部连接通路互相通信;处理器用于执行指令以控制收发器/收发管脚发送或者接收信号。存储器用于存储指令。处理器执行指令时,处理器执行第一方面或第一方面中任一种可能实现方式的方法,和/或第二方面或第二方面中任一种可能实现方式的方法。该装置可以以芯片的产品形态存在。
[0025] 第九方面,提供了一种多频段传输装置,包括:收发器/收发管脚和处理器,可选地,还包括存储器。其中,收发器/收发管脚、处理器和存储器通过内部连接通路互相通信;处理器用于执行指令以控制收发器/收发管脚发送或者接收信号。存储器用于存储指令。处理器执行指令时,处理器执行第三方面至第五方面中的任一方面及第三方面至第五方面中的任一方面中任一种可能实现方式的方法。该装置可以以芯片的产品形态存在。
[0026] 第十方面,提供了一种计算机可读存储介质,包括指令,当该指令在计算机上运行时,使得计算机执行第一方面至第五方面中的任一方面提供的任意一种方法。
[0027] 第十一方面,提供了一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行第一方面至第五方面中的任一方面提供的任意一种方法。
[0028] 第六方面至第十一方面中任一种设计方式所带来的技术效果可参见第一方面至第五方面中对应的设计方式所带来的技术效果,此处不再赘述。

附图说明

[0029] 图1为本申请实施例提供的一种应用场景示意图;
[0030] 图2为本申请实施例提供的一种数据包在多个频段上发送的示意图;
[0031] 图3为本申请实施例提供的一种多频段传输装置的硬件结构示意图;
[0032] 图4为本申请实施例提供的一种多频段传输方法的流程图;
[0033] 图5为本申请实施例提供的一种发送端和接收端之间多频段传输的示意图;
[0034] 图6为本申请实施例提供的一种发送端和接收端的协议栈架构图;
[0035] 图7为本申请实施例提供的又一种多频段传输方法的流程图;
[0036] 图8为本申请实施例提供的又一种多频段传输方法的流程图;
[0037] 图9为本申请实施例提供的又一种多频段传输方法的流程图;
[0038] 图10为本申请实施例提供的一种多频段传输装置的组成示意图;
[0039] 图11为本申请实施例提供的一种发送端的组成示意图。

具体实施方式

[0040] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请的描述中,除非另有说明,“/”表示“或”的意思,例如,A/B可以表示A或B。本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。此外,“至少一个”是指一个或多个,“多个”是指两个或两个以上。“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
[0041] 需要指出的是,本申请实施例的技术方案可以应用于无线局域网(wireless local area networks,简称WLAN)中。示例性地,可以应用在由多个基础服务集(basic service set,简称BSS)所构成的WLAN场景。参见图1,该场景中包括至少一个AP,每个AP及与其通信的一个或多个STA组成一个BSS,例如,AP1与STA1和STA2组成一个BSS,AP2与STA3 和STA4组成一个BSS,每个AP和每个STA均可以工作在多个频段上。本申请实施例中的发送端和接收端中一个可以为AP,另一个可以为STA。
[0042] 为了更加清楚的理解本申请提供的方法在WLAN中的应用,首先对与本申请实施例相关的部分内容作简单介绍:
[0043] IEEE802.11协议:IEEE802.11协议是现今WLAN通用的标准,它是由国际电机电子工程学会(institute of electrical and electronics engineers,简称IEEE)所定义的WLAN通信的标准,IEEE 802.11协议的各个版本分别覆盖了2.4GHz,5GHz,60GHz甚至6GHz频段上的传输协议。本申请实施例中的发送端和接收端采用的通信协议可以为IEEE802.11协议。
[0044] 多频段设备:多频段设备是指可以工作在多个频段上的设备。例如,多频段设备包括工作在2.4GHz和5GHz的双频段设备,工作在2.4GHz和5GHz的三频段设备,工作在2.4GHz, 5GHz和60GHz的三频段设备等。本申请实施例中的发送端和接收端均为多频段设备。
[0045] 块确认请求(block ack request,简称BAR)帧、块确认(block ack,简称BA)帧:BAR 帧为发送端向接收端发送的帧,BAR帧中包括开始序列号(starting sequence number,简称 SSN),接收端接收到BAR帧后,将在接收到BAR帧之前、且序列号(sequence number,简称SN)从SSN开始的已接收到的数据包的信息包含在BA帧中向发送端反馈,发送端根据 BA帧确定接收端接收到了哪些数据包。具体的,BA帧中可以包含一个位图,接收端可以将接收到BAR帧之前、且已经接收到的SN从SSN开始的数据包的信息置于位图中向发送端发送。例如,若发送端向接收端发送了SN为1-10的10个数据包,发送端向接收端发送的 BAR帧中包括的SSN为1,若接收端在接收到BAR帧之前SN从1开始的已接收到的数据包包括SN为1-6和8-10的数据包,则接收端将SN为1-6和8-10的数据包的信息包含在BA 帧中的位图中向发送端发送,以便发送端确定接收端接收到了哪些数据包。另外,接收端接收到BAR帧后,清空SN在SSN之前的数据包(即将SN在SSN之前的已经接收到的数据包递交到上层协议层处理)。
[0046] 需要说明的是,若发送端根据BA帧确定一个数据包未被接收端接收到时,发送端会重传该数据包,当该数据包超过了最大重传次数或最大重传时限时,发送端会丢弃该数据包。发送端只有丢弃了一个数据包之后,发送的BAR帧中的SSN才可以大于该数据包的SN,也就是说,发送端只有丢弃了一个数据包之后,才会使得接收端清空该数据包。
[0047] 需要说明的是,不同TS中的数据包采用不同套的SN进行编号,同一TS中的数据包采用同一套SN进行编号。例如,若一个TS中包括10个数据包,10个数据包的编号可以分别为1-10。为了提高传输效率,发送端和接收端之间可以通过多个频段传输同一TS中的数据包,但是会存在如下问题:
[0048] 参见图2,若一个TS中包括10个数据包,10个数据包的SN分别为1-10,SN为1-4的数据包在频段1上发送,SN为5-10的数据包在频段2上发送。接收端分别从两个频段接收数据包,从两个频段接收的数据包存入统一的重排序缓冲区内。发送端在发送数据包后会向接收端发送BAR帧,并且在各个频段上发送的BAR帧互不影响。
[0049] 在频段1上,发送端发送SN为1-4的数据包之后,可以向接收端发送BAR1,BAR1中的SSN=1,接收端接收到BAR1后会向发送端反馈接收到BAR1之前、且SN从1开始的已接收到的数据包的信息。参见图2,若SN为3的数据包没有被接收端接收到,那么接收端会向发送端反馈SN为1,2,4的数据包的信息。
[0050] 在频段2上,发送端发送SN为5-10的数据包之后,可以向接收端发送BAR2,BAR2 中的SSN=5,接收端接收到BAR2后会向发送端反馈接收到BAR2之前、且SN从5开始的已接收到的数据包的信息。参见图2,若SN为7的数据包没有被接收端接收到,那么接收端会向发送端反馈SN为5,6,8,9,10的数据包的信息,并清空SN在5之前的数据包。
[0051] 由于两个频段的传输路径的拥塞情况不同,接收端有可能先接收到BAR2,再接收到 BAR1。若接收端先接收到BAR2,则接收端会将SN在5之前的数据包清空。但是发送端在确定SN为3的数据包未被接收端接收到之后还可能会进行重传操作,从而使得接收端可能正确的接收到该数据包的,由此可知,接收端在接收到BAR2后就将SN在5之前的数据包清空会导致数据包的处理出错。
[0052] 为了解决该问题,提高传输效率,本申请实施例提供了一种多频段传输装置30的硬件结构示意图,如图3所示,该多频段传输装置30可以为下文中的发送端或接收端。该多频段传输装置30包括至少一个处理器301和至少一个收发器302,还可以包括存储器303。图3中以多频段传输装置30中包括一个处理器301,存储器303以及一个收发器302为例进行绘制。本申请实施例中的收发器也可以替换为收发管脚。
[0053] 其中,收发器302、处理器301和存储器303通过内部连接通路互相通信;处理器301 用于执行指令以控制收发器302发送或者接收信号。存储器303用于存储指令。处理器301 执行指令时,执行下文中描述的方法。
[0054] 处理器301可以是一个或多个通用中央处理器(central processing unit,简称CPU),微处理器,特定应用集成电路(application-specific integrated circuit,简称ASIC),或一个或多个用于控制本申请方案程序执行的集成电路。处理器301可以是一个单核(single-CPU)处理器,也可以是一个多核(multi-CPU)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。作为一种实施例,处理器301可以包括一个或多个CPU,例如图3中的CPU0和CPU1。
[0055] 收发器302,用于与其他设备或通信网络通信。
[0056] 存储器303,用于存储执行本申请方案的计算机执行指令,并由处理器301来控制执行。处理器301用于执行存储器303中存储的计算机执行指令,从而实现本申请下述实施例提供的方法,例如,执行下文中发送端或接收端的动作。存储器303可以是只读存储器(read-only memory,简称ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,简称RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,简称EEPROM)、只读光盘(compact disc read-only memory,简称CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
[0057] 可选地,本申请实施例中的计算机执行的指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
[0058] 本申请实施例提供了一种多频段传输方法,如图4所示,该方法包括:
[0059] 401、发送端通过M个频段向接收端并行发送数据包,M个频段承载的数据包属于同一 TS,M为大于1的整数。相应的,接收端通过M个频段从发送端并行接收数据包。
[0060] 本申请实施例中的数据包可以为媒体访问控制协议数据单元(media access control protocol data unit,简称MPDU)。属于同一TS的数据包采用同一套SN进行编号。
[0061] 其中,发送端和接收端均可以工作在M个频段上。一个传输队列可以对应一个频段,一个传输队列中的数据包通过其对应的频段传输。
[0062] M个频段上传输的可以为同一个TS中的相同的数据包,该情况下,可以提高数据包的传输可靠性。例如,一个TS中包括10个数据包,则M个频段上传输的数据包均为这10个数据包,M个频段上共传输10*M个数据包,10*M个数据包采用同一套SN进行编号,例如, 10*M个数据包的SN可以分别为1、2、…、10*M-1、10*M。需要说明的是,数据包的SN 的编号可以以任何数字作为起始编号,例如,起始编号可以为0,本申请示例性地以起始编号为1对本申请实施例提供的方法进行说明。
[0063] M个频段上传输的也可以为同一个TS中的不同的数据包,该情况下,可以提高数据包的传输效率。例如,一个TS中包括20个数据包,若M=2,则2个频段中的一个频段上可以传输20个数据包中的10个数据包,另一个频段上可以传输20个数据包中的另外10个数据包,20个数据包采用同一套SN进行编号,例如,20个数据包的SN可以分别为1、2、3、…、 19、20。
[0064] 示例性地,如图5所示,发送端将通过采用同一套SN编号、且属于同一TS的数据包分配到M个传输队列,并将M个传输队列中的数据包分别通过M个频段并行向接收端发送, M个频段分别独立的根据自身信道竞争协议传输各自对应的传输队列中的数据包,相应的,接收端分别在M个频段从发送端并行接收数据包,从M个频段接收的数据包存入统一的重排序缓冲区内。需要说明的是,图5中发送端侧的数据包可以为新传的数据包,也可以为重传的数据包。
[0065] 402、发送端向接收端发送BAR。相应的,接收端从发送端接收BAR。
[0066] 其中,BAR携带SSN,BAR用于请求发送端在第m个频段上发送的数据包的接收状态。具体的,BAR用于请求发送端在第m个频段上发送的、从SSN开始的数据包的接收状态。第m个频段为M个频段中的任意一个频段。
[0067] 其中,BAR中包括第m个频段的信息;或者,BAR在第m个频段上发送。即一种可能的实现方式,当发送端在第m个频段上发送BAR时,该BAR即用于请求发送端在第m个频段上发送的数据包的接收状态的BAR;另一种可能的实现方式,当BAR中包括第m个频段的信息,该BAR即用于请求发送端在第m个频段上发送的数据包的接收状态的BAR。
[0068] 需要说明的是,接收端每接收到一个BAR,就可以执行以下步骤403-406。
[0069] 403、接收端将SN在SSN之前的未接收到的数据包标记为第m状态。
[0070] 示例性地(以下称为示例1),基于图2所示的示例,当接收端接收到用于请求发送端在第1个频段(即频段1)上发送的数据包的接收状态的BAR时,若该BAR中的SSN=4,则接收端将SN=3的数据包标记为第1状态。当接收端再接收到用于请求发送端在第2个频段 (即频段2)上发送的数据包的接收状态的BAR时,若该BAR中的SSN=10,则接收端将SN=3和SN=7的数据包均标记为第2状态。
[0071] 其中,第m状态也可以记为Ready_to_flush_band_m。
[0072] 需要说明的是,在本申请的所有实施例中,完全未接收到的数据包和接收到部分的数据包均视为未接收到的数据包。
[0073] 404、接收端判断是否存在一个或多个未接收到的数据包被标记为第1状态、第2状态、…、第M状态,若是,接收端将一个或多个未接收到的数据包标记为丢弃状态。
[0074] 可以理解的是,若M=2,则当一个数据包被标记为第1状态和第2状态时,则可以将该数据包标记为丢弃状态。示例性地(以下称为示例2),基于示例1,由于SN=3的数据包既被标记为第1状态,也被标记为第2状态,则接收端可以将SN=3的数据包标记为丢弃状态,而SN=7的数据包只被标记为第2状态,未被标记为第1状态,因此,SN=7的数据包不能被标记为丢弃状态。
[0075] 其中,丢弃状态也可以记为Ready_to_flush。
[0076] 405、接收端判断是否存在SN连续的数据包(记为第一组SN连续的数据包)。
[0077] 若是,执行步骤406;若否,不执行步骤406,当接收端接收到下一个BAR时,可以继续执行步骤403以及之后的步骤。图4中以接收端判断存在第一组SN连续的数据包为例进行绘制。
[0078] 其中,第一组SN连续的数据包中的任意一个数据包的状态为接收状态或丢弃状态,第一组SN连续的数据包中的SN最小的数据包为接收端待处理的数据包中的SN最小的数据包。
[0079] 其中,当接收端未递交过数据包,接收端待处理的数据包为全部的数据包,当接收端递交过数据包,接收端待处理的数据包为接收端上一次判断的SN连续的数据包中的最后一个数据包之后的全部数据包。
[0080] 可选地,接收端待处理的数据包中的SN最小的数据包为第一数据包,当接收端递交过数据包,第一数据包为接收端上一次判断的SN连续的数据包(记为第二组SN连续的数据包) 中的最后一个数据包的下一个数据包,接收端上一次递交的数据包为第二组SN连续的数据包中的状态为接收状态的数据包;或者,当接收端未递交过数据包,第一数据包为SN为SN 的起始编号的数据包。
[0081] 其中,一组SN连续的数据包即一组状态为接收状态或丢弃状态、且SN连续的数据包。示例性地,基于示例2,SN=1、SN=2、…、SN=6的数据包为一组连续的数据包,SN=1、SN=2、 SN=3和SN=4的数据包也为一组连续的数据包。
[0082] 示例性地,当接收端未递交过数据包,则第一数据包为SN=1的数据包。当接收端递交过数据包时,若第二组连续的数据包为SN=1、SN=2、SN=3和SN=4的数据包,则第一数据包为SN=5的数据包。
[0083] 406、接收端递交第一组SN连续的数据包中的状态为接收状态的数据包。
[0084] 需要说明的是,第一组SN连续的数据包最好为第一组SN连续的所有数据包,即第一组 SN连续的数据包中的最后一个数据包的下一个数据包的状态不是接收状态,也不是丢弃状态。示例性地,基于示例2,SN=1、SN=2、…、SN=6的数据包可以为第一组连续的数据包, SN=1、SN=2、SN=3和SN=4的数据包也可以为第一组连续的数据包,则接收端递交的数据包最好为SN=1、SN=2、…、SN=6中的状态为接收状态的数据包,从而减少接收端递交数据包的次数,提高数据包的处理效率。
[0085] 示例性地,若发送端和接收端的协议栈架构如图6所示,发送端和接收端的MAC层之下为物理(physical,简称PHY)层,MAC之上为逻辑链路控制(logical link control,简称LLC)层。可选地,接收端包括MAC模块和LLC模块,步骤406在具体实现时可以包括:接收端的MAC模块向接收端的LLC模块递交第一组SN连续的数据包中的状态为接收状态的数据包。该情况下,该实施例中的接收端的动作均可由接收端的MAC层执行。需要说明的是,本申请实施例中的MAC模块也可以称为MAC实体,LLC模块也可以称为LLC实体。
[0086] 需要说明的是,上述实施例中,当接收端每接收到一个或多个数据包,也可以执行步骤 405和406。
[0087] 本申请实施例提供的方法,当一个未接收到的数据包的SN在发送端发送的M个BAR(M 个BAR分别用于请求发送端在M个频段上发送的数据包的接收状态)中每个BAR携带的 SSN之前时,说明发送端真的丢弃了该数据包。因此,接收端可以将该数据包标记为丢弃状态,从而使得接收端处理的数据包均为发送端实际丢弃或接收端接收到的数据包,保证数据包的正确处理,从而使得发送端和接收端可以通过多个频段并行传输同一个TS中的数据包,提高传输效率。
[0088] 本申请实施例还提供了一种多频段传输方法,如图7所示,该方法包括:
[0089] 701、发送端通过M个频段向接收端并行发送数据包,M个频段承载的数据包属于同一 TS,M为大于1的整数。相应的,接收端通过M个频段从发送端并行接收数据包。
[0090] 步骤701的相关描述可分别参见上述步骤401,在此不再赘述。
[0091] 702、当接收端接收到一个或多个数据包,或者,当接收端将一个或多个数据包标记为丢弃状态时,接收端判断是否存在SN连续的数据包(记为第一组SN连续的数据包)。
[0092] 若是,执行步骤703;若否,不执行步骤703,当接收端接收到下一个数据包或再次将一个或多个数据包标记为丢弃状态时,继续判断是否存在第一组SN连续的数据包。图7中以接收端判断存在第一组SN连续的数据包为例进行绘制。
[0093] 其中,当一个承载在第m个频段上的、且接收端未接收到的数据包的SN在发送端发送的BAR携带的SSN之前时,接收端将该数据包标记为丢弃状态;该BAR用于请求发送端在第m个频段上发送的数据包的接收状态,第m个频段为M个频段中的任意一个频段。
[0094] 可选地,在接收端将一个或多个数据包标记为丢弃状态之前,该方法还包括:接收端获取承载未接收到的数据包的频段的信息。具体可以为发送端向接收端发送用于承载接收端未接收到的数据包的频段的信息;接收端从发送端接收承载未接收到的数据包的频段的信息。
[0095] 示例性地,一种可能的实现方式,发送端可以在发送的BAR中包括一个位图,该位图中包括接收端未接收到的数据包与承载接收端未接收到的数据包的频段的信息的对应关系,接收端接收到该BAR后,可以根据该对应关系确定承载接收端未接收到的数据包的频段的信息。
[0096] 可选地,该方法还包括:发送端向接收端发送BAR,该BAR用于请求发送端在第m个频段上发送的数据包的接收状态。相应的,接收端从发送端接收该BAR。接收端可以根据获取到的承载未接收到的数据包的频段的信息和接收到的BAR确定是否将某些数据包标记为丢弃状态。
[0097] 可选地,该BAR中包括第m个频段的信息;或者,该BAR在第m个频段上发送。该可选地方法的相关描述可参见上文,在此不再赘述。
[0098] 示例性地,基于图2所示的示例,当接收端接收到用于请求发送端在第2个频段(即频段2)上发送的数据包的接收状态的BAR时,若该BAR中的SSN=10,则接收端将SN=7的数据包标记为丢弃状态,但不将SN=3的数据包标记为丢弃状态,原因在于SN=3的数据包不是第2个频段承载的数据包。当接收端接收到用于请求发送端在第1个频段(即频段1) 上发送的数据包的接收状态的BAR时,若该BAR中的SSN=4,则接收端将SN=3的数据包标记为丢弃状态。
[0099] 其中,丢弃状态也可以记为Ready_to_flush。
[0100] 其中,第一组SN连续的数据包中的任意一个数据包的状态为接收状态或丢弃状态,第一组SN连续的数据包中的SN最小的数据包为接收端待处理的数据包中的SN最小的数据包。可选地,接收端待处理的数据包中的SN最小的数据包为第一数据包,当接收端递交过数据包,第一数据包为接收端上一次判断的SN连续的数据包(记为第二组SN连续的数据包)中的最后一个数据包的下一个数据包,接收端上一次递交的数据包为第二组SN连续的数据包中的状态为接收状态的数据包;或者,当接收端未递交过数据包,第一数据包为SN为SN的起始编号的数据包。该可选地方法的相关描述可参见上文,在此不再赘述。
[0101] 其中,接收端判断是否存在第一组SN连续的数据包的过程可参见上述步骤406,在此不再赘述。
[0102] 703、接收端递交第一组SN连续的数据包中的状态为接收状态的数据包。
[0103] 可选地,接收端包括MAC模块和LLC模块,步骤703在具体实现时可以包括:接收端的MAC模块向接收端的LLC模块递交第一组SN连续的数据包中的状态为接收状态的数据包。该情况下,该实施例中的接收端的动作均可由接收端的MAC层执行。
[0104] 本申请实施例提供的方法,当一个承载在第m个频段上的未接收到的数据包的SN在发送端发送的BAR(该BAR用于请求发送端在第m个频段上发送的数据包的接收状态)携带的SSN之前时,说明发送端真的丢弃了该数据包。因此,接收端可以将该数据包标记为丢弃状态,从而使得接收端处理的数据包均为发送端实际丢弃或接收端接收到的数据包,保证数据包的正确处理,从而使得发送端和接收端可以通过多个频段并行传输同一个TS中的数据包,提高传输效率。
[0105] 本申请实施例还提供了一种多频段传输方法,如图8所示,包括:
[0106] 801、发送端通过M个频段向接收端并行发送数据包,M个频段承载的数据包属于同一 TS,M为大于1的整数。相应的,接收端通过M个频段从发送端并行接收数据包。
[0107] 与步骤801相关的描述可参见上述步骤401,在此不再赘述。
[0108] 802、当发送端将一个或多个数据包标记为丢弃状态或接收状态时,发送端确定第一SN,第一SN为第一SSN的前一个SN,第一SSN为第一BAR中携带的SSN,第一BAR为发送端发送的上一个BAR。
[0109] 其中,发送端在确定一个数据包超过最大重传次数或最大重传时限时,将该数据包标记为丢弃状态;发送端在确定一个数据包被接收端成功接收时,将该数据包标记为接收状态。示例性地,若最大重传次数为5,一个数据包被重传了5次之后还没有成功,发送端可以将该数据包标记为丢弃状态,若重传成功了,则发送端可以将该数据包标记为接收状态。
[0110] 具体的,发送端可以为发出的每个数据包维持一个状态,维持的状态包括:1)未知 (Unknown)状态:发送端在发送数据包之后为数据包标记的初始状态;2)接收(Received) 状态:发送端确定数据包被接收端成功接收之后为数据包标记的状态;3)丢弃状态:发送端在数据包超过最大重传次数或最大重传时限时为数据包标记的状态。
[0111] 其中,发送端将多个数据包标记为丢弃状态或接收状态是指发送端将多个数据包中的任意一个数据包标记为丢弃状态或接收状态,即多个数据包中可能有些数据包被标记为丢弃状态,有些数据包被标记为接收状态。
[0112] 示例性地,若发送端发送的上一个BAR携带的SSN=3,则第一SN为2。
[0113] 其中,丢弃状态也可以记为Ready_to_flush。
[0114] 803、发送端确定是否存在满足预设条件的第二SN;第二SN为发送端发送的数据包的 SN,第二SN大于第一SSN;满足预设条件的第二SN是指使得SN在第一SN和第二SN之间的数据包中的任意一个数据包的状态为接收状态或丢弃状态的第二SN。
[0115] 若是,执行步骤804,若否,不执行步骤804,发送端在下次将一个或多个数据包标记为丢弃状态或接收状态时,继续确定第一SN,并执行步骤803以及之后的步骤。图8中以发送端确定存在满足预设条件的第二SN为例进行绘制。
[0116] 步骤803在具体实现时,发送端可以按照SN由小至大的顺序确定是否存在满足预设条件的第二SN,也可以按照SN由大至小的顺序确定是否存在满足预设条件的第二SN。本申请实施例对此不作具体限定。
[0117] 需要说明的是,满足预设条件的第二SN可能有多个。示例性地(以下称为示例3),基于图2所示的示例,若SN=3和SN=7的数据包均为接收端未接收到的数据包,且SN=3的数据包被发送端标记为丢弃状态,SN=7的数据包未被标记为丢弃状态,当第一SN为2时,则第二SN可以为4、5、6和7。
[0118] 804、发送端向接收端发送第二BAR,第二BAR携带第二SSN,第二SSN为满足预设条件的第二SN中的一个第二SN。相应的,接收端从发送端接收第二BAR。
[0119] 可选地,第二SSN为所有满足预设条件的第二SN中的值最大的第二SN。示例性地,基于示例3,满足预设条件的第二SN中的值最大的第二SN为7。该可选地方法,可以使得发送端尽量少的发送BAR,降低与接收端之间的信令开销。
[0120] 上述步骤801至804所描述的为发送端如何发送第二个以及之后的BAR。若发送端发送第一个BAR,在执行步骤801之后,当发送端将一个或多个数据包标记为丢弃状态或接收状态时,发送端从发送的SN最小的数据包开始确定是否存在SN连续的数据包,若存在,则向接收端发送BAR。该BAR中携带的SSN为:SN连续的所有数据包中的除第一个数据包的 SN之外的任意一个数据包的SN;或者,SN连续的所有数据包中的SN最大的数据包的下一个数据包的SN。优选的,该BAR中携带的SSN为SN连续的所有数据包中的SN最大的数据包的下一个数据包的SN。其中,SN连续的数据包中的任意一个数据包的状态为丢弃状态或接收状态。
[0121] 示例性地,基于图2所示的示例,发送端通过频段1和频段2将SN为1至10的数据包向接收端发送,若发送端将SN=3的数据包标记为丢弃状态,将SN=1、SN=2、SN=4、SN=5、 SN=6的数据包标记为接收状态,则发送端从SN=1的数据包开始判断是否存在SN连续的数据包,由于SN=1至SN=6的数据包为SN连续的所有数据包,因此,发送端可以向接收端发送BAR,BAR中的SSN可以为2、3、4、5、6或7,优选的,该SSN为7。
[0122] 本申请实施例提供的方法,发送端向接收端发送携带第二SSN的第二BAR,其中,第二 SSN之前的数据包均为接收端接收到的或发送端真的丢弃的数据包,从而使得接收端清空的均为接收端接收到的或发送端真的丢弃的数据包,可以保证数据包的正确处理,从而使得发送端和接收端可以通过多个频段并行传输同一个TS中的数据包,提高传输效率。
[0123] 本申请实施例还提供了一种多频段传输方法,应用于发送端,发送端包括多个MAC模块,如图9所示,该方法包括:
[0124] 901、多个MAC模块通过M个频段向接收端并行发送数据包,M个频段承载的数据包属于同一TS,M为大于1的整数。相应的,接收端通过M个频段从发送端并行接收数据包。
[0125] 关于步骤901的相关描述可参见上述步骤401,不同的地方仅在于,此处的执行主体为发送端中的多个MAC模块。
[0126] 902、当第一MAC模块将一个或多个数据包标记为丢弃状态或接收状态时,第一MAC 模块确定第一SN,第一SN为第一SSN的前一个SN,第一SSN为第一BAR中携带的SSN,第一BAR为第一MAC模块发送的上一个BAR。
[0127] 其中,第一MAC模块为多个MAC模块中的任意一个MAC模块;一个MAC模块在确定一个数据包超过最大重传次数或最大重传时限时,将该数据包标记为丢弃状态;一个MAC 模块在确定一个数据包被接收端成功接收时,将该数据包标记为接收状态。
[0128] 其中,丢弃状态也可以记为Ready_to_flush。
[0129] 903、第一MAC模块确定是否存在满足预设条件的第二SN;第二SN为多个MAC模块发送的数据包的SN,第二SN大于第一SSN;满足预设条件的第二SN是指使得SN在第一 SN和第二SN之间的数据包中的任意一个数据包的状态为接收状态或丢弃状态的第二SN。
[0130] 若是,执行步骤904,若否,不执行步骤904,第一MAC模块在下次将一个或多个数据包标记为丢弃状态或接收状态时,继续确定第一SN,并执行步骤903以及之后的步骤。图9中以第一MAC模块确定存在满足预设条件的第二SN为例进行绘制。
[0131] 904、第一MAC模块向接收端发送第二BAR,第二BAR携带第二SSN,第二SSN为满足预设条件的第二SN中的一个第二SN。相应的,接收端从发送端接收第二BAR。
[0132] 关于步骤902-904的相关描述可参见上述步骤802-804,不同的地方仅在于,此处的执行主体为发送端中的第一MAC模块。
[0133] 可选地,第二SSN为所有满足预设条件的第二SN中的值最大的第二SN。关于该可选地步骤的相关描述可参见图8所示的实施例,在此不再赘述。
[0134] 可选地,该方法还包括:第一MAC模块从多个MAC模块中的其他MAC模块接收数据包的状态信息。数据包的状态信息可以为数据包为接收状态或丢弃状态的信息,通过接收其他MAC模块发送的数据包的状态信息,可以使得发送端对数据包的状态作更加全面的判断,从而尽量少的发送BAR,降低与接收端之间的信令开销。
[0135] 可选地,当第一MAC模块将一个或多个数据包标记为丢弃状态或接收状态时,该方法还包括:第一MAC模块在将一个或多个数据包标记为丢弃状态或接收状态后的预设时间段内向多个MAC模块中的其他MAC模块发送一个或多个数据包的状态信息。第一MAC模块也可以向其他MAC模块发送数据包的状态信息,以便其他MAC模块确定发送的BAR中携带的SSN的值。其中,预设时间段可以根据实际的应用场景进行设置。示例性地,预设时间段可以为20ms。
[0136] 上述步骤901至904所描述的为第一MAC模块如何发送第二个以及之后的BAR。若第一MAC模块发送第一个BAR,在执行步骤901之后,当第一MAC模块将一个或多个数据包标记为丢弃状态或接收状态时,第一MAC模块从多个MAC模块发送的SN最小的数据包开始确定是否存在SN连续的数据包,若存在,则向接收端发送BAR。该BAR中携带的SSN 为:SN连续的所有数据包中的除第一个数据包的SN之外的任意一个数据包的SN;或者, SN连续的所有数据包中的SN最大的数据包的下一个数据包的SN。优选的,该BAR中携带的SSN为SN连续的所有数据包中的SN最大的数据包的下一个数据包的SN。其中,SN连续的数据包中的任意一个数据包的状态为丢弃状态或接收状态。
[0137] 示例性地,基于图2所示的示例,多个MAC模块通过频段1和频段2将SN为1至10 的数据包向接收端发送,若第一MAC模块将SN=3的数据包标记为丢弃状态,将SN=1、SN=2、 SN=4的数据包标记为接收状态,并且从其他MAC模块接收到SN=5、SN=6的数据包的状态为接收状态的信息,则第一MAC模块从SN=1的数据包开始判断是否存在SN连续的数据包,由于SN=1至SN=6的数据包为SN连续的所有数据包,因此,第一MAC模块可以向接收端发送BAR,BAR中的SSN可以为2、3、4、5、6或7,优选的,该SSN为7。
[0138] 本申请实施例提供的方法,发送端向接收端发送携带第二SSN的第二BAR,其中,第二 SSN之前的数据包均为接收端接收到的或发送端真的丢弃的数据包,从而使得接收端清空的均为接收端接收到的或发送端真的丢弃的数据包,可以保证数据包的正确处理,从而使得发送端和接收端可以通过多个频段并行传输同一个TS中的数据包,提高传输效率。
[0139] 上述主要从方法的角度对本申请实施例的方案进行了介绍。可以理解的是,多频段传输装置为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0140] 本申请实施例可以根据上述方法示例对多频段传输装置进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0141] 比如,在采用集成的功能模块的情况下,图10示出了上述实施例中所涉及的多频段传输装置的一种可能的结构示意图,该多频段传输装置100可以为上述发送端或接收端,参见图10,多频段传输装置100可以包括:处理单元1001、收发单元1002,还可以包括存储单元1003。
[0142] 当多频段传输装置100为发送端时,处理单元1001用于对发送端的动作进行控制管理,例如,处理单元1001用于支持发送端执行图4中的步骤401和402,图7中的步骤701,图8中的步骤801-804,图9中的步骤901-904,和/或本申请实施例中所描述的其他过程中的发送端执行的动作。收发单元1002用于支持发送端与其他网络设备通信,例如,与图4中的接收端通信。存储单元1003用于存储发送端的程序代码和数据。
[0143] 当多频段传输装置100为接收端时,处理单元1001用于对接收端的动作进行控制管理,例如,处理单元1001用于支持接收端执行图4中的步骤402-406,图7中的步骤701-703,图8中的步骤801和804,图9中的步骤901和904,和/或本申请实施例中所描述的其他过程中的接收端执行的动作。收发单元1002用于支持接收端与其他网络设备通信,例如,与图
4中的发送端通信。存储单元1003用于存储接收端的程序代码和数据。
[0144] 其中,处理单元1001可以是处理器或控制器,收发单元1002可以是收发器或收发管脚,存储单元1003可以是存储器。当处理单元1001为处理器,收发单元1002为收发器,存储单元1003为存储器时,本申请实施例所涉及的多频段传输装置可以为图3所示的多频段传输装置30。
[0145] 当多频段传输装置30为发送端时,处理器301用于对发送端的动作进行控制管理,例如,处理器301用于支持发送端执行图4中的步骤401和402,图7中的步骤701,图8中的步骤 801-804,图9中的步骤901-904,和/或本申请实施例中所描述的其他过程中的发送端执行的动作。收发器302用于支持发送端与其他网络设备通信,例如,与图4中的接收端通信。存储器 303用于存储发送端的程序代码和数据。
[0146] 当多频段传输装置30为接收端时,处理器301用于对接收端的动作进行控制管理,例如,处理器301用于支持接收端执行图4中的步骤402-406,图7中的步骤701-703,图8中的步骤801和804,图9中的步骤901和904,和/或本申请实施例中所描述的其他过程中的接收端执行的动作。收发器302用于支持接收端与其他网络设备通信,例如,与图4中的发送端通信。存储器303用于存储接收端的程序代码和数据。
[0147] 另外,如图11所示,本申请实施例中的发送端可以包括多个MAC模块,多个MAC模块可以执行图9中的步骤901,多个MAC模块中的第一MAC模块可以执行图9中的步骤 902-904,和/或本申请实施例中所描述的其他过程中的第一MAC模块执行的动作。第一MAC 模块的硬件结构可以为图3所示的多频段传输装置30。其中,第一MAC模块与其他设备或模块交互信息时,可以通过收发器302,例如,通过收发器302执行步骤901和904,第一 MAC模块进行信息处理时,可以通过处理器301,例如,通过处理器301执行步骤902和903。
[0148] 本申请实施例还提供了一种计算机可读存储介质,包括指令,当该指令在计算机上运行时,使得计算机执行上述方法。
[0149] 本申请实施例还提供了一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行上述方法。
[0150] 本申请实施例还提供了一种通信系统,包括发送端和/或接收端,发送端为上述实施例中的任意一种发送端,接收端为上述实施例中的任意一种接收端。
[0151] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式来实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或者数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,简称DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可以用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带),光介质(例如,DVD)、或者半导体介质(例如固态硬盘(solid state disk,简称SSD))等。
[0152] 尽管在此结合各实施例对本申请进行了描述,然而,在实施所要求保护的本申请过程中,本领域技术人员通过查看附图、公开内容、以及所附权利要求书,可理解并实现公开实施例的其他变化。在权利要求中,“包括”(comprising)一词不排除其他组成部分或步骤,“一”或“一个”不排除多个的情况。单个处理器或其他单元可以实现权利要求中列举的若干项功能。相互不同的从属权利要求中记载了某些措施,但这并不表示这些措施不能组合起来产生良好的效果。
[0153] 尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。
[0154] 根据本申请实施例提供的技术方案,可以对IEEE802.11协议作如下修改:
[0155] 将10.24.3部分中的“如果有的话,接收端将重排序缓冲区中的MPDU组装成完整的媒体访问控制服务数据单元(media access control service data unit,简称MSDU)并递交给更高层。然后,接收端释放先前的MPDU所占用的缓冲区。”(英文为:The recipient shall reassemble any complete MSDUs from buffered preceding MPDUs and indicate these to its higher layer.The recipient shall then release any buffers held by preceding MPDUs.)修改为“如果并行多频段标签为假,如果有的话,接收端将重排序缓冲区中的MPDU组装成完整的MSDU并递交给更高层。然后,接收端释放先前的MPDU所占用的缓冲区。如果并行多频段标签为真,当从频段 x接收到BAR时,接收端应使用状态Ready_to_flush_band_x标记任何先前的MPDU(即 SN在从频段x接收到BAR携带的SSN之前的MPDU,包括不完整和丢失的MPDU)。如果 MPDU被所有频带标记,则MPDU被标记为状态Ready_to_flush。接收端应将下一个待处理的序列号设置为满足以下条件的最大可能的序列号:在其之前的任何MPDU被成功接收或标记为Ready_to_flush状态。接收端应将下一个待处理的序列号之前的重排序缓冲区中的 MPDU组装成完整的MSDU并递交给更高层。)”(英文为:If ConcurrentMultibandLabel is False,the recipient shall reassemble any complete MSDUs from buffered preceding MPDUs and indicate these to its higher layer.The recipient shall then release any buffers held by preceding MPDUs.If ConcurrentMultibandLabel is True,when receiving a BlockAckReq from band x, the recipient shall mark any preceding MPDUs(including the incomplete and missing ones) with state Ready_to_flush_band_x.A MPDU is marked with state Ready_to_flush if it is marked by all bands with Ready_to_flush_band_x.The recipient shall set NextToFlushSequenceNumber as the largest possible sequence number that allows any MPDUs prior to it are either successfully received or marked with state Ready_to_flush.The recipient shall reassemble any complete MSDUs from the buffered MPDUs with sequence number prior to NextToFlushSequenceNumber and release these to its higher layers.)
[0156] 在10.24.4部分中增加“若多频段标签为真,对于每个块确认协议,接收端将维护一个名为下一个待处理的序列号的MAC变量。下一个待处理的序列号的初始值为已被成功接受的块确认协议中的ADDBA请求帧中的块确认开始序列控制域中的值。”(英文为:If ConcurrentMultibandLabel is True,for each block ack agreement,the recipient maintains  a  MAC  variable  NextToFlushSequenceNumber.The NextToFlushSequenceNumber is initialized to the value of the Block Ack Starting Sequence Control field of the ADDBA Request frame of the accepted block ack agreement.)
[0157] 将10.24.4部分中的“如果收到BAR帧,则序列号低于BAR帧中包含的起始序列号的所有完整MSDU和聚合MSDU(A-MSDU)应传递到下一个MAC进程。在BAR帧到达时,接收端应按顺序从起始序列号开始向上层递交MSDU和A-MSDU,直到缓冲区中存在不完整或丢失的MSDU或A-MSDU。”(英文为:If a BlockAckReq frame is received,all complete MSDUs and A-MSDUs with lower sequence numbers than the starting sequence number contained in the BlockAckReq frame shall be passed up to the next MAC process.Upon arrival of a BlockAckReq frame,the recipient shall pass up the MSDUs and A-MSDUs starting with the starting sequence number sequentially until there is an incomplete or missing MSDU or A-MSDU in the buffer.)修改为“若多频段标签为假,当收到BAR帧,则序列号低于BAR帧中包含的起始序列号的所有完整MSDU和A-MSDU应传递到下一个MAC进程。在BAR帧到达时,接收端应按顺序从起始序列号开始向上层递交MSDU和A-MSDU,直到缓冲区中存在不完整或丢失的MSDU或A-MSDU。如果并行多频段标签为真,当从频段x 接收到BAR时,接收端应使用状态Ready_to_flush_band_x标记任何先前的MPDU(即SN 在从频段x接收到BAR携带的SSN之前的MPDU,包括不完整和丢失的MPDU)。如果MPDU 被所有频带标记,则MPDU被标记为状态Ready_to_flush。接收端应将下一个待处理的序列号设置为满足以下条件的最大可能的序列号:在其之前的任何MPDU被成功接收或标记为 Ready_to_flush状态。接收端应将下一个待处理的序列号之前的重排序缓冲区中的MPDU组装成完整的MSDU并递交给更高层。”(英文为 :If ConcurrentMultibandLabel is False,when a BlockAckReq frame is received,all complete MSDUs and A-MSDUs with lower sequence numbers than the starting sequence number contained in the BlockAckReq frame shall be passed up to the next MAC process.Upon arrival of a BlockAckReq frame,the recipient shall pass up the MSDUs and A-MSDUs starting with the starting sequence number sequentially until there is an incomplete or missing MSDU or A-MSDU in the buffer.If ConcurrentMultibandLabel is True,when a BlockAckReq frame is received from band x,the recipient shall mark any preceding MPDUs(including the incomplete and missing ones)with state Ready_to_flush_band_x.A MPDU is marked with state Ready_to_flush if it is marked by all bands with Ready_to_flush_band_x.The recipient shall set NextToFlushSequenceNumber as the largest possible sequence number that allows any MPDUs prior to it are either successfully received or marked with state Ready_to_flush.The recipient shall reassemble any complete MSDUs from the buffered MPDUs with sequence number prior to NextToFlushSequenceNumber and release these to its higher layers.)。