文中涉及多方摘录网络资料,并非完全原创。如涉及侵权,请联系笔者删除。

PDCP(Packet Data Convergence Protocol,分组数据汇聚协议)

一、概述:

PDCP是对分组数据汇聚协议的一个简称。它是UMTS中的一个无线传输协议栈,它负责将IP头压缩和解压、传输用户数据并维护为无损的无线网络服务子系统(SRNS)设置的无线承载的序列号。

keywords:PDCP,IP,UMTS,因特网协议,数据,数据包,数据链路层,无线传输协议,物理层,移动性管理,网络层

无线接口可分为三个协议层:

(L1)物理层 L1主要用于为高层业务提供传输的无线物理通道。
(L2)数据链路层

L2包括

MAC(Medium Access Control)、

RLC(Radio Link Control)、

BMC(Broadcast/Multicast Control)

PDCP(Packet Data Convergence Protocol)

四个子层。

(L3)网络层 L3包括接入层中的RRC子层和非接入层的MM(MobilityManagement,移动性管理)和CC(CallControl,呼叫控制)。

分组数据汇聚协议层属于无线接口协议栈的第二层,处理控制平面上的无线资源管理(RRC)消息以及用户平面上的因特网协议包。在用户平面上,PDCP子层得到来自上层的IP数据分组后,可以对IP数据分组进行头压缩和加密,然后递交到RLC子层。PDCP子层还向上层提供按序提交和重复分组检测功能。在控制平面,PDCP子层为上层RRC提供信令传输服务,并实现RRC信令的加密和一致性保护,以及在反方向上实现RRc信令的解密和一致性检查。

PDCP协议包括以下具体支持的功能:

(1)用户平面数据的报头压缩和解压缩。
(2)安全性功能:
    ①用户和控制平面协议的加密和解密;
    ②控制平面数据的完整性保护和验证。
(3)数据的传输功能:
    ①下层重建时,对向上层发送的PDU顺序发送和重排序;
    ②对映射到AM模式的RB的下层SDU进行重排序。
(4)数据包的丢弃。

PDCP架构:

UE:User Equipment

GSM:Global System of Mobile communication

UMTS:Universal Mobile Telecommunications System(也叫3GSM,强调结合了3G技术而且是GSM标准的后续标准)

E-UTRAN:Evolved UMTS Terrestrial Radio Access Network

SAP:Service Access Point

PDU:Protocol Data Unit

SDU:Service Data Unit

PCI:Protocol Control Information

UM-SAP:Unacknowledged Mode Service Access Point

AM-SAP: Acknowledged Mode Service Access Point

C-SAP:configure-Service Access Point

eNB:evolved Node B,演进型基站

MME:MME(Mobility Management Entity

MAC:Medium Access Control

NAS:Non-Access Stratum 非接入层
UMTS的协议栈分为NAS和AS。NAS协议处理UE和CN之间信息的传输,传输的内容可以是用户信息或控制信息(如业务的建立、释放或者移动性管理信息)。NAS消息一定程度上独立于下面的AS协议结构,与采样什么样的无线接入网无关(可以是GSM、GPRS、WCDMA)。控制平面的NAS消息有CM、MM、SM以及GMM等。用户平面的网络层NAS协议是IP(分组交换),电路交换业务不需要。
NAS消息的传输要基于底层的AS协议。

CN:Core Network 核心网

LWA:LTE/Wi-Fi Link Aggregation

ROHC:RObust Header Compression 头压缩过程

MAC-I:Message Authentication Code for Integrity

HFN:Hyper Frame Number(PDCP数据PDU的计数器,规范中称为“COUNT”用于做安全算法的输入。 完整性保护盒加密时使用的COUNT值是由数据包对应的HFN和PDCP SN两部分组成的。 使用超帧号(HFN)目的是为了限制空口上传输序列号的比特数。当然,在UE和eNodeB之间要保持HFN的同步)

PDCP 的数据单元,格式,参数(data units, formats and parameters)

1.PDCP Data PDU

PDCP 数据 PDU 用于传达:

- 一个PDCP SDU SN;和

- 用于一对多通信的SLRB,PGK索引,PTK Identity和SDU类型;或

- 用于一对一通信的SLRB、KD-sess Identity 和 SDU 类型;和

- 包含未压缩的PDCP SDU的用户面数据;或

- 包含压缩PDCP SDU的用户面数据;或

- 控制面数据;和

- 用于SRB的MAC-I字段;或

- 对于需要一对一通信完整性保护的SLRB,MAC-I字段;或

- 对于RN,DRB的MAC-I字段(如果配置了完整性保护);

2.PDCP Control PDU

PDCP 控制 PDU 用于输送:

- PDCP 状态报告,指出哪些 PDCP SDU 缺失,哪些未跟随在 PDCP 重新建立。

- 标头压缩控制信息,例如穿插的 ROHC 反馈。

- LWA状态报告。

- 一个 LWA 末端标记数据包。

3.PDCP format

PDCP pdu是以字节为单位是bit流,PDU最重要的信息分别在数据流的两端,PDU的解析读取顺序从左到右。

3GPP下的PDCP协议一共记述了12种格式,分别为:

1)Control plane PDCP Data PDU

