(57)【特許請求の範囲】
【請求項１】
自動再送要求方式を含むパケット転送プロトコルを利用するデータ・ネットワークにおいてパケットを破棄するための方法であって、
各パケットは関連するシーケンス番号を有し、前記方法が、
前記データ・ネットワークの受信機からの受信応答が受信されなかった少なくとも一つのパケットをデータ・ネットワークの送信機で破棄する過程と、
前記送信機が、受信機に命令して、（ａ）  破棄された少なくとも一つのパケットに関連した少なくとも一つのシーケンス番号をスキップし、（ｂ）  少なくとも一つのスキップしたシーケンス番号に続く次のシーケンス番号を有するシーケンス外パケットを受信する過程と、
を有する方法。
【請求項２】
請求項１記載の方法において、前記少なくとも一つのパケットのそれぞれが受信強制ビットを含み、前記命令過程は、
前記少なくとも一つのパケットのそれぞれについての前記受信強制ビットをＴＲＵＥの値に設定する過程と、
前記少なくとも一つのパケットを前記受信機へ送る過程と、
を有する、方法。
【請求項３】
請求項１記載の方法において、前記命令過程は、
少なくとも一つのパケットのそれぞれについて、受信強制ビットをＴＲＵＥの値に設定する過程と、
ＴＲＵＥに設定された前記少なくとも一つの受信強制ビットを、パケットを送る送信機の識別及び前記受信機に対する制御メッセージにおけるパケットのシーケンス番号と共に、送る過程と、
を有する、方法。
【請求項４】
請求項１記載の方法において、当該方法がＧＢＮ（go-back-n）の自動再送要求方式に関わり、
最大の先頭シーケンス番号を（ＤＳＮ＋２ｋ−１）の値と等しく定める過程であって、ＤＳＮは、ＤＳＮより前のシーケンス番号を有するすべてのパケットが前記データ・ネットワーク内の受信機により受信されたものとして受信応答されたことを示すシーケンス番号であり、かつ、ｋは、前記データ・ネットワークにおけるパケット用のシーケンス番号フィールド内でのビットの数である、過程と、
受信されたパケットについての受信強制ビットがＴＲＵＥに設定され、かつ、Ｎ（Ｓ）−ＥＳＮ＜２ｋ−１である場合に前記受信されたパケットを受け入れる過程であって、Ｎ（Ｓ）は、前記受信されたパケットのシーケンス番号であり、かつ、ＥＳＮは、受信されるべき次のパケットの期待されるシーケンス番号である、過程と、
前記受信されたパケットについての前記受信強制ビットがＴＲＵＥに設定され、かつ、ＢＳＮ−ＥＳＮ≧２ｋ−１である場合に、自動再送要求方式の再開を実行する過程と、
をさらに有する方法。
【請求項５】
請求項１記載の方法において、当該方法がＧＢＮの自動再送要求方式に関わり、
（ＴＳＮ≦ＤＳＮ−１）、（ＴＳＮ≦ＢＳＮ＋Ｗ）及び（１≦Ｗ≦２ｋ−１）の規則に従って先頭シーケンス番号ＴＳＮを拘束する過程であって、ｋは、前記データ・ネットワークにおけるパケット用のシーケンス番号フィールド内でのビットの数であり、ＤＳＮは、ＤＳＮより前のシーケンス番号を有するすべてのパケットが前記データ・ネットワーク内の受信機により受信されたものとして受信応答されたことを示すシーケンス番号であり、ＢＳＮは、前記データ・ネットワーク内の送信機の送信バッファ内に格納された最も古いパケットのシーケンス番号を示す最後部シーケンス番号であり、及び、Ｗは、前記受信機と前記送信機の双方に対して既知の窓サイズであってその範囲内でパケットの経過を辿るものである、過程と、
受信されたパケットについての受信強制ビットがＴＲＵＥに設定され、かつ、Ｎ（Ｓ）−ＥＳＮ＜２ｋ−Ｗである場合に、前記受信されたパケットを受け入れる過程であって、Ｎ（Ｓ）は、前記受信されたパケットのシーケンス番号であり、かつ、ＥＳＮは、受信されるべき次のパケットの期待されるシーケンス番号である、過程と、
前記受信されたパケットについての前記受信強制ビットがＴＲＵＥに設定され、かつ、ＢＳＮ−ＤＳＮ≧２ｋ−Ｗである場合に、ａ）自動再送要求方式の再開と、ｂ）管理制御システムに対する失敗イベントの報告とのうちの、一方を実行する過程と、
（ＤＳＮ≦ＢＳＮ≦ＴＳＮ）の規則に従ってＢＳＮを拘束する過程と、
をさらに有する方法。
【請求項６】
請求項１記載の方法において、当該方法がＳＲ（selective repeat）の自動再送要求方式に関わり、
前記データ・ネットワーク内の送信機の送信バッファ内に格納された最も古いパケットのシーケンス番号を示す最後部シーケンス番号ＢＳＮと先頭シーケンス番号ＴＳＮとを、（ＤＳＮ≦ＢＳＮ≦ＴＳＮ≦ＴＳＮＭＡＸ）の規則に従って拘束する過程であって、ＤＳＮは、ＤＳＮより前のシーケンス番号を有するすべてのパケットが前記データ・ネットワーク内の受信機により受信されたものとして受信応答されたことを示すシーケンス番号であり、ＴＳＮＭＡＸは、最大の先頭シーケンス番号であり、（ＴＳＮＭＡＸ−ＤＳＮ＝２ｋ−１）であり、及び、ｋは、前記データ・ネットワークにおけるパケット用のシーケンス番号フィールド内でのビットの数である、過程と、
受信されたパケットについての受信強制ビットがＴＲＵＥに設定され、かつ、Ｎ（Ｓ）−ＥＳＮ＜２ｋ−１である場合に、前記受信されたパケットを受け入れる過程であって、Ｎ（Ｓ）は、前記受信されたパケットのシーケンス番号であり、かつ、ＥＳＮは、受信されるべき次のパケットの期待されるシーケンス番号である、過程と、
前記受信されたパケットについての前記受信強制ビットがＴＲＵＥに設定され、かつ、ＢＳＮ−ＥＳＮ≧２ｋ−１である場合に、自動再送要求方式の再開を実行する過程と、
をさらに有する方法。
【請求項７】
請求項６記載の方法において、
ａ）ＤＳＮより後であってＢＳＮより前のシーケンス番号を有する最初のパケットが否定受信応答され、ｂ）前記最初のパケットに先行し、かつ、肯定受信応答されていないパケットの数がＢＳＮと前記最初のパケットのシーケンス番号との差より少なく、及び、ｃ）ＴＳＮ≠ＢＳＮである場合に、ＢＳＮによって示されるパケットについての受信強制ビットを設定すると共にＢＳＮによって示されるパケットを前記送信機から前記受信機へ再送する過程
をさらに有する方法。
【請求項８】
請求項６記載の方法において、ａ）ＤＳＮより後であってＢＳＮより前のシーケンス番号を有する最初のパケットが否定受信応答され、ｂ）前記最初のパケットに先行し、かつ、肯定受信応答されていないパケットの数がＢＳＮと前記最初のパケットのシーケンス番号との差より少なく、及び、ｃ）ＴＳＮ＝ＢＳＮである場合、
パケットが送信を保留されているときは、その保留パケットについての受信強制ビットをＴＲＵＥに設定すると共にその保留パケットを前記送信機から前記受信機へ送る過程と、
送信を保留されているパケットがないときは、ａ）上位レイヤからパケットが受信されるまで待機することとｂ）保留されているパケットがないことを前記受信機に伝えることとのうちの、一方を実行する過程と
をさらに有する方法。
【請求項９】
請求項６記載の方法において、
ａ）ＤＳＮより後であってＢＳＮより前のシーケンス番号を有する最初のパケットが否定受信応答され、ｂ）前記最初のパケットに先行し、かつ、肯定受信応答されていないパケットの数がＢＳＮと前記最初のパケットのシーケンス番号との差より多く、及び、ｃ）ＴＳＮ≠ＢＳＮである場合に、ＢＳＮより後の最初の未処理パケットについての受信強制ビットを設定すると共に前記最初の未処理パケットを前記送信機から前記受信機へ再送する過程
をさらに有する方法。
【請求項１０】
請求項６記載の方法において、
ａ）ＤＳＮより後であってＢＳＮより前のシーケンス番号を有する最初のパケットが否定受信応答され、ｂ）前記最初のパケットに先行し、かつ、肯定受信応答されていないパケットの数がＢＳＮと前記最初のパケットのシーケンス番号との差より多く、ｃ）前記最初のパケットの後に少なくとも一つのパケットがあり、及び、ｄ）ＢＳＮより後のシーケンス番号を有する、否定受信応答されたパケットがない場合に、ＢＳＮより後の最初のパケットについて受信強制ビットを設定すると共にそのＢＳＮより後の最初のパケットを前記送信機から前記受信機へ再送する過程
をさらに有する方法。
【請求項１１】
請求項６記載の方法において、ＤＳＮより後であってＢＳＮより前のシーケンス番号を有する最初のパケットが否定受信応答されると共に、ＢＳＮより大きいかＢＳＮに等しく、かつ、ＴＳＮより小さいシーケンス番号を有するすべてのパケットが肯定受信応答された場合、
パケットが送信を保留されているときは、その保留パケットについての受信強制ビットをＴＲＵＥに設定すると共にその保留パケットを前記送信機から前記受信機へ送る過程と、
送信を保留されているパケットがないときは、ａ）上位レイヤからパケットが受信されるまで待機することとｂ）保留されているパケットがないことを前記受信機に伝えることとのうちの、一方を実行する過程と
をさらに有する方法。
【請求項１２】
請求項６記載の方法において、
タイマ始動のパケットの再送信が行われ、かつ、ＩＳＮ＝ＢＳＮである場合に、そのパケットについての受信強制ビットをＴＲＵＥに設定する過程と、
タイマ始動のパケットの再送信が行われ、かつ、ＩＳＮ≠ＢＳＮである場合に、そのパケットについての受信強制ビットをＦＡＬＳＥに設定する過程と
をさらに有し、ＩＳＮが送られるべき次のパケットのシーケンス番号を示す、方法。
【請求項１３】
請求項６記載の方法において、
（ＩＳＮ＝ＢＳＮ）かつ（ＢＳＮ≠ＤＳＮ）である場合に、パケットについての受信強制ビットをＴＲＵＥに設定し、そうでない場合に、パケットについての受信強制ビットをＦＡＬＳＥに設定する過程をさらに有し、
ＩＳＮが送られるべき次のパケットのシーケンス番号を示す、方法。
【請求項１４】
ＧＢＮの自動再送要求方式を含むパケット転送プロトコルを利用するデータ・ネットワークにおいてパケットを破棄するための方法であって、
少なくとも一つのパケットを破棄する過程と、
前記少なくとも一つのパケットについてのＮＡＣＫを受信する過程と、
前記少なくとも一つのパケットの近隣の破棄されていないパケットが連続するシーケンス番号を有するように、前記少なくとも一つのパケットに続く破棄されていないパケットの番号の付け替えを行う過程と
を有する方法。
【請求項１５】
ＧＢＮの自動再送要求方式を含むパケット転送プロトコルを利用するデータ・ネットワークにおいてパケットを破棄するための方法であって、
前記データ・ネットワーク内の送信機により送られたが前記データ・ネットワーク内の受信機により受信されたものとして受信応答されてはいない、少なくとも一つのパケットを破棄する過程と、
前記少なくとも一つのパケットを破棄した後に、前記受信機により受信された最後のパケットと前記送信機により送信されるべき次のパケットとが連続したシーケンス番号を有するように前記送信機と前記受信機を再同期化する再同期化過程と
を有する方法。
【請求項１６】
請求項１５記載の方法において、前記再同期化過程は、
前記受信機がどのシーケンス番号を次に受信するものと期待しているかを判断する過程と、
その期待されているシーケンス番号が前記送信機から次に送るべきパケットのシーケンス番号とは異なる場合に、前記送信機から次に送るべきパケットに対してその期待されているシーケンス番号を割り当てる過程と
を有する、方法。
【請求項１７】
ＧＢＮの自動再送要求方式を含むパケット転送プロトコルを利用するデータ・ネットワークにおいてパケットを破棄するための方法であって、
前記データ・ネットワーク内の送信機により送られたが前記データ・ネットワーク内の受信機により受信されたものとして受信応答されてはいない、少なくとも一つのパケットを破棄する過程と、
前記少なくとも一つのパケットを破棄した後に、前記受信機がどのシーケンス番号を次に受信するものと期待しているかを判断すると共に、その期待されているシーケンス番号が前記送信機から次に送るべきパケットのシーケンス番号とは異なる場合に、前記送信機から前記受信機へ送るべき次のパケットのシーケンス番号を期待することを前記受信機に対して命令することにより、前記送信機と前記受信機を再同期化する過程と
を有する方法。
【請求項１８】
前記再同期化過程が、前記送信機から前記受信機へ送るべき次のパケットのシーケンス番号を期待することを前記受信機に対して命令する過程を有する、請求項１５記載の方法。
【請求項１９】
ＧＢＮの自動再送要求方式を含むパケット転送プロトコルを利用するデータ・ネットワークにおいてパケットを破棄するための方法であって、
前記データ・ネットワーク内の送信機により送られたが前記データ・ネットワーク内の受信機により受信されたものとして受信応答されてはいない、少なくとも一つのパケットを破棄する過程と、
前記少なくとも一つのパケットを破棄した後に、前記受信機がどのシーケンス番号を次に期待するかを判断すると共に、その期待されているシーケンス番号で始まる前記送信機に保留されているパケットのシーケンス番号の連続的な付け替えを行うことにより、前記受信機と前記送信機を再同期化する過程と
を有する方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、有線（固定）ないし無線のデータ・ネットワーク（fixed/wireless data networks）におけるデータ転送のための自動再送要求（ＡＲＱ(Automatic Repeat Request)）の技術に関する。
【０００２】
【従来の技術及び発明が解決しようとする課題】
ＡＲＱの技術は、信頼性の高いデータ転送を確保すると共にデータ・シーケンスの完全性（data sequence integrity）を保護するために、データ・ネットワークにおいて一般的に用いられている。データ・パケット（データのパケット）は、誤り検出符号（error detecting code）で符号化され、データ・ネットワーク内の送信機がデータ・パケットをデータ・ネットワーク内の受信機へ送信ないし転送したときに、そのデータ・パケットを受信する受信機は、原形を損なわれたパケット、誤りパケット（誤りがあるパケット）、あるいは、消失パケット（消失したパケット）（corrupted, erroneous or lost packets）を検出することができ、かつ、それによって影響を受けたデータ・パケット（the affected data packets）を前記送信機が再送信（retransmit）することを要求できるようになっている。データ・シーケンスの完全性は、一般に、連続的に順次パケットに番号を付けることと一定の伝送規則（transmission rules）を適用することとによって保護されている。
【０００３】
ＡＲＱの主な方式としては、ＳＡＷ（Stop-and-Wait）、ＧＢＮ（Go-Back-N）及びＳＲ（Selective Reject）の３つがある（Selective Reject はときに Selective Repeat と呼ばれる。）。これら３つの方法は、すべてデータ・ネットワーク内の受信機へ適切な順序（order）でパケットを転送するためのメカニズムを与えるものである。信号対雑音比（signal to noise ratio）の関数としてのスループットの効率性（throughput efficiency）については、通常、ＳＲ方式が最も効率的であり、ＳＡＷ方式が最も効率的でなく、ＧＢＮ方式が中間的な効率である。また、ＳＲ方式の手法とＧＢＮ方式の手法の様々な混合手法（mixtures）も存在し、それらの混合手法は、純粋なＳＲ方式の手法と純粋なＧＢＮ方式の手法の間に属し、両者の効率性と複雑性を備えている。
【０００４】
ＧＢＮ方式に関しては、いくつかの異なる変形手法（variants）が存在し、それらは、肯定受信応答（ＰＡＣＫｓ(positive acknowledgments)）、否定受信応答（ＮＡＣＫｓ(negative acknowledgments)）、再送信タイマ（retransmission timers）、ポーリング方式（polling schemes）等を用いる形態に関して差異があるものとなっている。
【０００５】
ＧＢＮ方式による手法の一つのタイプでは、以下のような特質を有するＰＡＣＫｓとＮＡＣＫｓの双方を用いている。
【０００６】
シーケンス番号Ｎ（Ｒ）を有するデータ・パケットに対するＰＡＣＫは、例えば図１の（Ａ）に示したように、Ｎ（Ｒ）より前のシーケンス番号を有するデータ・パケットに対する累積的な肯定受信応答（a cumulative positive acknowledgment）を与えるが、そのシーケンス番号Ｎ（Ｒ）を有するデータ・パケットには肯定受信応答をしない。
【０００７】
ＮＡＣＫは、それが否定受信応答をするデータ・パケットより前のすべてのデータ・パケットに肯定受信応答をする。そのＮＡＣＫが否定受信応答したデータ・パケットは、例えば図１の（Ｂ）に示したように、Ｎ（Ｒ）で表される。
【０００８】
図２は、簡潔なＡＲＱ送信機窓（a simplified ARQ transmitter window）を示した図であり、この送信機窓においては、送信機の状態の経過を追うために５つの変数を用いている。それら５つの変数として含まれるのは、最後部シーケンス番号ＢＳＮ（bottom sequence number）、先頭シーケンス番号ＴＳＮ（top sequence number）、最大先頭シーケンス番号ＴＳＮＭＡＸ（maximum top sequence number）、瞬時シーケンス番号ＩＳＮ（instant sequence number）、及び予想シーケンス番号ＥＳＮ（expected sequence number）である。
【０００９】
ＢＳＮは、送信機のバッファ内における最も旧いパケットを表すと共に、ＢＳＮのパケットより前のすべてのパケットが受信応答ないし破棄をされた（acknowledged or discarded）ことをも示すことができるものである。ＴＳＮで表されたパケットより前のパケットは、既に送信されたものである。ＥＳＮは、受信されるべきパケットの予想されるシーケンス番号を表す。ＩＳＮは、送信すべき次のパケットのシーケンス番号を示す。最初にパケットが送信される時は、ＴＳＮとＩＳＮは同一である。しかし、再送信が実行されるときは、ＩＳＮは、最初に再送信されるパケットからもう一度始まり、ＴＳＮに至るまで一度に一パケットずつ連続する番号で順次進行することになる。ＴＳＮはＴＳＮＭＡＸを越えることができないものとされ、ＴＳＮＭＡＸは窓サイズＷによって定義される。シーケンス番号のフィールドがｋビットを有するものとすると、２ｋの異なるシーケンス番号が生成され得ることになる。したがって、図２中に示す窓の最大サイズＷは、２ｋ−１となる。
【００１０】
ＰＡＣＫｓとＮＡＣＫｓの双方を用いるＧＢＮ手法の処理動作は、図３の（Ａ）〜（Ｄ）に示した円の円周上に重畳（superimpose）される、時計回りに連続したモジュロ２ｋのシーケンス番号付け（a clockwise consecutive modulo 2k sequence numbering）をイメージすることにより、想像（envision）することができる。図３の（Ａ）は、未だ全くパケットが送信されておらず、かつ、ＴＳＮ、ＥＳＮ、ＢＳＮ及びＩＳＮがすべて同じ値を有している（すなわち、同じパケットに位置している）状態を表す円を示している。図３の（Ｂ）に示した円は、ＥＳＮ＝ＴＳＮであることから、（ＴＳＮ−ＢＳＮ）のパケットが送信されかつ受信もされたことを表している。誤りパケットないし消失パケットは、さらなるパケットが送信されたとしても、ＥＳＮの前進を停止させる。例えば、図３の（Ｃ）において、ＴＳＮ及びＩＳＮで示されたパケットに至るまでのパケットは送信されているが、ＥＳＮは、受信されなかった前のパケットを示している。パケットが消失した後、あるいは、誤りがあるパケットが受信された後には、ＡＲＱ受信機（the ARQ receiver）は、ＡＲＱ送信機（the ARQ transmitter）へＮＡＣＫを送り、その消失パケットないし誤りパケットについてＡＲＱ送信機に情報を伝える。そのＮＡＣＫには、ＥＳＮに等しく設定された戻りシーケンス番号（a returned sequence number）Ｎ（Ｒ）が含まれ、それによって前のパケットについてはすべて正しく受信された旨の受信応答がなされる。ＢＳＮ及びＩＳＮはＥＳＮ（及びＮ（Ｒ））と等しく設定され、消失パケットないし誤りパケットを表すシーケンス番号に対し、ＢＳＮは前へ移動すると共にＩＳＮは後ろへ移動するようになる。その後、図３の（Ｄ）に示すように、消失パケットないし誤りパケットが再送信されると共に続くパケットも再送信されるのに従ってＩＳＮとＥＳＮが共に前へ移動していく。
【００１１】
図４の（Ａ）〜（Ｄ）は、ＰＡＣＫを用いる形態を例示した図である。例えば、図４の（Ａ）は、未だ何も送信されておらず、ＴＳＮ＝ＩＳＮ＝ＢＳＮ＝ＥＳＮとなっている状態を示している。図４の（Ｂ）は、送られたパケットがすべて正しく受信された状況を示している。図４の（Ｃ）は、タイマ始動のＰＡＣＫ（timer-initiated PACK）を送り、パケットのシーケンス番号Ｎ（Ｒ）をＢＳＮとＴＳＮ＝ＥＳＮ＝ＩＳＮとの間で移行させる場合を示している。図４の（Ｄ）に示すように、ＰＡＣＫが送られた後にＢＳＮがＮ（Ｒ）に設定される。
【００１２】
ＰＡＣＫｓを送ることは、シーケンス番号の欠乏（starvation）が生じないことを確保する。ＴＳＮがＢＳＮを越えて行くことはないので、送信機がＰＡＣＫｓを受信しない場合、その送信機は、ＴＳＮＭＡＸに至るまでデータ・パケットを送り続けることができる。しかし、ＴＳＮＭＡＸまでのデータ・パケットを送信したがＰＡＣＫｓが全く受信されない場合には、ＴＳＮＭＡＸが進行できなくなると共にシーケンス番号の欠乏が起こる。この場合の送信機はＰＡＣＫを受信するまで待機しなければならず、そのＰＡＣＫによってＢＳＮの進行が許容されることになり、かつ、それによってＴＳＮＭＡＸの進行も許容されることになる。
【００１３】
図５は、ＡＲＱデータ・パケット５１０の一般的な例を示す図である。パケット５１０は、通常、ＡＲＱヘッダ５１２とデータ部分５１６を有している。ヘッダ５１２は、ｋビットのシーケンス番号５１４を含み、かつ、図５中に示したようにパケット５１０の先頭に置くことができ、あるいは、任意の予め定めたパケット５１０内の位置に置くことができる。
【００１４】
図６は、代表的なＡＣＫメッセージ６１０を示した図である。このＡＣＫメッセージ６１０は、ＡＣＫメッセージ６１０を送信して応答している端末機を識別する識別子フィールド（identifier field）６１２と、ＰＡＣＫが送られているかあるいはＮＡＣＫが送られているかを示すＮＡＣＫ／ＰＡＣＫタイプ指示子（indicator）６１４と、どのシーケンス番号についてＡＣＫメッセージ６１０が有効（valid）かを示す最後のシーケンス番号フィールドＮ（Ｒ）６１６とを有している。
【００１５】
ＳＲ方式においては、自動的な（タイマ始動の）再送信に関連して生じる必然的なアンビギュイティ（曖昧さ）（certain ambiguities）を回避するために、２ｋ−１ないしそれ以下のサイズを有する送り手窓（sender window）が一般に使用されている。ＳＲ方式における受け手窓（receiver window）のサイズは、ＧＢＮ方式におけるようなちょうど一つの位置（position）に代えて、２ｋ−１の位置までを含むものとすることができる。ＳＲ方式では、受け手窓が２ｋ−１の位置までを含み得ることから、一続きのパケット（a range of packets）を受信することができる。
【００１６】
パケットが正しく受信されている限り、それらのパケットは、次の上位レイヤ（next higher layer）へ送られないし回送（forward）される。未処理（outstanding）パケット、すなわち、送信されたが受信されずあるいは正しく受信されないパケットが検出されたときは、上位レイヤまでの続くパケットの送信が停止（halt）されると共に、誤りのないパケットと紛失したパケット（correct and missing packets）のリストが構築される。ＮＡＣＫは、前記未処理パケットないし多数の未処理パケットの再送信の要求を開始するために使用される。最初に検出された未処理パケットが正しく受信されると、当該パケットと続くすべてのパケットは、次に未処理パケットが検出されると共にその新たな未処理パケットに関してのプロセスが再び行われるまで、上位レイヤへ送られる。
【００１７】
例えば、図７の（Ａ）は、３つのパケットが未処理である状況を示している。それらの未処理パケットは、ＥＳＮ１、ＥＳＮ２及びＥＳＮ３で表してある。受信機は、これらの未処理パケットのシーケンス番号を示す一つ又はいくつかのＮＡＣＫｓを送信する。図７の（Ｂ）及び（Ｃ）では、送信機が前記一つ又はいくつかのＮＡＣＫｓを受信すると共に応答において各未処理パケットを再送信している。新たなパケットの送信はＴＳＮＭＡＸの限界へと進めることができ、かかる送信は当然ＮＡＣＫｓが全く受信されない場合にも同様に行うことができる。特に、図７の（Ｂ）は、ＥＳＮ１が再送信されて正しく受信され、かつ、ＥＳＮ２が現在再送信されている状況を示している。また、ＢＳＮもＥＳＮ１に設定されている。すなわち、ＥＳＮ１に対するＮＡＣＫがＥＳＮ１に先行するパケットに対する累積的な肯定受信応答として機能し、かつ、それに従ってＢＳＮが調整されている。
【００１８】
ＮＡＣＫｓは、未知の理由によって送信機への到達に失敗することがある。かかる状況においては、指定された時間ないし所定の時間（specified or predetermined time）が経過した後に、送り手のバッファ（sender buffer）内にある受信応答されていない（ＮＡＣＫとＰＡＣＫのいずれによっても受信応答されていない）パケットを自動的に再送信するものとすることができる。
【００１９】
ＮＡＣＫｓは、ＮＡＣＫを送信すると共に最も旧いＮＡＣＫのシーケンス番号（ここではＥＳＮ１で表されている）を明示的（explicitly）に示し、かつ、正しく受信されたパケットと紛失したパケットをその後に表すビットマップを用いることにより、効率的に送ることができる。このタイプのＮＡＣＫは、ＮＡＣＫがなされた（NACKed）シーケンス番号に先行するパケットに対する累積的なＰＡＣＫとしての役割を果たす。他のＮＡＣＫのオプションを利用することも可能であり、例えば、ＮＡＣＫがなされたシーケンス番号に先行するパケットに対しては累積的な肯定ＡＣＫが実行ないし送信されないようなＮＡＣＫのオプションを利用することもできる。
【００２０】
ＳＲ方式による手法とＧＢＮ方式による手法は、ＳＲ方式がパケットを如何なる特定の順序で送ることをも要求しないのに対し、ＧＢＮの受信機が連続するシーケンス番号の順にパケットを受信することを必要とする、という意味（sense）において異なる手法である。
【００２１】
通常、データ・ネットワークにおいては、如何なるパケットの損失（packet loss）をも伴わずにすべてのパケットを転送することが望ましい。しかし、著しく遅延したパケットが送られて何等の利益も与えない場合もあり、例えば、遅延によってパケット中の情報が陳腐化（outdated）し、かつ、それ故にその情報が受信機に対しては無用なものとなる事態が起こる場合もある。遅延の影響を受けやすいアプリケーション（delay sensitive applications）の例としては、例えば、電話による通信（telephony）、ビデオ会議（video conferencing）及び遅延の影響を受けやすい制御システムが挙げられる。
【００２２】
さらに、時間が重要でないアプリケーション（non-time-critical applications）は、それらが受信端（receiving end）からの応答ないし受信応答がないことを検出する度に、より高いレベルの再送信を発する（issue higher level retransmissions）のが通例であり、かかる再送信は、未だ送信を成功していないデータ（not-yet-successfully transmitted data）及び／又は新たに再送信したデータ（newly retransmitted data）でＡＲＱバッファが満たされてしまうような状況を引き起こすことがあり得る。これは、データが有効時間（validity time）と関連付けられ、かつ、その有効時間がアプリケーションのための再送信時間よりも少し短くなるように設定されていれば、回避することができる。しかし、実際には、下位レイヤ（ＬＬＣ）（lower layer (LLC)）ではどのアプリケーションが最上位（top level）にあるかを意識しないので、どの再送信時間が用いられているかを見分けることは困難ないし不可能ともなり得る。かかる状況においては、一定のアプリケーションを仮定し、かつ、その仮定に基づいて通信システムを特別に設計する必要がある。
【００２３】
ある種のサービス・クラス（certain service classes）で一定の転送遅延時間後については、非同期転送モード（ＡＴＭ(Asynchronous Transfer Mode)）においてデータ・パケットを破棄すること（discarding）が許容されている。ＡＴＭに関連して用いられるＡＲＱでは、ＡＴＭレイヤによって提供される転送遅延情報を利用して、ＡＲＱの機能において接続に特有の破棄タイマ（connection-specific discard timers）を調整することができる。しかし、受信機におけるＡＲＱは、紛失したパケットないし不完全なパケットを検出すると共に再送信を要求することもあり得る。
【００２４】
要するに、現在のＡＲＱの方法は、データ・パケットが限られた生存期間（limited lifetime）を有する状況を承認及び許容しておらず、かつ、それ故に著しく遅延ないし陳腐化したデータ・パケットを送らない（あるいは再送（resending）しない）ことによって帯域幅の利用（bandwidth usage）を最小化することをしていない。
【００２５】
【課題を解決するための手段】
本発明の代表的な実施形態によれば、データ・パケットが任意だが限りのある生存期間（arbitrary but limited lifetime）を有するものとして取り扱うこと（accounting）により、帯域幅の利用を最小化するＡＲＱの手法が提供される。その生存期間は、固定的なものとみなしてもよく、あるいは、ＡＴＭレイヤの情報から推定するものとしてもよい。特に、本発明の代表的な実施形態は、陳腐化したデータ・パケットを破棄する高度化されたＧＢＮ方式による手法とＳＲ方式による手法をも多面的に例示し、かつ、それらの実施形態は、陳腐化したデータ・パケットを破棄するＳＡＷ方式による手法に適用することができる原理（principles）を具現化する。
【００２６】
本発明の一実施形態によれば、破棄されかつ再送されない１つ又は２つ以上の誤りパケットないし未受信（unreceived）パケットに続くパケットの受容（accept（受入れ））を受信機に強制するために、ＡＲＱヘッダ内にビットを設定する。
【００２７】
本発明の他の実施形態によれば、ＮＡＣＫが受信され、かつ、データ・パケットが破棄されたときに、破棄されていないデータ・パケット（non-discarded data packets）に対して各シーケンス番号を再割当（reassign）することにより、送信される破棄されていないパケットのストリーム（stream）が連続したシーケンス番号を有するようにする。
【００２８】
本発明の他の実施形態によれば、パケット破棄において送信機が受信機の状態を監視する。あるパケットについてそれが既に破棄されたものであると予想される場合には、送信機は、データ・パケットの番号を付け替えること（renumbering）により、あるいは、任意に選ばれるシーケンス番号（arbitrarily chosen sequence number）を受け入れるよう受信機に命令すること（commanding）により、再同期（resynchronize）を行う。
【００２９】
【発明の実施の形態】
本発明の他の目的と他の有利な効果は、好ましい実施形態についての以下の詳細な説明から、添付図面を参照しつつ読んだときに、当業者にとって容易に理解できるものとなるであろう。図面中の同様の構成要素（elements）は、同様の参照符号によって表してある。
【００３０】
送信機と受信機がデータ・パケットを交換している通信システムを伴う本発明の代表的な実施形態によれば、パケット破棄の手順において、送信機の送り手窓の最後部（bottom part）の進行を受信機に対して報告し、破棄されたためにもはや存在しないパケットを受信機が適切にスキップ（properly skip）することを可能にする。このように、受信機に対し、破棄されたパケットをスキップないし看過（overlook）するように命令をすることができる。すなわち、換言すれば、受信機に対し、破棄されたパケットを受信することの如何なる期待（expectation）をも解除（release）するように命令をすることができる。アンビギュイティの問題発生を防ぐために、受信機及び送信機に対して特別な規則（rules）を定義すると共に、それらの特別な規則に受信機及び送信機を従わせる。
【００３１】
送信機がパケットを破棄する場合において、その送信機は、次のパケットのＡＲＱヘッダ内に一定の受信機パケット強制ビット（ＲＰＥＢ(Receiver Packet Enforcement Bit)）を設定すると共にそのパケットを受信機へ送ることにより、受信機に対して次のパケットを受け入れるよう命じる。そのパケットを受信機が受信すると、ＲＰＥＢビットが受信機にそのパケットを受け入れさせることになる。図８は、ＡＲＱヘッダ８１２及びデータ部分８１８を有するＡＲＱパケット８１０を示している。ヘッダ８１２は、受信パケット強制ビットＲＰＥＢ８１４とｋビットのシーケンス番号Ｎ（Ｓ）８１６とを含んでいる。他の形態として、ＡＲＱパケットとは別個に、複数の強制ビットを、それぞれの強制ビットがどのＡＲＱパケットに属するかについての潜在的な指示あるいは表面的に明確な指示（implicit or explicit indications）と共に、送ることもできる。
【００３２】
特定のＡＲＱパケットに係るＲＰＥＢを送るこの強制の機能は、様々な状況で利用することができる。例えば、シーケンス番号Ｎ（Ｒ）で表されるＡＲＱパケットに係るＮＡＣＫがＡＲＱ受信機により送られると共にＡＲＱ送信機により適切に受信される、という状況が起こり得る。そのＮＡＣＫが破棄された一つのデータ・パケットについて有効である場合には、再送信すべき次のデータ・パケットを、ＴＲＵＥ（論理の真）に設定したＲＰＥＢを有するものにすることができる。
【００３３】
他の状況の例としては、再送信タイマの時間が経過し、かつ、１つ又は２つ以上のパケットが破棄された、という状況もある。送信されるべきである次に到来する（next incoming）データ・パケットないし再送信されるべきである最初のデータ・パケットは、ＴＲＵＥに設定されたＲＰＥＢを有するものとすることができる。
【００３４】
さらに、システムは、他のすべての状況において、データ・パケットに係るＲＰＥＢをＦＡＬＳＥ（論理の偽）に設定するように、構成することができる。
【００３５】
特に、システムがＧＢＮ方式によるタイプのパケット交換を利用している場合には、２つのタイプのパケット強制方式（packet enforcement schemes）を利用することができる。第１のタイプは、任意の窓サイズ（an arbitrary window size）Ｗを用いる一般化方法（general method）であり、第２のタイプは、その一般化方法の特別ケース（special case）である。その特別ケースでは、窓サイズがＷ＝２ｋ−１であるとする。すなわち、特別ケースでは、窓サイズを最大シーケンス番号の半分とする。
【００３６】
特別ケースの方法では、非常に単純な規則の適用によってアンビギュイティを回避することができる。特別ケースの方法では、新たな変数ＤＳＮを採用する。ＤＳＮは、例えば、図９に示したものであり、すべての前のパケットが適切に送信及び受信をされたとして受信応答されたことを示すものである。図９において、ＤＳＮからＢＳＮ−１までのすべてのパケットは、パケット破棄タイムアウト（packet discard time-out）によって破棄されている。パケット破棄タイムアウトは、例えば、バッファ内の最も古いパケットが所定長の時間（predetermined amount of time）の間バッファ内に格納され、かつ、その所定長の時間が終了したことによって破棄される場合に、起こるものとすることができる。古いパケットが破棄されると、ＢＳＮの値は、それがバッファ内に残っている（すなわち破棄されていない（undiscarded））最も古いパケットを指し示す（point）までインクリメントされる。図９は、バッファ内に残っている最も古いパケットを指し示しているＢＳＮを示している。所定長の時間が経過した後では、ＴＳＮの値が新たなＢＳＮの値以上に（新たなＢＳＮの値より大きいか新たなＢＳＮの値に等しく）なる。これは、ＢＳＮからＴＳＮ−１までのパケットが送られたことを表している。ＴＳＮは次に送る新たなパケットを示し、かつ、ＩＳＮは、前述のと同じ機能（the same function as indicated earlier）、すなわち、送られるべき次のパケットのシーケンス番号を示す機能を有する。ＥＳＮ（例えばＥＳＮ１）は、受信機が受信することを期待している次のパケットのシーケンス番号を示す。アンビギュイティが生じるのを防ぐためには、ＴＳＮがＴＳＮＭＡＸを越えてはならない。これの他の形態としては、ＴＳＮＭＡＸをＤＳＮ＋２ｋ−１とする。
【００３７】
ＤＳＮとＢＳＮの間のデータ・パケットが図９に示したように破棄されたとしても、何等かの未知の理由のために、以前のＡＣＫｓがＡＲＱ受信機からＡＲＱ送信機へと進んで行かなかったり、ＥＳＮ１からＴＳＮに至るまでのＡＲＱパケットが受信されなかったりすることがある。そのことは、破棄されたＡＲＱパケットを表すシーケンス番号のシーケンス中にＥＳＮ１がある原因、すなわち、換言すれば、破棄されたシーケンス番号を受信機が期待している原因を、明らかにしている。この際には、再送信タイマが再送信を開始させ、あるいは、ＮＡＣＫが適切に受信される。双方のケースにおいて、ＲＰＥＢは、送信される次のパケットについてＴＲＵＥに設定される。Ｎ（Ｓ）とＥＳＮ（例えばＥＳＮ１）との差が２ｋ−１より小さく、かつ、パケットの受信（packet reception）においてＲＰＥＢ＝ＴＲＵＥである場合には、当該パケット内で搬送されたデータも正しいものとなっている限り、当該パケットは、受け入れられ、かつ、上位レイヤへ回送されることになる。
【００３８】
図９は、ＴＳＮＭＡＸがＤＳＮ＋２ｋ−１と定められた場合には全くアンビギュイティが生じないことも示している。ＥＳＮ（ＥＳＮ１）がＢＳＮの後に遅れた場合には、受信機にＲＰＥＢ＝ＴＲＵＥとなっているＡＲＱパケットを常に受信させることができる。ＥＳＮ（ＥＳＮ１）がＢＳＮに先行しており、かつ、受信したＡＲＱパケットについてのＲＰＥＢがＴＲＵＥである場合には、パケットを受け入れないものと定める。これは、ＢＳＮ−ＥＳＮがＷ＝２ｋ−１を越えているかどうかを見分けることによって判断することができる。ＴＳＮよりも先の（higher）シーケンス番号についてＡＲＱ送信機でＮＡＣＫが受信された場合には、誤り（fault）が発生しており、再初期化（reinitialization）ないし再始動（restart）がなされるものと見込まれる。再初期化ないし再始動においては、ＡＲＱを改めて再始動できるように、すべてのカウンタ及び／又は変数が一定の値にリセットされる。例えば、ＴＳＮ＝ＩＳＮ＝ＢＳＮ＝ＥＳＮ＝ＤＳＮ等となるように、各変数を設定することもできる。
【００３９】
図１０Ａ及び図１０Ｂは、２つのケースを示すことにより、変数の定義をより明確に示したものである。図１０Ａは、バッファ内のコンテンツ（content）が少ないケースを示し、図１０Ｂは、バッファが非常に満たされている（very full）ケースを示している。また、図１０Ａ及び図１０Ｂは、パケットのバッファに上限（固定的又は動的な上限）があり得ることも示している。上位レイヤから受信されたが、ＴＳＮがＴＳＮＭＡＸに到達する可能性があるために送信が許されないパケットもあり得る。かかるパケットは、送信を保留（pending）されており、図１０Ｂ中に示した保留シーケンス番号ＰＳＮで表してある。処理を進めるためにクリアランス（clearance（空き））が与えられると、すぐにそれらの保留中のパケットが送信されることになる。クリアランスはＮＡＣＫ又はＰＡＣＫが適切に受信された時に与えられ、それによってＤＳＮとおそらくＢＳＮをも前に進行させる。これは、ＴＳＮＭＡＸが前に進行することも許容する。
【００４０】
他方、より一般的なケースでは、より複雑な規則が必要になる。次に、より一般化したケースを表す任意の窓サイズを用いるＡＲＱ送信機の機能について説明する。
【００４１】
図１１は、ＡＲＱの任意の状態を示した図である。一般のケース（general case（一般化したケース））は、窓サイズ（Ｗ）がＤＳＮではなくＢＳＮを用いて定義されるという点において、上述した特別ケースとは異なる。これは、最後に受信応答がされた（the last acknowledged）パケット（ＤＳＮ）と最先の送られた（the highest sent）パケット（ＴＳＮ）との間の距離（distance）について、可能な限りの最大の距離を与える。特別ケースにおけるのと同様に、ＴＳＮがＴＳＮＭＡＸを越えて行くことはない。ＴＳＮＭＡＸ＝ＢＳＮ＋Ｗであり、１≦Ｗ≦２ｋ−１である。
【００４２】
以下、≦の記号を使用する。ここでは法の整数論（modulus arithmetic）を用いているので、その記号は、通常の数学的な意味におけるものよりむしろ“前”及び“後”（“before”and“after”）という意味で用いる。例えば、ｋ＝８ビットとすると、ＢＳＮ＝１９２であり、かつ、Ｗ＝１２８である。これは、ＢＳＮ＋Ｗ＝（１９２＋１２８）ｍｏｄ２ｋ＝６４を与える。ＴＳＮは、例えば２５４とすることができ、この２５４としたＴＳＮは、数学的には２５４＞（１９２＋１２８）ｍｏｄ２ｋ＝６４であるが、ＢＳＮ＋Ｗより前である。
【００４３】
いくつかの重要な条件として、ＴＳＮ≦ＤＳＮ−１、ＴＳＮ≦ＴＳＮＭＡＸ及びＤＳＮ≦ＢＳＮ≦ＴＳＮがある。ここで、ＴＳＮＭＡＸ＝ＢＳＮ＋Ｗである。Ｗは、１と２ｋ−１の間の任意の値と考えることができる。しかし、受信機と送信機は、両者共Ｗとして同じ任意の値を使用しなければならない。
【００４４】
Ｎ（Ｓ）−ＥＳＮ＜２ｋ−Ｗであり、かつ、ＲＰＥＢ＝ＴＲＵＥであり、かつ、パケット内のデータが正しいものである場合には、通常のＧＢＮ方式の機能とは別に、パケットを受け入れるものと定める。
【００４５】
一般のケースに対する追加の規則は、アンビギュイティの問題を回避するために、ＢＳＮ−ＤＳＮを常に２ｋ−Ｗよりも小さくするものと定めることである。（ＢＳＮ−ＤＳＮ）＝２ｋ−Ｗとなる状況が生じた場合には、通常は再同期が行われ、あるいは、劣悪なリンク・パフォーマンス（bad link performance）を知らせる通知が制御及び管理レイヤ（the control and management layer）へ送られることになる。その後、制御及び管理レイヤは、問題を処理するための対策を実施することができる。
【００４６】
例えば図１２に例示した本発明の他の代表的な実施形態においては、ＳＲ方式によるタイプのパケット交換を用いる。そのＳＲ方式によるタイプのパケット交換は、ＧＢＮ方式によるタイプのパケット交換と共に用いるための特別ケース及び一般のケースに関して上に説明したのと同じ基本原理を頼りにして行う。すなわち、他の実施形態に関する上述したＲＰＥＢのような受信強制ビットを送り、送信機のバッファからのパケットの破棄を容易にする。
【００４７】
この実施形態において、基本的な規則には、ＤＳＮ≦ＢＳＮ≦ＴＳＮ≦ＴＳＮＭＡＸであり、かつ、ＴＳＮＭＡＸ−ＤＳＮ＝２ｋ−１であることが含まれる。変数の定義は、他の実施形態に関して上に述べた変数の定義と同様である。ＮＡＣＫ、ＰＡＣＫ及びパケットの自動再送信を取り扱う方法に関するいくつかの追加の規則についても以下に説明する。
【００４８】
いくつかのパケットの再送信が行われた状況においては、パケット破棄タイムアウトが起こり得る。パケット破棄タイムアウトは、最も古い未だ受信応答されていない（not-yet-acknowledged）バッファ内のパケットが破棄されるようにする。これは、例えば図１２において見ることができ、図１２では、ＤＳＮとＢＳＮの間のシーケンス番号を有するパケットが破棄されている。
【００４９】
送信機のバッファから古いパケットが破棄された後に、２つのことが起こり得る。タイマの期間終了（timer expiration）によってパケット再送信コマンドが呼び出され（invoked）、あるいは、ＤＳＮとＢＳＮの間に属するシーケンス番号についてＮＡＣＫが受信される。最初に、ＮＡＣＫのケースについて考察する。
【００５０】
ＮＡＣＫの一用途として次の特質を含めるものと考える。ＮＡＣＫが送られる時に、最も古く未だ受信されていない（not-yet-received）パケットがそのシーケンス番号によって表面的に明確に示される。この最も古い未処理のパケットより前のシーケンス番号を持つパケットは、そのＮＡＣＫメッセージによって同時に肯定受信応答される。そのＮＡＣＫには、ａ）未処理のパケットを示す長さｎのビットマップ、又は、ｂ）受信されていないパケットに係る、表面的に明確に示されたシーケンス番号の数Ｎ、又は、ｃ）ａ）及びｂ）の何等かの組合せを、添付（accompanying）することができる。ここで、ａ）のビットマップにおいては、例えば、それらの１に設定されたビットが未処理パケットを示すこととしてもよい。
【００５１】
第１のケースにおいて、図１２を参照すると、ＤＳＮからＢＳＮの区間（interval）内にあるＥＳＮ１についてＮＡＣＫが受信され、かつ、そのＮＡＣＫに対して有効範囲とされるＡＣＫの範囲（covered ACK range）がＢＳＮ−ＥＳＮ１より小さく、かつ、少なくとも一つのパケットがまだ破棄されていない（ＴＳＮ≠ＢＳＮ）場合には、ＢＳＮによって示されるパケットがＲＰＥＢをＴＲＵＥに設定されて再送信される。ここで留意すべきこととして、パケットが破棄されたことの情報を受信機に伝えるために、送信機が短い制御メッセージも送ることとし、それによって帯域幅を節約することもできる。
【００５２】
第２のケースにおいて、ＤＳＮとＢＳＮの間の区間内に位置するＥＳＮ１についてＮＡＣＫが受信され、かつ、そのＮＡＣＫに対して有効範囲とされるＡＣＫの範囲がＢＳＮ−ＥＳＮ１より小さく、かつ、すべてのパケットが破棄された（すなわち、ＢＳＮ＝ＴＳＮとなった）場合には、ＲＰＥＢ＝ＴＲＵＥとされた保留パケットが送られる。しかし、送信用にパケットが全く保留されていないときは、システムは、ａ）上位レイヤから次のパケットが受信されるまで待機すると共に、その後そのパケットをＲＰＥＢ＝ＴＲＵＥとして送信するか、あるいは、ｂ）現時点ではこれ以上送信するパケットがないことの情報を受信機に伝える。パケットより短いメッセージを代わりに用いてパケットが破棄されたことの情報を受信機に伝え、それによって帯域幅を温存（conserve）することもできる。
【００５３】
第３のケースにおいて、ＤＳＮからＢＳＮの区間内にあるＥＳＮ１についてＮＡＣＫが受信され、かつ、そのＮＡＣＫに対して有効範囲とされるＡＣＫの範囲がＢＳＮ−ＥＳＮ１より大きく、かつ、少なくとも一つのパケットがまだ破棄されておらず、かつ、シーケンス番号≧ＢＳＮのシーケンス番号を有する少なくとも一つの未処理パケットが存在する場合には、ＮＡＣＫメッセージによって示されるような、ＢＳＮの後の最初の未処理パケットが、ＲＰＥＢ＝ＴＲＵＥとされて再送信される。
【００５４】
第４のケースにおいて、ａ）ＤＳＮとＢＳＮの間の区間内にあるＥＳＮ１についてＮＡＣＫが受信され、かつ、ｂ）そのＮＡＣＫに対して有効範囲とされるＡＣＫの範囲がＢＳＮ−ＥＳＮ１より大きく、かつ、ｃ）ＮＡＣＫメッセージによって示されるパケットより後のシーケンス番号を有すると共に、送信されたが肯定的にも否定的にも受信応答されていない、パケットが少なくとも一つ存在し、かつ、ｄ）シーケンス番号≧ＢＳＮのシーケンス番号を持つＮＡＣＫメッセージ中で示される未処理パケットが全くない場合には、ＮＡＣＫメッセージ中で示されるパケットの後の最初のパケットがＲＰＥＢ＝ＴＲＵＥとされて再送信される。パケットより短いメッセージを代わりに用いてパケットが破棄されたことの情報を受信機に伝え、それによって帯域幅を節約することもできる。
【００５５】
第５のケースにおいて、ａ）ＤＳＮからＢＳＮの区間内にあるＥＳＮ１についてＮＡＣＫが受信され、かつ、ｂ）そのＮＡＣＫに対して有効範囲とされるＡＣＫの範囲がＢＳＮ−ＥＳＮ１より大きく、かつ、ｃ）ＮＡＣＫメッセージによって示されるパケットの後にパケットが全く存在せず、かつ、ｄ）シーケンス番号≧ＢＳＮのシーケンス番号を持つＮＡＣＫメッセージ中で示される未処理パケットが全くない場合には、送信を保留されているパケットがＲＰＥＢ＝ＴＲＵＥとされて送られる。換言すれば、ＢＳＮからＴＳＮまでの範囲内にある（すなわち、ＴＳＮ≦Ｎ（Ｓ）≦ＢＳＮの）シーケンス番号Ｎ（Ｓ）を有するパケットがすべて肯定受信応答されたときは、送信を保留されているパケットがＲＰＥＢ＝ＴＲＵＥとされて送られる。しかし、送信を保留されているパケットが全くない場合には、システムは、上位レイヤから次のパケットが受信されるまで待機すると共に、その後その次のパケットをＲＰＥＢ＝ＴＲＵＥとして送るか、あるいは、現時点ではこれ以上送るパケットがないことを受信機に警告（alert）する。パケットより短いメッセージを代わりに用いてパケットが破棄されたことを受信機に警告し、それによって帯域幅を節約することもできる。
【００５６】
第６のケースにおいて、パケットのタイマ始動の再送信が行われ、かつ、ＩＳＮ＝ＢＳＮであるときは、ＲＰＥＢをＴＲＵＥに設定しなければならない。そうでないときは、ＲＰＥＢをＦＡＬＳＥに設定しなければならない。他の形態としては、ＩＳＮ＝ＢＳＮであり、かつ、ＢＳＮ≠ＤＳＮであるとき（when ((ISN＝BSN) and (BSN≠DSN))）にＲＰＥＢをＴＲＵＥに設定することができ、かつ、そうでないときにＲＰＥＢをＦＡＬＳＥに設定することができる。
【００５７】
ＲＰＥＢ＝ＴＲＵＥとした正しいパケットが受信されたときには、このパケットより前のパケットと次の未処理パケットまでのパケットとのすべてがバッファから放出（release）されると共に上位レイヤへ回送される。アプリケーションないし他のレイヤは、遅延と組立の要件が一致する場合（delay and assembly requirements are met）に、それらのパケットが利用できるかできないかを決定する。
【００５８】
サイズ＜２ｋ−１の窓を用いるケースにおいては、ＳＲ方式自体によって課される通常の要求以上に、追加の破棄性能に関する事項（additional discard capability concerns）を考える必要は全くない。
【００５９】
ＧＢＮ方式と共に用いるための本発明の他の実施形態においては、ＮＡＣＫが受信され、かつ、Ｎ（Ｒ）＜ＢＳＮである場合だけに再同期を行うものとする。その場合、送信機が受信機の状態をすべて認識している（have full knowledge of the receiver）、すなわち、ＥＳＮが分かっていることになる。留意すべきこととしては、上述したようなＮＡＣＫが受信され、かつ、受信機の状態をすべて認識することを確保するために受信機が一往復遅延期間（one round-trip delay period）待機し得るケースも存在する。すなわち、ＮＡＣＫがなされたパケットの再送信がちょうど実行され、かつ、パケットがすべてのバッファを通過したかどうかと他の遅延発生要因（delay-causing）が作用するかどうかが未知である場合には、受信機が一往復遅延期間待機するものとすることができる。この場合には、パケットのシーケンス番号の付け替え（renumbering）を実行し、その番号の付け替え後に送られる最初のＡＲＱパケットが、ＮＡＣＫが参照したパケットのシーケンス番号と同じシーケンス番号を携行する（carry）ようにすることができる。
【００６０】
図１３においては、ＥＳＮがＢＳＮに先行していることから、破棄されたパケットについてＮＡＣＫが受信されている。したがって、ＢＳＮからと前方にある続くすべてのパケット（all subsequent packets from BSN and onwards）は、ＢＳＮのパケットがＥＳＮで始まり、ＢＳＮ＋１のパケットがＥＳＮ＋１に番号を付け替えられる、などとなるように、番号の付け替えがなされる。ただし、番号の付け替えは、タイマ始動の再送信に対しては実行されない。
【００６１】
基礎的なＧＢＮ方式と共に用いるための本発明の他の実施形態では、それぞれの破棄の際（discard occasion）に受信機と送信機が再同期化される。この実施形態では、ＡＲＱパケットが以前に受信応答されていない場合に、それらのＡＲＱパケットを破棄できるだけとなる。
【００６２】
再同期は、破棄がいつ実行されたかを知っているのが送信機であるため、送信機によって始動される。送信機は、受信機がＡＲＱパケットを受け入れたところまで（ただし、そのところは含まない）のシーケンス番号を求める。そのシーケンス番号が最後に破棄されたシーケンス番号より前である場合には、送信機は、ある任意に選ばれた（ただし、予め定められる）シーケンス番号から再び開始する（start over）ことを受信機に命令する。次に送られるパケットは、この任意に選ばれたシーケンス番号から上昇していく（upwards）番号が付けられる。他の形態としては、送信機だけを再同期化し、その再同期化の後で送られる最初のパケットが受信機で期待している次のパケットと同じシーケンス番号を有するようにする。
【００６３】
本発明の様々な実施形態において、Ｗの大きさ（magnitude）は、関与する特定のアプリケーションに基づき、データ・ネットワーク内の送信機と受信機の間に呼が初期設定される時に定めることができる。例えば、データ・ネットワークにおけるソフトウェアの上位レイヤによって送信機が初期化される時に、それがＷの大きさを選択し、かつ、受信機にその大きさの情報を伝えることができ、逆の場合も同様である。Ｗの大きさを示す情報は、制御メッセージを利用して送信機から受信機へ（あるいは逆の場合も同様に）送ることができる。
【００６４】
要するに、本発明の様々な実施形態は、陳腐化したパケットを破棄することにより、ＡＲＱパケットを使用している通信システムのスループットを増大させる。さらに、本発明の様々な実施形態は、送信機内のＡＲＱバッファがオーバーフローする虞を低減する。また、本発明の様々な実施形態に関して上に説明した原理がＳＡＷのＡＲＱ方式に対して適用できることも、当業者には容易に理解できるであろう。
【００６５】
本発明がその精神ないし必須の特徴から逸脱することなく他の具体的な形態にも具現化することができること、及び、ここで述べた具体的な実施形態に本発明が限定されないことは、当業者によって容易に理解されることである。したがって、ここで開示した実施形態は、すべての点において例示的なものであって制限的なものではないとみなされる。本発明の範囲は、上述した説明ではなく特許請求の範囲によって示されており、かつ、その意味（meaning）、領域（range）及び均等物の範囲内に帰するすべての変形は、その中に包含されるものと解釈される。
【図面の簡単な説明】
【図１】  従来技術であるＧＢＮ方式による手法を（Ａ）及び（Ｂ）に例示した図である。
【図２】  従来技術であるＧＢＮ方式による手法における窓（window）を例示した図である。
【図３】  従来技術であるＧＢＮ方式による手法における送信のシーケンスを（Ａ）〜（Ｄ）に例示した図である。
【図４】  従来技術であるＧＢＮ方式による手法における肯定受信応答の使用を（Ａ）〜（Ｄ）に例示した図である。
【図５】  ＡＲＱのデータ・パケットの従来技術の例を示した図である。
【図６】  受信応答メッセージの従来技術の例を示した図である。
【図７】  従来技術であるＳＲ方式による手法における否定受信応答の使用を（Ａ）〜（Ｃ）に例示した図である。
【図８】  本発明の一実施形態に基づく受信機パケット強制ビット（receiver packet enforcement bit）を例示した図である。
【図９】  本発明の一実施形態の動作を例示した図である。
【図１０】  本発明の一実施形態の動作を例示した図である。
【図１１】  本発明の一実施形態の動作を例示した図である。
【図１２】  本発明の一実施形態の動作を例示した図である。
【図１３】  本発明の一実施形態の動作を例示した図である。
【図１】
0003817426.tif 000002
【図２】
0003817426.tif 000003
【図３】
0003817426.tif 000004
【図４】
0003817426.tif 000005
【図５】
0003817426.tif 000006
【図６】
0003817426.tif 000007
【図７】
0003817426.tif 000008
【図８】
0003817426.tif 000009
【図９】
0003817426.tif 000010
【図１０】
0003817426.tif 000011
0003817426.tif 000012
【図１１】
0003817426.tif 000013
【図１２】
0003817426.tif 000014
【図１３】
0003817426.tif 000015