计算机网络重要机制(一)可靠数据传输
操作系統,計算機網絡都屬于計算機系統,為了使得整個系統運行起來,人們根據當時的硬件條件和理論認識設計了各種的算法(也可以叫機制),這些機制有些被拋棄,有些被進化。所以操作系統、計算機網絡里面的內容概括起來就是:條件(已知)、問題(未知)----》算法----》實現;在具體實現的時候為了配合算法設計了各種精巧的數據結構?!队嬎銠C網絡重要機制》系列總結的是自己學習計算機網絡中的重要機制,材料主要參考《計算機網絡自頂向下》和網上資料,敘述方式就是上面的框架。
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
圖8
jj
總結
以上是生活随笔為你收集整理的计算机网络重要机制(一)可靠数据传输的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript 在对象中使用 定时
- 下一篇: excel图表模板免费下载_40个免费的