TCP如何保證可靠性

無鞋童鞋發表於2017-08-03

  轉載自:http://blog.csdn.net/shennongzhaizhu/article/details/52082106

  在TCP的連線中,資料流必須以正確的順序送達對方。TCP的可靠性是通過順序編號和確認(ACK)來實現的。TCP在開始傳送一個段時,為準備重傳而首先將該段插入到傳送佇列之中,同時啟動時鐘。其後,如果收到了接受端對該段的ACK資訊,就將該段從佇列中刪去。如果在時鐘規定的時間內,ACK未返回,那麼就從傳送佇列中再次送出這個段。TCP在協議中就對資料可靠傳輸做了保障,握手與斷開都需要通訊雙方確認,資料傳輸也需要雙方確認成功,在協議中還規定了:分包、重組、重傳等規則;而UDP主要是面向不可靠連線的,不能保證資料正確到達目的地。
  另外,TCP是面向流的,傳送和接收對於此協議來說,沒有什麼頭和尾,全部順序投遞;而UDP是面向包的,每次接收與傳送都是一個資料塊。這樣在程式設計時需要注意程式應提供不同的處理模型。在進行傳輸之前,首先傳送請求訊號,目的端接收訊號後,回覆資訊,之後建立連線開始傳輸資料,俗稱TCP三次握手。


這裡寫圖片描述
這裡寫圖片描述
這裡寫圖片描述

相關文章