首页 文章

模拟慢速Internet连接

提问于
浏览
165

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

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

13 回答

  • 4

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

  • 0

    使用具有限制功能的Web调试代理,如Charles或Fiddler .

    一般来说,你会发现它们是有用的Web开发 . 主要区别在于Charles是共享软件,而Fiddler是免费的 .

  • 11

    使用像TCPMon这样的工具 . 它可以伪造慢速连接 .

    基本上,您请求它完全相同的东西,它只是将完全相同的请求转发到真实服务器,然后只用设定的字节数延迟响应 .

  • 7

    自10.10以来Mac OSX有一个名为Murus Firewall的应用程序,它作为pf的GUI,替换为ipfw .

    它适用于系统范围或特定于域的限制 . 我只能用它来下载300Kbps到30Mbps的下载速度来测试流式视频播放器的调整方式 .

  • 2

    还有另一个名为WIPFW的工具 - http://wipfw.sourceforge.net/

    这是一个有点旧的学校,但你可以用它来模拟一个较慢的连接 . 它是基于Windows的,该工具允许管理员监控路由器从某台计算机获得的流量,或者它正在转发的WWW流量 .

  • 3

    Google recommends

    在OSX上

  • 6

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

  • 4

    在Linux机器上你可以使用 wondershaper

    apt-get install wondershaper
    
    $ sudo wondershaper {interface} {down} {up}
    

    是kpbs中的带宽

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

    $ sudo wondershaper eth1 256 128
    

    要清除限制,

    $ sudo wondershaper clear eth1
    
  • 38

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

  • 1

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

  • 146

    如果您正在运行Windows,fiddler是一个很棒的工具 . 它有一个模拟调制解调器速度的设置,对于想要更多控制的人有一个plugin to add latency to each request .

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

    补充:Pavel Donchev在软件技术博客上的这篇文章展示了如何创建自定义模拟速度:Limiting your Internet connection speed with Fiddler .

  • 101

    Chrome 38 开始,您可以在没有任何插件的情况下执行此操作 . 只需单击inspect元素(或F12热键),然后单击"toggle device mod"
    enter image description here
    ,您将看到如下内容:

    enter image description here

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

    P.S. 适用于尝试限制上传速度的用户 . 可悲的是,目前这是不可能的 .

    P.S.2 现在你不需要切换任何东西 . 可以从网络面板上获得限制面板 .
    enter image description here

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

    enter image description here

  • 0

    您可以使用NetEm (Network Emulation)作为 proxy server to emulate many network characteristics (速度,延迟,数据包丢失等) . 它使用iproute2包控制网络,并在大多数Linux发行版的内核中启用它 .

    它由 tc 命令行应用程序(来自iproute2包)控制,但也有一些NetEm的Web界面GUI,例如PHPnetemGUI2 .

    优点是,正如我所写,它不仅可以模拟不同的网络速度,还可以模拟数据包丢失,重复和/或损坏,随机或定义的延迟等,因此您可以模拟各种性能较差的网络 .

    对于您的应用程序,它绝对透明,您可以将操作系统配置为使用NetEm代理服务器,因此来自该计算机的所有连接都将通过NetEm . 或者,您只能配置应用程序以将其用作代理 .

    我一直在用它来测试Android应用程序在各种模拟的低性能网络上的性能 .

相关问题