發表文章

利用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平均吞吐量比較圖 ...

利用NS2軟體模擬各種TCP版本_背景知識篇(一)

圖片
封包運作情況 目錄 1.背景知識 2.環境建置 3.結果圖與分析 4.參考文獻 1.背景知識 A.壅塞控制     一般而言, TCP 的壅塞控制機制主要可分為 slow-start 、 Congestion avoidance 、 Fast retransmission 、 Fast recovery 與 Timeout retransmission 五個階段: 1.   slow-start :也叫做指數增長期,傳送初期或者封包遺失 重傳時整個連線類似於從零開始的狀態,會以指數的方式增長,每收到一個 ACK( 經過一個 RTT) , cwnd 就提升一倍。 2.   Congestion avoidance :當 cwnd 超過 sstresh , TCP 就進入壅塞避免期,在此期間每經過一個 RTT 時間, cwnd 的值才會增加一個 segment ,(一個 segment 通常指一個 MTU 大小)以避免 cwnd 增加太快而導致封包遺失。此時的 cwnd 以線性的方式增加。 3.   Fast restrasmission :當 TCP 源端收到到三個相同的 ACK 副本時,即認為有數據包丟失,則源端重傳丟失的數據包,而不必等待 RTO 超時。同時將 ssthresh 設置為當前 cwnd 值的一半,並且將 cwnd 減為原先的一半。 4.   Fast recovery :當 " 舊 " 數據包離開網路後,才能發送 " 新 " 數據包進入網路,即同一時刻在網路中傳輸的數據包數量是恆定的。如果發送方收到一個重覆的 ACK ,則認為已經有一個數據包離開了網路,於是將擁塞視窗加 1 。 5.   Timeout retransmission :當 RTO 計時器時間滿了之後,就會重新傳送新的封包。 B.TCP Tahoe TCP 早期的版本, Tahoe 具備 TCP 基本架構,包括慢啟動、壅塞避免、重傳狀態。 TCP 在 Tahoe 這版本中加入了快速重傳 (Fast retransmit) 的方法。快速重傳機制是依據重複 (Duplicate) ACKs 作為重送封包的機制,當收到 3 個重複 ...

無線網路系統_隨堂問題(六)

圖片
1.GEO 還有 LEO 的相鄰衛星角度相比,誰的角度大? 為什麼? 角度會是LEO > GEO 越低空的衛星角度會大於越高空的 由 衛星繞行速度 公式V=根號下(GM/R)得到半徑越大,線速度越小,角速度也越小,而我們知道高度是GEO > MEO > LEO,得證角速度:GEO < MEO < LEO,角速度單位為w/s ,所以越高空的衛星角度會越小 要是忘記角速度是啥可以看圖回憶一下 參考資料 1.http://zhidao.baidu.com/question/557753606.html 2.http://www.geo-orbit.org/sizepgs/geodef.html

基於Cisco packet tracer模擬RIP OSPF RIPng OSPFv3 路由協定運作情況與實作

圖片
本次實驗TOPO 目錄 1.背景知識 2.路由器設定 3.Packet tracer 4.結果圖 5.實作狀況 6.參考文獻 1.背景知識 Packet tracer 一款由思科系統開發的思科路由配置模擬器,可用於培訓和教育,也可用於研究簡單的計算機網路模擬。 IPv6         網際網路協定的最新版本,用於封包交換網際網路的網路層協議,旨在解決 IPv4 位址枯竭問題。 動態路由協定         動態路由協定可以讓路由器自動學習到其他路由器的網路,並且網路拓撲發生改變後自動更新路由表。網路管理員只需要配置動態路由協定即可,相比人工指定轉發策略,工作量大大減少。 RIP 一種使用最廣泛的內部網關協議( IGP )。( IGP )是在內部網路上使用的路由協議 ( 在少數情形下 , 也可以用於連接到網際網路的網路 ) ,它可以通過不斷的交換信息讓路由器動態的適應網路連接的變化,這些信息包括每個路由器可以到達哪些網路,這些網路有多遠等。 RIP 屬於網路層。 OSPF 是對鏈路狀態路由協議的一種實現,隸屬內部網關協議( IGP ),故運作於自治系統內部。著名的迪克斯加演算法被用來計算最短路徑樹。它使用「代價( Cost )」作為路由度量。鏈路狀態資料庫( LSDB )用來保存當前網路拓撲結構,它在同一區域中的所有路由器上是相同的。 OSPF 分為 OSPFv2 和 OSPFv3 兩個版本 , 其中 OSPFv2 用在 IPv4 網路, OSPFv3 用在 IPv6 網路。 OSPFv2 是由 RFC 2328 定義的, OSPFv3 是由 RFC 5340 定義的。 RIPng RIPng(Routing Information Protocol next generation) 在 RFC 2080 中被定義,主要是針對 IPv6 做一些延伸的規範 2.路由器設定 檔案太長,所以截個小圖參考就好XD 3.Packet tracer 如果沒有學習...

