PDCP
UMTS中的無線傳輸協議棧
PDCP是對分組數據匯聚協議的一個簡稱。它是UMTS中的一個無線傳輸協議棧,它負責將IP頭壓縮和解壓、傳輸用戶數據並維護為無損的無線網路服務子系統(SRNS)設置的無線承載的序列號。
PDCP(Packet Data Convergence Protocol)分組數據匯聚協議
PDCP
PDCP 是對分組數據匯聚協議的一個簡稱。
壓縮技術可以根據二者之一 RFC 2507 或 RFC 3095. RFC 1144年 罐頭為一些背景知識也使用,並且,雖然技術在RFC沒有用於現代 TCP/IP 實施,它仍然顯示什麼壓縮或解壓技術看似。
如果 PDCP 配置為 沒有壓縮 它將送IP小包,不用壓縮,它根據它的配置將壓縮小包由上層並且附有a PDCP 倒栽跳水和送小包。它使用更低的層數提供的服務稱Radio鍵路控制(RLC)。
PDCP 倒栽跳水包括二個領域: PID和PDU類型。
PDU類型 領域表明PDU是否是數據PDU或順序編號PDU。
PID 領域價值表明倒栽跳水 壓縮協議 鍵入使用的和小包類型或CID。
每個PS域的無線接入承載(RAB)都和1個RB相關聯,每個RB又和1個PDCP實體相關聯。根據RLC模式的不同,每個PDCP實體可和1個或2個RLC相關聯,1個PDCP可和2個非確認模式/透明模式的RLC實體(1個上行和1個下行)或1個確認模式(AM)RLC實體相關聯。PDCP可使用1種減多種壓縮演演算法(RFC 2507和RFC3095,當前只使用RFC2507),也可不使用壓縮演演算法。
在實現PDCP功能時,可將PDCP分為2個子模塊:PDCP控制部分,主要完成對PDCP控制服務接入點的處理,通過PDCP和RRC介面發送原語,併產生、配置和刪除PDCP實體,RRC給PDCP配置所有首部壓縮所需參數,並把PDCP和RAB、RB關聯起來;二是PDCP用戶部分,主要完成從RB接收數據,在上行鏈路上,壓縮IP分組數據包首部,然後發送到相應的實體;在下行鏈路上,PDCP從RLC接收首部壓縮數據,進行解壓縮後傳送到上層。
PDCP實現的功能有:一是在發送方或接收方的PDCP實體中IP數據流的頭壓縮和解壓縮。頭壓縮是針對特定的網路層、傳輸層或上層協議組合。當一個PDP上下文被激活時需知道網路層協議,PDCP可以通過PID值標識頭壓縮協議的不同類型。PDCP配置由UTRAN設置;用戶數據的傳輸,這個功能被用於在PDCP服務的用戶之間的數據匯聚。PDCP實例被配置成功后可進行數據傳輸,在上行鏈路數據傳輸過程中PDCP收到RABM發送的數據,根據配置信息將數據組裝成PDU以原語形式發送給RLC。在下行鏈路數據傳輸過程中PDCP收到RLC送來的數據后將數據組裝成PDCP SDU發送到RABM實體;如果PDCP應用於SRNS重定位,則PDCP需要保存對於RB的SDU序列號。只有當RLC配置為確認模式(AM)且順序傳輸時才支持無丟失SRNS重定位。雖然RLC提供可靠的數據傳輸服務,但是當SRNS重定位時並不能保證傳輸的可靠性,所以PDCP在SRNS重定位時需要保存PDCP序列號以避免數據丟失。
分組數據匯聚協議(Packet Data Convergence Protocol,PDCP)層屬於無線介面協議棧的第二層,處理控制平面上的無線資源管理(RRC)消息以及用戶平面上的網際網路協議(IP)包。在用戶平面上,PDCP子層得到來自上層的IP數據分組后,可以對IP數據分組進行頭壓縮和加密,然後遞交到RLC子層。PDCP子層還向上層提供按序提交和重複分組檢測功能。在控制平面,PDCP子層為上層RRC提供信令傳輸服務,並實現RRC信令的加密和一致性保護,以及在反方向上實現RRC信令的解密和一致性檢查。
PDCP子層的主要功能如圖1所示。PDCP協議包括以下具體支持的功能:
(1)用戶平面數據的報頭壓縮和解壓縮。
(2)安全性功能:
①用戶和控制平面協議的加密和解密;
②控制平面數據的完整性保護和驗證。
(3)數據的傳輸功能:
①下層重建時,對向上層發送的PDU順序發送和重排序;
②對映射到AM模式的RB的下層SDU進行重排序。
(4)數據包的丟棄。
在LTE系統中,規定PDCP子層支持由IETF(網際網路工程任務組)定義的健壯性報頭壓縮協議(ROHC)來進行報頭壓縮。在LTE中,因其不支持通過電路交換域(CS)傳輸的語音業務,為了在分組交換域(PS)提供語音業務且接近常規電路交換域的效率,必須對IP/UDP/RTP報頭進行壓縮,這些報頭通常用於VoIP業務。
為了解決這個問題,在LTE系統中,設定在激活周期內PDCP子層採用ROHC報頭壓縮技術,在壓縮實體初始化之後,這一開銷可被壓縮成4~6個位元組,即12.5%~18.8%的相對開銷,從而提高了通道的效率和分組數據的有效性。
IETF在“RFC 4995”中規定了一個框架,ROHC框架中有多種頭壓縮演演算法,稱為Profile,每一個Profile與特定的網路層、傳輸層和更上層的協議相關,如TCP/IP和RTP/UDP/IP等。具體的報頭壓縮協議及屬性如表1所示。
報頭壓縮協議可以產生兩種類型的輸出包:
(1)壓縮分組包,每一個壓縮包都是由相應的PDCP SDU經過報頭壓縮產生的;
(2)與PDCP SDU不相關的獨立包,即ROHC的反饋包。
壓縮包總是與相應的PDCP SDU採用相同的PDCP SN和COUNT值;ROHC反饋包不是由PDCPSDU產生的,沒有與之相關的PDCP SN,也不加密。
LTE的安全性是在PDCP層負責的,通過加密(控制平面RRC數據和用戶平面數據)及完整性保護(僅控制平面數據)實現。
1.2.1 加密/解密
在LTE系統中,加密功能位於PDCP實體中,加密對象包括:
(1)控制平面,被加密的數據單元是PDCP PDU的數據部分(未壓縮的用戶面或控制面的PDCP SDU或壓縮的用戶平面PDCP SDU)和MAC—I域(完整性消息鑒權碼)。
(2)用戶平面,被加密的數據單元是PDCP PDU的數據部分。
PDCP實體所使用的加密演演算法和密鑰(KEY)由高層協議配置。一旦激活安全功能,加密功能即被高層激活,該功能應用於高層指示的所有PDCP PDU。PDCP用於加密的參數包括以下2個:COUNT;DIRECTION(傳輸的方向)。
RRC協議提供給PDCP加密功能所需要的參數包括以下2個:BEARER;KEY(控制平面使用KRRCenc,用戶平面使用KUPenc)。
加密是通過對消息和加密流做異或(XOR)運算來實現的,這裡加密流是由基於接入層(AS)導出密鑰、無線承載ID、傳輸方向(上行或下行)以及COUNT值的加密演演算法所生成的。加密僅適用於PDCP數據PDU。控制PDU(如ROHC反饋或PDCP狀態報告)既不使用加密,也不適用完整性保護。
1.2.2 完整性保護
完整性保護功能包括完整性保護和完整性驗證兩個過程,完整性保護功能僅應用於SRB。用於PDCP實體的完整性保護功能的演演算法和KEY由上層配置。一旦激活安全功能,完整性保護功能即被高層激活,該功能應用於高層指示的所有PDCP PDU。PDCP用於完整性保護的參數包括以下2個:COUNT;DIREC-TION(傳輸的方向)。
RRC協議提供給PDCP完整性保護功能的參數包括以下2個:BEARER;KEY(控制平面使用KRRCint)。
UE基於上述輸入的參數計算X-MAC,進行PDCP PDU的完整性驗證。如果計算出的X-MAC與MAC-I相同,則完整性保護驗證成功。
控制平面的PDCP PDU和用戶平面的PDCP數據PDU都擁有一個序列號SN欄位,PDCP子層的發送和接收實體就是通過設置和檢查SN欄位來實現PDCPPDU的按序發送和接收。PDCP子層在發送側和接收側分別維護一個重排序窗口的大小是SN範圍的50%。當SN為0~4 095時,即“最大PDCP SN”的值為4 095時,重排序窗口的大小為2 048。
在非切換狀態下,RLC子層位為PDCP子層提供按序提交和重複包丟棄服務。而在切換狀態下,由於UE與兩個eNodeB同時通信,因此其RLC子層無法保證按序提交和重複包丟棄,從而需要由PDCP子層來完成這些功能。
下面以UE側的操作為例說明PDCP子層的發送和接收流程。
1.3.1 上行發送
每一個PDCP SDU對應一個Discard Timer,一旦由高層接收到一個PDCP SDU,即啟動該SDU對應的Discard Timer。同時,進行發送相關的狀態變數更新及加密、完整性保護等,具體過程如圖2所示。
1.3.2 下行接收
在不需重建的普通工作模式下,PDCP實體在接收到RLC AM實體提交的PDCP PDU時,不需執行重排序過程,因為RLC AM在向PDCP實體提交PDCPPDU時,已保證順序遞交。以切換引起的PDCP重建為例,UE先從源eNodeB收到一些PDCP SDU,重建開始后從目的eNodeB接收PDCP SDU(其中部分是源eNodeB轉給目的eNodeB的,並且有一些是源eNodeB已發給UE但尚未得到確認的),因此,UE的PDCP實體收到的PDCP SDU可能是亂序並且有重複的,因此對於RLC AM模式,在重建情況下,PDCP接收實體需對接收的PDCP SDU進行重排序和重複檢測。
綜合上述各種情況,對映射到RLC AM模式的DRB接收處理過程如下:定義接收的PDCP序列號為SN,接收端上一次提交給高層的PDCP SDU序列號為Last_Submitted_PDCP_RX_SN,Reordering_Window為序列號空間50%長度的重排序窗,RX_HFN為接收端當前HFN,Next_PDCP_RX_SN為接收端期待的下一個接收的PDCP序列號,具體流程如圖3所示。
LTE的PDCP層的丟棄功能基於定時器,發射機從高層接收到每一個PDCP SDU時該定時器啟動,當定時器溢出時UE仍未發起PDCP SDU傳輸,那麼丟棄該PDCP SDU。如果定時器被設置到一個合適的值來滿足無線承載所要求的QoS,這一丟棄機制可以防止發射機的過渡延時和排隊現象。具體的處理過程如下:
1.4.1 上行發送
當高層要求PDCP重建時,映射到RLC AM模式的DRB處理過程:
(1)重置上行頭壓縮協議。
(2)在重建過程中,應用高層提供的加密演演算法以及密鑰。
(3)由第一個還沒有確認成功發送的PDCP SDU開始執行重傳,或者按COUNT升序,優先於重傳過程發送所有已關聯了PDCP序列號的PDCP SDU。
PDCP
①按照第一節報頭壓縮中提及的壓縮演演算法,執行PDCP SDU報頭壓縮過程。
②按照安全性功能介紹的加密過程,執行PDCPSDU加密過程。
③將經過上述處理的PDCP數據PDU遞交給下層。
1.4.2 下行接收
當高層要求PDCP重建時,映射到RLC AM模式的DRB處理過程:
(1)處理所有由於下層重建而由下層接收的PDCP數據PDU。
(2)重置下行頭壓縮協議。
(3)在重建過程中,應用高層提供的加密以及完整性保護演演算法。