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