2)User plane PDCP Data PDU with long PDCP SN (12 bits)

3)User plane PDCP Data PDU with short PDCP SN (7 bits)

4)PDCP Control PDU for interspersed ROHC feedback packet

5)PDCP Control PDU for PDCP status report

6)  Void

7)  RN user plane PDCP Data PDU with integrity protection

8)User plane PDCP Data PDU with extended PDCP SN (15 bits)

9)User plane PDCP Data PDU for SLRB

10)User plane PDCP Data PDU with further extended PDCP SN (18 bits)

11)PDCP Control PDU for LWA status report

12)PDCP Control PDU for LWA end-marker packet

具体格式及参数样例转载一位大神的博客:

(116条消息) PDCP 功能与基本概念_yyl_woniu的博客-CSDN博客_pdcp层的主要功能

复习知识点:

SDU与PDU的区别:

SDU(service Data Unit):服务数据单元,又叫业务数据单元,是指定层的用户服务的数据集,传送到接收方的时候同一协议层时数据没有发生变化,即业务部分,然后发给下层之后,下层将其封装在PDU中发送出去。服务数据单元是从高层协议来的信息单元传送到低层协议。第N层服务数据单元SDU,和上一层的协议数据单元(PDU)是一一对应的。根据协议数据单元的数据的不同,送到接收端的指定层。

PDU(Protocol Data Unit)在电信领域,协议数据单元(PDU,Protocol Data Unit)有以下几层意义:

1、网络的对等实体传送的信息单元,包括了控制信息,地址信息,或者数据。

2、在协议系统里,在指定的协议层上传送的数据单元,包含了该层的协议控制信息和用户信息。

3、在OSI模型系统里,PDU和最底下四层相关

PDU和SDU的区别

PDU的封装/解封装:在发送方,将用户递交的SDU加上协议控制信息PCI,封装成PDU;在接收方,讲接收到的PDU解封装,去掉PCI,还原成SDU送交接收方用户。

SDU分段/装配 :如果下层通道的带宽不能满足传递SDU的需要,就需要将一个SDU分成多段,分别封装成PDU发送出去(分段);在接收方再将这些PDU解封装后重新装配成SDU。

SDU拼接/分离:拼接是指在发送方(n)层协议实体把多个长度较短的(n)SDU封装成一个(n)PDU来发送,在接收放再将接收到的(n)PDU解封装,将多个(n)SDU分离出来。采用拼接功能的目的是提高通道的利用率。

PDU分割/组合:

PDU分割是指在发送端(n)层协议实体把一个(n)PDU分割成多个(n-1)SDU,并行地从多个(n-1)通道发送出去;接收端再将收到的多个(n-1)SDU组合成一个(n)PDU。由于这是一个N层功能,所以组合操作在N层中进行,即N层先得到多个分割开的(n)PDU,然后把它们组合成一个(n)PDU。,有时NSDU较长,而N协议所要求的NPDU较短。这时就要对NSDU进行分段处理,将一个SDU分成两个或多个PDU来传送。当PDU所要求的长度比SDU还大时,也可将几个SDU合并成为一个PDU。

SUD和PDU是相对的概念。

RLC三种无线链路服务

