A‑MSDU聚合方法及装置,数据接收方法及装置与流程

文档序号:11971070阅读:464来源:国知局
A‑MSDU聚合方法及装置,数据接收方法及装置与流程
A-MSDU聚合方法及装置,数据接收方法及装置技术领域本发明涉及无线通信网络,尤其涉及一种A-MSDU(Aggregation-MediumaccesscontrolServiceDataUnit,聚合-媒体接入控制层服务数据单元)聚合方法及装置,以及一种数据接收方法和数据接收方。

背景技术:
BSS(BasicServiceSet,基本服务集)是WLAN(WirelessLAN,无线局域网)的基本组成单元,其包括多个STA(Station,站点)。BSS的一种常见形式是各个STA之间通过一个专职管理BSS的AP(Accesspoint,接入点)进行无线通信,该AP也称为中央站点,可以由BSS中的其中一个STA实现或由路由器或由其它设备实现,此种形式的BSS被称为带基础设施的BSS。BSS的另一种常见形式是各个STA之间直连进行通信,不需要经过AP中转,此种形式的BSS被称为IBSS(IndependentBSS,独立的基本服务集)。A-MSDU聚合技术是指将多个MSDU聚合为一个较大的载荷的技术,其通常发生在MAC(MediumAccessControl,媒体接入控制)层。具体地,在MAC层接收来自LLC(LogicalLinkControl,逻辑连接控制)层的多个MSDU,若接收的多个MSDU具体相同的RA(ReceiveAddress,接收方地址)、TA(TransmitAddress,发送方地址)和服务类型,那么可以在MAC层采用A-MSDU聚合技术将所述多个MSDU聚合成A-MSDU结构体。目前的A-MSDU聚合技术,通常是先将各个MSDU封装进A-MSDU子帧内,然后将多个A-MSDU子帧聚合为A-MSDU结构体。具体地,如表一所示,为A-MSDU结构体的结构示意:表一A-MSDU子帧1......A-MSDU子帧n在表一中,每一个A-MSDU子帧的结构示意如表二所示:表二DASALengthMSDUPadding其中,DA是destinationAddress(目的地址)的简称,是指MSDU在WLAN中最终到达的STA或AP的地址;SA指SourceAddress(源地址)的简称,是指MSDU在WLAN中的源STA或AP的地址;Length(长度)是指该A-MSDU子帧中封装的MSDU的长度;Padding(填充)是为了保证A-MSDU子帧的大小是32bit的整数倍而设置的字段。进一步地,聚合为A-MSDU结构体后,还需要为A-MSDU结构体增加MAC包头,形成A-MSDU数据包,增加了MAC包头的A-MSDU结构体的示意如表三所示:表三其中,ToDS(去向服务域标志)和FromDS(来自服务域标志)用于指示A-MSDU数据包的大致传输方向。例如,当(ToDS=0,FromDS=0)时,表示A-MSDU数据包的传输方向为由STA直连传递给STA;当(ToDS=1,FromDS=0)时,表示A-MSDU数据包的传输方向由STA发送给AP,此时包含两种情况:需要AP在MAC层中转或不需要AP在MAC层中转;当(ToDS=0,FromDS=1)时,表示A-MSDU数据包的传输方向为由AP发送给STA,此时包含两种情况:经过AP在MAC层中转的情况或没有经过AP在MAC层中转。对于上述的(ToDS,FromDS),在A-MSDU数据包中的MAC包头中的Address1-4的设置如表四所示:表四ToDSFromDSAddress1Address2Address3Address400RA=DATA=SABSSIDN/A01RA=DATA=BSSIDBSSIDN/A10RA=BSSIDTA=SABSSIDN/A表四中RA表示立即接收方的地址,TA表示发送方的地址,BSSID在IBSS网络中,是由发送方创建的一个随机数;BSSID在拥有AP的网络中,是指AP的地址。

