一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

数据传输方法、设备、介质及产品与流程

2022-02-19 16:01:08 来源:中国专利 TAG:


1.本公开涉及通信技术领域。具体而言,本公开涉及一种数据传输方法、第一网络设备、第二网络设备、计算机可读存储介质、网络设备以及计算机程序产品。


背景技术:

2.对于网络业务来说,由于待传输的数据较多,会产生时延,不同类型的数据对时延的容忍程度是不一样的,若对所有待传输的数据不加区分的进行排队等待,对于时延敏感的数据而言,可能会引起通信系统的错误判断或者丢包,由此降低用户体验。


技术实现要素:

3.本公开的目的在于提供一种数据传输方法、第一网络设备、第二网络设备、计算机可读存储介质、网络设备以及计算机程序产品,至少在一定程度上降低数据传输过程中的时延,从而提高网络业务的用户体验。
4.本公开实施例提供一种数据传输方法,该方法应用于第一网络设备,第一网络设备中设置有第一接入类别队列和第二接入类别队列;第一接入类别队列用于存放时延敏感类型的第一接入类别待传输数据,第二接入类别队列用于存放非时延敏感类型的第二接入类别待传输数据。其中,该方法包括:若确定所述第一网络设备与第二网络设备之间的传输信道处于空闲状态,则所述第一接入类别队列和所述第二接入类别队列竞争所述传输信道;若所述第一接入类别队列竞争到所述传输信道,则通过所述传输信道向所述第二网络设备发送所述第一接入类别待传输数据;以及若确定所述传输信道处于非空闲状态,且通过所述传输信道从所述第二网络设备接收到第一数据报文,则生成针对所述第一数据报文的第一确认帧;将所述第一接入类别待传输数据附加在所述第一确认帧中,通过所述传输信道向所述第二网络设备发送。
5.本公开实施例提供一种数据传输方法,所述方法应用于第二网络设备。其中,该方法包括:通过所述第二网络设备与第一网络设备之间的传输信道,接收所述第一网络设备从第一接入类别队列发送的第一接入类别待传输数据,其中所述第一接入类别待传输数据附加在第一确认指令中或者未附加在所述第一确认指令中;其中,所述第一接入类别待传输数据属于时延敏感类型;所述第一确认指令是所述第一网络设备针对所述第二网络设备发送的第一数据报文生成的。
6.本公开实施例提供一种第一网络设备,所述第一网络设备中设置有第一接入类别队列和第二接入类别队列;所述第一接入类别队列用于存放时延敏感类型的第一接入类别待传输数据,所述第二接入类别队列用于存放非时延敏感类型的第二接入类别待传输数据。其中,该第一网络设备包括:第一处理单元,用于若确定所述第一网络设备与第二网络设备之间的传输信道处于空闲状态,则所述第一接入类别队列和所述第二接入类别队列竞争所述传输信道;第一通信单元,用于若所述第一接入类别队列竞争到所述传输信道,则通过所述传输信道向所述第二网络设备发送所述第一接入类别待传输数据;以及所述第一处
理单元还用于若确定所述传输信道处于非空闲状态,且通过所述传输信道从所述第二网络设备接收到第一数据报文,则生成针对所述第一数据报文的第一确认帧;所述第一通信单元还用于将所述第一接入类别待传输数据附加在所述第一确认帧中,通过所述传输信道向所述第二网络设备发送。
7.本公开实施例提供一种第二网络设备,包括:第二通信单元,用于通过所述第二网络设备与第一网络设备之间的传输信道,接收所述第一网络设备从第一接入类别队列发送的第一接入类别待传输数据,其中所述第一接入类别待传输数据附加在第一确认指令中或者未附加在所述第一确认指令中;其中,所述第一接入类别待传输数据属于时延敏感类型;所述第一确认指令是所述第一网络设备针对所述第二网络设备发送的第一数据报文生成的。
8.根据本公开实施例的一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被网络设备执行时实现如以上技术方案中的数据传输方法。
9.根据本公开实施例的一个方面,提供一种网络设备,该网络设备包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述网络设备被配置为经由执行所述可执行指令来执行如以上技术方案中的数据传输方法。
10.根据本公开的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备从计算机可读存储介质读取该计算机指令,执行该计算机指令,使得该计算机设备执行上述各种可选实现方式中提供的方法。
11.在本公开实施例提供的技术方案中,一方面,通过区分数据类型,待传输至第二网络设备的数据划分为属于时延敏感类型的第一接入类别待传输数据以及属于非时延敏感类型的第二接入类别待传输数据,并分别存入第一接入类别队列和第二接入类别队列中,可以准确地将时延敏感的待传输数据和非时延敏感的待传输数据区别开来;另一方面,对于第一接入类别队列中的属于时延敏感类型的第一接入类别待传输数据,并行的通过两条支路进行处理:第一分支,在确定所述第一网络设备与第二网络设备之间的传输信道处于空闲状态时,让所述第一接入类别队列和所述第二接入类别队列均去竞争第一网络设备与第二网络设备之间的传输信道,并在第一接入类别队列竞争到该传输信道时,通过所述传输信道向所述第二网络设备发送所述第一接入类别待传输数据;第二分支,在确定所述传输信道处于非空闲状态时,且通过所述传输信道从所述第二网络设备接收到第一数据报文,第一网络设备生成针对所述第一数据报文的第一确认帧,将所述第一接入类别待传输数据附加在所述第一确认帧中,通过所述传输信道向所述第二网络设备发送将时延敏感的待传输数据放入第一接入类别队列,采用两条分支处理第一接入类别队列中的第一接入类别待传输数据,可以提高第一接入类别待传输数据被较快地发送出去,由此可以降低时延。同时,在第二分支中,通过将第一接入类别待传输数据附加到第一确认帧中一次传送给第二网络设备,将两次传送操作在一次传送操作中完成,可以更加快速地将时延敏感的第一接入类别待传输数据发送出去。
附图说明
12.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施
例,并与说明书一起用于解释本公开的原理。显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
13.图1示意性地示出了本公开一示例性实施例中提供的数据传输方法的步骤流程图。
14.图2示意性地示出了本公开一示例性实施例中提供的应用场景的示例性系统架构示意图。
15.图3示意性地示出了本公开一示例性实施例中提供的新增接入类别的示意图。
16.图4示意性地示出了相关技术的回应帧传送机制的示意图。
17.图5示意性地示出了本公开一示例性实施例中提供的利用回应帧进行上传数据的示意图。
18.图6示意性地示出了本公开一示例性实施例中提供的回应帧回传失败的示意图。
19.图7示意性地示出了本公开一示例性实施例中提供的接收侧内部模块的实现示意图。
20.图8示意性地示出了本公开一示例性实施例中提供的接收端接收与回应确认帧的流程图。
21.图9示意性地示出了本公开一示例性实施例中提供的接入类别数据处理流程图。
22.图10示意性地示出了本公开一示例性实施例中提供的扩展确认帧的结构示意图。
23.图11示意性地示出了本公开一示例性实施例中提供的确认附加数据帧的结构示意图。
24.图12示意性地示出了本公开另一示例性实施例中提供的数据传输方法的步骤流程图。
25.图13示意性地示出了本公开一示例性实施例中提供的第一网络设备的组成框图。
26.图14示意性地示出了本公开一示例性实施例中提供的第二网络设备的组成框图。
27.图15示意性地示出了适于用来实现本公开实施例的网络设备的结构示意图。
具体实施方式
28.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本公开将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。
29.此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本公开的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
30.附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
31.附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也
不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
32.首先,对本技术中提及的部分术语进行解释。
33.wi

fi:wireless fidelity的简写,称之为无线保真,是一种无线通信技术。
34.ap:access point的简写,称之为接入点,是wi

fi网络中的access point角色,一般家庭或办公室使用的无线路由器可以是一个ap。
35.sta:station的简写,称之为站点/工作站,是wi

fi网络中的station角色,sta站点可以是每一个连接到无线网络中的终端,例如笔记本电脑、pda(personal digital assistant,掌上电脑)及其它可以联网的用户设备,都可称为一个站点。
36.csma/ca:carrier sensing multiple access/collision avoidance的简写,称之为载波感应多址接入/碰撞避免。
37.ack:acknowledgement的简写,称之为确认帧或者回应帧,802.11中的控制帧的一种,接收侧/接收端用来通知传送端/发送端,数据已传送成功。
38.mac:medium access control的简写,称之为媒介接入控制层。
39.ac:access category的简写,称之为访问类别。
40.aci:i是indentity的简写,aci是指接入类别指示符。
41.edca:enhanced distributed channel access的简写,称之为增强型分布式信道访问或者增强型分布式信道接入。
42.wmm:wi

