問題タブ [trafficshaping]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
465 参照

linux - tc-sfq alternative that limits by bytes?

Is there an alternative to tc-sfq (Stochastic Fairness Queueing) that allows to configure a limit based on the packet size (total bytes) instead of packet count?

The reason for this is that given a packet size of 50 bytes, one htb class (rate=1000kbit) could for example dequeue 25 packets per 10ms, but with a packet size of 1500 bytes only 0.83 packets per 10ms.

If I set the tc-sfq limit to 25 packets, then in the worst case a full queue would take 300ms to empty.

--

This is on Linux 3.0.101, so something like fq_codel doesn't work afaik. Maybe someone has a patch that replaces the sfq packet limit with a byte limit (similar to pfifo vs. bfifo)?

0 投票する
1 に答える
1074 参照

linux - TC を使用して「so_mark」でマークされたパケットをフィルタリングする方法

so_mark特定のソケットから送信されたパケットをマークするために使用します。
ここで、これらのパケットを TC のクラスから (実際には HTB メカニズムから) フィルター処理したいと考えています。
使用するフィルターは何ですか (構文例も役立ちます)

0 投票する
1 に答える
1072 参照

qos - 入力でブリッジされた 2 つの NIC が ifb にリダイレクトされますが、機能しません。なぜですか?

2 つの NIC を持つホストがあるため、ゲートウェイと見なすことができ、2 つのネットワーク ポートがブリッジします。次に、2 つのネットワーク インターフェイスのイングレス トラフィックを IFB にリダイレクトし、IFB のフロー制御を行いますが、機能しません。なぜですか? 上記の 2 つの NIC は、1 つは WAN ポート、もう 1 つは LAN ポートです。これらはブリッジです。以下の私のスクリプト:

0 投票する
0 に答える
503 参照

python - tc を使用して着信トラフィックを遅延させると、ホストだけでなく VM にも影響します

DNS キャッシュ ポイズニング攻撃を実証したいと考えています。このために、VM に DNS サーバーを構成しました。tc と次のコマンドを使用して、199.43.133.53 および 199.43.132.53 の IP アドレスから VM への着信トラフィックを遅延させようとしています。

modprobe ifb ip link set dev ifb0 up tc qdisc add dev eth0 ingress tc filter add dev eth0 parent ffff: protocol ip u32 \ match ip src 199.43.132.53/16 flowid 1:1 action mirred egress redirect dev ifb0\ tc qdisc add dev ifb0 root netem delay 5000ms

2 つの IP アドレスは、ドメインのネームサーバーに対応します。これらのルールを追加した後、VM からこれら 2 つのネームサーバーに ping を実行すると、遅延応答が発生しますが、これは問題ありません。遅らせたいのは、これらのネームサーバーからの DNS 応答です。そして、これはまだかなり速いです。

また、この VM にパケットを送信するホスト マシンで Python スクリプトを実行しています。これらのルールが VM に追加されると、Python スクリプト (Scapy と sendp を使用してパケットを書き込む) にも遅延が発生します。ただし、ホスト マシンから VM に ping を実行すると、ping の応答はかなり高速です。ホスト マシンの IP がフィルターの一部ではない場合、Python の sendp で遅延が発生するのはなぜですか。その場合、ping 応答 (ホストから VM への ping 要求) が正常で、遅延がないのはなぜですか。ここで何が欠けていますか?

0 投票する
1 に答える
1079 参照

linux - tc: 多くの netem をインターフェースに接続する

ホストのさまざまなポートで実行される一連のサービスの遅延をシミュレートしようとしています。さまざまなサービスへのさまざまな遅延をシミュレートしたいと思います。できれば、制限なしで、特定のホスト上の多くの可能性があります。

これを行う唯一の方法は、prio qdisc を使用することです。次に例を示します。

上記のコマンドを実行すると、ハンドル 11 ~ 16 が作成されず、エラーで失敗することがわかります。

注意。上記のアンドゥです。

インターフェイスに 10 個を超える netem を追加する方法はありますか?

0 投票する
1 に答える
2368 参照

linux - tc を使用してネットワーク速度を制限するには?

クライアント、サーバー、プロキシの 3 台のマシンがあります。クライアント(1.1.1.1)にはwgetを使用する単純なスクリプトがあり、サーバー(2.2.2.1)にはApacheがあります。また、プロキシ マシンでは、tc を使用して速度を制限したいと考えています。プロキシ マシンには、クライアントに接続された eth0(1.1.1.2) とサーバーに接続された eth1(2.2.2.2) の 2 つのインターフェイスがあります。

このルールを追加しようとしましたが、機能していません:

0 投票する
1 に答える
1593 参照

netty - netty アプリケーションでの書き込みバイトと読み取りバイトの計算

シンプルな http サーバーの netty アプリで、個々のクライアントの接続 (書き込み、読み取りバイト数、および速度 (1 秒あたりのバイト数)) を追跡する必要があります。私が理解しているように、これを行うには、を使用する必要がありますChannelTrafficShapingHandler。どのメソッドをオーバーライドする必要があり、これらの計算をどのように行うことができますか?

私のChannelInitializer:

私の SimpleChannelInboundHandler:

0 投票する
1 に答える
2637 参照

linux - tc フィルターは一致したパケットをドロップします

パラメータに一致するパケットをドロップする一連のフィルタを追加しようとしています。tc フィルターは、一致に基づくドロップ アクションをサポートしていないようですが、qos パラメーターに基づいています。tc ドロップ フィルターを配置できた人はいますか?

これまでに見つけた最も一般的な方法は、tc を使用してマークを付け、次に iptables を使用してマークされたパケットをドロップすることですが、それは私の意見では効率的ではありません。

0 投票する
2 に答える
3978 参照

python - 「RTNETLINK の回答: ファイルが存在します」

delay コマンドを追加すると、paramiko は終了ステータスとして "2" を返します (帯域幅コマンドの設定では "0" を返します)。2 大丈夫ですか?(グーグルはこれを助けませんでした.2は何らかのエラーであるに違いないと推測しています)。

私が使用するコマンドは次のとおりです。

私たちは基本的にこれに従おうとしていました:

# tc qdisc add dev eth0 root netem delay 100ms

オンラインチュートリアルから。

bw、filter、delay を設定するコマンドのブロックは次のとおりです。(親/クラスIDを台無しにしている可能性があると推測しています)。私が間違っているかもしれないことがわかりますか?

これは私が受け取るエラーです:

これは、遅延と帯域幅を設定するためのスクリプトです。

上記の delay_cmd に何か問題がありますか?

これは私たちのコードでそれを呼び出す方法です:

parent 1: handleさらに、とparent 1:2 handleそれ自体の違いは何ですか?