5GNR PDCP

image-20200314095604598.png

1 作用

  • 用户面和控制面的数据传输。

  • 维护PDCP SNs

  • 使用ROHC协议对IP报头进行压缩/解压缩,以减少空口传输的比特数(只适用于用户面数据)。

  • 加密和解密数据(用户面和控制面),发送端对数据进行加密,接收端对数据进行解密。

  • 完整性保护和完整性验证

  • 基于定时器的SDU丢弃,为了防止发送端的传输buffer溢出,而丢弃那些长时间没有被成功发送出去的SDU。

  • 对于split承载的路由,双连接下split承载同时跨越2个不同的cell group,PDCP发送端需要负责对报文进行路由,确保把数据发送到正确的cell group。PDCP接收端不需要进行路由。

  • 复制(duplication),如果网络配置了,PDCP会把数据发给对应的两个RLC实体。主要用于URLLC场景。

  • 重新排序或者按序进行传送,RLC层只要重组出一个完整的RLC SDU,就把它发往PDCP层,也就是说,RLC层不会对SDU进行排序,所以发给PDCP层的RLC SDU可能是乱序的,这就需要PDCP的接收端对数据进行重排序,并按序传送给上层。

  • 乱序传送,对于那些不需要按序传送的业务,可以去使能重排序功能,并直接发送给上层。

  • 丢弃重复数据,由于使用UM模式的RLC实体不进行重复包检测,PDCP层可能会收到重复的数据。另外可能存在PDCP复制功能,接收端也可能收到重复的数据。切换过程中也可能出现重复的PDCP PDU。

2 结构

wps0ox34b.png

PDCP层位于RLC层之上,通过RLC channel与RLC层进行通信,通过SAP与SDAP/RRC层进行通信。PDCP层的功能由PDCP实体来实现。PDCP实体从RLC层收发的数据称为PDCP PDU,从SDAP/RRC层收发的数据称为PDCP SDU。在NR协议栈中和上层的收发数据称为SDU,同下层的收发数据称为PDU。

PDCP层只会用在映射到逻辑信道DCCH和DTCH的无线承载上,而不用于其它类型的逻辑信道上。

除了SRB0之外,每个无线承载都和一个PDCP实体相关联,一个UE可以建立多个无线承载,因此可以包含多个PDCP实体,每个实体只处理一个无线承载的数据。取决于无线承载的特性(例如单向/双向,split/non-split)或RLC模式,每个PDCP实体可以关联1/2/4个RLC实体:

  • 对于split承载或者配置了PDCP复制的无线承载,每个PDCP实体关联2个UM RLC实体(相同方向),4个UM RLC实体(每个方向2个),或者2个AM RLC实体(相同方向)。
  • 对于non-split承载,每个PDCP实体关联1个UM RLC实体,2个UM RLC实体(每个方向各一个),或者1个AM RLC实体。
  • RLC TM模式的数据不经过PDCP传输。

3 流程

image-20200314091912991.png
  1. 分组数据发送到PCDP之后,放到一个传输buffer中,按照分组数据到达的顺序进行分配序列号。接收端可以根据序列号对数据进行重排序。
  2. 然后对数据进行头压缩,但是只是针对用户面数据,也可以配置成不进行头压缩。控制面数据不进行头压缩,这部分在上图中没有呈现出来。
  3. 完整性保护
  4. 接下来对用户面和控制面数据进行加密保护,以保证接收端和发送端之间传递的数据的保密性。
  5. 添加PDCP头
  6. 如果建立了split承载,PDCP实体把数据路由到目标的承载。

4 PDU结构

4.1 用于SRB的数据PDU

< 38.323-6.2.2.1-1: PDCP Data PDU format for SRBs >

image-20200314143609137.png

4.4 用于DRB的数据PDU

< 38.323-6.2.2.2: PDCP Data PDU format for UM DRBs and AM DRBs>

image-20200314144539958.png

4.5 用于PDCP状态报告的控制PDU

< 38.323-6.2.3.1: PDCP Control PDU format for PDCP status report>

image-20200314145240003.png

4.6 用于interspersed ROHC feedback的控制PDU

image-20200314145938591.png

5 参数

5.1 PDCP SN

