弋改珍
Ethernet已經(jīng)成為局域網(wǎng)的事實(shí)標(biāo)準(zhǔn),它在局域網(wǎng)市場上的占有率超過90%。隨著計(jì)算機(jī)價(jià)格的下降,組建并運(yùn)行局域網(wǎng)不是一件非常難的事情。然而,在網(wǎng)絡(luò)教學(xué)中,如何去體會和理解局域網(wǎng)中協(xié)議的運(yùn)行機(jī)理不是一件容易的事情。
網(wǎng)絡(luò)仿真是一種使用軟件模擬實(shí)際網(wǎng)絡(luò)的運(yùn)行,跟蹤記錄網(wǎng)絡(luò)運(yùn)行過程中的各種參數(shù),對不同類型的數(shù)據(jù)進(jìn)行分析,得出網(wǎng)絡(luò)性能的評估結(jié)果的方法。網(wǎng)絡(luò)仿真工具多種多樣,其中應(yīng)用較為廣泛的是NS2[1](SimulationNetworkversion2)。
1.NS2 的特點(diǎn):(1)采用面型對象、離散事件驅(qū)動的仿真方法,便于對實(shí)際網(wǎng)絡(luò)建模,仿真效率高,系統(tǒng)易于擴(kuò)展。(2)采用兩種語言即C++和Otcl,兼顧仿真效率和系統(tǒng)建模的靈活性??梢允褂肙tcl進(jìn)行仿真場景配置,采用C++編寫網(wǎng)絡(luò)組件擴(kuò)充系統(tǒng)的仿真能力。(3)支持802.3Mac協(xié)議;可生成指定的業(yè)務(wù)流;支持鏈路失敗、出錯(cuò)處理。(4)仿真結(jié)果使用NAM進(jìn)行動態(tài)顯示。
2.Ethernet 仿真原理
LAN連接實(shí)現(xiàn)網(wǎng)絡(luò)協(xié)議棧中低三層的功能:邏輯鏈路層(LL)、介質(zhì)訪問控制層(MAC)、物理層。
物理層有兩個(gè)仿真對象:Channel和Classifier/Mac。Channel仿真共享介質(zhì),并在發(fā)送過程中支持MAC對象的介質(zhì)訪問機(jī)制;接收時(shí),Classifier/Mac負(fù)責(zé)將復(fù)制包傳送給接收的MAC對象。
MAC依賴物理層的功能完成載波偵聽、沖突檢測和沖突避免等功能,CSMA/CD的所有功能都在MAC對象中實(shí)現(xiàn)。
鏈路層實(shí)現(xiàn)排隊(duì)和地址解析。Queue實(shí)現(xiàn)發(fā)送隊(duì)列機(jī)制,LL對象實(shí)現(xiàn)地址解析。
每個(gè)局域網(wǎng)中有一個(gè)默認(rèn)的LanRouter對象,該對象在局域網(wǎng)初始化時(shí)被創(chuàng)建。對于LAN上的每一個(gè)節(jié)點(diǎn),鏈路層對象(LL)有一個(gè)指向LanRouter的指針,它能為局域網(wǎng)上發(fā)送的每個(gè)包找到目的節(jié)點(diǎn)[2]。
根據(jù)NS2仿真所使用的語言,仿真分為解釋層和編譯層。解釋層用來配置仿真場景及參數(shù);編譯層用來實(shí)現(xiàn)仿真元素,如物理層、鏈路層、MAC協(xié)議等。
1.配置網(wǎng)絡(luò)場景
圖1構(gòu)架了一個(gè)總線型的以太網(wǎng),總線上共有0-7號站點(diǎn),總線帶寬為10Mb,延時(shí)為30ms,0號節(jié)點(diǎn)為發(fā)送者,6號節(jié)點(diǎn)為接收者。在二者進(jìn)行通信的過程中,分別設(shè)定延時(shí)為15ms、20ms、25ms、30ms、35ms、40ms時(shí),改變其帶寬,分別為2Mb、4Mb、6Mb、8Mb、10Mb、12Mb、14Mb,來分析時(shí)延、帶寬與吞吐量之間的關(guān)系。仿真時(shí)間4.5秒。
圖1Ethernet 拓?fù)鋱D
2.仿真結(jié)果分析
仿真結(jié)果以兩種形式給出,一種是使用NS提供的動畫軟件NAM,可以動態(tài)地演示局域網(wǎng)通信的整個(gè)過程。
由于LAN只實(shí)現(xiàn)了OSI參考模型的低三層功能,缺少傳輸層和應(yīng)用層。在仿真LAN時(shí),為了仿真數(shù)據(jù)包在LAN中的傳送過程,仿真實(shí)例中加入了9號節(jié)點(diǎn),它具有傳輸層功能,作為0號節(jié)點(diǎn)和6號節(jié)點(diǎn)通信時(shí)的數(shù)據(jù)源。
第二種仿真結(jié)果是以trace文件形式給出。
圖2 吞吐量隨時(shí)延、帶寬的變化情況
仿真結(jié)束后,使用grep和gawk數(shù)據(jù)處理工具對trace文件中的數(shù)據(jù)進(jìn)行處理,得到網(wǎng)絡(luò)吞吐量隨時(shí)延和帶寬的變化情況如上圖2所示。
從圖2可以看出,當(dāng)總線上延時(shí)和帶寬分別為10Mb、30ms不變時(shí),0號給6號傳送數(shù)據(jù),當(dāng)設(shè)定延時(shí)不變時(shí),隨著帶寬的增大,吞吐量會隨之增加;但是當(dāng)帶寬的值增加到超過總線上總帶寬時(shí),吞吐量保持不變;當(dāng)設(shè)定帶寬值不變時(shí),網(wǎng)絡(luò)的吞吐量隨著延遲的增加大而減小。
NS2已經(jīng)成為一個(gè)廣泛應(yīng)用的網(wǎng)絡(luò)仿真工具,其中集成了大量典型的有線、無線甚至衛(wèi)星網(wǎng)絡(luò)下各個(gè)層協(xié)議,同時(shí)NS2研究者及用戶又在對NS2進(jìn)行不斷的修改和完善。NS2的這種開放性,使得NS2在教育和研究方面有著廣泛的應(yīng)用。
本文使用NS2仿真Ethernet網(wǎng)絡(luò)的通信過程,特別是使用NAM工具動態(tài)演示了Ethernet的通信原理。通過演示,可以直觀地看到網(wǎng)絡(luò)協(xié)議的行為,了解各種環(huán)境或者因素對網(wǎng)絡(luò)帶來的影響。為了進(jìn)一步深入研究,本文通過相關(guān)工具對仿真結(jié)果進(jìn)行分析,給出網(wǎng)絡(luò)吞吐量與時(shí)延、帶寬之間的關(guān)系。研究的步驟和結(jié)果對于仿真技術(shù)在網(wǎng)絡(luò)課程教學(xué)中的應(yīng)用具有一定的借鑒作用。
[1]徐雷鳴.NS2 與網(wǎng)絡(luò)模擬[M].北京:人民郵電出版社,2006,11.
[2]Kevin Fall.Thens Manual(for merlyns Notes and Documents)[OL].2012.