拥塞控制原理
讲拥塞控制原理之前,我们需要知道,拥塞是由什么引起的?
拥塞主要是因为网络层的丢包过程引起,丢包出现的原因就是因为路由器的缓存有限,但发送方的发送速率又太高,导致分组在路由器上被丢弃
现在我们假设路由器有无限制的缓存,两个主机仅通过一个单跳路由器,两主机之间的链路的容量为R,两个主机的发送速率都为v,因此我们知道,该连接的吞吐量就是:
R/2 当v>R/2时,
吞吐量随着v的增长而增长,当v<=R/2时
当实际的情况是如何的呢?
当两个主机的发送速率逼近于R/2时,连接的时延趋于无穷大,因为实际中的路由器的缓存是有限的,因此会出现丢包现象,出现丢包之后发送方就会重传,重传又会占据发送方发送的速率,因此发送方的分组就会出现无穷大的排队时延
现在我们假设两个主机之间的路由器的缓存是有限的,并且设主机向套接字发送字节的速率为v,运输层向网络层发送字节的速率为v’
假设每台主机能够知道路由器的缓存为多少(不可思议的),那么主机只要在路由器缓存不为空时发送分组就可以了,这样v=v’,且不会出现丢包现象
但是实际情况却是,主机没办法知道路由器的缓存是否为空,这种情况下,性能可能如下图所示
接收方接收到的实际速率为R/3,因为有一部分速率被用来重传分组了
我们刚才考