数据处理方法、装置及系统与流程

文档序号:11842891阅读:247来源:国知局
数据处理方法、装置及系统与流程

本发明涉及通信技术领域,特别涉及一种数据处理方法、装置及系统。



背景技术:

802.11是一种无线局域网通信标准。802.11n引入了可选的聚合媒体接入控制协议数据单元(英文:Aggregation-Medium access control Protocol Data Unit;简称:A-MPDU)的传输机制,在随后的802.11ac中A-MPDU则变成了必选机制。在A-MPDU传输机制中,发送端将多个消息在MAC层聚合成A-MPDU形式的一个消息,并将该消息传输至接收端。

A-MPDU包括多个子帧,每个子帧由位于该子帧头部的定界符(英文:Delimiter)、位于子帧中间的媒体接入控制协议数据单元(英文:Medium access control Protocol Data Unit;简称:MPDU)和位于子帧尾部的填充位(英文:Pad)组成。其中,Delimiter长为4字节,Delimiter包括MPDU长度指示(英文:MPDU Length)和MPDU特征位(英文:MPDU Signature),MPDU Length用于指示该子帧中MPDU的长度,MPDU Signature用于标识该子帧的起始位置,MPDU Signature的内容为给定序列(当前802.11标准中为“0x4E”);Pad的长度为0-3字节,其作用是使得MPDU和Pad的长度之和为4字节整数倍,故Pad的长度可以根据该MPDU的长度进行调节。在数据解析时,接收端根据Delimiter中MPDU Length推测下一个子帧的起始位置,若某一子帧的MPDU Length解码错误,则可以在A-MPDU中搜索下一个MPDU Signature,从而确定下一个子帧的起始位置。由于Delimiter的长度为4个字节,所以,接收端可以以4字节为单位,在该A-MPDU中搜索MPDU Signature序列。若当前4字节中最后一个字节与MPDU Signature匹配,则可认为当前4字节就是一个子帧的Delimiter;否则,搜索下一个4字节并重新执行匹配操作。显然,这种以4字节为单位进行搜索的方式相比以1字节为单位进行搜索,在数据解析的速度上快了很多。因此,可以根据每个子帧中MPDU的长度调节相应Pad的长度,使得MPDU与相应Pad的长度之和为4字节的整数倍, 以便于接收端在接收到该数据消息后能够以4字节为单位进行快速搜索。802.11ac还引入了下行多用户多入多出(英文:DownLink Multiple User-Multiple Input Multiple Output;简称:DL MU-MIMO)机制,即发送端能够生成多个数据消息,其中的每个数据消息均以A-MPDU的形式进行传输,发送端同时将多个数据消息承载在不同空间流上发送至多个接收端。

在802.11ac下一代的技术标准802.11ax中,MAC层同样采用A-MPDU结构,并且子帧的基本结构与802.11ac中子帧的基本结构相同,且802.11ax中也采用了DL MU-MIMO机制。此外,802.11ax还引入了其他多用户机制,如正交频分复用(英文:Orthogonal Frequency Division Multiple Access;简称:OFDMA)和上行多用户多入多出(英文:Uplink Multiple User-Multiple Input Multiple Output;简称:UL MU-MIMO)。无论哪种多用户传输机制,都会导致多个A-MPDU同时存在,而每个A-MPDU包含多个子帧,即多用户传输机制导致传输中同时出现大量子帧,相应地,需要通过Pad进行填充的子帧个数也会很多,增加了通信系统的额外开销,因此,造成了通信系统资源的浪费。



技术实现要素:

为了解决通信系统资源的浪费的问题,本发明提供了一种数据处理方法、装置及系统。所述技术方案如下:

第一方面,提供了一种数据处理方法,用于发送端,所述数据处理方法包括:

根据多个媒体接入控制协议数据单元MPDU生成聚合媒体接入控制协议数据单元A-MPDU,所述A-MPDU包括y个子帧,每个所述子帧包括定界符和数据部分,所述数据部分包括所述MPDU,每个所述子帧的数据部分的长度均大于等于零,每个所述子帧的定界符的长度均为x字节,x≥1,x为整数,y≥2,y为整数;

若第k个子帧是非空子帧,且位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度不为x的整数倍,则对所述第k个子帧进行第一处理,所述第一处理使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为x的整数倍,1≤k≤y,k为整数;

其中,当存在第k+1个子帧且是非空子帧时,对第k个子帧的第一处理的 过程包括:将位于第k+1个子帧的MPDU的头部的长度为m的部分移至位于第k个子帧的定界符之后的所述第k个子帧的MPDU之后、所述第k+1个子帧的定界符之前,使得位于所述第k个子帧的定界符之后、所述第k+1个子帧的定界符之前的数据部分的长度为x的整数倍,其中,0<m≤x-1,m为整数;

向接收端发送处理后的所述A-MPDU,以便于所述接收端根据处理后的所述A-MPDU解析得到所述多个MPDU。

结合第一方面,在第一方面的第一种可实现方式中,

所述数据处理方法还包括:当第k个子帧是最后一个子帧或存在第k+1个子帧且是空子帧时,所述对第k个子帧的第一处理的过程包括:

在位于所述第k个子帧的定界符之后的所述第k个子帧的MPDU之后添加长度为Q的填充位,使得所述填充位的长度Q与所述位于所述第k个子帧的定界符之后的所述第k个子帧的MPDU的长度之和等于所述x的整数倍,其中,0<Q≤x-1,Q为整数。

结合第一方面或第一方面的第一种可实现方式,在第一方面的第二种可实现方式中,

当k≥2时,第k个子帧的定界符中包括第一长度指示信息和第二长度指示信息;

其中,所述第一长度指示信息用于指示所述第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度,所述第二长度指示信息用于指示所述第k个子帧的MPDU移至第k-1个子帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度;

或者,所述第一长度指示信息用于指示所述第k个子帧的MPDU移至所述第k-1个子帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度与所述第k个子帧的MPDU位于所述第k个子帧的定界符之后的部分的长度之和,所述第二长度指示信息用于指示所述第k+1个子帧的MPDU移至所述第k个子帧的MPDU之后、所述第k+1个子帧的定界符之前的部分的长度;

或者,所述第一长度指示信息用于指示所述第k个子帧的MPDU移至所述第k-1个子帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度与所述第k个子帧的MPDU位于所述第k个子帧的定界符之后的部分的长度之和,所述第二长度指示信息用于指示所述第k个子帧的MPDU移至所述第k-1个子 帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度;

或者,所述第一长度指示信息用于指示所述第k个子帧的MPDU移至所述第k-1个子帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度与所述第k个子帧的MPDU位于所述第k个子帧的定界符之后的部分的长度之和,所述第二长度指示信息用于指示所述第k个子帧的MPDU位于所述第k个子帧的定界符之后的部分的长度。

第二方面,提供了一种数据处理方法,用于发送端,所述数据处理方法包括:

根据多个媒体接入控制协议数据单元MPDU生成聚合媒体接入控制协议数据单元A-MPDU,所述A-MPDU包括y个子帧,每个所述子帧包括定界符和数据部分,所述数据部分包括所述MPDU,每个所述子帧的数据部分的长度均大于等于零,每个所述子帧的定界符的长度均为x,x≥1,x为整数,y≥2,y为整数;

若第k个子帧是非空子帧,且位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度不为x的整数倍,则对所述第k个子帧进行第二处理,所述第二处理使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为x的整数倍,1≤k≤y,k为整数;

其中,当存在第k+1个子帧且是非空子帧时,对第k个子帧的第二处理的过程包括:将位于第k个子帧的MPDU的尾部的长度为m的部分移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后,使得位于第k个子帧的定界符之后、第k+1个定界符之前的数据部分的长度为x的整数倍,其中,0≤m≤x-1,m为整数;

向接收端发送处理后的所述A-MPDU,以便于所述接收端根据处理后的所述A-MPDU解析得到所述多个MPDU。

结合第二方面,在第二方面的第一种可实现方式中,

所述数据处理方法还包括:当第k个子帧是最后一个子帧或存在第k+1个子帧且是空子帧时,所述对第k个子帧的第二处理的过程包括:

在位于所述第k个子帧的定界符之后的所述第k个子帧的MPDU之后添加长度为Q的填充位,使得第k-1个子帧的MPDU移至所述第k个子帧的MPDU之前、所述第k个子帧的定界符之后的部分的长度、所述填充位的长度Q与所 述第k个子帧的MPDU的长度之和等于所述x的整数倍,其中,0<Q≤x-1,Q为整数。

结合第二方面或第二方面的第一种可实现方式,在第二方面的第二种可实现方式中,

当k≥2时,第k个子帧的定界符中包括第一长度指示信息和第二长度指示信息;

其中,所述第一长度指示信息用于指示所述第k个子帧的MPDU移至所述第k+1个子帧的MPDU之前、所述第k+1个子帧的定界符之后的部分的长度与所述第k个子帧的MPDU位于所述第k+1个子帧的定界符之前的部分的长度之和,所述第二长度指示信息用于指示第k-1个子帧的MPDU移至所述第k个子帧的MPDU之前、所述第k个子帧的定界符之后的部分的长度。

结合第二方面的第二种可实现方式,在第二方面的第三种可实现方式中,

所述每个子帧的定界符中还包括用于指示所述每个子帧位置的位置标识,当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,所述多个子帧中除所述第k个子帧之外的其他子帧定界符中的位置标识与所述第k个子帧定界符中的位置标识不同。

结合第二方面的第二种可实现方式或第二方面的第三种可实现方式,在第二方面的第四种可实现方式中,

所述每个子帧的定界符中还包括用于指示所述每个子帧中是否存在填充位的填充标识。

第三方面,提供了一种数据处理方法,用于接收端,所述数据处理方法包括:

接收发送端发送的聚合媒体接入控制协议数据单元A-MPDU,所述A-MPDU包括y个子帧,每个所述子帧包括定界符和数据部分,每个所述子帧的数据部分的长度均大于等于零,每个所述子帧的定界符的长度均为x,x≥1,x为整数,所述定界符中包括第一长度指示信息和第二长度指示信息,所述数据部分包括媒体接入控制协议数据单元MPDU,每两个所述子帧的定界符之间的数据部分的长度均为x的整数倍,y≥2,y为整数;

依次对所述多个子帧中的子帧以长度x为单位进行解析处理得到多个 MPDU,其中,第k个子帧为所述y个子帧中的任意一个,1≤k≤y,k为整数,对第k个子帧的解析处理过程包括:根据所述第k个子帧的定界符中的第一长度指示信息和第二长度指示信息,从第k-1个子帧的数据部分中获取所述第k个子帧的MPDU的第一部分,从所述第k个子帧的数据部分中获取所述第k个子帧的MPDU的第二部分,将所述第一部分和所述第二部分合并,组成所述第k个子帧的MPDU,此时2≤k≤y;

其中,所述第一长度指示信息用于指示所述第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度,所述第二长度指示信息用于指示所述第k个子帧的MPDU移至第k-1个子帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度;或者,所述第一长度指示信息用于指示所述第k个子帧的MPDU移至所述第k-1个子帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度与所述第k个子帧的MPDU位于所述第k个子帧的定界符之后的部分的长度之和,所述第二长度指示信息用于指示所述第k+1个子帧的MPDU移至所述第k个子帧的MPDU之后、所述第k+1个子帧的定界符之前的部分的长度;或者,所述第一长度指示信息用于指示所述第k个子帧的MPDU移至所述第k-1个子帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度与所述第k个子帧的MPDU位于所述第k个子帧的定界符之后的部分的长度之和,所述第二长度指示信息用于指示所述第k个子帧的MPDU移至所述第k-1个子帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度;或者,所述第一长度指示信息用于指示所述第k个子帧的MPDU移至所述第k-1个子帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度与所述第k个子帧的MPDU位于所述第k个子帧的定界符之后的部分的长度之和,所述第二长度指示信息用于指示所述第k个子帧的MPDU位于所述第k个子帧的定界符之后的部分的长度。

第四方面,提供了一种数据处理方法,用于接收端,所述数据处理方法包括:

接收发送端发送的聚合媒体接入控制协议数据单元A-MPDU,所述A-MPDU包括y个子帧,每个所述子帧包括定界符和数据部分,每个所述子帧的数据部分的长度均大于等于零,每个所述子帧的定界符的长度均为x,x≥1,x为整数,所述定界符中包括第一长度指示信息和第二长度指示信息,所述数据 部分包括媒体接入控制协议数据单元MPDU,每两个所述子帧的定界符之间的数据部分的长度均为x的整数倍,y≥2,y为整数;

依次对所述多个子帧中的子帧以长度x为单位进行解析处理得到多个MPDU,其中,第k个子帧为所述y个子帧中的任意一个,1≤k≤y,k为整数,所述解析处理包括对第k个子帧进行第一解析处理:根据所述第k个子帧的定界符中的第一长度指示信息和第二长度指示信息,从所述第k个子帧的数据部分中获取所述第k个子帧的MPDU的第一部分,从第k+1个子帧的数据部分中获取所述第k个子帧的MPDU的第二部分,将所述第一部分和所述第二部分合并,组成所述第k个子帧的MPDU,此时1≤k≤y-1;

其中,所述第一长度指示信息用于指示所述第k个子帧的MPDU移至所述第k+1个子帧的MPDU之前、所述第k+1个子帧的定界符之后的部分的长度与所述第k个子帧的MPDU位于所述第k+1个子帧的定界符之前的部分的长度之和,所述第二长度指示信息用于指示第k-1个子帧的MPDU移至所述第k个子帧的MPDU之前、所述第k个子帧的定界符之后的部分的长度。

结合第四方面,在第四方面的第一种可实现方式中,

所述定界符中还包括填充标识,所述解析处理还包括:

检测所述第k个子帧中的填充标识;

当检测出所述填充标识指示所述第k个子帧中不存在所述填充位时执行所述第一解析处理;

当检测出所述填充标识指示所述第k个子帧中存在所述填充位,则对所述第k个子帧执行第二解析处理:根据所述第k个子帧的定界符中的第一长度指示信息与第二长度指示信息,在所述第k个子帧的数据部分中,获取与所述第k个子帧的定界符的距离为e,且长度为f的部分,作为所述第k个子帧的MPDU,e为所述第k个子帧的定界符中的第二长度指示信息所指示的长度,f为所述第k个子帧的定界符中的第一长度指示信息所指示的长度。

第五方面,提供了一种数据处理装置,所述数据处理装置为发送端,所述数据处理装置包括:

生成单元,用于根据多个媒体接入控制协议数据单元MPDU生成聚合媒体接入控制协议数据单元A-MPDU,所述A-MPDU包括y个子帧,每个所述子帧包括定界符和数据部分,所述数据部分包括所述MPDU,每个所述子帧的数据 部分的长度均大于等于零,每个所述子帧的定界符的长度均为x字节,x≥1,x为整数,y≥2,y为整数;

第一处理单元,用于在第k个子帧是非空子帧,且位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度不为x的整数倍时,对所述第k个子帧进行第一处理,所述第一处理使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为x的整数倍,1≤k≤y,k为整数;

其中,当存在第k+1个子帧且是非空子帧时,对第k个子帧的第一处理的过程包括:将位于第k+1个子帧的MPDU的头部的长度为m的部分移至位于第k个子帧的定界符之后的所述第k个子帧的MPDU之后、所述第k+1个子帧的定界符之前,使得位于所述第k个子帧的定界符之后、所述第k+1个子帧的定界符之前的数据部分的长度为x的整数倍,其中,0<m≤x-1,m为整数;

发送单元,用于向接收端发送处理后的所述A-MPDU,以便于所述接收端根据处理后的所述A-MPDU解析得到所述多个MPDU。

结合第五方面,在第五方面的第一种可实现方式中,

当第k个子帧是最后一个子帧或存在第k+1个子帧且是空子帧时,所述对第k个子帧的第一处理的过程包括:

在位于所述第k个子帧的定界符之后的所述第k个子帧的MPDU之后添加长度为Q的填充位,使得所述填充位的长度Q与所述位于所述第k个子帧的定界符之后的所述第k个子帧的MPDU的长度之和等于所述x的整数倍,其中,0<Q≤x-1,Q为整数。

结合第五方面或第五方面的第一种可实现方式,在第五方面的第二种可实现方式中,

当k≥2时,第k个子帧的定界符中包括第一长度指示信息和第二长度指示信息;

其中,所述第一长度指示信息用于指示所述第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度,所述第二长度指示信息用于指示所述第k个子帧的MPDU移至第k-1个子帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度;

或者,所述第一长度指示信息用于指示所述第k个子帧的MPDU移至所述 第k-1个子帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度与所述第k个子帧的MPDU位于所述第k个子帧的定界符之后的部分的长度之和,所述第二长度指示信息用于指示所述第k+1个子帧的MPDU移至所述第k个子帧的MPDU之后、所述第k+1个子帧的定界符之前的部分的长度;

或者,所述第一长度指示信息用于指示所述第k个子帧的MPDU移至所述第k-1个子帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度与所述第k个子帧的MPDU位于所述第k个子帧的定界符之后的部分的长度之和,所述第二长度指示信息用于指示所述第k个子帧的MPDU移至所述第k-1个子帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度;

