(57)【特許請求の範囲】
【請求項１】
シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送システムにおいて、
受信装置は、
送信装置から受信したパケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信手段と、
前記パケットの欠損を検出するパケット欠損検出手段と、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように追加命令を発する再送シーケンス番号追加手段と、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理手段と、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信手段へ送信する再送要求送信手段と、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供手段と、
を備え、
前記受信装置は、
再送されるパケットのシーケンス番号を乗せた再送要求応答パケットを前記送信装置から受信する再送要求応答受信手段と、
前記再送要求応答パケットから前記シーケンス番号を取り出し、再送要求リストから前記シーケンス番号と同じシーケンス番号を削除するように命令する削除命令を再送要求リスト管理手段へ出す再送シーケンス削除手段と、
前記再送要求リストの状態を、再送要求リストに残っているシーケンス番号のパケットの再送要求を行ったが前記送信装置からは今後再送されてこないことを意味する”ＡＣＴＩＶＥ”状態に設定する命令を前記再送要求リスト管理手段へ出す再送要求応答通知手段と
を備えたことを特徴とするパケット再送システム。
【請求項２】
シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送システムにおいて、
送信装置は、
受信装置へ送信したパケットを蓄積しておく再送用バッファと、
前記受信装置から受信した再送要求パケットからシーケンス番号と要求アプリケーションへ提供した最大（最新）シーケンス番号を識別して通知する再送要求受信手段と、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調べる再送パケット検出手段と、
該再送パケット検出手段が存在を検出したすべてのパケットを前記受信装置へ再送する再送手段と、
を備え、
前記受信装置は、
前記送信装置から受信した前記パケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信手段と、
前記パケットの欠損を検出するパケット欠損検出手段と、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように命令する再送シーケンス番号追加手段と、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理手段と、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信手段へ送信する再送要求送信手段と、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供手段と、
を備え、
前記受信装置は、
再送されるパケットのシーケンス番号を乗せた再送要求応答パケットを前記送信装置から受信する再送要求応答受信手段と、
前記再送要求応答パケットから前記シーケンス番号を取り出し、再送要求リストから前記シーケンス番号と同じシーケンス番号を削除するように命令する削除命令を再送要求リスト管理手段へ出す再送シーケンス削除手段と、
前記再送要求リストの状態を、再送要求リストに残っているシーケンス番号のパケットの再送要求を行ったが前記送信装置からは今後再送されてこないことを意味する”ＡＣＴＩＶＥ”状態に設定する命令を前記再送要求リスト管理手段へ出す再送要求応答通知手段と
を備えたことを特徴とするパケット再送システム。
【請求項３】
送信装置は、
特定のパケットまたは欠損時に再送するべきパケットを再送用バッファに格納する再送パケット格納手段と、
前記特定のパケットまたは欠損時に再送するべきパケットの再送信を行う再送手段と、を備え、
受信装置は、
前記特定のパケットまたは欠損時に再送するべきパケットを受信後、シーケンス番号順にソートしながら前記特定のパケットまたは欠損時に再送するべきパケットを受信バッファに格納する受信手段と、
を備えたことを特徴とする請求の範囲第２項記載のパケット再送システム。
【請求項４】
受信装置は、
現在再送要求を行っているパケットのシーケンス番号および次の再送要求時に再送要求を行うパケットのシーケンス番号を格納する再送要求リストを生成し、シーケンス番号の追加および削除を行い、再送要求リストに格納されているシーケンス番号のパケットの状態を再送要求状態に切り替える再送要求リスト管理手段を備えたことを特徴とする請求の範囲第１項乃至第３項に記載のパケット再送システム。
【請求項５】
受信装置は、
パケットの受信回数および受信時間から決定されるパケットの受信時間間隔で、受信バッファ内のパケットのシーケンス番号の不整合から欠損したパケットのシーケンス番号を検出するパケット欠損検出手段と、
該パケット欠損検出手段が欠損を検出したパケットのシーケンス番号を再送要求リストに追加する命令を再送要求リスト管理手段へ出す再送シーケンス番号追加手段と、
前記再送要求リストの状態を再送パケット受信待ちの状態を意味する”ＲＥＡＤＹ状態”に設定する命令を前記再送要求リスト管理手段へ出す再送要求通知手段を備えたことを特徴とする請求の範囲請求の範囲第１項乃至第３項記載のパケット再送システム。
【請求項６】
受信装置は、
再送要求リストに存在する１以上の再送するべきパケットのシーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットの前記シーケンス番号を取り出して通知する再送要求受信手段と、
前記通知されたシーケンス番号のパケットが再送バッファに格納されているか否かを調べる再送パケット検出手段と、
該再送パケット検出手段が存在を検出したすべてのパケットのシーケンス番号を１つの再送要求応答パケットに乗せ、前記受信装置へ送信する再送要求応答手段と、
前記再送パケット検出手段が検出した前記パケットを前記受信装置へ再送信する再送手段と
を備えたことを特徴とする請求の範囲第２項または第３項記載のパケット再送システム。
【請求項７】
受信装置は、
パケット提供手段が要求アプリケーション部に提供したパケットの最大（最新）シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記最大シーケンス番号を取り出して通知する再送要求受信手段と、
通知された前記最大シーケンス番号より小さいシーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除手段と、
を備えたことを特徴とする請求の範囲第２項または第３項記載のパケット再送システム。
【請求項８】
受信装置は、
再送要求リストに存在する１以上の再送するべきパケットのシーケンス番号と、パケット提供手段が要求アプリケーション部に提供したパケットの最大（最新）シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記シーケンス番号と、前記最大シーケンス番号を取り出して通知する再送要求受信手段と、
前記通知されたシーケンス番号のパケットが再送用バッファ内に有るか否かを調べる再送パケット検出手段と、
前記通知された最大シーケンス番号より小さいシーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除手段と、
前記再送パケット検出手段が存在を検出したすべてのパケットのシーケンス番号を１つの再送要求応答パケットに乗せ、前記受信装置へ送信する再送要求応答手段と、
前記再送パケット検出手段が検出したパケットを前記受信装置へ再送信する再送手段と
を備えたことを特徴とする請求の範囲第２項または第３項記載のパケット再送システム。
【請求項９】
受信装置は、
再送されるパケットのシーケンス番号を乗せた再送要求応答パケットを前記送信装置から受信する再送要求応答受信手段と、
前記再送要求応答パケットから前記シーケンス番号を取り出し、再送要求リストから前記シーケンス番号と同じシーケンス番号を削除するように命令する削除命令を再送要求リスト管理手段へ出す再送シーケンス削除手段と、
を備えたことを特徴とする請求の範囲第２項または第３項記載のパケット再送システム。
【請求項１０】
受信装置は、
受信バッファ内に格納されているパケットの中から、１つ以上のパケットのペイロード（データ）を要求アプリケーション部に提供し、前記パケットのシーケンス番号よりも小さいシーケンス番号を再送要求リストから削除し、前回に提供されたパケットのシーケンス番号（Ｎ：Ｎは自然数）の次のシーケンス番号（Ｎ＋１）のパケットのペイロードを指定された時間内に提供し、前記指定された時間内に前記次のシーケンス番号（Ｎ＋１）のパケットが受信バッファに存在しない、あるいは挿入されない場合は、提供されるべきパケットが欠損したことを前記要求アプリケーション部に通知するパケット提供手段を備えたことを特徴とする請求の範囲第１項乃至第３項に記載のパケット再送システム。
【請求項１１】
受信装置は、
指定時間内に提供しなければならないパケットが受信バッファにない場合、再びパケット欠損検出と再送要求送信を指定時間内に１回以上行うパケット提供手段を備えたことを特徴とする請求の範囲第７項又は第８項又は第１０項に記載のパケット再送システム。
【請求項１２】
受信装置は、
再送要求リストの状態が、該再送要求リストに格納されているシーケンス番号のパケットの送信装置への再送要求はすでに行われているが前記送信装置からは今後再送されてこないことを意味する”ＡＣＴＩＶＥ”状態であり、要求アプリケーション部に提供するパケットのシーケンス番号が前記再送要求リストの中にある場合、再送要求を行っても再送されないと判断し、指定時間を待たずすぐに提供されるべきパケットが欠損したことを要求者に通知するパケット提供手段を備えたことを特徴とする請求の範囲第７項又は第８項又は第１０項記載のパケット再送システム。
【請求項１３】
シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送システムにおいて、
送信装置は、
受信装置へ送信したパケットを蓄積しておく再送用バッファと、
前記受信装置から受信した再送要求パケットからシーケンス番号と要求アプリケーションへ提供した最大（最新）シーケンス番号を識別して通知する再送要求受信手段と、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調べる再送パケット検出手段と、
該再送パケット検出手段が存在を検出したすべてのパケットを前記受信装置へ再送する再送手段と、
を備え、
前記受信装置は、
前記送信装置から受信した前記パケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信手段と、
前記パケットの欠損を検出するパケット欠損検出手段と、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように命令する再送シーケンス番号追加手段と、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理手段と、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信手段へ送信する再送要求送信手段と、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供手段と、
を備え、
前記パケットは、すべてのパケットに与えられる一般シーケンス番号と、特定のパケット又は欠損時に再送するべきパケットに与えられる優先シーケンス番号が付加されたパケットであり、
送信装置は、
前記特定のパケット又は欠損時に再送するべきパケットを再送用バッファに格納する再送パケット格納手段と、
前記特定のパケット又は欠損時に再送するべきパケットの再送信を行う再送手段とを備え、
受信装置は、前記特定のパケット又は欠損時に再送するべきパケットを受信後、一般シーケンス番号順にソートしながら前記特定のパケット又は欠損時に再送するべきパケットを受信バッファに格納する受信手段と、を備えたことを特徴とするパケット再送システム。
【請求項１４】
受信装置は、
再送を行うパケットの一般シーケンス番号を格納する再送リストを生成し、前記一般シーケンス番号の追加と削除を行う再送リスト管理手段を備えたことを特徴とする請求の範囲第１３項記載パケット再送システム。
【請求項１５】
受信装置は、
受信手段が受信したパケットの一般シーケンス番号が再送リストにある場合、前記一般シーケンス番号を前記再送リストから削除する命令を再送リスト管理手段へ出す再送シーケンス番号削除手段と、
前記パケットの受信回数および受信時間から決定されるパケットの受信時間間隔、および優先シーケンス番号の不整合から優先度の高い特定のパケットが欠損する毎に、受信バッファ内のパケットや受信パケットの一般シーケンス番号と優先シーケンス番号から、欠損を発生した優先度の高い特定のパケットおよび欠損時に再送するべきパケットの一般シーケンス番号を検出するパケット欠損検出手段と、
該パケット欠損検出手段が欠損を検出した前記優先度の高い特定のパケットおよび欠損時に再送するべきパケットの一般シーケンス番号を再送リストに追加する命令を前記再送リスト管理手段へ出す再送シーケンス番号追加手段を備えたことを特徴とする請求の範囲第１３項記載のパケット再送システム。
【請求項１６】
受信装置は、
再送リストに存在する１以上の一般シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記一般シーケンス番号を取り出して通知する再送要求受信手段と、
前記通知された一般シーケンス番号のパケットが再送用バッファ内に有るか否かを調べる再送パケット検出手段と、
該再送パケット検出手段が存在を検出した一般シーケンス番号のパケットを前記受信装置へ再送信する再送手段と、
を備えたことを特徴とする請求の範囲第１３項記載のパケット再送システム。
【請求項１７】
受信装置は、
パケット提供手段が要求アプリケーション部に提供したパケットの最大（最新）一般シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置に送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記最大一般シーケンス番号を取り出して通知する再送要求受信手段と、
通知された前記最大一般シーケンス番号より小さい一般シーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除手段と、
備えたことを特徴とする請求の範囲第１３項記載のパケット再送システム。
【請求項１８】
受信装置は、
再送リストに存在する１以上の一般シーケンス番号と、パケット提供手段が要求アプリケーション部に提供したパケットの最大（最新）一般シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置に送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記一般シーケンス番号と、前記最大一般シーケンス番号を取り出して通知する再送要求受信手段と、
通知された前記最大一般シーケンス番号より小さい一般シーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除手段と、
前記通知された一般シーケンス番号のパケットが再送用バッファ内に有るか否かを調べる再送パケット検出手段と、
該再送パケット検出手段が存在を検出した一般シーケンス番号のパケットを前記受信装置へ再送信する再送手段と、
を備えたことを特徴とする請求の範囲第１３項記載のパケット再送システム。
【請求項１９】
受信装置は、
受信バッファ内に格納されているパケットの中から、１つ以上のパケットのペイロード（データ）を要求アプリケーション部に提供し、前記パケットの一般シーケンス番号よりも小さい一般シーケンス番号を再送リストから削除し、前回に提供したパケットの一般シーケンス番号（Ｎ：Ｎは自然数）の次の一般シーケンス番号（Ｎ＋１）のパケットのペイロードを指定された時間内に提供し、前記指定された時間内に前記一般シーケンス番号（Ｎ＋１）のパケットが受信バッファに存在しない、又は挿入されない場合は、提供されるべきパケットが欠損したことを前記要求アプリケーション部に通知するパケット提供手段を備えたことを特徴とする請求の範囲第１３項記載のパケット再送システム。
【請求項２０】
受信装置は、
指定時間内に提供しなければならないパケットが受信バッファに存在しない場合、再びパケット欠損検出と前記再送要求送信を指定時間内に数回行うパケット提供手段を備えたことを特徴とする請求の範囲第１８項記載のパケット再送システム。
【請求項２１】
受信装置は、
提供するパケットの一般シーケンス番号が、再送リストの中に存在しない場合、再送要求を行わず、指定された時間を待たずすぐに提供されるべきパケットが欠損したことを要求アプリケーション部に通知するパケット提供手段を備えたことを特徴とする請求の範囲第１８項記載のパケット再送システム。
【請求項２２】
送信装置は、
任意のパケットｐの近辺ｎ個のパケットにおいて優先度の高い特定のパケットまたは欠損時に再送するべきパケットに割り当てるべき優先度情報をｍ個毎（ｍ≦ｎ：ｍ，ｎとも自然数）にパケットｐに付加し、前記ｎおよびｍの値をネットワークの輻輳状況から決定する優先度情報付加手段を備え、
受信装置は、
パケットの受信回数および受信時間から決定されるパケットの受信時間間隔、およびシーケンス番号の不整合から重要なパケットが欠損する毎に、受信バッファ内のパケットや受信パケットのシーケンス番号と、前記優先度情報から、欠損を発生した優先度の高い特定のパケットおよび欠損時に再送するべきパケットのシーケンス番号を検出するパケット欠損検出手段を備えたことを特徴とする請求の範囲第２項または第３項に記載のパケット再送システム。
【請求項２３】
シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送方法において、
受信装置は、
送信装置から受信したパケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信ステップと、
前記パケットの欠損を検出するパケット欠損検出ステップと、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように追加命令を発する再送シーケンス番号追加ステップと、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理ステップと、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信ステップへ送信する再送要求送信ステップと、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供ステップと、
を備え、
前記受信装置は、
再送されるパケットのシーケンス番号を乗せた再送要求応答パケットを前記送信装置から受信する再送要求応答受信ステップと、
前記再送要求応答パケットから前記シーケンス番号を取り出し、再送要求リストから前記シーケンス番号と同じシーケンス番号を削除するように命令する削除命令を再送要求リスト管理ステップへ出す再送シーケンス削除ステップと、
前記再送要求リストの状態を、再送要求リストに残っているシーケンス番号のパケットの再送要求を行ったが前記送信装置からは今後再送されてこないことを意味する”ＡＣＴＩＶＥ”状態に設定する命令を前記再送要求リスト管理ステップへ出す再送要求応答通知ステップと
を備えたことを特徴とするパケット再送方法。
【請求項２４】
シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送方法において、
送信装置は、
受信装置へ送信したパケットを蓄積しておく再送用バッファと、
前記受信装置から受信した再送要求パケットからシーケンス番号と要求アプリケーションへ提供した最大（最新）シーケンス番号を識別して通知する再送要求受信ステップと、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調べる再送パケット検出ステップと、
該再送パケット検出ステップが存在を検出したすべてのパケットを前記受信装置へ再送する再送ステップと、
を備え、
前記受信装置は、
前記送信装置から受信した前記パケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信ステップと、
前記パケットの欠損を検出するパケット欠損検出ステップと、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように命令する再送シーケンス番号追加ステップと、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理ステップと、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信ステップへ送信する再送要求送信ステップと、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供ステップと、
を備え、
受信装置は、
再送されるパケットのシーケンス番号を乗せた再送要求応答パケットを前記送信装置から受信する再送要求応答受信ステップと、
前記再送要求応答パケットから前記シーケンス番号を取り出し、再送要求リストから前記シーケンス番号と同じシーケンス番号を削除するように命令する削除命令を再送要求リスト管理ステップへ出す再送シーケンス削除ステップと、
前記再送要求リストの状態を、再送要求リストに残っているシーケンス番号のパケットの再送要求を行ったが前記送信装置からは今後再送されてこないことを意味する”ＡＣＴＩＶＥ”状態に設定する命令を前記再送要求リスト管理ステップへ出す再送要求応答通知ステップと
を備えたことを特徴とするパケット再送方法。
【請求項２５】
送信装置は、
特定のパケットまたは欠損時に再送するべきパケットを再送用バッファに格納する再送パケット格納ステップと、
前記特定のパケットまたは欠損時に再送するべきパケットの再送信を行う再送ステップと、を備え、
受信装置は、
前記特定のパケットまたは欠損時に再送するべきパケットを受信後、シーケンス番号順にソートしながら前記特定のパケットまたは欠損時に再送するべきパケットを受信バッファに格納する受信ステップと、
を備えたことを特徴とする請求の範囲第２４項記載のパケット再送方法。
【請求項２６】
受信装置は、
現在再送要求を行っているパケットのシーケンス番号および次の再送要求時に再送要求を行うパケットのシーケンス番号を格納する再送要求リストを生成し、シーケンス番号の追加および削除を行い、再送要求リストに格納されているシーケンス番号のパケットの状態を再送要求状態に切り替える再送要求リスト管理ステップを備えたことを特徴とする請求の範囲第２３項乃至第２５項に記載のパケット再送方法。
【請求項２７】
受信装置は、
パケットの受信回数および受信時間から決定されるパケットの受信時間間隔で、受信バッファ内のパケットのシーケンス番号の不整合から欠損したパケットのシーケンス番号を検出するパケット欠損検出ステップと、
該パケット欠損検出ステップが欠損を検出したパケットのシーケンス番号を再送要求リストに追加する命令を再送要求リスト管理ステップへ出す再送シーケンス番号追加ステップと、
前記再送要求リストの状態を再送パケット受信待ちの状態を意味する”ＲＥＡＤＹ状態”に設定する命令を前記再送要求リスト管理ステップへ出す再送要求通知ステップを備えたことを特徴とする請求の範囲請求の範囲第２３項乃至第２５項記載のパケット再送方法。
【請求項２８】
受信装置は、
再送要求リストに存在する１以上の再送するべきパケットのシーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットの前記シーケンス番号を取り出して通知する再送要求受信ステップと、
前記通知されたシーケンス番号のパケットが再送バッファに格納されているか否かを調べる再送パケット検出ステップと、
該再送パケット検出ステップが存在を検出したすべてのパケットのシーケンス番号を１つの再送要求応答パケットに乗せ、前記受信装置へ送信する再送要求応答ステップと、
前記再送パケット検出ステップが検出した前記パケットを前記受信装置へ再送信する再送ステップと
を備えたことを特徴とする請求の範囲第２４項または第２５項記載のパケット再送方法。
【請求項２９】
受信装置は、
パケット提供ステップが要求アプリケーション部に提供したパケットの最大（最新）シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記最大シーケンス番号を取り出して通知する再送要求受信ステップと、
通知された前記最大シーケンス番号より小さいシーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除ステップと、
を備えたことを特徴とする請求の範囲第２４項または第２５項記載のパケット再送方法。
【請求項３０】
受信装置は、
再送要求リストに存在する１以上の再送するべきパケットのシーケンス番号と、パケット提供ステップが要求アプリケーション部に提供したパケットの最大（最新）シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記シーケンス番号と、前記最大シーケンス番号を取り出して通知する再送要求受信ステップと、
前記通知されたシーケンス番号のパケットが再送用バッファ内に有るか否かを調べる再送パケット検出ステップと、
前記通知された最大シーケンス番号より小さいシーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除ステップと、
前記再送パケット検出ステップが存在を検出したすべてのパケットのシーケンス番号を１つの再送要求応答パケットに乗せ、前記受信装置へ送信する再送要求応答ステップと、
前記再送パケット検出ステップが検出したパケットを前記受信装置へ再送信する再送ステップと
を備えたことを特徴とする請求の範囲第２４項または第２５項記載のパケット再送方法。
【請求項３１】
受信装置は、
再送されるパケットのシーケンス番号を乗せた再送要求応答パケットを前記送信装置から受信する再送要求応答受信ステップと、
前記再送要求応答パケットから前記シーケンス番号を取り出し、再送要求リストから前記シーケンス番号と同じシーケンス番号を削除するように命令する削除命令を再送要求リスト管理ステップへ出す再送シーケンス削除ステップと、
を備えたことを特徴とする請求の範囲第２４項または第２５項記載のパケット再送方法。
【請求項３２】
受信装置は、
受信バッファ内に格納されているパケットの中から、１つ以上のパケットのペイロード（データ）を要求アプリケーション部に提供し、前記パケットのシーケンス番号よりも小さいシーケンス番号を再送要求リストから削除し、前回に提供されたパケットのシーケンス番号（Ｎ：Ｎは自然数）の次のシーケンス番号（Ｎ＋１）のパケットのペイロードを指定された時間内に提供し、前記指定された時間内に前記次のシーケンス番号（Ｎ＋１）のパケットが受信バッファに存在しない、あるいは挿入されない場合は、提供されるべきパケットが欠損したことを前記要求アプリケーション部に通知するパケット提供ステップを備えたことを特徴とする請求の範囲第２３項乃至第２５項に記載のパケット再送方法。
【請求項３３】
受信装置は、
指定時間内に提供しなければならないパケットが受信バッファにない場合、再びパケット欠損検出と再送要求送信を指定時間内に１回以上行うパケット提供ステップを備えたことを特徴とする請求の範囲第２９項又は第３０項又は第３２項に記載のパケット再送方法。
【請求項３４】
受信装置は、
再送要求リストの状態が、該再送要求リストに格納されているシーケンス番号のパケットの送信装置への再送要求はすでに行われているが前記送信装置からは今後再送されてこないことを意味する”ＡＣＴＩＶＥ”状態であり、要求アプリケーション部に提供するパケットのシーケンス番号が前記再送要求リストの中にある場合、再送要求を行っても再送されないと判断し、指定時間を待たずすぐに提供されるべきパケットが欠損したことを要求者に通知するパケット提供ステップを備えたことを特徴とする請求の範囲第２９項又は第３０項又は第３２項記載のパケット再送方法。
【請求項３５】
シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送方法において、
送信装置は、
受信装置へ送信したパケットを蓄積しておく再送用バッファと、
前記受信装置から受信した再送要求パケットからシーケンス番号と要求アプリケーションへ提供した最大（最新）シーケンス番号を識別して通知する再送要求受信ステップと、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調べる再送パケット検出ステップと、
該再送パケット検出ステップが存在を検出したすべてのパケットを前記受信装置へ再送する再送ステップと、
を備え、
前記受信装置は、
前記送信装置から受信した前記パケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信ステップと、
前記パケットの欠損を検出するパケット欠損検出ステップと、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように命令する再送シーケンス番号追加ステップと、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理ステップと、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信ステップへ送信する再送要求送信ステップと、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供ステップと、
を備え、
前記パケットは、すべてのパケットに与えられる一般シーケンス番号と、特定のパケット又は欠損時に再送するべきパケットに与えられる優先シーケンス番号が付加されたパケットであり、
送信装置は、
前記特定のパケット又は欠損時に再送するべきパケットを再送用バッファに格納する再送パケット格納ステップと、
前記特定のパケット又は欠損時に再送するべきパケットの再送信を行う再送ステップとを備え、
受信装置は、前記特定のパケット又は欠損時に再送するべきパケットを受信後、一般シーケンス番号順にソートしながら前記特定のパケット又は欠損時に再送するべきパケットを受信バッファに格納する受信ステップと、
を備えたことを特徴とするパケット再送方法。
【請求項３６】
受信装置は、
再送を行うパケットの一般シーケンス番号を格納する再送リストを生成し、前記一般シーケンス番号の追加と削除を行う再送リスト管理ステップを備えたことを特徴とする請求の範囲第３５項記載パケット再送方法。
【請求項３７】
受信装置は、
受信ステップが受信したパケットの一般シーケンス番号が再送リストにある場合、前記一般シーケンス番号を前記再送リストから削除する命令を再送リスト管理ステップへ出す再送シーケンス番号削除ステップと、前記パケットの受信回数および受信時間から決定されるパケットの受信時間間隔、および優先シーケンス番号の不整合から優先度の高い特定のパケットが欠損する毎に、受信バッファ内のパケットや受信パケットの一般シーケンス番号と優先シーケンス番号から、欠損を発生した優先度の高い特定のパケットおよび欠損時に再送するべきパケットの一般シーケンス番号を検出するパケット欠損検出ステップと、
該パケット欠損検出ステップが欠損を検出した前記優先度の高い特定のパケットおよび欠損時に再送するべきパケットの一般シーケンス番号を再送リストに追加する命令を前記再送リスト管理ステップへ出す再送シーケンス番号追加ステップを備えたことを特徴とする請求の範囲第３５項記載のパケット再送方法。
【請求項３８】
受信装置は、
再送リストに存在する１以上の一般シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記一般シーケンス番号を取り出して通知する再送要求受信ステップと、
前記通知された一般シーケンス番号のパケットが再送用バッファ内に有るか否かを調べる再送パケット検出ステップと、
該再送パケット検出ステップが存在を検出した一般シーケンス番号のパケットを前記受信装置へ再送信する再送ステップと、
を備えたことを特徴とする請求の範囲第３５項記載のパケット再送方法。
【請求項３９】
受信装置は、
パケット提供ステップが要求アプリケーション部に提供したパケットの最大（最新）一般シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置に送信する再送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記最大一般シーケンス番号を取り出して通知する再送要求受信ステップと、
通知された前記最大一般シーケンス番号より小さい一般シーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除ステップと、
備えたことを特徴とする請求の範囲第３５項記載のパケット再送方法。
【請求項４０】
受信装置は、
再送リストに存在する１以上の一般シーケンス番号と、パケット提供ステップが要求アプリケーション部に提供したパケットの最大（最新）一般シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置に送信する再送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記一般シーケンス番号と、前記最大一般シーケンス番号を取り出して通知する再送要求受信ステップと、
通知された前記最大一般シーケンス番号より小さい一般シーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除ステップと、
前記通知された一般シーケンス番号のパケットが再送用バッファ内に有るか否かを調べる再送パケット検出ステップと、
該再送パケット検出ステップが存在を検出した一般シーケンス番号のパケットを前記受信装置へ再送信する再送ステップと、
を備えたことを特徴とする請求の範囲第３５項記載のパケット再送方法。
【請求項４１】
受信装置は、
受信バッファ内に格納されているパケットの中から、１つ以上のパケットのペイロード（データ）を要求アプリケーション部に提供し、前記パケットの一般シーケンス番号よりも小さい一般シーケンス番号を再送リストから削除し、前回に提供したパケットの一般シーケンス番号（Ｎ：Ｎは自然数）の次の一般シーケンス番号（Ｎ＋１）のパケットのペイロードを指定された時間内に提供し、前記指定された時間内に前記一般シーケンス番号（Ｎ＋１）のパケットが受信バッファに存在しない、又は挿入されない場合は、提供されるべきパケットが欠損したことを前記要求アプリケーション部に通知するパケット提供ステップを備えたことを特徴とする請求の範囲第３５項記載のパケット再送方法。
【請求項４２】
受信装置は、指定時間内に提供しなければならないパケットが受信バッファに存在しない場合、再びパケット欠損検出と前記再送要求送信を指定時間内に数回行うパケット提供ステップを備えたことを特徴とする請求の範囲第４０項記載のパケット再送方法。
【請求項４３】
受信装置は、
提供するパケットの一般シーケンス番号が、再送リストの中に存在しない場合、再送要求を行わず、指定された時間を待たずすぐに提供されるべきパケットが欠損したことを要求アプリケーション部に通知するパケット提供ステップを備えたことを特徴とする請求の範囲第４０項記載のパケット再送方法。
【請求項４４】
送信装置は、
任意のパケットｐの近辺ｎ個のパケットにおいて優先度の高い特定のパケットまたは欠損時に再送するべきパケットに割り当てるべき優先度情報をｍ個毎（ｍ≦ｎ：ｍ，ｎとも自然数）にパケットｐに付加し、前記ｎおよびｍの値をネットワークの輻輳状況から決定する優先度情報付加ステップを備え、
受信装置は、
パケットの受信回数および受信時間から決定されるパケットの受信時間間隔、およびシーケンス番号の不整合から重要なパケットが欠損する毎に、受信バッファ内のパケットや受信パケットのシーケンス番号と、前記優先度情報から、欠損を発生した優先度の高い特定のパケットおよび欠損時に再送するべきパケットのシーケンス番号を検出するパケット欠損検出ステップを備えたことを特徴とする請求の範囲第２４項または第２５項に記載のパケット再送方法。
【発明の詳細な説明】
技術分野
本発明は、ビデオや音声などのリアルタイムデータをインターネットや無線通信網経由でストリーミング配信するサーバとクライアントに関する。また、本発明は、リアルタイム性の高いデータの転送において、パケット欠損発生時のリアルタイム性を重視しながらより信頼性の高い通信を行うパケット再送システムおよびパケット再送方法に関する。
背景技術
一般に、ネットワーク上を流れるパケットは、ネットワーク上のノード（ルータ）のオーバーフローや、無線空間でのビット誤りなどから、欠損してしまうことが多々ある。このようなパケット欠損の耐性として、（１）何も行わない、（２）誤りを訂正したり、補正を行う、（３）再送を行う、などの方法が考えられる。
（１）の「何も行わない」方法では、ビデオストリームはパケット欠損によリブロックノイズが発生したり、オーディオストリームは音の途切れが発生したり、その他のメディアデータなども正常なメディア再生ができなくなる。
（２）の「誤りを訂正したり、補正を行う」方法として、ビデオのデコード時に欠落したデータを前後のフレームデータなどから補正してデコードしたり、予め補正に必要な冗長なパケットを付加させる方法などがある。
（３）の「再送を行う」方法は、通常はリアルタイム性を要求されないデータ通信で行われる。例えば、ＴＣＰプロトコルは、受信できた確認としてＡＣＫパケットを送信元へ送っており、そのＡＣＫパケットが送信元に返ってこない場合、パケットは受信されていないと判断し再送を行う信頼性の高い転送プロトコルであるが、再送パケットを待つため再送に時間が費やしたり、ＡＣＫパケットの超過や再送パケットの増加が帯域を圧迫し、輻輳を引き起こしたりする。
しかし、マルチメディアのストリーミング配信では、データのダウンロードとは異なり、必ずしも全てのデータが届かなくても再生できることから、パケット欠損時には重要なデータパケットのみを再送要求したり、再送したりすることが考えられる。重要なパケットのみを再送することで帯域の有効利用が図れ、必要ないデータパケットの再送を待つこともないので、よりリアルタイム性も高くなる。
これらの目的で考えられた再送制御方式の例として、特開平９−２１４５０７号公報（無線通信方法）と特開平１１−２８４６５７号公報（再送制御方式）に記載されたものが知られている。
特開平９−２１４５０７号公報に記載された再送方式は、可能な限り品質を保証した形でリアルタイム通信が行える無線通信方法であり、パケット欠損時には数回再送を試み、それでも届かない場合は、優先度が低いパケットを破棄して再送を行うものである。
また、特開平１１−２８４６５７号公報に記載された再送方式は、輻輳時に優先度の低い通信のパケットを抑制するコネクション確立型通信の再送制御方式であり、各コネクションに再送できる回数を設定し、再送を行ったときに再送できる回数を１減らし、再送できる回数が０になったら、そのコネクションの通信を停止させ、優先度の高い帯域をできるだけ確保するものである。
また、ストリーミング配信のようなリアルタイム性の高いデータ伝送プロトコルとして、ＲＦＣ１８８９をはじめとするインターネット関連標準化規格となっているＲＴＰ（Ｒｅａｌ−Ｔｉｍｅ  Ｔｒａｎｓｐｏｒｔ  Ｐｒｏｔｏｃｏｌ）は、シーケンス番号やタイムスタンプが付加されたパケット通信のプロトコルであるが、再送処理は行っていない。
また、ＲＴＰの再送機能拡張案として、「ＲＴＰ  Ｐａｙｌｏａｄ  Ｔｙｐｅ  Ｆｏｒｍａｔ  ｔｏ  Ｅｎａｂｌｅ  Ｓｅｌｅｃｔｉｖｅ  Ｒｅｔｒａｎｓｍｉｓｓｉｏｎｓ」というタイトルのインターネットドラフト（ｄｒａｆｔ−ｍｉｙａｚａｋｉ−ａｖｔ−ｒｔｐ−ｓｅｌｒｅｔ−ＯＯ．ｔｘｔ）が挙がっており、その再送機能拡張案では、ＲＴＰのシーケンス番号とは別途に、優先度の高い再送すべきパケットのみに割り与えられるシーケンス番号がある。
以上のように、ビデオや音声などのリアルタイムデータの配信を行うシステムでは、パケットが欠損した場合、その対策を何も行わなければ、データが欠落することになり、コンテンツの再生品質が良くないという問題がある。
また、誤り訂正や補正を行う方法では、受信側の負荷が大きくなったり、補正を行うための冗長なデータによって、より輻輳を悪化させることにもなるという問題がある。
再送を行う方法では、ＴＣＰプロトコルのように、再送パケットを待つため再送に時間が費やしたり、ＡＣＫパケットの超過や再送パケットの増加が帯域を圧迫し、輻輳を引き起こしたりするという問題がある。
優先度の高いパケットだけを再送する方法では、受信側で優先度の低いパケットの再送要求を行った場合、その再送パケットは送信元で破棄される可能性もあるのに、受信側はその再送パケットを待ち受けたり、何度も再送要求を行ったりすることになり、無駄な再送処理を行っていることになるという問題がある。
また、すべてのパケットに与えられる一般シーケンス番号と、重要なパケットおよび欠損時には再送した方が良いと判断できるパケットのみに与えられる優先シーケンス番号が付加された、ＲＴＰの再送機能拡張案によるパケット通信では、受信側で優先度を把握できる利点があるが、連続したパケットが欠損した場合は、正確な優先度を認識することができず、連続欠損したすべてのパケットの再送要求を行わなければならないという問題がある。例えば、第１６図が一般シーケンス番号と優先シーケンス番号が付加されたパケット通信におけるパケット欠損の例を示したものであるが、一般シーケンス番号２０と２１が連続欠損しており、優先シーケンス番号は一般シーケンス番号１９から２２の間で１しか増加していないため、一般シーケンス番号２０と２１のどちらが再送しなければならない優先度の高いパケットなのか判断はできず、結局、一般シーケンス番号２０と２１の両パケットの再送要求を行わなければならない。
本発明は、このような問題を解決し、優先度の高い重要なパケットのみを再送することで再送処理によるネットワーク負荷の浪費を最小限に抑えることができ、ネットワークの輻輳時でも優先度の高いパケットの伝送容量を確保できるパケットの再送システム並びにパケットの転送システムを提供することを目的とする。
発明の開示
本発明に係るパケット再送システムは、
シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送システムにおいて、
送信装置は、
受信装置へ送信したパケットを蓄積しておく再送用バッファと、
前記受信装置から受信した再送要求パケットからシーケンス番号と要求アプリケーションへ提供した最大（最新）シーケンス番号を識別して通知する再送要求受信手段と、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調べる再送パケット検出手段と、
該再送パケット検出手段が存在を検出したすべてのパケットを前記受信装置へ再送する再送手段と、
を備えたものである。
また、シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送システムにおいて、
受信装置は、
送信装置から受信したパケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信手段と、
前記パケットの欠損を検出するパケット欠損検出手段と、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように追加命令を発する再送シーケンス番号追加手段と、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理手段と、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信手段へ送信する再送要求送信手段と、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供手段と、
を備えたものである。
また、シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送システムにおいて、
送信装置は、
受信装置へ送信したパケットを蓄積しておく再送用バッファと、
前記受信装置から受信した再送要求パケットからシーケンス番号と要求アプリケーションへ提供した最大（最新）シーケンス番号を識別して通知する再送要求受信手段と、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調べる再送パケット検出手段と、
該再送パケット検出手段が存在を検出したすべてのパケットを前記受信装置へ再送する再送手段と、
を備え、
前記受信装置は、
前記送信装置から受信した前記パケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信手段と、
前記パケットの欠損を検出するパケット欠損検出手段と、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように命令する再送シーケンス番号追加手段と、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理手段と、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信手段へ送信する再送要求送信手段と、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供手段と、
を備えたものである。
また、送信装置は、
特定のパケットまたは欠損時に再送するべきパケットを再送用バッファに格納する再送パケット格納手段と、
前記特定のパケットまたは欠損時に再送するべきパケットの再送信を行う再送手段と、を備え、
受信装置は、
前記特定のパケットまたは欠損時に再送するべきパケットを受信後、シーケンス番号順にソートしながら前記特定のパケットまたは欠損時に再送するべきパケットを受信バッファに格納する受信手段と、
を備えたものである。
また、受信装置は、
現在再送要求を行っているパケットのシーケンス番号および次の再送要求時に再送要求を行うパケットのシーケンス番号を格納する再送要求リストを生成し、シーケンス番号の追加および削除を行い、再送要求リストに格納されているシーケンス番号のパケットの状態を再送要求状態に切り替える再送要求リスト管理手段と、
を備えたものである。
また、受信装置は、
パケットの受信回数および受信時間から決定されるパケットの受信時間間隔で、受信バッファ内のパケットのシーケンス番号の不整合から欠損したパケットのシーケンス番号を検出するパケット欠損検出手段と、
該パケット欠損検出手段が欠損を検出したパケットのシーケンス番号を再送要求リストに追加する命令を再送要求リスト管理手段へ出す再送シーケンス番号追加手段と、
前記再送要求リストの状態を再送パケット受信待ちの状態を意味する”ＲＥＡＤＹ状態”に設定する命令を前記再送要求リスト管理手段へ出す再送要求通知手段を備えたものである。
また、受信装置は、
再送要求リストに存在する１以上の再送するべきパケットのシーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットの前記シーケンス番号を取り出して通知する再送要求受信手段と、
前記通知されたシーケンス番号のパケットが再送バッファに格納されているか否かを調べる再送パケット検出手段と、
該再送パケット検出手段が存在を検出したすべてのパケットのシーケンス番号を１つの再送要求応答パケットに乗せ、前記受信装置へ送信する再送要求応答手段と、
前記再送パケット検出手段が検出した前記パケットを前記受信装置へ再送信する再送手段と、
を備えたものである。
また、受信装置は、
パケット提供手段が要求アプリケーション部に提供したパケットの最大（最新）シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記最大シーケンス番号を取り出して通知する再送要求受信手段と、
通知された前記最大シーケンス番号より小さいシーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除手段と、
を備えたものである。
また、受信装置は、
再送要求リストに存在する１以上の再送するべきパケットのシーケンス番号と、パケット提供手段が要求アプリケーション部に提供したパケットの最大（最新）シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記シーケンス番号と、前記最大シーケンス番号を取り出して通知する再送要求受信手段と、
前記通知されたシーケンス番号のパケットが再送用バッファ内に有るか否かを調べる再送パケット検出手段と、
前記通知された最大シーケンス番号より小さいシーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除手段と、
前記再送パケット検出手段が存在を検出したすべてのパケットのシーケンス番号を１つの再送要求応答パケットに乗せ、前記受信装置へ送信する再送要求応答手段と、
前記再送パケット検出手段が検出したパケットを前記受信装置へ再送信する再送手段と
を備えたものである。
また、受信装置は、
再送されるパケットのシーケンス番号を乗せた再送要求応答パケットを前記送信装置から受信する再送要求応答受信手段と、
前記再送要求応答パケットから前記シーケンス番号を取り出し、再送要求リストから前記シーケンス番号と同じシーケンス番号を削除するように命令する削除命令を再送要求リスト管理手段へ出す再送シーケンス削除手段と、
を備えたものである。
また、受信装置は、
再送されるパケットのシーケンス番号を乗せた再送要求応答パケットを前記送信装置から受信する再送要求応答受信手段と、
前記再送要求応答パケットから前記シーケンス番号を取り出し、再送要求リストから前記シーケンス番号と同じシーケンス番号を削除するように命令する削除命令を再送要求リスト管理手段へ出す再送シーケンス削除手段と、
前記再送要求リストの状態を、再送要求リストに残っているシーケンス番号のパケットの再送要求を行ったが前記送信装置からは今後再送されてこないことを意味する”ＡＣＴＩＶＥ”状態に設定する命令を前記再送要求リスト管理手段へ出す再送要求応答通知手段と、
を備えたものである。
また、受信装置は、
受信バッファ内に格納されているパケットの中から、１つ以上のパケットのペイロード（データ）を要求アプリケーション部に提供し、前記パケットのシーケンス番号よりも小さいシーケンス番号を再送要求リストから削除し、前回に提供されたパケットのシーケンス番号（Ｎ：Ｎは自然数）の次のシーケンス番号（Ｎ＋１）のパケットのペイロードを指定された時間内に提供し、前記指定された時間内に前記次のシーケンス番号（Ｎ＋１）のパケットが受信バッファに存在しない、あるいは挿入されない場合は、提供されるべきパケットが欠損したことを前記要求アプリケーション部に通知するパケット提供手段を備えたものである。
また、受信装置は、
指定時間内に提供しなければならないパケットが受信バッファにない場合、再びパケット欠損検出と再送要求送信を指定時間内に１回以上行うパケット提供手段を備えたものである。
また、受信装置は、
再送要求リストの状態が、該再送要求リストに格納されているシーケンス番号のパケットの送信装置への再送要求はすでに行われているが前記送信装置からは今後再送されてこないことを意味する”ＡＣＴＩＶＥ”状態であり、要求アプリケーション部に提供するパケットのシーケンス番号が前記再送要求リストの中にある場合、再送要求を行っても再送されないと判断し、指定時間を待たずすぐに提供されるべきパケットが欠損したことを要求者に通知するパケット提供手段を備えたものである。
また、すべてのパケットに与えられる一般シーケンス番号と、特定のパケット又は欠損時に再送するべきパケットに与えられる優先シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケット再送システムにおいて、
送信装置は、
前記特定のパケット又は欠損時に再送するべきパケットを再送用バッファに格納する再送パケット格納手段と、
前記特定のパケット又は欠損時に再送するべきパケットの再送信を行う再送手段とを備え、
受信装置は、前記特定のパケット又は欠損時に再送するべきパケットを受信後、一般シーケンス番号順にソートしながら前記特定のパケット又は欠損時に再送するべきパケットを受信バッファに格納する受信手段と、
を備えたものである。
また、受信装置は、
再送を行うパケットの一般シーケンス番号を格納する再送リストを生成し、前記一般シーケンス番号の追加と削除を行う再送リスト管理手段を備えたものである。
また、受信装置は、
受信手段が受信したパケットの一般シーケンス番号が再送リストにある場合、前記一般シーケンス番号を前記再送リストから削除する命令を再送リスト管理手段へ出す再送シーケンス番号削除手段と、
前記パケットの受信回数および受信時間から決定されるパケットの受信時間間隔、および優先シーケンス番号の不整合から優先度の高い特定のパケットが欠損する毎に、受信バッファ内のパケットや受信パケットの一般シーケンス番号と優先シーケンス番号から、欠損を発生した優先度の高い特定のパケットおよび欠損時に再送するべきパケットの一般シーケンス番号を検出するパケット欠損検出手段と、
該パケット欠損検出手段が欠損を検出した前記優先度の高い特定のパケットおよび欠損時に再送するべきパケットの一般シーケンス番号を再送リストに追加する命令を前記再送リスト管理手段へ出す再送シーケンス番号追加手段を備えたものである。
また、受信装置は、
再送リストに存在する１以上の一般シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記一般シーケンス番号を取り出して通知する再送要求受信手段と、
前記通知された一般シーケンス番号のパケットが再送用バッファ内に有るか否かを調べる再送パケット検出手段と、
該再送パケット検出手段が存在を検出した一般シーケンス番号のパケットを前記受信装置へ再送信する再送手段と、
を備えたものである。
また、受信装置は、
パケット提供手段が要求アプリケーション部に提供したパケットの最大（最新）一般シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置に送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記最大一般シーケンス番号を取り出して通知する再送要求受信手段と、
通知された前記最大一般シーケンス番号より小さい一般シーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除手段と、
備えたものである。
また、受信装置は、
再送リストに存在する１以上の一般シーケンス番号と、パケット提供手段が要求アプリケーション部に提供したパケットの最大（最新）一般シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置に送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記一般シーケンス番号と、前記最大一般シーケンス番号を取り出して通知する再送要求受信手段と、
通知された前記最大一般シーケンス番号より小さい一般シーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除手段と、
前記通知された一般シーケンス番号のパケットが再送用バッファ内に有るか否かを調べる再送パケット検出手段と、
該再送パケット検出手段が存在を検出した一般シーケンス番号のパケットを前記受信装置へ再送信する再送手段と、
を備えたものである。
また、受信装置は、
受信バッファ内に格納されているパケットの中から、１つ以上のパケットのペイロード（データ）を要求アプリケーション部に提供し、前記パケットの一般シーケンス番号よりも小さい一般シーケンス番号を再送リストから削除し、前回に提供したパケットの一般シーケンス番号（Ｎ：Ｎは自然数）の次の一般シーケンス番号（Ｎ＋１）のパケットのペイロードを指定された時間内に提供し、前記指定された時間内に前記一般シーケンス番号（Ｎ＋１）のパケットが受信バッファに存在しない、又は挿入されない場合は、提供されるべきパケットが欠損したことを前記要求アプリケーション部に通知するパケット提供手段を備えたものである。
また、受信装置は、
指定時間内に提供しなければならないパケットが受信バッファに存在しない場合、再びパケット欠損検出と前記再送要求送信を指定時間内に数回行うパケット提供手段を備えたものである。
また、受信装置は、
提供するパケットの一般シーケンス番号が、再送リストの中に存在しない場合、再送要求を行わず、指定された時間を待たずすぐに提供されるべきパケットが欠損したことを要求アプリケーション部に通知するパケット提供手段を備えたものである。
また、送信装置は、
任意のパケットｐの近辺ｎ（ｎは自然数）個のパケットにおいて優先度の高い特定のパケットまたは欠損時に再送するべきパケットに割り当てるべき優先度情報をｍ個毎（ｍ≦ｎ：ｍ，ｎとも自然数）にパケットｐに付加し、前記ｎおよび前記ｍの値をネットワークの輻輳状況から決定する優先度情報付加手段を備え、
受信装置は、
パケットの受信回数および受信時間から決定されるパケットの受信時間間隔、およびシーケンス番号の不整合から重要なパケットが欠損する毎に、受信バッファ内のパケットや受信パケットのシーケンス番号と、前記優先度情報から、欠損を発生した優先度の高い特定のパケットおよび欠損時に再送するべきパケットのシーケンス番号を検出するパケット欠損検出手段を備えたことを特徴とするものである。
また、本発明に係るパケット再送方法は、
シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送方法において、
送信装置は、
受信装置へ送信したパケットを蓄積しておく再送用バッファと、
前記受信装置から受信した再送要求パケットからシーケンス番号と要求アプリケーションへ提供した最大（最新）シーケンス番号を識別して通知する再送要求受信ステップと、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調べる再送パケット検出ステップと、
該再送パケット検出ステップが存在を検出したすべてのパケットを前記受信装置へ再送する再送ステップと、
を備えたものである。
また、シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送方法において、
受信装置は、
送信装置から受信したパケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信ステップと、
前記パケットの欠損を検出するパケット欠損検出ステップと、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように追加命令を発する再送シーケンス番号追加ステップと、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理ステップと、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信ステップへ送信する再送要求送信ステップと、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供ステップと、
を備えたものである。
また、シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送方法において、
送信装置は、
受信装置へ送信したパケットを蓄積しておく再送用バッファと、
前記受信装置から受信した再送要求パケットからシーケンス番号と要求アプリケーションへ提供した最大（最新）シーケンス番号を識別して通知する再送要求受信ステップと、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調べる再送パケット検出ステップと、
該再送パケット検出ステップが存在を検出したすべてのパケットを前記受信装置へ再送する再送ステップと、
を備え、
前記受信装置は、
前記送信装置から受信した前記パケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信ステップと、
前記パケットの欠損を検出するパケット欠損検出ステップと、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように命令する再送シーケンス番号追加ステップと、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理ステップと、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信ステップへ送信する再送要求送信ステップと、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供ステップと、
を備えたものである。
また、送信装置は、
特定のパケットまたは欠損時に再送するべきパケットを再送用バッファに格納する再送パケット格納ステップと、
前記特定のパケットまたは欠損時に再送するべきパケットの再送信を行う再送ステップと、を備え、
受信装置は、
前記特定のパケットまたは欠損時に再送するべきパケットを受信後、シーケンス番号順にソートしながら前記特定のパケットまたは欠損時に再送するべきパケットを受信バッファに格納する受信ステップを備えたものである。
また、受信装置は、
現在再送要求を行っているパケットのシーケンス番号および次の再送要求時に再送要求を行うパケットのシーケンス番号を格納する再送要求リストを生成し、シーケンス番号の追加および削除を行い、再送要求リストに格納されているシーケンス番号のパケットの状態を再送要求状態に切り替える再送要求リスト管理ステップを備えたものである。
また、受信装置は、
パケットの受信回数および受信時間から決定されるパケットの受信時間間隔で、受信バッファ内のパケットのシーケンス番号の不整合から欠損したパケットのシーケンス番号を検出するパケット欠損検出ステップと、該パケット欠損検出ステップが欠損を検出したパケットのシーケンス番号を再送要求リストに追加する命令を再送要求リスト管理ステップへ出す再送シーケンス番号追加ステップと、
前記再送要求リストの状態を再送パケット受信待ちの状態を意味する”ＲＥＡＤＹ状態”に設定する命令を前記再送要求リスト管理ステップへ出す再送要求通知ステップと、
を備えたものである。
また、受信装置は、
再送要求リストに存在する１以上の再送するべきパケットのシーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットの前記シーケンス番号を取り出して通知する再送要求受信ステップと、
前記通知されたシーケンス番号のパケットが再送バッファに格納されているか否かを調べる再送パケット検出ステップと、
該再送パケット検出ステップが存在を検出したすべてのパケットのシーケンス番号を１つの再送要求応答パケットに乗せ、前記受信装置へ送信する再送要求応答ステップと、
前記再送パケット検出ステップが検出した前記パケットを前記受信装置へ再送信する再送ステップと
を備えたものである。
また、受信装置は、
パケット提供ステップが要求アプリケーション部に提供したパケットの最大（最新）シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記最大シーケンス番号を取り出して通知する再送要求受信ステップと、
通知された前記最大シーケンス番号より小さいシーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除ステップと、
を備えたものである。
また、受信装置は、
再送要求リストに存在する１以上の再送するべきパケットのシーケンス番号と、パケット提供ステップが要求アプリケーション部に提供したパケットの最大（最新）シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記シーケンス番号と、前記最大シーケンス番号を取り出して通知する再送要求受信ステップと、
前記通知されたシーケンス番号のパケットが再送用バッファ内に有るか否かを調べる再送パケット検出ステップと、
前記通知された最大シーケンス番号より小さいシーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除ステップと、
前記再送パケット検出ステップが存在を検出したすべてのパケットのシーケンス番号を１つの再送要求応答パケットに乗せ、前記受信装置へ送信する再送要求応答ステップと、
前記再送パケット検出ステップが検出したパケットを前記受信装置へ再送信する再送ステップと
を備えたものである。
また、受信装置は、
再送されるパケットのシーケンス番号を乗せた再送要求応答パケットを前記送信装置から受信する再送要求応答受信ステップと、
前記再送要求応答パケットから前記シーケンス番号を取り出し、再送要求リストから前記シーケンス番号と同じシーケンス番号を削除するように命令する削除命令を再送要求リスト管理ステップへ出す再送シーケンス削除ステップと、
を備えたものである。
また、受信装置は、
再送されるパケットのシーケンス番号を乗せた再送要求応答パケットを前記送信装置から受信する再送要求応答受信ステップと、
前記再送要求応答パケットから前記シーケンス番号を取り出し、再送要求リストから前記シーケンス番号と同じシーケンス番号を削除するように命令する削除命令を再送要求リスト管理ステップへ出す再送シーケンス削除ステップと、
前記再送要求リストの状態を、再送要求リストに残っているシーケンス番号のパケットの再送要求を行ったが前記送信装置からは今後再送されてこないことを意味する”ＡＣＴＩＶＥ”状態に設定する命令を前記再送要求リスト管理ステップへ出す再送要求応答通知ステップと
を備えたものである。
また、受信装置は、
受信バッファ内に格納されているパケットの中から、１つ以上のパケットのペイロード（データ）を要求アプリケーション部に提供し、前記パケットのシーケンス番号よりも小さいシーケンス番号を再送要求リストから削除し、前回に提供されたパケットのシーケンス番号（Ｎ：Ｎは自然数）の次のシーケンス番号（Ｎ＋１）のパケットのペイロードを指定された時間内に提供し、前記指定された時間内に前記次のシーケンス番号（Ｎ＋１）のパケットが受信バッファに存在しない、あるいは挿入されない場合は、提供されるべきパケットが欠損したことを前記要求アプリケーション部に通知するパケット提供ステップを備えたものである。
また、受信装置は、
指定時間内に提供しなければならないパケットが受信バッファにない場合、再びパケット欠損検出と再送要求送信を指定時間内に１回以上行うパケット提供ステップを備えたものである。
また、受信装置は、
再送要求リストの状態が、該再送要求リストに格納されているシーケンス番号のパケットの送信装置への再送要求はすでに行われているが前記送信装置からは今後再送されてこないことを意味する”ＡＣＴＩＶＥ”状態であり、要求アプリケーション部に提供するパケットのシーケンス番号が前記再送要求リストの中にある場合、再送要求を行っても再送されないと判断し、指定時間を待たずすぐに提供されるべきパケットが欠損したことを要求者に通知するパケット提供ステップを備えたものである。
また、すべてのパケットに与えられる一般シーケンス番号と、特定のパケット又は欠損時に再送するべきパケットに与えられる優先シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケット再送方法において、
送信装置は、
前記特定のパケット又は欠損時に再送するべきパケットを再送用バッファに格納する再送パケット格納ステップと、
前記特定のパケット又は欠損時に再送するべきパケットの再送信を行う再送ステップとを備え、
受信装置は、前記特定のパケット又は欠損時に再送するべきパケットを受信後、一般シーケンス番号順にソートしながら前記特定のパケット又は欠損時に再送するべきパケットを受信バッファに格納する受信ステップを備えたものである。
また、受信装置は、
再送を行うパケットの一般シーケンス番号を格納する再送リストを生成し、前記一般シーケンス番号の追加と削除を行う再送リスト管理ステップを備えたものである。
また、受信装置は、
受信ステップが受信したパケットの一般シーケンス番号が再送リストにある場合、前記一般シーケンス番号を前記再送リストから削除する命令を再送リスト管理ステップへ出す再送シーケンス番号削除ステップと、
前記パケットの受信回数および受信時間から決定されるパケットの受信時間間隔、および優先シーケンス番号の不整合から優先度の高い特定のパケットが欠損する毎に、受信バッファ内のパケットや受信パケットの一般シーケンス番号と優先シーケンス番号から、欠損を発生した優先度の高い特定のパケットおよび欠損時に再送するべきパケットの一般シーケンス番号を検出するパケット欠損検出ステップと、
該パケット欠損検出ステップが欠損を検出した前記優先度の高い特定のパケットおよび欠損時に再送するべきパケットの一般シーケンス番号を再送リストに追加する命令を前記再送リスト管理ステップへ出す再送シーケンス番号追加ステップと、
を備えたものである。
また、受信装置は、
再送リストに存在する１以上の一般シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記一般シーケンス番号を取り出して通知する再送要求受信ステップと、
前記通知された一般シーケンス番号のパケットが再送用バッファ内に有るか否かを調べる再送パケット検出ステップと、
該再送パケット検出ステップが存在を検出した一般シーケンス番号のパケットを前記受信装置へ再送信する再送ステップと、
を備えたものである。
また、受信装置は、
パケット提供ステップが要求アプリケーション部に提供したパケットの最大（最新）一般シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置に送信する再送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記最大一般シーケンス番号を取り出して通知する再送要求受信ステップと、
通知された前記最大一般シーケンス番号より小さい一般シーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除ステップと、
備えたものである。
また、受信装置は、
再送リストに存在する１以上の一般シーケンス番号と、パケット提供ステップが要求アプリケーション部に提供したパケットの最大（最新）一般シーケンス番号を乗せた１つの再送要求パケットを生成し、前記再送要求パケットを送信装置に送信する再送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記一般シーケンス番号と、前記最大一般シーケンス番号を取り出して通知する再送要求受信ステップと、通知された前記最大一般シーケンス番号より小さい一般シーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除ステップと、
前記通知された一般シーケンス番号のパケットが再送用バッファ内に有るか否かを調べる再送パケット検出ステップと、
該再送パケット検出ステップが存在を検出した一般シーケンス番号のパケットを前記受信装置へ再送信する再送ステップと、
を備えたものである。
また、受信装置は、
受信バッファ内に格納されているパケットの中から、１つ以上のパケットのペイロード（データ）を要求アプリケーション部に提供し、前記パケットの一般シーケンス番号よりも小さい一般シーケンス番号を再送リストから削除し、前回に提供したパケットの一般シーケンス番号（Ｎ：Ｎは自然数）の次の一般シーケンス番号（Ｎ＋１）のパケットのペイロードを指定された時間内に提供し、前記指定された時間内に前記一般シーケンス番号（Ｎ＋１）のパケットが受信バッファに存在しない、又は挿入されない場合は、提供されるべきパケットが欠損したことを前記要求アプリケーション部に通知するパケット提供ステップを備えたものである。
また、受信装置は、
指定時間内に提供しなければならないパケットが受信バッファに存在しない場合、再びパケット欠損検出と前記再送要求送信を指定時間内に数回行うパケット提供ステップを備えたものである。
また、受信装置は、
提供するパケットの一般シーケンス番号が、再送リストの中に存在しない場合、再送要求を行わず、指定された時間を待たずすぐに提供されるべきパケットが欠損したことを要求アプリケーション部に通知するパケット提供ステップを備えたものである。
また、送信装置は、
任意のパケットｐの近辺ｎ（ｎは自然数）個のパケットにおいて優先度の高い特定のパケットまたは欠損時に再送するべきパケットに割り当てるべき優先度情報をｍ個毎（ｍ≦ｎ：ｍ，ｎとも自然数）にパケットｐに付加し、前記ｎおよび前記ｍの値をネットワークの輻輳状況から決定する優先度情報付加ステップを備え、
受信装置は、
パケットの受信回数および受信時間から決定されるパケットの受信時間間隔、およびシーケンス番号の不整合から重要なパケットが欠損する毎に、受信バッファ内のパケットや受信パケットのシーケンス番号と、前記優先度情報から、欠損を発生した優先度の高い特定のパケットおよび欠損時に再送するべきパケットのシーケンス番号を検出するパケット欠損検出ステップとを備えたものである。
発明を実施するための最良の形態
以下、本発明の実施の形態について添付図面を参照しつつ説明する。
実施の形態１．
第１図は本発明の実施の形態１を示すパケット再送システム、およびパケット転送システムの構成図であり、シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送、およびパケット転送を示している。本実施の形態１の再送システム、およびパケット転送システムは、インターネットや無線網などのネットワーク１０４と、パケットを送信する送信装置１０１と、ネットワーク１０４を介して送信装置１０１から送信されたパケットを受信する受信装置１０２と、その受信装置１０２からパケットデータを要求する要求者（アプリケーション）１０３とから構成される。
そして、送信装置１０１は、受信装置１０２へ送信済みのパケットのうち、再送すべきパケットのみを再送用バッファに格納しておく再送パケット格納手段１０５と、受信装置１０２からの再送要求パケットを受信し、再送要求パケットから再送要求されたパケットのシーケンス番号を取り出し再送パケット検出手段１０７へ、要求者に提供された最大シーケンス番号（この最大シーケンス番号は最新のパケットのシーケンス番号を意味する）を再送用バッファ削除手段１２０へ通知する再送要求受信手段１０６と、要求者１０３に提供された最大（最新）シーケンス番号より小さいシーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除手段１２０と、再送用バッファの中から再送要求受信手段１０６によって通知されたシーケンス番号を検出する再送パケット検出手段１０７と、再送パケット検出手段１０７によって検出されたすべてのシーケンス番号を１つの再送要求応答パケットに乗せて受信装置１０２へ送信する再送要求応答手段１０８と、再送パケット検出手段１０７で検出されたシーケンス番号のパケットを受信装置１０２に再送信する再送手段１０９を有している。
また、受信装置１０２は、送信装置１０１からパケットを受信し、シーケンス番号順にソートしながらパケットを受信バッファに格納する受信手段１１０と、次の再送要求時に再送要求を行うパケット、および現在再送要求を行っているパケットのシーケンス番号を格納する再送要求リストにおいて、シーケンス番号の追加と削除と、再送要求リストの状態遷移を行う再送要求リスト管理手段１１５と、パケットの受信回数および受信時間から決定されるパケット受信間隔で、受信バッファ内のパケットのシーケンス番号の不整合から欠損したパケットのシーケンス番号を検出するパケット欠損検出手段１１１と、パケット欠損検出手段１１１によって検出された欠損したパケットのシーケンス番号を再送要求リストに追加する命令を再送要求リスト管理手段１１９へ出す再送シーケンス番号追加手段１１２と、再送要求リストの状態を、再送要求は行ったが再送要求応答がまだ返っておらず、再送要求リストにあるシーケンス番号に対応するパケットがすべて再送されてくるかどうかわからない状態を意味する”ＲＥＡＤＹ”状態にする命令を再送要求リスト管理手段１１５へ出す再送要求通知手段１１３と、パケット欠損検出手段１１１がパケット欠損検出を行う間隔で再送要求リストに存在する複数のシーケンス番号を１つの再送要求パケットに乗せ、送信装置１０１へ送信する再送要求送信手段１１４と、再送要求応答パケットを受信し、再送要求応答パケットから送信装置１０１から再送されてくるパケットのシーケンス番号を再送シーケンス番号削除手段１１７へ通知する再送要求応答受信手段１１６と、再送要求応答受信手段１１６によって通知されたシーケンス番号の削除命令を再送要求リストに出す再送シーケンス番号削除手段１１７と、再送要求リストの状態を、再送要求リストにあるシーケンス番号は、そのパケットの再送要求を行ったが送信装置１０１からは再送されてこないことを意味する”ＡＣＴＩＶＥ”状態にする命令を再送要求リスト管理手段１１５へ出す再送要求応答通知手段１１８と、受信バッファ内に格納されているパケットの中から、１つの、および複数のパケットのペイロードを要求者（アプリケーション）１０３に提供するパケット提供手段１１９を有している。
第２図は送信装置を説明するためのフローチャートで、第３図、第４図、第５図、第６図、第７図は受信装置を説明するためのフローチャートで、第３図は受信手段１１０がパケットを受信して再送要求送信手段１１４が再送要求を行うまでの処理フローを説明し、第４図は受信装置１０２の再送要求リスト管理手段１１５の処理フローを説明し、第５図は受信装置１０２のパケット欠損検出手段１１１の処理フローを説明し、第６図は再送要求応答受信手段１１６によって再送要求応答パケットを受信したときの処理フローを説明し、第７図は要求者（アプリケーション）からパケット提供手段１１９によってパケットの提供を要求されたときの処理フローを説明するものである。
次に動作を説明する。
第１図の構成において、送信装置１０１は受信装置１０２へパケットを送信する（ステップＳ２０２）。送信装置１０１は、送信したパケットを再送用バッファへ保存する（ステップＳ２０３）。このとき、すべてのパケットを再送用バッファ２０１に保存しても良いし、再送すべき重要なパケットのみを再送用バッファ２０１に保存してもよい。ただし、再送用バッファ２０１のサイズが最大パケット数より大きくなった場合、あるいは、タイムスタンプにより時間管理のとき再送用バッファ２０１の蓄積時間量が最大時間より大きくなった場合（ステップＳ２０４）、再送用バッファ２０１のサイズが、最大パケット数以下あるいは最大時間以下になるまで、最小のシーケンス番号のパケットを再送用バッファ２０１から削除する（ステップＳ２０５）。
受信装置１０２の受信手段１１０は、第３図に示すように送信装置１０１からのパケットを受信すると（ステップＳ３０１）、受信したパケットをシーケンス番号順にソートしながら受信バッファに保存する（ステップＳ３０２）。
そして、所定の数のパケットを受信したとき、パケット欠損検出手段１１１はパケットが欠損していないかをチェックする。このチェック処理をパケット欠損検出処理という。パケット欠損検出手段１１１がパケット欠損検出処理（ステップＳ３０６）を行う間隔は、例えば、前回パケット欠損検出処理（ステップＳ３０６）を行った最後のパケットのシーケンス番号やタイムスタンプと今回受信したパケットのシーケンス番号やタイムスタンプの差から決定する（ステップＳ３０３）。パケット欠損検出処理（ステップＳ３０６）を行うシーケンス番号の間隔をＮｉｎｔ、タイムスタンプの間隔をＴｉｎｔ、パケット欠損検出手段１１１が前回パケット欠損検出処理（ステップＳ３０６）を行った最後のパケットのシーケンス番号をＮｃｕｒ、パケット欠損検出手段１１１が前回パケット欠損検出処理（ステップＳ３０６）を行った最後のパケットのタイムスタンプをＴｃｕｒとすると、受信手段１１０が今回受信したパケットのシーケンス番号がＮｃｕｒ＋Ｎｉｎｔと等しいかあるいはそれよりも大きいか、あるいは受信したパケットのタイムスタンプがＴｃｕｒ＋Ｔｉｎｔと等しいかあるいはそれよりも大きければ、ＮｃｕｒとＴｃｕｒに今回受信したパケットのシーケンス番号とタイムスタンプをそれぞれ代入した上で、パケット欠損検出処理（ステップＳ３０６）を行う。これにより、ＮｃｕｒとＴｃｕｒの値は今回の新たなパケットの最後のシーケンス番号とタイムスタンプとなる。なお、ＮｉｎｔやＴｉｎｔは、固定値でもよいし、ネットワークの輻輳状況から動的に決定してもよい。
パケット欠損検出手段１１１は、シーケンス番号順にソートされた受信バッファにおいて、前回パケット欠損検出処理（Ｓ３０６）を行った最後のパケットの次のパケットからシーケンス番号Ｎｃｕｒ（今回の最後のパケットのシーケンス番号）のパケットまでの範囲（ただし、Ｎｃｕｒのパケットを除く）、あるいはタイムスタンプＴｃｕｒ（今回の最後のパケットのタイムスタンプ）のパケットまでの範囲（ただし、Ｔｃｕｒのパケットを除く）で、シーケンス番号の整合性をチェックして抜けているシーケンス番号を検出する。
第５図にパケット欠損検出手段１１１によるパケット欠損検出処理（ステップＳ３０６）の詳細フローを示す。第５図において、パケット欠損検出手段１１１は、はじめに受信バッファ中でシーケンス番号がＦＳＮと等しくなるパケットのポインタをＰに設定する（ステップＳ５０２）。ここで、ＦＳＮは、前回パケット欠損検出を行った最後のパケットの次のパケットのシーケンス番号である。欠損したパケットの数をＬｏｓｓ、ＦＳＮからの距離をＩ、欠損したパケットのシーケンス番号のリストをＳＮ＿ｌｉｓｔとし、ＬｏｓｓおよびＦＳＮに初期値として０を設定し、ＳＮ＿ｌｉｓｔに初期値として空白（空リスト）を設定する（ステップＳ５０３）。
次に、パケット欠損検出処理のステップ５０４に示す上記範囲内［前回パケット欠損検出処理（Ｓ３０６）を行った最後のパケットの次のパケットからシーケンス番号Ｎｃｕｒ（今回の最後のパケットのシーケンス番号）のパケットまでの範囲（ただし、Ｎｃｕｒのパケットを除く）、あるいはタイムスタンプＴｃｕｒ（今回の最後のパケットのタイムスタンプ）のパケットまでの範囲（ただし、Ｔｃｕｒのパケットを除く）］で、受信バッファのポインタＰに格納されているパケットのシーケンス番号とＦＳＮ＋Ｉを比較する（ステップＳ５０５）。ステップＳ５０５において、もしＦＳＮ＋ＩとポインタＰに格納されているパケットのシーケンス番号が等しければ、シーケンス番号ＦＳＮ＋Ｉ番のパケットは欠損せず受信されていることになる。そこで、Ｉをインクリメントし（ステップＳ５０６）、さらにＰに次のパケットのポインタを設定する（ステップＳ５０６）。ステップＳ５０５において、もしＦＳＮ＋ＩとポインタＰに格納されているパケットのシーケンス番号が等しくなければ、ステップＳ５０７へ進む。ＦＳＮ＋ＩがポインタＰに格納されているパケットのシーケンス番号より小さければ（ステップＳ５０７）、シーケンス番号ＦＳＮ＋Ｉ番のパケットが欠損したことになる。そこで、ＳＮ＿ｌｉｓｔにＦＳＮ＋Ｉを追加し（ステップＳ５０８）、ＩとＬｏｓｓをインクリメントする（ステップＳ５０９）。
ステップＳ５０４で示された範囲すなわち、［前回パケット欠損検出処理（Ｓ３０６）を行った最後のパケットの次のパケットからシーケンス番号Ｎｃｕｒ（今回の最後のパケットのシーケンス番号）のパケットまでの範囲（ただし、Ｎｃｕｒのパケットを除く）、あるいはタイムスタンプＴｃｕｒ（今回の最後のパケットのタイムスタンプ）のパケットまでの範囲（ただし、Ｔｃｕｒのパケットを除く）］で、このシーケンス番号の比較が終了したら（ステップＳ５１０）、ＦＳＮにＩを加えて、ＦＳＮを次回のパケット欠損検出処理の開始シーケンス番号とする（ステップＳ５１１）。このとき、ＳＮ＿ｌｉｓｔにある番号が、前記範囲内の欠損したパケットのシーケンス番号となり、Ｌｏｓｓが欠損したパケットの数となる。
次に、パケット欠損が発生している受信バッファとパケット欠損検出処理実行の結果の例を第８図に示す。第８図において、８０１は、Ｎｉｎｔ＝８の場合の受信バッファを示し、８０２は、Ｎ回目のパケット欠損検出処理時のＦＳＮ、Ｎｃｕｒ、Ｉ、Ｌｏｓｓ、Ｓｎ＿ｌｉｓｔの状態を表し、８０３は、Ｎ＋１回目のパケット欠損検出処理時のＦＳＮ、Ｎｃｕｒ、Ｉ、Ｌｏｓｓ、Ｓｎ＿ｌｉｓｔの状態を表す。受信バッファ８０１内のパケットのシーケンス番号が、１、２、３、…、７、８、９、１０、１２、１５、１６、１８、１９、２２、２３、２４、２５、２６、…となっており、Ｎｉｎｔ＝８となっており、Ｎ回目のパケット欠損検出処理実行時（８０２）にＦＳＮ＝８、Ｎｃｕｒ＝１６となっていた場合、シーケンス番号８から１５までの範囲で抜けている番号を検出する。
この例では、１１、１３、１４の３つのシーケンス番号が抜けており、これらの３つのパケットが欠損したことになる。また、次のＮ＋１回目のパケット欠損検出処理（８０３）ではＦＳＮはＮ回目のＦＳＮ＋Ｉ＝８＋８＝１６となり、ＮｃｕｒはＮ回目のＮｃｕｒ＋Ｎｉｎｔ＝１６＋８＝２４となる。
同様にシーケンス番号１６から２３までの範囲で抜けている番号を検出する。この例では、１７、２０、２１の３つのシーケンス番号が抜けており、これらの３つのパケットが欠損したことになる。
以下、Ｎ回目のパケット欠損検出処理におけるパケット欠損検出処理の動作について図５を参照して詳細に説明する。
この場合、ＦＳＮ＝８であり、ＮｃｕｒにはＮ回目のＮｃｕｒ＋Ｎｉｎｔ＝８＋８＝１６が既に設定されていることを前提とする。
まず、Ｎ回目のパケット欠損検出処理において、パケット欠損検出手段１１１は、受信バッファのＦＳＮ＋Ｉ＝８＋０＝８に対応するシーケンス番号を有するパケットのポインタをＰに設定する（ステップＳ５０２）。
次に、Ｌｏｓｓに初期値として０を設定し、Ｉに初期値として０を設定し、ＳＮ＿ｌｉｓｔに初期値として０を設定する（ステップＳ５０３）。
次に、Ｐ＜Ｎｃｕｒ＝１６の範囲内で以下の処理を実行する（ステップＳ５０４）。
まず、ＦＳＮ＋ＩとポインタＰに格納されているシーケンス番号を比較する（ステップＳ５０５）。ＦＳＮ＋Ｉ＝８＋０＝８でポインタＰに格納されているシーケンス番号＝８であるから、比較の結果、「ＦＳＮ＋Ｉ＝ポインタＰに格納されているシーケンス番号」となり、ステップＳ５０６へ分岐し、Ｉを１つインクリメントし、ポインタＰも１つインクリメントすることで次のパケットのポインタを設定する（ステップＳ５０６）。この結果、Ｉ＝１となり、ポインタＰに格納されているシーケンス番号は９となる。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されているシーケンス番号を比較する（ステップＳ５０５）。ＦＳＮ＋Ｉ＝８＋１＝９でポインタＰに格納されているシーケンス番号＝９であるから、比較の結果、「ＦＳＮ＋Ｉ＝ポインタＰに格納されているシーケンス番号」となり、ステップＳ５０６へ分岐し、Ｉを１つインクリメントし、ポインタＰも１つインクリメントすることで次のパケットのポインタを設定する（ステップＳ５０６）。この結果、Ｉ＝２となり、ポインタＰに格納されているシーケンス番号は１０となる。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されているシーケンス番号を比較する（ステップＳ５０５）。ＦＳＮ＋Ｉ＝８＋２＝１０でポインタＰに格納されているシーケンス番号＝１０であるから、比較の結果、「ＦＳＮ＋Ｉ＝ポインタＰに格納されているシーケンス番号」となり、ステップＳ５０６へ分岐し、Ｉを１つインクリメントし、ポインタＰも１つインクリメントすることで次のパケットのポインタを設定する（ステップＳ５０６）。この結果、Ｉ＝３となり、ポインタＰに格納されているシーケンス番号は１２となる。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されているシーケンス番号を比較する（ステップＳ５０５）。ＦＳＮ＋Ｉ＝８＋３＝１１でポインタＰに格納されているシーケンス番号＝１２であるから、比較の結果、「ＦＳＮ＋Ｉ≠ポインタＰに格納されているシーケンス番号」となり、ステップＳ５０７へ分岐し、ステップＳ５０７では、比較の結果、「ＦＳＮ＋１＜ポインタＰに格納されているシーケンス番号」となり、ステップＳ５０８へ分岐する。ステップＳ５０８では、ＳＮ＿ｌｉｓｔにＦＳＮ＋Ｉ＝８＋３＝１１を追加する（ステップＳ５０８）。この結果、ＳＮ＿ｌｉｓｔの値は空白から１１に切り替わる。次に、Ｉを１つインクリメントし、Ｌｏｓｓも１つインクリメントする（ステップＳ５０９）。この結果、Ｉ＝４となり、Ｌｏｓｓ＝１となる。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されているシーケンス番号を比較する（ステップＳ５０５）。ＦＳＮ＋Ｉ＝８＋４＝１２でポインタＰに格納されているシーケンス番号＝１２であるから、比較の結果、「ＦＳＮ＋Ｉ＝ポインタＰに格納されているシーケンス番号」となり、ステップＳ５０６へ分岐し、Ｉを１つインクリメントし、ポインタＰも１つインクリメントすることで次のパケットのポインタを設定する（ステップＳ５０６）。この結果、Ｉ＝５となり、ポインタＰに格納されているシーケンス番号は１５となる。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されているシーケンス番号を比較する（ステップＳ５０５）。ＦＳＮ＋Ｉ＝８＋５＝１３でポインタＰに格納されているシーケンス番号＝１５であるから、比較の結果、「ＦＳＮ＋Ｉ≠ポインタＰに格納されているシーケンス番号」となり、ステップＳ５０７へ分岐し、ステップＳ５０７では、比較の結果、「ＦＳＮ＋１＜ポインタＰに格納されているシーケンス番号」となり、ステップＳ５０８へ分岐する。ステップＳ５０８では、ＳＮ＿ｌｉｓｔにＦＳＮ＋５＝８＋５＝１３を追加する（ステップＳ５０８）。この結果、ＳＮ＿ｌｉｓｔの値は「１１」から「１１、１３」に切り替わる。次に、Ｉを１つインクリメントし、Ｌｏｓｓも１つインクリメントする（ステップＳ５０９）。この結果、Ｉ＝６となり、Ｌｏｓｓ＝２となる。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されているシーケンス番号を比較する（ステップＳ５０５）。ＦＳＮ＋Ｉ＝８＋６＝１４でポインタＰに格納されているシーケンス番号＝１５であるから、比較の結果、「ＦＳＮ＋Ｉ≠ポインタＰに格納されているシーケンス番号」となり、ステップＳ５０７へ分岐し、ステップＳ５０７では、比較の結果、「ＦＳＮ＋１＜ポインタＰに格納されているシーケンス番号」となり、ステップＳ５０８へ分岐する。ステップＳ５０８では、ＳＮ＿ｌｉｓｔにＦＳＮ＋Ｉ＝８＋６＝１４を追加する（ステップＳ５０８）。この結果、ＳＮ＿ｌｉｓｔの値は「１１、１３」から「１１、１３、１４」に変わる。次に、Ｉを１つインクリメントし、Ｌｏｓｓも１つインクリメントする（ステップＳ５０９）。この結果、Ｉ＝７となり、Ｌｏｓｓ＝３となる。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されているシーケンス番号を比較する（ステップＳ５０５）。ＦＳＮ＋Ｉ＝８＋７＝１５でポインタＰに格納されているシーケンス番号＝１５であるから、比較の結果、「ＦＳＮ＋Ｉ＝ポインタＰに格納されているシーケンス番号」となり、ステップＳ５０６へ分岐し、Ｉを１つインクリメントし、ポインタＰも１つインクリメントすることで次のパケットのポインタを設定する（ステップＳ５０６）。この結果、Ｉ＝８となり、ポインタＰに格納されているシーケンス番号は１６となる。従って、ループの条件Ｎｃｕｒ＞Ｐを満足しないので、ループから抜け出し、ＦＳＮにＦＳＮ＋１＝１５＋１＝１６を設定する（ステップＳ５１１）。
以上より、シーケンス番号１１、１３、１４のパケットが欠損したことを検出する。
Ｎ＋１回目のパケット欠損検出処理におけるパケット欠損検出処理の動作も同様である。
パケット欠損検出処理（ステップＳ３０６）実行後、Ｌｏｓｓ＞０の場合、パケット欠損が検出されたことになるので、再送シーケンス番号追加手段１１２は、再送要求リスト管理手段１１５へＳＮ＿ｌｉｓｔに登録されている欠損パケットのシーケンス番号を追加するよう命令を発する（ステップＳ３０７）。
追加命令を受理した再送要求リスト管理手段１１５は、ＳＮ＿ｌｉｓｔのシーケンス番号を再送要求リストへ追加する（ステップＳ４０２〜Ｓ４０７）。ただし、２重登録は行わない。ただし、ＳＮ＿ｌｉｓｔにあるシーケンス番号がすべて”ＡＣＴＩＶＥ”状態の再送要求リストにあって、１つも再送要求リストに追加できない場合、以下の再送要求通知処理や再送要求送信処理は行わない。
次に、再送要求通知手段１１３は、再送要求リストの状態を、”ＲＥＡＤＹ”状態に遷移するよう、再送要求リスト管理手段１１５へ命令を発する（ステップＳ３０８）。ここで、”ＲＥＡＤＹ”状態にある再送要求リストとは、再送要求を行うシーケンス番号のリストであるが、全てのシーケンス番号が再送されてくるかどうかはわからない状態のシーケンス番号リストである。ＲＥＡＤＹ命令を受理した再送要求リスト管理手段１１５は、再送要求リストを”ＲＥＡＤＹ”状態にする（ステップＳ４０２，Ｓ４０３，Ｓ４１２）。
次に、再送要求送信手段１１４は、再送要求リストのシーケンス番号の再送要求を送信装置１０１に対して行う（ステップＳ３０９）。この場合、再送要求リストのシーケンス番号と、その時点で要求者（アプリケーション）１０３へ提供したパケットの最大（最新）のシーケンス番号を１つの再送要求パケットに乗せ、その再送要求パケットを送信装置１０１へ送信する（ステップＳ３１０）。
送信装置１０１の再送要求受信手段１０６は、第２図に示すように再送要求パケットを受信し（ステップＳ２０７）、再送要求パケットから再送要求されたシーケンス番号と要求者（アプリケーション）１０３へ提供した最大（最新）シーケンス番号を識別する（ステップＳ２０８，Ｓ２０９）。
次に、再送用バッファ削除手段１２０は、要求者（アプリケーション）１０３へ提供した再送用バッファ２０１内の最大（最新）シーケンス番号よりも小さいシーケンス番号のパケットはこれ以上再送要求する必要がないので、これらのパケットを削除する（ステップＳ２１０）。
次に、再送パケット検出手段１０７は、再送用バッファを検索して再送要求されたシーケンス番号と等しいシーケンス番号を検出する（ステップＳ２１１）。このシーケンス番号は再送するべきパケットのシーケンス番号であり、再送シーケンス番号と呼ぶ。
次に、再送要求応答手段１０８は、再送パケット検出手段１０７によって検出された再送シーケンス番号を乗せた１つの再送要求応答パケットを生成し、その再送要求応答パケットを受信装置１０２へ送信する（ステップＳ２１２）。
次に、再送手段１０９は、再送シーケンス番号のパケットを受信装置１０２へ再転送する（ステップＳ２１３）。
受信装置１０２の再送要求応答受信手段１１６は、第６図に示すように送信装置１０１から再送シーケンス番号を乗せた再送要求応答パケットを受信すると（ステップＳ６０１）、再送要求応答パケットから再送シーケンス番号を識別する（ステップＳ６０２）。
次に、再送シーケンス番号削除手段１１７は、受信できたことにより再送要求が不要になったパケットの再送シーケンス番号を再送要求リストから削除するように、再送要求リスト管理手段１１５へ削除命令を発する（ステップＳ６０３）。
削除命令を受理した再送要求リスト管理手段１１５は、第４図に示すように再送要求リストから再送シーケンス番号を削除する（ステップＳ４０２，Ｓ４０３，Ｓ４０８〜Ｓ４１１）。したがって、再送要求リストに残っているシーケンス番号は欠損したため再送要求を行ったが、送信装置１０１からは再送されてこないパケットのシーケンス番号となる。
次に、再送要求応答通知手段１１８は、第６図に示すように再送要求リストを”ＡＣＴＩＶＥ”状態に遷移するように、再送要求リスト管理手段１１５へ命令を発する（ステップＳ６０４）。
ＡＣＴＩＶＥ命令を受理した再送要求リスト管理手段１１５は、第４図に示すように再送要求リストを”ＡＣＴＩＶＥ”状態に遷移する（ステップＳ４０２，Ｓ４０３，Ｓ４１３）。”ＡＣＴＩＶＥ”状態の再送要求リストは、再送要求を行っても送信装置から再送されてこないシーケンス番号を意味する。
次に、要求者（アプリケーション）１０３は、受信装置１０２が受信したパケットのペイロードを要求する。受信装置１０２のパケット提供手段１１９は、要求者（アプリケーション）１０３から、パケットのペイロードと、そのペイロードを提供するまでの待ち時間が要求されると、その待ち時間までに前回提供したパケットの次のパケット（シーケンス番号Ｔｎｅｘｔのパケット）のペイロードを提供するが、そのＴｎｅｘｔのパケットが欠損したり、再送もされなかったりすることで、待ち時間内にＴｎｅｘｔのパケットのペイロードが提供できないときは、パケット提供手段１１９はＴｎｅｘｔのパケットが欠損したことを要求者（アプリケーション）１０３に通知する。
第７図に示すようにパケット提供手段１１９は、要求者（アプリケーション）１０３からパケットのペイロードと要求からペイロード提供迄の許容待ち時間が要求されると（ステップＳ７０２）、その現在時刻をＴｓｔａｒｔにセットして（ステップＳ７０３）、シーケンス番号Ｔｎｅｘｔのパケットが受信バッファにあるか否かを調べる（ステップＳ７０４）。受信バッファにＴｎｅｘｔのパケットがあった場合、このＴｎｅｘｔのパケットのペイロードを提供する（ステップＳ７０５）。
受信バッファにＴｎｅｘｔのパケットがなかった場合、現在時刻が待ち時間を超えていないかタイムアウトのチェックを行い（ステップＳ７０６）、タイムアウトの場合は、Ｔｎｅｘｔのパケットが欠損したことを要求者（アプリケーション）１０３に通知する（ステップＳ７０９）。タイムアウトでない場合は、シーケンス番号Ｔｎｅｘｔが再送要求リストにあるか否かを調べる（ステップＳ７０７）。
Ｔｎｅｘｔが再送要求リストにあり、且つ再送要求リストが”ＡＣＴＩＶＥ”状態である場合は（ステップＳ７０８）、送信装置１０１からは再送要求を行っても再送されないことを意味するので、Ｔｎｅｘｔのパケットが欠損したことを要求者（アプリケーション）１０３に通知する（ステップＳ７０９）。
Ｔｎｅｘｔが再送要求リストにない場合は、ＦＳＮにＴｎｅｘｔを設定し（ステップＳ７１１）、Ｎｃｕｒに現在受信した最新のパケットのシーケンス番号を設定し（ステップＳ７１２）、Ｔｃｕｒに現在受信した最新のパケットのタイムスタンプを設定し（ステップＳ７１３）、この後パケット欠損検出処理（ステップＳ７１４）、再送シーケンス番号追加処理（ステップＳ７１５）、再送要求応答通知処理（ステップＳ７１６）、再送要求送信処理（ステップＳ７１７，Ｓ７１８）を用いて、再度Ｔｎｅｘｔの再送要求を行うと共に、最新のパケット欠損も検出し、同時に再送要求を行う。
待ち時間が０をセットされたときは、受信バッファにＴｎｅｘｔがあるか否かだけを調べ、もしなかったらＴｎｅｘｔのパケットの再送要求は行わず、すぐにＴｎｅｘｔのパケットが欠損したことを要求者（アプリケーション）１０３に通知する。逆に待ち時間が無限時間をセットされたときは、受信バッファにＴｎｅｘｔのパケットがない場合、何度も再送要求を行い、Ｔｎｅｘｔのパケットが再送されるを待ち続ける。
ただし、”ＡＣＴＩＶＥ”状態の再送要求リストにＴｎｅｘｔがある場合は、再送要求を行わず、Ｔｎｅｘｔのパケットが欠損したことを要求者（アプリケーション）１０３に通知する。再送要求送信手段が再送要求パケットを送信したあと、再送要求を行う間隔Ｔｒだけ待ち（ステップＳ７２０）、再び受信バッファにＴｎｅｘｔのパケットがあるか否かを調べる。Ｔｒは再送要求を行う毎に変更してもよい。
なお、ステップＳ７１９、Ｓ７２０、Ｓ７２１では、待ち時間に対するスリープ時間を作成している。
簡単な例を用いて説明する。いま、Ｔｗａｉｔ＝５秒、Ｔｒ＝２秒とする。この場合、５秒間のうちに２秒間隔で受信バッファのチェックおよびパケット欠損検出処理を行うことになる。今、このパケット提供処理が０秒の時に開始されたとする。即ちＴｓｔａｒｔ＝０である。従って、現在時刻は０秒から１秒、２秒、３秒……と時を刻んでいく。現在時刻が３秒になるまではステップＳ７１９でＮｏと判定され、ステップＳ７２０を実行する。ステップＳ７２０では、２秒だけスリープ（遅延）する。従って、２秒後には再び受信バッファのチェックおよびパケット欠損検出処理（ステップＳ７１４）を行う。これによって、許される時間内、即ち待ち時間に定期的に受信バッファのチェックとパケット欠損検出処理（ステップＳ７１４）が行える。しかし、現在時刻が３秒を過ぎると、さらに２秒（＝Ｔｒ）のスリープでは待ち時間Ｔｗａｉｔを超えてしまう。従って、この時は、ステップＳ７２１でその差分のみ（例えば現在時刻が４秒の時、差分はＴｗａｉｔ−現在時刻＋Ｔｓｔａｒｔ＝５−４＝１秒）の時間をスリープ（遅延）しているのである。このスリープ終了後は、受信バッファのチェックも行うが、ステップＳ７０６でタイムアウトと判定されるから、パケット欠損検出処理までは行わない。すぐに、次のシーケンス番号を提供して（ステップＳ７０５）、待ち時間内にパケットデータを提供することができる。
この実施の形態１によれば、送信装置に再送パケット格納手段と再送要求受信手段と再送パケット検出手段と再送手段を設けることにより、優先度の高い重要なパケットのみを再送することができるので、再送処理によるネットワーク負荷の浪費を最小限に抑えることができ、ネットワークの輻輳時でも優先度の高いパケットの伝送容量を確保することができる。また、再送パケット格納手段により、すべての送信済みパケットの中から優先度の高い再送すべきパケットを選択するのではなく、予め優先度の高い重要なパケットのみを再送用バッファに保存しておくことから、再送するパケットの検索処理負荷が削減でき、送信装置の再送用バッファも最小限に抑えることができ、リソースの浪費を抑えることができる。
また、受信装置では、受信手段が送信装置から受信したパケットをシーケンス番号順にソートしながら受信バッファに保存するので、パケット欠損検出処理が受信バッファ中のパケットの内から欠損したパケットを検出するときに、高速に検出することができる。
さらに、再送要求リストと再送要求リスト管理手段、および再送リストと再送リスト管理手段を設けることにより、再送要求を行ったシーケンス番号の識別や、再送されてくるパケットのシーケンス番号の識別が簡単に行えることができる。
さらに、パケット欠損検出手段と再送シーケンス番号追加手段と再送要求通知手段と再送要求送信手段を設けることにより、複数のパケット欠損に対する再送要求を行うことができる。また、優先度の高い重要なパケットのみを再送する送信装置において、受信装置で送信装置から再送されてくるパケットのシーケンス番号を識別できるので、再送されてこないパケットの無駄な再送要求をなくしたり、そのパケットの再送を待たなくてもよくなり、よりリアルタイムな転送方式が実現できる。
さらに、再送要求受信手段と再送用バッファ削除手段を設けることで、送信装置の再送用バッファの削減を行うことができる。再送パケット検出手段と再送手段を設けることにより、再送すべき優先度の高いパケットのみを再送することができ、ネットワークの輻輳状態でも最小限の再送パケットを転送することで輻輳の悪化を防止することができる。また、再送要求応答手段を設けることにより、再送すべき優先度の高いパケットのシーケンス番号が受信装置でもわかるようになり、受信装置で無駄な再送要求を行うことを防ぐことができる。
また、再送要求応答受信手段と再送シーケンス番号削除手段と再送要求応答通知手段を設けることにより、受信装置側で送信装置から再送されない優先度の低いパケットに対する無駄な再送要求を行うことを防ぐことができる。
また、パケット提供手段を設けることにより、要求者（アプリケーション）が各パケット毎に待ち時間を設定することができ、その時間までにパケットのペイロードの提供、あるいはパケット欠損の通知を得ることができる。
また、定期間隔で行うパケット欠損検出手段と再送要求送信手段による再送要求だけではなく、要求者（アプリケーション）からの要求時にも待ち時間内に数回、パケット欠損検出手段と再送要求送信手段によって再送要求を行うパケット提供手段を設けることにより、待ち時間内に再送されてくる可能性が高くなり、より信頼性の高い提供手段が実現できる。
また、送信装置から再送されない優先度の低いパケットが要求者（アプリケーション）から要求され、そのパケットが受信バッファにない場合に、無駄な再送要求を行うことなくすぐにパケットが欠損したことを通知するパケット提供手段を設けることで、よりレスポンスの早い提供手段が実現できる。
また、受信装置においてシーケンス番号の不整合と優先度情報から欠損を発生したパケットの優先度を的確に認識できるパケット欠損検出手段を設けることにより、再送されない優先度の低いパケットの無駄な再送要求を防ぐことができ、ネットワークの浪費と送信装置の再送パケット検出処理負荷を削減できる。
実施の形態２．
第９図は本発明の実施の形態２を示すパケット再送システム、およびパケット転送システムの構成図であり、すべてのパケットに与えられる一般シーケンス番号と、重要なパケットおよび欠損時には再送した方が良いと判断できるパケットのみに与えられる優先シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間の再送、およびパケット転送を示している。本実施の形態２の再送システム、およびパケット転送システムは、インターネットや無線網などのネットワーク９０４と、パケットを送信する送信装置９０１と、ネットワーク９０４を介して送信装置９０１から送信されたパケットを受信する受信装置９０２と、その受信装置９０２からパケットデータを要求する要求者（アプリケーション）９０３とから構成される。
そして、送信装置９０１は、受信装置９０２へ送信済みのパケットのうち、再送すべきパケットのみを再送用バッファに格納しておく再送パケット格納手段９０５と、受信装置９０２からの再送要求パケットを受信し、再送要求パケットから再送要求されたパケットの一般シーケンス番号を取り出し再送パケット検出手段９０８へ、要求者に提供された最大一般シーケンス番号（この最大一般シーケンス番号は最新のパケットの一般シーケンス番号を意味する）を再送用バッファ削除手段９０７へ通知する再送要求受信手段９０６と、要求者９０３に提供された最大（最新）一般シーケンス番号より小さい一般シーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除手段９０７と、再送用バッファの中から再送要求受信手段９０６によって通知された一般シーケンス番号を検出する再送パケット検出手段９０８と、同再送パケット検出手段で検出された一般シーケンス番号のパケットを受信装置９０２へ再送信する再送手段９０９を有している。
また、受信装置９０２は、送信装置９０１からパケットを受信し、一般シーケンス番号順にソートしながらパケットを受信バッファに格納する受信手段９１０と、次の再送要求時に再送要求を行うパケット、および現在再送要求を行っているパケットの一般シーケンス番号を格納する再送リストにおいて、一般シーケンス番号の追加と削除を行う再送リスト管理手段９１５と、受信パケットの一般シーケンス番号が再送リストにある場合、再送リスト管理手段９１５にその一般シーケンス番号の削除命令を出す再送シーケンス番号削除手段９１１と、パケットの受信回数および時間から決定されるパケット受信間隔、あるいは優先シーケンス番号の不整合から重要なパケットが欠損する毎に、受信バッファ内のパケットや受信パケットの一般シーケンス番号と優先シーケンス番号の不整合から欠損したパケットの一般シーケンス番号を検出するパケット欠損手段９１２と、パケット欠損検出手段９１２によって検出された欠損したパケットの一般シーケンス番号を再送リストに追加する命令を再送リスト管理手段９１５へ出す再送シーケンス番号追加手段９１３と、パケット欠損検出手段９１２がパケット欠損検出を行う間隔で再送リストに存在する複数の一般シーケンス番号を１つの再送要求パケットに乗せ、送信装置９０１へ送信する再送要求送信手段９１４と、受信バッファ内に格納されているパケットの中から、１つの、および複数のパケットのペイロードを要求者（アプリケーション）９０３に提供するパケット提供手段９１６を有している。
第１０図は送信装置を説明するためのフローチャートで、第１１図、第１２図、第１３図、第１４図、第１５図は受信装置を説明するためのフローチャートで、第１１図と第１２図は受信手段がパケットを受信して再送要求送信手段が再送要求を行うまでの２つの例の処理フローを説明し、第１３図は受信装置の再送リスト管理手段９１５の処理フローを説明し、第１４図は受信装置のパケット欠損検出手段９１２の処理フローを説明し、第１５図は要求者（アプリケーション）９０３からパケット提供手段９１６がパケットの提供を要求されたときの処理フローを説明するものである。
第９図の構成において、送信装置９０１は受信装置９０２へパケットを送信する（ステップＳ１００１）。送信装置９０１は、送信したパケットを再送用バッファへ保存する（ステップＳ１００２）。このとき、すべてのパケットを再送用バッファ１００５に保存しても良いし、再送すべき重要なパケットのみを再送用バッファに保存してもよい。ただし、再送用バッファ１００５のサイズが最大パケット数より大きくなった場合、あるいは、タイムスタンプにより時間管理のとき再送用バッファ１００５の蓄積時間量が最大時間より大きくなった場合（ステップＳ１００３）、再送用バッファ１００５のサイズが、最大パケット数以下あるいは最大時間以下になるまで、最小の一般シーケンス番号のパケットを再送用バッファ１００５から削除する（ステップＳ１００４）。
受信装置９０２の受信手段９１０は、第１１図に示すように、送信装置９０１からのパケットを受信すると（ステップＳ１１０１，Ｓ１２０１）、受信したパケットを一般シーケンス番号順にソートしながら受信バッファに保存する（ステップＳ１１０２，Ｓ１２０２））。
また、再送シーケンス番号削除手段９１１は、パケットを受信する毎にこの受信パケットが再送リストに有るか否かをチェックする。受信パケットの一般シーケンス番号が再送リストにある場合は（ステップＳ１１０３，Ｓ１２０３）、この受信パケットは再送されてきたパケットを意味し、このパケットはこれ以上再送要求する必要がないので、この受信パケットの一般シーケンス番号を再送リストから削除するよう、再送リスト管理手段９１５へ削除命令を発する（ステップＳ１１０４，Ｓ１２０４）。
そして、所定の数のパケットを受信したとき、パケット欠損検出手段９１２はパケットが欠損していないかをチェックする。このチェック処理をパケット欠損検出処理という。パケット欠損検出手段９１２がパケット受信後に行うパケット欠損検出処理の例を２つ説明する。第１１図の例１のフローチャートに示すように、このパケット欠損検出手段９１２がパケット欠損検出処理（ステップＳ１１０８）を行う間隔は、例えば、前回パケット欠損検出処理（ステップＳ１１０８）を行った最後のパケットの一般シーケンス番号やタイムスタンプと今回受信したパケットの一般シーケンス番号やタイムスタンプの差から決定する（ステップＳ１１０５）。パケット欠損検出処理（ステップＳ１１０８）を行う一般シーケンス番号の間隔をＮｉｎｔ、タイムスタンプの間隔をＴｉｎｔ、前回パケット欠損検出処理（ステップＳ１１０８）を行った最後のパケットの一般シーケンス番号をＮｃｕｒ、前回パケット欠損検出処理（ステップＳ１１０８）を行った最後のパケットのタイムスタンプをＴｃｕｒとすると、受信手段９１０が今回受信したパケットの一般シーケンス番号がＮｃｕｒ＋Ｎｉｎｔと等しいかあるいはそれよりも大きいか、あるいは受信したパケットのタイムスタンプがＴｃｕｒ＋Ｔｉｎｔと等しいかあるいはそれよりも大きければ（ステップＳ１１０５）、ＮｃｕｒとＴｃｕｒに今回受信したパケットの一般シーケンス番号とタイムスタンプをそれぞれ代入した上で（ステップＳ１１０６，Ｓ１１０７）、パケット欠損検出手段を行う（ステップ１１０８）。これにより、ＮｃｕｒとＴｃｕｒの値は今回の新たなパケットの最後の一般シーケンス番号とタイムスタンプとなる。なお、ＮｉｎｔやＴｉｎｔは、固定値でもよいし、ネットワークの輻輳状況から動的に決定してもよい。
パケット欠損検出手段９１２は、一般シーケンス番号順にソートされた受信バッファにおいて、前回パケット欠損検出処理（ステップＳ１１０８）を行った最後のパケットの次のパケットから一般シーケンス番号Ｎｃｕｒ（今回の最後のパケットの一般シーケンス番号）のパケットまでの範囲（ただし、Ｎｃｕｒのパケットを除く）、あるいはタイムスタンプＴｃｕｒ（今回の最後のパケットのタイムスタンプ）のパケットまでの範囲（ただし、Ｔｃｕｒのパケットを除く）で、一般シーケンス番号と優先シーケンス番号の整合性をチェックして再送すべき優先度の高いパケットの欠損を検出する。
第１４図にパケット欠損検出手段１１１によるパケット欠損検出処理（ステップＳ１１０８）の詳細フローを示す。第１４図において、パケット欠損検出手段１１１は、はじめに受信バッファ中で一般シーケンス番号がＦＳＮと等しくなるパケットのポインタをＰに設定する（ステップＳ１４０２）。ここで、ＦＳＮは、前回パケット欠損検出を行った最後のパケットの次のパケットの一般シーケンス番号である。次にＭＰＳＮにポインタＰに格納されているパケットの優先シーケンス番号を保持しておく（ステップＳ１４０３）。ここで、ＭＰＳＮは欠損パケット検索中の最大（最新）優先シーケンス番号を意味する。
欠損したパケットの数をＬｏｓｓ、ＦＳＮからの距離をＩ、再送すべき優先度の高い欠損したパケットの一般シーケンス番号のリストをＳＮ＿ｌｉｓｔとし、ＬｏｓｓおよびＦＳＮに初期値として０を設定し、ＳＮ＿ｌｉｓｔに初期値として空白（空リスト）を設定する（ステップ１４０４）。
次に、パケット欠損検出処理のステップ１４０５に示す上記範囲内［前回パケット欠損検出処理（ステップＳ１１０８）を行った最後のパケットの次のパケットから一般シーケンス番号Ｎｃｕｒ（今回の最後のパケットの一般シーケンス番号）のパケットまでの範囲（ただし、Ｎｃｕｒのパケットを除く）、あるいはタイムスタンプＴｃｕｒ（今回の最後のパケットのタイムスタンプ）のパケットまでの範囲（ただし、Ｔｃｕｒのパケットを除く）］で、受信バッファのポインタＰに格納されているパケットの一般シーケンス番号とＦＳＮ＋Ｉを比較する（ステップＳ１４０６）。ステップＳ１４０６において、もしＦＳＮ＋ＩとポインタＰに格納されているパケットの一般シーケンス番号が等しければ、一般シーケンス番号ＦＳＮ＋Ｉ番のパケットは欠損せず受信されていることになる。
そこで、ＭＰＳＮにポインタＰに格納されているパケットの優先シーケンス番号を設定し（ステップＳ１４０７）、Ｉをインクリメントし（ステップＳ１４０８）、さらにＰに次のパケットのポインタを設定する（ステップＳ１４１０）。ステップＳ１４０６において、もしＦＳＮ＋ＩとポインタＰに格納されているパケットの一般シーケンス番号が等しくなければ、ステップＳ１４０９へ進む。ＦＳＮ＋ＩがポインタＰに格納されているパケットの一般シーケンス番号より小さく（ステップＳ１４０９）、且つＭＰＳＮがポインタＰに格納されているパケットの優先シーケンス番号より小さければ（ステップ１４１１）、一般シーケンス番号ＦＳＮ＋Ｉ番のパケットが欠損したことになり、そのパケットは再送すべき優先度の高いパケットである。そこで、ＳＮ＿ｌｉｓｔにＦＳＮ＋Ｉを追加し（ステップ１４１４）、ＩとＬｏｓｓをインクリメントする（ステップ１４１５）。
ステップＳ１４１１においてもし、ＭＰＳＮがポインタＰに格納されているパケットの優先シーケンス番号より小さくなければ（ステップ１４１１）、欠損したパケットは再送を必要としない優先度の低いパケットであり、再送要求は行わないので、ＳＮ＿ｌｉｓｔには欠損した一般シーケンス番号を追加しない。
ステップＳ１４０５で示された範囲すなわち、［前回パケット欠損検出処理（Ｓ１１０８）を行った最後のパケットの次のパケットから一般シーケンス番号Ｎｃｕｒ（今回の最後のパケットの一般シーケンス番号）のパケットまでの範囲（ただし、Ｎｃｕｒのパケットを除く）、あるいはタイムスタンプＴｃｕｒ（今回の最後のパケットのタイムスタンプ）のパケットまでの範囲（ただし、Ｔｃｕｒのパケットを除く）］で、この一般シーケンス番号の比較が終了したら（ステップＳ１４１６）、ＦＳＮにＩを加えて、ＦＳＮを次回のパケット欠損検出処理の開始一般シーケンス番号とする（ステップＳ１４１７）。このとき、ＳＮ＿ｌｉｓｔにある番号が、前記範囲内の欠損したパケット且つ再送すべき優先度の高いパケットの一般シーケンス番号となり、Ｌｏｓｓが欠損したパケット数となる。
次に、パケット欠損が発生している受信バッファとパケット欠損検出処理実行の結果の例を第１６図に示す。第１６図において、１６０１は、Ｎｉｎｔ＝８の場合の受信バッファを示し１６０２は、Ｎ回目のパケット欠損検出処理時のＦＳＮ、Ｎｃｕｒ、Ｉ、Ｌｏｓｓ、Ｓｎ＿ｌｉｓｔの状態を表し、１６０３は、Ｎ＋１回目のパケット欠損検出処理時のＦＳＮ、Ｎｃｕｒ、Ｉ、Ｌｏｓｓ、Ｓｎ＿ｌｉｓｔの状態を表す。受信バッファ１６０１内のパケットの一般シーケンス番号が、…、８、９、１０、１２、１５、１６、１８、１９、２２、２３、２４、２５、２６、…となっており、優先シーケンス番号がそれぞれ、４、４、５、７、７、８、８、９、１０、１１、１１、１１、１２、…となっており、Ｎｉｎｔ＝８となっており、Ｎ回目のパケット欠損検出処理実行時（１６０２）にＦＳＮ＝８、Ｎｃｕｒ＝１６となっていた場合、一般シーケンス番号８から１５までの範囲で抜けている番号を検出する。
この例では、１１、１３、１４の３つの一般シーケンス番号が抜けており、これらの３つのパケットが欠損したことになるが、一般シーケンス番号１２のパケットの優先シーケンス番号と一般シーケンス番号１５のパケットの優先シーケンス番号が共に７で等しいことから、一般シーケンス番号１２〜１５には優先パケットが存在しないことになる。即ち、一般シーケンス番号１３（＝１２＋１）と１４のパケットは再送を必要としない優先度の低いパケットということになり、再送要求を行わないのでＳＮ＿ｌｉｓｔには追加しない。また、次のＮ＋１回目のパケット欠損検出処理では（ステップ１６０３）、ＦＳＮはＮ回目のＦＳＮ＋Ｉ＝８＋８＝１６となり、ＮｃｕｒはＮ回目のＮｃｕｒ＋Ｎｉｎｔ＝１６＋８＝２４となる。
同様に一般シーケンス番号１６から２３までの範囲で抜けている番号を検出する。この例では、１７、２０、２１の３つの一般シーケンス番号が抜けており、これらの３つのパケットが欠損したことになる。しかし、一般シーケンス番号１７は、一般シーケンス番号１６と１８のパケットの優先シーケンス番号が８で等しいので、一般シーケンス番号１６〜１８には優先パケットが存在しないことになる。即ち、一般シーケンス番号１７（＝１６＋１）のパケットは再送を必要としない優先度の低いパケットということになり、再送要求を行わないので、ＳＬ＿ｌｉｓｔには追加しない。
ところが、一般シーケンス番号１９、２２のパケットの優先シーケンス番号は、それぞれ８、９であり、一般シーケンス番号２２のパケットの優先シーケンス番号の方が一般シーケンス番号１９のパケットの優先シーケンス番号より１大きい。したがって、一般シーケンス番号１９〜２２には優先パケットが１つ存在することになる。この場合、欠損した一般シーケンス番号２０と２１のパケットは、どちらかが再送すべき優先度の高いパケットかもしれないし、一般シーケンス番号２２のパケットが再送すべき優先度の高いパケットだったために、一般シーケンス番号２０と２１のどちらも再送を必要としない優先度の低いパケットかもしれない。このようにパケットが連続欠損し優先シーケンス番号がその前後で等しくない場合は、どれが優先度の高いパケットなのかが判断できないため、連続欠損したすべてのパケットの一般シーケンス番号をＳＬ＿ｌｉｓｔに追加する。
以下、Ｎ回目のパケット欠損検出処理におけるパケット欠損検出処理の動作について図１４、図１６を参照して詳細に説明する。
この場合、ＦＳＮ＝８であり、ＮｃｕｒにはＮ回目のＮｃｕｒ＋Ｎｉｎｔ＝８＋８＝１６が既に設定されていることを前提とする。
まず、Ｎ回目のパケット欠損検出処理において、パケット欠損検出手段９１２は、受信バッファのＦＳＮ＝８に対応する一般シーケンス番号を有するパケットのポインタをＰに設定する（ステップＳ１４０２）。
次に、パケット欠損検出手段９１２は、受信バッファのポインタＰに格納されているパケットの優先シーケンス番号＝４をＭＰＳＮに設定する（ステップＳ１４０３）。この結果、ＭＰＳＮ＝４となる。
次に、Ｌｏｓｓに初期値として０を設定し、Ｉに初期値として０を設定し、ＳＮ＿ｌｉｓｔに初期値として０を設定する（ステップＳ１４０４）。
次に、Ｐ＜Ｎｃｕｒ＝１６の範囲内で以下の処理を実行する（ステップＳ１４０５）。
まずＦＳＮ＋ＩとポインタＰに格納されている一般シーケンス番号を比較する（ステップＳ１４０６）。ＦＳＮ＋Ｉ＝８＋０＝８でポインタＰに格納されている一般シーケンス番号＝８であるから、比較の結果、「ＦＳＮ＋Ｉ＝ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４０７へ分岐し、ポインタＰに格納されているパケットの優先シーケンス番号＝４をＭＰＳＮに設定し（ステップＳ１４０７）、さらにＩを１つインクリメントし（ステップＳ１４０８）、さらにポインタＰも１つインクリメントすることで次のパケットのポインタを設定する（ステップＳ１４１０）。この結果、Ｉ＝１、ＭＰＳＮ＝４となり、ポインタＰに格納されている一般シーケンス番号は９となる。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されている一般シーケンス番号を比較する（ステップＳ１４０６）。ＦＳＮ＋Ｉ＝８＋１＝９でポインタＰに格納されている一般シーケンス番号＝９であるから、比較の結果、「ＦＳＮ＋Ｉ＝ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４０７へ分岐し、ポインタＰに格納されているパケットの優先シーケンス番号＝４をＭＰＳＮに設定し（ステップＳ１４０７）、さらにＩを１つインクリメントし（ステップＳ１４０８）、さらにポインタＰも１つインクリメントすることで次のパケットのポインタを設定する（ステップＳ１４１０）。この結果、Ｉ＝２、ＭＰＳＮ＝４となり、ポインタＰに格納されている一般シーケンス番号は１０となる。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されている一般シーケンス番号を比較する（ステップＳ１４０６）。ＦＳＮ＋Ｉ＝８＋２＝１０でポインタＰに格納されている一般シーケンス番号＝１０であるから、比較の結果、「ＦＳＮ＋Ｉ＝ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４０７へ分岐し、ポインタＰに格納されているパケットの優先シーケンス番号＝４をＭＰＳＮに設定し（ステップＳ１４０７）、さらにＩを１つインクリメントし（ステップＳ１４０８）、さらにポインタＰも１つインクリメントすることで次のパケットのポインタを設定する（ステップＳ１４１０）。この結果、Ｉ＝３、ＭＰＳＮ＝５となり、ポインタＰに格納されている一般シーケンス番号は１２となる。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されている一般シーケンス番号を比較する（ステップＳ１４０６）。ＦＳＮ＋Ｉ＝８＋３＝１１で、ポインタＰに格納されている一般シーケンス番号＝１２であるから、比較の結果、「ＦＳＮ＋Ｉ≠ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４０９へ分岐し、ステップＳ１４０９では、比較の結果、「ＦＳＮ＋１＜ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４１１へ分岐する。ステップＳ１４１１では、ＭＰＳＮとポインタＰに格納されているパケットの優先シーケンス番号を比較する。ＭＰＳＮ＝５で、ポインタＰに格納されているパケットの優先シーケンス番号＝７であるから、比較の結果、「ＭＰＳＮ＜ポインタＰに格納されているパケットの優先シーケンス番号」となり、ステップＳ１４１４へ分岐する。ステップＳ１４１４では、ＳＮ＿ｌｉｓｔにＦＳＮ＋Ｉ＝８＋３＝１１を追加する。この結果、ＳＮ＿ｌｉｓｔの値は空白から「１１」に切り替わる。次に、Ｉを１つインクリメントし、Ｌｏｓｓも１つインクリメントする（ステップＳ１４１５）。この結果、Ｉ＝４となり、Ｌｏｓｓ＝１となる。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されている一般シーケンス番号を比較する（ステップＳ１４０６）。ＦＳＮ＋Ｉ＝８＋４＝１２でポインタＰに格納されている一般シーケンス番号＝１２であるから、比較の結果、「ＦＳＮ＋Ｉ＝ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４０７へ分岐し、ポインタＰに格納されているパケットの優先シーケンス番号＝７をＭＰＳＮに設定し（ステップＳ１４０７）、さらにＩを１つインクリメントし（ステップＳ１４０８）、さらにポインタＰも１つインクリメントすることで次のパケットのポインタを設定する（ステップＳ１４１０）。この結果、Ｉ＝５、ＭＰＳＮ＝７となり、ポインタＰに格納されている一般シーケンス番号は１５となる。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されている一般シーケンス番号を比較する（ステップＳ１４０６）。ＦＳＮ＋Ｉ＝８＋５＝１３で、ポインタＰに格納されている一般シーケンス番号＝１５であるから、比較の結果、「ＦＳＮ＋Ｉ≠ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４０９へ分岐し、ステップＳ１４０９では、比較の結果、「ＦＳＮ＋１＜ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４１１へ分岐する。ステップＳ１４１１では、ＭＰＳＮとポインタＰに格納されているパケットの優先シーケンス番号を比較する。ＭＰＳＮ＝７で、ポインタＰに格納されているパケットの優先シーケンス番号＝７であるから、比較の結果、「ＭＰＳＮ＝ポインタＰに格納されているパケットの優先シーケンス番号」となり、ステップＳ１４１２へ分岐する。ステップＳ１４１２では、ポインタＰに格納されているパケットの一般シーケンス番号−ＦＳＮ＝１５−８＝７をＩに設定し（ステップＳ１４１２）、さらに、ＬｏｓｓにポインタＰに格納されているパケットの一般シーケンス番号−（ＦＳＮ＋Ｉ）＝１５−１３＝２を設定する（ステップＳ１４１３）。この結果、Ｉ＝７となり、Ｌｏｓｓ＝２となる。
なお、一般シーケンス番号１３、１４のパケットはＳＮ＿ｌｉｓｔには追加されない。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されている一般シーケンス番号を比較する（ステップＳ１４０６）。ＦＳＮ＋Ｉ＝８＋７＝１５で、ポインタＰに格納されている一般シーケンス番号＝１５であるから、比較の結果、「ＦＳＮ＋Ｉ＝ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４０７へ分岐し、ポインタＰに格納されているパケットの優先シーケンス番号＝７をＭＰＳＮに設定し（ステップＳ１４０７）、さらにＩを１つインクリメントし（ステップＳ１４０８）、さらにポインタＰも１つインクリメントすることで次のパケットのポインタを設定する（ステップＳ１４１０）。この結果、Ｉ＝８、ＭＰＳＮ＝７となり、ポインタＰに格納されている一般シーケンス番号は１６となる。
従って、ループの条件Ｎｃｕｒ＞Ｐを満足しないので、ループから抜け出し、ＦＳＮにＦＳＮ＋Ｉ＝８＋８＝１６を設定する（ステップＳ１４１７）。
以上より、ＳＮ＿ｌｉｓｔの値は「１１」であるから、パケット欠損検出手段９１２は、優先シーケンス番号「１１」のパケットが欠損したことを検出する。
Ｎ＋１回目の動作も同様である。
以下、Ｎ＋１回目のパケット欠損検出処理におけるパケット欠損検出処理の動作について図１４、図１６を参照して詳細に説明する。
この場合、ＦＳＮ＝１６であり、ＮｃｕｒにはＮ回目のＮｃｕｒ＋Ｎｉｎｔ＝１６＋８＝２４が既に設定されていることを前提とする。
まず、Ｎ＋１回目のパケット欠損検出処理において、パケット欠損検出手段９１２は、受信バッファのＦＳＮ＝１６に対応する一般シーケンス番号を有する受信パケットのポインタをＰに設定する（ステップＳ１４０２）。
次に、パケット欠損検出手段９１２は、受信バッファのポインタＰに格納されているパケットの優先シーケンス番号＝８をＭＰＳＮに設定する（ステップＳ１４０３）。この結果、ＭＰＳＮ＝８となる。
次に、Ｌｏｓｓに初期値として０を設定し、Ｉに初期値として０を設定し、ＳＮ＿ｌｉｓｔに初期値として０を設定する（ステップＳ１４０４）。
次に、Ｐ＜Ｎｃｕｒ＝２４の範囲内で以下の処理を実行する（ステップＳ１４０５）。
まずＦＳＮ＋ＩとポインタＰに格納されている一般シーケンス番号を比較する（ステップＳ１４０６）。ＦＳＮ＋Ｉ＝１６＋０＝１６でポインタＰに格納されている一般シーケンス番号＝１６であるから、比較の結果、「ＦＳＮ＋Ｉ＝ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４０７へ分岐し、ポインタＰに格納されているパケットの優先シーケンス番号＝８をＭＰＳＮに設定し（ステップＳ１４０７）、さらにＩを１つインクリメントし（ステップＳ１４０８）、さらにポインタＰも１つインクリメントすることで次のパケットのポインタを設定する（ステップＳ１４１０）。この結果、Ｉ＝１、ＭＰＳＮ＝８となり、ポインタＰに格納されている一般シーケンス番号は１８となる。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されている一般シーケンス番号を比較する（ステップＳ１４０６）。ＦＳＮ＋Ｉ＝１６＋１＝１７で、ポインタＰに格納されている一般シーケンス番号＝１８であるから、比較の結果、「ＦＳＮ＋Ｉ≠ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４０９へ分岐し、ステップＳ１４０９では、比較の結果、「ＦＳＮ＋１＜ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４１１へ分岐する。ステップＳ１４１１では、ＭＰＳＮとポインタＰに格納されているパケットの優先シーケンス番号を比較する。ＭＰＳＮ＝８で、ポインタＰに格納されているパケットの優先シーケンス番号＝８であるから、比較の結果、「ＭＰＳＮ＝ポインタＰに格納されているパケットの優先シーケンス番号」となり、ステップＳ１４１２へ分岐する。ステップＳ１４１２では、ポインタＰに格納されているパケットの一般シーケンス番号−ＦＳＮ＝１８−１６＝２をＩに設定し（ステップＳ１４１２）、さらに、ＬｏｓｓにポインタＰに格納されているパケットの一般シーケンス番号−（ＦＳＮ＋Ｉ）＝１８−１７＝１を設定する（ステップＳ１４１３）。この結果、Ｉ＝２となり、Ｌｏｓｓ＝１となる。なお、一般シーケンス番号１７のパケットはＳＮ＿ｌｉｓｔには追加されない。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されている一般シーケンス番号を比較する（ステップＳ１４０６）。ＦＳＮ＋Ｉ＝１６＋２＝１８でポインタＰに格納されている一般シーケンス番号＝１８であるから、比較の結果、「ＦＳＮ＋Ｉ＝ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４０７へ分岐し、ポインタＰに格納されているパケットの優先シーケンス番号＝８をＭＰＳＮに設定し（ステップＳ１４０７）、さらにＩを１つインクリメントし（ステップＳ１４０８）、さらにポインタＰも１つインクリメントすることで次のパケットのポインタを設定する（ステップＳ１４１０）。この結果、Ｉ＝３、ＭＰＳＮ＝８となり、ポインタＰに格納されている一般シーケンス番号は１９となる。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されている一般シーケンス番号を比較する（ステップＳ１４０６）。ＦＳＮ＋Ｉ＝１６＋３＝１９でポインタＰに格納されている一般シーケンス番号＝１９であるから、比較の結果、「ＦＳＮ＋Ｉ＝ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４０７へ分岐し、ポインタＰに格納されているパケットの優先シーケンス番号＝９をＭＰＳＮに設定し（ステップＳ１４０７）、さらにＩを１つインクリメントし（ステップＳ１４０８）、さらにポインタＰも１つインクリメントすることで次のパケットのポインタを設定する（ステップＳ１４１０）。この結果、Ｉ＝４、ＭＰＳＮ＝８となり、ポインタＰに格納されている一般シーケンス番号は２２となる。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されている一般シーケンス番号を比較する（ステップＳ１４０６）。ＦＳＮ＋Ｉ＝１６＋４＝２０で、ポインタＰに格納されている一般シーケンス番号＝２２であるから、比較の結果、「ＦＳＮ＋Ｉ≠ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４０９へ分岐し、ステップＳ１４０９では、比較の結果、「ＦＳＮ＋１＜ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４１１へ分岐する。ステップＳ１４１１では、ＭＰＳＮとポインタＰに格納されているパケットの優先シーケンス番号を比較する。ＭＰＳＮ＝８で、ポインタＰに格納されているパケットの優先シーケンス番号＝１０であるから、比較の結果、「ＭＰＳＮ＜ポインタＰに格納されているパケットの優先シーケンス番号」となり、ステップＳ１４１４へ分岐する。ステップＳ１４１４では、ＳＮ＿ｌｉｓｔにＦＳＮ＋Ｉ＝１６＋４＝２０を追加する。この結果、ＳＮ＿ｌｉｓｔの値は空白から「２０」に切り替わる。次に、Ｉを１つインクリメントし、Ｌｏｓｓも１つインクリメントする（ステップＳ１４１５）。この結果、Ｉ＝５となり、Ｌｏｓｓ＝２となる。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されている一般シーケンス番号を比較する（ステップＳ１４０６）。ＦＳＮ＋Ｉ＝１６＋５＝２１で、ポインタＰに格納されている一般シーケンス番号＝２２であるから、比較の結果、「ＦＳＮ＋Ｉ≠ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４０９へ分岐し、ステップＳ１４０９では、比較の結果、「ＦＳＮ＋１＜ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４１１へ分岐する。ステップＳ１４１１では、ＭＰＳＮとポインタＰに格納されているパケットの優先シーケンス番号を比較する。ＭＰＳＮ＝８で、ポインタＰに格納されているパケットの優先シーケンス番号＝１０であるから、比較の結果、「ＭＰＳＮ＜ポインタＰに格納されているパケットの優先シーケンス番号」となり、ステップＳ１４１４へ分岐する。ステップＳ１４１４では、ＳＮ＿ｌｉｓｔにＦＳＮ＋Ｉ＝１６＋５＝２１を追加する。この結果、ＳＮ＿ｌｉｓｔの値は「２０」から「２０、２１」に切り替わる。次に、Ｉを１つインクリメントし、Ｌｏｓｓも１つインクリメントする（ステップＳ１４１５）。この結果、Ｉ＝６となり、Ｌｏｓｓ＝３となる。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されている一般シーケンス番号を比較する（ステップＳ１４０６）。ＦＳＮ＋Ｉ＝１６＋６＝２２でポインタＰに格納されている一般シーケンス番号＝２２であるから、比較の結果、「ＦＳＮ＋Ｉ＝ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４０７へ分岐し、ポインタＰに格納されているパケットの優先シーケンス番号＝１０をＭＰＳＮに設定し（ステップＳ１４０７）、さらにＩを１つインクリメントし（ステップＳ１４０８）、さらにポインタＰも１つインクリメントすることで次のパケットのポインタを設定する（ステップＳ１４１０）。この結果、Ｉ＝７、ＭＰＳＮ＝１０となり、ポインタＰに格納されている一般シーケンス番号は２３となる。
次に、ループに戻り、再び、ＦＳＮ＋ＩとポインタＰに格納されている一般シーケンス番号を比較する（ステップＳ１４０６）。ＦＳＮ＋Ｉ＝１６＋７＝２３でポインタＰに格納されている一般シーケンス番号＝２３であるから、比較の結果、「ＦＳＮ＋Ｉ＝ポインタＰに格納されている一般シーケンス番号」となり、ステップＳ１４０７へ分岐し、ポインタＰに格納されているパケットの優先シーケンス番号＝１１をＭＰＳＮに設定し（ステップＳ１４０７）、さらにＩを１つインクリメントし（ステップＳ１４０８）、さらにポインタＰも１つインクリメントすることで次のパケットのポインタを設定する（ステップＳ１４１０）。この結果、Ｉ＝８、ＭＰＳＮ＝１１となり、ポインタＰに格納されている一般シーケンス番号は２４となる。
従って、ループの条件Ｎｃｕｒ＞Ｐを満足しないので、ループから抜け出し、ＦＳＮにＦＳＮ＋Ｉ＝１６＋８＝２４を設定する（ステップＳ１４１７）。
以上より、ＳＮ＿ｌｉｓｔの値は「２０、２１」であるから、パケット欠損検出手段９１２は、優先シーケンス番号２０、２１のパケットが欠損したことを検出する。
パケット欠損検出処理（ステップ１１０８）実行後、Ｌｏｓｓ＞０の場合、パケット欠損が検出されたことになるので、再送シーケンス番号追加手段９１３は、再送リスト管理手段９１５へＳＮ＿ｌｉｓｔに登録されている欠損パケットの一般シーケンス番号を追加するよう命令を発する（ステップＳ１１０９）。
追加命令を受理した再送リスト管理手段９１５は、図１３示すようにＳＮ＿ｌｉｓｔの一般シーケンス番号を再送リストへ追加する（ステップＳ１３０２〜Ｓ１３０７）。ただし、２重登録は行わない。
次に、図１１に戻って再送要求送信手段９１４は、再送リストの一般シーケンス番号の再送要求を送信装置９０１に対して行う（ステップＳ１１１０，Ｓ１１１１）。この場合、再送リストの一般シーケンス番号と、その時点で要求者（アプリケーション）９０３に提供したパケットの最大（最新）の一般シーケンス番号を、１つの再送要求パケットに乗せ（ステップＳ１１１０）、この再送要求パケットを送信装置９０１へ送信する（ステップＳ１１１１）。
次に、第１２図の例２のフローチャートに示すように、再送すべき優先度の高いパケットが欠損した時点で再送要求を行う例を説明する。
図１２において、ステップＳ１２０１〜Ｓ１２０３の動作は、図１１のステップＳ１１０１〜Ｓ１１０３と同じなので、説明を省略する。
まず、受信パケットの優先シーケンス番号ＲＰＳＮと、受信バッファ内の最大の優先シーケンス番号ＭＰＳＮを比較し（ステップＳ１２０５）、ＲＰＳＮ−ＭＰＳＮ＞１のとき（ステップＳ１２０５）、優先シーケンス番号が不連続になるため、再送すべき優先度の高いパケットが必ず１個以上は欠損したことになる。例えば、図１６の受信バッファで一般シーケンス番号１０のパケットが保存してあり、今一般シーケンス番号１２のパケットを受信したとする。このとき、ＲＰＳＮ＝７、ＭＰＳＮ＝５である。この場合、優先シーケンス番号は５から７に跳び明らかに不連続になり、ＲＰＳＮ−ＭＰＳＮ＞１である（ステップＳ１２０５）。従って、再送すべき優先度の高いパケットが必ず１個以上は欠損したことになる。この例では一般シーケンス番号１１のパケットが欠損している。そこで、受信バッファ内の最大の一般シーケンス番号ＭＳＮからＲＰＳＮのパケットの一般シーケンス番号ＲＳＮ間のパケットを再送要求するために、ＭＳＮ＋１からＲＳＮ−１の一般シーケンス番号（この例では一般シーケンス番号１１のパケット）を再送リストに追加するよう再送シーケンス番号追加手段へ追加命令を発する（ステップＳ１２０８）。ステップＳ１２０５でＮｏの場合、即ちＲＰＳＮとＭＰＳＮが等しいか１だけＲＰＳＮが大きい場合には、優先シーケンス番号だけからではパケットが欠損したか否かがわからない。しかしＲＰＳＮとＭＰＳＮが等しい場合には、たとえパケットが欠損していても優先シーケンス番号がインクリメントされていないことから、このパケットは再送するべき重要なパケットではない。そこで、ＲＰＳＮ−ＭＰＳＮ＝１でない場合（即ちＲＰＳＮ−ＭＰＳＮ＝０の場合）には（ステップＳ１２０６）、パケットは再送する必要がないので、再送シーケンス番号追加処理を行わず、ステップＳ１２０１へ戻り次のパケットの受信処理を行う（ステップＳ１２０１）。ステップＳ１２０６で、ＲＰＳＮ−ＭＰＳＮ＝１の場合には（ステップＳ１２０６）、一般シーケンス番号も比較してみないとパケットが欠損しているか否かがわからない。そこで、ＭＳＮとＲＳＮを比較する（ステップＳ１２０７）。ＲＳＮ−ＭＳＮ＝１の場合には（ステップＳ１２０７）、一般シーケンス番号が連続になっており、パケット欠損はしていないことになる。従って、パケットは再送する必要がないので、再送シーケンス番号追加処理を行わず、ステップＳ１２０１へ戻り次のパケットの受信処理を行う（ステップＳ１２０１）。ステップＳ１２０７で、ＲＳＮ−ＭＳＮ＞１の場合には、一般シーケンス番号が不連続になっており、１個以上の再送すべき優先度の高いパケットが欠損していることになるので、ＭＳＮからＲＳＮ間のパケットの再送要求を行うために、ＭＳＮからＲＳＮの一般シーケンス番号を再送リストに追加するよう再送シーケンス番号追加手段へ追加命令を発する（ステップＳ１２０８）。
追加命令を受理した再送リスト管理手段９１５は、図１３示すようにＳＮ＿ｌｉｓｔの一般シーケンス番号を再送リストへ追加する（ステップＳ１３０２〜Ｓ１３０７）。ただし、２重登録は行わない。
次に、図１２に戻って再送要求送信手段９１４は、再送リストの一般シーケンス番号の再送要求を送信装置９０１に対して行う（ステップＳ１２０９，Ｓ１２１０）。この場合、再送リストの一般シーケンス番号と、その時点で要求者（アプリケーション）９０３に提供したパケットの最大（最新）の一般シーケンス番号を、１つの再送要求パケットに乗せ（ステップＳ１２０９）、この再送要求パケットを送信装置９０１へ送信する（ステップＳ１２１０）。
以下の説明は、図１１および図１２に共通のものである。
送信装置９０１の再送要求受信手段９０６は、第１０図に示すように再送要求パケットを受信し（ステップＳ１００６）、再送要求パケットから再送要求された一般シーケンス番号と要求者（アプリケーション）９０３に提供した最大（最新）一般シーケンス番号を識別する（ステップＳ１００７，Ｓ１００８）。
次に、再送用バッファ削除手段９０７は、要求者（アプリケーション）９０３に提供した再送用バッファ内の最大（最新）一般シーケンス番号よりも小さい一般シーケンス番号のパケットはこれ以上再送要求する必要がないので、これらのパケットを削除する（ステップ１００９）。
次に、再送パケット検出手段９０８は、再送用バッファを検索して再送要求された一般シーケンス番号と等しい一般シーケンス番号を検出する（ステップ１０１０）。この一般シーケンス番号は再送するべき優先度の高いパケットの一般シーケンス番号であり、再送シーケンス番号と呼ぶ。
次に、再送手段９０９は、再送シーケンス番号のパケットを受信装置９０２へ再転送する（ステップ１０１１）。
次に、要求者（アプリケーション）９０３は、受信装置９０２が受信したパケットのペイロードを要求する。受信装置９０２のパケット提供手段９１６は、要求者（アプリケーション）９０３から、パケットのペイロードと、そのペイロードを提供するまでの待ち時間が要求されると、その待ち時間までに前回提供したパケットの次のパケット（一般シーケンス番号Ｔｎｅｘｔのパケット）のペイロードを提供するが、そのＴｎｅｘｔのパケットが欠損したり、再送もされなかったりすることで、待ち時間内にＴｎｅｘｔのパケットのペイロードが提供できないときは、パケット提供手段９１６はＴｎｅｘｔのパケットが欠損したことを要求者（アプリケーション）９０３に通知する。
第１５図に示すようにパケット提供手段９１６は、要求者（アプリケーション）１０３からパケットのペイロードと、要求からペイロード提供迄の許容待ち時間が要求されると（ステップＳ１５０２）、その現在時刻をＴｓｔａｒｔにセットして（ステップＳ１５０３）、一般シーケンス番号Ｔｎｅｘｔのパケットが受信バッファにあるか否かを調べる（ステップＳ１５０４）。受信バッファにＴｎｅｘｔのパケットがあった場合、このＴｎｅｘｔのパケットのペイロードを提供する（ステップＳ１５０５）。
受信バッファにＴｎｅｘｔのパケットがなかった場合、現在時刻が待ち時間を超えていないかタイムアウトのチェックを行い（ステップＳ１５０６）、タイムアウトの場合は、Ｔｎｅｘｔのパケットが欠損したことを要求者（アプリケーション）９０３に通知する（ステップＳ１５０８）。タイムアウトでない場合は、一般シーケンス番号Ｔｎｅｘｔが再送リストにあるか否かを調べる（ステップＳ１５０７）。
Ｔｎｅｘｔが再送リストにない場合は、送信装置９０１からは再送要求を行っても再送されないことを意味するので、Ｔｎｅｘｔのパケットが欠損したことを要求者（アプリケーション）９０３に通知する（ステップ１５０８）。
Ｔｎｅｘｔが再送リストにある場合は、再送要求を行ったが、再送要求パケットが届かなかったか、再送パケットが届かなかったことを意味する。
このとき、ＦＳＮにＴｎｅｘｔを設定し（ステップ１５１０）、Ｎｃｕｒに今回受信した最新のパケットの一般シーケンス番号を設定し（ステップ１５１１）、Ｔｃｕｒに今回受信した最新のパケットのタイムスタンプを設定し（ステップ１５１２）、パケット欠損検出処理（ステップＳ１５１３）、再送シーケンス番号追加処理（ステップＳ１５１４）、再送要求送信処理（ステップＳ１５１５、Ｓ１５１６）を用いて、再度Ｔｎｅｘｔの再送要求を行うと共に、最新のパケット欠損も検出し、同時に再送要求を行う。
ただし、前記のパケット欠損検出方法の例２のように、再送すべき優先度の高いパケットが欠損する毎に再送要求をおこなっている場合で、パケット提供手段時にＴｎｅｘｔのパケットが受信バッファになく、再送リストにＴｎｅｘｔがあるときは、パケット欠損検出手段を行わず、即座にＴｎｅｘｔのパケットの再送要求を行う。
待ち時間が０をセットされたときは、受信バッファにＴｎｅｘｔがあるか否かだけを調べ、もしなかったらＴｎｅｘｔのパケットの再送要求は行わず、すぐにＴｎｅｘｔのパケットが欠損したことを要求者（アプリケーション）９０３に通知する。逆に待ち時間が無限時間をセットされたときは、受信バッファにＴｎｅｘｔのパケットがない場合、何度も再送要求を行い、Ｔｎｅｘｔのパケットが再送されるを待ち続ける。
ただし、再送リストにＴｎｅｘｔがない場合は、再送要求を行わず、Ｔｎｅｘｔのパケットが欠損したことを要求者（アプリケーション）９０３に通知する。再送要求送信手段が再送要求パケットを送信したあと、再送要求を行う間隔Ｔｒだけ待ち（ステップＳ１５１８）、再び受信バッファにＴｎｅｘｔのパケットがあるか否かを調べる。Ｔｒは再送要求を行う毎に変更してもよい。
なお、ステップＳ１５１７、Ｓ１５１８、Ｓ１５１９では、待ち時間をスリープ時間によって作成している。
簡単な例を用いて説明する。今、Ｔｗａｉｔ＝５秒、Ｔｒ＝２秒とする。この場合、５秒間のうちに２秒間隔で受信バッファのチェックおよびパケット欠損検出処理を行うことになる。今、パケット提供処理が０秒の時に開始されたとする。即ちＴｓｔａｒｔ＝０である。従って、現在時刻は０秒から１秒、２秒、３秒……と時を刻んでいく。現在時刻が３秒になるまではステップＳ１５１７でＮｏと判定され、ステップＳ１５１８を実行する。ステップＳ１５１８では、２秒だけスリープ（遅延）する。従って、２秒後には再び受信バッファのチェックおよびパケット欠損検出処理を行う。これによって、許される時間内、即ち待ち時間に定期的に受信バッファのチェックとパケット欠損検出処理が行える。しかし、現在時刻が３秒を過ぎると、さらに２秒（＝Ｔｒ）のスリープでは待ち時間Ｔｗａｉｔを超えてしまう。従って、この時は、ステップＳ１５１９でその差分のみ（例えば現在時刻が４秒の時、差分はＴｗａｉｔ−現在時刻＋Ｔｓｔａｒｔ＝５−４＝１秒）の時間をスリープ（遅延）させているのである。このときのスリープ終了後は、受信バッファのチェックも行うが、ステップＳ１５０６でタイムアウトと判定されるから、パケット欠損検出処理までは行わない。すぐに、次の一般シーケンス番号を提供して（ステップＳ１５０５）、待ち時間内にパケットデータを提供することができる。
この実施の形態２によれば、実施の形態１による効果に加えて、パケットに一般シーケンス番号と優先シーケンス番号を設けることにより、優先度の高い重要なパケットのみを再送することができるので、再送処理によるネットワーク負荷の浪費を最小限に抑えることができ、ネットワークの輻輳時でも優先度の高いパケットの伝送容量を確保することができるという効果を奏する。
実施の形態３．
実施の形態３の構成は、第１７図に示すように、実施の形態２の第９図の構成の送信装置９０１に、あるパケットｐの近辺ｎ個のパケットにおいて重要なパケットおよび欠損時には再送した方が良いと判断できるパケットの情報をｍ個毎（ｍ≦ｎ）にパケットｐに付加し、ｎやｍはネットワークの輻輳状況から決定する優先度情報付加手段１７０５を追加した構成となる。また、受信装置１７０２の受信手段１７１１とパケット欠損検出手段１７１３とパケット提供手段１７１７以外の手段も実施の形態２と同様の処理を行う手段である。
第１８図は優先度情報付加手段１７０５によって優先度情報を付加されたパケットの例である。
第１８図の例１は（ステップ１８０１）、ｎ＝８、ｍ＝４としたときで、パケットＰのＰを含めた前ｎ個分の優先度情報をｎビットで表現してｍ個毎にｎビットの優先度情報を付加した例である。優先度情報は左からｎビット目がＰの優先度を表し、先頭ビットが（Ｐのシーケンス番号）−ｎ＋１番のシーケンス番号のパケットの優先度を表す。
上記の例では、ｎ＝８であるから、
Ｐのシーケンス番号が４のとき、Ｐの優先度情報の先頭ビットのシーケンス番号は
（Ｐのシーケンス番号）−ｎ＋１＝４−８＋１＝−３となる。
従って、整数ｋ、１≦ｋ≦ｎのとき、左からｋビット目の値は、シーケンス番号が、（Ｐのシーケンス番号）−ｎ＋ｋ番のパケットの優先度を表す。
上記の例では、優先度情報１８０３において、
左から１ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝４−８＋１＝−３（実在せず）、
左から２ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝４−８＋２＝−２（実在せず）、
左から３ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝４−８＋３＝−１（実在せず）、
左から４ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝４−８＋４＝０（実在せず）、
左から５ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝４−８＋５＝１、
左から６ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝４−８＋６＝２、
左から７ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝４−８＋７＝３、
左から８ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝４−８＋８＝４番のシーケンス番号のパケットの優先度を表す。
また、Ｐのシーケンス番号が８のとき、Ｐの優先度情報の先頭ビットのシーケンス番号は
（Ｐのシーケンス番号）  −ｎ＋１＝８−８＋１＝１となる。
従って、優先度情報１８０４において、
左から１ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝８−８＋１＝１、
左から２ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝８−８＋２＝２、
左から３ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝８−８＋３＝３、
…………………………………………………………、
左から８ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝８−８＋８＝８番のシーケンス番号のパケットの優先度を表す。
又、Ｐのシーケンス番号が１２のとき、Ｐの優先度情報の先頭ビットのシーケンス番号は
（Ｐのシーケンス番号）−ｎ＋１＝１２−８＋１＝５となる。
従って、優先度情報１８０５において、
左から１ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝１２−８＋１＝５、
左から２ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝１２−８＋２＝６、
左から３ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝１２−８＋３＝７、
…………………………………………………………、
左から８ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝１２−８＋８＝１２番のシーケンス番号のパケットの優先度を表す。
また、Ｐのシーケンス番号が１６のとき、Ｐの優先度情報の先頭ビットのシーケンス番号は
（Ｐのシーケンス番号）−ｎ＋１＝１６−８＋１＝９となる。
従って、優先度情報１８０４において、
左から１ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝８−８＋１＝９、
左から２ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝８−８＋２＝１０、
左から３ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝８−８＋３＝１１、
…………………………………………………………、
左から８ビット目は
（Ｐのシーケンス番号）−ｎ＋ｋ＝４−８＋８＝１６番のシーケンス番号のパケットの優先度を表す。
左からｋビット目が１のとき、（Ｐのシーケンス番号）−ｎ＋ｋ番のパケットは再送すべき優先度の高いパケットということを表し、０ならば再送しない優先度の低いパケットを表す。例えば、シーケンス番号８のパケットに付加された優先度情報１８０４は、シーケンス番号１から８のパケットのうち、再送すべき優先度の高いパケットはシーケンス番号１、４、５、８のパケットなので、左から１００１１００１となる。
第１８図の例２は（１８０２）、同じくｎ＝８、ｍ＝４としたときで、パケットＰのＰを含めた後ｎ個分の優先度情報をｎビットで表現してｍ個毎にｎビットの優先度情報を付加した例で、ｋビット目の値は、シーケンス番号が、（Ｐのシーケンス番号）＋ｋ−１番のパケットの優先度を表す。
上記の例では、ｎ＝８であるから、
Ｐのシーケンス番号が１のとき、優先度情報１８０７において、
左から１ビット目のシーケンス番号は
（Ｐのシーケンス番号）＋ｋ−１＝１＋１−１＝１、
左から２ビット目のシーケンス番号は
（Ｐのシーケンス番号）＋ｋ−１＝１＋２−１＝２、
左から３ビット目のシーケンス番号は
（Ｐのシーケンス番号）＋ｋ−１＝１＋３−１＝３、
左から４ビット目のシーケンス番号は
（Ｐのシーケンス番号）＋ｋ−１＝１＋４−１＝４、
左から５ビット目のシーケンス番号は
（Ｐのシーケンス番号）＋ｋ−１＝１＋５−１＝５、
左から６ビット目のシーケンス番号は
（Ｐのシーケンス番号）＋ｋ−１＝１＋６−１＝６、
左から７ビット目のシーケンス番号は
（Ｐのシーケンス番号）＋ｋ−１＝１＋７−１＝７、
左から８ビット目のシーケンス番号は
（Ｐのシーケンス番号）＋ｋ−１＝１＋８−１＝８となる。
また、Ｐのシーケンス番号が５のとき、優先度情報１８０４において、
左から１ビット目のシーケンス番号は
（Ｐのシーケンス番号）＋ｋ−１＝５＋１−１＝５、
左から２ビット目のシーケンス番号は
（Ｐのシーケンス番号）＋ｋ−１＝５＋２−１＝６、
左から３ビット目のシーケンス番号は
（Ｐのシーケンス番号）＋ｋ−１＝５＋３−１＝７、
…………………………………………………………、
左から８ビット目のシーケンス番号の優先度情報は
（Ｐのシーケンス番号）＋ｋ−１＝５＋８−１＝１２となる。
又、Ｐのシーケンス番号が９のとき、優先度情報１８０５において、
左から１ビット目のシーケンス番号は
（Ｐのシーケンス番号）＋ｋ−１＝９＋１−１＝９、
左から２ビット目のシーケンス番号は
（Ｐのシーケンス番号）＋ｋ−１＝９＋２−１＝１０、
左から３ビット目のシーケンス番号は
（Ｐのシーケンス番号）＋ｋ−１＝９＋３−１＝１１、
…………………………………………………………、
左から８ビット目のシーケンス番号は
（Ｐのシーケンス番号）＋ｋ−１＝９＋８−１＝１６となる。
また、Ｐのシーケンス番号が１３のとき、優先度情報１８０４において、
左から１ビット目のシーケンス番号は
（Ｐのシーケンス番号）＋ｋ−１＝１３＋１−１＝１３、
左から２ビット目のシーケンス番号は
（Ｐのシーケンス番号）＋ｋ−１＝１３＋２−１＝１４、
左から３ビット目のシーケンス番号は
（Ｐのシーケンス番号）＋ｋ−１＝１３＋３−１＝１５、
…………………………………………………………、
左から８ビット目のシーケンス番号は
（Ｐのシーケンス番号）＋ｋ−１＝１３＋８−１＝２０となる。
ｎやｍは、ネットワークの輻輳状況などから動的に設定してもよい。例えば、輻輳状態のときはパケット欠損が発生しやすいのでｎを大きくｍを小さくすれば、受信装置側でもパケット欠損による優先度情報の欠落が起こりにくくなる。
実施の形態３のパケット欠損検出手段１７１３は、パケットの受信回数および時間から決定した間隔、およびシーケンス番号の不整合から重要なパケットが欠損する毎に、受信バッファ内のパケットや受信パケットのシーケンス番号と、送信装置の優先度情報付加手段で付加された優先度情報から、欠損してしまった重要なパケットおよび欠損時には再送した方が良いと判断できるパケットのシーケンス番号を検出する。
受信手段は、実施の形態２の受信手段と同様な処理を行うが、優先度情報が付加されたパケットの受信後には優先度情報テーブルの更新を行う処理を追加する。
第１９図は実施の形態３の受信装置のパケット欠損検出手段のフロー例を説明するフローチャートで、第２０図はパケット欠損とパケット欠損検出手段の例を示したものである。
パケット欠損検出手段１７１３がパケット欠損検出処理を行う間隔は、前回パケット欠損検出処理を行った最後のパケットのシーケンス番号やタイムスタンプと受信したパケットのシーケンス番号やタイムスタンプの差から決定する。あるいは、パケットが欠損する毎でもよい。パケット欠損検出手段がパケット欠損処理を行うシーケンス番号の間隔をＮｉｎｔ、タイムスタンプの間隔をＴｉｎｔ、前回パケット欠損検出手段を行った最後のパケットのシーケンス番号をＮｅｕｒ、前回パケット欠損検出手段を行った
パケット欠損検出手段１７１３がパケット欠損検出処理を行う間隔は、例えば、前回パケット欠損検出処理を行った最後のパケットのシーケンス番号やタイムスタンプと今回受信したパケットのシーケンス番号やタイムスタンプの差から決定する。あるいは、パケットが欠損する毎でもよい。パケット欠損検出手段がパケット欠損処理を行うシーケンス番号の間隔をＮｉｎｔ、タイムスタンプの間隔をＴｉｎｔ、パケット欠損検出手段が前回パケット欠損検出処理を行った最後のパケットのシーケンス番号をＮｃｕｒ、パケット欠損検出手段が前回パケット欠損検出処理を行った最後のパケットのタイムスタンプをＴｃｕｒとすると、受信手段が今回受信したパケットのシーケンス番号がＮｃｕｒ＋Ｎｉｎｔと等しいかあるいはそれよりよりも大きいか、あるいは受信手段が今回受信したパケットのタイムスタンプがＴｃｕｒ＋Ｔｉｎｔと等しいかあるいはそれよりよりも大きければ、ＮｃｕｒとＴｃｕｒに今回受信したパケットのシーケンス番号とタイムスタンプをそれぞれ代入した上で、パケット欠損検出処理（ステップＳ３０６）を行う。これにより、ＮｃｕｒとＴｃｕｒの値は今回の新たなパケットの最後のシーケンス番号とタイムスタンプとなる。なお、ＮｉｎｔやＴｉｎｔは、固定値でもよいし、ネットワークの輻輳状況から動的に決定してもよい。
パケット欠損検出手段１７１３は、シーケンス番号順にソートされた受信バッファにおいて、前回パケット欠損検出処理を行った最後のパケットの次のパケットからシーケンス番号Ｎｃｕｒ（今回の最後のパケットのシーケンス番号）のパケットまでの範囲（ただし、Ｎｃｕｒのパケットを除く）、あるいはタイムスタンプＴｃｕｒ（今回の最後のパケットのタイムスタンプ）のパケットまでの範囲（ただし、Ｔｃｕｒのパケットを除く）で、シーケンス番号の整合性と優先度情報をチェックして再送すべき優先度の高いパケットの欠損を検出する。
第１９図にパケット欠損検出手段１７１３によるパケット欠損検出処理の詳細フローを示す。第１９図において、パケット欠損検出手段１７１３は、はじめに受信バッファ中でシーケンス番号がＦＳＮと等しくなるパケットのポインタをＰに設定する（ステップＳ１９０２）。ここで、ＦＳＮは、前回パケット欠損検出を行った最後のパケットの次のパケットのシーケンス番号である。欠損したパケットの数をＬｏｓｓ、ＦＳＮからの距離をＩ、再送すべき優先度の高い欠損したパケットのシーケンス番号のリストをＳＮ＿ｌｉｓｔとし、ＬｏｓｓおよびＦＳＮに初期値として０を設定し、ＳＮ＿ｌｉｓｔに初期値として空白（空リスト）を設定する（ステップＳ１９０３）。
次に、パケット欠損検出処理のステップ１９０４に示す上記範囲内［前回パケット欠損検出処理を行った最後のパケットの次のパケットからシーケンス番号Ｎｃｕｒ（今回の最後のパケットのシーケンス番号）のパケットまでの範囲（ただし、Ｎｃｕｒのパケットを除く）、あるいはタイムスタンプＴｃｕｒ（今回の最後のパケットのタイムスタンプ）のパケットまでの範囲（ただし、Ｔｃｕｒのパケットを除く）］で、受信バッファのポインタＰに格納されているパケットのシーケンス番号とＦＳＮ＋Ｉを比較する（ステップＳ１９０５）。ステップＳ１９０５において、もしＦＳＮ＋ＩとポインタＰに格納されているパケットのシーケンス番号が等しければ、シーケンス番号ＦＳＮ＋Ｉ番のパケットは欠損せず受信されていることになる。そこで、Ｉをインクリメントし（ステップＳ１９０６）、さらにＰに次のパケットのポインタを設定する（ステップＳ１９０８）。
ステップＳ１９０５において、もしＦＳＮ＋ＩとポインタＰに格納されているパケットのシーケンス番号が等しくなければ、ステップＳ１９０７へ分岐する。ＦＳＮ＋ＩがポインタＰに格納されているパケットのシーケンス番号より小さければ（ステップＳ１９０７）、シーケンス番号ＦＳＮ＋Ｉ番のパケットが欠損したことになり、ステップＳ１９０９へ分岐する。ステップＳ１９０９では、優先情報テーブル２００１のシーケンス番号がＦＳＮ＋Ｉのパケットの優先度情報を再送するべきか否かを判断する（ステップＳ１９０９）。優先度情報からシーケンス番号ＦＳＮ＋Ｉのパケットが再送すべき優先度の高いパケットと判断したとき（ステップ１９０９）、シーケンス番号ＦＳＮ＋Ｉの再送要求を行うためにＳＮ＿ｌｉｓｔにＦＳＮ＋Ｉを追加し（ステップ１９１０）、ＩとＬｏｓｓをインクリメントする（１９１１）。もし、優先度情報からシーケンス番号ＦＳＮ＋Ｉのパケットが再送を必要としない優先度の低いパケットと判断したとき（ステップ１９０９）、再送要求は行わないので、ＳＮ＿ｌｉｓｔには欠損したＦＳＮ＋Ｉを追加しないで、ＩとＬｏｓｓをインクリメントする（ステップＳ１９１１）。
ステップＳ１９０４で示された範囲すなわち、［前回パケット欠損検出処理を行った最後のパケットの次のパケットからシーケンス番号Ｎｃｕｒ（今回の最後のパケットのシーケンス番号）のパケットまでの範囲（ただし、Ｎｃｕｒのパケットを除く）、あるいはタイムスタンプＴｃｕｒ（今回の最後のパケットのタイムスタンプ）のパケットまでの範囲（ただし、Ｔｃｕｒのパケットを除く）］で、このシーケンス番号の比較が終了したら（ステップＳ１９１２）、ＦＳＮにＩを加えて（ステップ１９１３）、ＦＳＮを次回のパケット欠損検出処理の開始シーケンス番号とする（ステップＳ５１１）。このとき、ＳＮ＿ｌｉｓｔにある番号が、前記範囲内の欠損したパケットのシーケンス番号となり、Ｌｏｓｓが欠損したパケットの数となる。
次に、パケット欠損が発生している受信バッファとパケット欠損検出処理実行の結果の例を第２０図に示す。第２０図において、２００１はシーケンス番号とこのシーケンス番号のパケットの重要度に応じて割り当てられた優先度情報を対応させた優先度情報テーブルを示し、２００２は、Ｎｉｎｔ＝８の場合の受信バッファを示し、２００３は、Ｎ回目のパケット欠損検出処理時のＦＳＮ、Ｎｃｕｒ、Ｉ、Ｌｏｓｓ、Ｓｎ＿ｌｉｓｔの状態を表し、２００４は、Ｎ＋１回目のパケット欠損検出処理時のＦＳＮ、Ｎｃｕｒ、Ｉ、Ｌｏｓｓ、Ｓｎ＿ｌｉｓｔの状態を表す。
第２０図のパケット欠損の例では、受信バッファ２００２内のパケットのシーケンス番号が、…、８、９、１０、１２、１５、１６、１８、１９、２２、２３、２４、２５、２６、…となっており、優先度情報が優先度情報テーブル２００１のようになっており、Ｎｉｎｔ＝８となっており、Ｎ回目のパケット欠損検出処理実行時（ステップ２００３）に、ＦＳＮ＝８、Ｎｃｕｒ＝１６となっていた場合、まずシーケンス番号８から１５までの範囲で抜けている番号を検出する。優先度情報は１が再送すべき優先度の高いパケットを意味し、０が再送しない優先度の低いパケットを意味する。
この例では、１１、１３、１４の３つのシーケンス番号が抜けており、これらの３つのパケットが欠損したことになる。シーケンス番号１１のパケットの優先度情報は１なので、このパケットは再送すべき優先度の高いパケットということになり、１１はＳＬ＿ｌｉｓｔに追加するが、シーケンス番号１３と１４のパケットの優先度情報は０であるので、これらのパケットは再送しない優先度の低いパケットということになり、再送要求を行わないのでＳＮ＿ｌｉｓｔには追加しない。また、次のＮ＋１回目のパケット欠損検出手段では（ステップ２００４）、ＦＳＮはＮ回目のＦＳＮ＋Ｉ＝８＋８＝１６となり、ＮｃｕｒはＮ回目のＮｃｕｒ＋Ｎｉｎｔ＝１６＋８＝２４となる。同様にシーケンス番号１６から２４までの範囲で抜けている番号を検出する。この例では、１７、２０、２１の３つの一般シーケンス番号が抜けており、これらの３つのパケットが欠損したことになる。
シーケンス番号２１のパケットの優先度情報は１なので、このパケットは再送すべき優先度の高いパケットということになり、２１はＳＬ＿ｌｉｓｔに追加するが、シーケンス番号１７と２０のパケットの優先度情報は０であるので、これらのパケットは再送しない優先度の低いパケットということになり、再送要求を行わないのでＳＮ＿ｌｉｓｔには追加しない。
パケット欠損検出手段後、Ｌｏｓｓ＞０の場合、パケット欠損が検出されたことになるので、再送シーケンス番号追加手段によって、再送要求リスト管理手段へＳＮ＿ｌｉｓｔのシーケンス番号を追加するよう命令を発する。そして、パケット提供手段は、実施の形態２と同様の手段であるが、最後に提供したパケットのシーケンス番号より小さいシーケンス番号の優先度情報を優先度情報テーブルから削除する。
この実施の形態３によれば、実施の形態１および２による効果に加えて、優先度情報付加手段を設けることにより、すべて送信パケットに優先シーケンス番号を設けてしまうよりも総伝送量が少なくなり、反面、受信装置で欠損してしまったパケットの優先度を受信装置でより正確に認識することがでる。また、請求項５に記載した再送要求応答手段による再送要求応答パケットも必要なくなり、ネットワークの浪費と送信装置の再送要求応答負荷を削減することができる。また、優先度情報の長さと頻度を調整することで、輻輳中のネットワークでも受信装置側のパケット欠損による優先度情報の欠落が起こりにくくなるという効果を奏する。
産業上の利用可能性
以上のように、本発明にかかるパケットの再送システムは、ビデオや音声などのリアルタイム性の高いデータの転送において、リアルタイム性を重視しながらより信頼性の高い通信を行うのに適している。
【図面の簡単な説明】
第１図は実施の形態１に係る再送システムの構成図、
第２図は、実施の形態１における送信装置のフローチャート、
第３図は、実施の形態１における受信装置のパケット受信のフローチャート、
第４図は、実施の形態１における受信装置の再送要求リスト管理処理のフローチャート、
第５図は、実施の形態１における受信装置のパケット欠損検出処理のフローチャート、
第６図は、実施の形態１における受信装置の再送要求応答受信のフローチャート、
第７図は、実施の形態１における受信装置のパケット提供のフローチャート、
第８図は、実施の形態１におけるパケット欠損とパケット欠損検出処理の例
第９図は、実施の形態２に係る再送システム並びにパケット転送システムの構成図、
第１０図は、実施の形態２における送信装置のフローチャート、
第１１図は、実施の形態２における受信装置のパケット受信の例１のフローチャート、
第１２図は、実施の形態２における受信装置のパケット受信の例２のフローチャート、
第１３図は、実施の形態２における受信装置の再送要求リスト管理処理のフローチャート、
第１４図は、実施の形態２における受信装置のパケット欠損検出処理のフローチャート、
第１５図は、実施の形態２における受信装置のパケット提供のフローチャート、
第１６図は、実施の形態２におけるパケット欠損とパケット欠損検出処理の例
第１７図は、実施の形態３に係る再送システム並びにパケット転送システムの構成図、
第１８図は、優先度情報を付加されたパケットの例
第１９図は、実施の形態３における受信装置のパケット欠損検出手段のフローチャート、
第２０図は、実施の形態３におけるパケット欠損とパケット欠損検出手段の例である。
【図１】
0003866196.tif 000002
【図２】
0003866196.tif 000003
【図３】
0003866196.tif 000004
【図４】
0003866196.tif 000005
【図５】
0003866196.tif 000006
【図６】
0003866196.tif 000007
【図７】
0003866196.tif 000008
【図８】
0003866196.tif 000009
【図９】
0003866196.tif 000010
【図１０】
0003866196.tif 000011
【図１１】
0003866196.tif 000012
【図１２】
0003866196.tif 000013
【図１３】
0003866196.tif 000014
【図１４】
0003866196.tif 000015
【図１５】
0003866196.tif 000016
【図１６】
0003866196.tif 000017
【図１７】
0003866196.tif 000018
【図１８】
0003866196.tif 000019
【図１９】
0003866196.tif 000020
【図２０】
0003866196.tif 000021