CS144(四)
CS144(四)
TCP Congestion Control
网络通信,尤其是向互联网这样的分组交换网络,总会遇到拥塞问题,无论是短时间的还是长时间的;控制这种拥塞,防止网络崩溃,及其重要
congestion control 发生在TCP协议内部
何为congestion:
Congestion指的是网络中数据流量超过了网络的处理能力或链路的容量,导致网络设备(如 路由器、交换机)无法高效处理所有流量,从而产生延迟、丢包、带宽浪费等问题,降低吞吐量
TCP在终端主机上实现拥塞控制
TCP拥塞控制中,TCP将通过调整窗口的大小来改变网络中未确认数据包的数量,它将设置窗口大小,而不是仅仅使用通告窗口,这是它之前使用的方式,来自接收方,以防止接收方过载
通告窗口来自接收方,而在源端2或发送端,它将计算拥塞窗口,通常缩写为CWND, CWND代表拥塞窗口
window size = min{Advertised window(接收方), congestion window(发送)}
AIND:
additive increase, multiplocative decrease
if packet reveived OK W <---- W + 1 / W
if a packet is dropped W <----- W / 2

eg:
假设在San Francisco and Boston之间传输数据,在这两个端点之间有许多路由器,每个路由器都有自己的队列和流量负载;
如果发送的数据包速率低于路由器支持的速率,通常会是非常低的丢包率,从旧金山到波士顿相互之间的大多数数据包都会到达;
如果发送的数据包超过了路由器支持的数量,那么这些数据包就会被从队列中丢弃;
congestion control 目的在于控制发送方在网络中未完成的数据包流量,目标是发送尽可能多的数据包,但不超过网络能够支持的量
TCP可以采样AIND递减机制来进行congestion control
TCP的三个问题
- when should you send new data?
- when should you retransmit data?
- when should you send acknowledgements?
TCP在其发送窗口(定义为拥塞窗口和流量控制窗口的最小值)允许时发送新数据
TCP控制的基本动机是,流量控制会告知端点,比如波士顿->旧金山,它们能够接收的数据量