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

之前我們介紹的都是協議中給出的RTO計算方法,下面我們看一下linux實現中RTO的計算方法。在linux中維護了srtt mdev mdev max rttvar rtt seq幾個狀態變量用來計算RTO,其中linux實現中的mdev變量相當於協議中的RTTVAR變量。rtt seq狀態變量用來控制一個RTT時間窗,linux在一個RTT時間窗內部更新狀態變量的方式與RTT時間窗結束更新狀態變 ...

2016-11-07 13:50 1 1965 推薦指數:

查看詳情

TCP系列13—重傳—3、協議RTO計算RTO定時器維護

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

Mon Nov 07 21:48:00 CST 2016 0 4557
TCP系列24—重傳—14、F-RTO虛假重傳探測

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

Mon Nov 07 21:58:00 CST 2016 0 2166
TCP系列12—重傳—2、Linux超時重傳引入示例

在前面我們概述了TCP的超時重傳之后我們簡單的看一下tcp超時重傳的示例。首先簡單的描述一下測試過程 1、設置/proc/sys/net/ipv4/tcp_early_retrans為2,關掉TLP功能(后面內容介紹TLP)。設置/proc/sys/net/ipv4 ...

Mon Nov 07 21:47:00 CST 2016 3 5552
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
TCPRTT的測量和RTO計算 以及 接收緩存大小的動態調整

RTT測量 在發送端有兩種RTT的測量方法,但是因為TCP流控制是在接收端進行的,所以接收端也需要 有測量RTT的方法。 調整接收緩存 數據從TCP接收緩存復制到用戶空間之后,會調用tcp_rcv_space_adjust()來調整TCP接收緩存和接收窗口 ...

Sun Nov 24 01:52:00 CST 2019 0 355
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM