如何模拟低带宽,高延迟环境?

时间:2008-09-24 22:35:23

标签: testing bandwidth latency

我需要模拟与服务器的低带宽,高延迟连接,以便模拟远程站点上VPN的条件。带宽和延迟应该是可调整的,因此我可以发现最佳组合以运行我们的软件包。

22 个答案:

答案 0 :(得分:78)

对于 macOS ,有网络链接调节器可模拟可配置的带宽,延迟和数据包丢失。它包含在Hardware IO Tools for Xcode中。 Screenshot

答案 1 :(得分:36)

有一个很好的写入设置FreeBSD机器来做这件事 - 拿你的标准旧桌面,扔进一个额外的网卡,然后构建。

该文章可在http://www.freebsd.org/doc/en/articles/filtering-bridges/article.html处获得。

在上述说明的第5步中,您启用了防火墙。要仅模拟不同的IP连接,您可以(例如)执行以下操作:

创建一个文件/etc/rc.firewall.56k,其中包含以下内容:

ipfw add pipe 1 ip from any to any out
ipfw add pipe 2 ip from any to any in    
ipfw pipe 1 config bw 56Kbit/s   
ipfw pipe 2 config bw 56Kbit/s

并更改/etc/rc.conf ...替换

firewall_type="open"

firewall_type="/etc/rc.firewall.56k"

重新启动,你已经拥有了56K桥!

如果您正在使用Macintosh工作,那么该操作系统默认内置了ipfw。我通过在机场和以太网上路由网络流量做了同样的事情,设置它以便机场上的任何东西都具有与我想要模仿的任何东西相同的特征。您可以直接从终端调用ipfw命令并获得相同的效果。

答案 2 :(得分:26)

过去,我使用了Linux Netem(网络仿真)功能的桥接器。它具有高度可配置性 - 允许引入延迟(第一个示例是WAN),数据包丢失,损坏等。

编辑:还有MasterShaper网络界面来控制设置。

我注意到Netem对我的应用程序工作得非常好,但我最后也多次使用WANem。提供的可启动ISO(和虚拟设备映像)使其非常方便。

答案 3 :(得分:21)

查尔斯

我遇到了Charles Web调试代理应用程序,并在模拟网络延迟方面取得了巨大成功。它适用于Windows,Mac和Linux。

Charles on Mac

  

带宽限制/带宽模拟器

     

Charles可用于调整Internet连接的带宽和延迟。这使您可以使用高速连接模拟调制解调器条件。

     

带宽可能会被限制为每秒任意字节数。这样可以模拟任何连接速度。

     

延迟也可以设置为任意数毫秒。延迟延迟模拟了较慢连接所经历的延迟,即在发出请求和在另一端接收请求之间的延迟。

DUMMYNET

您也可以使用vmware运行BSD或Linux并尝试this article (DummyNet)this one.

答案 4 :(得分:15)

我发现了一个名为clumsy的Windows小巧方案。它处于alpha状态,但它似乎对我来说很好,而且它是开源的。

编辑:其他人已经注意到你不能用笨拙来限制带宽,这是真的。您只能添加延迟和其他一些与网络相关的错误。 这将取消这个答案作为问题的有效答案,但是因为当我想模拟一个糟糕的网络时我很好用它,所以只要它有>我就把它留在这里。 0票或类似。

答案 5 :(得分:13)

尝试WANem

  

WANem是一种广域网仿真器,旨在通过LAN环境进行应用程序开发/测试时提供广域网/ Internet的真实体验。

答案 6 :(得分:12)

对于Windows,您可以使用此应用程序:http://www.softperfect.com/products/connectionemulator/

适用于Windows 2000,XP,2003,Vista,Seven和2008的WAN连接仿真器。

也许是Windows唯一可用的。

答案 7 :(得分:7)

我会尝试在linux上使用netem。有了它,您可以模拟额外的延迟,损坏,丢包和重复。它甚至适用于环回设备。

答案 8 :(得分:5)

另一个客户端程序(仅限Windows)是NetLimiter - http://www.netlimiter.com

答案 9 :(得分:5)

我在Windows机器上使用NetBalancer。

http://seriousbit.com/netbalancer/

2017-10-07更新:NetBalancer的最后一个免费版本是9.2.7。该程序具有硬编码的到期日期。在启动NetBalancer服务之前,您需要在2016-10-18之前关闭系统时钟。有关详细信息,请参阅this article

