1. 程式人生 > >TCP如何保證可靠性

TCP如何保證可靠性

結果 定時 大於 嚴重 ron log AI 定時器 lin

如何保證可靠性?

1.校驗和。在TCP的首部中有一個占據16為的空間用來放置校驗和的結果。

這是一個端到端的檢驗和,目的是檢測數據在傳輸過程中的任何變化。如果收到段的檢驗和有差錯,TCP將丟棄這個報文段 和不確認收到此報文段(希望發端超時並重發)。 (校驗出包有錯,丟棄報文段,不給出響應,TCP發送數據端,超時時會重發數據)

2.數據合理分片和排序:

  UDP:IP數據報大於1500字節,大於MTU.這個時候發送方IP層就需要分片(fragmentation).把數據報分成若幹片,使每一片都小於MTU.而接收方IP層則需要進行數據報的重組.這樣就會多做許多事情,而更嚴重的是,由於UDP的特性,當某一片數據傳送中丟失時,接收方便無法重組數據報.將導致丟棄整個UDP數據報.

  tcp會按MTU合理分片,接收方會緩存未按序到達的數據,重新排序後再交給應用層。

3.超時重傳:

當TCP發出一個段後,它啟動一個定時器,等待目的端確認收到這個報文段。如果不能及時收到一個確認,將重發這個報文段。

4. 將數據截斷為合理的長度

應用數據被分割成TCP認為最適合發送的數據塊。這和UDP完全不同,應用程序產生的數據報長度將保持不變。

5.流量控制

參考資料:https://www.cnblogs.com/deliver/p/5471231.html

https://blog.csdn.net/wmaoshu/article/details/53493424

http://zh-shaochun.blog.163.com/blog/static/18322091201151354211756/

TCP如何保證可靠性