TCP 图解 网络拥塞和流量控制

本文详细介绍了TCP协议中的流量控制和拥塞控制机制。流量控制通过接收端反馈剩余缓冲区大小来避免接收端溢出,发送端根据接收端的反馈动态调整发送速率。拥塞控制则通过拥塞窗口和慢启动算法防止网络资源过度占用。当出现丢包时,拥塞窗口会根据超时重传或重复确认应答调整其增长策略,确保网络稳定运行。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

流量控制

流量控制的原因在于, 传输中接收端的接受能力是有限的, 如果发送的数据过多, 就会出现接受端缓冲区塞满, 数据被迫丢弃, 造成丢包问题, 浪费资源.

TCP协议中, 为了控制这种情况的出现, 引入了流量控制.

发送端和接收端, 互相在传输中, 协商缓冲区大小, 控制发送的数据量, 合理的利用网络资源.

  • 接收端在返回给发送端的响应中, 在TCP报头中放入自己的剩余缓冲区大小
  • 发送端根绝接收端发送给自己的缓冲区剩余大小, 动态的调整每次发送的数据的多少
  • 如果接收端的缓冲区已经满了, 就会返回给发送端一个缓冲区为0的报文, 发送端也就不会再发送了
  • 发送端每隔一段时间, 向接收端发送一个探测数据段来探测接收端的缓冲区是否可以进行接收了.如果缓冲区空间有了, 就继续发送

上面的几条概念, 就是整个流量控制的基本逻辑

此处借用 《图解TCP/IP》书中插图来说明
在这里插入图片描述

拥塞控制

拥塞控制产生的原因在于, 网络同时传输的资源是有限的, 虽然每个人都有自己的流量控制了, 但是当大家只想着自己的数据传输, 而不考虑别人, 如果同时发送的人过多, 就会超过网络传输的上限, 大家都不能正确的发送数据, 所以引入了流量控制.

TCP协议中为了解决问题, 引入了拥塞控制

  • 拥塞控制通过拥塞窗口和慢启动来实现
  • 拥塞窗口和发送数据的滑动窗口一样, 只是限制了发送数据的缓冲区大
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值