• 沒有找到結果。

動態頻道分配(Dynamic channel assignment—DCA)

動態分配頻道的問題主要可以分為兩個子問題來探討:(1)換頻道的時機及(2)換到 哪一個頻道。我們利用網路的使用狀況如干擾的情形、負載量及鄰近的無線網路基地 台來作為判斷的依據,因此提出了一個中央控制的機制,架設了一個 DCA Server,

用來收集所有的資訊,並做出判斷。在 4.1 中我們將敘述系統的硬體架構,4.2 則點 出為什麼需要更換頻道,也就是換頻道的時機,4.3 介紹要收集哪些位置相關的資訊 及如何收集。之後便會詳細的介紹整個系統的運作流程。

4.1 系統硬體架構

DCA Server

Switch

AP 1 AP 2 AP 3 AP 4

圖 4.1 系統的硬體架構,DCA Server 是用來管理控制所有的無線網路基地台。

如圖 4.1 我們設置一個中央控管的 DCA Server,來收集所有的資訊,這些資訊定 期由 DCA Server 下令要 APs 回報,回報的資訊包括使用頻道的時間及傳送成功與失 敗的次數。APs 也主動回報 Mobile host 的認證。每經過 CHECK_INTERVAL 的時間 DCA Server 利用這些資訊經過計算之後下達命令給無線網路基地台,無線網路基地 台端需要特定的硬體配合,能夠在上面執行所需的程式來接收 DCA Server 的命令。

這個硬體架構也是現行大多數無線網路基地台佈置的方法,透過無線網路基地台上網 的電腦通常流動性很高,並沒有固定的 IP 位置,因此往往後端會有 DHCP Server 來 分配 IP 位置,甚至有個控管使用權限的主機,我們的 DCA Server 是可以與 DHCP Server 合併的,因此本系統的架構並不會增加或更動現行無線網路基地台的硬體設 施。

在此系統中,每經過 CHECK_INTERVAL 的時間會檢查無線網路基地台是否需 要更換頻道,因此每經過 CHECK_INTERVAL 的時間 DCA Server 會下達命令給無線 網路基地台要求回報所需的資訊,收集所有資訊後由 DCA Server 計算出是否更換頻 道,決定了要更換到哪個頻道之後,再由 DCA Server 將命令下達給無線網路基地台。

因此除了使用者向無線網路基地台註冊的通報由無線網路基地台主動回報,其餘所有 的動作皆由 DCA Server 主動下達命令。

4.2 換頻道的時機

在考慮換頻道的時機前,我們要先了解網路的流量是如何變化以及使用者對網路 的需求,進而評估什麼時候該換頻道,必須多久考量一次。如果使用者只是瀏覽網頁 等小流量的封包,網路狀況稍差(ex:干擾或負載量大),對使用者而言並不會明顯感受 到網路的壅塞,但是當使用者使用即時性的應用(real-time application)時,相對的就會 感受到網路的壅塞,簡言之就是如果只是如果使用者使用爆發式流量(burst traffic)的 應用程式比較能容忍網路壅塞,而使用即時性的應用程式,將對網路的需求較為要 求,往往即時性的應用是長時性的,例如:網路電話及視訊會議等。因此我們可以週 期性的檢查,而週期的長度只要遠比即時性應用一次使用的時間短都可以接受。

在上一章的例子中,考據換頻道的決定因素有干擾及負載量的變化,兩個是必須 一起考慮的,如果干擾大會造成成功傳輸率下降,這代表著花了時間去傳送卻得不到 效果,平白浪費時間,如果負載量過大,則會造成 Mobile host 彼此競爭網路卻都無 法滿足需求,因此必須將干擾及負載量兩項因素都考慮,於是我們希望能夠讓負載量 高的無線網路基地台擁有較高的成功傳輸率,而負載量較低的則可以接受較低的傳輸 成功率,這樣的設計是由於負載量較低的無線網路基地台不需要很高的成功傳輸率就 可以滿足 Mobile host 的需求。所以我們在決定是否需要考慮更換頻道是以一個與負 載量成反比且與干擾成正比的函數來判斷,若此函數算出的值大於某個門檻

(Threshold)則必須考慮更換頻道,然而這樣的設計是不夠的,在上一章的實驗中我們 也發現當兩個無線網路基地台都相互聽的到對方的訊號時,傳輸成功率並無明顯下 降,因此針對這種情況的無線網路基地台需要特別的考量,所以我們將會設計兩階段 的考量,首先針對干擾配合負載量的考量,第二階段則是單純考量是否有多個無線網 路基地台相互聽的到訊號且共用同一個頻道造成整體效能的下降。第一階段與第二階 段的考量將分別介紹於 4.6 及 4.7。

4.3 收集無線網路基地台相互的位置

我們首先要先定義兩個字”Good_Neighbor”及”Bad_Neighbor,Good_Nieghbor 就 是指兩個無線網路基地台相互聽的到對方的訊號,在傳送或接收資料之前,可透過 RTS/CTS 機制相互告知。而 Bad_Neighbor 則是兩個無線網路基地台相互聽不到,但 是訊號有覆蓋相同區域的,在傳送或接收資料之前,無法通知到對方。

考量是否需要更換頻道我們需要知道附近有哪些無線基地台的存在,要考量的不 僅是 Good_Neighbor,還要考慮 Bad_Neighbor,因此我們要在不更動用戶端的方法下 收集無線網路基地台相互的位置。我們不採用無線網路定位系統(如: RADAR[14]…等) 來定出相互位置,因為會佈置無線網路的環境大多是處於建築物內,無線網路基地台 之間往往會受到許多障礙物的阻隔,因而大大影響無線網路基地台相互定位的準確 度,其次若要使用定位系統無線網路基地台的佈置必須相當密集。因此我們希望能夠