RLC在空口协议栈中处于L2层,位于L2 PDCP和MAC之间,其向上提供三种无线链路层数据传输服务:

透明传输TM、非确认模式UM、确认模式AM

有点类似与TCP/IP协议栈提供的三种数据传输服务。

透明传输TM(Transparent Mode)-- 类RAW Socket模式

(1)概述

TM数据传输主要是以透传的方式,不保证数据包的顺序,以最短的时延传递到对端。

主要适用于对时延敏感、不希望原始数据被分段。并且不需要下层保证数据包顺序到达的业务,如上层信令、广播消息、寻呼消息等。

这些数据,每一次的传输,都是独立块的,不需要依赖前后的数据块。

TM模式对于上层指示需要传输的数据,不执行任何附加的操作,直接将上层PDU递交给底层,并且不执行对SDU进行打包、分段等功能。主要为上层提供BCCH、DUUL CCCH和PCCH逻辑信道上的数据传输。

有点类似TCP/IP通信中的混杂模式,应用层可以直接绕过TCP/IP协议栈,直接收发MAC层数据包。

(2)数据包格式

在TM透明模式下,没有添加任何RLC层的头信息。

非确认模式UM(UnacknowIedgedMode)--类UDP模式

(1)概述

UM数据传输能够保证数据按序传递给上层,并且能够对上层数据根据无线资源的带宽限制进行打包分段,以最短时延使数据包按序到达对端,主要适用于对时延敏感、但是允许一定丢包率的业务,如VoIP等业务。

在发送端,UM发送实体通过其与上层协议栈之间的服务接入点SAP(类似TCP/IP socket)将上层数据放入发送缓存中。然后根据下层给予的发送机会和提供的带宽大小对发送缓存中的数据进行打包分段。最后加上RLC头.通过逻辑信道发送出去。

在接收端,由于下层具有HARQ的重传功能,并且下层不提供重排序的功能。所以UM接收实体需要将由于下层重传导致的乱序到达的数据包进行重排序,并完成解分段、解打包从而将数据包还原成原始的服务数据单元按序地交给上层。

在UM传输模式下,UM接收实体主要是用三个参数(VR(UH)、VR(UR)、VR(U×))记录特定的PDU序列号以及一个定时器和接收窗口来对接收的数据进行控制,从而完成重排序、重组等功能。

因此:

  • UM发送实体主要进行:打包、分段等操作,
  • UM接收实体需要进行:解打包、解分段操作。

但不支持ARQ差错控制。

(2)数据包分段、串联封装原理

(3)数据包分段、串联封装案例1

(4)数据包分段、串联封装案例2

(5)支持分段、重组的数据包格式

确认模式AM(Acknaw|edged Mode)-- 类TCP模式

(1)概述

AM数据传输以ARQ的方式为上层提供可靠的数据传输,保证数据正确地按序到达对端,主要适用于对时延不敏感、对错误敏感的业务,如FTP业务、后台业务、交互业务等。

AM实体包括发送部分和接收部分。

在发送部分:

AM实体将从上层传来的服务数据单元(SDU)放入AM实体传输缓存,如果此时接收部分指示需要发送控制协议数据单元(PDU).

AM实体发送部分则根据下层提供的发送机会和带宽大小,

  • 首先发送控制PDU。
  • 然后对重传缓存中的数据进行调度(必要时需要进行再分段),否则直接对重传缓存中的数据进行调度;
  • 最后再对传输缓存中的新数据进行调度。发送部分调度出数据后。根据AM实体当前状态,决定是否需要加上轮询位(poing)。
  • 然后为调度出的数据加上RLC头,发送给下层。

在接收部分:

接收到RLC PDU后,

  • 若是控制PDU则根据其内容,对重传缓存中的数据做相应的处理;
  • 若是数据PDU则将其放接收窗口,进行重排序控制。然后在去除RLC子头后。进行SDU的重组。最后按序将SDU递交给上层,若接收部分发现RLC子头中包含有轮询位。则需要根据AM实体配置,触发发送部分发送控制PDU

在AM的传输模式下:

