我们这里有一个网络交换机,我们可以轻松地要求它限制允许的带宽,这很好。如果我们还可以要求它为我们生成数据包丢失,那就太好了——使用 WANem 可以做到这一点,但会增加延迟,而且我们正在处理实时应用程序,因此我们添加的任何延迟对我们来说都是不利的。有人知道允许这样做或可以被黑客入侵以适应它的网络交换机或路由器吗?
答案1
所有在端口或 VLAN 上具有速率限制的交换机都应允许您“模拟”数据包丢失。如果您的应用程序需要 1mb 的流量,则将限制设置为略低于该值,交换机应该会丢弃数据包。
请记住,所有具有此功能的交换机都必须进行采样才能进行限制。例如:端口 1 设置为 1mb 限制。端口 1 在几分之一秒内发送 2mb 流量。大部分流量可能都会通过。这是因为,除非交换机能够检测并测量通过的流量,否则它不知道要丢弃哪些流量。根据您的供应商,这可以通过多种方式实现,一些缓冲,然后从缓冲区丢弃数据包,而一些只会允许瞬间进出,然后进行限制。
如果您想知道应用程序的响应方式,我建议您在测试应用程序的计算机前面设置一个 BSD 盒。BSD(只是因为我将它们用作防火墙)有一个名为防火墙这将允许您直接控制连接。因此,我们假设您当前的场景如下:
+--------------------+ +----------------+ | 应用服务器 | ---> | 客户端机器 | +--------------------+ +----------------+
我知道这样说有点过于简单,但它说明了这个概念。你可以做的是在中间设置一个 nat,并限制它的速率
+--------------------+ +-----------------------+ +----------------+ | 应用服务器 | ---> | 速率限制框 | ---> | 客户端机器 | | 10.0.0.5 | | 10.0.0.6 192.168.1.1 | | 192.168.1.2 | +--------------------+ +-----------------------+ +----------------+
我再次知道这是过于简单化了。我添加了 IP,以便向您展示速率限制框中 BSD 中的命令。首先将 BSD 设置为普通路由器,您可以使用 pf sense 等。然后您可以在提示符下添加以下命令。
ipfw pipe 1 配置带宽 101Kbit ipfw 添加 1 个管道 1 ip 从 10.0.0.5 到 192.168.1.2 ipfw 添加 2 个管道 1 ip 从 192.168.1.2 到 10.0.0.5
这将模拟客户端与服务器之间的 101kb 连接。然后,您可以将 101 值更改为任意值,以便能够查看在各种限制下发生的情况。与支持限制功能的交换机相比,这具有的真正优势在于它很便宜(带有几个接口的简单计算机),并且您可以在必要时使用 wireshark 捕获流量,然后查看到底丢失了什么以及丢失了多少。这些信息对于设计更好的应用程序非常有用。
恕我直言