2012年8月22日 星期三

LTE: Random Access Procedure 隨機存取


Random Access 隨機存取


先說說看什麼是隨機存取(Random Access),字面上的意思就是在時間的任何一個時刻要對傳輸媒體進行存取,實際上所謂的隨機存取一般都隱含了裝置競爭的意義,除非傳輸的媒體事先都安排好(scheduling),否則競爭一個共用傳輸空間一定會遇到的過程,那你會想問,為什麼我用手機不幫我事先安排好呢?簡單的說因為手機太多,空氣中的資源不足,不可能每個人都持續佔有資源。

所以當手機想要存取空中的資源就會有隨機存取的機制。事實上不只是手機,像是wifi,也會有媒體上的競爭,這些裝置在處理隨機存取的方式都不一樣。我們就以LTE的隨機存取作介紹。

LTE Random Access introduction
LTE做Random Access的動機是什麼,就是沒有分配到的空中資源,就必須靠Random Access程序去取得。
基本上很多情況都會觸發此程序,並非RRC idle時才會做Random access,例如以下的狀況都會觸發。

  • RRC idle到 RRC connected狀態,通常是上層有東西要傳輸,例如Trackin Area Update、initial attach。     
  • RRC connected 但是跑到不同的Cell
  • RRC connected 但是uplink synchronization 並沒有建立
上述的狀況都會觸發UE,Random Access的行為

11/23補充:
3gpp 6.300 subcluse 10.1.5詳細寫著下列六種event會觸發Random Access的行為
  1. 從RRC idle要初始化進行傳輸
  2. RRC Connection Re-establishment,RRC連線的重建
  3. Handover,基地台之間的Handover
  4. 在RRC Connected狀態時,有Downlink資料要傳輸,卻需要Random Access,
  5. 在RRC Connected狀態時,有Uplink資料要傳輸,卻需要Random Access,例如例如 UL synchronisation不同步或在PUCCH缺少Service Request資源時。
  6. 在作定位時,例如 需要Timing Advance資訊時。
除此之外Random access procedure 分為兩種
- Contention based (適用於前五項event); 
- Non-contention based (僅適用於3,4,6 event)
所以要特別注意其中的用途


  • 若是要使用Contenion Free,則是要在RRC Connected的狀態,而不能在RRC idle的狀態的情形,所以表示Paging所使用的Random Access必然是Contenion Based的。
  • 使用Contenion Free 時,EnodeB會藉由RRC Reconfiguration 裡面的 rach-ConfigDedicated  去告知UE使用哪一個Preamble。
總結以上的說明,若是EnodeB Paging的狀況下,除了原本可能會有的信號遺失(例如Paging無法送到UE、UE離開現有tracking Area等等)的狀況外,也會產生無法避免的Contention Base的競爭。


LTE Random Access Procedure

LTE的Random Access有分競爭(Contention-based)跟非競爭(contention-free),差別在於競爭是由UE自己隨機使用Preamble發起,,而非競爭則是eNodeB會先指派preamble才做UE的random access,所以就沒有碰撞的問題。

Contention-based Random Access


1: Msg1: Random Access Preamble,在一開始的階段,會有UE會在64個preamble中選出一個,在PRACH裡面做區別,所以意思是說許多UE在同一個enodeB裡面,只有64個選擇,64個裡面又分成四個PRACH configuration index,又只能用四分之一,這也隱含了選到同樣的機率很大,因為通常一個macrocell中會有數百個UE是很正常的,eNodeB收到此訊息之後會解開preamble,之後看RA-RNTI,就可以知道這個訊息是從哪個UE來的,若你不知道什麼RA-RNTI,可以看此篇。

2: Msg2:當EnodeB收到從UE來的Random Access Preamble之後,他會回一個Random Response 給UE,此訊息內包含了分配給UE的RB及MCS,另外也有一個TC-RNTI,此TC-RNTI用作在確認碰撞之前所使用的RNTI,這邊要注意一件事情,這邊所使用的physical Channel為PDSCH,並不是PRACH。

3: Msg3:當UE收到Random Access Response之後,就可以進行首次的傳輸,這個傳輸有可能夾帶RRC connection request,也可能是RRC connection re-establishment,也有可能是handover所產生,等等。

4. Msg4:若是EnodeB收到兩個同樣的preamble的狀況,這時候EnodeB會回應給兩個UE,這時候UE同時會按照EnodeB所分配的RB去傳輸,EnodeB同時在同樣的RB下收到兩個UE的訊息,
  • 假設EnodeB只能判斷其中一個UE的TC-RNTI,那他會回給那個UE,另外一個UE則是會在timer expired之後會判斷競爭失敗,會重新發Random Access Preamble。
  • 若EnodeB兩個訊息都沒辦法判斷TC-RNTI,則兩個都不回,這時候兩個UE就會同時判斷失敗,同時重新做Random Access Preamble。

Contention-Free Random Access


非競爭的Random Access  則是由EnodeB先指派Preamble後再由UE發起Random Access Preamble,所以也不會有所謂的碰撞問題,其他的流程就跟競爭的相同


7 則留言:

  1. 你好,我想請問 eNodeB paging UE 後,執行的 random access 是屬於 contention free 的 random access 嗎?
    因為我想知道 paging 一個 UE,是否能保證他可以成功建立 RRC 連線。

    謝謝!

    回覆刪除
  2. 正廷你好,基本上Paging是否成功,會牽涉到幾個原因,是否方便等我寫篇文章來解釋?

    回覆刪除
  3. 您好,
    我想請問在做TA(Timing Advance)update的時候,雖然是MAC層之間在做的事情,
    但是在RRC層完全無法有任何線索得知此時可能正在做TA update的動作嗎?


    謝謝~~~

    回覆刪除
  4. Kimmy你好
    關於Timing Advance,我不太了解什麼是Timing Advance,我找時間研究一下再幫你確認跟RRC層的互動好嗎?

    回覆刪除
    回覆
    1. 您好,
      謝謝你的幫忙,
      我目前也在研究中,有新的想法再與您一起交流!

      刪除
    2. 不客氣,我會將TA的部分列入study:)

      刪除