Length Description
12 UM DRBs, AM DRBs, and SRBs
18 UM DRBs, and AM DRBs

5.2 Data

  • 未压缩的PDCP SDU(用户面数据或者控制面数据)
  • 压缩的PDCP SDU(仅用户面数据)

5.3 MAC-I

长度:32bit

携带着鉴权码,对于SRB来说这个参数一直存在,如果没有配置SRB的完整性保护,则其值为全0。对于DRB来说,只有网络配置了完整性保护才有这个参数。

5.4 COUNT

COUNT的值是由HFN和PDCP SN组成,HFN部分的大小(以比特为单位)等于32减去PDCP SN的长度。

image-20200314192136327.png

5.5 R

长度:1bit

R15版本中还用于保留。

5.6 D/C

长度:1bit

Bit Description
0 Control PDU
1 Data PDU

5.7 PDU类型

长度:1bit

Bit Description
000 PDCP status report
001 Interspersed ROHC feedback
010-111 Reserved

5.8 FMC

长度:32bit

此字段指示在重新排序窗口内的第一个丢失的PDCP SDU的COUNT值,即RX_DELIV。

5.9 Bitmap

Bit Description
0 PDCP SDU with COUNT = (FMC + bit position) modulo 2^{32} is missing.
1 PDCP SDU with COUNT = (FMC + bit position) modulo 2^{32} is correctly received.

该字段指示在接收PDCP实体中丢失了哪些SDU以及正确接收了哪些SDU。 Bitmap中第N个位的位置是N,即Bitmap中第一个位的位置是1。

5.10 Interspersed ROHC feedback

该字段包含一个仅具有反馈的ROHC数据包,即与PDCP SDU不相关的ROHC数据包。

6 头压缩和解压缩

ROHC框架定义了多个头压缩算法,被称为profile,目前R15中支持的头压缩协议和profile如下:

Profile Identifier Usage Reference
0x0000 No compression RFC 5795
0x0001 RTP/UDP/IP RFC 3095, RFC 4815
0x0002 UDP/IP RFC 3095, RFC 4815
0x0003 ESP/IP RFC 3095, RFC 4815
0x0004 IP RFC 3843, RFC 4815
0x0006 TCP/IP RFC 6846
0x0101 RTP/UDP/IP RFC 5225
0x0102 UDP/IP RFC 5225
0x0103 ESP/IP RFC 5225
0x0104 IP RFC 5225

UE在接入网络时会告诉NW自己支持那些算法,NW会在配置PDCP时告诉UE选用哪种算法。

image-20200317234111243.png

数据经过PDCP头压缩之后,如果PDCP SN为12bit,则头长度为2字节,否则头长度为3字节。

7 重复

如果RRC参数pdcp-Duplication配置了,PDCP实体:

  • 对于SRB
    • 激活PDCP重复
  • 对于DRB
    • 如果指示激活了PDCP重复
      • 激活PDCP重复
    • 如果指示去激活了PDCP重复
      • 去激活PDCP重复

重复PDCP丢弃:

  • 若关联的某个AM RLC实体成功的发送了PDCP data PDU
    • 指示另外一个AM RLC实体丢弃重复的DPCP data PDU
  • 若收到去激活PDCP重复指示
    • 指示第二个RLC实体丢弃所有的重复PDCP data PDU

TS38300-16.1.3

image-20200318222301616.png

如图所示,当无线承载配置了PDCP重复之后,就会给PDCP添加第二个RLC实体,对应的逻辑信道是第二逻辑信道。这两个RLC实体具有相同的模式,PDCP会生成两个相同的PDU,分别发给两个RLC实体。通过两个独立的传输路径,提高了数据传输的可靠性,降低了等待时间,对于URLLC服务特别有利。

当DRB配置了duplication之后,RRC也同时设置了duplication的初始状态(激活/不激活),可以通过MAC CE进行动态控制是否激活。如果SRB配置了duplication,那么总是激活的,而且不能动态控制。

8 PDCP配置

