(57)【特許請求の範囲】
【請求項１】
受信装置が行う動作方法であって、
送信装置からデータを逐次受信するデータ受信ステップと、
前記データ毎に前記データから複数の方法の何れかで生成された第１ハッシュ値と、該第１ハッシュ値の生成種別とを含むシーケンス情報を前記データの送信順に該データに１対１で対応させて第１しきい値の数並べたシーケンス情報列を受信するシーケンス情報列受信ステップと、
受信したデータの欠落を補完するための補完用データを受信する補完用データ受信ステップと、
前記データ受信ステップで受信した前記データの各々についてハッシュ値生成方法の数を示す第２しきい値と同数の方法で第２ハッシュ値を生成する第２ハッシュ値生成ステップと、
前記データの各々の第２ハッシュ値と一致する第１ハッシュ値を前記シーケンス情報列から検索し、一致する前記第２ハッシュ値と前記第１ハッシュ値の前記生成種別が同じ場合、ハッシュ値が一致した前記データを前記シーケンス情報の順に並べたデータ列を生成するデータ回復ステップと、
前記データ列において欠落しているデータを、前記補完用データに基づいて補完するデータ補完ステップと、
補完した前記データの各々について、対応する前記シーケンス情報内の前記生成種別に対応する方法で第３ハッシュ値を生成する第３ハッシュ値生成ステップと、
前記第３ハッシュ値と、前記第１ハッシュ値とが一致する場合は正当に補完した前記データとし、一致しない場合は当該データを前記データ列から削除する正常性確認ステップと
を行うことを特徴とする受信装置の動作方法。
【請求項２】
送信装置からデータを逐次受信するデータ受信部と、
前記データ毎に前記データから複数の方法の何れかで生成された第１ハッシュ値と、該第１ハッシュ値の生成種別を含むシーケンス情報を前記データの送信順に該データに１対１で対応させて第１しきい値の数並べたシーケンス情報列と、受信したデータの欠落を補完するための補完用データとを受信する受信部と、
前記データ受信部で受信した前記データの各々についてハッシュ値生成方法の数を示す第２しきい値と同数の方法で第２ハッシュ値を生成すると共に、補完したデータの各々について対応する前記シーケンス情報内の生成種別に対応する方法で第３ハッシュ値を生成するハッシュ値生成部と、
前記データの各々の第２ハッシュ値と一致する第１ハッシュ値を前記シーケンス情報列から検索し、一致する前記第２ハッシュ値と前記第１ハッシュ値の前記生成種別が同じ場合、ハッシュ値が一致した前記データを前記シーケンス情報の順に並べたデータ列を生成するデータ回復部と、
前記データ列において欠落しているデータを、前記補完用データに基づいて補完するデータ補完部と、
前記第３ハッシュ値と、前記第１ハッシュ値とが一致する場合は正当に補完した前記データとし、一致しない場合は当該データを前記データ列から削除する正常性確認部と
を具備することを特徴とする受信装置。
【請求項３】
前記正常性確認部は、前記データを削除することに代えて、当該データを含む前記データ列を削除することを特徴とする請求項２記載の受信装置。
【請求項４】
請求項２又は３に記載の受信装置としてコンピュータを機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、順次に送信される複数のデータを受信する受信側で送信順序を特定するための技術に関するものである。
【背景技術】
【０００２】
複数のデータからなるデータ列を送受信して処理する技術の代表的なものとして、ＩＰパケットの誤り訂正がある。ＩＰパケットの誤り訂正では、連続した複数のＩＰパケット（データ）を単位（データ列という）とするのが一般的である。つまり、送信側はデータ列単位での符号化を行う。これを受信側で復号化するためには、データ列内でのＩＰパケットの送信順序を特定する必要がある。そのため、ＩＰパケットにはシーケンス番号が付与されており、そのシーケンス番号は受信側で読み取れる必要がある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１５７５２５号公報
【特許文献２】特開２０１１−０８２８６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１の技術では、配信プロトコルが、ＲＴＰ（A Transport Protocol for Real-Time Applications）の場合、通常は、ＲＴＰヘッダ内のシーケンス番号が読み取り可能であるため、前述の条件を満たすことが可能である。
【０００５】
しかし、配信プロトコルによっては、配信サーバから送出された主ストリームが暗号化されており、シーケンス番号を読み取れない、または、シーケンス番号に関する情報が公開されておらず、シーケンス番号のフィールドを特定できないという問題がある。
【０００６】
この解決手段として、新たなヘッダをパケットに追加し、追加したヘッダ内にパケットを識別する為のシーケンス情報を付与し、クライアントへ配信することが考えられる。
【０００７】
しかしながら、パケットを改変する場合、ＦＥＣ機能を有するクライアント端末とＦＥＣ機能を有しないクライアント端末が共通的に処理することができないという問題がある。
【０００８】
以上のような事情から、順次に送信される複数のデータを受信する受信側で送信順序を特定するための技術が求められている。本発明は、かかる技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記の課題を解決するために、第１の本発明に係る送信装置は、複数のデータが順次に受信装置（２）に送信される場合の当該データの送信順序を前記受信装置（２）で特定するためのシーケンス情報列を前記受信装置（２）に送信する手段（１３）を備えることを特徴とする。
【００１０】
例えば、前記シーケンス情報列は、前記各データに対応するシーケンス情報を含み、前記シーケンス情報列におけるシーケンス情報の順序は、前記送信順序に一致しており、前記シーケンス情報は、当該シーケンス情報に対応するデータの送信順序を特定するための情報と、当該情報の生成方法を示すフラグとを含む。
【００１１】
例えば、前記送信順序を特定するための前記情報はハッシュ値である。
【００１２】
例えば、送信装置は、前記シーケンス情報を生成する手段（１３１）と、送信済みの前記ハッシュ値を記憶する手段（１３８）を備え、前記シーケンス情報を生成する手段（１３１）は、前記記憶されたハッシュ値に衝突するハッシュ値が有効なものとして当該シーケンス情報に含まれるのを防止する。
【００１３】
例えば、送信装置は、前記シーケンス情報を生成する手段（１３１）と、後から送信されるデータに対応する前記ハッシュ値を記憶する手段（１３５）を備え、前記シーケンス情報を生成する手段（１３１）は、前記記憶されたハッシュ値に衝突するハッシュ値が有効なものとして当該シーケンス情報に含まれるのを防止する。
【００１４】
例えば、前記シーケンス情報に含まれるハッシュ値は、対応するデータから生成されたハッシュ値を分割して得られる複数の部分のうちの１つである。
【００１５】
例えば、前記シーケンス情報に含まれるハッシュ値は、対応するデータから別々の計算方法で計算されたハッシュ値のうちの１つである。
【００１６】
第２の本発明に係る受信装置は、複数のデータを逐次受信する手段（２１）と、前記データの送信順序を特定するためのシーケンス情報列を受信する手段（２７）と、前記シーケンス情報列に基づいて、前記送信順序を特定する手段（２５）とを備えることを特徴とする。
【００１７】
例えば、前記シーケンス情報列は、前記各データに１対１で対応させて第１しきい値（後述する「しきい値Ｎｍａｘ」）の数並べたシーケンス情報を含み、前記シーケンス情報列におけるシーケンス情報の順序は、前記送信順序に一致しており、前記シーケンス情報は、当該シーケンス情報に対応するデータの送信順序を特定するための情報と、当該情報の生成方法を示すフラグとを含む。
【００１８】
例えば、前記送信順序を特定するための前記情報はハッシュ値である。
【００１９】
例えば、受信装置は、受信したデータからハッシュ値生成方法の数を示す第２しきい値（後述する「しきい値ｉｍａｘ」）と同数の生成方法でハッシュ値を生成する手段（２４）を備え、前記送信順序を特定する手段（２５）は、前記シーケンス情報列内のハッシュ値と、当該ハッシュ値を含むシーケンス情報内のフラグに対応する方法で前記ハッシュ値を生成する手段（２４）により生成された前記ハッシュ値とが一致するなら、当該データの送信順序は、当該シーケンス情報列における当該シーケンス情報の順序に等しいとする。
【００２０】
例えば、受信装置は、現在時刻から予め定められた時間遡った時刻以降に受信したデータを前記送信順序を特定する対象から除外する手段（２３）を備える。
【００２１】
例えば、受信装置は、受信までの間のデータの欠落を補完するための補完用データを受信し、受信されたデータを前記特定された送信順序の順に並べたデータ列にデータの欠落がある場合、前記補完用データに基づいて、当該欠落を補完する手段（２９）と、前記補完されたデータと該データを含むデータ列よりも送信順が前のデータ列に含まれるデータとが一致するなら、当該送信順が前の当該データ列に含まれる当該データを削除する手段（３１）とを備える。
【００２２】
例えば、受信装置は、受信までの間のデータの欠落を補完するための補完用データを受信し、受信されたデータを前記特定された送信順序の順に並べたデータ列にデータの欠落がある場合、前記補完用データに基づいて、当該欠落を補完する手段（２９）と、補完されたデータに対応するシーケンス情報内のハッシュ値と、当該シーケンス情報内のフラグに対応する方法で前記ハッシュ値を生成する手段（２４）により生成されたハッシュ値とが一致しないなら、当該データ列から当該データを削除する手段（３０）とを備える。
【００２３】
例えば、前記削除する手段（３０）は、データを削除することに代えて、当該データを含むデータ列を削除する。
【００２４】
第３の本発明に係る送信装置の動作方法は、送信装置（１）が、複数のデータが順次に受信装置（２）に送信される場合の当該データの送信順序を前記受信装置（２）で特定するためのシーケンス情報列を前記受信装置（２）に送信することを特徴とする。
【００２５】
第４の本発明に係る受信装置の動作方法は、受信装置（２）が、複数のデータを逐次受信し、前記受信装置（２）が、前記データの送信順序を特定するためのシーケンス情報列を受信し、前記受信装置（２）が、前記シーケンス情報列に基づいて、前記送信順序を特定することを特徴とする。
【発明の効果】
【００２６】
本発明によれば、順次に送信される複数のデータを受信する受信側で送信順序を特定するための技術を提供することができる。
【図面の簡単な説明】
【００２７】
【図１】本実施の形態に係る送信装置および受信装置の利用形態を示す図である。
【図２】送信装置１の機能ブロック図である。
【図３】シーケンス情報列送信部１３の機能ブロック図である。
【図４】受信装置２の機能ブロック図である。
【図５】シーケンス情報の構成を示す図である。
【図６】シーケンス情報列の構成を示す図である。
【図７】送信装置１におけるシーケンス情報列の送信に関するフローチャートである。
【図８】ステップＳ１の詳細フローチャートである。
【図９】ハッシュ生成の方法の一例を示す図である。
【図１０】受信装置２の動作を示すフローチャートである。
【図１１】ステップＲ２１の具体例を示す図である。
【図１２】ハッシュ方式の説明図である。
【図１３】遅延ガードの説明図である。
【図１４】早着ガードの説明図である。
【図１５】多段ガードハッシュの説明図である。
【図１６】多段ガードハッシュの特に分割方式の説明図である。
【図１７】ＦＥＣ処理による回復結果の正当性確認の説明図である。
【図１８】重複対策の説明図である。
【発明を実施するための形態】
【００２８】
以下、本発明の実施の形態について図面を参照して説明する。
【００２９】
図１（ａ）に示すように、送信装置１（シーケンス情報列送信装置）、受信装置２が、通信網Ｎを介して、通信可能となっている。または、図１（ｂ）に示すように、送信装置１、送信装置１’（主ストリーム配信装置）、受信装置２が、通信網Ｎを介して、通信可能となっている。
【００３０】
図２（ａ）は、図１（ａ）のように、送信装置１’を使用しない場合の送信装置１の構成を示す。送信装置１は、（ｂ）の場合は外部から１ずつデータを受信するデータ受信部１０と、受信されたデータを受信順に１ずつ受信装置２に送信するデータ送信部１１とを備える。データ送信部１１は、データ列とデータ列の区切りを特定する情報などは送信せず、１つのデータ列を送信する際は、その中のデータを１ずつ送信するようになっている。したがって、データ送信部１１は、単にデータを１ずつ送信すると言ってもよい。
【００３１】
送信装置１は、図１（a）（ｂ）どちらの場合でも、欠落したデータを補完するための補完用データを受信装置２に送信する補完用データ送信部１２と、データ列におけるデータの送信順序を受信装置２において特定するためのシーケンス情報列を受信装置２に送信するシーケンス情報列送信部１３と、データを一時的に保持するデータバッファ１４とを備える。
【００３２】
図２（ｂ）は、図１（ｂ）のように、送信装置１’を使用する場合の送信装置１の構成を示す。この場合、送信装置１’が外部から受信したデータを送信装置１に送信するので、データ受信部１０は、このデータを受信する。また、図１（ｂ）の場合は、送信装置１’がデータを受信装置２に送信するので、データ送信部１１は不要となる。その他については、図２（ａ）の構成と同様である。
【００３３】
なお、以下では、便宜上、図１（ａ）、図２（ａ）の場合の説明を行う。
【００３４】
図３は、シーケンス情報列送信部１３の機能ブロック図である。
【００３５】
シーケンス情報列送信部１３は、シーケンス情報列を生成し、シーケンス情報を構成するハッシュ値を生成するシーケンス情報決定部１３１と、データXのシーケンス情報決定部１３１での処理の中で、ハッシュ値Xnが、送信予定のシーケンス情報のハッシュ値Bn(データBに対するハッシュ値)と一致した場合に、Bnを変更する出力予定ハッシュ値更新部１３３と、ハッシュ値Xnとして出力が決定した場合に、ハッシュ値Xk（k：n+1〜N）が送信前のシーケンス情報記憶部１３８に記憶された出力予定のハッシュ値と一致するか調べる出力予定ハッシュ値チェック部１３４と、シーケンス情報列を保持するシーケンス情報列記憶部１３５と、シーケンス情報列を多重化するシーケンス情報列多重化部１３６と、シーケンス情報列を受信装置２に送信するシーケンス情報列送信部１３７と、送信済みのシーケンス情報列を保持するシーケンス情報記憶部１３８とを備える。
【００３６】
図４は、受信装置２の機能ブロック図である。
【００３７】
受信装置２は、送信装置１からデータを受信するデータ受信部２１と、データを保持するデータバッファ２２と、データバッファ２２に保存されたデータから回復対象のデータを限定する回復対象データ限定部２３と、回復対象である各データからハッシュ値を生成するハッシュ値生成部２４と、シーケンス情報列に基づいてデータの送信順序を特定するデータ回復部２５と、回復されたデータ列を保持するデータ列記憶部２６と、多重化されたシーケンス情報列を受信し、元のシーケンス情報列に回復させるシーケンス情報列回復部２７と、回復したシーケンス情報列を保持するシーケンス情報列記憶部２８と、受信するまでに欠落したデータを補完用データに基づいて補完するデータ補完部２９と、回復されたデータ列の正常性を確認する正常性確認部３０と、回復完了したデータから重複するデータを検索し削除する重複データ削除部３１と、回復完了したデータ列を保持する回復完了データ列記憶部３２と、回復完了したデータ列を外部に出力する回復完了データ列出力部３３とを備える。
【００３８】
図５は、シーケンス情報の構成を示す図である。
【００３９】
シーケンス情報は、データに１対１で対応し、データから互いに異なる方法で生成されたハッシュ値のうちの１つならびに、そのハッシュ値の生成方法を示すフラグｆを含む。シーケンス情報は、例えば、第１の方法でハッシュ値ｈ１が生成され、第２の方法でハッシュ値ｈ２が生成された場合、例えば、一方のハッシュ値ｈ２と、ハッシュ値ｈ２の生成方法を示すフラグｆ「２」とを含む。なお、このようにハッシュ値の生成方法の数が２の場合、フラグｆ「３」を含むシーケンス情報にはハッシュ値は含まれない。また、ハッシュ値の生成方法を３以上としてもよい。この場合、その数に１を加算した値と同じ値のフラグｆを含むシーケンス情報にはハッシュ値は含まれない。
【００４０】
図６は、シーケンス情報列の構成を示す図である。
【００４１】
シーケンス情報列は、欠落のないデータ列内のデータ数と同数のシーケンス情報をデータの送信順に並べたものである。このデータ数（シーケンス情報数）をしきい値Ｎｍａｘという。
【００４２】
本実施の形態では、ハッシュ値生成方法の数を示すしきい値ｉｍａｘが、送信装置１に与えられ、例えば、受信装置２はしきい値ｉｍａｘを送信装置１から受信し、保持する。しきい値ｉｍａｘは送信装置１、受信装置２のそれぞれに与えてもよい。しきい値ｉｍａｘは送信装置１と受信装置１とで共通のしきい値である。
【００４３】
また、本実施の形態では、１つのシーケンス情報列を、送信開始して一定期間が経過するまでに送信終了することとなっており、その期間の長さを示す期間長Ｔが送信装置１に与えられる。
【００４４】
また、本実施の形態では、シーケンス情報列の多重化方法を示す多重化情報Ｄと多重数ＤＮが送信装置１に与えられ、例えば、受信装置２は多重化情報Ｄと多重数ＤＮを送信装置１から受信し、保持する。多重化情報Ｄと多重数ＤＮは送信装置１、受信装置２のそれぞれに与えてもよい。
【００４５】
さて、図２のデータ受信部１０は、外部から１ずつ受信したデータをデータバッファ１４に保持する。データ送信部１１は、データバッファ１４からデータを受信順に読み出し、読み出した順に受信装置２へ送信し、送信済みのデータは、送信済み用のデータバッファ（不図示）に移す。つまり、データ送信部１１は、１つのデータを送信し終えたら、次のデータを送信する。データは、例えば、パケットである。
【００４６】
図２の補完用データ送信部１２は、通信網Ｎにおけるデータの欠落を補完するための補完用データを生成し、受信装置２に送信する。補完用データは、パリティやデータの複製である。
【００４７】
図７は、送信装置１におけるシーケンス情報列の送信に関するフローチャートである。
【００４８】
シーケンス情報決定部１３１は、データバッファ１４において未だシーケンス情報を生成していないデータから、送信順が最先のデータを選択し、このデータのシーケンス情報を生成して、シーケンス情報列記憶部１３５に加える（Ｓ１）。こうして、シーケンス情報列記憶部１３５においてシーケンス情報列が形成されていく。
【００４９】
シーケンス情報列内のシーケンス情報の数がしきい値Ｎｍａｘに達していないなら（Ｓ３：ＮＯ）、ステップＳ１に戻る一方、シーケンス情報列多重化部１３６は、シーケンス情報列内のシーケンス情報の数がしきい値Ｎｍａｘに達し（Ｓ３：ＹＥＳ）、多重化情報Ｄが単純多重を示すものなら（Ｓ５：単純多重）、シーケンス情報列を分割し、多重数ＤＮと同数の複製を生成する（Ｓ７）。
【００５０】
シーケンス情報列多重化部１３６は、シーケンス情報列記憶部１３５内のシーケンス情報の数がしきい値Ｎｍａｘに達し（Ｓ３：ＹＥＳ）、多重化情報ＤがＦＥＣ多重を示すものなら（Ｓ５：ＦＥＣ多重）、シーケンス情報列を分割し、多重数ＤＮと同数のパリティを生成する（Ｓ９）。
【００５１】
なお、シーケンス情報列の分割前には、例えば、シーケンス情報内のフラグｆが「１」なら当該シーケンス情報からハッシュ値ｈ１のみを残し、フラグｆが「２」ならハッシュ値ｈ２のみを残し、フラグｆが「３」なら両方のハッシュ値ｈ１、ｈ２がシーケンス情報から削除される。
【００５２】
シーケンス情報列送信部１３７は、分割されたシーケンス情報列と複製または、分割されたシーケンス情報列とパリティを、期間長Ｔを有する期間に分散させて受信装置２に送信する（Ｓ１１）。分散して送信するのは、集中的に送信し、そのタイミングで通信異常などがあると、その殆どが失われる可能性があるからである。
【００５３】
なお、シーケンス情報記憶部１３８には、シーケンス情報列記憶部１３５に記憶されたシーケンス情報列（シーケンス情報はハッシュ値ｈ１、ｈ２およびフラグｆを含む）のうちの、フラグｆを除くハッシュ値のみ（例えばハッシュ値ｈ１、ｈ２）が移され、すなわち、シーケンス情報列記憶部１３５からは処理済みのシーケンス情報列が削除され、制御はステップＳ１に戻る。
【００５４】
図８は、ステップＳ１の詳細フローチャートである。
【００５５】
シーケンス情報決定部１３１は、しきい値ｉｍａｘの比較対象となる変数を１に初期化する（Ｓ１０１）。
【００５６】
次に、シーケンス情報決定部１３１は、対象のデータからしきい値ｉｍａｘと同数の方法（互いに異なる方法）でハッシュ値（例えば、ハッシュ値ｈ１、ｈ２）を生成する（Ｓ１０７）。
【００５７】
なお、このように、初回のステップＳ１０７で例えばハッシュ値ｈ１、ｈ２（しきい値ｉｍａｘと同数のハッシュ値）を生成し、Ｓ１０８で、ｉ＝１のときハッシュ値ｈ１、ｉ＝２のときハッシュ値ｈ２を使用するようにしてもよいし、Ｓ１０８で、ｉ＝１のときはハッシュ値ｈ１を生成し、ｉ＝２のときはハッシュ値ｈ２を生成してもよい。
【００５８】
シーケンス情報決定部１３１は、変数ｉがしきい値ｉｍａｘを超えたなら（Ｓ１０３：ｉ＞ｉｍａｘ）、ステップＳ１０７で生成したハッシュ値ならびに所定の無効値であるフラグｆを含むシーケンス情報を生成し（Ｓ１０５）、シーケンス情報をシーケンス情報列記憶部１３５（シーケンス情報列）に加え（Ｓ１０６）、処理を終える。
【００５９】
一方、シーケンス情報決定部１３１は、変数ｉがしきい値ｉｍａｘ以下なら（Ｓ１０３：ｉ≦ｉｍａｘ）、変数ｉに対応する生成方法によりステップＳ１０７で生成されたハッシュ値（対象ハッシュ値という。変数ｉが１の場合、対象ハッシュ値はハッシュ値ｈ１であり、変数ｉが２の場合、対象ハッシュ値はハッシュ値ｈ２である。）が、シーケンス情報列記憶部１３５に記憶された、変数ｉに対応する生成方法で生成されたハッシュ値（出力前ハッシュ値という）と、シーケンス情報記憶部１３８に記憶された、変数ｉに対応する生成方法で生成されたハッシュ値（出力済ハッシュ値という）のいずれかに一致し、且つ、一致したハッシュ値のデータ同士が異なっている（衝突という）か否かを判定する（Ｓ１０８）。
【００６０】
シーケンス情報決定部１３１は、出力済ハッシュ値に対する衝突があったなら（Ｓ１０９：出力済ハッシュ値）、変数ｉに１を加算し（Ｓ１１１）、ステップＳ１０３に戻る。
【００６１】
シーケンス情報決定部１３１は、出力前ハッシュ値に対する衝突があったなら（Ｓ１０９：出力前）、衝突した出力前ハッシュ値を含むシーケンス情報（以下、衝突出力前シーケンス情報）内のフラグｆが変数ｉに一致するか否かを判定する（Ｓ１１３）。一致しない場合は、ステップＳ１１１に進む。
【００６２】
一方、出力予定ハッシュ値更新部１３３は、一致した場合は（Ｓ１１３：ＹＥＳ）、変数ｊに変数ｉの値を代入する（Ｓ１１２）。
【００６３】
次に、出力予定ハッシュ値更新部１３３は、変数ｊがしきい値ｉｍａｘと同じなら（Ｓ１１５：ｊ＝ｉｍａｘ）、衝突出力前シーケンス情報のフラグｆを無効値で更新し（Ｓ１１７：無効化）、ステップＳ１１１に進む。
【００６４】
出力予定ハッシュ値更新部１３３は、変数ｊがしきい値ｉｍａｘ未満なら（Ｓ１１５：ｊ＜ｉｍａｘ）、変数ｊに１を加算し（Ｓ１３１）、対象ハッシュ値（変数ｊ対応する方法によりステップＳ１０７で生成されたハッシュ値）が、変数ｊに対応する方法で生成された出力前ハッシュ値かつフラグｆが変数ｊのハッシュ値、または、変数ｊに対応する方法で生成された出力済ハッシュ値のいずれかに衝突するか否かを判定する（Ｓ１３３）。
【００６５】
出力予定ハッシュ値更新部１３３は、衝突があった場合は、ステップＳ１１５に戻り、なかった場合は、衝突出力前シーケンス情報内のフラグｆを変数ｊの値で更新し（Ｓ１３５：ｆ←ｊ）、ステップＳ１１１に戻る。
【００６６】
出力予定ハッシュ値チェック部１３４は、ステップＳ１０８で衝突がなく（Ｓ１０８：なし）、且つ、変数ｉがしきい値ｉｍａｘと同じなら（Ｓ１４１：ｉ＝ｉｍａｘ）、ステップＳ１０７で生成した全てのハッシュ値（例えば、ハッシュ値ｈ１、ｈ２）ならびに変数ｉと同じ値のフラグｆを含むシーケンス情報をシーケンス情報列記憶部１３５（シーケンス情報列）に加え（Ｓ１４９）、処理を終える。
【００６７】
出力予定ハッシュ値チェック部１３４は、変数ｉがしきい値ｉｍａｘ未満なら（Ｓ１４１：ｉ＜ｉｍａｘ）、変数ｉに１を加算し（Ｓ１４３）、変数ｉに対応する方法によりＳ１０７で生成された対象ハッシュ値が、出力前ハッシュ値（当該出力前ハッシュ値を含むシーケンス情報内のフラグに対応する方法で生成されたハッシュ値）に衝突するか否かを判定する（Ｓ１４５）。
【００６８】
衝突がなかったならステップＳ１４１に戻り、あったなら、図において点線で囲んだ部分の処理を行い（Ｓ２００）、Ｓ１４１に戻る。
【００６９】
図９は、ハッシュ値生成の方法の一例を示す図である。
【００７０】
図９（ａ）に示すように、シーケンス情報決定部１３１は、対応するデータから１つのハッシュ値を生成（計算）し、これをしきい値ｉｍａｘに等しい分割数となるように分割する。フラグが無効値でない場合は、分割で得た各部分、例えば、ハッシュ値ｈ１、ｈ２のうちの１つがシーケンス情報に含まれる。
【００７１】
または、図９（ｂ）に示すように、シーケンス情報決定部１３１は、対応するデータから、しきい値ｉｍａｘに等しい数の各計算方法でハッシュ値、例えば、ハッシュ値ｈ１、ｈ２を計算する。フラグが無効値でない場合は、これらのうちの１つがシーケンス情報に含まれる。
【００７２】
なお、図は、しきい値ｉｍａｘが２の場合の例であり、しきい値ｉｍａｘが３以上の場合は、ハッシュ値ｈ１、ｈ２以外のハッシュ値も生成され、フラグが無効値でない場合は、そのうちの１つがシーケンス情報に含まれることとなる。
【００７３】
（変形例）
なお、図７、図８の動作では、送信前のシーケンス情報列において、各シーケンス情報内のハッシュ値が、そのシーケンス情報に対応するデータより先に送信される予定のデータに対応するシーケンス情報内のハッシュ値に衝突を防止する。このように、衝突を防止する方法として、例えば、各シーケンス情報内のハッシュ値が、そのシーケンス情報に対応するデータより後に送信される予定のデータに対応するシーケンス情報内のハッシュ値に衝突のを防止するようにしてもよい。
【００７４】
図１０は、受信装置２の動作を示すフローチャートである。
【００７５】
データ受信部２１は、送信装置１から通信網Ｎを介してデータを逐次受信し、データバッファ２２に保存する（Ｒ１）。なお、通信網Ｎにて欠落したデータは、当然ながらデータバッファ２２には保存されない。
【００７６】
回復対象データ限定部２３は、データバッファ２２に保存されたデータから回復対象のデータを限定する（Ｒ３）。具体的には、現在時刻から予め定められた時間遡った時刻以降に受信したデータを回復対象から除外し、その時刻から予め定められた時間遡った時刻以降に受信したデータを回復対象とする。なお、回復対象から除外することは、前述の送信装置１における変形例を適用した際に必要であり、そうでない場合は、除外を行わなくてよい。
【００７７】
次に、ハッシュ値生成部２４は、回復対象である各データからしきい値ｉｍａｘと同数の方法（互いに異なる方法）でハッシュ値を生成する（Ｒ５）。
【００７８】
これと並行して、シーケンス情報列回復部２７は、送信装置１から通信網Ｎを介して、分割されたシーケンス情報列とパリティまたは、分割されたシーケンス情報列と複製を逐次受信する（Ｒ１１）。シーケンス情報列回復部２７は、期間長Ｔと同じ時間が経過し、多重化情報Ｄが単純多重を示すものなら（Ｒ１５：単純多重）、分割されたシーケンス情報列で欠落したものを複製により回復し、結合することでシーケンス情報列を回復させ、シーケンス情報列記憶部２８に記憶させる（Ｒ１７）。
【００７９】
シーケンス情報列回復部２７は、多重化情報ＤがＦＥＣ多重を示すものなら（Ｒ１５：ＦＥＣ多重）、分割されたシーケンス情報列で欠落したものをパリティにより回復し、結合することでシーケンス情報列を回復させ、シーケンス情報列記憶部２８に記憶させる（Ｒ１９）。
【００８０】
データ回復部２５は、回復対象の各データにつき、当該データ（回復対象データという）からステップＲ５で生成されたしきい値ｉｍａｘと同数のハッシュ値（それぞれ対象ハッシュ値という）のいずれかに一致するハッシュ値をシーケンス情報列から検索し、該当のハッシュ値（シーケンス情報内一致ハッシュ値という）が存在し、且つ、シーケンス情報内一致ハッシュ値に一致した対象ハッシュ値（対象一致ハッシュ値という）を得た方法が、シーケンス情報内一致ハッシュ値を得た方法（シーケンス情報内一致ハッシュ値を含むシーケンス情報（一致シーケンス情報という）内のフラグに対応する方法）と同じであるなら、当該回復対象データの送信順序は、シーケンス情報列における一致シーケンス情報の順序に等しいとし、例えば、当該一致シーケンス情報に対し、当該回復対象データを示すデータ識別子を対応づける（Ｒ２１）。
【００８１】
図１１は、ステップＲ２１の具体例を示す図である。
【００８２】
ここでは、ステップＲ５で生成されたハッシュ値の集合をハッシュ値集合という。ハッシュ値集合において、同一データから生成された２つのハッシュ値をハッシュ値組という。ハッシュ値組の中で、シーケンス情報のハッシュ値ｈ１と同じ方法で生成されたものをハッシュ値Ｈ１、ハッシュ値ｈ２と同じ方法で生成されたものをハッシュ値Ｈ２という。また、ハッシュ値の値は、便宜的に１桁の１０進数で表現する。
【００８３】
図において番号（ＮＯ）「１」から「５」の各シーケンス情報は、無効値でないフラグｆを含むので、これらシーケンス情報内のハッシュ値は有効であり、一方、番号「６」のシーケンス情報は無効値であるフラグｆを含むので、このシーケンス情報内のハッシュ値は無効となっている。
【００８４】
最も早く受信したデータ１については、ハッシュ値Ｈ１「３」が、番号（ＮＯ）「１」のシーケンス情報におけるハッシュ値ｈ１「３」に一致し、他の番号のシーケンス情報は該当がないため、当該シーケンス情報に対し、データ１を示すデータ識別子（データＩＤ）を対応づける。
【００８５】
次に受信したデータ２については、ハッシュ値Ｈ１「６」、Ｈ２「２」とも、該当がないので、いずれのシーケンス情報に対してもデータＩＤを対応づけない。
【００８６】
次に受信したデータ３については、ハッシュ値Ｈ２「１」が、番号「３」のシーケンス情報におけるハッシュ値ｈ２「１」に一致し、番号「４」のシーケンス情報におけるハッシュ値ｈ２「１」に一致し、他の番号のシーケンス情報は該当がないため、各シーケンス情報に対し、データ３を示すデータＩＤを対応づける。
【００８７】
次に受信したデータ４については、ハッシュ値Ｈ１「５」が、番号「２」のシーケンス情報におけるハッシュ値ｈ１「５」に一致し、他の番号のシーケンス情報は該当がないため、当該シーケンス情報に対し、データ４を示すデータＩＤを対応づける。
【００８８】
次に受信したデータ５については、ハッシュ値Ｈ１「９」、Ｈ２「２」とも、該当がないので、いずれのシーケンス情報に対してもデータＩＤを対応づけない。
【００８９】
次に受信したデータ６については、ハッシュ値Ｈ２「１」が、番号「３」のシーケンス情報におけるハッシュ値ｈ２「１」に一致し、番号「４」のシーケンス情報におけるハッシュ値ｈ２「１」に一致し、他の番号のシーケンス情報は該当がないため、各シーケンス情報に対し、データ６を示すデータＩＤを対応づける。
【００９０】
次に、データ３とデータ６を比較し、両者が一致したなら、例えば、番号「３」のシーケンス情報に付与されたデータ６のデータＩＤを削除し、番号「４」のシーケンス情報に付与されたデータ３のデータＩＤを削除する。なお、番号「４」のシーケンス情報に付与されたデータ６のデータＩＤを削除し、番号「３」のシーケンス情報に付与されたデータ３のデータＩＤを削除してもよい。
【００９１】
なお、この例では、番号「５」のシーケンス情報内のフラグは「１」であり、つまり、無効値（しきい値ｉｍａｘに１を加えた値）でないが、検索で該当しなかったので、データＩＤを対応づけることができない。
【００９２】
一方、番号「６」のシーケンス情報については、フラグｆが無効値であるので、検索の対象外であり、よって、データＩＤを対応づけることができない。
【００９３】
このようなシーケンス情報については、後述のごとく、データ補完部２９によりデータ補完がなされる。
【００９４】
図１０に戻り、説明を続ける。
【００９５】
データ回復部２５は、シーケンス情報列の各シーケンス情報に対応づけたデータＩＤに対応するデータを、シーケンス情報列におけるシーケンス情報の順に並べたデータ列を生成し、データ列記憶部２６に記憶させる（Ｒ２３）。このデータ列においては、図１１の番号「５」、「６」のシーケンス情報のように、データＩＤが対応づけられないシーケンス情報に対応する箇所については、データが欠落している。
【００９６】
次に、データ補完部２９は、データ列（データ列記憶部２６）において欠落しているデータを、受信した補完用データに基づいて、補完する（Ｒ２５）。
【００９７】
次に、ハッシュ値生成部２４は、補完された各データにつき、対応するシーケンス情報内のフラグに対応する方法でハッシュ値を生成する（Ｒ２７）。
【００９８】
次に、正常性確認部３０は、補完された各データにつき、対応するシーケンス情報内のハッシュ値と、ステップＲ２７で当該データについて生成されたハッシュ値とが一致するか否かを判定し、一致しないなら、データ列から当該データを削除する（Ｒ２９）。
【００９９】
なお、正常性確認部３０は、削除するデータを含むデータ列を削除してもよい。データを削除するかデータ列を削除するかは、パラメータとして受信装置２に与え、正常性確認部３０は、パラメータに応じた処理を行えばよい。
【０１００】
次に、重複データ削除部３１が、ステップＲ２５で補完されたデータがあるなら、当該各データにつき、回復完了データ列記憶部３２に記憶されたいずれかのデータに一致するか否かを判定し、一致したなら、回復完了データ列記憶部３２の当該一致したデータを削除する（Ｒ３１）。
【０１０１】
例えば、回復完了データ列記憶部３２において判定対象となるデータは、受信時刻の早すぎるデータなどを除外すべく、時間やデータ数やデータ列数で限定してもよい。
【０１０２】
次に、データ列は、データ列記憶部２６から回復完了データ列記憶部３２に移され（Ｒ３３）、制御はステップＲ１、Ｒ１１に戻る。
【０１０３】
図４の回復完了データ列出力部３３は、例えば、外部からの指示により、回復完了データ列記憶部３２から全てまたは指示された区間のデータ（回復完了データ列）を読み出し、出力する。
【０１０４】
図１２以降は、本実施の形態での課題の解決方法を示す。
【０１０５】
図１２は、ハッシュ方式の説明図である。
【０１０６】
通常、データ列内のデータ位置を特定するために、ヘッダに含まれるシーケンス番号等のデータを特定する情報をデータの送信側と受信側で共通的に利用する。
【０１０７】
ハッシュ値方式では、データからハッシュ値を計算する方法を、送信側と受信側で共有する。送信側で、データからハッシュ値を計算し、データ列とシーケンス情報列を作成し、受信側に送信する。受信側では、データ列とシーケンス情報列を受信し、データから計算したハッシュ値を、シーケンス情報列のハッシュ値から特定し、データの位置を特定する。
【０１０８】
このようなデータ位置の特定は、データ回復部２５がステップＲ２１で行う処理により実現される。
【０１０９】
図１３は、遅延ガードの説明図である。
【０１１０】
ハッシュ値方式では、ハッシュ値の特性上、データをより情報量の少ないハッシュ値に写像するため、内容の異なるデータから、同一のハッシュ値が算出される場合がある。その為、通信網のゆらぎ等による遅延により、本来のデータよりも遅れて到着した異なるデータが、異なるデータ列に入り、本来とは誤った位置に特定されることがある。
【０１１１】
これに対処するため、送信側で、一定期間のデータとハッシュ値のリスト（遅延ガード）を保持しておき、内容の異なるデータから、同一のハッシュ値が算出された（衝突）場合には、同ハッシュ値を送信しないようにする。それにより、過去のデータが誤ったデータ列やデータ列内で誤った位置に特定されることを防ぐことができる。
【０１１２】
遅延ガードは、図８のステップＳ１０８において、出力済ハッシュ値に対する衝突あるか否かを判定する処理などにより実現される。
【０１１３】
図１４は、早着ガードの説明図である。
【０１１４】
ハッシュ値方式では、データをより情報量の少ないハッシュ値に写像するため、内容の異なるデータから、同一のハッシュ値が算出される場合がある。 その為、通信網のゆらぎ等により、本来のデータよりも、早着した異なるデータが、誤ったデータ列内に入り、誤った位置に特定されることがある。
【０１１５】
これに対処するため、送信側で、一定期間のデータとハッシュ値のリスト（早着ガード）を保持しておき、内容の異なるデータから、同一のハッシュ値が算出された（衝突）場合には、同ハッシュ値を送信しないようにする。また、受信側で、受信データを到着順の末尾から一定期間（Ｔｆ=Ｔｓ＋ＮＷ（ネットワーク）ゆらぎ）分を、シーケンス情報列による位置特定対象から除外する。それにより、未来のデータが誤ったデータ列やデータ列内で誤った位置に特定されることを防ぐことができる。
【０１１６】
例えば、送信側でシーケンス情報列（1〜4）送信にかける時間をＴｓとし、Ｔｓ=Ｔｂ（データ列分のバッファリング時間）である場合、受信側で、シーケンス情報列（1〜4）受信時には、データ9〜12も受信している可能性がある。
【０１１７】
ここでは、シーケンス情報列送信にかける時間（Ｔｓ）がデータ列１つ分のバッファリング時間（Ｔｓ）と一致することを前提としておいている。シーケンス情報列の送信にかける時間が０であれば、ＴｆはＮＷ揺らぎ時間に一致する。
【０１１８】
早着ガードは、送信側においては変形例を適用することで実現され、受信側においては回復対象データ限定部２３が現在時刻から予め定められた時間遡った時刻以降に受信したデータを回復対象から除外することにより実現される。
【０１１９】
図１５は、多段ガードハッシュ値の説明図である。
【０１２０】
ハッシュ値の衝突を防ぐには、情報量のより多いハッシュ値を使用する必要がある。しかし、情報量のより多いハッシュ値を使用すると、必要なデータ量が多くなり、データ送受信コストが高くなる。
【０１２１】
これに対処するため、情報量の少ないハッシュ値計算方法を、あらかじめ定めた手順で複数使用し、衝突した場合には、別の計算方法を利用することで、情報量のより少ないハッシュ値で、情報量のより多いハッシュ値を使用した場合と同様の確率でハッシュ値の衝突を防ぐ。
【０１２２】
多段ガードハッシュ値は、図８のステップＳ１０８において、出力前ハッシュ値や出力済ハッシュ値に対する衝突があるか否かを判定する処理などにより実現される。
【０１２３】
図１６は、多段ガードハッシュ値の特に分割方式の説明図である。
【０１２４】
データに対して、所定のハッシュ値関数でハッシュ値（例えば128bit）を生成し、これをしきい値ｉｍａｘに等しい分割数（例えば、２）で分割し、一方のハッシュ値ｈ１（先頭64bit）、他方のハッシュ値ｈ２(後方64bit）を作成する。ハッシュ値ｈ１と衝突した場合には、ハッシュ値ｈ２と比較し、衝突しなかった場合には、ハッシュ値ｈ２を使用する。
【０１２５】
受信側でも、受信したデータに対して、所定のハッシュ値関数でハッシュ値（例えば128bit）を生成し、これをしきい値ｉｍａｘに等しい分割数（例えば、２）で分割し、ハッシュ値Ｈ１（先頭64bit）、ハッシュ値Ｈ２（後方64bit）を作成する。
【０１２６】
ハッシュ値Ｈ１、Ｈ２のいずれかに一致するハッシュ値ｈ１、ｈ２をシーケンス情報列から検索し、一致したハッシュ値の生成方法が同じなら、データの送信順序は、該当シーケンス情報の順序に等しいこととする。
【０１２７】
多段ガードハッシュ値（分割方式）は、図９（ａ）に示すような、対応するデータから１つのハッシュ値を計算し、これをしきい値ｉｍａｘに等しい分割数となるように分割し、分割で得た各部分、例えば、ハッシュ値ｈ１、ｈ２をシーケンス情報に含めること、ならびに、図８のＳ１０８において、出力前ハッシュ値や出力済ハッシュ値に対する衝突があるか否かを判定する処理などにより実現される。
【０１２８】
図１７は、ＦＥＣ処理による回復結果の正当性確認の説明図である。
【０１２９】
ＦＥＣ処理とハッシュ値方式を組み合わせた場合、ハッシュ値が衝突し、データが、誤ったデータ列や、データ列で誤った位置に特定された場合、同一データ列内に損失データがあり、誤ったデータがＦＥＣ処理により回復するデータに使用された場合、回復するデータは不正になる。不正なデータは、それを利用するアプリケーションの挙動に影響を与える。
【０１３０】
これに対処するため、回復したデータに対して、ハッシュ値計算を行い、シーケンス情報列の中で対応するハッシュ値と比較、同一値の場合、正当に回復したデータとして採用し、同一値でない場合、不正に回復したデータとして破棄する。
【０１３１】
ＦＥＣ処理による回復結果の正当性確認は、図１０のステップＲ２９において、各データにつき、対応するシーケンス情報内のハッシュ値ｈ１と、Ｒ２７で生成したハッシュ値とが一致するか否かを判定し、一致しないなら、データ列から当該データを削除することで実現される。
【０１３２】
図１８は、重複対策の説明図である。
【０１３３】
同図では、シーケンス情報列Ａ、Ｂは、異なるデータ（データ８、３）から得られたものだが同一のハッシュ値（ハッシュ値８）を含む。例えば、データ８が本来よりも早く到着し、データ３が伝送中にロスした場合を想定する。
【０１３４】
この場合、シーケンス情報列Ａにより、データ８は誤って特定され、つまり、データ２の次に送信されたと特定される。
【０１３５】
一方、ロスしたデータ８は、シーケンス情報列Ｂによっては特定できず、データ列からは欠損しているが、データ補完部による処理で復元される。
【０１３６】
よって、復元されたデータは、誤って位置特定されたデータと重複してしまう。
【０１３７】
これに対処するため、誤って前のデータ列に位置特定され、本来のデータ列で回復された早着データを検出・除去し、重複を防ぐ。例えば、回復データが発生するたびに、生成済みのデータ列と比較し、一致したデータを削除する。
【０１３８】
重複対策は、図１０のステップＲ３１において、ステップＲ２５で補完されたデータがあるなら、当該各データにつき、回復完了データ列記憶部３２に記憶されたいずれかのデータに一致するか否かを判定し、一致したなら、回復完了データ列記憶部３２の当該一致したデータを削除することで実現される。
【０１３９】
以上のように、本実施の形態によれば、順次に送信される複数のデータを受信する受信側で送信順序を特定するための技術を提供することができる。
【０１４０】
具体的には、以下の通りである。
【０１４１】
送信装置（１）は、複数のデータが順次に受信装置（２）に送信される場合の当該データの送信順序を前記受信装置（２）で特定するためのシーケンス情報列を前記受信装置（２）に送信する手段（１３）を備える。
【０１４２】
例えば、前記シーケンス情報列は、前記各データに対応するシーケンス情報を含み、前記シーケンス情報列におけるシーケンス情報の順序は、前記送信順序に一致しており、前記シーケンス情報は、当該シーケンス情報に対応するデータの送信順序を特定するための情報（有効なハッシュ値）と、当該有効なハッシュ値の生成方法を示すフラグ（ｆ）とを含む。
【０１４３】
例えば、前記送信装置（１）は、前記シーケンス情報を生成する手段（１３１）と、送信済みの前記ハッシュ値を記憶する手段（１３８）を備え、前記シーケンス情報を生成する手段（１３１）は、前記記憶されたハッシュ値に衝突するハッシュ値が有効なものとして当該シーケンス情報に含まれるのを防止する。
【０１４４】
例えば、前記送信装置（１）は、前記シーケンス情報を生成する手段（１３１）と、後から送信されるデータに対応する前記ハッシュ値を記憶する手段（１３５）を備え、前記シーケンス情報を生成する手段（１３１）は、前記記憶されたハッシュ値に衝突するハッシュ値が有効なものとして当該シーケンス情報に含まれるのを防止する。
【０１４５】
例えば、図９（ａ）に示すように、前記シーケンス情報に含まれるハッシュ値は、対応するデータから生成されたハッシュ値を分割して得られる複数の部分のうちの１つである。
【０１４６】
例えば、図９（ｂ）に示すように、前記シーケンス情報に含まれるハッシュ値は、対応するデータから別々の計算方法で計算されたハッシュ値のうちの１つである。
【０１４７】
一方、受信装置（２）は、複数のデータを逐次受信する手段（２１）と、前記データの送信順序を特定するためのシーケンス情報列を受信する手段（２７）と、前記シーケンス情報列に基づいて、前記送信順序を特定する手段（２５）とを備える。
【０１４８】
例えば、前記シーケンス情報列は、前記各データに対応するシーケンス情報を含み、前記シーケンス情報列におけるシーケンス情報の順序は、前記送信順序に一致しており、前記シーケンス情報は、当該シーケンス情報に対応するデータの送信順序を特定するための情報（有効なハッシュ値）と、当該有効なハッシュ値の生成方法を示すフラグ（ｆ）とを含む。
【０１４９】
例えば、前記受信装置（２）は、受信したデータから複数の生成方法でハッシュ値を生成する手段（２４）を備え、前記送信順序を特定する手段（２５）は、前記シーケンス情報列内のハッシュ値と、当該ハッシュ値を含むシーケンス情報内のフラグに対応する方法で前記ハッシュ値を生成する手段（２４）により生成された前記ハッシュ値とが一致するなら、当該データの送信順序は、当該シーケンス情報列における当該シーケンス情報の順序に等しいとする。
【０１５０】
例えば、前記受信装置（２）は、現在時刻から予め定められた時間遡った時刻以降に受信したデータを前記送信順序を特定する対象から除外する手段（２３）を備える。
【０１５１】
例えば、前記受信装置（２）は、受信までの間のデータの欠落を補完するための補完用データを受信し、受信されたデータを前記特定された送信順序の順に並べたデータ列にデータの欠落がある場合、前記補完用データに基づいて、当該欠落を補完する手段（２９）と、前記補完されたデータと該データを含むデータ列よりも送信順が前のデータ列に含まれるデータとが一致するなら、当該送信順が前の当該データ列に含まれる当該データを削除する手段（３１）とを備える。
【０１５２】
例えば、前記受信装置（２）は、受信までの間のデータの欠落を補完するための補完用データを受信し、受信されたデータを前記特定された送信順序の順に並べたデータ列にデータの欠落がある場合、前記補完用データに基づいて、当該欠落を補完する手段（２９）と、補完されたデータに対応するシーケンス情報内のハッシュ値と、当該シーケンス情報内のフラグに対応する方法で前記ハッシュ値を生成する手段（２４）により生成されたハッシュ値とが一致しないなら、当該データ列から当該データを削除する手段（３０）とを備える。なお、削除する手段（３０）は、削除するデータを含むデータ列を削除してもよい。
【０１５３】
また、本実施の形態の送信装置や受信装置としてコンピュータを機能させるためのコンピュータプログラムは、半導体メモリ、磁気ディスク、光ディスク、光磁気ディスク、磁気テープなどのコンピュータ読み取り可能な記録媒体に記録でき、また、インターネットなどの通信網を介して伝送させて、広く流通させることができる。
【符号の説明】
【０１５４】
１、１’…送信装置
２…受信装置
１０…データ受信部
１１…データ送信部
１２…補完用データ送信部
１３…シーケンス情報列送信部
１４…データバッファ
２１…データ受信部
２２…データバッファ
２３…回復対象データ限定部
２４…ハッシュ値生成部
２５…データ回復部
２６…データ列記憶部
２７…シーケンス情報列回復部
２８…シーケンス情報列記憶部
２９…データ補完部
３０…正常性確認部
３１…重複データ削除部
３２…回復完了データ列記憶部
３３…回復完了データ列出力部
１３１…シーケンス情報決定部
１３３…出力予定ハッシュ値更新部
１３４…出力予定ハッシュ値チェック部
１３５…シーケンス情報列記憶部
１３６…シーケンス情報列多重化部
１３７…シーケンス情報列送信部
１３８…シーケンス情報記憶部
Ｄ…多重化情報
ＤＮ…多重数
Ｈ１、Ｈ２、ｈ１、ｈ２…ハッシュ値
Ｎｍａｘ、ｉｍａｘ…しきい値
Ｔ…期間長
ｆ…フラグ
ｉ…変数
【図１】
0005938086.tif 000002
【図２】
0005938086.tif 000003
【図３】
0005938086.tif 000004
【図４】
0005938086.tif 000005
【図５】
0005938086.tif 000006
【図６】
0005938086.tif 000007
【図７】
0005938086.tif 000008
【図８】
0005938086.tif 000009
【図９】
0005938086.tif 000010
【図１０】
0005938086.tif 000011
【図１１】
0005938086.tif 000012
【図１２】
0005938086.tif 000013
【図１３】
0005938086.tif 000014
【図１４】
0005938086.tif 000015
【図１５】
0005938086.tif 000016
【図１６】
0005938086.tif 000017
【図１７】
0005938086.tif 000018
【図１８】
0005938086.tif 000019