Ch10 add tcp
- 2. Flow Control ( 流量控制 )
Flow Control 與 Congestion control
主要是控制 Sender 可以送多快 .
控制的原因
FastSender
Slow Receiver
Sender 送太快 receiver 收太慢會造成
Receiver Buffer Overflow.
2010-05-NCUT Shih-Chieh Su
- 3. Flow Control ( 流量控制 )
如何讓 Sender 知道不能送太快呢 ?
TCP 中 Receiver
會回送 Receiver Advertised
Window(RWND) ,即 Receiver 剩下有多大的
buffer ,把它定義成 Advertised( 公佈 )
Window.
把 RWND 的值放在要回送給 sender 的 ACK
裡面,使 Sender 可以知道 Receiver 的 buffer
剩下的空間還有多少,此欄位在 TCP 的
Header 裡面 .
2010-05-NCUT Shih-Chieh Su
- 4. Flow Control ( 流量控制 )
當 Sender 送太快, Recever 也數很快,但還是
發生擁塞!原因為何 ?
Answer :擁塞發生在網路上.
擁塞發生在網路上要如何反應網路擁塞的問題?
Answer :只要封包 time out 即判斷為網路擁塞
如何解決網路擁塞 ?
調整 CWND(Congested Window size)
2010-05-NCUT Shih-Chieh Su
- 5. Flow Control ( 流量控制 )
如何顧全 Flow control 與 Congestion
Control 呢?
取 Min(RWND,CWND) ,
滿足 Flow control 與 Congested Control .
並以 (RWND,CWND) 的最小值做為可以送
packet 的 Window size.
2010-05-NCUT Shih-Chieh Su
- 6. Flow Control ( 流量控制 )
TCP 控制 Flow control 與 Congestion
Control 的方式是使用一個滑動視窗 (Sliding
window) 的機制來控制同一個時間 Sender 可
以送出去還沒有被 ACK 的 Packet 有多少
個
2010-05-NCUT Shih-Chieh Su
- 8. TCP 基本的概念
所謂的 TCP 通常是指 Tahoe Congestion
Control 的做法.
特性: Additive Increase Multiplicative
Decrease (AIMD)
用加法的速度遞增 (Additive Increase )
用乘法的速度遞減 (Multiplicative Decrease)
2010-05-NCUT Shih-Chieh Su
- 9. TCP Tahoe 的定義
何時用加法的速度遞增 (Additive Increase )
收到 ACK 時 ( 表示資料傳送沒有問
Sender
題 ) ,在這樣情況下它區分成二個階段
Slow start
CWND <= threshold, CWND++
當 CWND > threshold, 則進入
擁塞避免 (Congestion Avoidance )
此時 CWND 每次只增加 1/CWND+c
2010-05-NCUT Shih-Chieh Su
- 11. Multiplicative Decrease
當 packet 發生 time out 時, TCP 判斷為
發生擁塞了,要做 multiplicative
decrease .
即把 threshold 設成目前 CWND 的 1/2 ,
而且把 CWND down 到 1. 變成初始狀態,
所以發生擁塞時整個 source 可以送的
packet 就大幅 down 下來,即可有效解決
擁塞的問題.
2010-05-NCUT Shih-Chieh Su
- 12. CWND 變化情形
横軸是時間
緃軸是 CWND 的變化
1,2,4,8 是 Slow Start 的狀態 .
Threashold 是 8, 即 8 以上改成
Congestion Avoidance.
到 12 時 CWND 直接降為
1,Threashold 設成現在的一
半 -6.
6 以下是 Slow Start;6 以上變
成 Congestion Avoidance.
以此類推 .
2010-05-NCUT Shih-Chieh Su
引自中正大學黃仁竑教授講議
- 13. 其它的流量控制方法
2010-05-NCUT Shih-Chieh Su
引自中正大學黃仁竑教授講議