fi multi

media的简写,称之为无线保证多媒体,是802.11e标准的一个子集。wmm允许无线通信根据数据类型定义一个优先级范围。为了使wmm功能工作,无线客户端也支持wmm。客户可以根据需求选择是或否。
43.aifs:arbitration interframe space的简写,称之为仲裁帧间间隔。
44.phy:port physical layer的简写,称之为端口物理层。
45.图1示意性地示出了本公开一示例性实施例中提供的数据传输方法的步骤流程图。图1实施例提供的方法可以应用于第一网络设备,第一网络设备中可以设置有第一接入类别队列和第二接入类别队列。
46.第一接入类别队列可以用于存放时延敏感类型的第一接入类别待传输数据。
47.本公开实施例中,将存入第一接入类别队列、且待传输至第二网络设备的待传输数据称之为第一接入类别待传输数据,第一接入类别待传输数据属于时延敏感(latency sensitivity,也可以称之为时间敏感time sensitivity)类型的待传输数据,是指第一接入类别待传输数据对传输时延比较敏感,当延时敏感类型的待传输数据在传输过程中产生时延时,可能会导致待传输数据的不连续、丢包、或者导致无线通信系统发生误判。针对时延敏感类型的待传输数据,需要尽量避免发生传输时延。
48.第二接入类别队列可以用于存放非时延敏感类型的第二接入类别待传输数据。
49.本公开实施例中,将存入第二接入类别队列、且待传输至第二网络设备的待传输数据称之为第二接入类别待传输数据,第二接入类别待传输数据属于非时延敏感类型的待传输数据,是指第二接入类别待传输数据对传输时延相对第一接入类别待传输数据而言没那么敏感,当非延时敏感类型的待传输数据在传输过程中产生时延时,不会对用户体验造成较大损害,用户可以容忍适度的时延。
50.本公开实施例中,第一接入类别队列可以有一个,例如,图3中的tc队列311。第二接入类别队列可以有一个或多个,例如,图3中的语音(voice,vo)队列312、视频(video,vi)队列313、尽力服务(best effort,be)队列314以及背景(background,bk)队列315,但本公开并不限定于此。
51.如图1所示,本公开实施例提供的方法可以包括如下步骤。
52.在s110中,若确定所述第一网络设备与第二网络设备之间的传输信道处于空闲状态,则所述第一接入类别队列和所述第二接入类别队列竞争所述传输信道。
53.本公开实施例中,第一网络设备和第二网络设备可以分别为同一网络内的服务器(server)、网关设备、ap和终端设备(下面以sta为例)中的任意两个设备,第一网络设备和第二网络设备可以进行数据的传输。
54.网关设备可以向服务器、和/或ap、和/或sta传输数据,ap可以向服务器、和/或网关设备、和/或sta传输数据,sta可以向向服务器、和/或网关设备、和/或ap传输数据。
55.网关设备又称网间连接器、协议转换器等,在网络层以上实现网络互联,可以实现局域网或蜂窝网之间的通信。ap可以是局域网中的终端设备接入网络的设备。终端设备可以是与用户进行交互的设备,可以进行数据的输入和输出,通过ap或网关设备接入网络,终端设备例如可以是智能手表、电视、平板电脑、智能音箱和手机等。
56.在下面的实施例中,以第一网络设备为sta、第二网络设备为ap进行举例说明,但本公开并不限定于此。
57.在示例性实施例中,该方法还可以包括:接收所述第二网络设备通过所述传输通道发送的第二数据报文;生成针对所述第二数据报文的第二确认帧;将所述第二确认帧作为所述第一接入类别待传输数据,存入所述第一接入类别队列。
58.例如,假设第二网络设备为ap,第二数据报文可以是服务器通过ap转发给sta的视频数据、音频数据、图文数据等中的任意一种或者多种的组合,当作为第一网络设备的sta接收到ap转发的第二数据报文,且sta对第二数据报文进行校验例如crc(cyclic redundancy check,循环冗余校验)校验,校验通过后,可以通过ap给服务器返回针对第二数据报文的ack(这里为了区别开来,称之为第二确认帧),以通知服务器,该sta正常的接收到了第二数据报文。或者,若sta没有接收到ap转发的第二数据报文,或者虽然接收到了第二数据报文,但crc校验未通过,则sta可以通过ap给服务器返回针对第二数据报文的nack(非确认帧),以通知该服务器,该sta没有正常的接收到该第二数据报文;或者,sta不通过ap给服务器返回nack,当服务器超过预先设置的时长没有接收到第二确认帧时,判定该sta没有正常的接收到该第二数据报文。
59.在本公开实施例中,虽然以ack(例如这里的第二确认帧)作为属于时延敏感类型的第一接入类别待传输数据为例,但本公开并不限定于此,在其它场景中,第一接入类别待传输数据可以是语音数据、视频数据、游戏数据等中的任意一种或者多种。
60.在示例性实施例中,所述第一网络设备可以包括无线网络芯片(下面以wi

fi芯片为例,但本公开并不限定于此),所述无线网络芯片可以包括媒介接入控制层;所述媒介接入控制层可以包括顶层媒介接入控制层(upper mac,umac);所述第一接入类别队列和所述第二接入类别队列可以设置于所述顶层媒介接入控制层。
61.在示例性实施例中,该方法还可以包括:所述顶层媒介接入控制层通过专用通道
或非专用通道,获取待传输至所述第二网络设备的待传输数据;若所述待传输数据通过所述专用通道获取,则将所述待传输数据作为所述第一接入类别待传输数据,并放入所述第一接入类别队列中;若所述待传输数据通过所述非专用通道获取,则将所述待传输数据作为所述第二接入类别待传输数据,并放入所述第二接入类别队列中。
62.本公开实施例中,可以通过wi

fi芯片的驱动模块实现专用通道和非专用通道(也可以称之为普通通道)。
63.在示例性实施例中,该方法还可以包括:生成待传输至所述第二网络设备的所述待传输数据;确定所述待传输数据的服务类别(type of service);根据所述待传输数据的服务类别,确定通过所述专用通道或所述非专用通道将所述待传输数据发送至所述顶层媒介接入控制层。
64.本公开实施例中,新增专用通道以专用于属于时延敏感类型的第一接入类别待传输数据存入第一接入类别队列,非专业通道是指用于将属于非时延敏感类型的第二接入类别待传输数据存入第二接入类别队列的通道。umac可以通过是从专用通道接收到待传输数据还是非专用通道接收到待传输数据,来判断接收到的待传输数据属于时延敏感类型还是非时延敏感类型。
65.第一网络设备确定待传输数据属于时延敏感类型还是非时延敏感类型的方式并不限定于上述方式,在一些实施例中,第一网络设备确定待传输数据属于时延敏感类型还是非时延敏感类型,可以为,第一网络设备接收针对时延敏感类型的待传输数据的上报信息,按照上报信息识别时延敏感类型的待传输数据,从而判断待传输数据属于时延敏感类型还是非时延敏感类型。例如,上报信息可以是第一网络设备中安装的应用程序生成,用于标识该应用程序对应的待传输数据是否属于时延敏感类型。
66.在另一些实施例中,第一网络设备可以获取待传输数据的配置信息,按照配置信息识别是否属于时延敏感类型的待传输数据。例如,第一网络设备可以根据时延敏感类型的待传输数据的预设规则,对待传输数据的配置信息进行识别,待传输数据的配置信息例如可以是待传输数据的标识,或待传输数据中的源ip(internet protocol,网际互连协议)地址,或待传输数据的aci等中的任意一种或者多种的组合。
67.例如可以设置尽力服务(best effort,be)的接入类别的aci可以设置为0,背景(background,bk)的接入类别的aci可以设置为1,视频(video,vi)的接入类别的aci可以设置为2,语音(voice,vo)的接入类别的aci可以设置为3,新增的tc的aci可以设置为大于3的整数,例如4

