陳曦 吳濤 張楠
摘要:本文探討了無線網絡教學中存在的問題,提出在教學中以OMNeT++仿真軟件作為實踐手段,并以無線局域網中常見的隱藏節(jié)點問題為案例,介紹了OMNeT++在WLAN教學中的應用。案例分析表明OMNeT++可直觀、深入地幫助理解無線網絡協(xié)議的宏觀流程和工作原理。
關鍵詞:無線網絡;無線局域網;網絡仿真;OMNeT++
中圖分類號:G642.41 文獻標志碼:A 文章編號:1674-9324(2016)47-0157-02
一、引言
以WLAN技術為代表的無線網絡技術逐漸成為計算機網絡教學和研究的熱點。據思科公司報告,WiFi將于2016年占據一半以上的互聯(lián)網總流量。無線網絡教學在網絡工程專業(yè)課程中所占的比例和重要性也逐漸提高。無線網絡由于采用了無線電波作為傳輸介質,沒有直觀的有線鏈路,相對抽象,學生難以直觀地理解無線網絡的拓撲結構,造成了學習上的障礙。為克服這一問題,本文研究將OMNeT++在無線網絡教學中的應用。特別地,為了闡述的方便,本文將著重討論OMNeT++在無線局域網WLAN教學環(huán)境下的應用,以展示OMNeT++在教學上的優(yōu)勢和普適性。
二、OMNeT++在WLAN教學中的應用
OMNeT++是開源的、基于組件的模塊化開放網絡仿真平臺,同NS-3,OPNET和JavaSim等仿真平臺相比,OMNeT++可運行于多個操作系統(tǒng)平臺,可以簡便定義網絡拓撲結構,具備編程、調試和跟蹤支持等功能。本節(jié)將以WLAN教學中的一個重點問題——隱藏節(jié)點問題為案例,結合筆者在實際教學中設計的實驗,闡述OMNeT++在WLAN教學中的應用。本實驗的目的為:在包含隱藏節(jié)點的WLAN內,分別使用CSMA/CA和RTS/CTS協(xié)議,理解RTS/CTS解決隱藏節(jié)點問題的原理。限于篇幅,并為了闡述的方便,本節(jié)僅涉及在隱藏節(jié)點情況下使用CSMA/CA,且與實際教學中的實驗相比有所簡化。在實踐教學過程中,要求學生在理解理論的基礎上利用OMNeT++進行仿真實驗,并形成實驗報告,具體步驟如下:
1.完成網絡拓撲結構的設計:大部分仿真實驗的網絡拓撲結構均可使用OMNeT++的標準模型庫inet庫提供的模型通過拖拽的方式搭建。本案例是驗證性實驗,拓撲結構相對簡單,如圖1所示。其中h1和h2為WLAN的客戶站,使用inet的WirelessHost模型;ap為WLAN的無線接入點,使用AccessPoint模型;channelControl為信道控制模塊,用于定義WLAN使用的頻段、節(jié)點的無線發(fā)射功率等物理層參數,使用ChannelControl模型;configurator為IP地址配置模塊,使用IPv4NetworkConfigurator模型。
2.編寫INI文件:用于配置網絡業(yè)務和仿真參數。INI文件配置的主要業(yè)務為:h1和h2相互發(fā)送ping數據報,接入點ap將收到的ping數據報根據IP地址轉發(fā)給目的節(jié)點。從拓撲結構可以看出,藍色的圓圈標示了節(jié)點的無線信號覆蓋范圍,h1和h2相互不在對方的覆蓋范圍,互為隱藏節(jié)點;ap均在h1和h2的覆蓋范圍,因此可以收到并轉發(fā)來自h1和h2的幀。當使用CSMA/CA協(xié)議的時候,h1和h2由于監(jiān)聽不到對方,在接入網絡信道的時候,可能產生沖突,這時ap收到的來自h1和h2的幀可能發(fā)生碰撞,造成幀接收失敗。
3.開始仿真:在完成上述兩個步驟之后即可開始實際仿真了。仿真中包含兩個重要的窗口:動畫窗口和事件日志窗口。動畫窗口以動畫的形式直觀地展示了數據幀的發(fā)送過程,從宏觀上體現了協(xié)議的工作流程。如圖1所示為動畫窗口,節(jié)點ap正在向h1和h2發(fā)送ACK幀。從動畫窗口中,可清楚地看到數據幀的流向及當前正在發(fā)送數據的節(jié)點(圖中紅色方框所示)。在仿真的過程中還有以文本方式記錄仿真流程的事件日志窗口。動畫窗口提供了一個協(xié)議流程的直觀界面,而事件日志窗口則為理解和分析協(xié)議提供了有力的工具(限于篇幅,這里沒有給出)。事件日志窗口中主窗口藍色字體為事件名(包括事件編號和發(fā)生時間),接續(xù)的黑色文字是對事件的詳細闡述。在教學過程中,筆者會從事件日志中提取關鍵事件的編號,要求學生配合觀察動畫窗口,對關鍵事件進行整理和分析,形成關鍵事件表,作為實驗報告的一部分,以加深對協(xié)議原理和流程的理解。如在隱藏節(jié)點情況下使用CSMA/CA,在本案例的關鍵事件表中,學生可清楚地看到在Event #32發(fā)生了沖突,從而理解CSMA/CA協(xié)議并不能處理隱藏節(jié)點問題。
4.根據關鍵事件表,完成簡答題,理解協(xié)議原理:上述步驟(3)使學生明白了發(fā)生了什么事件,如Event #32發(fā)生了數據幀的碰撞,至于為什么會發(fā)生這些事件,還需要學生根據課本的理論知識,回答簡答題,深入理解協(xié)議原理。本案例可設計的問題如下所示:(a)請闡述Event #32發(fā)生碰撞的原因。請根據Event #33說明,沖突的發(fā)生對下次發(fā)送數據幀的幀間間隔有何影響(提示:根據課本理論知識,變成了那種幀間間隔)?(b)請闡述Event #35中Timeout事件的含義。根據你的理解,為什么會發(fā)生Timeout時間?
三、結束語
綜上所述,案例分析表明OMNeT++可直觀、深入地幫助理解無線網絡協(xié)議的宏觀流程和工作原理。筆者在無線網絡相關教學中使用OMNeT++網絡仿真軟件,取得了較好的教學效果。
參考文獻:
[1]謝希仁.計算機網絡[M].第六版.北京:電子工業(yè)出版社,2013:336-349.
[2]Matthew S.Gast.802.11 Wireless Networks:The Definitive Guide,Second Edition[M].Sebastopol,CA:O'Reilly,2005:29-30.
[3]András Varga.The Omnet++ Discrete Event Simulation System[C].European Simulation Multiconference.Prague,Czech Republic:ESM,2001:1-8.
[4]Klaus Wehrle,Mesut Günes,James Gross. Modeling and Tools for Network Simulation[M].Berlin Heidelberg:Springer-Verlag,2010:15-34.
[5]陳敏.OPNET網絡仿真[M].北京:清華大學出版社,2004:1-8.
[6]H. Y.Tyan,C.J. Hou.Javasim:A Component-based Compositional Network Simulation Environment[M],2001:5-7.