我知道这是个奇怪的问题。因为我通常基于“假设”所有用户的网络连接都很慢来开发应用程序。但是,有没有人认为有一种方法可以通过编程模拟慢速互联网连接,这样我就可以“看到”应用程序在不同“连接速度”下的表现?

我不担心使用哪种语言。我不是在寻找代码示例或其他东西,只是对它背后的逻辑感兴趣。


当前回答

你可以试试Dummynet,它可以模拟队列和带宽限制、延迟、数据包丢失和多路径效应

其他回答

我使用http://www.netlimiter.com/,它工作得很好。不仅限制单个进程的速度,而且还显示实际的传输速率。

Mac OSX从10.10开始就有了一个名为Murus Firewall的应用程序,它作为pf的GUI,替代了ipfw。

它适用于系统范围或特定领域的节流。我只能用它把我的下载速度在300Kbps到30Mbps之间滑动,以测试流媒体视频播放器是如何调整的。

此外,为了在某些*nix上模拟慢速连接,您可以尝试使用ipfw。更多信息由Ben Newman在Quora上的回答提供

在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 

更新这个问题(9年之后)作为我正在寻找的答案,并没有提到:

Firefox也有限制连接速度的预设。在开发人员工具的Network Monitor选项卡中找到它们。默认为“不节流”。

最慢的是GPRS(下载速度:50 Kbps,上传速度:20 Kbps,最小延迟(ms): 500),范围从“良好”和“常规”2G, 3G和4G到DSL和WiFi(下载速度:30Mbps,上传速度:15Mbps,最小延迟(ms): 2)。

详见Dev Tools文档。