DATA RETRANSMISSION METHOD AND DEVICE, STORAGE MEDIUM, AND ELECTRONIC DEVICE
本申请要求在2019年01月09日提交中国专利局、申请号为201910020987.6的中国专利申请的优先权,该申请的全部内容通过引用结合在本申请中。 本申请涉及通信领域,例如涉及一种数据的重传方法、装置、存储介质及电子装置。 随着无线局域网技术的发展,不断的提高无线保真(Wireless Fidelity,简称为WiFi)性能,对传输的可靠性的要求也在不断提高,并支持边缘用户。 在无线局域网中,常见的设备为接入站点(Access Point,简称AP)以及非接入站点(non-AP STA,简称为STA)。AP建立一个基本服务集(Basic Service Set,简称为BSS),STA通过扫描认证关联过程,与AP关联,并与AP通信,或者通过AP与其他STA通信。在另一种无线局域网络中,例如独立BSS(independent BSS,简称为IBSS)中,并不存在类似AP的接入点,所有站点可以直接和彼此进行通信。 目前无线局域网中,发送方以聚合媒介接入控制(aggregate medium access control,简称为MAC)协议数据单元(protocol data unit,简称为A-MPDU)方式发送数据。该A-MPDU由多个A-MPDU子帧组成,每个A-MPDU子帧包含一个MAC协议数据单元(简称MPDU),每个MPDU由序列号标识。接收方通过接收来自发送方接收到的确认帧,可以获取到A-MPDU中哪些子帧被正确接收,而哪些子帧没有被正确接收。 在当前无线局域网中,接收方会丢弃接收不正确的帧,由于被丢弃的帧中仍然包含了有用的信息,如果丢弃掉,这些有用的信息就丢失了。 由于在接收一个A-MPDU时,存在一部分A-MPDU子帧接收正确,另一部分A-MPDU子帧接收不正确的情况,由于接收方没有正确解码这些接收不正确的子帧,无法获取到相应的MPDU序列号,为此,站点无法实现将接收到的多次传输中具有相同序列号的MPDU进行合并解码。 为了实现混合自动重传机制,本申请给出了一种执行混合自动重传机制的方法。 针对上述技术问题,相关技术中尚未提出有效的解决方案。 发明内容 本发明实施例提供了一种数据的重传方法、装置、存储介质及电子装置,以至少解决相关技术中对数据子帧的重传造成资源浪费的问题。 根据本发明的一个实施例,提供了一种数据的重传方法,包括:发送第一数据包,其中,第一数据包中包括数据块识别信息。 根据本发明的又一个实施例,还提供了一种数据的重传方法,包括:接收第一数据包,其中,第一数据包中包括数据块识别信息。 根据本发明的又一个实施例,还提供了一种数据的重传装置,包括:第一发送模块,设置为发送第一数据包,其中,第一数据包中包括数据块识别信息。 根据本发明的又一个实施例,还提供了一种数据的重传装置,包括:接收模块,设置为接收第一数据包,其中,第一数据包中包括数据块识别信息。 根据本发明的又一个实施例,还提供了一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。 根据本发明的又一个实施例,还提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行上述任一项方法实施例中的步骤。 通过本申请,由于发送方向接收方发送第一数据包,其中,第一数据包中包括数据块识别信息,数据块识别信息用于指示第一数据包中包括的数据块,数据块由一个或多个数据子帧组成;基于接收方发送的接收状态确定出数据块中未被正确接收的数据子帧,进而对未被正确接收的数据子帧进行重传。可以实现只对没有正确接收的数据子帧进行重传,正确接收的数据子帧不再重传。因此,可以解决相关技术中对数据子帧的重传造成资源浪费问题,达到节约资源的,提高重传效率的效果。 此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中: 图1是本发明实施例的一种数据的重传方法的移动终端的硬件结构框图; 图2是根据本发明实施例的数据的重传方法的流程图(一); 图3是根据本发明实施例A-MPDU结构示意图; 图4是根据本发明实施例的数据块识别信息为数据块指示比特图时的示意图; 图5是根据本发明实施例的数据的重传方法的流程图(二); 图6是根据本发明实施例的确认指示比特图示意图; 图7是根据本发明实施例的六帧交互示意图; 图8是根据本发明实施例的七帧交互示意图; 图9是根据本发明实施例的数据的重传装置的结构框图(一); 图10是根据本发明实施例的数据的重传装置的结构框图(二); 图11是根据本发明实施例的码字标识指示信息示意图(二)。 下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。 需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。 本申请实施例所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在移动终端上为例,图1是本发明实施例的一种数据的重传方法的移动终端的硬件结构框图。如图1所示,移动终端10可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述移动终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述移动终端的结构造成限定。例如,移动终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。 存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的数据的重传方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至移动终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。 传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括移动终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。 在本实施例中提供了一种数据的重传方法,图2是根据本发明实施例的数 据的重传方法的流程图(一),如图2所示,该流程包括如下步骤: 步骤S202,发送第一数据包,其中,第一数据包中包括数据块识别信息。 通过上述步骤,由于发送方向接收方发送第一数据包,其中,第一数据包中包括数据块识别信息,数据块识别信息用于指示第一数据包中包括的数据块,数据块由一个或多个数据子帧组成;基于接收方发送的接收状态确定出数据块中未被正确接收的数据子帧,进而对未被正确接收的数据子帧进行重传。可以实现只对没有正确接收的数据子帧进行重传,正确接收的数据子帧不再重传。因此,可以解决相关技术中对数据子帧的重传造成资源浪费问题,达到节约资源的,提高重传效率的效果。 可选地,上述步骤的执行主体可以为第一站点,但不限于此,在本实施例中,第一站点可以是发送数据包的发送方,接收方可以是第二站点,用于接收数据包。 需要说明的是:数据子帧可以是分组码对应的码字(codeword)或者是一个A-MPDU子帧; 需要说明的是,本实施例中的第一数据包优选为A-MPDU,A-MPDU包含多个A-MPDU子帧(简称子帧)组成,每个A-MPDU子帧由序列号(SN)标识;或者A-MPDU是由多个码字组成,每个码字由码字标识(Codeword ID,简称CID)标识。 在一个可选的实施例中,A-MPDU还携带有数据块识别信息,发送方和接收方可以是两个STA,STA可以是接入点站点(AP STA)或非接入点站点(non-AP STA)。 需要说明的是,相关技术中,在无线局域网中,发送方以聚合媒介接入控制(aggregate medium access control,简称MAC)协议数据单元(protocol data unit,简称A-MPDU)的方式发送数据。该A-MPDU包含多个A-MPDU子帧)或者,是由多个分组码对应的码字组成,相关技术中的A-MPDU,并未携带数据块识别信息。 此外,当数据块识别信息为数据块指示比特图时,比特图中的每一个比特位映射一个用于标识数据块的数据块号;比特位的值用于标识第一数据包中是否携带数据块号对应的数据块。例如:A-MPDU中所携带的数据块指示比特图的每一个比特映射一个数据块号,用于指示是否携带数据块号所对应的数据块,其中一个数据块由一个或多个数据子帧组成(如图3所示)。例如,数据块指示比特图包含N个比特,其中比特0到比特(N-1)分别映射到数据块号1到据块号N,如图4所示,当比特i设置为1时,指示当前A-MPDU包含有数据块号为(i+1)的数据块。 在一个可选的实施例中,上述数据块号可以是以下至少之一:混合自动重 传请求(Hybrid Automatic Repeat Request,简称HARQ)进程号、传输标识号、A-MPDU标识号、分组号,但不限于此。 当所述数据块号为HARQ进程号时,数据块指示比特图中的每一个比特位映射一个HARQ进程号,比特位的值用于标识第一数据包中是否携带有所映射的HARQ进程号所对应的数据块; 在一个可选的实施例中,HARQ进程号所对应的数据块包括HARQ进程上一次传输的全部A-MPDU子帧或仅包括未被正确接收的A-MPDU子帧。 在一个可选的实施例中,通过以下方式确定第一数据包的接收状态:接收接收方发送的与第一数据包对应的第一确认帧,其中,第一确认帧用于指示接收方是否接收到第一数据子帧;基于第一确认帧确定第一数据包中未被正确接收的数据子帧,确定出待重传数据子帧。 在一个可选的实施例中,可以基于第一确认帧中包括的序列号或者CID确定未被正确接收的数据子帧;如果第一确认帧中比特位的值为1,则可以确定比特位对应的数据子帧被正确接收了,比特位的值为0的数据子帧为未被正确接收的数据子帧,则可以确定出待重传数据子帧。或者,基于第一确认帧中携带的正确接收的数据子帧的序列号或CID判断出哪些数据子帧未被正确接收,以确定出待重传数据子帧。在重传时,只需要重传待重传数据子帧,节约了重传资源。 在一个可选的实施例中,如果发送方在预定时间间隔内没有接收到接收方发送的与第一数据包对应的第一确认帧,则可以确定第一数据包未被正确接收;可以将未被正确接收的第一数据包中的数据子帧确定为待重传数据子帧。预定时间间隔可以基于数据包的性质进行设置,例如5s或者是10s。 在一个可选的实施例中,发送方没有接收到接收方发送的与第一数据包对应的第一确认帧的情况分为两种,一种是接收方未接收到第一数据包,自然不会发送第一确认帧;第二种是接收方虽然发送了第一确认帧,但第一确认帧在传输的过程中丢失了。 需要说明的是,第一数据包可以是首次传输的数据包,即第一数据包中不包括重传的数据子帧。例如:A-MPDU为STA1向STA2所发送的首传帧时,STA1将A-MPDU所携带的数据块指示比特图的中的仅一个比特位的值设置为1,其他都设置为0。 在一个可选的实施例中,在确定待重传数据子帧之后,通过以下方式对待重传数据子帧进行重传:将待重传数据子帧按照序列号或CID的顺序设置在第一数据块中,其中,第一数据块中只包括待重传数据子帧;将第一数据块设置在第二数据包中,并将第二数据包中数据块指示比特图中,与第一数据块对应的比特位的值设置为第一预设值,其中,第一预设值可以为1,用于标识第二数 据包中包括第一数据块;发送第二数据包。 需要说明的是,上述中的第二数据包为非首次传输的数据包,因为里面包括待重传数据子帧。当然,第二数据包中也可以包括其他数据块或/和新传数据子帧,即第二数据包还可以包括:第三数据块,第三数据块中包括按照预设顺序排列(例如,可以按照序列号或者CID的升序或降序的顺序排列)的第二数据子帧,第三数据块的映射到第二数据包中的数据块指示比特图中的比特位的值为第一预设值。第一数据块和第三数据块按照预设顺序排列,例如按照第一数据块和第三数据块分别映射到数据块指示比特图中的比特位的位置的顺序排列。 例如:A-MPDU为STA1向STA2所发送的非首传帧时,A-MPDU可以包含新传数据块或者重传数据块,或者是新传数据块加上重传数据块;数据块并执行以下操作的一个或多个: 当A-MPDU中同时包含新传数据块和重传数据块时,重传数据块与新传数据块按预设顺序排列; 当A-MPDU中同时包含多个重传数据块时,各个重传数据块按照其映射到数据块指示比特图中的位置的顺序依次排列; A-MPDU中的重传数据块中的数据子帧按照一定的顺序排列,例如按照SN的升序方式排列。 STA1根据接收到确认指示,将本次传输中没有被正确接收的数据子帧划分为同一个数据块。 需要说明的是,第二数据包中包括的数据块也可以全部是新传的数据块,即并不包括携带待重传数据子帧的数据块。 在一个可选的实施例中,在第一数据包中包括多个数据块的情况下,按照数据块的数据块号所映射到数据块指示比特图中的比特位的高低位,对多个数据块进行排列。 在一个可选的实施例中,第二数据包还包括以下至少之一:数据块接收状态信息,数据块接收状态信息用于指示第二数据包中包括第一数据包的数据块中的全部数据子帧,或者,包括第一数据包的数据块中未被正确接收的数据子帧。 需要说明的是,数据块接收状态信息可以是确认比特图,例如:STA2收到了第一数据子帧,STA2向STA1发送第一确认帧,STA1向STA2发送第二数据包时,将里面设置的确认指示比特图中比特为的值设置为特殊值,用于指示接收到第一确认帧,其他比特位的值设置为任意值。其中确认指示比特图中比特位的值还用于指示第二数据包中包括第一数据包的数据块中的全部数据子帧,或者,包括第一数据包的数据块中未被正确接收的数据子帧。 需要说明的是,数据块接收状态信息还可以是全部或者部分数据子帧指示,该全部或者部分数据子帧指示用于指示第二数据包中包括第一数据包的数据块中的全部数据子帧,或者,包括第一数据包的数据块中未被正确接收的数据子帧。 在本实施例中提供了一种数据的重传方法,图5是根据本发明实施例的数据的重传方法的流程图(二),如图5所示,该流程包括如下步骤: 步骤S502,接收第一数据包,其中,第一数据包中包括的数据块识别信息。 通过上述步骤,由于接收方接收发送方发送的第一数据包,其中,第一数据包中包括数据块识别信息,数据块识别信息用于指示第一数据包中包括的数据块,数据块由一个或多个数据子帧组成;并在接收第一数据包之后发送对第一数据子帧的接收状态。发送方可以基于接收状态确定出未正确接收的数据子帧,可以实现只对未正确接收的数据子帧进行重传,正确接收的数据子帧不再重传。因此,可以解决相关技术中对数据子帧的重传造成资源浪费问题,达到节约资源的,提高重传效率的效果。 可选地,上述步骤的执行主体可以为第二站点,但不限于此,在本实施例中,第二站点可以是接收方;发送方可以是第一站点,用于发送数据子帧。 需要说明的是,本实施例中的第一数据包优选为A-MPDU,A-MPDU包括多个A-MPDU子帧(即第一数据子帧),每个A-MPDU由序列号(SN)标识;或者是A-MPDU中包括多个码字,每个码字由CID标识。 在一个可选的实施例中,A-MPDU还携带有数据块识别信息,发送方和接收方可以是两个STA。 需要说明的是,相关技术中,在无线局域网中,发送方以聚合媒介接入控制(aggregate medium access control,简称MAC)协议数据单元(protocol data unit,简称A-MPDU)方式发送数据。该A-MPDU由多个A-MPDU子帧组成,每个A-MPDU子帧包含一个MAC协议数据单元(简称MPDU),相关技术中的A-MPDU并未携带数据块识别信息。 此外,数据块识别信息为数据块指示比特图时,数据块指示比特图中的每一个比特位映射一个用于标识数据块的数据块号;比特位的值用于标识第一数据包中是否携带数据块号对应的数据块。例如:A-MPDU中所携带的数据块指示比特图的每一个比特映射一个数据块号,用于指示是否携带数据块号所对应的数据块,其中一个数据块由一个或多个数据子帧(子帧)组成。例如,数据块指示比特图包含N个比特,其中比特0到比特(N-1)分别映射到数据块号1到数据块号N,如图4所示,当比特i设置为1时,指示当前A-MPDU包含有数据块号为(i+1)的数据块。 在一个可选的实施例中,接收方在接收第一数据包之后,基于数据块识别 信息确定第一数据包中携带的数据块;在第一数据包中包括多个数据块的情况下,分别存储多个数据块;并分别记录多个数据块的长度。 在一个可选的实施例中,在接收到第一数据包之后,需要发送第一确认帧。发送方在接收到第一确认帧之后,可以基于其中的序列号或CID或者是比特位的值确定出待重传数据子帧。例如,第一数据包A-MPDU1为发送方STA1向接收方STA2所发送的首传帧时,STA1将A-MPDU1所携带的数据块指示比特图的中的仅比特0设置为1,其他都设置为0;STA2接收到A-MPDU1时,根据A-MPDU1中所携带的数据块指示比特图中的指示,判断A-MPDU1中仅包括数据块1,STA2通过解码可以获得被正确接收的数据子帧的序列号或CID,将这些序列号或CID映射到第一确认帧中相应的比特位设置为1,用于指示正确接收到对应序列号或CID的数据子帧;将第一确认帧发送至STA1;使得STA1将数据块中没有被正确接收的数据子帧划分为一个数据块,该数据块中数据子帧按照预设顺序排列。例如,可以将第一数据包A-MPDU1中包括的数据块1中除了SN=2、4、5以外所有没被正确接收的所有子帧划分为数据块1,缓存该数据块,并向STA1回复第一确认帧,第一确认帧中指示SN=2、4、5子帧接收正确。 由此可知,发送方通过接收到的第一确认帧可以获知某数据块中哪些数据子帧被正确接收,从而获知没有被正确接收到的数据子帧,发送方将该数据块中没有被正确接收到的数据子帧划分为一个数据块,重传该数据块,例如,可以将A-MPDU1中没被正确接收的所有子帧划分为一个数据块,将未被正确接收的数据子帧的序列号为SN=1和SN=3的子帧划分为数据块1,重传数据块1。 在一个可选的实施例中,在将第一确认帧发送至发送方之后,会继续接收第二数据包;基于第二数据包中的数据块指示比特图中的每个比特位的值,确定第二数据包中包括的数据块,其中,由第一数据块对应的比特位的值为第一预设值,则第二数据包中包括第一数据块;将第一数据块与本地存储的第一数据块进行合并解码。例如:STA2收到A-MPDU2(第二数据包),根据A-MPDU2中携带的数据块指示比特图中的指示,判断A-MPDU2携带有数据块1,而本地缓存有数据块1,则STA2将A-MPDU2中的数据块1与本地缓存的数据块1进行合并解码。 由此可知,接收方在接收到第一数据包之后,会存储第一数据包中的数据块,并记录第一数据包中的数据块的长度;并基于正确接收到的数据子帧,存储未被正确接收的数据子帧,即存储待重传数据子帧;记录待重传数据子帧的长度;将待重传数据子帧记录为第一数据块。从而在接收第二数据包之后,获得第二数据包中包括的数据块进行合并解码。也就是说,第二数据包中可以只包括第一数据块中的待重传数据子帧,其中待重传数据子帧即为上一次传输中 没有被正确接收的数据子帧。也可以包括第三数据块,第三数据块映射到第二数据包中数据块指示图中的比特位的值为第一预设值。如果第二数据包中包括第一数据块,即在接收第一数据块之后,将第一数据块与本地之前缓存的第一数据块进行合并解码,例如,第一数据包中的第一数据块携带的数据子帧的序列号是1、2、3、4、5,在接收第一数据包时,正确接收的是第一数据块中的2、4、5对应的数据子帧,即会将第一数据块中剩余未被正确接收的数据子帧设置为待重传数据块,该带重传数据块的数据块号与所述第一数据块相同,并可以将第一数据块的内容更新记录为所述带重传数据块,并记录长度为L1存储该第一数据块(待重传数据块)到本地。在判断接收到第二数据包中包括有第一数据块之后,根据本地所记录的第一数据块的长度L1获取到第二数据包中包括的第一数据块,并将从第二数据包中获取到的第一数据块与本地存储的第一数据块的待重传数据子帧进行HARQ合并解码。 例如:A-MPDU为STA1向STA2所发送的非首传帧时,A-MPDU可以包含新传数据块或者重传数据块,或者是新传数据块加上重传数据块;数据块并执行以下操作的一个或多个: 当A-MPDU中同时包含新传数据块和重传数据块时,重传数据块与新传数据块之间按预设顺序排列; 当A-MPDU中同时包含多个重传数据块时,各个重传数据块按照其映射到比特图的位置的顺序依次排列; A-MPDU中的重传数据块中的数据子帧按照一定的顺序排列,例如按照SN或者是码字标识的升序方式排列。 STA1根据接收到状态指示或确认指示,将本次传输中没有被正确接收的数据子帧划分至同一个数据块中。 在一个可选的实施例中,第二数据包还包括以下至少之一:数据块接收状态信息,其中,数据块接收状态信息的值用于指示第二数据包中包括第一数据包的数据块的全部数据子帧,或者,包括第一数据包的数据块中未被正确接收的数据子帧。 在一个可选的实施例中,数据块接收状态信息可以是确认比特图,例如:STA2收到了第一数据包,STA2向STA1发送第一确认帧,STA1向STA2发送第二数据包时,将第二数据包中的确认指示比特图中相应比特位的值设置为第二预定值用于指示接收到了第一确认帧。 在一个可选的实施例中,接收第二数据包之后,接收方向发送方发送第二确认帧,其中,第二确认帧用于标识第二数据包中被正确接收的数据子帧。 在一个可选的实施例中,数据块接收状态信息可以是全部数据子帧或部分数据子帧指示,用于指示第二数据包中包括来自第一数据包的第一数据块的全 部数据子帧,或者是仅包括来自第一数据包的第一数据块中的未被正确接收的数据子帧; 可选地,上述全部数据子帧或部分数据子帧指示可以是全部/部分A-MPDU子帧指示或全部/部分码字指示。 下面结合具体实施例对本申请进行详细说明: 在无线网络中,有多个站点STA。本实施例中发送方为STA1,接收方为STA2。第一数据包为A-MPDU,第一数据子帧为多个MPDU。 STA1向STA2发送A-MPDU,此A-MPDU包含多个A-MPDU子帧,每个A-MPDU由序列号(SN)标识,该A-MPDU还携带有数据块指示比特图。 A-MPDU中所携带的数据块指示比特图的每一个比特映射一个数据块号,其值用于指示是否携带数据块号所对应的数据块,其中一个数据块由一个或多个A-MPDU子帧(在本申请中将A-MPDU子帧简称子帧)组成。例如,数据块指示比特图包含N个比特,其中比特0到比特(N-1)分别映射到数据块号1到数据块号N,当比特i设置为第一预定义值,例如1时,指示当前A-MPDU包含有数据块号为(i+1)的数据块。 A-MPDU可以携带一个或多个数据块。 A-MPDU为STA1向STA2所发送的首传帧时,STA1将A-MPDU所携带的数据块指示比特图的中的仅一个比特位设置为1,其他都设置为0;例如,将比特0设置为1,其他比特都设置为0; A-MPDU为STA1向STA2所发送的非首传帧时,A-MPDU可以包含新传数据块或者重传数据块,或者是新传数据块加上重传数据块;数据块,并执行以下操作的一个或多个: 当A-MPDU中同时包含新传数据块和重传数据块时,重传数据块与新传数据块之间按顺序排列; 当A-MPDU中同时包含多个重传数据块时,各个重传数据块按照其映射到数据块指示比特图中比特位的位置的顺序依次排列; A-MPDU中的重传数据块中的子帧按照一定的顺序排列,例如按照SN的升序方式排列。 STA1根据接收到BA中的指示,将本次传输中没有被正确接收的子帧划分为同一个数据块。 STA2在收到A-MPDU时,从A-MPDU所携带的数据块指示比特图中比特位的设置,获知A-MPDU携带有一个或多个数据块以及对应的数据块号; (1)数据块指示比特图中仅有一比特位设置为1时,即A-MPDU仅携带一个数据块,例如比特i设置为1,其他比特位都设置为0,STA2执行如下一个 或多个操作: S1:STA2结合A-MPDU中所携带的新传或重传指示信息判断数据块号为(i+1)的数据块是新传还是重传; S2:本地在收到A-MPDU之前没有缓存数据块号为(i+1)的数据块,则将该A-MPDU中没有被正确接收的子帧划分为同一个数据块,数据块号记为(i+1),其中该数据块中的子帧按照一定的顺序排列,例如按照SN升序的方式排列,缓存该数据块; S3:本地在收到A-MPDU之前缓存有数据块号为(i+1)的数据块,则将所收到A-MPDU中的数据块与缓存的(i+1)的数据块进行合并解码。 (2)数据块指示比特图中有多个比特位同时设置为第一预定义值时,则STA2按照数据块指示比特图中置为第一预定义值的比特位的前后顺序,依次获得A-MPDU中所携带的各个数据块。例如其中有比特i,比特j,比特k以及比特m设置为为了第一预定义值,例如1(i<j<k<m),其他比特位都设置为其他值,例如0,则STA2执行如下操作的一个或多个: S1:STA2将A-MPDU中的全部A-MPDU子帧的前面长度为Li的部分认为是数据块(i+1),并将此数据块与本地缓存的数据块(i+1)进行合并解码;其中Li为本地记录前一次接收到的数据块(i+1)的长度值; S2:STA2将紧接着数据块(i+1)之后的长度为Lj的部分认为是数据块(j+1),并将此数据块与本地缓存的数据块(j+1)进行合并解码;其中Lj为本地记录前一次接收到的数据块(j+1)的长度值; S3:STA2将紧接着数据块(j+1)之后的长度为Lk的部分认为是数据块(k+1),并将此数据块与本地缓存的数据块(k+1)进行合并解码;其中Lk为本地记录前一次接收到的数据块(k+1)的长度值; 比特m为所有置1的比特位中的最高比特位,STA2根据本地在收到A-MPDU之前是否缓存有数据块号为(m+1)的数据块或者是A-MPDU中新/重传指示,判断A-MPDU中所携带的数据块号为(m+1)的数据块是否为新的数据块: 本地在收到A-MPDU之前缓存有数据块号为(m+1)的数据块,则将所收到A-MPDU中的子帧与缓存的子帧进行合并解码处理。 本地在收到A-MPDU之前没有缓存数据块号为(m+1)的数据块,则将该A-MPDU全部子帧中除了数据块(i+1)、数据块(j+1)、数据块(k+1)外的剩余子帧中所有没有被正确接收的子帧划分为同一个数据块,数据块号记录为(m+1),其中该数据块中的子帧按照一定的顺序排列,例如按照SN升序的方式排列。 STA1向STA2发送A-MPDU,该A-MPDU携带数据块号为(i+1)的数据块(简称数据块(i+1))、数据块(j+1)和数据块(k+1),其中i<j<k,则STA1将A-MPDU中的数据块指示比特图的比特i,j,k分别设置为1,其他都设置为0。 STA1向STA2发送A-MPDU1,该A-MPDU1包含的子帧的序列号SN依次为1、2、3、4、5。STA1将该A-MPDU1的数据块指示比特图的中的比特0设置为1,其他都设置为0,此时STA1可以将这五个数据块视为一个分组。STA1收到来自STA2的确认帧,获知SN=2、4、5的子帧均已被正确接收,则STA1将SN=1和SN=3的子帧视为数据块1,在下次重传时会将SN=1和SN=3的子帧放在一起按照SN值升序的顺序排列作为数据块1发送。 STA2接收到A-MPDU1时,根据A-MPDU1中所携带的数据块指示比特图中的指示,当本地没有缓存数据块1时,因只有一个比特位置1,当前不含别的数据块,因此将A-MPDU1中没被正确接收的所有子帧划分为一个数据块,并记录该数据块,即将除了已经被正确接收到的SN=2、4、5的子帧以外的剩余子帧划分为数据块1,缓存数据块1,STA2向STA1回复确认帧。 STA1向STA2重传数据块1,数据块1或数据块1的冗余版本承载在A-MPDU2中发送,STA1将A-MPDU2所携带的数据块指示比特图中的比特0设置为1,其他设置为0。STA1可以多次重传数据块1或数据块1的不同冗余版本。 STA2收到A-MPDU2,根据A-MPDU2中携带的数据块指示比特图中的指示,判断A-MPDU2携带有数据块1,而本地缓存有数据块1,则STA2获取到A-MPDU2中的数据块1,并将此数据块1与本地缓存的数据块1进行合并解码。 STA1向STA2发送A-MPDU1,该A-MPDU1包含子帧的序列号SN依次为1、2、3、4、5。STA1将该A-MPDU1的数据块指示比特图的中的比特0设置为1,其他都设置为0,此时STA1可以将这五个子帧视为一个分组。 STA2接收到A-MPDU1时,根据A-MPDU1中所携带的数据块指示比特图中的指示,获知A-MPDU1中携带有数据块1,当STA2本地没有缓存数据块1时,STA2正确解码出该A-MPDU1中SN=2、4、5的子帧,则STA2向STA1回复确认帧,并在确认帧中指示SN=2、4、5的子帧接收正确,并将A-MPDU1中没被正确接收的所有子帧划分为一个数据块,并缓存该数据块,即将A-MPDU中除了SN=2、4、5以外的剩余子帧划分为数据块1,缓存数据块1,STA2记录该数据块1的总长度为L1。 STA1收到来自STA2的确认帧后,获知SN=2、4、5的子帧均已被正确接 收,则STA1将SN=1和SN=3的子帧视为数据块1,在下次重传时会将SN=1和SN=3的子帧放一起作为数据块1发送。 STA1收到确认帧后向STA2发送A-MPDU2,该A-MPDU2中包含子帧的SN依次为6、7、8、9。STA1将A-MPDU2中的数据块指示比特图中的比特1设置为1,其他都设置为0。STA2接收到A-MPDU2时,根据A-MPDU2中所携带的数据块指示比特图中的指示,获知该A-MPDU2携带有数据块2,在本地没有缓存数据块2时或者是A-MPDU2中新/重传指示标识为新传时,而比特图中仅一个比特位设置为1,STA2对A-MPDU2进行解码,其中SN=6和SN=7的子帧解码正确,则将A-MPDU2中没被正确接收的所有子帧划分为一个数据块,即将SN=6和SN=7的子帧以外的剩余子帧划分为数据块2,缓存数据块2,STA2记录数据块2总长度L2。STA2向STA1回复确认帧,其中指示SN=6和SN=7的子帧被正确接收。 STA1收到来自STA2的确认帧,获知SN=6和7的子帧均已被正确接收,则STA1将SN=8和9的子帧视为数据块2。STA1在下次重传SN=8和9的子帧时会将SN=8和9的子帧放一起作为数据块2发送。 此后,STA1向STA2发送A-MPDU3,A-MPDU3包含数据块1或数据块1的不同冗余版本,以及数据块2或数据块2的不同版本,STA1将A-MPDU3中的数据块指示图中的比特0和比特1分别设置为1,其他比特位都设置为0。 STA2接收到A-MPDU3,根据A-MPDU3中所携带的数据块指示比特图的指示,获知A-MPDU中包括有数据块1和数据块2,而本地有缓存数据块1和数据块2,则STA2将A-MPDU3中的子帧部分的前长度为L1的部分认为是数据块1,并将此数据块1与本地缓存的数据块1进行合并解码;STA2将数据块1之后的长度为L2的部分认为是数据块2,并将此数据块2与本地缓存的数据块2进行HARQ合并解码。STA2根据上述HARQ合并解码后的结果,向STA1回复确认帧。 STA1向STA2发送A-MPDU1,该A-MPDU1包含子帧的序列号SN依次为1、2、3、4、5。STA1将该A-MPDU1的数据块指示比特图的中的比特0设置为1,其他都设置为0,此时STA1可以将这五个数据块视为一个分组。STA2接收到A-MPDU1时,根据A-MPDU1中所携带的数据块指示比特图中的指示,获知A-MPDU1中携带有数据块1,当本地没有缓存数据块1时,而比特图中仅一个比特位设置为1,则将A-MPDU1中没被正确接收的所有子帧划分为一个数据块,并记录该数据块,此处STA2正确接收到A-MPDU1中的SN=2、4和5的子帧,则将A-MPDU1中除了SN=2、4和5的子帧以外的剩余子帧划分为数据块1,缓存数据块1,STA2记录数据块1的总长度为L1。STA2向STA1回复 确认帧1,其中指示SN=2、4和5的子帧接收正确。 STA1收到来自STA2的确认帧1,获知SN=2、4、5的子帧均已被正确接收,则STA1将SN=1和SN=3的子帧视为数据块1,在下次重传时会将SN=1和SN=3的子帧捆绑一起作为数据块1发送。 STA1向STA2发送A-MPDU2,该A-MPDU2中包含子帧的SN依次为6、7、8、9。STA1将A-MPDU2中的数据块指示比特图中的比特1设置为1,其他都设置为0。STA2接收到A-MPDU2时,根据A-MPDU2中所携带的数据块指示比特图中的指示,获知A-MPDU2中携带有数据块2,本地没有缓存数据块2或者是A-MPDU2中的新/重传指示标识为新传时,而比特图中仅一个比特位设置为1,则将A-MPDU2中没被正确接收的所有子帧划分为一个数据块,例如,此处STA2正确接收到SN=6和7的子帧,则将A-MPDU2中除了6和7的子帧以外的剩余子帧划分为数据块2,缓存数据块2,STA2记录数据块2的总长度L2。STA2向STA1回复确认帧2。 STA1收到来自STA2的确认帧2,获知SN=6和7的子帧均已被正确接收,则STA1将SN=8和9的子帧视为数据块2,在下次重传SN=8和9的子帧时,会将SN=8和9的子帧捆绑一起作为数据块2发送。 STA1向STA2发送A-MPDU3,该A-MPDU3中包含数据块1、数据块2和一组新传,这组新传中包含SN=10、SN=11和SN=12的子帧,STA1除了将A-MPDU3中的数据块指示比特图中的比特0(对应数据块1)设置为1,比特1(对应数据块2)设置为1以外,还将该数据块指示比特图的比特i设置为1,用于指示还携带有一个数据块(分组)(i+1),例如,此处将比特2设置为1,而数据块指示比特图其他比特位都设置为0。 STA2收到A-MPDU3,根据A-MPDU3中所携带的数据块指示比特图中的指示,获知A-MPDU3携带有数据块1、数据块2和数据块3,而STA2本地缓存有数据块1和数据块2,但是没有缓存数据块指示比特图中的比特2所映射的数据块3,则STA2会按照数据块指示比特图中置1的比特位的前后顺序,依次获得A-MPDU3中的各个数据块,即将A-MPDU3中的子帧部分的前长度为L1的部分认为是数据块1,并将此数据块1与本地缓存的数据块1进行合并解码;将数据块1之后的长度为L2的部分认为是数据块2,并将此数据块2与本地缓存的数据块2进行合并解码;将除了数据块1和数据块2以外的剩余的子帧部分中没有被正确接收的子帧统一划分为数据块3,缓存数据块3,并记录数据块3的长度,例如在本示例中,STA2除了数据块1和数据块2以外的剩余子帧部分仅正确接收到SN=11的子帧,则STA2将除了数据块1和数据块2以外的剩余的子帧部分中没有被正确接收的子帧统一划分为数据块3,记录数据块3的长度,并向STA1回复确认帧,确认帧中SN=11所映射的比特位设置为1。 STA1在收到上述确认帧后,可以知道STA2除了数据块1和数据块2以外的子帧中仅正确接收到了SN=11的子帧,则STA1在下次重传中会将SN=10和SN=12的子帧捆绑成一个数据块发送,并记录该数据块为数据块3。 STA2收到一个A-MPDU,STA2获得该比特图的比特2和比特4设置为1,其他都设置为0。 STA2本地已缓存数据块3,根据本地记录的数据块3的长度L3,将A-MDPU中子帧部分的前长度为L3的部分认为是数据块3,并将该数据块与本地缓存的数据块3进行合并解码。 STA2根据A-MPDU中的新传指示或本地没有缓存数据块指示比特图中的比特4所映射的数据块5,来判断比特4所映射的子帧组为新传组,则STA2将该组中没有被正确接收的子帧划分为数据块5,记录数据块5的长度,并且回复A-MPDU的确认帧。 在无线网络中,站点在所发送的A-MPDU中包括数据块,所述数据块由一个或多个数据子帧组成,所述数据子帧可以为A-MPDU子帧或码字。 其中所述数据块标识可以是HARQ ID或者是传输ID或者是A-MPDU ID。 所述A-MPDU中携带确认指示比特位,用于指示是否接收到来自接收方针对所述数据块的上一次传输的确认,其中,数据包包含的确认指示比特位,与上述中的确认指示比特图并不相同,确认指示比特位与数据块指示比特图解绑。 接收方接收到所述A-MPDU,根据确认指示比特位的指示,获知所发送方是否正确接收到来自接收方针对所述A-MPDU中数据块的上一次传输的确认。 当确认指示比特位指示接收到来自收方针对所述A-MPDU中数据块的上一次传输的确认时,获知A-MPDU中的数据块中包含所对应的上一次传输中的未被正确接收的A-MPDU子帧或未被正确接收的码字; 当确认指示比特位指示没有接收到来自收方针对所述A-MPDU中数据块的上一次传输的确认时,获知A-MPDU中的数据块中包含所对应的上一次传输中的全部A-MPDU子帧或全部码字。 在所述数据块标识的数据块中的全部数据子帧都被正确接收或者是达到了数据子帧的最大重传次数或多大重传时间时,接收方或发送方可以释放所述数据块所在的HARQ进程。 例如,STA1向STA2发送A-MPDU1,A-MPDU1中包含SN=1、2、3、4和5的子帧。当A-MPDU1作为HARQ ID=1的HARQ进程的首传时,其中A-MPDU1中携带的确认指示比特位的值为保留值。此时SN=1、2、3、4和5的子帧为数据块1(数据块标识为HARQ ID)。 STA2接收到A-MPDU1,正确接收到SN=1、2、3的子帧,并将接收状态以确认帧1的方式反馈给STA1。 STA1接收到确认帧1,根据确认帧1中所指示的接收状态,获知SN=4和5的子帧没有被正确接收,重新将SN=4和5的子帧划分为数据块1数据块标识为HARQ ID)。 STA1向STA2发送包括有数据块1的A-MPDU2,A-MPDU2中的确认指示比特位设置为特殊值,例如1,用于指示接收到确认帧1。 STA2接收到A-MPDU2,根据A-MPDU2中的确认指示比特位的值设置为了特殊值,判断STA1接收到确认帧1,从而获知A-MPDU2中包含数据块1上一次传输(A-MPDU1)中的未被正确接收的子帧,即A-MPDU2中的数据块1包含SN=4和5的子帧。 例如,在上述示例中,如果STA1没有接收到确认帧1,则STA1在向STA2发送包括有数据块1的A-MPDU2中,将确认指示比特位的值设置为另一个特殊值,例如0,用于指示没有收到A-MPDU1的确认。 STA2接收到A-MPDU2,根据A-MPDU2中的确认指示比特位的值设置的值,判断STA1没有接收到确认帧1,从而获知A-MPDU2中包含数据块1上一次传输(A-MPDU1)中的全部的子帧,即A-MPDU2中的数据块1包含SN=1、2、3、4和5的子帧。 在无线网络中,站点在所发送的A-MPDU中包括一个或多个数据块,所述数据块由一个或多个数据子帧组成,所述数据子帧可以为A-MPDU子帧或码字。 A-MPDU中携带有确认指示比特图,确认指示比特图中每个比特位分别用于指示是否正确接收到来自接收方针对所映射的数据分块的上一次传输的确认,例如比特位i设置为1表示正确接收到来自接收方针对数据块(i+1)的上一次传输的确认,如图6所示。 发送方STA1在发送数据块指示比特图中比特i设置为1的A-MPDU后, 1)如果接收到来自接收方STA2所回复的确认帧(包括块确认帧)时,STA1在下一次发送携带有数据块指示比特图中比特i所映射的数据块的A-MPDU时,将确认指示比特图中的比特为i设置为特殊值,例如1; 2)如果没有接收到来自接收方STA2所回复的确认帧(包括块确认帧)时,STA1在下一次发送携带有数据块指示比特图中比特i所映射的数据块的A-MPDU时,将确认指示比特图中的比特为i设置为特殊值,例如0; 3)如果STA1发送的A-MPDU中不携带有数据块指示比特图中比特i所映射的数据块时,则确认指示比特图中的比特为i值保留。 接收方STA2在收到上述A-MPDU时,会根据数据块指示比特图以及确认 指示比特图中对应比特位的设置值执行以下操作之一: S1301:收到A-MPDU; S1302:判断数据块指示比特图中的比特位i设置为1,如果是,转至S1303,否则转至S1306; S1306:忽略确认指示比特图中的比特i的值; S1303:判断本地缓存是否有数据块比特图中比特i所映射的数据块,如果是,转至S1304,否则转至S1307; S1307:分别为数据块(i+1)和数据块(i+1)_a,如果确认指示比特图中的比特i指示正确接收到相应的确认帧,例如设置为1时,则将数据块(i+1)与本地缓存的数据块(i+1)进行合并解码处理,并将合并解码处理后的数据块缓存,并标识为数据块号(i+1)_a;同时将合并解码处理后没有被正确接收的全部子帧缓存,并标识为数据块号(i+1); S1304:判断确认比特指示图的比特i是否等于1,如果是,转至S1305,否则转至S1308; S1305:如果确认指示比特图中的比特i指示没有接收到相应的确认帧,例如设置为0时,则将数据块(i+1)_a与本地缓存的数据块(i+1)_a进行合并解码处理,并将合并解码处理后的数据块缓存,并标识为数据块号(i+1)_a;同时将合并解码处理后没有被正确接收的全部子帧缓存,并标识为数据块号(i+1); S1308:本地没有缓存数据块指示比特图中的比特i所映射的数据块,STA2同时将A-MPDU中的数据块指示比特图某比特位i所映射的某一数据块或者是新传组中全部子帧缓存,并标识为数据块号(i+1)_a;以及将该数据块或该新传组中没有没被正确接收的子帧缓存,并标识为数据块号(i+1)。 数据块指示比特图中的比特位i设置为0,则忽略确认指示比特图中的比特i的设置值。 STA2可选的记录数据块(i+1)_a和数据块(i+1)的长度,分别为L(i+1)_a和L(i+1)。STA2可选的使用长度值获得A-MPDU中对应的数据块。 当前所有数据块均正确接收,或者是所在自动重传请求进程到期时重置数据块号,清空相应缓存区。 STA1向STA2发送A-MPDU1,该A-MPDU1子帧的序列号SN依次为1、2、3、4、5。STA1将该A-MPDU1的数据块指示比特图的中的比特0设置为1,其他都设置为0;确认指示比特图中各比特位设置为任意值。 STA2接收到A-MPDU1,根据A-MPDU1中所携带的数据块指示比特图中的比特0设置为1,而本地没有缓存比特0所映射的数据块,则STA1缓存比特0所映射到A-MPDU1中的全部子帧,并记录数据块号为1a,向STA1回复的确 认帧BA1中指示正确接收到SN=2、SN=4和SN=5的子帧,并将没有被正确接收的剩余子帧部分缓存,并记录为数据块1,STA2可选的还记录有数据块1a和数据块1的长度值。 STA1接收到BA1,并向STA2发送A-MPDU2,该A-MPDU2中携带有SN=1和SN=3的子帧,并携带有一个新传组,新传组中包含的子帧的SN依次为6、7、8、9。则STA1将A-MPDU2中的数据块指示比特图中的比特0设置为1,比特2设置为1,其他比特位均设置为0;将确认指示比特图中比特0设置为1,其他比特位设置为任意值。 STA2收到A-MPDU2,根据其中数据块指示比特图中的设置,比特0设置为1,获知STA1携带有比特0所映射的数据块1或数据块1a,根据A-MPDU2中携带的数据块指示比特图中比特0设置为1获知STA1正确接收到STA2对数据块1上一次传输的确认帧BA1,则STA2根据本地缓存的数据块1的长度,获取到A-MPDU2中的数据块1;根据数据块指示比特图中的比特2设置为1,而本地没有缓存数据块3或者是A-MPDU2中携带的新传指示信息获知A-MPDU3中除了数据块1外剩余部分子帧为一个新传组,STA2解析该新传组,并向STA1回复确认帧BA2。上述帧交互如图7所示。 在上述示例六的基础上,STA2回复BA2时,其中指示正确接收到SN=6和SN=7的子帧,并将除了数据块1以外剩下没有被正确接收的子帧划分为数据块3,缓存数据块3,并记录数据块3的长度为L3,可选的还缓存SN依次为6、7、8、9所组成的新传组,作为数据块3的备选组,记录为数据块3a,并记录数据块3a的长度L3a。 STA1没有收到BA2,STA1向STA2发送A-MPDU3,其中携带有SN依次为6、7、8、9子帧,将A-MPDU3中的数据块指示比特图中的比特2设置为1,并且将确认指示比特图中的比特2设置为0,用于指示没有收到上一次数据块3的确认,即没有收到BA2。 STA2收到A-MPDU3时,根据数据块指示比特图中的比特2设置为1获知A-MPDU3中携带有数据块3或数据块3a,根据确认指示比特图中的比特2设置为0获知没收到BA2,从而进一步确认A-MPDU3携带有数据块3a,STA2根据数据块3a的长度获取到A-MPDU3中的数据块3a,并与已缓存的数据块3a进行合并解码处理。上述帧交互如图8所示。 STA1向STA2发送A-MPDU1,该A-MPDU1包含子帧的序列号SN依次为1、2、3、4、5,为首传。STA1将该A-MPDU1的数据块指示比特图的中的比特0设置为1,其他都设置为0;确认指示比特图中各比特位设置为任意值。 STA2接收到A-MPDU1,根据A-MPDU1中所携带的数据块指示比特图中比特0设置为1,而本地没有缓存数据块1,STA2将该比特0所映射的全部子帧缓存,并记录为数据块1a以及记录长度为L1a,向STA1回复的确认帧BA1中指示正确接收到SN=2、SN=4和SN=5的子帧。并将没有被正确接收的剩余子帧部分缓存,并记录为数据块1以及记录长度值为L1。 STA1接收到BA1,并向STA2发送A-MPDU2,该A-MPDU2中仅携带有SN=1和SN=3的子帧。则STA1将A-MPDU2中的数据块指示比特图中的比特0设置为1,其他比特位均设置为0;将确认指示比特图中比特0设置为1,其他比特位设置为任意值。 STA2接收到A-MPDU2,由数据块指示比特图获知A-MPDU2中携带有数据块1或数据块1a,由确认指示比特图获知STA1已经收到BA1,则STA2认为A-MPDU2中携带的为数据块1,根据已记录的数据块1的长度获取到A-MPDU2中的数据块1,与本地缓存的数据块1进行合并解码,缓存合并解码后的该数据块,并将该合并解码后的数据块重新记录为1a,长度为L1a。STA2在该合并解码后正确解码出SN=1的子帧,STA2向STA1回复BA2,BA2中SN=1相应的比特位设置为1,并且STA2将该合并解码处理后的数据块中除了被正确接收的SN=1的子帧以外的子帧缓存,并将之重新记录为数据块1以及记录长度L1。 STA1没有收到BA2,没有获知到BA2中关于SN=1接收正确的指示,STA1向STA2发送A-MPDU3,该A-MPDU3中携带有SN=1和SN=3的子帧,数据块指示比特图中的比特0设置为1,其他比特位均设置为0;将确认指示比特图中比特0设置为0,其他比特位设置为任意值。 STA2接收到A-MPDU3,由数据块指示比特图获知当前携带数据块1或数据块1a,由确认指示比特图获知STA1没有收到BA2,则STA2认为A-MPDU3所携带的是数据块1a,根据已记录的数据块1a的长度获取到A-MPDU2中的数据块1a,与本地缓存的数据块1a进行合并解码,缓存合并解码后的该数据块,并记录合并解码后的该数据块为1a,长度为L1a。STA2在该合并解码后正确解码出SN=1的子帧,STA2向STA1回复BA3,BA2中SN=1相应的比特位设置为1,STA2缓存合并解码后的该数据块中除了被正确接收的SN=1的子帧以外的子帧,并将之记录为数据块1以及记录长度L1。 STA1收到了BA3,STA1向STA2发送A-MPDU4,该A-MPDU4中携带有SN=3的子帧,并将数据块指示比特图中的比特0设置为1,其他比特位均设置为0;将确认指示比特图中比特0设置为1,其他比特位设置为任意值。 STA2接收到A-MPDU4,由数据块指示比特图获知当前携带数据块1或数据块1a,由确认指示比特图获知STA1接收到了BA2,则STA2判断A-MPDU3 所携带的是数据块1,根据已记录的数据块1的长度获取到A-MPDU2中的数据块1,与本地缓存的数据块1进行合并解码。 发送方所发送的A-MPDU中携带有数据识别信息或数据块接收状态信息存在指示信息,用于指示所发送的A-MPDU中是否携带有数据识别信息或数据块接收状态信息。 发送方根据所接收到的确认信息决定重传子帧,具体的重传该A-MPDU中所有接收不正确的子帧。 接收方同时缓存有全部子帧,记为数据块1;以及缓存有全部没有被正确接收到的子帧,记录为数据块1a。此外接收方可选的记录数据块1和数据块1a的长度值,分别记为L1和L1a 当接收方本地记录有长度值时,接收方在接收A-MPDU的重传帧时,根据所获取到的重传帧中全部子帧的长度值,如果所获取到重传帧中全部子帧的长度为L1时,则将重传帧中的全部子帧与数据块1进行合并解码处理;如果所获取到重传帧中全部子帧的长度为L1a时,则将重传帧中的全部子帧与数据块1a进行合并解码处理; 当接收方本地没有记录长度值时,接收方将所获取到的重传帧中的全部子帧,依次与本地缓存的数据块1和数据块1a进行匹配,找到长度相匹配的缓存数据块并进行合并解码处理。 在按照上述中所描述的规则进行数据块的机制下,发送方在多次重传某数据块时不更新该数据块的大小、所包含的子帧数目以及子帧的序列号,其中发送方可以更新该数据块的冗余版本。 STA1向STA2发送A-MPDU1,该A-MPDU1包含子帧的序列号SN依次为1、2、3、4、5。STA1将该A-MPDU1的数据块指示比特图的中的比特0设置为1,其他都设置为0。 STA2接收到A-MPDU1,根据A-MPDU1中所携带的数据块指示比特图中比特0设置为1,而本地没有缓存数据块1,STA2向STA1回复的确认帧BA1中指示正确接收到SN=2、SN=4和SN=5的子帧,并将没有被正确接收的剩余子帧部分缓存,并记录为数据块1。 STA1在接收到BA1时,获取到SN=1和SN=3的子帧没有被正确接收,STA1将SN=1和SN=3的子帧捆绑成数据块1,STA2发送包含数据块1的重传的A-MPDU2。 STA2接收到A-MPDU2,获取到数据块1,并正确解码出SN=1的子帧,STA2向STA1回复BA2,BA2的设置可以是以下之一: 1)将BA2中SN=1子帧所映射的比特位设置为1用于指示正确接收到SN=1的子帧; 将BA2中的SN=1子帧所映射的比特位设置仍然设置为0。 2)STA1接收到BA2后,即使获取到SN=1被正确接收,但由于同一数据块中其他子帧(此处是SN=3的子帧)没有被正确接收,因此STA1在发送数据块1的重传时,仍然将SN=1和SN=3的子帧一起发送。 在之后的重传发送中,STA1始终将SN=1和SN=3一起发送,直到SN=1和SN=3的子帧全部被正确接收,或者是达到了最大重传次数或者是所在的混合自动重传进程结束。 接收方的MAC层会告诉物理层各个数据块的长度,由物理层做合并解码处理。 发送方向接收方发送A-MPDU,A-MPDU中包含一个或多个A-MPDU子帧,该A-MPDU的物理帧头中还携带有所包含的每一个子帧的标识ID的指示信息。 在一个可选的实施例中,标识ID可以是HARQ进程标识,也可以是子帧序列号。 基于该A-MPDU的接收状态,STA1在重传未被正确接收的子帧时,在包含有这些被正确接收的子帧的数据包的物理帧头中携带有所述子帧的标识ID的指示信息。 例如:STA1向STA2发送A-MPDU1,该A-MPDU1的物理帧头中包含指示信息指示A-MPDU1中所包括的子帧的标识ID=1、2、3、4、5。 STA2向STA1回复确认帧,指示标识ID为2、4、5的子帧被正确接收。 STA1在收到所述确认帧后,向STA2重传标识ID为1和3的子帧,其中标识ID为1和3的子帧承载在A-MPDU2中,该A-MPDU2的物理帧头中携带有指示信息指示A-MPDU2中所包括有标识ID为1和3的子帧。 综上所述,通过实现以A-MPDU子帧为基本重传单元的方法,在执行混合自动重传请求机制时,发送方不需要重传A-MPDU中被正确接收的子帧,从而有效的利用传输资源,进而提高传输效率。 STA1向STA2发送一个数据包,该数据包中包含一个或多个码字。该数据包中还携带有码字标识指示信息(如图11所示)。该码字标识信息可以携带在物理帧头中,但不限于携带在物理帧头中。 码字标识指示信息可以是比特图信息,也可以是一个或多个码字标识; 当码字标识指示信息为比特图信息时,每个比特位映射到一个码字标识(codeword ID,简称CID),每个比特位的值用于指示数据包是否包括有对应的码字标识的码字。 当所述码字标识指示信息为一个或多个码字标识,即指示所述数据包包括有所述码字标识的码字,如图11所示。 具体包括如下示例: 示例一: STA1向STA2发送一个数据包1,该数据包中携带有码字标识指示信息,该码字标识指示信息指示数据包1中包括有CID=1、2、3的码字。 STA2正确接收到CID=2的码字,STA2向STA1反馈该数据包1的接收状态; STA1在接收到STA1反馈的数据包1的接收状态,确定下次需要重传的码字为CID=1和CID=2的码字。 STA1在没有接收到STA1反馈的数据包1的接收状态时,确定下次需要重传的码字为CID=1、2和3的码字。 STA1向STA2发送一个数据包,该数据包中包含一个或多个码字。该数据包中还包含有确认指示比特位,用于指示是否收到来自STA2针对上一次传输的反馈。 当确认指示比特位设置为第一特殊值时,指示收到来自STA2针对上一次传输的反馈;否则,即指示没有收到来自STA2针对上一次传输的反馈。 当确认指示比特位设置为第一特殊值时,还可以指示所述数据包中包含上一次传输的部分码字;否则,则可以指示所述数据包中包含上一次传输的全部码字。 示例二: STA1向STA2发送一个数据包1,数据包1中包括有CID=1、2、3的码字。 STA2正确接收到CID=2的码字,STA2向STA1反馈该数据包1的接收状态; STA1在没有接收到STA1反馈的数据包1的接收状态时,确定下次需要重传的码字为CID=1、2和3的码字。 STA1向STA2发送一个数据包2,该数据包2中携带有确认指示比特位,用于指示是否收到针对上一次传输的反馈,例如,此处数据包2中的确认指示比特位设置为特殊值,例如0,指示没有收到上一次传输的反馈。数据包2中包括上一次传输的全部码字,即包括CID=1、2、3的码字。 STA2接收到数据包2,根据数据包2中的确认指示比特位设置为特殊值知道数据包2中没有收到数据包1的反馈,因此获知数据包2中包含的码字有CID=1、2、3的码字。 发送方向接收方发送数据包,数据包包含一个或多个码字。数据包中还携带有全码指示信息,该全码指示信息用于指示当前传输是否包含上一次传输的全部码字,例如,全码指示信息设置为预设值指示当前数据包包含某次传输的全部码字,否则指示当前数据包仅包含某一次传输中没有被正确接送的全部码字。 其中所述某次传输使用混合自动重传进程标识ID,或者是传输ID标识,或者是PPDU ID标识,或者特指上一次传输。 接收方接收到数据包,根据该数据包中所携带的全码指示信息判断当前数据包中是否包含所对应传输中的全部码字。所对应传输由混合自动重传进程ID标识,或者是传输ID标识,或者是PPDU ID标识,或者特指上一次传输。包括如下示例: 示例1: STA1向STA2发送数据包1,该数据包中包含码字标识为CID=1、2和3的码字。 STA2接收到数据包1,正确解码出CID=3的码字,STA2向STA1发送确认; STA1收到STA2的确认,获知CID=1和2的码字没有被正确接收; STA1向STA2的发送数据包2,该数据包2中包含CID=1和2的码字的重传,数据包2中还包含全码指示信息,该全码指示信息设置为特殊值,例如0,用于指示数据包2中携带有数据包1中的部分码字; STA2收到数据包1,根据全码指示信息获知数据包2中包含CID=1和2的码字,不包含CID=3的码字。 示例2: STA1向STA2发送数据包1,该数据包中包含码字标识CID=1、2和3的码字。 STA2接收到数据包1,正确解码出CID=3的码字,STA2向STA1发送确认; STA1没有接收到STA2的确认,则认为CID=1、2和3的码字都没有被正确解码; STA1向STA2的发送数据包2,该数据包2中包含CID=1、2和3的码字的重传,数据包2中还包含全码指示信息,该全码指示信息设置为特殊值,例如1, 用于指示数据包2中携带有数据包1中的全部码字; STA2收到数据包1,根据全码指示信息获知数据包2中包含数据包1中的全部码字,即包含CID=1、2和3的的码字。 发送方向接收方发送一个数据包,该数据包对应一个混合自动重传进程(Hybrid Automatic Repeat request,简称HARQ)或者是对应一个传输进程。前者使用HARQ ID标识,后者使用传输ID(transmit ID,简称TID)标识。 该数据包中携带有数据块识别信息,该数据块识别信息可以对应HARQ ID或者是TID。该数据块识别信息的值用于指示当前数据包中是否包含有相应HARQ ID或者是相应TID的数据块。 上述相应HARQ ID或者相应TID的数据块为以下之一: a)HARQ ID或TID所对应的上一次传输的全部A-MPDU子帧或全部码字; b)HARQ ID或TID所对应的上一次传输的没有被正确接收的A-MPDU子帧或没有被正确接收的码字; 在本实施例中,所述数据包中还可以携带数据块接收状态信息,该数据块接收状态信息可以是确认指示比特位用于指示是否收到该数据包中包含的数据块的上一次传输(由HARQ ID或TID标识)的确认帧;或者该数据块接收状态信息是全部/部分数据子帧指示,用于指示所述数据包中是包含HARQ ID或TID所对应的上一次传输的全部数据子帧(A-MPDU子帧或码字),或者是包含HARQ ID或TID所对应的上一次传输中没有被正确接收的数据子帧(A-MPDU子帧或码字); 在上述实施例的基础上,接收方接收到数据包时,根据该数据包中的携带的数据块识别信息,确定该数据包所包含的数据块。 在本实施例中,还可以根据数据包中携带的数据块接收状态信息确定发送方是否收到该数据包中包含的数据块的上一次传输的确认帧,从而确定所述数据块是包含该数据块所对应HARQ ID或TID的上一次传输的全部A-MPDU子帧或全部码字,或者是所述数据块是包含该数据块所对应HARQ ID或TID的上一次传输的未被正确A-MPDU子帧或未被正确接收的码字。 示例1,STA1向STA2发送数据包1,数据包1对应HARQ ID1,还包含子帧号为1、2、3、4、5的子帧; STA2收到数据包1,正确接收到子帧号为2和4的子帧,并发送确认帧1给STA1。 STA1根据确认帧1,确定子帧号为1、3、5的子帧没有被正确接收,为此STA1将子帧号为1、3、5的子帧设置成一个数据块,该数据块对应标识为HARQ ID1。 STA1向STA2发送数据包2,将数据包2中的数据块识别信息中HARQ ID1所映射的比特位设置为特殊值,例如设置为1,指示数据包2中包含HARQ ID1所对应的数据块。 在本示例中,数据包2中还可以包含数据块接收状态信息,该数据块接收状态信息设置为特殊值,例如1,用于指示收到了确认帧1; STA2收到数据包2,根据数据包2中的确认指示比特位确定STA1收到了确认帧1,从而获知数据包2中所包含的HARQ ID1所对应的数据块中包含子帧号为1、3、5的子帧; 示例2,STA1向STA2发送数据包1,数据包1对应HARQ ID1,还包含子帧号为1、2、3、4、5的子帧; STA2收到数据包1,正确接收到子帧号为2和4的子帧,并发送确认帧1给STA1。 STA1没有收到确认帧1或者是没有正确解码数据子帧1,则STA1会将数据包1中全部子帧,即子帧号为1、2、3、4、5的子帧设置成一个数据块,该数据块对应的标识为HARQ ID1。 STA1向STA2发送数据包2,将数据包2中的数据块识别信息设置为特殊值用于指示数据包2中包含HARQ ID1所对应的数据块。 数据包2中还可以包含确认指示比特位,该确认指示比特位用于设置为特殊值,例如0,用于指示没有收到了确认帧1; STA2收到数据包2,根据数据包2中的确认指示比特位确定STA1没有收到了确认帧1,从而获知数据包2中所包含的HARQ ID1所对应的数据块中包含子帧号为1、2、3、4、5的子帧。 站点的MAC层向PHY层发送数据块信息指示,数据块信息指示包括以下至少之一:数据块的起始位置信息、数据块的长度、数据块的数量、待存储数据比特的起始位置、待存储数据比特的长度、待存储数据比特的数量。 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。 在本实施例中还提供了一种数据的重传装置的结构框图装置,该装置用于 实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。 图9是根据本发明实施例的数据的重传装置的结构框图(一),如图9所示,该装置包括:第一发送模块902,下面对该装置进行详细说明: 第一发送模块902,用于发送第一数据包,其中,第一数据包中包括数据块识别信息。 通过上述模块,由于发送方向接收方发送第一数据包,其中,第一数据包中包括数据块识别信息,数据块识别信息用于指示第一数据包中包括的数据块,数据块由一个或多个数据子帧组成;基于接收方发送的接收状态确定出数据块中未被正确接收的数据子帧,进而对未被正确接收的数据子帧进行重传。可以实现只对没有正确接收的数据子帧进行重传,正确接收的数据子帧不再重传。因此,可以解决相关技术中对数据子帧的重传造成资源浪费问题,达到节约资源的,提高重传效率的效果。 需要说明的是:数据子帧可以是分组码对应的码字(codeword)或者是一个A-MPDU子帧; 需要说明的是,本实施例中的第一数据包优选为A-MPDU,A-MPDU包含多个A-MPDU子帧(简称子帧)组成,每个A-MPDU子帧由序列号(SN)标识;或者A-MPDU是由多个码字组成,每个码字由码字标识(Codeword ID,简称CID)标识。 在一个可选的实施例中,A-MPDU还携带有数据块识别信息,发送方和接收方可以是两个STA,STA可以是接入点站点(AP STA)或非接入点站点(non-AP STA)。 需要说明的是,相关技术中,在无线局域网中,发送方以聚合媒介接入控制(aggregate medium access control,简称MAC)协议数据单元(protocol data unit,简称A-MPDU)的方式发送数据。该A-MPDU包含多个A-MPDU子帧)或者,是由多个分组码对应的码字组成,相关技术中的A-MPDU并未携带数据块识别信息。 此外,当数据块识别信息为数据块指示比特图时,数据块指示比特图中的每一个比特位映射一个用于标识数据块的数据块号;比特位的值用于标识第一数据包中是否携带数据块号对应的数据块。例如:A-MPDU中所携带的数据块指示比特图的每一个比特映射一个数据块号,用于指示是否携带数据块号所对应的数据块,其中一个数据块由一个或多个数据子帧组成。例如,数据块指示比特图包含N个比特,其中比特0到比特(N-1)分别映射到数据块号1到据块 号N,如图4所示,当比特i设置为1时,指示当前A-MPDU包含有数据块号为(i+1)的数据块。 在一个可选的实施例中,上述数据块号(也称数据块标识)可以是以下至少之一:混合自动重传请求(Hybrid Automatic Repeat Request,简称HARQ)进程号、传输标识号、A-MPDU标识号、分组号,物理层协议数据单元PPDU(PHY protocol data unit)标识号但不限于此。 当所述数据块号为HARQ进程号时,数据块识别信息可以是比特图,该比特图中的每一个比特位映射一个HARQ进程号,比特位的值用于标识第一数据包中是否携带有所映射的HARQ进程号所对应的数据块;或者数据块识别信息可以是一个或多个HARQ进程号,用于指示第一数据包中是否携带HARQ进程号所对应的数据块。 在一个可选的实施例中,HARQ进程号所对应的数据块包括HARQ进程上一次传输的全部A-MPDU子帧或仅包括未被正确接收的A-MPDU子帧。 在一个可选的实施例中,通过以下方式确定第一数据包的接收状态:接收接收方发送的与第一数据包对应的第一确认帧,其中,第一确认帧用于指示接收方是否接收到第一数据子帧;基于第一确认帧确定第一数据包中未被正确接收的数据子帧,确定出待重传数据子帧。 在一个可选的实施例中,可以基于第一确认帧中包括的序列号或者CID确定未被正确接收的数据子帧或者码字;如果第一确认帧中比特位的值为1,则可以确定比特位对应的数据子帧被正确接收了,比特位的值为0的数据子帧为未被正确接收的数据子帧,则可以确定出待重传数据子帧。或者,基于第一确认帧中携带的正确接收的数据子帧的序列号或CID判断出哪些数据子帧未被正确接收,以确定出待重传数据子帧。在重传时,只需要重传待重传数据子帧,节约了重传资源。 在一个可选的实施例中,如果发送方在预定时间间隔内没有接收到接收方发送的与第一数据包对应的第一确认帧,则可以确定第一数据包未被正确接收;可以将未被正确接收的第一数据包中的数据子帧确定为待重传数据子帧。预定时间间隔可以基于数据包的性质进行设置,例如5s或者是10s。 在一个可选的实施例中,发送方没有接收到接收方发送的与第一数据包对应的第一确认帧的情况分为两种,一种是接收方未接收到第一数据包,自然不会发送第一确认帧;第二种是接收方虽然发送了第一确认帧,但第一确认帧在传输的过程中丢失了。 需要说明的是,第一数据包可以是首次传输的数据包,即第一数据包中不包括重传的数据子帧。 在一个可选的实施例中,通过以下方式对待重传数据子帧进行重传:将待 重传数据子帧按照序列号或CID的顺序设置在第一数据块中,其中,第一数据块中只包括待重传数据子帧;将第一数据块设置在第二数据包中,并将第二数据包中数据块识别信息的值设置为第一预设值,用于标识第二数据包中包括第一数据块;发送第二数据包。 需要说明的是,上述中的第二数据包为非首次传输的数据包,因为里面包括待重传数据子帧。当然,第二数据包中也可以包括其他数据块或/和新传数据子帧,即第二数据包还可以包括:第三数据块,第三数据块中包括按照预设顺序排列(例如,可以按照序列号或者CID的升序或降序的顺序排列)的第二数据子帧,第三数据块的映射到第二数据包中的数据块识别信息的值设为第一预设值。第一数据块和第三数据块按照预设顺序排列,例如当数据块识别信息为数据块指示比特图时,按照第一数据块和第三数据块分别映射到数据块指示比特图中的比特位的位置的顺序排列。 例如:A-MPDU为STA1向STA2所发送的非首传帧时,A-MPDU可以包含新传数据块或者重传数据块,或者是新传数据块加上重传数据块;数据块并执行以下操作的一个或多个: 当A-MPDU中同时包含新传数据块和重传数据块时,重传数据块与新传数据块按预设顺序排列; 当A-MPDU中同时包含多个重传数据块时,各个重传数据块按照预设顺序依次排列; A-MPDU中的重传数据块中的数据子帧按照一定的顺序排列,例如按照SN的升序方式排列。 STA1根据接收到确认指示,将本次传输中没有被正确接收的数据子帧划分为同一个数据块。 需要说明的是,第二数据包中包括的数据块也可以全部是新传的数据块,即并不包括携带待重传数据子帧的数据块。 在一个可选的实施例中,在第一数据包中包括多个数据块的情况下,按照数据块所映射到数据块识别信息中的位置,对多个数据块进行排列。 在一个可选的实施例中,第二数据包还包括以下至少之一:数据块接收状态信息,数据块接收状态信息的值用于指示第二数据包中包括第一数据包的数据块中的全部数据子帧,或者,包括第一数据包的数据块中未被正确接收的数据子帧。 在一些可选的实施例中,数据块接收状态信息可以是确认比特图,例如:STA2收到了第一数据子帧,STA2向STA1发送第一确认帧,STA1向STA2发送第二数据包时,将里面设置的确认指示比特图中比特为的值设置为1,用于指示接收到第一确认帧,其他比特位的值设置为任意值。 图10是根据本发明实施例的数据的重传装置的结构框图(二),如图10所示,该装置包括:接收模块1002,下面对该装置进行详细说明: 接收模块1002,用于接收第一数据包,其中,所述第一数据包中包括的数据块识别信息。 通过上述各个模块,由于接收方接收发送方发送的第一数据包,其中,第一数据包中包括数据块识别信息,数据块识别信息用于指示第一数据包中包括的数据块,数据块由一个或多个数据子帧组成;并在接收第一数据包之后发送对第一数据的接收状态。发送方可以基于接收状态对未正确接收的数据子帧进行重传。因此,可以解决相关技术中对数据子帧的重传造成资源浪费问题,达到节约资源的,提高重传效率的效果。 需要说明的是,本实施例中的第一数据包优选为A-MPDU,A-MPDU包括多个A-MPDU子帧(即第一数据子帧),每个A-MPDU由序列号(SN)标识;或者是A-MPDU中包括多个码字,每个码字由CID标识。 在一个可选的实施例中,A-MPDU还携带有数据块识别信息,发送方和接收方可以是两个STA。 需要说明的是,相关技术中,在无线局域网中,发送方以聚合媒介接入控制(aggregate medium access control,简称MAC)协议数据单元(protocol data unit,简称A-MPDU)方式发送数据。该A-MPDU由多个A-MPDU子帧组成,每个A-MPDU子帧包含一个MAC协议数据单元(简称MPDU),相关技术中的A-MPDU并未携带数据块识别信息。 此外,当数据块识别信息为数据块指示比特图时,数据块指示比特图中的每一个比特位映射一个用于标识数据块的数据块号;比特位的值用于标识第一数据包中是否携带数据块号对应的数据块。例如:A-MPDU中所携带的数据块指示比特图的每一个比特映射一个数据块号,用于指示是否携带数据块号所对应的数据块,其中一个数据块由一个或多个数据子帧(子帧)组成。例如,数据块指示比特图包含N个比特,其中比特0到比特(N-1)分别映射到数据块号1到数据块号N,如图4所示,当比特i设置为1时,指示当前A-MPDU包含有数据块号为(i+1)的数据块。 在一个可选的实施例中,接收方在接收第一数据包之后,基于数据块识别信息的值确定第一数据包中携带的数据块;在第一数据包中包括多个数据块的情况下,分别存储多个数据块;并分别记录多个数据块的长度。 在一个可选的实施例中,在接收到第一数据包之后,需要发送第一确认帧。发送方在接收到第一确认帧之后,可以基于其中的序列号或CID或者是比特位的值确定出待重传数据子帧。例如,当数据块识别信息为数据块指示比特图时,第一数据包A-MPDU1为发送方STA1向接收方STA2所发送的首传帧时,STA1 将A-MPDU1所携带的数据块指示比特图的中的仅比特0设置为1,其他都设置为0;STA2接收到A-MPDU1时,根据A-MPDU1中所携带的数据块指示比特图中的指示,判断A-MPDU1中仅包括数据块1,STA2通过解码可以获得被正确接收的数据子帧的序列号或CID,将这些序列号或CID映射到第一确认帧中相应的比特位设置为1,用于指示正确接收到对应序列号或CID的数据子帧;将第一确认帧发送至STA1;使得STA1将数据块中没有被正确接收的数据子帧划分为一个数据块,该数据块中数据子帧按照预设顺序排列。例如,可以将第一数据包A-MPDU1中包括的数据块1中除了SN=2、4、5以外所有没被正确接收的所有子帧划分为为数据块1,缓存该数据块,并向STA1回复第一确认帧,第一确认帧中指示SN=2、4、5子帧接收正确。 由此可知,发送方通过接收到的第一确认帧可以获知某数据块中哪些数据子帧被正确接收,从而获知没有被正确接收到的数据子帧,发送方将该数据块中没有被正确接收到的数据子帧划分为一个数据块,重传该数据块,例如,可以将A-MPDU1中没被正确接收的所有子帧划分为一个数据块,将未被正确接收的数据子帧的序列号为SN=1和SN=3的子帧划分为数据块1,重传数据块1。 在一个可选的实施例中,在将第一确认帧发送至发送方之后,会继续接收第二数据包;基于第二数据包中的数据块识别信息,确定第二数据包中包括的数据块,将第二数据包中的第一数据块与本地存储的第一数据块进行合并解码。例如:STA2收到A-MPDU2(第二数据包),根据A-MPDU2中携带的数据块识别信息中的指示,判断A-MPDU2携带有数据块1,而本地缓存有数据块1,则STA2将A-MPDU2中的数据块1与本地缓存的数据块1进行合并解码处理。 由此可知,接收方在接收到第一数据包之后,会存储第一数据包中的数据块,并记录第一数据包中的数据块的长度;并基于正确接收到的数据子帧,存储未被正确接收的数据子帧,即存储待重传数据子帧;记录待重传数据子帧的长度;将待重传数据子帧记录为第一数据块。从而在接收第二数据包之后,获得第二数据包中包括的数据块进行合并解码存储。也就是说,第二数据包中可以只包括第一数据块中的待重传数据子帧,其中待重传数据子帧即为上一次传输中没有被正确接收的数据子帧。也可以包括第三数据块,第三数据块映射到第二数据包中数据块指示图中的比特位的值为第一预设值。如果第二数据包中包括第一数据块,即在接收第一数据块之后,将第一数据块与本地之前缓存的第一数据块进行合并解码,例如,第一数据包中的第一数据块携带的数据子帧的序列号是1、2、3、4、5,在接收第一数据包时,正确接收的是第一数据块中的2、4、5对应的数据子帧,即会将第一数据块中剩余未被正确接收的数据子帧设置为待重传数据块,该带重传数据块的数据块号与所述第一数据块相同,并可以将第一数据块的内容更新记录为所述带重传数据块,并记录长度为L1存 储该第一数据块(待重传数据块)到本地。在判断接收到第二数据包中包括有第一数据块之后,根据本地所记录的第一数据块的长度L1获取到第二数据包中包括的第一数据块,并将从第二数据包中获取到的第一数据块与本地存储的第一数据块的待重传数据子帧进行HARQ合并解码处理。 例如:A-MPDU为STA1向STA2所发送的非首传帧时,A-MPDU可以包含新传数据块或者重传数据块,或者是新传数据块加上重传数据块;数据块并执行以下操作的一个或多个: 当A-MPDU中同时包含新传数据块和重传数据块时,重传数据块与新传数据块之间按预设顺序排列; 当A-MPDU中同时包含多个重传数据块时,各个重传数据块按照其映射到比特图的位置的顺序依次排列; A-MPDU中的重传数据块中的数据子帧按照一定的顺序排列,例如按照SN或者是码字标识的升序方式排列。 STA1根据接收到状态指示或确认指示,将本次传输中没有被正确接收的数据子帧划分至同一个数据块中。 在一个可选的实施例中,第二数据包还包括以下至少之一:数据块接收状态信息,其中,数据块接收状态信息的值用于指示第二数据包中包括第一数据包的数据块中的全部数据子帧,或者,包括第一数据包的数据块中未被正确接收的数据子帧。 在一些可选的实施例中,数据块接收状态信息为确认比特位,用于指示发送方是否接收到第一确认帧; 在一些可选的实施例中,数据块接收状态信息为确认比特图,例如:STA2收到了第一数据包,STA2向STA1发送第一确认帧,STA1向STA2发送第二数据包时,将第二数据包中的确认指示比特图中相应比特位的值设置为第二预定值用于指示接收到了第一确认帧。 在一些可选的实施例中,数据块接收状态信息为全部或部分数据子帧指示,用于指示第二数据包中包括第一数据包的数据块中的全部数据子帧,或者,包括第一数据包的数据块中未被正确接收的数据子帧。 在一个可选的实施例中,接收第二数据包之后,接收方向发送方发送第二确认帧,其中,第二确认帧用于标识第二数据包中被正确接收的数据子帧。 在一个可选的实施例中,第二数据包还包括全部数据子帧或部分数据子帧指示,用于指示第二数据包中包括来自第一数据包的第一数据块的全部数据子帧,或者是仅包括来自第一数据包的第一数据块中的未被正确接收的数据子帧; 可选地,上述全部数据子帧或部分数据子帧指示可以是全部/部分子帧指示或全部/部分码字指示。 需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。 本发明的实施例还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。 可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以上各步骤的计算机程序。 可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。 本发明的实施例还提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。 可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。 可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以上各步骤。 可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。 显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。 以上所述仅为本发明的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。 The present application provides a data retransmission method and device, a storage medium, and an electronic device. The method comprises: sending a first data packet, the first data packet comprising data block identification information. 一种数据的重传方法,包括: 发送第一数据包,其中,所述第一数据包中包括数据块识别信息。 根据权利要求1所述的方法,其中, 所述第一数据包还包括数据块,其中,所述数据块由一个或多个数据子帧组成,所述数据子帧包括以下之一:分组码对应的码字,协议数据单元A-MPDU子帧。 根据权利要求1所述的方法,发送所述第一数据包之后,还包括: 基于所述第一数据包的接收状态对所述第一数据包的数据块进行重传。 根据权利要求1所述的方法,其中,所述数据块识别信息包括以下至少之一: 数据块指示比特图,其中,所述数据块指示比特图中的每一个比特位对应一个数据块标识,所述比特位的值用于指示所述第一数据包中是否携带所述数据块标识对应的数据块; 数据块标识列表,其中,所述数据块标识列表中包含的数据块标识用于指示所述第一数据包中携带的所述数据块标识对应的数据块; 新传数据块的指示或重传数据块的指示,用于指示所述第一数据包中是否携带上一次传输的数据块; 混合自动重传标识指示,用于指示所述第一数据包中携带的混合自动重传标识对应的数据块; 传输标识指示,用于指示所述第一数据包中携带的传输标识对应的数据块; 聚合媒介接入控制协议数据单元标识指示,用于指示所述第一数据包中携带的聚合媒介接入控制协议数据单元标识对应的数据块; 物理层协议数据单元标识指示,用于指示所述第一数据包中携带的聚合物理层协议数据单元标识对应的数据块。 根据权利要求3所述的方法,其中,基于所述第一数据包的接收状态对所述第一数据包的数据块进行重传包括以下至少之一: 接收由接收方发送的与所述第一数据包对应的第一确认帧,基于所述第一确认帧对所述第一数据包的数据块中未被正确接收的数据子帧进行重传,其中,所述第一确认帧用于指示所述接收方是否正确接收到所述第一数据包的数据块中的数据子帧; 在预定时间间隔内没有接收到接收方发送的与所述第一数据包对应的第一确认帧的情况下,对所述第一数据包进行重传。 根据权利要求3所述的方法,基于所述第一数据包的接收状态对所述第一数据包的数据块进行重传,包括: 将所述第一数据包的数据块中未被正确接收的数据子帧承载在第二数据包 中。 根据权利要求3所述的方法,其中,基于所述第一数据包的接收状态对所述第一数据包的数据块进行重传,包括: 将第二数据包包括的数据块识别信息设置为第一预设值,其中,所述第一预设值用于指示所述第二数据包中包括第一数据块,所述第一数据块包括以下之一:所述第一数据包的数据块中全部数据子帧,所述第一数据包的数据块中未被正确接收的数据子帧; 发送所述第二数据包。 根据权利要求6所述的方法,其中,所述第二数据包还包括数据块接收状态信息,其中,所述数据块接收状态信息包括以下至少之一: 确认比特位,其中,所述确认比特位的值用于指示是否正确接收到第一确认帧,其中,所述第一确认帧用于指示接收方是否正确接收到所述第一数据包的数据块中的数据子帧; 确认比特图,其中,所述确认比特图中每个比特位的值用于指示是否正确接收到所述每个比特位对应的数据块的确认帧; 全部数据子帧或部分数据子帧的标识信息,其中,所述全部数据子帧或部分数据子帧的标识信息用于指示所述第二数据包中包括所述第一数据包的数据块中的全部数据子帧,或者,包括所述第一数据包中的数据块中未被正确接收的数据子帧。 根据权利要求1或6所述的方法,还包括: 在所述第一数据包或第二数据包中包括多个数据块的情况下,按照预设顺序依次对所述多个数据块进行排列。 根据权利要求1或8所述的方法,还包括以下之一: 所述数据块识别信息或所述数据块的接收状态信息携带在数据包的物理帧头中; 所述数据块识别信息或所述数据块的接收状态信息携带在混合自动重传帧头中。 一种数据的重传方法,包括: 接收第一数据包,其中,所述第一数据包中包括数据块识别信息。 根据权利要求11所述的方法,还包括: 根据所述数据块识别信息确定所述第一数据包中包括的数据块,其中,所述数据块包括由一个或多个数据子帧组成,所述数据子帧包括以下之一:分组码对应的码字,协议数据单元A-MPDU子帧。 根据权利要求12所述的方法,根据所述数据块识别信息确定所述第一数据包中包括的数据块包括: 对所述数据块进行接收合并解码或者是独立解码; 其中,所述接收合并解码是指将所述数据块与本地保存的相应数据块进行合并,并对合并后的数据块进行解码;所述独立解码是指对所述数据块进行解码。 根据权利要求11所述的方法,接收所述第一数据包之后,还包括: 发送对所述第一数据包的接收状态,其中,所述接收状态用于指示是否正确接收所述第一数据包的数据块中的数据子帧。 根据权利要求11所述的方法,其中,所述数据块识别信息包括以下至少之一: 数据块指示比特图,其中,所述数据块指示比特图中的每一个比特位的值用于确定所述第一数据包中所携带的数据块; 数据块标识列表,其中,所述数据块标识列表中包含的数据块标识用于确定所述第一数据包中携带的所述数据块标识对应的数据块; 新传数据块的指示或重传数据块的指示,用于确定所述第一数据包中包括的数据块; 混合自动重传标识指示,用于确定所述第一数据包中包括的所述混合自动重传标识所指示的数据块; 传输标识指示,用于确定所述第一数据包中携带的传输标识对应的数据块; 聚合媒介接入控制协议数据单元标识指示,用于确定所述第一数据包中携带的聚合媒介接入控制协议数据单元标识对应的数据块; 物理层协议数据单元标识指示,用于确定第一数据包中携带的物理层协议数据单元标识对应的数据块。 根据权利要求11所述的方法,接收所述第一数据包之后,还包括: 基于所述数据块识别信息确定所述第一数据包中包括的数据块,其中,在所述第一数据包中包括多个数据块的情况下,按照预设顺序获取所述多个数据块。 根据权利要求14所述的方法,其中,发送对所述第一数据包的接收状态,包括: 确定正确接收的数据子帧; 发送第一确认帧,其中,所述第一确认帧用于指示是否正确接收到所述第一数据包的数据块中的数据子帧。 根据权利要求11所述的方法,其中,接收所述第一数据包,包括以下至少之一: 存储所述第一数据包的数据块; 记录所述第一数据包的数据块的长度; 记录所述第一数据包的数据块中未被正确接收的数据子帧的总长度; 存储所述第一数据包的数据块中未被正确接收到的数据子帧。 根据权利要求11所述的方法,还包括: 接收第二数据包; 基于所述第二数据包中的数据块识别信息,确定所述第二数据包中包括第一数据块,其中,所述数据块识别信息的值为第一预设值,所述第一预设值用于指示所述第二数据包中包括所述第一数据块。 根据权利要求19所述的方法,还包括: 根据所述第二数据包中所携带的数据块接收状态信息确定所述第一数据块中包括所述第一数据包的数据块的全部数据子帧,或者,确定所述第一数据块中包括所述第一数据包的数据块中未被正确接收的数据子帧。 根据权利要求19所述的方法,还包括以下至少之一: 将所述第一数据块与本地存储的所述第一数据包的数据块,或者是与本地存储的所述第一数据包的数据块中未被正确接收到的数据子帧进行合并解码; 对所述第一数据块进行独立解码; 对所述第一数据块进行独立解码,并在独立解码不正确的情况下,将所述第一数据块与本地存储的所述第一数据包的数据块进行合并解码,或者将所述第一数据块与本地存储的所述第一数据包的数据块中未被正确接收到的数据子帧进行合并解码。 根据权利要求19所述的方法,接收所述第二数据包之后,还包括: 基于所述数据块识别信息的值确定所述第二数据包中还包括第二数据块,其中,所述数据块识别信息的值设置为第二预设值,用于指示所述第二数据包中包括有第二数据块。 根据权利要求22所述的方法,基于所述数据块识别信息的值确定所述第二数据包中还包括第二数据块之后,还包括: 按照预设顺序依次获得第一数据块和第二数据块。 根据权利要求19所述的方法,接收所述第二数据包之后,还包括: 向发送方发送第二确认帧,其中,所述第二确认帧用于指示是否正确接收所述第二数据包的数据块中的数据子帧。 一种数据的重传装置,包括: 第一发送模块,设置为发送第一数据包,其中,所述第一数据包中包括数据块识别信息。 一种数据的重传装置,包括: 接收模块,设置为接收第一数据包,其中,所述第一数据包中包括数据块识别信息。 一种存储介质,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至10任一项中所述的方法,或者,执行所述权利要求11至24任一项中所述的方法。 一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行所述权利要求1至10任一项中所述的方法,或者,执行所述权利要求11至24任一项中所述的方法。技术领域
背景技术
附图说明
具体实施方式