(57)【特許請求の範囲】
【請求項１】
マルチパス通信システムにおいて、ストリーム指向の通信セッションにおいて第１の経路から第２の経路にマイグレーションするための方法であって、
デジタルデータ記憶装置に通信可能に結合されるプロセッサで、第１の経路を介する選択された経路モードで動作するために通信セッションを設定するステップと、
デジタルデータ記憶装置と協働するプロセッサにより、第１の経路を介して複数のパケットを送信または受信するステップと、
デジタルデータ記憶装置と協働するプロセッサにより、少なくとも部分的には送信または受信するステップの間に行われる、複数のパケットに基づいて第１のチェックサムを合算するステップと、
デジタルデータ記憶装置と協働するプロセッサにより、第１のチェックサムに基づいてチェックサム一致を遂行するステップと、
デジタルデータ記憶装置と協働するプロセッサにより、チェックサム一致に基づいて第１の経路から第２の経路に通信セッションをマイグレーションさせるステップと
を含み、
第１および第２の経路が異種のアクセスネットワークにわたる、方法。
【請求項２】
チェックサム一致を遂行するステップの活動が、
デジタルデータ記憶装置と協働するプロセッサにより、第１のチェックサムを含む選択された経路モード終端パケットを別のエンドノードに送信するステップと、
デジタルデータ記憶装置と協働するプロセッサにより、別のエンドノードから、チェックサム肯定応答を受信するステップと
を含む、請求項１に記載の方法。
【請求項３】
選択された経路モード終端パケットが、第１のチェックサム、現在のＤＳＮ、および現在のＳＳＮを含む遡及的ＤＳＳパケットである、請求項２に記載の方法。
【請求項４】
チェックサム一致を遂行するステップの活動が、
デジタルデータ記憶装置と協働するプロセッサにより、別のエンドノードから、再送信要求を受信するステップと、
デジタルデータ記憶装置と協働するプロセッサにより、複数の送信されたパケットの一部分を別のエンドノードに再送信するステップと
をさらに含む、請求項３に記載の方法。
【請求項５】
選択された経路モードで動作するために通信セッションを設定するステップの活動が、
デジタルデータ記憶装置と協働するプロセッサにより、第１の経路上で、チェックサム合算開始指示子、現在のＤＳＮ、および現在のＳＳＮを含む選択された経路モード開始パケットを送信するステップ
を含む、請求項１に記載の方法。
【請求項６】
マルチパス通信システムにおいて、第１の経路から第２の経路にストリーム指向の通信セッションをマイグレーションさせるための装置であって、
デジタルデータ記憶装置と、
デジタルデータ記憶装置に通信可能に結合されるプロセッサとを備え、プロセッサおよびデジタルデータ記憶装置が、
第１の経路を介する選択された経路モードで動作するために通信セッションを設定し、
第１の経路を介して複数のパケットを送信し、
複数のパケットに基づいて、少なくとも部分的には複数のパケットの送信の間に合算されるように第１のチェックサムを合算し、
第１のチェックサムに基づくチェックサム一致を遂行し、
チェックサム一致に基づいて第１の経路から第２の経路に通信セッションをマイグレーションさせるように構成され、
第１および第２の経路が異種のアクセスネットワークにわたる、装置。
【請求項７】
シグナリングパケットのみが第１のチェックサムを包含する、請求項６に記載の装置。
【請求項８】
チェックサム一致を遂行するために、プロセッサおよびデジタルデータ記憶装置が、
第１のチェックサムを含む選択された経路モード終端パケットを別のエンドノードに送信し、
別のエンドノードから、チェックサム肯定応答を受信するように
さらに構成される、請求項６に記載の装置。
【請求項９】
選択された経路モード終端パケットが、第１のチェックサム、現在のＤＳＮ、および現在のＳＳＮを含む遡及的ＤＳＳパケットである、請求項８に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的には、高信頼性のセッションマイグレーションを提供するための方法および装置に関する。
【背景技術】
【０００２】
本節では、本発明のより良い理解を容易にするのに役立ち得る態様を紹介する。したがって本節の記載は、この観点で読まれるべきであり、何が従来技術であるか、または何が従来技術でないかに関する自認と理解されるべきではない。
【０００３】
アクセスネットワークにわたるストリーム指向のＩＰベースのトランスポートセッションのエンドポイントマイグレーションをサポートする数多くの技法が存在する。これらの技法の一部は、追加的な置換（ｓｕｐｅｒｓｅｄｉｎｇ）シーケンス番号およびチェックサム体系を導入することにより、トランスポート層の上方でセッションエンドポイントマイグレーションを遂行する。そのような置換シーケンス番号およびチェックサムは、すべてのデータにわたって、それらのデータが通過する経路に無関係に付与される、追加的なトランスポート層オプションヘッダに含まれ得る。置換シーケンス番号体系によって、異なる経路から到着するパケットの順序付けが可能になる。チェックサムは、パケットが適正に配送されたかどうかを識別する。理解され得るように、あらゆるパケットに追加的なトランスポート層オプションヘッダを含むことによって、エンドノードでの相当な処理のオーバーヘッドおよび帯域幅の非効率性が加わる。
【０００４】
オーバーヘッドを低減するために、一部の他の技法では、パケットのブロック全体に対するチェックサムおよびレンジが決定され得るまで送信を留め置く。理解され得るように、この解決策によって、レンジおよびチェックサムを、これらの値がブロックの最初のパケットに挿入され得る前に計算するために、すべてのパケットが送信側で留め置かれなければならないので、遅延が加わる。
【発明の概要】
【課題を解決するための手段】
【０００５】
様々な実施形態が、各々のパケットに対する追加的なオプションヘッダを必要としない、または送信遅延を引き起こさない、高信頼性のセッションマイグレーションの方法および装置を提供する。このことは、マイグレーションイベントを基にしたセッションマイグレーションを容易にする合算されたチェックサムを利用することにより実現される。有利には一部のそのような実施形態は、エンドポイントデバイスが１つのアクセスネットワークから別のアクセスネットワークに物理的に移動するときに、アプリケーションが継続することを可能にし得る。同様に一部のそのような実施形態は、負荷、価格設定、または他の要因に基づく動的なマイグレーションアクセスネットワークを可能にし得る。その上一部のそのような実施形態は、トラフィックが、合算スループットを増大するように複数の経路に沿って分割されることを可能にし得る。
【０００６】
一実施形態では、ストリーム指向の通信セッションにおいて第１の経路から第２の経路にマイグレーションするための方法および装置が提供される。方法は、第１の経路を介する選択された経路モードで動作するために通信セッションを設定するステップと、送信または受信の間に送信または受信されるパケットのストリームの第１のチェックサムを合算するステップとを含む。方法は、第１のチェックサムに基づくチェックサム一致に基づいて第２の経路に通信セッションをマイグレーションさせるステップをさらに含む。
【０００７】
一部の実施形態では、複数のパケットの相当な部分が第１のチェックサムを包含しない。
【０００８】
一部の実施形態では、第１および第２の経路が異種のネットワークにわたる。
【０００９】
一部の実施形態では、チェックサム一致は、別のエンドノードに、選択された経路モード終端パケットを送信するステップと、別のエンドノードから、チェックサム肯定応答を受信するステップとを含む。選択された経路モード終端パケットは、第１のチェックサムを含む。
【００１０】
一部の実施形態では、選択された経路モード終端パケットは遡及的ＤＳＳパケットである。遡及的ＤＳＳパケットは、第１のチェックサム、現在のＤＳＮ、および現在のＳＳＮを含む。
【００１１】
一部の実施形態では、チェックサム一致を遂行するステップは、別のエンドノードから、再送信要求を受信するステップと、別のエンドノードに、複数の送信されたパケットの一部分を再送信するステップとをさらに含む。
【００１２】
一部の実施形態では、選択された経路モードで動作するために通信セッションを設定するステップは、第１の経路上で、選択された経路モード終端パケットを送信するステップを含む。選択された経路モード終端パケットは、チェックサム合算開始指示子、現在のＤＳＮ、および現在のＳＳＮを含む。
【００１３】
一部の実施形態では、装置はモバイルコンピューティングデバイスである。
【００１４】
一部の実施形態では、装置はネットワーク化されたホストである。
【００１５】
様々な実施形態が、添付の図面において例示されている。
【図面の簡単な説明】
【００１６】
【図１】一例としての高信頼性のトランスポートセッションシステムを例示する図である。
【図２】高信頼性のトランスポートセッションマイグレーションを提供するための方法の実施形態を例示するフローチャートである。
【図３】図２による高信頼性のトランスポートセッションマイグレーションを提供するための方法のさらなる実施形態を例示するフローチャートである。
【図４】図１のエンドノード１００−１および／または１１０−２の一実施形態を概略的に例示するブロック図である。
【発明を実施するための形態】
【００１７】
理解を容易にするために、同一の参照番号が、実質的に同じもしくは同様の構造、および／または、実質的に同じもしくは同様の機能を有する要素を指定するように使用されている。
【００１８】
図１は、一例としての高信頼性のトランスポートセッションシステム１００を例示する。高信頼性のトランスポートセッションシステム１００は、マルチパス通信プロトコルを使用して２つのノード間でデータを伝達する、２つのエンドノード１１０−１および１１０−２を含む。マルチパス通信プロトコルは、複数の経路１２０−１および１２０−２にわたるストリーム指向のセッションのエンドポイントマイグレーションをサポートする。
【００１９】
２つのエンドノード１１０−１および１１０−２は、ストリーム指向のトランスポート機構によって、１つのエンドノードから別のエンドノードにパケットデータを伝達するように構成される。ストリーム指向のトランスポート機構は、ストリーム指向のセッションを確立するためのＴＣＰまたはＳＣＴＰのような任意の適したプロトコルを含み得る。ストリーム指向のセッションは、エンドノード１１０−１と１１０−２との間で双方向通信を確立することが可能であり、したがって任意の時点で、エンドノード１１０−１または１１０−２のいずれも、パケットデータの送信器または受信器であり得る。
【００２０】
様々なアクセスネットワークが、エンドノード１１０−２との通信セッションに参加してセッションパケットデータを伝達するために、エンドノード１１０−１に利用可能であり得る。２つのそのような経路の例が、経路１２０−１および１２０−２により提供される。通信セッションは、経路１２０−１および１２０−２の各々を介する、少なくとも１つのストリーム指向のトランスポートセッション（すなわちフロー）を含む。マルチパス通信プロトコルは、高信頼性の順序通りの配送、および異なるフローにわたるパケットデータの集成を制御するために、ストリーム指向のトランスポートセッションを覆う。経路１２０−１および１２０−２は、エンドノード１１０−１にセッションパケットを直接ルーティングすること、またはその後、エンドノード１１０−２にインターネットクラウド１７０を通してパケットをルーティングすることが可能である、アクセスネットワーク１５０および１６０を含む。
【００２１】
アクセスネットワーク１５０および１６０ならびにインターネットクラウド１７０を通してルーティングされるセッションパケットは、ネットワーク内に存在する性能拡張プロキシ（ｐｅｒｆｏｒｍａｎｃｅ  ｅｎｈａｎｃｉｎｇ  ｐｒｏｘｙ）および／またはアプリケーション層ゲートウェイのようなミドルボックスにより変造される場合がある。セッションパケットのそのような変造は、複数のフローから到着する送信されたパケットデータを高い信頼性で再集成するためにマルチパス通信プロトコルにより利用される番号処理体系を変化させる、またはその体系に影響を及ぼす。それらのことがさらに、転送される情報のセマンティックスに影響を及ぼすペイロードの内容を変化させる場合がある。したがってセッションエンドポイントマイグレーションプロトコルは、様々な経路からのパケットを整列させるときに、そのようなデータ変造が起こっていたかどうかを認識しなければならない。そのようなイベントにおいて、マイグレーションプロトコルは、対応するトランスポート経路または接続を完全に最終的に中断する場合がある。
【００２２】
有利には、一部の実施形態は、追加的なオプションヘッダを必要としないで、またはパケットがミドルボックスにより変造されたときを依然として検出しながら、送信遅延を引き起こさないで高信頼性のセッションマイグレーションを提供することが可能である。これらの実施形態の一部は、エンドポイントデバイスが１つのアクセスネットワークから物理的に移動するときに、アプリケーションが継続することを可能にし得る。同様にこれらの実施形態の一部は、負荷、価格設定、または他の要因に基づく、アクセスネットワークにわたる動的なセッションマイグレーションを可能にし得る。その上これらの実施形態の一部は、トラフィックが、合算スループットを増大するように複数の経路に沿って分割されることを可能にし得る。
【００２３】
一部の実施形態では、エンドノード１１０−１および／または１１０−２はモバイルコンピューティングデバイスである。モバイルコンピューティングデバイスは、携帯電話、タブレット、コンピュータ、携帯情報端末（ＰＤＡ）、モバイルゲーミングシステム、電子リーダ等々のような任意の適したモバイルデバイスであり得る。
【００２４】
一部の実施形態では、エンドノード１１０−１および／または１１０−２はネットワーク化されたホストである。ネットワーク化されたホストは、クラウド内の単一のサーバおよび複数のサーバのような任意の適したホストであり得る。
【００２５】
一部の実施形態では、経路１２０−１および１２０−２は異種のアクセスネットワークを含み得る。異種のアクセスネットワークは、Ｗ−ＣＤＭＡ、ＬＴＥ、ＵＭＴＳ、広帯域ネットワーク等々のようなアクセスネットワークを含み得る。例えばエンドノード１１０−１は、Ｖｅｒｉｚｏｎによりサービス提供されるワイヤレスアクセスネットワークのようなワイヤレスアクセスネットワーク１５０によって、ＣＤＭＡワイヤレス接続を確立することが可能である。この実施形態のさらなる実施形態では、経路１２０−２上でエンドノード１１０−１は、Ｃｏｍｃａｓｔによりサービス提供されるＩＰアクセスネットワークのような広帯域アクセスネットワーク１６０によって、ＷｉＦｉ接続を確立することが可能である。
【００２６】
一部の実施形態では、マルチパス通信プロトコルは、マルチパスＴＣＰ（ＭＰＴＣＰ）またはマルチパスＳＣＴＰのような従来のマルチパスプロトコルであり得る。
【００２７】
図２は、図１の高信頼性のトランスポートセッションシステム１００により例示されるような、高信頼性のトランスポートセッションマイグレーションを提供するための方法２００を示す。方法２００は、第１の経路を介する選択された経路モードで動作するためにエンドノードを設定するステップ（ステップ２１０）を含む。選択された経路モードの動作において、エンドノードは、エンドノードが、エンドノードが第２の経路にマイグレーションさせられるべきであると決定し（ステップ２５０）、チェックサム一致を検証する（ステップ２６０）まで、第１の経路を介してパケットを送信または受信し（ステップ２２０）、送信／受信されるパケットの第１のチェックサムを合算する（ステップ２３０）。次いでエンドノードは、第１の経路から第２の経路に通信セッションをマイグレーションさせる（ステップ２７０）。
【００２８】
方法２００においてステップ２１０は、第１の経路を介する選択された経路モードで動作するためにエンドノードを設定するステップを含む。図１に戻って参照すると、エンドノード１１０−１または１１０−２は、選択された経路モード開始値を含む第１の選択された経路モード開始パケットを送信することにより、第１の経路を介する選択された経路モードで動作するための通信経路の設定を告知することが可能である。選択された経路モードで動作するために切り替わることに合意すると、両方の送信および受信するエンドノードは、それらの動作モードを、第１の経路を介する選択された経路モードに設定する。
【００２９】
選択された経路モードでは、利用可能な経路のすべて、または少なくとも一部分が通じている可能性があるが、ただ１つの選択された経路が、パケットストリームの送信および受信のために使用される。ただ１つの経路を選択する利点は、以下のように幾重にもなったものであり得る：１）再集成を簡単にするため、２）他のより弱い経路が、取り落とされた（１つまたは複数の）パケットに起因して、すべての他のパケットは失われたパケットが再送信されるまで待機しなければならないので、「ヘッドオブラインブロッキング」を生成する場合がある、３）他の経路が、（例えばインターフェース料金（ｉｎｔｅｒｆａｃｅ  ｃｈａｒｇｅ）に起因して）必要以上に不経済である場合がある、４）複数の無線は、増大されるバッテリ電力のようにコストを増大してサポートされなければならない場合がある。他の利用可能な経路は、他の通信セッションにおいてパケットストリームからのパケットを送信および／または受信するために使用され得ることが理解されるであろう。
【００３０】
送信または受信するエンドノードのいずれも、第１の経路を介する選択された経路モードでの動作のための通信経路の設定を告知することが可能であることが理解されるであろう。プロトコルによって、エンドノードが、第１の選択された経路モード開始パケットに基づいて、さらなるシグナリングを必要とせずに、それらのエンドノードの動作モードを選択された経路モードに設定することに合意することが可能になり得ることがさらに理解されるであろう。有利にはプロトコルは、さらなる従来のマルチパスチェックサムおよびシーケンス番号が、選択された経路モードでのときに、通信セッションにおいてオプションヘッダの相当な割合に追加されることを求められないように構成される。「相当な割合」により示唆されるのは、シグナリングパケットのみが、合算されたチェックサムおよびマルチパスシーケンス番号を必要とするということである。例えば、（本明細書で説明される）選択された経路モード開始パケットおよび選択された経路モード終端パケットは、オプションヘッダ内に追加的なチェックサムおよびマルチパスシーケンス番号情報を包含し得る。
【００３１】
方法２００においてステップ２２０および２３０は、第１の経路を介してパケットを送信または受信するステップ、および、第１のチェックサムを合算するステップを含む。方法２００は、方法が、方法が第２の経路にマイグレーションすべきであると決定する（ステップ２５０）まで、パケットを送信／受信すること、および、送信／受信されるパケットのチェックサムを合算すること（ステップ２２０および２３０）を継続する。有利には、パケットが送信／受信される際にチェックサムを合算するこの技法は、送信されるべきデータのシーケンス長に関して何かを事前に知っていることを不必要にし、その技法は、各々のフローの方向に対して各々のエンドノードにより蓄えられることになるただ１つの値（すなわち合算されたチェックサム）を必要とする。
【００３２】
ステップ２１０において、選択された経路モードで動作するためにエンドノードの設定を開始すると、送出器および受信器のエンドノードは各々、選択された経路モードが終結させられるまで、通信セッションのすべてのパケットにわたって合算チェックサムを計算する。送信側でのエンドノードに関しては、送信されるパケットのチェックサムが決定され、通信フローの間送信エンドノードにより記憶されている合算されたチェックサム値に合算される。受信側でのエンドノードに関しては、受信されるパケットのチェックサムが決定され、通信フローの間受信エンドノードにより記憶される合算されたチェックサム値に合算される。チェックサムは、合算されたチェックサムに現在のパケットチェックサムを加算するような、任意の適した形で合算され得る。一実施形態では合算チェックサムは、トランスポート層チェックサムがパケットデータにわたるチェックサムとして形成されるのと同じ形で、パケットごとのチェックサムにわたるチェックサムとして形成される。
【００３３】
ステップ２２０および２３０は、任意の順序で遂行される場合があり、または並列で遂行される場合があることが理解されるであろう。
【００３４】
方法２００においてステップ２５０および２６０は、第１の経路から第２の経路に通信セッションをマイグレーションさせるべきかどうかを決定するステップを含む。マイグレーション決定は、マイグレーションイベント（ステップ２５０）に、およびチェックサム一致（ステップ２６０）に基づく。
【００３５】
方法２００においてステップ２５０は、選択された経路モードで動作することから切り替わることの選好を指示するマイグレーションイベントが検出されたかどうかを決定するステップを含む。マイグレーションイベントは、動作の選択された経路モードから切り替わることの選好のエンドノードによる決定であり得る。選択された経路モードから切り替わることの選好は、環境パラメータ、ユーザインターフェースからの受信されたユーザメッセージ、または別のエンドノードからの受信されたメッセージに基づくものであり得る。環境パラメータは、利用可能な経路の信号強度、コストパラメータ、レイテンシ値、帯域幅値および／または類するもの、または、現在アクティブなフローの輻輳制御から取得される情報であり得る。
【００３６】
方法２００においてステップ２６０は、通信セッションパケットが変造されていないことを決定するためにチェックサム一致を使用するステップを含む。チェックサム一致は、エンドノードにより合算された第１のチェックサムが別のエンドノードにより合算された第２のチェックサムに一致する（例えば、パケットに包含されるバイトの数および値が、ミドルボックスにより変造されていない）ということの指示である。エンドノードは、そのエンドノードの第１のチェックサムを別のエンドノードに送信し、別のエンドノードからチェックサムが一致するということの指示を受信することにより、チェックサム一致を決定することが可能である。あるいはエンドノードは、別のエンドノードから第２のチェックサムを受信し、内部比較からチェックサムが一致するということの指示を受信することにより、チェックサム一致を決定することが可能である。チェックサム一致ステップ２６０は、通信セッションパケットが変造されていないことを、したがって通信セッションが、別の選択された経路モードに、またはマルチパスモードに切り替わることが可能であることを確認する。
【００３７】
方法２００においてステップ２７０は、第１の経路から第２の経路に通信セッションをマイグレーションさせるステップを含む。チェックサム一致ステップ２６０が、送信／受信されるパケットを検証すると、エンドノードは、第２の経路を介する選択された経路モードに通信セッションを設定することが可能である。ステップ２１０に関して本明細書で説明されたように、エンドノードは、選択された経路モード開始値を含む第１の選択された経路モード開始パケットを送信することにより、第２の経路を介する選択された経路モードで動作するための通信経路の設定を告知することが可能である。
【００３８】
一部の実施形態ではエンドノードは、第２の経路を介する選択された経路モードにマイグレーションする前に、マルチパスモードで動作するために切り替わることが可能である。しかしながら、チェックサム一致ステップ２６０の成功裏の結果に応じてマルチパスモードが検証されるまで、エンドノード送信器は、第１の経路上でのパケットデータの対象ブロックの送信が許され得るのみであることが理解されるであろう。その上エンドノードは、第２の経路を介する選択された経路モードで動作するための切り替わりが実施されてしまう前に、ある時間の期間の間、マルチパスモードで通信可能であることがさらに理解されるであろう。実際エンドノードは、第２の経路を介する選択された経路モードに切り替わる代わりに、マルチパスモードで送信することを継続することを決める場合がある。
【００３９】
マイグレーションすることを決定するステップ（ステップ２５０）、チェックサム一致を検証するステップ（ステップ２６０）、および第２の経路にマイグレーションするステップ（ステップ２７０）の活動は別個に遂行される場合があり、または有利には、活動の各々の一部分が、単一の処理に組み合わされる場合があることが理解されるであろう。例えばステップ２５０からのマイグレーションイベントは、ステップ２６０のチェックサム一致指示でもあり得る。例えば、エンドノードが別のエンドノードから第２のチェックサムを受信する場合、第２のチェックサムを包含するパケットの受信は、マイグレーションイベントを構成し得るものであり、第２のチェックサムが第１のチェックサムに一致するという決定は、チェックサム指示を構成し得るものである。
【００４０】
ステップ２７０の後、方法２００はステップ２２０に戻って、第２の経路上でパケットを送信することを継続する。方法２００は反復型であるので、成功裏にマイグレーションさせられた所与の送信に関しては、図においてステップ２２０で言及されている「第１の経路」は、前の送信がマイグレーションさせられた先の「第２の経路」と同一になり得ることが理解されるであろう。
【００４１】
方法２００の一部の実施形態では、ステップ２１０は、従来のＭＰＴＣＰマルチパスプロトコルを使用するステップを含む。この実施形態では、第１の選択された経路モード開始パケットの選択された経路モード開始値は、「無限設定（ｉｎｆｉｎｉｔｙ  ｓｅｔｔｉｎｇ）」を用いるＤＳＳオプションであり得る。「無限設定」においてＤＳＳオプションは、レンジ＝０、チェックサム＝０、ならびに、データシーケンス番号（ＤＳＮ）およびサブフローシーケンス番号（ＳＳＮ）の現在値を設定する。
【００４２】
方法２００の一部の実施形態では、ステップ２３０は、ＴＣＰ、ＳＣＴＰ、ＵＤＰ等々のような基本的なトランスポートプロトコルによりすでに供給されている、パケットごとのチェックサムを使用するステップを含む。さらなる実施形態では、ステップ２３０は、ＴＣＰヘッダ内の基本的なトランスポートチェックサムを使用する。有利には、合算チェックサムの計算は、パケットチェックサムは別々に決定される必要はないので、すでに存在するパケットごとのチェックサムを使用することにより、より不経済でない。
【００４３】
ステップ２５０、２６０、および／または２７０の一部の実施形態では、エンドノードは、別のエンドノードに、第１のチェックサムを含む選択された経路モード終端パケットを送信可能である。通信セッションにおけるいずれのエンドノードも、選択された経路モード終端パケットを送信可能であることが理解されるであろう。
【００４４】
さらなる実施形態では、選択された経路モード終端パケットは、シーケンスのデータレンジまたは置換番号処理の体系に関係するパラメータをさらに含み得る。有利にはそのようなパラメータは、データパケットを受信するエンドノードに、チェックサムを搬送するパケットが到着するときに、（例えばパケット損失に起因して）いくつのパケットが依然として未解決であるかに関する情報を提供し得る。この実施形態のさらなる実施形態では、受信するエンドノードは、第１の経路上で、または別の経路上で、再送信体系を開始することが可能である。
【００４５】
ステップ２５０、２６０、および／または２７０の一部の実施形態では、選択された経路モード終端パケットは第２の経路上で送出され得る。有利には、第１の経路が利用不可能になった場合、エンドノードは、第２の経路上で通信セッションを継続することが可能になり得る。本明細書で説明されるように、ただ１つの経路が、選択された経路モードにおいて利用されるが、他の経路は（アイドル状態であるが）通じており利用され得ることが理解されるであろう。有利には、第１の経路が利用不可能になった場合、通信は依然として検証され、マルチパスモードまたは第２の経路にマイグレーションさせられ得る。
【００４６】
図３は、従来のＭＰＴＣＰマルチパスプロトコルを使用する、図２のステップ２５０、２６０、および２７０のさらなる実施形態において、第１の経路から第２の経路に通信セッションをマイグレーションさせるための方法３００を示す。方法３００は、エンドノードが、マイグレーションイベントを受信するステップ（ステップ３１０）を基に、遡及的ＤＳＳを伴うパケットを送信するステップ（ステップ３２０）を含む。マイグレーションイベントが受信されないならば、または、マイグレーションイベントがいいえに設定されている（すなわち許されていない）ならば、方法は「いいえ」を返し、図１のステップ２２０に戻る（ステップ３１５）。肯定応答または失敗のメッセージを受信するために待機している間（ステップ３４０）、エンドノードは、第１の経路上でさらなるパケットを送信することが可能である（ステップ３３０）。失敗メッセージが受信されるならば、マイグレーションイベントは「いいえ」に設定され（すなわち、これ以上のセッションマイグレーションは許されない）、図１のステップ２２０に戻る（ステップ３５５）。エンドノードが遡及的ＤＳＳの肯定応答を受信するならば（ステップ３５０）、マルチパスモードは確認される（ステップ３６０）。次いでエンドノードは、すべての経路が送信のために利用可能であるマルチパスモードに随意にとどまることが可能である（ステップ３７０）。マルチパスモードである間、エンドノードが第２の経路を介する選択された経路モードで動作するためにマイグレーションする決定を行うまで、エンドノードはマルチパスモードでパケットを送信することが可能であり、またはエンドノードは、マルチパスモードで通信セッションを継続することが可能である。エンドノードが、第２の経路を介する選択された経路モードにマイグレーションすることを一度決定すると、エンドノードは、選択された経路モード開始パケットを送信し（ステップ３８０）、選択された経路モードの動作を第２の経路に設定し、図１のステップ２２０に戻る（ステップ３９０）。
【００４７】
方法３００においてステップ３１０は、本明細書ですでに説明されたように、マイグレーションイベントを受信するステップを含む。加えて、マイグレーションイベントは抑制される場合がある。例えばマイグレーションイベントは、（例えば前のチェックサム確認により決定されるように）通信セッションでの送信されるパケットの一部分が変造されているとエンドノードが決定した場合に抑制される場合がある。
【００４８】
方法３００においてステップ３１５は、受信されているマイグレーションイベントがないならば、図１のステップ２２０に戻るステップを含む。
【００４９】
方法３００においてステップ３２０は、遡及的ＤＳＳを伴うパケットを送信するステップを含む。ＭＰＴＣＰは、エンドノードが、選択された経路モードからマルチパスモードに戻ることを可能にする機構（すなわちＭＰＴＣＰにおいての「フォールバックモード」）を有さないので、「遡及的ＤＳＳ」と呼ばれる新しいＤＳＳオプションが生成され得る。遡及的ＤＳＳは、選択された経路モードからマルチパスモードに戻る切り替わりを要求する、選択された経路モード終端パケットである。この新しいＤＳＳオプションは、その新しいＤＳＳオプションが、すでに送信された複数のパケットにチェックサムを遡及的に提供するので、「遡及的ＤＳＳ」と呼ばれる。遡及的ＤＳＳは、サブフローに関係のある現在のＤＳＮおよびＳＳＮを保持する。チェックサムフィールドは合算されたチェックサムを包含し、一方でレンジフィールドはゼロに設定される。非ゼロのチェックサムおよびゼロ値のレンジの組み合わせは、これが「遡及的ＤＳＳ」であることを、受信するエンドノードに対して指示する。
【００５０】
方法３００においてステップ３３０および３４０は、エンドノードが、送信された遡及的ＤＳＳに対して別のエンドノードから肯定応答または失敗のメッセージを受信するまで、第１の経路上でさらなるパケットを送信するステップを含む。そのようなさらなるパケットは合算チェックサムにより保護されないので、それらのパケットは各々、それらのパケットの個々のチェックサムを伴うトランスポートヘッダを個々に搬送しなければならない。このことによって受信器が、これらのさらなるパケットが変造されない状態で到着したことを確かめることが可能になる。さらなるパケットは、従来のマルチパスの個々のチェックサムを含んで配送され得る。その上、送信されるパケットのチェックサムが、検証（すなわち、パケットが変造されない状態で配送されたことを検証）されていない以上は、エンドノードは、第１の経路に対する送信を制限する場合がある。
【００５１】
方法３００においてステップ３５０は、別のエンドノードからの受信されたメッセージ（ステップ３４０）が、肯定応答メッセージであるか、それとも失敗メッセージであるかを決定するステップを含む。肯定応答メッセージは、送出および受信するエンドノードが合算したチェックサムが一致すること、ならびに、方法がステップ３６０に進むことを指示する。失敗メッセージは、送出および受信するエンドノードが合算したチェックサムが一致しないこと、ならびに、方法がステップ３５５に進むことを指示する。失敗メッセージは、遡及的ＤＳＳの否定応答、または返信の受信に関する時間切れであり得る。例えば失敗メッセージは、ＭＰ＿ＦＡＩＬメッセージであり得る。
【００５２】
方法３００においてステップ３５５は、送信されたパケットが変造された可能性があることを指示する不一致のチェックサムに起因して、第１の経路を介する選択された経路モードにエンドノードを制限するステップを含む。一部の実施形態では、第２の経路を使用する選択された経路モードに、またはマルチパスモードに通信セッションをマイグレーションさせるための、エンドノードによるいかなる後続の試みもステップ３１０は抑制すべきであることを指示する「いいえ」に、マイグレーションイベントパラメータが設定され得る。
【００５３】
方法３００においてステップ３６０は、遡及的ＤＳＳの肯定応答を基に通信セッションに関する動作可能なモードを決定するステップを含む。エンドノードは、第２の経路を使用する選択された経路モードに通信セッションをマイグレーションさせる（ステップ３８０）こと、マルチパスモードに通信セッションをマイグレーションさせる（ステップ３７０）こと、または、任意の他の適した送信モードに通信セッションをマイグレーションさせる（例えば、第１の経路を介してさらなるパケットを送信することを継続する、または、第１の経路を介する選択された経路モードに戻る）ことが可能である。
【００５４】
方法３００は、ステップ３７０を随意に含む。ステップ３７０は、マルチパスモードに通信セッションをマイグレーションさせるステップを含む。一部の実施形態ではエンドノードは、通信セッションのすべてまたは一部分に対してマルチパスモードにとどまることが有益になると決定する場合がある。その後エンドノードは、第２の経路を介する選択された経路モードに通信セッションをマイグレーションさせることを決定する場合がある。エンドノードが、第２の経路を介する選択された経路モードにマイグレーションする決定を行うならば、方法はステップ３８０に進む。
【００５５】
方法３００においてステップ３８０は、第２の経路を介する選択された経路モードで動作するためにエンドノードを設定するステップを含む。選択された経路モードは、本明細書で前に説明されたような、「無限設定」を用いるＤＳＳオプションを使用して設定される。一部の実施形態では、第１の経路は第２の経路にマイグレーションさせられ得る。他の実施形態ではエンドノードは、同じ経路上で継続することを、および、元の第１の経路を介する選択された経路モードを復帰させることを決定する場合がある。この第２の実施形態では、第１の経路および第２の経路は同じ経路であり得る。
【００５６】
方法３００においてステップ３９０は、図１のステップ２２０に方法を戻すステップを含む。現在の送信シーケンスにおける方法の動作可能な第１の経路が、前の送信シーケンスのマイグレーションさせられた第２の経路に設定されることになることが理解されるであろう。
【００５７】
ステップ３３０の一部の実施形態では、受信器エンドノードは、遡及的ＤＳＳ内のＤＳＮおよびＳＳＮ値に基づいて、パケット損失に起因してシーケンスのパケットがいくつ失われているかを推定することが可能である。次いで受信するエンドノードは、従来のサブフローまたは接続のレベルの処理手順を使用して、これらのパケットの再送信を要求することが可能である。欠落したパケットの受信の後、次いで受信器エンドノードは、遡及的ＤＳＳ内に保持される合算チェックサムを、その受信器エンドノード自体の合算されたチェックサムと比較し、引き続いて遡及的ＤＳＳの肯定応答を送出することが可能である。
【００５８】
主として個別のシーケンスにおいて図示および説明されているが、方法２００および３００において示されるステップは、任意の適したシーケンスにおいて遂行され得ることが理解されるであろう。その上１つのボックスにより識別されるステップは、シーケンス内の２つ以上の場所で遂行される場合もある。
【００５９】
様々な上記で説明された方法のステップが、プログラムされたコンピュータにより遂行され得ることが理解されるであろう。本明細書では一部の実施形態は、機械またはコンピュータ可読であり、命令の機械実行可能またはコンピュータ実行可能なプログラムを符号化し、前記命令が、前記上記で説明された方法のステップの一部またはすべてを遂行する、プログラム記憶デバイス、例えばデジタルデータ記憶媒体に及ぶことがさらに意図される。プログラム記憶デバイスは、例えば、デジタルメモリ、磁気ディスクおよび磁気テープのような磁気記憶媒体、ハードドライブ、または光可読デジタルデータ記憶媒体であり得る。実施形態は、上記で説明された方法の前記ステップを遂行するようにプログラムされたコンピュータに及ぶことがさらに意図される。
【００６０】
図４は、図１のエンドノード１１０−１および１１０−２の一実施形態（すなわちエンドノード１１０）の機能ブロックを概略的に例示する。エンドノード１１０は、例えば方法２００、および随意には３００を使用して、マルチパス通信セッションに参加することが可能である。エンドノード４００は、プロセッサ４１０、デジタルデータ記憶装置４１１、およびデータインターフェース４３０を含む。
【００６１】
プロセッサ４１０は、エンドノード１１０の動作を制御する。プロセッサ４１０は、デジタルデータ記憶装置４１１およびデータインターフェース４３０と協働する。
【００６２】
デジタルデータ記憶装置４１１は、合算されたチェックサムを記憶する。デジタルデータ記憶装置４１１は、プロセッサ４１０により実行可能なプログラム４２０をさらに記憶する。
【００６３】
プロセッサ実行可能プログラム４２０は、通信セッションプログラム４２２およびデータインターフェースプログラム４２５を含み得る。プロセッサ４１０は、プロセッサ実行可能プログラム４２０と協働して、方法２００および３００のステップを遂行する。例えばプロセッサ４１０は、通信セッションプログラム４２２を実行することにより、方法２００および３００の通信セッションステップを遂行することが可能である。したがって通信セッションプログラム４２２は、方法２００および３００のステップの各々のすべてまたは一部分を制御するようにプログラムされ得る。加えてプロセッサ４１０は、デジタルプロセッサ実行可能プログラム４２０と協働して、エンドノード１１０を制御する。例えばプロセッサ４１０は、データインターフェースプログラム４２５を実行して、データインターフェース４３０を制御することが可能である。
【００６４】
データインターフェース４３０は、通信チャネル４３５を介して、エンドノード１１０と別のエンドノードとの間でデータを索出または送信するように構成される。通信チャネル４３５は、データ接続性をサポートする任意の従来の通信経路／通信プロトコルであり得る。単一の通信チャネル４３５として図示および説明されているが、データインターフェース４３０は、本明細書で説明されるように、任意の適した数（複数可）のセッション（例えば任意の適した数のＩＰフロー）をサポートする任意の適した数の通信チャネルをサポートするように構成され得る。通信チャネルは、データインターフェース４３０、および／または、通信チャネル４３５を介した別のエンドノードのような、通信の任意の他の適した外部ソースの間に向けられたものであり得る。
【００６５】
データインターフェース４３０は、方法２００および３００の様々なステップにおいて、データの索出および送信をサポートすることが可能である。例えばプロセッサ４１０は、データインターフェースプログラム４２５を実行して、方法２００のステップ２１０、２２０、２５０、および２７０のすべてまたは一部分、ならびに、方法３００のステップ３１０、３２０、３３０、３４０、３５０、および３８０のすべてまたは一部分を遂行することが可能である。
【００６６】
一部の実施形態ではデータインターフェース４３０は、以下の通信チャネル４３５、すなわち、ワイヤレス通信（例えばＬＴＥ、ＧＳＭ（登録商標）、ＣＤＭＡ、ｂｌｕｅｔｏｏｔｈ）、フェムトセル通信（例えばＷｉＦｉ）、パケットネットワーク通信（例えばＩＰ）、広帯域通信（例えばＤＯＣＳＩＳおよびＤＳＬ）等々のうちの１つまたは複数によって、データを索出または送信することをサポートすることが可能である。
【００６７】
一部の実施形態ではエンドノード１１０は、モバイルコンピューティングデバイス上で実行する命令の機械実行可能プログラムである。モバイルコンピューティングデバイスは、携帯電話、タブレット、コンピュータ、携帯情報端末（ＰＤＡ）、電子リーダ等々のような任意の適したモバイルデバイスであり得る。
【００６８】
一部の実施形態ではエンドノード１１０は、ネットワーク化されたホスト上で実行する命令の機械実行可能プログラムである。ネットワーク化されたホストは、クラウドコンピューティングネットワーク内の単一のサーバおよび複数のサーバのような任意の適したホストであり得る。
【００６９】
例えば、プログラムおよび論理がデジタルデータ記憶装置内部に記憶され、メモリがプロセッサに通信可能に接続される実施形態に関して、本明細書で図示および説明されているが、そのような情報は、任意の適した配置構成のデバイスに通信可能に結合される任意の適した配置構成のメモリ、記憶装置、またはデータベースを使用する、メモリ（複数可）、記憶装置（複数可）、および／または内部もしくは外部のデータベース（複数可）の任意の適した組み合わせに情報を記憶する、あるいは、任意の適した数のアクセス可能な外部のメモリ、記憶装置、またはデータベースを使用する、（例えば任意の適した数のメモリ、記憶装置、またはデータベースを使用する）任意の他の適した様式で記憶され得ることが理解されるであろう。したがって、本明細書で言及されているデジタルデータ記憶装置という用語は、メモリ（複数可）、記憶装置（複数可）、およびデータベース（複数可）のすべての適した組み合わせを網羅するように定められたものである。
【００７０】
説明および図面は、本発明の原理を例示するものに過ぎない。したがって、たとえ本明細書で明示的に説明されなくとも、または示されなくとも、本発明の原理を実施し、本発明の趣旨および範囲の範囲内に含まれる様々な配置構成を当業者が考案可能になることが理解されるであろう。さらに、本明細書に列挙されるすべての例は、当技術分野の振興のために（１人または複数の）発明者により与えられる本発明の原理および概念を読者が理解する際に一助となるための、教育的な目的のためのものであるに過ぎないことが明確に主として意図されるものであり、そのような具体的に列挙される実施例および条件への限定を伴わないと解釈されるべきである。その上、本発明の原理、態様、および実施形態、ならびにそれらの具体例を列挙する本明細書でのすべての記載は、それらの均等物を網羅することが意図される。
【００７１】
「プロセッサ」と名付けられた任意の機能ブロックを含む、図面に示される様々な要素の機能は、専用ハードウェア、および、適切なソフトウェアと共同したソフトウェアを実行可能なハードウェアの使用によって提供され得る。プロセッサにより提供される場合、機能は、単一の専用プロセッサにより、単一の共有プロセッサにより、または、それらのうちのいくつかが共有されている場合がある複数の個々のプロセッサにより提供され得る。さらに用語「プロセッサ」または「コントローラ」を明示的に使用することは、ソフトウェアを実行可能なハードウェアを排他的に指すと解釈されるべきではなく、限定はしないが、デジタル信号プロセッサ（ＤＳＰ）ハードウェア、ネットワークプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ソフトウェアを記憶するための読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、および不揮発性記憶装置を暗黙に含み得る。従来の、および／または特注の他のハードウェアもまた含まれ得る。同様に、図に示される任意のスイッチは、単に概念的なものである。それらの機能は、プログラム論理の動作によって、専用論理によって、プログラム制御および専用論理の相互作用によって、または手動でも実行され得るものであり、個別の技法は、背景状況からより具体的に理解されるように実装者により選択可能である。
【００７２】
本明細書の任意のブロック図が、本発明の原理を実施する例示的な回路網の概念図を表すことが理解されるであろう。同様に、任意のフローチャート、フロー図、状態遷移図、擬似コード等々が様々な処理を表し、それらの処理は、コンピュータ可読媒体の形で実質的に表され、その結果コンピュータまたはプロセッサにより、そのようなコンピュータまたはプロセッサが明示的に示されようとそうでなかろうと実行され得るものであることが理解されるであろう。
【図１】
0005788597.tif 000002
【図２】
0005788597.tif 000003
【図３】
0005788597.tif 000004
【図４】
0005788597.tif 000005