(57)【特許請求の範囲】
【請求項１】
先着学習方式により第１の装置から第２の装置への経路が設定されたネットワークを構成する中継装置群のうち、前記経路上の一端の中継装置が、前記第１の装置を送信元とし前記第２の装置を宛先とする往路パケットを、前記一端の中継装置のポート群のうち前記先着学習方式で学習済の特定のポートから送信し、前記ポート群のうち前記往路パケットの受信ポートおよび前記特定のポート以外のポートから前記往路パケットをフラッディングする第１の工程と、
前記中継装置群内の前記経路上の中継装置以外の中継装置が、フラッディングされてきた前記往路パケットのうち先着往路パケットの送信元と受信ポートのポート番号を前記先着学習方式で学習し、前記受信ポート以外のポートから前記往路パケットをフラッディングする第２の工程と、
前記中継装置群内の前記経路上の他端の中継装置が、前記経路上の中継装置から送信されてきた前記往路パケットを、前記先着学習方式で学習済の前記他端の中継装置のポート番号のポートから前記第２の装置宛に送信し、前記他端の中継装置にフラッディングされてきた前記往路パケットのうち先着往路パケットの送信元と受信ポートのポート番号を学習する第３の工程と、
を含んだことを特徴とする経路生成方法。
【請求項２】
前記第１の工程は、
前記一端の中継装置が、前記特定のポートから前記往路パケットを送信し、前記特定のポートからの前記往路パケットの送信時から所定時間経過後に前記ポート群のうち前記往路パケットの受信ポートおよび前記特定のポート以外のポートから前記往路パケットをフラッディングすることを特徴とする請求項１に記載の経路生成方法。
【請求項３】
前記他端の中継装置が、前記第２の装置を送信元とし前記第１の装置を宛先とする復路パケットを、前記先着学習方式で前記第３の工程の前に学習済の第１のポートと前記第３の工程で学習された第２のポートとから送信する第４の工程と、
前記中継装置群内の前記経路上の中継装置以外の中継装置が、前記第４の工程によって送信されてきた前記復路パケットを受信できた場合、前記復路パケットの送信元と受信ポートのポート番号を前記先着学習方式で学習し、前記往路パケットの送信元に対応するポート番号のポートから前記復路パケットを送信する第５の工程と、
前記一端の中継装置が、前記特定のポートから受信された前記復路パケットを、前記先着学習方式で学習済である前記第１の装置の宛先に対応するポート番号のポートから前記第１の装置宛に送信し、前記特定のポート以外のポートから受信された前記復路パケットの送信元と前記復路パケットを受信した前記特定のポート以外のポートのポート番号を学習する第６の工程と、
を含んだことを特徴とする請求項１または２に記載の経路生成方法。
【請求項４】
前記第６の工程の後に、前記他端の中継装置が、前記第１の装置を送信元とし前記第２の装置を宛先とするあらたなパケットを、前記第１のポートと前記第２のポートからそれぞれ受信した場合、前記第１のポートから受信した前記パケットと前記第２のポートから受信した前記パケットとのうち、先着の前記パケットのみを前記第２の装置に送信する第７の工程を含んだことを特徴とする請求項３に記載の経路生成方法。
【請求項５】
パケットを受信する受信手段と、
前記受信手段によってパケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記パケット内の宛先に対応する特定のポート番号が記憶されているかを判定する判定手段と、
前記判定手段によって前記特定のポート番号が記憶されていると判定された場合、前記特定のポート番号のポートから前記パケットを送信し、前記送信の時から所定時間経過後に、前記ポート群のうち前記パケットを受信したポートと前記特定のポート番号のポートとを除くポートから前記パケットを一斉送信する送信手段と、
を備えることを特徴とする中継装置。
【請求項６】
前記受信手段によって、一連のパケットが受信された場合、前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信された後着のパケットとの同一性を判定する同一性判定手段と、
前記テーブルに、前記同一性判定手段によって同一性があると判定された前記後着のパケットを受信したポートのポート番号と、宛先となる前記後着のパケットの送信元とを関連付けて格納する格納手段と、
を備えることを特徴とする請求項５に記載の中継装置。
【請求項７】
一連のパケットを受信する受信手段と、
前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信される後着のパケットとの同一性を判定する同一性判定手段と、
前記後着のパケットが前記先着のパケットの次着であるか否かを判定する着順判定手段と、
宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記同一性判定手段によって同一性があると判定され、かつ、前記着順判定手段によって次着と判定された前記後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された前記後着のパケットの送信元とを関連付けて格納する格納手段と、
を備えることを特徴とする中継装置。
【請求項８】
前記先着のパケットおよび次着と判定された前記後着のパケットの送信元を宛先とするパケットを、前記テーブルに基づいて、前記先着のパケットを受信したポートおよび次着と判定された前記後着のパケットを受信したポートのそれぞれから送信する送信手段を備えることを特徴とする請求項７に記載の中継装置。
【請求項９】
前記送信手段は、
前記テーブルに記憶されている宛先を送信元とするパケットが、前記宛先に対応する２つのポートからそれぞれ受信された場合、前記２つのポートから受信された前記パケットのうち先着の前記パケットのみを送信することを特徴とする請求項８に記載の中継装置。
【請求項１０】
パケットを受信する受信工程と、
前記受信工程によってパケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記パケット内の宛先に対応する特定のポート番号が記憶されているかを判定する判定工程と、
前記判定工程によって前記特定のポート番号が記憶されていると判定された場合、前記特定のポート番号のポートから前記パケットを送信し、前記送信の時から所定時間経過後に、自中継装置のポート群のうち前記パケットを受信したポートと前記特定のポート番号のポートとを除くポートから前記パケットを一斉送信する送信工程と、
をコンピュータに実行させることを特徴とする経路生成プログラム。
【請求項１１】
前記受信工程によって、一連のパケットが受信された場合、前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信された後着のパケットとの同一性を判定する同一性判定工程と、
前記テーブルに、前記同一性判定工程によって同一性があると判定された前記後着のパケットを受信したポートのポート番号と、宛先となる前記後着のパケットの送信元とを関連付けて格納する格納工程と、
を備えることを特徴とする請求項１０に記載の経路生成プログラム。
【請求項１２】
一連のパケットを受信する受信工程と、
前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信される後着のパケットとの同一性を判定する同一性判定工程と、
前記後着のパケットが前記先着のパケットの次着であるか否かを判定する着順判定工程と、
宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記同一性判定工程によって同一性があると判定され、かつ、前記着順判定工程によって次着と判定された前記後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された前記後着のパケットの送信元とを関連付けて格納する格納工程と、
をコンピュータに実行させることを特徴とする経路生成プログラム。
【請求項１３】
前記先着のパケットおよび次着と判定された前記後着のパケットの送信元を宛先とするパケットを、前記テーブルに基づいて、前記先着のパケットを受信したポートおよび次着と判定された前記後着のパケットを受信したポートのそれぞれから送信する送信工程を備えることを特徴とする請求項１２に記載の経路生成プログラム。
【請求項１４】
前記送信工程は、
前記テーブルに記憶されている宛先を送信元とするパケットが、前記宛先に対応する２つのポートからそれぞれ受信された場合、前記２つのポートから受信された前記パケットのうち先着の前記パケットのみを送信することを特徴とする請求項１３に記載の経路生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、経路を生成する経路生成方法、中継装置、および経路生成プログラムに関する。
【背景技術】
【０００２】
広域イーサネット（登録商標）サービス（Ｅｔｈｅｒｎｅｔ（登録商標）  Ｓｅｒｖｉｃｅ）の普及に伴い、ＭＡＮ（Ｍｅｔｒｏ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）やＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）といった広域ネットワークに対するイーサネット（登録商標）技術の進出がめざましくなっている。
【０００３】
このようなネットワークでは、リンクの障害や中継装置（以下、「ノード」という）の障害が起こった場合にも通信が継続できるように、リンクやパスを冗長化して障害時には予備側に切り替える。
【０００４】
例えば、イーサネット（登録商標）のネットワーク冗長方式として定められたスパニングツリープロトコル（ＳＴＰ）やＳＴＰの拡張方式であるＲＳＴＰ（ラピッドＳＴＰ）を用いた場合には、ツリーを構成し直すことで障害復旧が可能である（例えば、下記特許文献１参照）。
【０００５】
また、近年、ＩＴＵ−Ｔにおいてイーサネット（登録商標）冗長方式の標準化がなされ、１＋１パスプロテクションが規定された。例えば、１＋１パスプロテクション方式を用いた場合には、始点ノードと終点ノードの間に、リンク・ノードを共用しない現用パスと予備パスが設定され、始点ノードで両パスそれぞれにパケットを送信し、終点ノードにおいて現用パスから来たパケットを選択する。これにより、現用パスに障害が起きた場合には、終点ノードにおいて予備パスから来たパケットを使用するように切り替えることで、高速な障害復旧が可能である。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２５８９５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、上述したＳＴＰを用いた場合には、ツリーを構成し直すのに時間がかかり、冗長経路への切り替え時間が長いという問題があった。また、ＲＳＴＰは、このＳＴＰの欠点をある程度解消できるが、障害の位置によってはＳＴＰ同様切り替え時間が長くなるという問題があった。
【０００８】
また、１＋１パスプロテクション方式を用いた場合には、障害復旧は高速に行うことができるが、この方式では、現用パスと予備パスが共用しないようにするためのオペレーションコストがかかるという問題があった。
【０００９】
１つの側面では、本発明は、現用の経路とリンクやノードを共用しない代替経路の生成する経路生成方法、中継装置、および経路生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
１つの案では、先着学習方式により第１の装置から第２の装置への経路が設定されたネットワークを構成する中継装置群内の経路上の一端の中継装置が、第１の装置を送信元とし第２の装置を宛先とする往路パケットを、一端の中継装置のポート群のうち先着学習方式で学習済の特定のポートから送信し、ポート群のうち往路パケットの受信ポートおよび特定のポート以外のポートからパケットをフラッディングし、中継装置群内の経路上の中継装置以外の中継装置が、フラッディングされてきた往路パケットのうち先着往路パケットの送信元と受信ポートのポート番号を先着学習方式で学習し、受信ポート以外のポートから往路パケットをフラッディングし、中継装置群内の経路上の他端の中継装置が、経路上の中継装置から送信されてきた往路パケットを、先着学習方式で学習済の他端の中継装置のポート番号のポートから第２の装置宛に送信し、他端の中継装置にフラッディングされてきた往路パケットのうち先着往路パケットの送信元と受信ポートのポート番号を学習する経路生成方法を用いる。
【００１１】
１つの案では、一連のパケットを受信し、受信した一連のパケットのうち先着のパケットと先着のパケットを受信したポート以外のポートから受信される後着のパケットとの同一性を判定し、後着のパケットが先着のパケットの次着であるか否かを判定し、宛先ごとに対応するポートのポート番号を記憶するテーブルに、同一性があると判定され、かつ、次着と判定された後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された後着のパケットの送信元とを関連付けて格納する中継装置および経路生成プログラムを用いる。
【００１２】
１つの案では、パケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、パケット内の宛先に対応する特定のポート番号が記憶されているかを判定し、特定のポート番号が記憶されていると判定された場合、自中継装置のポート群のうちパケットを受信したポートを除くポートからパケットを一斉送信する中継装置および経路生成プログラムを用いる。
【発明の効果】
【００１３】
本発明にかかる経路生成方法、中継装置、および経路生成プログラムによれば、現用の経路とリンクやノードを共用しない代替経路生成することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、ノードによる次善パスの生成の内容を示す説明図（その１）である。
【図２】図２は、ノードによる次善パスの生成の内容を示す説明図（その２）である。
【図３】図３は、ノードのハードウェア構成を示すブロック図である。
【図４】図４は、ＭＡＣテーブルの記憶内容を示す説明図である。
【図５】図５は、同一性情報テーブルの記憶内容を示す説明図である。
【図６】図６は、ノードの機能的構成を示す機能ブロック図である。
【図７】図７は、次善パスの生成の具体例を示す説明図（その１）である。
【図８】図８は、次善パスの生成の具体例を示す説明図（その２）である。
【図９】図９は、次善パスの生成の具体例を示す説明図（その３）である。
【図１０】図１０は、次善パスの生成の具体例を示す説明図（その４）である。
【図１１】図１１は、次善パスの生成の具体例を示す説明図（その５）である。
【図１２】図１２は、次善パスの生成の具体例を示す説明図（その６）である。
【図１３】図１３は、次善パスの生成の具体例を示す説明図（その７）である。
【図１４】図１４は、次善パスの生成の具体例を示す説明図（その８）である。
【図１５】図１５は、次善パスの生成の具体例を示す説明図（その９）である。
【図１６】図１６は、次善パスの生成の具体例を示す説明図（その１０）である。
【図１７】図１７は、次善パスの生成の具体例を示す説明図（その１１）である。
【図１８】図１８は、Ｉｎｇｒｅｓｓノードの経路生成処理の詳細を示すフローチャートである。
【図１９】図１９は、Ｉｎｇｒｅｓｓノードの遅延挿入を行う経路生成処理の詳細を示すフローチャートである。
【図２０】図２０は、Ｅｇｒｅｓｓノードの経路生成処理の詳細を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下に添付図面を参照して、本発明の実施の形態にかかる経路生成方法、中継装置、および経路生成プログラムを詳細に説明する。
【００１６】
（ノードによる次善パスの生成の内容）
まず、図１および図２を用いてノードによる次善パスの生成の内容を示す説明図について説明する。図１および図２は、ノードによる次善パスの生成の内容を示す説明図である。図１および図２は、複数のノード１００によって構成されるネットワークを示している。ここでは、ネットワークは、ノードＡ〜Ｉの９つのノード１００から構成される。また、ノードＡは始点ノード（Ｉｎｇｒｅｓｓノード）としてオペレータによって設定されている。また、ノードＩは終点ノード（Ｅｇｒｅｓｓノード）としてオペレータによって設定されている。
【００１７】
ここで、このネットワークでは、従来技術である先着学習方式によって、ＩｎｇｒｅｓｓノードであるノードＡとＥｇｒｅｓｓノードであるノードＩ間の最短のパス（最短パス）が生成されている。ここでは、最短パスは、ノードＡ、ノードＢ、ノードＤ、ノードＧ、ノードＩを通過するパスであるとする。
【００１８】
このように最短パスが生成された状態において、ＩｎｇｒｅｓｓノードであるノードＡおよびＥｇｒｅｓｓノードであるノードＩは、最短パスのほかに、冗長経路として次善のパス（次善パス）を生成する処理を行う。一方で、ノードＢ〜Ｈは従来技術である先着学習方式に従って処理を行う。ここで、次善パスとは、最短パスとノードやリンクを共用しない（Ｎｏｄｅ  ｄｉｓｊｏｉｎｔ／Ｌｉｎｋ  ｄｉｓｊｏｉｎｔ）パスであり、最短パスを除外した残余のネットワークにおいて最短となりうるパスである。
【００１９】
従来技術のため、詳細な説明を省略するが、先着学習方式では、ノード１００は、複数のポートから同一パケットが受信された場合、最も早くパケットが受信されたポートのポート番号とパケットの送信元とを関連付けて保持する。そして、ノード１００は、受信されたポート以外のポートからパケットをフラッディングする。また、ノード１００は、次着以降のパケットは廃棄する。
【００２０】
具体的には、まず、ノード１００は、ポート群から同一パケット群を受信した際に、その同一パケット群のうち最も早く到着したパケット（以下、「先着パケット」という）を抽出する。ここで、送信元から最も早く到着したパケットが通過したパスは、即ち、その送信元を宛先とした場合に宛先に最も早く到着できるパス（最短パス）である。
【００２１】
従って、ノード１００は、自ノードから先着パケットの送信元への最短パスに対応するポートのポート番号として、先着パケットを受信したポートのポート番号を記憶する。その後、ノード１００は、受信した先着パケットをフラッディングし、次着以降のパケット（以下、「後着パケット」という）は廃棄する。そして、他のノード１００も同様に最短パスに対応するポート番号を記憶していくことで、自動的に各ノード１００から送信元への最短パスを生成する。
【００２２】
なお、先着学習方式では、ノード１００は、最短パスに対応するポート番号を記憶した時から所定時間経過後までは、最短パスに対応するポート番号が上書きされないようにして、最短パスの安定性を確保している。
【００２３】
ここで、図１において（Ａ）に示すように、本実施の形態にかかるＩｎｇｒｅｓｓノードであるノードＡは、（１）パケットを既知の最短パスへのポートからユニキャスト送信するとともに最短パスのポート以外の全てのポートからフラッディング（一斉送信）する。最短パスへ送信されたパケットは最短パスを通過してＥｇｒｅｓｓノードであるノードＩへ到着する。一方、ノードＡによってフラッディングされたパケットは、（２）送信先の各ノード１００で従来技術である先着学習方式に従って、入力ポート以外の全てのポートからフラッディングされる。例えば、ノードＣでは、ノードＥおよびノードＦへのポートからフラッディングされる。
【００２４】
このように各ノード１００が受信したパケットをフラッディングしていくと、（Ｂ）に示すようにパケットが送信されていく。ここで、従来技術である先着学習方式に従って、ノードＢ〜Ｈは、先着ポートをポート番号として学習する。これにより、最短パスを構成するノード１００は、最短パスへのポートのポート番号を記憶し、残余のノード１００は、最短パスを除いた残余のネットワークにおけるノードＡへの最短のパス（次善パス）のポート番号を記憶していく。即ち、ノードＡへの一方向の次善パスが生成される。
【００２５】
例えば、ノードＢでは、（３）最短パスへのポートが先着ポートとして既に学習されており、ノードＥからのポートを先着ポートとして学習することはない。即ち、最短パスと交わるパスは次善パスから除外される。同様に、ノードＧでは、（３）最短パスのポートが既に先着ポートとして学習されており、ノードＥからのポートを先着ポートとして学習することはない。即ち、最短パスと交わるパスは次善パスから除外される。また、例えば、ノードＨでは、（３）ノードＥからのポートが既に先着ポートとして学習されており、ノードＦからのポートを先着ポートとして学習することはない。即ち、最短パス以外のネットワークにおいて他のパスより遅延の大きいパスは次善パスから除外される。
【００２６】
そして、本実施の形態にかかるＥｇｒｅｓｓノードであるノードＩは、先着パケットの次に到着したパケット（以下、「次着パケット」という）を受信したポート（以下、「次着ポート」という）を次善パスへのポートとして学習する。このようにして、（Ｃ）に示すように、次善パスを構成するノードＣ、ノードＥ、ノードＨ、ノードＩはノードＡへの次善パスのポートを学習することができるため、ノードＩからノードＡへの一方向の次善パスを生成できる。また、この次善パスは、最短パスとリンク・ノードを共用しないパスとなっている。
【００２７】
次に、図２において（Ａ）に示すように、本実施の形態にかかるＥｇｒｅｓｓノードであるノードＩは、（４）パケットを最短パスへのポートからユニキャスト送信するとともに、次善パスへのポートからユニキャスト送信する。最短パスへ送信されたパケットは最短パスを通過してＩｎｇｒｅｓｓノードであるノードＡへ到着し、次善パスへ送信されたパケットは次善パスを通過してＩｎｇｒｅｓｓノードであるノードＡへ到着する。
【００２８】
ここで、次善パスを構成する各ノード１００はノードＩへの次善パスのポートを学習することができるため、ノードＡからノードＩへの一方向の次善パスが生成される。このようにして、（Ｂ）に示すように両方向の次善パスが生成される。
【００２９】
このようにして、各ノード１００は、パスを刈り取っていき最短パスと次善パスを生成する。生成後は、Ｉｎｇｒｅｓｓノードでは最短パスと次善パスの両方にパケットを送信し、Ｅｇｒｅｓｓノードでは最短パスまたは次善パスによって送信されたパケットのうち、先着したパケットを保持し、後着パケットは廃棄する。次善パスと最短パスとはノード・リンクを共用しないため、このようにすれば、最短パスに障害が起こった場合でもパケットロスなく（無瞬断で)次善パスから受信したパケットを送信先に送信することができる。
【００３０】
（ノードのハードウェア構成）
次に、図３を用いてノードのハードウェア構成について説明する。
【００３１】
図３は、ノードのハードウェア構成を示すブロック図である。図３において、ノード１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、記憶装置３０２と、Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、を備えている。また、各構成部は、バス３１０によってそれぞれ接続されている。
【００３２】
ＣＰＵ３０１は、ノード１００全体の制御を司る。記憶装置３０２は、冗長経路生成プログラムを記憶している。また、記憶装置３０２は、ＭＡＣテーブル３０２ａと同一性情報テーブル３０２ｂを記憶している。記憶装置３０２としては、不揮発性メモリやフラッシュメモリ、ハードディスクドライブなどを採用することができる。
【００３３】
インターフェース（以下、「Ｉ／Ｆ」と略する。）３０３は、通信回線を通じてＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどのネットワーク３２０に接続され、このネットワーク３２０を介して他の装置に接続される。そして、Ｉ／Ｆ３０３は、ネットワーク３２０と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ３０３には、例えばモデムやＬＡＮアダプタなどを採用することができる。
【００３４】
（ＭＡＣテーブルの記憶内容）
次に、図３に示したＭＡＣテーブルの記憶内容について説明する。
【００３５】
図４は、ＭＡＣテーブルの記憶内容を示す説明図である。図４に示すように、ＭＡＣテーブル３０２ａは、アドレス項目と、先着ポート項目と、次着ポート項目と、学習時刻項目と、を有する。
【００３６】
アドレス項目には、パケットの宛先を一意に識別する宛先ＭＡＣアドレスが記憶される。ＭＡＣアドレスとは、イーサネット（登録商標）の場合、４８ビット（ＥＵＩ−４８）の符号である。先着ポート項目には、先着パケットを受信したポートのポート番号（以下、「先着ポート番号」という）が記憶される。先着パケットとは、他のノード１００がフラッディングしたパケットのうち最も早く自ノードに到着したパケットである。次着ポート項目には、次着パケットを受信したポートのポート番号（以下、「次着ポート番号」という）が記憶される。次着パケットとは、他のノード１００がフラッディングしたパケットのうち先着パケットの次に自ノードに到着したパケットである。学習時刻項目には、先着パケットを受信した時刻が記憶される。
【００３７】
なお、ＭＡＣテーブル３０２ａでは、記憶内容を最新に保つため、所定時間更新されなかったレコードは削除される。この所定時間を測定するタイマーをＡｇｉｎｇ  ｔｉｍｅｒという。
【００３８】
（同一性情報テーブルの記憶内容）
次に、図３に示した同一性情報テーブルの記憶内容について説明する。
【００３９】
図５は、同一性情報テーブルの記憶内容を示す説明図である。図５に示すように、同一性情報テーブル３０２ｂは、パケット情報（ＦＣＳ値）項目と、先着時刻項目と、フラグ項目と、を有する。
【００４０】
パケット情報項目には、受信したパケットが先着パケットか後着パケットかを判定するために用いるパケットのＦＣＳ（Ｆｒａｍｅ  Ｃｈｅｃｋ  Ｓｅｑｕｅｎｃｅ）値（以下、「パケット情報」という）が記憶される。例えば、受信したパケットのＦＣＳ値と同値のＦＣＳ値が同一性情報テーブル３０２ｂに記憶されていない場合は受信したパケットは先着と判定されるようにする。また、受信したパケットのＦＣＳ値と同値のＦＣＳ値が同一性情報テーブル３０２ｂに記憶されている場合は受信したパケットは次着以降と判定されるようにする。
【００４１】
ここで、ＦＣＳ値とは、イーサネット（登録商標）におけるフレームの伝送誤り検出用に付加される３２ビットのフィールドであり、生成多項式により得られるＣＲＣ（Ｃｙｃｌｉｃ  Ｒｅｄｕｎｄａｎｃｙ  Ｃｏｄｅ）値のことを指す。つまり、このＦＣＳ値は、パケット全体を縮退した値であるので、これを同一性情報テーブル３０２ｂに保持して同一性判定に用いることとすれば、ハッシュ関数を用いたハッシュ値算出を行うことなくハッシュ値による同一性判定を行うことができる。なお、ＦＣＳ値を同一性判定に利用した場合の誤認識率は約４３億分の１になる。
【００４２】
ここでは、パケット情報項目には、パケットのＦＣＳ値が記憶されるとしたが、例えば、パケット情報項目には、パケットそのものが記憶されてもよいし、またパケットの所定部分のみが記憶されてもよい。パケットの所定部分としては、例えば、送信元ＭＡＣアドレスや宛先ＭＡＣアドレスを採用してもよいし、それらＭＡＣアドレスの組み合わせを採用してもよい。さらに、パケット情報項目には、パケットそのものまたはパケットの所定部分のハッシュ値を記憶してもよい。また、ハッシュ関数を用いたハッシュ値を採用してもよい。
【００４３】
先着時刻項目には、パケット情報を記憶した時刻が記憶される。フラグ項目は、パケットのＦＣＳ値と組み合わせてパケットの着順を識別するためのフラグが記憶される。例えば、受信したパケットのＦＣＳ値と同値の先着パケットのＦＣＳ値が同一性情報テーブル３０２ｂに記憶されていて、かつフラグが１である場合に、受信したパケットが次着であることを示すようにする。また、受信したパケットのＦＣＳ値と同値の先着パケットのＦＣＳ値が同一性情報テーブル３０２ｂに記憶されていて、かつフラグが０である場合に、受信したパケットが３着以降であることを示すようにする。
【００４４】
（ノードの機能的構成）
次に、図６を用いてノードの機能的構成について説明する。
【００４５】
図６は、ノードの機能的構成を示す機能ブロック図である。図６に示すように、ノード１００は、Ｎ個のポートを備えるとともに、パケット送受信部６０１と、パケット処理部６０２と、テーブル制御部６０３と、ＭＡＣテーブル３０２ａと、同一性情報テーブル３０２ｂと、を備える。また、各機能部（パケット送受信部６０１〜テーブル制御部６０３）の処理結果は、特に指定する場合を除いて、例えば、記憶装置３０２に記憶される。
【００４６】
ノード１００がＩｎｇｒｅｓｓノードまたはＥｇｒｅｓｓノードとして動作する場合のパケット送受信部６０１は、パケットを受信する機能を有する。具体的には、例えば、パケット送受信部６０１は、ポートからパケットを受信する。また、ノード１００がＩｎｇｒｅｓｓノードまたはＥｇｒｅｓｓノードとして動作する場合のパケット送受信部６０１は、一連のパケットを受信する機能を有する。具体的には、例えば、パケット送受信部６０１は、複数のポートからそれぞれパケットを受信する。これにより、パケット送受信部６０１は、パケットを受信してＭＡＣテーブル３０２ａや同一性情報テーブル３０２ｂを生成することができる。
【００４７】
ここでは、ノード１００がＩｎｇｒｅｓｓノードとして動作する場合のパケット送受信部６０１の機能について説明する。パケット送受信部６０１は、テーブルに特定のポート番号が記憶されていると判定された場合、自中継装置のポート群のうちパケットを受信したポートを除くポートからパケットを一斉送信する機能を有する。ここで、テーブルとは、上述したＭＡＣテーブル３０２ａである。特定のポート番号とは、上述した最短パスへのポートのポート番号である。
【００４８】
具体的には、例えば、後述するパケット処理部６０２によりＭＡＣテーブル３０２ａに最短パスへのポートのポート番号が記憶されているか否か判定される。そして、ポート番号が記憶されていると判定された場合、パケット送受信部６０１は、自ノードのポートのうちパケットを受信したポートを除くポートから、受信したパケットを複製してフラッディングする。
【００４９】
例えば、あるノード１００にポートが８個（ポートｐ１〜ｐ８）あり、ポートｐ１が上述した特定のポートであり、ポートｐ２が、上述したパケットを受信したポートの場合、ポートｐ１，ｐ３〜ｐ８からフラッディングされる。
【００５０】
また、ＶＬＡＮ（ＶｉｒｔｕａｌＬＡＮ）によりポート群（ポートｐ１〜ｐ８）が、ポートｐ１〜ｐ４とポートｐ５〜ｐ８に論理分割されている場合は、ポートｐ１，ｐ３、ｐ４からフラッディングされる。ポートｐ５〜ｐ８は、ポートｐ１、ｐ２と同一ＶＬＡＮではないため、フラッディングされない。
【００５１】
これにより、他のノード１００は最短パスとリンク・ノードを共用しない次善パスを生成することができる。
【００５２】
ここでは、ノード１００がＩｎｇｒｅｓｓノードとして動作する場合のパケット送受信部６０１の機能について説明する。パケット送受信部６０１は、テーブルに特定のポート番号が記憶されていると判定された場合、特定のポート番号のポートからパケットを送信する。そして、パケット送受信部６０１は、送信の時から所定時間経過後に、ポート群のうちパケットを受信したポートと特定のポート番号のポートとを除くポートからパケットを一斉送信する機能を有する。具体的には、例えば、パケット送受信部６０１は、ＭＡＣテーブル３０２ａに最短パスへのポートのポート番号が記憶されている場合に、受信したパケットを複製して最短パスへのポートから送信する。
【００５３】
そして、最短パスへの送信から所定時間経過後に自ノードのポートのうちパケットを受信したポートおよび最短パスへのポートを除くポートから、受信したパケットを複製してフラッディングする。
【００５４】
例えば、あるノード１００にポートが８個（ポートｐ１〜ｐ８）あり、ポートｐ１が上述した特定のポートであり、ポートｐ２が、上述したパケットを受信したポートの場合、ポートｐ３〜ｐ８からフラッディングされる。
【００５５】
また、ＶＬＡＮ（ＶｉｒｔｕａｌＬＡＮ）によりポート群（ポートｐ１〜ｐ８）が、ポートｐ１〜ｐ４とポートｐ５〜ｐ８に論理分割されている場合は、ポートｐ３、ｐ４からフラッディングされる。ポートｐ５〜ｐ８は、ポートｐ１、ｐ２と同一ＶＬＡＮではないため、フラッディングされない。
【００５６】
これにより、最短パスへ送信したパケットが遅延した場合であっても他のノード１００は最短パスとリンク・ノードを共用しない次善パスを生成することができる。
【００５７】
ここでは、ノード１００がＥｇｒｅｓｓノードとして動作する場合のパケット送受信部６０１の機能について説明する。パケット送受信部６０１は、先着のパケットおよび次着と判定された後着のパケットの送信元を宛先とするパケットを、テーブルに基づいて、先着のパケットを受信したポートおよび次着と判定された後着のパケットを受信したポートのそれぞれから送信する機能を有する。ここで、先着のパケットとは上述した先着パケットであり、後着のパケットとは、上述した後着パケットであり、次着と判定された後着のパケットとは上述した次着パケットである。
【００５８】
宛先とは、パケットの宛先であり、宛先ＭＡＣアドレスとして表される。送信元とはパケットの送信元であり、送信元ＭＡＣアドレスとして表される。具体的には、例えば、パケット送受信部６０１は、ＭＡＣテーブル３０２ａに基づき、最短パスへのポートおよび次善パスへのポートの２つのポートからパケットを送信する。これにより、同一パケットを２つのパスを経由して宛先に送信することができるため、いずれか一方のパスに障害があっても宛先へパケットを到着させることができる。
【００５９】
ここでは、ノード１００がＥｇｒｅｓｓノードとして動作する場合のパケット送受信部６０１の機能について説明する。パケット送受信部６０１は、テーブルに記憶されている宛先を送信元とするパケットが、宛先に対応する２つのポートからそれぞれ受信された場合、２つのポートから受信されたパケットのうち先着のパケットのみを送信する機能を有する。ここで、宛先に対応する２つのポートとは、上述した最短パスへのポートおよび次善パスへのポートである。
【００６０】
具体的には、パケット送受信部６０１は、ＭＡＣテーブル３０２ａにポート番号で記憶されている最短パスへのポートおよび次善パスへのポートからそれぞれパケットを受信した場合、いずれのパスを通過したパケットかに関わらず、先着パケットをパケットの宛先に送信し、もう一方のパケットは廃棄する。これにより、パケット送受信部６０１は、一方のパスに障害が発生した場合であっても、他方のパスからパケットを受信することができる。
【００６１】
パケット送受信部６０１は、具体的には、例えば、図３に示した記憶装置３０２に記憶された経路生成プログラムをＣＰＵ３０１に実行させることにより、およびＩ／Ｆ３０３により、その機能を実現する。
【００６２】
ここでは、ノード１００がＩｎｇｒｅｓｓノードとして動作する場合のパケット処理部６０２の機能について説明する。パケット処理部６０２は、パケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、パケット内の宛先に対応する特定のポート番号が記憶されているかを判定する機能を有する。具体的には、例えば、パケット処理部６０２は、ＭＡＣテーブル３０２ａに、パケット送受信部６０１によって受信されたパケット内の宛先ＭＡＣアドレスに対応するポート番号が記憶されているか判定する。これにより、上述した最短パスへのポートのポート番号がＭＡＣテーブル３０２ａに記憶されているか判定することができる。
【００６３】
ここでは、ノード１００がＩｎｇｒｅｓｓノードまたはＥｇｒｅｓｓノードとして動作する場合のパケット処理部６０２の機能について説明する。パケット処理部６０２は、一連のパケットが受信された場合、一連のパケットのうち先着のパケットと先着のパケットを受信したポート以外のポートから受信された後着のパケットとの同一性を判定する同一性判定機能を有する。具体的には、例えば、パケット処理部６０２は、受信したパケットのＦＣＳ値と同値のＦＣＳ値が同一性情報テーブル３０２ｂに記憶されているか判定し、記憶されていなければ受信したパケットを先着パケットと判定する。
【００６４】
一方、パケット処理部６０２は、受信したパケットのＦＣＳ値と同値のＦＣＳ値が同一性情報テーブル３０２ｂに記憶されていれば受信したパケットを次着以降のパケットと判定する。これにより、パケット処理部６０２は、一連のパケットのうち先着パケットと次着以降のパケットとを識別することができる。
【００６５】
ここでは、ノード１００がＥｇｒｅｓｓノードとして動作する場合のパケット処理部６０２の機能について説明する。パケット処理部６０２は、後着のパケットが先着のパケットの次着であるか否かを判定する着順判定機能を有する。具体的には、例えば、パケット処理部６０２は、同一性情報テーブル３０２ｂに基づき次着以降と判定された場合に、さらに同一性情報テーブル３０２ｂのフラグに基づき、受信したパケットが次着パケットか３着以降のパケットかを判定することができる。これにより、パケット処理部６０２は、次着パケットを判定し、次善パスへのポートを特定することができる。
【００６６】
パケット処理部６０２は、具体的には、例えば、図３に示した記憶装置３０２に記憶された経路生成プログラムをＣＰＵ３０１に実行させることにより、その機能を実現する。
【００６７】
ここでは、ノード１００がＩｎｇｒｅｓｓノードとして動作する場合のテーブル制御部６０３の機能について説明する。テーブル制御部６０３は、テーブルに、同一性判定機能によって同一性があると判定された後着のパケットを受信したポートのポート番号と、宛先となる後着のパケットの送信元とを関連付けて格納する機能を有する。具体的には、例えば、テーブル制御部６０３は、ＭＡＣテーブル３０２ａに後着パケットを受信したポートのポート番号と次着パケットの送信元ＭＡＣアドレスとを関連付けてレコードとして記憶する。これにより、テーブル制御部６０３は、着順を判定せずに後着のパケットを受信したポートのポート番号に基づき、次善パスへのポートのポート番号をＭＡＣテーブル３０２ａに保持することができる。
【００６８】
ここでは、ノード１００がＥｇｒｅｓｓノードとして動作する場合のテーブル制御部６０３の機能について説明する。テーブル制御部６０３は、宛先ごとに対応するポートのポート番号を記憶するテーブルに、同一性判定機能によって同一性があると判定され、かつ、着順判定機能によって次着と判定された後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された後着のパケットの送信元とを関連付けて格納する機能を有する。
【００６９】
具体的には、例えば、テーブル制御部６０３は、ＭＡＣテーブル３０２ａに次着パケットを受信したポートのポート番号と次着パケットの送信元ＭＡＣアドレスとを関連付けてレコードとして記憶する。これにより、テーブル制御部６０３は、次着パケットを受信したポートのポート番号に基づき、次善パスへのポートのポート番号をＭＡＣテーブル３０２ａに保持することができる。
【００７０】
テーブル制御部６０３は、具体的には、例えば、図３に示した記憶装置３０２に記憶された経路生成プログラムをＣＰＵ３０１に実行させることにより、および記憶装置３０２によりその機能を実現する。
【００７１】
（次善パスの生成の具体例）
次に、図７〜１７を用いて、次善パスの生成の具体例について説明する。図７〜図１７は、次善パスの生成の具体例を示す説明図である。ここで、図７〜図１７は、ノードＡ〜Ｉから構成されるネットワークを示している。また、ノードＡのポート番号「０」のポートのリンクの先にはＭＡＣアドレス「ｘｘｘ」の装置７０１が接続されており、ノードＩのポート番号「２５」のポートのリンクの先にはＭＡＣアドレス「ｙｙｙ」の装置７０２が接続されている。なお、以下の図では、簡単のため、ポート番号「０」のポート、ＭＡＣアドレス「ｘｘｘ」の装置７０１、ポート番号「２５」のポート、ＭＡＣアドレス「ｙｙｙ」の装置７０２の図示を省略する場合がある。
【００７２】
図７に示すように、このネットワークでは、まず従来技術である先着学習方式によって、ＭＡＣアドレス「ｘｘｘ」およびＭＡＣアドレス「ｙｙｙ」間の最短パスが生成されている。ここでは、最短パスは、ノードＡ、ノードＢ、ノードＤ、ノードＧ、ノードＩを通過するパスである。また、最短パスを構成する各ノード１００は、ＭＡＣアドレス「ｘｘｘ」およびＭＡＣアドレス「ｙｙｙ」に対してパケットを送信する際に使用するポートのポート番号をテーブルに保持している。一方で、最短パスを構成しないノードＣ、ノードＥ、ノードＦ、ノードＨは、ＭＡＣアドレス「ｙｙｙ」に対してパケットを送信する際に使用するポートのポート番号は保持していない。
【００７３】
このように最短パスが生成された状態で、本実施の形態にかかるＩｎｇｒｅｓｓノードおよびＥｇｒｅｓｓノードは、次善パスの生成を行う。ここでは、ＩｎｇｒｅｓｓノードおよびＥｇｒｅｓｓノードとなりうるノード１００は、ノードＡとノードＩであるとする。なお、ＩｎｇｒｅｓｓノードおよびＥｇｒｅｓｓノード以外のノードは、従来の先着学習方式に従って処理を行っている。
【００７４】
図８に示すように、送信元ＭＡＣアドレス（ＳＡ、Ｓｏｕｒｃｅ  Ａｄｄｒｅｓｓ）を「ｘｘｘ」、宛先ＭＡＣアドレス（ＤＡ、Ｄｅｓｔｉｎａｔｉｏｎ  Ａｄｄｒｅｓｓ）を「ｙｙｙ」とするパケットがノードＡに送信されたとする。ノードＡはパケットを受信すると、本実施の形態にかかるＩｎｇｒｅｓｓノードの処理に従って、パケット情報を同一性情報テーブル３０２ｂに保持し、ＭＡＣテーブル３０２ａにＳＡ「ｘｘｘ」が保持されているためＡｇｉｎｇ  ｔｉｍｅｒを更新する。
【００７５】
また、ノードＡは、ＭＡＣテーブル３０２ａにＤＡ「ｙｙｙ」に対応する先着ポート番号「１」が保持されているため、ポート番号「１」のポートからパケットをユニキャスト送信する。これによりパケットは、最短パスを通過してＤＡ「ｙｙｙ」に向かう。一方で、ノードＡは、ＭＡＣテーブル３０２ａにＤＡ「ｙｙｙ」に対応する次着ポート番号が保持されていないため、入力ポートおよび先着ポート以外の全ポートからパケットをフラッディングする。これにより、最短パス以外の残余のネットワークにおいて次善パスが生成されていく。
【００７６】
図８において送信されたパケットは、それぞれ図９に示すように各ノード１００に受信される。パケットを受信したノードＢは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル３０２ｂに保持し、ＭＡＣテーブル３０２ａにＳＡ「ｘｘｘ」が保持されているためＡｇｉｎｇ  ｔｉｍｅｒを更新する。また、ノードＢは、ＭＡＣテーブル３０２ａにＤＡ「ｙｙｙ」に対応する先着ポート番号「５」が保持されているため、ポート番号「５」のポートからパケットをユニキャスト送信する。これによりパケットは、最短パスを通過してＤＡ「ｙｙｙ」に向かう。
【００７７】
パケットを受信したノードＣは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル３０２ｂに保持し、ＭＡＣテーブル３０２ａにＳＡ「ｘｘｘ」が保持されているためＡｇｉｎｇ  ｔｉｍｅｒを更新する。また、ノードＣは、ＭＡＣテーブル３０２ａにＤＡ「ｙｙｙ」に対応する先着ポート番号が保持されていないため、入力ポート以外の全ポートからパケットをフラッディングする。これにより、最短パス以外の残余のネットワークにおいて次善パスが生成されていく。
【００７８】
図９において送信されたパケットは、それぞれ図１０に示すように各ノード１００に受信される。パケットを受信したノードＤは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル３０２ｂに保持し、ＭＡＣテーブル３０２ａにＳＡ「ｘｘｘ」が保持されているためＡｇｉｎｇ  ｔｉｍｅｒを更新する。また、ノードＤは、ＭＡＣテーブル３０２ａにＤＡ「ｙｙｙ」に対応する先着ポート番号「１０」が保持されているため、ポート番号「１０」のポートからパケットをユニキャスト送信する。これによりパケットは、最短パスを通過してＤＡ「ｙｙｙ」に向かう。
【００７９】
パケットを受信したノードＥは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル３０２ｂに保持し、ＭＡＣテーブル３０２ａのＳＡ「ｘｘｘ」に対応するポート番号「１１」を受信したパケットのポート番号「１２」に更新し、Ａｇｉｎｇ  ｔｉｍｅｒを更新する。また、ノードＥは、ＭＡＣテーブル３０２ａにＤＡ「ｙｙｙ」に対応する先着ポート番号が保持されていないため、入力ポート以外の全ポートからパケットをフラッディングする。これにより、最短パスの生成の際に保持されたＳＡ「ｘｘｘ」に対応するポート番号が更新され、最短パス以外の残余のネットワークにおいて次善パスが生成されていく。
【００８０】
パケットを受信したノードＦは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル３０２ｂに保持し、ＭＡＣテーブル３０２ａにＳＡ「ｘｘｘ」が保持されているためＡｇｉｎｇ  ｔｉｍｅｒを更新する。また、ノードＦは、ＭＡＣテーブル３０２ａにＤＡ「ｙｙｙ」に対応する先着ポート番号が保持されていないため、入力ポート以外の全ポートからパケットをフラッディングする。これにより、最短パス以外の残余のネットワークにおいて次善パスが生成されていく。
【００８１】
図１０において送信されたパケットは、それぞれ図１１に示すように各ノード１００に受信される。パケットを受信したノードＧは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル３０２ｂに保持し、ＭＡＣテーブル３０２ａにＳＡ「ｘｘｘ」が保持されているためＡｇｉｎｇ  ｔｉｍｅｒを更新する。また、ノードＧは、ＭＡＣテーブル３０２ａにＤＡ「ｙｙｙ」に対応する先着ポート番号「１９」が保持されているため、ポート番号「１９」のポートからパケットをユニキャスト送信する。これによりパケットは、最短パスを通過してＤＡ「ｙｙｙ」に向かう。
【００８２】
パケットを受信したノードＨは、従来の先着学習方式に従って、パケット情報を同一性情報テーブル３０２ｂに保持し、ＭＡＣテーブル３０２ａにＳＡ「ｘｘｘ」が保持されているためＡｇｉｎｇ  ｔｉｍｅｒを更新する。また、ノードＨは、ＭＡＣテーブル３０２ａにＤＡ「ｙｙｙ」に対応する先着ポート番号が保持されていないため、入力ポート以外の全ポートからパケットをフラッディングする。これにより、最短パス以外の残余のネットワークにおいて次善パスが生成されていく。
【００８３】
再度別ポートからパケットを受信したノードＢは、従来の先着学習方式に従って、受信したパケットのパケット情報が既に同一性情報テーブル３０２ｂに保持されているか判断する。ここで、同一性情報テーブル３０２ｂに同一のパケット情報が保持されているため、ノードＢは、受信したパケットは後着パケットであると判断し、パケットを廃棄する。この時ＭＡＣテーブル３０２ａは更新されない。これにより、最短パスとノード１００を共有するパスは次善パスから除外される。
【００８４】
図１１において送信されたパケットは、それぞれ図１２に示すように各ノード１００に受信される。パケットを受信したノードＩは、本実施の形態にかかるＥｇｒｅｓｓノードの処理に従って、パケット情報を同一性情報テーブル３０２ｂに保持し、ＭＡＣテーブル３０２ａにＳＡ「ｘｘｘ」が保持されているためＡｇｉｎｇ  ｔｉｍｅｒを更新する。また、ノードＩは、ＭＡＣテーブル３０２ａにＤＡ「ｙｙｙ」に対応する先着ポート番号「２５」が保持されているため、ポート番号「２５」のポートからパケットをユニキャスト送信する。これによりパケットは、ＤＡ「ｙｙｙ」に送信される。
【００８５】
再度別ポートからパケットを受信したノードＧは、従来の先着学習方式に従って、受信したパケットのパケット情報が既に同一性情報テーブル３０２ｂに保持されているか判断する。ここで、同一性情報テーブル３０２ｂに同一のパケット情報が保持されているため、ノードＧは、受信したパケットは後着パケットであると判断し、パケットを廃棄する。この時ＭＡＣテーブル３０２ａは更新されない。これにより、最短パスとノード１００を共有するパスは次善パスから除外される。
【００８６】
再度別ポートからパケットを受信したノードＨは、従来の先着学習方式に従って、受信したパケットのパケット情報が既に同一性情報テーブル３０２ｂに保持されているか判断する。ここで、同一性情報テーブル３０２ｂに同一のパケット情報が保持されているため、ノードＨは、受信したパケットは後着パケットであると判断し、パケットを廃棄する。この時ＭＡＣテーブル３０２ａは更新されない。これにより、最短パス以外のネットワークにおいて他のパスより遅延の大きいパスは次善パスから除外される。
【００８７】
図１２において送信されたパケットは、それぞれ図１３に示すように各ノード１００に受信される。再度別ポートからパケットを受信したノードＩは、本実施の形態にかかるＥｇｒｅｓｓノードの処理に従って、受信したパケットのパケット情報が既に同一性情報テーブル３０２ｂに保持されているか判断する。同一性情報テーブル３０２ｂに同一のパケット情報が保持されている場合、ノードＩは、同一性情報テーブル３０２ｂのフラグに基づき受信したパケットが次着パケットであるか否かを判断する。
【００８８】
ここで、ノードＩは、受信したパケットを次着パケットと判断し、受信したパケットのポート番号を次善パスへの送信に使用するポート番号としてＭＡＣテーブル３０２ａに保持する。そして受信したパケットを廃棄する。これにより、最短パスとノード・リンクを共有しない次善パスへ送信するポート番号がＭＡＣテーブル３０２ａに保持され、ＳＡ「ｙｙｙ」からＤＡ「ｘｘｘ」への一方向への次善パスが生成される。なお、３着目以降のパケットは同一性情報テーブル３０２ｂのパケット情報とフラグとに基づいて廃棄され、ＭＡＣテーブル３０２ａは更新されない。
【００８９】
次に、図１４に示すように、ＳＡを「ｙｙｙ」ＤＡを「ｘｘｘ」とするパケットがノードＩに送信されたとする。ここで、ノードＩは、本実施の形態にかかるＥｇｒｅｓｓノードの処理に従って、ＭＡＣテーブル３０２ａに最短パスのポート番号と次善パスのポート番号とが保持されているため、それぞれのポートからユニキャスト送信する。最短パスを構成する各ノード１００はＭＡＣアドレス「ｘｘｘ」およびＭＡＣアドレス「ｙｙｙ」に対してパケットを送信する際に使用するポート番号をテーブルに保持しているため、ＭＡＣテーブル３０２ａに基づいてＤＡ「ｘｘｘ」までパケットを送信することができる。
【００９０】
一方、図１５に示すように、次善パスを構成する各ノード１００は、ＤＡ「ｘｘｘ」に対応するポート番号がＭＡＣテーブル３０２ａに保持されているため、対応するポート番号のポートからパケットをユニキャスト送信する。同時に、ＳＡ「ｙｙｙ」に対応するポート番号をＭＡＣテーブル３０２ａに保持していく。これにより、パケットは、次善パスを通過してＤＡ「ｘｘｘ」に向かい、同時に、ＤＡ「ｙｙｙ」へ送信する際に使用するポート番号を保持することができる。
【００９１】
そして、図１６に示すように、再度別ポートからパケットを受信したノードＡは、本実施の形態にかかるＩｎｇｒｅｓｓノードの処理に従って、受信したパケットのパケット情報が既に同一性情報テーブル３０２ｂに保持されているか判断する。同一性情報テーブル３０２ｂに同一のパケット情報が保持されている場合、ノードＡは、同一性情報テーブル３０２ｂのフラグに基づき受信したパケットが次着パケットであるか否かを判断する。
【００９２】
ここで、ノードＡは、受信したパケットを次着パケットと判断し、受信したパケットのポート番号を次善パスへの送信に使用するポート番号としてＭＡＣテーブル３０２ａに保持する。そして受信したパケットを廃棄する。これにより、最短パスとノード・リンクを共有しない次善パスへ送信するポート番号がＭＡＣテーブル３０２ａに保持され、ＳＡ「ｘｘｘ」からＤＡ「ｙｙｙ」への双方向への次善パスが生成される。なお、３着目以降のパケットは同一性情報テーブル３０２ｂのパケット情報とフラグとに基づいて廃棄され、ＭＡＣテーブル３０２ａは更新されない。
【００９３】
このように次善パスが生成された後、本実施の形態にかかるＩｎｇｒｅｓｓノードは、パケットを受信すると、最短パスと次善パスのそれぞれにパケットを送信する。そして、本実施の形態にかかるＥｇｒｅｓｓノードは、最短パスと次善パスのうち、先着したパケットをＤＡ「ｙｙｙ」に送信し、後着したパケットは廃棄する。
【００９４】
これにより、図１７に示すように、最短パスを構成するリンクに障害が起こった場合であっても、次善パスからパケットを受信することができ、無瞬断かつパケットロスなしにネットワークを冗長化することができる。同様に、一方のパスがいわゆるキュー遅延により大きく遅延している場合であっても、もう一方のパスから遅延なしにパケットを受信することができる。そして、この次善パスは、ＩｎｇｒｅｓｓノードおよびＥｇｒｅｓｓノード以外のノード１００では従来の先着学習方式によって処理を行うため、オペレータはＩｎｇｒｅｓｓノードおよびＥｇｒｅｓｓノードについて設定を行うだけで、自動的にネットワークの冗長化を行うことができる。そのため、オペレーションコストを削減することができる。
【００９５】
次に、図１８に示したＩｎｇｒｅｓｓノードの経路生成処理の詳細について説明する。図１８は、Ｉｎｇｒｅｓｓノードの経路生成処理の詳細を示すフローチャートである。
【００９６】
図１８に示すように、パケット処理部６０２は、パケットが到着すると（ステップＳ１８０１）、パケット情報（ＦＣＳ値）を同一性情報テーブル３０２ｂに保持する（ステップＳ１８０２）。
【００９７】
つづいて、パケット処理部６０２は、ＭＡＣテーブル３０２ａに到着したパケット（以下、「到着パケット」という）内のＳＡ（送信元ＭＡＣアドレス）と同一のアドレスがあるか否かを判定し（ステップＳ１８０３）、ＳＡがある場合には（ステップＳ１８０３：Ｙｅｓ）、Ａｇｉｎｇ  ｔｉｍｅｒの更新を行う（ステップＳ１８０４）。一方、ＳＡがない場合には（ステップＳ１８０３：Ｎｏ）、パケット処理部６０２は、ＭＡＣテーブル３０２ａにＳＡおよび到着パケットを受信したポートのポート番号（以下、「受信ポート」という）を保持するとともに（ステップＳ１８０５）、Ａｇｉｎｇ  ｔｉｍｅｒの開始を行う（ステップＳ１８０６）。
【００９８】
また、パケット処理部６０２は、ＭＡＣテーブル３０２ａに到着パケット内のＤＡ（宛先ＭＡＣアドレス）に対応する先着ポート項目のポート番号（以下、「先着ポート番号」という）があるか否かを判定する（ステップＳ１８０７）。先着ポート番号がある場合には（ステップＳ１８０７：Ｙｅｓ）、パケット処理部６０２は、ＭＡＣテーブル３０２ａに到着パケット内のＤＡ（宛先ＭＡＣアドレス）に対応する次着ポート項目のポート番号（以下、「次着ポート番号」という）があるか否かを判定する（ステップＳ１８０８）。
【００９９】
次着ポート番号がある場合には（ステップＳ１８０８：Ｙｅｓ）、パケット処理部６０２は、テーブルで指定された先着ポート番号のポート（以下、「先着ポート」という）と次着ポート番号のポート（以下、「次着ポート」という）の２ポートからユニキャスト送信を行って（ステップＳ１８０９）処理を終了する。
【０１００】
一方、先着ポート番号がない場合（ステップＳ１８０７：Ｎｏ）、または次着ポート番号がない場合には（ステップＳ１８０８：Ｎｏ）、パケット処理部６０２は、該当パケットが未到着の全ポートから到着パケットをフラッディングして（ステップＳ１８１０）、処理を終了する。このとき、ポートが例えばＶＬＡＮ（ＶｉｒｔｕａｌＬＡＮ）などのネットワーク単位でグループ分けされている場合は、パケット処理部６０２は、パケットの受信ポートと同じグループに所属するポートのみに対してフラッディングを行う。換言すれば、パケット処理部６０２は、先着ポート番号がない場合（ステップＳ１８０７：Ｎｏ）、または次着ポート番号がない場合には（ステップＳ１８０８：Ｎｏ）、パケットが未到着のポートのうちブロードキャストドメインの全ポートからフラッディングを行う。
【０１０１】
ここでは、各ノード１００に最短パスからのパケットが必ず先着することを前提としているが、キュー遅延によって最短パスからのパケットの到着が遅れる場合も考えられる。このような場合にも、最短パスからのパケットが必ず先着するようにするために、図１８に示した経路生成処理を、図１９に示す経路生成処理に修正してもよい。
【０１０２】
図１９は、Ｉｎｇｒｅｓｓノードの遅延挿入を行う経路生成処理の詳細を示すフローチャートである。図１９に示すように、パケット処理部６０２は、パケットが到着すると（ステップＳ１９０１）、パケット情報を同一性情報テーブル３０２ｂに保持する（ステップＳ１９０２）。
【０１０３】
つづいて、パケット処理部６０２は、ＭＡＣテーブル３０２ａに到着パケット内のＳＡと同一のアドレスがあるか否かを判定し（ステップＳ１９０３）、ＳＡがある場合には（ステップＳ１９０３：Ｙｅｓ）、Ａｇｉｎｇ  ｔｉｍｅｒの更新を行う（ステップＳ１９０４）。一方、ＳＡがない場合には（ステップＳ１９０３：Ｎｏ）、パケット処理部６０２は、ＭＡＣテーブル３０２ａにＳＡおよび受信ポートを保持するとともに（ステップＳ１９０５）、Ａｇｉｎｇ  ｔｉｍｅｒの開始を行う（ステップＳ１９０６）。
【０１０４】
また、パケット処理部６０２は、ＭＡＣテーブル３０２ａに到着パケット内のＤＡに対応する先着ポート番号があるか否かを判定する（ステップＳ１９０７）。先着ポート番号がある場合には（ステップＳ１９０７：Ｙｅｓ）、パケット処理部６０２は、ＭＡＣテーブル３０２ａに到着パケット内のＤＡに対応する次着ポート番号があるか否かを判定する（ステップＳ１９０８）。
【０１０５】
次着ポート番号がある場合には（ステップＳ１９０８：Ｙｅｓ）、パケット処理部６０２は、テーブルで指定された先着ポートと次着ポートの２ポートからユニキャスト送信を行って（ステップＳ１９０９）処理を終了する。
【０１０６】
一方、次着ポート番号がない場合には（ステップＳ１９０８：Ｎｏ）、パケット処理部６０２は、テーブルで指定された先着ポートから送信を行って、所定時間経過後（遅延挿入という）にステップＳ１９１１に進む（ステップＳ１９１０）。そして、パケット処理部６０２は、先着ポート以外であって該当パケットが未到着の全ポートからフラッディングして（ステップＳ１９１１）処理を終了する。
【０１０７】
また、先着ポート番号がない場合には（ステップＳ１９０７：Ｎｏ）、パケット処理部６０２は、該当パケットが未到着の全ポートからフラッディングを行って（ステップＳ１９１２）処理を終了する。このとき、ポートが例えばＶＬＡＮ（ＶｉｒｔｕａｌＬＡＮ）などのネットワーク単位でグループ分けされている場合は、パケット処理部６０２は、パケットの受信ポートと同じグループに所属するポートのみに対してフラッディングを行う。換言すれば、パケット処理部６０２は、先着ポート番号がない場合（ステップＳ１９０７：Ｎｏ）、または次着ポート番号がない場合には（ステップＳ１９０８：Ｎｏ）、パケットが未到着のポートのうちブロードキャストドメインの全ポートからフラッディングを行う。
【０１０８】
次に、図２０に示したＥｇｒｅｓｓノードの経路生成処理の詳細について説明する。図２０は、Ｅｇｒｅｓｓノードの経路生成処理の詳細を示すフローチャートである。
【０１０９】
図２０に示すように、パケット処理部６０２は、パケットが到着すると（ステップＳ２００１）、同一性情報テーブル３０２ｂに一致情報があるか否かを判定する（ステップＳ２００２）。そして、同一性情報テーブル３０２ｂに一致情報がない場合には（ステップＳ２００２：Ｎｏ）、パケット処理部６０２は、ステップＳ２００１におけるパケットに関するパケット情報を同一性情報テーブル３０２ｂに保持するとともに、フラグを１にセットする（ステップＳ２００３）。
【０１１０】
つづいて、パケット処理部６０２は、ＭＡＣテーブル３０２ａに到着パケット内のＳＡと同一のアドレスがあるか否かを判定し（ステップＳ２００４）、ＳＡがある場合には（ステップＳ２００４：Ｙｅｓ）、Ａｇｉｎｇ  ｔｉｍｅｒの更新を行う（ステップＳ２００５）。一方、ＳＡがない場合には（ステップＳ２００４：Ｎｏ）、パケット処理部６０２は、ＭＡＣテーブル３０２ａにＳＡおよび受信ポートを保持するとともに（ステップＳ２００６）、Ａｇｉｎｇ  ｔｉｍｅｒの開始を行う（ステップＳ２００７）。
【０１１１】
また、パケット処理部６０２は、ＭＡＣテーブル３０２ａに到着パケット内のＤＡに対応する先着ポート番号があるか否かを判定し（ステップＳ２００８）、先着ポート番号がある場合には（ステップＳ２００８：Ｙｅｓ）、テーブルで指定されたポートからユニキャスト送信を行って（ステップＳ２００９）処理を終了する。一方、先着ポート番号がない場合には（ステップＳ２００８：Ｎｏ）、パケット処理部６０２は、該当パケットが未到着の全ポートからフラッディングを行って（ステップＳ２０１０）処理を終了する。
【０１１２】
このとき、ポートが例えばＶＬＡＮ（ＶｉｒｔｕａｌＬＡＮ）などのネットワーク単位でグループ分けされている場合は、パケット処理部６０２は、パケットの受信ポートと同じグループに所属するポートのみに対してフラッディングを行う。換言すれば、パケット処理部６０２は、ＤＡがない場合には（ステップＳ２００８：Ｎｏ）、パケットが未到着のポートのうちブロードキャストドメインの全ポートからフラッディングを行う。
【０１１３】
また、ステップＳ２００２において同一性情報テーブル３０２ｂに一致情報があると判定された場合には（ステップＳ２００２：Ｙｅｓ）、パケット処理部６０２は、同一性情報テーブル３０２ｂに記憶されているフラグが１か否か判定する（ステップＳ２０１１）。フラグが１でない場合（ステップＳ２０１１：Ｎｏ）、ステップＳ２０１４に進む。フラグが１である場合（ステップＳ２０１１：Ｙｅｓ）、パケット処理部６０２は、ＭＡＣテーブル３０２ａにＳＡおよび受信ポートを保持し（ステップＳ２０１２）、フラグを０にセットする（ステップＳ２０１３）。そして、パケット処理部６０２は、パケットを廃棄して（ステップＳ２０１４）処理を終了する。
【０１１４】
このように、上述した実施の形態では、最短パスの一端となるノード１００は、パケットを受信したポート以外の全ポートへパケットをフラッディングする。これにより、ネットワークを構成するノード１００に、最短パスとノード・リンクを共用しない次善パスの復路を自動的に学習させることができる。そして、最短パスの他端となるノード１００は、最短パスと次善パスとを学習することができる。
【０１１５】
また、上述した実施の形態では、最短パスの一端となるノード１００は、次善パスの生成の際、最短パスのポートからのパケットの送信時から一定時間経過後に、パケットを受信したポートおよび最短パスへのポート以外の全ポートへパケットをフラッディングする。そのため、最短パスにキュー遅延があった場合であっても、次善パスを学習することができる。
【０１１６】
このように次善パスを学習した他端のノード１００は、パケットを受信すると、最短パスと次善パスのそれぞれにパケットを送信する。これにより、次善パスの復路上のノード１００に、次善パスの往路を自動的に学習させることができる。そして、双方向への次善パスが最短パスの一端のノード１００および他端のノード１００のそれぞれにおいて学習できる。
【０１１７】
そして、双方向の次善パスを学習した一端のノードは最短パスと次善パスとのそれぞれにパケットを送信する。また、双方向の次善パスを学習した他端のノードは、最短パスと次善パスのうち、いずれのパスを経由したパケットであるかに関わらず先着パケットをパケット内の宛先ＭＡＣアドレスに送信し、後着したパケットは廃棄する。これにより、いずれか一方のパスを構成するノード・リンクに障害が起こった場合であっても、他方のパスからパケットを受信することができ、無瞬断かつパケットロスなしに障害を復旧することができる。
【０１１８】
同様に、双方向の次善パスを学習した他端のノード１００は、一方のパスがいわゆるキュー遅延により大きく遅延している場合であっても、他方のパスから遅延なしにパケットを受信することができる。
【０１１９】
そして、この次善パスは、最短パスの一端のノード１００および他端のノード１００以外のノード１００では従来の先着学習方式によって処理を行うため、オペレータは最短パスの一端のノード１００および他端のノード１００について設定を行うだけで、自動的にネットワークの冗長化を行うことができる。
【０１２０】
そのため、オペレータによるパス設計の作業負担の軽減を図ることができる。また、次善パスを自動生成できるため、オペレータのパス設計の熟練度に関わらず、容易に次善パスを生成することができる。さらに、次善パスを自動生成できるため、次善パスを高速に設定することができる。
【０１２１】
そして、最短パスまたは次善パスのいずれか一方のパスに障害が発生した場合、未障害パスを生成済の最短パスとして、本実施の形態で示した次善パス生成を行うことで、パスが１本である期間を短くすることができ、ネットワークの安全性の向上を図ることができる。また、障害箇所の特定や障害の復旧には時間を要するが、障害発生時に次善パスを高速生成することで、パスが２本の状態に早期に復帰できるため、障害箇所の特定作業や障害の復旧作業を、時間をかけて行うこともできる。
【０１２２】
なお、上述した実施の形態では、簡単のため、ノード１００がＩｎｇｒｅｓｓノードまたはＥｇｒｅｓｓノードであるとして記載した。しかし、実際には、ノード１００は、ＩｎｇｒｅｓｓノードおよびＥｇｒｅｓｓノードの両方の機能を有している。このため、実際には、オペレータは、ノード１００のポートに対して、ＩｎｇｒｅｓｓまたはＥｇｒｅｓｓのポート属性を設定することになる。
【０１２３】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１２４】
（付記１）先着学習方式により第１の装置から第２の装置への経路が設定されたネットワークを構成する中継装置群内の前記経路上の一端の中継装置が、前記第１の装置を送信元とし前記第２の装置を宛先とする往路パケットを、前記一端の中継装置のポート群のうち前記先着学習方式で学習済の特定のポートから送信し、前記ポート群のうち前記往路パケットの受信ポートおよび前記特定のポート以外のポートから前記往路パケットをフラッディングする第１の工程と、
前記中継装置群内の前記経路上の中継装置以外の中継装置が、フラッディングされてきた前記往路パケットのうち先着往路パケットの送信元と受信ポートのポート番号を前記先着学習方式で学習し、前記受信ポート以外のポートから前記往路パケットをフラッディングする第２の工程と、
前記中継装置群内の前記経路上の他端の中継装置が、前記経路上の中継装置から送信されてきた前記往路パケットを、前記先着学習方式で学習済の前記他端の中継装置のポート番号のポートから前記第２の装置宛に送信し、前記他端の中継装置にフラッディングされてきた前記往路パケットのうち先着往路パケットの送信元と受信ポートのポート番号を学習する第３の工程と、
を含んだことを特徴とする経路生成方法。
【０１２５】
（付記２）前記第１の工程は、
前記一端の中継装置が、前記特定のポートから前記往路パケットを送信し、前記特定のポートからの前記往路パケットの送信時から所定時間経過後に前記ポート群のうち前記往路パケットの受信ポートおよび前記特定のポート以外のポートから前記往路パケットをフラッディングすることを特徴とする付記１に記載の経路生成方法。
【０１２６】
（付記３）前記他端の中継装置が、前記第２の装置を送信元とし前記第１の装置を宛先とする復路パケットを、前記先着学習方式で前記第３の工程の前に学習済の第１のポートと前記第３の工程で学習された第２のポートとから送信する第４の工程と、
前記中継装置群内の前記経路上の中継装置以外の中継装置が、前記第４の工程によって送信されてきた前記復路パケットを受信できた場合、前記復路パケットの送信元と受信ポートのポート番号を前記先着学習方式で学習し、前記往路パケットの送信元に対応するポート番号のポートから前記復路パケットを送信する第５の工程と、
前記一端の中継装置が、前記特定のポートから受信された前記復路パケットを、前記先着学習方式で学習済である前記第１の装置の宛先に対応するポート番号のポートから前記第１の装置宛に送信し、前記特定のポート以外のポートから受信された前記復路パケットの送信元と前記復路パケットを受信した前記特定のポート以外のポートのポート番号を学習する第６の工程と、
を含んだことを特徴とする付記１または２に記載の経路生成方法。
【０１２７】
（付記４）前記第６の工程の後に、前記他端の中継装置が、前記第１の装置を送信元とし前記第２の装置を宛先とするあらたなパケットを、前記第１のポートと前記第２のポートからそれぞれ受信した場合、前記第１のポートから受信した前記パケットと前記第２のポートから受信した前記パケットとのうち、先着の前記パケットのみを前記第２の装置に送信する第７の工程を含んだことを特徴とする付記３に記載の経路生成方法。
【０１２８】
（付記５）パケットを受信する受信手段と、
前記受信手段によってパケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記パケット内の宛先に対応する特定のポート番号が記憶されているかを判定する判定手段と、
前記判定手段によって前記特定のポート番号が記憶されていると判定された場合、自中継装置のポート群のうち前記パケットを受信したポートを除くポートから前記パケットを一斉送信する送信手段と、
を備えることを特徴とする中継装置。
【０１２９】
（付記６）前記送信手段は、
前記判定手段によって前記特定のポート番号が記憶されていると判定された場合、前記特定のポート番号のポートから前記パケットを送信し、前記送信の時から所定時間経過後に、前記ポート群のうち前記パケットを受信したポートと前記特定のポート番号のポートとを除くポートから前記パケットを一斉送信することを特徴とする付記５に記載の中継装置。
【０１３０】
（付記７）前記受信手段によって、一連のパケットが受信された場合、前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信された後着のパケットとの同一性を判定する同一性判定手段と、
前記テーブルに、前記同一性判定手段によって同一性があると判定された前記後着のパケットを受信したポートのポート番号と、宛先となる前記後着のパケットの送信元とを関連付けて格納する格納手段と、
を備えることを特徴とする付記５または６に記載の中継装置。
【０１３１】
（付記８）一連のパケットを受信する受信手段と、
前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信される後着のパケットとの同一性を判定する同一性判定手段と、
前記後着のパケットが前記先着のパケットの次着であるか否かを判定する着順判定手段と、
宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記同一性判定手段によって同一性があると判定され、かつ、前記着順判定手段によって次着と判定された前記後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された前記後着のパケットの送信元とを関連付けて格納する格納手段と、
を備えることを特徴とする中継装置。
【０１３２】
（付記９）前記先着のパケットおよび次着と判定された前記後着のパケットの送信元を宛先とするパケットを、前記テーブルに基づいて、前記先着のパケットを受信したポートおよび次着と判定された前記後着のパケットを受信したポートのそれぞれから送信する送信手段を備えることを特徴とする付記８に記載の中継装置。
【０１３３】
（付記１０）前記送信手段は、
前記テーブルに記憶されている宛先を送信元とするパケットが、前記宛先に対応する２つのポートからそれぞれ受信された場合、前記２つのポートから受信された前記パケットのうち先着の前記パケットのみを送信することを特徴とする付記９に記載の中継装置。
【０１３４】
（付記１１）パケットを受信する受信工程と、
前記受信工程によってパケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記パケット内の宛先に対応する特定のポート番号が記憶されているかを判定する判定工程と、
前記判定工程によって前記特定のポート番号が記憶されていると判定された場合、自中継装置のポート群のうち前記パケットを受信したポートを除くポートから前記パケットを一斉送信する送信工程と、
をコンピュータに実行させることを特徴とする経路生成プログラム。
【０１３５】
（付記１２）前記送信工程は、
前記判定工程によって前記特定のポート番号が記憶されていると判定された場合、前記特定のポート番号のポートから前記パケットを送信し、前記送信の時から所定時間経過後に、前記ポート群のうち前記パケットを受信したポートと前記特定のポート番号のポートとを除くポートから前記パケットを一斉送信することを特徴とする付記１１に記載の経路生成プログラム。
【０１３６】
（付記１３）前記受信工程によって、一連のパケットが受信された場合、前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信された後着のパケットとの同一性を判定する同一性判定工程と、
前記テーブルに、前記同一性判定工程によって同一性があると判定された前記後着のパケットを受信したポートのポート番号と、宛先となる前記後着のパケットの送信元とを関連付けて格納する格納工程と、
を備えることを特徴とする付記１１または１２に記載の経路生成プログラム。
【０１３７】
（付記１４）一連のパケットを受信する受信工程と、
前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信される後着のパケットとの同一性を判定する同一性判定工程と、
前記後着のパケットが前記先着のパケットの次着であるか否かを判定する着順判定工程と、
宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記同一性判定工程によって同一性があると判定され、かつ、前記着順判定工程によって次着と判定された前記後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された前記後着のパケットの送信元とを関連付けて格納する格納工程と、
をコンピュータに実行させることを特徴とする経路生成プログラム。
【０１３８】
（付記１５）前記先着のパケットおよび次着と判定された前記後着のパケットの送信元を宛先とするパケットを、前記テーブルに基づいて、前記先着のパケットを受信したポートおよび次着と判定された前記後着のパケットを受信したポートのそれぞれから送信する送信工程を備えることを特徴とする付記１４に記載の経路生成プログラム。
【０１３９】
（付記１６）前記送信工程は、
前記テーブルに記憶されている宛先を送信元とするパケットが、前記宛先に対応する２つのポートからそれぞれ受信された場合、前記２つのポートから受信された前記パケットのうち先着の前記パケットのみを送信することを特徴とする付記１５に記載の経路生成プログラム。
【０１４０】
（付記１７）コンピュータが、
パケットを受信する受信工程と、
前記受信工程によってパケットが受信された場合、宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記パケット内の宛先に対応する特定のポート番号が記憶されているかを判定する判定工程と、
前記判定工程によって前記特定のポート番号が記憶されていると判定された場合、自中継装置のポート群のうち前記パケットを受信したポートを除くポートから前記パケットを一斉送信する送信工程と、
を実行することを特徴とする経路生成方法。
【０１４１】
（付記１８）前記送信工程は、
前記判定工程によって前記特定のポート番号が記憶されていると判定された場合、前記特定のポート番号のポートから前記パケットを送信し、前記送信の時から所定時間経過後に、前記ポート群のうち前記パケットを受信したポートと前記特定のポート番号のポートとを除くポートから前記パケットを一斉送信することを特徴とする付記１７に記載の経路生成方法。
【０１４２】
（付記１９）前記受信工程によって、一連のパケットが受信された場合、前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信された後着のパケットとの同一性を判定する同一性判定工程と、
前記テーブルに、前記同一性判定工程によって同一性があると判定された前記後着のパケットを受信したポートのポート番号と、宛先となる前記後着のパケットの送信元とを関連付けて格納する格納工程と、
を備えることを特徴とする付記１７または１８に記載の経路生成方法。
【０１４３】
（付記２０）コンピュータが、
一連のパケットを受信する受信工程と、
前記一連のパケットのうち先着のパケットと前記先着のパケットを受信したポート以外のポートから受信される後着のパケットとの同一性を判定する同一性判定工程と、
前記後着のパケットが前記先着のパケットの次着であるか否かを判定する着順判定工程と、
宛先ごとに対応するポートのポート番号を記憶するテーブルに、前記同一性判定工程によって同一性があると判定され、かつ、前記着順判定工程によって次着と判定された前記後着のパケットを受信したポートのポート番号と、宛先となる次着と判定された前記後着のパケットの送信元とを関連付けて格納する格納工程と、
を実行することを特徴とする経路生成方法。
【０１４４】
（付記２１）前記先着のパケットおよび次着と判定された前記後着のパケットの送信元を宛先とするパケットを、前記テーブルに基づいて、前記先着のパケットを受信したポートおよび次着と判定された前記後着のパケットを受信したポートのそれぞれから送信する送信工程を備えることを特徴とする付記２０に記載の経路生成方法。
【０１４５】
（付記２２）前記送信工程は、
前記テーブルに記憶されている宛先を送信元とするパケットが、前記宛先に対応する２つのポートからそれぞれ受信された場合、前記２つのポートから受信された前記パケットのうち先着の前記パケットのみを送信することを特徴とする付記２１に記載の経路生成方法。
【符号の説明】
【０１４６】
１００  ノード（中継装置）
３０２ａ  ＭＡＣテーブル
３０２ｂ  同一性情報テーブル
６０１  パケット送受信部
６０２  パケット処理部
６０３  テーブル制御部
【図１】
0005630306.tif 000002
【図２】
0005630306.tif 000003
【図３】
0005630306.tif 000004
【図４】
0005630306.tif 000005
【図５】
0005630306.tif 000006
【図６】
0005630306.tif 000007
【図７】
0005630306.tif 000008
【図８】
0005630306.tif 000009
【図９】
0005630306.tif 000010
【図１０】
0005630306.tif 000011
【図１１】
0005630306.tif 000012
【図１２】
0005630306.tif 000013
【図１３】
0005630306.tif 000014
【図１４】
0005630306.tif 000015
【図１５】
0005630306.tif 000016
【図１６】
0005630306.tif 000017
【図１７】
0005630306.tif 000018
【図１８】
0005630306.tif 000019
【図１９】
0005630306.tif 000020
【図２０】
0005630306.tif 000021