一個連線的時延頻寬積可表示為: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)算法(保護迴繞的序號)可以解決該問題。
1.TCP首部中視窗大小為16bit,因此視窗大小最大為65535位元組,這就將傳送方傳送但未被確認的數據的總長度限制到了65536位元組。對於LFN管道,這可能會出現所有的數據都還未到達接收方,但是傳送方已受限於視窗大小而不能繼續傳送的情形,這就極大的降低了網路的吞吐量。擴大視窗選項可以解決這個問題。
2.根據TCP的擁塞控制,丟失分組會導致連線進行擁塞控制,即便是由於冗餘ACK而進入了快速恢復,也會使得擁塞視窗降低一半,而如果是由於逾時進入了慢啟動,則擁塞視窗會變為1,無論是哪一種情形,傳送方允許被傳送的數據量都大量減小了,這會導致網路吞吐量降低。選擇確認(SACK)可以用來部分避免該問題,採用該技術使得接收方可以有選擇的對無序到達的報文段進行確認而不是採用累積確認,這樣被確認的報文段就不會逾時,也不會有冗餘的ACK。
3.TCP並不對每個報文段進行RTT測量。在一個長肥網路LFN上需要更好的RTT測量機制。
4.TCP對每個位元組數據使用一個32bit無符號的序號來進行標識。TCP定義了最大的報文段生存時間(MSL)來限制報文段在網路中的生存時間。但是在LFN網路上,由於序號空間是有限的,在已經傳輸了4294967296個位元組以後序號會被重用。如果網路快到在不到一個MSL的時候序號就發生了迴繞,網路中就會有兩個具有相同序號的不同的報文段,接收方將無法區分它們的順序。在一個千兆比特網路(1000Mb/s)中只需要34秒就可以完成4294967296個位元組的傳送。使用TCP的時間戳選項的PAWS(ProtectionAgainstWrappedSequencenumbers)算法(保護迴繞的序號)可以解決該問題。