技术实现要素:
本发明实施例所要解决的技术问题在于,提供一种能够提高A-MSDU聚合效率的A-MSDU聚合方法及装置,以及一种数据接收方法和数据接收方。为了解决上述技术问题,本发明实施例提供了一种A-MSDU聚合方法,包括:将多个MSDU中的部分MSDU按照自定义A-MSDU子帧结构封装、其余的MSDU按照A-MSDU子帧结构封装,以形成A-MSDU结构体。相应地,本发明实施例还提供了一种A-MSDU聚合方法,包括:将多个MSDU中的全部MSDU按照自定义A-MSDU子帧结构封装,以形成A-MSDU结构体。相应地,本发明实施例还提供了一种数据接收方法,包括:接收A-MSDU数据包,所述A-MSDU数据包包括:MAC包头和具有多个子帧结构的A-MSDU结构体,所述子帧结构全部为自定义A-MSDU子帧结构,或者部分为自定义A-MSDU子帧结构、余下部分为A-MSDU子帧结构;解析所述A-MSDU数据包。相应地,本发明实施例还提供了一种A-MSDU聚合装置,包括:封装模块,用于将多个MSDU中的部分MSDU按照自定义A-MSDU子帧结构封装、其余的MSDU按照A-MSDU子帧结构封装,以形成A-MSDU结构体。相应地,本发明实施例还提供了一种A-MSDU聚合装置,包括:封装模块,用于将多个MSDU中的全部MSDU按照自定义A-MSDU子帧结构封装,以形成A-MSDU结构体。相应地,本发明实施例还公开了一种数据接收方,包括:接收模块,用于接收A-MSDU数据包,所述A-MSDU数据包包括:MAC包头具有多个子帧结构的A-MSDU结构体,所述子帧结构全部为自定义A-MSDU子帧结构,或者部分为自定义A-MSDU子帧结构、余下部分为A-MSDU子帧结构;解析模块,用于解析所述A-MSDU数据包。实施本发明实施例,具有如下有益效果:本发明实施例由于在对多个MSDU进行封装时,部分或全部地采用自定义A-MSDU子帧结构进行封装,因此可以提高A-MSDU聚合技术的聚合效率。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明的A-MSDU聚合方法的实施例的流程示意图;图2是本发明的数据发送方法的实施例的流程示意图;图3是本发明的数据接收方法的实施例的流程示意图;图4是本发明的A-MSDU聚合装置的实施例的结构示图;图5是本发明的数据发送方的实施例的结构示意图;图6是本发明的数据接收方的实施例的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。对于A-MSDU聚合技术,发明人在实际应用中发现,当(ToDS=0,FromDS=0)时,由于RA=DA,TA=SA,因此Address1(第一地址)和Address2(第二地址)的设置与每一个A-MSDU子帧中封装的MSDU的DA和SA的设置相同,因此使得在A-MSDU聚合过程中出现信息冗余(主要是RA和TA冗余),降低了A-MSDU的聚合效率。具体地,此种情况下A-MSDU数据包的结构示意如表五所示:表五当(ToDS=1,FromDS=0)且不需要AP在MAC层中转时,由于DA=BSSID,那么Address1和Address2同样与每一个A-MSDU子帧中封装的MSDU的DA和SA的设置相同,因此使得在A-MSDU聚合过程中出现信息冗余(主要是BSSID和TA的冗余),从而降低了A-MSDU的聚合效率。具体地,此种情况下A-MSDU数据包的结构示意如表六所示:表六当(ToDS=0,FromDS=1)且没有经过AP在MAC层中转时,由于SA=BSSID,那么Address1和Address2同样与每一个A-MSDU子帧中的DA和SA的设置相同,因此将导致在A-MSDU聚合过程中出现信息冗余(主要是指RA和BSSID冗余),从而降低了A-MSDU的聚合效率。具体地,此种情况下的A-MSDU数据包的结构示意如表七所示:表七因此,基于上述A-MSDU聚合过程中出现信息冗余,降低了A-MSDU聚合效率的问题,请参考图1,是本发明提出的A-MSDU聚合方法的实施例的流程示意图,该方法的执行主体可以是A-MSDU聚合装置,该A-MSDU聚合装置可以是站点或接入点,当然该A-MSDU聚合装置也可以是可以集成在站点或接入点上的设备,具体地所述方法包括:步骤S11,将多个MSDU中的部分MSDU按照自定义A-MSDU子帧结构封装、其余的MSDU按照A-MSDU子帧结构封装,以形成A-MSDU结构体;或者,将多个MSDU中的全部MSDU按照自定义A-MSDU子帧结构封装,以形成A-MSDU结构体。其中,步骤S11中的多个MSDU符合A-MSDU聚合条件,A-MSDU聚合条件为:多个MSDU的接收方地址相同、发送方地址相同和服务类型相同。由于多个MSDU的接收方地址和发送方地址相同,因此该多个MSDU的传输方向也相同,与形成的A-MSDU结构体的传输方向也相同,以及与携带了该A-MSDU结构体的A-MSDU数据包的传输方向也相同。在步骤S11中,A-MSDU子帧结构如前述表二所示,主要包括:DA字段、SA字段、Length字段、MSDU字段和Padding字段。自定义A-MSDU子帧结构如表八所示,包括:Length字段、MSDU字段和Padding字段,需要说明的是Padding字段的作用是保证封装了MSDU后的自定义A-MSDU子帧结构的大小是32bit的整数倍,因此Padding字段的有否是不一定的。与A-MSDU子帧结构相比,自定义A-MSDU子帧结构主要少了DA字段和SA字段,因此采用自定义A-MSDU子帧结构可以减少对DA字段和SA字段的封装,从而提高A-MSDU聚合效率。表八LengthMSDUPadding进一步地,步骤S11中所述多个MSDU中是部分还是全部按照自定义A-MSDU子帧结构进行封装主要与MSDU的传输方向有关。在本实施例中,涉及的MSDU的传输方向主要包括以下三种:第一种、由站点向站点直连传输,此时(ToDS=0,FromDS=0),RA=DA,TA=SA。第二种、由站点向接入点传输且不需要所述接入点在MAC层中转,此时(ToDS=1,FromDS=0),且RA=BSSID=DA,TA=SA。第三种、由接入点向站点传输且没有经过所述接入点在MAC层中转,此时(ToDS=0,FromDS=1),RA=DA,TA=BSSID=SA。优选地,当MSDU的传输方向为上述第一种时,步骤S11中所述多个MSDU中的全部MSDU按照自定义A-MSDU子帧结构进行封装。此时形成的A-MSDU结构体的示意如九所示。表九自定义A-MSDU子帧1......自定义A-MSDU子帧n优选地,当MSDU的传输方向为上述第二种或第三种时,步骤S11中所述多个MSDU中的第一个MSDU按照A-MSDU子帧结构封装,余下的MSDU按照自定义A-MSDU子帧结构封装。其中,第一个MSDU是指需要首先封装的MSDU,其可以是多个MSUD中的任一个,封装完成后,其位于A-MSDU结构体的第一个子帧结构中。需要说明的是,当MSDU的传输为上述第一种时,也可以采用本优选方式中的将多个MSDU中的第一个MSDU按照A-MSDU子帧结构封装,余下的MSDU按照自定义A-MSDU子帧结构封装。需要说明的是,将按照A-MSDU子帧结构封装第一个MSDU时,将A-MSDU子帧的DA字段设置为第一指示值,SA字段设置为第二指示值,第一指示值和第二指示值可以相同,也可以不相同,优先地将第一指示值和第二指示值均设置为BSSID或全0或全1。具体地,将所述DA字段设置为第一指示值,SA字段设置为第二指示值的目的的两个:一是用于在解析A-MSDU结构体时,指示该A-MSDU结构体的余下部分为按照自定义A-MSDU子帧结构封装;二是用于与MAC包头中的ToDS和FromDS一起指示MSDU的传输方向。因此当MSDU的传输方向为上述第二种时,不宜取(第一指示值=BSSID,第二指示值=TA),当MSDU的传输方向为上述第三种时,不宜取(第一指示值=RA,第二指示值=BSSID),因为这不能使之与现有的全部按照A-MSDU子帧结构封装的方式区分开来,不能实现上述的指示余下部分为按照自定义A-MSDU子帧结构封装的作用;另外,当MSDU的传输方向为上述第二种时,不宜将(第一指示值,第二指示值)取为需要接入点做中转时DA字段和SA字段的值,因为这样会导致指示了错误的传输方向,同理当MSDU的传输方向为上述第三种时,不宜将(第一指示值,第二指示值)取为已经接入点做中转时DA字段和SA字段的值,因为这样也会导致指示了错误的传输方向。表十是本优选方式的一种A-MSDU结构体的示意。表十优选地,当MSDU的传输方向为上述三种中的任一种时,步骤S11中所述多个MSDU中的全部MSDU按照自定义A-MSDU子帧结构进行封装。步骤S11中全部按照自定义A-MSDU子帧结构进行封装后,还在A-MSDU结构体的起始处设置指示字段,并将该指示字段的值置为指示值。其中指示值的作用有两个:一是指示A-MSDU结构体中全部MSDU按照自定义A-MSDU子帧结构封装;二是用于指示MSDU的传输方向,具体地当MSDU的传输方向为上述第二种和第三种时,指示值与(ToDS,FromDS)一起指示MSDU的传输方向。在一种实施方式中,指示字段可以设置为8位(第0位至第7位),其中第0位作为指示位,第1至第7位作为保留位,当第0位的值为“1”,具有上述的两个作用。表十一是本优选方式的一种A-MSDU结构体的示意。表十一由于本发明实施例在封装MSDU时,部分或全部地采用自定义A-MSDU子帧结构进行封装,而自定义A-MSDU子帧结构与传统的A-MSDU子帧结构相比,可以不用封装DA字段和SA字段,因此全部或部分地采用自定义A-MSDU子帧结构封装MSDU,可以提高A-MSDU聚合技术的聚合效率。请参考图2,是本发明的一种数据发送方法的实施例的流程示意图,所述方法的执行主体可以是数据发送方,数据发送方可以由站点或接入点实现,具体地所述方法包括:步骤S21,按照图1实施例中的A-MSDU聚合方法形成A-MSDU结构体。步骤S22,将携带有所述A-MSDU结构体的A-MSDU数据包发送给数据接收方。其中,步骤S22主要包括:为步骤S21形成的A-MSDU结构体封装MAC包头,以形成A-MSDU数据包。为A-MSDU结构体封装MAC包头主要包括:对MAC包头中的ToDS和FromDS进行设置,ToDS和FromDS可以表示A-MSDU数据包的大致传输方向;以及对MAC包头中的第一地址字段(Address1)和第二地址字段(Address2)的设置,第一地址字段设置为A-MSDU数据包的立即接收方地址,第二地址字段设置为A-MSDU数据包的发送方地址。本实施例,由于采用图1实施例中的A-MSDU聚合方法形成A-MSDU结构体,因此其具有图1实施例中所述的提高A-MSDU聚合效率的有益效果。并且,由于A-MSDU聚合效率的提高,将提高A-MSDU数据包的发送速率,从而增加数据发送方的处理效率。请参考图3,是本发明的一种数据接收方法的实施例的流程示意图,所述方法的执行主体可以是数据接收方,该数据接收方可以由站点或接入点来实现,具体地,所述方法包括:步骤S31,接收A-MSDU数据包。其中,A-MSDU数据包包括:MAC包头和具有多个子帧结构的A-MSDU结构体,所述子帧结构全部为自定义A-MSDU子帧结构,或者部分为自定义A-MSDU子帧结构、余下部分为A-MSDU子帧结构。具体地,MAC包头包括:ToDS、FromDS、第一地址字段(Address1)和第二地址字段(Address2)的设置。ToDS和FromDS字段是用于指示A-MSDU数据包的大致传输方向,第一地址字段是用于指示A-MSDU数据包的立即接收方地址,第二地址字段是用于指示A-MSDU数据包的发送方地址。具体地,A-MSDU子帧结构如前述表二所示,包括:DA字段、SA字段、Length字段、MSDU字段和Padding字段。自定义A-MSDU子帧结构如表八所示,包括:Length字段、MSDU字段和Padding字段,与A-MSDU子帧结构相比,自定义A-MSDU子帧结构主要少了DA字段和SA字段。步骤S32,解析步骤S31接收的A-MSDU数据包。其中,步骤S32中解析A-MSDU数据包时主要包括两部分的解析,一是MAC包头,另一是A-MSDU结构体。进一步地,对MAC包的解析是本领域技术人员所熟知的技术,在此不赘述,本实施例的后续中主要会用到从MAC包头中解析出的ToDS字段、FromDS字段、第一地址字段和第二地址字段的值。在一种实施方式中,在解析MAC包头时,若(ToDS=0,FromDS=0),则A-MSDU数据包的传输方向为由站点向站点直连传输,因此A-MSDU结构体中的所有子帧结构均可以优选为自定义A-MSDU子帧结构,则步骤S32按照自定义A-MSDU子帧结构解析A-MSDU结构体中的子帧结构。具体地,按照自定义A-MSDU子帧结构解析A-MSDU结构体中的子帧结构的操作主要包括:在解析A-MSDU结构体中的子帧结构时,将第一地址字段的值作为子帧结构中封装的MSDU的目的地址,将第二地址字段的值作为子帧结构中封装的MSDU的源地址。在另一种实施方式中,在解析MAC包头时,若(ToDS=1,FromDS=0)或(ToDS=0,FromDS=1),则此时只能表示A-MSDU数据包的大致传输方向是由站点向接入点或者由接入点向站点;因此步骤S32进一步地按照A-MSDU子帧结构解析A-MSDU结构体的第一个子帧结构;当第一个子帧结构的DA字段为第一指示值,SA字段的值为第二指示值,其中第一指示值和第二指示值的含义如图1实施例中所述,且优选为BSSID或全0或全1,则首先能够表明A-MSDU数据包的传输方向为图1实施例中的第二种或第三种,其次能够表明余下的所有子帧结构为自定义A-MSDU子帧结构,则步骤S32按照自定义A-MSDU子帧结构解析A-MSDU结构体中余下的子帧结构。需要说明的是,若第一个子帧结构中的DA字段为第一指示值,SA字段为第二指示值时,则将第一地址字段的值作为第一个子帧结构中封装的MSDU的目的地址,将第二地址字段的值作为第一个子帧结构中封装的MSDU的源地址。具体地,步骤S32按照自定义A-MSDU子帧结构解析A-MSDU结构体中余下的子帧结构的操作主要包括:在解析A-MSDU结构体中余下的子帧结构时,将第一地址字段的值作为子帧结构中封装的MSDU的目的地址,将第二地址字段的值作为子帧结构中封装的MSDU的源地址。在另一种实施方式中,当(ToDS=0,FromDS=0)或(ToDS=1,FromDS=0)或(ToDS=0,FromDS=1)时,除了(ToDS=0,FromDS=0)能够表示A-MSDU的数据包的传输方向为由站点直连到站点外,其余两种情况都仅能指示A-MSDU的数据包的大致传输方向。因此在步骤S32进一步地解析位于A-MSDU结构体起始处的指示字段,看指示字段的值是否被置为了指示值,此处指示字段和指示值与图1实施例中的指示字段和指示值的含义和作用相同,在此不赘述;若指示字段被置为了指示值,则表示A-MSDU结构体中全部的子帧结构均为自定义A-MSDU子帧结构,则按照自定义A-MSDU子帧结构解析A-MSDU结构体中的子帧结构。具体地,按照自定义A-MSDU子帧结构解析A-MSDU结构体中的子帧结构的操作主要包括:在解析A-MSDU结构体中的子帧结构时,将第一地址字段的值作为子帧结构中封装的MSDU的目的地址,将第二地址字段的值作为子帧结构中封装的MSDU的源地址。本实施例的数据接收方法,由于接收的A-MSDU数据包中包含部分或全部地自定义A-MSDU子帧结构,而自定义A-MSDU子帧结构与传统的A-MSDU子帧结构相比,不包括DA字段和SA字段,因此可以提高数据接收方解析自定义A-MSDU子帧结构的速率,从而提高数据接收方接收A-MSDU数据包的速率,提高数据接收方的处理效率。下面介绍相应于上述方法流程的装置实施例。请参考图4,是本发明的A-MSDU聚合装置的实施例的结构示意图,所述A-MSDU聚合装置4包括:封装模块41,用于将多个MSDU中的部分MSDU按照自定义A-MSDU子帧结构封装、其余的MSDU按照A-MSDU子帧结构封装,以形成A-MSDU结构体。或者,所述封装模块41,用于将所述多个MSDU中的全部MSDU按照自定义A-MSDU子帧结构封装,以形成A-MSDU结构体。其中,多个MSDU符合A-MSDU聚合条件,A-MSDU聚合条件为:多个MSDU的接收方地址相同、发送方地址相同和服务类型相同。由于多个MSDU的接收方地址和发送方地址相同,因此该多个MSDU的传输方向也相同,与形成的A-MSDU结构体的传输方向也相同,以及与携带了该A-MSDU结构体的A-MSDU数据包的传输方向也相同。A-MSDU子帧结构如前述表二所示,包括:DA字段、SA字段、Length字段、MSDU字段和Padding字段。自定义A-MSDU子帧结构如表八所示,包括:Length字段、MSDU字段和Padding字段,与A-MSDU子帧结构相比,自定义A-MSDU子帧结构主要少了DA字段和SA字段,因此采用自定义A-MSDU子帧结构可以减少对DA字段和SA字段的封装,从而提高聚合效率。进一步地,封装模块41是将多个MSDU中是部分还是全部按照自定义A-MSDU子帧结构进行封装主要与MSDU的传输方向有关。在本实施例中,涉及的MSDU的传输方向主要包括以下三种:第一种、由站点向站点直连传输,此时(ToDS=0,FromDS=0),RA=DA,TA=SA。第二种、由站点向接入点传输且不需要所述接入点在MAC层中转,此时(ToDS=1,FromDS=0),且RA=BSSID=DA,TA=SA。第三种、由接入点向站点传输且没有经过所述接入点在MAC层中转,此时(ToDS=0,FromDS=1),RA=DA,TA=BSSID=SA。优选地,当MSDU的传输方向为上述第一种时,封装模块41将所述多个MSDU中的全部MSDU按照自定义A-MSDU子帧结构进行封装。此时的形成的A-MSDU结构体的示意如九所示。优选地,当MSDU的传输方向为上述第二种或第三种时,封装模块41将所述多个MSDU中的第一个MSDU按照A-MSDU子帧结构封装,余下的MSDU按照自定义A-MSDU子帧结构封装。需要说明的是第一个MSDU是指需要首先封装的MSDU,封装完成后,其位于A-MSDU结构体的第一个子帧结构中。需要说明的是,封装模块41用于按照A-MSDU子帧结构封装第一个MSDU时,将A-MSDU子帧的DA字段设置为第一指示值,SA字段设置为第二指示值,第一指示值和第二指示值可以相同,也可以不相同,优先地将第一指示值和第二指示值均设置为BSSID或全0或全1。具体地,将所述DA字段设置为第一指示值,SA字段设置为第二指示值的目的的两个:一是用于在解析A-MSDU结构体时,指示该A-MSDU结构体的余下部分为按照自定义A-MSDU子帧结构封装;二是用于与MAC包头中的ToDS和FromDS一起指示MSDU的传输方向。因此当MSDU的传输方向为上述第二种时,不宜取(第一指示值=BSSID,第二指示值=TA),当MSDU的传输方向为上述第三种时,不宜取(第一指示值=RA,第二指示值=BSSID),因为这不能使之与现有的全部按照A-MSDU子帧结构封装的方式区分开来,不能实现上述的指示余下部分为按照自定义A-MSDU子帧结构封装的作用;另外,当MSDU的传输方向为上述第二种时,不宜将(第一指示值,第二指示值)取为需要接入点做中转时DA字段和SA字段的值,因为这样会导致指示了错误的传输方向,同理当MSDU的传输方向为上述第三种时,不宜将(第一指示值,第二指示值)取为已经接入点做中转时DA字段和SA字段的值,因为这样也会导致指示了错误的传输方向。表十是本优选方式的一种A-MSDU结构体的示意。优选地,当MSDU的传输方向为上述三种中的任一种时,封装模块41用于将所述多个MSDU中的全部MSDU按照自定义A-MSDU子帧结构进行封装。封装模块41用于将所述多个MSDU全部按照自定义A-MSDU子帧结构进行封装后,还在A-MSDU结构体的起始处设置指示字段,并将该指示字段的值置为指示值。其中指示值的作用有两个:一是指示A-MSDU结构体中全部MSDU按照自定义A-MSDU子帧结构封装;二是用于指示MSDU的传输方向,具体地当MSDU的传输方向为上述第二种和第三种时,指示值与(ToDS,FromDS)一起指示MSDU的传输方向。在一种实施方式中,指示字段可以设置为8位(第0位至第7位),其中第0位作为指示位,第1至第7位作为保留位,当第0位的值为“1”,具有上述的两个作用。表十一是本优选方式的一种A-MSDU结构体的示意。本发明实施例由于封装模块41在对多个MSDU进行封装时,部分或全部地采用自定义A-MSDU子帧结构进行封装,因此可以提高A-MSDU聚合技术的聚合效率。由于本发明实施例在封装MSDU时,部分或全部地采用自定义A-MSDU子帧结构进行封装,而自定义A-MSDU子帧结构与传统的A-MSDU子帧结构相比,可以不用封装DA字段和SA字段,因此全部或部分地采用自定义A-MSDU子帧结构封装MSDU,可以提高A-MSDU聚合技术的聚合效率。请参考图5,是本发明的一种数据发送方的实施例的结构示意图,所述数据发送方5包括:图4实施例中的A-MSDU聚合装置4,用于形成A-MSDU结构体。处理模块52,用于将携带有所述A-MSDU结构体的A-MSDU数据包发送给数据接收方。其中,处理模块52主要用于为A-MSDU聚合装置4形成的A-MSDU结构体封装MAC包头,以形成A-MSDU数据包。为A-MSDU结构体封装MAC包头主要包括:对MAC包头中的ToDS和FromDS进行设置,ToDS和FromDS可以表示A-MSDU数据包的大致传输方向;以及对MAC包头中的第一地址字段(Address1)和第二地址字段(Address2)的设置,第一地址字段设置为A-MSDU数据包的立即接收方地址,第二地址字段设置为A-MSDU数据包的发送方地址。本实施例,由于采用图4实施例中的A-MSDU聚合装置来形成A-MSDU结构体,因此其具有图4实施例中所述的提高A-MSDU聚合效率的有益效果。并且,由于A-MSDU聚合效率的提高,将提高A-MSDU数据包的发送速率,从而增加数据发送方的处理效率。请参考图6,是本发明的一种数据接收方的实施例的结构示意图,所述数据接收方6包括:接收模块61,用于接收A-MSDU数据包。其中,A-MSDU数据包包括:MAC包头和具有多个子帧结构的A-MSDU结构体,所述子帧结构全部为自定义A-MSDU子帧结构,或者部分为自定义A-MSDU子帧结构、余下部分为A-MSDU子帧结构。具体地,MAC包头包括:ToDS、FromDS、第一地址字段(Address1)和第二地址字段(Address2)的设置。ToDS和FromDS字段是用于指示A-MSDU数据包的大致传输方向,第一地址字段是用于指示A-MSDU数据包的立即接收方地址,第二地址字段是用于指示A-MSDU数据包的发送方地址。具体地,A-MSDU子帧结构如前述表二所示,包括:DA字段、SA字段、Length字段、MSDU字段和Padding字段。自定义A-MSDU子帧结构如表八所示,包括:Length字段、MSDU字段和Padding字段,与A-MSDU子帧结构相比,自定义A-MSDU子帧结构主要少了DA字段和SA字段。解析模块62,用于解析所述接收模块61接收的A-MSDU数据包。其中,解析模块62中解析A-MSDU数据包时主要包括两部分的解析,一是MAC包头,另一是A-MSDU结构体。进一步地,解析模块62对MAC包的解析是本领域技术人员所熟知的技术,在此不赘述,本实施例的后续中主要会用到从MAC包头中解析出的ToDS字段、FromDS字段、第一地址字段和第二地址字段的值。在一种实施方式中,解析模块62在解析MAC包头时,若发现(ToDS=0,FromDS=0),则A-MSDU数据包的传输方向为由站点向站点直连传输,因此A-MSDU结构体中的所有子帧结构均可以为自定义A-MSDU子帧结构,则解析模块62按照自定义A-MSDU子帧结构解析A-MSDU结构体中的子帧结构。具体地,解析模块62按照自定义A-MSDU子帧结构解析A-MSDU结构体中的子帧结构的操作主要包括:在解析A-MSDU结构体中的子帧结构时,将第一地址字段的值作为子帧结构中封装的MSDU的目的地址,将第二地址字段的值作为子帧结构中封装的MSDU的源地址。在另一种实施方式中,解析模块62在解析MAC包头时,若发现(ToDS=1,FromDS=0)或(ToDS=0,FromDS=1),则此时只能表示A-MSDU数据包的大致传输方向是由站点向接入点或者由接入点向站点;因此解析模块62进一步地按照A-MSDU子帧结构解析A-MSDU结构体的第一个子帧结构;当解析模块62发现第一个子帧结构的DA字段为第一指示值,SA字段的值为第二指示值,其中第一指示值和第二指示值的含义如图1实施例中所述,且优选为BSSID或全0或全1,则首先能够表明A-MSDU数据包的传输方向为图4实施例中的第二种或第三种,其次能够表明余下的所有子帧结构为自定义A-MSDU子帧结构,则解析模块62按照自定义A-MSDU子帧结构解析A-MSDU结构体中余下的子帧结构。需要说明的是,若第一个子帧结构中的DA字段为第一指示值,SA字段为第二指示值时,则解析模块62将第一地址字段的值作为第一个子帧结构中封装的MSDU的目的地址,将第二地址字段的值作为第一个子帧结构中封装的MSDU的源地址。具体地,解析模块62按照自定义A-MSDU子帧结构解析A-MSDU结构体中余下的子帧结构的操作主要包括:在解析A-MSDU结构体中余下的子帧结构时,将第一地址字段的值作为子帧结构中封装的MSDU的目的地址,将第二地址字段的值作为子帧结构中封装的MSDU的源地址。在另一种实施方式中,解析模块62在解析MAC包头时,若发现(ToDS=0,FromDS=0)或(ToDS=1,FromDS=0)或(ToDS=0,FromDS=1)时,除了(ToDS=0,FromDS=0)能够表示A-MSDU的数据包的传输方向为由站点直连到站点外,其余两种情况都仅能指示A-MSDU的数据包的大致传输方向。因此解析模块62进一步地解析位于A-MSDU结构体起始处的指示字段,看指示字段的值是否被置为了指示值,此处指示字段和指示值与图4实施例中的指示字段和指示值的含义和作用相同,在此不赘述;若指示字段被置为了指示值,则表示A-MSDU结构体中全部的子帧结构均为自定义A-MSDU子帧结构,则解析模块62按照自定义A-MSDU子帧结构解析A-MSDU结构体中的子帧结构。具体地,解析模块62按照自定义A-MSDU子帧结构解析A-MSDU结构体中的子帧结构的操作主要包括:在解析A-MSDU结构体中的子帧结构时,将第一地址字段的值作为子帧结构中封装的MSDU的目的地址,将第二地址字段的值作为子帧结构中封装的MSDU的源地址。本实施例的数据接收方,由于接收的A-MSDU数据包中包含部分或全部地自定义A-MSDU子帧结构,而自定义A-MSDU子帧结构与传统的A-MSDU子帧结构相比,不包括DA字段和SA字段,因此可以提高数据接收方解析自定义A-MSDU子帧结构的速率,从而提高数据接收方接收A-MSDU数据包的速率,提高数据接收方的处理效率。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1