std*_*all 37 testing router lan internet-connection
我正在开发一种可通过LAN访问互联网的嵌入式设备.我现在正处于测试阶段,我想测试设备在连接到互联网时的性能.目前,设备通过集线器连接到路由器,我用它来监控Wireshark的数据包.什么是降低设备的互联网速度以模仿可能发生的情况的最佳方法?
我可以通过电脑来完成吗?我需要访问路由器吗?如果是这样,是否可以限制路由器接口中每个IP的速度?
实际上,一位朋友建议我购买一个usb2lan以太网卡,并将PC lan连接桥接到嵌入式设备,然后使用软件QoS限制器.你觉得它会起作用吗?
Spi*_*iff 24
如果你有一个方便的Mac,Macs有dummynet内置的内置工具,你可以控制它ipfw.它允许您模拟慢速连接,随机丢弃具有特定概率的数据包等.
Linux和其他操作系统中存在相同的工具.
截至2010年2月,我们发布了第三个主要版本的dummynet,现在可以在所有主要平台上运行:FreeBSD,Mac OS X作为原生发行版的一部分,你可以在这里找到Linux,OpenWRT和Windows版本.
它可以为你做很多事情:
限制总传入TCP流量为2Mbit/s,UDP为300Kbit/s
ipfw add pipe 2 in proto tcp
ipfw add pipe 3 in proto udp
ipfw pipe 2 config bw 2Mbit/s
ipfw pipe 3 config bw 300Kbit/s
Run Code Online (Sandbox Code Playgroud)
将网络10.1.2.0/24上的每个主机的传入流量限制为300Kbit/s.
ipfw add pipe 4 src-ip 10.1.2.0/24 in
ipfw pipe 4 config bw 300Kbit/s queue 20 mask dst-ip 0x000000ff
Run Code Online (Sandbox Code Playgroud)
模拟到月球的ADSL链接:
ipfw add pipe 3 out
ipfw add pipe 4 in
ipfw pipe 3 config bw 128Kbit/s queue 10 delay 1000ms
ipfw pipe 4 config bw 640Kbit/s queue 30 delay 1000ms
Run Code Online (Sandbox Code Playgroud)
mró*_*ówa 13
你可以使用(几乎)来自liveCd的任何linux发行版(比如ubuntu,mandriva,其他)在你想要的任何硬件上运行它,并使用基于内核的工具netem,也称为"网络仿真"和"iproute2"包工具.它可以让您控制广域网的延迟,程序包丢失,损坏,重复和其他可能的问题.
有最常用的模拟列表,如:
使用令牌桶过滤器进行速率控制:
tc qdisc add dev eth0 root handle 1:0 netem delay 100ms
tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
Run Code Online (Sandbox Code Playgroud)按固定时间延迟所有数据包: tc qdisc add dev eth0 root netem delay 100ms
tc qdisc change dev eth0 root netem loss 0.1%这是另一个OSX解决方案,请看一下Network Link Conditioner.
以下引用摘自以下博客(下面的所有信用应该转到Matt Gemmell):
http://mattgemmell.com/2011/07/25/network-link-conditioner-in-lion/
获取Xcode的硬件IO工具.要执行此操作,请进入Xcode菜单,然后选择"Open Developer Tool",最后选择"More Developer Tools ...".您将被带到Apple的开发者下载站点; 你应该下载"Xcode的硬件IO工具".
生成的磁盘映像将包含(以及其他内容)系统首选项的首选项窗格,称为"网络链接调节器".双击prefpane文件并进行身份验证以允许安装它.然后,您将在"系统偏好设置"中看到该窗格.
您可以使用"配置文件"弹出菜单从各种不同类型的网络条件中进行选择.
您还可以通过单击"管理配置文件"从头开始或通过复制现有配置文件来添加自己的配置文件.
在测试应用程序时,非常方便地模拟不太理想的网络条件.不要忘记之后关掉它!