或者,所述第一长度指示信息用于指示所述第k个子帧的MPDU移至所述第k-1个子帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度与所述第k个子帧的MPDU位于所述第k个子帧的定界符之后的部分的长度之和,所述第二长度指示信息用于指示所述第k个子帧的MPDU位于所述第k个子帧的定界符之后的部分的长度。

第六方面,提供了一种数据处理装置,所述数据处理装置为发送端,所述数据处理装置包括:

生成单元,用于根据多个媒体接入控制协议数据单元MPDU生成聚合媒体接入控制协议数据单元A-MPDU,所述A-MPDU包括y个子帧,每个所述子帧包括定界符和数据部分,所述数据部分包括所述MPDU,每个所述子帧的数据部分的长度均大于等于零,每个所述子帧的定界符的长度均为x,x≥1,x为整数,y≥2,y为整数;

第二处理单元,用于在第k个子帧是非空子帧,且位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度不为x的整数倍时,对所述第k个子帧进行第二处理,所述第二处理使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为x的整数倍,1≤k≤y,k为整数;

其中,当存在第k+1个子帧且是非空子帧时,对第k个子帧的第二处理的过程包括:将位于第k个子帧的MPDU的尾部的长度为m的部分移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后,使得位于第k个子帧的定界符之后、第k+1个定界符之前的数据部分的长度为x的整数倍,其中,0≤m≤ x-1,m为整数;

发送单元,用于向接收端发送处理后的所述A-MPDU,以便于所述接收端根据处理后的所述A-MPDU解析得到所述多个MPDU。

结合第六方面,在第六方面的第一种可实现方式中,

当第k个子帧是最后一个子帧或存在第k+1个子帧且是空子帧时,所述对第k个子帧的第二处理的过程包括:

在位于所述第k个子帧的定界符之后的所述第k个子帧的MPDU之后添加长度为Q的填充位,使得第k-1个子帧的MPDU移至所述第k个子帧的MPDU之前、所述第k个子帧的定界符之后的部分的长度、所述填充位的长度Q与所述第k个子帧的MPDU的长度之和等于所述x的整数倍,其中,0<Q≤x-1,Q为整数。

结合第六方面或第六方面的第一种可实现方式,在第六方面的第二种可实现方式中,

当k≥2时,第k个子帧的定界符中包括第一长度指示信息和第二长度指示信息;

其中,所述第一长度指示信息用于指示所述第k个子帧的MPDU移至所述第k+1个子帧的MPDU之前、所述第k+1个子帧的定界符之后的部分的长度与所述第k个子帧的MPDU位于所述第k+1个子帧的定界符之前的部分的长度之和,所述第二长度指示信息用于指示第k-1个子帧的MPDU移至所述第k个子帧的MPDU之前、所述第k个子帧的定界符之后的部分的长度。

结合第六方面的第二种可实现方式,在第六方面的第三种可实现方式中,

所述每个子帧的定界符中还包括用于指示所述每个子帧位置的位置标识,当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,所述多个子帧中除所述第k个子帧之外的其他子帧定界符中的位置标识与所述第k个子帧定界符中的位置标识不同。

结合第六方面的第二种可实现方式或第六方面的第三种可实现方式,在第六方面的第四种可实现方式中,

所述每个子帧的定界符中还包括用于指示所述每个子帧中是否存在填充位的填充标识。

第七方面,提供了一种数据处理装置,所述数据处理装置为接收端,所述数据处理装置包括:

接收单元,用于接收发送端发送的聚合媒体接入控制协议数据单元A-MPDU,所述A-MPDU包括y个子帧,每个所述子帧包括定界符和数据部分,每个所述子帧的数据部分的长度均大于等于零,每个所述子帧的定界符的长度均为x,x≥1,x为整数,所述定界符中包括第一长度指示信息和第二长度指示信息,所述数据部分包括媒体接入控制协议数据单元MPDU,每两个所述子帧的定界符之间的数据部分的长度均为x的整数倍,y≥2,y为整数;

解析单元,用于依次对所述多个子帧中的子帧以长度x为单位进行解析处理得到多个MPDU,其中,第k个子帧为所述y个子帧中的任意一个,1≤k≤y,k为整数,对第k个子帧的解析处理过程包括:根据所述第k个子帧的定界符中的第一长度指示信息和第二长度指示信息,从第k-1个子帧的数据部分中获取所述第k个子帧的MPDU的第一部分,从所述第k个子帧的数据部分中获取所述第k个子帧的MPDU的第二部分,将所述第一部分和所述第二部分合并,组成所述第k个子帧的MPDU,此时2≤k≤y;

其中,所述第一长度指示信息用于指示所述第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度,所述第二长度指示信息用于指示所述第k个子帧的MPDU移至第k-1个子帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度;或者,所述第一长度指示信息用于指示所述第k个子帧的MPDU移至所述第k-1个子帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度与所述第k个子帧的MPDU位于所述第k个子帧的定界符之后的部分的长度之和,所述第二长度指示信息用于指示所述第k+1个子帧的MPDU移至所述第k个子帧的MPDU之后、所述第k+1个子帧的定界符之前的部分的长度;或者,所述第一长度指示信息用于指示所述第k个子帧的MPDU移至所述第k-1个子帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度与所述第k个子帧的MPDU位于所述第k个子帧的定界符之后的部分的长度之和,所述第二长度指示信息用于指示所述第k个子帧的MPDU移至所述第k-1个子帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度;或者,所述第一长度指示信息用于指示所述第k个子帧的MPDU移至所述第k-1个子帧的MPDU之后、所述第k个子帧的定界符之前的部分的长度与所述第k个子帧的 MPDU位于所述第k个子帧的定界符之后的部分的长度之和,所述第二长度指示信息用于指示所述第k个子帧的MPDU位于所述第k个子帧的定界符之后的部分的长度。

第八方面,提供了一种数据处理装置,所述数据处理装置为接收端,所述数据处理装置包括:

接收单元,用于接收发送端发送的聚合媒体接入控制协议数据单元A-MPDU,所述A-MPDU包括y个子帧,每个所述子帧包括定界符和数据部分,每个所述子帧的数据部分的长度均大于等于零,每个所述子帧的定界符的长度均为x,x≥1,x为整数,所述定界符中包括第一长度指示信息和第二长度指示信息,所述数据部分包括媒体接入控制协议数据单元MPDU,每两个所述子帧的定界符之间的数据部分的长度均为x的整数倍,y≥2,y为整数;

解析单元,用于依次对所述多个子帧中的子帧以长度x为单位进行解析处理得到多个MPDU,其中,第k个子帧为所述y个子帧中的任意一个,1≤k≤y,k为整数,所述解析单元包括:

第一解析单元,用于对第k个子帧执行第一解析处理:根据所述第k个子帧的定界符中的第一长度指示信息和第二长度指示信息,从所述第k个子帧的数据部分中获取所述第k个子帧的MPDU的第一部分,从第k+1个子帧的数据部分中获取所述第k个子帧的MPDU的第二部分,将所述第一部分和所述第二部分合并,组成所述第k个子帧的MPDU,此时1≤k≤y-1;

其中,所述第一长度指示信息用于指示所述第k个子帧的MPDU移至所述第k+1个子帧的MPDU之前、所述第k+1个子帧的定界符之后的部分的长度与所述第k个子帧的MPDU位于所述第k+1个子帧的定界符之前的部分的长度之和,所述第二长度指示信息用于指示第k-1个子帧的MPDU移至所述第k个子帧的MPDU之前、所述第k个子帧的定界符之后的部分的长度。

结合第八方面,在第八方面的第一种可实现方式中,

所述定界符中还包括填充标识,所述解析单元还包括:

检测单元,用于检测所述第k个子帧中的填充标识;

所述第一解析单元,具体用于在所述检测单元检测出所述第k个子帧中不存在所述填充位时,对所述第k个子帧进行所述第一解析处理;

第二解析单元,用于在所述检测单元检测出所述填充标识指示所述第k个 子帧中存在所述填充位时,对所述第k个子帧执行第二解析处理:根据所述第k个子帧的定界符中的第一长度指示信息与第二长度指示信息,在所述第k个子帧的数据部分中,获取与所述第k个子帧的定界符的距离为e,且长度为f的部分,作为所述第k个子帧的MPDU,e为所述第k个子帧的定界符中的第二长度指示信息所指示的长度,f为所述第k个子帧的定界符中的第一长度指示信息所指示的长度。

第九方面,提供了一种数据处理系统,所述数据处理系统包括:发送端和接收端,

所述发送端为第五方面或第六方面所述的数据处理装置;

所述接收端为第七方面或第八方面所述的数据处理装置。

综上所述,本发明提供了一种数据处理方法、装置及系统,对于A-MPDU的两个相邻子帧,发送端将后一子帧的MPDU头部的部分字节前移至前一子帧的MPDU的尾部,或发送端将前一子帧的MPDU尾部的部分字节后移至后一子帧的MPDU的头部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明实施例提供的一种数据处理系统的场景示意图;

图2为本发明实施例提供的一种A-MPDU的结构示意图;

图3是本发明实施例提供的一种数据处理方法的方法流程图;

图4是本发明实施例提供的另一种数据处理方法的方法流程图;

图5是本发明实施例提供的又一种数据处理方法的方法流程图;

图6是本发明实施例提供的一种两个相邻的子帧的结构示意图;

图7是本发明实施例提供的一种第一处理的示意图;

图8是本发明实施例提供的另一种第一处理的示意图;

图9是本发明实施例提供的一种定界符的结构示意图;

图9-1是本发明实施例提供的另一种定界符的结构示意图;

图9-2是本发明实施例提供的又一种定界符的结构示意图;

图9-3是本发明实施例提供的再一种定界符的结构示意图;

图9-4是本发明另一实施例提供的一种定界符的结构示意图;

图9-5是本发明另一实施例提供的另一种定界符的结构示意图;

图10是本发明实施例提供的再一种数据处理方法的方法流程图;

图11是本发明另一实施例提供的一种数据处理方法的方法流程图;

图12是本发明另一实施例提供的另一种数据处理方法的方法流程图;

图13是本发明实施例提供的另一种两个相邻的子帧的结构示意图;

图14是本发明实施例提供的一种第二处理的示意图;

图15是本发明实施例提供的另一种第二处理的示意图;

图16是本发明实施例提供的一种解析处理的过程的方法流程图;

图17是本发明实施例提供的一种数据处理装置的结构示意图;

图18是本发明实施例提供的另一种数据处理装置的结构示意图;

图19是本发明实施例提供的又一种数据处理装置的结构示意图;

图20是本发明实施例提供的再一种数据处理装置的结构示意图;

图21是本发明实施例提供的一种解析单元的结构示意图;

图22是本发明实施例提供的另一种解析单元的结构示意图;

图23是本发明另一实施例提供的一种数据处理装置的结构示意图;

图24是本发明另一实施例提供的另一种数据处理装置的结构示意图;

图25是本发明另一实施例提供的又一种数据处理装置的结构示意图;

图26是本发明另一实施例提供的再一种数据处理装置的结构示意图。

通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

如图1所示,本发明实施例提供了一种数据处理系统的场景示意图,该数据处理系统包括发送端A和接收端B,发送端A能够生成多个数据消息,并能够同时将该多个数据消息聚合为A-MPDU发送至接收端B,该A-MPDU可以包括多个子帧。该发送端A可以为路由器,该接收端B可以为计算机或手机。需要说明的是,该发送端A和该接收端B还可以为其他设备,本发明实施例对此不做限定。

图2为802.11n和802.11ac中的A-MPDU的结构示意图,如图2所示,该A-MPDU包括n个子帧,且n大于等于1,每个子帧由位于子帧头部的定界符、位于子帧中间的MPDU和位于子帧尾部的填充位组成。每个子帧的定界符中包括MPDU长度指示和MPDU特征位,MPDU长度指示用于指示该子帧中MPDU的长度(单位为字节),MPDU特征位用于标识该子帧的起始位置,在802.11标准中,该定界符的长度为4字节。接收端在接收到该A-MPDU并在进行解析时,接收端根据定界符中MPDU长度指示推测下一个子帧的起始位置,若某一子帧的MPDU长度指示解码错误,则可以通过在A-MPDU中搜索下一个MPDU特征位,找到下一个子帧并进行下一个子帧的解析。由于该MPDU特征位位于子帧的定界符中,为了便于接收端通过搜索下一个MPDU特征位来确定下一个子帧的位置,通常在每个子帧的MPDU之后添加填充位,使得MPDU和填充位的长度之和为定界符的长度的整数倍,填充位的长度可以根据子帧中MPDU的长度进行调整。填充位的具体填充内容可以是全0或全1或随机序列,属于冗余位。

示例的,本发明实施例中的长度以字节为单位,例如,定界符的长度为4字节,即该定界符中字节的数目为4。示例的,图2中的子帧2,由位于该子帧2头部的定界符、位于子帧2中间的MPDU和位于子帧2尾部的填充位组成, 其中该定界符的长度为4个字节,填充位的长度为0-3个字节,在该子帧2的MPDU的长度不是4字节的整数倍时,通过在该子帧的MPDU之后添加填充位使得该子帧2的MPDU和填充位长度之和为4字节的整数倍。

如图3所示,本发明实施例提供了一种数据处理方法,该数据处理方法可以用于发送端,该数据处理方法方法可以包括:

步骤301、根据多个MPDU生成A-MPDU,A-MPDU包括y个子帧,每个子帧可以包括定界符和数据部分,数据部分可以包括MPDU,每个子帧的数据部分的长度均大于等于零,每个子帧的定界符的长度均为x字节,x≥1,x为整数,y≥2,y为整数。

示例的,当前802.11n和802.11ac标准中定界符长度x为4字节。假设共有N1个MPDU,而A-MPDU中的子帧个数为N2,则N2大于或等于N1。其中,N1个子帧与N1个MPDU对应,剩余N2-N1个子帧为空子帧,其作用为使相邻非空子帧之间的距离满足预设要求(空子帧位于两个非空子帧之间)或将A-MPDU填充至一定长度(非空子帧位于所有非空子帧之后)。当然,A-MPDU中也可能仅包含N1个非空子帧而不含空子帧,即N1=N2。空子帧仅包括定界符而不包括MPDU,即空子帧可以包括定界符和长度为零的数据部分,所以空子帧的长度为固定的x字节。所述多个子帧是指由N1个非空子帧和可能存在的空子帧组成的有序子帧序列。空子帧的数据部分的长度等于零,非空子帧的数据部分的长度大于零。

步骤302、若第k个子帧是非空子帧,且位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度不为x的整数倍,则对第k个子帧进行第一处理,第一处理使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为x的整数倍,1≤k≤y,k为整数;其中,当存在第k+1个子帧且是非空子帧时,对第k个子帧的第一处理的过程可以包括:将位于第k+1个子帧的MPDU的头部的长度为m的部分移至位于第k个子帧的定界符之后的第k个子帧的MPDU之后、第k+1个子帧的定界符之前,使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为x的整数倍,其中,0<m≤x-1,m为整数。

步骤303、向接收端发送处理后的所述A-MPDU,以便于所述接收端根据 处理后的所述A-MPDU解析得到所述多个MPDU。

综上所述,由于本发明实施例提供的数据处理方法中,对于A-MPDU的两个相邻子帧,发送端将后一子帧的MPDU头部的部分字节前移至前一子帧的MPDU的尾部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

值得说明的是,上述第一处理过程从A-MPDU的第一个子帧开始逐子帧执行,前一子帧的执行结果会影响后一子帧执行时需要前移的字节数。上述第一处理过程的执行结果是对于多个子帧中的任一子帧,其数据部分的一部分位于其定界符之前,其数据部分的另一部分位于其定界符之后。当然,若第k个子帧为第一个子帧时,由于该第一个子帧前面没有子帧,所以该第一个子帧的数据部分中位于定界符之前的一部分不存在,即该第一个子帧的数据部分均位于该第一个子帧的定界符之后。

当第k个子帧为空子帧且第k个子帧是最后一个子帧,或第k个子帧为空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,对第k个子帧的第一处理的过程可以包括:在位于第k个子帧的定界符之后的第k个子帧的MPDU之后添加长度为Q的填充位,使得填充位的长度Q与位于第k个子帧的定界符之后的第k个子帧的MPDU的长度之和等于x的整数倍,其中,0<Q≤x-1,Q为整数。换言之,当第k个子帧为空子帧且第k个子帧是最后一个子帧,或第k个子帧为空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,对第k个子帧的处理规则与其它子帧不同,由于此时第k个子帧没有后续子帧给它提供前移字节,故只能采用填充冗余位的方法。需要说明的是,空子帧仅包括定界符而不包括MPDU,即空子帧包括定界符和长度为零的数据部分,所以空子帧的长度为固定的x字节,非空子帧为数据子帧。

进一步的,当k≥2时,第k个子帧的定界符中包括第一长度指示信息和第 二长度指示信息;其中,第一长度指示信息用于指示第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度,第二长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度,当k=1时,第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU的长度,第k个子帧的定界符中的第二长度指示信息所指示的长度为零。或者,第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度之和,第二长度指示信息用于指示第k+1个子帧的MPDU移至第k个子帧的MPDU之后、第k+1个子帧的定界符之前的部分的长度,当k=1时,第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU的长度,第k个子帧的定界符中的第二长度指示信息用于指示第二个子帧的MPDU移至第一个子帧的MPDU之后、第二个子帧的定界符之前的部分的长度。或者,第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度之和,第二长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度,当k=1时,第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU的长度,第k个子帧的定界符中的第二长度指示信息所指示的长度为零。或者,第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度之和,第二长度指示信息用于指示第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度,当k=1时,第k个子帧的定界符中的第一长度指示信息和第二长度指示信息均用于指示第k个子帧的MPDU的长度。需要注意的是,空子帧的定界符中的第一长度指示和第二长度指示均设置为零。

