失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 【计算机网络】传输层 : TCP 流量控制 ( 流量控制过程 | 持续计时器机制 )

【计算机网络】传输层 : TCP 流量控制 ( 流量控制过程 | 持续计时器机制 )

时间:2024-07-11 16:49:31

相关推荐

【计算机网络】传输层 : 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 流量控制 ( 流量控制过程 | 持续计时器机制 )》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。