利用NS2軟體模擬各種TCP版本_實作篇(二)
2.環境建置 A.安裝好Linux環境 這一步的話我就不多贅述了,網路上頗多教學的,例如什麼,如何安裝Ubuntu. Fedora. centos......等, B.安裝好NS2 之前就先拍好影片了,就不多說什麼 C.測試環境安裝正確 其實影片後半段就有了啦... 敝人龜毛了點又多講這段 打開terminal 輸入ns 前面出現%之後 輸入nam 都安裝正確的話會出現這個畫面喔>.= D.本次實驗基本指令 到指定資料夾底下編譯要的檔案與TCP版本 EX:ns filename.tcl tcp_version 編譯沒有問題會出現此圖 開啟新的terminal 輸入gnuplot 在方才編譯好的資料夾底下輸入圖中指令 輸入正確指令且繪製成功的圖表 本次實驗原始碼就上 柯志亨老師的網站找就好 <===超多東西可學的 3.結果圖與分析 A. 觀察TCP Tahoe congestion windows的變化 圖 A-1 Tahoe的CWND變化圖 從A-1圖中我們可以看到TCP的Congestion window的值會呈現週期性的重複變化。TCP Tahoe 開始執行時,先由slow-start(SS)開始,CWND超過ssthresh時進入擁塞避免(CA)階段。由於傳送到網路上的丟包不斷增加,當超出允許能傳送到網路上的個數時,路由器開始使用Drop-Tail演算法將資料包丟掉。當封包遺失時,TCP Tahoe會將ssthresh設為發現封包遺失時的一半,接著將CWND的值設為1。Tahoe重新進入slow-start階段。 B. 觀察TCP Reno congestion windows的變化 圖 B-1 Reno的CWND變化圖 如圖B-1所示,當偵測到封包遺失時,Reno會將ssthresh和CWND的值設為先前CWND值的一半。因此在重送遺失的封包後,TCP Reno會由CA階段開始。由於結束Fast recovery後,Reno的CWND由先前CWND值得1/2開始增加,所以得到的平均吞吐量較Tahoe佳,可由下圖得知。 圖 B-2 Tahoe 與Reno平均吞吐量比較圖