综上所述,由于本发明实施例提供的数据处理方法中,对于A-MPDU的两个相邻子帧,发送端将后一子帧的MPDU头部的部分字节前移至前一子帧的MPDU的尾部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为 定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

如图4所示,本发明实施例提供了另一种数据处理方法,该数据处理方法可以用于接收端,该数据处理方法可以包括:

步骤401、接收发送端发送的A-MPDU,A-MPDU包括y个子帧,每个子帧可以包括定界符和数据部分,每个子帧的数据部分的长度均大于等于零,每个子帧的定界符的长度均为x,x≥1,x为整数,定界符中可以包括第一长度指示信息和第二长度指示信息,数据部分可以包括MPDU,每两个子帧的定界符之间的数据部分的长度均为x的整数倍,y≥2,y为整数。

步骤402、依次对多个子帧中的子帧以长度x为单位进行解析处理得到多个MPDU,其中,第k个子帧为所述y个子帧中的任意一个,1≤k≤y,k为整数,对第k个子帧的解析处理过程可以包括:根据第k个子帧的定界符中的第一长度指示信息和第二长度指示信息,从第k-1个子帧的数据部分中获取第k个子帧的MPDU的第一部分,从第k个子帧的数据部分中获取第k个子帧的MPDU的第二部分,将第一部分和第二部分合并,组成第k个子帧的MPDU,此时2≤k≤y。

示例的,第一长度指示信息用于指示第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度,第二长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度;或者,第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度之和,第二长度指示信息用于指示第k+1个子帧的MPDU移至第k个子帧的MPDU之后、第k+1个子帧的定界符之前的部分的长度;或者,第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度之和,第二长度指示信息用 于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度;或者,第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度之和,第二长度指示信息用于指示第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度。

综上所述,由于本发明实施例提供的数据处理方法中,对于A-MPDU的两个相邻子帧,发送端将后一子帧的MPDU头部的部分字节前移至前一子帧的MPDU的尾部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

需要注意的是,接收端生成A-MPDU时必须逐子帧进行第一处理,前一子帧的处理结果会影响后一子帧的处理。但在接收端解析任一子帧时,仅需根据该子帧定界符中的第一长度指示信息和第二长度指示信息对该子帧进行解析即可,而无需依赖其它子帧的信息。

综上所述,由于本发明实施例提供的数据处理方法中,对于A-MPDU的两个相邻子帧,发送端将后一子帧的MPDU头部的部分字节前移至前一子帧的MPDU的尾部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

如图5所示,本发明实施例提供了又一种数据处理方法,用于发送端和接收端,该数据处理方法可以包括:

步骤501、发送端获取多个数据消息。

示例的,该数据消息可以是与该发送端相连接的通信设备生成的,该通信设备可以为计算机,该数据消息也可以是该发送端本地生成的,本发明实施例对此不做限定。

步骤502、发送端根据多个数据消息生成多个MPDU。

该发送端可以根据步骤501中获取的多个数据消息生成多个相应的MPDU,且每个MPDU中记录有与该子帧对应的数据消息相对应的数据。

步骤503、发送端根据多个MPDU生成A-MPDU。

示例的,该A-MPDU可以包括y个子帧,y≥2,y为整数。每个子帧包括定界符和数据部分,该数据部分可以包括MPDU,每个子帧的数据部分的长度均大于等于零,每个子帧的定界符的长度均为x字节,x≥1,x为整数。例如,当前802.11n和802.11ac标准中定界符长度为4字节。需要说明的是,在802.11ax的通信标准或其他通信标准中,该定界符的长度也可以为其它值,本发明实施例对此不做限定。该多个MPDU的个数与该A-MPDU中子帧的个数可能不相等。假设共有N1个MPDU,而A-MPDU中的子帧个数为N2,则N2大于或等于N1。其中,N1个子帧与N1个MPDU对应,剩余N2-N1个子帧为空子帧,其作用为使相邻非空子帧之间的距离满足预设要求(空子帧位于两个非空子帧之间)或将A-MPDU填充至一定长度(非空子帧位于所有非空子帧之后)。当然,A-MPDU中也可能仅包含N1非空子帧而不含空子帧,即N1=N2。空子帧仅包括定界符而不包括MPDU,即空子帧包括定界符和长度为零的数据部分,所以空子帧的长度为固定的x字节,即空子帧中定界符的长度。多个子帧是指由N1个非空子帧和可能存在的空子帧组成的有序子帧序列,空子帧的数据部分的长度等于零,非空子帧的数据部分的长度大于零。

步骤504、发送端依次对多个子帧中的子帧进行第一处理,得到处理后的A-MPDU。

需要说明的是,对子帧进行第一处理是指对通过子帧进行处理,使得位于当前子帧的定界符之后、下一个子帧的定界符之前的数据部分的长度为x的整 数倍,即子帧的MPDU的长度为x的整数倍,其中,子帧MPDU的长度是指从子帧定界符的最后一个字节至下一个子帧定界符的第一个字节之间的数据部分的长度。空子帧仅包括定界符而不包括MPDU,即空子帧包括定界符和长度为零的数据部分,所以空子帧的长度为固定的x字节,空子帧中位于该空子帧的定界符之后、位于该空子帧下一个子帧的定界符之前的数据部分的长度为零,是x的整数倍,因此无需对空子帧进行第一处理。需要说明的是,本发明实施例中一个子帧是非空子帧,指的是该子帧不是空子帧。若第k个子帧是非空子帧,且位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度不为x的整数倍,则对第k个子帧进行第一处理,第一处理使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为x的整数倍,1≤k≤y,k为整数;需要说明的是,当k=y时,该第k个子帧为最后一个子帧,由于该A-MPDU中子帧的个数为y,此时不存在第k+1个子帧,故该第一处理可以使得位于该第k个子帧的定界符之后的第k个子帧的数据部分的长度为x的整数倍。

一方面,当第k个子帧是非空子帧,存在第k+1个子帧且是非空子帧时,且位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度不为x的整数倍,对第k个子帧的第一处理的过程可以包括:将位于第k+1个子帧的MPDU的头部的长度为m的部分移至位于第k个子帧的定界符之后的第k个子帧的MPDU之后、第k+1个子帧的定界符之前,使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为x的整数倍,其中,0<m≤x-1,m为整数。

如图6所示,第k个子帧和第k+1个子帧为两个相邻的子帧,且该第k个子帧是非空子帧,该第k+1个子帧也是非空子帧,该第k个子帧位于该第k+1个子帧之前,第k个子帧和第k+1个子帧的定界符的长度均为x,位于该第k个子帧的定界符之后、位于该第k+1个子帧的定界符之前的数据部分的长度为M。在对第k个子帧进行第一处理之前,可以判断该位于该第k个子帧的定界符之后、位于该第k+1个子帧的定界符之前的数据部分的长度M是否为x的整数倍,若M是x的整数倍,则不对第k个子帧进行第一处理。如图7所示,若M不是x的整数倍,则对第k个子帧进行第一处理,具体的,发送端可以计算M除以x的余数,以及x与M除以x的余数的差值m,并将第k+1个子帧的MPDU 的头部的长度为m字节的数据部分,移至第k个子帧的定界符之后的第k个子帧的MPDU之后、第k+1个子帧的定界符之前,使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为x的整数倍。此时,位于第k个子帧的MPDU之后、第k+1个子帧的定界符之前的数据部分为第k+1个子帧的MPDU1,位于第k+1个子帧的定界符之后的第k+1个子帧的数据部分为第k+1个子帧的MPDU 2,MPDU1与MPDU2组成第k+1个子帧的MPDU。

例如,当第k个子帧是非空子帧,存在第k+1个子帧,且第k+1个子帧也是非空子帧时,第k个子帧和第k+1个子帧的定界符的长度均为x字节,x等于4,位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为M等于9字节,9不是4的整数倍即M不是x的整数倍。M除以x的余数等于9除以4的余数1,x与M除以x的余数的差值m等于4与1的差值3,由于M不是x的整数倍,即位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度不是定界符长度的整数倍,所以可以对该第k个子帧进行第一处理,使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度是定界符长度的整数倍。具体的,可以将第k+1个子帧的MPDU的头部的长度为3字节的数据部分,移至第k个子帧的定界符之后的第k个子帧的MPDU之后、第k+1个子帧的定界符之前,此时位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为9字节与3字节的和12字节,12字节为4字节的整数倍,即位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。

值得说明的是,上述第一处理过程从A-MPDU的第一个子帧开始逐子帧执行,前一子帧的执行结果会影响后一子帧执行时需要前移的字节数。上述第一处理过程的执行结果是对于多个子帧中的任一子帧,其数据部分的一部分位于其定界符之前,其数据部分的另一部分位于其定界符之后。当然,若第k个子帧为第一个子帧时,由于该第一个子帧前面没有子帧,所以该第一个子帧的数据部分中位于定界符之前的一部分不存在,即该第一个子帧的数据部分均位于该第一个子帧的定界符之后。

例如,若第k个子帧是非空子帧,存在第k+1个子帧,且第k+1个子帧也是非空子帧,在对第k个子帧进行第一处理之前,第k个子帧和第k+1个子帧的定界符的长度均为x字节,且x等于4,假设位于第k个子帧定界符之后、第 k+1个子帧的定界符之前的数据部分的长度为M等于9字节,9字节不是4字节的整数倍即M不是x的整数倍。假设位于第k+1个子帧的定界符之后、第k+2个子帧的定界符之前的数据部分的长度为8字节,8字节是4字节的整数倍,即第k+1个子帧MPDU中位于第k+1个子帧的定界符之后的数据部分的长度是x的整数倍。由于位于第k个子帧定界符之后、第k+1个子帧的定界符之前的数据部分的长度不是x的整数倍,所以需要对第k个子帧进行第一处理,M除以x的余数等于9除以4的余数1,x与M除以x的余数的差值m等于4与1的差值3,在对第k个子帧进行第一处理时,将第k+1个子帧的MPDU的头部的长度为3字节的数据部分,移至第k个子帧的定界符之后的第k个子帧的MPDU之后、第k+1个子帧的定界符之前,使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为9字节与3字节的和12字节,12字节为4字节的整数倍。在对第k个子帧进行第一处理之后,第k+1个子帧的MPDU中位于第k+1个子帧的定界符之后的数据部分的长度为8-3等于5字节,5字节不是4字节的整数倍,即在对第k个子帧进行第一处理之后相对于在第k个子帧进行第一处理之前,第k+1个子帧MPDU中位于第k+1个子帧的定界符之后的数据部分的长度发生了变化。

需要说明的是,当第k个子帧是非空子帧,存在第k+1个子帧且是非空子帧时,在对第k-1个子帧进行第一处理后,若位于该第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为定界符的长度x的整数倍,则无需对该第k个子帧进行第一处理。

另一方面,当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,对第k个子帧的第一处理的过程可以包括:在位于第k个子帧的定界符之后的第k个子帧的MPDU之后添加长度为Q的填充位,使得填充位的长度Q与位于第k个子帧的定界符之后的第k个子帧的MPDU的长度之和等于x的整数倍,其中,0<Q≤x-1,Q为整数。

具体的,当第k个子帧是非空子帧且第k个子帧为最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,对第k个子帧的第一处理的过程与上述若第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是非空子帧时,对第k个子帧的第一处理过程不同,由于此时第k 个子帧没有后续的非空子帧向它提供前移字节,故只能采用填充冗余位的方法。在对该第k个子帧进行第一处理之前,可以检测位于第k个子帧的定界符之后的数据部分的长度是否为x的整数倍,需要说明的是,此时,位于第k个子帧的定界符之后的数据部分为位于最后一个子帧的定界符之后的MPDU。若经过检测,得知位于第k个子帧的定界符之后的数据部分的长度为x的整数倍,则不对该第k个子帧进行第一处理。若经过检测,得知位于第k个子帧的定界符之后的数据部分的长度不是x的整数倍,则对该第第k个子帧进行第一处理。其中,对该第k个子帧的第一处理过程可以包括:计算位于第k个子帧的定界符之后的数据部分的长度除以x的余数,以及x与该余数的差值Q,并在第k个子帧的定界符之后的第k个子帧的数据部分之后添加长度为Q的填充位,使得填充位的长度Q与位于最后一个子帧的定界符之后的最后一个子帧的数据部分的长度之和等于x的整数倍。

如图8所示,若第k个子帧是非空子帧且第k个子帧为最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧,第k个子帧的定界符的长度为x,在对第k-1个子帧进行了第一处理前,该第k个子帧的数据部分的长度为M。假设在对第k-1个子帧进行了第一处理时,将第k个子帧的MPDU的头部的长度为m的数据部分,移至第k-1个子帧的定界符之后的第k-1个子帧的MPDU之后、第k个子帧的定界符之前,第k-1个子帧的定界符之后的第k-1个子帧的MPDU之后、第k个子帧的定界符之前的长度为m的数据部分为第k个子帧的MPDU1,位于第k个子帧的定界符之后的第k个子帧的数据部分可以为MPDU2,第k个子帧的MPDU1与第k个子帧的MPDU2组成第k个子帧的MPDU。此时,位于第k个子帧的定界符之后的数据部分的长度为M-m。若M-m为x的整数倍,则不对第k个子帧进行第一处理。若M-m不是x的整数倍,则对该第k个子帧进行第一处理。具体的,发送端可以计算位于第k个子帧的定界符之后的数据部分的长度除以x的余数,以及x该余数的差值Q,并在位于第k个子帧的定界符之后的第k个子帧的数据部分之后添加长度为Q的填充位,使得填充位的长度Q与位于第k个子帧的定界符之后的第k个子帧的数据部分的长度之和等于x的整数倍。

需要说明的是,若位于第k-1个子帧的定界符之后、第k个子帧的定界符之前的数据部分的长度为x的整数倍,则无需对第k-1个子帧进行第一处理,此时, 无需将第k个子帧的MPDU的头部的长度为m的数据部分,移至第k-1个子帧的定界符之后的第k-1个子帧的MPDU之后、第k个子帧的定界符之前,即位于第k个子帧的定界符之后的数据部分的长度为M。

例如,多个子帧中的每个子帧的定界符的长度均为x等于4字节,若第k个子帧是非空子帧且第k个子帧为最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧,位于第k个子帧的定界符之后的数据部分的长度为9字节,9字节不是4字节的整数倍,即位于第k个子帧的定界符之后的数据部分的长度不是x的整数倍,需要说明的是,此时,位于第k个子帧的定界符之后的数据部分为位于最后一个子帧的定界符之后的MPDU。位于第k个子帧的定界符之后的数据部分的长度除以x的余数等于9除以4的余数1,x与该余数的差值等于9除以4的余数的差值Q等于4与1的差值3,在位于第k个子帧的定界符之后的数据部分之后添加长度为3字节的填充位,使得填充位的长度与位于最后一个子帧的定界符之后的第k个子帧的MPDU的长度之和等于4字节的整数倍。

需要说明的是,当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,在对第k个子帧之前的子帧进行第一处理后,若位于该第k个子帧的定界符之后的数据部分的长度仍为定界符的长度x的整数倍,则无需对该第k个子帧进行第一处理。当该A-MPDU中仅包含一个子帧,即y=1时,对该子帧的第一处理的过程可以参考当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,对第k个子帧的第一处理的过程,即当该子帧的定界符之后的数据部分的长度不是定界符长度的整数倍时,在该子帧的MPDU之后添加填充位,使得该子帧的定界符之后的MPDU的长度与填充位的长度之和为定界符长度的整数倍。

进一步的,在步骤503中发送端根据多个MPDU生成A-MPDU时,该A-MPDU可以包括多个子帧,且该多个子帧中的任意一个子帧均包括定界符和MPDU,在步骤504中发送端第k个子帧进行第一处理的同时,该发送端可以根据对第k个子帧的第一处理过程,对第k个子帧的定界符进行设置。示例的,当k≥2时,该第k个子帧的定界符中可以包括第一长度指示信息和第二长度指示信息。

第一方面,该第k个子帧的定界符中的第一长度指示信息可以用于指示该第k个子帧的MPDU位于第k个子帧的定界符之后的数据部分的长度,该第k个子帧的定界符中的第二长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的数据部分的长度。请参考图7,该第k+1个子帧的定界符中的第一长度指示信息可以用于指示该MPDU2的长度,该第k+1个子帧的定界符中的第二长度指示信息可以用于指示该MPDU1的长度。需要说明的是,当k=1时,第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU的长度,第k个子帧的定界符中的第二长度指示信息所指示的长度为零。若第k个子帧为空子帧,则该第k个子帧的定界符中的第一长度指示所指示的长度和该第二长度指示所指示的长度均为零。

