深究:TCP快速重傳機制
TCP 的快速重傳機制是通過收到同一丟失數(shù)據(jù)包的多個重復確認 (ACK) 來觸發(fā)的。 特定的觸發(fā)條件通常被稱為“三重重復ACK”。 它的工作原理如下:
重復 ACK:當接收端收到無序數(shù)據(jù)包(由于數(shù)據(jù)包重新排序或丟失)時,它會針對收到的最高順序數(shù)據(jù)包發(fā)送 ACK。 如果數(shù)據(jù)包丟失,接收方將繼續(xù)發(fā)送下一個預期有序數(shù)據(jù)包的 ACK。 然而,如果接收方接收到一個亂序數(shù)據(jù)包,然后又接收到另外的亂序數(shù)據(jù)包,則它將繼續(xù)發(fā)送收到的最高有序數(shù)據(jù)包的 ACK,但將這些后續(xù) ACK 標記為“重復”ACK。
Triple Duplicate ACK:如果接收方檢測到同一丟失數(shù)據(jù)包在重復 ACK 中連續(xù)三次被確認,則認為這是丟失數(shù)據(jù)包已丟失且后續(xù)數(shù)據(jù)包正在到達接收方的強烈指示。 發(fā)送方假設丟包的可能性很高,并發(fā)起快速重傳。
快速重傳:在檢測到三次重復的 ACK 后,發(fā)送方認為丟失的數(shù)據(jù)包確實已丟失,并立即重傳該丟失的數(shù)據(jù)包,而不是等待正常的超時期限到期。 這有助于更快地從數(shù)據(jù)包丟失中恢復并保持更順暢的數(shù)據(jù)流。
接收端鼓勵發(fā)送端快速重傳丟失的數(shù)據(jù)包的原因是為了提高數(shù)據(jù)傳輸?shù)男屎涂煽啃裕?/span>
減少延遲:快速重傳可以避免等待超時期限到期,而超時期限可能相對較長。 及時重傳可減少從數(shù)據(jù)包丟失中恢復所需的時間,從而最大限度地減少對數(shù)據(jù)傳輸延遲的影響。
網(wǎng)絡效率:通過僅重傳丟失的數(shù)據(jù)包(或少量丟失的數(shù)據(jù)包),與完全重傳較大數(shù)據(jù)段相比,可以更有效地使用網(wǎng)絡資源。 這有助于防止網(wǎng)絡上不必要的擁塞。
提高吞吐量:通過快速從丟包中恢復,發(fā)送方可以繼續(xù)傳輸新數(shù)據(jù),而不用等待重傳超時。 這提高了連接的整體吞吐量。
綜上所述,TCP中的快速重傳機制有助于發(fā)送方和接收方更有效地響應丟包,減少延遲并提高數(shù)據(jù)傳輸?shù)目煽啃浴?/span>