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