(57)【要約】   リンクアグリゲーション装置のタイムアウト値決定方法は、二つのエンドホストの間のパケットフローを流れるリンクアグリゲーションのパケットを複数のリンクから受信し、前記二つのホストのうちのリモートホストに関する遅延を決定し、前記パケットフローにおける順序に基づいて前記リンクアグリゲーションのパケットを並べ換え、プロセッサを用いて、前記複数のリンクのそれぞれに対応するタイムアウト値であって、対応するリンクからのパケットの受信を待つために使用されるタイムアウト値をパケットロスおよび前記遅延に基づいて計算することを含む。
2015517251.tif 000002
【特許請求の範囲】
【請求項１】
二つのエンドホストの間のパケットフローを流れるリンクアグリゲーションのパケットを複数のリンクから受信する少なくとも二つのレシーバと、
前記二つのエンドホストのうちのリモートホストに関する遅延を決定する処理と、前記パケットフローにおける順序に基づき前記リンクアグリゲーションのパケットを並べ換える処理と、前記複数のリンクのそれぞれに対応するタイムアウト値であって、対応するリンクからのパケットの受信を待つために使用されるタイムアウト値をパケットロスおよび前記遅延に基づいて計算する処理とを実行するプロセッサと、
を含むリンクアグリゲーション装置。
【請求項２】
前記遅延は、前記リモートホストの位置に基づいて決定される
請求項１に記載のリンクアグリゲーション装置。
【請求項３】
前記遅延は、前記リモートホストが前記リンクアグリゲーション装置の属するローカルエリアネットワーク内に配置されているか前記ローカルエリアネットワークの外側に配置されているかに基づいて決定される
請求項１に記載のリンクアグリゲーション装置。
【請求項４】
前記遅延は、前記リモートホストに対するラウンドトリップタイムに基づいて決定される
請求項１に記載のリンクアグリゲーション装置。
【請求項５】
前記遅延は、前記リモートホストへのホップ数に基づいて決定される
請求項１に記載のリンクアグリゲーション装置。
【請求項６】
二つのエンドホストの間のパケットフローを流れるリンクアグリゲーションのパケットを複数のリンクから受信し、
前記二つのホストのうちのリモートホストに関する遅延を決定し、
前記パケットフローにおける順序に基づいて前記リンクアグリゲーションのパケットを並べ換え、
プロセッサを用いて、前記複数のリンクのそれぞれに対応するタイムアウト値であって、対応するリンクからのパケットの受信を待つために使用されるタイムアウト値をパケットロスおよび前記遅延に基づいて計算する
ことを含むリンクアグリゲーション装置のタイムアウト値決定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リンクアグリゲーション装置に関する。
【背景技術】
【０００２】
家庭又は企業利用のインドア無線カバレッジの改良、および無線ネットワークの全体的な容量の改良のために、現在、フェムトセル（スモール基地局）が開発および展開されている。無線ネットワークオペレータへのバックホールコネクションとして、フェムトセルは、ユーザの既存のインターネット接続，例えば、ＡＤＳＬ（Asymmetric Digital Subscriber Line)又はファイバインターネット接続を使用する。
【０００３】
将来的に、フェムトセルは、展開するカスタマに対する、３Ｇ（第３世代），４Ｇ（第４世代），又はより小さいセルラー技術の提供のみならず、ＩＥＥＥ８０２．１１又はBluetooth（登録商標）のような他の無線接続技術を通じた家庭ネットワークへのアクセス
を提供するであろうと考えられている。なぜなら、それぞれの無線接続技術は他から独立して使用することができ、複数の無線アクセス技術は（複数の接続技術）はより速いトータル帯域を提供するために組み合わせることができるからである。より速いトータル帯域を提供するには、双方のリンクを結合し、ホストが利用可能な複数の無線リンク間のネットワークを超えて搬送されるパケットを分割するリンクアグリゲーションと呼ばれる技術の使用によって達成される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−３４５７１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数の無線リンク上でのリンクアグリゲーションの使用時には、複数の無線リンクに分配されたパケットを結合するときに、パケットの並べ換えに対し、幾つかのフォームを用いることが必要とされる。これは、無線技術の高度な可変性（送信／受信装置の干渉又は移動によって生じる）を原因とする、リンク上のパケットの到着の高い不一致があるからである。例えば、パケットのより遅い受信に続く無送信（送信エラーによる）の短いインターバルに続いて正確に受信されるパケットのバーストがあるかも知れない。通常、このような高いばらつきは、一つのリンクのみを使用するときにはあまり起こらない。しかしながら、一つの同じ送信フロー（例えばＴＣＰ／ＩＰ(Transmission Control Protocol/Internet Protocol)フロー）のパケットが様々な無線リンク上に分配されるとき、それら
の無線リンクの変動性のために生じる順序が逆転した到着は、ＴＣＰフローの性能に非常に大きな影響を与える。その性能への影響は、ＴＣＰがシーケンス番号によってパケットを確認するという動作によって引き起こされる。もし、幾つかのシーケンス番号が他よりも前に到着し、その中間の複数のパケットが或るタイムフレーム内に到着しなければ、ＴＣＰはこれらのパケットが失われたとみなす。これらのパケットが失われたと見なされたとき、ＴＣＰは、送信ホストへの再送要求を送信し、結果として、送信ホストは、その送信速度を小さくする。
【０００６】
中継装置（リンクアグリゲーションポイント：ＬＡポイント）は、エンドホストへのコネクションを有する移動端末によって分割された二つの無線リンクからのＴＣＰパケットを受信すると仮定する。そのＬＡポイントは、それらのＴＣＰパケットを一つのフローに再び結合する。そのＬＡポイントにおいて、或る無線リンクからのパケットが他の無線リ
ンクからのパケットよりも早く到着する可能性がある。このとき、ＬＡポイントは、パケットがエンドホストへ転送される前にパケット並べ替えのソートを行う。パケット並べ換えを行うとき、ＬＡポイントは、遅れて到着するであろう幾つかのパケットを待つためのタイムアウト用の値を有するタイマを設定する。タイマが満了したとき、遅れて到着するパケットは無視される（ドロップされる）。
【０００７】
タイムアウト用の値には、固定値（ユニバーサル値）が適用されている。そのユニバーサル値は、以下に説明する問題を生じる。すなわち、ＴＣＰの性能は、コネクションのラウンドトリップタイムに大きく依存する。例えば、エンドホストが例えば１０ｍｓのローカルエリアネットワークに配置されている場合、ラウンドトリップタイムはＴＣＰの高いスループット速度を許容する一方で、海外に配置されたエンドホストの高い（長い）ラウンドトリップタイムはＴＣＰの高いスループット速度を阻害する。もし、リンクアグリゲーションの使用時に、そのローカルエリアネットワークにおける低い（短い）ラウンドトリップタイムがパケット並べ換え用の高いタイムアウト値を原因として急激に増加するならば、スループットの低下が観察される。エンドホストが海外に配置されているときも同様のスループット低下を観察することができる。もし、スループットを増加させるために、低いタイムアウト値が使用されるならば、代わりに、不必要にパケットがドロップされ、スループットを低下させるかも知れない。
【０００８】
上述したように、タイムアウトのためのユニバーサル値は、スループットの低下を引き起こす。さらに、タイムアウトのためのユニバーサル値は、上位層に影響を与え、且つ通信性能の劣化を引き起こす可能性がある。
【０００９】
本発明の一態様の目的は、ＴＣＰパケットのリンクアグリゲーションの性能を改良する技術を提供することである。
【課題を解決するための手段】
【００１０】
本発明の態様は、リンクアグリゲーション装置である。リンクアグリゲーション装置は、二つのエンドホストの間のパケットフローを流れるリンクアグリゲーションのパケットを複数の無線リンクから受信する少なくとも二つのレシーバと、上記二つのエンドホストのうちのリモートホストに関係する遅延を判定する処理と、上記パケットフローにおける順序に基づいてリンクアグリゲーションのパケットを並べ換える処理と、パケットロスとその遅延に基づいて上記無線リンクのそれぞれに対応するタイムアウト値を算出する処理とを実行するプロセッサとを含み、各タイムアウト値は対応する無線リンクからのパケットの受信を待機するために使用される。
【００１１】
本発明の目的および利点は、クレームにおいて特に指摘された構成要素および組み合わせによって実現および獲得されるであろう。
【００１２】
上記した一般の記述および以下の詳細な記述の双方は例示的および説明的なものであり、クレームされたような本発明の限定ではないと理解されるべきである。
【発明の効果】
【００１３】
本発明の一態様によれば、ＴＣＰパケットのリンクアグリゲーションの性能を向上させる技術を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の実施形態に関するリンクアグリゲーション装置（ＬＡＡ）を用いるネットワークシステムを示す図である。
【図２】図２は、ＬＡＡの構成例を示す図である。
【図３】図３は、タイムアウト決定処理の例を示すフローチャートである。
【図４】図４は、宛先および遅延を記憶するテーブルを示す図である。
【図５】図５は、ホップ数および遅延を記憶するテーブルを示す図である。
【発明を実施するための形態】
【００１５】
本発明の実施形態は、図面を参照して記述される。実施形態の構成は例として与えられたものであり、本発明のあらゆる態様は、実施形態の構成に限定されない。
【００１６】
＜ネットワークシステム＞
図１は、本発明の実施形態に関するリンクアグリゲーション装置を用いるネットワークシステムを示す。図１において、ネットワークシステムは、移動端末（ＭＴ）１と、アクセスポイント（ＡＰ：基地局）２（２Ａおよび２Ｂ）と、リンクアグリゲーション装置（ＬＡＡ）３と、ルータ（又はレイヤ３スイッチ（Ｌ３  ＳＷ））４と、ＩＰネットワーク４と、エンドホスト６（６Ａおよび６Ｂ）とを含む。
【００１７】
ＭＴ１は、少なくとも、携帯電話に適用される３Ｇ又は４Ｇ（例えば、Long Term Evolution (ＬＴＥ)），無線ＬＡＮ用のＩＥＥＥ８０２．１１，およびBluetooth（登録商標
）の機構をサポートする無線端末である。ＭＴ１は、複数の無線通信方式（無線アクセス技術）の一つを用いることによってエンドホストとＴＣＰ通信を行うことができる。
【００１８】
図１に示された各エンドホスト６は、例えば、ＭＴ１の通信相手として機能するサーバマシン，パーソナルコンピュータ（ＰＣ），および中継装置（例えばルータ）の一つである。図１に示す例において、エンドホスト（Ｅ−ＨＯＳＴ）６Ａおよびエンドホスト（Ｅ−ＨＯＳＴ）６Ｂは、サーバであると仮定する。エンドホスト６Ａは、ＬＡＡ３が属するローカルエリアネットワーク（ＬＡＮ）内にある一方でエンドホスト６ＢはＩＰネットワーク５を介してＬＡＡ３に接続されている。例えば、エンドホスト６Ｂは、遠隔エリア（海外）に配置されている。パケットフローは、ＭＴ１とエンドホスト６Ａ又はエンドホスト６Ｂとの間に確立される。このとき、ＭＴ１は、二つのエンドホストの一方となり、エンドホスト６Ａ又はエンドホスト６Ｂは、リモートホストに相当する他のエンドホストとなる。
【００１９】
ＡＰ２ＡおよびＡＰ２Ｂは、上述した無線アクセス技術の一つをそれぞれサポートしている。図１に示す例において、ＡＰ２Ａは、ＭＴ１のフェムトセルを提供する。ＡＰ２Ｂは、３Ｇ又は４Ｇをサポートする一般セルを提供する。
【００２０】
さらに、ＭＴ１は、リンクアグリゲーション技術をサポートする。すなわち、ＭＴ１からエンドホスト（例えばエンドホスト６Ａ又はエンドホス６Ｂ）へのアップリンク通信が行われる場合に、ＭＴ１は、ＭＴ１とＡＰ２Ａとの間の一方の無線リンク（無線リンク＃１）およびＭＴ１とＡＰ２Ｂとの間の他方の無線リンク（無線リンク＃２）上の一つのＴＣＰパケットフローのパケットのスイッチ又はソートを行う。
【００２１】
ＬＡＡ３は、無線リンク＃１および無線リンク＃２から到着するＴＣＰパケットを受信し、受信されたＴＣＰパケットの並べ換えをオリジナルの単一のパケットフローを作成するために行う。ＬＡＡ３によって復元されたパケットフローのＴＣＰパケットは、その宛先へ転送される。宛先がエンドホスト６Ａであれば、ＴＣＰパケットは、同じネットワーク内にあるエンドホスト６Ａに到着する。一方、宛先がエンドホスト６Ｂであれば、ＴＣＰパケットはルータ４およびＩＰネットワーク５を通じてエンドホスト６Ｂに到着する。このように、ＭＴ１はリングアグリゲーションポイント１（ＬＡポイント１）となり、ＬＡＡ３はＬＡポイント２となる。また、その逆もある（エンドホストからＭＴ１へのダウンリンク通信が実行されるならば、ＬＡＡ３は、スイッチング又はソーティング処理を行
い、ＭＴ１は上述した結合および並べ換え処理を行う）。
【００２２】
ＬＡＡ３はＴＣＰパケットのシーケンス番号に従って並べ換えを行う。無線リンク＃１および無線リンク＃２の一方からの幾つかのＴＣＰパケットが既にＬＡＡ３に到着しているとき、無線リンク＃１および無線リンク＃２の他方からの幾つかのＴＣＰパケットが未だ到着していなければ、ＬＡＡ３は、当該ＴＣＰパケットの到着を待つタイムアウト値を有するタイマをセットする。
【００２３】
＜ＬＡＡの構成＞
図２は、ＬＡＡ３の構成例を示す。図２において、ＬＡＡ３は、基地局（例えばフェムトセルを生成する基地局），ルータ，Ｌ３スイッチ，又はレイヤ２スイッチ（Ｌ２  ＳＷ）のような中継装置である。ＬＡＡ３は、無線インタフェース３１，プロセッサ３２，記憶装置３３，記憶装置３４，および通信インタフェース３５を含んでいる。ＬＡＡ３のこれらの部品３１〜３５はバスＢによって相互に接続されている。プロセッサ３２は、コントローラ又は制御装置の一例である。
【００２４】
無線インタフェース３１は、ＡＰ２から又はＡＰ２へのＴＣＰパケットを送受信するための回路である。図２は、ＡＰ２Ａに接続された無線インタフェース（無線ＩＦ）３１Ａと、ＡＰ２Ｂに接続された無線インタフェース（無線ＩＦ）３１Ｂとを図示している。通信インタフェース（ＩＦ）３５は、ルータ４およびエンドホスト６Ａから又はルータ４およびエンドホストへのＴＣＰパケットを送受信するための回路を含む。無線インタフェース３１は、少なくとも二つのレシーバの一例である。
【００２５】
記憶装置３３は、Random Access Memory (ＲＡＭ)およびRead Only Memory (ＲＯＭ)を含むメインメモリを含む。メインメモリは、プロセッサ３２の作業領域として使用される。記憶装置３４は、ハードディスク，フラッシュメモリ，Electrically Erasable Programmable Read-Only Memory (ＥＥＰＲＯＭ)のような不揮発性記憶装置を含む。記憶装置３４は、アクティブリンクのそれぞれの情報を記憶するデータベース（フローＤＢ３４Ａ）を記憶する（保持する）。当該情報は、アクティブリンクに対応するタイムアウト値に関する情報を含む。記憶装置３４は、プロセッサ３２によって実行される１以上のプログラムおよびプログラムが実行されるときに使用されるデータをさらに記憶する。
【００２６】
プロセッサ３２は、central processing unit（ＣＰＵ）またはdigital processing unit（ＤＳＰ）のようなマイクロプロセッサである。プロセッサ３２は、記憶装置３３にプログラムをロードし、当該プログラムを実行する。これによって、プロセッサ３２は、少なくともタイムアウト決定処理３２Ａ，遅延判定処理３２Ｂ，およびパケット並べ換え処理３２Ｃを含む様々な処理を実行する。
【００２７】
ＬＡＡ３がアップリンク通信におけるＬＡポイント２として機能するとき、プロセッサ３２は、遅延判定処理３２Ｂを実行することによって無線リンク＃１および無線リンク＃２のそれぞれに対応するタイムアウト値を決定する。無線リンク＃１および無線リンク＃２からのＴＣＰパケットは無線ＩＦ３１Ａおよび無線ＩＦ３１Ｂによって受信され、記憶装置３３上に形成されたバッファ領域に蓄積される。プロセッサ３２は、バッファ領域に記憶されたＴＣＰパケットに関する並べ換え処理を実行する。このとき、タイムアウト決定処理３２Ａによって決定されたタイムアウト値は、無線リンク＃１および無線リンク＃２のそれぞれからのＴＣＰパケットの到着を待つために適用される。
【００２８】
さらに、プロセッサは、ＴＣＰパケットの並べ換えおよび結合によってパケットフローを作成する（復元する）。その後、パケットフローにおけるＴＣＰパケットの宛先が判定され、ＴＣＰパケットは通信ＩＦ３５から宛先（ルータ４またはエンドホスト６Ａ）へ送
信される。
【００２９】
タイムアウト決定処理３２Ａ，遅延判定処理３２Ｂおよびパケット並べ換え処理３２Ｃは、プロセッサ３２の代わりの１以上のハードウェアによって実行される。例えば、ハードウェアは、Integrated Circuits（ＩＣ），Large Scale Integrated（ＬＳＩ）, Application Specific Integrated Circuits （ＡＳＩＣ），Field Programmable Gate Array
（ＦＰＧＡ）のようなLogic Programmable Devices （ＬＰＤ）およびそれらの組み合わ
せである。さらに、ＬＡＡ３は、少なくとも二つの無線インタフェースでサポートされていれば良いが、図２に比べて利用可能なさらなるインタフェースを有していても良い。
【００３０】
＜ＬＡＡ３における処理＞
次に、ＬＡＡ３における処理の詳細を以下に説明する。図２に示したようなＬＡＡ３の構成例は、ＬＡポイント１（ＭＴ１）およびＬＡポイント２（ＬＡＡ３）のために有効である。無線ＩＦ３１Ａおよび無線ＩＦ３１Ｂは、無線リンク＃１および無線リンク＃２からリンクアグリゲーションのパケットを受信する。無線ＩＦ３１Ａは、第１無線アクセス技術をサポートし、無線ＩＦ３１Ｂは第１無線アクセス技術と異なる第２無線アクセス技術をサポートする。
【００３１】
プロセッサ３２は、リンクアグリゲーションのパケットにおいて発見されたシーケンス番号に従って受信されたＴＣＰ／ＩＰパケットを再配置する。パケットの順序が逆転して到着したとき（例えば、シーケンス番号“２”を有するパケットが次の到着を期待されていたが、シーケンス番号“３”を有するパケットが到着した）、プロセッサ３２は、記憶装置３３および／または記憶装置３４のバッファ領域に形成された特別なバッファ（待ちバッファ）内に当該パケットを格納し、期待されたパケットが到着するまで、またはタイムアウトタイマが満了するまで、パケットを保持する。タイムアウトタイマは、順序が逆転したパケットが到着したときはいつでも開始される。タイムアウトタイマは、待ちバッファが空になるか、タイムアウトタイマが満了したときにリセットされる。例えば、タイムアウトタイマはプロセッサ３２によって制御される。
【００３２】
プロセッサ３２は、遅延判定処理３２Ｂを実行することによって、エンドホストに関する遅延を得る。「遅延」の用語は、エンドホスト又はネットワーク（サブネット単位）へのホップ数を単位とする物理的な距離を含む。また、「遅延」の用語は、パケットがエンドホストに到着し、エンドホストからＬＡＡ３に戻る時間に関する距離（間隔）、又はパケットがエンドホストへ行ったり来たりするためにどれ位時間が要求されるかの指示を与える時間又は空間のあらゆる他の手段を含む。
【００３３】
「遅延」に基づき、プロセッサ３２は、タイムアウト決定処理３２Ａを実行することによって、パケット並べ換えのために最適なタイムアウト値をフロー毎に決定する。二つのホスト（例えばＭＴ１とエンドホスト６Ａ又はエンドホスト６Ｂ）の間のパケットフローが確立されたとき、または二つのホストの間のパケットフローが既に存在しており、「遅延」に関する新たな情報が遅延判定処理３２Ｂによって得られたときに、タイムアウト値が決定されるようにしても良い。遅延を示す値は、フローＤＢ３４Ａ内に記憶される。
【００３４】
遅延判定処理３２Ａにおいて、プロセッサ３２は、リンクアグリゲーションされているフローに関する情報を得て、エンドホストに対する遅延に関するこれらのフローに関する情報を収集する。遅延はパケットフローを監視することによって得られる情報の判定または監視によって能動的に判定されるようにしても良い。例えば、新たなパケットフローが確立されたとき、プロセッサ３２は、遅延判定処理３２Ａによって、エンドホストに対するラウンドトリップタイム（ＲＴＴ）を判定するためにエンドホストへ“ｐｉｎｇ”パケットを送出するようにしても良い。さらに、プロセッサ３２は、ＴＣＰパケットを監視す
るＴＣＰパケットからＲＴＴを調査しても良い（例えば、エンドホストへパケットが送られるとき、および同パケットの確認パケットがエンドホストから到着したとき）。プロセッサ３２は、遅延判定処理３２Ｂ，タイムアウト決定処理３２Ａおよびパケット並べ換え処理３２ＣにおいてフローＤＢ３４Ａ内に記憶された様々な情報を参照する。
【００３５】
＜タイムアウト値を決定する例＞
リンクアグリゲーションインタフェースによって要求されたトータルアグリゲート帯域およびエンドホストに対するＲＴＴに基づくタイムアウトを算出するためのタイムアウト決定処理３２Ａの第１の例。
【００３６】
図３は、プロセッサ３２によって実行されるタイムアウト決定処理３２Ａの例を示す。プロセッサ３２は、特定のフローのためのタイムアウト値を計算する。図３に示すタイムアウト決定処理３２Ａは、二つのホスト（例えばＭＴ１とエンドホスト６Ａ又はエンドホスト６Ｂ）の間のパケットフローが確立されたとき、又は二つのホストの間のパケットフローが既に存在し、上述したような遅延に関する新たな情報が得られたときに開始される。
【００３７】
ステップＳ１において、プロセッサ３２は、フローのアグリゲート帯域（aggregate bandwidth）を得る。プロセッサ３２は、フローに利用可能な最大帯域を判定することによ
ってフローのアグリゲート帯域を算出することができる。例えば、無線リンク＃１がＬＴＥ（１０ＭＨｚ，６４ＱＡＭ）を使用し、無線リンク＃２がＩＥＥＥ８０２．１１ｇを使用し、利用可能な帯域は、９６Ｍｂｐｓ（５４Ｍｂｐｓ＋４２Ｍｂｐｓ）である。これらの数（帯域）は、双方の標準の仕様から容易に利用可能であり、記憶装置３３又は記憶装置３４に記憶されているハードコートされたテーブルから容易に参照することができる。
【００３８】
ステップＳ２において、プロセッサ３２は、ステップＳ１において算出された最大スループットでビットの受信ウィンドウ（ＲＷＩＮ）の設定を割ることによってＴＣＰでの最大ＲＴＴ（最大時間）を計算する。最大ＲＴＴは、エンド−エンドコネクションのセットアップ時にエンドホストへ通信されるＴＣＰのセッティングによって容易に利用可能である。ＲＷＩＮの標準的な値は６５５３６バイト（＝５２４２８８ビット）である。９６Ｍｂｐｓの最大アグリゲート帯域のために、少なくともＲＴＴ“５．２ｍｓ”が要求される（５２４２８８／１００６６３２９６＝０．０００５２ｓ＝５．２ｍｓ）。
【００３９】
ステップＳ３において、プロセッサ３２は、他のエンドホストに対するＲＴＴを決定する。例えば、プロセッサ３２は、ｐｉｎｇメッセージを用いることによってＲＴＴを測定する。エンドホストが同じ内部にあるとき（例えば、エンドホスト６Ａ）、１又は２ｍｓの時間が容易にＲＴＴとして得られる。エンドホストがインターネット上にあるとき（例えば、エンドホスト６Ｂ）、ラウンドトリップタイムが何になるかはエンドホストの物理的位置に依存する（例として、１０ｍｓから５００ｍｓの広範囲となり得る）。
【００４０】
ステップＳ４において、プロセッサ３２は、順序が逆転した送信に関する確率分布を判定する。これは、特定のタイムアウト設定を使用するときにどれ位のパケットが、順序が逆転して転送されるであろうかを判定することによってリンク付けされる。例えば、タイムアウト設定が０ｍｓ（すなわち、他のパケットを待たない）であれば、その確率は、順序が逆転して到着するパケットの数と同じである。他の値を使用するとき、その値は順序が逆転して転送されるパケットの数を示す。パケットのタイムアウト値が増加させるとき、その確率は減少する一方でトータルリンクパケットロスより小さくならない。
【００４１】
ステップＳ５において、プロセッサ３２は、最大パケットロス“Ａ”（“Ａ”は値を示す）を計算する。プロセッサ３２は、ＴＣＰリンク上で許容される最大パケットロスを判
定する。スループット，受信ウィンドウ（ＲＷＩＮ），およびラウンドトリップタイム（ＲＴＴ）の間の関係は、以下の式（１）によって表現される。
【数１】
2015517251.tif 000003
さらに、スループット，セグメントサイズ（ＭＳＳ），およびパケットロス"PLOSS"は
、以下の式（２）によって表現される。
【数２】
2015517251.tif 000004
式（１）および式（２）に基づき、パケットロス"PLOSS"は以下の式（３）によって算
出される。
【数３】
2015517251.tif 000005
パケットロスは、もしパケットロスが算出された値より大きければ、最大ＴＣＰスループットはＲＴＴによってではなくパケットロスによって制限されることを示す。従って、パケットロスはいつもパケットロス値より小さいことを維持することが必要とされる。最大セグメントサイズが１５００[byte] (標準Ethernet（登録商標）を有する)でウィンド
ウサイズが６５５３６を有する一般的なＴＣＰコネクションにおいて、パケットロスは約（１５００／６５５３６）2＝０．０５％である。
【００４２】
ステップＳ６において、確率分布を用いて、プロセッサ３２は、許容された最大ＲＴＴがＲＴＴより大きいかどうかをチェックする。もし最大ＲＴＴがＲＴＴより大きくなければ、全ての増加した時間は最大スループットを減少させ、最大スループットは（たとえリンクアグリゲーションを使用するとしても）達成されない。このため、順序の逆転の確率が以前のステップＳ５にて算出された値“Ａ”（一般的なケースでは０．０５％）を超えないようにタイムアウト値が設定される。しかしながら、ヘッドルームがある場合には、プロセッサ３２は、次のステップＳ６へ進む。
【００４３】
ステップＳ７において、プロセッサ３２は、タイムアウト値のための順序の逆転の確率“ＲＴＴ−最大時間”を計算する。もし“ＲＴＴ−最大時間”の値が“Ａ”より小さい場合には、“ＲＴＴ−最大時間”値ができるだけ多くのヘッドルームを許容するようにタイムアウト値が設定される。しかしながら、そうでないときには、以前のステップＳ５において計算されたような“Ａ”と同じ値に対してタイムアウト値が設定される。
【００４４】
＜確率分布の決定＞
図３において、ステップ４は、順序が逆転した送信のための確率分布を得ることを含む。確率分布を得る一つの方法は、使用中の各無線技術の特性を見て各パケットのドロップ（破棄）確率を見ることである。これは、幾つかの技術は再送技術を使う（パケットのドロップは再送を原因として幾らかの追加遅延をもたらす。パケットの遅延はそのドロップではない）一方で他はそれをしない（パケットのドロップはパケットのドロップで終わる）ので、ドロップ確率は無線技術毎に異なる。例えば、ＬＴＥにおいて、パケットは最大５回まで再送される（基地局の設定に依存する）。送信エラーが発生したとき、パケットはいくらかの追加ミリ秒の間遅延するが、パケットはドロップされない。しかしながら、再送機構が無いかも知れない幾つかの無線技術のために、遅延したパケットは、ドロップされるより高い機会を有する。そのとき、このドロップ確率の使用は、或る量の待機時間
の後にパケットが失われる機会を計算することによって順序が逆転する送信の分布を計算することを許容する。
【００４５】
＜インタフェース上の最大スループットの決定＞
ステップＳ２において、使用中の無線リンクの最大アグリゲートスループットは、トラフィックフローの最大タイムアウト値を決定するために使用される。その値は、インタフェース上で可能な最大スループットを得ることによって決定される（１０ＭＨｚ  ＬＴＥ
４２ＭｂｐｓおよびＩＥＥＥ８０２．１１  ５４Ｍｂｐｓの場合）。しかし、実際にはこれらの速度は、制御チャネル，パケットヘッダ，およびリンク上で利用可能なその他のトラフィックのオーバヘッドのために殆ど得ることができない。一方、リンクの最大速度は、初回のタイムアウト値の計算時にインジケータとして使用することができ、ＬＡポイント２によって観測されるフローの実速度を示すために適合させることができる。パケット並べ換え機能で観測されるパケットフロー速度は、タイムアウト値が増加したならばおそらく落ちるであろうリンクアグリゲーション速度による影響をこのフローが受けるので使用することができない。
【００４６】
タイムアウト決定処理３２Ａの第１の例において、プロセッサ３２は、新たなフローが検出され、ｐｉｎｇパケットを用いて能動的に測定されたＲＴＴ値に基づいてタイムアウト値を計算する。しかし、ｐｉｎｇパケットはエンドホストによってブロックされる可能性がある。これは、新たなコネクションが作成されるときにＲＴＴ値を得る方法で防がれる。第２の例において、プロセッサ３２は、ｐｉｎｇパケットを使用することなくＲＴＴに対応する「遅延」値を判定する。
【００４７】
エンドホストのＩＰアドレスが得られたとき、プロセッサ３２は、エンドホストの位置を決定する。オリジナル送信と同じサブネット内にあるＩＰアドレスはローカルエリアネットワーク内にあり、非常に低いラウンドトリップタイムを持つ。しかし、同じサブネット内に無いＩＰアドレスは完全に異なる起源を持つかもしれない。そのとき、リバースＤＮＳルックアップ（ＤＮＳ(Domain Name System) サーバ）は、エンドホストの位置のさ
らなる情報を供給するかも知れない。ＤＮＳのトップドメインがエンドホストとしての同じ国（country）の中にあるならば、相対的に低いＲＴＴを期待することができる。エン
ドホストが非常に遠いことをトップドメインが示すとき、エンドホストに対して高いラウンドトリップタイムがある。
【００４８】
図４は、宛先および宛先の一つに対応して予め設定された遅延を記憶するテーブル４０の例を示す。例えば、テーブル４０は、記憶装置３４内に記憶される。遅延判定処理３２Ｂにおいて、プロセッサ３２は、エンドホストのＩＰアドレスに基づいてエンドホストの宛先（位置）を判定する。プロセッサ３２は、テーブル４０から宛先に対応する遅延を引き出す。プロセッサ３２は、得られた遅延をタイムアウト決定処理３２Ａにおいて使用される遅延として決定する（図３におけるステップＳ３）。すなわち、エンドホストのＩＰアドレスのルックアップおよびこのＩＰが他のエンドホストとして同じサブネット内にあるかどうかのチェックによってローカルネットワークが決定される一方、エンドホストのＩＰアドレス又はＤＮＳの情報に基づいて他のエントリが決定される。ＤＮＳ情報は、リバースＤＮＳルックアップ機構又は既に利用可能な“ＷＨＯＩＳ”機構を用いることによって得ることができる。
【００４９】
次に、タイムアウト値を決定するための第３の例が説明される。図５は、ホップ数およびホップ数（ホップ量）に対応する予め設定された遅延を記憶するテーブル５０の例を示す。図５において、ホップ数は、文字“ａ”から“ｄ”によって表現されている。例えば、テーブル５０は、記憶装置３４内に記憶される。遅延判定処理３２Ｂにおいて、プロセッサ３２は、テーブル４０の代わりにテーブル５０を使用する。エンドホストのＩＰアド
レスが得られたとき、プロセッサはエンドホストへのホップ数を測定する。ホップ数の測定のために、“traceroute”技術（既知）を使用することができる。プロセッサ３２は、テーブル５０からホップ数に対応する遅延を引き出す。プロセッサ３２は、得られた遅延をタイムアウト決定処理３２Ａにおいて使用される遅延として決定する（図３のステップＳ３）。
【００５０】
本発明の実施形態によれば、パケットロスおよび距離のような遅延に基づいてタイムアウト値が決定される。したがって、固定された（ユニバーサル）タイムアウト値が使用されることによって生じる問題を回避することができ、上位レイヤに対する影響が抑止される。
【００５１】
上述した実施形態において、ＬＡＡ３は無線リンク＃１および無線リンク＃２を介してＭＴ１と接続されていると説明した。しかし、ＬＡＡは無線リンクの代わりの有線リンクを介してＭＴ１と接続されても良い。すなわち、「リンク」は、無線リンクと有線リンクの双方を含むことができる。
【００５２】
ここに記載された全ての例および条件を含む言語は、本発明の理解およびその分野の促進に対し発明者が貢献した着想において読み手を救済するための教育的な目的向けのものであり、そのような具体的に記載された例および条件に対して制限のないように解釈されるべきであり、明細書におけるそのような例の組織化は本発明の優位性および優位性の証明に関するものではない。本発明の実施例は詳細に記述されているけれども、様々な変更，置換，代替が発明の主旨および範囲から離れないところでなし得ることを理解すべきである。
【符号の説明】
【００５３】
１・・・移動端末
２・・・アクセスポイント
３・・・リンクアグリゲーション装置
４・・・ルータ
５・・・ネットワーク
６・・・エンドホスト
３１・・・無線インタフェース
３２・・・プロセッサ
３３，３４・・・記憶装置
３５・・・通信インタフェース
４０，５０・・・テーブル
【図１】
2015517251.tif 000006
【図２】
2015517251.tif 000007
【図３】
2015517251.tif 000008
【図４】
2015517251.tif 000009
【図５】
2015517251.tif 000010
【手続補正書】
【提出日】平成26年10月31日(2014.10.31)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、リンクアグリゲーション装置に関する。
【背景技術】
【０００２】
家庭又は企業利用のインドアモバイル無線カバレッジの改良、および無線ネットワークの全体的な容量の改良のために、現在、フェムトセル（スモール基地局）が開発および展開されている。無線ネットワークオペレータへのバックホールコネクションとして、フェムトセルは、ユーザの既存のインターネット接続，例えば、ＡＤＳＬ（Asymmetric Digital Subscriber Line)又はファイバインターネット接続を使用する。
【０００３】
将来的に、フェムトセルは、展開するカスタマに対する、３Ｇ（第３世代），４Ｇ（第４世代），又はより小さいセルラー技術の提供のみならず、ＩＥＥＥ８０２．１１又はBluetooth（登録商標）のような他の無線接続技術を通じた家庭ネットワークへのアクセス
を提供するであろうと考えられている。なぜなら、それぞれの無線接続技術は他から独立して使用することができ、複数の無線アクセス技術は（複数の接続技術）は、より速いトータル帯域を提供するために組み合わせることができるからである。より速いトータル帯域を提供するには、双方のリンクを結合し、ホストが利用可能な複数の無線リンク間のネットワークを超えて搬送されるパケットを分割するリンクアグリゲーションと呼ばれる技術の使用によって達成される。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−３４５７１８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
複数の無線リンク上でのリンクアグリゲーションの使用時には、複数の無線リンクに分配されたパケットを結合するときに、パケットの並べ換えに対して幾つかのフォームを用
いることが必要とされる。これは、無線技術の高度な可変性（送信／受信装置の干渉又は移動によって生じる）を原因として、パケットの到着の順序が逆転するからである。例えば、パケットのより遅い受信に続く無送信（送信エラーによる）の短いインターバルに続いて正確に受信されるパケットのバーストがあるかも知れない。通常、このような受信におけるパケットの順序の逆転は、一つのリンクのみを使用するときにはあまり起こらない。しかしながら、一つの同じ送信フロー（例えばＴＣＰ／ＩＰ(Transmission Control Protocol/Internet Protocol)フロー）のパケットが様々な無線リンク上に分配されるとき
、それらの無線リンクの変動性のためにパケットの到着の順序の逆転が発生しやすい。これにより、ＴＣＰフローの性能に非常に大きな影響を与える。その性能への影響は、ＴＣＰがシーケンス番号によってパケットを確認するという動作によって引き起こされる。もし、幾つかのシーケンス番号が他よりも前に到着し、到着していないシーケンス番号が前の複数のパケットが或るタイムフレーム内に到着しなければ、ＴＣＰはこれらのパケットが失われたとみなす。これらのパケットが失われたと見なされたとき、ＴＣＰは、送信ホストへの再送要求を送信し、結果として、送信ホストは、その送信速度を小さくする。
【０００６】
中継装置（リンクアグリゲーションポイント：ＬＡポイント）は、エンドホストへのコネクションを有する移動端末によって分割された二つの無線リンクからのＴＣＰパケットを受信すると仮定する。そのＬＡポイントは、それらのＴＣＰパケットを一つのフローに再び結合する。そのＬＡポイントにおいて、或る無線リンクからのパケットが他の無線リンクからのパケットよりも早く到着する可能性がある。このとき、ＬＡポイントは、パケットがエンドホストへ転送される前にパケット並べ替えのソートを行う。パケット並べ換えを行うとき、ＬＡポイントは、遅れて到着するであろう幾つかのパケットを待つためのタイムアウト用の値を有するタイマを設定する。タイマが満了したとき、遅れて到着するパケットは無視される（ドロップされる）。
【０００７】
タイムアウト用の値には、固定値（ユニバーサル値）適用されている。そのユニバーサル値は、以下に説明する問題を生じる。すなわち、ＴＣＰの性能は、コネクションのラウンドトリップタイムに大きく依存する。例えば、エンドホストが例えば１０ｍｓのローカルエリアネットワークに配置されている場合、ラウンドトリップタイムはＴＣＰの高いスループット速度を許容する一方で、海外に配置されたエンドホストの高い（長い）ラウンドトリップタイムはＴＣＰの高いスループット速度を阻害する。もし、リンクアグリゲーションの使用時に、そのローカルエリアネットワークにおける低い（短い）ラウンドトリップタイムがパケット並べ換え用の高いタイムアウト値を原因として急激に増加するならば、スループットの低下が観察される。エンドホストが海外に配置されているときも同様のスループット低下を観察することができる。もし、スループットを増加させるために、低いタイムアウト値が使用されるならば、代わりに、不必要にパケットがドロップされ、スループットを低下させるかも知れない。
【０００８】
上述したように、タイムアウトのためのユニバーサル値は、スループットの低下を引き起こす。さらに、タイムアウトのためのユニバーサル値は、上位層に影響を与え、且つ通信性能の劣化を引き起こす可能性がある。
【０００９】
本発明の一態様の目的は、ＴＣＰパケットのリンクアグリゲーションの性能を改良する技術を提供することである。
【課題を解決するための手段】
【００１０】
本発明の態様は、リンクアグリゲーション装置である。リンクアグリゲーション装置は、二つのエンドホストの間のパケットフローを流れるリンクアグリゲーションのパケットを複数の無線リンクから受信する少なくとも二つのレシーバと、上記二つのエンドホストのうちのリモートホストに関係する遅延を判定する処理と、上記パケットフローにおける
順序に基づいてリンクアグリゲーションのパケットを並べ換える処理と、パケットロスとその遅延に基づいて上記無線リンクのそれぞれに対応するタイムアウト値を算出する処理とを実行するプロセッサとを含み、各タイムアウト値は対応する無線リンクからのパケットの受信を待機するために使用される。
【００１１】
本発明の目的および利点は、クレームにおいて特に指摘された構成要素および組み合わせによって実現および獲得されるであろう。
【００１２】
上記した一般の記述および以下の詳細な記述の双方は例示的および説明的なものであり、クレームされたような本発明の限定ではないと理解されるべきである。
【発明の効果】
【００１３】
本発明の一態様によれば、ＴＣＰパケットのリンクアグリゲーションの性能を向上させる技術を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】図１は、本発明の実施形態に関するリンクアグリゲーション装置（ＬＡＡ）を用いるネットワークシステムを示す図である。
【図２】図２は、ＬＡＡの構成例を示す図である。
【図３】図３は、タイムアウト決定処理の例を示すフローチャートである。
【図４】図４は、宛先および遅延を記憶するテーブルを示す図である。
【図５】図５は、ホップ数および遅延を記憶するテーブルを示す図である。
【発明を実施するための形態】
【００１５】
本発明の実施形態は、図面を参照して記述される。実施形態の構成は例として与えられたものであり、本発明のあらゆる態様は、実施形態の構成に限定されない。
【００１６】
＜ネットワークシステム＞
図１は、本発明の実施形態に関するリンクアグリゲーション装置を用いるネットワークシステムを示す。図１において、ネットワークシステムは、移動端末（ＭＴ）１と、アクセスポイント（ＡＰ：基地局）２（２Ａおよび２Ｂ）と、リンクアグリゲーション装置（ＬＡＡ）３と、ルータ（又はレイヤ３スイッチ（Ｌ３  ＳＷ））４と、ＩＰネットワーク５と、エンドホスト６（６Ａおよび６Ｂ）とを含む。
【００１７】
ＭＴ１は、少なくとも、携帯電話に適用される３Ｇ又は４Ｇ（例えば、Long Term Evolution (ＬＴＥ)），無線ＬＡＮ用のＩＥＥＥ８０２．１１，およびBluetooth（登録商標
）の機構をサポートする無線端末である。ＭＴ１は、複数の無線通信方式（無線アクセス技術）の一つを用いることによってエンドホストとＴＣＰ通信を行うことができる。
【００１８】
図１に示された各エンドホスト６は、例えば、ＭＴ１の通信相手として機能するサーバマシン，パーソナルコンピュータ（ＰＣ），および中継装置（例えばルータ）の一つである。図１に示す例において、エンドホスト（Ｅ−ＨＯＳＴ）６Ａおよびエンドホスト（Ｅ−ＨＯＳＴ）６Ｂは、サーバであると仮定する。エンドホスト６Ａは、ＬＡＡ３が属するローカルエリアネットワーク（ＬＡＮ）内にある一方でエンドホスト６ＢはＩＰネットワーク５を介してＬＡＡ３に接続されている。例えば、エンドホスト６Ｂは、遠隔エリア（海外）に配置されている。パケットフローは、ＭＴ１とエンドホスト６Ａ又はエンドホスト６Ｂとの間に確立される。このとき、ＭＴ１は、二つのエンドホストの一方となり、エンドホスト６Ａ又はエンドホスト６Ｂは、リモートホストに相当する他のエンドホストとなる。
【００１９】
ＡＰ２ＡおよびＡＰ２Ｂは、上述した無線アクセス技術の一つをそれぞれサポートしている。図１に示す例において、ＡＰ２Ａは、ＭＴ１のフェムトセルを提供する。ＡＰ２Ｂは、３Ｇ又は４Ｇをサポートする一般セルを提供する。
【００２０】
さらに、ＭＴ１は、リンクアグリゲーション技術をサポートする。すなわち、ＭＴ１からエンドホスト（例えばエンドホスト６Ａ又はエンドホス６Ｂ）へのアップリンク通信が行われる場合に、ＭＴ１は、ＭＴ１とＡＰ２Ａとの間の一方の無線リンク（無線リンク＃１）およびＭＴ１とＡＰ２Ｂとの間の他方の無線リンク（無線リンク＃２）上の一つのＴＣＰパケットフローのパケットのスイッチ又はソートを行う。
【００２１】
ＬＡＡ３は、無線リンク＃１および無線リンク＃２から到着するＴＣＰパケットを受信し、受信されたＴＣＰパケットの並べ換えをオリジナルの単一のパケットフローを作成するために行う。ＬＡＡ３によって復元されたパケットフローのＴＣＰパケットは、その宛先へ転送される。宛先がエンドホスト６Ａであれば、ＴＣＰパケットは、同じネットワーク内にあるエンドホスト６Ａに到着する。一方、宛先がエンドホスト６Ｂであれば、ＴＣＰパケットはルータ４およびＩＰネットワーク５を通じてエンドホスト６Ｂに到着する。このように、ＭＴ１はリンクアグリゲーションポイント１（ＬＡポイント１）となり、ＬＡＡ３はＬＡポイント２となる。また、その逆もある（エンドホストからＭＴ１へのダウンリンク通信が実行されるならば、ＬＡＡ３は、スイッチング又はソーティング処理を行い、ＭＴ１は上述した結合および並べ換え処理を行う）。
【００２２】
ＬＡＡ３はＴＣＰパケットのシーケンス番号に従って並べ換えを行う。無線リンク＃１および無線リンク＃２の一方からの幾つかのＴＣＰパケットが既にＬＡＡ３に到着しているとき、無線リンク＃１および無線リンク＃２の他方からの幾つかのＴＣＰパケットが未だ到着していなければ、ＬＡＡ３は、当該ＴＣＰパケットの到着を待つタイムアウト値を有するタイマをセットする。
【００２３】
＜ＬＡＡの構成＞
図２は、ＬＡＡ３の構成例を示す。図２において、ＬＡＡ３は、基地局（例えばフェムトセルを生成する基地局），ルータ，Ｌ３スイッチ，又はレイヤ２スイッチ（Ｌ２  ＳＷ）のような中継装置である。ＬＡＡ３は、無線インタフェース３１，プロセッサ３２，記憶装置３３，記憶装置３４，および通信インタフェース３５を含んでいる。ＬＡＡ３のこれらの部品３１〜３５はバスＢによって相互に接続されている。プロセッサ３２は、コントローラ又は制御装置の一例である。
【００２４】
無線インタフェース３１は、ＡＰ２から又はＡＰ２へのＴＣＰパケットを送受信するための回路である。図２は、ＡＰ２Ａに接続された無線インタフェース（無線ＩＦ）３１Ａと、ＡＰ２Ｂに接続された無線インタフェース（無線ＩＦ）３１Ｂとを図示している。通信インタフェース（ＩＦ）３５は、ルータ４およびエンドホスト６Ａから又はルータ４およびエンドホストへのＴＣＰパケットを送受信するための回路を含む。無線インタフェース３１は、少なくとも二つのレシーバの一例である。
【００２５】
記憶装置３３は、Random Access Memory (ＲＡＭ)およびRead Only Memory (ＲＯＭ)を含むメインメモリを含む。メインメモリは、プロセッサ３２の作業領域として使用される。記憶装置３４は、ハードディスク，フラッシュメモリ，Electrically Erasable Programmable Read-Only Memory (ＥＥＰＲＯＭ)のような不揮発性記憶装置を含む。記憶装置３４は、アクティブな無線リンクのそれぞれの情報を記憶するデータベース（フローＤＢ３４Ａ）を記憶する（保持する）。当該情報は、アクティブな各無線リンクに対応するタイムアウト値に関する情報を含む。記憶装置３４は、プロセッサ３２によって実行される１以上のプログラムおよびプログラムが実行されるときに使用されるデータをさらに記憶す
る。
【００２６】
プロセッサ３２は、central processing unit（ＣＰＵ）またはdigital processing unit（ＤＳＰ）のようなマイクロプロセッサである。プロセッサ３２は、記憶装置３３にプログラムをロードし、当該プログラムを実行する。これによって、プロセッサ３２は、少なくともタイムアウト決定処理３２Ａ，遅延判定処理３２Ｂ，およびパケット並べ換え処理３２Ｃを含む様々な処理を実行する。
【００２７】
ＬＡＡ３がアップリンク通信におけるＬＡポイント２として機能するとき、プロセッサ３２は、遅延判定処理３２Ｂを実行することによって無線リンク＃１および無線リンク＃２のそれぞれに対応するタイムアウト値を決定する。無線リンク＃１および無線リンク＃２からのＴＣＰパケットは無線ＩＦ３１Ａおよび無線ＩＦ３１Ｂによって受信され、記憶装置３３上に形成されたバッファ領域に蓄積される。プロセッサ３２は、バッファ領域に記憶されたＴＣＰパケットに関する並べ換え処理を実行する。このとき、タイムアウト決定処理３２Ａによって決定されたタイムアウト値は、無線リンク＃１および無線リンク＃２のそれぞれからのＴＣＰパケットの到着を待つために適用される。
【００２８】
さらに、プロセッサは、ＴＣＰパケットの並べ換えおよび結合によってパケットフローを作成する（復元する）。その後、パケットフローにおけるＴＣＰパケットの宛先が判定され、ＴＣＰパケットは通信ＩＦ３５から宛先（ルータ４またはエンドホスト６Ａ）へ送信される。
【００２９】
タイムアウト決定処理３２Ａ，遅延判定処理３２Ｂおよびパケット並べ換え処理３２Ｃは、プロセッサ３２の代わりの１以上のハードウェアによって実行される。例えば、ハードウェアは、Integrated Circuits（ＩＣ），Large Scale Integrated（ＬＳＩ）, Application Specific Integrated Circuits （ＡＳＩＣ），Field Programmable Gate Array
（ＦＰＧＡ）のようなLogic Programmable Devices （ＬＰＤ）およびそれらの組み合わ
せである。さらに、ＬＡＡ３は、少なくとも二つの無線インタフェースでサポートされていれば良いが、図２に比べて利用可能なさらなるインタフェースを有していても良い。
【００３０】
＜ＬＡＡ３における処理＞
次に、ＬＡＡ３における処理の詳細を以下に説明する。図２に示したようなＬＡＡ３の構成例は、ＬＡポイント１（ＭＴ１）およびＬＡポイント２（ＬＡＡ３）のために有効である。無線ＩＦ３１Ａおよび無線ＩＦ３１Ｂは、無線リンク＃１および無線リンク＃２からリンクアグリゲーションのパケットを受信する。無線ＩＦ３１Ａは、第１無線アクセス技術をサポートし、無線ＩＦ３１Ｂは第１無線アクセス技術と異なる第２無線アクセス技術をサポートする。
【００３１】
プロセッサ３２は、リンクアグリゲーションのパケットにおけるシーケンス番号に従って受信されたＴＣＰ／ＩＰパケットを再配置する。パケットの順序が逆転して到着したとき（例えば、シーケンス番号“２”を有するパケットが次の到着を期待されていたが、シーケンス番号“３”を有するパケットが到着した）、プロセッサ３２は、記憶装置３３および／または記憶装置３４のバッファ領域に形成された特別なバッファ（待ちバッファ）内に当該パケットを格納し、期待されたパケットが到着するまで、またはタイムアウトタイマが満了するまで、パケットを保持する。タイムアウトタイマは、順序が逆転したパケットが到着したときはいつでも開始される。タイムアウトタイマは、待ちバッファが空になるか、タイムアウトタイマが満了したときにリセットされる。例えば、タイムアウトタイマはプロセッサ３２によって制御される。
【００３２】
プロセッサ３２は、遅延判定処理３２Ｂを実行することによって、エンドホストに関す
る遅延を得る。「遅延」の用語は、エンドホスト又はネットワーク（サブネット単位）へのホップ数を単位とする物理的な距離を含む。また、「遅延」の用語は、パケットがエンドホストに到着し、エンドホストからＬＡＡ３に戻る時間に関する距離（間隔）、又はパケットがエンドホストへ行ったり来たりするためにどれ位時間が要求されるかの指示を与える時間又は空間のあらゆる他の手段を含む。
【００３３】
「遅延」に基づき、プロセッサ３２は、タイムアウト決定処理３２Ａを実行することによって、パケット並べ換えのために最適なタイムアウト値をフロー毎に決定する。二つのホスト（例えばＭＴ１とエンドホスト６Ａ又はエンドホスト６Ｂ）の間のパケットフローが確立されたとき、または二つのホストの間のパケットフローが既に存在しており、「遅延」に関する新たな情報が遅延判定処理３２Ｂによって得られたときに、タイムアウト値が決定されるようにしても良い。遅延を示す値は、フローＤＢ３４Ａ内に記憶される。
【００３４】
遅延判定処理３２Ｂにおいて、プロセッサ３２は、リンクアグリゲーションされているフローに関する情報を得て、エンドホストに対する遅延に関するこれらのフローに関する情報を収集する。遅延はパケットフローを監視することによって得られる情報の判定または監視によって能動的に判定されるようにしても良い。例えば、新たなパケットフローが確立されたとき、プロセッサ３２は、遅延判定処理３２Ｂによって、エンドホストに対するラウンドトリップタイム（ＲＴＴ）を判定するためにエンドホストへ“ｐｉｎｇ”パケットを送出するようにしても良い。さらに、プロセッサ３２は、ＴＣＰパケットを監視するＴＣＰパケットからＲＴＴを調査しても良い（例えば、エンドホストへパケットが送られるとき、および同パケットの確認パケットがエンドホストから到着したとき）。プロセッサ３２は、遅延判定処理３２Ｂ，タイムアウト決定処理３２Ａおよびパケット並べ換え処理３２ＣにおいてフローＤＢ３４Ａ内に記憶された様々な情報を参照する。
【００３５】
＜タイムアウト値を決定する例＞
リンクアグリゲーションインタフェースによって要求されたトータルアグリゲート帯域およびエンドホストに対するＲＴＴに基づくタイムアウトを算出するためのタイムアウト決定処理３２Ａの第１の例。
【００３６】
図３は、プロセッサ３２によって実行されるタイムアウト決定処理３２Ａの例を示す。プロセッサ３２は、特定のフローのためのタイムアウト値を計算する。図３に示すタイムアウト決定処理３２Ａは、二つのホスト（例えばＭＴ１とエンドホスト６Ａ又はエンドホスト６Ｂ）の間のパケットフローが確立されたとき、又は二つのホストの間のパケットフローが既に存在し、上述したような遅延に関する新たな情報が得られたときに開始される。
【００３７】
ステップＳ１において、プロセッサ３２は、フローのアグリゲート帯域（aggregate bandwidth）を得る。プロセッサ３２は、フローに利用可能な最大帯域を判定することによ
ってフローのアグリゲート帯域を算出することができる。例えば、無線リンク＃１がＬＴＥ（１０ＭＨｚ，６４ＱＡＭ）を使用し、無線リンク＃２がＩＥＥＥ８０２．１１ｇを使用し、利用可能な帯域は、９６Ｍｂｐｓ（５４Ｍｂｐｓ＋４２Ｍｂｐｓ）である。これらの数（帯域）は、双方の標準の仕様から容易に利用可能であり、記憶装置３３又は記憶装置３４に記憶されているハードコートされたテーブルから容易に参照することができる。
【００３８】
ステップＳ２において、プロセッサ３２は、ステップＳ１において算出された最大スループットでビットの受信ウィンドウ（ＲＷＩＮ）の設定を割ることによってＴＣＰでの最大ＲＴＴ（最大時間）を計算する。最大ＲＴＴは、エンド−エンドコネクションのセットアップ時にエンドホストへ通信されるＴＣＰのセッティングによって容易に利用可能である。ＲＷＩＮの標準的な値は６５５３６バイト（＝５２４２８８ビット）である。９６Ｍ
ｂｐｓの最大アグリゲート帯域のために、少なくともＲＴＴ“５．２ｍｓ”が要求される（５２４２８８／１００６６３２９６＝０．０００５２ｓ＝５．２ｍｓ）。
【００３９】
ステップＳ３において、プロセッサ３２は、他のエンドホストに対するＲＴＴを決定する。例えば、プロセッサ３２は、ｐｉｎｇメッセージを用いることによってＲＴＴを測定する。エンドホストが同じ内部にあるとき（例えば、エンドホスト６Ａ）、１又は２ｍｓの時間が容易にＲＴＴとして得られる。エンドホストがインターネット上にあるとき（例えば、エンドホスト６Ｂ）、ラウンドトリップタイムが何になるかはエンドホストの物理的位置に依存する（例として、１０ｍｓから５００ｍｓの広範囲となり得る）。
【００４０】
ステップＳ４において、プロセッサ３２は、順序が逆転した送信に関する確率分布を判定する。これは、特定のタイムアウト設定を使用するときにどれ位のパケットが、順序が逆転して転送されるであろうかを判定することによってリンク付けされる。例えば、タイムアウト設定が０ｍｓ（すなわち、他のパケットを待たない）であれば、その確率は、順序が逆転して到着するパケットの数と同じである。他の値を使用するとき、その値は順序が逆転して転送されるパケットの数を示す。パケットのタイムアウト値が増加させるとき、その確率は減少する一方でトータルリンクパケットロスより小さくならない。
【００４１】
ステップＳ５において、プロセッサ３２は、最大パケットロス“Ａ”（“Ａ”は値を示す）を計算する。プロセッサ３２は、ＴＣＰリンク上で許容される最大パケットロスを判定する。スループット，受信ウィンドウ（ＲＷＩＮ），およびラウンドトリップタイム（ＲＴＴ）の間の関係は、以下の式（１）によって表現される。
【数１】
2015517251.tif 000011
さらに、スループット，セグメントサイズ（ＭＳＳ），およびパケットロス"PLOSS"は
、以下の式（２）によって表現される。
【数２】
2015517251.tif 000012
式（１）および式（２）に基づき、パケットロス"PLOSS"は以下の式（３）によって算
出される。
【数３】
2015517251.tif 000013
パケットロスは、もしパケットロスが算出された値より大きければ、最大ＴＣＰスループットはＲＴＴによってではなくパケットロスによって制限されることを示す。従って、パケットロスはいつもパケットロス値より小さいことを維持することが必要とされる。最大セグメントサイズが１５００[byte] (標準Ethernet（登録商標）を有する)でウィンド
ウサイズが６５５３６を有する一般的なＴＣＰコネクションにおいて、パケットロスは約（１５００／６５５３６）2＝０．０５％である。
【００４２】
ステップＳ６において、確率分布を用いて、プロセッサ３２は、許容された最大ＲＴＴがＲＴＴより大きいかどうかをチェックする。もし最大ＲＴＴがＲＴＴより大きくなければ、全ての増加した時間は最大スループットを減少させ、最大スループットは（たとえリンクアグリゲーションを使用するとしても）達成されない。このため、順序の逆転の確率が以前のステップＳ５にて算出された値“Ａ”（一般的なケースでは０．０５％）を超えないようにタイムアウト値が設定される。しかしながら、ヘッドルームがある場合には、プロセッサ３２は、次のステップＳ６へ進む。
【００４３】
ステップＳ７において、プロセッサ３２は、タイムアウト値のための順序の逆転の確率“ＲＴＴ−最大時間”を計算する。もし“ＲＴＴ−最大時間”の値が“Ａ”より小さい場合には、“ＲＴＴ−最大時間”値ができるだけ多くのヘッドルームを許容するようにタイムアウト値が設定される。しかしながら、そうでないときには、以前のステップＳ５において計算されたような“Ａ”と同じ値に対してタイムアウト値が設定される。
【００４４】
＜確率分布の決定＞
図３において、ステップ４は、順序が逆転した送信のための確率分布を得ることを含む。確率分布を得る一つの方法は、使用中の各無線技術の特性を見て各パケットのドロップ（破棄）確率を見ることである。これは、幾つかの技術は再送技術を使う（パケットのドロップは再送を原因として幾らかの追加遅延をもたらす。パケットの遅延はそのドロップではない）一方で他はそれをしない（パケットのドロップはパケットのドロップで終わる）ので、ドロップ確率は無線技術毎に異なる。例えば、ＬＴＥにおいて、パケットは最大５回まで再送される（基地局の設定に依存する）。送信エラーが発生したとき、パケットはいくらかの追加ミリ秒の間遅延するが、パケットはドロップされない。しかしながら、再送機構が無いかも知れない幾つかの無線技術のために、遅延したパケットは、ドロップされるより高い機会を有する。そのとき、このドロップ確率の使用は、或る量の待機時間の後にパケットが失われる機会を計算することによって順序が逆転する送信の分布を計算することを許容する。
【００４５】
＜インタフェース上の最大スループットの決定＞
ステップＳ２において、使用中の無線リンクの最大アグリゲートスループットは、トラフィックフローの最大タイムアウト値を決定するために使用される。その値は、インタフェース上で可能な最大スループットを得ることによって決定される（１０ＭＨｚ  ＬＴＥ
４２ＭｂｐｓおよびＩＥＥＥ８０２．１１  ５４Ｍｂｐｓの場合）。しかし、実際にはこれらの速度は、制御チャネル，パケットヘッダ，およびリンク上で利用可能なその他のトラフィックのオーバヘッドのために殆ど得ることができない。一方、リンクの最大速度は、初回のタイムアウト値の計算時にインジケータとして使用することができ、ＬＡポイント２によって観測されるフローの実速度を示すために適合させることができる。パケット並べ換え機能で観測されるパケットフロー速度は、タイムアウト値が増加したならばおそらく低下するであろうリンクアグリゲーション速度による影響をこのフローが受けるので使用することができない。
【００４６】
タイムアウト決定処理３２Ａの第１の例において、プロセッサ３２は、新たなフローが検出され、ｐｉｎｇパケットを用いて能動的に測定されたＲＴＴ値に基づいてタイムアウト値を計算する。しかし、ｐｉｎｇパケットはエンドホストによってブロックされる可能性がある。これは、新たなコネクションが作成されるときにＲＴＴ値を得る方法で防がれる。第２の例において、プロセッサ３２は、ｐｉｎｇパケットを使用することなくＲＴＴに対応する「遅延」値を判定する。
【００４７】
エンドホストのＩＰアドレスが得られたとき、プロセッサ３２は、エンドホストの位置を決定する。オリジナル送信と同じサブネット内にあるＩＰアドレスはローカルエリアネットワーク内にあり、非常に小さいラウンドトリップタイムを持つ。しかし、同じサブネット内に無いＩＰアドレスは完全に異なる起源を持つかもしれない。そのとき、リバースＤＮＳルックアップ（ＤＮＳ(Domain Name System) サーバ）は、エンドホストの位置の
さらなる情報を供給するかも知れない。ＤＮＳのトップドメインがエンドホストとしての同じ国（country）の中にあるならば、相対的に低いＲＴＴを期待することができる。エ
ンドホストが非常に遠いことをトップドメインが示すとき、エンドホストに対して高いラウンドトリップタイムがある。
【００４８】
図４は、宛先および宛先の一つに対応して予め設定された遅延を記憶するテーブル４０の例を示す。例えば、テーブル４０は、記憶装置３４内に記憶される。遅延判定処理３２Ｂにおいて、プロセッサ３２は、エンドホストのＩＰアドレスに基づいてエンドホストの宛先（位置）を判定する。プロセッサ３２は、テーブル４０から宛先に対応する遅延を引き出す。プロセッサ３２は、得られた遅延をタイムアウト決定処理３２Ａにおいて使用される遅延として決定する（図３におけるステップＳ３）。すなわち、エンドホストのＩＰアドレスのルックアップおよびこのＩＰが他のエンドホストとして同じサブネット内にあるかどうかのチェックによってローカルネットワークが決定される一方、エンドホストのＩＰアドレス又はＤＮＳの情報に基づいて他のエントリが決定される。ＤＮＳ情報は、リバースＤＮＳルックアップ機構又は既に利用可能な“ＷＨＯＩＳ”機構を用いることによって得ることができる。
【００４９】
次に、タイムアウト値を決定するための第３の例が説明される。図５は、ホップ数およびホップ数（ホップ量）に対応する予め設定された遅延を記憶するテーブル５０の例を示す。図５において、ホップ数は、文字“ａ”から“ｄ”によって表現されている。例えば、テーブル５０は、記憶装置３４内に記憶される。遅延判定処理３２Ｂにおいて、プロセッサ３２は、テーブル４０の代わりにテーブル５０を使用する。エンドホストのＩＰアドレスが得られたとき、プロセッサはエンドホストへのホップ数を測定する。ホップ数の測定のために、“traceroute”技術（既知）を使用することができる。プロセッサ３２は、テーブル５０からホップ数に対応する遅延を引き出す。プロセッサ３２は、得られた遅延をタイムアウト決定処理３２Ａにおいて使用される遅延として決定する（図３のステップＳ３）。
【００５０】
本発明の実施形態によれば、パケットロスおよび距離のような遅延に基づいてタイムアウト値が決定される。したがって、固定された（ユニバーサル）タイムアウト値が使用されることによって生じる問題を回避することができ、上位レイヤに対する影響が抑止される。
【００５１】
上述した実施形態において、ＬＡＡ３は無線リンク＃１および無線リンク＃２を介してＭＴ１と接続されていると説明した。しかし、ＬＡＡは無線リンクの代わりの有線リンクを介してＭＴ１と接続されても良い。すなわち、「リンク」は、無線リンクと有線リンクの双方を含むことができる。
【００５２】
ここに記載された全ての例および条件を含む言語は、本発明の理解およびその分野の促進に対し発明者が貢献した着想において読み手を救済するための教育的な目的向けのものであり、そのような具体的に記載された例および条件に対して制限のないように解釈されるべきであり、明細書におけるそのような例の組織化は本発明の優位性および優位性の証明に関するものではない。本発明の実施例は詳細に記述されているけれども、様々な変更，置換，代替が発明の主旨および範囲から離れないところでなし得ることを理解すべきである。
【符号の説明】
【００５３】
１・・・移動端末
２・・・アクセスポイント
３・・・リンクアグリゲーション装置
４・・・ルータ
５・・・ネットワーク
６・・・エンドホスト
３１・・・無線インタフェース
３２・・・プロセッサ
３３，３４・・・記憶装置
３５・・・通信インタフェース
４０，５０・・・テーブル
【国際調査報告】
2015517251.tif 000014