计算机网络 - TCP的流量控制和拥塞控制
TCP流量控制
-
流量控制:如果发送者发送数据过快,接收者来不及接收,那么就会有分组丢失。为了避免分组丢失,控制发送者的发送速度,使得接收者来得及接收,这就是流量控制。
-
流量控制根本目的:防止分组丢失。(这也是构成TCP可靠性的一个原因)
-
如何实现:TCP利用滑动窗口协议(连续ARQ协议)实现流量控制。
-
滑动窗口
-
解决的问题:解决发送方和接收方收发数据速率不一致的问题。(发送方+接收方)
-
具体实现:滑动窗口相当于接收方的缓存,接收方 向 发送方通知自己可接受数据的大小,而发送方会根据这个数值发送数据
-
TCP拥塞控制
-
拥塞控制作用:拥塞控制是作用于网络的,它是防止过多的数据注入到网络中,避免出现网络负载过大的情况。
-
拥塞窗口(发送方)
-
解决的问题:过多的数据注入到网络中,造成网络负载过大的情况
-
目的:降低网络的传输速率,当拥塞发生时,进行拥塞控制。(控制全局网络的拥塞情况。通过控制发送方每次发送的流量多少,来逐渐试探整体网络的拥塞程度。)
-
实现方法:主要利用了慢启动、拥塞避免、快速重传、快速恢复这四个算法。
-
-
拥塞控制常用方法就是:慢启动+拥塞避免;快重传+快恢复
-
慢启动:防止一开始速率过快,导致耗尽中间路由器存储空间,从而严重降低TCP连接的吞吐量
-
拥塞避免:当拥塞发生时,降低网络传输速率
-
快速重传:在接收到相同ACK后,推断出丢失报文段起始序号,然后立即重传此报文
-
快速恢复:在快速重传基础上,如果发生了快速重传,则执行拥塞避免算法而非慢启动
-
两者区别
即TCP流量控制和拥塞控制区别。
-
流量控制:作用于接收者,是控制发送者的发送速度从而使接收者来得及接收,防止分组丢失。
-
拥塞控制:作用于网络,是防止数据过多注入到网络造成的负载过大的情况。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· DeepSeek 开源周回顾「GitHub 热点速览」