Testing 如何模拟低带宽、高延迟的环境?

Testing 如何模拟低带宽、高延迟的环境?,testing,bandwidth,latency,Testing,Bandwidth,Latency,我需要模拟到服务器的低带宽、高延迟连接,以便模拟远程站点的VPN条件。带宽和延迟应该是可调整的,这样我就可以找到运行软件包的最佳组合。过去,我使用了使用Linux(网络仿真)功能的网桥。它是高度可配置的——允许引入延迟(第一个示例是WAN)、数据包丢失、损坏等 我注意到Netem在我的应用程序中运行得非常好,但我也使用了好几次。提供的可引导ISO(和虚拟设备映像)非常方便。试试看 WANem是一个广域网仿真器,旨在通过LAN环境在应用程序开发/测试期间提供广域网/互联网的真实体验 查尔斯 我遇到

我需要模拟到服务器的低带宽、高延迟连接,以便模拟远程站点的VPN条件。带宽和延迟应该是可调整的,这样我就可以找到运行软件包的最佳组合。

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

我注意到Netem在我的应用程序中运行得非常好,但我也使用了好几次。提供的可引导ISO(和虚拟设备映像)非常方便。

试试看

WANem是一个广域网仿真器,旨在通过LAN环境在应用程序开发/测试期间提供广域网/互联网的真实体验

查尔斯 我遇到了web调试代理应用程序,并在模拟网络延迟方面取得了巨大成功。它可以在Windows、Mac和Linux上运行

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

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

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

DummyNet
您也可以使用vmware运行BSD或Linux,然后尝试或

有一个很好的方法可以设置一台FreeBSD机器来实现这一点—使用您的标准旧桌面,添加一个额外的NIC,然后构建

可在以下网址获取writeup

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

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.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"

重新启动,你就拥有了56K网桥


如果您碰巧在Macintosh上工作,那么默认情况下,该操作系统内置了ipfw。我也做了同样的事情,通过在机场和以太网上路由网络流量,对其进行设置,使机场上的任何东西都具有与我试图模拟的东西相同的特性。您可以直接从终端调用ipfw命令,并获得相同的效果。

我将尝试在linux上使用。使用它,您可以模拟额外的延迟、损坏、数据包丢失和复制。它甚至可以在环回设备上运行。

如果您使用的是linux,我发现该程序对这类事情非常有帮助。

对于Windows,您可以使用以下应用程序:

适用于Windows 2000、XP、2003、Vista、Seven和2008的广域网连接仿真器


可能是唯一一款适用于Windows的产品。

有一款来自VE Desktop的产品,可用于模拟各种网络条件。它允许你用一个简单的用户界面调整延迟、带宽和包丢失。唯一的警告是,这不是免费的。希望这能有所帮助。

另一个客户端程序(仅限Windows)是NetLimiter-

我一直在寻找一个易于使用的工具来进行此类测试。前几天我刚遇到这个:


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

对于macOS,有一个网络链接调节器,可以模拟可配置的带宽、延迟和数据包丢失。它包含在包装中。

使用Fiddler(免费解决方案)为Windows找到了此解决方案
我想我找到了我需要的东西。也许你可以使用或。希望有帮助。

我在我的Windows机器上使用NetBalancer


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

我发现了一个用于Windows的小程序,名为。它处于alpha状态,但对我来说似乎工作得很好,而且是开源的

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

看看NE-ONE网络仿真器,它允许您配置带宽、延迟、数据包丢失、数据包重新排序,数据包复制、数据包碎片、网络拥塞和更多的损伤,这样您就可以在实验室中创造真实的网络条件。可以为上行和下行配置不同的损伤,这样您就可以有一个非常好的上行体验,但却有一个非常糟糕的下行体验,很高兴看到应用程序如何处理TCP队列,因为ACK不会及时返回,因此总体延迟会增加

这里有一个专门针对游戏开发者的概述视频,但它展示了它的内容。NE-ONE是使用web浏览器配置的,因此安装和配置非常容易-您不需要成为网络专家:-)

有一个硬件版本——或者你可以下载一个运行und的虚拟设备(软件)版本
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"