基于ns2的tcp擁塞控制仿真

基于ns2的tcp擁塞控制仿真

ID:15866833

大?。?99.50 KB

頁數(shù):9頁

時間:2018-08-06

基于ns2的tcp擁塞控制仿真_第1頁
基于ns2的tcp擁塞控制仿真_第2頁
基于ns2的tcp擁塞控制仿真_第3頁
基于ns2的tcp擁塞控制仿真_第4頁
基于ns2的tcp擁塞控制仿真_第5頁
資源描述:

《基于ns2的tcp擁塞控制仿真》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫

1、基于NS2的TCP建模與仿真摘要:TCP/IP協(xié)議是計算機之間常用的組網(wǎng)形式,是互聯(lián)網(wǎng)事實上的工業(yè)標準,由IETF負責制定,其具體內(nèi)容通過RFC文檔公開發(fā)布。本文利用NS2網(wǎng)絡(luò)仿真器對TCP/IP中的擁塞控制與擁塞窗口,快速重傳與快速恢復(fù)算法進行了仿真,使對協(xié)議中的幾種機制和算法有了形象的理解。關(guān)鍵字:TCP/IP協(xié)議,NS2仿真,擁塞控制,快速重傳,快速恢復(fù)一、引言TCP/IP協(xié)議是計算機之間常用的組網(wǎng)形式,是互聯(lián)網(wǎng)事實上的工業(yè)標準,由IETF負責制定,其具體內(nèi)容通過RFC文檔公開發(fā)布。例如,T

2、CP協(xié)議在RFC793中正式定義;RFC1122對如何檢測錯誤和不一致性以及解決方法進行了說明;RFC1323給出了對TCP的一些擴展功能;RFC2518中重點闡述了TCP的擁塞控制機制描述了更新后避免過度擁塞的算法;RFC3168描述了對顯示擁塞的報告等。據(jù)統(tǒng)計,當前在所有因特網(wǎng)的數(shù)據(jù)包中,大約有95%包的傳送使用了TCP協(xié)議,因此針對TCP協(xié)議相關(guān)機制的研究很有實際意義。在TCP協(xié)議的研究中,仿真是一種有效又經(jīng)濟的研究方法,而且可以給人以更加形象的認識。目前的網(wǎng)絡(luò)仿真工具主要包括兩類:一是基于

3、大型網(wǎng)絡(luò)開發(fā)的網(wǎng)絡(luò)仿真工具,如OPNET、GloMoSim等;二是基于小型網(wǎng)絡(luò)開發(fā)的網(wǎng)絡(luò)仿真工具,如NS2、COMNETIII等。大多數(shù)網(wǎng)絡(luò)仿真工具的價格昂貴,而本文采用的NS2是一種應(yīng)用廣泛、影響力較大和源代碼公開的免費網(wǎng)絡(luò)模擬軟件。二、網(wǎng)絡(luò)仿真器NS2NS是NetworkSimulator的英文縮寫,又稱網(wǎng)絡(luò)仿真器。它是一款開放源代碼的網(wǎng)絡(luò)模擬軟件,最初由加州大學伯克利分校(UCBerkeley)開發(fā)。NS-2支持Windows、Linux、Unix、Mac以及其他支持POSIX標準的操作系統(tǒng)

4、,它主要支持的操作系統(tǒng)是Linux系統(tǒng),目前幾乎支持所有主流的Linux發(fā)行版本,本文使用的是Windows+Cygwin平臺。NS2是一個可擴展、易配置和可編程的事件驅(qū)動網(wǎng)絡(luò)仿真引擎。底層的仿真引擎由C++編寫,同時利用面向?qū)ο蟮腛TCL語言作為仿真時命令和配置的接口語言。C++的特點:具有很快的運行速度,但每次改變均需要編譯,較為復(fù)雜,適合處理繁瑣但比較固定的工作。OTCL在運行速度上無法和C++比擬,但相對來說更加靈活,適合用來設(shè)計個人的仿真方案。C++和OTCL之間通過TCLCL工具包實現(xiàn)

5、互相調(diào)用。圖1 NS2進行網(wǎng)絡(luò)模擬的基本流程為了分析仿真結(jié)果,NS2提供了兩種基本數(shù)據(jù)追蹤能力:一是跟蹤,生成“.nam”和“.tr”文件。能夠?qū)⒚總€數(shù)據(jù)包在任何時刻的狀態(tài)保存到指定文件中,記錄包在隊列或鏈路中丟棄、到達、離開等行為;二是監(jiān)視,用戶有選擇地記錄自己需要的數(shù)據(jù),可利用Gawk、Gnuplot等工具統(tǒng)計發(fā)送包、接收包及丟棄包等結(jié)果進行分析。在本文的仿真中,我們沒有進行源代碼的修改,而是利用NS2中已有網(wǎng)絡(luò)組建進行了仿真模擬,并利用圖形界面給出了形式化的仿真結(jié)果。一、TCP協(xié)議中相關(guān)機制

6、TCP(TransmissionControlProtocol:傳輸控制協(xié)議)對應(yīng)于ISO/OSI模型的第四層——傳輸層,傳輸層提供從源端到目的端的“端到端”連接。通過三次握手協(xié)議進行了會話連接后,TCP進入了會話維持階段,在該階段TCP的一個重要功能就是流量控制和擁塞控制,它用于處理網(wǎng)絡(luò)中不同網(wǎng)段間不同速率的匹配,防止網(wǎng)絡(luò)發(fā)生擁塞,并在數(shù)據(jù)包丟失時重發(fā),以此提供穩(wěn)定可靠的網(wǎng)絡(luò)服務(wù)。3.1擁塞控制與擁塞窗口擁塞控制室TCP協(xié)議的精髓,與流量控制只關(guān)注收發(fā)兩端流量不同,擁塞控制關(guān)注整個網(wǎng)絡(luò)的流量,是

7、一種全局控制機制。TCP提供了一系列的檢測,避免和擁塞控制的方法。最著名和常用的就是“慢啟動”(slowstart)和動態(tài)擁塞窗口機制(DynamicCongestionWindow)。兩者在實際應(yīng)用中結(jié)合使用,系統(tǒng)為每個TCP連接維護兩個變量:擁塞窗口(cwnd)和慢啟動門限(ssthresh)。慢啟動門限一般代表我們對網(wǎng)絡(luò)容量的一個評估。在網(wǎng)絡(luò)連接好后,初始發(fā)送的擁塞窗口為1,即第一次只能發(fā)送一個數(shù)據(jù)包,當?shù)玫皆摪拇_認后,擁塞窗口大小翻倍,即cwnd=2,以此類推,窗口大小乘指數(shù)增長一直到慢

8、啟動門限大小,即cwnd=ssthresh。這相對于一開始就使用門限大小的窗口發(fā)送數(shù)據(jù)來說是慢啟動。慢啟動結(jié)束后,系統(tǒng)進入了所謂的“沖突避免”(Congestionavoidance)階段,該階段擁塞窗口呈線性增長,每次窗口大小增加1。當沖突發(fā)生時,將采取沖突控制策略,同時動態(tài)調(diào)整擁塞窗口cwnd和慢啟動門限值ssthresh,如:ssthresh=ssthresh/2;談后擁塞窗口職位1,并重新啟動慢啟動過程。3.2快速重傳與快速恢復(fù)在TCP連接中如果收到1~2個重復(fù)的確認包(表

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。