AM实体的发送部分用四个参数(VT(A)、VT(S)、VT(MS)、POLLSN)来记录特定的发送PDU的序列号以及一个管理状态PDU的定时器和管理轮询的定时器的使用,从而完成对发送状态PDU和轮询以及发送窗口的控制。AM实体发送部分还需要进行打包、分段、再分段等操作.

在接收端,AM实体的接收部分还需要用5个参数(VR(R)、VR(MR)、VR(X)、VR(MS)、VR(H))来记录特定的PDU序列号以及一个定时器和接收窗口来对接收的数据进行控制(解打包、解分段)。从而完成重排序、重组等功能以及与发送部分配合完成ARQ功能。

在AM模式中,由发送端和接收端共同完成ARQ差错控制过程,这是RLC层一个重要的功能。ARQ过程中的状态PDU发送过程主要由管理状态PDU的定时器以及接收窗中的定时器控制;ARQ过程中的轮询发送过程则是由管理轮询的定时器。以及从上次发送轮询以来记录的发送过的PDU个数和字节数来控制

因此:

  • AM发送实体主要进行:打包、分段等操作。与UM类似。
  • AM接收实体需要进行:解打包、解分段操作。与UM类似。
  • AM发送端和接收端共同完成ARQ差错控制, 这是AM与UM最重要的区别。

(2)支持分段、重组的数据包格式

与UM模式相似,不同的是AM模式下支持ARQ差错控制。

(3)ARQ差错控制概述

差错控制数据链路层层是一个非常重要的功能,数据链路层层需要在不太可靠的物理层来尽量实现可靠的链路层传输,靠的就是差错控制。

所谓差错控制,就是发送端对传输的数据信息检错编码、纠错编码,接收端对接收到的数据进行错误检测,加以恰当的纠错、并进行确认的处理过程。

检错是指接收方通过各种方法能发现数据中的错误并且通知发送方进行重传该信息,常见的检错技术包括CRC.

纠错是指当发现错误地时候直接能够改正,而不是通过反馈给发送方进行重传。

传输出错分下面几种情况:

  • (1)数据丢失,
  • (2)数据受到干扰出错

那么和上面错误对应的就是差错控制的功能:

  • (1)正确接收,肯定确认:这个是最基本的情况,只要接收端认为自己收到数据是对的,就发送一个ACK告知发送方。
  • (2)数据丢失,超时重发:这个对应的是发送数据和确认丢失的情况。
  • (3)数据错误,否定确认:这个用于数据错误之后的重发   。

通过以上情况考虑,设计出来的协议就是差错控制。

通过接收方请求发送方重传出错的数据报文来恢复出错的报文,是通信中用于处理信道所带来差错的方法之一,有时也被称为后向纠错(Backward Error Correction,BEC);

“后向”纠错:表示放弃之前已经发送的数据,重新发送新的数据。RLC层的ARQ就是后向纠错。

常见的差错控制技术包括:

与RLC层后向纠错对应的就是PHY层的前向纠错FEC编码,与MAC层的混合自动重传请求HARQ差错控制。

详见:

《[4G&5G专题-55]:L2 MAC层 - 差错控制技术与混合自动重传请求HARQ协议》

[4G&5G专题-55]:L2 MAC层 - 差错控制技术与混合自动重传请求HARQ协议_文火冰糖的硅基工坊的博客-CSDN博客

4.4 三种传输模式功能的比较

这里需要说明的,无论是哪种模式,在传输数据是,终端都需要与基站先建立RLC连接。

也就是说,三种数据传输模式,都是针对终端而言的。

终端需要实现与基站建立多个RLC连接,才能通过无线链路发送分组数据包。不同的RLC连接,可以配置不同的传输模式。

