説明

通信システム及び通信方法

拠点ノード(100)及び拠点ノード(101)は、通信媒体(106)及び通信媒体(107)を構成する中継ノードにおいてブロードキャストされるキープアライブフレームを、ポート1及びポート2から送信し、キープアライブフレームの到着状態をポート毎に監視し、通常時は、ポート1及びポート2に接続された2つの通信媒体を1つのノードとして仮想することにより通信帯域を拡大し、障害検出時は、障害を検出していないポートに接続された通信媒体のみを用いて通信を続行する。

【発明の詳細な説明】
【技術分野】
本発明は、高信頼化を実現する通信システムに関し、特に、障害を検出していない通常時は、複数の通信経路を用いてデータフレームを送信して、通信帯域を拡大することにより、輻輳を抑制し、障害検出時は、障害を検出していない通信経路のみを用いて通信を続行することを可能とする高い信頼性を有する通信システムに関する。
【背景技術】
近年、コンピュータネットワークは社会のあらゆる分野で導入が進められ、電子メールによる意思伝達やWebサイトによる情報公開といった通信手段として用いられるだけに止まらず、様々なサービスが提供されるインフラとして、社会の重要な役割を担うようになっている。
コンピュータネットワークが社会にとって欠くことのできない存在となった今、ネットワークを構成する装置の故障、通信ケーブルの切断といった障害や輻輳による通信帯域の低下などによって、通信システムを十分に活用できない事態がユーザーに与える影響は計り知れない。そのため、これらのネットワーク障害の対策が十全に施こされた高い信頼性を有するコンピュータネットワークに対する需要が近年非常に高まっている。
高い信頼性を有するネットワークを実現する手法として、予め複数の通信経路を確保する方法が一般的に用いられている。この手法を用いた場合、障害の発生していない平常時には、データを複数の通信経路に分散させて送信することにより、通信帯域を拡大し、輻輳の生じる可能性を減少させることが可能である。また、障害の発生時には、障害の発生していない通信経路にのみデータを送信することにより、通信を続行することが可能である。
従来、上述の手法を実現する様々な技術が提案されてきた。
例えば、IEEE発行の標準化文書であるIEEE802.3ad(“Link Aggregation”、IEEE802.3ad、IEEE、2000年(文献1))では、リンク・アグリゲーション(Link Aggregation)と呼ばれる技術を用いて、耐障害性の向上と通信帯域の拡大を実現する方法が開示されている。
このリンク・アグリゲーションでは、隣接する2つのノードを複数のリンクにより接続し、これらの複数のリンクをあたかも単一のリンクと仮想して通信を行い、もしこれらのリンクのいずれかに障害が生じて通信が行えなくなったとしても、障害の生じていない他のリンクを用いて通信を続行することを可能とする。
さらに、障害の生じていない通常時は、複数のリンクを用いてデータフレームを送信することにより、1つのリンクの通信帯域を全リンク数倍に増大させることが可能であり、輻輳の生じにくいネットワークを構築することが可能である。
別の手法として、IETF発行の標準化文書であるRFC1771(Yakov Rekhter,Tony Li著、“A Border Gateway Protocol 4(BGP−4)”、RFC1771、IETF、1995年(文献2))において開示されているBGP(Border Gateway Protocol)や同様にIETF発行の標準化文書であるRFC2328(John Moy著、“OSPF version 2”、RFC2328、IETF、1998年(文献3))において開示されているOSPF(Open Shortest Path Fast)といったルーティング・プロトコルを用いる方法が提案されている。
このようなルーティング・プロトコルによれば、通信経路に障害が発生したことを検出すると、新たな通信経路を特定のアルゴリズムにより求め、通信に使用する通信経路を障害の発生した通信経路から新たに求めた通信経路に切り替えることによって、障害が発生しても通信を続行することが可能である。また、予め準備しておいた複数の通信経路にデータを分散させて通信することにより、通信帯域を拡大させることも可能である。
また、IETF発行の標準化文書であるRFC1631(Kjeld Borch Egevang,Paul Francis著、“The IP Network Address Translator”、RFC1631、IETF、1994年(文献4))に開示されているNAT(Network Address Translator)技術を利用する方法も提案されている。NAT技術と障害を検出する手段を組み合わせて用いることにより、複数の通信経路を利用してデータを転送することができる。障害を検出する手段としては、通信を行うノードが相互に監視パケット(例えば、PINGパケット)を送受信し、監視パケットの未着によって障害を検出する方法が主に用いられている。
しかしながら、上述したような従来の方法においては、以下に記載するような問題がある。
1つは、リンク・アグリゲーションによる技術は、互いに隣接する2つのノード間にしか適用できず、多様なトポロジーを有するネットワークには適用できないという問題がある。
例えば、通信を行っている2つのノードの通信経路上に、複数の異なる中継ノードが存在し、互いに隣接するノード間を複数のリンクで接続している場合、リンク・アグリゲーションを適用することによって、各隣接ノード間のリンクに対して、高い信頼性を付与することができる。
しかしながら、隣接ノード間のリンクが高信頼化されたとしても、通信経路上の中継ノードのいずれか1つに故障などの障害が生じただけで、通信を行っている2つのノードは、通信できなくなってしまうという問題がある。
また、リンク・アグリゲーションは互いに隣接する2つのノード間にしか適用できないため、通信を行っている2つのノードが、1つ以上の中継ノードを含む複数の通信経路によって接続されているようなネットワークに対しては適用することができないという問題がある。
次に、OSPFやBGPといったルーティング・プロトコルを用いた場合、通信経路上の障害を検出するのに時間がかかるため、障害を検出するまでの間、通信を続行することができないという問題がある。
また、障害が検出されたとしても、障害の生じていない通信経路を新たに求めるのに時間がかかるため、障害の発生した通信経路から障害の発生していない通信経路に切り替えることで通信が再開されるまでの間、通信が中断されるという問題がある。
さらに、ルーティング・プロトコルの設定には、ルーティング・プロトコルに関する詳細かつ高度な知識が必要とされるため、一般のユーザーが設定を行うことは非常に困難であり、設定を誤る可能性が増大し、効率よくネットワークを運用できないという問題もある。
次に、NAT技術と組み合わせて用いられる障害検出手法である、通信を行うノードが、宛先に互いの相手ノードを指定した監視パケット(例えば、PINGパケット)を送受信することによって、通信経路上の障害を検出する手法では、相手ノードの数が増大するにしたがって、送信する監視パケットの数が増大するため、障害を検出するための処理の負荷が非常に大きくなるという問題もある。
また、全ての相手ノードの宛先アドレスを設定する必要があり、相手ノードの数が増大するにしたがって、設定する項目の数が増大するため、ネットワークの管理者が設定を誤る可能性が高くなるという問題もある。
【発明の開示】
本発明の目的は、上述したような従来の技術が有する問題を鑑みてなされたものであって、通信を行っている拠点ノード間に複数の通信経路が存在し、各通信経路上に複数の中継ノードが存在するような多様なトポロジーを有するネットワークにおいて、通常時には輻輳の発生を抑制でき、障害発生時でも通信を続行できる、高い信頼性を実現する通信システムを提供することにある。
また、本発明の別の目的は、上述の通信システムにおいて、通信を行っている拠点ノード間の通信経路上の障害を検出するための手段を提供することにある。
また、本発明の別の目的は、設定の簡便な通信システムを提供することにある。
また、本発明の別の目的は、装置に与える負荷の小さい障害検出手段を提供することにある。
上記の目的を達成するために本発明は、通信を行っている複数の拠点ノードが、1つ以上の中継ノードから構成される複数の通信媒体に接続された通信システムにおいて、前記拠点ノードが前記複数の通信媒体を1つのノードと仮想することを特徴とする。
また、本発明は、前記通信システムにおいて、通常時は、複数の通信経路を用いてデータフレームを送信することにより通信帯域を拡大し、障害検出時は、障害の発生していない通信経路のみを用いて通信を続行することを特徴とする。
また、本発明は、前記通信システムにおいて、前記拠点ノードが、キープアライブフレームを相互に送受信し、相手ノードから送信されるキープアライブフレームの到着状態を監視することによって、障害を検出することを特徴とする。
また、本発明は、前記キープアライブフレームが、前記通信媒体を構成する中継ノードにおいて、ブロードキャストと同等の効果を有する宛先アドレスを有することを特徴とする。
【図面の簡単な説明】
図1は、本発明の第1の実施例における通信システムの構成を示す図である。
図2は、第1の実施例における通信システムの他の構成を示す図である。
図3は、第1の実施例による通信システムにおける拠点ノードの構成を示す図である。
図4は、仮想ポート設定テーブルを示す図である。
図5は、フォワーディングデータベースを示す図である。
図6は、通信状態管理データベースを示す図である。
図7は、本発明の第2の実施例による通信システムにおける拠点ノードの構成を示す図である。
図8は、ポートマッピングテーブルを示す図である。
図9は、フォワーディングデータベースを示す図である。
図10は、本発明の第3の実施例における通信システムの構成を示す図である。
図11は、第3の実施例における通信システムの他の構成を示す図である。
図12は、第3の実施例による通信システムにおける拠点ノードの構成を示す図である。
図13は、アドレス管理データベースを示す図である。
図14は、本発明の第4の実施例における通信システムの構成を示す図である。
図15は、第4の実施例による通信システムにおける拠点ノードの構成を示す図である。
図16は、本発明の第5の実施例による通信システムにおける拠点ノードの構成を示す図である。
図17は、本発明の第6の実施例による通信システムにおける拠点ノードの構成を示す図である。
図18は、ポートマッピングテーブルを示す図である。
図19は、フォワーディングデータベースを示す図である。
図20は、第6の実施例における通信システムの他の構成を示す図である。
図21は、本発明の第7の実施例による通信システムにおける拠点ノードの構成を示す図である。
図22は、第7の実施例による通信システムにおける拠点ノードの他の構成を示す図である。
図23は、フォワーディングデータベースを示す図である。
図24は、通信状態管理データベースを示す図である。
図25は、イーサネット(R)フレームのフレームフォーマットを示す図である。
図26は、IPパケットのフレームフォーマットを示す図である。
図27は、フォワーディングデータベースを示す図である。
図28は、データグラムにイーサネット(R)フレームが格納されたIPパケットを示す図である。
図29は、アドレス管理データベースを示す図である。
図30は、VLANタグが付加されたイーサネット(R)フレームのフレームフォーマットを示す図である。
図31は、本発明の第8の実施例による通信システムにおける拠点ノードの構成を示す図である。
図32は、VLAN識別子設定テーブルを示す図である。
図33は、ホストのMACアドレスとイーサネット(R)フレームを出力する実ポートに対して、拠点ノードに付与されたIPアドレスを登録するためのデータベースを示す図である。
図34は、本発明の第9の実施例による通信システムの構成を示す図である。
【発明を実施するための最良の形態】
(第1の実施例)
本発明の第1の実施例について図面を参照して詳細に説明する。
(通信システムの構成)
図1は、本発明の第1の実施例における通信システムの構成を示している。
図1に示す通信システムは、2つの拠点ノード100及び拠点ノード101と、中継ノード102から構成される通信媒体106及び中継ノード103から構成される通信媒体107と、2つのホスト104及びホスト105を備えて構成される。
ここで、中継ノードは、通信媒体を構成するノードであり、拠点ノードより送信されるデータフレームを中継して所定の宛先に転送する。
また、拠点ノードは、通信媒体に接続されるノードであり、拠点ノードに属するポートのうち、通信媒体の接続されていないポートに、直接または1つ以上のノードを経由して、任意の数のホストが収容されており、ホスト及び通信媒体より送信されるデータフレームを所定の宛先に転送する。図1では、拠点ノード100、101のポート3に直接ホスト104、105が接続されている。
また、以下の説明においては、その動作に着目している拠点ノードを自ノードと記述し、自ノード以外の拠点ノードを相手ノードと記述する。単にノードと記述した場合は、中継ノードと拠点ノードを含めたノード全般を意味するものとする。
拠点ノード100、101及び中継ノード102、103は、ある送信元から送信されたイーサネット(R)のデータフレーム(以下、イーサネット(R)フレームと記述する)を所定の宛先に転送するイーサネット(R)スイッチとしての機能を有する。
拠点ノード100、101は、以降において説明する本発明の機能を搭載したネットワークインターフェースカードを備えたコンピュータによって実現することができる。
その場合のコンピュータには、複数のネットワークインターフェースカードが搭載され、各ネットワークインターフェースカードがそれぞれ個々の通信媒体106〜107に接続される構成であっても良いし、複数の通信インターフェースを備えた単一のネットワークインターフェースカードが搭載され、各通信インターフェースが通信媒体106〜107に接続される構成であっても良い。
また、複数のネットワークインターフェースカードを搭載する場合、各ネットワークインタフェースカードに任意の数の通信媒体が接続される構成とすることもできる。例えば、2つのネットワークインタフェースカードで、3つの通信媒体の場合、一方のネットワークインタフェースカードに1つの通信媒体を接続し、他方のネットワークインタフェースカードに他の2つの通信媒体を接続するような構成とすることができる。
また、ホスト104〜105が、本発明の拠点ノード100〜101としての機能を搭載することにより、拠点ノード100〜101を経由することなく、通信媒体106及び通信媒体107に接続されるような構成であっても良い。
図1の拠点ノード100のポート1には通信媒体106が接続され、ポート2には通信媒体107が接続され、ポート3にはホスト104が接続されている。
また、拠点ノード101のポート1には通信媒体106が接続され、ポート2には通信媒体107が接続され、ポート3にはホスト105が接続されている。
図1の拠点ノード100〜101には、それぞれ1つのホストしか接続されていないが、通信システムの他の構成例である図2に示す拠点ノード200のように、拠点ノードのポート数を増やすことによって、2つ以上のホストを接続することができる。
また、ホスト104またはホスト105は、拠点ノード100または拠点ノード101に直接に接続されているが、図2のホスト203のように、1つ以上のノードを介して拠点ノード200に接続されていても良い。
拠点ノードと通信媒体を接続するリンク及び拠点ノードとホストを接続するリンクは、イーサネット(R)、ATM、フレームリレー、ADSL、FTTH、ISDNなどのリンクを用いることができる。また、これらのリンクのリンク速度は、リンク毎に異なっていても良い。
図1に示す通信システムでは、2つの通信媒体は、それぞれ1つの中継ノードから構成されているが、図2に示す通信システムのように、2つ以上の中継ノードから構成されていても良い。
(拠点ノードの構成)
図3は、図1の拠点ノード100の構成を示すブロック図である。
図3に示す拠点ノード100(拠点ノード101についても同じ)は、入力ポート301−1〜3と、リンクダウン検出部302−1〜3と、フレームタイプ判定部303−1〜3と、フレームスイッチ304と、フレーム転送部305−1〜3と、出力ポート306−1〜3と、キープアライブフレーム解析部308とフォワーディングデータベース制御部309を有するフレーム解析部307と、通信状態管理データベース310と、フォワーディングデータベース311と、仮想ポート設定テーブル312と、キープアライブフレーム送信部314を有する特殊フレーム送信部313と、設定入力インターフェース315と、出力ポート決定方式設定部316を備えている。
拠点ノード100の入力ポート301−1〜3は、ホスト104または中継ノード102、103から送信されたイーサネット(R)フレームを受信し、イーサネット(R)フレームをフレームタイプ判定部303−1〜3に転送する。入力ポート301−1〜3は、それぞれ拠点ノード100または拠点ノード101のポート1〜3に対応している。
フレームタイプ判定部303−1〜3は、イーサネット(R)フレームがキープアライブフレームである場合は、イーサネット(R)フレームをキープアライブフレーム解析部308に転送し、キープアライブフレームでない場合は、イーサネット(R)フレームをフォワーディングデータベース解析部309とフレームスイッチ304に転送する。
フレームスイッチ304は、フォワーディングデータベース311を参照し、出力ポート決定方式設定部316で指定されたアルゴリズムに基づいて、イーサネット(R)フレームの出力ポートを決定し、フレーム転送部305−1〜3にイーサネット(R)フレームを転送する。
出力ポート決定方式設定部316では、フレームスイッチ304が出力ポートを決定するためのアルゴリズムが設定される。出力ポート決定方式設定部316は、キープアライブフレーム解析部308及びリンクダウン検出部302−1〜3によって制御される。
フレーム転送部305−1〜3は、フレームスイッチ304より転送されたイーサネット(R)フレーム及び特殊フレーム送信部313のキープアライブフレーム送信部314より転送されたキープアライブフレームを出力ポート306−1〜3から送信する。出力ポート306−1〜3は、それぞれ拠点ノード100または拠点ノード101のポート1〜3に対応している。
リンクダウン検出部302−1〜3は、各ポートのリンクの状態を監視し、リンクの状態に基づいて出力ポート決定方式設定部316を制御する。
フォワーディングデータベース311では、フレームスイッチ304がイーサネット(R)フレームの出力ポートを決定するための情報(宛先ノード情報及び出力ポート情報)が管理される。
フレーム解析部307のフォワーディングデータベース制御部309は、受信したイーサネット(R)フレームの送信元ノード情報と入力ポート情報を、フォワーディングデータベース311に登録する。
仮想ポート設定テーブル312には、通信媒体に接続されるポートを仮想ポートとして対応付けて設定記憶するテーブルであり、キーボードやTelnetなどの設定入力インターフェース315を介して設定される。
拠点ノード100は、仮想ポート設定テーブル312に設定された2つのポートを、1つのポートと仮想することによって、仮想ポート設定テーブル312に設定された2つのポートに接続された2つの通信媒体を、1つのノードと仮想することができる。
以下では、ノードに物理的に存在するポートを実ポートまたは物理ポートと記述し、仮想ポート設定テーブル312で設定された2つの実ポートに対応する1つの仮想的なポートを仮想ポートと記述する。単にポートと記述した場合は、実ポートを指すものとする。
また、仮想ポート設定テーブル312に設定されたポートに接続されることによって、1つのノードとして仮想された2つの通信媒体を仮想ノードと記述する。
図4に、拠点ノード100の仮想ポート設定テーブル312の一例を示す。
図4に示す仮想ポート設定テーブル312では、ポート1及びポート2が、1つの仮想ポートとして設定されている。これにより、図1の拠点ノード100は、ポート1及びポート2に接続された2つの通信媒体106及び通信媒体107を、1つの仮想ポートに接続された1つの仮想ノードとして扱うことができる。
キープアライブフレーム送信部314は、仮想ポート設定テーブル312に設定されたポートからキープアライブフレームを送信する。
フレーム解析部307のキープアライブフレーム解析部308は、キープアライブフレームの到着状態やキープアライブフレームに記載された内容により通信状態を監視し、通信状態に基づいて出力ポート決定方式設定部316を制御する。
通信状態管理データベース310は、キープアライブフレーム解析部308によって制御され、キープアライブフレームの到着状態を相手ノード毎に管理する。
(動作の説明)
(イーサネット(R)フレームの転送の概要)
図1に示す本実施例の通信システムにおいて、ホスト104からホスト105宛てにイーサネット(R)フレームを送信する場合の動作について説明する。
ホスト104から送信されたホスト105宛てのイーサネット(R)フレームは、拠点ノード100のポート3で受信される。
拠点ノード100が、障害を検出していない正常動作時には、拠点ノード100は、ポート1またはポート2のいずれか一方のポートを、後述するある特定のアルゴリズムを用いて選択し、その選択したポートからイーサネット(R)フレームを送信する。
拠点ノード100のポート1から送信された場合は、中継ノード102を経由して、拠点ノード101のポート1で受信される。また、拠点ノード100のポート2から送信された場合は、中継ノード103を経由して、拠点ノード101のポート2で受信される。
拠点ノード101は、ポート1またはポート2で受信したイーサネット(R)フレームをポート3からホスト105に送信する。
また、拠点ノード100が、例えば、ポート1では障害を検出していないが、ポート2で障害を検出した場合は、ホスト104から送信されたイーサネット(R)フレームをポート1からのみ送信することによって、中断することなく通信を続行することができる。
その後、拠点ノード100のポート2の障害の回復を検出した場合は、再びポート1とポート2のいずれか一方を用いて、イーサネット(R)フレームを転送する。
(イーサネット(R)フレームの転送の詳細)
次に、イーサネット(R)フレームの転送時に参照されるフォワーディングデータベース311を作成する手順と通常時にイーサネット(R)フレームを転送する手順について詳細に説明する。
(フォワーディングデータベースの作成手順)
以降では、フォワーディングデータベース311を作成する手順を説明する。
フォワーディングデータベース311は、フォワーディングデータベース制御部309によって作成され、フレームスイッチ304がイーサネット(R)フレームの出力ポートを決定するために参照される。
拠点ノード100の入力ポート301−1〜3(図1のポート1〜ポート3)で受信されたイーサネット(R)フレームは、フレームタイプ判定部303−1〜3によって、フォワーディングデータベース制御部309及びフレームスイッチ304に転送される。
フォワーディングデータベース制御部309は、フォワーディングデータベース311に、受信したイーサネット(R)フレームの送信元に関する情報が存在しない場合、フォワーディングデータベース311の宛先ノード情報(宛先ノード識別子)に、そのイーサネット(R)フレームの送信元MACアドレスを登録し、フォワーディングデータベース311の出力ポート情報に、そのイーサネット(R)フレームの入力ポートを登録する。
本実施例では、2つの実ポートを1つの仮想ポートと仮想するために、フォワーディングデータベース311の1つの宛先ノード情報に対して、出力ポート1及び出力ポート2の2つの出力ポート情報を登録することができる。
フォワーディングデータベース311に登録するポートが、仮想ポート設定テーブル312に設定されているポートである場合、仮想ポート設定テーブル312に設定されている2つのポートの一方が出力ポート1に登録され、他方が出力ポート2に登録される。
仮想ポート設定テーブル312に設定されている2つのポートが、出力ポート1と出力ポート2のどちらに登録されるかは、出力ポート1と出力ポート2に登録されるポートが、フォワーディングデータベース311の宛先ノード情報毎に異なることがないように、予め定めておく。
例えば、図5に示す拠点100のフォワーディングデータベース311を参照して、拠点ノード100が、ホスト105から送信されたイーサネット(R)フレームをポート2で受信した場合に、フォワーディングデータベース311に受信したイーサネット(R)フレームの送信元に関する情報が存在せず、ホスト105に関する情報がフォワーディングデータベース311に登録される場合を説明する。
フォワーディングデータベース311の宛先ノード情報には、ホスト105のMACアドレスが登録される。
また、イーサネット(R)フレームの入力ポートであるポート2は、図4に示す拠点100の仮想ポート設定テーブル312に設定されているため、仮想ポート設定テーブル312に登録されているポート1とポート2の両方をフォワーディングデータベース311の2つの出力ポート情報に登録する。
このとき、図5のフォワーディングデータベース311では、出力ポート情報の出力ポート1にはポート1が登録され、出力ポート2にはポート2が登録されるように、予め定めておき、図5のホスト105の出力ポート情報にはそのように登録される。
フォワーディングデータベース311に登録するポートが、仮想ポート設定テーブル312に設定されていない場合は、出力ポート1と出力ポート2の両方に同じポート(図5の例ではポート3)を登録する。
例えば、図5に示す拠点100のフォワーディングデータベース311を参照して、ホスト104に関する情報を登録する手順を説明する。
ホスト104から送信されるイーサネット(R)フレームは、図4の仮想ポート設定テーブル312に登録されていないポート3で受信されるため、ホスト104の出力ポート1と出力ポート2の両方に、ポート3が登録される。
次に、1つの送信元から複数の宛先にイーサネット(R)フレームが転送されるブロードキャスト転送及びマルチキャスト転送に関する情報をフォワーディングデータベース311に登録する場合について説明する。
ブロードキャスト転送及びマルチキャスト転送の出力ポート情報には、複数のポートが登録される点で、ある1つの送信元から1つの宛先にイーサネット(R)フレームが転送されるユニキャスト転送の場合と異なる。
イーサネット(R)フレームをブロードキャスト転送またはマルチキャスト転送する場合、イーサネット(R)フレームがループすることを防止するために、出力ポート情報に登録されているポートのうち、イーサネット(R)フレームの入力ポート以外のポートからイーサネット(R)フレームを送信する。
まず、ブロードキャスト転送に関する情報をフォワーディングデータベース311に登録する手順を説明する。
フォワーディングデータベース311の宛先ノード情報にはブロードキャストMACアドレスを登録する。
また、フォワーディングデータベース311の出力ポート1には、仮想ポート設定テーブル312に設定されている2つのポートの一方及び仮想ポート設定テーブル312に設定されていない全てのポートを登録する。
フォワーディングデータベース311の出力ポート2には、仮想ポート設定テーブル312に設定されている2つのポートの他方及び仮想ポート設定テーブル312に設定されていない全てのポートが登録される。
次に、マルチキャスト転送に関する情報をフォワーディングデータベース311に登録する手順を説明する。
フォワーディングデータベース311の宛先ノード情報にはマルチキャストMACアドレスを登録する。
また、フォワーディングデータベース311の出力ポート1には、仮想ポート設定テーブル312に設定されている2つのポートの一方及び仮想ポート設定テーブル312に設定されていないポートを登録する。
フォワーディングデータベース311の出力ポート2には、仮想ポート設定テーブル312に設定されている2つのポートの他方及び仮想ポート設定テーブル312に設定されていないポートを登録する。
ブロードキャスト転送またはマルチキャスト転送に関する情報をフォワーディングデータベース311に登録する場合、仮想ポート設定テーブル312に設定されている2つのポートを、出力ポート1と出力ポート2のどちらに登録するかは、前述のユニキャストの場合と同様に、出力ポート1と出力ポート2に登録されるポートが宛先ノード情報毎に異なることがないように、予め定めておく。
なお、本実施例では、ユニキャスト転送及びブロードキャスト転送及びマルチキャスト転送に関する出力ポート情報をフォワーディングデータベース311に登録する例を述べたが、フォワーディングデータベース311をより高速に参照するために、それぞれの転送方法毎に複数のフォワーディングデータベースを用意しても良い。
(通常時のイーサネット(R)フレームの転送)
以降では、拠点ノード100が、通常時(正常動作時)にイーサネット(R)フレームを転送する手順について説明する。
フレームスイッチ304は、フォワーディングデータベース311を参照して、フレームタイプ判定部303−1〜3から転送されたイーサネット(R)フレームの宛先MACアドレスに関する出力ポート情報(出力ポート1及び出力ポート2)を取得する。
出力ポート情報の取得に失敗した場合は、フォワーディングデータベース311のブロードキャスト転送に関する出力ポート情報を参照する。
次に、フレームスイッチ304が、イーサネット(R)フレームの出力ポートを決定する手順について説明する。
フレームスイッチ304は、障害を検出していない場合と障害を検出している場合とで、イーサネット(R)フレームの出力ポートを決定する方法が異なるため、出力ポート決定方式設定部316の設定によって、出力ポートの決定方法を変更することができるようになっている。
本実施例では、フレームスイッチ304がイーサネット(R)フレームの出力ポートを決定する方式として、
(1)出力ポート1と出力ポート2のいずれか一方を、特定のアルゴリズムにより選択する、
(2)出力ポート1を選択する、
(3)出力ポート2を選択する、
の3つを定義した場合について説明する。
キープアライブフレーム解析部308及びリンクダウン検出部302−1〜3は、障害を検出する手順で後述するように、障害を検出していない場合には、出力ポート決定方式設定部316に(1)の方式を設定し、障害を検出した場合には、(2)または(3)の方式を設定する。
具体的には、3つの方式に対してそれぞれ異なる数値を割り当て、障害の検出状況に応じて、適当な数値を出力ポート決定方式設定部316に設定すれば良い。
本実施例では、上述の(1)、(2)、(3)の方式に対してそれぞれ「1」、「2」、「3」の整数値を割り当て、「1」〜「3」の整数値を出力ポート決定方式設定部316に設定することにより、フレームスイッチ304が出力ポートを決定する方法を変更できるように構成されているものとする。
以降では、通常時に、フレームスイッチ304がイーサネット(R)フレームを出力するポートを決定する手順を、ユニキャスト転送と、ブロードキャスト転送及びマルチキャスト転送とに分けて説明する。
最初に、通常時に、イーサネット(R)フレームをユニキャスト転送する手順を説明する。
フレームスイッチ304は、障害を検出していない通常時は、前述した(1)の方法で出力ポートを決定する。
出力ポート1と出力ポート2のいずれか一方を選択するアルゴリズムとしては、ラウンドロビンまたは重み付けラウンドロビンなどのアルゴリズムを用いることができる。
重み付けラウンドロビンを用いたときに、各ポートに割り当てられる重みは、拠点ノード100と通信媒体106〜107間のリンク速度、通信帯域、遅延などのパラメータに基づいて設定することができる。
また、宛先MACアドレス、送信元MACアドレスなどのイーサネット(R)フレームのヘッダ情報、または宛先IPアドレスや送信元IPアドレスなどのIPパケットのヘッダ情報といったイーサネット(R)フレームのペイロードに格納された情報、またはこれらの情報を組み合わせた情報を用いてハッシュを行うことによって、出力ポートを選択する手法を用いても良い。
次に、通常時に、イーサネット(R)フレームをブロードキャスト転送及びマルチキャスト転送する手順を説明する。
イーサネット(R)フレームの入力ポートが仮想ポート設定テーブル312に設定されている場合、後述する理由により、出力ポート1と出力ポート2のうち、入力ポートが含まれる出力ポート情報を選択する。
これは、仮想ポート設定テーブル312に設定されているポートのうち、入力ポート以外のポートにイーサネット(R)フレームが送信されて、ループが発生するのを防止するためである。
例えば、図5に示す拠点100のフォワーディングデータベース311を参照して、拠点ノード100がポート1でブロードキャストフレームを受信した場合の動作について説明する。
この場合、フレームスイッチ304は、ブロードキャストフレームの入力ポートであるポート1が含まれている出力ポート1を選択し、入力ポート以外の全てのポート(ここでは、ポート3のみ)にブロードキャストフレームを転送する。
イーサネット(R)フレームの入力ポートが仮想ポート設定テーブル312に設定されていない場合は、ユニキャスト転送の場合と同様である。
上述のように、仮想ポートからイーサネット(R)フレームを送信する場合、仮想ポート設定テーブル312に設定された2つのポートにデータフレームを分散させて送信することにより、1つの通信経路にデータフレームが集中して流れることを防止し、輻輳の生じる確率の小さい信頼性の高い通信システムを実現することが可能である。
(障害検出時のイーサネット(R)フレームの転送)
次に、拠点ノード100〜101が障害を検出する手順と、障害検出時にイーサネット(R)フレームを転送する手順について説明する。
(キープアライブフレームによる障害検出)
以降では、拠点ノード100が障害を検出する手順を説明する。
図1の拠点ノード100〜101が相互にキープアライブフレームを送受信することにより、拠点ノード100〜101の故障、または中継ノード102〜103の故障、または各ノード間のリンクの切断などによって生じる障害を検出する手順を図面を参照して説明する。
拠点ノード100〜101は、通信媒体106〜107に接続された2つのポートからキープアライブフレームをブロードキャストするとともに、通信媒体106〜107に接続された2つのポートより、相手ノードから送信されるキープアライブフレームを受信する。
拠点ノード100〜101は、相手ノードから送信されるキープアライブフレームの到着状態をポート毎に監視し、キープアライブフレームが予め設定された特定時間内に到着しなくなったことを検出して、障害の発生を検出する。
また、キープアライブフレームが到着しなくなったポートに、再び予め設定された特定時間内にキープアライブフレームが到着するようになると、拠点ノード100〜101は障害が回復したと判断する。
以降では、キープアライブフレームを送受信することによって、障害を検出する手順を、キープアライブフレームの送信、キープアライブフレームの受信に分けて、説明する。
(キープアライブフレームの送信)
最初に拠点ノード100がキープアライブフレームを送信する手順を述べる。
拠点ノード100のキープアライブフレーム送信部314は、仮想ポート設定テーブル312に設定された2つのポートから、相手ノードに対してキープアライブフレームを繰り返し送信する。
キープアライブフレームを送信する時間間隔(予め設定された特定時間)が小さいほど、障害を短時間で検出することができる。
ここで、キープアライブフレームについて詳細に説明する。
本実施例では、図25に示すイーサネット(R)のフレームフォーマットを有するデータフレーム(イーサネット(R)フレーム2500)を用いて、キープアライブフレームを実現する場合について説明する。
以下の説明と同様にして、イーサネット(R)以外のフレームフォーマットを有するデータフレームを用いて、キープアライブフレームを実現することもできる。
キープアライブフレームの宛先MACアドレス2501には、拠点ノード100〜101がキープアライブフレームとして認識可能で、かつ全ての相手ノードにキープアライブフレームが転送されるように、中継ノード102〜103においてブロードキャストMACアドレスと同等の効果を有するMACアドレスが格納される。
本実施例では、拠点ノードは、拠点ノード100及び拠点ノード101の2つしかなく、キープアライブフレームをブロードキャストすることによる明瞭な効果はないため、キープアライブフレームの宛先MACアドレス2501に相手ノードのMACアドレスを格納しても良い。
しかしながら、後述する第3以降の実施例では、複数の拠点ノードが通信媒体に接続されるため、ブロードキャストMACアドレスと同等の効果を有するMACアドレスを用いることにより、相手ノード毎にキープアライブフレームを送信しなくても良いという利点が得られる。
キープアライブフレームの宛先MACアドレス2501の例としては、中継ノード102〜103がキープアライブフレームをunknownユニキャストフレームとして認識するようなMACアドレスを用いることができる。
以降では、キープアライブフレームの宛先MACアドレス2501に、中継ノード102〜103がunknownユニキャストフレームとして認識するようなMACアドレスを用いる場合について説明する。
キープアライブフレームの送信元アドレス2502には、キープアライブフレームを送信する、例えば拠点ノード100のMACアドレスが格納される。
キープアライブフレームのイーサネット(R)属性情報2503には、キープアライブフレームのデータ長もしくはタイプ値が格納される。
キープアライブフレームのペイロード2504には、イーサネット(R)フレームを作成するのに必要とされる最小のデータ長分の空の情報が格納される。
また、ペイロード2504に、キープアライブフレームの送信元ノードの情報や通信状態の情報を格納して、拠点ノード100と拠点ノード101間で通信を行うこともできる。
キープアライブフレームのFCS2505は、所定の計算方法によって計算される値が格納される。
ここで、拠点ノード100から送信されたキープアライブフレームが、中継ノード102または中継ノード103を経由して、拠点ノード101に転送される場合の動作について図1を参照して説明する。
拠点ノード100は、仮想ポート設定テーブル312に設定されたポート1及びポート2からキープアライブフレームを送信する。キープアライブフレームをポート1で受信した中継ノード102及び中継ノード103は、キープアライブフレームをunknownユニキャストフレームとして認識するため、キープアライブフレームを受信したポート1以外の全てのポート(ポート2)からキープアライブフレームを送信する。中継ノード102及び中継ノード103によってブロードキャストされたキープアライブフレームは、拠点ノード101のポート1及びポート2で受信される。
拠点ノード101から送信されるキープアライブフレームが、拠点ノード100に転送される場合の動作についても同様である。
(キープアライブフレームの受信、通信状態管理データベースの作成)
次に、拠点ノード100が、通信状態管理データベース310により、キープアライブフレームの到着状態を管理する手順を説明する。
以降では、キープアライブフレームの到着状態として、受信状態と未着状態の2つの状態を定義した場合について説明する。
キープアライブフレームを受信してから、予め設定された特定時間が経過するまでの状態を受信状態と定義し、予め設定された特定時間が経過しても、キープアライブフレームを受信しない状態を未着状態と定義する。また、キープアライブフレームを一度も受信したことがない状態も未着状態と定義する。
ある相手ノードから送信されるキープアライブフレームの、あるポートへの到着状態が未着状態になった場合、キープアライブフレーム解析部308は、その相手ノードの故障、またはその相手ノードと未着状態になったポート間の通信経路上にある中継ノードの故障、または各ノード間のリンクの切断などによる障害が発生したと判断する。
上述の特定時間は、キープアライブフレームの送信間隔やキープアライブフレームの伝搬時間が遅延などの影響により変動することを考慮して設定すると良い。
拠点ノード100の入力ポート301−1〜3で受信されたキープアライブフレームは、フレームタイプ判定部303−1〜3によって、キープアライブフレーム解析部308に転送される。
キープアライブフレームを仮想ポート設定テーブル312に設定されていないポートで受信したとき、仮想ポート設定テーブル312を設定入力インターフェース315により手動設定するような場合は、キープアライブフレーム解析部308は、キープアライブフレームを廃棄する。
仮想ポート設定テーブル312を自動設定するような場合は、キープアライブフレーム解析部308は、キープアライブフレームの入力ポートを、仮想ポート設定テーブル312に自動的に登録する。
後者の場合、図1の拠点ノード100と拠点ノード101のどちらか一方の仮想ポート設定テーブルを設定するだけで、他方の仮想ポート設定テーブルを設定することができるため、ネットワーク管理者が設定を誤る確率を軽減することができるという利点がある。
キープアライブフレーム解析部308は、後述する通信状態管理データベース310に、受信したキープアライブフレームの送信元ノード情報(例えば、相手ノードとなる拠点ノードの識別子であるMACアドレス)を登録するとともに、入力ポートへのキープアライブフレームの到着状態の監視を始める。
そのノードに関する情報が既に通信状態管理データベース310に存在する場合は内容を更新し、キープアライブフレームの到着状態を監視する。
通信状態管理データベース310は、仮想ポート設定テーブル312に設定されている全てのポートへのキープアライブフレームの到着状態を、キープアライブフレームの送信元ノード(相手ノード)毎に管理するためのデータベースである。
図6に、拠点ノード100の通信状態管理データベース310の一例を示す。
通信状態管理データベース310には、送信元ノード情報(例えば、相手ノードとなる拠点ノードの識別子であるMACアドレス)に対応して、ポートの到着状態を示す情報として「受信状態」又は「未着状態」が設定されている。
図6に示す通信状態管理データベース310に登録されている送信元ノード(拠点ノード101)情報に対するポートの到着状態を示す情報において、ポート1が「受信状態」であるのは、ポート1が拠点ノード101から送信されたキープアライブフレームの受信後、ある特定時間が経過するまでの状態にあることを表している。
また、ポート2が「未着状態」にあるのは、ポート2が拠点ノード101から送信されるキープアライブフレームを受信したことがない、または、キープアライブフレームの受信後、ある特定時間が経過しても、拠点ノード101から送信されるキープアライブフレームを受信しなかったことを表している。
通信状態管理データベース310において、ある拠点ノードに関する情報(送信元ノード情報)に対するポートの到着状態を示す情報が、全て未着状態になった場合、キープアライブフレーム解析部308は、その拠点ノードが通信システムから切り離されたと判断して、その拠点ノードに関する情報を通信状態管理データベース310から削除した後、その拠点ノードから送信されるキープアライブフレームの到着状態の監視を止める。
以上のように、相手ノードから送信されるキープアライブフレームの到着状態を監視することにより、障害を検出することができる。
(キープアライブフレーム未着時の転送)
次に、キープアライブフレーム解析部308が、キープアライブフレームの未着状態を検出した場合に、イーサネット(R)フレームを転送する手順を説明する。
通信状態管理データベース310において、ある相手ノードから送信されるキープアライブフレームの到着状態が、仮想ポート設定テーブル312に設定されている2つのポートの一方で未着状態となり、他方で受信状態となった場合、フレームスイッチ304が、フォワーディングデータベース311の2つの出力ポート情報のうち、受信状態のポートが登録されている出力ポート情報を用いてイーサネット(R)フレームの転送を行うように、キープアライブフレーム解析部308は、出力ポート決定方式設定部316の値を「2」(出力ポート1を選択)または「3」(出力ポート2を選択)に変更する。
例えば、図6に示す通信状態管理データベース310では、拠点ノード101ら送信されるキープアライブフレームの到着状態は、ポート1で受信状態、ポート2で未着状態となっている。
したがって、フレームスイッチ304が、図5のフォワーディングデータベース311で、ポート1が登録されている出力ポート1を用いて、イーサネット(R)フレームの転送を行うように、キープアライブフレーム解析部308は、出力ポート決定方式設定部316の値を「2」に変更する。
通信状態管理データベース310において、ある相手ノードから送信されるキープアライブフレームの到着状態が、すべてのポートで再び受信状態になった場合、フレームスイッチ304が、フォワーディングデータベース311の出力ポート1と出力ポート2のいずれか一方を、ある特定のアルゴリズムにより選択して転送を行うように、キープアライブフレーム解析部308は、出力ポート決定方式設定部316の値を「1」に変更する。
通信状態管理データベース310において、ある相手ノードから送信されるキープアライブフレームの到着状態がすべてのポートで未着状態になった場合、通常時と同様に、フォワーディングデータベース311の出力ポート1と出力ポート2のいずれか一方を特定のアルゴリズムにより選択して転送を行うように、キープアライブフレーム解析部308は、出力ポート決定方式設定部316の値を「1」に変更する。
または、フォワーディングデータベース311の出力ポート情報に仮想ポート設定テーブル312に設定されたポートが登録されているエントリの出力ポート1及び出力ポート2の両方に、イーサネット(R)フレームが廃棄されるような特別なポート番号を登録しても良い。
または、フォワーディングデータベース311の出力ポート情報に仮想ポート設定テーブル312に設定されたポートが登録されているエントリを削除しても良い。
上述したように、キープアライブフレームの到着状態により障害を検出し、出力ポート決定方式設定部316を変更することにより、障害を検出していない通信経路のみを用いて通信を続行することが可能である。
以上説明したのとは別に、以下に述べる方法を用いて、通信を続行することもできる。
通信状態管理データベース310において、ある相手ノードから送信されるキープアライブフレームの到着状態が、仮想ポート設定テーブル312に設定されている2つのポートのうち、一方で未着状態になり、他方で受信状態になった場合、キープアライブフレーム解析部308は、フォワーディングデータベース311の出力ポート情報に登録されている未着状態のポートを受信状態のポートに変換する。
例えば、図6の通信状態管理データベース310に示すように、拠点ノード101から送信されるキープアライブフレームの到着状態が、ポート1で受信状態、ポート2で未着状態になった場合の動作について説明する。
キープアライブフレーム解析部308は、図5のフォワーディングデータベース311において、拠点ノード101のMACアドレス及びホスト105のMACアドレス及びブロードキャストMACアドレス及びマルチキャストMACアドレスの出力ポート2に登録されているポート2をポート1に変換する。
このとき、キープアライブフレーム解析部308は、出力ポート決定方式設定部316の値を変更せず、その値を「1」(出力ポート1〜2のいずれかをある特定のアルゴリズムにより決定)のままにしておく。
以上のように、フォワーディングデータベース311の内容を変更することにより、フレームスイッチ304が出力ポート1と出力ポート2のいずれを選択しても、障害の検出されたポート1が出力ポートとして選択されることはないため、拠点ノード100は障害の検出されていないポート2のみを用いて通信を続行することが可能である。
通信状態管理データベース310において、ある相手ノードから送信されるキープアライブフレームの到着状態が、すべてのポートで再び受信状態になった場合は、フォワーディングデータベース311の置換されたポートを未着状態から受信状態になったポートに変換して、フォワーディングデータベース311を通常時の元の状態に戻せば良い。
通信状態管理データベース310において、ある相手ノードから送信されるキープアライブフレームの到着状態が、すべてのポートで未着状態になった場合は、前述の出力ポート決定方式設定部316を変更する方法と同様にすれば良い。
上述したように、キープアライブフレームの到着状態を検出し、フォワーディングデータベース311を変更することにより、障害を検出していない通信経路を用いて、通信を続行することができる。
(リンクダウン検出時の転送)
次に、リンクダウン検出部302−1〜3が、ポートのリンクダウンを検出した場合の動作について説明する。
リンクダウン検出部302−1〜3は、仮想ポート設定テーブル312に設定された2つのポートでリンクダウンを検出すると、キープアライブフレームが未着状態になった時と同様に、フレームスイッチ304が、フォワーディングデータベース311の2つの出力ポート情報のうち、リンクダウンしたポートが含まれない出力ポート情報を用いて、イーサネット(R)フレームの転送を行うように、出力ポート決定方式設定部316の値を「2」(出力ポート1を選択)または「3」(出力ポート2を選択)に変更する。
リンクダウン検出部302−1〜3は、仮想ポート設定テーブル312に設定された全てのポートでリンクダウンを検出した場合、フォワーディングデータベース311の出力ポート1と出力ポート2のいずれか一方を特定のアルゴリズムにより選択して転送を行うように、出力ポート決定方式設定部316の値を「1」に変更する。
または、仮想ポート設定テーブル312に設定されたポートを用いて通信を行うことはできないため、フレームスイッチ304は、出力ポートが仮想ポート設定テーブル312に設定されているポートであるイーサネット(R)フレームを廃棄しても良い。
または、フォワーディングデータベース311の出力ポート情報に仮想ポート設定テーブル312に設定されたポートが登録されているエントリを削除しても良い。
以上述べたのとは別に、キープアライブフレーム未着時のイーサネット(R)フレームの転送方法と同様に、出力ポート決定方式設定部316の値を「1」にしておき、フォワーディングデータベース311の未着状態になったポートを受信状態のポートに変換して、受信状態のポートが出力ポートとして選択されるようにすることにより、障害の検出していないポートのみを用いて通信を続行することもできる。
ポートがリンクダウンした場合、キープアライブフレーム解析部308がキープアライブフレームの未着により障害を検出するため、リンクダウン検出部302−1〜3は必ずしも必要というわけではない。
しかしながら、キープアライブフレーム解析部308が、キープアライブフレームの未着状態を認識するまでには、ある程度の時間が必要とされるが、リンクダウン検出部302−1〜3は、ポートのリンクダウンを検出してすぐに対応できるという利点がある。
第1の実施例では、拠点ノード100は2つの通信媒体106〜107に接続されているが、フォワーディングデータベース311に登録できる出力ポート情報の数を増大し、出力ポート決定方式設定部316が指定できるアルゴリズムを増大することにより、拠点ノード100が3つ以上の通信媒体に接続された通信システムにも適用することができる。
例えば、2つの拠点ノードが3つの通信媒体に接続された通信システムの場合について説明する。
この場合、フォワーディングデータベースが出力ポート1及び出力ポート2及び出力ポート3の3つの出力ポート情報を登録でき、出力ポート決定方式設定部が、障害が発生している状況によって、以下に示すような7個のアルゴリズムを指定できれば良い。
(1)出力ポート1〜3のいずれか1つを、ある特定のアルゴリズムにより選択する。
(2)出力ポート1または出力ポート2のいずれか一方を、ある特定のアルゴリズムにより選択する。
(3)出力ポート2または出力ポート3のいずれか一方を、ある特定のアルゴリズムにより選択する。
(4)出力ポート3または出力ポート1のいずれか一方を、ある特定のアルゴリズムにより選択する。
(5)出力ポート1を選択する。
(6)出力ポート2を選択する。
(7)出力ポート3を選択する。
以上のように、拠点ノードが接続される通信媒体の数が増えた場合に対しても、本実施例で用いられている手法を適用することができる。
(第2の実施例)
本発明の第2の実施例について図面を参照して詳細に説明する。
第2の実施例では、ポートマッピングテーブルを用いて、高い信頼性を有する通信システムを提供する方法を述べる。
(通信システムの構成)
第2の実施例における通信システムの構成は、図1に示した第1の実施例における通信システムの構成と同一であるため、説明を省略する。
(拠点ノードの構成)
図7は、第2の実施例による拠点ノード100〜101の構成を示すブロック図である。
第2の実施例における拠点ノード100(拠点ノード101についても同様)の構成は、拠点ノード100がポートマッピングテーブル701とポート変換部702を備える点で、第1の実施例と異なる。
ポートマッピングテーブル701は、仮想ポート設定テーブル312で設定された仮想ポートに、当該仮想ポートを一意に識別するための情報であるポート番号を割り当てることにより、拠点ノード100が仮想ポートを実ポートと同様に処理することを可能にする。
図8に、拠点ノード100のポートマッピングテーブル701の一例を示す。
図8のポートマッピングテーブル701では、図4の仮想ポート設定テーブル312でポート1とポート2が登録された仮想ポートに、ポート番号としてのポート11が割り当てられている。拠点ノード100は、ポート11を指定することによって、仮想ポートを指定することができる。
ポート変換部702は、フォワーディングデータベース700の出力ポート情報に含まれる仮想ポートを、ポートマッピングテーブル701で仮想ポートに登録されている2つのポートのうち、いずれか1つのポートに変換する。
また、第2の実施例は、リンクダウン検出部302−1〜3が、ポートマッピングテーブル701を制御する点と、キープアライブフレーム解析部308が、ポートマッピングテーブル701を制御する点で、第1の実施例と異なる。
(動作の説明)
以降では、ホスト104からホスト105宛てにイーサネット(R)フレームを送信する場合の動作について説明する。
第2の実施例において、図1の拠点ノード100が、ホスト104から送信されたホスト105宛てのイーサネット(R)フレームを転送する場合の動作は、第1の実施例における動作と基本的に同一であるため、相違点のみを以下に述べる。
(フォワーディングデータベースの作成)
まず、フォワーディングデータベース700を作成する手順について説明する。
第2の実施例では、フォワーディングデータベース700は、1つの宛先ノード情報に対して、1つの出力ポート情報を有し、ポートマッピングテーブル701で仮想ポートに割り当てられたポート番号を、フォワーディングデータベース700の出力ポート情報に登録する。
図9に、拠点ノード100のフォワーディングデータベース700の一例を示す。
例えば、図9を参照して、ホスト104及びホスト105に関する情報をフォワーディングデータベース700に登録する場合の動作について説明する。
拠点ノード100の仮想ポートには、図4の仮想ポート設定テーブル312に示すようにポート1とポート2が設定されているとする。
また、仮想ポートには、図8のポートマッピングテーブル701に示すように、ポート番号11が割り当てられているとする。
拠点ノード100が、ホスト104から送信されたイーサネット(R)フレームをポート3で受信した場合、フォワーディングデータベース700の宛先ノード情報にホスト104のMACアドレスが登録され、出力ポート情報にポート3が登録される。
拠点ノード100が、ホスト105から送信されたイーサネット(R)フレームをポート1で受信した場合、フォワーディングデータベース700の宛先ノード情報には、ホスト105のMACアドレスが登録される。
また、イーサネット(R)フレームの入力ポートであるポート1は、仮想ポート設定テーブル312の仮想ポートに設定されているため、図8のポートマッピングテーブル701で仮想ポートに割り当てられているポート11に変換されて、フォワーディングデータベース700の出力ポート情報に登録される。
(通常時のイーサネット(R)フレームの転送)
以降では、通常時に、イーサネット(R)フレームを転送する手順を説明する。
フレームスイッチ304は、フォワーディングデータベース700を参照して、イーサネット(R)フレームの宛先MACアドレスに関する出力ポート情報を取得する。
出力ポート情報の取得に失敗した場合は、フォワーディングデータベース700のブロードキャスト転送に関する出力ポート情報を取得する。
以下、ユニキャスト転送と、ブロードキャスト転送及びマルチキャスト転送に分けて、イーサネット(R)フレームを転送する手順を述べる。
最初に、イーサネット(R)フレームをユニキャスト転送する場合について説明する。
フォワーディングデータベース700を参照して取得した出力ポート情報に登録されているポートが仮想ポートである場合、フレームスイッチ304は、ポート変換部702によって仮想ポートをポートマッピングテーブル701に登録されている実ポートの1つに変換し、変換された実ポートからイーサネット(R)フレームを送信する。
ポート変換部702が、ポートマッピングテーブル701に登録された実ポートから、1つの実ポートを選択するアルゴリズムとしては、第1の実施例において、フレームスイッチ304が、フォワーディングデータベース700の出力ポート1と出力ポート2のいずれか一方を選択する場合に用いたアルゴリズムを用いることができる。
フォワーディングデータベース700の出力ポート情報に登録されたポートが仮想ポートでない場合は、そのポートからイーサネット(R)フレームを送信する。
例えば、図8及び図9を参照して、拠点ノード100がホスト105宛てのイーサネット(R)フレームを転送する場合の動作について説明する。
フレームスイッチ304は、図9のフォワーディングデータベース700を参照して、出力ポートとしてポート11を取得する。ポート11は仮想ポートであるため、図8のポートマッピングテーブル701を参照して、仮想ポート(ポート11)に登録された実ポート(ポート1及びポート2)を取得する。フレームスイッチ304は、ある特定のアルゴリズムにより、ポート1とポート2のいずれかを出力ポートとして選択し、選択したポートからイーサネット(R)フレームを送信する。
次に、イーサネット(R)フレームをブロードキャスト転送またはマルチキャスト転送する場合について説明する。
フレームスイッチ304は、フォワーディングデータベース700の出力ポート情報に登録されているポートに、イーサネット(R)フレームの入力ポートが含まれる場合、ループの発生を防止するため、出力ポート情報からそのポートを削除する。
ただし、イーサネット(R)フレームの入力ポートが、ポートマッピングテーブル701に登録されているポートである場合、入力ポートを仮想ポートに変換した上で、上述の処理を行う。
フレームスイッチ304は、フォワーディングデータベース700の出力ポート情報に登録されているポートに、仮想ポートが含まれる場合は、ポート変換部702によって仮想ポートを1つの実ポートに変換した上で、出力ポート情報に登録されている全てのポートからイーサネット(R)フレームを送信する。
以上で述べたように、ポートマッピングテーブル701で仮想ポートに割り当てられたポート番号を、フォワーディングデータベース700の出力ポート情報に登録することによって、仮想ポート設定テーブル312で仮想ポートに登録された1つ以上の実ポートから、イーサネット(R)フレームを転送することができる。
(障害検出時のイーサネット(R)フレームの転送)
以降では、拠点ノード100が、障害を検出した場合に、イーサネット(R)フレームを転送する手順について説明する。
(キープアライブフレームによる障害検出)
本実施例において、拠点ノード100がキープアライブフレームを送受信することにより障害を検出する手順は、第1の実施例と同一であるため、説明を省略する。
(キープアライブフレーム未着時のイーサネット(R)フレームの転送)
次に、キープアライブフレームの到着状態が未着状態になった場合の動作について説明する。
キープアライブフレーム解析部308は、キープアライブフレームの到着状態が、仮想ポート設定テーブル312に設定されている2つのポートの一方で未着状態となり、他方で受信状態となった場合、ポートマッピングテーブル701から未着状態になったポートを削除する。
例えば、図8に示す拠点ノード100のポートマッピングテーブル701を参照して、拠点ノード101から送信されるキープアライブフレームの到着状態が、拠点ノード100のポート2で未着状態になった場合の動作について説明する。
このとき、キープアライブフレーム解析部308は、ポートマッピングテーブル701からポート2を削除する。したがって、ポートマッピングテーブル701には、ポート1だけが登録される。
キープアライブフレームの到着状態が未着状態にあったポートが、キープアライブフレームを受信して受信状態になった場合、キープアライブフレーム解析部308は、ポートマッピングテーブル701に受信状態になったポートを追加する。
キープアライブフレームの到着状態が、仮想ポート設定テーブル312に設定された全てのポートで、未着状態になった場合、通常時と同様に、仮想ポート設定テーブル312に設定されている全てのポートをポートマッピングテーブル701に設定する。
または、イーサネット(R)フレームが廃棄されるような特別なポート番号を、ポートマッピングテーブル701に設定しても良い。
以上のように、拠点ノード100は、ポートマッピングテーブル701に障害を検出していないポートのみを登録することにより、通信を続行することができる。
(リンクダウン検出時のイーサネット(R)フレームの転送)
以下では、拠点ノード100が、リンクダウンを検出した場合の動作について説明する。
リンクダウン検出部302−1〜3が、ポートのリンクダウンを検出した場合は、キープアライブフレームが未着状態になった場合と同様に、ポートマッピングテーブル701からリンクダウンしたポートを削除する。
ポートのリンクの状態を監視することにより、キープアライブフレーム解析部308がキープアライブフレームの未着状態を認識するよりも迅速に、ポートマッピングテーブル701を変更することが可能である。
上述のように、ポートマッピングテーブル701により仮想ポートにポート番号を割り当て、フォワーディングデータベース700の出力ポート情報に仮想ポートのポート番号を登録する方法を用いることによって、第1の実施例と同様に、高い信頼性を有する通信システムを提供することができる。
(第3の実施例)
本発明の第3の実施例について図面を参照して詳細に説明する。
第3の実施例では、3つ以上の拠点ノードが通信媒体に接続されるような通信システムにおいて、高い信頼性を実現する方法を説明する。
(通信システムの構成)
図10は、第3の実施例における通信システムの構成を示している。
第3の実施例における通信システムの構成は、3つの拠点ノード100、101、1000が、2つの通信媒体106及び通信媒体107に接続されている点で、第1及び第2の実施例と異なる。拠点ノード1000は、ポート1で中継ノード102と、ポート2で中継ノード103と、ポート1でホスト1001と接続されている。
図10に示す通信システムでは、3つの拠点ノード100及び拠点ノード101及び拠点ノード1000が、通信媒体106〜107に接続されているが、2つ以上の任意の数の拠点ノードが通信媒体106〜107に接続されているような通信システムであっても良い。
また、図10に示す通信システムでは、通信媒体106〜107は1つの中継ノードから構成されるが、図11に示す通信システムのように、複数の中継ノードから構成されていても良い。
(拠点ノードの構成)
図12は、第3の実施例による拠点ノード100及び拠点ノード101及び拠点ノード1000の構成を示すブロック図である。
第3の実施例における拠点ノード100(拠点ノード101、1000についても同様)の構成は、アドレス管理データベース1200を備える点で、第2の実施例の構成と異なる。
アドレス管理データベース1200は、相手ノードに属するポートのうち、通信媒体106〜107に接続されていないポートに、直接もしくは1つ以上のノードを介して接続されている全てのホストと相手ノードの対応関係を管理する。
本実施例では、アドレス管理データベース1200は、キーボードやTelnetなどの設定入力インターフェース315を用いることにより手動で設定される。
図13に、拠点ノード100のアドレス管理データベース1200の一例を示す。ここでは、拠点ノード100の相手ノード情報としての拠点ノード101のMACアドレスと拠点ノード1000のMACアドレスに対応して、それぞれホスト105とホスト1000のノード識別子であるMACアドレスが設定されている。
図13のアドレス管理データベース1200から、拠点ノード101にホスト105が接続され、拠点ノード1000にホスト1001が接続されていることが分かる。
また、第3の実施例は、キープアライブフレーム解析部308が、フォワーディングデータベース1201を制御する点で、第2の実施例と異なる。
(動作の説明)
以降では、ホスト104からホスト105にイーサネット(R)フレームを転送する手順を説明する。
(通常時のイーサネット(R)フレームの転送)
第3の実施例において、拠点ノード100が、通常時に、ホスト104から送信されたホスト105宛てのイーサネット(R)フレームを転送する手順は、第2の実施例と同一であるため、説明を省略する。
(障害検出時のイーサネット(R)フレームの転送)
以降では、拠点ノード100が、障害を検出した場合に、ホスト104から送信されたホスト105宛てのイーサネット(R)フレームを転送する場合の動作について説明する。
第3の実施例において、キープアライブフレームの送受信によって障害を検出する手順は、第1の実施例と同一であるため、説明を省略する。
(キープアライブフレーム未着時のイーサネット(R)フレームの転送)
次に、キープアライブフレームの到着状態が未着状態になった場合の動作について説明する。
通信状態管理データベース310において、キープアライブフレームの到着状態が、仮想ポート設定テーブル312に設定されている2つのポートの一方で未着状態となり、他方で受信状態となった場合、キープアライブフレーム解析部308は、後述するフォワーディングデータベース1201の出力ポート情報に登録されている仮想ポートを、受信状態にある実ポートに変換する。
上述の変換処理は、未着状態になったキープアライブフレームの送信元ノードに接続された全てのホストの通信に関係するフォワーディングデータベース1201の情報に対してのみ行う必要がある。
具体的には、キープアライブフレームが未着状態となった送信元ノードの出力ポート情報と、アドレス管理データベース1200によりその送信元ノードに関連付けられたホストに関する出力ポート情報と、ブロードキャスト転送に関する出力ポート情報と、マルチキャスト転送に関する出力ポート情報に対して、上述の処理を行う。
例えば、図23に示す拠点ノード100のフォワーディングデータベース1201を参照して、拠点ノード101から送信されるキープアライブフレームが、ポート1で受信状態、ポート2で未着状態になった場合について説明する。
拠点ノード100のキープアライブフレーム解析部308は、図23のフォワーディングデータベース1201において、拠点ノード101の出力ポート情報に登録されている仮想ポートのポート11を、受信状態にあるポート1に変換する。
また、フォワーディングデータベース1201の出力ポート情報のうち、拠点ノード100のアドレス管理データベース1200によって拠点ノード101に関連付けられているホスト105及びブロードキャストMACアドレス及びマルチキャストMACアドレスに対応する出力ポート情報についても、上記と同様の処理を行う。
ある相手ノードから送信されるキープアライブフレームの到着状態が、仮想ポート設定テーブル312に設定されている2つのポートの一方で未着状態、他方で受信状態にあった場合から、両方のポートで受信状態になった場合、キープアライブフレーム解析部308は、フォワーディングデータベース1201の出力ポート情報に登録されているポートのうち、仮想ポート設定テーブル312に設定されているポートを、仮想ポートとして変換する。
前述した例で、拠点101から送信されるキープアライブフレームが、拠点ノード100のポート2で再び受信されるようになった場合、拠点100は、フォワーディングデータベース1201の拠点ノード101の出力ポート情報に登録したポート1を仮想ポートのポート11に変換する。
ある相手ノードから送信されるキープアライブフレームの到着状態が、仮想ポート設定テーブル312に設定された全てのポートで未着状態になった場合、キープアライブフレーム解析部308は、前述したように、通信状態管理データベース310からその相手ノードに関する情報を削除し、その相手ノードから送信されるキープアライブフレームの到着状態の監視を止める。
または、フォワーディングデータベース1201の出力ポート情報に登録されているポートのうち、仮想ポート設定テーブル312に設定されているポートを、仮想ポートに変換しても良い。
または、イーサネット(R)フレームが廃棄されるような特別なポート番号に変換しても良い。
なお、上述の状態は、後述する多重リンク障害の条件を満足するが、多重リンク障害検出時の動作の説明で述べるように、多重リンク障害とは見なさないものとする。
上述したように、相手ノードから送信されるキープアライブフレームの未着によって障害を検出し、フォワーディングデータベース1201の出力ポート情報に登録された仮想ポートを障害の検出していないポートに変換することにより、障害を検出していない通信経路を用いて通信を続行することができる。
(リンクダウン検出時のイーサネット(R)フレームの転送)
第3の実施例において、リンクダウン検出部302−1〜3がポートのリンクダウンを検出した場合の動作については、第2の実施例と同一であるため、説明を省略する。
(多重リンク障害検出時のブロードキャスト転送及びマルチキャスト転送)
以降では、キープアライブフレーム解析部308が、後述する多重リンク障害を検出した場合の動作について説明する。
多重リンク障害は、通信状態管理データベース310において、仮想ポート設定テーブル312に設定された全てのポートで、任意の相手ノードのキープアライブフレームが未着状態となった状態として定義する。
例えば、図24に示す拠点ノード100の通信状態管理データベース2400を参照して、多重リンク障害の検出について説明する。
図24に示す通信状態管理データベース2400では、ポート1で拠点ノード1000のキープアライブフレームが未着状態となっており、ポート2で拠点ノード101のキープアライブフレームが未着状態となっている。
拠点ノード100は、図4に示す仮想ポート設定テーブル312に設定された全てのポート(ポート1及びポート2)で、キープアライブフレームの未着状態を検出するため、多重リンク障害が発生していると判断する。
ある相手ノードから送信されるキープアライブフレームの到着状態が、仮想ポート設定テーブル312に設定されている全てのポートで未着状態になった場合は、多重リンク障害の条件を満足するが、この相手ノードに関する情報は、キープアライブフレーム解析部308によって、すぐに通信状態管理データベース310から削除されて、多重リンク障害の条件を満足しなくなるため、多重リンク障害とは見なさないものとする。
多重リンク障害が発生した場合、以下に述べるような問題が生じる。
ここでは、図10の拠点ノード101と中継ノード103間のリンク及び拠点ノード1000と中継ノード102間のリンクが切断されて、拠点ノード100が、図24の通信状態管理データベース2400に示すような多重リンク障害を検出した場合について説明する。
このとき、拠点ノード100が、ホスト104から送信されたブロードキャストフレームをポート3で受信してブロードキャスト転送する場合、図4の仮想ポート設定テーブル312に設定されているポート1とポート2のどちらか一方だけにブロードキャストフレームを送信すると、拠点ノード101と拠点ノード1000のどちらか一方にしかブロードキャストフレームを転送することができないという問題が生じる。
また、あるマルチキャストMACアドレスの出力ポート情報に、仮想ポートまたは仮想ポート設定テーブル312に設定されているポートが含まれている場合も、ブロードキャストフレームの転送と同様の問題が生じる。
上述の問題を解決するために、多重リンク障害を検出した場合は、仮想ポート設定テーブル312に設定されている全てのポートから、ブロードキャストフレームまたはマルチキャストフレームを送信する必要がある。
したがって、キープアライブフレーム解析部308は、多重リンク障害を検出した場合、フォワーディングデータベース1201のブロードキャスト転送に関する出力ポート情報に、仮想ポート設定テーブル312に設定されている全てのポートを追加する。
また、同様の問題が生じるマルチキャストMACアドレスに関する出力ポート情報についても、ブロードキャスト転送に関する出力ポート情報と同様の処理を行う。
しかしながら、拠点ノードが4つ以上存在する通信システムにおいて、ある拠点ノードが、多重リンク障害を検出して、仮想ポート設定テーブル312に設定された全てのポートからブロードキャストフレームを送信した場合、相手ノードがそのブロードキャストフレームを2度受信してしまう可能性があるという問題がある。
例えば、図11に示す通信システムにおいて、拠点ノード1101と通信媒体1111間のリンク及び拠点ノード1102と通信媒体1110間のリンクが切断されて、拠点ノード1100が、通信状態管理データベース310に示すような多重リンク障害を検出した場合について説明する。
拠点ノード1100が、ホスト1104から送信されたブロードキャストフレームをポート1及びポート2の両方にブロードキャストした場合、拠点ノード1103は、受信状態にあるポート1及びポート2の両方で、2度ブロードキャストフレームを受信することになる。
上述の問題を解決するために、拠点ノード1103は、多重リンク障害検出時に、仮想ポート設定テーブル312に設定された2つのポートの一方でのみブロードキャストフレームを受信し、他方で受信したブロードキャストフレームを廃棄する。
例えば、仮想ポート設定テーブル312に設定されたポートのいずれか一方に入力されたブロードキャストフレームについては、受信を許可して転送処理を行い、それ以外のポートに入力されたブロードキャストフレームについては、廃棄する。
受信を許可するポートとしては、通信状態管理データベース310において、キープアライブフレームの未着状態が最も少ないポートもしくはポート番号が最小のポートなどを用いれば良い。
ただし、ブロードキャストフレームの受信を許可するポートで、キープアライブフレームが未着状態となっている相手ノード及びアドレス管理データベース1200でその相手ノードに関連付けられている全てのホストから送信されるブロードキャストフレームは、受信を許可しないポートにしか入力されないため、そのような相手ノード及びホストから送信されるブロードキャストフレームについては、受信を許可しないポートでの受信を許可して、転送処理を行う。
例えば、図10の拠点ノード100が、図24の通信状態管理データベース2400に示すような多重リンク障害を検出した場合における上記の処理について説明する。
拠点ノード100は、ポート1でのみブロードキャストフレームの受信を許可して転送処理を行い、ポート2で受信したブロードキャストフレームを廃棄する
ただし、拠点ノード101とアドレス管理データベース1200で拠点ノード101に関連付けられたホストから送信されたブロードキャストフレームについては、ポート2での受信を許可して、転送処理を行う。
以上のように、互いに通信を行う拠点ノードが、3つ以上存在するような場合においても、高い信頼性を有する通信システムを提供することができる。
(第4の実施例)
本発明の第4の実施例について図面を参照して詳細に説明する。
第4の実施例では、拠点ノードとホストの間にルータを配置することにより、ネットワーク管理者がアドレス管理データベースを設定する負荷を軽減する方法を述べる。
(通信システムの構成)
図14は、第4の実施例における通信システムの構成を示している。
第4の実施例における通信システムの構成は、拠点ノード100、101、1000とホスト104、105、1001の間に、それぞれルータ1400、1401、1402が配置されている点で、第3の実施例と異なる。
本実施例では、拠点ノードとルータは、それぞれ個別の装置となっているが、拠点ノードがルータの機能を内蔵していても良い。
第4の実施例では、ホストから送信されたイーサネット(R)フレームの送信元MACアドレスは、ルータによってルータのMACアドレスに変更されて転送されるため、第3の実施例のように、相手ノードに接続された全てのホストを管理する必要はなく、相手ノードに接続されたルータのみを管理すれば良い。
(拠点ノードの構成)
図15は、図14の拠点ノード100及び拠点ノード101及び拠点ノード1000の構成を示すブロック図である。
第4の実施例における拠点ノードの構成は、キープアライブフレーム解析部308がアドレス管理データベース1200を制御する点で、第3の実施例と異なる。
キープアライブフレーム解析部308は、アドレス管理データベース1200によって、相手ノードと相手ノードに接続されたルータの対応関係を管理する。このため、拠点ノードのアドレス管理データベース1200には、第3の実施例とは異なり、相手ノード情報としての相手ノードのMACアドレスに対して、ルータのノード識別子であるMACアドレスが設定される。
(動作の説明)
第4の実施例における動作は、第3の実施例における動作と基本的に同一であるため、相違点のみを以下に記述する。
まず、拠点ノード100が、アドレス管理データベース1200を作成する手順について説明する。
拠点ノード100は、キープアライブフレームを送受信することにより、アドレス管理データベース1200を作成する。
(キープアライブフレームの送信)
最初に、拠点ノード100が、キープアライブフレームを送信する手順を述べる。
本実施例では、拠点ノード100のキープアライブフレーム送信部314が、キープアライブフレームのペイロードにルータ1400のMACアドレスを格納して、キープアライブフレームを送信し、拠点ノード100に接続されたルータ1400のMACアドレスを相手ノードに通知する。
拠点ノード100に接続されたルータ1400のMACアドレスについては、ネットワーク管理者が手動で設定しても良いし、拠点ノード100がルータ1400より受信したイーサネット(R)フレームを参照するなどして、ルータ1400のMACアドレスを自動的に設定するようにしても良い。
(キープアライブフレームの受信)
ここでは、拠点ノードが、キープアライブフレームを受信して、アドレス管理データベース1200を作成する手順を述べる。
キープアライブフレーム解析部308は、受信したキープアライブフレームの送信元ノードのMACアドレスとキープアライブフレームのペイロードに格納されたルータのMACアドレスの対応関係をアドレス管理データベース1200に登録する。
キープアライブフレームの送信元ノードに関する情報が、アドレス管理データベース1200に既に存在する場合は、アドレス管理データベース1200に登録されているルータのMACアドレスとキープアライブフレームのペイロードに格納されたルータのMACアドレスを比較する。
両者のMACアドレスが異なっていれば、アドレス管理データベース1200に登録されているルータのMACアドレスをキープアライブフレームに格納されているルータのMACアドレスに置換する。
図29に示すアドレス管理データベース1200は、キープアライブフレームを送受信することによって作成された拠点100のアドレス管理データベースの例である。
図29のアドレス管理データベース1200を参照することによって、ルータ1401が拠点ノード101に接続され、ルータ1402が拠点ノード1000に接続されていることが分かる。
以上のように、キープアライブフレームのペイロードにルータのMACアドレスを格納したキープアライブフレームを送受信することによって、アドレス管理データベース1200を作成することができる。
第4の実施例では、第3の実施例のように、相手ノードに接続された全てのホストのMACアドレスと相手ノードのMACアドレスの対応関係を管理する必要はなく、相手ノードに接続されたルータのMACアドレスと相手ノードのMACアドレスの対応関係のみを管理すれば良いため、拠点ノードに求められる性能やネットワーク管理者が設定を行う負荷を大幅に軽減することができる。拠点ノードに接続されるホストの数が多数の場合には特にその効果が大である。
また、本実施例のように、キープアライブフレームの送受信によって自動的にアドレス管理データベース1200を作成せずに、相手ノードに接続されたルータと相手ノードの対応関係を、ネットワーク管理者が手動でアドレス管理データベース1200に登録しても良い。
(第5の実施例)
本発明の第5の実施例について図面を参照して詳細に説明する。
第5の実施例では、拠点ノードがラーニングフレームを送受信することにより、アドレス管理データベースを自動的に作成する方法について述べる。
(通信システムの構成)
第5の実施例における通信システムの構成は、図10に示した第3の実施例と同一であるため、説明を省略する。
(拠点ノードの構成)
図16は、図10の拠点ノード100及び拠点ノード101及び拠点ノード1000の構成を示すブロック図である。
第5の実施例は、特殊フレーム送信部313にラーニングフレームを送信するラーニングフレーム送信部1600を備える点で、第3の実施例と異なる。
また、第5の実施例は、フォワーディングデータベース制御部309がアドレス管理データベース1200を制御する点で、第3の実施例と異なる。
(動作の説明)
第5の実施例の動作は、第3の実施例と基本的に同一であるため、相違点のみを以下に述べる。
まず、拠点ノード100が、図13に示すアドレス管理データベース1200を作成する手順について説明する。
拠点ノード100は、ラーニングフレームを送受信することにより、フォワーディングデータベース制御部309が、相手ノードと相手ノードに接続されたホストの対応関係を自動的にアドレス管理データベース1200に登録する。
(ラーニングフレームの送信)
拠点ノード100が、ラーニングフレームを送信する手順について、以下に述べる。
ラーニングフレーム送信部1600は、拠点ノード100の仮想ポート設定テーブル312に登録されていないポートに接続されている全てのホストに関するラーニングフレームを後述のように生成し、仮想ポート設定テーブル312に設定されているポートから送信する。
拠点ノード100は、ホストから送信されたイーサネット(R)フレームを初めて受信し、フォワーディングデータベース1201にそのホストの情報を新規に登録したときに、相手ノードにラーニングフレームを送信する。
次に、ラーニングフレームについて詳細に説明する。
図25に示すイーサネット(R)のフレームフォーマットを有するデータフレームを用いて、ラーニングフレームを実現する場合について説明する。
また、以下の説明と同様にして、イーサネット(R)以外のフレームフォーマットを有するデータフレームを用いて、ラーニングフレームを実現することもできる。
ラーニングフレームの宛先MACアドレス2501には、ラーニングフレームが拠点ノード100以外の拠点ノード(相手ノード)に送信されるようなMACアドレスが格納される。
例えば、各相手ノードのMACアドレスを格納して、ラーニングフレームを相手ノード毎に送信しても良いし、前述のキープアライブフレームと同様に、拠点ノードがラーニングフレームとして認識可能で、通信媒体106〜107を構成する中継ノードにおいてブロードキャストと同等の効果が得られるようなMACアドレスを用いても良い。
ラーニングフレームの送信元ノードMACアドレス2502には、ラーニングフレームを送信する拠点ノード100のMACアドレスが格納される。
ラーニングフレームのイーサネット(R)属性情報2503には、ラーニングフレームのデータ長もしくはタイプ値が格納される。
ラーニングフレームのペイロード2504には、ラーニングフレームを送信する拠点ノード100に接続されている全てのホストのMACアドレスが格納される。
ホストの数が多いために、ペイロードに全てのホストのMACアドレスを格納できない場合は、ラーニングフレームを複数回に分けて送信するようにすれば良い。
また、ラーニングフレームの送信元ノードMACアドレス2502に、ホストのMACアドレスを格納し、ラーニングフレームのペイロード2504に拠点ノード100のMACアドレスを格納して、ホストの数だけラーニングフレームを送信するような方法でもよい。
ラーニングフレームのFCS2505には、所定の計算方法によって計算された値が格納される。
(ラーニングフレームの受信)
以降では、拠点ノード100が、ラーニングフレームを受信して、アドレス管理データベース1200を作成する手順について説明する。
拠点ノード100は、ラーニングフレームを受信し、ラーニングフレームの送信元MACアドレス2501とラーニングフレームのペイロード2504に格納されたMACアドレスの対応関係を、アドレス管理データベース1200に登録する。
拠点ノード100の入力ポート301−1〜3で受信されたラーニングフレームは、フレームタイプ判定部303−1〜3により、フォワーディングデータベース制御部309に転送される。
フォワーディングデータベース制御部309は、ラーニングフレームの送信元MACアドレス(相手ノードのMACアドレス)及びラーニングフレームのペイロードに格納されたMACアドレス(相手ノードに接続されたホストのMACアドレス)を抽出する。
フォワーディングデータベース制御部309は、抽出したラーニングフレームの送信元MACアドレスとホストのMACアドレスの対応関係を、アドレス管理データベース1200に登録する。
アドレス管理データベース1200に対応関係が既に登録されている場合は、その内容を更新する。
以上のように、ラーニングフレームを送受信することにより、図13に示すアドレス管理データベース1200を自動的に作成することができる。
(第6の実施例)
本発明の第6の実施例について図面を参照して詳細に説明する。
第6の実施例では、複数の仮想ポートを登録可能なポートマッピングテーブルを用いて、信頼性の高い通信システムを実現する方法について述べる。
(通信システムの構成)
第6の実施例における通信システムの構成は、図10に示した第3の実施例と同一であるため、説明を省略する。
(拠点ノードの構成)
第6の実施例の拠点ノードの構成は、図17に示すように、図12に示した第3の実施例の構成と基本的に同じであるが、ポートマッピングテーブル701と異なるポートマッピングテーブル1701を備え、複数の仮想ポートが登録される点で、第3の実施例と異なる。
ポートマッピングテーブル1701には、相手ノード毎に仮想ポートを登録することができ、それぞれの仮想ポートに対してポート番号と実ポートが登録される。また、ポートマッピングテーブル1701には、ブロードキャスト転送及びマルチキャスト転送用の仮想ポートも1つ登録される。
図18に、拠点ノード100のポートマッピングテーブル1701の一例を示す。
以下では、図18のポートマッピングテーブル1701を参照して、ポートマッピングテーブル1701の設定例について説明する。
図18においては、相手ノード情報としての、拠点ノード101と拠点ノード1000のMACアドレス及びブロードキャストMACアドレスごとに、仮想ポートと実ポートが登録されている。
拠点ノード101の仮想ポートには、ポート番号11が割り当てられ、図4に示す拠点ノード100の仮想ポート設定テーブル312に登録されているポート1及びポート2が実ポートとして登録されている。
また、図10に示す拠点ノード1000の仮想ポートには、ポート番号12が割り当てられ、ポート1及びポート2が実ポートとして登録されている。
また、ブロードキャスト転送用の仮想ポートには、ポート番号21が割り当てられ、ポート1及びポート2が実ポートとして登録されている。
(動作の説明)
(通常時のイーサネット(R)フレームの転送)
拠点ノード100が、通常時に、イーサネット(R)フレームを転送する手順について説明する。
第6の実施例において、図10の拠点ノード100が、ホスト104から送信されたホスト105宛てのイーサネット(R)フレームを転送する場合の動作については、第3の実施例と基本的に同一であるため、以下では相違点のみを説明する。
(フォワーディングデータベースの作成)
以降では、フォワーディングデータベース700を作成する手順について述べる。
本実施例では、フォワーディングデータベース700の出力ポート情報に仮想ポートを登録する場合、ポートマッピングテーブル1701で相手ノード(送信元ノード)毎に登録されたポート番号を用いる。
例えば、拠点ノード100が、仮想ポート設定テーブル312に設定されたポート2でイーサネット(R)フレームを受信した場合に、イーサネット(R)フレームの送信元の情報をフォワーディングデータベース700に登録する手順について説明する。
フォワーディングデータベース制御部309は、フォワーディングデータベース700の宛先ノード情報に、受信したイーサネット(R)フレームの送信元MACアドレスを登録する。
フォワーディングデータベース制御部309は、アドレス管理データベース1200とポートマッピングテーブル1701を参照して、受信したイーサネット(R)フレームの送信元に関連付けられた相手ノードを取得し、フォワーディングデータベース700の出力ポート情報に、取得した相手ノードの仮想ポートに割り当てられているポート番号を登録する。
図19に、拠点ノード100のフォワーディングデータベース700の一例を示す。
例えば、図19のフォワーディングデータベース700を参照して、拠点ノード100が、ホスト1001から送信されたホスト104宛てのイーサネット(R)フレームをポート2で受信した場合に、ホスト105に関する情報をフォワーディングデータベース700に登録する手順について説明する。
イーサネット(R)フレームの入力ポートであるポート2は、図4に示す拠点ノード100の仮想ポート設定テーブル312に設定されているため、フォワーディングデータベース700の出力ポート情報には、ポートマッピングテーブル1701で仮想ポートに割り当てられたポート番号が登録される。
アドレス管理データベース1200によって、ホスト1001は、拠点ノード1000に接続されているホストであることがわかるので、さらに図18のポートマッピングテーブル1701を参照して、拠点ノード1000の仮想ポートに割り当てられたポート12が、出力ポート情報に登録される。
(障害検出時のイーサネット(R)フレームの転送)
以降では、拠点ノード100が、障害を検出した場合に、イーサネット(R)フレームを転送する場合の動作について説明する。
(キープアライブフレーム未着時のイーサネット(R)フレームの転送)
最初に、キープアライブフレームの未着状態を検出した場合の動作について説明する。
ある相手ノードから送信されるキープアライブフレームの到着状態が、あるポートで未着状態になった場合、キープアライブフレーム解析部308は、ポートマッピングテーブル1701でその相手ノードの仮想ポートに登録されている実ポートから、未着状態になったポートを削除する。
例えば、図18に示す拠点ノード100のポートマッピングテーブル1701を参照して、拠点ノード101から送信されるキープアライブフレームの到着状態が、拠点ノード100のポート2で未着状態になった場合について説明する。
このとき、拠点ノード100のキープアライブフレーム解析部308は、図18のポートマッピングテーブル1701で拠点ノード101に割り当てられた仮想ポートに登録されているポート2を削除する。
したがって、拠点ノード101に割り当てられた仮想ポートにはポート1が登録される。
ある相手ノードから送信されるキープアライブフレームのあるポートへの到着状態が、未着状態から受信状態になった場合、キープアライブフレーム解析部308は、その相手ノードの仮想ポートに、受信状態になったポートを追加する。
前述の例で、拠点ノード100のポート2で、拠点ノード101のキープアライブフレームが再び受信されるようになった場合、図18に示すポートマッピングテーブル1701に登録されている拠点ノード101の仮想ポートに、ポート2が再び追加される。
また、ある相手ノードから送信されるキープアライブフレームの到着状態が、仮想ポート設定テーブル312で設定された全てのポートで未着状態になった場合、キープアライブフレーム解析部308は、通常時と同様に、相手ノードに割り当てられた仮想ポートに、仮想ポート設定テーブル312に設定された全てのポートを登録する。
または、イーサネット(R)フレームが廃棄されるような特別なポート番号を仮想ポートに登録しても良い。
ブロードキャスト転送用の仮想ポートについては、相手ノードの未着状態が全く検出されていないポートを全て登録すれば良い。
仮想ポート設定テーブル312に設定されている全てのポートで、任意の相手ノードのキープアライブフレームの未着状態が検出されるような多重リンク障害検出時は、第3の実施例と同様の動作を行う。
(リンクダウン検出時のイーサネット(R)フレームの転送)
次に、リンクダウンを検出した場合の動作について説明する。
リンクダウン検出部302−1〜3は、ポートのリンクダウンを検出した場合、ポートマッピングテーブル1701の全ての仮想ポートから、リンクダウンしたポートを削除する。
上述したように、拠点ノードは、キープアライブフレームの未着及びリンクダウンを検出し、障害を検出したポートを仮想ポートから削除することによって、障害を検出していないポートのみを用いて、通信を続行することができる。
以上のように、ポートマッピングテーブル1701に、相手ノード毎に仮想ポートを設定し、それぞれの仮想ポートに割り当てられたポート番号を用いることによって、高い信頼性を有する通信システムを実現することができる。
また、図20に示すような、拠点ノード100、101、1000が3つ以上の通信媒体106、107と中継ノード2004を有する通信媒体2010に接続された通信システムに対しても、ポートマッピングテーブル1701に登録された仮想ポートに実ポートを追加するだけで、上述の手法を適用することが可能である。
(第7の実施例)
本発明の第7の実施例について図面を参照して詳細に説明する。
第7の実施例では、中継ノードが転送するデータフレームのフレームフォーマットが、通信媒体によって異なるような通信システムにおいて、高い信頼性を実現する方法について説明する。
(通信システムの構成)
第7の実施例における通信システムの構成は、図10に示した第3の実施例と基本的に同一であるため、以下には相違点のみを記述する。
第3の実施例では、通信媒体を構成する中継ノード102、103は全て、イーサネット(R)フレームを転送するイーサネット(R)スイッチであった。
しかしながら、第7の実施例では、通信媒体106を構成する中継ノード102はイーサネット(R)スイッチであるが、通信媒体107を構成する中継ノード103はIPパケットを転送するノード(IPルータ)である点で、第3の実施例と異なる。
また、本実施例では、通信媒体106及び通信媒体107を構成する中継ノードは、それぞれIPルータ及びイーサネット(R)スイッチであるが、IPパケットまたはイーサネット(R)フレーム以外の任意のフレームフォーマットを有するデータフレームを転送するノードであっても良い。
例えば、通信媒体を構成する中継ノードとして、ATMセルを転送するATMスイッチやフレームリレーフレームを転送するフレームリレースイッチなどを用いることができる。
(拠点ノードの構成)
図21は、図10における拠点ノード100及び拠点ノード101及び拠点ノード1000の第7の実施例による構成を示すブロック図である。
第7の実施例では、拠点ノード100(拠点ノード101及び拠点ノード1000についても同様)が、データフレーム生成部2100−1〜3及びデータフレーム抽出部2101−1〜3を新たに備える点で、第3の実施例と異なる。
データフレーム生成部2101−1〜3は、IPパケットのデータグラムにイーサネット(R)フレームを格納したIPパケットを生成する。
データフレーム抽出部2100−1〜3は、受信したIPパケットのデータグラムに格納されたイーサネット(R)フレームを抽出する。
データフレーム生成部2101−1〜3及びデータフレーム抽出部2100−1〜3は、ネットワーク管理者の設定により、入力ポート301−1〜3及び出力ポート306−1〜3に接続されている通信媒体を構成する中継ノードが転送するデータフレームのフレームフォーマットを知ることができるものとする。
また、図22に示す拠点ノード100の構成ブロック図のように、拠点ノード100がIPルータ2200を内蔵する構成でも良い。
通信媒体を構成する中継ノードがATMスイッチまたはフレームリレースイッチである場合は、図22のIPルータ2200をそれぞれATMスイッチまたはフレームリレースイッチに置き換えれば良い。
(動作の説明)
以降では、図10の拠点ノード100が、ホスト104からホスト105宛てのイーサネット(R)フレームを転送する場合の動作について説明する。
(データフレームの送信)
ホスト104からホスト105宛てに送信されたイーサネット(R)フレームは、拠点ノード100のポート3で受信される。
以降の動作は、図21を参照して説明する。
拠点ノード100の入力ポート301−3(ポート3)で受信されたイーサネット(R)フレームは、フレームタイプ判定部303−3によって、フレームスイッチ304に転送される。
フレームスイッチ304は、仮想ポートに登録されたポート1とポート2のいずれか一方を、第1の実施例で述べたような特定のアルゴリズムによって選択して、そのポートに対応するフレーム転送部305−1〜3にイーサネット(R)フレームを転送する。
以降では、IPルータから構成される通信媒体107に接続されたポート2が、出力ポートとして選択された場合の動作について説明する。
(カプセル化)
フレーム転送部305−2は、データフレーム生成部2101−2にフレームスイッチ304より転送されたイーサネット(R)フレームを転送する。
データフレーム生成部2101−2は、出力ポート306−2に接続される通信媒体がIPルータにより構成される場合、フレーム転送部305−2より転送されたイーサネット(R)フレームから後述するIPパケットを生成し、出力ポート306−2から送信する。
出力ポート306−2に接続される通信媒体がイーサネット(R)スイッチにより構成される場合は、データフレーム生成部2101−2は、フレーム転送部305−2より転送されたイーサネット(R)フレームをそのまま出力ポート306−2から送信する。
ここで、図26に示すIPパケット2600のフレームフォーマットを参照して、データフレーム生成部2101−2によって生成されるIPパケットを説明する。
IPヘッダ2601の宛先IPアドレスには、ホスト105が接続されている拠点ノード101に付与されたIPアドレスが格納される。
または、拠点ノード101のポートのうち、通信媒体107に接続されているポート(ポート2)に付与されているIPアドレスが格納される。
宛先IPアドレスに格納されるIPアドレスは、図27のフォワーディングデータベース700Aに示すように、宛先MACアドレス毎にIPヘッダ情報として登録しておき、データフレーム生成部2101−2が参照できるようにしておいても良い。
また、拠点ノード100が、イーサネット(R)フレームの宛先MACアドレスとイーサネット(R)フレームを送出する実ポートに対して、IPパケットを生成するためのIPヘッダ情報が登録されたデータベースを別途用意するようにしても良い。
例えば、図33に示すように、ホスト105のMACアドレスと出力ポート306−2に対して、拠点ノード101の通信媒体107が接続されたポート(ポート2)に付与されたIPアドレス(IPヘッダ情報)が登録されているようなデータベースを用意しておけば良い。
送信元IPアドレスには、拠点100の通信媒体107が接続されたポート(ポート2)に付与されたIPアドレスまたは拠点ノード100に付与されたIPアドレスが格納される。
IPパケットのデータグラムには、フレーム転送部305−2より転送されたイーサネット(R)フレームが格納される。
IPヘッダの他のフィールドには、通信媒体107のネットワーク環境、送信するイーサネット(R)フレームの内容などの状況に合わせて、適当な値を格納する。
以上のように、データフレーム生成部2101−2は、図28に示すように、イーサネット(R)フレームにIPヘッダ2601を付加したIPパケット2600を生成する。
なお、図28に示すIPパケット2600のデータグラムに格納されたイーサネット(R)フレームには、VLANタグなどのタグが付加されていないが、タグ付きのイーサネット(R)フレームであっても良い。
通信媒体107を構成する中継ノード103が、IPパケット以外のフレームフォーマットを有するデータフレームを転送するノードの場合も、上述のIPルータの場合と同様にして、データフレームを生成すれば良い。
上述したように、ある任意のフレームフォーマットを有するデータフレームのペイロードに、別のデータフレームを格納するような処理は、一般にカプセル化と呼ばれる。
(データフレームの受信)
次に、拠点ノード100が、IPルータから構成される通信媒体107からIPパケットを受信する場合の動作について説明する。
入力ポート301−2で受信したIPパケットは、データフレーム抽出部2100−2に転送される。
データフレーム抽出部2100−2は、IPパケットの宛先IPアドレスが、入力ポート301−2に付与されたIPアドレスまたは拠点ノード100に付与されたIPアドレスと一致した場合に、IPパケットからIPヘッダを取り除いて、データグラムに格納されたイーサネット(R)フレームを抽出して、フレームタイプ判定部303−2に転送する。
なお、入力ポート301−2に接続された通信媒体がイーサネット(R)スイッチにより構成され、入力ポート301−2が、IPパケットではなく、イーサネット(R)フレームを受信するような場合、データフレーム抽出部2100−2は、受信したイーサネット(R)フレームを、そのままフレームタイプ判定部303−2に転送する。
以降の動作は、第3の実施例と同一であるため、説明を省略する。
上述したように、データフレーム(IPパケット)のペイロード(データグラム)に、イーサネット(R)フレームを格納して送信し、受信したデータフレームのペイロードに格納されたイーサネット(R)フレームを抽出することにより、通信媒体上で転送可能なデータフレームのフレームフォーマットが異なっていたとしても、通信媒体を構成する中継ノードが全てイーサネット(R)スイッチである場合と同様に、信頼性の高い通信システムを提供することができる。
(第8の実施例)
本発明の第8の実施例について図面を参照して詳細に説明する。
本実施例は、第3の実施例において、ネットワーク管理者が手動で設定を行っていた図13のアドレス管理データベース1200を、自動的に作成するための機能を提供する。
(通信システムの構成)
第8の実施例における通信システムの構成は、図10に示した第3の実施例と同一であるため、説明を省略する。
(拠点ノードの構成)
図31は、本実施例による図10の拠点ノード100及び拠点ノード101及び拠点ノード1000の構成を示すブロック図である。
第8の実施例では、拠点ノード100がVLAN識別子設定テーブル3100を新たに備える点で、第3の実施例と異なる。
VLAN識別子設定テーブル3100は、各拠点ノードのMACアドレス及びブロードキャストMACアドレスの任意の組み合わせに対して、それぞれVLAN識別子を設定するためのテーブルである。
本実施例では、VLAN識別子設定テーブル3100は、設定入力インターフェース315を用いてネットワーク管理者により手動で設定される。
または、各拠点ノードが、キープアライブフレームなどを用いて通信することによって、VLAN識別子設定テーブル3100を自動的に作成するようにしても良い。
図32に、拠点ノード100及び拠点ノード101及び拠点ノード1000のVLAN識別子設定テーブル3100の一例を示す。
図32に示すVLAN識別子設定テーブル3100では、ノード識別子1とノード識別子2に、拠点ノード100のMACアドレス及び拠点ノード101のMACアドレス及び拠点ノード1000のMACアドレス及びブロードキャストMACアドレスの任意の組み合わせが設定され、その組み合わせに対して、VLAN識別子として「1」から「6」の整数値が重複しないように割り当てられている。
例えば、図32では、拠点ノード100のMACアドレスと拠点ノード101のMACアドレスの組み合わせに対して割り当てられたVLAN識別子に、整数値「1」が設定されている。
以下では、拠点ノード100及び拠点ノード101及び拠点ノード1000のVLAN識別子設定テーブル3100が、図32のように設定されているものとして説明する。
(動作の説明)
まず、ホスト104からホスト105宛てのイーサネット(R)フレームを転送する場合の動作を説明する。
(イーサネット(R)フレームの転送の概要)
本実施例においては、拠点ノード100が、イーサネット(R)フレームの所定の位置に後述のVLANタグを付加して、イーサネット(R)フレームを送信する点で、第3の実施例と異なる。
VLANタグには、送信元の属する拠点ノード及び宛先の属する拠点ノードを識別できるようなVLAN識別子が格納される。
具体的には、VLAN識別子設定テーブル3100により、送信元(ホスト104)が属する拠点ノード100のMACアドレスと宛先(ホスト105)が属する拠点ノード101のMACアドレスの組み合わせに対して割り当てられたVLAN識別子が格納される。
VLANタグが付加されたイーサネット(R)フレームは、通信媒体106または通信媒体107を経由して、拠点ノード101のポート1またはポート2に転送される。
拠点ノード101は、受信したイーサネット(R)フレームのVLANタグに格納されたVLAN識別子及びVLAN識別子設定テーブル3100を参照することによって、送信元ホストの属する拠点ノードのMACアドレスを抽出し、送信元ホストのMACアドレスと抽出した拠点ノードのMACアドレスの対応関係を、図13のアドレス管理データベース1200に登録する。
また、拠点ノード101は、受信したイーサネット(R)フレームから、拠点ノード100で付加されたVLANタグを取り除いて、ポート3からホスト105にイーサネット(R)フレームを転送する。
上述のように、送信元ホストの属する拠点ノードと宛先ホストの属する拠点ノードの組み合わせに対して割り当てられたVLAN識別子を格納したVLANタグを付加したイーサネット(R)フレームを送受信することにより、アドレス管理データベース1200を自動的に作成することができる。
(イーサネット(R)フレームの転送、アドレス管理データベースの作成)
以降では、拠点ノード100が、VLANタグが付加されたイーサネット(R)フレームを送受信することによって、図13のアドレス管理データベース1200を作成する手順を詳細に説明する。
(イーサネット(R)フレームの送信)
最初に、拠点ノード100が、仮想ポート設定テーブル312に設定されたポートから、イーサネット(R)フレームを送信する場合の動作について説明する。
本実施例において、仮想ポート設定テーブル312に設定されたポートからイーサネット(R)フレームを送信する手順は、第3の実施例と基本的に同一であるため、相違点のみを以下に述べる。
拠点ノード100のフレームスイッチ304は、イーサネット(R)フレームの出力ポートが仮想ポート設定テーブル312に設定されたポートである場合、イーサネット(R)フレームの所定の位置にVLANタグを付加する。
図30に、VLANタグが付加されたVLANタグ付きイーサネット(R)フレーム3000のフレームフォーマットを示す。
VLANタグ3003には、VLAN識別子設定テーブル3100により、イーサネット(R)フレームの送信元ホストが属する拠点ノードのMACアドレスと宛先ホストが属する拠点ノードのMACアドレスの組み合わせに対して割り当てられたVLAN識別子が格納される。
ここで、送信元ホストが属する拠点ノードは、自ノードである。
また、宛先ホストが属する拠点ノードは、アドレス管理データベース1200により、宛先ホストに関連付けられた拠点ノードである。
宛先ホストが属する拠点ノードの情報が、アドレス管理データベース1200に存在しない場合は、送信元ホストが属する拠点ノードのMACアドレスとブロードキャストMACアドレスの組み合わせに対して割り当てられたVLAN識別子が、VLANタグ3003に格納される。
例えば、拠点ノード100が、ホスト104から送信されたホスト105宛てのイーサネット(R)フレームを、ポート1またはポート2から送信する場合に、VLANタグ3003に格納されるVLAN識別子について、図32のVLAN識別子設定テーブル3100を参照して説明する。
宛先であるホスト105の属する拠点ノード101の情報が、アドレス管理データベース1200に存在する場合は、送信元であるホスト104の属する拠点ノード(拠点ノード100)のMACアドレスと宛先であるホスト105の属する拠点ノード(拠点ノード101)のMACアドレスの組み合わせに対して割り当てられたVLAN識別子である整数値「1」が、VLANタグ3003に格納される。
ホスト105の属する拠点ノード101の情報が、アドレス管理データベース1200に存在しない場合は、送信元のホスト104の属する拠点ノード100のMACアドレスとブロードキャストMACアドレスの組み合わせに対して割り当てられたVLAN識別子である整数値「4」がVLANタグに格納される。
(イーサネット(R)フレームの受信)
次に、拠点ノード100が、仮想ポート設定テーブル312に設定されているポートで、VLANタグが付加されたイーサネット(R)フレームを受信して、アドレス管理データベース1200を自動的に作成する手順を説明する。
フレームタイプ判定部303−1〜3は、受信したイーサネット(R)フレームをフォワーディングデータベース制御部309に転送する。
また、フレームタイプ判定部303−1〜3は、受信したイーサネット(R)フレームからVLANタグを取り除いて、フレームスイッチ304に転送する。
フォワーディングデータベース制御部309は、VLAN識別子設定テーブル3100を参照して、イーサネット(R)フレームのVLANタグに格納されたVLAN識別子に対応する2つの拠点ノードのMACアドレスのうち、自ノード(拠点ノード100)のMACアドレスと異なるMACアドレス(送信元ホストの属する拠点ノードのMACアドレス)を取得する。
フォワーディングデータベース制御部309は、イーサネット(R)フレームの送信元MACアドレス(送信元ホストのMACアドレス)と取得した拠点ノードのMACアドレスの対応関係を、アドレス管理データベース1200に登録する。
送信元ホストのMACアドレスと送信元ホストの属する拠点ノードのMACアドレスの対応関係が、既にアドレス管理データベース1200に存在する場合は、その内容を更新する。
フレームスイッチ304が、受信したイーサネット(R)フレームを転送する手順は、第3の実施例と同一であるため、説明を省略する。
上述のように、拠点ノードが、VLANタグを付加してイーサネット(R)フレームを送受信することにより、アドレス管理データベース1200を自動的に作成することができる。
(キープアライブフレームによる障害検出、障害検出時のイーサネット(R)フレームの転送)
第8の実施例において、拠点ノード100がキープアライブフレームを送受信することによって障害を検出する手順と、障害検出時にイーサネット(R)フレームを転送する手順は、通常時にイーサネット(R)フレームを転送する手順で述べたように、拠点ノード100がVLANタグを付加してイーサネット(R)フレームを送信する点を除いては、第3の実施例と同一であるため、説明を省略する。
(多重リンク障害検出時のブロードキャストフレーム及びマルチキャストフレーム及びunknownユニキャストフレームの転送)
以降では、拠点ノード100が、多重リンク障害検出時に、ブロードキャストフレームまたはマルチキャストフレームまたはフォワーディングデータベース1201に宛先の情報が登録されていないユニキャストフレーム(unknownユニキャストフレーム)を転送する場合の動作を説明する。
以下では、ブロードキャストフレームを転送する場合の動作について説明するが、マルチキャストフレーム及びunknownユニキャストフレームの場合の動作についてもブロードキャストフレームと同様である。
最初に、多重リンク障害検出時に、ブロードキャストフレームを送信する手順を述べる。
拠点ノード100は、多重リンク障害検出時に、ブロードキャストフレームを送信する場合、第3の実施例と同様に、仮想ポート設定テーブル312に設定された全ての実ポートから、ブロードキャストフレームを送信する。
拠点ノード100は、通常時にイーサネット(R)フレームを転送する手順で述べたように、VLAN識別子設定テーブル3100により、拠点ノード100のMACアドレスとブロードキャストMACアドレスの組み合わせに対して割り当てられたVLAN識別子が格納されたVLANタグを付加して、ブロードキャストフレームを送信する。
例えば、図32の例では、VLAN識別子設定テーブル3100の拠点ノード100のMACアドレスとブロードキャストMACアドレスの組み合わせに対して割り当てられたVLAN識別子である整数値「4」がVLANタグとして付加される。
このように、仮想ポート設定テーブル312に設定された全てのポートから、ブロードキャストフレームを送信することにより、多重リンク障害検出時においても、全ての相手ノードにイーサネット(R)フレームを転送することができる。
次に、ブロードキャストフレームを受信する手順を述べる。
第3の実施例でも述べたように、多重リンク障害を検出している拠点ノードは、仮想ポート設定テーブル312に登録されたポートで、相手ノードにおいてブロードキャスト転送されたイーサネット(R)フレームを複数回受信してしまう可能性がある。
そのため、多重リンク障害検出時は、仮想ポート設定テーブル312で設定されたポートのうちの1つのポートでのみ、ブロードキャストフレームの受信を許可し、それ以外のポートではブロードキャストフレームを廃棄することによって、同一のイーサネット(R)フレームを複数回受信することを防止する。
このとき、拠点ノード100は、相手ノードにおいてブロードキャスト転送されたイーサネット(R)フレームとユニキャスト転送されたイーサネット(R)フレームを識別し、ブロードキャスト転送されたイーサネット(R)フレームのみに対して、上述の処理を行う必要がある。
拠点ノード100は、受信したイーサネット(R)フレームの宛先MACアドレスを参照することによって、ユニキャストフレーム及びブロードキャストフレーム及びマルチキャストフレームを識別することができるため、ブロードキャストフレーム及びマルチキャストフレームについては、上述の処理を行うことができる。
しかしながら、拠点ノード100は、受信したイーサネット(R)フレームがユニキャストフレームである場合、そのユニキャストフレームが相手ノードにおいてブロードキャスト転送されたunknownユニキャストフレームであるのか、それともユニキャスト転送されたイーサネット(R)フレームであるのかを識別することはできないという問題がある。
本実施例では、この問題を解決するために、拠点ノード100は、受信したイーサネット(R)フレームのVLANタグに格納されたVLAN識別子を参照して、イーサネット(R)フレームの種類を識別する。
拠点ノード100は、受信したイーサネット(R)フレームのVLANタグに格納されたVLAN識別子が、任意の拠点ノードのMACアドレスとブロードキャストMACアドレスの組み合わせに対して割り当てられたVLAN識別子であった場合、受信したイーサネット(R)フレームがブロードキャストフレームまたはマルチキャストフレームまたはunknownユニキャストフレームのいずれかであると判断して、受信したイーサネット(R)フレームに対して上述の処理を行う。
受信を許可するポートは、第3の実施例で述べたのと同様にして決定すれば良い。
上述のように、VLANタグを参照することによって、unknownユニキャストフレームのような、宛先MACアドレスを参照しただけでは、相手ノードでブロードキャスト転送されたのか否かを判断できないイーサネット(R)フレームを、複数回受信してしまうことを防止することができる。
(第9の実施例)
本発明の第9の実施例について図面を参照して詳細に説明する。
第9の実施例では、拠点ノードから送信されるキープアライブフレームが、通信媒体を転送される仕組みについて説明する。
(通信システムの構成)
図34に、第9の実施例による通信システムの構成を示す。
第9の実施例における通信システムでは、通信媒体106及び通信媒体107を構成する中継ノード(エッジノード3400−1〜6及びコアノード3401−1〜5)が、後述する拡張タグに格納されたノード識別子及び後述するブロードキャストフォワーディングデータベースに登録された出力ポート情報に基づいて、ブロードキャストフレーム及びunknownユニキャストフレームをブロードキャスト転送する。
通信媒体106は、中継ノードである、エッジノード3400−1〜3、コアノード3401−1から構成され、通信媒体107は、中継ノードである、エッジノード3400−4〜6、コアノード3401−2〜5からなる。
エッジノード3400−1〜6は、通信媒体106〜107を構成する中継ノードのうち、拠点ノード100〜101及び拠点ノード1000に接続される中継ノードであり、拠点ノード100〜101及び拠点ノード1000より受信したブロードキャストフレームに拡張タグを付加し、拡張タグに格納されたノード識別子及びブロードキャストフォワーディングデータベースを参照して、拡張タグ付きブロードキャストフレームを転送する。
コアノード3401−1〜5は、エッジノード3400−1〜6以外の中継ノードであり、拡張タグに格納されたノード識別子及びブロードキャストフォワーディングデータベースを参照して、拡張タグ付きブロードキャストフレームを転送する。
図34に示す第9の実施例の通信システムは、3つの拠点ノードを有する通信システムであるが、第1及び第2の実施例のように、2つの拠点ノードを有する通信システムであっても良いし、3つ以上の拠点ノードを有する通信システムであっても良い。
(拠点ノードの構成)
第9の実施例における拠点ノードの構成及び動作は、第3の実施例と同一であるため、説明を省略する。
第1の実施例でも述べたように、キープアライブフレームは、通信媒体106〜107を構成する中継ノードによってunknownユニキャストフレームと認識され、通信媒体106〜107をブロードキャスト転送されて、全ての拠点ノードに転送される。
以下に、通信媒体106〜107を構成する中継ノードが、拡張タグ付きブロードキャストフレームを用いて、ブロードキャストフレーム及びunknownユニキャストフレーム(キープアライブフレーム)を転送する手順について説明する。
以降では、ブロードキャスト転送の例として、通信媒体106を構成するエッジノード3400−1〜3及びコアノード3401−1が、拠点ノード100より受信したブロードキャストフレームをブロードキャスト転送する場合の動作について説明する。
なお、キープアライブフレームのようなunknownユニキャストフレームについても、以下に述べる方法を用いて、ブロードキャストフレームと同様にして、ブロードキャスト転送することができる。
エッジノード3400−1は、拠点ノード100よりブロードキャストフレームを受信すると、エッジノード3400−1のノード識別子を格納した拡張タグをブロードキャストフレームに付加する。
例えば、拡張タグを付加したイーサネット(R)フレームの一例としてVLANタグ付きイーサネット(R)フレームを利用することができる。図30に、拡張タグ付きイーサネット(R)フレームとしてVLANタグ付きイーサネット(R)フレームを用いた場合の拡張タグ付きブロードキャストフレームのフレームフォーマットを示す。
エッジノード3400−1は、拡張タグ付きブロードキャストフレームの拡張タグに格納されたノード識別子(エッジノード3400−1のノード識別子)を識別し、図34のエッジノード3400−1に備えられるブロードキャストフォワーディングデータベース3402−1において、エッジノード3400−1のノード識別子に対して登録されている出力ポート情報を取得する。
ここで、図34に示すブロードキャストフォワーディングデータベース3402−1〜4について詳細に説明する。
ブロードキャストフォワーディングデータベース3402−1〜4は、エッジノード3400−1〜3のノード識別子に対する出力ポート情報を登録するためのデータベースである。
簡単のため、ブロードキャストフォワーディングデータベース3402−1〜4には、エッジノード3400−1のノード識別子に対する出力ポート情報のみを記載してある。
ブロードキャストフォワーディングデータベース3402−1〜4に登録される出力ポート情報は、以下のようにして決定される。
エッジノード3400−1からのブロードキャスト転送経路が、スパニングツリープロトコル(STP)を用いて決定される。
すなわち、エッジノード3400−1がルートノードとなるスパニングツリーのアクティブリンクに沿って下流に向かう経路が、エッジノード3400−1からのブロードキャスト経路となる。
図34の通信媒体106を構成する中継ノード間に描かれた太線の矢印は、エッジノード3400−1からのブロードキャスト転送経路の例を示している。
なお、図示していないが、上述のエッジノード3400−1からのブロードキャスト転送経路と同様に、図34の通信媒体106及び通信媒体107に属する全てのエッジノード(エッジノード3400−2〜6)からのブロードキャスト転送経路がそれぞれ設定されている。
以上のように、エッジノード3400−1からのブロードキャスト転送経路は、エッジノード3400−1がルートノードとなるスパニングツリーで決まるため、ブロードキャストフォワーディングデータベース3402−1〜3のエッジノード3400−1に対する出力ポート情報は、そのスパニングツリーの情報を用いて、ブロッキング状態以外のポートで決定される。
ブロードキャストフォワーディングデータベース3402−1〜4のエッジノード3400−2及びエッジノード3400−3のノード識別子に対する出力ポート情報についても、エッジノード3400−1の場合と同様にして決定される。
エッジノード3400−1は、ブロードキャストフォワーディングデータベース3402−1を参照して、拡張タグにエッジノード3400−1のノード識別子が格納されたブロードキャストフレームの出力ポートが、ポート2及びポート3であるという情報を取得して、ポート2及びポート3に拡張タグ付きブロードキャストフレームを送出する。
コアノード3401−1は、エッジノード3400−1より拡張タグ付きブロードキャストフレームを受信すると、拡張タグに格納されたノード識別子(エッジノード3400−1のノード識別子)を取得し、ブロードキャストフォワーディングデータベース3402−2のそのノード識別子に対する出力ポート情報を参照して、拡張タグ付きブロードキャストフレームの出力ポートがポート3であるという情報を取得して、ポート3に拡張タグ付きブロードキャストフレームを送出する。
エッジノード3400−2は、コアノード3401−1より拡張タグ付きブロードキャストフレームを受信すると、拡張タグに格納されたノード識別子及びブロードキャストフォワーディングデータベース3400−3を参照して、拡張タグ付きブロードキャストフレームの出力ポート情報として「END」という識別子を取得する。
エッジノード3400−2は、出力ポート情報が「END」という識別子であった場合、ブロードキャストフレームに付加された拡張タグを削除して、通常のブロードキャストフレームに変換する。
エッジノード3400−2は、入力ポート(ポート1)及び他の中継ノードが接続されているポート(ポート1及びポート2)以外の全てのポート(ポート3)に、拡張タグが削除されたブロードキャストフレームをブロードキャスト転送する。
エッジノード3400−3は、エッジノード3400−2と同様に、拡張タグに格納されたノード識別子及びブロードキャストフォワーディングデータベース3403−4を参照して、「END」という出力ポート情報を取得して、入力ポート(ポート1)及び他の中継ノードが接続されているポート(ポート1〜3)以外の全てのポート(ポート4)に、拡張タグを削除したブロードキャストフレームをブロードキャスト転送する。
以上のように、通信媒体106〜107を構成する中継ノードが、拡張タグ付きブロードキャストフレームを用いて、ブロードキャストフレーム及びキープアライブフレームのようなunknownユニキャストフレームをブロードキャスト転送することができる。
なお、図34に示す通信システムは、拠点ノード間に存在する全ての通信媒体(通信媒体106及び通信媒体107)が、拡張タグ付きブロードキャストフレームを用いてブロードキャスト転送を行う通信システムの例であるが、拠点ノード間に存在する一部の通信媒体のみが、拡張タグ付きブロードキャストフレームを用いてブロードキャスト転送を行う通信システムに対しても、上記と同様に、本発明を適用することができる。
上述の方法を用いて、ブロードキャストフレームをブロードキャスト転送した場合、従来のブロードキャスト転送に対して、以下に述べるような利点が得られる。
エッジノード3400−1〜6から送信されるブロードキャストフレームは、それぞれの各エッジノードがルートノードとなるスパニングツリーのアクティブリンクに沿って下流に向かってブロードキャスト転送されるため、最短経路を用いてブロードキャストフレームを転送することができる。
また、コアノード3401−1〜5は、従来のようにフォワーディングデータベースのMACアドレス検索が必要なくなり、拡張タグに格納されたノード識別子に基づいて出力ポートを決定することができるため、ブロードキャストフレームを高速に転送することができる。
本発明による通信システムでは、拠点ノードの各構成要素をハードウェア的に実現することは勿論として、プログラム制御可能なコンピュータ処理装置(CPU)上で、拠点ノードの機能を実現する通信制御プログラム(アプリケーション)をロードして実行することにより、上記各構成要素の機能をソフトウェア的に実現し、以下に述べる処理を実行するシステムとして提供することができる。このタ通信制御は、磁気ディスク、半導体メモリその他の記録媒体に格納され、その記録媒体からコンピュータ処理装置にロードされ、コンピュータ処理装置の動作を制御することにより、拠点ノードとしての機能を実現する。
以上好ましい実施例をあげて本発明を説明したが、本発明は必ずしも上記実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
本発明の通信システムによれば、以下に述べるような効果が達成される。
第1の効果は、通信を行っている2つの拠点ノードが接続されている複数の通信媒体に、1つ以上の中継ノードが含まれるような多様なトポロジーを有するネットワークに対して適用可能な、高い信頼性を実現する手段を提供できることである。
その理由は、拠点ノードが、複数の通信媒体を1つのノードと仮想することができるからである。
第2の効果は、障害が発生しても、通信を続行することができる高い信頼性を有する通信システムを提供できることである。
その理由は、キープアライブフレームの送受信することによって障害を検出し、障害を検出していない通信経路のみを用いて通信を続行することができるからである。
第3の効果は、輻輳の発生を抑制することができることである。
その理由は、複数の通信経路を用いて通信することによって、通信帯域を拡大することができるからである。
第4の効果は、設定が簡便であり、設定を誤る確率を軽減することができることである。
その理由は、特定の宛先アドレスを有するキープアライブフレームを用いるため、相手ノード毎に宛先アドレスを設定する必要がないからである。
第5の効果は、相手ノードの数が増大しても、装置の負荷が急激に増大しないということである。
その理由は、キープアライブフレームが中継ノードにおいてブロードキャストされるため、相手ノード毎にキープアライブフレームを送信する必要がないからである。
【図1】