255中的任意一个值,以此指示aci为大于3的整数的待传输数据为时延敏感的待传输数据。
68.在示例性实施例中,所述第一接入类别队列和所述第二接入类别队列竞争所述传输信道,可以包括:获取所述第一接入类别队列的第一仲裁帧间间隔参数、第一最小竞争窗口参数和第一最大竞争窗口参数,以及所述第二接入类别队列的第二仲裁帧间间隔参数、第二最小竞争窗口参数和第二最大竞争窗口参数;根据所述第一最小竞争窗口参数和所述第一最大竞争窗口参数确定所述第一接入类别队列的第一随机回退参数范围,以及根据所述第二最小竞争窗口参数和所述第二最大竞争窗口参数确定所述第二接入类别队列的第二随机回退参数范围;根据所述第一随机回退参数范围确定所述第一接入类别队列的第一随机回退参数,以及根据所述第二随机回退参数范围确定所述第二接入类别队列的第二随
机回退参数;根据所述第一仲裁帧间间隔参数和所述第一随机回退参数确定所述第一接入类别队列的第一倒计时,以及根据所述第二仲裁帧间间隔参数和所述第二随机回退参数确定所述第二接入类别队列的第二倒计时;所述第一接入类别队列根据所述第一倒计时,所述第二接入类别队列根据所述第二倒计时,竞争所述传输信道。
69.在示例性实施例中,所述第一仲裁帧间间隔参数可以小于或等于所述第二仲裁帧间间隔参数;所述第一最小竞争窗口参数可以小于或等于所述第二最小竞争窗口参数;所述第一最大竞争窗口参数可以小于或等于所述第二最大竞争窗口参数。
70.本公开实施例中,若第二接入类别队列包括多个,则所述第一仲裁帧间间隔参数可以小于或等于所述第二仲裁帧间间隔参数,所述第一最小竞争窗口参数可以小于或等于所述第二最小竞争窗口参数,所述第一最大竞争窗口参数可以小于或等于所述第二最大竞争窗口参数是指,第一仲裁帧间间隔参数小于或等于多个第二仲裁帧间间隔参数中的最小值,第一最小竞争窗口参数小于或等于多个第二最小竞争窗口参数中的最小值,以及第一最大竞争窗口参数小于或等于多个第二最大竞争窗口参数中的最小值,依次使得在第一接入类别队列和第二接入类别队列竞争时,第一接入类别队列具有相对较大的概率竞争到传输信道,提高第一接入类别待传输数据较早被传送出去的概率。
71.例如,假设第二接入类别队列包括vo队列、vi队列、be队列和bk队列,第一仲裁帧间间隔参数表示为aifs[tc],vo队列的第二仲裁帧间间隔参数表示为aifs[vo],vi队列的第二仲裁帧间间隔参数表示为aifs[vi],be队列的第二仲裁帧间间隔参数表示为aifs[be],bk队列的第二仲裁帧间间隔参数表示为aifs[bk];第一最小竞争窗口参数表示为cwmin[tc],vo队列的第二最小竞争窗口参数表示为cwmin[vo],vi队列的第二最小竞争窗口参数表示为cwmin[vi],be队列的第二最小竞争窗口参数表示为cwmin[be],bk队列的第二最小竞争窗口参数表示为cwmin[bk];第一最大竞争窗口参数表示为cwmax[tc],vo队列的第二最大竞争窗口参数表示为cwmax[vo],vi队列的第二最大竞争窗口参数表示为cwmax[vi],be队列的第二最大竞争窗口参数表示为cwmax[be],bk队列的第二最大竞争窗口参数表示为cwmax[bk],设置aifs[tc]≤aifs[vo]≤aifs[vi]≤aifs[be]≤aifs[bk],cwmin[tc]≤cwmin[vo]≤cwmin[vi]≤cwmin[be]≤cwmin[bk],cwmax[tc]≤cwmax[vo]≤cwmax[vi]≤cwmax[be]≤cwmax[bk]。
[0072]
在s120中,若所述第一接入类别队列竞争到所述传输信道,则通过所述传输信道向所述第二网络设备发送所述第一接入类别待传输数据。
[0073]
若第二接入类别队列竞争到传输信道,则通过该传输信道向第二网络设备传输第二接入类别待传输数据,以此可以实现第二接入类别待传输数据也可以有适度的机会被传送出去,避免被堵塞。
[0074]
继续参考图1,本公开实施例提供的方法还可以进一步包括s130和s140。
[0075]
在s130中,若确定所述传输信道处于非空闲状态,且通过所述传输信道从所述第二网络设备接收到第一数据报文,则生成针对所述第一数据报文的第一确认帧。
[0076]
例如,假设第二网络设备为ap,第一数据报文可以是服务器通过ap转发给sta的视频数据、音频数据、图文数据等中的任意一种或者多种的组合,当ap竞争到通信信道之后,将第一数据报文发送给sta,当作为第一网络设备的sta接收到ap转发的第一数据报文,且sta对第一数据报文进行校验例如crc(cyclic redundancy check,循环冗余校验)校验,校
验通过后,可以通过ap给服务器返回针对第一数据报文的ack(这里为了区别开来,称之为第一确认帧),以通知服务器,该sta正常的接收到了第一数据报文。或者,若sta没有接收到ap转发的第一数据报文,或者虽然接收到了第一数据报文,但crc校验未通过,则sta可以通过ap给服务器返回针对第一数据报文的nack(非确认帧),以通知该服务器,该sta没有正常的接收到该第一数据报文;或者,sta不通过ap给服务器返回nack,当服务器超过预先设置的时长没有接收到第一确认帧时,判定该sta没有正常的接收到该第一数据报文。
[0077]
在s140中,将所述第一接入类别待传输数据附加在所述第一确认帧中,通过所述传输信道向所述第二网络设备发送。
[0078]
本公开实施例中,第一网络设备准备给第二网络设备回传第一确认帧时,可以将第一接入类别待传输数据携带在该第一确认帧中,一并返回至第二网络设备,可以减少第一接入类别待传输数据的时延。当第一接入类别待传输数据为上述的第二确认帧时,将第二确认帧携带在第一确认帧中,由于第二确认帧数据量较小,不会给第一确认帧增加较多的负载,因此可以称第二确认帧是第一确认帧的微负载(tiny payload)。
[0079]
在示例性实施例中,所述媒介接入控制层还可以包括底层媒介接入控制层(lower mac)。
[0080]
在示例性实施例中,所述底层媒介接入控制层中可以设置确认模块(ack module)和增强型分布式信道访问模块(edca module)。
[0081]
在示例性实施例中,所述增强型分布式信道访问模块可以用于执行:若确定所述第一网络设备与第二网络设备之间的传输信道处于空闲状态,则所述第一接入类别队列和所述第二接入类别队列竞争所述传输信道;若所述第一接入类别队列竞争到所述传输信道,则通过所述传输信道向所述第二网络设备发送所述第一接入类别待传输数据。
[0082]
所述确认模块可以用于执行:若确定所述传输信道处于非空闲状态,且通过所述传输信道从所述第二网络设备接收到第一数据报文,则生成针对所述第一数据报文的第一确认帧;将所述第一接入类别待传输数据附加在所述第一确认帧中,通过所述传输信道向所述第二网络设备发送。
[0083]
即通过在lmac中增设ack module以用于通过ack附加机制,将第一接入类别队列中的第一接入类别待传输数据附加在ack帧(实施例中以第一确认帧为例)传送出去。edca module则用于执行第一接入类别队列和各个第二接入类别队列的信道竞争流程。
[0084]
在示例性实施例中,所述第一确认帧可以包括第一媒介接入控制层头(mac header)和第一帧校验序列(frame check sequence,fcs)。
[0085]
在示例性实施例中,将所述第一接入类别待传输数据附加在所述第一确认帧中,通过所述传输信道向所述第二网络设备发送,可以包括:将所述第一接入类别待传输数据插入所述第一媒介接入控制层头和所述第一帧校验序列之间,生成扩展确认帧;通过所述传输信道向所述第二网络设备发送所述扩展确认帧。例如,可以参照下图10实施例。
[0086]
在示例性实施例中,所述第一确认帧可以包括第一媒介接入控制层头和第一帧校验序列。
[0087]
在示例性实施例中,将所述第一接入类别待传输数据附加在所述第一确认帧中,通过所述传输信道向所述第二网络设备发送,可以包括:给所述第一接入类别待传输数据附加第二媒介接入控制层头和第二帧校验序列,生成接入类别数据帧;拼接所述第一确认
帧和所述接入类别数据帧,生成确认附加数据帧;通过所述传输信道向所述第二网络设备发送所述确认附加数据帧。例如,可以参照下图11实施例。
[0088]
在示例性实施例中,在将所述第一接入类别待传输数据附加在所述第一确认帧中,通过所述传输信道向所述第二网络设备发送,可以包括:在所述第一接入类别队列中标记所述第一接入类别待传输数据通过确认附加机制发送;将所述第一接入类别待传输数据附加在所述第一确认帧中,向所述第二网络设备发送;判断所述第二网络设备是否接收到附加在所述第一确认帧中的所述第一接入类别待传输数据;若确认所述第二网络设备未接收到附加在所述第一确认帧中的所述第一接入类别待传输数据,判断是否达到所述第二网络设备的重传上限;若确定未达到所述第二网络设备的重传上限,则重新将所述第一接入类别待传输数据附加在所述第一确认帧中,向所述第二网络设备发送;若确定达到所述重传上限,则将所述第一接入类别队列中的所述第一接入类别待传输数据的标记移除。例如,可以参照下图9实施例。
[0089]
在示例性实施例中,将所述第一接入类别待传输数据附加在所述第一确认帧中,通过所述传输信道向所述第二网络设备发送,可以包括:将所述第一接入类别待传输数据作为所述第一确认帧的负载,生成第一负载确认帧;通过所述传输通道向所述第二网络设备发送所述第一负载确认帧;若接收到所述第二网络设备针对所述第一负载确认帧返回的第一重传指令,则将所述第一接入类别待传输数据作为所述第一确认帧的负载,生成第二负载确认帧;通过所述传输通道向所述第二网络设备发送所述第二负载确认帧。例如,可以参照下图6实施例。
[0090]
在示例性实施例中,所述第二网络设备可以用于分别对所述第一负载确认帧中的第一接入类别待传输数据和所述第一确认帧进行校验,若所述第一接入类别待传输数据和/或所述第一确认帧校验未通过,则所述第二网络设备向所述第一网络设备返回所述第一重传指令。
[0091]
需要说明的是,第一重传指令可以是在第一接入类别待传输数据和/或所述第一确认帧校验未通过时生成的nack帧,也可以是超过预定时长没有接收到针对附加了第一接入类别待传输数据的第一确认帧的ack帧。
[0092]
本公开实施方式提供的数据传输方法,一方面,通过区分数据类型,待传输至第二网络设备的数据划分为属于时延敏感类型的第一接入类别待传输数据以及属于非时延敏感类型的第二接入类别待传输数据,并分别存入第一接入类别队列和第二接入类别队列中,可以准确地将时延敏感的待传输数据和非时延敏感的待传输数据区别开来;另一方面,对于第一接入类别队列中的属于时延敏感类型的第一接入类别待传输数据,并行的通过两条支路进行处理:第一分支,在确定所述第一网络设备与第二网络设备之间的传输信道处于空闲状态时,让所述第一接入类别队列和所述第二接入类别队列均去竞争第一网络设备与第二网络设备之间的传输信道,并在第一接入类别队列竞争到该传输信道时,通过所述传输信道向所述第二网络设备发送所述第一接入类别待传输数据;第二分支,在确定所述传输信道处于非空闲状态时,且通过所述传输信道从所述第二网络设备接收到第一数据报文,第一网络设备生成针对所述第一数据报文的第一确认帧,将所述第一接入类别待传输数据附加在所述第一确认帧中,通过所述传输信道向所述第二网络设备发送将时延敏感的待传输数据放入第一接入类别队列,采用两条分支处理第一接入类别队列中的第一接入类
别待传输数据,可以提高第一接入类别待传输数据被较快地发送出去,由此可以降低时延。同时,在第二分支中,通过将第一接入类别待传输数据附加到第一确认帧中一次传送给第二网络设备,将两次传送操作在一次传送操作中完成,可以更加快速地将时延敏感的第一接入类别待传输数据发送出去。
[0093]
随着信息技术以及智能终端的快速发展,wi