第二方面,该第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的数据部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的数据部分的长度之和,该第k个子帧的定界符中的第二长度指示信息用于指示第k+1个子帧的MPDU移至第k个子帧的MPDU之后、第k+1个子帧的定界符之前的数据部分的长度。请参考图7,该第k+1个子帧的定界符中的第一长度指示信息可以用于指示该MPDU1与MPDU2的长度之和,该第k+1个子帧的定界符中的第二长度指示信息可以用于指示第k+2个子帧(图7中未画出)的MPDU移至第k+1个子帧的MPDU之后、第k+2个子帧的定界符之前的数据部分的长度。需要说明的是,当k=1时,第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU的长度,第k个子帧的定界符中的第二长度指示信息用于指示第二个子帧的MPDU移至第一个子帧的MPDU之后、第二个子帧的定界符之前的部分的长度。若第k个子帧为空子帧,则该第k个子帧的定界符中的第一长度指示所指示的长度和该第二长度指示所指示的长度均为零。

第三方面,该第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的数据部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的数据部分的长度之和,该第k个子帧的定界符中的第二长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的数据部分的长度。当该第k个子帧为该多个子帧中的第一个子帧时,该第一个子帧 的定界符中的第一长度指示信息用于指示该第一个子帧的MPDU的长度,该第一个子帧的定界符中的第二长度指示信息的长度为零。请参考图7,该第k+1个子帧的定界符中的第一长度指示信息可以用于指示该MPDU1与MPDU2的长度之和,该第k+1个子帧的定界符中的第二长度指示信息可以用于指示该MPDU1的长度。需要说明的是,当k=1时,第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU的长度,第k个子帧的定界符中的第二长度指示信息所指示的长度为零。若第k个子帧为空子帧,则该第k个子帧的定界符中的第一长度指示所指示的长度和该第二长度指示所指示的长度均为零。

第四方面,该第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的数据部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的数据部分的长度之和,该第k个子帧的定界符中的第二长度指示信息用于指示第k个子帧的MPDU位于第k个子帧的定界符之后的数据部分的长度。当该第k个子帧为该多个子帧中的第一个子帧时,该第一个子帧的定界符中的第一长度指示信息和第二长度指示信息均用于指示该第一个子帧的MPDU的长度。请参考图7,该第k+1个子帧的定界符中的第一长度指示信息可以用于指示该MPDU1与MPDU2的长度之和,该第k+1个子帧的定界符中的第二长度指示信息可以用于指示该MPDU2的长度。需要说明的是,当k=1时,第k个子帧的定界符中的第一长度指示信息和第二长度指示信息均用于指示第k个子帧的MPDU的长度。若第k个子帧为空子帧,则该第k个子帧的定界符中的第一长度指示所指示的长度和该第二长度指示所指示的长度均为零。

步骤505、发送端向接收端发送处理后的A-MPDU。

在步骤504中发送端依次对多个子帧中的子帧进行第一处理后,得到处理后的AMPDU。然后,发送端可以将该处理后的A-MPDU发送至接收端,以便于接收端在根据该处理后的A-MPDU解析得到多个MPDU。需要说明的是,接收端接收到的发送端发送的处理后的A-MPDU可以包括y个子帧,每个子帧包括定界符和数据部分,假设第k个子帧为y个子帧中的任意一个子帧,则该第k个子帧的数据部分为位于该第k个子帧的定界符和第k+1个子帧的定界符之间的数据部分。每个子帧的数据部分的长度均大于等于零,每个子帧的定界符的 长度均为x,x≥1,且x为整数,定界符中包括第一长度指示信息和第二长度指示信息,每两个子帧的定界符之间的数据部分的长度均为x的整数倍,y≥2,y为整数。

步骤506、接收端依次对处理后的A-MPDU中的子帧进行解析处理得到多个MPDU。

具体的,该处理后的A-MPDU可以包括y个子帧,第k个子帧为所述y个子帧中的任意一个,1≤k≤y,k为整数,对第k个子帧的解析处理过程可以包括:根据第k个子帧的定界符中的第一长度指示信息和第二长度指示信息,从第k-1个子帧的数据部分中获取第k个子帧的MPDU的第一部分,从第k个子帧的数据部分中获取第k个子帧的MPDU的第二数据部分,将第一部分和第二部分合并,组成第k个子帧的MPDU,此时2≤k≤y。

由于步骤504中该第k个子帧的定界符中的第一长度指示信息和第二长度指示信息有四种指示方式,因此,相应的在步骤506中存在四种对该第k个子帧的解析方式。

第一方面,当第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU位于第k个子帧的定界符之后的数据部分的长度,第k个子帧的定界符中的第二长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的数据部分的长度时,根据第k个子帧的定界符中的第一长度指示信息和第二长度指示信息,从第k-1个子帧的数据部分中获取第k个子帧的MPDU的第一部分,从第k个子帧的数据部分中获取第k个子帧的MPDU的第二部分,可以包括:

根据第k个子帧的定界符中的第二长度指示信息,从第k-1个子帧的数据部分中,获取靠近第k个子帧的定界符且长度为m的数据部分(即第k-1个子帧的数据部分中靠后的m个字节),作为第k个子帧的MPDU的第一部分,m为第k个子帧的定界符中的第二长度指示信息所指示的长度;根据第k个子帧的定界符中的第一长度指示信息,从第k个子帧的数据部分中,获取靠近第k个子帧的定界符且长度为p的数据部分(即第k个子帧的数据部分中靠前的p个字节),作为第k个子帧的MPDU的第二部分,p为第k个子帧的定界符中的第一长度指示信息所指示的长度。需要说明的是,在对该第k个子帧进行解析处理之后,可以根据该第k个子帧的定界符中的第一长度指示信息所指示的长度p 与该定界符的长度x,确定该第k个子帧的定界符之后,与该第k个子帧的定界符之间的距离为x×ceil(p/x)的位置为第k+1个子帧的起始位置,该起始位置为该第k+1个子帧的定界符的起始位置,具体的,ceil(p/x)表示p与x的商的上整数,x×ceil(p/x)表示p与x的商的上整数与x的乘积,示例的,p与x的商的上整数为:大于等于p与x的商,且与p与x的商最接近的整数,例如,p与x的商为5.1,则p与x的商的上整数为6;p与x的商为5,p与x的商的上整数为5。与第k个子帧的定界符之间的距离定义为与第k个子帧的定界符中的最后一个字节之间的距离。如果在对第k个子帧进行解析的过程中,对第k个子帧的定界符解码错误,接收端则无法获得正确的第一长度指示信息和第二长度指示信息,此时可通过搜索下一个MPDU Signature获得下一个子帧的起始位置,这与现有技术中的做法是一致的。

需要说明的是,当k=1时,由于处理前的第一个子帧之前没有子帧,即第一个子帧没有将第一个子帧的MPDU头部的数据部分移动至前一个子帧,因此,第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU的长度,第k个子帧的定界符中的第二长度指示信息所指示的长度为零。所以,在对该第一个子帧进行解析时,可以根据第k个子帧的定界符中的第一长度指示信息,从第k个子帧的数据部分中,获取靠近第k个子帧的定界符且长度为p的数据部分(即第k个子帧的数据部分中靠前的p个字节),作为第k个子帧的MPDU,p为第k个子帧的定界符中的第一长度指示信息所指示的长度。

第二方面,当第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的数据部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的数据部分的长度之和,第k个子帧的定界符中的第二长度指示信息用于指示第k+1个子帧的MPDU移至第k个子帧的MPDU之后、第k+1个子帧的定界符之前的数据部分的长度时,根据第k个子帧的定界符中的第一长度指示信息和第二长度指示信息,从第k-1个子帧的数据部分中获取第k个子帧的MPDU的第一部分,从第k个子帧的数据部分中获取第k个子帧的MPDU的第二部分,可以包括:

根据第k个子帧的定界符中的第一长度指示信息与第二长度指示信息,从第k-1个子帧的数据部分中,获取靠近第k个子帧的定界符且长度为F的数据部分(即第k-1个子帧的数据部分中靠后的F个字节),作为第k个子帧的MPDU 的第一部分,F为第k个子帧的定界符中的第一长度指示信息所指示的长度与第二长度指示信息所指示的长度之和除以x的余数;根据第k个子帧的定界符中的第一长度指示信息与F,从第k个子帧的数据部分中,获取靠近第k个子帧的定界符且长度为q的数据部分(即第k个子帧的数据部分中靠前的q个字节),作为第k个子帧的MPDU的第二部分,q为第k个子帧的定界符中的第一长度指示信息所指示的长度与F的差值。需要说明的是,在对该第k个子帧进行解析处理之后,可以根据该第k个子帧的定界符中的第一长度指示信息和第二长度指示信息,确定该第k个子帧的定界符之后,与该第k个子帧的定界符之间的距离为x×ceil(q/x)的位置为第k+1个子帧的起始位置,即该起始位置为该第k+1个子帧的定界符的起始位置,示例的,与该第k个子帧的定界符之间的距离定义为与该第k个子帧的定界符中的最后一个字节之后的位置之间的距离,x×ceil(q/x)的含义可以参考上述对x×ceil(p/x)含义的解释,本发明实施例在此不做赘述。如果第k个子帧的定界符解码错误,接收端则无法获得正确的第一长度指示信息和第二长度指示信息,此时可通过搜索下一个MPDU Signature获得下一个子帧的起始位置,这与现有技术中的做法是一致的。

需要说明的是,当k=1时,由于处理前的第一个子帧之前没有子帧,即第一个子帧没有将第一个子帧的MPDU头部的数据部分移动至前一个子帧,因此,第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU的长度,第k个子帧的定界符中的第二长度指示信息用于指示第二个子帧的MPDU移至第一个子帧的MPDU之后、第二个子帧的定界符之前的部分的长度。此时,F等于零,在对该第k个子帧解析时,仅需根据第k个子帧的定界符中的第一长度指示信息,从第k个子帧的数据部分中,获取靠近第k个子帧的定界符且长度为q的数据部分(即第k个子帧的数据部分中靠前的q个字节),作为第k个子帧的MPDU,q为第k个子帧的定界符中的第一长度指示信息所指示的长度。

第三方面,当第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的数据部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的数据部分的长度之和,第k个子帧的定界符中的第二长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的数据部分的长度时,根据第k个子帧的定界符中的第一长度指示信息和第二长度指示 信息,从第k-1个子帧的数据部分中获取第k个子帧的MPDU的第一部分,从第k个子帧的数据部分中获取第k个子帧的MPDU的第二部分,可以包括:

根据第k个子帧的定界符中的第二长度指示信息,从第k-1个子帧的数据部分中,获取靠近第k个子帧的定界符且长度为r的数据部分(即第k-1个子帧的数据部分中靠后的r个字节),作为第k个子帧的MPDU的第一部分,r为第k个子帧的定界符中的第二长度指示信息所指示的长度;根据第k个子帧的定界符中的第一长度指示信息与r,从第k个子帧的数据部分中,获取靠近第k个子帧的定界符且长度为s的数据部分(即第k个子帧的数据部分中靠前的s个字节),作为第k个子帧的MPDU的第二部分,s为第k个子帧的定界符中的第一长度指示信息所指示的长度与r的差值。需要说明的是,在对该第k个子帧进行解析处理之后,可以根据该第k个子帧的定界符中的第一长度指示信息和第二长度指示信息,确定该第k个子帧的定界符之后,与该第k个子帧的定界符之间的距离为x×ceil(s/x)的位置为第k+1个子帧的起始位置,即该起始位置为该第k+1个子帧的定界符的起始位置,示例的,与该第k个子帧的定界符之间的距离定义为与该第k个子帧的定界符中的最后一个字节之后的位置之间的距离,x×ceil(s/x)的含义可以参考上述对x×ceil(p/x)含义的解释,本发明实施例在此不做赘述。如果第k个子帧的定界符解码错误,接收端则无法获得正确的第一长度指示信息和第二长度指示信息,此时可通过搜索下一个MPDU Signature获得下一个子帧的起始位置,这与现有技术中的做法是一致的。

需要说明的是,当k=1时,由于处理前的第一个子帧之前没有子帧,即第一个子帧没有将第一个子帧的MPDU头部的数据部分移动至前一个子帧,因此,第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU的长度,第k个子帧的定界符中的第二长度指示信息所指示的长度为零。即r等于零,在对该第k个子帧解析时,仅需根据第k个子帧的定界符中的第一长度指示信息,从第k个子帧的数据部分中,获取靠近第k个子帧的定界符且长度为s的数据部分(即第k个子帧的数据部分中靠前的s个字节),作为第k个子帧的MPDU,s为第k个子帧的定界符中的第一长度指示信息所指示的长度。

第四方面,当第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的数据部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的数据部分 的长度之和,第k个子帧的定界符中的第二长度指示信息用于指示第k个子帧的MPDU位于第k个子帧的定界符之后的数据部分的长度时,根据第k个子帧的定界符中的第一长度指示信息和第二长度指示信息,从第k-1个子帧的数据部分中获取第k个子帧的MPDU的第一部分,从第k个子帧的数据部分中获取第k个子帧的MPDU的第二部分,可以包括:

根据第k个子帧的定界符中的第一长度指示信息与第二长度指示信息,从第k-1个子帧的数据部分中,获取靠近第k个子帧的定界符且长度为u的数据部分(即第k-1个子帧的数据部分中靠后的u个字节),作为第k个子帧的MPDU的第一部分,u为第k个子帧的定界符中的第一长度指示信息所指示的长度与第二长度指示信息所指示的长度的差值;根据第k个子帧的定界符中的第二长度指示信息,从第k个子帧的数据部分中,获取靠近第k个子帧的定界符且长度为v的数据部分(即第k个子帧的数据部分中靠前的v个字节),作为第k个子帧的MPDU的第二部分,v为第k个子帧的定界符中的第二长度指示信息所指示的长度。需要说明的是,在对该第k个子帧进行解析处理之后,可以根据该第k个子帧的定界符中的第一长度指示信息和第二长度指示信息,确定该第k个子帧的定界符之后,与该第k个子帧的定界符之间的距离为x×ceil(v/x)的位置为第k+1个子帧的起始位置,即该起始位置为该第k+1个子帧的定界符的起始位置,示例的,与该第k个子帧的定界符之间的距离定义为与该第k个子帧的定界符中的最后一个字节之后的位置之间的距离,x×ceil(v/x)的含义可以参考上述对x×ceil(p/x)含义的解释,本发明实施例在此不做赘述。如果第k个子帧的定界符解码错误,接收端则无法获得正确的第一长度指示信息和第二长度指示信息,此时可通过搜索下一个MPDU Signature获得下一个子帧的起始位置,这与现有技术中的做法是一致的。

需要说明的是,当k=1时,由于处理前的第一个子帧之前没有子帧,即第一个子帧没有将第一个子帧的MPDU头部的数据部分移动至前一个子帧,因此,第k个子帧的定界符中的第一长度指示信息和第二长度指示信息均用于指示第k个子帧的MPDU的长度。此时,u等于零,在对该第k个子帧解析时,仅需根据第k个子帧的定界符中的第一长度指示信息或第二长度指示信息,从第k个子帧的数据部分中,获取靠近第k个子帧的定界符且长度为v的数据部分(即第k个子帧的数据部分中靠前的v个字节),作为第k个子帧的MPDU,v为第 k个子帧的定界符中的第一长度指示信息或第二长度指示信息所指示的长度。

需要注意的是,接收端生成A-MPDU时必须逐子帧进行第一处理,前一子帧的处理结果影响后一子帧的处理。但在接收端解析任一子帧时,仅需根据该子帧定界符中的第一长度指示信息和第二长度指示信息对该子帧进行解析即可,而无需依赖其它子帧的信息。

步骤507、接收端根据多个MPDU得到多个数据消息。

具体的,由于步骤502中发送端根据多个数据消息生成多个相应的MPDU,且每个MPDU中记录有与该子帧对应的数据消息相对应的数据,所以步骤507中该接收端在获取该多个MPDU之后,可以根据该多个MPDU得到多个数据消息。

需要说明的是,在发送端依次对多个子帧中的子帧进行第一处理之前,若多个子帧中两个相邻子帧之间的距离小于预设距离,则需要在两个子帧之间插入一个或多个空子帧,使得两相邻子帧之间的距离达到预设距离要求,空子帧仅包括定界符而不包括MPDU,即空子帧包括定界符和长度为零的数据部分,所以空子帧的长度为固定的x字节。两个相邻子帧之间的距离,定义为两个子帧的MPDU起始位置之间的字节距离,即从前一个子帧的定界符中的最后一个字节的位置到下一个子帧的定界符中的最后一个字节的位置之间的距离。包含MPDU的子帧称为数据子帧,两个数据子帧之间插入一个或多个空子帧之后,将两个数据子帧中的前一个数据子帧称为前位子帧,表示该子帧为数据子帧且该子帧之后的子帧为空子帧;将两个数据子帧中的后一个数据子帧称为后位子帧,表示该子帧为数据子帧且该子帧之前的子帧为空子帧,数据子帧即非空子帧。在发送端依次对多个子帧中的子帧进行第一处理时,发送端还可以检测当前处理的第k个子帧是否为前位子帧。

