(57)【特許請求の範囲】
【請求項１】
リング状に接続された複数のノードからなる通信ネットワークにおいて上流ノードから下流ノードへ向かうデータ伝送に輻輳が発生した場合に、上流ノードの入力レートを制限する制御レートを含む制御情報を送信するノード内における通信制御装置であって、
自ノードにおけるデータの入力に許容される許容レートを決定する決定手段と、
前記決定手段によって決定された許容レートが自ノードの希望レート未満である場合に、自ノードの入力レートに等しい制御レートを含み前記上流ノードの入力レートを前記制御レートにまで制限することを要求する制御情報を生成する一方、前記決定手段によって決定された許容レートが自ノードの希望レート以上である場合に、自ノードの入力レートに等しい制御レートと希望レートが達成される旨の満足情報とを含み前記上流ノードよりもさらに上流のノードにおける入力レートを制限する権利を前記上流ノードに譲る拡張制御情報を生成する生成手段と、
前記生成手段によって生成された制御情報または拡張制御情報を前記上流ノードへ送信する送信手段と
を有することを特徴とする通信制御装置。
【請求項２】
自ノードにおける入力データを蓄積可能なキューを備え、前記決定手段によって決定された許容レートに従って前記キューを経由する入力データの入力レートを制御する制御手段をさらに有し、
前記生成手段は、
前記キューに入力データが蓄積されていない場合に拡張制御情報を生成することを特徴とする請求項１記載の通信制御装置。
【請求項３】
自ノードよりも下流のノードにおける入力レートが制御レートとして格納された制御情報または拡張制御情報を受信する受信手段をさらに有し、
前記生成手段は、
前記受信手段によって受信された情報の種別に応じて拡張制御情報を生成するか否かを決定することを特徴とする請求項１記載の通信制御装置。
【請求項４】
前記生成手段は、
前記受信手段によって拡張制御情報が受信され、かつ許容レートが希望レート以上である場合に、拡張制御情報を生成することを特徴とする請求項３記載の通信制御装置。
【請求項５】
リング状に接続された複数のノードからなる通信ネットワークにおいて上流ノードから下流ノードへ向かうデータ伝送に輻輳が発生した場合に、上流ノードの入力レートを制限する制御レートを含む制御情報を送信するノード内における通信制御方法であって、
自ノードにおけるデータの入力に許容される許容レートを決定する決定工程と、
前記決定工程にて決定された許容レートが自ノードの希望レート未満である場合に、自ノードの入力レートに等しい制御レートを含み前記上流ノードの入力レートを前記制御レートにまで制限することを要求する制御情報を生成する第１生成工程と、
前記決定工程にて決定された許容レートが自ノードの希望レート以上である場合に、自ノードの入力レートに等しい制御レートと希望レートが達成される旨の満足情報とを含み前記上流ノードよりもさらに上流のノードにおける入力レートを制限する権利を前記上流ノードに譲る拡張制御情報を生成する第２生成工程と、
前記第１生成工程または前記第２生成工程にて生成された制御情報または拡張制御情報を上流ノードへ送信する送信工程と
を有することを特徴とする通信制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リング状に接続された複数のノードからなる通信ネットワークにおいて上流ノードから下流ノードへ向かうデータ伝送に輻輳が発生した場合に、上流ノードの入力レートを制限する制御レートを含む制御情報を送信するノード内における通信制御装置および通信制御方法に関し、特に、ノードにおける通信レートの発振を防止し、通信ネットワークを構成する複数のノードに公平に帯域を分配することができる通信制御装置および通信制御方法に関する。
【背景技術】
【０００２】
近年、ＭＡＮ（Metropolitan Area Network）領域における通信技術としてＲＰＲ（Resilient Packet Ring）が注目されている。ＲＰＲは、通信ネットワーク内の複数のノードが二重のリング状に接続されて構成されており、ＩＥＥＥ８０２．１７によって標準化されている。ＲＰＲでは、いずれかのノード間で障害が発生した場合、５０ｍｓ以内に通信経路が反対方向の経路へ切り替えられ、ＳＯＮＥＴ／ＳＤＨ並みの障害復旧能力を有している。また、ＲＰＲでは、帯域の公平性が確保されることも大きな特徴となっている。
【０００３】
具体的には、ＲＰＲの１つのノードにおけるトラフィックには、上流ノードから伝送されてこのノードを通過するトラフィックとこのノードにおいて入力されるトラフィックとの２種類が存在する。これらの２種類のトラフィックでは、ノードを通過するトラフィックの方が優先されるため、上流ノードから多くのトラフィックが伝送されると、下流ノードではトラフィックを入力することができなくなる。このため、ＲＰＲでは各ノードに帯域が公平に分配されて、上下流のノードで入力レートが不均一になることを防止している。
【０００４】
このとき、下流ノードの入力レートを増加させるためには、上流ノードの入力レートを減少させる必要がある。そこで、下流ノードは、自ノードにおいて輻輳の発生を検知すると、上流ノードに対してバックプレッシャーをかけて入力レートを制限する。その結果、上流ノードの入力レートの減少に伴って下流ノードの入力レートが増加し、各ノードの入力レートの公平性が保たれるようになる。より具体的には、輻輳を検知した下流ノードは、自ノードにおける入力レートを制御レートとして上流ノードへ通知する。そして、制御レートを受け取った上流ノードは、入力レートを制御レートへ収束させるように調整する。これにより、上流ノードの入力レートが少しずつ減少するとともに、下流ノードの入力レートが少しずつ増加して制御レートも少しずつ大きくなり、最終的には、上流ノードと輻輳を検知した下流ノードとは、同一の入力レートでトラフィックを入力するようになる。
【０００５】
このような帯域の公平性を確保するための制御は、例えば特許文献１などに開示されているように、ＳＯＮＥＴ／ＳＤＨにおいても行われている。
【０００６】
【特許文献１】特表２００４−５２５５３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、輻輳発生時に上述の制御が実行された場合、輻輳の解除と輻輳の発生とが交互に繰り返され、各ノードにおける入力トラフィックが安定せず、結果として、各ノードの公平性が確保されないことがあるという問題がある。以下、具体例を挙げて説明する。
【０００８】
図７−１は、ノード１〜７からなるＲＰＲが適用された通信ネットワークの一例を示す図である。この通信ネットワークにおけるリング全体で伝送可能なレートを示すリング容量レートは１００Ｍｂｐｓ（メガビットパーセカンド：以下単に「Ｍ」と略記する）であるとする。この通信ネットワークにおいて、ノード１およびノード２が入力レート４０Ｍでノード４への伝送を行う場合、下流のノード３では、３０Ｍのレートでノード４への伝送を希望するものの、上流ノードからの通過トラフィックを優先させるため、ノード３における入力レートは２０Ｍとなる。
【０００９】
そして、ノード１〜３からノード４へのトラフィックレートがリング容量レートに達するため、ノード３とノード４の間で輻輳が発生する。このため、ノード３は輻輳発生を検知し、自ノードの入力レートである２０Ｍを制御レートとしてノード２およびノード１へ通知する。制御レートが通知されたノード１およびノード２においては、入力レートが制御レートである２０Ｍへ収束するように制御され、例えば図７−２に示すように、ノード１およびノード２の入力レートが３５Ｍに減少する。このとき、ノード１およびノード２の入力レートが合計で１０Ｍ減少したことになるため、その分ノード３の入力レートが増加し、ノード３の入力レートは３０Ｍとなる。
【００１０】
これにより、ノード３は、希望の入力レートを達成することになるが、ノード１〜３からノード４へのトラフィックレートは依然としてリング容量レートに達しているため、ノード３とノード４の間での輻輳は解除されず、ノード３によって引き続き自ノードの入力レート３０Ｍが制御レートとしてノード２およびノード１へ通知される。このため、最終的には図７−３に示すように、ノード１およびノード２の入力レートがノード３の入力レートと同じ３０Ｍになり、ノード１〜３の合計の入力レートが９０Ｍとなってリング容量レート未満となるため、輻輳が解除される。
【００１１】
ところが、輻輳が解除されるため、ノード２およびノード１へノード３の入力レートが制御レートとして通知されることがなくなり、ノード１およびノード２は、制御レートが通知されないことから、再び入力レートを希望の４０Ｍに増加させる。そして、上流ノードからの通過トラフィックを優先させるため、ノード３における入力レートは２０Ｍとなり、再びノード３とノード４の間で輻輳が発生し、図７−１の状態となる。以降、図７−１から図７−３の状態が繰り返され、ノード１〜ノード３の入力レートは安定せず発振してしまう。また、ノード３の入力レートは常にノード１およびノード２の入力レート以下であり、帯域の分配が公平に行われていない。
【００１２】
本発明はかかる点に鑑みてなされたものであり、ノードにおける通信レートの発振を防止し、通信ネットワークを構成する複数のノードに公平に帯域を分配することができる通信制御装置および通信制御方法を提供することを目的とする。
【課題を解決するための手段】
【００１３】
本願が開示する通信制御装置は、１つの態様において、リング状に接続された複数のノードからなる通信ネットワークにおいて上流ノードから下流ノードへ向かうデータ伝送に輻輳が発生した場合に、上流ノードの入力レートを制限する制御レートを含む制御情報を送信するノード内における通信制御装置であって、自ノードにおけるデータの入力に許容される許容レートを決定する決定手段と、前記決定手段によって決定された許容レートが自ノードの希望レート未満である場合に、自ノードの入力レートに等しい制御レートを含み前記上流ノードの入力レートを前記制御レートにまで制限することを要求する制御情報を生成する一方、前記決定手段によって決定された許容レートが自ノードの希望レート以上である場合に、自ノードの入力レートに等しい制御レートと希望レートが達成される旨の満足情報とを含み前記上流ノードよりもさらに上流のノードにおける入力レートを制限する権利を前記上流ノードに譲る拡張制御情報を生成する生成手段と、前記生成手段によって生成された制御情報または拡張制御情報を前記上流ノードへ送信する送信手段とを有する。
【００２８】
また、本願が開示する通信制御方法は、１つの態様において、リング状に接続された複数のノードからなる通信ネットワークにおいて上流ノードから下流ノードへ向かうデータ伝送に輻輳が発生した場合に、上流ノードの入力レートを制限する制御レートを含む制御情報を送信するノード内における通信制御方法であって、自ノードにおけるデータの入力に許容される許容レートを決定する決定工程と、前記決定工程にて決定された許容レートが自ノードの希望レート未満である場合に、自ノードの入力レートに等しい制御レートを含み前記上流ノードの入力レートを前記制御レートにまで制限することを要求する制御情報を生成する第１生成工程と、前記決定工程にて決定された許容レートが自ノードの希望レート以上である場合に、自ノードの入力レートに等しい制御レートと希望レートが達成される旨の満足情報とを含み前記上流ノードよりもさらに上流のノードにおける入力レートを制限する権利を前記上流ノードに譲る拡張制御情報を生成する第２生成工程と、前記第１生成工程または前記第２生成工程にて生成された制御情報または拡張制御情報を上流ノードへ送信する送信工程とを有する。
【発明の効果】
【００２９】
本発明によれば、自ノードにおけるデータの入力に許容される許容レートを決定し、決定された許容レートが自ノードの希望レート以上である場合に、希望レートが達成される旨の満足情報を含む拡張制御情報を生成し、生成された拡張制御情報を上流ノードへ送信する。このため、上流ノードが拡張制御情報を受信した場合、この上流ノードが主体となってさらに上流のノードの入力レートを制御することができ、各ノードにおける入力レートを過剰に減少させることがない。結果として、ノードにおける通信レートの発振を防止し、通信ネットワークを構成する複数のノードに公平に帯域を分配することができる。
【００３０】
また、本発明によれば、通信ネットワーク全体の伝送容量レートから自ノードを通過するデータのトラフィックレートを減算して得られる入力可能レートを自ノードの許容レートと決定する。このため、輻輳が発生していない状況では上流ノードを優先しながら下流ノードの入力レートを制御することができ、許容レートが希望レートに等しいか希望レート未満になって輻輳が発生すると、輻輳の発生を契機として上流ノードに対する拡張制御情報または制御情報の送信を開始することができる。
【００３１】
また、本発明によれば、自ノードにおける入力データを蓄積可能なキューを経由する入力データの入力レートを許容レートに従って制御し、キューに入力データが蓄積されていない場合に拡張制御情報を生成する。このため、許容レートによる制限に関わらず入力データがすべてキューから出力されていれば拡張制御情報を生成することになり、希望レートが達成されている場合に確実に拡張制御情報を上流ノードへ送信することができる。
【００３２】
また、本発明によれば、いずれかの下流ノードにおける入力レートが制御レートとして格納された制御情報または拡張制御情報を受信し、受信された情報の種別に応じて拡張制御情報を生成するか否かを決定する。このため、下流ノードの状況を含めた情報を上流ノードへ送信することができ、例えば自ノードおよびすべての下流ノードにおいて希望レートが達成されている場合にのみ拡張制御情報を上流ノードへ送信することができる。
【００３３】
また、本発明によれば、拡張制御情報が受信され、かつ許容レートが希望レート以上である場合に、拡張制御情報を生成するため、自ノードおよびすべての下流ノードにおいて希望レートが達成されている場合に拡張制御情報を上流ノードへ送信し、上流ノードにさらに上流のノードの入力レートを制限する権利を与えることができる。
【００３４】
また、本発明によれば、受信された拡張制御情報に格納された制御レートおよび自ノードの入力レートのうち大きいレートを制御レートとして拡張制御情報に格納するため、上流ノードは、自ノードおよびすべての下流ノードにおける最大の入力レートを制御レートとして把握し、制御レートに合わせて入力レートを制限するため、確実に各ノードに公平に帯域を分配することができる。
【００３５】
また、本発明によれば、拡張制御情報が受信され、かつ許容レートが希望レート未満である場合に、制御情報を生成するため、すべての下流ノードにおいて希望レートが達成され、自ノードにおいて希望レートが達成されない場合に制御情報を上流ノードへ送信し、上流ノードの入力レートを制限する権利を獲得することができる。
【００３６】
また、本発明によれば、受信された拡張制御情報に格納された制御レートおよび自ノードの入力レートのうち大きいレートを制御レートとして制御情報に格納するため、上流ノードは、自ノードおよびすべての下流ノードにおける最大の入力レートを制御レートとして把握し、制御レートに合わせて入力レートを制限するため、確実に各ノードに公平に帯域を分配することができる。
【００３７】
また、本発明によれば、制御情報が受信された場合に、許容レートと希望レートの大小関係に関わらず受信された制御情報に格納された制御レートを含む制御情報を生成するため、いずれかの下流ノードにおいて希望レートが達成されていない場合に、上流ノードは、この下流ノードにおける入力レートを制御レートとして把握し、制御レートに合わせて入力レートを制限するため、確実に各ノードに公平に帯域を分配することができる。
【００３８】
また、本発明によれば、拡張制御情報が受信され、かつこの拡張制御情報に格納された制御レートが自ノードの入力レート未満である場合に、通信ネットワーク全体の伝送容量レートから自ノードを通過するデータのトラフィックレートおよびすべての下流ノードの入力レートの合計を減算して得られるレートを自ノードの許容レートと決定する。このため、自ノード以外のすべての上流ノードおよび下流ノードの入力レートを考慮した許容レートを決定することになり、上流ノードの入力レートが自ノードの許容レートおよび下流ノードの入力レートと公平になるように、適切に上流ノードの入力レートを制限することができる。
【００３９】
また、本発明によれば、制御情報が受信された場合に、この制御情報に格納された制御レートを自ノードの許容レートと決定するため、希望レートが達成されていない下流ノードの入力レートに合わせて自ノードの入力レートを制限することになり、確実に各ノードに公平に帯域を分配することができる。
【００４０】
また、本発明によれば、受信された拡張制御情報に格納された制御レートと自ノードの入力レートとの差分に関する差分情報を拡張制御情報に格納するため、拡張制御情報を受信する上流ノードは、制御レートと差分情報から下流ノードにおける入力レートを正確に把握することができる。
【００４１】
また、本発明によれば、差分情報を用いてすべての下流ノードの入力レートの合計を算出し、許容レートの決定に使用するため、拡張制御情報を受信した場合の許容レートを正しく決定することができる。
【００４２】
また、本発明によれば、自ノードの入力レートが制御レートとして拡張制御情報に格納される際、下流ノードの入力レートについて自ノードの入力レートを基準とした差分を算出し、差分情報を更新する。このため、拡張制御情報に格納される制御レートが変更されても、拡張制御情報を受信する上流ノードは、制御レートと差分情報から下流ノードにおける入力レートを正確に把握することができる。
【００４３】
また、本発明によれば、受信された制御情報または拡張制御情報に格納された制御レートが自ノードを通過するデータのトラフィックレート以上である場合に、制御レートを含まない制御情報を生成する。このため、通過トラフィックが小さく、上流ノードにおける入力レートを制限する必要はない場合は、上流ノードに対して輻輳を考慮する必要がないことを通知することができる。
【発明を実施するための最良の形態】
【００４４】
以下、本発明の実施の形態について、図面を参照して詳細に説明する。以下においては、ＲＰＲを適用する通信ネットワークを例に挙げて説明するが、本発明は、データの伝送経路が分岐することが無いように複数のノードがリング状に接続され、必要に応じて上流ノードの入力レートを下流ノードが制御する通信ネットワークであれば適用可能である。なお、以下においては、リング状に接続された複数のノードが、時計回り方向にデータの伝送を行っているものとし、特定のノードに対して、データの伝送経路の下流側に位置するノードを下流ノードといい、データの伝送経路の上流側に位置するノードを上流ノードという。
【００４５】
（実施の形態１）
図１は、本発明の実施の形態１に係るノードの要部構成を示すブロック図である。このノードは、ＲＰＲを適用する通信ネットワーク内のノードである。図１に示すノードは、データフレーム送受信部１０１、制御フレーム受信部１０２、入力可能レート算出部１０３、許容レート決定部１０４、入力レート制御部１０５、キュー監視部１０６、パケットタイプ判定部１０７、パケットタイプ決定部１０８、差分レート算出部１０９、パケット生成部１１０、および制御フレーム送信部１１１を有している。
【００４６】
データフレーム送受信部１０１は、図示しない上流ノードから自ノードを通過して図示しない下流ノードへ伝送される通過データを含むデータフレームを上流ノードから受信し、通過データおよび自ノードから入力される入力データを含むデータフレームを下流ノードへ送信する。なお、図１では省略したが、データフレーム送受信部１０１に受信されるデータフレームには、自ノード宛のデータが含まれていても良い。
【００４７】
制御フレーム受信部１０２は、図示しない下流ノードから所定間隔で制御フレームを受信する。本実施の形態においては、制御フレーム受信部１０２は、制御フレームとして、２種類のパケットを受信する。すなわち、制御フレーム受信部１０２は、通常の制御用データを含む通常パケット、または自ノードにおける入力レートの上限を示す制御レートと下流ノードの入力レートが希望のレートを達成している旨の満足情報とを含む拡張パケットのいずれかを受信する。ただし、通常パケットには、制御用データとして制御レートが含まれているものと含まれていないものとがある。
【００４８】
ここで、通常パケットのデータ部分は、例えば図２−１に示すようなフォーマットを有しており、満足情報フィールド２０１のビットが０となっている。この満足情報フィールド２０１は、予約フィールド２０２の最上位ビットが利用されている。満足情報フィールド２０１のビットが０の通常パケットが受信された場合、いずれかの下流ノードにおいて入力レートが希望レートを達成していないことを意味している。予約フィールド２０２は、パケットの拡張性に寄与するフィールドであり、通常パケットにおいては何の情報も有していない。さらに、制御レートフィールド２０３は、輻輳地点までの下流ノードにおける最大の入力レートに等しい制御レートの情報を保持している。
【００４９】
一方、拡張パケットのデータ部分は、例えば図２−２に示すようなフォーマットを有しており、満足情報フィールド２０４のビットが１となっている。満足情報フィールド２０４のビットが１の拡張パケットが受信された場合、すべての下流ノードにおいて入力レートが希望レートを達成していることを意味している。また、拡張パケットにおいては、予約フィールド２０５に差分レートの情報が格納されている。差分レートとは、制御レートと下流ノードそれぞれにおける入力レートとの差分を累積したレートのことであり、拡張パケットに含まれる制御レートに対して、下流ノードそれぞれの実際の入力レートがどの程度小さいかを示している。この差分レートは、下流ノード全体の入力レートの合計を算出するのに用いられる。制御レートフィールド２０６は、輻輳地点までの下流ノードにおける最大の入力レートに等しい制御レートの情報を保持している。
【００５０】
入力可能レート算出部１０３は、リング全体で伝送可能なトラフィックレートを示すリング容量レートから、上流ノードから下流ノードへの通過データのトラフィックレートを減算し、自ノードが入力可能な入力可能レートを算出する。
【００５１】
許容レート決定部１０４は、制御フレーム受信部１０２によって受信される制御フレーム内の制御レート（以下「受信制御レート」という）、入力可能レート算出部１０３によって算出される入力可能レート、キュー監視部１０６から通知される入力レート、および拡張パケット内の差分レートを用いて、自ノードにおける入力レートの上限を示す許容レートを決定する。具体的には、許容レート決定部１０４は、制御フレーム受信部１０２によって制御レートを含む通常パケットが受信された場合は、受信制御レートを許容レートと決定する。また、制御フレーム受信部１０２によって拡張パケットが受信された場合は、受信制御レートと入力レートの大小関係に応じて、入力可能レートから下流ノード全体の入力レートの合計（以下「下流レート」という）を差し引いたレートおよび受信制御レートのいずれかを許容レートと決定する。そして、制御フレーム受信部１０２によって制御レートを含まない通常パケットが受信された場合は、入力可能レートを許容レートと決定する。
【００５２】
ここで、許容レート決定部１０４は、下流レートを算出するに際して、拡張パケット内の差分レートを用いる。すなわち、許容レート決定部１０４は、下流ノード数に受信制御レートを乗算し、乗算結果から差分レートを減算して下流レートを算出する。下流ノード数は、拡張パケットのヘッダ部分に格納されているｔｔｌ（time to live）フィールドの数値などから判断することができる。上述したように、受信された制御フレーム内の制御レートは、下流ノードにおける最大の入力レートに等しいため、すべての下流ノードにおける入力レートは、受信制御レート以下である。そして、拡張パケット内の差分レート情報として、受信制御レートと各下流ノードにおける入力レートとの差分が累積されているため、受信制御レートの下流ノード数倍から差分レートを減算することにより、実際の下流ノード全体の入力レートの合計（下流レート）が算出される。許容レート決定部１０４は、拡張パケットが受信され、受信制御レートが入力レート未満である場合、入力可能レートから下流レートを減算して許容レートを求めるが、これはリング容量レートから通過トラフィックレートと下流ノードの入力レートとの合計を減算したレートに他ならない。
【００５３】
差分レートは、このように下流レートの算出に用いられるため、拡張パケットの予約フィールド２０５に下流レートそのものを格納するようにしても良いが、制御レートとの差分として情報を保持することにより、情報量の削減を図ることができ、限りある予約フィールド２０５のビットを有効に利用することができる。
【００５４】
入力レート制御部１０５は、許容レート決定部１０４によって決定された許容レートを上限として自ノードにおける入力データをデータフレーム送受信部１０１へ出力し、自ノードにおける入力レートを制御する。具体的には、入力レート制御部１０５は、入力データを蓄積するキューを備えており、キューに蓄積された入力データを許容レートを上限とした入力レートでデータフレーム送受信部１０１へ出力する。ただし、入力レート制御部１０５は、通常パケットが受信されて許容レートが受信制御レートとなって減少する場合は、急激に入力レートを許容レートにまで減少させるのではなく、入力レートが徐々に許容レートに収束するように制御する。
【００５５】
キュー監視部１０６は、入力レート制御部１０５に備えられたキューを監視し、キュー内に入力データが蓄積されていれば、許容レートが自ノードの希望レート未満であると判断する一方、キュー内に入力データが蓄積されていなければ、許容レートが自ノードの希望レート以上であると判断する。すなわち、キュー監視部１０６は、キューを監視することによって、自ノードの許容レートと希望レートとの大小関係を判断する。そして、もし、下流ノードにおいて輻輳が発生していない、換言すれば、制御フレーム受信部１０２によって制御レートを含まない通常パケットが受信されており、かつ自ノードの許容レートが希望レート以下であれば、自ノードにおいて輻輳が発生していることになる。また、キュー監視部１０６は、キュー監視の結果、実際の入力レートを許容レート決定部１０４へ通知する。
【００５６】
パケットタイプ判定部１０７は、制御フレーム受信部１０２によって受信された制御フレームに制御レートが含まれているか否かを判定する。また、パケットタイプ判定部１０７は、受信制御フレームに制御レートが含まれている場合、制御フレームの満足情報フィールドを参照して、この制御フレームが通常パケットであるか拡張パケットであるかを判定する。パケットタイプ判定部１０７は、パケットタイプの判定結果を許容レート決定部１０４およびパケットタイプ決定部１０８へ通知する。また、パケットタイプ判定部１０７は、受信制御フレームに制御レートが含まれている場合、受信制御レートとデータフレーム送受信部１０１における通過トラフィックレートとを比較し、受信制御レートが通過トラフィックレート以上であれば、その旨をパケットタイプ決定部１０８へ通知する。
【００５７】
パケットタイプ決定部１０８は、キュー監視部１０６による判断結果およびパケットタイプ判定部１０７による判定結果に応じて自ノードから上流ノードへ送信する制御フレームのパケットタイプを決定する。具体的には、受信制御フレームに制御レートが含まれていない場合は、パケットタイプ決定部１０８は、キュー監視部１０６による判断の結果によってパケットタイプを決定する。すなわち、パケットタイプ決定部１０８は、許容レートが希望レート未満である場合、パケットタイプを制御レートを含む通常パケットに決定し、許容レートが希望レートに等しい場合、パケットタイプを拡張パケットに決定し、許容レートが希望レートより大きい場合、パケットタイプを制御レートを含まない通常パケットに決定する。
【００５８】
一方、制御フレームが受信されており、パケットタイプ判定部１０７から制御レートを含む通常パケットを受信した旨の判定結果が出力された場合は、パケットタイプ決定部１０８は、キュー監視部１０６の判断結果に関わらず、パケットタイプを通常パケットに決定する。また、パケットタイプ判定部１０７から拡張パケットを受信した旨の判定結果が出力された場合は、パケットタイプ決定部１０８は、許容レートが希望レート未満である場合、パケットタイプを制御レートを含む通常パケットに決定し、許容レートが希望レート以上である場合、パケットタイプを拡張パケットに決定する。さらに、パケットタイプ決定部１０８は、パケットタイプ判定部１０７から受信制御レートが通過トラフィックレート以上である旨が通知された場合は、上流ノードの入力レートを制限する必要がないことから、パケットタイプを制御レートを含まない通常パケットに決定する。
【００５９】
また、パケットタイプ決定部１０８は、送信するパケットタイプの決定とともに、パケットに格納する制御レートを決定する。具体的には、受信制御フレームに制御レートが含まれておらず、パケットタイプが制御レートを含む通常パケットまたは拡張パケットに決定された場合は、パケットタイプ決定部１０８は、自ノードにおける入力レートを制御レートに決定する。
【００６０】
一方、パケットタイプ判定部１０７から制御レートを含む通常パケットを受信した旨の判定結果が出力された場合は、パケットタイプ決定部１０８は、受信制御レートをそのまま制御レートに決定する。また、パケットタイプ判定部１０７から拡張パケットを受信した旨の判定結果が出力された場合は、パケットタイプ決定部１０８は、許容レートが希望レート未満である場合、自ノードにおける入力レートを制御レートに決定し、許容レートが希望レート以上である場合、自ノードにおける入力レートと受信制御レートとのうち大きい方を制御レートに決定する。
【００６１】
差分レート算出部１０９は、パケットタイプ決定部１０８によってパケットタイプが拡張パケットに決定された際、制御フレーム受信部１０２によって受信制御レートと自ノードの入力レートとから差分レートを算出する。具体的には、図２−２に示すような拡張パケットが受信され、許容レートが希望レート以上である場合、差分レート算出部１０９は、制御レートフィールド２０６の受信制御レートから入力レート制御部１０５における入力レートを減算し、減算結果を予約フィールド２０５の差分レートに加算することにより新たな差分レートを算出する。このとき、パケットタイプ決定部１０８によって自ノードの入力レートが制御レートに決定される場合は、基準となる制御レートが変更される可能性があるため、差分レート算出部１０９は、下流ノードに関する差分レートについても計算しなおす。
【００６２】
具体的に例を挙げると、例えば図３において、ノード１〜４が上流ノードから順にそれぞれ２５Ｍ、１０Ｍ、１０Ｍ、および２０Ｍの入力レートでノード５へデータを伝送している場合、ノード４において輻輳が発生し、かつ各ノード１〜４の希望レートが入力レートに等しければ、ノード１〜４は上流ノードに対して拡張パケットを送信することになる。すなわち、ノード４は、ノード３に対してノード４の入力レート２０Ｍを制御レートとした拡張パケットを送信する。ノード３は、ノード４からの受信制御レートの方がノード３の入力レートより大きいため、ノード２に対してノード４からの受信制御レート２０Ｍを制御レートとした拡張パケットを送信する。ノード２は、ノード３からの受信制御レートの方がノード２の入力レートより大きいため、ノード１に対してノード３からの受信制御レート２０Ｍを制御レートとした拡張パケットを送信する。
【００６３】
さらに、ノード１は、ノード２からの受信制御レートよりノード１の入力レートの方が大きいため、図示しない上流ノードに対してノード１の入力レート２５Ｍを制御レートとした拡張パケットを送信する。つまり、ノード１において制御レートが変更されるため、ノード２までは制御レート２０Ｍを基準とした差分レートが算出されていたのに対し、ノード１では制御レート２５Ｍを基準とした差分レートを算出する必要がある。このため、ノード１は、ｔｔｌフィールドの数値を参照して下流ノード数を３（ノード２〜４）と把握し、下流レート４０Ｍ（＝受信制御レート２０Ｍ×３−差分レート２０Ｍ）を算出するとともに、ノード１で決定された制御レート２５Ｍの下流ノード数倍（＝２５Ｍ×３）から下流レート４０Ｍを減算して新たな差分レート３５Ｍを算出する。このようにしておくことで、図示しない上流ノードにおいて下流レートが算出される際、受信制御レートと差分レートが正しく対応しており、正確な下流レートが算出される。
【００６４】
パケット生成部１１０は、パケットタイプ決定部１０８によって決定されたパケットタイプのパケットを生成する。すなわち、パケット生成部１１０は、パケットタイプが通常パケットに決定された場合は、満足情報フィールドのビットを０とした通常パケットを生成し、パケットタイプが拡張パケットに決定された場合は、満足情報フィールドのビットを１とした拡張パケットを生成する。このとき、パケット生成部１１０は、パケットタイプ決定部１０８によって決定された制御レートの有無に応じたパケットを生成し、拡張パケットを生成する場合は、差分レート算出部１０９によって算出される差分レートを含む拡張パケットを生成する。なお、制御レートを含まない通常パケットを生成する場合、パケット生成部１１０は、例えば通常パケットの制御レートフィールド２０３の全ビットを１にする。
【００６５】
制御フレーム送信部１１１は、パケット生成部１１０によって生成された通常パケットまたは拡張パケットを制御フレームとして図示しない上流ノードへ送信する。
【００６６】
次いで、上記のように構成されたノードによる制御フレーム送信動作について、図４に示すフロー図を参照しながら説明する。
【００６７】
まず、上流ノードからの通過トラフィックがデータフレーム送受信部１０１を通過していく状態において、入力可能レート算出部１０３によって入力可能レートが算出される。すなわち、入力可能レート算出部１０３によって、リング容量レートから通過トラフィックレートが減算され、自ノードにおける入力可能レートが算出される（ステップＳ１０１）。算出された入力可能レートは、許容レート決定部１０４へ出力される。また、制御フレーム受信部１０２によって下流ノードから制御フレームが受信され、パケットタイプ判定部１０７によって、受信制御フレームに制御レートが含まれているか否かが監視されている（ステップＳ１０２）。
【００６８】
ここではまず、制御レートを含む通常パケットが受信された場合について説明する。パケットタイプ判定部１０７によって、受信制御フレームに制御レートが含まれていると判定されると（ステップＳ１０２Ｙｅｓ）、さらに制御フレームの満足情報フィールドが参照され、パケットタイプが通常パケットであるか否かが判定される（ステップＳ１０３）。パケットタイプの判定結果は、許容レート決定部１０４へ通知され、受信パケットタイプが制御レートを含む通常パケットである場合は（ステップＳ１０３Ｙｅｓ）、許容レート決定部１０４によって、受信制御レートが自ノードの許容レートと決定される（ステップＳ１０４）。
【００６９】
また、パケットタイプ判定部１０７によって、受信制御レートとデータフレーム送受信部１０１における通過トラフィックレートとが比較され（ステップＳ１０５）、受信制御レートが通過トラフィックレート以上である場合にのみ、その旨がパケットタイプ決定部１０８へ通知される。受信制御レートが通過トラフィックレート以上である場合は（ステップＳ１０５Ｎｏ）、通過トラフィックが小さいことから、上流ノードにおける入力レートを制限する必要はないことがわかる。このため、自ノードのみにおいて入力レートを制限すれば十分であり、上流ノードに対して輻輳を考慮する必要がないことを通知するために、後述するように制御レートを含まない通常パケットが送信されることになる（ステップＳ１１８）。
【００７０】
また、受信制御レートと通過トラフィックレートとの大小関係に関わらず、ここで受信された制御フレームが制御レートを含む通常パケットであることから、いずれかの下流ノードにおいて希望レートが達成されていないことになるため、入力レート制御部１０５によって、希望レートが達成されていない下流ノードの入力レート（すなわち許容レート）に自ノードの入力レートが収束するように制御される。このとき、自ノードの入力レートが元々許容レート未満である場合は、入力レート制御部１０５によって許容レートを上限とした入力レートの制御が行われる。
【００７１】
また、パケットタイプ決定部１０８によって、上流ノードに対して送信する制御フレームのパケットタイプが決定されるが、受信制御レートが通過トラフィックレート未満である場合は（ステップＳ１０５Ｙｅｓ）、希望レートが達成されていない下流ノードの状況をそのまま上流ノードへ伝達する必要があり、パケットタイプ決定部１０８によって決定されるパケットタイプは制御レートを含む通常パケットとなる。そして、通常パケットに格納される制御レートは受信制御レートに等しくなる。一方、受信制御レートが通過トラフィックレート以上である場合は（ステップＳ１０５Ｎｏ）、上述したように輻輳が発生していることを上流ノードへ伝達する必要がなく、パケットタイプ決定部１０８によって決定されるパケットタイプは制御レートを含まない通常パケットとなる。
【００７２】
パケットタイプ決定部１０８によって決定されたパケットタイプおよび制御レートは、パケット生成部１１０へ通知され、パケット生成部１１０によって、制御レートが受信制御レートに等しい通常パケット（ステップＳ１０６）または制御レートを含まない通常パケット（ステップＳ１１８）が生成される。そして、通常パケットは、制御フレーム送信部１１１によって上流ノードへ送信される（ステップＳ１０７）。
【００７３】
次に、制御フレームとして拡張パケットが受信された場合について説明する。パケット判定部１０７によって、受信制御フレームに制御レートが含まれていると判定されると（ステップＳ１０２Ｙｅｓ）、さらに制御フレームの満足情報フィールドが参照され、パケットタイプが通常パケットであるか否かが判定される（ステップＳ１０３）。パケットタイプの判定結果は、許容レート決定部１０４へ通知され、受信パケットタイプが拡張パケットである場合は（ステップＳ１０３Ｎｏ）、許容レート決定部１０４によって、受信制御レートとキュー監視部１０６から通知される入力レートとが比較される（ステップＳ１０８）。
【００７４】
この結果、受信制御レートが入力レート未満であれば（ステップＳ１０８Ｙｅｓ）、受信された拡張パケット内の差分レートから求まる下流レートを入力可能レートから減算して得られるレートが自ノードの許容レートと決定される（ステップＳ１０９）。換言すれば、受信パケットタイプが拡張パケットであり、自ノードの入力レートが大きすぎる場合の許容レートは、通過トラフィックレートと下流ノード全体の入力レートとの合計をリング容量レートから減算したレートとなる。一方、受信制御レートが入力レート以上であれば（ステップＳ１０８Ｎｏ）、受信制御レートが自ノードの許容レートと決定される（ステップＳ１１３）。換言すれば、受信パケットタイプが拡張パケットであり、自ノードの入力レートが十分に小さい場合の許容レートは、いずれかの下流ノードの入力レートに等しくなる。
【００７５】
また、パケットタイプ判定部１０７によって、受信制御レートとデータフレーム送受信部１０１における通過トラフィックレートとが比較され（ステップＳ１１０）、受信制御レートが通過トラフィックレート以上である場合にのみ、その旨がパケットタイプ決定部１０８へ通知される。受信制御レートが通過トラフィックレート以上である場合は（ステップＳ１１０Ｎｏ）、通過トラフィックが小さいことから、上流ノードにおける入力レートを制限する必要はないことがわかる。このため、自ノードのみにおいて入力レートを制限すれば十分であり、上流ノードに対して輻輳を考慮する必要がないことを通知するために、受信パケットタイプが制御レートを含む通常パケットであった場合と同様に、自ノードからは制御レートを含まない通常パケットが送信されることになる（ステップＳ１１８）。
【００７６】
また、受信制御レートと通過トラフィックレートとの大小関係に関わらず、入力レート制御部１０５によって、許容レートを使用するように自ノードの入力レートが制限される。このとき、キュー監視部１０６によって、入力レート制御部１０５内のキューが監視され、キューに入力データが蓄積されているか否かにより、許容レートが自ノードの希望レート未満であるか否かが判定される（ステップＳ１１１）。
【００７７】
すなわち、キューに入力データが蓄積されていれば、所望量の入力データがデータフレームとして送信されていないことになり、許容レートが希望レート未満であることになる。一方、キューに入力データが蓄積されていなければ、所望量の入力データがデータフレームとして送信されていることになり、許容レートが希望レートに等しいことになる。
【００７８】
キュー監視部１０６によるキューの監視の結果、許容レートが希望レート未満であれば（ステップＳ１１１Ｙｅｓ）、すべての下流ノードにおいては希望レートが達成されているものの自ノードにおいては希望レートが達成されていないことになるため、パケットタイプ決定部１０８によって決定されるパケットタイプは制御レートを含む通常パケットとなる。そして、通常パケットに格納される制御レートは自ノードの入力レートに等しくなる。
【００７９】
パケットタイプ決定部１０８によって決定されたパケットタイプおよび制御レートは、パケット生成部１１０へ通知され、パケット生成部１１０によって、制御レートが自ノードの入力レートに等しい通常パケットが生成される（ステップＳ１１２）。そして、制御レートを含む通常パケットは、制御フレーム送信部１１１によって上流ノードへ送信される（ステップＳ１０７）。
【００８０】
また、キュー監視部１０６によるキューの監視の結果、許容レートが希望レート以上であれば（ステップＳ１１１Ｎｏ）、すべての下流ノードおよび自ノードにおいて希望レートが達成されていることになるため、パケットタイプ決定部１０８によって決定されるパケットタイプは拡張パケットとなる。そして、拡張パケットに格納される制御レートは受信制御レートおよび自ノードの入力レートのうち大きい方のレートに等しくなる。
【００８１】
そして、パケットタイプが通常パケットに決定された場合と同様に、パケット生成部１１０によって、制御レートが自ノードの入力レートまたは受信制御レートに等しい拡張パケットが生成され（ステップＳ１１４）、拡張パケットは、制御フレーム送信部１１１によって上流ノードへ送信される（ステップＳ１０７）。
【００８２】
最後に、制御レートを含まない制御フレーム（通常パケット）が受信された場合、換言すれば、輻輳について考慮する必要がない場合について説明する。制御レートが受信されない場合は（ステップＳ１０２Ｎｏ）、許容レート決定部１０４に受信制御レートが通知されることはなく、入力可能レートが自ノードの許容レートと決定される（ステップＳ１１５）。
【００８３】
そして、入力レート制御部１０５によって、許容レートを上限として自ノードの入力レートが制御される。このとき、キュー監視部１０６によって、入力レート制御部１０５内のキューが監視され、キューに入力データが蓄積されているか否かにより、許容レートと自ノードの希望レートとの大小関係が判定される（ステップＳ１１６）。
【００８４】
キュー監視部１０６によるキュー監視の結果、許容レートが希望レート以下であれば（ステップＳ１１６Ｙｅｓ）、自ノードにおいて希望レートが達成されないか許容レートと希望レートが等しいため、自ノードにおいて輻輳が発生していることになる。したがって、上流ノードに対して制御レートを含む制御フレームが送信されることになり、パケットタイプ決定部１０８によって、希望レートが達成されていない場合はパケットタイプが通常パケットに決定され、許容レートと希望レートが等しい場合はパケットタイプが拡張パケットに決定される。そして、通常パケットまたは拡張パケットに格納される制御レートは自ノードの入力レートに等しくなる。
【００８５】
パケットタイプ決定部１０８によって決定されたパケットタイプおよび制御レートは、パケット生成部１１０へ通知され、パケット生成部１１０によって、制御レートが自ノードの入力レートに等しい通常パケットまたは拡張パケットが生成される（ステップＳ１１７）。そして、通常パケットまたは拡張パケットは、制御フレーム送信部１１１によって上流ノードへ送信される（ステップＳ１０７）。
【００８６】
また、キュー監視部１０６によるキュー監視の結果、許容レートが希望レートより大きければ（ステップＳ１１６Ｎｏ）、自ノードの希望レートを入力レートとしてもリング容量レートには余裕があり、自ノードにおいても輻輳が発生しないことになる。したがって、上流ノードに対して制御レートが送信されることはなく、パケット生成部１１０によって、制御レートを含まない通常パケットが生成される（ステップＳ１１８）。そして、制御レートを含まない通常パケットは、制御フレーム送信部１１１によって上流ノードへ送信される（ステップＳ１０７）。
【００８７】
このように、本実施の形態においては、リング容量レートが最大限まで使用され輻輳が発生している場合、自ノードおよびすべての下流ノードにおいて希望レートが達成されていれば、上流ノードに対して拡張パケットが送信され、自ノードまたはいずれかの下流ノードにおいて希望レートが達成されていなければ、上流ノードに対して通常パケットが送信される。このため、希望レートが達成されていない最下流のノードの入力レートのみが制御レートとして上流ノードへ通知され、上流ノードの入力レートに制限をかけることになる。したがって、すべてのノードにおいて希望レートが達成されれば、上流ノードの入力レートが必要以上に制限されることはなく、ノードにおける通信レートの発振を防止し、通信ネットワークを構成する複数のノードに公平に帯域を分配することができる。
【００８８】
以下、複数のノードにおける帯域の分配について、具体的に例を挙げて説明する。
【００８９】
図５−１は、ノード１〜７からなるＲＰＲの通信ネットワークを模式的に示す図である。同図において、ノード１〜４によるノード５へのデータ伝送の希望レートがそれぞれ４０Ｍ、４０Ｍ、１０Ｍ、および２０Ｍである場合を考える。なお、図５−１に示した通信ネットワークのリング容量レートは１００Ｍであるものとする。
【００９０】
ＲＰＲでは上流ノードが優先されるため、初期状態では、ノード１〜３は、それぞれ入力レートを希望レートに等しくしており、ノード４には通過トラフィックとして９０Ｍが到達する。そして、ノード４の希望レートは２０Ｍであるが、リング容量レートは１００Ｍであるため、ノード４は入力レートを１０Ｍにせざるを得ず、ノード４において輻輳が発生する。このため、ノード４は、制御レートを自ノードの入力レート１０Ｍとした通常パケットをノード３へ送信する。
【００９１】
送信された通常パケットは、ノード３によって受信され、ノード３における許容レートは受信制御レート１０Ｍに等しくなって、ノード３の入力レートが制御される。すなわち、ノード３の現在の入力レートが１０Ｍであるため、入力レートは１０Ｍのまま維持される。また、通常パケットが受信されたため、ノード３は、制御レートを受信制御レート１０Ｍとした通常パケットをノード２へ送信する。
【００９２】
送信された通常パケットは、ノード２によって受信され、ノード２における許容レートは受信制御レート１０Ｍに等しくなって、ノード２の入力レートが制御される。すなわち、ノード２の現在の入力レートが４０Ｍであるため、入力レートは許容レート１０Ｍへ向かって減少する。また、通常パケットが受信されたため、ノード２は、制御レートを受信制御レート１０Ｍとした通常パケットをノード１へ送信する。
【００９３】
送信された通常パケットは、ノード１によって受信され、ノード１における許容レートは受信制御レート１０Ｍに等しくなって、ノード１の入力レートが制御される。すなわち、ノード１の現在の入力レートが４０Ｍであるため、入力レートは許容レート１０Ｍへ向かって減少する。
【００９４】
このように、ノード１およびノード２の入力レートが許容レート１０Ｍへ向かって減少する結果、下流のノード４における入力レートを増加させることができる。具体的には、例えば図５−２に示すように、ノード１の入力レートが３８Ｍとなり、ノード２の入力レートが３７Ｍとなると、減少した５Ｍだけノード４の入力レートが増加し、ノード４の入力レートは１５Ｍとなる。しかし、依然としてノード４において輻輳が発生するとともに、ノード４の希望レート２０Ｍが達成されていないため、ノード４は、制御レートを自ノードの入力レート１５Ｍとした通常パケットをノード３へ送信する。
【００９５】
送信された通常パケットは、ノード３によって受信され、ノード３における許容レートは受信制御レート１５Ｍに等しくなって、ノード３の入力レートが制御される。すなわち、ノード３の現在の入力レートが１０Ｍであるため、入力レートは１０Ｍのまま維持される。また、通常パケットが受信されたため、ノード３は、制御レートを受信制御レート１５Ｍとした通常パケットをノード２へ送信する。
【００９６】
送信された通常パケットは、ノード２によって受信され、ノード２における許容レートは受信制御レート１５Ｍに等しくなって、ノード２の入力レートが制御される。すなわち、ノード２の現在の入力レートが３７Ｍであるため、入力レートは許容レート１５Ｍへ向かって減少する。また、通常パケットが受信されたため、ノード２は、制御レートを受信制御レート１５Ｍとした通常パケットをノード１へ送信する。
【００９７】
送信された通常パケットは、ノード１によって受信され、ノード１における許容レートは受信制御レート１５Ｍに等しくなって、ノード１の入力レートが制御される。すなわち、ノード１の現在の入力レートが３８Ｍであるため、入力レートは許容レート１５Ｍへ向かって減少する。
【００９８】
以降、このような上流ノードへ対する通常パケットの伝送と上流ノードによる入力レートの制御とが行われ、例えば図５−３に示すように、ノード１の入力レートが３６Ｍとなり、ノード２の入力レートが３４Ｍとなると、ノード４の入力レートは２０Ｍとなる。この時点で、ノード４において輻輳が発生するものの、ノード４の許容レートと希望レートがいずれも２０Ｍで等しくなるため、ノード４は、制御レートを自ノードの入力レート２０Ｍとした拡張パケットをノード３へ送信する。
【００９９】
送信された拡張パケットは、ノード３によって受信され、ノード３における許容レートはリング容量レート１００Ｍから通過トラフィックレートと下流ノードすべての入力レートとの合計（＝３６Ｍ＋３４Ｍ＋２０Ｍ）を減算して得られるレート１０Ｍに等しくなって、ノード３の入力レートが制御される。すなわち、ノード３の現在の入力レートが１０Ｍであるため、入力レートは１０Ｍのまま維持される。また、拡張パケットが受信され、かつ、ノード３の許容レートと希望レートがいずれも１０Ｍで等しくなるため、ノード３は、制御レートを入力レート１０Ｍよりも大きい受信制御レート２０Ｍとした拡張パケットをノード２へ送信する。
【０１００】
送信された拡張パケットは、ノード２によって受信され、ノード２における許容レートはリング容量レート１００Ｍから通過トラフィックレートと下流ノードすべての入力レートとの合計（＝３６Ｍ＋１０Ｍ＋２０Ｍ）を減算して得られるレート３４Ｍに等しくなって、ノード２の入力レートが制御される。すなわち、ノード２の現在の入力レートが３４Ｍであるため、入力レートは３４Ｍのまま維持される。また、拡張パケットが受信され、かつ、ノード２の許容レート３４Ｍが希望レート４０Ｍ未満であるため、ノード２は、制御レートを入力レート３４Ｍとした通常パケットをノード１へ送信する。
【０１０１】
送信された通常パケットは、ノード１によって受信され、ノード１における許容レートは受信制御レート３４Ｍに等しくなって、ノード１の入力レートが制御される。すなわち、ノード１の現在の入力レートが３６Ｍであるため、入力レートは許容レート３４Ｍへ向かって減少する。
【０１０２】
このように、下流ノードから拡張パケットが送信された場合は、拡張パケットを受信したノードが上流ノードの入力レートを制限する権利を有することになる。つまり、上記の例においては、当初、ノード４が自ノードの入力レートに合わせて上流ノードの入力レートを制限していたが、ノード４およびノード３において希望レートが達成されると、ノード２において拡張パケットが受信されるとともに、ノード２の希望レートが達成されないため、ノード２が自ノードの入力レートに合わせて上流ノードであるノード１の入力レートを制限するようになる。
【０１０３】
そして、最終的には、図５−４に示すように、ノード１の入力レートが３５Ｍとなると、減少した１Ｍだけノード２の入力レートが増加し、ノード２の入力レートは３５Ｍとなる。この状態でも、ノード４において輻輳が発生するため、図５−３の状態と同様に、ノード４およびノード３は、制御レートを２０Ｍとした拡張パケットを上流ノードへ送信する。そして、ノード２によって拡張パケットが受信されると、ノード２における許容レートはリング容量レート１００Ｍから通過トラフィックレートと下流ノードすべての入力レートとの合計（＝３５Ｍ＋１０Ｍ＋２０Ｍ）を減算して得られるレート３５Ｍに等しくなって、ノード２の入力レートが制御される。すなわち、ノード２の現在の入力レートが３５Ｍであるため、入力レートは３５Ｍのまま維持される。また、拡張パケットが受信され、かつ、ノード２の許容レート３５Ｍが希望レート４０Ｍ未満であるため、ノード２は、制御レートを入力レート３５Ｍとした通常パケットをノード１へ送信する。
【０１０４】
送信された通常パケットは、ノード１によって受信され、ノード１における許容レートは受信制御レート３５Ｍに等しくなって、ノード１の入力レートが制御される。すなわち、ノード１の現在の入力レートが３５Ｍであるため、入力レートは３５Ｍのまま維持される。こうして、すべてのノード１〜４における入力レートが安定することになるとともに、希望レートが達成されないノード３、４においては、いずれも入力レートが３５Ｍとなって、各ノード１〜４に公平に帯域が分配されたことになる。
【０１０５】
以上のように、本実施の形態によれば、通信ネットワーク内の各ノードが、自ノードおよびすべての下流ノードにおいて希望レートが達成される場合は、制御フレームとして拡張パケットを上流ノードへ送信するため、希望レートが達成されない最下流のノードの入力レートに合わせて上流ノードの入力レートを制御することができる。したがって、必要以上に上流ノードの入力レートが減少することがなく、結果として、ノードにおける通信レートの発振を防止し、通信ネットワークを構成する複数のノードに公平に帯域を分配することができる。
【０１０６】
（実施の形態２）
本発明の実施の形態２の特徴は、通信ネットワーク内の各ノードにおいて入力レートが安定した後、新たにデータを伝送する上流ノードが増えた場合にも適切に各ノードの入力レートを制御する点である。
【０１０７】
本実施の形態に係る個々のノードの要部構成および動作は、実施の形態１と同様であるため、その説明を省略する。ここでは、実施の形態１における具体例において、ノード１〜４の入力レートが安定した状態（図５−４）から上流ノードが増えた場合の例について説明する。
【０１０８】
図６−１は、実施の形態１における図５−４の状態から、ノード１の上流ノードとしてノード６およびノード７が新たに加わった状態を示す図である。ノード６、７は、希望レート２５Ｍでノード５へのデータ伝送を行う。ＲＰＲでは上流ノードが優先されるため、図６−１の状態では、新たに加わったノード６、７は、入力レートを希望レートに等しくしている。
【０１０９】
一方、ノード３からの拡張パケットを受信しているノード２においては、許容レートがリング容量レート１００Ｍから通過トラフィックレートと下流ノードすべての入力レートとの合計（＝２５Ｍ＋２５Ｍ＋３５Ｍ＋１０Ｍ＋２０Ｍ）を減算して得られるレートになるが、このレートが負の値−１５Ｍになるため、ノード２の入力レートは０Ｍとなる。このとき、ノード２は、上流のノード１へ通常パケットを送信することになるが、通常パケットに格納される制御レートは、入力レート０Ｍではなく受信制御レート２０Ｍとする。これは、受信制御レートは、いずれかの下流ノードにおける入力レートであるため、もし、受信制御レートを受け取ったノードの入力レートが希望レートを達成していないにも拘らず受信制御レートより小さければ、上流ノードを優先することと矛盾する。そこで、この矛盾を解消するために、制御レートは、入力レートが受信制御レートより大きい場合にのみ入力レートに変更されることになり、ノード２の入力レートが受信制御レートより小さい場合は、ノード２は制御レートを受信制御レートのまま変更しない。
【０１１０】
また、ノード２の入力レートを０Ｍにしても入力レートの合計がリング容量レート１００Ｍに収まらないため、最下流のノード４の入力レートが１５Ｍ減少して５Ｍとなる。そして、ノード２から制御レートを２０Ｍとした通常パケットが上流のノード１、ノード７、およびノード６へ順次伝達されるため、これらのノードにおける入力レートは制御レート２０Ｍへ向かって減少する。この結果、例えば図６−２に示すように、ノード１の入力レートが３０Ｍとなり、ノード６、７の入力レートが２２Ｍとなると、これらのノードの入力レートが減少した分、ノード２およびノード４の入力レートが増加する。図６−２にでは、例としてノード２の入力レートが５Ｍとなり、ノード４の入力レートが１１Ｍとなっている。
【０１１１】
同時に、ノード４においては希望レートが達成されなくなっているため、制御レートによって上流ノードの入力レートを制限する権利はノード２からノード４へ移動する。すなわち、ノード４から制御レートを１１Ｍとした通常パケットが送信され始める。通常パケットは、ノード３、ノード２、ノード１、ノード７、およびノード６へ順次伝達され、希望レートが制御レート未満であるノード３と入力レートが制御レート未満であるノード２以外のノードにおいては、入力レートが制御レート１１Ｍへ向かって減少する。そして、ノード６、ノード７、およびノード１の入力レートが減少した分、入力レートが制御レート未満であるノード２および希望レートを達成していない最下流のノード４の入力レートが増加する。
【０１１２】
以降、各ノードが実施の形態１と同様の処理を実行することにより、最終的には、図６−３に示すように、希望レートが達成されないノード６、ノード７、ノード１、ノード２、およびノード４においては、いずれも入力レートが１８Ｍとなって、各ノードに公平に帯域が分配されたことになる。
【０１１３】
以上のように、本実施の形態によれば、各ノードの入力レートが安定している状態で上流ノードが新たに追加された場合、上流ノードの入力レートを制御するノードが改めて希望レートが達成されない最下流のノードに設定される。このため、上流ノードが追加されても、効率的に各ノードの入力レートが制御され、ノードにおける通信レートの発振を防止し、通信ネットワークを構成する複数のノードに公平に帯域を分配することができる。
【０１１４】
（付記１）リング状に接続された複数のノードからなる通信ネットワークにおいて上流ノードから下流ノードへ向かうデータ伝送に輻輳が発生した場合に、上流ノードの入力レートを制限する制御レートを含む制御情報を送信するノード内における通信制御装置であって、
自ノードにおけるデータの入力に許容される許容レートを決定する決定手段と、
前記決定手段によって決定された許容レートが自ノードの希望レート以上である場合に、希望レートが達成される旨の満足情報を含む拡張制御情報を生成する生成手段と、
前記生成手段によって生成された拡張制御情報を上流ノードへ送信する送信手段と
を有することを特徴とする通信制御装置。
【０１１５】
（付記２）前記決定手段は、
通信ネットワーク全体の伝送容量レートから自ノードを通過するデータのトラフィックレートを減算して得られる入力可能レートを自ノードの許容レートと決定することを特徴とする付記１記載の通信制御装置。
【０１１６】
（付記３）自ノードにおける入力データを蓄積可能なキューを備え、前記決定手段によって決定された許容レートに従って前記キューを経由する入力データの入力レートを制御する制御手段をさらに有し、
前記生成手段は、
前記キューに入力データが蓄積されていない場合に拡張制御情報を生成することを特徴とする付記１記載の通信制御装置。
【０１１７】
（付記４）いずれかの下流ノードにおける入力レートが制御レートとして格納された制御情報または拡張制御情報を受信する受信手段をさらに有し、
前記生成手段は、
前記受信手段によって受信された情報の種別に応じて拡張制御情報を生成するか否かを決定することを特徴とする付記１記載の通信制御装置。
【０１１８】
（付記５）前記生成手段は、
前記受信手段によって拡張制御情報が受信され、かつ許容レートが希望レート以上である場合に、拡張制御情報を生成することを特徴とする付記４記載の通信制御装置。
【０１１９】
（付記６）前記生成手段は、
前記受信手段によって受信された拡張制御情報に格納された制御レートおよび自ノードの入力レートのうち大きいレートを制御レートとして拡張制御情報に格納することを特徴とする付記５記載の通信制御装置。
【０１２０】
（付記７）前記生成手段は、
前記受信手段によって拡張制御情報が受信され、かつ許容レートが希望レート未満である場合に、制御情報を生成することを特徴とする付記４記載の通信制御装置。
【０１２１】
（付記８）前記生成手段は、
前記受信手段によって受信された拡張制御情報に格納された制御レートおよび自ノードの入力レートのうち大きいレートを制御レートとして制御情報に格納することを特徴とする付記７記載の通信制御装置。
【０１２２】
（付記９）前記生成手段は、
前記受信手段によって制御情報が受信された場合に、許容レートと希望レートの大小関係に関わらず受信された制御情報に格納された制御レートを含む制御情報を生成することを特徴とする付記４記載の通信制御装置。
【０１２３】
（付記１０）前記決定手段は、
前記受信手段によって拡張制御情報が受信され、かつこの拡張制御情報に格納された制御レートが自ノードの入力レート未満である場合に、通信ネットワーク全体の伝送容量レートから自ノードを通過するデータのトラフィックレートおよびすべての下流ノードの入力レートの合計を減算して得られるレートを自ノードの許容レートと決定することを特徴とする付記４記載の通信制御装置。
【０１２４】
（付記１１）前記決定手段は、
前記受信手段によって制御情報が受信された場合に、この制御情報に格納された制御レートを自ノードの許容レートと決定することを特徴とする付記４記載の通信制御装置。
【０１２５】
（付記１２）前記生成手段は、
前記受信手段によって受信された拡張制御情報に格納された制御レートと自ノードの入力レートとの差分に関する差分情報を拡張制御情報に格納することを特徴とする付記４記載の通信制御装置。
【０１２６】
（付記１３）前記決定手段は、
前記差分情報を用いてすべての下流ノードの入力レートの合計を算出し、許容レートの決定に使用することを特徴とする付記１２記載の通信制御装置。
【０１２７】
（付記１４）前記生成手段は、
自ノードの入力レートが制御レートとして拡張制御情報に格納される際、下流ノードの入力レートについて自ノードの入力レートを基準とした差分を算出し、差分情報を更新することを特徴とする付記１２記載の通信制御装置。
【０１２８】
（付記１５）前記生成手段は、
前記受信手段によって受信された制御情報または拡張制御情報に格納された制御レートが自ノードを通過するデータのトラフィックレート以上である場合に、制御レートを含まない制御情報を生成することを特徴とする付記４記載の通信制御装置。
【０１２９】
（付記１６）リング状に接続された複数のノードからなる通信ネットワークにおいて上流ノードから下流ノードへ向かうデータ伝送に輻輳が発生した場合に、上流ノードの入力レートを制限する制御レートを含む制御情報を送信するノード内における通信制御方法であって、
自ノードにおけるデータの入力に許容される許容レートを決定する決定工程と、
前記決定工程にて決定された許容レートが自ノードの希望レート以上である場合に、希望レートが達成される旨の満足情報を含む拡張制御情報を生成する生成工程と、
前記生成工程にて生成された拡張制御情報を上流ノードへ送信する送信工程と
を有することを特徴とする通信制御方法。
【産業上の利用可能性】
【０１３０】
本発明は、ノードにおける通信レートの発振を防止し、通信ネットワークを構成する複数のノードに公平に帯域を分配する場合に適用することができる。
【図面の簡単な説明】
【０１３１】
【図１】実施の形態１に係るノードの要部構成を示すブロック図である。
【図２−１】実施の形態１に係る通常パケットの一例を示す図である。
【図２−２】実施の形態１に係る拡張パケットの一例を示す図である。
【図３】実施の形態１に係る拡張パケットの送受信の一例を示す図である。
【図４−１】実施の形態１に係る制御フレーム送信動作を示すフロー図である。
【図４−２】図４−１に続く図である。
【図５−１】実施の形態１に係るノード間通信の一例を示す図である。
【図５−２】図５−１に続く図である。
【図５−３】図５−２に続く図である。
【図５−４】図５−３に続く図である。
【図６−１】実施の形態２に係るノード間通信の一例を示す図である。
【図６−２】図６−１に続く図である。
【図６−３】図６−２に続く図である。
【図７−１】輻輳発生時のノード間通信の一例を示す図である。
【図７−２】図７−１に続く図である。
【図７−３】図７−２に続く図である。
【符号の説明】
【０１３２】
１０１  データフレーム送受信部
１０２  制御フレーム受信部
１０３  入力可能レート算出部
１０４  許容レート決定部
１０５  入力レート制御部
１０６  キュー監視部
１０７  パケットタイプ判定部
１０８  パケットタイプ決定部
１０９  差分レート算出部
１１０  パケット生成部
１１１  制御フレーム送信部
【図１】
0004576350.tif 000002
【図２−１】
0004576350.tif 000003
【図２−２】
0004576350.tif 000004
【図３】
0004576350.tif 000005
【図４−１】
0004576350.tif 000006
【図４−２】
0004576350.tif 000007
【図５−１】
0004576350.tif 000008
【図５−２】
0004576350.tif 000009
【図５−３】
0004576350.tif 000010
【図５−４】
0004576350.tif 000011
【図６−１】
0004576350.tif 000012
【図６−２】
0004576350.tif 000013
【図６−３】
0004576350.tif 000014
【図７−１】
0004576350.tif 000015
【図７−２】
0004576350.tif 000016
【図７−３】
0004576350.tif 000017