我需要模拟与服务器的低带宽,高延迟连接,以便模拟远程站点上VPN的状况。带宽和延迟应该是可调整的,以便我可以找到最佳组合以运行我们的软件包。
我需要模拟与服务器的低带宽,高延迟连接,以便模拟远程站点上VPN的状况。带宽和延迟应该是可调整的,以便我可以找到最佳组合以运行我们的软件包。
Answers:
设置FreeBSD机器来做到这一点,这是一个很棒的文章-使用标准的旧台式机,扔一个附加的NIC,然后进行构建。
可以在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命令并获得相同的效果。
过去,我使用过使用Linux Netem(网络仿真)功能的网桥。它是高度可配置的-允许引入延迟(第一个示例是WAN),数据包丢失,损坏等。
编辑:还有MasterShaper Web界面来控制设置。
我注意到Netem对于我的应用程序非常有效,但是我最终还是使用WANem多次。提供的可启动ISO(和虚拟设备映像)非常方便。
我遇到了Web调试代理应用程序Charles,在模拟网络延迟方面取得了巨大的成功。它适用于Windows,Mac和Linux。
带宽油门/带宽模拟器
Charles可用于调整Internet连接的带宽和延迟。这使您可以使用高速连接来模拟调制解调器条件。
带宽可以每秒限制为任意字节。这样可以模拟任何连接速度。
等待时间也可以设置为任意毫秒数。等待时间延迟模拟在较慢的连接上经历的等待时间,即发出请求和在另一端接收请求之间的延迟。
您也可以使用vmware运行BSD或Linux,然后尝试本文(DummyNet)或本文。
我找到了这个名为clumsy的小巧的Windows程序。它处于Alpha状态,但对我来说似乎很好用,并且它是开源的。
编辑:其他人已经注意到,您不能用笨拙的方式限制带宽,这是事实。您只能添加延迟和其他几个与网络相关的错误。这将取消该答案作为该问题的有效答案的资格,但是,由于当我想模拟一个不良网络时,我已经很好地使用了它,因此只要它的票数> 0或类似,我就将其保留在此处。
尝试WANem
WANem是一种广域网仿真器,旨在在LAN环境中进行应用程序开发/测试期间提供广域网/ Internet的真实体验。
对于Windows,您可以使用以下应用程序:http : //www.softperfect.com/products/connectionemulator/
适用于Windows 2000,XP,2003,Vista,Seven和2008的WAN连接仿真器。
也许是Windows上唯一可用的。
我会尝试在Linux上使用netem。使用它,您可以模拟其他延迟,损坏,数据包丢失和重复。它甚至可以在环回设备上使用。
我在Windows计算机上使用NetBalancer。
http://seriousbit.com/netbalancer/
2017年10月7日更新:NetBalancer的最新免费版本是9.2.7。该程序具有硬编码的到期日期。在启动NetBalancer服务之前,您需要在2016-10-18之前调回系统时钟。有关详细信息,请参见本文。
使用Fiddler(免费解决方案)在Windows平台上找到了这一工具( http://www.logic-worx.com/index.php/tools-and-apps/fiddler-connection-simulator/
Rules -> Performance -> Simulate Modem Speeds
,如果您不想使用单独的插件。
我想tc
可以在基于UNIX的平台上完成这项工作。
tc
用于在Linux内核中配置流量控制
http://lartc.org/manpages/tc.txt
如果您使用的是Linux,那么我发现Traffic Control程序将为此类事情提供很大的帮助。
http://www.shunra.com上有一个名为VE Desktop的产品,可用于模拟变化的网络条件。它允许您通过简单的UI调整延迟,带宽和丢包率。只有警告是,它不是免费的。希望这可以帮助。
看看NE-ONE网络仿真器,它使您可以配置带宽,延迟,数据包丢失,数据包重新排序,数据包复制,数据包分片,网络拥塞以及更多其他障碍,因此您可以在实验室中创建真实的网络条件。可以为上行链路和下行链路配置不同的损害,因此您可能会获得非常好的上行链路体验,但实际上会遇到非常糟糕的下行链路体验,非常适合查看应用程序如何处理TCP排队,因为通知不会及时返回并且总延迟因此增加!
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
我们曾经在虚拟机内部使用过此软件来进行一些带宽规模测试:
http://www.softinengines.com/index.php?section=download&langu=zh-CN
它不是免费的,但是有30天的试用期。
LANforge ICE是一种网络仿真器 ,重点在于虚拟路由,抖动,损坏和延迟。项目已使用它来仿真卫星链路,电缆和调制解调器连接以及高速(10Gbit)wan仿真。您可以使用Java GUI构建虚拟网络并生成非常详细的流量报告。LANforge产品还提供流量生成功能:帧,以太网,第3层和有状态流量(NFS,http)。LANforge的最新版本也具有完善的WiFi测试功能。
您可以尝试以下方法: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