張新華
(太原大學(xué)外語師范學(xué)院,山西 太原 030012)
?
基于Linux AdHoc網(wǎng)絡(luò)MIPv6方案的實(shí)現(xiàn)
張新華
(太原大學(xué)外語師范學(xué)院,山西 太原 030012)
摘要:給出基于自組織網(wǎng)的Linux系統(tǒng)上MIPv6協(xié)議的執(zhí)行方案和關(guān)鍵技術(shù)的改進(jìn)方法,并設(shè)計出執(zhí)行MIPv6協(xié)議的框架,提出了協(xié)議執(zhí)行程序需采用的關(guān)鍵技術(shù).然后,對移動性的切換延時問題進(jìn)行分析,降低了系統(tǒng)延時.最后,建立實(shí)驗(yàn)場景,對移動切換的性能進(jìn)行研究.通過對比延時數(shù)據(jù),驗(yàn)證了改進(jìn)后的方案是正確且可行的.
關(guān)鍵詞:自組織網(wǎng);MIPv6;雙網(wǎng)卡技術(shù);Linux
自組織網(wǎng)是由一組可相互通信的移動節(jié)點(diǎn)組成的一種自主系統(tǒng).節(jié)點(diǎn)間的通信不必依賴于固定的基礎(chǔ)架構(gòu).當(dāng)2個節(jié)點(diǎn)彼此無法直接通信時,數(shù)據(jù)會經(jīng)過中間節(jié)點(diǎn)搭起的路徑進(jìn)行傳輸[1].隨著互聯(lián)網(wǎng)的不斷發(fā)展和移動范圍的不斷擴(kuò)大,人類對通信的要求越來越傾向于移動性.將MIP添加到自組織網(wǎng)已經(jīng)是一種普遍趨勢.筆者對通信能從一端到另一端的MIPv6協(xié)議展開探討.其擴(kuò)展性能帶來安全性和移動性,全世界范圍內(nèi)MIPv6逐漸被用來取代IPv4作為下一代網(wǎng)絡(luò)協(xié)議.MIPv6協(xié)議為IP路由提供一種機(jī)制,每個移動節(jié)點(diǎn)有2個地址:靜態(tài)本地地址和動態(tài)轉(zhuǎn)交地址.如此一來,在不對上一應(yīng)用層進(jìn)行調(diào)整的情況下,就能便于移動節(jié)點(diǎn)連接到具有永久本地IP地址的任何鏈路上進(jìn)行切換.
標(biāo)準(zhǔn)的MIPv6協(xié)議只適合單跳接入,對多跳自組織網(wǎng)不適用[2].鑒于此,筆者將MIPv6協(xié)議與自組織網(wǎng)相結(jié)合應(yīng)用在Linux系統(tǒng)上.為了實(shí)現(xiàn)多跳移動切換,對切換延時作了比較.同時,提出一種方案來降低延時,具體做法是配置雙網(wǎng)卡來降低因掃描數(shù)據(jù)包丟失情況所導(dǎo)致的延時.通過分析,發(fā)現(xiàn)因移動性導(dǎo)致的延時得到有效降低.
切換是移動通信的一個重要部分,是使移動節(jié)點(diǎn)從一個接入路由器移動到另一個的同時又維持它的互連性.在切換過程中,切換延時、數(shù)據(jù)包丟失率及負(fù)荷是3個重要的性能指標(biāo).切換延時是判斷通信質(zhì)量的關(guān)鍵指標(biāo)[3],因此,降低切換延時是筆者研究的目標(biāo).移動IPv6協(xié)議包括移動檢測、IP地址配置和位置更新.移動檢測和路由收斂是最重要的2個因素.使用鏈路層自動掃描法來快速掃描接入點(diǎn)可使延時達(dá)到最佳.此外,還使用到雙網(wǎng)卡技術(shù)來減少因單網(wǎng)卡配置所致的數(shù)據(jù)包丟失問題.
1Linux系統(tǒng)上MIPv6協(xié)議的框架
MIPv6的執(zhí)行環(huán)境是Fedora-2.6.16系統(tǒng),基本流程框架如圖1所示.
圖1 MIPv6的基本過程框架
基本流程是從主功能開始,然后觸發(fā)流道、mh_listen、icmp6_listen和sigth這4個線程[4].這些線程被阻塞后要等待一些條件.當(dāng)條件滿足后,調(diào)用恰當(dāng)?shù)睦虂磉M(jìn)行處理操作,處理完畢,返回到阻塞狀態(tài).所有這些線程都是無限循環(huán)線程.
mh_listen負(fù)責(zé)處理MN與本地代理和對應(yīng)節(jié)點(diǎn)的連接,包括連接控制信息以及返回路由的交互信息.
具體信息和處理功能如表1所示.
表1 MH_LISTEN和處理功能
MIPv6網(wǎng)絡(luò)層切換算法的執(zhí)行通過mh_listen與icmp6_listen之間的交互來實(shí)現(xiàn).流道線程從tq_list中讀取列表,該表按年月日次序進(jìn)行排列.
(1)鏈路層切換.
此前的實(shí)驗(yàn)中,應(yīng)用“iwconfig”命令來執(zhí)行手動切換.然而,當(dāng)節(jié)點(diǎn)移動時,該方法使用起來十分不便.所以,通過“autolink”的自動掃描程序?qū)Α癷wlist”源代碼作了調(diào)整.該代碼包含用來搜索無線網(wǎng)絡(luò)的“iwlist interface scan”命令.“autolink”程序可獲取到各個子網(wǎng)的質(zhì)量信息,這些子網(wǎng)通過將“l(fā)ink quality”加入到調(diào)研信息里而獲取到理想的通信質(zhì)量.
有一部分iwlist過程會發(fā)生變化,主要表現(xiàn)在以下2方面:使用“while”循環(huán)程序?qū)ψ泳W(wǎng)進(jìn)行定期掃描;利用socket函數(shù)“select”機(jī)制來定期喚醒掃描程序.
增加鏈路質(zhì)量比較,確定當(dāng)前子網(wǎng)的“curessid”、最佳接入子網(wǎng)的“bestssid”、當(dāng)前鏈路質(zhì)量的“curqual”以及最佳鏈路質(zhì)量的“bestqual”.
當(dāng)被掃描到的鏈路質(zhì)量優(yōu)于最佳鏈路質(zhì)量時,“curqual”和“curessid”的值被替換成“bestqual”和“bestessid”.
(2)網(wǎng)絡(luò)層切換.
分析執(zhí)行數(shù)據(jù),切換延時主要包括移動檢測和路由收斂,要優(yōu)化切換延時就需要對這些參數(shù)進(jìn)行調(diào)整[5].
移動檢測:路由器定期發(fā)送路由器通告(RA)以告知其他節(jié)點(diǎn)有關(guān)該子網(wǎng)的信息.移動節(jié)點(diǎn)接收來自路由器的通告并通過對比子網(wǎng)前綴來確定該節(jié)點(diǎn)是否發(fā)生了網(wǎng)絡(luò)層的移動.協(xié)議里的RA消息時段默認(rèn)為10 s.當(dāng)移動節(jié)點(diǎn)切換到新子網(wǎng)上后,為了接收到發(fā)送網(wǎng)絡(luò)信息的新路由器,將該時段縮短至5 s.
路由收斂:當(dāng)移動節(jié)點(diǎn)接入到新子網(wǎng)時,它無法立即進(jìn)行通信,因?yàn)檫@個新子網(wǎng)尚未完成收斂.將“hello”消息和“tc”的默認(rèn)值分別從2 s和5 s調(diào)整到1 s和4 s以縮短收斂時間.
2實(shí)驗(yàn)場景的構(gòu)建和應(yīng)用分析
在測試過程中,采用的系統(tǒng)是Linux內(nèi)核版本和802.11b鏈路層協(xié)議的Fedora-2.6.16系統(tǒng),最大傳輸速率為11 Mbps.拓?fù)浣Y(jié)構(gòu)呈分層形狀.無線網(wǎng)卡是TPLINK TL-WIN322+,傳輸范圍是室內(nèi)為100 m以內(nèi),室外300 m以內(nèi).將網(wǎng)卡設(shè)為自組模式.
(1)性能測試工具.
Ping6:在IPv6環(huán)境下運(yùn)行“ping6”命令來檢測網(wǎng)絡(luò)的連接性.采用“ping6”收集切換和數(shù)據(jù)包延時的統(tǒng)計數(shù)據(jù).
(2)手動切換多跳網(wǎng)絡(luò).
實(shí)驗(yàn)在室內(nèi)進(jìn)行.建立一個分層的自組織網(wǎng),配置有3個子網(wǎng),如圖2所示,有1個移動節(jié)點(diǎn)、1個本地代理、2個接入路由器、2個次要節(jié)點(diǎn)和1個通信節(jié)點(diǎn).當(dāng)移動節(jié)點(diǎn)在3個子網(wǎng)內(nèi)部進(jìn)行切換時,它通過一條二跳路徑維持與AR的通信.相關(guān)信息必須從直接節(jié)點(diǎn)轉(zhuǎn)播給路由器.有關(guān)配置如表2所示.
圖2 多跳網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)
表2 節(jié)點(diǎn)配置
(3)拓?fù)浣Y(jié)構(gòu)的測試.
由圖2可知,移動節(jié)點(diǎn)位于本地代理的一跳范圍外,當(dāng)發(fā)生切換時它可以接入到外部網(wǎng)絡(luò).借助于次要節(jié)點(diǎn),它可以與接入路由器和對應(yīng)節(jié)點(diǎn)進(jìn)行通信.
(4)數(shù)據(jù)測試.
對RA時段和OLSR路由數(shù)據(jù)包的時段進(jìn)行調(diào)整有助于縮短切換延時.由上述測試實(shí)驗(yàn)可知,進(jìn)行時段調(diào)整后,當(dāng)移動節(jié)點(diǎn)從子網(wǎng)1移動到子網(wǎng)2時,切換延時是18 s.當(dāng)從子網(wǎng)2移動到子網(wǎng)3時,延時是19 s.當(dāng)返回至子網(wǎng)2時,延時是20 s,當(dāng)移向本地子網(wǎng)時,延時是19 s.這組延時較之前的要稍短一點(diǎn).在對時段參數(shù)調(diào)整之前,平均切換延時約是20 s.調(diào)整這些參數(shù)并沒有明顯縮短切換延時.
無線網(wǎng)卡的實(shí)際傳輸范圍是室內(nèi)約100 m,室外約300 m.使用“ip6tables”數(shù)據(jù)包過濾工具來斷開與多跳拓?fù)浣Y(jié)構(gòu)的直接連接.
測試實(shí)驗(yàn)在室外進(jìn)行.建立帶二跳分層自組織網(wǎng)的2個子網(wǎng),拓?fù)浣Y(jié)構(gòu)如圖3所示,其中包括1個移動節(jié)點(diǎn)、1個本地代理、1個接入路由器和2個次要節(jié)點(diǎn).移動節(jié)點(diǎn)和各個子網(wǎng)節(jié)點(diǎn)無法直接通信,而需要有次要節(jié)點(diǎn)的協(xié)助.在移動節(jié)點(diǎn)切換過程中,本地代理與移動節(jié)點(diǎn)之間可以保持通信狀態(tài).表3給出了各節(jié)點(diǎn)的配置情況.
圖3 二跳網(wǎng)絡(luò)的自動切換
表3 節(jié)點(diǎn)配置
由表4和圖4的測試數(shù)據(jù)可知,通過對協(xié)議中的默認(rèn)值進(jìn)行調(diào)整,切換延時得到縮短.執(zhí)行過程中,控制信息的時段太短,網(wǎng)絡(luò)負(fù)荷會增加,如此一來,不僅沒法降低切換延時,而且容易導(dǎo)致網(wǎng)絡(luò)擁堵.通過對比二跳切換延時的手動切換和自動切換,可知自動切換延時比手動切換的要長,原因在于在自動切換過程中,無線網(wǎng)卡必須定期掃描網(wǎng)絡(luò).掃描時,接收到的數(shù)據(jù)包被丟棄.當(dāng)掃描時段拉長,數(shù)據(jù)包丟失率就降低,但切換延時會延長.另一方面,掃描時段縮短,切換延時也跟著縮短但數(shù)據(jù)包丟失率會提高.這就要求在切換延時與通信質(zhì)量之間達(dá)到平衡.故筆者提出采用雙網(wǎng)卡機(jī)制來改善這方面的性能.
表4 測試范圍
圖4 修改參數(shù)的測試結(jié)果
3采用雙網(wǎng)卡機(jī)制來改善多跳切換延時
移動節(jié)點(diǎn)之間通過相同的網(wǎng)卡來進(jìn)行通信和掃描,這是影響通信質(zhì)量的關(guān)鍵所在.因此,可以給移動節(jié)點(diǎn)配置2個網(wǎng)卡,一個用于正常通信,一個用于掃描網(wǎng)絡(luò)質(zhì)量,然后將結(jié)果反饋給網(wǎng)卡.通過這些反饋信息,網(wǎng)卡可以作出判斷并進(jìn)行切換.在未受干預(yù)的情況下,將掃描和通信任務(wù)分配給2個相對獨(dú)立的網(wǎng)卡.通過縮短其他網(wǎng)卡的掃描時段,利用實(shí)時意識就保證了通信質(zhì)量并降低切換延時.
圖5 加入雙網(wǎng)卡機(jī)制的測試結(jié)果
對已有網(wǎng)卡配置增加新的網(wǎng)卡工作模式(IP地址、工作頻率),用新網(wǎng)卡識別程序替換“autolink”配置文件里的掃描網(wǎng)卡識別程序.對“autolink”程序進(jìn)行編譯后就可以運(yùn)行網(wǎng)卡.
相關(guān)配置和參數(shù)與前面測試用到的相同.測試結(jié)果如圖5所示.
顯而易見,在添加了雙網(wǎng)卡機(jī)制后,性能得到顯著提高.測試實(shí)驗(yàn)說明系統(tǒng)得到的結(jié)果是正確且可行的.
4結(jié)語
在Linux系統(tǒng)上對MIPv6協(xié)議進(jìn)行了執(zhí)行研究實(shí)驗(yàn).在不同的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)里驗(yàn)證測試實(shí)驗(yàn)的可行性和有效性,提高了影響切換延時的分塊性能.通過構(gòu)建測試環(huán)境,得到延時數(shù)據(jù).對這些數(shù)據(jù)進(jìn)行分析可知,通過調(diào)整參數(shù)有助于縮短切換延時而使協(xié)議達(dá)到優(yōu)化.最后對因單網(wǎng)卡導(dǎo)致的數(shù)據(jù)丟失問題提出采用網(wǎng)卡機(jī)制,改變網(wǎng)卡的工作模式,該機(jī)制證明能有效地解決切換延時問題.
參考文獻(xiàn):
[1] ZHANG Yujun.A Mobile Agent Fault-Tolerant Method Based on the Ring Detection & Backup Chain for Mobile IPv6 Networks[C].Beijing:IEEE International Conference,2011:1-5.
[2] LIU Hai.Research of Mobile Handing off Technology Based on Hierarchical Self-Organizing Network[J].UESTC,2006:34-39.
[3] XIE Gaogang.Handover Latency of MIPv6 Implementation in Linux[C].Beijing:Global Telecommunications Conference,2007:1 780-1 785.
[4] FERRE R V.Improving Fast Handovers for Mobile IPv6:Optimal Crossover Discovery Using Geopaging Routing Tables[C].Barcelona:Vehicular Technology Conference,2005:2 994-2 998.
[5] FANG Yading.Research on Seamless Handover for WLAN with MIPv6[C].Beijing:ITS Telecommunications Proceedings,2006:1 049-1 052.
(責(zé)任編輯向陽潔)
Implementation of MIPv6 Program Based on Linux AdHoc Network
ZHANG Xinhua
(Taiyuan Foreign Language Normal School,Taiyuan 030012,China)
Abstract:This paper proposes the implementation scheme and the key technology improvement of MIPv6 protocol based on Linux Adhoc network.Through the analysis on the problem of mobile switching delay,the proposal reduces the system delay.Through the establishment of experimental scenes,the performance of the mobile switching is studied.Comparison of the delay data verifies the improved scheme is correct and feasible.
Key words:Adhoc network;MIPv6;Dual NIC technology;Linux
作者簡介:張新華(1982—),女,山西太原人,太原大學(xué)外語師范學(xué)院講師,主要從事計算機(jī)應(yīng)用技術(shù)研究.
基金項目:山西省自然科學(xué)基金資助項目(GH-13183)
收稿日期:2014-12-03
中圖分類號:TP301.6
文獻(xiàn)標(biāo)志碼:A
DOI:10.3969/j.issn.1007-2985.2015.02.008
文章編號:1007-2985(2015)02-0033-05