(57)【特許請求の範囲】
【請求項１】
スライドウインドウフロー制御を利用する少なくとも１つの送信側ノードと少なくとも１つの受信側ノード間の伝送制御プロトコルＴＣＰ接続を実施する通信ネットワークにおいて、送信側ノードで再伝送タイマーに基づくエラー修復を実行する方法であって、
（ａ）  受信側ノードから承認ＡＣＫセグメントを受け取る工程と、
（ｂ）  送信側ノードが、受信側ノードから予め定められた数の重複承認セグメントＤＵＰＡＣＫＳを受信するのに必要な時間の関数として再伝送タイマー値ＲＴＯを決定する工程と、
（ｃ）  送信側ノードと受信側ノード間のセッションに関連する再伝送タイマーＲＥＸＭＴを前記再伝送タイマー値ＲＴＯで再初期化する工程と、
を含む方法。
【請求項２】
工程（ｃ）は、送信側ノードから受信側ノードへ以前に伝送されたセグメントの伝送時間との間の経過時間を引いた再伝送タイマー値ＲＴＯに相当する値で前記再伝送タイマーＲＥＸＭＴを初期化する、請求項１に記載の方法。
【請求項３】
再伝送タイマー値ＲＴＯを決定する工程が、送信側ノードに関係するメモリーの内容を参照することを含んでなる請求項１に記載の方法。
【請求項４】
再伝送タイマー値ＲＴＯを決定する工程が、送信側ノードに関係するプロセッサ上での並列論理動作によって遂行される請求項１に記載の方法。
【請求項５】
再伝送タイマー値ＲＴＯが、送信側ノードと受信側ノード間のラウンドトリップ時間ＲＴＴの関数として決定される請求項１に記載の方法。
【請求項６】
再伝送タイマー値ＲＴＯが、送信側ノードと受信側ノード間のラウンドトリップ時間ＲＴＴ内の変動の関数として決定される請求項１に記載の方法。
【請求項７】
再伝送タイマー値ＲＴＯが、送信側ノードと受信側ノード間のラウンドトリップ時間ＲＴＴと、送信側ノードと受信側ノード間のラウンドトリップ時間ＲＴＴの変動の関数として決定される構成部分を含み、
送信側ノードから受信側ノードへ伝送される非承認セグメントの数が予め定められた数を上回る場合には、再伝送タイマー値ＲＴＯが、受信側ノードから予め定めされた数の重複承認セグメントＤＵＰＡＣＫＳを受信するのに必要な時間の関数として決定される構成部分を含む、請求項１に記載の方法。
【請求項８】
受信ノードから受け取るそれぞれの承認セグメントに対して工程（ｃ）を繰り返す工程をさらに含んでなる請求項１に記載の方法。
【請求項９】
以前に伝送されたセグメントが、送信側ノードから受信側ノードへ再伝送のために保存された最初のセグメントに相当する請求項２に記載の方法。
【請求項１０】
前記請求項１ないし９の何れかひとつの方法は、
（ａ）  送信側ノードと受信側ノード間の伝送制御プロトコル接続を開設し（３００）、
（ｂ）  予め定めされた再伝送タイマー値ＲＴＯで再伝送タイマーＲＥＸＭＴを初期化し（３１０）、
（ｃ）  送信側ノードから受信側ノードへデータセグメントを伝送し（３２０）、
（ｄ）  受信側ノードから承認ＡＣＫセグメントを受け取り（３３０）、
（ｅ）  受信側ノードから各承認ＡＣＫセグメントを受け取る際に、受信側への再伝送のために送信側に関連するメモリー内に保存されている以前に伝送されたセグメントの伝送時間以降の経過時間を引いた再伝送タイマー値ＲＴＯに相当する値で再伝送タイマーＲＥＸＭＴを再初期化する（３１０）、
工程を含んでなる方法。
【請求項１１】
ネットワーク上の送信側ノードと受信側ノード間で論理的な接続を実施するパケット交換通信ネットワークの動作方法であって、送信側ノードは、スライドウインドウフロー制御と再伝送タイマーに基づくエラー修復を利用するように構成されている方法において、
（ａ）  ネットワーク上の送信側ノードと各受信側ノード間の論理的接続を確立する工程と、
（ｂ）  ネットワークトラフィックパラメータの関数である再伝送タイマー値で論理接続に対して、再伝送タイマーを初期化する工程と、
（ｃ）  ネットワーク上の送信側ノードから各受信側ノードへデータパケットを伝送する工程と、
（ｄ）  各受信側ノードから承認パケットを送信側ノードで受け取る工程と、
（ｅ）  承認パケットを受け取る際に、送信側ノードが、受信側ノードから予め定められた数の重複承認セグメントＤＵＰＡＣＫＳを受け取るのに必要な時間の関数として再伝送タイマー値ＲＴＯを決定し、送信側と受信側間の接続に関連する再伝送タイマーを前記再伝送タイマー値で再初期化する工程と、
を含んでなる方法。
【請求項１２】
以前に伝送されたパケットが、送信側ノードから受信側ノードへ再伝送のために保存された最初のパケットに相当する請求項１１に記載の方法。
【請求項１３】
再伝送タイマー値ＲＴＯを決定する工程が、送信側ノードに関連するプロセッサ上での並列論理動作によって遂行される請求項１１に記載の方法。
【請求項１４】
再伝送タイマーが、送信側ノードと受信側ノード間のラウンドトリップ時間と、送信側ノードと受信側ノード間のラウンドトリップ時間の変動の関数として決定される構成部分を含み、
送信側ノードから受信側ノードへ伝送される未承認パケットの数が予め定められた数を上回る場合には、再伝送タイマー値は、受信側ノードから予め定めされた数の重複承認パケットを受け取るのに必要な時間の関数として決定される構成部分を含む請求項１２に記載の方法。
【請求項１５】
スライドウインドウフロー制御と、再伝送タイマーＲＥＸＭＴに基づくエラー修復を利用して、少なくとも一の送信側ノードと少なくとも１つの受信側ノード間の伝送制御プロトコル接続を実施する通信ネットワーク要素であって、
（ａ）  受信側ノードへデータセグメントを伝送するための出力モジュールと（３２０）、
（ｂ）  受信側ノードからの承認ＡＣＫセグメントを受信するための入力モジュールと（３３０）、
（ｃ）  送信側ノードが、受信側ノードから予め定められた数の重複承認セグメントＤＵＰＡＣＫＳを受け取るのに必要な時間の関数として再伝送タイマー値ＲＴＯを決定し、再伝送タイマーＲＥＸＭＴを前記再伝送タイマー値で再初期化するための、前記ネットワーク要素に関係するプロセッサ上で動作する論理と、
を具備してなる通信ネットワーク要素。
【請求項１６】
スライドウインドウフロー制御と再伝送タイマーに基づくエラー修復を利用して、少なくとも一の送信側ノードと少なくとも一の受信側ノード間の伝送制御プロトコルＴＣＰ接続を実施する通信ネットワークであって、
（ａ）  送信側ノードと受信側ノード間の伝送制御プロトコルＴＣＰ接続を開設する手段と、
（ｂ）  予め定められた再伝送タイマー値ＲＴＯで再伝送タイマーＲＥＸＭＴを初期化する手段と、
（ｃ）  送信側ノードから受信側ノードへデータセグメントを伝送する手段と、
（ｄ）  受信側ノードから承認ＡＣＫセグメントを受け取る手段と、
（ｅ）  送信側ノードが、受信側ノードから予め定められた数の重複承認セグメントＤＵＰＡＣＫＳを受け取るのに必要な時間の関数として再伝送タイマー値ＲＴＯを決定する手段と、
（ｆ）前記再伝送タイマーＲＥＸＭＴを前記再送タイマー値ＲＴＯで再初期化する手段と、
を具備してなる通信ネットワーク。
【請求項１７】
ネットワーク上の送信側ノードと受信側ノード間の論理接続を実施するパケット交換通信ネットワークであって、送信側ノードが、スライドウインドウフロー制御と再伝送タイマーに基づくエラー修復を利用するように構成されたネットワークにおいて、
（ａ）  ネットワーク上の送信側ノードと各受信側ノード間の論理接続を確立する手段と、
（ｂ）  ネットワークトラフィックパラメータの関数である再伝送タイマー値で再伝送タイマーを、論理接続に対して、初期化する手段と、
（ｃ）  ネットワーク上の送信側ノードから各受信側ノードへデータパケットを伝送するための手段と、
（ｄ）  各受信側ノードから承認パケットを送信側ノードで受け取るための手段と、
（ｅ）  送信側ノードが、受信側ノードから予め定められた重複承認セグメントＤＵＰＡＣＫＳを受け取るのに必要な時間の関数として再伝送タイマー値ＲＴＯを決定し、受信側と送信側間の接続に関連する再伝送タイマーを前記再伝送タイマー値で再初期化する手段と、
を具備してなるネットワーク。
【発明の詳細な説明】
【０００１】
（背景）
本発明は、パケット交換通信ネットワーク内でのデータ伝送のシステムと方法に関する。より詳細には、本発明はパケット交換通信ネットワーク内でのデータ伝送速度を改良するためのシステムと方法に関する。
【０００２】
通信ネットワークは、回線交換またはパケット交換ネットワークのどちらかに分類できる。回線交換ネットワークは、従来から電話ネットワークのような音声通信ネットワーク内で用いられており、ネットワーク上の２点間で論理的な接続を確立することによって動作する。通常、この通信は望まれる送信側のデータ伝送速度に関わらず、バンド幅と容量が固定されている。回線交換ネットワークは、動作に柔軟性がなくネットワークを通してのバンド幅や容量の割り当てが非効率であることが広く知られていた。対照的に、パケット交換ネットワークは、従来からデータ通信で用いられ、情報をパケットに分割することにより動作し、パケットは要求された受信ノードへネットワークを通って送信される。パケット交換ネットワークは送信側と受信側の間で論理接続が維持されるコネクション型、またはネットワーク上の送信側と受信側の間で論理接続が維持されないコネクションレス型である。パケット交換ネットワークは、回線交換ネットワークよりも柔軟で、バンド幅の割り当てにおいて実質的により効率的であることが広く知られている。部分的にはこれらの要因により、パケット交換ネットワークサービスの需要が過去２０年の間に劇的に増大した。またパケット交換ネットワークの需要は今後さらに増大することが見込まれる。
【０００３】
パケット交換データネットワークは、オープンシステムインタフェース（ＯＳＩ）モデルまたは伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）スタックの実施のような業界全体のデータ標準を基にして設計されている。ＯＳＩモデルにおいては、ネットワークシステムは通常多層プロトコルスタックである。またＴＣＰ／ＩＰプロトコルは一般に４層プロトコルスタックとしてモデル化されている。リンク、データリンク、またはネットワークインターフェース層と呼ばれるレイヤー１は、ネットワークの物理的な要素の仲介をするインターフェースとデバイスドライバを管理する。ネットワーク層またはインターネット層と呼ばれるレイヤー２はネットワーク上でのデータパケットのルーティングの役割を担う。インターネットプロトコル（ＩＰ）はネットワーク層プロトコルである。トランスポート層と呼ばれるレイヤー３は、ネットワークを通して伝送するために伝送されるデータを適切なサイズのパケットに分割する役割を担う。トランスポート層は、また、エラーの修復と混雑状態の制御プロセスを管理し、パケットの受信を承認して、伝送データが意図された受信側により受信されたことを保証するためのタイムアウトを設定する。伝送制御プロトコル（ＴＣＰ）はトランスポート層プロトコルである。アプリケーション層と呼ばれるレイヤー４は、特定のＴＣＰ／ＩＰアプリケーションの管理をする役割を担う。ＴＣＰ／ＩＰアプリケーションの例には、電子メールのＳＴＭＰ、ファイル伝送のＦＴＰ、リモートログインのテルネット等々が含まれる。ＴＣＰ／ＩＰプロトコル一式は、インターネットのように多数の接続されたコンピュータネットワークを通って、デジタル情報を伝送するのに用いられる第１の通信プロトコル一式である。ＴＣＰ／ＩＰプロトコルによるネットワークの動作は、概念的には以下のように説明できる：ＴＣＰ／ＩＰアプリケーションはトランスポート層で処理するための伝送用データを通過させる。トランスポート層は、例えば電子メールのようなアプリケーションから伝送用のデータを受け取り、セグメントと呼ばれる適切なサイズのパケットにそのデータを分割する。ついで、トランスポート層は、データグラムと呼ばれる、ＩＰのようなネットワーク層プロトコルに基づいてデータパケットをコンパイルするネットワーク層プロトコルユーティリティへデータセグメントを通過させ、一又は複数のネットワークを通してデータグラムを意図される受信側まで送る。順に、ネットワーク層は、例えばイーサネット接続のような特定の物理的な媒体の管理のためのリンク層プロトコルユーティリティのサービスを要求する。
【０００４】
ＩＰはＴＣＰを含む多数のトランスポート層プロトコルにより使用されうるコネクションレスの不信頼配信サービスを可能にする。ＩＰ層は、ＩＰがネットワークを通して伝送される連続するデータグラム間の論理的関係を維持しない点でコネクションレスである。それぞれのダイアグラムは、個々の断片化された情報としてネットワークによって取り扱われる。よって、たとえ大きなファイルが何百、何千のデータグラムを伝送することを必要としても、ネットワークのＩＰ層は情報を伝送する間、パケットが関連していることは分からない。個々のパケットはネットワークを通って異なる経路で伝送され、および／または如何なるシーケンスでも宛先に届きうる。ＩＰは、確実なエラー修復処理がＩＰ層において実施されない点で信頼性がない。
【０００５】
ＴＣＰは接続指向プロトコルである。ＴＣＰ（トランスポート）層では、論理接続がＴＣＰ送信側とＴＣＰ受信側の間で確立される。上で述べたように、送信側ノードでは、ＴＣＰ層が、データを伝送用の適切なサイズのセグメントに分割する役割を担う。受信側ノードでは、ＴＣＰ層は、受信したセグメントを承認し、関連したセグメントを再構成する役割を担う。ＴＣＰ層において実施されるさらなる機能にはエラーの修復と混信状態の制御が含まれる。広義には、エラー修復とは、送信側によって伝送されるパケットが、少なくとも目的とする受信側によって受信されていることを保証する処理を意味する。エラー修復は受信側が正しいデータを受信したことを保証するさらなるアルゴリズムを含みうる。
【０００６】
ＴＣＰは一つのエラー修復処理として再伝送機能を用いる。ＴＣＰに従うと、ＴＣＰ送信側は、予め定められた時間内に認証パケットが受信されていないデータパッケトを再伝送する。ＴＣＰは、エラー修復処理を実行するために再伝送タイマー（ＲＥＸＭＴ）を維持する。受信側によって返された認証（ＡＣＫ）セグメントそれぞれに対して、送信側はラウンドトリップ時間（ＲＴＴ）の関数である再伝送タイマー値（ＲＴＯ）でＲＥＸＭＴを再初期化する。多くのＴＣＰの実装において、ＲＴＴはＴＣＰ送信側によって連続的に比較される。別の実施態様では、ＲＴＴは、実際のＲＴＴに基づいて更新されうる。ワイヤレス通信のためのリンク層プロトコルである無線リンクプロトコル（ＲＬＰ）は、ＴＣＰで実現されるルーチンと同様の再伝送タイマーに基づくエラー修復処理をまた実現する。
【０００７】
ＴＣＰは一つのエラー修復処理として再伝送機能を用いる。ＴＣＰに従うと、ＴＣＰ送信側は、予め定められた時間内に認証パケットが受信されていないデータパッケトを再伝送する。ＴＣＰは、エラー修復処理を実行するために再伝送タイマー（ＲＥＸＭＴ）を維持する。受信側によって返された認証（ＡＣＫ）セグメントそれぞれに対して、送信側はラウンドトリップ時間（ＲＴＴ）の関数である再伝送タイマー値（ＲＴＯ）でＲＥＸＭＴを再初期化する。多くのＴＣＰの実装において、ＲＴＴはＴＣＰ送信側によって連続的に比較される。別の実施態様では、ＲＴＴは、実際のＲＴＴに基づいて更新されうる。ワイヤレス通信のためのリンク層プロトコルである無線リンクプロトコル（ＲＬＰ）は、ＴＣＰで実現されるルーチンと同様の再伝送タイマーに基づくエラー修復処理をまた実現する。
上で定義されたＴＣＰ内の再伝送タイマーの評価は、文献“Ｃｏｍｐｕｔｅｒ  Ｎｅｔｗｏｒｋｓ”１９９６，Ａ．Ｓ．Ｔａｎｅｎｂａｕｍ，ＰＲＥＮＴＩＣＥ  ＨＡＬＬ  ＰＴＲ，Ｎｅｗ  Ｊｅｒｓｅｙに紹介されている。送ったセグメントに対する承認が受け取られたとき、再伝送タイマーはＲＴＯ値で始められる。
あるアルゴリズムは、ラウンドトリップ時間（ＲＴＯ）の連続比較もまた考慮して文献“Ｅｘｐｌｉｃｉｔ  Ｌｏｓｓ  ｉｎｄｉｃａｔｉｏｎ  ａｎｄ  ａｃｃｕｒａｔｅ  ＲＴＯ  ｅｓｔｉｍａｔｉｏｎ  ｆｏｒ  ＴＣＰ  ｅｒｒｏｒ  ｒｅｃｏｖｅｒｙ  ｕｓｉｎｇ  ｓａｔｅｌｌｉｔｅ  ｌｉｎｋｓ”  Ｓａｍａｒａｗｅｅｒａ  Ｎ  ＥＴ  ＡＬ，ＩＥＥ  Ｐｒｏｃｅｅｄｉｎｇｓ：Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ，ｖｏｌ．１４４，ｎｏ．１，Ｆｅｂｕｒｕａｒｙ  １９９７，ｐａｇｅｓ  ４７−５３，ＸＰ０００６８７１３４に紹介されている。ＲＴＯ評価は、受信された承認セグメントに対する各セグメントの伝送時間を使用することによって改良される。このアルゴリズムは伝送ウインドウあたり何回もＲＴＴを標本抽出できる。従来の技術においては、ＲＴＴは特別なシーケンス番号のデータオクテットの伝送と、同じシーケンス番号を包含する承認セグメントの受信間で比較される。同じウインドウに属する後のパケットは比較対照に含まれない。この問題は本気債の中で解決される。不都合な点は始動されなければならない多数のタイマーである。
【０００８】
（概要）
本発明は、パケット交換データ伝送サービスを実現するための改良されたシステムと方法を提供することによって、これらと他の問題を解決する。より詳細には、本発明は、既知の再伝送タイマーエラー修復処理と比較してデータ伝送速度の改良を容易にする再伝送ベースエラー修復処理を提供する。本発明の一側面では、データ伝送速度は、送信側から受信側へ以前に伝送されたパケットの伝送時間以降の経過時間を補正する値で再伝送タイマーを再初期化することによって改良されうる。好適には、該システムはエラー修正を一パケット基準で管理することを可能にし、また単一のタイマーのみを実装することを必要とし、よって計算に関する費用を削減する。
【０００９】
本発明は、さらに、送信側ノードにおける不必要なタイムアウトの確率を減少させることによりデータ伝送速度の改良をもたらす。より詳細には、本発明は、ＴＣＰ送信側が、高速再伝送ルーチンを始動するために残っている十分な伝送された未承認のセグメントを持っているかどうかを決定する再伝送タイマー値を再計算するための方法を提供する。もしそうならば、ＲＴＯは、送信側が受信側から予め定められた数のＡＣＫセグメントを受信するのに必要な時間の関数である因子を含めて計算される。この因子を含めると、ＴＣＰ送信側が混信制御ルーチンよりはむしろ、高速再伝送ルーチンを実行するのに十分な時間をＲＥＸＭＴが含む確率を増加させる。
【００１０】
本発明の一側面に係る方法は、少なくとも一の送信側ノードと少なくとも一の受信側ノード間のＴＣＰ接続を、スライドウインドウフロー制御を利用して実現する通信ネットワーク内で実現される。本発明は、送信側ノードでの再伝送タイマーに基づくエラー修正を実行する方法であって、受信側ノードからＡＣＫセグメントを受信し、送信側から受信側へ以前に伝送されたセグメントの伝送時間以降の経過時間を補正する値でＲＥＸＭＴの再初期化をする工程を含む方法を提供する。好ましくは、ＲＥＸＭＴは送信側による再送信のために保存された最も古いデータパケットの伝送以降に経過した時間を補正する時間値で再初期化される。
【００１１】
好適には、本発明はプロトコルに限定されるものではない。従って、本発明の別の側面では、ネットワーク上の送信側と受信側間の論理的な接続を実現するパケット交換通信ネットワークの動作の方法が提供される。送信側ノードはスライドウインドウフロー制御および再伝送タイマーに基づくエラー修正を利用するように構成される。本発明では、ネットワークはネットワーク上の送信側ノードとそれぞれの受信側ノード間の論理接続を確立し、ネットワークトラフィックパラメータの関数である再伝送タイマー値で、再伝送タイマーをそれぞれの論理接続に対して初期化することによって動作する。データパケットはネットワーク上の送信側ノードからそれぞれの受信側ノードへ伝送され、承認パケットはそれぞれの受信側ノードで受信される。新しいデータに対するそれぞれの承認パケットの受信の際に、送信側と受信側と間の接続に関連する再伝送タイマーが、送信側が再送信のために保存された非承認データを持っていると仮定して、受信側への再送信のために送信側に関連するメモリーに保存された以前に伝送されたパケットの伝送時間以降の経過時間を引いた再伝送タイマー値に相当する値で初期化される。
【００１２】
さらなる側面では、本発明は、少なくとも一の送信側ノードと少なくとも一の受信側ノード間で、スライドウインドウフロー制御と再伝送タイマーに基づくエラー修復を利用してＴＣＰ接続を実現する通信ネットワーク要素（エレメント）を提供する。ネットワーク要素は、受信側ノードへデータセグメントを伝送するための出力モジュールと、受信側ノードからＡＣＫセグメントを受け取るための入力モジュールと、送信側から受信側へ以前に伝送されたセグメントの伝送時間以降の経過時間を補正する値でＲＥＸＭＴを初期化するための、ネットワーク要素に関係するプロセッサ上で動作する論理とを含む。この論理は、ネットワーク要素に関連する汎用プロセッサ上で動作するソフトウエアで実現されるか、アプリケーション専用集積回路（ＡＳＩＣ）内に組み込まれうる。
【００１３】
本発明のこれらと他の側面は、パケット交換ネットワーク、特に「送信側」ノードとして機能するノード内での改良されたデータ伝送速度をもたらす。送信側ノードでの改良されたデータ伝送速度はネットワークのパフォーマンスの改良に寄与する。
【００１４】
（詳細な記載）
本発明を、以下の明細書と添付図面において示された例示的な実施態様と実施例を参照しながら説明する。特に、本発明はＴＣＰ伝送プロトコルにおいて説明するが、ここに示す特定の実施態様は本発明を実証するために提供されるものであり、発明の限定を意図するものではない。本発明は、ＲＥＸＭＴに基づくエラー修復と組み合わせてスライドウインドウフロー制御を用いるパケット交換リンク層プロトコルまたはトランスポート層プロトコルに適用可能であるものである。
【００１５】
この開示は、例えば電話通信ネットワーク技術者のようなパケット交換通信ネットワークを設計し開発している当業者に対して作成された。ＴＣＰ／ＩＰプロトコル一式の実際の知識は、出典明示により明示的にここに取り込まれる次の文献から展開することができる：Ｗ．Ｒ．Ｓｔｅｖｅｎｓ，ＴＣＰ／ＩＰ  Ｉｌｌｕｓｒａｔｅｄ，Ｖｏｌ１，Ａｄｄｉｓｏｎ−Ｗｅｌｓｌｅｙ，１９９４；Ｗ．Ｒ．Ｓｔｅｖｅｎｓ，ＴＣＰ／ＩＰ  Ｉｌｌｕｓｔｒａｔｅｄ，Ｖｏｌ２，１９９５；Ｊａｃｏｂｓｏｎ  Ｖ．等，ＴＣＰ  Ｅｘｔｅｎｓｉｏｎｓ  ｆｏｒ  Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ，Ｊａｃｏｂｓｏｎ  Ｖ．等，１９９７，Ｉｎｔｅｒｎｅｔ  Ｄｒａｆｔ−Ｎｅｔｗｏｒｋ  Ｗｏｒｋｉｎｇ  Ｇｒｏｕｐ，１９９７。また、この文献は無線リンクプロトコルの実際の知識を前提としている。無線リンクプロトコルの実際の知識は、出典明示によりここに取り込まれる以下の文献から展開することができる：ＥＴＳＩ，Ｒａｄｉｏ  Ｌｉｎｋ  Ｐｒｏｔｏｃｏｌ  ｆｏｒ  ｄａｔａ  ａｎｄ  ｔｅｌｅｍｅｔｒｉｃ  ｓｅｒｖｉｃｅｓ  ｏｎ  ｔｈｅ  ｍｏｂｉｌｅ  ｓｔａｔｉｏｎ−ｂａｓｅ  ｓｔａｔｉｏｎ  ｓｗｉｔｃｈｉｎｇ  ｓｙｓｔｅｍ  ｉｎｔｅｒｆａｃｅ  ａｎｄ  ｔｈｅ  Ｂａｓｅ  Ｓｔａｔｉｏｎ  Ｓｙｓｔｅｍ−Ｍｏｂｉｌｅ  Ｓｗｉｔｃｈｉｎｇ  Ｃｅｎｔｅｒ（ＢＳＳ−ＭＳＣ）ｉｎｔｅｒｆａｃｅ，ＧＳＭ  Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ０４．２２，Ｖｅｒｓｉｏｎ  ３．７．０，Ｆｅｂｒｕａｒｙ，１９９２．。
【００１６】
図１には、本発明を実施するために用いられうる参照符号２０で全体を示したパケット通信ネットワークシステムを例示するブロックダイアグラムが示される。図示したように、パケット通信システム２０は、各ネットワークインターフェースカード２５ａ、２５ｂによってパケット通信ネットワークまたはインターネット２４にそれぞれ接続されている送信側コンピュータシステム２２ａと受信側コンピュータシステム２２ｂを含む。送信および受信コンピュータシステム２２ａ、２２ｂは、アプリケーションモジュール３０ａ、３０ｂ、ＴＣＰモジュール３２ａ、３２ｂ、ＩＰモジュール３４ａ、３４ｂおよびデバイスドライバ３６ａ、３６ｂを含むオペレーティングシステムソフトウエアプロトコルスタックを含む。アプリケーション３０ａは、送信側コンピュータシステム２２ａ内のＴＣＰモジュールまたはユーティリティ３２ａにアクセスする。ＴＣＰモジュール３２ａ、３２ｂは、デバイスドライバ３６ａ、３６ｂを順に呼び出すＩＰモジュール３４ａ、３４ｂを要求する。ＴＣＰモジュール３２ａ、３２ｂは、例えばデータ構造を管理するような他のオペレーティングシステムの機能を呼び出してもよい。ネットワーク２４へのインターフェースは、デバイスドライバモジュール３６ａ、３６ｂによって制御される。受信側のコンピュータシステム２２ｂでは、ＩＰモジュール３４ｂは、デバイスドライバ３６ｂから断片化したＩＰデータグラムを受信して再構築し、このＩＰデータグラムをＴＣＰモジュール３２ｂまで伝達する。
【００１７】
本発明は、一側面では、ＴＣＰの中で定められているエラー修復処理が、ＴＣＰ送信側ノードのデータ伝送速度を減少させる不必要な伝送遅延を導入している恐れがあるという認識から生まれた。エラー修正処理を含む、ＴＣＰ送信側とＴＣＰ受信側間の通信セッションの側面の簡単な背景の検討が順当である。
【００１８】
上で議論したように、ＴＣＰ接続は、一般にはプロトコルスタック内のより高いレベルのアプリケーションによって要求される。ＴＣＰ層がＴＣＰ接続要求を受けたとき、ＴＣＰモジュールが、「スリーウェイハンドシェイク」とよく呼ばれるＴＣＰの接続確立プロトコルを用いてＴＣＰセッションを開始する。ＴＣＰ接続が確立された後、ＴＣＰ送信側はＴＣＰ受信側へデータセグメントの伝送を始める。ＴＣＰプロトコルがスライドウインドウフロー制御をもたらし、それに従って、ＴＣＰ送信側が承認メッセージを受信することなく一を越えるセグメントを伝送する。承認無しに伝送されたセグメントの少なくとも一部分が、エラーの事象内で再伝送のために送信側に関連するメモリー位置に蓄えられる。
【００１９】
ＴＣＰ受信側は、累積したシーケンシャルなＡＣＫセグメントで送信側に応答する。ＴＣＰ受信側は、Ｎ＋１セグメントの受信の準備ができたことを示すＡＣＫセグメントでＮセグメントの受領メッセージに応答する。例を挙げると、ＴＣＰ受信側は、次にセグメント番号２を受信することを受信機が予期することを表示するＡＣＫセグメントでセグメント番号１の受信を承認する。同様に、ＴＣＰ受信機は、次にセグメント番号５１を受信することを受信機が予期することを表示するＡＣＫセグメントでセグメント番号５０の受信を承認する。
【００２０】
上で議論したように、ＴＣＰは再伝送エラー修復処理を特定化する。このルーチンを実現するために、送信側のＴＣＰ層で動作可能な論理が、ＴＣＰ送信側とＴＣＰ受信側間のそれぞれの接続に対してＲＥＸＭＴを保持する。ＴＣＰプロトコルのスライドウインドウフロー制御の実施では、ＲＥＸＭＴは送信側によって再伝送されるために保存された「最初の」データセグメントへ設定される。ＴＣＰに従って、ＲＥＸＭＴが、送信側が再送信のために保存された非承認データを持つという条件下で、新しいデータに対する承認セグメントが送信側によって受け取られる度に、ＲＴＴの関数であるＲＴＯで初期化される。あるエラーが再伝送エラー修復処理を引き起こした場合には、送信側がその混雑ウインドウを減少させ、ＲＥＸＭＴの時間切れ後に、再伝送のために保存された最初の存在しているセグメントを最初に、保存されたデータを送信側に伝送する。
【００２１】
図２はネットワーク上の送信ノードの視点からのＴＣＰセッションを示すグラフである。時間（秒）が水平または「Ｘ」軸にプロットされ、ＴＣＰシーケンス数が垂直または「Ｙ」軸にプロットされている。ＴＣＰセグメントの送信側による伝送は菱形でプロットされ、目的の受信側によるＡＣＫセグメントの受信は四角でプロットされている。図２において、ＴＣＰセッションは送信側によって開始され、２つのセグメントがセッション内に約３秒で伝送されている。約５秒で送信側が受信側から第２のセグメントの受信を承認するＡＣＫセグメントを受信し、受信ノードへ２つ以上のセグメントを伝送する。約６秒で、送信側は受信側からＡＣＫセグメントを受け取り、３つのセグメントを受信側へ伝送し、セッションが通常通り続く。約７秒で送信側が、データが伝送される度に３つのセグメントの送信を始め。図２に示されたＴＣＰセッションは次の数秒の間は通常通り進む。送信側は１回の伝送で３つのセグメントを受信側に伝送し、受信側からＡＣＫセグメントを受け取る。
【００２２】
図２に関連して、いくつかの項目が留意されるべきである。第１に、セッションが進むにつれて、送信側の情報の伝送と、受信側からの対応するＡＣＫセグメントの送信側による受信の間でタイムラグが発生する。このタイムラグは、送信側によるセグメント伝送のプロットと送信側によるＡＣＫ受信のプロットの間のずれの拡大により裏付けられている。セッションが定常状態に近づくにつれ、安定したネットワークを仮定すると、このタイムアラグは収束して送信側と受信側間のＲＴＴに近似する。一側面では、本発明は、このタイムラグがＴＣＰのＲＥＸＭＴ内にエラーを導入して、ＲＥＸＭＴを柔軟性のないものにしているという認識に基づいている。第２に、ＴＣＰ送信機はスライドウインドウフロー制御を実現するということが留意されるべきである。従って、送信側が予め定められた数の非承認セグメントを伝送することが可能になる。第３に、ＴＣＰエラー修復処理に従って、送信機は、送信側が再伝送のために保存された非承認データを持っているという条件下で、新しいデータ（例えば、重複承認セグメント（ＤＵＰＡＣＫＳ）、反復ＡＣＫセグメントおよび無効なＡＣＫセグメントを除く）に対して各ＡＣＫセグメントの受信の際にＲＴＯでそのＲＥＸＭＴを再初期化する。ＲＴＯタイマー値は一般には送信側に関係するプロセッサ上で動作する論理命令によるＲＴＴの関数として計算される。多くのＴＣＰの実施では、ＲＴＯは定常状態のネットワーク内でＲＴＴに近似的に収束する。
【００２３】
約１２秒で、ネットワークエラーがセッション内に起こり、再伝送エラールーチンを引き起こす。ＡＣＫセグメント２１０は約１２秒で受信される。従って、ＲＥＸＭＴは約１２秒でＲＴＯ２４０で再初期化される。ＡＣＫセグメント２１０を引き起こしたデータの伝送以降に約３秒間が経過していることに留意されたい。また、スライドウインドウフロー制御処理に従って、送信側は、約１５の非承認セグメントを伝送していることにも留意されたい。これらのセグメントは、エラーの場合には再伝送のために送信側に関連したメモリー内に保存される。
【００２４】
ネットワークエラーのために、送信側は、ＲＥＸＭＴの時間切れの前に受信側からＡＣＫセグメントを受信せず、これはセッション内に約１５秒で現れる。受信側からのＡＣＫセグメントの受信より前にＲＥＸＭＴを時間切れにさせる特定のネットワークエラーは、本発明においては重要ではない。ネットワークエラーは、過度な遅延を導入するネットワークの混雑の結果あるいは送信側と受信側の間でのネットワーク内の一または複数のノードまたはリンク内における失敗の結果でありうる。ＲＥＸＭＴは約１５秒で時間切れとなり、そのとき直ぐに送信側が再伝送エラー修復処理を開始する。よって、ＴＣＰに従って、送信側はその伝送速度を減少させ、図において円で示されている（例えばセグメント２２０）再伝送のために保存されている「最初の」セグメントを最初に、非承認セグメントを再送信し始める。送信側は、再伝送のために保存されたセグメントを再伝送し、セッションはこのとき通常通り継続することができる。
【００２５】
図２で示された一連のイベントは、ＴＣＰ再伝送エラー修復処理に固有の欠陥を示している。すなわち、各認証セグメントの受信時にＲＴＯでＲＥＸＭＴを初期化すると、送信側のセグメントの伝送と、受信側からの対応するＡＣＫセグメントの送信側による受信との間に発生するタイムラグの補正に失敗する。図２に示されたセッション内のネットワークエラーの時、約３秒のタイムラグ２３０が、データセグメントの伝送２２０と、対応するＡＣＫセグメント２１０の受信の間に存在する。タイムラグ２３０は再伝送エラー修復処理内に不必要なタイムラグを招く。このタイムラグは、送信側のデータ伝送速度にマイナスの影響を持つ。つまり、ＲＥＸＭＴはきわめて柔軟性がない。一側面では、本発明はＴＣＰ送信側のデータ伝送速度を改良するためにＴＣＰ送信側のＲＥＸＭＴを再初期化するための新規な方法を提供する。本発明によると、ＲＥＸＭＴは、送信側が受信側に以前のデータセグメントを伝送した以降に経過した時間を補正する値で最初期化される。本発明の一実施態様では、ＲＥＸＭＴは、各ＡＣＫセグメント（ＤＵＰＡＣＫセグメント、繰り返し認証、無効な承認を除外する）の受領の際に、送信側が再伝送のために保存した「最初の」データセグメント以降に経過した時間を引いたＲＴＯ値で初期化される。送信側が再伝送のために保存した「最初の」データセグメント以降に経過した時間だけＲＥＸＭＴを減少させると、ＴＣＰの再伝送エラー修正処理に固有のタイムラグが補正され、それによってＴＣＯ送信側のデータ伝送速度が増加する。
【００２６】
送信側が受信側へ再伝送するために蓄えた「最初の」セグメント以降の経過時間とは異なる量だけＲＴＯ値が減少しうることが理解される。この値はＲＴＯの積極的な修正を表す。伝送側が受信側へ再伝送するために蓄えてある「最初の」セグメント以降の経過時間より少ない時間を選択することによって少ない積極的修正ができる。例を挙げると、ＲＴＯは、「最初に」保存されたデータセグメントよりも新しく伝送されたデータセグメントの伝送以降の経過時間だけ減少させることができる。
【００２７】
図３は、本発明によるＴＣＰ送信側とＴＣＰ受信側間の通信セッション管理における一連の工程を示すフローチャートである。図３において、ステップ３００では、送信側は送信側と受信側の間でＴＣＰセッションを開始する。このステップは既存のＴＣＰの実施と一致する形で遂行されうる。ステップ３１０では、送信側が、送信側から受信側へ再伝送のために保存された「最初の」バイト以降に経過した時間を引いたＲＴＯでＲＥＸＭＴを初期化する。接続が最初に開かれたとき、再伝送のために保存されたセグメントはないので、ＲＥＸＭＴはＲＴＯに設定される。ＴＣＰはＴＣＰセッションの最初にＲＥＸＭＴの初期化をもたらし、ＲＥＸＭＴは既存のプロトコルに従って初期化されうる。ステップ３２０では、伝送側は、開始処理のパラメータとフロー制御処理に依存して、伝送側へ一または複数のデータセグメントを伝送する。このステップはまた既存のＴＣＰの実施と一致する形で遂行されうる。ステップ３３０では、送信側は受信側からＡＣＫセグメントを受信する。ステップ３４０ではＡＣＫセグメントが有効かどうかを決定するためにテストをし、有効ならば、ＲＥＸＭＴは、再伝送のために保存された「最初の」セグメント以降に経過した時間を引いたＲＴＯで再初期化される。ＲＥＸＭＴは、ＡＣＫセグメントがＤＵＰＡＣＫセグメントであるか無効のＡＣＫセグメントであれば再初期化されない。データ伝送はこのときＴＣＰ実施に従って進む。ステップ３４０の間にＡＣＫセグメントがエラーであると決定された場合には、ＡＣＫは破棄される。
【００２８】
図３に示された処理に従ってＴＣＰセッションを支援するネットワークを動作させると、ＴＣＰ送信ノードがＴＣＰ再伝送エラー修復処理に固有の遅延を補正することが可能になる。好適には、図３に示された処理は、多大なさらなる計算の負担を課したり、さらなるネットワークデータの収集と監視を必要とすることはない。その代わりに、図３に示された処理は、ＴＣＰによって特定化されたＲＴＯ値を利用する。さらに、図３に示された処理により、ネットワークが、送信側ノードによって伝送された各セグメントに関係するタイマーを維持する計算費用を生じることなく個々のセグメントにＲＥＸＭＴを設定することを可能にする。
【００２９】
本発明の他の側面では、ＴＣＰ送信側のデータ伝送速度を改良するためにＴＣＰ接続に対するＲＴＯを計算する新規な方法を提供する。本発明によると、ＲＴＯは、タイムアウトルーチンよりはむしろ高速再伝送／混雑回避ルーチンを伝送エラーが引き起こす可能性を増大させるように計算される。この処理を実施するため、ＲＴＯ計算論理は、送信側が予め定められた数の重複承認セグメントを受け取るのに必要な時間を決定する処理を含む。本発明によると、この論理はＴＣＰ層において実現されうる。本発明の一実施態様は、次のＣ言語的な疑似コードで提供される。
ｉｆ（Ｕ＞Ｎ）ｔｈｅｎ
ＲＴＯ：＝Ｄｅｌｔａ＿１＋Ｄｅｌｔａ＿３＋（Ｐ×Ｄｅｌｔａ＿２）；
ｅｌｓｅ
ＲＴＯ：＝Ｄｅｌｔａ＿１＋Ｄｅｌｔａ＿２；
ここで、
Ｕは送信側が受け取る非承認セグメントの数である。
ＮはＫより大きいかまたは等しい数値であり、ＫはＴＣＰ送信側が高速伝送／混雑回避メカニズムを始動させるのに必要なＤＵＰＡＣＫＳの数である。大抵のＴＣＰの実施では、Ｋ＝３である。
【００３０】
Ｄｅｌｔａ＿１はＲＴＴの関数である。Ｄｅｌｔａ＿１に対して好適な関数は、上記において出典明示により取り込まれたＴＣＰ／ＩＰ illustrated, Volume 1に記載された平滑化ＲＴＴ関数である。しかしながら、選択されるＤｅｌｔａ＿１関数は本発明にとって臨界的な意義はない。
【００３１】
Ｄｅｌｔａ＿２はラウンドトリップ時間内の変動の関数である。Ｄｅｌｔａ＿２に対して好適な関数は、上記において出典明示により取り込まれたＴＣＰ／ＩＰ illustrated, Volume 1に記載された平滑化平均変動関数である。しかしながら、選択される厳密なＤｅｌｔａ＿１関数は本発明にとって臨界的な意義はない。
【００３２】
Ｄｅｌｔａ＿３は、ＴＣＰ送信側において高速再伝送アルゴリズムを始動するのに必要な予め定められた数のＤＵＰＡＣＫＳを受信するのに必要な時間を補正する関数であり、Ｐ＞＝０である。Ｐの適切な選択は、高速再伝送／混雑回避機構を始動するのにＴＣＰ送信側が必要とする予め定められた数のＤＵＰＡＣＫとなるようにＰ＝Ｋとすることである。
【００３３】
よって、本発明によると、ＲＴＯを計算するための論理は、送信側が、高速再伝送処理を始動するための既存の送信された非承認のセグメントを十分に持っているかどうかを決定するためのテストをする。もしそうならば、ＲＴＯ計算は、高速再伝送処理を始動させるために必要な予め定められた数のＤＵＰＡＣＫＳを受信するのに必要な時間の関数である因子（例えばＤｅｌｔａ＿３）を含む。この因子は、ＴＣＰ送信側が、タイムアウトエラー修復処理よりもむしろ、高速再伝送エラー修復処理を始動させる確率を増加させるようにＲＴＯを調節するようにする。Ｄｅｌｔａ＿３のために好適な関数は以下に示す。
【００３４】
実施例１：Ｄｅｌｔａ＿３の決定
ＴＣＰネットワークにおいて、ＴＣＰ送信側は、最も新しいラウンドトリップ時間の計算中に承認されたセグメントの数（Ｍ）を比較できる。図４に示したＴＣＰセッションにおいて、最も最近のラウンドトリップ時間は矢印４００と４１０間の間の経過時間間隔として示されている。１０のパケットが送信され、示されたラウンドトリップ時間の間に承認されたことが分かり、よってＭ＝１０である。Ｋが、ＴＣＰ送信側が高速再伝送混雑回避機構を引き起こすのに必要な重複承認セグメントの数であり、Ａが、最新のラウンドトリップ時間の測定値であると仮定すると、Ｄｅｌｔａ＿３は次のように決定できる。
Ｄｅｌｔａ＿３＝Ｍｉｎ（Ａ，（（Ａ／Ｍ）×Ｋ）））
【００３５】
実施例２：Ｄｅｌｔａ＿３の決定
Ｂは到着するＡＣＫ間の時間間隔の関数であると仮定する。Ｂは適切な平滑化関数を含む適切な平滑化関数でありうる。適切な平滑化関数は図１に記載されているＴＣＰ／ＩＰ Illustrated, Vol. 1に示されている。Ｄｅｌｔａ＿３は次のように決めることができる。
Ｄｅｌｔａ＿３＝Ｍｉｎ（Ａ，（Ｂ×Ｋ））
【００３６】
本発明の詳細をＴＣＰ／ＩＰネットワークにおいて説明した。しかし、本発明はＴＣＰ／ＩＰ一式に限定されない。本発明の原理は、スライドウインドウフロー制御、再伝送タイマーベースエラー修復処理を利用するあらゆるパケット交換ネットワークプロトコルに適用できる。例を挙げると、本発明は、ＥＴＳＩに特化した無線リンクプロトコル、データに対する無線リンクプロトコル、移動局−基地局システム（ＭＳ−ＢＳＳ）インターフェース上の遠隔測定サービス、基地局システム−移動交換センター（ＢＳＳ−ＭＳＣ）インターフェース、Ｇ．Ｍ．Ｓｐｅｃｉｆｉｃａｔｉｏｎ  ０４．２２，Ｖｅｒｓｉｏｎ  ３．７．０，Ｆｅｂｒｕａｒｙ，１９９２に対して十分に適用可能である。
【００３７】
上述の例示的な実施態様は本発明を限定するものではなく、あらゆる点で例証するためのものである。よって、本発明に対して、当業者がここに含まれる説明から導くことができる多くの変形が詳細な実施化において可能である。このような変形と変更の全てが特許請求の範囲に記載される本発明の範囲と精神内に含まれると考えられる。
【図面の簡単な説明】
【図１】  図１はＴＣＰ／ＩＰネットワーク接続の概略図である。
【図２】  図２はＴＣＰ／ＩＰセッションの様子を示すグラフである。
【図３】  図３は本発明に係る改良されたデータ伝送方法の一実施態様を示すフローチャートである。
【図４】  図４はＴＣＰ／ＩＰセッションの様子を示すグラフである。
【図１】
0004574014.tif 000002
【図２】
0004574014.tif 000003
【図３】
0004574014.tif 000004
【図４】
0004574014.tif 000005