Windows system >> Windowsの知識 >  >> Windowsチュートリアル合成 >> システムFAQ >> TCサーバのフロー制御機能を知っていることを誰にでも教える

TCサーバのフロー制御機能を知っていることを誰にでも教える

  

TCはもちろん自社でも利用可能ですが、私はそれが必要ではないと感じます、企業ネットワークは通常トラフィックを超える、またはトラフィックは制御されません。 TCを使用してサーバーのトラフィックを制御します。

TCの概要

Linuxでは、TCにはCBQとHTB.HTBという2つの制御方法があります。それは階層的なフィルタリングフレームワークです。

TCは、3つの基本的な構成要素から構成されています。キュー指示qdisc(キューイング分野)、クラス(クラス)、および分類子(Classifiers)

キュー(キューイング分野):制御ネットワークの実装に使用されます。トランシーバ速度キューを介して、Linuxはネットワークデータパケットをキャッシュし、接続を中断することなく(TCPなど)、ユーザーの設定に従ってネットワークトラフィックを平滑化できます。 Linuxは受信キューを十分に制御しないので、一般的に送信キューのみを使用します。つまり、「制御と制御は制御しません」ということです。他の2つの主要なTCコンポーネント(クラスと分類子)をカプセル化しています。カーネルがネットワークインタフェースを介してパケットを送信する必要がある場合、カーネルはこのインタフェース用に設定されたqdisc(キューイングルール)に従ってパケットをキューに入れる必要があります。カーネルはqdiscからできるだけ多くのデータパケットを受け取り、それらをネットワークアダプタドライバモジュールに渡します。

最も単純なQDiscはpfifoで、入ってくるパケットには何の処理もしませんパケットは先入れ先出し方式で待ち行列に入れられます。ただし、ネットワークインターフェイスが現在処理できないパケットを保存します。

キュールールには、FIFO(先入れ先出し)、RED(ランダム早期検出)、SFQ(ランダムフェアキュー)、トークンバケット(トークンバケット)、クラスベースキュー(CBQ)があり、CBQはスーパーです。キュー、つまり他のキュー(他のCBQであっても)を含むことができます。

クラスは管理戦略を表すために使用されます。明らかに、多くの場合、IPごとに異なるフロー制御戦略を実装する可能性がありますが、現時点では、異なる制御戦略を表すために異なるクラスを使用する必要があります。

フィルタは、ユーザーを特定の制御戦略(つまり、異なるクラス)に分類するために使用されます。たとえば、2つのIP xxa、xxbに対して異なる制御方式(A、B)を実装したい場合、ここではfilterを使用して制御方式Aにxxaを割り当て、制御方式Bにxxbを割り当ててフィルタを分割できます。フラグは、u32マーキング機能またはIPテーブルセットマーク(ほとんどの場合、マーキングにiptablesを使用)を使用して実装できます。

現在、TCが使用できるフィルタは、fwmarkクラシファイア、u32クラシファイア、ルートベースクラシファイア、およびRSVPクラシファイア(IPV6、IPV4など)です。 Linuxのnetfilterコードはトラフィックを選択するために使用され、u32クラシファイアはANYヘッダに基づいてトラフィックを選択することを可能にします。

パケット - > iptables(iptablesでは、iptablesは異なるipに応じて異なるマークを設定します) - > TC(クラス) - > TC(キュー)


eth0ビットがサーバーの外部ネットワークインターフェイスであるとします。

1)最初にeth0のqdiscAで、qdiscAはマシンを外部ネットワークに渡す速度を制御するので、サーバー流出の速度を制御するために使用されます。

#tc qdisc add dev eth1ルートハンドル1: Htb default 1

setインタフェースのトップレベルのハンドルを追加する(マーキング用)1 classを使用したデフォルトクラス

はキューであるか、それともクラスとフィルタの両方がIDであるかなど一般的に親(親、上位層)を持つ文字は、IDがインタフェースローカリティを持ち、異なるネットワークインタフェースが同じIDを持つことができることに注意してください。このため、qdiscが一番上にあり、親はそうではないので、‘ root’を使用します。 1を指定したID:をマークするには

‘ default 91′は、ipストリームが設定されたフィルタ規則のいずれも満たさない場合、自動的にクラス1に分類されることを意味します。命令規則のより詳細な説明についてはマニュアルを参照してください。

2)次にqdiscの下に2つのクラスを作成して、マシンから外部ネットワークへのeth0制御の速度を指定します。

#tc class add dev eth0親の追加1:0 classid1:30 htb rate 2mbit ceil 4mbit prio 2

注:上記は制御出力サーバーの速度2M、最大4Mの速度です。

rate:クラス保証帯域幅の値です。複数のクラスがある場合は、すべてのサブクラスの合計が親クラス以下であることを確認してください。

prio:借用時の競争力を示すために使用され、小さいほど優先順位が高く、競争力が強くなります。

Copyright © Windowsの知識 All Rights Reserved