1. 程式人生 > >TCP協議調優-強制快速重傳技術(Spurious retransmissions)

TCP協議調優-強制快速重傳技術(Spurious retransmissions)

RTT Distribution一般如下圖:

以上資料來自google.com。注意大於1秒的RTT有大約2.5%。而超時重傳的概率有0.8% - 2.4%。

RTO(Retransmission Timeout)作業系統預設如下:

Linux的超時重傳預設是3秒,這就意味這,一旦發生丟包,使用者的體驗將會很不好,因此可以採用強制快速重傳技術來進行提速(Spurious SYN/SYN-ACK retransmissions),將超時重傳時間強制設定為1秒。但這可能會導致duplicate packets,可以通過修改TS(tcp_sack引數,鏈路質量良好的情況下一般設0)或DSACK(允許發多個ACK,這裡也用設0的方式)等方式來進行改進。

sysctl -w net.ipv4.tcp_sack=0
sysctl -w net.ipv4.tcp_dsack=0

sysctl -p

據瞭解,google的前臺伺服器TCP重傳率為0.8% - 2.4% 。SYN-ACK重傳率0.6% - 3.8%(未優化的情況)。

----------------------------------------------------------------------------------------------------------- 

相關推薦

TCP協議調-強制快速技術Spurious retransmissions

RTT Distribution一般如下圖: 以上資料來自google.com。注意大於1秒的RTT有大約2.5%。而超時重傳的概率有0.8% - 2.4%。 RTO(Retransmission Timeout)作業系統預設如下: Linux的超時重傳預設是3秒

Linux下tcp協議socket的recv函式返回時機分析粘包

http://www.vckbase.com/index.php/wv/10http://blog.csdn.net/zlzlei/article/details/7689409文章一: 當前在網路傳輸應用中,廣泛採用的是TCP/IP通訊協議及其標準的socket應用開發程式設計介面(API)。TCP/IP

TCP快速快速恢復原理分析

轉自 http://blog.csdn.net/zhangskd/article/details/7174682 超時重傳是TCP協議保證資料可靠性的一個重要機制,其原理是在傳送一個數據以後就開啟一個計時器,在一定時間內如果沒有得到傳送資料報的ACK報文,那麼就重新發送資

TCP慢啟動、擁塞避免、快速快速回復