透無線網路基地台及使用端被動的提供我們所需要的資料。

4.3.1 收集 Good_Neighbors

既然無線網路基地台可以收發訊號,因此我們利用無線網路基地台的掃描來得知 該無線網路基地台的 Good_Neighbors。

4.3.2 收集 Bad_Neighbors

在 4.3.1 中僅取得 Good_Neighbors。而我們尚且需要 Bad_Neighbors。我們的策 略是觀察使用者在短時間內與哪些無線網路基地台做註冊的動作,來判斷哪些無線網 路基地台訊號有相互覆蓋的區域,這樣一來我們不但可以收集到無線網路基地台彼此 之間覆蓋的關係,更能夠避免掉一些使用者很少使用無線網路的區域,如:廁所、樓 梯間及走廊…等。

4.4 系統運作流程

4.4.1 DCA Server

圖 4.2 為整個 DCA Server 的流程。

(A) Idle waiting: 在設定好一些初始設定及預備動作之後,DCA Server 即進 入 Idle waiting 狀態,在這狀態中會等待兩種事件的發生,(1)timeout event 及(2)socket event。 Timeout event 發生後會檢查是哪一個 timeout event 發 生 , 這 裡 只 有 三 種 事 件 分 別 為 ”CHECK_INTERVAL” , ”GATHER_INFO” 及 ”KICK_MH”. Socket event 有兩種,一個為新的連線,另一個為既有的連線。既有的連線如 果沒有資料可以讀入,代表對方將此連線關閉。

(B) Add an AP info.: 新的無線網路基地台加入之後,我們要取得一些基本 的資訊,首先,先分派(allocate)一塊記憶體位置來存放該無線網路基地 台的資訊,接著送三個命令給無線網路基地台,(1)回報基本資訊,(2) 掃描其他無線網路基地台並回報,(3)回報目前有認證的 mobile host。

(C) Process data: 這部分是從 socket 讀進資料,並根據是何種的回報資料進 行處理。

(D) Clean AP info.: 由於無線網路基地台端,將連線結束,因此清除整理有 關該無線網路基地台的資料。

(E) Get mobile hosts info.: 每 CHECK_INTERVAL DCA Server 會下令要無 線網路基地台回報有認證的 mobile host 資料。當收到回報資料時,DCA Server 會由 Idle waiting 的狀態轉為 Process data。除了使用者資料外,

DCA Server 偶爾會下令要求重新掃描來取得最新的 Good_Neighbors 的 資訊。

(F) Calculate data: 將收集的資訊進行統計及計算,(1)計算是否要為了統計

無線網路基地台之間相關位置而剔除 mobile host,如果有多台符合則選 擇距離上一次執行時間最久的基地台。(2)計算每個無線網路基地台是 否有需要更換頻道。

Is a new connection?

Idle waiting A socket event occur

Add an AP info. Yes

No

Clean AP info.

Is there any data to read?

No Yes

Process data A timeout event occur

CHECK_INTERVAL timeout?

Get mobile hosts info.

Yes

No

GATHER_INFO timeout?

Yes

Calculate data Turn on AP

Kick someone? Kick mobile host KICK_MH

timeout?

No

Yes No

Yes

No

Change channel? Yes Change APs channel

圖 4.2 DCA Server 運作流程圖。

(G) Turn on AP: 我們已將無線網路基地台訊號強度設為 0 來強迫 mobile host 更換無線網路基地台,因此關掉的時間夠了,便把訊號強度調回來。

(H) Kick mobile host: 這裡包含我們將命令無線網路基地台對 mobile host 做解除認證的動作之後,馬上將無線網路基地台的訊號強度設為 0。

(I) Change AP channel: 在(F)中已經算出無線網路基地台是否該更換頻 道,如果有的話,則下令給無線網路基地台。

4.4.2 無線網路基地台運作流程

在無線網路基地台這端的運作流程就非常簡單,無線網路基地台會定時檢查是否 有新的 mobile host 認證,有的話就回報給 DCA Server,否則就是等待 DCA Server 所 下的命令,執行之後將結果回報。

Idle waiting

Report to DCA Server Yes

No Process command

Socket event occurs Timeout event occurs

Is there any new association host?

圖 4.3 無線網路基地台端運作流程圖。

4.5 收集無線網路基地台相互的位置

如同 4.3.1 所述,我們可以利用無線網路基地台來做掃描,而當無線網路基地台 在掃描時扮演為一個 Mobile host,並無法同時扮演無線網路基地台及 Mobile host 兩 個角色,由於掃描的時間很短,因次對使用者造成的影響不大。在實作方面的考量,

則是讓無線網路基地台定期掃描,因為(1)無線網路訊號受到溫度、溼度及障礙物…

等環境的影響,因此訊號所及的範圍變化非常大,在測試此系統的過程中,不到三小 時的時間訊號範圍可以從 100 公尺左右縮減到約 20 公尺。(2)由於佈置無線網路基地 台不一定是一次佈置完成,因此需要定期掃描取得最新的資訊。

要取得 Bad_Neighbors,我們的策略是每經過一段時間(CHECK_INTERVAL)將閒 置的使用者從認證的無線網路基地台剔除,希望它能夠跟別的無線網路基地台做認 證,以取得無線網路基地台相互關係,這相互關係將是一個 N*N 的矩陣 M,N 代表 無線網路基地台的個數,M[a][b]代表由無線網路基地台 a 被剔除後跟無線網路基地台

b 做註冊的次數。在實作方面的考量的話,由於使用者端的驅動程式是根據訊號強度

b 做註冊的次數。在實作方面的考量的話,由於使用者端的驅動程式是根據訊號強度

相關文件