



摘 要 TCP是計算機網絡的最重要協議之一,但由于其實現機理復雜,因此成為計算機網絡教學的難點。提出基于NS2的TCP教學演示,能針對連接建立、確認機制及擁塞控制等關鍵TCP協議實現機理進行分析和演示,增強教學效果。
關鍵詞 計算機網絡教學;TCP協議;NS2;確認機制;擁塞控制
中圖分類號:TP393.01 文獻標識碼:A 文章編號:1671-489X(2012)03-0013-03
Research on Application of NS2 in TCP Protocol Teaching//Wang Xiaofeng, Mao Li
Abstract TCP is one of the most important protocols of computer networks, but as its implementation mechanisms are complex, the TCP teaching has become a difficult point in computer network teaching. The TCP teaching demonstration based on NS2 is presented, which can analyze and demonstrate the TCP protocol’s key implementation mechanisms, such as connection establishment, acknowledgement scheme and congestion control etc., and thus can improve teaching effectiveness.
Key words computer network teaching; TCP protocol; NS2; acknowledgement scheme; congestion control
Author’s address School of Internet of Things Engineering, Jiangnan University, Wuxi, Jiangsu, China 214122
1 引言
Internet作為20世紀人類最偉大的發明之一,已經深入人類社會的各個方面。當前,以Internet為代表的計算機網絡技術得到飛速發展,計算機網絡課程已逐漸成為高校計算機相關專業的一門專業基礎課。計算機網絡教學涉及大量復雜的網絡協議,尤其是作為Internet核心協議之一的TCP協議。為實現在不可靠的IP協議上的可靠數據交付,TCP協議包含了大量復雜的機制[1],這使得初學者感到抽象難懂,因此,TCP協議成為計算機網絡教學的一個難點。
為提升學生對TCP協議的直觀認識,增強學習的興趣與效果,可搭建由物理網絡設備組成的網絡實驗平臺,但這花費成本高、運用不便。鑒于當前網絡模擬技術已得到廣泛研究,各種成熟的網絡模擬工具層出不窮,通過現有網絡模擬軟件,構建虛擬的TCP協議模擬與仿真教學環境,不僅可以增強學生對TCP協議復雜機理的直觀理解,提高學習的興趣與效率,而且可以為教師提供有力的TCP協議教學輔助工具。本文基于經典NS2網絡模擬軟件,提出TCP協議關鍵實現機理(包括連接建立、確認機制以及擁塞控制等)的分析和演示教學方法。
2 網絡模擬器簡介
2.1 網絡模擬技術介紹
在眾多研究計算機網絡的方法中,由于網絡模擬技術具有成本低,實現簡單,使用方便,并能用于研究尚未實施的網絡機制等優點,因此被廣泛應用于網絡研究的每一個角落,各種網絡模擬器也層出不窮[2]。當前網絡模擬器一般都基于離散事件模擬技術實現。所謂離散事件模擬,就是模擬系統的狀態變化在離散模擬時間點上發生,事件的發生使得模擬系統從一個狀態跳轉到另一個狀態。離散事件網絡模擬技術則針對數據包的每一跳轉發都依靠離散事件來刻畫。下面介紹當前比較經典的網絡模擬器。
1)NS2[3]。NS2(Network Simulator 2)是一個單機多協議離散事件網絡模擬工具,由USI/ISI、Xerox PARC、LBNL和UC Berkeley等美國大學和實驗室合作,在DARPA資助的VINT工程研究中實現的模擬工具。NS2有很多特點,比如具有開放的體系結構;可擴展、易配置和可編程的事件驅動模擬引擎;帶有大量協議庫的支持,尤其適合于對基于TCP/IP的網絡進行模擬;支持大規模多協議網絡模擬;提供開放的用戶接口、可視化工具:可動畫顯示網絡模擬過程,圖形顯示數據結果等。NS2是一個完全免費的軟件,在國際上享有很高的學術聲譽,被世界各國的網絡研究者廣泛使用。
2)OPNET。OPNET是美國OPNET Technologies Ins公司的產品,是一個單機的、基于離散事件驅動的網絡模擬器。OPNET的特點包括:支持面向對象的建模方式,并提供圖形化的編輯界面;提供各種通信網絡和信息系統的結構化模擬模塊;具有完善的結果分析器,為網絡性能的分析提供有效而直觀的工具;具有支持各種業務的模型等。目前OPNET是公認的優秀通信網絡、通信設施、通信協議的模擬與建模工具,在全球的通信、電訊、網絡及國防科技產業上已經被普遍采用并受到好評。但是由于是收費的商業軟件,限制了其在研究領域的廣泛應用。
3)SSF[4]。SSF(Scalable Simulation Framework)是一組用來描述離散事件模擬的應用程序接口,它采用DML(Domain Modeling Language)語言來描述網絡模擬應用。SSF具有面向對象、簡潔、功能強大等特點,此外,它支持高性能并行網絡模擬并且在不同的計算環境之間具有可移植性。SSF有好幾個實現版本,包括SSFNet、iSSF(即DaSSF)等。SSFNet采用JAVA實現,是DARPA支持的項目S3(Scalable Self-organizing Simulations)中的一部分,主要支持IP包級別上的細粒度模擬,鏈路層和物理層的協議模型以獨立的組件方式提供。DaSSF采用C++實現,由達特茅斯學院開發,目前被設計為能夠基于MPI運行在分布式內存并行計算機上。
2.2 NS2網絡模擬器
從上述分析看出,NS2是一款非常優秀的開源軟件,并且提供開放的用戶接口以及提供模擬過程的動畫演示及模擬結果的圖形顯示,因此非常適合于計算機網絡教學。本文基于NS2實現TCP協議教學演示。下面是基于NS2的網絡模擬基本步驟分析。
1)基于Otcl腳本語言設置模擬網絡的拓撲結構以及鏈路的基本特性。
2)基于Otcl腳本語言設置協議代理,包括協議綁定和建立通信業務量模型。
3)設置trace對象、NAM對象等。依靠trace以及NAM可以記錄網絡模擬過程中所產生的各種數據。
4)其他的輔助命令的設置,如設定模擬結束時間、各種通信業務量的起止時間等。
5)對1~4步編寫的Otcl腳本用NS2解釋執行,并形成trace、NAM文件記錄。
6)分析trace文件,得出實驗所需數據;或分析NAM文件,動畫演示網絡模擬運行的整個過程。
7)對配置拓撲結構和通信業務量模型進行調整,并重復進行上述模擬過程,直至模擬效果滿意為止。
3 NS2在TCP協議教學中的實例
3.1 模擬應用設置
基于NS2模擬器,設置所模擬的網絡拓撲如圖1所示,共有6個網絡節點,并將Router(0)與Router(1)之間的鏈路設為瓶頸鏈路。Host(0)與Server(0)之間進行UDP數據流的傳輸,這作為背景流量;Host(1)與Server(1)之間進行TCP數據流的傳輸,這作為TCP協議教學的示范應用。設定模擬時間為5秒,其中UDP數據流持續時間為2.5~5.0秒,TCP數據流持續時間為0.1~5.0秒。模擬應用設置的關鍵TCL腳本代碼如圖2所示。
3.2 模擬結果分析與演示
在模擬過程中開啟NS2的trace記錄、NAM記錄以及Queue Monitoring記錄,并進行相應分析與演示。
1)TCP連接建立的分析與演示。圖3中顯示了關鍵的trace記錄,為了能夠便于分析,做了一些精簡(trace記錄中每一跳數據包轉發記錄僅保留enque記錄,刪除deque記錄以及接收記錄)。依靠圖中第1行~第7行、第9行與第11行,可以演示TCP建立連接的3次握手過程。其中第1~3行表明3次握手中的第一個報文,經過三跳數據包轉發到達目的節點,4~6行表明3次握手中的第二個報文,上述2個報文不涉及數據的傳遞,報文字節長度為40。第7、9、11行為3次握手中的第三個報文,該報文采用捎帶應答,伴隨數據傳送一并進行,其字節長度為1 040。
2)TCP確認機制的分析與演示。TCP的可靠傳輸依靠確認機制實現,以圖3中第7~17行、第20行為例,可以演示TCP的確認機制。其中第7~12行,TCP的發送方連續發出2個長度為1 040字節的報文(標號分別為2與3),這兩個報文分別經過三跳數據包轉發到達目的節點;第13行與第14行分別表明,當目的節點分別收到標號為2與3的報文后,發出ACK報文4與5進行確認。
依靠NAM記錄,生成相應的NAM動畫,如圖4所示,可以比較分析有確認機制的TCP協議以及無確認機制的UDP協議的區別,加深學生對確認機制的印象和理解。當NAM動畫演示的模擬時間推進到2.5秒之后,同時出現UDP數據流以及TCP數據流,如圖4所示,可以演示出UDP數據流僅是從Host(0)到Server(0)的單向傳輸;而TCP數據流不僅包括從Host(1)到Server(1)方向的數據傳輸,還包括從Server(1)到Host(1)方向的確認報文傳輸。
3)TCP擁塞控制的分析與演示。依靠Queue Monitoring對Host(1)與Router(0)間的鏈路進行記錄并進行相應處理,獲得整個模擬過程中TCP數據流的發送速率,如圖5所示,依靠該圖演示TCP的擁塞控制過程。在0.1秒,Host(1)開始發送TCP數據流,流量大小逐漸上升,到0.3秒流量達到最大值,這個過程可以演示為TCP協議的慢開始階段。在0.3秒,TCP流量瞬時發送速率達3.66 Mb/s,遠超過Router(0)與Router(1)之間的鏈路帶寬2 Mb/s,因此出現網絡擁塞,于是TCP協議執行擁塞避免的“乘法減小”策略,在0.35秒,TCP流量瞬時發送速率減為2.16 Mb/s,在隨后的過程中,TCP流量發送速率基本維持在2.00 Mb/s。
從2.5秒開始,Host(0)開始發送UDP數據流,并與TCP數據流爭用瓶頸鏈路帶寬,這使得網絡頻繁出現擁塞,TCP協議執行“乘法減小”策略,擁塞窗口多次減少,導致TCP流量發送速率從2.55秒的2.00 Mb/s逐漸減為2.95秒的0 b/s,隨后TCP協議繼續進行慢開始過程,流量大小逐漸增大,直到再次探測到出現網絡擁塞。
4 結論
本文基于網絡模擬軟件NS2,編寫用于TCP協議教學的TCL腳本,并通過NS2的trace記錄、NAM記錄以及Queue Monitoring記錄工具,實現對TCP協議連接建立、確認機制以及擁塞控制等機理的演示教學。通過在TCP協議教學中使用網絡模擬軟件NS2,能讓學生更加輕松地學習網絡理論知識,提升學生的鉆研興趣,并取得良好的教學效果。在以后的教學工作中,擬在計算機網絡實驗環節讓學生自己動手編寫計算機網絡協議模擬代碼,進一步提升學生的能動性,培養創新思維。
參考文獻
[1]謝希仁.計算機網絡[M].5版.北京:電子工業出版社,2008:180-220.
[2]王曉鋒.提高大規模離散事件網絡模擬性能方法的研究[D].哈爾濱:哈爾濱工業大學,2007:4-10.
[3]Fall K, Varadhan K. The NS Manual[EB/OL].http://www.isi.edu/nsnam/ns/doc/.
[4]Cowie J H, Nicol D M, Ogielsk A T. Modeling the Global Internet[J].Computing in Science Engineering,1999(1):42-50.