Androidデバイスでパケット損失をシミュレートするにはどうすればよいですか?


11

ルート化されたAndroidデバイスでのパケット損失をシミュレートして、さまざまなレベルがビデオストリーミングの品質にどのように影響するかを確認します。私は成功せずにnetemとiptablesを試しました:

netem

# tc qdisc change dev rmnet0 root netem loss 0.1%
tc qdisc change dev rmnet0 root netem loss 0.1%
Android does not support qdisc 'netem'
Garbage instead of arguments "loss ...". Try "tc qdisc help".

形式が間違っていますか、それともなんとかしてnetemサポートを追加することは可能ですか?

iptables

# iptables -A INPUT -m statistic --mode random --probability 0.01 -j DROP
iptables -A INPUT -m statistic --mode random --probability 0.01 -j DROP
iptables v1.3.7: Couldn't find match `statistic'

Try `iptables -h' or 'iptables --help' for more information.

Androidには他の選択肢はありますか?


3
良い質問!私の考え:別の方法として、多分Wi-Fiルーターに接続し、ルーターがサービス品質または同様のサービスを提供している場合、そこで接続をスロットルしますか?
ブライアンデニー

関連するものとして、ルート化されたAndroidデバイスでパケットをキャプチャする方法を次に示し
Bryan Denny

ルーターの構成はおそらく適切な方法であり、WANemを使用してシミュレーションを行っています。ただし、ネットワーク構成やネットワークインターフェースに依存しないポータブルな方法が欲しいのですが。基本的に、ビデオストリーミングを実行し、パケット損失を増やして、同じビデオを再度実行する単体テストを実行したいと考えています。
fejd

回答:


2

デバイスがルート化されているため、プロキシをインストールできます。私はTransparentProxyを使用しました。次に、ローカルネットワーク上の別のマシンにプロキシをセットアップします。TransparentProxyにそのプロキシをポイントし、プロキシをスロットルに設定します。機能する可能性のあるいくつかのプロキシには、CharlesProxyまたはService Captureが含まれます。

それがうまくいかない場合は、ルーターレベルからアクセスできます。BSDまたはLinuxを実行しているマシンは、ルーターとして機能できます。または、仮想アプライアンスまたは起動可能なCDを入手して実行することもできます。


2

標準のAndroid開発者ツールのエミュレーター制御機能を使用して、ネットワーク遅延と速度を設定できます。

Eclipseを使用している場合:Window \ Open Perspective \ DDMSを選択します。画面に「エミュレーターコントロール」という名前のタブが表示されます。このタブには、速度と遅延のオプションがあります。最上部の「テレフォニー設定」には、速度と遅延の選択があります。

これらの設定を変更する方法は他にもあります(エミュレーター設定でのスクリプトの作成を含む)が、これが設定にアクセスする最も簡単な方法です。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.