拥塞控制有哪些问题,它是如何在 TCP/IP 中处理的?
网络层的拥塞遇到了吞吐量和延迟两个问题。
基于延迟
与网络容量相比,如果负载较小,则延迟最小。
这里的最小延迟由传播延迟和处理延迟组成,两者都可以忽略不计。
因此,当负载达到网络容量时,延迟会增加,因为我们必须将排队延迟添加到总延迟中。
当负载大于容量时,延迟变为无限。
基于贯穿
当负载低于网络容量时,吞吐量与负载成正比增加。
负载达到容量后,我们期望吞吐量保持不变,但吞吐量却急剧下降。
这背后的原因是路由器丢弃数据包。
当发送方和接收方借助数据包在网络中相互通信时,如果发送方用更多的数据包使网络溢出,这种情况称为拥塞。
在拥堵时,交通无法正常处理。它导致服务质量下降。拥塞的症状是包延迟过大、丢包和重传。
TCP处理拥塞
传输控制协议(TCP)拥塞控制技术可防止拥塞。TCP使用在发送方维护的拥塞窗口。对于每个TCP会话,维护一个单独的拥塞窗口。这个拥塞窗口表示可以发送到网络中而无需确认的最大数据量。
最初,拥塞窗口设置为一个最大段大小。每收到一个ACK包后,发送方将拥塞窗口大小增加一个MSS(MaximumSegmentSize)。
这里使用的公式是,
Congestion window size = congestion window size + MSS.
这个阶段被称为慢启动机制,当达到慢启动阈值时,TCP从慢启动阶段切换到拥塞避免阶段。
现在公式更改为以下内容-
Congestion window size=congestion window size + MSS/congestion window size.
当TCP检测到任何数据包丢失时,则,
Congestion window size=congestion window size -1
以这种方式,拥塞在TCP中得到处理。