-
NR PDCP
规范
NR
PDCP
的实体和无线承载(<
/p>
SRB
或
DRB
)之间有一一对应关系。架构如下图所
示:
UE/NG-RAN/UE A
Transmitting
PDCP entity
Receiving
PDCP entity
NG-RAN/UE/UE
B
Transmission
buffer:
Sequence
numbering
Header
Compression
Packets associated
to a PDCP SDU
Integrity
Protection
Ciphering
Header Decompression
Packets
associated
to a PDCP
SDU
Reception
buffer:
Reordering
Duplicte
discarding
Integrity Verific
ation
Deciphering
Remove PDCP
Header
Packets not
associated
to a
PDCP SDU
Add PDCP header
Routing/Duplication
PDCP
层主要的功能如下:
?
序号的管理,包括发送方和接受方
?
头压缩
/
解压缩
ROHC
?
加解密,完整性保护
?
重排序(
Re-
ordering
)和按序传送
?
数据包路由(针对
split
承载)
?
数据包重发
ROHC
指的是
IP
包的头压缩和解压缩功能,一般用于
VOIP
语音业务,因为
VoIP
语音业务的
IP
包头占了很大的比例,进行头压缩
是提高无线资源效率的重要措
施。
Packets not
associated to a
PDCP SDU
Radio Interface
(Uu/PC5)
Supported ROHC
protocols and profiles
Profile
Identifier
0x0000
0x0001
0x0002
0x0003
0x0004
0x0006
0x0101
0x0102
0x0103
0x0104
Usage
No compression
RTP/UDP/IP
UDP/IP
ESP/IP
IP
TCP/IP
RTP/UDP/IP
UDP/IP
ESP/IP
IP
Reference
RFC 5795
RFC 3095, RFC 4815
RFC 3095,
RFC 4815
RFC 3095, RFC 4815
RFC 3843, RFC 4815
RFC 6846
RFC 5225
RFC 5225
RFC 5225
RFC 5225
NR PDCP
和
< br>LTEPDCP
功能比较
PDCH
协议功能
NR PDCP
LTE PDCP
最
大
PDCP
SDU
9000 Byte
8188
Byte
(
Service Data Unit
)
大
小
PDCP SN
12bit/ 18bit
5/7/12/15/18 bit
COUNT
大小
32bit
32bit
ROHC
规范
唯一不一样的
ID=6
,
表示
唯一不一样的
ID=6
,表示
TCP/IP
,参考
RFC6846
TCP/IP
,参考
RFC4996
加密算法
R15
与
LTE
一样
完整性保护
SRB
,
DRB
(可选)
SRB
Split
承载
支持
EN-
DC
,支持
PDCP
支持
LTE-LTE DC
PDU
重复
重排序
基于
COUNT
的重排序算法
基于
SN
的重排序算法
状态上报
重建或者恢复的时候出
p>
重建或者恢复的时候触发
发
PDCP
层发送数据的流程按照如下步骤进行:
1.
根据
T
X_NEXT
得到
PDCP
PDU
(
Protocol Data
Unit
)的
COUNT
,并且启动一
个
discardTimer
;
2.
进行头压缩操作
3.
先进行完整性保护操作,然后对整个
PDCP PDU
进行加密操作(
SDAP
和
PDCP
的头结构除外)
4.
增加
PDCP SN=TX_NEXT
5.
把
PDCP PDU
传送给底层协议(
RLC
)
如果
PDCP
PDU
生成以后,
一直没有机会得到调度,
那么在
discardTimer
超时之
后,这个
PDCP
PDU
和对应的
PDCP
SDU
都会被丢弃。在流量比较大的时候,一般
情
况下网络会一次性发送的
PDCP
PDU
的序号空间不会超过
SN
规定的一半,
否则
可能会有超帧号(
HFN
)不
同步的危险。
PDCP
层的接收方有一个
PDCP
PDU
的缓存,用于
PDCP
PDU
重排序,以保证按序
传递给上层。
p>
PDCP
层接收方在收到一个
PDCP
PDU
以后,要做以下几个步骤:
1.
根据接收到的
PDCP
SN
和本地的变量信息来确定这个
PDCP PDU
的
COUNT
;
2.
先解密,然后进行完整性保护检查;
3.
完整性保护失败,或者
PDCP
SN
已经在接收窗口之外,那么这个
PDCP
PDU
就
会被丢弃,否则就存储到重排序的缓存中去;
p>
4.
根据这个
PDCP
SN
在重排序窗口中的位置来决定是否需要投递某些
PDCP
SDU
给上层,并且刷新本地变量信息以及定时器状态;
5.
PDCP
PDU
在传递给上层之外,先要进行头解压缩。
各类参数的解释如下:
?
RCVD_HFN:
接收到的
PDCP
PDU
的
COUNT
< br>的超帧号,长度是
32bit
减去
SN
的
长度;
?
RCVD_SN:
接收到的
PDCP
PDU
的序号;
?
RCVD_COUNT
:
接收到的
PDCP
P
DU
的
COUNT
,
< br>高位是
RCVD_HFN
,
低位
是
RCVD_SN
;
?
RX_NEXT:
下一个期望接收的
PDCP PDU
的
SN
;
?
RX_DELIV:
还没有传输给上层的最早的
PDCP PDU
?
RX_REORD:
触发了
t_reordering
定时器的
PDCP PDU
的
SN
PDCP PDU
的
COUNT
算法
-
if RCVD_SN < SN(RX_DELIV)
–
Window_Size:
-
RCVD_HFN = HFN(RX_DELIV) +
1.
-
else if RCVD_SN >=
SN(RX_DELIV) + Window_Size:
-
RCVD_HFN = HFN(RX_DELIV)
–
1.
-
else:
-
RCVD_HFN
= HFN(RX_DELIV);
-
RCVD_COUNT = [RCVD_HFN, RCVD_SN].
在
PDCP
PDU
COUNT
达到最大值之前,
网络会触发一个切换过程
,
从而复位
COUNT
值,所以算法中
所有的
COUNT
是逐级变大的,导致两个
PDCP PDU
的
COUNT
可
以
直接比较。
-
-
-
-
-
-
-
-
-
上一篇:3dmax修改命令中英文对照表
下一篇:3DMAX渲染器绝对全面的讲解