利用NS2 討論隱藏節點與暴露節點問題與效能分析

圖片
目錄 1.背景知識 2.建置NS2 模擬環境 3.隱藏節點問題 4.暴露節點問題 5.結果分析 6.參考文獻 1.背景知識 隱藏節點 節點C在節點A和節點B傳輸範圍內的交集區域內,但是A和B都不在互相的傳輸範圍內,這時同時有兩個節點A,B想傳送資料給節點C,節點A傳送資料給C時,節點B會認為目前網路閒置(但其實不是),同時也會傳送資料給節點C,同時傳送給節點C的資料就會發生碰撞(Collision). 這種因傳送距離而發生的誤判的問題稱為隱藏節點問題(Hidden Terminal Problem). 暴露節點 節點A 要傳送資料給節點C時,發現(聽到)傳輸範圍內節點的C正在傳送資料給節點B(節點A是節點C的暴露節點),節點A就會延遲傳送(但這種延遲是不必要的),因為節點C傳送資料給節點B與節點A傳送資料給節點C並不衝突,因此這種因為聽到傳輸範圍內有節點在傳輸,而延遲傳輸就是暴露節點的問題。 NS2 NS2是指 Network Simulator version 2,NS(Network Simulator) 是一種針對網路技術的原始程式碼公開的、免費的軟體類比平臺,研究人員使用它可以很容易的進行網路技術的開發,而且發展到今天,它所包含的模組幾乎涉及到了網路技術的所有方面。所以,NS成了目前學術界廣泛使用的一種網路類比軟體。此外,NS也可作為一種輔助教學的工具,已被廣泛應用在了網路技術的教學方面。因此,目前在學術界和教育界,有大量的人正在使用或試圖使用NS。 2.建置NS2模擬環境 由於本次實驗是重現 NS2網路模擬實驗書中的內容,因此環境都依照書上的操作。 需要具備以下幾個東西 1.安裝好XP環境的VM 2. ns-allinone-2.29 (包含柯老師寫好的檔案) 3.隱藏節點&暴露節點的 tcl檔案 這邊細節我日後有空再補上即可(應該是沒空XDD,我已將3的檔案備妥了,XP的部分先請讀者自行加油 3.隱藏節點問題 4.暴露節點問題 5.結果分析 6.參考文獻 1.http://baike.baidu.com/view/41867.htm 2.http://nile.wpi.edu/NS/simple_ns.html 3.http://csie.nqu.ed...

基於 Verilog 實現 CRC-32 晶片模擬 採用modelsim 模擬軟體

圖片
目錄 1.背景知識 2. 安裝 Modelsim 3.CRC-16 模擬 4.CRC-32 模擬 5.Modelsim 基礎使用教學 1.背景知識 CRC:      循環冗餘查核 ( 英語 : Cyclic redundancy check ,通稱「 CRC 」)是一種根據網路資料封包或 電腦檔案 等資料產生簡短固定位數驗證碼的一種 雜湊函數 ,主要用來檢測或校驗資料傳輸或者保存後可能出現的錯誤。生成的數字在傳輸或者儲存之前計算出來並且附加到資料後面,然後接收方進行檢驗確定資料是否發生變化。一般來說,循環冗餘校驗的值都是32位元的整數。<取自Wiki 百科> 詳細的計算可以看 這篇文章 了解CRC運作原理. 習題:假設資料位元(D)為 1011001101 1011001101 並使用CRC-16(P) ,試問 CRC碼以多項式和二進位表示為何?加上CRC碼後的完整訊息(T)為何? 想知道答案可至 這裡檢查 Modelsim:     Mentor公司的ModelSim是業界最優秀的HDL語言仿真軟件,它能提供友好的仿真環境,是業界唯一的單內核支持VHDL和Verilog混合仿真的仿真器。它採用直接優化的編譯技術、Tcl/Tk技術、和單一內核仿真技術,編譯仿真速度快,編譯的代碼與平台無關,便於保護IP核,個性化的圖形界面和用戶接口,為用戶加快調錯提供強有力的手段,是FPGA/ASIC設計的首選仿真軟件。<取自Baidu 百科> 2..安裝 modelsim 在這邊示範的是  ModelSim PE Student Edition (學生嘛~~) 首先讓我們到 官網下載安裝程式 下載成功之後就安裝去吧 熟悉冗長的安裝過程~~ 超冗長的安裝對吧~~~ 安裝結尾 這裡記得點選  YES 安裝結束後會跳出個 網頁 要求填寫基本資料 這裡亂填就好XDD 但是信箱要確定能收的到 [HINT: 不想註冊真實信箱 ] 反正卻確定信箱有收到信件且有附件檔案 依照信件指示 將剛收到的附件放入指定資料夾當中 如此一...