fi应用在人们的日常生活中已经越来越普及,同时,基于wi

fi的业务也越来越多,如语音、视频网络游戏和上网等业务。wi

fi应用场景主要由提供wi

fi服务的ap以及各种支持wi

fi的终端组成。目前,ap可以支持2.4g频段和5g频段,由于2.4g频段是公共、免费的频段,因此,大部分ap设备工作在2.4g频段,从而造成ap设备相互之间的干扰,导致wi

fi体验的下降。
[0094]
在wi

fi的一个重要的应用场景

家庭环境,使用wi

fi无线网络连接终端sta和ap是个高频的使用方式,但目前无线网络环境干扰严重,且无法保障其上行时延,在许多应用上,例如在云游戏中的流控(流量控制的简称),会因此误以为其网络带宽不足而降低流量,例如降低视频码率,导致用户使用体验降低。
[0095]
在下面的实施例中,以第一网络设备为sta,第二网络设备为ap,无线网络芯片为wi

fi芯片进行举例说明,但本公开并不限定于此,在其它实施例中,第一网络设备也可以是ap,第二网络设备可以是sta。
[0096]
图2示意性地示出了本公开一示例性实施例中提供的应用场景的示例性系统架构示意图。
[0097]
如图2所示,该系统可以包括服务器210,ap 220,以及sta230(也可为客户端client)。服务器210可以向ap 220发送请求,ap 220将从服务器210接收到的请求转发至sta 230。sta 230接收到ap 220转发的请求之后,对其进行处理,生成针对该请求的响应,相关技术中该响应会产生csma/ca时延,再通过ap 220转发至服务器210,服务器接收到针对上述请求的响应之后,根据发送请求的时间和接收响应的时间,计算获得rtt(round trip time,往返时间)。
[0098]
在现行的上层协议与应用中,对于流控/带宽探测/拥塞控制的方式都或多或少的依赖rtt的方式,也就是使用数据来回的时间来做计算。
[0099]
而透过此种方式进行探测时,由于802.11csma/ca机制的不确定性,服务器根据发送请求的时间和接收响应的时间计算获得的往返时延往往并不能反应其实际带宽,例如用户通过sta230看视频时,sta230已接收到服务器210传来的视频数据(即上述请求,也可以是上述第二数据报文),但当回传上行回应数据(即sta230发送给ap220的ack,这里假设是l4(layer 4,层4)ack,也可以是上述第二确认帧)时,经过多次竞争导致rtt增加,让服务器210误判其带宽降低,降低视频码率,导致用户观看视频时出现卡顿等问题。
[0100]
例如游戏玩家通过sta230玩网络游戏时,sta230已接收到服务器210传来的游戏互动数据(即上述请求,也可以是上述第二数据报文),但当回传上行回应数据(即sta230发送给ap220的ack,这里假设是l4(layer 4,层4)ack,也可以是上述第二确认帧)时,经过多次竞争导致rtt增加,让服务器210误判其带宽降低,降低游戏互动数据的传输码率,会导致网络游戏的玩家遇到卡顿、登录困难甚至掉线等问题,这降低了玩家用户的游戏体验。
[0101]
因此,如何降低上行回应时延抖动(uplink jitter),对提升用户体验会有帮助。本公开实施例提出的方式将能够比现行的802.11标准的回应方式,更能够有效降低时延抖
动。
[0102]
本公开实施例提供的方法,可用于pc(personal computer,个人计算机)端(例如台式机、笔记本电脑)、手机端、tv(television,电视机)端、车载终端、ap端等。
[0103]
图3示意性地示出了本公开一示例性实施例中提供的新增接入类别的示意图。
[0104]
本公开实施例中,第一网络设备内部包括应用程序部分、wi

fi驱动部分和wi

fi底层部分,待传输数据可以从第一设备的应用程序部分、通过专用通道或非专用通道传输到wi

fi驱动部分,并进一步到达wi

fi底层部分,最后从wi

fi底层部分向第二网络设备发送。
[0105]
如图3所示,wi

fi底层部分可以进一步包括umac 310和lmac 320。umac310主要负责ieee(institute of electrical and electronics engineers,电气与电子工程师协会)802.11相关协议的实现,和对操作系统驱动架构的适配。lmac 320主要负责和芯片相关的底层操作,以及对应的底层特性实现。
[0106]
本公开实施例中,增加了一条专用通道,待传输数据是通过普通通道或专用通道在第一设备内部从应用程序部分传输到wi

fi底层部分的。当待传输数据需要从应用程序部分传输到wi

fi底层时,对于时延敏感类型的待传输数据,可以通过专用通道到达wi

fi底层。对于非时延敏感类型的待传输数据,则只能通过普通通道到达wi

fi底层。
[0107]
通过专用通道到达wi

fi底层的待传输数据,即可确定为时延敏感类型的第一接入类别待传输数据。通过非专用通道到达wi

fi底层的待传输数据,即可确定为非时延敏感类型的第二接入类别待传输数据。
[0108]
在其它实施例中,也可以通过普通通道到达wi

fi底层,通过普通通道到达wi

