(57)【特許請求の範囲】
【請求項１】
ネットワーク上の通信を混雑制御する混雑制御システムにおいて、
ネットワーク上において複数備えられる、送信又は中継する通信データを混雑制御する混雑制御ノードが、
当該混雑制御ノードにおける通信の混雑の度合いを検知する混雑検知手段と、
混雑検知手段が検知した混雑の情報を、前記ネットワーク上の他の前記混雑制御ノードへ通知する混雑通知手段と、
他の前記混雑制御ノードから前記混雑の情報を受信する手段と、
前記混雑の情報と、通信先への転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路上において前記混雑の度合いが定められた以上であるフローを推定する混雑フロー推定手段と、
前記ネットワーク上の前記フローを、送信量を制限する制限対象フロー又は送信量を制限しない非制限対象フローとに分類する分類処理手段と、
前記制限対象フロー及び前記非制限対象フローの本数を測定するフロー数測定手段と、
前記フロー数測定手段の測定結果に基づいて、前記制限対象フローに対する送信量の制限の重み付けを決定する重み付加手段と、
各前記制限対象フロー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする混雑制御システム。
【請求項２】
ネットワーク上の通信を混雑制御する混雑制御システムにおいて、
ネットワーク上において複数備えられる、送信又は中継する通信データを混雑制御する混雑制御ノードが、
当該混雑制御ノードにおける通信の混雑の度合いを検知する混雑検知手段と、
混雑検知手段が検知した混雑の情報を、前記ネットワーク上の他の前記混雑制御ノードへ通知する混雑通知手段と、
他の前記混雑制御ノードから前記混雑の情報を受信する手段と、
前記混雑の情報と、通信先への転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路上において前記混雑の度合いが定められた以上であるフローを推定する混雑フロー推定手段と、
前記ネットワーク上の前記フローを分類しキューと関連付ける分類処理手段と、
各前記キュー毎に、当該キューを通過する前記フローの本数を測定するフロー数測定手段と、
前記フロー数測定手段の測定結果に基づいて、各前記キュー毎に当該キューを通過する前記フローに対する送信量の制限の重み付けを決定する重み付加手段と、
各前記キュー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする混雑制御システム。
【請求項３】
ネットワーク上の通信を混雑制御する混雑制御システムにおいて、
ネットワーク上において複数備えられる、送信又は中継する通信データを混雑制御する混雑制御ノードが、
当該混雑制御ノードにおける通信の混雑の度合いを検知する混雑検知手段と、
混雑検知手段が検知した混雑の情報を、前記ネットワーク上の他の前記混雑制御ノードへ通知する混雑通知手段と、
他の前記混雑制御ノードから前記混雑の情報を受信する手段と、
前記混雑の情報と、通信先への転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路上において前記混雑の度合いが定められた以上であるフローを推定する混雑フロー推定手段と、
前記ネットワーク上の隣接するノードとの間における前記通信データの転送のために使用する転送バッファと、
通信データを送信可能時まで保持する送信バッファと、
前記送信バッファから出力される前記通信データの量を測定する出力測定手段を備え、
各前記混雑制御ノードの前記混雑検知手段は、
前記通信の混雑の度合いを検知する処理を、前記転送バッファの使用量に基づいて行ない、
各前記混雑制御ノードの前記混雑通知手段は、
前記転送バッファの使用量、当該転送バッファから出力されるデータ量、及び前記出力測定手段が測定した前記送信バッファから出力される前記通信データの量とに基づいて、前記ネットワーク上の他の混雑制御ノードに対して通信の制限を指示する制御命令を生成する手段と、
前記制御命令を前記混雑の情報に付加して前記ネットワーク上の他の混雑制御ノードに対して送信する手段と、
前記ネットワーク上の他の混雑制御ノードから、前記制御命令の付加された前記混雑の情報を受信する手段と、
受信した前記制御命令を実行する手段を備えることを特徴とする混雑制御システム。
【請求項４】
各前記混雑制御ノードは、
前記混雑フロー推定手段により前記混雑の度合いが定められた以上であると推定された前記フローを、送信量を制限する制限対象フローと定める手段と、
各前記制限対象フロー毎に、当該制限対象フローのデータの送信量の制限を行なう出力調整手段を備えることを特徴とする請求項３に記載の混雑制御システム。
【請求項５】
各前記混雑制御ノードは、
前記ネットワーク上の前記フローを、送信量を制限する制限対象フロー又は送信量を制限しない非制限対象フローとに分類する分類処理手段と、
前記制限対象フロー及び前記非制限対象フローの本数を測定するフロー数測定手段と、
前記フロー数測定手段の測定結果に基づいて、前記制限対象フローに対する送信量の制限の重み付けを決定する重み付加手段と、
各前記制限対象フロー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする請求項３に記載の混雑制御システム。
【請求項６】
各前記混雑制御ノードは、
前記ネットワーク上の前記フローを分類しキューと関連付ける分類処理手段と、
各前記キュー毎に、当該キューを通過する前記フローの本数を測定するフロー数測定手段と、
前記フロー数測定手段の測定結果に基づいて、各前記キュー毎に当該キューを通過する前記フローに対する送信量の制限の重み付けを決定する重み付加手段と、
各前記キュー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする請求項３に記載の混雑制御システム。
【請求項７】
ネットワーク上の通信を混雑制御する混雑制御システムにおいて、
ネットワーク上において複数備えられる、送信又は中継する通信データを混雑制御する混雑制御ノードが、
当該混雑制御ノードにおける通信の混雑の度合いを検知する混雑検知手段と、
混雑検知手段が検知した混雑の情報を、前記ネットワーク上の他の前記混雑制御ノードへ通知する混雑通知手段と、
他の前記混雑制御ノードから前記混雑の情報を受信する手段と、
前記混雑の情報と、通信先への転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路上において前記混雑の度合いが定められた以上であるフローを推定する混雑フロー推定手段と、
前記ネットワーク上の隣接するノードとの間における前記通信データの転送のために使用する転送バッファと、
前記ネットワーク上における通信ができない障害を検出する障害検出手段と、
前記障害検出手段により検出された前記障害の発生した前記ネットワーク上の区間の情報を障害通知として、前記ネットワーク上の他の混雑制御ノードに通知する手段を備え、
各前記混雑制御ノードの前記混雑検知手段は、
前記通信の混雑の度合いを検知する処理を、前記転送バッファの使用量に基づいて行なうことを特徴とする混雑制御システム。
【請求項８】
各前記混雑制御ノードは、
前記混雑フロー推定手段により前記混雑の度合いが定められた以上であると推定された前記フローを、送信量を制限する制限対象フローと定める手段と、
各前記制限対象フロー毎に、当該制限対象フローのデータの送信量の制限を行なう出力調整手段を備えることを特徴とする請求項７に記載の混雑制御システム
【請求項９】
各前記混雑制御ノードは、
前記ネットワーク上の前記フローを、送信量を制限する制限対象フロー又は送信量を制限しない非制限対象フローとに分類する分類処理手段と、
前記制限対象フロー及び前記非制限対象フローの本数を測定するフロー数測定手段と、
前記フロー数測定手段の測定結果に基づいて、前記制限対象フローに対する送信量の制限の重み付けを決定する重み付加手段と、
各前記制限対象フロー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする請求項７に記載の混雑制御システム。
【請求項１０】
各前記混雑制御ノードは、
前記ネットワーク上の前記フローを分類しキューと関連付ける分類処理手段と、
各前記キュー毎に、当該キューを通過する前記フローの本数を測定するフロー数測定手段と、
前記フロー数測定手段の測定結果に基づいて、各前記キュー毎に当該キューを通過する前記フローに対する送信量の制限の重み付けを決定する重み付加手段と、
各前記キュー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする請求項７に記載の混雑制御システム。
【請求項１１】
各前記混雑制御ノードは、
通信データを送信可能時まで保持する送信バッファと、
前記送信バッファから出力される前記通信データの量を測定する出力測定手段を備え、
各前記混雑制御ノードの前記混雑通知手段は、
前記転送バッファの使用量、当該転送バッファから出力されるデータ量、及び前記出力測定手段が測定した前記送信バッファから出力される前記通信データの量とに基づいて、前記ネットワーク上の他の混雑制御ノードに対して通信の制限を指示する制御命令を生成する手段と、
前記制御命令を前記混雑の情報に付加して前記ネットワーク上の他の混雑制御ノードに対して送信する手段と、
前記ネットワーク上の他の混雑制御ノードから、前記制御命令の付加された前記混雑の情報を受信する手段と、
受信した前記制御命令を実行する手段を備えることを特徴とする請求項７から請求項１０のいずれか１つに記載の混雑制御システム。
【請求項１２】
各前記混雑制御ノードは、
前記ネットワーク上の他の混雑制御ノードから前記障害通知を受信する手段と、
受信した前記障害通知に基づいてルーティングテーブルを変更し、前記ネットワーク上における障害の検出された区間を転送経路から回避させる障害処理手段を備えることを特徴とする請求項７から請求項１１のいずれか１つに記載の混雑制御システム。
【請求項１３】
各前記混雑制御ノードは、
前記ネットワーク上の他の混雑制御ノードに対し、当該混雑制御ノードへの転送経路に前記障害が発生している場合には、前記ネットワーク上において転送される前記障害通知の当該混雑制御ノードに対する転送を破棄する手段を備えることを特徴とする請求項１２に記載の混雑制御システム。
【請求項１４】
ネットワーク上の通信を混雑制御する混雑制御ノードにおいて、
前記ネットワーク上の他のノードから、当該ノードにおいて発生した通信の混雑の情報を受信する手段と、
前記混雑の情報と、通信先への通信データの転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路のノードにおいて混雑の度合いが定められた以上であるフローを推定する混雑フロー推定手段と、
前記ネットワーク上の前記フローを、送信量を制限する制限対象フロー又は送信量を制限しない非制限対象フローとに分類する分類処理手段と、
前記制限対象フロー及び前記非制限対象フローの本数を測定するフロー数測定手段と、
前記フロー数測定手段の測定結果に基づいて、前記制限対象フローに対する送信量の制限の重み付けを決定する重み付加手段と、
各前記制限対象フロー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする混雑制御ノード。
【請求項１５】
ネットワーク上の通信を混雑制御する混雑制御ノードにおいて、
前記ネットワーク上の他のノードから、当該ノードにおいて発生した通信の混雑の情報を受信する手段と、
前記混雑の情報と、通信先への通信データの転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路のノードにおいて混雑の度合いが定められた以上であるフローを推定する混雑フロー推定手段と、
前記ネットワーク上の前記フローを分類しキューと関連付ける分類処理手段と、
各前記キュー毎に、当該キューを通過する前記フローの本数を測定するフロー数測定手段と、
前記フロー数測定手段の測定結果に基づいて、各前記キュー毎に当該キューを通過する前記フローに対する送信量の制限の重み付けを決定する重み付加手段と、
各前記キュー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする混雑制御ノード。
【請求項１６】
ネットワーク上の通信を混雑制御する混雑制御ノードにおいて、
前記ネットワーク上の他のノードから、当該ノードにおいて発生した通信の混雑の情報を受信する手段と、
前記混雑の情報と、通信先への通信データの転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路のノードにおいて混雑の度合いが定められた以上であるフローを推定する混雑フロー推定手段と、
通信の混雑の度合いを検知する混雑検知手段と、
混雑検知手段が検知した混雑の情報を、前記ネットワーク上の他のノードに通知する混雑通知手段と、
前記ネットワーク上の隣接する前記ノードとの間における前記通信データの転送のために使用する転送バッファと、
通信データを送信可能時まで保持する送信バッファと、
前記送信バッファから出力される前記通信データの量を測定する出力測定手段を備え、
前記混雑検知手段は、
前記通信の混雑の度合いを検知する処理を、前記転送バッファの使用量に基づいて行ない、
前記混雑通知手段は、
前記転送バッファの使用量、当該転送バッファから出力されるデータ量、及び前記出力測定手段が測定した前記送信バッファから出力される前記通信データの量とに基づいて、前記ネットワーク上の他のノードに対して通信の制限を指示する制御命令を生成する手段を備え、
前記制御命令を前記混雑の情報に含めて前記ネットワーク上の他のノードに対して送信することを特徴とする混雑制御ノード。
【請求項１７】
前記混雑フロー推定手段により前記混雑の度合いが定められた以上であると推定された前記フローを、送信量を制限する制限対象フローと定める手段と、
各前記制限対象フロー毎に、当該制限対象フローのデータの送信量の制限を行なう出力調整手段を備えることを特徴とする請求項１６に記載の混雑制御ノード。
【請求項１８】
前記ネットワーク上の前記フローを、送信量を制限する制限対象フロー又は送信量を制限しない非制限対象フローとに分類する分類処理手段と、
前記制限対象フロー及び前記非制限対象フローの本数を測定するフロー数測定手段と、
前記フロー数測定手段の測定結果に基づいて、前記制限対象フローに対する送信量の制限の重み付けを決定する重み付加手段と、
各前記制限対象フロー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする請求項１６に記載の混雑制御ノード。
【請求項１９】
前記ネットワーク上の前記フローを分類しキューと関連付ける分類処理手段と、
各前記キュー毎に、当該キューを通過する前記フローの本数を測定するフロー数測定手段と、
前記フロー数測定手段の測定結果に基づいて、各前記キュー毎に当該キューを通過する前記フローに対する送信量の制限の重み付けを決定する重み付加手段と、
各前記キュー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする請求項１６に記載の混雑制御ノード。
【請求項２０】
ネットワーク上の通信を混雑制御する混雑制御ノードにおいて、
前記ネットワーク上の他のノードから、当該ノードにおいて発生した通信の混雑の情報を受信する手段と、
前記混雑の情報と、通信先への通信データの転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路のノードにおいて混雑の度合いが定められた以上であるフローを推定する混雑フロー推定手段と、
通信の混雑の度合いを検知する混雑検知手段と、
混雑検知手段が検知した混雑の情報を、前記ネットワーク上の他のノードに通知する混雑通知手段と、
前記ネットワーク上における通信ができない障害を検出する障害検出手段と、
前記障害検出手段により検出された前記障害の発生した前記ネットワーク上の区間の情報を障害通知として、前記ネットワーク上のノードに通知する手段を備えることを特徴とする混雑制御ノード。
【請求項２１】
前記混雑フロー推定手段により前記混雑の度合いが定められた以上であると推定された前記フローを、送信量を制限する制限対象フローと定める手段と、
各前記制限対象フロー毎に、当該制限対象フローのデータの送信量の制限を行なう出力調整手段を備えることを特徴とする請求項２０に記載の混雑制御ノード。
【請求項２２】
前記ネットワーク上の前記フローを、送信量を制限する制限対象フロー又は送信量を制限しない非制限対象フローとに分類する分類処理手段と、
前記制限対象フロー及び前記非制限対象フローの本数を測定するフロー数測定手段と、
前記フロー数測定手段の測定結果に基づいて、前記制限対象フローに対する送信量の制限の重み付けを決定する重み付加手段と、
各前記制限対象フロー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする請求項２０に記載の混雑制御ノード。
【請求項２３】
前記ネットワーク上の前記フローを分類しキューと関連付ける分類処理手段と、
各前記キュー毎に、当該キューを通過する前記フローの本数を測定するフロー数測定手段と、
前記フロー数測定手段の測定結果に基づいて、各前記キュー毎に当該キューを通過する前記フローに対する送信量の制限の重み付けを決定する重み付加手段と、
各前記キュー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする請求項２０に記載の混雑制御ノード。
【請求項２４】
前記ネットワーク上の隣接する前記ノードとの間における前記通信データの転送のために使用する転送バッファを備え、
前記混雑検知手段は、
前記通信の混雑の度合いを検知する処理を、前記転送バッファの使用量に基づいて行なうことを特徴とする請求項２０から請求項２３のいずれか１つに記載の混雑制御ノード。
【請求項２５】
通信データを送信可能時まで保持する送信バッファと、
前記送信バッファから出力される前記通信データの量を測定する出力測定手段を備え、
前記混雑通知手段は、
前記転送バッファの使用量、当該転送バッファから出力されるデータ量、及び前記出力測定手段が測定した前記送信バッファから出力される前記通信データの量とに基づいて、前記ネットワーク上の他のノードに対して通信の制限を指示する制御命令を生成する手段を備え、
前記制御命令を前記混雑の情報に含めて前記ネットワーク上の他のノードに対して送信することを特徴とする請求項２４に記載の混雑制御ノード。
【請求項２６】
前記ネットワーク上の他のノードから前記障害通知を受信する手段と、
受信した前記障害通知に基づいてルーティングテーブルを変更し、前記ネットワーク上における障害の検出された区間を転送経路から回避させる障害処理手段を備えることを特徴とする請求項２０から請求項２５のいずれか１つに記載の混雑制御ノード。
【請求項２７】
前記ネットワーク上の他のノードに対し、当該ノードへの転送経路に前記障害が発生している場合には、前記ネットワーク上において転送される前記障害通知の当該ノードに対する転送を破棄する手段を備えることを特徴とする請求項２６に記載の混雑制御ノード。
【請求項２８】
コンピュータを制御することにより、ネットワークと接続しクライアントによる通信を中継する混雑制御ノードにおける通信の混雑を制御する混雑制御プログラムにおいて、
前記ネットワーク上の他のノードから、当該ノードにおいて発生した通信の混雑の情報を受信する機能と、
前記混雑の情報と、通信先への通信データの転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路のノードにおいて混雑の度合いが定められた以上であるフローを推定する混雑フロー推定機能と、
前記ネットワーク上の前記フローを、送信量を制限する制限対象フロー又は送信量を制限しない非制限対象フローとに分類する分類処理機能と、
前記制限対象フロー及び前記非制限対象フローの本数を測定するフロー数測定機能と、
前記フロー数測定機能の測定結果に基づいて、前記制限対象フローに対する送信量の制限の重み付けを決定する重み付加機能と、
各前記制限対象フロー毎に、前記混雑フロー推定機能の推定結果と前記重み付加機能の重み付け結果に基づいて送信量を制限する出力調整機能を備えることを特徴とする混雑制御プログラム。
【請求項２９】
コンピュータを制御することにより、ネットワークと接続しクライアントによる通信を中継する混雑制御ノードにおける通信の混雑を制御する混雑制御プログラムにおいて、
前記ネットワーク上の他のノードから、当該ノードにおいて発生した通信の混雑の情報を受信する機能と、
前記混雑の情報と、通信先への通信データの転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路のノードにおいて混雑の度合いが定められた以上であるフローを推定する混雑フロー推定機能と、
前記ネットワーク上の前記フローを分類しキューと関連付ける分類処理機能と、
各前記キュー毎に、当該キューを通過する前記フローの本数を測定するフロー数測定機能と、
前記フロー数測定手段の測定結果に基づいて、各前記キュー毎に当該キューを通過する前記フローに対する送信量の制限の重み付けを決定する重み付加機能と、
各前記キュー毎に、前記混雑フロー推定機能の推定結果と前記重み付加機能の重み付け結果に基づいて送信量を制限する出力調整機能を備えることを特徴とする混雑制御プログラム。
【請求項３０】
コンピュータを制御することにより、ネットワークと接続しクライアントによる通信を中継する混雑制御ノードにおける通信の混雑を制御する混雑制御プログラムにおいて、
前記ネットワーク上の他のノードから、当該ノードにおいて発生した通信の混雑の情報を受信する機能と、
前記混雑の情報と、通信先への通信データの転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路のノードにおいて混雑の度合いが定められた以上であるフローを推定する混雑フロー推定機能と、
通信の混雑の度合いを検知する混雑検知機能と、
混雑検知機能が検知した混雑の情報を、前記ネットワーク上の他のノードに通知する混雑通知機能と、
通信データを送信可能時まで保持する送信バッファから出力される前記通信データの量を測定する出力測定機能を備え、
前記混雑検知機能において、前記ネットワーク上の隣接する前記ノードとの間における前記通信データの転送のために使用する転送バッファの使用量に基づいて、前記通信の混雑の度合いを検知する処理を実行し、
前記混雑通知機能にて、
前記転送バッファの使用量、当該転送バッファから出力されるデータ量、及び前記出力測定機能が測定した前記送信バッファから出力される前記通信データの量とに基づいて、前記ネットワーク上の他のノードに対して通信の制限を指示する制御命令を生成する機能と、
前記制御命令を前記混雑の情報に含めて前記ネットワーク上の他のノードに対して送信する機能を備えることを特徴とする混雑制御プログラム。
【請求項３１】
前記混雑フロー推定機能により前記前記混雑の度合いが定められた以上であると推定された前記フローを、送信量を制限する制限対象フローと定める機能と、
各前記制限対象フロー毎に、当該制限対象フローのデータの送信量の制限を行なう出力調整機能を備えることを特徴とする請求項３０に記載の混雑制御プログラム。
【請求項３２】
前記ネットワーク上の前記フローを、送信量を制限する制限対象フロー又は送信量を制限しない非制限対象フローとに分類する分類処理機能と、
前記制限対象フロー及び前記非制限対象フローの本数を測定するフロー数測定機能と、
前記フロー数測定機能の測定結果に基づいて、前記制限対象フローに対する送信量の制限の重み付けを決定する重み付加機能と、
各前記制限対象フロー毎に、前記混雑フロー推定機能の推定結果と前記重み付加機能の重み付け結果に基づいて送信量を制限する出力調整機能を備えることを特徴とする請求項３０に記載の混雑制御プログラム。
【請求項３３】
前記ネットワーク上の前記フローを分類しキューと関連付ける分類処理機能と、
各前記キュー毎に、当該キューを通過する前記フローの本数を測定するフロー数測定機能と、
前記フロー数測定手段の測定結果に基づいて、各前記キュー毎に当該キューを通過する前記フローに対する送信量の制限の重み付けを決定する重み付加機能と、
各前記キュー毎に、前記混雑フロー推定機能の推定結果と前記重み付加機能の重み付け結果に基づいて送信量を制限する出力調整機能を備えることを特徴とする請求項３０に記載の混雑制御プログラム。
【請求項３４】
コンピュータを制御することにより、ネットワークと接続しクライアントによる通信を中継する混雑制御ノードにおける通信の混雑を制御する混雑制御プログラムにおいて、
前記ネットワーク上の他のノードから、当該ノードにおいて発生した通信の混雑の情報を受信する機能と、
前記混雑の情報と、通信先への通信データの転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路のノードにおいて混雑の度合いが定められた以上であるフローを推定する混雑フロー推定機能と、
通信の混雑の度合いを検知する混雑検知機能と、
混雑検知機能が検知した混雑の情報を、前記ネットワーク上の他のノードに通知する混雑通知機能と、
前記ネットワーク上における通信ができない障害を検出する障害検出機能と、
前記障害検出機能により検出された前記障害の発生した前記ネットワーク上の区間の情報を障害通知として、前記ネットワーク上のノードに通知する機能を備えることを特徴とする混雑制御プログラム。
【請求項３５】
前記混雑フロー推定機能により前記前記混雑の度合いが定められた以上であると推定された前記フローを、送信量を制限する制限対象フローと定める機能と、
各前記制限対象フロー毎に、当該制限対象フローのデータの送信量の制限を行なう出力調整機能を備えることを特徴とする請求項３４に記載の混雑制御プログラム。
【請求項３６】
前記ネットワーク上の前記フローを、送信量を制限する制限対象フロー又は送信量を制限しない非制限対象フローとに分類する分類処理機能と、
前記制限対象フロー及び前記非制限対象フローの本数を測定するフロー数測定機能と、
前記フロー数測定機能の測定結果に基づいて、前記制限対象フローに対する送信量の制限の重み付けを決定する重み付加機能と、
各前記制限対象フロー毎に、前記混雑フロー推定機能の推定結果と前記重み付加機能の重み付け結果に基づいて送信量を制限する出力調整機能を備えることを特徴とする請求項３４に記載の混雑制御プログラム。
【請求項３７】
前記ネットワーク上の前記フローを分類しキューと関連付ける分類処理機能と、
各前記キュー毎に、当該キューを通過する前記フローの本数を測定するフロー数測定機能と、
前記フロー数測定手段の測定結果に基づいて、各前記キュー毎に当該キューを通過する前記フローに対する送信量の制限の重み付けを決定する重み付加機能と、
各前記キュー毎に、前記混雑フロー推定機能の推定結果と前記重み付加機能の重み付け結果に基づいて送信量を制限する出力調整機能を備えることを特徴とする請求項３４に記載の混雑制御プログラム。
【請求項３８】
前記混雑検知機能において、前記ネットワーク上の隣接する前記ノードとの間における前記通信データの転送のために使用する転送バッファの使用量に基づいて、前記通信の混雑の度合いを検知する処理を実行することを特徴とする請求項３４から請求項３７のいずれか１つに記載の混雑制御プログラム。
【請求項３９】
通信データを送信可能時まで保持する送信バッファから出力される前記通信データの量を測定する出力測定機能を備え、
前記混雑通知機能にて、
前記転送バッファの使用量、当該転送バッファから出力されるデータ量、及び前記出力測定機能が測定した前記送信バッファから出力される前記通信データの量とに基づいて、前記ネットワーク上の他のノードに対して通信の制限を指示する制御命令を生成する機能と、
前記制御命令を前記混雑の情報に含めて前記ネットワーク上の他のノードに対して送信する機能を備えることを特徴とする請求項３８に記載の混雑制御プログラム。
【請求項４０】
前記ネットワーク上の他のノードから前記障害通知を受信する機能と、
受信した前記障害通知に基づいてルーティングテーブルを変更し、前記ネットワーク上における障害の検出された区間を転送経路から回避させる障害処理機能を備えることを特徴とする請求項３４から請求項３９のいずれか１つに記載の混雑制御プログラム。
【請求項４１】
前記ネットワーク上の他のノードに対し、当該ノードへの転送経路に前記障害が発生している場合には、前記ネットワーク上において転送される前記障害通知の当該ノードに対する転送を破棄する機能を備えることを特徴とする請求項４０に記載の混雑制御プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は通信の混雑制御に関し、特にリング状ネットワークにおける通信の混雑を制御する混雑制御システムと混雑制御ノード、及び混雑制御プログラムに関する。
【０００２】
【従来の技術】
従来、この種の混雑制御システムは、リング状トポロジを持ったネットワークにおいて混雑制御を行ない、リング帯域の輻輳を避けるために用いられている。
【０００３】
従来の混雑制御システムの一例が、２０００年にＩＥＴＦから発行されたＲＦＣ２８９２の第９頁ないし第２８〜３２頁に掲載された「２０００年８月、ザ・シスコ・エスアールピー・マック・レイヤ・プロトコル（The Cisco SRP MAC Layer Protocol）」と題するD. Tsiang、G. Suwala、Cisco Systemsによる標準化文書に記載されている。
【０００４】
この標準化文書に記載された混雑制御システムは、各混雑制御ノードが単一の送信キューを有し、転送バッファ部で混雑を検知した場合は、上流ノードの送信キューからのフレーム出力量を、混雑検出ノードの送信キューからのフレーム出力量と同じになるように制限することにより、混雑制御を可能としている。また、転送バッファの出力量と、各送信キューからの出力量を比較することにより、混雑通知の転送をするか否か判断している。これを従来技術１とする。
【０００５】
また、「１９９６年８月、ザ・エーティーエム・フォーラム・テクニカル・コミッティー・トラフィック・マネージメント・スペシフィケーション・バージョン４．０（The ATM Forum Technical Committee Traffic Management Specification Version 4.0）」と題する標準化文書では、公平な混雑制御のために、フロー毎個々に混雑制御通知を送信している。これを従来技術２とする。
【０００６】
更に、「２０００年、ダイナミック・パケット・トランスポート・テクノロジー・アンド・パフォーマンス（Dynamic Packet Transport Technology and Performance）」と題するCisco Systemsによる仕様書では、２つ以上のリングを相互接続する際、混雑制御システムをリング毎独立して適用し、２つ以上のリングをまたがるフレームを転送可能にしている。これを従来技術３とする。
【０００７】
【発明が解決しようとする課題】
上述した従来の技術では、以下に述べるような問題点があった。
【０００８】
第１に、従来技術１では、混雑に関係のないフローまで送信フレーム量が制限され、リンクの利用効率が低下してしまうという問題点があった。その理由は、送信キューが１つしか用意されておらず制御の粒度が荒いため、また、制御の粒度を細かくしても、混雑検出ノードにおいて制限対象となるフローを識別するのは、処理の負荷が大きく難しいからである。
【０００９】
第２に、従来技術２では、混雑検出ノードの送信フレーム量が小さい場合に、混雑制御の対象となるノードの送信フレーム量が、必要以上に小さく制限されてしまう可能性があるという問題点があった。その理由は、送信可能フレーム量が、混雑検出ノードの送信フレーム量より決定されていたためである。
【００１０】
第３に、従来技術３では、混雑通知が混雑に関係しているノードに到達する前に、転送されなくなってしまう場合があるという問題点があった。その理由は、各ノードは、転送バッファからの流量と送信バッファからの流量を比較し、転送バッファからの流量が送信バッファからの流量を下回る場合には、混雑通知の転送を取りやめてしまうからである。
【００１１】
第４に、従来技術４では、混雑通知が混雑に関係しないノードにも、転送されてしまう場合があるという問題点があった。その理由は、各ノードは、転送バッファからの流量と送信バッファからの流量を比較し、転送バッファからの流量が送信バッファからの流量を下回らない限り、混雑通知を転送し続けるからである。
【００１２】
第５に、従来技術２では、フロー数が増えるに従い、制御フレームの量が爆発的に増大するという問題点があった。もし、複数のフローが流れているリンクで混雑が発生した場合、混雑に関わるフローを流しているすべてのノードに対して、混雑通知を送る必要がある。リングが多段接続されると、各リンクには膨大な数のフローが流れるため、フロー単位で混雑通知を送ると、リンク帯域を無駄に使用してしまうほか、ノードのＣＰＵその他資源の浪費につながる。
【００１３】
第６に、従来技術３では、２つ以上のリングを相互接続させる場合、宛先リングが送信元リングよりも輻輳していると、２つのリングを接続するノードにおいて、フレームロスが発生し、送信元リングに結局は廃棄される無駄なフレームが流れる可能性あるという問題点があった。その理由は、混雑制御をリング毎に独立して行われていたため、及び、２つ以上のリングを通過するフローも、単一リング内で収束するフローと区別なしに扱われているためである。
【００１４】
本発明の第１の目的は、上記従来技術１の欠点を解決し、リングの特性を利用して混雑に影響するフローを推定し、混雑に影響するフローのみの送信フレーム量制限ができる混雑制御システムを提供することにある。
【００１５】
本発明の第２の目的は、上記従来技術１の欠点を解決し、送信フレーム量と転送フレーム量の双方を考慮することによって最適な混雑制御命令を生成し、急激なレート低下等を発生させない混雑制御システムを提供することにある。
【００１６】
本発明の第３の目的は、上記従来技術１の欠点を解決し、混雑に影響するであろうすべてのノードに確実に混雑通知を転送し、公平で素早い混雑解消ができる混雑制御システムを提供することにある。
【００１７】
本発明の第４の目的は、上記従来技術１の欠点を解決し、途中のノードがリングの特性を利用して、効果の期待できない混雑通知の転送を取りやめることにより、制御フレームがリンク帯域を浪費しない混雑制御システムを提供することにある。
【００１８】
本発明の第５の目的は、上記従来技術２の欠点を解決し、混雑制御ノード毎に混雑通知を発信し、混雑通知を受信したノードがリングの特性を利用して混雑に影響するフローを推定することにより、フローが増えても混雑通知の発信回数が増えることのない（フローの数に依存しない）混雑制御システムを提供することにある。
【００１９】
本発明の第６の目的は、上記従来技術３の欠点を解決し、２つ以上のリングが接続された場合に、ある任意のリングで発生した混雑を、他の任意のリングに伝達し、送信ノード又は送信ノードに近い接続ノードでフレーム送出量制限を行なうことで、送信ノードから受信ノードに到達する間のノードで制限を受けて廃棄される無駄なフレームを、リングに流す前に制限することができる混雑制御システムを提供することにある。
【００２０】
【課題を解決するための手段】
上記目的を達成するため本発明の混雑制御システムは、ネットワーク上の通信を混雑制御する混雑制御システムにおいて、ネットワーク上において複数備えられる、送信又は中継する通信データを混雑制御する混雑制御ノードが、当該混雑制御ノードにおける通信の混雑の度合いを検知する混雑検知手段と、混雑検知手段が検知した混雑の情報を、前記ネットワーク上の他の前記混雑制御ノードへ通知する混雑通知手段と、他の前記混雑制御ノードから前記混雑の情報を受信する手段と、前記混雑の情報と、通信先への転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路上において前記混雑の度合いが定められた以上であるフローを推定する混雑フロー推定手段と、前記ネットワーク上の前記フローを、送信量を制限する制限対象フロー又は送信量を制限しない非制限対象フローとに分類する分類処理手段と、前記制限対象フロー及び前記非制限対象フローの本数を測定するフロー数測定手段と、前記フロー数測定手段の測定結果に基づいて、前記制限対象フローに対する送信量の制限の重み付けを決定する重み付加手段と、各前記制限対象フロー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする。
【００２１】
請求項２の本発明の混雑制御システムは、ネットワーク上の通信を混雑制御する混雑制御システムにおいて、  ネットワーク上において複数備えられる、送信又は中継する通信データを混雑制御する混雑制御ノードが、当該混雑制御ノードにおける通信の混雑の度合いを検知する混雑検知手段と、混雑検知手段が検知した混雑の情報を、前記ネットワーク上の他の前記混雑制御ノードへ通知する混雑通知手段と、他の前記混雑制御ノードから前記混雑の情報を受信する手段と、前記混雑の情報と、通信先への転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路上において前記混雑の度合いが定められた以上であるフローを推定する混雑フロー推定手段と、前記ネットワーク上の前記フローを分類しキューと関連付ける分類処理手段と、各前記キュー毎に、当該キューを通過する前記フローの本数を測定するフロー数測定手段と、前記フロー数測定手段の測定結果に基づいて、各前記キュー毎に当該キューを通過する前記フローに対する送信量の制限の重み付けを決定する重み付加手段と、各前記キュー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする。
【００２２】
請求項３の本発明の混雑制御システムは、ネットワーク上の通信を混雑制御する混雑制御システムにおいて、ネットワーク上において複数備えられる、送信又は中継する通信データを混雑制御する混雑制御ノードが、当該混雑制御ノードにおける通信の混雑の度合いを検知する混雑検知手段と、混雑検知手段が検知した混雑の情報を、前記ネットワーク上の他の前記混雑制御ノードへ通知する混雑通知手段と、他の前記混雑制御ノードから前記混雑の情報を受信する手段と、前記混雑の情報と、通信先への転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路上において前記混雑の度合いが定められた以上であるフローを推定する混雑フロー推定手段と、前記ネットワーク上の隣接するノードとの間における前記通信データの転送のために使用する転送バッファと、通信データを送信可能時まで保持する送信バッファと、前記送信バッファから出力される前記通信データの量を測定する出力測定手段を備え、各前記混雑制御ノードの前記混雑検知手段は、前記通信の混雑の度合いを検知する処理を、前記転送バッファの使用量に基づいて行ない、各前記混雑制御ノードの前記混雑通知手段は、前記転送バッファの使用量、当該転送バッファから出力されるデータ量、及び前記出力測定手段が測定した前記送信バッファから出力される前記通信データの量とに基づいて、前記ネットワーク上の他の混雑制御ノードに対して通信の制限を指示する制御命令を生成する手段と、前記制御命令を前記混雑の情報に付加して前記ネットワーク上の他の混雑制御ノードに対して送信する手段と、前記ネットワーク上の他の混雑制御ノードから、前記制御命令の付加された前記混雑の情報を受信する手段と、受信した前記制御命令を実行する手段を備えることを特徴とする。
【００２３】
請求項４の本発明の混雑制御システムは、各前記混雑制御ノードは、前記混雑フロー推定手段により前記混雑の度合いが定められた以上であると推定された前記フローを、送信量を制限する制限対象フローと定める手段と、各前記制限対象フロー毎に、当該制限対象フローのデータの送信量の制限を行なう出力調整手段を備えることを特徴とする。
【００２４】
請求項５の本発明の混雑制御システムは、各前記混雑制御ノードは、前記ネットワーク上の前記フローを、送信量を制限する制限対象フロー又は送信量を制限しない非制限対象フローとに分類する分類処理手段と、前記制限対象フロー及び前記非制限対象フローの本数を測定するフロー数測定手段と、前記フロー数測定手段の測定結果に基づいて、前記制限対象フローに対する送信量の制限の重み付けを決定する重み付加手段と、各前記制限対象フロー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする。
【００２５】
請求項６の本発明の混雑制御システムは、各前記混雑制御ノードは、前記ネットワーク上の前記フローを分類しキューと関連付ける分類処理手段と、各前記キュー毎に、当該キューを通過する前記フローの本数を測定するフロー数測定手段と、前記フロー数測定手段の測定結果に基づいて、各前記キュー毎に当該キューを通過する前記フローに対する送信量の制限の重み付けを決定する重み付加手段と、各前記キュー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする。
【００２６】
請求項７の本発明の混雑制御システムは、ネットワーク上の通信を混雑制御する混雑制御システムにおいて、ネットワーク上において複数備えられる、送信又は中継する通信データを混雑制御する混雑制御ノードが、当該混雑制御ノードにおける通信の混雑の度合いを検知する混雑検知手段と、混雑検知手段が検知した混雑の情報を、前記ネットワーク上の他の前記混雑制御ノードへ通知する混雑通知手段と、他の前記混雑制御ノードから前記混雑の情報を受信する手段と、前記混雑の情報と、通信先への転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路上において前記混雑の度合いが定められた以上であるフローを推定する混雑フロー推定手段と、前記ネットワーク上の隣接するノードとの間における前記通信データの転送のために使用する転送バッファと、前記ネットワーク上における通信ができない障害を検出する障害検出手段と、前記障害検出手段により検出された前記障害の発生した前記ネットワーク上の区間の情報を障害通知として、前記ネットワーク上の他の混雑制御ノードに通知する手段を備え、各前記混雑制御ノードの前記混雑検知手段は、前記通信の混雑の度合いを検知する処理を、前記転送バッファの使用量に基づいて行なうことを特徴とする。
【００２７】
請求項８の本発明の混雑制御システムは、各前記混雑制御ノードは、前記混雑フロー推定手段により前記混雑の度合いが定められた以上であると推定された前記フローを、送信量を制限する制限対象フローと定める手段と、各前記制限対象フロー毎に、当該制限対象フローのデータの送信量の制限を行なう出力調整手段を備えることを特徴とする。
【００２８】
請求項９の本発明の混雑制御システムは、各前記混雑制御ノードは、前記ネットワーク上の前記フローを、送信量を制限する制限対象フロー又は送信量を制限しない非制限対象フローとに分類する分類処理手段と、前記制限対象フロー及び前記非制限対象フローの本数を測定するフロー数測定手段と、前記フロー数測定手段の測定結果に基づいて、前記制限対象フローに対する送信量の制限の重み付けを決定する重み付加手段と、各前記制限対象フロー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする。
【００２９】
請求項１０の本発明の混雑制御システムは、各前記混雑制御ノードは、前記ネットワーク上の前記フローを分類しキューと関連付ける分類処理手段と、各前記キュー毎に、当該キューを通過する前記フローの本数を測定するフロー数測定手段と、前記フロー数測定手段の測定結果に基づいて、各前記キュー毎に当該キューを通過する前記フローに対する送信量の制限の重み付けを決定する重み付加手段と、各前記キュー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする。
【００３０】
請求項１１の本発明の混雑制御システムは、各前記混雑制御ノードは、通信データを送信可能時まで保持する送信バッファと、前記送信バッファから出力される前記通信データの量を測定する出力測定手段を備え、各前記混雑制御ノードの前記混雑通知手段は、前記転送バッファの使用量、当該転送バッファから出力されるデータ量、及び前記出力測定手段が測定した前記送信バッファから出力される前記通信データの量とに基づいて、前記ネットワーク上の他の混雑制御ノードに対して通信の制限を指示する制御命令を生成する手段と、前記制御命令を前記混雑の情報に付加して前記ネットワーク上の他の混雑制御ノードに対して送信する手段と、前記ネットワーク上の他の混雑制御ノードから、前記制御命令の付加された前記混雑の情報を受信する手段と、受信した前記制御命令を実行する手段を備えることを特徴とする。
【００３１】
請求項１２の本発明の混雑制御システムは、各前記混雑制御ノードは、前記ネットワーク上の他の混雑制御ノードから前記障害通知を受信する手段と、受信した前記障害通知に基づいてルーティングテーブルを変更し、前記ネットワーク上における障害の検出された区間を転送経路から回避させる障害処理手段を備えることを特徴とする。
【００３２】
請求項１３の本発明の混雑制御システムは、各前記混雑制御ノードは、前記ネットワーク上の他の混雑制御ノードに対し、当該混雑制御ノードへの転送経路に前記障害が発生している場合には、前記ネットワーク上において転送される前記障害通知の当該混雑制御ノードに対する転送を破棄する手段を備えることを特徴とする。
【００３３】
請求項１４の本発明の混雑制御ノードは、ネットワーク上の通信を混雑制御する混雑制御ノードにおいて、前記ネットワーク上の他のノードから、当該ノードにおいて発生した通信の混雑の情報を受信する手段と、前記混雑の情報と、通信先への通信データの転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路のノードにおいて混雑の度合いが定められた以上であるフローを推定する混雑フロー推定手段と、前記ネットワーク上の前記フローを、送信量を制限する制限対象フロー又は送信量を制限しない非制限対象フローとに分類する分類処理手段と、前記制限対象フロー及び前記非制限対象フローの本数を測定するフロー数測定手段と、前記フロー数測定手段の測定結果に基づいて、前記制限対象フローに対する送信量の制限の重み付けを決定する重み付加手段と、各前記制限対象フロー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする。
【００３４】
請求項１５の本発明の混雑制御ノードは、ネットワーク上の通信を混雑制御する混雑制御ノードにおいて、前記ネットワーク上の他のノードから、当該ノードにおいて発生した通信の混雑の情報を受信する手段と、前記混雑の情報と、通信先への通信データの転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路のノードにおいて混雑の度合いが定められた以上であるフローを推定する混雑フロー推定手段と、前記ネットワーク上の前記フローを分類しキューと関連付ける分類処理手段と、各前記キュー毎に、当該キューを通過する前記フローの本数を測定するフロー数測定手段と、前記フロー数測定手段の測定結果に基づいて、各前記キュー毎に当該キューを通過する前記フローに対する送信量の制限の重み付けを決定する重み付加手段と、各前記キュー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする。
【００３５】
請求項１６の本発明の混雑制御ノードは、ネットワーク上の通信を混雑制御する混雑制御ノードにおいて、前記ネットワーク上の他のノードから、当該ノードにおいて発生した通信の混雑の情報を受信する手段と、前記混雑の情報と、通信先への通信データの転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路のノードにおいて混雑の度合いが定められた以上であるフローを推定する混雑フロー推定手段と、通信の混雑の度合いを検知する混雑検知手段と、混雑検知手段が検知した混雑の情報を、前記ネットワーク上の他のノードに通知する混雑通知手段と、前記ネットワーク上の隣接する前記ノードとの間における前記通信データの転送のために使用する転送バッファと、通信データを送信可能時まで保持する送信バッファと、前記送信バッファから出力される前記通信データの量を測定する出力測定手段を備え、前記混雑検知手段は、前記通信の混雑の度合いを検知する処理を、前記転送バッファの使用量に基づいて行ない、前記混雑通知手段は、前記転送バッファの使用量、当該転送バッファから出力されるデータ量、及び前記出力測定手段が測定した前記送信バッファから出力される前記通信データの量とに基づいて、前記ネットワーク上の他のノードに対して通信の制限を指示する制御命令を生成する手段を備え、前記制御命令を前記混雑の情報に含めて前記ネットワーク上の他のノードに対して送信することを特徴とする。
【００３６】
請求項１７の本発明の混雑制御ノードは、前記混雑フロー推定手段により前記混雑の度合いが定められた以上であると推定された前記フローを、送信量を制限する制限対象フローと定める手段と、各前記制限対象フロー毎に、当該制限対象フローのデータの送信量の制限を行なう出力調整手段を備えることを特徴とする。
【００３７】
請求項１８の本発明の混雑制御ノードは、前記ネットワーク上の前記フローを、送信量を制限する制限対象フロー又は送信量を制限しない非制限対象フローとに分類する分類処理手段と、前記制限対象フロー及び前記非制限対象フローの本数を測定するフロー数測定手段と、前記フロー数測定手段の測定結果に基づいて、前記制限対象フローに対する送信量の制限の重み付けを決定する重み付加手段と、各前記制限対象フロー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする。
【００３８】
請求項１９の本発明の混雑制御ノードは、前記ネットワーク上の前記フローを分類しキューと関連付ける分類処理手段と、各前記キュー毎に、当該キューを通過する前記フローの本数を測定するフロー数測定手段と、前記フロー数測定手段の測定結果に基づいて、各前記キュー毎に当該キューを通過する前記フローに対する送信量の制限の重み付けを決定する重み付加手段と、各前記キュー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする。
【００３９】
請求項２０の本発明の混雑制御ノードは、ネットワーク上の通信を混雑制御する混雑制御ノードにおいて、前記ネットワーク上の他のノードから、当該ノードにおいて発生した通信の混雑の情報を受信する手段と、前記混雑の情報と、通信先への通信データの転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路のノードにおいて混雑の度合いが定められた以上であるフローを推定する混雑フロー推定手段と、通信の混雑の度合いを検知する混雑検知手段と、混雑検知手段が検知した混雑の情報を、前記ネットワーク上の他のノードに通知する混雑通知手段と、前記ネットワーク上における通信ができない障害を検出する障害検出手段と、前記障害検出手段により検出された前記障害の発生した前記ネットワーク上の区間の情報を障害通知として、前記ネットワーク上のノードに通知する手段を備えることを特徴とする。
【００４０】
請求項２１の本発明の混雑制御ノードは、前記混雑フロー推定手段により前記混雑の度合いが定められた以上であると推定された前記フローを、送信量を制限する制限対象フローと定める手段と、各前記制限対象フロー毎に、当該制限対象フローのデータの送信量の制限を行なう出力調整手段を備えることを特徴とする。
【００４１】
請求項２２の本発明の混雑制御ノードは、前記ネットワーク上の前記フローを、送信量を制限する制限対象フロー又は送信量を制限しない非制限対象フローとに分類する分類処理手段と、前記制限対象フロー及び前記非制限対象フローの本数を測定するフロー数測定手段と、前記フロー数測定手段の測定結果に基づいて、前記制限対象フローに対する送信量の制限の重み付けを決定する重み付加手段と、各前記制限対象フロー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする。
【００４２】
請求項２３の本発明の混雑制御ノードは、前記ネットワーク上の前記フローを分類しキューと関連付ける分類処理手段と、各前記キュー毎に、当該キューを通過する前記フローの本数を測定するフロー数測定手段と、前記フロー数測定手段の測定結果に基づいて、各前記キュー毎に当該キューを通過する前記フローに対する送信量の制限の重み付けを決定する重み付加手段と、各前記キュー毎に、前記混雑フロー推定手段の推定結果と前記重み付加手段の重み付け結果に基づいて送信量を制限する出力調整手段を備えることを特徴とする。
【００４３】
請求項２４の本発明の混雑制御ノードは、前記ネットワーク上の隣接する前記ノードとの間における前記通信データの転送のために使用する転送バッファを備え、前記混雑検知手段は、前記通信の混雑の度合いを検知する処理を、前記転送バッファの使用量に基づいて行なうことを特徴とする。
【００４４】
請求項２５の本発明の混雑制御ノードは、通信データを送信可能時まで保持する送信バッファと、前記送信バッファから出力される前記通信データの量を測定する出力測定手段を備え、前記混雑通知手段は、前記転送バッファの使用量、当該転送バッファから出力されるデータ量、及び前記出力測定手段が測定した前記送信バッファから出力される前記通信データの量とに基づいて、前記ネットワーク上の他のノードに対して通信の制限を指示する制御命令を生成する手段を備え、前記制御命令を前記混雑の情報に含めて前記ネットワーク上の他のノードに対して送信することを特徴とする。
【００４５】
請求項２６の本発明の混雑制御ノードは、前記ネットワーク上の他のノードから前記障害通知を受信する手段と、受信した前記障害通知に基づいてルーティングテーブルを変更し、前記ネットワーク上における障害の検出された区間を転送経路から回避させる障害処理手段を備えることを特徴とする。
【００４６】
請求項２７の本発明の混雑制御ノードは、前記ネットワーク上の他のノードに対し、当該ノードへの転送経路に前記障害が発生している場合には、前記ネットワーク上において転送される前記障害通知の当該ノードに対する転送を破棄する手段を備えることを特徴とする。
【００４７】
請求項２８の本発明の混雑制御プログラムは、コンピュータを制御することにより、ネットワークと接続しクライアントによる通信を中継する混雑制御ノードにおける通信の混雑を制御する混雑制御プログラムにおいて、前記ネットワーク上の他のノードから、当該ノードにおいて発生した通信の混雑の情報を受信する機能と、前記混雑の情報と、通信先への通信データの転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路のノードにおいて混雑の度合いが定められた以上であるフローを推定する混雑フロー推定機能と、前記ネットワーク上の前記フローを、送信量を制限する制限対象フロー又は送信量を制限しない非制限対象フローとに分類する分類処理機能と、前記制限対象フロー及び前記非制限対象フローの本数を測定するフロー数測定機能と、前記フロー数測定機能の測定結果に基づいて、前記制限対象フローに対する送信量の制限の重み付けを決定する重み付加機能と、各前記制限対象フロー毎に、前記混雑フロー推定機能の推定結果と前記重み付加機能の重み付け結果に基づいて送信量を制限する出力調整機能を備えることを特徴とする。
【００４８】
請求項２９の本発明の混雑制御プログラムは、コンピュータを制御することにより、ネットワークと接続しクライアントによる通信を中継する混雑制御ノードにおける通信の混雑を制御する混雑制御プログラムにおいて、前記ネットワーク上の他のノードから、当該ノードにおいて発生した通信の混雑の情報を受信する機能と、前記混雑の情報と、通信先への通信データの転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路のノードにおいて混雑の度合いが定められた以上であるフローを推定する混雑フロー推定機能と、前記ネットワーク上の前記フローを分類しキューと関連付ける分類処理機能と、各前記キュー毎に、当該キューを通過する前記フローの本数を測定するフロー数測定機能と、前記フロー数測定手段の測定結果に基づいて、各前記キュー毎に当該キューを通過する前記フローに対する送信量の制限の重み付けを決定する重み付加機能と、各前記キュー毎に、前記混雑フロー推定機能の推定結果と前記重み付加機能の重み付け結果に基づいて送信量を制限する出力調整機能を備えることを特徴とする。
【００４９】
請求項３０の本発明の混雑制御プログラムは、コンピュータを制御することにより、ネットワークと接続しクライアントによる通信を中継する混雑制御ノードにおける通信の混雑を制御する混雑制御プログラムにおいて、前記ネットワーク上の他のノードから、当該ノードにおいて発生した通信の混雑の情報を受信する機能と、前記混雑の情報と、通信先への通信データの転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路のノードにおいて混雑の度合いが定められた以上であるフローを推定する混雑フロー推定機能と、通信の混雑の度合いを検知する混雑検知機能と、混雑検知機能が検知した混雑の情報を、前記ネットワーク上の他のノードに通知する混雑通知機能と、通信データを送信可能時まで保持する送信バッファから出力される前記通信データの量を測定する出力測定機能を備え、前記混雑検知機能において、前記ネットワーク上の隣接する前記ノードとの間における前記通信データの転送のために使用する転送バッファの使用量に基づいて、前記通信の混雑の度合いを検知する処理を実行し、前記混雑通知機能にて、前記転送バッファの使用量、当該転送バッファから出力されるデータ量、及び前記出力測定機能が測定した前記送信バッファから出力される前記通信データの量とに基づいて、前記ネットワーク上の他のノードに対して通信の制限を指示する制御命令を生成する機能と、前記制御命令を前記混雑の情報に含めて前記ネットワーク上の他のノードに対して送信する機能を備えることを特徴とする。
【００５０】
請求項３１の本発明の混雑制御プログラムは、前記混雑フロー推定機能により前記前記混雑の度合いが定められた以上であると推定された前記フローを、送信量を制限する制限対象フローと定める機能と、各前記制限対象フロー毎に、当該制限対象フローのデータの送信量の制限を行なう出力調整機能を備えることを特徴とする。
【００５１】
請求項３２の本発明の混雑制御プログラムは、前記ネットワーク上の前記フローを、送信量を制限する制限対象フロー又は送信量を制限しない非制限対象フローとに分類する分類処理機能と、前記制限対象フロー及び前記非制限対象フローの本数を測定するフロー数測定機能と、前記フロー数測定機能の測定結果に基づいて、前記制限対象フローに対する送信量の制限の重み付けを決定する重み付加機能と、各前記制限対象フロー毎に、前記混雑フロー推定機能の推定結果と前記重み付加機能の重み付け結果に基づいて送信量を制限する出力調整機能を備えることを特徴とする。
【００５２】
請求項３３の本発明の混雑制御プログラムは、前記ネットワーク上の前記フローを分類しキューと関連付ける分類処理機能と、各前記キュー毎に、当該キューを通過する前記フローの本数を測定するフロー数測定機能と、前記フロー数測定手段の測定結果に基づいて、各前記キュー毎に当該キューを通過する前記フローに対する送信量の制限の重み付けを決定する重み付加機能と、各前記キュー毎に、前記混雑フロー推定機能の推定結果と前記重み付加機能の重み付け結果に基づいて送信量を制限する出力調整機能を備えることを特徴とする。
【００５３】
請求項３４の本発明の混雑制御プログラムは、コンピュータを制御することにより、ネットワークと接続しクライアントによる通信を中継する混雑制御ノードにおける通信の混雑を制御する混雑制御プログラムにおいて、前記ネットワーク上の他のノードから、当該ノードにおいて発生した通信の混雑の情報を受信する機能と、前記混雑の情報と、通信先への通信データの転送経路を指定するルーティングテーブルを参照して、前記通信先への転送経路のノードにおいて混雑の度合いが定められた以上であるフローを推定する混雑フロー推定機能と、通信の混雑の度合いを検知する混雑検知機能と、混雑検知機能が検知した混雑の情報を、前記ネットワーク上の他のノードに通知する混雑通知機能と、前記ネットワーク上における通信ができない障害を検出する障害検出機能と、前記障害検出機能により検出された前記障害の発生した前記ネットワーク上の区間の情報を障害通知として、前記ネットワーク上のノードに通知する機能を備えることを特徴とする。
【００５４】
本発明の第１の混雑制御システムは、ルーティングテーブル及びリングの特性を利用し、混雑に影響するフローを推定し、混雑に影響するフローのみの送信フレーム量の制限を行なう。これにより、本発明の第１の目的を達成することができる。
【００５５】
本発明の第２の混雑制御システムは、送信フレーム量と転送フレーム量の双方を考慮することによって最適な混雑制御命令を生成し、急激なレート低下等を発生させない。これにより、本発明の第２の目的を達成することができる。
【００５６】
本発明の第３の混雑制御システムは、混雑に影響するであろうすべてのノードに確実に混雑通知を転送し、公平で素早い混雑解消ができる。これにより、本発明の第３の目的を達成することができる。
【００５７】
本発明の第４の混雑制御システムは、途中のノードがリングの特性を利用して、効果の期待できない混雑通知の転送を取りやめることにより、制御フレームの量を削減することができる。これにより、本発明の第４の目的を達成することができる。
【００５８】
本発明の第５の混雑制御システムは、混雑制御ノード毎に混雑通知を発信し、混雑通知を受信したノードがリングの特性を利用して混雑に影響するフローを推定することにより、フローが増えても混雑通知の発信回数を増やさずに済む。これにより、本発明の第５の目的を達成することができる。
【００５９】
本発明の第６の混雑制御システムは、２つ以上のリングが接続された場合に、ある任意のリングで発生した混雑を、他の任意のリングに伝達し、送信ノード又は送信ノードに近い接続ノードでフレーム送出量制限を行なうことで、送信ノードから受信ノードに到達する間のノードで制限を受けて廃棄される無駄なフレームを、リングに流す前に制限することができる。これにより、本発明の第６の目的を達成することができる。
【００６０】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【００６１】
以後本明細書においては、リンクを流れる情報をフレームと記述するが、これにはフレームにみではなくパケットやその他のデータをも総合してフレームと呼ぶこととする。また、以下に説明するクライアント群の機能は、混雑制御ノードが併せ持つ場合もある。以下本明細書においては、ある任意のリングで発生した混雑を他の任意のリングに伝達することを、リングをまたがる混雑通知という。
【００６２】
また、任意のリング上に存在する任意の１つの混雑制御ノードから、任意のリング上に存在する別の任意の１つの混雑制御ノードへ流れるフレーム全体を、１つのフローと定義する。
【００６３】
図１を参照すると、本発明の第１の実施の形態は、リング状ネットワークＲ１、クライアント群Ｃ１〜Ｃ４、混雑制御ノードＡ１〜Ａ４、双方向リンクＬ１００、片方向リンクＬ１０１〜１０４を含む。
【００６４】
リング状ネットワークＲ１は、片方向のリングＲ１１と、片方向リングＲ１１とは逆方向に流れる片方向リングＲ１２を含み、これらの総称をリング状ネットワークＲ１と呼ぶこととする。リング状ネットワークＲ１は、混雑制御ノードＡ１〜Ａ４から送出されたフレームを、別の混雑制御ノードＡ１〜Ａ４に転送する機能を持つ。
【００６５】
クライアント群Ｃ１は、１つ以上のクライアントの集合であり、混雑制御ノードＡ１との間でフレームの送受信を行なう機能を有する。
【００６６】
各クライアント群Ｃ２、Ｃ３、Ｃ４は、クライアント群Ｃ１と同様のクライアント群である。今後はクライアント群Ｃ１〜Ｃ４を代表して、クライアント群Ｃ１を用いて記述を行なうが、これらクライアント群Ｃ１についての記述は、特に断りのない限り他のクライアント群Ｃ２〜Ｃ４においても同様に適用可能である。
【００６７】
混雑制御ノードＡ１は、プログラム制御されるＣＰＵ等で実現され、以下に挙げる７つの機能を有する。
【００６８】
（１）クライアント群Ｃ１より送出され双方向リンクＬ１００より到着したフレームを、片方向リンクＬ１０２又はＬ１０４よりリング状ネットワークＲ１に転送する。
【００６９】
（２）リング状ネットワークＲ１を流れ片方向リンクＬ１０２又はＬ１０４より到着したフレームを必要に応じて双方向リンクＬ１００よりクライアント群Ｃ１に転送する。
【００７０】
（３）片方向リンクＬ１０１を流れるフレームを片方向リンクＬ１０２に、片方向リンクＬ１０３を流れるフレームを片方向リンクＬ１０４に、それぞれ再転送する。
【００７１】
（４）リング状ネットワークＲ１、すなわち片方向リンクＬ１０２及びＬ１０４のフレーム混雑を検知する。
【００７２】
（５）混雑通知を片方向リンクＬ１０２又はＬ１０４を通じてリングＲ１上に存在する混雑制御ノードに向けて送出する。
【００７３】
（６）リング状ネットワークＲ１、すなわち片方向リンクＬ１０１及びＬ１０３より混雑通知を受信して自ノードよりリング状ネットワークＲ１（片方向リンクＬ１０２及びＬ１０４）に送出するフレーム量の調整を行なう。
【００７４】
（７）リング状ネットワークＲ１（片方向リンクＬ１０１及びＬ１０３）より受信した混雑通知を、片方向リンクＬ１０２又はＬ１０４を通じて、リングＲ１上に存在する隣接ノード（ノードＡ２又はノードＡ４）に転送する。
【００７５】
各混雑制御ノードＡ２、Ａ３、Ａ４は、混雑制御ノードＡ１と同様のノードでる。今後は混雑制御ノードＡ１〜Ａ４を代表して、混雑制御ノードＡ１を用いて記述を行なうが、これら混雑制御ノードＡ１についての記述は、特に断りのない限り他の混雑制御ノードＡ２〜Ａ４においても同様に適用可能である。
【００７６】
双方向リンクＬ１００は、クライアント群Ｃ１から混雑制御ノードＡ１、及び、混雑制御ノードＡ１からクライアント群Ｃ１を結ぶ双方向リンクである。
【００７７】
片方向リンクＬ１０１は、混雑制御ノードＡ２から混雑制御ノードＡ１を結ぶ片方向リンクで、リングＲ１１に属する。
【００７８】
片方向リンクＬ１０２は、混雑制御ノードＡ１から混雑制御ノードＡ４を結ぶ片方向リンクで、リングＲ１１に属する。
【００７９】
片方向リンクＬ１０３は、混雑制御ノードＡ４から混雑制御ノードＡ１を結ぶ片方向リンクで、リングＲ１２に属する。
【００８０】
片方向リンクＬ１０４は、混雑制御ノードＡ１から混雑制御ノードＡ２を結ぶ片方向リンクで、リングＲ１２に属する。
【００８１】
図２は、混雑制御ノードＡ１の構成を詳細に示した図である。混雑制御ノードＡ１は、転送方向決定部Ａ１１と、ルーティングテーブルＡ１２と、混雑制御部Ａ１３と、別の混雑制御部Ａ１４と、双方向リンクＬ１０５及びＬ１０６を含む。
【００８２】
転送方向決定部Ａ１１は、クライアント群Ｃ１、混雑制御部Ａ１３、及び混雑制御部Ａ１４より受信したフレームの宛先ノードアドレスを判別し、ルーティングテーブルＡ１２の記述に従い、クライアント群Ｃ１、混雑制御部Ａ１３、及び混雑制御部Ａ１４に向けて転送する機能を持つ。なお、片方向リングＲ１１から片方リングＲ１２へ向かうフレーム、及び片方向リングＲ１２から片方向リングＲ１１へ向かうフレーム、そしてクライアント群Ｃ１が宛先もしくは送信元であるフレームは、すべてこの転送方向決定部Ａ１１を経由する。
【００８３】
ルーティングテーブルＡ１２は、あて先混雑制御ノード毎に、そのノードまでのコストと、送出先片方向リングのＩＤを記憶しておく機能を有する。送出先片方向リングのＩＤは、Ｒ１１及びＲ１２のいずれかである。ルーティングテーブルＡ１２の情報は、転送方向決定部Ａ１１及び混雑制御部Ａ１３〜Ａ１４において利用される。
【００８４】
混雑制御部Ａ１３は、以下に示す５つの機能を有する。
【００８５】
（１）転送方向決定部Ａ１１より双方向リンクＬ１０５を通じて入力されたフレームを、片方向リンクＬ１０２に転送する。
【００８６】
（２）片方向リンクＬ１０１より入力されたフレームを、必要に応じてリングＲ１１から取り出して双方向リンクＬ１０５を通じて転送方向決定部Ａ１１に転送する。
【００８７】
（３）片方向リンクＬ１０２に発生した混雑を検知して、混雑通知を、双方向リンクＬ１０５、転送方向決定部Ａ１１、双方向リンクＬ１０６、混雑制御部Ａ１４、片方向リンクＬ１０４を経由して、混雑制御ノードＡ２に向けて送信する。
【００８８】
（４）混雑制御ノードＡ４が発信又は転送した混雑通知を、片方向リンクＬ１０３、混雑制御部Ａ１４、双方向リンクＬ１０６、転送方向決定部Ａ１１、双方向リンクＬ１０５を経由して受信して、自ノードより片方向リンクＬ１０２に送出するフレーム量の調整を行なう。
【００８９】
（５）Ｐ１１１で受信した混雑通知を、必要に応じて、双方向リンクＬ１０５、転送方向決定部Ａ１１、双方向リンクＬ１０６，混雑制御部Ａ１４、片方向リンクＬ１０４を経由して混雑制御ノードＡ２に転送する。
【００９０】
別の混雑制御部Ａ１４は、混雑制御部Ａ１３と同様の混雑制御機能を備える。今後は混雑制御部Ａ１３〜Ａ１４を代表し、混雑制御部Ａ１３を用いて記述を行なうが、混雑制御部Ａ１３についての記述は、特に断りのない限り混雑制御部Ａ１４にも同様に適用可能である。
【００９１】
双方向リンクＬ１０５は、転送方向決定部Ａ１１と混雑制御部Ａ１３とを結ぶ双方向リンクである。
【００９２】
双方向リンクＬ１０６は、転送方向決定部Ａ１１と混雑制御部Ａ１４とを結ぶ双方向リンクである。
【００９３】
図３は、混雑制御部Ａ１３の構成を詳細に示した図である。混雑制御部Ａ１３は、受信決定部Ａ１３１と、転送バッファ部Ａ１３２と、出力ミキサ部Ａ１３３と、混雑通知受信転送部Ａ１３４と、送信バッファ部Ａ１３５と、出力測定部Ａ１３６と、混雑通知送信部Ａ１３７と、バッファ使用量測定部Ａ１３８（混雑検知部）と、片方向リンクＬ１０７〜Ｌ１０９、通知Ｍ１０１〜Ｍ１０４を含む。
【００９４】
受信決定部Ａ１３１は、片方向リングＲ１１に属するリンクＬ１０１から受信したフレームの宛先を判別し、あて先が自ノードもしくはブロードキャスト並びにマルチキャストである場合は、このフレームを転送方向決定部Ａ１１に向けて転送する。転送方向決定部Ａ１１に向けて転送されなかったフレームは、転送バッファ部Ａ１３２に転送される。また、必要であればフレームの複製も行なう。
【００９５】
転送バッファ部Ａ１３２は、以下に示す２つの機能を有する。
【００９６】
（１）受信決定部Ａ１３１よりリンクＬ１０７を通じて入力されたフレームを、片方向リングＲ１１に属するリンクＬ１０２に送出できるタイミングまで格納しておき、送出可能タイミングにリンクＬ１０８を通じて出力ミキサ部Ａ１３３に向けてフレームを転送する。
【００９７】
（２）バッファ使用量測定部Ａ１３８からの要求により、転送バッファ部Ａ１３２に存在するフレームの数、ビット数、バイト数等を、通知Ｍ１０１を用いて、バッファ使用量測定部Ａ１３８に通知する。
【００９８】
出力ミキサ部Ａ１３３は、予め設定するか、又は動的に変化する、優先順位や重み付け等にしたがって、転送バッファ部Ａ１３２又は送信バッファ部Ａ１３５よりフレームを取り出し、リングＲ１１に属するリンクＬ１０２に向けて転送する。
【００９９】
混雑通知受信転送部Ａ１３４は、転送処理部３４１と、推定部３４２と、重み付加部３４３と、制限部３４４を含む。
【０１００】
転送処理部３４１は、混雑通知受信転送部Ａ１３４は、片方向リングＲ１１とは逆方向に流れるリングから、転送方向決定部Ａ１１及びリンクＬ１０５を経由して流れてきた混雑通知を受信し、必要であればこの混雑通知を、リンクＬ１０５及び転送方向決定部Ａ１１を経由して、片方向リングＲ１１とは逆方向に流れるリングに再送信する。
【０１０１】
推定部３４２は、そして混雑通知及びルーティングテーブルＡ１２の情報より、各キュー毎の送信フレーム制限量及び、各フロー毎の収容送信キューを決定する。
【０１０２】
重み付加部３４３は、推定部３４２が決定した各キュー毎の送信フレーム制限量に、各キューが収容するフローの数（重み）を乗ずる。
【０１０３】
制限部３４４は、通知Ｍ１０２及びＭ１０３を用いて送信バッファ部Ａ１３５に通知する。
【０１０４】
送信バッファ部Ａ１３５は、以下に挙げる４つの機能を有する。
【０１０５】
（１）送信方向決定部Ａ１１よりリンクＬ１０５を通じて入力されたフレームを、片方向リングＲ１１に属するリンクＬ１０２に送出できるタイミングまで格納しておき、送出可能タイミングにリンクＬ１０９を通じて出力ミキサ部Ａ１３３に向けてフレームを転送する。
【０１０６】
（２）通知Ｍ１０２によって混雑通知受信転送部Ａ１３４より設定された送出可能フレーム量以下になるように送信フレーム数を制限する。
【０１０７】
（３）通知Ｍ１０３によって混雑通知受信転送部Ａ１３４より設定されたキューに指定されたフローを格納する。
【０１０８】
（４）通知Ｍ１０４による出力測定部Ａ１３６からの要求により、送信バッファ部Ａ１３５から出力ミキサ部Ａ１３３に転送されるフレームの数、ビット数、バイト数、フレームを１つ以上蓄積している送信キューの数等を、出力測定部Ａ１３６に通知Ｍ１０３を用いて通知する。
【０１０９】
出力測定部Ａ１３６は、送信バッファ部Ａ１３５より出力され出力ミキサ部Ａ１３３に転送されるフレームの、フレーム個数、ビット数、バイト数、フレームを１つ以上蓄積している送信キューの数等を、出力測定部Ａ１３６に通知するように、周期的に送信バッファ部Ａ１３５に対して要求し、送信バッファ部Ａ１３５から通知された値を、次の通知まで記憶しておく。
【０１１０】
混雑通知送信部Ａ１３７は、バッファ使用量測定部Ａ１３８から受けた混雑発生検知結果と、出力測定部Ａ１３６で測定した送信フレーム量等を用いて混雑通知フレームを作成し、リンクＬ１０５及び転送方向決定部Ａ１１を経由して、この混雑通知フレームを片方向リングＲ１１とは逆方向に流れる片方向リングを用い、片方向リングＲ１１の上流に位置する混雑制御ノードに向けて送信する。
【０１１１】
バッファ使用量測定部Ａ１３８は、混雑通知送信部Ａ１３７からの要求に応じ、転送バッファ部Ａ１３２に対して、転送バッファ部Ａ１３２に存在するフレームの数、ビット数、バイト数等を通知するように要求し、その結果（混雑の度合の情報）より混雑が発生しているか否かを判断（混雑の度合が定められた以上であるか否かを判断）して、結果を混雑通知送信部Ａ１３７に対して通知する。
【０１１２】
片方向リンクＬ１０７は、受信決定部Ａ１３１から転送バッファ部Ａ１３２を結ぶ片方向リンクで、片方向リングＲ１１の一部をなす。
【０１１３】
片方向リンクＬ１０８は、転送バッファ部Ａ１３２から出力ミキサ部Ａ１３３を結ぶ片方向リンクで、片方向リングＲ１１の一部をなす。
【０１１４】
片方向リンクＬ１０９は、送信バッファ部Ａ１３５から出力ミキサ部Ａ１３３を結ぶ片方向リンクである。
【０１１５】
通知Ｍ１０１は、転送バッファ部Ａ１３２とバッファ使用量測定部Ａ１３８との間の、双方向の通知である。
【０１１６】
通知Ｍ１０２は、混雑通知受信転送部Ａ１３４と送信バッファ部Ａ１３５との間の、双方向の通知である。
【０１１７】
通知Ｍ１０３は、混雑通知受信転送部Ａ１３４と送信バッファ部Ａ１３５との間の、双方向の通知である。
【０１１８】
通知Ｍ１０４は、送信バッファ部Ａ１３５と出力測定部Ａ１３６との間の、双方向の通知である。
【０１１９】
図４は、送信バッファ部Ａ１３５の構成を詳細に示した図であり、送信キュー部３５２が、宛先混雑制御ノードの数だけキューを持つ場合に対応する。図４を参照すると、送信バッファ部Ａ１３５は、入力分類部３５１と、送信キュー部３５２と、出力調整部３５３と、片方向リンクＬ１１０〜Ｌ１１１とを含む。
【０１２０】
入力分類部３５１は、分類処理部３５１−１と、リング識別部３５１−２と、フロー数測定部３５１−３を含む。
【０１２１】
分類処理部３５１−１は、転送方向決定部Ａ１１より入力されたフレームを、宛先混雑制御ノードに応じて分類して、宛先混雑制御ノードアドレスに応じた送信キュー部３５２に転送する。
【０１２２】
リング識別部３５１−２は、混雑通知受信転送部Ａ１３４からの通知Ｍ１０３による要求に応じ、送信バッファ部Ａ１３５に入力されるフロー毎に、入力元となるリングＩＤを、通知Ｍ１０３を用いて混雑通知受信転送部Ａ１３４に通知する。
【０１２３】
フロー数測定部３５１−３は、混雑通知受信転送部Ａ１３４からの通知Ｍ１０３による要求に応じ、利用可能な送信キュー数や、各送信キューを通過するフロー数を、通知Ｍ１０３を用いて混雑通知受信転送部Ａ１３４に通知する。
【０１２４】
送信キュー部３５２は、宛先混雑制御ノード別に用意された送信キュー全体のことであり、入力分類部３５１から宛先混雑制御ノード別に分類されて入力されたフレームを、出力調整部３５３からの要求があるまで、蓄積する機能を有する。
【０１２５】
出力調整部３５３は、以下に挙げる４つの機能を有する。
【０１２６】
（１）フレームの出力量が、混雑通知受信転送部Ａ１３４から通知Ｍ１０２によって各キュー毎に設定された出力量以下になるように制限する。
【０１２７】
（２）フレーム出力量が（１）の制限のほか、予め設定されるかもしくは動的に変化する、重みや優先順位等に従うよう、調整する。
【０１２８】
（３）設定された制限量にしたがって、リンク群Ｌ１１１を通じて送信キュー部３５２の各キューよりフレームを取り出して、リンクＬ１０９を通じて出力ミキサ部Ａ１３３に向けて転送する。
【０１２９】
（４）出力測定部Ａ１３６からの通知Ｍ１０４による要求に応じて、送信キュー部３５２から出力ミキサ部Ａ１３３に転送するフレームの個数、ビット数、バイト数、フレームを１つ以上蓄積している送信キューの数他を、出力測定部Ａ１３６に通知Ｍ１０４で通知する。
【０１３０】
片方向リンク群Ｌ１１０は、入力分類部３５４から送信キュー部３５２へ向かうリンクの総称である。
【０１３１】
片方向リンク群Ｌ１１１は、送信キュー部３５２から出力調整部３５３へ向かうリンクの総称である。
【０１３２】
図５は、送信バッファ部Ａ１３５の構成を詳細に示した図であり、送信キュー部３５５が、制限対象キューと制限非対象キューの２つだけキューを持つ場合に対応する。
【０１３３】
図５を参照すると、送信バッファ部Ａ１３５は、入力分類部３５４と、送信キュー部３５５と、出力調整部３５３と、片方向リンクＬ１１０〜Ｌ１１１とを含む。
【０１３４】
入力分類部３５４は、分類処理部３５４−１と、リング識別部３５４−２と、フロー数測定部３５４−３を含む。
【０１３５】
分類処理部３５４−１は、混雑通知受信転送部Ａ１３４が通知Ｍ１０３で指定したフローを、混雑通知受信転送部Ａ１３４が通知Ｍ１０３で指定した送信キューに転送するよう設定し、転送方向決定部Ａ１１よりリンクＬ１０５を通じて入力されたフレームを、上で指定された方法もしくは、予め規定された分類法や動的に変化する分類法などに従い、転送量制限対象宛先ノードか転送量制限対象宛先ノードではないか分類し、リンク群Ｌ１１０を通じて分類結果に応じた送信キュー部３５５に転送する。
【０１３６】
リング識別部３５４−２は、混雑通知受信転送部Ａ１３４からの通知Ｍ１０３による要求に応じ、送信バッファ部Ａ１３５に入力されるフロー毎に、入力元となるリングＩＤを、通知Ｍ１０３を用いて混雑通知受信転送部Ａ１３４に通知する。
【０１３７】
フロー数測定部３５４−３は、混雑通知受信転送部Ａ１３４からの通知Ｍ１０３による要求に応じ、利用可能な送信キュー数や、各送信キューを通過するフロー数を、通知Ｍ１０３を用いて混雑通知受信転送部Ａ１３４に通知する。
【０１３８】
送信キュー部３５５は、転送量制限対象キューと、転送量制限非対象キューの、２つのキュー全体のことであり、入力分類部３５１から制限対象及び制限非対象に分類されて入力されたフレームを、出力調整部３５３からの要求があるまで、蓄積する機能を有する。
【０１３９】
出力調整部３５３については、図４の出力調整部と同様のものを用いる。
【０１４０】
片方向リンク群Ｌ１１０は、入力分類部３５４から送信キュー部３５５へ向かうリンクの総称である。
【０１４１】
片方向リンク群Ｌ１１１は、送信キュー部３５５から出力調整部３５３へ向かうリンクの総称である。
【０１４２】
図６は、送信バッファ部Ａ１３５の構成を詳細に示した図であり、送信キュー部３５７が、クライアント、ノードグループ、宛先リング、コスト、IPフロー数、その他の単位毎に、任意の数のキューを持つ場合に対応する。図６を参照すると、送信バッファ部Ａ１３５は、入力分類部３５６と、送信キュー部３５７と、出力調整部３５３と、片方向リンクＬ１１０〜Ｌ１１１とを含む。
【０１４３】
入力分類部３５６は、分類処理部３５６−１と、リング識別部３５６−２と、フロー数測定部３５６−３を含む。
【０１４４】
分類処理部３５６−１は、混雑通知受信転送部Ａ１３４が通知Ｍ１０３で指定した方法や、宛先クライアントＩＤ毎、宛先グループＩＤ毎、ノードグループＩＤ毎、IPアドレス毎、IPポート番号毎などの、任意の予め規定された方法もしくは動的に変化する方法等により、リンクＬ１０５より受信したフレームが各送信キューに分類されるよう設定を行ない、転送方向決定部Ａ１１よりリンクＬ１０５を通じて入力されたフレームを、上で設定された方法によって分類し、リンク群Ｌ１１０を用いて分類結果に応じた送信キュー部３５７に転送する。
【０１４５】
リング識別部３５６−２は、混雑通知受信転送部Ａ１３４からの通知Ｍ１０３による要求に応じ、送信バッファ部Ａ１３５に入力されるフロー毎に、入力元となるリングＩＤを、通知Ｍ１０３を用いて混雑通知受信転送部Ａ１３４に通知する。
【０１４６】
フロー数測定部３５６−３は、混雑通知受信転送部Ａ１３４からの通知Ｍ１０３による要求に応じ、利用可能な送信キュー数や、各送信キューを通過するフロー数を、通知Ｍ１０３を用いて混雑通知受信転送部Ａ１３４に通知する。
【０１４７】
送信キュー部３５７は、宛先クライアントＩＤ毎、宛先グループＩＤ毎、ノードグループＩＤ毎、IPアドレス毎、IPポート番号毎などの、任意の単位で用意されたキュー全体のことであり、入力分類部３５６から宛先クライアント毎に分類されて入力されたフレームを、出力調整部３５３からの要求があるまで、蓄積する機能を有する。
【０１４８】
出力調整部３５３については、図４の出力調整部と同様のものを用いる。
【０１４９】
片方向リンク群Ｌ１１０は、入力分類部３５６から送信キュー部３５７へ向かうリンクの総称である。
【０１５０】
片方向リンク群Ｌ１１１は、送信キュー部３５７から出力調整部３５３へ向かうリンクの総称である。
【０１５１】
次に、図７を参照して、混雑通知送信部Ａ１３７において混雑制御機能が有効になっている場合の、混雑通知送信部Ａ１３７における動作について詳細に説明する。
【０１５２】
混雑通知送信部Ａ１３７は、定期的にバッファ使用量測定部Ａ１３８に対して、混雑発生の有無を確認させる（ステップ１０１）。
【０１５３】
混雑通知送信部Ａ１３７は、バッファ使用量測定部Ａ１３８より混雑発生有無の通知を受け、混雑発生の場合はステップ１０３へ、混雑発生なしの場合は、ステップ１０５に処理を移す（ステップ１０２）。
【０１５４】
混雑通知送信部Ａ１３７は、出力測定部Ａ１３６に対して、Ａ１３５からＡ１３３に転送されるフレーム全体の、量Ｕ、及び宛先混雑制御ノード数Ｄの通知を要求する（ステップ１０３）。
【０１５５】
混雑通知送信部Ａ１３７は、ステップ１０３で求められた送信フレーム量Ｕ及び宛先混雑制御ノード数Ｄを用い、各混雑制御ノードの各送信キューにおいて許容される、測定対象片方向リンクＲ１１への最大のフレーム挿入量を決定する。この量を、混雑制御ノードＡ１よりリングＲ１１に挿入されるフロー１本あたりの平均送信フレーム量、すなわち「送信フレーム量Ｕ÷宛先ノード数Ｄ」より決定し、今後は許容出力量と呼ぶこととする（ステップ１０４）。
【０１５６】
混雑通知送信部Ａ１３７は、ステップ１０２においてバッファ使用量測定部Ａ１３８より混雑発生通知を受けなかった場合は、混雑は発生していないとみなし、許容出力量をＮＵＬＬ値にリセットする。混雑通知は混雑が発生していない場合でも、許容出力量にＮＵＬＬ値が代入して送信される（ステップ１０５）。
【０１５７】
混雑通知送信部Ａ１３７は、ステップ１０４及びステップ１０５で決定した許容出力量を、片方向リングＲ１２を用いて、片方向リングＲ１１の入力側に位置する混雑制御ノードに通知する。この混雑通知には、許容出力量のほかに通知発信元ノードのアドレスも含まれる。なお、通知発信元ノードアドレスは、他のノードでこの混雑通知が転送されても変化しない（ステップ１０６）。
【０１５８】
次に図８を参照して、混雑通知受信時の、混雑通知受信転送部Ａ１３４における動作について詳細に説明する。
【０１５９】
混雑通知受信転送部Ａ１３４において、混雑制御機能が有効になっている場合、混雑通知受信転送部Ａ１３４は常に転送方向決定部Ａ１１より到着する混雑通知を待ち受けている。混雑通知を受信すると、図８の順序で処理が行われる。
【０１６０】
ステップ２０１〜２０２は、受信した混雑通知フレームを受け入れるかどうか判断する動作、ステップ２０３は、受信した混雑通知フレームを隣接ノードに転送するための動作、ステップ２０４〜２０６は、制限対象となるキューを決定するための動作、ステップ２０７〜２０９は、制限対象キューに対して実際に送出フレーム量の制限を行なうための動作、ステップ２１０〜２１１は、各フローを各送信キューに分類するための設定を行なう動作である。
【０１６１】
混雑通知受信転送部Ａ１３４は、ステップ２０１で、混雑通知に含まれる、通知発信元ノードアドレスを参照し、通知の発信元ノードが自ノードである場合は、処理を終了する。これにより、リングを１周したフレームや、何らかの事情で通知発信元に戻されたフレームが廃棄される。
【０１６２】
混雑通知受信転送部Ａ１３４は、ステップ２０１で混雑通知に含まれる通知発信元ノードアドレスを参照した結果、発信元が他ノードであった場合は、ステップ２０２に移り許容出力量を調べる。
【０１６３】
混雑通知受信転送部Ａ１３４は、許容出力量がＮＵＬＬ値である場合は、処理を終了する（ステップ２０２）。
【０１６４】
混雑通知受信転送部Ａ１３４は、ステップ２０２において許容出力量がＮＵＬＬ値以外である場合は、片方向リングＲ１２を用い、受信した混雑通知をそのまま片方向リンクＲ１１の入力側にある隣接混雑制御ノード宛に転送する。この際、通知発信元ノードアドレスには変更を加えず、受信した混雑通知に含まれていた通知発信元ノードアドレスを代入する（ステップ２０３）。
【０１６５】
混雑通知受信転送部Ａ１３４は、混雑通知を受信した片方向リングのリングＩＤ（ここではＲ１１又はＲ１２）を調べ、通知を受信したリングとは逆方向に流れるリングにおいて、混雑が発生していると推定する。これは、混雑を検知したノードは、常に混雑発生リングと逆方向のリングを使って混雑通知を送信し、また、混雑通知を転送するノードは、常に通知を受信したリングを使って混雑通知を転送するために、推定することができる（ステップ２０４）。
【０１６６】
混雑通知受信転送部Ａ１３４は、混雑通知の通知発信元ノードアドレスを参照し、ルーティングテーブルＡ１２を用いて、通知発信ノードまでのホップ数及びフレーム送出先リングＩＤを参照する。そして、ステップ２０４において推定した混雑発生リングと、今回参照した通知発信ノードへのフレーム送出先リングＩＤが同じである場合は処理を継続するが、これらが異なっていた場合は処理を中止する。この動作は、混雑リンクを自ノードが送出するフローが通過しているかどうか判断するために行っている（ステップ２０５）。
【０１６７】
混雑通知受信転送部Ａ１３４は、混雑発生リングを使って送信される宛先ノードの内、通知発信ノードまでのホップ数より、多くホップ数のかかるノードへのフローを、リングの特性により混雑リンクを通過していると判断し、これらフローが収容するノードを制限対象キューとして抽出する（ステップ２０６）。
【０１６８】
混雑通知受信転送部Ａ１３４は、制御対象とする各キューについて、それぞれのキューが何本のフローによって利用されているか調べる。そして、通過するフローの本数をＦとしたとき、許容出力量Ｕ／Ｄをフロー数Ｆで乗じた（Ｕ／Ｄ）×Ｆの値を、制限出力量とする。この動作は制限対象とする各キュー毎に行なう（ステップ２０７）。
【０１６９】
混雑通知受信転送部Ａ１３４は、制限出力量が現在設定されている制限出力量（今後は旧制限出力量と呼ぶ）よりも大きい場合は、処理を終了する（ステップ２０８）。
【０１７０】
混雑通知受信転送部Ａ１３４は、ステップ２０８で制限出力量が旧制限出力量よりも小さい場合は、送信バッファ部Ａ１３５の出力調整部３５３に対して、おのおのの制限対象のキューについて、出力フレーム量を、ステップ２０７で決定した制限出力量に制限するよう設定する（ステップ２０９）。
【０１７１】
混雑通知受信転送部Ａ１３４は、送信バッファ部Ａ１３５に対して、送信キューの分類方法を問い合わせ、送信キューが制御・非制御の２分類にされていた場合など、フロー毎に収容キューを設定する必要があるかどうか判断する（ステップ２１０）。
【０１７２】
混雑通知受信転送部Ａ１３４は、ステップ２１０で、フロー又はその他の単位毎に、収容キューを個別に設定する必要がないと判断した場合は、処理を終了させる。
【０１７３】
混雑通知受信転送部Ａ１３４は、ステップ２０８で、フロー毎又はその他の単位毎に、収容キューを個別に設定する必要があると判断した場合は、送信バッファ部Ａ１３５に対して、各フロー又はその他の単位毎に、収容キューを指定していく（ステップ２１１）。
【０１７４】
すべてのキューの制限出力量は、最大制限出力量に達するまで定期的に増加していく。また、送信キューが制限・非制限の２つに分けられていた場合は、制限キューに入ったフローは、一定時間後もしくは非制限キューと同じかそれ以上の出力フレーム量になった場合に、非制限キューに移る。
【０１７５】
図１を参照して、本実施の形態において、宛先混雑制御ノード毎に送信キューを設置した場合の混雑制御の動作について、具体例を用いて詳細に説明する。
【０１７６】
図１において、クライアント群Ｃ１と混雑制御ノードＡ１、クライアント群Ｃ２と混雑制御ノードＡ２、クライアント群Ｃ３と混雑制御ノードＡ３、クライアント群Ｃ４と混雑制御ノードＡ４を結ぶ各リンクの速度を１００Ｍ（bit/sec）とし、片方向リングＲ１１及び片方向リングＲ１２の速度を１０Ｍ（bit/sec）とする。
【０１７７】
まず、クライアント群Ｃ３に属するクライアントが、８Ｍ（bit/sec）の速度で、クライアント群Ｃ１に属するクライアントに向けて、片方向リングＲ１１を経由してフレームを送信する。この状態では、フレーム送信速度が片方向リングＲ１１の帯域幅を下回っているので、混雑は発生しない。
【０１７８】
この場合、混雑制御ノードＡ３において、クライアント群Ｃ３からクライアント群Ｃ１に向けて送信されるフレームは、すべて混雑制御ノードＡ１宛の送信バッファを通過する。
【０１７９】
次に、クライアント群Ｃ２に属するクライアントが、８Ｍ（bit/sec）の速度で、クライアント群Ｃ１に属するクライアントに向けて、片方向リングＲ１１を経由してフレームを送信する。
【０１８０】
この場合、混雑制御ノードＡ２において、片方向リングＲ１１を流れるパケットが利用する転送バッファの使用量が下限値（ここでは５ｋ（bit）とする）を超えない限り、クライアント群Ｃ２から入力され片方向リングＲ１１に出力されるフレームは、片方向リンクＲ１１より入力されるフレームよりも、優先的に片方向リングＲ１１に向けて送信される。このため、混雑制御ノードＡ２において、クライアント群Ｃ２からクライアント群Ｃ１に向けて送信されるフレームは、すべて混雑制御ノードＡ１宛の送信バッファを通過する。
【０１８１】
ここで、片方向リングＲ１１には、既にクライアント群Ｃ３より送信されるフレームが流れているため、混雑制御ノードＡ２における片方向リングＲ１１への出力フレーム量が、片方向リングＲ１１の帯域幅を上回り、混雑制御ノードＡ２における片方向リングＲ１１への出力側で混雑が発生する。
【０１８２】
混雑制御ノードＡ２において、混雑制御ノードＡ２の転送バッファ利用量が下限値に達していない場合、クライアント群Ｃ２から送信されるフレームが、混雑制御ノードＡ２に片方向リングＲ１１より入力されるフレームよりも優先されるため、混雑制御ノードＡ２に片方向リングＲ１１より入力されるフレームは、混雑制御ノードＡ２の転送バッファに蓄積される。
【０１８３】
混雑制御ノードＡ２において、混雑制御ノードＡ２の転送バッファ利用量が下限値を超えた場合、優先順位が逆転し、混雑制御ノードＡ２に片方向リングＲ１１より入力されるフレームが、クライアント群Ｃ２から送信されてリングＲ１１に流れるフレームよりも優先されるようになる。
【０１８４】
混雑制御ノードＡ２において、混雑制御ノードＡ２への入力が過大である場合には、優先順位逆転を行っても、混雑制御ノードＡ２における転送バッファへの蓄積フレーム量が上限値（ここでは８ｋ（bit）とする）を超える。この場合、混雑制御ノードＡ２は片方向リングＲ１１における混雑発生を検知する。この実施の形態においては、混雑発生検知は転送バッファで行われ、送信バッファでは混雑発生検知を行なわない。
【０１８５】
混雑制御ノードＡ２は、クライアント群Ｃ２から入力され片方向リングＲ１１に転送されるフレームの、送信速度及び宛先ノード数（すなわちフロー数）を測定する。そして、「送信速度÷フロー数」を許容出力量として、混雑通知を片方向リングＲ１２を用いて混雑制御ノードＡ３に送信する。ここでクライアント群Ｃ２から片方向リングＲ１１に転送されるフレーム量が２Ｍ（bit/sec）であったとすると、宛先ノードはＡ１の１箇所だけであるので、２Ｍ（bit/sec）÷１＝２Ｍ（bit/sec）を、許容出力量として送信する。
【０１８６】
混雑制御ノードＡ２は、片方向リングＲ１１の出力側における混雑を検出している間、許容出力量を周期的にノードＡ３に向けて発信する。
【０１８７】
混雑制御ノードＡ２は、片方向リングＲ１２の出力側では混雑を検知していないため、混雑発生なし（ＮＵＬＬ）という混雑通知を、片方向リングＲ１１を用いて周期的にノードＡ１に向けて発信する。
【０１８８】
混雑制御ノードＡ１は、ＮＵＬＬ情報の入った混雑通知を受信し、その通知を破棄する。
【０１８９】
混雑制御ノードＡ３は、許容出力量の入った混雑通知を受信し、混雑通知の発信元が自ノードでないことを確認し、また通知内容がＮＵＬＬでないことを確認し、混雑通知を片方向リングＲ１２を用いて混雑制御ノードＡ４に送信する。
【０１９０】
混雑制御ノードＡ３を出発した混雑通知は、混雑制御ノードＡ４・混雑制御ノードＡ１で受信・転送され、片方向リングＲ１２を１周して混雑制御ノードＡ２に戻る。混雑制御ノードＡ２は、自ノードが発信した混雑通知を受信すると、その通知を破棄して、混雑通知の転送を打ち切る。
【０１９１】
混雑制御ノードＡ３は、混雑通知を片方向リングＲ１２から受信したことから、片方向リングＲ１１で混雑が発生していると推定する。そして、ルーティングテーブルを参照した結果、通知の発信元ノードである混雑制御ノードＡ２への経路にＲ１１を利用していることから、自ノードが混雑に関係している可能性があると認識する。
【０１９２】
混雑制御ノードＡ３は、混雑通知の発信元が混雑制御ノードＡ２であることから、リングＲ１１における混雑制御ノードＡ２の出力側で混雑が発生していると推定する。そして、ルーティングテーブルを参照し、リングＲ１１に向けて送信され、混雑制御ノードＡ２へのコスト（ここでは１とする）より大きいコストが設定されているノード宛のフレームが、混雑リンクを通過するものと推定する。
【０１９３】
混雑制御ノードＡ３のルーティングテーブルに設定されている、混雑制御ノードＡ１への経路がリングＲ１１、コストが２であったとすると、混雑制御ノードＡ３は、混雑制御ノードＡ１宛のフレームが、混雑リンクを通過するものと推定する。
【０１９４】
混雑制御ノードＡ３において、混雑制御ノードＡ１へ流れるフロー数は１、混雑制御ノードＡ１へ流れるフロー数も１であることから、重み係数は１になる。その結果、ノードＡ１宛の送信バッファの出力を、混雑通知で通知された許容出力量である２Ｍ（bit/sec）になるよう制限する。
【０１９５】
混雑制御ノードＡ３において、クライアント群Ｃ３からクライアント群Ｃ１に向けて送信されるフレームは、すべて混雑制御ノードＡ１宛の送信キューを通過するので、このキューの出力が２Ｍ（bit/sec）に制限されることにより、クライアント群Ｃ３がクライアント群Ｃ１に向けて送信するフレームは、混雑制御ノードＡ２に４Ｍ（bit/sec）の速度で入力されるようになる。
【０１９６】
混雑制御ノードＡ２は、片方向リングＲ１１より入力されるフレームの速度が４Ｍ（bit/sec）に減少したため、クライアント群Ｃ２から入力されるフレームを、８Ｍ（bit/sec）の速度で片方向リングＲ１１に向けて送信することができるようになる。
【０１９７】
混雑制御ノードＡ２では、片方向リングＲ１１より入力されるフレームの速度が２Ｍ（bit/sec）に減少したため、混雑制御ノードＡ２内の転送バッファの使用量が低下していく。そして転送バッファ使用量が閾値以下になると、混雑制御ノードＡ２は片方向リングＲ１１の出力側における混雑検出を解除する。
【０１９８】
すべてのノードは、許容出力量が指定された混雑通知を受信しない場合、周期的にバッファ出力量の制限を緩和させていく。混雑制御ノードＡ３は、２Ｍ（bit/sec）に制限されていた混雑制御ノードＡ１宛送信キューの出力を、徐々に増加させていく。
【０１９９】
以降、混雑制御ノードＡ３が送信キューの出力を上げていくと、再び混雑制御ノードＡ２で混雑が検知され、上記の動作が繰り返される。クライアント群が送信するフローに変化がない場合は、混雑を検知する毎に許容出力量は徐々に上がっていき、混雑制御ノードＡ２と混雑制御ノードＡ３の出力量が徐々にリンク帯域を２等分する５Ｍ（bit/sec）に近づく形で収束し、公平な帯域分割が行われる。
【０２００】
次に、図１を参照して、本実施の形態において、制御・非制御という２種類のみの送信キューを設置した場合の混雑制御の動作について、具体例を用いて詳細に説明する。
【０２０１】
送信キューを２種類のみ設置した場合は、送信キューを宛先混雑制御ノード毎に設置した場合と比較して、設置するキューが少なく使用するメモリ量が少なくて済むという点、そして、各フローを「制限あり」「制限なし」という２つの送信キューへ分類するための設定を行なう点が異なる。
【０２０２】
図１において、クライアント群Ｃ１と混雑制御ノードＡ１、クライアント群Ｃ２と混雑制御ノードＡ２、クライアント群Ｃ３と混雑制御ノードＡ３、クライアント群Ｃ４と混雑制御ノードＡ４を結ぶ各リンクの速度を１００Ｍ（bit/sec）とし、片方向リングＲ１１及び片方向リングＲ１２の速度を１０Ｍ（bit/sec）とする。
【０２０３】
まず、クライアント群Ｃ３に属するクライアントが、８Ｍ（bit/sec）の速度で、クライアント群Ｃ１に属するクライアントに向けて、片方向リングＲ１１を経由してフレームを送信する。この状態では、フレーム送信速度が片方向リングＲ１１の帯域幅を下回っているので、混雑は発生しない。
【０２０４】
混雑制御ノードＡ３において、クライアント群Ｃ３からクライアント群Ｃ１に向けて送信されるフレームは、すべて「制限なし」の送信バッファを通過する。
【０２０５】
次に、クライアント群Ｃ２に属するクライアントが、８Ｍ（bit/sec）の速度で、クライアント群Ｃ１に属するクライアントに向けて、片方向リングＲ１１を経由してフレームを送信する。
【０２０６】
混雑制御ノードＡ２において、片方向リングＲ１１を流れるパケットが利用する転送バッファの使用量が下限値（ここでは５ｋ（bit）とする）を超えない限り、クライアント群Ｃ２から入力され片方向リングＲ１１に出力されるフレームは、片方向リンクＲ１１より入力されるフレームよりも、優先的に片方向リングＲ１１に向けて送信される。
【０２０７】
混雑制御ノードＡ２において、クライアント群Ｃ２からクライアント群Ｃ１に向けて送信されるフレームは、すべて「制限なし」の送信バッファを通過する。
【０２０８】
混雑制御ノードＡ２において、片方向リングＲ１１の出力側には、既にクライアント群Ｃ３より送信されるフレームが流れているため、混雑制御ノードＡ２における片方向リングＲ１１への出力フレーム量が、片方向リングＲ１１の帯域幅を上回り、混雑制御ノードＡ２における片方向リングＲ１１への出力側で混雑が発生する。
【０２０９】
混雑制御ノードＡ２において、混雑制御ノードＡ２の転送バッファ利用量が下限値に達していない場合、クライアント群Ｃ２から送信されるフレームが、混雑制御ノードＡ２に片方向リングＲ１１より入力されるフレームよりも優先されるため、混雑制御ノードＡ２に片方向リングＲ１１より入力されるフレームは、混雑制御ノードＡ２の転送バッファに蓄積される。
【０２１０】
混雑制御ノードＡ２において、混雑制御ノードＡ２の転送バッファ利用量が下限値を超えた場合、優先順位が逆転し、混雑制御ノードＡ２に片方向リングＲ１１より入力されるフレームが、クライアント群Ｃ２から送信されてリングＲ１１に流れるフレームよりも優先されるようになる。
【０２１１】
混雑制御ノードＡ２において、混雑制御ノードＡ２への入力が過大である場合には、混雑制御ノードＡ２における転送バッファへの蓄積フレーム量が上限値（ここでは８ｋ（bit）とする）を超える。この場合、混雑制御ノードＡ２は片方向リングＲ１１における混雑発生を検知する。
【０２１２】
混雑制御ノードＡ２は、クライアント群Ｃ２から入力され片方向リングＲ１１に転送されるフレームの、送信速度及び宛先ノード数（すなわちフロー数）を測定する。そして、「送信速度÷フロー数」を許容出力量として、混雑通知を片方向リングＲ１２を用いて混雑制御ノードＡ３に送信する。ここでクライアント群Ｃ２から片方向リングＲ１１に転送されるフレーム量が２Ｍ（bit/sec）であったとすると、宛先ノードはＡ１の１箇所だけであるので、２Ｍ（bit/sec）÷１＝２Ｍ（bit/sec）を、許容出力量として送信する。
【０２１３】
混雑制御ノードＡ２は、片方向リングＲ１１の出力側における混雑を検出している間、許容出力量を周期的にノードＡ３に向けて発信する。
【０２１４】
混雑制御ノードＡ２は、片方向リングＲ１２の出力側では混雑を検知していないため、混雑発生なし（ＮＵＬＬ）という混雑通知を、片方向リングＲ１１を用いて周期的にノードＡ１に向けて発信する。
【０２１５】
混雑制御ノードＡ１は、ＮＵＬＬ情報の入った混雑通知を受信し、その通知を破棄する。
【０２１６】
混雑制御ノードＡ３は、許容出力量の入った混雑通知を片方向リングＲ１２より受信し、混雑通知の発信元が自ノードでないことを確認し、また通知内容がＮＵＬＬでないことを確認し、混雑通知を片方向リングＲ１２を用いて混雑制御ノードＡ４に転送する。
【０２１７】
混雑制御ノードＡ３を出発した混雑通知は、混雑制御ノードＡ４・混雑制御ノードＡ１で受信・転送され、片方向リングＲ１２を１周して混雑制御ノードＡ２に戻る。混雑制御ノードＡ２は、自ノードが発信した混雑通知を受信すると、その通知を破棄して、混雑通知の転送を打ち切る。
【０２１８】
混雑制御ノードＡ３は、混雑通知を片方向リングＲ１２から受信したことから、片方向リングＲ１１で混雑が発生していると推定する。そして、ルーティングテーブルを参照した結果、混雑制御ノードＡ２への経路にＲ１１を利用していることから、自ノードが混雑に関係している可能性があると認識する。
【０２１９】
混雑制御ノードＡ３は、混雑通知の発信元が混雑制御ノードＡ２であることから、混雑制御ノードＡ２の出力側で混雑が発生していると推定する。そして、ルーティングテーブルを参照し、リングＲ１１に向けて送信され、混雑制御ノードＡ２へのコスト（ここでは１とする）より大きいコストが設定されているノード宛のフレームが、混雑リンクを通過するものと推定する。
【０２２０】
混雑制御ノードＡ３のルーティングテーブルに設定されている、混雑制御ノードＡ１への経路がリングＲ１１、コストが２であったとすると、混雑制御ノードＡ３は、混雑制御ノードＡ１宛のフレームが、混雑リンクを通過するものと推定する。
【０２２１】
混雑制御ノードＡ３において、混雑リンクを通過するフロー数が１であることから、重み係数は１になる。その結果、「制限あり」のバッファの出力を、混雑通知で通知された許容出力量である２Ｍ（bit/sec）になるよう制限する。このとき、混雑リンクを通過するフローが制限ありの送信キューを通るよう、入力分類部の設定を行なう。
【０２２２】
混雑制御ノードＡ３において、クライアント群Ｃ３からクライアント群Ｃ１に向けて送信されるフレームは、すべて「制限あり」の送信キューを通過するので、このキューの出力が２Ｍ（bit/sec）に制限されることにより、クライアント群Ｃ３がクライアント群Ｃ１に向けて送信するフレームは、混雑制御ノードＡ２に２Ｍ（bit/sec）の速度で入力されるようになる。
【０２２３】
混雑制御ノードＡ２は、片方向リングＲ１１より入力されるフレームの速度が２Ｍ（bit/sec）に減少したため、クライアント群Ｃ２から入力されるフレームを、８Ｍ（bit/sec）の速度で片方向リングＲ１１に向けて送信することができるようになる。
【０２２４】
混雑制御ノードＡ２では、片方向リングＲ１１より入力されるフレームの速度が２Ｍ（bit/sec）に減少したため、混雑制御ノードＡ２内の転送バッファの使用量が低下していく。そして転送バッファ使用量が閾値以下になると、混雑制御ノードＡ２は片方向リングＲ１１の出力側における混雑検出を解除する。
【０２２５】
すべてのノードは、許容出力量が指定された混雑通知を受信しない場合、周期的にバッファ出力量の制限を緩和させていく。混雑制御ノードＡ３は、２Ｍ（bit/sec）に制限されていた制限付き送信キューの出力を、徐々に増加させていく。
【０２２６】
ここでもし、制限を緩和させた結果、制限付きキューと制限なしキューの出力量が等しくなった場合は、制限付きキューの利用を停止し、すべてのフローを制限なしキューに分類する。
【０２２７】
以降、混雑制御ノードＡ３が制限あり送信キューの出力を上げていくと、再び混雑制御ノードＡ２で混雑が検知され、上記の動作が繰り返される。クライアント群が送信するフローに変化がない場合は、混雑を検知する毎に許容出力量は徐々に上がっていき、混雑制御ノードＡ２と混雑制御ノードＡ３の出力量が徐々にリンク帯域を２等分する５Ｍ（bit/sec）に近づく形で収束し、公平な帯域分割が行われる。
【０２２８】
図１を参照して、本実施の形態において、宛先ノードへのコスト毎に送信キューを設置した場合の混雑制御の動作について、具体例を用いて詳細に説明する。
【０２２９】
送信キューを宛先ノードへのコスト毎に設置した場合は、送信キューを宛先混雑制御ノード毎に設置した場合と比較して、設置するキューが少なく使用するメモリ量が少なくて済むという点が異なる。また、キューを「制限あり」「制限なし」という２つの送信キューへ分類した場合と比較すると、より細かな制御が可能になる点が異なる。
【０２３０】
図１において、クライアント群Ｃ１と混雑制御ノードＡ１、クライアント群Ｃ２と混雑制御ノードＡ２、クライアント群Ｃ３と混雑制御ノードＡ３、クライアント群Ｃ４と混雑制御ノードＡ４を結ぶ各リンクの速度を１００Ｍ（bit/sec）とし、片方向リングＲ１１及び片方向リングＲ１２の速度を１０Ｍ（bit/sec）とする。
【０２３１】
まず、クライアント群Ｃ３に属するクライアントが、８Ｍ（bit/sec）の速度で、クライアント群Ｃ１に属するクライアントに向けて、片方向リングＲ１１を経由してフレームを送信する。この状態では、フレーム送信速度が片方向リングＲ１１の帯域幅を下回っているので、混雑は発生しない。
【０２３２】
混雑制御ノードＡ３において、混雑制御ノードＡ１へのコストが２５、ノードＡ２へのコストが１２、ノードＡ４へのコストが８とルーティングテーブルに設定されており、送信キューがコスト０〜９、１０〜１９、２０〜２９という３つの区分で設置されているとする。
【０２３３】
クライアント群Ｃ３からクライアント群Ｃ１に向けて送信されるフレームは、ノードＡ１へのコストが２５であることから、すべてコスト２０〜２９の送信バッファを通過する。
【０２３４】
次に、クライアント群Ｃ２に属するクライアントが、８Ｍ（bit/sec）の速度で、クライアント群Ｃ１に属するクライアントに向けて、片方向リングＲ１１を経由してフレームを送信する。
【０２３５】
混雑制御ノードＡ２において、片方向リングＲ１１を流れるパケットが利用する転送バッファの使用量が下限値（ここでは５ｋ（bit）とする）を超えない限り、クライアント群Ｃ２から入力され片方向リングＲ１１に出力されるフレームは、片方向リンクＲ１１より入力されるフレームよりも、優先的に片方向リングＲ１１に向けて送信される。
【０２３６】
混雑制御ノードＡ２において、混雑制御ノードＡ１へのコストが１３、ノードＡ３へのコストが１２、ノードＡ４へのコストが２０とルーティングテーブルに設定されており、送信キューがコスト０〜９、１０〜１９、２０〜２９という３つの区分で設置されているとする。
【０２３７】
クライアント群Ｃ２からクライアント群Ｃ１に向けて送信されるフレームは、ノードＡ１へのコストが１３であることから、すべてコスト１０〜１９の送信バッファを通過する。
【０２３８】
混雑制御ノードＡ２において、片方向リングＲ１１には、既にクライアント群Ｃ３より送信されるフレームが流れているため、混雑制御ノードＡ２における片方向リングＲ１１への出力フレーム量が、片方向リングＲ１１の帯域幅を上回り、混雑制御ノードＡ２における片方向リングＲ１１への出力側で混雑が発生する。
【０２３９】
混雑制御ノードＡ２において、混雑制御ノードＡ２の転送バッファ利用量が下限値に達していない場合、クライアント群Ｃ２から送信されるフレームが、混雑制御ノードＡ２に片方向リングＲ１１より入力されるフレームよりも優先されるため、混雑制御ノードＡ２に片方向リングＲ１１より入力されるフレームは、混雑制御ノードＡ２の転送バッファに蓄積される。
【０２４０】
混雑制御ノードＡ２において、混雑制御ノードＡ２の転送バッファ利用量が下限値を超えた場合、優先順位が逆転し、混雑制御ノードＡ２に片方向リングＲ１１より入力されるフレームが、クライアント群Ｃ２から送信されてリングＲ１１に流れるフレームよりも優先されるようになる。
【０２４１】
混雑制御ノードＡ２において、混雑制御ノードＡ２への入力が過大である場合には、混雑制御ノードＡ２における転送バッファへの蓄積フレーム量が上限値（ここでは８ｋ（bit）とする）を超える。この場合、混雑制御ノードＡ２は片方向リングＲ１１における混雑発生を検知する。
【０２４２】
混雑制御ノードＡ２において、混雑制御ノードＡ２は、クライアント群Ｃ２から入力され片方向リングＲ１１に転送されるフレームの、送信速度及び宛先ノード数（すなわちフロー数）を測定する。そして、「送信速度÷フロー数」を許容出力量として、混雑通知を片方向リングＲ１２を用いて混雑制御ノードＡ３に送信する。ここでクライアント群Ｃ２から片方向リングＲ１１に転送されるフレーム量が２Ｍ（bit/sec）であったとすると、宛先ノードはＡ１の１箇所だけであるので、２Ｍ（bit/sec）÷１＝２Ｍ（bit/sec）を、許容出力量として送信する。
【０２４３】
混雑制御ノードＡ２は、片方向リングＲ１１の出力側における混雑を検出している間、許容出力量を周期的にノードＡ３に向けて発信する。
【０２４４】
混雑制御ノードＡ２は、片方向リングＲ１２の出力側では混雑を検知していないため、混雑発生なし（ＮＵＬＬ）という混雑通知を、片方向リングＲ１１を用いて周期的にノードＡ１に向けて発信する。
【０２４５】
混雑制御ノードＡ１は、ＮＵＬＬ情報の入った混雑通知を受信し、その通知を破棄する。
【０２４６】
混雑制御ノードＡ３は、許容出力量の入った混雑通知を受信し、混雑通知の発信元が自ノードでないことを確認し、また通知内容がＮＵＬＬでないことを確認し、混雑通知を片方向リングＲ１２を用いて混雑制御ノードＡ４に送信する。
【０２４７】
混雑制御ノードＡ３を出発した混雑通知は、混雑制御ノードＡ４・混雑制御ノードＡ１で受信・転送され、片方向リングＲ１２を１周して混雑制御ノードＡ２に戻る。混雑制御ノードＡ２は、自ノードが発信した混雑通知を受信すると、その通知を破棄して、混雑通知の転送を打ち切る。
【０２４８】
混雑制御ノードＡ３は、混雑通知を片方向リングＲ１２から受信したことから、片方向リングＲ１１で混雑が発生していると推定する。そして、ルーティングテーブルを参照した結果、混雑制御ノードＡ２への経路にＲ１１を利用していることから、自ノードが混雑に関係している可能性があると認識する。
【０２４９】
混雑制御ノードＡ３は、混雑通知の発信元が混雑制御ノードＡ２であることから、混雑制御ノードＡ２の出力側で混雑が発生していると推定する。そして、ルーティングテーブルを参照し、リングＲ１１に向けて送信され、混雑制御ノードＡ２へのコストより大きいコストが設定されているノード宛のフレームが、混雑リンクを通過するものと推定する。
【０２５０】
混雑制御ノードＡ３は、ノードＡ２へのコストが１２であるので、コスト１０〜１９、及びコスト２０〜２９の２つのキューが、混雑に関係すると推定する。
【０２５１】
混雑制御ノードＡ３において、コスト１０〜１９、及びコスト２０〜２９の２つのキューを流れるフロー数の合計は１であることから、重み係数は１になる。その結果、コスト１０〜１９、及びコスト２０〜２９の２つの送信バッファの出力を、混雑通知で通知された許容出力量である２Ｍ（bit/sec）になるよう制限する。
【０２５２】
混雑制御ノードＡ３において、クライアント群Ｃ３からクライアント群Ｃ１に向けて送信されるフレームは、すべてコスト２０〜２９の送信キューを通過するので、このキューの出力が２Ｍ（bit/sec）に制限されることにより、クライアント群Ｃ３がクライアント群Ｃ１に向けて送信するフレームは、混雑制御ノードＡ２に２Ｍ（bit/sec）の速度で入力されるようになる。
【０２５３】
混雑制御ノードＡ２は、片方向リングＲ１１より入力されるフレームの速度が２Ｍ（bit/sec）に減少したため、クライアント群Ｃ２から入力されるフレームを、８Ｍ（bit/sec）の速度で片方向リングＲ１１に向けて送信することができるようになる。
【０２５４】
混雑制御ノードＡ２では、片方向リングＲ１１より入力されるフレームの速度が２Ｍ（bit/sec）に減少したため、混雑制御ノードＡ２内の転送バッファの使用量が低下していく。そして転送バッファ使用量が閾値以下になると、混雑制御ノードＡ２は片方向リングＲ１１の出力側における混雑検出を解除する。
【０２５５】
すべてのノードは、許容出力量が指定された混雑通知を受信しない場合、周期的にバッファ出力量の制限を緩和させていく。混雑制御ノードＡ３は、２Ｍ（bit/sec）に制限されていたコスト１０〜１９のノード宛、及びコスト２０〜２９ノード宛の送信キューの出力を、徐々に増加させていく。
【０２５６】
以降、混雑制御ノードＡ３が制限あり送信キューの出力を上げていくと、再び混雑制御ノードＡ２で混雑が検知され、上記の動作が繰り返される。クライアント群が送信するフローに変化がない場合は、混雑を検知する毎に許容出力量は徐々に上がっていき、混雑制御ノードＡ２と混雑制御ノードＡ３の出力量が徐々にリンク帯域を２等分する５Ｍ（bit/sec）に近づく形で収束し、公平な帯域分割が行われる。
【０２５７】
以降、混雑が検知される度に、上記の処理が繰り返されていく。
【０２５８】
次に、本形態の実施の効果について説明する。
【０２５９】
従来技術１では、混雑通知を受信したノードからリングＲ１に挿入されるすべてのフローがフロー送出量制限の対象となり、混雑に関係しないフローまでもが送出量制限の対象となったため、リンク帯域の利用率が低下した。
【０２６０】
本実施の形態では、混雑制御ノードＡ１において予めリングＲ１上の宛先ノード毎等に区分された送信キューを備え、混雑通知を受信した場合は混雑に関係するキューを推定し、混雑に関係するキューの出力のみを制限の対象にする。これにより、混雑に関係のないフローのフレーム送信量が不当に制限されることがなくなり、リンク帯域の有効利用が可能になった。
【０２６１】
従来技術１では更に、制限出力量が宛先ノード毎ではなく、送信ノード（つまり、クライアント群から受信したフレームをリングに転送する混雑制御ノード）から出力されるすべての送信フレーム量で設定されたため、宛先ノード数が少ない送信元ノードでは、各フローに割り当てられる帯域が大きくなり、宛先ノード数が多い送信元ノードでは各フローに割り当てられる帯域が小さく制限されてしまい、各フロー間の公平性が保たれなかった。
【０２６２】
本実施の形態では、宛先ノード毎にキューを設置し、利用可能帯域を宛先ノード毎に設定できるため、フロー間における利用可能帯域の差がなくなり、フロー間での公平性を保つことが可能になった。
【０２６３】
従来技術２において、各フローの使用リンク帯域の公平性を保つためには、本実施の形態における混雑通知にあたるコントロールメッセージを、フロー毎に送信する必要があった。
【０２６４】
本実施の形態では、混雑発生を検知したノード毎に混雑通知を送信するだけで、各フローの使用リンク帯域の公平性を保つことができる。したがって、混雑通知の送信回数がフロー数に依存しないため、フローが増えた場合でも、混雑通知の送信回数を増やすことなく、フロー間の公平性を保つことができる。
【０２６５】
次に、本発明の第２の実施の形態について図面を参照して詳細に説明する。
【０２６６】
本発明の第２の実施の形態は、第１の実施の形態において、混雑通知受信時の、混雑通知受信転送部Ａ１３４における動作を変更した場合に対応する。なお、構成に変化はない。
【０２６７】
本実施の形態において、図９に挙げるステップ２０１〜２１１は、図８に示された第１の実施の形態におけるステップ２０１〜２１１と等しい動作を行なう。
【０２６８】
図９を参照すると、本発明の第２の実施の形態は、図８に示された第１の実施の形態において、受信した混雑通知フレームを隣接ノードに転送するための動作（ステップ２０３）が、制限対象となるキューを決定するための動作（ステップ２０４〜２０６）の後で行われている点で異なる。
【０２６９】
これにより、混雑通知受信転送部Ａ１３４は、ステップ２０５において自ノードが混雑に関係しないと判断した場合は、リングの特性によって、混雑通知を受信した片方向リング上に存在する自ノードよりも下流にあるノードも、同様に混雑に関係しないと推定できる。したがって、ステップ２０３による混雑通知の転送を行なわない。
【０２７０】
次に、本形態の実施の効果について説明する。
【０２７１】
本実施の形態では、混雑制御ノードにおいて、混雑通知をこれ以上転送しても効果が得られないと判断できた場合には、混雑通知がリングを１周する前に通知の転送を停止することができる。これにより、不要な混雑通知の転送によるリンク帯域の消費を、減少させることができる。
【０２７２】
次に、本発明の第３の実施の形態について図面を参照して詳細に説明する。
【０２７３】
本発明の第３の実施の形態は、第１の実施の形態において、混雑制御ノードに障害処理機能を付加した場合に対応する。
【０２７４】
図１０を参照すると、本発明の第３の実施の形態は、図１に示された第１の実施の実施の形態において、混雑制御ノードＡ１の代わりに混雑制御ノードＦ１、混雑制御ノードＡ２の代わりに混雑制御ノードＦ２、混雑制御ノードＡ３の代わりに混雑制御ノードＦ３、混雑制御ノードＡ４の代わりに混雑制御ノードＦ４を備えている点で異なる。
【０２７５】
混雑制御ノードＦ２〜Ｆ４は混雑制御ノードＦ１と等しい構成を持つ。以降、混雑制御ノードＦ１〜Ｆ４を代表して、混雑制御ノードＦ１のみについて説明するが、混雑制御ノードＦ１についての記述は、特に断りのない限り混雑制御ノードＦ２〜Ｆ４にも同様に適用可能である。
【０２７６】
図１１は、混雑制御ノードＦ１の構成を詳細に示した図である。混雑制御ノードＦ１は、転送方向決定部Ａ１１と、ルーティングテーブルＡ１２と、混雑制御部Ａ１３と、別の混雑制御部Ａ１４と、障害検出部Ｆ１７と、障害検出部Ｆ１８と、障害処理部Ｆ１９、双方向リンクＬ２０１、通知Ｍ２０１〜２０３を含む。
【０２７７】
障害検出部Ｆ１７は、片方向リングＲ１１への出力で発生した障害及び、片方向リングＲ１２からの入力で発生した障害を検出し、検出した障害を障害処理手順Ｆ１９に通知する。
【０２７８】
障害検出部Ｆ１８は、片方向リングＲ１１からの入力で発生した障害及び、片方向リングＲ１２への出力で発生した障害を検出し、検出した障害を障害処理手順Ｆ１９に通知する。
【０２７９】
障害処理部Ｆ１９は、以下に挙げる３つの機能を有する。
【０２８０】
（１）障害検出部Ｆ１７又はＦ１８からより通知Ｍ２０１又はＭ２０２で通知された障害情報をもとに、通知Ｍ２０３を用いてルーティングテーブルＡ１２を書き換える。
【０２８１】
（２）障害通知フレームを、双方向リンクＬ２０１を通じて転送方向決定部Ａ１１に向けて送信し、発生した障害を他の混雑制御ノード内の障害処理部Ｆ１９に伝達する。
【０２８２】
（３）他の傷害処理部Ｆ１９が送信し、双方向リンクＬ２０１を通じて転送方向決定部Ａ１７より受信した障害通知フレームをもとに、ルーティングテーブルＡ１２を書き換える。
【０２８３】
双方向リンクＬ２０１は、転送方向決定部Ａ１１から障害処理部Ｆ１９、及び、障害処理部Ｆ１９から転送方向決定部Ａ１１に向かう、双方向リンクである。
【０２８４】
通知Ｍ２０１は、障害検出部Ｆ１７と障害処理部Ｆ１９との間の、双方向の通知である。
【０２８５】
通知Ｍ２０２は、障害検出部Ｆ１８と障害処理部Ｆ１９との間の、双方向の通知である。
【０２８６】
通知Ｍ２０３は、ルーティングテーブルＡ１２と障害処理部Ｆ１９との間の、双方向の通知である。
【０２８７】
図１０を参照して、本実施の形態において、障害発生時に宛先混雑制御ノード毎に送信キューを設置した場合の混雑制御の動作について、具体例を用いて詳細に説明する。
【０２８８】
図１０において、クライアント群Ｃ１と混雑制御ノードＦ１、クライアント群Ｃ２と混雑制御ノードＦ２、クライアント群Ｃ３と混雑制御ノードＦ３、クライアント群Ｃ４と混雑制御ノードＦ４を結ぶ各リンクの速度を１００Ｍ（bit/sec）とし、片方向リングＲ１１及び片方向リングＲ１２の速度を１０Ｍ（bit/sec）とする。
【０２８９】
リングＲ１において、混雑制御ノードＦ１と混雑制御ノードＦ２の間の、片方向リングＲ１１及び片方向Ｒ１２の両方に、障害が発生しているとする。障害は既に混雑制御ノードＦ１及びＦ２で検知され、混雑制御ノードＦ１及びＦ２リングＲ１に存在するすべてのノードに障害通知が伝達されているとする。
【０２９０】
すべてのノードにおいて、障害通知によってルーティング情報の変更が完了している。ルーティング情報には、混雑制御ノードＦ１と混雑制御ノードＦ２の間のリンクを通らないよう、迂回ルートが設定されている。
【０２９１】
まず、クライアント群Ｃ３に属するクライアントが、８Ｍ（bit/sec）の速度で、クライアント群Ｃ１に属するクライアントに向けて、片方向リングＲ１２を経由してフレームを送信する。この状態では、フレーム送信速度が片方向リングＲ１２の帯域幅を下回っているので、混雑は発生しない。
【０２９２】
混雑制御ノードＦ３において、クライアント群Ｃ３からクライアント群Ｃ１に向けて送信されるフレームは、すべて混雑制御ノードＦ１宛の送信バッファを通過する。
【０２９３】
次に、クライアント群Ｃ２に属するクライアントが、８Ｍ（bit/sec）の速度で、クライアント群Ｃ１に属するクライアントに向けて、片方向リングＲ１２を経由してフレームを送信する。
【０２９４】
混雑制御ノードＦ３において、片方向リングＲ１２を流れるパケットが利用する転送バッファの使用量が下限値（ここでは５ｋ（bit）とする）を超えない限り、クライアント群Ｃ３から入力され片方向リングＲ１２に出力されるフレームは、片方向リンクＲ１２より入力されるフレームよりも、優先的に片方向リングＲ１２に向けて送信される。
【０２９５】
混雑制御ノードＦ２において、クライアント群Ｃ２からクライアント群Ｃ１に向けて送信されるフレームは、すべて混雑制御ノードＦ１宛の送信バッファを通過する。
【０２９６】
片方向リングＲ１２には、既にクライアント群Ｃ３より送信されるフレームが流れているため、混雑制御ノードＦ３における片方向リングＲ１２への出力フレーム量が、片方向リングＲ１２の帯域幅を上回り、混雑制御ノードＦ３における片方向リングＲ１２への出力側で混雑が発生する。
【０２９７】
混雑制御ノードＦ３において、混雑制御ノードＦ３の転送バッファ利用量が下限値に達していない場合、クライアント群Ｃ３から送信されるフレームが、混雑制御ノードＦ３に片方向リングＲ１２より入力されるフレームよりも優先されるため、混雑制御ノードＦ３に片方向リングＲ１２より入力されるフレームは、混雑制御ノードＦ３の転送バッファに蓄積される。
【０２９８】
混雑制御ノードＦ３において、混雑制御ノードＦ３の転送バッファ利用量が下限値を超えた場合、優先順位が逆転し、混雑制御ノードＦ３に片方向リングＲ１２より入力されるフレームが、クライアント群Ｃ３から送信されてリングＲ１２に流れるフレームよりも優先されるようになる。
【０２９９】
混雑制御ノードＦ３において、混雑制御ノードＦ３への入力が過大である場合には、優先順位逆転による処理が間に合わず、混雑制御ノードＦ３における転送バッファへの蓄積フレーム量が上限値（ここでは８ｋ（bit）とする）を超える。この場合、混雑制御ノードＦ３は片方向リングＲ１２における混雑発生を検知する。
【０３００】
混雑制御ノードＦ３は、クライアント群Ｃ３から入力され片方向リングＲ１２に転送されるフレームの、送信速度及び宛先ノード数（すなわちフロー数）を測定する。そして、「送信速度÷フロー数」を許容出力量として、混雑通知を片方向リングＲ１１を用いて混雑制御ノードＦ２に送信する。ここでクライアント群Ｃ３から片方向リングＲ１２に転送されるフレーム量が４Ｍ（bit/sec）であったとすると、宛先ノードはＦ１の１箇所だけであるので、４Ｍ（bit/sec）÷１＝４Ｍ（bit/sec）を、許容出力量として送信する。
【０３０１】
混雑制御ノードＦ３は、片方向リングＲ１２の出力側における混雑を検出している間、許容出力量を周期的にノードＦ２に向けて発信する。
【０３０２】
混雑制御ノードＦ３は、片方向リングＲ１１の出力側では混雑を検知していないため、混雑発生なし（ＮＵＬＬ）という混雑通知を、片方向リングＲ１２を用いて周期的にノードＦ４に向けて発信する。
【０３０３】
混雑制御ノードＦ４は、ＮＵＬＬ情報の入った混雑通知を受信し、その通知を破棄する。ＮＵＬＬ情報の入った混雑通知は、必ず隣接ノードで破棄される。
【０３０４】
混雑制御ノードＦ２は、許容出力量の入った混雑通知を受信し、混雑通知の発信元が自ノードでないことを確認し、また通知内容がＮＵＬＬでないことを確認し、混雑通知を片方向リングＲ１１を用いて隣接ノードである混雑制御ノードＡ１に送信しようとするが、障害のためにこの通知は破棄され、混雑通知の転送が打ち切られる。
【０３０５】
混雑制御ノードＦ２は、混雑通知を片方向リングＲ１１から受信したことから、片方向リングＲ１２で混雑が発生していると推定する。そして、ルーティングテーブルを参照した結果、通知の発信元ノードであるＦ３への経路にＲ１２を利用していることから、自ノードが混雑に関係している可能性があると認識する。
【０３０６】
混雑制御ノードＦ２は、混雑通知の発信元が混雑制御ノードＦ３であることから、リングＲ１２における混雑制御ノードＦ３の出力側で混雑が発生していると推定する。そして、ルーティングテーブルを参照し、リングＲ１２に向けて送信され、混雑制御ノードＦ３へのコスト（ここでは１とする）より大きいコストが設定されているノード宛のフレームが、混雑リンクを通過するものと推定する。
【０３０７】
混雑制御ノードＦ２のルーティングテーブルに設定されている、混雑制御ノードＦ１への経路がリングＲ１２、コストが３であり、また、混雑制御ノードＦ４への経路がリングＲ１２、コストが２であったとすると、混雑制御ノードＦ２は、混雑制御ノードＦ１及びＦ４宛のフレームが、混雑リンクを通過するものと推定する。
【０３０８】
混雑制御ノードＦ２において、混雑制御ノードＦ１へ流れるフロー数は１であることから、重み係数は１になる。その結果、ノードＦ１宛の送信バッファの出力を、混雑通知で通知された許容出力量である４Ｍ（bit/sec）になるよう制限する。
【０３０９】
混雑制御ノードＦ２において、クライアント群Ｃ２からクライアント群Ｃ１に向けて送信されるフレームは、すべて混雑制御ノードＦ１宛の送信キューを通過するので、このキューの出力が４Ｍ（bit/sec）に制限されることにより、クライアント群Ｃ２がクライアント群Ｃ１に向けて送信するフレームは、混雑制御ノードＦ３に４Ｍ（bit/sec）の速度で入力されるようになる。
【０３１０】
混雑制御ノードＦ３は、片方向リングＲ１２より入力されるフレームの速度が４Ｍ（bit/sec）に減少したため、クライアント群Ｃ３から入力されるフレームを、６Ｍ（bit/sec）の速度で片方向リングＲ１２に向けて送信することができるようになる。
【０３１１】
混雑制御ノードＦ３では、片方向リングＲ１２より入力されるフレームの速度が４Ｍ（bit/sec）に減少したため、混雑制御ノードＦ３内の転送バッファの使用量が低下していく。そして転送バッファ使用量が閾値以下になると、混雑制御ノードＦ３は片方向リングＲ１２の出力側における混雑検出を解除する。
【０３１２】
すべてのノードは、許容出力量が指定された混雑通知を受信しない場合、周期的にバッファ出力量の制限を緩和させていく。混雑制御ノードＦ２は、４Ｍ（bit/sec）に制限されていた混雑制御ノードＦ１宛送信キューの出力を、徐々に増加させていく。
【０３１３】
以降、混雑制御ノードＦ２が送信キューの出力を上げていくと、再び混雑制御ノードＦ３で混雑が検知され、上記の動作が繰り返される。クライアント群が送信するフローに変化がなく、障害の状況にも変化がない場合は、混雑を検知する毎に許容出力量は徐々に上がっていき、混雑制御ノードＦ２と混雑制御ノードＦ３の出力量が徐々にリンク帯域を２等分する５Ｍ（bit/sec）に近づく形で収束し、公平な帯域分割が行われる。
【０３１４】
次に、本形態の実施の効果について説明する。
【０３１５】
本実施の形態では、混雑制御ノードにおいて、混雑制御ノードが属するリングに障害が発生し、フレームが迂回経路を通過する場合でも、混雑に関係するキューを推定し、混雑制御を行なうことができる。
【０３１６】
また、第１の実施の形態と同様に、混雑に関係のないフローのフレーム送信量が不当に制限されることがなく、フロー間における利用可能帯域の差がなくなり、フロー間での公平性を保つことが可能な混雑制御を行なうことができる。
【０３１７】
更に、障害の影響によって、これ以上混雑通知を転送しても効果が得られない場合は、混雑通知が障害区間で欠落することにより、不要な通知の転送が行われなくなる。これにより、リンク帯域の余分な混雑通知によるで利用を、減らすことができる。
【０３１８】
次に、本発明の第４の実施の形態について図面を参照して詳細に説明する。
【０３１９】
本発明の第４の実施の形態は、第１の実施の形態において、許容出力量の決定方法を、混雑検出ノードからリングへの送信フレーム量Ｕと混雑検出ノードからリングへの送信フロー数Ｄより求まる、Ｕ／Ｄの大きさによって変更する場合に対応する。
【０３２０】
図１２を参照すると、本発明の第４の実施の形態は、図１に示された第１の実施の形態において、混雑制御ノードＡ１の代わりに混雑制御ノードＢ１、混雑制御ノードＡ２の代わりに混雑制御ノードＢ２、混雑制御ノードＡ３の代わりに混雑制御ノードＢ３、混雑制御ノードＡ４の代わりに混雑制御ノードＢ４を備えている点で異なる。
【０３２１】
混雑制御ノードＢ２〜Ｂ４は混雑制御ノードＢ１と等しい構成を持つ。以降、混雑制御ノードＢ１〜Ｂ４を代表して、混雑制御ノードＢ１のみについて説明するが、混雑制御ノードＢ１についての記述は、特に断りのない限り混雑制御ノードＢ２〜Ｂ４にも同様に適用可能である。
【０３２２】
図１３は、混雑制御ノードＢ１の構成を詳細に示した図である。混雑制御ノードＢ１は、転送方向決定部Ａ１１と、ルーティングテーブルＡ１２と、混雑制御部Ｂ１３と、別の混雑制御部Ｂ１４とを含む。
【０３２３】
混雑制御ノードＢ１４は混雑制御ノードＢ１３と等しい構成を持つ。以降、混雑制御ノードＢ１３〜Ｂ１４を代表して、混雑制御ノードＢ１３のみについて説明するが、混雑制御ノードＢ１３についての記述は、特に断りのない限り混雑制御ノードＢ１４にも同様に適用可能である。
【０３２４】
図１４は、混雑制御部Ｂ１３の構成を詳細に示した図である。混雑制御部Ｂ１３は、図３の第１の実施の形態における、転送バッファ部Ａ１３２が転送バッファ部Ｂ１３１に、混雑通知送受信部Ａ１３７が混雑通知送信部Ｂ１３３に、それぞれ変更され、更に、転送出力測定部Ｂ１３２と、通知Ｍ３０１が追加されている点で異なる。
【０３２５】
転送バッファ部Ｂ１３１は、以下に挙げる３つの機能を有する。
【０３２６】
（１）受信決定部Ａ１３１よりリンクＬ１０７を通じて入力されたフレームを、片方向リンクＬ１０２に送出できるタイミングまで格納しておき、送出可能タイミングにリンクＬ１０８を通じて出力ミキサ部Ａ１３３に向けてフレームを転送する。
【０３２７】
（２）バッファ使用量測定部Ａ１３８からの通知Ｍ１０１による要求により、転送バッファ部Ｂ１３１に存在するフレームの数、ビット数、バイト数等を、バッファ使用量測定部Ａ１３８に通知Ｍ１０１を用いて通知する。
【０３２８】
（３）転送出力測定部Ｂ１３２からの通知Ｍ３０１を通じた要求により、転送バッファ部Ｂ１３１から出力ミキサ部Ａ１３３に転送されるフレームの数、ビット数、バイト数、フレームを１つ以上蓄積している送信キューの数等を、転送出力測定部Ｂ１３２に通知Ｍ３０１を用いて通知する。
【０３２９】
転送出力測定部Ｂ１３２は、転送バッファ部Ｂ１３１より出力され出力ミキサ部Ａ１３３に転送されるフレームの、フレーム個数、ビット数、バイト数、フレームを１つ以上蓄積している送信キューの数等を、転送出力測定部Ｂ１３２に通知するように、周期的に転送バッファ部Ｂ１３１に対して要求し、通知された値を次の通知まで記憶しておく。
【０３３０】
混雑通知送信部Ｂ１３３は、バッファ使用量測定部Ａ１３８から取得した混雑発生検知結果と、出力測定部Ａ１３６から取得した送信フレーム量と、転送出力測定部Ｂ１３２から取得した転送フレーム量等を用いて混雑通知フレームを作成し、転送方向決定部Ａ１１を経由して、この混雑通知フレームを片方向リングＲ１２を用いて片方向リングＲ１１の上流に位置する混雑制御ノードに向けて送信する。
【０３３１】
通知Ｍ３０１は、転送バッファ部Ｂ１３１と転送出力測定部Ｂ１３２との間での、双方向の通知である。
【０３３２】
図１５を参照して、本実施の形態において、混雑通知送信部Ｂ１３３において混雑制御機能が有効になっている場合の、混雑通知送信部Ｂ１３３における動作について詳細に説明する。
【０３３３】
第１の実施の形態における図７との相違点は、状況によって混雑通知に含める制御命令（混雑制御命令）を変化させる点である。
【０３３４】
混雑通知送信部Ｂ１３３は、定期的にバッファ使用量測定部Ａ１３８に対して、転送バッファＢ１３１内の混雑発生の有無を確認させる（ステップ３０１）。
【０３３５】
混雑通知送信部Ｂ１３３は、バッファ使用量測定部Ａ１３８より混雑発生有無の通知を受け、混雑発生の場合はステップ３０３へ、混雑発生なしの場合は、ステップ３０７に処理を移す（ステップ３０２）。
【０３３６】
混雑通知送信部Ｂ１３３は、出力測定部Ａ１３６に対して、送信バッファ部Ａ１３５から出力ミキサ部Ａ１３３に転送されるフレーム量Ｕ、及び宛先混雑制御ノード数Ｄの通知を要求する。１つの宛先ノードへの平均送信フレーム量は、Ｕ及びＤを用い、Ｕ／Ｄであらわすことができる（ステップ３０３）。
【０３３７】
混雑通知送信部Ｂ１３３は、Ｕ／Ｄの値や、バッファ使用量測定部Ａ１３８から取得した混雑発生検知結果や、転送出力測定部Ｂ１３２から取得した転送フレーム量等を用いて、適切な制御命令を選択する（ステップ３０４）
混雑通知送信部Ｂ１３３は、混雑制御ノードＢ１よりリングＲ１１に出力されるフレーム量が十分大きい場合などに、第１の実施の形態と同様に、混雑リンクを流れる各フローにおいて許容される最大のフレーム出力量が、オードＢ１のフロー１本あたりの平均送信フレーム量以下となるよう、送出量を制限させる制御命令を作成する（ステップ３０５）。
【０３３８】
混雑通知送信部Ｂ１３３は、Ｕ／Ｄがしきい値以下である場合などに、混雑制御ノードＢ１よりリングＲ１１に出力されるフレーム量が不十分なため、最大のフレーム出力量（許容出力量）を、現在の出力量よりある割合で削減させる制御命令を作成する（ステップ３０６）。
【０３３９】
混雑通知送信部Ｂ１３３は、フローを、ある比や、平均値、規定値、などに制限させる制御命令を作成する（ステップ３０７）。
【０３４０】
混雑通知送信部Ｂ１３３は、ステップ３０２で、転送バッファ内のデータ量が閾値以下であった場合は、混雑は発生していないとみなし、ＮＵＬＬ命令を作成する。ＮＵＬＬ命令を受信したノードは、その命令を受信しても特に動作は行なわない（ステップ３０８）。
【０３４１】
混雑通知送信部Ｂ１３３は、ステップ３０５〜３０８で決定した制御命令を含む混雑通知を、片方向リングＲ１１とは逆方向の片方向リングＲ１２を用いて送信する。この混雑通知には、ステップ３０５〜３０８で決定した制御命令のほか、混雑通知発信者のノードＩＤも含まれる（ステップ３０９）。
【０３４２】
次に、本実施の形態における混雑通知受信時の混雑制御部Ａ１３４における動作について詳細に説明する。
【０３４３】
本実施の形態における混雑通知受信時の混雑制御部Ａ１３４における動作は、第１の実施の形態における同部Ａ１３４の動作とほぼ等しいことから、図８を参照して説明する。第１の実施の形態との相違点は、ステップ２０６において、混雑通知で届いた許容出力量以下になるように制限を行うのだけでなく、混雑通知として送られてきた制御命令の内容により、混雑に影響するフローを、一律にある割合で制限する場合などが存在する点である。
【０３４４】
混雑通知受信転送部Ａ１３４において、混雑制御機能が有効になっている場合、混雑通知受信転送部Ａ１３４は常に転送方向決定部Ａ１１より到着する混雑通知を待ち受けている。混雑通知を受信すると、図８の順序で処理が行われる。
【０３４５】
混雑通知受信転送部Ａ１３４は、ステップ２０１で混雑通知の発信元が自ノードである場合は、処理を終了する。
【０３４６】
混雑通知受信転送部Ａ１３４は、ステップ２０１で混雑通知の発信元が他ノードである場合は、ステップ２０２に移り許容出力量を調べる。
【０３４７】
混雑通知受信転送部Ａ１３４は、許容出力量がＮＵＬＬ値である場合は、処理を終了する（ステップ２０２）。
【０３４８】
混雑通知受信転送部Ａ１３４は、ステップ２０２において許容出力量がＮＵＬＬ値以外である場合は、片方向リングＲ１２を用い、受信した混雑通知をそのまま片方向リンクＲ１１の入力側にある隣接混雑制御ノード宛に転送する（ステップ２０３）。
【０３４９】
通知の発信元ノードＩＤ及び通知を転送した隣接ノードのＩＤから混雑区間を特定し、ルーティングテーブルＡ１２を用いて混雑区間を通過するフローを推定する（ステップ２０４）。
【０３５０】
混雑通知受信転送部Ａ１３４は、混雑通知が出力量ではなく割合によって通知された場合は、現在の制限出力量Ｓに、通知された割合Ｗを乗じて、Ｓ×Ｗを許容出力量Ｕとみなす。制御対象とするキューが複数のフローによって利用されているときは、そのキューのみにおいて、Ｕ／Ｄをフロー数Ｆで乗じたＵ／Ｄ×Ｆの値を許容出力量とする（ステップ２０５）。
【０３５１】
混雑通知受信転送部Ａ１３４は、ステップ２０６で、許容出力量が現在の制限出力量よりも大きい場合は、処理を終了する。
【０３５２】
混雑通知受信転送部Ａ１３４は、ステップ２０６で、許容出力量が現在の制限出力量よりも小さい場合は、送信バッファ部Ａ１３５の出力調整部３５３に対して、おのおのの制限対象のキューについて、出力フレーム量をステップ２０５で決定した許容出力量に制限するよう設定する（ステップ２０７）。
【０３５３】
混雑通知受信転送部Ａ１３４は、送信バッファ部Ａ１３５に対して、送信キューの分類方法を問い合わせ、送信キューが制御・非制御の２分類にされていた場合以外は、処理を終了させる。
【０３５４】
混雑通知受信転送部Ａ１３４は、送信バッファ部Ａ１３５に対して、送信キューの分類方法を問い合わせ、送信キューが制御・非制御の２分類にされていた場合は、送信バッファ部Ａ１３５に対して、制限対象フローを制限対象キューに収容するよう命令を出す。
【０３５５】
なお、すべてのキューの制限出力量は、最大制限出力量に達するまで定期的に増加していく。送信キューが制限・非制限の２つに分けられていた場合は、制限キューに入ったフローは一定時間後に非制限キューに移る。
【０３５６】
図１２を参照して、本実施の形態において、宛先混雑制御ノード毎に送信キューを設置した場合、かつ、混雑制御ノードに接続されたクライアント群からの送信フローが小さい場合の混雑制御動作について、具体例を用いて詳細に説明する。
【０３５７】
図１２において、クライアント群Ｃ１と混雑制御ノードＢ１、クライアント群Ｃ２と混雑制御ノードＢ２、クライアント群Ｃ３と混雑制御ノードＢ３、クライアント群Ｃ４と混雑制御ノードＢ４を結ぶ各リンクの速度を１００Ｍ（bit/sec）とし、片方向リングＲ１１及び片方向リングＲ１２の速度を１０Ｍ（bit/sec）とする。
【０３５８】
まず、クライアント群Ｃ３に属するクライアントが、９．５Ｍ（bit/sec）の速度で、クライアント群Ｃ１に属するクライアントに向けて、片方向リングＲ１１を経由してフレームを送信する。この状態では、フレーム送信速度が片方向リングＲ１１の帯域幅を下回っているので、混雑は発生しない。
【０３５９】
混雑制御ノードＢ３において、クライアント群Ｃ３からクライアント群Ｃ１に向けて送信されるフレームは、すべて混雑制御ノードＢ１宛の送信バッファを通過する。
【０３６０】
次に、クライアント群Ｃ２に属するクライアントが、１Ｍ（bit/sec）の速度で、クライアント群Ｃ１に属するクライアントに向けて、片方向リングＲ１１を経由してフレームを送信する。
【０３６１】
混雑制御ノードＢ２において、片方向リングＲ１１を流れるパケットが利用する転送バッファの使用量が下限値（ここでは５ｋ（bit）とする）を超えない限り、クライアント群Ｃ２から入力され片方向リングＲ１１に出力されるフレームは、片方向リンクＲ１１より入力されるフレームよりも、優先的に片方向リングＲ１１に向けて送信される。
【０３６２】
混雑制御ノードＢ２において、クライアント群Ｃ２からクライアント群Ｃ１に向けて送信されるフレームは、すべて混雑制御ノードＢ１宛の送信バッファを通過する。
【０３６３】
片方向リングＲ１１には、既にクライアント群Ｃ３より送信されるフレームが流れているため、混雑制御ノードＢ２における片方向リングＲ１１への出力フレーム量が、片方向リングＲ１１の帯域幅を上回り、混雑制御ノードＢ２における片方向リングＲ１１への出力側で混雑が発生する。
【０３６４】
混雑制御ノードＢ２において、混雑制御ノードＢ２の転送バッファ利用量が下限値に達していない場合、クライアント群Ｃ２から送信されるフレームが、混雑制御ノードＢ２に片方向リングＲ１１より入力されるフレームよりも優先されるため、混雑制御ノードＢ２に片方向リングＲ１１より入力されるフレームは、混雑制御ノードＢ２の転送バッファに蓄積される。
【０３６５】
混雑制御ノードＢ２において、混雑制御ノードＢ２の転送バッファ利用量が下限値を超えた場合、優先順位が逆転し、混雑制御ノードＢ２に片方向リングＲ１１より入力されるフレームが、クライアント群Ｃ２から送信されてリングＲ１１に流れるフレームよりも優先されるようになる。
【０３６６】
混雑制御ノードＢ２において、混雑制御ノードＢ２への入力が過大である場合には、優先順位逆転による処理が間に合わず、混雑制御ノードＢ２における転送バッファへの蓄積フレーム量が上限値（ここでは８ｋ（bit）とする）を超える。この場合、混雑制御ノードＢ２は片方向リングＲ１１における混雑発生を検知する。
【０３６７】
混雑制御ノードＢ２は、クライアント群Ｃ２から入力され片方向リングＲ１１に転送されるフレームの、送信速度及び宛先ノード数（すなわちフロー数）を測定する。そして、「送信速度÷フロー数」を許容出力量として、混雑通知を片方向リングＲ１２を用いて混雑制御ノードＢ３に送信する。ここでクライアント群Ｃ２から片方向リングＲ１１に転送されるフレーム量が０．８Ｍ（bit/sec）であり、これはしきい値（ここでは１Ｍ（bit/sec）とする）を下回っているので、送信する情報は許容する出力量ではなく、出力の削減割合で行われる。削減割合は転送出力測定部Ｂ１３２から得た、転送バッファ部Ｂ１３１から出力ミキサ部Ａ１３３へ流れるフレーム速度より決定され、この場合は０．９であったとする。これを、許容出力割合として混雑通知で送信する。
【０３６８】
混雑制御ノードＢ２は、片方向リングＲ１１の出力側における混雑を検出している間、許容出力量を周期的にノードＢ３に向けて発信する。
【０３６９】
混雑制御ノードＢ２は、片方向リングＲ１２の出力側では混雑を検知していないため、混雑発生なし（ＮＵＬＬ）という混雑通知を、片方向リングＲ１１を用いて周期的にノードＢ１に向けて発信する。
【０３７０】
混雑制御ノードＢ１は、ＮＵＬＬ情報の入った混雑通知を受信し、その通知を破棄する。
【０３７１】
混雑制御ノードＢ３は、許容出力割合の入った混雑通知を受信し、混雑通知の発信元が自ノードでないことを確認し、また通知内容がＮＵＬＬでないことを確認し、混雑通知を片方向リングＲ１２を用いて混雑制御ノードＢ４に送信する。
【０３７２】
混雑制御ノードＢ３を出発した混雑通知は、混雑制御ノードＢ４・混雑制御ノードＢ１で受信・転送され、片方向リングＲ１２を１周して混雑制御ノードＢ２に戻る。混雑制御ノードＢ２は、自ノードが発信した混雑通知を受信すると、その通知を破棄して、混雑通知の転送を打ち切る。
【０３７３】
混雑制御ノードＢ３は、混雑通知を片方向リングＲ１２から受信したこと、並びに混雑通知の発信元が混雑制御ノードＢ２であることから、片方向リングＲ１１における混雑制御ノードＢ２の出力側で混雑が発生していると特定する。このことより、混雑制御ノードＢ１宛のフレームが、混雑リンクを通過するものと推定する。
【０３７４】
混雑制御ノードＢ３において、許容出力割合が０．９であったことから、現在の出力制限量である１０Ｍ（bit/sec）に０．９を乗じ、９Ｍ（bit/sec）を許容出力量とする。混雑制御ノードＢ１へ流れるフロー数は１、混雑制御ノードＢ１へ流れるフロー数も１であることから、重み係数は１になる。その結果、ノードＢ１宛の送信バッファの出力を、許容出力量である９Ｍ（bit/sec）になるよう制限する。
【０３７５】
混雑制御ノードＢ３において、クライアント群Ｃ３からクライアント群Ｃ１に向けて送信されるフレームは、すべて混雑制御ノードＢ１宛の送信キューを通過するので、このキューの出力が９Ｍ（bit/sec）に制限されることにより、クライアント群Ｃ３がクライアント群Ｃ１に向けて送信するフレームは、混雑制御ノードＢ２に９Ｍ（bit/sec）の速度で入力されるようになる。
【０３７６】
混雑制御ノードＢ２は、片方向リングＲ１１より入力されるフレームの速度が９Ｍ（bit/sec）に減少したため、クライアント群Ｃ２から入力されるフレームを、１Ｍ（bit/sec）の速度で片方向リングＲ１１に向けて送信することができるようになる。
【０３７７】
混雑制御ノードＢ２では、片方向リングＲ１１より入力されるフレームの速度が９Ｍ（bit/sec）に減少したため、混雑制御ノードＢ２内の転送バッファの使用量が低下していく。そして転送バッファ使用量が閾値以下になると、混雑制御ノードＢ２は片方向リングＲ１１の出力側における混雑検出を解除する。
【０３７８】
すべてのノードは、許容出力量が指定された混雑通知を受信しない場合、周期的にバッファ出力量の制限を緩和させていく。混雑制御ノードＢ３は、９Ｍ（bit/sec）に制限されていた混雑制御ノードＢ１宛送信キューの出力を、徐々に増加させていく。
【０３７９】
以降、混雑が検知される度に、上記の処理が繰り返されていくが、使用帯域はＢ３からの出力が９Ｍ（bit/sec）、Ｂ２からの出力が１Ｍ（bit/sec）になるよう、徐々に収束していく。
【０３８０】
従来技術１では、混雑リンク直前に存在するノードの送信フレーム量をもとにして、混雑発生リンクに対して送信することのできるフレーム量を推定していた。このため、混雑リンク直前ノードの送信フレーム要求がもともと少ない場合、許容出力量が極端に小さくなり、他のノードにおける制限出力量が急激に制限された。
【０３８１】
本実施の形態では、混雑直前ノードにおける送信フレーム量が小さい場合、制限出力量を通知するのではなく、制限割合や平均値、及び規定値等を通知することで、急激な流量制限を避けることが可能になった。
【０３８２】
次に、本発明の第５の実施の形態について、図面を参照して詳細に説明する。
【０３８３】
本発明の第５の実施の形態は、第１の実施の形態において、リング状ネットワークを１つ追加した場合に対応する。
【０３８４】
図１６を参照すると、本発明の第５の実施の形態は、図１に示された第１の実施の形態において、リング状ネットワークＲ１のほかにリング状ネットワークＲ２が追加され、リング状ネットワークＲ１とＲ２が接続ノードＤ１で接続され、クライアント群Ｃ５・Ｃ６が追加されてそれぞれ混雑制御ノードＡ５及び接続ノードＤ１に接続され、混雑制御ノードＡ３・Ａ４・Ａ５がリングＲ２上に存在し、双方向リンクＬ４００及び片方向リンクＬ４０１〜４０８が追加されている点で異なる。
【０３８５】
また、第１の実施の形態では、リング内の宛先ノード数とフロー数が一致していたが、本実施の形態のように複数のリングが接続されている場合は、リング内の宛先ノード数とフロー数は必ずしも一致しなくなる。これは本実施の形態において、最終的な宛先ノードが異なる、リングをまたがるフローを、同一の混雑制御ノードから複数送信した場合に、送信ノードでは、これらのフローの最終的な宛先ノードが異なる場合でも、リング内の宛先ノードはすべて接続ノードＤ１とみなすことができるため、宛先ノード数は１だが、フロー数はそれ以上存在することになるからである。
【０３８６】
リング状ネットワークＲ２は、片方向のリングＲ２１と、片方向リングＲ２１とは逆方向に流れる片方向リングＲ２２を含み、これら総称をリング状ネットワークＲ２と呼ぶ。リング状ネットワークＲ２は、混雑制御ノードＡ３〜Ａ５及び接続ノードＤ１から送出されたフレームを、別の混雑制御ノードＡ３〜Ａ５及び接続ノードＤ１に転送する機能を持つ。
【０３８７】
接続ノードＤ１は、図１における混雑制御ノードＡ１の機能に加え、以下に挙げる６つの機能を有する。
【０３８８】
（１）２つのリング状ネットワークＲ１及びＲ２を収容し、Ｒ１からＲ２、Ｒ２からＲ１など、リング間をまたがるフレームの転送を行なう。
【０３８９】
（２）クライアント群Ｃ６より双方向リンクＬ４００を通じて入力されたフレームを、片方向リンクＬ４０２、Ｌ４０４、Ｌ４０６、Ｌ４０８を通じて、リング状ネットワークＲ１又はＲ２に転送する。
【０３９０】
（３）片方向リンクＬ４０１又はＬ４０３（すなわちリング状ネットワークＲ１）又は片方向リンクＬ４０５又はＬ４０７（すなわちリング状ネットワークＲ２）を流れるフレームを、必要に応じて双方向リンクＬ４００を通じてクライアント群Ｃ６に転送する。
【０３９１】
（４）片方向リンクＬ４０６又はＬ４０８（すなわちリング状ネットワークＲ２）のフレーム混雑を検知して、混雑通知を片方向リンクＬ４０６又はＬ４０８を通じてリングＲ２上に存在する全ノードに向けて送出する。
【０３９２】
（５）片方向リンクＬ４０５又はＬ４０７（すなわちリング状ネットワークＲ２）より混雑通知を受信し、自ノードより片方向リンクＬ４０６又はＬ４０８（すなわちリング状ネットワークＲ２）に送出するフレーム量の調整する。
【０３９３】
（６）片方向リンクＬ４０５又はＬ４０７（リング状ネットワークＲ２）より受信した混雑通知フレームを、片方向リンクＬ４０６又はＬ４０８（すなわちリングＲ２）上に存在する隣接ノードに転送する。
【０３９４】
接続ノードＤ１において、混雑制御は、リング状ネットワークＲ１とリング状ネットワークＲ２について、独立して行われる。
【０３９５】
図１７は、接続ノードＤ１の構成を詳細に示した図である。接続ノードＤ１は、転送方向決定部Ｄ１１と、ルーティングテーブルＤ１２と、混雑制御部Ａ１３と、別の混雑制御部Ａ１４〜Ａ１６とを含む。
【０３９６】
転送方向決定部Ｄ１１は、クライアント群Ｃ６、混雑制御部Ａ１３、及び混雑制御部Ａ１４〜Ａ１６より入力されたフレームの宛先ノードを判別し、ルーティングテーブルＤ１２の記述に従い、クライアント群Ｃ６、混雑制御部Ａ１３、及び混雑制御部Ａ１４〜Ａ１６に向けて転送する機能を持つ。
【０３９７】
ルーティングテーブルＤ１２は、あて先混雑制御ノード毎に、そのノードまでのコストと送出先片方向リングＩＤを記憶しておく機能を有する。送出先片方向リングＩＤは、Ｒ１１、Ｒ１２、Ｒ２１、Ｒ２２のいずれかである。ルーティングテーブルＤ１２の情報は、転送方向決定部Ｄ１１及び混雑制御部Ａ１３〜Ａ１６において利用される。
【０３９８】
混雑制御部Ａ１３〜Ａ１６は、図２における混雑制御部Ａ１３と同様の機能を有する。
【０３９９】
双方向リンクＬ４００は、クライアント群Ｃ６と接続ノードＤ１を結ぶ、双方向リンクである。
【０４００】
片方向リンクＬ４０１は、混雑制御ノードＡ２から接続ノードＤ１に向かう、短方向のリンクである。このリンクは、短方向リングＲ１１の一部であり、リング状ネットワークＲ１に含まれる。
【０４０１】
片方向リンクＬ４０２は、接続ノードＤ１から混雑制御ノードＡ１に向かう、短方向のリンクである。このリンクは、短方向リングＲ１１の一部であり、リング状ネットワークＲ１に含まれる。
【０４０２】
片方向リンクＬ４０３は、混雑制御ノードＡ１から接続ノードＤ１に向かう、短方向のリンクである。このリンクは、短方向リングＲ１２の一部であり、リング状ネットワークＲ１に含まれる。
【０４０３】
片方向リンクＬ４０４は、接続ノードＤ１から混雑制御ノードＡ２に向かう、短方向のリンクである。このリンクは、短方向リングＲ１２の一部であり、リング状ネットワークＲ１に含まれる。
【０４０４】
片方向リンクＬ４０５は、混雑制御ノードＡ３から接続ノードＤ１に向かう、短方向のリンクである。このリンクは、短方向リングＲ２１の一部であり、リング状ネットワークＲ２に含まれる。
【０４０５】
片方向リンクＬ４０６は、接続ノードＤ１から混雑制御ノードＡ５に向かう、短方向のリンクである。このリンクは、短方向リングＲ２１の一部であり、リング状ネットワークＲ２に含まれる。
【０４０６】
片方向リンクＬ４０７は、混雑制御ノードＡ５から接続ノードＤ１に向かう、短方向のリンクである。このリンクは、短方向リングＲ２２の一部であり、リング状ネットワークＲ２に含まれる。
【０４０７】
片方向リンクＬ４０８は、接続ノードＤ１から混雑制御ノードＡ３に向かう、短方向のリンクである。このリンクは、短方向リングＲ２２の一部であり、リング状ネットワークＲ２に含まれる。
【０４０８】
図１６を参照して、本実施の形態における第１の動作について、具体例を用いて詳細に説明する。
【０４０９】
本実施の形態における第１の動作は、リングをまたがるフローが存在し、かつ、当該ノードが属するリング内の宛先混雑制御ノード毎に送信キューを設けたとき、宛先ノードが属するリングにおいて混雑が発生した場合の混雑制御動作である。
【０４１０】
図１６において、クライアント群Ｃ１と混雑制御ノードＡ１、クライアント群Ｃ２と混雑制御ノードＡ２、クライアント群Ｃ３と混雑制御ノードＡ３、クライアント群Ｃ４と混雑制御ノードＡ４、クライアント群Ｃ５と混雑制御ノードＡ５、クライアント群Ｃ６と接続ノードＤ１を結ぶ各リンクの速度を１００Ｍ（bit/sec）とし、片方向リングＲ１１・Ｒ１２・Ｒ２１・Ｒ２２の速度を１０Ｍ（bit/sec）とする。
【０４１１】
まず、クライアント群Ｃ１に属するクライアントが、４Ｍ（bit/sec）の速度で、クライアント群Ｃ４に属するクライアントに向けて、片方向リングＲ１２、接続ノードＤ１、片方向リングＲ２２を経由してフレームを送信する。この状態では、フレーム送信速度が片方向リングＲ１２及び片方向リングＲ２２の帯域幅を下回っているので、混雑は発生しない。
【０４１２】
混雑制御ノードＡ１において、リング内に存在する宛先混雑制御ノード毎にキューを設置した場合、クライアント群Ｃ１からクライアント群Ｃ４に向けて送信されるフレームは、接続ノードＤ１宛にフレームを送信しているものと同じ扱いとなる。このため、クライアント群Ｃ４宛のフレームは、すべて接続ノードＤ１宛の送信バッファを通過する。
【０４１３】
次に、クライアント群Ｃ２に属するクライアントが、４Ｍ（bit/sec）の速度で、クライアント群Ｃ４に属するクライアントに向けて、片方向リングＲ１１、接続ノードＤ１、片方向リングＲ２２を経由してフレームを送信する。この状態でも、フレーム送信速度が片方向リングＲ１１の帯域幅を下回っており、更に、クライアント群Ｃ１からクライアント群Ｃ４に流れるフローの速度の合計が、片方向リングＲ２２の帯域幅を下回っているので、混雑は発生しない。
【０４１４】
混雑制御ノードＡ２において、リング内に存在する宛先混雑制御ノード毎にキューを設置した場合、クライアント群Ｃ２からクライアント群Ｃ４に向けて送信されるフレームは、接続ノードＤ１宛にフレームを送信しているものと同じ扱いとなる。このため、クライアント群Ｃ４宛のフレームは、すべて接続ノードＤ１宛の送信バッファを通過する。
【０４１５】
次に、クライアント群Ｃ３に属するクライアントが、４Ｍ（bit/sec）の速度で、クライアント群Ｃ４に属するクライアントに向けて、片方向リングＲ２２を経由してフレームを送信する。
【０４１６】
混雑制御ノードＡ３において、リング内に存在する宛先混雑制御ノード毎にキューを設置した場合、クライアント群Ｃ３からクライアント群Ｃ４に向けて送信されるフレームは、すべて混雑制御ノードＣ４宛の送信バッファを通過する。
【０４１７】
混雑制御ノードＡ３において、片方向リングＲ２２を流れるパケットが、利用する転送バッファの使用量が下限値（ここでは５ｋ（bit）とする）を超えない限り、クライアント群Ｃ３から入力され片方向リングＲ２２に出力されるフレームは、片方向リンクＲ２２より入力されるフレームよりも、優先的に片方向リングＲ２２に向けて転送される。
【０４１８】
片方向リングＲ２２には、既にクライアント群Ｃ１及びＣ２より送信されるフレームが流れているため、混雑制御ノードＡ３における片方向リングＲ２２への出力フレーム量が、片方向リングＲ２２の帯域幅を上回り、混雑制御ノードＡ３における片方向リングＲ２２への出力側で混雑が発生する。
【０４１９】
混雑制御ノードＡ３において、混雑制御ノードＡ３の転送バッファ利用量が下限値に達していない場合、クライアント群Ｃ３から送信されるフレームが、混雑制御ノードＡ３に片方向リングＲ２２より入力されるフレームよりも優先されるため、混雑制御ノードＡ３に片方向リングＲ２２より入力されるフレームは、混雑制御ノードＡ３の転送バッファに蓄積される。
【０４２０】
混雑制御ノードＡ３において、混雑制御ノードＡ３の転送バッファ利用量が下限値を超えた場合、優先順位が逆転し、混雑制御ノードＡ３に片方向リングＲ２２より入力されるフレームが、クライアント群Ｃ３から送信されてリングＲ２２に流れるフレームよりも優先されるようになる。
【０４２１】
混雑制御ノードＡ３において、混雑制御ノードＡ３への入力が過大である場合には、優先順位逆転による処理が間に合わず、混雑制御ノードＡ３における転送バッファへの蓄積フレーム量が上限値（ここでは８ｋ（bit）とする）を超える。この場合、混雑制御ノードＡ３は片方向リングＲ２２における混雑発生を検知する。
【０４２２】
混雑制御ノードＡ３は、クライアント群Ｃ３から入力され片方向リングＲ２２に転送されるフレームの、送信速度及び宛先ノード数（すなわちフロー数）を測定する。そして、「送信速度÷フロー数」を許容出力量として、混雑通知を片方向リングＲ２１を用いて接続ノードＤ１に送信する。ここでクライアント群Ｃ３から片方向リングＲ２２に転送されるフレーム量が２Ｍ（bit/sec）であったとすると、宛先ノードはＡ４の１箇所だけであるので、２Ｍ（bit/sec）÷１＝２Ｍ（bit/sec）を、許容出力量として送信する。
【０４２３】
混雑制御ノードＡ３は、片方向リングＲ２２の出力側における混雑を検出している間、許容出力量を周期的に接続ノードＤ１に向けて発信する。
【０４２４】
混雑制御ノードＡ３は、片方向リングＲ２１の出力側では混雑を検知していないため、混雑発生なし（ＮＵＬＬ）という混雑通知を、片方向リングＲ２２を用いて周期的にノードＡ４に向けて発信する。
【０４２５】
混雑制御ノードＡ４は、ＮＵＬＬ情報の入った混雑通知を受信し、その通知を破棄する。
【０４２６】
接続ノードＤ１は、許容出力量の入った混雑通知を受信し、混雑通知の発信元が自ノードでないことを確認し、また通知内容がＮＵＬＬでないことを確認し、混雑通知を片方向リングＲ２１を用いて混雑制御ノードＡ５に送信する。
【０４２７】
接続ノードＤ１を出発した混雑通知は、混雑制御ノードＡ５・Ａ４で受信・転送され、片方向リングＲ２１を１周して混雑制御ノードＡ３に戻る。混雑制御ノードＡ３は、自ノードが発信した混雑通知を受信すると、その通知を破棄して、混雑通知の転送を打ち切る。
【０４２８】
接続ノードＤ１は、混雑通知を片方向リングＲ２１から受信したこと、並びに混雑通知の発信元が混雑制御ノードＡ３であることから、片方向リングＲ２２における混雑制御ノードＡ３の出力側で混雑が発生していると特定する。このことより、混雑制御ノードＡ４宛のフレームが、混雑リンクを通過するものと推定する。
【０４２９】
接続ノードＤ１において、混雑制御ノードＡ４へ流れるフロー数は、混雑制御ノードＡ１より送信されるフローと、混雑制御ノードＡ２より送信されるフローの２本であるので、重み係数は２になる。その結果、ノードＡ１宛の送信バッファの出力を、混雑通知で通知された許容出力量である２Ｍ（bit/sec）×２＝４Ｍ（bit/sec）になるよう制限する。
【０４３０】
接続ノードＤ１において、クライアント群Ｃ４に向けて送信されるフレームは、すべて混雑制御ノードＡ４宛の送信キューを通過するので、このキューの出力が４Ｍ（bit/sec）に制限されることにより、クライアント群Ｃ１及びクライアント群Ｃ２がクライアント群Ｃ４に向けて送信するフレームは、混雑制御ノードＡ３に４Ｍ（bit/sec）の速度で入力されるようになる。
【０４３１】
混雑制御ノードＡ３は、片方向リングＲ２２より入力されるフレームの速度が４Ｍ（bit/sec）に減少したため、クライアント群Ｃ３から入力されるフレームを、４Ｍ（bit/sec）の速度で片方向リングＲ２２に向けて送信することができるようになる。
【０４３２】
混雑制御ノードＡ３では、片方向リングＲ２２より入力されるフレームの速度が４Ｍ（bit/sec）に減少したため、混雑制御ノードＡ３内の転送バッファの使用量が低下していく。そして転送バッファ使用量が閾値以下になると、混雑制御ノードＡ３は片方向リングＲ２２の出力側における混雑検出を解除する。
【０４３３】
すべてのノードは、許容出力量が指定された混雑通知を受信しない場合、周期的にバッファ出力量の制限を緩和させていく。接続ノードＤ１は、４Ｍ（bit/sec）に制限されていた混雑制御ノードＡ４宛送信キューの出力を、徐々に増加させていく。
【０４３４】
以降、混雑が検知される度に、上記の処理が繰り返され、クライアント群の動作に変化がない場合には、各フローの帯域は、混雑リングの帯域を３フローで分割した場合の平均値である約３．３３Ｍ（bit/sec）に収束していく。
【０４３５】
次に図１６を参照して、本実施の形態における第２の動作について、具体例を用いて詳細に説明する。
【０４３６】
本実施の形態における第２の動作は、リングをまたがるフローが存在し、かつ、当該ノードが属するリング内の宛先混雑制御ノード毎に送信キューを設けたとき、クライアント群が送信したフレームをリングに挿入するノード（送信ノードと呼ぶ）が属するリングにおいて混雑が発生した場合の混雑制御動作である。
【０４３７】
本実施の形態における第１の動作とは、混雑発生リングが、クライアント群が送信したフレームをリングに挿入するノード（送信ノードと呼ぶ）が属するリングになっている点で異なる。
【０４３８】
図１６において、クライアント群Ｃ１と混雑制御ノードＡ１、クライアント群Ｃ２と混雑制御ノードＡ２、クライアント群Ｃ３と混雑制御ノードＡ３、クライアント群Ｃ４と混雑制御ノードＡ４、クライアント群Ｃ５と混雑制御ノードＡ５、クライアント群Ｃ６と接続ノードＤ１を結ぶ各リンクの速度を１００Ｍ（bit/sec）とし、片方向リングＲ１１・Ｒ１２・Ｒ２１・Ｒ２２の速度を１０Ｍ（bit/sec）とする。
【０４３９】
まず、クライアント群Ｃ４に属するクライアントが、４Ｍ（bit/sec）の速度で、クライアント群Ｃ１に属するクライアントに向けて、片方向リングＲ２１、接続のノードＤ１、片方向リングＲ１１を経由してフレームを送信する。この状態では、フレーム送信速度が片方向リングＲ２１及び片方向リングＲ１１の帯域幅を下回っているので、混雑は発生しない。
【０４４０】
混雑制御ノードＡ４において、リング内に存在する宛先混雑制御ノード毎にキューを設置した場合、クライアント群Ｃ４からクライアント群Ｃ１に向けて送信されるフレームは、接続ノードＤ１宛にフレームを送信しているものと同じ扱いとなる。このため、クライアント群Ｃ１宛のフレームは、すべて接続ノードＤ１宛の送信バッファを通過する。
【０４４１】
次に、クライアント群Ｃ４に属するクライアントが、４Ｍ（bit/sec）の速度で、クライアント群Ｃ２に属するクライアントに向けて、片方向リングＲ２１、接続ノードＤ１、片方向リングＲ１２を経由してフレームを送信する。この状態でも、フレーム送信速度が片方向リングＲ１２の帯域幅を下回っており、更に、クライアント群Ｃ４からクライアント群Ｃ１に流れるフローの速度との合計が、片方向リングＲ２１の帯域幅を下回っているので、混雑は発生しない。
【０４４２】
混雑制御ノードＡ４において、リング内に存在する宛先混雑制御ノード毎にキューを設置した場合、クライアント群Ｃ４からクライアント群Ｃ２に向けて送信されるフレームは、接続ノードＤ１宛にフレームを送信しているものと同じ扱いとなる。このため、クライアント群Ｃ２宛のフレームは、すべて接続ノードＤ１宛の送信バッファを通過する。
【０４４３】
次に、クライアント群Ｃ３に属するクライアントが、４Ｍ（bit/sec）の速度で、クライアント群Ｃ５に属するクライアントに向けて、片方向リングＲ２１を経由してフレームを送信する。
【０４４４】
混雑制御ノードＡ３において、リング内に存在する宛先混雑制御ノード毎にキューを設置した場合、クライアント群Ｃ３からクライアント群Ｃ５に向けて送信されるフレームは、すべて混雑制御ノードＣ５宛の送信バッファを通過する。
【０４４５】
混雑制御ノードＡ３において、片方向リングＲ２１を流れるパケットが、利用する転送バッファの使用量が下限値（ここでは５ｋ（bit）とする）を超えない限り、クライアント群Ｃ３から入力され片方向リングＲ２１に出力されるフレームは、片方向リンクＲ２１より入力されるフレームよりも、優先的に片方向リングＲ２１に向けて転送される。
【０４４６】
片方向リングＲ２１には、既にクライアント群Ｃ４よりクライアント群Ｃ１及びＣ２へ送信されるフレームが流れているため、混雑制御ノードＡ３における片方向リングＲ２１への出力フレーム量が、片方向リングＲ２１の帯域幅を上回り、混雑制御ノードＡ３における片方向リングＲ２１への出力側で混雑が発生する。
【０４４７】
混雑制御ノードＡ３において、混雑制御ノードＡ３の転送バッファ利用量が下限値に達していない場合、クライアント群Ｃ３から送信されるフレームが、混雑制御ノードＡ３に片方向リングＲ２１より入力されるフレームよりも優先されるため、混雑制御ノードＡ３に片方向リングＲ２１より入力されるフレームは、混雑制御ノードＡ３の転送バッファに蓄積される。
【０４４８】
混雑制御ノードＡ３において、混雑制御ノードＡ３の転送バッファ利用量が下限値を超えた場合、優先順位が逆転し、混雑制御ノードＡ３に片方向リングＲ２１より入力されるフレームが、クライアント群Ｃ３から送信されてリングＲ２１に流れるフレームよりも優先されるようになる。
【０４４９】
混雑制御ノードＡ３において、混雑制御ノードＡ３への入力が過大である場合には、優先順位逆転による処理が間に合わず、混雑制御ノードＡ３における転送バッファへの蓄積フレーム量が上限値（ここでは８ｋ（bit）とする）を超える。この場合、混雑制御ノードＡ３は片方向リングＲ２１における混雑発生を検知する。
【０４５０】
混雑制御ノードＡ３は、クライアント群Ｃ３から入力され片方向リングＲ２１に転送されるフレームの、送信速度及び宛先ノード数（すなわちフロー数）を測定する。そして、「送信速度÷フロー数」を許容出力量として、混雑通知を片方向リングＲ２２を用いて混雑制御ノードＣ４に送信する。ここでクライアント群Ｃ３から片方向リングＲ２１に転送されるフレーム量が２Ｍ（bit/sec）であったとすると、宛先ノードはＡ５の１箇所だけであるので、２Ｍ（bit/sec）÷１＝２Ｍ（bit/sec）を、許容出力量として送信する。
【０４５１】
混雑制御ノードＡ３は、片方向リングＲ２１の出力側における混雑を検出している間、許容出力量を周期的に混雑制御ノードＡ４に向けて発信する。
【０４５２】
混雑制御ノードＡ３は、片方向リングＲ２２の出力側では混雑を検知していないため、混雑発生なし（ＮＵＬＬ）という混雑通知を、片方向リングＲ２１を用いて周期的に接続ノードＤ１に向けて発信する。
【０４５３】
接続ノードＤ１は、ＮＵＬＬ情報の入った混雑通知を受信し、その通知を破棄する。
【０４５４】
混雑制御ノードＡ４は、許容出力量の入った混雑通知を受信し、混雑通知の発信元が自ノードでないことを確認し、また通知内容がＮＵＬＬでないことを確認し、混雑通知を片方向リングＲ２２を用いて混雑制御ノードＡ５に送信する。
【０４５５】
混雑制御ノードＡ４を出発した混雑通知は、混雑制御ノードＡ５・接続ノードＤ１で受信・転送され、片方向リングＲ２２を１周して混雑制御ノードＡ３に戻る。混雑制御ノードＡ３は、自ノードが発信した混雑通知を受信すると、その通知を破棄して、混雑通知の転送を打ち切る。
【０４５６】
混雑制御ノードＡ４は、混雑通知を片方向リングＲ２２から受信したこと、並びに混雑通知の発信元が混雑制御ノードＡ３であることから、片方向リングＲ２１における混雑制御ノードＡ３の出力側で混雑が発生していると特定する。このことより、接続ノードＤ１宛のフレームが、混雑リンクを通過するものと推定する。
【０４５７】
混雑制御ノードＡ４において、接続ノードＤ１へ流れるフロー数は、混雑制御ノードＡ１へ送信されるフローと、混雑制御ノードＡ２へ送信されるフローの２本であるので、重み係数は２になる。その結果、接続ノードＤ１宛の送信バッファの出力を、混雑通知で通知された許容出力量である２Ｍ（bit/sec）×２＝４Ｍ（bit/sec）になるよう制限する。
【０４５８】
混雑制御ノードＡ４において、接続ノードＤ１に向けて送信されるフレームは、すべて接続ノードＤ１宛の送信キューを通過するので、このキューの出力が４Ｍ（bit/sec）に制限されることにより、クライアント群Ｃ１及びクライアント群Ｃ２に向けてクライアント群Ｃ４が送信するフレームは、混雑制御ノードＡ３に合計４Ｍ（bit/sec）の速度で入力されるようになる。
【０４５９】
混雑制御ノードＡ３は、片方向リングＲ２１より入力されるフレームの速度の合計が４Ｍ（bit/sec）に減少したため、クライアント群Ｃ３から入力されるフレームを、４Ｍ（bit/sec）の速度で片方向リングＲ２１に向けて送信することができるようになる。
【０４６０】
混雑制御ノードＡ３では、片方向リングＲ２１より入力されるフレームの速度が４Ｍ（bit/sec）に減少したため、混雑制御ノードＡ３内の転送バッファの使用量が低下していく。そして転送バッファ使用量が閾値以下になると、混雑制御ノードＡ３は片方向リングＲ２１の出力側における混雑検出を解除する。
【０４６１】
すべてのノードは、許容出力量が指定された混雑通知を受信しない場合、周期的にバッファ出力量の制限を緩和させていく。混雑制御ノードＡ４は、４Ｍ（bit/sec）に制限されていた接続ノードＤ１宛送信キューの出力を、徐々に増加させていく。
【０４６２】
以降、混雑が検知される度に、上記の処理が繰り返され、クライアント群の動作に変化がない場合には、各フローの帯域は、混雑リングの帯域を３フローで分割した場合の平均値である約３．３３Ｍ（bit/sec）に収束していく。
【０４６３】
次に図１６を参照して、本実施の形態における第３の動作について、具体例を用いて詳細に説明する。
【０４６４】
本実施の形態における第３の動作とは、リングをまたがるフローが存在する場合、かつ、全リングに存在する宛先混雑制御ノード毎にキューを設けた場合の混雑制御動作である。
【０４６５】
本実施の形態における第２の動作とは、送信キューを、リング内に存在する宛先混雑制御ノード毎ではなく、全リングに存在する宛先混雑制御ノード毎に設置している点で異なる。本動作では、単一のリングしか存在しない場合と同様に、１つのフローと１つのキューが、１対１で対応付けできる。
【０４６６】
図１６において、クライアント群Ｃ１と混雑制御ノードＡ１、クライアント群Ｃ２と混雑制御ノードＡ２、クライアント群Ｃ３と混雑制御ノードＡ３、クライアント群Ｃ４と混雑制御ノードＡ４、クライアント群Ｃ５と混雑制御ノードＡ５、クライアント群Ｃ６と接続ノードＤ１を結ぶ各リンクの速度を１００Ｍ（bit/sec）とし、片方向リングＲ１１・Ｒ１２・Ｒ２１・Ｒ２２の速度を１０Ｍ（bit/sec）とする。
【０４６７】
まず、クライアント群Ｃ４に属するクライアントが、４Ｍ（bit/sec）の速度で、クライアント群Ｃ１に属するクライアントに向けて、片方向リングＲ２１、接続のノードＤ１、片方向リングＲ１１を経由してフレームを送信する。この状態では、フレーム送信速度が片方向リングＲ２１及び片方向リングＲ１１の帯域幅を下回っているので、混雑は発生しない。
【０４６８】
混雑制御ノードＡ４において、全リングに存在する宛先混雑制御ノード毎にキューを設けた場合、クライアント群Ｃ４からクライアント群Ｃ１に向けて送信されるフレームは、すべて混雑制御ノードＡ１宛の送信バッファを通過する。
【０４６９】
次に、クライアント群Ｃ４に属するクライアントが、４Ｍ（bit/sec）の速度で、クライアント群Ｃ２に属するクライアントに向けて、片方向リングＲ２１、接続ノードＤ１、片方向リングＲ１２を経由してフレームを送信する。この状態でも、フレーム送信速度が片方向リングＲ１２の帯域幅を下回っており、更に、クライアント群Ｃ４からクライアント群Ｃ１に流れるフローの速度との合計が、片方向リングＲ２１の帯域幅を下回っているので、混雑は発生しない。
【０４７０】
混雑制御ノードＡ４において、全リングに存在する宛先混雑制御ノード毎にキューを設けた場合、クライアント群Ｃ４からクライアント群Ｃ２に向けて送信されるフレームは、すべて混雑制御Ａ２宛の送信バッファを通過する。
【０４７１】
次に、クライアント群Ｃ３に属するクライアントが、４Ｍ（bit/sec）の速度で、クライアント群Ｃ５に属するクライアントに向けて、片方向リングＲ２１を経由してフレームを送信する。
【０４７２】
混雑制御ノードＡ３において、全リングに存在する宛先混雑制御ノード毎にキューを設けた場合、クライアント群Ｃ３からクライアント群Ｃ５に向けて送信されるフレームは、すべて混雑制御ノードＣ５宛の送信バッファを通過する。
【０４７３】
混雑制御ノードＡ３において、片方向リングＲ２１を流れるパケットが、利用する転送バッファの使用量が下限値（ここでは５ｋ（bit）とする）を超えない限り、クライアント群Ｃ３から入力され片方向リングＲ２１に出力されるフレームは、片方向リンクＲ２１より入力されるフレームよりも、優先的に片方向リングＲ２１に向けて転送される。
【０４７４】
片方向リングＲ２１には、既にクライアント群Ｃ４よりクライアント群Ｃ１及びＣ２へ送信されるフレームが流れているため、混雑制御ノードＡ３における片方向リングＲ２１への出力フレーム量が、片方向リングＲ２１の帯域幅を上回り、混雑制御ノードＡ３における片方向リングＲ２１への出力側で混雑が発生する。
【０４７５】
混雑制御ノードＡ３において、混雑制御ノードＡ３の転送バッファ利用量が下限値に達していない場合、クライアント群Ｃ３から送信されるフレームが、混雑制御ノードＡ３に片方向リングＲ２１より入力されるフレームよりも優先されるため、混雑制御ノードＡ３に片方向リングＲ２１より入力されるフレームは、混雑制御ノードＡ３の転送バッファに蓄積される。
【０４７６】
混雑制御ノードＡ３において、混雑制御ノードＡ３の転送バッファ利用量が下限値を超えた場合、優先順位が逆転し、混雑制御ノードＡ３に片方向リングＲ２１より入力されるフレームが、クライアント群Ｃ３から送信されてリングＲ２１に流れるフレームよりも優先されるようになる。
【０４７７】
混雑制御ノードＡ３において、混雑制御ノードＡ３への入力が過大である場合には、優先順位逆転による処理が間に合わず、混雑制御ノードＡ３における転送バッファへの蓄積フレーム量が上限値（ここでは８ｋ（bit）とする）を超える。この場合、混雑制御ノードＡ３は片方向リングＲ２１における混雑発生を検知する。
【０４７８】
混雑制御ノードＡ３は、クライアント群Ｃ３から入力され片方向リングＲ２１に転送されるフレームの、送信速度及び宛先ノード数（すなわちフロー数）を測定する。そして、「送信速度÷フロー数」を許容出力量として、混雑通知を片方向リングＲ２２を用いて混雑制御ノードＣ４に送信する。ここでクライアント群Ｃ３から片方向リングＲ２１に転送されるフレーム量が２Ｍ（bit/sec）であったとすると、宛先ノードはＡ５の１箇所だけであるので、２Ｍ（bit/sec）÷１＝２Ｍ（bit/sec）を、許容出力量として送信する。
【０４７９】
混雑制御ノードＡ３は、片方向リングＲ２１の出力側における混雑を検出している間、許容出力量を周期的に混雑制御ノードＡ４に向けて発信する。
【０４８０】
混雑制御ノードＡ３は、片方向リングＲ２２の出力側では混雑を検知していないため、混雑発生なし（ＮＵＬＬ）という混雑通知を、片方向リングＲ２１を用いて周期的に接続ノードＤ１に向けて発信する。
【０４８１】
接続ノードＤ１は、ＮＵＬＬ情報の入った混雑通知を受信し、その通知を破棄する。
【０４８２】
混雑制御ノードＡ４は、許容出力量の入った混雑通知を受信し、混雑通知の発信元が自ノードでないことを確認し、また通知内容がＮＵＬＬでないことを確認し、混雑通知を片方向リングＲ２２を用いて混雑制御ノードＡ５に送信する。
【０４８３】
混雑制御ノードＡ４を出発した混雑通知は、混雑制御ノードＡ５・接続ノードＤ１で受信・転送され、片方向リングＲ２２を１周して混雑制御ノードＡ３に戻る。混雑制御ノードＡ３は、自ノードが発信した混雑通知を受信すると、その通知を破棄して、混雑通知の転送を打ち切る。
【０４８４】
混雑制御ノードＡ４は、混雑通知を片方向リングＲ２２から受信したこと、並びに混雑通知の発信元が混雑制御ノードＡ３であることから、片方向リングＲ２１における混雑制御ノードＡ３の出力側で混雑が発生していると特定する。このことより、接続ノードＤ１及び、Ｄ１から先のリング宛のフレームが、混雑リンクを通過するものと推定する。
【０４８５】
混雑制御ノードＡ４において、混雑制御ノードＡ１宛の送信キューへ流れるフロー数は、混雑制御ノードＡ１へ送信されるフローのみであるので、重み係数は１になる。その結果、接続ノードＤ１宛の送信バッファの出力を、混雑通知で通知された許容出力量である２Ｍ（bit/sec）×１＝２Ｍ（bit/sec）になるよう制限する。
【０４８６】
混雑制御ノードＡ４において、混雑制御ノードＡ２宛の送信キューへ流れるフロー数は、混雑制御ノードＡ２へ送信されるフローのみであるので、重み係数は１になる。その結果、接続ノードＤ１宛の送信バッファの出力を、混雑通知で通知された許容出力量である２Ｍ（bit/sec）×１＝２Ｍ（bit/sec）になるよう制限する。
【０４８７】
混雑制御ノードＡ４において、混雑制御ノードＡ１及びＡ２に向けて送信されるフレームは、すべてそれぞれの混雑制御ノード宛の送信キューを通過するので、これらキューの出力が２Ｍ（bit/sec）に制限されることにより、クライアント群Ｃ１及びクライアント群Ｃ２に向けてクライアント群Ｃ４が送信するフレームは、混雑制御ノードＡ３にそれぞれ２Ｍ（bit/sec）の速度で入力されるようになる。
【０４８８】
混雑制御ノードＡ３は、片方向リングＲ２１より入力されるフレームの速度の合計が４Ｍ（bit/sec）に減少したため、クライアント群Ｃ３から入力されるフレームを、４Ｍ（bit/sec）の速度で片方向リングＲ２１に向けて送信することができるようになる。
【０４８９】
混雑制御ノードＡ３では、片方向リングＲ２１より入力されるフレームの速度が４Ｍ（bit/sec）に減少したため、混雑制御ノードＡ３内の転送バッファの使用量が低下していく。そして転送バッファ使用量が閾値以下になると、混雑制御ノードＡ３は片方向リングＲ２１の出力側における混雑検出を解除する。
【０４９０】
すべてのノードは、許容出力量が指定された混雑通知を受信しない場合、周期的にバッファ出力量の制限を緩和させていく。混雑制御ノードＡ４は、２Ｍ（bit/sec）に制限されていた混雑制御ノードＡ１宛送信キューと、混雑制御ノードＡ２宛送信キューの出力を、徐々に増加させていく。
【０４９１】
以降、混雑が検知される度に、上記の処理が繰り返され、クライアント群の動作に変化がない場合には、各フローの帯域は、混雑リングの帯域を３フローで分割した場合の平均値である約３．３３Ｍ（bit/sec）に収束していく。
【０４９２】
次に、本形態の実施の効果について説明する。
【０４９３】
本実施の形態では、混雑制御ノードＡ１において予め、そのノードが属するリング上の宛先ノード毎に区分された送信キューを備え、混雑通知を受信した場合は混雑に関係するキューを推定し、混雑に関係するキューの出力のみを制限の対象にする。これにより、リングをまたがるフローが存在する場合においても、混雑に関係のないフローのフレーム送信量が不当に制限されることがなくなり、リンク帯域の有効利用が可能になった。
【０４９４】
本実施の形態では更に、混雑制御ノードＡ１において予め、全リング上に存在する宛先ノード毎に区分された送信キューを備え、混雑通知を受信した場合は混雑に関係するキューを推定し、混雑に関係するキューの出力のみを制限の対象にした。これにより、リングをまたがるフローが存在する場合においても、混雑に関係のないフローのフレーム送信量が不当に制限されることがなくなり、リンク帯域の有効利用が可能になった。
【０４９５】
また、全リング上に存在する宛先ノード毎に送信キューを区分した場合、利用可能帯域を宛先ノード毎に設定できるため、フロー間における利用可能帯域の差がなくなり、フロー間での公平性を保つことが可能になった。
【０４９６】
次に、本発明の第６の実施の形態について、図面を参照して詳細に説明する。
【０４９７】
本発明の第６の実施の形態は、第５の実施の形態において、接続ノードにおける混雑制御を収容するリング状ネットワーク毎独立して行なうのではなく、あるリングの混雑状況を、別のリングにも伝達できる場合に対応する。
【０４９８】
ある任意のリングで発生した混雑を、他の任意のリングに伝達することを、リングをまたぐ混雑通知と呼ぶ。
【０４９９】
図１８を参照すると、本発明の第６の実施の形態は、図１６に示された第５の実施の形態に対して、接続ノードＤ１が接続ノードＥ１になっている点で異なる。
【０５００】
接続ノードＥ１は、図１６における接続ノードＤ１の機能のほか、各片方向リングに向かう送信キュー混雑を検知し、混雑通知を、混雑を検知したリング状ネットワークとは別のリング状ネットワークに存在する混雑制御ノードに向けて送信する。
【０５０１】
接続ノードＥ１において、混雑通知はリング状ネットワークＲ１とリング状ネットワークＲ２について独立して行われるが、混雑通知の到着により送信キューからの出力量が制限されて混雑が発生すると、混雑が発生したキューが属するネットワークとは別のリング状ネットワークに対して、混雑通知が送信される。
【０５０２】
図１９は、接続ノードＥ１の構成を詳細に示した図である。接続ノードＥ１は、転送方向決定部Ｄ１１と、ルーティングテーブルＤ１２と、混雑制御部Ｅ１３〜Ｅ１６とを含む。
【０５０３】
混雑制御部Ｅ１４〜Ｅ１６は、混雑制御部Ｅ１３と同様の機能を有する。今後は混雑制御部Ｅ１３〜Ｅ１６を代表し、混雑制御部Ｅ１３を用いて記述を行なうが、混雑制御部Ｅ１３についての記述は、特に断りのない限り混雑制御部Ｅ１４〜Ｅ１６にも同様に適用可能である。
【０５０４】
図２０は、混雑制御部Ｅ１３の構成を詳細に示した図である。
【０５０５】
図２０を参照すると、本発明の第６の実施の形態は、図３に示された第５の実施の形態に対して、送信バッファ部Ａ１３５が送信バッファ部Ｅ１３５になり、混雑通知送信部Ａ１３７が混雑通知送信部Ｅ１３７になり、更に、送信バッファ使用量測定部Ｅ１３９が追加されている点で異なる。
【０５０６】
送信バッファ部Ｅ１３５は、図３に示された第１の実施の形態における送信バッファ部Ａ１３５の機能のほか、送信バッファ使用量測定部Ｅ１３９からの要求により、送信バッファ部Ｅ１３５に存在するフレームの数、ビット数、バイト数等を、送信バッファ使用量測定部Ｅ１３９に通知する。
【０５０７】
混雑通知送信部Ｅ１３７は、図３に示された第１の実施の形態における送信バッファ部Ａ１３７の機能のほか、送信バッファ使用量測定部Ｅ１３９から受けた混雑発生検知結果と、出力測定部Ａ１３６で測定した送信フレーム量等を用いて混雑通知フレームを作成し、転送方向決定部Ａ１１を経由して、この混雑通知フレームを片方向リングＲ２１及び片方向リングＲ２２を用いて、リング状ネットワークＲ２に位置する混雑制御ノードに向けて送信する。
【０５０８】
混雑通知送信部Ｅ１３７において、混雑通知フレームは混雑要因となるホストが存在する方向すべてに向けて送信する。Ｒ２１及びＲ２２の両方から、混雑要因となるフローが流入する場合には、双方に通知を送信する。これら通知はＲ２１もしくはＲ２２を１周するが、本発明における実施の形態２を適用させれば、これら通知の転送を、通知が１周する前に停止させ、無駄な通知の転送を省くことができる。
【０５０９】
送信バッファ使用量測定部Ｅ１３９は、混雑通知送信部Ｅ１３７からの要求に応じ、送信バッファ部Ｅ１３５に対して、送信バッファ部Ｅ１３２に存在するフレームの数、ビット数、バイト数等を通知するように要求し、その結果より混雑が発生しているか否かを判断し、結果を混雑通知送信部Ａ１３７に対して通知する。
【０５１０】
次に、図２１を参照して、混雑通知送信部Ｅ１３７において送信キューにおける混雑検知機能が有効になっている場合の、混雑通知送信部Ｅ１３７における動作について詳細に説明する。
【０５１１】
混雑通知送信部Ｅ１３７は、定期的に送信バッファ使用量測定部Ｅ１３９に対して、混雑発生の有無を確認させる（ステップ４０１）。
【０５１２】
混雑通知送信部Ｅ１３７は、送信バッファ使用量測定部Ｅ１３９より混雑発生有無の通知を受け、混雑発生の場合はステップ４０３へ、混雑発生なしの場合は、ステップ４０６に処理を移す（ステップ４０２）。
【０５１３】
混雑通知送信部Ｅ１３７は、出力測定部Ａ１３６に対して、しきい値を超えた送信キュー毎に、Ｅ１３５からＡ１３３に転送されるフレーム量Ｕ、及び宛先混雑制御ノード数Ｄの通知を要求する（ステップ４０３）。
【０５１４】
混雑通知送信部Ｅ１３７は、ステップ４０３で求められた送信フレーム量Ｕ及び宛先混雑制御ノード数Ｄを用い、リングＲ２内の各混雑制御ノードの各送信キューにおいて許容される、しきい値を超えた宛先混雑制御ノードへの最大のフレーム挿入量を決定する。これを許容出力量といい、Ｕ／Ｄより決定される（ステップ４０４）。
【０５１５】
混雑通知送信部Ｅ１３７は、ステップ４０４で決定した許容出力量を、片方向リングＲ２１及びＲ２２の内、混雑した送信キューを通過するフローの送信元となっているリングを用いて、リング状ネットワークＲ２に位置する混雑制御ノードに通知する。もし、混雑を検知した送信キューに対し、Ｒ２１及びＲ２２の双方からの入力フローがある場合には、Ｒ２１及びＲ２２の双方に混雑通知を送信する。この混雑通知には、許容出力量のほかに発信者ＩＤも含まれるが、この発信者ＩＤは接続ノードＥ１のＩＤではなく、混雑を検知した送信キューの宛先ノードＩＤとする。この動作を、リングをまたがる混雑通知という。（ステップ４０５）。
【０５１６】
混雑通知送信部Ｅ１３７は、ステップ４０２においてバッファ使用量測定部Ｅ１３７より混雑発生通知を受けなかった場合は、混雑は発生していないとみなし、混雑が発生していないキューに関する許容出力量をＮＵＬＬ値にリセットする（ステップ４０６）。
【０５１７】
次に図１８を参照して、本実施の形態において、リングをまたがるフローが存在する場合、かつ、全リングに存在する宛先混雑制御ノード毎にキューを設けた場合、かつ、最終的な宛先ノードが存在するリングにおいて混雑が発生した場合の混雑制御動作について、具体例を用いて詳細に説明し、混雑通知が混雑に関係する送信ノードまで到達することを示す。
【０５１８】
図１８において、クライアント群Ｃ１と混雑制御ノードＡ１、クライアント群Ｃ２と混雑制御ノードＡ２、クライアント群Ｃ３と混雑制御ノードＡ３、クライアント群Ｃ４と混雑制御ノードＡ４、クライアント群Ｃ５と混雑制御ノードＡ５、クライアント群Ｃ６と接続ノードＥ１を結ぶ各リンクの速度を１００Ｍ（bit/sec）とし、片方向リングＲ１１・Ｒ１２・Ｒ２１・Ｒ２２の速度を１０Ｍ（bit/sec）とする。
【０５１９】
まず、クライアント群Ｃ１に属するクライアントが、４Ｍ（bit/sec）の速度で、クライアント群Ｃ４に属するクライアントに向けて、片方向リングＲ１２、接続のノードＥ１、片方向リングＲ２２を経由してフレームを送信する。この状態では、フレーム送信速度が片方向リングＲ１２及び片方向リングＲ２２の帯域幅を下回っているので、混雑は発生しない。
【０５２０】
混雑制御ノードＡ１において、全リングに存在する宛先混雑制御ノード毎にキューを設けた場合、クライアント群Ｃ１からクライアント群Ｃ４に向けて送信されるフレームは、すべて混雑制御ノードＡ４宛の送信バッファを通過する。
【０５２１】
次に、クライアント群Ｃ２に属するクライアントが、４Ｍ（bit/sec）の速度で、クライアント群Ｃ４に属するクライアントに向けて、片方向リングＲ１１、接続ノードＥ１、片方向リングＲ２２を経由してフレームを送信する。この状態でも、フレーム送信速度が片方向リングＲ１１の帯域幅を下回っており、更に、クライアント群Ｃ１からクライアント群Ｃ４に流れるフローの速度の合計が、片方向リングＲ２２の帯域幅を下回っているので、混雑は発生しない。
【０５２２】
混雑制御ノードＡ２において、全リングに存在する宛先混雑制御ノード毎にキューを設けた場合、クライアント群Ｃ２からクライアント群Ｃ４に向けて送信されるフレームは、すべて混雑制御ノードＡ４宛の送信バッファを通過する。
【０５２３】
次に、クライアント群Ｃ３に属するクライアントが、４Ｍ（bit/sec）の速度で、クライアント群Ｃ４に属するクライアントに向けて、片方向リングＲ２２を経由してフレームを送信する。
【０５２４】
混雑制御ノードＡ３において、全リングに存在する宛先混雑制御ノード毎にキューを設けた場合、クライアント群Ｃ３からクライアント群Ｃ４に向けて送信されるフレームは、すべて混雑制御ノードＣ４宛の送信バッファを通過する。
【０５２５】
混雑制御ノードＡ３において、片方向リングＲ２２を流れるパケットが、利用する転送バッファの使用量が下限値（ここでは５ｋ（bit）とする）を超えない限り、クライアント群Ｃ３から入力され片方向リングＲ２２に出力されるフレームは、片方向リンクＲ２２より入力されるフレームよりも、優先的に片方向リングＲ２２に向けて転送される。
【０５２６】
片方向リングＲ２２には、既にクライアント群Ｃ１及びＣ２より送信されるフレームが流れているため、混雑制御ノードＡ３における片方向リングＲ２２への出力フレーム量が、片方向リングＲ２２の帯域幅を上回り、混雑制御ノードＡ３における片方向リングＲ２２への出力側で混雑が発生する。
【０５２７】
混雑制御ノードＡ３において、混雑制御ノードＡ３の転送バッファ利用量が下限値に達していない場合、クライアント群Ｃ３から送信されるフレームが、混雑制御ノードＡ３に片方向リングＲ２２より入力されるフレームよりも優先されるため、混雑制御ノードＡ３に片方向リングＲ２２より入力されるフレームは、混雑制御ノードＡ３の転送バッファに蓄積される。
【０５２８】
混雑制御ノードＡ３において、混雑制御ノードＡ３の転送バッファ利用量が下限値を超えた場合、優先順位が逆転し、混雑制御ノードＡ３に片方向リングＲ２２より入力されるフレームが、クライアント群Ｃ３から送信されてリングＲ２２に流れるフレームよりも優先されるようになる。
【０５２９】
混雑制御ノードＡ３において、混雑制御ノードＡ３への入力が過大である場合には、優先順位逆転による処理が間に合わず、混雑制御ノードＡ３における転送バッファへの蓄積フレーム量が上限値（ここでは８ｋ（bit）とする）を超える。この場合、混雑制御ノードＡ３は片方向リングＲ２２における混雑発生を検知する。
【０５３０】
混雑制御ノードＡ３は、クライアント群Ｃ３から入力され片方向リングＲ２２に転送されるフレームの、送信速度及び宛先ノード数（すなわちフロー数）を測定する。そして、「送信速度÷フロー数」を許容出力量として、混雑通知を片方向リングＲ２１を用いて接続ノードＥ１に送信する。ここでクライアント群Ｃ３から片方向リングＲ２２に転送されるフレーム量が２Ｍ（bit/sec）であったとすると、宛先ノードはＡ４の１箇所だけであるので、２Ｍ（bit/sec）÷１＝２Ｍ（bit/sec）を、許容出力量として送信する。
【０５３１】
混雑制御ノードＡ３は、片方向リングＲ２２の出力側における混雑を検出している間、許容出力量を周期的に接続ノードＥ１に向けて発信する。
【０５３２】
混雑制御ノードＡ３は、片方向リングＲ２１の出力側では混雑を検知していないため、混雑発生なし（ＮＵＬＬ）という混雑通知を、片方向リングＲ２２を用いて周期的にノードＡ４に向けて発信する。
【０５３３】
混雑制御ノードＡ４は、ＮＵＬＬ情報の入った混雑通知を受信し、その通知を破棄する。
【０５３４】
接続ノードＥ１は、許容出力量の入った混雑通知を受信し、混雑通知の発信元が自ノードでないことを確認し、また通知内容がＮＵＬＬでないことを確認し、混雑通知を片方向リングＲ２１を用いて混雑制御ノードＡ５に送信する。
【０５３５】
接続ノードＥ１を出発した混雑通知は、混雑制御ノードＡ５・Ａ４で受信・転送され、片方向リングＲ２１を１周して混雑制御ノードＡ３に戻る。混雑制御ノードＡ３は、自ノードが発信した混雑通知を受信すると、その通知を破棄して、混雑通知の転送を打ち切る。なお、ここは実施の形態２の動作を適用させずに述べた。
【０５３６】
接続ノードＥ１は、混雑通知を片方向リングＲ２１から受信したこと、並びに混雑通知の発信元が混雑制御ノードＡ３であることから、片方向リングＲ２２における混雑制御ノードＡ３の出力側で混雑が発生していると特定する。このことより、混雑制御ノードＡ４宛のフレームが、混雑リンクを通過するものと推定する。
【０５３７】
接続ノードＥ１において、混雑制御ノードＡ４へ流れるフロー数は、混雑制御ノードＡ１より送信されるフローと、混雑制御ノードＡ２より送信されるフローの２本であるので、重み係数は２になる。その結果、ノードＡ４宛の送信バッファの出力を、混雑通知で通知された許容出力量である２Ｍ（bit/sec）×２＝４Ｍ（bit/sec）になるよう制限する。
【０５３８】
接続ノードＥ１において、クライアント群Ｃ４に向けて送信されるフレームは、すべて混雑制御ノードＡ４宛の送信キューを通過するので、このキューの出力が４Ｍ（bit/sec）に制限されることにより、クライアント群Ｃ１及びクライアント群Ｃ２がクライアント群Ｃ４に向けて送信するフレームは、混雑制御ノードＡ３に４Ｍ（bit/sec）の速度で入力されるようになる。
【０５３９】
混雑制御ノードＡ３は、片方向リングＲ２２より入力されるフレームの速度が４Ｍ（bit/sec）に減少したため、クライアント群Ｃ３から入力されるフレームを、４Ｍ（bit/sec）の速度で片方向リングＲ２２に向けて送信することができるようになる。
【０５４０】
接続ノードＥ１では、混雑制御ノードＡ４へのフローが制限されたため、混雑制御ノードＡ４宛の送信キューに蓄積されるフレームが増え、しきい値を超え、接続ノードＥ１は混雑制御ノードＡ４宛送信キューの混雑発生を検知する。
【０５４１】
接続ノードＥ１は、混雑制御ノードＡ４宛送信キューから片方向リングＲ２２に転送されるフレームの、送信速度及び送信元ノード数（すなわちフロー数）を測定する。そして、「送信速度÷フロー数」を許容出力量として、混雑通知を片方向リングＲ１１及びＲ１２を用いて混雑制御ノードＡ１及びＡ２に送信する。この動作を、リングをまたがる混雑通知という。
【０５４２】
接続ノードＥ１において、Ｒ２１及びＲ２２の両方から混雑要因となるフローが流入しているため、混雑通知フレームはＲ２１及びＲ２２の双方に送信される。
【０５４３】
ここで接続ノードＥ１において、混雑制御ノードＡ４への送信キューから片方向リングＲ２２に転送されるフレーム量が４Ｍ（bit/sec）であり、その内訳として２本のフローがあり、混雑制御ノードＡ１から混雑制御ノードＡ４へ転送されるフレームが２．５Ｍ（bit/sec）、混雑制御ノードＡ２から混雑制御ノードＡ４へ転送されるフレームが１．５Ｍ（bit/sec）であるとすると、４Ｍ（bit/sec）÷２＝２Ｍ（bit/sec）を、許容出力量として、片方向リンクＲ１１及びＲ１２を用いて混雑制御ノードＡ１及びＡ２の双方に送信する。
【０５４４】
混雑制御ノードＡ１は、許容出力量の入った混雑通知を受信し、混雑通知の発信元が自ノードでないことを確認し、また通知内容がＮＵＬＬでないことを確認し、混雑通知を片方向リングＲ１１を用いて混雑制御ノードＡ２に送信する。
【０５４５】
混雑制御ノードＡ１を出発した混雑通知は、混雑制御ノードＡ２で受信・転送され、片方向リングＲ１１を１周して接続ノードＥ１に戻る。接続ノードＥ１は、自ノードが発信した混雑通知を受信すると、その通知を破棄して、混雑通知の転送を打ち切る。
【０５４６】
混雑制御ノードＡ２も、許容出力量の入った混雑通知を受信し、混雑通知の発信元が自ノードでないことを確認し、また通知内容がＮＵＬＬでないことを確認し、混雑通知を片方向リングＲ１２を用いて混雑制御ノードＡ１に送信する。
【０５４７】
混雑制御ノードＡ２を出発した混雑通知は、混雑制御ノードＡ１で受信・転送され、片方向リングＲ１２を１周して接続ノードＥ１に戻る。接続ノードＥ１は、自ノードが発信した混雑通知を受信すると、その通知を破棄して、混雑通知の転送を打ち切る。
【０５４８】
混雑制御ノードＡ１及び混雑制御ノードＡ２は、混雑通知の発信元が自ノードの属するリング状ネットワークＲ１に存在しないこと、並びに混雑通知の発信元が混雑制御ノードＡ４であることから、接続ノードにおける混雑制御ノードＡ４宛送信キューで混雑が発生していると特定する。
【０５４９】
混雑制御ノードＡ１及び混雑制御ノードＡ２において、混雑制御ノードＡ４へ流れるフロー数は、それぞれのノードにおいて１本だけであるので、重み係数は１になる。その結果、ノードＡ４宛の送信バッファの出力を、混雑通知で通知された許容出力量である２Ｍ（bit/sec）×１＝２Ｍ（bit/sec）になるよう制限する。
【０５５０】
混雑制御ノードＡ１及び混雑制御ノードＡ２において、クライアント群Ｃ４に向けて送信されるフレームは、すべて混雑制御ノードＡ４宛の送信キューを通過するので、このキューの出力が２Ｍ（bit/sec）に制限されることにより、クライアント群Ｃ１及びクライアント群Ｃ２がクライアント群Ｃ４に向けて送信するフレームは、それぞれ２Ｍ（bit/sec）で接続ノードＥ１に入力されるようになる。
【０５５１】
接続ノードＥ１は、送信キューの混雑を検出している間、一定周期で混雑通知をリングＲ１に向けて送信する。
【０５５２】
混雑制御ノードＡ３では、片方向リングＲ２２より入力されるフレームの速度が４Ｍ（bit/sec）に減少したため、混雑制御ノードＡ３内の転送バッファの使用量が低下していく。そして転送バッファ使用量が閾値以下になると、混雑制御ノードＡ３は片方向リングＲ２２の出力側における混雑検出を解除する。
【０５５３】
すべてのノードは、許容出力量が指定された混雑通知を受信しない場合、周期的にバッファ出力量の制限を緩和させていく。接続ノードＥ１は、４Ｍ（bit/sec）に制限されていた混雑制御ノードＡ４宛送信キューの出力を、徐々に増加させていく。また、混雑制御ノードＡ１及びＡ２も、２Ｍ（bit/sec）に制限されていた混雑制御ノードＡ４宛送信キューの出力を、徐々に増加させていく。
【０５５４】
以降、混雑が検知される度に、上記の処理が繰り返されていき、クライアント群の動作に変化がない場合には、各フローの帯域は、混雑リングの帯域を３フローで分割した場合の平均値である約３．３３Ｍ（bit/sec）に収束していく。
【０５５５】
次に、本実施の形態の効果について説明する。
【０５５６】
従来技術３では混雑制御はリング毎に行われていたため、混雑のないリングＲ１から混雑の発生しているリングＲ２１へパケットが流入する際に、フレームロスが生じてしまった。このため、混雑のないリングＲ１には、送信しても欠落してしまう余分なフレームが流れてしまった。
【０５５７】
本実施の形態では、任意の一方のリングで発生した混雑を、他のリングにも伝えることができる。更に、混雑が送信クライアントから何段も先のリング内で発生している場合においても、送信クライアントが接続されている混雑制御ノードにおいて、送信フレーム量の制限を行なうことができる。その結果、送信クライアントに近くのリングに、途中の接続ノードで廃棄される可能性の高い余計なフレームを流さずに済む。
【０５５８】
また、すべての混雑通知を、接続されている全てのリング状ネットワークに同報した場合、大量の混雑通知がリング状ネットワークを流れることになる。この混雑通知のほとんどは、伝達されても実際には利用されず、むしろ混雑要因となりネットワークを輻輳させる恐れがある。
【０５５９】
本実施の形態では、混雑通知は、混雑に関係する送信クライアント又は接続ノードが接続されているリングのみに通知される。そのため、余分な混雑通知が、混雑に関係するフローが通過しないリングに流れることがない。
【０５６０】
次に、本発明の第７の実施の形態について、図面を参照して詳細に説明する。
【０５６１】
本発明の第７の実施の形態は、第６の実施の形態において、リング状ネットワークを１つ追加した場合に対応する。
【０５６２】
図２２を参照すると、本発明の第７の実施の形態は、図１８に示された第６の実施の形態に対して、接続ノードＥ２及びリング状ネットワークＲ３が新たに追加され、混雑制御ノードＡ４及びＡ５がＲ３上に移り、混雑制御ノードＡ６がＲ３上に新たに追加されている点で異なる。
【０５６３】
第６の実施の形態では、リングをまたぐフローが存在し、送信ノードと宛先ノードが隣接するリングに存在する場合において、いずれかのリングで発生した混雑を、送信ノードに通知できることを示した。
【０５６４】
本実施の形態では、隣あわない３段以上の任意の段数のリングをまたぐフローが存在する場合に、そのフローの経路上の任意の場所で混雑が発生したとき、送信ノードに混雑発生を通知できる。
【０５６５】
本実施の形態及び、第１、第６の実施の形態より、１つ以上の任意の段数のリングをまたぐフローについて、任意の場所で発生した混雑を、送信ノード宛に通知できることが示される。
【０５６６】
接続ノードＥ２は、図１８に示された第６の実施の形態における接続ノードＥ１と同様の機能を持つ。
【０５６７】
混雑制御ノードＡ６は、図１８に示された第６の実施の形態における混雑制御ノードＡ１と同様の機能を持つ。
【０５６８】
クライアント群Ｃ７〜Ｃ８は、図１８に示された第６の実施の形態におけるクライアント群Ｃ１と同様の機能を持つ。
【０５６９】
図２２を参照して、本実施の形態において、複数のリングをまたがるフローが存在する場合、かつ、各ノードにおいて、全リングに存在する宛先混雑制御ノード毎にキューを設けた場合、かつ、リングをまたぐフローの送信ノードと最終的な宛先ノードが隣接するリング同士に存在しない場合の混雑制御動作について、具体例を用いて詳細に説明する。
【０５７０】
図２２において、クライアント群Ｃ１と混雑制御ノードＡ１、クライアント群Ｃ２と混雑制御ノードＡ２、クライアント群Ｃ３と混雑制御ノードＡ３、クライアント群Ｃ４と混雑制御ノードＡ４、クライアント群Ｃ５と混雑制御ノードＡ５、クライアント群Ｃ６と混雑制御ノードＡ６、クライアント群Ｃ７と接続ノードＥ１、クライアント群Ｃ８と接続ノードＥ２を結ぶ各リンクの速度を１００Ｍ（bit/sec）とし、片方向リングＲ１１・Ｒ１２・Ｒ２１・Ｒ２２・Ｒ３１・Ｒ３２の速度を１０Ｍ（bit/sec）とする。
【０５７１】
まず、クライアント群Ｃ１に属するクライアントが、４Ｍ（bit/sec）の速度で、クライアント群Ｃ５に属するクライアントに向けて、片方向リングＲ１２、接続ノードＥ１、片方向リングＲ２１、接続ノードＥ２、片方向リングＲ３２を経由してフレームを送信する。この状態では、フレーム送信速度が片方向リングＲ１２、片方向リングＲ２１、片方向リングＲ３２の各帯域幅を下回っているので、混雑は発生しない。
【０５７２】
混雑制御ノードＡ１において、全リングに存在する宛先混雑制御ノード毎にキューを設けた場合、クライアント群Ｃ１からクライアント群Ｃ５に向けて送信されるフレームは、すべて混雑制御ノードＡ５宛の送信バッファを通過する。
【０５７３】
次に、クライアント群Ｃ２に属するクライアントが、４Ｍ（bit/sec）の速度で、クライアント群Ｃ５に属するクライアントに向けて、片方向リングＲ１１、接続ノードＥ１、片方向リングＲ２１、接続ノードＥ２、片方向リンクＲ３２を経由してフレームを送信する。この状態でも、フレーム送信速度が片方向リングＲ１１の帯域幅を下回っており、更に、片方向リングＲ２１及びＲ３２における、クライアント群Ｃ１からクライアント群Ｃ５に流れるフローの速度との合計が、片方向リンクＲ２１及びＲ３２の帯域幅を下回っているので、混雑は発生しない。
【０５７４】
混雑制御ノードＡ２において、全リングに存在する宛先混雑制御ノード毎にキューを設けた場合、クライアント群Ｃ２からクライアント群Ｃ５に向けて送信されるフレームは、すべて混雑制御ノードＡ５宛の送信バッファを通過する。
【０５７５】
次に、クライアント群Ｃ４に属するクライアントが、４Ｍ（bit/sec）の速度で、クライアント群Ｃ５に属するクライアントに向けて、片方向リングＲ３２を経由してフレームを送信する。
【０５７６】
混雑制御ノードＡ４において、全リングに存在する宛先混雑制御ノード毎にキューを設けた場合、クライアント群Ｃ４からクライアント群Ｃ５に向けて送信されるフレームは、すべて混雑制御ノードＣ５宛の送信バッファを通過する。
【０５７７】
混雑制御ノードＡ４において、片方向リングＲ３２を流れるパケットが、利用する転送バッファの使用量が下限値（ここでは５ｋ（bit）とする）を超えない限り、クライアント群Ｃ４から入力され片方向リングＲ３２に出力されるフレームは、片方向リンクＲ３２より入力されるフレームよりも、優先的に片方向リングＲ３２に向けて転送される。
【０５７８】
片方向リングＲ３２には、既にクライアント群Ｃ１及びＣ２より送信されるフレームが流れているため、混雑制御ノードＡ４における片方向リングＲ３２への出力フレーム量が、片方向リングＲ３２の帯域幅を上回り、混雑制御ノードＡ４における片方向リングＲ３２への出力側で混雑が発生する。
【０５７９】
混雑制御ノードＡ４において、混雑制御ノードＡ４の転送バッファ利用量が下限値に達していない場合、クライアント群Ｃ４から送信されるフレームが、混雑制御ノードＡ４に片方向リングＲ３２より入力されるフレームよりも優先されるため、混雑制御ノードＡ４に片方向リングＲ３２より入力されるフレームは、混雑制御ノードＡ４の転送バッファに蓄積される。
【０５８０】
混雑制御ノードＡ４において、混雑制御ノードＡ４の転送バッファ利用量が下限値を超えた場合、優先順位が逆転し、混雑制御ノードＡ４に片方向リングＲ３２より入力されるフレームが、クライアント群Ｃ３から送信されてリングＲ３２に流れるフレームよりも優先されるようになる。
【０５８１】
混雑制御ノードＡ４において、混雑制御ノードＡ４への入力が過大である場合には、優先順位逆転による処理が間に合わず、混雑制御ノードＡ４における転送バッファへの蓄積フレーム量が上限値（ここでは８ｋ（bit）とする）を超える。この場合、混雑制御ノードＡ４は片方向リングＲ３２における混雑発生を検知する。
【０５８２】
混雑制御ノードＡ４は、クライアント群Ｃ４から入力され片方向リングＲ３２に転送されるフレームの、送信速度及び宛先ノード数（すなわちフロー数）を測定する。そして、「送信速度÷フロー数」を許容出力量として、混雑通知を片方向リングＲ３１を用いて接続ノードＥ２に送信する。ここでクライアント群Ｃ４から片方向リングＲ３２に転送されるフレーム量が２Ｍ（bit/sec）であったとすると、宛先ノードはＡ５の１箇所だけであるので、２Ｍ（bit/sec）÷１＝２Ｍ（bit/sec）を、許容出力量として送信する。
【０５８３】
混雑制御ノードＡ４は、片方向リングＲ３２の出力側における混雑を検出している間、許容出力量を周期的に接続ノードＥ１に向けて発信する。
【０５８４】
混雑制御ノードＡ４は、片方向リングＲ３１の出力側では混雑を検知していないため、混雑発生なし（ＮＵＬＬ）という混雑通知を、片方向リングＲ３２を用いて周期的にノードＡ５に向けて発信する。
【０５８５】
混雑制御ノードＡ５は、ＮＵＬＬ情報の入った混雑通知を受信し、その通知を破棄する。
【０５８６】
接続ノードＥ２は、許容出力量の入った混雑通知を受信し、混雑通知の発信元が自ノードでないことを確認し、また通知内容がＮＵＬＬでないことを確認し、混雑通知を片方向リングＲ３１を用いて混雑制御ノードＡ６に送信する。
【０５８７】
接続ノードＥ２を出発した混雑通知は、混雑制御ノードＡ６・Ａ５で受信・転送され、片方向リングＲ２１を１周して混雑制御ノードＡ４に戻る。混雑制御ノードＡ４は、自ノードが発信した混雑通知を受信すると、その通知を破棄して、混雑通知の転送を打ち切る。
【０５８８】
接続ノードＥ２は、混雑通知を片方向リングＲ３１から受信したこと、並びに混雑通知の発信元が混雑制御ノードＡ４であることから、片方向リングＲ３２における混雑制御ノードＡ４の出力側で混雑が発生していると特定する。このことより、混雑制御ノードＡ５宛のフレームが、混雑リンクを通過するものと推定する。
【０５８９】
接続ノードＥ１において、混雑制御ノードＡ５へ流れるフロー数は、混雑制御ノードＡ１より送信されるフローと、混雑制御ノードＡ２より送信されるフローの２本であるので、重み係数は２になる。その結果、ノードＡ５宛の送信バッファの出力を、混雑通知で通知された許容出力量である２Ｍ（bit/sec）×２＝４Ｍ（bit/sec）になるよう制限する。
【０５９０】
接続ノードＥ２において、クライアント群Ｃ５に向けて送信されるフレームは、すべて混雑制御ノードＡ５宛の送信キューを通過するので、このキューの出力が４Ｍ（bit/sec）に制限されることにより、クライアント群Ｃ１及びクライアント群Ｃ２がクライアント群Ｃ５に向けて送信するフレームは、混雑制御ノードＡ４に４Ｍ（bit/sec）の速度で入力されるようになる。
【０５９１】
混雑制御ノードＡ４は、片方向リングＲ３２より入力されるフレームの速度が４Ｍ（bit/sec）に減少したため、クライアント群Ｃ４から入力されるフレームを、４Ｍ（bit/sec）の速度で片方向リングＲ３２に向けて送信することができるようになる。
【０５９２】
接続ノードＥ２では、混雑制御ノードＡ５へのフローが制限されたため、混雑制御ノードＡ５宛の送信キューに蓄積されるフレームが増え、しきい値を超え、接続ノードＥ２は混雑制御ノードＡ５宛送信キューの混雑発生を検知する。
【０５９３】
接続ノードＥ２は、混雑制御ノードＡ５宛送信キューから片方向リングＲ３２に転送されるフレームの、送信速度及び送信元ノード数（すなわちフロー数）を測定する。そして、「送信速度÷フロー数」を許容出力量として、混雑通知を片方向リングＲ２１もしくはＲ２２を用いて混雑制御ノードＡ１もしくはＡ２に送信する。
【０５９４】
接続ノードＥ２において、送信キューがあふれた場合の混雑通知は、混雑を検知した送信キューに対して、もっとも速い速度でフレームを送信している混雑制御ノードが存在する方向に送信される。
【０５９５】
ここで接続ノードＥ２において、混雑制御ノードＡ５への送信キューから片方向リングＲ３２に転送されるフレーム量が４Ｍ（bit/sec）であり、その内訳として２本のフローがあり、混雑制御ノードＡ１から混雑制御ノードＡ４へ転送されるフレームが２．５Ｍ（bit/sec）、混雑制御ノードＡ２から混雑制御ノードＡ４へ転送されるフレームが１．５Ｍ（bit/sec）であるとすると、４Ｍ（bit/sec）÷２＝２Ｍ（bit/sec）を、許容出力量として、片方向リンクＲ２２を用いて混雑制御ノードＥ１に送信する。
【０５９６】
接続ノードＥ１は、許容出力量の入った混雑通知を受信し、混雑通知の発信元が自ノードでないことを確認し、また通知内容がＮＵＬＬでないことを確認し、混雑通知を片方向リングＲ２２を用いて接続ノードＥ２に送信する。
【０５９７】
接続ノードＥ１を出発した混雑通知は、片方向リングＲ２２を１周して接続ノードＥ２に戻る。接続ノードＥ２は、自ノードが発信した混雑通知を受信すると、その通知を破棄して、混雑通知の転送を打ち切る。
【０５９８】
接続ノードＥ１は、混雑通知の発信元が自ノードの属するリング状ネットワークＲ１及びＲ２に存在しないこと、並びに混雑通知の発信元が混雑制御ノードＡ５であることから、接続ノードにおける混雑制御ノードＡ５宛送信キューで混雑が発生していると特定する。
【０５９９】
接続ノードＥ１において、混雑制御ノードＡ５へ流れるフロー数は、混雑制御ノードＡ１及びＡ２から送信される２本であるので、重み係数は２になる。その結果、ノードＡ５宛の送信バッファの出力を、混雑通知で通知された許容出力量である２Ｍ（bit/sec）×２＝４Ｍ（bit/sec）になるよう制限する。
【０６００】
接続ノードＥ１において、クライアント群Ｃ５に向けて送信されるフレームは、すべて混雑制御ノードＡ５宛の送信キューを通過するので、このキューの出力が４Ｍ（bit/sec）に制限されることにより、接続ノードＥ１がクライアント群Ｃ５に向けて送信するフレームは、合計４Ｍ（bit/sec）で接続ノードＥ２に入力されるようになる。
【０６０１】
接続ノードＥ２は、送信キューの混雑を検出している間、一定周期で混雑通知をリングＲ２に向けて送信する。
【０６０２】
接続ノードＥ１では、混雑制御ノードＡ５へのフローが制限されたため、混雑制御ノードＡ５宛の送信キューに蓄積されるフレームが増え、しきい値を超え、接続ノードＥ１は混雑制御ノードＡ５宛送信キューの混雑発生を検知する。
【０６０３】
接続ノードＥ１は、混雑制御ノードＡ５宛送信キューから片方向リングＲ２１に転送されるフレームの、送信速度及び送信元ノード数（すなわちフロー数）を測定する。そして、「送信速度÷フロー数」を許容出力量として、混雑通知を片方向リングＲ１１もしくはＲ１２を用いて混雑制御ノードＡ１もしくはＡ２に送信する。
【０６０４】
接続ノードＥ１において、送信キューがあふれた場合の混雑通知は、混雑を検知した送信キューに対して、もっとも速い速度でフレームを送信している混雑制御ノードが存在する方向に送信される。
【０６０５】
ここで接続ノードＥ１において、混雑制御ノードＡ５への送信キューから片方向リングＲ２１に転送されるフレーム量が４Ｍ（bit/sec）であり、その内訳として２本のフローがあり、混雑制御ノードＡ１から混雑制御ノードＡ５へ転送されるフレームが２．５Ｍ（bit/sec）、混雑制御ノードＡ２から混雑制御ノードＡ５へ転送されるフレームが１．５Ｍ（bit/sec）であるとすると、４Ｍ（bit/sec）÷２＝２Ｍ（bit/sec）を、許容出力量として、片方向リンクＲ１１を用いて混雑制御ノードＡ１に送信する。
【０６０６】
混雑制御ノードＡ１は、許容出力量の入った混雑通知を受信し、混雑通知の発信元が自ノードでないことを確認し、また通知内容がＮＵＬＬでないことを確認し、混雑通知を片方向リングＲ１１を用いて混雑制御ノードＡ２に送信する。
【０６０７】
混雑制御ノードＡ１を出発した混雑通知は、混雑制御ノードＡ２で受信・転送され、片方向リングＲ１１を１周して接続ノードＥ１に戻る。接続ノードＥ１は、自ノードが発信した混雑通知を受信すると、その通知を破棄して、混雑通知の転送を打ち切る。
【０６０８】
混雑制御ノードＡ１及び混雑制御ノードＡ２は、混雑通知の発信元が自ノードの属するリング状ネットワークＲ１に存在しないこと、並びに混雑通知の発信元が混雑制御ノードＡ５であることから、接続ノードにおける混雑制御ノードＡ５宛送信キューで混雑が発生していると特定する。
【０６０９】
混雑制御ノードＡ１及び混雑制御ノードＡ２において、混雑制御ノードＡ５へ流れるフロー数は、それぞれのノードにおいて１本だけであるので、重み係数は１になる。その結果、ノードＡ５宛の送信バッファの出力を、混雑通知で通知された許容出力量である２Ｍ（bit/sec）×１＝２Ｍ（bit/sec）になるよう制限する。
【０６１０】
混雑制御ノードＡ１及び混雑制御ノードＡ２において、クライアント群Ｃ５に向けて送信されるフレームは、すべて混雑制御ノードＡ５宛の送信キューを通過するので、このキューの出力が２Ｍ（bit/sec）に制限されることにより、クライアント群Ｃ１及びクライアント群Ｃ２がクライアント群Ｃ５に向けて送信するフレームは、それぞれ２Ｍ（bit/sec）で接続ノードＥ１に入力されるようになる。
【０６１１】
接続ノードＥ１は、送信キューの混雑を検出している間、一定周期で混雑通知をリングＲ１に向けて送信する。
【０６１２】
混雑制御ノードＡ３では、片方向リングＲ２２より入力されるフレームの速度が４Ｍ（bit/sec）に減少したため、混雑制御ノードＡ３内の転送バッファの使用量が低下していく。そして転送バッファ使用量が閾値以下になると、混雑制御ノードＡ３は片方向リングＲ２２の出力側における混雑検出を解除する。
【０６１３】
すべてのノードは、許容出力量が指定された混雑通知を受信しない場合、周期的にバッファ出力量の制限を緩和させていく。接続ノードＥ１及びＥ２は、４Ｍ（bit/sec）に制限されていた混雑制御ノードＡ５宛送信キューの出力を、徐々に増加させていく。また、混雑制御ノードＡ１及びＡ２も、２Ｍ（bit/sec）に制限されていた混雑制御ノードＡ５宛送信キューの出力を、徐々に増加させていく。
【０６１４】
以降、混雑が検知される度に、上記の処理が繰り返されていき、クライアント群の動作に変化がない場合には、各フローの帯域は、混雑リングの帯域を３フローで分割した場合の平均値である約３．３３Ｍ（bit/sec）に収束していく。
【０６１５】
次に、本実施の形態の効果について説明する。
【０６１６】
本実施の形態では、任意の一方のリングで発生した混雑を、複数段先の他のリングにも伝えることができる。更に、混雑が送信クライアントから何段も先のリング内で発生している場合においても、送信クライアントが接続されている混雑制御ノードにおいて、送信フレーム量の制限を行なうことができる。その結果、送信クライアント近くのリングに、途中の接続ノードで廃棄される可能性の高い余計なフレームを流さずに済む。
【０６１７】
また本実施の形態では、混雑通知は、混雑に関係する送信クライアント又は接続ノードが接続されているリングのみに通知される。そのため、余分な混雑通知が、混雑に関係するフローが通過しないリングに流れることがない。
【０６１８】
なお、上記各実施の形態の混雑制御システムは、混雑制御ノード（や混雑制御ノードである接続ノード、送信ノード）における混雑制御部の、混雑通知受信転送部、混雑通知送信部、入力分類部、出力調整部、障害処理部の機能や、その他の機能をハードウェア的に実現することは勿論として、各機能を備えるコンピュータプログラムである混雑制御プログラムＡ９０、Ｆ９０、Ｂ９０、Ｄ９０、Ｅ９０を、コンピュータ処理装置のメモリにロードされることで実現することができる。この混雑制御プログラムＡ９０、Ｆ９０、Ｂ９０、Ｄ９０、Ｅ９０は、磁気ディスク、半導体メモリその他の記録媒体に格納される。そして、その記録媒体からコンピュータ処理装置にロードされ、コンピュータ処理装置の動作を制御することにより、上述した各機能を実現する。
【０６１９】
以上好ましい実施の形態及び実施例をあげて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【０６２０】
【発明の効果】
以上説明したように本発明によれば、以下のような効果が達成される。
【０６２１】
第１に、混雑に影響するフローのみの送信フレーム量を制限することができる。その理由は、宛先ノード毎等に区分された送信キューを備え、混雑通知を受信した場合は、リングの特性を利用して混雑に関係するキューを推定し、混雑に関係するキューの出力のみを制限の対象にするからである。
【０６２２】
第２に、単一リングで宛先ノード毎にキューを設置した場合、フロー間の公平性を保つことができる。その理由は、利用可能帯域を宛先ノード毎に推定・設定できるため、混雑リンクにおいては、フロー間における利用可能帯域の不公平がなくなるからである。
【０６２３】
第３に、混雑通知フレームの発信回数を減らすことができる。その理由は、フロー毎の通知を行なうことなく、混雑発生を検知したノード毎に混雑通知を送信するだけで、各フローの使用リンク帯域の公平性を保つことができるからである。
【０６２４】
第４に、混雑通知フレームの転送回数を減らすことができる。その理由は、混雑制御ノードにおいて、混雑通知をこれ以上転送しても効果が得られないと判断できた場合には、混雑通知がリングを１周する前に通知の転送を停止することができるからである。
【０６２５】
第５に、リンク障害時においても混雑制御ができる。その理由は、リングの特性とルーティングテーブルを組み合わせて活用することで、障害時においても混雑発生リンクを推定できるからである。
【０６２６】
第６に、リンク障害時においても、混雑通知フレームの転送回数を減らすことができる。その理由は、混雑通知が障害区間で欠落しても、混雑制御には影響が及ばないため、結果的に混雑通知フレームの転送回数が減るからである。
【０６２７】
第７に、急激な流量制限を避けられる。その理由は、混雑直前ノードにおける送信フレーム量が小さい場合などに、状況に応じて、制限出力量を通知するのではなく、制限割合や平均値、及び規定値等を通知することができるからである。
【０６２８】
第８に、送信クライアントが接続されているノードにおいて、途中の接続ノードで廃棄される可能性の高い余計なフレームを制限することができる。その理由は、任意の一方のリングで発生した混雑を、他のリングにも伝えることができ、混雑が送信クライアントから何段も先のリング内で発生している場合においても、送信クライアントが接続されている混雑制御ノードにおいて、リングに入る前に、過大入力のフレームを制限することができるためである。
【０６２９】
第９に、余分な混雑通知を、混雑に関係するフローが通過しないリングに流さずに済む。その理由は、リングをまたがる混雑通知は、混雑に関係する送信クライアント、又は、混雑に関係する接続ノードが接続されているリングのみに通知されるからである。
【０６３０】
第１０に、混雑検出ノードの処理負荷を軽減できる。その理由は、混雑通知受信ノードにおいて、混雑関係フローの抽出などの処理を行なうためである。
【０６３１】
第１１に、混雑通知等の制御フレームの転送を、確実に行える。その理由は、混雑通知を受信したノードが、混雑通知を転送することによって効果が得られるかどうかを、リングの特性より判断し、効果が期待できる場合は、通知の転送を継続するからである。
【図面の簡単な説明】
【図１】  本発明の第１の実施の形態による混雑制御システムの構成を示すブロック図である。
【図２】  本発明の第１の実施の形態の混雑制御ノードの構成を示すブロック図である。
【図３】  本発明の第１の実施の形態の混雑制御部の構成を示すブロック図である。
【図４】  本発明の第１の実施の形態の送信バッファ部の構成を示すブロック図である。
【図５】  本発明の第１の実施の形態の送信バッファ部の構成を示すブロック図である。
【図６】  本発明の第１の実施の形態の送信バッファ部の構成を示すブロック図である。
【図７】  本発明の第１の実施の形態の混雑通知送信時の動作を示す流れ図である。
【図８】  本発明の第１の実施の形態の混雑通知受信時の動作を示す流れ図である。
【図９】  本発明の第２の実施の形態の混雑通知受信時の動作を示す流れ図である。
【図１０】  本発明の第３の実施の形態による混雑制御システムの構成を示すプロック図である。
【図１１】  本発明の第３の実施の形態による障害検出機能付き混雑制御ノードの構成を示すプロック図である。
【図１２】  本発明の第４の実施の形態による混雑制御システムの構成を示すブロック図である。
【図１３】  本発明の第４の実施の形態による混雑制御ノードの構成を示すブロック図である。
【図１４】  本発明の第４の実施の形態の混雑制御部の構成を示すブロック図である。
【図１５】  本発明の第４の実施の形態の混雑通知送信時の動作を示す流れ図である。
【図１６】  本発明の第５の実施の形態の混雑制御システムの構成を示すプロック図である。
【図１７】  本発明の第５の実施の形態による２つの双方向リングを収容可能な混雑制御ノードの構成を示すプロック図である。
【図１８】  本発明の第６の実施の形態による混雑制御システムの構成を示すブロック図である。
【図１９】  本発明の第６の実施の形態による送信バッファ使用量測定機能付き混雑制御ノードの構成を示すブロック図である。
【図２０】  本発明の第６の実施の形態の混雑制御部の構成を示すブロック図である。
【図２１】  本発明の第６の実施の形態の混雑通知送信時の動作を示す流れ図である。
【図２２】  本発明の第７の実施の形態による混雑制御システムの構成を示すプロック図である。
【符号の説明】
Ａ１〜Ａ６  混雑制御ノード
Ａ１１  転送方向決定部
Ａ１２  ルーティングテーブル
Ａ１３〜Ａ１４  混雑制御部
Ａ１３１  受信決定部
Ａ１３２  転送バッファ部
Ａ１３３  出力ミキサ部
Ａ１３４  混雑通知受信転送部
３４１  転送処理部
３４２  推定部
３４３  重み付加部
３４４  制限部
Ａ１３５  送信バッファ部
３５１  入力分類部
３５１−１  分類処理部
３５１−２  リング識別部
３５１−３  フロー数測定部
３５２  送信キュー部（宛先混雑制御ノード毎のキュー）
３５３  出力調整部
３５４  入力分類部
３５４−１  分類処理部
３５４−２  リング識別部
３５４−３  フロー数測定部
３５５  送信キュー部（２つのキュー）
３５６  入力分類部
３５６−１  分類処理部
３５６−２  リング識別部
３５６−３  フロー数測定部
３５７  送信キュー部（宛先クライアント毎のキュー）
Ａ１３６  出力測定部
Ａ１３７  混雑通知送信部
Ａ１３８  バッファ使用量測定部
Ｂ１〜Ｂ４  混雑制御ノード
Ｂ１３〜Ｂ１４  混雑制御部
Ｂ１３１  転送バッファ部
Ｂ１３２  転送出力測定部
Ｂ１３３  混雑通知送信部
Ｃ１〜Ｃ８  クライアント
Ｄ１  ２つの双方向リングを収容可能な混雑制御ノード（接続ノード）
Ｄ１１  転送方向決定部
Ｄ１２  ルーティングテーブル
Ｅ１〜Ｅ２  送信バッファ使用量測定機能付き混雑制御ノード
Ｅ１３〜Ｅ１６  混雑制御部
Ｅ１３５  送信バッファ部
Ｅ１３７  混雑通知送信部
Ｅ１３９  送信バッファ使用量測定部
Ｆ１〜Ｆ４  障害検出機能付き混雑制御ノード
Ｆ１７〜Ｆ１８  障害検出部
Ｆ１９  障害処理部
Ｌ１００  双方向リンク
Ｌ１０１〜Ｌ１０４  片方向リンク
Ｌ１０５〜Ｌ１０６  双方向リンク
Ｌ１０７〜Ｌ１０９  片方向リンク
Ｌ１１０〜Ｌ１１１  片方向リンク群
Ｌ２０１  双方向リンク
Ｌ４００  双方向リンク
Ｌ４０１〜Ｌ４０８  片方向リンク
Ｍ１０１〜Ｍ１０４  通知
Ｍ２０１〜Ｍ２０３  通知
Ｒ１〜Ｒ３  双方向リング状ネットワーク
Ｒ１１  片方向リング（時計方向）
Ｒ１２  片方向リング（反時計方向）
Ｒ２１  片方向リング（時計方向）
Ｒ２２  片方向リング（反時計方向）
Ｒ３１  片方向リング（時計方向）
Ｒ３２  片方向リング（反時計方向）
Ａ９０、Ｆ９０、Ｂ９０、Ｄ９０、Ｅ９０  混雑制御プログラム
【図１】
0004041944.tif 000002
【図２】
0004041944.tif 000003
【図３】
0004041944.tif 000004
【図４】
0004041944.tif 000005
【図５】
0004041944.tif 000006
【図６】
0004041944.tif 000007
【図７】
0004041944.tif 000008
【図８】
0004041944.tif 000009
【図９】
0004041944.tif 000010
【図１０】
0004041944.tif 000011
【図１１】
0004041944.tif 000012
【図１２】
0004041944.tif 000013
【図１３】
0004041944.tif 000014
【図１４】
0004041944.tif 000015
【図１５】
0004041944.tif 000016
【図１６】
0004041944.tif 000017
【図１７】
0004041944.tif 000018
【図１８】
0004041944.tif 000019
【図１９】
0004041944.tif 000020
【図２０】
0004041944.tif 000021
【図２１】
0004041944.tif 000022
【図２２】
0004041944.tif 000023