日本免费全黄少妇一区二区三区-高清无码一区二区三区四区-欧美中文字幕日韩在线观看-国产福利诱惑在线网站-国产中文字幕一区在线-亚洲欧美精品日韩一区-久久国产精品国产精品国产-国产精久久久久久一区二区三区-欧美亚洲国产精品久久久久

TCP擁塞控制( 三 )


實(shí)現(xiàn)說(shuō)明:一些實(shí)現(xiàn)以字節(jié)為單位維持cwnd,另外一些實(shí)現(xiàn)以滿(mǎn)尺寸數(shù)據(jù)段為單位 。
后者很難使用等式(2),因此可能會(huì)選擇上一段討論的計(jì)算方法 。
當(dāng)一個(gè)TCP用重傳定時(shí)器檢測(cè)到數(shù)據(jù)段丟失時(shí),ssthresh的值必須設(shè)定大于等式(3)
中給出的值:
ssthresh=max(FlightSize/2,2*SMSS)(3)
正如上面所討論的,F(xiàn)lightSize是仍在網(wǎng)絡(luò)中傳送的數(shù)據(jù)量 。
實(shí)現(xiàn)說(shuō)明:一個(gè)輕易犯的錯(cuò)誤是一味地使用cwnd而不使用FlightSize,F(xiàn)lightSize
在一些實(shí)現(xiàn)里可能比rwnd增長(zhǎng)得更快 。
此外,一旦超時(shí),cwnd值必須設(shè)定不大于丟失窗口尺寸,LW,它和一個(gè)滿(mǎn)尺寸數(shù)據(jù)
段的大小相等(不管IW的值) 。因此,在重發(fā)丟失數(shù)據(jù)段之后,TCP發(fā)送端使用慢啟動(dòng)算法將
窗口尺寸從一個(gè)滿(mǎn)尺寸數(shù)據(jù)段增加到ssthresh的新值,此時(shí)擁塞避免再次發(fā)揮決定作用 。
3.2快速重傳/快速恢復(fù)
當(dāng)一個(gè)次序紊亂的數(shù)據(jù)段到達(dá)時(shí)TCP接受端應(yīng)該迅速發(fā)送一個(gè)重復(fù)ACK 。這個(gè)ACK
的目的是通知發(fā)送端收到了一個(gè)次序紊亂的數(shù)據(jù)段,以及期望的序列號(hào) 。從發(fā)送端的觀點(diǎn)來(lái)
看,重復(fù)ACK可以由許多網(wǎng)絡(luò)問(wèn)題引起 。首先,可以由數(shù)據(jù)段丟失引起 。在這種情況下,所
有在丟失的數(shù)據(jù)段之后發(fā)送的數(shù)據(jù)段都將觸發(fā)重復(fù)ACK 。第二,可以由網(wǎng)絡(luò)對(duì)數(shù)據(jù)的重新排序
引起(這在某些網(wǎng)絡(luò)路徑上并不少見(jiàn)[Pax97]) 。最后,重復(fù)ACK可以由網(wǎng)絡(luò)對(duì)ACK或數(shù)據(jù)數(shù)
據(jù)段的復(fù)制引起 。另外,當(dāng)接收數(shù)據(jù)段填補(bǔ)了全部或部分序列號(hào)間隔時(shí),TCP接收端應(yīng)該立即
發(fā)送一個(gè)ACK 。這將為一個(gè)通過(guò)重傳超時(shí)機(jī)制來(lái)從數(shù)據(jù)丟失中恢復(fù)的發(fā)送端提供更多的及時(shí)的
信息,此機(jī)制可能是一個(gè)快速重傳,或者一個(gè)實(shí)驗(yàn)性的數(shù)據(jù)丟失恢復(fù)算法,比如
NewReno[FH98] 。
TCP發(fā)送端應(yīng)該使用“快速重傳”算法來(lái)探測(cè)或者修復(fù)數(shù)據(jù)丟失,以收到的重復(fù)ACK
為基礎(chǔ) ??焖僦貍魉惴ㄒ匀齻€(gè)重復(fù)ACK的到達(dá)(收到四個(gè)一樣的ACK,其間沒(méi)有任何其他包到
達(dá))為一個(gè)數(shù)據(jù)段已經(jīng)丟失的標(biāo)志 。在收到三個(gè)重復(fù)ACK之后,TCP不等重傳定時(shí)器超時(shí)就重
傳看來(lái)已經(jīng)丟失的數(shù)據(jù)段 。
在快速重傳算法發(fā)送了看來(lái)已經(jīng)丟失的數(shù)據(jù)段之后,“快速恢復(fù)”算法支配了新數(shù)據(jù)
的傳送,直到一個(gè)非重復(fù)ACK到達(dá) 。不進(jìn)行慢啟動(dòng)的原因是收到重復(fù)ACK不僅意味著一個(gè)數(shù)
據(jù)段已經(jīng)丟失,而且意味著數(shù)據(jù)段非??赡軓木W(wǎng)絡(luò)丟失(盡管網(wǎng)絡(luò)產(chǎn)生大量的重復(fù)數(shù)據(jù)段可
以保證不丟失) 。換句話說(shuō),因?yàn)榻邮斩酥挥性诋?dāng)一個(gè)數(shù)據(jù)段已經(jīng)到達(dá)時(shí)才產(chǎn)生一個(gè)重復(fù)ACK,
由此我們可以知道,已經(jīng)脫離網(wǎng)絡(luò),存儲(chǔ)在接收端的緩沖區(qū)里的數(shù)據(jù)段不會(huì)再消耗網(wǎng)絡(luò)資源 。
另外,因?yàn)锳CK"clock"保存起來(lái)了,TCP發(fā)送端可以繼續(xù)發(fā)送新的數(shù)據(jù)段(盡管傳送必須
繼續(xù)使用一個(gè)減小的cwnd) 。
快速傳送和快速恢復(fù)算法經(jīng)常像下面那樣一起實(shí)現(xiàn) 。
1. 當(dāng)?shù)谌齻€(gè)重復(fù)ACK收到時(shí),設(shè)置ssthresh不大于等式3給定的值 。
2. 重傳丟失的數(shù)據(jù)段并設(shè)置cwnd的值為ssthresh乘以3*SMSS 。這將人為地按已經(jīng)離開(kāi)網(wǎng)
絡(luò)的報(bào)文段數(shù)目(3)和接收端緩沖數(shù)據(jù)量來(lái)擴(kuò)充擁塞窗口 。
3. 對(duì)每個(gè)接收到的附加的重復(fù)ACK,將cwnd增大SMSS字節(jié) 。這將人為地?cái)U(kuò)充擁塞窗口以反
映已經(jīng)離開(kāi)網(wǎng)絡(luò)的附加數(shù)據(jù)段 。
4. 發(fā)送一個(gè)數(shù)據(jù)段,假如cwnd和接收端的通知窗口的值答應(yīng)的話 。
5. 當(dāng)下一個(gè)確認(rèn)新數(shù)據(jù)的ACK到達(dá)時(shí),設(shè)定cwnd值為ssthresh(步驟1設(shè)置的值) 。這稱(chēng)
作“deflating"窗口 。這個(gè)ACK必須是步驟1觸發(fā)的重發(fā)引起的確認(rèn),重發(fā)之后一個(gè)RTT

推薦閱讀