九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
《網(wǎng)絡(luò)協(xié)議》TCP 擁塞控制

http://blog.csdn.net/chenhanzhun/article/details/41825113

2014

概述

        TCP 擁塞控制能夠提高網(wǎng)絡(luò)利用率,降低丟包率,并保證網(wǎng)絡(luò)資源對(duì)每條數(shù)據(jù)流的公平性。擁塞控制主要有幾種:慢啟動(dòng)、擁塞避免、快速重傳 以及快速恢復(fù)

        擁塞控制的最終受控變量是發(fā)送端向網(wǎng)絡(luò)一次連續(xù)寫入的數(shù)據(jù)量(即收到其中第一個(gè)數(shù)據(jù)的確認(rèn)應(yīng)答之前的所有數(shù)據(jù)),稱為發(fā)送窗口(send window,SWND)。但是發(fā)送端往往最終以 TCP 報(bào)文段來發(fā)送數(shù)據(jù),所以 SWND 限定了發(fā)送端能夠連續(xù)發(fā)送 TCP 報(bào)文段的數(shù)量。發(fā)送端應(yīng)該合理的選擇 SWND 的大小,若該值太小,會(huì)引起網(wǎng)絡(luò)延遲,若太大,則容易導(dǎo)致網(wǎng)絡(luò)擁塞。前面中我們知道,接收端可通過其接收通告窗口(RWND)來控制發(fā)送端的 SWND 大小,但是發(fā)送端應(yīng)該引入一個(gè)擁塞窗口(Congestion Window,CWND)的狀態(tài)量。實(shí)際的 SWND 值就是 RWND 和 CWND 中的較小者。


慢啟動(dòng)

       為了防止網(wǎng)絡(luò)擁塞,TCP 采用了一種慢啟動(dòng)算法,對(duì)發(fā)送數(shù)據(jù)量進(jìn)行控制。為了調(diào)節(jié)發(fā)送端的數(shù)據(jù)發(fā)送量,引入了擁塞窗口,在慢啟動(dòng)時(shí),將這個(gè)擁塞窗口設(shè)為 1 個(gè)報(bào)文段發(fā)送數(shù)據(jù),之后每收到一次確認(rèn)應(yīng)答,擁塞窗口的值就加 1 個(gè)報(bào)文段。在發(fā)送數(shù)據(jù)包時(shí),將擁塞窗口的大小與接收端主機(jī)通知的窗口大小進(jìn)行比較,然后選擇較小的值來控制數(shù)據(jù)量的發(fā)送。擁塞窗口是發(fā)送端使用的流量控制,而通告窗口則是接收端使用的流量控制。

       慢啟動(dòng)算法步驟如下(cwnd全稱Congestion Window):

  1. 初始化 cwnd = 1,表示可以傳一個(gè) MSS 大小的數(shù)據(jù);
  2. 每當(dāng)收到一個(gè) ACK,cwnd++,即增加1,呈線性上升;
  3. 每當(dāng)過了一個(gè) RTT,cwnd = cwnd*2,呈指數(shù)讓升;
  4.  ssthresh(slow start threshold),是一個(gè)上限,當(dāng) cwnd >= ssthresh 時(shí),就會(huì)進(jìn)入“擁塞避免算法”(后面會(huì)說這個(gè)算法);

擁塞避免

       擁塞避免算法是讓擁塞窗口緩慢地增大,收到每一輪的確認(rèn)后,將擁塞窗口的值加1,而不是加倍,這樣擁塞窗口的值按照線性規(guī)律緩慢增長。在慢啟動(dòng)中,當(dāng)cwnd >= ssthresh時(shí),就會(huì)進(jìn)入“擁塞避免算法”。一般來說ssthresh的值是65535,單位是字節(jié),當(dāng)cwnd達(dá)到這個(gè)值時(shí)后,算法如下:

  1. 收到一個(gè) ACK 時(shí),cwnd = cwnd + 1/cwnd;
  2. 當(dāng)每過一個(gè)RTT時(shí),cwnd = cwnd + 1;

快速重傳與快速恢復(fù)

        快重傳算法首先要求接收方每收到一個(gè)失序的報(bào)文段后就立即發(fā)出重復(fù)確認(rèn)(重復(fù)發(fā)送對(duì)前面有序部分的確認(rèn)),而不是等待自己發(fā)送數(shù)據(jù)時(shí)才進(jìn)行捎帶確認(rèn),也不是累積收到的報(bào)文發(fā)送累積確認(rèn),如果發(fā)送方連續(xù)收到三個(gè)重復(fù)確認(rèn),就應(yīng)該立即重傳對(duì)方未收到的報(bào)文段(有收到重復(fù)確認(rèn),說明后面的報(bào)文段都送達(dá)了,只有中間丟失的報(bào)文段沒送達(dá))。

         快恢復(fù)算法與快重傳算法配合使用:

  1. 當(dāng)發(fā)送方連續(xù)收到三個(gè)重復(fù)確認(rèn)時(shí),就把慢啟動(dòng)門限 ssthresh 設(shè)置為當(dāng)前擁塞窗口 cwnd 的一半。重傳丟失的報(bào)文段。設(shè)置 cwnd 為 ssthresh 加上3倍的報(bào)文段大??;
  2. 每次收到另一個(gè)重復(fù)的 ACK 時(shí),cwnd 增加 1 個(gè)報(bào)文段大小并發(fā)送 1 個(gè)分組;
  3. 當(dāng)下一個(gè)確認(rèn)新數(shù)據(jù)的 ACK 達(dá)到時(shí),設(shè)置 cwnd 為 ssthresh(跟第 1 步一樣設(shè)置方法)。這個(gè) ACK 應(yīng)該是在進(jìn)行重傳之后的一個(gè)往返時(shí)間內(nèi)對(duì)步驟 1 中重傳的確認(rèn)。另外,這個(gè) ACK 也應(yīng)該是對(duì)丟失的分組和收到的第一個(gè)重復(fù)的 ACK 之間的所以中間報(bào)文段的確認(rèn)。這一步采用的是擁塞避免算法。


參考資料:

《TC/IP 詳解》

TCP 的擁塞控制機(jī)制

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
TCP擁塞控制算法的改進(jìn)
TCP/IP詳解學(xué)習(xí)筆記(12)-TCP的超時(shí)與重傳
網(wǎng)絡(luò)擁塞控制(三) TCP擁塞控制算法
TCP協(xié)議的一些總結(jié)(一)
TCP/IP詳解學(xué)習(xí)筆記(15)
(傳輸層)TCP協(xié)議
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服