問題タブ [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.
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で動作する方法が見つかりません. 助言がありますか?
linux - tc フィルタが IP アドレスと一致せず、範囲のみ
シミュレーション用の仮想ネットワークを構築しようとしています。リンクは IP アドレスによって決定され、トラフィックをシェーピングし、ネットマスクによって定義された範囲の遅延を設定できます
しかし、次のような特定のIPアドレスのみをフィルタリングする必要があります
/24 の最初のケースでは、すべてのパケットが正しくキャプチャされます。ネットマスクを使用しない 2 番目の構成では、パケットはキャプチャされません。
編集: 定義されたインターフェイスに割り当てられている IP アドレスのみが宛先としてキャプチャされます。しかし、他の IP アドレスを遅くするにはどうすればよいでしょうか。
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
。コンテナに権限を与えずにコンテナを管理できるように、邪魔にならない方法はありますか?
linux - golang httpアップロードを外部からレート制限するにはどうすればよいですか?
https 経由で大量のデータを OpenStack Object Storage にアップロードする golang ユーティリティがあります。私は Ubuntu Linux で実行していますが、最大アップロード帯域幅が 2,500KB/s を超えないようにしたいと考えています。できれば同じシステムの他のユーザーに影響を与えないようにしたいと考えています (つまり、イーサネット インターフェイスの速度が低下します)。
できればソースコードを変更せずに、どうすればこれを行うことができますか? これまでにいくつかのアプローチを試しました:
- トラフィック シェーピング:単一のプロセスに影響を与える適切なネットワーク シェーピング手法を見つけることができませんでしたが、 と で可能であることはわかってい
iptables
ますtc
。これを行う方法についてのガイダンスをいただければ幸いです。私のネットワーキングのバックグラウンドはそれほど広範囲ではありません。 - Flowrate Limiting:
flowrate
go でパッケージを使用して、アップロードへの書き込みをレート制限しようとしました。これには目に見える効果はありませんでした。github.com/ncw/swift.ObjectCreateFile.Write()
メソッドは受信したデータをアップロードするのではなく、閉じたときにデータをアップロードするため、これは機能しないと思います。私はこれについて間違っている可能性があります。 - トリクル:コマンドを試しました
trickle
が、golang 実行可能ファイルと互換性がありません (この質問を参照してください)
linux - GRE トンネルを介した tc を使用したトラフィック ミラーリングは、イングレス トラフィックのみを取得します
tc
GRE-Tunnelを使用して、1 つのインターフェイスから「すべての」ネットワーク トラフィックをミラーリングしようとしていますtun0
。GRE トンネルは正常に動作しています。問題なく ping を実行してパケットを送信できます。次のコマンドでtc-qdisc
andを追加しました。tc-filter
と
問題
問題は、イングレス トラフィックだけが GRE トンネルを通過することです。インターフェイスを介して別のコンピューターにpingを実行すると、インターフェイスを介してens5
のみ取得されます。私は何を間違っていますか?icmp echo replies
tun0
デバッグ
c# - 私の C# アプリケーションでの帯域幅シェーピング
UDP を使用してインターネット経由でビデオを他の IP に送信するネイティブ ライブラリを使用する C# アプリケーションがあります。そのライブラリのトラフィックを制御できません。
私のアプリケーションは、私がそれらを制御できることを使用して、別のサーバーの Web サービスも呼び出しますWebRequest
。
問題は:
インターネット帯域幅が狭い場合、ビデオ ストリームがすべての帯域幅を使用します。そのため、その間、Web サービス メソッドからの応答を取得できません。
WebRequest
応答を安全に取得できるように、優先順位を付けたり、帯域幅を節約したりする方法はありますか?