我知道这是个奇怪的问题。因为我通常基于“假设”所有用户的网络连接都很慢来开发应用程序。但是,有没有人认为有一种方法可以通过编程模拟慢速互联网连接,这样我就可以“看到”应用程序在不同“连接速度”下的表现?
我不担心使用哪种语言。我不是在寻找代码示例或其他东西,只是对它背后的逻辑感兴趣。
我知道这是个奇怪的问题。因为我通常基于“假设”所有用户的网络连接都很慢来开发应用程序。但是,有没有人认为有一种方法可以通过编程模拟慢速互联网连接,这样我就可以“看到”应用程序在不同“连接速度”下的表现?
我不担心使用哪种语言。我不是在寻找代码示例或其他东西,只是对它背后的逻辑感兴趣。
当前回答
你可以试试Dummynet,它可以模拟队列和带宽限制、延迟、数据包丢失和多路径效应
其他回答
谷歌建议:
OSX上的网络链路调节器 笨拙的窗户 Linux上的Dummynet
还有另一个工具叫做WIPFW - http://wipfw.sourceforge.net/
这有点老派,但您可以使用它来模拟较慢的连接。它是基于Windows的,该工具允许管理员监控路由器从某台机器接收了多少流量,或者它转发了多少WWW流量。
对于Linux,下面的论文列表可能会有用:
网络链路模拟器的比较研究(2009) KauNet:一个多功能灵活的仿真系统(2009) 《傻瓜网》(2010) 网络仿真器的测量精度和性能(2015)
就我个人而言,虽然Dummynet很好,但我发现NetEm对我的用例来说是最通用的;我通常对延迟的影响感兴趣,而不是带宽(即WiFi连接问题),而且它非常容易模拟随机数据包丢失/损坏等。它也很容易获得,而且是免费的(不像基于硬件的Linktropy)。
顺便说一句,对于Windows来说,笨笨是很棒的。我还想补充一点(关于网站),浏览器节流并不是模拟现实网络问题的准确方法(我认为“TKK”评论了上面的一些原因)。
希望这能帮助到一些人!
使用具有节流功能的web调试代理,如Charles或Fiddler。
你会发现它们在一般的web开发中很有用。主要的区别是Charles是共享软件,而Fiddler是免费的。
Mac OSX从10.10开始就有了一个名为Murus Firewall的应用程序,它作为pf的GUI,替代了ipfw。
它适用于系统范围或特定领域的节流。我只能用它把我的下载速度在300Kbps到30Mbps之间滑动,以测试流媒体视频播放器是如何调整的。