以下に、本願の開示するリング型ネットワーク、中継装置及び帯域制御方法の実施例を図面に基づいて詳細に説明する。なお、以下の実施例は開示の技術を限定するものではない。
続いて、実施例2に係るリング型ネットワークについて説明する。なお、以下では、リング型ネットワークのネットワーク構成を説明した後にリング型ネットワークに含まれる各装置の構成を説明し、その後、リング型ネットワークにおける処理の流れを説明することとする。
[リング型ネットワークのネットワーク構成]
図2は、実施例2に係るリング型ネットワークのネットワーク構成例を示す図である。図2に示すように、リング型ネットワーク100には、マスタノード(master node)10と、コントロール(Control)端末20と、スレーブノード(slave node)30−1〜30−5と、端末装置50A、50a、50B及び50bとが設けられる。
このリング型ネットワーク100では、マスタノード10を起点として反時計回りに、スレーブノード30−1、スレーブノード30−2、スレーブノード30−3、スレーブノード30−4、スレーブノード30−5の順に各スレーブノード30が接続される。このうち、マスタノード10は、データの入出力を行うためのインタフェース(interface)であるポート10a及びポート10bを介してスレーブノード30と接続される。また、スレーブノード30は、ポート30a及びポート30bを介して他のスレーブノード30またはマスタノード10と接続される。
ここで、マスタノード10及びスレーブノード30は、マスタノード10がスレーブノード30へコントロールフレーム(control frame)を送信することによりスレーブノード30へ指令を行う機能を有する点が異なる。図2に示す例では、リング型ネットワーク100に収容されるノードのうち、コントロール端末20に接続されたノードがマスタノード10として定義されるとともに、それ以外のノードがスレーブノード30として定義される場合を想定する。なお、マスタとスレーブとの関係は、図2に示す構成に限定されるものではなく、任意のスレーブノード30をマスタに変更することができ、また、マスタとするノードを複数設けることとしてもよい。
これらノードの一例としては、ルータ(router)、L3スイッチ(layer 3 switch)、L2スイッチ(layer 2 switch)、スイッチングハブ(switching hub)やルーティング(routing)機能を搭載したコンピュータ(computer)などを適用できる。
また、リング型ネットワーク100では、マスタノード10とコントロール端末20とが接続される。このコントロール端末20は、ネットワーク管理用の端末装置であり、例えば、リング型ネットワーク100または各ノード間の収容帯域を設定したり、また、リング型ネットワーク100へのノードの追加または削除を承認したり、拒否したりする機能を有する。
また、リング型ネットワーク100では、スレーブノード30−1と端末装置50Aとが接続されるとともにスレーブノード30−4と端末装置50aとが接続される。さらに、リング型ネットワーク100では、スレーブノード30−3と端末装置50Bとが接続されるとともにスレーブノード30−4と端末装置50bとが接続される。
これら端末装置50A、端末装置50a、端末装置50B及び端末装置50bの一例としては、サーバ(server)やパーソナルコンピュータ(PC:Personal Computer)などのコンピュータを適用できる。
ここで、リング型ネットワーク100には、主信号として伝送されるパケットデータ(Ether Packet Data)が伝送路内で無限に巡回しないように、特定のポートで通過するパケットデータを廃棄するブロッキングポイント(blocking point)60が設定される。図2の例では、コントロール端末20と接続されるマスタノード10のポート10bがブロッキングポイント60として設定されている場合を示す。
[マスタノード10の構成]
続いて、リング型ネットワーク100に含まれるマスタノード10の構成について説明する。図3は、実施例1に係るマスタノードの構成を示すブロック図である。なお、マスタノード10は、図3に示す機能部以外にも既存の中継装置が有する機能を有する。例えば、マスタノード10へ入力されたパケットをスレーブノード30や自装置に収容される装置へ転送する転送機能が含まれる。また、ノード間を接続するリンクを形成する複数の回線を仮想的に1つの回線として扱って転送を行うリンクアグリゲーション(link aggregation)機能なども含まれる。
図3に示すマスタノード10は、接続監視フレーム生成部11aと、帯域監視フレーム生成部12aと、多重化部13と、フレーム判別部14と、接続構成抽出部11bと、帯域負荷抽出部12bと、リング監視テーブル15とを有する。さらに、マスタノード10は、判定契機指示部16と、帯域負荷判定部17と、変更先決定部18と、ブロッキングフレーム生成部19aと、ブロッキング解放フレーム生成部19bと、宛て先判定部19cと、状態遷移部19dとを有する。
ここで、図4及び図5を用いて、後述の接続監視フレーム生成部11a、帯域監視フレーム生成部12a、ブロッキングフレーム生成部19aまたはブロッキング解放フレーム生成部19bにより生成させるコントロールフレームについて説明する。図4は、コントロールフレームのデータ構造の一例を示す図であり、また、図5は、コントロールフレームの循環態様の一例を示す図である。なお、図5に示す例では、マスタノード10に接続されるノードのうちスレーブノード30−1からコントロールフレームの循環を開始する場合を説明するが、ノード30−5から循環を開始することとしてもかまわない。
コントロールフレームは、スレーブノード制御用のデータフレームである。一例としては、コントロールフレームは、図5に示すように、DA、SA、VID、Rtype、フレーム種類別の情報やFCSを含んだフォーマットで形成される。ここで言うDA(destination address)は、フレームのあて先を指し、SA(source address)は、フレームの送信元を指す。また、VIDは、VLAN(Virtual LAN)のID(identification)を指す。また、Rtypeは、コントロールフレームの種類を指す。また、FCS(frame check sequence)は、誤り検出用のCRCデータ(cyclic redundancy check)が格納される領域を指す。
このコントロールフレームには、接続監視フレーム、帯域監視フレーム、ブロッキングフレーム及びブロッキング解放フレームの4種類のフレームが使用される。これら接続監視フレーム、帯域監視フレーム、ブロッキングフレーム及びブロッキング開放フレームの間では、DA、SA、VID及びFCSの部分のフォーマットが共通する。なお、各フレーム間で異なる定義がなされるRtype及びフレーム種類別の情報については、各フレームを生成する各機能部の説明で後述する。
図5に示すように、コントロールフレームは、マスタノード10を起点に、スレーブノード30−1、スレーブノード30−2、スレーブノード30−3、スレーブノード30−4、スレーブノード30−5の順に各スレーブノード30で転送される。その後、スレーブノード30−5から送出されたコントロールフレームは、マスタノード10へ回帰する。このとき、マスタノード10のポート10bは、ブロッキングポイント60に設定されているが、ブロッキングポイント60がブロッキングの対象とするのは主信号(パケットデータ)であるので、コントロールフレームはブロッキングポイント60を疎通する。
このようにマスタノード10、スレーブノード30−1〜30−5、マスタノード10間でコントロールフレームを循環させることにより、各スレーブノード30でコントロールフレームに埋め込まれたフレームの種類に合った処理を実行させる。
図3に戻り、接続監視フレーム生成部11aは、接続監視フレームを生成する処理部である。この接続監視フレーム生成部11aは、ブロッキングポイント60が設定された場合や前回に接続監視フレームを送出してから所定の期間が経過した場合に、図4に示すコントロールフレームのRtypeを「接続監視」とした接続監視フレームを生成する。このとき、接続監視フレームのあて先であるDA及び送信元SAには、マスタノード10のMACアドレスが記述される。また、マスタノード10から接続監視フレームを送出する段階では、各スレーブノード30により情報が埋め込まれる前の段階であるので、フレームを構成するのに不足する部分には「Padding」が挿入される。
かかるRtype「接続監視」は、スレーブノード30に自装置のノード識別子「Node ID」、入力ポートの番号「In-put port 番号」及び出力ポートの番号「Out-put port」を接続監視フレームへ挿入した上で中継させる指令コードの役割を果たす。このような接続監視フレームを送出するのは、リング型ネットワーク100に収容されるノード間の接続構成、いわゆるノードリンクがノードの追加や削除により変化するので、ノードリンクの変更に追従して最新のノードリンクを管理するためである。
帯域監視フレーム生成部12aは、帯域監視フレームを生成する処理部である。この帯域監視フレーム生成部12aは、前回に帯域監視フレームを送出してから所定の期間が経過した場合に、図4に示すコントロールフレームのRtypeを「帯域監視」とした帯域監視フレームを生成する。このとき、帯域監視フレームのあて先であるDA及び送信元SAには、マスタノード10のMACアドレスが記述される。また、マスタノード10から帯域監視フレームを送出する段階では、各スレーブノード30により情報が埋め込まれる前の段階であるので、フレームを構成するのに不足する部分には「Padding」が挿入される。
かかるRtype「帯域監視」は、スレーブノード30に自装置へ入力されるパケットの伝送帯域を帯域負荷として帯域監視フレームへ付加した上で中継させる指令コードの役割を果たす。このような帯域監視フレームを送出するのは、刻々と変化する各スレーブノード30の帯域負荷をマスタノード10で管理するためである。
多重化部13は、接続監視フレーム、帯域監視フレーム、ブロッキングフレームやブロッキング解放フレームなどのマスタノード10から送出するフレームを多重化(Multiplexing)する処理部である。
フレーム判別部14は、スレーブノード30からポート10aまたはポート10bを介して受信したフレームの種別を判別する処理部である。例えば、フレーム判別部14は、他のノード、すなわちスレーブノード30−1または30−5から受信したフレームに含まれるフレーム種別「Rtype」を参照する。
このとき、フレーム種別「Rtype」が接続監視である場合には、受信したフレームが各スレーブノード30を循環してマスタノード10へ回帰した接続監視フレームであると判別できる。この場合に、フレーム判別部14は、接続監視フレームを接続構成抽出部11bへ出力する。
また、フレームの種別「Rtype」が帯域監視である場合には、受信したフレームが各スレーブノード30を循環してマスタノード10へ回帰した帯域監視フレームであると判別できる。この場合に、フレーム判別部14は、帯域監視フレームを帯域負荷抽出部12bへ出力する。
また、フレームの種別「Rtype」がブロッキングである場合には、受信したフレームが各スレーブノード30を循環してマスタノード10へ回帰したブロッキングフレームであると判別できる。この場合に、フレーム判別部14は、ブロッキングフレームを宛て先判定部19cへ出力する。
また、フレームの種別「Rtype」がブロッキング解放である場合には、受信したフレームが各スレーブノード30を循環してマスタノード10へ回帰したブロッキング解放フレームであると判別できる。この場合に、フレーム判別部14は、ブロッキング解放フレームを宛て先判定部19cへ出力する。
接続構成抽出部11bは、接続監視フレームからリング型ネットワーク100を形成するノードの接続構成を抽出する処理部である。図6は、各スレーブノードを循環した後の接続監視フレームの一例を示す図である。図6に示すように、各スレーブノード30を循環させた接続監視フレームには、各スレーブノード30の「Node ID」、「In-put port 番号」及び「Out-put port 番号」が各スレーブノード30で接続監視フレームが受信された順番に埋め込まれている。接続構成抽出部11bは、接続監視フレームに埋め込まれているスレーブノード30の「Node ID」、「In-put port 番号」及び「Out-put port 番号」を前方から順に抽出する。そして、接続構成抽出部11bは、このようにして抽出した順番に「Node ID」、「In-put port 番号」及び「Out-put port 番号」を後述のリング監視テーブル15へ登録する。
例えば、図2に示すリング型ネットワーク100上で接続監視フレーム生成部11aにより生成された接続監視フレームがスレーブノード30−1へ送出される場合を想定する。この場合には、スレーブノード30−1によりNode ID「30−1」、In-put port 番号「30b−1」及びOut-put port 番号「30a−1」が接続監視フレームへ挿入される。続いて、スレーブノード30−2によりNode ID「30−2」、In-put port 番号「30b−2」及びOut-put port 番号「30a−2」が接続監視フレームへ挿入される。その後、スレーブノード30−3によりNode ID「30−3」、In-put port 番号「30b−3」及びOut-put port 番号「30a−3」が接続監視フレームへ挿入される。そして、スレーブノード30−4によりNode ID「30−4」、In-put port 番号「30b−4」及びOut-put port 番号「30a−4」が接続監視フレームへ挿入される。続いて、スレーブノード30−5によりNode ID「30−5」、In-put port 番号「30b−5」及びOut-put port 番号「30a−5」が接続監視フレームへ挿入される。
このように各スレーブノード10を循環した接続監視フレームを受け取った接続構成抽出部11bは、Node ID「30−1」、In-put port 番号「30b−1」及びOut-put port 番号「30a−1」をリング監視テーブル15の最初のレコードへ登録する。同様にして、接続構成抽出部11bは、スレーブノード30−2からスレーブノード30−5までの接続構成をリング監視テーブルの各レコードへ登録する。最後に、接続構成抽出部11bは、マスタノード10のNode ID「10」、In-put port 番号「10b」及びOut-put port 番号「10a」をリング監視テーブルのレコードへ登録する。
帯域負荷抽出部12bは、帯域監視フレームからリング型ネットワーク100を形成するノードにおける帯域負荷を抽出する処理部である。図7は、各スレーブノードを循環した後の帯域監視フレームの一例を示す図である。図7に示すように、各スレーブノード30を循環させた接続監視フレームには、各スレーブノード30の「Node ID」及び「伝送帯域」が各スレーブノード30で帯域監視フレームが受信された順番に埋め込まれている。帯域負荷抽出部12bは、帯域監視フレームに埋め込まれているスレーブノード30の「Node ID」及び「帯域負荷」を前方から順に抽出する。そして、帯域負荷抽出部12bは、このようにして抽出した「Node ID」ごとの「帯域負荷」を後述のリング監視テーブル15における「Node ID」に対応する「帯域負荷」へ登録する。
ここで、図8を用いて、帯域負荷抽出部12bによる帯域負荷の登録要領を説明する。図8は、リング型ネットワーク上で複数の伝送経路が重複する場合の一例を示す図である。図8に示す例では、スレーブノード30−1に収容される端末装置50Aからスレーブノード30−4に収容される端末装置50aへパケットデータが送信される場合を想定する。さらに、スレーブノード30−3に収容される端末装置50Bからスレーブノード30−4に収容される端末装置50bへパケットデータが送信される場合を想定する。この図8に示す例では、端末装置50A及び端末装置50a間の伝送帯域が500Mb/sであり、かつ端末装置50B及び端末装置50b間の伝送帯域が800Mb/sであるものとする。なお、図8に示す符号RAは、パケットが端末装置50Aから端末装置50aへ伝送される場合の伝送経路を示す。また、図8に示す符号RCは、パケットが端末装置50Bから端末装置50bへ伝送される場合の伝送経路を示す。
図8に示すパケットデータの伝送が実行されている場合には、スレーブノード30−1によりNode ID「30−1」とともに、端末装置50Aから入力されるパケットの伝送帯域「500Mb/s」が接続監視フレームへ挿入される。続いて、スレーブノード30−2においてもNode ID「30−2」とともに、スレーブノード30−1から入力されるパケットの伝送帯域「500Mb/s」が接続監視フレームへ挿入される。その後、スレーブノード30−3によりNode ID「30−3」とともに、スレーブノード30−3へ入力されるパケットの伝送帯域「1300Mb/s」が接続監視フレームへ挿入される。このスレーブノード30−3では、スレーブノード30−2から入力されるパケットの伝送帯域「500Mb/s」に加え、端末装置50Bから入力される伝送帯域「800Mb/s」を合わせた「1300Mb/s」が入力帯域となる。また、スレーブノード30−4及びスレーブノード30−5では、パケットデータが伝送されていないので、自装置のNode ID「30−2」とともに伝送帯域「0Mb/s」が接続監視フレームへ挿入される。
このようにして各スレーブノード10を循環した接続監視フレームを受け取った帯域負荷抽出部12bは、リング監視テーブル15におけるNode ID「30−1」の帯域負荷へ「500Mb/s」を登録する。そして、帯域負荷抽出部12bは、リング監視テーブル15におけるNode ID「30−2」の帯域負荷へ「500Mb/s」を登録する。さらに、帯域負荷抽出部12bは、リング監視テーブル15におけるNode ID「30−3」の帯域負荷へ「1300Mb/s」を登録する。同様にして、帯域負荷抽出部12bは、スレーブノード30−4及びスレーブノード30−5の帯域負荷「0Mb/s」をリング監視テーブル15の各レコードへ登録する。最後に、帯域負荷抽出部12bは、マスタノード10にはパケットデータの入力がないので、マスタノード10のNode ID「10」の帯域負荷へ「0Mb/s」を登録する。
リング監視テーブル15は、リング型ネットワーク100の接続構成及び帯域負荷を監視するためのテーブルである。図9は、リング監視テーブルに記憶される情報の構成例を示す図である。図9に示すように、リング監視テーブル15は、ノードID、Inputポート番号、Outputポート番号及び帯域負荷を対応付けて記憶する。
図9に示す例では、リング型ネットワーク100を形成する各ノードがNode ID「30−1」、Node ID「30−2」、Node ID「30−3」、Node ID「30−4」、Node ID「30−5」、Node ID「10」の順に接続されていることを示す。また、Node ID「30−1」のスレーブノード30−1においては、入力ポートの番号が「30b−1」であり、出力ポートの番号が「30a−1」であることを示す。さらに、Node ID「30−2」〜Node ID「30−5」のスレーブノード30−2〜30−5においても同様に、入力ポートの番号がそれぞれ「30b−2」〜「30b−5」であり、出力ポートの番号がそれぞれ「30a−2」〜「30a−5」であることを示す。また、Node ID「10」のマスタノード10においては、入力ポートの番号が「10b」であり、出力ポートの番号が「10a」であることを示す。
このように、リング監視テーブル15における各項目のうちノードID、Inputポート番号及びOutputポート番号など接続構成に関する項目については、接続構成抽出部11bによりリング型ネットワーク100の最新の接続構成が更新される。
さらに、図9に示す例では、スレーブノード30−1へ入力されるパケットの帯域負荷が500Mb/sであることを示す。さらに、スレーブノード30−2へ入力されるパケットの帯域負荷も500Mb/sであることを示す。また、スレーブノード30−3へ入力されるパケットの帯域負荷が1300Mb/sであることを示す。そして、スレーブノード30−3〜30−5へ入力されるパケットの帯域負荷がそれぞれ0Mb/sであることを示す。さらに、マスタノード10へ入力されるパケットの帯域負荷も0Mb/sであることを示す。
このリング監視テーブル15における各項目のうち帯域負荷については、帯域負荷抽出部12bによりリング型ネットワーク100の各ノードにおける最新の帯域負荷が更新される。
図3に戻り、判定契機指示部16は、後述の帯域負荷判定部17による帯域負荷の判定を実行させる契機を帯域負荷判定部17へ指示する処理部である。
すなわち、帯域負荷抽出部12bによりリング監視テーブル15が更新される度に帯域負荷の判定を実行させたのでは、ブロッキングポイント60の変更頻度が高まることも予想される。例えば、リング型ネットワーク100上で収容帯域を超える状態が発生する度にブロッキングポイント60を逐次変更していたのでは、ブロッキングフレーム及びブロッキング解放フレームが頻繁に巡回することになり、ネットワークの負荷が高まる。
このため、判定契機指示部16は、ブロッキングポイント60が過度に変更されないように、リング監視テーブル15の更新回数が所定回数になった場合に帯域負荷の判定を帯域負荷判定部17に実行させる。これによって、静止画の伝送により特定のノードで帯域負荷が一時的に収容帯域を超える事態は許容する一方で、動画の伝送により特定のノードで帯域負荷が収容帯域を継続して超える事態は許容しないなどの柔軟な帯域制御が可能となる。
帯域負荷判定部17は、リング監視テーブル15を用いて、マスタノード10及びスレーブノード30における帯域負荷がリング型ネットワーク100の収容帯域を超えているか否かを判定する処理部である。
例えば、リング型ネットワーク100の収容帯域が1000Mb/s(1Gb/s)であるものとして、図9に示すリング監視テーブル15を用いて帯域負荷を判定する場合を説明する。この場合には、スレーブノード30−3へ入力されるパケットの帯域負荷が1300Mb/sが収容帯域1000Mb/sを300Mb/s超えている。一方、他のノードへ入力されるパケットの帯域負荷は収容帯域1000Mb/s未満である。したがって、帯域負荷判定部17は、スレーブノード30−3へ入力されるパケットの帯域負荷が収容帯域を超えている旨を判定結果として得る。なお、ここでは、リング型ネットワーク100の収容帯域が各ノードリンク間で同一である場合を説明したが、各ノードリンク間で収容帯域が異なることとしてもかまわない。
変更先決定部18は、ブロッキングポイント60の変更先とするポートを決定する処理部である。一例としては、変更先決定部18は、帯域負荷判定部17によりパケットの伝送帯域が収容帯域を超えるノードが検出された場合に、そのノードにより転送が行われている出力ポートとは逆方向に連なるポートをブロッキングポイント60の変更先として決定する。
図8及び図9に示す例で言えば、帯域負荷判定部17によりスレーブノード30−3へ入力される帯域負荷1300Mb/sがリング型ネットワーク100の収容帯域1000Mb/sを超える旨の判定がなされる。このような伝送状況の下、変更先決定部18は、スレーブノード30−3により転送されている出力ポート30a−3とは逆方向に連なるポートをブロッキングポイント60の変更先として決定する。このとき、帯域負荷が収容帯域を超過するスレーブノード30−3を経由する伝送経路RA及びRCのうち、パケットの送信元の端末装置がスレーブノード30−3に含まれていない方の伝送経路RAの送信元の端末装置に至るまでのポートを変更対象とする。つまり、変更先決定部18は、ポート30b−3、ポート30a−2、ポート30a−2及びポート30a−1のうちいずれかをブロッキングポイント60の変更先とする。
かかるブロッキングポイント60の変更により、スレーブノード30−3を経由する伝送経路RA及びRCのうち伝送経路RAをスレーブノード30−3を経由しない伝送経路に変更できる。なお、ここでは、変更先決定部18は、スレーブノード30−3が転送している出力ポート30a−3に連なるポートのうち最も近いポート30b−3を変更先とする場合を説明することとする。
ブロッキングフレーム生成部19aは、ブロッキングフレームを生成する処理部である。すなわち、ブロッキングフレーム生成部19aは、帯域負荷判定部17によりパケットの伝送帯域が収容帯域を超えるノードが検出された場合に、図4に示すコントロールフレームのRtypeを「ブロッキング」としたブロッキングフレームを生成する。
図10は、ブロッキングフレームの一例を示す図である。図10に示すように、ブロッキングフレーム生成部19aは、変更先決定部18によりブロッキングポイント60の変更先と決定されたノードの「Node ID」をブロッキングフレームの「Blocking Node ID」として記述する。さらに、ブロッキングフレーム生成部19aは、変更先決定部18によりブロッキングポイント60の変更先と決定されたポート番号「port 番号」をブロッキングフレームの「Blocking Port」として記述する。さらに、ブロッキングフレーム生成部19aは、フレームを構成するのに不足する部分には「Padding」を挿入する。なお、ブロッキングフレームのあて先であるDA及び送信元SAには、マスタノード10のMACアドレスが記述される。
例えば、図8及び図9に示す例で言えば、ブロッキングフレーム生成部19aは、「Blocking Node ID」を「30−3」とするとともに「Blocking Port」を「30b−3」としたブロッキングフレームを生成する。このブロッキングフレームを受信したスレーブノード30−3によりポート30b−3がブロッキング状態とされる。
ブロッキング解放フレーム生成部19bは、ブロッキング解放フレームを生成する処理部である。すなわち、ブロッキング解放フレーム生成部19bは、ブロッキングフレームが各スレーブノードを循環してマスタノード10へ回帰した場合に、図4に示すコントロールフレームのRtypeを「ブロッキング解放」としたブロッキング解放フレームを生成する。
これを説明すると、ブロッキング解放フレーム生成部19bは、変更前のブロッキングポイント60であったノードの「Node ID」をブロッキング解放フレームの「release Node ID」として記述する。さらに、ブロッキング解放フレーム生成部19bは、変更前のブロッキングポイント60であったポート番号「port 番号」をブロッキング解放フレームの「release Port」として記述する。さらに、ブロッキング解放フレーム生成部19bは、フレームを構成するのに不足する部分には「Padding」を挿入する。なお、ブロッキング解放フレームのあて先であるDA及び送信元SAには、マスタノード10のMACアドレスが記述される。
例えば、図8及び図9に示す例で言えば、ブロッキング解放フレーム生成部19bは、「release Node ID」を「10」とするとともに「release Port」を「10b」としたブロッキング解放フレームを生成する。このブロッキング解放フレームを受信したマスタノード10によりポート10bがブロッキング状態から解放される。このように、ブロッキングフレーム及びブロッキング解放フレームが循環した後には、ブロッキングポイント60の変更が完了する。図8に示す例で言えば、ブロッキングポイント60がポート10bからポート30b−3へ変更される。
図11は、ブロッキングポイントの変更による伝送経路の変化を説明するための図である。また、図8に示す符号RCは、パケットが端末装置50Bから端末装置50bへ伝送される場合の伝送経路を示す。図8に示す符号RDは、パケットが端末装置50Aから端末装置50aへ伝送される場合の伝送経路を示す。
図11に示す例で言えば、端末装置50Aが端末装置50aへパケットを伝送する伝送経路が図8に示す伝送経路RAからブロッキングポイント60の変更により、伝送経路RDへ変更される。これによって、スレーブノード30−3を経由する伝送経路RA及びRCのうち伝送経路RAがスレーブノード30−3を経由しない伝送経路に変更される。このため、伝送経路RD及び伝送経路RCが重複しなくなる結果、スレーブノード30−3で帯域負荷が収容帯域を超えてパケットが廃棄される輻輳状態が解消される。
したがって、リング型ネットワーク100の帯域負荷を分散させることができ、リング型ネットワーク100上の帯域を有効活用できる。さらには、無駄なパケットの廃棄がなくなり、パケットデータの伝送効率を向上させることもできる。また、リング型ネットワーク100のネットワーク管理者がモニタ等を通じて接続構成及び帯域負荷を監視する必要がなく、保守運用者の負荷も軽減し、人的コストを削減することもできる。
図3に戻り、宛て先判定部19cは、ブロッキングフレームまたはブロッキング解放フレームのあて先が自装置であるか否かを判定する処理部である。例えば、ブロッキングフレームに含まれる「Blocking Node ID」が「10」である場合には、宛て先判定部19cは、自装置が宛て先であると判定し、それ以外の「Node ID」である場合には、他装置が宛て先であると判定する。また、ブロッキング解放フレームについても同様に、宛て先判定部19cは、「release Node ID」が「10」である場合には自装置が宛て先であると判定し、それ以外の「Node ID」である場合には、他装置が宛て先であると判定する。
状態遷移部19dは、自装置が有するポートをブロッキング状態または解放状態へ遷移させる処理部である。例えば、宛て先判定部19cによりブロッキングフレームが自装置宛てであると判定された場合には、状態遷移部19dは、ブロッキングフレームの「Blocking Port」で指定される指定ポートをブロッキング状態に遷移させる。また、宛て先判定部19cによりブロッキング解放フレームが自装置宛てであると判定された場合には、状態遷移部19dは、ブロッキング解放フレームの「release Port」で指定される指定ポートを解放状態に遷移させる。
[スレーブノード30の構成]
続いて、リング型ネットワーク100に含まれるスレーブノード30の構成について説明する。なお、スレーブノード30−1〜30−5の構成は同一であるので、スレーブノード30−1〜30−5をスレーブノード30と総称して以下の説明を行う。
図12は、実施例1に係るスレーブノードの構成を示すブロック図である。なお、スレーブノード30は、図12に示す機能部以外にも既存の中継装置が有する機能を有する。例えば、スレーブノード30へ入力されたパケットをマスタノード10、他のスレーブノード30や自装置に収容される装置へ転送する転送機能が含まれる。また、ノード間を接続するリンクを形成する複数の回線を仮想的に1つの回線として扱って転送を行うリンクアグリゲーション(link aggregation)機能なども含まれる。
図12に示すスレーブノード30は、フレーム判別部31と、ノードID付与部32と、ポート番号付与部33と、入力帯域監視部34と、帯域情報付与部35と、多重化部36と、宛て先判定部37と、状態遷移部38とを有する。
フレーム判別部31は、マスタノード10または他のスレーブノード30からポート30aまたはポート30bを介して受信したフレームの種別を判別する処理部である。例えば、フレーム判別部31は、他のノードから受信したフレームに含まれるフレーム種別「Rtype」を参照する。
このとき、フレーム種別「Rtype」が接続監視である場合には、フレーム判別部31は、受信した接続監視フレームをノードID付与部32へ出力する。また、フレームの種別「Rtype」が帯域監視である場合には、フレーム判別部31は、受信した帯域監視フレームを帯域情報付与部35へ出力する。また、フレームの種別「Rtype」がブロッキングまたはブロッキング解放フレームである場合には、受信したブロッキングフレームまたはブロッキング解放フレームを宛て先判定部37へ出力する。
ノードID付与部32は、接続監視フレームへ自装置のノードIDを付与する処理部である。例えば、スレーブノード30−1の場合には、自装置のNode ID「30−1」が接続監視フレームのフレーム種別「Rtype」の後に挿入される。また、スレーブノード30−2の場合には、接続監視フレームへスレーブノード30−1により先に挿入されたNode ID「30−1」、In-put port 番号「30b−1」及びOut-put port 番号「30a−1」の後に自装置のNode ID「30−2」が挿入される。同様にして、スレーブノード30−3〜30−5でも接続監視フレームに自装置のNode ID「30−3」〜Node ID「30−5」が挿入される。
ポート番号付与部33は、接続監視フレームへ自装置の入力ポート番号及び出力ポート番号を付与する処理部である。例えば、スレーブノード30−1の場合には、自装置のIn-put port 番号「30b−2」及びOut-put port 番号「30a−2」が接続監視フレームのNode ID「30−1」の後に挿入される。また、スレーブノード30−2の場合には、自装置のIn-put port 番号「30b−2」及びOut-put port 番号「30a−2」が接続監視フレームのNode ID「30−2」の後に挿入される。同様にして、スレーブノード30−3〜30−5でも接続監視フレームに自装置のIn-put port 番号「30b−3」及びOut-put port 番号「30a−3」〜In-put port 番号「30b−5」及びOut-put port 番号「30a−5」が挿入される。
入力帯域監視部34は、自装置に入力されるパケットの伝送帯域を監視する処理部である。図8に示す例で言えば、スレーブノード30−1の場合には、入力帯域監視部34は、端末装置50Aから入力されるパケットの伝送帯域「500Mb/s」を計測する。また、スレーブノード30−2の場合には、入力帯域監視部34は、スレーブノード30−1から入力されるパケットの伝送帯域「500Mb/s」を計測する。また、スレーブノード30−3の場合には、入力帯域監視部34は、スレーブノード30−3へ入力されるパケットの伝送帯域「1300Mb/s」を計測する。このスレーブノード30−3では、スレーブノード30−2から入力されるパケットの伝送帯域「500Mb/s」に加え、端末装置50Bから入力される伝送帯域「800Mb/s」を合わせた「1300Mb/s」が計測される。また、スレーブノード30−4及びスレーブノード30−5の場合には、パケットデータが伝送されていないので、自装置へ入力される伝送帯域として「0Mb/s」を計測する。
帯域情報付与部35は、入力帯域監視部34により監視されるパケットの伝送帯域を帯域監視フレームへ付与する処理部である。図8に示す例で言えば、スレーブノード30−1の場合には、自装置のNode ID「30−1」及び入力帯域監視部34により計測されたパケットの伝送帯域「500Mb/s」が帯域監視フレームへ挿入される。また、スレーブノード30−2の場合には、自装置のNode ID「30−2」及び入力帯域監視部34により計測されたパケットの伝送帯域「500Mb/s」が帯域監視フレームへ挿入される。また、スレーブノード30−3の場合には、自装置のNode ID「30−3」及び入力帯域監視部34により計測されたパケットの伝送帯域「1300Mb/s」が帯域監視フレームへ挿入される。また、スレーブノード30−4及びスレーブノード30−5の場合には、自装置のNode ID「30−4」またはNode ID「30−4」とともに入力帯域監視部34により計測されたパケットの伝送帯域「0Mb/s」が帯域監視フレームへ挿入される。
多重化部36は、接続監視フレーム、帯域監視フレーム、ブロッキングフレームやブロッキング解放フレームなどのスレーブノード30から送出するフレームを多重化(Multiplexing)する処理部である。
宛て先判定部37は、ブロッキングフレームまたはブロッキング解放フレームのあて先が自装置であるか否かを判定する処理部である。ここでは、スレーブノード30−3の場合を例示して説明するが他のスレーブノードでも同様である。例えば、ブロッキングフレームに含まれる「Blocking Node ID」が「30−3」である場合には、宛て先判定部37は、自装置が宛て先であると判定し、それ以外の「Node ID」である場合には、他装置が宛て先であると判定する。また、ブロッキング解放フレームについても同様に、宛て先判定部37は、「release Node ID」が「30−3」である場合には自装置が宛て先であると判定し、それ以外の「Node ID」である場合には、他装置が宛て先であると判定する。
状態遷移部38は、自装置が有するポートをブロッキング状態または解放状態へ遷移させる処理部である。例えば、宛て先判定部37によりブロッキングフレームが自装置宛てであると判定された場合には、状態遷移部38は、ブロッキングフレームの「Blocking Port」で指定される指定ポートをブロッキング状態に遷移させる。また、宛て先判定部37によりブロッキング解放フレームが自装置宛てであると判定された場合には、状態遷移部38は、ブロッキング解放フレームの「release Port」で指定される指定ポートを解放状態に遷移させる。
[処理の流れ]
次に、本実施例に係るリング型ネットワークにおける処理の流れについて説明する。なお、ここでは、(1)接続状態監視処理、(2)接続監視フレーム応答処理、(3)帯域状態監視処理、(4)帯域監視フレーム応答処理、(5)ブロッキングフレーム応答処理の順に説明することとする。
(1)接続状態監視処理
図13は、実施例2に係る接続状態監視処理の手順を示すフローチャートである。この接続状態監視処理は、マスタノード10により実行させる処理であり、ブロッキングポイント60が初期設定または変更設定された場合や前回に接続監視フレームを送出してから所定の期間が経過した場合に起動される処理である。かかる期間の計測は、図示しないタイマ(timer)により計測されるものとする。なお、処理の起動は、タイマによらず、予め定められた時刻になった時点で処理を起動することとしてもかまわない。
図13に示すように、接続監視フレーム生成部11aは、コントロールフレームのRtypeを「接続監視」とした接続監視フレームを生成する(ステップS101)。そして、接続監視フレーム生成部11aは、生成した接続監視フレームを多重化部13に多重化させた上で送出することにより、接続監視フレームをスレーブノード30−1〜スレーブノード30−5を経てマスタノード10へ循環させる(ステップS102)。
その後、接続監視フレーム生成部11aは、各スレーブノード30を循環させた接続監視フレームから「Node ID」、「In-put port 番号」及び「Out-put port 番号」を前方から順に抽出する(ステップS103)。そして、接続構成抽出部11bは、このようにして抽出した順番に「Node ID」、「In-put port 番号」及び「Out-put port 番号」を後述のリング監視テーブル15へ登録し(ステップS104)、処理を終了する。
(2)接続監視フレーム応答処理
図14は、実施例2に係る接続監視フレーム応答処理の手順を示すフローチャートである。この接続監視フレーム応答処理は、スレーブノード30により実行される処理であり、マスタノード10または他のスレーブノード30などの前段のノードから接続監視フレームを受信した場合に起動される処理である。
図14に示すように、前段のノードから接続監視フレームを受信すると(ステップS201)、ノードID付与部32は、接続監視フレームへ自装置のノードIDを付加する(ステップS202)。さらに、ポート番号付与部33は、接続監視フレームへ自装置の入力ポート番号及び出力ポート番号を付加する(ステップS203)。
その後、多重化部36は、自装置のノードID、入力ポート番号及び出力ポート番号が付加された接続監視フレームを多重化した上でその接続監視フレームを後段のノードへ送出し(ステップS204)、処理を終了する。
(3)帯域状態監視処理
図15は、実施例2に係る帯域状態監視処理の手順を示すフローチャートである。この帯域状態監視処理は、前回に帯域監視フレームを送出してから所定の期間が経過した場合に起動される処理である。かかる期間の計測は、図示しないタイマ(timer)により計測されるものとする。なお、処理の起動は、タイマによらず、予め定められた時刻になった時点で処理を起動することとしてもかまわない。
図15に示すように、前回に帯域監視フレームを送出してから所定の期間が経過すると(ステップS301肯定)、帯域監視フレーム生成部12aは、コントロールフレームのRtypeを「帯域監視」とした帯域監視フレームを生成する(ステップS302)。なお、前回に帯域監視フレームを送出してから所定の期間が経過していない場合(ステップS301否定)には、帯域監視フレーム生成部12aは、所定の期間が経過するまで待機する。
そして、帯域監視フレーム生成部12aは、生成した帯域監視フレームを多重化部13に多重化させた上で送出することにより、帯域監視フレームをスレーブノード30−1〜スレーブノード30−5を経てマスタノード10へ循環させる(ステップS303)。
その後、帯域監視フレーム生成部12aは、各スレーブノード30を循環させた帯域監視フレームから「Node ID」及び「帯域負荷」を前方から順に抽出する(ステップS304)。そして、帯域負荷抽出部12bは、このようにして抽出した「Node ID」ごとの「帯域負荷」をリング監視テーブル15における「Node ID」に対応する「帯域負荷」へ登録する(ステップS305)。
ここで、帯域負荷判定部17は、リング監視テーブル15を用いて、マスタノード10及びスレーブノード30における帯域負荷がリング型ネットワーク100の収容帯域を超えているか否かを判定する。このとき、帯域負荷判定部17によりパケットの伝送帯域が収容帯域を超えるノードが検出されなかった場合(ステップS305否定)には、ステップS301の処理へ戻る。
一方、パケットの伝送帯域が収容帯域を超えるノードが検出された場合(ステップS305肯定)には、変更先決定部18は、ブロッキングポイント60の変更先とするポートを決定する(ステップS306)。すなわち、変更先決定部18は、パケットの伝送帯域が収容帯域を超えるノードにより転送が行われている出力ポートとは逆方向に連なるポートをブロッキングポイント60の変更先として決定する。
そして、ブロッキングフレーム生成部19aは、コントロールフレームのRtypeを「ブロッキング」としたブロッキングフレームを生成する(ステップS307)。このとき、ブロッキングフレーム生成部19aは、変更先決定部18によりブロッキングポイント60の変更先と決定されたノードの「Node ID」をブロッキングフレームの「Blocking Node ID」として記述する。さらに、ブロッキングフレーム生成部19aは、変更先決定部18によりブロッキングポイント60の変更先と決定されたポート番号「port 番号」をブロッキングフレームの「Blocking Port」として記述する。
続いて、ブロッキングフレーム生成部19aは、生成したブロッキングフレームを多重化部13に多重化させた上で送出することにより、ブロッキングフレームをスレーブノード30−1〜30−5を経てマスタノード10へ循環させる(ステップS308)。
その後、宛て先判定部19cは、マスタノード10へ回帰したブロッキングフレームのあて先が自装置であるか否かを判定する(ステップS309)。このとき、ブロッキングフレームのあて先が自装置である場合(ステップS309肯定)には、状態遷移部19dは、ブロッキングフレームの「Blocking Port」で指定された指定ポートをブロッキング状態に遷移させる(ステップS310)。なお、ブロッキングフレームのあて先が他装置である場合(ステップS309否定)には、ポートのブロッキングを行うことなく、ステップS311へ移行する。
続いて、ブロッキング解放フレーム生成部19bは、コントロールフレームのRtypeを「ブロッキング解放」としたブロッキング解放フレームを生成する(ステップS311)。このとき、ブロッキング解放フレーム生成部19bは、変更前のブロッキングポイント60であったノードの「Node ID」をブロッキング解放フレームの「release Node ID」として記述する。さらに、ブロッキング解放フレーム生成部19bは、変更前のブロッキングポイント60であったポート番号「port 番号」をブロッキング解放フレームの「release Port」として記述する。
続いて、ブロッキング解放フレーム生成部19bは、ブロッキング解放フレームを多重化部13に多重化させた上で送出することで、ブロッキング解放フレームをスレーブノード30−1〜30−5を経てマスタノード10へ循環させる(ステップS312)。
その後、宛て先判定部19cは、マスタノード10へ回帰したブロッキング解放フレームのあて先が自装置であるか否かを判定する(ステップS313)。このとき、ブロッキング解放フレームのあて先が自装置である場合(ステップS313肯定)には、状態遷移部19dは、ブロッキング解放フレームの「release Port」で指定された指定ポートを解放状態に遷移させる(ステップS314)。なお、ブロッキング解放フレームのあて先が他装置である場合(ステップS313否定)には、そのままステップS301へ移行する。
このようにして、マスタノード10は、自装置の電源がON状態である限り、前回に帯域監視フレームを送出してから所定の期間が経過する度に上記のステップS302〜ステップS314の処理を繰り返し実行する。
(4)帯域監視フレーム応答処理
図16は、実施例2に係る帯域監視フレーム応答処理の手順を示すフローチャートである。この帯域監視フレーム応答処理は、スレーブノード30により実行される処理であり、マスタノード10または他のスレーブノード30などの前段のノードから帯域監視フレームを受信した場合に起動される処理である。
図16に示すように、前段のノードから帯域監視フレームを受信すると(ステップS401)、帯域情報付与部35は、自装置のノードID及び入力帯域監視部34により計測されたパケットの伝送帯域を帯域監視フレームへ付加する(ステップS402)。
その後、多重化部36は、自装置のノードID及びパケットの伝送帯域が付加された接続監視フレームを多重化した上でその帯域監視フレームを後段のノードへ送出し(ステップS403)、処理を終了する。
(5)ブロッキングフレーム応答処理
図17は、実施例2に係るブロッキングフレーム応答処理の手順を示すフローチャートである。このブロッキングフレーム応答処理は、スレーブノード30により実行される処理であり、マスタノード10または他のスレーブノード30などの前段のノードからブロッキングフレームを受信した場合に起動される処理である。
図17に示すように、前段のノードからブロッキングフレームを受信すると(ステップS501)、宛て先判定部37は、受信したブロッキングフレームのあて先が自装置であるか否かを判定する(ステップS502)。
このとき、ブロッキングフレームのあて先が自装置である場合(ステップS502肯定)には、状態遷移部38は、ブロッキングフレームの「Blocking Port」で指定される指定ポートをブロッキング状態に遷移させる(ステップS503)。なお、ブロッキングフレームのあて先が他装置である場合(ステップS502否定)には、そのままステップS504へ移行する。
その後、多重化部36は、自装置で受信したブロッキングフレームを多重化した上でそのブロッキングフレームを後段のノードへ送出し(ステップS504)、処理を終了する。
なお、ここでは、ブロッキングフレーム応答処理について説明したが、スレーブノード30がブロッキング解放フレームに応答する場合も同様の処理を行う。これを説明すると、前段のノードからブロッキング解放フレームを受信すると、宛て先判定部37は、受信したブロッキング解放フレームのあて先が自装置であるか否かを判定する。このとき、ブロッキング解放フレームのあて先が自装置である場合には、状態遷移部38は、ブロッキング解放フレームの「release Port」で指定される指定ポートを解放状態に遷移させる。その後、多重化部36は、自装置で受信したブロッキング解放フレームを多重化した上でそのブロッキングフレームを後段のノードへ送出する。なお、ブロッキング解放フレームのあて先が他装置である場合には、自装置に指定ポートがないので、そのままブロッキングフレームを後段のノードへ送出する。
[実施例2の効果]
上述してきたように、本実施例に係るリング型ネットワーク100において、マスタノード10は、マスタノード10及び各スレーブノード30へ入力されるパケットの伝送帯域を取得する。そして、マスタノード10は、取得したパケットの伝送帯域が所定の収容帯域を超えるマスタノード10またはスレーブノード30により転送されている出力ポートとは逆方向に連なるポートをブロッキングポイント60の変更先として決定する。
このため、ブロッキングポイントの変更に伴い、伝送帯域が収容帯域を超えるノードを経由する伝送経路のうち、少なくとも1つの伝送経路が先のノードを経由しない別の伝送経路に変更される。このため、本実施例に係るリング型ネットワーク100では、複数の送信元から各々の送信先へパケットが伝送される伝送経路が重複する場合に、リング型ネットワーク100の帯域負荷を分散させることができる。
したがって、本実施例に係るリング型ネットワーク100によれば、複数の伝送イベントで伝送経路が重複するノード間に帯域負荷が集中することを防止することが可能である。また、本実施例に係るリング型ネットワーク100では、リング型ネットワーク100の一部に集中する帯域負荷を伝送路全体に分散させるので、リング型ネットワーク100の帯域を有効活用することもできる。さらに、本実施例に係るリング型ネットワーク100では、伝送帯域が収容帯域を超えたノードでパケットが輻輳に起因して廃棄される頻度を低減させるので、パケットデータの伝送効率を向上させることもできる。
このような効果は、上記の従来技術の項で述べた障害用の技術を援用したとしても、その効果を得ることはできない。すなわち、上記の従来技術は、あくまでノード間のリンクに障害があるか否かを基準にブロッキングポイントを切り替えるものである。このため、ブロッキングポイントの切り替えにより伝送経路が変更されたとしても、複数の送信元から各々の受信元へパケットが伝送される伝送経路が重複する状態が解消されるとは限らない。このように、ノード間のリンク障害に対応するための従来技術をリング型ネットワークの帯域制御に援用することはできない。
図20に示す例で言えば、ノード400−5及びノード400−6間に障害が発生した場合には、ポート410−5及びポート410−6がブロッキングポイントに変更される。ところが、ブロッキングポイントが変更された後も端末装置500A及び端末装置500a間の伝送経路RA及び端末装置500B及び端末装置500b間の伝送経路RCは変わらない。このため、ノード400−3及びノード400−4間でパケットが輻輳状態となることも変わらない。
一方、本実施例に係るリング型ネットワーク100では、図11に示すように、端末装置50Aが端末装置50aへパケットを伝送する伝送経路が図8に示す伝送経路RAからブロッキングポイント60の変更により、伝送経路RDへ変更される。これによって、スレーブノード30−3を経由する伝送経路RA及びRCのうち伝送経路RAがスレーブノード30−3を経由しない伝送経路に変更される。このため、伝送経路RD及び伝送経路RCが重複しなくなる結果、スレーブノード30−3で帯域負荷が収容帯域を超えてパケットが廃棄される輻輳状態が解消される。
また、本実施例に係るリング型ネットワーク100において、マスタノード10は、スレーブノード30へ入力されるパケットの伝送帯域を付加した上で中継させる帯域監視フレームを自装置に接続されるスレーブノード30のうち一方のノードへ送信する。その後、マスタノード10は、自装置に接続される他方のノードから帯域監視フレームを受信した場合にその帯域監視フレームに含まれるスレーブノード30ごとのパケットの伝送帯域を抽出する。一方、スレーブノード30は、自装置に接続されるノードのうち一方のノードから帯域監視フレームを受信した場合に、その帯域監視フレームへ自装置に入力されるパケットの伝送帯域を付加する。その上で、スレーブノード30は、パケットの伝送帯域が付加された帯域監視フレームを自装置に接続される他方のノードへ転送する。
これによって、本実施例に係るリング型ネットワーク100では、刻々と変化する各スレーブノード30の帯域負荷をマスタノード10に収集することが可能になる。
さらに、本実施例に係るリング型ネットワーク100において、マスタノード10は、帯域監視フレームから抽出したマスタノード10及びスレーブノード30ごとのパケット伝送帯域をリング監視テーブル15へ更新する。そして、マスタノード10は、リング監視テーブル15に記憶されたパケットの伝送帯域のうち所定の収容帯域を超えるマスタノード10またはスレーブノード30が存在するか否かを判定する。
これによって、本実施例に係るリング型ネットワーク100では、刻々と変化する各スレーブノード30の帯域負荷をマスタノード10で管理することが可能になる。
また、本実施例に係るリング型ネットワーク100において、マスタノード10は、ブロッキングポイントの変更先として決定したポートを含むブロッキングフレームを自装置に接続されるスレーブノード30のうち一方のノードへ送信する。そして、マスタノード10は、自装置に接続される他方のノードからブロッキングフレームを受信した場合に当該ブロッキングフレームの送信前にブロッキングポイントとして設定されていたポートをブロッキング状態から解放する。一方、スレーブノード30は、自装置に接続される他ノードのうち一方のノードからブロッキングフレームを受信した場合に、ブロッキングポイントの変更先とするポートが自装置のポートであるか否かを判定する。そして、自装置のポートであると判定した場合に、ブロッキングポイントの変更先とするポートをブロッキング状態へ遷移させる。また、スレーブノード30は、自装置に接続される他ノードのうち一方のノードから受信したブロッキングフレームを他方のノードへ転送する。
これによって、本実施例に係るリング型ネットワーク100では、ブロッキングポイント60の変更先をブロッキング状態に遷移させるとともに変更前のブロッキングポイント60を解放状態に遷移させることができる。このため、本実施例に係るリング型ネットワーク100によれば、ブロッキングポイント60の変更を円滑に実行することが可能になる。