ネットワークの輻輳は通常、ネットワークが対応できる量を上回るパケットをノードが送信したときに、ルーターバッファーオーバーフローの形で発生します。トラフィックの輻輳は、さまざまなアルゴリズムによって送信側システムに対する制御を設定することで回避されます。これらのアルゴリズムは Oracle Solaris でサポートされており、サポートされている組み込みのアルゴリズムを説明した次の表に示すとおり、OS に簡単に追加したり、直接プラグインしたりできます。
|
輻輳制御を有効にするには、次に示す制御関連の TCP プロパティーを設定します。これらのプロパティーは TCP について表示されますが、これらのプロパティーによって有効になる制御メカニズムは、SCTP トラフィックにも適用されます。
システムで現在動作中のアルゴリズムをコンマで区切ったリストが格納されます。アルゴリズムを追加または削除して、使用するアルゴリズムのみを有効にすることができます。このプロパティーには複数の値を設定できます。このため、行う変更に応じて += 修飾子または -= 修飾子を使用する必要があります。
アプリケーションが socket オプションで明示的にアルゴリズムを指定しない場合に、デフォルトで使用されます。cong_default プロパティーの値は大域ゾーンと非大域ゾーンの両方に適用されます。
次の例は、プロトコルに輻輳制御のアルゴリズムを追加する方法を示しています。
# ipadm set-prop -p cong_enabled+=algorithm tcp
次のようにアルゴリズムを削除します。
# ipadm set-prop -p cong_enabled-=algorithm tcp
次のようにデフォルトのアルゴリズムを置き換えます。
# ipadm set-prop -p cong_default=algorithm tcp
次の例は、輻輳制御を実装する方法を示しています。この例では、TCP プロトコルのデフォルトのアルゴリズムが newreno から cubic に変更されています。次に、vegas アルゴリズムが有効なアルゴリズムのリストから削除されています。
# ipadm show-prop -p extra_priv_ports tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp extra_priv_ports rw 2049,4045 -- 2049,4045 1-65535 # ipadm show-prop -p cong_default,cong_enabled tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp cong_default rw newreno -- newreno newreno,cubic, highspeed,vegas tcp cong_enabled rw newreno,cubic, newreno,cubic, newreno newreno,cubic, highspeed, highspeed, highspeed,vegas vegas vegas # ipadm set-prop -p cong_enabled-=vegas tcp # ipadm set-prop -p cong_default=cubic tcp # ipadm show-prop -p cong_default,cong_enabled tcp PROTO PROPERTY PERM CURRENT PERSISTENT DEFAULT POSSIBLE tcp cong_default rw cubic cubic newreno newreno,cubic, highspeed tcp cong_enabled rw newreno,cubic, newreno,cubic, newreno newreno,cubic, highspeed highspeed highspeed,vegas