(57)【要約】【課題】ネットワークを構成する各ノード装置間の公平性を実現するための通信制御方法を得ること。【解決手段】本発明にかかる通信制御方法では、まず、輻輳ノード装置１が、自装置の下流に位置するノード装置宛に送信するデータの最大トラヒック量の初期値を送信し、つぎに、当該初期値を受け取ったノード装置２〜４（輻輳領域のノード装置）が、輻輳ノード装置１までのホップ数に基づいて重み情報を算出し、その結果を輻輳ノード装置１に送信し、つぎに、輻輳ノード装置１が、ノード装置２〜４からそれぞれ送信された重み情報に基づいて前記初期値を調整し、調整後の最大トラヒック量を上流の隣接ノード装置２に通知し、つぎに、ノード装置２が、自装置内で算出した重み情報に基づいて前記調整後の最大トラヒック量をさらに調整し、当該調整後の最大トラヒック量をさらに上流の隣接ノード装置３に通知する。【選択図】        図１５
2007135001.tif 000002
【特許請求の範囲】
【請求項１】
複数のノード装置で構成されたリング型ネットワークにおいて、特定のノード装置が輻輳状態となった場合に、当該輻輳状態となったノード装置（輻輳ノード装置）の上流に位置するノード装置が、当該輻輳ノード装置の下流に位置するノード装置宛にデータを送信する際の通信制御方法であって、
前記輻輳ノード装置が、上流に位置する隣接ノード装置に対して、自装置の下流に位置するノード装置宛に送信するデータの最大トラヒック量（第１の最大トラヒック量）を通知し、つぎに、当該第１の最大トラヒック量を受け取ったノード装置が、前記輻輳ノード装置の下流に位置するノード装置宛の実際のトラヒック量が前記第１の最大トラヒック量よりも大きい場合に、さらに上流の隣接ノード装置に対して前記第１の最大トラヒック量を通知し、以降、前記輻輳ノード装置の下流に位置するノード装置宛の実際のトラヒック量が前記第１の最大トラヒック量よりも少なくなるまで、前記第１の最大トラヒック量を受け取ったノード装置が、さらに上流に位置する隣接ノード装置に対して前記第１の最大トラヒック量を通知する最大トラヒック量通知ステップと、
前記第１の最大トラヒック量を受け取った各ノード装置（輻輳領域のノード装置）が、前記輻輳ノード装置までのホップ数に基づいて、輻輳により受ける影響度を示す重み情報を算出し、当該重み情報を前記輻輳ノード装置に対して送信する重み情報送信ステップと、
前記輻輳ノード装置が、輻輳領域のノード装置から送信されたすべての重み情報に基づいて前記第１の最大トラヒック量を調整し、調整後の最大トラヒック量（第２の最大トラヒック量）を上流に位置する隣接ノード装置に対して通知し、つぎに、前記第２の最大トラヒック量を受け取ったノード装置が、自装置内で算出した重み情報に基づいて当該第２の最大トラヒック量を調整し、調整後の最大トラヒック量（第３の最大トラヒック量）をさらに上流に位置する隣接ノード装置に対して通知し、以降、輻輳領域内のすべてのノード装置が、個別に調整された最大トラヒック量を受け取った順に、自装置内で算出した重み情報に基づいて調整した最大トラヒック量（第４，第５…のトラヒック量）をさらに上流に位置する隣接ノード装置に対して通知する調整最大トラヒック量通知ステップと、
輻輳領域内のノード装置が、個別に調整された最大トラヒック量に応じたデータ送信を行うデータ送信ステップと、
を含むことを特徴とする通信制御方法。
【請求項２】
前記重み情報送信ステップでは、前記輻輳ノード装置までのホップ数に基づいて、前記輻輳ノード装置を経由して送信されるデータの宛先となり得るノード装置の数を算出し、当該算出結果を前記重み情報とすることを特徴とする請求項１に記載の通信制御方法。
【請求項３】
前記データ送信ステップでは、宛先ノード装置が前記輻輳ノード装置よりも下流に位置する場合に、前記個別に調整された最大トラヒック量に応じたデータ送信を行うことを特徴とする請求項１または２に記載の通信制御方法。
【請求項４】
輻輳状態となったノード装置の上流に位置するノード装置のトラヒック量をその輻輳により受ける影響度に応じて個別に制限するリング型ネットワーク、を構成するノード装置であって、
輻輳状態となった場合に、下流のノード装置宛のトラヒック量に基づいて、上流に位置する隣接ノード装置が自装置の下流に位置するノード装置宛に送信するデータの、最大トラヒック量の初期値を算出する最大トラヒック量初期値算出手段と、
前記最大トラヒック量の初期値を上流に位置する隣接ノード装置に対して送信する最大トラヒック量送信手段と、
を備え、
前記最大トラヒック量送信手段は、さらに、自装置の上流に位置する複数のノード装置から輻輳により受ける影響度を示す重み情報を受信した場合に、当該すべての重み情報に基づいて前記最大トラヒック量の初期値を調整し、調整後の最大トラヒック量を上流に位置する隣接ノード装置に対して送信することを特徴とするノード装置。
【請求項５】
輻輳状態となったノード装置（輻輳ノード装置）の上流に位置するノード装置のトラヒック量をその輻輳により受ける影響度に応じて個別に制限するリング型ネットワーク、を構成するノード装置であって、
前記輻輳ノード装置または下流に位置する隣接ノード装置（輻輳ノード装置以外）から最大トラヒック量の初期値を受信し、かつ、輻輳ノード装置の下流に位置するノード装置宛の実際のトラヒック量が前記初期値よりも大きい場合に、さらに上流の隣接ノード装置に対して前記初期値を送信する最大トラヒック量送信手段と、
前記輻輳ノード装置までのホップ数に基づいて、輻輳により受ける影響度を示す重み情報を算出し、当該重み情報を前記輻輳ノード装置に対して送信する重み情報送信手段と、
を備え、
前記最大トラヒック量送信手段は、さらに、前記輻輳ノード装置または下流に位置する隣接ノード装置（輻輳ノード装置以外）から、それらの装置が持つ重み情報により調整された最大トラヒック量（調整後トラヒック量）を受信した場合に、前記重み情報送信手段にて算出した重み情報に基づいて前記調整後トラヒック量を再調整し、再調整後の最大トラヒック量をさらに上流に位置する隣接ノード装置に対して送信することを特徴とするノード装置。
【請求項６】
輻輳状態となったノード装置（輻輳ノード装置）の上流に位置するノード装置のトラヒック量をその輻輳により受ける影響度に応じて個別に制限するリング型ネットワーク、を構成するノード装置であって、
輻輳状態となった場合に、下流のノード装置宛のトラヒック量に基づいて、上流に位置する隣接ノード装置が自装置の下流に位置するノード装置宛に送信するデータの、最大トラヒック量の初期値を算出する最大トラヒック量初期値算出手段と、
前記最大トラヒック量の初期値を上流に位置する隣接ノード装置に対して送信する第１の最大トラヒック量送信手段と、
を備え、
前記第１の最大トラヒック量送信手段は、さらに、自装置の上流に位置する複数のノード装置から重み情報を受信した場合に、当該すべての重み情報に基づいて前記最大トラヒック量の初期値を調整し、調整後の最大トラヒック量（調整後トラヒック量）を上流に位置する隣接ノード装置に対して送信し、
さらに、
輻輳ノード装置または下流に位置する隣接ノード装置（輻輳ノード装置以外）から最大トラヒック量の初期値を受信し、かつ、輻輳ノード装置の下流に位置するノード装置宛の実際のトラヒック量が前記初期値よりも大きい場合に、さらに上流の隣接ノード装置に対して前記初期値を送信する第２の最大トラヒック量送信手段と、
輻輳ノード装置までのホップ数に基づいて、輻輳により受ける影響度を示す重み情報を算出し、当該重み情報を輻輳ノード装置に対して送信する重み情報送信手段と、
を備え、
前記第２の最大トラヒック量送信手段は、さらに、輻輳ノード装置または下流に位置する隣接ノード装置（輻輳ノード装置以外）から調整後トラヒック量を受信した場合に、前記重み情報送信手段にて算出した重み情報に基づいて前記調整後トラヒック量を再調整し、再調整後の最大トラヒック量をさらに上流に位置する隣接ノード装置に対して送信することを特徴とするノード装置。
【請求項７】
前記重み情報送信手段が、輻輳ノード装置までのホップ数に基づいて、前記輻輳ノード装置を経由して送信されるデータの宛先となり得るノード装置の数を算出し、当該算出結果を前記重み情報とすることを特徴とする請求項５または６に記載のノード装置。
【請求項８】
前記調整後トラヒック量に応じたデータ送信を行うデータ送信手段、
を備え、
前記データ送信手段は、宛先ノード装置が前記輻輳ノード装置よりも下流に位置する場合に、前記調整後トラヒック量に応じたデータ送信を行うことを特徴とする請求項５、６または７に記載のノード装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のノード装置で構成されたリング型の通信ネットワークに適用する通信制御方法に関するものであり、特に、特定のノード装置が輻輳状態となった場合の通信制御方法に関するものである。
【背景技術】
【０００２】
通信ネットワークを構成している各ノード装置が２本の並行する通信線によって接続され、二重のリングとなるような形態の通信ネットワークの一つとして、ＲＰＲ（Resilient  Packet  Ring）を適用したＲＰＲネットワークがある。ＲＰＲネットワークにおいては、上記二重のリング構造をとる通信線を、それぞれ異なる方向のデータ送信に用いる。たとえば、左回りにデータを送信するために内側のリングを使用し、右回りにデータを送信するために外側のリングを使用する。また、通常、ＲＰＲネットワーク上の各ノード装置は、データを送信するにあたり、相手先ノード装置までのポップ数がより小さくなるリング（データ送信方向）を選択する（下記非特許文献１参照）。
【０００３】
また、下記非特許文献１によれば、ＲＰＲネットワークは、ネットワーク上で輻輳が発生した場合に、フェアネス（Fairness）制御により輻輳状態を緩和することを一つの特徴としている。フェアネス制御とは、輻輳が発生したノード装置（輻輳ノード装置と呼ぶ）の上流に位置するノード装置が輻輳ノード装置の下流に位置するノード装置宛にデータを送信する場合に、輻輳の状況に基づいて、単位時間あたりに送信可能な最大データ量（最大トラヒック量）を制御する処理のことをいう。このフェアネス制御を適用することにより、ＲＰＲネットワークは、輻輳発生時において、ＲＰＲネットワーク上の各ノード装置に対してトラヒックを公平に割り当てる。なお、「上流／下流に位置するノード装置」とは、基準となるノード装置（上述した動作においては輻輳が発生したノード装置）に対してデータの送信方向と逆方向／同一方向に位置するノード装置をいう。
【０００４】
たとえば、ＲＰＲネットワーク上で輻輳が発生した場合、輻輳が発生したノード装置（以下、「輻輳ノード装置」と呼ぶ）は、上流に位置するノード装置Ａに対して、自装置の下流に位置するノード装置宛にデータを送信する際の最大トラヒック量（α）を通知する。ノード装置Ａは、輻輳ノード装置から通知された最大トラヒック量（α）と、輻輳ノード装置の下流に位置するノード装置宛にデータを送信する際のトラヒック量（β）と、を比較する。そして、αがβよりも小さい（α＜β）場合、ノード装置Ａは、トラヒック量がαとなるように調整してデータ送信を行う。さらに、ノード装置Ａは、上流に位置するノード装置Ｂに対して、最大トラヒック量として、上記輻輳ノード装置から通知されたトラヒック量（α）を通知する。これに対して、αがβよりも大きい（α＞β）場合、ノード装置Ａは、トラヒック量の調整を行わずにデータ送信を行う。この場合、さらに上流に位置するノード装置Ｂに対しては、データ送信時に使用するトラヒック量の調整が不要である旨を通知する。
【０００５】
なお、トラヒック量（α）の通知を受けたノード装置Ｂは、上述したノード装置Ａの動作と同様の動作を実行し、必要であれば、トラヒック量の調整および上流のノード装置に対する最大トラヒック量（α）の通知を行う。以下、使用トラヒック量の調整が不要となるまで隣接するノード装置の間で同様の動作が実行される。
【０００６】
ただし、輻輳状態に影響を与えるデータ送信は、輻輳ノード装置の上流に位置するノード装置から輻輳ノード装置の下流に位置するノード装置宛にデータを送信する場合に限られる。すなわち、輻輳ノード装置の上流に位置するノード装置同士の間でデータ送信を行う場合は、輻輳ノード装置（輻輳状態）に対して何ら影響を与えない。
【０００７】
また、リング型ネットワークの特性上、輻輳ノード装置までのホップ数が小さいノード装置ほど、輻輳ノード装置の下流に位置するノード装置宛にデータを送信することが多いと考えられる。一方、輻輳ノード装置までのホップ数が大きいノード装置から、輻輳ノード装置の下流に位置するノード装置宛に、送信されるデータの量は、それほど多くないと考えられる。
【０００８】
【非特許文献１】IEEE802.17-Part17:Resilient  packet  ring  access  method  and  physical  layer  specifications,10.Fairness,2004年10月6日,P225〜284
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、上述したように、上記従来のフェアネス制御においては、データの送信元ノード装置と輻輳ノード装置との間のホップ数が考慮されず、最大トラヒック量の調整が必要な全てのノード装置は、輻輳ノード装置が指定したトラヒック量（α）のみに基づいて、最大トラヒック量が調整されている。すなわち、トラヒック量の調整が必要な全てのノード装置における、調整後の最大トラヒック量が一律（α）となっている。
【００１０】
そのため、輻輳ノード装置の下流に位置するノード装置宛にデータを送信する場合、輻輳ノード装置までのホップ数の小さいノード装置が送信するデータ量と、輻輳ノード装置までのホップ数の大きいノード装置が送信するデータ量とでは、その量が異なる可能性が高いにも関わらず、実際に割り当てられる最大トラヒック量は、全てのノード装置間で同一となり、各ノード装置間で公平性を保つことができない、という問題があった。
【００１１】
本発明は、上記に鑑みてなされたものであって、輻輳ノード装置までのホップ数に応じて、輻輳ノード装置の下流に位置するノード装置宛の送信データ量を調整することが可能なノード装置を得ることを目的とする。
【課題を解決するための手段】
【００１２】
上述した課題を解決し、目的を達成するために、本発明にかかる通信制御方法は、複数のノード装置で構成されたリング型ネットワークにおいて、特定のノード装置が輻輳状態となった場合に、当該輻輳状態となったノード装置（輻輳ノード装置）の上流に位置するノード装置が、当該輻輳ノード装置の下流に位置するノード装置宛にデータを送信する際の通信制御方法であって、前記輻輳ノード装置が、上流に位置する隣接ノード装置に対して、自装置の下流に位置するノード装置宛に送信するデータの最大トラヒック量（第１の最大トラヒック量）を通知し、つぎに、当該第１の最大トラヒック量を受け取ったノード装置が、前記輻輳ノード装置の下流に位置するノード装置宛の実際のトラヒック量が前記第１の最大トラヒック量よりも大きい場合に、さらに上流の隣接ノード装置に対して前記第１の最大トラヒック量を通知し、以降、前記輻輳ノード装置の下流に位置するノード装置宛の実際のトラヒック量が前記第１の最大トラヒック量よりも少なくなるまで、前記第１の最大トラヒック量を受け取ったノード装置が、さらに上流に位置する隣接ノード装置に対して前記第１の最大トラヒック量を通知する最大トラヒック量通知ステップと、前記第１の最大トラヒック量を受け取った各ノード装置（輻輳領域のノード装置）が、前記輻輳ノード装置までのホップ数に基づいて、輻輳により受ける影響度を示す重み情報を算出し、当該重み情報を前記輻輳ノード装置に対して送信する重み情報送信ステップと、前記輻輳ノード装置が、輻輳領域のノード装置から送信されたすべての重み情報に基づいて前記第１の最大トラヒック量を調整し、調整後の最大トラヒック量（第２の最大トラヒック量）を上流に位置する隣接ノード装置に対して通知し、つぎに、前記第２の最大トラヒック量を受け取ったノード装置が、自装置内で算出した重み情報に基づいて当該第２の最大トラヒック量を調整し、調整後の最大トラヒック量（第３の最大トラヒック量）をさらに上流に位置する隣接ノード装置に対して通知し、以降、輻輳領域内のすべてのノード装置が、個別に調整された最大トラヒック量を受け取った順に、自装置内で算出した重み情報に基づいて調整した最大トラヒック量（第４，第５…のトラヒック量）をさらに上流に位置する隣接ノード装置に対して通知する調整最大トラヒック量通知ステップと、輻輳領域内のノード装置が、個別に調整された最大トラヒック量に応じたデータ送信を行うデータ送信ステップと、を含むことを特徴とする。
【発明の効果】
【００１３】
この発明によれば、リング型の通信ネットワークにおいて輻輳が発生した場合、輻輳領域の各ノード装置と輻輳ノード装置との距離（ホップ数）に基づいて算出した重み情報に応じて、輻輳領域の各ノード装置の最大トラヒック量を個別に調整することとした。これにより、輻輳ノード装置の上流に位置する各ノード装置の最大トラヒック量を、輻輳ノード装置の下流に位置するノード装置宛の送信データ量に応じて調整できるので、輻輳ノード装置の上流に位置する各ノード装置間で公平性を保つことができる、という効果を奏する。
【発明を実施するための最良の形態】
【００１４】
以下に、本発明にかかる通信制御方法およびノード装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１５】
実施の形態
図１は、本発明にかかるノード装置により構成されたリング型ネットワークの構成例を示す図であり、このリング型ネットワークは、ノード装置１〜１１により構成されている。具体的には、上記ノード装置１〜１１が２本の通信線によってリング状に接続され、２本の並行したリング型の通信経路が実現されている。そして、このリング型ネットワークは、上記２本の通信経路を異なる方向へのデータ送信に使用する。たとえば、図１に示したように、外側の通信線（データ転送経路７１）を右回り方向のデータ送信に使用し、内側の通信線（データ転送経路７２）を左回り方向のデータ送信に使用する。以下、このリング型ネットワークを単にネットワーク９０と呼ぶ。
【００１６】
また、ネットワーク９０は、各ノード装置を介して支線ネットワークに接続されている。図１においては、一例として、ノード装置１を介して接続されている支線ネットワーク９１が図示されている。また、本説明においては、ノード装置などに接続され、互いに逆方向へデータを送信している２本の通信線をまとめてリンクと呼ぶこととする。
【００１７】
図２は、本発明にかかるノード装置の構成例を示す図であり、ここでは、一例としてノード装置１の構成例を示している。ノード装置１は、通信制御部２０−１と、ＳＣＦＦ（Single  Choke  Fairness  Frame）送受信部２１−１と、重み計算部２２−１と、ＲＰＲ（Resilient  Packet  Ring）フレーム送受信制御部２３−１および２４−１と、を備える。通信制御部２０−１は、リンク６１−１、６２−１、６３−１および６４−１により、ＳＣＦＦ送受信部２１−１、重み計算部２２−１、ＲＰＲフレーム送受信制御部２３−１および２４−１、と接続されている。また、ＲＰＲフレーム送受信制御部２３−１と２４−１が、リンク６５−１により接続されている。さらに、ＲＰＲフレーム送受信制御部２３−１および２４−１は、それぞれリンク５１および５２により、隣接するノード装置１１および２と接続されている。また、通信制御部２０−１は、リンク６６−１により支線ネットワーク９１に接続されている。なお、他のノード装置２〜１１の構成も同様であり、これらを構成する各部の動作も後述するノード装置１の各部の動作と同様である。
【００１８】
つづいて、図２を用いて本発明にかかるノード装置の各部の動作を説明する。通信制御部２０−１は、支線ネットワーク９１とネットワーク９０との間の各種フレームの送受信を制御している。また、通信制御部２０−１は、リンク６３−１、６４−１を介して、それぞれＲＰＲフレーム送受信制御部２３−１，２４−１に対して指示を出し、支線ネットワーク９１からネットワーク９０へフレームを送信する際に、宛先ノード装置までのホップ数が最小となるように送信経路の選択制御を行う。さらに、通信制御部２０−１は、ネットワーク９０に関する制御フレームの送受信を行う。
【００１９】
ＳＣＦＦ送受信部２１−１は、通信制御部２０−１およびＲＰＲフレーム送受信制御部２３−１または２４−１を経由して、隣接するノード装置との間でシングルチョーク・フェアネスフレーム（Single  Choke  Fairness  Frame、以下、ＳＣＦＦと記載する）の送受信を行う。また、ＳＣＦＦ送受信部２１−１は、ネットワーク９０を構成しているいずれかのノード装置（ここでは仮にノード装置Ｎ（Ｎ：２〜１１のいずれか）と呼ぶこととする）において輻輳が発生した場合に、上流の隣接ノード装置が、単位時間あたりにノード装置Ｎ経由でネットワーク９０の通信経路上に送信可能な最大データ量（最大トラヒック量）を、後述する動作に基づいて決定する。
【００２０】
ただし、「上流」とは、データの送信側を表し、「下流」とは、データの受信側を表す。たとえば、ノード装置１が右回りデータ転送経路７１を使用する場合、ノード装置１の上流隣接ノード装置がノード装置２、下流隣接ノード装置がノード装置１１となる。これに対して、ノード装置１が左回りデータ転送経路７２を使用する場合、ノード装置１の上流隣接ノード装置がノード装置１１、下流隣接ノード装置がノード装置２となる。
【００２１】
重み計算部２２−１は、ネットワーク９０の他のノード装置において輻輳が発生した場合、輻輳が発生したノード装置Ｎまでのホップ数を算出する。また、自装置において輻輳が発生した場合、当該輻輳の影響により最大トラヒック量が制限される全てのノード装置から通知された重み情報を検出する。ここで、「重み情報」とは、輻輳により自ノード装置のデータ送信動作が受ける影響度を示す情報であり、ノード装置は、この「重み情報」に基づいてトラヒック量を調整する。
【００２２】
ＲＰＲフレーム送受信制御部２３−１および２４−１は、ネットワーク９０内部におけるＲＰＲフレームの転送制御を行う。たとえば、ＲＰＲフレーム送受信制御部２３−１は、リンク５１を介して、ノード装置１１に対するデータの送信（右回り方向のデータの送信）制御およびノード装置１１からのデータの受信（左回り方向のデータの受信）制御を行う。ＲＰＲフレーム送受信制御部２４−１は、リンク５２を介して、ノード装置２からのデータの受信（右回り方向のデータの受信）制御およびノード装置２に対するデータの送信（左回り方向のデータの送信）制御を行う。なお、隣接するノード装置２または１１からネットワーク９０上の他のノード装置宛のデータを受信した場合、当該受信データは、リンク６５−１を介して、ＲＰＲフレーム送受信制御部２３−１と２４−１との間で受け渡され、隣接するノード装置１１または２へ転送される。
【００２３】
つづいて、図２および図３を用いてＲＰＲフレーム送受信制御部２３−１がＲＰＲフレームを転送する動作について説明する。図３は、ＲＰＲフレーム送受信制御部２３−１が備えるスケジューラの動作を模式化した図であり、スケジューラ２２０と、送信経路７３から受け取った送信キュー群２２１および送信経路７４から受け取った送信キュー群２２２と、の関係を示している。なお、ＲＰＲフレーム送受信制御部２４−１も同様のスケジューラを備え、ＲＰＲフレームの転送動作を行う。
【００２４】
ＲＰＲフレーム送受信制御部２３−１は、リンク５１を介してＲＰＲフレームを受信した場合、すなわち、隣接するノード装置１１からＲＰＲフレームを受信した場合、ＲＰＲフレームの宛先ＭＡＣアドレスを確認し、転送方向（リンク６３−１および／または６５−１）を決定し、決定した転送方向に対してＲＰＲフレームを転送する。たとえば、ＲＰＲフレームを支線ネットワーク９１上の宛先ノード装置に転送する場合は、リンク６３−１を転送先とし、ＲＰＲフレームをネットワーク９０上の他のノード装置宛に転送する場合は、リンク６５−１を転送先とする。また、リンク６３−１またはリンク６５−１を介してＲＰＲフレームを受信した場合、すなわち、隣接するノード装置１１に対してＲＰＲフレームを送信する場合、ＲＰＲフレーム送受信制御部２３−１は、スケジューラ２２０に設定された優先度に基づいて送信キュー群２２１または２２２の中からキューを選択する。そして、当該選択したキューに対応するＲＰＲフレームを取り出し、当該フレームを右回りデータ転送経路７１に対して送信する。
【００２５】
なお、ＲＰＲフレーム送受信制御部２３−１は、右回りデータ転送経路７１に対して送信したパケット数およびパケットサイズを所定の周期で収集し、右回りデータ転送経路７１に関する輻輳状態を監視する。また、ＲＰＲフレーム送受信制御部２３−１が輻輳状態を検出し、ノード装置１において輻輳が発生したと判断した場合、ノード装置１の各部は、後述する動作を行うことにより上流の隣接ノード装置２が使用する最大トラヒック量を制御する。
【００２６】
つづいて、図１に示したネットワーク９０の右回りデータ転送経路７１において、ノード装置１からネットワーク９０へ送信するデータとネットワーク９０内部を流れるデータ（ノード装置２から受信し、ノード装置１１へ転送するデータ）が競合し、ノード装置１が図２に示した経路７１を介して送信するデータ量がしきい値に達した（ノード装置１において輻輳が発生した）場合の各ノード装置の動作について、図４を用いて説明する。ここで、図４は、ノード装置１において輻輳が発生した場合の、各ノード装置の動作の一例を示す図である。なお、図４に示したネットワークの構成は、上記図１に示したネットワークと同様であり、また、本説明においては、輻輳の影響を受けて最大トラヒック量が制限されたノード装置の存在する領域を、「輻輳領域」と呼ぶこととする。
【００２７】
輻輳が発生したノード装置１（以下、輻輳が発生したノード装置を「輻輳ノード装置」と呼ぶ）は、上流の隣接ノード装置２に対して、自装置の下流に位置するノード装置宛にデータを送信する際の最大トラヒック量（以下、「制限トラヒック量」と呼ぶ）を通知する。ノード装置２は、輻輳ノード装置１から通知された上記制限トラヒック量と、輻輳ノード装置１の下流に位置するノード装置宛に送信するデータの実際のトラヒック量（以下、「通常トラヒック量」と呼ぶ）とを比較する。そして、上記制限トラヒック量が上記通常トラヒック量よりも小さい場合、上記制限トラヒック量を使用してデータを送信する。また、ノード装置２は、上流の隣接ノード装置３に対して、上記制限トラヒック量を通知する。一方、上記制限トラヒック量が上記通常トラヒック量よりも大きい場合、ノード装置２は、上記通常トラヒック量を使用してデータを送信し、ノード装置３に対しては、データ送信時のトラヒック量が制限されない旨を通知する。同様に、ノード装置３は、下流の隣接ノード装置２から上記制限トラヒック量を通知されると、当該制限トラヒック量と輻輳ノード装置１の下流に位置するノード装置宛に送信するデータの実際のトラヒック量を比較する。その結果、上記制限トラヒック量を使用して輻輳ノード装置１の下流に位置するノード装置宛にデータを送信する場合は、さらに、上流の隣接ノード装置４に対して、上記制限トラヒック量を通知する。以下、下流の隣接ノード装置から通知された制限トラヒック量よりも、輻輳ノード装置１の下流に位置するノード装置宛に送信するデータの実際のトラヒック量が少なくなるまで、隣接するノード装置の間で同様の動作が実行される。そして、下流の隣接ノード装置から通知された制限トラヒック量が、輻輳ノード装置１の下流に位置するノード装置宛に送信する実際のデータのトラヒック量よりも大きいノード装置が、輻輳領域の終点となる。図４においては、８０が輻輳領域であり、８２が輻輳領域の起点であり、８３が輻輳領域の終点である。
【００２８】
ネットワーク９０を構成する各ノード装置は、それぞれＳＣＦＦを、上流の隣接ノード装置に対して一定時間間隔で送信し、上流に位置する隣接ノード装置の最大トラヒック量を制限するか否か、を通知している。なお、実際の動作においては、ネットワーク上に流れるデータ量が変化するため、輻輳領域の終点に位置するノード装置も、時間の経過と共に変化する。ここでは、ノード装置４が輻輳ノード装置１の下流へ送信するデータのトラヒック量が、ノード装置３から通知された制限トラヒック量よりも少なく、ノード装置４が輻輳領域８０の終点８３となる場合の例について説明する。
【００２９】
図５は、輻輳ノード装置１の各部の制御の流れを示す図であり、経路１００、１０１、および１２１が制御の流れを示している。図５において、経路１００は、ＳＣＦＦ３２−１１の受信制御の流れを示し、ノード装置１１から、リンク５１、ＲＰＲフレーム送受信制御部２３−１、リンク６３−１、通信制御部２０−１、およびリンク６１−１、を介してＳＣＦＦ送受信部２１−１に至る。また、経路１０１は、ＳＣＦＦ３２−１の送信制御の流れを示し、ＳＣＦＦ送受信部２１−１から、リンク６１−１、通信制御部２０−１、リンク６４−１、ＲＰＲフレーム送受信制御部２４−１、およびリンク５２、を介してノード装置２に至る。また、経路１２１は、制限トラヒック量の通知制御の流れを示し、ＲＰＲフレーム送受信制御部２３−１から、リンク６３−１、通信制御部２０−１、およびリンク６１−１、を介してＳＣＦＦ送受信部２１−１に至る。
【００３０】
図５において、輻輳が発生した場合、ＲＰＲフレーム送受信制御部２３−１は、リンク５１を介して単位時間あたりにネットワーク９０へ送信しているフレーム数およびバイト数に基づいて、他のノード装置が輻輳ノード装置１の下流に位置するノード装置宛にデータを送信する際のトラヒック量ａ（制限トラヒック量の初期値）を計算する。そして、ＲＰＲフレーム送受信制御部２３−１は、計算したトラヒック量ａを、経路１２１を介してＳＣＦＦ送受信部２１−１に通知する。ＳＣＦＦ送受信部２１−１は、経路１０１を介して、通知されたトラヒック量ａおよびＴＴＬ（Time-To-Live）を書き込んだＳＣＦＦ３２−１を、上流の隣接ノード装置２に対して送信する。輻輳ノード装置１がＳＣＦＦ３２−１を送信する場合、ＴＴＬ値にはネットワーク９０を構成している全てのノード装置の数を示す「ｃ」を設定する。図４に示したネットワーク９０は“１１”のノード装置により構成されているため、ＴＴＬ値は“１１（ｃ＝１１）”となる。
【００３１】
つづいて、図４に示した輻輳領域８０に含まれるノード装置２〜４が、下流の隣接ノード装置からＳＣＦＦを受信した場合の動作について説明する。まず、ノード装置２の動作を図６〜９を用いて説明する。図６は、ＳＣＦＦ３２−１を受信したノード装置２の各部の制御の流れを示す図であり、経路１０１、１０２、および１１１が制御の流れを示している。図６において、経路１０１は、ＳＣＦＦ３２−１の受信制御の流れを示し、ノード装置１から、リンク５２、ＲＰＲフレーム送受信制御部２３−２、リンク６３−２、通信制御部２０−２、およびリンク６１−２、を介してＳＣＦＦ送受信部２１−２に至る。また、経路１０２は、ＳＣＦＦ３２−２の送信制御の流れを示し、ＳＣＦＦ送受信部２１−２から、リンク６１−２、通信制御部２０−２、リンク６４−２、ＲＰＲフレーム送受信制御部２４−２、およびリンク５３、を介してノード装置３に至る。また、経路１１１は、重み情報の通知制御の流れを示し、重み計算部２２−２から、リンク６２−２、通信制御部２０−２、リンク６３−２、およびＲＰＲフレーム送受信制御部２３−２、を介してノード装置１に至る。
【００３２】
また、図７は、輻輳発生により最大トラヒック量が制限された場合のＳＣＦＦ送受信部２１−２の処理の流れを示す図であり、図８は、輻輳ノード装置までのホップ数をＳＣＦＦ送受信部２１−２から通知された場合の、重み計算部２２−２の処理の流れを示す図である。また、図９は、輻輳領域８０に含まれ、輻輳ノード装置１までのホップ数がそれぞれ１，２，３であるノード装置２〜４が、重み情報をノード装置１に対して通知する様子を示す図である。
【００３３】
ノード装置２のＳＣＦＦ送受信部２１−２は、経路１０１を介してノード装置１からＳＣＦＦ３２−１を受信すると、これに設定されている最大トラヒック量を確認する。最大トラヒック量は、通常「ＦＵＬＬ」が設定されており、ネットワーク９０上で輻輳が発生し、かつ輻輳ノード装置の下流に位置するノード装置宛のトラヒック量が制限されている場合にのみ、具体的な数値が設定される。そのため、ＳＣＦＦ送受信部２１−２は、上記トラヒック量が「ＦＵＬＬ」以外（この例においては「ａ」）の場合に、図７に示した処理を行う。
【００３４】
最大トラヒック量として「ａ」が設定されたＳＣＦＦ３２−１を受信した場合、ＳＣＦＦ送受信部２１−２は、まず、ＳＣＦＦ３２−１のＴＴＬ値を確認する（ステップＳ１１）。つぎに、ＳＣＦＦ送受信部２１−２は、ステップＳ１１において確認したＴＴＬ値に基づいて、輻輳ノード装置までのホップ数（ｂ）を計算する（ステップＳ１２）。ここで、上述したように、ＳＣＦＦに設定されるＴＴＬ値の初期値は、ネットワーク９０を構成している全ノード装置数（ｃ）が設定されている。そのため、「ａ」が設定されたＳＣＣＦのＴＴＬ値を「Ｔ」とすると、輻輳ノード装置までのホップ数（ｂ）は、次式（１）で表すことができる。
【００３５】
ｂ＝ｃ−Ｔ＋１        …（１）
【００３６】
つぎに、ＳＣＦＦ送受信部２１−２は、図６に示した経路１２２を介して上記ホップ数（ｂ）を重み計算部２２−２へ通知する（ステップＳ１３）。なお、図４に示した例においては、ノード装置１が輻輳ノード装置であるため、上記ＳＣＦＦ３２−１のＴＴＬ値は“１１”である。そのため、ホップ数（ｂ）は“１”となる。
【００３７】
つぎに、ＳＣＦＦ送受信部２１−２は、ＳＣＦＦ３２−１として受信したＳＣＦＦのＴＴＬ値を１だけ減じる（ステップＳ１４）。そして、ＳＣＦＦ送受信部２１−２は、ノード装置２が輻輳領域の終点でない場合には、最大トラヒック量に「ａ」が設定されたＳＣＦＦを、ＳＣＦＦ３２−２として経路１０２を介してノード装置３に対して送信する（ステップＳ１５）。一方、ノード装置２が輻輳領域の終点となる場合、ＳＣＦＦ送受信部２１−２は、最大トラヒック量に「ＦＵＬＬ」が設定されたＳＣＦＦを送信する。図４に示した例においては、ノード装置２は輻輳領域の終点でないため、ＳＣＦＦ３２−２の最大トラフィック量に「ａ」が設定される。
【００３８】
なお、図４に示した例においては、ノード装置３から送信されるＳＣＦＦ３２−３に設定される最大トラヒック量も同じく「ａ」である。また、輻輳領域の終点となるノード装置４および輻輳領域外のノード装置から送信されるＳＣＦＦ（ＳＣＦＦ３２−４、３２−５、３２−８〜１１に相当）の最大トラフィック量には「ＦＵＬＬ」が設定される。
【００３９】
また、重み計算部２２−２は、ＳＣＦＦ送受信部２１−２からホップ数（ｂ＝１）の通知を受けると（上記ステップＳ１３に相当）、右回りデータ転送経路７１において、ネットワーク９０を構成するノード装置の中で輻輳ノード装置１の下流に位置するノード装置の数（ｄ）を、次式（２）を用いて算出する（ステップＳ２１）。すなわち、図４において、輻輳領域８０に含まれていないノード装置の中で、右回りデータ転送経路７１を使用して送信されるデータの宛先となり得るノード装置（ただし輻輳ノード装置１は除く）の数を算出する。
【００４０】
ｄ＝ｃ／２−ｂ                …（２）
【００４１】
なお、ノード装置１〜１１は、ネットワーク９０上のノード装置宛のデータ送信時において、宛先ノード装置までのホップ数が小さくなるようにデータ転送経路７１または７２を選択する。そのため、輻輳ノード装置１の下流に位置するノード装置の数を算出する場合は、下流の隣接ノード装置から、全ノード装置の数（ｃ）の半分のホップ数（小数点以下切捨て）を隔てたノード装置まで、が対象となる。なお、図４に示した例においては、全ノード装置の数（ｃ）が“１１”、ノード装置２からノード装置１までのホップ数（ｂ）が“１”であるため、ｄは“４”となる。
【００４２】
つぎに、重み計算部２２−２は、上記ｄをノード装置２の重み情報として図９に示した重み通知フレーム４１−２に設定し（ステップＳ２２）、さらに、ネットワーク９０に含まれる全ノード装置数（ｃ＝１１）を、重み通知フレーム４１−２のＴＴＬ値として設定する（ステップＳ２３）。さらに、重み計算部２２−２は、重み通知フレーム４１−２の宛先アドレスとして輻輳ノード装置１のアドレスを設定し（ステップＳ２４）、図６に示した経路１１１を介してノード装置１宛に送信する（ステップＳ２５）。なお、輻輳ノード装置１のアドレスは、ノード装置２が管理しているトポロジデータベースから得ることができる。また、重み通知フレーム４１−２に設定されたＴＴＬ値は、重み通知フレーム４１−２が各ノード装置において中継される度に１ずつ減らされ、輻輳ノード装置１において終端される（重み通知フレームは、ＴＴＬ値の内容に関係なく輻輳ノード装置において終端される）。
【００４３】
また、図４に示した輻輳領域８０に含まれるノード装置３および４がＳＣＦＦを受信した場合、上述したノード装置２と同様の動作を行うことにより重み情報（ｄ）を計算し、その計算結果（重み情報）を輻輳ノード装置１に対して通知する。図９に示したように、ノード装置３および４についての重み情報（ｄ）は、それぞれ“３”および“２”となる。
【００４４】
なお、上述したように、輻輳領域に含まれるノード装置が計算した重み情報（ｄ）と輻輳が発生したノード装置までのホップ数（ｂ）の間には、ｂが１減少するとｄが１増加するという関係が成立している。そのため、輻輳ノード装置に対して輻輳領域の終点に位置するノード装置のみが重み情報（ｄ）を通知することとしてもよい。この場合は、重み情報の通知を受けた輻輳ノード装置が、輻輳領域に含まれる残りのノード装置についての重み情報を計算する。たとえば、図４に示した例の場合、終点８３に位置するノード装置４のみが輻輳ノード装置１に対して重み情報（ｄ＝２）を通知し、輻輳ノード装置１は、ノード装置４から通知された重み情報（ｄ＝２）に基づいてノード装置２および３についての重み情報を計算する。これにより、輻輳領域に含まれるノード装置の処理を削減でき、さらに通信リソースの消費を最小限に抑えることができる。
【００４５】
つづいて、輻輳ノード装置１が、輻輳領域８０に含まれるノード装置２〜４から上述した重み情報（ｄ）を受け取った場合の動作を、図１０〜１２を用いて説明する。図１０は、重み情報（ｄ）を受け取った場合の輻輳ノード装置１の各部の制御の流れを示す図であり、経路１０３、および１１１が制御の流れを示している。図１０において、経路１０３は、ＳＣＦＦ３２ａ−１の送信制御の流れを示し、ＳＣＦＦ送受信部２１−１から、リンク６１−１、通信制御部２０−１、リンク６４−１、ＲＰＲフレーム送受信制御部２４−１、およびリンク５２、を介してノード装置２に至る。また、経路１１１は、重み通知フレーム４１−２の受信制御の流れを示し、ノード装置２から、リンク５２、ＲＰＲフレーム送受信制御部２４−１、リンク６４−１、通信制御部２０−１、およびリンク６２−１、を介して重み計算部２２−１に至る。
【００４６】
また、図１１は、輻輳ノード装置１の重み計算部２２−１の処理の流れを示す図であり、図１２は、輻輳ノード装置１のＳＣＦＦ送受信部２１−１の処理の流れを示す図である。
【００４７】
ノード装置１の重み計算部２２−１およびＳＣＦＦ送受信部２１−１は、輻輳領域８０に含まれるノード装置２〜４から重み通知フレーム４１−２〜４を受信した場合、受信したフレームに含まれた重み情報に基づいてノード装置２に対して通知する最大トラヒック量である制限トラヒック量（ａ）を調整し、調整後の制限トラヒック量を上流の隣接ノード装置２に通知する（図１０参照）。以下、重み計算部２２−１およびＳＣＦＦ送受信部２１−１が制限トラヒック量を調整する動作を具体的に説明する。
【００４８】
重み計算部２２−１は、まず、輻輳領域８０の終点に位置するノード装置４から送信された重み通知フレーム４１−４のＴＴＬ値（ｇ）に基づいて、ノード装置４までのホップ数（ｆ）を、次式（３）を用いて計算する（ステップＳ３１）。なお、このｆは、輻輳領域８０に含まれるノード装置の総数に等しい。
【００４９】
ｆ＝ｃ−ｇ＋１              …（３）
【００５０】
つぎに、重み計算部２２−１は、輻輳領域８０に含まれるノード装置２〜４から通知された重み情報の合計値（ｅ）を計算する（ステップＳ３２）。なお、上述したように、輻輳領域に含まれる各ノード装置の重み情報と、輻輳が発生したノード装置から各ノード装置までのホップ数は、どちらかが１増加すると他方が１減少する関係にある。そのため、輻輳領域８０の終点に位置するノード装置４のみが重み情報を通知するようなシステムとした場合、重み計算部２２−１は、ノード装置４の重み情報に基づいて、他のノード装置２および３の重み情報を自律的に計算する。
【００５１】
さらに、重み計算部２２−１は、ノード装置２〜４が輻輳ノード装置１よりも下流へデータを送信する際の制限トラヒック量の合計値と、上流の隣接ノード装置２が輻輳ノード装置１よりも下流へデータを送信する際の制限トラヒック量と、の比率（ｈ）を、次式（４）を用いて計算する（ステップＳ３３）。
【００５２】
ｈ＝ｆ×ｂ／ｅ                …（４）
【００５３】
そして、重み計算部２２−１は、ステップＳ３３において計算した比率（ｈ）を、経路１２３を介してＳＣＦＦ送受信部２１−１へ通知する（ステップＳ３４）。
【００５４】
ＳＣＦＦ送受信部２１−１は、重み計算部２２−１から比率（ｈ）を通知されると、次式（５）を用いて、上流の隣接ノード装置２が輻輳ノード装置１よりも下流へデータを送信する際の制限トラヒック量（ｊ）を算出する（図１２のステップＳ４１）。
【００５５】
ｊ＝ｈ×ａ                    …（５）
【００５６】
つぎに、ＳＣＦＦ送受信部２１−１は、上記「ｊ」をＳＣＦＦに設定し、さらにネットワーク９０に含まれる全ノード装置数（ｃ＝１１）をＴＴＬ値としてＳＣＦＦに設定する（ステップＳ４２）。そして、ＳＣＦＦ送受信部２１−１は、上流の隣接ノード装置２に対して上記ステップＳ４２において生成したＳＣＦＦを、ＳＣＦＦ３２ａ−１として経路１０３を介して送信する(ステップＳ４３）。
【００５７】
つづいて、輻輳領域に含まれるノード装置が、トラヒック量を変更する動作について説明する。まず、輻輳ノード装置１の上流の隣接ノード装置２の動作を、図１３および１４を用いて説明する。図１３は、上記調整後の制限トラヒック量（ｊ）を通知されたノード装置２の各部の制御の流れを示す図であり、経路１０３、および１０４が制御の流れを示している。図１３において、経路１０３は、ＳＣＦＦ３２ａ−１の受信制御の流れを示し、ノード装置１から、リンク５２、ＲＰＲフレーム送受信制御部２３−２、リンク６３−２、通信制御部２０−２、およびリンク６１−２、を介してＳＣＦＦ送受信部２１−２に至る。また、経路１０４は、ＳＣＦＦ３２ａ−２の送信制御の流れを示し、ＳＣＦＦ送受信部２１−２から、リンク６１−２、通信制御部２０−２、リンク６４−２、ＲＰＲフレーム送受信制御部２４−２、およびリンク５３、を介してノード装置３に至る。また、図１４は、上記図１３に示した制御を行う際のＳＣＦＦ送受信部２１−２の処理の流れを示す図である。
【００５８】
ＳＣＦＦ送受信部２１−２は、ノード装置１から、上記調整後の制限トラヒック量（ｊ）を、経路１０３を介して受け取ると、輻輳ノード装置１よりも下流へデータを送信する際のトラヒック量を「ｊ」に設定する（ステップＳ５１）。以後、ノード装置２は、このトラヒック量「ｊ」に基づいてデータ送信動作を行う。
【００５９】
つぎに、ＳＣＦＦ送受信部２１−２は、上流の隣接ノード装置３が輻輳ノード装置１よりも下流へデータを送信する際の制限トラヒック量（ｌ）を計算する。具体的には、ＳＣＦＦ送受信部２１−２は、上述した動作により計算した自装置の重み情報を重み計算部２２−２から経路１２４を介して取得する。そして、ＳＣＦＦ送受信部２１−２は、自装置が輻輳ノード装置１よりも下流へデータを送信する際の制限トラヒック量（ｊ）と、上流の隣接ノード装置３がノード装置１よりも下流へデータを送信する際の制限トラヒック量（ｌ）と、の比率（ｋ）を、重み計算部２２−２から取得した重み情報を用いて計算する（ステップＳ５２）。ここで、各ノード装置の重み情報と輻輳が発生したノード装置までのホップ数との間には、上述したような関係があるため、上流の隣接ノード装置の重み情報は、自装置の重み情報から１を減算したものとなる。したがって、比率（ｋ）は、次式（６）で表すことができる。なお、次式（６）において、「ｄ」は、自装置（ノード装置２）の重み情報を示す。
【００６０】
ｋ＝（ｄ−１）／ｄ                  …（６）
【００６１】
つぎに、ＳＣＦＦ送受信部２１−２は、上記ステップＳ５２で算出した比率（ｋ）を次式（７）に適用して、隣接ノード装置３が輻輳ノード装置１よりも下流へデータを送信する際の制限トラヒック量（ｌ）を計算する（ステップＳ５３）。
【００６２】
ｌ＝ｊ×ｋ                          …（７）
【００６３】
つぎに、ＳＣＦＦ送受信部２１−２は、ＳＣＦＦ３２ａ−１として受信したＳＣＦＦに上記「ｌ」を設定し、さらにＳＣＦＦのＴＴＬ値を１だけ減じる（ステップＳ５４）。そして、ＳＣＦＦ送受信部２１−２は、上記ステップＳ５４において生成したＳＣＦＦを、ＳＣＦＦ３２ａ−２として経路１０４を介して上流の隣接ノード装置３に対して送信する（ステップＳ５５）。
【００６４】
ＳＣＦＦ３２ａ−２を受信したノード装置３は、上記制限トラヒック量（ｌ）を取得すると、自装置が輻輳ノード装置１よりも下流へデータを送信する際のトラヒック量を「ｌ」に設定する。以後、ノード装置３は、このトラヒック量「ｌ」に基づいてデータ送信動作を行う。また、ノード装置３の各部は、「ｌ」に基づいて上述したノード装置２と同様の処理を行い、上流の隣接ノード装置４が輻輳ノード装置１よりも下流へデータを送信する際の制限トラヒック量を算出する。そして、その算出結果をＳＣＦＦ３２ａ−２として受信したＳＣＦＦに設定し、さらにＳＣＦＦのＴＴＬ値を１だけ減らして、その結果をノード装置４に対して送信する。以下、ノード装置４は、ノード装置３から通知された制限トラヒック値に基づいて動作を行う。
【００６５】
上述したように、本実施の形態においては、輻輳領域８０に含まれる各ノード装置が、隣接したノード装置と連携した動作を行い、下流の隣接ノード装置から通知された制限トラヒック量に基づいてデータ送信動作を行う。また、下流の隣接ノード装置から通知された制限トラヒック量に基づいて、さらに、上流の隣接ノード装置が使用する制限トラヒック量を算出し、その算出結果をＳＣＦＦに設定して上流の隣接ノード装置に通知する。
【００６６】
この結果、輻輳領域８０のノード装置２〜４が、輻輳ノード装置１よりも下流へデータを送信する際の最大トラヒック量（制限トラヒック量）は、図１５に示したように、それぞれ４ａ／３、ａ、２ａ／３となる。なお、図１５は、輻輳領域８０の各ノード装置が使用する最大トラヒック量の調整後の値を示す図である。
【００６７】
最後に、輻輳領域のノード装置が、上述した動作により取得した調整後の制限トラヒック量に基づいて、最大トラヒック量を制御する動作を、図１６を用いて説明する。図１６は、輻輳領域のノード装置が、調整後の制限トラヒック量を使用して通信制御動作を行う様子を示した図である。なお、図１６において、ノード装置１〜３は、ＳＣＦＦ３２ａ−１〜３を使用して、上流の隣接ノード装置に対して調整後の制限トラヒック量を通知している。また、３２ａ−１０および３２ａ−１１は、それぞれ、ノード装置１０および１１が送信するＳＣＦＦであり、最大トラヒック量として「ＦＵＬＬ」（最大トラヒック量の制限なし）が設定されている。
【００６８】
たとえば、輻輳領域８０のノード装置は、通知されたＳＣＦＦに設定されている最大トラヒック量が「ＦＵＬＬ」以外の場合、輻輳領域のノード装置の中で自装置の下流に位置する宛先ノード装置群をｐｒｅ領域とし、輻輳ノード装置１の下流に位置する宛先ノード装置群をｐｏｓｔ領域として分類する。なお、輻輳ノード装置１はｐｒｅ領域に含まれる。ここで、各ノード装置は、宛先のノード装置までのホップ数が小さくなるようにネットワーク９０上のデータ送信方向（データ転送経路）を選択するように動作している。そのため、分類する宛先ノード装置は、下流の隣接ノード装置から、全ノード装置数の半分（小数点以下切捨て）のホップ数にある宛先ノード装置まで、が対象となる。図１６は、ノード装置４が右回りデータ転送経路７１を使用してデータを送信する場合について、各宛先ノード装置をｐｒｅ領域２０１とｐｏｓｔ領域２０２に分類した状態の一例を示している。
【００６９】
また、図１７は、輻輳領域に含まれるノード装置のＲＰＲフレーム送受信制御部が備えるスケジューラで、図２の支線ネットワーク９１から経路７３を通じて右回りデータ転送経路７１へデータを送信する時の動作を模式化した図であり、図３に示したスケジューラ２２０がキュー群２２１から一つのキューを選択する動作を示したものである。そして、図１７は、一例として、ノード装置４が宛先ノード装置群を図１６に示したように分類した場合を示しており、ｐｒｅ領域送信キュー群２０３と、ｐｏｓｔ領域送信キュー群２０４と、ｐｒｅシェーパ２０５と、ｐｏｓｔシェーパ２０６と、前段スケジューラ２０８および２０９と、後段スケジューラ２０７と、送信許可信号２１０および２１１と、の関係を示している。
【００７０】
図１７において、ｐｒｅ領域送信キュー群２０３は、ｐｒｅ領域のノード装置宛の送信キュー群、ｐｏｓｔ領域送信キュー群２０４は、ｐｏｓｔ領域のノード装置宛の送信キュー群である。また、前段スケジューラ２０８は、ｐｒｅ領域送信キュー群２０３の中から一つのキューを選択する。前段スケジューラ２０９は、ｐｏｓｔ領域送信キュー群２０４の中から一つのキューを選択する。後段スケジューラ２０７は、キューの優先度に基づいて前段スケジューラ２０８，２０９における選択結果のいずれか一方を選択する。また、ｐｒｅシェーパ２０５は、ｐｒｅ領域のノード装置宛にデータを送信する際に使用するトラヒック量を制御し、ｐｏｓｔシェーパ２０５は、ｐｏｓｔ領域のノード装置宛にデータを送信する際に使用するトラヒック量を制御する。以下、ノード装置４のデータ送信動作について、図１６および１７を用いて説明する。
【００７１】
輻輳領域８０のノード装置４は、上述した動作により調整後の制限トラヒック量（＝２ａ／３）が設定されたＳＣＦＦを受信すると、そのＳＣＦＦのＴＴＬ値から輻輳ノード装置１までのホップ数を算出する。輻輳ノード装置１までのホップ数とｐｒｅ領域の宛先ノード装置数は等しいため、このホップ数に基づいて、ノード装置４は、図１７に示すように送信キューをｐｒｅ領域送信キュー群２０３とｐｏｓｔ領域送信キュー群２０４とに分類する。
【００７２】
前段スケジューラ２０８および２０９は、それぞれ設定されている優先度に基づいてｐｒｅ領域送信キュー群２０３およびｐｏｓｔ領域送信キュー群２０４の中から１つのキューを選択する。ｐｒｅシェーパ２０５は、送信許可信号２１０を用いてｐｒｅ領域２０１のノード装置宛に送信するデータのトラヒック量を制御し、ｐｏｓｔシェーパ２０６は、送信許可信号２１１を用いてｐｏｓｔ領域２０２のノード装置宛に送信するデータのトラヒック量を制御する。図１７は、ノード装置４がデータを送信する場合を示しているので、ｐｏｓｔシェーパ２０６は、トラヒック量が「２ａ／３」に抑えられるように送信許可信号２１１を制御する。なお、ｐｒｅシェーパ２０５は、トラヒック量がネットワーク９０の許容最大値に抑えられるように送信許可信号２１０を制御する。
【００７３】
後段スケジューラ２０７は、送信許可信号２１０および２１１の状態に基づいて前段スケジューラ２０８および２０９が決定した送信キューのうちのいずれか一方を選択し、それに対応するデータ送信動作を実行する。具体的には、後段スケジューラ２０７は、送信許可信号２１０のみが有効の場合、前段スケジューラ２０８が決定した送信キューを選択する。また、後段スケジューラ２０７は、送信許可信号２１０および２１１が共に有効の場合、前段スケジューラ２０９が決定した送信キューを選択する。これにより、ノード装置４は、図１７に示したｐｏｓｔ領域送信キュー群２０４から選択したキューを実行する際のトラヒック量を、上記制限トラヒック量の「２ａ／３」に抑えるように制御することができる。
【００７４】
輻輳領域８０の各ノード装置が同様の動作を実行することにより、ノード装置４，３，２が、輻輳ノード装置１よりも下流へデータを送信する際の最大トラヒック量を、それぞれ、「２ａ／３」、「ａ」、「４ａ／３」に制御することができる。
【００７５】
なお、ネットワーク９０の左回りデータ転送経路７２において輻輳が発生した場合においても、各ノード装置は、同様の動作を行う。
【００７６】
このように、本実施の形態においては、リング型の通信ネットワークにおいて輻輳が発生した場合、輻輳領域の各ノード装置と輻輳ノード装置との距離（ホップ数）に基づいて算出した重み情報に応じて、輻輳領域の各ノード装置の最大トラヒック量を個別に調整することとした。これにより、輻輳ノード装置の上流に位置する各ノード装置の最大トラヒック量を、輻輳ノード装置の下流に位置するノード装置宛の送信データ量に応じて調整できるので、輻輳ノード装置の上流に位置する各ノード装置間で公平性を保つことができる。
【産業上の利用可能性】
【００７７】
以上のように、本発明にかかる通信制御方法は、リング型の通信ネットワークの通信制御方法として有用であり、特に、特定のノード装置が輻輳状態となった場合の通信制御方法として適している。
【図面の簡単な説明】
【００７８】
【図１】本発明にかかるノード装置により構成されたリング型ネットワークの構成例を示す図である。
【図２】本発明にかかるノード装置の構成例を示す図である。
【図３】ＲＰＲフレーム送受信制御部が備えるスケジューラの動作を模式化した図である。
【図４】輻輳が発生した場合の各ノード装置の動作の一例を示す図である。
【図５】輻輳ノード装置の各部の制御の流れを示す図である。
【図６】ＳＣＦＦを受信したノード装置の各部の制御の流れを示す図である。
【図７】トラヒック量が制限された場合のＳＣＦＦ送受信部の処理の流れを示す図である。
【図８】輻輳ノード装置までのホップ数をＳＣＦＦ送受信部から通知された場合の重み計算部の処理の流れを示す図である。
【図９】輻輳領域に含まるノード装置が、重み情報を輻輳ノード装置に対して通知する様子を示す図である。
【図１０】輻輳ノード装置の各部の制御の流れを示す図である。
【図１１】輻輳ノード装置の重み計算部の処理の流れを示す図である。
【図１２】輻輳ノード装置のＳＣＦＦ送受信部の処理の流れを示す図である。
【図１３】輻輳ノード装置から調整後の制限トラヒック量を通知されたノード装置の各部の制御の流れを示す図である。
【図１４】輻輳ノード装置から調整後の制限トラヒック量を通知されたノード装置のＳＣＦＦ送受信部の処理の流れを示す図である。
【図１５】輻輳領域の各ノード装置が使用する最大トラヒック量の調整後の値を示す図である。
【図１６】輻輳領域のノード装置が、調整後の制限トラヒック量を使用して通信制御動作を行う様子を示した図である。
【図１７】輻輳領域に含まれるノード装置のＲＰＲフレーム送受信制御部が備えるスケジューラのデータ送信時の動作を模式化した図である。
【符号の説明】
【００７９】
１、２、３、４、５、６、７、８、９、１０、１１  ノード装置
２０−１、２０−２  通信制御部
２１−１、２１−２  ＳＣＦＦ送受信部
２２−１、２２−２  重み計算部
２３−１、２３−２、２４−１、２４−２  ＲＰＲフレーム送受信制御部
３２−１、３２−２、３２−３、３２−４、３２−５、３２−８、３２−９、３２−１０、３２−１１、３２ａ−１、３２ａ−２、３２ａ−３、３２ａ−１０、３２ａ−１１  シングルチョーク・フェアネスフレーム
４１−２、４１−３、４１−４  重み通知フレーム
５１、５２、５３、６１−１、６２−１、６３−１、６４−１、６５−１、６６−１、６１−２、６２−２、６３−２、６４−２、６５−２、６６−２  リンク
７１、７２  データ転送経路
７３、７４  送信経路
８０  輻輳領域
８２  起点
８３  終点
９０  ネットワーク
９１  支線ネットワーク
１００、１０１、１０２、１０３、１０４、１１１、１２１、１２２、１２３、１２４  経路
２０１  ｐｒｅ領域
２０２  ｐｏｓｔ領域
２０３  ｐｒｅ領域送信キュー群
２０４  ｐｏｓｔ領域送信キュー群
２０５  ｐｒｅシェーパ
２０６  ｐｏｓｔシェーパ
２０７  後段スケジューラ
２０８、２０９  前段スケジューラ
２２０  スケジューラ
２１０、２１１  送信許可信号
２２１、２２２  送信キュー
【図１】
2007135001.tif 000003
【図２】
2007135001.tif 000004
【図３】
2007135001.tif 000005
【図４】
2007135001.tif 000006
【図５】
2007135001.tif 000007
【図６】
2007135001.tif 000008
【図７】
2007135001.tif 000009
【図８】
2007135001.tif 000010
【図９】
2007135001.tif 000011
【図１０】
2007135001.tif 000012
【図１１】
2007135001.tif 000013
【図１２】
2007135001.tif 000014
【図１３】
2007135001.tif 000015
【図１４】
2007135001.tif 000016
【図１５】
2007135001.tif 000017
【図１６】
2007135001.tif 000018
【図１７】
2007135001.tif 000019