fi底层的待传输数据,可能为时延敏感类型的待传输数据,也可能是非时延敏感类型的待传输数据,此时可以进一步确定待传输数据的数据类型信息是否为时延敏感类型标记信息,若为时延敏感类型标记信息,可确定为时延敏感类型的第一接入类别待传输数据;若不为时延敏感类型标记信息,可确定为非时延敏感类型的第二接入类别待传输数据。
[0109]
如图3所示,umac 310层可以设置tc队列311(第一接入类别队列),vo队列312、vi队列313、be队列314、以及bk队列315。vo队列312、vi队列313、be队列314、以及bk队列315均为第二接入类别队列。将时延敏感类型的第一接入类别待传输数据存入tc队列311中,以在极短的时间内尽快送出。将非时延敏感类型的第二接入类别待输出数据存入vo队列312、vi队列313、be队列314、以及bk队列315。应用(l2以上)可以指定待传输数据要用哪个队列来送出,例如指定待传输数据的tos(type of service,服务类别)。
[0110]
继续参考图3,lmac 320层设置了ack模块321和edca模块322。第一网络设备还可以进一步包括phy 330,以用于将第一接入类别待传输数据或者第二接入类别待传输数据发送出去。
[0111]
ack模块321用于对tc队列311执行ack附加机制,将tc队列311中按序排列的各个第一接入类别待传输数据附加在第一确认帧中传送给第二网络设备。
[0112]
基于edca模块322执行信道接入的sta,可通过为待传输数据定义多个优先级来执行信道接入,为了基于优先级来传输待传输数据,edca模块322定义五种接入类别:tc、bk、be、vi以及vo。
[0113]
在edca模块322中,新增的tc访问类别可以配置四个参数:cwmin[tc]
‑‑
第一最小
竞争窗口;cwmax[tc]
‑‑
第一最大竞争窗口;txop[tc]
‑‑
第一发送机会限制;aifs[tc]
‑‑
第一仲裁帧间间隔。
[0114]
bk访问类别可以配置四个参数:cwmin[bk]
‑‑
第二最小竞争窗口;cwmax[bk]
‑‑
第二最大竞争窗口;txop[bk]
‑‑
第二发送机会限制;aifs[bk]
‑‑
第二仲裁帧间间隔。
[0115]
be访问类别可以配置四个参数:cwmin[be]
‑‑
第二最小竞争窗口;cwmax[be]
‑‑
第二最大竞争窗口;txop[be]
‑‑
第二发送机会限制;aifs[be]
‑‑
第二仲裁帧间间隔。
[0116]
vi访问类别可以配置四个参数:cwmin[vi]
‑‑
第二最小竞争窗口;cwmax[vi]
‑‑
第二最大竞争窗口;txop[vi]
‑‑
第二发送机会限制;aifs[vi]
‑‑
第二仲裁帧间间隔。
[0117]
vo访问类别可以配置四个参数:cwmin[vo]
‑‑
第二最小竞争窗口;cwmax[vo]
‑‑
第二最大竞争窗口;txop[vo]
‑‑
第二发送机会限制;aifs[vo]
‑‑
第二仲裁帧间间隔。
[0118]
为每一类待传输数据设置这些参数能够根据应用程序组合和通信量调整网络。一个拥有待传输数据的sat要等到传输信道空闲时才能发送。本公开实施例中,这个sat等待额外的时间段。额外时间段的长度根据要发送的待传输数据的接入类别而定。为每种接入类别设置的aifs值定义等待的额外时间段。
[0119]
例如,对于新增的tc队列311中的待传输数据,aifs[tc]值设置的小一些;对于语音类的待传输数据,aifs[vo]值设置的小一些,aifs[tc]与aifs[vo]可以差不多大小;对于其它类的待传输数据,例如aifs[vi]、aifs[bk]、aifs[be]值设置的大一些。因为语音要求延迟时间短。小的aifs值意味着第一接入类别待传输数据和语音数据能够比不太敏感的通信更快地开始下一个阶段的网络竞争。对于每一种接入类别的待传输数据来说,经过对应aifs时间段之后,这个sta生成一个在对应cwmin和cwmax之间的随机数字。高优先等级的接入类别设置低的cwmin和低的cwmax。这样,高优先等级的待传输数据在大多数情况下都可以获得访问网络的权限。为高优先等级待传输数据设置的aifs值与cwmax值相加的和大于为低优先等级数据设置的aifs值与cwmin值相加的和,这样,低优先等级的待传输数据就不会完全被封锁。
[0120]
用于一个接入类别的txop定义一次发送的最大长度。如果要发送的待传输数据太大不能在对应的txop限制内发送,这个sta就把这个待传输数据分多次发送。例如,当第二确认帧作为第一接入类别待传输数据时,对于新增tc队列311中的待传输数据的txop[tc]限制很小,因为第二确认帧的数据包很短,数据包不需要分成多次发送。
[0121]
针对每个ac的退避过程中使用的上述参数可通过承载在信标帧上,而从ap配送到每个sta。当值aifs和cwmin较小时,对应的接入类别优先级高,因此信道访问延迟短,在给定业务环境中使用更多频段。
[0122]
当第一网络设备和第二网络设备之间的传输信道处于空闲状态时,tc队列311、vo队列312、vi队列313、be队列314以及bk队列315通过随机竞争获取第一网络设备和第二网络设备之间的传输信道。其中,任意一条队列都有一定的概率能够竞争上传输信道,也都存在竞争失败的可能性。最后,只有一条队列竞争上传输信道。
[0123]
当传输信道空闲时,tc队列311、vo队列312、vi队列313、be队列314以及bk队列315会竞争传输信道,竞争传输信道的方式是,根据对应的aifs参数加上对应的随机回退(backoff)参数的时间进行倒计时,在倒计时到0后,若传输信道仍空闲,则对应的队列占据传输信道,若传输信道已被占据,则该队列需要在信道空闲后重新进行倒计时操作。
[0124]
例如,假设tc队列311的aifs[tc]参数对应的时间=1*9微秒 16微秒=25微秒;vo队列312的aifs[vo]参数的时间=2*9微秒 16微秒=34微秒;vi队列313的aifs[vi]参数的时间=2*9微秒 16微秒=34微秒;be队列314的aifs[be]参数的时间=3*9微秒 16微秒=43微秒;bk队列315的aifs[bk]参数的时间=7*9微秒 16微秒=79微秒,其中9微秒是时隙(slots),16微秒是短帧间间隔(short interframe space,sifs)。
[0125]
对于每个接入类别来说,随机回退的机制是,在对应[cwmin,cwmax]中得到对应的cw,初始值cw=cwmin,竞争信道失败后对应的cw翻倍,即更新cw=2cw,直到cw达到cwmax,竞争信道成功后对应的cw恢复成cwmin。对应的随机回退参数是在[0,cw

1]中间随机选择一个数大于或等于0的整数n,对应的随机回退时间=n*9微秒,优先级越高的队列对应的[cwmin,cwmax]越小。
[0126]
例如,对于bk队列315,cwmin[bk]=16,cwmax[bk]=1024。
[0127]
对于be队列314,cwmin[be]=16,cwmax[be]=1024。
[0128]
对于vi队列313,cwmin[vi]=8,cwmax[vi]=16。
[0129]
对于vo队列312,cwmin[vo]=4,cwmax[vo]=8。
[0130]
对于tc队列311,cwmin[tc]=2,cwmax[tc]=4。
[0131]
例如,对于be队列314,初始的cw[be]=cwmin[be]=16,然后第二随机回退参数范围为[0,16

1]之间的整数,在[0,16

1]之间取个随机数,比如n=15,那么转换到第二随机回退参数backoff[be]的时间=n*9微秒=135微秒,以此类推。
[0132]
此时,be队列314的第二倒计时等于aifs[be]参数的时间加上第二随机回退参数backoff[be]的时间=aifs[be] backoff[be]=43us 135us=178us。类似的,可以计算出第一倒计时和其它接入类别的第二倒计时。
[0133]
在进行第一倒计时和第二倒计时时,tc队列311竞争上传输信道的概率比较高,因为tc队列311的aifs[tc]参数小,第二随机回退参数范围也小。
[0134]
若仅有vo队列312、vi队列313、be队列314和bk队列315,当周围环境中的设备比较多时,某一个设备竞争上传输信道的概率就会降低,相关技术中的方案仍然存在优先级低的队列先于优先级高的队列竞争上传输信道的可能性,当其中一个设备需要传输一些时延敏感的数据时,比如ack帧(例如第二确认帧)等,体验就会不好。
[0135]
利用本公开实施例提供的方法,通过在sta的mac层中新增一个新的队列tc队列311,用于放置时延敏感类型的第一接入类别待传输数据,此时时延敏感类型的第一接入类别待传输数据既可以通过竞争机制竞争传输信道,或者附着在传送端(第二网络设备)取得传送权并在传送第一数据报文后的ack(第一确认帧)之中或者之后传送出去,通过此种方式可以比相关技术中的方式更加有效地降低时延,提升服务品质。
[0136]
参考图3可知,时延敏感数据队列(tc队列311)可以通过两种方式将第一接入类别待传输数据送出:
[0137]
第一种方式是基于csma/ca机制进行竞争,如果tc队列311竞争到了传输信道,就会将此第一接入类别待传输数据送出。
[0138]
第二种方式则在传送端(例如传送下行数据的ap)竞争到传输信道并传送出数据(例如云游戏视频作为第一数据报文)后,接收端(例如sta)接收到ap发送的数据之后,本身会传送出ack或block(块)ack帧(以下统称为ack,这里是指第一确认帧),而此时接收端可
以在该ack帧后加入此第一接入类别待传输数据(以下称tiny payload)传送出去。
[0139]
第二种方式中,vo队列312、vi队列313、be队列314和bk队列315中的非时延敏感类型的第二接入类别待传输数据不会与ack帧合并一起传送出去。由此可以实现时延敏感数据优先被传送出去。
[0140]
图4示意性地示出了相关技术的回应帧传送机制的示意图。
[0141]
如图4所示,ap首先向sta发送帧1数据(frame 1 data),sta接收到ap发送的帧1数据时,生成回应该帧1数据的l4 ack帧,由于竞争传输信道失败,sta先向ap返回ack 1(可以是针对ap之前发送给sta的数据帧生成的),然后经历竞争周期(contention period)1之后,ap再向sta发送帧2数据(frame 2 data),sta接收到ap发送的帧2数据后,生成回应该帧2数据的ack 2,ack2与l4 ack帧竞争信道,假设ack 2竞争成功,则sta向ap回传ack 2。
[0142]
之后,经过竞争周期2,sta将针对帧1数据的l4 ack帧回传至ap,ap成功接收且校验通过之后,可以向sta返回针对l4 ack的ack 3。
[0143]
从图4可以看出,当sta接收到ap发送的frame 1 data时,本来要给ap返回frame l4 ack,由于没有竞争到信道,导致发生延时,在发送ack1 竞争周期1 接收到frame 2 data 发送ack2 竞争周期2之后,才向ap返回frame l4 ack。
[0144]
图5示意性地示出了本公开一示例性实施例中提供的利用回应帧进行上传数据的示意图。
[0145]
如图5所示,利用本公开实施例提供的方式,ap首先向sta发送帧1数据(可以作为第二数据报文),sta接收到ap发送的帧1数据时,生成回应该帧1数据的l4 ack帧(第二确认帧),由于竞争信道失败,sta先向ap返回ack 1,然后经历竞争周期1之后,ap再向sta发送帧2数据(可以作为第一数据报文),sta接收到ap发送的帧2数据后,生成回应该帧2数据的ack 2(作为第一确认帧),sta将l4 ack作为ack 2的微负载附加在ack 2之后,回传至ap。
[0146]
比较图3和图4可知,采用图3方式的l4 ack时延=发送ack1 竞争周期1 接收到frame 2 data 发送ack2 竞争周期2,采用图4方式的l4ack时延=发送ack1 竞争周期1 发送附加了l4 ack的ack 2,即本公开实施例通过有效增加其传送机会以降低时延。
[0147]
图5实施例中的ack可以是l2 ack,因为l2 ack的时延在协议标准上的要求极短,这部分的处理是由芯片直接处理,而l4 ack要在协议层处理,一般会需要相对较长的时间,l2 ack在l4 ack处理完之前就必须回应,否则传送端会视为传送失败,所以l4 ack未附加在ack 1之后传输给ap。
[0148]
图6示意性地示出了本公开一示例性实施例中提供的回应帧回传失败的示意图。
[0149]
如图6所示,利用本公开实施例提供的方式,ap首先向sta发送帧1数据,sta接收到ap发送的帧1数据时,生成回应该帧1数据的l4 ack帧,由于竞争信道失败,sta先向ap返回ack 1,然后经历竞争周期1之后,ap再向sta发送帧2数据,sta接收到ap发送的帧2数据后,生成回应该帧2数据的ack 2,sta将l4 ack作为ack 2的微负载附加在ack 2之后,作为第一负载确认帧,回传至ap。
[0150]
假设附加了l4 ack作为微负载的ack 2被ap接收到之后,由于回传数据可能会受到无线干扰而产生破坏,此时传送端ap会对l4 ack与ack 2同时进行crc的计算,l4 ack与ack 2其中任意一个未通过crc校验,则ap向sta重传帧2数据,称之为帧2重传数据。
[0151]
当sta接收到ap发送的帧2重传数据之后,生成针对帧2重传数据的ack 2’(仍然称
之为第一确认帧),sta将l4 ack作为ack 2’的微负载附加在ack 2之后,作为第二负载确认帧回传至ap。以此类推,直至将l4 ack作为微负载附加在第二确认帧中,成功发送给ap并且l4 ack和第二确认帧均通过crc校验,或者达到ap的重传上限,重传上限的取值可以根据实际需求设置,本公开对此不作限定。
[0152]
本公开实施例提供的方法,可以通过对附加了第一接入类别待传输数据的第一确认帧中的第一确认帧和第一接入类别待传输数据同时进行crc校验,可以保证第一确认帧和第一接入类别待传输数据在传输过程中的准确性;并通过重传机制,保证附加了第一接入类别待传输数据的第一确认帧成功传输至第二网络设备。
[0153]
图7示意性地示出了本公开一示例性实施例中提供的接收侧内部模块的实现示意图。
[0154]
如图7所示,接收侧(第一网络设备)的内部模块可以包括mac sap(service access point,服务访问点)701、phy sap 702、tc队列311、ack模块321、edca模块322、tx模块(发送模块)703、rx模块(接收模块)704、以及crc模块705。
[0155]
在内部模块与流程实现上,mac sap 701可以将属于时延敏感类型的第一接入类别待传输数据存入tc队列311中。phy sap 702可以从第二网络设备接收第一数据报文,rx模块704从phy sap 702取得数据即第一数据报文,然后发送至crc模块705以对第一数据报文进行数据正确的验证,当验证成功时,由ack模块321回应ack帧,即生成第一确认帧,此时可以将tc队列311中的第一接入类别待传输数据取出并附加在该ack帧之中或之后,并送往tx模块703进行传送,以通过phy sap 702发送至第二网络设备;或者,tc队列311与各个第二接入类别队列基于edca模块322进行信道的竞争,若tc队列311竞争到传输信道,则第一接入类别待传输数据发送至tx模块703,并通过phy sap 702发送至第二网络设备,若第二接入类别队列竞争到传输信道,则第二接入类别待传输数据发送至tx模块703,并通过phy sap 702发送至第二网络设备。如果tc队列311中没有第一接入类别待传输数据,就使用正常ack流程将该ack帧传出。
[0156]
本公开实施例提供的方法,可以应用于wi

