具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
参见图1,图1是本发明实施例应用的网络结构示意图;如图1所示,包括网络侧设备11和终端12。其中,网络侧设备11可以是演进型基站(eNB,evolved Node B)或者其他基站,需要说明的是,在本发明实施例中并不限定网络侧设备11的具体类型。网络侧设备11可以与终端12建立通信,其中,附图中的网络可以表示网络侧设备11可以与终端12无线建立通信,终端12可以是手机、平板电脑(Tablet Personal Computer)、膝上型电脑(LaptopComputer)、个人数字助理(personal digital assistant,简称PDA)、移动上网装置(Mobile Internet Device,MID)或可穿戴式设备(Wearable Device)等终端设备,需要说明的是,在本发明实施例中并不限定终端12的具体类型。其中,本发明提供的协议数据单元传输数据的方法可以应用在网络侧设备11和终端12中,进行数据传输,在数据传输的过程中,网络侧设备11可以作为发送端或者接收端使用,终端12对应的也可以作为接收端和发送端使用。
参见图2,图2是本发明实施例提供的一种协议数据单元传输数据的方法的流程图,如图2所示,包括以下步骤:
步骤201,接收分组数据汇聚层协议PDCP实体发送的初始数据包。
本发明实施例提供的协议数据单元传输数据的方法可以应用于任何具有两层传输处理的架构中,以下各实施例中,以RLC的非确认模式UM进行详细说明。具体的,本实施例提供的协议数据单元传输数据的方法主要应用在数据传输的发送端,即RLC UM发送端,用于对发送的数据包进行组织管理。
其中,上述PDCP实体为RLC UM发送端的高层,RLC UM发送端可以接收PDCP实体发送的初始数据包。
步骤202,将所述初始数据包封装成完整无线链路控制层协议数据单元RLC PDU数据包,或者至少两个分段RLC PDU数据包;
其中,所述完整RLC PDU数据包和每一所述分段RLC PDU数据包中均携带有分段情况指示SI(Segment Indicator),若将所述初始数据包封装成完整RLC PDU数据包,则不对所述RLC PDU数据包分配序列号SN。
该步骤中,RLC UM发送端在接收到PDCP实体发送的初始数据包PDCP PDU后,将会进行RLC UM PDU的组织,即将PDCP PDU封装成RLC UM PDU。本实施例中,PDCP PDU和RLC UMPDU之间是一对一映射关系,即一个PDCP PDU经过增加头部的处理形成一个RLC UM PDU。当底层传输资源足够的情况下,一个或者若干个完整RLC UM PDU可以直接发送出去,但当底层传输资源不足以容纳完整的RLC UM PDU时,需要根据剩余资源的大小,对RLC UM PDU进行分段处理。从而在对一个初始数据包封装时,将会生成完整RLC PDU数据包或者至少两个分段RLC PDU数据包。
本实施例中,上述初始数据包的数量在此不做进一步的限定,可以根据每一初始数据包的大小与底层传输资源的大小确定封装成一个完整RLC PDU数据包还是至少两个分段RLC PDU数据包。其中,若将初始数据包封装成一个完整RLC PDU数据包时,将不会对完整RLC PDU数据包分配SN,该SN为RLC UM发送端对初始数据包封装时加载在头部的数据,用于在接收端进行排序使用,由于在完整RLC PDU数据包中未分配SN,从而在接收端无需进行排序。
本发明实施例中,通过接收分组数据汇聚层协议PDCP实体发送的初始数据包;将所述初始数据包封装成完整无线链路控制层协议数据单元RLC PDU数据包,或者至少两个分段RLC PDU数据包;其中,所述完整RLC PDU数据包和每一所述分段RLC PDU数据包中均携带有分段情况指示,若将所述初始数据包封装成完整RLC PDU数据包,则不对所述RLC PDU数据包分配序列号SN。由于在完整RLC PDU数据包中未分配SN,从而在接收端无需进行排序,在接收端接收到完整RLC PDU数据包后,可以直接转发至高层,因此降低了层二数据处理流程复杂度,提高了效率。
可选的,若将所述初始数据包封装成至少两个分段RLC PDU数据包,每一所述分段RLC PDU数据包中还携带有用于标识分段RLC PDU数据包的SN,若所述SN不具有标识位置信息的功能,则每一所述分段RLC PDU数据包还携带有位置信息,所述位置信息用于标识所述分段RLC PDU数据包中初始数据包的分段数据位于所述初始数据包的位置。
其中,上述用于标识分段RLC PDU数据包的SN包括为所述分段RLC PDU数据包分配的SN,或者所述初始数据包中携带的SN。也就是说,用于标识分段RLC PDU数据包的SN可以为RLC UM发送端为每一分段RLC PDU数据包分配的SN,也可以是复用初始数据包中的SN。
可选的,若所述SN是为分段RLC PDU数据包配置的SN时,一个初始数据包对应的不同分段RLC PDU数据包的SN均相同;或者,不同的分段RLC PDU数据包的SN递增。应当说明的是,若复用初始数据包中的SN,则一个初始数据包对应的不同分段RLC PDU数据包中的SN均相同。
应理解,对于不同的SN设置方式,可以选择携带位置信息,例如,在一实施方式中,当分段RLC PDU数据包中携带的SN为具有标识位置信息功能的SN时,可以省略位置信息的配置。具体的,只有当SN配置的方式为不同的分段RLC PDU数据包的SN递增时,SN才具有标识位置信息的功能。其中,SN的递增量也可以根据实际需要进行设置,例如可以每次递增1。由于采用不同的分段RLC PDU数据包的SN递增,因此不同的分段RLC PDU数据包中的SN具有连续性,根据连续性和分段指示标识即可进行分段RLC PDU数据包的重组。在另一实施例方式中,当分段RLC PDU数据包中携带的SN为不具有标识位置信息功能的SN时,需要根据位置信息、SN和分段指示标识进行分段RLC PDU数据包的重组。
可选的,上述位置信息的内容可以根据实际需要进行设置,只要能够标识出每一分段RLC PDU数据包中的分段数据位于初始数据包中的位置即可。例如,该位置信息可以包括所述分段数据在所述初始数据包中的偏移量SO(Segment offset)和所述分段数据的长度LI(Length Indicator);或者,所述位置信息包括所述分段数据中首个字节的偏移量和末个字节的偏移量。
进一步的,上述分段情况指示的指示方式可以根据实际需要进行设置,例如,在一实施例中,上述分段情况指示可以包括位于RLC PDU数据包头部的2bit,用于指示所述RLCPDU数据包的分段情况,所述分段情况包括:完整数据包、第一个分段、中间分段和最后一个分段。
在本实施例中,2bit标识的具体含义可以根据实际需要进行,例如,在可以采用00表示一个完整数据包、采用01表示第一个分段、采用10表示中间分段以及采用11表示最后一个分段。此外还可以采用其他的表示方式,例如,采用10表示最后一个分段,采用11标识中间分段等等,在此不再一一列举。
在另一实施方式中,分段情况指示可以包括位于RLC PDU数据包头部的2bit,其中1bit用于指示RLC PDU数据包是否为分段RLC PDU数据包,1bit用于指示RLC PDU数据包是否为最后一个分段或者第一个分段。
本实施例中,可以在1bit中用1表示分段RLC PDU数据包,用0表示完整RLC PDU数据包。然后在另1bit中可以用0表示最后一个分段,用1表示并非最后一个分段,也可以用0表示第一个分段,用1表示并非第一个分段。此外还可以采用其他的表示方式,在此不再一一列举。
以下将以一个具体实例初始数据包、完整RLC PDU数据包和分段RLC PDU数据包之间的关系进行详细说明。
例如,初始数据包的大小为500字节,则组成RLC PDU数据部分也为500字节,当可以把500字节大小数据和头部一次性发送时,可以在头部以00指示这是一个完整RLC PDU数据包。当只能容纳200字节时,需要对初始数据包进行分段处理。将初始数据包中的[0,200]字节的数据作为第一分段的分段RLC PDU数据包中的分段数据,并在该第一分段的分段RLCPDU数据包的头部指示SI为01,且不需要SO域(由于首个默认开始字节为0),LI域为200;将[200,400]字节的数据作为中间分段的分段RLC PDU数据包中的分段数据,并在该中间分段的分段RLC PDU数据包的头部指示SI为10,SO域为200,LI域为200;将[400,500]字节的数据作为最后一个分段的分段RLC PDU数据包中的分段数据,并在该最后一个分段的分段RLCPDU数据包的头部指示SI为11,SO域为400,LI域为100。
基于图1所示的网络结构,本发明实施例提供了另一种协议数据单元传输数据的方法,参照图3,基于上述实施例,本实施例提供的协议数据单元传输数据的方法应用于数据传输的接收端,用于对上述实施例中发送的RLC PDU数据包进行接收。具体的,如图3所示,本实施例提供的协议数据单元传输数据的方法,包括:
步骤301,接收协议数据单元RLC PDU数据包,所述RLC PDU数据包携带有分段情况指示;
步骤302,根据所述分段情况指示确定,所述RLC PDU数据包为分段RLC PDU数据包还是完整RLC PDU数据包;
步骤303,若为完整RLC PDU数据包,向分组数据汇聚层协议PDCP实体发送所述完整RLC PDU数据包;
步骤304,若为分段RLC PDU数据包,对分段RLC PDU数据包进行重组,并向所述PDCP实体发送重组后的数据包。
本实施例中,对于接收端而言,每接收到一个RLC PDU数据包,将会根据RLC PDU数据包头部的SI域先判断当前接收到的RLC PDU数据包是分段RLC PDU数据包还是分段RLCPDU数据包。若为完整RLC PDU数据包,则直接递交给高层(PDCP实体);若为分段RLC PDU数据包,则将会进行分段RLC PDU数据包的重组。
本发明实施例中,由于在完整RLC PDU数据包中未分配SN,从而在接收端无需进行排序,在接收端接收到完整RLC PDU数据包后,可以直接转发至高层,因此降低了层二数据处理流程复杂度,提高了效率。
可选的,若所述RLC PDU数据包为分段RLC PDU数据包时,所述分段RLC PDU数据包中还携带有用于标识分段RLC PDU数据包的SN,若所述SN不具有标识位置信息的功能,所述分段RLC PDU数据包还携带有位置信息,所述位置信息用于标识所述分段RLC PDU数据包中初始数据包的分段数据位于所述初始数据包的位置;
所述对分段RLC PDU数据包进行重组包括:
根据所述SN和所述分段情况指示对分段RLC PDU数据包进行重组,或者根据所述SN、分段情况指示和位置信息对分段RLC PDU数据包进行重组。
应理解,针对不同的SN配置方式,进行重组的方式也不同,以下对此进行详细说明。
可选的,在第一种方式中:若不同的分段RLC PDU数据包的SN递增,则所述SN具有标识位置信息的功能,根据所述SN和所述分段情况指示对分段RLC PDU数据包进行重组。
在第二种方式中:若一个初始数据包对应的不同分段RLC PDU数据包的SN均相同,则所述SN不具有标识位置信息的功能,根据所述SN、分段情况指示和位置信息对分段RLCPDU数据包进行重组。
具体的,在第一种方式中,根据所述SN和所述分段情况指示对分段RLC PDU数据包进行重组的步骤,包括:
按照所述分段RLC PDU数据包的SN顺序对所述分段RLC PDU数据包进行排列;
根据所述分段情况指示中所指示的第一个分段和/或最后一个分段,对排列的分段RLC PDU数据包进行重组。
可选的,在分段RLC PDU数据包重组的过程中,判断是否存在序列缺口gap;
若存在序列缺口,则启动第一计时器计时,并将当前接收到的最大SN记录为触发所述第一计时器启动的目标SN;
判断所述第一计时器超过第一预设计时时间前,所述目标SN之前的序列缺口是否被填满;
若所述目标SN之前的序列缺口未被填满,则删除所述目标SN之前未重组的分段RLC PDU数据包。
也就是说,在第一种方式中,进行重组时,当遇到第一个分段的指示,则开始一个新的分段RLC PDU数据包重组,当遇到最后一个分段的指示,则结束该分段RLC PDU数据包的重组。如果中间出现乱序接收(即存在gap),则启动计时器等待,并记录触发计时器的SN,计时器超时之前,记录触发计时器的SN之前的接收gap被填满,则正常组包,后续无gap则停止计时器,如有gap继续启动,并记录当前接收最高的SN为触发计时器的SN。计时器超时之后,如果仍旧有接收gap,则记录的触发计时器SN之前的gap均不等待,删除触发计时器SN之前的所有未重组成功的分段RLC PDU数据包,以清除缓存。
需要注意的是,对于连续SN的分段,具有明确的第一个分段标记和最后一个分段标记,才可以进行重组。例如接收队列中,SN=3第一分段,SN=7第一分段,SN=8中间分段,SN=9最后一个分段,SN=13最后一个分段,则对于7、8、9三个连续分段,有明确的头尾,则可以重组成功,重组成功后将重组的数据发送给高层。后续如果又接收到SN=4最后一个分段,则3、4可以重组成RLC PDU数据包递交。递交高层的数据不需要按顺序,例如不需要强制7、8、9组成的RLC PDU数据包一定在3、4组成的RLC PDU数据包后面递交高层,可以重组成功即递交。
当发生明显错误时,可以进行记录,例如SN=3为第一分段,SN=4也为第一分段,或者SN=10为最后一个分段,SN=11也是最后一个分段,可以将错误次数进行累加,如果错误次数超过一定门限,向高层或者对端上报。
在第二种方式中:根据所述SN、分段情况指示和位置信息对分段RLC PDU数据包进行重组的步骤,包括:
将相同的SN对应的RLC PDU数据包作为一组待重组数据包,根据位置信息对分段RLC PDU数据包进行重组。
例如,接收端先收到SN=0的第一个分段,SI=01(第一个分段),长度200字节,即初始数据包的[0,200]字节,接着收到SN=0的另一个分段,SI=10(中间分段),SO=200,LI=300,即初始数据包的[200,500]字节,最后接收到SN=0的另一个分段,SI=11(最后一个分段),SO=500,LI=300,即初始数据包的[500,800]字节,并且SI类型指示这是最后一个分段,于是接收端可以将上述三个分段按序串接起来形成原始800字节的完整RLC PDU数据包。
可以理解的是,在分段RLC PDU数据包重组的过程中,确定是否重组失败的方式可以根据实际需要进行设置。
例如,在一实施方式中,上述根据所述SN、分段情况指示和位置信息对分段RLCPDU数据包进行重组的步骤,还包括:
在分段RLC PDU数据包重组的过程中,根据所述位置信息判断当前接收的分段RLCPDU数据包之前是否存在未接收的目标分段RLC PDU数据包;
若所述当前接收的分段RLC PDU数据包之前存在未接收的目标分段RLC PDU数据包,则启动第二计时器;
若所述第二计时器超过第二预设计时时间,仍未接收到所述目标分段RLC PDU数据包,则删除所述目标分段RLC PDU数据包对应的一组待重组数据包。
在另一实施方式中,上述根据所述SN、分段情况指示和位置信息对分段RLC PDU数据包进行重组的步骤,还包括:
在分段RLC PDU数据包重组的过程中,当首次接收到目标初始数据包对应的任意一个分段RLC PDU数据包时,启动第三计时器;
若所述第三计时器超过第三预设计时时间,仍未接收到所述目标初始数据包对应的所有分段RLC PDU数据包,则将所述目标初始数据包对应的已接收分段RLC PDU数据包删除。
可选的,上述用于标识分段RLC PDU数据包的SN包括为所述分段RLC PDU数据包分配的SN,或者所述初始数据包中携带的SN。也就是说,用于标识分段RLC PDU数据包的SN可以为发送端为每一分段RLC PDU数据包分配的SN,也可以是复用初始数据包中的SN。
可选的,上述位置信息的内容可以根据实际需要进行设置,只要能够标识出每一分段RLC PDU数据包中的分段数据位于初始数据包中的位置即可。例如,该位置信息可以包括所述分段数据在所述初始数据包中的偏移量SO(Segment offset)和所述分段数据的长度LI(Length Indicator);或者,所述位置信息包括所述分段数据中首个字节的偏移量和末个字节的偏移量。
进一步的,上述分段情况指示的指示方式可以根据实际需要进行设置,例如,在一实施例中,上述分段情况指示可以包括位于RLC PDU数据包头部的2bit,用于指示所述RLCPDU数据包的分段情况,所述分段情况包括:完整数据包、第一个分段、中间分段和最后一个分段。
在本实施例中,2bit标识的具体含义可以根据实际需要进行,例如,在可以采用00表示一个完整数据包、采用01表示第一个分段、采用10表示中间分段以及采用11表示最后一个分段。此外还可以采用其他的表示方式,例如,采用10表示最后一个分段,采用11标识中间分段等等,在此不再一一列举。
在另一实施方式中,分段情况指示可以包括位于RLC PDU数据包头部的2bit,其中1bit用于指示RLC PDU数据包是否为分段RLC PDU数据包,1bit用于指示RLC PDU数据包是否为最后一个分段或者第一个分段。
本实施例中,可以在1bit中用1表示分段RLC PDU数据包,用0表示完整RLC PDU数据包。然后在另1bit中可以用0表示最后一个分段,用1表示并非最后一个分段,也可以用0表示第一个分段,用1表示并非第一个分段。此外还可以采用其他的表示方式,在此不再一一列举。
进一步的,需要说明的是,由于接收端不使用SN的数据包无法知道顺序,从而使得递交到PDCP实体中的RLC PDU数据包为乱序的。对于当前的设计,PDCP需要有SN用于安全等操作,因此PDCP SN(初始数据包中的SN)一般总是存在,也就是说PDCP SN是具备基于SN进行重排序的可能的。
对于PDCP重排序,其主要是在检测到乱序接收时,启动重排序定时器,并记录此时的最高接收SN为重排序SN,在定时器超时之前,如果该重排序SN之前的接收gap均已填满,则可以停止定时器,并探查后续是否还有接收gap,如果有gap,则继续启动重排序定时器,记录最高接收SN为重排序SN。如果重排序定时器超时,重排序SN之前仍有gap,则放弃gap的等待。
参照图4,图中示出了一种协议数据单元传输数据的装置,包括:
第一接收模块401,用于接收分组数据汇聚层协议PDCP实体发送的初始数据包;
第一处理模块402,用于将所述初始数据包封装成完整无线链路控制层协议数据单元RLC PDU数据包,或者至少两个分段RLC PDU数据包;
其中,所述完整RLC PDU数据包和每一所述分段RLC PDU数据包中均携带有分段情况指示,若将所述初始数据包封装成完整RLC PDU数据包,则不对所述RLC PDU数据包分配序列号SN。
可选的,若将所述初始数据包封装成至少两个分段RLC PDU数据包,每一所述分段RLC PDU数据包中还携带有用于标识分段RLC PDU数据包的SN,若所述SN不具有标识位置信息的功能,则每一所述分段RLC PDU数据包还携带有位置信息,所述位置信息用于标识所述分段RLC PDU数据包中初始数据包的分段数据位于所述初始数据包的位置。
可选的,所述SN包括为所述分段RLC PDU数据包分配的SN,或者所述初始数据包中携带的SN。
可选的,若所述SN是为分段RLC PDU数据包配置的SN时,一个初始数据包对应的不同分段RLC PDU数据包的SN均相同;或者,不同的分段RLC PDU数据包的SN递增。
可选的,所述位置信息包括所述分段数据在所述初始数据包中的偏移量和所述分段数据的长度;
或者,所述位置信息包括所述分段数据中首个字节的偏移量和末个字节的偏移量。
可选的,所述分段情况指示包括位于RLC PDU数据包头部的2bit,用于指示所述RLC PDU数据包的分段情况,所述分段情况包括:完整数据包、第一个分段、中间分段和最后一个分段。
可选的,所述分段情况指示包括位于RLC PDU数据包头部的2bit,其中1bit用于指示RLC PDU数据包是否为分段RLC PDU数据包,1bit用于指示RLC PDU数据包是否为最后一个分段或者第一个分段。
参照图5,图中示出了另一种协议数据单元传输数据的装置,包括:
第二接收模块501,用于接收协议数据单元RLC PDU数据包,所述RLC PDU数据包携带有分段情况指示;
确定模块502,用于根据所述分段情况指示确定,所述RLC PDU数据包为分段RLCPDU数据包还是完整RLC PDU数据包;
第二处理模块503,用于若为完整RLC PDU数据包,向分组数据汇聚层协议PDCP实体发送所述完整RLC PDU数据包;若为分段RLC PDU数据包,对分段RLC PDU数据包进行重组,并向所述PDCP实体发送重组后的数据包。
可选的,若所述RLC PDU数据包为分段RLC PDU数据包时,所述分段RLC PDU数据包中还携带有用于标识分段RLC PDU数据包的SN,若所述SN不具有标识位置信息的功能,所述分段RLC PDU数据包还携带有位置信息,所述位置信息用于标识所述分段RLC PDU数据包中初始数据包的分段数据位于所述初始数据包的位置;
所述第二处理模块503具体用于:根据所述SN和所述分段情况指示对分段RLC PDU数据包进行重组,或者根据所述SN、分段情况指示和位置信息对分段RLC PDU数据包进行重组。
可选的,若不同的分段RLC PDU数据包的SN递增,则所述SN具有标识位置信息的功能,根据所述SN和所述分段情况指示对分段RLC PDU数据包进行重组;
若一个初始数据包对应的不同分段RLC PDU数据包的SN均相同,则所述SN不具有标识位置信息的功能,根据所述SN、分段情况指示和位置信息对分段RLC PDU数据包进行重组。
可选的,参照图6,所述第二处理模块503包括:
排列子模块50301,用于按照所述分段RLC PDU数据包的SN顺序对所述分段RLCPDU数据包进行排列;
第一重组子模块50302,用于根据所述分段情况指示中所指示的第一个分段和/或最后一个分段,对排列的分段RLC PDU数据包进行重组。
可选的,参照图7,所述第二处理模块503还包括:
第一判断子模块50303,用于在分段RLC PDU数据包重组的过程中,判断是否存在序列缺口;
第一启动子模块50304,用于若存在序列缺口,则启动第一计时器计时,并将当前接收到的最大SN记录为触发所述第一计时器启动的目标SN;
第二判断子模块50305,用于判断所述第一计时器超过第一预设计时时间前,所述目标SN之前的序列缺口是否被填满;
第一处理子模块50306,用于若所述目标SN之前的序列缺口未被填满,则删除所述目标SN之前未重组的分段RLC PDU数据包。
可选的,参照图8,所述第二处理模块503包括:
第二重组子模块50310,用于将相同的SN对应的RLC PDU数据包作为一组待重组数据包,根据位置信息对分段RLC PDU数据包进行重组。
可选的,参照图9,所述第二处理模块503还包括:
第三判断子模块50311,用于在分段RLC PDU数据包重组的过程中,根据所述位置信息判断当前接收的分段RLC PDU数据包之前是否存在未接收的目标分段RLC PDU数据包;
第二启动子模块50312,用于若所述当前接收的分段RLC PDU数据包之前存在未接收的目标分段RLC PDU数据包,则启动第二计时器;
第二处理子模块50313,用于若所述第二计时器超过第二预设计时时间,仍未接收到所述目标分段RLC PDU数据包,则删除所述目标分段RLC PDU数据包对应的一组待重组数据包。
或者,参照图10,所述第二处理模块503还包括:
第三启动子模块50314,用于在分段RLC PDU数据包重组的过程中,当首次接收到目标初始数据包对应的任意一个分段RLC PDU数据包时,启动第三计时器;
第三处理子模块50315,用于若所述第三计时器超过第三预设计时时间,仍未接收到所述目标初始数据包对应的所有分段RLC PDU数据包,则将所述目标初始数据包对应的已接收分段RLC PDU数据包删除。
可选的,所述SN包括为所述RLC PDU数据包分配的SN,或者所述初始数据包中携带的SN。
可选的,所述位置信息包括所述分段数据在所述初始数据包中的偏移量和所述分段数据的长度;
或者,所述位置信息包括所述分段数据中首个字节的偏移量和末个字节的偏移量。
可选的,所述分段情况指示包括位于RLC PDU数据包头部的2bit,用于指示所述RLC PDU数据包的分段情况,所述分段情况包括:完整数据包、第一个分段、中间分段和最后一个分段。
可选的,所述分段情况指示包括位于RLC PDU数据包头部的2bit,其中1bit用于指示RLC PDU数据包是否为分段RLC PDU数据包,1bit用于指示RLC PDU数据包是否为最后一个分段或者第一个分段。
本发明实施例中,通过接收分组数据汇聚层协议PDCP实体发送的初始数据包;将所述初始数据包封装成完整无线链路控制层协议数据单元RLC PDU数据包,或者至少两个分段RLC PDU数据包;其中,所述完整RLC PDU数据包和每一所述分段RLC PDU数据包中均携带有分段情况指示,若将所述初始数据包封装成完整RLC PDU数据包,则不对所述RLC PDU数据包分配序列号SN。由于在完整RLC PDU数据包中未分配SN,从而在接收端无需进行排序,在接收端接收到完整RLC PDU数据包后,可以直接转发至高层,因此降低了层二数据处理流程复杂度,提高了效率。
参见图11,图中示出一种协议数据单元传输数据的装置的结构,该协议数据单元传输数据的装置包括:处理器1100、收发机1110、存储器1120、用户接口1130和总线接口,其中:
处理器1100,用于读取存储器1120中的程序,执行下列过程:
接收分组数据汇聚层协议PDCP实体发送的初始数据包;
将所述初始数据包封装成完整无线链路控制层协议数据单元RLC PDU数据包,或者至少两个分段RLC PDU数据包;
其中,所述完整RLC PDU数据包和每一所述分段RLC PDU数据包中均携带有分段情况指示,若将所述初始数据包封装成完整RLC PDU数据包,则不对所述RLC PDU数据包分配序列号SN。
其中,在图11中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1100代表的一个或多个处理器和存储器1120代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机1110可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器1100负责管理总线架构和通常的处理,存储器1120可以存储处理器1100在执行操作时所使用的数据。
处理器1100负责管理总线架构和通常的处理,存储器1120可以存储处理器1100在执行操作时所使用的数据。
可选的,若将所述初始数据包封装成至少两个分段RLC PDU数据包,每一所述分段RLC PDU数据包中还携带有用于标识分段RLC PDU数据包的SN,若所述SN不具有标识位置信息的功能,则每一所述分段RLC PDU数据包还携带有位置信息,所述位置信息用于标识所述分段RLC PDU数据包中初始数据包的分段数据位于所述初始数据包的位置。
可选的,所述SN包括为所述分段RLC PDU数据包分配的SN,或者所述初始数据包中携带的SN。
可选的,若所述SN是为分段RLC PDU数据包配置的SN时,一个初始数据包对应的不同分段RLC PDU数据包的SN均相同;或者,不同的分段RLC PDU数据包的SN递增。
可选的,所述位置信息包括所述分段数据在所述初始数据包中的偏移量和所述分段数据的长度;
或者,所述位置信息包括所述分段数据中首个字节的偏移量和末个字节的偏移量。
可选的,所述分段情况指示包括位于RLC PDU数据包头部的2bit,用于指示所述RLC PDU数据包的分段情况,所述分段情况包括:完整数据包、第一个分段、中间分段和最后一个分段;
或者,所述分段情况指示包括位于RLC PDU数据包头部的2bit,其中1bit用于指示RLC PDU数据包是否为分段RLC PDU数据包,1bit用于指示RLC PDU数据包是否为最后一个分段或者第一个分段。
本发明实施例中,由于在完整RLC PDU数据包中未分配SN,从而在接收端无需进行排序,在接收端接收到完整RLC PDU数据包后,可以直接转发至高层,因此降低了层二数据处理流程复杂度,提高了效率。
参见图12,图中示出一种协议数据单元传输数据的装置,该协议数据单元传输数据的装置包括:处理器1200、收发机1210、存储器1220、用户接口1230和总线接口,其中:
处理器1200,用于读取存储器1220中的程序,执行下列过程:
接收协议数据单元RLC PDU数据包,所述RLC PDU数据包携带有分段情况指示;
根据所述分段情况指示确定,所述RLC PDU数据包为分段RLC PDU数据包还是完整RLC PDU数据包;
若为完整RLC PDU数据包,向分组数据汇聚层协议PDCP实体发送所述完整RLC PDU数据包;
若为分段RLC PDU数据包,对分段RLC PDU数据包进行重组,并向所述PDCP实体发送重组后的数据包。
其中,在图12中,总线架构可以包括任意数量的互联的总线和桥,具体由处理器1200代表的一个或多个处理器和存储器1220代表的存储器的各种电路链接在一起。总线架构还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路链接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口提供接口。收发机1210可以是多个元件,即包括发送机和收发机,提供用于在传输介质上与各种其他装置通信的单元。处理器1200负责管理总线架构和通常的处理,存储器1220可以存储处理器1200在执行操作时所使用的数据。
处理器1200负责管理总线架构和通常的处理,存储器1220可以存储处理器1200在执行操作时所使用的数据。
可选的,若所述RLC PDU数据包为分段RLC PDU数据包时,所述分段RLC PDU数据包中还携带有用于标识分段RLC PDU数据包的SN,若所述SN不具有标识位置信息的功能,所述分段RLC PDU数据包还携带有位置信息,所述位置信息用于标识所述分段RLC PDU数据包中初始数据包的分段数据位于所述初始数据包的位置;
所述处理器1200还用于执行以下操作:根据所述SN和所述分段情况指示对分段RLC PDU数据包进行重组,或者根据所述SN、分段情况指示和位置信息对分段RLC PDU数据包进行重组。
可选的,若不同的分段RLC PDU数据包的SN递增,则所述SN具有标识位置信息的功能,根据所述SN和所述分段情况指示对分段RLC PDU数据包进行重组;
若一个初始数据包对应的不同分段RLC PDU数据包的SN均相同,则所述SN不具有标识位置信息的功能,根据所述SN、分段情况指示和位置信息对分段RLC PDU数据包进行重组。
可选的,处理器1200还用于执行以下操作:
按照所述分段RLC PDU数据包的SN顺序对所述分段RLC PDU数据包进行排列;
根据所述分段情况指示中所指示的第一个分段和/或最后一个分段,对排列的分段RLC PDU数据包进行重组。
可选的,处理器1200还用于执行以下操作:
在分段RLC PDU数据包重组的过程中,判断是否存在序列缺口;
若存在序列缺口,则启动第一计时器计时,并将当前接收到的最大SN记录为触发所述第一计时器启动的目标SN;
判断所述第一计时器超过第一预设计时时间前,所述目标SN之前的序列缺口是否被填满;
若所述目标SN之前的序列缺口未被填满,则删除所述目标SN之前未重组的分段RLC PDU数据包。
可选的,处理器1200还用于执行以下操作:
将相同的SN对应的RLC PDU数据包作为一组待重组数据包,根据位置信息对分段RLC PDU数据包进行重组。
可选的,处理器1200还用于执行以下操作:
在分段RLC PDU数据包重组的过程中,根据所述位置信息判断当前接收的分段RLCPDU数据包之前是否存在未接收的目标分段RLC PDU数据包;
若所述当前接收的分段RLC PDU数据包之前存在未接收的目标分段RLC PDU数据包,则启动第二计时器;
若所述第二计时器超过第二预设计时时间,仍未接收到所述目标分段RLC PDU数据包,则删除所述目标分段RLC PDU数据包对应的一组待重组数据包。
或者,处理器1200还用于执行以下操作:
在分段RLC PDU数据包重组的过程中,当首次接收到目标初始数据包对应的任意一个分段RLC PDU数据包时,启动第三计时器;
若所述第三计时器超过第三预设计时时间,仍未接收到所述目标初始数据包对应的所有分段RLC PDU数据包,则将所述目标初始数据包对应的已接收分段RLC PDU数据包删除。
可选的,所述SN包括为所述RLC PDU数据包分配的SN,或者所述初始数据包中携带的SN。
可选的,所述位置信息包括所述分段数据在所述初始数据包中的偏移量和所述分段数据的长度;
或者,所述位置信息包括所述分段数据中首个字节的偏移量和末个字节的偏移量。
可选的,所述分段情况指示包括位于RLC PDU数据包头部的2bit,用于指示所述RLC PDU数据包的分段情况,所述分段情况包括:完整数据包、第一个分段、中间分段和最后一个分段;
或者,所述分段情况指示包括位于RLC PDU数据包头部的2bit,其中1bit用于指示RLC PDU数据包是否为分段RLC PDU数据包,1bit用于指示RLC PDU数据包是否为最后一个分段或者第一个分段。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。