(57)【特許請求の範囲】
【請求項１】
複数のパケットそれぞれに含まれるデータの順番を定義するシーケンス番号を含むパケットを、ネットワークを介して通信し、通信中に欠損したパケットを再送するパケット再送方式において、
複数のパケットを送信する送信装置と、上記送信装置から送信された上記複数のパケットを受信する受信装置とを備え、
上記送信装置は、
データの重要度を示す複数の優先度を定義し、定義した複数の優先度を用いて優先度情報を生成し、生成した優先度情報をパケットへ付加する優先度情報付加部と、
上記優先度情報付加部により優先度情報が付加された複数のパケットをネットワークを介して送信する送信部と、
上記送信部から上記複数のパケットを送信した後、上記受信装置からパケットの再送を要求する再送要求を受信し、受信した再送要求が再送を要求するパケットを再送する再送部と
を備え、
上記優先度情報付加部は、
複数の優先度それぞれに対して重要度を設定する優先度設定部と、
上記優先度設定部で設定した上記複数の優先度を格納する優先度メモリと、
上記優先度メモリに格納された上記複数の優先度と上記パケットに含まれるシーケンス番号とを用いて優先度情報を生成する優先度情報算出部と
を備え、
上記受信装置は、
ネットワークを介して上記送信装置から送信される複数のパケットを受信する受信部と、
上記受信部で受信した複数のパケットを入力し、入力した複数のパケットそれぞれから、複数のシーケンス番号と複数の優先度情報とを抽出し、抽出した複数のシーケンス番号に基づいて欠損したパケットを判定し、上記欠損したと判定されたパケットの内、抽出した複数の優先度情報に基づいて重要度の高いパケットを検出し、検出したパケットを再送することを要求する再送要求を上記送信装置へ送信する再送要求部と
を備えることを特徴とするパケット再送方式。
【請求項２】
複数のパケットそれぞれに含まれるデータの順番を定義するシーケンス番号を含むパケットを、ネットワークを介して送信する送信装置において、
データの重要度を示す複数の優先度を定義し、定義した複数の優先度を用いて優先度情報を生成し、生成した優先度情報をパケットへ付加する優先度情報付加部と、
上記優先度情報付加部により優先度情報が付加されたパケットをネットワークを介して送信する送信部と
を備え、
上記優先度情報付加部は、
複数の優先度それぞれに対して重要度を設定する優先度設定部と、
上記優先度設定部で設定した上記複数の優先度を格納する優先度メモリと、
上記優先度メモリに格納された上記複数の優先度と上記パケットに含まれるシーケンス番号とを用いて優先度情報を生成する優先度情報算出部と
を備えることを特徴とする送信装置。
【請求項３】
上記優先度設定部は、上記複数の優先度を階層化して順位をつけて定義し、
上記優先度情報算出部は、上記順位の高い優先度を優先して使用して優先度情報を算出することを特徴とする請求項２記載の送信装置。
【請求項４】
上記優先度設定部は、上記複数の優先度の内、順位の高い優先度から順番に優先度を選択し、選択した優先度について、パケットに含まれるデータの重要度を判断し、重要度が高いパケットであると判断した場合は、上記選択した優先度の値を１加算して上記選択した優先度の値を設定することを特徴とする請求項３記載の送信装置。
【請求項５】
上記優先度情報算出部は、所定の値と上記パケットに含まれるシーケンス番号との積に、上記パケットに対応する上記複数の優先度のいずれかの値を加算した結果を用いて優先度情報を生成することを特徴とする請求項４記載の送信装置。
【請求項６】
上記優先度情報算出部は、任意のパケットについて、上記複数の優先度の数をＰＨ、上記複数の優先度の値をＰＬ（ＰＨ）、カウンタをＮ、上記任意のパケットに含まれるシーケンス番号をＳＮとし、上記複数の優先度それぞれについて算出する優先度情報の値をＰＬＤ（ＰＨ）とした場合、ＰＬＤ（０）をＰＬ（０）とし、０＜Ｎ＜ＰＨの値をとるＮそれぞれについて、ＰＬＤ（Ｎ）＝所定の値×ＳＮ＋ＰＬ（Ｎ）を算出し、Ｎ＝ＰＨ−１のときのＰＬＤ（ＰＨ−１）を上記任意のパケットの優先度情報とし、上記複数のパケットそれぞれについて、ＰＬＤ（ＰＨ−１）を算出して優先度情報を取得して、複数の優先度情報を算出することを特徴とする請求項５記載の送信装置。
【請求項７】
上記優先度情報算出部は、上記所定の値として、ＰＬＤ（Ｎ−１）の値を用いることを特徴とする請求項６記載の送信装置。
【請求項８】
上記優先度情報算出部は、上記所定の値として、ＰＬＤ（Ｎ−１）とＰＬ（Ｎ）との差分の絶対値（｜ＰＬＤ（Ｎ−１）−ＰＬ（Ｎ）｜）と、ＳＮとＰＬＤ（Ｎ−１）との差分の絶対値（｜ＳＮ−ＰＬＤ（Ｎ−１）｜）と、ＳＮとＰＬ（Ｎ）との差分の絶対値（｜ＳＮ−ＰＬ（Ｎ）｜）とのいずれかの値を用いることを特徴とする請求項６記載の送信装置。
【請求項９】
上記優先度情報算出部は、｜ＰＬＤ（Ｎ−１）−ＰＬ（Ｎ）｜と｜ＳＮ−ＰＬＤ（Ｎ−１）｜と｜ＳＮ−ＰＬ（Ｎ）｜との３つの値の内、最小の値をＱとし、上記３つの値のどの値をＱとしたかを識別する識別子をＰＱとし、Ｑ＝｜Ｘ−Ｙ｜としたときＸとＹの大小を識別する識別子をＰＤとし、
Ｑ＝｜ＰＬＤ（Ｎ−１）−ＰＬ（Ｎ）｜、かつ、ＰＬＤ（Ｎ−１）≧ＰＬ（Ｎ）のときはＰＱ＝ＴＹＰＥ１、ＰＤ＝０、Ｒ＝ＰＬ（Ｎ）とし、
Ｑ＝｜ＰＬＤ（Ｎ−１）−ＰＬ（Ｎ）｜、かつ、ＰＬＤ（Ｎ−１）＜ＰＬ（Ｎ）のときはＰＱ＝ＴＹＰＥ１、ＰＤ＝１、Ｒ＝ＰＬＤ（Ｎ−１）とし、
Ｑ＝｜ＳＮ−ＰＬＤ（Ｎ−１）｜、かつ、ＳＮ≧ＰＬＤ（Ｎ−１）のときはＰＱ＝ＴＹＰＥ２、ＰＤ＝０、Ｒ＝ＰＬ（Ｎ）とし、
Ｑ＝｜ＳＮ−ＰＬＤ（Ｎ−１）｜、かつ、ＳＮ＜ＰＬＤ（Ｎ−１）のときＰＱ＝ＴＹＰＥ２、ＰＤ＝１とし、
Ｑ＝｜ＳＮ−ＰＬ（Ｎ）｜のときはＰＱ＝ＴＹＰＥ３、ＰＤ＝０、Ｒ＝ＰＬＤ（Ｎ−１）として、ＰＬＤ（ＰＨ−１）を算出し、
上記優先度情報付加部は、ＰＬＤ（ＰＨ−１）とＰＱとＰＤを優先度情報としてパケットへ付加することを特徴とする請求項８記載の送信装置。
【請求項１０】
上記送信装置は、さらに、上記送信部から上記複数のパケットを送信した後、パケットの再送を要求する再送要求パケットを受信し、受信した再送要求パケットが再送を要求するパケットを検索し、検索したパケットを再送する再送部を備えることを特徴とする請求項２記載の送信装置。
【請求項１１】
複数のパケットそれぞれに含まれるデータの順番を定義するシーケンス番号と、上記データの重要度を示す複数の優先度に基づいて生成された優先度情報とを、パケットに含む複数のパケットを、ネットワークを介して受信する受信部と、
上記受信部で受信した複数のパケットを入力し、入力した複数のパケットそれぞれから、複数のシーケンス番号と複数の優先度情報とを抽出し、抽出した複数のシーケンス番号に基づいて欠損したパケットを判定し、上記欠損したと判定されたパケットの内、上記複数の優先度情報に基づいて重要度の高いパケットを検出し、検出したパケットを再送することを要求する再送要求を送信する再送要求部と
を備え、
上記再送要求部は、上記複数の優先度情報に含まれる複数の優先度それぞれが示す重要度を用いて、重要度の高いパケットを検出し、
上記再送要求部は、
上記抽出した複数のシーケンス番号と複数の優先度情報とを格納するパケット情報メモリと、
上記パケット情報メモリに格納された上記シーケンス番号と上記優先度情報とから複数の優先度の値を算出する優先度算出部と、
上記複数のシーケンス番号に基づいて欠損したパケットを判定し、上記優先度算出部が算出した複数の優先度の値に基づいて、重要度の高いパケットが欠損しているかを検出する欠損パケット検出部と
を備えることを特徴とする受信装置。
【請求項１２】
上記優先度算出部は、上記優先度情報を上記シーケンス番号で割ることにより、商と余りを算出し、上記算出した商と余りとを用いて、上記複数の優先度の値を算出することを特徴とする請求項１１記載の受信装置。
【請求項１３】
上記優先度算出部は、任意のパケットについて、上記優先度情報をＰＬＤ、上記任意のパケットに含まれるシーケンス番号をＳＮとし、上記複数の優先度の数をＰＨ、上記複数の優先度の値をＰＬ（ＰＨ）、カウンタをＮとした場合、０≦Ｎ＜ＰＨの値をとるＮの初期値をＮ＝ＰＨ−１として、ＰＬＤ／ＳＮの余りをＰＬ（Ｎ）、ＰＬＤ／ＳＮの商をＰＬＤへ代入し、Ｎを１減算する計算をＮが０になるまで繰り返し、Ｎ＝０のときのＰＬＤの値をＰＬ（０）として上記複数の優先度の値を算出し、上記複数のパケットそれぞれについて、ＰＬ（ＰＨ）を算出して、上記複数のパケットそれぞれに対応する複数の優先度の値を算出し、
上記欠損パケット検出部は、上記受信した複数のパケットそれぞれに対応するＰＬ（Ｎ）の中の最大値と上記任意のパケットのＰＬ（Ｎ）との値の差から、ＰＬ（Ｎ）で示される優先度のパケットが欠損しているかを判定し、欠損していた場合は、欠損したパケットのＰＬ（Ｎ）を検出することを特徴とする請求項１２記載の受信装置。
【請求項１４】
上記優先度情報は、任意のパケットそれぞれについて、複数の優先度から生成された優先度データと、上記優先度データを生成するときに利用したデータのタイプを示す識別子と、上記識別子の値の大小を示すフラグとを含み、
上記優先度情報算出部は、任意のパケットについて、上記優先度データをＰＬＤ、上記識別子をＰＱ、上記フラグをＰＤとし、優先度の数をＰＨ、上記複数の優先度の値をＰＬ（ＰＨ）、カウンタをＮとした場合、０≦Ｎ＜ＰＨの値をとるＮの初期値をＮ＝ＰＨ−１とし、上記識別子ＰＱのタイプとして、ＴＹＰＥ１とＴＹＰＥ２とＴＹＰＥ３とを定義し、上記フラグＰＤの値を０または１のいずれかの値であることを定義し、ＰＬＤをＳＮで割ったときの商をＱ、余りをＲとして、
ＰＱ＝ＴＹＰＥ１、かつ、ＰＤ＝０のときはＰＬ（Ｎ）＝ＲとしてＱ＋ＲをＰＬＤに代入し、
ＰＱ＝ＴＹＰＥ１、かつ、ＰＤ＝１のときはＰＬ（Ｎ）＝Ｑ＋ＲとしてＲをＰＬＤに代入し、
ＰＱ＝ＴＹＰＥ２、ＰＤ＝０のときはＰＬ（Ｎ）＝ＲとしてＳＮ−ＱをＰＬＤに代入し、
ＰＱ＝ＴＹＰＥ２、ＰＤ＝１のときはＰＬ（Ｎ）＝ＲとしてＱ＋ＳＮをＰＬＤに代入し、
ＰＱ＝ＴＹＰＥ３のときはＰＬ（Ｎ）＝ＳＮ−ＱとしてＲをＰＬＤに代入し、
上記計算式をＮ＝ＰＨ−１からＮ＝１までＮを１ずつ減算して繰り返して計算し、Ｎ＝１のときのＰＬＤをＰＬ（０）とすることによって、ＰＬ（０）からＰＬ（ＰＨ−１）のＰＬを算出し、
上記欠損パケット検出部は、上記受信部が受信した複数のパケットの内、パケットのＰＬ（Ｎ）の最大値と任意のパケットのＰＬ（Ｎ）の差から、優先度Ｎにおいて重要なパケットが欠損したか否かを判定し、欠損していた場合は欠損したパケットのＰＬ（Ｎ）を検出することを特徴とする請求項１２記載の受信装置。
【請求項１５】
上記再送要求部は、さらに、複数の優先度の内、特定の優先度を選定する再送要求選定部を備え、
上記欠損パケット検出部は、上記再送要求選定部が選定した特定の優先度に基づいてパケットの欠損を検出することを特徴とする請求項１１記載の受信装置。
【請求項１６】
複数のパケットそれぞれに含まれるデータの順番を定義するシーケンス番号を含むパケットを、送信側から受信側へネットワークを介して通信し、通信中に欠損したパケットを再送するパケット再送方法において、
送信側では、
データの重要度を示す複数の優先度を定義し、
定義した複数の優先度を格納し、
格納した複数の優先度とパケットに含まれるシーケンス番号とを用いて優先度情報を生成し、
生成した優先度情報をパケットへ付加し、
上記優先度情報が付加された複数のパケットをネットワークを介して受信側へ送信し、
受信側では、
ネットワークを介して、上記複数のパケットを受信し、
受信した複数のパケットそれぞれから、複数のシーケンス番号と複数の優先度情報とを抽出し、
抽出した複数のシーケンス番号に基づいて欠損したパケットを判定し、
上記欠損したと判定されたパケットの内、抽出した複数の優先度情報に基づいて重要度の高いパケットを検出し、
検出したパケットを再送することを要求する再送要求を上記送信側へ送信することを特徴とするパケット再送方法。
【請求項１７】
複数のパケットそれぞれに含まれるデータの順番を定義するシーケンス番号を含むパケットを、ネットワークを介して送信するパケット送信方法において、
データの重要度を示す複数の優先度を定義し、
定義した複数の優先度を用いて優先度情報を生成し、
生成した優先度情報をパケットへ付加し、
上記優先度情報を付加したパケットをネットワークを介して送信し、
上記優先度を定義する工程は、
上記複数の優先度を階層化して順位をつけて定義し、
上記複数の優先度の内、順位の高い優先度から順番に優先度を選択し、
選択した優先度に関してパケットの重要度を判断し、
重要度が高いパケットであると判断した場合は、上記選択した優先度の値を１加算し、
上記優先度情報を生成する工程は、
所定の値と上記パケットに含まれるシーケンス番号との積に、上記パケットに対応する上記複数の優先度のいずれかの値を加算した結果を用いて優先度情報を生成することを特徴とするパケット送信方法。
【請求項１８】
上記優先度を定義する工程は、複数のパケットそれぞれについて複数の優先度の値を設定することを繰り返して上記複数のパケットそれぞれに対応する上記複数の優先度の値を設定し、
上記優先度情報を生成する工程は、上記複数のパケットそれぞれについて、上記優先度の情報を生成することを繰り返して、複数のパケットそれぞれに対応する優先度情報を生成することを特徴とする請求項１７記載のパケット送信方法。
【請求項１９】
複数のパケットそれぞれに含まれるデータの順番を定義するシーケンス番号と、上記複数のパケットそれぞれに格納されるデータの重要度を示す複数の優先度に基づいて生成された優先度情報とを、パケットに含む複数のパケットを、ネットワークを介して受信し、
受信した複数のパケットそれぞれから、複数のシーケンス番号と複数の優先度情報とを抽出し、
抽出した複数のシーケンス番号に基づいて欠損したパケットを判定し、
上記欠損したと判定されたパケットの内、抽出した複数の優先度情報に基づいて重要度の高いパケットを検出し、
検出したパケットを再送することを要求する再送要求を送信することを特徴とするパケット受信方法。
【発明の詳細な説明】
技術分野
本発明は、複数の優先度を持つデータ、例えば、マルチメディアデータを配信するサーバとクライアントにおいて、パケットの欠損時に複数の優先度に従って再送要求を行う方式及び方法に関する。
背景技術
一般に、ネットワーク上を流れるパケットは、ネットワーク上に備えられたノード（ルータ）のオーバーフローや、無線空間でのビット誤りなどから、欠損してしまうことが多々ある。このとき、受信側から欠損したパケットの再送要求を行い、再送要求を受け取った送信側が欠損したパケットを再送する方法が考えられる。
例えば、ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）プロトコルでは、受信側は受信できた確認としてＡＣＫパケットを送信側へ送っている。上記ＡＣＫパケットが送信側に返ってこない場合、送信側は受信側でパケットを受信していないと判断し、再送を行う。このように、ＴＣＰプロトコルは、信頼性の高い転送プロトコルである。
しかし、マルチメディアのストリーミング配信では、データのダウンロードとは異なり、必ずしも全てのデータが届かなくても再生できる。従って、受信側は、パケット欠損時には重要なデータパケットのみを再送要求したり、送信側は、重要なデータパケットのみを再送したりすることが考えられる。重要なパケットのみを再送することで帯域（帯域幅）の有効利用を行うことができる。また、受信側は、必要ないデータパケットの再送を待つこともないので、リアルタイム性もより高くなる。
これらの目的で考えられた再送制御方式として、特開平９−２１４５０７と特開平１１−２８４６５７がある。
特開平９−２１４５０７の再送方式は、可能な限り品質を保証した形でリアルタイム通信が行える無線通信方法を用いている。この無線通信方法は、パケット欠損時には数回再送を試み、それでも届かない場合は、優先度が低いパケットを破棄して再送を行う。
特開平１１−２８４６５７の再送方式は、輻輳時に優先度の低い通信のパケットを抑制するコネクション確立型通信の再送制御方式である。この再送制御方式は、各コネクションに再送できる回数を設定し、再送を行ったときに再送できる回数を１減らし、再送できる回数が０になったら、そのコネクションの通信を停止させ、優先度の高い帯域をできるだけ確保する。
また、ストリーミング配信のようなリアルタイム性の高いデータ伝送プロトコルとして、ＲＴＰ（Ｒｅａｌ−Ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）は、ＲＦＣ（Ｒｅｑｕｅｓｔ  Ｆｏｒ  Ｃｏｍｍｅｎｔｓ）１８８９をはじめとするインターネット関連標準化規格となっている。ＲＴＰは、シーケンス番号やタイムスタンプが付加されたパケット通信のプロトコルであり、ＲＴＰの再送方式も幾つか提案されている。
まず、ＲＴＰの再送機能拡張案として、「ＲＴＰ  Ｐａｙｌｏａｄ  Ｔｙｐｅ  Ｆｏｒｍａｔ  ｔｏ  Ｅｎａｂｌｅ  Ｍｕｌｔｉｐｌｅ  Ｓｅｌｅｃｔｉｖｅ  Ｒｅｔｒａｎｓｍｉｓｓｉｏｎｓ」というタイトルのＩＥＴＦ（Ｉｎｔｅｒｎｅｔ  Ｅｎｇｉｎｅｅｒｉｎｇ  Ｔａｓｋ  Ｆｏｒｃｅ）へ提出されたインターネットドラフト（ｄｒａｆｔ−ｍｉｙａｚａｋｉ−ａｖｔ−ｒｔｐ−ｓｅｌｒｅｔ−０１．ｔｘｔ）がある。このインターネットドラフトの再送機能拡張案では、ＲＴＰのシーケンス番号とは別途に再送すべき重要なパケットのみに割り与えられる第２のシーケンス番号（ＳＳＮ：Ｓｅｃｏｎｄ  Ｓｅｑｕｅｎｃｅ  Ｎｕｍｂｅｒ）がある。このＳＳＮを利用することによって、受信側は再送すべき重要なパケットの識別することができ、パケットが欠損した場合でも重要なパケットのみを再送要求することができる。このインターネットドラフトでは、送信側から受信側へ転送されるＲＴＰパケットのＲＴＰヘッダは、図１６（２０１）に示すような構成となっている。図１７（２０２）には、受信側から送信側へ転送される再送要求用のＲＴＣＰ（Ｒｅａｌ−Ｔｉｍｅ  Ｃｏｎｔｒａｌ  Ｐｒｏｔｏｃｏｌ）パケットを示している。図１６（２０１）に示すＲＴＰヘッダは、ＲＦＣ１８８９のＲＴＰヘッダを４バイト拡張し、そこにＳＳＮフィールドを設けている。ＳＳＮは、ＲＴＰのシーケンス番号とは異なり、零を初期値とし、再送すべき重要なパケットであるときのみ１加算する。また、ＳはＳＳＮＩｎｄｉｃａｔｏｒであり、ＳＳＮが１加算されたことを示している。
また、図１８は、受信側が図１６（２０１）のＲＴＰヘッダに含まれるＳＳＮに基づいて、再送を要求するパケットを特定する過程を示している。図１８に一例として示すように、ＲＴＰのシーケンス番号は、１パケット毎に１加算されていくのに対し（３０１）、ＳＳＮは重要なパケット毎に１加算されていく（３０２）。また、Ｓによって、ＳＳＮが１加算されたタイミングを検出することができる。即ち、ＳＳＮは、ＳＳＮを１加算したパケットは重要であり、欠損したときは再送が必要となるパケットであることを示している。
例えば、受信側がＲＴＰのシーケンス番号が１０の次にＲＴＰのシーケンス番号が１５のパケットを受信したとする。つまり、ＲＴＰのシーケンス番号の１１から１４までのパケットが欠損したことになる。このとき、ＲＴＰのシーケンス番号１０のパケットのＳＳＮは３で、ＲＴＰのシーケンス番号１５のＳＳＮは６であり、ＳＳＮが３から６まで不連続に増加しているため、ＳＳＮが４，５の２つの再送すべき重要なパケットが欠損したことがすぐに分かる。また、ＲＴＰのシーケンス番号１５のパケットは、ＲＴＰヘッダのＳビット（３０３）より再送すべき重要なパケットではないことが分かるため、ＳＳＮが６の重要なパケットも欠損したことが分かる。従って、受信側は、再送要求として送信側に再送してほしいＳＳＮの値、即ち、４，５，６という数値を送信する。送信側は、ＳＳＮが４，５，６の中でＲＴＰヘッダのＳビットが１である再送すべき重要なパケットを受信側へ再送する。
このように、ＴＣＰプロトコルの再送では、再送パケットを待つため再送に時間を費やしたり、ＡＣＫパケットの超過や再送パケットの増加が帯域を圧迫し、輻輳を引き起こしたりする。受信側は、再送パケットを待ったり、何度も再送要求を行うことになり、無駄な再送処理を行っていることになる。
また、ＲＴＰの再送方式の「ＲＴＰ  Ｐａｙｌｏａｄ  Ｔｙｐｅ  Ｆｏｒｍａｔ  ｔｏ  Ｅｎａｂｌｅ  Ｍｕｌｔｉｐｌｅ  Ｓｅｌｅｃｔｉｖｅ  Ｒｅｔｒａｎｓｍｉｓｓｉｏｎｓ」インターネットドラフトでは、１つの優先度を設けた場合の再送方式であり、複数の優先度を設ける場合は、複数のＳＳＮが必要となり、ＲＴＰヘッダの長さも長くなってしまう。即ち、図１８の例では、１つのＲＴＰシーケンス番号に対して、ＳＳＮとＳとの組み合わせが増えることになってしまう。
発明の開示
この発明に係るパケット再送方式は、複数のパケットそれぞれ含まれるデータの順番を定義するシーケンス番号を含むパケットを、ネットワークを介して通信し、通信中に欠損したパケットを再送するパケット再送方式において、
複数のパケットを送信する送信装置と、上記送信装置から送信された上記複数のパケットを受信する受信装置とを備え、
上記送信装置は、
データの重要度を示す複数の優先度を定義し、定義した複数の優先度を用いて優先度情報を生成し、生成した優先度情報をパケットへ付加する優先度情報付加部と、
上記優先度情報付加部により優先度情報が付加された複数のパケットをネットワークを介して送信する送信部と、
上記送信部から上記複数のパケットを送信した後、上記受信装置からパケットの再送を要求する再送要求を受信し、受信した再送要求が再送を要求するパケットを再送する再送部と
を備え、
上記受信装置は、
ネットワークを介して上記送信装置から送信される複数のパケットを受信する受信部と、
上記受信部で受信した複数のパケットを入力し、入力した複数のパケットそれぞれから、複数のシーケンス番号と複数の優先度情報とを抽出し、抽出した複数のシーケンス番号に基づいて欠損したパケットを判定し、上記欠損したと判定されたパケットの内、抽出した複数の優先度情報に基づいて重要度の高いパケットを検出し、検出したパケットを再送することを要求する再送要求を上記送信装置へ送信する再送要求部と
を備えることを特徴とする。
この発明に係る送信装置は、複数のパケットそれぞれ含まれるデータの順番を定義するシーケンス番号を含むパケットを、ネットーワークを介して送信する送信装置において、
データの重要度を示す複数の優先度を定義し、定義した複数の優先度を用いて優先度情報を生成し、生成した優先度情報をパケットへ付加する優先度情報付加部と、
上記優先度情報付加部により優先度情報が付加されたパケットをネットワークを介して送信する送信部と
を備えることを特徴とする。
上記優先度情報付加部は、
複数の優先度それぞれに対して重要度を設定する優先度設定部と、
上記優先度設定部で設定した上記複数の優先度を格納する優先度メモリと、
上記優先度メモリに格納された上記複数の優先度と上記パケットに含まれるシーケンス番号とを用いて優先度情報を生成する優先度情報算出部と
を備えることを特徴とする。
上記優先度設定部は、上記複数の優先度を階層化して順位をつけて定義し、
上記優先度情報算出部は、上記順位の高い優先度を優先して使用して優先度情報を算出することを特徴とする。
上記優先度設定部は、上記複数の優先度の内、順位の高い優先度から順番に優先度を選択し、選択した優先度について、パケットに含まれるデータの重要度を判断し、重要度が高いパケットであると判断した場合は、上記選択した優先度の値を１加算して上記選択した優先度の値を設定することを特徴とする。
上記優先度情報算出部は、所定の値と上記パケットに含まれるシーケンス番号との積に、上記パケットに対応する上記複数の優先度のいずれかの値を加算した結果を用いて優先度情報を生成することを特徴とする。
上記優先度情報算出部は、任意のパケットについて、上記複数の優先度の数をＰＨ、上記複数の優先度の値をＰＬ（ＰＨ）、カウンタをＮ、上記任意のパケットに含まれるシーケンス番号をＳＮとし、上記複数の優先度それぞれについて算出する優先度情報の値をＰＬＤ（ＰＨ）とした場合、ＰＬＤ（０）をＰＬ（０）とし、０＜Ｎ＜ＰＨの値をとるＮそれぞれについて、ＰＬＤ（Ｎ）＝所定の値×ＳＮ＋ＰＬ（Ｎ）を算出し、Ｎ＝ＰＨ−１のときのＰＬＤ（ＰＨ−１）を上記任意のパケットの優先度情報とし、上記複数のパケットそれぞれについて、ＰＬＤ（ＰＨ−１）を算出して優先度情報を取得して、複数の優先度情報を算出することを特徴とする。
上記優先度情報算出部は、上記所定の値として、ＰＬＤ（Ｎ−１）の値を用いることを特徴とする。
上記優先度情報算出部は、上記所定の値として、ＰＬＤ（Ｎ−１）とＰＬ（Ｎ）との差分の絶対値（｜ＰＬＤ（Ｎ−１）−ＰＬ（Ｎ）｜）と、ＳＮとＰＬＤ（Ｎ−１）との差分の絶対値（｜ＳＮ−ＰＬＤ（Ｎ−１）｜）と、ＳＮとＰＬ（Ｎ）との差分の絶対値（｜ＳＮ−ＰＬ（Ｎ）｜）とのいずれかの値を用いることを特徴とする。
上記優先度情報算出部は、｜ＰＬＤ（Ｎ−１）−ＰＬ（Ｎ）｜と｜ＳＮ−ＰＬＤ（Ｎ−１）｜と｜ＳＮ−ＰＬ（Ｎ）｜との３つの値の内、最小な値をＱとし、上記３つの値のどの値をＱとしたかを識別する識別子をＰＱとし、Ｑ＝｜Ｘ−Ｙ｜としたときＸとＹの大小を識別する識別子をＰＤとし、
Ｑ＝｜ＰＬＤ（Ｎ−１）−ＰＬ（Ｎ）｜、かつ、ＰＬＤ（Ｎ−１）≧ＰＬ（Ｎ）のときはＰＱ＝ＴＹＰＥ１、ＰＤ＝０、Ｒ＝ＰＬ（Ｎ）とし、
Ｑ＝｜ＰＬＤ（Ｎ−１）−ＰＬ（Ｎ）｜、かつ、ＰＬＤ（Ｎ−１）＜ＰＬ（Ｎ）のときはＰＱ＝ＴＹＰＥ１、ＰＤ＝１、Ｒ＝ＰＬＤ（Ｎ−１）とし、
Ｑ＝｜ＳＮ−ＰＬＤ（Ｎ−１）｜、かつ、ＳＮ≧ＰＬＤ（Ｎ−１）のときはＰＱ＝ＴＹＰＥ２、ＰＤ＝０、Ｒ＝ＰＬ（Ｎ）とし、
Ｑ＝｜ＳＮ−ＰＬＤ（Ｎ−１）｜、かつ、ＳＮ＜ＰＬＤ（Ｎ−１）のときＰＱ＝ＴＹＰＥ２、ＰＤ＝１とし、
Ｑ＝｜ＳＮ−ＰＬ（Ｎ）｜のときはＰＱ＝ＴＹＰＥ３、ＰＤ＝０、Ｒ＝ＰＬＤ（Ｎ−１）として、ＰＬＤ（ＰＨ−１）を算出し、
上記優先度情報付加部は、ＰＬＤ（ＰＨ−１）とＰＱとＰＤを優先度情報としてパケットへ付加することを特徴とする。
上記送信装置は、さらに、上記送信部から上記複数のパケットを送信した後、パケットの再送を要求する再送要求パケットを受信し、受信した再送要求パケットが再送を要求するパケットを検索し、検索したパケットを再送する再送部を備えることを特徴とする。
この発明に係る受信装置は、複数のパケットそれぞれ含まれるデータの順番を定義するシーケンス番号と、上記データの重要度を示す複数の優先度に基づいて生成された優先度情報とを、パケットに含む複数のパケットを、ネットワークを介して受信する受信部と、
上記受信部で受信した複数のパケットを入力し、入力した複数のパケットそれぞれから、複数のシーケンス番号と複数の優先度情報とを抽出し、抽出した複数のシーケンス番号に基づいて欠損したパケットを判定し、上記欠損したと判定されたパケットの内、上記複数の優先度情報に基づいて重要度の高いパケットを検出し、検出したパケットを再送することを要求する再送要求を送信する再送要求部と
を備えることを特徴とする。
上記再送要求部は、上記複数の優先度情報に含まれる複数の優先度それぞれが示す重要度を用いて、重要度の高いパケットを検出することを特徴とする。
上記再送要求部は、
上記抽出した複数のシーケンス番号と複数の優先度情報とを格納するパケット情報メモリと、
上記パケット情報メモリに格納された上記シーケンス番号と上記優先度情報とから複数の優先度の値を算出する優先度算出部と、
上記複数のシーケンス番号に基づいて欠損したパケットを判定し、上記優先度算出部が算出した複数の優先度の値に基づいて、重要度の高いパケットが欠損しているかを検出する欠損パケット検出部と
を備えることを特徴とする。
上記優先度算出部は、上記優先度情報を上記シーケンス番号で割ることにより、商と余りを算出し、上記算出した商と余りとを用いて、上記複数の優先度の値を算出することを特徴とする。
上記優先度算出部は、任意のパケットについて、上記優先度情報をＰＬＤ、上記任意のパケットに含まれるシーケンス番号をＳＮとし、上記複数の優先度の数をＰＨ、上記複数の優先度の値をＰＬ（ＰＨ）、カウンタをＮとした場合、０≦Ｎ＜ＰＨの値をとるＮの初期値をＮ＝ＰＨ−１として、ＰＬＤ／ＳＮの余りをＰＬ（Ｎ）、ＰＬＤ／ＳＮの商をＰＬＤへ代入し、Ｎを１減算する計算をＮが０になるまで繰り返し、Ｎ＝０のときのＰＬＤの値をＰＬ（０）として上記複数の優先度の値を算出し、上記複数のパケットそれぞれについて、ＰＬ（ＰＨ）を算出して、上記複数のパケットそれぞれに対応する複数の優先度の値を算出し、
上記欠損パケット検出部は、上記受信した複数のパケットそれぞれに対応するＰＬ（Ｎ）の中の最大値と上記任意のパケットのＰＬ（Ｎ）との値の差から、ＰＬ（Ｎ）で示される優先度のパケットが欠損しているかを判定し、欠損していた場合は、欠損したパケットのＰＬ（Ｎ）を検出することを特徴とする。
上記優先度情報は、任意のパケットそれぞれについて、複数の優先度から生成された優先度データと、上記優先度データを生成するときに利用したデータのタイプを示す識別子と、上記識別子の値の大小を示すフラグとを含み、
上記優先度情報算出部は、任意のパケットについて、上記優先度データをＰＬＤ、上記識別子をＰＱ、上記フラグをＰＤとし、優先度の数をＰＨ、上記複数の優先度の値をＰＬ（ＰＨ）、カウンタをＮとした場合、０≦Ｎ＜ＰＨの値をとるＮの初期値をＮ＝ＰＨ−１とし、上記識別子ＰＱのタイプとして、ＴＹＰＥ１とＴＹＰＥ２とＴＹＰＥ３とを定義し、上記フラグＰＤの値を０または１のいずれかの値であることを定義し、ＰＬＤをＳＮで割ったときの商をＱ、余りをＲとして、
ＰＱ＝ＴＹＰＥ１、かつ、ＰＤ＝０のときはＰＬ（Ｎ）＝ＲとしてＱ＋ＲをＰＬＤに代入し、
ＰＱ＝ＴＹＰＥ１、かつ、ＰＤ＝１のときはＰＬ（Ｎ）＝Ｑ＋ＲとしてＲをＰＬＤに代入し、
ＰＱ＝ＴＹＰＥ２、ＰＤ＝０のときはＰＬ（Ｎ）＝ＲとしてＳＮ−ＱをＰＬＤに代入し、
ＰＱ＝ＴＹＰＥ２、ＰＤ＝１のときはＰＬ（Ｎ）＝ＲとしてＱ＋ＳＮをＰＬＤに代入し、
ＰＱ＝ＴＹＰＥ３のときはＰＬ（Ｎ）＝ＳＮ−ＱとしてＲをＰＬＤに代入し、
上記計算式をＮ＝ＰＨ−１からＮ＝１までＮを１ずつ減算して繰り返して計算し、Ｎ＝１のときのＰＬＤをＰＬ（０）とすることによって、ＰＬ（０）からＰＬ（ＰＨ−１）のＰＬを算出し、
上記欠損パケット検出部は、上記受信部が受信した複数のパケットの内、パケットのＰＬ（Ｎ）の最大値と任意のパケットのＰＬ（Ｎ）の差から、優先度Ｎにおいて重要なパケットが欠損したか否かを判定し、欠損していた場合は欠損したパケットのＰＬ（Ｎ）を検出することを特徴とする。
上記再送要求部は、さらに、複数の優先度の内、特定の優先度を選定する再送要求選定部を備え、
上記欠損パケット検出部は、上記再送要求選定部が選定した特定の優先度に基づいてパケットの欠損を検出することを特徴とする。
この発明に係るパケット再送方法は、複数のパケットそれぞれ含まれるデータの順番を定義するシーケンス番号を含むパケットを、送信側から受信側へネットワークを介して通信し、通信中に欠損したパケットを再送するパケット再送方法において、
送信側では、
データの重要度を示す複数の優先度を定義し、
定義した複数の優先度を用いて優先度情報を生成し、
生成した優先度情報をパケットへ付加し、
複数のパケットそれぞれについて、上記優先度情報を生成し、上記優先度情報を上記複数のパケットそれぞれへ付加することを繰り返し、
上記優先情報が付加された複数のパケットをネットワークを介して受信側へ送信し、
受信側では、
ネットワークを介して、上記複数のパケットを受信し、
受信した複数のパケットそれぞれから、複数のシーケンス番号と複数の優先度情報とを抽出し、
抽出した複数のシーケンスに基づいて欠損したパケットを判定し、
上記欠損したと判定されたパケットの内、抽出した複数の優先度情報に基づいて重要度の高いパケットを検出し、
検出したパケットを再送することを要求する再送要求を上記送信側へ送信することを特徴とする。
この発明に係るパケット送信方法は、複数のパケットそれぞれ含まれるデータの順番を定義するシーケンス番号を含むパケットを、ネットーワークを介して送信するパケット送信方法において、
データの重要度を示す複数の優先度を定義し、
定義した複数の優先度を用いて優先度情報を生成し、
生成した優先度情報をパケットへ付加し、
上記優先度情報を付加したパケットをネットワークを介して送信することを特徴とする。
上記優先度を定義する工程は、
上記複数の優先度を階層化して順位をつけて定義し、
上記複数の優先度の内、順位の高い優先度から順番に優先度を選択し、
選択した優先度に関してパケットの重要度を判断し、
重要度が高いパケットであると判断した場合は、上記選択した優先度の値を１加算し、
上記優先度情報を生成する工程は、
所定の値と上記パケットに含まれるシーケンス番号との積に、上記パケットに対応する上記複数の優先度のいずれかの値を加算した結果を用いて優先度情報を生成することを特徴とする。
上記優先度を定義する工程は、複数のパケットそれぞれについて複数の優先度の値を設定することを繰り返して上記複数のパケットそれぞれに対応する上記複数の優先度の値を設定し、
上記優先度情報を生成する工程は、上記複数のパケットそれぞれについて、上記優先度の情報を生成することを繰り返して、複数のパケットそれぞれに対応する優先度情報を生成することを特徴とする。
この発明に係るパケット受信方法は、複数のパケットそれぞれ含まれるデータの順番を定義するシーケンス番号と、上記複数のパケットそれぞれ格納されるデータの重要度を示す複数の優先度に基づいて生成された優先度情報とを、パケットに含む複数のパケットを、ネットワークを介して受信し、
受信した複数のパケットそれぞれから、複数のシーケンス番号と複数の優先度情報とを抽出し、
抽出した複数のシーケンス番号に基づいて欠損したパケットを判定し、
上記欠損したと判定されたパケットの内、抽出した複数の優先度情報に基づいて重要度の高いパケットを検出し、
検出したパケットを再送することを要求する再送要求を送信することを特徴とする。
発明を実施するための最良の形態
図１は、この発明に係るパケット再送方式の構成の一例を示した図である。
この明細書内において、パケットは、シーケンス番号を含むパケットを対象とする。また、以下の実施の形態では、シーケンス番号を含むパケットとして、ＲＴＰパケットを一例として説明する。しかしながら、ＲＴＰパケットに限られることなく、シーケンス番号を含むパケットであれば、この発明に係るパケット再送方式を適用することができる。また、パケットは、パケットヘッダを含み、パケットヘッダが上記パケットに含まれるデータの配列順番を定義するシーケンス番号を含むものでもよい。
以下の説明では、パケットヘッダを含む場合を一例として説明する。
また、以下の説明において、優先度とは、任意のパケットに含まれるデータの重要度を示す値であり、このパケット再送方式では、任意のパケットについて複数の優先度を設定する。複数の優先度は、階層化され、複数の優先度の中で優先順位が付けられる。また、優先度情報とは、上記複数の優先度に基づいて生成されるパケットの優先度を示す情報である。優先度情報は、送信側で複数の優先度に基づいて生成される。また、受信側は、上記優先度情報を受信し、受信した優先度情報を用いて、パケットの複数の優先度を算出する。
以下に、図１に一例として示したパケット再送方式の構成を説明する。
図１のパケット再送方式は、送信装置１１０とネットワーク１２０と受信装置１３０とを含む構成となっている。
ネットワーク１２０は、無線・有線を問わず、パケットを通信することができる通信網であれば構わない。
送信装置１１０は、送信部１１１と送信データメモリ１１２と優先度情報付加部１１３と再送部１１９とを含む。
送信部１１１は、パケットを指定された時刻に送信する。
送信データメモリ１１２は、送信部１１１で送信する複数のパケットを格納する。
優先度情報付加部１１３は、複数の優先度を定義する。また、優先度情報付加部１１３は、定義した複数の優先度それぞれの重要度を設定し、上記複数の優先度を用いて優先度情報を生成し、生成した優先度情報をパケットに含まれるパケットヘッダに付加する。優先度情報付加部１１３は、重要度を設定し、優先度情報を生成し、優先度情報をパケットヘッダに付加することを送信する複数のパケットそれぞれについて行う。
再送部１１９は、送信装置１１０から上記複数のパケットを送信した後、パケットの再送を要求する再送要求パケットを受信し、受信した再送要求パケットに含まれる再送を要求するパケットを検索し、検索したパケットを再送する。
また、上記優先度情報付加部１１３は、優先度設定部１１４と優先度情報算出部１１５と優先度情報付加処理部１１６と設定優先度メモリ１１７と優先度情報メモリ１１８とを含む。
優先度設定部１１４は、上記複数の優先度それぞれの重要度（優先度の値）を設定する。
設定優先度メモリ１１７は、優先度設定部１１４が設定した上記複数の優先度を格納する。
優先度情報算出部１１５は、設定優先度メモリ１１７に格納された上記複数の優先度と上記パケットヘッダに含まれるシーケンス番号とを用いて優先度情報を生成する。
優先度情報メモリ１１８は、優先度情報算出部１１５で生成した優先度情報を格納する。
優先度情報付加処理部１１６は、優先度情報算出部１１５が生成し、優先度情報メモリ１１８に格納された優先度情報をパケットに含まれるパケットヘッダに付加する。
なお、設定優先度メモリ１１７は、優先度設定部１１４内の記憶領域を使用し、優先度設定部１１４が設定した複数の優先度を直接優先度情報算出部１１５に出力してもよい。また、上記優先度情報メモリ１１８は、優先度情報算出部１１５内の記憶領域を使用し、優先度情報算出部１１５内の記憶領域を使用し、優先度情報算出部１１５が生成した優先度情報を直接優先度情報付加処理部１１６に出力してもよい。また、設定優先度メモリ１１７と優先度情報メモリ１１８とは、１つのメモリによって実現してもよい。
次に、受信装置１３０について説明する。
受信装置１３０は、受信部１３１と受信データメモリ１３２と再送要求部１３３とを含む。
受信部１３１は、ネットワーク１２０を介して送信装置１１０から送信される複数のパケットを受信する。
受信データメモリ１３２は、受信部１３１で受信したパケットを格納する。
再送要求部１３３は、受信部１３１で受信した複数のパケットを入力し、入力した複数のパケットそれぞれに含まれるパケットヘッダから、複数のシーケンス番号と複数の優先度情報とを抽出し、抽出した複数のシーケンス番号に基づいて欠損したパケットを判定し、上記欠損したパケットの内、複数の優先度情報に基づいて重要度の高いパケットを検出し、検出したパケットを再送することを要求する。
再送要求部１３３は、パケット情報抽出部１３４と優先度算出部１３５と欠損パケット検出部１３６と再送要求選定部１３７とパケット情報メモリ１３８と算出優先度メモリ１３９と再送要求リストメモリ１４０と再送パケット送信部１４１とを含む。
パケット情報抽出部１３４は、受信部１３１で受信し、受信データメモリ１３２に格納された複数のパケットを読み込み、読み込んだ複数のパケットそれぞれに含まれるパケットヘッダから、複数のシーケンス番号と複数の優先度情報とを抽出する。
パケット情報メモリ１３８は、パケット情報抽出部１３４が抽出した複数のシーケンス番号と複数の優先度情報とを格納する。
優先度算出部１３５は、パケット情報メモリ１３８に格納された上記シーケンス番号と上記優先度情報とから複数の優先度を算出する。
算出優先度メモリ１３９は、優先度算出部１３５が算出した複数の優先度を格納する。
欠損パケット検出部１３６は、優先度算出部１３５が算出し、算出優先度メモリ１３９に格納された複数の優先度情報を読み込み、上記複数のシーケンス番号に基づいて欠損したパケットを検出し、上記優先度算出部が算出した複数の優先度に基づいて、複数の優先度それぞれについて、重要度の高いパケットが欠損しているかを判断し、重要度の高いパケットの欠損を検出する。また、欠損パケット検出部１３６は、検出したパケットを、再送を要求する再送要求パケットとして再送要求リストを生成する。
再送要求選定部１３７は、複数の優先度の内、特定の優先度を選定し、選定した優先度を上記欠損パケット検出部１３６に通知する。
再送要求リストメモリ１４０は、上記欠損パケット検出部１３６が生成した再送要求リストを格納する。
再送パケット送信部１４１は、再送要求リストメモリ１４０に格納された再送要求リストに基づいて、送信装置１１０へ再送要求パケットを送信する。
なお、算出優先度メモリ１３９は、優先度算出部１３５内の記憶領域を使用し、優先度算出部１３５が算出した複数の優先度を直接欠損パケット検出部１３６に出力してもよい。パケット情報メモリ１３８と、算出優先度メモリ１３９と再送要求リストメモリ１４０とは、１つのメモリであっても、複数のメモリから構成されていてもよい。
まず、複数の優先度を有するパケット再送方式において、ＲＴＰのシーケンス番号と優先度の構成の一例を図２を用いて説明する。
図２において、４０２は優先度情報メモリ１１８へ、４０３〜４０７は設定優先度メモリ１１７へ格納されるものである。
優先度の数を優先度階層（ＰＨ）とする。任意の優先度階層（ＰＨ）の優先度を優先度Ｎとし、優先度Ｎのシーケンス番号（重要度を示す値）をＰＬ（Ｎ）とする。Ｎの範囲は０≦Ｎ≦ＰＨ−１であり、Ｎが小さければ小さいほどその優先度は高くなる。上記の設定は、優先度設定部１１４によって設定される。
例えば、ＰＬ（０）で識別した再送すべき重要なパケットは、他のＰＬ（１）〜ＰＬ（ＰＨ−１）で識別した再送すべき重要なパケットよりも優先度が高い。
また、各パケットのＲＴＰのシーケンス番号（第１シーケンス番号）をＳＮ、優先度情報に含まれる優先度データをＰＬＤとする。複数のパケットそれぞれは、パケットｉ（ｉ＝０，１，２，・・・，ｋ，・・・）と表す。また、ｉ番目のパケットのＰＬＤとＰＬ（Ｎ）とＳＮをそれぞれＰＬＤｉ、ＰＬｉ（Ｎ）、ＳＮｉとする。
ＰＬ（Ｎ）は、従来の技術の「ＲＴＰ  Ｐａｙｌｏａｄ  Ｔｙｐｅ  Ｆｏｒｍａｔ  ｔｏ  Ｅｎａｂｌｅ  Ｍｕｌｔｉｐｌｅ  Ｓｅｌｅｃｔｉｖｅ  Ｒｅｔｒａｎｓｍｉｓｓｉｏｎｓ」インターネットドラフトで定義された第２シーケンス番号ＳＳＮが複数存在する場合と同様である。ＰＬ（Ｎ）は、優先度Ｎにおいて再送すべき重要なパケット毎に１加算するシーケンス番号であり、優先度Ｎの重要度を示す値である。再送すべき重要なパケットとは、送信側から受信側へ転送されたパケットに欠損が生じた場合に、再度転送する必要があるパケットである。従って、受信側で現在受信したＲＴＰパケットのＰＬ（Ｎ）が前回受信したパケットのＰＬ（Ｎ）より１増えていたら、現在受信したパケットは優先度Ｎにおいて再送すべき重要なパケットであると識別できる。
また、本発明に係るパケットの再送方式では、ＲＴＰに複数の優先度を設ける場合（即ち、ＰＨ＞１）でも、送信側は、従来の方式のように、Ｎ個のＰＬをパケットヘッダに付加するのではなく、１つのＰＬＤをパケットヘッダに付加するだけで、受信側もその付加された１つのＰＬＤから複数の優先度の値（重要度）（ＰＬ）が認識でき、ネットワークの状況に最適な優先度Ｎ（優先度の階層）だけの再送要求を行う。例えば、ネットワークの状況が悪い場合は、再送に必要な帯域をできるだけ小さくしたいため、全ての優先度（０≦Ｎ≦ＰＨ−１）に対して再送要求を行うのではなく、より優先度の高いＮ＝０，１，２，・・・，Ｐ＿Ｌｅｖｅｌ（Ｐ＿Ｌｅｖｅｌ＜ＰＨ−１）の（Ｐ＿Ｌｅｖｅｌ−１）個の優先度に対してのみ再送要求を行う。また、全ての優先度を利用するとき、Ｐ＿ＬｅｖｅｌはＰＨ−１である。
また、複数の優先度に同時に再送すべき重要なパケットは存在しないとする。つまり、ＰＬｉ（Ｎ）のパケットが再送すべき重要なパケットであるとき（即ち、ＰＬｉ（Ｎ）がＰＬｉ−１（Ｎ）より１増加するとき）、Ｎより大きい優先度には再送すべき重要なパケットは存在しない。
図３の上段は、設定優先度メモリ１１７に格納される複数の優先度と、再送パケットの検出工程の一例を示している。例えば、図３のシーケンス番号６のパケットは優先度０でＰＬ（０）が３から４に１増加しており、優先度０においてシーケンス番号６のパケットは再送すべき重要なことを意味している。このとき、優先度１ではＰＬ（１）が増加することはない。つまり、優先度１では再送すべき重要なパケットではない。また、あるパケットがある優先度Ｎにおいて重要なパケットである場合、その優先度Ｎを優先度表示Ｓとし（Ｓ＝Ｎ）、パケットｉ（ｉ＝０，１，２，・・・，ｋ・・・）に対するＳをＳｉとし、Ｓｉの初期値を−１とする。Ｓｉ＝−１のパケットｉは、全ての優先度において再送すべき重要なパケットではないことを意味する。
また、本発明のパケット再送方式は、ＲＴＰのパケットだけではなく、シーケンス番号を有する伝送プロトコルにも適応できる再送方式である。
次に、優先度について説明する。
優先度設定部１１４は、複数の優先度を階層化して順位をつけて定義する。
また、優先度設定部１１４は、１つのパケットについて、上記複数の優先度の内、順位の高い優先度から順番に優先度を選択し、選択した優先度に関してパケットの重要度を判断し、重要度が高いパケットであると判断した場合は、上記選択した優先度の値を１加算することを上記複数の優先度それぞれについて繰り返して複数の優先度の値を設定する。優先度設定部１１４は、送信する複数のパケットそれぞれについて、上記のような複数の優先度の値を設定することを繰り返して、上記複数のパケットそれぞれに対応する上記複数の優先度の値を設定する。
次に、優先度情報について説明する。
任意のパケットについて、上記複数の優先度の数をＰＨ、上記複数の優先度の値をＰＬ（ＰＨ）、カウンタをＮ、上記任意のパケットのパケットヘッダに含まれるシーケンス番号をＳＮとし、上記複数の優先度それぞれについて算出する優先度データをＰＬＤ（ＰＨ）とした場合、優先度情報算出部１１５がＰＬＤを算出する手順を説明する。
優先度情報算出部１１５は、ＰＬＤ（０）をＰＬ（０）とし、０＜Ｎ＜ＰＨの値をとるＮそれぞれについて、ＰＬＤ（Ｎ）＝所定の値×ＳＮ＋ＰＬ（Ｎ）を算出する。Ｎ＝ＰＨ−１のときのＰＬＤ（ＰＨ−１）を上記任意のパケットの優先度データＰＬＤとする。
実施の形態１では、上記所定の値として、ＰＬＤ（Ｎ−１）の値を用いる場合を説明する。
また、実施の形態２では、上記所定の値として、ＰＬＤ（Ｎ−１）とＰＬ（Ｎ）との差分の絶対値（｜ＰＬＤ（Ｎ−１）−ＰＬ（Ｎ）｜）と、ＳＮとＰＬＤ（Ｎ−１）との差分の絶対値（｜ＳＮ−ＰＬＤ（Ｎ−１）｜）と、ＳＮとＰＬ（Ｎ）との差分の絶対値（｜ＳＮ−ＰＬ（Ｎ）｜）との３つの値の中で最小の値を用いる。
以下において、実施の形態１では、優先度情報として優先度データＰＬＤを含む場合を説明する。また、実施の形態２では、優先度情報として、優先度データＰＬＤに加えてその他のデータとして識別子等を含む場合を説明する。また、以下の説明では、特に明記していない場合、優先度データを優先度情報という場合もある。
以下に、具体的な送信側及び受信側の動作を説明する。
実施の形態１．
この実施の形態では、ＰＨ＝２の場合を一例として説明する。
図４が実施の形態１の送信側の動作の一例を表すフローチャート図で、図５が実施の形態１の受信側の動作の一例を表すフローチャート図である。
処理しているパケットが送信するパケットの内、何番目に当たるかを示す。
送信側は、ｉ＝０のパケットからＰＬＤｉ（ｉ番目のパケットのＰＬＤを意味する）の算出とパケットの送信を行う。まず、送信側は、再送要求パケットを受信した場合（６０３でＹｅｓ）、再送部１１９は、再送要求されたパケットの再送を行う（６０４）。再送要求パケットには、再送して欲しい各優先度のＰＬが記されている。例えば、ＰＬ（０）＝５，６のパケットとＰＬ（１）＝４のパケットを要求するような情報が再送要求パケットに記される。再送要求パケットは、再送要求するＰＬが記されるならば、どのような構成でもよい。図７（８０２）は、ＰＨ＝２の再送要求用のＲＴＣＰパケットの構成の一例を示している。しかし、ＰＬが等しいパケットは複数存在する可能性があるため、再送部１１９は、ＰＬだけでは再送すべき重要なパケットを識別できない。そこで、再送部１１９は、ＰＬと各パケットの優先度表示Ｓの２つの値から再送が要求されたパケットのシーケンス番号を検索する。あるパケットｉの優先度表示Ｓｉは、パケットｉが優先度表示Ｓｉにおいて再送すべき重要なことを表している。
図３の下段は、送信側で再送部１１９が再送要求パケットに基づいて再送パケットを検出する一例を示す。
この例の場合、再送要求パケットは、ＰＬ（０）＝５，６とＰＬ（１）＝４のパケットの再送を要求している（５０６）。このとき、再送部１１９は、ＰＬ（０）＝５、且つ、Ｓ＝０であるシーケンス番号１３（５０８）のパケットと、ＰＬ（０）＝６、且つ、Ｓ＝０であるシーケンス番号１４（５０９）のパケットと、ＰＬ（１）＝４、且つ、Ｓ＝１であるシーケンス番号１２（５０７）のパケットを再送するパケットに検出する。
次に、再送要求パケットを受信していない場合（６０３でＮｏ）、優先度設定部１１４は、パケットｉの全てのＰＬを算出する。優先度設定部１１４は、複数の優先度の内、順位の高い優先度０から順に優先度ＰＨ−１までＰＬを算出する。ｊは、複数の優先度の内、何番目の順位かを示し、ｊは、０≦ｊ＜ＰＨの範囲の値をとり、ｊの初期値を０とする。Ｓは、ＰＬが１加算されたかタイミングを示し、Ｓの初期値を−１とする（６０５）。
もし、パケットｉは優先度ｊにおいて、再送すべき重要なパケットである場合（６０６）、優先度設定部１１４は、ＰＬｉ（ｊ）を１加算し、Ｓｉ＝ｊとする（６０７）。優先度設定部１１４は、パケットｉについてある１つの順位の優先度で重要度が高ければ、その他の順位の優先度では重要度は高くないので、残りのＰＬｉはＰＬｉ−１と等しくする（６０８）。パケットｉが優先度ｊにおいて、重要度が高くない場合は（６０６）、優先度設定部１１４は、ＰＬｉ（ｊ）＝ＰＬｉ−１（ｊ）として（６１０）次の順位の優先度に処理を進める（ｊ＋＋）（６１１）。
優先度設定部１１４は、この処理を複数の優先度全てにおいて行い、パケットｉに対応する全てのＰＬｉ（ｊ）を算出する。即ち、優先度設定部１１４は、ＰＨの回数６０６〜６１２の工程を繰り返す。優先度設定部１１４で設定されたＰＬは、設定優先度メモリ１１７に格納される。
次に、優先度情報算出部１１５は、ＰＬｉからＰＬＤｉを算出する。ＰＬＤｉを求める一般式は、
ＰＬＤｉ（０）＝ＰＬｉ（０）（６１４）
ＰＬＤｉ（ｊ）＝ＰＬＤｉ（ｊ−１）×ＳＮｉ＋ＰＬｉ（ｊ）
１≦ｊ≦ＰＨ−１（６１５，６１６，６１７）
である。優先度情報算出部１１５は、この一般式を用いて算出することにより、ＰＬＤｉ＝ＰＬＤｉ（ＰＨ−１）を求める。
優先度情報付加処理部１１６は、このように算出されたＰＬＤｉとＳｉをパケットヘッダに付加し、パケットｉのタイムスタンプ時刻に送信する。
図６（８０１）は、ＲＴＰヘッダにＰＬＤｉとＳｉを付加する例を示したものである。
パケットヘッダの構成は、ＰＬＤｉとＳｉが付加されれば、図６（８０１）に限られることはなく、この他の構成でもよい。
次に、ｉをインクリメントして次のパケットに対しても同様の処理を行う工程を繰り返し、送信する複数パケット全てについて同様の処理を行う。
次に、受信側の動作を図５を用いて説明する。
受信側では、優先度情報付加部１１３は、まず、送られてくるパケットの優先度階層ＰＨを取得する（７０２）。取得する方法は、例えば、パケットの送信を開始する前に予め送信側からＰＨの値を通知する方法などがある。
優先度情報付加部１１３がパケットを受信したら（７０４）、パケット情報抽出部１３４は、受信したパケットのパケットヘッダからシーケンス番号ＳＮと優先度表示Ｓと優先度情報として優先度データＰＬＤを抽出する（７０５）。抽出したシーケンス番号ＳＮと優先度表示Ｓと優先度データＰＬＤは、パケット情報メモリ１３８へ格納される。
次に、優先度算出部１３５は、ＰＬＤから各ＰＬを算出する。
まず、優先度算出部１３５は、ｊ＝ＰＨ−１とし（７０６）、ＰＬＤをＳＮで割ったときの商をＰＬＤに代入し、余りをＰＬ（ｊ）とする（７０７）。優先度算出部１３５は、ｊを１ずつ減らし同様の処理を行うことで、全てのＰＬを得ることができる（７０８，７０９）。優先度算出部１３５は、算出したＰＬを算出優先度メモリ１３９へ格納する。
次に、再送要求選定部１３７は、どの順位の優先度の範囲で再送要求を行うかを示す優先度レベルＰ＿Ｌｅｖｅｌ（０≦Ｐ＿Ｌｅｖｅｌ≦ＰＨ−１）を選定し、欠損パケット検出部１３６へ通知する（７１１）。優先度レベルＰ＿Ｌｅｖｅｌは、優先度の順位で表され、例えば、ネットワークの状況が悪いときなどには低い値（優先度の順位の高いものを用いる）となり、良好なときには高い値（優先度の順位の低いものも用いる）となる。優先度レベルＰ＿Ｌｅｖｅｌは、ネットワークの状況だけに依存するものではなく、自由に設定できる。Ｐ＿Ｌｅｖｅｌ＝ＰＨ−１は全ての優先度を利用するときの値である。
次に、欠損パケット検出部１３６は、再送すべき重要なパケットの欠損を検出する。優先度の順位が最も高い優先度０から検出を始めるため、優先度ｊ＝０とする（７１２）。もし、ｊが優先度レベルＰ＿Ｌｅｖｅｌより大きければ（７１３）、欠損パケット検出部１３６は、その優先度ｊにおいて欠損していた再送すべき重要なパケットの再送を要求することになる（７２１）。
ＰＬ（ｊ）からＰＬ（ｊ）＿ＭＡＸ（現在までに受信したパケットの中のＰＬ（ｊ）の最大値）を引いた値が０の場合は、欠損パケット検出部１３６は、パケットは欠損している可能性はあるが、優先度ｊにおいて再送すべき重要なパケットは欠損していないことが分かる。従って、欠損パケット検出部１３６は、パケット欠損の検出は行わないで、次の優先度に処理を進める。しかし、ＰＬ（ｊ）からＰＬ（ｊ）＿ＭＡＸを引いた値が０より大きい場合は（７１４）、欠損パケット検出部１３６は、優先度ｊにおいて再送すべき重要なパケットが欠損した可能性があることが分かる。
このとき、Ｓがｊと等しければ（７１５）、現在受信したパケットが優先度ｊにおいて再送すべき重要なパケットということになるので、欠損パケット検出部１３６は、ＰＬ（ｊ）のパケットは欠損していないと分かる。また、このとき、ＰＬ（ｊ）からＰＬ（ｊ）＿ＭＡＸを引いた値が１ならば（７１７）、優先度ｊにおいて再送すべき重要なパケットは欠損していないことになる。従って、欠損パケット検出部１３６は、ＰＬ（ｊ）＿ＭＡＸをＰＬ（ｊ）とする（７１９）。しかし、ＰＬ（ｊ）からＰＬ（ｊ）＿ＭＡＸを引いた値が１より大きければ（７１７）、ＰＬ（ｊ）＿ＭＡＸからＰＬ（ｊ）−１までのＰＬが欠損したことになるので、欠損パケット検出部１３６は、再送要求リスト（ｊ）に欠損したＰＬを追加する（７１８）。
同様に、Ｓがｊと等しくないときも（７１５）、ＰＬ（ｊ）＿ＭＡＸからＰＬ（ｊ）のＰＬが欠損したことになるので、欠損パケット検出部１３６は、再送要求リスト（ｊ）に欠損したＰＬを追加する（７１６）。
次に、ＰＬ（ｊ）＿ＭＡＸ＝ＰＬ（ｊ）、ｊ＋＋として（７１９，７２０）、次の優先度の処理に進む。
ｊが優先度レベルＰ＿Ｌｅｖｅｌより大きいとき（７１３）、即ち、欠損を調べる優先度が優先度レベルを超えたとき、欠損パケット検出部１３６は、再送パケット送信部１４１に再送要求リストに保持してあるＰＬを送信側へ再送要求することを指示する（７２１）。再送パケット送信部１４１は、再送要求パケットを送信側へ送信する。その後、欠損パケット検出部１３６は、再送要求リストをクリアする（７２２）。受信装置１３０では、パケットの受信が継続されるならば、受信部１３１は、新しいパケットの受信を行い、再送要求部１３３は、同様の処理を行う（７１９）。再送要求リストにＰＬが１つも保持されていないときは、再送要求を行わない。
図８は、この実施の形態において、ＰＨ＝２の場合、受信側におけるＰＬ（Ｎ）の識別と再送要求の例を図解したものである。
図８では、９０１〜９０５は、従来の方式で２個の優先度を設けたとき、パケットヘッダに２個の優先度シーケンス番号（ＰＬ（０）（９０２）とＰＬ（１）（９０４））を付加する必要があることを示している。９０６〜９０８は、この実施の形態のパケット再送方式で、２個の優先度を設けたとき、パケットヘッダに１個の優先度情報として優先度データＰＬＤ（９０７）を付加した例を示している。
この実施の形態の受信側の処理に基づいて欠損したパケットの再送要求方法を、図８を用いて説明する。
ここで、シーケンス番号１１から１４のパケットが欠損したと仮定する。シーケンス番号１０のＰＬＤは４３であるため、ＰＬ１０（０）は４３を１０で割ったときの商であり、ＰＬ１０（１）が４３を１０で割ったときの余りである。従って、ＰＬ１０（０）＝４，ＰＬ１０（１）＝３となる（９０９）。同様に、シーケンス番号１５のＰＬＤは９４であるため、ＰＬ１５（０）は９４を１５で割ったときの商であり、ＰＬ１５（１）が９４を１５で割ったときの余りである。従って、ＰＬ１５（０）＝６，ＰＬ１５（１）＝４となる（９１０）。また、シーケンス番号１５の優先度表示Ｓは−１であるため、シーケンス番号１５のパケットは優先度０と優先度１において再送すべき重要なパケットではないことになる。従って、欠損パケット検出部１３６は、優先度０においてＰＬ１０（０）からＰＬ１５（０）、即ち、５，６のＰＬ（０）が欠損し、優先度１においてＰＬ１０（１）からＰＬ１５（１）、即ち、４のＰＬ（１）が欠損したことを検出する（９１１）。再送パケット送信部１４１は、これらのＰＬを再送要求する再送要求パケットを送信側へ送信する（９１２）。
なお、優先度データＰＬＤの値が大きくなり、ＰＬＤに割り当てられたレジスタで表現できなくなる場合が発生する。このような場合は、複数の優先度を初期化して優先度の設定を再度行う。
また、図１で示した送信装置１１０及び受信装置１３０の各構成要素は、ハードウェア、ファームウェア、ソフトウェアのいずれによっても実現することが可能である。
実施の形態２．
実施の形態２では、実施の形態１よりもさらにＰＬＤの値が小さくなるように、優先度データを算出する場合を説明する。
受信側では、優先度データＰＬＤは、ＰＬＤ＝ＳＮ×Ｑ＋Ｒとして取り扱われる。ここで、Ｑは、ＰＬＤ／ＳＮの商であり、Ｒは３の余りである。ＱとＲの値も、各パケット毎に小さく設定する。
以下の説明では、ＰＬＤ＝ＳＮ×Ｑ＋Ｒの式を用いて説明する。
まず、Ｑの値の設定について説明する。以下の式で算出する変数Ａ，Ｂ，Ｃを定義する。
Ａ＝｜ＰＬＤ（Ｎ−１）−ＰＬ（Ｎ）｜，Ｂ＝｜ＳＮ−ＰＬＤ（Ｎ−１）｜，Ｃ＝｜ＳＮ−ＰＬ（Ｎ）｜とする。このとき、Ａ，Ｂ，Ｃの中で最小なものをＱとする。また、以下のように、３つの値のどの値をＱとしたかを識別する識別子ＰＱを定義し、例えば、２ビットで表す。
Ｑ＝ＰＬ（０）、即ち、実施の形態１と同様のとき、ＰＱ＝００
Ｑ＝Ａのとき、                                  ＰＱ＝０１
Ｑ＝Ｂのとき、                                  ＰＱ＝１０
Ｑ＝Ｃのとき、                                  ＰＱ＝１１
また、Ａ，Ｂ，Ｃが２つの値の差分の絶対値であるため、｜Ｘ−Ｙ｜としたとき、Ｘ，Ｙのどちらが大きい値かを示す識別子（フラグ）ＰＤを定義し、以下のように１ビット長で表す。
Ｘ≧Ｙのとき、ＰＤ＝０
Ｘ＜Ｙのとき、ＰＤ＝１
この実施の形態では、優先度情報として、優先度データＰＬＤ、識別子ＰＱ、識別子（フラグ）ＰＤとを含む場合について説明する。
図９，図１０が、本再送方式実施の形態２の送信側のフローチャート図で、図１１，図１２が同形態の受信側のフローチャート図である。
送信側の送信装置１１０は、ｉ＝０のパケットからＰＬＤｉの算出とパケットの送信を行う。まず、送信側は、再送要求パケットを受信した場合（１００３でＹｅｓ）、再送部１１９は、再送要求されたパケットの再送を行う（１００４）。再送要求パケットには、再送して欲しい各優先度のＰＬが記されている。再送要求パケットや再送パケットの検索方法は、実施の形態１と同様である。
次に、優先度設定部１１４は、パケットｉの全てのＰＬを算出する。優先度設定部１１４は、複数の優先度の内、順位の高い優先度０から順に優先度ＰＨ−１までＰＬを算出する。ＰＬの算出方法も実施の形態１と同様である。
次に、優先度情報算出部１１５は、ＰＬｉからＰＬＤｉを算出する。優先度情報算出部１１５は、上記で説明した式（ＰＬＤ＝Ｑ×ＳＮ＋Ｒ）を用いて算出する。実施の形態２では、実施の形態１よりもさらにＰＬＤの値が小さくなるように、優先度情報算出部１１５は、以下に示す手順によってＱとＲの値を小さく設定する。
ｊは、複数の優先度の内、何番目の順位かを示し、１≦ｊ＜ＰＨ−１の範囲の値をとる。ＰＬＤｉを求める一般式は、
ＰＬＤｉ（０）＝ＰＬｉ（０）（１０１４）
ＰＬＤｉ（ｊ）＝｜ＰＬＤｉ（ｊ−１）−ＰＬｉ（ｊ）｜×ＳＮｉ＋ＰＬｉ（ｊ）・・・式１（１１０７）
ＰＬＤｉ（ｊ）＝｜ＰＬＤｉ（ｊ−１）−ＰＬｉ（ｊ）｜×ＳＮｉ＋ＰＬＤｉ（ｊ−１）・・・式２（１１０９）
ＰＬＤｉ（ｊ）＝｜ＳＮｉ−ＰＬＤｉ（ｊ−１）｜×ＳＮｉ＋ＰＬｉ（ｊ）・・・式３（１１１３）
ＰＬＤｉ（ｊ）＝｜ＳＮｉ−ＰＬｉ（ｊ）｜×ＳＮｉ＋ＰＬＤｉ（ｊ−１）・・・式４（１１１７）
１≦ｊ≦ＰＨ−１
である。優先度情報算出部１１５は、ＰＬＤｉを求める式１から式４は、各優先度ｊ毎にＰＬＤｉ（ｊ）が小さくなるような式を選択する。この一般式から、ＰＬＤｉ＝ＰＬＤｉ（ＰＨ−１）で求まる。
従って、優先度情報算出部１１５は、まず、初期値としてＰＬＤｉ（０）＝ＰＬｉ（０）とする（１０１４）。ＰＬＤｉ（０）は、優先度０のときである。次に、優先度情報算出部１１５は、優先度１から式１から式４に適用してＰＬＤｉを求める。優先度情報算出部１１５は、優先度ｊを１とする（１０１５）。
次に、優先度情報算出部１１５は、サブルーチン１（１０１６）を用いてＰＬＤを算出する。まず、Ｘを計算するか、実施の形態１と同様にＸをそのまま用いるかを判断する（１１０２）。優先度情報算出部１１５は、式１から式４の商（Ｑ）に相当する｜ＰＬＤｉ（ｊ−１）−ＰＬｉ（ｊ）｜，｜ＳＮｉ−ＰＬＤｉ（ｊ−１）｜，｜ＳＮｉ−ＰＬｉ（ｊ）｜の３つの値の中で最小な値を選択する（１１０３）。選択された値をＱとし、Ｑの値を識別する識別子を前述のようにＰＱとする。
また、ＰＱ＝０１のとき（１１０４）、ＰＬＤｉ（ｊ−１）とＰＬｉ（ｊ）のどちらが大きい値かも識別する。識別する識別子を前述のようにＰＤとする。よって、ＰＤは、
ＰＬＤｉ（ｊ−１）≧ＰＬｉ（ｊ）のときは、ＰＤ＝０（１１０６）
ＰＬＤｉ（ｊ−１）＜ＰＬｉ（ｊ）のときは、ＰＤ＝１（１１０８）
となる。
同様に、ＰＱ＝１０のときも（１１１０）、ＳＮｉとＰＬＤｉ（ｊ−１）のどちらが大きい値かも識別する。ＰＤは、
ＳＮｉ≧ＰＬＤｉ（ｊ−１）のときは、ＰＤ＝０（１１１２）
ＳＮｉ＜ＰＬＤｉ（ｊ−１）のときは、ＰＤ＝１（１１１４）
となる。
ＰＱ＝１１のときは（１１１５）、常にＳＮｉ≧ＰＬｉ（ｊ）なので、ＰＤ＝０となる（１１１６）。
ＰＱ＝０１，ＰＤ＝０のときは式１を、ＰＱ＝０１，ＰＤ＝１のときは式２を、ＰＱ＝１０のときは式３を、ＰＱ＝１１のときは式４を選択してＰＬＤｉを求める。
実施の形態１と同様に、Ｘをそのまま用いるの方法でＰＬＤｉを求めるときは（１１０２でＮｏ）、ＰＱ＝００，ＰＤ＝０とし（１１１８，１１１９）、ＰＬＤｉ（ｊ）＝ＰＬＤｉ（ｊ−１）×ＳＮｉ＋ＰＬｉ（ｊ）の式を使ってＰＬＤｉを求める（１１２０）。このようにして、サブルーチン１（１０１６）の手順でＰＬＤを算出する。
次に、ＰＱ，ＰＤをビットシフトし（１０１７）、優先度ｊをインクリメント（ｊ＋１）し（１０１８）、次の優先度のＰＬＤｉ（ｊ）を求める。ｊがＰＨよりも小さい範囲で、この処理を繰り返し（１０１９）、最後のＰＬＤｉ（ＰＨ−１）がパケットｉに対応するＰＬＤｉである。
優先度情報付加処理部１１６は、このように算出されたＳｉとＰＬＤｉとＰＱとＰＤをヘッダに付加する。送信部１１１は、パケットｉのパケットヘッダに含まれるタイムスタンプ時刻に送信する（１０２０）。
図１３（１４０２）は、ＲＴＰヘッダにＰＬＤｉとＳｉを付加する例を示したものである。
ヘッダ構成は、ＳｉとＰＬＤｉとＰＱとＰＤが付加されれば、図１３（１４０２）に限られることなく、この他の構成でもよい。
次に、ｉをインクリメント（ｉ＋＋）して次のパケットについて同様の処理を行う（１０２１，１０２２）。
次に、受信側の動作を図１１，図１２を用いて説明する。
受信側では、再送要求部１３３は、まず、送られてくるパケットの優先度階層ＰＨを取得する（１２０２）。取得する方法は、例えば、パケットの送信を開始する前に、予め送信側からＰＨの値を通知する方法などがある。
受信部１３１がパケットを受信したら（１２０４）、パケット情報抽出部１３４は、受信パケットのパケットヘッダからシーケンス番号ＳＮと優先度表示Ｓと識別子ＰＱと識別子ＰＤと優先度データＰＬＤを抽出する（１２０５）。抽出したシーケンス番号ＳＮと優先度表示Ｓと識別子ＰＱと識別子ＰＤと優先度データＰＬＤは、パケット情報メモリ１３８へ格納する。
次に、優先度算出部１３５は、ＰＬＤから各ＰＬを算出する。まず、優先度算出部１３５は、ｊ＝ＰＨ−１とし、ＰＬＤ（ｊ）をＳＮで割ったときの商をＱ（ｊ）とし、余りをＲ（ｊ）とする（１３０５）。次に、優先度算出部１３５は、サブルーチン２（図１２）の手順を用いてＰＬＤとＰＱとＰＤとから全てのＰＬを求める（１２０６）。また、優先度ｊのＰＱをＰＱ（ｊ）とし、ＰＱをビットシフトしてＰＱ（ｊ）を得る（１３０４）。
次に、優先度算出部１３５は、以下のような処理でＰＬ（ｊ）を求める。
ＰＱ（ｊ）＝０１，ＰＤ（ｊ）＝０のとき、ＰＬ（ｊ）＝Ｒであり、ＰＬＤ（ｊ−１）＝Ｑ＋Ｒとする（１３０８，１３０９）。
ＰＱ（ｊ）＝０１，ＰＤ（ｊ）＝１のとき、ＰＬ（ｊ）＝Ｑ＋Ｒであり、ＰＬＤ（ｊ−１）＝Ｒとする（１３１０，１３１１）。
ＰＱ（ｊ）＝１０，ＰＤ（ｊ）＝０のとき、ＰＬ（ｊ）＝Ｒであり、ＰＬＤ（ｊ−１）＝ＳＮ−Ｑとする（１３１３，１３１４）。
ＰＱ（ｊ）＝１０，ＰＤ（ｊ）＝１のとき、ＰＬ（ｊ）＝Ｒであり、ＰＬＤ（ｊ−１）＝Ｑ＋ＳＮとする（１３１５，１３１６）。
ＰＱ（ｊ）＝１１のとき、ＰＬ（ｊ）＝ＳＮ−Ｑであり、ＰＬＤ（ｊ−１）＝Ｒとする（１３１７，１３１８）。
ＰＱ（ｊ）＝００のとき、ＰＬ（ｊ）＝Ｒであり、ＰＬＤ（ｊ−１）＝Ｑとする（１３１９，１３２０）。
ｊを１ずつ減らしこの処理を行うことで（１３２２）、全てのＰＬを得ることができる。ｊ＝０のときは、ＰＤ（０）＝ＰＬＤ（０）とする（１３２３）。優先度算出部１３５は、上記の手順で算出した優先度ＰＬを算出優先度メモリ１３９へ格納する。
次に、再送要求選定部１３７は、どの順位の優先度の範囲で再送要求を行うかを示す優先度レベルＰ＿Ｌｅｖｅｌを選定し、欠損パケット検出部１３６へ通知する（１２０９）。優先度レベルＰ＿Ｌｅｖｅｌは、実施の形態１で説明したものと同様である。
次に、欠損パケット検出部１３６は、再送すべき重要なパケットの欠損を検出する。再送パケット送信部１４１は、検出したパケットの再送要求を行う。パケット欠損の検出方法や再送要求の方法は、実施の形態１と同様である。
図１５は、この実施の形態においてＰＨ＝２のときの受信側におけるＰＬ（Ｎ）の識別と再送要求の例を図解したものである。
図１５では、１５０１〜１５０５は、従来の方式で２個の優先度を設けたとき、パケットヘッダに２個の優先度シーケンス番号（ＰＬ（０）（１５０２）とＰＬ（１）（１５０４））を付加する必要があることを示している。１５０６〜１５１０は、この実施の形態のパケット再送方式で２個の優先度を設けたとき、１個の優先度データＰＬＤ（１５０９）と識別子ＰＱと識別子ＰＤ（１５０７，１５０８）を付加した例を示している。
この実施の形態の受信側の処理に基づいて欠損したパケットの再送要求方法を、図１５を用いて説明する。
ここで、シーケンス番号１１から１４のパケットが欠損したと仮定する。シーケンス番号１０のＰＬＤは１３であるため、１３を１０で割った商（Ｑ）は１で、余り（Ｒ）は３である。シーケンス番号１０のＰＱは０１でＰＤは０であるため、ＰＬ１０（０）＝Ｑ＋Ｒ＝４，ＰＬ１０（１）＝Ｒ＝３となる（１５１１）。同様に、シーケンス番号１５のＰＬＤは３４であるため、３４を１５で割った商（Ｑ）は２で、余り（Ｒ）は４である。ＰＬ１５（０）は９４を１５で割ったときの商であり、ＰＬ１５（１）が９４を１５で割ったときの余りである。シーケンス番号１５のＰＱは０１で、ＰＤは０であるため、ＰＬ１０（０）＝Ｑ＋Ｒ＝６，ＰＬ１０（１）＝Ｒ＝４となる（１５１２）。また、シーケンス番号１５の優先度表示Ｓは−１であるため、シーケンス番号１５のパケットは、優先度０と１において再送すべき重要なパケットではないことになる。従って、優先度０においてＰＬ１０（０）からＰＬ１５（０）、即ち、５，６のＰＬ（０）が欠損し、優先度１においてＰＬ１０（１）からＰＬ１５（１）、即ち、４のＰＬ（１）が欠損したことを検出する（１５１３）。再送パケット送信部１４１は、これらのＰＬを再送要求する再送要求パケットを送信側へ送信する（１５１４）。
実施の形態３．
上記実施の形態１，２では、ＰＨ＝２の場合を一例として説明した。しかしながら、ＰＨが２より大きい場合でも、このパケット再送方式を適用することは可能である。
例えば、図７では、ＰＨ＝１〜２のＰＬの指定を示しているが、ＰＨ＝３〜４のＰＬを指定する場合では、さらに、最後の行の書式のデータが一行追加になる。ＰＨ＝５〜６で、さらに、一行、というように、再送要求するＰＬの情報が追加されることになる。
実施の形態４．
上記実施の形態１、２では、優先度情報算出部１１５で利用する所定の値として、二つの例を示した。しかしながら、この他の所定の値を用いて、優先度情報を算出する場合であってもよい。ＰＬＤ（Ｎ）＝所定の値×ＳＮ＋ＰＬ（Ｎ）の式に基づいて優先情報を算出する場合であれば、このパケット再送方式及び方法を適用することが可能である。
産業上の利用可能性
この発明に係る送信装置と受信装置と、上記２つの装置を用いたパケット再送方式及び方法によれば、送信側は、複数の優先度を有するようなデータをパケット転送することができ、受信側は、各優先度別に欠損したパケットの再送要求を行うか否かを判定することができる。例えば、ＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）方式などで圧縮された動画データは、ＩフレームとＰフレームとＢフレームで動画が構成され、それぞれ優先度があり、Ｉフレームデータを乗せたパケットは最も優先度が高く、Ｐフレームは、次に優先度がが高く、Ｂフレームは優先度が低い。このとき、複数の優先度を設定できるこのパケット再送方式では、優先度０をＩフレームに割り当て、優先度１にＰフレームを割り当てることができ、パケットが欠損してしまった場合でも、ＩフレームやＰフレームのデータを乗せたパケットのみを再送要求及び再送できる。
このように、この発明に係るパケット再送方式は、マルチメディアデータをインターネットや無線通信網経由で決められた時間通りにデータを送受信するストリーミング配信するサーバ（送信装置）とクライアント（受信装置）において適用することができる。
また、複数の優先度を有するパケットであっても、１つの優先度データＰＬＤだけで複数の優先度を受信側で識別することができる。
また、再送要求選定部によって、ネットワークの状況やデータの特性に応じて動的に最適な優先度の再送要求を選択できる。従って、再送要求や再送によるネットワークの輻輳を抑止したり、ネットワーク状況や転送するコンテンツに最適な品質を提供できる。
さらに、優先度情報算出部１１５において、優先度情報を算出するときに利用する所定の値を工夫することによって、優先度情報に含まれる優先度データの値を小さくすることができるため、送信パケットの付加量を削減することができる。
【図面の簡単な説明】
図１は、この発明に係るパケット再送方式の構成の一例を表す図である。
図２は、優先度情報と複数の優先度の一例を表す図である。
図３は、再送要求と再送パケットの検出方法の一例を表す図である。
図４は、実施の形態１の送信側の動作の一例を表すフローチャートである。
図５は、実施の形態１の受信側の動作の一例を表すフローチャートである。
図６は、実施の形態１のＲＴＰパケットヘッダの構成例を示す図である。
図７は、実施の形態１の再送要求用のＲＴＣＰの構成例を示す図である。
図８は、実施の形態１においてＰＨ＝２の場合の再送要求の動作の一例を表す図である。
図９は、実施の形態２の送信側の動作の一例を表すフローチャートである。
図１０は、実施の形態２のサブルーチン１の工程の一例を表すフローチャートである。
図１１は、実施の形態２の受信側の動作の一例を表すフローチャートである。
図１２は、実施の形態２のサブルーチン２の工程の一例を表すフローチャートである。
図１３は、実施の形態２のＲＴＰパケットヘッダの構成例を示す図である。
図１４は、実施の形態２の再送要求用のＲＴＣＰの構成例を示す図である。
図１５は、実施の形態２においてＰＨ＝２の場合の再送要求の動作の一例を表す図である。
図１６は、従来のＲＴＰパケットヘッダの一例を表す図である。
図１７は、従来の再送要求用のＲＴＣＰパケットの構成の一例を表す図である。
図１８は、従来例の第２シーケンス番号ＳＳＮと再送要求の動作の一例を表す図である。
【図１】
0003821778.tif 000002
【図２】
0003821778.tif 000003
【図３】
0003821778.tif 000004
【図４】
0003821778.tif 000005
【図５】
0003821778.tif 000006
【図６】
0003821778.tif 000007
【図７】
0003821778.tif 000008
【図８】
0003821778.tif 000009
【図９】
0003821778.tif 000010
【図１０】
0003821778.tif 000011
【図１１】
0003821778.tif 000012
【図１２】
0003821778.tif 000013
【図１３】
0003821778.tif 000014
【図１４】
0003821778.tif 000015
【図１５】
0003821778.tif 000016
【図１６】
0003821778.tif 000017
【図１７】
0003821778.tif 000018
【図１８】
0003821778.tif 000019