Linux上で低帯域幅、高遅延ネットワーク接続をシミュレート


19

Linuxマシンで、高遅延、低帯域幅のネットワーク接続をシミュレートしたいと思います。

帯域幅の制限については、たとえばここで説明しましたが、帯域幅と遅延の両方の制限に対処する記事は見つかりません。

を使用して、高遅延または低帯域幅を取得できますtc。しかし、これらを単一の接続に結合することはできませんでした。特に、ここにあるレート制御スクリプトの例は私には機能しません。

# tc qdisc add dev lo root handle 1:0 netem delay 100ms 
# tc qdisc add dev lo parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
RTNETLINK answers: Operation not supported

低帯域幅、高遅延の接続、tcまたは他のすぐに利用可能なツールを作成するにはどうすればよいですか?


1
あなたのリンク、例えばからのアプローチを組み合わせる試みました。遅延にtcを使用し、帯域幅にトリクルを使用しますか?(tcを使用するよりもugいですが、まだ動作する可能性があります。)
アンディ

これは良い考えですが(実際、トリクルはレイテンシを追加することさえあります)、残念ながらFirefoxはトリクルの下ではロードされません。それをテストする必要があります。
ジャスティンL.

回答:


15

あぁ!コマンドの順序を逆にしても機能します。

tc qdisc add dev lo root handle 1: htb default 12 
tc class add dev lo parent 1:1 classid 1:12 htb rate 20kbps ceil 20kbps 
tc qdisc add dev lo parent 1:12 netem delay 1000ms 

https://lists.linux-foundation.org/pipermail/netem/2010-May/001388.html


理由に興味がある人は誰でも、netem qdiscを親にすることはできないようです。そのため、階層を再編成してリーフノードにする必要があります。
アンディ

3
帯域幅の制限は一方向のみであることに注意してください(発信)。両方向で発生させるには、追加の作業を行う必要があります(明らかにifbを使用)。 linuxfoundation.org/collaborate/workgroups/networking/...
ロジャー・ビンズ

tcを理解しようとしたときにこれに出くわしました。私が読んだものから、最初の行は1:0を作成しますが、2行目は1:1を参照しますか?(おそらく私の間違った理解-しかし、クラス/ qtdiscsの番号付け方法を理解しようとして多くのページをじっと見ました)
-symcbean

1

無料ではありませんが、Charles Web Debugging Proxyは低帯域幅の高遅延接続をシミュレートできます

http://www.charlesproxy.com/documentation/proxying/throttling/


興味深いことに、私は実際にWebデバッグのためにこれを行っています。しかし、確かにお金をかけずにこれを行う方法がなければなりません。:)
ジャスティンL.

悲しいことに、チャールズは地元の交通機関で動作しないようです。プロキシ経由で192.168.1.1にアクセスしようとすると死にます。
ジャスティンL.

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