我知道这个问题有点奇怪。通常,我开发应用程序时基于“假设”所有用户都有较慢的互联网连接。但是,是否有人认为可以通过编程方式模拟缓慢的互联网连接,以便我可以“看到”应用程序在不同的“连接速度”下的表现呢?
我不担心使用哪种语言。我也不需要示例代码或其他东西,只对其背后的逻辑感兴趣。
我知道这个问题有点奇怪。通常,我开发应用程序时基于“假设”所有用户都有较慢的互联网连接。但是,是否有人认为可以通过编程方式模拟缓慢的互联网连接,以便我可以“看到”应用程序在不同的“连接速度”下的表现呢?
我不担心使用哪种语言。我也不需要示例代码或其他东西,只对其背后的逻辑感兴趣。
Rules > Performance> Simulate modem speeds
。这将“模拟典型的56k调制解调器条件”。如果您是专家,还可以转到 Rules > Customize Rules
。 - Ryan在Linux机器上,您可以使用wondershaper
。
apt-get install wondershaper
$ sudo wondershaper {interface} {down} {up}
{down}和{up}是以kbps为单位的带宽。
因此,例如,如果您想将eth1接口的带宽限制为256kbps上行和128kbps下行,则:
$ sudo wondershaper eth1 256 128
为了解除限制,$ sudo wondershaper clear eth1
我曾经使用http://www.netlimiter.com/,它非常好用。不仅可以限制单个进程的速度,还能显示实际传输速率。
有一些TCP代理工具,比如iprelay和Sloppy,可以进行带宽塑形以模拟较慢的连接。您也可以使用IP过滤工具,如ipfw和iptables,进行带宽塑形和模拟数据包丢失。
tc
命令行应用程序(来自iproute2包)控制,但也有一些NetEm的Web界面GUI,例如PHPnetemGUI2。对于您的应用程序来说,这是完全透明的,您可以配置操作系统将NetEm作为代理服务器使用,因此该计算机的所有连接都将通过它路由。或者您可以仅配置特定应用程序使用该代理。
我一直在使用它来测试在各种模拟的低性能网络上的Android应用程序的性能。