(57)【要約】【課題】ネットワークに対する負荷や、パケットを送信する装置やパケットを受信する装置における負荷が軽く、連続してパケットをロスした場合でもロスしたパケットのデータを復元可能な送信装置、受信装置、及び送受信システムを提供する。【解決手段】送受信システム１の送信装置３は、パケットロスの発生に備えて、各パケットの内部データを複数に分割して冗長ブロックを生成し、一定のルールに基づいて、ｉ番目パケットの前後複数のパケットにこの冗長ブロックを分散して付加した冗長化パケットを生成して、冗長化パケットを順番に受信装置５に送信する。受信装置５は、冗長化パケットを順番に受信して、パケットロスの確認をしながら冗長化ブロックを記憶部に格納し、パケットロスを検出すると、ロスしたパケットの前後のパケットに含まれる冗長化ブロックを記憶部から読み出して、ロスしたパケットの内部データを復元する。【選択図】図１
2008227886.tif 000002
【特許請求の範囲】
【請求項１】
受信装置へ順番に送信するパケット用の内部データを冗長化して送信する送信装置であって、
前記パケット用の内部データを検出する工程、検出した内部データを複写する工程、複写した内部データを予め設定した個数に分割して冗長化ブロックを作成する工程、及び前記内部データを出力する工程、を実行する冗長化ブロック作成手段と、
前記冗長化ブロック作成手段が作成した冗長化ブロックを格納する記憶手段と、
前記冗長化ブロック作成手段が出力した内部データを検出する工程、その検出した内部データよりも先に出力された内部データから作成された冗長化ブロック、及びその検出した内部データよりも後に出力される内部データから作成された冗長化ブロックを、前記記憶手段から読み出す工程、前記記憶手段から読み出した冗長化ブロックを予め設定した順序で、前記検出した内部データに付加して冗長化する工程、冗長化ブロックを付加した内部データに、冗長化したことを示す冗長化情報、及び冗長化した内部データの送信順を示す送信順情報を付加して、冗長化パケットを作成する工程、及びこの冗長化パケットを前記受信装置へ送信する工程、を実行する送信キューイング手段と、
を備えたことを特徴とする送信装置。
【請求項２】
前記冗長化ブロック作成手段は、
ｉ番目（ｉは任意の自然数）のパケット用の内部データを複写する工程と、
この内部データをｎ個（ｎは予め設定された２以上の任意の自然数）のブロックに分割してこの順番に保持する工程と、
前記ｎ個のブロックの前端からｋ個（ｋの初期値は１）のブロックを複写し、この複写したｋ個のブロックにより第ｋ前端冗長化ブロックを生成する工程、前記ｎ個のブロックの後端からｋ個のブロックを複写し、この複写したｋ個のブロックにより第ｋ後端冗長化ブロックを生成する工程、及びｋを１増分する工程を、ｋがｎになるまで繰り返して冗長化ブロックを作成する工程と、を実行し、
前記送信キューイング手段は、
ｉ番目のパケット用の内部データを検出する工程と、
ｉ−ｊ≧１の場合にｉ−ｊ番目（ｊの初期値は１）の内部データから作成した第ｎ−ｊ後端冗長化ブロック、及びｉ＋ｊ番目の内部データから作成した第ｎ−ｊ前端冗長化ブロックを前記記憶手段から読み出す工程、ｉ番目の内部データの前端または冗長化ブロックが付加されている場合にはその前端に前記第ｎ−ｊ後端冗長化ブロックを付加し、ｉ番目の内部データの前端または冗長化ブロックが付加されている場合にはその後端に前記第ｎ−ｊ前端冗長化ブロックを付加する工程、及びｊを１増分する増分工程を、ｊがｎになるまで繰り返し実行する工程と、
を実行する請求項１に記載の送信装置。
【請求項３】
前記冗長化ブロック作成手段は、
ｉ番目（ｉは任意の自然数）のパケット用の内部データを複写する工程と、
この内部データをｎ個（ｎは予め設定された２以上の任意の自然数）に分割して第１冗長化ブロックから第ｎ冗長化ブロックまでを作成する工程と、を実行し、
前記送信キューイング手段は、
ｉ番目のパケット用内部データを検出する工程と、
ｉ−ｊ≧１の場合にｉ−ｊ番目のパケット用内部データから作成した第（ｎ−ｊ＋１）冗長化ブロック（ｊの初期値は１）、及びｉ＋ｊ番目のパケット用内部データから作成した第ｊ冗長化ブロック（ｊの初期値は１）を前記記憶手段から読み出す工程、ｉ番目のパケット用内部データまたは冗長化ブロックが付加されている場合にはその前端に前記第（ｎ−ｊ＋１）冗長化ブロックを付加し、ｉ番目のパケット用内部データまたは冗長化ブロックが付加されている場合にはその後端に前記第ｊ冗長化ブロックを付加する工程、及びｊを１増分する増分工程を、ｊがｎを超えるまで繰り返し実行する工程と、
を実行する請求項１に記載の送信装置。
【請求項４】
冗長化ブロック作成手段が出力したパケットを検出すると、一定時間を計時するタイマを備え、
前記送信キューイング手段は、前記タイマが一定時間の計時を完了しても、冗長化パケットに付加する冗長化ブロックが前記記憶手段に格納されない場合には、その冗長化ブロックの替わりに意味の無いデータを付加した冗長化パケットを作成して、受信装置に送信する請求項１乃至３のいずれかに記載の送信装置。
【請求項５】
請求項１に記載の送信装置が送信した冗長化パケットを受信する受信装置であって、
受信したパケットにおける前記冗長化情報及び前記送信順情報の有無を確認し、これらの情報を有する冗長化パケットであると、この冗長化パケットから冗長化ブロックを取り外し、また、前記冗長化ブロックを取り外したパケットを出力する冗長化ブロック退避手段と、
前記冗長化ブロック退避手段が取り外した冗長化ブロックを記憶する第２記憶手段と、
前記冗長化ブロック退避手段がそれまでに確認した送信順情報に基づいてパケットロスを検出すると、送信順情報がその冗長化パケットよりも先及び後の冗長化パケットから取り外した冗長化ブロックを前記第２記憶手段から読み出して、これらの冗長化ブロックによりこの内部データを復元するロス判別復元手段と、
を備えたことを特徴とする受信装置。
【請求項６】
請求項２に記載の送信装置が送信した冗長化パケットを受信する受信装置であって、
受信したｉ番目（ｉは任意の自然数）のパケットにおける冗長化情報及び送信順情報の有無を確認する工程と、
これらの情報を有していると、このパケットから、ｉ−ｊ≧１の場合にｉ−ｊ番目のパケット用内部データから作成した第ｎ−ｊ前端冗長化ブロックとｉ＋ｊ番目のパケット用内部データから作成した第ｎ−ｊ（ｊの初期値は１）後端冗長化ブロックを取り外す工程、取り外した冗長化ブロックを出力する工程、及びｊを１増分する増分工程を、ｊがｎになるまで繰り返し実行する工程と、
前記増分工程でｊがｎになると、前記冗長化ブロックを取り外したパケットを出力する工程と、を実行する冗長化ブロック退避手段と、
前記冗長化ブロック退避手段が出力した冗長化ブロックを格納する第２記憶手段と、
前記冗長化ブロック退避手段が出力したパケットが有する送信順情報に基づいてｉ番目のパケットの欠如を検出する工程と、
パケットの欠如が検出されない場合は該パケットを出力し、パケットの欠如が検出された場合は、ｉ番目のパケット用内部データから作成した第ｎ−ｊ（ｊの初期値は１）後端冗長化ブロック、及びｉ番目のパケット用内部データから作成した第ｎ−ｊ前端冗長化ブロックが前記第２記憶手段に格納されていれば、これらの冗長化ブロックを前記第２記憶手段から読み出す工程、ｊを１増分する増分工程、及びｉ番目の内部データを構成する全冗長化ブロックを読み出せたかを確認する工程を、ｊがｎになるまで、またはｉ番目の内部データを構成する全ブロックの読み出しが完了するまで繰り返し実行する工程と、
ｊがｎになるか、または全ブロックの読み出しが完了すると、読み出した各前端冗長化ブロック及び各後端冗長化ブロックからｉ番目の内部データを復元する工程と、を実行するロス判別復元手段と、
を備えたことを特徴とする受信装置。
【請求項７】
請求項３に記載の送信装置が送信した冗長化パケットを受信する受信装置であって、
受信したｉ番目（ｉは任意の自然数）のパケットにおける冗長化情報及び送信順情報の有無を確認する工程と、
これらの情報を有していると、このパケットから、ｉ−ｊ≧１の場合にｉ−ｊ番目のパケット用内部データから作成した第（ｎ−ｊ＋１）冗長化ブロック（ｊの初期値は１）、及びｉ＋ｊ番目のパケット用内部データから作成した第ｊ冗長化ブロック（ｊの初期値は１）を取り外す工程、取り外した冗長化ブロックを第２記憶手段に出力する工程、及びｊを１増分する増分工程を、ｊがｎを超えるまで繰り返し実行する工程と、
前記増分工程でｊがｎを超えると、前記冗長化ブロックを取り外したパケットを出力する工程と、を実行する冗長化ブロック退避手段と、
前記冗長化ブロック退避手段が出力した冗長化ブロックを記憶する第２記憶手段と、
前記冗長化ブロック退避手段が出力した送信順情報に基づいてｉ番目のパケットの欠如を検出する工程と、ｉ番目のパケット用内部データから作成した第１冗長化ブロックから第ｎ冗長化ブロックが前記第２記憶手段に格納されていることを確認する工程と、これらの冗長化ブロックを前記第２記憶手段から読み出す工程と、読み出した各冗長化ブロックからｉ番目の内部データを復元する工程と、を実行するロス判別復元手段と、
を備えたことを特徴とする受信装置。
【請求項８】
前記ロス判別復元手段が内部データの欠如を検出すると、第２の一定時間を計時する第２タイマを備え、
前記ロス判別復元手段は、前記第２タイマが第２の一定時間の計時を完了しても、欠如した内部データを復元するための冗長化ブロックが前記第２記憶手段に格納されない場合には、その冗長化ブロックの替わりに意味の無いデータを用いて、内部データを復元する請求項５乃至７のいずれかに記載の受信装置。
【請求項９】
請求項１に記載の送信装置と、請求項５に記載の受信装置と、から成る送受信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、パケットロスが発生した場合に、このパケットロスを補償する送信装置、受信装置、送受信システムに関する。
【背景技術】
【０００２】
インターネット等のネットワークに接続されたノード間で、データパケットをやりとりしていると、回線の混み具合や外来ノイズ等の影響により、パケットロスが発生することがある。パケットロスが発生すると、データの一部を喪失してしまうので、データを復元できなかったり、復元できても一部が欠落したりする。
【０００３】
このような問題に対して、従来、複数のデータパケットに対して、それらの排他論理和で生成される冗長化パケットを別途作成して、パケットロスがあった場合には、その冗長化パケットを用いることでデータを復元できる方法及びシステムが提案されている（例えば、特許文献１参照。）。
【特許文献１】特開２００２−２６１８１９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の発明では、データパケットの冗長化によりパケットの数が増えるので、ネットワークに対する負荷が高くなるという問題があった。また、この発明では、送信部や受信部において、データの符号化処理時及びデータの復号化処理時に、排他論理和の演算が必要となり、処理負荷が高くなるという問題があった。さらに、この発明は、連続したデータの欠落区間を短縮するための発明であるため、連続して複数のパケットをロスした場合には、データを完全に復元できないという問題があった。
【０００５】
そこで、本発明は、ネットワークに対する負荷や、パケットを送信する装置やパケットを受信する装置における負荷が軽く、また、連続してパケットをロスした場合でもロスしたパケットのデータを復元可能な送信装置、受信装置、及び送受信システムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
この発明は、上記の課題を解決するための手段として、以下の構成を備えている。
【０００７】
（１）受信装置へ順番に送信するパケット用の内部データを冗長化して送信する送信装置であって、
前記パケット用の内部データを検出する工程、検出した内部データを複写する工程、複写した内部データを予め設定した個数に分割して冗長化ブロックを作成する工程、及び前記内部データを出力する工程、を実行する冗長化ブロック作成手段と、
前記冗長化ブロック作成手段が作成した冗長化ブロックを格納する記憶手段と、
前記冗長化ブロック作成手段が出力した内部データを検出する工程、その検出した内部データよりも先に出力された内部データから作成された冗長化ブロック、及びその検出した内部データよりも後に出力される内部データから作成された冗長化ブロックを、前記記憶手段から読み出す工程、前記記憶手段から読み出した冗長化ブロックを予め設定した順序で、前記検出した内部データに付加して冗長化する工程、冗長化ブロックを付加した内部データに、冗長化したことを示す冗長化情報、及び冗長化した内部データの送信順を示す送信順情報を付加して、冗長化パケットを作成する工程、及びこの冗長化パケットを前記受信装置へ送信する工程、を実行する送信キューイング手段と、
を備えたことを特徴とする。
【０００８】
この構成においては、送信装置は、受信装置へ順番に送信するパケット用の内部データを検出すると、その内部データを複写して設定された個数に分割することで冗長化ブロックを作成し、記憶手段に、受信装置へ順番に送信する各パケット用の内部データから作成された冗長化ブロックを順次格納する。送信装置は、前記冗長化ブロック作成手段が出力した内部データを検出すると、この内部データよりも先に出力した内部データから作成しておいた冗長化ブロック、及びこの内部データよりも後に出力する内部データから作成した冗長化ブロックを、記憶手段から読み出して、これら読み出した冗長化ブロックを予め設定した順序で内部データに付加して冗長化パケットを作成する。
【０００９】
したがって、送信装置は、受信装置へ送信するパケットに、出力順がそのパケットの前後のパケット用内部データから作成した冗長化ブロックを付加するので、パケットロスが発生した場合には、そのロスした冗長化パケットの前後の冗長化パケットから冗長化ブロックを読み出すことで、ロスした冗長化パケットの内部データを復元することが可能となる。また、送信装置は、冗長化パケットの作成時には、内部データの複写処理と分割・付加処理を行うだけなので、装置における負荷が小さく、ハードウェア化も極めて容易である。また、送信装置が生成するパケットの総数は変わらないので、ネットワークに対する負荷が増加することがない。さらに、送信装置が作成する冗長化パケットのパケットレングスが通常のパケットよりも大きくなるので、ルータやスイッチ等のネットワーク中継装置のスループットを改善できる。
【００１０】
（２）前記冗長化ブロック作成手段は、
ｉ番目（ｉは任意の自然数）のパケット用の内部データを複写する工程と、
この内部データをｎ個（ｎは予め設定された２以上の任意の自然数）のブロックに分割してこの順番に保持する工程と、
前記ｎ個のブロックの前端からｋ個（ｋの初期値は１）のブロックを複写し、この複写したｋ個のブロックにより第ｋ前端冗長化ブロックを生成する工程、前記ｎ個のブロックの後端からｋ個のブロックを複写し、この複写したｋ個のブロックにより第ｋ後端冗長化ブロックを生成する工程、及びｋを１増分する工程を、ｋがｎになるまで繰り返して冗長化ブロックを作成する工程と、を実行し、
前記送信キューイング手段は、
ｉ番目のパケット用の内部データを検出する工程と、
ｉ−ｊ≧１の場合にｉ−ｊ番目（ｊの初期値は１）の内部データから作成した第ｎ−ｊ後端冗長化ブロック、及びｉ＋ｊ番目の内部データから作成した第ｎ−ｊ前端冗長化ブロックを前記記憶手段から読み出す工程、ｉ番目の内部データの前端または冗長化ブロックが付加されている場合にはその前端に前記第ｎ−ｊ後端冗長化ブロックを付加し、ｉ番目の内部データの前端または冗長化ブロックが付加されている場合にはその後端に前記第ｎ−ｊ前端冗長化ブロックを付加する工程、及びｊを１増分する増分工程を、ｊがｎになるまで繰り返し実行する工程と、
を実行することを特徴とする。
【００１１】
この構成においては、送信装置は、パケットの内部データをｎ個に分割し、ｎ個のブロックから順番に、前端から１個のブロックにより成る第１前端冗長化ブロック、後端から１個のブロックにより成る第１後端冗長化ブロック、前端の２個のブロックから成る第２前端冗長化ブロック、後端から２個のブロックにより成る第２後端冗長化ブロック、…、の順に、ｎ−１個の前端冗長化ブロック及びｎ−１個の後端冗長化ブロックを冗長化ブロック作成手段で作成する。そして、これらのブロックを一旦記憶手段に記憶させる。また、送信装置は、送信キューイング手段がｉ番目のパケットの内部データを検出すると、ｉ−１番目の内部データの第ｎ−１後端冗長化ブロック、ｉ−２番目の内部データの第ｎ−２後端冗長化ブロック、…、とｎ−１個の後端冗長化ブロックを記憶手段から読み出して、これらの後端冗長化ブロックを読み出した順にｉ番目の内部データの前端側に付加する。また、ｉ＋１番目の内部データの第ｎ−１前端冗長化ブロック、ｉ＋２番目の内部データの第ｎ−２前端冗長化ブロック、…、とｎ−１個の前端冗長化ブロックを読み出して、これらの前端冗長化ブロックを読み出した順にｉ番目の内部データの後端側に付加し、さらにパケット化して、この冗長化パケットを受信装置に送信する。
【００１２】
したがって、送信装置は、パケットロスが発生した場合には、そのロスしたパケットの前後の冗長化パケットに付加された冗長化ブロックにより、ロスしたパケットの内部データを復元できる。また、上記各工程により冗長化パケットを作成することで、連続したパケットロスにも対応可能であり、ｎが大きくなるのに従い、連続してロスしたパケット数の許容数が大きくなる。すなわち、分割数が２の場合には、１つしかロスしたパケットを復元できないが、分割数が３の場合には２つ、分割数が４の場合には３つ、…、分割数がｎの場合にはｎ−１個までの連続したパケットロスであれば、その前後の冗長化パケットからロスした内部データを復元できる。
【００１３】
（３）前記冗長化ブロック作成手段は、
ｉ番目（ｉは任意の自然数）のパケット用の内部データを複写する工程と、
この内部データをｎ個（ｎは予め設定された２以上の任意の自然数）に分割して第１冗長化ブロックから第ｎ冗長化ブロックまでを作成する工程と、を実行し、
前記送信キューイング手段は、
ｉ番目のパケット用内部データを検出する工程と、
ｉ−ｊ≧１の場合にｉ−ｊ番目のパケット用内部データから作成した第（ｎ−ｊ＋１）冗長化ブロック（ｊの初期値は１）、及びｉ＋ｊ番目のパケット用内部データから作成した第ｊ冗長化ブロック（ｊの初期値は１）を前記記憶手段から読み出す工程、ｉ番目のパケット用内部データまたは冗長化ブロックが付加されている場合にはその前端に前記第（ｎ−ｊ＋１）冗長化ブロックを付加し、ｉ番目のパケット用内部データまたは冗長化ブロックが付加されている場合にはその後端に前記第ｊ冗長化ブロックを付加する工程、及びｊを１増分する増分工程を、ｊがｎを超えるまで繰り返し実行する工程と、
を実行することを特徴とする。
【００１４】
この構成においては、送信装置は、冗長化ブロック作成手段でパケット用の内部データをｎ個に分割して第１ブロックから第ｎブロックを作成する。そして、これらのブロックを記憶手段に一旦記憶させる。続いて、送信キューイング手段が、ｉ番目のパケット用内部データを検出すると、ｉ−１番目の内部データから作成した第ｎ冗長化ブロック、ｉ−２番目の内部データから作成した第（ｎ−１）冗長化ブロック、ｉ−３番目の内部データから作成した第（ｎ−２）冗長化ブロック、…、とｎ個の冗長化ブロックを記憶手段から読み出して、これらの後端冗長化ブロックを読み出した順にｉ番目の内部データの前端側に付加する。また、ｉ＋１番目のパケット用内部データから作成した第１冗長化ブロック、ｉ＋２番目のパケット用内部データから作成した第２冗長化ブロック、…、とｎ個の冗長化ブロックを記憶部から読み出して、これらの冗長化ブロックを読み出した順にｉ番目のパケット用内部データの後端側に付加する。そして、冗長化ブロックを付加した内部データをパケット化して、この冗長化パケットを受信装置に送信する。
【００１５】
したがって、送信装置は、パケットのロスが発生した場合でも、そのロスしたパケットの冗長化ブロックにより、ロスしたパケットの内部データを復元することができる。また、連続したパケットロスにも対応可能であり、ｎが大きくなるのに従い、連続してロスしたパケット数の許容数が大きくなる。すなわち、分割数が２の場合には、３つまでの連続してロスしたパケットを復元でき、分割数が３の場合には４つ、…、分割数がｎの場合にはｎ＋１個までの連続したパケットロスであれば、その前後の冗長化パケットからロスした内部データを復元できる。また、上記処理によって生成した冗長化パケットの内部データ及び冗長化ブロックの合計レングスは、内部データの分割数にかかわらず、元の内部データの３倍である。したがって、データの重要性に応じて分割数ｎを決めることができる。
【００１６】
（４）（３）に記載の送信装置において、
前記冗長化ブロック作成手段は、
更に、第１冗長化ブロックから第ｎ冗長化ブロックまでを任意の順番に並べ替えて、第Ｃ１冗長化ブロックから第Ｃｎ冗長化ブロックとする工程を実行し、
前記記憶手段は、冗長化ブロック作成手段が作成した第Ｃ１冗長化ブロックから第Ｃｎ冗長化ブロックまでを格納し、
前記送信キューイング手段は、
ｉ番目のパケット用内部データを検出する工程と、
ｉ−ｊ番目のパケット用内部データから作成した第Ｃ（ｎ−ｊ＋１）冗長化ブロック（ｊの初期値は１）、及びｉ＋ｊ番目のパケット用内部データから作成した第Ｃｊ冗長化ブロック（ｊの初期値は１）を前記記憶手段から読み出す工程、ｉ番目のパケット用内部データまたは冗長化ブロックが付加されている場合にはその前端に前記第Ｃ（ｎ−ｊ＋１）冗長化ブロックを付加し、ｉ番目のパケット用内部データまたは冗長化ブロックが付加されている場合にはその後端に前記第Ｃｊ冗長化ブロックを付加する工程、及びｊを１増分する増分工程を、ｊがｎを超えるまで繰り返し実行する工程と、
を実行するものとすることができる。
【００１７】
この構成においては、送信装置は、冗長化ブロック作成手段でパケット用内部データをｎ個に分割して第１ブロックから第ｎブロックを作成し、さらに、これらのブロックを任意の順番に並べ替える。例えば、４番目のパケット用内部データを２個（ｎ＝２）に分割した場合には、第１冗長化ブロック・第２冗長化ブロックを第２冗長化ブロック・第１冗長化ブロックの順に並べ替える。そして、第２冗長化ブロックをｉ番目のパケットから作成したＣ１冗長化ブロック、第１冗長化ブロックを４番目のパケットから作成したＣ２冗長化ブロックとして記憶手段に記憶させる。
また、送信キューイング手段は、ｉ番目のパケット用の内部データを検出すると、ｉ−ｊ番目の内部データから作成した第Ｃ（ｎ−ｊ＋１）冗長化ブロック（ｊの初期値は１）、及びｉ＋ｊ番目の内部データから作成した第Ｃｊ冗長化ブロック（ｊの初期値は１）を前記記憶手段から読み出す工程、ｉ番目の内部データまたは冗長化ブロックが付加されている場合にはその前端に前記第Ｃ（ｎ−ｊ＋１）冗長化ブロックを付加し、ｉ番目の内部データまたは冗長化ブロックが付加されている場合にはその後端に前記第Ｃｊ冗長化ブロックを付加する工程、及びｊを１増分する増分工程を、ｊがｎを超えるまで繰り返し実行する。
したがって、上記のように冗長化パケットを作成する場合には、内部データに冗長化ブロックを付加する順番を入れ替えることが可能である。また、入れ替えの順番を守ることで、ｎ＋１個までの冗長化パケットが連続してロスしても、ロスしたパケットを復元できる。
【００１８】
（５）冗長化ブロック作成手段が出力したパケットを検出すると、一定時間を計時するタイマを備え、
前記送信キューイング手段は、前記タイマが一定時間の計時を完了しても、冗長化パケットに付加する冗長化ブロックが前記記憶手段に格納されない場合には、その冗長化ブロックの替わりに意味の無いデータを付加した冗長化パケットを作成して、受信装置に送信することを特徴とする。
【００１９】
送信装置が、ルータ等のネットワーク中継装置の場合、ネットワークの混み具合等によりパケットの到着が遅れたり、パケットが破損等により破棄されて到着しなかったりすることがある。この構成においては、送信装置は、送信キューイング手段が内部データを検出してから一定時間を計時するタイマを備えており、上記のような理由により冗長化パケットが到着せずに、ロスした冗長化パケットの内部データを作成するための冗長化ブロックが記憶手段に格納されない場合には、冗長化ブロックの替わりに意味の無いデータを付加した冗長化パケットを作成して、受信装置に送信する。したがって、送信装置は、一定の周期で冗長化パケットを出力できるので、データに一部欠損が生じるがデータの出力遅延を防止できる。また、送信装置が送信するのが映像や音声等のストリーミングデータの場合、データの一部欠損よりもリアルタイム性の方が重要であるため、本発明を適用することで、リアルタイム性を維持できる。
【００２０】
（６）（１）に記載の送信装置が送信した冗長化パケットを受信する受信装置であって、
受信したパケットにおける前記冗長化情報及び前記送信順情報の有無を確認し、これらの情報を有する冗長化パケットであると、この冗長化パケットから冗長化ブロックを取り外し、また、前記冗長化ブロックを取り外したパケットを出力する冗長化ブロック退避手段と、
前記冗長化ブロック退避手段が取り外した冗長化ブロックを記憶する第２記憶手段と、
前記冗長化ブロック退避手段がそれまでに確認した送信順情報に基づいてパケットロスを検出すると、送信順情報がその冗長化パケットよりも先及び後の冗長化パケットから取り外した冗長化ブロックを前記第２記憶手段から読み出して、これらの冗長化ブロックによりこの内部データを復元するロス判別復元手段と、
を備えたことを特徴とする。
【００２１】
この構成においては、受信装置は、冗長化ブロック退避手段で、受信したパケットにおける冗長化情報の有無を確認する。そして、冗長化情報を有している場合には、（１）に記載の送信装置が送信した冗長化パケットなので、この冗長化パケットから冗長化ブロックを取り外して、第２記憶手段に格納する。また、ロス判別復元手段は、冗長化ブロック退避手段がそれまでに出力したパケットの送信順情報に基づいてパケットロスを検出すると、送信順がその冗長化パケットよりも先及び後の冗長化パケットに含まれる冗長化ブロックを用いて内部データを復元する。したがって、受信装置は、パケットロスが発生しても、その前後のパケットに分散して付加していた冗長化ブロックにより、内部データを速やかに復元できる。
【００２２】
（７）（２）に記載の送信装置が送信した冗長化パケットを受信する受信装置であって、
受信したｉ番目（ｉは任意の自然数）のパケットにおける冗長化情報及び送信順情報の有無を確認する工程と、
これらの情報を有していると、このパケットから、ｉ−ｊ≧１の場合にｉ−ｊ番目のパケット用内部データから作成した第ｎ−ｊ前端冗長化ブロックとｉ＋ｊ番目のパケット用内部データから作成した第ｎ−ｊ（ｊの初期値は１）後端冗長化ブロックを取り外す工程、取り外した冗長化ブロックを出力する工程、及びｊを１増分する増分工程を、ｊがｎになるまで繰り返し実行する工程と、
前記増分工程でｊがｎになると、前記冗長化ブロックを取り外したパケットを出力する工程と、を実行する冗長化ブロック退避手段と、
前記冗長化ブロック退避手段が出力した冗長化ブロックを格納する第２記憶手段と、
前記冗長化ブロック退避手段が出力したパケットが有する送信順情報に基づいてｉ番目のパケットの欠如を検出する工程と、
パケットの欠如が検出されない場合は該パケットを出力し、パケットの欠如が検出された場合は、ｉ番目のパケット用内部データから作成した第ｎ−ｊ（ｊの初期値は１）後端冗長化ブロック、及びｉ番目のパケット用内部データから作成した第ｎ−ｊ前端冗長化ブロックが前記第２記憶手段に格納されていれば、これらの冗長化ブロックを前記第２記憶手段から読み出す工程、ｊを１増分する増分工程、及びｉ番目の内部データを構成する全冗長化ブロックを読み出せたかを確認する工程を、ｊがｎになるまで、またはｉ番目の内部データを構成する全ブロックの読み出しが完了するまで繰り返し実行する工程と、
ｊがｎになるか、または全ブロックの読み出しが完了すると、読み出した各前端冗長化ブロック及び各後端冗長化ブロックからｉ番目の内部データを復元する工程と、を実行するロス判別復元手段と、
を備えたことを特徴とする。
【００２３】
この構成においては、受信装置は、冗長化ブロック退避手段で、受信したパケットにおける冗長化情報及び送信順情報の有無を確認する。受信装置は、両情報を有している場合には、（２）に記載の送信装置が送信した冗長化パケットなので、このパケットから冗長化ブロックを取り外して、第２記憶手段に格納する。また、ロス判別復元手段は、冗長化ブロック退避手段がそれまでに出力したパケットの送信順情報に基づいてパケットロスを検出すると、送信順がそのｉ番目のパケットの前後のパケットに含まれるｉ番目の内部データから作成された全冗長化ブロックを読み出して、これらの冗長化ブロックを用いて内部データを復元する。
【００２４】
したがって、受信装置は、パケットロスが発生しても、その前後のパケットに分散して付加していた冗長化ブロックにより、内部データを速やかに復元できる。また、内部データの分割数ｎが３以上の場合には、ｎの値に応じて連続して、ｎ−１個までの連続したパケットロスが発生しても内部データを復元できる。
【００２５】
（８）（３）に記載の送信装置が送信した冗長化パケットを受信する受信装置であって、
受信したｉ番目（ｉは任意の自然数）のパケットにおける冗長化情報及び送信順情報の有無を確認する工程と、
これらの情報を有していると、このパケットから、ｉ−ｊ≧１の場合にｉ−ｊ番目のパケット用内部データから作成した第（ｎ−ｊ＋１）冗長化ブロック（ｊの初期値は１）、及びｉ＋ｊ番目のパケット用内部データから作成した第ｊ冗長化ブロック（ｊの初期値は１）を取り外す工程、取り外した冗長化ブロックを第２記憶手段に出力する工程、及びｊを１増分する増分工程を、ｊがｎを超えるまで繰り返し実行する工程と、
前記増分工程でｊがｎを超えると、前記冗長化ブロックを取り外したパケットを出力する工程と、を実行する冗長化ブロック退避手段と、
前記冗長化ブロック退避手段が出力した冗長化ブロックを記憶する第２記憶手段と、
前記冗長化ブロック退避手段が出力した送信順情報に基づいてｉ番目のパケットの欠如を検出する工程と、ｉ番目のパケット用内部データから作成した第１冗長化ブロックから第ｎ冗長化ブロックが前記第２記憶手段に格納されていることを確認する工程と、これらの冗長化ブロックを前記第２記憶手段から読み出す工程と、読み出した各冗長化ブロックからｉ番目の内部データを復元する工程と、を実行するロス判別復元手段と、
を備えたことを特徴とする。
【００２６】
この構成においては、受信装置は、冗長化ブロック退避手段で、受信したパケットにおける冗長化情報の有無を確認する。そして、冗長化情報を有している場合には、（３）に記載の送信装置が送信した冗長化パケットなので、このパケットから冗長化ブロックを取り外して、第２記憶手段に格納する。また、ロス判別復元手段は、冗長化ブロック退避手段がそれまでに出力したパケットの送信順情報に基づいてパケットロスを検出すると、送信順がそのｉ番目のパケットの前後幾つかのパケットに含まれるｉ番目の内部データから作成された全冗長化ブロックを読み出して、これらの冗長化ブロックを用いて内部データを復元する。
【００２７】
したがって、受信装置は、パケットロスが発生しても、その前後幾つかのパケットに分散して付加していた冗長化ブロックにより、内部データを速やかに復元できる。また、ｎの値に応じて、連続してパケットロスが発生しても内部データを復元できる。
【００２８】
（９）（８）に記載の受信装置において、
前記冗長化ブロック退避手段は、
受信したｉ番目（ｉは任意の自然数）のパケットにおける冗長化情報及び送信順情報の有無を確認する工程と、
これらの情報を有していると、このパケットから、ｉ−ｊ≧１の場合にｉ−ｊ番目のパケット用内部データから作成した第Ｃ（ｎ−ｊ＋１）冗長化ブロック（ｊの初期値は１）、及びｉ＋ｊ番目のパケット用内部データから作成した第Ｃｊ冗長化ブロック（ｊの初期値は１）を取り外す工程、取り外した冗長化ブロックを第２記憶手段に出力する工程、及びｊを１増分する増分工程を、ｊがｎを超えるまで繰り返し実行する工程と、を実行し、
前記ロス判別復元手段は、
前記冗長化ブロック退避手段が出力した送信順情報に基づいてｉ番目のパケットの欠如を検出する工程と、ｉ番目のパケット用内部データから作成した第Ｃ１冗長化ブロックから第Ｃｎ冗長化ブロックが前記第２記憶手段に格納されていることを確認する工程と、これらの冗長化ブロックを前記第２記憶手段から読み出す工程と、読み出した各冗長化ブロックからｉ番目の内部データを復元する工程と、を実行するものとすることができる。
【００２９】
この構成においては、送信装置が、パケット用内部データをｎ個に分割して第１ブロックから第ｎブロックを作成し、さらに、これらのブロックを任意の順番に並べ替えた場合には、この並べ替えた順番に基づいて、全冗長化ブロックを読み出すことで、ｎ＋１個の冗長化パケットが連続してロスしても、内部データを復元できる。
【００３０】
（１０）前記ロス判別復元手段が内部データの欠如を検出すると、第２の一定時間を計時する第２タイマを備え、
前記ロス判別復元手段は、前記第２タイマが第２の一定時間の計時を完了しても、欠如した内部データを復元するための冗長化ブロックが前記第２記憶手段に格納されない場合には、その冗長化ブロックの替わりに意味の無いデータを用いて、内部データを復元することを特徴とする。
【００３１】
受信装置に対して、送信装置からネットワークを介してパケットが送られる場合、ネットワークの混み具合等によりパケットの到着が遅れたり、パケットが破損等により破棄されて到着しなかったりすることがある。この構成においては、受信装置は、送信キューイング手段が内部データを検出してから第２の一定時間を計時する第２タイマを備えており、上記のような理由により第２の一定時間が経過しても、パケットが到着せずに冗長化パケットを作成するための冗長化ブロックが記憶手段に格納されない場合には、冗長化ブロックの替わりに意味の無いデータを用いて内部データを復元する。したがって、受信装置は、一定の周期で内部データを復元することが可能となり、データに一部欠損が生じるがデータの出力遅延を防止できる。また、受信装置が受信するのが映像や音声等のストリーミングデータの場合、データの一部欠損よりもリアルタイム性の方が重要であるため、本発明を適用することで、リアルタイム性を維持できる。
【００３２】
（１１）（１）に記載の送信装置と、（６）に記載の受信装置と、から成る送受信システム。
【００３３】
この構成においては、送受信システムは、（１）に記載の、冗長化パケットを出力する送信装置と、（６）に記載の、パケットロスが発生すると冗長化パケットに含まれる冗長化ブロックを用いて内部データを復元する受信装置と、から構成されている。したがって、送信装置が出力した冗長化パケットにパケットロスが発生しても、その前後の冗長化パケットに含まれる冗長化ブロックを用いて、ロスしたパケットに含まれる内部データを複雑な計算等を行うことなく容易に復元できる。
【発明の効果】
【００３４】
本発明の送受信システムによれば、送信装置では、冗長化パケットを作成する際には、内部データの複写処理と分割・付加処理を行うだけなので、装置に対する負荷が小さく、ハードウェア化も極めて容易である。また、送信装置が生成するパケットの総数は変わらないので、ネットワークに対する負荷が増加することがない。また、受信装置は、パケットロスが発生しても、その前後幾つかのパケットに分散して付加させている冗長化ブロックを読み出して、内部データを速やかに復元できる。
【発明を実施するための最良の形態】
【００３５】
図１は、送信装置及び受信装置の構成を示すブロック図である。図１には、一例として、送受信システム１を構成する送信装置及び受信装置の構成を適用したルータ３・ルータ５を示している。
【００３６】
送受信システム１は、送信装置であるルータ３及び受信装置であるルータ５がＷＡＮ７を介して接続された構成である。ルータ３はＬＡＮ８とＷＡＮ７に接続され、ルータ５はＷＡＮ７とＬＡＮ９に接続されている。
【００３７】
ルータ３は、ＬＡＮインタフェース（図１ではＩ／Ｆと表記）１０、冗長化ブロック作成部１１、冗長化ブロック記憶部１３、送信キューイング部１５、タイマ１７、及びＷＡＮインタフェース（図１ではＩ／Ｆと表記）１８を備えている。
【００３８】
ＬＡＮインタフェース１０は、ルータ３をＬＡＮに接続するためのインタフェースであり、ＬＡＮ８から送られてきたパケットを冗長化ブロック作成部に出力する。
【００３９】
冗長化ブロック作成部１１は、ＬＡＮ８から送られてきたパケットの内部データのサイズを確認する。ここで、パケットの内部データとは、パケットからヘッダを取り去ったデータ部分のことである。例えば、ＵＤＰパケットの場合、イーサネット（登録商標）ヘッダ、ＩＰヘッダ、及びＵＤＰヘッダを取り去ったデータ部分のことである。続いて、冗長化ブロック作成部１１は、内部データのサイズが閾値以下の場合には、ＬＡＮ８から送られてきたパケットの内部データを複写する。そして、複写した内部データを複数個に分割して冗長化ブロックを作成する。また、冗長化ブロック作成部１１は、後述する規則（ルール）に従って、分割した冗長化ブロックを付加して、別の冗長化ブロックを作成する。また、冗長化ブロック作成部１１は、上記の処理と並行して、このパケットに、内部データのサイズが閾値以下である旨の情報（以下、冗長化対象パケット情報と称する。）を付加して、送信キューイング部１５へ出力する。
【００４０】
一方、冗長化ブロック作成部１１は、ＬＡＮ８から送られてきたパケットの内部データのサイズが閾値を超える場合には、上記の処理は行わずにそのままパケットを送信キューイング部１５へ出力する。
【００４１】
ここで、通常のイーサネット（登録商標）フレームの最大フレームレングスは１５１８バイトである。また、ＵＤＰパケットのデータ部分（内部データ）の最大レングスは１４７２バイトであり、ＴＣＰパケットのデータ部分（内部データ）の最大レングスは１４６０バイトである。ルータ３が取り扱うのが通常のイーサネット（登録商標）フレームで、パケットの内部データに冗長化ブロックを付加した合計レングスが内部データの例えば３倍になる場合、上記内部データのレングス閾値は、ＵＤＰパケットでは４９０バイトになり、ＴＣＰパケットでは４８６バイトになる。また、音声パケットや映像パケットがストリーミング配信される場合、これらのパケットレングスは通常２００バイト〜４００バイトの一定値（例えば２５６バイト）に設定される。そのため、ストリーミング配信される音声パケットや映像パケットには、本発明を問題なく適用できる。
【００４２】
冗長化ブロック記憶部１３は、冗長化ブロック作成部１１が作成した冗長化ブロックを記憶するＦＩＦＯメモリである。
【００４３】
送信キューイング部１５は、冗長化ブロック作成部１１からパケットが送られてくると、このパケットの内部データのサイズが閾値以下の場合、つまり、冗長化対象パケット情報が付加されている場合には、後述する規則（ルール）に従って冗長化ブロック記憶部１３から冗長化ブロックを読み出す。そして、このパケットの内部データに複数の冗長化ブロックを付加する。続いて、送信キューイング部１５は、内部データを冗長化したことを示す冗長化情報、及び冗長化した内部データの送信順を示す送信順情報を付加した後に、ヘッダ情報を変更し、イーサネット（登録商標）パケット化して、この冗長化パケットをＷＡＮインタフェース１８からＷＡＮ７を介して、ルータ５へ送信する。
【００４４】
一方、送信キューイング部１５は、冗長化ブロック作成部１１から送られてきたパケットの内部データのサイズが閾値を超える場合、つまり、冗長化対象パケット情報が付加されていない場合には、このパケットをイーサネット（登録商標）パケット化（フレーム化）すると、直ちにＷＡＮ７を介して他のノードに送信する。
【００４５】
タイマ１７は、ルータ３におけるパケットの出力タイミングを計るためのものである。送信キューイング部１５は、冗長化ブロック作成部１１が出力したパケットを検出すると、タイマ１７に一定時間の計時を開始させる。なお、タイマ１７は同時に複数の時間を計時可能である。
【００４６】
送信キューイング部１５は、タイマ１７が一定時間の計時を完了しても、ＬＡＮ８が混雑している等の理由で、冗長化ブロック作成部１１がＬＡＮインタフェース１０を介して、連続してパケット（フレーム）を受けとれない場合には、その冗長化ブロックに該当する部分に意味の無いデータを挿入した冗長化パケットを作成して、ＷＡＮインタフェース１８からＷＡＮ７を介してルータ５へ送信する。
【００４７】
例えば、送信キューイング部１５は、音声パケットの場合には、意味の無いデータとして無音データを挿入して冗長化パケットを作成する。また、送信キューイング部１５は、映像パケットの場合には、意味の無いデータとして黒色または白色の画像データを挿入して冗長化パケットを作成する。
【００４８】
ＷＡＮインタフェース１８は、ルータ３をＷＡＮに接続するためのインタフェースであり、ＷＡＮ７に冗長化パケットやパケット（フレーム）を送出する。
【００４９】
次に、ルータ５は、ＷＡＮインタフェース２０、冗長化ブロック退避部２１、冗長化ブロック記憶部２３、ロス判別復元部２５、タイマ２７、及びＬＡＮインタフェース２８を備えている。
【００５０】
ＷＡＮインタフェース２０は、ルータ５をＷＡＮに接続するためのインタフェースであり、ＷＡＮ７から送られてきた冗長化パケットや通常のパケット（フレーム）を、冗長化ブロック退避部２１に出力する。
【００５１】
冗長化ブロック退避部２１は、ＷＡＮ７を介してパケットを受信すると、このパケットにおける冗長化情報の有無に基づいて冗長化パケットであるか否かを確認する。そして、受信したパケットが冗長化パケットの場合には、この冗長化パケットから送信順情報を読み出す。そして、この送信順情報と、予め設定した規則と、に基づいて冗長化パケットから冗長化ブロックを取り出して、各冗長化ブロックを元のブロックに分割し、各ブロックに送信順及び分解した順番の情報を付加して、冗長化ブロック記憶部２３に格納する。また、冗長化ブロック退避部２１は、冗長化パケットから取り外した冗長化ブロックの隙間を詰めて、このパケットをロス判別復元部２５に出力する。
【００５２】
一方、冗長化ブロック退避部２１は、ＷＡＮ７を介して受信したパケットが冗長化パケットではなく通常のパケットの場合には、このパケットをそのままロス判別復元部２５へ出力する。
【００５３】
冗長化ブロック記憶部２３は、冗長化ブロック退避部２１が出力した各ブロックを記憶するＦＩＦＯメモリである。
【００５４】
ロス判別復元部２５は、冗長化ブロック退避部２１が出力したパケットを検出すると、送信順情報を確認し、この送信順情報と、これまでに確認した送信順情報と、に基づいてパケットロスの有無を判別する。また、ロス判別復元部２５は、送られてきたパケットをイーサネット（登録商標）パケット化（フレーム化）して、ＬＡＮインタフェース２８を介してＬＡＮ９に出力する。また、ロス判別復元部２５は、パケットロスを検出すると、そのロスしたパケットの送信順情報に基づいて冗長化ブロック記憶部２３から、そのパケットの内部データから作成したブロックを読み出す。続いて、ロス判別復元部２５は、これらのブロックから、ロスしたパケットの内部データを復元する。さらに、ロス判別復元部２５は、復元した内部データにヘッダを付加してイーサネット（登録商標）パケット化し、このパケットをＬＡＮインタフェース２８を介してＬＡＮ９に出力する。
【００５５】
タイマ２７は、ルータ５におけるパケットの出力タイミングを計るためのものである。ロス判別復元部２５は、パケットロスを検出して、その検出したパケットの内部データから作成されたブロックを冗長化ブロック記憶部２３から読み出す際に、タイマ１７が一定時間の計時を完了しても、ＷＡＮ７が混雑している等の理由で、冗長化ブロック退避部２１がＷＡＮインタフェース２０を介して、連続してパケット（フレーム）を受けとれず、冗長化ブロック記憶部２３に、これらのブロックが格納されていないために該ブロックを読み出せない場合がある。ロス判別復元部２５は、タイマ２７が一定時間の計時を完了しても冗長化ブロック記憶部２３に、内部データを復元するのに必要な冗長化ブロック群が格納されない場合には、その格納されないブロックに該当する部分に、意味の無いデータを挿入した冗長化パケットを作成して、ＬＡＮインタフェース２８からＬＡＮ９を介して受信装置に送信する。
【００５６】
例えば、ロス判別復元部２５は、音声パケットの場合には、意味の無いデータとして無音データを挿入して冗長化パケットを作成する。また、ロス判別復元部２５は、映像パケットの場合には、意味の無いデータとして黒色または白色の画像データを挿入して冗長化パケットを作成する。
【００５７】
ＬＡＮインタフェース２８は、ルータ５をＬＡＮに接続するためのインタフェースであり、ＬＡＮ９にパケットを送出する。
【００５８】
ここで、図１には、ルータ３が送信装置の構成を備え、ルータ５が受信装置の構成を備えた場合を示したが、ルータ３及びルータ５がそれぞれ送信装置及び受信装置の構成を備えていても良い。
【００５９】
次に、ルータ３（送信装置）が、内部データを冗長化させる工程を説明する。図２は、冗長化ブロックの作成処理を説明するためのフローチャートであり、（Ａ）は冗長化ブロック作成部が行う処理、（Ｂ）は送信キューイング部が行う処理を説明するためのフローチャートである。図３は、ｎ＝３のときの冗長化ブロックの作成処理の概念図である。図３には、内部データを３つに分割する場合について、内部データ及び冗長化ブロックのみを示している。また、以下の説明では、フレームレングスが２５６バイトの映像フレーム（ＵＤＰパケット）がストリーミング配信されている場合を例に挙げて説明する。
【００６０】
ここで、ルータ３では、冗長処理を行う対象パケットの種類や内部データの分割数ｎを予め設定することが可能である。ユーザは、ルータ３の不図示の操作部を操作することで、所望の種類のパケットのみを冗長処理の対象に設定することも、種類を特定せずに冗長処理の対象に設定することも可能である。また、ユーザは、ルータ３の不図示の操作部を操作することで、内部データの分割数ｎを予め設定できる。
【００６１】
図２（Ａ）に示すように、ルータ３の冗長化ブロック作成部１１は、ＬＡＮ８から送られてきたパケットが冗長処理の対象パケットであるか否かを判定する（ｓ１）。冗長化ブロック作成部１１は、このパケットが冗長処理の対象パケットでない場合には（ｓ１：Ｎ）、このパケットを送信キューイング部１５に出力する（ｓ６）。一方、冗長化ブロック作成部１１は、このパケットが冗長処理の対象パケットである場合には（ｓ１：Ｙ）、続いてこのパケットの内部データのレングスが閾値（４９０バイト）以下であるか否かを確認する（ｓ２）。冗長化ブロック作成部１１は、内部データのレングスが閾値よりも大きい場合には（ｓ２：Ｎ）、ステップｓ６の処理を行う。一方、冗長化ブロック作成部１１は、内部データのレングスが閾値以下の場合には（ｓ２：Ｙ）、冗長化ブロックの作成処理を行う（ｓ３）。すなわち、ｉ番目（ｉは任意の自然数）のパケットの内部データを複写すると、この内部データをｎ個（ｎは予め設定された２以上の任意の自然数）のブロックに分割してこの順番に保持する。そして、冗長化ブロック作成部１１は、ｎ個のブロックの前端からｋ個（ｋの初期値は１）のブロックを複写し、この複写したｋ個のブロックにより第ｋ前端冗長化ブロックを生成する工程、前記ｎ個のブロックの後端からｋ個のブロックを複写し、この複写したｋ個のブロックにより第ｋ後端冗長化ブロックを生成する工程、及びｋを１増分する工程を、ｋがｎになるまで繰り返して冗長化ブロックを作成する。
【００６２】
例えば、図３（Ａ）に示すように、冗長化ブロック作成部１１は、４番目（ｉ＝４）に受信したパケットについては、このパケットの内部データを複写する。ここで、ルータ３では、内部データをｎ個（図３では３個）に分割することが予め設定されている。また、ルータ３は、通信開始時等に、ルータ５と冗長化パケット作成のルールについて情報をやりとりして、このルールについて共有化している。また、ルータ３とルータ５は、情報をやりとりするのではなく、冗長化パケット作成のルールについて予め同じ情報が設定されていても良い。
【００６３】
冗長化ブロック作成部１１は、図３（Ｂ）に示すように、複写した内部データを３個（ｎ＝３）に分割して各ブロックを作成し、この順番を保持する。ここで、内部データを分割する際には、各冗長化ブロックのレングスがほぼ同じ値になるように分割するのが望ましい。例えば、フレームレングスが２５６バイトの映像フレーム（ＵＤＰパケット）がストリーミング配信されている場合、このフレームの内部データ（ＵＤＰパケットのデータ部分）のレングスは２１０バイト（＝２５６−４６）なので、３個に分割するのであれば、各ブロックのレングスを７０バイトにすれば良い。
【００６４】
冗長化ブロック作成部１１は、４番目に受信したパケットの場合、内部データを４Ａ、４Ｂ、４Ｃの３個のブロックに分割して、この順番を保持する。
【００６５】
続いて、冗長化ブロック作成部１１は、図３（Ｃ）に示すように、３個のブロック４Ａ、４Ｂ、４Ｃの前端から１個（ｋ＝１）のブロック４Ａを複写し、この複写した１個のブロック４Ａにより第１前端冗長化ブロックを生成する。また、３個のブロック４Ａ、４Ｂ、４Ｃの後端から１個のブロック４Ｃを複写し、この複写した１個のブロック４Ｃにより第１後端冗長化ブロックを生成する。そして、ｋを１増分して、ｋ＝２とする。
【００６６】
冗長化ブロック作成部１１は、ｋがｎの値である３になっていないので、さらに、図３（Ｄ）に示すように、３個のブロック４Ａ、４Ｂ、４Ｃの前端から２個（ｋ＝２）のブロック４Ａ、４Ｂを複写し、この複写した２個のブロック４Ａ、４Ｂにより第２前端冗長化ブロックを生成する。また、３個のブロック４Ａ、４Ｂ、４Ｃの後端から２個のブロック４Ｂ、４Ｃを複写し、この複写した２個のブロック４Ｂ、４Ｃにより第２後端冗長化ブロックを生成する。そして、ｋを１増分して、ｋ＝３とする。
【００６７】
冗長化ブロック作成部１１は、ｋの値を確認し、ｋがｎの値である３になったので、冗長化ブロックの作成処理を終了する（ｓ３）。そして、冗長化ブロック作成部１１は、作成した第１前端冗長化ブロック、第１後端冗長化ブロック、第２前端冗長化ブロック、及び第２後端冗長化ブロックを出力して、これら各ブロックを冗長化ブロック記憶部１３に格納する（ｓ４）。このとき、冗長化ブロック作成部１１は、各冗長化ブロックに対して、ｉ番目（４番目）のパケットの内部データから作成したものであるかを識別できるように、識別情報を付加して冗長化ブロック記憶部１３に各冗長化ブロックを格納する。
【００６８】
また、冗長化ブロック作成部１１は、冗長化ブロックの作成処理が完了したパケットに、内部データのサイズが閾値以下である旨の情報（冗長化対象パケット情報）及びｉ番目（４番目）のパケットであることを示す順番情報を付加する（ｓ５）。そして、送信キューイング部１５にこのパケットを出力する（ｓ６）。
【００６９】
このように、冗長化ブロック作成部１１は、上記ステップｓ１からステップｓ６の処理を繰り返し行う。
【００７０】
なお、ルータ３が取り扱うのがＴＣＰパケットの場合には、ヘッダにシーケンス番号が付加されているので、送信キューイング部１５は、冗長化内部データに送信順情報を付加する替わりに、ヘッダに付加されるシーケンス番号をこの順番情報として利用することが可能である。
【００７１】
図２（Ｂ）に示すように、送信キューイング部１５は、冗長化ブロック作成部１１からパケットが出力されるまで待機しており（ｓ１１：Ｎ）、冗長化ブロック作成部１１からパケットが出力されたことを検出すると（ｓ１１：Ｙ）、このパケットに、冗長化対象パケット情報が付加されているか否かを確認する（ｓ１２）。送信キューイング部１５は、パケットに冗長化対象パケット情報が付加されていない場合には（ｓ１２：Ｎ）、このパケットをルータ５または他のノードに送信する（ｓ１８）。
【００７２】
一方、送信キューイング部１５は、パケットに冗長化対象パケット情報が付加されている場合には（ｓ１２：Ｙ）、タイマ１７に一定時間の計時を開始させる（ｓ１３）。続いて、送信キューイング部１５は、パケットの順番情報を確認して、このパケットの内部データに付加する冗長化ブロックが冗長化ブロック記憶部１３に格納されているか否かを確認する（ｓ１４）。
【００７３】
送信キューイング部１５は、付加する冗長化ブロックが冗長化ブロック記憶部１３に格納されている場合には（ｓ１４：Ｙ）、冗長化ブロック記憶部１３から必要な冗長化ブロックを読み出して、内部データに付加して冗長化パケットを作成する（ｓ１５）。
【００７４】
具体的には、ｉ−ｊ≧１の場合にｉ−ｊ番目（ｊの初期値は１）の内部データから作成した第ｎ−ｊ後端冗長化ブロック、及びｉ＋ｊ番目の内部データから作成した第ｎ−ｊ前端冗長化ブロックを前記記憶手段から読み出す工程、ｉ番目の内部データの前端または冗長化ブロックが付加されている場合にはその前端に前記第ｎ−ｊ後端冗長化ブロックを付加し、ｉ番目の内部データの前端または冗長化ブロックが付加されている場合にはその後端に前記第ｎ−ｊ前端冗長化ブロックを付加する工程、及びｊを１増分する増分工程を、ｊがｎになるまで繰り返し実行する工程と、を実行する。
【００７５】
例えば、送信キューイング部１５は、４番目（ｉ＝４）に受信したパケットの内部データを検出した場合、まず、初期値として、ｊ＝１を設定し、５番目の内部データの第２前端冗長化ブロック（ブロック５Ａ・５Ｂから成る冗長化ブロック）、及び３番目の内部データの第２後端冗長化ブロック（ブロック３Ｂ・３Ｃから成る冗長化ブロック）を冗長化ブロック記憶部１３から読み出す。続いて、送信キューイング部１５は、４番目（ｉ＝４）に受信したパケットの内部データの前端に、３番目の内部データの第２後端冗長化ブロックを付加する。また、送信キューイング部１５は、４番目（ｉ＝４）に受信したパケットの内部データの後端に、５番目の内部データの第２前端冗長化ブロックを付加する。そして、ｊを１増分してｊ＝２とする。
【００７６】
送信キューイング部１５は、ｊがｎの値である３になっていないので、さらに、６番目の内部データの第１前端冗長化ブロック（ブロック６Ａから成る冗長化ブロック）、及び２番目の内部データの第１後端冗長化ブロック（ブロック２Ｃからなる冗長化ブロック）を冗長化ブロック記憶部１３から読み出す。また、送信キューイング部１５は、３番目の内部データの第２後端冗長化ブロックの前端に、２番目の内部データの第１後端冗長化ブロックを付加する。また、送信キューイング部１５は、５番目の内部データの第２前端冗長化ブロックの後端に、６番目の内部データの第１前端冗長化ブロックを付加する。そして、ｊを１増分してｊ＝３とする。
【００７７】
送信キューイング部１５は、ｊがｎの値である３になったので、各冗長化ブロックを付加した４番目の内部データの例えば先頭に、冗長化したことを示す冗長化情報を付加する。さらに、冗長化した内部データの送信順が４番目であることを示す送信順情報を付加する。そして、ヘッダ情報を修正してイーサネット（登録商標）パケット化（フレーム化）した４番目の冗長化パケットをＷＡＮインタフェース１８からＷＡＮ７を介してルータ５へ送信する（ｓ１８）。
【００７８】
ここで、ルータ３が取り扱うのがＴＣＰパケットの場合には、ヘッダにシーケンス番号が付加されているので、送信キューイング部１５は、冗長化内部データに送信順情報を付加する替わりに、ヘッダに付加されるシーケンス番号をこの送信順情報として利用することが可能である。
【００７９】
また、送信キューイング部１５は、ステップｓ１４において、付加する冗長化ブロックが冗長化ブロック記憶部１３に格納されていない場合には（ｓ１４：Ｎ）、タイマ１７が一定時間の計時を完了したか否かを確認する（ｓ１６）。送信キューイング部１５は、タイマ１７がまだ一定時間の計時を完了していない場合には（ｓ１６：Ｎ）、ステップｓ１４以降の処理を再度行う。
【００８０】
一方、送信キューイング部１５は、タイマ１７が一定時間の計時を完了している場合には（ｓ１６：Ｙ）、ＬＡＮ８が混雑している等の理由で、冗長化ブロック作成部１１がＬＡＮインタフェース１０を介して、連続してパケット（フレーム）を受けとれず、冗長化ブロック記憶部１３に必要な冗長化ブロックが格納されていないと判断する。そして、送信キューイング部１５は、その冗長化ブロックに該当する部分に意味の無いデータを挿入した冗長化パケットを作成し（ｓ１７）、続いて、ステップｓ１８の処理を行う。
【００８１】
送信キューイング部１５は、例えば２番目のパケットを受け取ってから一定時間が経過しても、３番目のパケットの第２前端冗長化ブロックが冗長化ブロック記憶部１３に格納されない場合には、図３（Ｆ）に示すように、３番目の内部データに対して意味の無いデータを挿入して冗長化パケットを作成する。また、送信キューイング部１５は、例えば４番目のパケットを受け取ってから一定時間が経過しても、６番目のパケットの第１前端冗長化ブロックが冗長化ブロック記憶部１３に格納されない場合には、４番目の内部データに対して意味の無いデータを挿入して冗長化パケットを作成する。
【００８２】
また、送信キューイング部１５は、例えば、音声パケットをルータ５とやりとりしている場合には、意味の無いデータとして無音データを挿入して冗長化パケットを作成する。また、送信キューイング部１５は、やりとりしているのが映像パケットの場合には、意味の無いデータとして黒色または白色の画像データを挿入して冗長化パケットを作成する。
【００８３】
また、タイマ１７に設定する一定時間は、ルータ３とルータ５の間でやりとりするデータの種類やデータ送受信の遅延許容時間等に応じて設定すると良い。また、ルータ３（送信装置）からルータ５（受信装置）に対して、パケットロスを確実に補償できる構成にする場合には、このタイマ１７を設けずに、冗長化ブロック記憶部１３に冗長化ブロックが格納されるまで冗長化パケットの作成を待つように構成することも可能である。
【００８４】
このように、送信キューイング部１５は、上記ステップｓ１１からステップｓ１８の処理を繰り返し行う。ルータ３は、上記の処理を繰り返すことで、図３に示したように、１番目のパケットの内部データから順番に、冗長化パケットを作成する。
【００８５】
なお、図３に示した規則（ルール）により作成した冗長化パケットの内部データと冗長化ブロックの合計レングスは、内部データの３倍になる。
【００８６】
次に、ルータ５は、冗長化パケットのパケットロスが発生すると、以下のようにして冗長化パケットの内部データを復元する。図４は、パケットロスした内部データの復元処理を説明するためのフローチャートであり、（Ａ）は、冗長化ブロック退避部の処理、（Ｂ）はロス判別復元部の処理を説明するためのフローチャートである。図５は、ｎ＝３のときのパケットロスした内部データの復元処理の概念図である。
【００８７】
ルータ５において、冗長化ブロック退避部２１は、受信したｉ番目（ｉは任意の自然数）のパケットにおける冗長化情報及び送信順情報の有無を確認し、これらの情報を有していると、このパケットから、ｉ＋ｊ番目の内部データの第ｎ−ｊ（ｊの初期値は１）後端冗長化ブロックとｉ−ｊ≧１の場合にｉ−ｊ番目の内部データの第ｎ−ｊ前端冗長化ブロックを取り外す工程、取り外した冗長化ブロックを出力する工程、及びｊを１増分する工程を、ｊがｎになるまで繰り返し実行し、ｊがｎになると、冗長化ブロックを取り外したパケットを出力する。すなわち、図４（Ａ）に示すように、ルータ５の冗長化ブロック退避部２１は、ルータ３や他のノードから送られてきたパケットを受信すると、このパケットが冗長処理の対象パケット、つまりルータ３から送られてきた冗長化パケットであるか否かを確認する（ｓ２１）。冗長化ブロック退避部２１は、このパケットが冗長処理の対象パケットでない場合には（ｓ２１：Ｎ）、このパケットをそのままロス判別復元部２５に出力する（ｓ２４）。
【００８８】
一方、冗長化ブロック退避部２１は、このパケットが冗長処理の対象パケットである場合には（ｓ２１：Ｙ）、続いてこのパケットから、送信順情報を複写するとともに、冗長化ブロックを取り外して、送信順に基づいて冗長化ブロックを送信順情報とともに冗長化ブロック記憶部２３に格納する（ｓ２２）。また、冗長化ブロック退避部２１は、冗長化パケットから取り外した冗長化ブロックの隙間を詰める（ｓ２３）。例えば、冗長化ブロック退避部２１は、図５（Ａ）に示す１、２、４番目の冗長化パケットのように、冗長化ブロックを取り外して、内部データのみを有するパケットに加工する。
【００８９】
そして、冗長化ブロック退避部２１は、このパケットをロス判別復元部２５に出力する（ｓ２４）。
【００９０】
このように、冗長化ブロック退避部２１は、上記ステップｓ２１からステップｓ２４の処理を繰り返し行う。
【００９１】
次に、ロス判別復元部２５は、冗長化ブロック退避部２１が出力したパケットが有する送信順情報に基づいてｉ番目のパケットの欠如を検出すると、ｉ番目のパケット用内部データから作成した第ｎ−ｊ（ｊの初期値は１）後端冗長化ブロック、及びｉ番目のパケット用内部データから作成した第ｎ−ｊ前端冗長化ブロックを冗長化ブロック記憶部２３が記憶していれば、これらの冗長化ブロックを冗長化ブロック記憶部２３から読み出す工程、ｊを１増分する増分工程、及びｉ番目の内部データを構成する全冗長化ブロックを読み出せたかを確認する工程を、ｊがｎになるまで、またはｉ番目の内部データを構成する全ブロックの読み出しが完了するまで、繰り返し実行する。そして、ｊがｎになるか、または全ブロックの読み出しが完了すると、読み出した各前端冗長化ブロック及び各後端冗長化ブロックからｉ番目の内部データを復元する工程を実行する。
【００９２】
すなわち、図４（Ｂ）に示すように、ロス判別復元部２５は、冗長化ブロック退避部２１からパケットが送られてくるまで待機しており（ｓ３１：Ｎ）、冗長化ブロック退避部２１からパケットが送られてくると（ｓ３１：Ｙ）、このパケットに送信順情報が付加されているか否かを確認する（ｓ３２）。ロス判別復元部２５は、パケットに送信順情報が付加されていない場合には（ｓ３２：Ｎ）、冗長処理の対象外のパケットであるため、このパケットのＴＴＬやヘッダチェックサムを変更して、イーサネット（登録商標）パケット化してＬＡＮインタフェース２８からＬＡＮ９に送信する（ｓ３９）。
【００９３】
また、ロス判別復元部２５は、パケットに送信順情報が付加されている場合には（ｓ３２：Ｙ）、この送信順情報と、これまでに確認した送信順情報と、に基づいてパケットロスの有無を判別する（ｓ３３）。ロス判別復元部２５は、パケットロスが発生していないと判定した場合には、ステップｓ３８の処理を行う。一方、ロス判別復元部２５は、パケットロスが発生していると判定した場合には、タイマ２７に第２の一定時間の計時を開始させる（ｓ３４）。続いて、ロス判別復元部２５は、ロスしたパケットの送信順情報に基づいて、このパケットの内部データから作成された全種類のブロック、つまり、送信順情報が３番目の内部データを含む冗長化パケットをロスした場合には、３Ａ・３Ｂ・３Ｃの３つのブロックが、冗長化ブロック記憶部２３に格納されているか否かを確認する（ｓ３５）。
【００９４】
ロス判別復元部２５は、内部データの復元に必要な冗長化ブロックが冗長化ブロック記憶部２３に格納されている場合には（ｓ３５：Ｙ）、冗長化ブロック記憶部２３から必要な冗長化ブロックを読み出して、内部データを復元する（ｓ３６）。そして、ヘッダ情報を付加してイーサネット（登録商標）パケット化してＬＡＮインタフェース２８からＬＡＮ９に送信する（ｓ３９）。
【００９５】
例えば、図５（Ａ）に示すように、３番目のパケットをロスした場合には、２番目の冗長化パケットに含まれている第２前端冗長化ブロック（３Ａブロック・３Ｂブロック）と、４番目の冗長化パケットに含まれている第２後端冗長化ブロック（３Ｂ・３Ｃブロック）から３Ｃブロックを読み出して、内部データを復元する。
【００９６】
また、図５（Ｂ）に示すように、２番目のパケット及び３番目のパケットをロスした場合には、１番目の冗長化パケットに含まれている第２前端冗長化ブロック（２Ａブロック・２Ｂブロック）と４番目の冗長化パケットに含まれている第１後端冗長化ブロック（２Ｃブロック）から、２番目の冗長化パケットに含まれていた内部データを復元する。また、１番目の冗長化パケットに含まれている第１前端冗長化ブロック（３Ａブロック）と、４番目の冗長化パケットに含まれている第２後端冗長化ブロック（３Ｂブロック・３Ｃブロック）から、３番目の冗長化パケットに含まれていた内部データを復元する。
【００９７】
一方、ロス判別復元部２５は、内部データの復元に必要な冗長化ブロックが冗長化ブロック記憶部２３に格納されていない場合には（ｓ３５：Ｎ）、タイマ２７が第２の一定時間の計時を完了したか否かを確認する（ｓ３７）。ロス判別復元部２５は、タイマ２７が一定時間の計時が完了していない場合には（ｓ３７：Ｎ）、再度ステップｓ３５以降の処理を行う。また、ロス判別復元部２５は、タイマ２７が一定時間の計時が完了している場合には（ｓ３７：Ｙ）、ＷＡＮ７が混雑している等の理由で、冗長化ブロック退避部２１がＷＡＮインタフェース２０を介して、連続して冗長化パケットを受けとれず、冗長化ブロック記憶部２３に必要なブロックが格納されていないと判断する。そして、ロス判別復元部２５は、そのブロックに該当する部分に意味の無いデータを含む内部データを作成（復元）し（ｓ３８）、さらにヘッダ情報を付加してイーサネット（登録商標）パケット化してＬＡＮインタフェース２８からＬＡＮ９に送信する（ｓ３９）。
【００９８】
ロス判別復元部２５は、上記ステップｓ３１からステップｓ３９の処理を繰り返し行う。ルータ５は、上記の処理を繰り返すことで、図５に示したように、１番目のパケットの内部データから順番に取得し、ロスしたパケットについては復元する。
【００９９】
このように、内部データを３分割して、上記のルールで冗長化パケットを作成した場合には、図５（Ａ）・（Ｂ）に示したように、１個または２個の連続するパケットロスに対して、完全に内部データを復元できる。また、図５（Ｃ）に示すように、３個の連続するパケットロスに対しては、一部データの欠損が生じる。しかし、音声データや映像データをやりとりする場合には、一部欠損しても大きな問題とはならない。そのため、連続して複数のパケットの内部データが欠損するのを防止できる本発明は、特に音声や映像のストリーミング配信に有効である。
【０１００】
次に、内部データを４つに分割した場合について説明する。図６は、ｎ＝４のときの冗長化ブロックの作成処理の概念図である。図７は、ｎ＝４のときのパケットロスした内部データの復元処理の概念図である。
【０１０１】
ルータ３の冗長化ブロック作成部１１及び送信キューイング部１５は、内部データを４個に分割する場合も、図２、３に基づいて説明した処理と同様の処理を行う。すなわち、図６（Ａ）・（Ｂ）に示すように、ｉ番目の内部データを複写すると４分割する。そして、図６（Ｃ）に示す第１前端冗長化ブロック・第１後端冗長化ブロック、図６（Ｄ）に示す第２前端冗長化ブロック・第２後端冗長化ブロック、及び図６（Ｅ）に示す第３前端冗長化ブロック・第３後端冗長化ブロックを作成して、冗長化ブロック記憶部１３に格納する。
【０１０２】
また、送信キューイング部１５は、図６（Ｆ）に示すように、４番目（ｉ＝４）に受信したパケットの内部データを検出した場合には、５番目の内部データの第３前端冗長化ブロック（ブロック５Ａ・５Ｂ・５Ｃから成る冗長化ブロック）、３番目の内部データの第２後端冗長化ブロック（ブロック３Ｂ・３Ｃ・３Ｄから成る冗長化ブロック）、６番目の内部データの第２前端冗長化ブロック（ブロック６Ａ・６Ｂから成る冗長化ブロック）、及び２番目の内部データの第２後端冗長化ブロック（ブロック２Ｃ・２Ｄからなる冗長化ブロック）、７番目の内部データの第１前端冗長化ブロック（ブロック７Ａから成る冗長化ブロック）、及び１番目の内部データの第１後端冗長化ブロック（ブロック１Ｄからなる冗長化ブロック）を冗長化ブロック記憶部１３から読み出す。そして、これらの冗長化ブロックを内部データに付加（連結）して冗長化パケットを作成する。
【０１０３】
なお、上記の規則（ルール）により作成した冗長化パケットの内部データと冗長化ブロックの合計レングスは、内部データの４倍になる。
【０１０４】
また、このようにして冗長化パケットを作成した場合には、図７に示すように、連続して３つのパケットロスが発生しても、内部データを完全に復元できる。
【０１０５】
次に、内部データを２つに分割した場合について説明する。図８は、ｎ＝２のときの冗長化ブロックの作成処理、及びパケットロスした内部データの復元処理の概念図である。
【０１０６】
ルータ３の冗長化ブロック作成部１１及び送信キューイング部１５は、内部データを２個に分割する場合も、図２、３に基づいて説明した処理と同様の処理を行う。すなわち、図８（Ａ）・（Ｂ）に示すように、ｉ番目の内部データを複写すると２分割する。そして、図８（Ｃ）に示す第１前端冗長化ブロック・第１後端冗長化ブロックを作成して、冗長化ブロック記憶部１３に格納する。
【０１０７】
また、送信キューイング部１５は、図８（Ｄ）に示すように、４番目（ｉ＝４）に受信したパケットの内部データを検出した場合には、５番目の内部データの第１前端冗長化ブロック（ブロック５Ａから成る冗長化ブロック）、及び３番目の内部データの第１後端冗長化ブロック（ブロック３Ｂからなる冗長化ブロック）を冗長化ブロック記憶部１３から読み出す。そして、これらの冗長化ブロックを内部データに付加（連結）して冗長化パケットを作成する。
【０１０８】
なお、上記の規則（ルール）により作成した冗長化パケットの内部データと冗長化ブロックの合計レングスは、内部データの２倍になる。
【０１０９】
また、このようにして冗長化パケットを作成した場合には、図８（Ｅ）に示すように、１つのパケットロスが発生しても、内部データを完全に復元できる。
【０１１０】
送受信システム１では、内部データの分割数ｎをさらに大きくすることが可能であり、分割数ｍの場合には、連続したパケットロスがｍ−１個までなら、その前後の冗長化パケットに付加した冗長化ブロックを用いて、内部データを全て復元できる。また、分割数が大きくなるのに比例して内部データと冗長化ブロックの合計レングスが大きくなるが、送受信システム１に、ギガビットイーサネット（登録商標）を用いることで、分割数を大きくしても本発明を問題なく適用できる。
【０１１１】
また、上記の説明では、送受信システム１をルータ３とルータ５により構成した場合について説明したが、本発明はルータやスイッチ等のネットワーク中継装置のみに適用するものでなはなく、他の装置に適用することも、もちろん可能である。例えば、送受信システムの送信装置や受信装置を、サーバやクライアントパソコンに適用できる。図９は、送受信システムの別の構成を示すブロック図である。図９に示すように、送受信システム１Ｂは、送信装置であるサーバ３Ｓと受信装置であるパソコン５ＰとＷＡＮ７を介して接続された構成である。ここで、送受信システム１Ｂでは、図１に示した送受信システム１と同じ構成には同じ符号を付している。
【０１１２】
図９に示した送受信システム１Ｂでは、サーバ３Ｓの制御部１９の制御により、冗長化ブロック作成部１１が、データ記憶部１０Ｓに格納されている映像データを一定量ずつ読み出して、図１に基づいて説明したように、冗長化パケットを作成して、パソコン５Ｐにストリーミング配信している。パソコン５Ｐは、サーバ３Ｓが送信した冗長化パケットを受信すると、図１に基づいて説明したように、冗長化パケットから冗長化ブロックを取り出して冗長化ブロック記憶部２３に記憶させている。また、ロス判別復元部２５は、冗長化パケットから内部データを取り出して映像処理部２８に出力している。映像処理部２８は、内部データを処理してモニタ６に出力し、モニタ６は映像を表示する。
【０１１３】
また、パソコン５Ｐでは、パケットロスの有無を確認しており、パケットロスが発生した場合には、冗長化ブロック記憶部２３から冗長化ブロックを読み出して、内部データを復元する。
【０１１４】
次に、送受信システム１や送受信システム１Ｂでは、上記の説明とは異なる規則（ルール）で冗長化パケットを作成するように設定することも可能である。例えば、内部データをｎ個に分割して、各冗長化ブロックを複写し、２ｎ個の冗長化ブロックを、一定の規則により前後の内部データに１つずつ付加するようにしても良い。以下、図１に示した送受信システム１に適用して説明する。
【０１１５】
図１０は、別の規則による冗長化パケットの作成の概念図である。まず、内部データを２個に分割する場合について説明する。ルータ３には、内部データをｎ個（図１０では２個）に分割することが予め設定されている。また、ルータ３は、通信開始時等にルータ５と冗長化パケット作成のルールについて情報をやりとりして、このルールについて共有化している。
【０１１６】
ルータ３の冗長化ブロック作成部１１は、図１０（Ｂ）に示すように、内部データを１回複写すると、それぞれ２個（ｎ＝２）に分割して、２個の第１冗長化ブロックと２個の第２冗長化ブロックを作成し、この順番を保持する。例えば、冗長化ブロック作成部１１は、４番目に受信したパケットの内部データを２個に分割して、２組の第１ブロック４Ａと第２ブロック４Ｂをこの順番に保持する。
【０１１７】
そして、第１ブロック及び第２ブロックを冗長化ブロック記憶部１３に記憶させる。また、冗長化ブロック作成部１１は、冗長化ブロックを作成すると、この内部データを有するパケットを送信キューイング部１５に出力する。
【０１１８】
送信キューイング部１５は、冗長化ブロック作成部１１が出力した内部データを検出すると、冗長化ブロック記憶部１３から対応する冗長化ブロックを読み出すと、ｉ−ｊ≧１の場合にｉ−ｊ番目のパケット用内部データから作成した第（ｎ−ｊ＋１）冗長化ブロック（ｊの初期値は１）、及びｉ＋ｊ番目のパケット用内部データから作成した第ｊ冗長化ブロック（ｊの初期値は１）を前記記憶手段から読み出す工程、ｉ番目のパケット用内部データまたは冗長化ブロックが付加されている場合にはその前端に前記第（ｎ−ｊ＋１）冗長化ブロックを付加し、ｉ番目のパケット用内部データまたは冗長化ブロックが付加されている場合にはその後端に前記第ｊ冗長化ブロックを付加する工程、及びｊを１増分する増分工程を、ｊがｎを超えるまで繰り返し実行する工程と、を実行する。例えば、送信キューイング部１５は、４番目の内部データを検出した場合には、ｊの初期値を１に設定し、５番目の内部データから作成した第１冗長化ブロック５Ａと、３番目の内部データから作成した第２冗長化ブロック３Ｂを読み出す。そして、４番目の内部データの前端に３番目の内部データから作成した第２冗長化ブロック３Ｂを付加し、４番目の内部データの後端に５番目の内部データから作成した第１冗長化ブロック５Ａを付加する。続いて、送信キューイング部１５はｊを１増分して２とし、６番目の内部データから作成した第２ブロック６Ｂと、２番目の内部データから作成した第１ブロック（２Ａ）と、を読み出す。そして、冗長化ブロック３Ｂの前端に冗長化ブロック２Ａを付加し、冗長化ブロック５Ａの後端に冗長化ブロック６Ｂを付加する。続いて、送信キューイング部１５は、ｊを１増分して３とする。このとき、ｊの値はｎ（＝２）を超えたので、冗長化ブロックを付加した内部データをイーサネット（登録商標）パケット化して、この冗長化パケットをＷＡＮインタフェース１８からＷＡＮ７を介してルータ５に送信する。
【０１１９】
図１１は、ｎ＝２のときのパケットロスした内部データの復元処理の概念図である。また、ルータ５の冗長化ブロック退避部２１は、受信したｉ番目（ｉは任意の自然数）のパケットにおける冗長化情報及び送信順情報の有無を確認し、これらの情報を有していると、このパケットから、ｉ−ｊ≧１の場合にｉ−ｊ番目のパケット用内部データから作成した第（ｎ−ｊ＋１）冗長化ブロック（ｊの初期値は１）、及びｉ＋ｊ番目のパケット用内部データから作成した第ｊ冗長化ブロック（ｊの初期値は１）を取り外す工程、取り外した冗長化ブロックを第２記憶手段に出力する工程、及びｊを１増分する増分工程を、ｊがｎを超えるまで繰り返し実行する工程と、前記増分工程でｊがｎを超えると、前記冗長化ブロックを取り外したパケットを出力する工程と、を実行するように設定する。
【０１２０】
例えば、図１１（Ａ）に示すように、１、２、６、７番目の冗長化パケットのように、冗長化パケットから冗長化ブロックを取り出して、冗長化ブロック記憶部２３に格納し、冗長化ブロックを取り外したパケットをロス判別復元部２５に出力する。
【０１２１】
ルータ５のロス判別復元部２５は、冗長化ブロック退避部２１が出力した送信順情報に基づいてｉ番目のパケットの欠如を検出する工程と、ｉ番目のパケット用内部データから作成した第１冗長化ブロックから第ｎ冗長化ブロックが冗長化ブロック記憶部２３に格納されていることを確認する工程と、これらの冗長化ブロックを冗長化ブロック記憶部２３から読み出す工程と、読み出した各冗長化ブロックからｉ番目の内部データを復元する工程と、を実行する。
【０１２２】
例えば、図１１（Ａ）に示すように、３番目〜５番目のパケットをロスしたことを検出した場合には、３番目〜５番目のパケットの第１冗長化ブロック及び第２冗長化ブロックがそれぞれ冗長化ブロック記憶部２３に格納されていることを確認し、これらの冗長化ブロックを読み出す。そして、ロス判別復元部２５は、これらの冗長化ブロックを用いて３番目〜５番目のパケットの内部データを復元する。
【０１２３】
ここで、本方式では、内部データの分割数ｎが２の場合、パケットロスの連続数が３個までなら内部データを完全に復元できる。
【０１２４】
また、本方式では、冗長化ブロックを作成した際に、第１冗長化ブロックから第ｎ冗長化ブロックまでを任意の順番に並べ替えて、第Ｃ１冗長化ブロックから第Ｃｎ冗長化ブロックとしておいても良く、これにより、図１０（Ｃ）に示すように内部データに対して冗長化ブロックを付加しても、図１０（Ｄ）に示すように図１０（Ｃ）とは異なる順番で内部データに冗長化ブロックを付加しても、ｎ＋１個までの連続したパケットロスであれば、内部データを完全に復元できる。
【０１２５】
例えば、４番目のパケット用内部データを２個（ｎ＝２）に分割した場合には、４番目の内部データから作成した第１冗長化ブロック４Ａ・第２冗長化ブロック４Ｂを第２冗長化ブロック４Ｂ・第１冗長化ブロック４Ａの順に並べ替える。そして、第２冗長化ブロック４Ａを４番目のパケットから作成したＣ１冗長化ブロック、第１冗長化ブロックを４番目のパケットから作成したＣ２冗長化ブロックとして冗長化ブロック記憶部１３に記憶させる。
【０１２６】
また、送信キューイング部１５は、４番目のパケット用内部データを検出すると、３番目のパケット用内部データから作成した第Ｃ２冗長化ブロック（つまり、第１冗長化ブロック３Ａ）、及び５番目のパケット用内部データから作成した第Ｃ１冗長化ブロック（つまり、第２冗長化ブロック５Ｂ）を冗長化ブロック記憶部１３から読み出す。そして、４番目のパケット用内部データの前端に３番目のパケット用内部データから作成した第Ｃ２冗長化ブロック（３Ａ）を付加し、４番目のパケット用内部データの後端に５番目のパケット用内部データから作成した第Ｃ１冗長化ブロック（５Ｂ）を付加する。また、ｊ＝２として、２番目のパケット用内部データから作成した第Ｃ１冗長化ブロック（つまり、第２冗長化ブロック２Ｂ）、及び６番目のパケット用内部データから作成した第Ｃ２冗長化ブロック（つまり、第１冗長化ブロック６Ａ）を冗長化ブロック記憶部１３から読み出す。そして、３番目のパケット用内部データから作成した第Ｃ２冗長化ブロック（３Ａ）の前端に、２番目のパケット用内部データから作成した第Ｃ１冗長化ブロック（２Ｂ）を付加し、５番目のパケット用内部データから作成した第Ｃ１冗長化ブロック（５Ｂ）の後端に、６番目のパケット用内部データから作成した第Ｃ２冗長化ブロック（６Ａ）を付加する。そして、ｊを１増分するとｊ＝３になり、ｎ（＝２）を超えたので、冗長化ブロックを付加した内部データをパケット化して、この冗長化パケットを受信装置に送信する。
【０１２７】
したがって、上記のように冗長化パケットを作成する場合には、内部データに冗長化ブロックを付加する順番を入れ替えることが可能である。また、入れ替えの順番を守ることで、ｎ＋１個までの冗長化パケットが連続してロスしても、ロスしたパケットを復元できる。
【０１２８】
一方、図１１（Ｃ）に示すように、内部データに付加する冗長化ブロックの順番が、内部データの前端側と後端側で異なる場合には、パケットロスの連続数がｎ＋１個だと内部データを完全に復元できない。この場合には、パケットロスの連続数がｎ個だと内部データを完全に復元できる。
【０１２９】
図１２は、ｎ＝３のときのパケットロスした内部データの復元処理の概念図である。図１３は、ｎ＝４のときのパケットロスした内部データの復元処理の概念図である。
【０１３０】
また、本方式では、図１２に示すように、内部データの分割数ｎ＝３の場合には、ロスしたパケットの連続数が４までなら、ロスしたパケットに含まれていた内部データを完全に復元できる。
【０１３１】
また、図１３に示すように、内部データの分割数ｎ＝４の場合には、ロスしたパケットの連続数が５までなら、ロスしたパケットに含まれていた内部データを完全に復元できる。
【０１３２】
このように、本方式では内部データの分割数がｍ個の場合には、パケットロスの連続数がｍ＋１個までなら、その前後のパケットに付加した（分散した）冗長化ブロックにより、内部データを完全に復元できる。
【０１３３】
また、本方式では、内部データと冗長化パケットの合計レングスは、内部データの３倍である。そのため、データの重要性に応じて分割数ｎを決めることができる。すなわち、重要なデータを送受信する場合には、内部データの分割数ｎを大きな値にし、重要性が低いデータやリアルタイム性が重視されるデータの場合には、内部データの分割数ｎを小さな値にすると良い。
【図面の簡単な説明】
【０１３４】
【図１】送信装置及び受信装置の構成を示すブロック図である。
【図２】冗長化ブロックの作成処理を説明するためのフローチャートである。
【図３】ｎ＝３のときの冗長化ブロックの作成処理の概念図である。
【図４】パケットロスした内部データの復元処理を説明するためのフローチャートである。
【図５】ｎ＝３のときのパケットロスした内部データの復元処理の概念図である。
【図６】ｎ＝４のときの冗長化ブロックの作成処理の概念図である。
【図７】ｎ＝４のときのパケットロスした内部データの復元処理の概念図である。
【図８】ｎ＝２のときの冗長化ブロックの作成処理、及びパケットロスした内部データの復元処理の概念図である。
【図９】送受信システムの別の構成を示すブロック図である。
【図１０】別の規則による冗長化パケットの作成の概念図である。
【図１１】ｎ＝２のときのパケットロスした内部データの復元処理の概念図である。
【図１２】ｎ＝３のときのパケットロスした内部データの復元処理の概念図である。
【図１３】ｎ＝４のときのパケットロスした内部データの復元処理の概念図である。
【符号の説明】
【０１３５】
１，１Ｂ…送受信システム    ３…ルータ（送信装置）    ５…ルータ（受信装置）
６…モニタ    ７…ＷＡＮ    ８，９…ＬＡＮ    １０…ＬＡＮインタフェース
１０Ｓ…データ記憶部    １１…冗長化ブロック作成部
１３…冗長化ブロック記憶部    １５…送信キューイング部
１７…タイマ    １８…ＷＡＮインタフェース    １９…制御部
２０…ＷＡＮインタフェース    ２１…冗長化ブロック退避部
２３…冗長化ブロック記憶部    ２５…ロス判別復元部
２７…タイマ    ２８…ＬＡＮインタフェース    ２８…映像処理部
【図１】
2008227886.tif 000003
【図２】
2008227886.tif 000004
【図３】
2008227886.tif 000005
【図４】
2008227886.tif 000006
【図５】
2008227886.tif 000007
【図６】
2008227886.tif 000008
【図７】
2008227886.tif 000009
【図８】
2008227886.tif 000010
【図９】
2008227886.tif 000011
【図１０】
2008227886.tif 000012
【図１１】
2008227886.tif 000013
【図１２】
2008227886.tif 000014
【図１３】
2008227886.tif 000015