(57)【要約】【課題】１：１切替方式にて現用系の通信経路に障害が発生した時にも、現用系の通信経路から予備系の通信経路へ無瞬断にて切替を行う。【解決手段】送信側装置１１のバッファは、パス１０２で障害が発生してから障害の発生が検出されるまでの推定時間に相当する容量を有する。パス１０２の障害の発生が検出されると、送信側装置１１では、パケットを送信する経路が、パス１０３に切り替えられ、パス１０１から受信したパケットではなく、バッファに蓄積されたパケットが受信側装置２１に送信される。受信側装置２１では、パケットのハッシュ値等が生成されている。受信側装置２１は、パケットを受信する度にハッシュ値等を保持し、保持したハッシュ値等と新たに受信したパケットのハッシュ値等とを比較する。この比較により、すでに受信したパケットであれば、そのパケットが破棄される。【選択図】図１
2013085100.tif 000002
【特許請求の範囲】
【請求項１】
現用系の通信経路と予備系の通信経路とを含む複数の通信経路で接続された送信側装置と受信側装置とを備えるパケット転送システムであって、
前記送信側装置及び前記受信側装置のいずれか一方は、パケットの識別情報を生成する識別情報生成部を備え、
前記送信側装置は、
前記現用系の通信経路における障害の発生を検出する障害検出部と、
前記障害検出部で障害の発生が検出されると、入力したパケットの出力先を、現用系の通信経路から予備系の通信経路に切り替えるスイッチと、
前記現用系の通信経路で障害が発生してから前記障害検出部で障害の発生が検出されるまでの推定時間に現用系の通信経路を送信されるパケットを蓄積可能な容量を有し、上位の通信経路から受信したパケットを蓄積するファーストイン・ファーストアウトのバッファと、
前記障害検出部で障害の発生が検出される前は、上位の通信経路から直接入力されるパケットを選択して前記スイッチに出力し、前記障害検出部で障害が検出された後は前記バッファが空でなければ前記バッファから読みだされるパケットを選択して前記スイッチに出力し、前記バッファが空になると上位の通信経路から直接入力されるパケットを選択して前記スイッチに出力するセレクタと、
を備え、
前記受信側装置は、
前記複数の通信経路のいずれかから受信したパケットの識別情報を保持する保持部と、
前記保持部に保持された識別情報と新たに受信したパケットの識別情報とを比較することにより、受信したパケットを下位の通信経路に送信するか否かを決定するパケット制御部と、
を備えるパケット転送システム。
【請求項２】
前記送信側装置は、
前記障害検出部で障害の発生が検出されると、切替通知用の制御パケットを生成して前記セレクタに出力する制御パケット生成部をさらに備え、
前記セレクタは、
前記障害検出部で障害の発生が検出されると、前記バッファが空でなければ、前記制御パケット生成部で生成された制御パケットを選択して前記スイッチに出力した後に、前記バッファから読みだされるパケットを選択して前記スイッチに出力する、
ことを特徴とする請求項１に記載のパケット転送システム。
【請求項３】
前記受信側装置は、
前記識別情報生成部として、受信したパケットのハッシュ値を前記識別情報として算出するハッシュ値算出部をさらに備え、
前記パケット制御部は、
前記制御パケットを受信していない間は受信したパケットを下位の通信経路に出力し、前記制御パケットを受信すると受信フラグをセットし、受信フラグが設定されている間は受信したパケットを廃棄し、前記保持部で保持されたハッシュ値と新たに受信したハッシュ値とが一致すると、前記受信フラグをリセットするとともに、受信したパケットを廃棄する、
ことを特徴とする請求項２に記載のパケット転送システム。
【請求項４】
前記ハッシュ値算出部は、
ハッシュ値とともに、受信したパケットのパケット長を算出し、
前記保持部は、
ハッシュ値とともに、パケット長を保持し、
前記パケット制御部は、
前記保持部で保持されたハッシュ値及びパケット長と新たに受信したハッシュ値及びパケット長とが一致すると、前記受信フラグをリセットするとともに、受信したパケットを廃棄する、
ことを特徴とする請求項３に記載のパケット転送システム。
【請求項５】
前記受信側装置は、
入力される選択信号に従って、現用系の通信経路から受信したパケットか、予備系の通信経路から受信したパケットかのいずれかを選択して、イネーブル信号が有意である場合に、下位の通信経路に出力するセレクタをさらに備え、
前記パケット制御部は、
前記制御パケットを受信していない間はイネーブル信号を有意とし、前記制御パケットを受信すると予備系の通信経路を選択する選択信号を出力するとともにイネーブル信号を無意とし、前記保持部で保持されたハッシュ値と新たに受信したハッシュ値とが一致すると、受信したパケットを廃棄した後にイネーブル信号を有意とする、
ことを特徴とする請求項２に記載のパケット転送システム。
【請求項６】
前記送信側装置は、
前記識別情報生成部として、前記パケットにシーケンス番号を付与するシーケンス番号付与部をさらに備える、
ことを特徴とする請求項１に記載のパケット転送システム。
【請求項７】
前記パケット制御部は、
新たに受信したパケットのシーケンス番号が前記保持部で保持されたシーケンス番号以下である場合にはパケットを廃棄し、新たに受信したパケットのシーケンス番号が前記保持部で保持されたシーケンス番号より大きい場合には、受信したパケットを下位の通信経路に送信する、
ことを特徴とする請求項６に記載のパケット転送システム。
【請求項８】
前記受信側装置は、
入力される選択信号に従って、現用系の通信経路から受信したパケットと予備系の通信経路から受信したパケットとのいずれかを選択して、イネーブル信号が有意である場合に入力したパケットを下位の通信経路に出力するセレクタをさらに備え、
前記パケット制御部は、
新たに受信したパケットのシーケンス番号が前記保持部で保持されたシーケンス番号より大きい場合にはイネーブル信号を有意とし、新たに受信したパケットのシーケンス番号が前記保持部で保持されたシーケンス番号以下である場合には予備系の通信経路を選択する選択信号を出力するとともにイネーブル信号を無意とする、
ことを特徴とする請求項６に記載のパケット転送システム。
【請求項９】
現用系の通信経路と予備系の通信経路とを含む複数の通信経路で接続された送信側装置と受信側装置とを備えるパケット転送方法であって、
前記送信側装置及び前記受信側装置のいずれか一方で、前記パケットの識別情報を生成する第１の工程と、
前記送信側装置で、前記現用系の通信経路における障害の発生を検出する第２の工程と、
前記送信側装置で、前記現用系の通信経路で障害が発生してから前記第２の工程で障害の発生が検出されるまでの推定時間に現用系の通信経路を送信されるパケットを蓄積可能な容量を有するファーストイン・ファーストアウトのバッファで、上位の通信経路から受信したパケットを蓄積する第３の工程と、
前記送信側装置で、前記第２の工程で障害の発生が検出される前は、上位の通信経路から直接入力されるパケットを選択して現用系の通信経路に出力し、前記第２の工程で障害の発生が検出された後は前記バッファが空でなければ前記バッファから読みだされるパケットを選択して予備系の通信経路に出力し、前記バッファが空になると上位の通信経路から直接入力されるパケットを選択して予備系の通信経路に出力する第４の工程と、
前記受信側装置で、前記複数の通信経路のいずれかから受信したパケットの識別情報を保持する第５の工程と、
前記受信側装置で、前記第５の工程で保持された識別情報と新たに受信したパケットの識別情報とを比較することにより、受信したパケットを下位の通信経路に送信するか否かを決定する第６の工程と、
を含むパケット転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、パケット転送システム及びパケット転送方法に関する。
【背景技術】
【０００２】
パケット転送方式として、従来より１＋１切替方式が用いられている。１＋１切替方式では、受信側において通常は現用系の通信経路を選択し、障害時には予備系の通信経路を選択する切替方式である。この方式では、現用系の通信経路と予備系の通信経路とに同じパケットを送信する。両系が正常な場合には、受信側装置では、両系からパケットを受信することとなる。そこで、受信側装置内のセレクタにて現用系の通信経路から受信したパケットを選択して出力する。現用系の通信経路に障害が発生した場合、セレクタを予備系に切り替えることで、受信側装置は、パケットを受信可能になる。
【０００３】
この切替の際に問題となるのが、障害の発生からセレクタ切替の間に現用系の通信経路を送信されていたパケットの損失である。このパケット損失をなくし、無瞬断で切り替える方法が開示されている（例えば、特許文献１参照）。この方法では、送信側でパケットにシーケンス番号を挿入し、受信側装置では両系にバッファを有し、障害の発生により現用系の通信経路からパケットが到着しなくなると、予備系の通信経路のバッファから読み出し、シーケンス番号により、パケットの二重到着や損失を防止する。
【０００４】
また、パケット通信方式ではなく、伝送信号が通信経路を連続的に流れるＳＤＨ（Synchronous Digital Hierarchy）やＡＴＭ（Asynchronous Transfer Mode）装置において、１＋１切替方式にて、受信側で現用系と予備系のパケットの位相を完全に合わせこみ、切り替える方式が提案されている（例えば、特許文献２参照）。
【０００５】
一方、現用系の通信経路と予備系の通信経路との一方でしか信号を転送しない１：１切替方式での障害時の切替方法も提案されている（例えば、特許文献３参照）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２０９０４０号公報
【特許文献２】特開平１０−１３５９２３号公報
【特許文献３】特開２００４−２５４３３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述のように、１＋１切替方式では故障発生時の無瞬断での切替方法が提案されている。しかしながら、１＋１切替方式では、現用系と予備系の両方の系にデータが流れるため、予備系の装置でも処理が行われることとなり、ネットワーク全体では、現用系だけにデータを送る場合（１：１切替方式）と比較して、消費電力が大きくなってしまう。
【０００８】
一方、１：１切替方式では常時片系にしか信号が流れないため、障害が発生してから検出して送信側で切り替えるまでの間のデータが欠落し、無瞬断を保証することが困難になる。
【０００９】
この発明は、上記実情に鑑みてなされたものであり、１：１切替方式にて現用系の通信経路に障害が発生した時にも、現用系の通信経路から予備系の通信経路へ無瞬断にて切替を行うパケット転送装置及びパケット転送方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、この発明に係るパケット転送システムは、現用系の通信経路と予備系の通信経路とを含む複数の通信経路で接続された送信側装置と受信側装置とを備えるパケット転送システムであって、
前記送信側装置及び前記受信側装置のいずれか一方は、パケットの識別情報を生成する識別情報生成部を備え、
前記送信側装置は、
前記現用系の通信経路における障害の発生を検出する障害検出部と、
前記障害検出部で障害の発生が検出されると、入力したパケットの出力先を、現用系の通信経路から予備系の通信経路に切り替えるスイッチと、
前記現用系の通信経路で障害が発生してから前記障害検出部で障害の発生が検出されるまでの推定時間に現用系の通信経路を送信されるパケットを蓄積可能な容量を有し、上位の通信経路から受信したパケットを蓄積するファーストイン・ファーストアウトのバッファと、
前記障害検出部で障害の発生が検出される前は、上位の通信経路から直接入力されるパケットを選択して前記スイッチに出力し、前記障害検出部で障害が検出された後は前記バッファが空でなければ前記バッファから読みだされるパケットを選択して前記スイッチに出力し、前記バッファが空になると上位の通信経路から直接入力されるパケットを選択して前記スイッチに出力するセレクタと、
を備え、
前記受信側装置は、
前記複数の通信経路のいずれかから受信したパケットの識別情報を保持する保持部と、
前記保持部に保持された識別情報と新たに受信したパケットの識別情報とを比較することにより、受信したパケットを下位の通信経路に送信するか否かを決定するパケット制御部と、
を備える。
【発明の効果】
【００１１】
この発明によれば、送信側装置では送信されるパケットがバッファに蓄積されている。このバッファは、現用系の通信経路で障害が発生してから障害の発生が検出されるまでの推定時間に相当する容量を有する。現用系の通信経路に障害が発生すると、送信側装置では、パケットを送信する経路が、予備系の通信経路に切り替えられ、上位の通信経路から受信したパケットではなく、バッファに蓄積されたパケットが受信側装置に送信される。このようにすれば、送信側装置では、現用系の通信経路で発生した障害により受信側装置で送信できなかった可能性のあるパケットを、予備系の通信経路で受信側装置に送信することができる。
【００１２】
さらに、送信側装置か受信側装置かのいずれかでは、パケットの識別情報が生成されている。受信側装置では、パケットを受信する度に識別情報を保持し、保持した識別情報と、新たに受信したパケットの識別情報とを比較する。この比較により、受信側装置は、新たに受信したパケットが、すでに受信したパケットであるか否かを判定し、すでに受信したパケットであれば、そのパケットについては下位の通信経路に送信しないようにすることができる。このため、同一パケットの二重到着を防止することができる。
【００１３】
すなわち、この発明によれば、１：１切替方式にて現用系の通信経路に障害が発生した時にも、通信側装置でパケットを再送し、受信側装置で同一パケットの二重到着を防止することができるので、現用系の通信経路から予備系の通信経路へ、無瞬断にて切替を行うことができる。
【図面の簡単な説明】
【００１４】
【図１】この発明の実施の形態１に係るパケット転送システムにより構築されるネットワークの概略的な構成の一例を示すブロック図である。
【図２】送信側装置の概略的な構成を示すブロック図である。
【図３】受信側装置の概略的な構成を示すブロック図である。
【図４】パスを切り替える際の送信側装置の動作を示すフローチャートである。
【図５】受信側装置の動作を示すフローチャートである。
【図６】パスを切り替える際のパケットの流れを示す模式図（その１）である。
【図７】パスを切り替える際のパケットの流れを示す模式図（その２）である。
【図８】パスを切り替える際のパケットの流れを示す模式図（その３）である。
【図９】パスを切り替える際のパケットの流れを示す模式図（その４）である。
【図１０】パスを切り替える際のパケットの流れを示す模式図（その５）である。
【図１１】パスを切り替える際のパケットの流れを示す模式図（その６）である。
【図１２】この発明の実施の形態２に係る送信側装置の概略的な構成の一例を示すブロック図である。
【図１３】パスを切り替える際の送信側装置の動作を示すフローチャートである。
【図１４】受信側装置の動作を示すフローチャートである。
【図１５】この発明の実施の形態３に係る送信側装置の概略的な構成の一例を示すブロック図である。
【図１６】受信側装置の動作を示すフローチャートである。
【図１７】この発明の実施の形態４に係る受信側装置の動作を示すフローチャートである。
【発明を実施するための形態】
【００１５】
この発明の実施の形態について、図面を参照して詳細に説明する。
【００１６】
実施の形態１．
まず、この発明の実施の形態１について説明する。
【００１７】
図１には、この実施の形態に係るパケット転送システム１００により構築されるネットワークの概略的な構成が示されている。図１に示すように、パケット転送システム１００は、送信側装置１１と、受信側装置２１とを備える。
【００１８】
送信側装置１１及び受信側装置２１は、ともに通信機能を有するコンピュータであり、ＣＰＵ、メモリ、通信回路等のハードウエアを備えている。送信側装置１１及び受信側装置２１は、ＣＰＵがメモリに格納されたプログラムを実行して、通信回路を動作させることにより、以下に示す各種機能を実現する。
【００１９】
送信側装置１１は、上位の通信経路であるパス１０１と接続されている。送信側装置１１は、不図示の上位装置からパス１０１を介してパケットを受信する。送信側装置１１は、受信したパケットを受信側装置２１に転送する。受信側装置２１は、下位の通信経路であるパス１０４と接続されている。受信側装置２１は、送信側装置１１から転送されたパケットを受信する。受信側装置２１は、受信したパケットを、パス１０４を介して接続された下位装置（不図示）に送信する。
【００２０】
このネットワークは冗長構成を有する。送信側装置１１と受信側装置２１とは、複数の通信経路、すなわち２つのパス１０２、１０３で接続されている。パス１０２は、中継装置２０２、２０３とを経由するパスである。また、パス１０３は、中継装置２０４、２０５、２０６を経由するパスである。
【００２１】
送信側装置１１は、パス１０１を介して受信したパケットを、通常は、現用系のパス１０２を介して、受信側装置２１に送信する。また、現用系のパス１０２に異常が発生した場合には、送信側装置１１は、受信したパケットを、予備系のパス１０３を介して、受信側装置２１に送信する。受信側装置２１は、受信したパケットをパス１０４に出力する。
【００２２】
すなわち、この実施の形態では、パス１０２が現用系のパスとして用いられ、通常は、パス１０２を用いてデータが転送される。一方、パス１０３は、予備系のパスとして用いられ、通常は、パス１０３を用いてパケットは転送されない。すなわち、このネットワークでは、パケット転送方式として１：１切替方式が採用されている。
【００２３】
続いて、送信側装置１１の構成について説明する。図２には、送信側装置１１の概略的な構成が示されている。
【００２４】
図２に示すように、送信側装置１１は、入力インターフェイス（ＩＦ）１２と、スイッチ１３と、出力インターフェイス（ＩＦ）１４、１５と、を備える。
【００２５】
入力インターフェイス１２は、上位の装置からパス１０１を介して送信されるパケットを入力する。入力インターフェイス１２は、障害検出部１６と、バッファ１７と、制御パケット挿入部１８と、セレクタ１９と、を備える。
【００２６】
障害検出部１６は、パス１０２の障害の発生を検出する。障害検出部１６は、切替の対向装置や途中の経路の装置、監視制御装置（いずれも不図示）から通知されるネットワークの障害情報を検出する機能を有する。障害検出部１６は、例えば、レイヤ２のＯＡＭ（Operation Administration and Maintenance）フレームであるＣＣＭ（Continuity Check Message）フレームの一定時間非到達、ＡＩＳ（Alarm Indication Signal）フレームやＲＤＩ（Remote Defect Indication）フレームの受信などにより、パス１０２の障害の発生を検出する。
【００２７】
図１に戻り、例えば、中継装置２０２と中継装置２０３との間の回線で障害が発生したとする。この場合、リンク断やＯＡＭフレームにより、両側の中継装置２０２、２０３で障害が発生したことが検出される。中継装置２０２は、送信側装置１１に障害の発生を通知する。障害検出部１６は、この通知により、現用系のパス１０２に障害が発生したことを検出する。
【００２８】
図２に示すように、バッファ１７は、入力インターフェイス１２が受信したパケットを蓄積する。バッファ１７は、障害の発生を検出してから送信側装置１１に障害の発生が通知されるまでの推定時間分に相当する容量のパケットを蓄積可能である。この推定時間をＴｄとする。
【００２９】
バッファ１７は、ファーストイン・ファーストアウトのバッファである。障害が発生していない場合は、バッファ１７は、蓄積したパケットを、保存したタイミングから時間Ｔｄ経過後に廃棄する。ただし、障害検出部１６にて障害の発生が検出された後は、バッファ１７は、推定時間Ｔｄが経過しても、蓄積したパケットを廃棄せず、後述の手順により読み出されるのを待つ。
【００３０】
制御パケット挿入部１８は、障害検出部１６で障害の発生が検出されると、切替通知用の制御パケットを生成してセレクタ１９に出力する。この実施の形態では、制御パケット挿入部１８が、制御パケット生成部に対応する。
【００３１】
セレクタ１９は、入力インターフェイス１２が受信したパケットと、バッファ１７に蓄積されたパケットと、制御パケット挿入部１８から出力された制御パケットとを入力する。セレクタ１９は、入力インターフェイス１２が受信したパケットか、制御パケットか、バッファ１７で遅延させたパケットのいずれかを選択して、スイッチ１３に出力する。
【００３２】
例えば、セレクタ１９は、障害検出部１６で障害の発生が検出される前は、パス１０１から受信したパケットを選択してスイッチ１３に出力する。また、セレクタ１９は、検出部１６で障害の発生が検出された後はバッファ１７が空でなければバッファ１７からパケットを読み出してスイッチ１３に出力する。
【００３３】
より具体的には、セレクタ１９は、障害検出部１６で障害の発生が検出されると、バッファ１７が空でなければ、制御パケット挿入部１８で生成された制御パケットを選択してスイッチ１３に出力した後に、バッファ１７から読みだされるパケットを選択してスイッチ１３に出力する。さらに、セレクタ１９は、バッファ１７が空になるとパス１０１から受信されるパケットを選択してスイッチ１３に出力する。
【００３４】
スイッチ１３は、入力したパケットの出力先を出力インターフェイス１４又は出力インターフェイス１５のいずれかに切り替える。正常時には、出力インターフェイス１４が選択され、異常時には、出力インターフェイス１５が選択される。すなわち、スイッチ１３は、障害検出部１６で障害の発生が検出されると、入力したパケットの出力先を、現用系のパス１０２から予備系のパス１０３に切り替える。
【００３５】
出力インターフェイス１４は、パケットを、現用系のパス１０２に出力する。出力インターフェイス１５は、パケットを、予備系のパス１０３に出力する。
【００３６】
この送信側装置１１において、パス１０１を介してパケットを受信すると、そのパケットはバッファ１７に蓄えられる一方、セレクタ１９に入力される。障害検出部１６で現用系のパス１０２の障害の発生が検出されるまでは、セレクタ１９は、受信したパケットをそのまま選択して出力する。スイッチ１３は、セレクタ１９から出力されたパケットを出力インターフェイス１４に出力する。出力インターフェイス１４は、現用系のパス１０２にパケットを出力する。
【００３７】
さらに、障害検出部１６でパス１０２の障害の発生が検出されると、制御パケット挿入部１８は、制御パケットを生成して出力する。セレクタ１９は、制御パケットをスイッチ１３に出力する。スイッチ１３は、この制御パケットを出力インターフェイス１５に出力する。
【００３８】
その後、セレクタ１９は、バッファ１７に蓄積されたパケットを順次読み出して、スイッチ１３に出力する。スイッチ１３は、これらのパケットを出力インターフェイス１５に順次出力する。
【００３９】
続いて、受信側装置２１の構成について説明する。図３には受信側装置２１の概略的な構成が示されている。
【００４０】
図３に示すように、受信側装置２１は、入力インターフェイス２２、２３と、スイッチ２４と、出力インターフェイス２５とを備える。
【００４１】
入力インターフェイス２２は、現用系のパス１０２のインターフェイスである。すなわち、パス１０２を介して送信されたパケットは、入力インターフェイス２２に入力される。
【００４２】
入力インターフェイス２３は、予備系のパス１０３のインターフェイスである。すなわち、パス１０３を介して送信されたパケットは、入力インターフェイス２３に入力される。
【００４３】
スイッチ２４は、入力インターフェイス２２に入力されたパケットと、入力インターフェイス２３に入力されたパケットとを入力する。スイッチ２４は、このパケットのいずれか一方を、出力インターフェイス２５に出力する。
【００４４】
この実施の形態１では、出力インターフェイス２５では、片方の系のデータを選択するのではなく、両系からのデータを順番に受信する構成とする。１：１切替方式の場合、基本的に片方の系にしかパケットが流れないため、両系からのパケットを受信しても重複がない。このため、実際には、このような構成とすることが多い。
【００４５】
出力インターフェイス２５は、パケット制御部２６と保持部２７とを備える。
【００４６】
パケット制御部２６は、パス１０２、１０３のいずれかから受信したパケットの識別情報を生成する。この実施の形態１では、パケット制御部２６が、識別情報生成部に対応する。すなわち、この実施の形態１では、識別情報生成部は、受信側装置２１に設けられている。
【００４７】
保持部２７は、パケット制御部２６で生成されたパケットの識別情報を保持する。
【００４８】
また、パケット制御部２６は、保持部２７に保持された識別情報と新たに受信したパケットの識別情報とを比較することにより、受信したパケットをパス１０４に送信するか否かを決定する。言い換えれば、パケット制御部２６は、スイッチ２４から受信したパケットのデータを解析し、所定の条件に従ってパケットの通過、廃棄を決定する。
【００４９】
この実施の形態１では、パケットの識別情報を、パケットから生成されるハッシュ値及びパケットのデータ長（パケット長）とする。ハッシュ値とは、与えられた原文から固定長の疑似乱数を生成するハッシュ関数により生成される値である。パケットから生成されるハッシュ値は、パケットのデータが異なれば異なる値をとり、パケットのデータが同一であれば同じ値をとる。
【００５０】
パケット制御部２６は、受信したパケットのハッシュ値及びパケット長を、パケットの識別情報として算出する。すなわち、この実施の形態１では、パケット制御部２６が、ハッシュ値算出部に対応する。
【００５１】
また、パケット制御部２６は、制御パケットを受信していない間は受信したパケットを下位の通信経路に出力する。パケット制御部２６は、制御パケットを受信すると受信フラグを設定する。さらに、パケット制御部２６は、受信フラグが設定されている間は受信したパケットを廃棄する。さらに、パケット制御部２６は、保持部２７で保持されたハッシュ値と新たに受信したハッシュ値とが一致すると、受信フラグをリセットするとともに、受信したパケットを廃棄する。
【００５２】
次に、この実施の形態に係るパケット転送システム１００の動作について説明する。
【００５３】
まず、送信側装置１１の動作について、図４を参照して説明する。図４には、パケットを送信する通信経路を、パス１０２からパス１０３へ切り替える際の送信側装置１１の動作のフローチャートが示されている。
【００５４】
図４に示すように、送信側装置１１は、パケットを受信するまで待つ（ステップＳ１；Ｎｏ）。パケットを受信すると（ステップＳ１；Ｙｅｓ）、送信側装置１１（障害検出部１６）は、障害の発生が検出されるまで待つ（ステップＳ２；Ｎｏ）。現在送信している現用系のパス１０２について、送信側装置１１（障害検出部１６）が障害の発生を検出すると（ステップＳ２；Ｙｅｓ）、送信側装置１１（スイッチ１３）は、入力したパケットを出力インターフェイス１５（予備系のパス１０３）に出力するように切り替わる（スイッチＳ２）。
【００５５】
続いて、送信側装置１１（セレクタ１９）は、バッファ１７が空であるかどうかを判定する（ステップＳ４）。
【００５６】
バッファ１７が空である場合（ステップＳ４；Ｙｅｓ）、送信側装置１１（セレクタ１９）は、パス１０１を介して受信したパケットをそのまま選択して出力する（ステップＳ８）。以後、送信側装置１１（セレクタ１９）は、受信したパケットの出力を繰り返す（ステップＳ８）。
【００５７】
この実施の形態に係るパケット転送システム１００のように、パケット通信を行うシステムの場合、ＴＤＭ回線のシステムとは異なり、送信側装置１１は、常にパケットを送信しているわけではなく、必要なときにパケットを送信する。このため、パケットの入力間隔が開くと、バッファ１７が空になる。
【００５８】
逆に言えば、バッファ１７が空であるということは、パス１０２に障害が発生してからその障害の発生が障害発生部１６で検出されるまでの推定時間Ｔｄの間、送信側装置１１にパケットが到着していなかったことを意味する。そこで、バッファ１７が空の状態では、パケットロスが発生していないと考えられるので、パス１０２から直接入力するパケットの出力を繰り返す。
【００５９】
一方、バッファ１７が空でない場合（ステップＳ４；Ｎｏ）、現用系のパス１０２にて障害発生後にパケットロスが発生した可能性があるため、送信側装置１１は、以後の処理を行う。
【００６０】
まず、送信側装置１１（制御パケット挿入部１８）は、切替通知用の制御用パケットを生成し、送信側装置１１（セレクタ１９）は、制御パケットを選択してスイッチ１３に出力する。すなわち、制御パケットが挿入される（ステップＳ５）。上記スイッチＳ３において、スイッチ１３は、出力インターフェイス１５の方に接続されているので、この制御パケットは、予備系のパス１０３に出力される。
【００６１】
続いて、送信側装置１１（セレクタ１９）は、バッファ１７に蓄積されるパケットを読み出してスイッチ１３に出力する（ステップＳ６）。ここでは、最も古いパケットが読み出され、出力される。
【００６２】
続いて、送信側装置１１（セレクタ１９）は、バッファ１７が空になったか否かを判定する（ステップＳ７）。バッファ１７が空でなければ（ステップＳ７：Ｎｏ）、送信側装置１１（セレクタ１９）は、バッファ１７に蓄積されるパケットを読み出してスイッチ１３に出力する（ステップＳ６）。このようにして、ステップＳ６→Ｓ７が繰り返され、バッファ１７に蓄積されたパケットが順次読み出され、出力される。
【００６３】
バッファ１７が空になれば（ステップＳ７；Ｙｅｓ）、それ以降は、送信側装置１１（セレクタ１９）は、パス１０１を介して受信されたパケットを選択してスイッチ１３に出力する（ステップＳ８）。以後、送信側装置１１（セレクタ１９）は、受信したパケットの出力を繰り返す（ステップＳ８）。
【００６４】
次に、受信側装置２１の動作について、図５を参照して説明する。図５には、受信側装置２１を構成するパケット制御部２６の動作のフローチャートが示されている。
【００６５】
まず、パケット制御部２６は、パケットを受信するまで待つ（ステップＳ１１；Ｎｏ）。パケットを受信すると（ステップＳ１１；Ｙｅｓ）、パケット制御部２６は、そのパケットが切替通知用の制御パケットであるか否かを判定する（ステップＳ１２）。
【００６６】
切替通知用の制御パケットでなかった場合（ステップＳ１２；Ｎｏ）、パケット制御部２６は、受信したパケットのパケット長と、パケットのデータに基づくハッシュ値とを算出する（ステップＳ１３）。続いて、パケット制御部２６は、切替通知用制御パケット受信フラグの値が１であるか否かを判定する（ステップＳ１４）。
【００６７】
切替通知用制御パケット受信フラグの値が１でなければ、すなわち、切替通知用制御パケット受信フラグの値が０の場合（ステップＳ１４；Ｎｏ）、送信側装置１１で切替がなされておらず、受信したパケットは、転送すべきパケットであるということになる。そこで、パケット制御部２６は、後のパケットの二重到着に備えて、受信したパケットのパケット長と、パケットデータから計算されるハッシュ値を保存（上書き）し（ステップＳ１５）、受信パケットをパス１０４に出力する（ステップＳ１６）。ステップＳ１６の実行後、受信側装置２１は、パケットの受信待ちに戻る（ステップＳ１１；Ｎｏ）。
【００６８】
さらに、パケットを受信すると（ステップＳ１１；Ｙｅｓ）、パケット制御部２６は、そのパケットが切替通知用の制御パケットであるか否かを判定する（ステップＳ１２）。切替通知用の制御パケットであった場合（ステップＳ１２；Ｙｅｓ）、パケット制御部２６は、切替通知用制御パケット受信フラグを１にセットする（ステップＳ１７）。ステップＳ１７を実行した後は、受信側装置２１は、パケットの受信待ちに戻る（ステップＳ１１；Ｎｏ）。
【００６９】
さらに、パケットを受信すると（ステップＳ１１：Ｙｅｓ）、パケット制御部２６は、そのパケットが切替通知用の制御パケットであるか否かを判定する（ステップＳ１２）。切替通知用の制御パケットでない場合（ステップＳ１２；Ｎｏ）、パケット制御部２６は、受信したパケットのパケット長と、パケットのデータに基づいてハッシュ値を算出する（ステップＳ１３）。
【００７０】
続いて、パケット制御部２６は、切替通知用の制御パケット受信フラグの値が１であるか否かを判定する（ステップＳ１４）。切替通知用の制御パケット受信フラグの値が１であるということは、送信側装置１１で切替がなされており、受信側装置２１で切替に伴う処理が完了していないことを示している。
【００７１】
切替通知用制御パケット受信フラグの値が１である場合（ステップＳ１４；Ｙｅｓ）、パケット制御部２６は、受信したパケットのパケット長とハッシュ値と、過去に受信したパケット（切り替え通知用制御パケットを受信する前のパケット）のパケット長とハッシュ値（保存値）と一致するか否かを判定する（ステップＳ１８）。
【００７２】
パケット長とハッシュ値とが一致しなかった場合（ステップＳ１８；Ｎｏ）、パケット制御部２６は、受信パケットを廃棄する（ステップＳ１９）。送信側装置１１でバッファ１７に蓄積されたパケットを読み出して、障害発生前にバッファ１７に溜めたパケットを受信していることから、二重到着を避けるためである。ステップＳ１９を実行した後は、受信側装置２１は、パケットの受信待ちに戻る（ステップＳ１１；Ｎｏ）。
【００７３】
さらに、パケットを受信すると（ステップＳ１１：Ｙｅｓ）、パケット制御部２６は、そのパケットが切替通知用の制御パケットであるか否かを判定する（ステップＳ１２）。切替通知用の制御パケットでない場合（ステップＳ１２；Ｎｏ）、パケット制御部２６は、受信したパケットのパケット長と、パケットのデータに基づくハッシュ値とを算出する（ステップＳ１３）。
【００７４】
続いて、パケット制御部２６は、切替通知用制御パケット受信フラグの値が１であるか否かを判定する（ステップＳ１４）。切替通知用の制御パケット受信フラグの値が１であるということは、送信側装置１１で切替がなされており、受信側装置２１で切替に伴う処理が完了していないことを示している。
【００７５】
そこで、切替通知用制御パケット受信フラグの値が１であれば（ステップＳ１４；Ｙｅｓ）、パケット制御部２６は、受信したパケットのパケット長とハッシュ値と、過去に受信したパケット（切り替え通知用の制御パケットを受信する前のパケット）のパケット長とハッシュ値とが一致しているか否かを判定する（ステップＳ１８）。
【００７６】
これらが一致した場合（ステップＳ１８；Ｙｅｓ）、パケット制御部２６は、受信パケットを廃棄し（ステップＳ２０）、切替通知用の制御パケット受信フラグを０にリセットする（ステップＳ２１）。ステップＳ２１実行後、パケット制御部２６は、パケットの受信待ちに戻る（ステップＳ１１；Ｎｏ）。なお、ステップＳ２０、Ｓ２１は、実行される順番が逆であってもよい。
【００７７】
さらに、パケットを受信すると（ステップＳ１１：Ｙｅｓ）、パケット制御部２６は、そのパケットが切替通知用の制御パケットであるか否かを判定する（ステップＳ１２）。切替通知用の制御パケットでない場合（ステップＳ１２；Ｎｏ）、パケット制御部２６は、受信したパケットのパケット長と、パケットのデータに基づいてハッシュ値とを算出する（ステップＳ１３）。
【００７８】
続いて、パケット制御部２６は、切替通知用制御パケット受信フラグの値が１であるか否かを判定する（ステップＳ１４）。切替通知用制御パケット受信フラグの値が０であれば（ステップＳ１４；Ｎｏ）、パケット制御部２６は、算出したパケット長と、ハッシュ値を保存（上書き）し（ステップＳ１５）、受信したパケットをパス１０４に出力する（ステップＳ１６）。ステップＳ１６実行後、受信側装置２１は、パケットの受信待ちに戻る（ステップＳ１１；Ｎｏ）。
【００７９】
図６乃至図９には、パス１０２からパス１０３に切り替える際のパケットの流れの一例が示されている。
【００８０】
図６に示すように、送信側装置１１には、パス１０１を介して６つのパケットが受信される。この６つのパケットを、送信される順に、パケット１、２、３、４、５、６とする。送信側装置１１は、現用系のパス１０２にパケット１、２、…を送信する。
【００８１】
続いて、図７に示すように、パケットの転送中に、中継装置２０２と中継装置２０３の間の回線で障害が発生したとする。この時点で、受信側装置２１には、パケット１がすでに到達しており、パケット２、３についても、中断装置２０３を超えて、受信側装置２１に転送中であるものとする。この状態では、送信側装置１１のバッファ１７には、バッファ１、２、３が蓄積されている。
【００８２】
障害が発生すると、図８に示すように、中継装置２０２から送信側装置１１に障害の発生が通知される。なお、送信側装置１１がこの通知を受信し、障害検出部１６が障害の発生を検出するまで、さらにパケット４、５がパス１０２に送出される。したがって、この時点で、バッファ１７には、バッファ２、３、４、５が蓄積されている。一方、受信側装置２１では、パケット１、２、３が到達しており、パケット３のハッシュ値とパケット長とが、保持部１７に保持された状態となる。パケット４、５については、中継装置２０２、２０３の間に発生した障害により、受信側装置２１には、到達しない。
【００８３】
障害検出部１６が障害の発生を検出すると、送信側装置１１では、スイッチ１３がパケットの送出先をパス１０２からパス１０３に切り替える。また、セレクタ１９は、制御パケット挿入部１８で生成された制御パケットをスイッチ１３に出力し、図９に示すように、制御パケットをパス１０３に送出する。続いて、セレクタ１９は、バッファ１７に蓄積したパケット２、３、４、５をこの順にスイッチ１３に出力する。これにより、パケット２、３、４、５が、パス１０３を介して受信側装置２１に送信される。
【００８４】
受信側装置２１では、制御パケットを受信すると、パケット制御部２６が、受信フラグをセットする。受信フラグをセットすると、パケット制御部２６は、保持部２７に保持されたハッシュ値とパケット長と、新たに受信したパケットのハッシュ値とパケット長とが一致するまで受信したパケットを破棄する。例えば、図１０に示すように、保持部２７にパケット３のハッシュ値とパケット長が保持されている場合には、再送されたパケット２は、ハッシュ値とパケット長が異なるので破棄される。
【００８５】
続いて受信されるパケット３については、ハッシュ値とパケット長とが一致する。この場合には、パケット制御部２６は、受信フラグをリセットするとともに、新たに受信したパケット３を破棄する。続いて受信されるパケット４、５については、パケット制御部２６は、パス１０４へ出力する。
【００８６】
送信側装置１１のセレクタ１９は、バッファ１７が空になると、パス１０１を介して受信されたパケットを、そのままスイッチ１３に出力する。例えば、図１１に示すように、セレクタ１９は、パス１０１から受信したパケット６を、スイッチ１３に出力する。これにより、パケット６は、パス１０３を介して受信側装置２１に送信される。
【００８７】
すなわち、結果的に、このパケット転送システム１００によれば、パス１０２に障害が発生した場合でも、パケットロスを発生させることなく無瞬断でパケット１乃至６を転送することができる。
【００８８】
以上詳細に説明したように、この実施の形態によれば、送信側装置１１では、送信されるパケットがバッファ１７に蓄積されている。このバッファ１７は、現用系のパス１０２で障害が発生してから障害が検出されるまでの推定時間に相当する容量を有する。送信側装置１１で、現用系のパス１０２に障害が発生すると、送信側装置１１では、パケットを送信する経路が、予備系のパス１０３に切り替えられ、パス１０１から受信したパケットではなく、バッファ１７に蓄積されたパケットが受信側装置２１に送信される。このようにすれば、送信側装置１１では、現用系のパス１０１の障害の発生により受信側装置２１に送信できなかった可能性のあるパケットを、予備系のパス１０３で受信側装置２１に送信することができる。
【００８９】
さらに、受信側装置２１では、パケットの識別情報としてハッシュ値及びパケット長が生成されている。受信側装置２１は、パケットを受信する度にハッシュ値及びパケット長を保持し、保持したハッシュ値及びパケット長と、新たに受信したパケットのハッシュ値及びパケット長とを比較する。この比較により、新たに受信したパケットが、すでに受信したパケットであるか否かが判定され、すでに受信したパケットであれば、そのパケットについては下位のパス１０４に送信しないようにすることができる。このため、同一パケットの二重到着を防止することができる。
【００９０】
すなわち、この実施の形態によれば、１：１切替方式にて現用系のパス１０２に障害が発生した時にも、通信側装置１１でパケットを再送し、受信側装置２１で同一パケットの二重到着を防止することができるので、現用系のパス１０２から予備系のパス１０３へ、パケットロスなしに無瞬断にて切替を行うことができる。
【００９１】
１：１切替方式は、片系にのみパケットを送信するため、１＋１切替方式と比較して、送信側装置１１、中継装置２０２乃至２０６、受信側装置２１のうち、実際に同時に動作する装置が少なくなる。このため、消費電力を低減することが可能である。
【００９２】
また、送信側装置１１におけるバッファ１７のサイズについては、例えば以下のように見積もることができる。
【００９３】
パス１０２に障害が発生してから送信側装置１１にその障害の発生が通知されるまでの推定時間について考える。イーサネット（登録商標）ＯＡＭのＣＣＭ機能を使用した場合、ＣＣＭの送信間隔を３．３ｍｓとすると、ＣＣＭ非受信によるＬＯＣ（Loss of Continuity Check）警報を検出までは、３．３ｍｓ×３．５＝１１．５５ｍｓである。また、警報通知用のＯＡＭフレームの転送時間を１０ｍｓとする。これらの合計は、２１．５５ｍｓとなる。
【００９４】
パス１０２に障害が発生してから送信側装置１１が故障と認識するまでに十分な時間を仮に５０ｍｓとすると、５０ｍｓ分の送信データを保存可能なバッファ１７が必要となる。回線速度が１Ｇｂｐｓの場合、１Ｇｂｐｓ×５０ｍｓ=５０Ｍｂｉｔ=６．２５Ｍｂｙｔｅであり、１０Ｇｂｐｓ回線の場合、５００Ｍｂｉｔ＝６２．５Ｍｂｙｔｅである。これらは、ＳＤＲＡＭを使用すれば、１チップで保存可能な量である。また、パケットの場合、回線速度１００％で常時データが流れていることはほとんど考えられず、契約回線速度で見積もることも妥当と考える。この場合、契約回線速度に応じてバッファサイズは小さくなる。
【００９５】
なお、切替通知用の制御パケットとしては、例えば、イーサネット（登録商標）プロテクションでの制御フレームとして定義されているＡＰＳ（Automatic Protection Switching）フレームの未使用領域を定義して使用してもよいし、新規に制御パケットを定義してもよい。
【００９６】
なお、この実施の形態ではパケットのデータからハッシュ値を計算して比較するとしたが、イーサネット（登録商標）フレームの場合、フレーム最後にＦＣＳ（Frame Check Sequence）として、ＣＲＣ−８の演算結果が付与されるため、その値を識別情報として用いてもよい。
【００９７】
なお、この実施の形態では、パケットの識別情報として、パケットのハッシュ値と、パケット長とを用いたが、パケットの識別情報として、パケットのハッシュ値だけを用いるようにしてもよい。
【００９８】
実施の形態２．
次に、この発明の実施の形態２について説明する。
【００９９】
上記実施の形態１では、送信側装置１１と受信側装置２１での切替のタイミングの認識を合わせるために、切替通知用の制御パケットを使用した。これに対して、この実施の形態２では、制御パケットを使用せず、通常のパケットに追加ヘッダを挿入し、その追加ヘッダにシーケンス番号を付与することで、同一パケットの二重到着を防止する。
【０１００】
図１２には、この実施の形態２に係る送信側装置１１の構成が示されている。図１２に示すように、この実施の形態２に係る送信側装置１１の構成は、シーケンス番号挿入部３１が追加され、制御パケット挿入部１８が設けられていない点が、上記実施の形態１に係る送信側装置１１の構成と異なっている。また、この実施の形態２に係る受信側装置２１は、上記実施の形態２に係る受信側装置２１と、構成は同じであるが、パケット制御部２６の動作が異なっている。
【０１０１】
送信側装置１１のシーケンス番号挿入部３１は、入力パケットの空き領域あるいは入力パケットをカプセル化してそのヘッダ領域にシーケンス番号を付与する。シーケンス番号とはフレーム毎に１ずつ増加していく番号である。
【０１０２】
シーケンス番号付与のために、例えばイーサネット（登録商標）の場合はＶＬＡＮタグを追加する、ＭＰＬＳ（Multi-Protocol Label Switching）の場合はＳｈｉｍヘッダを追加する、などが考えられる。このシーケンス番号により、パケットの転送順番が明確化される。
【０１０３】
次に、図１３、図１４を参照して、送信側装置１１及び受信側装置２１の動作について説明する。
【０１０４】
図１３には、送信側装置１１の動作が示されている。まず、図１３に示すように、送信側装置１１は、パケットを受信するまで待つ（ステップＳ３１；Ｎｏ）。パケットを受信すると（ステップＳ３１；Ｙｅｓ）、送信側装置１１（シーケンス番号挿入部３１）は、パケットにシーケンス番号を挿入する（ステップＳ３２）。バッファ１７には、このシーケンス番号付きのパケットが蓄積される。
【０１０５】
続いて、送信側装置１１（障害検出部１６）は、障害の発生が検出されるまで待つ（ステップＳ３３；Ｎｏ）。現在パケットを送信している現用系のパス１０２について、送信側装置１１（障害検出部１６）が障害の発生を検出すると（ステップＳ３３；Ｙｅｓ）、送信側装置１１（スイッチ１３）は、入力したパケットを出力インターフェイス１５（予備系のパス１０３）に出力するように切り替わる（スイッチＳ３４）。
【０１０６】
続いて、送信側装置１１（セレクタ１９）は、バッファ１７が空であるかどうかを判定する（ステップＳ３５）。バッファ１７が空である場合（ステップＳ３５；Ｎｏ）、送信側装置１１（セレクタ１９）は、パス１０１を介して受信したパケットをそのまま選択して出力する（ステップＳ３８）。ステップＳ３８の実行後、送信側装置１１は、ステップＳ３１に戻る。
【０１０７】
一方、バッファ１７が空である場合（ステップＳ３５；Ｙｅｓ）、送信側装置１１（セレクタ１９）は、バッファ１７に蓄積されるパケットを読み出してスイッチ１３に出力する（ステップＳ３６）。ここでは、最も古いパケットが読み出され、出力される。
【０１０８】
続いて、送信側装置１１（セレクタ１９）は、バッファ１７が空になったか否かを判定する（ステップＳ３７）。バッファ１７が空でなければ（ステップＳ３７：Ｎｏ）、送信側装置１１（セレクタ１９）は、バッファ１７に蓄積されるパケットを読み出してスイッチ１３に出力する（ステップＳ３６）。このようにして、ステップＳ３６→Ｓ３７が繰り返され、バッファ１７に蓄積されたパケットが順次読み出され、出力される。
【０１０９】
バッファ１７が空になれば（ステップＳ３７；Ｙｅｓ）、それ以降は、送信側装置１１（セレクタ１９）は、パス１０１を介して受信されたパケットを選択してスイッチ１３に出力する（ステップＳ３８）。以後、送信側装置１１（セレクタ１９）は、受信したパケットの出力を繰り返す（ステップＳ３８）。
【０１１０】
続いて、受信側装置２１の動作について説明する。図１４には、受信側装置２１の動作が示されている。図１４に示すように、まず、パケット制御部２６は、パケットを受信するまで待つ（ステップＳ４１；Ｎｏ）。パケットを受信すると（ステップＳ４１；Ｙｅｓ）、パケット制御部２６は、そのパケットのシーケンス番号を取得する（ステップＳ４２）。
【０１１１】
さらに、パケットを受信すると（ステップＳ４１；Ｙｅｓ）、パケット制御部２６は、そのパケットのシーケンス番号を取得し（ステップＳ４２）、取得されたシーケンス番号が、保持部２７に保持されたシーケンス番号以下であるか否かを判定する（ステップＳ４３）。取得されたシーケンス番号が、保持部２７に保持されたシーケンス番号以下でなければ（ステップＳ４３；Ｎｏ）、パケット制御部２６は、パケットのシーケンス番号を保存（上書き）し（ステップＳ４４）、シーケンス番号のために追加した領域を削除し（ステップＳ４５）、受信したパケットを出力する（ステップＳ４６）。ステップＳ４６を実行した後は、パケット制御部２６は、再びパケット受信待ちとなる（ステップＳ４１；Ｎｏ）。
【０１１２】
さらに、パケットを受信すると（ステップＳ４１：Ｙｅｓ）、パケット制御部２６は、取得されたシーケンス番号が、保持部２７に保持されたシーケンス番号以下であるか否かを判定する（ステップＳ４３）。取得されたシーケンス番号が、保持部２７に保持されたシーケンス番号以下であれば（ステップＳ４３；Ｙｅｓ）、パケット制御部２６は、故障による送信側切替でのバッファから読み出しパケットによる二重到着と考え、パケットを廃棄する（ステップＳ４７）。ステップＳ４７実行後は、パケット制御部４６は、パケット受信待ちとなる（ステップＳ４１；Ｎｏ）。
【０１１３】
以上詳細に説明したように、この実施の形態２によれば、送信側装置１１は、障害が発生してから障害の発生が検出されるまでの推定時間分のデータを蓄えることのできるバッファ１７を有している。また、受信側装置２１は、シーケンス番号により受信側にて二重到着を防止することで、現用系のパスの障害発生時にも無瞬断（パケットロスなし）で切替を行うことが可能である。また、この実施の形態２のように、シーケンス番号を用いることで切替通知用の制御フレームの送受信が不要となる。
【０１１４】
ただし、この実施の形態２では、パケットに追加のヘッダを挿入する必要があるが。最終的には、そのヘッダは削除される。
【０１１５】
また、上記実施の形態１ではパケット長とハッシュ値を組み合わせてパケットの比較を行っていた。この比較だけではパケットが異なっていても偶然に一致する可能性を否定できない。これに対して、この実施の形態２のように、シーケンス番号を用いれば、現用系と予備系での送信による二重到着を確実に防止することができる。
【０１１６】
実施の形態３．
次に、この発明の実施の形態３について説明する。
【０１１７】
上記実施の形態１では、受信側装置において現用系のパス１０２と予備系のパス１０３の両方からのパケットを受信した。しかしながら、この実施の形態３では、受信側装置において現用系のパス１０２と予備系のパス１０３の一方を選択してパケットを受信する。送信側装置１１の構成は、上記実施の形態１の送信側装置１１の構成と同一である。
【０１１８】
図１５には、受信側装置２１の構成が示されている。図１５に示すように、スイッチ２４は、現用系の入力インターフェイス２２からのパケットと、予備系の入力インターフェイス２３からのパケットとを個別に出力インターフェイス２５に出力する。
【０１１９】
出力インターフェイス２５は、セレクタ２９をさらに備える。セレクタ２９は、パケット制御部２６から出力される選択信号及びイネーブル信号を入力する。セレクタ２９は、入力される選択信号に応じて、入力インターフェイス２２から入力したパケットと入力インターフェイス２３から入力したパケットとのいずれかを選択して出力する。セレクタ２９は、イネーブル信号が無意である場合には、パケットをパス１０４に出力し、イネーブル信号が有意である場合には、パケットをパス１０４から出力しない。
【０１２０】
図１６には、この実施の形態３に係るパケット制御部２６の動作が示されている。図１６に示すように、まず、パケット制御部２６は、パケットを受信するまで待つ（ステップＳ１１；Ｎｏ）。パケットを受信すると（ステップＳ１１；Ｙｅｓ）、パケット制御部２６は、そのパケットが切替通知用の制御パケットであるか否かを判定する（ステップＳ１２）。
【０１２１】
切替通知用の制御パケットでなかった場合（ステップＳ１２；Ｙｅｓ）、パケット制御部２６は、受信したパケットのパケット長と、パケットのデータに基づくハッシュ値とを算出する（ステップＳ１３）。続いて、パケット制御部２６は、イネーブル信号が無意となっているか否かを判定する（ステップＳ１１４）。
【０１２２】
イネーブル信号が無意でなければ（ステップＳ１１４；Ｎｏ）、パケット制御部２６は、受信したパケットのパケット長と、パケットデータに基づくハッシュ値を保存（上書き）する（ステップＳ１５）。ステップＳ１５の実行後、受信側装置２１は、パケットの受信待ちに戻る（ステップＳ１１；Ｎｏ）。
【０１２３】
さらに、パケットを受信すると（ステップＳ１１；Ｙｅｓ）、パケット制御部２６は、そのパケットが切替通知用の制御パケットであるか否かを判定する（ステップＳ１２）。切替通知用の制御パケットであった場合（ステップＳ１２；Ｙｅｓ）、パケット制御部２６は、セレクタ２９に対して予備系を選択する選択信号を出力するとともにイネーブル信号を無意に設定する（ステップＳ１１７）。ステップＳ１１７を実行した後は、受信側装置２１は、パケットの受信待ちに戻る（ステップＳ１１；Ｎｏ）。
【０１２４】
さらに、パケットを受信すると（ステップＳ１１：Ｙｅｓ）、パケット制御部２６は、そのパケットが切替通知用の制御パケットであるか否かを判定する（ステップＳ１２）。切替通知用の制御パケットでない場合（ステップＳ１２；Ｎｏ）、パケット制御部２６は、受信したパケットのパケット長と、パケットのデータに基づくハッシュ値とを算出する（ステップＳ１３）。
【０１２５】
続いて、パケット制御部２６は、イネーブル信号が無意であるか否かを判定する（ステップＳ１１４）。イネーブル信号が無意であれば（ステップＳ１１４；Ｙｅｓ）、パケット制御部２６は、受信したパケットのパケット長とハッシュ値と、過去に受信したパケット（切り替え通知用制御パケットを受信する前のパケット）のパケット長とハッシュ値と比較する（ステップＳ１８）。
【０１２６】
パケット長とハッシュ値とが一致しなかった場合（ステップＳ１８；Ｎｏ）、パケット制御部２６は、パケットの受信待ちに戻る（ステップＳ１１；Ｎｏ）。これにより、イネーブル信号は無意のままであるので、パケットはパス１０４には送出されない。
【０１２７】
さらに、パケットを受信すると（ステップＳ１１：Ｙｅｓ）、パケット制御部２６は、そのパケットが切替通知用の制御パケットであるか否かを判定する（ステップＳ１２）。切替通知用の制御パケットでない場合（ステップＳ１２；Ｎｏ）、パケット制御部２６は、受信したパケットのパケット長と、パケットのデータに基づくハッシュ値とを算出する（ステップＳ１３）。
【０１２８】
続いて、パケット制御部２６は、イネーブル信号が無意であるか否かを判定する（ステップＳ１１４）。イネーブル信号が無意である場合（ステップＳ１１４；Ｙｅｓ）、パケット制御部２６は、受信したパケットのパケット長とハッシュ値と、過去に受信したパケット（切り替え通知用制御パケットを受信する前のパケット）のパケット長とハッシュ値と比較する（ステップＳ１８）。
【０１２９】
両者が一致した場合（ステップＳ１８；Ｙｅｓ）、パケット制御部２６は、受信パケットを廃棄し（ステップＳ２０）、イネーブル信号を有意とする（ステップＳ１２１）。ステップＳ１２１実行後、パケット制御部２６は、パケットの受信待ちに戻る（ステップＳ１１；Ｎｏ）。
【０１３０】
さらに、パケットを受信すると（ステップＳ１１：Ｙｅｓ）、パケット制御部２６は、そのパケットが切替通知用の制御パケットであるか否かを判定する（ステップＳ１２）。切替通知用の制御パケットでない場合（ステップＳ１２；Ｎｏ）、パケット制御部２６は、受信したパケットのパケット長と、パケットのデータに基づいてハッシュ値とを算出する（ステップＳ１３）。
【０１３１】
続いて、パケット制御部２６は、イネーブル信号が無意になっているか否かを判定する（ステップＳ１１４）。イネーブル信号が無意でなければ（ステップＳ１１４；Ｎｏ）、パケット制御部２６は、受信したパケットのパケット長と、算出されたハッシュ値とを保存（上書き）する（ステップＳ１５）。ステップＳ１５の実行後、受信側装置２１は、パケットの受信待ちに戻る（ステップＳ１１；Ｎｏ）。
【０１３２】
以上詳細に説明したように、この実施の形態３によれば、受信側装置２１で、現用系のパス１０２と予備系のパス１０３の一方のパケットを選択受信する場合であっても、無瞬断での切り替えが可能となる。受信系のパス１０３のパケットを選択受信する場合は、出力インターフェイス２２では、現用系と予備系との２つの系の処理を並行して行う必要があるが、スイッチ２４の構成を簡単化することができる。
【０１３３】
実施の形態４．
次に、この発明の実施の形態４について説明する。
【０１３４】
上記実施の形態３では、送信側装置１１では切替通知用の制御パケットを挿入することとしたが、この実施の形態では上記実施の形態２と同様にパケットにシーケンス番号を付与する。受信側装置１１の構成は、上記実施の形態２の受信側装置１１の構成と同じであるが、その動作が異なる。
【０１３５】
受信側装置２１の動作について説明する。図１７には、受信側装置２１の動作が示されている。図１７に示すように、まず、パケット制御部２６は、パケットを受信するまで待つ（ステップＳ４１；Ｎｏ）。パケットを受信すると（ステップＳ４１；Ｙｅｓ）、パケット制御部２６は、そのパケットのシーケンス番号を取得する（ステップＳ４２）。
【０１３６】
さらに、パケットを受信すると（ステップＳ４１：Ｙｅｓ）、パケット制御部２６は、取得されたシーケンス番号が、保持部２７に保持された保存値以下であるか否かを判定する（ステップＳ４３）。取得されたシーケンス番号が、保持部２７に保持された保存値以下でなければ（ステップＳ４３；Ｎｏ）、パケット制御部２６は、パケットのシーケンス番号を保存（上書き）し（ステップＳ４４）、シーケンス番号のために追加した領域を削除する（ステップＳ４５）。さらに、パケット制御部２６は、イネーブル信号を無意に設定する（ステップＳ１４６）。ステップＳ１４６を実行した後は、パケット制御部２６は、再びパケット受信待ちとなる（ステップＳ４１；Ｎｏ）。
【０１３７】
さらに、パケットを受信すると（ステップＳ４１：Ｙｅｓ）、パケット制御部２６は、取得されたシーケンス番号が、保持部２７に保持された保存値であるか否かを判定する（ステップＳ４３）。取得されたシーケンス番号が、保持部２７に保持されたシーケンス番号以下であれば（ステップＳ４３；Ｙｅｓ）、パケット制御部２６は、予備系に切り替える選択信号を出力するとともに、イネーブル信号を無意とする（ステップＳ１４７）。ステップＳ１４７実行後は、パケット制御部４６は、パケット受信待ちとなる（ステップＳ４１）。
【０１３８】
以上詳細に説明したように、この実施の形態４によれば、受信側装置２１で、現用系のパス１０２と予備系のパス１０３の一方のパケットを選択受信する場合であっても、無瞬断での切り替えが可能となる。受信系のパス１０３のパケットを選択受信する場合は、出力インターフェイス２２では、現用系と予備系との２つの系の処理を並行して行う必要があるが、スイッチ２４の構成を簡単化することができる。
【０１３９】
なお、上記各実施の形態では、送信側装置１１が現用系のパス１０２における障害の発生を検出したが、本発明はこれには限られず、受信側装置２１も、現用系のパス１０２における障害の発生を検出するようにしてもよい。
【０１４０】
なお、上記各実施の形態において、実行されるプログラムは、フレキシブルディスク、ＣＤ−ＲＯＭ（Compact Disc Read-Only Memory）、ＤＶＤ（Digital Versatile Disc）、ＭＯ（Magneto-Optical Disc）等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをインストールすることにより、上述のスレッドを実行するシステムを構成することとしてもよい。
【０１４１】
また、プログラムをインターネット等の通信ネットワーク上の所定のサーバ装置が有するディスク装置等に格納しておき、例えば、搬送波に重畳させて、ダウンロード等するようにしてもよい。
【０１４２】
また、上述の機能を、ＯＳ（Operating System）が分担して実現する場合又はＯＳとアプリケーションとの協働により実現する場合等には、ＯＳ以外の部分のみを媒体に格納して配布してもよく、また、ダウンロード等してもよい。
【０１４３】
この発明は、この発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、この発明を説明するためのものであり、この発明の範囲を限定するものではない。すなわち、この発明の範囲は、実施の形態ではなく、特許請求の範囲で示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、この発明の範囲内とみなされる。
【産業上の利用可能性】
【０１４４】
この発明は、パケットの転送に好適である。
【符号の説明】
【０１４５】
１１    送信側装置
１２    入力インターフェイス
１３    スイッチ
１４、１５    出力インターフェイス
１６    障害検出部
１７    バッファ
１８    制御パケット挿入部
１９    セレクタ
２１    受信側装置
２２、２３    入力インターフェイス
２４    スイッチ
２５    出力インターフェイス
２６    パケット制御部
２７    保持部
２８    パケット識別部
２９    セレクタ
１００    パケット転送システム
１０１、１０２、１０３、１０４    パス
【図１】
2013085100.tif 000003
【図２】
2013085100.tif 000004
【図３】
2013085100.tif 000005
【図４】
2013085100.tif 000006
【図５】
2013085100.tif 000007
【図６】
2013085100.tif 000008
【図７】
2013085100.tif 000009
【図８】
2013085100.tif 000010
【図９】
2013085100.tif 000011
【図１０】
2013085100.tif 000012
【図１１】
2013085100.tif 000013
【図１２】
2013085100.tif 000014
【図１３】
2013085100.tif 000015
【図１４】
2013085100.tif 000016
【図１５】
2013085100.tif 000017
【図１６】
2013085100.tif 000018
【図１７】
2013085100.tif 000019