拥塞控制一直是网络领域一个热点的问题,本文介绍了什么是拥塞控制,为什么要拥塞控制以及拥塞控制算法。
什么是拥塞控制
讨论拥塞控制之前,首先要明确网络拥塞的概念。百度百科中的描述:网络拥塞(congestion)是指在分组交换网络中传送分组的数目太多时,由于存储转发节点的资源有限而造成网络传输性能下降的情况。当网络发生拥塞时,一般会出现数据丢失,时延增加,吞吐量下降,严重时甚至会导致“拥塞崩溃”(congestion collapse)。通常情况下,当网络中负载过度增加致使网络性能下降时,就会发生网络拥塞。
拥塞控制是TCP传输中很重要的一环,TCP拥塞控制使用一个拥塞窗口以及拥塞策略来进行拥塞控制。流量控制中提到发送端的发送窗口取决于接收窗口,实际上,发送方的窗口大小是接收窗口与拥塞窗口中的较小值。拥塞窗口的大小又取决于网络的拥塞状况。而具体确定拥塞窗口大小则需要拥塞策略来决定。
为什么需要拥塞控制
经过上面的描述,相信大家对拥塞控制对必要性有了一定对了解。如果不进行拥塞控制,则会出现数据包丢失,时延增加,吞吐量下降等问题。我门日常生活中的网络如果没有拥塞控制,例如看视频玩游戏根本毫无体验可言。
拥塞控制算法
大家对在本科的计算机网络中所学的TCP拥塞控制肯定不陌生:慢开始,拥塞避免,快重传,快恢复。
本片博客先对拥塞控制算法的分类做一个简单的总结,之后的文章深入每一个算法进行介绍。