以下に添付図面を参照して、この発明にかかる冗長経路を有するリングネットワークシステムとそのシステムに使用される転送装置の好適な実施の形態を詳細に説明する。
実施の形態1.
図1は、この発明にかかるリングネットワークシステムを構成する転送装置の概略構成を模式的に示すブロック図である。転送装置(以下、ノードという)は、伝送路を介して送られる情報を受信する受信部11と、受信した情報の転送先に対応する経路情報を示す転送経路情報が格納された転送経路情報格納部12と、情報に付された宛て先情報と転送経路情報に基づいて受信した情報の転送を行う転送制御部13と、情報をノード外部の伝送路に送出する送信部14と、冗長経路を有するリングネットワークシステムにおけるノードの配置に関するトポロジ情報を有するトポロジ情報格納部15と、トポロジ情報から閉ループを検出し、閉ループ経路を作成する閉ループ検出部16と、作成された閉ループ経路を閉ループ情報として格納する閉ループ情報格納部17と、閉ループ情報に基づいて各ノードへの転送コストを算出する転送コスト算出部18と、を備えている。
受信部11は、伝送路に接続され、この伝送路を介して送られてくる所定の長さに分割されたフレームやセル、パケットなど(以下の説明では、情報を所定の長さに分割されたものを総称してパケットという)を受信する機能を有する。
転送経路情報格納部12は、送信または転送するパケットの宛て先情報に基づいて、該パケットの転送経路に関する転送経路情報を格納する。この発明では、転送経路情報として、自ノードからリングネットワークを構成する他のノードまでの転送経路のうち、最もコストの低い転送経路が格納される。この転送経路は後述する転送コスト算出部18によって作成される。
転送制御部13は、受信部11から受信したパケットまたは自ノードから発信するパケットの宛て先情報を取得し、該宛て先情報中の宛て先にパケットを転送するための転送経路情報を転送経路情報格納部12から抽出して、その転送経路情報にしたがって受信したパケットを送信する機能を有する。
送信部14は、伝送路に接続され、転送制御部13から渡されたパケットを伝送路に送出する機能を有する。
トポロジ情報格納部15は、リングネットワークシステム全体におけるノードの配置と伝送路の配線に関するトポロジ情報を格納する。このトポロジ情報には、リング状に接続される伝送路のほかに、2つのノード間を接続する伝送路によって構成される冗長経路に関する情報も含まれている。つまり、この発明では、従来では障害時にしか使用できない冗長経路も、通常時(障害時でないとき)に使用することができるようにトポロジ情報が構成されている。なお、このトポロジ情報は、リングネットワークシステムの管理者によって予め設定されていてもよいし、ノード間においてノードの配置に関する情報のやり取りを行って所定のタイミングで入手するようにしてもよい。
閉ループ検出部16は、トポロジ情報格納部15に格納されるトポロジ情報を用いてリングネットワークシステム内において所定の条件を満たす閉ループを検出する機能を有する。具体的には、リングネットワークシステムのうち、冗長経路を含まない閉ループと、1つの冗長経路または交差しない2つの冗長経路を含む閉ループであって該閉ループを構成するノード間に他の冗長経路が形成されていない閉ループと、を検出する。また、閉ループ検出部16は、検出した閉ループについて、閉ループ経路を作成する機能を有する。
閉ループ情報格納部17は、閉ループ検出部16によって作成された閉ループ経路を閉ループ情報として格納する機能を有する。
転送コスト算出部18は、自ノードからリングネットワークシステムを構成する他のノードまでの転送経路のうち、最もコストの低い転送経路を算出する機能を有する。この経路は、自ノードから閉ループ経路を構成する各ノードまでの転送コストを各閉ループ経路について算出し、この中からノードごとにコストが最小となる経路を選択することによって求められる。また、このとき、求められた経路にパケットを送信するための自ノードに接続された伝送路についても求められる。このようにして求められた転送経路とこの転送経路にパケットを送信するために使用される伝送路の組み合わせは、転送経路情報として転送経路情報格納部12に格納される。
図2は、冗長経路を有するリングネットワークシステムの構成の一例を示す図である。この図2において、図1に示される構成を有する複数のノードa〜kが伝送路201〜211によってリング状に接続され、閉ループのリングノードネットワークを構成している。また、このリングノードネットワークのノードbとノードiとの間と、ノードdとノードfとの間が、それぞれ伝送路で接続され、冗長経路(バイパス経路ともいう)301,302を構成している。リングネットワークシステムを構成するノードa〜kは、図1の左回りおよび右回りに情報を送信することが可能である。また、冗長経路301,302は、リングノードネットワークを構成する伝送路201〜211の一部が断線などの障害が発生した場合に使用されるものではなく、通常時においても使用可能な状態にあるものとする。
つぎに、各ノードにおける冗長経路転送制御方法について、図2のリングネットワークシステムのノードaの場合を例に挙げて説明する。まず、ノードにおける初期化処理について説明する。図3は、閉ループ検出部16による閉ループ検出の処理手順を示すフローチャートである。ノードaには図2に示される形態でノードが接続されたリングネットワークシステムに関するトポロジ情報が格納されているので、ノードaは、従来のリングネットワークと同様にリングノードネットワークの構成ノードであることを認識している。そのため、ノードaの閉ループ検出部16は、最初にトポロジ情報に基づいて冗長経路を含まない閉ループであるリングノードネットワークを検出し(ステップS11)、検出したリングノードネットワークによって作成される閉ループ経路を閉ループ情報格納部17に格納する。すなわち、ノードaの閉ループ検出部16は、自ノードaから出発し、自ノードaへ帰着するリングノードネットワーク401の閉ループ経路を作成する。図2に示される例では、ノードaから発信し、リングノードネットワーク401を図2の示すところの右回りに1周してノードaに着信する経路である、a,b,c,d,e,f,g,h,i,j,k,aとなる経路と、ノードaから発信し、リングノードネットワーク401を図2の示すところの左回りに1周してノードaに着信する経路である、a,k,j,i,h,g,f,e,d,c,b,aとなる経路とを作成する。図4は、閉ループ情報格納部17に格納される閉ループ情報の一例を示す図である。このステップS11で検出された2つの経路は、図4の行501,502に示されている。
また、ノードaの閉ループ検出部16は、1つの冗長経路または交差しない2つの冗長経路を含む閉ループであって、該閉ループを構成するノード間に他の冗長経路が形成されていない閉ループを検出し、検出した閉ループから閉ループ経路を作成する(ステップS12)。作成された閉ループ経路は閉ループ情報として閉ループ情報格納部17に格納される。このとき、自ノードを含まない閉ループ経路の作成は、冗長経路の構成ノードの1つを起点とし、その冗長経路の構成ノードの他の1つを終点とする閉ループ経路を作成する。また、リングネットワークシステム内に交差する冗長経路が含まれる場合には、その冗長経路を最初に通過(使用)する経路、すなわち起点をその冗長経路の構成ノードの1つとして、その冗長経路を経て作成される閉ループ経路も作成する。
図2に示される例では、最初にノードaの閉ループ検出部16は、リングノードネットワーク401の閉ループの右回りの経路から最初に現れる冗長経路301を構成するノードbと、リングノードネットワーク401の閉ループの左回りの経路から最初に現れる冗長経路301を構成するノードiとから、閉ループ402を検出する。そして、自ノードaから出発し、自ノードaへ帰着する閉ループ402の閉ループ経路を作成する。すなわち、ノードaから発信して、閉ループ402を右回りに1周してノードaに着信する経路である、a,b,i,j,k,aとなる経路と、ノードaから出発し、閉ループ402を左回りに1周してノードaに着信する経路である、a,k,j,i,b,aとなる経路が作成される。これらの閉ループ経路は、図4の行503,504に示されている。
また、ノードaの閉ループ検出部16は、リングノードネットワーク401の閉ループの右回りの経路から2番目に現れる冗長経路302を構成するノードdと、リングノードネットワーク401の閉ループの左回りの経路から2番目に現れる冗長経路302を構成するノードfと、を検出し、上記閉ループ402の検出時に検出した冗長経路301と検出したノードd,fを結ぶ冗長経路302で構成される閉ループ403を検出する。そして、閉ループ402の検出時に検出している冗長経路301を構成するいずれかのノードを出発し、他方のノードへ帰着する閉ループ403の閉ループ経路を作成する。すなわち、ノードbを発信して、閉ループ403を右回りでノードiに着信する経路である、b,c,d,f,g,h,iとなる経路と、ノードiを発信して、閉ループ403を左回りでノードbに着信する経路である、i,h,g,f,d,c,bとなる経路が作成される。このように、自ノードを含まない閉ループの経路作成は、自ノードに近い冗長経路の構成ノードの1つを起点とし、その冗長経路の構成ノードの他の1つを終点とする閉ループを作成する。これらの閉ループ経路は、図4の行505,506に示されている。
さらに、ノードaの閉ループ検出部16は、リングノードネットワーク401の閉ループの右回りの経路から3番目に現れる冗長経路を構成するノードの検出を行なうが、前に検出した冗長経路302を構成するノードfを検出するため、新たに検出する冗長経路はないと判断し、冗長経路302を1つだけ使用して構成される閉ループ404を検出する。そして、冗長経路302を構成する一方のノードを発信し、他方のノードへ帰着する閉ループ404の閉ループ経路を作成する。すなわち、ノードdを発信して、閉ループ404を右回りでノードfに着信する経路である、d,e,fとなる経路と、ノードfを発信して閉ループ404を左回りでノードdに着信する経路である、f,e,dとなる経路が作成される。これらの閉ループ経路は、図4の行507,508に示されている。
つぎに、転送コスト算出部18は、ステップS12で検出された各閉ループ経路を基に、自ノードから各閉ループを構成するそれぞれのノードまでの転送コストを、それぞれの閉ループについて算出する(ステップS13)。この例では、冗長経路を含まない閉ループ401における全ての隣り合うノード間の転送コストを右回り左回りともに1とする。また、冗長経路を介して隣り合う全てのノード間の転送コストも1とする。たとえば、ノードaから伝送路201を通ってノードbまでの転送コストは1であり、逆にノードbから伝送路201を通ってノードaまでの転送コストも1である。また、ノードbから冗長経路301を通ってノードiまでの転送コストも1であり、ノードiから冗長経路301を通ってノードbまでの転送コストも1である。さらに、この例における転送コストの算出は、従来ネットワークの転送コストの算出で多く用いられているように、ノード間を転送される度にコストを加算していくこととする。
図5は、閉ループ毎に算出した転送コストを示す図である。この図において、「各閉ループの転送コスト」は、自ノードaから各閉ループに関して経由するノードについての転送コストを示しており、「送信する伝送路」は、上記ノードに情報を送信(転送)するためには、自ノードに接続される伝送路のうちどの伝送路を使用してパケットの情報を送信するかを示している。したがって、この図5においては、「送信する伝送路」に示される伝送路によって自ノードからパケットが送信された場合の転送コストが示されている。
以下、各行に示される内容について説明する。図5の行601に示される“閉ループ402右回り”のコストは、図4の行503に示される閉ループ経路の順に情報を送信した場合の転送コストである。この“閉ループ402右回り”の経路には、自ノードaが含まれているので、コスト0の起点に自ノードを示す“a”を設定して、図4の行503に示される経路が入力される。閉ループ402の右回りの経路は、図2に示されるように、自ノードaから伝送路201を経てノードbへと至るので、「送信する伝送路」には“伝送路201”が入力される。この図5の行601に示されるように、ノードaから右回りに閉ループ402を構成するノードへ送信する場合のコストは、ノードbまでは“1”であり、ノードiまでは“2”であり、ノードjまでは“3”であり、ノードkまでは“4”であることが示されている。
行602に示される“閉ループ402左回り”のコストは、図4の行504に示される閉ループ経路の順に情報を送信した場合の転送コストである。この“閉ループ402左回り”の経路にも、自ノードaが含まれているので、閉ループ402右回りと同様に、コスト0の起点に自ノードを示す“a”を設定して、図4の行504に示される経路が入力される。この場合、自ノードaから伝送路211経てノードkへと至るので、「送信する伝送路」には“伝送路211”が入力される。その他は、行601と同様であるので詳細な説明を省略する。
行603に示される“閉ループ403右回り”のコストは、図4の行505に従ってノードbを起点として算出した転送コストである。ここで、起点であるノードbまでの転送コストは、行602ではコストが“4”であるのに対して行601ではコストが“1”であり、行601の“閉ループ402右回り”を利用した方がコストが低い。したがって、起点であるノードbをコスト1の下に配置している。また、行601を使用することから、ノードaから伝送路201を経てノードbへと至るので、「送信する伝送路」には“伝送路201”が入力される。なお、その他は、行601と同様であるので詳細な説明を省略する。
行604に示される“閉ループ403左回り”のコストは、図4の行506にしたがってノードiを起点として算出した転送コストである。ここで、起点であるノードiは、自ノードaからの転送コストの低い転送経路が行601,602から求められる結果、コスト2の下に配置される。その他は、行601と同様であるので詳細な説明を省略する。
行605に示される“閉ループ404右回り”のコストは、図4の行507に従ってノードdを起点として算出した転送コストである。ここで、起点であるノードdまでの転送コストは、行604ではコストが“6”であるのに対して行603ではコストが“3”であり、行603の“閉ループ403右回り”を利用した方がコストが低い。したがって、起点であるノードdをコスト3の下に配置している。その他は、行601と同様であるので詳細な説明を省略する。
行606に示される“閉ループ404左回り”のコストは、図4の行508に従ってノードfを起点として算出した転送コストである。ここで、起点であるノードfまでの転送コストは、行604ではコストが“5”であるのに対して行603ではコストが“4”であり、行603の“閉ループ403右回り”を利用した方がコストが低い。したがって、起点であるノードfをコスト4の下に配置している。その他は、行601と同様であるので詳細な説明を省略する。
つぎに、ノードaの転送コスト算出部18は、図5に示した各閉ループの転送コストから、リングネットワークシステムを構成するそれぞれのノードまで最小の転送コストとなる経路を検出する(ステップS14)。自ノードaから各ノードまでの転送コストが最小となる経路は、図5に出現する各ノードのうち最も低い転送コストとなる位置を含む閉ループ経路を選択すればよい。ただし、宛先とするノードが閉ループ経路の起点となる場合は、宛先が起点となる閉ループの経路を選択経路から除く。たとえば、ノードiは、行601〜604に表れるが、行604は“閉ループ403左回り”の起点となるので候補から除外すると、行601における転送コストが“2”で最小となる。したがって、ノードiへ情報を転送する場合には、行601の“閉ループ402右回り”を用いて転送するように決定される。この場合、ノードaは、伝送路201を用いてノードiにパケットを送信または転送することになる。その他のノードb〜h,j,kについても同様にして求められる。このようにして求められた経路は転送経路情報として転送経路情報格納部12に格納される。
図6は、転送経路情報の一例を示す図である。行701〜706に示される転送経路情報の内容が、転送コスト算出部18によって作成される。「各閉ループの転送コスト」は、各ノードに関して最小の転送コストとなる経路と、そのときの転送コストを示している。「送信する伝送路」に格納される内容は図5と同様であるので、その詳細な説明を省略する。なお、この図6において、行706に示される最小コストは、起点ノードのみしか存在しないため、ノードによって実行される送信伝送路選択処理では使用されない。以上によって、ノードによる初期化処理が終了する。
以上の処理は、各ノードa〜kによるパケットの転送に先立って、それぞれのノードa〜kで行われるものであり、これによって、各ノードa〜kは、伝送路を介して送信されるパケットを転送することが可能な状態となる。また、このような初期化処理は、リングネットワークシステムを構築した直後や、その構成内容に変更が生じた場合に行われる。
つぎに、ノードにおけるパケットの送信処理と転送処理を含む冗長経路転送制御方法について説明する。パケットの送信処理においては、まず、ノードaの転送制御部13は、転送経路情報格納部12に格納される転送経路情報(図6)を使用して、パケットを発信するときに送信する伝送路を選択する。たとえば、ノードaが、ノードgを宛て先とするパケットを発信する場合には、図6に示される転送経路情報においてノードgまでの最小コストが示される行704を参照すると、送信すべき伝送路は“伝送路201”となっている。そのため、伝送路201に送信することでコスト“4”でノードgにパケットを送信することを認識できる。したがって、ノードaの転送制御部13は、送信部14に接続される伝送路のうち伝送路201を選択して、ノードgを宛て先とするパケットを送信し、パケットの送信処理を終了する。その他のノードb〜kにおいても、同様の手順でパケットを発信する。
なお、パケットの中継を行う転送処理についても、基本的に上述したパケットの送信処理と同様である。ただし、転送処理の場合には、受信部11から受信したパケットについて、転送制御部13が、パケットから取得した宛て先に、転送経路情報格納部12に格納される転送経路情報を参照して最小コストで転送することができる経路を求め、その経路となる自ノードに接続される伝送路に送信部14からパケットを送信する。
以上の説明では、図2に示されるようにリングネットワークシステムにおける冗長経路が交差しない場合を例に挙げたが、以下では、冗長経路が交差する場合の閉ループ検出処理と経路選択処理の具体例について説明する。
図7は、交差する冗長経路を有するリングネットワークシステムの構成の一例を示す図である。この図7に示されるように、7つのノードa〜gがリング状に接続されたリングノードネットワークが形成され、そのうち、ノードbとノードfとの間、ノードcとノードgとの間、およびノードdとノードeとの間に伝送路が設けられて冗長経路311〜313が形成されている。このうち、冗長経路311と冗長経路312とが交差して設けられている。以下に、ノードaが初期化処理を実行する場合を例に挙げて説明する。
上述したように、ノードaの閉ループ検出部16は、まず、冗長経路を含まない閉ループを検出し、そのつぎに1つの冗長経路または交差しない2つの冗長経路を含む閉ループであって該閉ループを構成するノード間に他の冗長経路を有さない閉ループを検出し、検出した閉ループから閉ループ経路を作成する。図8は、図7に示されるリングネットワークシステムから閉ループ検出部16によって検出される閉ループ情報を示す図である。
まず、閉ループ検出部16は、ノードa〜gによって構成される冗長経路を含まない閉ループであるリングノードネットワーク411によって構成される右回りと左回りの閉ループ経路(行511,512)を検出する。つぎに、閉ループ検出部16は、冗長経路311を含みノードa,b,f,gからなる閉ループ412によって構成される右回りと左回りの閉ループ経路(行513,514)、冗長経路312を含みノードa,b,c,gからなる閉ループ413によって構成される右回りと左回りの閉ループ経路(行515,516)と、冗長経路311,313を含みノードb,c,d,e,fからなる閉ループ414によって構成される右回りと左回りの閉ループ経路(行517,518)と、冗長経路312,313を含みノードc,d,e,f,gからなる閉ループ415によって構成される右回りと左回りの閉ループ経路(行519,520)と、冗長経路313とノードd,eからなる閉ループ416によって構成される右回りと左回りの閉ループ経路(行521,522)と、を作成する。
また、図7に示されるリングネットワークシステムは、交差する冗長経路を有しているので、交差する冗長経路311,312のいずれかを含む閉ループ412〜415について、この交差する冗長経路311,312を最初に通過(使用)する閉ループ経路も作成する。つまり、閉ループ検出部16は、閉ループ412において、冗長経路311の構成ノードであるノードbとノードfをそれぞれ始点とし、冗長経路311を経て作成される閉ループ経路(行523,524)と、閉ループ413において、冗長経路312の構成ノードであるノードcとノードgをそれぞれ始点とし、冗長経路312を経て作成される閉ループ経路(行525,526)と、閉ループ414において、冗長経路311の構成ノードであるノードfとノードbをそれぞれ始点とし、冗長経路311を経て作成される閉ループ経路(行527,528)と、閉ループ415において、冗長経路312の構成ノードであるノードgとノードcをそれぞれ始点とし、冗長経路312を経て作成される閉ループ経路(行529,530)と、を作成する。
その後、転送コスト算出部18は、図8に示される閉ループ経路を参照して、自ノードから各閉ループを構成するそれぞれのノードまでの転送コストを、それぞれの閉ループについて計算する。ここでも、上述した図2の例と同様に、冗長経路を含まない閉ループ411における全ての隣り合うノード間の転送コストを右回り左回りとも“1”とし、全ての冗長経路を介して隣り合うノード間の転送コストも“1”とする。図9は、図8に示される閉ループ経路について、それぞれの閉ループを構成するノードまでの転送コストを算出した結果を示す図である。
なお、この図9において、交差している閉ループの組合せでは、経路の起点が1つとなるので、図8の行523〜530の経路の転送コストは下記の組み合わせで算出している。行523の経路の転送コストは、閉ループ413から閉ループ412に切り替る場合についての転送コストを算出し、行524の転送コストは、閉ループ415から閉ループ412に切り替る場合についての転送コストを算出し、行525の転送コストは、閉ループ414から閉ループ413に切り替る場合についての転送コストを算出し、行526の転送コストは、閉ループ412から閉ループ413に切り替る場合についての転送コストを算出し、行527の転送コストは、閉ループ415から閉ループ414に切り替る場合についての転送コストを算出し、行528の転送コストは、閉ループ413から閉ループ414に切り替る場合についての転送コストを算出し、行529の転送コストは、閉ループ412から閉ループ415に切り替る場合についての転送コストを算出し、行530の転送コストは、閉ループ414から閉ループ415に切り替る場合についての転送コストを算出している。
そして、転送コスト算出部18は、図9に示される各閉ループ経路における転送コストを用いて、自ノードからリングネットワークシステムを構成するそれぞれのノードまでの最小の転送コストとなる経路を検出する。図10は、図9に示される閉ループ経路における転送コストから求めた、自ノードaから各ノードまでの最小の転送コストを検出した結果を示す図である。ここで、ノードaに関係した最初の経路は、閉ループ412または閉ループ413であり、図8の行524,525,527,530は、必ず閉ループ412または閉ループ413を経由した経路となるので、これらの行524,525,527,530のコストは最小転送コストが含まれる経路とはなりえない。そのため、この例ではこれらの閉ループ経路と転送コストを算出することとしているが、初めからこれらの経路については算出しなくともよい。また、図10の行719,720,722,723,725,728は起点ノードのみしか存在しないため、冗長経路転送制御処理ではこれらは使用されない。
なお、上述した図10の例では、行713〜715,724,727にノードcが存在し、行715,717,727にノードdが存在し、行716,718,726にノードeが存在し、行711,712,718,721,726にノードfが存在する。これは、ノードaを送信ノードとし、ノードc,d,e,fを着信ノードとした場合には、最小コストとなる経路がそれぞれ5,3,3,5通り存在することを示している。最小コストである経路であればどの経路を選択させてもよいが、冗長経路を使用しない経路を優先して選択するなどの閉ループ経路ごとに優先順位などの基準を予め設定し、この基準に基づいて転送制御部13に転送経路を選択させるようにしてもよい。
以上のような処理が、リングネットワークシステムを構成する他の全てのノードb〜gによっても行われる。そして、以上のようにして求められた転送経路情報に基づいて、各ノードはパケットの送信または転送を行う。この場合のパケットの送信または転送の処理は、冗長経路が交差しないリングネットワークシステムのところで述べたものと同様であるので、その説明を省略する。
なお、上述した説明では、トポロジ情報を用いて閉ループを検出する例を示したが、他の手段によって予め閉ループと閉ループ経路が与えられていてもよい。この場合には、閉ループ検出部16とトポロジ情報格納部15は省略される。
この実施の形態1によれば、冗長経路を有するリングネットワークを構成する発信ノードまたは中継ノードは、冗長経路を含んだ閉ループを複数検出し、検出した閉ループを組み合わせて目的とするノードに送信するための最小の転送コストを算出し、着信ノードまでの転送経路を選択するようにしているので、通常時においても冗長経路を使用して、最小コストでパケットを目的とするノードに送信することができるという効果を有する。また、リングネットワークにおいて、複数の閉ループを検出しパケットの発信と中継の際に経路選択を行なうという、1つのリングネットワーク内の経路選択制御としているので、複数のリングネットワークを制御する場合に必要なリングIDなどの識別情報は不要となる。そのため、複数のリングネットワークを識別してノード情報を管理する必要がなくなるという効果を有する。さらに、冗長経路が交差する場合においても各閉ループ経路を検出し、各閉ループ経路における転送コストを算出し、パケットを自ノードからリングネットワークシステム内における各ノードまで送信する際の最小転送コストを算出することができる。
実施の形態2.
実施の形態1では、パケットの発信時または中継時に送信する伝送路を選択するようにしたものであるが、この実施の形態2では、パケットの発信ノード以外でかつ冗長経路を構成しない中継ノードにおけるパケットの転送制御方法について説明する。なお、ノードの構成は実施の形態1の図1と同様であるので、その詳細な説明を省略する。
実施の形態1では、全てのノードは、パケットを発信する場合と受信したパケットを転送(中継)する場合に、パケットの宛て先情報を取得して、初期化処理で作成した転送経路情報に基づいてそのパケット転送経路となる伝送路にパケットを送出する処理を行っていた。しかし、たとえば図2に示される冗長経路を有さないノードa,c,e,g,h,j,kは、2本の伝送路に接続されるのみである。そのため、一方の伝送路から送られてきたパケットは、他方の伝送路へと送出するのみである。そこで、この実施の形態2では、冗長経路を有さないノードにおいて、転送制御部13は、受信部11から受信したパケットを送信部14から転送する際に、転送経路情報格納部12に格納されている転送経路情報を参照することなく、受信した伝送路と異なる伝送路を選択して送信する機能をさらに備えるようにしている。
これは、パケットを発信するノードで選択された経路は、宛て先となる着信ノードまでの転送コストが最小となる経路であり、この経路上に存在する各中継ノードにおける経路選択でも同一の経路が選択されることに基づくものである。これにより、1つの閉ループを構成するそれぞれのノードは、閉ループの右回りの経路でリングネットワークシステム内で中継されているパケットを、冗長経路を構成するノードまで右回りの経路を構成する伝送路へと送信すればよく、また、閉ループの左回りの経路でリングネットワークシステム内で中継されているパケットを、冗長経路を構成するノードまで左回りの経路を構成している伝送路へと送信すればよい。その結果、冗長経路を有さないノードにおけるパケットの転送にかかる時間が短縮される。
なお、パケットを発信するノードと冗長経路を構成するノードについては、転送制御部13が、パケット発信時またはパケット転送時に実施の形態1と同様にパケットを送信または転送する伝送路を選択し、この選択した伝送路からパケットを送出する。
この実施の形態2によれば、冗長経路を構成していないノードにおいて、パケット転送時の送信伝送路決定を、受信伝送路以外の伝送路へ送信するようにしたので、転送コスト情報を使用することなく、より簡素な判定で送信伝送路を決定することができるという効果を有する。
実施の形態3.
実施の形態1〜2では、冗長経路がリングネットワークを構成する2つのノード間を接続する1つの伝送路で構成されている場合の閉ループを検出するものであるが、この実施の形態3では、冗長経路が複数のノードと複数の伝送路で構成される場合について説明する。
図11は、冗長経路を有するリングネットワークシステムの実施の形態3の構成の一例を示す図である。このリングネットワークシステムは、実施の形態1の図2のノードdとノードfを接続して構成される冗長経路302が、伝送路303とノードlと伝送路304によって構成される点で異なる。具体的には、ノードdとノードfとの間にノードlを配置し、ノードdとノードlとの間に伝送路303を接続し、ノードlとノードfとの間に伝送路304を接続した構成となっている。なお、その他の図2と同一の構成要素には、同一の符合を付してその説明を省略している。
このようなリングネットワークシステムに使用されるノードの構成は、実施の形態1の図1に示される構成と同様であるので、その説明を省略する。ただし、図11のようなリングネットワークシステムの構成の場合には、各ノードの閉ループ検出部16は、そのトポロジ情報から、伝送路303とノードlと伝送304によって構成される冗長経路305を図2で示した1つの冗長経路302と見なして、実施の形態1〜2で示した方法と同様の手順で閉ループの検出および閉ループ経路の作成を行なう。すなわち、冗長経路を含まない閉ループを構成する2つのノード間が、1以上のノードと2以上の伝送路によって結ばれる場合には、各ノードは、その2つのノード間に配置されるノードと伝送路を1つの伝送路(冗長経路)とみなして処理を行うことを特徴とする。このとき、閉ループ検出部による閉ループ経路の検出(作成)は、1つの伝送路(冗長経路)とみなされた経路の両端のノードから開始してもよいが、1つの伝送路とみなされた経路の途中にあるノード(図11の場合には、ノードl)から開始してはならない。
また、このようなリングネットワークシステムに使用される各ノードにおける最小の転送コストとなる経路を検出する初期化処理も、冗長経路を含まない閉ループを構成する2つのノード間に配置されるノードと伝送路を1つの冗長経路とみなして処理する点を除いて、基本的に図3に示されるフローチャートと同一の処理であるので、その説明を省略する。以下では、図11に示されるノード構成を有するリングネットワークシステムにおけるノードaの初期化処理の具体例について説明する。
最初に、ノードaの閉ループ検出部16は、冗長経路を含まない閉ループを検出し、そのつぎに1つの冗長経路または交差しない2つの冗長経路を含む閉ループであって、該閉ループを構成するノード間に他の冗長経路を有さない閉ループを検出し、閉ループ経路を作成する。ただし、この場合に、閉ループ検出部16は、ノードdとノードfとの間の伝送路303とノードlと伝送路304によって構成される経路を1つの冗長経路305とみなして処理を行う。
すなわち、ノードaの閉ループ検出部16は、まず、ノードa〜kによって構成される冗長経路を含まない閉ループであるリングノードネットワーク401と、冗長経路301を含みノードa,b,i,j,kからなる閉ループ402と、冗長経路301と、ノードd,l,fと伝送路303,304とから構成される冗長経路とみなされる経路305を含みノードb,c,d,l,f,g,h,iからなる閉ループ403と、冗長経路とみなされる経路305を含みノードd,e,f,lからなる閉ループ404と、を検出する。そして、この検出した閉ループ401〜404から閉ループ経路を作成する。図12は、図11に示されるリングネットワークシステムから閉ループ検出部16によって検出される閉ループ情報を示す図である。この図12には、閉ループ401〜404の右回りと左回りの閉ループ経路がそれぞれ示されている。
つぎに、転送コスト算出部18は、図12に示される各閉ループ経路に基づいて、自ノードaから各閉ループを構成するそれぞれのノードb〜lまでの転送コストを、それぞれの閉ループについて算出する。ここでも、上述した実施の形態1の例と同様に、冗長経路を含まない閉ループ401における全ての隣り合うノード間の転送コストを右回り左回りともに“1”とし、冗長経路301を介して隣り合うノード間の転送コストも“1”とし、さらにノードdとノードfの間を結ぶ経路305における隣り合うノード間の転送コストも“1”とする。図13は、図12に示される閉ループ経路について、それぞれの閉ループを構成するノードまでの転送コストを算出した結果を示す図である。
そして、転送コスト算出部18は、図13に示される各閉ループ経路における転送コストを用いて、自ノードからリングネットワークシステムを構成するそれぞれのノードまでの最小転送コストとなる経路を検出する。具体的には、転送コスト算出部18は、図12に示される各閉ループ経路における転送コストから、最小転送コスト以外の転送コストを除くことによって、各ノードへの最小転送コストを作成する。図14は、図13に示される閉ループ経路における転送コストから求めた、自ノードから各ノードまでの最小の転送コストを検出した結果を示す図である。ただし、この図14において、行734に示される「閉ループ404左回り」は、起点ノードのみしか存在しないため、冗長経路転送制御処理では使用しない。
以上説明したものと同様の処理が、ノードb〜lについても行われる。以後、各ノードa〜lでは、検出した最小の転送コストとなる転送経路情報を用いてパケットの送信または転送を行う。この場合のパケットの送信または転送の方法は、上述した実施の形態1と同様であるので、その詳細な説明は省略する。なお、上述した図14の例では、行731〜733にノードfが存在する。これは、ノードaを送信ノードとし、ノードfを着信ノードとする場合には、最小コストである経路が3通り存在することを示している。最小コストである経路であればどの経路を選択させてもよいが、冗長経路を使用しない経路を優先して選択するなどの基準を予め設定し、この基準に基づいて選択させるようにしてもよい。また、冗長経路を構成する伝送路を含まないノードa,c,e,g,h,j,k,lについては、これらのノードがパケットの転送を行う中継ノードとなる場合においては、実施の形態2に示される方法によってパケットを転送するようにしてもよい。
なお、図11では、冗長経路を含まない閉ループを構成する2つのノード間を結ぶ経路に1つのノードが存在する場合を例示したが、これに限られる趣旨ではなく、複数のノードが存在してもよい。
この実施の形態3によれば、冗長経路を含まない閉ループを構成する2つのノード間を結ぶ経路が、1以上のノードと2以上の伝送路によって構成される場合には、リングネットワークシステム上の各ノードは、閉ループの検出時に上記2つのノード間を結ぶ経路を1つの伝送路(冗長経路)とみなして閉ループの検出を行い、閉ループごとの閉ループ経路の検出を上記1つの伝送路(冗長経路)の両端のノードから開始するようにしたので、冗長経路が1以上のノードと複数の伝送路で構成される場合にも実施の形態1と同様の処理を行うことができる。
実施の形態4.
実施の形態1〜3では、転送コストは全ての通信で共通である場合を示したが、この実施の形態4では、リングネットワークシステムを利用する通信グループごとに転送コストが異なる場合について説明する。
図15は、冗長経路を有するリングネットワークシステムの実施の形態4の構成の一例を示す図である。このリングネットワークシステムは、ノードa〜eの5つのノードがリング状に伝送路によって接続され、このうちノードbとノードeとの間が伝送路で接続されて冗長経路321が構成されている。この実施の形態4では、リングネットワークシステムが、複数の通信グループによって、異なる転送コストで使用される。以下では、第1の通信グループと第2の通信グループの2つの通信グループがこのリングネットワークシステムを利用する場合を例に挙げて説明する。図16は、リングネットワークシステムを構成する伝送路における各通信グループの転送コストを示す図である。すなわち、第1の通信グループでは、全ての伝送路を使用した場合の転送コストは“1”であるが、第2の通信グループでは、ノードaとノードeとの間の伝送路を使用した場合の転送コストは“3”であり、ノードcとノードdとの間の伝送路を使用した場合の転送コストは“2”であり、その他の伝送路を使用した場合の転送コストは“1”である。
なお、このようなリングネットワークシステムで使用されるノードの構成は、実施の形態1の図1に示される構成と同様であるので、その説明を省略する。ただし、各ノードの転送コスト算出部18は、リングネットワークを使用する通信グループごとに転送コストを算出する点が、実施の形態1〜3と異なる。そのため、転送経路情報格納部12には、基本的にリングネットワークシステムを利用する通信グループの数だけ転送経路情報が格納される。このとき、転送経路情報は、通信グループと関連付けされる。
このようなリングネットワークシステムに使用される各ノードにおける最小の転送コストとなる経路を検出する初期化処理も、転送経路コストの算出処理がリングネットワークシステムを利用する通信グループごとに行われる点を除いて、実施の形態1の図3に示されるフローチャートと同様であるので、その説明を省略する。以下では、図15に示されるノード構成を有するリングネットワークシステムを利用する2つの通信グループが、図16に示される転送コストを設定した場合の初期化処理と冗長経路転送制御処理について説明する。なお、初期化処理については、ノードaが初期化処理を実行する場合を例に挙げる。
最初に、ノードaの閉ループ検出部16は、冗長経路を含まない閉ループを検出し、そのつぎに1つの冗長経路または交差しない2つの冗長経路を含む閉ループであって、該閉ループを構成するノード間に他の冗長経路を有さない閉ループを検出し、閉ループ経路を作成する処理を行う。すなわち、ノードaの閉ループ検出部16は、まず、ノードa〜eによって構成される冗長経路を含まない閉ループであるリングノードネットワーク421と、冗長経路321を含みノードa,b,eからなる閉ループ422と、冗長経路321を含みノードb,c,d,eからなる閉ループ423と、を検出する。そして、この検出した閉ループ421〜423から閉ループ経路を作成する。具体的には、検出した閉ループ421〜423のそれぞれについて、右回りと左回りの閉ループ経路を作成する。図17は、図15に示されるリングネットワークシステムから閉ループ検出部によって検出される閉ループ情報を示す図である。この図17には、閉ループ421〜423の右回りと左回りの閉ループ経路がそれぞれ示されている。
つぎに、転送コスト算出部18は、図17に示される各閉ループ経路と図16の転送コストに基づいて、自ノードから各閉ループ経路を構成するそれぞれのノードまでの転送コストを、それぞれの閉ループ経路について通信グループごとに算出する処理を行う。図18−1は、図17に示される閉ループ経路について、それぞれの閉ループ経路を構成するノードまでの第1の通信グループによる転送コストを算出した結果を示す図であり、図18−2は、図17に示される閉ループ経路について、それぞれの閉ループを構成するノードまでの第2の通信グループによる転送コストを算出した結果を示す図である。これらの転送コストの算出処理は、実施の形態1で詳細に説明したので、その説明を省略する。
そして、転送コスト算出部18は、図18−1と図18−2に示される通信グループごとの各閉ループ経路における転送コストを用いて、自ノードaからリングネットワークシステムを構成するそれぞれのノードb〜eまでの最小転送コストとなる経路を検出する。図19−1は、図18−1に示される第1の通信グループの閉ループ経路における転送コストから求めた、自ノードaから各ノードまでの最小の転送コストを検出した結果を示す図であり、図19−2は、図18−2に示される第2の通信グループの閉ループ経路における転送コストから求めた、自ノードaから各ノードまでの最小の転送コストを検出した結果を示す図である。これらの最小の転送コストを検出する処理は、実施の形態1で詳細に説明したので、その説明を省略する。なお、図19−2において、行751は、起点ノードのみしか存在しないため、冗長経路転送制御処理における送信伝送路の選択では使用されない。このようにして、ノードaによって、パケットをリングネットワークシステム内のノードに送信する場合に通信グループごとに最小の転送コストとなる経路を求める初期化処理が行われる。このような初期化処理は、他のノードb〜eについても同様に行われる。
つぎに、ノードにおけるパケットの送信処理について説明する。図20は、ノードがパケットを送信(発信)する場合の動作処理手順を示すフローチャートである。なお、ここでは、発信するパケットの宛て先情報にはどの通信グループに属するパケットであるかを識別する通信グループ識別情報が格納されているものとする。まず、パケットを送信(発信)しようとするノードの転送制御部13は、パケットの宛て先情報に格納されているどの通信グループ識別情報を抽出し、送信するパケットが属する通信グループを識別する(ステップS21)。つぎに、転送制御部13は、転送経路情報格納部12から識別した通信グループと関連付けされている転送経路情報を選択する(ステップS22)。そして、転送制御部13は、パケットの宛て先に対応する経路を選択した転送経路情報から抽出し、この転送経路に対応する伝送路に対して送信部14を介してパケットを送出する(ステップS23)。以上でノードにおけるパケットの送信処理が終了する。
たとえば、ノードaが、第1の通信グループに属するパケットをノードdに対して発信する場合には、ノードaの転送制御部13は転送経路情報格納部12に格納されている第1の通信グループに関する転送経路情報(図19−1)を参照して、行741の経路を選択する。この行741には、パケットを送信する伝送路として“伝送路235”が格納されているので、転送制御部13はパケットを伝送路235に送出する処理を行う。これにより、第1の通信グループに属する場合のパケットの場合には、転送コスト“2”でノードaからノードdにパケットを送信することができる。
また、たとえば、ノードaが第2の通信グループに属するパケットをノードdに対して発信する場合には、ノードaの転送制御部13は、図19−2に示される第2の通信グループに関する転送経路情報を参照して、行752を選択する。この行752には、パケットを送信する伝送路として“伝送路231”が格納されているので、転送制御部13はパケットを伝送路231に送出する処理を行う。これにより、第2の通信グループに属するパケットの場合には、転送コスト“3”でノードaからノードdにパケットを送信することができる。
ノードにおけるパケットの転送処理については、送信(発信)するパケットが受信部11から受信したパケットに変わるだけで、上述した図20に示されるパケットの送信処理と同様の手順で実行される。
この実施の形態4によれば、通信グループごとに転送コストを変更するようにしたので、通信グループごとに異なった経路を使用してパケットを送信または転送することができる。また、転送コストを変えることによって、たとえば各伝送路にかかる負荷がほぼ均等となるようにするなど、転送経路を任意に変えることもできる。
実施の形態5.
実施の形態4では、通信グループによって転送コストを異ならせるようにしたが、この実施の形態5では、通信グループごとに使用できないノードと伝送路を指定する場合について説明する。
この実施の形態5の説明に使用するリングネットワークシステムは、実施の形態4で用いた図15に示される構成を有するものとする。また、この実施の形態5では、リングネットワークシステムが、複数の通信グループによってそれぞれ所定の条件下で使用される。以下では、第3の通信グループと第4の通信グループの2つの通信グループがこのリングネットワークシステムを利用する場合を例に挙げて説明する。図21は、第3の通信グループと第4の通信グループの転送コストとリングネットワークシステムの使用条件の詳細を示す図である。すなわち、第3と第4の通信グループの転送コストは、ノードaとノードeとの間の伝送路235を使用した場合の転送コストは“3”であり、ノードcとノードdとの間の伝送路233を使用した場合の転送コストは“2”であり、その他の伝送路を使用した場合の転送コストは“1”である。また、第3の通信グループでは、リングネットワークシステムを構成する全てのノードを使用することができるが、第4の通信グループでは、ノードbを使用してはならないという条件が課せられている。
なお、このようなリングネットワークシステムで使用されるノードの構成は、実施の形態1の図1に示される構成と同様であり、各ノードの転送コスト算出部18は通信グループごとに転送コストを算出し、転送経路情報格納部12には通信グループごとに関連付けされた転送経路情報が格納される点も実施の形態4と同様であるので、その説明を省略する。
このようなリングネットワークシステムに使用される各ノードにおける最小の転送コストとなる経路を検出する初期化処理も、通信グループごとに所定の条件を満たすように最小の転送コストとなる経路を検出する点を除いて、実施の形態1の図3に示されるフローチャートと同様であるので、その説明を省略する。以下では、図15に示されるノード構成を有するリングネットワークシステムを利用する2つの通信グループが、図21に示される条件の下で最小の転送コストとなる経路を検出する場合の初期化処理と転送制御処理について説明する。なお、初期化処理については、ノードaが初期化処理を実行する場合を例に挙げる。
最初に、ノードaの閉ループ検出部16は、実施の形態4の場合と同様の手順で、冗長経路を含まない閉ループと、1つの冗長経路または交差しない2つの冗長経路を含む閉ループであって該閉ループを構成するノード間に他の冗長経路を有さない閉ループと、検出する処理を行い、検出した閉ループを用いて閉ループ経路を作成する。その結果、図17に示される閉ループ情報が作成される。
つぎに、転送コスト算出部18は、図17に示される各閉ループ経路と図21に示される各通信グループに与えられる条件に基づいて、自ノードから各閉ループを構成するそれぞれのノードまでの転送コストを、それぞれの閉ループについて通信グループごとに算出する処理を行う。第3の通信グループについての転送コストは、実施の形態4の第2の通信グループについての転送コストを求めた条件とまったく同じであるので、その結果は、図18−2に示されるとおりである。
一方の第4の通信グループでは、図21に示されるようにノードbを使用することができないので、この条件を考慮した転送コストが転送コスト算出部18によって算出される。そのため、閉ループ422の右回りの経路は、自ノードaのつぎがノードbであるので、始点ノードaのみで経路は終了する。同様に、閉ループ422の左回りの経路は、ノードeで経路が終了する。また、閉ループ423の右回りの経路においては、始点ノード自体がノードbであるので経路を作成することはできない。閉ループ423の左回りの経路は、ノードeから出発し、ノードdを経てノードcで経路が終了する。転送コスト算出部18は、第4の通信グループに関しては、このような経路における転送コストを算出する。図22は、図17に示される閉ループ経路について、それぞれの閉ループを構成するノードまでの図21に示される条件下における第4の通信グループによる転送コストを算出した結果を示す図である。
そして、転送コスト算出部18は、図18−2と図22に示される通信グループごとの各閉ループ経路における転送コストを用いて、自ノードからリングネットワークシステムを構成するそれぞれのノードまでの最小の転送コストとなる経路を検出する。第3の通信グループについての最小の転送コストとなる経路は、実施の形態4の第2の通信グループと条件がまったく同じであるので、その結果は図19−2に示されるとおりである。図23は、図21に示される第4の通信グループの閉ループ経路における転送コストから求めた、自ノードから各ノードまでの最小の転送コストを検出した結果を示す図である。この図23に示されるように、第4の通信グループでは、図21に示される「ノードbは使用不可」という条件が満たされている。なお、図23において、行761は、起点ノードのみしか存在しないため、冗長経路転送制御処理における送信伝送路の選択では使用されない。また、行762は、着信可能なノードが存在しないため、冗長経路転送制御処理における送信伝送路の選択では使用されない。
ノードにおけるパケットの送信処理と転送処理については、実施の形態4で説明した処理と同様であるので、その一般的な説明は省略し、図15を用いた具体的な例についてのみ説明する。この場合にも、転送されるパケットの宛て先情報には、自パケットがどの通信グループに属するパケットであるのかを識別するための通信グループ識別情報が格納されている必要がある。ここでは、ノードaがノードd宛てのパケットを送信する場合を例に挙げて説明する。まず、第3の通信グループに属するパケットを送信する場合には、図19−2の行752に示されるように、ノードaから、ノードb,eを経てノードdに到達する。このときの転送コストは“3”である。一方、第4の通信グループに属するパケットを送信する場合には、図23の行763に示されるようにノードaから、ノードeを経てノードdに到達する。このときの転送コストは“4”である。これらの通信グループによる結果の違いは、第4の通信グループに属するパケットでは、ノードbを使用することができないので、転送コストの高い伝送路235を使用せざるを得ないことによるものである。
上述した説明では、1つの通信グループにおいて、ある1つのノードが使用できない場合を例に挙げたが、複数のノードが使用できないようにしてもよく、また複数の通信グループそれぞれにおいて、通信できないノードが複数あってもよい。また、通信グループによって制限される対象がノードではなく、伝送路としてもよい。使用できない伝送路を指定する場合には、指定された伝送路を通過する経路を除外して各閉ループの転送コストを作成すればよい。
この実施の形態5によれば、通信グループによって使用できないノードおよび/または伝送路を認識し、使用できないノードまたは使用できないノードを経由する経路を除外し、および/または使用できない伝送路または使用できない伝送路を通過する経路を除外して、転送コストを作成するようにしているので、リングネットワークシステムを利用する通信グループごとに異なった経路の使用を可能とすることができる。
実施の形態6.
実施の形態5では、通信グループによって使用できないノードおよび/または伝送路を認識し、使用できないノードまたは使用できないノードを経由する経路を除外し、および/または使用できない伝送路または使用できない伝送路を通過する経路を除外して、転送コストを作成したが、この実施の形態6では、リングネットワークシステムを構成するノードおよび/または伝送路に障害が発生した場合について説明する。
この実施の形態6の説明に使用するリングネットワークシステムは、実施の形態4で用いた図15に示される構成を有するものとする。また、このリングネットワークシステムに使用されるノードの構成は、実施の形態5で説明したものと同様であるものとする。
つぎに、リングネットワークシステムに障害が発生した際の動作について説明する。実施の形態5では、使用できないノードまたは使用できない伝送路が、たとえばリングネットワークシステムの管理者などによって予め指定されるものであった。この実施の形態6では、障害が発生したノードを実施の形態5における使用できないノードとして、障害が発生したノードを除く全てのノードに対して設定し、障害の発生した伝送路を実施の形態5における使用できない伝送路として、全てのノードに対して設定し、実施の形態5で示した処理と同一の処理を行なう。すなわち、リングネットワークシステムを構成するノードまたは伝送路に障害が発生すると、障害が発生したノードまたは障害の発生により他のノードと孤立してしまったノードを除いたノードが、上記障害が発生したノードまたは伝送路を使用不可となるように設定して、初期化処理を実行する。なお、障害が発生したノードまたは伝送路の検出は、各ノードに公知の障害検出手段を備えるようにしてもよいし、リングネットワークシステムの管理者が異常を検出し、その結果をノードに設定するようにしてもよい。
障害が発生したノードまたは伝送路が各ノードに設定された後の送信処理や転送処理は、実施の形態5において説明した処理と同様であるので、その説明を省略する。
この実施の形態6によれば、障害を認識した場合に障害ノードまたは障害ノードを経由する経路を除外し、および/または障害伝送路または障害伝送路を通過する経路を除外して、最小転送コストを作成するようにしているので、リングネットワークシステムを構成するノードまたは伝送路に障害が発生した場合にも、その障害を回避した最小転送コストとなる経路を新たに作成し直し、その結果に基づいて経路を選択することができる。