Transcript 補充TCP流量控制
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變化情形 引自中正大學黃仁竑教授講議 横軸是時間 緃軸是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 其它的流量控制方法 引自中正大學黃仁竑教授講議 2010-05-NCUT Shih-Chieh Su END 2010-05-NCUT Shih-Chieh Su