推 ko74652: 可是你貼的第一個網址 就有圖顯示撞門檻直接跟門檻了.. 06/16 09:53
→ ko74652: 我剛翻參考書 翻黃能富講義也都是跟門檻而非跨過門檻 06/16 09:55
→ ko74652: sorry那圖好像是data rate 但不知道跟MSS門檻是否相同意 06/16 10:04
→ ko74652: 思 謝謝你回應 06/16 10:05
→ ko74652: 我大概了解 你可能誤解我解題的想法了@@ 06/16 10:12
→ ko74652: 你可能認為 我覺得接收端視窗會影響到cwnd 06/16 10:12
→ ko74652: 但是其實我想法是因為ssthresh與門檻碰撞 所以才=9 06/16 10:13
→ ko74652: 而並非cwnd 與 rws有關聯 06/16 10:15
對,誤會你觀念不正確了。純好心。
只要您知道 slow start 與 congestion avoidance 對 cwnd 的影響,就值了
ok 觀念正確就好,好事一椿!
怕我推文寫個一兩行您看不懂,才特意花點時間回這篇文。
→ emstarbucks: 每收到一個ack,cwnd++ 06/16 10:51
→ emstarbucks: 還沒完全收完該次所有的ack 就已經撞門檻了@@ 06/16 10:52
e 大,其實我中午就看到你這段,但遲疑了一下。
我之所以這樣答,是根據某老師教的觀念。
請看這張熟到不能再熟的圖 http://goo.gl/92Rc3o
某老師的意思就是只會「規則的指數遞增」超過再跑 +1
但您點出某老師沒教到的點。(就連這張圖也沒講到過)
說破了就是 cwnd = cwnd + 1
如果是真的,某老師又出包了,不過也不只出包一次了。恨他也沒用。
推 gunhello: 他的意思應該是會cwnd繼續增長,跨過門檻才進入避免階段 06/16 16:49
→ gunhello: 所以正確的解答究竟是?還是想再確認一次!! 06/16 16:49
我的意思是 cwnd 的成長,與 advertised window 無關。
cwnd 跑自己的一套增長演算法
→ emstarbucks: 如果以跨過9為主 cwd成長到10的時候就已經進入避免了 06/16 16:58
→ emstarbucks: 再怎麼樣都不會加到16吧@@??? 06/16 16:59
沒錯,演算法真的是如 e 大講的這樣。
而且直覺的推演,值應該要變成
第五次 cwnd=9 送8KB
第六次 cwnd=10 送8KB
不過我遲遲沒馬上回,是一直找不到相關文件證明。
這裡的第五、六次就和 e 大所講的一模一樣。
這很底層了,剛剛看了 rfc 文件,也沒提到這段,有點煩。
※ 編輯: fcouple (211.76.33.33), 06/16/2015 19:23:47
→ emstarbucks: 這裡 cwnd = cwnd + 1 是因為seg剛好是1喔 ! 06/17 01:04
→ emstarbucks: 原始公式應該是 cwnd += segsize 或 cwnd += SMSS 06/17 01:05
→ emstarbucks: Each time an ACK is received , 06/17 01:06
→ emstarbucks: the congestion window is increased by one segment 06/17 01:06
→ emstarbucks: 在Slow start階段是這樣子cwnd成長的 06/17 01:06
→ emstarbucks: Slow start階段 cwnd是這樣子成長的(上面字順序錯了) 06/17 01:09
→ emstarbucks: 進入CA那邊比較有爭議 但不管用哪種實作法 06/17 01:10
→ emstarbucks: 都不可能是16 @@ 06/17 01:10
→ emstarbucks: 第五次因為他會 1. SET cwnd = 門檻 或是 06/17 01:11
→ emstarbucks: cwnd += (seg*seg)/cwnd .. 算一算大概會9.x或10.x吧 06/17 01:12
→ emstarbucks: 不過大部分在第五次那種情況都會設成門檻值 06/17 01:13
→ emstarbucks: 不過第五次cwnd = 門檻 或是cwnd = 9.x~10.x都沒錯 06/17 01:14
→ emstarbucks: 至於第六次 因為已經完全進入ca階段 06/17 01:15
→ emstarbucks: 所以會以一個rtt為主 cwnd = cwnd + 1 06/17 01:15
→ emstarbucks: 當然也有人是直接cwnd += (seg*seg)/cwnd 06/17 01:16
→ emstarbucks: 但如果使用公式的作法 他會有一個上限 06/17 01:16
→ emstarbucks: 增加幅度不可以超過1 segsize 06/17 01:16
→ emstarbucks: 因此通常都是用以一個rtt為主 cwnd = cwnd + 1 06/17 01:17
→ emstarbucks: 所以才會是我們很熟習的那張圖 用公式的圖我也有看過 06/17 01:18
→ emstarbucks: RFC有很多種實作法 @@ 06/17 01:19
謝謝,長知識了。
奇怪了,你怎麼知道那麼底層的東西。
有什麼書可以推薦嗎?
※ 編輯: fcouple (211.76.33.33), 06/17/2015 13:58:06
→ emstarbucks: ns2可以模擬tcp的壅塞控制 06/17 18:17
→ emstarbucks: 以前老師也很喜歡叫我們實作有得沒有得.. 06/17 18:18
→ emstarbucks: 會知道有各家版本也是習慣看各種演算法+paper+文件 06/17 18:18
→ emstarbucks: 我講的也不一定對 因為那版本真的很多 @@ 06/17 18:23
→ emstarbucks: 現在最常用的是哪一版我就不知道了0.0 06/17 18:23
→ emstarbucks: 我們老師比較偏實作吧 會需要跑模擬或真的CODING 06/17 18:24