(57)【要約】      （修正有）【課題】マルチホーミングネットワークデバイスからデータネットワークにデータを送信および受信する方法を提供する。【解決手段】ネットワークポリシーを定義することと、当該ネットワークポリシーをルーティングモジュールに送信する（３００）こととを含む。さらに、方法は、ルーティングモジュールから経路範囲を受信する（３０２）ことを含む。経路範囲はネットワークポリシーを満足するデータネットワークに対するデータインターフェースのサブセットを識別し、ここにおいてデータインターフェースのサブセットは１組の利用可能なデータインターフェースから選択され、ここにおいてデータインターフェースのサブセットは少なくとも１つのデータインターフェースを含む。【選択図】図３
2011172220.tif 000002
【特許請求の範囲】
【請求項１】
マルチホーミングネットワークデバイスからデータネットワークにデータを送信および受信する方法であって、前記方法は、
ネットワークポリシーを定義することと、
前記ネットワークポリシーをルーティングモジュールに送信することと、
前記ルーティングモジュールから経路範囲を受信することとを具備する、ここにおいて前記経路範囲は前記ネットワークポリシーを満足する前記データネットワークへのデータインターフェースのサブセットを識別し、ここにおいてデータインターフェースの前記サブセットは１組の利用可能なデータインターフェースから選択され、ここにおいてデータインターフェースの前記サブセットは少なくとも１つのデータインターフェースを含む、方法。
【請求項２】
前記ネットワークポリシーは、前記１組の利用可能なデータインターフェースからデータインターフェースの前記サブセットを選択するための１つまたはそれより多くの基準を識別する請求項１に記載の方法。
【請求項３】
前記ネットワークポリシーは、アプリケーションへの／からのデータ転送のために使用されるべき２つまたはそれより多くのデータインターフェースを定義する請求項２に記載の方法。
【請求項４】
前記ネットワークポリシーはアプリケーションによって定義される請求項３に記載の方法。
【請求項５】
データインターフェースの前記サブセットは、移動体通信用グローバルシステム（ＧＳＭ）データインターフェース、汎用パケット無線サービス（ＧＰＲＳ）データインターフェース、ユニバーサル移動体通信システム（ＵＭＴＳ）データインターフェース、符号分割多元接続（ＣＤＭＡ）データインターフェース、ＣＤＭＡ２０００データインターフェース、ＣＤＭＡエボリューションデータオプティマイズド（ＥＶＤＯ）インターフェース、Ｂｌｕｅｔｏｏｔｈ（ＢＴ）データインターフェース、８０２．１１ａデータインターフェース、８０２．１１ｂデータインターフェース、８０２．１１ｇデータインターフェース、８０２．１１ｉデータインターフェース、８０２．１５データインターフェース、８０２．１６データインターフェース、広帯域ＣＤＭＡ（ＷＣＤＭＡ）データインターフェース、直交周波数符号分割多重（ＯＦＣＤＭ）データインターフェース、全地球測位システム（ＧＰＳ）データインターフェース、またはこれらの組合せを含む請求項１に記載の方法。
【請求項６】
前記ネットワークポリシーに関連するアプリケーションは、前記経路範囲によって識別されるデータインターフェースの前記サブセットにバインドされる請求項１に記載の方法。
【請求項７】
データインターフェースの前記サブセット内の好ましいデータインターフェースが利用可能かどうかを決定することと、
前記好ましいデータインターフェースが利用可能であるときに前記好ましいデータインターフェースを介して接続を開くことと、
前記好ましいデータインターフェースを介してデータを送信することと
をさらに具備する請求項６に記載の方法。
【請求項８】
前記好ましいデータインターフェースが利用可能でないときに、データインターフェースの前記サブセット内の次に好ましいデータインターフェースが利用可能かどうかを決定することと、
前記次に好ましいデータインターフェースを介して接続を開くことと、
前記次に好ましいデータインターフェースを介してデータを送信することと
をさらに具備する請求項７に記載の方法。
【請求項９】
前記接続が遮断されているかどうかを決定することと、
前記接続が遮断されているときに、次に好ましいデータインターフェースが利用可能かどうかを決定することと、
前記次に好ましいデータインターフェースを介して接続を開くことと、
前記次に好ましいデータインターフェースを介してデータを送信することと
をさらに具備する請求項７に記載の方法。
【請求項１０】
プロセッサと、
前記プロセッサがアクセス可能なメモリと、
前記メモリ内に記憶された少なくとも１つのアプリケーションと、
前記メモリ内に記憶された少なくとも１つのネットワークポリシーとを具備し、ここにおいて前記少なくとも１つのネットワークポリシーは、データを送信および受信するために前記アプリケーションによって使用されるべき少なくとも１つのデータインターフェースを定義する、マルチホーミングネットワークデバイス。
【請求項１１】
前記メモリ内に記憶された経路範囲をさらに具備し、ここにおいて前記経路範囲はルーティングモジュールから受信される、ここにおいて前記経路範囲は前記ネットワークポリシーを満足するデータインターフェースのサブセットを含み、ここにおいてデータインターフェースの前記サブセットは１組の利用可能なデータインターフェースから選択される請求項１０に記載のマルチホーミングネットワークデバイス。
【請求項１２】
データインターフェースの前記サブセットは、移動体通信用グローバルシステム（ＧＳＭ）データインターフェース、汎用パケット無線サービス（ＧＰＲＳ）データインターフェース、ユニバーサル移動体通信システム（ＵＭＴＳ）データインターフェース、符号分割多元接続（ＣＤＭＡ）データインターフェース、ＣＤＭＡ２０００データインターフェース、ＣＤＭＡエボリューションデータオプティマイズド（ＥＶＤＯ）インターフェース、Ｂｌｕｅｔｏｏｔｈ（ＢＴ）データインターフェース、８０２．１１ａデータインターフェース、８０２．１１ｂデータインターフェース、８０２．１１ｇデータインターフェース、８０２．１１ｉデータインターフェース、８０２．１５データインターフェース、８０２．１６データインターフェース、広帯域ＣＤＭＡ（ＷＣＤＭＡ）データインターフェース、直交周波数符号分割多重（ＯＦＣＤＭ）データインターフェース、全地球測位システム（ＧＰＳ）データインターフェース、またはこれらの組合せを含む請求項１１に記載のマルチホーミングネットワークデバイス。
【請求項１３】
前記経路範囲は、前記ネットワークポリシーに基づいてルーティングモジュールによって生成される請求項１１に記載のマルチホーミングネットワークデバイス。
【請求項１４】
データインターフェースの前記サブセットは階層に編成され、前記マルチホーミングネットワークデバイスは前記階層内の第１の利用可能なデータインターフェースに基づいて、データインターフェースの前記サブセットのうちのそれぞれを介して一度に１つずつ通信を確立しようと試みる請求項１１に記載のマルチホーミングネットワークデバイス。
【請求項１５】
前記プロセッサに結合されたトランシーバと、
前記トランシーバに結合されたアンテナと
をさらに具備する請求項１０に記載のマルチホーミングネットワークデバイス。
【請求項１６】
複数のデータインターフェースをさらに具備する、ここにおいて前記複数のデータインターフェースのそれぞれは異なるデータネットワークへのアクセスを提供する請求項１０に記載のマルチホーミングネットワークデバイス。
【請求項１７】
前記複数のデータインターフェースのそれぞれはアクセス制御リスト（ＡＣＬ）を含み、ここにおいて前記ＡＣＬは対応するデータインターフェースへのアクセスを制限する請求項１６に記載のマルチホーミングネットワークデバイス。
【請求項１８】
前記ＡＣＬは非ゼロの優先順位番号を返す、ここにおいて前記非ゼロの優先順位番号は、前記対応するデータインターフェースが特定のネットワークポリシーで使用可能であることを指示する請求項１７に記載のマルチホーミングネットワークデバイス。
【請求項１９】
前記非ゼロの優先順位番号は、前記対応するデータインターフェースに関連する優先のレベルを識別する請求項１８に記載のマルチホーミングネットワークデバイス。
【請求項２０】
前記マルチホーミングネットワークデバイス内の第１のアプリケーションは第１のデータインターフェースを介して第１のネットワークにアクセスし、前記マルチホーミングネットワークデバイス内の第２のアプリケーションは第２のデータインターフェースを介して第２のネットワークにアクセスする請求項１０に記載のマルチホーミングネットワークデバイス。
【請求項２１】
プロセッサがアクセス可能なコンピュータ可読媒体であって、前記コンピュータ可読媒体は、
少なくとも１つのアプリケーションと、
前記少なくとも１つのアプリケーションに関連する少なくとも１つのネットワークポリシーとを具備する、ここおいて前記ネットワークポリシーは前記アプリケーションに関するデータを伝達するためのマルチホーミングネットワークデバイスの２つまたはそれより多くのデータインターフェースを識別する、コンピュータ可読媒体。
【請求項２２】
経路範囲をさらに具備する、ここにおいて前記経路範囲は前記ネットワークポリシーに従い、前記コンピュータ可読媒体がインストールされているデバイスにおける１組の利用可能なデータインターフェースから選択された少なくとも１つのデータインターフェースのサブセットを含む請求項２１に記載のコンピュータ可読媒体。
【請求項２３】
前記経路範囲は、前記ネットワークポリシーに少なくとも部分的に基づいてルーティングモジュールによって生成される請求項２２に記載のコンピュータ可読媒体。
【請求項２４】
アプリケーションにデータインターフェースをバインドする方法であって、前記方法は、
前記アプリケーションからネットワークポリシーを受信することと、
マルチホーミングネットワークデバイスにおける１組の利用可能なデータインターフェース内の全てのデータインターフェースではなく、データインターフェースのサブセットに前記アプリケーションをバインドすることとを具備する、ここにおいてデータインターフェースの前記サブセットは少なくとも１つのデータインターフェースを含む、方法。
【請求項２５】
前記アプリケーションがバインドされるデータインターフェースの前記サブセットを示す経路範囲を作成することをさらに具備する請求項２４に記載の方法。
【請求項２６】
前記アプリケーションに関連するソケット内に前記経路範囲を記憶することをさらに具備する請求項２５に記載の方法。
【請求項２７】
前記ネットワークポリシーは、アプリケーションへの／からのデータ転送のために使用されるべき２つまたはそれより多くのデータインターフェースを識別する請求項２６に記載の方法。
【請求項２８】
前記経路範囲は、前記１組の利用可能なデータインターフェースのビットマスクである請求項２５に記載の方法。
【請求項２９】
データインターフェースからデータパケットを受信することと、
前記データインターフェースのインターネットプロトコル（ＩＰ）アドレスを、前記パケットに関連する宛先ＩＰアドレスと比較することと、
前記データインターフェースの前記ＩＰアドレスが前記宛先ＩＰアドレスと一致しないときに前記データパケットを廃棄することと
を具備する、データを受信する方法。
【請求項３０】
前記データインターフェースの前記ＩＰアドレスが前記宛先ＩＰアドレスと一致するときに、前記データパケットがソケットに属するかどうかを決定することをさらに具備する請求項２９に記載の方法。
【請求項３１】
前記データパケットが前記アプリケーションに関連するソケットに属さないときに前記データパケットを廃棄することをさらに具備する請求項３０に記載の方法。
【請求項３２】
前記データパケットがトランスポート制御ブロックを含むときに、前記データパケットに関連するアプリケーションに関する経路範囲を検索することをさらに具備する請求項３０に記載の方法。
【請求項３３】
前記パケットが受信されるデータインターフェースに関する一時的な経路範囲を作成することをさらに具備する請求項３２に記載の方法。
【請求項３４】
前記一時的な経路範囲が前記経路範囲に従うかどうかを決定することをさらに具備する請求項３３に記載の方法。
【請求項３５】
前記一時的な経路範囲が前記経路範囲に従うときに、前記データパケットを前記アプリケーションに転送することをさらに具備する請求項３４に記載の方法。
【請求項３６】
前記一時的な経路範囲が前記経路範囲に従わないときに、前記データパケットを廃棄することをさらに具備する請求項３４に記載の方法。
【請求項３７】
前記データパケットが廃棄されることを示すメッセージを用いてピアデバイスに応答する請求項３６に記載の方法。
【請求項３８】
結果を生成するために前記一時的な経路範囲および前記経路範囲に関してビット毎の論理積演算を実行することをさらに具備する請求項３３に記載の方法。
【請求項３９】
前記結果がゼロであるときに前記データパケットを廃棄することをさらに具備する請求項３８に記載の方法。
【請求項４０】
前記結果が非ゼロであるときに前記データパケットを保持することをさらに具備する請求項３８に記載の方法。
【請求項４１】
プロセッサと、
前記プロセッサがアクセス可能なメモリと、
前記メモリ内に記憶されたルーティングモジュールとを具備する、ここにおいて前記ルーティングモジュールは、
アプリケーションからネットワークポリシーを受信し、
１組の利用可能なデータインターフェース内のデータインターフェースのサブセットに前記アプリケーションをバインドする
ように構成される、マルチホーミングネットワークデバイス。
【請求項４２】
前記ルーティングモジュールは、前記ネットワークポリシーに少なくとも部分的に基づいて経路範囲を作成するようにさらに構成される請求項４１に記載のマルチホーミングネットワークデバイス。
【請求項４３】
前記経路範囲は、前記アプリケーションがバインドされるデータインターフェースの前記サブセットの指示を含む請求項４２に記載のマルチホーミングネットワークデバイス。
【請求項４４】
前記プロセッサに結合されたトランシーバと、
前記トランシーバに結合されたアンテナと
をさらに具備する請求項１０に記載のマルチホーミングネットワークデバイス。
【請求項４５】
プロセッサがアクセス可能なコンピュータ可読媒体であって、前記コンピュータ可読媒体は、
経路範囲を具備する、ここにおいて前記経路範囲は、マルチホーミングデバイスにおける１組の利用可能なデータインターフェース内のデータインターフェースのサブセットを指示する、ここにおいてアプリケーションはデータを送信および受信するためにデータインターフェースの前記サブセットにバインドされる、コンピュータ可読媒体。
【請求項４６】
前記経路範囲は、前記アプリケーションから受信されたネットワークポリシーに少なくとも部分的に基づいて生成される請求項４５に記載のコンピュータ可読媒体。
【請求項４７】
前記経路範囲は、前記プロセッサによって実行可能なルーティングモジュールによって生成される請求項４５に記載のコンピュータ可読媒体。
【請求項４８】
前記経路範囲は、前記１組の利用可能なデータインターフェースのビットマスクである請求項４５に記載のコンピュータ可読媒体。
【請求項４９】
ネットワークデバイス内の少なくとも１つのポートにアプリケーションをバインドする方法であって、前記方法は、
要求元のアプリケーションにポートをバインドする要求を受信することと、
開いているアプリケーションが前記ポートにバインドされているかどうかを決定することと、
前記開いているアプリケーションが前記ポートにバインドされていないときに前記要求元のアプリケーションを前記ポートにバインドすることと
を具備する、方法。
【請求項５０】
前記開いているアプリケーションが前記ポートにバインドされているときに、前記要求元のアプリケーションに関連する第２の経路範囲および前記開いているアプリケーションに関連する第１の経路範囲に関してビット毎の論理積演算を実行すること
をさらに具備する請求項４９に記載の方法。
【請求項５１】
前記ビット毎の論理積演算の結果がゼロであるときに前記要求元のアプリケーションを前記ポートにバインドすることをさらに具備する請求項５０に記載の方法。
【請求項５２】
前記ビット毎の論理積演算の前記結果がゼロでないときに、前記要求元のアプリケーションが前記ポートにバインドすることを阻止すること
をさらに具備する請求項５１に記載の方法。
【請求項５３】
アプリケーションメニューを具備する、ここにおいて前記アプリケーションメニューはマルチホーミングネットワークデバイスにおいてインストールされているアプリケーションのリストを含む、ここにおいてユーザは、選択されたアプリケーションに関連する少なくとも１つのネットワーク設定を編集するために前記アプリケーションメニューからアプリケーションを選択することができる、ユーザインターフェース。
【請求項５４】
前記マルチホーミングネットワークデバイスにおいて利用可能であるネットワークのリストを含むネットワークメニューをさらに具備する請求項５３に記載のユーザインターフェース。
【請求項５５】
ユーザが前記ネットワークメニューからネットワークを選択し、選択されたネットワークを前記選択されたアプリケーションに関連付けることができる請求項５３に記載のユーザインターフェース。
【請求項５６】
前記選択されたアプリケーションによる使用が認められたネットワークのリストを含むネットワーク優先順位メニューをさらに具備する請求項５５に記載のユーザインターフェース。
【請求項５７】
前記ネットワーク優先順位メニューは、前記ネットワーク優先順位メニューにリストされた各ネットワークに関連する優先順位を指示する、ここにおいて前記選択されたアプリケーションは各ネットワークと、それに割り当てられた前記優先順位に基づいて通信する請求項５６に記載のユーザインターフェース。
【請求項５８】
各ネットワークに関連する前記優先順位はユーザによって割り当てられる請求項５７に記載のユーザインターフェース。
【請求項５９】
ネットワークポリシーをルーティングモジュールに送信するための手段と、
前記ルーティングモジュールから経路範囲を受信するための手段とを具備する、ここにおいて前記経路範囲は前記ネットワークポリシーを満足するデータネットワークへのデータインターフェースのサブセットを識別し、ここにおいてデータインターフェースの前記サブセットは１組の利用可能なデータインターフェースから選択され、ここにおいてデータインターフェースの前記サブセットは少なくとも１つのデータインターフェースを含む、マルチホーミングネットワークデバイス。
【請求項６０】
マルチホーミングネットワークデバイスであって、
前記マルチホーミングネットワークデバイスにおける１組の利用可能なデータインターフェース内の全てのデータインターフェースではなく、データインターフェースのサブセットにアプリケーションをバインドするための手段を具備する、ここにおいてデータインターフェースの前記サブセットは少なくとも１つのデータインターフェースを含む、マルチホーミングネットワークデバイス。
【請求項６１】
データインターフェースからデータパケットを受信するための手段と、
前記データインターフェースのインターネットプロトコル（ＩＰ）アドレスを、前記パケットに関連する宛先ＩＰアドレスと比較するための手段と、
前記データインターフェースの前記ＩＰアドレスが前記宛先ＩＰアドレスと一致しないときに前記データパケットを廃棄するための手段と
を具備するマルチホーミングネットワークデバイス。
【請求項６２】
要求元のアプリケーションにポートをバインドする要求を受信するための手段と、
開いているアプリケーションが前記ポートにバインドされているかどうかを決定するための手段と、
前記開いているアプリケーションが前記ポートにバインドされていないときに前記要求元のアプリケーションを前記ポートにバインドするための手段と
を具備するマルチホーミングネットワークデバイス。
【発明の詳細な説明】
【関連技術】
【０００１】
本出願は、２００５年６月１日に出願された米国仮出願第６０／６８６，８４４号に基づいて優先権を主張するものである。
【技術分野】
【０００２】
概して、本開示はネットワークデバイスに関する。より具体的には、本開示はマルチホーミング(multi-homing)ネットワークデバイスに関する。
【背景技術】
【０００３】
近年、稼働している無線ハンドセットの数が劇的に増加した。これらの移動体デバイスに対する需要の増加に伴って、製造業者は、非常に多くのデータサービスを含むようにこれらのデバイスを組み立てている。データサービスのこの集約は、無線デバイスをデータネットワーキングのための強力なリソースにすることができる。しかし、無線デバイスによって提供されるデータサービスの増加が原因で、無線デバイスに対する悪質な攻撃の数も増加した。したがって、これらのデバイスを悪意ある攻撃から守りたいという増大する要望がある。
【０００４】
無線電話は、それらのデータインターフェースを通じて無線電話がデータを受取りおよび送信することができる多数のデータインターフェースを含むマルチホーミングデバイスになった。いつでも、特定の無線電話内で、これらのデータインターフェースの２つ以上が、インターネットまたは別のデータネットワークとの直接のデータ転送のために開いていることができる。大抵は、移動体デバイス内のデータプロトコルスタック(stack)は、デバイスのマルチプル(multiple)のデータインターフェースに対して透過的である。さらに、データプロトコルスタックは、到来(incoming)データのプロトコルアドレスが電話のプロトコルアドレスと一致する限りデータインターフェースのうちの任意のものからのデータを受け入れることができる。したがって、無線電話は、インターネットおよびその他のデータネットワークからの多くの攻撃に対して開いており、それらの攻撃を受けやすい。
【０００５】
例えば、パケットがマルチホーミングデバイスのデータインターフェース上で受信されるとき、パケットは適切なソケットまたはアプリケーションにルーティングされる(routed)ことができる。概して、伝送制御プロトコル（ＴＣＰ）を使用して接続されるソケットに関して、パケットは４つのタプル(tuples)、例えば、送信元アドレス（ｓｒｃ＿ａｄｄｒ）、送信元ポート（ｓｒｃ＿ｐｏｒｔ）、宛先アドレス（ｄｓｔ＿ａｄｄｒ）、および宛先ポート（ｄｓｔ＿ｐｏｒｔ）に基づいてソケットにルーティングされる。ユーザデータグラムプロトコル（ＵＤＰ）を使用して接続されるソケットに関して、パケットは２つのタプル、例えば、宛先アドレス（ｄｓｔ＿ａｄｄｒ）および宛先ポート（ｄｓｔ＿ｐｏｒｔ）に基づいてソケットにルーティングされる。インターネット制御メッセージプロトコル（ＩＣＭＰ）または非インターネットプロトコル（ＩＰ）に基づくプロトコルなどのその他のプロトコルに関して、ネットワークレイヤヘッダおよびトランスポートレイヤヘッダ内のその他のフィールドが使用される可能性がある。
【０００６】
残念なことに、マルチホーミングデバイスにおいて、上述のパラメータはいくつかの理由でデータインターフェースを一意に識別することができない可能性がある。例えば、マルチホーミングデバイス内のデータインターフェースが、重複した(duplicate)プライベートアドレスを割り当てられる可能性がある。また、マルチホーミングデバイス内のマルチプルのアプリケーションが、異なるネットワークデータインターフェースを使用して同じサービスにアクセスしようと試みる可能性がある。そのようなシナリオにおいて、アプリケーションは、同じサービスアクセス点(point)（ＳＡＰ）、例えばＵＤＰまたはＴＣＰの場合は同じポート番号にバインドする(bind)可能性がある。したがって、パケットを適切な宛先アプリケーションに正しくルーティングすることができない可能性がある。
【０００７】
マルチホーミングデバイスは、当該マルチホーミングデバイスで利用可能な異なるデータインターフェースを介したスプリアス攻撃（ｓｐｕｒｉｏｕｓ  ａｔｔａｃｋｓ）も受けやすい可能性がある。例えば、典型的なマルチホーミングデバイスにおいて、そのデバイスにインストールされたアプリケーションは、データインターフェースがデータ転送のために開いており、データプロトコルアドレス、例えばＩＰアドレス、ポート番号などが、アプリケーションのデータプロトコルアドレスと一致する限り任意のネットワークデータインターフェースからのデータを受信する可能性がある。
【０００８】
セキュリティの考察から離れて、データネットワークのプロバイダは、データネットワーク上の移動体電話が利用可能な種々のサービスおよび技術の課金(billing)および使用についても懸念している。例えば、データネットワークのプロバイダが提供するそれぞれの新しいサービスおよび技術に関連する特定のコストが存在し、概して、キャリアは移動体電話のユーザによって使用される種々のサービスの困難のない(hassel free)別々の課金に関心を持っている。データ転送のために当該移動体電話において利用可能な特定のデータインターフェースを使用するように移動体電話内のアプリケーションが制限される場合、キャリアネットワークがデータ毎のインターフェースの使用に基づいて異なる技術およびサービスの使用に関連する課金およびコストを明瞭に追跡する(track)ことがより容易である可能性がある。
【０００９】
さらに、マルチホーミングネットワーキングデバイスにおいて、通常、ネットワーキングアプリケーションのためのポート空間は、デバイスが利用可能なデータインターフェースの全ての間で共有される。アプリケーションが特定のデータインターフェース上のデータ転送のために特定のポート番号を使用している場合、その他のアプリケーションは、たとえ当該その他のアプリケーションが完全に異なるデータインターフェースを使用しているとしても同じポート番号を使用することはできない。これは、異なるデータインターフェース上であるが同じポート番号を用いて異なるサービスを実行する必要がある可能性があるデバイスに対しては不必要な制限である可能性がある。例えば、ネットワークデバイスは、同じポート番号、例えば８０番を使用するが、異なるデータインターフェース上の２つの異なるウェブサーバを含む可能性がある。ほとんどのネットワークデバイスはこの柔軟性(flexibility)を可能にしない。いくつかの実装は、データインターフェースの全てに関して、または特定のデータインターフェースに関して、すなわち１つのインターフェースまたは全てのインターフェースに関して１つのポートにバインドすることを可能にする。
【発明の概要】
【００１０】
マルチホーミングネットワークデバイスからデータネットワークにデータを送信する方法が開示され、ネットワークポリシーを定義することと、当該ネットワークポリシーをルーティングモジュールに送信することとを含む。さらに、方法は、ルーティングモジュールから経路範囲（ｒｏｕｔｅ  ｓｃｏｐｅ）を受信することを含む。経路範囲はネットワークポリシーを満足するデータネットワークに対するデータインターフェースのサブセットを識別し、ここにおいてデータインターフェースのサブセットは１組の利用可能なデータインターフェースから選択され、ここにおいてデータインターフェースのサブセットは少なくとも１つのデータインターフェースを含む。
【００１１】
特定の実施形態において、ネットワークポリシーは、１組の利用可能なデータインターフェースからデータインターフェースのサブセットを選択するための１つまたはそれより多くの基準を識別する。さらに、ネットワークポリシーは、アプリケーションへのデータ転送およびアプリケーションからのデータ転送のために使用されるべき２つまたはそれより多くのデータインターフェースを定義する。別の特定の実施形態において、ネットワークポリシーはアプリケーションによって定義される。
【００１２】
さらに別の特定の実施形態において、データインターフェースのサブセットは、移動体通信用グローバルシステム(global system for mobile communications）（ＧＳＭ（登録商標））データインターフェース、汎用パケット無線サービス（ＧＰＲＳ）データインターフェース、ユニバーサル移動体通信システム(universal mobile telecommunications system）（ＵＭＴＳ）データインターフェース、符号分割多元接続（ＣＤＭＡ）データインターフェース、ＣＤＭＡ２０００データインターフェース、ＣＤＭＡエボリューションデータオプティマイズド( CDMA evolution data optimized）（ＥＶＤＯ）インターフェース、Ｂｌｕｅｔｏｏｔｈ（登録商標）（ＢＴ）データインターフェース、８０２．１１ａデータインターフェース、８０２．１１ｂデータインターフェース、８０２．１１ｇデータインターフェース、８０２．１１ｉデータインターフェース、８０２．１５データインターフェース、８０２．１６データインターフェース、広帯域ＣＤＭＡ（ＷＣＤＭＡ）データインターフェース、直交周波数符号分割多重(orthogonal frequency code division multiplexing）（ＯＦＣＤＭ）データインターフェース、全地球測位システム（ＧＰＳ）データインターフェース、またはこれらの組合せを含む。特定の実施形態において、インターフェースのそれぞれは、インターネットプロトコルバージョン４（ＩＰｖ４）データインターフェース、ＩＰバージョン６（ＩＰｖ６）データインターフェース、または別のネットワークプロトコルデータインターフェースであってよい。
【００１３】
さらに別の特定の実施形態において、ネットワークポリシーに関連するアプリケーションが、経路範囲によって識別されるデータインターフェースのサブセットにバインドされる。別の実施形態において、方法は、データインターフェースのサブセット内の好ましいデータインターフェースが利用可能であるかどうかを決定することと、好ましいデータインターフェースが利用可能であるときに好ましいデータインターフェースを介して接続を開くことと、好ましいデータインターフェースを介してデータを送信することとを含む。さらに、方法は、好ましいデータインターフェースが利用可能でないときにデータインターフェースのサブセット内の次に好ましいデータインターフェースが利用可能であるかどうかを決定することと、次に好ましいデータインターフェースを介して接続を開くことと、次に好ましいデータインターフェースを介してデータを送信することとを含む。さらに別の実施形態において、方法は、接続が遮断され(interrupted)ているかどうかを決定することと、接続が遮断されているときに次に好ましいデータインターフェースが利用可能であるかどうかを決定することと、次に好ましいデータインターフェースを介して接続を開くことと、次に好ましいデータインターフェースを介してデータを送信することとを含む。
【００１４】
別の実施形態において、マルチホーミングネットワークデバイスが開示され、プロセッサおよび当該プロセッサがアクセス可能なメモリを含む。さらに、少なくとも１つのアプリケーションがメモリ内に記憶され、少なくとも１つのネットワークポリシーがメモリ内に記憶される。この実施形態において、少なくとも１つのネットワークポリシーは、データを送信および受信するためにアプリケーションによって使用されるべき少なくとも１つのデータインターフェースを定義する。
【００１５】
さらに別の実施形態において、プロセッサがアクセス可能なコンピュータ可読媒体が開示され、少なくとも１つのアプリケーションと、当該少なくとも１つのアプリケーションに関連する少なくとも１つのネットワークポリシーとを含む。この実施形態において、ネットワークポリシーは、アプリケーションに関するデータを伝達するために使用されることができる、マルチホーミングネットワークデバイスの２つまたはそれより多くのデータインターフェースを識別する。
【００１６】
さらに別の実施形態において、データインターフェースをアプリケーションにバインドする方法が開示され、アプリケーションからネットワークポリシーを受信することと、マルチホーミングネットワークデバイスにおける１組の利用可能なデータインターフェース内の全てのデータインターフェースではなく、データインターフェースのサブセットにアプリケーションをバインドすることとを含む。この実施形態において、データインターフェースのサブセットは少なくとも１つのデータインターフェースを含む。
【００１７】
その上さらに別の実施形態において、データを受信する方法が開示され、データインターフェースからデータパケットを受信することと、データインターフェースのインターネットプロトコル（ＩＰ）アドレスをパケットに関連する宛先ＩＰアドレスと比較することと、データインターフェースのＩＰアドレスが宛先ＩＰアドレスと一致しないときにデータパケットを廃棄すること(dropping)とを含む。
【００１８】
別の実施形態において、マルチホーミングネットワークデバイスが開示され、プロセッサと、当該プロセッサがアクセス可能なメモリと、当該メモリ内に記憶されるルーティングモジュールとを含む。この実施形態において、ルーティングモジュールは、アプリケーションからネットワークポリシーを受信し、アプリケーションを１組の利用可能なデータインターフェース内のデータインターフェースのサブセットにバインドするように構成される。
【００１９】
さらに別の実施形態において、プロセッサがアクセス可能なコンピュータ可読媒体が開示され、経路範囲を含む。この実施形態において、経路範囲は、マルチホーミングデバイスにおける１組の利用可能なデータインターフェース内のデータインターフェースのサブセットを指示し、マルチホーミングデバイス内のアプリケーションが、データを送信および受信するためにデータインターフェースの当該サブセットにバインドされる。
【００２０】
さらに別の実施形態において、アプリケーションをネットワークデバイス内の少なくとも１つのポートにバインドする方法が開示され、ポートを要求元の(requesting)アプリケーションにバインドする要求を受信することと、開いているアプリケーションが当該ポートにバインドされているかどうかを決定することと、開いているアプリケーションが当該ポートにバインドされていないときに当該ポートを要求元のアプリケーションにバインドすることとを含む。
【００２１】
さらに別の実施形態において、ユーザインターフェースが開示され、アプリケーションメニューを含む。この実施形態において、アプリケーションメニューはマルチホーミングネットワークデバイスにおいてインストールされているアプリケーションのリストを含み、ユーザは、選択されたアプリケーションに関連する少なくとも１つのネットワーク設定を編集するためにアプリケーションメニューからアプリケーションを選択することができる。
【００２２】
その上さらに別の実施形態において、マルチホーミングネットワークデバイスが開示され、ネットワークポリシーをルーティングモジュールに送信するための手段と、ルーティングモジュールからの経路範囲をソケットに記憶するための手段とを含む。この実施形態において、経路範囲はネットワークポリシーを満足するデータネットワークに対するデータインターフェースのサブセットを識別し、データインターフェースのサブセットは１組の利用可能なデータインターフェースから選択される。さらに、データインターフェースのサブセットは少なくとも１つのデータインターフェースを含む。
【００２３】
別の実施形態において、マルチホーミングネットワークデバイスが開示され、アプリケーションからネットワークポリシーを受信するための手段と、マルチホーミングネットワークデバイスにおける１組の利用可能なデータインターフェース内の全てのデータインターフェースではなく、データインターフェースのサブセットにアプリケーションをバインドするための手段とを含む。この実施形態において、データインターフェースのサブセットは少なくとも１つのデータインターフェースを含む。
【００２４】
さらに別の実施形態において、マルチホーミングネットワークデバイスが開示され、データインターフェースからデータパケットを受信するための手段と、データインターフェースのインターネットプロトコル（ＩＰ）アドレスをパケットに関連する宛先ＩＰアドレスと比較するための手段と、データインターフェースのＩＰアドレスが宛先ＩＰアドレスと一致しないときにデータパケットを廃棄するための手段とを含む。
【００２５】
別の実施形態において、マルチホーミングネットワークデバイスが開示され、ポートを要求元のアプリケーションにバインドする要求を受信するための手段と、開いているアプリケーションが当該ポートにバインドされているかどうかを決定するための手段と、開いているアプリケーションが当該ポートにバインドされていないときに要求元のアプリケーションを当該ポートにバインドするための手段とを含む。
【００２６】
本明細書において開示される１つまたは複数の実施形態の利点は、利用可能なネットワークデータインターフェースのサブセットにアプリケーションをバインドすることを含む可能性がある。
【００２７】
別の利点は、アプリケーションによって認められたデータインターフェース上に到着しない受信データパケットを廃棄することを含む可能性がある。
【００２８】
さらに別の利点は、アプリケーションに関して利用可能なデータインターフェースの階層に基づいてデータパケットを送信することを含む可能性がある。
【００２９】
本開示のその他の態様、利点、および特徴は、以下のセクション、すなわち、図面の簡単な説明、詳細な説明、および特許請求の範囲を含む本出願の全体の検討の後で明らかになるであろう。
【図面の簡単な説明】
【００３０】
【図１】通信システムの特定の実施形態を示す概略図である。
【図２】データネットワーキングスタックを示す概略図である。
【図３】データを送信する方法を示すフローチャートである。
【図４】利用可能なデータインターフェースのサブセットにアプリケーションをバインドする方法を示すフローチャートである。
【図５】データを受信する方法を示すフローチャートである。
【図６】一時的な経路範囲がアプリケーションの経路範囲に従うかどうかを決定する方法を示すフローチャートである。
【図７】到来データパケットの処理の第１の例を示す概略図である。
【図８】到来データパケットの処理の第２の例を示す概略図である。
【図９】到来データパケットの処理の第３の例を示す概略図である。
【図１０】到来データパケットの処理の第４の例を示す概略図である。
【図１１】無線デバイスにおいて１つまたはそれより多くのインターフェースにアプリケーションをバインドする方法を示すフローチャートである。
【図１２】第１のグラフィカルユーザデータインターフェースを有する無線デバイスの図である。
【図１３】第２のグラフィカルユーザデータインターフェースを有する無線デバイスの図である。
【図１４】第３のグラフィカルユーザデータインターフェースを有する無線デバイスの図である。
【図１５】第４のグラフィカルユーザデータインターフェースを有する無線デバイスの図である。
【詳細な説明】
【００３１】
本明細書において説明される実施形態の態様および付随する利点は、添付の図面と合わせて考慮されるときに以下の詳細な説明を参照することによってより容易に明らかになるであろう。
【００３２】
図１を参照すると、例示的で非限定的な通信システムが示され、全体的に１００で示される。示されるように、システムは、第１のネットワークデバイス１０２および第２のネットワークデバイス１０４を含む。特定の実施形態において、第１のネットワークデバイス１０２および第２のネットワークデバイス１０４は、第１のデータネットワーク１０６、第２のデータネットワーク１０８、第３のデータネットワーク１１０、および第Ｎのデータネットワークのうちの１つまたはそれより多くを介して通信することができる。特定の実施形態において、データネットワーク１０６、１０８、１１０、１１２は、移動体通信用グローバルシステム（ＧＳＭ）ネットワーク、汎用パケット無線サービス（ＧＰＲＳ）ネットワーク、ユニバーサル移動体通信システム（ＵＭＴＳ）ネットワーク、符号分割多元接続（ＣＤＭＡ）ネットワーク、ＣＤＭＡ２０００ネットワーク、ＣＤＭＡエボリューションデータオプティマイズド（ＥＶＤＯ）ネットワーク、Ｂｌｕｅｔｏｏｔｈ（ＢＴ）ネットワーク、８０２．１１ａネットワーク、８０２．１１ｂネットワーク、８０２．１１ｇネットワーク、８０２．１１ｉネットワーク、８０２．１５ネットワーク、８０２．１６ネットワーク、広帯域ＣＤＭＡ（ＷＣＤＭＡ）ネットワーク、直交周波数符号分割多重（ＯＦＣＤＭ）ネットワーク、全地球測位システム（ＧＰＳ）ネットワーク、またはこれらの組合せであってよい。
【００３３】
図１に示されるように、第１のネットワークデバイス１０２は、プロセッサ１１４、およびプロセッサ１１４が利用可能なメモリ１１６を含むことができる。示されるように、アプリケーション１１８、ソケットレイヤ１１９、およびルーティングモジュール１２０が、メモリ１１６内に組み込まれるまたは記憶されることができ、プロセッサ１１４によって実行可能であることができる。特定の実施形態において、ソケットレイヤ１１９は、データを送信および受信するためにアプリケーションによって使用されることができる１つまたはそれより多くのソケットを含む。動作中、アプリケーション１１８は、ソケットレイヤ１１９を介してルーティングモジュール１２０にネットワークポリシー１２２を送信する。特定の実施形態において、ネットワークポリシー１２２は、ネットワーク１０６、１０８、１１０、１１２のうちの１つまたはそれより多くのものと通信するためにアプリケーションによって使用されることができる１組のデータインターフェースを識別することができる。ネットワークポリシー１２２に応答して、ルーティングモジュール１２０は経路範囲１２４をソケットレイヤ１１９に返し、経路範囲はアプリケーション１１８に関連するソケットのためにソケットレイヤ１１９内に記憶されることができる。特定の実施形態において、経路範囲１２４は、ネットワークポリシーを満足するデータインターフェースのサブセットを含む。データインターフェースのサブセットは、第１のネットワークデバイス１０２における利用可能なデータインターフェース１３２、１３４、１３６から選択される。
【００３４】
図１は、第１のネットワークデバイス１０２が第１のハードウェアポート１２６、第２のハードウェアポート１２８、および第Ｎのハードウェアポート１３０を含むことができることを示す。また、ネットワークデバイス１０２は、第１のデータインターフェース１３２、第２のデータインターフェース１３４、および第Ｎのデータインターフェース１３６を含むことができる。
【００３５】
特定の実施形態において、データインターフェース１３２、１３４、１３６のそれぞれは、移動体通信用グローバルシステム（ＧＳＭ）データインターフェース、汎用パケット無線サービス（ＧＰＲＳ）データインターフェース、ユニバーサル移動体通信システム（ＵＭＴＳ）データインターフェース、符号分割多元接続（ＣＤＭＡ）データインターフェース、ＣＤＭＡ２０００データインターフェース、ＣＤＭＡエボリューションデータオプティマイズド（ＥＶＤＯ）インターフェース、Ｂｌｕｅｔｏｏｔｈ（ＢＴ）データインターフェース、８０２．１１ａデータインターフェース、８０２．１１ｂデータインターフェース、８０２．１１ｇデータインターフェース、８０２．１１ｉデータインターフェース、８０２．１５データインターフェース、８０２．１６データインターフェース、広帯域ＣＤＭＡ（ＷＣＤＭＡ）データインターフェース、直交周波数符号分割多重（ＯＦＣＤＭ）データインターフェース、全地球測位システム（ＧＰＳ）データインターフェース、またはこれらの組合せであってよい。特定の実施形態において、インターフェースのそれぞれは、インターネットプロトコルバージョン４（ＩＰｖ４）データインターフェース、ＩＰバージョン６（ＩＰｖ６）データインターフェース、または別のネットワークプロトコルデータインターフェースであってよい。
【００３６】
図１に示されるように、第１のネットワークデバイス１０２は、プロセッサ１１４およびアンテナ１４０に結合されているトランシーバ１３８も含む。特定の実施形態において、トランシーバ１３８はデータパケットを送信および受信し、ネットワーク１０６、１０８、１１０、１１２のうちの１つまたはそれより多くのものとの通信を容易にする。特定の実施形態において、第２のネットワークデバイス１０４は、第１のネットワークデバイス１０２に関連して説明された要素(element)のうちの１つまたはそれより多くのものを含むことができる。
【００３７】
特定の実施形態において、第１のネットワークデバイス１０２または第２のネットワークデバイス１０４は、マルチホーミングネットワーキング資産(asset)である。さらに、データサービスの非常に大きな多様性をサポートするために、第１のネットワークデバイス１０２は、マルチプルのネットワークデータインターフェース１３２、１３４、１３６を含む。データインターフェース１３２、１３４、１３６のそれぞれは、いったんそれぞれのデータインターフェースが関連するネットワーク１０６、１０８、１１０、１１２に接続するように構成されると、データ転送を行うことができる。特定の実施形態において、マルチホーミングを用いて、データインターフェース１３２、１３４、１３６のうちの１つまたはそれより多くのものは同時にアクティブであることができ、それぞれのアクティブなデータインターフェース１３２、１３４、１３６は異なる物理または論理ネットワーク１０６、１０８、１１０、１１２に対するアクセスを提供することができる。
【００３８】
さらに、特定の実施形態において、それぞれのアクティブなデータインターフェース１３２、１３４、１３６は、それらのデータインターフェースに割り当てられた別個のネットワークアドレス、例えばＩＰネットワークのためのＩＰアドレスを含む。ネットワークアドレスのそれぞれはグローバルユニークであることができるか、またはネットワークアドレスのうちの１つまたはそれより多くのものは、プライベート空間から割り当てられる場合、重複している可能性がある。
【００３９】
特定の実施形態において、マルチホーミングは、第１のネットワークデバイス１０２が、異なるデータ技術、例えば、ＣＤＭＡ、ＵＭＴＳ、ＧＳＭなどを有する異なるネットワークにアクセスすることを可能にすることができる。さらに、マルチホーミングは、第１のネットワークデバイス１０２が、利用可能なネットワーク１０６、１０８、１１０、１１２に関連する様々なコストに基づいて当該利用可能なネットワーク１０６、１０８、１１０、１１２にアクセスすることを可能にすることができる。したがって、ユーザ、または第１のネットワークデバイス１０２内のアプリケーションは、所望の品質および費用対効果に関するさらなる柔軟性を与えられる。マルチホーミングは、第１のネットワークデバイスが、利用可能なネットワーク１０６、１０８、１１０、１１２が提供するサービスの品質に基づいて当該ネットワークにアクセスすることを可能にすることもできる。ユーザは、ネットワークを使用することに関連するコストを問わずに特定のアプリケーションが高品質なネットワークを使用することを望むことができる。その一方、ユーザは、ネットワーク接続の品質を問わずに、アプリケーションに特定のコストを超えないように、および当該コスト未満のネットワークのみを使用するように命令することができる。
【００４０】
特定の実施形態において、マルチホーミングは、第１のネットワークデバイス１０２が異なるネットワークの種類、例えば、ＩＰｖ４、ＩＰｖ６、ＩＰＸなどにアクセスすることを可能にすることができる。また、マルチホーミングは、第１のネットワークデバイス１０２内のアプリケーションが、異なる物理的な／論理的なネットワークによって提供される様々なサービスにアクセスすることを可能にすることができる。例えば、特定のキャリアが、異なる種類のＩＰサービス、例えば、インターネット、電子メール、ＳＭＳ、ＭＭＳ、ＷＡＰなどを提供するために異なるネットワークを配備することができる。
【００４１】
図２は、全体的に２００で示されるＴＣＰ／ＩＰネットワーキングスタックの例示的で非限定的な実施形態を示す。示されるように、ネットワーキングスタック２００は物理レイヤ２０２を含む。データインターフェースレイヤ２０４が物理レイヤ２０２の上に位置付けられる。特定の実施形態において、データインターフェースレイヤ２０４は、第１のデータインターフェース２０６、第２のデータインターフェース２０８、第３のデータインターフェース２１０、および第Ｎのデータインターフェース２１２を含む。
【００４２】
図２に示されるように、インターネットプロトコル（ＩＰ）レイヤ２１４がデータインターフェースレイヤ２０４の上に位置付けられる。例示的な実施形態において、ＩＰレイヤ２１４は、１つまたはそれより多くのＩＰ、例えば、ＩＰバージョン４（ＩＰｖ４）２１６およびＩＰバージョン６（ＩＰｖ６）２１８を含む。図２は、ＩＰレイヤ２１４の上のトランスポートレイヤ２２０をさらに示す。トランスポートレイヤ２２０は、１つまたはそれより多くの通信プロトコル、例えば、伝送制御プロトコル（ＴＣＰ）２２２またはユーザデータグラムプロトコル（ＵＤＰ）２２４を含むことができる。さらに、ソケットレイヤ２２６がトランスポートレイヤ２２０の上に位置付けられることができる。また、１つまたはそれより多くのアプリケーションがソケットレイヤ２２６の上に位置付けられることができる。
【００４３】
図３を参照すると、ネットワークデバイスからデータネットワークにデータを送信する方法が示され、ブロック３００において開始する。ブロック３００において、ネットワークデバイス内のアプリケーションが、ネットワークデバイス内のルーティングモジュールにネットワークポリシーを送信する。特定の実施形態において、アプリケーションおよびルーティングモジュールは、単一のプロセッサによって同時に実行可能である。その代わりに、アプリケーションおよびルーティングモジュールは、異なるプロセッサによって実行されることができる。
【００４４】
特定の実施形態において、ネットワークポリシーは、当該ネットワークポリシー内で指定される１つまたは複数の基準を満足する１組のデータインターフェースを識別することができる。例えば、ネットワークポリシーは、全てのＵＭＴＳデータインターフェースまたは全てのＩＰｖ４データインターフェースとして基準を指定することができる。さらに、ネットワークポリシーは、サービス品質基準、例えば、最大遅延の値、最大ジッタの値、帯域幅の値、またはこれらの組合せを指定することができる。また、ネットワークポリシーは、最大コスト、通信技術の種類、１つまたはそれより多くのキャリア、またはこれらの組合せを指定することができる。アプリケーションによってデータ転送が開始されることができる前に、アプリケーションは、ネットワークポリシーを満足する１組のデータインターフェースの中の特定のデータインターフェースを立ち上げる(bring up)ことができる。
【００４５】
別の特定の実施形態において、どのデータインターフェースを立ち上げるかの決定が、データスタックのネットワーク管理ソフトウェアによって実行されることができる。さらに、決定は、最も好ましい経路に基づいて、例えば指定されたネットワークポリシーに基づいて実行されることができる。特定の実施形態において、各データインターフェースは、そのデータインターフェース独自のアクセス制御リスト（ＡＣＬ）を含むことができ、それは本質的に規則のリストである。さらに、各データインターフェースは、それへのアクセスを、アプリケーションに関連するネットワークポリシーに基づいて評価することができる。評価の一部として、ＡＣＬは、データインターフェースへのアクセスを制限するか、またはそのデータインターフェースに関する非ゼロの優先順位番号、例えば１〜５を返すかのいずれかを行うことができる。非ゼロの優先順位(priority)番号はデータインターフェースが与えられたポリシーと共に使用可能であることを示し、当該優先順位番号は優先(preference)のレベルを識別する。
【００４６】
例示的な実施形態において、ルーティングモジュールは、アプリケーションに関連するネットワークポリシーと、利用可能なデータインターフェースのそれぞれに関連するＡＣＬとを評価し、最も高い優先順位を有するデータインターフェースを選択することができる。したがって、ルーティングモジュールは、データを送出するためにアプリケーションを最も高い優先順位を有するデータインターフェースにバインドすることができる。特定の実施形態において、任意の与えられた時間に、多くのデータインターフェースがデータ転送のために開いていることができ、無線デバイス上の送信側マルチホーミングを可能にするために各データインターフェースが別個のアプリケーションにバインドされることができる。特定のデータインターフェースが開いていない場合、それを立ち上げて、データ通信のために開くことができる。
【００４７】
ブロック３０２に移ると、経路範囲がルーティングモジュールから受信される。さらに、ブロック３０３において、経路範囲は、アプリケーションに関連するソケットのためにソケットレイヤ内に記憶されることができる。特定の実施形態において、経路範囲は、ネットワークポリシーを満足するデータインターフェースのサブセットを指示する。当該サブセット内の各データインターフェースは優先順位番号を含むことができる。したがって、データインターフェースのサブセットは、好ましいデータインターフェースから最も好ましくないデータインターフェースまでの階層に構成されることができる。例示的な実施形態において、データインターフェースのサブセットは、ネットワークデバイスにおける１組の利用可能なデータインターフェースから選択される。
【００４８】
決定ステップ３０４において、ネットワークデバイスは、アプリケーションがデータネットワークにデータを送信しようと試みているかどうかを決定する。否の場合、方法は状態３０６において終了する。そうである場合、方法は決定ステップ３０８に進み、ネットワークデバイスが経路範囲内の、すなわちアプリケーションにバインドされたデータインターフェースのサブセット内の好ましいデータインターフェースが利用可能かどうかを決定する。好ましいデータインターフェースが利用可能である場合、方法はブロック３１０に移動し、ネットワークデバイスが好ましいデータインターフェースを介してチャネルを開く。反対に、好ましいデータインターフェースが利用可能でない場合、方法は決定ステップ３１２に進み、ネットワークデバイスが経路範囲内の次に好ましいデータインターフェースが利用可能かどうかを決定する。
【００４９】
次に好ましいデータインターフェースが利用可能でない場合、方法はブロック３１４に移動し、例えばネットワークデバイスにおけるディスプレイを介してネットワークデバイスのユーザに誤りメッセージが表示される。そうではなくて、次に好ましいデータインターフェースが利用可能である場合、方法はブロック３１０に進み、ネットワークデバイスが当該データインターフェースを介してチャネルを開く。特定の実施形態において、誤りメッセージが表示される前にマルチプルの繰り返し(iterations)があってよい。換言すれば、データインターフェースの階層内にマルチプルの次に好ましいデータインターフェースが存在することができる。例えば、データインターフェースの階層は、好ましいデータインターフェース、第１の次に好ましいデータインターフェース、第２の次に好ましいデータインターフェース、第３の次に好ましいデータインターフェースなどを含むことができる。特定の実施形態において、ネットワークデバイスは、経路範囲内の全てのインターフェースがチェックされ尽くすまで、次の利用可能なインターフェースをチェックし続けることができる。
【００５０】
ブロック３１６に進むと、アプリケーションが、利用可能なデータインターフェースを介してデータを送信する。決定ステップ３１８において、ネットワークデバイスは接続が遮断されているかどうかを決定する。接続が遮断されていない場合、方法は決定ステップ３２０に進み、ネットワークデバイスがデータの送信が完了しているかどうかを決定する。データの送信が完了している場合、方法は状態３０６において終了する。データの送信が完了していない場合、方法はブロック３１６に戻り、説明されたように継続する。
【００５１】
決定ステップ３１８に戻ると、接続が遮断されている場合、方法は決定ステップ３２２に移動し、ネットワークデバイスが経路範囲内の次に好ましいデータインターフェースが利用可能かどうかを決定する。次に好ましいデータインターフェースが利用可能でない場合、方法は状態３０６において終了する。その一方で、次に好ましいデータインターフェースが利用可能である場合、方法は決定ステップ３２４に続き、ネットワークデバイスが、データ転送のためのプロトコルが接続指向かどうかを決定する。プロトコルが接続指向ではない場合、例えば、プロトコルがコネクションレス(connectionless)のユーザデータグラム(datagram)プロトコル（ＵＤＰ）である場合、方法はブロック３２６に移動し、アプリケーションが、接続性(connectivity)を損なうことなしに次の利用可能なデータインターフェースにシームレスに(seamlessly)ジャンプする。逆に、プロトコルが接続指向である場合、例えば、プロトコルが伝送制御プロトコル（ＴＣＰ）である場合、方法はブロック３２８に進み、アプリケーションが、次の利用可能なデータインターフェースに再接続する。プロトコルがＴＣＰである場合、アプリケーションが新しいデータインターフェースを介して再接続する間、接続性が損なわれることになる。ブロック３２６またはブロック３２８から、方法は決定ステップ３２０に進み、説明されたように継続する。
【００５２】
特定の実施形態において、上述の方法を使用して、アプリケーションは、当該アプリケーションに関連するデータ転送のためのネットワークポリシーを指定することができる。ネットワークポリシーは、そのデータインターフェース上で当該アプリケーションがデータを送信および受信するデータインターフェースを制限することができる。送信経路上で、認められたデータインターフェースのサブセットからアプリケーションに関して１つのデータインターフェースが選択される。特定の実施形態において、選択されるデータインターフェースは、ネットワークポリシーの基準に基づいて最も好ましく、すなわち、最も優先順位が高く、それによって送信経路を最適化することができる。さらに、特定の実施形態において、アプリケーションは、データ転送が完了されるか、またはデータインターフェースが失われるまで、選択された送信データインターフェースを使用する。データインターフェースが失われる場合、新しいデータインターフェースが、利用可能であれば、優先順位に基づいてデータインターフェースのサブセットから選択される。これは、たとえ最も高い優先順位のデータインターフェースが失われた場合でさえも、データ送信がネットワークポリシーに従うことを可能にする。
【００５３】
図４は、１群の利用可能なデータインターフェース内のデータインターフェースのサブセットにアプリケーションをバインドする方法を示す。ブロック４００で開始すると、ルーティングモジュールはアプリケーションからネットワークポリシーを受信する。ブロック４０２において、ルーティングモジュールが、ネットワークポリシーおよび利用可能なデータインターフェースに従って経路範囲を作成する。特定の実施形態において、経路範囲は、アプリケーションのネットワークポリシーを満足する利用可能なデータインターフェースのサブセットを含むか、またはそのサブセットを示す。ブロック４０４に移動すると、ルーティングモジュールが、経路範囲内の利用可能なデータインターフェースにアプリケーションをバインドする。ブロック４０６において、ルーティングモジュールが、アプリケーションに関連するソケットのために記憶されるようにソケットレイヤに経路範囲を返す。続いて、方法は状態４０８において終了する。
【００５４】
図５を参照すると、ネットワークデバイスにおいてデータネットワークからデータを受信する方法が示され、ブロック５００において開始する。ブロック５００において、ネットワークデバイスが、データスタックのＩＰレイヤにおいてデータインターフェースからデータパケットを受信する。決定ステップ５０２に移動すると、ネットワークデバイスは、データパケットの宛先ＩＰアドレスがアプリケーションに割り当てられたデータインターフェースのＩＰアドレスと同じであるかどうかを決定する。同じでない場合、方法はブロック５０４に進み、データパケットが廃棄される。続いて、方法は状態５０６において終了する。
【００５５】
データパケットの宛先ＩＰアドレスがデータインターフェースのＩＰアドレスと同じである場合、方法はブロック５０８に移動し、ネットワークデバイスが、データパケットに関連するソケットを探索する。決定ステップ５１０において、ネットワークデバイスが、ソケットが見つけられるかどうかを決定する。見つけられない場合、方法はブロック５０４に進み、データパケットが廃棄される。続いて、方法は状態５０６において終了する。
【００５６】
決定ステップ５１０においてソケットが見つけられる場合、方法はブロック５１２に進み、アプリケーションに関連する経路範囲が検索される。ブロック５１４において、データインターフェースに関する一時的な経路範囲が作成される。特定の実施形態において、一時的な経路範囲は、入力データインターフェースのインデックスを決定することと、対応するビットを１に変えることと、一時的な経路範囲内のあらゆるその他のビットを０に保つこととによって作成される。
【００５７】
決定ステップに移動すると、一時的な経路範囲がアプリケーションに関連する経路範囲に従うかどうかが決定される。図６は、一時的な経路範囲がアプリケーションに関連する経路範囲に従うかどうかを決定する詳細な実施形態を示す。一時的な経路範囲がアプリケーションの経路範囲に従う場合、方法はブロック５１８に移動し、ネットワークデバイスがデータパケットのトランスポートレイヤの処理を続ける。続いて、方法は状態５０６において終了する。
【００５８】
一時的な経路範囲がアプリケーションの経路範囲に従わない場合、方法はブロック５２０に移動し、ネットワークデバイスがデータパケットを廃棄する。決定ステップ５２２に進むと、ネットワークデバイスは、現在の通信プロトコルがＴＣＰであるか、それともＵＤＰであるかを決定する。現在の通信プロトコルがＴＣＰである場合、方法はブロック５２４に移動し、ネットワークデバイスが、廃棄されるデータパケットを送信したピア(peer)デバイスにリセット（ＲＳＴ）メッセージを送信する。方法は状態５０６において終了する。現在の通信プロトコルがＵＤＰである場合、ネットワークデバイスは、当該ネットワークデバイスにおいて廃棄されるデータパケットを送信したピアデバイスにインターネット制御メッセージプロトコル（ＩＣＭＰ）宛先到達不能ポート到達不能(destination unreachable port unreachable）を送信する。続いて、方法は状態５０６において終了する。
【００５９】
特定の実施形態において、上述の方法を使用して、パケットが何らかの接続に関するデータインターフェースを介して到着するとき、それは、経路範囲において許可されたデータインターフェースに２段階で制限されることができる。例えば、第１の段階は、単純なサニティ(sanity)チェックである。この段階は、パケットがそこに到着したデータインターフェースのＩＰアドレスと、そのパケットの宛先アドレスとの比較を伴う。このことに対する唯一の例外は、宛先アドレスがマルチキャストまたはブロードキャストアドレスであってはならないことである。入力パケットがＩＰレイヤに引き渡されるとき、ＩＰレイヤは当該パケットが入ってきたデータインターフェースを知らされる。パケットの宛先ＩＰアドレスがそのデータインターフェース上にそのパケットが到着したデータインターフェースのＩＰアドレスと一致しない場合、パケットは通知なしに(silently)廃棄される。これは、パケットを特定のＩＰアドレスを有する特定のデータインターフェースに制限し、入力パケットに関して発生するあらゆるルーティングの誤りを防止する。
【００６０】
図６は、一時的な経路範囲がアプリケーションの経路範囲に従うかどうかを決定する方法を示す。ブロック６００において開始すると、アプリケーションに関する経路範囲が受信される。ブロック６０２において、一時的な経路範囲が作成される。その後で、ブロック６０４において、ビット毎の論理積演算が経路範囲および一時的な経路範囲に関して実行される。ブロック６０６に移動すると、論理積演算の結果がゼロであるかどうかが決定される。結果がゼロである場合、方法はブロック６０８に進み、パケットが廃棄される。続いて、方法は状態６１０において終了する。その一方、結果がゼロではない場合、方法はブロック６１２に移動し、データパケットが保持される。続いて、方法は状態６１０において終了する。
【００６１】
特定の実施形態において、経路範囲は、どのデータインターフェースが特定のアプリケーションに関してデータを受信することを許されるかについての情報を含む。経路範囲は、全ての利用可能なデータインターフェースのビットマスクとして保持されることができる。データインターフェースが特定のアプリケーションに関するネットワークポリシーを満足するとき、当該データインターフェースが当該特定のアプリケーションに関連する経路範囲に追加される。例えば、インデックス５を有する第５のデータインターフェースがアプリケーションに関するネットワークポリシーを満足する場合、アプリケーションに関する経路範囲内のビット番号５が、第５のデータインターフェースをアプリケーションに関する経路範囲に含めるために１に設定される。
【００６２】
特定の実施形態において、受信データを制限するとき、ゼロより大きい優先順位を有する全てのデータインターフェースがアプリケーションに関する経路範囲に含まれる。方法は、各データインターフェースに関するＡＣＬを検討し、アプリケーションに関するネットワークポリシーを満足する全てのデータインターフェースをアプリケーションに関する経路範囲内に含める。特定の実施形態において、経路範囲は、当該経路範囲に関連するアプリケーションがデータインターフェースのうちの１つまたはそれより多くのものを介してデータを受信することを許可されることを示す１に設定される１つまたはそれより多くのビットを含むことができる。
【００６３】
特定の実施形態において、アプリケーションが特定のＩＰアドレスにバインドする場合、経路範囲は、要求されたＩＰアドレスを有し、ネットワークポリシーにやはり一致するデータインターフェースを含むように制限されることができる。別の特定の実施形態において、経路範囲は、アプリケーションが特定のネットワークポリシーを用いてソケットを作成するときに作成される。しかし、経路範囲は周期的に更新されることができる。
【００６４】
図７から図１０までは、図５および図６において概説された方法に従う例を示す。図７は、入力パケットが受信され、データインターフェースのアドレス（１０．０．０．１）と同じである宛先アドレス（１０．０．０．１）を含む例を示す。したがって、入力パケットは受け入れられる。
【００６５】
図８は、入力パケットが受信され、当該入力パケットデータが受信される入力データインターフェースのアドレス（１０．０．０．２）とは異なる宛先アドレス（１０．０．０．１）を含む例を示す。したがって、入力パケットは廃棄される。
【００６６】
図９は、アプリケーションのネットワークポリシーを満足するデータインターフェース上で入力パケットが受信され、受け入れられる例を示す。示されるように、アプリケーションの経路範囲および一時的な経路範囲に関して実行されるビット毎の論理積演算は非ゼロである。したがって、入力パケットはアプリケーションのネットワークポリシーを満足する。
【００６７】
図１０は、アプリケーションのネットワークポリシーを満足しないデータインターフェース上で入力パケットが受信される例を示す。示されるように、アプリケーションの経路範囲および一時的な経路範囲に関して実行されるビット毎の論理積演算はゼロである。したがって、入力パケットはアプリケーションのネットワークポリシーに違反し(violates)、入力パケットは廃棄される。
【００６８】
特定の実施形態において、データインターフェースおよび無線ネットワーキングの状態の動的な性質が、ネットワークデバイス内の各アプリケーションに関連する経路範囲に影響を与える可能性がある。例えば、ネットワークデバイスの移動性(mobility)が原因で、ネットワークデバイスは複数のネットワークのカバレージエリアをまたがって移動し、対応するネットワークデータインターフェースを立ち上がら(come up)せる、または停止さ(go down)せる可能性がある。やはり移動性が原因で、１つのネットワークおよび関連するネットワークデータインターフェースの優先順位は、特定の時間に特定の場所において利用可能であるネットワークアクセスの種類、またはサービスを提供しているキャリアの種類に応じて上昇または下降する可能性がある。
【００６９】
無線通信の動的な性質が原因で、ネットワークデバイス内のアプリケーションに関連する経路範囲を変化させる可能性があるいくつかのトリガー(triggers)が存在し得る。さらに、アプリケーションに関連する経路範囲は、データインターフェースの状態の変化に伴って管理および変更される必要がある。
【００７０】
特定の実施形態において、データインターフェースが立ち上がるかまたは停止する(goes up or down)度に、そのことは、いくつかのアプリケーションおよびデータインターフェースに関連するネットワークポリシーが動的に構成されるので種々のアプリケーションの経路範囲に影響を与える可能性がある。例えば、ＵＭＴＳデータインターフェースが立ち上げられるとき、ＵＭＴＳは毎回異なるアクセスポイント名（ＡＰＮ）に接続し、異なる種類のサービスを提供する。そのようなデータインターフェースが立ち上げられ、特定のＡＰＮに関連付けられる(tied to)とき、そのデータインターフェースは、ネットワークデバイス内の１つまたはそれより多くのアプリケーションのネットワークポリシーともはや合わない可能性がある。したがって、特定のデータインターフェースを立ち上げることは、１つまたはそれより多くのアプリケーションに関する経路範囲を縮小する(shrink down)可能性がある。
【００７１】
同様に、特定のデータインターフェースが停止される(brought down)とき、それは１つまたはそれより多くのアプリケーションに関連する経路範囲を拡大する可能性がある。特定の実施形態において、データインターフェースが停止している(is down)場合、それはそれまで通りアプリケーションに関連する経路範囲内に含まれることができ、アプリケーションはそのデータインターフェースを、それが立ち上げられた後で、場合によっては使用する可能性がある。さらに、特定の実施形態において、全てのデータインターフェースではなく一部のデータインターフェースが、コストを節約するために自動的に立ち上げられる可能性がある。追加的なデータインターフェースが、例えばユーザまたはアプリケーションによって必要とされるときに立ち上げられることができる。
【００７２】
特定の実施形態において、ネットワークノードがネットワークのカバレージエリアを変更するとき、１つまたはそれより多くのアプリケーションの経路範囲が変わることができる。例えば、１つのネットワークのカバレージエリアを外れることは、ネットワークデバイスがカバレージエリアに再び入るときに関連するデータインターフェースが有効化されるまで当該データインターフェースを無効にする可能性がある。特定の実施形態において、無効にされた(disabled)データインターフェースはネットワークの接続性の欠如が原因で立ち上げられることができない一方、停止している(down)データインターフェースは場合によっては必要とされるときに通信のために立ち上げられ、使用されることができる。
【００７３】
別の特定の実施形態において、いくつかのアプリケーションが単一のネットワークデータインターフェースに厳格にバインドされることができ、そのデータインターフェースはデータの送信および受信のために使用される。そのようなアプリケーションに関して、経路範囲は１ビットのみを設定させ、そのビットは、当該データインターフェースが立ち上げられるときに設定され、当該データインターフェースが停止されるときにゼロにリセットされることができる。
【００７４】
特定の実施形態において、経路範囲は、ソケットに関連するネットワークポリシーが変更されるときにやはり変わることができる。そのような実施形態において、新しいネットワークポリシーに従ってそのアプリケーションに対して新しい経路範囲が計算されることができ、新しい経路範囲はアプリケーションに関連するソケットに伝えられる（propagated）ことができる。別の実施形態において、アプリケーションが例えばｂｉｎｄ（）ＡＰＩ呼び出し(call)を使用して特定のＩＰアドレスにバインドする場合、経路範囲は、その特定のアドレスにソケットがバインドされる特定のアドレスを有するデータインターフェースに制限されることができる。移動性およびネットワークのハンドオフが原因で、データインターフェースのＩＰアドレスは変わる可能性があり、アプリケーションに関する経路範囲は、関連する経路範囲から前のデータインターフェースを除外するために更新される必要がある可能性がある。
【００７５】
さらに、特定の実施形態において、単一のネットワークデータインターフェースが様々な技術的領域、例えばＣＤＭＡ、ＵＭＴＳなど、またはネットワークの種類、例えばＩＰｖ４、ＩＰｖ６などをサービスすることができる場合、およびそのようなデータインターフェースが異なる技術的領域またはネットワークの種類にハンドオフする場合、このデータインターフェースを含む経路範囲は、更新され、当該データインターフェースがアプリケーションのネットワークポリシーを満足し続けるかどうかを決定するために再評価される必要がある。さらに別の特定の実施形態において、接続されるソケット、例えばＴＣＰソケットに関して、例えばｃｏｎｎｅｃｔ（）ＡＰＩ呼び出しを使用していったん接続が確立されてしまうと、経路範囲は指定された宛先アドレスに接続することができる１つのインターフェースのみに制限されることができる。
【００７６】
別の特定の実施形態において、アプリケーションによって指定されるネットワークポリシーは、ループバック(loopback)データインターフェースを含んでもよく、または含まなくてもよい。しかし、あらゆるソケットが、ループバックデータインターフェース上でパケットを送信および受信することを許可される可能性がある。したがって、ループバックデータインターフェースは、１つまたはそれより多くのネットワークポリシーを通じて制限されるデータインターフェースの特別な場合と考えられることができる。ループバックデータインターフェースは、ループバック宛先アドレスを有する受信パケットはループバックデータインターフェース上で受信されなければならないという制限を含むことができる。このチェックは、例えばアドレス比較の間に入力パケットに対するデータインターフェースの制限の第１の段階としてＩＰレイヤにおいて実行されることができる。トランスポートレイヤの制限に関して、ループバックデータインターフェースに対応するビットが、各アプリケーションに関連する経路範囲に関してオンにされることができるか、経路範囲に関する処理のためにトランスポートレイヤにおいて特別なチェックが実行されることができるかのいずれかである。
【００７７】
図１１を参照すると、アプリケーションをポートにバインドする方法が示され、ブロック１１００において開始する。ブロック１１００において、ネットワークデバイス内のルーティングモジュールが、ポートをアプリケーションにバインドする要求を受信する。ブロック１１０２において、ルーティングモジュールが、全ての開いているまたはアクティブなアプリケーションを検討する。決定ステップ１１０４に移動すると、ルーティングモジュールは、要求元のアプリケーションがバインドしようと試みているその同じポートに何らかの開いているまたはアクティブなアプリケーションがバインドされているかどうかを決定する。バインドされていない場合、方法はブロック１１０６に進み、ルーティングモジュールが要求元のアプリケーションをポートにバインドする。続いて、方法は状態１１０８において終了する。
【００７８】
その一方、決定ステップ１１０４において、そのポートに要求元のアプリケーションがバインドしようと試みている同じポートに何らかの開いているまたはアクティブなアプリケーションがバインドされている場合、方法はブロック１１１０に進み、ルーティングモジュールがそれぞれの開いている／アクティブなアプリケーションの経路範囲と、要求元のアプリケーションの経路範囲とに関してビット毎の論理積演算を実行する。決定ステップ１１１２に進むと、ルーティングモジュールは、任意のビット毎の論理積演算の結果がゼロであるかどうかを決定する。結果がゼロである場合、方法はブロック１１０６に移動し、ルーティングモジュールが要求元のアプリケーションをポートにバインドし、要求元のアプリケーションに関連するソケットに当該ポートを設定する。方法は状態１１０８において終了する。
【００７９】
決定ステップ１１１２に戻ると、何らかのビット毎の論理積演算の結果がゼロでない場合、方法はブロック１１１４に移動し、ルーティングモジュールは要求元のアプリケーションをポートにバインドしない。続いて、方法は状態１１０８において終了する。
【００８０】
特定の実施形態において、上述の様々な理由のうちの１つまたはそれより多くが原因でソケットの経路範囲が変わるときに、新しい経路範囲がポート空間の分割に影響を与える可能性がある。例えば、アプリケーションに関する経路範囲の再計算の間に、１つまたはそれより多くのデータインターフェースが経路範囲から削除される場合、ポート空間は分かれたままであるので、およびソケットの経路範囲の間の新しい重なりが生み出されないので問題は起こらない。しかし、１つまたはそれより多くのデータインターフェースが経路範囲に追加される場合、データインターフェースの追加はその他のアプリケーションに関連する経路範囲とのコンフリクト(conflict)を引き起こす可能性がある。重なり合う経路範囲を有するアプリケーションによって使用されるポート番号が同じである場合、ネットワーキングスタックは、重なり合うデータインターフェースのうちの１つに到着する到来受信データパケットをどのアプリケーションに送るのかを決定することができなくなる。
【００８１】
特定の実施形態において、この潜在的なコンフリクトは以下のアプローチに基づいて解決されることができる。コンフリクトしているアプリケーションがコンフリクトしている＜ポート番号，データインターフェース＞の対でデータを既にアクティブに転送している場合、そのアプリケーションはそのままにされ、その他のアプリケーションはその＜ポート番号，データインターフェース＞の対を使用することを阻止される。コンフリクトしているアプリケーションがその＜ポート番号，データインターフェース＞の対をデータ転送のためにアクティブに使用していない場合、当該＜ポート番号，データインターフェース＞の対は構成可能なポリシーに基づいてコンフリクトしているアプリケーションに対して許可されない(disallowed)。
【００８２】
特定の実施形態において、アプリケーションを許可しないことは、許可されないアプリケーションの経路範囲が問題のポート番号に関するコンフリクトしているデータインターフェースを除外する(exclude)ように一時的に縮小する(shrinks)ことを本質的に意味する。これは、それぞれのアプリケーションに対して１組のブロックされる＜ポート番号，データインターフェース＞の対、すなわちブロック経路範囲を定義することによって処理されることができる。特定の実施形態において、ブロック経路範囲は、ネットワークポリシーの不一致が原因ではなく、別のアプリケーションとのコンフリクトが原因で一時的にブロックされる経路範囲である。
【００８３】
非限定的で例示的な実施形態において、ブロック経路範囲内のエントリは、（１）競合する(competing)アプリケーションが閉じるとき、（２）競合するアプリケーションが別のポート空間に再バインドする(rebinds)とき、（３）許可されないアプリケーションが異なるポート空間に再バインドするとき、（４）許可されないアプリケーションのネットワークポリシーが変わるとき、（５）競合するアプリケーションのネットワークポリシーが変わるとき、または（６）上で規定された条件が原因で１つまたはそれより多くのアプリケーションの経路範囲が変わるとき、削除されることができる。
【００８４】
特定の実施形態において、上の条件（２）および（５）は、ネットワークデバイス内のその他のアプリケーションに関する経路範囲をブロックさせる可能性がある。さらに、特定の実施形態において、条件（３）および（４）は、いくつかのエントリをブロック経路範囲から削除させる可能性がある一方、新しいコンフリクトが原因でその他のエントリが追加される可能性がある。
【００８５】
特定の実施形態において、図３、図４、図５、図６、および図１１に関連して上述されたステップは、メモリ、例えば、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、マスクＲＯＭ、プログラマブル読み出し専用メモリ（ＰＲＯＭ）、消去可能プログラマブル読み出し専用メモリ（erasable and programmable read only memory）（ＥＰＲＯＭ）、電子的消去可能プログラマブル読み出し専用メモリ（electronically erasable and programmable read only memory）（ＥＥＰＲＯＭ）、不揮発性ランダムアクセスメモリ（ＮＶＲＡＭ）、フラッシュメモリ、ハードディスクドライブ、またはその他の記憶手段内に記憶されるソフトウェアとして実施されることができる。これらの方法のステップのそれぞれは、個々に、またはその他の方法のステップと組み合わせて記憶されてよい。
【００８６】
さらに、特定の実施形態において、図３、図４、図５、図６、および図１１に関連して上述された方法のステップは、プロセッサ、マイクロプロセッサ、コントローラ、マイクロコントローラ、特定用途向け集積回路（ＡＳＩＣ）、ディジタル信号プロセッサ（ＤＳＰ）、またはその他の処理手段によって実行されることができる。これらの方法のステップのそれぞれは、個々に、またはその他の方法のステップと組み合わせて実行されてよい。
【００８７】
図１２は、全体的に１２００で示される無線デバイスを示す。示されるように、無線デバイス１２００はディスプレイ１２０２およびキーパッド１２０４を含む。さらに、無線デバイス１２００は、マイクロホン１２０６およびスピーカ１２０８を含むことができる。ユーザは、マイクロホン１２０６に話しかけ、スピーカ１２０８を介して到来音声を聞くことができる。図１２に示されるように、信号強度インジケータ１２１０、ボイスメールインジケータ１２１２、およびバッテリレベルインジケータ１２１４がディスプレイ１２０２によって表示されることができる。
【００８８】
図１２に示されるように、例示的で非限定的な実施形態において、キーパッド１２０４は、ディスプレイ１２０２においてカーソルまたはセレクタバーをあちこちに移動するためにユーザが使用することができる方向ボタン１２１６を含むことができる。具体的には、ユーザは、方向ボタン１２１６を使用してカーソルまたはセレクタバーを任意の方向、例えば、上、下、左、右、または任意の斜めの方向に移動することができる。さらに、特定の実施形態において、キーパッド１２０４は、ＯＫボタン１２１８、クリアボタン１２２０、および終了ボタン１２２２を含むことができる。ユーザは、ＯＫボタン１２１８、クリアボタン１２２０、および終了ボタン１２２２を使用して、ディスプレイ１２０２に表示されるプロンプト(prompts)に応答して答えを入力することができる。
【００８９】
図１２は、無線デバイス１２００のディスプレイ１２０２を介してユーザに提示されることができる第１の例示的なグラフィカルユーザデータインターフェース（ＧＵＩ）１２５０をさらに示す。示されるように、第１のＧＵＩ１２１０は、第１のＧＵＩ１２５０の目的を示すヘッダ１２５２を含むことができる。示されるように、例示的な実施形態において、ヘッダ１２５２は、「ネットワーク設定を編集する」とラベル表示される。したがって、ユーザは、ネットワーク設定を編集するために第１のＧＵＩ１２５０が使用できると推測する(surmise)ことができる。
【００９０】
図１２は、第１のＧＵＩ１２５０がアプリケーションメニュー１２５４を含むことができることも示す。特定の実施形態において、アプリケーションメニュー１２５４は、ネットワークアクセスを必要とする、無線デバイス１２００にインストールされているアプリケーションのリストを含む。例えば、アプリケーションメニュー１２５４は、第１のアプリケーション、第２のアプリケーション、第３のアプリケーション、および第Ｎのアプリケーションを含む。示されるように、第１のＧＵＩ１２５０は、ユーザがキーパッド１２０４の方向ボタン１２１６を使用してアプリケーションメニュー１２５４内を上および下に移動させることができるセレクタバー１２５６も含む。ユーザは、図１３に示される第２のＧＵＩ１３００にアクセスするために、セレクタバー１２５６をアプリケーション、例えば、第３のアプリケーションに移動し、キーパッド１２０４のＯＫボタン１２１８を選択することができる。
【００９１】
図１３は、アプリケーション、例えば、第１のＧＵＩ１２５０（図１２）を使用して選択された第３のアプリケーションに関する設定を編集するために使用されることができる、１３００で示される第２の例示的なＧＵＩを示す。図１３に示されるように、第２のＧＵＩ１３００は、第２のＧＵＩ１３００の目的を示すヘッダ１３０２を含むことができる。例示的な実施形態において、第２のＧＵＩ１３００のヘッダ１３０２は、「アプリケーション３−ネットワーク設定を編集する」とラベル表示される。したがって、ユーザは、第２のＧＵＩ１３００が第３のアプリケーションに関するネットワーク設定を編集するために使用されることができると判断することができる。
【００９２】
別の実施形態において、ユーザが第１のＧＵＩ１２５０（図１２）において第１のアプリケーションを選択する場合、第２のＧＵＩ１３００のヘッダ１３０２は、「アプリケーション１−ネットワーク設定を編集する」とラベル表示されることができる。
【００９３】
図１３に示されるように、第２のＧＵＩ１３００は、無線デバイス１２００において利用可能であるネットワークまたはネットワークデータインターフェースのリストを含むネットワークメニュー１３０４を含むことができる。例えば、ネットワークメニュー１３０４は、第１のネットワーク、第２のネットワーク、第３のネットワーク、および第Ｎのネットワークを含む。第２のＧＵＩ１３００は、ユーザがキーパッド１２０４の方向ボタン１２１６を使用してネットワークメニュー１３０４内を上および下に移動させることができるセレクタバー１３０６も含む。ユーザは、無線デバイス１２００にインストールされている特定のアプリケーションに関する認められたネットワークのリストにネットワークを追加するか、またはそのリストからネットワークを削除するために、セレクタバー１３０６をネットワーク、例えば、第２のアプリケーションに移動し、追加ソフトボタン１３０８または削除ソフトボタン１３１０を選択することができる。
【００９４】
示されるように、第２のＧＵＩ１３００は、ディスプレイ１２０２に表示される優先順位設定ソフトボタン１３１２も含む。特定の実施形態において、ユーザは、無線デバイス１２００内の特定のアプリケーションによる使用が認められたネットワークの階層を確立するために優先順位設定ソフトボタン１３１２を選択することができる。優先順位設定ソフトボタン１３１２が選択されると、第３のＧＵＩ１４００はディスプレイ１２０２を介してユーザに提示されることができる。その代りに、ネットワークポリシーを記述し、データネットワークに優先順位を割り当てるために事前定義された(predefined)ＡＣＬｓが使用されることができる。
【００９５】
図１４を参照すると、第３のＧＵＩ１４００が示される。図１４に示されるように、第３のＧＵＩ１４００は、第３のＧＵＩ１４００の目的を示すヘッダ１４０２を含むことができる。例えば、第３のＧＵＩ１４００のヘッダ１４０２は、「ネットワーク優先順位−アプリケーション３」とラベル表示される。したがって、ユーザは、第３のＧＵＩ１４００が第３のアプリケーションによる使用が認められたネットワークに関するネットワーク優先順位を編集するために使用されることができると判断することができる。
【００９６】
代りの実施形態において、ユーザが第１のＧＵＩ１２５０（図１２）において第１のアプリケーションを選択し、ユーザが第２のＧＵＩ１３００（図１３）において優先順位設定ソフトボタン１３１２を選択する場合、第３のＧＵＩ１４００のヘッダ１４０２は、「ネットワーク優先順位−アプリケーション１」とラベル表示されることができる。
【００９７】
図１４に示されるように、第３のＧＵＩ１４００は、第３のアプリケーションによる使用が認められているネットワークまたはネットワークデータインターフェースのリストを含むネットワーク優先順位メニュー１４０４を含むことができる。また、ネットワーク優先順位メニュー１４０４は、それぞれの認められたネットワークまたはネットワークデータインターフェースの優先順位を示す。例えば、ネットワーク優先順位メニュー１４０４は、第１の優先順位を有する第３のネットワークと、第２の優先順位を有する第１のネットワークと、第３の優先順位を有する第５のネットワークと、第４の優先順位を有する第４のネットワークとを含む。
【００９８】
第３のＧＵＩ１４００は、ユーザがキーパッド１２０４の方向ボタン１２１６を使用してネットワーク優先順位メニュー１４０４内を上および下に移動させることができるセレクタバー１４０６も含む。ユーザは、ネットワーク優先順位メニュー１４０４内で第１のネットワークを上または下に移動させるために、ネットワーク、例えば第１のアプリケーションにセレクタバー１４０６を移動し、上ソフトボタン１４０８または下ソフトボタン１４１０を選択することができる。したがって、ユーザは、アプリケーションがデータ転送中に利用できるネットワークの優先順位を定義することができる。
【００９９】
図１５は、データパケットをアプリケーションに送信する試みが阻止されると、ユーザに提示されることができる第４のＧＵＩ１５００を示す。図１５に示されるように、第４のＧＵＩ１５００は、第４のＧＵＩ１５００の目的を示すヘッダ１５０２を含むことができる。例えば、第４のＧＵＩ１５００のヘッダ１５０２は、「誤りメッセージ」とラベル表示される。したがって、ユーザは、無線デバイスが誤りに遭遇したと推測することができる。図１５は、第４のＧＵＩ１５００がディスプレイ１２０２を介してユーザに提示されることができる誤りメッセージ１５０４を含むことができることをさらに示す。例示的で非限定的な実施形態において、誤りメッセージは、「到来データパケットが廃棄されました。誤りが記録されました（logged）。」を示す。したがって、ユーザは、外部デバイスが無線デバイス、例えば、無線デバイス内のアプリケーションにデータパケットを送信しようと試み、当該データパケットが疑わしい(suspicious)ために廃棄されたことを知る。特定の実施形態において、誤りは無線デバイスにおいて記録されることができる。その代りに、誤りは、そのネットワークから疑わしいパケットが受信されるネットワークのネットワークデバイスにおいて記録されることができる。
【０１００】
特定の実施形態において、上述の各ＧＵＩ１２５０、１３００、１４００、１５００は独立したＧＵＩである。その代りに、上述のＧＵＩｓ１２５０、１３００、１４００、１５００は、単一のＧＵＩがマルチプルのページを有する場合は一部分である。
【０１０１】
本明細書において説明された構造の構成を用いて、マルチホーミングマルチモード通信デバイスにおいてデータアプリケーションをサポートするシステムおよび方法は、どのデータインターフェースをデータネットワーキングに使用するかをネットワークデバイス内のアプリケーションが指定するためのやり方を提供する。例えば、ネットワークデバイス内の特定のネットワークデータインターフェースが包括的なネットワーク、例えば、インターネットに対するアクセスを提供することができる一方、別のネットワークデータインターフェースが私企業のイントラネットに対するアクセスを提供することができる。また、ネットワークデバイスは、私企業のネットワークから電子メールにアクセスするための第１の電子メールクライアントアプリケーションと、インターネット上で個人的な電子メールを検索するための第２の電子メールクライアントアプリケーションとを含むことができる。
【０１０２】
特定の実施形態において、ネットワークデバイスは、プライベートなイントラネットに対するアクセスのための「専用の」ブラウザと、通常のインターネットアクセスのための「入手し易い(off the shelf)」ブラウザとを含むことができる。また、ネットワークデバイスはマルチプルのＧＰＳエンジンを含むことができ、各ＧＰＳエンジンは、当該ＧＰＳエンジンによって指定されたデータインターフェースを介して特定のネットワークから位置情報にアクセスすることができる。さらに、特定の実施形態において、ネットワークデバイスと通信するネームリゾルバ(resolver)、例えば、ドメインネームシステム（ＤＮＳ）は、２つのプライベートネットワークにおいて構成された重複する名前またはアドレスが存在する可能性があるので、特定のネットワークに関して名前またはアドレスを解決することができる。
【０１０３】
さらに、本明細書において説明された構造の構成を用いて、システムおよび方法は、そのデータインターフェース上でアプリケーションがデータを受信することができるデータインターフェースの数を制限することができる。これは、ネットワークデバイス内のプロトコルスタックおよびアプリケーションに対して比較的高いレベルのセキュリティを提供する。また、システムおよび方法は、そのデータインターフェース上でデータが受信される１つのデータインターフェースまたは複数のデータインターフェースに基づいて到来データが特定のアプリケーションに通信されるように到来データを制限するやり方を提供する。システムは、各アプリケーションに関するデータ転送のために認められているデータインターフェースを識別するために、各アプリケーションに関連するネットワークポリシーを利用することができる。
【０１０４】
さらに、本明細書において説明されたシステムおよび方法は、１つの、複数の、または全てのデータインターフェースに関する特定のポートにアプリケーションがバインドすることを可能にすることができる。その他のプロトコルスタック、例えば、非ＴＣＰ／ＵＤＰ／ＩＰに関して、アプリケーションは、１組のデータインターフェース上でサービスにアクセスすることを認められることができる。
【０１０５】
当業者は、本明細書において開示された実施形態に関連して説明された種々の例示的な論理ブロック、構成、モジュール、回路、およびアルゴリズムのステップが、電子的なハードウェア、コンピュータソフトウェア、またはそれら両方の組合せとして実装されることができることをさらに理解するであろう。ハードウェアとソフトウェアとのこの互換性を明確に示すために、種々の例示的なコンポーネント、ブロック、構成、モジュール、回路、およびステップが、概してそれらの機能に関して説明された。そのような機能がハードウェアで実装されるか、それともソフトウェアで実装されるかは、システム全体に課された特定の用途および設計の制約による。当業者は、説明された機能をそれぞれの特定の用途のために様々なやり方で実装することができるが、そのような実装の判断は本開示の範囲からの逸脱をもたらすものと解釈されてはならない。
【０１０６】
本明細書において開示された実施形態と関連して説明された方法またはアルゴリズムのステップは、直接ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはこの２つの組合せで実装されることができる。ソフトウェアモジュールは、ＲＡＭメモリ、フラッシュメモリ、ＲＯＭメモリ、ＰＲＯＭメモリ、ＥＰＲＯＭメモリ、ＥＥＰＲＯＭメモリ、レジスタ、ハードディスク、リムーバブルディスク、ＣＤ−ＲＯＭ、または当技術分野で知られている任意のその他の形態の記憶媒体に存在することができる。例示的な記憶媒体は、プロセッサが当該記憶媒体から情報を読むことができ、当該記憶媒体に情報を書き込むことができるようにプロセッサに結合される。別法として、記憶媒体はプロセッサに一体化されていてよい。プロセッサおよび記憶媒体はＡＳＩＣ内に存在してよい。ＡＳＩＣは、コンピューティングデバイスまたはユーザ端末内に存在してよい。別法として、プロセッサおよび記憶媒体はコンピューティングデバイスまたはユーザ端末内の別個のコンポーネントとして存在してよい。
【０１０７】
開示された実施形態の上記の説明は、当業者が開示を作製するまたは使用することを可能にするために提供される。これらの実施形態に対する種々の修正が当業者には容易に明らかとなり、本明細書で定義された包括的な原理は、本開示の精神または範囲を逸脱することなくその他の実施形態に適用可能されることができる。したがって、本開示は、本明細書に示された実施形態に限定されるように意図されておらず、添付の特許請求の範囲に規定された原理および新規の特徴に合致する最も広い範囲を与えられるべきである。
【図１】
2011172220.tif 000003
【図２】
2011172220.tif 000004
【図３】
2011172220.tif 000005
【図４】
2011172220.tif 000006
【図５】
2011172220.tif 000007
【図６】
2011172220.tif 000008
【図７】
2011172220.tif 000009
【図８】
2011172220.tif 000010
【図９】
2011172220.tif 000011
【図１０】
2011172220.tif 000012
【図１１】
2011172220.tif 000013
【図１２】
2011172220.tif 000014
【図１３】
2011172220.tif 000015
【図１４】
2011172220.tif 000016
【図１５】
2011172220.tif 000017
【手続補正書】
【提出日】平成23年3月9日(2011.3.9)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
マルチホーミングネットワークデバイスからデータネットワークにデータを送信および受信する方法であって、前記方法は、
データを送信および受信するためにアプリケーションによって使用されるべき１組の利用可能なデータインターフェースを識別するためのネットワークポリシーを定義することと、
前記ネットワークポリシーをルーティングモジュールに送信することと、
前記ルーティングモジュールから経路範囲を受信することとを具備する、ここにおいて前記経路範囲は前記ネットワークポリシーを満足する前記データネットワークへのデータインターフェースのサブセットを識別し、ここにおいてデータインターフェースの前記サブセットは前記１組の利用可能なデータインターフェースから選択され、ここにおいてデータインターフェースの前記サブセットは少なくとも１つのデータインターフェースを含み、ここにおいて前記アプリケーションに関する前記経路範囲は動的に変更される、方法。
【請求項２】
前記ネットワークポリシーは、前記１組の利用可能なデータインターフェースからデータインターフェースの前記サブセットを選択するための１つまたはそれより多くの基準を識別する請求項１に記載の方法。
【請求項３】
前記ネットワークポリシーは、アプリケーションへの／からのデータ転送のために使用されるべき２つまたはそれより多くのデータインターフェースを定義する請求項２に記載の方法。
【請求項４】
前記ネットワークポリシーはアプリケーションによって定義される請求項３に記載の方法。
【請求項５】
データインターフェースの前記サブセットは、移動体通信用グローバルシステム（ＧＳＭ）データインターフェース、汎用パケット無線サービス（ＧＰＲＳ）データインターフェース、ユニバーサル移動体通信システム（ＵＭＴＳ）データインターフェース、符号分割多元接続（ＣＤＭＡ）データインターフェース、ＣＤＭＡ２０００データインターフェース、ＣＤＭＡエボリューションデータオプティマイズド（ＥＶＤＯ）インターフェース、Ｂｌｕｅｔｏｏｔｈ（ＢＴ）データインターフェース、８０２．１１ａデータインターフェース、８０２．１１ｂデータインターフェース、８０２．１１ｇデータインターフェース、８０２．１１ｉデータインターフェース、８０２．１５データインターフェース、８０２．１６データインターフェース、広帯域ＣＤＭＡ（ＷＣＤＭＡ）データインターフェース、直交周波数符号分割多重（ＯＦＣＤＭ）データインターフェース、全地球測位システム（ＧＰＳ）データインターフェース、またはこれらの組合せを含む請求項１に記載の方法。
【請求項６】
前記ネットワークポリシーに関連するアプリケーションは、前記経路範囲によって識別されるデータインターフェースの前記サブセットにバインドされる請求項１に記載の方法。
【請求項７】
データインターフェースの前記サブセット内の好ましいデータインターフェースが利用可能かどうかを決定することと、
前記好ましいデータインターフェースが利用可能であるときに前記好ましいデータインターフェースを介して接続を開くことと、
前記好ましいデータインターフェースを介してデータを送信することと
をさらに具備する請求項６に記載の方法。
【請求項８】
前記好ましいデータインターフェースが利用可能でないときに、データインターフェースの前記サブセット内の次に好ましいデータインターフェースが利用可能かどうかを決定することと、
前記次に好ましいデータインターフェースを介して接続を開くことと、
前記次に好ましいデータインターフェースを介してデータを送信することと
をさらに具備する請求項７に記載の方法。
【請求項９】
前記接続が遮断されているかどうかを決定することと、
前記接続が遮断されているときに、次に好ましいデータインターフェースが利用可能かどうかを決定することと、
前記次に好ましいデータインターフェースを介して接続を開くことと、
前記次に好ましいデータインターフェースを介してデータを送信することと
をさらに具備する請求項７に記載の方法。
【請求項１０】
プロセッサと、
前記プロセッサがアクセス可能なメモリと、
前記メモリ内に記憶された少なくとも１つのアプリケーションと、
前記メモリ内に記憶された少なくとも１つのネットワークポリシーとを具備し、ここにおいて前記少なくとも１つのネットワークポリシーは、データを送信および受信するために前記アプリケーションによって使用されるべき１組の利用可能なデータインターフェースを識別する、マルチホーミングネットワークデバイスであって、
前記マルチホーミングネットワークデバイスは、
前記メモリ内に記憶された経路範囲をさらに具備し、ここにおいて前記経路範囲はルーティングモジュールから受信される、ここにおいて前記経路範囲は前記ネットワークポリシーを満足するデータインターフェースのサブセットを含み、ここにおいてデータインターフェースの前記サブセットは前記１組の利用可能なデータインターフェースから選択され、ここにおいて前記アプリケーションに関する前記経路範囲は動的に変更される、マルチホーミングネットワークデバイス。
【請求項１１】
データインターフェースの前記サブセットは、移動体通信用グローバルシステム（ＧＳＭ）データインターフェース、汎用パケット無線サービス（ＧＰＲＳ）データインターフェース、ユニバーサル移動体通信システム（ＵＭＴＳ）データインターフェース、符号分割多元接続（ＣＤＭＡ）データインターフェース、ＣＤＭＡ２０００データインターフェース、ＣＤＭＡエボリューションデータオプティマイズド（ＥＶＤＯ）インターフェース、Ｂｌｕｅｔｏｏｔｈ（ＢＴ）データインターフェース、８０２．１１ａデータインターフェース、８０２．１１ｂデータインターフェース、８０２．１１ｇデータインターフェース、８０２．１１ｉデータインターフェース、８０２．１５データインターフェース、８０２．１６データインターフェース、広帯域ＣＤＭＡ（ＷＣＤＭＡ）データインターフェース、直交周波数符号分割多重（ＯＦＣＤＭ）データインターフェース、全地球測位システム（ＧＰＳ）データインターフェース、またはこれらの組合せを含む請求項１０に記載のマルチホーミングネットワークデバイス。
【請求項１２】
前記経路範囲は、前記ネットワークポリシーに基づいてルーティングモジュールによって生成される請求項１０に記載のマルチホーミングネットワークデバイス。
【請求項１３】
データインターフェースの前記サブセットは階層に編成され、前記マルチホーミングネットワークデバイスは前記階層内の第１の利用可能なデータインターフェースに基づいて、データインターフェースの前記サブセットのうちのそれぞれを介して一度に１つずつ通信を確立しようと試みる請求項１０に記載のマルチホーミングネットワークデバイス。
【請求項１４】
前記プロセッサに結合されたトランシーバと、
前記トランシーバに結合されたアンテナと
をさらに具備する請求項１０に記載のマルチホーミングネットワークデバイス。
【請求項１５】
複数のデータインターフェースをさらに具備する、ここにおいて前記複数のデータインターフェースのそれぞれは異なるデータネットワークへのアクセスを提供する請求項１０に記載のマルチホーミングネットワークデバイス。
【請求項１６】
前記複数のデータインターフェースのそれぞれはアクセス制御リスト（ＡＣＬ）を含み、ここにおいて前記ＡＣＬは対応するデータインターフェースへのアクセスを制限する請求項１５に記載のマルチホーミングネットワークデバイス。
【請求項１７】
前記ＡＣＬは非ゼロの優先順位番号を返す、ここにおいて前記非ゼロの優先順位番号は、前記対応するデータインターフェースが特定のネットワークポリシーで使用可能であることを指示する請求項１６に記載のマルチホーミングネットワークデバイス。
【請求項１８】
前記非ゼロの優先順位番号は、前記対応するデータインターフェースに関連する優先のレベルを識別する請求項１７に記載のマルチホーミングネットワークデバイス。
【請求項１９】
前記マルチホーミングネットワークデバイス内の第１のアプリケーションは第１のデータインターフェースを介して第１のネットワークにアクセスし、前記マルチホーミングネットワークデバイス内の第２のアプリケーションは第２のデータインターフェースを介して第２のネットワークにアクセスする請求項１０に記載のマルチホーミングネットワークデバイス。
【請求項２０】
プロセッサがアクセス可能なコンピュータ可読媒体であって、前記コンピュータ可読媒体は、
少なくとも１つのアプリケーションと、
前記少なくとも１つのアプリケーションに関連する少なくとも１つのネットワークポリシーとを具備する、ここおいて前記ネットワークポリシーは前記アプリケーションに関するデータを伝達するためのマルチホーミングネットワークデバイスの１組の利用可能なデータインターフェースを識別する、コンピュータ可読媒体であって、
前記コンピュータ可読媒体は経路範囲をさらに具備する、ここにおいて前記経路範囲は前記ネットワークポリシーを満足するデータインターフェースのサブセットを識別し、ここにおいてデータインターフェースの前記サブセットは前記コンピュータ可読媒体がインストールされているデバイスにおける前記１組の利用可能なデータインターフェースから選択され、ここにおいて前記アプリケーションに関する前記経路範囲は動的に変更されるコンピュータ可読媒体。
【請求項２１】
前記経路範囲は、前記ネットワークポリシーに少なくとも部分的に基づいてルーティングモジュールによって生成される請求項２０に記載のコンピュータ可読媒体。
【請求項２２】
アプリケーションにデータインターフェースをバインドする方法であって、前記方法は、
前記アプリケーションからネットワークポリシーを受信することと、ここにおいて前記ネットワークポリシーはデータを送信および受信するために前記アプリケーションによって使用されるべき１組の利用可能なデータインターフェースを識別し、
マルチホーミングネットワークデバイスにおける前記１組の利用可能なデータインターフェース内の全てのデータインターフェースではなく、データインターフェースのサブセットに前記アプリケーションをバインドすることとを具備する、ここにおいてデータインターフェースの前記サブセットは少なくとも１つのデータインターフェースを含む、方法であって、
前記方法は、前記ネットワークポリシーを満足するデータインターフェースの前記サブセットを識別する経路範囲を作成することをさらに具備し、ここにおいて前記アプリケーションに関する前記経路範囲は動的に変更される方法。
【請求項２３】
前記アプリケーションに関連するソケット内に前記経路範囲を記憶することをさらに具備する請求項２２に記載の方法。
【請求項２４】
前記ネットワークポリシーは、アプリケーションへの／からのデータ転送のために使用されるべき２つまたはそれより多くのデータインターフェースを識別する請求項２３に記載の方法。
【請求項２５】
前記経路範囲は、前記１組の利用可能なデータインターフェースのビットマスクである請求項２２に記載の方法。
【請求項２６】
プロセッサと、
前記プロセッサがアクセス可能なメモリと、
前記メモリ内に記憶されたルーティングモジュールとを具備する、ここにおいて前記ルーティングモジュールは、
アプリケーションからネットワークポリシーを受信し、ここにおいて前記ネットワークポリシーはデータを送信および受信するために前記アプリケーションによって使用されるべき１組の利用可能なデータインターフェースを識別し、
前記１組の利用可能なデータインターフェース内のデータインターフェースのサブセットに前記アプリケーションをバインドする
ように構成される、マルチホーミングネットワークデバイスであって、
前記ルーティングモジュールは、前記ネットワークポリシーを満足するデータインターフェースの前記サブセットを識別する経路範囲を作成するようにさらに構成され、ここにおいて前記アプリケーションに関する前記経路範囲は動的に変更される、マルチホーミングネットワークデバイス。
【請求項２７】
前記プロセッサに結合されたトランシーバと、
前記トランシーバに結合されたアンテナと
をさらに具備する請求項２６に記載のマルチホーミングネットワークデバイス。
【請求項２８】
プロセッサがアクセス可能なコンピュータ可読媒体であって、前記コンピュータ可読媒体は、
経路範囲を具備する、ここにおいて前記経路範囲は、マルチホーミングデバイスにおける１組の利用可能なデータインターフェース内のデータインターフェースのサブセットを指示する、ここにおいてアプリケーションはデータインターフェースの前記サブセットにバインドされる、コンピュータ可読媒体であって、
前記経路範囲は、前記アプリケーションから受信されたネットワークポリシーに少なくとも部分的に基づいて生成され、ここにおいて前記ネットワークポリシーはデータを送信および受信するために前記アプリケーションによって使用されるべき前記１組の利用可能なデータインターフェースを識別し、ここにおいてデータインターフェースの前記サブセットは前記ネットワークポリシーを満足し、前記アプリケーションに関する前記経路範囲は動的に変更される、コンピュータ可読媒体。
【請求項２９】
前記経路範囲は、前記プロセッサによって実行可能なルーティングモジュールによって生成される請求項２８に記載のコンピュータ可読媒体。
【請求項３０】
前記経路範囲は、前記１組の利用可能なデータインターフェースのビットマスクである請求項２８に記載のコンピュータ可読媒体。
【請求項３１】
ネットワークポリシーをルーティングモジュールに送信するための手段と、
前記ルーティングモジュールから経路範囲を受信するための手段とを具備する、ここにおいて前記ネットワークポリシーはデータを送信および受信するためにアプリケーションによって使用されるべき１組の利用可能なデータインターフェースを識別し、ここにおいて前記経路範囲は前記ネットワークポリシーを満足するデータネットワークへのデータインターフェースのサブセットを識別し、ここにおいてデータインターフェースの前記サブセットは前記１組の利用可能なデータインターフェースから選択され、ここにおいてデータインターフェースの前記サブセットは少なくとも１つのデータインターフェースを含み、ここにおいて前記アプリケーションに関する前記経路範囲は動的に変更される、マルチホーミングネットワークデバイス。
【請求項３２】
マルチホーミングネットワークデバイスであって、
アプリケーションからネットワークポリシーを受信するための手段と、ここにおいて前記ネットワークポリシーはデータを送信および受信するために前記アプリケーションによって使用されるべき１組の利用可能なデータインターフェースを識別し、
前記マルチホーミングネットワークデバイスにおける前記１組の利用可能なデータインターフェース内の全てのデータインターフェースではなく、データインターフェースのサブセットに前記アプリケーションをバインドするための手段とを具備する、ここにおいてデータインターフェースの前記サブセットは少なくとも１つのデータインターフェースを含む、マルチホーミングネットワークデバイスであって、
前記マルチホーミングネットワークデバイスは前記ネットワークポリシーを満足するデータインターフェースの前記サブセットを識別する経路範囲を生成するための手段をさらに具備し、ここにおいて前記アプリケーションに関する前記経路範囲は動的に変更される、マルチホーミングネットワークデバイス。
【外国語明細書】
2011172220000001.pdf