LAN経由でインターネットにアクセスできる組み込み機器を開発しています。現在テスト段階にあり、インターネットへの接続が不十分な場合にデバイスがどのように動作するかをテストしたいと思います。現在、デバイスはハブを介してルーターに接続されています。ハブは、Wiresharkでパケットを監視するために使用します。発生する可能性のあるシナリオを模倣するために、デバイスのインターネット速度を絞る最良の方法は何ですか?
PCでできますか?ルーターにアクセスする必要がありますか?もしそうなら、ルーターインターフェースの各IPの速度を制限することは可能ですか?
実際、友人は、usb2lanイーサネットカードを購入し、PC lan接続を組み込みデバイスにブリッジしてから、ソフトウェアQoSリミッターを使用することを提案しました。あなたはそれがうまくいくと思いますか?
" Fiddler "を使用してみてください
悪いネットワークをシミュレートするオプションがあります(古いモデム33kまたは56kなど)
デバイスをPCに接続し、プロキシをオンにする必要があります(すべてのリクエストはFiddlerを介して転送されます)
次に、悪いネットワークでコードをテストして、何が起こっているかを確認できます;)
Macが手元にある場合、Macにはdummynet
と呼ばれるカーネル機能が組み込まれており、これはipfw
を介して制御します。これにより、低速接続をシミュレートしたり、特定の確率でパケットをランダムにドロップしたりすることができます。
Linuxや他のOSにも同じ機能があります。
2010年2月の時点で、ダミーネットの3番目のメジャーバージョンをリリースしました。これは、すべてのメインプラットフォームで実行されます。ネイティブディストリビューションの一部として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
ネットワーク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
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
すべてのパケットを固定時間遅延させます:tc qdisc add dev eth0 root netem delay 100ms
tc qdisc change dev eth0 root netem loss 0.1%
これは別のOSXソリューションです。ネットワークリンクコンディショナーをご覧ください。
次の引用は次のブログから抜粋したものです(以下のクレジットはすべてMatt Gemmellに送ってください):
http://mattgemmell.com/2011/07/25/network-link-conditioner-in-lion/
ハードウェアの入手IO Xcode用ツール。これを行うには、Xcodeメニューに移動し、[Open Developer Tool]、最後に[More DeveloperTools…]を選択します。Appleのツールに移動します。開発者はサイトをダウンロードします。「Hardware IO ToolsforXcode」をダウンロードする必要があります。
結果のディスクイメージには、(とりわけ)「ネットワークリンクコンディショナー」と呼ばれるシステム環境設定の設定ペインが含まれます。 prefpaneファイルをダブルクリックし、認証してインストールできるようにします。次に、システム環境設定にペインが表示されます。
[プロファイル]ポップアップメニューを使用して、さまざまな種類のネットワーク条件から選択できます。
ゼロから、または既存のプロファイルを複製して、[プロファイルの管理]をクリックして、独自のプロファイルを追加することもできます。
アプリのテスト中に最適とは言えないネットワーク状態をシミュレートするのに非常に便利です。後でオフにすることを忘れないでください!