具体实施方式
本发明实施例对现有技术中的RLC层和PDCP层进行改进,对SDU进行分配序列号(SN)操作、分段与级联操作和安全操作,不进行ARQ和ROHC等操作,在满足安全性要求的情况下实现了数据传输,并简化了数据处理流程,提高了传输效率。
参见图3,本实施例中发送数据的主要方法流程如下:
步骤301:获得来自高层的数据包,并将该数据包作为业务数据单元(SDU)。本实施例中的高层是指层2以上的层,如应用层和RRC(无线资源控制)层等。
步骤302:对SDU进行分配SN操作、分段与级联操作和安全操作,并获得分组数据单元(PDU)。
步骤303:将PDU发往媒体接入控制(MAC)层进行发送。
与发送过程相对于的,参见图4,本实施例中接收数据的主要方法流程如下:
步骤401:获得来自MAC层的PDU。
步骤402:根据PDU中的SN进行重排序操作,获得内部处理数据包。
步骤403:对内部处理数据包进行解安全操作和重组操作,并获得SDU。
步骤404:将SDU发往高层进行处理。
在步骤302中,分配SN操作、分段与级联操作和安全操作的执行顺序上和各操作具体实现上都可能有多种实现方式。例如对SDU进行分配序列号SN操作和安全操作,并将分配有SN和进行安全操作后的SDU放入发送缓存,在收到传输机会指示后,再对发送缓存中的SDU进行分段与级联操作。或者,将该数据包作为SDU后,将SDU放入发送缓存;收到传输机会指示后,对SDU进行分配序列号SN操作、分段与级联操作和安全操作。对于分配的SN可以仅分配内部SN、仅分配外部SN或分配内部SN和外部SN。本实施例中针对SDU分配的SN为内部SN,针对PDU分配的SN为外部SN。如果仅分配内部SN或外部SN,则内部SN或外部SN用于重排序和安全性操作,如果分配了内部SN和外部SN,则内部SN用于安全性操作,外部SN用于重排序。分配的SN不同影响着分配SN操作、分段与级联操作和安全操作的执行顺序和具体实现方式,下面通过4个典型实施例来详细介绍,并且每个实施例都涉及数据发送和接收过程。
参见图5,本实施例中分配内部SN和外部SN时发送数据的方法流程如下:
高层(如RRC层)根据预设策略预先对新协议子层进行建立和配置。
步骤501:获得来自高层的数据包,并将该数据包作为SDU。
步骤502:对SDU分配内部的SN。此步骤有多种实现方式,如按照预先规定的比特长度为对应不同类型逻辑信道的SDU分配相同比特长度的内部SN,如该长度为8比特(bit)。或者,按照预先规定的比特长度为对应用于承载信令的信令无线承载(SRB)的逻辑信道的SDU分配相同比特长度的内部SN,如该长度为5或8bits;按照预先规定的比特长度为对应用于承载数据的数据无线承载(DRB)的逻辑信道的SDU分配相同比特长度的内部SN,如该长度为8或16bits。或者,根据高层的配置信息对SDU进行分配内部SN,例如用于承载信令的SRB的逻辑信道可以固定为一个值,可不超过8bits,用于承载数据的DRB的逻辑信道可以由高层对其进行配置,配置选取8bits或者16bits。
步骤503:利用内部SN对SDU进行安全性操作。
该内部SN是组成COUNT(计数)值的重要部分,COUNT值为用于安全性操作的重要输入,一般取32bits,内部SN为COUNT值的后若干位比特值,除去内部SN之后的COUNT值的其它部分为HFN(Hyper Frame Number,超帧号),例如内部SN为8bits,则COUNT值的前24位为HFN,后8位为SN,SN和HFN共同组成COUNT,作为安全操作的输入,COUNT值的结构参见图6所示。
安全性操作包括加密和完整性保护。如果协议实体启动了完整性保护,则针对SDU或者SDU加Inner(内部)SN部分,将对应的COUNT值,DIRECTION(方向信息),BEARER(承载),KEY(密钥)等作为输入参数,进行完整性保护操作(具体参见TS36.323协议),形成MAC-I(Message Authentication Codefor Integrity,用于完整性保护的消息验证码)。如果协议实体启动了加密,则针对SDU或者SDU加MAC-I,将对应的COUNT值,DIRECTION,BEARER,KEY等作为输入参数,进行加密操作(具体参见TS36.323协议)。
步骤504:将安全性操作后的SDU放入发送缓存。
步骤505:接收MAC层的传输机会指示。
步骤506:根据MAC层指示的传输资源的大小,对发送缓存中的SDU进行分段和级联操作,并获得PDU。此时发送缓存中的SDU是经过安全性操作后的SDU。
步骤507:为PDU分配外部SN,并增加头部。外部SN的初值为0,每发送一个PDU则该值加1。
步骤508:将带有头部的PDU发往MAC层进行发送。
在步骤506和507中,分段、级联和增加头部的过程可以参见TS36.322协议中UM模式的处理,其中会分配外部SN,该SN对应于UM RLC中的SN,可以固定为7bit,也可以采取7bit和10bit甚至13比特由高层配置的形式。参见图7所示的分段和级联的示意图,上排数据的每一个数据包n,n+1等均为原有SDU进行了安全性操作之后的数据包,在组包时直接对这些数据进行分段和级联。在PDU中,仅有一个数据或者数据分段的Inner SN携带在PDU头部中,例如只有第一个块数据(图7中的n)的Inner SN被携带,后续连续的数据(n+1,n+2等)可以采取依次加1的方式从第一块的Inner SN中计算出各自的Inner SN,这样可以进一步节省头部开销。
头部包括FI(分段指示信息)、E(扩展信息)、外部SN、至少一个内部SN和长度指示信息等。其中长度指示信息为可选项。如果PDU中的数据来自一个SDU,则可以不携带长度指示信息。针对PDU中的最后一个分段也可以不携带长度指示信息。
参见图8,本实施例中分配内部SN和外部SN时接收数据的方法流程如下:
高层(如RRC层)根据预设策略预先对新协议子层进行建立和配置。
步骤801:获得来自MAC层的PDU。
步骤802:根据外部SN进行SN判断和重排序操作。可参见协议TS36.322中RLC UM接收实体处理流程。
步骤803:当PDU满足重组数据包的条件后,对PDU内部的数据包进行重组操作。重组后获得图7中n,n+1所示的内部处理数据包。
步骤804:对内部处理数据包进行解安全操作,并获得SDU。如果配置规定启动加密操作,则此时进行解密操作;如果配置规定启动完整性保护操作,则此时进行完整性验证操作。其中COUNT值的SN部分来自数据包对应的Inner SN,其中每个包的Inner SN根据携带在PDU中的Inner SN以及排序关系计算得到,HFN为接收端自行维护(HFN的初值可以为0,当判断接收数据出现Inner SN翻转时,HFN加1)。当出现完整性验证失败时,向高层(例如RRC)进行指示。
步骤805:按照当前SN增序的顺序将SDU发往高层。
参见图9,本实施例中分配内部SN时发送数据的方法流程如下:
高层(如RRC层)根据预设策略预先对新协议子层进行建立和配置。
步骤901:获得来自高层的数据包,并将该数据包作为SDU。
步骤902:对SDU分配内部的SN。
步骤903:利用内部SN对SDU进行安全性操作。
步骤904:将安全性操作后的SDU放入发送缓存。
步骤905:接收MAC层的传输机会指示。
步骤906:根据MAC层指示的传输资源的大小,对发送缓存中的SDU进行分段和级联操作,并获得PDU。
步骤907:为PDU增加头部。头部包括FI(分段指示信息)、E(扩展信息)、至少一个内部SN和长度指示信息。
步骤908:将带有头部的PDU发往MAC层进行发送。带有头部的PDU的结构参见图10所示。
参见图11,本实施例中分配内部SN时接收数据的方法流程如下:
高层(如RRC层)根据预设策略预先对新协议子层进行建立和配置。
步骤1101:获得来自MAC层的PDU。
步骤1102:根据PDU中每个分段对应的内部SN进行SN判断和重排序操作。可参见协议TS36.322中RLC UM接收实体处理流程。如果头部携带了每个分段对应的内部SN,则直接根据该内部SN进行SN判断和重排序操作。如果头部携带了第一分段(或称数据块或数据包)的内部SN,则根据该内部SN计算其它分段对应的内部SN。例如,头部中携带的Inner SN为0,则PDU中第一个数据块的Inner SN为0,第二个数据块的Inner SN为1,依次类推。
具体的SN判断和重排序过程如:接收到的第一个PDU中计算其Inner SN分别为0、1、2,接收到的第二个PDU中计算其Inner SN为2、3、4、5,则认为0-4号数据包按序接收,5号数据包需根据其分段是否完整来进一步判断。又如:接收到的第一个PDU中计算其Inner SN分别为0、1、2,接收到的第二个PDU中计算其Inner SN为5、6、7,则认为2-5号数据包中间存在接收空隙,需要启动重排序定时器等待HARQ重传,当接收空隙正确接收之后,按照顺序对数据包进行后续处理,当重排序定时器超时之后,则放弃等待,对0、1、2和5、6、7进行后续处理。
步骤1103:当PDU满足重组数据包的条件后,对PDU内部的数据包进行重组操作。
步骤1104:对内部处理数据包进行解安全操作,并获得SDU。如果配置规定启动加密操作,则此时进行解密操作;如果配置规定启动完整性保护操作,则此时进行完整性验证操作。其中COUNT值的SN部分来自数据包对应的Inner SN,其中每个包的Inner SN根据携带在PDU中的Inner SN以及排序关系计算得到,HFN为接收端自行维护(HFN的初值可以为0,当判断接收数据出现Inner SN翻转时,HFN加1)。当出现完整性验证失败时,向高层(例如RRC)进行指示。
步骤1105:按照当前SN增序的顺序将SDU发往高层。
参见图12,本实施例中先对SDU进行级联时发送数据的方法流程如下:
高层(如RRC层)根据预设策略预先对新协议子层进行建立和配置。
步骤1201:获得来自高层的数据包,并将该数据包作为SDU。
步骤1202:对SDU进行级联操作。此步骤有多种实现方式,如对满足预设长度的SDU进行级联操作,并记录参与级联的SDU的个数;然后对级联后的SDU和未参加级联的SDU(即不满足预设长度的SDU)进行后续操作。由于目前IP包大小的上限为1500字节,则该预设长度可以是1500字节。该预设长度可以固定不变,或者由高层根据传输层的特性进行配置。参与级联的SDU的个数上限或总字节上限可以预先规定或由高层配置。或者,对SDU进行级联操作,并记录参与级联的每个SDU的长度指示信息。记录的个数和长度指示信息可以携带在SDU的内部头(CI)中。
步骤1203:对SDU分配内部的SN。由于多个SDU级联在一起,所以级联在一起的SUD对应一个内部SN,则可减少分配内部SN的数量和长度,进而节省网络资源。
步骤1204:利用内部SN对级联后的SDU进行安全性操作。
步骤1205:将安全性操作后的SDU放入发送缓存。
步骤1206:接收MAC层的传输机会指示。
步骤1207:根据MAC层指示的传输资源的大小,对发送缓存中的SDU进行分段和级联操作,并获得PDU。此时发送缓存中的SDU是经过级联和安全性操作之后的SDU。
步骤1208:为PDU分配外部SN,并增加头部。头部包括FI(分段指示信息)、E(扩展信息)、外部(outer)SN、至少一个内部SN和长度指示信息。
步骤1209:将带有头部的PDU发往MAC层进行发送。从SDU到级联后的SDU再到带有头部的PDU的结构参见图13所示。
参见图14,本实施例中对SDU进行解级联时接收数据的方法流程如下:
高层(如RRC层)根据预设策略预先对新协议子层进行建立和配置。
步骤1401:获得来自MAC层的PDU。
步骤1402:根据外部SN进行SN判断和重排序操作。可参见协议TS36.322中RLC UM接收实体处理流程。
步骤1403:当PDU满足重组数据包的条件后,对PDU内部的数据包进行重组操作。
步骤1404:对重组后的内部处理数据包进行解安全操作。
步骤1405:对解安全操作后获得的数据包进行解级联操作,并获得SDU。例如,规定级联只允许对1500字节的数据包进行,则根据总的数据包长度,可以判断出共级联了多少个数据包,每1500字节为一个SDU,最后一个级联的SDU可以允许其长度任意;或者如果级联信息在内部头中携带,则按照数据包大小和个数等信息,解出每个SDU。
步骤1406:按照当前SN增序的顺序将SDU发往高层。
参见图15,本实施例中分配外部SN时发送数据的方法流程如下:
高层(如RRC层)根据预设策略预先对新协议子层进行建立和配置。
步骤1501:获得来自高层的数据包,并将该数据包作为SDU。
步骤1502:将SDU放入发送缓存。
步骤1503:接收MAC层的传输机会指示。
步骤1504:根据MAC层指示的传输资源的大小,对发送缓存中的SDU进行分段和级联操作,并获得PDU。
步骤1505:为PDU分配外部SN和增加头部。头部包括FI(分段指示信息)、E(扩展信息)、外部SN和长度指示信息。
步骤1506:利用外部SN对PDU或带有头部的PDU进行安全性操作。如果协议实体启动了完整性保护,则针对PDU数据部分或者PDU数据加头部部分,将对应的COUNT值,DIRECTION,BEARER,KEY等作为输入参数,进行完整性保护操作(具体参见TS36.323协议),形成MAC-I。如果协议实体启动了加密,则针对PDU(可以包括头部)或者PDU加MAC-I,将对应的COUNT值,DIRECTION,BEARER,KEY等作为输入参数,进行加密操作(具体参见TS36.323协议)。
其中,COUNT值也是由两部分组成,高位为HFN,低位为PDU的外部SN。PDU的外部SN的长度可以区分不同的逻辑信道类型,分别预先规定或者由高层配置,HFN的位数为COUNT值总比特数减去SN的比特数,HFN初值为0,在每次SN翻转时加1。
步骤1507:将带有头部的PDU发往MAC层进行发送。带有头部的PDU的结构参见图16所示。
参见图17,本实施例中分配外部SN时接收数据的方法流程如下:
高层(如RRC层)根据预设策略预先对新协议子层进行建立和配置。
步骤1701:获得来自MAC层的PDU。
步骤1702:根据PDU的外部SN进行SN判断和重排序操作。可参见协议TS36.322中RLC UM接收实体处理流程。
步骤1703:对PDU进行解安全操作。其中COUNT值的SN部分来自PDU头部携带的外部SN,HFN为接收端自行维护(HFN的初值可以为0,当判断接收数据出现SN翻转时,HFN加1)。
步骤1704:当PDU满足重组数据包的条件后,对PDU内部的数据包进行重组操作,并获得SDU。
步骤1705:按照当前SN增序的顺序将SDU发往高层。
图15和图17所示的实施例中节省了内部SN,利用外部SN实现了重排序和安全性操作(或解安全性操作)。
以上描述了发送数据和接收数据的处理过程,该过程主要由通信设备中的层2装置实现,尤其是由层2中的新协议子层装置实现,下面对新协议子层装置的内部结构进行介绍。
参见图18,本实施例中用于发送数据的子层装置包括:第一接口模块1801、处理模块1802和第二接口模块1803。
第一接口模块1801用于获得来自高层的数据包,并将该数据包作为业务数据单元SDU。
处理模块1802用于对SDU进行分配序列号SN操作、分段与级联操作和安全操作,并获得分组数据单元PDU。
第二接口模块1803用于将PDU发往媒体接入控制MAC层进行发送。
具体的,从接收传输机会指示的时机角度讲,处理模块1802对SDU进行分配序列号SN操作和安全操作,并将分配有SN和进行安全操作后的SDU放入发送缓存,在收到传输机会指示后,再对发送缓存中的SDU进行分段与级联操作。或者,处理模块1802将该数据包作为SDU后,将SDU放入发送缓存,收到传输机会指示后,对SDU进行分配序列号SN操作、分段与级联操作和安全操作。
从分配SN的角度讲,处理模块1802对SDU进行分配内部SN的操作,对分配后的SDU进行安全性操作,再对经过安全性操作的SDU进行分段与级联操作,以及对级联后的PDU分配外部SN;或者,处理模块1802对SDU进行分配内部SN的操作,对分配后的SDU进行安全性操作,再对经过安全性操作的SDU进行分段与级联操作,并获得PDU;或者,处理模块1802对SDU进行级联操作,并分配内部SN,对分配后的SDU进行安全性操作,再对经过安全性操作的SDU进行分段与级联操作,以及对级联后的PDU分配外部SN;或者,处理模块1802对SDU进行分段与级联操作,以及对级联后的PDU分配外部SN,并对PDU进行安全性操作。
在分配内部SN时,处理模块1802按照预先规定的比特长度为对应不同类型逻辑信道的SDU分配相同比特长度的内部SN;或者,处理模块1802按照预先规定的比特长度为对应用于承载信令的信令资源块SRB的逻辑信道的SDU分配相同比特长度的内部SN,按照预先规定的比特长度为对应用于承载数据的数据资源块DRB的逻辑信道的SDU分配相同比特长度的内部SN;或者,处理模块1802根据高层的配置信息对SDU进行分配内部SN。
在进行预级联操作时,处理模块1802对满足预设长度的SDU进行级联操作,并记录参与级联的SDU的个数;或者,处理模块1802对SDU进行级联操作,并记录参与级联的每个SDU的长度指示信息。
关于PDU的头部,分配的SN包括内部SN时,获得的PDU的头部包括内部SN;分配的SN包括外部SN时,获得的PDU的头部包括外部SN。
参见图19,本实施例中用于接收数据的子层装置包括:第二接口模块1901、处理模块1902和第一接口模块1903。
第二接口模块1901用于获得来自MAC层的PDU。
处理模块1902用于根据PDU中的SN进行重排序操作,获得内部处理数据包,以及对内部处理数据包进行解安全操作和重组操作,并获得SDU。
第一接口模块1903用于将SDU发往高层进行处理。
当PDU中的SN为内部SN或外部SN时,处理模块1902根据PDU中的内部SN或外部SN进行重排序操作,以及通过内部SN或外部SN对内部处理数据包进行解安全操作。当PDU中的SN包括内部SN和外部SN时,处理模块1902根据PDU中的外部SN进行重排序操作,以及通过内部SN对内部处理数据包进行解安全操作。
处理模块1902对内部处理数据包进行解安全操作、重组操作和解级联操作,并获得SDU。
用于发送数据的子层装置和用于接收数据的子层装置可以是同一装置,只是在发送数据和接收数据过程中发挥着不同的功能。即,第二接口模块1901与第二接口模块1803是同一模块,处理模块1902与处理模块1802是同一模块,第一接口模块1903与第一接口模块1801是同一模块。
本实施例还提供包括新协议子层装置的层2装置的结构和功能,参见图20和图21。层2装置包括新协议子层部分和MAC层部分。新协议子层部分中的处理模块用于进行分段级联(或重组)和安全性操作(或解安全性操作)等。
本发明实施例对现有技术中的RLC层和PDCP层进行改进,对SDU进行分配序列号(SN)操作、分段与级联操作和安全操作,不进行ARQ和ROHO等操作,在满足安全性要求的情况下实现了数据传输,并简化了数据处理流程,提高了传输效率。
本领域内的技术人员应明白,本发明的实施例可提供为方法、***、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。