TCP流量控制
-
流量控制:如果发送者发送数据过快,接收者来不及接收,那么就会有分组丢失。为了避免分组丢失,控制发送者的发送速度,使得接收者来得及接收,这就是流量控制。
-
流量控制根本目的:防止分组丢失。(这也是构成TCP可靠性的一个原因)
-
如何实现:TCP利用滑动窗口协议(连续ARQ协议)实现流量控制。
-
滑动窗口
-
解决的问题:解决发送方和接收方收发数据速率不一致的问题。(发送方+接收方)
-
具体实现:滑动窗口相当于接收方的缓存,接收方 向 发送方通知自己可接受数据的大小,而发送方会根据这个数值发送数据
-
TCP拥塞控制
-
拥塞控制作用:拥塞控制是作用于网络的,它是防止过多的数据注入到网络中,避免出现网络负载过大的情况。
-
拥塞窗口(发送方)
-
解决的问题:过多的数据注入到网络中,造成网络负载过大的情况
-
目的:降低网络的传输速率,当拥塞发生时,进行拥塞控制。(控制全局网络的拥塞情况。通过控制发送方每次发送的流量多少,来逐渐试探整体网络的拥塞程度。)
-
实现方法:主要利用了慢启动、拥塞避免、快速重传、快速恢复这四个算法。
-
-
拥塞控制常用方法就是:慢启动+拥塞避免;快重传+快恢复
-
慢启动:防止一开始速率过快,导致耗尽中间路由器存储空间,从而严重降低TCP连接的吞吐量
-
拥塞避免:当拥塞发生时,降低网络传输速率
-
快速重传:在接收到相同ACK后,推断出丢失报文段起始序号,然后立即重传此报文
-
快速恢复:在快速重传基础上,如果发生了快速重传,则执行拥塞避免算法而非慢启动
-
两者区别
即TCP流量控制和拥塞控制区别。
-
流量控制:作用于接收者,是控制发送者的发送速度从而使接收者来得及接收,防止分组丢失。
-
拥塞控制:作用于网络,是防止数据过多注入到网络造成的负载过大的情况。