發表文章

目前顯示的是有「通訊系」標籤的文章

添加 System call(系統呼叫) 至 linux kernel (環境:Ubuntu 12.04LTS + kernel:3.13.0-32)

圖片
圖與內文無關 目錄 一.背景知識 二.實作步驟 三.Step by step 四.參考文獻 一.背景知識 1.Linux     Linux是一種自由和開放原始碼的類UNIX作業系統。術語Linux只表示作業系統核心本身,但通常採用Linux核心來表達該意思。Linux則常用來指基於Linux核心的完整作業系統,包括GUI元件和許多其他實用工具。由於這些支援使用者空間的系統工具和庫主要由理察·斯托曼於1983年發起的GNU計劃提供,自由軟體基金會提議將該組合系統命名為GNU/Linux[7][8],但Linux不屬於GNU計劃。 2.Linux kernel     Linux內核(英語:Linux kernel),是一種電腦作業系統內核,以C語言和組合語言寫成,符合POSIX標準,以GNU通用公眾授權條款釋出。Linux內核最早是由芬蘭駭客林納斯·托瓦茲為嘗試在自己的英特爾x86架構電腦上提供自由免費的類Unix系統而開發的。該計劃開始於1991年,林納斯·托瓦茲當時在Usenet新聞群組comp.os.minix登載貼文[7],這份著名的貼文標示著Linux內核計劃的正式開始。 3.System call (系統呼叫)     指運行在使用者空間的程序向作業系統內核請求需要更高權限運行的服務。系統調用提供了用戶程序與作業系統之間的接口。大多數系統交互式操作需求在內核態執行。如設備IO操作或者進程間通信。 二.實作步驟 各kernel版本或是本身OS的不同,在某些地方上會有些微不,例如檔案位置,檔案名稱,或是include的標頭檔不同,這部分可能就要上網找資料去惹,另外不同的 Linux 系統之間也有可能使用不同的指令, 在實作時請多留意自己的環境 ,本實作是以 Ubuntu 12.04LTS + kernel:3.13.0-32-generic 來執行。以下流程可供參,對於其他環境來說應該是大同小異的。 Kernel side 1.  下載 kernel source 2.  定義system call sys_hello(): 3. 添加 hello 目錄至 ...

利用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

基於 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: 不想註冊真實信箱 ] 反正卻確定信箱有收到信件且有附件檔案 依照信件指示 將剛收到的附件放入指定資料夾當中 如此一...