TCP/IP 中传输层和网络层的拥塞控制

网络工程 tcp 联网 传输协议 拥塞
2022-02-10 10:58:47

为什么我们需要在 TCP/IP 模型中的传输层和网络层都进行拥塞控制。难道我们不能只控制其中一层就足够好了吗?它们有何不同?

2个回答

这两种方法的用途略有不同。正如@Zac67 指出的那样,并非所有传输协议都具有流控制,因此将它放在 IP 层更有意义。

如果没有 ECN,路由器发出拥塞信号的唯一方法就是丢弃数据包。IP 数据包中的 ECN 位使路由器可以在不必丢弃数据包的情况下发出拥塞信号,从而提高效率。路由器也更容易修改 IP 数据包,而无需检查它可能不知道的更高层协议。

ECN 实际上是一个二进制指示——有拥塞,或者没有。TCP 流量控制更具可变性,允许发送方和接收方调整流量以获得最佳效率。

TCP 可以根据 ECN 修改其窗口大小。不同的操作系统处理它的方式不同。

ECN 没有被广泛使用,大多数操作系统默认禁用它。

维基百科有一篇很好的文章

有些传输层协议有拥塞控制(如 TCP),有些则没有(如 UDP)。IP的网络层也不关心拥塞。