慢開始算法

慢開始算法是用於控制網路流量的算法。

基本介紹

  • 中文名:慢開始算法
  • 定義:用於控制網路流量的算法
  • 分類:計算方法
  • 學科:計算機
報文回發,算法舉例,

報文回發

慢開始門限的初始值設定為 16 個報文段,即 ssthresh = 16
傳送端的傳送視窗不能超過擁塞視窗 cwnd 和接收端視窗 rwnd 中的最小值。我們假定接收端視窗足夠大,因此現在傳送視窗的數值等於擁塞視窗的數值。
在執行慢開始算法時,擁塞視窗 cwnd 的初始值為 1,傳送第一個報文段 M0。
傳送端收到 ACK1 (確認 M0,期望收到 M1)後,將 cwnd 從 1 增大到 2,於是傳送端可以接著傳送 M1 和 M2 兩個報文段。
接收端發回 ACK2 和 ACK3。傳送端每收到一個對新報文段的確認 ACK,就把傳送端的擁塞視窗加 1。現在傳送端的 cwnd 從 2 增大到 4,並可傳送 M3 ~ M6共 4個報文段
傳送端每收到一個對新報文段的確認 ACK,就把傳送端的擁塞視窗加 1,因此擁塞視窗 cwnd 隨著傳輸次數按指數規律增長。
擁塞視窗 cwnd 增長到慢開始門限值 ssthresh 時(即當 cwnd = 16 時),就改為執行擁塞避免算法,擁塞視窗按線性規律增長。
假定擁塞視窗的數值增長到 24 時,網路出現逾時(表明網路擁塞了)。
更新後的 ssthresh 值變為 12(即傳送視窗數值 24 的一半),擁塞視窗再重新設定為 1,並執行慢開始算法。
當 cwnd = 12 時改為執行擁塞避免算法,擁塞視窗按按線性規律增長,每經過一個往返時延就增加一個 MSS 的大小。

算法舉例

主機剛剛開始傳送報文段時可先將擁塞視窗 cwnd 設定為一個最大報文段 MSS 的數值。
IP格式IP格式
在每收到一個對新的報文段的確認後,將擁塞視窗增加至多一個 MSS 的數值。
用這樣的方法逐步增大傳送端的擁塞視窗 cwnd,可以使分組注入到網路的速率更加合理。
MSS 是 TCP 報文段中的數據欄位的最大長度。
TCP 只規定了一種選項,即最大報文段長度 MSS (Maximum Segment Size)。
MSS 告訴對方 TCP:“我的快取所能接收的報文段的數據欄位的最大長度是 MSS 個位元組。”
當 TCP 連線進行初始化時,將擁塞視窗置為 1。圖中的視窗單位不使用位元組而使用報文段

相關詞條

熱門詞條

聯絡我們