【図2】

【図3】

【図4】

【図5】

【図6】

【図7】

【図8】

【図9】

【図10】

【図11】

【図12】

【図13】

【図14】

【図15】

【図16】

【図17】

【図18】

【図19】

【図20】

【図21】

【図22】

【図23】

【図24】

【図25】

【図26】

【図27】

【図28】

【図29】

【図30】

【図31】

【図32】

【図33】

【図34】


【特許請求の範囲】
【請求項1】
複数の拠点ノードが1つ以上の中継ノードから構成される複数の通信媒体を介して通信を行う通信システムであって、
前記拠点ノードが、前記拠点ノードに属するポートのうち、前記複数の通信媒体に接続された複数のポートを1つの仮想ポートとして扱うことにより、前記複数の通信媒体を1つのノードと仮想する仮想化部を備えることを特徴とする通信システム。
【請求項2】
3つ以上の前記拠点ノードが、1つ以上の中継ノードから構成される複数の通信媒体を介して互いに接続されることを特徴とする請求項1に記載の通信システム。
【請求項3】
前記仮想化部が、ある送信元から送信されたデータフレームを所定の宛先に転送するためのフォワーディング情報を、1つの宛先に対して複数個登録するフォワーディングデータベースを備えることを特徴とする請求項1または請求項2に記載の通信システム。
【請求項4】
前記仮想化部が、前記拠点ノードの1つ以上のポートを1つの仮想ポートに対応付けるポートマッピングテーブルと、ある送信元から送信されたデータフレームを所定の宛先に転送するためのフォワーディング情報に1つ以上の前記仮想ポートを登録するフォワーディングデータベースとを備えることを特徴とする請求項1または請求項2に記載の通信システム。
【請求項5】
前記複数の通信媒体を構成する中継ノードが、OSI(Open Systems Interconnection)ネットワークモデルの第2層のデータフレームを転送するノードであることを特徴とする請求項1から請求項4の何れか1項に記載の通信システム。
【請求項6】
前記データフレームが、イーサネット(R)のフレームフォーマットを有するイーサネット(R)フレーム、ATMのフレームフォーマットを有するデータフレーム(ATMセル)、またはフレームリレーのフレームフォーマットを有するデータフレーム(フレームリレーフレーム)、またはFDDIのフレームフォーマットを有するデータフレームのいずれかであることを特徴とする請求項5に記載の通信システム。
【請求項7】
少なくとも1つの前記通信媒体を転送されるデータフレームのフレームフォーマットが、他の前記通信媒体を転送されるデータフレームのフレームフォーマットと異なることを特徴とする請求項1から請求項4の何れか1項に記載の通信システム。
【請求項8】
前記複数の通信媒体のうち、任意の通信媒体において転送されるデータフレームのフレームフォーマットが、イーサネット(R)、IP(Internet Protocol)、ATM、フレームリレー、FDDIのフレームフォーマットの任意の組み合わせであることを特徴とする請求項7に記載の通信システム。
【請求項9】
前記拠点ノードが、フレームフォーマットの異なる前記通信媒体にデータフレームを送信する場合、前記通信媒体のフレームフォーマットのヘッダ情報を前記データフレームに付加して送信し、前記通信媒体からデータフレームを受信する場合、前記通信媒体のフレームフォーマットのヘッダ情報を前記データフレームから外して受信することを特徴とする請求項7または請求項8に記載の通信システム。
【請求項10】
前記拠点ノードと前記複数の通信媒体を接続するリンクが、イーサネット(R)、ATM、フレームリレー、ADSL、アナログ・ダイヤルアップ回線、ISDN、FTTH、CATVのいずれか、またはそれらの任意の組み合わせであることを特徴とする請求項1から請求項9の何れか1項に記載の通信システム。
【請求項11】
前記拠点ノードと前記通信媒体を接続するリンクが、任意のリンク速度を有することを特徴とする請求項1から請求項10の何れか1項に記載の通信システム。
【請求項12】
複数の前記拠点ノードが、キープアライブフレームを相互に送受信することにより、通信システムの通信状態を取得することを特徴とする請求項1から請求項11の何れか1項に記載の通信システム。
【請求項13】
前記キープアライブフレームが、前記複数の通信媒体を構成する前記中継ノードにおいてブロードキャストされることを特徴とする請求項12に記載の通信システム。
【請求項14】
前記キープアライブフレームが、前記複数の通信媒体を構成する前記中継ノードにおいてunknownユニキャストフレームとして認識される宛先アドレスを有することを特徴とする請求項13に記載の通信システム。
【請求項15】
前記拠点ノードが、前記キープアライブフレームに記載された情報又は前記キープアライブフレームの到着状態から、あるいはその双方から通信システムの通信状態を取得することを特徴とする請求項12から請求項14の何れか1項に記載の通信システム。
【請求項16】
前記通信システムの通信状態が、障害、通信帯域、遅延のいずれか、またはそれらの任意の組み合わせであることを特徴とする請求項12から請求項15の何れか1項に記載の通信システム。
【請求項17】
前記拠点ノードが、所定のアルゴリズムに基づいて、データフレームを出力するポートを決定することを特徴とする請求項1から請求項16の何れか1項に記載の通信システム。
【請求項18】
前記アルゴリズムが、ラウンドロビンまたは重み付けラウンドロビンによりデータフレームを出力するポートを決定する方式、データフレームのヘッダ情報に基づいて、データフレームを出力するポートを決定する方式、データフレームのペイロードに記載された内容に基づいて、データフレームを出力するポートを決定する方式の何れかであることを特徴とする請求項17に記載の通信システム。
【請求項19】
前記アルゴリズムが重み付けラウンドロビンである場合に、前記拠点ノードに属するポートであって、前記通信媒体に接続されているポートが、データフレームを出力するポートとして選択される確率が、前記通信媒体と前記ポートを接続するリンクのリンク速度により決定されることを特徴とする請求項18に記載の通信システム。
【請求項20】
前記アルゴリズムが重み付けラウンドロビンである場合に、前記拠点ノードに属するポートであって、前記通信媒体に接続されているポートが、データフレームを出力するポートとして選択される確率が、前記通信システムの通信状態により決定されることを特徴とする請求項18に記載の通信システム。
【請求項21】
前記アルゴリズムが、データフレームのヘッダ情報と、データフレームのペイロードに記載された内容とに基づいて、データフレームを出力するポートを決定する方式であることを特徴とする請求項17に記載の通信システム。
【請求項22】
前記拠点ノードが、前記通信システムの通信状態に基づいて、データフレームを出力するポートを決定することを特徴とする請求項12から請求項16の何れか1項に記載の通信システム。
【請求項23】
前記拠点ノードが、前記通信システムの通信状態に基づいて、前記フォワーディングデータベースを変更することを特徴とする請求項12から請求項16の何れか1項に記載の通信システム。
【請求項24】
前記拠点ノードが、通信相手の前記拠点ノードに属するポートのうち、前記通信媒体に接続されていないポートに直接もしくは1つ以上のノードを介して接続されている全てのホストと、通信相手の前記拠点ノードとの対応関係を管理するアドレス管理データベースを備え、前記通信システムの通信状態に基づいて、前記フォワーディングデータベースの出力ポート情報に登録されている仮想ポートを変更することを特徴とする請求項12から請求項16の何れか1項に記載の通信システム。
【請求項25】
前記拠点ノードが、前記通信システムの通信状態に基づいて、前記ポートマッピングテーブルを変更することを特徴とする請求項12から請求項16の何れか1項に記載の通信システム。
【請求項26】
前記拠点ノードが、障害の発生箇所又は発生している障害の数あるいはその双方に基づいて、データフレームを出力するポートを決定することを特徴とする請求項12から請求項16の何れか1項に記載の通信システム。
【請求項27】
前記拠点ノードが、データフレームのユニキャスト転送、ブロードキャスト転送及びマルチキャスト転送を含む転送方法の種類に基づいて、データフレームを出力するポートを決定することを特徴とする請求項26に記載の通信システム。
【請求項28】
前記拠点ノードが、前記複数の通信媒体より同一のデータフレームを複数回受信することを防止するフィルタリング機構を備えたことを特徴とする請求項12から請求項16の何れか1項に記載の通信システム。
【請求項29】
前記拠点ノードが、障害の回復を検出した場合に、高い優先度を有するデータフレームを優先して転送し、あるいは、低い優先度を有するデータフレームの通信帯域を制限して転送することを特徴とする請求項12から請求項16の何れか1項に記載の通信システム。
【請求項30】
前記拠点ノードが、前記拠点ノードに属するポートの通信状態に基づいて、データフレームを出力するポートを決定することを特徴とする請求項1から請求項11の何れか1項に記載の通信システム。
【請求項31】
前記拠点ノードが、前記拠点ノードに属するポートの通信状態に基づいて、前記フォワーディングデータベースを変更することを特徴とする請求項1から請求項11の何れか1項に記載の通信システム。
【請求項32】
前記拠点ノードが、前記拠点ノードに属するポートの通信状態に基づいて、前記ポートマッピングテーブルを変更することを特徴とする請求項1から請求項11の何れか1項に記載の通信システム。
【請求項33】
前記拠点ノードが、通信相手の前記拠点ノードに属するポートのうち、前記通信媒体に接続されていないポートに直接または1つ以上のノードを介して接続されたホストと前記通信相手の拠点ノードの対応関係を管理するアドレス管理データベースを備えることを特徴とする請求項1から請求項11の何れか1項に記載の通信システム。
【請求項34】
前記拠点ノードが、通信相手の前記拠点ノードに属するポートのうち、前記通信媒体に接続されていないポートに接続されたルータと前記通信相手の拠点ノードの対応関係を管理するアドレス管理データベースを備えることを特徴とする請求項1から請求項11の何れか1項に記載の通信システム。
【請求項35】
前記拠点ノードが、ラーニングフレームを送受信することにより、前記アドレス管理データベースを作成することを特徴とする請求項24に記載の通信システム。
【請求項36】
前記拠点ノードが、ペイロードに前記拠点ノードに接続されたルータのノード識別子が格納されたデータフレームを送受信し、前記拠点ノードに接続されたルータのノード識別子を相互に通知することにより、前記アドレス管理データベースを作成することを特徴とする請求項1から請求項11の何れか1項に記載の通信システム。
【請求項37】
前記拠点ノードが、送信元の属する前記拠点ノードと宛先の属する前記拠点ノードの組み合わせに対して割り当てられたVLAN識別子を格納したVLANタグを付加したイーサネット(R)フレームを送受信することにより、前記アドレス管理データベースを作成することを特徴とする請求項24に記載の通信システム。
【請求項38】
前記VLAN識別子が、送信元が属する前記拠点ノードのノード識別子及び宛先が属する前記拠点ノードのノード識別子を所定の演算を行うことにより計算されることを特徴とする請求項37に記載の通信システム。
【請求項39】
前記通信媒体を構成する中継ノードが、拡張タグ付きブロードキャストフレームを用いて、ブロードキャストフレーム及びキープアライブフレームを含むデータフレームをブロードキャスト転送することを特徴とする請求項1から請求項38に記載の通信システム。
【請求項40】
通信システムにおいて1つ以上の中継ノードから構成される複数の通信媒体を介して互いに通信を行う拠点となるノードであって、
前記拠点となるノードに属するポートのうち、前記複数の通信媒体に接続された複数のポートを1つの仮想ポートとして扱うことにより、前記複数の通信媒体を1つのノードと仮想する仮想化部を備えることを特徴とする拠点ノード。
【請求項41】
前記仮想化部が、ある送信元から送信されたデータフレームを所定の宛先に転送するためのフォワーディング情報を、1つの宛先に対して複数個登録するフォワーディングデータベースを備えることを特徴とする請求項40に記載の拠点ノード。
【請求項42】
前記仮想化部が、前記拠点ノードの1つ以上のポートを1つの仮想ポートに対応付けるポートマッピングテーブルと、ある送信元から送信されたデータフレームを所定の宛先に転送するためのフォワーディング情報に1つ以上の前記仮想ポートを登録するフォワーディングデータベースとを備えることを特徴とする請求項40に記載の拠点ノード。
【請求項43】
少なくとも1つの前記通信媒体を転送されるデータフレームのフレームフォーマットが、他の前記通信媒体を転送されるデータフレームのフレームフォーマットと異なることを特徴とする請求項40から請求項42の何れか1項に記載の拠点ノード。
【請求項44】
フレームフォーマットの異なる前記通信媒体にデータフレームを送信する場合、前記通信媒体のフレームフォーマットのヘッダ情報を前記データフレームに付加して送信し、前記通信媒体からデータフレームを受信する場合、前記通信媒体のフレームフォーマットのヘッダ情報を前記データフレームから外して受信することを特徴とする請求項43に記載の拠点ノード。
【請求項45】
前記複数の通信媒体と接続するリンクが、イーサネット(R)、ATM、フレームリレー、ADSL、アナログ・ダイヤルアップ回線、ISDN、FTTH、CATVのいずれか、またはそれらの任意の組み合わせであることを特徴とする請求項40から請求項44の何れか1項に記載の拠点ノード。
【請求項46】
キープアライブフレームを相互に送受信することにより、通信システムの通信状態を取得することを特徴とする請求項40から請求項45の何れか1項に記載の拠点ノード。
【請求項47】
前記キープアライブフレームに、前記複数の通信媒体を構成する前記中継ノードにおいて未知と認識される宛先アドレスを記載し、前記複数の通信媒体を構成する前記中継ノードにおいてブロードキャストさせることを特徴とする請求項46に記載の拠点ノード。
【請求項48】
前記キープアライブフレームに記載された情報、又は前記キープアライブフレームの到着状態から、あるいはその双方から通信システムの通信状態を取得することを特徴とする請求項46又は請求項47に記載の拠点ノード。
【請求項49】
前記通信システムの通信状態が、障害、通信帯域の変動、遅延のいずれか、またはそれらの任意の組み合わせであることを特徴とする請求項46から請求項48の何れか1項に記載の拠点ノード。
【請求項50】
ラウンドロビンまたは重み付けラウンドロビンによりデータフレームを出力するポートを決定する方式、データフレームのヘッダ情報に基づいて、データフレームを出力するポートを決定する方式、データフレームのペイロードに記載された内容に基づいて、データフレームを出力するポートを決定する方式の何れかのアルゴリズムに基づいて、データフレームを出力するポートを決定することを特徴とする請求項40から請求項49の何れか1項に記載の拠点ノード。
【請求項51】
前記通信システムの通信状態に基づいて、データフレームを出力するポートを決定することを特徴とする請求項46から請求項49の何れか1項に記載の拠点ノード。
【請求項52】
前記通信システムの通信状態に基づいて、前記フォワーディングデータベースを変更することを特徴とする請求項46から請求項49の何れか1項に記載の拠点ノード。
【請求項53】
前記仮想化部が、通信相手の前記拠点ノードに属するポートのうち、前記通信媒体に接続されていないポートに直接もしくは1つ以上のノードを介して接続されている全てのホストと、通信相手の前記拠点ノードとの対応関係を管理するアドレス管理データベースを備え、前記通信システムの通信状態に基づいて、前記フォワーディングデータベースの出力ポート情報に登録されている仮想ポートを変更することを特徴とする請求項46から請求項49の何れか1項に記載の拠点ノード。
【請求項54】
前記通信システムの通信状態に基づいて、前記ポートマッピングテーブルを変更することを特徴とする請求項46から請求項49の何れか1項に記載の拠点ノード。
【請求項55】
障害の発生箇所又は発生している障害の数あるいは双方に基づいて、データフレームを出力するポートを決定することを特徴とする請求項46から請求項49の何れか1項に記載の拠点ノード。
【請求項56】
前記複数の通信媒体より同一のデータフレームを複数回受信することを防止するフィルタリング機構を備えたことを特徴とする請求項46から請求項49の何れか1項に記載の拠点ノード。
【請求項57】
障害の回復を検出した場合に、高い優先度を有するデータフレームを優先して転送し、あるいは、低い優先度を有するデータフレームの通信帯域を制限して転送することを特徴とする請求項46から請求項49の何れか1項に記載の拠点ノード。
【請求項58】
前記拠点ノードに属するポートの通信状態に基づいて、データフレームを出力するポートを決定することを特徴とする請求項46から請求項49の何れか1項に記載の拠点ノード。
【請求項59】
前記拠点ノードに属するポートの通信状態に基づいて、前記フォワーディングデータベースを変更することを特徴とする請求項46から請求項49の何れか1項に記載の拠点ノード。
【請求項60】
前記拠点ノードに属するポートの通信状態に基づいて、前記ポートマッピングテーブルを変更することを特徴とする請求項46から請求項49の何れか1項に記載の拠点ノード。
【請求項61】
自ノード以外の拠点ノードに直接または1つ以上のノードを介して接続されたホストと前記自ノード以外の拠点ノードの対応関係を管理することを特徴とする請求項46から請求項49の何れか1項に記載の拠点ノード。
【請求項62】
自ノード以外の拠点ノードに接続されたルータと前記自ノード以外の拠点ノードの対応関係を管理することを特徴とする請求項46から請求項49の何れか1項に記載の拠点ノード。
【請求項63】
ラーニングフレームを送受信することにより、前記拠点ノードに接続されたホストを相互に通知することを特徴とする請求項40から請求項45の何れか1項に記載の拠点ノード。
【請求項64】
ペイロードに前記拠点ノードに接続されたルータのノード識別子が格納されたデータフレームを送受信することにより、前記拠点ノードに接続されたルータを相互に通知することを特徴とする請求項48から請求項52の何れか1項に記載の拠点ノード。
【請求項65】
送信元ホストの属する前記拠点ノードと宛先ホストの属する前記拠点ノードの組み合わせに対して割り当てられたVLAN識別子を格納したVLANタグを付加したイーサネット(R)フレームを送受信することにより、アドレス管理データベースを自動的に作成することを特徴とする請求項53に記載の拠点ノード。
【請求項66】
通信システムにおいて1つ以上の中継ノードから構成される複数の通信媒体を介して互いに通信を行う拠点となるノード上で実行される通信制御プログラムであって、
前記拠点となるノードに属するポートのうち、前記複数の通信媒体に接続された複数のポートを1つの仮想ポートとして扱うことにより、前記複数の通信媒体を1つのノードと仮想する仮想化機能を有することを特徴とする通信制御プログラム。
【請求項67】
ある送信元から送信されたデータフレームを所定の宛先に転送するためのフォワーディング情報を、フォワーディングデータベースにおいて、1つの宛先に対して複数個登録する機能を有することを特徴とする請求項66に記載の通信制御プログラム。
【請求項68】
前記拠点ノードの1つ以上のポートを1つの仮想ポートにポートマッピングテーブルにおいて対応付け、フォワーディングデータベースにおいてある送信元から送信されたデータフレームを所定の宛先に転送するためのフォワーディング情報に1つ以上の前記仮想ポートを登録する機能を有することを特徴とする請求項66に記載の通信制御プログラム。
【請求項69】
フレームフォーマットの異なる前記通信媒体にデータフレームを送信する場合、前記通信媒体のフレームフォーマットのヘッダ情報を前記データフレームに付加して送信し、前記通信媒体からデータフレームを受信する場合、前記通信媒体のフレームフォーマットのヘッダ情報を前記データフレームから外して受信する機能を有することを特徴とする請求項66に記載の通信制御プログラム。
【請求項70】
キープアライブフレームを相互に送受信することにより、通信システムの通信状態を取得する機能を有することを特徴とする請求項66から請求項69の何れか1項に記載の通信制御プログラム。
【請求項71】
前記キープアライブフレームに、前記複数の通信媒体を構成する前記中継ノードにおいて未知と認識される宛先アドレスを記載し、前記複数の通信媒体を構成する前記中継ノードにおいてブロードキャストさせることを特徴とする請求項70に記載の通信制御プログラム。
【請求項72】
前記キープアライブフレームに記載された情報又は前記キープアライブフレームの到着状態から通信システムの通信状態を取得する機能を有することを特徴とする請求項70又は請求項71に記載の通信制御プログラム。
【請求項73】
前記通信システムの通信状態が、障害、通信帯域の変動、遅延のいずれか、またはそれらの任意の組み合わせであることを特徴とする請求項70から請求項72の何れか1項に記載の通信制御プログラム。
【請求項74】
ラウンドロビンまたは重み付けラウンドロビンによりデータフレームを出力するポートを決定する方式、データフレームのヘッダ情報に基づいて、データフレームを出力するポートを決定する方式、データフレームのペイロードに記載された内容に基づいて、データフレームを出力するポートを決定する方式の何れかのアルゴリズムに基づいて、データフレームを出力するポートを決定する機能を有することを特徴とする請求項66から請求項73の何れか1項に記載の通信制御プログラム。
【請求項75】
前記通信システムの通信状態に基づいて、データフレームを出力するポートを決定する機能を有することを特徴とする請求項70から請求項73の何れか1項に記載の通信制御プログラム。
【請求項76】
前記通信システムの通信状態に基づいて、前記フォワーディングデータベースを変更する機能を有することを特徴とする請求項70から請求項73の何れか1項に記載の通信制御プログラム。
【請求項77】
前記仮想化部が、通信相手の前記拠点ノードに属するポートのうち、前記通信媒体に接続されていないポートに直接もしくは1つ以上のノードを介して接続されている全てのホストと、通信相手の前記拠点ノードとの対応関係をアドレス管理データベースで管理し、前記通信システムの通信状態に基づいて、前記フォワーディングデータベースの出力ポート情報に登録されている仮想ポートを変更する機能を有することを特徴とする請求項70から請求項73の何れか1項に記載の通信制御プログラム。
【請求項78】
前記通信システムの通信状態に基づいて、前記ポートマッピングテーブルを変更することを特徴とする請求項70から請求項73の何れか1項に記載の通信制御プログラム。
【請求項79】
障害の発生箇所又は発生している障害の数あるいは双方に基づいて、データフレームを出力するポートを決定する機能を有することを特徴とする請求項70から請求項73の何れか1項に記載の通信制御プログラム。
【請求項80】
前記複数の通信媒体より同一のデータフレームを複数回受信することを防止するフィルタリング機構を備えたことを特徴とする請求項70から請求項73の何れか1項に記載の通信制御プログラム。
【請求項81】
障害の回復を検出した場合に、高い優先度を有するデータフレームを優先して転送し、あるいは、低い優先度を有するデータフレームの通信帯域を制限して転送する機能を有することを特徴とする請求項70から請求項73の何れか1項に記載の通信制御プログラム。
【請求項82】
前記拠点ノードに属するポートの通信状態に基づいて、データフレームを出力するポートを決定する機能を有することを特徴とする請求項70から請求項73の何れか1項に記載の通信制御プログラム。
【請求項83】
前記拠点ノードに属するポートの通信状態に基づいて、前記フォワーディングデータベースを変更し、または前記ポートマッピングテーブルを変更する機能を有することを特徴とする請求項70から請求項73の何れか1項に記載の通信制御プログラム。
【請求項84】
自ノード以外の拠点ノードに直接または1つ以上のノードを介して接続されたホストと前記自ノード以外の拠点ノードの対応関係を管理する機能を有することを特徴とする請求項70から請求項73の何れか1項に記載の通信制御プログラム。
【請求項85】
自ノード以外の拠点ノードに接続されたルータと前記自ノード以外の拠点ノードの対応関係を管理する機能を有することを特徴とする請求項70から請求項73の何れか1項に記載の通信制御プログラム。
【請求項86】
ラーニングフレームを送受信することにより、前記拠点ノードに接続されたホストを相互に通知する機能を有することを特徴とする請求項66から請求項69の何れか1項に記載の通信制御プログラム。
【請求項87】
ペイロードに前記拠点ノードに接続されたルータのノード識別子が格納されたデータフレームを送受信することにより、前記拠点ノードに接続されたルータを相互に通知する機能を有することを特徴とする請求項72から請求項75の何れか1項に記載の通信制御プログラム。
【請求項88】
送信元ホストの属する前記拠点ノードと宛先ホストの属する前記拠点ノードの組み合わせに対して割り当てられたVLAN識別子を格納したVLANタグを付加したイーサネット(R)フレームを送受信することにより、アドレス管理データベースを自動的に作成する機能を有することを特徴とする請求項77に記載の通信制御プログラム。
【請求項89】
通信システムにおいて1つ以上の中継ノードから構成される複数の通信媒体を介して互いに通信を行う機能を有するネットワークインターフェースカードを備えたコンピュータであって、
前記ネットワークインターフェースカードが、前記ネットワークインターフェースカードに属するポートのうち、前記複数の通信媒体に接続された複数のポートを1つの仮想ポートとして扱うことにより、前記複数の通信媒体を1つのノードと仮想する仮想化部を備えることを特徴とするコンピュータ。
【請求項90】
前記ネットワークインターフェースカードの前記仮想化部が、ある送信元から送信されたデータフレームを所定の宛先に転送するためのフォワーディング情報を、1つの宛先に対して複数個登録するフォワーディングデータベースを備えることを特徴とする請求項89に記載のコンピュータ。
【請求項91】
前記ネットワークインターフェースカードの前記仮想化部が、1つ以上のポートを1つの仮想ポートに対応付けるポートマッピングテーブルと、ある送信元から送信されたデータフレームを所定の宛先に転送するためのフォワーディング情報に1つ以上の前記仮想ポートを登録するフォワーディングデータベースとを備えることを特徴とする請求項89に記載のコンピュータ。
【請求項92】
前記ネットワークインターフェースカードが、フレームフォーマットの異なる前記通信媒体にデータフレームを送信する場合、前記通信媒体のフレームフォーマットのヘッダ情報を前記データフレームに付加して送信し、前記通信媒体からデータフレームを受信する場合、前記通信媒体のフレームフォーマットのヘッダ情報を前記データフレームから外して受信することを特徴とする請求項89から請求項91の何れか1項に記載のコンピュータ。
【請求項93】
前記ネットワークインターフェースカードが、キープアライブフレームを相互に送受信することにより、通信システムの通信状態を取得することを特徴とする請求項89から請求項92の何れか1項に記載のコンピュータ。
【請求項94】
前記キープアライブフレームに、前記複数の通信媒体を構成する前記中継ノードにおいて未知と認識される宛先アドレスを記載し、前記複数の通信媒体を構成する前記中継ノードにおいてブロードキャストさせることを特徴とする請求項93に記載のコンピュータ。
【請求項95】
前記キープアライブフレームに記載された情報、又は前記キープアライブフレームの到着状態から、あるいはその双方から通信システムの通信状態を取得することを特徴とする請求項93又は請求項94に記載のコンピュータ。
【請求項96】
前記通信システムの通信状態が、障害、通信帯域の変動、遅延のいずれか、またはそれらの任意の組み合わせであることを特徴とする請求項93から請求項95の何れか1項に記載のコンピュータ。
【請求項97】
前記ネットワークインターフェースカードが、ラウンドロビンまたは重み付けラウンドロビンによりデータフレームを出力するポートを決定する方式、データフレームのヘッダ情報に基づいて、データフレームを出力するポートを決定する方式、データフレームのペイロードに記載された内容に基づいて、データフレームを出力するポートを決定する方式の何れかのアルゴリズムに基づいて、データフレームを出力するポートを決定することを特徴とする請求項89から請求項96の何れか1項に記載のコンピュータ。
【請求項98】
前記ネットワークインターフェースカードが、前記通信システムの通信状態に基づいて、データフレームを出力するポートを決定することを特徴とする請求項93から請求項96の何れか1項に記載のコンピュータ。
【請求項99】
前記ネットワークインターフェースカードが、前記通信システムの通信状態に基づいて、前記フォワーディングデータベースを変更することを特徴とする請求項93から請求項96の何れか1項に記載のコンピュータ。
【請求項100】
前記ネットワークインターフェースカードの前記仮想化部が、通信相手に属するポートのうち、前記通信媒体に接続されていないポートに直接もしくは1つ以上のノードを介して接続されている全てのホストと、通信相手との対応関係を管理するアドレス管理データベースを備え、前記通信システムの通信状態に基づいて、前記フォワーディングデータベースの出力ポート情報に登録されている仮想ポートを変更することを特徴とする請求項93から請求項96の何れか1項に記載のコンピュータ。
【請求項101】
前記ネットワークインターフェースカードが、前記通信システムの通信状態に基づいて、前記ポートマッピングテーブルを変更することを特徴とする請求項93から請求項96の何れか1項に記載のコンピュータ。
【請求項102】
前記ネットワークインターフェースカードが、障害の発生箇所又は発生している障害の数あるいは双方に基づいて、データフレームを出力するポートを決定することを特徴とする請求項93から請求項96の何れか1項に記載のコンピュータ。
【請求項103】
前記ネットワークインターフェースカードが、前記複数の通信媒体より同一のデータフレームを複数回受信することを防止するフィルタリング機構を備えたことを特徴とする請求項93から請求項96の何れか1項に記載のコンピュータ。
【請求項104】
前記ネットワークインターフェースカードが、障害の回復を検出した場合に、高い優先度を有するデータフレームを優先して転送し、あるいは、低い優先度を有するデータフレームの通信帯域を制限して転送することを特徴とする請求項93から請求項96の何れか1項に記載のコンピュータ。
【請求項105】
前記ネットワークインターフェースカードが、前記ノードに属するポートの通信状態に基づいて、データフレームを出力するポートを決定することを特徴とする請求項93から請求項96の何れか1項に記載のコンピュータ。
【請求項106】
前記ネットワークインターフェースカードが、前記ノードに属するポートの通信状態に基づいて、前記フォワーディングデータベースを変更することを特徴とする請求項93から請求項96の何れか1項に記載のコンピュータ。
【請求項107】
前記ネットワークインターフェースカードが、前記ノードに属するポートの通信状態に基づいて、前記ポートマッピングテーブルを変更することを特徴とする請求項93から請求項96の何れか1項に記載のコンピュータ。
【請求項108】
前記ネットワークインターフェースカードが、自ノード以外のノードに直接または1つ以上のノードを介して接続されたホストと前記自ノード以外のノードの対応関係を管理することを特徴とする請求項93から請求項96の何れか1項に記載のコンピュータ。
【請求項109】
前記ネットワークインターフェースカードが、自ノード以外のノードに接続されたルータと前記自ノード以外のノードの対応関係を管理することを特徴とする請求項93から請求項96の何れか1項に記載のコンピュータ。
【請求項110】
前記ネットワークインターフェースカードが、ラーニングフレームを送受信することにより、前記ノードに接続されたホストを相互に通知することを特徴とする請求項89から請求項92の何れか1項に記載のコンピュータ。
【請求項111】
前記ネットワークインターフェースカードが、ペイロードに前記ノードに接続されたルータのノード識別子が格納されたデータフレームを送受信することにより、前記ノードに接続されたルータを相互に通知することを特徴とする請求項95から請求項99の何れか1項に記載のコンピュータ。
【請求項112】
前記ネットワークインターフェースカードが、送信元ホストの属する前記ノードと宛先ホストの属する前記ノードの組み合わせに対して割り当てられたVLAN識別子を格納したVLANタグを付加したイーサネット(R)フレームを送受信することにより、アドレス管理データベースを自動的に作成することを特徴とする請求項100に記載のコンピュータ。
【請求項113】
前記ネットワークインターフェースカードを複数備え、各ネットワークインターフェースカードが個々の前記通信媒体または任意の数の前記通信媒体と接続されることを特徴とする請求項89から請求項112の何れか1項に記載のコンピュータ。

【国際公開番号】WO2005/048540
【国際公開日】平成17年5月26日(2005.5.26)
【発行日】平成19年11月29日(2007.11.29)
【国際特許分類】
【出願番号】特願2005−515498(P2005−515498)
【国際出願番号】PCT/JP2004/017118
【国際出願日】平成16年11月11日(2004.11.11)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】