問題タブ [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 投票する
0 に答える
623 参照

google-cloud-storage - gsutil rsync がケーブル モデムを無効にしています。コマンドラインスロットリングを探しています

ファイルを Google Nearline バケットに同期するための bash スクリプトを作成しました。これは未加工の写真と音楽で、何 GB ものファイルがあります。多くのデバイス、Netflix/Amazon ストリーミング、ゲーム、電話、タブレット、Skype、大小のダウンロードをすべて同時に実行し、何週間も問題なく実行しています。gsutil rsync を起動してから数分以内に毎回インターネット接続が停止し、ケーブル モデムのプラグを抜く必要があります。-m スイッチを使用するかどうかに関係なく、gsutil rsync に分離されます。これは20回以上問題として確認されています。

[ネットワーク リンク コンディショナー] 設定ペインからスロットリングするときに gsutil rsync を正常に使用しましたが、システム全体をスロットリングしたくありません。El Capitan 10.11.3 を使用しています。Google の gsutil ドキュメントからでも「トリクル」のようないくつかのオプションを読みましたが、リンクが悪く、現在の Mac OS ではビルドできないと思います。pfctl を使用しても機能する別のスクリプトがありますが、見つけられるすべての可能な Google IP 範囲を渡す必要があり、スクリプトは root である場合にのみ機能します。

これを解決する方法を探しています.Macのbashスクリプト内でコマンドラインユーティリティを調整する簡単な方法があると思いましたが、El Capitanで動作する方法が見つかりません. 助言がありますか?

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

linux - tc フィルタが IP アドレスと一致せず、範囲のみ

シミュレーション用の仮想ネットワークを構築しようとしています。リンクは IP アドレスによって決定され、トラフィックをシェーピングし、ネットマスクによって定義された範囲の遅延を設定できます

しかし、次のような特定のIPアドレスのみをフィルタリングする必要があります

/24 の最初のケースでは、すべてのパケットが正しくキャプチャされます。ネットマスクを使用しない 2 番目の構成では、パケットはキャプチャされません。

編集: 定義されたインターフェイスに割り当てられている IP アドレスのみが宛先としてキャプチャされます。しかし、他の IP アドレスを遅くするにはどうすればよいでしょうか。

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

docker - tc を使用して、Docker コンテナーの送信ネットワーク帯域幅を調整します

Docker コンテナの帯域幅を調整しようとしています。ダウンリンクの帯域幅を制限するには、まずコンテナーの veth インターフェイスを見つけて tc: を使用しますtc qdisc add dev vethpair1 root tbf rate 1mbit latency 50ms burst 10000。アップリンクの帯域幅を制限したい場合は--cap-add=NET_ADMIN、コンテナーをスピンアップするタイミングを指定し、コンテナー内で同じ tc コマンドを使用する必要がありますeth0。コンテナに権限を与えずにコンテナを管理できるように、邪魔にならない方法はありますか?

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

linux - golang httpアップロードを外部からレート制限するにはどうすればよいですか?

https 経由で大量のデータを OpenStack Object Storage にアップロードする golang ユーティリティがあります。私は Ubuntu Linux で実行していますが、最大アップロード帯域幅が 2,500KB/s を超えないようにしたいと考えています。できれば同じシステムの他のユーザーに影響を与えないようにしたいと考えています (つまり、イーサネット インターフェイスの速度が低下します)。

できればソースコードを変更せずに、どうすればこれを行うことができますか? これまでにいくつかのアプローチを試しました:

  1. トラフィック シェーピング:単一のプロセスに影響を与える適切なネットワーク シェーピング手法を見つけることができませんでしたが、 と で可能であることはわかっていiptablesますtc。これを行う方法についてのガイダンスをいただければ幸いです。私のネットワーキングのバックグラウンドはそれほど広範囲ではありません。
  2. Flowrate Limiting:flowrate go でパッケージを使用して、アップロードへの書き込みをレート制限しようとしました。これには目に見える効果はありませんでした。github.com/ncw/swift.ObjectCreateFile.Write()メソッドは受信したデータをアップロードするのではなく、閉じたときにデータをアップロードするため、これは機能しないと思います。私はこれについて間違っている可能性があります。
  3. トリクル:コマンドを試しましたtrickleが、golang 実行可能ファイルと互換性がありません (この質問を参照してください)
0 投票する
2 に答える
1689 参照

linux - GRE トンネルを介した tc を使用したトラフィック ミラーリングは、イングレス トラフィックのみを取得します

tcGRE-Tunnelを使用して、1 つのインターフェイスから「すべての」ネットワーク トラフィックをミラーリングしようとしていますtun0。GRE トンネルは正常に動作しています。問題なく ping を実行してパケットを送信できます。次のコマンドでtc-qdiscandを追加しました。tc-filter

このチュートリアルのように

問題

問題は、イングレス トラフィックだけが GRE トンネルを通過することです。インターフェイスを介して別のコンピューターにpingを実行すると、インターフェイスを介してens5のみ取得されます。私は何を間違っていますか?icmp echo repliestun0

デバッグ

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

c# - 私の C# アプリケーションでの帯域幅シェーピング

UDP を使用してインターネット経由でビデオを他の IP に送信するネイティブ ライブラリを使用する C# アプリケーションがあります。そのライブラリのトラフィックを制御できません。

私のアプリケーションは、私がそれらを制御できることを使用して、別のサーバーの Web サービスも呼び出しますWebRequest

問題は:

インターネット帯域幅が狭い場合、ビデオ ストリームがすべての帯域幅を使用します。そのため、その間、Web サービス メソッドからの応答を取得できません。

WebRequest応答を安全に取得できるように、優先順位を付けたり、帯域幅を節約したりする方法はありますか?