TCP錯誤恢復特性之一TCP重傳


TCP的錯誤恢復特性是我們用來定位、診斷並最終修復網絡高延遲的最好工具。

常見的TCP錯誤恢復特性有:TCP重傳、TCP重復確認和快速重傳

1. TCP重傳:

     重傳數據包是TCP最基本的錯誤恢復特性之一,用來對付數據包的丟失。

     數據包丟失可能原因有很多,如:出故障的應用程序、流量負載沉重的路由器或臨時性的服務中斷。

     數據包層次上的移動速度非常快,而且數據包丟失通常都是暫時的,因此TCP能否檢測到數據包丟失並恢復至關重要。

    

    如何決定是否重傳:

    決定是否重傳數據包的主要機制叫做:重傳計時器,這個計時器負責維護一個重傳超時(RTO--Retransmission timeout)的值。

    當使用TCP傳輸一個數據包時,就啟動重傳計時器,當收到這個數據包的ACK應答時,計時器就停止。從發送數據包到接收ACK確認之間的時間被稱為往返時間(Round-Trip time,RTT),若干個這樣的時間平均下來,可計算出最終的RTO值。

     一旦RTO值確定下來,重傳計時器就被用於每個傳輸的數據包,以確定數據包是否丟失。

         當報文發送之后,但接收方尚未發送TCP ACK報文,發送方假設源報文丟失並將其重傳。重傳之后,RTO值加倍;如果在2倍RTO值到達之前還是沒有收到ACK報文,就再次重傳。如果仍然沒有收到ACK,那么RTO值再次加倍。如此持續下去,每次重傳RTO都翻倍,直到收到ACK報文或發送方達到配置的最大重傳次數。

        最大重傳次數取決於發送操作系統的配置值。默認情況下,Windows主機默認重傳5次。大多數Linux系統默認最大15次。兩種操作系統都可配置。

       

     


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM