弋改珍
Ethernet已經成為局域網的事實標準,它在局域網市場上的占有率超過90%。隨著計算機價格的下降,組建并運行局域網不是一件非常難的事情。然而,在網絡教學中,如何去體會和理解局域網中協議的運行機理不是一件容易的事情。
網絡仿真是一種使用軟件模擬實際網絡的運行,跟蹤記錄網絡運行過程中的各種參數,對不同類型的數據進行分析,得出網絡性能的評估結果的方法。網絡仿真工具多種多樣,其中應用較為廣泛的是NS2[1](SimulationNetworkversion2)。
1.NS2 的特點:(1)采用面型對象、離散事件驅動的仿真方法,便于對實際網絡建模,仿真效率高,系統易于擴展。(2)采用兩種語言即C++和Otcl,兼顧仿真效率和系統建模的靈活性。可以使用Otcl進行仿真場景配置,采用C++編寫網絡組件擴充系統的仿真能力。(3)支持802.3Mac協議;可生成指定的業務流;支持鏈路失敗、出錯處理。(4)仿真結果使用NAM進行動態顯示。
2.Ethernet 仿真原理
LAN連接實現網絡協議棧中低三層的功能:邏輯鏈路層(LL)、介質訪問控制層(MAC)、物理層。
物理層有兩個仿真對象:Channel和Classifier/Mac。Channel仿真共享介質,并在發送過程中支持MAC對象的介質訪問機制;接收時,Classifier/Mac負責將復制包傳送給接收的MAC對象。
MAC依賴物理層的功能完成載波偵聽、沖突檢測和沖突避免等功能,CSMA/CD的所有功能都在MAC對象中實現。
鏈路層實現排隊和地址解析。Queue實現發送隊列機制,LL對象實現地址解析。
每個局域網中有一個默認的LanRouter對象,該對象在局域網初始化時被創建。對于LAN上的每一個節點,鏈路層對象(LL)有一個指向LanRouter的指針,它能為局域網上發送的每個包找到目的節點[2]。
根據NS2仿真所使用的語言,仿真分為解釋層和編譯層。解釋層用來配置仿真場景及參數;編譯層用來實現仿真元素,如物理層、鏈路層、MAC協議等。
1.配置網絡場景
圖1構架了一個總線型的以太網,總線上共有0-7號站點,總線帶寬為10Mb,延時為30ms,0號節點為發送者,6號節點為接收者。在二者進行通信的過程中,分別設定延時為15ms、20ms、25ms、30ms、35ms、40ms時,改變其帶寬,分別為2Mb、4Mb、6Mb、8Mb、10Mb、12Mb、14Mb,來分析時延、帶寬與吞吐量之間的關系。仿真時間4.5秒。

圖1Ethernet 拓撲圖
2.仿真結果分析
仿真結果以兩種形式給出,一種是使用NS提供的動畫軟件NAM,可以動態地演示局域網通信的整個過程。
由于LAN只實現了OSI參考模型的低三層功能,缺少傳輸層和應用層。在仿真LAN時,為了仿真數據包在LAN中的傳送過程,仿真實例中加入了9號節點,它具有傳輸層功能,作為0號節點和6號節點通信時的數據源。
第二種仿真結果是以trace文件形式給出。

圖2 吞吐量隨時延、帶寬的變化情況
仿真結束后,使用grep和gawk數據處理工具對trace文件中的數據進行處理,得到網絡吞吐量隨時延和帶寬的變化情況如上圖2所示。
從圖2可以看出,當總線上延時和帶寬分別為10Mb、30ms不變時,0號給6號傳送數據,當設定延時不變時,隨著帶寬的增大,吞吐量會隨之增加;但是當帶寬的值增加到超過總線上總帶寬時,吞吐量保持不變;當設定帶寬值不變時,網絡的吞吐量隨著延遲的增加大而減小。
NS2已經成為一個廣泛應用的網絡仿真工具,其中集成了大量典型的有線、無線甚至衛星網絡下各個層協議,同時NS2研究者及用戶又在對NS2進行不斷的修改和完善。NS2的這種開放性,使得NS2在教育和研究方面有著廣泛的應用。
本文使用NS2仿真Ethernet網絡的通信過程,特別是使用NAM工具動態演示了Ethernet的通信原理。通過演示,可以直觀地看到網絡協議的行為,了解各種環境或者因素對網絡帶來的影響。為了進一步深入研究,本文通過相關工具對仿真結果進行分析,給出網絡吞吐量與時延、帶寬之間的關系。研究的步驟和結果對于仿真技術在網絡課程教學中的應用具有一定的借鑒作用。
[1]徐雷鳴.NS2 與網絡模擬[M].北京:人民郵電出版社,2006,11.
[2]Kevin Fall.Thens Manual(for merlyns Notes and Documents)[OL].2012.