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的行為
- 從RRC idle要初始化進行傳輸
- RRC Connection Re-establishment,RRC連線的重建
- Handover,基地台之間的Handover
- 在RRC Connected狀態時,有Downlink資料要傳輸,卻需要Random Access,
- 在RRC Connected狀態時,有Uplink資料要傳輸,卻需要Random Access,例如例如 UL synchronisation不同步或在PUCCH缺少Service Request資源時。
- 在作定位時,例如 需要Timing Advance資訊時。
- Contention based (適用於前五項event);
- Non-contention based (僅適用於3,4,6 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。
LTE Random Access Procedure
LTE的Random Access有分競爭(Contention-based)跟非競爭(contention-free),差別在於競爭是由UE自己隨機使用Preamble發起,,而非競爭則是eNodeB會先指派preamble才做UE的random access,所以就沒有碰撞的問題。
Contention-based Random Access
![](file:///C:/Users/Daniel/AppData/Local/Temp/enhtmlclip/LTE%20random%20Access.png)
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。
你好,我想請問 eNodeB paging UE 後,執行的 random access 是屬於 contention free 的 random access 嗎?
回覆刪除因為我想知道 paging 一個 UE,是否能保證他可以成功建立 RRC 連線。
謝謝!
正廷你好,基本上Paging是否成功,會牽涉到幾個原因,是否方便等我寫篇文章來解釋?
回覆刪除好啊,真是太感謝你了!
回覆刪除您好,
回覆刪除我想請問在做TA(Timing Advance)update的時候,雖然是MAC層之間在做的事情,
但是在RRC層完全無法有任何線索得知此時可能正在做TA update的動作嗎?
謝謝~~~
Kimmy你好
回覆刪除關於Timing Advance,我不太了解什麼是Timing Advance,我找時間研究一下再幫你確認跟RRC層的互動好嗎?
您好,
刪除謝謝你的幫忙,
我目前也在研究中,有新的想法再與您一起交流!
不客氣,我會將TA的部分列入study:)
刪除