(57)【特許請求の範囲】
【請求項１】
近距離無線ネットワーク環境において通信するための近距離無線通信機能を備えた１台以上の携帯型クライアント装置を含む近距離無線ネットワーク環境においてセキュア・ネットワーク・アクセスを可能にさせる方法であって、
ネットワークアクセスポイントによって、選択された１台のクライアント装置からの通信を受信する手順と、
ネットワークアクセスポイントによって、選択されたクライアント装置が暗号化のための有効なセッション鍵を保有しないことを判定する手順と、
選択されたクライアント装置が暗号化のための有効なセッション鍵を保有しないことの判定に応じて、ネットワークアクセスポイントによって、選択されたクライアント装置のユーザに対するユーザ資格を取得する手順と、
ネットワークアクセスポイントによって、認証サーバと連絡を取ることによってユーザ資格を認証する手順と、
ユーザ資格を認証する手順が認証に成功して終了した場合、有効なセッション鍵を確立する手順と、
ネットワークアクセスポイントによって、確立されたセッション鍵を使用して、選択されたクライアント装置とネットワークアクセスポイントの間のリンクを介して伝送されたパケットを暗号化する手順と、
を有する方法。
【請求項２】
確立されたセッション鍵を使用してパケットを暗号化する手順は、ネットワークアクセスポイントのハードウェア暗号化コンポーネントを使用してパケットを暗号化する手順を含む、請求項１記載の方法。
【請求項３】
クライアント・メディア・アクセス制御（ＭＡＣ）アドレス、確立されたセッション鍵、及び、ユーザ識別情報をルックアップテーブルに保持する手順を更に有する、請求項１記載の方法。
【請求項４】
フィルタリングモジュールによって、ルックアップテーブルに問い合わせて、あるＭＡＣアドレスに関連付けられたユーザ識別情報を取得する手順と、
フィルタリングモジュールによって、ユーザ識別情報を使用して、入ってくる内向きパケット及び出て行く外向きパケットをフィルタリングする手順と、
を更に有する請求項３記載の方法。
【請求項５】
あるクライアント装置が異なるネットワークアクセスポイントへ移動したとき、ルックアップテーブルに問い合わせて、そのクライアント装置のＭＡＣアドレスに関連付けられた確立されたセッション鍵を取得する手順と、
取得されたセッション鍵を異なるネットワークアクセスポイントへ供給する手順と、
を更に有する請求項３記載の方法。
【請求項６】
近距離無線ネットワーク環境で通信する近距離無線通信機能を備えた１台以上の携帯型クライアント装置を含む近距離無線ネットワーク環境においてセキュア・ネットワーク・アクセスを可能にさせるシステムであって、
ネットワークアクセスポイントによって、選択された１台のクライアント装置からの通信を受信する手段と、
ネットワークアクセスポイントによって、選択されたクライアント装置が暗号化のための有効なセッション鍵を保有しないことを判定する手段と、
選択されたクライアント装置が暗号化のための有効なセッション鍵を保有しないことの判定に応じて、ネットワークアクセスポイントによって、選択されたクライアント装置のユーザに対するユーザ資格を取得する手段と、
ネットワークアクセスポイントによって、認証サーバと連絡を取ることによってユーザ資格を認証する手段と、
ユーザ資格を認証する手段が認証に成功した場合、有効なセッション鍵を確立する手段と、
ネットワークアクセスポイントによって、確立されたセッション鍵を使用して、選択されたクライアント装置とネットワークアクセスポイントの間のリンクを介して伝送されたパケットを暗号化する手段と、
を有するシステム。
【請求項７】
確立されたセッション鍵を使用してパケットを暗号化する手段は、ネットワークアクセスポイントのハードウェア暗号化コンポーネントを使用してパケットを暗号化する手段を含む、請求項６記載のシステム。
【請求項８】
クライアント・メディア・アクセス制御（ＭＡＣ）アドレス、確立されたセッション鍵、及び、ユーザ識別情報をルックアップテーブルに保持する手段を更に有する、請求項６記載のシステム。
【請求項９】
フィルタリングモジュールによって、ルックアップテーブルに問い合わせて、あるＭＡＣアドレスに関連付けられたユーザ識別情報を取得する手段と、
フィルタリングモジュールによって、ユーザ識別情報を使用して、入ってくる内向きパケット及び出て行く外向きパケットをフィルタリングする手段と、
を更に有する請求項８記載のシステム。
【請求項１０】
あるクライアント装置が異なるネットワークアクセスポイントへ移動したとき、ルックアップテーブルに問い合わせて、そのクライアント装置のＭＡＣアドレスに関連付けられた確立されたセッション鍵を取得する手段と、
取得されたセッション鍵を異なるネットワークアクセスポイントへ供給する手段と、
を更に有する請求項８記載のシステム。
【請求項１１】
一つ以上のコンピュータ読み取り可能な媒体に格納され、近距離無線ネットワーク環境において通信するための近距離無線通信機能を備えた１台以上の携帯型クライアント装置を含む近距離無線ネットワーク環境においてセキュア・ネットワーク・アクセスを可能にさせるため適合したコンピュータプログラムであって、
ネットワークアクセスポイントによって、選択された１台のクライアント装置からの通信を受信する機能と、
ネットワークアクセスポイントによって、選択されたクライアント装置が暗号化のための有効なセッション鍵を保有しないことを判定する機能と、
選択されたクライアント装置が暗号化のための有効なセッション鍵を保有しないことの判定に応じて、ネットワークアクセスポイントによって、選択されたクライアント装置のユーザに対するユーザ資格を取得する機能と、
ネットワークアクセスポイントによって、認証サーバと連絡を取ることによってユーザ資格を認証する機能と、
ユーザ資格を認証する機能が認証に成功した場合、有効なセッション鍵を確立する機能と、
ネットワークアクセスポイントによって、確立されたセッション鍵を使用して、選択されたクライアント装置とネットワークアクセスポイントの間のリンクを介して伝送されたパケットを暗号化する機能と、
を実現させるためのコンピュータプログラム命令を含むコンピュータプログラム。
【請求項１２】
確立されたセッション鍵を使用してパケットを暗号化する機能を実現させるためのコンピュータプログラム命令は、
ネットワークアクセスポイントのハードウェア暗号化コンポーネントを使用してパケットを暗号化する機能を実現させるためのコンピュータプログラム命令を含む、
請求項１１記載のコンピュータプログラム。
【請求項１３】
クライアント・メディア・アクセス制御（ＭＡＣ）アドレス、確立されたセッション鍵、及び、ユーザ識別情報をルックアップテーブルに保持する機能を実現させるためのコンピュータプログラム命令を更に有する、請求項１１記載のコンピュータプログラム。
【請求項１４】
フィルタリングモジュールによって、ルックアップテーブルに問い合わせて、あるＭＡＣアドレスに関連付けられたユーザ識別情報を取得する機能と、
フィルタリングモジュールによって、ユーザ識別情報を使用して、入ってくる内向きパケット及び出て行く外向きパケットをフィルタリングする機能と、
を実現させるためのコンピュータプログラム命令を更に有する請求項１３記載のコンピュータプログラム。
【請求項１５】
あるクライアント装置が異なるネットワークアクセスポイントへ移動したとき、ルックアップテーブルに問い合わせて、そのクライアント装置のＭＡＣアドレスに関連付けられた確立されたセッション鍵を取得する機能と、
取得されたセッション鍵を異なるネットワークアクセスポイントへ供給する機能と、
を実現させるためのコンピュータプログラム命令を更に有する請求項１３記載のコンピュータプログラム。
【発明の詳細な説明】
【０００１】
〔関連出願へのクロスリファレンス〕
本発明は、同一出願人によって譲受された、２０００年８月１１日に出願された米国特許出願第０９／６３７，７４２号（発明の名称「近距離無線ネットワーク環境におけるシームレス・ユーザ移動方法(Enabling Seamless User Mobility in a Short-Range Wireless Networking Environment")）に関連する。この関連出願は参考のため引用される。
【０００２】
〔技術分野〕
本発明は、コンピュータネットワークに係り、特に、近距離無線コンピューティング装置を用いてシームレス（途切れることの無い）接続性及びローミングを可能にする方法、システム、及び、コンピュータプログラム命令に関する。
【０００３】
〔背景〕
近年、様々な近距離無線ネットワーク通信技術、特に、ＩＥＥＥ  ８０２．１１及びブルートゥース(Bluetooth)が登場し、携帯型装置（例えば、ラップトップ、携帯電話、個人情報端末（即ち、ＰＤＡ）など）が相互に通信し、広域ネットワーク環境と通信できるようになっている。ＩＥＥＥ  ８０２．１１は、米国電気電子技術者協会の規格であり、１９９７年に無線ローカルエリア・ネットワーク（即ち、無線ＬＡＮ）、シグナリング、及び、プロトコルに関して承認された。８０２．１１規格は、周波数ホッピング方式拡散スペクトル無線、直接シーケンス方式拡散スペクトル無線、及び、赤外線伝送を取り扱う。Bluetoothは、電気通信とコンピューティングを統一することを目指した近距離無線接続性のための仕様である。これらの仕様に関するもっと詳細な情報は、それぞれ、インターネット上のwww.ieee.org及びwww.bluetooth.comで調べることができる。
【０００４】
この環境内でのホスト移動性の問題は従来から公知であり、幾つかの手法（ソリューション）がこの問題を解決するため明らかにされている。これらの手法の中には、モバイルＩＰ（インターネット・プロトコル）、エンド・ツー・エンドＴＣＰ（伝送制御プロトコル）、及び、ＨＡＷＡＩＩ（ハンドオフ・アウェア・ワイヤレス・アクセス・インターネット・インフラストラクチャ）システムが含まれる。これらの各手法は、ロケーション非依存型パケットルーティング及びセキュア・アクセスに関するそれらの制限及び欠点の簡単な要約と共に次に説明される。
【０００５】
モバイルＩＰ環境の場合、各装置は、ホームネットワーク上の固定ホーム・エージェント（ＨＡ）に割当てられる。装置が動き回るとき、以下のステップ（１）〜（４）が行われる。（１）装置は、リモートネットワーク上のフォーリン・エージェント（ＦＡ）を見つけ、ＦＡとの間に通信リンクを確立し、ＦＡにＨＡの識別情報（アイデンティティ）を付与する。（２）ＦＡは、ＨＡとのハンドシェイクを開始する。（３）クライアントに向けられたパケットはＨＡによって受信され、ＨＡはパケットをＦＡへ進め、ＦＡはパケットを装置へ転送する。（４）クライアントによって生成されたパケットは、ＦＡによって横取りされ（途中で遮られ）、ＦＡはパケットをＨＡへ進め、ＨＡはパケットを対象とする宛先へ転送する。しかし、ＦＡがＨＡ経由でパケットを送信するのではなく、対象とする宛先へパケットを直接送信できるようにするためモバイルＩＰに最適化が行われる。
【０００６】
しかし、モバイルＩＰには、多数の欠点及び制限がある。ＩＰインサイドＩＰの通過（トンネル化）には、付加的なヘッダ素材をパケットに追加することが必要であり、また、（付加的なＩＰヘッダ素材に対し）少なくとも新しいＩＰヘッダのチェックサムの再計算が必要である。これらの演算のため、ＨＡ及び／又はＦＡで余分なメモリアクセスが必要になる。ある種のオペレーティングシステムの場合、チェックサム計算は増分的ではない（したがって、ＩＰヘッダの全てのバイトへのアクセスが必要になる。）。一部のオペレーティングシステムの場合、ヘッダ素材の追加は、パケット全体を新しいバッファへコピーすることが必要であり、パケットのあらゆるバイトへアクセスすることが必要である。ＨＡとＰＡの間のパケットの通過は、パケットサイズを増加させる。このため、帯域消費量が増加し、元のＩＰパケットの付加的なフラグメント及び再組立が必要である（本質的に新しいパケット損失条件が導入される。）。したがって、トンネル化は、性能劣化を引き起こす。更に、ＨＡとＦＡの間のトンネル化は、ルーティングを非効率にする。なぜならば、全ての内向きパケットは、パケットの送信元と宛先が物理的に直ぐ近くのネットワークに置かれている場合でも、２台のホストの間でルーティングされなければならないからである。
【０００７】
モバイルＩＰは、クライアント装置に負荷と制約を課する。クライアントは、ＦＡを発見できるようにするため付加的なソフトウェアをインストールしなければならない。特定のクライアントは、同時には一つのＦＡとしか通信できなないように制限される。即ち、多数のＦＡの間で負荷を分配する機構が存在しない。ＦＡが故障した場合、クライアントに関する全ての状態情報は失われ、クライアントは、そのネットワーク接続性の全てを再確立しなければならない。さらに、全てのクライアントは、公然と経由することができる（グローバル、大域的）ＩＰアドレスに割当てられる。現在のインターネットの場合、このようなアドレスは著しく制限されているので、これは、特に、多数のモバイル作業者を含む大規模機関の場合に、困難な限界を意味する。
【０００８】
Alex SnoerenとHari Balakrishnanによって提案されたエンド・ツー・エンドＴＣＰ再マッピング手法は、論文："An End-to-End Approach to Host Mobility", Proceedings of Mobicom 2000, 2000年8月発行に詳細に記載されている。モバイルＩＰの限界を認識することによって、Alex SnoerenとHari Balakrishnanは、確立されたコネクションをクライアントの新しいＩＰアドレスに再マッピングすることができる付加的な機構をＴＣＰに追加することによって、途切れることのない移動性が実現され得ることを示唆している。このようにして、クライアントが動き回るとき、クライアントは、新しいＩＰアドレスを自由に取得し、その結果として、クライアントの確定していないコネクションの全てを再割当する。この手法の場合、ＴＣＰ／ＩＰコネクションは、ローミング中の装置（動的なＩＰアドレスを備えている）とサーバとの間で、直接的に機能する。装置が動き回り、新しいＩＰアドレスを取得するときは、何時でも、装置のアドレスが変更されたことをサーバへ通知するためＴＣＰ／ＩＰリンクを介してメッセージが送信される。
【０００９】
この手法には多数の欠点がある。この手法は、全てのクライアント及びサーバ上のＴＣＰ実施態様に変更を加えることが必要である。装置のＩＰアドレスを認識しているアプリケーションは、装置が動き回るときに生じるＩＰアドレス変更を知り、処理するように変更しなければならない。この手法は、ユーザ・データグラム・プロトコル（ＵＤＰ）／ＩＰベースの通信には不都合である。最後に、システムは、遠隔ホストがクライアントの現在のＩＰアドレスについて知ることができるように動的ドメイン名サービス（ＤＤＮＳ）に依拠するが、残念ながら、ＤＤＮＳは、未だ完全には配備されていない。
【００１０】
ＨＡＷＡＩＩシステムは、インターネット上でhttp://www.ietf.orgから入手可能である、R. Ramjee外によるインターネット文書"IP micro-mobility support using HAWAII", 2000年7月7日に記載されている。ＨＡＷＡＩＩは、ユーザが単一の管理ドメイン内をより効率的に動き回ることができるようにするため最適化されたモバイルＩＰである。ユーザが管理ドメインに移動するとき、通常の形式でローカルＦＡと関係が確立される。管理ドメイン内では、ローミングは、ＦＡが装置との間でパケットを送受できるように、ルータ及びホストルーティングテーブルを動的に更新することによって実現される。
【００１１】
この手法は、モバイルＩＰの場合と比較して、ＦＡ−ＨＡセットアップを削減し、オーバーヘッドを取り除く。なぜならば、ＦＡは頻繁に変化することがなく、ＦＡは、ユーザがＦＡによってサポートされた管理ドメイン内を移動する限り、固定されたままの状態を保つからである。モバイルＩＰと同様に、ＨＡＷＡＩＩ技術は、クライアントから送信されたパケットのための外へ向かう「トライアングル」ルーティングを除外することができる（但し、クライアントへ送信されたパケットに対してはこのようにはならない。なぜならば、クライアントの公開アドレスは、インターネットを介してＨＡへルーティグされるからである。）。
【００１２】
しかし、ＨＡＷＡＩＩ技術は、ルータを更新するため付加的なオーバーヘッドを取り込む（このことは、多数の管理ドメインでは実現不能であるか、若しくは、許容されない。）。また、ＨＡＷＡＩＩ技術は、モバイルＩＰに関連した計算性能、帯域幅、及び、信頼性の問題を解決しない。
【００１３】
ホスト移動性のための既存の手法は、（１）無線アクセス環境を介して有線ネットワークへアクセスしているユーザはどのユーザであるか、及び、（２）このユーザが通信している相手のサーバはどのサーバであるか、に関するポリシーを実施するための機構（メカニズム）を提供しない、という点で著しく制限される。
【００１４】
既存のセキュリティ機構は、二つの大まかなカテゴリーに分類される。第１のカテゴリーは、リンク・レベルの暗号化であり、第２のカテゴリーは、セキュアＩＰトンネル化である。次に、これらの各技術について説明する。
【００１５】
リンク・レベル暗号化は、データが無線ネットワークを介して平文で伝送されないことを保証するため使用される。８０２．１１環境の場合、ＷＥＰ（ワイヤレス・イクゥイバレント・プライバシー）は、クライアントと無線アクセスポイントとの間で暗号化を行えるように規定される。典型的な実施形態の場合、システム管理者は、認証された全ユーザに配布される鍵を定める。ユーザは、この鍵を用いてクライアントを設定し、この鍵は、次に、装置がネットワークへのアクセスを許可されていることを証明するため、アクセスポイントへ提示される。このハンドシェイクが終了すると、セッション鍵が確立され、クライアントとアクセスポイントの間の以降のトラヒックは暗号化される。この暗号化は、無線カードのハードウェア内に組み込まれる。同様の機構は、ブルートゥース（Bluetooth)環境にも存在する。
【００１６】
このリンク・レベルのセキュリティ技術には幾つかの限界がある。第１に、このセキュリティ技術は、匿名性である。即ち、アクセスポイント（及びネットワーク）は、実際にネットワークを使用しているユーザを判定することができない。したがって、ユーザベースのフィルタリング及びルーティングのポリシーを強制する方法がない。更に、この技術は扱い難い。ＷＥＰ鍵は、長さが１０２４ビットであり、ユーザにこの情報のタイプ入力を求めると、ユーザは間違える傾向がある。ユーザにこの鍵が供給されると、ユーザは、ネットワークアクセスを拒絶されることが無くなる。先に認証されたユーザがネットワークへのアクセス権を取得することを防止するため、管理者は、新しい鍵を作成し、全てのアクセスポイントのプログラムをやり直し、現在認証されている全てのユーザに自分のＷＥＰ鍵を更新するように通知する必要がある。多数の設備において、これは非現実的である。
【００１７】
このリンク・レベルの技術を使用する代替案は、無線クライアントと、アクセスポイントに連結されたルータとの間にセキュアＩＰトンネルを構築する。このジャンルの手法は、3Comコーポレーションによって公表されている（http://www.3com.com/news/releases/pr00/jul0500a.htmlを参照のこと。）。この特定の手法では、ユーザは、ユーザ名及びパスワードをルータへ与え、ルータはユーザを認証する。次に、ＭＰＰＥ（マイクロソフト・ポイント・ツー・ポイント暗号化）リンクがクライアントとルータの間に確立される。このようにして、ユーザは、全てのパケットが無線ネットワーク上で暗号化される。
【００１８】
しかし、この技術は、無線アクセスハードウェア装置に設けられたハードウェア暗号化能力を巧く利用することが出来ない。なぜならば、暗号化機能は、リンク・レベルに存在するからである。更に、ネットワーク管理者は、ネットワーク上でアクセス制御又はフィルタリングポリシーを実施するために、この機構を使用できない。このようなフィルタリングは、ルータ自体に統合することが可能ではあるが、全てのクライアントがルータと安全なトンネルを確立することを保証する機構は存在しない。ルータをあらゆる無線アクセスポイントへ直接連結することによって、フィルタリング手法を実現することが可能である（その結果として、ルータは、到来する内向きトラヒック及び出て行く外向きトラヒックの全てのトラヒックを横取りすることが可能である。）。しかし、この後者の解決手法は、著しい配線の負担を課すので、実行不可能である。
【００１９】
したがって、従来技術の制限を解決し、ホスト移動性をサポートする技術が求められている。
【００２０】
〔発明の概要〕
本発明は、近距離無線コンピューティングネットワークにおけるホスト移動性をサポートする方法、システム、及び、コンピュータプログラム命令を対象とする。開示されたルーティング技術は、基礎となるルーティング基盤設備（インフラストラクチャー）の最大性能及びスループットを提供し、パケットのネットワーク待ち時間を最低限に抑え、最大限のコンフィギュレーション柔軟性を与える。更に、開示されたセキュア・アクセス技術は、ユーザ毎のアクセス制御とトラヒックフィルタリングポリシーが容易、かつ、効率的に実施される安全な管理されたネットワーク環境を提供する。これらの技術を使用することにより、クライアント装置は、固定装置アドレスを使用して、（建物内のネットワークのような）無線ネットワークを途切れること無く移動することが可能である。
【００２１】
本発明によれば、各ネットワークコネクションは、ホーム・エージェント・マスカレード器（ＨＡＭ）に関連付けられる。ローミング中の装置は、フォーリン・エージェント・マスカレード器（ＦＡＭ）で通信し、ＦＡＭは、アクティブ・コネクション毎にＨＡＭと通信する。クライアント装置が各アクティブ・コネクションに対して異なるＨＡＭを使用できるようにすることによって、ローミング中の装置に対するＨＡＭは、コネクションが確立されたときにクライアントが存在していた実際のロケーションの非常に近くに設置され得る。コネクションが長続きせず、コネクションの進行中にユーザが実際には動き回らない場合、従来技術で要求されたタイプのはっきりしないルーティング・パスを構築する必要が無く、装置は、単純に（近隣の）ＨＡＭを使用する。実際上、殆どのコネクションは、（例えば、インターネットくからの要求を行うため）長続きしない傾向があるので、開示された技術は、特に、有利である。コネクションが長続きする状況の場合（或いは、永続することが期待される場合）、ＨＡＭ機能をもっと集中したロケーションに配置する技術が規定される。
【００２２】
ＦＡＭがパケットルーティングを行う必要がある新しい装置の存在を知るのに伴って、コネクション状態は各ＦＡＭに次第に取り込まれるので、システムの全体的な性能が更に改良される。
【００２３】
効率的かつ漸進的なハンドオフ処理技術が規定される。得られたシステムは、非常に拡張性があり、高性能を発揮する。
【００２４】
これらのルーティング技術を補完するため、近距離無線ネットワーク環境においてユーザ中心のリンク・レベル・セキュリティを保証するセキュリティ機構が開示される。開示された機構は、ユーザベースの認証をサポートする間に、並びに、各エンドポイント（終点）のハードウェアによって提供された既存の暗号機能を利用する間に、ポリシー駆動型パケットフィルタリングが行えるようにさせる。
【００２５】
〔発明の詳細な説明〕
次に、本発明の好ましい一実施例が表された添付図面を参照して本発明をより十分に説明する。図面中、同じ番号は同じ要素を表す。
【００２６】
本発明は、本発明の一実施例による方法、装置（システム）、並びに、一つ以上のコンピュータ読み取り可能な媒体に具現化されたコンピュータプログラム命令のフローチャートを参照して説明される。当業者に明らかであるように、これらのフローチャートは、本発明の好ましい一実施例が実施される態様の単なる例示であり、開示された発明の概念から逸脱すること無く、（例えば、ある種の場合には、操作の順序を入れ替えることにより、或いは、操作を結合することにより）フローチャートに例示されたロジックに変更を加えることが可能である。
【００２７】
本発明は、当業者に周知であるネットワーク・アドレス変換（ＮＡＴ）を使用することに基づいている。ＮＡＴを使用することにより、特定のクライアントのネットワーク・アドレスを他のアドレスを用いてマスカレードすることが可能になる。この機能は、従来的に、企業ネットワーク内の多数の秘密クライアントアドレスを、より少数の公開された外から見えるアドレスを使用してインターネットに公表することができるようにするため使用されている。これにより、取得すべきグローバルＩＰアドレスの数が減少し、ネットワークのセキュリティが強化される。
【００２８】
このマスカレードを実現するため、ＮＡＴを提供する装置はアドレス変換テーブルを保持する。アドレス変換テーブルは、図１に示されるように、確立された各コネクションに対して１個のエントリーをもつ。コネクションが確立されたとき（例えば、ＴＣＰ  ＳＹＮメッセージが送信されたとき）、ＮＡＴホストは、クライアントホストとサーバホストのアドレス及びポートに対応したエントリーをテーブルに設定する。ＮＡＴホストは、更に、マスカレードＩＰアドレス及びポートを割当てる。これらは、コネクションの継続中にクライアントホストの公開されたアドレス及びポートである。（かくして、第１のサーバと通信する特定のクライアントに対し、第１のマスカレードアドレス及びポートが使用され、一方、このクライアントが別のサーバと通信する場合、異なるマスカレードアドレス及びポートが使用される。）
ＮＡＴの動作は図２に示されている。クライアント２０５から（クライアントのアドレス及びポート番号に設定された送信元ＩＰアドレス、並びに、サーバのアドレス及びポート番号に設定された宛先ＩＰアドレスを使用して）特定のコネクション上で送信された外向きのパケットは、マスカレードアドレス及びマスカレードポート番号を使用して送信された場合、ＮＡＴ２１５から転送される（ステップ２２０）。したがって、サーバ２２５は、このマスカレードアドレス及びポート番号を備えたクライアントと通信していることを確信する。かくして、マスカレードアドレス及びマスカレードポートを宛先とするサーバ２２５からの任意の内向きパケットは、クライアント２０５の実際のクライアントアドレス及びクライアントポートに向けられている場合、ＮＡＴ２１５によって転送される（ステップ２４０）。
【００２９】
図３には、本発明におけるシステムの論理コンポーネントが示されている。論理コンポーネントは、（１）装置３３０と、（２）ホーム・アドレス・マスカレード器（ＨＡＭ）３１０と、（３）フォーリン・アドレス・マスカレード器（ＦＡＭ）３４０と、（４）ローミング・コーディネーター（調整器）（３２０）と、（５）アプリケーションサーバ３００とを含む。次に、本発明に関連した各コンポーネントについて説明する。
【００３０】
本発明と共に使用される装置３３０（ラップトップ型コンピュータ、ハンドヘルド型コンピュータ、ＰＤＡ、携帯電話機など）は、各々に通信機能（好ましくは、近距離無線通信機能）が備えられている。通信設備は、８０２．１１、Bluetooth、HomeRF、或いは、（将来開発されるであろう）同等の技術のようなテクノロジーを含む。ネットワーク機能は装置に組み込まれる。或いは、ネットワーク機能は、例えば、（ＰＣＭＣＩＡ、即ち、パーソナル・コンピュータ・メモリ・カード国際協会カードのような）プラグイン・カード、又は、ドングル（ＵＳＢ、即ち、ユニバーサル・シリアル・バスのポートやＲＳ２３２のポートに取り付けられるプラグイン装置）の装着のような他の方式で利用可能であるが、これらの方式に限定されるものではない。
【００３１】
クライアント装置３３０との間で送受される全てのパケットは、ＦＡＭ３４０を通過する。装置からの外向きパケット３５０ａは、ＦＡＭによって宛先サーバ３００へ転送される（ステップ３５０ｂ）。これに対して、サーバ３００からの内向きパケットは、最初に装置のＨＡＭ３１０へ送信され（ステップ３６０ａ）、次に、ＦＡＭ３４０へ転送される（ステップ３６０ｂ）。ＦＡＭ３４０は、この内向きパケットを装置３３０へ送信する（ステップ３６０ｃ）。
【００３２】
好ましい実施例において、ＨＡＭ３１０は、特定のクライアント装置とサーバ間の各コネクションに固定的に割当てられる（但し、装置のＨＡＭは後で詳述するように変更されるかもしれない。）。ルーティングをサポートするため、ＨＡＭは、ＨＡＭ変換レコードを利用する（図５に関して後述される。）。好ましい実施例において、ＨＡＭは、ネットワークアクセスポイント、ルータ、若しくは、ブリッジに組み込まれるが、後述するように、ＨＡＭは、中央サーバ、若しくは、その他のホストに組み込んでも構わない。
【００３３】
好ましい実施例において、ＦＡＭ３４０は、装置と通信する第１の（ブリッジ形ではない）ネットワーク素子である。装置との間で送受されるパケットはＦＡＭを通る必要がある。好ましくは、ＦＡＭは、ネットワークアクセスポイント又はＬＡＮルータに組み込まれる（他の実施例では、全てのクライアントがＦＡＭ使用可能なブリッジと通信するならば、ＦＡＭ設備はブリッジに設置される。）。ＦＡＭは、装置が動き回るのに伴って変化する。ルーティングをサポートするため、ＦＡＭは、ＦＡＭ変換レコードを利用する（図４を参照して説明される。）。好ましくは、初期ＦＡＭは、後述のように装置用のＨＡＭの役割を実行するが、このことは本発明の必須要件ではない。
【００３４】
アプリケーションサーバ３００は、装置が通信する相手側のエンドポイントである。コネクションの期間中、エンドポイントは固定される。或いは、アプリケーションサーバ自体は、専用のＦＡＭ及びＨＡＭを備えたモバイル装置でもよい。そのためには、固定の公開されたルーティング可能なアドレスを周知のサービスのためのマスカレードアドレスとして使用することが必要である。
【００３５】
ローミング調整器３２０は、ＨＡＭとＦＡＭの接続性及び発見、並びに、コネクション移動（即ち、ハンドオフ）を可能にさせる。好ましい実施例において、ローミング調整器は、システム内の様々なネットワークアクセスポイントにネットワーク接続されたサーバコンピュータに組み込まれる。
【００３６】
本発明によれば、ＨＡＭ及びＦＡＭは、ネットワーク・アドレス変換の概念に基づく技術を使用して、ロケーション非依存型パケットルーティングを可能にさせる。これを実現するため、ＨＡＭ及びＦＡＭは、サポートするコネクション毎に、夫々、ＨＡＭ変換レコード及びＦＡＭ変換レコードを保持する。以下で説明するように、ＨＡＭ変換レコードは、ＨＡＭ変換テーブルに集合的に蓄積され、ＦＡＭ変換レコードは、ＦＡＭ変換テーブルに集合的に蓄積される。
【００３７】
本発明の好ましい一実施例で使用されるＦＡＭ変換レコードのフォーマットは図４に示されている。ＦＡＭ変換テーブルは、外向きパケットがＨＡＭによって割当てられたマスカレードアドレス及びマスカレードポートから出て来た場合に、ＦＡＭがクライアントからのコネクション上の外向きパケットを書き換えさせる。クライアントからのパケットの受信時に（図３のステップ３５０ａを参照）、クライアント（送信元）及びサーバ（宛先）のアドレス及びポート番号は、対応したＦＡＭ変換レコードを検索するため（好ましくはインデックスとして）使用され、ＦＡＭ変換レコードに保存されたマスカレードアドレス及びポート番号は、クライアントの実際のアドレス及びポート番号の代わりに使用される（図６を参照してより詳細に説明される）。ＦＡＭ変換レコードは、適合したＦＡＭアドレス及びポート番号（従って、マスカレードアドレス及びポート番号）をもつ保存されたレコードを検索し、ＦＡＭの代わりに宛先としてクライアントを使用することにより（図７を参照して後で詳述される）、ＦＡＭが内向きパケットをクライアントアドレス及びポートに転送できるようにさせる（ステップ３６０ｃを参照）。
【００３８】
尚、図４、５及び８に示された例示的なテーブルフォーマットは、プロトコル識別子のためのエントリーを含むが、この情報はオプション的であり、多数のプロトコル（例えば、ＴＣＰとＵＤＰの両方）をサポートするシステムの場合に限り要求される。また、テーブルは、本発明の概念から逸脱すること無く、図４、５及び８に示されたフィールドよりも多数のフィールドを収容し得ることに注意する必要がある。
【００３９】
本発明の好ましい実施例で使用されるＨＡＭ変換レコードのフォーマットは図５に示されている。これらのＨＡＭ変換レコードは、ＨＡＭが内向きパケットを適当なＦＡＭへ転送できるようにさせる。この適当なＦＡＭは、次に、パケットをクライアントへ転送可能である。サーバから内向きパケットを受信した後（ステップ３６０ａを参照のこと）、ＨＡＭは、マスカレードアドレス及びポート番号を使用し、パケットに含まれるアドレス及びポート番号と一致するサーバアドレス及びポート番号を有するＨＡＭ変換レコードを検索する。ＨＡＭ変換レコードに保存されたＦＡＭアドレス及びポートは、マスカレードアドレス及びポートの代わりに使用され、パケットはこのＦＡＭへ転送される（ステップ３６０ｂを参照せよ）。
【００４０】
図５には示されていないが、ＨＡＭ変換レコードの代替的な実施例は、オプション的に、（１）コネクションに関連し、ＨＡＭがコネクションのためのマスカレードアドレス及びポート番号を割当てたときにＨＡＭが認識している実際のクライアントアドレス及びクライアントポート、及び／又は、（２）各エントリー内の多数のＦＡＭアドレス及びＦＡＭポートを含む。
【００４１】
多数のＦＡＭアドレス及びポートは、二つのケースで存在する。第一に、クライアントが一方のＦＡＭから別のＦＡＭへ移動するとき、多数のＦＡＭが一時的にこのコネクションと関連付けられる。更に、クライアントは、静止しているときでも、多数のネットワークアクセスポイント又はルータと同時に通信する能力を備えている。クライアントは、多数のアクセスポイントと関係を確立し、これらのアクセスポイントを経由してネットワークとの間でパケットを送受する。したがって、多数のＦＡＭが特定のコネクションに対して存在し、全てのＦＡＭはパケットをクライアントへ転送する能力を備えている。特定のパケットをルーティングするため二つ以上のＦＡＭを利用可能である場合、ＨＡＭは、（例えば、ランダムにＦＡＭを選択する技術を含む）競合解消技術を使用して、利用可能なＦＡＭからＦＡＭを選択する。これらの競合解消技術は本発明の一部を形成しない。好ましくは、多数のＦＡＭの存在は、図６を参照して後述されるように、コネクション・ルーティング・テーブルのエントリーからも知ることができる。
【００４２】
図６には、本発明の好ましい一実施例に従って、クライアントからサーバへパケットが伝送される状況を示すフローチャートである。この処理は、図３のステップ３５０ａ及び３５０ｂに対応する。ステップ６００において、クライアントは、送信元がクライアントのＩＰアドレス及びポートであり、宛先がサーバのＩＰアドレス及びポートであるＩＰパケットを送信する。このパケットは、既に確立されたコネクションのパケットでもよく、或いは、（ＴＣＰ  ＳＹＮ、或いは、ＵＤＰストリームの最初のパケットのような）接続要求パケットでもよい。このパケットは、クライアントの現在のＦＡＭへ達するリンク上で伝送される。ＦＡＭのＭＡＣアドレスは、宛先ＭＡＣアドレスとしてパケットに設けられる。このＭＡＣアドレスは、アドレス・リゾリューション・プロトコル、即ち、ＡＲＰのような従来技術を使用してクライアントへ知らされる。或いは、ブロードキャストＭＡＣアドレスが使用される。ステップ６１０において、ＦＡＭは、パケットを受信し、パケットから、送信元アドレス及びポートと、宛先アドレス及びポートを抽出する。ステップ６２０において、ＦＡＭは、ＦＡＭ変換レコードを検索するため、ＦＡＭ変換テーブルにアクセスする（図４を参照のこと）。ＦＡＭ変換テーブルのクライアントアドレス及びポートとサーバアドレス及びポートは、ステップ６１０で抽出された送信元アドレス及びポートと、宛先アドレス及びポートと一致する。
【００４３】
ステップ６３０において、適合するＦＡＭ変換レコードが発見されたかどうかを判定する。ステップ６３０の判定結果が否定的である場合、ステップ６７０で、ＦＡＭは、当該クライアントと当該サーバの間に既にコネクションが存在するかどうかを判定し、そのコネクションためのＦＡＭ変換レコードを確立するため、ルーティング調整器に連絡を取る（この処理は図１０に詳細化されている。）。判定ステップ６７５において、ＦＡＭ変換レコードが作成されたかどうかを判定する。判定ステップ６７５に対する回答が否定的である場合、このパケットは、（潜在的な）新しいコネクションを表現し、（ＦＡＭがＨＡＭを兼ねることを試みる）図９に示されたフローに従って処理される（ステップ６８０）。処理はステップ６９０へ進み、ＦＡＭ変換レコードが作成済みであるかどうかが判定される。判定ステップ６９０への回答が否定的である場合、パケットは廃棄され、処理はステップ６９５で終了する。代替的な実施例では、判定ステップ６９０におけるチェックは回避され、処理はそのままステップ６９５へ進んで終了し、パケットは常に廃棄される。この代替的な実施例は、クライアントの接続要求パケットを廃棄するが、クライアントに組み込まれたプロトコルは、典型的に、この廃棄されたパケットを検出し、そのパケットを再送信する。再送信されたパケットは、フローチャートに示されたロジックによって適切な方法で自動的に処理される。
【００４４】
判定ステップ６３０に対する回答が肯定的である場合（即ち、ＦＡＭがこのコネクションについて既に知っているとき）、判定ステップ６７５に対する回答が肯定的である場合（即ち、既にルーティング調整器が認識し、このＦＡＭと連絡を取り始めたローミング装置である場合）、又は、判定ステップ６９０に対する回答が肯定的である場合（即ち、この装置のための新しいコネクションである場合）、このパケットのための有効なＦＡＭ変換レコードが見つけられる（又は生成される）。制御はステップ６４０へ進み、マスカレードアドレス及びポートは、ＦＡＭ変換レコードから抽出される。ステップ６５０において、これらのアドレスは、送信元アドレス及びポートとしてパケットに挿入され（即ち、代用される）、ステップ６６０において、書き換えられたパケットがネットワークで伝送される。処理はステップ６９５で終了する。
【００４５】
このように、クライアントによって送信されたパケットはサーバへ転送されるので、サーバから見た送信元は、実際のクライアントのアドレス及びポートではなく、マスカレードアドレス及びポートである。更に、本発明のＦＡＭの範囲内のアドレス変換技術は、これらの外向きパケットを効率的に処理することが可能である。
【００４６】
図７には、本発明の好ましい一実施例により、サーバから送信されたパケットがクライアントへ配信される状況を説明するフローチャートが示されている。これは、図３のステップ３６０ａ、３６０ｂ及び３６０ｃに対応する。ステップ７００において、サーバはＩＰパケットを送信する。このＩＰパケットの送信元アドレス及びポートはサーバを指定し、宛先アドレス及びポートはコネクションに関連付けられたマスカレードアドレス及びポートを指定する。サーバはマスカレードアドレス及びポートを使用する。その理由は、クライアントによって生成された全てのパケットがこのアドレス及びポートを使用するためＦＡＭによって書き換えられ（図６を参照せよ）、サーバはこのアドレス及びポートが通信相手のクライアントのアドレス及びポートであると確信するからである。
【００４７】
ステップ７０５において、このパケットは、対応したコネクションのためのＨＡＭによって受信され、ＨＡＭは送信元（サーバ）アドレス及びポートと宛先（マスカレード）アドレス及びポートをパケットから抽出する。図９を参照して後述されるように、ＨＡＭは、マスカレードアドレス及びポートを生成する役割を担い、その結果として、マスカレードアドレス及びポートへ送信されたパケットは、通常のＩＰルーティング手段を介してＨＡＭに到達する。ステップ７１０において、ＨＡＭは、パケットからのサーバアドレス及びポートとマスカレードアドレス及びポートに適合したＨＡＭ変換レコードを見つけるため（図５を参照せよ）、ＨＡＭ変換テーブルを検索する。判定ステップ７１５において、ＨＡＭ変換レコードが発見されたかどうかが判定される。判定ステップ７１５に対する回答が否定的である場合、ＨＡＭは、サーバとクライアントの間のコネクションに関連付けられないので、ステップ７８５において、パケットは廃棄される。処理は、ステップ７９５で終了する。
【００４８】
好ましい実施例のフローチャートでは、種々のエラー状況において単にパケットを廃棄することが記述され、これらのエラー状況は、典型的に、クライアントが活発に移動し、テーブルがそのクライアントの新しいロケーションを反映させるために未だ更新されていない状況に対応する。クライアント側のプロトコルのスタックにおける上位レイヤは、典型的に、廃棄されたパケットを検出し、従来技術による改善策を講じる。一実施形態は、これらの廃棄されたパケットに関する情報を記録するように選定する。特に、ステップ７１５からステップ７８５への移行が行われたとき、情報を記録することが望ましい。なぜならば、このような移行は、典型的に起こるべきではなく、サービス拒否攻撃を意味するからである。或いは、このような移行は、クライアントが故障したこと、ＨＡＭ若しくは最近のＦＡＭに通知しないでドメインを離れたこと、又は、ＵＤＰベースのＨＡＭ変換レコードの削除を誘発するタイムアウトが発生したことだけを理由として生じる。
【００４９】
更に図７を参照するに、判定ステップ７１５での判定結果が肯定的である場合、ＨＡＭはこのマスカレードクライアントについての知識があり、判定ステップ７２０において、獲得されたＨＡＭ変換レコードが空（ニル）ではないＦＡＭアドレス及びポートを収容するかどうかが判定される。ＨＡＭがマスカレードクライアントを現時点で取り扱っているＦＡＭがどれであるかについて知識を持たないとき、ＨＡＭ変換レコードのＦＡＭ情報は空である。判定ステップ７２０に対する回答が否定的である場合（即ち、ＦＡＭの割当がなされていない場合）、ステップ７２５において、ＦＡＭアドレス及びポートが、図１２に示されたアルゴリズムに従ってルーティング調整器から取得される。ＦＡＭアドレス及びポートは、図１０のフローに従って（ステップ１０１０〜１０５０を参照せよ）、初期的にＦＡＭによってルーティング調整器へ供給される。判定ステップ７３０において、ＦＡＭアドレス及びポートがこの処理を通じて取得されたかどうかが判定される。判定ステップ７３０における結果が否定的である場合、クライアントは、現時点で何れのＦＡＭとも関連付けられていない。制御はステップ７８５へ進み、パケットは廃棄され、処理はステップ７９５で終了する。
【００５０】
代替的な実施例では、ＨＡＭは、ステップ７２５に示されるように、ルーティング調整器へ問い合わせを実行しない方を選択する。ＨＡＭが直近の期間内に同じコネクション上で類似した問い合わせを実行した場合（ここで、この期間は、固定した設定値でもよく、或いは、コネクションがＦＡＭと関連付けられること無く継続している長さに基づいて動的に判定される）、この場合、ＨＡＭはステップ７３０へ進み、ルーティング調整器から応答を受信していないかのように動作する。この代替的な実施例は高頻度のトラヒックが現在受信範囲外にあるクライアント用のコネクションに到達するとき、ＨＡＭ及びルーティング調整器の負荷を軽減する。
【００５１】
更に図７を参照するに、判定ステップ７２０への回答が肯定的である場合（即ち、ＨＡＭ変換レコードに空ではないＦＡＭエントリーが存在する場合）、又は、判定ステップ７３０への回答が肯定的である場合（即ち、ＦＡＭ情報がルーティング調整器から獲得された場合）、ＨＡＭは、有効なＨＡＭ変換レコード、及び、空ではないＦＡＭアドレス及びポートを見つける。ＦＡＭがステップ７２５においてルーティング調整器を介して識別されたとき、図１２の処理は、後で使用するこのＦＡＭ情報を記憶するため、ＨＡＭ変換レコードを変更する（ステップ１２５０を参照せよ）。ステップ７３５において、ＨＡＭは、ＨＡＭ変換レコードで検出されたＦＡＭアドレス及びポートと一致するように宛先アドレスを書き換える。ステップ７４０において、書き換えられたパケットは、ＦＡＭに向けてネットワーク上を伝送される。ステップ７４５において、ＦＡＭはパケットを受信し、サーバ（送信元）アドレス及びポートと、ＦＡＭ（宛先）アドレス及びポートをパケットから抽出する。ステップ７５０で、ＦＡＭは、ステップ７４５で抽出されたサーバアドレス及びポートとＦＡＭアドレス及びポートに適合するＦＡＭ変換レコードを見つけるため、ＦＡＭ変換テーブルを検索する。判定ステップ７５５において、適合したＦＡＭ変換レコードが発見されたかどうかを判定する。判定ステップ７５５に対する回答が否定的である場合、クライアントはこのＦＡＭに関連付けられることがなくなり、パケットは廃棄され（ステップ７９０）、処理はステップ７９５で終了する。
【００５２】
図７に関して説明を続けると、判定ステップ７５５に対する回答が肯定的である場合、クライアントは、このＦＡＭを使用し続け、ステップ７６０で、ＦＡＭは、ＦＡＭ変換レコードで見つけられたクライアントアドレス及びポートと一致するようにパケットの宛先アドレスを書き換える。ステップ７６５において、書き換えられたパケットは、宛先がクライアントである外向きリンク上を伝送される。この処理はステップ７９０で終了する。
【００５３】
このようにして、サーバは、マスカレードアドレスへ向けてトラヒックを送り、ＨＡＭ及びＦＡＭは、協働して、パケットをクライアントの現在ロケーションへルーティングする。クライアントが移動し、現在のコネクションのため先に使用されたＦＡＭとは異なる別のＦＡＭによって取り扱われるようになった場合、新しいＦＡＭは、（ルーティング調整器と協働する）ＨＡＭによって自動的かつ効率的に見つけられる。更に、ＮＡＴ技術を適用することによって、ＨＡＭ及びＦＡＭの性能は最大限に活用され、従来技術のモバイルホスト解決方式の場合に持ち込まれた付加的なパケット損、フラグメント化、及び、エラー状態は、除去される。
【００５４】
コネクションが確立されたとき（例えば、ＴＣＰコネクション又はＵＤＰストリームの最初のパケットがクライアントとサーバの間で送信されたとき）、セットアップ処理が実行され、ＨＡＭが割当てられ、初期ＦＡＭが指定される。尚、ＵＤＰコネクションは、クライアントアドレス及びポートとサーバアドレス及びポートの間で伝送されるＵＤＰパケットのシーケンスとして定義される。ＵＤＰはコネクションレス型であるため、このコネクションは間接的であり、好ましい実施例によれば、あるタイムスロット期間に亘ってトラヒックがコネクション上を送信されなくなると、コネクションは終了する。ユーザがネットワークを動いて回るとき、コネクションは、ユーザの近くに配置された別のＦＡＭに関連付けられる必要がある。このローミングは、ＦＡＭが指定されることを要求し、（図７を参照した上述のＮＡＴサービスを提供するため）ＦＡＭがコネクション用のマスカレードアドレス及びポートについての知識をもつことを要求し、ＦＡＭがコネクション用のアドレス及びポートを割当てることを要求し、コネクションのためのＦＡＭのアドレスと割当てられたポートに関してＨＡＭに通知されることを要求する。ＨＡＭ変換レコード及びＦＡＭ変換レコードの内容を確定し保持するこれらの変更は、ルーティング調整器を用いて調整される。コネクションセットアップ及びローミングに係る機能は、以下で図８乃至１３を参照して説明する。
【００５５】
ルーティング調整器はコネクションテーブルを保持し、コネクションテーブルには、アクティブなＴＣＰ又はＵＤＰコネクション毎に１個のコネクションテーブルレコードが収容される。図８は、本発明の好ましい一実施例によるコネクションテーブルレコードのフォーマットの一例の説明図である。コネクションテーブルレコードは、クライアントとサーバのアドレス及びポート、マスカレードアドレス及びポート、並びに、ＨＡＭの識別情報（例えば、ネットワーク・アドレス）を収容する。更に、各コネクションテーブルレコードは、０個若しくは１個以上のＦＡＭレコードを含み、各ＦＡＭレコードは、ＦＡＭ識別情報（例えば、ネットワーク・アドレス）と、ＦＡＭによってコネクションに割当てられたアドアドレス及びポートを含む。コネクションテーブルレコードは、多数のＦＡＭレコードを含む場合もあり、ＦＡＭレコードは、クライアントがそのコネクションでパケットを送信するため現在使用しているＦＡＭ毎に１個ずつ設けられる。これに対して、既に説明した状況では、２個以上のＦＡＭが特定のコネクションに付与されている。
【００５６】
図９には、本発明の好ましい一実施例により、パケットがクライアントによってサーバへ最初に送信されたときにコネクションが確立される状況を説明するフローチャートが示されている。図６に示されている通り、この処理は、ＦＡＭがクライアントによって送信されたパケットを受信し、ＦＡＭが、固有のＦＡＭ変換テーブル内でＦＡＭ変換レコードを見つけられないか、又は、ルーティング調整器に連絡を取ることによってもＦＡＭ変換レコードを見つけられない場合に行われる。ステップ９００では、この新しいコネクションのためのＨＡＭとしての機能を果たすホストが判定される。好ましい実施例では、ＨＡＭの役割は、最初に外向きパケットを受信し、処理したホスト（即ち、ＦＡＭ）によって行われる。しかし、代替的な実施例では、ＨＡＭの役割は、ルーティング調整器若しくはその他の固定ホストによって行われる。或いは、別のホスト（例えば、ユーザの通常のロケーションの近傍、ユーザのオフィス、又は、ユーザの専用管理ドメインに設置されている可能性が高いホスト）を選択してもよく、その場合、動的な要因が使用される。このような動的な要因の値は、従来技術を使用して見つけられる。例えば、ＭＡＣアドレスは、蓄積されたテーブル内でユーザと関連付けられるか、又は、ユーザは、認証若しくはリンク確立処理中に送信された情報から識別される。ユーザの識別情報は、動的な選択処理の際に使用することができるエントリーを収容したコンフィギュレーションテーブル若しくは優先テーブルを調べるために使用される。コネクションを最初に承諾したＦＡＭ以外のＨＡＭを指定するための判定は、例えば、アクセスポイント上でのＣＰＵ負荷若しくはネットワーク負荷を軽減するために、管理ポリシーに応じて行われる。或いは、アクセスポイントが故障し、若しくは、スイッチがオフにされた場合に状態が失われる危険性を緩和するため、永続的なコネクションを中央サーバへ移す方が好都合である。このＨＡＭ割当ポリシーは、コネクションが使用しているネットワークポートに基づいて行われる。例えば、ＴＥＬＮＥＴポート（ポート２３）へのコネクションは、ルーティング調整器へ自動的に渡される。
【００５７】
判定ステップ９１０において、指定されたＨＡＭホストがローカルホストであるかどうかが判定される。判定ステップ９１０における回答が否定的である場合、ステップ９８０で、指定されたＨＡＭホストは、コネクションのためのクライアントとサーバのアドレス及びポートが通知される。ＨＡＭホストは、この通知の受信後、図９のアルゴリズムを実行する。ＨＡＭホストへの通知後、処理は、ステップ９９０で終了する。このリダイレクトＨＡＭは、クライアントのＦＡＭになり、次に、通常の方法で（図１０のアルゴリズムに従って）ルーティング調整器からクライアントのためのマスカレード情報の知識を得る。
【００５８】
尚、リダイレクトされたホストによる図９の後続の呼び出しは、異なるＨＡＭホストの選択を可能にさせる。一実施態様における選択ポリシーは、無限ループに入ることなく終了することが保証されるべきである。本発明のハンドオフポリシーは大域的に管理されているので、無限ループは出現しない。
【００５９】
判定ステップ９１０における回答が肯定的である場合、処理はステップ９２０へ続き、ローカルＨＡＭホストは、クライアントとサーバの間でのコネクションのためのマスカレードアドレス及びポートを選択する。マスカレードアドレスは、従来技術の既存ＩＰルーティング技術に従って、パケットをこのローカルＨＡＭホストへ運ぶアドレスでなければならない。ポートは、他のアクティブなコネクションと共有すべきでない。好ましい実施例によれば、先行のコネクションが終了した後にある期間が経過するまで、ポートは新しいコネクションによって再使用されない。これにより、先行のコネクションからの旧いパケットが新しいコネクションに偶然にルーティングされる可能性が減少する。好ましくは、マスカレードアドレスは、ＨＡＭ自体の公開アドレスであり、唯一性（独自性）が独自ポート番号の選択によって付与されるべきである．或いは、ＨＡＭは多数の公開アドレスを保有する場合があり、ＨＡＭは全ての公開アドレスからポート番号を割当てる。この代替的な解決手法は、付加的な拡張性を付与する。より広範囲のアドレスとポートの組合せが割当のため利用可能であるため、より多くのコネクションをサポートすることができる。更に、ＨＡＭが多重処理ホストである場合、多重マスカレードアドレスの使用によって、異なるプロセッサを各アドレスに割当てることが可能になる。
【００６０】
ステップ９３０において、ＨＡＭは、新しいコネクションに関する知識をルーティング調整器に通知する（クライアントアドレス及びポート、サーバアドレス及びポート、マスカレードアドレス及びポート、並びに、ＨＡＭ識別情報を与える）。ステップ９３５において、この通知の受信後に、ルーティング調整器は、コネクションに対するコネクションテーブルレコードを確立する。ここで、このコネクションテーブルレコードには、最初、ＦＡＭレコードが収容されていない。ステップ９４０において、ＨＡＭは、コネクションに対してＨＡＭ変換レコードを作成し、レコードをローカルＨＡＭ変換テーブルに挿入する。上述の通り、好ましい実施例のＨＡＭ変換テーブルレコードは、送信元のクライアントのアドレス及びポートを収容しないが、代替的な実施例では、この情報も保持される。ＦＡＭアドレス及びポートは、この新たに作成されたレコード内で空（ニル）に設定される。制御はステップ９５０へ渡され、ローカルＨＡＭホストは、それ自体で、（図１０のロジックに従って）コネクションのためのＦＡＭとして確立する。
【００６１】
図１０を参照するに、アクセスポイント（又は、ルータ若しくはブリッジ）が、ＦＡＭ変換レコードが存在しないコネクション上でクライアントからパケットを最初に受信するときに行われるステップの好ましい一実施例を説明するフローチャートが示されている。このような状況が出現するのは、例えば、クライアントが動き回り、クライアントが、既に確立され、異なるＦＡＭを使用していたコネクション上でパケットを送信するときである。図６に示されるように、ＦＡＭは、ＦＡＭ変換レコードを作成し、次に、パケットを転送する際にこのＦＡＭ変換テーブルを使用するため、マスカレードアドレス及びポートに関する情報を受信しなければならない。コネクションは既に確立されているので、ＨＡＭは、マスカレードアドレス及びポートと共に、既に割当てられている。この状況は、初期ＦＡＭを設定するため、新しいコネクションの場合にも生ずる（この場合、図１０は図９から呼び出される）。
【００６２】
ステップ１０００において、ＦＡＭは、クライアントとサーバの間にこのコネクションのためのＦＡＭアドレス及びポート番号を割当てる。割当てられたアドレスは、可能性のある任意のＨＡＭからＦＡＭホストへネットワークでルーティング可能でなければならない。ＦＡＭアドレスとポートの組合せは、ＦＡＭホストがＦＡＭ若しくはＨＡＭとしての機能を果たす他のコネクションに、割当済みであってはならない。好ましくは、ＦＡＭアドレスは、ＦＡＭ自体のアドレスであり、独自ポート番号の選択によって唯一性（独自性）が与えられるべきである。或いは、ＦＡＭは、多数のアドレスを保有し、全てのアドレスからポート番号を割当てる。この代替的な手法は、付加的な拡張性を提供する。より広範囲のアドレスとポートの組合せが割当のため利用可能であるので、より多くのコネクションをサポートすることができる。更に、ＦＡＭが多重処理ホストである場合、多数のＦＡＭアドレスの使用によって、異なるプロセッサを各アドレスに割当てることが可能になる。
【００６３】
生成されたＦＡＭアドレスとポートの組合せは、ルーティング調整器へ通知され、次に、ＨＡＭに通知される（図７を参照のこと）。ＦＡＭアドレス及びポートは、コネクションに固有であるため、ＦＡＭは、クライアントを宛先とするパケットに適用されるべき正しいＦＡＭ変換レコードを識別するため、すなわち、使用すべきクライアントアドレス及びポートを識別するため、その組合せを使用することができる。好ましい実施例において、サーバのアドレス及びポートと、ＦＡＭのアドレス及びポートの両方は、偽のパケットがクライアントへ転送されないことを保証するため、ＦＡＭがそのＦＡＭ変換レコードにアクセスするときにチェックされる（クライアントは、典型的に、このようなパケットを受信した場合には、このようなパケットを単に廃棄する）。しかし、ＦＡＭアドレスが固定であることがわかっている場合、代替的な一実施例では、専用のＦＡＭ変換テーブル内でのＦＡＭアドレスの保持及び／又は比較が省かれる。
【００６４】
ステップ１０１０において、ＦＡＭは、現在のＦＡＭになるための要求をルーティング調整器へ送信する。この要求には、クライアント側アドレス及びポートと、サーバ側アドレス及びポートと、ＦＡＭ識別情報と、ＦＡＭ側アドレス及びポートとが含まれる。クライアント側アドレス及びポートと、サーバ側アドレス及びポートは、図６のステップ６１０において、クライアントによって送信されたパケットからＦＡＭによって抽出されている。ステップ１０２０において、ルーティング調整器は、ＦＡＭ要求を受信し、そのパラメータを抽出する。ルーティング調整器は、次に、コネクションテーブルから、クライアント側アドレス及びポートとサーバ側アドレス及びポートがこのコネクションのためにＦＡＭによって与えられたクライアント側アドレス及びポートとサーバ側アドレス及びポートと一致するコネクションテーブルレコードを検索する（ステップ１０３０）。判定ステップ１０４０において、適合したコネクションテーブルレコードが発見されたかどうかを判定する。
【００６５】
図１０に関する説明を続けると、判定ステップ１０４０に対する回答が否定的である場合、本発明によれば、このコネクションは、このクライアントとサーバの間の既存コネクションではないので、要求が拒絶された旨の通知がＦＡＭへ返信される（ステップ１０７０）。ステップ１０８０において、ＦＡＭは、この要求中で与えられたＦＡＭ側アドレス及びポートの割当を取り消し、処理はステップ１０９０で終了する。
【００６６】
更に図１０を参照するに、判定ステップ１０４０の判定結果が肯定的である場合、ルーティング調整器は、新しいＦＡＭレコードをコネクションテーブルレコードに追加する（ステップ１０５０）。このＦＡＭレコードは、ステップ１０１０で送信されたＦＡＭ要求に与えられたＦＡＭ識別情報とＦＡＭ側アドレス及びポートとを含む。一つ以上のＦＡＭレコードがコネクションテーブルレコードに既に存在する場合、ルーティング調整器は、本発明が実施される特定のシステムに最も適合した順序で、この新しいＦＡＭレコードを挿入する。例えば、新しいＦＡＭレコードは、ＦＩＦＯ（先入れ先出し）順に収容され、或いは、クライアントが近い将来に使用する可能性が最も高いＦＡＭの予測のようなポリシーに基づく順序で収容される（この情報は、本発明の一部を形成しない履歴解析技術を使用して判定してもよい。）。
【００６７】
ステップ１０６０において、ルーティング調整器は、ＦＡＭへ返信し、ＨＡＭ識別情報（例えば、そのネットワーク・アドレス）と、このコネクションに関連付けられたマスカレードアドレス及びポートと、を供給する。ステップ１０６５において、ＦＡＭは、ルーティング調整器の応答を受信し、ルーティング調整器によって与えられたＦＡＭ変換レコードを作成する。この処理は、次に、ステップ１０９０で終了する。ＨＡＭは、クライアントのマスカレードアドレス及びポートを宛先とするパケットの受信後に、図７のロジックに従って、この新しいＦＡＭについての知識を動的に取得し、そのパケットを適当なＦＡＭへ自動的に転送する。
【００６８】
図９及び１０には、夫々、ＨＡＭ割当処理の特定の実施例、及び、ＦＡＭ変換レコード作成処理の特定の実施例が示されているが、代替的な実施例は、開示された本発明の概念を逸脱すること無く、これらの処理を異なる態様で実現する。例えば、図１０の処理は、ＦＡＭとルーティング調整器の間の２段階の要求として再実現可能である。第１の要求において、ＦＡＭは、コネクションが存在するかどうか（即ち、ＨＡＭがルーティング調整器にコネクションに関して通知済みであるかどうか）の判定をルーティング調整器に要求する。第２の要求において、ＦＡＭは、コネクションに割当てるべきＦＡＭ側アドレス及びポートを供与する。このように、ＦＡＭは、コネクションテーブルレコードの存在が確実になるまでは、ＦＡＭ側アドレス及びポートを割当てる必要が無い（これにより、割当取消ステップ１０８０を取り除くことができる。）。
【００６９】
図６（ステップ６７０）に示されるように、図１０の処理は、コネクションが既に存在するかどうかを判定するため、最初にＦＡＭによって実行される（もし存在するならば、そのためのＦＡＭ変換レコードを設定する。）。コネクションが既設ではない場合（即ち、ステップ６７５における判定の結果が否定的である場合）、図９の処理は、ＨＡＭを確定（及び、新しいコネクションテーブルレコードを作成）するため実行される。代替的な実施例は、図１０の処理が図９の処理の直前に実行されるとき、シーケンスを最適化する。例えば、コネクションテーブルレコードがＦＡＭ要求に対して存在しないと判定された場合（即ち、ステップ１０４０における判定の結果が否定的である場合）、ルーティング調整器は、ＨＡＭ確立要求としてＦＡＭ要求の処理を直ちに開始することができる。この場合、要求元ＦＡＭは、コネクションのためのＨＡＭとして指定される。この代替的な処理は、図１１に示されている。ステップ１１００、１１１０、１１２０、１１３０、１１４０、１１５０、１１６０、１１６５及び１１９０のシーケンスは、図１０の通常の処理パスと一致する。しかし、（ステップ１０４０に対応した）判定ステップ１１４０において、ルーティング調整器が、そのコネクションのためのコネクションテーブルレコードは存在しないと判定した場合、制御はステップ１１７０へ移る。ルーティング調整器は、このコネクションは新しいコネクションであるため、ＦＡＭになることを要求されたホストは、実際にはこのコネクションのためのＨＡＭとして指定されるべきである、と判定する。与えられたＦＡＭ側アドレス及びポートは、そのコネクションのためのマスカレードアドレス及びポートになり、コネクションテーブルレコードが作成される。ステップ１１７５において、要求元ＦＡＭは、コネクションのため指定されたＨＡＭになったことを通知される。ステップ１１８０において、要求元ＦＡＭ（現在のＨＡＭ）は、コネクションのためのＨＡＭ変換レコードを作成する。この処理は、新たに登録されたコネクションのためのローカルＦＡＭ変換レコードを確立するために、ステップ１１８５からステップ１１００へ戻る。
【００７０】
本発明の更に別の代替的な実施例において、図１０の処理は、ＦＡＭとＨＡＭの間の直接的な通信として再実現される。これを実現するため、ルーティング調整器は、（図９の処理に従って）新しいコネクションテーブルレコードが作成されたときには、ＨＡＭの識別情報を放送しなければならない。この手法は、付加的なネットワーク帯域消費とＨＡＭ上の付加的な負荷を犠牲にして、ルーティング調整器上の処理負荷を軽減する。
【００７１】
図１２を参照するに、ＨＡＭがコネクションと関連付けられた現在のＦＡＭ側アドレス及びポートに関する情報を検索する状況を説明するフローチャートが示されている。サーバからパケットを受信したＨＡＭは、このパケットの転送先のＦＡＭを知る必要がある。この処理は、ＨＡＭがサーバ側アドレス及びポート番号、並びに、マスカレードアドレス及びポート番号に一致するＦＡＭ変換レコードを保有するとき、図７のステップ７２５から呼び出されるが、そのレコード内のＦＡＭ側アドレス及びポートは、ニル（空）値に設定される。ステップ１２００において、ＨＡＭは、ルーティング調整器に要求を発行する。この要求には、マスカレードアドレス及びポートが含まれる。或いは、ＨＡＭ変換レコードがクライアント側アドレス及びポートを含む場合、ＨＡＭは、最初に、内向きパケット用のクライアント側アドレス及びポートを決定し、その情報とサーバ側アドレス及びポートを、マスカレードアドレス及びポートの代わりに、或いは、マスカレードアドレス及びポートに加えて供給することができる。ステップ１２１０において、ルーティング調整器は、ＨＡＭ要求を受信し、その要求からパラメータを抽出する。ルーティング調整器は、次に、コネクションテーブルから、マスカレードアドレス及びポート（この情報が得られた場合には、サーバ側アドレス及びポート、並びに、クライアント側アドレス及びポート）がＨＡＭによって提供されたマスカレードアドレス及びポートに一致するコネクションテーブルレコードを検索する（ステップ１２２０）。好ましくは、ルーティング調整器は、コネクションテーブルに索引を付けるための鍵として、マスカレードアドレス及びポートを使用するが、サーバ情報及びクライアント情報を使用しても構わない。マスカレード情報だけを使用して一致したレコードを見つけたとき、ルーティング調整器は、好ましくは、サーバ側アドレス及びポートを抽出された値に対して確認する。不一致は、パケットの著しい遅延、返答攻撃、或いは、不正パケットのようなエラー状態を表す。
【００７２】
判定ステップ１２３０で、一致したコネクションテーブルレコードが発見されたかどうかが判定される。
【００７３】
図１２に関して更に説明すると、判定ステップ１２３０に対する回答が否定的である場合、エラーが発生しているので、ステップ１２８０において、エラーメッセージがＨＡＭへ返信される。ステップ１２８５において、ＨＡＭはエラー応答を受信する。この処理はステップ１２９５で終了する。同図には示されていないが、ＨＡＭは、オプションとして、このエラーを処理するため様々な操作を実行できることが分かる。例えば、ＨＡＭは、コネクションに対応するＨＡＭ変換レコードを削除し、図９に示された手続に従ってＨＡＭとして再確立する場合がある。
【００７４】
図１２に関して説明を続けると、判定ステップ１２３０への回答が肯定的である場合（即ち、ルーティング調整器がこのコネクションについて知識を有する場合）、ステップ１２４０において、ルーティング調整器は、ＨＡＭに対する応答メッセージを生成する。この応答メッセージは、コネクションテーブルレコードに収納されているＦＡＭレコードのリストを格納する。ステップ１２５０において、ＨＡＭは、応答メッセージを受信し、受信したＦＡＭアドレス及びポート（もし存在するならば）を反映させるため、ＨＡＭ変換レコードを更新する。処理は、ステップ１２９５で終了する。
【００７５】
好ましくは、ルーティング調整器がステップ１２２０の処理中に二つ以上のＦＡＭレコードを検出した場合、このような全てのエントリーは、ステップ１２４０でＨＡＭへ通知される。ＨＡＭは、そのＨＡＭ変換レコードを更新するため、（例えば、インプリメンテーション固有のポリシーに基づいて）これらのエントリーのうちの一つ若しくは全部を使用する。或いは、ルーティング調整器は、インプリメンテーション固有ポリシーのような選択アルゴリズムを使用して、見つけられたＦＡＭレコードの一部の部分集合を選択し、ステップ１２４０でこの部分集合を送信する。この代替的な技術を使用するとき、ルーティング調整器は、ＨＡＭに対して公開されているＦＡＭを選択的に制御することが可能である。
【００７６】
好ましい実施例において、ＨＡＭは、必要に応じて、漸進的に（即ち、図７のステップ７２０から図１２の技術を呼び出すことによって）ＦＡＭアドレス及びポート割当に関する知識を取得する。しかし、本発明の代替的な実施例において、ルーティング調整器は、ＦＡＭ情報を適切なＨＡＭへ直接的に送信することを開始（プッシュ）する。例えば、図１０に示された処理の終了後（ここで、新しいＦＡＭレコードは、ステップ１０５０で、図９のステップ９３０においてＨＡＭからの通知の際に最初に作成されたコネクションテーブルレコードに追加され）、ルーティング調整器は、新しいＦＡＭに関する情報をＨＡＭへ直ちに通知する場合がある。本発明の他の代替的な実施例の場合、ルーティング調整器は、ＦＡＭ更新情報を一時的に記憶し、多数のＦＡＭ更新情報を一つの通知の中に収容する。この通知は、ユニキャスト、マルチキャスト、或いは、ブロードキャストされる。本発明の更に別の実施例の場合、ＨＡＭが特定のコネクションについてのＦＡＭ情報を要求するとき、ルーティング調整器は、応答として、ＨＡＭが管理している他のコネクションに対して発生した他の関連したＦＡＭ更新情報についての情報を供給するように選択する。
【００７７】
クライアントがＦＡＭと通信しなくなった場合、そのＦＡＭは、ＨＡＭによって更なるパケットが自分宛にルーティングされないことを保証する必要がある。さもなければ、これらのパケットは、確実に失われる（図７のステップ７９０を参照のこと。）。図１３を参照するに、クライアントがＦＡＭとの通信を終了するときに行われるステップの好ましい一実施例が示されている。このコネクション終了は明示的である（例えば、この通信リンクレベルで送信された「終了」メッセージ、「シャットダウン」メッセージ、又は、「切断」メッセージのような形式によって引き起こされる。）。ステップ１３００において、ＦＡＭは、ルーティング調整器へ通知を送信する。このメッセージは、クライアントアドレス及びＦＡＭ識別情報を含む。ステップ１３１０において、ルーティング調整器は、通知を受信し、収容されているパラメータを抽出する。判定ステップ１３２０において、ＦＡＭ通知に与えられたクライアントアドレスと一致するクライアントアドレスをもち、ＦＡＭ通知に与えられたＦＡＭ識別子と一致するＦＡＭ識別子を有するＦＡＭレコードと関連付けられているコネクションテーブルレコードが存在するかどうかが判定される。この判定ステップ１３２０の判定結果が否定的である場合、ルーティング調整器は、クライアントを見つけ出すための要求のためこのＦＡＭを使用することがなく、処理はステップ１３９０で終了する。
【００７８】
図１３に関して説明を続けると、判定ステップ１３２０への回答が肯定的である場合、ステップ１３３０において、ルーティング調整器は、コネクションテーブルレコードからＦＡＭレコードを削除する（このＦＡＭレコードのＦＡＭ識別子は、ＦＡＭ通知内のＦＡＭ識別子と一致する。）。ステップ１３４０において、ルーティング調整器は、好ましくは、コネクションテーブルレコードに関連付けられたＨＡＭへ通知を送信する。この通知は、マスカレードアドレス及びポートと、ＦＡＭアドレス及びポートを含む。ＨＡＭ変換レコードがクライアントアドレス及びポートを保持する他の実施例では、この通知は、マスカレード情報の代わりに、或いは、マスカレード情報に加えて、サーバアドレス及びポートとクライアントアドレス及びポートを含む。ステップ１３５０において、ＨＡＭは、この通知を受信し、パラメータを抽出する。ＨＡＭは、通知に含まれるマスカレードアドレス及びポートに対応する（もし与えられているならば、サーバアドレス及びポートとクライアントアドレス及びポートにも対応する）ＨＡＭ変換レコードを検索する（ステップ１３６０）。判定ステップ１３７０において、ＨＡＭが、与えられたＦＡＭアドレス及びポートを収容した一致するＨＡＭ変換レコードを発見したかどうかが判定される。判定ステップ１３７０に対する回答が肯定的である場合、ステップ１３８０において、与えられたＦＡＭアドレス及びポートが獲得されたＨＡＭ変換レコードから削除される（即ち、フィールドは空にセットされる。）。次に、制御は判定ステップ１３２０へ戻る。判定ステップ１３７０に対する回答が否定的である場合、ＨＡＭ変換テーブルに対する更新情報は不要であり、制御はステップ１３２０へ戻る。尚、代替的な実施例では、ＨＡＭは、指定されたコネクションに対してＨＡＭ変換レコードが発見されなかった場合、付加的な動作を行うことがある。例えば、ＨＡＭは、ルーティング調整器が対応したコネクションテーブルレコードをそのコネクションテーブルから削除することを要求する。このような最適化の実現法は、当業者にとって明らかである。
【００７９】
このようにして、クライアントがＦＡＭとの接続を断つとき、ルーティング調整器は、クライアント側コネクションがオープンであるために、ＨＡＭがＦＡＭへパケットを転送し続けないことを保証する。
【００８０】
ＨＡＭがコネクションに割当てられた後、そのＨＡＭは、クライアントが外向きパケットを送信し、内向きパケットを受信するために現在使用中のＦＡＭとは無関係に、そのコネクションに対する内向きパケットをルーティングし続ける。しかし、ある種の状況では、ＨＡＭの役割を別のホスト（例えば、別のアクセスポイント又はルーティング調整器）へ移すことが必要になる。例えば、ＨＡＭが故障するか、若しくは、取り外されたとき、別のホストは、このＨＡＭによって前に取り扱われていたコネクションの責任を担う必要がある。この移譲は、コネクションの性質が変化し、代替的なＨＡＭによって供給することだけが可能である付加的なＣＰＵ又はネットワーク帯域リソースを要求する場合にも適切である。この移譲を実現するため、新しいＨＡＭは、ＨＡＭとしての役割を担うことが想定されるコネクション毎に以下のステップを実行する。
【００８１】
第一に、新しいＨＡＭは、未だマスカレードＩＰアドレスを引き継いでいないならば、マスカレードＩＰアドレスを引き継ぐ。このＩＰアドレスの引き継ぎは、マスカレードＩＰアドレスへ送信されたパケットが新しいＨＡＭホストへルーティングされることを保証する。このＩＰアドレス引き継ぎ処理は、従来技術において十分に確立されている。新しいＨＡＭが旧いＨＡＭと同じＬＡＮに存在する場合、ＩＰアドレスが新しいＨＡＭのＬＡＮアドレスに関連付けられるように新しいＡＲＰ更新情報を送信するだけでよい。新しいＨＡＭが異なるＬＡＮに存在する場合、ルーティングテーブルを更新する必要がある。
【００８２】
第二に、新しいＨＡＭは、コネクションに対するＨＡＭ変換レコードを確立する。これは、移譲されたコネクションに対応するコネクションテーブルレコードから必要な情報を取得することによって行われる。ＦＡＭレコードがコネクションテーブルレコードと関連付けられている場合、新しいＨＡＭ変換レコードはＦＡＭ情報を収容する必要がある。図９及び１０のアルゴリズムは、ルーティング調整器から要求された情報を獲得するためオプションとして使用される。
【００８３】
最後に第三に、新しいＨＡＭは、パケットを現在のＦＡＭへ転送する方式を決定するため、ＨＡＭ変換レコードを使用することにより、コネクションのための新しいＨＡＭとして動作し始める。
【００８４】
図６及び７と図９乃至１３に記載されたフローチャートは、直列的な動作のストリームとして示されているが、代替的な実施例では、殆どのステップは、並列に行われる。例えば、メッセージ送信は、非同期通信を使用して行われるので、送信元は、応答を待ち受けることなく、直ちに処理を継続することが可能である。このことは、特に、通知情報が送信されるときに当てはまる。
【００８５】
ここまでは、本発明は、ネットワークトラヒックを送受する特定のユーザを識別するための手段を設けることなく、かつ、特定のクライアントとの間に生成されたトラヒックをフィルタリングする手段を設けることなく説明した。次に、図１４を参照して、本発明を実施する管理されたネットワーク環境を説明する。クライアント認証モジュール１４０５はクライアント１４００に統合され、サーバ認証モジュール１４２５はアクセスポイント１４２０に統合される。クライアントがアクセスポイントと最初に通信するとき（かつ、有効セッション鍵が二つのリンクエンドポイント間に予め存在しない場合）、クライアント認証モジュールは、ユーザの認証資格（例えば、ユーザ名及びパスワード）を付与するため、サーバ認証モジュールと通信する（ステップ１４１５）。ユーザが（従来技術を使用する認証サーバ１４５０によって）認証されたとき（ステップ１４４５）、サーバ認証モジュール及びクライアント認証モジュールは、リンクレベルの暗号化を可能にするためセッション鍵を取り決める。好ましい実施例において、この鍵は、サーバ認証モジュールによって、或いは、認証サーバによって、クライアントへ与えられる。しかし、代替的な実施例では、アクセスポイントは、マスター鍵(例えば、ＷＥＰ鍵）をクライアントへ配布し、クライアント及びアクセスポイントは、次に、標準的な方法で、マスター鍵を使用してセッション鍵を取り決める。このようにして、クライアントは、ユーザ名及びパスワードに従って認証され、この認証は、クライアント１４１０及びアクセスポイントハードウェア１４３０に組み込まれた暗号化機能を有効に活かすリンクレベルの暗号化の準備を可能にさせる。
【００８６】
認証が行われた後、サーバ認証モジュールは、クライアントのＭＡＣアドレス、セッション鍵、及び、ユーザ名を、セキュア・チャネルを介して、ルーティング調整器１４６０へ供給する（ステップ１４５５）。ルーティング調整器は、これらをルックアップテーブルに格納する。このルックアップテーブルは、セッション鍵を、クライアントが通信を開始する任意の新しいアクセスポイントへ提供するため使用され、かつ、ルックアップテーブルは、フィルタリングモジュール１４３５が特定のクライアント装置のユーザを識別し、次に、そのユーザに適用する適当なフィルタリングポリシーを決定できるようにするため使用される。
【００８７】
更に図１４を参照すると、フィルタリングモジュール１４３５は、アクセスポイント１４２０に組み込まれ、クライアント１４００との間の内向きトラヒックと外向きトラヒックの全てを受信する。これまでに知られていないＭＡＣアドレスを含むパケットがこのフィルタリングモジュールに到達したとき、フィルタリングモジュールは、ユーザの識別情報を決定し、そのユーザ用のフィルタリングポリシーのリストを獲得するため、ルーティング調整器へ要求を発行する。これらのポリシーは、内向きトラヒック及び外向きトラヒックを適切に遮断するため適用される。この技術を使用して、本発明は、アクセス制御およびパケットフィルタリングポリシーを簡単かつ効率的に実現することができる。
【００８８】
図１５を参照するに、本発明の好ましい一実施例に従って、安全な管理されたリンクを確立するため実行されるステップを説明するフローチャートが示されている。ステップ１５００において、クライアントが特定のアクセスポイントとの通信用の有効なリンクレベルの鍵を保有しないことが判定される。この判定は、クライアントが現時点で鍵を保有しない場合、或いは、アクセスポイントが現在の鍵は無効であることをクライアントへ報せた場合になされる。鍵を拒絶する前に、アクセスポイントは、オプションとして、クライアントＭＡＣアドレスに対して現在有効なセッション鍵を判定するため、ルーティング調整器と通信してもよい。
【００８９】
ステップ１５１０において、クライアント認証モジュールは、ユーザ資格をサーバ認証モジュールへ供給するため呼び出される。サーバ認証モジュールは、これらの資格を受信し（ステップ１５２０）、認証サーバへ供給する。ステップ１５３０において、サーバ認証モジュールは、認証サーバから要求を受信する。ステップ１５４０において、認証サーバの応答が肯定的であったかどうかが判定される。
【００９０】
判定ステップ１５４０における結果が否定的である場合、ステップ１５９０において、サーバ認証モジュールが認証を拒絶し、処理は、リンク鍵を確定すること無く、ステップ１５９５で終了する。
【００９１】
判定ステップ１５４０における結果が肯定的である場合、ステップ１５５０へ進み、サーバ認証モジュールは、クライアントからの認証要求を承認し、肯定的な応答をクライアント認証モジュールへ送信する。ステップ１５６０において、セッション鍵がクライアント認証モジュールとサーバ認証モジュールの間で取り決められる（鍵の値を取り決める処理が行われる。）。この処理は、次に、二つの並列パスに分かれる。一方のパスはクライアント側の動作に対応し、もう一方のパスはアクセスポイント側の動作に対応する。ステップ１５７０ａにおいて、クライアント認証モジュールは、取り決められたセッション鍵をクライアント暗号化ハードウェアに供給し、次に、クライアント暗号化ハードウェアは、アクセスポイントを経由して送信されたパケットを暗号化及び復号化するためこのセッション鍵を使用する。クライアント側の処理は、ステップ１５９５で終了する。アクセスポイント側では、ステップ１５７０ｂにおいて、サーバ認証モジュールが取り決められたセッション鍵をサーバ暗号化ハードウェアに供給し、サーバ暗号化ハードウェアは、クライアントへ送信されたパケットを暗号化及び復号化するためこのセッション鍵を使用する。ステップ１５８０ｂにおいて、サーバ認証モジュールは、図１４のステップ１４５５に関して先に説明したルックアップテーブルに記憶されるべきクライアントＭＡＣアドレス、セッション鍵、及び、ユーザ名をルーティング調整器に供給する。この処理はステップ１５９５で終了する。
【００９２】
本発明の代替的な実施例において、システムは、ＴＣＰ経由のコネクション及び（前述の）ＵＤＰ経由のコネクションのような多種類のコネクションをサポートする。この場合、上述の殆どの伝送情報はプロトコル識別子を含む必要があり、テーブル検索は、アドレス及びポートの他にプロトコルＩＤを考慮する必要がある。このタイプのマルチプロトコルサポートを実現するためにフローチャートを変更する方式は、当業者に明らかであろう。
【００９３】
本発明の代替的な実施例では、アドレスとポートの組合せをハッシュ若しくは符号化するように設計的に選択される。この符号化によって、情報のメモリサイズが減少し、様々なテーブルのサイズが縮小し、検索処理の性能が向上する。情報をハッシュ若しくは符号化するこのような方法は、従来技術において周知であり、本発明の状況の範囲内でのこれらの方法の用法、当業者にとって明白であろう。
【００９４】
上述の通り、本発明は、従来技術のホスト移動性の解決手法よりも多数の点で優れている。本発明を用いる場合、ロケーション非依存型パケットルーティング及びセキュア・アクセスを実現するために、クライアント装置又はサーバ上のオペレーティングシステム、ネットワーク用ソフトウェア、或いは、アプリケーションに変更を加える必要がない。ローミング中の装置のためのパケットルーティングは、ネットワーク・アドレス変換技術を使用することによって非常に効率的に実現され、クライアント装置は、現在ロケーションとは無関係に、単一の装置アドレスだけを使用することができるようになる。間接的な、又は、トライアンギュラー式ルーティングは、短期間のコネクション、及び／又は、モバイル式ではないコネクションに対して回避される。一部のＩＰヘッダ情報はルーティングされたパケットに再書込みされ、ＩＰチェックサムの再計算は、（例えば、従来技術において知られているように、変更されたフィールドのビット単位の比較だけを実行することによって）簡単かつ効率的に実行され得る。ＨＡＭ割当は従来技術のように全体的に行われるのではなく、コネクション単位で実行されるので、負荷の平衡化は容易に行われる。ＨＡＭは、必要に応じて、性能を更に最適化するため動的に再割当される。コネクション・ハンドオフは、クライアント及びサーバには気付かれない。ＨＡＭ機能をアクセスポイントに設置することによって分散型実施形態な実現され、ＨＡＭ機能をルーティング調整器に設置することによって集中型実施形態が実現される。ユーザ識別情報は明示的に決定され、ユーザとの間で送受されるパケットをフィルタ処理する機能が得られる。ユーザ認証は、安全なリンクを確立するため、クライアント側及びアクセスポイント側で既存の暗号化ハードウェアの使用を持続する。
【００９５】
関連した発明は、アクセスポイントの集合を含むシステムを規定する。ＩＰアドレスは、これらのアクセスポイント及びコアサーバによって装置へ割当てられる。このシステムは、この時点で装置が使用しているアクセスポイントがどのアクセスポイントであるかとは無関係に、ＩＰアドレスが固定されることを保証する技術と、ユーザ・ロケーション情報をアプリケーションに公表する技術と、を含む。本発明の実施形態は、オプションとして、関連した発明の実施形態と組み合わせることができ、本発明において規定されたルーティング調整器、及び、関連した発明におけるコアサーバは、動的アドレスを割当て、ユーザ・ロケーション追跡を取り扱う等のコアの役割を実行し、パケットを装置へルーティングするルーティング調整器の役割を実行する単一のエンティティ（実体）として実現される。
【００９６】
上記の好ましい一実施例の説明は、本発明を例示することを目的とするものであり、本発明を制限するために構成されたものではない。好ましい一実施例を説明したが、当業者には明らかであるように、開示された本発明の新規性のある事項及び効果から著しく逸脱することなく、この好ましい実施例に多数の変更を加えることが可能である。したがって、このような全ての変更は、本発明の範囲に含まれることが意図されており、本発明は、特許請求の範囲に記載された事項とそれらの均等物だけによって制限される。
【図面の簡単な説明】
【図１】  従来技術で使用されるようなネットワーク・アドレス変換（ＮＡＴ）テーブルのフォーマットの説明図である。
【図２】  従来技術のＮＡＴシステムにより使用される変換技術の説明図である。
【図３】  本発明の好ましい一実施例によるシステムにおける論理コンポーネントの説明図である。
【図４】  本発明の好ましい一実施例によるフォーリン・アドレス・マスカレード・テーブルのフォーマットの説明図である。
【図５】  本発明の好ましい一実施例によるホーム・アドレス・マスカレード・テーブルのフォーマットの説明図である。
【図６】  本発明の好ましい一実施例によるクライアントによって送信されたパケットが宛先サーバへ配布されるロジックを説明するフローチャートである。
【図７】  本発明の好ましい一実施例によるサーバによって送信されたパケットがクライアントへ配布されるロジックを説明するフローチャートである。
【図８】  本発明の好ましい一実施例によるルーティング調整器によって保持されるコネクションテーブルのフォーマットの説明図である。
【図９】  本発明の好ましい一実施例による新しいコネクションの確立を処理するロジックを説明するフローチャートである。
【図１０】  本発明の好ましい一実施例により、パケットが既存コネクションを動き回る装置又は新しいコネクションを確立する装置に到達したときに呼び出されるロジックを説明するフローチャートである。
【図１１】  図１０のロジックの代わりに使用されるロジックを説明するフローチャートである。
【図１２】  本発明の好ましい一実施例により、クライアント装置の変化するロケーションが動的に突き止められるロジックを説明するフローチャートである。
【図１３】  本発明の好ましい一実施例により、クライアントへ向けられたパケットがこのクライアントと関連しなくなったルーティング装置へ送信されることを阻止するため使用されるロジックを説明するフローチャートである。
【図１４】  本発明の好ましい一実施例による安全な管理された環境、及び、ユーザ認証を行うため使用されるフィルタリング技術を説明する図である。
【図１５】  本発明の好ましい一実施例により安全なリンクが確立されるロジックを説明するフローチャートである。
【図１】
0004727126.tif 000002
【図２】
0004727126.tif 000003
【図３】
0004727126.tif 000004
【図４】
0004727126.tif 000005
【図５】
0004727126.tif 000006
【図６】
0004727126.tif 000007
【図７】
0004727126.tif 000008
【図８】
0004727126.tif 000009
【図９】
0004727126.tif 000010
【図１０】
0004727126.tif 000011
【図１１】
0004727126.tif 000012
【図１２】
0004727126.tif 000013
【図１３】
0004727126.tif 000014
【図１４】
0004727126.tif 000015
【図１５】
0004727126.tif 000016