當前位置:萬佳範文網 >

畢業論文 >論文格式 >

關於無線Mesh網絡信道分配策略的探討

關於無線Mesh網絡信道分配策略的探討

1 引言

關於無線Mesh網絡信道分配策略的探討

近年來,無線mesh 網絡(wireless mesh network,wmn)以其特有的優勢引起了人們的廣泛關注,成為研究的熱點[1]。現有的無線網絡協議(如802.11)提供了若干個互不干擾的信道,即這些信道可以同時在同一個範圍內使用而不會造成干擾[2]。通過在無線mesh 網絡中應用多信道,可以提高系統吞吐量,改善網絡性能。

2 無線mesh 網絡多信道mac 協議

無線 mesh 網絡是一種高容量、高速率和分佈式網絡。它具有多跳、自組織和自癒合的特點[3]。傳統的多跳無線網絡大部分都是由單網卡節點組成的,當前的無線mesh 網絡,基本上也是採用單信道mac 協議,限制了整個網絡數據傳輸速率與網絡容量,不能滿足人們日益增長的需求。在無線mesh 網絡中,通過使用多信道mac 協議,使不同的節點在不同的信道上同時通信,可以有效的減少碰撞和干擾,從而提高系統的吞吐量。

如圖 1 所示,根據不同的硬件平台,多信道mac 協議可分為單接口多信道和多接口多信道。單接口多信道協議節點只有一個接口,任一時刻每個網絡節點上只能有一個活躍的信道。但不同的節點可以同時工作在不同的信道上,這樣就增加了系統容量。如何協調mesh 節點在多信道的條件下工作,是多信道單接口mac 協議的研究重點。而且節點通信時需要來回切換信道,信道切換產生的時延會導致系統性能下降。此類協議的典型代表是mmac 協議和ssch 協議。多接口多信道mac 協議每個網絡節點配置多個接口,每個接口帶有獨立的mac 層和物理層,可使用不同的頻段,節點在這些頻段上的通信是完全獨立的,可以同時進行。dca(dynamic channel assignment)、mup(multi-radiounification protocal)、pcam(primary channel assignment based mac)可歸入這種類型[4]。

3 信道分配策略

本文提出了一種混合信道多信道協議hmcp,它假定網絡中每個節點有m 個接口(m≥2),但每個節點的接口總數始終少於信道總數。假設節點上有f(1≤f<m)個接口為“固定的”接口,分配給這些接口的信道也是固定的。節點上固定信道是基於平衡兩跳範圍內鄰節點的固定信道來分配的。其餘的信道則動態的分配給其他m-f 個接口,這些接口稱為“可換接口”,這些信道間是可以相互切換的。任何節點間的通信都必須在固定信道上進行,因為這樣才能保證節點能夠監聽到消息。如果節點s 想要給節點d 發送消息,首先節點s 會檢測它是否與節點d 共享一條固定信道。如果是,節點s 會在此接口連接的固定信道上發送消息給節點d。如果兩個節點不在同一條固定信道上,節點s 則需要通過可換接口切換到節點d 的一條固定信道上去,然後再開始通信。當鄰節點d 有多個固定收發器的時候,我們可以加一些智能算法讓節點s 檢測使用哪個固定信道與節點d 通信。

hmcp 簡化了需要提前知道信道切換表再在節點間進行協調的過程。每個節點僅僅需要知道與之通信的節點的固定信道即可。混合信道的分配策略也具有信道動態分配的優點,比如説,任何節點能夠在任意時間內訪問任何信道。同時,該協議保持了固定信道分配策略的簡明性,捨棄了可換信道切換策略的複雜性。該信道分配策略的一個主要問題就是增加了廣播開銷。廣播消息需要在節點的所有信道上發送。這樣,這個節點周圍的所有節點都能收到廣播消息。因此,當一個節點要發送一條廣播消息時,它會通過固定接口發送一條廣播消息的副本到固定信道上。同時,它一個一個發送廣播消息的副本到可換接口的各個信道上。

這在發送廣播消息的時候會帶來時延。

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 由這條路徑上不同節點間處理和傳輸數據包的時間決定,而不是由傳播時延決定。

多跳路徑的rtt 用ping 命令來測量,ping 命令功能是發送icmpecho 數據包[5]。本文將基於hmcp 多跳路徑的rtt 與單信道下多跳路徑的rtt 進行比較。由於單信道中沒有信道切換,比較這兩種情況有助於理解信道切換延遲對多跳路徑的rtt 影響。單信道網絡中,不同路徑的rtt 差距只有數毫秒。而在hmcp 實驗中,信道切換延遲決定了路徑的rtt。

