JP3866196B2 - パケット再送システムおよびパケット再送方法 - Google Patents
パケット再送システムおよびパケット再送方法 Download PDFInfo
- Publication number
- JP3866196B2 JP3866196B2 JP2002504083A JP2002504083A JP3866196B2 JP 3866196 B2 JP3866196 B2 JP 3866196B2 JP 2002504083 A JP2002504083 A JP 2002504083A JP 2002504083 A JP2002504083 A JP 2002504083A JP 3866196 B2 JP3866196 B2 JP 3866196B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- retransmission
- sequence number
- retransmission request
- receiving device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1887—Scheduling and prioritising arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1628—List acknowledgements, i.e. the acknowledgement message consisting of a list of identifiers, e.g. of sequence numbers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1635—Cumulative acknowledgement, i.e. the acknowledgement message applying to all previous messages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1809—Selective-repeat protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1835—Buffer management
- H04L1/1841—Resequencing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1848—Time-out mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1671—Details of the supervisory signal the supervisory signal being transmitted together with control information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1854—Scheduling and prioritising arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1874—Buffer management
- H04L1/1877—Buffer management for semi-reliable protocols, e.g. for less sensitive applications like streaming video
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Description
本発明は、ビデオや音声などのリアルタイムデータをインターネットや無線通信網経由でストリーミング配信するサーバとクライアントに関する。また、本発明は、リアルタイム性の高いデータの転送において、パケット欠損発生時のリアルタイム性を重視しながらより信頼性の高い通信を行うパケット再送システムおよびパケット再送方法に関する。
背景技術
一般に、ネットワーク上を流れるパケットは、ネットワーク上のノード(ルータ)のオーバーフローや、無線空間でのビット誤りなどから、欠損してしまうことが多々ある。このようなパケット欠損の耐性として、(1)何も行わない、(2)誤りを訂正したり、補正を行う、(3)再送を行う、などの方法が考えられる。
(1)の「何も行わない」方法では、ビデオストリームはパケット欠損によリブロックノイズが発生したり、オーディオストリームは音の途切れが発生したり、その他のメディアデータなども正常なメディア再生ができなくなる。
(2)の「誤りを訂正したり、補正を行う」方法として、ビデオのデコード時に欠落したデータを前後のフレームデータなどから補正してデコードしたり、予め補正に必要な冗長なパケットを付加させる方法などがある。
(3)の「再送を行う」方法は、通常はリアルタイム性を要求されないデータ通信で行われる。例えば、TCPプロトコルは、受信できた確認としてACKパケットを送信元へ送っており、そのACKパケットが送信元に返ってこない場合、パケットは受信されていないと判断し再送を行う信頼性の高い転送プロトコルであるが、再送パケットを待つため再送に時間が費やしたり、ACKパケットの超過や再送パケットの増加が帯域を圧迫し、輻輳を引き起こしたりする。
しかし、マルチメディアのストリーミング配信では、データのダウンロードとは異なり、必ずしも全てのデータが届かなくても再生できることから、パケット欠損時には重要なデータパケットのみを再送要求したり、再送したりすることが考えられる。重要なパケットのみを再送することで帯域の有効利用が図れ、必要ないデータパケットの再送を待つこともないので、よりリアルタイム性も高くなる。
これらの目的で考えられた再送制御方式の例として、特開平9−214507号公報(無線通信方法)と特開平11−284657号公報(再送制御方式)に記載されたものが知られている。
特開平9−214507号公報に記載された再送方式は、可能な限り品質を保証した形でリアルタイム通信が行える無線通信方法であり、パケット欠損時には数回再送を試み、それでも届かない場合は、優先度が低いパケットを破棄して再送を行うものである。
また、特開平11−284657号公報に記載された再送方式は、輻輳時に優先度の低い通信のパケットを抑制するコネクション確立型通信の再送制御方式であり、各コネクションに再送できる回数を設定し、再送を行ったときに再送できる回数を1減らし、再送できる回数が0になったら、そのコネクションの通信を停止させ、優先度の高い帯域をできるだけ確保するものである。
また、ストリーミング配信のようなリアルタイム性の高いデータ伝送プロトコルとして、RFC1889をはじめとするインターネット関連標準化規格となっているRTP(Real−Time Transport Protocol)は、シーケンス番号やタイムスタンプが付加されたパケット通信のプロトコルであるが、再送処理は行っていない。
また、RTPの再送機能拡張案として、「RTP Payload Type Format to Enable Selective Retransmissions」というタイトルのインターネットドラフト(draft−miyazaki−avt−rtp−selret−OO.txt)が挙がっており、その再送機能拡張案では、RTPのシーケンス番号とは別途に、優先度の高い再送すべきパケットのみに割り与えられるシーケンス番号がある。
以上のように、ビデオや音声などのリアルタイムデータの配信を行うシステムでは、パケットが欠損した場合、その対策を何も行わなければ、データが欠落することになり、コンテンツの再生品質が良くないという問題がある。
また、誤り訂正や補正を行う方法では、受信側の負荷が大きくなったり、補正を行うための冗長なデータによって、より輻輳を悪化させることにもなるという問題がある。
再送を行う方法では、TCPプロトコルのように、再送パケットを待つため再送に時間が費やしたり、ACKパケットの超過や再送パケットの増加が帯域を圧迫し、輻輳を引き起こしたりするという問題がある。
優先度の高いパケットだけを再送する方法では、受信側で優先度の低いパケットの再送要求を行った場合、その再送パケットは送信元で破棄される可能性もあるのに、受信側はその再送パケットを待ち受けたり、何度も再送要求を行ったりすることになり、無駄な再送処理を行っていることになるという問題がある。
また、すべてのパケットに与えられる一般シーケンス番号と、重要なパケットおよび欠損時には再送した方が良いと判断できるパケットのみに与えられる優先シーケンス番号が付加された、RTPの再送機能拡張案によるパケット通信では、受信側で優先度を把握できる利点があるが、連続したパケットが欠損した場合は、正確な優先度を認識することができず、連続欠損したすべてのパケットの再送要求を行わなければならないという問題がある。例えば、第16図が一般シーケンス番号と優先シーケンス番号が付加されたパケット通信におけるパケット欠損の例を示したものであるが、一般シーケンス番号20と21が連続欠損しており、優先シーケンス番号は一般シーケンス番号19から22の間で1しか増加していないため、一般シーケンス番号20と21のどちらが再送しなければならない優先度の高いパケットなのか判断はできず、結局、一般シーケンス番号20と21の両パケットの再送要求を行わなければならない。
本発明は、このような問題を解決し、優先度の高い重要なパケットのみを再送することで再送処理によるネットワーク負荷の浪費を最小限に抑えることができ、ネットワークの輻輳時でも優先度の高いパケットの伝送容量を確保できるパケットの再送システム並びにパケットの転送システムを提供することを目的とする。
発明の開示
本発明に係るパケット再送システムは、
シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送システムにおいて、
送信装置は、
受信装置へ送信したパケットを蓄積しておく再送用バッファと、
前記受信装置から受信した再送要求パケットからシーケンス番号と要求アプリケーションへ提供した最大(最新)シーケンス番号を識別して通知する再送要求受信手段と、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調べる再送パケット検出手段と、
該再送パケット検出手段が存在を検出したすべてのパケットを前記受信装置へ再送する再送手段と、
を備えたものである。
また、シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送システムにおいて、
受信装置は、
送信装置から受信したパケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信手段と、
前記パケットの欠損を検出するパケット欠損検出手段と、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように追加命令を発する再送シーケンス番号追加手段と、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理手段と、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信手段へ送信する再送要求送信手段と、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供手段と、
を備えたものである。
また、シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送システムにおいて、
送信装置は、
受信装置へ送信したパケットを蓄積しておく再送用バッファと、
前記受信装置から受信した再送要求パケットからシーケンス番号と要求アプリケーションへ提供した最大(最新)シーケンス番号を識別して通知する再送要求受信手段と、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調べる再送パケット検出手段と、
該再送パケット検出手段が存在を検出したすべてのパケットを前記受信装置へ再送する再送手段と、
を備え、
前記受信装置は、
前記送信装置から受信した前記パケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信手段と、
前記パケットの欠損を検出するパケット欠損検出手段と、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように命令する再送シーケンス番号追加手段と、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理手段と、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信手段へ送信する再送要求送信手段と、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供手段と、
を備えたものである。
また、送信装置は、
特定のパケットまたは欠損時に再送するべきパケットを再送用バッファに格納する再送パケット格納手段と、
前記特定のパケットまたは欠損時に再送するべきパケットの再送信を行う再送手段と、を備え、
受信装置は、
前記特定のパケットまたは欠損時に再送するべきパケットを受信後、シーケンス番号順にソートしながら前記特定のパケットまたは欠損時に再送するべきパケットを受信バッファに格納する受信手段と、
を備えたものである。
また、受信装置は、
現在再送要求を行っているパケットのシーケンス番号および次の再送要求時に再送要求を行うパケットのシーケンス番号を格納する再送要求リストを生成し、シーケンス番号の追加および削除を行い、再送要求リストに格納されているシーケンス番号のパケットの状態を再送要求状態に切り替える再送要求リスト管理手段と、
を備えたものである。
また、受信装置は、
パケットの受信回数および受信時間から決定されるパケットの受信時間間隔で、受信バッファ内のパケットのシーケンス番号の不整合から欠損したパケットのシーケンス番号を検出するパケット欠損検出手段と、
該パケット欠損検出手段が欠損を検出したパケットのシーケンス番号を再送要求リストに追加する命令を再送要求リスト管理手段へ出す再送シーケンス番号追加手段と、
前記再送要求リストの状態を再送パケット受信待ちの状態を意味する”READY状態”に設定する命令を前記再送要求リスト管理手段へ出す再送要求通知手段を備えたものである。
また、受信装置は、
再送要求リストに存在する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の値をネットワークの輻輳状況から決定する優先度情報付加手段を備え、
受信装置は、
パケットの受信回数および受信時間から決定されるパケットの受信時間間隔、およびシーケンス番号の不整合から重要なパケットが欠損する毎に、受信バッファ内のパケットや受信パケットのシーケンス番号と、前記優先度情報から、欠損を発生した優先度の高い特定のパケットおよび欠損時に再送するべきパケットのシーケンス番号を検出するパケット欠損検出手段を備えたことを特徴とするものである。
また、本発明に係るパケット再送方法は、
シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送方法において、
送信装置は、
受信装置へ送信したパケットを蓄積しておく再送用バッファと、
前記受信装置から受信した再送要求パケットからシーケンス番号と要求アプリケーションへ提供した最大(最新)シーケンス番号を識別して通知する再送要求受信ステップと、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調べる再送パケット検出ステップと、
該再送パケット検出ステップが存在を検出したすべてのパケットを前記受信装置へ再送する再送ステップと、
を備えたものである。
また、シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送方法において、
受信装置は、
送信装置から受信したパケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信ステップと、
前記パケットの欠損を検出するパケット欠損検出ステップと、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように追加命令を発する再送シーケンス番号追加ステップと、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理ステップと、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信ステップへ送信する再送要求送信ステップと、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供ステップと、
を備えたものである。
また、シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送方法において、
送信装置は、
受信装置へ送信したパケットを蓄積しておく再送用バッファと、
前記受信装置から受信した再送要求パケットからシーケンス番号と要求アプリケーションへ提供した最大(最新)シーケンス番号を識別して通知する再送要求受信ステップと、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調べる再送パケット検出ステップと、
該再送パケット検出ステップが存在を検出したすべてのパケットを前記受信装置へ再送する再送ステップと、
を備え、
前記受信装置は、
前記送信装置から受信した前記パケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信ステップと、
前記パケットの欠損を検出するパケット欠損検出ステップと、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように命令する再送シーケンス番号追加ステップと、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理ステップと、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信ステップへ送信する再送要求送信ステップと、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供ステップと、
を備えたものである。
また、送信装置は、
特定のパケットまたは欠損時に再送するべきパケットを再送用バッファに格納する再送パケット格納ステップと、
前記特定のパケットまたは欠損時に再送するべきパケットの再送信を行う再送ステップと、を備え、
受信装置は、
前記特定のパケットまたは欠損時に再送するべきパケットを受信後、シーケンス番号順にソートしながら前記特定のパケットまたは欠損時に再送するべきパケットを受信バッファに格納する受信ステップを備えたものである。
また、受信装置は、
現在再送要求を行っているパケットのシーケンス番号および次の再送要求時に再送要求を行うパケットのシーケンス番号を格納する再送要求リストを生成し、シーケンス番号の追加および削除を行い、再送要求リストに格納されているシーケンス番号のパケットの状態を再送要求状態に切り替える再送要求リスト管理ステップを備えたものである。
また、受信装置は、
パケットの受信回数および受信時間から決定されるパケットの受信時間間隔で、受信バッファ内のパケットのシーケンス番号の不整合から欠損したパケットのシーケンス番号を検出するパケット欠損検出ステップと、該パケット欠損検出ステップが欠損を検出したパケットのシーケンス番号を再送要求リストに追加する命令を再送要求リスト管理ステップへ出す再送シーケンス番号追加ステップと、
前記再送要求リストの状態を再送パケット受信待ちの状態を意味する”READY状態”に設定する命令を前記再送要求リスト管理ステップへ出す再送要求通知ステップと、
を備えたものである。
また、受信装置は、
再送要求リストに存在する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図は本発明の実施の形態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へパケットを送信する(ステップS202)。送信装置101は、送信したパケットを再送用バッファへ保存する(ステップS203)。このとき、すべてのパケットを再送用バッファ201に保存しても良いし、再送すべき重要なパケットのみを再送用バッファ201に保存してもよい。ただし、再送用バッファ201のサイズが最大パケット数より大きくなった場合、あるいは、タイムスタンプにより時間管理のとき再送用バッファ201の蓄積時間量が最大時間より大きくなった場合(ステップS204)、再送用バッファ201のサイズが、最大パケット数以下あるいは最大時間以下になるまで、最小のシーケンス番号のパケットを再送用バッファ201から削除する(ステップS205)。
受信装置102の受信手段110は、第3図に示すように送信装置101からのパケットを受信すると(ステップS301)、受信したパケットをシーケンス番号順にソートしながら受信バッファに保存する(ステップS302)。
そして、所定の数のパケットを受信したとき、パケット欠損検出手段111はパケットが欠損していないかをチェックする。このチェック処理をパケット欠損検出処理という。パケット欠損検出手段111がパケット欠損検出処理(ステップS306)を行う間隔は、例えば、前回パケット欠損検出処理(ステップS306)を行った最後のパケットのシーケンス番号やタイムスタンプと今回受信したパケットのシーケンス番号やタイムスタンプの差から決定する(ステップS303)。パケット欠損検出処理(ステップS306)を行うシーケンス番号の間隔をNint、タイムスタンプの間隔をTint、パケット欠損検出手段111が前回パケット欠損検出処理(ステップS306)を行った最後のパケットのシーケンス番号をNcur、パケット欠損検出手段111が前回パケット欠損検出処理(ステップS306)を行った最後のパケットのタイムスタンプをTcurとすると、受信手段110が今回受信したパケットのシーケンス番号がNcur+Nintと等しいかあるいはそれよりも大きいか、あるいは受信したパケットのタイムスタンプがTcur+Tintと等しいかあるいはそれよりも大きければ、NcurとTcurに今回受信したパケットのシーケンス番号とタイムスタンプをそれぞれ代入した上で、パケット欠損検出処理(ステップS306)を行う。これにより、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(今回の最後のパケットのタイムスタンプ)のパケットまでの範囲(ただし、Tcurのパケットを除く)]で、受信バッファのポインタPに格納されているパケットのシーケンス番号とFSN+Iを比較する(ステップS505)。ステップS505において、もしFSN+IとポインタPに格納されているパケットのシーケンス番号が等しければ、シーケンス番号FSN+I番のパケットは欠損せず受信されていることになる。そこで、Iをインクリメントし(ステップS506)、さらにPに次のパケットのポインタを設定する(ステップS506)。ステップS505において、もしFSN+IとポインタPに格納されているパケットのシーケンス番号が等しくなければ、ステップS507へ進む。FSN+IがポインタPに格納されているパケットのシーケンス番号より小さければ(ステップS507)、シーケンス番号FSN+I番のパケットが欠損したことになる。そこで、SN_listにFSN+Iを追加し(ステップS508)、IとLossをインクリメントする(ステップS509)。
ステップS504で示された範囲すなわち、[前回パケット欠損検出処理(S306)を行った最後のパケットの次のパケットからシーケンス番号Ncur(今回の最後のパケットのシーケンス番号)のパケットまでの範囲(ただし、Ncurのパケットを除く)、あるいはタイムスタンプTcur(今回の最後のパケットのタイムスタンプ)のパケットまでの範囲(ただし、Tcurのパケットを除く)]で、このシーケンス番号の比較が終了したら(ステップS510)、FSNにIを加えて、FSNを次回のパケット欠損検出処理の開始シーケンス番号とする(ステップS511)。このとき、SN_listにある番号が、前記範囲内の欠損したパケットのシーケンス番号となり、Lossが欠損したパケットの数となる。
次に、パケット欠損が発生している受信バッファとパケット欠損検出処理実行の結果の例を第8図に示す。第8図において、801は、Nint=8の場合の受信バッファを示し、802は、N回目のパケット欠損検出処理時のFSN、Ncur、I、Loss、Sn_listの状態を表し、803は、N+1回目のパケット欠損検出処理時のFSN、Ncur、I、Loss、Sn_listの状態を表す。受信バッファ801内のパケットのシーケンス番号が、1、2、3、…、7、8、9、10、12、15、16、18、19、22、23、24、25、26、…となっており、Nint=8となっており、N回目のパケット欠損検出処理実行時(802)にFSN=8、Ncur=16となっていた場合、シーケンス番号8から15までの範囲で抜けている番号を検出する。
この例では、11、13、14の3つのシーケンス番号が抜けており、これらの3つのパケットが欠損したことになる。また、次のN+1回目のパケット欠損検出処理(803)ではFSNはN回目のFSN+I=8+8=16となり、NcurはN回目のNcur+Nint=16+8=24となる。
同様にシーケンス番号16から23までの範囲で抜けている番号を検出する。この例では、17、20、21の3つのシーケンス番号が抜けており、これらの3つのパケットが欠損したことになる。
以下、N回目のパケット欠損検出処理におけるパケット欠損検出処理の動作について図5を参照して詳細に説明する。
この場合、FSN=8であり、NcurにはN回目のNcur+Nint=8+8=16が既に設定されていることを前提とする。
まず、N回目のパケット欠損検出処理において、パケット欠損検出手段111は、受信バッファのFSN+I=8+0=8に対応するシーケンス番号を有するパケットのポインタをPに設定する(ステップS502)。
次に、Lossに初期値として0を設定し、Iに初期値として0を設定し、SN_listに初期値として0を設定する(ステップS503)。
次に、P<Ncur=16の範囲内で以下の処理を実行する(ステップS504)。
まず、FSN+IとポインタPに格納されているシーケンス番号を比較する(ステップS505)。FSN+I=8+0=8でポインタPに格納されているシーケンス番号=8であるから、比較の結果、「FSN+I=ポインタPに格納されているシーケンス番号」となり、ステップS506へ分岐し、Iを1つインクリメントし、ポインタPも1つインクリメントすることで次のパケットのポインタを設定する(ステップS506)。この結果、I=1となり、ポインタPに格納されているシーケンス番号は9となる。
次に、ループに戻り、再び、FSN+IとポインタPに格納されているシーケンス番号を比較する(ステップS505)。FSN+I=8+1=9でポインタPに格納されているシーケンス番号=9であるから、比較の結果、「FSN+I=ポインタPに格納されているシーケンス番号」となり、ステップS506へ分岐し、Iを1つインクリメントし、ポインタPも1つインクリメントすることで次のパケットのポインタを設定する(ステップS506)。この結果、I=2となり、ポインタPに格納されているシーケンス番号は10となる。
次に、ループに戻り、再び、FSN+IとポインタPに格納されているシーケンス番号を比較する(ステップS505)。FSN+I=8+2=10でポインタPに格納されているシーケンス番号=10であるから、比較の結果、「FSN+I=ポインタPに格納されているシーケンス番号」となり、ステップS506へ分岐し、Iを1つインクリメントし、ポインタPも1つインクリメントすることで次のパケットのポインタを設定する(ステップS506)。この結果、I=3となり、ポインタPに格納されているシーケンス番号は12となる。
次に、ループに戻り、再び、FSN+IとポインタPに格納されているシーケンス番号を比較する(ステップS505)。FSN+I=8+3=11でポインタPに格納されているシーケンス番号=12であるから、比較の結果、「FSN+I≠ポインタPに格納されているシーケンス番号」となり、ステップS507へ分岐し、ステップS507では、比較の結果、「FSN+1<ポインタPに格納されているシーケンス番号」となり、ステップS508へ分岐する。ステップS508では、SN_listにFSN+I=8+3=11を追加する(ステップS508)。この結果、SN_listの値は空白から11に切り替わる。次に、Iを1つインクリメントし、Lossも1つインクリメントする(ステップS509)。この結果、I=4となり、Loss=1となる。
次に、ループに戻り、再び、FSN+IとポインタPに格納されているシーケンス番号を比較する(ステップS505)。FSN+I=8+4=12でポインタPに格納されているシーケンス番号=12であるから、比較の結果、「FSN+I=ポインタPに格納されているシーケンス番号」となり、ステップS506へ分岐し、Iを1つインクリメントし、ポインタPも1つインクリメントすることで次のパケットのポインタを設定する(ステップS506)。この結果、I=5となり、ポインタPに格納されているシーケンス番号は15となる。
次に、ループに戻り、再び、FSN+IとポインタPに格納されているシーケンス番号を比較する(ステップS505)。FSN+I=8+5=13でポインタPに格納されているシーケンス番号=15であるから、比較の結果、「FSN+I≠ポインタPに格納されているシーケンス番号」となり、ステップS507へ分岐し、ステップS507では、比較の結果、「FSN+1<ポインタPに格納されているシーケンス番号」となり、ステップS508へ分岐する。ステップS508では、SN_listにFSN+5=8+5=13を追加する(ステップS508)。この結果、SN_listの値は「11」から「11、13」に切り替わる。次に、Iを1つインクリメントし、Lossも1つインクリメントする(ステップS509)。この結果、I=6となり、Loss=2となる。
次に、ループに戻り、再び、FSN+IとポインタPに格納されているシーケンス番号を比較する(ステップS505)。FSN+I=8+6=14でポインタPに格納されているシーケンス番号=15であるから、比較の結果、「FSN+I≠ポインタPに格納されているシーケンス番号」となり、ステップS507へ分岐し、ステップS507では、比較の結果、「FSN+1<ポインタPに格納されているシーケンス番号」となり、ステップS508へ分岐する。ステップS508では、SN_listにFSN+I=8+6=14を追加する(ステップS508)。この結果、SN_listの値は「11、13」から「11、13、14」に変わる。次に、Iを1つインクリメントし、Lossも1つインクリメントする(ステップS509)。この結果、I=7となり、Loss=3となる。
次に、ループに戻り、再び、FSN+IとポインタPに格納されているシーケンス番号を比較する(ステップS505)。FSN+I=8+7=15でポインタPに格納されているシーケンス番号=15であるから、比較の結果、「FSN+I=ポインタPに格納されているシーケンス番号」となり、ステップS506へ分岐し、Iを1つインクリメントし、ポインタPも1つインクリメントすることで次のパケットのポインタを設定する(ステップS506)。この結果、I=8となり、ポインタPに格納されているシーケンス番号は16となる。従って、ループの条件Ncur>Pを満足しないので、ループから抜け出し、FSNにFSN+1=15+1=16を設定する(ステップS511)。
以上より、シーケンス番号11、13、14のパケットが欠損したことを検出する。
N+1回目のパケット欠損検出処理におけるパケット欠損検出処理の動作も同様である。
パケット欠損検出処理(ステップS306)実行後、Loss>0の場合、パケット欠損が検出されたことになるので、再送シーケンス番号追加手段112は、再送要求リスト管理手段115へSN_listに登録されている欠損パケットのシーケンス番号を追加するよう命令を発する(ステップS307)。
追加命令を受理した再送要求リスト管理手段115は、SN_listのシーケンス番号を再送要求リストへ追加する(ステップS402〜S407)。ただし、2重登録は行わない。ただし、SN_listにあるシーケンス番号がすべて”ACTIVE”状態の再送要求リストにあって、1つも再送要求リストに追加できない場合、以下の再送要求通知処理や再送要求送信処理は行わない。
次に、再送要求通知手段113は、再送要求リストの状態を、”READY”状態に遷移するよう、再送要求リスト管理手段115へ命令を発する(ステップS308)。ここで、”READY”状態にある再送要求リストとは、再送要求を行うシーケンス番号のリストであるが、全てのシーケンス番号が再送されてくるかどうかはわからない状態のシーケンス番号リストである。READY命令を受理した再送要求リスト管理手段115は、再送要求リストを”READY”状態にする(ステップS402,S403,S412)。
次に、再送要求送信手段114は、再送要求リストのシーケンス番号の再送要求を送信装置101に対して行う(ステップS309)。この場合、再送要求リストのシーケンス番号と、その時点で要求者(アプリケーション)103へ提供したパケットの最大(最新)のシーケンス番号を1つの再送要求パケットに乗せ、その再送要求パケットを送信装置101へ送信する(ステップS310)。
送信装置101の再送要求受信手段106は、第2図に示すように再送要求パケットを受信し(ステップS207)、再送要求パケットから再送要求されたシーケンス番号と要求者(アプリケーション)103へ提供した最大(最新)シーケンス番号を識別する(ステップS208,S209)。
次に、再送用バッファ削除手段120は、要求者(アプリケーション)103へ提供した再送用バッファ201内の最大(最新)シーケンス番号よりも小さいシーケンス番号のパケットはこれ以上再送要求する必要がないので、これらのパケットを削除する(ステップS210)。
次に、再送パケット検出手段107は、再送用バッファを検索して再送要求されたシーケンス番号と等しいシーケンス番号を検出する(ステップS211)。このシーケンス番号は再送するべきパケットのシーケンス番号であり、再送シーケンス番号と呼ぶ。
次に、再送要求応答手段108は、再送パケット検出手段107によって検出された再送シーケンス番号を乗せた1つの再送要求応答パケットを生成し、その再送要求応答パケットを受信装置102へ送信する(ステップS212)。
次に、再送手段109は、再送シーケンス番号のパケットを受信装置102へ再転送する(ステップS213)。
受信装置102の再送要求応答受信手段116は、第6図に示すように送信装置101から再送シーケンス番号を乗せた再送要求応答パケットを受信すると(ステップS601)、再送要求応答パケットから再送シーケンス番号を識別する(ステップS602)。
次に、再送シーケンス番号削除手段117は、受信できたことにより再送要求が不要になったパケットの再送シーケンス番号を再送要求リストから削除するように、再送要求リスト管理手段115へ削除命令を発する(ステップS603)。
削除命令を受理した再送要求リスト管理手段115は、第4図に示すように再送要求リストから再送シーケンス番号を削除する(ステップS402,S403,S408〜S411)。したがって、再送要求リストに残っているシーケンス番号は欠損したため再送要求を行ったが、送信装置101からは再送されてこないパケットのシーケンス番号となる。
次に、再送要求応答通知手段118は、第6図に示すように再送要求リストを”ACTIVE”状態に遷移するように、再送要求リスト管理手段115へ命令を発する(ステップS604)。
ACTIVE命令を受理した再送要求リスト管理手段115は、第4図に示すように再送要求リストを”ACTIVE”状態に遷移する(ステップS402,S403,S413)。”ACTIVE”状態の再送要求リストは、再送要求を行っても送信装置から再送されてこないシーケンス番号を意味する。
次に、要求者(アプリケーション)103は、受信装置102が受信したパケットのペイロードを要求する。受信装置102のパケット提供手段119は、要求者(アプリケーション)103から、パケットのペイロードと、そのペイロードを提供するまでの待ち時間が要求されると、その待ち時間までに前回提供したパケットの次のパケット(シーケンス番号Tnextのパケット)のペイロードを提供するが、そのTnextのパケットが欠損したり、再送もされなかったりすることで、待ち時間内にTnextのパケットのペイロードが提供できないときは、パケット提供手段119はTnextのパケットが欠損したことを要求者(アプリケーション)103に通知する。
第7図に示すようにパケット提供手段119は、要求者(アプリケーション)103からパケットのペイロードと要求からペイロード提供迄の許容待ち時間が要求されると(ステップS702)、その現在時刻をTstartにセットして(ステップS703)、シーケンス番号Tnextのパケットが受信バッファにあるか否かを調べる(ステップS704)。受信バッファにTnextのパケットがあった場合、このTnextのパケットのペイロードを提供する(ステップS705)。
受信バッファにTnextのパケットがなかった場合、現在時刻が待ち時間を超えていないかタイムアウトのチェックを行い(ステップS706)、タイムアウトの場合は、Tnextのパケットが欠損したことを要求者(アプリケーション)103に通知する(ステップS709)。タイムアウトでない場合は、シーケンス番号Tnextが再送要求リストにあるか否かを調べる(ステップS707)。
Tnextが再送要求リストにあり、且つ再送要求リストが”ACTIVE”状態である場合は(ステップS708)、送信装置101からは再送要求を行っても再送されないことを意味するので、Tnextのパケットが欠損したことを要求者(アプリケーション)103に通知する(ステップS709)。
Tnextが再送要求リストにない場合は、FSNにTnextを設定し(ステップS711)、Ncurに現在受信した最新のパケットのシーケンス番号を設定し(ステップS712)、Tcurに現在受信した最新のパケットのタイムスタンプを設定し(ステップS713)、この後パケット欠損検出処理(ステップS714)、再送シーケンス番号追加処理(ステップS715)、再送要求応答通知処理(ステップS716)、再送要求送信処理(ステップS717,S718)を用いて、再度Tnextの再送要求を行うと共に、最新のパケット欠損も検出し、同時に再送要求を行う。
待ち時間が0をセットされたときは、受信バッファにTnextがあるか否かだけを調べ、もしなかったらTnextのパケットの再送要求は行わず、すぐにTnextのパケットが欠損したことを要求者(アプリケーション)103に通知する。逆に待ち時間が無限時間をセットされたときは、受信バッファにTnextのパケットがない場合、何度も再送要求を行い、Tnextのパケットが再送されるを待ち続ける。
ただし、”ACTIVE”状態の再送要求リストにTnextがある場合は、再送要求を行わず、Tnextのパケットが欠損したことを要求者(アプリケーション)103に通知する。再送要求送信手段が再送要求パケットを送信したあと、再送要求を行う間隔Trだけ待ち(ステップS720)、再び受信バッファに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を有している。
第10図は送信装置を説明するためのフローチャートで、第11図、第12図、第13図、第14図、第15図は受信装置を説明するためのフローチャートで、第11図と第12図は受信手段がパケットを受信して再送要求送信手段が再送要求を行うまでの2つの例の処理フローを説明し、第13図は受信装置の再送リスト管理手段915の処理フローを説明し、第14図は受信装置のパケット欠損検出手段912の処理フローを説明し、第15図は要求者(アプリケーション)903からパケット提供手段916がパケットの提供を要求されたときの処理フローを説明するものである。
第9図の構成において、送信装置901は受信装置902へパケットを送信する(ステップS1001)。送信装置901は、送信したパケットを再送用バッファへ保存する(ステップS1002)。このとき、すべてのパケットを再送用バッファ1005に保存しても良いし、再送すべき重要なパケットのみを再送用バッファに保存してもよい。ただし、再送用バッファ1005のサイズが最大パケット数より大きくなった場合、あるいは、タイムスタンプにより時間管理のとき再送用バッファ1005の蓄積時間量が最大時間より大きくなった場合(ステップS1003)、再送用バッファ1005のサイズが、最大パケット数以下あるいは最大時間以下になるまで、最小の一般シーケンス番号のパケットを再送用バッファ1005から削除する(ステップS1004)。
受信装置902の受信手段910は、第11図に示すように、送信装置901からのパケットを受信すると(ステップS1101,S1201)、受信したパケットを一般シーケンス番号順にソートしながら受信バッファに保存する(ステップS1102,S1202))。
また、再送シーケンス番号削除手段911は、パケットを受信する毎にこの受信パケットが再送リストに有るか否かをチェックする。受信パケットの一般シーケンス番号が再送リストにある場合は(ステップS1103,S1203)、この受信パケットは再送されてきたパケットを意味し、このパケットはこれ以上再送要求する必要がないので、この受信パケットの一般シーケンス番号を再送リストから削除するよう、再送リスト管理手段915へ削除命令を発する(ステップS1104,S1204)。
そして、所定の数のパケットを受信したとき、パケット欠損検出手段912はパケットが欠損していないかをチェックする。このチェック処理をパケット欠損検出処理という。パケット欠損検出手段912がパケット受信後に行うパケット欠損検出処理の例を2つ説明する。第11図の例1のフローチャートに示すように、このパケット欠損検出手段912がパケット欠損検出処理(ステップS1108)を行う間隔は、例えば、前回パケット欠損検出処理(ステップS1108)を行った最後のパケットの一般シーケンス番号やタイムスタンプと今回受信したパケットの一般シーケンス番号やタイムスタンプの差から決定する(ステップS1105)。パケット欠損検出処理(ステップS1108)を行う一般シーケンス番号の間隔をNint、タイムスタンプの間隔をTint、前回パケット欠損検出処理(ステップS1108)を行った最後のパケットの一般シーケンス番号をNcur、前回パケット欠損検出処理(ステップS1108)を行った最後のパケットのタイムスタンプをTcurとすると、受信手段910が今回受信したパケットの一般シーケンス番号がNcur+Nintと等しいかあるいはそれよりも大きいか、あるいは受信したパケットのタイムスタンプがTcur+Tintと等しいかあるいはそれよりも大きければ(ステップS1105)、NcurとTcurに今回受信したパケットの一般シーケンス番号とタイムスタンプをそれぞれ代入した上で(ステップS1106,S1107)、パケット欠損検出手段を行う(ステップ1108)。これにより、NcurとTcurの値は今回の新たなパケットの最後の一般シーケンス番号とタイムスタンプとなる。なお、NintやTintは、固定値でもよいし、ネットワークの輻輳状況から動的に決定してもよい。
パケット欠損検出手段912は、一般シーケンス番号順にソートされた受信バッファにおいて、前回パケット欠損検出処理(ステップS1108)を行った最後のパケットの次のパケットから一般シーケンス番号Ncur(今回の最後のパケットの一般シーケンス番号)のパケットまでの範囲(ただし、Ncurのパケットを除く)、あるいはタイムスタンプTcur(今回の最後のパケットのタイムスタンプ)のパケットまでの範囲(ただし、Tcurのパケットを除く)で、一般シーケンス番号と優先シーケンス番号の整合性をチェックして再送すべき優先度の高いパケットの欠損を検出する。
第14図にパケット欠損検出手段111によるパケット欠損検出処理(ステップS1108)の詳細フローを示す。第14図において、パケット欠損検出手段111は、はじめに受信バッファ中で一般シーケンス番号がFSNと等しくなるパケットのポインタをPに設定する(ステップS1402)。ここで、FSNは、前回パケット欠損検出を行った最後のパケットの次のパケットの一般シーケンス番号である。次にMPSNにポインタPに格納されているパケットの優先シーケンス番号を保持しておく(ステップS1403)。ここで、MPSNは欠損パケット検索中の最大(最新)優先シーケンス番号を意味する。
欠損したパケットの数をLoss、FSNからの距離をI、再送すべき優先度の高い欠損したパケットの一般シーケンス番号のリストをSN_listとし、LossおよびFSNに初期値として0を設定し、SN_listに初期値として空白(空リスト)を設定する(ステップ1404)。
次に、パケット欠損検出処理のステップ1405に示す上記範囲内[前回パケット欠損検出処理(ステップS1108)を行った最後のパケットの次のパケットから一般シーケンス番号Ncur(今回の最後のパケットの一般シーケンス番号)のパケットまでの範囲(ただし、Ncurのパケットを除く)、あるいはタイムスタンプTcur(今回の最後のパケットのタイムスタンプ)のパケットまでの範囲(ただし、Tcurのパケットを除く)]で、受信バッファのポインタPに格納されているパケットの一般シーケンス番号とFSN+Iを比較する(ステップS1406)。ステップS1406において、もしFSN+IとポインタPに格納されているパケットの一般シーケンス番号が等しければ、一般シーケンス番号FSN+I番のパケットは欠損せず受信されていることになる。
そこで、MPSNにポインタPに格納されているパケットの優先シーケンス番号を設定し(ステップS1407)、Iをインクリメントし(ステップS1408)、さらにPに次のパケットのポインタを設定する(ステップS1410)。ステップ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)、欠損したパケットは再送を必要としない優先度の低いパケットであり、再送要求は行わないので、SN_listには欠損した一般シーケンス番号を追加しない。
ステップS1405で示された範囲すなわち、[前回パケット欠損検出処理(S1108)を行った最後のパケットの次のパケットから一般シーケンス番号Ncur(今回の最後のパケットの一般シーケンス番号)のパケットまでの範囲(ただし、Ncurのパケットを除く)、あるいはタイムスタンプTcur(今回の最後のパケットのタイムスタンプ)のパケットまでの範囲(ただし、Tcurのパケットを除く)]で、この一般シーケンス番号の比較が終了したら(ステップS1416)、FSNにIを加えて、FSNを次回のパケット欠損検出処理の開始一般シーケンス番号とする(ステップS1417)。このとき、SN_listにある番号が、前記範囲内の欠損したパケット且つ再送すべき優先度の高いパケットの一般シーケンス番号となり、Lossが欠損したパケット数となる。
次に、パケット欠損が発生している受信バッファとパケット欠損検出処理実行の結果の例を第16図に示す。第16図において、1601は、Nint=8の場合の受信バッファを示し1602は、N回目のパケット欠損検出処理時のFSN、Ncur、I、Loss、Sn_listの状態を表し、1603は、N+1回目のパケット欠損検出処理時のFSN、Ncur、I、Loss、Sn_listの状態を表す。受信バッファ1601内のパケットの一般シーケンス番号が、…、8、9、10、12、15、16、18、19、22、23、24、25、26、…となっており、優先シーケンス番号がそれぞれ、4、4、5、7、7、8、8、9、10、11、11、11、12、…となっており、Nint=8となっており、N回目のパケット欠損検出処理実行時(1602)にFSN=8、Ncur=16となっていた場合、一般シーケンス番号8から15までの範囲で抜けている番号を検出する。
この例では、11、13、14の3つの一般シーケンス番号が抜けており、これらの3つのパケットが欠損したことになるが、一般シーケンス番号12のパケットの優先シーケンス番号と一般シーケンス番号15のパケットの優先シーケンス番号が共に7で等しいことから、一般シーケンス番号12〜15には優先パケットが存在しないことになる。即ち、一般シーケンス番号13(=12+1)と14のパケットは再送を必要としない優先度の低いパケットということになり、再送要求を行わないのでSN_listには追加しない。また、次のN+1回目のパケット欠損検出処理では(ステップ1603)、FSNはN回目のFSN+I=8+8=16となり、NcurはN回目のNcur+Nint=16+8=24となる。
同様に一般シーケンス番号16から23までの範囲で抜けている番号を検出する。この例では、17、20、21の3つの一般シーケンス番号が抜けており、これらの3つのパケットが欠損したことになる。しかし、一般シーケンス番号17は、一般シーケンス番号16と18のパケットの優先シーケンス番号が8で等しいので、一般シーケンス番号16〜18には優先パケットが存在しないことになる。即ち、一般シーケンス番号17(=16+1)のパケットは再送を必要としない優先度の低いパケットということになり、再送要求を行わないので、SL_listには追加しない。
ところが、一般シーケンス番号19、22のパケットの優先シーケンス番号は、それぞれ8、9であり、一般シーケンス番号22のパケットの優先シーケンス番号の方が一般シーケンス番号19のパケットの優先シーケンス番号より1大きい。したがって、一般シーケンス番号19〜22には優先パケットが1つ存在することになる。この場合、欠損した一般シーケンス番号20と21のパケットは、どちらかが再送すべき優先度の高いパケットかもしれないし、一般シーケンス番号22のパケットが再送すべき優先度の高いパケットだったために、一般シーケンス番号20と21のどちらも再送を必要としない優先度の低いパケットかもしれない。このようにパケットが連続欠損し優先シーケンス番号がその前後で等しくない場合は、どれが優先度の高いパケットなのかが判断できないため、連続欠損したすべてのパケットの一般シーケンス番号をSL_listに追加する。
以下、N回目のパケット欠損検出処理におけるパケット欠損検出処理の動作について図14、図16を参照して詳細に説明する。
この場合、FSN=8であり、NcurにはN回目のNcur+Nint=8+8=16が既に設定されていることを前提とする。
まず、N回目のパケット欠損検出処理において、パケット欠損検出手段912は、受信バッファのFSN=8に対応する一般シーケンス番号を有するパケットのポインタをPに設定する(ステップS1402)。
次に、パケット欠損検出手段912は、受信バッファのポインタPに格納されているパケットの優先シーケンス番号=4をMPSNに設定する(ステップS1403)。この結果、MPSN=4となる。
次に、Lossに初期値として0を設定し、Iに初期値として0を設定し、SN_listに初期値として0を設定する(ステップS1404)。
次に、P<Ncur=16の範囲内で以下の処理を実行する(ステップS1405)。
まずFSN+IとポインタPに格納されている一般シーケンス番号を比較する(ステップS1406)。FSN+I=8+0=8でポインタPに格納されている一般シーケンス番号=8であるから、比較の結果、「FSN+I=ポインタPに格納されている一般シーケンス番号」となり、ステップS1407へ分岐し、ポインタPに格納されているパケットの優先シーケンス番号=4をMPSNに設定し(ステップS1407)、さらにIを1つインクリメントし(ステップS1408)、さらにポインタPも1つインクリメントすることで次のパケットのポインタを設定する(ステップS1410)。この結果、I=1、MPSN=4となり、ポインタPに格納されている一般シーケンス番号は9となる。
次に、ループに戻り、再び、FSN+IとポインタPに格納されている一般シーケンス番号を比較する(ステップS1406)。FSN+I=8+1=9でポインタPに格納されている一般シーケンス番号=9であるから、比較の結果、「FSN+I=ポインタPに格納されている一般シーケンス番号」となり、ステップS1407へ分岐し、ポインタPに格納されているパケットの優先シーケンス番号=4をMPSNに設定し(ステップS1407)、さらにIを1つインクリメントし(ステップS1408)、さらにポインタPも1つインクリメントすることで次のパケットのポインタを設定する(ステップS1410)。この結果、I=2、MPSN=4となり、ポインタPに格納されている一般シーケンス番号は10となる。
次に、ループに戻り、再び、FSN+IとポインタPに格納されている一般シーケンス番号を比較する(ステップS1406)。FSN+I=8+2=10でポインタPに格納されている一般シーケンス番号=10であるから、比較の結果、「FSN+I=ポインタPに格納されている一般シーケンス番号」となり、ステップS1407へ分岐し、ポインタPに格納されているパケットの優先シーケンス番号=4をMPSNに設定し(ステップS1407)、さらにIを1つインクリメントし(ステップS1408)、さらにポインタPも1つインクリメントすることで次のパケットのポインタを設定する(ステップS1410)。この結果、I=3、MPSN=5となり、ポインタPに格納されている一般シーケンス番号は12となる。
次に、ループに戻り、再び、FSN+IとポインタPに格納されている一般シーケンス番号を比較する(ステップS1406)。FSN+I=8+3=11で、ポインタPに格納されている一般シーケンス番号=12であるから、比較の結果、「FSN+I≠ポインタPに格納されている一般シーケンス番号」となり、ステップS1409へ分岐し、ステップS1409では、比較の結果、「FSN+1<ポインタPに格納されている一般シーケンス番号」となり、ステップS1411へ分岐する。ステップS1411では、MPSNとポインタPに格納されているパケットの優先シーケンス番号を比較する。MPSN=5で、ポインタPに格納されているパケットの優先シーケンス番号=7であるから、比較の結果、「MPSN<ポインタPに格納されているパケットの優先シーケンス番号」となり、ステップS1414へ分岐する。ステップS1414では、SN_listにFSN+I=8+3=11を追加する。この結果、SN_listの値は空白から「11」に切り替わる。次に、Iを1つインクリメントし、Lossも1つインクリメントする(ステップS1415)。この結果、I=4となり、Loss=1となる。
次に、ループに戻り、再び、FSN+IとポインタPに格納されている一般シーケンス番号を比較する(ステップS1406)。FSN+I=8+4=12でポインタPに格納されている一般シーケンス番号=12であるから、比較の結果、「FSN+I=ポインタPに格納されている一般シーケンス番号」となり、ステップS1407へ分岐し、ポインタPに格納されているパケットの優先シーケンス番号=7をMPSNに設定し(ステップS1407)、さらにIを1つインクリメントし(ステップS1408)、さらにポインタPも1つインクリメントすることで次のパケットのポインタを設定する(ステップS1410)。この結果、I=5、MPSN=7となり、ポインタPに格納されている一般シーケンス番号は15となる。
次に、ループに戻り、再び、FSN+IとポインタPに格納されている一般シーケンス番号を比較する(ステップS1406)。FSN+I=8+5=13で、ポインタPに格納されている一般シーケンス番号=15であるから、比較の結果、「FSN+I≠ポインタPに格納されている一般シーケンス番号」となり、ステップS1409へ分岐し、ステップS1409では、比較の結果、「FSN+1<ポインタPに格納されている一般シーケンス番号」となり、ステップS1411へ分岐する。ステップS1411では、MPSNとポインタPに格納されているパケットの優先シーケンス番号を比較する。MPSN=7で、ポインタPに格納されているパケットの優先シーケンス番号=7であるから、比較の結果、「MPSN=ポインタPに格納されているパケットの優先シーケンス番号」となり、ステップS1412へ分岐する。ステップS1412では、ポインタPに格納されているパケットの一般シーケンス番号−FSN=15−8=7をIに設定し(ステップS1412)、さらに、LossにポインタPに格納されているパケットの一般シーケンス番号−(FSN+I)=15−13=2を設定する(ステップS1413)。この結果、I=7となり、Loss=2となる。
なお、一般シーケンス番号13、14のパケットはSN_listには追加されない。
次に、ループに戻り、再び、FSN+IとポインタPに格納されている一般シーケンス番号を比較する(ステップS1406)。FSN+I=8+7=15で、ポインタPに格納されている一般シーケンス番号=15であるから、比較の結果、「FSN+I=ポインタPに格納されている一般シーケンス番号」となり、ステップS1407へ分岐し、ポインタPに格納されているパケットの優先シーケンス番号=7をMPSNに設定し(ステップS1407)、さらにIを1つインクリメントし(ステップS1408)、さらにポインタPも1つインクリメントすることで次のパケットのポインタを設定する(ステップS1410)。この結果、I=8、MPSN=7となり、ポインタPに格納されている一般シーケンス番号は16となる。
従って、ループの条件Ncur>Pを満足しないので、ループから抜け出し、FSNにFSN+I=8+8=16を設定する(ステップS1417)。
以上より、SN_listの値は「11」であるから、パケット欠損検出手段912は、優先シーケンス番号「11」のパケットが欠損したことを検出する。
N+1回目の動作も同様である。
以下、N+1回目のパケット欠損検出処理におけるパケット欠損検出処理の動作について図14、図16を参照して詳細に説明する。
この場合、FSN=16であり、NcurにはN回目のNcur+Nint=16+8=24が既に設定されていることを前提とする。
まず、N+1回目のパケット欠損検出処理において、パケット欠損検出手段912は、受信バッファのFSN=16に対応する一般シーケンス番号を有する受信パケットのポインタをPに設定する(ステップS1402)。
次に、パケット欠損検出手段912は、受信バッファのポインタPに格納されているパケットの優先シーケンス番号=8をMPSNに設定する(ステップS1403)。この結果、MPSN=8となる。
次に、Lossに初期値として0を設定し、Iに初期値として0を設定し、SN_listに初期値として0を設定する(ステップS1404)。
次に、P<Ncur=24の範囲内で以下の処理を実行する(ステップS1405)。
まずFSN+IとポインタPに格納されている一般シーケンス番号を比較する(ステップS1406)。FSN+I=16+0=16でポインタPに格納されている一般シーケンス番号=16であるから、比較の結果、「FSN+I=ポインタPに格納されている一般シーケンス番号」となり、ステップS1407へ分岐し、ポインタPに格納されているパケットの優先シーケンス番号=8をMPSNに設定し(ステップS1407)、さらにIを1つインクリメントし(ステップS1408)、さらにポインタPも1つインクリメントすることで次のパケットのポインタを設定する(ステップS1410)。この結果、I=1、MPSN=8となり、ポインタPに格納されている一般シーケンス番号は18となる。
次に、ループに戻り、再び、FSN+IとポインタPに格納されている一般シーケンス番号を比較する(ステップS1406)。FSN+I=16+1=17で、ポインタPに格納されている一般シーケンス番号=18であるから、比較の結果、「FSN+I≠ポインタPに格納されている一般シーケンス番号」となり、ステップS1409へ分岐し、ステップS1409では、比較の結果、「FSN+1<ポインタPに格納されている一般シーケンス番号」となり、ステップS1411へ分岐する。ステップS1411では、MPSNとポインタPに格納されているパケットの優先シーケンス番号を比較する。MPSN=8で、ポインタPに格納されているパケットの優先シーケンス番号=8であるから、比較の結果、「MPSN=ポインタPに格納されているパケットの優先シーケンス番号」となり、ステップS1412へ分岐する。ステップS1412では、ポインタPに格納されているパケットの一般シーケンス番号−FSN=18−16=2をIに設定し(ステップS1412)、さらに、LossにポインタPに格納されているパケットの一般シーケンス番号−(FSN+I)=18−17=1を設定する(ステップS1413)。この結果、I=2となり、Loss=1となる。なお、一般シーケンス番号17のパケットはSN_listには追加されない。
次に、ループに戻り、再び、FSN+IとポインタPに格納されている一般シーケンス番号を比較する(ステップS1406)。FSN+I=16+2=18でポインタPに格納されている一般シーケンス番号=18であるから、比較の結果、「FSN+I=ポインタPに格納されている一般シーケンス番号」となり、ステップS1407へ分岐し、ポインタPに格納されているパケットの優先シーケンス番号=8をMPSNに設定し(ステップS1407)、さらにIを1つインクリメントし(ステップS1408)、さらにポインタPも1つインクリメントすることで次のパケットのポインタを設定する(ステップS1410)。この結果、I=3、MPSN=8となり、ポインタPに格納されている一般シーケンス番号は19となる。
次に、ループに戻り、再び、FSN+IとポインタPに格納されている一般シーケンス番号を比較する(ステップS1406)。FSN+I=16+3=19でポインタPに格納されている一般シーケンス番号=19であるから、比較の結果、「FSN+I=ポインタPに格納されている一般シーケンス番号」となり、ステップS1407へ分岐し、ポインタPに格納されているパケットの優先シーケンス番号=9をMPSNに設定し(ステップS1407)、さらにIを1つインクリメントし(ステップS1408)、さらにポインタPも1つインクリメントすることで次のパケットのポインタを設定する(ステップS1410)。この結果、I=4、MPSN=8となり、ポインタPに格納されている一般シーケンス番号は22となる。
次に、ループに戻り、再び、FSN+IとポインタPに格納されている一般シーケンス番号を比較する(ステップS1406)。FSN+I=16+4=20で、ポインタPに格納されている一般シーケンス番号=22であるから、比較の結果、「FSN+I≠ポインタPに格納されている一般シーケンス番号」となり、ステップS1409へ分岐し、ステップS1409では、比較の結果、「FSN+1<ポインタPに格納されている一般シーケンス番号」となり、ステップS1411へ分岐する。ステップS1411では、MPSNとポインタPに格納されているパケットの優先シーケンス番号を比較する。MPSN=8で、ポインタPに格納されているパケットの優先シーケンス番号=10であるから、比較の結果、「MPSN<ポインタPに格納されているパケットの優先シーケンス番号」となり、ステップS1414へ分岐する。ステップS1414では、SN_listにFSN+I=16+4=20を追加する。この結果、SN_listの値は空白から「20」に切り替わる。次に、Iを1つインクリメントし、Lossも1つインクリメントする(ステップS1415)。この結果、I=5となり、Loss=2となる。
次に、ループに戻り、再び、FSN+IとポインタPに格納されている一般シーケンス番号を比較する(ステップS1406)。FSN+I=16+5=21で、ポインタPに格納されている一般シーケンス番号=22であるから、比較の結果、「FSN+I≠ポインタPに格納されている一般シーケンス番号」となり、ステップS1409へ分岐し、ステップS1409では、比較の結果、「FSN+1<ポインタPに格納されている一般シーケンス番号」となり、ステップS1411へ分岐する。ステップS1411では、MPSNとポインタPに格納されているパケットの優先シーケンス番号を比較する。MPSN=8で、ポインタPに格納されているパケットの優先シーケンス番号=10であるから、比較の結果、「MPSN<ポインタPに格納されているパケットの優先シーケンス番号」となり、ステップS1414へ分岐する。ステップS1414では、SN_listにFSN+I=16+5=21を追加する。この結果、SN_listの値は「20」から「20、21」に切り替わる。次に、Iを1つインクリメントし、Lossも1つインクリメントする(ステップS1415)。この結果、I=6となり、Loss=3となる。
次に、ループに戻り、再び、FSN+IとポインタPに格納されている一般シーケンス番号を比較する(ステップS1406)。FSN+I=16+6=22でポインタPに格納されている一般シーケンス番号=22であるから、比較の結果、「FSN+I=ポインタPに格納されている一般シーケンス番号」となり、ステップS1407へ分岐し、ポインタPに格納されているパケットの優先シーケンス番号=10をMPSNに設定し(ステップS1407)、さらにIを1つインクリメントし(ステップS1408)、さらにポインタPも1つインクリメントすることで次のパケットのポインタを設定する(ステップS1410)。この結果、I=7、MPSN=10となり、ポインタPに格納されている一般シーケンス番号は23となる。
次に、ループに戻り、再び、FSN+IとポインタPに格納されている一般シーケンス番号を比較する(ステップS1406)。FSN+I=16+7=23でポインタPに格納されている一般シーケンス番号=23であるから、比較の結果、「FSN+I=ポインタPに格納されている一般シーケンス番号」となり、ステップS1407へ分岐し、ポインタPに格納されているパケットの優先シーケンス番号=11をMPSNに設定し(ステップS1407)、さらにIを1つインクリメントし(ステップS1408)、さらにポインタPも1つインクリメントすることで次のパケットのポインタを設定する(ステップS1410)。この結果、I=8、MPSN=11となり、ポインタPに格納されている一般シーケンス番号は24となる。
従って、ループの条件Ncur>Pを満足しないので、ループから抜け出し、FSNにFSN+I=16+8=24を設定する(ステップS1417)。
以上より、SN_listの値は「20、21」であるから、パケット欠損検出手段912は、優先シーケンス番号20、21のパケットが欠損したことを検出する。
パケット欠損検出処理(ステップ1108)実行後、Loss>0の場合、パケット欠損が検出されたことになるので、再送シーケンス番号追加手段913は、再送リスト管理手段915へSN_listに登録されている欠損パケットの一般シーケンス番号を追加するよう命令を発する(ステップS1109)。
追加命令を受理した再送リスト管理手段915は、図13示すようにSN_listの一般シーケンス番号を再送リストへ追加する(ステップS1302〜S1307)。ただし、2重登録は行わない。
次に、図11に戻って再送要求送信手段914は、再送リストの一般シーケンス番号の再送要求を送信装置901に対して行う(ステップS1110,S1111)。この場合、再送リストの一般シーケンス番号と、その時点で要求者(アプリケーション)903に提供したパケットの最大(最新)の一般シーケンス番号を、1つの再送要求パケットに乗せ(ステップS1110)、この再送要求パケットを送信装置901へ送信する(ステップS1111)。
次に、第12図の例2のフローチャートに示すように、再送すべき優先度の高いパケットが欠損した時点で再送要求を行う例を説明する。
図12において、ステップS1201〜S1203の動作は、図11のステップ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,S1210)。この場合、再送リストの一般シーケンス番号と、その時点で要求者(アプリケーション)903に提供したパケットの最大(最新)の一般シーケンス番号を、1つの再送要求パケットに乗せ(ステップS1209)、この再送要求パケットを送信装置901へ送信する(ステップS1210)。
以下の説明は、図11および図12に共通のものである。
送信装置901の再送要求受信手段906は、第10図に示すように再送要求パケットを受信し(ステップS1006)、再送要求パケットから再送要求された一般シーケンス番号と要求者(アプリケーション)903に提供した最大(最新)一般シーケンス番号を識別する(ステップS1007,S1008)。
次に、再送用バッファ削除手段907は、要求者(アプリケーション)903に提供した再送用バッファ内の最大(最新)一般シーケンス番号よりも小さい一般シーケンス番号のパケットはこれ以上再送要求する必要がないので、これらのパケットを削除する(ステップ1009)。
次に、再送パケット検出手段908は、再送用バッファを検索して再送要求された一般シーケンス番号と等しい一般シーケンス番号を検出する(ステップ1010)。この一般シーケンス番号は再送するべき優先度の高いパケットの一般シーケンス番号であり、再送シーケンス番号と呼ぶ。
次に、再送手段909は、再送シーケンス番号のパケットを受信装置902へ再転送する(ステップ1011)。
次に、要求者(アプリケーション)903は、受信装置902が受信したパケットのペイロードを要求する。受信装置902のパケット提供手段916は、要求者(アプリケーション)903から、パケットのペイロードと、そのペイロードを提供するまでの待ち時間が要求されると、その待ち時間までに前回提供したパケットの次のパケット(一般シーケンス番号Tnextのパケット)のペイロードを提供するが、そのTnextのパケットが欠損したり、再送もされなかったりすることで、待ち時間内にTnextのパケットのペイロードが提供できないときは、パケット提供手段916はTnextのパケットが欠損したことを要求者(アプリケーション)903に通知する。
第15図に示すようにパケット提供手段916は、要求者(アプリケーション)103からパケットのペイロードと、要求からペイロード提供迄の許容待ち時間が要求されると(ステップS1502)、その現在時刻をTstartにセットして(ステップS1503)、一般シーケンス番号Tnextのパケットが受信バッファにあるか否かを調べる(ステップS1504)。受信バッファにTnextのパケットがあった場合、このTnextのパケットのペイロードを提供する(ステップS1505)。
受信バッファにTnextのパケットがなかった場合、現在時刻が待ち時間を超えていないかタイムアウトのチェックを行い(ステップS1506)、タイムアウトの場合は、Tnextのパケットが欠損したことを要求者(アプリケーション)903に通知する(ステップS1508)。タイムアウトでない場合は、一般シーケンス番号Tnextが再送リストにあるか否かを調べる(ステップS1507)。
Tnextが再送リストにない場合は、送信装置901からは再送要求を行っても再送されないことを意味するので、Tnextのパケットが欠損したことを要求者(アプリケーション)903に通知する(ステップ1508)。
Tnextが再送リストにある場合は、再送要求を行ったが、再送要求パケットが届かなかったか、再送パケットが届かなかったことを意味する。
このとき、FSNにTnextを設定し(ステップ1510)、Ncurに今回受信した最新のパケットの一般シーケンス番号を設定し(ステップ1511)、Tcurに今回受信した最新のパケットのタイムスタンプを設定し(ステップ1512)、パケット欠損検出処理(ステップS1513)、再送シーケンス番号追加処理(ステップS1514)、再送要求送信処理(ステップS1515、S1516)を用いて、再度Tnextの再送要求を行うと共に、最新のパケット欠損も検出し、同時に再送要求を行う。
ただし、前記のパケット欠損検出方法の例2のように、再送すべき優先度の高いパケットが欠損する毎に再送要求をおこなっている場合で、パケット提供手段時にTnextのパケットが受信バッファになく、再送リストにTnextがあるときは、パケット欠損検出手段を行わず、即座にTnextのパケットの再送要求を行う。
待ち時間が0をセットされたときは、受信バッファにTnextがあるか否かだけを調べ、もしなかったらTnextのパケットの再送要求は行わず、すぐにTnextのパケットが欠損したことを要求者(アプリケーション)903に通知する。逆に待ち時間が無限時間をセットされたときは、受信バッファにTnextのパケットがない場合、何度も再送要求を行い、Tnextのパケットが再送されるを待ち続ける。
ただし、再送リストにTnextがない場合は、再送要求を行わず、Tnextのパケットが欠損したことを要求者(アプリケーション)903に通知する。再送要求送信手段が再送要求パケットを送信したあと、再送要求を行う間隔Trだけ待ち(ステップS1518)、再び受信バッファにTnextのパケットがあるか否かを調べる。Trは再送要求を行う毎に変更してもよい。
なお、ステップS1517、S1518、S1519では、待ち時間をスリープ時間によって作成している。
簡単な例を用いて説明する。今、Twait=5秒、Tr=2秒とする。この場合、5秒間のうちに2秒間隔で受信バッファのチェックおよびパケット欠損検出処理を行うことになる。今、パケット提供処理が0秒の時に開始されたとする。即ちTstart=0である。従って、現在時刻は0秒から1秒、2秒、3秒……と時を刻んでいく。現在時刻が3秒になるまではステップS1517でNoと判定され、ステップS1518を実行する。ステップS1518では、2秒だけスリープ(遅延)する。従って、2秒後には再び受信バッファのチェックおよびパケット欠損検出処理を行う。これによって、許される時間内、即ち待ち時間に定期的に受信バッファのチェックとパケット欠損検出処理が行える。しかし、現在時刻が3秒を過ぎると、さらに2秒(=Tr)のスリープでは待ち時間Twaitを超えてしまう。従って、この時は、ステップS1519でその差分のみ(例えば現在時刻が4秒の時、差分はTwait−現在時刻+Tstart=5−4=1秒)の時間をスリープ(遅延)させているのである。このときのスリープ終了後は、受信バッファのチェックも行うが、ステップS1506でタイムアウトと判定されるから、パケット欠損検出処理までは行わない。すぐに、次の一般シーケンス番号を提供して(ステップS1505)、待ち時間内にパケットデータを提供することができる。
この実施の形態2によれば、実施の形態1による効果に加えて、パケットに一般シーケンス番号と優先シーケンス番号を設けることにより、優先度の高い重要なパケットのみを再送することができるので、再送処理によるネットワーク負荷の浪費を最小限に抑えることができ、ネットワークの輻輳時でも優先度の高いパケットの伝送容量を確保することができるという効果を奏する。
実施の形態3.
実施の形態3の構成は、第17図に示すように、実施の形態2の第9図の構成の送信装置901に、あるパケットpの近辺n個のパケットにおいて重要なパケットおよび欠損時には再送した方が良いと判断できるパケットの情報をm個毎(m≦n)にパケットpに付加し、nやmはネットワークの輻輳状況から決定する優先度情報付加手段1705を追加した構成となる。また、受信装置1702の受信手段1711とパケット欠損検出手段1713とパケット提供手段1717以外の手段も実施の形態2と同様の処理を行う手段である。
第18図は優先度情報付加手段1705によって優先度情報を付加されたパケットの例である。
第18図の例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のシーケンス番号が16のとき、Pの優先度情報の先頭ビットのシーケンス番号は
(Pのシーケンス番号)−n+1=16−8+1=9となる。
従って、優先度情報1804において、
左から1ビット目は
(Pのシーケンス番号)−n+k=8−8+1=9、
左から2ビット目は
(Pのシーケンス番号)−n+k=8−8+2=10、
左から3ビット目は
(Pのシーケンス番号)−n+k=8−8+3=11、
…………………………………………………………、
左から8ビット目は
(Pのシーケンス番号)−n+k=4−8+8=16番のシーケンス番号のパケットの優先度を表す。
左からkビット目が1のとき、(Pのシーケンス番号)−n+k番のパケットは再送すべき優先度の高いパケットということを表し、0ならば再送しない優先度の低いパケットを表す。例えば、シーケンス番号8のパケットに付加された優先度情報1804は、シーケンス番号1から8のパケットのうち、再送すべき優先度の高いパケットはシーケンス番号1、4、5、8のパケットなので、左から10011001となる。
第18図の例2は(1802)、同じくn=8、m=4としたときで、パケットPのPを含めた後n個分の優先度情報をnビットで表現してm個毎にnビットの優先度情報を付加した例で、kビット目の値は、シーケンス番号が、(Pのシーケンス番号)+k−1番のパケットの優先度を表す。
上記の例では、n=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=11、
…………………………………………………………、
左から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の受信手段と同様な処理を行うが、優先度情報が付加されたパケットの受信後には優先度情報テーブルの更新を行う処理を追加する。
第19図は実施の形態3の受信装置のパケット欠損検出手段のフロー例を説明するフローチャートで、第20図はパケット欠損とパケット欠損検出手段の例を示したものである。
パケット欠損検出手段1713がパケット欠損検出処理を行う間隔は、前回パケット欠損検出処理を行った最後のパケットのシーケンス番号やタイムスタンプと受信したパケットのシーケンス番号やタイムスタンプの差から決定する。あるいは、パケットが欠損する毎でもよい。パケット欠損検出手段がパケット欠損処理を行うシーケンス番号の間隔をNint、タイムスタンプの間隔をTint、前回パケット欠損検出手段を行った最後のパケットのシーケンス番号をNeur、前回パケット欠損検出手段を行った
パケット欠損検出手段1713がパケット欠損検出処理を行う間隔は、例えば、前回パケット欠損検出処理を行った最後のパケットのシーケンス番号やタイムスタンプと今回受信したパケットのシーケンス番号やタイムスタンプの差から決定する。あるいは、パケットが欠損する毎でもよい。パケット欠損検出手段がパケット欠損処理を行うシーケンス番号の間隔をNint、タイムスタンプの間隔をTint、パケット欠損検出手段が前回パケット欠損検出処理を行った最後のパケットのシーケンス番号をNcur、パケット欠損検出手段が前回パケット欠損検出処理を行った最後のパケットのタイムスタンプをTcurとすると、受信手段が今回受信したパケットのシーケンス番号がNcur+Nintと等しいかあるいはそれよりよりも大きいか、あるいは受信手段が今回受信したパケットのタイムスタンプがTcur+Tintと等しいかあるいはそれよりよりも大きければ、NcurとTcurに今回受信したパケットのシーケンス番号とタイムスタンプをそれぞれ代入した上で、パケット欠損検出処理(ステップS306)を行う。これにより、NcurとTcurの値は今回の新たなパケットの最後のシーケンス番号とタイムスタンプとなる。なお、NintやTintは、固定値でもよいし、ネットワークの輻輳状況から動的に決定してもよい。
パケット欠損検出手段1713は、シーケンス番号順にソートされた受信バッファにおいて、前回パケット欠損検出処理を行った最後のパケットの次のパケットからシーケンス番号Ncur(今回の最後のパケットのシーケンス番号)のパケットまでの範囲(ただし、Ncurのパケットを除く)、あるいはタイムスタンプTcur(今回の最後のパケットのタイムスタンプ)のパケットまでの範囲(ただし、Tcurのパケットを除く)で、シーケンス番号の整合性と優先度情報をチェックして再送すべき優先度の高いパケットの欠損を検出する。
第19図にパケット欠損検出手段1713によるパケット欠損検出処理の詳細フローを示す。第19図において、パケット欠損検出手段1713は、はじめに受信バッファ中でシーケンス番号がFSNと等しくなるパケットのポインタをPに設定する(ステップS1902)。ここで、FSNは、前回パケット欠損検出を行った最後のパケットの次のパケットのシーケンス番号である。欠損したパケットの数をLoss、FSNからの距離をI、再送すべき優先度の高い欠損したパケットのシーケンス番号のリストをSN_listとし、LossおよびFSNに初期値として0を設定し、SN_listに初期値として空白(空リスト)を設定する(ステップS1903)。
次に、パケット欠損検出処理のステップ1904に示す上記範囲内[前回パケット欠損検出処理を行った最後のパケットの次のパケットからシーケンス番号Ncur(今回の最後のパケットのシーケンス番号)のパケットまでの範囲(ただし、Ncurのパケットを除く)、あるいはタイムスタンプTcur(今回の最後のパケットのタイムスタンプ)のパケットまでの範囲(ただし、Tcurのパケットを除く)]で、受信バッファのポインタPに格納されているパケットのシーケンス番号とFSN+Iを比較する(ステップS1905)。ステップS1905において、もしFSN+IとポインタPに格納されているパケットのシーケンス番号が等しければ、シーケンス番号FSN+I番のパケットは欠損せず受信されていることになる。そこで、Iをインクリメントし(ステップS1906)、さらにPに次のパケットのポインタを設定する(ステップS1908)。
ステップS1905において、もしFSN+IとポインタPに格納されているパケットのシーケンス番号が等しくなければ、ステップS1907へ分岐する。FSN+IがポインタPに格納されているパケットのシーケンス番号より小さければ(ステップS1907)、シーケンス番号FSN+I番のパケットが欠損したことになり、ステップS1909へ分岐する。ステップS1909では、優先情報テーブル2001のシーケンス番号がFSN+Iのパケットの優先度情報を再送するべきか否かを判断する(ステップS1909)。優先度情報からシーケンス番号FSN+Iのパケットが再送すべき優先度の高いパケットと判断したとき(ステップ1909)、シーケンス番号FSN+Iの再送要求を行うためにSN_listにFSN+Iを追加し(ステップ1910)、IとLossをインクリメントする(1911)。もし、優先度情報からシーケンス番号FSN+Iのパケットが再送を必要としない優先度の低いパケットと判断したとき(ステップ1909)、再送要求は行わないので、SN_listには欠損したFSN+Iを追加しないで、IとLossをインクリメントする(ステップS1911)。
ステップS1904で示された範囲すなわち、[前回パケット欠損検出処理を行った最後のパケットの次のパケットからシーケンス番号Ncur(今回の最後のパケットのシーケンス番号)のパケットまでの範囲(ただし、Ncurのパケットを除く)、あるいはタイムスタンプTcur(今回の最後のパケットのタイムスタンプ)のパケットまでの範囲(ただし、Tcurのパケットを除く)]で、このシーケンス番号の比較が終了したら(ステップS1912)、FSNにIを加えて(ステップ1913)、FSNを次回のパケット欠損検出処理の開始シーケンス番号とする(ステップS511)。このとき、SN_listにある番号が、前記範囲内の欠損したパケットのシーケンス番号となり、Lossが欠損したパケットの数となる。
次に、パケット欠損が発生している受信バッファとパケット欠損検出処理実行の結果の例を第20図に示す。第20図において、2001はシーケンス番号とこのシーケンス番号のパケットの重要度に応じて割り当てられた優先度情報を対応させた優先度情報テーブルを示し、2002は、Nint=8の場合の受信バッファを示し、2003は、N回目のパケット欠損検出処理時のFSN、Ncur、I、Loss、Sn_listの状態を表し、2004は、N+1回目のパケット欠損検出処理時のFSN、Ncur、I、Loss、Sn_listの状態を表す。
第20図のパケット欠損の例では、受信バッファ2002内のパケットのシーケンス番号が、…、8、9、10、12、15、16、18、19、22、23、24、25、26、…となっており、優先度情報が優先度情報テーブル2001のようになっており、Nint=8となっており、N回目のパケット欠損検出処理実行時(ステップ2003)に、FSN=8、Ncur=16となっていた場合、まずシーケンス番号8から15までの範囲で抜けている番号を検出する。優先度情報は1が再送すべき優先度の高いパケットを意味し、0が再送しない優先度の低いパケットを意味する。
この例では、11、13、14の3つのシーケンス番号が抜けており、これらの3つのパケットが欠損したことになる。シーケンス番号11のパケットの優先度情報は1なので、このパケットは再送すべき優先度の高いパケットということになり、11はSL_listに追加するが、シーケンス番号13と14のパケットの優先度情報は0であるので、これらのパケットは再送しない優先度の低いパケットということになり、再送要求を行わないのでSN_listには追加しない。また、次のN+1回目のパケット欠損検出手段では(ステップ2004)、FSNはN回目のFSN+I=8+8=16となり、NcurはN回目のNcur+Nint=16+8=24となる。同様にシーケンス番号16から24までの範囲で抜けている番号を検出する。この例では、17、20、21の3つの一般シーケンス番号が抜けており、これらの3つのパケットが欠損したことになる。
シーケンス番号21のパケットの優先度情報は1なので、このパケットは再送すべき優先度の高いパケットということになり、21はSL_listに追加するが、シーケンス番号17と20のパケットの優先度情報は0であるので、これらのパケットは再送しない優先度の低いパケットということになり、再送要求を行わないのでSN_listには追加しない。
パケット欠損検出手段後、Loss>0の場合、パケット欠損が検出されたことになるので、再送シーケンス番号追加手段によって、再送要求リスト管理手段へSN_listのシーケンス番号を追加するよう命令を発する。そして、パケット提供手段は、実施の形態2と同様の手段であるが、最後に提供したパケットのシーケンス番号より小さいシーケンス番号の優先度情報を優先度情報テーブルから削除する。
この実施の形態3によれば、実施の形態1および2による効果に加えて、優先度情報付加手段を設けることにより、すべて送信パケットに優先シーケンス番号を設けてしまうよりも総伝送量が少なくなり、反面、受信装置で欠損してしまったパケットの優先度を受信装置でより正確に認識することがでる。また、請求項5に記載した再送要求応答手段による再送要求応答パケットも必要なくなり、ネットワークの浪費と送信装置の再送要求応答負荷を削減することができる。また、優先度情報の長さと頻度を調整することで、輻輳中のネットワークでも受信装置側のパケット欠損による優先度情報の欠落が起こりにくくなるという効果を奏する。
産業上の利用可能性
以上のように、本発明にかかるパケットの再送システムは、ビデオや音声などのリアルタイム性の高いデータの転送において、リアルタイム性を重視しながらより信頼性の高い通信を行うのに適している。
【図面の簡単な説明】
第1図は実施の形態1に係る再送システムの構成図、
第2図は、実施の形態1における送信装置のフローチャート、
第3図は、実施の形態1における受信装置のパケット受信のフローチャート、
第4図は、実施の形態1における受信装置の再送要求リスト管理処理のフローチャート、
第5図は、実施の形態1における受信装置のパケット欠損検出処理のフローチャート、
第6図は、実施の形態1における受信装置の再送要求応答受信のフローチャート、
第7図は、実施の形態1における受信装置のパケット提供のフローチャート、
第8図は、実施の形態1におけるパケット欠損とパケット欠損検出処理の例
第9図は、実施の形態2に係る再送システム並びにパケット転送システムの構成図、
第10図は、実施の形態2における送信装置のフローチャート、
第11図は、実施の形態2における受信装置のパケット受信の例1のフローチャート、
第12図は、実施の形態2における受信装置のパケット受信の例2のフローチャート、
第13図は、実施の形態2における受信装置の再送要求リスト管理処理のフローチャート、
第14図は、実施の形態2における受信装置のパケット欠損検出処理のフローチャート、
第15図は、実施の形態2における受信装置のパケット提供のフローチャート、
第16図は、実施の形態2におけるパケット欠損とパケット欠損検出処理の例
第17図は、実施の形態3に係る再送システム並びにパケット転送システムの構成図、
第18図は、優先度情報を付加されたパケットの例
第19図は、実施の形態3における受信装置のパケット欠損検出手段のフローチャート、
第20図は、実施の形態3におけるパケット欠損とパケット欠損検出手段の例である。
Claims (44)
- シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送システムにおいて、
受信装置は、
送信装置から受信したパケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信手段と、
前記パケットの欠損を検出するパケット欠損検出手段と、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように追加命令を発する再送シーケンス番号追加手段と、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理手段と、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信手段へ送信する再送要求送信手段と、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供手段と、
を備え、
前記受信装置は、
再送されるパケットのシーケンス番号を乗せた再送要求応答パケットを前記送信装置から受信する再送要求応答受信手段と、
前記再送要求応答パケットから前記シーケンス番号を取り出し、再送要求リストから前記シーケンス番号と同じシーケンス番号を削除するように命令する削除命令を再送要求リスト管理手段へ出す再送シーケンス削除手段と、
前記再送要求リストの状態を、再送要求リストに残っているシーケンス番号のパケットの再送要求を行ったが前記送信装置からは今後再送されてこないことを意味する”ACTIVE”状態に設定する命令を前記再送要求リスト管理手段へ出す再送要求応答通知手段と
を備えたことを特徴とするパケット再送システム。 - シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送システムにおいて、
送信装置は、
受信装置へ送信したパケットを蓄積しておく再送用バッファと、
前記受信装置から受信した再送要求パケットからシーケンス番号と要求アプリケーションへ提供した最大(最新)シーケンス番号を識別して通知する再送要求受信手段と、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調べる再送パケット検出手段と、
該再送パケット検出手段が存在を検出したすべてのパケットを前記受信装置へ再送する再送手段と、
を備え、
前記受信装置は、
前記送信装置から受信した前記パケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信手段と、
前記パケットの欠損を検出するパケット欠損検出手段と、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように命令する再送シーケンス番号追加手段と、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理手段と、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信手段へ送信する再送要求送信手段と、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供手段と、
を備え、
前記受信装置は、
再送されるパケットのシーケンス番号を乗せた再送要求応答パケットを前記送信装置から受信する再送要求応答受信手段と、
前記再送要求応答パケットから前記シーケンス番号を取り出し、再送要求リストから前記シーケンス番号と同じシーケンス番号を削除するように命令する削除命令を再送要求リスト管理手段へ出す再送シーケンス削除手段と、
前記再送要求リストの状態を、再送要求リストに残っているシーケンス番号のパケットの再送要求を行ったが前記送信装置からは今後再送されてこないことを意味する”ACTIVE”状態に設定する命令を前記再送要求リスト管理手段へ出す再送要求応答通知手段と
を備えたことを特徴とするパケット再送システム。 - 送信装置は、
特定のパケットまたは欠損時に再送するべきパケットを再送用バッファに格納する再送パケット格納手段と、
前記特定のパケットまたは欠損時に再送するべきパケットの再送信を行う再送手段と、を備え、
受信装置は、
前記特定のパケットまたは欠損時に再送するべきパケットを受信後、シーケンス番号順にソートしながら前記特定のパケットまたは欠損時に再送するべきパケットを受信バッファに格納する受信手段と、
を備えたことを特徴とする請求の範囲第2項記載のパケット再送システム。 - 受信装置は、
現在再送要求を行っているパケットのシーケンス番号および次の再送要求時に再送要求を行うパケットのシーケンス番号を格納する再送要求リストを生成し、シーケンス番号の追加および削除を行い、再送要求リストに格納されているシーケンス番号のパケットの状態を再送要求状態に切り替える再送要求リスト管理手段を備えたことを特徴とする請求の範囲第1項乃至第3項に記載のパケット再送システム。 - 受信装置は、
パケットの受信回数および受信時間から決定されるパケットの受信時間間隔で、受信バッファ内のパケットのシーケンス番号の不整合から欠損したパケットのシーケンス番号を検出するパケット欠損検出手段と、
該パケット欠損検出手段が欠損を検出したパケットのシーケンス番号を再送要求リストに追加する命令を再送要求リスト管理手段へ出す再送シーケンス番号追加手段と、
前記再送要求リストの状態を再送パケット受信待ちの状態を意味する”READY状態”に設定する命令を前記再送要求リスト管理手段へ出す再送要求通知手段を備えたことを特徴とする請求の範囲請求の範囲第1項乃至第3項記載のパケット再送システム。 - 受信装置は、
再送要求リストに存在する1以上の再送するべきパケットのシーケンス番号を乗せた1つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットの前記シーケンス番号を取り出して通知する再送要求受信手段と、
前記通知されたシーケンス番号のパケットが再送バッファに格納されているか否かを調べる再送パケット検出手段と、
該再送パケット検出手段が存在を検出したすべてのパケットのシーケンス番号を1つの再送要求応答パケットに乗せ、前記受信装置へ送信する再送要求応答手段と、
前記再送パケット検出手段が検出した前記パケットを前記受信装置へ再送信する再送手段と
を備えたことを特徴とする請求の範囲第2項または第3項記載のパケット再送システム。 - 受信装置は、
パケット提供手段が要求アプリケーション部に提供したパケットの最大(最新)シーケンス番号を乗せた1つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記最大シーケンス番号を取り出して通知する再送要求受信手段と、
通知された前記最大シーケンス番号より小さいシーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除手段と、
を備えたことを特徴とする請求の範囲第2項または第3項記載のパケット再送システム。 - 受信装置は、
再送要求リストに存在する1以上の再送するべきパケットのシーケンス番号と、パケット提供手段が要求アプリケーション部に提供したパケットの最大(最新)シーケンス番号を乗せた1つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記シーケンス番号と、前記最大シーケンス番号を取り出して通知する再送要求受信手段と、
前記通知されたシーケンス番号のパケットが再送用バッファ内に有るか否かを調べる再送パケット検出手段と、
前記通知された最大シーケンス番号より小さいシーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除手段と、
前記再送パケット検出手段が存在を検出したすべてのパケットのシーケンス番号を1つの再送要求応答パケットに乗せ、前記受信装置へ送信する再送要求応答手段と、
前記再送パケット検出手段が検出したパケットを前記受信装置へ再送信する再送手段と
を備えたことを特徴とする請求の範囲第2項または第3項記載のパケット再送システム。 - 受信装置は、
再送されるパケットのシーケンス番号を乗せた再送要求応答パケットを前記送信装置から受信する再送要求応答受信手段と、
前記再送要求応答パケットから前記シーケンス番号を取り出し、再送要求リストから前記シーケンス番号と同じシーケンス番号を削除するように命令する削除命令を再送要求リスト管理手段へ出す再送シーケンス削除手段と、
を備えたことを特徴とする請求の範囲第2項または第3項記載のパケット再送システム。 - 受信装置は、
受信バッファ内に格納されているパケットの中から、1つ以上のパケットのペイロード(データ)を要求アプリケーション部に提供し、前記パケットのシーケンス番号よりも小さいシーケンス番号を再送要求リストから削除し、前回に提供されたパケットのシーケンス番号(N:Nは自然数)の次のシーケンス番号(N+1)のパケットのペイロードを指定された時間内に提供し、前記指定された時間内に前記次のシーケンス番号(N+1)のパケットが受信バッファに存在しない、あるいは挿入されない場合は、提供されるべきパケットが欠損したことを前記要求アプリケーション部に通知するパケット提供手段を備えたことを特徴とする請求の範囲第1項乃至第3項に記載のパケット再送システム。 - 受信装置は、
指定時間内に提供しなければならないパケットが受信バッファにない場合、再びパケット欠損検出と再送要求送信を指定時間内に1回以上行うパケット提供手段を備えたことを特徴とする請求の範囲第7項又は第8項又は第10項に記載のパケット再送システム。 - 受信装置は、
再送要求リストの状態が、該再送要求リストに格納されているシーケンス番号のパケットの送信装置への再送要求はすでに行われているが前記送信装置からは今後再送されてこないことを意味する”ACTIVE”状態であり、要求アプリケーション部に提供するパケットのシーケンス番号が前記再送要求リストの中にある場合、再送要求を行っても再送されないと判断し、指定時間を待たずすぐに提供されるべきパケットが欠損したことを要求者に通知するパケット提供手段を備えたことを特徴とする請求の範囲第7項又は第8項又は第10項記載のパケット再送システム。 - シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送システムにおいて、
送信装置は、
受信装置へ送信したパケットを蓄積しておく再送用バッファと、
前記受信装置から受信した再送要求パケットからシーケンス番号と要求アプリケーションへ提供した最大(最新)シーケンス番号を識別して通知する再送要求受信手段と、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調べる再送パケット検出手段と、
該再送パケット検出手段が存在を検出したすべてのパケットを前記受信装置へ再送する再送手段と、
を備え、
前記受信装置は、
前記送信装置から受信した前記パケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信手段と、
前記パケットの欠損を検出するパケット欠損検出手段と、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように命令する再送シーケンス番号追加手段と、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理手段と、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信手段へ送信する再送要求送信手段と、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供手段と、
を備え、
前記パケットは、すべてのパケットに与えられる一般シーケンス番号と、特定のパケット又は欠損時に再送するべきパケットに与えられる優先シーケンス番号が付加されたパケットであり、
送信装置は、
前記特定のパケット又は欠損時に再送するべきパケットを再送用バッファに格納する再送パケット格納手段と、
前記特定のパケット又は欠損時に再送するべきパケットの再送信を行う再送手段とを備え、
受信装置は、前記特定のパケット又は欠損時に再送するべきパケットを受信後、一般シーケンス番号順にソートしながら前記特定のパケット又は欠損時に再送するべきパケットを受信バッファに格納する受信手段と、を備えたことを特徴とするパケット再送システム。 - 受信装置は、
再送を行うパケットの一般シーケンス番号を格納する再送リストを生成し、前記一般シーケンス番号の追加と削除を行う再送リスト管理手段を備えたことを特徴とする請求の範囲第13項記載パケット再送システム。 - 受信装置は、
受信手段が受信したパケットの一般シーケンス番号が再送リストにある場合、前記一般シーケンス番号を前記再送リストから削除する命令を再送リスト管理手段へ出す再送シーケンス番号削除手段と、
前記パケットの受信回数および受信時間から決定されるパケットの受信時間間隔、および優先シーケンス番号の不整合から優先度の高い特定のパケットが欠損する毎に、受信バッファ内のパケットや受信パケットの一般シーケンス番号と優先シーケンス番号から、欠損を発生した優先度の高い特定のパケットおよび欠損時に再送するべきパケットの一般シーケンス番号を検出するパケット欠損検出手段と、
該パケット欠損検出手段が欠損を検出した前記優先度の高い特定のパケットおよび欠損時に再送するべきパケットの一般シーケンス番号を再送リストに追加する命令を前記再送リスト管理手段へ出す再送シーケンス番号追加手段を備えたことを特徴とする請求の範囲第13項記載のパケット再送システム。 - 受信装置は、
再送リストに存在する1以上の一般シーケンス番号を乗せた1つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記一般シーケンス番号を取り出して通知する再送要求受信手段と、
前記通知された一般シーケンス番号のパケットが再送用バッファ内に有るか否かを調べる再送パケット検出手段と、
該再送パケット検出手段が存在を検出した一般シーケンス番号のパケットを前記受信装置へ再送信する再送手段と、
を備えたことを特徴とする請求の範囲第13項記載のパケット再送システム。 - 受信装置は、
パケット提供手段が要求アプリケーション部に提供したパケットの最大(最新)一般シーケンス番号を乗せた1つの再送要求パケットを生成し、前記再送要求パケットを送信装置に送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記最大一般シーケンス番号を取り出して通知する再送要求受信手段と、
通知された前記最大一般シーケンス番号より小さい一般シーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除手段と、
備えたことを特徴とする請求の範囲第13項記載のパケット再送システム。 - 受信装置は、
再送リストに存在する1以上の一般シーケンス番号と、パケット提供手段が要求アプリケーション部に提供したパケットの最大(最新)一般シーケンス番号を乗せた1つの再送要求パケットを生成し、前記再送要求パケットを送信装置に送信する再送要求送信手段を備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記一般シーケンス番号と、前記最大一般シーケンス番号を取り出して通知する再送要求受信手段と、
通知された前記最大一般シーケンス番号より小さい一般シーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除手段と、
前記通知された一般シーケンス番号のパケットが再送用バッファ内に有るか否かを調べる再送パケット検出手段と、
該再送パケット検出手段が存在を検出した一般シーケンス番号のパケットを前記受信装置へ再送信する再送手段と、
を備えたことを特徴とする請求の範囲第13項記載のパケット再送システム。 - 受信装置は、
受信バッファ内に格納されているパケットの中から、1つ以上のパケットのペイロード(データ)を要求アプリケーション部に提供し、前記パケットの一般シーケンス番号よりも小さい一般シーケンス番号を再送リストから削除し、前回に提供したパケットの一般シーケンス番号(N:Nは自然数)の次の一般シーケンス番号(N+1)のパケットのペイロードを指定された時間内に提供し、前記指定された時間内に前記一般シーケンス番号(N+1)のパケットが受信バッファに存在しない、又は挿入されない場合は、提供されるべきパケットが欠損したことを前記要求アプリケーション部に通知するパケット提供手段を備えたことを特徴とする請求の範囲第13項記載のパケット再送システム。 - 受信装置は、
指定時間内に提供しなければならないパケットが受信バッファに存在しない場合、再びパケット欠損検出と前記再送要求送信を指定時間内に数回行うパケット提供手段を備えたことを特徴とする請求の範囲第18項記載のパケット再送システム。 - 受信装置は、
提供するパケットの一般シーケンス番号が、再送リストの中に存在しない場合、再送要求を行わず、指定された時間を待たずすぐに提供されるべきパケットが欠損したことを要求アプリケーション部に通知するパケット提供手段を備えたことを特徴とする請求の範囲第18項記載のパケット再送システム。 - 送信装置は、
任意のパケットpの近辺n個のパケットにおいて優先度の高い特定のパケットまたは欠損時に再送するべきパケットに割り当てるべき優先度情報をm個毎(m≦n:m,nとも自然数)にパケットpに付加し、前記nおよびmの値をネットワークの輻輳状況から決定する優先度情報付加手段を備え、
受信装置は、
パケットの受信回数および受信時間から決定されるパケットの受信時間間隔、およびシーケンス番号の不整合から重要なパケットが欠損する毎に、受信バッファ内のパケットや受信パケットのシーケンス番号と、前記優先度情報から、欠損を発生した優先度の高い特定のパケットおよび欠損時に再送するべきパケットのシーケンス番号を検出するパケット欠損検出手段を備えたことを特徴とする請求の範囲第2項または第3項に記載のパケット再送システム。 - シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送方法において、
受信装置は、
送信装置から受信したパケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信ステップと、
前記パケットの欠損を検出するパケット欠損検出ステップと、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように追加命令を発する再送シーケンス番号追加ステップと、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理ステップと、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信ステップへ送信する再送要求送信ステップと、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供ステップと、
を備え、
前記受信装置は、
再送されるパケットのシーケンス番号を乗せた再送要求応答パケットを前記送信装置から受信する再送要求応答受信ステップと、
前記再送要求応答パケットから前記シーケンス番号を取り出し、再送要求リストから前記シーケンス番号と同じシーケンス番号を削除するように命令する削除命令を再送要求リスト管理ステップへ出す再送シーケンス削除ステップと、
前記再送要求リストの状態を、再送要求リストに残っているシーケンス番号のパケットの再送要求を行ったが前記送信装置からは今後再送されてこないことを意味する”ACTIVE”状態に設定する命令を前記再送要求リスト管理ステップへ出す再送要求応答通知ステップと
を備えたことを特徴とするパケット再送方法。 - シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送方法において、
送信装置は、
受信装置へ送信したパケットを蓄積しておく再送用バッファと、
前記受信装置から受信した再送要求パケットからシーケンス番号と要求アプリケーションへ提供した最大(最新)シーケンス番号を識別して通知する再送要求受信ステップと、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調べる再送パケット検出ステップと、
該再送パケット検出ステップが存在を検出したすべてのパケットを前記受信装置へ再送する再送ステップと、
を備え、
前記受信装置は、
前記送信装置から受信した前記パケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信ステップと、
前記パケットの欠損を検出するパケット欠損検出ステップと、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように命令する再送シーケンス番号追加ステップと、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理ステップと、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信ステップへ送信する再送要求送信ステップと、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供ステップと、
を備え、
受信装置は、
再送されるパケットのシーケンス番号を乗せた再送要求応答パケットを前記送信装置から受信する再送要求応答受信ステップと、
前記再送要求応答パケットから前記シーケンス番号を取り出し、再送要求リストから前記シーケンス番号と同じシーケンス番号を削除するように命令する削除命令を再送要求リスト管理ステップへ出す再送シーケンス削除ステップと、
前記再送要求リストの状態を、再送要求リストに残っているシーケンス番号のパケットの再送要求を行ったが前記送信装置からは今後再送されてこないことを意味する”ACTIVE”状態に設定する命令を前記再送要求リスト管理ステップへ出す再送要求応答通知ス テップと
を備えたことを特徴とするパケット再送方法。 - 送信装置は、
特定のパケットまたは欠損時に再送するべきパケットを再送用バッファに格納する再送パケット格納ステップと、
前記特定のパケットまたは欠損時に再送するべきパケットの再送信を行う再送ステップと、を備え、
受信装置は、
前記特定のパケットまたは欠損時に再送するべきパケットを受信後、シーケンス番号順にソートしながら前記特定のパケットまたは欠損時に再送するべきパケットを受信バッファに格納する受信ステップと、
を備えたことを特徴とする請求の範囲第24項記載のパケット再送方法。 - 受信装置は、
現在再送要求を行っているパケットのシーケンス番号および次の再送要求時に再送要求を行うパケットのシーケンス番号を格納する再送要求リストを生成し、シーケンス番号の追加および削除を行い、再送要求リストに格納されているシーケンス番号のパケットの状態を再送要求状態に切り替える再送要求リスト管理ステップを備えたことを特徴とする請求の範囲第23項乃至第25項に記載のパケット再送方法。 - 受信装置は、
パケットの受信回数および受信時間から決定されるパケットの受信時間間隔で、受信バッファ内のパケットのシーケンス番号の不整合から欠損したパケットのシーケンス番号を検出するパケット欠損検出ステップと、
該パケット欠損検出ステップが欠損を検出したパケットのシーケンス番号を再送要求リストに追加する命令を再送要求リスト管理ステップへ出す再送シーケンス番号追加ステップと、
前記再送要求リストの状態を再送パケット受信待ちの状態を意味する”READY状態”に設定する命令を前記再送要求リスト管理ステップへ出す再送要求通知ステップを備えたことを特徴とする請求の範囲請求の範囲第23項乃至第25項記載のパケット再送方法。 - 受信装置は、
再送要求リストに存在する1以上の再送するべきパケットのシーケンス番号を乗せた1つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットの前記シーケンス番号を取り出して通知する再送要求受信ステップと、
前記通知されたシーケンス番号のパケットが再送バッファに格納されているか否かを調べる再送パケット検出ステップと、
該再送パケット検出ステップが存在を検出したすべてのパケットのシーケンス番号を1つの再送要求応答パケットに乗せ、前記受信装置へ送信する再送要求応答ステップと、
前記再送パケット検出ステップが検出した前記パケットを前記受信装置へ再送信する再送ステップと
を備えたことを特徴とする請求の範囲第24項または第25項記載のパケット再送方法。 - 受信装置は、
パケット提供ステップが要求アプリケーション部に提供したパケットの最大(最新)シーケンス番号を乗せた1つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記最大シーケンス番号を取り出して通知する再送要求受信ステップと、
通知された前記最大シーケンス番号より小さいシーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除ステップと、
を備えたことを特徴とする請求の範囲第24項または第25項記載のパケット再送方法。 - 受信装置は、
再送要求リストに存在する1以上の再送するべきパケットのシーケンス番号と、パケット提供ステップが要求アプリケーション部に提供したパケットの最大(最新)シーケンス番号を乗せた1つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記シーケンス番号と、前記最大シーケンス番号を取り出して通知する再送要求受信ステップと、
前記通知されたシーケンス番号のパケットが再送用バッファ内に有るか否かを調べる再送パケット検出ステップと、
前記通知された最大シーケンス番号より小さいシーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除ステップと、
前記再送パケット検出ステップが存在を検出したすべてのパケットのシーケンス番号を1つの再送要求応答パケットに乗せ、前記受信装置へ送信する再送要求応答ステップと、
前記再送パケット検出ステップが検出したパケットを前記受信装置へ再送信する再送ステップと
を備えたことを特徴とする請求の範囲第24項または第25項記載のパケット再送方法。 - 受信装置は、
再送されるパケットのシーケンス番号を乗せた再送要求応答パケットを前記送信装置から受信する再送要求応答受信ステップと、
前記再送要求応答パケットから前記シーケンス番号を取り出し、再送要求リストから前記シーケンス番号と同じシーケンス番号を削除するように命令する削除命令を再送要求リスト管理ステップへ出す再送シーケンス削除ステップと、
を備えたことを特徴とする請求の範囲第24項または第25項記載のパケット再送方法。 - 受信装置は、
受信バッファ内に格納されているパケットの中から、1つ以上のパケットのペイロード(データ)を要求アプリケーション部に提供し、前記パケットのシーケンス番号よりも小さいシーケンス番号を再送要求リストから削除し、前回に提供されたパケットのシーケンス番号(N:Nは自然数)の次のシーケンス番号(N+1)のパケットのペイロードを指定された時間内に提供し、前記指定された時間内に前記次のシーケンス番号(N+1)のパケットが受信バッファに存在しない、あるいは挿入されない場合は、提供されるべきパケットが欠損したことを前記要求アプリケーション部に通知するパケット提供ステップを備えたことを特徴とする請求の範囲第23項乃至第25項に記載のパケット再送方法。 - 受信装置は、
指定時間内に提供しなければならないパケットが受信バッファにない場合、再びパケット欠損検出と再送要求送信を指定時間内に1回以上行うパケット提供ステップを備えたことを特徴とする請求の範囲第29項又は第30項又は第32項に記載のパケット再送方法。 - 受信装置は、
再送要求リストの状態が、該再送要求リストに格納されているシーケンス番号のパケットの送信装置への再送要求はすでに行われているが前記送信装置からは今後再送されてこないことを意味する”ACTIVE”状態であり、要求アプリケーション部に提供するパケットのシーケンス番号が前記再送要求リストの中にある場合、再送要求を行っても再送されないと判断し、指定時間を待たずすぐに提供されるべきパケットが欠損したことを要求者に通知するパケット提供ステップを備えたことを特徴とする請求の範囲第29項又は第30項又は第32項記載のパケット再送方法。 - シーケンス番号が付加されたパケットを送信する送信装置と、この送信装置にネットワークを介して接続された受信装置と、この受信装置に接続された要求アプリケーション部とを備え、
前記シーケンス番号が付加されたパケット通信のパケット欠損時における送受信間のパケットの再送を行うパケット再送方法において、
送信装置は、
受信装置へ送信したパケットを蓄積しておく再送用バッファと、
前記受信装置から受信した再送要求パケットからシーケンス番号と要求アプリケーションへ提供した最大(最新)シーケンス番号を識別して通知する再送要求受信ステップと、
前記通知されたシーケンス番号が再送用バッファに存在するか否かを調べる再送パケット検出ステップと、
該再送パケット検出ステップが存在を検出したすべてのパケットを前記受信装置へ再送する再送ステップと、
を備え、
前記受信装置は、
前記送信装置から受信した前記パケットを蓄積する受信バッファと、
前記送信装置から受信した前記パケットをシーケンス番号順にソートしながらパケットを前記受信バッファに格納する受信ステップと、
前記パケットの欠損を検出するパケット欠損検出ステップと、
欠損が検出されたパケットのシーケンス番号を再送要求リストに追加するように命令する再送シーケンス番号追加ステップと、
前記追加命令に従って前記シーケンス番号を前記再送要求リストに追加する再送要求リスト管理ステップと、
前記再送要求リストに格納された前記シーケンス番号を再送要求パケットに乗せて前記送信ステップへ送信する再送要求送信ステップと、
前記受信バッファ内のパケットを前記要求アプリケーション部へ供給するパケット提供ステップと、
を備え、
前記パケットは、すべてのパケットに与えられる一般シーケンス番号と、特定のパケット又は欠損時に再送するべきパケットに与えられる優先シーケンス番号が付加されたパケットであり、
送信装置は、
前記特定のパケット又は欠損時に再送するべきパケットを再送用バッファに格納する再送パケット格納ステップと、
前記特定のパケット又は欠損時に再送するべきパケットの再送信を行う再送ステップとを備え、
受信装置は、前記特定のパケット又は欠損時に再送するべきパケットを受信後、一般シーケンス番号順にソートしながら前記特定のパケット又は欠損時に再送するべきパケットを受信バッファに格納する受信ステップと、
を備えたことを特徴とするパケット再送方法。 - 受信装置は、
再送を行うパケットの一般シーケンス番号を格納する再送リストを生成し、前記一般シーケンス番号の追加と削除を行う再送リスト管理ステップを備えたことを特徴とする請求の範囲第35項記載パケット再送方法。 - 受信装置は、
受信ステップが受信したパケットの一般シーケンス番号が再送リストにある場合、前記一般シーケンス番号を前記再送リストから削除する命令を再送リスト管理ステップへ出す再送シーケンス番号削除ステップと、前記パケットの受信回数および受信時間から決定されるパケットの受信時間間隔、および優先シーケンス番号の不整合から優先度の高い特定のパケットが欠損する毎に、受信バッファ内のパケットや受信パケットの一般シーケンス番号と優先シーケンス番号から、欠損を発生した優先度の高い特定のパケットおよび欠損時に再送するべきパケットの一般シーケンス番号を検出するパケット欠損検出ステップと、
該パケット欠損検出ステップが欠損を検出した前記優先度の高い特定のパケットおよび欠損時に再送するべきパケットの一般シーケンス番号を再送リストに追加する命令を前記再送リスト管理ステップへ出す再送シーケンス番号追加ステップを備えたことを特徴とする請求の範囲第35項記載のパケット再送方法。 - 受信装置は、
再送リストに存在する1以上の一般シーケンス番号を乗せた1つの再送要求パケットを生成し、前記再送要求パケットを送信装置へ送信する再送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記一般シーケンス番号を取り出して通知する再送要求受信ステップと、
前記通知された一般シーケンス番号のパケットが再送用バッファ内に有るか否かを調べる再送パケット検出ステップと、
該再送パケット検出ステップが存在を検出した一般シーケンス番号のパケットを前記受信装置へ再送信する再送ステップと、
を備えたことを特徴とする請求の範囲第35項記載のパケット再送方法。 - 受信装置は、
パケット提供ステップが要求アプリケーション部に提供したパケットの最大(最新)一般シーケンス番号を乗せた1つの再送要求パケットを生成し、前記再送要求パケットを送信装置に送信する再送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記最大一般シーケンス番号を取り出して通知する再送要求受信ステップと、
通知された前記最大一般シーケンス番号より小さい一般シーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除ステップと、
備えたことを特徴とする請求の範囲第35項記載のパケット再送方法。 - 受信装置は、
再送リストに存在する1以上の一般シーケンス番号と、パケット提供ステップが要求アプリケーション部に提供したパケットの最大(最新)一般シーケンス番号を乗せた1つの再送要求パケットを生成し、前記再送要求パケットを送信装置に送信する再送要求送信ステップを備え、
前記送信装置は、
前記受信装置から受信した前記再送要求パケットから前記一般シーケンス番号と、前記最大一般シーケンス番号を取り出して通知する再送要求受信ステップと、
通知された前記最大一般シーケンス番号より小さい一般シーケンス番号のパケットを再送用バッファから削除する再送用バッファ削除ステップと、
前記通知された一般シーケンス番号のパケットが再送用バッファ内に有るか否かを調べる再送パケット検出ステップと、
該再送パケット検出ステップが存在を検出した一般シーケンス番号のパケットを前記受信装置へ再送信する再送ステップと、
を備えたことを特徴とする請求の範囲第35項記載のパケット再送方法。 - 受信装置は、
受信バッファ内に格納されているパケットの中から、1つ以上のパケットのペイロード(データ)を要求アプリケーション部に提供し、前記パケットの一般シーケンス番号よりも小さい一般シーケンス番号を再送リストから削除し、前回に提供したパケットの一般シーケンス番号(N:Nは自然数)の次の一般シーケンス番号(N+1)のパケットのペイロードを指定された時間内に提供し、前記指定された時間内に前記一般シーケンス番号(N+1)のパケットが受信バッファに存在しない、又は挿入されない場合は、提供されるべきパケットが欠損したことを前記要求アプリケーション部に通知するパケット提供ステップを備えたことを特徴とする請求の範囲第35項記載のパケット再送方法。 - 受信装置は、指定時間内に提供しなければならないパケットが受信バッファに存在しない場合、再びパケット欠損検出と前記再送要求送信を指定時間内に数回行うパケット提供ステップを備えたことを特徴とする請求の範囲第40項記載のパケット再送方法。
- 受信装置は、
提供するパケットの一般シーケンス番号が、再送リストの中に存在しない場合、再送要求を行わず、指定された時間を待たずすぐに提供されるべきパケットが欠損したことを要求アプリケーション部に通知するパケット提供ステップを備えたことを特徴とする請求の範囲第40項記載のパケット再送方法。 - 送信装置は、
任意のパケットpの近辺n個のパケットにおいて優先度の高い特定のパケットまたは欠損時に再送するべきパケットに割り当てるべき優先度情報をm個毎(m≦n:m,nとも自然数)にパケットpに付加し、前記nおよびmの値をネットワークの輻輳状況から決定する優先度情報付加ステップを備え、
受信装置は、
パケットの受信回数および受信時間から決定されるパケットの受信時間間隔、およびシーケンス番号の不整合から重要なパケットが欠損する毎に、受信バッファ内のパケットや受信パケットのシーケンス番号と、前記優先度情報から、欠損を発生した優先度の高い特定のパケットおよび欠損時に再送するべきパケットのシーケンス番号を検出するパケット欠損検出ステップを備えたことを特徴とする請求の範囲第24項または第25項に記載のパケット再送方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2000/004154 WO2001099355A1 (fr) | 2000-06-23 | 2000-06-23 | Procede et systeme de retransmission de paquets |
Publications (1)
Publication Number | Publication Date |
---|---|
JP3866196B2 true JP3866196B2 (ja) | 2007-01-10 |
Family
ID=11736179
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002504083A Expired - Fee Related JP3866196B2 (ja) | 2000-06-23 | 2000-06-23 | パケット再送システムおよびパケット再送方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US7180896B1 (ja) |
EP (1) | EP1204249A4 (ja) |
JP (1) | JP3866196B2 (ja) |
WO (1) | WO2001099355A1 (ja) |
Families Citing this family (70)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6404772B1 (en) * | 2000-07-27 | 2002-06-11 | Symbol Technologies, Inc. | Voice and data wireless communications network and method |
JP2003152752A (ja) * | 2001-08-29 | 2003-05-23 | Matsushita Electric Ind Co Ltd | データ送受信方法 |
WO2003021447A1 (en) * | 2001-08-31 | 2003-03-13 | Adaptec, Inc. | Methods and apparatus for partially reordering data packets |
KR100460970B1 (ko) * | 2002-01-10 | 2004-12-09 | 삼성전자주식회사 | 데이터 송수신 시스템 및 방법 |
BR0309999A (pt) | 2002-05-10 | 2005-02-15 | Interdigital Tech Corp | Priorização de dados de protocolo para retransmissão |
AU2003301387A1 (en) * | 2002-10-17 | 2004-05-04 | Matsushita Electric Industrial Co., Ltd. | Method and device for transmitting and receiving data using packets carrying priority information |
JP2004266504A (ja) * | 2003-02-28 | 2004-09-24 | Sony Corp | 送受信システム、送信装置および方法、受信装置および方法、記録媒体、並びにプログラム |
US7768919B1 (en) * | 2003-04-28 | 2010-08-03 | Verizon Laboratories Inc. | Selective packet discard apparatus and method |
US20050052465A1 (en) * | 2003-07-03 | 2005-03-10 | Moore Richard L. | Wireless keyboard, video, mouse device |
EP1667395A4 (en) * | 2003-09-18 | 2010-05-26 | Nomura Res Inst Co Ltd | COMMUNICATION SYSTEM, COMMUNICATION DEVICE AND DATA TRANSFER CONTROL METHOD |
CN100442755C (zh) * | 2003-11-14 | 2008-12-10 | 华为技术有限公司 | 一种保证通用路由封装隧道传输可靠的方法 |
US7475322B2 (en) * | 2003-11-14 | 2009-01-06 | Avocent Huntsville Corporation | Wireless broadcast protocol |
JP4452983B2 (ja) * | 2004-01-08 | 2010-04-21 | ソニー株式会社 | 受信装置および方法、プログラム、並びに記録媒体 |
JP2005260606A (ja) * | 2004-03-11 | 2005-09-22 | Fujitsu Ten Ltd | デジタル放送受信装置 |
US7733782B2 (en) | 2004-03-31 | 2010-06-08 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and an arrangement for avoiding unnecessary retransmissions |
US20050254508A1 (en) * | 2004-05-13 | 2005-11-17 | Nokia Corporation | Cooperation between packetized data bit-rate adaptation and data packet re-transmission |
JP2006033156A (ja) * | 2004-07-13 | 2006-02-02 | Fujitsu Ltd | 通信装置 |
CN100361430C (zh) * | 2004-08-11 | 2008-01-09 | 华为技术有限公司 | 一种数据传输的方法 |
EP3340511B1 (en) | 2004-10-12 | 2022-11-30 | TQ Delta, LLC | Resource sharing in a telecommunications enviroment |
JP2006279436A (ja) * | 2005-03-29 | 2006-10-12 | Toshiba Corp | マルチメディア通信システムおよび再送用データ削除方法 |
JP4742669B2 (ja) * | 2005-05-13 | 2011-08-10 | ソニー株式会社 | 送受信システム、送信装置および送信方法、受信装置および受信方法、並びにプログラム |
US8065580B2 (en) | 2005-06-02 | 2011-11-22 | Siemens Aktiengesellschaft | Redundant transmission of data messages for information and control for HVDC transmission systems |
JP2007053588A (ja) * | 2005-08-18 | 2007-03-01 | Nec Corp | パケット再送方式、パケット再送システム、パケット再送プログラム及びプログラム記録媒体 |
US20070130303A1 (en) * | 2005-11-17 | 2007-06-07 | Gary Anna | Apparatus, system, and method for recovering messages from a failed node |
US7965771B2 (en) * | 2006-02-27 | 2011-06-21 | Cisco Technology, Inc. | Method and apparatus for immediate display of multicast IPTV over a bandwidth constrained network |
US8218654B2 (en) * | 2006-03-08 | 2012-07-10 | Cisco Technology, Inc. | Method for reducing channel change startup delays for multicast digital video streams |
EP2005674B1 (en) * | 2006-04-12 | 2016-09-28 | TQ Delta, LLC | Packet retransmission and memory sharing |
JP2007324788A (ja) * | 2006-05-31 | 2007-12-13 | Softbank Bb Corp | 移動端末及び通信方法 |
JP4687570B2 (ja) * | 2006-06-09 | 2011-05-25 | 横河電機株式会社 | ゲートウェイシステム |
US8510459B2 (en) * | 2006-09-01 | 2013-08-13 | Pacbyte Software Pty Limited | Method and system for transmitting a data file over a data network |
JP5131194B2 (ja) | 2006-09-05 | 2013-01-30 | 日本電気株式会社 | パケット回復方法、通信システム、情報処理装置およびプログラム |
US8031701B2 (en) * | 2006-09-11 | 2011-10-04 | Cisco Technology, Inc. | Retransmission-based stream repair and stream join |
US7937531B2 (en) * | 2007-02-01 | 2011-05-03 | Cisco Technology, Inc. | Regularly occurring write back scheme for cache soft error reduction |
US8769591B2 (en) * | 2007-02-12 | 2014-07-01 | Cisco Technology, Inc. | Fast channel change on a bandwidth constrained network |
US7940644B2 (en) * | 2007-03-14 | 2011-05-10 | Cisco Technology, Inc. | Unified transmission scheme for media stream redundancy |
US20080253369A1 (en) | 2007-04-16 | 2008-10-16 | Cisco Technology, Inc. | Monitoring and correcting upstream packet loss |
US8276034B2 (en) * | 2007-12-27 | 2012-09-25 | Ricoh Company, Limited | Information processing apparatus, information processing method, and computer program product |
US8787153B2 (en) * | 2008-02-10 | 2014-07-22 | Cisco Technology, Inc. | Forward error correction based data recovery with path diversity |
WO2009133626A1 (ja) * | 2008-05-02 | 2009-11-05 | 富士通株式会社 | 制御装置、無線通信装置、通信システムおよび制御方法 |
CN101729228B (zh) * | 2008-10-31 | 2014-04-16 | 华为技术有限公司 | 丢包抑制重传的方法、网络节点和系统 |
US8064343B2 (en) * | 2008-11-25 | 2011-11-22 | Broadcom Corporation | Utilizing a replacement pathway for lost packet delivery during media reception in a set-top box (STB) |
CN102804664B (zh) * | 2009-05-08 | 2015-05-06 | 日本电气株式会社 | 通信系统、通信设备、通信方法和程序 |
EP2302845B1 (en) | 2009-09-23 | 2012-06-20 | Google, Inc. | Method and device for determining a jitter buffer level |
US9168946B2 (en) * | 2010-03-19 | 2015-10-27 | Javad Gnss, Inc. | Method for generating offset paths for ground vehicles |
US8477050B1 (en) | 2010-09-16 | 2013-07-02 | Google Inc. | Apparatus and method for encoding using signal fragments for redundant transmission of data |
GB2485765B (en) * | 2010-11-16 | 2014-02-12 | Canon Kk | Client based congestion control mechanism |
US8838680B1 (en) | 2011-02-08 | 2014-09-16 | Google Inc. | Buffer objects for web-based configurable pipeline media processing |
US8681866B1 (en) | 2011-04-28 | 2014-03-25 | Google Inc. | Method and apparatus for encoding video by downsampling frame resolution |
US8661323B2 (en) | 2011-05-09 | 2014-02-25 | Google Inc. | Method and apparatus for generating packet mask |
US9106787B1 (en) | 2011-05-09 | 2015-08-11 | Google Inc. | Apparatus and method for media transmission bandwidth control using bandwidth estimation |
JP5728368B2 (ja) * | 2011-11-15 | 2015-06-03 | 株式会社日立製作所 | ネットワークシステム、及び通信装置 |
US9490850B1 (en) | 2011-11-28 | 2016-11-08 | Google Inc. | Method and apparatus for decoding packetized data |
TWI459768B (zh) * | 2011-12-30 | 2014-11-01 | Ind Tech Res Inst | 協助tcp封包傳送的通訊系統與方法 |
US9185429B1 (en) | 2012-04-30 | 2015-11-10 | Google Inc. | Video encoding and decoding using un-equal error protection |
US10034023B1 (en) | 2012-07-30 | 2018-07-24 | Google Llc | Extended protection of digital video streams |
US9172740B1 (en) | 2013-01-15 | 2015-10-27 | Google Inc. | Adjustable buffer remote access |
US9311692B1 (en) | 2013-01-25 | 2016-04-12 | Google Inc. | Scalable buffer remote access |
US9225979B1 (en) | 2013-01-30 | 2015-12-29 | Google Inc. | Remote access encoding |
CN103957169A (zh) * | 2014-05-14 | 2014-07-30 | 上海复兰信息科技有限公司 | 一种基于反向请求的可靠udp的实现方法 |
EP3235210A1 (en) * | 2014-12-19 | 2017-10-25 | Telefonaktiebolaget LM Ericsson (publ) | Methods and first network node for managing a stream control transmission protocol association |
CN107852283B (zh) * | 2015-08-21 | 2021-02-02 | 英特尔Ip公司 | 用于pdcp状态报告的设备和计算机可读介质 |
US10171777B2 (en) * | 2015-12-31 | 2019-01-01 | Amazon Technologies, Inc. | Streaming and storing video content captured by an audio/video recording and communication device |
US10368288B2 (en) * | 2016-08-18 | 2019-07-30 | Bridgefy, Inc. | Systems and methods for connecting devices through intermediate nodes |
US10749795B2 (en) * | 2018-07-06 | 2020-08-18 | Citrix Systems, Inc. | Systems and methods for selecting communication paths for applications sensitive to bursty packet drops |
CN110858930B (zh) * | 2018-08-23 | 2022-03-18 | 慧与发展有限责任合伙企业 | 数据帧传输 |
US11646835B2 (en) | 2018-10-08 | 2023-05-09 | Telefonaktiebolaget Lm Ericsson (Publ) | Transmission of a packet data convergence protocol (PDCP) protocol data unit (PDU) in a wireless communication network |
JP7224310B2 (ja) * | 2020-01-29 | 2023-02-17 | 三菱電機株式会社 | ネットワークシステム |
EP4197139A1 (en) * | 2020-12-15 | 2023-06-21 | Huawei Technologies Co., Ltd. | Device and method for selective retransmission of lost packets |
CN112968817B (zh) * | 2021-03-25 | 2022-12-06 | 深圳金三立视频科技股份有限公司 | 一种数字信息传输中的丢包数据统计方法及终端 |
CN113037440B (zh) * | 2021-05-25 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 数据重传处理方法、装置、计算机设备和存储介质 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59178831A (ja) * | 1983-03-29 | 1984-10-11 | Fujitsu Ltd | デ−タ伝送方式 |
JPS60106250A (ja) | 1983-11-15 | 1985-06-11 | Nec Corp | デ−タ通信装置 |
JPH03237829A (ja) * | 1990-02-14 | 1991-10-23 | Nec Corp | Hdlc手順の紛失フレームの通知方法 |
US5222061A (en) * | 1991-10-31 | 1993-06-22 | At&T Bell Laboratories | Data services retransmission procedure |
JPH08331179A (ja) | 1995-06-06 | 1996-12-13 | Nippon Telegr & Teleph Corp <Ntt> | パケット通信システムにおける再送処理装置 |
JP3499670B2 (ja) | 1996-02-02 | 2004-02-23 | 株式会社東芝 | 無線通信方法、無線基地局装置及び無線端末装置 |
JPH1070523A (ja) * | 1996-08-28 | 1998-03-10 | Kokusai Electric Co Ltd | パケット伝送方法及び装置 |
JPH10215294A (ja) * | 1997-01-30 | 1998-08-11 | Nippon Telegr & Teleph Corp <Ntt> | フレーム再送方法 |
JPH11284657A (ja) | 1998-03-30 | 1999-10-15 | Chokosoku Network Computer Gijutsu Kenkyusho:Kk | 再送制御方式 |
DE69938094T2 (de) * | 1998-11-30 | 2009-02-05 | Matsushita Electric Industries Co. Ltd., Kadoma | Paketwiederübertragungskontrolle mit Prioritätsinformationen |
-
2000
- 2000-06-23 JP JP2002504083A patent/JP3866196B2/ja not_active Expired - Fee Related
- 2000-06-23 US US10/069,246 patent/US7180896B1/en not_active Expired - Fee Related
- 2000-06-23 WO PCT/JP2000/004154 patent/WO2001099355A1/ja active Application Filing
- 2000-06-23 EP EP00939154A patent/EP1204249A4/en not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
EP1204249A4 (en) | 2007-05-16 |
US7180896B1 (en) | 2007-02-20 |
EP1204249A1 (en) | 2002-05-08 |
WO2001099355A1 (fr) | 2001-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3866196B2 (ja) | パケット再送システムおよびパケット再送方法 | |
US7707303B2 (en) | Method and devices for controlling retransmissions in data streaming | |
EP0973294B1 (en) | Method and computer program product for efficiently and reliably sending small data messages from a sending system to a large number of receiving systems | |
EP0969623B1 (en) | Method and computer program product for efficiently and reliably sending small data messages from a sending system to a large number of receiving systems | |
KR100359960B1 (ko) | 레프리카의 동일성을 유지하는 컴퓨터와 데이타 공유 시스템 및 그 방법 | |
US7143132B2 (en) | Distributing files from a single server to multiple clients via cyclical multicasting | |
KR100772528B1 (ko) | 유/무선 네트워크에서 효율적인 패킷 재전송 방법 및 장치 | |
JP2014045492A (ja) | 無線リンク制御における再送を支援する目的でプロトコルデータユニットの再送の優先順位を上げるためのシステムおよび方法 | |
JP2012239238A (ja) | サービスの質を伴う確かな通信のためのシステム及び方法 | |
JP2001513597A (ja) | ディジタル通信システムにおける方法および構成 | |
KR20070115944A (ko) | 핸드쉐이크리스 재송신 프로토콜 | |
CN116938816A (zh) | 数据传输方法、装置、计算机可读介质及电子设备 | |
US20100235702A1 (en) | Transmitter, file distribution system, file distribution control method and file distribution control program in system | |
Song et al. | Multipath based adaptive concurrent transfer for real-time video streaming over 5G multi-RAT systems | |
US20020191610A1 (en) | Message transmission method and system capable of transmitting differential data | |
US8238335B2 (en) | Multi-route transmission of packets within a network | |
JP2003101518A (ja) | ライブモバイルカメラシステム | |
JP4217534B2 (ja) | パケット送信装置、パケット受信装置、方法及びプログラム | |
US20120054310A1 (en) | Terminal, intermediate node and communication method of the same | |
TWI376917B (en) | Frame merging apparatus and method thereof | |
US9306824B2 (en) | Communication control apparatus, communication control method, and computer-readable non-transitory recording medium | |
CN113612737A (zh) | 一种基于分组与重传机制的长报文可靠传输方法 | |
KR101992061B1 (ko) | 데이터 전송 장치 및 그 방법 | |
JPH09284343A (ja) | 蓄積型マルチメディア情報の転送再生方法および装置 | |
Marasli et al. | Partially reliable transport service |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20040630 |
|
RD01 | Notification of change of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7421 Effective date: 20040716 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040730 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060411 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060518 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061003 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061004 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091013 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101013 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111013 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121013 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131013 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |