李東暉 尹云飛
摘? 要: 提出使用NS2設(shè)計一個802.11協(xié)議的教學(xué)實驗,并介紹了實驗過程。在隱蔽站條件下測量吞吐量和延遲,加深對隱蔽站問題、虛擬載波偵聽機(jī)制和確認(rèn)機(jī)制的理解。測量節(jié)點耗能,并與SMAC協(xié)議進(jìn)行比較,認(rèn)識802.11協(xié)議的耗能性能。該實驗使用TCL腳本語言即可完成,無需使用C++,難度適中,為802.11協(xié)議的實驗教學(xué)提出一種方案,有助于學(xué)生實踐能力的培養(yǎng)。
關(guān)鍵詞: 網(wǎng)絡(luò)模擬; NS2; 802.11; TCL
Abstract: This paper proposes to design an 802.11 teaching experiment on the platform of NS2 (Network Simulator version2), and introduces the experiment process. On the condition of hidden stations, the throughput and the delay are measured, which helps deepen the understanding of Hidden Station Problem, virtual carrier sensing and the acknowledge mechanism. The energy consumptions of 802.11 station and SMAC station are measured respectively and the results are compared to help cognizing the energy consumption feature. The designed experiment can be completed by using TCL scripting language, but not C++, so that the experiment is moderate difficult. This experiment project introduces a new solution to the experiment teaching of 802.11, and is helpful to cultivate students' ability of practice.
Key words: network simulation; NS2; 802.11; TCL
0 引言
IEEE 802.11協(xié)議是一種無線局域網(wǎng)協(xié)議[1],是無線網(wǎng)絡(luò)、無線傳感器網(wǎng)絡(luò)和計算機(jī)網(wǎng)絡(luò)等課程的教學(xué)內(nèi)容。實驗是重要的教學(xué)環(huán)節(jié),實驗可在真實平臺上或者模擬平臺上開展,真實平臺需要設(shè)備投入,而模擬平臺由于有免費的模擬軟件可用,因此不存在購買的問題,免費的模擬軟件在應(yīng)用上也具有較大的靈活性。常用的網(wǎng)絡(luò)模擬軟件有NS2,OPNET,MNET++等,其中NS2[2]具有組件豐富、免費、開源和使用廣泛等特點,能夠滿足一般教學(xué)需要。NS2使用TCL和C++兩種編程語言,其中TCL語言需要花課時介紹。
實驗的重點是觀測802.11協(xié)議的網(wǎng)絡(luò)性能,并將其和隱蔽站問題結(jié)合,隱蔽站問題既是無線局域網(wǎng)的重要問題,也是教學(xué)的難點[3],NS2的802.11組件能夠模擬虛擬載波偵聽機(jī)制,在該機(jī)制開啟和關(guān)閉條件下分別測量吞吐量和延時等,通過比較,加深對隱蔽站問題、虛擬載波偵聽、RTS/CTS機(jī)制和確認(rèn)機(jī)制的理解。實驗的另外一個重點是測量802.11協(xié)議的耗能,并與節(jié)能型的SMAC[4]協(xié)議進(jìn)行比較,理解協(xié)議的工作原理和特點。
1 實驗設(shè)計
1.1 實驗?zāi)康?/p>
設(shè)計802.11協(xié)議的網(wǎng)絡(luò)模擬驗證性實驗,觀察隱蔽站問題,測量吞吐量、延時和耗能。只使用TCL腳本語言實現(xiàn)模擬,難度適中。
1.2 實驗內(nèi)容
⑴ 在NS2模擬平臺下,進(jìn)行網(wǎng)絡(luò)的設(shè)計與模擬;
⑵ 利用NAM動畫演示,觀察網(wǎng)絡(luò)工作過程;
⑶ 在隱蔽站條件下,測量802.11站點的吞吐量和延時;
⑷ 測量802.11站點的耗能。
1.3 實驗設(shè)計
1.3.1 拓?fù)浣Y(jié)構(gòu)
實驗的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1所示,網(wǎng)絡(luò)共包含3個節(jié)點,其中節(jié)點1為目的節(jié)點。在圖1(a)中節(jié)點0和節(jié)點2為源節(jié)點,他們相距較遠(yuǎn),彼此都聽不見對方。在圖1(b)中,僅有節(jié)點0為源節(jié)點。圖1(a)用于觀測隱蔽站問題及網(wǎng)絡(luò)性能,圖1(b)用于觀測耗能。
1.3.2 802.11協(xié)議模擬設(shè)計
NS2網(wǎng)絡(luò)模擬使用兩種編程語言:C++和OTcl,C++語言用于實現(xiàn)網(wǎng)絡(luò)協(xié)議和模擬模型,OTcl語言用于配置網(wǎng)絡(luò)模擬場景和參數(shù)設(shè)置。兩種語言通過類綁定(class binding)機(jī)制相聯(lián)系,如圖2所示,實現(xiàn)802.11協(xié)議的C++類為Mac802_11,與之綁定的OTcl類為Mac/802_11,其成員變量RTSThreshold_,SIFS_和SlotTime_等組成管理信息庫[1],設(shè)置方法如下[5]。
2 模擬結(jié)果與分析
2.1 傳輸性能的測量
網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1(a),無線節(jié)點的主要參數(shù)如表1,網(wǎng)絡(luò)模擬過程如圖3(a)。其中:CBR數(shù)據(jù)流的周期為0.01秒,分組長度為1000字節(jié),數(shù)據(jù)率為100KBps,t0=1秒,t1=2秒,t2=3秒,t3=4秒,t4=20秒。節(jié)點0和結(jié)點2在t∈[t1,t2]秒期間,同時向節(jié)點1發(fā)送CBR數(shù)據(jù)流,導(dǎo)致分組在節(jié)點1發(fā)生碰撞,這種未能檢測出信道上其他站點信號的問題叫作隱蔽站問題[3],802.11協(xié)議使用RTS/CTS機(jī)制解決隱蔽站問題,結(jié)合圖1(a),節(jié)點0發(fā)送分組到節(jié)點1,但在送出之前會先發(fā)送一個RTS分組,其攜帶著發(fā)送端占用信道的信息,包括目的節(jié)點、占用信道的時間等,節(jié)點1若空閑則會接收RTS分組,并立刻回應(yīng)一個CTS分組,這有雙重作用:①通知節(jié)點0發(fā)送分組;②通知節(jié)點2不要發(fā)送分組到節(jié)點1。當(dāng)節(jié)點0收到CTS分組后,開始送出分組到節(jié)點1,而節(jié)點2則不會向節(jié)點1發(fā)送分組,這樣可以避免在節(jié)點1處發(fā)生分組的碰撞。在NS2中,可通過設(shè)置OTcl類Mac/802_11的成員變量RTSThreshold_來模擬RTS/CTS的開啟與關(guān)閉,方法見程序1。
吞吐量的測量結(jié)果如圖4所示。在發(fā)送最初的一小段時間里,由于CBR分組發(fā)送失敗,因此吞吐量為0,之后節(jié)點0向節(jié)點1發(fā)送CBR流,吞吐量穩(wěn)定,約為100KBps,在[2,3]秒期間,節(jié)點0和節(jié)點2同時向節(jié)點1發(fā)送,產(chǎn)生沖突,并導(dǎo)致發(fā)送失敗和延時增加。當(dāng)RTS/CTS關(guān)閉時,出現(xiàn)了大量的丟包現(xiàn)象,吞吐量急劇下降,平均為21.73KBps;當(dāng)RTS/CTS開啟時,丟包現(xiàn)象減少,平均吞吐量為75.92KBps,與RT端到端延時如圖5所示。在[1,2]秒期間,由于沒有沖突,因此延時很小,但在[2,3]秒期間,沖突導(dǎo)致分組重傳現(xiàn)象加劇、延時增加。當(dāng)RTS/CTS分別開啟和關(guān)閉時,平均延時分別為0.52秒和1.93秒,前者比較后者減少了3.71倍,可見,RTS/CTS機(jī)制能夠減少由隱蔽站問題導(dǎo)致的端到端延時。
2.2 站點耗能的測量
本小節(jié)的目的是測量802.11節(jié)點的耗能,并與SMAC[6]節(jié)點的耗能進(jìn)行比較。網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)如圖1(b),無線節(jié)點的主要參數(shù)如表1。網(wǎng)絡(luò)模擬過程如圖3(b)。其中:CBR流的周期∈[1,15]秒,分組長度為1000字節(jié),數(shù)據(jù)率為100KBps,t3=t4≥(NTi +t0)秒,其中N表示送出的CBR分組數(shù)量,Ti表示CBR流量周期。在t∈[t0,t3]秒期間,節(jié)點0向節(jié)點1總共發(fā)送N個CBR分組,節(jié)點2不發(fā)送流量,但會參與SMAC協(xié)議的同步。
節(jié)點耗能的測量結(jié)果如圖6所示,其中SMAC協(xié)議開啟周期性偵聽與睡眠機(jī)制、偵聽時間占比設(shè)為30%。在流量周期大于2秒時,802.11節(jié)點的耗能比SMAC節(jié)點的耗能大,當(dāng)流量周期為15秒時,802.11節(jié)點與SMAC節(jié)點的耗能分別為101.75焦與41.32焦,相差2.46倍,可見,SMAC協(xié)議具有節(jié)能的特點。節(jié)點空閑時間占比如圖7所示,802.11的空閑時間占比接近100%,節(jié)點幾乎處于空閑狀態(tài),而SMAC的空閑時間占比約為40%,節(jié)點多數(shù)時間處于睡眠或發(fā)送(接收)狀態(tài)。
3 結(jié)束語
本文介紹了利用NS2模擬軟件實現(xiàn)802.11協(xié)議的驗證實驗,這個實驗有助于學(xué)生掌握網(wǎng)絡(luò)模擬的方法,理解協(xié)議的工作機(jī)制,認(rèn)識隱蔽站問題、RTS/CTS機(jī)制的作用、以及802.11協(xié)議的網(wǎng)絡(luò)性能,并且有利于培養(yǎng)學(xué)生研究與創(chuàng)新能力。
參考文獻(xiàn)(References):
[1] IEEE Standard for Wireless LAN Medium Access Controland Physical Layer Specification,P802.11[S].IEEE,1999.
[2] 王輝.NS2網(wǎng)絡(luò)模擬器的原理和應(yīng)用[M].西北工業(yè)大學(xué)出版社,2008.
[3] 謝希仁.計算機(jī)網(wǎng)絡(luò)[M].電子工業(yè)出版社,2013.
[4] 李曉維.無線傳感器網(wǎng)絡(luò)技術(shù)[M].北京理工大學(xué)出版社,2007.
[5] The Network Simulator-ns-2[EB/OL]. (2014-12-09)[2018-11-17].https://www.isi.edu/nsnam/ns/.
[6] Ye, W., Heidemann, J., Estrin, D.. An energy-efficient MAC protocol for wireless sensor networks[C]. In: Proc. IEEE INFOCOM, New York, NY,2002.6:1567-1576