fi环境,针对wi

fi上时延敏感的上行数据进行优化,对上层协议/应用的数据,透过新的数据传送方式降低时延,其实现方式是在mac层新增一个新的优先级队列tc,用于放置时延敏感类型的待传输数据。此时延敏感类型的待传输数据可以通过附加在正常的数据传送之中,或者附着在传送端取得传送权并传送数据后的ack回应帧后,有效降低时延敏感类型的待传输数据的时延抖动,例如云游戏中的流控回应数据,可透过此技术方案降低时延,避免服务器端误判其带宽计算,在云游戏场景中,可以在wi

fi场景中提升码率与用户体验。
[0157]
图8示意性地示出了本公开一示例性实施例中提供的接收端(第一网络设备)接收与回应确认帧的流程图。
[0158]
如图8所示,可以包括如下步骤。
[0159]
在s801中,第一网络设备等待从第二网络设备接收信息。
[0160]
在s802中,第一网络设备从第二网络设备取得接收的信息,称之为第一数据报文。
[0161]
在s803中,第一网络设备验证第一数据报文的数据是否正确;若验证数据正确,生成ack,即第一确认帧,则继续执行s804;若验证数据不正确,则返回执行上述s801。
[0162]
在s804中,第一网络设备继续判断tc队列中是否有数据;若tc队列中有数据,则继
续执行s805;若tc队列中无数据,则继续执行s806。
[0163]
在s805中,第一网络设备取出tc队列中的数据,即第一接入类别待传输数据,将数据附加在ack后,接着执行s807。
[0164]
在s806中,若tc队列中无数据,则第一网络设备直接向第二网络设备传送针对该第一数据报文的ack,接着执行s807。
[0165]
在s807中,第一网络设备将附加了第一接入类别待传输数据的ack或者该ack透过phy送出至第二网络设备。
[0166]
本公开实施例中,对于tc队列中的第一接入类别待传输数据,由ack附加机制与正常数据竞争传送并行处理,不会同时即竞争到信道,又附加到ack传送,即:或者sta竞争到信道(直接传送),或者该sta对应的ap竞争到信道并向sta发送第一数据报文生成第一确认帧,然后附加在第一确认帧传送,或者其它sta竞争到信道,此时该sta中的待传输数据不能发送出去。
[0167]
图9示意性地示出了本公开一示例性实施例中提供的接入类别数据处理流程图。
[0168]
如图9所示,可以包括如下步骤。
[0169]
在s901中,第一网络设备的上层(例如应用程序)将时延敏感数据(例如第一接入类别待传输数据,也可以称之为tc数据)放入tc队列。
[0170]
第一分支是通过ack附加机制传送时延敏感数据:
[0171]
在s902中,第一网络设备标记此tc数据是由ack附加机制送出,并由ack附加机制将tc数据传出。
[0172]
在s903中,第一网络设备判断对端(第二网络设备)是否成功收到附加了tc数据的ack;若对端成功收到附加了tc数据的ack,则继续执行s910;若对端未成功收到附加了tc数据的ack,则继续执行s904。
[0173]
在s904中,第一网络设备判断对端传送帧是否到重传上限;若到重传上限,则继续执行s906;若未到重传上限,则继续执行s905。
[0174]
在s905中,第一网络设备进行重传机制,返回上述s902。
[0175]
ack附加机制中的重传机制可参考上述图5实施例。
[0176]
在s906中,第一网络设备将tc数据的标记移除。这样可以等待后续生成的ack将其附加传送出去,或者通过竞争信道将其传送出去,保证tc数据不丢包。
[0177]
第二分支是通过竞争信道机制传送时延敏感数据:
[0178]
在s907中,第一网络设备透过正常竞争流程竞争到信道并传出。
[0179]
tc队列与第二接入类别队列竞争信道的过程可以参考上述实施例,这里假设tc队列竞争到传输信道。
[0180]
在s908中,第一网络设备判断是否收到对端ack,该ack是指对端对tc数据接收后对其进行通过crc校验后返回的ack;若收到对端ack,则继续执行s910;若未收到对端ack,则继续执行s909。
[0181]
在s909中,第一网络设备进行重传机制。
[0182]
即第一网络设备重新将tc数据发送至第二网络设备。
[0183]
在s910中,第一网络设备将该tc数据从tc队列移出。
[0184]
本公开实施例提供的方法,如果tc队列竞争到信道并将tc数据正常传送出去,就
将该tc数据由tc队列移除,如果ack模块有将此tc数据暂存在寄存器/ram(random access memory,随机存取存储器)/sram(static random

access memory,静态随机存取存储器)等暂存区中,那将此tc数据由暂存区一并移除。如果是透过ack附加机制传送,首先在传送出去前,先标记此tc数据是由ack附加机制传送,接下来判断对端是否正常收到附加了tc数据的ack,如果对端正常收到附加了tc数据的ack,就将此tc数据从暂存区和tc队列移除。如果对端没有收到附加了tc数据的ack,对端会重新送出该ack对应的数据,直到重传次数到达重传上限。如果到达重传上限都没有成功,那就将标记移除,重新回到tc数据之前的状态。
[0185]
在数据的传输上可以有两种做法:
[0186]
第一种是由ack模块取得tc数据后,打包成新的ack帧(extended ack frame,扩展确认帧),如图10所示。
[0187]
如图10所示,扩展ack帧1000可以包括mac头1001(第一mac头)、tc负载1002(即tc数据作为负载或者微负载)以及fcs 1003(第一fcs)。
[0188]
第二种是将tc数据附加在ack后传输,如图11所示。
[0189]
如图11所示,确认附加数据帧1100可以包括ack帧1110和tc数据帧1120,ack帧1110可以包括mac头1101(第一mac头)、以及fcs1102(第一fcs),tc数据帧1120可以包括mac头1103(第二mac头)、tc负载1104以及fcs 1105(第二fcs)。
[0190]
本公开实施例提供的方法,可以用于解决互联网应用协议在wi

