生活随笔
收集整理的這篇文章主要介紹了
赶尽杀绝TCP
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
長肥管道
一個連接的時延帶寬積可表示為:capacity(b)=bandwidth(b/s)×round-triptime(s)。也可稱它為兩端的管道大小。
具有大的帶寬時延乘積的網絡被稱為長肥網絡(LongFatNetwork,即LFN),而一個運行在LFN上的TCP連接被稱為長肥管道。使用長肥管道會遇到多種問題。
TCP首部中窗口大小為16bit,因此窗口大小最大為65535字節,這就將發送方發送但未被確認的數據的總長度限制到了65536字節。對于LFN管道,這可能會出現所有的數據都還未到達接收方,但是發送方已受限于窗口大小而不能繼續發送的情形,這就極大的降低了網絡的吞吐量。擴大窗口選項可以解決這個問題。根據TCP的擁塞控制,丟失分組會導致連接進行擁塞控制,即便是由于冗余ACK而進入了快速恢復,也會使得擁塞窗口降低一半,而如果是由于超時進入了慢啟動,則擁塞窗口會變為1,無論是哪一種情形,發送方允許被發送的數據量都大量減小了,這會導致網絡吞吐量降低。選擇確認(SACK)可以用來部分避免該問題,采用該技術使得接收方可以有選擇的對無序到達的報文段進行確認而不是采用累積確認,這樣被確認的報文段就不會超時,也不會有冗余的ACK。?TCP并不對每個報文段進行RTT測量。在一個長肥網絡LFN上需要更好的RTT測量機制。TCP對每個字節數據使用一個32bit無符號的序號來進行標識。TCP定義了最大的報文段生存時間(MSL)來限制報文段在網絡中的生存時間。但是在LFN網絡上,由于序號空間是有限的,在已經傳輸了4294967296個字節以后序號會被重用。如果網絡快到在不到一個MSL的時候序號就發生了回繞,網絡中就會有兩個具有相同序號的不同的報文段,接收方將無法區分它們的順序。在一個千兆比特網絡(1000Mb/s)中只需要34秒就可以完成4294967296個字節的發送。使用TCP的時間戳選項的PAWS(ProtectionAgainstWrappedSequencenumbers)算法(保護回繞的序號)可以解決該問題。
總結
以上是生活随笔為你收集整理的赶尽杀绝TCP的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。