在NR的協(xié)議棧中,PDCP層位于RLC層之上,SDAP層(用戶面)或RRC層(控制面)之下。它通過SAP與SDAP / RRC層進行通信,并通過RLC通道與RLC層進行通信。PDCP層的功能由PDCP實體來實現(xiàn)。PDCP實體從SDAP / RRC層接收到的數(shù)據(jù),或發(fā)往SDAP / RRC層的數(shù)據(jù)被稱作PDCP SDU。PDCP實體從RLC層接收到的數(shù)據(jù),或發(fā)往RLC層的數(shù)據(jù)被稱作RLC PDU(或RLC SDU)。
PDCP層只會用在映射到邏輯信道DCCH和DTCH的無線承載(RB)上,而不用于其它類型的邏輯信道上。也就是說,系統(tǒng)信息(包括MIB和SIB)、Paging以及使用SRB0的數(shù)據(jù)不經過PDCP層處理,也不存在相關聯(lián)的PDCP實體。
除SRB0外,每個無線承載(RB,Radio Bearer)都對應一個PDCP實體。一個UE可建立多條無線承載,因此可包含多個PDCP實體,每個PDCP實體只處理一個無線承載的數(shù)據(jù)。取決于無線承載的特性(例如:單向/雙向、split/non-split)或RLC模式的不同,一個PDCP實體可以與1、2或4個RLC實體相關聯(lián)。對于non-split承載,每個PDCP實體與1個UM RLC實體(單向)、2個UM RLC實體(雙向,每個RLC實體對應一個方向)或1個AM RLC實體(一個AM RLC實體同時支持2個方向)相關聯(lián)。對于split承載,由于一個PDCP實體在MCG和SCG上均存在對應的RLC實體,因此每個PDCP實體與2個UM RLC實體(同向)、4個UM RLC實體(每個方向各2個)或2個AM RLC實體(同向)相關聯(lián)。
使用PDCP實體的無線承載可被分成3類,不同類別的無線承載,其處理方式可能不同:
PDCP不支持在RLC層使用TM模式的數(shù)據(jù),換句話說,使用RLC TM模式的數(shù)據(jù)并不經過PDCP層。
PDCP實體的功能視圖以及發(fā)送端和接收端的處理流程如圖1-1所示。
圖1-1:PDCP層功能
在發(fā)送端,PDCP實體按如下步驟進行處理:
步驟一:來自RRC層的控制面數(shù)據(jù)或來自SDAP層的用戶面數(shù)據(jù)(PDCP SDU)會先緩存在PDCP的傳輸buffer中,并按到達PDCP層的順序為每個數(shù)據(jù)包分配一個“Sequence Number(SN,序列號)”,SN指示了數(shù)據(jù)包的發(fā)送順序。
步驟二:PDCP實體會對用戶面數(shù)據(jù)進行頭部壓縮處理。頭部壓縮只應用于用戶面數(shù)據(jù)(DRB),而不應用于控制面數(shù)據(jù)(SRB)。雖然圖中并未明確注明,但用戶面數(shù)據(jù)是否進行頭部壓縮處理是可選的。
步驟三:PDCP實體基于完整性保護算法對控制面數(shù)據(jù)或用戶面數(shù)據(jù)進行完整性保護,并生成一個稱為MAC-I的驗證碼,以便接收端進行完整性校驗。控制面數(shù)據(jù)總是要進行完整性保護,用戶面數(shù)據(jù)的完整性保護功能是可選的。
步驟四:接下來,PDCP實體會對控制面數(shù)據(jù)或用戶面數(shù)據(jù)進行加密,以保證發(fā)送端和接收端之間傳遞的數(shù)據(jù)的保密性。除PDCP Control PDU外的經過PDCP層的所有數(shù)據(jù)都會進行加密處理。
步驟五:添加PDCP頭部,生成PDCP PDU。
步驟六:如果RRC層給UE配置了復制功能,那么UE在發(fā)送上行數(shù)據(jù)時,會在兩條獨立的傳輸路徑上發(fā)送相同的PDCP PDU。如果建立了split承載,PDCP可能需要對PDCP PDU進行路由,以便將數(shù)據(jù)發(fā)送到目標承載上。路由和復制都是在PDCP發(fā)送實體里進行的。
在接收端,PDCP實體按如下步驟進行處理:
步驟一:PDCP實體從RLC層接收到一個PDCP Data PDU后,會先移除該PDU的PDCP頭部,并根據(jù)接收到的PDCP SN以及自身維護的HFN得到該PDCP Data PDU的RCVD_COUNT值,該值對后續(xù)的處理至關重要。
步驟二:PDCP實體會使用與PDCP發(fā)送端相同的加解密算法對數(shù)據(jù)進行解密。
步驟三:PDCP實體會對解密后的數(shù)據(jù)進行完整性校驗。如果完整性校驗失敗,則向上層指示完整性校驗失敗,并丟棄該PDCP Data PDU。
步驟四:PDCP實體會判斷是否收到了重復包,如果是,則丟棄重復的數(shù)據(jù)包;如果不是,就將PDCP SDU放入接收buffer中,進行可能存在的重排序處理,以便將數(shù)據(jù)按序遞送給上層。某些場景下可以去使能重排序功能,這時數(shù)據(jù)可能亂序遞送給上層。
步驟五:對數(shù)據(jù)進行頭部解壓縮。如果解壓縮成功,將PDCP SDU遞送給上層。如果解壓縮失敗,解壓縮端會將反饋信息(interspersed ROHC feedback)發(fā)送到壓縮端以指示報頭上下文已被破壞。
對于AM DRB,如果配置了需要發(fā)送PDCP狀態(tài)報告,那么PDCP接收端會在PDCP實體重建或PDCP數(shù)據(jù)恢復時發(fā)送PDCP狀態(tài)報告,以便PDCP發(fā)送端重新發(fā)送丟失了的PDCP SDU。
需要說明的是,在同一PDCP實體(或對等的實體)內討論具體的流程才有意義。不同的PDCP實體之間是相互獨立的。