TCP協議如何保證傳輸的可靠性

TCP提供一種面向鏈接的可靠的字節流服務。tcp

TCP協議經過如下方法來保證其可靠性:spa

  1. 將數據截斷爲合理的長度:應用數據被分割成TCP認爲最適合發送的數據塊。這和UDP徹底不一樣,應用程序產生的數據報長度將保持不變。
  2. 確認響應:當TCP收到發自TCP鏈接另外一端的數據,它將發送一個確認。其間可能由於對包校驗而產生延遲。
  3. 超時重發:當TCP發出一個段後,它啓動一個定時器,等待目的端確認收到這個報文段。若是不能及時收到一個確認,將重發這個報文段。
  4. 接收時對包進行校驗: TCP將保持它首部和數據的檢驗和。這是一個端到端的檢驗和,目的是檢測數據在傳輸過程當中的任何變化。若是收到段的檢驗和有差錯,TCP將丟棄這個報文段和不確認收到此報文段
  5. 對失序數據進行從新排序,而後才交給應用層:TCP報文段做爲IP數據報來傳輸,而IP數據報的到達可能會失序,所以TCP報文段的到達也可能會失序。若是必要,TCP將對收到的數據進行從新排序,將收到的數據以正確的順序交給應用層。
  6. 丟棄重複數據既然IP數據報會發生重複,TCP的接收端必須丟棄重複的數據。
  7. 流量控制:TCP還能提供流量控制。TCP鏈接的每一方都有固定大小的緩衝空間。TCP的接收端只容許另外一端發送接收端緩衝區所能接納的數據。這將防止較快主機導致較慢主機的緩衝區溢出。TCP使用的流量控制協議是可變大小的滑動窗口協議。

tcp/ip模型:https://blog.csdn.net/guoguo527/article/details/52078962.net

相關文章
相關標籤/搜索