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