明 細 書
パケット再送システムおよびパケット再送方法
技術分野
本発明は、 ビデオや音声などのリアルタイムデ一夕をィン夕一ネットゃ 無線通信網経由でストリーミング配信するサーバとクライアントに関す る。 また、 本発明は、 リアルタイム性の高いデ一夕の転送において、 パ ケット欠損発生時のリアルタイム性を重視しながらより信頼性の高い通 信を行うパケット再送システムおよびパケット再送方法に関する。
背景技術
一般に、 ネッ トワーク上を流れるパケットは、 ネットワーク上のノ一 ド(ルー夕)のオーバ一フローや、 無線空間でのビッ ト誤りなどから、 欠 損してしまうことが多々ある。 このようなパケット欠損の耐性として、 (1)何も行わない、 (2)誤りを訂正したり、 補正を行う、 (3)再送を行う、 などの方法が考えられる。
(1)の 「何も行わない」方法では、 ビデオストリームはパケヅト欠損によ りプロックノイズが発生したり、 オーディオストリームは音の途切れが 発生したり、 その他のメディアデ一夕なども正常なメディア再生ができ なくなる。
(2)の 「誤りを訂正したり、 補正を行う」 方法として、 ビデオのデコード 時に欠落したデ一夕を前後のフレームデータなどから補正してデコード したり、予め補正に必要な冗長なパケッ トを付加させる方法などがある。 (3)の 「再送を行う j方法は、 通常はリアルタイム性を要求されないデー 夕通信で行われる。 例えば、 TCPプロトコルは、 受信できた確認として
ACKパケッ トを送信元へ送っており、 その ACKパケットが送信元に返 つてこない場合、 パケットは受信されていないと判断し再送を行う信頼 性の高い転送プロトコルであるが、 再送パケッ トを待っため再送に時間 が費やしたり、 ACKパケットの超過や再送パケットの増加が帯域を圧迫 し、 輻輳を引き起こしたりする。
しかし、 マルチメディアのストリ一ミング配信では、 データのダウン 口一ドとは異なり、 必ずしも全てのデ一夕が届かなくても再生できるこ とから、 パケット欠損時には重要なデータパケッ トのみを再送要求した り、 再送したりすることが考えられる。 重要なパケッ トのみを再送する ことで帯域の有効利用が図れ、 必要ないデ一夕パケットの再送を待つこ ともないので、 よりリアルタイム性も高くなる。
これらの目的で考えられた再送制御方式の例として、 特開平 9— 2 1 4 5 0 7号公報(無線通信方法)と特開平 1 1— 2 8 4 6 5 7号公報(再 送制御方式) に記載されたものが知られている。
特開平 9 _ 2 1 4 5 0 7号公報に記載された再送方式は、 可能な限り 品質を保証した形でリアルタイム通信が行える無線通信方法であり、 パ ケッ ト欠損時には数回再送を試み、 それでも届かない場合は、 優先度が 低いパケッ トを破棄して再送を行うものである。
また、 特閧平 1 1— 2 8 4 6 5 7号公報に記載された再送方式は、 輻 輳時に優先度の低い通信のパケットを抑制するコネクション確立型通信 の再送制御方式であり、 各コネクションに再送できる回数を設定し、 再 送を行ったときに再送できる回数を 1減らし、 再送できる回数が 0にな つたら、 そのコネクションの通信を停止させ、 優先度の高い帯域をでき るだけ確保するものである。
また、 ストリーミング配信のようなリアルタイム性の高いデータ伝送 プロトコルとして、: RFC1889をはじめとするィン夕一ネヅト関連標準化
規格となっている RTP(Real-Time Transport Protocol)は、 シーケンス 番号やタイムスタンプが付加されたパケット通信のプロトコルであるが、 再送処理は行っていない。
また、 RTPの再送機能拡張案として、 「RTP Payload Type Format to Enable Selective Retransmissionsj という夕ィ トルのインター不ヅ ト ドラフト(draft-miyazaki-avt-rtp-selret-OO.txt)が挙がつており、その再 送機能拡張案では、 HTPのシーケンス番号とは別途に、 優先度の高い再 送すべきパケッ トのみに割り与えられるシーケンス番号がある。
以上のように、 ビデオや音声などのリアルタイムデータの配信を行う システムでは、パケットが欠損した場合、その対策を何も行わなければ、 データが欠落することになり、 コンテンッの再生品質が良くないという 問題がある。
また、 誤り訂正や補正を行う方法では、 受信側の負荷が大きくなつた り、 補正を行うための冗長なデ一夕によって、 より輻輳を悪化させるこ とにもなるという問題がある。
再送を行う方法では、 TCPプロトコルのように、 再送パケットを待つ ため再送に時間が費やしたり、 ACKパケッ卜の超過や再送バケツ 卜の増 加が帯域を圧迫し、 輻輳を引き起こしたりするという問題がある。
優先度の高いバケツ トだけを再送する方法では、 受信側で優先度の低 いパケッ トの再送要求を行った場合、 その再送パケットは送信元で破棄 される可能性もあるのに、 受信側はその再送パケットを待ち受けたり、 何度も再送要求を行ったりすることになり、 無駄な再送処理を行ってい ることになるという問題がある。
また、 すべてのパケットに与えられる一般シーケンス番号と、 重要な バケツトおよび欠損時には再送した方が良いと判断できるバケツ 卜のみ に与えられる優先シーケンス番号が付加された、 RTPの再送機能拡張案
によるパケッ ト通信では、 受信側で優先度を把握できる利点があるが、 連続したバケツトが欠損した場合は、 正確な優先度を認識することがで きず、 連続欠損したすべてのバケツトの再送要求を行わなければならな いという問題がある。 例えば、 第 1 6図が一般シーケンス番号と優先シ 一ケンス番号が付加されたバケツト通信におけるパケヅト欠損の例を示 したものであるが、一般シーケンス番号 2 0と 2 1が連続欠損しており、 優先シーケンス番号は一般シーケンス番号 1 9から 2 2の間で 1しか増 加していないため、 一般シーケンス番号 2 0と 2 1のどちらが再送しな ければならない優先度の高いパケットなのか判断はできず、 結局、 一般 シーケンス番号 2 0と 2 1の両パケットの再送要求を行わなければなら ない。 本発明は、 このような問題を解決し、 優先度の高い重要なパケットの みを再送することで再送処理によるネッ トワーク負荷の浪費を最小限に 抑えることができ、 ネットワークの輻輳時でも優先度の高いパケットの 伝送容量を確保できるパケットの再送システム並びにバケツトの転送シ ステムを提供することを目的とする。
発明の開示
本発明に係るパケット再送システムは、 シーケンス番号が付加されたパケットを送信する送信装置と、 この送 信装置にネッ トワークを介して接続された受信装置と、 この受信装置に 接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時におけ る送受信間のバケツトの再送を行うパケット再送システムにおいて、 送信装置は、
受信装置へ送信したパケットを蓄積しておく再送用バッファと、
前記受信装置から受信した再送要求バケツトからシーケンス番号と要求 アプリケーションへ提供した最大 (最新) シーケンス番号を識別して通 知する再送要求受信手段と、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調 ベる再送バケツ ト検出手段と、
該再送パケット検出手段が存在を検出したすべてのパケッ トを前記受信 装置へ再送する再送手段と、
を備えたものである。
また、 シーケンス番号が付加されたパケットを送信する送信装置と、 この送信装置にネットワークを介して接続された受信装置と、 この受信 装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケッ ト欠損時におけ る送受信間のパケヅトの再送を行うパケット再送システムにおいて、 受信装置は、
送信装置から受信したパケッ トを蓄積する受信バッファと、
前記送信装置から受信した前記パケッ トをシーケンス番号順にソートし ながらパケットを前記受信バッファに格納する受信手段と、
前記パケッ トの欠損を検出するパケッ ト欠損検出手段と、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加す るように追加命令を発する再送シーケンス番号追加手段と、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加 する再送要求リスト管理手段と、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケッ トに乗せて前記送信手段へ送信する再送要求送信手段と、
前記受信バッファ内のバケツ トを前記要求アプリケーション部へ供給す るパケッ ト提供手段と、
を備えたものである。
また、 シーケンス番号が付加されたパケットを送信する送信装置と、 この送信装置にネットワークを介して接続された受信装置と、 この受信 装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケッ ト欠損時におけ る送受信間のパケッ卜の再送を行うパケット再送システムにおいて、 送信装置は、
受信装置へ送信したパケットを蓄積しておく再送用バッファと、 前記受信装置から受信した再送要求パケットからシ一ケンス番号と要求 アプリケ一シヨンへ提供した最大 (最新) シーケンス番号を識別して通 知する再送要求受信手段と、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調 ベる再送バケツト検出手段と、
該再送パケット検出手段が存在を検出したすべてのパケットを前記受信 装置へ再送する再送手段と、
を備え、 前記受信装置は、
前記送信装置から受信した前記パケットを蓄積する受信バッファと、 前記送信装置から受信した前記バケツトをシーケンス番号順にソートし ながらバケツトを前記受信バッファに格納する受信手段と、
前記パケッ トの欠損を検出するパケット欠損検出手段と、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加す るように命令する再送シーケンス番号追加手段と、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加 する再送要求リスト管理手段と、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケッ
トに乗せて前記送信手段へ送信する再送要求送信手段と、
前記受信バッファ内のパケッ トを前記要求アプリケーション部へ供給す るバケツト提供手段と、
を備えたものである。
また、 送信装置は、
特定のバケツ トまたは欠損時に再送するべきパケッ トを再送用バッファ に格納する再送パケット格納手段と、
前記特定のパケットまたは欠損時に再送するべきバケツ トの再送信を行 う再送手段と、 を備え、
受信装置は、
前記特定のバケツ トまたは欠損時に再送するべきパケッ トを受信後、 シ 一ケンス番号順にソートしながら前記特定のパケットまたは欠損時に再 送するべきパケットを受信バッファに格納する受信手段と、
を備えたものである。 '
また、 受信装置は、
現在再送要求を行っているパケットのシーケンス番号および次の再送要 求時に再送要求を行うパケッ トのシーケンス番号を格納する再送要求リ ストを生成し、 シーケンス番号の追加および削除を行い、 再送要求リス 卜に格納されているシーケンス番号のパケットの状態を再送要求状態に 切り替える再送要求リスト管理手段と、
を備えたもめである。
また、 受信装置は、
パケットの受信回数および受信時間から決定されるパケッ トの受信時間 間隔で、 受信バッファ内のパケットのシーケンス番号の不整合から欠損 したパケットのシーケンス番号を検出するパケット欠損検出手段と、 該バケツト欠損検出手段が欠損を検出したバケツトのシーケンス番号を
再送要求リストに追加する命令を再送要求リスト管理手段へ出す再送シ 一ケンス番号追加手段と、
前記再送要求リス卜の状態を再送パケッ ト受信待ちの状態を意味する" R E A D Y状態" に設定する命令を前記再送要求リス ト管理手段へ出す 再送要求通知手段を備えたものである。
また、 受信装置は、
再送要求リストに存在する 1以上の再送するべきパケットのシーケンス 番号を乗せた 1つの再送要求パケットを生成し、 前記再送要求バケツ ト を送信装置へ送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットの前記シーケンス番号 を取り出して通知する再送要求受信手段と、
前記通知されたシーケンス番号のパケッ トが再送バッファに格納されて いるか否かを調べる再送パケヅト検出手段と、
該再送バケツト検出手段が存在を検出したすべてのパケットのシーケン ス番号を 1つの再送要求応答バケツトに乗せ、 前記受信装置へ送信する 再送要求応答手段と、
前記再送パケット検出手段が検出した前記バケツトを前記受信装置へ再 送信する再送手段と、
を備えたものである。
また、 受信装置は、
パケット提供手段が要求アプリケーション部に提供したバケツトの最大 (最新) シーケンス番号を乗せた 1つの再送要求パケットを生成し、 前 記再送要求パケットを送信装置へ送信する再送要求送信手段を備え、 前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記最大シ一ケン
ス番号を取り出して通知する再送要求受信手段と、
通知された前記最大シーケンス番号より小さいシーケンス番号のパケッ トを再送用バツファから削除する再送用バッファ削除手段と、 を備えたものである。
また、 受信装置は、
再送要求リストに存在する 1以上の再送するべきバケツ トのシーケンス 番号と、 パケッ ト提供手段が要求アプリケーション部に提供したパケッ トの最大 (最新) シーケンス番号を乗せた 1つの再送要求パケットを生 成し、 前記再送要求バケツ トを送信装置へ送信する再送要求送信手段を 備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケッ トから前記シーケンス番 号と、 前記最大シーケンス番号を取り出して通知する再送要求受信手段 と、
前記通知されたシーケンス番号のパケットが再送用バッファ内に有るか 否かを調べる再送パケッ ト検出手段と、
前記通知された最大シーケンス番号より小さいシーケンス番号のパケッ トを再送用バッファから削除する再送用バッファ削除手段と、 前記再送パケット検出手段が存在を検出したすべてのパケットのシ一ケ ンス番号を 1つの再送要求応答パケ トに乗せ、 前記受信装置へ送信す る再送要求応答手段と、
前記再送パケツ ト検出手段が検出したパケットを前記受信装置へ再送信 する再送手段と
を備えたものである。
また、 受信装置は、
再送されるパケッ トのシーケンス番号を乗せた再送要求応答バケツトを
前記送信装置から受信する再送要求応答受信手段と、 前記再送要求応答バケツトから前記シーケンス番号を取り出し、 再送要 求リス卜から前記シーケンス番号と同じシーケンス番号を削除するよう に命令する削除命令を再送要求リスト管理手段へ出す再送シーケンス削 除手段と、
を備えたものである。
また、 受信装置は、
再送されるパケッ 卜のシーケンス番号を乗せた再送要求応答パケットを 前記送信装置から受信する再送要求応答受信手段と、
前記再送要求応答パケットから前記シーケンス番号を取り出し、 再送要 求リストから前記シーケンス番号と同じシーケンス番号を削除するよう に命令する削除命令を再送要求リスト管理手段へ出す再送シーケンス削 除手段と、
前記再送要求リス卜の状態を、 再送要求リス卜に残っているシーケンス 番号のパケットの再送要求を行ったが前記送信装置からは今後再送され てこないことを意味する "ACTIVE"状態に設定する命令を前記再送要求 リスト管理手段へ出す再送要求応答通知手段と、
を備えたものである。
また、 受信装置は、
受信バッファ内に格納されているパケットの中から、 1つ以上のパケッ 卜のペイロード (データ) を要求アプリケーション部に提供し、 前記パ ケットのシーケンス番号よりも小さいシーケンス番号を再送要求リスト から削除し、 前回に提供されたパケットのシーケンス番号 (N: Nは自然 数)の次のシーケンス番号 (N+1)のパケヅトのペイロードを指定された時 間内に提供し、 前記指定された時間内に前記次のシーケンス番号 (N+1) のパケッ トが受信バヅファに存在しない、あるいは揷入されない場合は、
提供されるべきバケツ 卜が欠損したことを前記要求アプリケーション部 に通知するパケッ ト提供手段を備えたものである。
また、 受信装置は、
指定時間内に提供しなければならないバケツ 卜が受信バッファにない場 合、 再びパケッ ト欠損検出と再送要求送信を指定時間内に 1回以上行う パケヅト提供手段を備えたものである。
また、 受信装置は、
再送要求リストの状態が、該再送要求リストに格納されているシーケンス番号 のパケツトの送信装置への再送要求はすでに行われているが前記送信装置か らは今後再送されてこないことを意味する" ACTIVE"状態であり、要求アプリ ケーシヨン部に提供するパケットのシーケンス番号が前記再送要求リストの 中にある場合、再送要求を行っても再送されないと判断し、指定時間を待たず すぐに提供されるべきパケットが欠損したことを要求者に通知するバケツト 提供手段を備えたものである。
また、 すべてのパケットに与えられる一般シーケンス番号と、 特定の バケツ ト又は欠損時に再送するべきバケツ 卜に与えられる優先シ一ケン ス番号が付加されたパケット通信のパケット欠損時における送受信間の パケヅ ト再送システムにおいて、
送信装置は、
前記特定のパケッ ト又は欠損時に再送するべきバケツ トを再送用バッフ ァに格納する再送パケット格納手段と、
前記特定のパケット又は欠損時に再送するべきパケッ卜の再送信を行う 再送手段とを備え、
受信装置は、 前記特定のパケット又は欠損時に再送するべきバケツ トを 受信後、 一般シーケンス番号順にソートしながら前記特定のパケッ ト又 は欠損時に再送するべきパケットを受信バッファに格納する受信手段と、
を備えたものである。
また、 受信装置は、
再送を行うパケットの一般シーケンス番号を格納する再送リストを生成 し、 前記一般シーケンス番号の追加と削除を行う再送リスト管理手段を 備えたものである。
また、 受信装置は、
受信手段が受信したパケットの一般シーケンス番号が再送リストにある 場合、 前記一般シーケンス番号を前記再送リストから削除する命令を再 送リスト管理手段へ出す再送シーケンス番号削除手段と、
前記パケッ トの受信回数および受信時間から決定されるバケツ 卜の受信 時間間隔、 および優先シーケンス番号の不整合から優先度の高い特定の パケットが欠損する毎に、 受信バッファ内のパケットゃ受信パケッ卜の 一般シーケンス番号と優先シーケンス番号から、 欠損を発生した優先度 の高い特定のパケットおよび欠損時に再送するべきパケットの一般シ一 ケンス番号を検出するパケット欠損検出手段と、
該パケット欠損検出手段が欠損を検出した前記優先度の高い特定のパケ ットおよび欠損時に再送するべきパケッ トの一般シーケンス番号を再送 リストに追加する命令を前記再送リスト管理手段へ出す再送シーケンス 番号追加手段を備えたものである。
また、 受信装置は、
再送リストに存在する 1以上の一般シーケンス番号を乗せた 1つの再送 要求パケッ トを生成し、 前記再送要求バケツトを送信装置へ送信する再 送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求バケツトから前記一般シーケン ス番号を取り出して通知する再送要求受信手段と、
前記通知された一般シーケンス番号のパケッ卜が再送用バッファ内に有 るか否かを調べる再送パケット検出手段と、
該再送パケッ ト検出手段が存在を検出した一般シーケンス番号のパケッ トを前記受信装置へ再送信する再送手段と、
を備えたものである。
また、 受信装置は、
バケツ ト提供手段が要求アプリケーション部に提供したバケツ卜の最大 (最新)一般シーケンス番号を乗せた 1つの再送要求バケツ トを生成し、 前記再送要求パケットを送信装置に送信する再送要求送信手段を備え、 前記送信装置は、 .
前記受信装置から受信した前記再送要求バケツ トから前記最大一般シ一 ケンス番号を取り出して通知する再送要求受信手段と、
通知された前記最大一般シーケンス番号より小さい一般シーケンス番号 のパケットを再送用バッファから削除する再送用バッファ削除手段と、 備えたものである。
また、 受信装置は、
再送リストに存在する 1以上の一般シーケンス番号と、 パケツト提供手 段が要求アプリケーション部に提供したバケツ トの最大 (最新) 一般シ 一ケンス番号を乗せた 1つの再送要求パケットを生成し、 前記再送要求 パケッ トを送信装置に送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケッ トから前記一般シーケン ス番号と、 前記最大一般シーケンス番号を取り出して通知する再送要求 受信手段と、
通知された前記最大一般シーケンス番号より小さい一般シーケンス番号 のパケットを再送用バッファから削除する再送用バッファ削除手段と、
前記通知された一般シーケンス番号のパケットが再送用バッファ内に有 るか否かを調べる再送パケット検出手段と、
該再送パケッ ト検出手段が存在を検出した一般シーケンス番号のバケツ トを前記受信装置へ再送信する再送手段と、
を備えたものである。
また、 受信装置は、
受信バッファ内に格納されているパケヅ 卜の中から、 1つ以上のバケツ トのペイ口一ド (デ一夕) を要求アプリケーション部に提供し、 前記パ ケットの一般シ一ケンス番号よりも小さい一般シーケンス番号を再送リ ストから削除し、 前回に提供したパケヅ トの一般シーケンス番号 (N: N は自然数)の次の一般シーケンス番号 (N+1)のバケツトのペイ口一ドを指 定された時間内に提供し、 前記指定された時間内に前記一般シーケンス 番号 (N+1)のパケヅトが受信バッファに存在しない、 又は挿入されない 場合は、 提供されるべきバケツ トが欠損したことを前記要求アプリケー シヨン部に通知するバケツ ト提供手段を備えたものである。
また、 受信装置は、
指定時間内に提供しなければならないバケツトが受信バッファに存在し ない場合、 再びパケット欠損検出と前記再送要求送信を指定時間内に数 回行うパケット提供手段を備えたものである。
また、 受信装置は、
提供するバケツトの一般シーケンス番号が、 再送リストの中に存在しな い場合、 再送要求を行わず、 指定された時間を待たずすぐに提供される べきパケットが欠損したことを要求アブリケ一ション部に通知するパケ ッ ト提供手段を備えたものである。
また、 送信装置は、 、
任意のパケヅ ト ϋの近辺 n ( nは自然数)個のパケヅ 卜において優先度の
高い特定のパケッ トまたは欠損時に再送するべきパケットに割り当てる べき優先度情報を m個毎 (m≤n. : m, nとも自然数)にバケツト pに付加 し、前記 nおよび前記 mの値をネットワークの輻輳状況から決定する優 先度情報付加手段を備え、
受信装置は、
パケットの受信回数および受信時間から決定されるパケットの受信時間 間隔、 およびシーケンス番号の不整合から重要なパケットが欠損する毎 に、 受信バッファ内のパケッ トや受信パケットのシーケンス番号と、 前 記優先度情報から、 欠損を発生した優先度の高い特定のバケツトおよび 欠損時に再送するべきパケッ トのシーケンス番号を検出するパケット欠 損検出手段を備えたことを特徴とするものである。
また、 本発明に係るパケッ ト再送方法は、 シーケンス番号が付加されたパケットを送信する送信装置と、 この送信 装置にネットワークを介して接続された受信装置と、 この受信装置に接 続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケッ ト欠損時におけ る送受信間のバケツトの再送を行うバケツト再送方法において、 送信装置は、
受信装置へ送信したパケッ トを蓄積しておく再送用バッファと、 前記受信装置から受信した再送要求バケツ トからシーケンス番号と要求 アプリケーションへ提供した最大 (最新) シーケンス番号を識別して通 知する再送要求受信ステップと、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調 ベる再送バケツ ト検出ステップと、
該再送バケツト検出ステップが存在を検出したすべてのパケットを前記 受信装置へ再送する再送ステツプと、
を備えたものである。
また、 シーケンス番号が付加されたパケットを送信する送信装置と、 この送信装置にネットワークを介して接続された受信装置と、 この受信 装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたバケツ ト通信のバケツト欠損時におけ る送受信間のパケッ トの再送を行うバケツト再送方法において、 受信装置は、
送信装置から受信したパケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケッ トをシーケンス番号順にソ一トし ながらパケットを前記受信バッファに格納する受信ステップと、 前記バケツトの欠損を検出するパケット欠損検出ステップと、 欠損が検出されたパケットのシーケンス番号を再送要求リス卜に追加す るように追加命令を発する再送シーケンス番号追加ステップと、 前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加 する再送要求リスト管理ステップと、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケッ トに乗せて前記送信ステツプへ送信する再送要求送信ステツプと、 前記受信バッファ内のパケットを前記要求アブリケ一ション部へ供給す るパケヅト提供ステップと、
を備えたものである。
また、 シーケンス番号が付加されたパケットを送信する送信装置と、 この送信装置にネッ トワークを介して接続された受信装置と、 この受信 装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたバケツ ト通信のパケット欠損時におけ る送受信間のバケツ 卜の再送を行うパケヅ 卜再送方法において、 送信装置は、
受信装置へ送信したパケッ トを蓄積しておく再送用バッファと、 前記受信装置から受信した再送要求パケッ 卜からシーケンス番号と要求 アプリケーションへ提供した最大 (最新) シーケンス番号を識別して通 知ずる再送要求受信ステップと、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調 ベる再送パケヅ ト検出ステップと、
該再送パケット検出ステップが存在を検出したすべてのバケツトを前記 受信装置へ再送する再送ステップと、
を備え、 前記受信装置は、
前記送信装置から受信した前記パケットを蓄積する受信バッファと、 前記送信装置から受信した前記パケットをシーケンス番号順にソ一トし ながらパケヅトを前記受信バッファに格納する受信ステップと、 前記パケッ トの欠損を検出するパケット欠損検出ステップと、 欠損が検出されたバケツ トのシーケンス番号を再送要求リス卜に追加す るように命令する再送シーケンス番号追加ステップと、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加 する再送要求リスト管理ステップと、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケッ トに乗せて前記送信ステツプへ送信する再送要求送信ステツプと、 前記受信バッファ内のパケッ トを前記要求アプリケ一ション部へ供給す るパケヅ ト提供ステヅプと、
を備えたものである。
また、 送信装置は、
特定のパケットまたは欠損時に再送するべきパケットを再送用バッファ に格納する再送パケッ ト格納ステップと、
前記特定のパケッ トまたは欠損時に再送するべきバケツトの再送信を行 う再送ステップと、 を備え、
受信装置は、
前記特定のパケッ トまたは欠損時に再送するべきパケットを受信後、 シ —ケンス番号順にソートしながら前記特定のパケットまたは欠損時に再 送するべきパケッ トを受信バッファに格納する受信ステップを備えたも のである。
また、 受信装置は、
現在再送要求を行っているバケツトのシーケンス番号および次の再送要 求時に再送要求を行うパケットのシーケンス番号を格納する再送要求リ ストを生成し、 シーケンス番号の追加および削除を行い、 再送要求リス トに格納されているシーケンス番号のパケヅトの状態を再送要求状態に 切り替える再送要求リスト管理ステップを備えたものである。
また、 受信装置は、
バケツトの受信回数および受信時間から決定されるバケツトの受信時間 間隔で、 受信バッファ内のパケットのシーケンス番号の不整合から欠損 したパケッ トのシーケンス番号を検出するパケット欠損検出ステップと、 該パケッ ト欠損検出ステップが欠損を検出したパケッ 卜のシーケンス番 号を再送要求リス卜に追加する命令を再送要求リスト管理ステップへ出 す再送シーケンス番号追加ステップと、
前記再送要求リストの状態を再送バケツ ト受信待ちの状態を意味する" R E A D Y状態" に設定する命令を前記再送要求リスト管理ステップへ 出す再送要求通知ステップと、
を備えたものである。
また、 受信装置は、
再送要求リストに存在する 1以上の再送するべきバケツトのシーケンス
番号を乗せた 1つの再送要求パケットを生成し、 前記再送要求バケツ ト を送信装置へ送信する再送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求バケツトの前記シーケンス番号 を取り出して通知する再送要求受信ステップと、
前記通知されたシーケンス番号のパケットが再送バッファに格納されて いるか否かを調べる再送パケヅト検出ステヅプと、
該再送パケッ ト検出ステップが存在を検出したすべてのパケットのシ一 ケンス番号を 1つの再送要求応答パケッ トに乗せ、 前記受信装置へ送信 する再送要求応答ステップと、
前記再送バケツ ト検出ステップが検出した前記バケツトを前記受信装置 へ再送信する再送ステツプと
を備えたものである。
また、 受信装置は、
パケット提供ステップが要求アプリケーション部に提供したパケヅトの 最大(最新)シーケンス番号を乗せた 1つの再送要求バケツトを生成し、 前記再送要求パケッ トを送信装置へ送信する再送要求送信ステツプを備 え、
前記送信装置は、
前記受信装置から受信した前記再送要求バケツトから前記最大シーケン ス番号を取り出して通知する再送要求受信ステツプと、
通知された前記最大シーケンス番号より小さいシーケンス番号のパケッ トを再送用バッファから削除する再送用バヅファ削除ステップと、 ' を備えたものである。
また、 受信装置は、
再送要求リストに存在する 1以上の再送するべきパケットのシーケンス
番号と、 パケット提供ステップが要求アプリケーション部に提供したパ ケットの最大 (最新) シーケンス番号を乗せた 1つの再送要求パケヅ ト を生成し、 前記再送要求パケットを送信装置へ送信する再送要求送信ス テヅプを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記シーケンス番 号と、 前記最大シーケンス番号を取り出して通知する再送要求受信ステ ップと、
前記通知されたシーケンス番号のパケッ トが再送用バッファ内に有るか 否かを調べる再送パケット検出ステップと、
前記通知された最大シーケンス番号より小さいシーケンス番号のパケッ トを再送用バヅファから削除する再送用バッファ削除ステップと、 前記再送パケット検出ステップが存在を検出したすべてのパケットのシ
—ケンス番号を 1つの再送要求応答バケツトに乗せ、 前記受信装置へ送 信する再送要求応答ステップと、
前記再送パケット検出ステップが検出したパケットを前記受信装置へ再 送信する再送ステップと
を備えたものである。
また、 受信装置は、
再送されるパケッ 卜のシーケンス番号を乗せた再送要求応答バケツ トを 前記送信装置から受信する再送要求応答受信ステップと、
前記再送要求応答パケットから前記シ一ケンス番号を取り出し、 再送要 求リストから前記シーケンス番号と同じシーケンス番号を削除するよう に命令する削除命令を再送要求リスト管理ステップへ出す再送シ一ケン ス削除ステップと、
を備えたものである。
また、 受信装置は、
再送されるバケツトのシーケンス番号を乗せた再送要求応答パケッ トを 前記送信装置から受信する再送要求応答受信ステツプと、
前記再送要求応答パケッ卜から前記シーケンス番号を取り出し、 再送要 求リストから前記シーケンス番号と同じシーケンス番号を削除するよう に命令する削除命令を再送要求リスト管理ステツプへ出す再送シーケン ス削除ステヅプと、
前記再送要求リストの状態を、 再送要求リストに残っているシーケンス 番号のパケッ トの再送要求を行ったが前記送信装置からは今後再送され てこないことを意味する "ACTIVE"状態に設定する命令を前記再送要求 リス ト管理ステップへ出す再送要求応答通知ステップと
を備えたものである。
また、 受信装置は、
受信バヅファ内に格納されているパケットの中から、 1つ以上のパケヅ 卜のペイロード (デ一夕) を要求アプリケーション部に提供し、 前記パ ケッ トのシーケンス番号よりも小さいシーケンス番号を再送要求リスト から削除し、 前回に提供されたパケヅトのシーケンス番号 (N: Nは自然 数)の次のシーケンス番号 (N+1)のパケットのペイ口一ドを指定された時 間内に提供し、 前記指定された時間内に前記次のシーケンス番号 (N+1) のパケヅトが受信バッファに存在しない、あるいは揷入されない場合は、 提供されるべきパケットが欠損したことを前記要求アプリケーション部 に通知するパケット提供ステップを備えたものである。
また、 受信装置は、
指定時間内に提供しなければならないパケットが受信バッファにない場 合、 再びパケット欠損検出と再送要求送信を指定時間内に 1回以上行う バケツ ト提供ステップを備えたものである。
また、 受信装置は、
再送要求リストの状態が、該再送要求リストに格納されているシ一ケンス番号 のパケットの送信装置への再送要求はすでに行われているが前記送信装置か らは今後再送されてこないことを意味する" ACTIVE"状態であり、要求アブリ ケ一シヨン部に提供するパケットのシーケンス番号が前記再送要求リストの 中にある場合、再送要求を行っても再送されないと判断し、指定時間を待たず すぐに提供されるべきパケットが欠損したことを要求者に通知するパケット 提供ステップを備えたものである。
また、 すべてのパケットに与えられる一般シーケンス番号と、 特定の パケッ ト又は欠損時に再送するべきパケットに与えられる優先シ一ケン ス番号が付加されたパケッ ト通信のバケツト欠損時における送受信間の パケッ ト再送方法において、
送信装置は、
前記特定のパケット又は欠損時に再送するべきパケッ トを再送用バッフ ァに格納する再送パケット格納ステップと、
前記特定のパケット又は欠損時に再送するべきパケッ トの再送信を行う 再送ステップとを備え、
受信装置は、 前記特定のバケツ ト又は欠損時に再送するべきパケットを 受信後、 一般シーケンス番号順にソートしながら前記特定のパケット又 は欠損時に再送するべきパケッ トを受信バッファに格納する受信ステツ プを備えたものである。
また、 受信装置は、
再送を行うパケットの一般シーケンス番号を格納する再送リストを生成 し、 前記一般シーケンス番号の追加と削除を行う再送リスト管理ステツ プを備えたものである。
また、 受信装置は、
受信ステップが受信したバケツ トの一般シーケンス番号が再送リストに ある場合、 前記一般シーケンス番号を前記再送リストから削除する命令 を再送リスト管理ステツプへ出す再送シーケンス番号削除ステツプと、 前記パケットの受信回数および受信時間から決定されるバケツトの受信 時間間隔、 および優先シーケンス番号の不整合から優先度の高い特定の パケットが欠損する毎に、 受信バッファ内のパケヅ トゃ受信パケットの 一般シーケンス番号と優先シーケンス番号から、 欠損を発生した優先度 の高い特定のパケットおよび欠損時に再送するべきパケッ トの一般シ一 ケンス番号を検出するパケッ ト欠損検出ステップと、
該パケット欠損検出ステップが欠損を検出した前記優先度の高い特定の パケットおよび欠損時に再送するべきパケットの一般シーケンス番号を 再送リストに追加する命令を前記再送リス ト管理ステップへ出す再送シ —ケンス番号追加ステップと、
を備えたものである。
また、 受信装置は、
再送リストに存在する 1以上の一般シーケンス番号を乗せた 1つの再送 要求パケッ トを生成し、 前記再送要求パケットを送信装置へ送信する再 送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケッ卜から前記一般シーケン ス番号を取り出して通知する再送要求受信ステップと、
前記通知された一般シーケンス番号のパケッ卜が再送用バッファ内に有 るか否かを調べる再送パケヅ ト検出ステップと、
該再送パケット検出ステツプが存在を検出した一般シーケンス番号のパ ケットを前記受信装置へ再送信する再送ステップと、
を備えたものである。
また、 受信装置は、
パケヅト提供ステップが要求アプリケーション部に提供したパケヅトの 最大 (最新) 一般シーケンス番号を乗せた 1つの再送要求パケットを生 成し、 前記再送要求パケットを送信装置に送信する再送要求送信ステツ プを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケッ トから前記最大一般シ一 ケンス番号を取り出して通知する再送要求受信ステツプと、
通知された前記最大一般シーケンス番号より小さい一般シーケンス番号 のバケツ トを再送用バヅファから削除する再送用バッファ削除ステップ と、
備えたものである。
また、 受信装置は、
再送リストに存在する 1以上の一般シーケンス番号と、 パケッ ト提供ス テツプが要求アプリケーション部に提供したパケットの最大 (最新) 一 般シーケンス番号を乗せた 1つの再送要求パケットを生成し、 前記再送 要求パケットを送信装置に送信する再送要求送信ステツプを備え、 前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記一般シーケン ス番号と、 前記最大一般シーケンス番号を取り出して通知する再送要求 受信ステップと、
通知された前記最大一般シーケンス番号より小さい一般シーケンス番号 のパケットを再送用バッファから削除する再送用バッファ削除ステップ と、
前記通知された一般シーケンス番号のパケットが再送用バッファ内に有 るか否かを調べる再送パケヅト検出ステップと、
該再送パケット検出ステップが存在を検出した一般シーケンス番号のパ ケツトを前記受信装置へ再送信する再送ステップと、
を備えたものである。
また、 受信装置は、
受信バッファ内に格納されているパケットの中から、 1つ以上のパケヅ トのペイロード (データ) を要求アプリケーション部に提供し、 前記パ ケットの一般シーケンス番号よりも小さい一般シーケンス番号を再送リ ストから削除し、 前回に提供したパケットの一般シーケンス番号 (N: N は自然数)の次の一般シーケンス番号 (N+1)のパケッ トのペイ口一ドを指 定された時間内に提供し、 前記指定された時間内に前記一般シーケンス 番号 (N+1)のバケツ 卜が受信バッファに存在しない、 又は挿入されない 場合は、 提供されるべきバケツトが欠損したことを前記要求アプリケ一 シヨン部に通知するパケット提供ステップを備えたものである。
また、 受信装置は、
指定時間内に提供しなければならないバケツトが受信バッファに存在し ない場合、 再びパケッ ト欠損検出と前記再送要求送信を指定時間内に数 回行うパケット提供ステップを備えたものである。
また、 受信装置は、
提供するバケツ トの一般シーケンス番号が、 再送リストの中に存在しな い場合、 再送要求を行わず、 指定された時間を待たずすく、に提供される べきパケットが欠損したことを要求アプリケーション部に通知するパケ ッ ト提供ステップを備えたものである。
また、 送信装置は、
任意のパケット pの近辺 n ( nは自然数)個のパケッ トにお'いて優先度の 高い特定のパケットまたは欠損時に再送するべきパケットに割り当てる べき優先度情報を m個毎 (m≤n: m, nとも自然数)にバケツト pに付加
し、前記 nおよび前記 mの値をネットワークの輻輳状況から決定する優 先度情報付加ステツプを備え、
受信装置は、
パケットの受信回数および受信時間から決定されるバケツトの受信時間 間隔、 およびシーケンス番号の不整合から重要なパケットが欠損する毎 に、 受信バッファ内のパケットや受信パケッ トのシーケンス番号と、 前 記優先度情報から、 欠損を発生した優先度の高い特定のバケツトおよび 欠損時に再送するべきパケットのシーケンス番号を検出するパケット欠 損検出ステップとを備えたものである。 図面の簡単な説明
第 1図は実施の形態 1に係る再送システムの構成図、
' 第 2図は、 実施の形態 1における送信装置のフローチャート、 第 3図は、 実施の形態 1における受信装置のバケツ ト受信のフローチ ャ一卜、
第 4図は、 実施の形態 1における受信装置の再送要求リスト管理処理 のフローチャート、
第 5図は、 実施の形態 1における受信装置のパケッ ト欠損検出処理の フローチヤ一ト、
第 6図は、 実施の形態 1における受信装置の再送要求応答受信のフロ 第 7図は、 実施の形態 1における受信装置のパケッ ト提供のフロ一チ ヤート、
第 8図は、 実施の形態 1におけるバケツト欠損とパケット欠損検出処 理の例
第 9図は、 実施の形態 2に係る再送システム並びにパケット転送シス
テムの構成図、
第 1 0図は、 実施の形態 2における送信装置のフローチャート、 第 1 1図は、 実施の形態 2における受信装置のパケッ ト受信の例 1の フ口一チヤ一ト、
第 1 2図は、 実施の形態 2における受信装置のパケット受信の例 2の フ口一チヤ一ト、
第 1 3図は、 実施の形態 2における受信装置の再送要求リスト管理処 理のフローチャート、
第 1 4図は、 実施の形態 2における受信装置のパケット欠損検出処理 のフローチャート、
第 1 5図は、 実施の形態 2における受信装置のパケッ ト提供のフロー ナヤ一卜、
第 1 6図は、 実施の形態 2におけるパケッ ト欠損とバケツト欠損検出 処理の例
第 1 7図は、 実施の形態 3に係る再送システム並びにパケット転送シ ステムの構成図、
第 1 8図は、 優先度情報を付加されたバケツトの例
第 1 9図は、 実施の形態 3における受信装置のバケツト欠損検出手段 のフ口一チャ一卜、
第 2 0図は、 実施の形態 3におけるパケット欠損とパケット欠損検出 手段の例である。
発明を実施するための最良の形態
以下、 本発明の実施の形態について添付図面を参照しつつ説明する。 実施の形態 1 .
第 1図は本発明の実施の形態 1を示すバケツト再送システム、 および
パケット転送システムの構成図であり、 シーケンス番号が付加されたパ ケッ ト通信のパケット欠損時における送受信間のパケッ卜の再送、 およ びパケット転送を示している。 本実施の形態 1の再送 ステム、 および バケツト転送システムは、 ィン夕一ネットゃ無線網などのネッ トワーク 104と、 パケヅトを送信する送信装置 101と、 ネヅトワーク 104を介し て送信装置 101から送信されたバケツ トを受信する受信装置 102と、そ の受信装置 102 からパケットデ一夕を要求する要求者(アプリケーショ ン) 103とから構成される。
そして、 送信装置 101は、 受信装置 102へ送信済みのパケットのうち、 再送すべきバケツトのみを再送用バッファに格納しておく再送パケッ ト 格納手段 105と、 受信装置 102からの再送要求パケッ トを受信し、 再送 要求パケッ トから再送要求されたパケッ 卜のシーケンス番号を取り出し 再送パケッ ト検出手段 107へ、 要求者に提供された最大シーケンス番号 (この最大シーケンス番号は最新のバケツトのシーケンス番号を意味す る)を再送用バッファ削除手段 120へ通知する再送要求受信手段 106と、 要求者 103に提供された最大 (最新) シーケンス番号より小さいシ一ケ ンス番号のパケットを再送用バッファから削除する再送用バッファ削除 手段 120と、再送用バ、夕ファの中から再送要求受信手段 106によって通 知されたシーケンス番号を検出する再送パケット検出手段 107と、 再送 パケヅト検出手段 107によって検出されたすベてのシーケンス番号を 1 つの再送要求応答パケッ トに乗せて受信装置 102へ送信する再送要求応 答手段 108と、再送バケツト検出手段 107で検出されたシーケンス番号 のバケツ トを受信装置 102に再送信する再送手段 109を有している。 また、 受信装置 102は、 送信装置 101からパケッ トを受信し、 シ一ケ ンス番号順にソ一トしながらバケツトを受信バッファに格納する受信手 段 110と、 次の再送要求時に再送要求を行うパケット、 および現在再送
要求を行っているパケッ トのシーケンス番号を格納する再送要求リスト において、 シーケンス番号の追加と削除と、 再送要求リストの状態遷移 を行う再送要求リスト管理手段 115と、 パケッ トの受信回数および受信 時間から決定されるパケッ ト受信間隔で、 受信バッファ内のパケットの シーケンス番号の不整合から欠損したパケットのシ一ケンス番号を検出 するパケット欠損検出手段 111と、バケツト欠損検出手段 111によって 検出された欠損したパケッ トのシーケンス番号を再送要求リストに追加 する命令を再送要求リス ト管理手段 119へ出す再送シーケンス番号追加 手段 112と、 再送要求リス トの状態を、 再送要求は行ったが再送要求応 答がまだ返っておらず、 再送要求リストにあるシーケンス番号に対応す るパケッ トがすべて再送されてくるかどうかわからない状態を意味す る" READY"状態にする命令を再送要求リスト管理手段 115 へ出す再送 要求通知手段 113と、パケッ ト欠損検出手段 111がパケット欠損検出を 行う間隔で再送要求リストに存在する複数のシーケンス番号を 1つの再 送要求パケットに乗せ、 送信装置 101へ送信する再送要求送信手段 114 と、 再送要求応答パケットを受信し、 再送要求応答パケットから送信装 置 101から再送されてくるパケットのシーケンス番号を再送シーケンス 番号削除手段 117へ通知する再送要求応答受信手段 116と、再送要求応 答受信手段 116によって通知されたシーケンス番号の削除命令を再送要 求リストに出す再送シーケンス番号削除手段 117と、 再送要求リストの 状態を、 再送要求リストにあるシーケンス番号は、 そのパケットの再送 要求を行ったが送信装置 101 からは再送されてこないことを意味す る" ACTIVE"状態にする命令を再送要求リスト管理手段 115へ出す再送 要求応答通知手段 118と、 受信バッファ内に格納されているパケッ トの 中から、 1つの、 および複数のパケットのペイ口一ドを要求者(アプリケ —シヨン) 103に提供するパケット提供手段 119を有している。
第 2図は送信装置を説明するためのフローチャートで、 第 3図、 第 4 図、 第 5図、 第 6図、 第 7図は受信装置を説明するためのフローチヤ一 トで、 第 3図は受信手段 110 がパケッ トを受信して再送要求送信手段 114 が再送要求を行うまでの処理フロ一を説明し、 第 4図は受信装置 ' 102の再送要求リス ト管理手段 115の処理フローを説明し、 第 5図は受 信装置 102のパケッ ト欠損検出手段 111の処理フローを説明し、第 6図 は再送要求応答受信手段 116によつて再送要求応答パケットを受信した ときの処理フローを説明し、 第 7図は要求者 (アブリケ一ション)からパ ケット提供手段 119によってパケットの提供を要求されたときの処理フ ローを説明するものである。
次に動作を説明する。
第 1図の構成において、送信装置 101は受信装置 102へパケットを送 信する(ステップ S 202)。送信装置 101は、送信したパケットを再送用バ ヅファへ保存する(ステップ S 203)。 このとき、 すべてのパケヅ トを再送 用バッファ 201に保存しても良いし、 再送すべき重要なバケツ トのみを 再送用バヅファ 201に保存してもよい。 ただし、 再送用バヅファ 201の サイズが最大パケット数より大きくなつた場合、 あるいは、 タイムス夕 ンプにより時間管理のとき再送用バッファ 201の蓄積時間量が最大時間 より大きくなつた場合 (ステップ S 204)、再送用バッファ 201のサイズが、 最大パケット数以下あるいは最大時間以下になるまで、 最小のシ一ケン ス番号のバケツトを再送用バッファ 201から削除する(ステップ S 205)。 受信装置 102 の受信手段 110は、 第 3図に示すように送信装置 101 からのパケットを受信すると(ステップ S 301)、受信したパケッ トをシ一 ケンス番号順にソートしながら受信バヅファに保存する(スチヅプ S そして、所定の数のパケッ トを受信したとき、 パケット欠損検出手段 11
1はパケッ トが欠損していないかをチェックする。 このチェック処理を パケッ ト欠損検出処理という。 パケッ ト欠損検出手段 111がパケッ ト欠 損検出処理 (ステップ S 306) を行う間隔は、 例えば、 前回パケッ ト欠 損検出処理 (ステップ S 306) を行った最後のパケヅ トのシーケンス番 号やタイムスタンプと今回受信したパケッ トのシーケンス番号やタイム スタンプの差から決定する(ステップ S 303)。バケツ ト欠損検出処理(ス テツプ S 306) を行うシーケンス番号の間隔を Nint、 タイムスタンプの 間隔を Tint、 パケッ ト欠損検出手段 111 が前回パケッ ト欠損検出処理 (ステップ S 306) を行った最後のパケッ トのシーケンス番号を Ncur、 パケッ十欠損検出手段 111 が前回パケッ ト欠損検出処理 (ステップ S 306) を行った最後のパケヅ トのタイムスタンプを Tcurとすると、 受信 手段 110が今回受信したパケヅ トのシーケンス番号が Ncur + Nintと等 しいかあるいはそれよりも大きいか、 あるいは受信したパケッ トのタイ ムスタンプが Tcur + Tint と等レいかあるいはそれよ.りも大きければ、 Ncurと Tcurに今回受信したバケツ トのシーケンス番号とタイムスタン プをそれぞれ代入した上で、 パケッ ト欠損検出処理 (ステップ S 306) を行う。 これにより、 Ncurと Tcurの値は今回の新たなパケッ トの最後 のシーケンス番号とタイムスタンプとなる。 なお、 Nintや Tintは、 固 定値でもよいし、 ネッ トワークの輻輳状況から動的に決定してもよい。 パケッ ト欠損検出手段 111は、 シーケンス番号順にソートされた受信 ノ、'ヅ フ ァにおいて、 前回パケッ ト欠損検出処理 (S306) を行った最後の パケヅ トの次のパケヅ 卜からシーケンス番号 Ncur (今回の最後のパケ ヅ トのシーケンス番号) のパケヅ トまでの範囲 (ただし、 Ncur のパケ ヅ トを除く) 、 あるいはタイムスタンプ Tcur (今回の最後のパケヅ トの タイムスタンプ) のパケヅ トまでの範囲 (ただし、 Tcurのパケヅ トを除 く) で、 シーケンス番号の整合性をチヱヅクして抜けているシーケンス
番号を検出する。
第 5図にバケツ ト欠損検出手段 111によるバケツ ト欠損検出処理 (ス テツプ S306) の詳細フローを示す。 第 5図において、 パケヅ ト欠損検 出手段 111は、 はじめに受信バッファ中でシーケンス番号が FSN と等 しくなるパケヅ トのボイン夕を Pに設定する(ステップ S502)。 ここで、 FSNは、前回パケッ ト欠損検出を行った最後のバケツ トの次のパケッ ト のシーケンス番号である。 欠損したバケツ トの数を Loss、 FSN からの 距離を I、 欠損したパケヅ トのシーケンス番号のリス トを SN_listとし、 Lossおよび FSNに初期値として 0を設定し、 SN— listに初期値として 空白 (空リス ト) を設定する(ステップ S503)。
次に ケッ ト欠損検出処理のステヅプ 504に示す上記範囲内 [前回パ ケッ ト欠損検出処理 (S306) を行った最後のパケッ 卜の次のバケツ トか らシーケンス番号 Ncur (今回の最後のパケヅ トのシーケンス番号) の パケッ 卜までの範囲 (ただし、 Ncur のパケヅ トを除く) 、 あるいは夕 ィムスタンプ Tcur (今回の最後のパケヅ トのタイムスタンプ)のパケヅ トまでの範囲 (ただし、 T curのパケッ トを除く) ]で、 受信バッファの ポインタ Pに格納されているパケヅ トのシーケンス番号と FSN + Iを比 較する(ステップ S505)。 ステップ S505において、 もし FSN + Iとボイ ン夕 Pに格納されているパケヅ トのシーケンス番号が等しければ、 シ一 ケンス番号 FSN + I番のパケヅ トは欠損せず受信されていることになる c そこで、 Iをインクリメントし(ステップ S506)、 さらに: Pに次のパケヅ 卜のポインタを設定する(スデヅプ S506)。 ステップ S505において、 も し FSN + Iとボイン夕 Pに格納されているパケッ トのシーケンス番号が 等しくなければ、 ステップ S507へ進む。; FSN + Iがボイン夕 Pに格納さ れているパケヅ トのシーケンス番号より小さければ (ステップ S507)、 シ —ケンス番号 FSN + I 番のパケヅ トが欠損したことになる。 そこで、
SNJistに FSN + Iを追加し(ステツプ S508)、 Iと Lossをインクリメン トする(ステヅプ S509)。
ステップ S504で示された範囲すなわち、 [前回パケット欠損検出処理 (S306) を行った最後のパケヅ 卜の次のパケヅ 卜からシーケンス番号 Ncur (今回の最後のパケヅトのシーケンス番号) のパケヅトまでの範囲 (ただし、 Ncurのパケヅトを除く)、あるいはタイムスタンプ Tcur (今 回の最後のパケヅ 卜のタイムスタンプ)のパケヅ 卜までの範囲(ただし、 T curのパケヅ トを除く) ]で、 このシーケンス番号の比較が終了したら (ステップ S510)、 FSNにェを加えて、 FSNを次回のパケット欠損検出 処理の閧始シーケンス番号とする(ステップ S511)。 このとき、 SN_list にある番号が、前記範囲内の欠損したバケツトのシーケンス番号となり、 Lossが欠損したパケヅ トの数となる。
次に、 パケッ ト欠損が発生している受信バッファとバケツト欠損検出 処理実行の結果の例を第 8図に示す。 第 8図において、 8 0 1は、 Nint = 8の場合の受信バッファを示し、 8 0 2は、 N回目のパケット欠損検 出処理時の FSN、 Ncur、 I、 Loss, Snjist の状態を表し、 8 0 3は、 N + 1回目のパケヅト欠損検出処理時の FSN、 Ncur, I、 Loss, Snjist の状態を表す。 受信バッファ 801内のパケッ トのシーケンス番号が、 1、 2、 3、 …ヽ 7、 8、 9、 1 0、 1 2、 1 5、 1 6、 1 8、 1 9、 2 2、 2 3、 2 4、 2 5、 2 6、 …となっており、 Nint= 8となっており、 N 回目のバケツ ト欠損検出処理実行時 (802)に FSN= 8、 Ncur= 1 6とな つていた場合、 シーケンス番号 8から 1 5までの範囲で抜けている番号 を検出する。 .
この例では、 1 1、 1 3、 1 4の 3つのシーケンス番号が抜けており、 これらの 3つのパケッ トが欠損したことになる。 また、 次の N+ 1回目 のパケヅ ト欠損検出処理 (803)では FSNは N回目の FSN + I= 8 + 8 =
1 6となり、 Ncurは N回目の Ncur+Nint= 1 6 + 8 = 2 4となる。 同様にシーケンス番号 1 6から 2 3までの範囲で抜けている番号を検 出する。 この例では、 1 7、 2 0、 2 1の 3つのシーケンス番号が抜け ており、 これらの 3つのパケヅ トが欠損したことになる。
以下、 N回目のパケッ ト欠損検出処理におけるパケッ ト欠損検出処理 の動作について図 5を参照して詳細に説明する。
この場合、 FSN= 8であり、 Ncurには N回目の Ncur + Nint= 8 + 8 = 1 6が既に設定されていることを前提とする。
まず、 N回目のパケッ ト欠損検出処理において、 パケッ ト欠損検出手 段 111は、 受信バッファの FSN + I= 8 + 0 = 8に対応するシーケンス 番号を有するパケッ トのポインタを Pに設定する (ステップ S 502) 。 次に、 Lossに初期値として 0を設定し、 Iに初期値として 0を設定し、 SN— listに初期値として 0を設定する (ステップ S 503) 。
次に、 P <Ncur= l 6の範囲内で以下の処理を実行する (ステップ S 504) 。
' まず、 FSN + I とポインタ Pに格納されているシーケンス番号を比較 する (ステヅプ S 505) 。 FSN + I= 8 + 0 = 8でボイン夕 Pに格納され ているシーケンス番号 = 8であるから、 比較の結果、 「: FSN + I-ボイン 夕 Pに格納されているシーケンス番号」 となり、 ステップ S 506へ分岐 し、 Iを 1つインクリメントし、 ポインタ Pも 1つインクリメントする ことで次のパケッ トのポインタを設定する (ステップ S 506) 。 この結 果、 1 = 1 となり、 ポインタ Pに格納されているシーケンス番号は 9 と なる。
次に、 ループに戻り、 再び、 FSN + I とポインタ Pに格納されている シーケンス番号を比較する (ステツプ S 505) FSN + I= 8 + 1 = 9で ボイン夕 Pに格納されているシーケンス番号 = 9であるから、 比較の結
果、 「FSN + I=ポインタ Pに格納されているシーケンス番号」 となり、 ステップ S 506へ分岐し、 Iを 1つインクリメントし、 ポインタ Pも 1 つインクリメン卜することで次のパケヅ トのボイン夕を設定する (ステ ヅプ S 506) 。 この結果、 1 = 2となり、 ポインタ Pに格納されている シーケンス番号は 1 0となる。
次に、 ループに戻り、 再び、 FSN + I とポインタ Pに格納されている シーケンス番号を比較する (ステヅプ S 505) 。 FSN + I= 8 + 2 = 1 0 でポィン夕 Pに格納されているシーケンス番号 = 1 0であるから、 比較 の結果、 「FSN + I=ポインタ Pに格納されているシーケンス番号」 とな り、 ステップ S 506へ分岐し、 Iを 1つインクリメントし、 ポインタ P も 1つインクリメントすることで次のパケッ トのボイン夕を設定する (ステップ S 506) 。 この結果、 1 = 3となり、 ポインタ Pに格納され ているシーケンス番号は 1 2となる。
次に、 ループに戻り、 再び、 FSN + I とポインタ Pに格納されている シーケンス番号を比較する (ステップ S 505) 。 FSN + I= 8 + 3 = 1 1 でボイン夕 Pに格納されているシーケンス番号 = 1 2であるから、 比較 の結果、 「FSN + I≠ポインタ Pに格納されているシーケンス番号」 とな り、 ステップ S 507へ分岐し、 ステップ S 507では、 比較の結果、 「FSN + 1 <ポインタ Pに格納されているシーケンス番号」 となり、 ステップ S 508へ分岐する。 ステップ S 508では、 SN— listに: SN + I= 8 + 3 = 1 1を追加する (ステップ S 508) 。 この結果、 SN_listの値は空白から 1 1に切り替わる。 次に、 Iを 1つインクリメントし、 Lossも 1つイン クリメントする (ステップ S 509) 。 この結果、 1 = 4となり、 Loss- 1 となる。
次に、 ループに戻り、 再び、 FSN + I とポインタ Pに格納されている シーケンス番号を比較する (ステップ S 505) 。 FSN + I= 8 + 4 = 1 2
でボイン夕 Pに格納されているシーケンス番号二 1 2であるから、 比較 の結果、 「FSN + I=ボイン夕 Pに格納されているシーケンス番号」 とな り、 ステップ S 506へ分岐し、 Iを 1つインクリメントし、 ポインタ P も 1つインク リメントすることで次のパケッ トのボイン夕を設定する (ステップ S 506) 。 この結果、 1 = 5となり、 ポインタ Pに格納され ているシーケンス番号は 1 5となる。
次に、 ループに戻り、 再び、 FSN + I とポインタ Pに格納されている シーケンス番号を比較する (ステップ S 505) 。 FSN + I= 8 + 5 = 1 3 でポインタ Pに格納されているシーケンス番号 = 1 5であるから、 比較 の結果、 「FSN + I≠ポインタ Pに格納されているシーケンス番号」 とな り、 ステップ S 507へ分岐し、 ステップ S 507では、 比較の結果、 「FSN + 1くポインタ Pに格納されているシーケンス番号」 となり、 ステップ S 508へ分岐する。 ステップ S 508では、 SN_listに FSN+ 5 = 8 + 5 = 1 3を追加する (ステップ S 508) 。 この結果、 SN_listの値は「1 1」 から「1 1、 1 3」に切り替わる。次に、 Iを 1つインクリメントし、 Loss も 1つインクリメントする (ステップ S 509) 。 この結果、 I = 6とな り、 Loss= 2となる。
次に、 ループに戻り、 再び、 FSN + I とポインタ Pに格納されている シーケンス番号を比較する (ステップ S 505) 。 : FSN + I- 8 + 6 = 1 4 でポインタ Pに格納されているシーケンス番号 = 1 5であるから、 比較 の結果、 「FSN + I≠ポインタ Pに格納されているシーケンス番号」 とな り、 ステップ S 507へ分岐し、 ステップ S 507では、 比較の結果、 「FSN + 1くポインタ Pに格納されているシーケンス番号」 となり、 ステップ S 508へ分岐する。 ステップ S 508では、 SN— listに FSN + I= 8 + 6 = 1 4を追加する (ステップ S 508) 。 この結果、 SN_listの値は「1 1 、 1 3」から 「 1 1、 1 3、 1 4」 に変わる。 次に、 Iを 1つインクリメン
トし、 Lossも 1つインクリメントする (ステップ S 509) 。 この結果、 I = 7となり、 Loss= 3となる。
次に、 ループに戻り、 再び、 FSN + I とポインタ Pに格納されている シーケンス番号を比較する (ステップ S 505) 。 FSN+I= 8 + 7 = 1 5 でポインタ Pに格納されているシーケンス番号 = 1 5であるから、 比較 の結果、 「FSN + I=ポインタ Pに格納されているシーケンス番号」 とな り、 ステップ S 506へ分岐し、 Iを 1つインクリメントし、 ポインタ P も 1つインクリメントすることで次のパケッ トのボイン夕を設定する ('ステップ S 506) 。 この結果、 1 = 8となり、 ポインタ Pに格納され ているシ一ケンス番号は 1 6となる。 従って、 ループの条件 Ncur> P を満足しないので、 ループから抜け出し、 FSN に FSN+ 1 = 1 5 + 1 = 1 6を設定する (ステップ S 511)
以上より、 シーケンス番号 1 1、 1 3、 1 4のパケッ トが欠損したこ とを検出する。
N + 1回目のバケツ ト欠損検出処理におけるパケッ ト欠損検出処理の 動作も同様である。
パケッ ト欠損検出処理 (ステップ S 306)実行後、 Loss> 0の場合、 パケ ッ ト欠損が検出されたことになるので、 再送シーケンス番号追加手段
112は、 再送要求リス ト管理手段 115へ SN_listに登録されている欠損 パケヅ トのシーケンス番号を追加するよう命令を発する(ステップ S
307)。
追加命令を受理した再送要求リス ト管理手段 115は、 SNJistのシ一ケ ンス番号を再送要求リストへ追加する(ステップ S 402〜S 407)。 ただし、 2重登録は行わない。 ただし、 SN_list にあるシーケンス番号がすべ て" ACTIVE"状態の再送要求リス トにあって、 1つも再送要求リストに 追加できない場合、 以下の再送要求通知処理や再送要求送信処理は行わ
ない。
次に、 再送要求通知手段 113は、 再送要求リストの状態を、 "READY" 状態に遷移するよう、再送要求リスト管理手段 115へ命令を発する(ステ ヅプ S 308)。 ここで、 "READY"状態にある再送要求リストとは、 再送要 求を行うシーケンス番号のリストであるが、 全てのシーケンス番号が再 送されてくるかどうかはわからない状態のシーケンス番号リストである
READY命令を受理した再送要求リスト管理手段 115は、 再送要求リス トを' 'READY"状態にする(ステップ S 402, S 03, S 412)。
次に、 再送要求送信手段 114は、 再送要求リストのシーケンス番号の 再送要求を送信装置 101に対して行う(ステップ S 309)。 この場合、再送 要求リストのシーケンス番号と、 その時点で要求者(アプリケーショ ン) 103へ提供したパケヅ トの最大(最新) のシーケンス番号を 1つの再 送要求パケットに乗せ、 その再送要求パケットを送信装置 101へ送信す る(ステップ S 310)。
送信装置 101の再送要求受信手段 106は、第 2図に示すように再送要 求パケットを受信し (ステップ S 207)、再送要求パケッ 卜から再送要求さ れたシーケンス番号と要求者(アプリケ一シヨン) 103へ提供した最大(最 新) シーケンス番号を識別する(ステップ S 208, S 209)。
次に、 再送用バッファ削除手段 120 は、 要求者 (アプリケーション) 103へ提供した再送用バッファ 201内の最大 (最新) シーケンス番号よ りも小さいシーケンス番号のパケットはこれ以上再送要求する必要がな いので、 これらのパケヅ トを削除する(ステップ S 210)o
次に、 再送パケット検出手段 107は、 再送用バッファを検索して再送 要求されたシーケンス番号と等しいシーケンス番号を検出する(ステヅ プ S 211)。 このシーケンス番号は再送するべきパケッ トのシーケンス番 号であり、 再送シーケンス番号と呼ぶ。
次に、 再送要求応答手段 108は、 再送パケット検出手段 107によって 検出された再送シーケンス番号を乗せた 1つの再送要求応答パケットを 生成し、その再送要求応答パケットを受信装置 102へ送信する(ステップ S 212)0
次に、再送手段 109は、再送シーケンス番号のパケットを受信装置 102 へ再転送する(ステップ S 213)。
受信装置 102の再送要求応答受信手段 116は、第 6図に示すように送信 装置 101から再送シーケンス番号を乗せた再送要求応答バケツトを受信 すると(ステップ S 601)、再送要求応答バケツトから再送シーケンス番号 を識別する(ステップ S 602)。
次に、 再送シーケンス番号削除手段 117は、 受信できたことにより再 送要求が不要になったパケッ トの再送シーケンス番号を再送要求リス ト から削除するように、 再送要求リスト管理手段 115へ削除命令を発する (ステツプ S 603)。
削除命令を受理した再送要求リスト管理手段 115は、 第 4図に示すよ うに再送要求リストから再送シーケンス番号を削除する(ステップ S 402, S 403,S 408〜 S 411)。 したがって、 再送要求リストに残っているシ一 ケンス番号は欠損したため再送要求を行ったが、 送信装置 101からは再 送されてこないパケットのシーケンス番号となる。
次に、 再送要求応答通知手段 118は、 第 6図に示すように再送要求リ ストを" ACTIVE"状態に遷移するように、 再送要求リスト管理手段 115 へ命令を発する(ステツプ S 604)。
ACTIVE命令を受理した再送要求リスト管理手段 115は、第 4図に示す よう に再送要求リス ト を" ACTIVE"状態に遷移する(ステップ S 402,S403,S413)。 "ACTIVE"状態の再送要求リストは、 再送要求を行つ ても送信装置から再送されてこないシーケンス番号を意味する。
次に、 要求者 (アプリケーション) 103は、 受信装置 102が受信したパ ケットのペイロードを要求する。 受信装置 102のパケット提供手段 119 は、 要求者(アプリケーション) 103 から、 パケットのペイロードと、 そ のペイロードを提供するまでの待ち時間が要求されると、 その待ち時間 までに前回提供したパケヅ トの次のバケツ ト(シーケンス番号 Tnext の パケット)のペイ口一ドを提供するが、その Tnextのバケツ 卜が欠損した り、 再送もされなかったりすることで、 待ち時間内に Tnextのバケツト のペイロードが提供できないときは、バケツト提供手段 119は Tnextの バケツトが欠損したことを要求者(アプリケーシヨン) 103に通知する。 第 7図に示すようにパケット提供手段 119は、要求者(アブリケーショ ン) 103 からバケツ トのペイロードと要求からペイ口一ド提供迄の許容 待ち時間が要求されると(ステップ S 702)、 その現在時刻を Tstartにセ ッ トして(ステップ S 703)、 シーケンス番号 Tnext のパケヅ トが受信バ ヅファにあるか否かを調べる(ステヅプ S 704)。 受信バッファに Tnext のパケットがあった場合、 この Tnextのパケッ トのペイロードを提供す る(ステヅプ S 705)。
受信バッファに Tnextのバケツ 卜がなかった場合、 現在時刻が待ち時 間を超えていないかタイムァゥトのチェックを行い(ステップ S 706)、夕 ィムァゥ卜の場合は、 Tnextのパケッ 卜が欠損したことを要求者(アプリ ケ一シヨン) 103 に通知する(ステップ S 709)。 タイムアウトでない場合 は、シーケンス番号 Tnextが再送要求リストにあるか否かを調べる(ステ ヅプ S 707)。
Tnext が再送要求リストにあり、 且つ再送要求リストが" ACTIVE"状 態である場合は (ステツプ S 708)、送信装置 101からは再送要求を行って も再送されないことを意味するので、 Tnextのパケットが欠損したこと を要求者(アプリケーション) 103に通知する(ステップ S 709)。
Tnextが再送要求リストにない場合は、 FSNに Tnextを設定し(ステ ヅプ S 711)、 Ncur に現在受信した最新のパケヅトのシーケンス番号を 設定し (ステップ S 712)、 Tcur に現在受信した最新のパケットのタイム スタンプを設定し(ステップ S 713)、 この後パケヅト欠損検出処理(ステ ップ S 714) 、 再送シーケンス番号追加処理 (ステップ S 715) 、 再送要 求応答通知処理(ステップ S 716)、 再送要求送信処理(ステップ S 717, S 718) を用いて、 再度 Tnextの再送要求を行うと共に、 最新のパケヅ ト欠損も検出し、 同時に再送要求を行う。
待ち時間が 0をセヅ トされたときは、 受信バッファに Tnextがあるか 否かだけを調べ、 もしなかったら Tnextのパケットの再送要求は行わず、 すぐに Tnext のパケッ トが欠損したことを要求者(アプリケーショ ン) 103に通知する。逆に待ち時間が無限時間をセツトされたときは、 受 信バッファに Tnext のパケヅトがない場合、 何度も再送要求を行い、 Tnextのバケツ トが再送されるを待ち続ける。
ただし、 "ACTIVE"状態の再送要求リストに Tnextがある場合は、 再 送要求を行わず、 Tnextのバケツトが欠損したことを要求者 (アプリケー シヨン) 103に通知する。再送要求送信手段が再送要求パケットを送信し たあと、 再送要求を行う間隔 Trだけ待ち (ステップ S 720) 、 再び受信 バッファに Tnextのパケットがあるか否かを調べる。 Trは再送要求を行 う毎に変更してもよい。
なお、 ステップ S719、 S720、 S721では、 待ち時間に対するスリープ 時間を作成している。
簡単な例を用いて説明する。 いま、 Twait= 5秒、 Tr= 2秒とする。 この場合、 5秒間のうちに 2秒間隔で受信バヅファのチェックおよびパ ケット欠損検出処理を行うことになる。 今、 このパケット提供処理が 0 秒の時に開始されたとする。 即ち Tstart= 0である。 従って、 現在時刻
は 0秒から 1秒、 2秒、 3秒 ··· ···と時を刻んでいく。 現在時刻が 3秒に なるまではステップ S719で Noと判定され、ステップ S720を実行する < ステップ S720では、 2秒だけスリープ (遅延) する。 従って、 2秒後 には再び受信バッファのチェックおよびパケヅト欠損検出処理 (ステツ プ S714) を行う。 これによつて、 許される時間内、 即ち待ち時間に定 期的に受信バヅファのチェックとパケッ ト欠損検出処理 (ステヅプ S714) が行える。 しかし、 現在時刻が 3秒を過ぎると、 さらに 2秒、 ( = Tr) のスリープでは待ち時間 Twaitを超えてしまう。 従って、 この時は、 ステップ S721 でその差分のみ (例えば現在時刻が 4秒の時、 差分は Twait—現在時刻 + Tstart= 5— 4 = 1秒) の時間をスリーブ (遅延) しているのである。 このスリープ終了後は、 受信バッファのチェックも 行うが、 ステップ S706でタイムアウトと判定されるから、 パケッ ト欠 損検出処理までは行わない。すぐに、次のシーケンス番号を提供して(ス テヅプ S705) 、 待ち時間内にパケヅ トデ一夕を提供することができる。 この実施の形態 1によれば、 送信装置に再送パケット格納手段と再送 要求受信手段と再送バケツト検出手段と再送手段を設けることにより、 優先度の高い重要なバケツトのみを再送することができるので、 再送処 理によるネットワーク負荷の浪費を最小限に抑えることができ、 ネッ ト ワークの輻輳時でも優先度の高いパケットの伝送容量を確保することが できる。 また、 再送パケット格納手段により、 すべての送信済みバケツ トの中から優先度の高い再送すべきバケツトを選択するのではなく、 予 め優先度の高い重要なパケッ トのみを再送用バッファに保存しておくこ とから、 再送するパケットの検索処理負荷が削減でき、 送信装置の再送 用バッファも最小限に抑えることができ、 リソースの浪費を抑えること ができる。
また、 受信装置では、 受信手段が送信装置から受信したパケットをシ
—ケンス番号順にソ一トしながら受信バヅファに保存するので、 パケヅ ト欠損検出処理が受信バッファ中のパケッ トの内から欠損したバケツ ト を検出するときに、 高速に検出することができる。
さらに、 再送要求リストと再送要求リスト管理手段、 および再送リス トと再送リスト管理手段を設けることにより、 再送要求を行ったシーケ ンス番号の識別や、 再送されてくるパケッ トのシーケンス番号の識別が 簡単に行えることができる。
さらに、 パケット欠損検出手段と再送シーケンス番号追加手段と再送 要求通知手段と再送要求送信手段を設けることにより、 複数のパケッ ト 欠損に対する再送要求を行うことができる。 また、 優先度の高い重要な パケヅトのみを再送する送信装置において、 受信装置で送信装置から再 送されてくるパケットのシーケンス番号を識別できるので、 再送されて こないパケッ トの無駄な再送要求をなくしたり、 そのパケットの再送を 待たなくてもよくなり、 よりリアルタイムな転送方式が実現できる。 さらに、再送要求受信手段と再送用バッファ削除手段を設けることで、 送信装置の再送用バッファの削減を行うことができる。 再送パケット検 出手段と再送手段を設けることにより、 再送すべき優先度の高いパケッ トのみを再送することができ、 ネットワークの輻輳状態でも最小限の再 送パケッ トを転送することで輻輳の悪化を防止することができる。また、 再送要求応答手段を設けることにより、 再送すべき優先度の高いパケッ トのシーケンス番号が受信装置でもわかるようになり、 受信装置で無駄 な再送要求を行うことを防ぐことができる。
また、 再送要求応答受信手段と再送シーケンス番号削除手段と再送要 求応答通知手段を設けることにより、 受信装置側で送信装置から再送さ れない優先度の低いパケットに対する無駄な再送要求を行うことを防ぐ ことができる。
また、 バケツ ト提供手段を設けることにより、 要求者 (アプリケ一ショ ン)が各パケッ ト毎に待ち時間を設定することができ、その時間までにパ ケッ トのペイロードの提供、 あるいはパケット欠損の通知を得ることが できる。
また、 定期間隔で行うパケット欠損検出手段と再送要求送信手段によ る再送要求だけではなく、 要求者(アプリケ一シヨン)からの要求時にも 待ち時間内に数回、 パケヅト欠損検出手段と再送要求送信手段によって 再送要求を行うバケツト提供手段を設けることにより、 待ち時間内に再 送されてくる可能性が高くなり、 より信頼性の高い提供手段が実現でき る。
また、送信装置から再送されない優先度の低いパケッ卜が要求者 (アブ リケ一ション)から要求され、そのパケヅトが受信バッファにない場合に、 無駄な再送要求を行うことなくすぐにパケットが欠損したことを通知す るパケット提供手段を設けることで、 よりレスポンスの早い提供手段が 実現できる。
また、 受信装置においてシーケンス番号の不整合と優先度情報から欠 損を発生したバケツトの優先度を的確に認識できるバケツ ト欠損検出手 段を設けることにより、 再送されない優先度の低いパケッ トの無駄な再 送要求を防ぐことができ、 ネットワークの浪費と送信装置の再送バケツ ト検出処理負荷を削減できる。 実施の形態 2 .
第 9図は本発明の実施の形態 2を示すバケツト再送システム、 および パケッ ト転送システムの構成図であり、 すべてのパケットに与えられる —般シーケンス番号と、 重要なパケッ トおよび欠損時には再送した方が 良いと判断できるパケットのみに与えられる優先シーケンス番号が付加
されたバケツト通信のパケッ ト欠損時における送受信間の再送、 および パケット転送を示している。 本実施の形態 2の再送システム、 およびパ ケッ ト転送システムは、 イン夕一ネッ トゃ無線網などのネッ トワーク 904と、 パケットを送信する送信装置 901と、 ネットヮ一ク 904を介し て送信装置 901から送信されたパケットを受信する受信装置 902と、そ の受信装置 902 からパケッ トデ一夕を要求する要求者(アプリケ一ショ ン) 903とから構成される。
そして、 送信装置 901は、 受信装置 902へ送信済みのバケツトのうち、 再送すべきパケットのみを再送用バッファに格納しておく再送パケッ ト 格納手段 905と、 受信装置 902からの再送要求バケツトを受信し、再送 要求パケットから再送要求されたパケッ トの一般シーケンス番号を取り 出し再送バケツト検出手段 908へ、 要求者に提供された最大一般シ一ケ ンス番号 (この最大一般シーケンス番号は最新のパケットの一般シ一ケ ンス番号を意味する) を再送用バッファ削除手段 907へ通知する再送要 求受信手段 906と、 要求者 903に提供された最大 (最新)一般シ一ケン ス番号より小さい一般シーケンス番号のパケッ トを再送用バッファから 削除する再送用バッファ削除手段 907と、 再送用バッファの中から再送 要求受信手段 906によって通知された一般シーケンス番号を検出する再 送パケッ ト検出手段 908と、 同再送バケツト検出手段で検出された一般 シーケンス番号のパケッ トを受信装置 902へ再送信する再送手段 909を 有している。
また、 受信装置 902は、 送信装置 901からパケットを受信し、 一般シ —ケンス番号順にソ一トしながらパケヅトを受信バヅファに格納する受 信手段 910と、 次の再送要求時に再送要求を行うパケッ ト、 および現在 再送要求を行っているパケッ トの一般シーケンス番号を格納する再送リ ス卜において、 一般シーケンス番号の追加と削除を行う再送リスト管理
手段 915と、 受信パケッ トの一般シーケンス番号が再送リストにある場 合、 再送リスト管理手段 915にその一般シーケンス番号の削除命令を出 す再送シーケンス番号削除手段 911と、 パケットの受信回数および時間 から決定されるバケツト受信間隔、 あるいは優先シーケンス番号の不整 合から重要なパケットが欠損する毎に、 受信バッファ内のパケッ トゃ受 信パケットの一般シーケンス番号と優先シーケンス番号の不整合から欠 損したパケッ卜の一般シーケンス番号を検出するパケッ ト欠損手段 912 と、 パケット欠損検出手段 912によって検出された欠損したパケットの —般シーケンス番号を再送リストに追加する命令を再送リスト管理手段 915へ出す再送シーケンス番号追加手段 913と、 パケッ ト欠損検出手段 912がパケット欠損検出を行う間隔で再送リストに存在する複数の一般 シーケンス番号を 1つの再送要求パケットに乗せ、 送信装置 901へ送信 する再送要求送信手段 914と、 受信バッファ内に格納されているパケッ トの中から、 1つの、 および複数のパケットのペイ口一ドを要求者(ァプ リケーシヨン) 903に提供するパケヅト提供手段 916を有している。 第 1 0図は送信装置を説明するためのフローチャートで、 第 1 1図、 第 1 2図、 第 1 3図、 第 1 4図、 第 1 5図は受信装置を説明するための フローチャートで、 第 1 1図と第 1 2図は受信手段がパケットを受信し て再送要求送信手段が再送要求を行うまでの 2つの例の処理フロ一を説 明し、 第 1 3図は受信装置の再送リスト管理手段 915の処理フローを説 明し、 第 1 4図は受信装置のパケット欠損検出手段 912の処理フローを 説明し、 第 1 5図は要求者(アプリケーション) 903 からバケツ ト提供手 段 916がパケットの提供を要求されたときの処理フローを説明するもの である。
第 9図の構成において、送信装置 901は受信装置 902へパケッ トを送 信する(ステップ S1001)。 送信装置 901は、 送信したパケットを再送用
バッファへ保存する(ステップ S1002)。 このとき、 すべてのパケヅトを 再送用バッファ 1005 に保存しても良いし、 再送すべき重要なバケツト のみを再送用バヅファに保存してもよい。ただし、再送用バッファ 1005 のサイズが最大パケッ ト数より大きくなつた場合、 あるいは、 タイムス 夕ンプにより時間管理のとき再送用バッファ 1005 の蓄積時間量が最大 時間より大きくなつた場合 (ステップ S 1003)、再送用バッファ 1005のサ ィズが、 最大パケッ ト数以下あるいは最大時間以下になるまで、 最小の —般シーケンス番号のパケットを再送用バッファ 1005から削除する(ス テヅプ S1004)。
受信装置 902 の受信手段 910 は、 第 1 1図に示すように、 送信装置 901からのパケヅ トを受信すると(ステップ S1101,S1201)、 受信したパ ケットを一般シーケンス番号順にソートしながら受信バッファに保存す る(ステップ S1102,S1202))。
また、 再送シーケンス番号削除手段 911は、 バケツ トを受信する毎に この受信パケットが再送リス トに有るか否かをチェックする。 受信パケ ヅ トの一般シーケンス番号が再送リス トにある場合は(ステップ S1103,S1203)、 この受信バケツトは再送されてきたパケヅトを意味し、 このパケヅ トはこれ以上再送要求する必要がないので、 この受信バケツ トの一般シーケンス番号を再送リストから削除するよう、 再送リスト管 理手段 915へ削除命令を発する(ステツプ S1104,S1204)。
そして、所定の数のバケツトを受信したとき、バケツ ト欠損検出手段 912 はバケツ 卜が欠損していないかをチェックする。 このチェック処理をパ ケット欠損検出処理という。パケット欠損検出手段 912がパケット受信 後に行うパケッ ト欠損検出処理の例を 2つ説明する。 第 1 1図の例 1の フローチャートに示すように、 このパケット欠損検出手段 912がパケヅ ト欠損検出処理 (ステップ S 1108) を行う間隔は、 例えば、 前回パケヅ
ト欠損検出処理 (ステップ S 1108) を行った最後のパケッ トの一般シー ケンス番号やタイムスタンプと今回受信したパケッ トの一般シーケンス 番号や夕ィムスタンプの差から決定する (ステップ S 1105) 。 パケヅ ト 欠損検出処理 (ステップ S 1108) を行う一般シーケンス番号の間隔を Nint、 タイムスタンプの間隔を Tint、 前回パケッ ト欠損検出処理 (ステ ヅプ S 1108) を行った最後のパケッ トの一般シーケンス番号を Ncur、 前回パケッ 卜欠損検出処理 (ステップ S 1108) を行った最後のパケヅ 卜 のタイムスタンプを Tcurとすると、 受信手段 910が今回受信したパケ ッ 卜の一般シーケンス番号が Ncur + Nint と等しいかあるいはそれより も大きいか、あるいは受信したパケヅ 卜のタイムスタンプが Tcur + Tint と等しいかあるいはそれよりも大きければ(ステップ S 1105)、 Ncur と Tcur に今回受信したパケッ トの一般シーケンス番号とタイムスタンプ をそれぞれ代入した上で(ステップ S1106,S1107)、 パケッ ト欠損検出手 段を行う(ステップ 1108)。 これにより、 Ncurと Tcurの値は今回の新た なパケヅ トの最後の一般シーケンス番号とタイムスタンプとなる。なお、 Nintや Tintは、 固定値でもよいし、 ネッ トワークの輻輳状況から動的 に決定してもよい。
パケッ ト欠損検出手段 912は、 一般シーケンス番号順にソ一トされた 受信バッファにおいて、 前回パケッ ト欠損検出処理 (ステップ S 1108) を行った最後のパケッ トの次のパケヅ トから一般シーケンス番号 Ncur (今回の最後のパケヅ トの一般シーケンス番号) のバケツ 卜までの範囲 (ただし、 Ncurのパケヅ トを除く)、 あるいはタイムスタンプ Tcur (今 回の最後のパケヅ トのタイムスタンプ)のパケヅ トまでの範囲(ただし、 Tcurのパケッ トを除く)で、 一般シーケンス番号と優先シーケンス番号
の整合性をチェックして再送すべき優先度の高いパケッ トの欠損を検出 する。
第 1 4図にパケッ ト欠損検出手段 111 によるパケッ ト欠損検出処理 (ステップ S1108) の詳細フローを示す。 第 1 4図において、 パケヅ ト 欠損検出手段 111は、 はじめに受信バヅファ中で一般シーケンス番号が FSNと等しくなるパケッ トのボイン夕を Pに設定する(ステップ S1402)C ここで、 FSNは、 前回パケッ ト欠損検出を行った最後のパケッ トの次の パケヅ トの一般シーケンス番号である。次に MPSNにボイン夕 Pに格納 されているパケヅ トの優先シーケンス番号を保持しておく(ステツプ S1403)。 ここで、 MPSNは欠損バケツ ト検索中の最大 (最新)優先シーケ ンス番号を意味する。
欠損したバケツ トの数を Loss、 FSNからの距離を I、 再送すべき優先度 の高い欠損したパケッ トの一般シーケンス番号のリストを SNJistとし、 Lossおよび FSN に初期値として 0を設定し、 SNJistに初期値として 空白 (空リスト) を設定する(ステップ 1404)。
次に、 パケッ ト欠損検出処理のステップ 1405に示す上記範囲内 [前回 パケヅ ト欠損検出処理 (ステップ S1108) を行った最後のパケッ トの次 のパケヅ トから一般シーケンス番号 Ncur (今回の最後のパケヅ トのー 般シーケンス番号) のパケヅ トまでの範囲 (ただし、 Ncur のパケヅ ト を除く) 、 あるいはタイムスタンプ Tcur (今回の最後のパケヅ トのタイ ムスタンプ)のパケヅ 卜までの範囲(ただし、 T curのパケヅトを除く)] で、 受信バッファのポインタ Pに格納されているパケッ 卜の一般シ一ケ ンス番号と FSN + Iを比較する(ステップ S1406)。 ステップ S1406にお いて、 もし FSN + Iとボイン夕 Pに格納されているパケヅ 卜の一般シ一 ケンス番号が等しければ、 一般シーケンス番号; FSN + I番のパケッ トは 欠損せず受信されていることになる。
そこで、 MPSNにポィン夕 Pに格納されているパケヅ トの優先シーケン ス番号を設定し(ステップ S1407)、 I をイ ンクリメン トし(ステヅプ S1408)、 さらに P に次のパケヅ トのポィ ン夕を設定する(ステヅプ S1410)oステヅプ S1406において、 もし FSN + Iとボイン夕 Pに格納さ れているパケッ トの一般シ一ケンス番号が等しくなければ、 ステヅプ S1409へ進む。 FSN+Iがポインタ Pに格納されているパケッ 卜の一般 シーケンス番号より小さく(ステップ S1409)、且つ MPSNがボイン夕 P に格納されているバケツ トの優先シーケンス番号より小さければ(ステ ヅプ 1411)、 一般シーケンス番号 FSN + I番のパケヅ トが欠損したこと になり、 そのパケッ トは再送すべき優先度の高いパケッ トである。 そこ で、 SN_listに FSN + Iを追加し(ステヅプ 1414)、 Iと Lossをインクリ メントする(ステップ 1415)。
ステツプ S1411 においてもし、 MPSN がポィン夕 Pに格納されてい るパケヅ トの優先シーケンス番号より小さくなければ (ステップ 1411)、 欠損したバケツ トは再送を必要としない優先度の低いパケットであり、 再送要求は行わないので、 SNJist には欠損した一般シーケンス番号を 追加しない。 ステップ S1405 で示された範囲すなわち、 [前回パケッ ト欠損検出処 理 (S1108) を行った最後のパケッ トの次のパケヅ ドから一般シーケン ス番号 Ncur (今回の最後のバケツ トの一般シーケンス番号) のパケヅ 卜までの範囲 (ただし、 Ncur のパケヅ トを除く) 、 あるいは夕ィムス 夕ンプ Tcur (今回の最後のパケヅ トのタイムスタンプ)のパケヅ トまで の範囲 (ただし、 T curのパケッ トを除く) ]で、 この一般シーケンス番 号の比較が終了したら(ステップ S1416)、 : FSNに Iを加えて、 FSNを次 回のパケッ ト欠損検出処理の開始一般シーケンス番号とする(ステツプ
S1417)o このとき、 SNJistにある番号が、 前記範囲内の欠損したパケ ッ ト且つ再送すべき優先度の高いバケツトの一般シーケンス番号となり、 Lossが欠損したパケヅト数となる。
次に、 バケツ ト欠損が発生している受信バッファとパケット欠損検出 処理実行の結果の例を第 1 6図に示す。第 1 6図において、 1 6 0 1は、 Nint= 8の場合の受信バッファを示し 1 6 0 2は、 N回目のパケヅ ト欠 損検出処理時の FSN、 Ncm\ I、 Loss, Snjist の状態を表し、 1 6 0 3は、 N + 1回目のパケット欠損検出処理時の FSN、 Ncur、 I、 Loss, Sn_listの状態を表す。受信バッファ 1601内のパケヅトの一般シーケン ス番号が、 ···、 8、 9、 1 0、 1 2、 1 5、 1 6、 1 8、 1 9、 2 2、 2 3、 2 4、 2 5、 2 6、 …となっており、 優先シーケンス番号がそれ ぞれ、 4、 4、 5、 7、 7、 8、 8、 9、 1 0、 1 1、 1 1、 1 1、 1 2、 …となっており、 Nint= 8となっており、 N回目のパケヅ ト欠損検 出処理実行時(1602)に FSN= 8、 Ncur= 1 6となっていた場合、 一般 シーケンス番号 8から 1 5までの範囲で抜けている番号を検出する。 この例では、 1 1、 1 3、 1 4の 3つの一般シーケンス番号が抜けて おり、 これらの 3つのパケッ トが欠損したことになるが、 一般シ一ケン ス番号 1 2のパケットの優先シーケンス番号と一般シーケンス番号 1 5 のパケヅ トの優先シーケンス番号が共に 7で等しいことから、 一般シ一 ケンス番号 1 2〜 1 5には優先パケヅ トが存在しないことになる。即ち、 一般シーケンス番号 1 3 (= 1 2 + 1 )と 1 4のバケツ トは再送を必要と しない優先度の低いパケッ トということになり、 再送要求を行わないの で SN— listには追加しない。 また、 次の N+ 1回目のパケット欠損検出 処理では(ステップ 1603)、FSNは N回目の FSN + I= 8 + 8 = 1 6とな り、 Ncurは N回目の Ncur+Nint= 1 6 + 8 = 2 4となる。
同様に一般シーケンス番号 1 6から 2 3までの範囲で抜けている番号
を検出する。 この例では、 1 7、 2 0、 2 1の 3つの一般シーケンス番 号が抜けており、 これらの 3つのパケットが欠損したことになる。 しか し、 一般シーケンス番号 1 7は、 一般シーケンス番号 1 6と 1 8のパケ ヅ トの優先シーケンス番号が 8で等しいので、 一般シーケンス番号 1 6 〜 1 8には優先パケットが存在しないことになる。 即ち、 一般シ一ケン ス番号 1 7 (= 1 6 + 1 )のパケッ トは再送を必要としない優先度の低い パケットということになり、 再送要求を行わないので、 SL— list には追 加しない。
ところが、 一般シーケンス番号 1 9、 2 2のパケットの優先シ一ケン ス番号は、 それぞれ 8、 9であり、 一般シーケンス番号 2 2のパケッ ト の優先シーケンス番号の方が一般シーケンス番号 1 9のバケツトの優先 シーケンス番号より 1大きい。 したがって、 一般シーケンス番号 1 9〜 2 2には優先パケットが 1つ存在することになる。 この場合、 欠損した 一般シーケンス番号 2 0と 2 1のパケヅトは、 どちらかが再送すべき優 先度の高いパケットかもしれないし、 一般シーケンス番号 2 2のパケヅ トが再送すべき優先度の高いパケヅトだったために、 一般シーケンス番 号 2 0と 2 1のどちらも再送を必要としない優先度の低いパケッ トかも しれない。 このようにパケットが連続欠損し優先シーケンス番号がその 前後で等しくない場合は、 どれが優先度の高いバケツトなのかが判断で きないため、 連続欠損したすべてのパケッ トの一般シーケンス番号を SL_listに追加する。
以下、 N回目のパケット欠損検出処理におけるパケッ ト欠損検出処理 の動作について図 1 4、 図 1 6を参照して詳細に説明する。
この場合、 FSN= 8であり、 Ncurには N回目の Ncur + Nint= 8 + 8 = 1 6が既に設定されていることを前提とする。
まず、 N回目のパケッ ト欠損検出処理において、 パケッ ト欠損検出手
段 912は、受信バッファの FSN= 8に対応する一般シーケンス番号を有 するパケッ トのポインタを Pに設定する (ステップ S 1402) 。
次に、 パケッ ト欠損検出手段 912は、 受信バッファのポインタ Pに格 納されているパケヅ トの優先シーケンス番号 = 4を MPSN に設定する (ステップ S1403) 。 この結果、 MPSN- 4となる。
次に、 Lossに初期値として 0を設定し、 Iに初期値として 0を設定し、 SNJistに初期値として 0を設定する (ステップ S 1404) 。
次に、 P <Ncur= l 6の範囲内で以下の処理を実行する (ステヅプ S 1405) o
まず FSN + Iとボイン夕 Pに格納されている一般シーケンス番号を比 較する (ステップ S 1406) 。 FSN + I= 8 + 0 = 8でポインタ Pに格納 されている一般シーケンス番号 = 8であるから、 比較の結果、 「FSN + 1=ボイン夕 Pに格納されている一般シーケンス番号」 となり、 ステップ S 1407へ分岐し、ボイン夕 Pに格納されているパケヅ トの優先シーケン ス番号 = 4を MPSN に設定し (ステップ S 1407) 、 さらに Iを 1っィ ンクリメントし (ステヅプ S 1408) 、 さらにボインタ Pも 1つインクリ メン トすることで次のパケヅ トの 'ボイン夕を設定する (ステップ S 1410) 。 この結果、 1 = 1、 MPSN= 4となり、 ポインタ Pに格納され ている一般シーケンス番号は 9となる。
次に、 ループに戻り、 再び、 FSN + I とポインタ Pに格納されている 一般シーケンス番号を比較する (ステップ S 1406) 。 FSN + I= 8 + 1 = 9でボイン夕 Pに格納されている一般シ一ケンス番号 = 9であるから、 比較の結果、 「FSN + I=ボイン夕 Pに格納されている一般シーケンス番 号」 となり、 ステヅプ S 1407へ分岐し、 ポインタ Pに格納されているパ ケヅ トの優先シーケンス番号 = 4を MPSNに設定し(ステップ S 1407)、 さらに Iを 1つインクリメントし (ステヅプ S 1408) 、 さらにボイン夕
Pも 1つインクリメン卜することで次のバケツ 卜のボイン夕を設定する (ステップ S 1410) 。 この結果、 1 = 2、 MPSN= 4となり、 ポインタ Pに格納されている一般シーケンス番号は 1 0となる。
次に、 ループに戻り、 再び、 FSN + I とポインタ Pに格納されている 一般シーケンス番号を比較する (ステップ S 1406) 。 ; FSN+I= 8 + 2 = 1 0でボイン夕 Pに格納されている一般シーケンス番号 = 1 0である から、 比較の結果、 「FSN + I=ボイン夕 Pに格納されている一般シ一ケ ンス番号」 となり、 ステヅプ S 1407へ分岐し、 ポインタ: に格納されて いるパケヅ トの優先シーケンス番号- 4を MPSNに設定し(ステツプ S 1407) 、 さらに Iを 1つインクリメントし (ステップ S 1408) 、 さらに ポインタ Pも 1つインクリメントすることで次のパケッ トのボイン夕を 設定する (ステップ S 1410) 。 この結果、 1 = 3、 MPSN- 5となり、 ボイン夕 Pに格納されている一般シーケンス番号は 1 2となる。
次に、 ループに戻り、 再び、 FSN + I とポインタ Pに格納されている 一般シーケンス番号を比較する (ステップ S 1406) 。 FSN +I= 8 + 3 = 1 1で、 ボイン夕 Pに格納されている一般シーケンス番号 = 1 2であ るから、 比較の結果、 「: FSN + I≠ポインタ Pに格納されている一般シ一 ケンス番号」 となり、 ステヅプ S 1409へ分岐し、 ステップ S 1409では、 比較の結果、 「: FSN+ 1 <ボイン夕 Pに格納されている一般シーケンス 番号」となり、ステップ S 1411へ分岐する。ステップ S 1411.では、 MPSN とボインタ Pに格納されているパケッ 卜の優先シーケンス番号を比較す る。 MPSN二 5で、 ボイン夕 Pに格納されているパケヅ トの優先シーケ ンス番号 = 7であるから、 比較の結果、 「MPSN<ポインタ Pに格納さ れているバケツ 卜の優先シーケンス番号」 となり、 ステップ S1414へ分 岐する。 ステップ S 1414では、 SN— listに FSN + I= 8 + 3 = 1 1を追 加する。 この結果、 SN_list の値は空白から 「 1 1」 に切り替わる。 次
に、 Iを 1つインクリメントし、 Lossも 1つインクリメントする (ステ ヅプ S 1415) 。 この結果、 1 = 4となり、 Loss= l となる。
次に、 ループに戻り、 再び、 FSN + I とポインタ Pに格納されている —般シ一ケンス番号を比較する (ステヅプ S 1406) 。 FSN+I= 8 + 4 二 1 2でポインタ Pに格納されている一般シーケンス番号 = 1 2である から、 比較の結果、 「FSN + I=ポインタ Pに格納されている一般シ一ケ ンス番号」 となり、 ステップ S 1407へ分岐し、 ポインタ Pに格納されて いるパケヅ トの優先シーケンス番号 = 7を MPSNに設定し(ステヅプ S 1407) 、 さらに Iを 1つインクリメントし (ステツプ S 1408) 、 さらに ポインタ Pも 1つインクリメン卜することで次のパケッ 卜のポインタを 設定する (ステップ S 1410) 。 この結果、 1 = 5、 MPSN= 7となり、 ボイン夕 Pに格納されている一般シーケンス番号は 1 5となる。
次に、 ループに戻り、 再び、 FSN + I とポインタ Pに格納されている 一般シーケンス番号を比較する (ステップ S 1406) 。 FSN + I= 8 + 5 = 1 3で、 ポインタ Pに格納されている一般シーケンス番号 = 1 5であ るから、 比較の結果、 「FSN + I≠ポインタ Pに格納されている一般シ一 ケンス番号」 となり、 ステップ S 1409へ分岐し、 ステップ S 1409では、 比較の結果、 「FSN+ 1 <ボイン夕 Pに格納されている一般シーケンス 番号」となり、ステップ S 1411へ分岐する。ステヅプ S 1411では、 MPSN とポインタ Pに格納されているパケッ 卜の優先シーケンス番号を比較す る。 MPSN= 7で、 ボイン夕 Pに格納されているパケヅ 卜の優先シ一ケ ンス番号 = 7であるから、 比較の結果、 「MPSN=ポインタ Pに格納さ れているパケヅ トの優先シーケンス番号」 となり、 ステップ S1412へ分 岐する。ステツプ S 1412では、 ポィン夕 Pに格納されているパケッ トの —般シーケンス番号一 FSN = 1 5— 8 = 7を Iに設定し (ステップ S 1412) 、 さらに、 Loss にポインタ Pに格納されているパケッ トの一般
シーケンス番号一 (FSN+ I ) = 15- 13 = 2を設定する (ステップ S 1413) 。 この結果、 1 = 7となり、 Loss=2となる。
なお、 一般シーケンス番号 13、 14のパケッ トは SN_listには追加さ れない。
次に、 ループに戻り、 再び、 ; FSN + I とポインタ Pに格納されている 一般シーケンス番号を比較する (ステップ S1406) 。 FSN + I=8 + 7 = 15で、 ボイン夕 Pに格納されている一般シーケンス番号 = 15であ るから、 比較の結果、 「FSN + I=ポインタ Pに格納されている一般シ一 ケンス番号」 となり、 ステップ S 1407へ分岐し、 ポインタ Pに格納され ているバケツ 卜の優先シーケンス番号 = 7を MPSNに設定し(ステップ S 1407)、 さらに Iを 1つインクリメントし (ステップ S 1408)、 さら にポインタ Pも 1つインクリメントすることで次のパケッ 卜のポインタ を設定する (ステップ S1410) 。 この結果、 1 = 8、 MPSN= 7となり、 ボイン夕 Pに格納されている一般シーケンス番号は 16となる。
従って、 ループの条件 Ncur>Pを満足しないので、 ループから抜け 出し、 FSNに FSN+ 1 = 8 + 8 = 16を設定する (ステップ S 1417)。 以上より、 SNJist の値は 「 1 1」 であるから、 パケヅ ト欠損検出手 段 912は、 優先シーケンス番号 「1 1」 のパケヅ トが欠損したことを検 出する。
N+ 1回目の動作も同様である。
以下、 N+ 1回目のパケッ ト欠損検出処理におけるパケッ ト欠損検出処 理の動作について図 14、 図 16を参照して詳細に説明する。
この場合、 FSN= 1.6であり、 Ncurには N回目の Ncur + Nint= 16
+8=24が既に設定されていることを前提とする。
まず、 N+ 1回目のパケッ ト欠損検出処理において、 パケッ ト欠損検 出手段 912は、受信バッファの FSN= 16に対応する一般シーケンス番
号を有する受信パケヅ 卜のポインタを Pに設定する (ステップ S 1402) c 次に、 パケッ ト欠損検出手段 912は、 受信バッファのポインタ Pに格 納されているパケヅ トの優先シーケンス番号 = 8を MPSN に設定する (ステヅプ S1403) 。 この結果、 MPSN= 8となる。
次に、 Lossに初期値として 0を設定し、 Iに初期値として 0を設定し、 SNJistに初期値として 0を設定する (ステップ S 1404) 。
次に、 P <Ncur= 2 4の範囲内で以下の処理を実行する (ステップ S 1405)
まず FSN + I とボイン夕 Pに格納されている一般シーケンス番号を比 較する (ステツプ S 1406) 。 FSN + I= 1 6 + 0 = 1 6でポインタ Pに 格納されている一般シーケンス番号 = 1 6であるから、 比較の結果、 「FSN + I=ボイン夕 Pに格納されている一般シーケンス番号」となり、 ステップ S 1407へ分岐し、ボイン夕 Pに格納されているパケヅ トの優先 シーケンス番号 = 8を MPSN に設定し (ステップ S 1407) 、 さらに I を 1つインクリメントし (ステップ S 1408) 、 さらにポィン夕 Pも 1つ インクリメントすることで次のパケヅ トのボイン夕を設定する (ステツ プ S 1410) 。 この結果、 1 = 1、 MPSN= 8となり、 ボイン夕 Pに格納 されている一般シーケンス番号は 1 8となる。
次に、 ループに戻り、 再び、 FSN + I とポインタ Pに格納されている 一般シーケンス番号を比較する (ステップ S 1406) 。 FSN + I= 1 6 + 1 = 1 7で、 ボイン夕 Pに格納されている一般シーケンス番号 = 1 8で あるから、 比較の結果、 「FSN + I≠ポインタ Pに格納されている一般シ 一ケンス番号」 となり、 ステップ S 1409へ分岐し、 ステップ S 1409で は、 比較の結果、 「FSN+ 1くポインタ Pに格納されている一般シ一ケ ンス番号」 となり、 ステップ S 1411へ分岐する。 ステップ S 1411では、 MPSN とボイン夕 Pに格納されているパケヅ トの優先シーケンス番号
を比較する。 MPSN= 8で、 ポインタ Pに格納されているパケッ トの優 先シーケンス番号 = 8であるから、 比較の結果、 「MPSN=ポインタ P に格納されているパケッ トの優先シーケンス番号」 となり、 ステップ S1412 へ分岐する。 ステップ S 1412 では、 ポインタ Pに格納されてい るパケヅ トの一般シーケンス番号— FSN= 1 8— 1 6 = 2を Iに設定 し (ステップ S 1412) 、 さらに、 Loss にポインタ Pに格納されている パケヅ トの一般シーケンス番号一 (FSN+ I ) = 1 8 - 1 7 = 1を設定 する (ステツプ S 1413) 。 この結果、 I = 2となり、 Loss= 1となる。 なお、一般シーケンス番号 1 7のパケヅ トは SN_listには追加されない。 次に、 ループに戻り、 再び、 FSN + I とポインタ Pに格納されている 一般シーケンス番号を比較する (ステップ S 1406) 。 FSN + I= 1 6 +
2 = 1 8でボイン夕 Pに格納されている一般シーケンス番号 = 1 8であ るから、 比較の結果、 「FSN + I=ポインタ Pに格納されている一般シ一 ケンス番号」 となり、 ステップ S 1407へ分岐し、 ボイン夕 Pに格納され ているパケヅ トの優先シーケンス番号 = 8を MPSNに設定し(ステツプ S 1407) 、 さらに Iを 1つインクリメントし (ステヅプ S 1408) 、 さら にポインタ Pも 1つインクリメントすることで次のパケッ トのボイン夕 を設定する (ステップ S 1410) 。 この結果、 1 = 3、 MPSN= 8となり、 ボイン夕 Pに格納されている一般シーケンス番号は 1 9となる。
次に、 ループに戻り、 再び、 FSN + I とポインタ Pに格納されている 一般シーケンス番号を比較する (ステップ S 1406) 。 ; FSN + I= 1 6 +
3 = 1 9でボイン夕 Pに格納されている一般シーケンス番号- 1 9であ るから、 比較の結果、 「FSN + I=ポインタ Pに格納されている一般シ一 ケンス番号」 となり、 ステップ S 1407へ分岐し、 ボイン夕 Pに格納され ているパケヅ トの優先シーケンス番号 = 9を MPSNに設定し(ステップ S 1407) 、 さらに Iを 1つインクリメントし (ステツプ S 1408) 、 さら
にポィン夕 Pも 1つインクリメン卜することで次のパケヅ トのポィン夕 を設定する (ステツプ S 1410) 。 この結果、 1 = 4、 MPSN= 8となり- ボイン夕 Pに格納されている一般シーケンス番号は 2 2となる。
次に、 ループに戻り、 再び、 FSN + I とポインタ Pに格納されている 一般シーケンス番号を比較する (ステップ S 1406) 。 FSN + I= 1 6 + 4 = 2 0で、 ボイン夕 Pに格納されている一般シーケンス番号 = 2 2で あるから、 比較の結果、 「FSN + I≠ポインタ Pに格納されている一般シ —ケンス番号」 となり、 ステップ S 1409へ分岐し、 ステップ S 1409で は、 比較の結果、 「FSN+ 1くポインタ Pに格納されている一般シ一ケ ンス番号」 となり、 ステップ S 1411へ分岐する。 ステップ S 1411では、 MPSN とボインタ Pに格納されているパケヅ 卜の優先シーケンス番号 を比較する。 MPSN= 8で、 ポインタ Pに格納されているパケッ トの優 先シーケンス番号 = 1 0であるから、 比較の結果、 「MPSN<ポインタ Pに格納されているパケッ トの優先シーケンス番号」 となり、 ステップ S1414へ分岐する。 ステップ S 1414では、 SN— listに FSN + I= 1 6 +
4 = 2 0を追加する。 この結果、 SN— list の値は空白から 「2 0 j に切 り替わる。 次に、 Iを 1つインクリメントし、 Lossも 1つインクリメン トする (ステップ S 1415) 。 この結果、 1 = 5となり、 Loss= 2となる c 次に、 ループに戻り、 再び、 FSN + I とポインタ Pに格納されている —般シーケンス番号を比較する (ステップ S 1406) 。 FSN + I = 1 6 +
5 = 2 1で、 ボイン夕 Pに格納されている一般シーケンス番号二 2 2で あるから、 比較の結果、 「FSN + I≠ポインタ Pに格納されている一般シ —ケンス番号」 となり、 ステップ S 1409へ分岐し、 ステップ S 1409で は、 比較の結果、 「FSN+ 1くポインタ Pに格納されている一般シ一ケ ンス番号」 となり、 ステップ S 1411へ分岐する。 ステップ S 1411では、 MPSN とボイン夕 Pに格納されているパケヅ トの優先シーケンス番号
を比較する。 MPSN= 8で、 ポインタ Pに格納されているパケヅ 卜の優 先シーケンス番号 = 1 0であるから、 比較の結果、 「MPSN<ポインタ Pに格納されているパケッ トの優先シーケンス番号」 となり、 ステップ S1414へ分岐する。 ステップ S 1414では、 SN_listに FSN + I- 1 6 + 5 = 2 1を追加する。 この結果、 SN_list の値は 「2 0」 から 「2 0、 2 1」 に切り替わる。 次に、 Iを 1つインクリメントし、 Lossも 1っィ ンクリメントする (ステップ S 1415) 。 この結果、 1 = 6となり、 Loss = 3となる。
次に、 ループに戻り、 再び、 FSN + I とポインタ Pに格納されている 一般シーケンス番号を比較する (ステップ S 1406) 。 FSN + I- 1 6 +
6 = 2 2でボイン夕 Pに格納されている一般シーケンス番号 =: 2 2であ るから、 比較の結果、 「FSN + I=ポインタ Pに格納されている一般シ一 ケンス番号」 となり、 ステップ S 1407へ分岐し、 ポインタ Pに格納され ているパケヅ 卜の優先シーケンス番号 = 1 0を MPSNに設定し(ステヅ プ S 1407)、 さらに Iを 1つインクリメントし (ステツ 7° S 1408) 、 さ らにポインタ Pも 1つインクリメン卜することで次のパケヅ トのポイン 夕を設定する (ステップ S 1410) 。 この結果、 1 = 7、 MPSN= 1 0と なり、 ボイン夕 Pに格納されている一般シーケンス番号は 2 3となる。 次に、 ループに戻り、 再び、 FSN + I とポインタ Pに格納されている —般シ一ケンス番号を比較する (ステップ S 1406) 。 FSN + I= 1 6 +
7 = 2 3でボイン夕 Pに格納されている一般シーケンス番号- 2 3であ るから、 比較の結果、 「FSN + I=ポインタ: Pに格納されている一般シ一 ケンス番号」 となり、 ステップ S 1407へ分岐し、 ポインタ Pに格納され- ているパケヅ トの優先シーケンス番号 = 1 1を MPSNに設定し(ステヅ プ S 1407) 、 さらに Iを: Lつインクリメントし (ステップ S 1408)、 さ らにポインタ Pも 1つインクリメントすることで次のパケッ トのポイン
夕を設定する (ステップ S 1410) o この結果、 1 = 8、 MPSN= 1 1と なり、 ポインタ Pに格納されている一般シーケンス番号は 2 4となる。 従って、 ループの条件 Ncur> Pを満足しないので、 ループから抜け 出し、 FSNに FSN+ 1 = 1 6 + 8 = 2 4を設定する(ステツプ S 1417) < 以上より、 SN— list の値は 「2 0、 2 1」 であるから、 パケッ ト欠損 検出手段 912は、 優先シーケンス番号 2 0、 2 1のパケットが欠損した ことを検出する。
パケッ ト欠損検出処理(ステップ 1108)実行後、 Loss> 0の場合、 パケ ッ ト欠損が検出されたことになるので、 再送シーケンス番号追加手段 913は、 再送リスト管理手段 915へ SN_listに登録されている欠損パケ ッ トの一般シーケンス番号を追加するよう命令を発する(ステヅプ S 1109)。
追加命令を受理した再送リス ト管理手段 915 は、 図 13 示すように SN_listの一般シーケンス番号を再送リストへ追加する(ステップ S 1302 〜S1307)。 ただし、 2重登録は行わない。
次に、 図 11に戻って再送要求送信手段 914は、 再送リストの一般シ 一ケンス番号の再送要求を送信装置 901 に対して行う(ステップ SlllO,Sllll)o この場合、 再送リストの一般シーケンス番号と、 その時 点で要求者(アプリケーション) 903 に提供したパケットの最大 (最新) の一般シーケンス番号を、 1つの再送要求パケッ トに乗せ(ステヅプ S1110)、 この再送要求バケツ トを送信装置 901 へ送信する(ステップ smi)。
次に、 第 1 2図の例 2のフローチャートに示すように、 再送すべき優 先度の高いパケッ トが欠損した時点で再送要求を行う例を説明する。 図 1 2において、 ステップ S1201~S1203の動作は、 図 1 1のステツ プ S1101~S1103と同じなので、 説明を省略する。
まず、 受信バケツ トの優先シーケンス番号 RPSNと、 受信バッファ内 の最大の優先シーケンス番号 MPSNを比較し(ステヅプ S1205)、 RPSN 一 MPSN> 1のとき(ステップ S1205)、 優先シーケンス番号が不連続に なるため、 再送すべき優先度の高いパケッ トが必ず 1個以上は欠損した ことになる。 例えば、 図 16の受信バッファで一般シーケンス番号 10の パケッ トが保存してあり、 今一般シーケンス番号 12 のパケッ トを受信 したとする。 このとき、 RPSN= 7、 MPSN= 5である。 この場合、 優 先シーケンス番号は 5から 7に跳び明らかに不連続になり、 RPSN— MPSN> 1である(ステップ S1205)。 従って、 再送すべき優先度の高い パケッ トが必ず 1個以上は欠損したことになる。 この例では一般シーケ ンス番号 11 のパケヅ トが欠損している。 そこで、 受信バッファ内の最 大の一般シーケンス番号 MSNから RPSNのパケヅ トの一般シーケンス 番号 RSN間のパケヅ トを再送要求するために、 MSN+ 1から RSN— 1 の一般シーケンス番号 (この例では一般シーケンス番号 11のパケヅ ト) を再送リストに追加するよう再送シーケンス番号追加手段へ追加命令を 発する(ステップ S1208)。 ステップ S1205で Noの場合、 即ち RPSNと MPSNが等しいか 1だけ RPSNが大きい場合には、優先シーケンス番号 だけからではパケッ トが欠損したか否かがわからない。 しかし RPSNと MPSNが等しい場合には、 たとえパケヅ 卜が欠損していても優先シ一ケ ンス番号がインクリメントされていないことから、 このパケッ トは再送 するべき重要なパケッ トではない。 そこで、 RPSN— MPSN= 1でない 場合 (即ち RPSN— MPSN= 0の場合) には(ステップ S1206)、 パケッ トは再送する必要がないので、 再送シーケンス番号追加処理を行わず、 ステップ S1201 へ戻り次のパケヅ トの受信処理を行う (ステップ S1201) 。 ステヅプ S1206で、 RPSN— MPSN= 1の場合には(ステップ S1206)、 一般シーケンス番号も比較してみないとパケヅ トが欠損してい
るか否かがわからない。 そこで、 MSN と RSN を比較する(ステップ S1207)。 RSN_MSN= 1の場合には(ステップ S1207)、一般シ一ケンス 番号が連銃になっており、 パケヅト欠損はしていないことになる。 従つ て、 パケッ トは再送する必要がないので、 再送シーケンス番号追加処理 を行わず、 ステップ S1201へ戻り次のパケヅ トの受信処理を行う (ステ ヅプ S1201) 。 ステップ S1207で、 RSN— MSN> 1の場合には、 一般 シーケンス番号が不連続になっており、 1個以上の再送すべき優先度の 高いパケヅ トが欠損していることになるので、 MSNから RSN間のパケ ットの再送要求を行うために、 MSNから RSNの一般シーケンス番号を 再送リストに追加するよう再送シーケンス番号追加手段へ追加命令を発 する(ステップ S1208)。
追加命令を受理した再送リスト管理手段 915 は、 図 13 示すように SN— listの一般シーケンス番号を再送リストへ追加する(ステヅプ S1302 〜S1307)。 ただし、 2重登録は行わない。
次に、 図 12に戻って再送要求送信手段 914は、 再送リストの一般シ —ケンス番号の再送要求を送信装置 901 に対して行う(ステップ S1209,Sl210)o この場合、 再送リストの一般シーケンス番号と、 その時 点で要求者 (アプリケーション) 903 に提供したパケットの最大 (最新) の一般シーケンス番号を、 1つの再送要求パケッ トに乗せ(ステップ S1209)、 この再送要求パケッ トを送信装置 901 へ送信する(ステヅプ S1210)o
以下の説明は、 図 1 1および図 1 2に共通のものである。
送信装置 901の再送要求受信手段 906は、第 1 0図に示すように再送 要求パケットを受信し (ステップ S1006)、 再送要求パケッ卜から再送要 求された一般シーケンス番号と要求者(アプリケーション) 903 に提供し た最大(最新)一般シーケンス番号を識別する(ステップ S1007,S1008)。
次に、 再送用バッファ削除手段 907 は、 要求者 (アプリケーション) 903に提供した再送用バッファ内の最大 (最新) 一般シーケンス番号よ りも小さい一般シーケンス番号のバケツ トはこれ以上再送要求する必要 がないので、 これらのパケヅトを削除する(ステヅプ 1009)。
次に、 再送パケット検出手段 908は、 再送用バッファを検索して再送 要求された一般シーケンス番号と等しい一般シーケンス番号を検出する (ステツプ 1010)。 この一般シーケンス番号は再送するべき優先度の高い バケツ トの一般シーケンス番号であり、 再送シーケンス番号と呼ぶ。 次に、再送手段 909は、再送シーケンス番号のパケヅトを受信装 g 902 へ再転送する(ステップ 1011)。
次に、 要求者 (アプリケーション) 903は、 受信装置 902が受信したパ ケットのペイ口一ドを要求する。 受信装置 902のパケット提供手段 916 は、 要求者(アプリケーション) 903 から、 パケッ トのペイロードと、 そ のペイロードを提供するまでの待ち時間が要求されると、 その待ち時間 までに前回提供したパケッ トの次のパケッ ト(一般シーケンス番号 Tnextのパケヅト)のペイロードを提供するが、その Tnextのパケヅトが 欠損したり、 再送もされなかったりすることで、 待ち時間内に Tnextの パケッ トのペイ口一ドが提供できないときは、 パケット提供手段 916は Tnext のパケヅトが欠損したことを要求者(アプリケーション) 903 に通 知する。
第 1 5図に示すようにバケツト提供手段 916は、要求者 (アプリケ一シ ョン) 103からパケットのペイロードと、要求からペイ口一ド提供迄の許 容待ち時間が要求されると(ステツプ S 1502)、その現在時刻を Tstartに セヅトして(ステップ S 1503)、 一般シーケンス番号 Tnextのパケヅトが 受信バッファにあるか否かを調べる(ステップ S 1504)。 受信バッファに Tnextのパケヅ 卜があった場合、 この Tnextのパケヅ トのペイロード'を
提供する(ステップ S 1505)。
受信バッファに Tnextのパケットがなかった場合、 現在時刻が待ち時 間を超えていないかタイムァゥトのチェックを行い(ステヅプ S 1506)、 タイムァゥ卜の場合は、 Tnextのパケッ 卜が欠損したことを要求者(アブ リケ一ション) 903に通知する(ステツプ S 1508)。 タイムアウトでない場 合は、一般シーケンス番号 Tnextが再送リストにあるか否かを調べる(ス テヅプ S 1507)。
Tnextが再送リストにない場合は、 送信装置 901からは再送要求を行 つても再送されないことを意味するので、 Tnextのパケットが欠損した ことを要求者(アプリケ一シヨン) 903に通知する(ステヅプ 1508)。
Tnextが再送リス トにある場合は、 再送要求を行ったが、 再送要求パ ケットが届かなかったか、再送パケヅトが届かなかったことを意味する。 このとき、 FSNに Tnextを設定し(ステップ 1510)、 Ncurに今回受信 した最新のパケヅ 卜の一般シーケンス番号を設定し(ステップ 1511)、 Tcur に今回受信した最新のパケヅトのタイムスタンプを設定し(ステツ プ 1512)、 バケツ ト欠損検出処理 (ステップ S 1513) 、 再送シーケンス 番号追加処理 (ステップ S 1514) 、 再送要求送信処理 (ステップ S1515、 S1516) を用いて、 再度 Tnextの再送要求を行うと共に、 最新のパケヅ ト欠損も検出し、 同時に再送要求を行う。
ただし、 前記のパケット欠損検出方法の例 2のように、 再送すべき優 先度の高いパケットが欠損する毎に再送要求をおこなっている場合で、 パケット提供手段時に Tnextのパケットが受信バッファになく、 再送リ ストに Tnext があるときは、 パケッ ト欠損検出手段を行わず、 即座に Tnextのノ ケヅ トの再送要求を行う。
待ち時間が 0をセットされたときは、 受信バッファに Tnextがあるか 否かだけを調べ、 もしなかったら Tnextのパケッ卜の再送要求は行わず、
すぐに Tnext のパケッ 卜が欠損したことを要求者(アプリケ一ショ ン) 903に通知する。逆に待ち時間が無限時間をセッ卜されたときは、 受 信バッファに Tnext のバケツトがない場合、 何度も再送要求を行い、 Tnextのバケツトが再送されるを待ち続ける。
ただし、再送リストに Tnextがない場合は、再送要求を行わず、 Tnext のパケッ 卜が欠損したことを要求者(アプリケーション) 903に通知する。 再送要求送信手段が再送要求パケッ トを送信したあと、 再送要求を行う 間隔 Trだけ待ち(ステップ S1518)、 再び受信バッファに Tnextのパケ ッ トがあるか否かを調べる。 Trは再送要求を行う毎に変更してもよい。 なお、 ステップ S1517、 S 1518、 S 1519では、 待ち時間をスリープ時 間によつて作成している。
簡単な例を用いて説明する。 今、 Twait= 5秒、 Tr= 2秒とする。 こ の場合、 5秒間のうちに 2秒間隔で受信バッファのチェックおよびパケ ッ ト欠損検出処理を行うことになる。 今、 パケッ ト提供処理が 0秒の時 に開始されたとする。 即ち Tstart= 0である。 従って、 現在時刻は 0秒 から 1秒、 2秒、 3秒……と時を刻んでいく。 現在時刻が 3秒になるま ではステップ S 1517で Noと判定され、 ステップ S1518を実行する。ス テヅプ S1518では、 2秒だけスリープ (遅延) する。 従って、 2秒後に は再び受信バッファのチェックおよびパケット欠損検出処理を行う。 こ れによって、 許される時間内、 即ち待ち時間に定期的に受信バッファの チェックとパケット欠損検出処理が行える。 しかし、 現在時刻が 3秒を 過ぎると、 さらに 2秒 (= Tr) のスリープでは待ち時間 Twaitを超えて しまう。 従って、 この時は、 ステップ S 1519でその差分のみ(例えば現 在時刻が 4秒の時、 差分は Twait—現在時刻 +Tstart= 5— 4 = 1秒) の時間をスリープ (遅延) させているのである。 このときのスリープ終 了後は、 受信バヅファのチェヅクも行うが、 ステップ S 1506でタイムァ
ゥトと判定されるから、パケット欠損検出処理までは行わない。すぐに、 次の一般シーケンス番号を提供して (ステップ S 1505) 、 待ち時間内に パケットデ一夕を提供することができる。
この実施の形態 2によれば、 実施の形態 1による効果に加えて、 パケ ッ トに一般シーケンス番号と優先シーケンス番号を設けることにより、 優先度の高い重要なバケツトのみを再送することができるので、 再送処 理によるネットワーク負荷の浪費を最小限に抑えることができ、 ネッ ト ワークの輻輳時でも優先度の高いパケットの伝送容量を確保することが できるという効果を奏する。 実施の形態 3 .
実施の形態 3の構成は、 第 1 7図に示すように、 実施の形態 2の第 9 図の構成の送信装置 901に、 あるバケツ ト ρの近辺 η個のパケッ トにお いて重要なパケットおよび欠損時には再送した方が良いと判断できるパ ケットの情報を m個毎 (m≤n)にパケット pに付加し、 nや mはネットヮ ークの輻輳状況から決定する優先度情報付加手段 1705 を追加した構成 となる。 また、 受信装置 1702の受信手段 1711とバケツ ト欠損検出手段 1713とバケツト提供手段 1717以外の手段も実施の形態 2と同様の処理 を行う手段である。
第 1 8図は優先度情報付加手段 1705 によって優先度情報を付加された パケットの例である。
第 1 8図の例 1は (ステツプ 1801)、 n=8、 m=4としたときで、 パケヅト Pの Pを含めた前 n個分の優先度情報を nビッ 卜で表現して m個毎に n ビッ トの優先度情報を付加した例である。 優先度情報は左から nビッ ト 目が Pの優先度を表し、 先頭ビットが (P のシーケンス番号)一 n + 1番 のシーケンス番号のパケットの優先度を表す。
上記の例では、 n= 8であるから、
Pのシーケンス番号が 4のとき、 Pの優先度情報の先頭ビッ トのシ一ケ ンス番号は
(Pのシーケンス番号) 一 n+ 1 = 4— 8 + 1 =— 3となる。
従って、 整数 k、 1 k≤nのとき、 左から kビッ ト目の値は、 シーケ ンス番号が、 (Pのシーケンス番号)一 n + k番のパケッ 卜の優先度を表す < 上記の例では、 優先度情報 1803において、
左から 1ビッ ト目は
(Pのシーケンス番号) 一 n + k = 4— 8 + 1 =— 3 (実在せず) 、 左から 2ビッ ト目は
(Pのシーケンス番号) _n + k = 4— 8 + 2 =—2 (実在せず) 、 左から 3ビッ ト目は
(Pのシーケンス番号) — n + k = 4— 8 + 3 =— 1 (実在せず) 、 左から 4ビッ ト目は
(Pのシーケンス番号) —n + k = 4— 8 + 4 = 0 (実在せず) 、 左から 5ビッ ト目は
(Pのシーケンス番号) 一 n + k = 4— 8 + 5 = 1、
左から 6ビッ ト目は
(Pのシーケンス番号) — n + k = 4— 8 + 6 = 2、
左から 7ビッ ト目は
(Pのシーケンス番号) — n+k=4— 8+7=3、
左から 8ビッ ト目は
(Pのシーケンス番号) 一 n + k = 4— 8 + 8 = 4番のシーケンス番号 のパケッ トの優先度を表す。
また、 Pのシーケンス番号が 8のとき、 Pの優先度情報の先頭ビッ トの シーケンス番号は
(Pのシーケンス番号) 一 n+ 1 = 8— 8 + 1 = 1となる。
従って、 優先度情報 1804において、
左から 1ビッ ト目は
(Pのシーケンス番号) 一 n + k = 8— 8 + 1 = 1、
左から 2ビッ ト目は
(Pのシーケンス番号) 一 n + k = 8— 8 + 2 = 2ヽ
左から 3ビッ ト目は
(Pのシーケンス番号) — n + k=8— 8 + 3 = 3、 左から 8ビッ ト目は
(Pのシーケンス番号) 一 n + k=8— 8 + 8 = 8番のシーケンス番号 のパケッ トの優先度を表す。
又、 Pのシーケンス番号が 12のとき、 Pの優先度情報の先頭ビッ トの シーケンス番号は
(Pのシーケンス番号) 一 n+ 1 = 12— 8 + 1 = 5となる。
従って、 優先度情報 1805において、
左から 1ビッ ト目は
(Pのシーケンス番号) 一 n + k= 12— 8 + 1 = 5、
左から 2ビッ ト目は
(Pのシーケンス番号) 一 n + k= 12— 8 + 2 = 6、
左から 3ビッ ト目は
(Pのシーケンス番号) 一 n + k= 12— 8 + 3 = 7、 左から 8ビッ ト目は
(Pのシーケンス番号) 一 n + k= 12— 8 + 8 = 12番のシーケンス 番号のパケッ トの優先度を表す。
また、 Pのシーケンス番号が 1 6のとき、 Pの優先度情報の先頭ビッ ト のシーケンス番号は '
(Pのシーケンス番号) 一 n+ l = 1 6— 8 + l = 9となる。
従って、 優先度情報 1804において、
左から 1ビッ ト目は
(Pのシーケンス番号) 一 n + k= 8— 8 + 1 = 9、
左から 2ビッ ト目は
(Pのシーケンス番号) — n + k= 8— 8 + 2 = 1 0、
左から 3ビッ ト目は
(Pのシーケンス番号) — n + k= 8— 8 + 3 = 1 1、 左から 8ビッ ト目は
(Pのシーケンス番号) — n + k = 4— 8 + 8 = 1 6番のシーケンス番 号のバケツ卜の優先度を表す。
左から kビヅ ト目が 1のとき、 (Pのシーケンス番号)一 n + k番のパケヅ トは再送すべき優先度の高いバケツトということを表し、 0ならば再送 しない優先度の低いパケットを表す。 例えば、 シーケンス番号 8のパケ ットに付加された優先度情報 1804は、 シーケンス番号 1から 8のパケ ットのうち、再送すべき優先度の高いパケッ トはシーケンス番号 1、 4、 5、 8のパケッ トなので、 左から 10011001となる。
第 1 8図の例 2は(1802)、 同じく n=8、 m=4としたときで、 バケツ ト Pの Pを含めた後 n個分の優先度情報を nビットで表現して m個毎に n ビットの優先度情報を付加した例で、 kビット目の値は、 シーケンス番 号が、 (Pのシーケンス番号) + k— 1番のパケヅ 卜の優先度を表す。
上記の例では、 11 = 8であるから、
Pのシーケンス番号が 1のとき、 優先度情報 1807において、
左から 1ビッ ト目のシーケンス番号は
(pのシーケンス番号) +k— 1 = 1 + 1— 1 = 1、
左から 2ビッ ト目のシーケンス番号は
(Pのシーケンス番号) +k— 1 = 1 + 2— 1 = 2、
左から 3ビッ ト目のシーケンス番号は
(Pのシ一ケンス番号) +k— 1 = 1 + 3— 1 = 3、
左から 4ビッ ト目のシーケンス番号は
(Pのシーケンス番号) +k— 1 = 1 + 4— 1 = 4、
左から 5ビッ ト目のシーケンス番号は
(Pのシーケンス番号) +k— 1 = 1 + 5— 1 = 5、
左から 6ビッ ト目のシーケンス番号は
(Pのシーケンス番号) +k— 1 = 1 + 6— 1 = 6、
左から 7ビッ ト目のシーケンス番号は
(Pのシ一ケンス番号) +k— 1 = 1 + 7— 1 = 7、
左から 8ビッ ト目のシーケンス番号は
(Pのシーケンス番号) +k— 1 = 1 + 8— 1 = 8となる。
また、 Pのシーケンス番号が 5のとき、 優先度情報 1804において、 左から 1ビッ ト目のシーケンス番号は
(Pのシーケンス番号) +k— 1 = 5 + 1— 1 = 5、
左から 2ビッ ト目のシーケンス番号は
(Pのシーケンス番号) +k— 1 = 5 + 2 _ 1 = 6、
左から 3ビッ ト目のシーケンス番号は
(Pのシーケンス番号) +k— 1 = 5 + 3— 1 = 7、 左から 8ビッ ト目のシーケンス番号の優先度情報は
(Pのシーケンス番号) +k— 1 = 5 + 8— 1 = 12となる。
又、 Pのシーケンス番号が 9のとき、 優先度情報 1805において、 左から 1ビッ ト目のシーケンス番号は
(Pのシーケンス番号) +k— 1 = 9 + 1— 1 = 9、
左から 2ビッ ト目のシーケンス番号は
(Pのシーケンス番号) +k— 1 = 9 + 2— 1 = 10、
左から 3ビッ ト目のシーケンス番号は
(Pのシーケンス番号) +k— 1 = 9 + 3— 1 = 1 1、 左から 8ビッ ト目のシーケンス番号は
(Pのシーケンス番号) +k— 1 = 9 + 8— 1 = 16となる。
また、 Pのシーケンス番号が 13のとき、 優先度情報 1804において、 左から 1ビッ ト目のシーケンス番号は
(Pのシーケンス番号) +k— 1 = 13 + 1— 1 = 13、
左から 2ビッ ト目のシーケンス番号は
(Pのシーケンス番号) +k— 1 = 13 + 2— 1 = 14、
左から 3ビッ ト目のシーケンス番号は
(Pのシーケンス番号) +k— 1 = 13 + 3— 1 = 15、 左から 8ビッ ト目のシーケンス番号は
(Pのシーケンス番号) +k— 1 = 13 + 8— 1 = 20となる。
nや mは、, ネッ トワークの輻輳状況などから動的に設定してもよい。 例 えば、 輻輳状態のときはバケツ ト欠損が発生しやすいので nを大きく m を小さくすれば、 受信装置側でもパケッ ト欠損による優先度情報の欠落 が起こりにく くなる。
実施の形態 3のパケッ ト欠損検出手段 1713は、 パケッ トの受信回数 および時間から決定した間隔、 およびシーケンス番号の不整合から重要
なパケットが欠損する毎に、 受信バッファ内のパケッ トゃ受信バケツ ト のシーケンス番号と、 送信装置の優先度情報付加手段で付加された優先 度情報から、 欠損してしまった重要なパケッ トおよび欠損時には再送し た方が良いと判断できるパケヅトのシーケンス番号を検出する。
受信手段は、 実施の形態 2の受信手段と同様な処理を行うが、 優先度情 報が付加されたパケットの受信後には優先度情報テ一プルの更新を行う 処理を追加する。
第 1 9図は実施の形態 3の受信装置のパケット欠損検出手段のフロー 例を説明するフローチャートで、 第 2 0図はパケヅト欠損とパケヅ ト欠 損検出手段の例を示したものである。
パケッ ト欠損検出手段 1713 がバケツ ト欠損検出処理を行う間隔は、 前 回バケツト欠損検出処理を行った最後のバケツ卜のシーケンス番号や夕 ィムスタンプと受信したパケッ卜のシーケンス番号やタイムスタンプの 差から決定する。 あるいは、 パケッ卜が欠損する毎でもよい。 バケツ ト 欠損検出手段がパケット欠損処理を行うシーケンス番号の間隔を Nint、 タイムスタンプの間隔を Tint、前回バケツト欠損検出手段を行った最後 のバケツトのシーケンス番号を Ncur、 前回パケット欠損検出手段を行 つた バケツ ト欠損検出手段 1713 がバケツ ト欠損検出処理を行う間隔は、 例 えば、 前回バケツト欠損検出処理を行った最後のバケツトのシーケンス 番号やタイムスタンプと今回受信したパケッ 卜のシーケンス番号やタイ ムスタンプの差から決定する。 あるいは、 パケットが欠損する毎でもよ い。 パケッ ト欠損検出手段がパケット欠損処理を行うシーケンス番号の 間隔を Nint、 タイムスタンプの間隔を Tint、 パケヅト欠損検出手段が 前回バケツ ト欠損検出処理を行った最後のパケットのシーケンス番号を
Ncur、バケツト欠損検出手段が前回パケッ ト欠損検出処理を行った最後 のバケツトのタイムスタンプを Tcur とすると、 受信手段が今回受信し たパケヅ 卜のシーケンス番号が Ncur + Nintと等しいかあるいはそれよ りよりも大きいか、 あるいは受信手段が今回受信したバケツトのタイム スタンプが Tcur + Tintと等しいかあるいはそれよりよりも大きければ、 Nc rと Tcurに今回受信したパケヅトのシーケンス番号とタイムスタン プをそれぞれ代入した上で、 パケッ ト欠損検出処理 (ステップ S 306) を行う。 これにより、 Ncurと Tcurの値は今回の新たなパケッ トの最後 のシーケンス番号とタイムスタンプとなる。 なお、 Nintや Tintは、 固 定値でもよいし、 ネッ トワークの輻輳状況から動的に決定してもよい。 パケッ ト欠損検出手段 1713 は、 シーケンス番号順にソートされた受 信バッファにおいて、 前回パケット欠損検出処理を行った最後のパケッ トの次のバケツトからシーケンス番号 Ncur (今回の最後のパケヅトの シーケンス番号) のパケッ トまでの範囲 (ただし、 Ncur のパケヅトを 除く)、 あるいはタイムスタンプ Tcur (今回の最後のパケヅ卜のタイム ス夕ンプ) のパケヅトまでの範囲 (ただし、 Tcurのパケヅトを除く) で、 シーケンス番号の整合性と優先度情報をチェックして再送すべき優先度 の高いパケットの欠損を検出する。
第 1 9図にパケット欠損検出手段 1713 によるパケッ ト欠損検出処理 の詳細フローを示す。 第 1 9図において、 パケッ ト欠損検出手段 1713 は、 はじめに受信バッファ中でシーケンス番号が: FSN と等しくなるパ ケヅトのポインタを Pに設定する(ステップ Sl902)o ここで、 FSNは、 前回パケット欠損検出を行った最後のパケットの次のバケツトのシーケ ンス番号である。欠損したパケットの数を Loss、: FSNからの距離を I、 再送すべき優先度の高い欠損したバケツトのシーケンス番号のリストを SN listとし、 Lossおよび FSNに初期値として 0を設定し、 SN listに
初期値として空白 (空リス ト) を設定する(ステップ S1903)。
次に、 パケヅ ト欠損検出処理のステップ 1904に示す上記範囲内 [前回 パケッ ト欠損検出処理を行った最後のパケッ トの次のパケヅ トからシ一 ケンス番号 Ncur (今回の最後のパケヅ トのシーケンス番号) のパケヅ トまでの範囲 (ただし、 Ncur のパケヅ トを除く) 、 あるいは夕ィムス 夕ンプ Tcur (今回の最後のパケッ トのタイムスタンプ) のパケヅ トまで の範囲 (ただし、 T curのパケッ トを除く) ]で、 受信バッファのポイン 夕 Pに格納されているパケヅ トのシーケンス番号と FSN + Iを比較する (ステップ S1905)。 ステップ S1905において、 もし FSN + Iとポインタ Pに格納されているパケッ トのシーケンス番号が等しければ、 シ一ケン ス番号 FSN + I番のパケヅ トは欠損せず受信されていることになる。 そ こで、 Iをインクリメントし(ステヅプ S1906)、 さらに Pに次のパケヅ トのポイン夕を設定する(ステップ S1908)。
ステップ S1905において、 もし FSN + Iとボイン夕 Pに格納されてい るパケヅ トのシーケンス番号が等しくなければ、ステップ S 1907へ分岐 する。 FSN + I がボイン夕 Pに格納されているパケヅ トのシーケンス番 号より小さければ(ステツプ S1907).、 シーケンス番号 FSN + I番のパケ ヅ トが欠損したことになり、 ステップ S1909 へ分岐する。 ステップ S 1909では、 優先情報テーブル 2001のシーケンス番号が FSN+ Iのパ ケッ 卜の優先度情報を再送するべきか否かを判断する (ステップ S1909) 。 優先度情報からシーケンス番号 FSN + I のパケットが再送す べき優先度の高いパケッ トと判断したとき(ステップ 1909)、 シーケンス 番号 FSN + I の再送要求を行うために SN_listに FSN + Iを追加し(ステ ヅプ 1910)、 Iと Lossをインクリメントする(1911)。 もし、 優先度情報 からシーケンス番号 FSN + Iのパケヅ トが再送を必要としない優先度の 低いパケッ トと判断したとき(ステップ 1909)、 再送要求は行わないので、
SNJListには欠損した FSN + Iを追加しないで、 Iと Lossをィンクリメ ントする (ステップ S1911) 。
ステップ S1904で示された範囲すなわち、 [前回パケッ ト欠損検出処 理を行った最後のパケヅトの次のパケットからシーケンス番号 Ncur (今 回の最後のパケットのシーケンス番号)のパケヅトまでの範囲(ただし、 Ncurのパケットを除く) 、 あるいはタイムスタンプ Tcur (今回の最後 のパケヅトのタイムスタンプ) のパケッ トまでの範囲 (ただし、 T cur のパケットを除く) ]で、 このシーケンス番号の比較が終了したら(ステ ヅプ S1912)、 FSNに Iを加えて(ステツプ 1913)、 FSNを次回のパケヅ ト欠損検出処理の開始シーケンス番号とする(ステップ S511)。このとき、 SN— list にある番号が、 前記範囲内の欠損したパケットのシーケンス番 号となり、 Lossが欠損したパケヅ トの数となる。
. 次に、 パケット欠損が発生している受信バッファとパケヅト欠損検出 処理実行の結果の例を第 2 0図に示す。 第 2 0図において、 2 0 0 1は シーケンス番号とこのシーケンス番号のパケヅ トの重要度に応じて割り 当てられた優先度情報を対応させた優先度情報テーブルを示し、 2 0 0 2は、 Nint= 8の場合の受信バッファを示し、 2 0 0 3は、 N回目のパ ケヅ ト欠損検出処理時の FSN、 Ncur, I、 Loss, Snjistの状態を表し、 2 0 0 4は、 N + 1回目のパケット欠損検出処理時の FSN、 Ncur, I、 Loss, Sn_listの状態を表す。
第 2 0図のパケヅ ト欠損の例では、 受信バッファ 2002 内のバケツト のシーケンス番号が、 …、 8、 9、 1 0、 1 2、 1 5、 1 6、 1 8、 1 9、 2 2、 2 3、 2 4、 2 5、 2 6、 …となっており、 優先度情報が優 先度倩報テーブル 2001のようになっており、 Nint= 8となっており、 N 回目のパケット欠損検出処理実行時 (ステップ 2003)に、 FSN= 8、 Ncur= 1 6となっていた場合、まずシーケンス番号 8から 1 5までの範
囲で抜けている番号を検出する。 優先度情報は 1が再送すべき優先度の 高いパケッ トを意味し、 0が再送しない優先度の低いバケツトを意味す る。
この例では、 1 1、 1 3、 1 4の 3つのシーケンス番号が抜けており、 これらの 3つのパケヅトが欠損したことになる。 シーケンス番号 1 1の パケッ卜の優先度情報は 1なので、 このパケッ トは再送すべき優先度の 高いパケッ トということになり、 1 1は SL_listに追加するが、 シ一ケ ンス番号 1 3と 1 4のパケヅトの優先度情報は 0であるので、 これらの パケヅトは再送しない優先度の低いバケツ トということになり、 再送要 求を行わないので SN_listには追加しない。 また、 次の N+ 1回目のパ ケヅト欠損検出手段では(ステップ 2004)、FSNは N回目の FSN + I= 8 + 8 = 1 6となり、 Ncurは N回目の Ncur + Nint= 1 6 + 8 = 2 4とな る。 同様にシーケンス番号 1 6から 2 4までの範囲で抜けている番号を 検出する。 この例では、 1 7、 2 0、 2 1の 3つの一般シーケンス番号 が抜けており、 これらの 3つのパケットが欠損したことになる。
シーケンス番号 2 1のパケッ卜の優先度情報は 1なので、 このパケヅ トは再送すべき優先度の高いパケットということになり、 2 1は SL一 list に追加するが、 シーケンス番号 1 7と 2 0のパケヅ トの優先度情報は 0 であるので、 これらのパケヅトは再送しない優先度の低いパケヅトとい うことになり、 再送要求を行わないので SN_listには追加しない。
パケット欠損検出手段後、 Loss> 0 の場合、 バケツト欠損が検出された ことになるので、 再送シーケンス番号追加手段によって、 再送要求リス ト管理手段へ SNJistのシーケンス番号を追加するよう命令を発する。 そして、 パケット提供手段は、 実施の形態 2と同様の手段であるが、 最 後に提供したパケヅ トのシーケンス番号より小さいシーケンス番号の優 先度情報を優先度情報テーブルから削除する。
この実施の形態 3によれば、 実施の形態 1および 2による効果に加え て、 優先度情報付加手段を設けることにより、 すべて送信パケットに優 先シーケンス番号を設けてしまうよりも総伝送量が少なくなり、 反面、 受信装置で欠損してしまったバケツトの優先度を受信装置でより正確に 認識することがでる。 また、 請求項 5に記載した再送要求応答手段によ る再送要求応答パケットも必要なくなり、 ネッ トワークの浪費と送信装 置の再送要求応答負荷を削減することができる。 また、 優先度情報の長 さと頻度を調整することで、 輻輳中のネットワークでも受信装置側のパ ケット欠損による優先度情報の欠落が起こりにく くなるという効果を奏 する。 産業上の利用可能性
以上のように、 本発明にかかるパケッ トの再送システムは、 ビデオや 音声などのリアルタイム性の高いデ一夕の転送において、 リアルタイム 性を重視しながらより信頼性の高い通信を行うのに適している。