RLC PDU可以划分为数据PDU和控制PDU两类。
数据PDU又可以分为3种,即透明模式PDU类型TMD、无回应模式PDU 类型UMD和有回应模式PDU类型AMD,见表4-2。
[attach]1995[/attach]
控制PDU只用于有回应模式,根据类型不同分为STATUS (状态PDU)、Piggybacked STATUS (捎带状态 PDU)、RESET (重置)和RESET ACK (重置回应)。
下面就各种RLC PDU的格式加以说明。
1. TrDPDU
TrD PDU (Transparent Mode Data PDU)用于传输透明模式的数据,透明模式的数据没有结构化的信息,所以不需要添加RLC包头信息。一个TrD PDU是指一个二进制的数据串,这个数据串的大小并不要求限制为8位组的整数倍 (例如语音编码数据的传输显然不需要总要求按8位组的整数倍传输),如图4-10所示。
[attach]1996[/attach]
2. UMD PDU
UMD PDU用于无回应模式的数据传输。
数据的长度是八位组的整数倍,RLCPDU序号(SN)在UMDI>DU的第一个八位组中给出。
如果当前的PDU恰好是一个RLC SDU数据的末尾,则一般情况下还需要在此PDU中添加“长度指示域”(LI),如果一个PDU中包含多个SDU,则相应地需要多个LI字段指示,如果末尾是补齐位,同样使用一个LI的特殊值来表示。当然使用LI的规则也会有特殊情况,在下面的示例中将就一些特殊情况加以说明。
在序号字段和LI字段最后一位都是一个E标志位,它用于指示随后的信息字段是数据还是控制信息,其值为“0”表示后面是数据,“1”代表后面是LI 字段。
根据LI所指示数据部分长度的不同,长度指示字段可以是7位或者15位长。
对于无回应模式而言,当最大的PDU分段长度小于等于125Bytes时,可以使用7位的LI,如果PDU分段的最大长度大于125Bytes,则需要使用15位的LI字段。
图4-11所示为无回应模式RLC PDU的结构示意图。
[attach]1997[/attach]
LI字段一般用于指示当前RLC PDU中包含上层协议的SDU的结尾。但对于无回应模式的RLC而言,也有LI特殊值表示特定的含义。例如,LI的特殊值“1111100”可以用于表示当前RLCPDU中的第一个字节是RLC SDU的第一个起始字节。无回应模式7位LI值的含义见表4-3,15位LI值的含义见表4-4。
[attach]1999[/attach]
在接收端只有接收到一个包含RLC SDU结尾的RLC PDU后,才可以将整个RLC SDU传送到上层。
通过使用“1111100”这个特殊的LI值指示一个RLCSDU的开始,可以使接收端在丢弃无效数据时,尽可能减少被丢弃数据的数量。
下面对RLC SDU在RLC PDU中的分割和级联进行举例说明。
首先,RLC PDU中包含一个SN字段用于指示RLC PDU的序列号。在一个RLC PDU中会包含一个或多个可选的LI (长度指示)字段,LI的数目与RLC PDU中包含的RLC SDU结尾的数目有关,对于补齐位,也需要用一个LI特殊值进行指示。RLC层对RLC SDU进行分割处理并在RLC PDU进行封装的示例如图4-12所示。
[attach]2000[/attach]
在图4-12中,由于RLCSDU数据较大,需要被分割为两段,并分别放置在两个RLCPDU中进行传输。在第一个RLCPDU中,由于RLC PDU数据段的第一个字结尾是下一个RLC SDU的幵始,所以使用一个LI特殊值“1111100”(此例中LI为7位)来表示。
SDU的第二个分段被放在另一个RLC PDU中传输,另外对RLC PDU进行补齐。在这个RLCPDU中,包含两个LI,第一个LI用于指示从RLC PDU包头结束处到RLC SDU结尾处的长度,第二个LI则用于指示RLC SDU结尾后跟随的是补齐位。
3 有回应模式PDU
有回应模式的RLC PDU因其引入了回应模式,所以RLC PDU在结构和种类上比其他两种RLC PDU要复杂一些。
有回应模式的RLC PDU类型有:AMD (有回应模式数据PDU)、STATUS (状态报告)、Piggybacked STATUS (被梢带状态报告)、RESET (重置命令)和RESETACK (重置命令的确认)。
下面首先来看AMD的数据结构。图4-13所示为AMD的一个统一结构。
[attach]2001[/attach]
在图4-13中,下面介绍各个数据段的含义。
(1) D/C位:表示此PDU是数据(Data)还是控制信息(Control)。对于 AMD而言,此位值为1;对控制信息,PDU值为0。
(2) SN表示序号。
(3) P是轮询位:发送端用P来指示是否需要接收端需要给出状态报告(即 STATUS PDU),0 表示不需要STATUS PDU,1表示需要STATUS PDU。
(4) HE:用两位信息指示头扩展字段的类型(即两个字节固定长度的字段之后的字段);0表示随后的是数据;1表示随后是7位长的LI字段;2表示是15位的LI字段;3是预留值,未使用。
(5)LI字段:只在此PDU包含SDU数据结尾时才出现,它的含义见表4-5和表4-6。
[attach]2002[/attach]
[attach]2004[/attach]
多个小的RLC SDU在同一个RLC PDU中进行级联的情况如图4-14所示。
[attach]2005[/attach]
下面对以上参数的含义加以说明。
在图4-14中,共有4个RLCSDU需要通过RLC进行有回应模式的传输。在 这个例子中,假设使用7位长度的LI。
在第一个RLC PDU中包含一个LI字段和两个RLC SDU, LI1用于指示RLC PDU数据段的开始到第一个RLC SDU结尾处的长度。
第二个RLC SDU刚好填充满RLC PDU的长度,并且在这个RLC PDU中没 有使用LI来指示这个SDU的结尾。
在第二个RLC PDU中,LI2 (000 0000)用来表示前一个RLC PDU刚好被 一个RLC SDU的最后一个分段填充,并且在前一个RLC PDU中没有LI用来指 示其中包含那个RLCSDU (RLCSDU2)的结尾。
LI3用于指示从RLC PDU数据段开始处到RLC SDU3结尾处的长度,LI4则 用于指示RLC SDU4的长度。
LI5 (111 1111)用于指示本RLC PDU随后的数据为补齐位。
有回应模式RLC PDU状态报告 PDU (STATUS)的结构如图4-15所示。
[attach]2006[/attach]
其中,D/C位表示此PDU是数据 (Data)还是控制信息(Control),对STATUS而目,此位值为0。
PDU type 用来指示控制信息类型(STATUS、RESET 或 RESET_ACK PDU)。 对于STATUS来说,SUFI (Super Field)的格式取决于STATUS的实际情况。STATUS中可以包含以下几种类型的SUFI。
ACKNOWLEDGE:用于指示接收端己经收到了所指示的SN号的PDU (不 包含该SN号的PDU)。
LIST:接收端通过此参数告知发送端需要重传的PDU列表。
BITMAP:用于指示未成功接收的PDU。
RLIST:用于指示需要重发的PDU列表。
RLC重传的基本原理是:接收端可以根据发送端的要求或数据接收的实际情况给出一个状态报告到发送端。发射端在接收到该报告后重新发送有错的部分。图4-16所示为一个RLC数据重传过程。
[attach]2007[/attach]
欢迎光临 51学通信技术论坛 (http://51xuetongxin.com/bbs/) | Powered by Discuz! X2 |