TCP-TLP

1 TLP(Tail Loss Probe)

尾部探測(cè)算法
當(dāng)發(fā)送端連續(xù)收到3個(gè)重復(fù)的ACK時(shí),發(fā)送端會(huì)開始快重傳:不等重傳定時(shí)器超時(shí),立刻進(jìn)行重傳。但是在下面三種情況下將導(dǎo)致即使需要立刻快重傳但是因?yàn)闆]有收到3次ACK而無法快重傳:

  • 擁塞窗口很小,比如是2
  • 發(fā)送出去的報(bào)文大部分丟失,接收端無法響應(yīng)3次ACK
  • ACK大部分丟失,接收端沒有收到3次ACK
    那么TLP就是解決這種問題的。
    其實(shí)對(duì)于交互類應(yīng)用,比如游戲和web服務(wù)等,能夠快速重傳而不是需要等待重傳定時(shí)器超時(shí)再重傳對(duì)于降低延遲是很重要的。

2 基本策略

TLP算法會(huì)在TCP還是Open狀態(tài)的時(shí)候,設(shè)置一個(gè)Probe TimeOut (PTO)。
當(dāng)鏈路中有未被確認(rèn)的數(shù)據(jù)包,同時(shí)在PTO時(shí)間內(nèi)未收到任何ACK,則會(huì)觸發(fā)PTO
超時(shí)處理機(jī)制。
TLP會(huì)選擇傳輸序號(hào)最大的一個(gè)數(shù)據(jù)包作為tail loss probe包,這個(gè)序號(hào)最大的包可能是
一個(gè)可以發(fā)送的新的數(shù)據(jù)包,也可能是一個(gè)重傳包。
TLP通過這樣一個(gè)tail loss probe包,如果能夠收到相應(yīng)的ACK,則會(huì)觸發(fā)FR機(jī)制,而不是RTO機(jī)制。

2.1 觸發(fā)超時(shí)機(jī)制的常見場(chǎng)景

這些case還是用大神們的原文描述比較準(zhǔn)確:)

a. Drop tail at the end of transactions.
b. Mid-transaction loss of an entire window of data or ACKs.
c. Insufficient number of duplicate ACKs to trigger fast recovery at sender.
    -- 基本被Eearly Retransmit機(jī)制解決了
d. An unexpectedly long round-trip time(RTT), such that the ACKs arrive after
   the RTO timer expires.
    -- F-RTO機(jī)制通過檢測(cè)spurious retransmission,能夠盡量的undo RTO造成的影響

Early Retransmit技術(shù)可參考這篇wiki
F-RTO技術(shù)可參考這篇wiki

Google Web servers上面,將近70%的重傳是RTO超時(shí)重傳,只有30%是Fast Recovery重傳。
同時(shí)還有數(shù)據(jù)表明,96%的RTO超時(shí)重傳是在沒有收到任何dupack的情況下發(fā)生的。
沒有到任何dupack就意味著FR和ER機(jī)制都是無法生效的。

參考

下面這篇文章結(jié)合linux源碼和RFC詳細(xì)講解了TLP
TCP Tail Loss Probe(TLP)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 21.1 引言 TCP提供可靠的運(yùn)輸層。它使用的方法之一就是確認(rèn)從另一端收到的數(shù)據(jù)。但數(shù)據(jù)和確認(rèn)都有可能會(huì)丟失。T...
    張芳濤閱讀 3,378評(píng)論 0 8
  • 這篇文章是下篇,所以如果你對(duì)TCP不熟悉的話,還請(qǐng)你先看看上篇《TCP的那些事兒(上)》 上篇中,我們介紹了TCP...
    愛我你就抱抱我閱讀 674評(píng)論 0 0
  • 本文主要通過整理網(wǎng)絡(luò)上的資料,整理出的關(guān)于TCP方面的簡(jiǎn)單理論知識(shí)。作為Java程序員雖然更多的時(shí)候我們都是直接調(diào)...
    tomas家的小撥浪鼓閱讀 6,060評(píng)論 1 100
  • 注:選題:盤點(diǎn),標(biāo)題《孩子,謝謝你讓我哭了》 親愛的寶貝兒,今天是新年第一天,你要三歲了。 當(dāng)你樂顛顛地蹦到我面前...
    北京杜豆豆閱讀 708評(píng)論 3 11
  • 2016 年8月10日 晴 一秒秒的計(jì)算 離十二點(diǎn)一指距離 抱著喜歡的香水瓶 迷惑著結(jié)束的鐘聲響起 敞開的筆記 六...
    鮮栗子閱讀 165評(píng)論 0 1

友情鏈接更多精彩內(nèi)容