有时我需要在客户端和服务器之间模拟一个 WAN 环境。我的意思是,具体来说,从最重要到最不重要:
- 总带宽限制,
- 偶尔的长时间(几十秒)延迟
- 抖动
最好,WAN 模拟器可以充当代理——我将客户端指向 WAN 模拟器,然后 WAN 模拟器与服务器对话。我花了很多时间在谷歌上搜索,试图找到可以做到这一点的东西,但发现的很少。
当然,我知道我可以通过控制网络拓扑和在中间插入设备来实现各种解决方案,但 IT 控制网络。我只是一个开发者。
你们都知道哪些免费或低成本的工具可以帮助模拟 WAN?
有时我需要在客户端和服务器之间模拟一个 WAN 环境。我的意思是,具体来说,从最重要到最不重要:
最好,WAN 模拟器可以充当代理——我将客户端指向 WAN 模拟器,然后 WAN 模拟器与服务器对话。我花了很多时间在谷歌上搜索,试图找到可以做到这一点的东西,但发现的很少。
当然,我知道我可以通过控制网络拓扑和在中间插入设备来实现各种解决方案,但 IT 控制网络。我只是一个开发者。
你们都知道哪些免费或低成本的工具可以帮助模拟 WAN?
如果你使用 Linux,你可以使用 tc - 交通控制程序。它应该是您发行版中的标准配置。例如,要设置上传最大速度(在本例中为每秒 100 kbit):
设置下载最大速度(在本例中为每秒 500 kbit):
tc 可以做的远不止这些。我现在找不到参考,但你可以用 tc.drop 丢包等。要了解更多信息,您可以阅读交通控制方法。
或者,您可以查看tcng - 下一代流量控制 - 它在低级别使用 tc,但有一种更好的语言来指定您的工作。我没用过,但是有tcng howto和tcng manual。
http://communities.vmware.com/blogs/Knorrhane/2008/01/23/how-to-simulate-wan-connections-in-your-own-test-lab-for-free
有一家名为Shunra的公司专门从事这种工作。我对他们没有任何经验,但他们已经存在了一段时间。
DummyNet是一款免费软件,可用于模拟各种网络条件。如果您有备用机器,请安装 FreeBSD 和 DummyNet,并将其内联在您的客户端和服务器之间。然后,您可以调整 DummyNet 以改变您遇到的延迟、抖动和损失。
编辑:只需重新阅读问题并意识到您不拥有自己的网络。在这种情况下,在具有两个 NIC 的机器上配置 DummyNet,并将其变成一个路由器,一侧有您的公司 WAN,另一侧有您的工作站。请务必先与您的 IT 部门交谈,以确保他们对您执行此操作没有任何问题!
落后工厂
包装 tc 以提供随机不可靠的网络行为。
我打赌你可以构建一个Fiddler插件来模拟这样的东西,但我不知道开箱即用的解决方案。