PDCP-Config ::= SEQUENCE {
   drb SEQUENCE {
      discardTimer ENUMERATED {ms10, ms20, ms30, ms40, ms50, ms60, ms75, ms100, ms150, ms200,ms250, ms300, ms500, ms750, ms1500, infinity} OPTIONAL, -- Cond Setup
      //PDCP SN长度12或18bits,对于SRB只支持12bits
      pdcp-SN-SizeUL ENUMERATED {len12bits, len18bits} OPTIONAL, -- Cond Setup2
      pdcp-SN-SizeDL ENUMERATED {len12bits, len18bits} OPTIONAL, -- Cond Setup2
      //头部压缩,可以配置成notUsed、rohc或者uplinkOnlyROHC
      headerCompression CHOICE {
         notUsed NULL,
         rohc SEQUENCE {
            maxCID INTEGER (1..16383) DEFAULT 15,
            profiles SEQUENCE {
               profile0x0001 BOOLEAN,
               profile0x0002 BOOLEAN,
               profile0x0003 BOOLEAN,
               profile0x0004 BOOLEAN,
               profile0x0006 BOOLEAN,
               profile0x0101 BOOLEAN,
               profile0x0102 BOOLEAN,
               profile0x0103 BOOLEAN,
               profile0x0104 BOOLEAN
               },
            drb-ContinueROHC ENUMERATED { true } OPTIONAL-- Need N
            },
         uplinkOnlyROHC SEQUENCE {
            maxCID INTEGER (1..16383) DEFAULT 15,
            profiles SEQUENCE {
               profile0x0006 BOOLEAN
               },
            drb-ContinueROHC ENUMERATED { true } OPTIONAL-- Need N
            },
         ...
         },
      integrityProtection ENUMERATED { enabled } OPTIONAL, -- Cond ConnectedTo5GC1
      //对于AM DRB,指示上行是否发送PDCP状态报告
      statusReportRequired ENUMERATED { true } OPTIONAL, -- Cond Rlc-AM
      //指示是否进行乱序提交,RB建立之后,此字段不可更改
      outOfOrderDelivery ENUMERATED { true } OPTIONAL-- Need R
      } OPTIONAL, -- Cond DRB
   //PDCP实体关联多个RLC实体时,为上行数据传输配置此字段
   moreThanOneRLC SEQUENCE {
      //主RLC实体配置
      primaryPath SEQUENCE {
         cellGroup CellGroupId OPTIONAL, -- Need R
         //for CA
         logicalChannel LogicalChannelIdentity OPTIONAL-- Need R
         },
      ul-DataSplitThreshold UL-DataSplitThreshold OPTIONAL, -- Cond SplitBearer
      pdcp-Duplication BOOLEANOPTIONAL-- Need R
      } OPTIONAL, -- Cond MoreThanOneRLC
   //重排序定时器
   t-Reordering ENUMERATED {
      ms0, ms1, ms2, ms4, ms5, ms8, ms10, ms15, ms20, ms30, ms40,
      ms50, ms60, ms80, ms100, ms120, ms140, ms160, ms180, ms200, ms220,
      ms240, ms260, ms280, ms300, ms500, ms750, ms1000, ms1250,
      ms1500, ms1750, ms2000, ms2250, ms2500, ms2750,
      ms3000, spare28, spare27, spare26, spare25, spare24,
      spare23, spare22, spare21, spare20,
      spare19, spare18, spare17, spare16, spare15, spare14,
      spare13, spare12, spare11, spare10, spare09,
      spare08, spare07, spare06, spare05, spare04, spare03,
      spare02, spare01 } OPTIONAL, -- Need S
   ...,
   [[
   //
   cipheringDisabled ENUMERATED {true} OPTIONAL-- Cond ConnectedTo5GC
   ]]
}

示例:

pdcp-Config 
{
  drb 
  {
    discardTimer infinity,
    pdcp-SN-SizeUL len18bits,
    pdcp-SN-SizeDL len18bits,
    headerCompression notUsed : NULL,
    statusReportRequired true
  },
  t-Reordering ms200
}

这个是5GNR的EN-DC现网配置,PDCP SN上下行都是18bits,不使用头压缩,需要发送状态报告。PDCP实体排序的时间为200ms。

Reference

TS38323 Packet Data Convergence Protocol (PDCP) specification

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,302评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,232评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,337评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,977评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,920评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,194评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,638评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,319评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,455评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,379评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,426评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,106评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,696评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,786评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,996评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,467评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,043评论 2 341

推荐阅读更多精彩内容