原文:TCP系列24—重傳—14、F-RTO虛假重傳探測

一 虛假重傳 在一些情況下,TCP可能會在沒有數據丟失的情況下初始化一個重傳,這種重傳就叫做虛假重傳 Spurious retransmission 。發生虛假重傳的原因可能是包傳輸中重排序 傳輸中發生包復制 ACK確認包傳輸中丟失等等。如果由於鏈路時延變化或者負載變化等因素導致RTT突然變大等原因,TCP的發送端可能還沒收到ACK確認包就已經RTO超時而觸發重傳,這種重傳就叫做虛假超時重傳 Sp ...

2016-11-07 13:58 0 2166 推薦指數:

查看詳情

TCP系列15—重傳—5、Linux中RTO的計算

之前我們介紹的都是協議中給出的RTO計算方法,下面我們看一下linux實現中RTO的計算方法。在linux中維護了srtt、mdev、mdev_max、rttvar、rtt_seq幾個狀態變量用來計算RTO,其中linux實現中的mdev變量相當於協議中的RTTVAR變量。rtt_seq狀態變量 ...

Mon Nov 07 21:50:00 CST 2016 1 1965
TCP系列13—重傳—3、協議中RTO計算和RTO定時器維護

從上一篇示例中我們可以看到在TCP中有一個重要的過程就是決定何時進行超時重傳,也就是RTO的計算更新。由於網絡狀況可能會受到路由變化、網絡負載等因素的影響,因此RTO也必須跟隨網絡狀況動態更新。如果TCP過早重傳,則可能會向網絡中注入很多重復報文,如果過晚重傳,則在丟包時候則會影響 ...

Mon Nov 07 21:48:00 CST 2016 0 4557
TCP系列11—重傳—1、TCP重傳概述

在最開始介紹TCP的時候,我們就介紹了TCP的三個特點,分別是面向連接、可靠、字節流式。前面內容我們已經介紹過了TCP的連接管理,接下來的這部分內容將會介紹與TCP可靠性強關聯的TCP重傳。 很多網絡協議都提供了checksum或者CRC手段來檢測收到的數據包是否 ...

Mon Nov 07 21:45:00 CST 2016 0 2661
TCP系列23—重傳—13、RACK重傳

一、RACK概述 RACK(Recent ACKnowledgment)是一種新的基於時間的丟包探測算法,RACK的目的是取代傳統的基於dupthresh門限的各種快速重傳及其變種。前面介紹的各種基於dup ACK的快速重傳算法及其變種通過修改dupthresh門限等手段,有些可以迅速的探測到丟包 ...

Mon Nov 07 21:56:00 CST 2016 0 2368
TCP系列17—重傳—7、SACK下的重傳

我們之前介紹SACK選項的時候說過,SACK可以把接收端系列號空間的洞反映給發送端,因此發送端可以更充分的理解接收端的情況,而進行更好的重傳恢復過程。這種過程有時候也叫做advanced loss recovery。 一、數據接收端SACK行為 我們通過一個 ...

Mon Nov 07 21:51:00 CST 2016 14 5937
TCP系列14重傳—4、Karn算法和TSOPT的RTTM

一、Karn算法 在RTT采樣測量過程中,如果一個數據包初傳后,RTO超時重傳,接着收到這個數據包的ACK報文,那么這個ACK報文是對應初傳TCP報文還是對應重傳TCP報文呢?這個問題就是retransmission ambiguity problem。當沒有使用TSOPT選項 ...

Mon Nov 07 21:48:00 CST 2016 0 2712
TCP系列45—擁塞控制—8、SACK關閉的擁塞撤銷與虛假快速重傳

一、概述 這篇文章介紹一下TCP從Recovery狀態恢復到Open狀態的時候cwnd的更新。我們在tcp重傳部分的文章中曾經介紹過虛假重傳的概念,Linux在探測虛假重傳的時候就會執行擁塞撤銷操作。所謂的擁塞撤銷是指撤銷虛假的快速重傳或者RTO超時重傳對擁塞窗口的影響。有多種方法可能會觸發擁塞 ...

Mon Nov 07 22:30:00 CST 2016 0 1596
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM