我知道有些管理型交换机允许您将其端口速度硬编码为每秒 10/100/1000 Mb。但如果我想将速度设置为每秒仅 1 Mb 甚至 500 Kb,该怎么办?是否有支持此类设置的交换机?如果没有,还有其他解决方案吗?
更新:
我面临的问题是我想在家里运行一个小型网络服务器,只有极少数人使用。由于我的互联网速度相对较低 - 每秒 20Mb,我不希望它过度占用带宽,所以我想将上传速度限制为每秒 1Mb,这样我知道我的家庭互联网将运行良好。我认为,使用一个仅允许通过其一个端口每秒 1Mb 的交换机将是解决这个问题的完美解决方案。
答案1
如果您运行的是 Linux,则可以使用软件流量整形,而不是在交换机层限制服务器。
显然,它更便宜、更简单、更灵活。您可以在其上添加服务质量 (QoS) 来限制/优先处理不同的端口,从而限制/优先处理不同的应用程序。
Arch Linux 有很好的文档这里。想看的话就看看吧。
答案2
不。正如 Harry 指出的那样,10、100 和 1000 Mbit/s 是不同的以太网协议(在双绞线上为 10BASE-T、100BASE-TX、1000BASE-T)。根据硬件,您可以强制使用某种协议或将 TP 的自动协商限制为特定速度,但两者之间没有任意速度)。
注意,禁用自动协商并强制速度时,您还会停用半双工/全双工协商,导致节点在仍在尝试自动协商时回退到半双工。您需要使用类似的东西来Auto-10/100
限制交换机上的协商速度,或者将两端(交换机和主机)配置为例如100BASE-TX/FDX
。您的确切选项取决于您的硬件。
除了链路速度之外,您还可以配置一些交换机,将端口上的有效入站或出站流量限制为一定的吞吐量 - 过多的流量将被丢弃。虽然这模拟了较慢的链路,但并不完全相同。与 100BASE-TX 链接的节点可能会通过链路发送 100 Mbit/s 的流量,但当交换机将入口限制为 20 Mbit/s 时,80% 的帧将被丢弃。
有些传输层协议可以自动处理这种情况并调整流量(例如 TCP),而有些则不能(例如 UDP)。当应用层也没有确认时,流量就会消失。
通过在路由器上实施 QoS,可以最好地解决服务器(或上行链路)过载问题。您应该定义流量类别(服务器源 IP、服务器源 TCP 端口)并限制传输的最大带宽。或者,您可以为其赋予低优先级,以便在拥塞开始时(或稍早之前)将其丢弃。
如果您限制交换机上服务器上行端口的带宽,那么您的网络速度也会受到限制。