為了防止網路的擁塞現象,TCP提出了一系列的擁塞控制機制。最初由V. Jacobson在1988年的論文中提出的TCP的擁塞控制由“慢啟動(Slow start)”和“擁塞避免(Congestion avoidance)”組成,後來TCP Reno版本中又針對性的加入了“快速重傳(Fast retransm

淺談TCP/IP四種計時器、慢啟動、擁塞避免、快速快速恢復

持續計時器 假設一種場景:A給B傳送資料,如果B告訴A自己的緩衝區已滿,於是A停止傳送資料,等待一段時間後,B的緩衝區出現了富餘,於是給A傳送報文告訴rwnd大小為400,但是這個報文不幸丟失了,於是就出現A等待B的通知,B等待A傳送資料的死鎖狀態,為了處理這

TCP擁塞控制:慢啟動,擁塞避免,快速快速恢復

擁塞控制的目的:為了提高網路利用率,降低丟包率,並保證網路資源對每條資料流的公平性擁塞控制最終是控制了什麼?:傳送端向網路一次連續寫入的資料量,即SWND(傳送視窗)。慢啟動:當主機開始傳送資料時,如果立即將大量資料注入網路,就容易引起網路擁塞。而慢啟動演算法就是先給定一個較

TCP快速快速恢復機制

超時重傳是TCP協議保證資料可靠性的一個重要機制,其原理是在傳送一個數據以後就開啟一個計時器, 在一定時間內如果沒有得到傳送資料報的ACK報文,那麼就重新發送資料,直到傳送成功為止。這是資料 包丟失的情況下給出的一種修補機制。一般來說,重傳發生在超時之後,但是如果傳送端接

Storm排錯調之Worker

                                          &

Shell應用6: TCP核心調與轉儲設定

1#! /bin/bash 2# ktcpopt 34sed -i '/net.ipv4.tcp_syncookies\|net.ipv4.tcp_tw_reuse\|net.ipv4.tcp_tw_recycle\|net.ipv4.tcp_fin_timeout\|net.ipv4.tcp_max_syn

Linux TCP/IP調-Linux內核參數註釋

單獨 keepalive cep ans 作用 必須 reset sequence bsd 固定文件的內核參數 下列文件所在目錄: /proc/sys/net/ipv4/ 名稱默認值建議值描述 tcpsyn_retries 5 1 對於一個新建連接

TCP-IP詳解:超時機制

參考教材:TCP-IP Guide  超時重傳是TCP保證資料傳輸可靠性的又一大措施,本文主要介紹重傳TCP報文的兩大舉措:超時重傳和快速重傳 超時重傳機制 超時重傳指的是,傳送資料包在一定的時間週期內沒有收到相應的ACK,等待一定的時間,超時之後就認為這個資料包丟失,

linux下修改核心引數進行Tcp效能調 -- 高併發

前言: Tcp/ip協議對網路程式設計的重要性,進行過網路開發的人員都知道,我們所編寫的網路程式除了硬體,結構等限制,通過修改Tcp/ip核心引數也能得到很大的效能提升, 下面就列舉一

TCP/IP詳解--幾類定時器的作用 保活定時器

與資料鏈路層的ARQ協議相類似,TCP使用超時重發的重傳機制。即:TCP每傳送一個報文段,就對此報文段設定一個超時重傳計時器。此計時器設定的超時重傳時間RTO(Retransmission Time-Out)應當略大於TCP報文段的平均往返時延RTT,一般可取RTO=2R

linux核心的tcp/ip調

net.ipv4.tcp_fin_timeout = 30 net.ipv4.tcp_keepalive_time = 300 net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recy

慢啟動、擁塞避免、超時快速快速恢復、滑動視窗

流量控制 因為資料的傳送方和接收方並不一定具有相同的資料處理能力,為了避免資料傳送方的資料傳送過快,而導致其超過了接受端的資料處理能力,TCP採用了流量控制機制,接收方在TCP的包頭裡面採用16位RWND,通告發送方自己的接收視窗,也就是還能夠接收的最多的資料

Tcp效能調 解決Tcp長延時

背景: 根據Tcp的理論計算,Tcp最佳狀態下傳輸是流水並行的,傳輸時間等於傳輸資料耗時+TTL,即千兆網絡卡的環境下 傳輸1MB資料需要:  1000ms/100MB*1MB+TTL=10ms+TTL,同機房傳輸1MB耗時10毫秒,跨機房理論耗時14毫秒 傳輸4

快速快速恢復

2.2 快重傳和快恢復     如果傳送方設定的超時計時器時限已到但還沒有收到確認,那麼很可能是網路出現了擁塞,致使報文段在網路中的某處被丟棄。這時,TCP馬上把擁塞視窗 cwnd 減小到1,並執行慢開始演算法,同時把慢開始門限值ssthresh減半。這是不使用快重傳的

超時、慢啟動和擁塞控制、快速及恢復

1、超時重傳 1、引言 TCP提供可靠的運輸層。它使用的方法之一就是確認從另一端收到的資料。但資料和確認都有可能會丟失。TCP通過在傳送時設定一個定時器來解決這種問題。如果當定時器溢位時還沒有收到確認,它就重傳該資料。對任何實現而言,關鍵之處就在於超時和重傳

SQL調技巧:統計信息文末福利

SQL 統計信息 優化器 點擊上方“異步社區”,選擇“置頂公眾號”技術幹貨,第一時間送達統計信息類似於戰爭中的偵察兵,如果情報工作沒有做好,打仗就會輸掉戰爭。同樣的道理,如果沒有正確地收集表的統計信息,或者沒有及時地更新表的統計信息,SQL的執行計劃就會跑偏,SQL也就會出現性能問題。收集統計信息

6.TCP/IP流協議(處理粘包):包尾\nrecv/send

recv ssize_t recv(int socket, void *buffer, size_t length, int flags); 返回值 > 0 成功接收資料大小 = 0 另外一端關閉了套接字 = -1 錯誤,需要獲取錯誤