【计算机网络】传输层 : TCP 流量控制 ( 流量控制过程 | 持续计时器机制 )
文章目錄
- 一、TCP 流量控制
- 二、TCP 流量控制 過程
- 三、持續計時器機制
一、TCP 流量控制
TCP 流量控制 :
① 流量控制 : 控制 發送方 降低發送速率 , 避免 接收方 來不及接收 , 丟棄數據 , 導致重傳 ;
② 滑動窗口機制 : TCP 通過 該 滑動窗口機制 實現 流量控制 ;
③ 滑動窗口 調整 : 接收方 根據 接收緩存大小 , 動態調整 發送方 發送窗口 大小 ;
④ 接收方窗口 rwnd : 接收方 設置 確認報文段 中含有 窗口字段 , 將 rwnd 通知給發送方 ;
⑤ 發送窗口 : 發送方 發送窗口 取 接收窗口 rwnd , 與 擁塞窗口 cwnd , 中較小的值 ;
二、TCP 流量控制 過程
TCP 流量控制 過程 : 發送端 向 接收端 發送數據 ;
① 連接建立 : 接收端 向 發送端 發送 接收窗口 rwnd = 400 ;
② 發送端 發送數據 :
- 發送 1 ~ 100 字節 , 此時還能再發送 300 字節 ; ( seq = 1 )
- 發送 101 ~ 200 字節 , 此時還能再發送 200 字節 ; ( seq = 101 )
- 發送 201 ~ 300 字節 , 該報文段丟失 ; ( seq = 201 )
③ 接收端 返回數據 : 返回 ACK = 1 , ack = 201 , rwnd = 300 ;
- 表示 接收端 接收到了 201 之前的數據 , 期待發送 201 數據 , 接收窗口 rwnd 大小為 300 字節 ;
- 發送方此時 只能發從 201 開始的 300 字節滑動窗口大小的數據 , 即發送 201 ~ 500 之間的數據 , 共 300 字節 ;
④ 發送方 發送數據 :
- 發送 301 ~ 400 字節 , 此時還能再發送 100 字節數據 ;
- 發送 401 ~ 500 字節 , 此時滑動窗口的數據都發送完畢 , 不能再發送了 ;
- 發送方 的 超時重傳計時器 , 時間到期 , 重傳 201 ~ 300 字節數據 , 此時不能發送 新數據 ;
⑤ 接收方 接收數據 : 接收方接收到了上述 所有發送的數據 , 返回 ACK = 1 , ack = 501 , rwnd = 100 ; 表示 期待 發送方發送 501 之后的數據 , 接收窗口 rwnd 設置為 100 字節 ;
⑥ 發送方 發送數據 : 發送方發送 501 ~ 600 字節數據 , 此時滑動窗口占滿 , 不能繼續發送數據 ;
⑦ 接收方 接收數據 : 接收方接收到了 501 ~ 600 字節數據 , 此時回送 ACK = 1 , ack = 601 , rwnd = 0 ; 設置期望發送 601 之后的數據 , 接收窗口設置為 0 ; 此時不允許發送方再發送了 ;
三、持續計時器機制
持續計時器機制 :
① 開始計時 : TCP 連接中 , 有一個 持續計時器 , 發送方 收到 接收方 的 零窗口 通知 , 即 rwnd = 0 , 啟動該 持續計時器 ;
② 零窗口探測報文 : 如果 持續計時器 到期 , 發送方 發送 零窗口探測報文 給接收方 , 接收方 收到上述報文 , 返回 當前窗口值 ;
③ 重新計時 : 如果 接收方的 接收窗口 rwnd 仍然為 0 , 發送方收到該 0 窗口值 , 重置 持續計時器 , 重新開始計時 ;
總結
以上是生活随笔為你收集整理的【计算机网络】传输层 : TCP 流量控制 ( 流量控制过程 | 持续计时器机制 )的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【计算机网络】传输层 : TCP 可靠传
- 下一篇: 【计算机网络】传输层 : TCP 拥塞控