我正在开发一个可以通过局域网接入互联网的嵌入式设备。我现在正处于测试阶段,我想测试一下设备在互联网连接不良时的表现。目前,该设备通过集线器连接到路由器,我使用集线器通过Wireshark监控数据包。为了模拟可能发生的情况,降低设备网速的最好方法是什么?
我可以通过一台PC来做吗?我需要访问路由器吗?如果是,是否可以限制路由器接口中每个IP的速度?
实际上,一位朋友建议我购买一块usb2lan以太网卡,然后使用软件QoS限制器来桥接PC lan连接到嵌入式设备。你认为它会起作用吗?
发布于 2013-04-09 18:05:30
你可以试着用"Fiddler“
您可以选择模拟坏的网络(如旧的调制解调器33k或56k)
您需要将您的设备连接到PC并打开代理(每个请求都将通过Fiddler传输)
然后你可以用坏的网络测试你的代码,然后看看会发生什么;)
发布于 2012-08-06 13:52:10
如果您手头有一台Mac机,那么您可以通过ipfw控制Mac内置名为dummynet的内核工具。它允许你模拟一个慢速连接,以一定的概率随机丢弃数据包,等等。
同样的工具也存在于Linux和其他OSes中。
从dummynet homepage
截至2010年2月,我们已经发布了dummynet的第三个主要版本,它现在可以在所有主要平台上运行: FreeBSD,major作为本地分发的一部分,你可以在这里找到
,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将网络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模拟到月球的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发布于 2013-04-05 08:37:27
您可以(几乎)使用liveCd的任何linux发行版(如ubuntu、mandriva等)在您想要的任何硬件上运行它,并使用基于内核的工具netem,也就是带有"iproute2“包工具的”网络仿真“。它可以控制广域网中可能出现的延迟、丢包、损坏、复制等问题。
这里有最常用的模拟列表,例如:
使用令牌桶过滤器进行
tc qdisc add dev eth0根句柄1:0网络延迟100ms tc qdisc add dev eth0父节点1:1句柄10: tbf速率256kbit缓冲区1600限制3000
tc qdisc add dev eth0 root netem delay 100ms
:tbf
https://stackoverflow.com/questions/11832505
复制相似问题