Receiving Channel
第二節、 衍生議題
發展這個管理協定,衍生出一些待解決的議題,第一,如何決定每個存 取點的接收頻道(receiving channel)?第二,如何分配每個存取點傳送時 槽(sending slot)和接收時槽(receiving slot)的比例?第三,如何分配 傳送時槽和接收時槽的順序?第四,進入某個傳送時槽時,要選擇傳送給 那一個鄰居才不會造成不公平?
第一項、接收頻道分配
( Receiving Channel Assignment )
為什麼要選擇接收頻道?因為接收頻道的選擇關係到整個網路的效能,每 個連線(wireless link)使用愈不同的頻道,干擾的情況就愈小,整體網路 效能便能上升。現在我們已經可以來敘述一個存取點如何選擇接收頻道,
其方法如下:
1. 加入網路後,先聽數個週期,但不發送訊息,得知鄰居(Neighbor)使用 頻道的資訊。
2. 選一個較沒有其它存取點在用的頻道當接收頻道(receiving channel)。
3. 廣播自己的接收頻道(receiving channel)。
4. 收到其它存取點的資訊,更新自己的資料表。
5. 每隔一段時間檢查資料表,發現有太多人用同一個頻道當接收頻道 (receiving channel)時,重覆步驟 2~4。
圖 3-2 選擇接收頻道
以上圖 3-2 為例,A、B、C、D、E、F 節點代表的是每個存取點,旁邊 的數字代表接收頻道為幾號頻道,總頻道數為 3,以 ch1、ch2、ch3 表示。
點 C 是剛加入網路的存取點,因為鄰居存取點會在廣播時槽廣播自己的接 收頻道是那一個頻道,當 C 收集一段時間後便能得知存取點 B、D、F 的接 收頻道為 ch1、ch1、ch2,所以選一個較沒有其它存取點在用的頻道 ch3 當 接收頻道,接著廣播自己的接收頻道讓其它存取點知道。因為我們的演算 法是一個以接收端的頻道(Receiver based)做為傳輸頻道的方法,要傳輸
ch1
E F
D
A
B
C ch3
ch2 ch2
??
ch1
Receiving Channel
就必需切換到接收端的接收頻道去傳輸,如果每個接收端的接收頻道均不 同,則每條連線所使用的頻道就會不同,干擾便會大幅降低,這就是為何 我們需要選擇盡量不同接收頻道的原因。
第二項、傳送接收時槽比例分配
( The Ratio of Sending and Receiving Slot )
我們觀察到並不是每個存取點傳送量和接收量總是一半一半,每個存取點 的網路流量特性不同,某些存取點比較傾向接收資料,或總是傳送資料,
所以傳送時間和接收時間的比例我們設計成可變的,因此傳送時槽數 (sending slot)和接收時槽數(receiving slot)變成可動態依照情況而改 變,至於如何分配每個存取點傳送時槽和接收時槽的比例,我們使用單位 時間內需傳送量和需接收量的比例來當傳送時槽和接收時槽的比例。公式 為:
α* S/R < O/I Î S+1,R-1 β* S/R > O/I Î S-1,R+1
α、β為穩定度的參數,S 為目前傳送時槽的數目,R 為目前接收時槽的數 目(包含固定接收時槽 Fixed Receiving Slot),O 為單位時間需傳送量,I 為單位時間需接收量。雖然說無線網狀網路(mesh network)的網路流量穩 定,但如果單位時間需傳送量和單位時間需接收量的比例剛好在某個臨界 數值之徘徊,會造成一下增開傳送時槽,一下子又減少傳送時槽,造成排 程不穩定,這不是我們希望的,我們取α為 1.2、β為 0.8,表示如果比例 沒有超過α倍的話,不會增開傳送時槽,沒有低於β倍的話,不會減少傳 送時槽,避免時槽比例經常性更換。另外有一條規定是,接收時槽最小個
數需保持一個來接收資料,我們使用固式定接收時槽來達成這個規定,因 為這個時槽是不能改變成傳送時槽的,以免其它人永遠無法傳送資料給 它。如此一來,每個存取點便依照著自己的流量特性來分配傳送和接收比 例,達到較好的傳輸效果。
接下來我們探討 I (單位時間內所需接收的量)要怎麼衡量?O (單位時 間內要傳送的量) 可以用上層(IP 層)要求傳送封包的量來衡量,但是 I 並 不能用收到的流量來衡量,因為只能由接收時槽上獲得,無線網狀網路是 高負載的網路,IP 層要求傳輸的量遠大於從接收時槽上接收到的流量,所 以依照我們的演算法,傳送時槽會一直增開,所以我們衡量 I 需用別人想要 送給我們的流量來計算,但是每個存取點並不知道別人有多少流量要傳給 它,所以每個存取點在廣播頻道排程時,要順便將要傳送給其它存取點的 流量含進排程,其它存取點收到時,便能清楚知道別人要傳給自己有多少 流量,用這個一數值來衡量 I,這個演算法便可以讓傳送時槽和接收時槽的 比例正確的分配。
第三項、傳送接收時槽順序分配
( The Order of Sending and Receiving Slot )
當決定了傳送時槽(sending slot)和接收時槽(receiving slot)的比 例,還必需決定傳送時槽和接收時槽要放在週期內的那一個時槽裡,如果 排序的不好,如下圖 3-3,兩個存取點的排程幾乎都一樣時,會造成無法連 線的情況,所以排程也必需詳細考慮。
圖 3-3、排程相同造成無法溝通
初始時,除了廣播時槽(broadcast time slot)外,其它時槽(time slot) 預 設 均 為 接 收 時 槽 (receiving time slot) 包 含 固 定 接 收 時 槽 (fixed
Sij 為鄰居 i 的第 j 個時槽的類型(接收時槽、傳送時槽或固定接收時槽),
Wi 為對鄰居 i 要傳送的量的比重(weight),這個比重通常用封包到達速率 (packet arrival rate)來代表,也可以用其它方式來代表,定義 Oi 為其 它鄰居有多少流量要傳給我的比重,從鄰居發送排程時內含的資料獲得,
Gi 為自已的傳送時槽配合到鄰居 i 的接收時槽的總個數,意義上是說自己 共有 Gi 個時槽可以跟 Ni 進行傳輸,如下圖 3-4,自己和鄰居 1 的 Gi 值為 自己的傳送時槽數配合到鄰居相對應的接收時槽,此例,G1是 2,因為共有 2 個時槽有配合到。反之,Ti 為鄰居 i 的傳送時槽配合到自己的接收時槽 的總個數,根據 Lj,我們便可以選出效果較好的時槽來改變成接收時槽或 傳送時槽。
N1
N1 W1=8
B R F R S R R B F S R R S R
N0: Self
W1/G1=8/2=4 G1=2
圖 3-4、Gi 值的計算
下圖 3-5 為某存取點增開新傳送時槽的範例,N4有資料要傳給 NO,NO有 資料要傳給 N1、N2、N3,我們先對每個鄰居計算 Wi/Gi和 Oi/Ti,現在是 NO
要增開傳送時槽,所以我們考慮第 4、5、7 個接收時槽,L4為衡量第 4 個時 槽的值,改變 L4變成傳送時槽會影響到 N1、N3、N4,這個改變對 N1和 N3是好 的,因為 N1和 N4便可接收到來自 NO的資料,但對 N4是不好的,因為 N4的資 料便無法從這個時槽傳送到 NO,所以 L4的值是 W1/G1加 W3/G3再減 O4/T4,算 出來是 9,我們再計算其它時槽的 Lj,L5是 5,L7為無限大,因為 N0有資料 要傳給 N2,但 N0跟 N2並沒有可溝通的時槽,G2為 0,W2/G2變成無限大,所 以我們目前最迫切的是要能跟 N2溝通,所以改變第 7 個時槽成為傳送時槽
是最好的。我們可以發現並不是只考慮比重(Weight)最重的那一個鄰居,
consider the three receiving slots L5=
∞ S
( The Destination of Sending Slot Selection )
在接收時槽,只需靜待在自己的接收頻道上等待別人傳送資料,但在傳