(57)【要約】無線ネットワークを有し、データが多数のアプリケーションから受信され、多数のルートを通してデータをルーティングするための方法が提供される。方法は、多数のルートの利用可能性を確認し、複数のアプリケーション（５２）の中の選択されたアプリケーションからのデータを受信し、選択されたアプリケーションと関連する指定されたルートを決定し、指定されたルートが利用可能であると確認された場合に、指定されたルートを通して受け取られたデータを送信する。更に、多数の無線ネットワークを通してデータをルーティングするためのシステムが提供される。データは各々が特有の送信元ポート番号を有する多数のアプリケーションから送信される。システムは、データを選択されたアプリケーションから受信する選択されたモバイルルータからデータを受信するモバイルルータ（２００）を備える。モバイルルータは、データの１つ以上の特徴に基づいて、どの無線ネットワークを通してデータが送られるべきかを特定する情報を含むポート・ルーティング・テーブル（２５１）を備える。
2005519504.tif 000002
【特許請求の範囲】
【請求項１】
無線ネットワークを有し、データが複数のアプリケーションから受信され、多数のルートを通してデータをルーティングする方法であって、前記方法が
前記多数のルートの利用可能性を確認し、
前記複数のアプリケーションの選択されたアプリケーションからデータを受信し、
前記選択されたアプリケーションと関連する指定されたルートを決定し、
前記指定されたルートが利用可能であると確認された場合に、前記指定されたルートを通して前記受け取られたデータを送信する。
【請求項２】
前記決定が更に、前記選択されたアプリケーションに割り当てられた少なくとも１つのポート番号に基づいて前記指定されたルートを決定する請求項１の方法。
【請求項３】
前記決定が更に、前記選択されたアプリケーションに割り当てられた少なくとも１つのＩＰアドレスに基づいて前記指定されたルートを決定する請求項１の方法。
【請求項４】
前記決定が更に、前記選択されたアプリケーションから受け取られた前記データの少なくとも１つのプロトコルに基づいて前記指定されたルートが決定する請求項１の方法。
【請求項５】
前記指定されたルートが、データが無視されるように指示し、前記送信が更にデータを送信しないことも含むこと請求項１の方法。
【請求項６】
前記指定されたルートがデフォルトルートを含む請求項１の方法。
【請求項７】
前記指定されたルートが代わりのルートを含む請求項１の方法。
【請求項８】
前記決定が更に、受信されたパケットの宛先に関連するポート番号に基づいて前記指定されたルートを決定する請求項１の方法。
【請求項９】
前記決定が更に、受信されたパケットの宛先に関連するＩＰアドレスに基づいて前記指定されたルートを決定する請求項１の方法。
【請求項１０】
前記確認が更に、ルートが利用可能であると確認されたときに、各ルートの利用可能性をホスト・ネットワーク・サーバーに知らせる請求項１の方法。
【請求項１１】
多数の無線ネットワークを通してデータをルーティングするシステムであって、前記データが複数のアプリケーションから送信され、前記システムが、
選択された１つの前記アプリケーションからデータを受信するモバイルルータを備え、前記モバイルルータが、どの無線ネットワークを通して前記データが送られるべきかを前記データの少なくとも１つの特徴に基づいて特定する情報を含むポート・ルーティング・テーブルを備え、前記少なくとも１つの特徴が、ポート番号、ＩＰアドレス、プロトコルの少なくとも１つを備える。
【請求項１２】
前記データが送られる代わりのルートが、データの前記少なくとも１つの特徴に基づいて特定される請求項１１のシステム。
【請求項１３】
前記データが送られるデフォルトルートが、データの前記少なくとも１つの特徴に基づいて特定される請求項１１のシステム。
【請求項１４】
イグノアルートが、データの前記少なくとも１つの特徴に基づいて特定される請求項１１のシステム。
【請求項１５】
前記ポート・ルーティング・テーブル内の前記情報が、ホスト・ネットワーク・サーバーから設定されるとともに、前記モバイルルータ内の前記ポート・ルーティング・テーブルに送り出される請求項１１のシステム。
【請求項１６】
前記モバイルルータが、何れかの無線ネットワークがサービス区域内の状態に入ったときに、ホスト・ネットワーク・サーバーに通知する請求項１１のシステム。
【請求項１７】
多数の無線ネットワークを通してデータをルーティングするシステムであって、前記データが複数のアプリケーションから送信され、前記システムが、
選択された１つの前記アプリケーションからデータを受信するホスト・ネットワーク・サーバーを備え、前記ホスト・ネットワーク・サーバーが、どの無線ネットワークを通して前記データが送られるべきかを前記データの少なくとも１つの特徴に基づいて特定する情報を含むポート・ルーティング・テーブルを備え、前記少なくとも１つの特徴が、ポート番号、ＩＰアドレス、プロトコルの少なくとも１つを備える。
【請求項１８】
多数の無線ネットワークを通したＩＰルーティング動作の特定を可能にするコンピュータプログラムを保存したコンピュータ読取可能な媒体であって、前記媒体が、
各アプリケーションが特有のポート番号を有し、複数のアプリケーションからデータを受信するソース・コード・セグメントと、
アプリケーションのポート番号、ＩＰアドレス、プロトコルの少なくとも１つに基づいて、どの無線ネットワークを通して前記アプリケーションのデータが送られるべきか、及び前記アプリケーションのデータが前記無線ネットワークを通して送られるべきでないかを特定する情報を含むポート・ルーティング・テーブルを保存するソース・コード・セグメントと、
前記複数のアプリケーションからの前記データがルーティングされるべき適切な無線ネットワークを前記ポート・ルーティング・テーブルに含まれる前記情報から決定するソース・コード・セグメントとを備える。
【請求項１９】
前記ポート・ルーティング・テーブルが、ポート・ルート・タイプ・インジケータ・フィールド、ＩＰアドレスフィールド、プロトコル・タイプ・フィールド、ポート番号フィールド、ネットワークＩＤフィールドの少なくとも１つを備える請求項１８の媒体。
【請求項２０】
前記ポート・ルート・タイプ・インジケータが、オルタネートインジケータ、イグノアインジケータ、及びデフォルトインジケータの１つを備える請求項１９の媒体。
【請求項２１】
前記オルタネートインジケータが選択されたときに、データが特定された代わりの無線ネットワークを介して送られる請求項２０の媒体。
【請求項２２】
前記イグノア・ポート・ルート・タイプ・インジケータが選択されたときに、データが送られずに無視される請求項２０の媒体。
【請求項２３】
前記デフォルト・ポート・ルート・タイプ・インジケータが選択されたときに、データがデフォルトネットワークを介して送られる請求項２０の媒体。
【請求項２４】
前記ポート・ルーティング・テーブルが更に、伝送されたデータパケットのプロトコルヘッダ内に、ＩＰアドレスが送信元、宛先、あるいは両方のロケーションに現れるかを示すフィールドを備える請求項１９の媒体。
【請求項２５】
前記プロトコル・タイプ・フィールドが、前記パケットのトランスポート・レベル・プロトコルの型を特定する請求項１９の媒体。
【請求項２６】
前記ポート番号フィールドが、アプリケーションの前記ポート番号を特定する請求項１９の媒体。
【請求項２７】
前記ポート・ルーティング・テーブルが更に、伝送されたデータパケットのプロットコルヘッダ内に、ポート番号が送信元、宛先、あるいは両方のロケーションに現れるかを示すフィールドを備える請求項２６の媒体。
【請求項２８】
前記ネットワークＩＤフィールドが、どのネットワークがデータを送るのに用いられたかを特定する請求項１９の媒体。
【請求項２９】
更に、前記多数の無線ネットワークの利用可能性を確認する利用可能性ソース・コード・セグメントを備える請求項１８の媒体。
【請求項３０】
更に、ルーティング経路が利用可能であると確認されたときに、前記受信したデータを前記適切な無線ネットワークを通して送信する送信ソース・コード・セグメントを備える請求項２９の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願への相互参照）
本出願は、その内容がここに参照として全て明確に組み入れられる２００３年２月２８日に出願された米国特許出願第１０／０８４，０４９号明細書の利益を請求する。
（関連出願への相互参照）
【０００２】
本出願は、２０００年８月３１日に出願され、「多重無線ネットワーク(Multiple Wireless Networks)を通してデータをルーティングするための方法及び装置」と題された米国特許出願第０９／６５２，００９明細書号の部分継続出願であり、その内容は、ここで参照として全て組み入れられる。
【０００３】
本願はまた、２０００年３月１６日に出願され、「遠隔地デバイス(Remote Device)とホストシステムとの間におけるデータのインテリジェントルーティングのための装置及び方法」と題された米国特許第６，１９８，９２０号明細書に関連し、これは１９９７年４月１４日に特許され、「遠隔地デバイスとホストシステムとの間における透過的無線通信(transparent wireless communication)」と題された米国特許第５，７１７，７３７号明細書の部分継続出願である１９９７年９月１７日に出願され、「遠隔地デバイスとホストシステムとの間におけるデータのインテリジェントルーティングのための装置及び方法」と題された米国特許出願第０８／９３２，５３２号明細書の継続出願である。これらの内容はここで参照として全て明確に組み入れられる。
【０００４】
本発明は、広くは無線通信(wireless communications)の分野に関連し、より具体的には、多重無線ネットワークを通した通信に関連する。特に、本発明は、それぞれのアプリケーションに対して多重無線ネットワークを通してより的確なルーティング動作(routing behavior))を選定することに適応性を有する無線ネットワークに属する複数のシステム管理者(system administrators)を設けたポートルーティングに関する。
【背景技術】
【０００５】
現在のところ、米国特許出願第０９／６５２，００９号明細書に開示された無線モバイル・ルーティング・システムは、各モバイルクライアント及びホスト・ネットワーク・サーバーと連携する単独の「デフォルトルート(default route)」のコンセプトに依拠している。このデフォルトルートは、ネットワークプライオリティ(network priority)とネットワークアベイラビリティ(network availability)の組み合わせを通して駆動される。最も優先度が高く、利用可能なネットワークが、トランスポートネットワーク(transport network)となり、全ての通信がホスト・ネットワーク・サーバーにこのトランスポートネットワークを通してルーティグされる。
【０００６】
前述されたシステムは、各モバイルルータに対する他の非デフォルトネットワーク(non-default networks)のステータスをホスト・ネットワーク・サーバーが知るようには設計されていない。言い換えれば、ホスト・ネットワーク・サーバーは現在のデフォルトネットワークのステータスしか知らない。結果的に、システム管理者のアプリケーションに対するルーティング動作を選定するための能力は最小である。
【０００７】
より大きな柔軟性、すなわちインターネットプロットコル（ＩＰ）のルーティング動作を選定するための能力において、より大きなグラニュラリティ(granularity)を有する無線モバイル・ルーティング・システムを提供する必要性が広く存在する。前述の無線モバイル・ルーティング・システムにおけるＩＰルーティングの柔軟性すなわちグラニュラリティを高める方法の１つは、ポートルーティングと呼ばれるコンセプトを通じたものである。
【０００８】
ＩＰポートの機能は、ＩＰ通信の重要な部分である。ＩＰネットワークにおける各コンピュータが特有のＩＰアドレスを有することはよく知られている。したがって、１つのコンピュータがデータを他のコンピュータに送る必要がある場合、他のコンピュータのＩＰアドレスを用いて他のコンピュータに通信(address)する。データはコンピュータ同士の間で送られるのではなく、データはそれらのコンピュータにおいて実行されているプログラムの間で送られる。何故ならば、コンピュータは多数のプログラムを同時に実行しており、それらのプログラムは全てネットワークを通して通信している。コンピュータはどのように、どのデータがどのプログラムのためのものであるかを決定しているのだろうか。答えはＩＰポートである。
【０００９】
インターネットの創始委員会は、コンピュータにおける各アプリケーションは特定のポート番号を通してデータの送受信を行なわなければならないと明記した。殆んどの場合、コンピュータによりデータが送信あるいは受信されるとき、ＩＰポート番号を送受信するとともに、送信・受信ＩＰアドレスの両方を用いる。その結果として、コンピュータにおいてデータが受信されるときにはいつも、コンピュータはどのアプリケーションがそのデータを受信すべきか、実際のパケットに付けられた宛先ポート番号(destination port number)を調べることにより知っている。
【００１０】
殆どの基本的なアプリケーションは、それらのポートをインターネット・アサインド・ナンバー・オーソリティ(http://www.iana.org/)に登録している。それらポート番号を有するアプリケーションの実例には、ウェブブラウジング、ポート８０；セキュア・ウェブ・ブラウジング(secure web browsing)、ポート８０８０；ＴＥＬＮＥＴ、ポート２３；等が含まれる。データの送受信を行なう全てのアプリケーションは、特定のポート番号において送受信を行なうことに注意することは重要なことである。２つのアプリケーションは同じポート番号を共有しない。
【００１１】
ポートとＩＰアドレスの間の関係は、郵便局と私書箱の関係に類似している。米国の郵便局は、多くの私書箱を有する。郵便が送られるとき、郵便局の郵便番号を明示しただけでは十分ではなく、私書箱も明示される必要がある。同様に、あるアプリケーションが別のアプリケーションにデータパケットを送りたいとき、単にそのＩＰアドレスを明示しただけでは十分ではなく；アプリケーションはそのポートも明示する必要がある。
【００１２】
ポート番号は、ファイアウオールやプロキシサーバなど多様なネットワークアプリケーションにおいて用いられている。もし、システム管理者が特定のアプリケーションへのアクセスを制限したいならば、システム管理者はファイアウオールを通して送られることから特定のポート番号を制限することによりそれを行なう。しかし、ポート番号は、送信のために適切な無線ネットワークを選択するときに用いられてはいない。
【００１３】
したがって、無線モバイル・ルーティング・システムのシステム管理者に、少なくともプロトコル、ＩＰアドレス、ポート番号、そしてそのＩＰアドレス、プロトコル、ポート番号に合致するパケットがルーティングされるべき特定のネットワークを含むあるグラニュラリティにおいてポートルーティングを選択する能力を提供することが必要である。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
上記観点から、本発明は、２０００年８月３１に出願された米国特許出願第０９／６５２，００９号明細書に開示された無線モバイル・ルーティング・システムのルート・レジストレーション機能性(route registration functionality)を高める。モバイル・ルーティング・ソフトウェア、ハードウェア、あるいはそれらの組み合わせとして具体化されるであろう本発明は、モバイルルータ機能性を有する各無線クライアントに接続された全てのネットワークの利用可能性について、ホスト・ネットワーク・サーバーが認識することを可能にする。更に、ホスト・ネットワーク・サーバーは、これによりいつモバイルルータがシャットダウンし、利用できるネットワークがないことを知ることができる。また更に、ネットワークサーバーは、より上手く各無線クライアントと各無線ネットワークの状態を追跡することができる。
【００１５】
ポートルーティングでは、モバイルルータは単にホスト・ネットワーク・サーバーにデフォルトネットワークへの変更を通知するだけではなく、モバイルルータは更に、何れかのネットワークが利用可能（あるいは利用不能）となった場合にも、ホスト・ネットワーク・サーバーに常に通知する。これは、ホスト・ネットワーク・サーバー及びモバイルルータの両者が、パケットを適切に代わりの(alternate)非デフォルトネットワークを通してルーティングすることを可能にする。モバイルルータは、それが適切であるならば、デフォルトネットワークを通してパケットをルーティングすることを継続することも可能である。
【００１６】
ポートルーティングの利用例は、いかなるネットワークを通したウェブブラウザのいかなる利用も許可せず、全コンピュータ・エイディド・デザイン（ＣＡＤ）システムのトラフィック(traffic)がどのネットワーク上も素通り可能とするとともに、拡散スペクトルネットワークがサービス区域内にあるときにのみ電子メールアプリケーションが通信することを許可する構成を含む。
【００１７】
本発明の一実施形態は、５種類のフィールドを含むポート・ルーティング・テーブルを提供する。ポート・ルーティング・テーブルは、実際にはホスト・ネットワーク・サーバーとモバイルルータの両方に配置されていてもよい。これは、双方向通信が起こり得る事実を考慮してのことである（すなわち、ホストはパケットをモバイルルータに送信でき、モバイルルータはパケットをホストに返信できる）。フィールドは、それらのパケットに対してモバイルルータが行なわなければならない動作はもちろん、モバイルルータを通る異なる種類のパケットを合致させるための基準を管理者が規定することを可能にする。５種類のフィールドは：
○タイプ・フィールドはルートエントリ（ルート記載事項）(route entry)の種類を特定する。１つの実施形態では、それは、「イグノア(Ignore)」、「オルタネート(Alternate)」、「デフォルト(Default)」の何れかのキーワードを含む。このフィールドは、モバイルルータが指定されたパケットに対して取るべき動作を示す。
○ＩＰアドレス・フィールドは、ルートサーバーから受け取ったパケットのＩＰアドレスを特定する。それは、「全ての」ＩＰアドレス、あるいは特定のＩＰアドレスを表すことができる。もし、具体なＩＰアドレスが入力されると、ユーザはそのＩＰアドレスが、ＩＰヘッダ内の送信元あるいは宛先アドレスフィールド(source or the destination address fields)の何れに現れるかを指定する選択肢を有する。
○プロトコル・タイプ・フィールドは、そのパケットがどのタイプのトランスポート・レベル・プロトコルかを特定する。このフィールドの値は、現在のところＴＣＰ、ＵＤＰ、あるいは両方のみである。むろん、追加的なプロトコルが採用されれば、この追加的プロトコルはプロトコル・タイプ・フィールドに加えられ得る。
○ポート番号フィールドは、ルートサーバーから受け取ったパケットのポート番号を特定する。ポートは、個々のＩＰアプリケーションと関連付けられている。ユーザは全てのポートを指定することができ、あるいは個々のポートを指定できる。ユーザはまた、ポート番号がＴＣＰやＵＤＰのヘッダ内の送信元あるいは宛先ロケーション(source or destination location)に現れるかを指定する選択肢を有する。
○ネットワークＩＤフィールドは、タイプ・フィールドと共同して用いられる。もしユーザが、タイプ・フィールドによって指定される「オルタネート」エントリを生成するならば、ネットワークＩＤフィールドは、指定された基準に合致するパケットをルーティングするためにどのネットワークが利用されるかを指定する。
【００１８】
上記フィールドの利点を用いて、管理者は、あるアプリケーションがデフォルトのルーティングを利用するのか、あるアプリケーションが指定された代わりのネットワークのみを介して機能するのか、特定のアプリケーションがそのデータのルーティングを行なわないのかを指定する自由度を持つ。
【００１９】
本発明の一つの目的からは、無線ネットワークを含む多数のルートを介してデータをルーティングするための方法が提供される。データは多数のアプリケーションンから受け取られる。この方法は、複数のルートの利用可能性を確認し、多数のアプリケーションの選択されたアプリケーションからのデータを受信し、選択されたアプリケーションに関連する指定されたルートを決定し、指定されたルートが利用可能であると確認された場合の受信データの指定されたルートを介して送信する。
【００２０】
本発明の別の目的によれば、決定は更に、選択されたアプリケーションに割り当てられた１つ以上のポート番号に基づく指定されたルートの決定を含む。また、本発明の別の目的では、決定は更に、選択されたアプリケーションに割り当てられた１つ以上のＩＰアドレスに基づく指定されたルートの決定を含む。本発明の別の目的では、決定は更に、選択されたアプリケーションから受け取られたデータの１つ以上のプロトコルに基づく指定されたルートの決定を含む。
【００２１】
本発明の更なる目的によれば、指定されたルートは、データが無視されるように指示する。この場合、送信はデータを送信しないことも含む。本発明の別の目的では、指定されたルートはデフォルトルートを含む。また本発明の更なる目的によれば、指定されたルートは代わりのルートを含む。
【００２２】
本発明の他の目的は、決定が更に、受信されたパケットの宛先に関連するポート番号に基づいて指定されたルートを決定することを含む。本発明の更なる目的は、決定が更に、受信されたパケットの宛先に関連するＩＰアドレスに基づいて指定されたルートを決定することを含む。本発明の別の目的によれば、確認が更に、ルートが利用可能であると確認されたときに、各ルートの利用可能性をホスト・ネットワーク・サーバーに知らせることを含む。
【００２３】
本発明の別の目的は、多数の無線ネットワークを通してデータをルーティングするシステムを含む。システムは、選択されたアプリケーションからデータを受信するモバイルルータを備える。モバイルルータは、どの無線ネットワークを通してデータが送られるべきかをデータの１つ以上の特徴に基づいて特定する情報を含むポート・ルーティング・テーブルを備える。特徴は、ポート番号、ＩＰアドレス、及び／又はプロトコルを備える。
【００２４】
更に、本発明の他の目的は、データが送られる代わりのルートが、データの少なくとも１つの特徴に基づいて特定されることを含む。また、本発明の別の目的では、データが送られるデフォルトルートが、データの１つ以上の特徴に基づいて特定される。本発明の別の目的では、イグノアルートが、データの特徴に基づいて特定される。
【００２５】
本発明の更なる目的によれば、ポート・ルーティング・テーブル内の情報が、ホスト・ネットワーク・サーバーから設定されるとともに、モバイルルータ内のポート・ルーティング・テーブルに送り出される。本発明の別の目的では、モバイルルータは、何れかの無線ネットワークがサービス区域内の状態に入ったときに、ホスト・ネットワーク・サーバーに通知する。
【００２６】
また、本発明の別の目的では、多数の無線ネットワークを通してデータをルーティングするためにシステムが提供される。データは複数のアプリケーションから送信される。システムは、選択されたアプリケーションからデータを受信するホスト・ネットワーク・サーバーを備える。ホスト・ネットワーク・サーバーは、どの無線ネットワークを通してデータが送られるべきかをデータの１つ以上の特徴に基づいて特定する情報を含むポート・ルーティング・テーブルを備える。特徴は、ポート番号、ＩＰアドレス、及び／又はプロトコルを備える。
【００２７】
本発明の別の目的は、多数の無線ネットワークを通したＩＰルーティング動作の特定を可能にするコンピュータプログラムを保存したコンピュータ読取可能な媒体を提供することである。コンピュータ読取可能な媒体は、多数のアプリケーションからデータを受信するソース・コード・セグメントを備える。各アプリケーションは特有のポート番号を有する。媒体は更に、アプリケーションのポート番号、ＩＰアドレス、及び／又はプロトコルに基づいて、どの無線ネットワークを通してアプリケーションのデータが送られるべきかを特定する情報を含むポート・ルーティング・テーブルを保存するソース・コード・セグメントを備える。テーブルは更に、アプリケーションのデータが無線ネットワークを通して送られるべきでないかについての情報を備える。媒体は更に、アプリケーションからのデータがルーティングされるべき適切な無線ネットワークをポート・ルーティング・テーブルに含まれる情報から決定するソース・コード・セグメントを備える。
【００２８】
本発明のまた更なる目的によれば、ポート・ルーティング・テーブルは、ポート・ルート・タイプ・インジケータ・フィールド、ＩＰアドレスフィールド、プロトコル・タイプ・フィールド、ポート番号フィールド、及び／又はネットワークＩＤフィールドを備える。本発明の他の目的は、ポート・ルート・タイプ・インジケータが、オルタネートインジケータ、イグノアインジケータ、及び／又はデフォルトインジケータを備えることを含む。更に、本発明の別の目的は、オルタネートインジケータが選択されたときに、データが特定された代わりの無線ネットワークを介して送られることを含む。本発明の他の目的によれば、イグノア・ポート・ルート・タイプ・インジケータが選択されたときに、データは送られずに無視される。
【００２９】
また更に、本発明の他の目的によれば、デフォルト・ポート・ルート・タイプ・インジケータが選択されたときに、データはデフォルトネットワークを介して送られる。本発明の別の目的によれば、ポート・ルーティング・テーブルが更に、伝送されたデータパケットのプロトコルヘッダ内に、ＩＰアドレスが送信元、宛先、あるいは両方のロケーションに現れるかを示すフィールドを備える。本発明の更なる目的によれば、前記プロトコル・タイプ・フィールドは、パケットのトランスポート・レベル・プロトコルの型を特定する。本発明のまた更なる目的によれば、ポート番号フィールドは、アプリケーションのポート番号を特定する。
【００３０】
更に、本発明の他の目的は、ポート・ルーティング・テーブルが更に、伝送されたデータパケットのプロットコルヘッダ内に、ポート番号が送信元、宛先、あるいは両方のロケーションに現れるかを示すフィールドを備えることを含む。また本発明の別の目的では、ネットワークＩＤフィールドは、どのネットワークがデータを送るのに用いられたかを特定する。本発明の別の目的では、更に、多数の無線ネットワークの利用可能性を確認する利用可能性ソース・コード・セグメントを備える。そしてまた更なる目的によれば、本発明は更に、ルーティング経路が利用可能であると確認されたときに、受信したデータを適切な無線ネットワークを通して送信する送信ソース・コード・セグメントを備える。
【００３１】
他の代表的実施形態と本発明の有利な点は、本開示内容と添付された図面とを概観することにより確認されるであろう。
【００３２】
本発明は更に、特筆された図面を参照し、本発明の好ましい実施形態の非限定的な例として、以下の詳細な説明において説明される。同種の参照番号は同様の部分を幾つかの図面の場面を通して代表する。
【発明を実施するための最良の形態】
【００３３】
（無線モバイル・ルーティング・システム）
図１は、ローカル・エリア・ネットワーク１０に対してアクセスポイントとしての役割を果たすホスト・ネットワーク・サーバー２０、複数のモバイルルータ２００、ＬＡＮ１０上の少なくともホストアプリケーション、そして複数のネットワーク５６を含む現在の無線モバイル・ルーティング・システム全体のシステム図である。図１はＬＡＮ１０上のホストアプリケーション１３を示すが、無線モバイル・ルーティング・システムはモバイルルータ２００からモバイルルータ２００への通信をサポートするので、無線モバイル・ルーティング・システムはＬＡＮ１０上のホストアプリケーション１３を必要とするものではない。
【００３４】
モバイルルータ２００は様々な形態を取り得る。それはハードウェアの中に造られていてもよく、モバイル装置５２から物理的に独立していてもよい。別の実施形態では、モバイルルータ２００は、完全にソフトウェアとして造られ、モバイル装置５２上であって装置のオペレーティングシステム内に存在してもよい。別の実施形態では、モバイルルータは、シリコンハードウェア内に造られ、モバイル装置５２のハードウェア内に存在してもよい。
【００３５】
図１を参照すると、モバイル装置５２は、ソフトウェア・アプリケーション（例えばデータベースサービス）によりプログラムされたように様々な機能を演じるポータブルあるいはラップトップコンピュータ上において実行されるソフトウェア・アプリケーションを含むであろう。モバイル装置５２は、クレジット・カード・リーダやバーコードスキャナなどのように、特定の機能を果たすためにデザインされた特殊な目的のための装置であってもよい。モバイル装置５２は、固定された場所（例えば、ホスト・コンピュータ・インフラストラクチャー１０）に送られるデータストリームを生成してもよい。
【００３６】
モバイル装置５２上で実行される代表的なアプリケーションは、固定データベース・サーバー・アプリケーション(fixed database server application)にデータを送信し回収する能力を遠隔地のユーザに提供するモバイル・リモート・クライアント・アプリケーションである。データは、例えば広い地域に分散した顧客にサービスを提供するために車両群(fleet of vehicles)を運転するサービス人員(service personnel)に利用される顧客レコードを含んでもよい。代表的なアプリケーションでは、モバイル・クライアント・アプリケーション(mobile client application)は、固定データベース・サーバーから顧客レコードを要求することができ、移動するサービス人員が見られるように、そのレコードを表示する。モバイル・クライアント・アプリケーションは、サービス人員が割り当てられたジョブを完了すると、更新されたレコードを固定データベースに送ることができる。更新されたレコードには、各顧客のためのサービス履歴、装備のアップグレード、修繕作業が含まれていてもよい。
【００３７】
モバイル装置５２において実行される別の代表的なアプリケーションは、毎日、サービス人員により実行されるべき発送されたジョブ(dispatched jobs)のリストを検索するクライアントアプリケーションである。ジョブは、毎朝遠隔地のモバイル装置５２にアップロード可能であり、モバイル装置５２内の別のクライアントアプリケーションに格納される。サービス人員がジョブの場所(location)を変えると、各ジョブのステータスは、コメントとともに例えば途中(en route)、到着(arrived)、終了(finished)のステータスを示すように更新される。ステータスは、アプリケーションから固定ホームオフィス(fixed home office)に送ることができ、ホームオフィスにいる発送者(dispatcher)は、現場にいるサービス人員の場所を認識している。
【００３８】
非限定的な例として、モバイル装置５２には、携帯用、すなわちラップトップコンピュータ；備付けのルータ２００を有するコンピュータ；端末あるいは端末エミュレータ；データ収集装置（例えばＳＣＡＤＡシステム、あるいはデータを離れた場所から取得し、処理のための中心の場所に送る遠隔測定法システム(remote telemetry system)）；タクシーや移動食料カートなどのモバイ勘定(mobile billing)のアプリケーションにおいて利用されるカード読取装置(card-swipe reader device)（例えば、クレジット／デビット／銀行カード）；小包配達システムあるいは車隊において利用されるログ装置(logging device)；バーコード（例えば、在庫管理(inventory control)用）；固定装置からデータを送受信するリモートアプリケーション（例えば、遠隔診断ツール）などが含まれ得る。上記アプリケーションは、単に例示を目的として提供されたのであって、他のアプリケーションやモバイル装置５２はルータ２００とともに用いられてもよい。
【００３９】
図１に見られるように、１つのホスト・ネットワーク・サーバー２０と複数のモバイルルータ２００との間において、１対多数のバーチャル・プライベート・ネットワーク（ＶＰＮ）が形成される。ホスト・ネットワーク・サーバー２０は、多重ネットワーク５６により各モバイル・ルータ装置２００に接続される。伝送のためのネットワークを選択するのに、ホストアプリケーション１３に対しＬＡＮ１０に属することを要求することなく、データは各モバイル・ルータ２００や別のモバイル装置５２に送られ得る。すなわち、ホストアプリケーション１３、あるいは他のモバイル装置５２は、データを実際に伝送するネットワーク５６とそれ自身を関係させることなく、要求されたモバイル装置５２にデータを送ることができる。
【００４０】
１つの実施形態では、ホスト・ネットワーク・サーバー２０から、外部へと送り出されたデータは、適当なネットワーク５６を介してモバイル装置５２へとトンネル(tunneled)される。トンネリング(tunneling)は、他の場所に対してはそのパケットの内容を隠しながらもデータパケットを２つの場所の間で送信するためにデータパケットにヘッダを加えることとして定義される。トンネリングの特性は、ばらばらな性質や方針を有するネットワークの部分同士を埋め合わせるために長い間用いられてきた。ＶＰＮの結果として、エンドポイントＩＰアドレスと装置は、特定のネットワーク内において、他の如何なるネットワークデバイスからも効果的に隠される。このＶＰＮはまた、圧縮(compression)と暗号化(encryption)の両方をサポートする。
【００４１】
次に図２を参照すると、そこにはモバイルルータ２００を含むクライアント側の無線モバイル・ルーティング・システム全体の概観が示されている。ルータ２００は、ユーザが設定したパラメータに従って選択的に多数の無線インフラストラクチャ５６及び／又はその他のネットワーク５８を介してデータの転送及び受信を行なう能力をモバイル装置５２に提供する。
【００４２】
一般にモバイル装置５２は、様々なプロトコル（例えば、インターネットプロトコル（ＩＰ）／トランスペアレント(transparent)（ＭＤＣ５４を介して）／ａｃｋ−ｎａｃｋ等）を用いてデータの送受信を行なう。様々なプロトコルの利用は、多くのネットワーク、特にＩＰなど開放型規格(open standard)をサポートするネットワークの至る所を通したデータの開放型トランスポート(open transport)に備える。しかし、インタフェース及び／又はプロトコルトランスレーション(protocol translation)を必要とする多くの専用ネットワークが相変わらず使用されている。本実施形態のルータ２００では、ネットワークとインタフェースで接続する機能、及びプロトコルトランスレーションはネットワークインタフェース２１４Ａ−Ｄによって演じられるであろう。
【００４３】
図３は、ホスト・ネットワーク・サーバー２０の初期状態における代表的なソフトウェアの構成を示す。ホスト・ネットワーク・サーバー２０は、如何なるオペレーティングシステム４８においても作動する。代表的なオペレーティングシステムは、マイクロソフトウィンドウズＮＴ（登録商標）である。ホスト・ネットワーク・サーバー２０は、オペレーティングシステム４８に加えて、いくつかの異なるプロセスを含む。環境設定マネージャ(Configuration Manager)（ＣＭ）４９は、ホスト・ネットワーク。サーバー２０のために必要とされる全ての環境設定パラメータ(configuration parameters)を管理する。ロギングマネージャ(Logging Manager)（ＬＭ）５１は、複数のモジュールから生成される全てのログメッセージを管理する責任を負う。ルータマネージャ（ＲＭ）５０は、送信元ネットワークインタフェース(source network interfaces)から宛先ネットワークインタフェース(destination network interfaces)２１４へのルーティングを行なう責任を負う。ネットワークインタフェース（ＮＩ）２１４は、各無線ネットワーク５６とインタフェース接続する責任を負う。ネットワークインタフェース２１４はまた、データをＩＰから無線ネットワーク５６により要求されるフォーマットに変換する責任も担う。ユーザインタフェース（ＵＩ）５３は、管理者に診断型ロギング情報(diagnostic logging information)の調査を含むホスト・ネットワーク・サーバー２０の制御及び管理を行なう機能を提供する。
【００４４】
ホスト・ネットワーク・サーバー２０の起動と同時に、ルータマネージャ５０、環境設定マネージャ４９、及びロギングマネージャ５１の処理が開始する。環境設定マネージャ４９は、不揮発性記憶装置(persistent storage)から、環境設定パラメータを読み取る責任を担う。この環境設定情報(configuration information)は、どのネットワークインタフェース２１４が始動すべきかを明示する。このような環境設定情報は、システム管理者によって決定される。環境設定情報は、システムに存在する全てのサブシステムのための環境設定オプション(configuration options)を明示する。ネットワークインタフェース２１４のためのこのような環境設定オプションは、例えば、非ＩＰネットワークのためのネットワークアドレス（例えば、回線交換携帯電話接続(circuit switched cellular connection)のための電話番号；あるいはシリアルポート接続のためのモデムのシリアル番号、ボーレート、シリアルポート）やＩＰネットワークのためのＩＰアドレスを含んでもよい。
【００４５】
ルータマネージャ５０が一旦始動すると、それはそれ自身を、ネットワークインタフェース２１４を介してオペレーティングシステム４８のＩＰスタックに接続し、環境設定において明示されたローカルＩＰアドレスを登録する。ＩＰスタックに接続することにより、ホスト・ネットワーク・サーバー２０は、ＩＰデータグラムを直接ＩＰスタックと送受信することが許される。もし、ホスト・ネットワーク・サーバー２０がこの接続を結ぶ(bind)ことができないならば、ホスト・ネットワーク・サーバー２０は、ＬＡＮ１０へのかつからのルーティングができないとする警告を表示する。しかし、この場合、モバイルユーザは、まだ他のモバイルユーザと通信できる。ホスト・ネットワーク・サーバー２０が正しく結合(binds)すると仮定すると、ホスト・ネットワーク・サーバー２０は、ルーティング機能性を与えるとともに、ＬＡＮ１０へのデータの送信とＬＡＮ１０からのデータの受信に責任を負う。ルータマネージャ５０は、その後、環境設定マネージャ４９において明示されたネットワークインタフェース２１４を始動する。
【００４６】
各ネットワークインタフェース２１４は、特定の無線ネットワーク５６と連携し、無線ネットワーク５６へのかつからのデータの送受信に責任を負う。各無線ネットワーク５６は、無線ネットワーク５６と通信するために、ある種のトランシーバーを必要とする。無線ネットワーク５６トランシーバーの代表リストは、例えばＭＤＣ５４や従来及び基盤無線(trunked)双方の様々な無線装置を用いたプライベート音声無線装置を含み、様々な無線装置は；例えばシエラ無線(Sierra Wireless)やノバテル(NovaTel)ＣＤＰＤモデムなどのセルラー・デジタル・パケット・データ（ＣＤＰＤ）；直接拡散(direct sequence)、またはゼトロン・ハミングバード(Xetron Hummingbird)スペクトラム拡散モデムのようなチャンネル−ホップ何れかのスペクトラム拡散；エリクソン・シリアルＧＳＭモジュール(Ericsson serial GSM module)などのＧＳＭ；ソフトウエア・プロトコル・モジュールと準−ＲＳ２３２インタフェースとを介して無線に繋がれるＲＤＩ（例えばエリクソン）インタフェース；ＡＭＰＳ；モビテック(Mobitex)；公的のみならず私的なイーサネット(Ethernet)（登録商標）であるデータタック(DataTac)；アーディス(Ardis)；ＰＣＳ；そして透過的あるいは特定のプロトコルを用いて動作するその他全てのネットワークである。ネットワークインタフェース２１４は、無線トランシーバーに接続でき、無線ネットワークを通しての通信を可能にする。ネットワークインタフェース２１４は、これらに限定されるものではないが、ＩＰ、Ｘ．２５、ローカル・モデム接続、ローカル・シリアル・ポート接続、ＵＳＢ、イーサネット、無線、ＲＳ４８５、そして透過的あるいは特定のプロトコルを用いて動作する他の全ての接続媒体を含む多様な方式(method)を介してトランシーバーに接続可能である。
【００４７】
ネットワークインタフェース２１４の起動において、モジュールは、環境設定マネージャ５０から受け取ったそれ自身の環境設定を照合する。もし、環境設定が不適切であれば、エラーメッセージを表示し、ルーティングはできないであろう。もし、環境設定が適正で、必要なパレメータが正しく設定されていれば、それ自身の初期化ルーチンを開始する。
【００４８】
可能なネットワーク接続の種類は、生じる初期化の種類を決定する。例えば、純粋なＩＰ接続（すなわち、ＩＰネットワークへの接続）の場合には、ネットワークインタフェース２１４は、遠隔地の装置のＩＰアドレスに接続するソケット(socket)を開く。ネットワークへのシリアル接続の場合には、シリアルポートを開き、シリアル・ライン・パラメータ(serial line parameters)を設定する。接続ができなかったときには、ロギングマネージャ５２にメッセージを記録し、利用できないようにされる。ネットワークインタフェース２１４が一旦その初期化を完了すると、データを送受信するための無線ネットワーク５６をモニタするためにインバウンド及びアウトバウンド・スレッド(inbound and outbound threads)を開始する。インバウンド及びアウトバウンド・スレッドが開始され、ネットワークインタフェース２１４がネットワークと首尾よく通信できると、プロセスのスレッドは、各々のネットワーク５６においてデータを待ち受ける。
【００４９】
無線ネットワーク５６の１つから受信したインバウンドパケットの処理が、ここで図４に関連して説明される。インバウンドパケットが１つのネットワークインタフェース２１４において検出されると、そのネットワークインタフェース２１４は、ステップ１１００において、ネットワークからネットワークのフォーマットでデータを受信する。データの完全性を保証するために、ネットワークにより要求される全てのフレーミング(framing)かつまたはエラー確認／訂正(error checking/correction)が実行される。ネットワークインタフェース２１４は、プロバイダがそれを要求するならば無線ネットワークプロバイダを確認応答(acknowledge)（ＡＣＫ）し、あるいは適切であるならば、非確認応答(negative acknowledgment)（ＮＡＫ）とする。
【００５０】
ネットワークインタフェース４は、その後、無線ネットワーク５６が非ＩＰネットワークであるならば、インバウンドパケットの送信元ハードウェアアドレス（例えば、モデムシリアル番号）を保存する。例えば、回線交換携帯電話接続の場合、ハードウェアアドレスは電話番号となる。無線ネットワーク５６がＩＰネットワークの場合、パケット自身が送信元とエンドポイントＩＰアドレスを含むことから、ハードウェアアドレスは、このとき保存されない。（この文章では、モバイルルータのＩＰアドレスも、エンドポイントＩＰアドレスとして参照される。それはルータのアドレスを確認するのであって、ゲートウェイアドレスとして参照される無線ネットワークにより割り当てられたアドレスではない。）この時点で、ネットワークインタフェース２１４は、ネットワークプロバイダにより受信したデータの周りに配置されたヘッダやトレーラ(trailers)を全て取り除く。残されたデータは、元のモバイルルーティング装置２００により送られた元のデータである。
【００５１】
そしてネットワークインタフェース２１４は、元のデータ、パケットの長さ、無線ネットワーク５６がＩＰネットワークでない場合のパケットの送信元とエンド・ポイント・ハードウェア・アドレスをも含めた送信元ネットワークＩＤとを最小限含むプロセス間通信（ＩＰＣ）パケットを造り出す。このパケットは、その後ステップ１１０２において、標準ＩＰＣ機構(standard IPC mechanisms)により、ルータマネージャ５０のプロセスに送られる。
【００５２】
ルータマネージャ５０がプロセス間通信（ＩＰＣ）機構(interprocess communication (IPC) mechanism)からデータを受信すると、ルータマネージャ５０は、受信したデータに関連するＩＰＣパケットを含めた送信元ネットワークＩＤに基づいて、どのインタフェースがパケットを送信したかを判定する。そして、ルータマネージャ５０は、ＩＰパケットのチェックサム(checksum)を確認する。チェックサムが誤っていれば、パケットはそのまま破棄される。それ以外の場合は、受信されたパケットはＩＰバージョン４のパケットとして照合される。この情報はＩＰヘッダにおいて簡単に入手できる。もし、パケットがバージョン４の基準に合致しない場合は、それはそのまま破棄される。そして、受信パケットの送信元ＩＰアドレス（元のネットワーク(originating network)に依存する）は、ステップ１１０４において解析される。具体的には、ステップ１１０６において、ルータマネージャ５０は、送信元ＩＰアドレスが不揮発性記憶装置に保存されたルートテーブルに存在するか判定する。言い換えれば、送信元ＩＰアドレスが属するサブネットが調べられる。
【００５３】
ルートテーブルの代表例が図５に示される。更に、図１８（ａ）及び１８（ｂ）も、ユーザが読めるフォーマットでルートテーブルをユーザに提示した一例を示す。図はグラフィカル・ユーザ・インタフェースによってどのようにルートテーブルがユーザに示されるかを例示する。ＩＰアドレスが存在すると、ルータマネージャ５０は、パケットが無線ネットワーク５６から受信されたことを反映するために、ステップ１１１６において、ルートテーブルを更新する（例えば、タイムスタンプとともに）。ルートテーブルへのルートの登録は、関連するルートがモバイルルータ２００にアクティブに接続することを示す。言い換えれば、ステップ１１１４において、新しいサブネットがルートテーブルに追加され、ルートテーブルがステップ１１１６において更新される。しかし、あるサブネットは、無視され得る。例えば、パケットがブロードキャストアドレスから受信された場合、そのアドレスは除外される。すなわち、それらのアドレスに対応するサブネットはルートテーブルに入れられない。
【００５４】
ルートテーブルは、エンド・ポイント・アドレスに相互に関係する３つのフィールドを含む：サブネットフィールド、ネットワークフィールド、そしてマスクフィールドである。周知のように、サブネット値は、マスク値とネットワーク値とのビットに関するＡＮＤ演算により算出される。マスク値及びネットワーク値は、周知の方法で知られる。そして、各エンド・ポイント・アドレスは、周知の仕方で、サブネットに分類することができる。したがって、エンド・ポイント・アドレスが分類されたサブネットに基づいて、ゲートウェイアドレスが、ゲートウェイ・アドレス・フィールドにおける値を調べることにより決定され得る。ネットワークＩＤフィールドは、各ネットワークインタフェース２１４に対応する任意の値を格納する。したがって、ネットワークＩＤ値を用いることにより、ホスト・ネットワーク・サーバー２０は、どのネットワークインタフェース２１４がゲートウェイアドレスとの通信に採用されるべきかを知る。エントリ・タイム・スタンプ・フィールド(Entry Time Stamp field)は、ルートテーブルにエントリが初めて記録されたときを示すタイム・スタンプ・エントリを格納する。ラスト・パケット・フィールド(Last Packet field)は、最後のパケットが対応するゲートウェイアドレスから受信された時間を示す値を示す。
【００５５】
モジュール５０は、その後、ＩＰヘッダ内の生存時間（ＴＴＬ）パラメータを減ずる。ＴＴＬパラメータが０の場合、パケットは破棄され、時間超過メッセージ(Time to Live discarded message)がパケットの発信元(originator)に送り返される。この時、それはデータベースに記録される。ルートマネージャ５０は、その後ステップ１１２０において、エンドポイントＩＰアドレスを解析する。ステップ１１２２では、ルータマネージャ５０は、パケットのエンドポイントＩＰアドレスがそれ自身のローカルＩＰアドレスと一致するか否かを判定する。これらのアドレスが一致するならば、そのパケットはそのローカルなルータマネージャ５０のためのものである。ルータマネージャ５０が受領できるパケットには、いくつかの異なる種類があり得る。一つの例は、ルート・レジストレーション（ＲＲ）・パケットである。ルータマネージャ５０は、ステップ１１２６において、パケットが到来したゲートウェイアドレスはもちろん、ＲＲパケットに記録された全てのアドレスによりルーティングテーブルを更新する。ルータマネージャ５０のプロセスは、その後、ステップ１１２８において、モバイルルータ２００に送り返すためのルート・レジストレーション・アクノレジメント（ＲＲＡ）パケットを生成する。したがって、ルータマネージャ５０は、ステップ１１４６において、データをそのモバイルルータ２００に対応する適切なネットワークインタフェース２１４へ引き渡す。
【００５６】
ステップ１１２２において、パケットのエンド・ポイント・アドレスがホスト・ネットワーク・サーバーのローカルＩＰアドレスに一致しないと判定された場合には、ルータマネージャ５０は、ステップ１１４２において、受信したエンド・ポイント・アドレスをルートテーブルにおいて調べる。ローカル・ルート・テーブルにおいてアドレスが見つかると（ステップ１１４４：ＹＥＳ）、そのエンド・ポイント・アドレスに対応するネットワークインタフェース２１４が記録される。エンド・ポイント・アドレスは別のモバイルルーティング装置２００やＬＡＮ１０上のホスト１３であってもよい。
【００５７】
ステップ１１４４において、パケットがルートテーブルにないと判定されると、着信先到達不可能メッセージ(destination unreachable message)がパケットの発信元に送られる。一つの実施形態では、全てのモバイルユーザは、デフォルトにおいて全てのＩＰアドレスとＬＡＮ１０上のポートの組み合わせにパケットを送る権限を有している。別の実施形態では、管理者がより安全なネットワークを構築したい場合には、管理者は各モバイル装置が通信する権限を有する全てのＩＰアドレス／ハードウェアアドレスの組み合わせを含むセキュリティデータベースを構築する。
【００５８】
この実施形態では、ホスト・ネットワーク・サーバー２０は、ステップ１１４８において、それ自身のセキュリティデータベースに対するパケットをチェックする。より具体的には、ホスト・ネットワーク・サーバー２０は、セキュリティデータベースにおけるエンドポイントＩＰアドレスと宛先ポート番号を検索する。送信元アドレスとエンド・ポイント・アドレスの組み合わせに対してエントリが存在する場合（ステップ１１５０：ＹＥＳ）、ルータマネージャ５０は、パケットをステップ１１４４において明示された適切なネットワークインタフェース２１４にステップ１１５４におけるエンド・ポイント・アドレスへの最終的な引渡しのために送信する。テーブルにアドレスが存在しない場合には（ステップ１１５０：ＮＯ）、ログメッセージが生成され、パケットはステップ１１５２においてそのまま破棄される。
【００５９】
このファイアウオール機能性は、選択された遠隔地装置が選択された宛先にアクセスすることを防止する付加的な利益を提供する。例えば、管理者は、全てのモバイルユーザが無線ネットワークを介して会社のイントラネットサーバーにブラウジングすることを望まないかもしれない。なお、この実施形態では、全てのＩＰパケットがセキュリティデータベースに対して照合される。
【００６０】
ＬＡＮ１０から受け取られたデータの処理について、ここで図６に関連して説明される。このシナリオにおいてＬＡＮ１０から受け取られたデータは、ホストアプリケーション１３から受け取ったモバイルルータ２００への出発データ(outgoing data)である。ネットワークアダプタを介してＬＡＮ１０においてデータが受信されると、ルータマネージャ５０のプロセスはステップ１２００においてデータを受信する。ルータマネージャ５０は初めＩＰパケットチェックサムを確認する。もし、チェックサムが誤り(fails)であれば、パケットはそのまま破棄される。それ以外の場合、受け取られたパケットはＩＰバージョン４のパケットであるかが照合される。この情報は、ＩＰヘッダ内において簡単に得られる。もしパケットがバージョン４の基準に合致しなければ、それはそのまま破棄される。その後モジュールはＩＰヘッダ内の生存時間(Time to Live)パラメータを減ずる。ＴＴＬパレメータが０の場合、パケットは破棄され、時間超過メッセージ(Time to Live discarded message)がパケットの発信元に送り返される。
【００６１】
そしてデータパケットは、ステップ１２０２において、セキュリティデータベースに対して検索される。送信元アドレスとエンド・ポイント・アドレスの組み合わせがデータベースに存在しない場合には、メッセージが記録され(logged)、パケットはステップ１２０４において破棄される。パケットが内部セキュリティチェックを通過すると、ステップ１２０６において、ＩＰパケットのエンド・ポイント・アドレスがルートテーブルにおいて調べられる。アドレスがルートテーブルにおいて見つからない場合は（ステップ１２０８：ＮＯ）、ルータマネージャ５０はステップ１２１０において、着信先到達不可能メッセージ(destination unreachable message)を元の送信アドレスに送り返す。合致するエントリがルートテーブルにおいて見つかった場合は（ステップ１２０８：ＹＥＳ）、ルータマネージャ５０は、元のデータ(original data)、メッセージ長(message length)、エンドポイントＩＰアドレス（ＩＰネットワークのとき）又はエンド・ポイント・ハードウェア・アドレス（ＩＰネットワークでないとき）を含むＩＰＣパケットを生成する。ルータマネージャ５０は、その後ステップ１２１２において、メッセージをＩＰＣチャンネルを介してネットワークインタフェース２１４プロセスに送る。
【００６２】
図８は、ルータマネージャ５０からメッセージを受け取るときにネットワークインタフェース２１４により実行されるロジックを模式的に示す。ネットワークインタフェース２１４が、ステップ１３００においてＩＰＣチャンネルからデータを受け取ると、それはステップ１３０２において無線ネットワーク５６のためにデータパケットを生成する。ＬＡＮ１０から送られたパケットのエンド・ポイント・アドレスは、ＩＰＣメッセージに与えられた。ステップ１３０４では、ネットワークがＩＰネットワークであるか否かが判定される。ネットワークがＩＰネットワークである場合は、トンネルドパケット(tunneled packet)が生成されなければならない。ステップ１３０６において、パケットの送信元ＩＰアドレスは、ローカルなネットワークインタフェース２１４ＩＰアドレスに設定され、エンドポイントＩＰアドレスは、ＩＰＣメッセージに与えられたモバイルルーティング装置のゲートウェイアドレスに設定される。ゲートウェイアドレスは、無線ネットワーク５６に対応するＩＰアドレスであり、無線ネットワークプロバイダによって割り当てられる。ネットワークが非ＩＰネットワークであると、非ＩＰフォーマット由来のパケットの送信元アドレスは、ステップ１３０８において、ローカルなネットワークインタフェース２１４ハードウェアアドレスに設定される。エンド・ポイント・ハードウェア・アドレスは、遠隔地装置のハードウェアアドレスである。データパケットが生成されると、ステップ１３１０において、モバイルユーザへ引き渡すために無線ネットワークプロバイダによって要求されるフォーマットを用いる無線ネットワークプロバイダにそれは送られる。あるネットワークでは、モデムは常にネットワークに接続されているわけではない（例えば、回線交換携帯電話ネットワーク）。したがって、パケットが転送される前に、いくらかの接続手段が初期化されている必要がある。必要なときに、この接続を初期化することが、ネットワークインタフェース２１４の役割である。
【００６３】
ステップ１３１２では、パケットの送達が成功したかが判定される。もしある理由で、ネットワークインタフェース２１４がパケットのモバイルルータ２００への送達を成功させられなかった場合には、ステップ１３１４において、ネットワークインタフェース２１４は、ルータマネージャ５０にネットワークインタフェース２１４がパケットの送達を成功させることができないことを警告するために、ルータマネージャ５０のプロセスにメッセージを送り返す。ルータマネージャ５０は、送達が不成功であった場合、モバイルの宛先(mobile destination)への異なるルートを用いることを、もしそれが存在するならば、決定する。
【００６４】
図７に関連して、代わりのルートを決定するためのルータマネージャのロジックについて説明する。ステップ１４００において、ルータマネージャ５０はネットワークインタフェース２１４から受け取ったメッセージが送達の失敗を示すか否かが判定する。もし、メッセージが送達が不成功を示すならば、ステップ１４０２において、ルータマネージャ５０は、代わりのルートを決定するためにその内部環境設定(internal configurations)を調べる。代わりのルートが見つかると（ステップ１４０４：ＹＥＳ）、ルータマネージャ５０はステップ１４０６において、この新しいルートに対応するネットワークインタフェース２１４へデータパケットを送出する。その後。図８に関連して説明されたロジックが繰り返し、ルータマネージャ５０は、転送が成功したか否かを示すメッセージを待ち受ける。
【００６５】
ネットワークインタフェース２１４がパケットの送達に成功すると、ルータマネージャ５０は、そのルートが成功したことを示すネットワークインタフェース２１４からのメッセージを受け取る（ステップ１４００：成功）。したがって、ルータマネージャ５０は、ステップ１４１０においてルートパラメータを作成する。もし、全てのルートが試みられたのに、パケットの送達が成功しない場合（ステップ１４０４：ＮＯ）、ステップ１４０８において、着信先到達不可能メッセージがそのパケットの送信元に送り返される。
【００６６】
ホスト・ネットワーク・サーバー２０は、管理者にシステムを通過したデータに関する統計的情報(statistical information)も提供する。発生した如何なるイベントもユーザ・バイ・ユーザ基準(user-by-user basis)により、カウンタを増加させる。これらの統計(statistics)は様々な異なるフォーマットでユーザに提供することができる。統計は、サービスプロバイダからの明細書を実際の利用と較べるなど、管理者があるモバイル装置についての問題を正確に指摘するのに役立つであろう。
【００６７】
図９は、モバイル装置５２がローカル・エリア・ネットワーク１０上のホスト・ネットワーク・サーバー２０と通信することを可能にするソフトウェアの構造を示す。ソフトウェアは、各モバイル装置５２に存在し、モバイルルータ２００の必要性を取り除き、あるいは、別の実施形態では、ソフトウェアはモバイル装置５２から物理的に分離したモバイルルータに存在する。ソフトウェアは、ハードウェアやソフトウェアとハードウェアの組み合わせとして提供されてもよい。
【００６８】
モバイル装置５２が本発明のルーティングソフトウェアを実行するとき、オペレーティングシステム４４２は、モバイル装置のオペレーティングシステムである。独立したルータ２００が与えられる場合には、オペレーティングシステム４４２はモバイルルータ２００において実行される。そのソフトウェアを実行するために、どのような種類のオペレーティングシステム４４２が用いられても良い。代表例のオペレーティングシステムには、ＪＭＩソフトウェアシステム（株）(JMI Software System, Inc.)から入手できるＣエグセキューティブ(C Executive)や、マイクロソフト株式会社(Microsoft Corporation)から入手できるマイクロソフトウィンドウズＣＥ、９５、９８、ＮＴあるいは２０００（登録商標）が含まれる。
【００６９】
ハードウェアを用いた非限定的な代表例として、モバイルルータ２００は、３３ＭＨＺで駆動する８０３８６ＥＸマイクロプロセッサと、２５６キロバイトのフラッシュＲＯＭと、５１２キロバイトの静的ＲＡＭと、６つの非同期シリアルポートと、６つのシリアルポートのうちの２つを、スイッチ２１２の外部にあって互換性のある装置と直接インタフェースで連結する２つのＴＴＬ−ＲＳ２３２変換器と、そして、ネットワークインタフェース２１４Ａ−Ｄを搭載するドーターボードに内蔵される４つの内部ＴＴＬシリアルインタフェースとを例えば備える。ドーターボードに搭載された各ネットワークインタフェース２１４は、ネットワークインタフェースのための電源と、８０３８６ＥＸマイクロプロセッサへのシリアルインタフェースと、外部ネットワークへのインタフェースを例えば備える。外部ネットワークは、無線、ＬＡＮ、アンテナ（ネットワークインタフェース２１４内に内蔵された無線用）、あるいはルータ２００から／へデータを受け取るあるいは供給する他の装置などである。
【００７０】
ルーティングソフトウェアは、オペレーティングシステム４４２が一旦起動されると起動する。より具体的には、オペレーティングシステム４４２が首尾よく起動されると、それは１つの非同期プロセス、ルータ・システム・モジュール４４６（ＲＳＭ）を初期化する。ルータ・システム・モジュール４４６（ＲＳＭ）は、ルータ環境設定モジュール(Router Configuration Module)４４８（ＲＣＭ）、ルータ・ロギング・モジュール（ＲＬＭ）４４７、及びルータモジュール４５０（ＲＭ）を起動する責任を担う。
【００７１】
ルータ環境設定モジュール（ＲＬＭ）４４７は、無線ネットワーク５６（出力用）とモバイル装置５２（入力用）に接続されるインタフェースのための環境設定データを読み取る責任を負う。モバイル装置５２（すなわち、クライアント）としては、ルーティングソフトウェアからデータを受信でき、かつ／又は送信できる装置（例えば、モバイルコンピュータ、ＧＰＳリーダ、カードリーダなど）が想定される。ルータモジュール４５０は、全てのネットワークが初期化されると、利用可能なネットワークにおいてルーティングを決定する責任を担う。ルータ・ロギング・モジュール４４７は、アプリケーションから生成された全ての診断型ログメッセージを捕捉し保存する責任を負う。もし、これらのプロセスの起動が失敗すると、モバイル装置５２のユーザはオペレーティングシステム４４２にサポートされた適当な手段により変更される。
【００７２】
モバイル装置５２と出力装置（例えば、無線ネットワーク５６とインタフェースで接続されるモデムなどのトランシーバー）の数はいくつであってもよい。この数は装置のハードウェアインタフェース（例えば、シリアルポート、ＵＳＢポート、ＰＣカードスロット、パラレルポートなど）が利用できるか否かによってのみ制限される。一般的な構成は、２台のモバイル装置５２（例えば、モバイルコンピュータとＧＰＳトランシーバー）と１つの無線ネットワーク５６（例えば、ＣＤＰＤ）、１台のモバイル装置５２（例えばモバイルコンピュータ）と２つの無線ネットワーク５６（例えば、ＣＤＰＤとプライベートＲＦ）、あるいは、２台のモバイル装置５２（すなわち、モバイルコンピュータとＧＰＳトランシーバー）と２つの無線ネットワーク５６（例えば、ＣＤＰＤとプライベートＲＦ）を含む。
【００７３】
図１０は、適切なプロセスが全て起動された後のルータ２００を示す。２種類のインタフェースが起動され環境設定され得る。第１の類型は、通信装置と通信を行なう責任を担う標準ルーティング・ネットワーク・アダプタ（ＲＮＡ）４７０を備える。この通信装置は、コンピュータ５２、あるいは無線モデムのようなネットワーク装置を備えていてもよい。これらのプロセスはモバイルルーティング装置２００へのかつからのデータの流れを管理する。第２の類型のインタフェースは、補助フィーチャシェル(Auxiliary Feature Shell)（ＡＦＳ）と呼ばれる。ＡＦＳのプロセスは、特定の機能を演ずるために開発されたスタンド・アロン・アプリケーションであってもよい。この機能は、データや無線ネットワークのルーティングを備えている必要はない。ＡＦＳプロセスの一例は、保存と転送(forward)の機能性を提供する。
【００７４】
各ルータ・ネットワークアダプタ（ＲＮＡ）４７０は、ネットワーク装置の特定の動作を取り扱う責任を負う。ルータ・ネットワーク・アダプタ４７０は、装置の初期化、装置のターミネーション、ステータスチェック、プロトコル変換、パケット化(packetization)などを含む装置特有の機能性に責任を負う。
【００７５】
少なくともネットワークダウン(NetworkDown)メッセージ及びネットワークアップ(NetworkUp)メッセージを含む様々なメッセージがルータ・ネットワーク・アダプタ４７０からルータ・モジュール・プロセス４５０に送信可能である。ネットワークダウンメッセージは、ルータに無線ネットワーク５６がハードウェアの故障(failure)や無線サービス区域外である等の理由により利用できないことを知らせる。ネットワークアップメッセージは、ルータモジュール４５０に、無線ネットワーク５６が起動しており、通信に利用できることを知らせる。全てのルータ・ネットワーク・アダプタ４７０は、初期状態であるネットワークダウンから最初出発する。
【００７６】
ルータ・ネットワーク・アダプタ２７０は、割り当てられたハードウェア装置の初期化から始める。全ての装置は、それ独自の一式の初期化動作を必要とする。ルータ・ネットワーク・アダプタ４７０は、装置へのハードウェア接続を確立することから開始する。この接続は、これらに限定される分けではないが、ＲＳ２３２、ユニバーサル・シリアル・バス（ＵＳＢ）、イーサネット、トークンリング、ＩＲＤＡ、パラレル、ブルートゥース(Bluetooth)であってもよく、オペレーティングシステム４４２によりサポートされる他のどのような通信ポートであってもよい。そして、殆どのネットワーク装置において、ルータ・ネットワーク・アダプタ４７０が、装置の製造者及び／又は無線ネットワークプロバイダにより設定された初期化ルーチンを実行する。これらの初期化ルーチンの実例は、無線ネットワーク５６への装置の通信を開始するために、ＡＴコマンド、ユーザ・デファインド・プロトコル(user defined protocol)等を利用することもある。もし、初期化ルーチンの何れかが失敗すると、ルータモジュール４５０は、初期出発状態がネットワークダウンであることから、その事実を認知する。この時点では、インバウンドあるいはアウトバウンドのデータの活動は発生しておらず、ルータ・ネットワーク・アダプタ４７０は、ネットワークステータス情報をハードウェア装置から収集することを試みる。
【００７７】
ネットワークステータスの問い合せ(network status queries)の２つの方法がモデム製造者によって用いられている。第１の方法では、モデムはソフトウェアに、所定のコマンド群を用いてそのステータスをモデムに問い合わせるように要求する。モデムがこのステータスの問い合わせを受け取ると、それは無線ネットワークに問い合わせを行い、モデムの現在のステータスをソフトウェアに返信する。例えば、モデムはそれが区域外であることを示すことができる。このステータスを問い合わせる方法における障害は、ソフトウェアが一定の間隔でモデムに問い合わせすることを課されることである。この間隔は、可能な限り短い必要があるが、モデムの通常のデータ転送機能性に影響を与えるほど短くてはならない。
【００７８】
第２の方法では、モデムはネットワークステータスを考慮し、求められていないレスポンス(unsolicited responses)を与える。例えば、ソフトウェアは、モデムにコマンドを送ることなくステータス問い合わせレスポンス(status query responses)を受け取る。通常、モデムは、ステータス・レスポンス・パケット(status response packet)の送信か、ハードウェア接続（例えば、ＲＳ２３２ＤＣＤライン）の状態を変更することにより応答する。ステータスを報告する第２の方法を用いたトランシーバーの有利な点は、ネットワークへのかつからの切り替えが、規則的な原理によりソフトウェアがモデムに問い合わせを行なうのを待つ代わりに、ネットワークステータスが変更されたときに直ちに起こることである。ハードウェア装置の１つのステータスが、それの以前の状態から変更されると、ルータ・ネットワーク・アダプタ４７０は、更新されたステータスとともにルータモジュール４５０にメッセージを送る。
【００７９】
各ルータ・ネットワーク・アダプタ４７０は、環境設定データブロックからのゲートウェイＩＰアドレスとともに構成される。このゲートウェイＩＰアドレス、すなわちハードウェアアドレスは、パケットをモバイル装置５２あるいはホスト・ネットワーク・サーバー２０に到達するルートで送り届けるのに用いられ、ネットワークのゲートウェイＩＰアドレスとして参照される。
【００８０】
ルータ・モジュール・プロセス４５０は、ネットワークの利用可能性を判定するために全ての利用可能なインタフェースに耳を傾ける。ルータモジュール４５０は、無線ネットワーク５６がデフォルトルートとして選択され得る前に受信されるようにネットワークアップメッセージを要求する。そして、ルータモジュール４５０は、ネットワークの選択を決定するために、時刻、メッセージの優先度(priority)、メッセージの大きさなど様々な方法を用いるが、前述したように、最終的な決定は常にネットワークの利用可能性による。ルータ・モジュール・プロセス４５０がアクティブに選択されたネットワークを決定すると、その変更を反映するために、それ自身の内部ルートテーブルを更新する。そして、ルータモジュール４５０は、その一例が図１１に示されるルート・レジストレーション（ＲＲ）・メッセージを生成し、それをホスト・ネットワーク・サーバー２０に送信する。
【００８１】
このＲＲメッセージは、以下のフィールドを含む：バージョン、コマンド番号、ＩＰアドレス数、シーケンスフラグ(sequence flag)、ゲートウェイＩＰアドレス、エンドポイントＩＰアドレス。バージョンバイトはメッセージのバージョンを特定する。コマンドバイトはメッセージの種類を特定する。メッセージの種類には、ルート・レジストレーション、ルート・レジストレーション確認応答(Route Registration Acknowledgement)、システム・クラッシュ・ルート・レジストレーションが含まれる。ＩＰアドレス数は、ＲＲに列挙されたアドレスの数が設定される。ゲートウェイＩＰアドレスは、現在選択されているハードウェア装置のアドレスである。ＩＰアドレスのリストは、ゲートウェイアドレスを介して連絡され得る全てのエンドポイントＩＰアドレスあるいはサブネットを含む。言い換えれば、ソフトウェアは、１台よりも多いモバイル装置５２が接続された場合、ハブのように機能する。例えば、ソフトウェアは、自動車のトランクに配置され、別のモバイル装置５２は乗員のコンパートメントに配置されていてもよい。
【００８２】
ＲＲは、このゲートウェイアドレス５６を介して連絡され得る全てのエンドポイントＩＰアドレスに関してルートテーブルを更新するために、ホスト・ネットワーク・サーバー２０に注意を促す。本発明は、同時パラレル伝送とマルチプルなクライアント装置を考慮していることから、ＲＲはホスト・ネットワーク・サーバー２０が、この現在のゲートウェイＩＰアドレスを介して連絡され得る全てのＩＰアドレスを知っていることを保証する。そしてルータモジュール４５０は、ホスト・ネットワーク・サーバー２０からのルート・レジストレーション確認応答（ＲＲＡ）を待つ。もし、ルータモジュール４５０がＲＲＡを所定の時間内に受信しなければ、付加的なＲＲが一定の間隔で確認応答が受信されるまで送られる。この再試行機構は、仮にホスト・ネットワーク・サーバー２０がダウンしている場合にも、それが再始動されたとき、そのルートテーブルが常に現在のルーティグの環境設定を反映することを保証する。もし、ルータモジュール４５０が、データの伝送に複数のネットワークを選択した場合、ルートテーブルはそれに応じて更新される。そしてＲＲは、デフォルトルートとして両ネットワークを含むようにホスト・ネットワーク・サーバー２０に注意を促すために修正される。
【００８３】
ルータ・ネットワーク・アダプタ４７０は、ネットワーク５６のステータスを断続的にモニタする。ルータモジュール４５０は、ステータス変更情報のために連続的能動的に各ＲＮＡ４７０をモニタする。ネットワークのステータスが変更されると、適当なＲＮＡ４７０がネットワークダウンメッセージをルータモジュール４５０に送る。そしてルータモジュール４５０は、アクティブなルートを動的に変更する。ルートを変更するためのこの手続は、パケットの通常の転送に対して透過的かつ独立して起こる。
【００８４】
このとき、何れのルータ・ネットワーク・アダプタ４７０から受け取られた何れのデータも、ルータモジュール４５０に送られる。ルータモジュール４５０は、パケットのＩＰチェックサムを確認する。もし、パケットのチェックサムが誤り(fails)であれば、パケットは破棄される。もし、パケットチェックサムが正しければ、受け取られたパケットは、それがＩＰバージョン４のパケットであるか確認される。この情報はＩＰヘッダにおいて簡単に得られる。もし、パケットがバージョン４の基準に合致しないならば、そのときそれはそのまま破棄される。そしてモジュールは、ＩＰヘッダ内の生存時間パラメータを減ずる。ＴＴＬパラメータが０の場合、パケットは破棄され、時間超過メッセージ(Time to Live discarded message)がパケットの発信元に送り返される。ルータマネージャ４５０は、パケットのエンドポイントＩＰアドレスを見て、それを適切なルータ・ネットワーク・アダプタ４７０や適切なエンドポイントＩＰアドレスにルートする。
【００８５】
次に、ルータ・ネットワーク・アダプタ４７０は、ＩＰデータグラムをルータモジュール４５０から受け取る。もしネットワークがＩＰが利用できるネットワークでない場合は、無線ネットワーク５６により求められるフォーマットでデータパケットを生成する。新しく生成されたパケットのエンド・ポイント・アドレスは、ホスト・ネットワーク・サーバー２０における対応インタフェースのハードウェアアドレス（非ＩＰネットワークに対し）となる。もしパケットがＩＰパケットであるならば、それはホスト・ネットワーク・サーバー２０上の対応するネットワークインタフェース２１４（例えば、モデム）のＩＰアドレスに転送される。ホスト・ネットワーク・サーバー２０上のインタフェースのアドレスのみに送ることにより、例えパケットの最後の宛先が異なるアドレスを持っていても、ユーザはパケットがホスト・ネットワーク・サーバー２０のみに行くことを保証される。これはホスト・ネットワーク・サーバー２０が、それの統計(statistics)を更新し、報告能力を維持することを保証する。加えて、それはホスト・ネットワーク・サーバー２０が常に全てのモバイルユーザの活動だけではなく、最近使われたネットワークを知っていることを保証する。もし、ネットワーク５６が、接続を確立するための何らかの手続を要求する場合、ルータ・ネットワーク・アダプタ４７０がこの手続の責任を負う（例えば、回線交換携帯電話ネットワークにおいて電話番号にダイアルする）。
【００８６】
与えられ得る第２の種類のプロセスは、ＡＦＳプロセスである。このプロセスは、モバイルルーティング装置の領域内で実行されるスタンドアロンアプリケーションであってもよい。それはエンドカスタマーが求めるどのようなカスタムタスクも実行し得る。一例は保存と転送プロセスである。プロセスは、データの順番待ち、データの配送、データ伝送の再試行を管理するように書かれていてもよい。
【００８７】
ルータ・モジュール・プロセス４５０はまた、ソフトウェアの環境設定を動的に変更する能力もサポートする。ルータ・モジュール・プロセス４５０は、全ての環境設定要求(configuration requests)に対するＩＰソケットに従う。環境設定要求は、モバイル装置５２及びＬＡＮ１０上のホストアプリケーション１３の何れからもやって来得る。環境設定要求は、ＩＰ  ＵＤＰデータパケットにおいてフォーマットされる。ルータ・モジュール・プロセス４５０は、常に環境設定要求に対して環境設定レスポンスで応答する。これらの環境設定要求は例えば、マニュアルによるルートの変更、ネットワークステータスの要求、環境設定の要求、環境設定の設定等を含む。この機能性は、外部アプリケーションが、装置のルーティングを動的に変更することを可能にする。
【００８８】
（ポート・ルーティング・システムの概要）
本発明は、前述の無線モバイル・ルーティング・システムの能力を高める。ポートルーティングでは、モバイルルータ２００は、ただ単にホスト・ネットワーク・サーバー２０にデフォルトネットワークへの変更を通知するだけではなく、モバイルルータ２００は何れかのネットワークが利用可能となったときも必ずホスト・ネットワーク・サーバー２０に通知する。通知はホスト・ネットワーク・サーバー２０とモバイルルータ２００の両者がパケットを代わりの非デフォルトネットワークを通して適切に送ることを可能にする。モバイルルータ２００は、適切であるときには、デフォルトネットワークを通してパケットを送りつづけることも可能である。
【００８９】
図１２は、ポートルーティングの能力が高められた無線モバイル・ルーティング・システムの一例を表わす模式図である。この例では、３つの異なるアプリケーション（アプリケーション＃１：ウェブブラウザ、ポート８０；アプリケーション＃２：ＣＡＤメッセージ、ポート５４３７；そしてアプリケーション＃３：同期アプリケーション、ポート６８７５）は、モバイル装置５２において同時に実行されている。アプリケーションからのデータはモバイルルータ２００に送られている。モバイルルータ２００がデータパケットを受け取ると、モバイルルータ２００は、ホスト・ネットワーク・サーバー２０に到達するためにはどの無線ネットワーク５６（例えば、ネットワークＡ：無線ＬＡＮ、ネットワークＢ：ＲＤ−ＬＡＰ）をデータは通らなければならないかを決定するためにポート・ルーティング・テーブル２５１を調べる。図１２に示された例では、アプリケーション＃１からのデータパケット（すなわちポート８０）は、「イグノア」インジケータがシステム管理者により特定されたことから、ホスト・ネットワーク・サーバー２０には転送されない。一方、アプリケーション＃２からのデータパケット（ポート５４３７）は、システム管理者がネットワークＢをポート５４３７のためのポートルーティング経路として特定したことから、ネットワークＢ（ＲＤ−ＬＡＰ）を通して送られる。同様に、アプリケーション＃３からのデータパケット（ポート６８７５）は、システム管理者がネットワークＡをポート６８７５のポートルーティング経路として特定したことから、ネットワークＡ（無線ＬＡＮ）を通して送られる。
【００９０】
（ポートルーティング機能性とポート・ルーティング・テーブル）
ポートルーティングの機能の詳細がここで説明される。上述したように、本発明の目的は、ポート・ルーティング・テーブル２５１を含む。ポート・ルーティング・テーブル２５１は、増強されたルーティング能力をサポートするために、付加的な環境設定エントリを保存する。１つの実施形態では、テーブルはシステム管理者に、プロトコル、ＩＰアドレス、ポート番号、そしてルーティングのための特定のネットワークを含むあるグラニュラリティにおいてポートルーティングを特定する権限を与えるフィールドを有する。ポート・ルーティング・テーブル２５１の１つの実施形態は、ポート・ルート・タイプ、プロトコルタイプ、ＩＰアドレス、ポート番号、そして特定されたネットワークを有する特定のルーティング情報を包含する５つの異なるフィールドを有する。
【００９１】
上記システムは、双方向通信を提供する能力をサポートする。これは、モバイルルータはパケットをホスト・ネットワークにインバウンドすることができ、ホスト・ネットワークに属するアプリケーションは、パケットをモバイルルータにアウトバウンドすることができると言われている。この双方向通信の特性から、ポート・ルーティング・テーブルはモバイルルータとホスト・ネットワーク・サーバーの双方に存在する必要がある。したがって、どちらの側が伝送を初期化するに関わり無く、パケットは正しく選択されたネットワークを通して伝送される。
【００９２】
１つの実施形態では、ポート・ルート・タイプ・フィールドは、「イグノア」、「オルタネート」あるいは「デフォルト」のキーワードを含む。各キーワードは、パケットがモバイルルータ２００により受信されたときに、ユーザが定義した基準に合致するパケットに対しルーティング動作を明示する。
【００９３】
もし、パケットの特徴が、ポート・ルーティング・テーブル２５１に保存されたユーザが定義した基準に合致し、対応するポート・ルーティング・タイプ・フィールドが「イグノア」ネットワーク・インジケータ値を含むならば、そのパケットは、着信先到達不可能インターネット・コントロール・メッセージ・プロトコル（ＩＣＭＰ）パケットとして、無線ネットワークを通して送られること無く送信元に戻される。ＩＣＭＰパケットは、ネットワーク内のゲートウェイやコンピュータが、エラーを報告し、あるいは予期しない状況に関する情報を提供できるようにするために提供される。生成され得るＩＣＭＰパケットには数種類あり、それぞれはエラー状態の種類を特定する。モバイルルータ２００内のポートルーティングは、パケットがその宛先に届くためにネットワークを通過することが出来なかった場合など、ある条件のもと、着信先到達不可能メッセージを生成する。
【００９４】
もし、パケットの特徴が、ポート・ルーティング・テーブル２５１に保存されたユーザが定義した基準に合致せず、対応するポート・ルーティング・タイプ・フィールドが「オルタネート」ネットワーク・インジケータ値を含む場合、パケットは特定された代わりの無線ネットワークを介して送られる。
【００９５】
もし、パケットが「デフォルト」ネットワーク・インジケータ値を含むポート・ルーティグ・テーブル２５１のエントリに合致する場合には、パケットはデフォルトネットワークを介して送られる。初め、デフォルト・ネットワーク・タイプは、デフォルトルートがポート・ルーティング・テーブル２５１にエントリがないときと同じ機能性を示すことから無駄に見える。しかし、デフォルトルートは、非特定イグノアルート(non-specific Ignore route)と関連して用いられるときに役立つ。例えば、もしユーザが全てのＴＣＰアプリケーションを自動的に無視するようにイグノア・ポート・ルートを追加するならば、彼はポート８０（ウェブブラウザ）をデフォルトルートとして付け加えたいと望むであろう。これら２つのルートの追加は、ウェブブラウザを除く全てのＴＣＰアプリケーションを却下する。このときウェブブラウザは、デフォルトのネットワークを用いる。
【００９６】
ＩＰアドレスフィールドは、モバイルルータ２００によって受け取られたパケットに関連する少なくとも１つのＩＰアドレスを特定する。それは「全て」のＩＰアドレス、あるいは特定のＩＰアドレスを表すことができる。もし、特定のＩＰアドレスがエンターされると、ユーザはＩＰアドレスが送信元あるいは宛先アドレスの何れに現れるかを特定する選択の機会を有する。
【００９７】
プロトコル・タイプ・フィールドは、どのタイプのトランスポート・レベル・プロトコルがポートルーティング機能性に当てられるのかを特定する。例えば、本ポートルーティングの発明における１つの実施形態は、ＴＣＰパケット、ＵＤＰパケット、あるいは何れかのプロトコルを有するパケットをコントロールするであろう。ＴＣＰ及び／又はＵＤＰアプリケーションは、ＴＣＰとＵＤＰプロトコルがポートの概念を有することから、ポートルーティングの特性を利用するであろう。ルート・レジストレーションは、非ポート・ルーティング・モバイル・ルータ２００が継続して機能することを保証するために下位互換性によりなお維持されてもよい。
【００９８】
ポート番号フィールドは、モバイルルータ２００によって受け取られたパケットのＩＰポート番号を特定する。ユーザは全てのポートを特定することができ、あるいは個々のポートを特定する選択肢を有する。ユーザはまた、ポート番号がＴＣＰやＵＤＰヘッダ内の送信元あるいは宛先ロケーションに現れるかを特定する選択の機会を有する。
【００９９】
ネットワークＩＤフィールドは、どのネットワークが上記アプリケーションを送達するのに用いられるかを特定する。このフィールドは、ルートタイプが「オルタネート」と指定された場合にのみ適用できる。
【０１００】
図１３は、様々なポート・ルーティング・コンフィギャレーションを有するポート・ルーティング・テーブル２５１の一例を示す。図１３に示されるように、ポート・ルーティング・テーブル２５１内には、多くの異なるポート・ルーティング・エントリを加えることができる。ポート・ルーティング・テーブル２５１内のデータを検索するとき、モバイルルータ２００は常に最も具体的なエントリから最も具体的でないエントリへと検索する。したがって、最も具体的なエントリは、より包括的なエントリよりも前に処理される。
【０１０１】
ポート・ルーティング・テーブル２５１の第１の並びでは、ポートルーティングは、受信されポート２３を有する全てのＴＣＰパケットが無視されるように構成されている。このルートは「イグノア」ルートとして参照される。このポート・ルーティング・コンフィギャレーションは、ＴＥＬＮＥＴアプリケーションがモバイルルータ２００を介して機能することを許可しない。データパケットはどのネットワークを介してもルートされないので、ネットワークＩＤフィールドにネットワークを定義する必要はない。
【０１０２】
第２の並びでは、「オルタネート」エントリが、ＴＥＬＮＥＴアプリケーションパケットが自動的に特定の代わりのネットワーク、この場合ネットワークＢ、を通してルートされることを明示する。例えば、これはＴＥＬＮＥＴアプリケーションが、それらがあるネットワーク（すなわちネットワークＢ）の範囲にある場合にのみ機能することを許可する。
【０１０３】
第３の並びでは、「オルタネート」エントリが、モバイルルータ２００がはっきりとウェブブラウザパケット（ポート８０）を、この場合ネットワークＢを介して、ルートすることを明示する。例えば、このポート・ルーティング・コンフィギャレーションは、管理者が、ユーザがネットワークＢ以外のネットワークを介してブラウザを実行することを望まない場合に使用されかもしれない。
【０１０４】
第４の並びには、「デフォルト」エントリが示されている。「デフォルト」エントリは、ポート番号６３８０で送信あるいは受信された如何なるパケットも現在のデフォルトネットワークを使用することを明示する。この例では、現在のデフォルトネットワークはネットワークＡである。この動作は、機能的にはポートルーティングを使用しない場合にも類似する。
【０１０５】
第５の並びには、「イグノア」エントリが示されている。「イグノア」エントリは、１０．１０．２．３の送信元あるいは宛先ＩＰアドレスの何れかを有して受信された如何なるパケットも破棄されることを明示する。「イグノア」エントリが示される場合には、データパケットはどのネットワークを介しても送達されないことから、ネットワークＩＤフィールドにネットワークを定義する必要はない。イグノアエントリの使用例は、あるサーバーへの通信を制限することである。
【０１０６】
上記機能性は、分散型環境設定(distributed configuration)、集中型環境設定(centralized configuration)の何れでも実行され得る。分散型環境設定では、全てのモバイルルータ２００が実行するポートルーティングは、個別に環境設定される。集中型環境設定では、システム管理者はポートルーティングをホスト・ネットワーク・サーバー２０上で環境設定してもよく、各モバイルルータ２００に環境設定を送り出し(pushed)てもよい。
【０１０７】
ポート・ルーティング・テーブル２５１に定義された静的環境設定とは別に、ポートルーティングが適正に機能するために実行時にモバイルルータ２００とホスト・ネットワーク・サーバー２０との間で共有されるべき追加的なデータが存在する。現在、モバイルクライアントは、ホスト・ネットワーク・サーバー２０にのみ、そのモバイルクライアントのデフォルトネットワークへの変更のみを通知する。ポートルーティングが適正に機能するために、モバイルクライアントは、どの「サービス区域内(in-coverage)」のネットワークがモバイルルータ２００のためにアクティブであると考えられるべきかに加え、何れかのネットワークが「サービス区域内」の状態に入ったときに、それらのオペレーションがホスト・ネットワーク・サーバー２０に通知する能力を高めるべきである。次に、ホスト・ネットワーク・サーバー２０は、１つのネットワークをデフォルトルートとして指定する能力を提供するとともに、同じ宛先レンジに対しそのマスタ・ルート・テーブルにおいて、多数のエントリを許容する能力が高められるべきである。
【０１０８】
（ポート・ルーティング・ロジック）
図１４は、ネットワークサーバー２０が、各モバイルルータ２００において登録されたネットワークをモニタする方法の一例を示すフローダイアグラムである。ポートルーティングが正しく作動するためには、ホスト・ネットワーク・サーバー２０は、各モバイルルータ２００に登録された全てのネットワークの利用可能性を知らなければならない。
【０１０９】
ステップ１５０２では、モバイルルータ２００はネットワークのサービス区域の変更を検知する。次ぎに、ステップ１５０４では、ネットワークが利用可能になったか否かが判定される。もしネットワークが使用可能となれば、モバイルルータ２００は、プライマリネットワーク(primary network)がステップ１５０６において変わるべきか決定する。もし、プライマリネットワークが変わるべきであれば、モバイルルータ２００は、ステップ１５０８においてホスト・ネットワーク・サーバー２０にプライマリレジストレーション(primary registration)を送る。ホスト・ネットワーク・サーバー２０が一旦ステップ１５１０においてパケットを受け取ると、ホスト・ネットワーク・サーバー２０は自動的にそのネットワークをプライマリネットワークとして指定し、そして他の全てのネットワークを第２順位に降格する。そしてこのロジックシークエンス(logic sequence)は終了する。
【０１１０】
もしステップ１５０６において、プライマリネットワークが変わるべきでない場合には（すなわち、バックアップネットワークがサービス区域内となる）、モバイルルータ２００は、ステップ１５１２において、代わりのルート・レジストレーションをホスト・ネットワーク・サーバー２０に送る。ホスト・ネットワーク・サーバー２０が代わりのルートをステップ１５１４において受け取ると、ホスト・ネットワーク・サーバー２０は、それをデフォルトとすることなくネットワークのステータスを更新する。次ぎに、このロジックシークエンスは終了する。
【０１１１】
もし、ステップ１５０４において、ネットワークが利用できない場合、モバイルルータ２００はステップ１５１６においてルート削除メッセージをサーバーに送る。そしてホスト・ネットワーク・サーバー２０がステップ１５１６においてルート削除メッセージを受け取ると、それは自動的にそのルートをそれのテーブルから削除する。その後、このロジックシークエンスは終了する。
【０１１２】
図１５（ａ）と１５（ｂ）は、本発明の観点に従ってルートが決定される方法の一例を図示する。ステップ１５５２では、モバイルルータ２００がパケットを受信する。次ぎにステップ１５５４においてポートルーティングがアクティブであるか否かが判定される。そうでなければ、ステップ１５７２において、パケットはデフォルトのプライマリネットワークを通して送達される。そして、このロジックシークエンスは終了する。
【０１１３】
もし、ステップ１５５４において、ポートルーティングが可能であることが分かると、モバイルルータ２００は、ステップ１５５６において、ポート・ルーティング・テーブル２５１を検索する。ステップ１５５８において、パケットがポート・ルーティング・テーブル２５１内のどのエントリにも合致しないと、パケットはステップ１５７２において、デフォルト・プライマリ・ネットワークを通って送達される。そして、このロジックシークエンスは終了する。
【０１１４】
もし、ステップ１５５８において、パケットがポート・ルーティング・テーブル２５１のエントリに合致すると、このロジックはステップ１５６０に進む。ステップ１５６０では、合致したエントリが「デフォルト」の型のルートを含むか否かが判定される。もし是であれば、パケットはステップ１５７２において、デフォルト・プライマリ・ネットワークを通って送達される。そして、このロジックシークエンスは終了する。
【０１１５】
ステップ１５６０において、「デフォルト」型が見つからないと、ロジックはステップ１５６２に進む。ステップ１５６２では、合致したエントリが「イグノア」型のルートを持つか否かが判定される。是であれば、パケットは送信されず、ステップ１５７４において、ＩＣＭＰ着信先到達不可能パケットが送信元の送り返される。続いて、このロジックシークエンスは終了する。
【０１１６】
もしステップ１５６２において、「イグノア」型が見つからないと、ステップ１５６４において、合致したポート・ルート・エントリが「オルタネート」型のルートを持つか否かが判定される。「オルタネート」が明記されていると、ネットワークＩＤフィールドにおいて特定されたネットワークは、ステップ１５６６において、マスタ・ルート・テーブル（図５）における検索に用いられる。そして、ロジックはステップ１５６８に進み、ネットワークＩＤフィールドで特定されたネットワークと関連するマスタ・ルート・テーブルにルートが存在するか否かが判定される。もしステップ１５６４においてルートが「オルタネート」型でないと、このロジックシークエンスは終了する。
【０１１７】
もし、ステップ１５６８において、ネットワークＩＤフィールドに列挙されたネットワークに関連するマスタ・ルート・テーブルにルートが存在しないと、パケットは送られず、ＩＣＭＰ着信先到達不可能パケットが送信元の送り返される。例えば、これはネットワークＩＤフィールド内で特定されたネットワークがステップ１５７４において利用できない場合（例えば、サービス区域外、信号が弱い等）に発生し得る。そして、ロジックシークエンスは終了する。もし、ステップ１５６８において、ネットワークＩＤフィールド内に列挙されたネットワークと関連するマスタ・ルート・テーブルにルートが存在すると、ロジックはステップ１５７０に進み、デフォルト・プライマリ・ネットワークに関連するルートの代わりに、パケットはネットワークＩＤフィールド内で特定されたネットワークを通って送達される。その後、ロジックシークエンスは終了する。
【０１１８】
図１５（ａ）及び１５（ｂ）は、モバイルルータ２００がパケットを受け取る態様を例示するが、同じロジックがホスト・ネットワーク・サーバー２０からのアウトバウンドのポートルーティングに用いられ得ることが認識されるべきである。
【０１１９】
（ポート・ルーティング・コンフィギャレーション・スクリーン、編集スクリーン、及びデフォルト・ルート・テーブル）
図１６は、ポート・ルーティング・コンフィギャレーション・スクリーン２５３を示す例示的なスクリーンショットである。この例では、モバイル管理者は、いくつかの特定のポートルートを追加している。第１の並びでは、送信元あるいは宛先ポートフィールドの何れにおいても、８０の全てのＴＣＰパケットを無線ＬＡＮのＩＤを有するネットワークを通ることを強制するために、ユーザはポートルーティング定義を具体的に追加している。第２の並びでは、送信元あるいは宛先ポートフィールドの何れにおいても、６５６０の全てのＵＤＰがシエラ無線(Sierra Wireless)ＭＰ２００ネットワークを通して送られることを明示している。第３のエントリは、９７５３の宛先ポートを有する如何なるパケットもシエラ無線ＭＰ２００ネットワークを通ることを明示する。第４の並びでは、ワイルドカードポート番号を有するイグノアルートが選択されていることから、受信されてた全てのパケットは、送信元あるいは宛先フィールドの何れにおいて如何なるポート番号を有していても無視される。第５行目は、２３の宛先あるいは送信元ポート番号を有する如何なるパケットも特に無視することを要求するエントリである。
【０１２０】
ポート・ルーティング・テーブル２５１に特定のポート・ルート・エントリが全く列挙されていなかったならば、ポートルーティング機能性は機能しない。この状況では、デフォルトルートが受け入れられる。この状態では、ポート・ルーティング・コンフィギャレーション・スクリーン２５３は、全てのトラフィックが利用可能かつ最も高い優先順位により選択されるネットワークに従って送達されることをユーザに知らせる。
【０１２１】
図１７は、ユーザがポート・ルーティング・コンフィギャレーションを編集することを可能にするポート・ルーティグ・スクリーンを例示するスクリーンショットである。このスクリーンでは、ユーザはポートルーティングのための環境設定を追加することができる。このスクリーンは、図１６に示されるように、ユーザがポート・ルーティング・スクリーン２５３から追加ボタン２５５をクリックすることにより現れる。
【０１２２】
環境設定ウインドウは、２つのセクションに分離されている。パケット・プロパティ・セクション（２５７、上半分）では、ユーザは特定のルールが用いられるべき実際のパケットの基準を特定できる。パケット・ディスポジション・セクション（２５９、下半分）では、ユーザはルールが表すパケットのルーティングを特定することができる。
【０１２３】
「全ＩＰアドレス」のチェックボックス２６１は、エントリが全てのＩＰアドレスに適用されるのか、単に個々の適用されるのかを特定する。もし、ユーザが具体的なＩＰアドレスを特定したいのであれば、更にそれがＵＤＰあるいはＴＣＰヘッダにおいて、送信元か、宛先か、あるいは両方のロケーションに現れるのかを特定するオプションも有する。
【０１２４】
「全ポート」のチェックボックス２６３は、ユーザが特定のポート番号あるいは全てのポートの何れかを特定することを可能にする。もし、ユーザが全てのポートを特定すると、ユーザは更にＵＤＰあるいはＴＣＰヘッダにおいて、ポート番号が送信元、宛先、あるいは両方のロケーションに現れるのかを選択することが可能である。「プロトコル」フィールドはこのエントリがＴＣＰ、ＵＤＰあるいは両タイプのＩＰパケットに適用されるのかを特定する。
【０１２５】
パケット・ディスポジション・セクション２５９では、パケットが受け取られたときに起こり得る３つの結果が列挙されている。もし「オルタネート」ラジオボタン２６５が選択されると、ユーザが選択したプロパティに合致するパケットが着くと、それは「ネットワーク」ドロップ・ダウン・リスト・ボックス２６７において特定されたネットワークのみを通って送達される。もし、「デフォルト」ラジオボタン２６９が選択されると、ユーザが選択したプロパティに合致するパケットが着くと、それはデフォルトネットワーク環境設定にしたがって送達される。最後に、もし「イグノア」ラジオボタン２７１が選択される場合、ユーザが定義した基準に合致するとパケットが解析されると、それは無視されＩＣＭＰ着信先到達不可能メッセージがパケットの送信者に送り返される。
【０１２６】
図１８（ａ）は、デフォルト・ルート・テーブルからの情報を与える例示的サンプルのスクリーンショットである。本発明は、システム上のモバイルアプリケーションや装置により使用されるアクティブルートを表示するこのようなウインドウを備える。マイクロプロセッサはデータをバイナリフォーマットで保存することから、ルートテーブルの内部フォーマットは人には読めない。したがって、本発明は、管理者に対して、より意味のある体裁でパケットを表示するために用いられるグラフィカル・ユーザ・インタフェースを与える。
【０１２７】
図１８（ｂ）は、非アクティブあるいは代わりのルートを表示するためのルートテーブルの例示的な第２の「ビュー」のスクリーンショットである。「プライマリ」ルート・テーブル・タブ２７３が選択されるとき、プライマリ・ルート・テーブルは、図１８（ａ）に示されるように、アクティブなルートを表示する。「オルタネート」ルート・テーブル・タブ２７５が選択されるとき、オルタネート・ルート・テーブルは、非アクティブなルートのみを表示する。このスクリーンでは、ユーザは「プライマリ」タブあるいは「オルタネート」の何れかをクリックする選択肢を有する。ビューは、その後、特定のルートテーブルを反映するために自動的に更新される。
【０１２８】
本発明は、いくつかの代表的な実施形態に関連して説明されたが、使用された言葉は限定する言葉ではなくむしろ説明と例示のための言葉である。これまでに述べられ修正されたように、その目的において本発明の範囲と精神から逸脱することなく添付された請求項の範囲内で変更を行ない得る。本発明は特定の方法、用具、実施形態に関して説明されたが、本発明は開示された特定のものに限定されるように意図された訳ではなく、むしろ、本発明は、添付された請求項の範囲内において、機能的に等価な構造、方法、そして利用方法に拡張される。例えば、上記実施形態は全体としてモバイルルータ２００からの無線ネットワークを通してのルーティングに言及しているが、本発明はホスト・ネットワーク・サーバー２０からデータを送る場合にも動作する。この場合、ホスト・ネットワーク・サーバー２０は、モバイルルータ２００がデータをルーティングし単独でネットワークの利用可能性を判定する場合に対比して、モバイルルータ２００から受け取った情報に基づいてネットワークの利用可能性を判定する。
【０１２９】
本発明は、いくつかの代表的な実施形態に関連して説明されたが、使用された言葉は限定する言葉ではなくむしろ説明と例示のための言葉である。これまでに述べられ修正されたように、その目的において本発明の範囲と精神から逸脱することなく添付された請求項の範囲内で変更を行ない得る。本発明は特定の方法、装置(implementations)、実施形態に関して説明されたが、本発明は開示された特定のものに限定されるように意図された訳ではなく、むしろ、本発明は、添付された請求項の範囲内において、機能的に等価な構造、方法、そして利用方法に拡張される。
【０１３０】
本発明の様々な実施形態に従って、ここで説明される方法は、コンピュータプロセッサ上において実行されるソフトウェアプログラムとしての動作に向けられている。特定用途向け集積回路(application specific integrated circuits)、プログラム可能ロジックアレイ(programmable logic arrays)、そして他のハードウェア装置を含む（これらに限定されるわけではないが）専用のハードウェア装置(hardware implementations)は、ここで説明される方法を実行するために同様に構成される。また更に、分散型プロセッシング(distributed processing)、あるいはコンポーネント／オブジェクト分散型プロセッシング、並列プロセッシング、あるいは仮想マシーンプロセッシング(virtual machine processing)を含む（限定される分けではないが）代わりのソフトウェア手段(software implementations)もまたここで説明される方法を実行するように構成される。
【０１３１】
また、ここで説明された本発明のソフトウェア手段は、有形の(tangible)記録媒体に随意保存されており、それは：ディスクやテープなどの磁気媒体；ディスクなどの光磁気や光学媒体；あるいはメモリカードや読み出し専用（不揮発性）メモリ、ランダムアクセスメモリや、他の書込み可能（揮発性）メモリを１つ以上収容する他のパッケージなどの固体記録媒体(solid state medium)である。電子メールへのデジタルファイルの添付、あるいは他の自己充足型情報アーカイブ(self-contained information archive)やアーカイブのセットは、有形の記録媒体と等価な分散型媒体(distribution medium)と考えられる。したがって、本発明は、ここに列挙されるように有形の記録媒体や分散型媒体を含むと考えられ、ここででのソフトウェア手段が保存される技術的認識の上での等価物(art-recognized equivalents)及び後継媒体(successor media)が含まれる。
【０１３２】
本明細書は特定の規格とプロトコルに関連して実施形態で与えられた構成と機能を説明したが、本発明はそのような規格やプロトコルに限定されるものではない。インターネットのための各々の規格と他のパケット交換ネットワーク伝送（例えば、ＴＣＰ／ＩＰ、ＵＤＰ／ＩＤ）；そして周辺コントロール（ＩｒＤＡ；ＲＳ２３２Ｃ；ＵＳＢ；ＩＳＡ；ＥｘＣＡ；ＰＣＭＣＩＡ）はこの技術の状況を例示する。このような規格は周期的に、本質的に同じ機能をもつより高速あるいはより効率的な等価物に取って代わられる。したがって、置き換えられた同じ機能を有する規格及びプロトコルは均等物と考えられる。
【図面の簡単な説明】
【０１３３】
【図１】ホスト・ネットワーク・サーバー、多重無線ネットワーク、多数のモバイルルーティング装置を含む無線モバイル・ルーティング・システムの一覧図である。
【図２】モバイルルータを含むモバイルクライアント側の無線モバイル・ルーティング・システムの全体の概観を模式的に示す。
【図３】ホスト・ネットワーク・サーバーのためのソフトウェア構造を模式的に示す。
【図４】無線ネットワークにおいて受信された到着データ(incoming data)を処理するためのホスト・ネットワーク・サーバーによって実行されるプロセスの例を示すフローチャートである。
【図５】ルートテーブルの代表例である。
【図６】出発データを処理するためのホスト・ネットワーク・サーバーにおいて実行されるロジックの例を示すフローチャートである。
【図７】出発データを処理するためのホスト・ネットワーク・サーバーにおいて実行されるロジックの例を示すフローチャートである。
【図８】出発データを処理するためのホスト・ネットワーク・サーバーにおいて実行されるロジックの例を示すフローチャートである。
【図９】初期状態におけるモバイルルータのためのソフトウェア構造の一例を示す。
【図１０】後の状態におけるモバイルルータのためのソフトウェア構造の一例を示す。
【図１１】ルート・レジストレーション・パケットの一例を示す。
【図１２】本発明の目的にしたがった、ポートルーティング機能性のグラフィカルな表現の一例を示す。
【図１３】本発明の目的にしたがった、多様なポート・ルーティング・コンフィギャレーションを有するポート・ルーティング・テーブルの一例を模式的に示す。
【図１４】本発明の目的にしたがった、ルートが登録される方法の一例を描くフローダイアグラムである。
【図１５（ａ）】本発明の目的にしたがった、ポートルーティングが許可されたときにルートが検索される方法の一例を描いたフローダイアグラムである。
【図１５（ｂ）】本発明の目的にしたがった、ポートルーティングが許可されたときにルートが検索される方法の一例を描いたフローダイアグラムである。
【図１６】本発明の目的にしたがった、モバイル管理者が５つの特定のルートを追加したポート・ルーティング・コンフィギャレーション・スクリーンの一例を示すスクリーンショットである。
【図１７】本発明の目的にしたがった、ポート・ルーティング・エントリを編集可能とするポート・ルーティング・コンフィギャレーション・スクリーンの一例を示すスクリーンショットである。
【図１８（ａ）】本発明の目的にしたがった、ルートテーブル表示の一例のスクリーンショットである。
【図１８（ｂ）】本発明の目的にしたがった、ルートテーブル表示の一例のスクリーンショットである。
【図１】
2005519504.tif 000003
【図２】
2005519504.tif 000004
【図３】
2005519504.tif 000005
【図４】
2005519504.tif 000006
【図５】
2005519504.tif 000007
【図６】
2005519504.tif 000008
【図７】
2005519504.tif 000009
【図８】
2005519504.tif 000010
【図９】
2005519504.tif 000011
【図１０】
2005519504.tif 000012
【図１１】
2005519504.tif 000013
【図１２】
2005519504.tif 000014
【図１３】
2005519504.tif 000015
【図１４】
2005519504.tif 000016
【図１５（ａ）】
2005519504.tif 000017
【図１５（ｂ）】
2005519504.tif 000018
【図１６】
2005519504.tif 000019
【図１７】
2005519504.tif 000020
【図１８（ａ）】
2005519504.tif 000021
【図１８（ｂ）】
2005519504.tif 000022
【国際調査報告】
2005519504.tif 000023