Go to main content
Oracle® Solaris 11.3 での TCP/IP ネットワーク、IPMP、および IP トンネルの管理

印刷ビューの終了

更新: 2016 年 11 月
 
 

トラフィックの輻輳制御の実装

ネットワークの輻輳は通常、ネットワークが対応できる量を上回るパケットをノードが送信したときに、ルーターバッファーオーバーフローの形で発生します。トラフィックの輻輳は、さまざまなアルゴリズムによって送信側システムに対する制御を設定することで回避されます。これらのアルゴリズムは Oracle Solaris でサポートされており、サポートされている組み込みのアルゴリズムを説明した次の表に示すとおり、OS に簡単に追加したり、直接プラグインしたりできます。

アルゴリズム
Oracle Solaris 名
説明
NewReno
newreno
Oracle Solaris のデフォルトのアルゴリズム。この制御メカニズムには、送信側の輻輳ウィンドウ、スロースタート、および輻輳回避があります。
HighSpeed
highspeed
高速ネットワーク用のもっとも有名かつシンプルな NewReno の修正版の 1 つ。
CUBIC
cubic
Linux 2.6 の現在のデフォルトアルゴリズム。輻輳回避フェーズを線形的なウィンドウ増加から cubic 関数に変更します。
Vegas
vegas
実際のパケットロスを発生させずに輻輳を予測しようとする典型的な遅延ベースのアルゴリズム。

輻輳制御を有効にするには、次に示す制御関連の TCP プロパティーを設定します。これらのプロパティーは TCP について表示されますが、これらのプロパティーによって有効になる制御メカニズムは、SCTP トラフィックにも適用されます。

cong_enabled

システムで現在動作中のアルゴリズムをコンマで区切ったリストが格納されます。アルゴリズムを追加または削除して、使用するアルゴリズムのみを有効にすることができます。このプロパティーには複数の値を設定できます。このため、行う変更に応じて += 修飾子または -= 修飾子を使用する必要があります。

cong_default

アプリケーションが 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

注 -  アルゴリズムを追加または削除するときに従う順序の規則はありません。ほかのアルゴリズムをプロパティーに追加する前に、アルゴリズムを削除できます。ただし、cong_default プロパティーには定義済みのアルゴリズムが常に設定されている必要があります。

次の例は、輻輳制御を実装する方法を示しています。この例では、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