亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

標(biāo)題: 糊涂窗口綜合癥及其解決方法 [打印本頁]

作者: 51黑tt    時間: 2016-3-5 18:44
標(biāo)題: 糊涂窗口綜合癥及其解決方法
7-13:能否更詳細(xì)些討論一下糊涂窗口綜合癥及其解決方法?
答:發(fā)送端產(chǎn)生的癥狀
如果發(fā)送端為產(chǎn)生數(shù)據(jù)很慢的應(yīng)用程序服務(wù),例如,一次產(chǎn)生一個字節(jié)。這個應(yīng)用程序一次將一個字節(jié)的數(shù)據(jù)寫入發(fā)送端的TCP的緩存。如果發(fā)送端的TCP沒有特定的指令,它就產(chǎn)生只包括一個字節(jié)數(shù)據(jù)的報文段。結(jié)果有很多41字節(jié)的IP數(shù)據(jù)報就在互連網(wǎng)中傳來傳去。
解決的方法是防止發(fā)送端的TCP逐個字節(jié)地發(fā)送數(shù)據(jù)。必須強(qiáng)迫發(fā)送端的TCP收集數(shù)據(jù),然后用一個更大的數(shù)據(jù)塊來發(fā)送。發(fā)送端的TCP要等待多長時間呢?如果它等待過長,它就會使整個的過程產(chǎn)生較長的時延。如果它的等待時間不夠長,它就可能發(fā)送較小的報文段。Nagle找到了一個很好的解決方法。
?Nagle算法
Nagle算法非常簡單,但它能解決問題。這個算法是為發(fā)送端的TCP用的:
1. 發(fā)送端的TCP將它從發(fā)送應(yīng)用程序收到的第一塊數(shù)據(jù)發(fā)送出去,哪怕只有一個字節(jié)。
2. 在發(fā)送第一個報文段(即報文段1)以后,發(fā)送端的TCP就在輸出緩存中積累數(shù)據(jù),并等待:或者接收端的TCP發(fā)送出一個確認(rèn),或者數(shù)據(jù)已積累到可以裝成一個最大的報文段。在這個時候,發(fā)送端的TCP就可以發(fā)送這個報文段。
3. 對剩下的傳輸,重復(fù)步驟2。這就是:如果收到了對報文段x的確認(rèn),或者數(shù)據(jù)已積累到可以裝成一個最大的報文段,那么就發(fā)送下一個報文段(x + 1)
Nagle算法的優(yōu)點(diǎn)就是簡單,并且它考慮到應(yīng)用程序產(chǎn)生數(shù)據(jù)的速率,以及網(wǎng)絡(luò)運(yùn)輸數(shù)據(jù)的速率。若應(yīng)用程序比網(wǎng)絡(luò)更快,則報文段就更大(最大報文段)。若應(yīng)用程序比網(wǎng)絡(luò)慢,則報文段就較小(小于最大報文段)。
接收端產(chǎn)生的癥狀
接收端的TCP可能產(chǎn)生糊涂窗口綜合癥,如果它為消耗數(shù)據(jù)很慢的應(yīng)用程序服務(wù),例如,一次消耗一個字節(jié)。假定發(fā)送應(yīng)用程序產(chǎn)生了1000字節(jié)的數(shù)據(jù)塊,但接收應(yīng)用程序每次只吸收1字節(jié)的數(shù)據(jù)。再假定接收端的TCP的輸入緩存為4000字節(jié)。發(fā)送端先發(fā)送第一個4000字節(jié)的數(shù)據(jù)。接收端將它存儲在其緩存中。現(xiàn)在緩存滿了。它通知窗口大小為零,這表示發(fā)送端必須停止發(fā)送數(shù)據(jù)。接收應(yīng)用程序從接收端的TCP的輸入緩存中讀取第一個字節(jié)的數(shù)據(jù)。在入緩存中現(xiàn)在有了1字節(jié)的空間。接收端的TCP宣布其窗口大小為1字節(jié),這表示正渴望等待發(fā)送數(shù)據(jù)的發(fā)送端的TCP會把這個宣布當(dāng)作一個好消息,并發(fā)送只包括一個字節(jié)數(shù)據(jù)的報文段。這樣的過程一直繼續(xù)下去。一個字節(jié)的數(shù)據(jù)被消耗掉,然后發(fā)送只包含一個字節(jié)數(shù)據(jù)的報文段。這又是一個效率問題和糊涂窗口綜合癥(見下圖)。
對于這種糊涂窗口綜合癥,即應(yīng)用程序消耗數(shù)據(jù)比到達(dá)的慢,有兩種建議的解決方法。
?Clark解決方法    Clark解決方法是只要有數(shù)據(jù)到達(dá)就發(fā)送確認(rèn),但宣布的窗口大小為零,直到或者緩存空間已能放入具有最大長度的報文段,或者緩存空間的一半已經(jīng)空了。
?延遲的確認(rèn)    第二個解決方法是延遲一段時間后再發(fā)送確認(rèn)。這表示當(dāng)一個報文段到達(dá)時并不立即發(fā)送確認(rèn)。接收端在確認(rèn)收到的報文段之前一直等待,直到入緩存有足夠的空間為止。延遲的確認(rèn)防止了發(fā)送端的TCP滑動其窗口。當(dāng)發(fā)送端的TCP發(fā)送完其數(shù)據(jù)后,它就停下來了。這樣就防止了這種癥狀。
遲延的確認(rèn)還有另一個優(yōu)點(diǎn):它減少了通信量。接收端不需要確認(rèn)每一個報文段。但它也有一個缺點(diǎn),就是遲延的確認(rèn)有可能迫使發(fā)送端重傳其未被確認(rèn)的報文段。
可以用協(xié)議來平衡這個優(yōu)點(diǎn)和缺點(diǎn),例如現(xiàn)在定義了確認(rèn)的延遲不能超過500毫秒






歡迎光臨 (http://www.denmoz.com/bbs/) Powered by Discuz! X3.1