进一步的,在为该多个子帧中的第k个子帧进行第一处理时,若该第k个子帧为前位子帧,即第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧,对该前位子帧的第一处理的过程可以参考步骤504中当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,对第k个子帧的第一处理过程。具体的,由于前位子帧下一位子帧为空子帧,没有后续子帧向前位子帧提供前移字节,故只能采用填充冗余位的方法,在对该前位子帧进行第一处理之前,可 以检测位于该前位子帧的定界符之后的数据部分的长度是否为x的整数倍,若位于该前位子帧的定界符之后的数据部分的长度为x的整数倍,则不需要对该前位子帧进行第一处理。若位于该前位子帧的定界符之后的数据部分的长度不是x的整数倍,则在该前位子帧的定界符之后的MPDU之后添加填充位,使得填充位的长度与位于该前位子帧的定界符之后的MPDU的长度之和等于x的整数倍。由于该第前位子帧的下一个子帧为空子帧,空子帧仅包括定界符而不包括MPDU,即空子帧包括定界符和长度为零的数据部分,所以空子帧的长度为固定的x字节,位于空子帧的定界符之后、位于空子帧下一位子帧的定界符之前的数据部分为零,是x的整数倍,所以无需对该前位子帧的下一个子帧进行第一处理,可以按照该多个子帧的顺序,继续对后面的子帧进行第一处理,当处理至后位子帧时,可以参考当第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是非空子帧时,对第k个子帧的第一处理的过程,即后位子帧的处理无需特殊对待。

如图9所示,802.11ac中每个子帧的定界符的字节数为4,一个字节为8个比特位,故定界符中共有32个比特位,其中包括的信息有位置标识、MPDU长度指示、循环冗余码(英文:Cyclic Redundancy Code;简称:CRC)和MPDU特征位,其中,位置标识占用定界符中的1位,MPDU长度指示占用14位,CRC占用8位,该MPDU特征位占用8位,这样,定界符中还剩余有1位预留位,且该预留位为空。该位置标识、预留位、MPDU长度指示、CRC和MPDU特征位按照顺序依次排列。

假设通过对802.11ac的定界符格式的改造,来实现本实施例中的定界符,即定界符中包含第一长度指示信息和第二长度指示信息。当该x等于4时,子帧的定界符中的第一长度指示信息和第二长度指示信息在四种指示方式中,在设置该子帧的定界符时,均需要在该子帧对应的原子帧的定界符的基础上,提取两位空闲位,该子帧的定界符中的第一长度指示信息和第二长度指示信息可以分别占用该用两位空闲位和原有的MPDU长度指示所占用的14位,或第一长度指示信息和第二长度指示信息可以分别占用原有的MPDU长度指示所占用的14位和该用两位空闲位。优选的,为该第一长度指示信息分配的比特位的个数应该大于为该第二长度指示信息分配的比特位的个数,可以为该第一长度指示信息分配该MPDU长度指示所占用的14位,为第二长度指示信息分配该两位空 闲位。需要说明的是,在为该第一长度指示信息和该第二长度指示信息分配该MPDU长度指示所占用的14位和该两位空闲位时,还可以采用其他方法,本发明实施例对此不做限定,在802.11ac的定界符中仅剩余一位空闲位,因此还需获得另外一位空闲位,组成两位空闲位。示例的,可通过下面几种方法获得2位空闲位,用于承载第二长度指示信息。

第一方面,两位空闲位可以为子帧对应的原子帧的定界符中的一位预留位和任意一位第二特征指示所占用的8位。

示例的,如图9-1所示,该两位空闲位可以为该子帧对应的原子帧的定界符中的一位预留位以及该子帧对应的原子帧的定界符中的第二特征指示所占用的8位中的任意1位。

如图9-2所示,该两位空闲位可以为该子帧对应的原子帧的定界符中的位置标识所占用的1位以及该子帧对应的原子帧的定界符中的一位预留位。

如图9-3所示,该两位空闲位可以为该子帧对应的原子帧的定界符中的一位预留位以及该子帧对应的原子帧的定界符中的第二特征指示所占用的8位中的任意1位。并将该MPDU长度指示占用的14位与该第一特征指示占用的8位向后移动一位。

第二方面,如图9-4所示,两位空闲位可以为子帧对应的原子帧的定界符中的一位预留位和位置标识所占用的一位。

第三方面,两位空闲位可以为子帧对应的原子帧的定界符中第一特征指示所占用的8位中的任意2位或MPDU长度指示所占用的14位中的任意2位。如图9-5所示,在802.11ah机制中,子帧的定界符中的第一特征指示仅需占用四位比特位即可,类似地,这里也可将CRC缩短,例如采用6位CRC。这样,就可以用CRC省出的2比特来承载第二长度指示信息。

本发明实施例中,在步骤504中发送端依次对多个子帧中的子帧进行第一处理的过程中,若第k个子帧为空子帧,由于空子帧中位于空子帧的定界符之后和位于空子帧的下一位的子帧的定界符之前的数据部分的长度为零,为定界符长度的整数倍,所以无需对空子帧进行第一处理。在对该多个子帧中的每个子帧的定界符进行设置时,每个子帧的定界符中均设置有第一长度指示信息和第二长度指示信息,空子帧的定界符中的第一长度指示信息和第二长度指示信息所指示的长度均为零。在步骤506中接收端依次对该处理后的A-MPDU中的 子帧进行解析时,仅需获取每个子帧的定界符中的第一长度指示信息和第二长度指示信息即可对该子帧进行解析。

可选的,在步骤504中,发送端在依次对多个子帧中的子帧进行第一处理时,可以检测当前处理的子帧是否为空子帧,若当前处理的子帧为空子帧则不对空子帧进行处理;若当前处理的子帧是非空子帧,则判断是否需要对当前子帧进行第一处理,若需要对当前子帧进行第一处理,则可以参考步骤504中对子帧的第一处理的具体过程。并且若子帧为空子帧则可以不对空子帧的定界符进行设置,即空子帧中定界符的格式可以与现有技术中相同;若该子帧是非空子帧,则在该子帧的定界符中设置第一长度指示信息和第二长度指示信息。在步骤506中,接收端在对该处理后的A-MPDU进行解析时,首先可以检测当前子帧是否为空子帧,若当前子帧为空子帧,则可以按照现有技术中对空子帧的解析方法对该子帧进行解析。若当前子帧是非空子帧,则可以参考步骤506中对子帧的具体解析方法,对当前子帧进行解析。

综上所述,由于本发明实施例提供的数据处理方法中,对于A-MPDU的两个相邻子帧,发送端将后一子帧的MPDU头部的部分字节前移至前一子帧的MPDU的尾部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

如图10所示,本发明实施例提供了再一种数据处理方法,该数据处理方法可以用于发送端,该数据处理方法可以包括:

步骤901、根据多个MPDU生成A-MPDU,A-MPDU包括y个子帧,每个子帧包括定界符和数据部分,数据部分包括MPDU,每个子帧的数据部分的长度均大于等于零,每个子帧的定界符的长度均为x,x≥1,x为整数,y≥2,y为整数。

示例的,当前802.11n和802.11ac标准中定界符长度x为4。假设共有N1个MPDU,而A-MPDU中的子帧个数为N2,则N2大于或等于N1。其中,N1个子帧与N1个MPDU对应,剩余N2-N1个子帧为空子帧,其作用为使相邻非空子帧之间的距离满足预设要求(空子帧位于两个非空子帧之间)或将A-MPDU填充至一定长度(非空子帧位于所有非空子帧之后)。当然,A-MPDU中也可能仅包含N1非空子帧而不含空子帧,即N1=N2。空子帧仅包括定界符而不包括MPDU,即空子帧包括定界符和长度为零的数据部分,所以空子帧的长度为固定的x字节。所述多个子帧是指由N1个非空子帧和可能存在的空子帧组成的有序子帧序列。空子帧的数据部分的长度等于零,非空子帧的数据部分的长度大于零。

步骤902、若第k个子帧是非空子帧,且位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度不为x的整数倍,则对第k个子帧进行第二处理,第二处理使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为x的整数倍,1≤k≤y,k为整数;其中,当存在第k+1个子帧且是非空子帧时,对第k个子帧的第二处理的过程可以包括:将位于第k个子帧的MPDU的尾部的长度为m的部分移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后,使得位于第k个子帧的定界符之后、第k+1个定界符之前的数据部分的长度为x的整数倍,其中,0≤m≤x-1,m为整数。

需要说明的是,对子帧进行第二处理是指对通过子帧进行处理,使得子帧长度为x的整数倍,其中,子帧长度是指子帧的定界符的长度与子帧的定界符与下一个子帧的定界符之间的数据部分的长度之和。空子帧仅包括定界符而不包括MPDU,即空子帧包括定界符和长度为零的数据部分,所以空子帧的长度为固定的x字节,空子帧中位于空子帧的定界符之后和空子帧下一个子帧的定界符之前的数据部分的长度是x的整数倍,因此无需对空子帧进行第二处理。

步骤903、向接收端发送处理后的A-MPDU,以便于接收端根据处理后的A-MPDU解析得到多个MPDU。

综上所述,由于本发明实施例提供的数据处理方法中,对于A-MPDU的两个相邻子帧,发送端将前一子帧的MPDU尾部的部分字节后移至后一子帧的MPDU的头部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的 MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

值得说明的是,上述第二处理过程从A-MPDU的第一个子帧开始逐子帧执行,前一子帧的执行结果会影响后一子帧执行时需要前移的字节数。上述第二处理过程的执行结果是对于多个子帧中的任一子帧,其数据部分的一部分位于其当前子帧的定界符与下一子帧的定界符之间,其数据部分的另一部分位于下一子帧的定界符之后。当然,当第k个子帧为空子帧且第k个子帧是最后一个子帧,或第k个子帧为空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,由于第k个子帧后面没有非空子帧,所以该第k个子帧的数据部分中位于下一子帧的定界符之后的部分不存在,即该第k个子帧的数据部分均位于该第k个子帧的定界符之后。

当第k个子帧是最后一个子帧或存在第k+1个子帧且是空子帧时,对第k个子帧的第二处理的过程可以包括:在位于第k个子帧的定界符之后的第k个子帧的MPDU之后添加长度为Q的填充位,使得第k-1个子帧的MPDU移至第k个子帧的MPDU之前、第k个子帧的定界符之后的部分的长度、填充位的长度Q与第k个子帧的MPDU的长度之和等于x的整数倍,其中,0<Q≤x-1,Q为整数。换言之,当第k个子帧为空子帧且第k个子帧是最后一个子帧,或第k个子帧为空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,对第k个子帧的处理规则与其它子帧不同,由于此时第k个子帧后续没有非空子帧,第k个子帧无法后移字节,故只能采用填充冗余位的方法。需要说明的是,空子帧仅包括定界符而不包括MPDU,即空子帧包括定界符和长度为零的数据部分,所以空子帧的长度为固定的x字节,非空子帧为数据子帧。

当k≥2时,第k个子帧的定界符中包括第一长度指示信息和第二长度指示信息;其中,第一长度指示信息用于指示第k个子帧的MPDU移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后的部分的长度与第k个子帧的MPDU位于第k+1个子帧的定界符之前的部分的长度之和,第二长度指示信息 用于指示第k-1个子帧的MPDU移至第k个子帧的MPDU之前、第k个子帧的定界符之后的部分的长度。当k=1时,第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后的部分的长度与第k个子帧的MPDU位于第k+1个子帧的定界符之前的部分的长度之和,第二长度指示信息所指示的长度为零。当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度,第k个子帧的定界符中的第二长度指示信息用于指示第k-1个子帧的MPDU移至第k个子帧的MPDU之前、第k个子帧的定界符之后的部分的长度。需要注意的是,空子帧的定界符中的第一长度指示和第二长度指示均设置为零。

可选的,多个子帧中的每个子帧的定界符中还可以包括用于指示每个子帧位置的位置标识,当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,多个子帧中除第k个子帧之外的其他子帧定界符中的位置标识与第k个子帧定界符中的位置标识不同。使用位置标识的目的是为了将当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,将第k个子帧和其他子帧区分开来。由于当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,第k个子帧的在发送端的处理规则和其他子帧不同,相应地,接收端的解析规则也不同,因此需要特别标识,以便接收端针对不同位置的子帧采用不同解析规则。例如,802.11ac标准中,每个子帧的定界符中存在帧结束EoF(英文:End of Frame)位,即位置标识,在本发明实施例中,若第k个子帧是非空子帧且第k个子帧为最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,可以将第k个子帧的EoF设置为1,以便区别于多个子帧中除第k个子帧之外的其它子帧。多个子帧中的每个子帧的定界符中还包括用于指示每个子帧中是否存在填充位的填充标识,填充标识和位置标识可以是同一标识。

综上所述,由于本发明实施例提供的数据处理方法中,对于A-MPDU的两个相邻子帧,发送端将前一子帧的MPDU尾部的部分字节后移至后一子帧的 MPDU的头部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

如图11所示,本发明另一实施例提供了一种数据处理方法,该数据处理方法可以用于接收端,该数据处理方法可以包括:

步骤1001、接收发送端发送的A-MPDU,A-MPDU包括y个子帧,每个子帧包括定界符和数据部分,每个子帧的数据部分的长度均大于等于零,每个子帧的定界符的长度均为x,x≥1,x为整数,定界符中包括第一长度指示信息和第二长度指示信息,数据部分包括媒体接入控制协议数据单元MPDU,每两个子帧的定界符之间的数据部分的长度均为x的整数倍,y≥2,y为整数。

步骤1002、依次对多个子帧中的子帧以长度x为单位进行解析处理得到多个MPDU,其中,第k个子帧为y个子帧中的任意一个,1≤k≤y,k为整数,解析处理包括对第k个子帧进行第一解析处理:根据第k个子帧的定界符中的第一长度指示信息和第二长度指示信息,从第k个子帧的数据部分中获取第k个子帧的MPDU的第一部分,从第k+1个子帧的数据部分中获取第k个子帧的MPDU的第二部分,将第一部分和第二部分合并,组成第k个子帧的MPDU,此时1≤k≤y-1。

其中,第一长度指示信息用于指示第k个子帧的MPDU移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后的部分的长度与第k个子帧的MPDU位于第k+1个子帧的定界符之前的部分的长度之和,第二长度指示信息用于指示第k-1个子帧的MPDU移至第k个子帧的MPDU之前、第k个子帧的定界符之后的部分的长度。

综上所述,由于本发明实施例提供的数据处理方法中,对于A-MPDU的两个相邻子帧,发送端将前一子帧的MPDU尾部的部分字节后移至后一子帧的 MPDU的头部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的部分的长度为定界符长度的整数倍。由于本发明实施例减少了对子帧添加冗余填充位使得子帧MPDU的字节数为定界符中字节数的整数倍,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

可选的,定界符中还包括填充标识,解析处理还可以包括:检测第k个子帧中的填充标识;当检测出填充标识指示第k个子帧中不存在填充位时执行第一解析处理;当检测出填充标识指示第k个子帧中存在填充位,则对第k个子帧执行第二解析处理:根据第k个子帧的定界符中的第一长度指示信息与第二长度指示信息,在第k个子帧的数据部分中,获取与第k个子帧的定界符的距离为e,且长度为f的部分,作为第k个子帧的MPDU,e为第k个子帧的定界符中的第二长度指示信息所指示的长度,f为第k个子帧的定界符中的第一长度指示信息所指示的长度。

示例的,填充标识可以复用802.11ac定界符中的EoF来指示,即当EoF为1时表示当前子帧采用填充方法;否则,本子帧的MPDU的尾部部分自己移到了下一个子帧中。

综上所述,由于本发明实施例提供的数据处理方法中,对于A-MPDU的两个相邻子帧,发送端将前一子帧的MPDU尾部的部分字节后移至后一子帧的MPDU的头部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

如图12所示,本发明另一实施例提供了另一种数据处理方法,用于发送端和接收端,该数据处理方法可以包括:

步骤1101、发送端获取多个数据消息。

示例的,该数据消息可以是与该发送端相连接的通信设备生成的,该通信 设备可以为计算机,该数据消息也可以是该发送端本地生成的,本发明实施例对此不做限定。802.11ax是一种无线局域网通信标准,在该802.11ax中,该发送端可以获取多个数据消息。

步骤1102、发送端根据多个数据消息生成多个MPDU。

该发送端可以根据步骤1101中获取的多个数据消息生成多个相应的MPDU,且每个MPDU中记录有与该子帧对应的数据消息相对应的数据。

步骤1103、发送端根据多个MPDU生成A-MPDU。

示例的,该A-MPDU可以包括y个子帧,y≥2,y为整数。每个子帧包括定界符和数据部分,该数据部分可以包括MPDU,每个子帧的数据部分的长度均大于等于零,每个子帧的定界符的长度均为x字节,x≥1,x为整数。例如,当前802.11n和802.11ac标准中定界符长度x为4字节,需要说明的是,在该802.11ax的通信标准或其他通信标准中,该定界符的长度也可以为其它值,本发明实施例对此不做限定。

该多个MPDU的个数与该A-MPDU中子帧的个数可能不相等。假设共有N1个MPDU,而A-MPDU中的子帧个数为N2,则N2大于或等于N1。其中,N1个子帧与N1个MPDU对应,剩余N2-N1个子帧为空子帧,其作用为使相邻非空子帧之间的距离满足预设要求(空子帧位于两个非空子帧之间)或将A-MPDU填充至一定长度(非空子帧位于所有非空子帧之后)。当然,A-MPDU中也可能仅包含N1非空子帧而不含空子帧,即N1=N2。空子帧仅包括定界符而不包括MPDU,即空子帧包括定界符和长度为零的数据部分,所以空子帧的长度为固定的x字节,即空子帧中定界符的长度。多个子帧是指由N1个非空子帧和可能存在的空子帧组成的有序子帧序列,空子帧的数据部分的长度等于零,非空子帧的数据部分的长度大于零。

