具体实施方式
本发明实施例对层2进行改进,打破层2原有结构和功能,读取来自高层的数据包的传输属性,并将具有相同传输属性的SDU集中缓存和处理,以细分数据流,并减少逻辑信道。
参见图3,本实施例中发送数据的主要方法流程如下:
步骤301:获得来自高层的数据包,并将该数据包作为业务数据单元(SDU)。本实施例中的高层指层2以上的各层,如应用层和RRC(无线资源控制)层等。
步骤302:读取SDU中的传输属性,并将具有相同传输属性的SDU集中缓存。本实施例中传输属性至少包括数据类型、承载类型和QoS(质量和服务)等级中的一项或多项。
步骤303:在获得传输机会指示时,对缓存的SDU进行成包操作,获得PDU。例如,在缓存和成包过程中,先对承载1(一种承载类型)且QoS1(一种QoS等级)的SDU进行成包操作,再对承载1且QoS2的SDU进行成包操作,直至承载1下所有SDU完成成包操作后,对承载2且QoS1的SDU进行成包操作,以此类推。
步骤304:将获得的PDU发往物理层进行发送。
本实施例中按照传输属性集中处理SDU,也为资源的分配和传输带来便利。例如,为承载1分配500字节,为承载2分配1000字节,则可从缓存中连续读取500字节的为承载1的SDU,以及连续读取1000字节的为承载2的SDU,实现了在一个逻辑信道中的多数据流处理操作。
与发送数据过程相对的,参见图4所示,接收数据的主要方法流程如下:
步骤401:获得来自物理层的PDU。
步骤402:对获得的PDU进行解包操作,获得SDU。
步骤403:将获得的SDU发往高层。
成包操作和解包操作均包括多个环节,本实施例还对部分环节进行了优化,下面通过几个实施例来详细介绍实现过程。
参见图5,本实施例中发送PDU数据的方法流程如下:
由高层(例如RRC)按照需求对新协议子层进行建立和配置。
步骤501:获得来自高层的数据包,并将该数据包作为SDU。
步骤502:将具有相同的承载或QoS的SDU按照接收顺序集中存储在缓存中。例如,区分同一个DRB承载的不同QoS等级,分别将SDU按照接收顺序存储在缓存中。
步骤503:获得针对UE的调度时,按照承载或者QoS对缓存的数据进行传输资源分配。当本TTI(传输时间间隔)分配给UE的传输资源大小为1000字节时,针对该UE的缓存中目前有高优先级的SRB(信令无线承载)数据200字节,和低优先级的DRB数据3000字节,则先分配给SRB 200字节,剩余字节数在考虑头部大小开销之后,分配给低优先级的DRB(数据无线承载)数据。
步骤504:针对获得的资源大小,对获得调度的数据进行分段和级联操作,以组成适合该资源大小的数据块。
步骤505:对不同承载或者QoS的数据块进行合并,获得PDU的数据部分。
步骤506:按照组包的过程形成PDU的头部结构。其中头部信息包含承载信息、分段级联信息、SN(序列号)信息和控制信息等。此处的控制信息主要是原MAC层的控制信息。本实施例中针对合并后的PDU的数据部分分配SN,其中SN,为针对每个PDU分配,该SN既可以用于重排序,又可以用于安全性操作,相对于针对SDU分配SN的方案,明显减少了SN的数量和长度。即SN是组成COUNT(计数)值的重要部分,COUNT值为用于安全性操作的重要输入,一般取32bit,SN为COUNT值的后若干位比特值,除去SN之后的COUNT值的其它部分为HFN(超帧号)。例如SN为8bits,则COUNT值的前24位为HFN,后8位为SN,SN和HFN共同组成COUNT,作为安全操作的输入。HFN和SN的初值都可以从0开始,依次递增1,即每发一个新数据包SN增加1,当SN累计到将翻转时,HFN增加1。SN为通过空口数据包携带,而HFN为发送端和接收端自行各自维护。COUNT的结构参见图6所示。
如果高层进行了安全配置并启动安全性操作,则继续步骤507,否则继续步骤508。
步骤507:至少对PDU的数据部分进行安全性操作。如果只有用户面数据,则此步骤中可以只进行加密操作,而无需完整性保护操作。
步骤508:将完成安全操作之后的PDU放入HARQ进程进行传输。
在步骤506中,PDU的结构参见图7所示。SN为PDU对应的序列号,可以设置为8比特,10比特或者其它值,也可以由高层配置。LCID为承载对应的标识,例如控制面信令对应一个LCID值,用户面数据1对应另一个LCID值,MAC层的控制信令也可以对应一些LCID值。也就是说,通过LCID的不同取值来区别标识控制面信令(或称控制面数据)、用户面数据和控制信令。LCID还可以用于标识不同传输属性的数据流。如LCID为1表示控制面信令,LCID为2表示用户面数据,LCID为3-6中任一整数表示不同的控制信令。SI为分段指示信息,指明每个承载的数据部分的第一个数据块和最后一个数据块是完整SDU还是分段,供组包时使用。LI为长度指示域,分别按顺序指示对应承载的数据部分每个数据块的长度,单位为字节。其中整个PDU头部和后续每个数据块分别满足整字节的要求,即长度需为8bit的整数倍。在每个子头部分,还需要有一些扩展域E,用以指示后续跟着的是头部结构还是数据。
在PDU头部结构中可以携带传输属性信息,以利于接收端对相同传输属性的数据包进行正确的重组操作。例如以LCID的不同取值来指示不同的传输属性或者使用专门的域来区分传输属性。在PDU头部结构中也可以不携带传输属性信息,在此种情况下,发送端需要确保在容纳高优先级的SDU时,低优先级的SDU不存在分段未发完的数据块。举例说明,低优先级数据在前一个TTI发包时,留下了一个SDU的剩余200字节没有发出,则当下一个TTI的发包机会到达时,即使有更高优先级的数据,发送端也需要先将之前剩余的200字节的低优先级分段先置于PDU中,再容纳高优先级的数据。这样对于接收端可以避免重组错误。
在步骤507中,安全性操作包括加密和完整性操作。如果协议实体启动了完整性保护,则针对PDU数据部分或者针对PDU数据部分和头部部分,将对应的COUNT值,DIRECTION(方向指示),BEARER(承载),KEY(密钥)等作为输入参数,进行完整性保护操作(具体参见TS36.323协议),形成MAC-I(Message Authentication Code for Integrity,用于完整性保护的消息验证码)。现有技术中完整性保护功能只针对控制面数据(如RRC信令),当RRC信令单独发送时,使用完整性保护功能;本实施例为了提高用户面数据的安全性,当存在控制面数据时,如RRC信令和用户面数据复用时,对控制面数据和用户面数据进行完整性保护操作。如果协议实体启动了加密,则针对PDU数据部分或者针对PDU数据部分和MAC-I,将对应COUNT值,DIRECTION,BEARER,KEY等作为输入参数,进行加密操作(具体参见TS36.323协议)。
为了提高数据安全性,并且为了有助于细分数据流,本实施例中BEARER的值随着数据量的增加而发生变化。关于BEARER的具体操作如下:UE和网络侧各自维护BEARER;BEARER的初值为特定值,该特定值可以为协议规定的指定值,或为高层配置的配置值。当COUNT值发生翻转时,BEARER加1。BEARER的上限可以由网络侧配置给UE。针对设备内部,当BEARER和COUNT值即将达到上限时,可以向高层上报。针对UE,当BEARER和COUNT值即将达到上限时,UE可以向网络侧上报,采取必要措施更新安全参数。
参见图8,本实施例中接收PDU数据的方法流程如下:
由高层(例如RRC)按照需求对新协议子层进行建立和配置。
步骤801:获得来自物理层的PDU。
步骤802:根据PDU中的SN进行SN判断和重排序,获得内部处理数据包。此时主要为了实现HARQ(混合自动重传请求)的各项功能,因此可以对重排序功能做进一步的优化,例如,当出现接收序列空隙时,等待一定的HARQ重传时长,如果在该时间段内,所有的HARQ进程都接收到了新数据,则认为该空隙处的数据包传输失败,直接放弃等待,将除空隙之外的已接收到的数据按序对数据包进行后续处理。
如果发送数据时进行了安全性操作,则继续步骤803,否则继续步骤804。
步骤803:当PDU满足重组数据包的条件后,对内部处理数据包进行解安全操作。具体的,根据加密和完整性保护等的配置、是否启动和数据类型,判断数据的安全类型。例如,当接收端从PDU头部读到信令数据对应的LCID,存在取值为1的LCID,表明包中有控制面数据,则证明该包进行了完整性保护,否则,可以认为是用户数据且仅进行了加密。根据安全类型,依次对数据包进行解密和完整性验证的操作。其中COUNT值的SN部分来自数据包PDU携带的SN,HFN为接收端自行维护(HFN的初值可以为0,当判断接收数据出现SN翻转时,HFN加1)。
当出现完整性验证失败时,向高层(例如RRC)进行指示。
步骤804:去除解安全性操作后的内部处理数据包中的SN。
步骤805:按照头结构中指示的各LCID的分段级联情况,对去除SN后的数据包进行重组,获得SDU。
步骤806:将SDU按照SN增序的顺序,向高层递交。对于信令数据,向RRC层递交,对于用户数据,向相对应的应用层递交。当PDU中携带了传输属性信息,则按照不同的传输属性信息,将不同的数据流按照要求向高层递交,例如,不同的数据类型可能递交到不同的高层实体,IP控制包和IP数据包递交到不同实体。或者读取SDU头部的属性信息,来决定如何向高层递交。
在实际应用中传输的不仅是SDU,还需要传输CCCH(公共控制信道)数据,因此需要在PDU的头部信息中区分后面携带的数据是CCCH数据还是SDU数据。区分CCCH数据的方式有多种,如在头部中增加C/N域(指示域),以专门用于区分CCCH数据,可用1比特显示是否为CCCH数据,参见图9所示。例如C/N域的值为1表示后面携带的是CCCH数据,为0表示携带的是SDU数据。或者,通过LCID的不同取值来区分是否是CCCH数据,参见图10所示。例如,在LTE-LAN(长期演进局域网)系统中,考虑承载比较简单,一般只有一条CCCH,一条DCCH(专用控制信道),一条DTCH(数据业务信道),因此对于LCID的码点可以采取事先规定的方式,如0代表CCCH,1代表DCCH,2-5预留给DTCH,因为只有一个DRB承载,因此2-5意味着在一个DRB承载中可以区分4种不同的QoS等级。其他的LCID码点可以留给控制信令。图10中的R为保留域,E为扩展域,用于指明后一个字节跟着的是头部结构还是数据部分。
参见图11,本实施例中发送CCCH数据的方法流程如下:
CCCH为公共控制信道,不需要网络侧配置,与配置相关的内容由标准规定或者通过小区广播发送。
步骤1101:获得来自高层的数据包。
步骤1102:读取数据包中的区别标识。区别标识为LCID或C/N域。如果通过区别标识判断出携带的是CCCH数据,则继续步骤1103,如果判断出携带的是非CCCH数据,则参见步骤502-508。
步骤1103:将CCCH数据放入专用缓存。也就是说用一独立存储空间存储CCCH数据。如果是通过C/N域进行指示,则在读取过程中跳过SN域,直接读取后面的信息。
步骤1104:发起传输请求或者等待调度。
步骤1105:获得调度资源后,对CCCH数据进行组包。具体的,增加1字节头部,用以指示这是CCCH数据,将头部加数据部分形成PDU。
步骤1106:将PDU按照调度进行发送。例如,如果是上行,按照随机接入过程中Msg3(消息3)的传输规则发送;如果是下行,按照下行调度进行发送。
参见图12,本实施例中接收CCCH数据的方法流程如下:
CCCH为公共控制信道,不需要网络侧配置,与配置相关的内容由标准规定或者通过小区广播发送。
步骤1201:从底层(例如物理层)接收数据。
步骤1202:读取区别标识。得知是CCCH数据,则继续步骤1203,如果获知是非CCCH数据,如控制面数据、用户面数据或控制信令,则参见步骤802-806。
步骤1203:去掉头部结构。
步骤1204:直接将剩余的数据部分发送至高层。该高层一般是RRC层。
以上描述了发送和接收数据的实现过程,该过程可由装置实现,特别本实施例改进的新协议层装置实现,下面对该装置的内部结构和功能进行介绍。
参见图13,本实施例中用于发送数据的装置1300包括:第一接口模块1301、缓存模块1302、处理模块1303和第二接口模块1304。
第一接口模块1301用于获得来自高层的数据包,并将该数据包作为业务数据单元SDU。
缓存模块1302用于读取SDU中的传输属性,并将具有相同传输属性的SDU集中缓存。传输属性包括数据类型、承载类型和QoS等级中的一项或多项。
处理模块1303用于在获得传输机会指示时,对缓存的SDU进行成包操作,获得PDU。具体的,处理模块1303将缓存中具有相同传输属性的SDU进行分段和级联,将级联后具体不同传输属性的SDU进行合并,获得PDU的数据部分,为PDU的数据部分分配序列号SN,并获得PDU的头部。PDU的头部包括:SN、承载对应的标识LCID、分段指示信息SI和长度指示域LI。PDU的头部还包括:用于区分是否是CCCH数据的C/N域。或者,LCID的不同取值用于区分是否是CCCH数据。LCID用于标识控制面数据、用户面数据和控制信令。LCID还用于标识不同传输属性的数据流。处理模块1303还用于至少对PDU的数据部分进行安全性操作。特别的,处理模块1303对PDU的数据部分或对对PDU的数据部分和MAC-I进行加密操作,以及当PDU的数据部分包括控制面数据时,至少对PDU的数据部分进行完整性操作。加密操作的输入参数中的承载BEARER的值随着数据量的增加而发生变化。BEARER的初值为特定值,当加密操作的输入参数中的计数COUNT值发生翻转时,处理模块将BEARER的值加1。
第二接口模块1304用于将获得的PDU发往物理层进行发送。
装置1300的结构还可以参见图14所示,处理模块1303用于实现优先级处理、分段与级联、复用、安全性操作和HARQ。
参见图15,本实施例中用于接收数据的装置1500包括:第二接口模块1501、处理模块1502和第一接口模块1503。
第二接口模块1501用于获得来自物理层的PDU。
处理模块1502用于对获得的PDU进行解包操作,获得SDU。具体的,处理模块1502根据PDU中的SN进行SN判断和重排序,获得内部处理数据包,去除内部处理数据包中的SN,对去除SN后的数据包进行重组,获得SDU。PDU的头部包括:SN、承载对应的标识LCID、分段指示信息SI和长度指示域LI。PDU的头部还包括:用于区分是否是CCCH数据的C/N域。或者,LCID的不同取值用于区分是否是CCCH数据。LCID用于标识不同传输属性的数据流。LCID的不同取值还用于标识控制面数据、用户面数据和控制信令。处理模块1502还用于对内部处理数据包进行解安全性操作。较佳的,处理模块1502确定LCID的值标识控制面数据时,对PDU的数据部分进行完整性验证。
第一接口模块1503用于将获得的SDU发往高层。较佳的,第一接口模块1503按照SN增序的顺序将获得的SDU发往高层。
装置1500的结构还可以参见图16所示,处理模块1502用于实现优先级处理、分段与级联(重组)、复用(解复用)、安全性操作(解安全性操作)和HARQ。
本实施例中装置1300和装置1500可以是同一装置,即新协议层装置,只是该装置在不同的场景发挥不同的作用。其中,第二接口模块1501与第二接口模块1304是同一模块,处理模块1502与处理模块1303是同一模块,第一接口模块1503与第一接口模块1301是同一模块,装置1500也可以包括缓存模块1302。
本发明实施例对层2进行改进,打破层2原有结构和功能,读取来自高层的数据包的传输属性,并将具有相同传输属性的SDU集中缓存和处理,以细分数据流,并减少逻辑信道。为了提高安全性,本发明实施例在传输控制面数据时,对控制面数据和用户面数据整体进行完整性保护操作,以及在加密时使BEARER的值随着数据量的增加而变化。并且,本发明实施例通过为PDU分配的SN实现了重排序和加密输入参数的双重功能,减少了SN的数量和长度。另外,本发明实施例还提供了区分CCCH数据的区别标识,使得可以通过一条传输信道来传输CCCH数据或SDU。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。