四、 探測訊框策略
4.3 策略
工作站執行探測訊框的策略以圖 4.2 來說明:
(1)工作站執行探測訊框策略的 Shell Script(附錄一),在 Shell Script 中發出三 次 PING Request 封包,目的地為已知 IP 位址的電腦或工作站,如匣道器
(Gateway),並記錄平均回應時間。
(2)假如平均回應時間小於我們所設定網路負載過重的上限時間,則執行步驟(8),代 表網路負載未過重,並不需要浪費系統資源作探測,因此繼續進行步驟(3)。
(3) Shell Script 開始作掃瞄動作,將得到的資訊,記錄在硬體的暫存器中。
(4) Shell Script 從硬體的暫存器中讀出掃瞄所得到的記錄,依序選擇基地台作聯 結(Association)。
(5)與步驟(1)相同測試網路狀態,把平均回應時間乘於 0.3,而前次對此基地台的回 應時間乘於 0.7,將兩者相加當成此次的回應時間,並將此時間及基地台的 BSSID 和頻道等記錄在檔案中。平均回應時間作加權的用意在於預防 PING 的時間誤差較 大,一方面也考慮網路的使用行為模式。
(6)假如我們測試了所有基地台,則進行步驟(7),否則進行步驟(4), 測試下一個基 地台。
(7)依照檔案記錄中的回應時間作排序,並選擇最佳基地台加入。
(8)等待週期性的時間,之後回步驟(1)重新啟動此流程。
(1) 工作站執行探測訊框策略的 Shell Script,在 Shell Script 中發出三次 PING Request 封包,目的地為已知 IP 位址的電腦或 工作站,如匣道器(Gateway),並記錄平均回應 時間。
(2) 假如平均回應時間小於我們所設定網路負 載過重的上限時間,則執行步驟(8),代表網路 負載未過重,否則繼續進行步驟(3)。
(3) Shell Script 開始作掃瞄動作,將得到的 資訊,記錄在硬體的暫存器中
(4) Shell Script 從硬體的暫存器讀出掃瞄得 到的記錄,依序選擇基地台作聯結
(Association)。
(5) 與步驟(1)相同測試網路狀態,並把平均回 應時間,基地台的 BSSID 及頻道記錄在檔案中。
(6)假如我們測試了所有基地台,則進行步驟 (7),否則進行步驟(4), 測試下一個基地台。
(7)依照檔案記錄中的回應時間作排序,並選擇 最佳基地台加入。
(8)等待週期性的時間,之後回步驟(1)重新啟動 此流程。
圖 4.2 : 工作站策略流程圖
第五章 實驗
外我們再針對探測訊框策略作一些實驗,分析及說明 ICMP Echo Request 所測得的時 間與網路負載的相關性及準確性。以下章節會針對實驗的工具以及環境作一些介紹, 線網路卡晶片在 Linux 上實作,我們在待測的工作站上安裝 Linux Redhat8.0,以及 從以下網址下載 Intersil 無線網路卡晶片的支援程式套件,ftp://ftp.linux-wlan.org/pub/linux-wlan-ng/linux-wlan-ng-0.2.0.tar.gz 此套件採用 PRISM-2 晶片組網路卡的系統核心模組驅動程式,它實作了 Intersil HFA384x 晶片組的硬體介面、硬體中斷服務,允許使用者層次的工具軟體從硬體取得 統計與計次資料,除了驅動程式外,還包含了 Wlanctl-ng 元件,這是用來控制目前 執行組態以及改變硬體狀態的管理工具,它可以透過 Ioctl 命令控制驅動程式的內部 初始轉態。
Wlanctl-ng 命令大致上分為三類,以 Dogllreq_為首的命令,如
Dotllreq_Mibset,主要針對 802.11 所規範的資料結構,第二類命令以 P2req_為首,
主要針對 PRISM-2 晶片組,第三類命令以 Inxreq_為首,主要針對 Linux 驅動程式。
由於目前此管理工具並未完全支援所有指令,因此只能使用現有的命令完成一些簡單 的 Shell Script 檔案,如”Scan”,”Scan_Result”, ”Join”等,最後再將這 些功能組合而成完整的 Shell Script 檔案執行動態選擇基地台的策略。以下介紹這 些我們建立的一些 Shell Script 的命令。
.\Join:
wlanctl-ng wlan0 p2req_join bssid=$1 ssid=$2 channel=$3 authtype=opensystem 第一個引數為 wlan0,是 Linux 給予此無線網路卡的介面代號,第二個引數為
p2req_join,是命令工作站作聯結的動作,第三個引數為 BSSID,為基地台實體位址,
第四個引數為 SSID,驅動程式才能夠辨識所欲加入網路的 Beacon 訊框,第五個引數 為 Channel,指定此基地台所在的頻道,最後一個引數為 authtype,為身份認證類型 (authtype),在此實作中指定為開放性認證(opensystem),執行此一命令後,工作站 就會加入指定的基地台。
.\Scan:
wlanctl-ng wlan0 dot11req_scan bsstype=infrastructure
bssid=00:00:00:00:00:00 ssid= scantype=passive probedelay=0
channellist=01:02:03:04:05:06:07:08:09:0A:0B:0C:00:00 minchanneltime=200 maxchanneltime=250
\Scan_result :
wlanctl-ng wlan0 dot11req_scan_results bssindex=$1
第一個引數為 wlan0,是 Linux 給予此無線網路卡的介面代號,第二個引數為 dot11req_scan_results,是命令工作站從硬體暫存器讀出掃瞄的結果,第三個引數 為暫存器指標的索引,由索引可以找到記錄在暫存器中基地台的資料。執行此一命令 後,工作站就會開始讀出暫存器裡存放基地台的資料,並將結果列出。
5.2.2 金麗科技開發用電路板
此電路板是採用金麗科技(RDC)R2020 晶片組成,且有一 PCMCIA 插卡式介面,在 這電路板上的韌體已有 RDC 發展的無線基地台的嵌入式系統程式,支援 Intersil 無
傳送副程式(TX):
時間處理事件(Timer Task):
時間處理事件會週期性計算出基地台的負載並更新負載的資訊,且將基地台相關負載
接下來的實驗將會使用以下的三個批次檔,並可以在 Windows 下執行,PCATTCP 參數 如附錄二所示
在接收端編輯 RX.bat : pcattcp –R
(-R)的參數,代表是接收者
在傳送端編輯 TX.bat:
:begin
pcattcp –i 192.168.30.12 –t –m 2 –x –J goto begin
第一個引數為(-i)後面指定接收者 IP 位置,第二個引數(-t )代表是傳送者,第三個 引數(-m)指定 TCP 連線個數(Multi Client Connect),可利用此項調整整體吞吐量大 小,第四個引數(-x)資料傳完後會停止,第五個引數(-J)依據隨機流量陣列
(Rand_tb1)隨機選擇一組傳送。
在傳送端編輯 TX1.bat:
pcattcp –i 10.0.0.5 –t –c –j [interval]
第一個引數為(-i)後面指定接收者 IP 位置,第二個引數(-t )代表是傳送者,第三個 引數(-c)是連續傳送不會停止,第四個引數(-j)重送封包的間隔時間,可利用此項調 整整體吞吐量大小。
0 1 2 3
1 3 5 7 9 11 13 Min
AP1 AP2
Throughput Mb/s
圖 5.1 : PCATTCP 流量狀態圖
5.3 FTP 下載檔案的測試環境
我們建構如圖 5.2 的環境從 FTP 伺服器下載 466MB 檔案,當下載完成時,比較各 個策略平均的傳送速率。在實驗中都是使用 802.11b 的基地台與網路卡,基地台 AP1,
工作站 STA1,工作站 STA2 使用頻道 1 傳送資料。基地台 AP2,工作站 STA3,工作站
STA4 使用頻道 11 來傳送資料。工作站 STA1,STA3 執行 TX.bat 傳送訊框。工作站 STA2,
STA4 執行 RX.bat 接收訊框。執行 TX.bat 與 RX.bat 的目的在於製造網路流量,使得兩 個不同頻道的基地台 AP1 和基地台 AP2 產生不同負載。而待測的工作站 STA5 將會執 行各別策略的 Shell Script 檔案。
在測試廣播負載策略時,將兩塊 RDC 電路板作為基地台 AP1 和 AP2。在測試探測 訊框策略時,使用市面上的 Cisco Aironet340 和 PCi 無線基地台作為 AP1 和 AP2。
在測試傳統方法的策略時,我們將工作站 STA5 固定聯結至基地台 AP1 或 AP2 來測量 檔案下載的傳輸速率。此外我們在省略測試廣播負載策略和探測訊框策略時每回合都 需要作重新掃瞄的動作,原因有三,一是基地台數量為兩台並不會更動,二是 Wlanctl-ng 掃瞄的命令(dot11req_scan)並非每次都可以準確偵測到兩台基地台,三 是 Wlanctl-ng 與驅動程式的搭配仍有問題,尤其資料正在傳送時又啟動 Wlanctl-ng 命令,造成系統反應不正常,故我們只在第一次執行掃瞄後接著省略此步驟,我們期 望在新版本的驅動程式會修正此問題。
AP1 AP2
STA1
STA2
STA3
STA4
Channel 11 Channel 1
FTP server STA5
圖 5.2 : FTP 下載檔案的測試環境
5.4 FTP 下載檔案的測試結果
從圖 5.3 及表 5.1 的測試結果裡我們可看到廣播負載策略和探測訊框策略大約比 傳統方法多獲得 10% ~ 20%的效能。雖然可以看到策略的效果,但在固定的測試環境,
只能驗證基地台負載此項因素的影響,無法驗証其他影響選擇網路負載的因數,如工 作站數目,傳送速率,基地台間干擾的問題等。此外多獲得的效能,並不如預期的多,
其原因有,頻道須作切換且須重新聯結基地台所耗費的時間,而且當切換頻道時,會 造成原有的基地台聯結斷線,TCP Congestion 機制便會啟動,使得 FTP 下載的吞吐
量會馬上下降,等到成功重新聯結至新的基地台後吞吐量才又上升,導致影響下載的 傳送速度變慢,這個切換基地台的動作,稱之為 Handoff,此外,有時 Handoff 時間 過久,導致 FTP 伺服器等待逾時,而中斷傳輸,使得要重新實驗,這是另一個問題, (scanning),且只做一次 PING 的動作,以下以此 Shell Script 做個簡單的實驗,分
析所測得的時間與網路負載的相關性與準確性。
我們建構如圖 5.4 的環境,從 PC 傳送資料到工作站 STA2,目的在於製造網路流 量,工作站 STA2 在 Windows XP 下執行 RX.bat,PC 端執行 TX1.bat,TX1.bat 可以調 整 PCATTCP 中(-j)的參數,(-j)的參數控制傳送每筆封包與封包間的間隔時間,因此 也造成不同的負載流量經無線路由器至工作站 STA2,工作站 STA1 則執行 PING 的命 令,PING 的目的地為無線路由器來測量封包回覆的時間,亦即測量此時網路負載的 狀態,但此環境只有一台基地台,並無其他訊號干擾,且所有裝置的位置皆擺放靠近,
避免訊號強度衰減,造成傳送速率變慢,因此基地台訊號干擾與傳送速率這兩項影響 網路負載因數不會改變,我們也控制了基地台的負載大小,只剩實際運作的工作站個 數此項變異的因數,雖然在環境中有兩台工作站,但仍無法掌握實際運作的工作站個 數,在這情況下我們調整基地台負載的大小觀察回覆時間與整體網路負載呈現什麼樣 的關係。
STA2 (IP:10.0.0.5)
PC (IP:10.0.0.4) Traffic Generator
WLAN Router 10.0.0.254
STA1 (IP:10.0.0.6)
Ping detect response time
圖 5.4 : 探測訊框策略的測試環境
5.6 探測訊框策略 PING 的準確度測試結果
我們經由觀察工作站 STA2 在 Windows XP 中的網路流量圖可以得知目前的負載流 量以百分比表示,當工作站 STA2 接收到最大的吞吐量為 11Mbps,即會顯示 100%,但 在實際的 802.11b 情況下是不可能發生的。我們觀察到有以下以點現象 :
1.從圖 5.5(a)(b)(c)(d)(e)中可以看到分別在五種流量時,各別作 120 次 PING 的偵測得到的回應時間分佈圖,當流量改變,測得的時間也會改變。
2.在表 5.2 中,第一列為參數(-j)的數值,控制傳送每筆封包與封包間的間隔時
間,數值愈小代表封包間隔較密集,基地台所承受的負載也愈大,可以從表 5.2 第二列中工作站 STA2 吞吐量得知,相對的在表 5.2 第三列可觀察到當基地台負 載變大,平均的回應時間也變長。
3.圖 5.5(b)(c)(d)(e)都較圖 5.5(a)中的點較為稀疏,原因是工作站掃瞄時並沒 有找到基地台,因此沒有把結果描繪上去。 STA2 throughput = 0%
0 STA2 throughput = 15%~25%
圖 5.5(a) : 負載為 0%時 圖 5.5(b) : 負載為 15%~25%時 STA2 throughput = 28%~31%
0 STA2 throughput = 33%~37%
圖 5.5(c) : 負載為 28%~31%時 圖 5.5(d) : 負載為 33%~37%時 探測時間分布圖 探測時間分布圖
STA2 throughput = 38%~42% response time
2.59
第六章 結論
我們提出兩種策略來解決動態選擇基地台的問題,雖然這兩種策略都有實作
我們提出兩種策略來解決動態選擇基地台的問題,雖然這兩種策略都有實作