步骤1104、发送端依次对多个子帧中的子帧进行第二处理,得到处理后的A-MPDU。

需要说明的是,对子帧进行第二处理是指对通过子帧进行处理,使得位于当前子帧的定界符之后、下一个子帧的定界符之前的数据部分的长度为x的整数倍,即子帧的MPDU的长度为x的整数倍,其中,子帧MPDU的长度是指从子帧定界符的最后一个字节至下一个子帧定界符的第一个字节之间的数据部分的长度。空子帧仅包括定界符而不包括MPDU,即空子帧包括定界符和长度为 零的数据部分,所以空子帧的长度为固定的x字节,空子帧中位于该空子帧的定界符之后、位于该空子帧下一个子帧的定界符之前的数据部分的长度为零,是x的整数倍,因此无需对空子帧进行第二处理。需要说明的是,本发明实施例中一个子帧是非空子帧,指的是该子帧不是空子帧。若第k个子帧是非空子帧,且位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度不为x的整数倍,则对第k个子帧进行第二处理,第二处理使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为x的整数倍,1≤k≤y,k为整数;需要说明的是,当k=y时,该第k个子帧为最后一个子帧,由于该A-MPDU中子帧的个数为y,此时不存在第k+1个子帧,故该第二处理可以使得位于该第k个子帧的定界符之后的第k个子帧的数据部分的长度为x的整数倍。

一方面,当第k个子帧是非空子帧,存在第k+1个子帧且是非空子帧时,且位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度不为x的整数倍,对第k个子帧的第二处理的过程可以包括:将位于第k个子帧的MPDU的尾部的长度为m的部分移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后,使得位于第k个子帧的定界符之后、第k+1个定界符之前的数据部分的长度为x的整数倍,其中,0≤m≤x-1,m为整数。

如图13所示,第k个子帧和第k+1个子帧为两个相邻的子帧,且该第k个子帧是非空子帧,该第k+1个子帧也是非空子帧,该第k个子帧位于该第k+1个子帧之前,该第k个子帧和该第k+1个子帧的定界符的长度均为x,位于该第k个子帧的定界符之后、位于该第k+1个子帧的定界符之前的数据部分的长度为M。在对该第k个子帧进行第二处理之前,可以判断位于该第k个子帧的定界符之后、位于该第k+1个子帧的定界符之前的数据部分的长度M是否为x的整数倍,若M是x的整数倍,则不对该第k个子帧进行第二处理。如图14所示,若M不是x的整数倍,则对该第k个子帧进行第二处理,具体的,该发送端可以计算出M除以x的余数m,并将位于第k个子帧的MPDU的尾部的长度为m的数据部分移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后,使得位于该第k个子帧的定界符之后、该第k+1个子帧的定界符之前的数据部分的长度为x的整数倍。此时,位于该第k个子帧的MPDU之后且长度为M-m的数据部分为该第k个子帧的MPDU1,位于该第k+1个子帧的定界符之后靠近该 第k+1个子帧的定界符且长度为m的数据部分为该第k个子帧的MPDU 2,该MPDU1与该MPDU2组成该第k个子帧的MPDU。

例如,当第k个子帧是非空子帧,存在第k+1个子帧,且第k+1个子帧也是非空子帧时,该第k个子帧和该第k+1个子帧的定界符的长度均为x字节,x等于4,位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为M等于9字节,9不是4的整数倍即M不是x的整数倍。由于M不是x的整数倍,即位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度不是定界符长度的整数倍,所以可以对该第k个子帧进行第二处理,使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度是定界符长度的整数倍。因为M除以x的余数等于1(9除以4的余数),所以可以将位于该第k个子帧的MPDU的尾部的长度为f的数据部分移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后,使得位于该第k个子帧的定界符之后、该第k+1个子帧的定界符之前的数据部分的长度8(为9与1的差)为4的整数倍。

注意,上述第二处理过程从A-MPDU的第一个子帧开始逐子帧执行,前一子帧的执行结果会影响后一子帧执行时需要前移的字节数。上述第二处理过程的执行结果是对于经过第二处理的多个子帧中的任一子帧,其数据部分的一部分位于其当前子帧的定界符与下一子帧的定界符之间,其数据部分的另一部分位于下一子帧的定界符之后,当然也有些例外的情况,例如,当第k个子帧为空子帧且第k个子帧是最后一个子帧,或第k个子帧为空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,由于第k个子帧后面没有非空子帧,所以该第k个子帧的数据部分中位于下一子帧的定界符之后的部分不存在,即该第k个子帧的数据部分均位于该第k个子帧的定界符之后。

例如,若第k个子帧是非空子帧,存在第k+1个子帧,且第k+1个子帧也是非空子帧,在对第k个子帧进行第二处理之前,该第k个子帧和该第k+1个子帧的定界符的长度均为x字节,x等于4,假设位于第k个子帧定界符之后、第k+1个子帧的定界符之前的数据部分的长度为M等于9字节,9字节不是4字节的整数倍即M不是x的整数倍。假设位于第k+1个子帧的定界符之后、第k+2个子帧的定界符之前的数据部分的长度为8字节,8字节是4字节的整数倍,即第k+1个子帧MPDU中位于第k+1个子帧的定界符之后的数据部分的长度是 x的整数倍。由于位于第k个子帧定界符之后、第k+1个子帧的定界符之前的数据部分的长度不是x的整数倍,所以需要对第k个子帧进行第二处理,M除以x的余数等于1(9除以4的余数),在对该第k个子帧进行第二处理时,可以将位于该第k个子帧的MPDU的尾部的长度为1的数据部分,移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后,使得位于该第k个子帧的定界符之后、该第k+1个子帧的定界符之前的数据部分的长度为8字节(9与1的差),8字节是4字节的整数倍。

在对该第k个子帧进行第二处理之前,位于该第k+1个子帧的定界符之后、第k+2个子帧的定界符之前的数据部分的长度为8字节,8字节是4字节的整数倍;在对该第k个子帧进行第二处理之后,位于该第k+1个子帧的定界符之后、第k+2个子帧的定界符之前的数据部分的长度为8+1等于9字节,9字节不是4字节的整数倍,即在对该第k个子帧进行第二处理之后相对于在该第k个子帧进行第二处理之前,位于该第k+1个子帧的定界符之后、第k+2个子帧的定界符之前的数据部分的长度发生了变化。

另一方面,当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,由于第k个子帧后续没有非空子帧,故只能采用填充冗余位的方法。此时,对该第k个子帧的第二处理的过程可以包括:计算第k-1个子帧的MPDU移至第k个子帧的MPDU之前、第k个子帧的定界符之后的部分的长度与第k个子帧的MPDU的长度之和除以x的余数,以及x与该余数的差值Q,并在位于第k个子帧的定界符之后的该第k个子帧的MPDU之后添加长度为Q的填充位,使得第k-1个子帧的MPDU移至第k个子帧的MPDU之前、第k个子帧的定界符之后的部分的长度、填充位的长度Q与第k个子帧的MPDU的长度之和等于x的整数倍,其中,0<Q≤x-1,Q为整数。

当第k个子帧是非空子帧且第k个子帧为最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,对第k个子帧的第二处理的过程与上述若第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是非空子帧时,对第k个子帧的第二处理过程不同,由于第k个子帧没有后续的非空子帧向它提供前移字节,故只能采用填充冗余位的方法。在对该第k个子帧进行第二处理之前,可以检测第k-1个子帧的MPDU移至第k个子帧的 MPDU之前、第k个子帧的定界符之后的部分的长度与位于第k个子帧的定界符之后的该第k个子帧的MPDU的长度之和是否为x的整数倍,若经过检测,得知第k-1个子帧的MPDU移至第k个子帧的MPDU之前、第k个子帧的定界符之后的部分的长度与位于第k个子帧的定界符之后的该第k个子帧的MPDU的长度之和为x的整数倍,则不对第k个子帧进行第二处理。若经过检测,得知第k-1个子帧的MPDU移至第k个子帧的MPDU之前、第k个子帧的定界符之后的部分的长度与位于第k个子帧的定界符之后的该第k个子帧的MPDU的长度之和不是x的整数倍,则对该第k个子帧进行第二处理。

如图15所示,若第k个子帧是非空子帧且第k个子帧为最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧,第k个子帧的定界符的长度为x,该第k个子帧的MPDU的长度为M,假设在对第k-1个子帧进行了第二处理时,将位于第k-1个子帧的MPDU的尾部的长度为m的数据部分移至第k个子帧的MPDU之前、第k个子帧的定界符之后,该第k-1个子帧的MPDU的尾部的长度为m的数据部分为该第k-1个子帧的MPDU2。因此,位于该第k个子帧的定界符之后的数据部分的长度为M+m。若M+m为x的整数倍,则不对该第k个子帧进行第二处理。若M+m不是x的整数倍,则计算M+m除以x的余数,以及x与该余数的差值Q,并在该第k个子帧的MPDU位于第k个子帧的定界符之后的数据部分之后添加长度为Q的填充位,使得第k-1个子帧的MPDU移至第k个子帧的MPDU之前、第k个子帧的定界符之后的数据部分的长度、填充位的长度与第k个子帧的MPDU的长度之和等于x的整数倍。

需要说明的是,若位于该第k-1个子帧的定界符之后、该第k个子帧的定界符之前的数据部分的长度为x的整数倍,则无需对该第k-1个子帧进行第二处理,此时,无需将第k-1个子帧的MPDU的尾部的长度为m的数据部分,移至第k个子帧的定界符之后、第k个子帧的MPDU之前,即位于该第k个子帧的定界符之后的该第k个子帧的MPDU的长度为M。

例如,多个子帧中的每个子帧的定界符的长度均为x等于4字节,第k个子帧是非空子帧且第k个子帧为最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧,位于第k个子帧的定界符之后的数据部分的长度为9字节,9字节不是4字节的整数倍。位于第k个子帧的定界符 之后的数据部分的长度除以x的余数等于1(9除以4的余数),x与该余数的差值Q等于3(4与1的差值),可以在该第k个子帧的MPDU之后添加长度为3字节的填充位,使得位于第k个子帧的定界符之后的数据部分的长度为12字节(9与3的和),即第k个子帧的定界符之后的数据部分的长度等于4字节的整数倍。

需要说明的是,当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,在对第k个子帧之前的子帧进行第二处理后,若位于该第k个子帧的定界符之后的数据部分的长度仍为定界符的长度x的整数倍,则无需对该第k个子帧进行第二处理。当该A-MPDU中仅包含一个子帧,即y=1时,对该子帧的第二处理的过程可以参考当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,对第k个子帧的第二处理的过程,即当该子帧的定界符之后的数据部分的长度不是定界符长度的整数倍时,在该子帧的MPDU之后添加填充位,使得该子帧的定界符之后的MPDU的长度与填充位的长度之和为定界符长度的整数倍。

进一步的,在步骤1103中发送端根据多个MPDU生成A-MPDU时,该A-MPDU可以包括多个子帧,且该多个子帧中的任意一个子帧均可以包括定界符和MPDU,在步骤1104中发送端该第k个子帧进行第二处理的同时,该发送端可以根据对该第k个子帧的第二处理过程,设置该第k个子帧的定界符。示例的,当k≥2时,该第k个子帧的定界符中可以包括第一长度指示信息和第二长度指示信息。

具体的,该第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后的数据部分的长度与第k个子帧的MPDU位于第k+1个子帧的定界符之前的数据部分的长度之和,该第k个子帧的定界符中的第二长度指示信息用于指示第k-1个子帧的MPDU移至第k个子帧的MPDU之前、第k个子帧的定界符之后的数据部分的长度。需要说明的是,当k=1时,该第k个子帧的定界符中的第一长度指示信息所指示的长度为该第k个子帧的MPDU的长度,该第k个子帧的定界符中的第二长度指示信息所指示的长度为零。若第k个子帧为空子帧,则该第k个子帧的定界符中的第一长度指示所指示的长度和该第二长度指示所指示 的长度均为零。

进一步的,当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,由于对该第k个子帧的处理方法为在该第k个子帧的MPDU后添加填充位,此时,该第k个子帧的定界符中的第一长度指示信息用于指示第k个子帧的MPDU位于第k个子帧的定界符之后的数据部分的长度,该第k个子帧的定界符中的第二长度指示信息用于指示第k-1个子帧的MPDU移至第k个子帧的MPDU之前、第k个子帧的定界符之后的数据部分的长度。

可选的,每个子帧的定界符中还可以包括用于指示每个子帧位置的位置标识,当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,多个子帧中除第k个子帧之外的其他子帧定界符中的位置标识与第k个子帧定界符中的位置标识不同。由于当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,发送端对第k个子帧的处理规则和其他子帧不同,相应地,接收端的解析规则也不同,因此需要特别标识,以便接收端针对不同位置的子帧采用不同解析规则。例如,802.11ac标准中,每个子帧的定界符中存在帧结束EoF(英文:End of Frame)位,即位置标识,在本发明实施例中,若第k个子帧是非空子帧且第k个子帧为最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,可以将第k个子帧的EoF设置为1,以便区别于多个子帧中除第k个子帧之外的其它子帧。

示例的,当第k个子帧是非空子帧且第k个子帧为最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,该位置标识可以为1,当该第k个子帧为多个子帧中除第k个子帧之外的其他子帧时,该位置标识可以为0。需要说明的是,在当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,多个子帧中除第k个子帧之外的其他子帧定界符中的位置标识与第k个子帧定界符中的位置标识不同的前提下,该位置标识还可以为其他值,本发明实施例对此不做限定。可选的,多个子帧中的每个子帧的定界符中还可以包括用于指示每个子帧中是否存在填充位的填充标识,该填充标识和位置标 识可以是同一标识。

步骤1105、发送端向接收端发送处理后的A-MPDU。

在步骤1104中发送端依次对多个子帧中的子帧进行第二处理后,得到处理后的AMPDU。然后,发送端可以将该处理后的A-MPDU发送至接收端,以便于接收端在根据该处理后的A-MPDU解析得到多个MPDU。需要说明的是,该处理后的A-MPDU可以包括y个子帧,每个子帧包括定界符和数据部分,每个子帧的数据部分的长度均大于等于零,每个子帧的定界符的长度均为x,x≥1,x为整数,定界符中包括第一长度指示信息和第二长度指示信息,数据部分包括媒体接入控制协议数据单元MPDU,每两个子帧的定界符之间的数据部分的长度均为x的整数倍,y≥2,y为整数。

示例的,第一长度指示信息可以用于指示第k个子帧的MPDU移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后的部分的长度与第k个子帧的MPDU位于第k+1个子帧的定界符之前的部分的长度之和,第二长度指示信息用于指示第k-1个子帧的MPDU移至第k个子帧的MPDU之前、第k个子帧的定界符之后的部分的长度。需要说明的是,当第k个子帧中有填充位时,第k个子帧的MPDU移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后的数据部分的长度为0,此时第k个子帧可能为最后一个子帧或第k个子帧的下一位子帧为空子帧。

步骤1106、接收端依次对处理后的A-MPDU中的子帧进行解析处理得到多个MPDU。

如图16所示,第k个子帧为所述y个子帧中的任意一个,1≤k≤y,k为整数,步骤1106中对该第k个子帧进行解析处理的过程可以包括:

步骤11061、接收端通过检测第k个子帧定界符中的填充标识,判断第k个子帧中是否存在填充位。若是,执行步骤11063;若否,执行步骤11062。

由于在步骤1104中,发送端根据对该第k个子帧的第二处理过程,设置该第k个子帧的定界符,该第k个子帧的定界符中可以包括用于指示第k个子帧中是否存在填充位的填充标识。因此,接收端能够通过检测该第k个子帧定界符中的填充标识来判断该第k个子帧中是否存在填充位。

步骤11062、接收端根据第k个子帧的定界符中的第一长度指示信息和第二长度指示信息,对第k个子帧进行第一解析处理。

具体的,接收端可以从第k个子帧的数据部分中获取第k个子帧的MPDU的第一部分,从第k+1个子帧的数据部分中获取第k个子帧的MPDU的第二部分,将第一部分和第二部分合并,组成第k个子帧的MPDU,此时1≤k≤y-1。

首先接收端可以计算第k个子帧的定界符中的第一长度指示信息所指示的长度与第二长度指示信息所指示的长度之和,并将第k个子帧的定界符中的第一长度指示信息所指示的长度与第二长度指示信息所指示的长度之和与m的差值作为第k+1个子帧的定界符与第k个子帧的定界符之间的数据部分的长度,其中,m为第k+1个子帧的定界符中的第一长度指示信息所指示的长度与第二长度指示信息所指示的长度之和除以x的余数。

其次,接收端可以根据该第k个子帧的定界符以及第k+1个子帧的定界符与第k个子帧的定界符之间的数据部分的长度,确定第k+1个子帧的定界符的位置。需要说明的是,该第k+1个子帧的定界符与第k个子帧的定界符之间的数据部分的长度为位于该第k个子帧的定界符中的最后一个字节至该第k+1个子帧的定界符中的第一个字节之间的数据部分的长度,该第k个子帧的定界符的位置为该第k个子帧的定界符中第一个字节的位置。具体的,该接收端可以根据该第k个子帧的定界符的位置、该第k个子帧定界符的长度x以及该第k+1个子帧的定界符与第k个子帧的定界符之间的数据部分的长度,确定与该第k个子帧的定界符中的第一个字节的距离为该第k+1个子帧的定界符与第k个子帧的定界符之间的数据部分的长度以及x之和的位置为该第k+1个子帧的定界符的位置,即该第k+1个子帧的定界符中的第一个字节的位置。

