TCP的流量控制和擁塞控制 (小結)
1、TCP的流量控制
1. 利用滑動視窗實現流量控制
如果傳送方把資料傳送得過快,接收方可能會來不及接收,這就會造成資料的丟失。所謂流量控制就是讓傳送方的傳送速率不要太快,要讓接收方來得及接收。
利用滑動視窗機制可以很方便地在TCP連線上實現對傳送方的流量控制。
2、TCP的擁塞控制
1. 擁塞:即對資源的需求超過了可用的資源。若網路中許多資源同時供應不足,網路的效能就要明顯變壞,整個網路的吞吐量隨之負荷的增大而下降。
擁塞控制:防止過多的資料注入到網路中,這樣可以使網路中的路由器或鏈路不致過載。擁塞控制所要做的都有一個前提:網路能夠承受現有的網路負荷。
流量控制:指點對點通訊量的控制,是端到端正的問題。流量控制所要做的就是抑制傳送端傳送資料的速率,以便使接收端來得及接收。
擁塞控制代價:需要獲得網路內部流量分佈的資訊。在實施擁塞控制之前,還需要在結點之間交換資訊和各種命令,以便選擇控制的策略和實施控制。這樣就產生了額外的開銷。擁塞控制還需要將一些資源分配給各個使用者單獨使用,使得網路資源不能更好地實現共享。
2. 幾種擁塞控制方法
慢開始( slow-start )、擁塞避免( congestion avoidance )、快重傳( fast retransmit )和快恢復( fast recovery )。
2.1 慢開始和擁塞避免
傳送方維持一個擁塞視窗 cwnd ( congestion window )的狀態變數。擁塞視窗的大小取決於網路的擁塞程度,並且動態地在變化。傳送方讓自己的傳送視窗等於擁塞。
傳送方控制擁塞視窗的原則是:只要網路沒有出現擁塞,擁塞視窗就再增大一些,以便把更多的分組傳送出去。但只要網路出現擁塞,擁塞視窗就減小一些,以減少注入到網路中的分組數。
慢開始演算法:當主機開始傳送資料時,如果立即所大量資料位元組注入到網路,那麼就有可能引起網路擁塞,因為現在並不清楚網路的負荷情況。因此,較好的方法是先探測一下,即由小到大逐漸增大發送視窗,也就是說,由小到大逐漸增大擁塞視窗數值。通常在剛剛開始傳送報文段時,先把擁塞視窗 cwnd 設定為一個最大報文段MSS的數值。而在每收到一個對新的報文段的確認後,把擁塞視窗增加至多一個MSS的數值。用這樣的方法逐步增大發送方的擁塞視窗 cwnd ,可以使分組注入到網路的速率更加合理。
2.2 擁塞和流量控制區別
所謂擁塞控制就是防止過多的資料注入到網路中,這樣可以使網路中的路由器或鏈路不致過載。擁塞控制所要做的都有一個前提,就是網路能承受現有的網路負荷。 流量控制往往指的是點對點通訊量的控制,是個端到端的問題。流量控制所要做的就是控制傳送端傳送資料的速率,以便使接收端來得及接受。 3、總結 3.1 TCP 是什麼?<a target=_blank class="baidu-highlight" style="color:rgb(45,100,179); text-decoration:none" href="https://www.baidu.com/s?wd=TCP&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLm1RdnAmYnjTsnvnzuhD10ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1R3Pj03PWc3P6" target="_blank" rel="nofollow"><span style="white-space:pre"> </span>TCP</a>是 Internet 的流控機制。<a target=_blank class="baidu-highlight" style="color:rgb(45,100,179); text-decoration:none" href="https://www.baidu.com/s?wd=TCP&tn=44039180_cpr&fenlei=mv6quAkxTZn0IZRqIHckPjm4nH00T1YLm1RdnAmYnjTsnvnzuhD10ZwV5Hcvrjm3rH6sPfKWUMw85HfYnjn4nH6sgvPsT6K1TL0qnfK1TL0z5HD0IgF_5y9YIZ0lQzqlpA-bmyt8mh7GuZR8mvqVQL7dugPYpyq8Q1R3Pj03PWc3P6" target="_blank" rel="nofollow">TCP</a>協議的基本思想是源端通過線性增加發送速率來探測網路的剩餘容量,與此同時,當檢測到擁塞的時候乘性的減少其傳送速率。