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

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


当前回答

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

其他回答

对于Linux,下面的论文列表可能会有用:

网络链路模拟器的比较研究(2009) KauNet:一个多功能灵活的仿真系统(2009) 《傻瓜网》(2010) 网络仿真器的测量精度和性能(2015)

就我个人而言,虽然Dummynet很好,但我发现NetEm对我的用例来说是最通用的;我通常对延迟的影响感兴趣,而不是带宽(即WiFi连接问题),而且它非常容易模拟随机数据包丢失/损坏等。它也很容易获得,而且是免费的(不像基于硬件的Linktropy)。

顺便说一句,对于Windows来说,笨笨是很棒的。我还想补充一点(关于网站),浏览器节流并不是模拟现实网络问题的准确方法(我认为“TKK”评论了上面的一些原因)。

希望这能帮助到一些人!

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

从Chrome 38开始,你可以在没有任何插件的情况下做到这一点。只需点击inspect element(或F12热键),然后点击“toggle device mod”,你会看到如下内容:

在许多其他功能中,它允许您模拟特定的互联网连接(3G, GPRS)

另外,对于那些试图限制上传速度的人。遗憾的是,目前这是不可能的。

P.S.2现在你不需要切换任何东西。节流面板可从网络面板。

请注意,在单击No throttling时,您可以创建自定义节流选项。

在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 

使用具有节流功能的web调试代理,如Charles或Fiddler。

你会发现它们在一般的web开发中很有用。主要的区别是Charles是共享软件,而Fiddler是免费的。