首先,在源節點和目的節點間建立一條正向和反向的單一路徑,即從目的節點到源節點的反向路徑與正向路徑中的節點是相同的,只是節點順序為逆序。在這種情況下,無論何時路徑中信道改變,每個中間節點的信道切換延遲決定了rtt。在混合多信道協議中,信道改變意味着路徑上的連續節點監聽着不同的固定信道。對於這種路徑,中間節點在不同信道上(固定信道在下一跳)傳送數據到目的節點並且在不同信道上(固定信道在前一跳)回傳給源節點。由於每個節點上只有一個可換信道接口,因此,多跳信道轉換中,每個中間節點在傳送數據到目的節點和回傳給源節點的過程中不得不切換信道。正如前面所提到的,可換接口每切換一次信道時,在信道上停留的時間至少為chan_min_time(目前設置為20ms)。當可換接口上的其他信道接收到數據幀時,chan_min_time 定時器開始計時。

因此,多跳路徑的rtt 每增加一跳,rtt 要增加chan_min_time*2。因為中間節點要發送數據到目的節點, 可換接口需要連接到下一跳的接收信道, 在這之前要等待chan_min_time。之後中間節點要回傳數據到源節點,需要切換信道到前一跳的接收信道上,這也要等待chan_min_time。因此,每跳rtt 都要增加chan_min_time*2(=40ms)的延遲。表1 顯示的是單信道和多信道下的rtt。在hmcp 實驗中多跳路徑的最小rtt 也符合前面討論的結論。平均rtt ≈ chan_min_time*2(number_of_hops-1),這裏number_of_hops>1。

在hmcp 實驗中,多跳路徑的最大rtt 值稍微偏高,主要是在網絡中廣播hello 信息的原因。每個節點廣播一條hello 消息,這條hello 信息包含了它的固定信道和鄰節點信息。

這些信息每hello_time_interval(默認設置為5s)發送一次。因此,每5s 每個節點都會廣播一條信息出去。在hmcp 中,所有信道都會發送廣播信息。目前,每個節點使用5 個信道,固定接口發送數據包到固定信道上,可換接口發送數據包到其他四個信道上。每hello_time_interval 節點需要在可換接口上切換3 個信道廣播hello 數據包。因此,如果一個數據包在某個信道上要被轉發,此時此信道正在發送廣播消息,那麼這個數據包可能要等3 個信道切換完後才被髮送。因此,在某個節點上,如果數據包排列在廣播信息後發送,數據包可能會有3*20=60ms 的延遲。最大rtt 之所以偏高的原因就在此。由於在一條路徑的不同節點上廣播hello 消息,icmpecho 或者icmpechoreply 可能會延遲。ping數據包每分鐘發送一次,而hello 消息每5 分鐘發送一次。因此,平均每5 個ping 數據包被hello 消息影響一次。其他4 個ping 數據包的rtt ≈chan_min_time*2*(number_of_hops-1),這裏number_of_hops>1。

而多跳路徑的最小rtt 比理論值稍微低點。這也是由於受hello 消息機制的影響。雖然路徑中的節點在可換接口上通過切換信道來廣播hello 消息,但是可能有這樣一種情況發生:

可換接口廣播hello 消息最後切換到的信道正好是發送數據包下一跳的固定信道。在這種情況下,當節點在hello 消息發送完後收到icmpecho 數據包,該節點不需要切換信道來發送icmpecho 數據包到下一跳節點。

5 結論

雖然多信道無線mesh 網絡相對於單信道網絡來説,系統吞吐量以及網絡性能都會有很大的提高。但是多信道無線mesh 網絡中節點上的接口需要頻繁的切換信道,這給系統帶來了一定的開銷。

本文提出了信道分配策略以及討論了信道切換延遲對雙接口多信道無線mesh 網絡性能的影響。首先,本文給出了信道分配和降低信道切換延遲的策略,接着,實驗仿真了信道切換延遲對往返時間的影響,本文將數據流在hmcp 網絡與單信道網絡中傳輸的rtt 進行比較。實驗仿真結果表明,信道切換延遲決定了數據流的往返時間,其中廣播消息對往返時間也會有一定的影響。

  • 文章版權屬於文章作者所有,轉載請註明 https://wjfww.com/biye/geshi/w4qrm3.html
專題