TCP的拥塞控制

在某段时间,若对网络中某一资源的需求超过了该资源所能提供的可用部分,网络性能就要变坏,这种情况就叫做拥塞(congestion)。

在计算机网络中的链路容量(即带宽)、交换结点中的缓存和处理机等,都是网络的资源。若出现拥塞而不进行控制,整个网络的吞吐量将随输入负荷的增大而下降

下面介绍这四种拥塞控制算法的基本原理,假定如下条件:

发送方维护一个叫做拥塞窗口cwnd的状态变量,其值取决于网络的拥塞程度,并且动态变化

发送方将拥塞窗口作为发送窗口swnd,即swnd = cwnd

维护一个慢开始门限ssthresh状态变量:

设初始时cwnd = 1,ssthresh = 16

“慢开始”是指一开始向网络注入的报文段少,并不是指拥塞窗口cwnd增长速度慢;

“拥塞避免”并非指完全能够避免拥塞,而是指在拥塞避免阶段将拥塞窗口控制为按线性规律增长,使网络比较不容易出现拥塞;

慢开始和拥塞避免算法是1988年提出的TCP拥塞控制算法(TCP Tahoe版本)。

1990年又增加了两个新的拥塞控制算法(改进TCP的性能),这就是快重传和快恢复(TCP Reno版本)。有时,个别报文段会在网络中丢失,但实际上网络并未发生拥塞

采用快重传算法可以让发送方尽早知道发生了个别报文段的丢失

所谓快重传,就是使发送方尽快进行重传,而不是等超时重传计时器超时再重传。

发送方一旦收到3个重复确认,就知道现在只是丢失了个别的报文段。于是不启动慢开始算法,而执行快恢复算法;

也有的快恢复实现是把快恢复开始时的拥塞窗口cwnd值再增大一些

即等于新的ssthresh + 3。

例题:一个TCP连接总是以1KB的最大段长发送TCP段,发送方有足够多的数据要发送。当拥塞窗口为16KB时发生了超时,如果接下来的4个RTT(往返时间)内的TCP段的传输都是成功的,那么当第4个RTT时间内发送的所有TCP段都得到肯定应答时,拥塞窗口大小是

A.7KB B.8KB C.9KB D.16KB

解析: