-
TCP连接的双方主机都为该连接设置了接受缓存,相关的应用进程可以从该缓存中读取数据。若应用进程读取数据时速度较慢,读取不及时,而发送方发送得太多、太快,则会使接收方的缓冲区溢出。TCP采用动态滑动窗口机制进行流量控制,用来防止由于发送方发送数据太快而造成的接收方的缓冲区溢出。接收窗口这个变量用于告诉发送方,接收方还有多少可用的缓存空间,发送方发送的数据量一定要小于接收窗口的大小,这样才能使接收缓冲区不产生溢出。
-
当网络上有太多的数据报,超过了网络的容量,或者网络资源使用、分配不合理时,就会出现数据报时延增加、丢弃概率增大、系统性能下降等现象,这种现象被称为拥塞。产生拥塞的根本原因在于用户(主机)给网络提供的负载大于网络资源的容量和处理能力。很多拥塞控制算法往往是通过向各资源站点发送消息来告诉它们减慢发送速率来实现的。
-
区别:
-
拥塞控制需要确保网络能够承载用户提交的通信量,是一个全局性问题,涉及主机、路由器等很多因素。
-
流量控制与点对点的通信量有关,主要解决快速发送方与慢速接收方的速率不匹配问题,是局部问题。
-
-
拥塞控制机制主要包括慢启动、拥塞避免、快速重传和快速恢复等算法。