作業系統,計算機網路都屬於計算機系統,為了使得整個系統執行起來,人們根據當時的硬體條件和理論認識設計了各種的演算法(也可以叫機制),這些機制有些被拋棄,有些被進化。所以作業系統、計算機網路裡面的內容概括起來就是:條件(已知)、問題(未知)----》演算法----》實現;在具體實現的時候為了配合演算法設計了各種精巧的資料結構。《計算機網路重要機制》系列總結的是自己學習計算機網路中的重要機制,材料主要參考《計算機網路自頂向下》和網上資料,敘述方式就是上面的框架。
1,傳輸的基本流程圖如下所示:
圖1
2,下面要解決傳輸中兩個問題:丟包、壞包(01bit發生翻轉),要使用到的工具是數學中的有限狀態機如下圖:
圖2
3,假設說網路層的傳輸是沒有問題的,如圖1b圖,那應該怎樣設計我們的傳輸層協議呢?如下圖:
圖3
4,假設網路層中傳輸過程中存在包被破壞(01翻轉)且接收方還能收到這個壞包,那麼上面的1.0協議該如何改進呢,如下圖:
圖4
5,上面的rdt2.0沒有考慮nak/ack包在傳輸中被破壞且還能被傳送方接受到的問題,未解決這個問題為每個資料報增加了1bit位的序列號,即0或1,rdt2.1如下圖:因為增加了兩個序列號,所以rdt2.1的狀態是2.0狀態的二倍,此時從圖上已經感覺到略顯複雜,其實並不複雜,就是把2.0版本重複一次而已(但並不完全一樣),還有這個圖是可以簡化的。
圖5
圖6
6,觀察圖6知道,receiver在收到壞包時,會向sender傳送nak,receiver收到上乙個包(重複包)時,會向sender傳送ack,但是目的都是一樣,需要sender送正確的當前包,所以這兩個情況可以合併起來考慮,那怎麼合併呢,其實很簡單,就是出現上面兩種情況時,都傳送上乙個包的ack(此時的ack也帶有序列號01了),這樣sender也稍微調整一下就可以了。如rdt2.2下圖:
圖7
圖8jj
計算機網路 可靠資料傳輸機制及其用途總結
機制 用途和說明 檢驗和用於監測在乙個傳輸分組中的位元錯誤 定時器用於超時 重傳乙個分組,可能因為該分組 或其ack 在通道中丟失了.由於當乙個分組延時但未丟失,或當乙個分組已被接收方接收但從接收方到傳送方的ack丟失時,可能產生超時事件,所以接收方可能會收到乙個分組的多個冗餘副本.序號用於為從傳送...
計算機網路3 可靠傳輸
title 計算機網路3 可靠傳輸 mathjax true date 2020 03 19 13 33 04 categories 計算機網路 tags 計算機網路 keywords 計算機網路 不可靠傳輸,voice over ip dns rpc dhcp?16位源埠,16位目標埠,16位ud...
計算機網路 視窗機制
引言 為什麼tcp需要有視窗這個機制?因為相對於udp,tcp需要提供穩定的服務,視窗 快取 機制就能提供這個功能。那麼為什麼要用視窗控制這個機制呢?因為tcp還要提供流控 務。首先先來說一哈 tcp是如何傳輸位元組流的 1 按報文段 segment 傳輸 報文段 若干位元組構成 2 ip是按分組 ...