現用系の通信経路と予備系の通信経路とを含む複数の通信経路で接続された送信側装置と受信側装置とを備えるパケット転送システムであって、前記送信側装置及び前記受信側装置のいずれか一方は、パケットの識別情報を生成する識別情報生成部を備え、前記送信側装置は、前記現用系の通信経路における障害の発生を検出する障害検出部と、前記障害検出部で障害の発生が検出されると、入力したパケットの出力先を、現用系の通信経路から予備系の通信経路に切り替えるスイッチと、前記現用系の通信経路で障害が発生してから前記障害検出部で障害の発生が検出されるまでの推定時間に現用系の通信経路を送信されるパケットを蓄積可能な容量を有し、上位の通信経路から受信したパケットを蓄積するファーストインファーストアウトのバッファと、前記障害検出部で障害の発生が検出される前は、上位の通信経路から直接入力されるパケットを選択して前記スイッチに出力し、前記障害検出部で障害が検出された後は前記バッファが空でなければ前記バッファから読みだされるパケットを選択して前記スイッチに出力し、前記バッファが空になると上位の通信経路から直接入力されるパケットを選択して前記スイッチに出力するセレクタと、を備え、前記受信側装置は、前記複数の通信経路のいずれかから受信したパケットの識別情報を保持する保持部と、前記保持部に保持された識別情報と新たに受信したパケットの識別情報とを比較することにより、受信したパケットを下位の通信経路に送信するか否かを決定するパケット制御部と、を備えるパケット転送システム。前記送信側装置は、前記障害検出部で障害の発生が検出されると、切替通知用の制御パケットを生成して前記セレクタに出力する制御パケット生成部をさらに備え、前記セレクタは、前記障害検出部で障害の発生が検出されると、前記バッファが空でなければ、前記制御パケット生成部で生成された制御パケットを選択して前記スイッチに出力した後に、前記バッファから読みだされるパケットを選択して前記スイッチに出力する、ことを特徴とする請求項1に記載のパケット転送システム。前記受信側装置は、前記識別情報生成部として、受信したパケットのハッシュ値を前記識別情報として算出するハッシュ値算出部をさらに備え、前記パケット制御部は、前記制御パケットを受信していない間は受信したパケットを下位の通信経路に出力し、前記制御パケットを受信すると受信フラグをセットし、受信フラグが設定されている間は受信したパケットを廃棄し、前記保持部で保持されたハッシュ値と新たに受信したハッシュ値とが一致すると、前記受信フラグをリセットするとともに、受信したパケットを廃棄する、ことを特徴とする請求項2に記載のパケット転送システム。前記ハッシュ値算出部は、ハッシュ値とともに、受信したパケットのパケット長を算出し、前記保持部は、ハッシュ値とともに、パケット長を保持し、前記パケット制御部は、前記保持部で保持されたハッシュ値及びパケット長と新たに受信したハッシュ値及びパケット長とが一致すると、前記受信フラグをリセットするとともに、受信したパケットを廃棄する、ことを特徴とする請求項3に記載のパケット転送システム。前記受信側装置は、入力される選択信号に従って、現用系の通信経路から受信したパケットか、予備系の通信経路から受信したパケットかのいずれかを選択して、イネーブル信号が有意である場合に、下位の通信経路に出力するセレクタをさらに備え、前記パケット制御部は、前記制御パケットを受信していない間はイネーブル信号を有意とし、前記制御パケットを受信すると予備系の通信経路を選択する選択信号を出力するとともにイネーブル信号を無意とし、前記保持部で保持されたハッシュ値と新たに受信したハッシュ値とが一致すると、受信したパケットを廃棄した後にイネーブル信号を有意とする、ことを特徴とする請求項2に記載のパケット転送システム。前記送信側装置は、前記識別情報生成部として、前記パケットにシーケンス番号を付与するシーケンス番号付与部をさらに備える、ことを特徴とする請求項1に記載のパケット転送システム。前記パケット制御部は、新たに受信したパケットのシーケンス番号が前記保持部で保持されたシーケンス番号以下である場合にはパケットを廃棄し、新たに受信したパケットのシーケンス番号が前記保持部で保持されたシーケンス番号より大きい場合には、受信したパケットを下位の通信経路に送信する、ことを特徴とする請求項6に記載のパケット転送システム。前記受信側装置は、入力される選択信号に従って、現用系の通信経路から受信したパケットと予備系の通信経路から受信したパケットとのいずれかを選択して、イネーブル信号が有意である場合に入力したパケットを下位の通信経路に出力するセレクタをさらに備え、前記パケット制御部は、新たに受信したパケットのシーケンス番号が前記保持部で保持されたシーケンス番号より大きい場合にはイネーブル信号を有意とし、新たに受信したパケットのシーケンス番号が前記保持部で保持されたシーケンス番号以下である場合には予備系の通信経路を選択する選択信号を出力するとともにイネーブル信号を無意とする、ことを特徴とする請求項6に記載のパケット転送システム。現用系の通信経路と予備系の通信経路とを含む複数の通信経路で接続された送信側装置と受信側装置とを備えるパケット転送方法であって、前記送信側装置及び前記受信側装置のいずれか一方で、前記パケットの識別情報を生成する第1の工程と、前記送信側装置で、前記現用系の通信経路における障害の発生を検出する第2の工程と、前記送信側装置で、前記現用系の通信経路で障害が発生してから前記第2の工程で障害の発生が検出されるまでの推定時間に現用系の通信経路を送信されるパケットを蓄積可能な容量を有するファーストインファーストアウトのバッファで、上位の通信経路から受信したパケットを蓄積する第3の工程と、前記送信側装置で、前記第2の工程で障害の発生が検出される前は、上位の通信経路から直接入力されるパケットを選択して現用系の通信経路に出力し、前記第2の工程で障害の発生が検出された後は前記バッファが空でなければ前記バッファから読みだされるパケットを選択して予備系の通信経路に出力し、前記バッファが空になると上位の通信経路から直接入力されるパケットを選択して予備系の通信経路に出力する第4の工程と、前記受信側装置で、前記複数の通信経路のいずれかから受信したパケットの識別情報を保持する第5の工程と、前記受信側装置で、前記第5の工程で保持された識別情報と新たに受信したパケットの識別情報とを比較することにより、受信したパケットを下位の通信経路に送信するか否かを決定する第6の工程と、を含むパケット転送方法。上述のように、11切替方式では故障発生時の無瞬断での切替方法が提案されている。しかしながら、11切替方式では、現用系と予備系の両方の系にデータが流れるため、予備系の装置でも処理が行われることとなり、ネットワーク全体では、現用系だけにデータを送る場合1:1切替方式と比較して、消費電力が大きくなってしまう。一方、1:1切替方式では常時片系にしか信号が流れないため、障害が発生してから検出して送信側で切り替えるまでの間のデータが欠落し、無瞬断を保証することが困難になる。この発明は、上記実情に鑑みてなされたものであり、1:1切替方式にて現用系の通信経路に障害が発生した時にも、現用系の通信経路から予備系の通信経路へ無瞬断にて切替を行うパケット転送装置及びパケット転送方法を提供することを目的とする。上記目的を達成するために、この発明に係るパケット転送システムは、現用系の通信経路と予備系の通信経路とを含む複数の通信経路で接続された送信側装置と受信側装置とを備えるパケット転送システムであって、前記送信側装置及び前記受信側装置のいずれか一方は、パケットの識別情報を生成する識別情報生成部を備え、前記送信側装置は、前記現用系の通信経路における障害の発生を検出する障害検出部と、前記障害検出部で障害の発生が検出されると、入力したパケットの出力先を、現用系の通信経路から予備系の通信経路に切り替えるスイッチと、前記現用系の通信経路で障害が発生してから前記障害検出部で障害の発生が検出されるまでの推定時間に現用系の通信経路を送信されるパケットを蓄積可能な容量を有し、上位の通信経路から受信したパケットを蓄積するファーストインファーストアウトのバッファと、前記障害検出部で障害の発生が検出される前は、上位の通信経路から直接入力されるパケットを選択して前記スイッチに出力し、前記障害検出部で障害が検出された後は前記バッファが空でなければ前記バッファから読みだされるパケットを選択して前記スイッチに出力し、前記バッファが空になると上位の通信経路から直接入力されるパケットを選択して前記スイッチに出力するセレクタと、を備え、前記受信側装置は、前記複数の通信経路のいずれかから受信したパケットの識別情報を保持する保持部と、前記保持部に保持された識別情報と新たに受信したパケットの識別情報とを比較することにより、受信したパケットを下位の通信経路に送信するか否かを決定するパケット制御部と、を備える。この発明によれば、送信側装置では送信されるパケットがバッファに蓄積されている。このバッファは、現用系の通信経路で障害が発生してから障害の発生が検出されるまでの推定時間に相当する容量を有する。現用系の通信経路に障害が発生すると、送信側装置では、パケットを送信する経路が、予備系の通信経路に切り替えられ、上位の通信経路から受信したパケットではなく、バッファに蓄積されたパケットが受信側装置に送信される。このようにすれば、送信側装置では、現用系の通信経路で発生した障害により受信側装置で送信できなかった可能性のあるパケットを、予備系の通信経路で受信側装置に送信することができる。さらに、送信側装置か受信側装置かのいずれかでは、パケットの識別情報が生成されている。受信側装置では、パケットを受信する度に識別情報を保持し、保持した識別情報と、新たに受信したパケットの識別情報とを比較する。この比較により、受信側装置は、新たに受信したパケットが、すでに受信したパケットであるか否かを判定し、すでに受信したパケットであれば、そのパケットについては下位の通信経路に送信しないようにすることができる。このため、同一パケットの二重到着を防止することができる。すなわち、この発明によれば、1:1切替方式にて現用系の通信経路に障害が発生した時にも、通信側装置でパケットを再送し、受信側装置で同一パケットの二重到着を防止することができるので、現用系の通信経路から予備系の通信経路へ、無瞬断にて切替を行うことができる。この発明の実施の形態について、図面を参照して詳細に説明する。実施の形態1.まず、この発明の実施の形態1について説明する。図1には、この実施の形態に係るパケット転送システム100により構築されるネットワークの概略的な構成が示されている。図1に示すように、パケット転送システム100は、送信側装置11と、受信側装置21とを備える。送信側装置11及び受信側装置21は、ともに通信機能を有するコンピュータであり、CPU、メモリ、通信回路等のハードウエアを備えている。送信側装置11及び受信側装置21は、CPUがメモリに格納されたプログラムを実行して、通信回路を動作させることにより、以下に示す各種機能を実現する。送信側装置11は、上位の通信経路であるパス101と接続されている。送信側装置11は、不図示の上位装置からパス101を介してパケットを受信する。送信側装置11は、受信したパケットを受信側装置21に転送する。受信側装置21は、下位の通信経路であるパス104と接続されている。受信側装置21は、送信側装置11から転送されたパケットを受信する。受信側装置21は、受信したパケットを、パス104を介して接続された下位装置不図示に送信する。このネットワークは冗長構成を有する。送信側装置11と受信側装置21とは、複数の通信経路、すなわち2つのパス102、103で接続されている。パス102は、中継装置202、203とを経由するパスである。また、パス103は、中継装置204、205、206を経由するパスである。送信側装置11は、パス101を介して受信したパケットを、通常は、現用系のパス102を介して、受信側装置21に送信する。また、現用系のパス102に異常が発生した場合には、送信側装置11は、受信したパケットを、予備系のパス103を介して、受信側装置21に送信する。受信側装置21は、受信したパケットをパス104に出力する。すなわち、この実施の形態では、パス102が現用系のパスとして用いられ、通常は、パス102を用いてデータが転送される。一方、パス103は、予備系のパスとして用いられ、通常は、パス103を用いてパケットは転送されない。すなわち、このネットワークでは、パケット転送方式として1:1切替方式が採用されている。続いて、送信側装置11の構成について説明する。図2には、送信側装置11の概略的な構成が示されている。図2に示すように、送信側装置11は、入力インターフェイスIF12と、スイッチ13と、出力インターフェイスIF14、15と、を備える。入力インターフェイス12は、上位の装置からパス101を介して送信されるパケットを入力する。入力インターフェイス12は、障害検出部16と、バッファ17と、制御パケット挿入部18と、セレクタ19と、を備える。障害検出部16は、パス102の障害の発生を検出する。障害検出部16は、切替の対向装置や途中の経路の装置、監視制御装置いずれも不図示から通知されるネットワークの障害情報を検出する機能を有する。障害検出部16は、例えば、レイヤ2のOAMOperationAdministrationandMaintenanceフレームであるCCMContinuityCheckMessageフレームの一定時間非到達、AISAlarmIndicationSignalフレームやRDIRemoteDefectIndicationフレームの受信などにより、パス102の障害の発生を検出する。図1に戻り、例えば、中継装置202と中継装置203との間の回線で障害が発生したとする。この場合、リンク断やOAMフレームにより、両側の中継装置202、203で障害が発生したことが検出される。中継装置202は、送信側装置11に障害の発生を通知する。障害検出部16は、この通知により、現用系のパス102に障害が発生したことを検出する。図2に示すように、バッファ17は、入力インターフェイス12が受信したパケットを蓄積する。バッファ17は、障害の発生を検出してから送信側装置11に障害の発生が通知されるまでの推定時間分に相当する容量のパケットを蓄積可能である。この推定時間をTdとする。バッファ17は、ファーストインファーストアウトのバッファである。障害が発生していない場合は、バッファ17は、蓄積したパケットを、保存したタイミングから時間Td経過後に廃棄する。ただし、障害検出部16にて障害の発生が検出された後は、バッファ17は、推定時間Tdが経過しても、蓄積したパケットを廃棄せず、後述の手順により読み出されるのを待つ。制御パケット挿入部18は、障害検出部16で障害の発生が検出されると、切替通知用の制御パケットを生成してセレクタ19に出力する。この実施の形態では、制御パケット挿入部18が、制御パケット生成部に対応する。セレクタ19は、入力インターフェイス12が受信したパケットと、バッファ17に蓄積されたパケットと、制御パケット挿入部18から出力された制御パケットとを入力する。セレクタ19は、入力インターフェイス12が受信したパケットか、制御パケットか、バッファ17で遅延させたパケットのいずれかを選択して、スイッチ13に出力する。例えば、セレクタ19は、障害検出部16で障害の発生が検出される前は、パス101から受信したパケットを選択してスイッチ13に出力する。また、セレクタ19は、検出部16で障害の発生が検出された後はバッファ17が空でなければバッファ17からパケットを読み出してスイッチ13に出力する。より具体的には、セレクタ19は、障害検出部16で障害の発生が検出されると、バッファ17が空でなければ、制御パケット挿入部18で生成された制御パケットを選択してスイッチ13に出力した後に、バッファ17から読みだされるパケットを選択してスイッチ13に出力する。さらに、セレクタ19は、バッファ17が空になるとパス101から受信されるパケットを選択してスイッチ13に出力する。スイッチ13は、入力したパケットの出力先を出力インターフェイス14又は出力インターフェイス15のいずれかに切り替える。正常時には、出力インターフェイス14が選択され、異常時には、出力インターフェイス15が選択される。すなわち、スイッチ13は、障害検出部16で障害の発生が検出されると、入力したパケットの出力先を、現用系のパス102から予備系のパス103に切り替える。出力インターフェイス14は、パケットを、現用系のパス102に出力する。出力インターフェイス15は、パケットを、予備系のパス103に出力する。この送信側装置11において、パス101を介してパケットを受信すると、そのパケットはバッファ17に蓄えられる一方、セレクタ19に入力される。障害検出部16で現用系のパス102の障害の発生が検出されるまでは、セレクタ19は、受信したパケットをそのまま選択して出力する。スイッチ13は、セレクタ19から出力されたパケットを出力インターフェイス14に出力する。出力インターフェイス14は、現用系のパス102にパケットを出力する。さらに、障害検出部16でパス102の障害の発生が検出されると、制御パケット挿入部18は、制御パケットを生成して出力する。セレクタ19は、制御パケットをスイッチ13に出力する。スイッチ13は、この制御パケットを出力インターフェイス15に出力する。その後、セレクタ19は、バッファ17に蓄積されたパケットを順次読み出して、スイッチ13に出力する。スイッチ13は、これらのパケットを出力インターフェイス15に順次出力する。続いて、受信側装置21の構成について説明する。図3には受信側装置21の概略的な構成が示されている。図3に示すように、受信側装置21は、入力インターフェイス22、23と、スイッチ24と、出力インターフェイス25とを備える。入力インターフェイス22は、現用系のパス102のインターフェイスである。すなわち、パス102を介して送信されたパケットは、入力インターフェイス22に入力される。入力インターフェイス23は、予備系のパス103のインターフェイスである。すなわち、パス103を介して送信されたパケットは、入力インターフェイス23に入力される。スイッチ24は、入力インターフェイス22に入力されたパケットと、入力インターフェイス23に入力されたパケットとを入力する。スイッチ24は、このパケットのいずれか一方を、出力インターフェイス25に出力する。この実施の形態1では、出力インターフェイス25では、片方の系のデータを選択するのではなく、両系からのデータを順番に受信する構成とする。1:1切替方式の場合、基本的に片方の系にしかパケットが流れないため、両系からのパケットを受信しても重複がない。このため、実際には、このような構成とすることが多い。出力インターフェイス25は、パケット制御部26と保持部27とを備える。パケット制御部26は、パス102、103のいずれかから受信したパケットの識別情報を生成する。この実施の形態1では、パケット制御部26が、識別情報生成部に対応する。すなわち、この実施の形態1では、識別情報生成部は、受信側装置21に設けられている。保持部27は、パケット制御部26で生成されたパケットの識別情報を保持する。また、パケット制御部26は、保持部27に保持された識別情報と新たに受信したパケットの識別情報とを比較することにより、受信したパケットをパス104に送信するか否かを決定する。言い換えれば、パケット制御部26は、スイッチ24から受信したパケットのデータを解析し、所定の条件に従ってパケットの通過、廃棄を決定する。この実施の形態1では、パケットの識別情報を、パケットから生成されるハッシュ値及びパケットのデータ長パケット長とする。ハッシュ値とは、与えられた原文から固定長の疑似乱数を生成するハッシュ関数により生成される値である。パケットから生成されるハッシュ値は、パケットのデータが異なれば異なる値をとり、パケットのデータが同一であれば同じ値をとる。パケット制御部26は、受信したパケットのハッシュ値及びパケット長を、パケットの識別情報として算出する。すなわち、この実施の形態1では、パケット制御部26が、ハッシュ値算出部に対応する。また、パケット制御部26は、制御パケットを受信していない間は受信したパケットを下位の通信経路に出力する。パケット制御部26は、制御パケットを受信すると受信フラグを設定する。さらに、パケット制御部26は、受信フラグが設定されている間は受信したパケットを廃棄する。さらに、パケット制御部26は、保持部27で保持されたハッシュ値と新たに受信したハッシュ値とが一致すると、受信フラグをリセットするとともに、受信したパケットを廃棄する。次に、この実施の形態に係るパケット転送システム100の動作について説明する。まず、送信側装置11の動作について、図4を参照して説明する。図4には、パケットを送信する通信経路を、パス102からパス103へ切り替える際の送信側装置11の動作のフローチャートが示されている。図4に示すように、送信側装置11は、パケットを受信するまで待つステップS1;No。パケットを受信するとステップS1;Yes、送信側装置11障害検出部16は、障害の発生が検出されるまで待つステップS2;No。現在送信している現用系のパス102について、送信側装置11障害検出部16が障害の発生を検出するとステップS2;Yes、送信側装置11スイッチ13は、入力したパケットを出力インターフェイス15予備系のパス103に出力するように切り替わるスイッチS2。続いて、送信側装置11セレクタ19は、バッファ17が空であるかどうかを判定するステップS4。バッファ17が空である場合ステップS4;Yes、送信側装置11セレクタ19は、パス101を介して受信したパケットをそのまま選択して出力するステップS8。以後、送信側装置11セレクタ19は、受信したパケットの出力を繰り返すステップS8。この実施の形態に係るパケット転送システム100のように、パケット通信を行うシステムの場合、TDM回線のシステムとは異なり、送信側装置11は、常にパケットを送信しているわけではなく、必要なときにパケットを送信する。このため、パケットの入力間隔が開くと、バッファ17が空になる。逆に言えば、バッファ17が空であるということは、パス102に障害が発生してからその障害の発生が障害発生部16で検出されるまでの推定時間Tdの間、送信側装置11にパケットが到着していなかったことを意味する。そこで、バッファ17が空の状態では、パケットロスが発生していないと考えられるので、パス102から直接入力するパケットの出力を繰り返す。一方、バッファ17が空でない場合ステップS4;No、現用系のパス102にて障害発生後にパケットロスが発生した可能性があるため、送信側装置11は、以後の処理を行う。まず、送信側装置11制御パケット挿入部18は、切替通知用の制御用パケットを生成し、送信側装置11セレクタ19は、制御パケットを選択してスイッチ13に出力する。すなわち、制御パケットが挿入されるステップS5。上記スイッチS3において、スイッチ13は、出力インターフェイス15の方に接続されているので、この制御パケットは、予備系のパス103に出力される。続いて、送信側装置11セレクタ19は、バッファ17に蓄積されるパケットを読み出してスイッチ13に出力するステップS6。ここでは、最も古いパケットが読み出され、出力される。続いて、送信側装置11セレクタ19は、バッファ17が空になったか否かを判定するステップS7。バッファ17が空でなければステップS7:No、送信側装置11セレクタ19は、バッファ17に蓄積されるパケットを読み出してスイッチ13に出力するステップS6。このようにして、ステップS6→S7が繰り返され、バッファ17に蓄積されたパケットが順次読み出され、出力される。バッファ17が空になればステップS7;Yes、それ以降は、送信側装置11セレクタ19は、パス101を介して受信されたパケットを選択してスイッチ13に出力するステップS8。以後、送信側装置11セレクタ19は、受信したパケットの出力を繰り返すステップS8。次に、受信側装置21の動作について、図5を参照して説明する。図5には、受信側装置21を構成するパケット制御部26の動作のフローチャートが示されている。まず、パケット制御部26は、パケットを受信するまで待つステップS11;No。パケットを受信するとステップS11;Yes、パケット制御部26は、そのパケットが切替通知用の制御パケットであるか否かを判定するステップS12。切替通知用の制御パケットでなかった場合ステップS12;No、パケット制御部26は、受信したパケットのパケット長と、パケットのデータに基づくハッシュ値とを算出するステップS13。続いて、パケット制御部26は、切替通知用制御パケット受信フラグの値が1であるか否かを判定するステップS14。切替通知用制御パケット受信フラグの値が1でなければ、すなわち、切替通知用制御パケット受信フラグの値が0の場合ステップS14;No、送信側装置11で切替がなされておらず、受信したパケットは、転送すべきパケットであるということになる。そこで、パケット制御部26は、後のパケットの二重到着に備えて、受信したパケットのパケット長と、パケットデータから計算されるハッシュ値を保存上書きしステップS15、受信パケットをパス104に出力するステップS16。ステップS16の実行後、受信側装置21は、パケットの受信待ちに戻るステップS11;No。さらに、パケットを受信するとステップS11;Yes、パケット制御部26は、そのパケットが切替通知用の制御パケットであるか否かを判定するステップS12。切替通知用の制御パケットであった場合ステップS12;Yes、パケット制御部26は、切替通知用制御パケット受信フラグを1にセットするステップS17。ステップS17を実行した後は、受信側装置21は、パケットの受信待ちに戻るステップS11;No。さらに、パケットを受信するとステップS11:Yes、パケット制御部26は、そのパケットが切替通知用の制御パケットであるか否かを判定するステップS12。切替通知用の制御パケットでない場合ステップS12;No、パケット制御部26は、受信したパケットのパケット長と、パケットのデータに基づいてハッシュ値を算出するステップS13。続いて、パケット制御部26は、切替通知用の制御パケット受信フラグの値が1であるか否かを判定するステップS14。切替通知用の制御パケット受信フラグの値が1であるということは、送信側装置11で切替がなされており、受信側装置21で切替に伴う処理が完了していないことを示している。切替通知用制御パケット受信フラグの値が1である場合ステップS14;Yes、パケット制御部26は、受信したパケットのパケット長とハッシュ値と、過去に受信したパケット切り替え通知用制御パケットを受信する前のパケットのパケット長とハッシュ値保存値と一致するか否かを判定するステップS18。パケット長とハッシュ値とが一致しなかった場合ステップS18;No、パケット制御部26は、受信パケットを廃棄するステップS19。送信側装置11でバッファ17に蓄積されたパケットを読み出して、障害発生前にバッファ17に溜めたパケットを受信していることから、二重到着を避けるためである。ステップS19を実行した後は、受信側装置21は、パケットの受信待ちに戻るステップS11;No。さらに、パケットを受信するとステップS11:Yes、パケット制御部26は、そのパケットが切替通知用の制御パケットであるか否かを判定するステップS12。切替通知用の制御パケットでない場合ステップS12;No、パケット制御部26は、受信したパケットのパケット長と、パケットのデータに基づくハッシュ値とを算出するステップS13。続いて、パケット制御部26は、切替通知用制御パケット受信フラグの値が1であるか否かを判定するステップS14。切替通知用の制御パケット受信フラグの値が1であるということは、送信側装置11で切替がなされており、受信側装置21で切替に伴う処理が完了していないことを示している。そこで、切替通知用制御パケット受信フラグの値が1であればステップS14;Yes、パケット制御部26は、受信したパケットのパケット長とハッシュ値と、過去に受信したパケット切り替え通知用の制御パケットを受信する前のパケットのパケット長とハッシュ値とが一致しているか否かを判定するステップS18。これらが一致した場合ステップS18;Yes、パケット制御部26は、受信パケットを廃棄しステップS20、切替通知用の制御パケット受信フラグを0にリセットするステップS21。ステップS21実行後、パケット制御部26は、パケットの受信待ちに戻るステップS11;No。なお、ステップS20、S21は、実行される順番が逆であってもよい。さらに、パケットを受信するとステップS11:Yes、パケット制御部26は、そのパケットが切替通知用の制御パケットであるか否かを判定するステップS12。切替通知用の制御パケットでない場合ステップS12;No、パケット制御部26は、受信したパケットのパケット長と、パケットのデータに基づいてハッシュ値とを算出するステップS13。続いて、パケット制御部26は、切替通知用制御パケット受信フラグの値が1であるか否かを判定するステップS14。切替通知用制御パケット受信フラグの値が0であればステップS14;No、パケット制御部26は、算出したパケット長と、ハッシュ値を保存上書きしステップS15、受信したパケットをパス104に出力するステップS16。ステップS16実行後、受信側装置21は、パケットの受信待ちに戻るステップS11;No。図6乃至図9には、パス102からパス103に切り替える際のパケットの流れの一例が示されている。図6に示すように、送信側装置11には、パス101を介して6つのパケットが受信される。この6つのパケットを、送信される順に、パケット1、2、3、4、5、6とする。送信側装置11は、現用系のパス102にパケット1、2、...を送信する。続いて、図7に示すように、パケットの転送中に、中継装置202と中継装置203の間の回線で障害が発生したとする。この時点で、受信側装置21には、パケット1がすでに到達しており、パケット2、3についても、中断装置203を超えて、受信側装置21に転送中であるものとする。この状態では、送信側装置11のバッファ17には、バッファ1、2、3が蓄積されている。障害が発生すると、図8に示すように、中継装置202から送信側装置11に障害の発生が通知される。なお、送信側装置11がこの通知を受信し、障害検出部16が障害の発生を検出するまで、さらにパケット4、5がパス102に送出される。したがって、この時点で、バッファ17には、バッファ2、3、4、5が蓄積されている。一方、受信側装置21では、パケット1、2、3が到達しており、パケット3のハッシュ値とパケット長とが、保持部17に保持された状態となる。パケット4、5については、中継装置202、203の間に発生した障害により、受信側装置21には、到達しない。障害検出部16が障害の発生を検出すると、送信側装置11では、スイッチ13がパケットの送出先をパス102からパス103に切り替える。また、セレクタ19は、制御パケット挿入部18で生成された制御パケットをスイッチ13に出力し、図9に示すように、制御パケットをパス103に送出する。続いて、セレクタ19は、バッファ17に蓄積したパケット2、3、4、5をこの順にスイッチ13に出力する。これにより、パケット2、3、4、5が、パス103を介して受信側装置21に送信される。受信側装置21では、制御パケットを受信すると、パケット制御部26が、受信フラグをセットする。受信フラグをセットすると、パケット制御部26は、保持部27に保持されたハッシュ値とパケット長と、新たに受信したパケットのハッシュ値とパケット長とが一致するまで受信したパケットを破棄する。例えば、図10に示すように、保持部27にパケット3のハッシュ値とパケット長が保持されている場合には、再送されたパケット2は、ハッシュ値とパケット長が異なるので破棄される。続いて受信されるパケット3については、ハッシュ値とパケット長とが一致する。この場合には、パケット制御部26は、受信フラグをリセットするとともに、新たに受信したパケット3を破棄する。続いて受信されるパケット4、5については、パケット制御部26は、パス104へ出力する。送信側装置11のセレクタ19は、バッファ17が空になると、パス101を介して受信されたパケットを、そのままスイッチ13に出力する。例えば、図11に示すように、セレクタ19は、パス101から受信したパケット6を、スイッチ13に出力する。これにより、パケット6は、パス103を介して受信側装置21に送信される。すなわち、結果的に、このパケット転送システム100によれば、パス102に障害が発生した場合でも、パケットロスを発生させることなく無瞬断でパケット1乃至6を転送することができる。以上詳細に説明したように、この実施の形態によれば、送信側装置11では、送信されるパケットがバッファ17に蓄積されている。このバッファ17は、現用系のパス102で障害が発生してから障害が検出されるまでの推定時間に相当する容量を有する。送信側装置11で、現用系のパス102に障害が発生すると、送信側装置11では、パケットを送信する経路が、予備系のパス103に切り替えられ、パス101から受信したパケットではなく、バッファ17に蓄積されたパケットが受信側装置21に送信される。このようにすれば、送信側装置11では、現用系のパス101の障害の発生により受信側装置21に送信できなかった可能性のあるパケットを、予備系のパス103で受信側装置21に送信することができる。さらに、受信側装置21では、パケットの識別情報としてハッシュ値及びパケット長が生成されている。受信側装置21は、パケットを受信する度にハッシュ値及びパケット長を保持し、保持したハッシュ値及びパケット長と、新たに受信したパケットのハッシュ値及びパケット長とを比較する。この比較により、新たに受信したパケットが、すでに受信したパケットであるか否かが判定され、すでに受信したパケットであれば、そのパケットについては下位のパス104に送信しないようにすることができる。このため、同一パケットの二重到着を防止することができる。すなわち、この実施の形態によれば、1:1切替方式にて現用系のパス102に障害が発生した時にも、通信側装置11でパケットを再送し、受信側装置21で同一パケットの二重到着を防止することができるので、現用系のパス102から予備系のパス103へ、パケットロスなしに無瞬断にて切替を行うことができる。1:1切替方式は、片系にのみパケットを送信するため、11切替方式と比較して、送信側装置11、中継装置202乃至206、受信側装置21のうち、実際に同時に動作する装置が少なくなる。このため、消費電力を低減することが可能である。また、送信側装置11におけるバッファ17のサイズについては、例えば以下のように見積もることができる。パス102に障害が発生してから送信側装置11にその障害の発生が通知されるまでの推定時間について考える。イーサネット登録商標OAMのCCM機能を使用した場合、CCMの送信間隔を3.3msとすると、CCM非受信によるLOCLossofContinuityCheck警報を検出までは、3.3ms×3.5=11.55msである。また、警報通知用のOAMフレームの転送時間を10msとする。これらの合計は、21.55msとなる。パス102に障害が発生してから送信側装置11が故障と認識するまでに十分な時間を仮に50msとすると、50ms分の送信データを保存可能なバッファ17が必要となる。回線速度が1Gbpsの場合、1Gbps×50ms50Mbit6.25Mbyteであり、10Gbps回線の場合、500Mbit=62.5Mbyteである。これらは、SDRAMを使用すれば、1チップで保存可能な量である。また、パケットの場合、回線速度100で常時データが流れていることはほとんど考えられず、契約回線速度で見積もることも妥当と考える。この場合、契約回線速度に応じてバッファサイズは小さくなる。なお、切替通知用の制御パケットとしては、例えば、イーサネット登録商標プロテクションでの制御フレームとして定義されているAPSAutomaticProtectionSwitchingフレームの未使用領域を定義して使用してもよいし、新規に制御パケットを定義してもよい。なお、この実施の形態ではパケットのデータからハッシュ値を計算して比較するとしたが、イーサネット登録商標フレームの場合、フレーム最後にFCSFrameCheckSequenceとして、CRC-8の演算結果が付与されるため、その値を識別情報として用いてもよい。なお、この実施の形態では、パケットの識別情報として、パケットのハッシュ値と、パケット長とを用いたが、パケットの識別情報として、パケットのハッシュ値だけを用いるようにしてもよい。実施の形態2.次に、この発明の実施の形態2について説明する。上記実施の形態1では、送信側装置11と受信側装置21での切替のタイミングの認識を合わせるために、切替通知用の制御パケットを使用した。これに対して、この実施の形態2では、制御パケットを使用せず、通常のパケットに追加ヘッダを挿入し、その追加ヘッダにシーケンス番号を付与することで、同一パケットの二重到着を防止する。図12には、この実施の形態2に係る送信側装置11の構成が示されている。図12に示すように、この実施の形態2に係る送信側装置11の構成は、シーケンス番号挿入部31が追加され、制御パケット挿入部18が設けられていない点が、上記実施の形態1に係る送信側装置11の構成と異なっている。また、この実施の形態2に係る受信側装置21は、上記実施の形態2に係る受信側装置21と、構成は同じであるが、パケット制御部26の動作が異なっている。送信側装置11のシーケンス番号挿入部31は、入力パケットの空き領域あるいは入力パケットをカプセル化してそのヘッダ領域にシーケンス番号を付与する。シーケンス番号とはフレーム毎に1ずつ増加していく番号である。シーケンス番号付与のために、例えばイーサネット登録商標の場合はVLANタグを追加する、MPLSMultiProtocolLabelSwitchingの場合はShimヘッダを追加する、などが考えられる。このシーケンス番号により、パケットの転送順番が明確化される。次に、図13、図14を参照して、送信側装置11及び受信側装置21の動作について説明する。図13には、送信側装置11の動作が示されている。まず、図13に示すように、送信側装置11は、パケットを受信するまで待つステップS31;No。パケットを受信するとステップS31;Yes、送信側装置11シーケンス番号挿入部31は、パケットにシーケンス番号を挿入するステップS32。バッファ17には、このシーケンス番号付きのパケットが蓄積される。続いて、送信側装置11障害検出部16は、障害の発生が検出されるまで待つステップS33;No。現在パケットを送信している現用系のパス102について、送信側装置11障害検出部16が障害の発生を検出するとステップS33;Yes、送信側装置11スイッチ13は、入力したパケットを出力インターフェイス15予備系のパス103に出力するように切り替わるスイッチS34。続いて、送信側装置11セレクタ19は、バッファ17が空であるかどうかを判定するステップS35。バッファ17が空である場合ステップS35;No、送信側装置11セレクタ19は、パス101を介して受信したパケットをそのまま選択して出力するステップS38。ステップS38の実行後、送信側装置11は、ステップS31に戻る。一方、バッファ17が空である場合ステップS35;Yes、送信側装置11セレクタ19は、バッファ17に蓄積されるパケットを読み出してスイッチ13に出力するステップS36。ここでは、最も古いパケットが読み出され、出力される。続いて、送信側装置11セレクタ19は、バッファ17が空になったか否かを判定するステップS37。バッファ17が空でなければステップS37:No、送信側装置11セレクタ19は、バッファ17に蓄積されるパケットを読み出してスイッチ13に出力するステップS36。このようにして、ステップS36→S37が繰り返され、バッファ17に蓄積されたパケットが順次読み出され、出力される。バッファ17が空になればステップS37;Yes、それ以降は、送信側装置11セレクタ19は、パス101を介して受信されたパケットを選択してスイッチ13に出力するステップS38。以後、送信側装置11セレクタ19は、受信したパケットの出力を繰り返すステップS38。続いて、受信側装置21の動作について説明する。図14には、受信側装置21の動作が示されている。図14に示すように、まず、パケット制御部26は、パケットを受信するまで待つステップS41;No。パケットを受信するとステップS41;Yes、パケット制御部26は、そのパケットのシーケンス番号を取得するステップS42。さらに、パケットを受信するとステップS41;Yes、パケット制御部26は、そのパケットのシーケンス番号を取得しステップS42、取得されたシーケンス番号が、保持部27に保持されたシーケンス番号以下であるか否かを判定するステップS43。取得されたシーケンス番号が、保持部27に保持されたシーケンス番号以下でなければステップS43;No、パケット制御部26は、パケットのシーケンス番号を保存上書きしステップS44、シーケンス番号のために追加した領域を削除しステップS45、受信したパケットを出力するステップS46。ステップS46を実行した後は、パケット制御部26は、再びパケット受信待ちとなるステップS41;No。さらに、パケットを受信するとステップS41:Yes、パケット制御部26は、取得されたシーケンス番号が、保持部27に保持されたシーケンス番号以下であるか否かを判定するステップS43。取得されたシーケンス番号が、保持部27に保持されたシーケンス番号以下であればステップS43;Yes、パケット制御部26は、故障による送信側切替でのバッファから読み出しパケットによる二重到着と考え、パケットを廃棄するステップS47。ステップS47実行後は、パケット制御部46は、パケット受信待ちとなるステップS41;No。以上詳細に説明したように、この実施の形態2によれば、送信側装置11は、障害が発生してから障害の発生が検出されるまでの推定時間分のデータを蓄えることのできるバッファ17を有している。また、受信側装置21は、シーケンス番号により受信側にて二重到着を防止することで、現用系のパスの障害発生時にも無瞬断パケットロスなしで切替を行うことが可能である。また、この実施の形態2のように、シーケンス番号を用いることで切替通知用の制御フレームの送受信が不要となる。ただし、この実施の形態2では、パケットに追加のヘッダを挿入する必要があるが。最終的には、そのヘッダは削除される。また、上記実施の形態1ではパケット長とハッシュ値を組み合わせてパケットの比較を行っていた。この比較だけではパケットが異なっていても偶然に一致する可能性を否定できない。これに対して、この実施の形態2のように、シーケンス番号を用いれば、現用系と予備系での送信による二重到着を確実に防止することができる。実施の形態3.次に、この発明の実施の形態3について説明する。上記実施の形態1では、受信側装置において現用系のパス102と予備系のパス103の両方からのパケットを受信した。しかしながら、この実施の形態3では、受信側装置において現用系のパス102と予備系のパス103の一方を選択してパケットを受信する。送信側装置11の構成は、上記実施の形態1の送信側装置11の構成と同一である。図15には、受信側装置21の構成が示されている。図15に示すように、スイッチ24は、現用系の入力インターフェイス22からのパケットと、予備系の入力インターフェイス23からのパケットとを個別に出力インターフェイス25に出力する。出力インターフェイス25は、セレクタ29をさらに備える。セレクタ29は、パケット制御部26から出力される選択信号及びイネーブル信号を入力する。セレクタ29は、入力される選択信号に応じて、入力インターフェイス22から入力したパケットと入力インターフェイス23から入力したパケットとのいずれかを選択して出力する。セレクタ29は、イネーブル信号が無意である場合には、パケットをパス104に出力し、イネーブル信号が有意である場合には、パケットをパス104から出力しない。図16には、この実施の形態3に係るパケット制御部26の動作が示されている。図16に示すように、まず、パケット制御部26は、パケットを受信するまで待つステップS11;No。パケットを受信するとステップS11;Yes、パケット制御部26は、そのパケットが切替通知用の制御パケットであるか否かを判定するステップS12。切替通知用の制御パケットでなかった場合ステップS12;Yes、パケット制御部26は、受信したパケットのパケット長と、パケットのデータに基づくハッシュ値とを算出するステップS13。続いて、パケット制御部26は、イネーブル信号が無意となっているか否かを判定するステップS114。イネーブル信号が無意でなければステップS114;No、パケット制御部26は、受信したパケットのパケット長と、パケットデータに基づくハッシュ値を保存上書きするステップS15。ステップS15の実行後、受信側装置21は、パケットの受信待ちに戻るステップS11;No。さらに、パケットを受信するとステップS11;Yes、パケット制御部26は、そのパケットが切替通知用の制御パケットであるか否かを判定するステップS12。切替通知用の制御パケットであった場合ステップS12;Yes、パケット制御部26は、セレクタ29に対して予備系を選択する選択信号を出力するとともにイネーブル信号を無意に設定するステップS117。ステップS117を実行した後は、受信側装置21は、パケットの受信待ちに戻るステップS11;No。さらに、パケットを受信するとステップS11:Yes、パケット制御部26は、そのパケットが切替通知用の制御パケットであるか否かを判定するステップS12。切替通知用の制御パケットでない場合ステップS12;No、パケット制御部26は、受信したパケットのパケット長と、パケットのデータに基づくハッシュ値とを算出するステップS13。続いて、パケット制御部26は、イネーブル信号が無意であるか否かを判定するステップS114。イネーブル信号が無意であればステップS114;Yes、パケット制御部26は、受信したパケットのパケット長とハッシュ値と、過去に受信したパケット切り替え通知用制御パケットを受信する前のパケットのパケット長とハッシュ値と比較するステップS18。パケット長とハッシュ値とが一致しなかった場合ステップS18;No、パケット制御部26は、パケットの受信待ちに戻るステップS11;No。これにより、イネーブル信号は無意のままであるので、パケットはパス104には送出されない。さらに、パケットを受信するとステップS11:Yes、パケット制御部26は、そのパケットが切替通知用の制御パケットであるか否かを判定するステップS12。切替通知用の制御パケットでない場合ステップS12;No、パケット制御部26は、受信したパケットのパケット長と、パケットのデータに基づくハッシュ値とを算出するステップS13。続いて、パケット制御部26は、イネーブル信号が無意であるか否かを判定するステップS114。イネーブル信号が無意である場合ステップS114;Yes、パケット制御部26は、受信したパケットのパケット長とハッシュ値と、過去に受信したパケット切り替え通知用制御パケットを受信する前のパケットのパケット長とハッシュ値と比較するステップS18。両者が一致した場合ステップS18;Yes、パケット制御部26は、受信パケットを廃棄しステップS20、イネーブル信号を有意とするステップS121。ステップS121実行後、パケット制御部26は、パケットの受信待ちに戻るステップS11;No。さらに、パケットを受信するとステップS11:Yes、パケット制御部26は、そのパケットが切替通知用の制御パケットであるか否かを判定するステップS12。切替通知用の制御パケットでない場合ステップS12;No、パケット制御部26は、受信したパケットのパケット長と、パケットのデータに基づいてハッシュ値とを算出するステップS13。続いて、パケット制御部26は、イネーブル信号が無意になっているか否かを判定するステップS114。イネーブル信号が無意でなければステップS114;No、パケット制御部26は、受信したパケットのパケット長と、算出されたハッシュ値とを保存上書きするステップS15。ステップS15の実行後、受信側装置21は、パケットの受信待ちに戻るステップS11;No。以上詳細に説明したように、この実施の形態3によれば、受信側装置21で、現用系のパス102と予備系のパス103の一方のパケットを選択受信する場合であっても、無瞬断での切り替えが可能となる。受信系のパス103のパケットを選択受信する場合は、出力インターフェイス22では、現用系と予備系との2つの系の処理を並行して行う必要があるが、スイッチ24の構成を簡単化することができる。実施の形態4.次に、この発明の実施の形態4について説明する。上記実施の形態3では、送信側装置11では切替通知用の制御パケットを挿入することとしたが、この実施の形態では上記実施の形態2と同様にパケットにシーケンス番号を付与する。受信側装置11の構成は、上記実施の形態2の受信側装置11の構成と同じであるが、その動作が異なる。受信側装置21の動作について説明する。図17には、受信側装置21の動作が示されている。図17に示すように、まず、パケット制御部26は、パケットを受信するまで待つステップS41;No。パケットを受信するとステップS41;Yes、パケット制御部26は、そのパケットのシーケンス番号を取得するステップS42。さらに、パケットを受信するとステップS41:Yes、パケット制御部26は、取得されたシーケンス番号が、保持部27に保持された保存値以下であるか否かを判定するステップS43。取得されたシーケンス番号が、保持部27に保持された保存値以下でなければステップS43;No、パケット制御部26は、パケットのシーケンス番号を保存上書きしステップS44、シーケンス番号のために追加した領域を削除するステップS45。さらに、パケット制御部26は、イネーブル信号を無意に設定するステップS146。ステップS146を実行した後は、パケット制御部26は、再びパケット受信待ちとなるステップS41;No。さらに、パケットを受信するとステップS41:Yes、パケット制御部26は、取得されたシーケンス番号が、保持部27に保持された保存値であるか否かを判定するステップS43。取得されたシーケンス番号が、保持部27に保持されたシーケンス番号以下であればステップS43;Yes、パケット制御部26は、予備系に切り替える選択信号を出力するとともに、イネーブル信号を無意とするステップS147。ステップS147実行後は、パケット制御部46は、パケット受信待ちとなるステップS41。以上詳細に説明したように、この実施の形態4によれば、受信側装置21で、現用系のパス102と予備系のパス103の一方のパケットを選択受信する場合であっても、無瞬断での切り替えが可能となる。受信系のパス103のパケットを選択受信する場合は、出力インターフェイス22では、現用系と予備系との2つの系の処理を並行して行う必要があるが、スイッチ24の構成を簡単化することができる。なお、上記各実施の形態では、送信側装置11が現用系のパス102における障害の発生を検出したが、本発明はこれには限られず、受信側装置21も、現用系のパス102における障害の発生を検出するようにしてもよい。なお、上記各実施の形態において、実行されるプログラムは、フレキシブルディスク、CD-ROMCompactDiscReadOnlyMemory、DVDDigitalVersatileDisc、MOMagnetoOpticalDisc等のコンピュータ読み取り可能な記録媒体に格納して配布し、そのプログラムをインストールすることにより、上述のスレッドを実行するシステムを構成することとしてもよい。また、プログラムをインターネット等の通信ネットワーク上の所定のサーバ装置が有するディスク装置等に格納しておき、例えば、搬送波に重畳させて、ダウンロード等するようにしてもよい。また、上述の機能を、OSOperatingSystemが分担して実現する場合又はOSとアプリケーションとの協働により実現する場合等には、OS以外の部分のみを媒体に格納して配布してもよく、また、ダウンロード等してもよい。この発明は、この発明の広義の精神と範囲を逸脱することなく、様々な実施の形態及び変形が可能とされるものである。また、上述した実施の形態は、この発明を説明するためのものであり、この発明の範囲を限定するものではない。すなわち、この発明の範囲は、実施の形態ではなく、特許請求の範囲で示される。そして、特許請求の範囲内及びそれと同等の発明の意義の範囲内で施される様々な変形が、この発明の範囲内とみなされる。