在确定了该第k+1个子帧的定界符的位置后,根据该第k+1个子帧的定界符的长度,确定该第k+1个子帧的数据部分的起始位置,具体的,该第k+1个子帧的数据部分的起始位置为与该第k+1个子帧的定界符的第一个字节之间的长度为x-1的位置。接收端可以从该第k+1个子帧的数据部分中,获取靠近该第k+1个子帧的定界符,且长度为m的数据部分(即第k+1个子帧的数据部分中靠前的m个字节),作为该第k个子帧的MPDU的第二部分;并根据该第k个子帧的定界符中的第一长度指示信息与m,从第k个子帧的数据部分中,获取靠近第k+1个子帧的定界符且长度为w的数据部分(即第k个子帧的数据部分中靠后的w个字节),作为第k个子帧的MPDU的第一部分,w为第一长度指示信息所指示的长度与m的差值。

需要说明的是,当k=1时,由于处理前的第一个子帧之前没有子帧,即第一个子帧的数据部分中不包括前一个子帧的MPDU尾部移至第一个子帧的数据部分,因此,该第k个子帧的定界符中的第一长度指示信息所指示的长度为该第k个子帧的MPDU的长度,该第k个子帧的定界符中的第二长度指示信息所指示的长度为零。

在获取该第k个子帧MPDU的第一部分和第二部分之后,可以将第k个子帧MPDU的第一部分和第二部分合并,组成第k个子帧的MPDU。

步骤11063、接收端根据第k个子帧的定界符中的第一长度指示信息与第二长度指示信息,对第k个子帧进行第二解析处理。

具体的,接收端可以在第k个子帧的数据部分中,获取第k个子帧的MPDU。

需要说明的是,当第k个子帧中有填充位时,第k个子帧的MPDU移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后的数据部分的长度为0,此时第k个子帧可能为最后一个子帧或其后为空子帧。若该第k个子帧中存在填充位,此时,该第k个子帧的定界符中的第一长度指示信息所指示的长度为第k个子帧的MPDU的长度,该第k个子帧的定界符中的第二长度指示信息所指示的长度为第k-1个子帧移至第k个子帧的定界符之后、第k个子帧的MPDU之前的数据部分的长度,接收端可以根据第k个子帧的定界符中的第一长度指示信息与第二长度指示信息,在第k个子帧的数据部分中,获取与第k个子帧的定界符的距离为e,且长度为f的数据部分,作为第k个子帧的MPDU,e为第k个子帧的定界符中的第二长度指示信息所指示的长度,f为第k个子帧的定界符中的第一长度指示信息所指示的长度。

例如,如图15所示,该处理后的第k个子帧中存在填充位,在对第k-1个子帧进行第二处理时,将第k-1个子帧的数据部分中,长度为m的数据部分移至第k个子帧的定界符之后、第k个子帧的MPDU之前,该第k个子帧的MPDU的长度为M,此时,该第k个子帧的定界符中的第一长度指示信息所指示的长度为该第k个子帧的MPDU的长度M,该第k个子帧的第二长度指示信息所指示的长度为第k-1个子帧移至第k个子帧的定界符之后、第k个子帧的MPDU之前的数据部分的长度m。所以,接收端可以根据第k个子帧的定界符中的第一长度指示信息与第二长度指示信息,在第k个子帧的数据部分中,获取与第k个子帧的定界符的距离为m,且长度为M的数据部分,作为第k个子帧的MPDU。

步骤1107、接收端根据多个MPDU得到多个数据消息。

具体的,由于步骤1102中发送端根据多个数据消息生成多个相应的MPDU,且每个MPDU中记录有与该子帧对应的数据消息相对应的数据,所以步骤1107中该接收端在获取该多个MPDU之后,可以根据该多个MPDU得到多个数据消息。

需要说明的是,在发送端依次对多个子帧中的子帧进行第二处理之前,若多个子帧中两个相邻子帧之间的距离小于预设距离,则需要在两个子帧之间插入一个或多个空子帧,使得两相邻子帧之间的距离达到预设距离要求,空子帧仅包括定界符而不包括MPDU,即空子帧包括定界符和长度为零的数据部分,所以空子帧的长度为固定的x字节。两个相邻子帧之间的距离,定义为两个子帧的MPDU起始位置之间的字节距离,即从前一个子帧的定界符中的最后一个字节的位置到下一个子帧的定界符中的最后一个字节的位置之间的距离。包含MPDU的子帧称为数据子帧,两个数据子帧之间插入一个或多个空子帧之后,将两个数据子帧中的前一个数据子帧称为前位子帧,表示该子帧为数据子帧且该子帧之后的子帧为空子帧;将两个数据子帧中的后一个数据子帧称为后位子帧,表示该子帧为数据子帧且该子帧之前的子帧为空子帧,数据子帧即非空子帧。在发送端依次对多个子帧中的子帧进行第二处理时,发送端还可以检测当前处理的第k个子帧是否为前位子帧。

进一步的,在为该多个子帧中的第k个子帧进行第二处理时,若该第k个子帧为前位子帧,即第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧,对该前位子帧的第二处理的过程可以参考步骤504中当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,对第k个子帧的第二处理过程。具体的,由于前位子帧下一位子帧为空子帧,没有后续子帧向前位子帧提供前移字节,故只能采用填充冗余位的方法,在对该前位子帧进行第二处理之前,可以检测位于该前位子帧的定界符之后的数据部分的长度是否为x的整数倍,若位于该前位子帧的定界符之后的数据部分的长度为x的整数倍,则不需要对该前位子帧进行第二处理。若位于该前位子帧的定界符之后的数据部分的长度不是x的整数倍,则在该前位子帧的定界符之后的MPDU之后添加填充位,使得填充位的长度与位于该前位子帧的定界符之后的MPDU的长度之和等于x的整 数倍。由于该第前位子帧的下一个子帧为空子帧,空子帧仅包括定界符而不包括MPDU,即空子帧包括定界符和长度为零的数据部分,所以空子帧的长度为固定的x字节,位于空子帧的定界符之后、位于空子帧下一位子帧的定界符之前的数据部分为零,是x的整数倍,所以无需对该前位子帧的下一个子帧进行第二处理,可以按照该多个子帧的顺序,继续对后面的子帧进行第二处理,当处理至后位子帧时,可以参考当第k个子帧是非空子帧且存在第k+1个子帧且是非空子帧时,对第k个子帧的第二处理的过程,即后位子帧的处理无需特殊对待。

如图9所示,802.11ac中每个子帧的定界符的字节数为4,一个字节为8个比特位,故定界符中共有32个比特位,其中包括的信息有位置标识、MPDU长度指示、循环冗余码(英文:Cyclic Redundancy Code;简称:CRC)和MPDU特征位,其中,位置标识占用定界符中的1位,MPDU长度指示占用14位,CRC占用8位,该MPDU特征位占用8位,这样,定界符中还剩余有1位预留位,该预留位为空。该位置标识、预留位、MPDU长度指示、CRC和MPDU特征位按照顺序依次排列。

假设通过对802.11ac的定界符格式的改造,来实现本实施例中的定界符,即定界符中包含第一长度指示信息和第二长度指示信息。当该x等于4时,子帧的定界符中的第一长度指示信息和第二长度指示信息在四种指示方式中,在设置该子帧的定界符时,均需要在该子帧对应的原子帧的定界符的基础上,提取两位空闲位,该子帧的定界符中的第一长度指示信息和第二长度指示信息可以分别占用该用两位空闲位和原有的MPDU长度指示所占用的14位,或第一长度指示信息和第二长度指示信息可以分别占用原有的MPDU长度指示所占用的14位和该用两位空闲位。优选的,为该第一长度指示信息分配的比特位的个数应该大于为该第二长度指示信息分配的比特位的个数,可以为该第一长度指示信息分配该MPDU长度指示所占用的14位,为第二长度指示信息分配该两位空闲位。需要说明的是,在为该第一长度指示信息和该第二长度指示信息分配该MPDU长度指示所占用的14位和该两位空闲位时,还可以采用其他方法,本发明实施例对此不做限定,在802.11ac的定界符中仅剩余一位空闲位,因此还需获得另外一位空闲位,组成两位空闲位。示例的,可通过下面几种方法获得2位空闲位,用于承载第二长度指示信息。

示例的,每个子帧的定界符中还包括用于指示每个子帧位置的位置标识,当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,多个子帧中除第k个子帧之外的其他子帧定界符中的位置标识与第k个子帧定界符中的位置标识不同。

在802.11ac中,子帧的定界符中仅剩余一位空闲位,而第二长度指示信息需要两位来承载。因此,可通过下面几种方法获得2位空闲位,用于承载第二长度指示信息。

第一方面,两位空闲位可以为子帧对应的原子帧的定界符中的一位预留位和任意一位第二特征指示所占用的8位,该子帧的位置标识可以占用该子帧对应的原子帧的定界符中的位置标识所占用的1位。

示例的,如图9-1所示,该两位空闲位可以为该子帧对应的原子帧的定界符中的一位预留位以及该子帧对应的原子帧的定界符中的第二特征指示所占用的8位中的任意1位,该子帧的位置标识可以占用该子帧对应的原子帧的定界符中的位置标识所占用的1位。

如图9-2所示,该两位空闲位可以为该子帧对应的原子帧的定界符中的位置标识所占用的1位以及该子帧对应的原子帧的定界符中的一位预留位,该子帧定界符中的位置标识可以占用该子帧对应的原子帧的定界符中的第二特征指示所占用的8位中的任意1位。

如图9-3所示,该两位空闲位可以为该子帧对应的原子帧的定界符中的一位预留位以及该子帧对应的原子帧的定界符中的第二特征指示所占用的8位中的任意1位。并将该MPDU长度指示占用的14位与该第一特征指示占用的8位向后移动一位,该子帧的位置标识可以占用该子帧对应的原子帧的定界符中的位置标识所占用的1位。

第二方面,如图9-4所示,两位空闲位可以为子帧对应的原子帧的定界符中的一位预留位和位置标识所占用的一位,此时,该子帧对应的原子帧的第二特征指示用于指示该子帧的位置。例如,该第二特征指示可以为:01001011、10110100等,其中,设置当该子帧的定界符中的第二特征指示为01001011时,代表该子帧是非空子帧且该子帧为最后一个子帧,或该子帧是非空子帧且该子帧存在下一个子帧且下一个子帧是空子帧。

第三方面,两位空闲位可以为子帧对应的原子帧的定界符中第一特征指示 所占用的8位中的任意2位或MPDU长度指示所占用的14位中的任意2位,该子帧的位置标识可以占用该子帧对应的原子帧的定界符中的位置标识所占用的1位。如图9-5所示,在802.11ah机制中,子帧的定界符中的第一特征指示仅需占用四位比特位即可,类似地,这里也可将CRC缩短,例如采用6位CRC。这样,就可以用CRC省出的2比特来承载第二长度指示信息。

需要说明的是,该第k个子帧的定界符中还可以包括填充标识,填充标识可以复用802.11ac定界符中的EoF来指示,即当EoF为1时表示当前子帧采用填充方法;否则,本子帧的MPDU的尾部数据部分自己移到了下一个子帧中。在图9-5所示的该第k个子帧的定界符的结构中,该填充标识可以占用该第k个子帧对应的原子帧的定界符中的一位预留位。示例的,当第k个子帧是非空子帧且第k个子帧为最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,该第k个子帧的填充标识可以设置为“填充”,用于指示该第k个子帧内存在填充位。需要说明的是,该该第k个子帧的填充标识的形式也可以为其他形式,本发明实施例对此不做限定。

本发明实施例中,在步骤1104中发送端依次对多个子帧中的子帧进行第二处理的过程中,若第k个子帧为空子帧,由于空子帧中位于空子帧的定界符之后和位于空子帧的下一位的子帧的定界符之前的数据部分的长度为零,为定界符长度的整数倍,所以无需对空子帧进行第二处理。在对该多个子帧中的每个子帧的定界符进行设置时,每个子帧的定界符中均设置有第二长度指示信息和第二长度指示信息,空子帧的定界符中的第二长度指示信息和第二长度指示信息所指示的长度均为零。在步骤1106中接收端依次对该处理后的A-MPDU中的子帧进行解析时,仅需获取每个子帧的定界符中的第二长度指示信息和第二长度指示信息即可对该子帧进行解析。

可选的,在步骤1104中,发送端在依次对多个子帧中的子帧进行第二处理时,可以检测当前处理的子帧是否为空子帧,若当前处理的子帧为空子帧则不对空子帧进行处理;若当前处理的子帧是非空子帧,则判断是否需要对当前子帧进行第二处理,若需要对当前子帧进行第二处理,则可以参考步骤1104中对子帧的第二处理的具体过程。并且若子帧为空子帧则不对空子帧的定界符进行设置,即空子帧中定界符的格式与现有技术中相同;若该子帧是非空子帧,则在该子帧的定界符中设置第二长度指示信息和第二长度指示信息。在步骤1106 中,接收端在对该处理后的A-MPDU进行解析时,首先可以检测当前子帧是否为空子帧,若当前子帧为空子帧,则可以按照现有技术中对空子帧的解析方法对该子帧进行解析。若当前子帧是非空子帧,则可以参考步骤1106中对子帧的具体解析方法,对当前子帧进行解析。

综上所述,由于本发明实施例提供的数据处理方法中,对于A-MPDU的两个相邻子帧,发送端将前一子帧的MPDU尾部的部分字节后移至后一子帧的MPDU的头部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

如图17所示,本发明实施例提供了一种数据处理装置160,该数据处理装置160可以用于发送端,该数据处理装置160可以包括:

生成单元1601,用于根据多个媒体接入控制协议数据单元MPDU生成聚合媒体接入控制协议数据单元A-MPDU,A-MPDU包括y个子帧,每个子帧包括定界符和数据部分,数据部分包括MPDU,每个子帧的数据部分的长度均大于等于零,每个子帧的定界符的长度均为x字节,x≥1,x为整数,y≥2,y为整数。

第一处理单元1602,用于在第k个子帧是非空子帧,且位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度不为x的整数倍时,对第k个子帧进行第一处理,第一处理使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为x的整数倍,1≤k≤y,k为整数。

其中,当存在第k+1个子帧且是非空子帧时,对第k个子帧的第一处理的过程可以包括:将位于第k+1个子帧的MPDU的头部的长度为m的部分移至位于第k个子帧的定界符之后的第k个子帧的MPDU之后、第k+1个子帧的定界符之前,使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数 据部分的长度为x的整数倍,其中,0<m≤x-1,m为整数。

发送单元1603,用于向接收端发送处理后的A-MPDU,以便于接收端根据处理后的A-MPDU解析得到多个MPDU。

当第k个子帧是最后一个子帧或存在第k+1个子帧且是空子帧时,对第k个子帧的第一处理的过程可以包括:

在位于第k个子帧的定界符之后的第k个子帧的MPDU之后添加长度为Q的填充位,使得填充位的长度Q与位于第k个子帧的定界符之后的第k个子帧的MPDU的长度之和等于x的整数倍,其中,0<Q≤x-1,Q为整数。

当k≥2时,第k个子帧的定界符中包括第一长度指示信息和第二长度指示信息。

其中,第一长度指示信息用于指示第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度,第二长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度。

或者,第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度之和,第二长度指示信息用于指示第k+1个子帧的MPDU移至第k个子帧的MPDU之后、第k+1个子帧的定界符之前的部分的长度。

或者,第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度之和,第二长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度。

或者,第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度之和,第二长度指示信息用于指示第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度。

综上所述,由于本发明实施例提供的数据处理装置中,对于A-MPDU的两个相邻子帧,发送端将后一子帧的MPDU头部的部分字节前移至前一子帧的MPDU的尾部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符 之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

如图18所示,本发明实施例提供了另一种数据处理装置170,该数据处理装置170可以用于发送端,该数据处理装置170可以包括:

生成单元1701,用于根据多个媒体接入控制协议数据单元MPDU生成聚合媒体接入控制协议数据单元A-MPDU,A-MPDU包括y个子帧,每个子帧包括定界符和数据部分,数据部分包括MPDU,每个子帧的数据部分的长度均大于等于零,每个子帧的定界符的长度均为x,x≥1,x为整数,y≥2,y为整数。

第二处理单元1702,用于在第k个子帧是非空子帧,且位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度不为x的整数倍时,对第k个子帧进行第二处理,第二处理使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为x的整数倍,1≤k≤y,k为整数。

其中,当存在第k+1个子帧且是非空子帧时,对第k个子帧的第二处理的过程可以包括:将位于第k个子帧的MPDU的尾部的长度为m的部分移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后,使得位于第k个子帧的定界符之后、第k+1个定界符之前的数据部分的长度为x的整数倍,其中,0≤m≤x-1,m为整数。

发送单元1703,用于向接收端发送处理后的A-MPDU,以便于接收端根据处理后的A-MPDU解析得到多个MPDU。

