TCP可靠性傳輸是怎麼是實現的?

2021-09-26 06:35:07 字數 771 閱讀 4149

《**tcp/ip》這本書中提到「tcp通過校驗和,序列號,確認應答,重發控制,連線管理以及視窗控制等機制實現可靠性傳輸。」序列號、確認應答、重發控制在tcp三次握手(連線管理)和四次揮手中都有體現,這幾個機制在很多博文中寫的很不錯,我也學習總結過一篇,沒有創新,一直是知識的搬運工。現在我更關心的是視窗控制,流控制,擁塞控制這幾個機制。

首先我會問連線管理,重發控制,確認應答等機制還不能保證可靠性傳輸嗎?為什麼還需要視窗控制?

事實上前面提到的幾個機制可以保證傳輸的可靠性,但是一條一條訊號的發,顯然效率太低了。我們現實生活中批處理被應用於方方面面,考慮一次傳輸一批訊號也是常規套路,那一次發多少呢?一次發多少,需要接收方根據能一次收多少決定。

視窗控制是怎麼提高傳輸速率?

傳輸資料時,不需要等待視窗內資料的確認應答可以繼續傳送資料,效率顯然會提高,收到乙個應答,視窗就會向後滑動。同時如果前面資料確認應答丟失,之後的資料確認應答收到,仍然不需要重發,這也提高了傳輸效率。但是當傳送方收到三次同樣的確認應答時,會選擇重發資料。

為什麼還需要流控制?

我覺得視窗控制確實很好的解決了傳輸速率問題,但是相對靜態不能動態靈活的應對流量不同的情況。流控制正是動態的設定視窗值,來解決流量浪費或流量擁堵。怎麼進行流量控制呢?傳送方類似於輪詢機制,不斷的傳送探測資料報,來詢問當前接收方能接受的資料大小,然後設定視窗大小。

視窗控制和流控制,提高傳輸速率並且動態設定視窗大小,已然很完美,為什麼還需要擁塞控制?

其實這個問題寫出來,就發現tcp之前的機制對擁塞控制能力很弱,流控制只是不加重擁堵的狀況,並不能解決擁塞問題。

TCP是怎麼實現可靠傳輸的

tcp協議傳輸的特點主要是面向位元組流 傳輸可靠 面向連線。答 tcp協議保證資料傳輸可靠性的方式主要有 序列號 tcp傳輸時將每個位元組的資料都進行了編號,即序列號。確認應答 tcp傳輸過程中,每次接收方收到資料後,都會對傳輸方進行確認應答。也就是傳送ack報文。這個ack報文當中帶有對應的確認序...

TCP 保證傳輸可靠性

tcp協議保證資料傳輸可靠性的方式主要有 計算方式 在資料傳輸的過程中,將傳送的資料段都當做乙個16位的整數。將這些整數加起來。並且前面的進製不能丟棄,補在後面,最後取反,得到校驗和。傳送方 在傳送資料之前計算檢驗和,並進行校驗和的填充。接收方 收到資料後,對資料以同樣的方式進行計算,求出校驗和,與...

TCP如何保證可靠性傳輸

校驗和 在資料傳輸的過程中,將傳送的資料段都當做乙個16位的整數。將這些整數加起來。並且前面的進製不能丟棄,補在後面繼續相加,最後取反,得到校驗和。傳送方 在傳送資料之前計算檢驗和,並進行校驗和的填充。接收方 收到資料後,對資料以同樣的方式進行計算,求出校驗和,與傳送方的進行比對。注意 如果接收方比...