netem と tc: netem は、Linux カーネル バージョン 2.6 以降で提供されるネットワーク シミュレーション モジュールです。この機能モジュールを使用すると、パフォーマンスの良好なローカル エリア ネットワークで、低帯域幅、伝送遅延、パケット損失などの複雑なインターネット伝送パフォーマンスをシミュレートできます。 Fedora、Ubuntu、Redhat、OpenSuse、CentOS、Debian など、Linux 2.6 (またはそれ以降) カーネル バージョンを使用する多くの Linux ディストリビューションでは、このカーネル機能が有効になっています。 tc は Linux システムのツールであり、正式名称はトラフィック制御です。 tc は netem の動作モードを制御するために使用できます。つまり、netem を使用する場合は、少なくとも 2 つの条件が必要です。1 つはカーネルに netem 関数が含まれていること、もう 1 つは tc が必要であることです。 この記事で紹介したフロー制御は、パケットの送信動作のみを制御でき、パケットの受信動作を制御できないことに注意してください。同時に、物理インターフェースに直接影響を及ぼします。物理 eth0 を制御すると、論理ネットワーク カード (eth0:1 など) も影響を受けます。逆に、論理ネットワーク カードを制御すると、制御が無効になる可能性があります。 (注: 仮想マシン内の複数のネットワーク カードは、仮想マシン内の複数の物理ネットワーク カードとみなされます)。 Linux には、ネットワーク パケットの損失と遅延をシミュレートするために使用できるトラフィック制御という tc ツールがあります。バックエンド サーバーを開発するときに、特定のネットワーク パケット損失条件下でサーバーが適切に機能するかどうかを知りたい場合は、tc を使用してパケット損失率をシミュレートできます。 パケット損失のシミュレーション 次のコマンドはパケット損失をシミュレートすることができ、eth0 ネットワーク ポートから送信されるパケットの 10% がランダムに失われます。 sudo tc qdisc add dev eth0 root netem 損失 10% アナログディレイ 次のコマンドは、eth0 ネットワーク ポートから送信されるパケットを 40 ミリ秒遅延します。 sudo tc qdisc add dev eth0 root netem 遅延 40ms 特定のシナリオにおけるパケット損失と遅延 上記で紹介したコマンドは eth0 ネットワーク ポート全体に有効であることに注意してください。つまり、eth0 から送信されるすべてのパケットでランダムなパケット損失または遅延が発生します。しかし、場合によっては、パケット損失と遅延が特定の宛先アドレスにのみ影響するようにしたいことがあります。どうすればよいでしょうか? sudo tc qdisc dev eth0 ルートハンドル 1 を追加します: prio sudo tc qdisc add dev eth0 parent 1:3 handle 30: netem 損失 13% 遅延 40ms sudo tc フィルターを追加 dev eth0 プロトコル ip 親 1:0 u32 一致 ip dst 199.91.72.192 一致 ip dport 36000 0xffff フロー ID 1:3 上記のコマンドでは、199.91.72.192:36000 に送信されるネットワーク パケットに対して 13% のパケット損失と 40 ミリ秒の遅延を生成するように tc に指示していますが、他の宛先アドレスに送信されるネットワーク パケットには影響はありません。 ルールの削除 パケット損失と遅延をシミュレートした後、ルールを削除することを忘れないでください。 sudo tc qdisc del dev eth0 ルート 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。 以下もご興味があるかもしれません:
|
<<: React Hook の使用例 (一般的なフック 6 つ)
>>: MySQL がユーザー名とパスワードの漏洩を引き起こす可能性のある Riddle の脆弱性を公開
図書館運営クエリ1.SHOW DATABASE; ----すべてのデータベースを照会する2. SHO...
CPU 権限の制限により、Linux ユーザー状態とカーネル状態間の通信は、プロセス間通信を使用した...
一番外側の boxF は 120 度回転し、2 番目の boxS は -60 度回転し、3 番目の ...
序文データベースの応用において、プログラマーは継続的な実践を通じて多くの経験を積んできました。これら...
目次序文こんにちは世界画像 境界線の半径を設定する実ピクセルを設定する外部CSSをインポートttfフ...
半年もブログを書いていなかったので、少し恥ずかしいです... 正月休みは、Dota をプレイしたり ...
以下のように表示されます。 SELECT count(DISTINCT(a.rect_id)) zc...
データのバックアップ操作は非常に簡単です。次のコマンドを実行します。 docker run --vo...
序文少し前に、browser-sync+gulp+gulp-nodemon を組み合わせて、本番環境...
毎日サービスをチェックしているときに、portainer からコンテナ ログを確認しようとしたところ...
目次1. はじめに2. 解決策2.1 ファイアウォールを設定してポートを開く2.3 ポートを確認し、...
この記事では、Vueを使用して特定の領域に透かしを描く方法を紹介します。具体的な内容は次のとおりです...
<br />以下は開発中に遭遇した問題と、そこから得た経験です。デバッグに時間がかかりま...
1. 問題複数のフローティング要素は親要素の幅を拡張できず、親要素の高さが 0 になる可能性がありま...
PHP のコンパイル時に -enable-gd-jis-conv オプションを追加することで発生する...