在NR的協(xié)議棧中,PDCP層位于RLC層之上,SDAP層(用戶面)或RRC層(控制面)之下。它通過(guò)SAP與SDAP / RRC層進(jìn)行通信,并通過(guò)RLC通道與RLC層進(jìn)行通信。PDCP層的功能由PDCP實(shí)體來(lái)實(shí)現(xiàn)。PDCP實(shí)體從SDAP / RRC層接收到的數(shù)據(jù),或發(fā)往SDAP / RRC層的數(shù)據(jù)被稱作PDCP SDU。PDCP實(shí)體從RLC層接收到的數(shù)據(jù),或發(fā)往RLC層的數(shù)據(jù)被稱作RLC PDU(或RLC SDU)。
PDCP層只會(huì)用在映射到邏輯信道DCCH和DTCH的無(wú)線承載(RB)上,而不用于其它類型的邏輯信道上。也就是說(shuō),系統(tǒng)信息(包括MIB和SIB)、Paging以及使用SRB0的數(shù)據(jù)不經(jīng)過(guò)PDCP層處理,也不存在相關(guān)聯(lián)的PDCP實(shí)體。
除SRB0外,每個(gè)無(wú)線承載(RB,Radio Bearer)都對(duì)應(yīng)一個(gè)PDCP實(shí)體。一個(gè)UE可建立多條無(wú)線承載,因此可包含多個(gè)PDCP實(shí)體,每個(gè)PDCP實(shí)體只處理一個(gè)無(wú)線承載的數(shù)據(jù)。取決于無(wú)線承載的特性(例如:?jiǎn)蜗?雙向、split/non-split)或RLC模式的不同,一個(gè)PDCP實(shí)體可以與1、2或4個(gè)RLC實(shí)體相關(guān)聯(lián)。對(duì)于non-split承載,每個(gè)PDCP實(shí)體與1個(gè)UM RLC實(shí)體(單向)、2個(gè)UM RLC實(shí)體(雙向,每個(gè)RLC實(shí)體對(duì)應(yīng)一個(gè)方向)或1個(gè)AM RLC實(shí)體(一個(gè)AM RLC實(shí)體同時(shí)支持2個(gè)方向)相關(guān)聯(lián)。對(duì)于split承載,由于一個(gè)PDCP實(shí)體在MCG和SCG上均存在對(duì)應(yīng)的RLC實(shí)體,因此每個(gè)PDCP實(shí)體與2個(gè)UM RLC實(shí)體(同向)、4個(gè)UM RLC實(shí)體(每個(gè)方向各2個(gè))或2個(gè)AM RLC實(shí)體(同向)相關(guān)聯(lián)。
使用PDCP實(shí)體的無(wú)線承載可被分成3類,不同類別的無(wú)線承載,其處理方式可能不同:
SRB:在RLC層使用AM模式的信令無(wú)線承載;
AM DRB:在RLC層使用AM模式的數(shù)據(jù)無(wú)線承載;
UM DRB:在RLC層使用UM模式的數(shù)據(jù)無(wú)線承載。
PDCP不支持在RLC層使用TM模式的數(shù)據(jù),換句話說(shuō),使用RLC TM模式的數(shù)據(jù)并不經(jīng)過(guò)PDCP層。
PDCP實(shí)體的功能視圖以及發(fā)送端和接收端的處理流程如圖1-1所示。

