TCP如何保證可靠性
阿新 • • 發佈:2018-03-29
結果 定時 大於 嚴重 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如何保證可靠性