当第k个子帧是最后一个子帧或存在第k+1个子帧且是空子帧时,对第k个子帧的第二处理的过程可以包括:

在位于第k个子帧的定界符之后的第k个子帧的MPDU之后添加长度为Q的填充位,使得第k-1个子帧的MPDU移至第k个子帧的MPDU之前、第k个子帧的定界符之后的部分的长度、填充位的长度Q与第k个子帧的MPDU的长 度之和等于x的整数倍,其中,0<Q≤x-1,Q为整数。

当k≥2时,第k个子帧的定界符中包括第一长度指示信息和第二长度指示信息。

其中,第一长度指示信息用于指示第k个子帧的MPDU移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后的部分的长度与第k个子帧的MPDU位于第k+1个子帧的定界符之前的部分的长度之和,第二长度指示信息用于指示第k-1个子帧的MPDU移至第k个子帧的MPDU之前、第k个子帧的定界符之后的部分的长度。

每个子帧的定界符中还可以包括用于指示每个子帧位置的位置标识,当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且存在第k+1个子帧且第k+1个子帧是空子帧时,多个子帧中除第k个子帧之外的其他子帧定界符中的位置标识与第k个子帧定界符中的位置标识不同。

每个子帧的定界符中还可以包括用于指示每个子帧中是否存在填充位的填充标识。

综上所述,由于本发明实施例提供的数据处理装置中,对于A-MPDU的两个相邻子帧,发送端将前一子帧的MPDU尾部的部分字节后移至后一子帧的MPDU的头部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

如图19所示,本发明实施例提供了又一种数据处理装置180,该数据处理装置180可以用于接收端,该数据处理装置180可以包括:

接收单元1801,用于接收发送端发送的聚合媒体接入控制协议数据单元A-MPDU,A-MPDU包括y个子帧,每个子帧包括定界符和数据部分,每个子帧的数据部分的长度均大于等于零,每个子帧的定界符的长度均为x,x≥1,x 为整数,定界符中包括第一长度指示信息和第二长度指示信息,数据部分包括媒体接入控制协议数据单元MPDU,每两个子帧的定界符之间的数据部分的长度均为x的整数倍,y≥2,y为整数。

解析单元1802,用于依次对多个子帧中的子帧以长度x为单位进行解析处理得到多个MPDU,其中,第k个子帧为y个子帧中的任意一个,1≤k≤y,k为整数,对第k个子帧的解析处理过程包括:根据第k个子帧的定界符中的第一长度指示信息和第二长度指示信息,从第k-1个子帧的数据部分中获取第k个子帧的MPDU的第一部分,从第k个子帧的数据部分中获取第k个子帧的MPDU的第二部分,将第一部分和第二部分合并,组成第k个子帧的MPDU,此时2≤k≤y。

其中,第一长度指示信息用于指示第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度,第二长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度。或者,第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度之和,第二长度指示信息用于指示第k+1个子帧的MPDU移至第k个子帧的MPDU之后、第k+1个子帧的定界符之前的部分的长度。或者,第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度之和,第二长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度。或者,第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度之和,第二长度指示信息用于指示第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度。

综上所述,由于本发明实施例提供的数据处理装置中,对于A-MPDU的两个相邻子帧,发送端将后一子帧的MPDU头部的部分字节前移至前一子帧的MPDU的尾部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的 MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

如图20所示,本发明实施例提供了再一种数据处理装置190,该数据处理装置190可以用于接收端,该数据处理装置190可以包括:

接收单元1901,用于接收发送端发送的聚合媒体接入控制协议数据单元A-MPDU,A-MPDU包括y个子帧,每个子帧包括定界符和数据部分,每个子帧的数据部分的长度均大于等于零,每个子帧的定界符的长度均为x,x≥1,x为整数,定界符中包括第一长度指示信息和第二长度指示信息,数据部分包括媒体接入控制协议数据单元MPDU,每两个子帧的定界符之间的数据部分的长度均为x的整数倍,y≥2,y为整数。

解析单元1902,用于依次对多个子帧中的子帧以长度x为单位进行解析处理得到多个MPDU,其中,第k个子帧为y个子帧中的任意一个,1≤k≤y,k为整数,如图21所示,解析单元1902可以包括:

第一解析单元19021,用于对第k个子帧执行第一解析处理:根据第k个子帧的定界符中的第一长度指示信息和第二长度指示信息,从第k个子帧的数据部分中获取第k个子帧的MPDU的第一部分,从第k+1个子帧的数据部分中获取第k个子帧的MPDU的第二部分,将第一部分和第二部分合并,组成第k个子帧的MPDU,此时1≤k≤y-1。

其中,第一长度指示信息用于指示第k个子帧的MPDU移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后的部分的长度与第k个子帧的MPDU位于第k+1个子帧的定界符之前的部分的长度之和,第二长度指示信息用于指示第k-1个子帧的MPDU移至第k个子帧的MPDU之前、第k个子帧的定界符之后的部分的长度。

定界符中还可以包括填充标识,如图22所示,该解析单元1902可以包括:

检测单元19022,用于检测第k个子帧中的填充标识。

第一解析单元19021,具体用于在检测单元检测出第k个子帧中不存在填充位时,对第k个子帧进行第一解析处理。

第二解析单元19023,用于在检测单元检测出填充标识指示第k个子帧中存在填充位时,对第k个子帧执行第二解析处理:根据第k个子帧的定界符中的第一长度指示信息与第二长度指示信息,在第k个子帧的数据部分中,获取与第k个子帧的定界符的距离为e,且长度为f的部分,作为第k个子帧的MPDU,e为第k个子帧的定界符中的第二长度指示信息所指示的长度,f为第k个子帧的定界符中的第一长度指示信息所指示的长度。

综上所述,由于本发明实施例提供的数据处理装置中,对于A-MPDU的两个相邻子帧,发送端将前一子帧的MPDU尾部的部分字节后移至后一子帧的MPDU的头部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

本发明实施例提供了一种数据处理系统,该数据处理系统可以包括:发送端和接收端,该发送端可以包括图17或图18所示的数据处理装置。该接收端可以包括图19或图20所示的数据处理装置。

综上所述,由于本发明实施例提供的数据处理系统中,对于A-MPDU的两个相邻子帧,发送端将后一子帧的MPDU头部的部分字节前移至前一子帧的MPDU的尾部,或发送端将前一子帧的MPDU尾部的部分字节后移至后一子帧的MPDU的头部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧 添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

如图23所示,本发明另一实施例提供了一种数据处理装置210,该数据处理装置210可以用于发送端,该数据处理装置210可以包括:

处理器2101(一个或多个),用于根据多个媒体接入控制协议数据单元MPDU生成聚合媒体接入控制协议数据单元A-MPDU,A-MPDU包括y个子帧,每个子帧包括定界符和数据部分,数据部分包括MPDU,每个子帧的数据部分的长度均大于等于零,每个子帧的定界符的长度均为x字节,x≥1,x为整数,y≥2,y为整数。

处理器2101还用于在第k个子帧是非空子帧,且位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度不为x的整数倍时,对第k个子帧进行第一处理,第一处理使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为x的整数倍,1≤k≤y,k为整数。

其中,当存在第k+1个子帧且是非空子帧时,对第k个子帧的第一处理的过程可以包括:将位于第k+1个子帧的MPDU的头部的长度为m的部分移至位于第k个子帧的定界符之后的第k个子帧的MPDU之后、第k+1个子帧的定界符之前,使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为x的整数倍,其中,0<m≤x-1,m为整数。

发送机2102,用于向接收端发送处理后的A-MPDU,以便于接收端根据处理后的A-MPDU解析得到多个MPDU。

当第k个子帧是最后一个子帧或存在第k+1个子帧且是空子帧时,对第k个子帧的第一处理的过程可以包括:

在位于第k个子帧的定界符之后的第k个子帧的MPDU之后添加长度为Q的填充位,使得填充位的长度Q与位于第k个子帧的定界符之后的第k个子帧的MPDU的长度之和等于x的整数倍,其中,0<Q≤x-1,Q为整数。

当k≥2时,第k个子帧的定界符中可以包括第一长度指示信息和第二长度指示信息。

其中,第一长度指示信息用于指示第k个子帧的MPDU位于第k个子帧的 定界符之后的部分的长度,第二长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度。

或者,第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度之和,第二长度指示信息用于指示第k+1个子帧的MPDU移至第k个子帧的MPDU之后、第k+1个子帧的定界符之前的部分的长度。

或者,第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度之和,第二长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度。

或者,第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度之和,第二长度指示信息用于指示第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度。

综上所述,由于本发明实施例提供的数据处理装置中,对于A-MPDU的两个相邻子帧,发送端将后一子帧的MPDU头部的部分字节前移至前一子帧的MPDU的尾部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

如图24所示,本发明另一实施例提供了另一种数据处理装置220,该数据处理装置220可以用于发送端,该数据处理装置220可以包括:

处理器2201(一个或多个),用于根据多个媒体接入控制协议数据单元 MPDU生成聚合媒体接入控制协议数据单元A-MPDU,A-MPDU可以包括y个子帧,每个子帧可以包括定界符和数据部分,数据部分可以包括MPDU,每个子帧的数据部分的长度均大于等于零,每个子帧的定界符的长度均为x,x≥1,x为整数,y≥2,y为整数。

处理器2201还用于在第k个子帧是非空子帧,且位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度不为x的整数倍时,对第k个子帧进行第二处理,第二处理使得位于第k个子帧的定界符之后、第k+1个子帧的定界符之前的数据部分的长度为x的整数倍,1≤k≤y,k为整数。

其中,当存在第k+1个子帧且是非空子帧时,对第k个子帧的第二处理的过程可以包括:将位于第k个子帧的MPDU的尾部的长度为m的部分移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后,使得位于第k个子帧的定界符之后、第k+1个定界符之前的数据部分的长度为x的整数倍,其中,0≤m≤x-1,m为整数。

发送机2202,用于向接收端发送处理后的A-MPDU,以便于接收端根据处理后的A-MPDU解析得到多个MPDU。

当第k个子帧是最后一个子帧或存在第k+1个子帧且是空子帧时,对第k个子帧的第二处理的过程可以包括:

在位于第k个子帧的定界符之后的第k个子帧的MPDU之后添加长度为Q的填充位,使得第k-1个子帧的MPDU移至第k个子帧的MPDU之前、第k个子帧的定界符之后的部分的长度、填充位的长度Q与第k个子帧的MPDU的长度之和等于x的整数倍,其中,0<Q≤x-1,Q为整数。

当k≥2时,第k个子帧的定界符中包括第一长度指示信息和第二长度指示信息。

其中,第一长度指示信息用于指示第k个子帧的MPDU移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后的部分的长度与第k个子帧的MPDU位于第k+1个子帧的定界符之前的部分的长度之和,第二长度指示信息用于指示第k-1个子帧的MPDU移至第k个子帧的MPDU之前、第k个子帧的定界符之后的部分的长度。

每个子帧的定界符中还可以包括用于指示每个子帧位置的位置标识,当第k个子帧是非空子帧且第k个子帧是最后一个子帧,或第k个子帧是非空子帧且 存在第k+1个子帧且第k+1个子帧是空子帧时,多个子帧中除第k个子帧之外的其他子帧定界符中的位置标识与第k个子帧定界符中的位置标识不同。

每个子帧的定界符中还可以包括用于指示每个子帧中是否存在填充位的填充标识。

综上所述,由于本发明实施例提供的数据处理装置中,对于A-MPDU的两个相邻子帧,发送端将前一子帧的MPDU尾部的部分字节后移至后一子帧的MPDU的头部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

如图25所示,本发明另一实施例提供了又一种数据处理装置230,该数据处理装置230可以用于接收端,该数据处理装置230可以包括:

接收机2301,用于接收发送端发送的聚合媒体接入控制协议数据单元A-MPDU,A-MPDU包括y个子帧,每个子帧包括定界符和数据部分,每个子帧的数据部分的长度均大于等于零,每个子帧的定界符的长度均为x,x≥1,x为整数,定界符中包括第一长度指示信息和第二长度指示信息,数据部分包括媒体接入控制协议数据单元MPDU,每两个子帧的定界符之间的数据部分的长度均为x的整数倍,y≥2,y为整数。

处理器2302(一个或多个),用于依次对多个子帧中的子帧以长度x为单位进行解析处理得到多个MPDU,其中,第k个子帧为y个子帧中的任意一个,1≤k≤y,k为整数,对第k个子帧的解析处理过程包括:根据第k个子帧的定界符中的第一长度指示信息和第二长度指示信息,从第k-1个子帧的数据部分中获取第k个子帧的MPDU的第一部分,从第k个子帧的数据部分中获取第k个子帧的MPDU的第二部分,将第一部分和第二部分合并,组成第k个子帧的MPDU,此时2≤k≤y。

其中,第一长度指示信息用于指示第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度,第二长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度。或者,第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度之和,第二长度指示信息用于指示第k+1个子帧的MPDU移至第k个子帧的MPDU之后、第k+1个子帧的定界符之前的部分的长度。或者,第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度之和,第二长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度。或者,第一长度指示信息用于指示第k个子帧的MPDU移至第k-1个子帧的MPDU之后、第k个子帧的定界符之前的部分的长度与第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度之和,第二长度指示信息用于指示第k个子帧的MPDU位于第k个子帧的定界符之后的部分的长度。

综上所述,由于本发明实施例提供的数据处理装置中,对于A-MPDU的两个相邻子帧,发送端将后一子帧的MPDU头部的部分字节前移至前一子帧的MPDU的尾部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

如图26所示,本发明另一实施例提供了再一种数据处理装置240,该数据处理装置240可以用于接收端,该数据处理装置240可以包括:

接收机2401,用于接收发送端发送的聚合媒体接入控制协议数据单元 A-MPDU,A-MPDU包括y个子帧,每个子帧包括定界符和数据部分,每个子帧的数据部分的长度均大于等于零,每个子帧的定界符的长度均为x,x≥1,x为整数,定界符中包括第一长度指示信息和第二长度指示信息,数据部分包括媒体接入控制协议数据单元MPDU,每两个子帧的定界符之间的数据部分的长度均为x的整数倍,y≥2,y为整数。

处理器2402(一个或多个),用于依次对多个子帧中的子帧以长度x为单位进行解析处理得到多个MPDU,其中,第k个子帧为y个子帧中的任意一个,1≤k≤y,k为整数,如图21所示,

处理器2402还用于对第k个子帧执行第一解析处理:根据第k个子帧的定界符中的第一长度指示信息和第二长度指示信息,从第k个子帧的数据部分中获取第k个子帧的MPDU的第一部分,从第k+1个子帧的数据部分中获取第k个子帧的MPDU的第二部分,将第一部分和第二部分合并,组成第k个子帧的MPDU,此时1≤k≤y-1。

其中,第一长度指示信息用于指示第k个子帧的MPDU移至第k+1个子帧的MPDU之前、第k+1个子帧的定界符之后的部分的长度与第k个子帧的MPDU位于第k+1个子帧的定界符之前的部分的长度之和,第二长度指示信息用于指示第k-1个子帧的MPDU移至第k个子帧的MPDU之前、第k个子帧的定界符之后的部分的长度。

定界符中还可以包括填充标识。

处理器2402还用于检测第k个子帧中的填充标识。

处理器2402还具体用于在检测单元检测出第k个子帧中不存在填充位时,对第k个子帧进行第一解析处理。

处理器2402还用于在检测单元检测出填充标识指示第k个子帧中存在填充位时,对第k个子帧执行第二解析处理:根据第k个子帧的定界符中的第一长度指示信息与第二长度指示信息,在第k个子帧的数据部分中,获取与第k个子帧的定界符的距离为e,且长度为f的部分,作为第k个子帧的MPDU,e为第k个子帧的定界符中的第二长度指示信息所指示的长度,f为第k个子帧的定界符中的第一长度指示信息所指示的长度。

综上所述,由于本发明实施例提供的数据处理装置中,对于A-MPDU的两个相邻子帧,发送端将前一子帧的MPDU尾部的部分字节后移至后一子帧的 MPDU的头部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

本发明实施例提供了一种数据处理系统,该数据处理系统可以包括:发送端和接收端,该发送端可以包括图23或图24所示的数据处理装置。该接收端可以包括图25或图26所示的数据处理装置。

综上所述,由于本发明实施例提供的数据处理系统中,对于A-MPDU的两个相邻子帧,发送端将后一子帧的MPDU头部的部分字节前移至前一子帧的MPDU的尾部,或发送端将前一子帧的MPDU尾部的部分字节后移至后一子帧的MPDU的头部,从而使得位于前一个子帧的定界符之后、后一个子帧的定界符之前的数据部分的长度为定界符长度的整数倍。相比现有技术中通过在子帧的MPDU之后添加冗余的填充位使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍,通过本发明实施例在同样可以使得两子帧的定界符之间的数据部分的字节数为定界符中字节数的整数倍的同时,减少了对子帧添加冗余的填充位,方便了接收端对发送端处理后的A-MPDU统一以定界符中字节数为单位进行解析,减少了通信系统的额外开销,所以,减少了通信系统资源的浪费。

上述所有可选技术方案,可以采用任意结合形成本发明的可选实施例,在此不再一一赘述。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

需要说明的是,本发明实施例提供的数据处理方法步骤的先后顺序可以进 行适当调整,步骤也可以根据情况进行相应增减,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1