fi环境下的上行回应不稳定的问题,例如可以用于帮助优化云游戏的视频流控性能,进而有效提升用户体验。
[0191]
图12示意性地示出了本公开另一示例性实施例中提供的数据传输方法的步骤流程图。
[0192]
图12实施例提供的方法可以应用于第二网络设备。
[0193]
如图12所示,本公开实施例提供的方法可以包括以下步骤。
[0194]
在s1210中,通过所述第二网络设备与第一网络设备之间的传输信道,接收所述第一网络设备从第一接入类别队列发送的第一接入类别待传输数据,其中所述第一接入类别待传输数据附加在第一确认指令中或者未附加在所述第一确认指令中。
[0195]
其中,所述第一接入类别待传输数据属于时延敏感类型。
[0196]
所述第一确认指令是所述第一网络设备针对所述第二网络设备发送的第一数据报文生成的。
[0197]
图12实施例的其它内容可参照上述其它实施例的内容。
[0198]
应当注意,尽管在附图中以特定顺序描述了本公开中方法的各个步骤,但是,这并非要求或者暗示必须按照该特定顺序来执行这些步骤,或是必须执行全部所示的步骤才能实现期望的结果。附加的或备选的,可以省略某些步骤,将多个步骤合并为一个步骤执行,以及/或者将一个步骤分解为多个步骤执行等。
[0199]
图13示意性地示出了本公开一示例性实施例中提供的第一网络设备的组成框图。如图13所示,图13实施例提供的第一网络设备1300可以包括第一处理单元1310以及第一通信单元1320。
[0200]
第一网络设备1300中可以设置有第一接入类别队列和第二接入类别队列。
[0201]
所述第一接入类别队列可以用于存放时延敏感类型的第一接入类别待传输数据,
所述第二接入类别队列可以用于存放非时延敏感类型的第二接入类别待传输数据。
[0202]
第一处理单元1310可以用于若确定所述第一网络设备与第二网络设备之间的传输信道处于空闲状态,则所述第一接入类别队列和所述第二接入类别队列竞争所述传输信道。
[0203]
第一通信单元1320可以用于若所述第一接入类别队列竞争到所述传输信道,则通过所述传输信道向所述第二网络设备发送所述第一接入类别待传输数据。
[0204]
第一处理单元1310还可以用于若确定所述传输信道处于非空闲状态,且通过所述传输信道从所述第二网络设备接收到第一数据报文,则生成针对所述第一数据报文的第一确认帧。
[0205]
第一通信单元1320还可以用于将所述第一接入类别待传输数据附加在所述第一确认帧中,通过所述传输信道向所述第二网络设备发送。
[0206]
在示例性实施例中,所述第一网络设备可以包括无线网络芯片,所述无线网络芯片可以包括媒介接入控制层。
[0207]
所述媒介接入控制层可以包括顶层媒介接入控制层。
[0208]
所述第一接入类别队列和所述第二接入类别队列可以设置于所述顶层媒介接入控制层。
[0209]
在示例性实施例中,第一处理单元1310还可以用于:所述顶层媒介接入控制层通过专用通道或非专用通道,获取待传输至所述第二网络设备的待传输数据;若所述待传输数据通过所述专用通道获取,则将所述待传输数据作为所述第一接入类别待传输数据,并放入所述第一接入类别队列中;若所述待传输数据通过所述非专用通道获取,则将所述待传输数据作为所述第二接入类别待传输数据,并放入所述第二接入类别队列中。
[0210]
在示例性实施例中,第一处理单元1310还可以用于:生成待传输至所述第二网络设备的所述待传输数据;确定所述待传输数据的服务类别;根据所述待传输数据的服务类别,确定通过所述专用通道或所述非专用通道将所述待传输数据发送至所述顶层媒介接入控制层。
[0211]
在示例性实施例中,所述媒介接入控制层还可以包括底层媒介接入控制层。
[0212]
所述底层媒介接入控制层中可以设置确认模块和增强型分布式信道访问模块。
[0213]
所述增强型分布式信道访问模块可以用于执行:若确定所述第一网络设备与第二网络设备之间的传输信道处于空闲状态,则所述第一接入类别队列和所述第二接入类别队列竞争所述传输信道;若所述第一接入类别队列竞争到所述传输信道,则通过所述传输信道向所述第二网络设备发送所述第一接入类别待传输数据。
[0214]
所述确认模块可以用于执行:若确定所述传输信道处于非空闲状态,且通过所述传输信道从所述第二网络设备接收到第一数据报文,则生成针对所述第一数据报文的第一确认帧;将所述第一接入类别待传输数据附加在所述第一确认帧中,通过所述传输信道向所述第二网络设备发送。
[0215]
在示例性实施例中,第一处理单元1310还可以用于:获取所述第一接入类别队列的第一仲裁帧间间隔参数、第一最小竞争窗口参数和第一最大竞争窗口参数,以及所述第二接入类别队列的第二仲裁帧间间隔参数、第二最小竞争窗口参数和第二最大竞争窗口参数;根据所述第一最小竞争窗口参数和所述第一最大竞争窗口参数确定所述第一接入类别
队列的第一随机回退参数范围,以及根据所述第二最小竞争窗口参数和所述第二最大竞争窗口参数确定所述第二接入类别队列的第二随机回退参数范围;根据所述第一随机回退参数范围确定所述第一接入类别队列的第一随机回退参数,以及根据所述第二随机回退参数范围确定所述第二接入类别队列的第二随机回退参数;根据所述第一仲裁帧间间隔参数和所述第一随机回退参数确定所述第一接入类别队列的第一倒计时,以及根据所述第二仲裁帧间间隔参数和所述第二随机回退参数确定所述第二接入类别队列的第二倒计时;所述第一接入类别队列根据所述第一倒计时,所述第二接入类别队列根据所述第二倒计时,竞争所述传输信道。
[0216]
在示例性实施例中,所述第一仲裁帧间间隔参数可以小于或等于所述第二仲裁帧间间隔参数;所述第一最小竞争窗口参数可以小于或等于所述第二最小竞争窗口参数;所述第一最大竞争窗口参数可以小于或等于所述第二最大竞争窗口参数。
[0217]
在示例性实施例中,所述第一确认帧可以包括第一媒介接入控制层头和第一帧校验序列。
[0218]
其中,第一处理单元1310还可以用于将所述第一接入类别待传输数据插入所述第一媒介接入控制层头和所述第一帧校验序列之间,生成扩展确认帧。第一通信单元1320还可以用于通过所述传输信道向所述第二网络设备发送所述扩展确认帧。
[0219]
在示例性实施例中,所述第一确认帧可以包括第一媒介接入控制层头和第一帧校验序列。
[0220]
第一处理单元1310还可以用于给所述第一接入类别待传输数据附加第二媒介接入控制层头和第二帧校验序列,生成接入类别数据帧;拼接所述第一确认帧和所述接入类别数据帧,生成确认附加数据帧。
[0221]
第一通信单元1320还可以用于通过所述传输信道向所述第二网络设备发送所述确认附加数据帧。
[0222]
在示例性实施例中,第一处理单元1310还可以用于在所述第一接入类别队列中标记所述第一接入类别待传输数据通过确认附加机制发送。
[0223]
第一通信单元1320还可以用于将所述第一接入类别待传输数据附加在所述第一确认帧中,向所述第二网络设备发送。
[0224]
第一处理单元1310还可以用于判断所述第二网络设备是否接收到附加在所述第一确认帧中的所述第一接入类别待传输数据;若确认所述第二网络设备未接收到附加在所述第一确认帧中的所述第一接入类别待传输数据,判断是否达到所述第二网络设备的重传上限。
[0225]
第一通信单元1320还可以用于若确定未达到所述第二网络设备的重传上限,则重新将所述第一接入类别待传输数据附加在所述第一确认帧中,向所述第二网络设备发送。
[0226]
第一处理单元1310还可以用于若确定达到所述重传上限,则将所述第一接入类别队列中的所述第一接入类别待传输数据的标记移除。
[0227]
在示例性实施例中,第一处理单元1310还可以用于将所述第一接入类别待传输数据作为所述第一确认帧的负载,生成第一负载确认帧。
[0228]
第一通信单元1320还可以用于通过所述传输通道向所述第二网络设备发送所述第一负载确认帧。
[0229]
第一处理单元1310还可以用于若接收到所述第二网络设备针对所述第一负载确认帧返回的第一重传指令,则将所述第一接入类别待传输数据作为所述第一确认帧的负载,生成第二负载确认帧。
[0230]
第一通信单元1320还可以用于通过所述传输通道向所述第二网络设备发送所述第二负载确认帧。
[0231]
其中,所述第二网络设备可以用于分别对所述第一负载确认帧中的第一接入类别待传输数据和所述第一确认帧进行校验,若所述第一接入类别待传输数据和/或所述第一确认帧校验未通过,则所述第二网络设备向所述第一网络设备返回所述第一重传指令。
[0232]
在示例性实施例中,第一处理单元1310还可以用于:接收所述第二网络设备通过所述传输通道发送的第二数据报文;生成针对所述第二数据报文的第二确认帧;将所述第二确认帧作为所述第一接入类别待传输数据,存入所述第一接入类别队列。
[0233]
图13实施例中的其它内容可参照上述其它实施例的描述。
[0234]
图14示意性地示出了本公开一示例性实施例中提供的第二网络设备的组成框图。
[0235]
如图14所示,本公开实施例提供的第二网络设备1400可以包括:第二通信单元1410。
[0236]
第二通信单元1410可以用于通过所述第二网络设备与第一网络设备之间的传输信道,接收所述第一网络设备从第一接入类别队列发送的第一接入类别待传输数据,其中所述第一接入类别待传输数据附加在第一确认指令中或者未附加在所述第一确认指令中。
[0237]
其中,所述第一接入类别待传输数据属于时延敏感类型。
[0238]
所述第一确认指令是所述第一网络设备针对所述第二网络设备发送的第一数据报文生成的。
[0239]
图14实施例中的其它内容可参照上述其它实施例的描述。
[0240]
图15示意性地示出了适于用来实现本公开实施例的网络设备的结构示意图。图15实施例中的网络设备可以为上述第一网络设备和/或第二网络设备。
[0241]
参考图15所示,网络设备1500可以包括:接收器1501、发射器1502、处理器1503和存储器1504(其中网络设备1500中的处理器1503的数量可以一个或多个,图15中以一个处理器为例)。
[0242]
在本技术的一些实施例中,接收器1501、发射器1502、处理器1503和存储器1504可通过总线或其它方式连接,其中,图15中以通过总线连接为例。
[0243]
存储器1504可以包括只读存储器和随机存取存储器,并向处理器1503提供指令和数据。存储器1504的一部分还可以包括nvram。存储器1504存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。
[0244]
处理器1503控制网络设备的操作,处理器1503还可以称为cpu。具体的应用中,报文的生成的设备的各个组件通过总线系统耦合在一起,其中总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都称为总线系统。
[0245]
上述本技术实施例揭示的方法可以应用于网络设备中,或者由网络设备实现。
[0246]
处理器1503可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过网络设备中的硬件的集成逻辑电路或者软件形式的指令完成。
[0247]
上述的处理器1503可以是通用处理器、dsp、asic、fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1504,处理器1503读取存储器1504中的信息,结合其硬件完成上述传输数据的方法的步骤。
[0248]
接收器1501可用于接收输入的数字或字符信息,以及产生与用户面装置的相关设置以及功能控制有关的信号输入,发射器1502可包括显示屏等显示设备,发射器1502可用于通过外接接口输出数字或字符信息。
[0249]
本技术实施例中,接收器1501和发射器1502用于实现数据收发。网络设备用于通过接收器1501和发射器1502实现数据收发,完成前述所执行的传输数据的过程。
[0250]
需要说明的是,本公开实施例所示的计算机可读存储介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、闪存、光纤、便携式紧凑磁盘只读存储器(compact disc read

only memory,cd

rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、有线等等,或者上述的任意合适的组合。
[0251]
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组
合来实现。
[0252]
应当注意,尽管在上文详细描述中提及了用于动作执行的设备的若干模块或者单元,但是这种划分并非强制性的。实际上,根据本公开的实施方式,上文描述的两个或更多模块或者单元的特征和功能可以在一个模块或者单元中具体化。反之,上文描述的一个模块或者单元的特征和功能可以进一步划分为由多个模块或者单元来具体化。
[0253]
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本公开实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是cd

rom,u盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、触控终端、或者网络设备等)执行根据本公开实施方式的方法。
[0254]
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。
[0255]
应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献