如何在非托管网络交换机中管理带宽?
假设端口 1 连接到一个非常繁忙的服务器。如果连接到端口 2、3 和 4 的机器突然决定向端口 1 中的服务器发送大量数据包(在极端情况下:以最大理论吞吐量),交换机将如何处理?
交换机会执行任何类型的流量控制,确保每个发送端口都公平地分享端口 1 的可用带宽,还是只是以“先到先得”的方式为它们提供服务(显然,必要时丢弃数据包) )?
如何在非托管网络交换机中管理带宽?
假设端口 1 连接到一个非常繁忙的服务器。如果连接到端口 2、3 和 4 的机器突然决定向端口 1 中的服务器发送大量数据包(在极端情况下:以最大理论吞吐量),交换机将如何处理?
交换机会执行任何类型的流量控制,确保每个发送端口都公平地分享端口 1 的可用带宽,还是只是以“先到先得”的方式为它们提供服务(显然,必要时丢弃数据包) )?
在您的场景中,大多数以太网帧都会被丢弃,这取决于上层协议(例如 TCP)来处理。有一个基本的以太网流量控制,但它的支持很差。交换机只有很小的缓冲区,3:1 的带宽超额订阅真的会导致 3:1 的丢帧率。
以太网(第 2 层帧)和 IP(第 3 层数据包)在其中实际上不起作用。TCP(第 4 层段)通过请求重新发送丢弃的段并缩小 TCP 窗口来保证交付。UDP 或其他无连接协议需要应用程序来请求重新发送丢失的数据。
你会遇到超限。这表示接收器硬件无法将接收到的数据传送到硬件缓冲区的次数。通常硬件缓冲区与其他端口共享,例如端口 1-8 共享相同的缓冲区和 ASIC。在某些交换机模型中,如果 ASIC 缓冲区过载而不是将数据排队到通用缓冲区,但这会导致我们所谓的 punting 并减慢整个交换机的速度,因为数据包需要由 CPU 处理。不适合硬件或通用缓冲区的数据包将被丢弃。但在你的情况下不会真正成为问题。问题是当您的流量超过背板处理能力时。