答案 10 :(得分:4)

使用Fiddler(免费解决方案)为Windows找到这个 http://www.logic-worx.com/index.php/tools-and-apps/fiddler-connection-simulator/

答案 11 :(得分:4)

我猜tc可以在基于UNIX的平台上完成这项工作。

{{1}}用于配置Linux内核中的流量控制 http://lartc.org/manpages/tc.txt

答案 12 :(得分:3)

要模拟低带宽连接以测试网站使用谷歌浏览器,您可以转到F12工具中的网络选项卡,然后选择带宽级别来模拟或创建自定义带宽进行模拟。

答案 13 :(得分:2)

答案 14 :(得分:1)

如果您使用的是Linux,我会发现Traffic Control程序对此类事情有很大的帮助。

答案 15 :(得分:1)

来自http://www.shunra.com的名为VE Desktop的产品可用于模拟不同的网络状况。它允许您通过简单的UI调整延迟,带宽和数据包丢失。唯一需要注意的是,它不是免费的。希望这会有所帮助。

答案 16 :(得分:1)

我一直在为这种类型的测试寻找一种易于使用的工具。前几天我刚刚遇到过这个问题:Network Delay Simulator

如果您正在运行Windows,则应该检查它。设置和开始非常容易,而且似乎工作得非常好。它允许您定义每个方向的带宽,延迟和数据包丢失。另一个非常好的事情是你可以定义“流量匹配条件”,这样它只会影响你想要的流量。哦是的,它是免费的。

答案 17 :(得分:1)

我想我找到了我需要的东西。也许你可以使用charles proxyslowy。希望它有所帮助。

答案 18 :(得分:1)

了解NE-ONE网络仿真器,它允许您配置带宽,延迟,数据包丢失,数据包重新排序,数据包重复,数据包碎片,网络拥塞以及更多损伤,以便您可以创建真实的网络条件在实验室里。可以为上行和下行配置不同的损伤,这样你就可以拥有一个非常好的上行链路,但是非常糟糕的下行链路体验,非常适合看到应用程序如何处理TCP排队,因为ack不会及时回来并且总体潜伏期因此增加!

这里有一个专门针对游戏开发者的概述视频http://www.youtube.com/watch?v=DwtqlE7LcrQ,但它展示了它的内容。 NE-ONE使用网络浏览器进行配置,因此安装和配置非常简单 - 您不需要成为网络大师:-)

有硬件版本 - http://www.itrinegy.com/index.php/products/network-emulators/ne-one - 或者您可以下载在VMware ESXi Server下运行的虚拟设备(软件)版本。可以从VMware的Solution Exchange下载虚拟设备 - solutionexchange.vmware.com/store/products/ne-one-flex-network-emulator

答案 19 :(得分:0)

我们在虚拟机内部使用此软件进行一些带宽比例测试:

http://www.softinengines.com/index.php?section=download&langu=en

这不是免费的,但确实有30天的试用期。

答案 20 :(得分:0)

LANforge ICE是network emulator,强调虚拟路由,抖动,损坏和延迟。项目使用它来模拟卫星链路,电缆和调制解调器连接以及高速(10Gbit)环仿真。您可以使用Java GUI构建虚拟网络并生成非常详细的流量报告。 LANforge产品还提供流量生成功能:帧,以太网,第3层和有状态流量(NFS,http)。 LANforge的最新版本也具有先进的WiFi测试功能。

答案 21 :(得分:0)

您可以尝试以下操作:CovenantSQL/GNTE 像这样写YAML:

group:
  - 
    name: china
    nodes:
      - 
        ip: 10.250.1.2
        cmd: "cd /scripts && ./YourBin args"
      - 
        ip: 10.250.1.3
        cmd: "cd /scripts && ./YourBin args"
    delay: "100ms 10ms 30%"
    loss: "1% 10%"
  - 
    name: us
    nodes:
      - 
        ip: 10.250.2.2
        cmd: "cd /scripts && ./YourBin args"
      - 
        ip: 10.250.2.3
        cmd: "cd /scripts && ./YourBin args"
    delay: "1000ms 10ms 30%"
    loss: "1% 10%"

network:
  -
    groups:
      - china
      - us
    delay: "200ms 10ms 1%"
    corrupt: "0.2%"
    rate: "10mbit"

运行./generate scripts/your.yaml