拥塞控制有哪些问题,它是如何在 TCP/IP 中处理的?

网络层的拥塞遇到了吞吐量和延迟两个问题。

基于延迟

与网络容量相比,如果负载较小,则延迟最小。

这里的最小延迟由传播延迟和处理延迟组成,两者都可以忽略不计。

因此,当负载达到网络容量时,延迟会增加,因为我们必须将排队延迟添加到总延迟中。

当负载大于容量时,延迟变为无限。

基于贯穿

当负载低于网络容量时,吞吐量与负载成正比增加。

负载达到容量后,我们期望吞吐量保持不变,但吞吐量却急剧下降。

这背后的原因是路由器丢弃数据包。

当发送方和接收方借助数据包在网络中相互通信时,如果发送方用更多的数据包使网络溢出,这种情况称为拥塞。

在拥堵时,交通无法正常处理。它导致服务质量下降。拥塞的症状是包延迟过大、丢包和重传。

TCP处理拥塞

传输控制协议 (TCP) 拥塞控制技术可防止拥塞。TCP 使用在发送方维护的拥塞窗口。对于每个 TCP 会话,维护一个单独的拥塞窗口。这个拥塞窗口表示可以发送到网络中而无需确认的最大数据量。

最初,拥塞窗口设置为一个最大段大小。每收到一个ACK包后,发送方将拥塞窗口大小增加一个MSS(Maximum Segment Size)。

这里使用的公式是,

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 中得到处理。