(57)【要約】【課題】  フロー単位の無瞬断切替機能を簡易な構成にて実現する。【解決手段】  受信パケットのシーケンス番号と、送信済みシーケンス番号とを比較することにより、送信済みシーケンス番号に１加算した値よりも大きなシーケンス番号を受信した場合に、そのパケットをバッファメモリ部に一時格納してから、出力し、一方、小さなシーケンス番号を受信した場合に、そのパケットを廃棄する。バッファメモリ部として、早着系において、パケット欠落が発生した場合に、早着系受信パケットを格納するための早着系用バッファメモリと、早着系用バッファメモリに格納中のパケットにおいて、再度パケット欠落が発生した場合に、そのパケットと同じシーケンス番号の遅着系受信パケットを格納するための遅着系用バッファメモリとを備える。【選択図】  図４
2015231210.tif 000002
【特許請求の範囲】
【請求項１】
パケット転送装置であって、
フロー毎の複数の早着系用バッファメモリと、フロー毎の複数の遅着系用バッファメモリと、制御部とを有するバッファメモリ部と、
受信したパケットのフロー毎に、前記受信パケットのシーケンス番号が、送信済みシーケンス番号に１加算した比較値よりも大きい場合に該パケットを前記バッファメモリ部に送出し、前記比較値と等しい場合に該パケットを出力する、早着系の第１のパケット送信制御部および遅着系の第２のパケット送信制御部と、
フロー毎に、前記バッファメモリ部より読み出された格納パケットのシーケンス番号が、前記比較値以上の場合に該パケットを出力する、第３のパケット送信制御部と、
を備え、
前記バッファメモリ部の前記制御部は、
前記第１のパケット送信制御部からの早着系パケットを、タイムアウト時刻情報を付加して前記早着系用バッファメモリにフロー毎に格納し、早着系メモリ書き込みシーケンス番号を更新し、
前記第２のパケット送信制御部からの遅着系パケットのシーケンス番号が前記早着系メモリ書き込みシーケンス番号より大きい場合、該遅着系パケットを前記遅着系用バッファメモリにフロー毎に格納し、
フロー毎に、前記早着系用バッファメモリに格納された前記早着系パケットのシーケンス番号が、前記比較値よりも大きな値であり且つ前記タイムアウト時刻情報に従いタイムアウトと判定された場合、または、前記早着系パケットのシーケンス番号が前記比較値と一致した場合、前記早着系用バッファメモリから前記早着系パケットを出力し、
フロー毎に、前記早着系用バッファメモリに前記早着系パケットが格納されていない場合または前記タイムアウトでないと判定された場合、前記遅着系用バッファメモリに格納された前記遅着系パケットのシーケンス番号と前記比較値とが一致したら前記遅着系用バッファメモリから前記遅着系パケットを出力する
ことを特徴とするパケット転送装置。
【請求項２】
請求項１に記載のパケット転送装置において、
フローを識別し、パケット受信時刻とシーケンス番号を求める、早着系の第１のパケット識別部および遅着系の第２のパケット識別部と、
前記第１および第２のパケット識別部から、それぞれ、パケット受信時刻とシーケンス番号を受信し、早着系と遅着系で同一のシーケンス番号のパケットの到着時間差を判定し、前記バッファメモリ部へ該到着時間差を送出する到着時間差判定部と
を備え、
前記バッファメモリ部の前記制御部は、前記早着系用バッファメモリへのパケット入力時刻または前記パケット受信時刻に前記到着時間差を付加した時刻により、前記早着系用バッファメモリにおけるタイムアウト時刻情報を計算することを特徴とするパケット転送装置。
【請求項３】
請求項２に記載のパケット転送装置において、
前記第１および第２のパケット送信制御部は、それぞれ、前記パケットから識別されたフロー識別情報が付加されたパケットを前記第１および第２のパケット識別部から入力し、前記バッファメモリ部に該フロー識別情報が付加されたパケットを送出することを特徴とするパケット転送装置。
【請求項４】
請求項３に記載のパケット転送装置において、
前記バッファメモリ部の前記制御部は、該フロー識別情報が付加されたパケットに、前記早着系用バッファメモリにおけるタイムアウト時刻情報を付加したパケットを、前記早着系用バッファメモリに格納することを特徴とするパケット転送装置。
【請求項５】
請求項１に記載のパケット転送装置において、
前記早着系用バッファメモリは、複数のフローに対応した、フロー毎に前記早着系パケットを格納する、複数のＦＩＦＯメモリから構成され、
前記遅着系用バッファメモリは、複数のフローに対応した、フロー毎に前記遅着系パケットを格納する、１パケットのみ格納可能な複数のメモリから構成される
ことを特徴とするパケット転送装置。
【請求項６】
請求項１に記載のパケット転送装置において、
フロー毎に送信されたパケットの送信済みシーケンス番号を保持し、前記第１〜第３のパケット送信制御部および前記バッファメモリ部に該送信済シーケンス番号を与える送信シーケンス番号管理部をさらに備えたことを特徴とするパケット転送装置。
【請求項７】
請求項１に記載のパケット転送装置において、
前記早着系用バッファメモリは、複数のフローに対応した、フロー毎に前記早着系パケットを格納する、複数のＦＩＦＯメモリから構成され、
前記遅着系用バッファメモリは、複数のフローに対応した、前記遅着系パケットを格納する、フロー数より小さい複数のメモリから構成される
ことを特徴とするパケット転送装置。
【請求項８】
請求項１に記載のパケット転送装置において、
前記バッファメモリ部の前記制御部は、複数の前記遅着系用バッファメモリから選択したひとつに、前記遅着系パケットを、フロー識別情報とシーケンス番号を付加して格納することを特徴とするパケット転送装置。
【請求項９】
請求項１に記載のパケット転送装置において、
前記バッファメモリ部の前記制御部は、前記遅着系用バッファメモリに格納された前記遅着系パケットのフロー識別情報が、送信対象のフローのフロー識別情報と一致した場合、前記遅着系パケットのシーケンス番号と前記比較値とが一致したら前記遅着系用バッファメモリから前記遅着系パケットを出力することを特徴とするパケット転送装置。
【請求項１０】
請求項１に記載のパケット転送装置において、
前記第１のパケット送信制御部および前記第２のパケット送信制御部は、
受信したパケットのフロー毎に、前記受信パケットのシーケンス番号が、前記比較値よりも小さい場合に該パケットを廃棄し、
前記バッファメモリ部の前記制御部は、
前記早着系用バッファメモリに格納された前記早着系パケットのシーケンス番号が前記比較値より小さい場合に該パケットを廃棄し、
前記第３のパケット送信制御部は、
前記バッファメモリ部より読み出された格納パケットのシーケンス番号が、前記比較値より小さい場合に該パケットを廃棄する
ことを特徴とするパケット転送装置。
【請求項１１】
パケット転送方法であって、
バッファメモリ部に、フロー毎の複数の早着系用バッファメモリと、フロー毎の複数の遅着系用バッファメモリと、制御部とを設け、
早着系の第１のパケット送信制御部および遅着系の第２のパケット送信制御部により、それぞれ、受信したパケットのフロー毎に、前記受信パケットのシーケンス番号が、送信済みシーケンス番号に１加算した比較値よりも大きい場合に該パケットを前記バッファメモリ部に送出し、前記比較値と等しい場合に該パケットを出力し、前記比較値よりも小さい場合に該パケットを廃棄し、
第３のパケット送信制御部により、フロー毎に、前記バッファメモリ部より読み出された格納パケットのシーケンス番号が、前記比較値以上の場合に該パケットを出力し、前記比較値よりも小さい場合に該パケットを廃棄し、
前記バッファメモリ部の前記制御部により、
前記第１のパケット送信制御部からの早着系パケットを、タイムアウト時刻情報を付加して前記早着系用バッファメモリにフロー毎に格納し、早着系メモリ書き込みシーケンス番号を更新し、
前記第２のパケット送信制御部からの遅着系パケットのシーケンス番号が前記早着系メモリ書き込みシーケンス番号より大きい場合、該遅着系パケットを前記遅着系用バッファメモリにフロー毎に格納し、
フロー毎に、前記早着系用バッファメモリに格納された前記早着系パケットのシーケンス番号が、前記比較値よりも大きな値であり且つ前記タイムアウト時刻情報に従いタイムアウトと判定された場合、または、前記早着系パケットのシーケンス番号が前記比較値と一致した場合、前記早着系用バッファメモリから前記早着系パケットを出力し、
フロー毎に、前記早着系用バッファメモリに前記早着系パケットが格納されていない場合または前記タイムアウトでないと判定された場合、前記遅着系用バッファメモリに格納された前記遅着系パケットのシーケンス番号と前記比較値とが一致したら前記遅着系用バッファメモリから前記遅着系パケットを出力する
ことを特徴とするパケット転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケット転送装置およびパケット転送方法に関わり、特に、ＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ）網やイーサネット（登録商標）網等のパケット転送ネットワークにおいて、入力されたパケットを複数系統の冗長構成を用いて伝送し、受信側において１つの伝送路のパケットを選択し出力するパケット転送装置およびパケット転送方法に関する。
【背景技術】
【０００２】
パケット転送ネットワークにおいて、特に、データ欠落の無い通信を必要とするネットワークでは、無瞬断切替技術を用いた冗長構成のネットワーク構築が知られている。従来のこの種の技術として、イーサネット（登録商標）を利用したパケット転送方法および転送装置であって、パケット転送装置のパケット送信機能部は、受信したパケットから２つのコピーを作成し、コピーされたパケットのそれぞれに同一の送信順序を識別するシーケンス番号を付与し、さらに、該コピーされたパケットのそれぞれに送信経路を識別するための識別子とを付与して、それぞれ別伝送路に送信し、受信側のパケット転送装置のパケット受信機能部が前記パケットを２つの受信手段でそれぞれ受信し、シーケンス番号と識別子から同一情報を有するパケットとその順序を同定し、同じ順序のパケットのうち、一つを選択して下流に送出し、他方のパケットは廃棄するか、もしくは片方しか到着しなかった場合は到着したパケットを下流に転送することにより、無瞬断切替機能を実現したものが知られている（例えば、特許文献１参照）。また、特開２０１２−０１９４６４号公報（特許文献２）がある。この公報には、「受信機能部が、送信機能部がシーケンス番号を付与して通信経路１，２へ互いに同じタイミングで送信したデータフレームのうち、カウンタのカウンタ値と等しいシーケンス番号のデータフレームを通信装置へ送信して、カウンタ値をインクリメントし、運用系経路から送信されてきたデータフレームのうち、カウンタ値よりも大きなシーケンス番号が付与されたデータフレームを、カウンタ値がシーケンス番号と同じ値となるまでＦＩＦＯメモリに一時格納してから通信装置へ送信して、カウンタ値をインクリメントし、予備系経路を介して送信されてきたデータフレームのうち、カウンタ値よりも大きなシーケンス番号のデータフレームを通信装置へ送信して、カウンタ値をシーケンス番号に１を加算した値とする。」（要約参照）と記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１０２１５７号公報
【特許文献２】特開２０１２−０１９４６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載されたような技術では、パケット受信側の処理として２つの伝送路それぞれから受信したパケットをそれぞれ保存して、保存されたパケットに付与されているシーケンス番号を確認しながら選択して送信する。そのため、この保存のために容量の大きなメモリを２つ用意しなければならないという課題がある。一方、特許文献２の技術は、中継装置のポート単位の技術であり、かつ、ＳＤＨ／ＳＯＮＥＴネットワークにおける伝送路毎の障害検出機構を利用しているため、ＩＰ網やイーサネット（登録商標）網等のパケット転送ネットワークにおけるフロー単位の制御には適さないという課題がある。
【０００５】
本発明の目的は、前述した従来技術の課題を解決し、ＩＰ網やイーサネット（登録商標）網等のパケット転送ネットワークにおいて、フロー単位の無瞬断切替機能を簡易な構成にて実現するためのパケット転送装置およびパケット転送方法を提供することにある。
【課題を解決するための手段】
【０００６】
本発明の第１の解決手段によると、
パケット転送装置であって、
フロー毎の複数の早着系用バッファメモリと、フロー毎の複数の遅着系用バッファメモリと、制御部とを有するバッファメモリ部と、
受信したパケットのフロー毎に、前記受信パケットのシーケンス番号が、送信済みシーケンス番号に１加算した比較値よりも大きい場合に該パケットを前記バッファメモリ部に送出し、前記比較値と等しい場合に該パケットを出力する、早着系の第１のパケット送信制御部および遅着系の第２のパケット送信制御部と、
フロー毎に、前記バッファメモリ部より読み出された格納パケットのシーケンス番号が、前記比較値以上の場合に該パケットを出力する、第３のパケット送信制御部と、
を備え、
前記バッファメモリ部の前記制御部は、
前記第１のパケット送信制御部からの早着系パケットを、タイムアウト時刻情報を付加して前記早着系用バッファメモリにフロー毎に格納し、早着系メモリ書き込みシーケンス番号を更新し、
前記第２のパケット送信制御部からの遅着系パケットのシーケンス番号が前記早着系メモリ書き込みシーケンス番号より大きい場合、該遅着系パケットを前記遅着系用バッファメモリにフロー毎に格納し、
フロー毎に、前記早着系用バッファメモリに格納された前記早着系パケットのシーケンス番号が、前記比較値よりも大きな値であり且つ前記タイムアウト時刻情報に従いタイムアウトと判定された場合、または、前記早着系パケットのシーケンス番号が前記比較値と一致した場合、前記早着系用バッファメモリから前記早着系パケットを出力し、
フロー毎に、前記早着系用バッファメモリに前記早着系パケットが格納されていない場合または前記タイムアウトでないと判定された場合、前記遅着系用バッファメモリに格納された前記遅着系パケットのシーケンス番号と前記比較値とが一致したら前記遅着系用バッファメモリから前記遅着系パケットを出力する
ことを特徴とするパケット転送装置が提供される。
【０００７】
本発明の第２の解決手段によると、
パケット転送方法であって、
バッファメモリ部に、フロー毎の複数の早着系用バッファメモリと、フロー毎の複数の遅着系用バッファメモリと、制御部とを設け、
早着系の第１のパケット送信制御部および遅着系の第２のパケット送信制御部により、それぞれ、受信したパケットのフロー毎に、前記受信パケットのシーケンス番号が、送信済みシーケンス番号に１加算した比較値よりも大きい場合に該パケットを前記バッファメモリ部に送出し、前記比較値と等しい場合に該パケットを出力し、前記比較値よりも小さい場合に該パケットを廃棄し、
第３のパケット送信制御部により、フロー毎に、前記バッファメモリ部より読み出された格納パケットのシーケンス番号が、前記比較値以上の場合に該パケットを出力し、前記比較値よりも小さい場合に該パケットを廃棄し、
前記バッファメモリ部の前記制御部により、
前記第１のパケット送信制御部からの早着系パケットを、タイムアウト時刻情報を付加して前記早着系用バッファメモリにフロー毎に格納し、早着系メモリ書き込みシーケンス番号を更新し、
前記第２のパケット送信制御部からの遅着系パケットのシーケンス番号が前記早着系メモリ書き込みシーケンス番号より大きい場合、該遅着系パケットを前記遅着系用バッファメモリにフロー毎に格納し、
フロー毎に、前記早着系用バッファメモリに格納された前記早着系パケットのシーケンス番号が、前記比較値よりも大きな値であり且つ前記タイムアウト時刻情報に従いタイムアウトと判定された場合、または、前記早着系パケットのシーケンス番号が前記比較値と一致した場合、前記早着系用バッファメモリから前記早着系パケットを出力し、
フロー毎に、前記早着系用バッファメモリに前記早着系パケットが格納されていない場合または前記タイムアウトでないと判定された場合、前記遅着系用バッファメモリに格納された前記遅着系パケットのシーケンス番号と前記比較値とが一致したら前記遅着系用バッファメモリから前記遅着系パケットを出力する
ことを特徴とするパケット転送方法が提供される。
【発明の効果】
【０００８】
本発明によれば、フロー単位の無瞬断切替を簡易な構成にて実現することができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施の形態におけるパケット転送システムの概要構成図である。
【図２】パケット転送装置のパケット送信機能部の構成例を示すブロック図である。
【図３】パケット転送装置間で送受信されるパケットの構成例を示す図である。
【図４】パケット転送装置のパケット受信機能部の構成例を示すブロック図である。
【図５】パケット受信機能部のバッファメモリ部４７０の構成例を示すブロック図である。
【図６】パケット送信制御部４３０、４３１の処理手順例を示すフローチャートである。
【図７】パケット送信制御部４３２の処理手順例を示すフローチャートである。
【図８】バッファメモリ部の書き込み制御部の処理手順例を示すフローチャートである。
【図９】バッファメモリ部の読み出し制御部の処理手順例を示すフローチャートである。
【図１０】受信パケットに対する送信パケットの送信タイミングのうち、早着系でパケット欠落が発生した場合のタイミングを説明したタイムチャートである。
【図１１】受信パケットに対する送信パケットの送信タイミングのうち、両系でパケット欠落が発生した場合（同一シーケンス番号廃棄）のタイミングを説明したタイムチャートである。
【図１２】受信パケットに対する送信パケットの送信タイミングのうち、両系でパケット欠落が発生した場合の動作例（早着系用バッファメモリでシーケンス飛び発生）のタイミングを説明したタイムチャートである。
【図１３】実施例２におけるパケット受信機能部のバッファメモリ部１４７０の構成例を示すブロック図である。
【図１４】実施例２におけるバッファメモリ部の書き込み制御部の処理手順例を示すフローチャートである。
【図１５】実施例２におけるバッファメモリ部の読み出し制御部の処理手順例を示すフローチャートである。
【図１６】パケット識別部から送信するパケットの構成例を示す図である。
【図１７】早着系用バッファメモリに書き込むパケットの構成例を示す図である。
【発明を実施するための形態】
【００１０】
以下、実施例を図面を用いて説明する。
【実施例１】
【００１１】
図１は、本発明の実施の形態におけるパケット転送システムの概要構成図である。図１に示すように、本実施の形態におけるパケット転送システムは、パケット転送装置１１０、１２０と、ユーザ網１３０、１４０と、パケット転送網１５０、１６０とを備える。パケット転送装置１１０とパケット転送装置１２０はパケット転送網１５０およびパケット転送網１６０を介して接続される。パケット転送網１５０、１６０は、例えばＩＰ網、イーサネット（登録商標）網などのパケットを転送するネットワークである。以下、主に、ネットワークとして、イーサネット（登録商標）を用いた例について説明するが、これに限られない。また、本実施例では、パケットを伝送するネットワーク装置を説明するが、フレームを伝送するネットワーク装置にも同様に本発明を適用することができる。なお、本実施例において、フレームも便宜上パケットと表現する。
【００１２】
パケット転送装置１１０、１２０はそれぞれパケットを送信するための機能部とパケットを受信するための機能部を有するが、以下の説明ではパケット転送装置１１０を送信側とし、パケット転送装置１２０を受信側として説明する。パケット転送装置１１０のパケット入力側（上流と呼ぶ）およびパケット転送装置１２０のパケット出力側（下流と呼ぶ）のそれぞれには例えばユーザ網が接続される。
【００１３】
パケット転送装置１１０は、ユーザ網１３０から送信されてくるパケットを複製し、同一の２つのパケットをそれぞれ異なるパケット転送網１５０、１６０に送出する。図１では、パケット転送網１５０と１６０の２つのパケット転送網を示しているが、パケット転送装置１１０とパケット転送装置１２０間の接続は物理的に同じパケット転送網を使用してもよい。また、パケット転送装置１１０とパケット転送装置１２０間の接続は、物理的に異なる伝送路であることが望ましいが、物理的には同じであるが論理的に異なる伝送路でもよい。以下、一例として、パケット転送網１５０と接続する系を０系、パケット転送網１６０と接続する系を１系と呼ぶ。パケット転送装置１２０は、パケット転送網１５０を介して伝送されたパケットと、パケット転送網１６０を介して伝送されたパケットとを受信する。そして、パケット転送装置１２０は、０系または１系のどちらかのパケットを選択し、下流のユーザ網１４０に送出する。
【００１４】
図２は、パケット転送装置１１０のパケット送信機能部１１１の構成例を示すブロック図である。パケット送信機能部１１１は、パケット受信部２１０、シーケンス番号付与部２２０、パケットコピー部２３０、パケット送信部２４０、２５０を備える。
パケット受信部２１０は、ユーザ網１３０から送られてくるパケットを受信するインタフェースである。シーケンス番号付与部２２０は、パケット受信部２１０から出力されてきたパケットにシーケンス番号を付与し、パケットコピー部２３０に送出する。パケットコピー部２３０は、パケットのコピーを行うことで同じパケットを２つ生成し、パケット送信部２４０、２５０に送出する。パケット送信部２４０は、パケットをパケット転送網１５０に送出する。パケット送信部２５０は、パケットをパケット転送網１６０に送出する。
【００１５】
図３に、送出するパケットがイーサネット（登録商標）パケットである場合のパケット構成例を示す。パケットは、イーサネット（登録商標）ヘッダ３１０、シーケンス番号３２０、ＶＬＡＮ（Ｖｉｒｔｕａｌ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）タグ３３０、ペイロード３４０を備える。シーケンス番号３２０は、ＶＬＡＮごとに、送信する順序で、０、１、２、３のように、０から順番に１つずつ増加させた番号で付与される。なお、例えば、ＶＬＡＮタグ３３０により、各パケットのフローを識別するフロー識別情報を求めることができる。
【００１６】
図４は、パケット転送装置１２０のパケット受信機能部１２２の構成例を示すブロック図である。パケット受信機能部１２２は、パケット受信部４１０、４１１、パケット識別部４２０、４２１、パケット送信制御部４３０、４３１、４３２、パケット送信部４４０、到着時間差判定部４５０、送信シーケンス番号管理部４６０、バッファメモリ部４７０、装置内タイマ４８０を備える。
【００１７】
パケット受信部４１０はパケット転送網１５０から送られてくるパケットを受信し、パケット受信部４１１はパケット転送網１６０から送られてくるパケットを受信するインタフェースである。０系について、パケット受信部４１０で受信したパケットは、パケット識別部４２０に送出される。パケット識別部４２０は、受信したパケットの受信ポートや、ＶＬＡＮタグの値を基に、フローを識別し、パケットにフロー識別情報を付加した上で、パケット送信制御部４３０に送信する。なお、パケットにフロー識別情報を付加したパケットの構成例は、後述のように図１６に示す。また、パケット識別部４２０は、識別したフローのパケット受信時刻とシーケンス番号情報を到着時間差判定部４５０に伝える。１系についても０系と同じ処理を行い、パケット識別部４２１は、受信したパケットのフローを識別し、パケットにフロー識別情報を付加した上で、パケット送信制御部４３１に送信する。また、パケット識別部４２１は、識別したフローのパケット受信時刻とシーケンス番号情報を到着時間差判定部４５０に伝える。
【００１８】
到着時間差判定部４５０は、パケット識別部４２０、４２１から伝えられたそれぞれの系のパケット受信時刻並びにシーケンス番号情報から、２つの系に到着したパケットのどちらの系に到着したパケットが先に到着したかを判定する。以下、先にパケットが到着した系を早着系と呼び、後にパケットが到着した系を遅着系と呼ぶ。また、到着時間差判定部４５０は、０系受信パケットと、１系受信パケットの到着時間差を測定し、バッファメモリ部４７０に、到着時間差情報と、０系と１系のどちらが早着系かの情報（早着系・遅着系情報）を伝える。
【００１９】
パケット送信制御部４３０、４３１、４３２は、送信シーケンス番号管理部４６０からの送信済みシーケンス番号情報を基に送信制御を行い、パケット送信部４４０に出力する。パケット送信制御部４３０〜４３２の詳細動作については、後述する。
パケット送信部４４０は、ユーザ網１４０へパケットを送信するインタフェースである。
送信シーケンス番号管理部４６０は、パケット送信制御部４３０〜４３２により送信されたパケットの送信済みシーケンス番号情報を保持するとともに、各パケット送信制御部４３０〜４３２に送信済みシーケンス番号情報を伝える。
【００２０】
バッファメモリ部４７０は、一時格納用のメモリであり、パケット送信制御部４３０、４３１より出力されてきたパケットをパケット送信制御部４３２に出力するまでの間、格納するためのバッファである。
装置内タイマ４８０は、装置内のタイマであり、パケット識別部４２０、４２１において、それぞれの系のパケットの到着時間差を測定するための共通のタイマである。
【００２１】
図１６に、パケット識別部４２０、４２１から送信するパケットの構成例を示す。この構成例は、図３のパケット構成例のパケットに、パケット識別部４２０、４２１にて識別されたフロー識別情報１６１０が付加された構成となる。なお、フロー識別情報は、例えば、ＶＬＡＮタグ等により識別することができる。
【００２２】
図５は、バッファメモリ部４７０の構成例を示す。
図５において、バッファメモリ部４７０は、早着系パケットをフロー１〜ｎ毎に格納するための早着系用バッファメモリ５２０−１〜５２０−ｎと、遅着系パケットをフロー１〜ｎ毎に１パケットのみ格納可能な遅着系用バッファメモリ５３０−１〜５３０−ｎと、早着系用バッファメモリ５２０−１〜５２０−ｎと遅着系用バッファメモリ５３０−１〜５３０−ｎの、書き込み制御を行う書き込み制御部５１０と、読み出し制御を行う読み出し制御部５４０と、早着系用バッファメモリ５２０−１〜５２０−ｎに格納するパケットにおいて、シーケンス番号が連続しない場合に、遅着系用バッファメモリ５３０−１〜５３０−ｎへ書き込むための判定に使用する早着系メモリ書込みシーケンス番号管理部５５０を備える。早着系用バッファメモリ５２０−１〜５２０−ｎは、それぞれＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）として使用し、パケット送信制御部４３０、４３１から出力されてきた早着系パケットを格納する。書き込み制御部５１０は、パケットを格納する際は、例えば装置内タイマ４８０より取得した時刻を用いて、バッファメモリへの入力時刻に到着時間差判定部４５０より通知されているフロー毎の到着時間差情報を付加したタイムアウト時刻情報を付与する（後述の図１７参照）。ここで使用する到着時間差情報は、到着時間差情報の平均値を用いてもよい。平均値を用いる際は、到着時間差判定部４５０において計算した当該フローの過去の到着時間差情報の平均値を用いる。なお、到着時間差情報を平均値ではなく、平均値に数倍の安全係数を掛けた値を用いてもよい。また、バッファメモリへの入力時刻の代わりに、パケットの受信時刻を用いてもよい。その場合、書き込み制御部５１０は、パケット識別部４２０、４２１または到着時間差判定部４５０等からパケット受信時刻を取得することができる。タイムアウト時刻情報は、早着系受信パケットと遅着系受信パケットとの待ち合わせ時間（時刻）の情報であり、早着系受信パケットを送信するか否かを判定するタイムアウト判定に用いる。
【００２３】
早着系用バッファメモリ５２０−１〜５２０−ｎは、フロー数ｎ分だけ必要となり、早着系用バッファメモリ５２０−１〜５２０−ｎからのあるタイミングにおける読み出し制御は、フロー数ｎの中から１フローを選択し、読み出し制御を行う必要がある。そのため、早着系用バッファメモリ５２０−１〜５２０−ｎからの読み出し制御において、最適なフローを選択し、遅延時間なく、読み出し制御を行おうとした場合、フロー数ｎの数が増えれば増えるほど、読み出し制御が難しく、回路規模が増大してしまう場合が想定される。本実施例においては、簡単な回路構成にて実現するため、一般的なＲｏｕｎｄ  Ｒｏｂｉｎ方式にて読み出し制御を行うこととし、早着系用バッファメモリ５２０−１〜５２０−ｎに格納されたパケットが読みだされるまでに一定の時間がかかってしまうことが課題となるが、遅着系用バッファメモリ５３０−１〜５３０−ｎを併用することにより、対処可能とした。具体的には、早着系において、断続的にパケット欠落が発生する様な状況の場合に、早着系用バッファメモリ５２０−１〜５２０−ｎに格納されたパケットの読み出しに一定の時間がかかることにより、早着系パケットと遅着系パケットの逆転現象が発生する場合があるため、書き込み制御部５１０および早着系メモリ書込みシーケンス番号管理部５５０により、早着系用バッファメモリ５２０−１〜５２０−ｎにおいて、シーケンス番号が連続しない場合に、遅着系パケットについても、遅着系用バッファメモリ５３０−１〜５３０−ｎに格納することで対応可能とした。遅着系用バッファメモリ５３０−１〜５３０−ｎでは、最大パケット長を格納可能なバッファメモリをフロー毎に１個のみ配備する。
【００２４】
早着系メモリ書込みシーケンス番号管理部５５０は、早着系用バッファメモリ５２０−１〜５２０−ｎに格納するパケットのシーケンス番号（早着系メモリ書込みシーケンス番号）を保持し、遅着系用バッファメモリ５３０−１〜５３０−ｎへの書き込み判定に使用する。
早着系用バッファメモリ５２０−１〜５２０−ｎ、遅着系用バッファメモリ５３０−１〜５３０−ｎ、書き込み制御部５１０、読み出し制御部５４０、早着系メモリ書込みシーケンス番号管理部５５０の詳細動作については、後述する。なお、読み出し制御部５４０における読み出し制御は、フロー毎の帯域に応じて重みづけを実施するＷＲＲ（Ｗｅｉｇｈｔｅｄ  Ｒｏｕｎｄ  Ｒｏｂｉｎ）方式を採用してもよい。
【００２５】
図１７に、早着系用バッファメモリ５２０−１〜５２０−ｎに書き込むパケットの構成例を示す。この構成例は、図１６のパケット構成例のパケットに、タイムアウト時刻情報１７１０を付与された構成となる。なお、遅着系用バッファメモリ５３０−１〜５３０−ｎに書き込むパケットも図１７と同様の構成例としてもよいし、図１６と同様の構成例としてもよい。
【００２６】
図６は、パケット送信制御部４３０、４３１の処理手順を示すフローチャートである。０系と１系の動作は同じため、ここでは、０系のパケット送信制御部４３０の動作のみを説明する。パケット送信制御部４３０は、パケット識別部４２０から出力されてきたパケット（図１６参照）がパケット送信制御部４３０にて受信されると（Ｓ６１０）、当該パケットに付与されているフロー識別情報およびシーケンス番号を読み出し（Ｓ６２０）、読み出したシーケンス番号と、送信シーケンス番号管理部４６０から通知される当該フロー識別情報のフローの送信済みシーケンス番号とを比較する（Ｓ６３０）。
Ｓ６３０での比較の結果、読み出したシーケンス番号が、送信済みシーケンス番号に１加算した値よりも大きな値であった場合、パケット送信制御部４３０は、当該パケットをバッファメモリ部４７０に出力する（Ｓ６４０）。
【００２７】
また、Ｓ６３０での比較の結果、読み出したシーケンス番号と、送信済みシーケンス番号に１加算した値とが等しい場合、パケット送信制御部４３０は、当該パケットをパケット送信部４４０に出力する（Ｓ６５０）。パケット送信部４４０に出力されたパケットは、パケット送信部４４０から下流のユーザ網１４０に送出される。また、当該パケットがパケット送信部４４０へ出力された際、パケット送信制御部４３０は、送信シーケンス番号管理部４６０にて保持している送信済みシーケンス番号を出力した当該パケットのシーケンス番号に書き換えを行う（Ｓ６６０）。
また、Ｓ６３０での比較の結果、読み出したシーケンス番号が、送信済みシーケンス番号に１加算した値よりも小さな場合、パケット送信制御部４３０は、当該パケットを廃棄する（Ｓ６７０）。
以上、説明した処理を受信したパケットごとに順次実施する。
【００２８】
図７は、パケット送信制御部４３２の処理手順を示すフローチャートである。バッファメモリ部４７０から出力されてきたパケットがパケット送信制御部４３２にて受信されると（Ｓ７１０）、パケット送信制御部４３２は、当該パケットに付与されているフロー識別情報およびシーケンス番号を読み出し（Ｓ７２０）、読み出したシーケンス番号と、送信シーケンス番号管理部４６０から通知される当該フローの送信済みシーケンス番号とを比較する（Ｓ７３０）。
Ｓ７３０での比較の結果、読み出したシーケンス番号が、送信済みシーケンス番号に１加算した値と等しいか、より大きな場合、パケット送信制御部４３２は、当該パケットをパケット送信部４４０に出力する（Ｓ７４０）。パケット送信部４４０に出力されたパケットは、パケット送信部４４０から下流のユーザ網１４０に送出される。また、当該パケットがパケット送信部４４０へ出力された際、パケット送信制御部４３２は、送信シーケンス番号管理部４６０にて保持している送信済みシーケンス番号を出力した当該パケットのシーケンス番号に書き換えを行う（Ｓ７５０）。
【００２９】
また、Ｓ７３０での比較の結果、読み出したシーケンス番号が、送信済みシーケンス番号に１加算した値よりも小さな場合、パケット送信制御部４３２は、当該パケットを廃棄する（Ｓ７６０）。
以上、説明した処理を受信したパケットごとに順次実施する。なお、図中、早着系用バッファメモリ、遅着系用バッファメモリの略称として、それぞれ、早着系メモリ（早着系用メモリ）、遅着系メモリ（遅着系用メモリ）と表記する場合がある。
【００３０】
図８は、バッファメモリ部４７０の書き込み制御部５１０の処理手順を示すフローチャートである。パケット送信制御部４３０、４３１から出力されてきたパケットがバッファメモリ部４７０の書き込み制御部５１０にて受信されると（Ｓ８１０）、書き込み制御部５１０は、当該パケットに付与されているフロー識別情報およびシーケンス番号を読み出し（Ｓ８２０）、また、書き込み制御部５１０は、到着時間差判定部４５０から通知される０系と１系のどちらが早着系かの情報（早着系・遅着系情報）により、受信パケットが、早着系パケットか遅着系パケットかを判別する（Ｓ８３０）。
【００３１】
早着系パケットの場合、書き込み制御部５１０は、バッファメモリへの入力時刻またはパケットの受信時刻に到着時間差判定部４５０より通知されているフロー毎の到着時間差情報を付加することによりタイムアウト時刻情報を計算し、図１７のようにタイムアウト時刻１７１０を含めたパケットを、当該フロー識別情報のフローの早着系用メモリに格納する（Ｓ８４０）。また、書き込み制御部５１０は、早着系メモリ書込みシーケンス番号管理部５５０にて保持している早着系メモリ書込みシーケンス番号を早着系用メモリに格納した当該パケットのシーケンス番号に書き換えを行う（Ｓ８９０）。
【００３２】
遅着系パケットの場合、書き込み制御部５１０は、Ｓ８２０で読みだしたフロー識別情報のフローにおいて、読み出したシーケンス番号と早着系メモリ書込みシーケンス番号とを比較し（Ｓ８５０）、読み出したシーケンス番号が早着系メモリ書込みシーケンス番号より大きい場合で、更に、当該フローの遅着系用メモリにすでにパケット格納済みでなければ（Ｓ８６０）、書き込み制御部５１０は、遅着系用メモリに格納する（Ｓ８７０）。すでに遅着系用メモリにパケット格納済み、あるいは、読み出したシーケンス番号が早着系メモリ書込みシーケンス番号以下の場合には、書き込み制御部５１０は、当該パケットを廃棄する（Ｓ８８０）。
【００３３】
図９は、バッファメモリ部４７０の読み出し制御部５４０の処理手順を示すフローチャートである。読み出し制御部５４０は、フロー単位に処理を行うが、処理は同一であるため、ここではある１フローについての処理手順の例を説明する。
読み出し制御部５４０は早着系用バッファメモリの格納パケット数を確認し（Ｓ９１０）、パケットが格納されていれば、早着系用バッファメモリの先頭パケットのフロー識別情報およびシーケンス番号を読み出す（Ｓ９２０）。読み出し制御部５４０は、読み出したシーケンス番号と、送信シーケンス番号管理部４６０から通知される送信済みシーケンス番号とを比較する（Ｓ９３０）。
【００３４】
Ｓ９３０での比較の結果、読み出し制御部５４０は、読み出したシーケンス番号が、送信済みシーケンス番号に１加算した値よりも大きな値であった場合、図１７に示したように、書き込み時にパケットに付与されたタイムアウト時刻と現在時刻とを比較し、書き込み時に付与されたタイムアウト時刻を経過しているかどうかを判定する、即ち、タイムアウト判定を実施する（Ｓ９４０）。
Ｓ９１０で早着系用バッファメモリに格納パケットがない場合、または、Ｓ９４０での比較の結果、タイムアウトが発生していない場合は、Ｓ９５０の処理となる。Ｓ９５０では、読み出し制御部５４０は、遅着系用メモリに格納パケットの有無を確認し、パケットが格納されていれば遅着系用メモリのパケットのフロー識別情報およびシーケンス番号を読み出し（Ｓ９６０）、送信済みシーケンス番号に１加算した値との一致判定を実施する（Ｓ９７０）。一致しなかった場合、読み出し制御部５４０は、そのまま処理を終了する。
【００３５】
Ｓ９３０での比較の結果、読み出したシーケンス番号が、送信済みシーケンス番号に１加算した値と等しい場合、または、Ｓ９４０においてタイムアウト判定された場合、読み出し制御部５４０は、早着系用バッファメモリを読み出し可能メモリとして内部のワークメモリ等に登録する（Ｓ９８０）。また、Ｓ９７０において遅着系用メモリに格納されたパケットのシーケンス番号と送信済みシーケンス番号に１加算した値とが一致した場合は、読み出し制御部５４０は、遅着系用バッファメモリを読み出し可能メモリとして内部のワークメモリ等に登録する（Ｓ９８０）。読み出し制御５４０は、Ｓ９８０で読み出し対象として選定した後、Ｒｏｕｎｄ  Ｒｏｂｉｎ方式等による読み出し制御にて、早着系用バッファメモリまたは遅着系用バッファメモリからパケットをパケット送信制御部４３２へ出力する。
Ｓ９３０での比較の結果、読み出したシーケンス番号が、送信済みシーケンス番号に１加算した値よりも小さな場合、読み出し制御部５４０は、当該パケットを廃棄（バッファメモリから読み捨て）する（Ｓ９９０）。
なお、Ｓ９２０，Ｓ９６０で、フロー識別情報は、パケットから読み出す以外に、早着系用バッファメモリの番号またはポート等により求めてもよい。
【００３６】
以下に、本実施の形態における受信パケットに対する送信パケットの送信タイミングについて説明する。
まずは、本実施の形態における受信パケットに対する送信パケットの送信タイミングのうち、早着系を０系とした場合、０系においてパケット廃棄が発生した場合の送信タイミングについて説明する。
【００３７】
図１０は、本実施の形態における受信パケットに対する送信パケットの送信タイミングのうち、早着系である０系においてパケット欠落が発生した場合の送信タイミングを説明するためのタイムチャートである。
図１０において、０系受信パケットのシーケンス番号３のパケットをパケット廃棄、パケットロス、パケット損失、パケット未受信、パケット非受信等のパケット欠落をした場合の送信パケットの出力例を示す。以下、フロー識別情報ｉの場合について説明する。
パケット送信制御部４３０にシーケンス番号３のパケットが到着せず、シーケンス番号４のパケットが到着した場合、図６のＳ６４０の処理により、このパケットはバッファメモリ部４７０に出力され、図８のＳ８４０の処理により早着系用バッファメモリ５２０−ｉに格納される。なお、ここで、早着系用バッファメモリ５２０−ｉは、フロー識別情報ｉに対応する早着系用バッファメモリである（以下同様。）格納されたシーケンス番号４のパケットは、１系において、シーケンス番号３のパケットが到着、図６のＳ６５０、Ｓ６６０の処理により、パケット送信に伴い、送信シーケンス番号管理部４６０における送信済みシーケンス番号が「３」に更新されたことにより、図９のＳ９３０、Ｓ９８０の処理により、読み出し可能登録され、Ｒｏｕｎｄ  Ｒｏｂｉｎによる読み出し制御の結果、一定の読み出し遅延時間経過後、バッファメモリ部４７０から出力される。ただし、このとき、既に１系において、シーケンス番号４のパケットが到着、パケット送信されているため、図７のパケット送信制御部４３２は、Ｓ７６０の処理により、０系のパケット番号４の受信パケットはパケット廃棄される。
【００３８】
同様に０系受信パケットであるシーケンス番号５のパケットについても、早着系用バッファメモリ５２０−ｉに格納後、パケット送信制御部４３２に送信され、１系受信パケットの受信タイミングにより、図７のＳ７４０の処理により、パケット送信される。
続いて、パケット送信制御部４３０にシーケンス番号６のパケットが到着した場合、図６のＳ６５０の処理により、パケット送信される。
【００３９】
このように、早着系受信パケットの一部にパケット欠落が発生した場合、遅着系受信パケットにより、補完されるまでの間、早着系受信パケットを早着系用バッファメモリ５２０−ｉに一時格納しておき、その後、送信済みシーケンス番号が早着系用バッファメモリ５２０−ｉに格納されているパケットのシーケンス番号に追いついた後、早着系用バッファメモリ５２０−ｉに格納されているパケットを送信する。そして、早着系受信パケットのシーケンス番号が送信済みシーケンス番号に追いついた後は、早着系受信パケットのパケットを送信する。
【００４０】
次に、本実施の形態における受信パケットに対する送信パケットの送信タイミングのうち、早着系である０系と遅着系である１系の両系においてパケット欠落が発生した場合の送信タイミングについて説明する。
【００４１】
図１１は、本実施の形態における受信パケットに対する送信パケットの送信タイミングのうち、早着系である０系と遅着系である１系の両系においてパケット欠落が発生した場合の送信タイミングを説明するためのタイムチャートである。以下、フロー識別情報ｉの場合について説明する。
図１１において、０系受信パケットのシーケンス番号１のパケットと、１系受信パケットのシーケンス番号１のパケットがパケット欠落した場合の送信パケットの出力例を示す。
パケット送信制御部４３０にシーケンス番号１のパケットが到着せず、シーケンス番号２のパケットが到着した場合、図６のＳ６４０の処理により、このパケットはバッファメモリ部４７０に出力され、図８のＳ８４０の処理により早着系用バッファメモリ５２０−ｉに格納される。
【００４２】
続いて、パケット送信制御部４３０にシーケンス番号３〜５のパケットが到着した場合にも同様に、これらパケットは早着系用バッファメモリ５２０−ｉに格納される。
このとき、格納されたシーケンス番号２のパケットは、図９のＳ９４０の処理によりタイムアウト判定となるまで早着系用バッファメモリ５２０−ｉに格納され続け、Ｓ９８０の処理により、読み出し可能登録された後、Ｒｏｕｎｄ  Ｒｏｂｉｎによる読み出し制御の結果、一定の読み出し遅延時間経過後、バッファメモリ部４７０から出力される。その後、図７のＳ７４０の処理により、パケット送信される。このとき、送信済みシーケンス管理番号は「２」に更新される。
【００４３】
続いて、早着系用バッファメモリ５２０−ｉに格納されたシーケンス番号３〜５のパケットは、送信済みシーケンス番号「２」〜「４」への更新を契機に、同様にバッファメモリ部４７０から出力され、パケット送信される。
さらに続いて、パケット送信制御部４３０にシーケンス番号６のパケットが到着した場合、図６のＳ６５０の処理により、パケット送信される。
このように、早着系受信パケットと、遅着系受信パケットの一部に同時にパケット欠落が発生した場合、早着系用バッファメモリ５２０−ｉに早着系受信パケットを一時格納し、その後、遅着系受信パケットとの待ち合わせ時間であるタイムアウト時間を超過した場合、両系パケット欠落発生と判断し、早着系用バッファメモリ５２０−ｉに格納されているパケットを送信する。そして、早着系受信パケットのシーケンス番号が送信済みシーケンス番号に追いついた後は、早着系受信パケットのパケットを送信する。
【００４４】
次に、本実施の形態における受信パケットに対する送信パケットの送信タイミングのうち、早着系である０系と遅着系である１系の両系においてパケット欠落が発生、０系においてはその後もパケット欠落が発生した場合の送信タイミングについて説明する。
【００４５】
図１２は、本実施の形態における受信パケットに対する送信パケットの送信タイミングのうち、早着系である０系と遅着系である１系の両系においてパケット欠落が発生、０系においてはその後もパケット欠落が発生した場合の送信タイミングを説明するためのタイムチャートである。以下、フロー識別情報ｉの場合について説明する。
図１２において、０系受信パケットのシーケンス番号１、シーケンス番号３のパケットと、１系受信パケットのシーケンス番号１のパケットがパケット欠落した場合の送信パケットの出力例を示す。
【００４６】
パケット送信制御部４３０にシーケンス番号１のパケットが到着せず、シーケンス番号２のパケットが到着した場合、図６のＳ６４０の処理により、このパケットはバッファメモリ部４７０に出力され、図８のＳ８４０の処理により早着系用バッファメモリ５２０−ｉに格納される。格納されたシーケンス番号２のパケットは、図９のＳ９４０、Ｓ９８０の処理により、タイムアウト判定、読み出し可能登録される。そして、Ｒｏｕｎｄ  Ｒｏｂｉｎによる読み出し制御の結果、一定の読み出し遅延時間経過後、バッファメモリ部４７０から出力される。その後、図７のＳ７４０の処理により、パケット送信される。このとき、送信済みシーケンス管理番号は「２」に更新される。
【００４７】
続いて、パケット送信制御部４３０には、シーケンス番号３のパケットが到着せず、シーケンス番号４、５のパケットが到着した場合、同様に、早着系用バッファメモリ５２０−ｉに格納される。
シーケンス番号２のパケットがタイムアウトにより送信される前に、１系受信パケットのシーケンス番号３のパケットが、パケット送信制御部４３１に到着すると、送信シーケンス番号管理部４６０により通知される送信済みシーケンス番号が「０」であるため、図６のＳ６４０の処理により、このパケットはバッファメモリ部４７０に出力され、図８のＳ８７０の処理により遅着系用バッファメモリ５３０−ｉに格納される。遅着系用バッファメモリ５３０−ｉに格納されたシーケンス番号３のパケットは、送信済みシーケンス番号「２」への更新を契機に、図９のＳ９７０、Ｓ９８０の処理により、送信済みシーケンス番号＋１と一致判定され、読み出し可能登録、Ｒｏｕｎｄ  Ｒｏｂｉｎによる読み出し制御の結果、一定の読み出し遅延時間経過後、バッファメモリ部４７０から出力される。その後、図７のＳ７４０の処理により、パケット送信される。このとき、送信済みシーケンス管理番号は「３」に更新される。
【００４８】
続いて、早着系用バッファメモリ５２０−ｉに格納されたシーケンス番号４、５のパケットは、送信済みシーケンス番号「３」、「４」への更新を契機に、同様にバッファメモリ部４７０から出力され、パケット送信される。
さらに続いて、パケット送信制御部４３０にシーケンス番号６のパケットが到着した場合、図６のＳ６５０の処理により、パケット送信される。
【００４９】
このように、早着系受信パケットと、遅着系受信パケットの一部が同時にパケット欠落発生、早着系受信パケットにおいてはその後もパケット欠落が発生した場合、早着系用バッファメモリ５２０−ｉに早着系受信パケットを一時格納している状態において、早着系受信パケットに更にパケット欠落が発生した場合、遅着系受信パケットの当該シーケンス番号のパケットについて、一時格納しておく。その後、タイムアウト時間超過による早着系用バッファメモリ５２０−ｉからのパケット送信により、送信済みシーケンス番号が更新され、遅着系用バッファメモリ５３０−ｉに格納されたパケットのシーケンス番号に追いついた後、遅着系用バッファメモリ５３０−ｉに格納されているパケットを送信する。同様に、遅着系用バッファメモリ５３０−ｉからのパケット送信により、送信済みシーケンス番号が更新され、早着系用バッファメモリ５２０−ｉに格納されたパケットのシーケンス番号に追いついた後、早着系用バッファメモリ５２０−ｉに格納されているパケットを送信する。そして、早着系受信パケットのシーケンス番号が送信済みシーケンス番号に追いついた後は、早着系受信パケットのパケットを送信する。
【実施例２】
【００５０】
本実施例では、遅着系用バッファメモリとして、更に少ない個数のバッファメモリにて構成可能とする例を説明する。
図１３は、実施例２におけるバッファメモリ部１４７０を示す構成図の例である。
図１３において、バッファメモリ部１４７０は、早着系用バッファメモリ５２０−１〜５２０−ｎと、遅着系用バッファメモリとして、図５の遅着系用バッファメモリ５３０−１〜５３０−ｎの代わりに遅着系用バッファメモリ１３３０−１〜１３３０−ｍ（ｍ＜ｎ）と、早着系用バッファメモリ５２０−１〜５２０−ｎと遅着系用バッファメモリ１３３０−１〜１３３０−ｍの書き込み制御を行う書き込み制御部１３１０と、読み出し制御を行う読み出し制御部１３４０と、早着系メモリ書込みシーケンス番号管理部５５０を備える。書き込み制御部１３１０と読み出し制御部１３４０の動作は、遅着系用バッファメモリ１３３０−１〜１３３０−ｍのバッファメモリ個数の変更に伴い変更されるが、詳細については、後述する。
【００５１】
図１４は、実施例２におけるバッファメモリ部１４７０の書き込み制御部１３１０の処理手順例を示すフローチャートである。
パケット送信制御部４３０、４３１から出力されてきたパケットがバッファメモリ部１４７０の書き込み制御部１３１０にて受信されると、書き込み制御部１３１０は、Ｓ８１０〜Ｓ８３０の処理、および、受信パケットが早着系パケットの場合のＳ８４０、Ｓ８９０の処理を、図８と同様に実行する。
受信パケットが遅着系パケットの場合、書き込み制御部１３１０は、Ｓ８２０で読み出したフロー構成情報のフローにおいて、読み出したシーケンス番号と早着系メモリ書込みシーケンス番号とを比較し（Ｓ８５０）、読み出したシーケンス番号が早着系メモリ書込みシーケンス番号より大きい場合に、書き込み制御部１３１０は、全遅着系用バッファメモリ１３３０−１〜１３３０−ｍに対して、格納可否確認を行い（Ｓ１４１０、Ｓ１４２０）、遅着系用バッファメモリ１３３０−ｋが格納可能であれば、パケットを遅着系用バッファメモリ１３３０−ｋに格納する（Ｓ８７０）。全遅着系用バッファメモリにパケット格納済み、あるいは、読み出したシーケンス番号が早着系メモリ書込みシーケンス番号以下の場合には、書き込み制御部１３１０は、当該パケットを廃棄する（Ｓ８８０）。
【００５２】
図１５は、バッファメモリ部１４７０の読み出し制御部１３４０の処理手順を示すフローチャートである。
読み出し制御部１３４０は、Ｓ９１０〜Ｓ９４０の処理を図９と同様に実行する。
Ｓ９１０で早着系用バッファメモリに格納パケットがない場合、または、Ｓ９４０での比較の結果、タイムアウトが発生していない場合は、Ｓ１５１０〜Ｓ１５３０の処理となる。Ｓ１５１０〜Ｓ１５３０では、読み出し制御部１３４０は、全遅着系用バッファメモリ１３３０−１〜１３３０−ｍに対して、パケットのフロー識別情報を読み出し、早着系用バッファメモリに対応する送信対象の当該フローの格納パケットの有無を確認し、格納されていれば遅着系用メモリのパケットのシーケンス番号を読み出し（Ｓ１５４０）、送信済みシーケンス番号に１加算した値との一致判定を実施する（Ｓ９７０）。一致しなかった場合、読み出し制御部１３４０は、そのまま処理を終了する。
読み出し制御部１３４０は、Ｓ９８０〜Ｓ９９０の処理を図９と同様に実行する。
【００５３】
本実施例では、例えば、１フロー当り、１０Ｍｂｉｔ／ｓにて、１０００フローの無瞬断保証を最大遅延差５ｍｓまでの場合を考えた場合、一般的なＳＤ（Ｓｉｇｎａｌ  Ｄｅｇｒａｄｅ）警報の通信品質劣化度である１０−６以上の通信品質を確保していることを前提とすると、１フローあたりの５ｍｓ区間での誤りｂｉｔ量は、０．０５ｂｉｔとなり、最大でも０．０５パケット以内のパケット廃棄率となる。そして、１０００フローの両系において、同時にパケット廃棄が発生することまでも考慮したとしても、５０パケット分（０．０５×１０００）の遅着系用バッファメモリでよく、１０００＞５０となり、実施例１における必要遅着系用バッファメモリ個数よりも少なくすることが可能となる。
【００５４】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれている。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【００５５】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部または全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）等の記録装置、または、ＩＣカード、ＳＤカード、ＤＶＤ等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【００５６】
１１０、１２０  パケット転送装置
１１１  パケット送信機能部
１２２  パケット受信機能部
１５０、１６０  パケット転送網
２１０、４１０、４１１  パケット受信部
２２０  シーケンス番号付与部
２３０  パケットコピー部
２４０、２５０、４４０  パケット送信部
３２０  シーケンス番号
４２０、４２１  パケット識別部
４３０、４３１、４３２  パケット送信制御部
４５０  到着時間差判定部
４６０  送信シーケンス番号管理部
４７０、１４７０  バッファメモリ部
４８０  装置内タイマ
５１０、１３１０  書き込み制御部
５２０−１〜ｎ  早着系用バッファメモリ
５３０−１〜ｎ、１３３０−１〜ｍ  遅着系用バッファメモリ
５４０、１３４０  読み出し制御部
５５０  早着系メモリ書込みシーケンス番号管理部
【図１】
2015231210.tif 000003
【図２】
2015231210.tif 000004
【図３】
2015231210.tif 000005
【図４】
2015231210.tif 000006
【図５】
2015231210.tif 000007
【図６】
2015231210.tif 000008
【図７】
2015231210.tif 000009
【図８】
2015231210.tif 000010
【図９】
2015231210.tif 000011
【図１０】
2015231210.tif 000012
【図１１】
2015231210.tif 000013
【図１２】
2015231210.tif 000014
【図１３】
2015231210.tif 000015
【図１４】
2015231210.tif 000016
【図１５】
2015231210.tif 000017
【図１６】
2015231210.tif 000018
【図１７】
2015231210.tif 000019