關于無線Mesh網絡信道分配策略的探討
這在發送廣播消息的時候會帶來時延。
4 信道切換延遲
當一個節點的接口數目少于信道數目時,信道切換則成為必然。但是,可以通過盡可能的減少無線接口上信道切換的次數來減小信道切換的開銷。實驗中,每個節點有兩個無線接口和5 個信道。其中一個接口連接固定信道,而另外一個接口需要在其余的4 個信道間進行切換。當一個節點上的接口收到一個數據包時,它會檢測需要往哪個信道上發送這個數據包。
如果在固定信道上發送,那么就交付給無線網卡來處理連接固定信道的接口來發送這個數據包。否則,如果數據包在可換接口的某條信道上發送,需要在可換接口上切換到發送數據包的指定信道上發送。它還需要決定何時可換接口切換到指定信道上。如果當收到數據包后需要在不同的信道上進行傳送,則它會在可換接口上不停切換信道到對應信道上,這樣,信道切換帶來的開銷會非常高的。當一個節點要發送多個數據流且這些數據流要經過的下一跳信道不同時這種情況就會發生。此外,如果將一個數據包放在緩存區中等待可換接口切換到指定信道上的時間過長,這種時延也是導致系統性能降低的原因。
4.1 信道切換開銷的降低
本文采取的策略是在決定切換信道前先等待一段時間再在可換接口上切換信道,在這個信道上停留的最少時間是一段固定的時間,這段固定時間用chan_min_time 表示,默認設置為20ms,同時,還限定一個數據包的最大時延。這個策略的細節如下。
一 旦在可換接口上切換到另一個信道時, 那么, 在這個信道上至少停留chan_min_time(默認設置為20ms)。事實上,無論何時收到一幀數據需要在可換接口上傳輸時,它會檢測該幀是否要在可換接口的當前信道上傳輸。這時,有兩種情況可能發生:
(1) 如果當前可換接口連接的信道就是要發送該幀的信道,無線網卡直接發送此幀。這么做的前提是,可換接口上沒有其他幀正在等待發送到其他信道上并且發送此幀的時間開銷沒有超過該信道允許的最大時間(chan_max_time 默認設置為60ms) 。
chan_max_time 為一幀數據在可換接口上的信道隊列中等待被發送的最大時間。
(2) 另一種情況是,如果當前可換接口連接的信道不是要發送該幀的信道,那么,把該幀放到一個緩沖區中,同時啟動一個定時器。定時器運行chan_min_time 后,可換接口可能切換到發送該幀的信道上,新切換過來的信道就會把緩沖區的這幀數據處理掉。
要降低信道切換的時延,可換接口應該花盡可能多的時間在不同信道上發送數據以及盡可能少的空閑時間和信道切換時間。為了降低信道切換的時延,本文約定可換接口上信道間切換最小時間間隔為chan_min_time。這么做是希望在信道上能夠發送更多的數據,但是系統負載會增加。對于一個系統來說,如果一條信道上很輕的負載而其他信道上很重的負載,這是不合時宜的。
4.2 信道切換延遲對往返時間的影響
信道切換延遲影響著兩節點之間路徑的往返時間,往返時間用rtt 表示。由于建立的mesh 網絡節點分布密度相當高,節點之間的傳播時間可以忽略不計。不同路徑的rtt 由這條路徑上不同節點間處理和傳輸數據包的時間決定,而不是由傳播時延決定。