現代數字通訊技術讓我們的生活發生了徹底地改變,而通訊協議無疑是這一改變的始作俑者。硬體有自己的通訊協議,比如pci匯流排、usb匯流排、i2c匯流排等等。軟體也有自己的協議棧,無線的3gpp、gprs,有線的tcp/ip協議棧、atm協議等等。基於物理層的協議,很大程度是由晶元完成的,但是涉及到交換路由、資料傳輸、業務處理,則很大程度上是由軟體負責的。協議棧看上去複雜,但是它所使用的技術都是一些基本技術,熟悉這些常用的技術和方法有利於我們在後面的開發中能夠高效的利用這些協議。那麼,下面我們就要看看,實現協議棧需要怎樣的一些基本技術。
(1)狀態機
狀態機是協議棧使用最多的一種方法。當協議處於不同的狀態的時候,就會對不同的報文內容作出不同的處理方法。
(2)定時器
計時器也是協議棧經常使用的方法。通常協議本身在某段時間內需要收到對端傳送的響應報文,如果沒有收到報文我們就認為通訊失敗。因此,我們完全可以通過設定定時器的方法,在一段時間之後判斷當前的報文有沒有傳送成功。
(3)重發機制
因為網路的鏈路狀態是十分複雜的,所以不同的協議對報文的響應時間是不同的。只要協議本身允許,一段時間內的重發都是可以的。
(4)校驗和
為了驗證報文在傳輸的過程中0和1沒有發生改變,在報文中新增校驗和也是十分必要的。這種校驗方法很多,奇偶校驗、crc校驗都是可以的。當然,至於具體使用哪種方法需要根據rfc標準來判斷。
(5)報文排序
在tcp/ip協議層中,ip層作用就是分片和路由的功能。我們知道有的時候傳送的報文是很長的,所以有必要對這些報文進行排序處理。在傳輸中,我們需要確認所有的報文都能正確地得到傳輸和處理。
(6)位元組序
x86的cpu是高位址高資料,而powerpc是低位址高資料。而報文中的內容需要的是低位址高資料,所以在處理的時候需要十分小心。
(7)其他的基本技術
7.1 互斥 傳輸涉及到多執行緒的設計
7.2 鍊錶 鍊錶是模組設計中的基本結構
7.3 最小生成樹演算法 ospf中需要涉及到基本的圖論演算法
7.4 rfc標準 rfc是我們一切工作的準繩
7.5 開源軟體 開源軟體可以幫助我們快速熟悉相關的開發工作
7.6 除錯日誌 除錯日誌有助於我們對故障快速進行定位
函式壓棧及協議棧的基本技術
在編譯器編譯檔案的時候,軟體會根據程式本身的要求對函式作不同的壓棧處理。有的壓棧是按照從左到右進行壓棧,有的壓棧是按照從右到左進行壓棧,有的不壓棧 直接用暫存器代替,有的是需要被呼叫函式自身自己平衡堆疊。下面,我們就可以乙個乙個自己看看。首先,隨便寫乙個函式,cpp view plain copy ...
OSI基本模型與TCP IP協議棧
osi open system interconnect 即開放式系統互聯。一般都叫osi參考模型,是iso組織在1985年研究的網路互聯模型。該體系結構標準定義了網路互聯的七層框架 物理層 資料鏈路層 網路層 傳輸層 會話層 表示層和應用層 即osi開放系統互連參考模型。應用層 為應用程式提供服務...
TCP IP 協議 協議棧
tcp ip協議棧 整個協議棧被分為了四層,每一層協議負責不同的功能 鏈路層 負責處理物理介面的細節,接受傳送的都是位元流,鏈路層主要有三個目的 1.為ip模組傳送和接收i p資料報 2.為arp模組傳送arp請求和接收arp應答 3.為rarp傳送rarp請求和接收rarp應答 網路層 用來處理網...