(57)【特許請求の範囲】
【請求項１】
パケット・ベース通信システムにおけるマイグレータと非マイグレータの間のセッション中に、前記マイグレータによって現行エンドポイント・アドレスから新しいエンドポイント・アドレスへの移行を行う方法であって、
（ａ）（ａ１）前記新しいエンドポイント・アドレスへの論理的変更を行う工程と、（ａ２）前記マイグレータのカーネル構造を更新する工程とによって、前記マイグレータ内で前記現行エンドポイント・アドレスから前記新しいエンドポイント・アドレスに変更する工程と、
（ｂ）前記新しいエンドポイント・アドレスを有するパケットの前記非マイグレータへの送信を一時停止する工程と、
（ｃ）前記新しいエンドポイント・アドレスへの前記変更を前記非マイグレータに通知する工程と、
（ｄ）前記新しいエンドポイント・アドレスを有するパケットの前記非マイグレータへの送信を再開する工程とを含む方法。
【請求項２】
前記マイグレータが、前記現行のエンドポイント・アドレスを含む現行の５タプルを、前記新しいエンドポイント・アドレスを含む新しい５タプルに変更することにより、前記新しい現行アドレスへの変更を行い、前記マイグレータのカーネル構造を更新する工程が、前記新しい５タプルを反映するように前記現行５タプルを伴うソケットを修正する工程を含み、前記ソケットは前記セッションに関連している、請求項１に記載の方法。
【請求項３】
工程（ａ）が、前記新しいエンドポイント・アドレスへの前記変更が開始される前に前記非マイグレータに登録を行う工程を含む、請求項１に記載の方法。
【請求項４】
工程（ｂ）が、ネットワーク層で受信した前記非マイグレータからのパケットを廃棄する工程と、トランスポート層で前記非マイグレータへのパケットの送信を一時中止する工程とを含み、前記トランスポート層で前記非マイグレータへのパケットの送信を一時中止する前記工程が、ファイアウォール・フィルタリング・ルールを用いて競合状態中にパケット送信を一時停止する、請求項１に記載の方法。
【請求項５】
工程（ｃ）が、前記新しいエンドポイント・アドレスへの前記変更を前記非マイグレータに通知する制御メッセージを、前記非マイグレータに送る工程と、前記非マイグレータが前記新しいエンドポイント・アドレスに変更したことの確認を、前記非マイグレータから受け取る工程とを含む、請求項１に記載の方法。
【請求項６】
パケット・ベース通信ネットワークにおける非マイグレータとマイグレータの間のセッション中に、前記非マイグレータによって現行エンドポイント・アドレスから新しいエンドポイント・アドレスへの移行を行う方法であって、
（ａ）前記新しいエンドポイント・アドレスへの前記マイグレータの変更を示す制御メッセージを受け取る工程と、
（ｂ）前記非マイグレータ内で、前記現行エンドポイント・アドレスを前記新しいエンドポイント・アドレスに変更する工程とを含み、前記ステップ（ｂ）は、（ｂ１）前記新しいエンドポイント・アドレスへの論理的変更を行う工程と、（ｂ２）前記非マイグレータのカーネル構造を更新する工程とを含み、さらに、
（ｃ）前記非マイグレータの前記新しいエンドポイント・アドレスへの変更を、前記マイグレータに確認応答する工程と、
（ｄ）前記新しいエンドポイント・アドレスで前記セッションのパケットを前記マイグレータと交換する工程とを含む方法。
【請求項７】
前記非マイグレータが、前記現行のエンドポイント・アドレスを含む現行の５タプルを、前記新しいエンドポイント・アドレスを含む新しい５タプルに変更することにより、前記新しい現行アドレスへの変更を行い、前記非マイグレータのカーネル構造を更新する工程が、前記新しい５タプルを反映するように前記現行５タプルを伴うソケットを修正する工程を含み、前記ソケットは前記セッションに関連している、請求項６に記載の方法。
【請求項８】
工程（ａ）が、前記制御メッセージを受け取る前に前記マイグレータを登録する工程を含む、請求項７に記載の方法。
【請求項９】
工程（ｂ）が、前記変更中に前記マイグレータからパケットの受信を続ける工程を含む、請求項６に記載の方法。
【請求項１０】
前記セッションが、ＴＣＰ／ＩＰ（伝送制御プロトコルおよびインターネット・プロトコル）に準拠する、請求項１または６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、通信ネットワーク内のトランスポート接続の移行に関し、より詳細には、パケット・ネットワークにおける複数アドレスにわたる既存セッションの移行に関する。
【背景技術】
【０００２】
インターネットにアクセスする移動式無線コンピュータ装置（モバイル・デバイス）の発達および普及に伴い、複数のインターネット・プロトコル（ＩＰ）サブネットワーク（サブネット）にわたるシームレス・ローミングをサポートするための基盤が必要とされている。多数のユーザが、接続用のＩＰアドレスを取得するためにＤＨＣＰ（動的ホスト構成プロトコル）を利用しているが、ＤＨＣＰの利用により、携帯性は提供されるが、シームレス・ローミングのための相対的透過性は提供されない。モバイル・デバイスがＩＰサブネットを横切って移動するごとに、古いＩＰアドレスを開放し次いで新しいＩＰアドレスを取得することが必要となるが、これによりトランスポート（およびより高い層の）接続が失われることになる。
【０００３】
２つの実体間の通常のネットワーク通信は、通信期間中に変更されることのないＩＰアドレスなどの固有のエンドポイント識別子を指定することを含んでいる。たとえば、２つのエンドポイント（たとえば、ホスト）間での典型的なＴＣＰ（伝送制御プロトコル）接続確立手順は、ソケット・アプリケーション・プログラム・インタフェース（ＡＰＩ）パケットを使用するアプリケーションから開始される。各ソケットＡＰＩは、下記の５つの要素を含む所与の５タプルに明示的に束縛される。第１の要素は、パケットに対する特定の通信プロトコルを識別する「プロトコル」要素である。第２の要素は、パケットを発信するソース・ノードのアドレスを識別する「ソースＩＰアドレス」要素である。第３の要素は、パケットを発信するソース・ノードのポートを示す「ソース・トランスポート・ポート」要素である。第４の要素は、パケットを受信する宛先ノードのＩＰアドレス「宛先ＩＰアドレス」要素である。第５の要素は、パケットを受信する宛先ノードのポートを示す「宛先トランスポート・ポート」要素である。セッション中にこの５タプルのいずれの要素が変更されても、セッションの失敗が起こり、通常は接続の再確立が開始される。
【０００４】
５タプル構造を前提として、現行のＴＣＰ対応パケット・ネットワークにおける接続の確立および維持の概要を下記に述べる。ＴＣＰエンジンの接続確立手順では、クライアント（第１のエンドポイント）とサーバ（第２のエンドポイント）の間での一連のメッセージの交換を行う。クライアントは、まずサーバにＳＹＮメッセージを送り、サーバから応答としてＳＹＮ−ＡＣＫメッセージを受け取る。クライアントが、確認応答としてＡＣＫメッセージでサーバに応答を返し、次いでクライアントとサーバの間の接続が開かれ完全に機能する状態になる。接続の両端上のＴＣＰエンジンは、「確立」状態になり、状態情報が、オペレーティング・システム・カーネル内のＴＣＰ制御ブロック（ＴＣＢ）で維持されている。これでＴＣＰセッションは、ネットワークを横切るＩＰデータグラム（パケット・ヘッダ部分）に含まれる５タプルによって、ネットワーク内で一意的に識別可能になる。アプリケーションおよびオペレーティング・システム・カーネルからは、このセッションは、このセッションに関連するソケットによって一意的に識別することができる。この５タプルの要素のただ１つが変更されても、セッションが失敗することになる。
ＴＣＰセッションの失敗は、ＴＣＰが接続を打ち切り、関連するソケット束縛を終了したときに生じる。ＴＣＰが接続を打ち切る理由は多数あり、そのいくつかを挙げると以下のとおりである。（１）ＴＣＰ  ＲＳＴ（リセット）パケットをリモート・エンドから受け取る、（２）再送信の試行回数がプロトコルによって定義された回数を超える、（３）確認応答のない「キープ・アライブ」プローブが多すぎる、（４）アプリケーションによる要求、（５）異常な外部条件。これらＴＣＰのリセット条件は、パケット・ネットワークの通常の動作中に日常的に発生し、インタフェースＩＰアドレスに対する変更、長期間の接続性の喪失、ホストのクラッシュ／再起動、またはＴＣＰ接続の切断の一因となる同様の出来事から発生する可能性がある。
【０００５】
ＴＣＰトランスポート・セッションを使用するアプリケーションは、元の５タプルによって（古いＩＰアドレスによって）ソケットに束縛されているので、インタフェースのＩＰアドレスの変更によって、関連したアプリケーションのソケット束縛は変更されない。アプリケーションがカーネルに送るどのユーザ・データも、ＴＣＰ層でトランスポート層セグメントとしてＴＣＰ送信キュー（ｓｅｎｄ−Ｑ）に入れられる。というのは、データを送るための古いＩＰアドレスでの有効な出力インタフェースがないからである。ＴＣＰの再送信メカニズムは、有効なルート／インタフェースが出現するか、または接続自体がタイムアウトになるまで、このデータの送信の再試行を続ける。２つの終端システム間に到達可能性がない場合、どちらの側のＴＣＰ状態も、（通常は）その前の状態を継続する（たとえば、両側とも「確立」状態を継続する）。インタフェースのＩＰアドレスが、元のアドレス（したがって、元の５タプル）に戻る場合、経路が存在するならばエンドポイント・アプリケーション間の通信は再開する。しかし、インタフェースのＩＰアドレスが変更された場合、そのデータを関連づける有効なインタフェースがないために、リモート・ホストから受信したどのデータ・パケットも、ＩＰ層で廃棄される。ローカル端および遠端の両方が、それらのＴＣＰ状態に応じて、それぞれの接続をタイムアウトにする。
【０００６】
このセッション確立および維持プロセスは、制限的であり、ユーザ移動性やフォールト・トレラント接続など特定のタイプの用途に対して制限を課す。従来技術ではネットワーク層でのルーティング技術を使用してこのような制限を迂回することによってホスト移動性を達成するモバイルＩＰが開発された。モバイルＩＰによれば、ノードが、通信能力を失わずにその接続点を変更するためには、現在までのところ下記の２つのメカニズムのうち１つを利用しなければならない。（１）ノードがその接続点を変更する時はいつでも、そのＩＰアドレスを変更しなければならない。（２）ホスト特有の経路が、インターネットのルーティング・ファブリックの大半にわたっていなければならない。このような選択肢は、しばしば受け入れることができない。第１のメカニズムでは、ノードが場所を変更したとき、ノードが、トランスポート層およびより高い層の接続を維持することが不可能になる。第２のメカニズムでは、ノートブック（モバイル）コンピュータの売上げが爆発的に増加していることを考慮したとき特に重要な深刻な規模の問題が起きることになる。
【０００７】
従来技術には、ホスト移動性および障害許容性の問題を軽減するために提案された多数の技術が存在する。これらの技術は、それぞれ、ネットワーク層（たとえばＩＰ層）、トランスポート層（たとえば、ＴＣＰ／ＵＤＰ（ユーザ・データグラム・プロトコル））、または、より高い層（ソケットまたはアプリケーション層）において解決法を提供する技術に分類される。
【０００８】
モバイルＩＰは、ネットワーク層で、間接経路指定レベルを、すなわち、対応するホストから移動ノードへの全てのパケットの三角ルーティングを使用することによって、ホスト移動性の問題の解決を試みる。この間接経路指定は、移動ノードにサービスを提供する、「ホーム・エージェント」および「外部エージェント（Foreign Agent）」と呼ばれるプロキシを使用することにより達成される。モバイルＩＰは、ホスト移動性および到達可能性の問題をうまく取り扱うが、トランスポート接続の失敗（たとえば、トランスポート・エンドポイントに対するどのような変更もセッションの失敗をもたらす）には対処しない。通常は、トランスポート・セッションの接続性に依存するアプリケーションを再始動する必要があり、新しいトランスポート接続を確立しなければならない。モバイルＩＰの他の欠点には、三角ルーティングが最適化されないこと、およびＩＰトンネリングが広範囲に使用されることが含まれる。セキュリティ上の理由から、サービス・プロバイダは、通常はトンネル・パケットを許可しない。さらに、ＤＯＳサービス妨害攻撃の頻度が増加したため、サービス・プロバイダは、発信アドレスを偽るパケットを遮断するために、イングレス・フィルタリング（ingress filtering）を使用している。イングレス・フィルタリングによる問題は、リバース・トンネリングを使用して解決することもできるが、リバース・トンネリングの使用によって、ネットワーク資源の最適な使用がさらに制限され、２つのエンドポイント間のパケット遅延が余分に追加される。
【０００９】
トランスポート層またはより高い層における終端間のホスト移動性問題の解決を試みる方法には、以下の方法が存在する。（１）接続を複数のセグメントに分割する。（２）ＴＣＰ状態マシンに、新しいメッセージおよび状態を加えることにより、標準のＴＣＰ実装を修正する。（３）接続の再確立の試行時に、接続がまだ存在しているようにアプリケーションに錯覚させる。
【００１０】
たとえば、ＭＳＯＣＫＳ（モバイル・ソケット）は、接続の宛先変更のために分割接続プロキシを使用する。ＭＳＯＣＫＳは、モバイル・ノードとその対応するホストの間の通信経路にプロキシを挿入し、ＴＣＰスプライス・メカニズムを使用して接続を複数のセグメントに分割し、それによってモバイル・ノードの移動性の問題を、対応するホストから見えないようにする。ただし、通信経路にプロキシを追加することによって、サービスが著しく低下することがある。
【００１１】
いくつかの技術は、アプリケーションとソケットＡＰＩの間に、連続する接続インスタンスにわたって単一の切れ目ない接続に見せかける錯視を持続するライブラリを導入することを含んでいる。これらの手法は全て、アプリケーションをそのそれぞれの（特有の）ライブラリとリンクすることが必要である。接続に切れ目がないように見える錯視は、トランスポート・セッションが終了していても、アプリケーションにトランスポート・セッションがまだアクティブであるように錯覚させることによって得られる。次いで、中間ライブラリは、（新しい）トランスポート接続の再確立を試み、それを使用してアプリケーションに新しいトランスポート接続をマップする。このような解決法の実施ならびにそれに伴う動作上の難点には、入出力ポーリングのような仮想化メカニズム、非同期および非ブロックの入出力プロセス、ならびに、タイマおよび信号ハンドラが必要なこと、「ｗａｉｔ」、「ｋｉｌｌ」、「ｅｘｅｃ」など追加のプロセス制御インタフェースが必要なことが含まれる。
【００１２】
他の技術では、トランスポート層プロトコルおよびエンド・アプリケーションを修正することにより、終端間のホスト移動性を達成するメカニズムを提供する。この修正では、ＴＣＰ有限状態マシンに新しい状態およびセマンティクスを加え、接続の移行を交渉するための新しいＴＣＰオプションを定義する。他に、ＴＣＰヘッダ、パケット・フォーマット、プロトコル・セマンティクスの変更、または、パケットへの追加ヘッダの追加を含む技術も存在する。しかし、これらの技術の欠点は、エンドユーザ・アプリケーションが、新しい機能を利用するためにはそれを認識しなければならないことであり、したがって、これらの既存アプリケーションに変更を加える必要がある。
【非特許文献１】S. Tannenbaum、「Computer Networks， second edition」、Prentice Hall、１９８８年
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明の目的は、パケット・ネットワークにおいて複数アドレスにわたって既存セッションの移行を行う方法を提供することである。
【課題を解決するための手段】
【００１４】
本発明の例示的実施形態によれば、シームレス・トランスポート・エンドポイント・モビリティ（ＳＴＥＭ）アーキテクチャは、トランスポート接続エンドポイントを、セッションを失うことなく、古いアドレスから新しいアドレスに移行させる。移行プロセスは、２つのエンドポイント自体の間で交渉される。トランスポート・エンドポイント移動性は、各エンドポイントごとに１つずつ、２つのＳＴＥＭデーモン間での通信を含み、デーモンはセッションに関連するカーネル・データ構造（たとえば、ＴＣＰ／ＩＰアプリケーションに関連する５タプルの要素）を動的に更新する。移行は、データ転送のために下位層のトランスポート接続を使用するアプリケーションには透過的である。
【００１５】
本発明の例示的実施形態によれば、マイグレータは、パケット・ベース通信システムにおけるマイグレータと非マイグレータの間のセッション中に、現行のエンドポイント・アドレスから新しいエンドポイント・アドレスへの移行を行う。マイグレータは、（ａ）マイグレータ内で現行のエンドポイント・アドレスを新しいエンドポイント・アドレスに変更し、（ｂ）新しいエンドポイント・アドレスを有するパケットの非マイグレータへの送信を一時中止し、（ｃ）新しいエンドポイント・アドレスへの変更を非マイグレータに通知し、（ｄ）新しいエンドポイント・アドレスを有するパケットの非マイグレータへの送信を再開することによって移行を行う。
【００１６】
本発明の他の例示的実施形態によれば、非マイグレータは、パケット・ベース通信ネットワークにおける非マイグレータとマイグレータの間のセッション中に現行のエンドポイント・アドレスから新しいエンドポイント・アドレスへの移行を行う。非マイグレータは、（ａ）マイグレータの新しいエンドポイント・アドレスへの変更を示す制御メッセージを受け取り、（ｂ）非マイグレータ内で、現行のエンドポイント・アドレスを新しいエンドポイント・アドレスに変更し、（ｃ）非マイグレータの新しいエンドポイント・アドレスへの変更についてマイグレータに確認応答し、（ｄ）新しいエンドポイント・アドレスでセッションのパケットをマイグレータと交換することによって、移行を行う。
本発明の他の様態、特徴、および利点は、下記の詳細な説明、添付の特許請求の範囲、および添付の図面からより完全に明らかになるであろう。
【発明を実施するための最良の形態】
【００１７】
本発明の理解を助けるために下記の専門用語および定義を使用する。「マイグレータ」または「移行エンドポイント」とは、そのインターネット・プロトコル（ＩＰ）アドレスを変更最中である、あるいは既にＩＰアドレスを変更した終端システムである。マイグレータは、その新しいＩＰアドレスを識別するリモート・エンドポイントへの制御メッセージの通信を開始する終端システムである。「非マイグレータ」、「非移行エンドポイント」、または「固定エンドポイント」とは、そのＩＰアドレスを変更しないリモート・エンドポイント・システムである。非マイグレータは、マイグレータが送った制御メッセージを受け入れ、マイグレータに確認応答メッセージで応答を返す。マイグレータ／非マイグレータとクライアント／サーバの間には、必ずしも１対１の関係は存在しない。ＴＣＰ接続の場合、クライアントは、他のシステムへのＴＣＰ接続を開始するシステムであり、サーバは、ファイル転送プロトコル（ＦＴＰ）、Ｔｅｌｎｅｔ、セキュア・シェル（ＳＳＨ）などのサービスをクライアントに提供するシステムである。マイグレータ／非マイグレータは、クライアントでもサーバでもよい。
【００１８】
マイグレータと非マイグレータの間のセッションの確立および維持のプロセスは、下記の特徴に従っている。ノードは、そのＩＰアドレスまたはインタフェースの変更中、他のノードとの既存の通信を維持する。様々な宛先変更やリプレイ攻撃技術などセッションのセキュリティにおける違反が起こらないように保護するために、新しいＩＰアドレスに接続を移行させるのに必要な全てのメッセージを、任意選択で認証してもよい。ノードは、たとえば、ＤＨＣＰ（動的ホスト構成プロトコル）、手動の構成、または他の利用可能なネットワーク機構によってＩＰアドレスを得る。ＩＰアドレス（または接続点）は、急速には変更されない。対応するトランスポート層接続を維持しながら、ＩＰアドレスが変更され得る速度は、ノードが互いに通信し、認証後にそのカーネル・データ構造を更新することができる速度に依存する。接続の両端の終端システムは、本発明の実施形態を実施した比較的対称なコードを有することが好ましい。
【００１９】
本発明の例示的実施形態によれば、シームレス・トランスポート・エンドポイント・モビリティ（ＳＴＥＭ）アーキテクチャは、マイグレータのカーネル・データ構造に保持されている確立されたセッション（接続）のための５タプルの連関を動的に変更し、非マイグレータに、そのカーネル・データ構造に対して同様のＩＰアドレス修正を実施するよう通知する。両方のエンドポイントのパケット内のソースおよび宛先ＩＰアドレスを変更するために、動的でロード可能なカーネル・モジュール、および制御情報通信デーモンが各エンドポイントで利用される。したがって、トランスポート・エンドポイントの新しいＩＰアドレスへの移行を成功させるためには、古いＩＰアドレスへの参照が、データ転送中に除去されることが望ましい。マイグレータにとっては、非マイグレータに送信された全てのＩＰパケットは、ソース・アドレスとして新しいＩＰアドレスを含み、非マイグレータから受信した全てのパケットは、宛先アドレスとして新しいＩＰアドレスを含む。非マイグレータから見ると、マイグレータから受信した全てのＩＰパケットは、ソース・アドレスとして新しいＩＰアドレスを含むはずであり、マイグレータに送信された全てのパケットは、宛先アドレスとして新しいＩＰアドレスを含むはずである。
【００２０】
図１は、ノード１０１および１０２がインターネット１０３を介して通信するためのＳＴＥＭシステム１００を示す。ノード１０１は、データを生成する、２つのユーザ・アプリケーションＡＰＰ１およびＡＰＰ２を含み、これらのデータは、トランスポート層モジュール１０６およびネットワーク層モジュール１０７で処理されてから、インターネット１０３を介してパケットとして送信される。ノード１０２は、インターネット１０３から受信したパケットを処理して、アプリケーション・サーバＳＲＶ１、ＳＲＶ２、ＳＲＶ３にデータを提供するネットワーク層モジュール１０８およびトランスポート層モジュール１０９を含む。トランスポート層モジュール１０６および１０９は、たとえばＴＣＰ（伝送制御プロトコル）に基づいて通信し、ネットワーク層モジュール１０７および１０８は、たとえばＩＰに基づいて通信する。ＴＣＰ／ＩＰ通信は、当技術分野で周知であり、たとえばAndrewS. Tannenbaum著の「Computer Networks」、second edition、Prentice Hall、１９８８年に出ている。
【００２１】
アプリケーションＡＰＰ１は、アプリケーション・サーバＳＲＶ１とのＴＣＰ／ＩＰセッションをセットアップし維持する。ＳＴＥＭデーモン１０４および１０５は、それぞれノード１０１およびノード１０２について、ソースおよび宛先ＩＰアドレスを含む５タプルの情報を識別するなどデータ交換および制御の調整を行う。ＳＴＥＭデーモン１０４および１０５は、インターネット１０３を通過するＵＤＰ（ユーザ・データグラム・プロトコル）セッションとして示されている帯域外チャネル（ＴＣＰセッション・チャネルとは別のチャネル）を介して通信してもよい。
【００２２】
各ＳＴＥＭデーモンは、（図１に図示せず）動的にロード可能なカーネル・モジュールで実装される。デーモンは、継続的に実行されるプログラムであり、コンピュータ・システムが受け取ることが予想される周期的サービス要求を処理するために存在する。デーモン・プログラムは、それらの要求を所与の通信プロトコルによって指定された他のプログラム（またはプロセス）に転送する。ＳＴＥＭデーモン１０４および１０５のカーネル・モジュールは、５タプル情報を格納するそのカーネル・データ構造を修正する。この５タプルは、カーネル・ソケット記述子（アプリケーションにおけるＴＣＰ／ＩＰセッションを識別する記述子）を一意的に識別する。
【００２３】
図２は、マイグレータと固定エンド（非マイグレータ）の間の例示的移行事象シーケンスを示す。通常のデータ転送は、期間２０１中に、マイグレータ用のＩＰアドレス１９２．１６８．１．１を使用して２つのエンドポイント間で行われる。図２では、ＴＣＰセッションを介するメッセージについては、マイグレータからのデータを（Ｍ）、固定エンドからのデータを（Ｆ）として示し、帯域外チャネル（たとえば、ＵＤＰセッション）を介する制御メッセージについては、マイグレータからのメッセージを（ＭＤ）、固定エンドからのメッセージを（ＦＤ）として示している。接続セットアップ後でただしＩＰアドレス変更時点２０２より前の時点で、マイグレータは登録要求を使用して任意選択で固定エンドに登録し、固定エンドは帯域外チャネルを介した応答でその登録要求に対して確認応答する。マイグレータは、セキュリティのために任意選択で固定エンドに登録して、固定エンドに、マイグレータがそのＩＰアドレスを移動または変更しようとしていることを通知する。
【００２４】
マイグレータは、そのインタフェースのための新しいＩＰアドレスを多数の異なる方法で得ることができる。マイグレータ自体が、より高いレベルのネットワーク・マネージャまたはＤＨＣＰサーバにアドレスを要求することができ、この場合、そのマネージャやサーバは、アドレスを割り当て提供する。あるいは、インタフェースを新ＩＰアドレスにあわせて手動で再構成することもできる。
【００２５】
ＩＰアドレス変更時点２０２で、マイグレータは、ＩＰアドレス１９２．１６８．２．９９への変更を始める。アドレス変更イベント２０２後の期間２０３で、マイグレータ（たとえばノード１０１）のカーネル・モジュールは、ソケット記述子に関連する５タプル・データ構造内のＩＰアドレスを更新する。各ソケット記述子は、５タプルに一意的に関連付けられる。カーネル・データ構造の更新は、全てのオープン・ソケット記述子をサーチし、記述子を（タプルの１つとして古いＩＰアドレスを含む）指定された５タプルと突き合わせることから始まる。有効な合致が識別されると、新しいＩＰ（エンドポイント）アドレスを反映するようこのデータ構造に適切な変更を行う。さらに、宛先ノードへのパケット送信を一時中止する。ＴＣＰデータ・セグメントは、有効な経路が確立されるまでノードの送信キュー（ＴＣＰ  ｓｅｎｄ−Ｑ）にバッファされる。
【００２６】
したがって、アプリケーション（たとえばＡＰＰ１）に関する限り、依然としてアプリケーションは同じソケット記述子に束縛されているので、カーネルに対する変更は透過的である。したがって、アプリケーションは、同じソケット記述子を利用し正常に動作を継続する。修正されたソケット記述子に基づいて送られたデータは、経路探索プロセス中に有効な経路／インタフェースをもたらす。同時に、マイグレータは、（制御メッセージ「移行要求」として示す）帯域外通信を介して、新しいエンドポイントＩＰアドレスへの変更を、リモート（固定）エンドに通知する。この情報に基づいて、固定エンドは、同様の変更をそのカーネル・データ構造に適用し、したがって、固定エンドから送られるデータ・パケットのＩＰヘッダ内の宛先アドレスが、新しい値を反映するようになる。固定エンドは、マイグレータに、（制御メッセージ「移行応答」として示す）そのカーネルの修正の確認応答を行い、期間２０５で、２つのエンドポイントは、マイグレータに対する新しいＩＰアドレスを使用して通常のＴＣＰセッションとして通信を再開する。ＴＣＰ送信キューにバッファされていたＴＣＰデータ・セグメントは、インタフェースから宛先に向けて送られる。というのは、有効な経路があり、送信された全てのパケットのＩＰアドレスは、ＩＰヘッダ内に適切な新しいアドレスを含むからである。
【００２７】
移行プロセスを円滑かつ系統的に制御することにより、接続を終了させるＴＣＰリセット・メッセージを生成するおそれがある競合状態と呼ばれる状態が回避される。具体的には、好ましい実施形態では、（１）非マイグレータにその変更が通知される前に、まずマイグレータのカーネル変更が必ず適用されること、および（２）マイグレータが、制御メッセージ交換期間中にそのセッションでどのデータも送信しないことを保証することにより、そのような条件を回避することができる。このような回避は、たとえば、システム上のファイアウォール・ルール（たとえばＬｉｎｕｘオペレーティング・システム内のＩＰテーブルの出力チェーン・ルール）を使用して、移行プロセスが完了するまでどのセッション・データもそのシステムから出て行くのを防止することにより達成される。このような規則は、動的にカーネルに追加されて、このセッションでパケットがリモート・エンドに送信されるのを明示的に防止する。非マイグレータから確認応答を受け取ると、このような規則は撤回されて通常の動作が再開される。あるいは、好ましい実施形態では、一定時間の間、古いエンドポイントＩＰアドレスの再割当てを遅延させることができる。これにより２つの異なるセッションが同時に同じＩＰアドレスを使用しないことが保証される。
【００２８】
図３は、図２の事象シーケンス中にマイグレータに用いられる例示的方法を示す。工程３０１では、現在、マイグレータは、現行のエンドポイントＩＰアドレスを使用して非マイグレータとの既存のセッションに参加している。工程３０２で、マイグレータは、マイグレータを非マイグレータに登録するために、帯域外チャネル（たとえばＵＤＰチャネル）を介して登録要求制御メッセージを非マイグレータに送る。工程３０２が実施された場合、工程３０３で、マイグレータは、非マイグレータによる登録の確認応答として登録応答制御メッセージを、帯域外チャネルを介して非マイグレータから受け取る。
【００２９】
工程３０４で、マイグレータは、その現行のエンドポイントＩＰアドレスから新しく取得したエンドポイントＩＰアドレス（新しいエンドポイントＩＰアドレス）への変更を開始する。工程３０５で、マイグレータは、パケットの送信を一時中止し、ＴＣＰ送信キューにパケットを入れる。工程３０６で、マイグレータは、非マイグレータから受信した古いエンドポイントＩＰアドレスを含むパケットの廃棄を開始する。工程３０７で、マイグレータは、マイグレータのＳＴＥＭデーモンのカーネル・データ構造が、新しいエンドポイントＩＰアドレスを含むように更新する。
【００３０】
工程３０８で、マイグレータは、マイグレータが新しいエンドポイントＩＰアドレスに変更されたことを示すエンドポイント・アドレス変更制御メッセージを、帯域外チャネルを介して非マイグレータに送る。この期間中、マイグレータは引き続き、パケットをＴＣＰ送信キューに入れる。工程３０９で、マイグレータは、非マイグレータがそのカーネル・データ構造を新しいエンドポイントＩＰアドレスを含むように変更したことを示すエンドポイント・アドレス変更確認応答制御メッセージを、非マイグレータから帯域外チャネルを介して受け取る。工程３１０で、マイグレータは、ＴＣＰ送信キューからパケットを開放することによって新しいエンドポイントＩＰアドレスとのセッションを続行する。
【００３１】
図４は、図２の事象シーケンス中に非マイグレータが用いる例示的方法を示す。工程４０１で、現在、非マイグレータは、現行のエンドポイントＩＰアドレスを使用してマイグレータとの既存のセッションに参加している。工程４０２で、非マイグレータは、マイグレータから帯域外チャネルを介して、マイグレータを非マイグレータに登録するよう求める登録要求を受け取る。工程４０２が実施された場合、工程４０３で、非マイグレータは、マイグレータを登録し、非マイグレータによる登録の確認応答として登録応答制御メッセージを帯域外チャネルを介してマイグレータに送る。
【００３２】
工程４０４で、非マイグレータは、引き続き古いエンドポイントＩＰアドレスを含むマイグレータからのパケットを受信する。工程４０５で、非マイグレータは、マイグレータが新しいエンドポイントＩＰアドレスに変更されたことを示すエンドポイント・アドレス変更制御メッセージを、マイグレータから帯域外チャネルを介して受け取る。工程４０６で、非マイグレータは、非マイグレータのＳＴＥＭデーモンのカーネル・データ構造を新しいエンドポイントＩＰアドレスを含むように更新する。
【００３３】
工程４０７で、非マイグレータは、非マイグレータがそのカーネル・データ構造を新しいエンドポイントＩＰアドレスを含むように変更したことを示す、エンドポイント・アドレス変更確認応答制御メッセージを、帯域外チャネルを介してマイグレータに送る。工程４０８で、非マイグレータは、新しいエンドポイントＩＰアドレスを用いてセッションを続行する。
【００３４】
図１に戻ると、ＳＴＥＭシステム１００は、ＳＴＥＭデーモン・モジュール１０４、１０５などのピア・モジュール間の通信を行うために、ＵＤＰチャネル１５０として示す帯域外制御チャネルを利用する。ＵＤＰチャネル１５０を介した帯域外通信は、ＩＰアドレスの変更が発生した後でも、マイグレータがその変更を非マイグレータに伝達できるという利点をもたらす。さらに、帯域外通信は、複数のＴＣＰセッションに関連する情報を同時に搬送することができる。図５乃至図８は、ＵＤＰチャネル１５０を介して交換することができるマイグレータおよび非マイグレータのための例示的制御メッセージのフォーマットを示す。共通ヘッダは、全ての制御メッセージで使用され、非ゼロ・チェックサムを有するＵＤＰフォーマットに準拠するものでよい。
【００３５】
図５は、ＳＴＥＭシステム制御メッセージの共通制御ヘッダの例示的フォーマットを示す。図５で、「バージョン」はプロトコルのバージョン番号を識別し、「シーケンス＃」はデータ・メッセージ・シーケンス中の１６ビット・メッセージ・カウントを識別し、「ＩＤクッキー」はノードを一意的に識別する４８ビット識別子であり、「リプレイ保護ＩＤ」はリプレイ攻撃を防止するためのタイムスタンプまたは乱数値に基づいた６４ビット固有識別子である。「タイプ」は、パケットを制御メッセージ・タイプで識別し、４つの値をとることができ、「１」は、メッセージが登録要求であることを示し、「２」は、メッセージが登録応答であることを示し、「３」は、メッセージが移行要求であることを示し、「４」は、メッセージが移行応答であることを示す。「フラグ／コード」は、移行登録制御メッセージ内で使用されるフラグと戻りコードであり、ここで「１」は登録要求が受諾されたことを示す。「フラグ／コード」の他の値によって、所与の理由で登録要求が拒否されたことを示すこともできる。
【００３６】
登録プロセスは、マイグレータが、その能力を示す登録要求制御メッセージを非マイグレータに送ることから始まる。認証および妥当性検査後に、非マイグレータは、要求の状況を示す適切な応答コード・セットを含む登録応答制御メッセージで応答する。「ＩＤクッキー」フィールドは、ノードを一意的に識別するために使用される。このクッキーを生成することができる多数の方法が当業者に知られている。たとえば、ＳＣＴＰまたはＴＣＰで使用されるクッキー生成方法（たとえば、ＳＹＮクッキー生成）を利用することができる。通常は、クッキーはノードを識別する不変値の関数である。たとえば、ＩＰアドレスは継続的に変更されるため、ドメイン名に適用される一方向ハッシュ関数を有する完全修飾ドメイン名は、一意の４８ビット・エントリ・クッキーを生成する。
【００３７】
リプレイ保護ＩＤフィールドは、マイグレータによって構築され、プレイバック／リプレイ攻撃を阻止すべく、登録要求とリプレイ・メッセージを突き合わせるために使用される。リプレイ攻撃は、異なるコンテクストから元のコンテクストへのメッセージの再生を使用したセキュリティ・プロトコルに対する攻撃であり、それによって、善良な参加者を欺きプロトコル実行がうまく完了したと信じさせる。非マイグレータからの登録応答メッセージは、このフィールドを、要求メッセージで受け取ったリプレイ保護ＩＤフィールド、および使用されたリプレイ保護メカニズムの方式（たとえば、タイムスタンプまたはノードのセキュリティ・アソシエーションによって与えられたナンス（乱数値））に基づいて計算された値に設定する。
【００３８】
図６は、認証のためのＳＴＥＭシステム制御メッセージの拡張ヘッダの例示的フォーマットを示す。図６で、「タイプ」はパケットを認証ヘッダ・タイプで識別し、「長さ」はパケット長であり、「ＳＰＩ」は２つのピア間のセキュリティ・コンテクストを識別するセキュリティ・パラメータ・インデックスであり、「認証」は可変長認証フィールドである。
【００３９】
例示的ＳＴＥＭシステムに利用される認証メカニズムは、モバイルＩＰに使用される認証メカニズムと同様でよい。各ノードは、不透明セキュリティ・パラメータ・インデックス（ＳＰＩ）によって索引付けされたセキュリティ・アソシエーション、およびＩＤクッキーをサポートする。認証拡張ヘッダ内のＳＰＩは、認証値の計算に使用され、かつその値を検査するためにレシーバによって使用されるセキュリティ・コンテクストを定義する。レシーバは、このＳＰＩに基づいて認証を計算する際に使用される、認証アルゴリズム（たとえば、暗号アルゴリズムＨＭＡＣ−ＭＤ５（ハッシュ・メッセージ認証コード−メッセージ・ダイジェスト・バージョン５）、およびＳＨＡ（セキュア・ハッシュ・アルゴリズム））、アルゴリズム・モード（たとえば接頭部＋接尾部）、および秘密（共有鍵、公開／秘密鍵ペア）を選択する。このような計算された認証値は、ＵＤＰチャネル・パケットのペイロード（登録要求／応答制御メッセージ）、他の拡張部分（移行要求／応答メッセージ）、およびパケット・ヘッダの初期部分（タイプ、長さ、ＳＰＩ）を保護する。
【００４０】
図７は、移行のためのＳＴＥＭシステム制御メッセージの拡張ヘッダの例示的フォーマットである。図７で、「タイプ」はパケットを移行ヘッダ・タイプで識別し、「長さ」はデータ長であり、「プロトコル・フラグ」はプロトコルのタイプ（たとえば、ビット０＝ＴＣＰ、ビット１＝ＵＤＰ）を示し、「旧ＩＰアドレス」は移行前のＩＰアドレスであり、「新ＩＰアドレス」は移行後のＩＰアドレスであり、「旧ポート」は移行前の古いポート番号であり、「新ポート」は移行後の新しいポート番号である。
【００４１】
移行プロセスでは、上述のようにピア間で移行要求／応答制御メッセージを交換する。共通ヘッダおよび任意選択の認証ヘッダに加えて、制御メッセージは１つまたは複数の移行ヘッダを含む。各移行ヘッダは、ピア間の１つまたは複数のセッションのために、古い５タプルを新しい５タプルにマップすることに関する情報を含む。「プロトコル・フラグ」フィールドにおける各ビットは、定義済みプロトコルを示す。対象となる複数のプロトコルの移行を示すために複数ビットを同時に送ることもできる。フィールドにヌル値が設定されていると、全てのプロトコルに対する移行を示すことになる。「旧ＩＰ」および「新ＩＰ」フィールドは、移行エンドポイントの古いＩＰアドレスから新しいＩＰアドレスへの指定されたマッピングを提供し、「旧ポート」および「新ポート」フィールドは、各セッションで使用されるポートに関する相当するマッピングを提供する。「プロトコルＩＤフラグ」フィールドの場合と同様に、ポート・フィールドをヌル値に設定することにより、たとえば、移動ノードが複数のＩＰサブネットを横切って移動し、移動ノードが全てのオープン・セッションを同時に移行させようとするときなど、マイグレータが２つのエンドポイント間の全てのセッションを移行しようとすることを示すことができる。
【００４２】
図５乃至７に関して述べた帯域外チャネルにおけるメッセージに加えて、さらに他の帯域外メッセージを、ＳＴＥＭシステムの特定のアプリケーションに利用することもできる。ＳＴＥＭシステムはホストの移動性を得るために利用できるので、接続ハンドオフおよび位置管理のためのメッセージを利用することもできる。このようなメッセージは、「不透明（opaqure）データ」と総称される、位置、固定エンドポイント、信号対雑音比（ＳＮＲ）、接続品質、または同様の情報などのデータを含むこともできる。図８は、不透明データのためのＳＴＥＭシステム制御メッセージの拡張ヘッダの例示的フォーマットを示す。図８では、「タイプ」はパケットを不透明ヘッダ・タイプで識別し、「長さ」は「サブタイプ」および「不透明データ」フィールドの長さを示し、「サブタイプ」は不透明データに含まれる更新情報（たとえば位置更新情報）のタイプを示し、「フラグ／コード」は不透明データの交換を円滑にするために使用されるフラグまたはコードであり、「不透明データ」はパケットの可変長不透明データである。
【００４３】
本発明により下記の利点を可能にすることができる。ＳＴＥＭシステムの１つまたは複数の実施形態に従って動作するエンドポイントは、終端間ＴＣＰ接続を切断することも、エンドポイント間の通信経路中にどのようなコード／プロキシも割り当てることもない。新しいコードがデータ経路に追加されることはなく、アプリケーションに接続が依然存在するように錯覚させることもない。ＳＴＥＭシステムの１つまたは複数の実施形態では、新しいアドレスまたは新しい接続点に同じＴＣＰ接続を移行させる（すなわち、エンドポイントＴＣＰ状態マシンは、移行プロセス中に「確立」状態を継続する）。
【００４４】
本発明を、ＴＣＰ／ＩＰ通信プロセスに従って動作するパケット・ネットワークに関して説明したが、本発明はそれだけに限定されない。本明細書の教示を、あるノードがその接続を別のノードに転送する他のパケット・ネットワークに拡張することが当業者には容易にできるだろう。さらに、本発明は、（「無線」用途と総称される）無線通信、ラジオ、セルラー、または他の無線用途に使用することが好ましいが、本発明はそれだけに限定されず、パケット・ベースの通信をサポートする無線または光ネットワークに利用することもできる。
【００４５】
本発明は、方法およびこれらの方法を実施するための装置の形で、実施することができる。本発明はまた、フロッピー（登録商標）・ディスク、ＣＤ−ＲＯＭ、ハード・ドライブ、または他の任意の機械可読記憶媒体などの有形媒体で実施されるプログラム・コードの形で実施することができ、プログラム・コードが、コンピュータなどの機械にロードされそのような機械で実行されるとき、その機械は本発明を実施するための装置となる。本発明はまた、たとえば、記憶媒体に記憶されるのであれ、機械にロードされかつ／または機械で実行されるのであれ、あるいは、電気配線、ケーブル布線、光ファイバ、または電磁放射などの伝送媒体を介して送信されるのであれ、プログラム・コードの形で実施することもでき、プログラム・コードがコンピュータなどの機械にロードされそのような機械で実行されるとき、その機械は本発明を実施するための装置となる。汎用プロセッサ上で実装されるときは、プログラム・コードのセグメントは、プロセッサと組み合わせると、特定の論理回路と同様に動作する独自の装置を実現する。
【００４６】
さらに、添付の特許請求の範囲に示した本発明の原理および範囲から逸脱することなく、本発明の性質を説明するために記述し図示した細部、材質、および部品の構成に、当業者が様々な変更を加えられることが理解されよう。
【図面の簡単な説明】
【００４７】
【図１】２つのノードがパケット・ネットワークを介して通信するためのシームレス・トランスポート・エンドポイント・モビリティ（ＳＴＥＭ）アーキテクチャを示す図である。
【図２】マイグレータと非マイグレータの間の例示的移行の事象シーケンスを示す図である。
【図３】図２の事象シーケンスにおいて、マイグレータが利用する例示的方法を示す図である。
【図４】図２の事象シーケンスにおいて、非マイグレータが利用する例示的方法を示す図である。
【図５】ＳＴＥＭシステム制御メッセージの共通制御ヘッダの例示的フォーマットを示す図である。
【図６】認証のためのＳＴＥＭシステム制御メッセージ拡張ヘッダの例示的フォーマットを示す図である。
【図７】移行のためのＳＴＥＭシステム制御メッセージ拡張ヘッダの例示的フォーマットを示す図である。
【図８】不透明データのためのＳＴＥＭシステム制御メッセージ拡張ヘッダの例示的フォーマットを示す図である。
【図１】
0004672382.tif 000002
【図２】
0004672382.tif 000003
【図３】
0004672382.tif 000004
【図４】
0004672382.tif 000005
【図５】
0004672382.tif 000006
【図６】
0004672382.tif 000007
【図７】
0004672382.tif 000008
【図８】
0004672382.tif 000009