圖1-1:PDCP層功能
在發(fā)送端,PDCP實(shí)體按如下步驟進(jìn)行處理:
步驟一:來(lái)自RRC層的控制面數(shù)據(jù)或來(lái)自SDAP層的用戶面數(shù)據(jù)(PDCP SDU)會(huì)先緩存在PDCP的傳輸buffer中,并按到達(dá)PDCP層的順序?yàn)槊總(gè)數(shù)據(jù)包分配一個(gè)“Sequence Number(SN,序列號(hào))”,SN指示了數(shù)據(jù)包的發(fā)送順序。
步驟二:PDCP實(shí)體會(huì)對(duì)用戶面數(shù)據(jù)進(jìn)行頭部壓縮處理。頭部壓縮只應(yīng)用于用戶面數(shù)據(jù)(DRB),而不應(yīng)用于控制面數(shù)據(jù)(SRB)。雖然圖中并未明確注明,但用戶面數(shù)據(jù)是否進(jìn)行頭部壓縮處理是可選的。
步驟三:PDCP實(shí)體基于完整性保護(hù)算法對(duì)控制面數(shù)據(jù)或用戶面數(shù)據(jù)進(jìn)行完整性保護(hù),并生成一個(gè)稱為MAC-I的驗(yàn)證碼,以便接收端進(jìn)行完整性校驗(yàn)?刂泼鏀(shù)據(jù)總是要進(jìn)行完整性保護(hù),用戶面數(shù)據(jù)的完整性保護(hù)功能是可選的。
步驟四:接下來(lái),PDCP實(shí)體會(huì)對(duì)控制面數(shù)據(jù)或用戶面數(shù)據(jù)進(jìn)行加密,以保證發(fā)送端和接收端之間傳遞的數(shù)據(jù)的保密性。除PDCP Control PDU外的經(jīng)過(guò)PDCP層的所有數(shù)據(jù)都會(huì)進(jìn)行加密處理。
步驟五:添加PDCP頭部,生成PDCP PDU。
步驟六:如果RRC層給UE配置了復(fù)制功能,那么UE在發(fā)送上行數(shù)據(jù)時(shí),會(huì)在兩條獨(dú)立的傳輸路徑上發(fā)送相同的PDCP PDU。如果建立了split承載,PDCP可能需要對(duì)PDCP PDU進(jìn)行路由,以便將數(shù)據(jù)發(fā)送到目標(biāo)承載上。路由和復(fù)制都是在PDCP發(fā)送實(shí)體里進(jìn)行的。
在接收端,PDCP實(shí)體按如下步驟進(jìn)行處理:
步驟一:PDCP實(shí)體從RLC層接收到一個(gè)PDCP Data PDU后,會(huì)先移除該P(yáng)DU的PDCP頭部,并根據(jù)接收到的PDCP SN以及自身維護(hù)的HFN得到該P(yáng)DCP Data PDU的RCVD_COUNT值,該值對(duì)后續(xù)的處理至關(guān)重要。
步驟二:PDCP實(shí)體會(huì)使用與PDCP發(fā)送端相同的加解密算法對(duì)數(shù)據(jù)進(jìn)行解密。
步驟三:PDCP實(shí)體會(huì)對(duì)解密后的數(shù)據(jù)進(jìn)行完整性校驗(yàn)。如果完整性校驗(yàn)失敗,則向上層指示完整性校驗(yàn)失敗,并丟棄該P(yáng)DCP Data PDU。
步驟四:PDCP實(shí)體會(huì)判斷是否收到了重復(fù)包,如果是,則丟棄重復(fù)的數(shù)據(jù)包;如果不是,就將PDCP SDU放入接收buffer中,進(jìn)行可能存在的重排序處理,以便將數(shù)據(jù)按序遞送給上層。某些場(chǎng)景下可以去使能重排序功能,這時(shí)數(shù)據(jù)可能亂序遞送給上層。
步驟五:對(duì)數(shù)據(jù)進(jìn)行頭部解壓縮。如果解壓縮成功,將PDCP SDU遞送給上層。如果解壓縮失敗,解壓縮端會(huì)將反饋信息(interspersed ROHC feedback)發(fā)送到壓縮端以指示報(bào)頭上下文已被破壞。
對(duì)于AM DRB,如果配置了需要發(fā)送PDCP狀態(tài)報(bào)告,那么PDCP接收端會(huì)在PDCP實(shí)體重建或PDCP數(shù)據(jù)恢復(fù)時(shí)發(fā)送PDCP狀態(tài)報(bào)告,以便PDCP發(fā)送端重新發(fā)送丟失了的PDCP SDU。
需要說(shuō)明的是,在同一PDCP實(shí)體(或?qū)Φ鹊膶?shí)體)內(nèi)討論具體的流程才有意義。不同的PDCP實(shí)體之間是相互獨(dú)立的。