當通信網絡中某個節點上的設備發生擁塞時,採取的一個很常見也很重要的策略——丟棄部分網絡層數據包。
例如,在有線網絡中,當應用層進程所生產的數據速率超過了網絡能夠承載的速率,網絡中的路由器會將不能及時發送出去的IP數據包緩存起來,而若在一定時間內仍不能發出,則丟棄部分數據包。
這種丟包可以是被動的,也可以是主動的。TCP協議根據丟包判斷網絡產生了擁塞,啟動擁塞控制機制,通知發送端降低數據包的發送速率來適配網絡的傳輸能力,主動緩解網絡擁塞。
其他傳輸層或應用層協議,如承載VoIP或視頻業務的RTCP(Realtime Transport Control Protocol)協議,則利用丟包檢測,來調整語音或視頻的信源編碼速率。
在空口數據傳輸中,同樣可能出現基站擁塞的情況,例如在下行,從核心網到達基站的數據速率高於1TE空口速率,或在上行,終端應用產生的數據速率高於空口速率。
此時,終端或基站會將數據進行緩存。適當的數據緩存對無線數據傳輸有利,基站可以利用緩存的數據調整空口速率,適配無線信道的波動,進行鏈路自適應和多用戶調度。
但是,如果擁塞持續,而應用層或傳輸層不知情,就不會降低其數據的生產速度,使基站擁塞加重,最終可能導致緩存溢出大量丟包;或是導致應用層或傳輸層沒有及時重傳,造成過長的傳輸延遲。
為使傳輸層能及時啟動擁塞控制機制(採用TCP時),或避免過長的延遲(採用UDP時),或觸發上層的速率自適應,LTE空口在PDCP層提供了丟棄超時包的機制。
在一個無線承載的數據傳輸中,PDCP實體維護一個丟棄定時器(discardTimer),並記錄每個PDCPPDU在發送緩存中的等待時間。對定時器超時後仍未發送出去的PDU,放棄繼續等待並丟棄(如果已經交付給下層,則要通知下層丟棄)。
基站通過用RRC專用信令(欄位PDCP-Config→dis-cardTimer)為終端的每個無線承載指示一個定時器值,用於在上行傳輸中丟棄超時包。下行的超時定時器則由基站自行配置,一般與上行相同。定時器值應合理選擇,讓超時丟包機制防止過長時延或過度緩存。
例如,對VolP的無線承載,可設置丟棄定時器為100ms;而對於普通數據傳輸,如果不希望主動丟包,則可配置該定時器為infinity(無窮大)。