TCP保證可靠性
一,序列號,確認應答,超時重傳
- 數據到達接收方,接收方需要發出一個確認應答,表示已經收到該數據段,並且確認序號會說明了它下一次需要接受的數據序列號。
- 如果發送方遲遲未收到確認應答,那麼可能是發送的數據丟失,也可能是確認應答丟失,這是發送方在等待一定事件後會進行重傳,超時重傳。
- 這個時間一般是2*RTT(報文段往返時間+一個偏差值)
二,窗口控制與高速重發控制/快速重傳(重複確認應答)
- 正常情況下收到應答才能發送下一段數據。
- 而窗口作用就是:窗口大小無需等待確認而可以繼續發送數據的最大值。利用窗口控制來提升傳輸速度
- 如果不使用窗口控制,每一個沒收到確認應答的數據都要重發
快重傳:
- 就是當某個數據段丟失後,接收方會連續傳輸三個一樣序列號的應答,當接收方收到三次一樣應答之後,就會立即進行重發
- 還有一種情況是數據收到了,但是應答丟失了,這種情況也不會進行重發,因爲一旦某個丟失,則接收方會一直髮消息
三,擁塞控制
就是四種方法:
- 慢開始
- 擁塞避免
- 快重傳
- 快恢復
後面兩種方法的具體介紹博客鏈接:
一張圖瞭解TCP利用滑動窗口實現流量控制:https://blog.csdn.net/qq_46423166/article/details/113539847
六張圖帶你深刻理解TCP的擁塞避免控制,建議收藏本文:https://blog.csdn.net/qq_46423166/article/details/113447268