我知道这是个奇怪的问题。因为我通常基于“假设”所有用户的网络连接都很慢来开发应用程序。但是,有没有人认为有一种方法可以通过编程模拟慢速互联网连接,这样我就可以“看到”应用程序在不同“连接速度”下的表现?
我不担心使用哪种语言。我不是在寻找代码示例或其他东西,只是对它背后的逻辑感兴趣。
我知道这是个奇怪的问题。因为我通常基于“假设”所有用户的网络连接都很慢来开发应用程序。但是,有没有人认为有一种方法可以通过编程模拟慢速互联网连接,这样我就可以“看到”应用程序在不同“连接速度”下的表现?
我不担心使用哪种语言。我不是在寻找代码示例或其他东西,只是对它背后的逻辑感兴趣。
当前回答
在Linux机器上你可以使用wondershaper
apt-get install wondershaper
$ sudo wondershaper {interface} {down} {up}
{down}和{up}是KPBS中的带宽
例如,如果你想限制接口eth1的上行带宽为256kbps,下行带宽为128kbps,
$ sudo wondershaper eth1 256 128
为了清除极限,
$ sudo wondershaper clear eth1
其他回答
现在有一些TCP代理,比如iprelay和草率,它们可以进行带宽整形来模拟慢速连接。您还可以使用ipfw和iptables等IP过滤工具进行带宽整形和模拟丢包。
还有另一个工具叫做WIPFW - http://wipfw.sourceforge.net/
这有点老派,但您可以使用它来模拟较慢的连接。它是基于Windows的,该工具允许管理员监控路由器从某台机器接收了多少流量,或者它转发了多少WWW流量。
谷歌建议:
OSX上的网络链路调节器 笨拙的窗户 Linux上的Dummynet
你可以试试Dummynet,它可以模拟队列和带宽限制、延迟、数据包丢失和多路径效应
如果您正在运行windows, fiddler是一个很好的工具。它有一个模拟调制解调器速度的设置,对于那些想要更多控制的人来说,它有一个插件可以为每个请求添加延迟。
我更喜欢使用这样的工具,而不是在我的应用程序中放置延迟代码,因为它是一个更真实的模拟,而且不需要我设计或编码实际的比特。最好的代码是我不需要写的代码。
这篇文章在Pavel Donchev的博客软件技术展示如何创建自定义模拟速度:限制你的互联网连接速度与提琴手。