模拟慢速Internet连接

178 performance networking

我知道这是一个奇怪的问题.因为我通常根据所有用户都有慢速互联网连接的"假设"开发应用程序.但是,是否有人认为有一种方法可以以编程方式模拟慢速互联网连接,因此我可以"看到"应用程序在各种"连接速度"下的表现如何?

我并不担心使用哪种语言.而且我不是在寻找代码示例或任何东西,只是对它背后的逻辑感兴趣.

Sal*_*ali 151

Chrome 38开始,您可以在没有任何插件的情况下执行此操作.只需单击检查元素(或F12热键),然后单击"切换设备模块"在此输入图像描述 你会看到这样的事情:

在此输入图像描述

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

PS适用于试图限制上传速度的用户.可悲的是,目前还不可能.

PS2现在你不需要切换任何东西.可以从网络面板上获得限制面板.在此输入图像描述

请注意,在单击No throttling时,您可以创建自定义限制选项.

在此输入图像描述

  • 现在Chrome Dev Tools限制限制了下载和上传速度.但它仅限制Chrome中的当前页面,因此您无法使用它在其他浏览器中测试您的页面.为此,您需要使用其他工具,如Fiddler. (2认同)
  • 值得一提的是,目前WebSockets并没有受到这种限制:https://bugs.chromium.org/p/chromium/issues/detail?id = 423246 (2认同)

Phi*_*eck 105

如果你正在运行Windows,fiddler是一个很棒的工具.它具有模拟调制解调器速度的设置,对于想要更多控制的人来说,有一个插件可以为每个请求添加延迟.

我更喜欢使用这样的工具将延迟代码放在我的应用程序中,因为它是一个更加真实的模拟,并且不会让我设计或编码实际的位.最好的代码是我不必编写的代码.

ADDED:本文在帕维尔Donchev对软件技术博客展示了如何创建自定义的模拟速度:限制使用Fiddler你的互联网连接速度.

  • 嗨,我写了一篇关于模拟可能有用的慢速互联网连接的小指南:http://www.developertipoftheday.com/2010/12/simulate-slow-internet-connection-in.html - 完全披露 - 这是我的自己的博客,但万一它有所帮助,因为我要传播小提琴手的好话:-) (6认同)

Sti*_*tin 44

Google建议:

  • @BenWheeler最近尝试过,它肯定已应用于系统范围,甚至是localhost (4认同)
  • 我可以确认Network Link Conditioner确实应用于整个网络堆栈. (2认同)

Pio*_*ler 12

我使用的是http://www.netlimiter.com/,效果很好.不仅限制单个过程的速度,还显示实际传输速率.


Ano*_*pus 11

在Linux机器上你可以使用 wondershaper

apt-get install wondershaper

$ sudo wondershaper {interface} {down} {up}
Run Code Online (Sandbox Code Playgroud)

{down}和{up}是kpbs中的带宽

因此,例如,如果要将接口eth1的带宽限制为256kbps上行链路和128kbps下行链路,

$ sudo wondershaper eth1 256 128
Run Code Online (Sandbox Code Playgroud)

要清除限制,

$ sudo wondershaper clear eth1 
Run Code Online (Sandbox Code Playgroud)


hob*_*bbs 6

有一些TCP代理,比如iprelay和Sloppy,它们进行带宽整形以模拟慢速连接.您还可以使用ipfw和iptables等IP过滤工具进行带宽整形和模拟丢包.