Packet Data Convergence Protocol (PDCP)阅读笔记相关推荐

  1. 【5G系列】PDCP (Packet Data Convergence Protocol)协议详解

    本人就职于国际知名终端厂商,负责modem芯片研发.在5G早期负责终端数据业务层.核心网相关的开发工作,目前牵头6G算力网络技术标准研究. 博客内容主要围绕: 5G协议讲解 算力网络讲解(云计算,边缘 ...

  2. 5G NR 阅读笔记

    一  专业术语 1.1: PDCP(Packet Data Convergence Protocol) 分组数据汇聚协议,PDCP 是对分组数据汇聚协议的一个简称. 它是 UMTS 的一个无线传输协议 ...

  3. 点云配准论文阅读笔记--Comparing ICP variants on real-world data sets

    目录 写在前面 点云配准系列 摘要 1引言(Introduction) 2 相关研究(Related work) 3方法( Method) 3.1输入数据的敏感性 3.2评价指标 3.3协议 4 模块 ...

  4. Are VQA Systems RAD? Measuring Robustness to Augmented Data with Focused Interventions 论文阅读笔记

    Are VQA Systems RAD? Measuring Robustness to Augmented Data with Focused Interventions 论文阅读笔记 一.Abst ...

  5. 阅读笔记(Communication-Efficient Learning of Deep Networks from Decentralized Data)

    阅读笔记(Communication-Efficient Learning of Deep Networks from Decentralized Data) 动机 联邦平均 实验结果 MINIST优 ...

  6. 论文阅读笔记(15):Deep Subspace Clustering with Data Augmentation,深度子空间聚类+数据增强

    论文阅读笔记(15):Deep Subspace Clustering with Data Augmentation,深度子空间聚类+数据增强 摘要 1 介绍 2 相关工作 带增强的聚类方法 具有一致 ...

  7. Learning from Synthetic Data for Crowd Counting in the Wild 论文阅读笔记

    Learning from Synthetic Data for Crowd Counting in the Wild 论文阅读笔记 发表:CVPR 2019 人群计数任务在多变的环境,大范围的人群中 ...

  8. [置顶] Linux协议栈代码阅读笔记(一)

    Linux协议栈代码阅读笔记(一) (基于linux-2.6.21.7) (一)用户态通过诸如下面的C库函数访问协议栈服务 int socket(int domain, int type, int p ...

  9. linux 协议栈 位置,[置顶] Linux协议栈代码阅读笔记(一)

    Linux协议栈代码阅读笔记(一) (基于linux-2.6.21.7) (一)用户态通过诸如下面的C库函数访问协议栈服务 int socket(int domain, int type, int p ...

最新文章

  1. Numpy的介绍和优势
  2. MySQL连不上,报Host is blocked because of many connection errors; unblock with 'mysqladmin flush-hosts'
  3. 本地配置_Hadoop本地模式的安装配置
  4. 简约几何海报背景设计素材,可盐可甜
  5. 布谷直播:仿富聊V聊、一对一社交APP、抖音短视频、社交APP源码
  6. 用perl操作excel的介绍
  7. 动态修改EasyUI accordion选中面板的标题(title)
  8. ajax与easyui树节点,easyUI 树形列表 想实现 类似于according 的效果 怎么办?
  9. Android蓝牙完全学习手册
  10. 微信小程序:网课查题微信小程序源码下载,题库资源丰富自动采集,支持语音拍照识别
  11. 数据库练习题归纳整理
  12. 锯齿波调制的FMCW雷达中频回波信号的公式推导
  13. linux选was清除缓存,Linux清除缓存操作
  14. 论如何把自己变成卡通人物(OpenCV制作卡通化头像)
  15. Logback日志名和日志内容配置增加ip等信息
  16. 一、【s3c2440移植linux-3.5】移植准备
  17. java dispose事件_求助!!为什么我的dispose()不起作用
  18. java.sql.SQLException: Access denied for user ''@'localhost' (using password: NO)问题解决,很详细,很详细,很详细
  19. 前端性能优化总结/懒加载、函数节流、优化dom操作、雪碧图、合并文件
  20. 兴趣推荐阅读体验同质化严重 智能算法需兼顾个性和深度

热门文章

  1. sweetalert弹框插架--自定义多按钮事件
  2. linux 查看用户权限组,linux用户组及权限
  3. 2017 AMC8中文
  4. ndnSIM学习(四)——examples之ndn-simple.cpp超详细剖析
  5. 双飞燕G3-200N鼠标修理
  6. 1906: 鹊桥相会
  7. 关于Spring中的ClassPath
  8. 如何快速取消关注B站(哔哩哔哩)所有up主?(Javascript实现)
  9. 【8086汇编】DOS系统中 edit 文本编辑器详解
  10. 【YOLOv4原文+翻译】YOLOv4:Optimal Speed and Accuracy of Object Detection