福哥答案2020-11-05:

所谓拥塞控制,是指防止过多的数据注入网络,保证网络中的路由器或链路不致过载。出现拥塞时,端点并不了解到拥塞发生的细节,对通信连接的端点来说,拥塞旺旺表现为通信时延的增加。当然,拥塞控制和流量控制也有相似的地方,即它们都通过控制发送方发送数据的速率来达到控制效果。
拥塞控制与流量控制的区别:拥塞控制是让网络能够承受现有的网络负荷,是一个全局性的过程,涉及所有的主机、所有的路由器,以及与降低网络传输性能有关的所有因素。相反,流量控制往往是指点对点的通信量的控制,即接收端控制发送端,它所要做的是抑制发送端发送数据的速率,以便使接收端来得及接收。

四种算法:慢开始(从1开始)、拥塞避免、快重传(3ACK重传)、快恢复(从ssthresh门限开始)。指数增长(<慢开始门限ssthresh),加法增长,乘法减小。
两个窗口:接收窗口rwnd、拥塞窗口cwnd。
以smss字节1045-2190为两个分界,cwnd为2-4个smss,ssthresh应该根据自己的需求设置,《》王道计算机网络》是16。
Reno版本(快重传)、Tahoe版本(慢开始,废弃)。

在流量控制中,发送方发送数据的量由接收方决定,而在拥塞控制中,则由发送方自己通过检测网络状况来决定。实际上,慢开始、拥塞避免、快重传和快恢复几种算法应是同时应用在拥塞控制机制之中,当发送方检测到超时的时候,就采用慢开始和拥塞避免,当发送方接收到冗余ACK时,就采用快重传和快恢复。