(57)【要約】【課題】  無線テクノロジ干渉源の間の潜在的コンフリクトを管理する無線テクノロジ（例えばＷｉ−Ｆｉ）共存アーキテクチャおよび方法を提供する。【解決手段】  共存ドライバが、コンピューティングデバイス上で潜在的に競合する無線テクノロジを識別するコンフリクトマップを維持管理する。これらテクノロジは、重複送信周波数スペクトルの使用に起因して、送信中に互いに信号干渉を生じ得る。このコンフリクトを管理するため、まず、現在装着されている無線テクノロジインタフェースのセットに対するコンフリクトマップ内のエントリに基づいて無線テクノロジ干渉源から生じるコンフリクトを識別する。次に共存ドライバが、競合する無線テクノロジ干渉源の識別されたセットを管理するために仮想共存ドライバを生成する。共存ドライバは、優先順位に基づくデータ送信等の共存方式に従って無線テクノロジインタフェースによるデータセットの送信を規制する。【選択図】  図３
2005012815.tif 000002
【特許請求の範囲】
【請求項１】
制御情報およびデータ情報の両方を送信することが可能な少なくとも２つの無線送信機をサポートするコンピューティングデバイス上で無線送信コンフリクトを管理する方法であって、
前記コンピューティングデバイスに現在装着されている第１の無線送信機および第２の無線送信機による同時送信から生じる潜在的信号コンフリクトを識別し、
前記第１の無線送信機経由で第１のデータセットを送信する準備をし、
前記第２の無線送信機経由で第２のデータセットを送信する準備をし、
前記第１および第２のデータセットに優先順位を割り当て、
非競合的に、前記第１および第２のデータセットに割り当てられた優先順位に従って、それぞれ前記第１の無線送信機および前記第２の無線送信機経由で前記第１のデータセットおよび第２のデータセットを送信する
ことを特徴とする方法。
【請求項２】
前記第１の無線送信機が第１の無線テクノロジを実施し、前記第２の無線送信機が第２の無線テクノロジを実施することを特徴とする請求項１に記載の方法。
【請求項３】
前記識別するステップが、
前記第１の無線テクノロジおよび前記第２の無線テクノロジに基づくテーブルにおけるルックアップ動作を実行する
ことを特徴とする請求項２に記載の方法。
【請求項４】
パケット損失率、
パケット誤り、
ノイズレベル、および
パケット再送率
を含むパフォーマンス尺度のセットのうちの、ネットワークインタフェースに対する１つまたは複数のパフォーマンス尺度に応答して、前のルックアップ動作を更新するために、前記識別するステップを実行する
ことをさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
アプリケーション優先順位に対するユーザ指定の設定に基づいて、前記割り当てるステップ中に、優先順位が生成されることを特徴とする請求項１に記載の方法。
【請求項６】
どのアプリケーションがデータを生成しているかに基づいて、前記割り当てるステップ中に、優先順位が生成されることを特徴とする請求項１に記載の方法。
【請求項７】
どのアプリケーションタイプがデータを生成しているかに基づいて、前記割り当てるステップ中に、優先順位が生成されることを特徴とする請求項１に記載の方法。
【請求項８】
データの宛先に基づいて、前記割り当てるステップ中に、優先順位が生成されることを特徴とする請求項１に記載の方法。
【請求項９】
データのタイプに基づいて、前記割り当てるステップ中に、優先順位が生成されることを特徴とする請求項１に記載の方法。
【請求項１０】
前記第１のデータセットに割り当てられる優先順位が、より高い優先順位のデータセットの送信により前記第１のデータセットの送信において受ける遅延に応答して上げられることを特徴とする請求項１に記載の方法。
【請求項１１】
異なる優先順位のデータセットの送信を管理するための優先順位付きキューのセットを維持管理する
ことをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１２】
同時送信中の信号コンフリクトを回避するように第１および第２のネットワークインタフェースの動作を適応させる
ことをさらに含むことを特徴とする請求項１に記載の方法。
【請求項１３】
前記送信するステップが、前記第１および第２の無線送信機経由での送信のためにトランスポートドライバから媒体アクセスドライバへデータセットを渡すことを制御する共存ドライバによって管理されることを特徴とする請求項１に記載の方法。
【請求項１４】
制御情報およびデータ情報の両方を送信することが可能な少なくとも２つの無線送信機をサポートするコンピューティングデバイス上で無線送信コンフリクトを管理することを容易にするコンピュータ実行可能命令を含むコンピュータ可読媒体であって、該コンピュータ実行可能命令が、
前記コンピューティングデバイスに現在装着されている第１の無線送信機および第２の無線送信機による同時送信から生じる潜在的信号コンフリクトを識別するステップと、
前記第１の無線送信機経由で第１のデータセットを送信する準備をするステップと、
前記第２の無線送信機経由で第２のデータセットを送信する準備をするステップと、
前記第１および第２のデータセットに優先順位を割り当てるステップと、
非競合的に、前記第１および第２のデータセットに割り当てられた優先順位に従って、それぞれ前記第１の無線送信機および前記第２の無線送信機経由で前記第１のデータセットおよび第２のデータセットを送信するステップと
を実行することを容易にすることを特徴とするコンピュータ可読媒体。
【請求項１５】
前記第１の無線送信機が第１の無線テクノロジを実施し、前記第２の無線送信機が第２の無線テクノロジを実施することを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１６】
前記識別するステップが、
前記第１の無線テクノロジおよび前記第２の無線テクノロジに基づくテーブルにおけるルックアップ動作を実行する
ことを特徴とする請求項１５に記載のコンピュータ可読媒体。
【請求項１７】
ネットワークインタフェースに対する１つまたは複数のパフォーマンス尺度に応答して、前のルックアップ動作を更新するために、前記識別するステップを実行することをトリガするコンピュータ実行可能命令をさらに含み、該１つまたは複数のパフォーマンス尺度が、
パケット損失率、
パケット誤り、
ノイズレベル、および
パケット再送率
を含むパフォーマンス尺度のセットのうちからとられることを特徴とする請求項１６に記載のコンピュータ可読媒体。
【請求項１８】
アプリケーション優先順位に対するユーザ指定の設定に基づいて、前記割り当てるステップ中に、優先順位が生成されることを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項１９】
どのアプリケーションがデータを生成しているかに基づいて、前記割り当てるステップ中に、優先順位が生成されることを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項２０】
どのアプリケーションタイプがデータを生成しているかに基づいて、前記割り当てるステップ中に、優先順位が生成されることを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項２１】
データの宛先に基づいて、前記割り当てるステップ中に、優先順位が生成されることを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項２２】
データのタイプに基づいて、前記割り当てるステップ中に、優先順位が生成されることを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項２３】
前記第１のデータセットに割り当てられる優先順位が、より高い優先順位のデータセットの送信により前記第１のデータセットの送信において受ける遅延に応答して上げられることを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項２４】
異なる優先順位のデータセットの送信を管理するための優先順位付きキューのセットを維持管理するコンピュータ実行可能命令
をさらに含むことを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項２５】
同時送信中の信号コンフリクトを回避するように第１および第２のネットワークインタフェースの動作を適応させるコンピュータ実行可能命令
をさらに含むことを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項２６】
前記送信するステップが、前記第１および第２の無線送信機経由での送信のためにトランスポートドライバから媒体アクセスドライバへデータセットを渡すことを制御する共存ドライバによって管理されることを特徴とする請求項１４に記載のコンピュータ可読媒体。
【請求項２７】
無線テクノロジ干渉源の間のコンフリクトを回避する方法であって、
潜在的に競合する無線テクノロジを識別するコンフリクトマップを維持管理し、
現在装着されている無線テクノロジインタフェースのセットに対する前記コンフリクトマップ内のエントリに基づいて、無線テクノロジ干渉源から生じるコンフリクトを識別し、
競合する無線テクノロジ干渉源の識別されたセットを管理するために仮想共存ドライバを作成し、ここで該共存ドライバは共存方式に従って無線テクノロジインタフェースによるデータセットの送信を規制する
ことを特徴とする方法。
【請求項２８】
チャネルのセットのそれぞれに対する輻輳／干渉メトリックを計算するステップと、
前記共存方式を実施するために、満足な無線チャネルを識別するしきい値を適用するステップと
をさらに含むことを特徴とする請求項２７に記載の方法。
【請求項２９】
前記適用するステップ中に、第１の無線テクノロジインタフェースが許容できないことを判定するステップと、
前記第１の無線テクノロジの使用を第２の無線テクノロジで置換するステップと
をさらに含むことを特徴とする請求項２８に記載の方法。
【請求項３０】
前記輻輳／干渉メトリックが、それぞれの競合するチャネルに対する動作周波数、信号強度、パケット誤り率、平均パケット再試行回数、およびノイズレベルの１つまたは複数に基づいて計算されることを特徴とする請求項２８に記載の方法。
【請求項３１】
前記共存方式は、複数のネットワークインタフェースが並列に非競合チャネル上で送信を行うことを可能にすることを特徴とする請求項２７に記載の方法。
【請求項３２】
前記共存方式が、競合するネットワークインタフェースへのトラフィックを多重化することを規定することを特徴とする請求項２７に記載の方法。
【請求項３３】
前記共存方式が、以下のパラメータ、すなわち、輻輳／干渉、トラフィック優先順位、スターベーション時間、およびドライバ遅延、の１つまたは複数に基づいてパケットの多重化された送信を規制することを特徴とする請求項３２に記載の方法。
【請求項３４】
前記共存ドライバにより作成される仮想共存ドライバが、相異なる優先順位の未処理データパケットを管理するキューイング機能を含むことを特徴とする請求項３２に記載の方法。
【請求項３５】
前記共存ドライバにより作成される前記仮想共存ドライバが、トラフィック制御アルゴリズムに従って未処理データパケットに割り当てられる優先順位を管理する優先順位付け機能を含むことを特徴とする請求項３４に記載の方法。
【請求項３６】
前記共存ドライバにより作成される仮想共存ドライバが、少なくとも１つの無線テクノロジインタフェースの動作のモード／周波数を規定することによって複数の無線テクノロジインタフェースによる同時送信を容易にする適応機能を含むことを特徴とする請求項２７に記載の方法。
【請求項３７】
前記仮想共存ドライバが、同じ無線テクノロジを実施する第１のネットワークインタフェースおよび第２のネットワークインタフェースの動作のモード／周波数を規定することによって該第１および第２のネットワークインタフェースによる同時送信を容易にすることを特徴とする請求項３６に記載の方法。
【請求項３８】
無線テクノロジ干渉源の間のコンフリクトを回避することを容易にするコンピュータ実行可能命令を含むコンピュータ可読媒体であって、該コンピュータ実行可能命令が、
潜在的に競合する無線テクノロジを識別するコンフリクトマップを維持管理するステップと、
現在装着されている無線テクノロジインタフェースのセットに対する前記コンフリクトマップ内のエントリに基づいて、無線テクノロジ干渉源から生じるコンフリクトを識別するステップと、
競合する無線テクノロジ干渉源の識別されたセットを管理し、共存方式に従って無線テクノロジインタフェースによるデータセットの送信を規制するために仮想共存ドライバを作成するステップと
を実行することを容易にすることを特徴とするコンピュータ可読媒体。
【請求項３９】
チャネルのセットのそれぞれに対する輻輳／干渉メトリックを計算するステップと、
前記共存方式を実施するために、満足な無線チャネルを識別するしきい値を適用するステップと
を実行するコンピュータ実行可能命令をさらに含むことを特徴とする請求項３８に記載のコンピュータ可読媒体。
【請求項４０】
前記適用するステップ中に、第１の無線テクノロジインタフェースが許容できないことを判定するステップと、
前記第１の無線テクノロジの使用を第２の無線テクノロジで置換するステップと
を実行するコンピュータ実行可能命令をさらに含むことを特徴とする請求項３９に記載のコンピュータ可読媒体。
【請求項４１】
前記輻輳／干渉メトリックが、それぞれの競合するチャネルに対する動作周波数、信号強度、パケット誤り率、平均パケット再試行回数、およびノイズレベルの１つまたは複数に基づいて計算されることを特徴とする請求項３９に記載のコンピュータ可読媒体。
【請求項４２】
前記共存方式は、複数のネットワークインタフェースが並列に非競合チャネル上で送信を行うことを可能にすることを特徴とする請求項３８に記載のコンピュータ可読媒体。
【請求項４３】
前記共存方式が、競合するネットワークインタフェースへのトラフィックを多重化することを規定することを特徴とする請求項３８に記載のコンピュータ可読媒体。
【請求項４４】
前記共存方式が、以下のパラメータ、すなわち、輻輳／干渉、トラフィック優先順位、スターベーション時間、およびドライバ遅延、の１つまたは複数に基づいてパケットの多重化された送信を規制することを特徴とする請求項４３に記載のコンピュータ可読媒体。
【請求項４５】
前記共存ドライバにより作成される仮想共存ドライバが、相異なる優先順位の未処理データパケットを管理するキューイング機能を含むことを特徴とする請求項４３に記載のコンピュータ可読媒体。
【請求項４６】
前記共存ドライバにより作成される前記仮想共存ドライバが、トラフィック制御アルゴリズムに従って未処理データパケットに割り当てられる優先順位を管理する優先順位付け機能を含むことを特徴とする請求項４５に記載のコンピュータ可読媒体。
【請求項４７】
前記共存ドライバにより作成される仮想共存ドライバが、少なくとも１つの無線テクノロジインタフェースの動作モードを規定することによって複数の無線テクノロジインタフェースによる同時送信を容易にする適応機能を含むことを特徴とする請求項３８に記載のコンピュータ可読媒体。
【請求項４８】
前記仮想共存ドライバが、同じ無線テクノロジを実施する第１のネットワークインタフェースおよび第２のネットワークインタフェースの動作モードを規定することによって該第１および第２のネットワークインタフェースによる同時送信を容易にすることを特徴とする請求項４７に記載のコンピュータ可読媒体。
【請求項４９】
無線テクノロジ干渉源の間のコンフリクトを検出し管理することを容易にする共存アーキテクチャを含むシステムであって、
潜在的に競合する無線テクノロジを識別するコンフリクトマップと、
共存ドライバと
を備え、該共存ドライバが、
現在装着されている無線テクノロジインタフェースのセットに対する前記コンフリクトマップ内のエントリに基づいて、無線テクノロジ干渉源から生じるコンフリクトを識別し、
競合する無線テクノロジ干渉源の識別されたセットを管理し、共存方式に従って無線テクノロジインタフェースによるデータセットの送信を規制する仮想共存ドライバを作成する
ことを特徴とするシステム。
【請求項５０】
前記システムが、
チャネルのセットのそれぞれに対する輻輳／干渉メトリックを計算する実行可能命令と、
前記共存方式を実施するために、満足な無線チャネルを識別するしきい値を適用する実行可能命令と
を含むことを特徴とする請求項４９に記載のシステム。
【請求項５１】
前記適用するステップ中に、第１の無線テクノロジインタフェースが許容できないことを判定する実行可能命令と、
前記第１の無線テクノロジの使用を第２の無線テクノロジで置換する実行可能命令と
をさらに含むことを特徴とする請求項５０に記載のシステム。
【請求項５２】
前記輻輳／干渉メトリックが、それぞれの競合するチャネルに対する動作周波数、信号強度、パケット誤り率、平均パケット再試行回数、およびノイズレベルの１つまたは複数に基づいて計算されることを特徴とする請求項５０に記載のシステム。
【請求項５３】
前記共存方式は、複数のネットワークインタフェースが並列に非競合チャネル上で送信を行うことを可能にすることを特徴とする請求項４９に記載のシステム。
【請求項５４】
前記共存方式が、競合するネットワークインタフェースへのトラフィックを多重化することを規定することを特徴とする請求項４９に記載のシステム。
【請求項５５】
前記共存方式が、以下のパラメータ、すなわち、輻輳／干渉、トラフィック優先順位、スターベーション時間、およびドライバ遅延、の１つまたは複数に基づいてパケットの多重化された送信を規制することを特徴とする請求項５４に記載のシステム。
【請求項５６】
前記共存ドライバにより作成される仮想共存ドライバが、相異なる優先順位の未処理データパケットを管理するキューイング機能を含むことを特徴とする請求項５４に記載のシステム。
【請求項５７】
前記共存ドライバにより作成される前記仮想共存ドライバが、トラフィック制御アルゴリズムに従って未処理データパケットに割り当てられる優先順位を管理する優先順位付け機能を含むことを特徴とする請求項５６に記載のシステム。
【請求項５８】
前記共存ドライバにより作成される仮想共存ドライバが、少なくとも１つの無線テクノロジインタフェースの動作モードを規定することによって複数の無線テクノロジインタフェースによる同時送信を容易にする適応機能を含むことを特徴とする請求項４９に記載のシステム。
【請求項５９】
前記仮想共存ドライバが、同じ無線テクノロジを実施する第１のネットワークインタフェースおよび第２のネットワークインタフェースの動作モードを規定することによって該第１および第２のネットワークインタフェースによる同時送信を容易にすることを特徴とする請求項５８に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、包括的にはコンピュータシステムの分野に関する。より詳細には、本発明は、コンピューティングデバイス上で無線ネットワーク通信を選択、設定、および／または制御する方法およびシステムに関する。さらに詳細には、本発明は、無線信号送信干渉を解決および／または回避するためのコンピューティングデバイス内での決定に関する。
【背景技術】
【０００２】
現在、さまざまな無線ネットワーキングテクノロジがネットワーク接続をサポートしている。無線ワイドエリアネットワーク（ＷＷＡＮ）テクノロジ（例えば、ＧＰＲＳ、ＷＣＤＭＡ、８０２．１６等のプロトコルを具現化したもの）によれば、コンピューティングデバイスが、セルラデータ伝送ネットワーク経由でリモートコンピュータネットワークに接続することができる。無線ローカルエリアネットワーク（ＷＬＡＮ）テクノロジ（例えば、ＩＥＥＥ８０２．１１ａ／ｂ／ｇ、ＨｏｍｅＲＦ、Ｈｉｐｅｒｌａｎ／２等のプロトコルを組み込んだもの）によれば、ユーザが、無線アクセスポイント／トランシーバ経由でローカルエリアネットワークリソースにアクセスすることができる。無線パーソナルエリアネットワーク（ＷＰＡＮ）テクノロジ（例えば、ウルトラワイドバンド（ＵＷＢ）、およびブルートゥース（ＢＴ））は、現在のコンピュータ内に組み込まれるさらにもう１つの無線テクノロジとなっている。他に、ＺｉｇｂｅｅやＲＦＩＤのようなデータ制御の領域に入るテクノロジもある。これらのテクノロジに関連する物理レイヤおよび媒体アクセスレイヤのコンポーネントは、多くの場合、重複する周波数範囲内で非協調的に動作し、そのために信号干渉が生じる。
【０００３】
無線ネットワークトランシーバのコンフィギュレーションおよび近接性に応じて、コンピューティングデバイスは、上記の無線テクノロジの１つまたは複数に関連する無線周波数電波を送受信する。実際には、コンピューティングデバイスは、その位置に応じて、コンピューティングデバイスに装着されている異なるネットワークインタフェースカード（ＮＩＣ）経由で同時無線ネットワークコネクションを維持することができる。無線通信テクノロジおよびそれらに関連する無線信号送信の同時の利用可能性／存在は、例えば、無線ローカルエリアネットワーク、無線ワイドエリアネットワーク、およびパーソナルエリアネットワークの接続をサポートするオフィス環境内で起こる。ネットワーキングテクノロジの選択肢が同時に複数存在することは、コンピューティングデバイスがネットワークおよび／またはリソース（スピーカ、キーボード、マウス等のコンピュータ周辺機器を含む）に接続する方法に関する柔軟性を高める。
【０００４】
しかし、多種多様なＲＦ源があるために、無線通信機能を有するコンピューティングデバイスが信号干渉を受け、および／または生成する可能性も高まり、サービス品質の低下や不快なユーザエクスペリエンスにつながる。多くのタイプの干渉があり、それぞれ異なる特性を有する。例えば、重複する周波数スペクトルを利用する２つの無線トランシーバが信号干渉を生じると、パケット損失、コネクション切断および不均一なスループット（ストリーミングコネクションの場合）を引き起こす。場合によっては、第１のトランシーバは十分に高い信号パワーで動作しているため、その動作は他の競合する信号によって影響されないのに、第２の、より低いパワーの無線トランシーバの動作は、第１のトランシーバからの、より高いパワーの干渉信号によって飽和してしまう。
【０００５】
干渉はさまざまな源から生じ得る。第１のタイプの干渉は、複数の無線送受信機を同時に動作させているコンピューティングデバイス自体から生じる。例えば、あるコンピューティングデバイスは、異なる無線テクノロジを組み込んだ、重複する無線信号周波数帯域を使用する複数の無線インタフェースをサポートする。その結果、それらの無線インタフェースは、同時に使用される時にコンフリクトを生じる。このような重複する無線テクノロジの一例として、ブルートゥースＰＡＮ機器と同時にＩＥＥＥ８０２．１１ｂまたは８０２．１１ｇを使用する場合がある。というのは、８０２．１１ｂ／ｇトランシーバは、ブルートゥース無線コネクションによって利用される可能性のある周波数に重複する無線周波数を利用するからである。
【０００６】
単一のコンピューティングデバイス上で同時にアクティブな無線インタフェース／トランシーバが存在するために信号干渉が生じる１つの例示的状況として、ＤＶＤプレーヤが８０２．１１ｂ  ＷＬＡＮコネクションを通じてパーソナルコンピュータにムービーをストリーミングする場合がある。パーソナルコンピュータユーザは、同時に無線（ブルートゥース）マウスを使用して、（ＧＰＲＳによって接続されたブルートゥース対応電話機を通じてアクセスされる）インターネットからページをダウンロードしている別のウィンドウでムービーの情報をチェックしている。マウスとパーソナルコンピュータの間およびパーソナルコンピュータとブルートゥース対応電話機の間のブルートゥース信号は、ＤＶＤからパーソナルコンピュータへのオーディオビジュアルデータストリーミング信号と競合する。信号干渉の結果、ムービーの再生がぎくしゃくする。マウスの動きもぎくしゃくする可能性が高い。
【０００７】
もう１つの例示的な干渉状況として、ビデオカメラがウルトラワイドバンド（ＵＷＢ）によってパーソナルコンピュータへオーディオビジュアルストリームを送信する場合がある。同時に、ユーザが、ケーブルモデム／ＤＳＬ回線経由でユーザをインターネットに接続する８０２．１１ａ無線コネクションを通じたネットワークのための無線トランシーバ（アクセスポイント）に接続される。この潜在的干渉状況では、８０２．１１ａ信号がＵＷＢデータ送信と干渉する。その結果、ストリーミングされる録画セッションがぎくしゃくして見える。
【０００８】
第２のタイプの干渉源は、１つまたは複数の無線送受信機に関して、信号干渉を受けているコンピューティングデバイスとは独立に存在／動作する他のコンピューティングデバイスまたは干渉源との間の信号伝送から生じる。すなわち、当該コンピューティングデバイスの制御が及ばない外部干渉源である。他のコンピュータ、アクセスポイント等に加えて、このような干渉は、コードレス電話機、電子レンジ等のさまざまな外部干渉源からも生じ得る。
【０００９】
いくつかの信号衝突回避方式が、単一の無線プロトコル／テクノロジ内で動作する。例えば、無線ＷＡＮの領域では、トランシーバ／ドライバが、同じテクノロジを利用する他の送信機との送信衝突を回避するＣＳＭＡ／ＣＡ、ＴＤＭＡ、およびＦＤＭＡプロトコルを利用する。このような衝突回避方式は、共用周波数範囲上での異種の無線送信にはあまり適していない。その理由は、異なる無線送信は異なる衝突回避プロトコルを使用している可能性があるからである。このことが特に当てはまるのは、ブルートゥース／ＵＷＢおよび８０２．１１のようなＷＰＡＮ／ＷＬＡＮ無線トランシーバの場合であり、これらは無認可／無規制の重複する周波数範囲内で送信時間に対して同時に競合する。
【００１０】
コンピューティングデバイスが受ける信号干渉に対処するための１つの方法は、影響されるコネクションの劣化／障害を許容することである。コンピューティングデバイスは、特定のコネクションに障害があることを認識するようになる。コネクションに障害がある場合、ユーザが再接続を試みるように促されるか、またはユーザが代替ネットワーク通信媒体（例えば、ネットワークへの有線コネクション）を選択することが可能である。
【発明の開示】
【発明が解決しようとする課題】
【００１１】
既知のＭＡＣ（Media  Access  Control）ドライバは、２つの無線テクノロジを処理するコンフリクト回避方式を実装している。また、干渉を回避するための協調的方式および／または信号キャンセレーション方式を実装しているベンダがある。例えば、８０２．１１ｂおよびブルートゥースの両方のトランシーバを含む単一システムにおいて、システムは、モード切り替えによりＭＡＣレベルで送信を協調させる。モード切り替え動作は、ビーコン受信（８０２．１１ｂの場合）、ページング（ブルートゥースの場合）、またはパケットをインタリーブすることによる下位レイヤの手続きに基づいている。ベンダのＮＩＣがブルートゥース（ＢＴ）および８０２．１１の両方をサポートすることができる場合には、ＮＩＣが、２つの競合／干渉するテクノロジのいずれか一方がいつ使用されているかを判断することが可能であり、一方の送信が終了するまで他方の送信を停止する。２つのＮＩＣがあり、一方がブルートゥースで他方が８０２．１１である場合には、一方のＮＩＣが、他方がいつ送信中であるかを判断して自己の送信を停止することができるように、２つのＮＩＣは固定結線可能かもしれない。これは、２つのＮＩＣ間の配線の本数に応じて、２線式または４線式手法である。別法として、一方のドライバから別のドライバへ、送信に関する通知を提供することができるかもしれない。例えば、ブルートゥースドライバまたは８０２．１１ドライバが、送信通知を提供するために他方のドライバによって使用される呼出し可能インタフェースを提供するかもしれない。モード切替は、８０２．１１ｂとブルートゥースのトラフィック間を調停する。その場合、切替により、送信は、優先順位が高いトラフィックが優先される。ＨＩＤデバイス（キーボードおよびマウス）からのトラフィックに最高の優先順位を与えるのが普通である。さもなければ、８０２．１１ｂが優先トラフィックを有するであろう。
【００１２】
さらに、ＳＳＩＤ（無線ネットワークの識別であって、インターネット等の特定のリソースへの接続の決定を容易にする）およびサポートされたネットワーク接続速度の最大値に基づいてＷｉ−Ｆｉテクノロジの自動選択を行う無線ネットワークインタフェース選択基準が知られている。この比較的単純な構成の下では、２つの異なる無線テクノロジが同じネットワーク／リソースへの接続を提供する場合、高速な無線テクノロジのほうが選択される。
【課題を解決するための手段】
【００１３】
本発明は、１つまたは複数の無線ネットワークインタフェースが受ける信号干渉を管理する方法およびフレームワークを含む。アプリケーションと物理ネットワークインタフェースドライバの間に位置するネットワーク通信ハンドラ（本明細書では共存ドライバと称する）が、１つまたは複数の信号干渉源の存在下で無線ネットワークインタフェースのパフォーマンスを改善し得る共存方式を提供する。
【００１４】
本発明は、１つには、信号コンフリクトにつながり得るデータ情報を同時送信することが可能な少なくとも２つの無線送信機をサポートするコンピューティングデバイス上で無線送信コンフリクトを管理する方法を含む。より詳細には、本方法は、コンピューティングデバイス上に現在装着されている第１の無線送信機および第２の無線送信機による同時送信から生じる潜在的信号コンフリクトを識別するステップを含む。
【００１５】
コンピューティングデバイス上で実行中の１つまたは複数のアプリケーションの要求により、コンピューティングデバイスは、第１の無線送信機経由で第１のデータセットを送信する準備をするとともに、第２の無線送信機経由で第２のデータセットを送信する準備をする。また、コンピューティングデバイスは、第１および第２のデータセットに優先順位を割り当てる。その後、コンピューティングデバイスは、非競合的に、第１および第２のデータセットに割り当てられた優先順位に従って、それぞれ第１の無線送信機および第２の無線送信機経由で第１のデータセットおよび第２のデータセットを送信する。以下でさらに説明するように、非競合的に第１および第２のデータセットを送信することは、本発明の詳しい実施形態にしたがってさまざまな方法で行われる。
【００１６】
本発明のもう１つの側面によれば、無線テクノロジ干渉源の間のコンフリクトを回避する方法が開示される。本方法は、潜在的に競合する無線テクノロジを識別するコンフリクトマップを維持管理することを含む。このようなテクノロジは、それらが重複する送信周波数スペクトルを使用していることに起因して、互いに信号干渉を生じる可能性がある。このようなコンフリクトを管理するため、まず、現在装着されている無線テクノロジインタフェースのセットについてのコンフリクトマップ内のエントリに基づいて、無線テクノロジ干渉源から生じるコンフリクトを識別する。その後、競合する無線テクノロジ干渉源の識別されたセットを管理するために仮想共存ドライバが生成される。ここで、共存ドライバは、共存方式に従って無線テクノロジインタフェースによるデータセットの送信を規制する。
【００１７】
添付の特許請求の範囲は本発明の特徴を詳細に記載しているが、本発明は、その目的および利点と合わせて、添付図面とともに以下の詳細な説明から最も良く理解されるであろう。
【発明を実施するための最良の形態】
【００１８】
本明細書に開示される例示的な無線ネットワークインタフェースの設定／制御アーキテクチャは、複数の無線テクノロジにまたがる非常に柔軟性／適応性の高い無線ネットワークインタフェース制御を容易にする。例示的実施形態における無線ネットワークインタフェースの設定／制御プラットフォームは、ネットワーク通信レイヤで実行される共存ドライバを含む。これは、特定の媒体タイプ（例えば８０２．１１  ＷＬＡＮ）に対するデータセット（例えばパケット）のフローを包括的に制御する個別の媒体アクセスドライバの上にある。共存ドライバは、１つまたは複数の仮想共存ドライバ（ＶＣＤ）をインスタンス化し、各ＶＣＤは、干渉する可能性のある無線媒体テクノロジや、さらには同一無線媒体テクノロジを組み込んだ複数のネットワークインタフェースの特定の組合せを処理する。ＶＣＤは、自己が処理している組合せに属する各無線テクノロジに関連するネットワークインタフェースデバイス（例えばネットワークインタフェースカード）からステータス情報およびパフォーマンスメトリックを蓄積する。
【００１９】
最初に、共存ドライバは、１つまたは複数の無線ネットワーキングテクノロジを利用するコンピューティングデバイスにとって現在必要とされている仮想共存ドライバのセットを判定する。共存ドライバは、現在装着されている無線ネットワークインタフェースの動作に現在影響している干渉源／テクノロジのセットを判定する。共存ドライバは、サポートされた無線テクノロジのそれぞれについて、競合する可能性のある無線テクノロジを指定するコンフリクトマップを参照する。コンフリクトマップ内の競合する無線テクノロジがコンピューティングデバイスに現在装着されている場合、それがコンフリクトセットに追加される。さらに、マシンは８０２．１１ｂカードのみを有するが、ブルートゥース対応電話機がマシンの近くにあって別のマシンまたはＡＰ（Access  Point）と現在通信中である場合、コンフリクト回避を実行するための特定のＶＣＤの選択および設定においてブルートゥース干渉源が考慮される。８０２．１１ｂカードを含むマシンは、そのコンフリクト回避ストラテジに制限される。というのは、そのマシンの制御は８０２．１１ｂデバイスのみに及び、ＢＴデバイスには及ばないからである。しかし、８０２．１１ｂ／ＢＴ  ＶＣＤのコンフリクト回避ロジックの少なくとも一部（例えば、８０２．１１周波数バンドを変更すること）は使用される可能性がある。この初期コンフリクト検出ステップの完了後、共存ドライバは、競合するテクノロジ／干渉源のそれぞれの識別されたセットに対応するＶＣＤを選択し起動する。
【００２０】
共存ドライバによって確立されるそれぞれの仮想共存ドライバは、競合する無線テクノロジの個々の媒体アクセス制御（ＭＡＣ）ドライバから蓄積されたステータス情報およびパフォーマンスメトリックを利用して、コンピューティングデバイスに装着されている無線ネットワークインタフェースを通じて通信を行うために媒体アクセス制御ドライバへのデータセット（例えばパケット）のフローを制御することに関連するタスクのセットを実行する。このようなタスクとしては、競合する（したがって択一的にアクティベートされる）無線ネットワークインタフェースに関連するデータセットの送信に優先順位を付けること；未処理の要求に関連する優先順位付きキューを維持管理し、キューイングされたデータセットを優先順位付け方式に従って媒体アクセス制御ドライバに渡すこと；無線ネットワークインタフェースの動作を適応させるために、複数の媒体アクセスドライバによって供給される情報に基づいて決定を行うこと；ならびに無線インタフェースおよびその他の無線通信信号干渉源（干渉は、装着されている他の無線ネットワークインタフェースカードから生じるか、外部干渉源から生じるかを問わない）の非干渉動作を容易にするように無線ネットワークインタフェースカードを制御するためのコマンド／制御命令を媒体アクセス制御ドライバへ発行することがある。例示的実施形態では、タイムクリティカルな情報が無線ネットワークインタフェースに遅れて到着することのないように、制御パケットが共存ドライバを（処理なしで）通過する。
【００２１】
以上、要約すれば、共存ドライバは、同一の、または異なる無線テクノロジ間のコンフリクト／干渉を処理するために媒体固有のアクセス制御ドライバのセットの上で共存プロトコルを実行する、上位レベルのネットワークデバイスドライバである。共存ドライバがコンフリクト／干渉を処理する方法には多くの可能性があり、例えば、信号周波数重複や信号浸出(signal  bleed)（たとえ周波数が重複していなくても、それらが近接しているために、一方による送信が他方による送受信に影響し得る場合）を除去するために、特定の無線トランシーバにおける特定の周波数範囲（チャネル）の使用を無効化／回避することが挙げられる。信号周波数重複を防ぐことができない場合、共存ドライバは、仮想共存ドライバ内に現れる複数の無線テクノロジによる重複周波数の同時使用を回避するように、競合する無線テクノロジによるデータセット送信を制御（多重化）する。媒体固有の無線媒体アクセス制御ドライバの上に共存ドライバが位置することにより、共存ドライバは、蓄積された無線ネットワークメトリックに基づいてさまざまなコンフリクト／干渉低減方式を実施することができる。例えば、異なるデータセット（例えばパケット）が適宜異なるインタフェースを通じて送信されるように処理することができる。このようなことは、個別の媒体アクセス制御ドライバによってでは実現が不可能または困難であろう。というのは、それらのドライバには、相異なる媒体アクセス制御ドライバ全体にわたるグローバルな認識が欠けているからであり、またさらに、２つのネットワークインタフェースが異なるベンダから入手されたか、または同一コンピューティングデバイス上の２つの８０２．１１ｂトランシーバのように同一無線テクノロジを用いているため、それらのネットワークインタフェース間の調整が存在しないからである。
【００２２】
図１は、多種多様な無線通信テクノロジ経由でアクセスされる複数のネットワークによってサポートされる環境で使用されるコンピューティングデバイス（例えば、ノート型コンピュータ、アクセスポイントのような機器等）のための好適なオペレーティング環境１００の一例を図示している。オペレーティング環境１００は、好適なオペレーティング環境の単なる一例であり、本発明の使用または機能の範囲に関していかなる限定を示唆することも意図していない。本発明とともに使用するのに好適であり得る他の周知のコンピューティングシステム、環境、および／またはコンフィギュレーションとしては、パーソナルコンピュータ、サーバコンピュータ、ラップトップ／ポータブルコンピューティングデバイス、マルチプロセッサシステム、マイクロプロセッサ方式のシステム、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、サーバ機器、アクセスポイント、ベースステーション、上記のシステムまたはデバイスのいずれかを含む分散コンピューティング環境等があるが、これらに限定されない。
【００２３】
本発明は、コンピュータにより実行されるプログラムモジュール等のコンピュータ実行可能命令との一般的関連で記述され得る。一般に、プログラムモジュールは、特定のタスクを実行し、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造等を含む。本発明は、通信ネットワークを通じてリンクされるリモート処理デバイスによりタスクが実行される分散コンピューティング環境で動作するネットワークノード内に組み込まれることが可能である。分散コンピューティング環境では、プログラムモジュールは一般に、メモリ記憶デバイスを含むローカルおよびリモートの両方のコンピュータ記憶媒体に配置される。
【００２４】
さらに図１を参照すると、本発明を実施する例示的システムは、コンピュータ１１０の形態の汎用コンピューティングデバイスを含む。コンピュータ１１０のコンポーネントとしては、処理ユニット１２０、システムメモリ１３０、およびシステムメモリを含む種々のシステムコンポーネントを処理ユニット１２０に結合するシステムバス１２１があり得るが、これらに限定されない。システムバス１２１は、さまざまなバスアーキテクチャのいずれかを使用するメモリバスまたはメモリコントローラ、周辺バス、およびローカルバスを含む、いくつかのタイプのバス構造のいずれでもよい。例として、限定ではないが、このようなアーキテクチャとしては、Industry  Standard  Architecture（ＩＳＡ）バス、Micro  Channel  Architecture（ＭＣＡ）バス、Enhanced  ISA（ＥＩＳＡ）バス、Video  Electronics  Standards  Association（ＶＥＳＡ）ローカルバス、およびMezzanineバスとしても知られているPeripheral  Component  Interconnect（ＰＣＩ）バスがある。
【００２５】
コンピュータ１１０は通常、さまざまなコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によりアクセス可能ないかなる利用可能な媒体であってもよく、揮発性および不揮発性媒体、リムーバブルおよび非リムーバブル媒体の両方が含まれる。例として、限定ではないが、コンピュータ可読媒体にはコンピュータ記憶媒体および通信媒体が含まれ得る。コンピュータ記憶媒体としては、コンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータのような情報の格納のためのいかなる方法またはテクノロジで実装された揮発性および不揮発性、リムーバブルおよび非リムーバブル媒体の両方が含まれる。コンピュータ記憶媒体には、以下のものに限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ等のメモリテクノロジ、ＣＤ−ＲＯＭ、ディジタル多用途ディスク（ＤＶＤ）等の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ等の磁気記憶デバイス、または所望の情報を格納するために使用可能でありコンピュータ１１０によりアクセス可能ないかなる他の媒体も含まれる。通信媒体は通常、キャリア波等の変調データ信号または他のトランスポートメカニズムでコンピュータ可読命令、データ構造、プログラムモジュールまたは他のデータを実現し、いかなる情報配信媒体も含む。「変調データ信号」という用語は、信号中に情報を符号化するように１つまたは複数の信号の特性が設定または変更された信号を意味する。例として、限定ではないが、通信媒体としては、有線ネットワークまたは直接有線コネクションのような有線媒体、および音響、ＦＲ、赤外線等の無線媒体や無線ＰＡＮ、無線ＬＡＮおよび無線ＷＡＮ媒体等の他の無線媒体がある。上記のもののいずれの組合せもまた、コンピュータ可読媒体の範囲内に含まれるべきである。
【００２６】
システムメモリ１３０は、読み出し専用メモリ（ＲＯＭ）１３１およびランダムアクセスメモリ（ＲＡＭ）１３２のような揮発性および／または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動中等にコンピュータ１１０内の要素間で情報を転送するのに役立つ基本ルーチンを含む基本入出力システム１３３（ＢＩＯＳ）が通常ＲＯＭ１３１に格納される。ＲＡＭ１３２は通常、処理ユニット１２０から直接アクセス可能な、および／または処理ユニット１２０が現在作用しているデータおよび／またはプログラムモジュールを含む。例として、限定ではないが、図１は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を示している。
【００２７】
コンピュータ１１０はまた、他のリムーバブル／非リムーバブル、揮発性／不揮発性のコンピュータ記憶媒体を含んでもよい。単なる例として、図１は、非リムーバブル不揮発性磁気媒体の読み書きを行うハードディスクドライブ１４１、リムーバブル不揮発性磁気ディスク１５２の読み書きを行う磁気ディスクドライブ１５１、およびＣＤ−ＲＯＭ等の光媒体のようなリムーバブル不揮発性光ディスク１５６の読み書きを行う光ディスクドライブ１５５を示している。例示的オペレーティング環境で使用可能な他のリムーバブル／非リムーバブル、揮発性／不揮発性のコンピュータ記憶媒体としては、以下のものに限定されないが、磁気テープカセット、フラッシュメモリカード、ディジタル多用途ディスク、ディジタルビデオテープ、固体ＲＡＭ、固体ＲＯＭ等がある。ハードディスクドライブ１４１は通常、インタフェース１４０のような非リムーバブルメモリインタフェースを通じてシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は通常、インタフェース１５０のようなリムーバブルメモリインタフェースによりシステムバス１２１に接続される。
【００２８】
上記で説明し図１に示したドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ１１０のためのコンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータの格納を行う。例えば図１において、ハードディスクドライブ１４１は、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を格納するように示されている。なお、これらのコンポーネントは、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じであることも異なることもいずれも可能であることに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７は、少なくともそれらが別のコピーであることを示すためにここでは異なる番号が与えられている。ユーザは、キーボード１６２、および一般にマウス、トラックボールまたはタッチパッドと呼ばれるポインティングデバイス１６１のような入力デバイスを通じてコンピュータ１１０にコマンドおよび情報を入力することが可能である。他の入力デバイス（図示せず）としては、マイクロフォン、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナ等があり得る。これらおよび他の入力デバイスは、システムバスに結合したユーザ入力インタフェース１６０を通じて処理ユニット１２０に接続されることが多いが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス（ＵＳＢ）のような他のインタフェースおよびバス構造により接続されてもよい。モニタ１９１または他のタイプの表示デバイスもまた、ビデオインタフェース１９０のようなインタフェース経由でシステムバス１２１に接続される。モニタに加えて、コンピュータはスピーカ１９７およびプリンタ１９６のような他の周辺出力デバイスを含んでもよく、これらは出力周辺インタフェース１９５を通じて接続され得る。
【００２９】
コンピュータ１１０は、リモートコンピュータ１８０のような１つまたは複数のリモートコンピュータへの論理コネクションを用いたネットワーク環境で動作し得る。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたは他の一般的なネットワークノードであってよく、通常、コンピュータ１１０に関して上記で説明した要素の多くまたはすべてを含むが、図１にはメモリ記憶デバイス１８１のみが示されている。図１に示す論理コネクションは、ローカルエリアネットワーク（ＬＡＮ）１７１およびワイドエリアネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含んでもよい。このようなネットワーキング環境は、オフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットで一般的である。
【００３０】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ１１０は１つまたは複数の有線／無線ネットワークインタフェース１７０を通じてＬＡＮ１７１に接続される。さらに、１つまたは複数の有線／無線ネットワークインタフェース１７０のセットは、インターネットのようなＷＡＮ１７３を通じての通信をサポートする。図１には示していないが、コンピュータ１１０は、ユーザ入力インタフェース１６０等の適当なメカニズムを通じてシステムバス１２１に接続された内蔵または外付けのモデムを含むことが可能である。ネットワーク環境では、コンピュータ１１０に関して図示したプログラムモジュールまたはその部分は、リモートメモリ記憶デバイスに格納されてもよい。例として、限定ではないが、図１は、リモートアプリケーションプログラム１８５がメモリデバイス１８１上に存在するように示している。認識されるように、図示したネットワークコネクションは例示であり、コンピュータ間に通信リンクを確立する他の手段を使用してもよい。
【００３１】
本発明は、さまざまな動的ネットワーキング環境で使用されさまざまなタスクを実行する移動体および非移動体の両方のコンピューティングデバイス／マシンに組み込まれることが可能である。このような環境では、あるチャネル／周波数の利用可能性は、アクティブな無線媒体のセットが変化するとともに変化し得る。これがひいては、特定の無線媒体上のサービス品質に悪影響を及ぼすことがある。本発明は、無線ネットワークインタフェースへのトラフィックを設定および／または規制することを容易にすることによって、重複する周波数範囲を使用する無線ネットワークインタフェース間の干渉を低減する。また、本発明の一実施形態は、コンピューティングデバイスの制御下にない外部源（例えば、コードレス電話システム、電子レンジ、他のコンピューティングデバイスへ電波で送信中のブルートゥースデバイス等）から生じる干渉にも対処する。
【００３２】
図２を参照すると、本発明が活用され得る無線コンピューティング環境の簡単な例が示されている。例示的実施形態では、ノート型コンピュータ２００が、複数のネットワーク媒体を通じての通信を容易にする複数のネットワークインタフェースカード（具体的には図示せず）を含む。図２に示した特定実施例では、ノート型コンピュータ２００は、ＧＰＲＳのようなＷＷＡＮ無線テクノロジを使用するセルラ伝送タワー２０２および８０２．１１ｂのようなＷＬＡＮ無線テクノロジを使用する無線トランシーバ２０４と通信可能である。
【００３３】
無線トランシーバ２０４（無線アクセスポイント、すなわちＷＡＰとも呼ばれる）は、ＬＡＮ２０６上のさまざまなリソースへのアクセスを提供する。例えば、無線トランシーバ２０４は、ファイルサーバ２０８上に維持管理されるディレクトリにノート型コンピュータ２００がアクセスすることを可能にする。また、ＬＡＮ２０６は、ＬＡＮ２０６に接続されているコンピューティングデバイス（コンピュータ２１１のセットおよびノート型コンピュータ２００のユーザを含む）のユーザがインターネット２１２にアクセスすることを可能にするゲートウェイ／ファイアウォール／モデム２１０も含む。ゲートウェイ／ファイアウォール／モデム２１０は、インターネット２１２のユーザがＬＡＮ２０６上のリソースにアクセスすることも可能にする。
【００３４】
ノート型コンピュータ２００のユーザは、複数のネットワーク媒体がサポートされている結果として、複数の通信媒体経由でインターネット２１２および（インターネット２１２を通じて）ファイルサーバ２０８にアクセスすることができる。例えば、ノート型コンピュータ２００は、ＷＷＡＮネットワークインタフェースを利用して、セルラ伝送タワー２０２を含むセルラネットワーク経由でインターネット２１２にアクセスすることができる。あるいはまた、ノート型コンピュータ２００は、無線トランシーバ２０４経由でＬＡＮ２０６上のリソースにアクセスする。図示されている例におけるＬＡＮ２０６は、ノート型コンピュータ２００の正しく認証されたユーザが、２つの図示されている無線ネットワーク媒体のいずれかを経由してインターネット２１２およびＬＡＮ２０６のリソースにアクセスすることを可能にするネットワークアクセスサーバおよびプロキシサーバを含むと仮定している。このような二重の機能は、ノート型コンピュータ２００のユーザの現在の状態、需要、基本設定等に基づいて特定の無線ネットワーク媒体を選択することを可能にする。
【００３５】
図２に示されている例示的なネットワーク実施形態では、ノート型コンピュータ２００の近くに位置するパーソナルコンピュータ２１４が複数の無線ネットワークテクノロジインタフェースを備えている。パーソナルコンピュータ２１４は、（８０２．１１ｂ  ＷＬＡＮプロトコルの下で動作する）無線トランシーバ２０４経由でＬＡＮ２０６と通信する。さらに、本発明の一実施形態に特に関連することであるが、ＰＣ２１４は、例えばマウス、キーボードおよび電話機等のさまざまな無線機器をサポートするブルートゥース無線トランシーバ／インタフェースを含む。ブルートゥースおよび８０２．１１ｂ無線ネットワーク通信プロトコルの規定されている周波数スペクトルは重複するため、ブルートゥース機器と８０２．１１ｂコネクションの同時動作は、パーソナルコンピュータ２１４と無線トランシーバ２０４の間の８０２．１１ｂコネクション上のサービス品質に影響を及ぼし、あるいはそれを劣化させる可能性がある。同様に、８０２．１１ｂコネクションがブルートゥースコネクション上のサービス品質に影響を及ぼし、あるいはそれを劣化させる可能性がある。さらに、ノート型コンピュータ２００が、他のブルートゥース機器（それがノート型コンピュータと通信しているかどうかを問わない）に十分に近い場合、ノート型コンピュータ２００と無線トランシーバ２０４の間の８０２．１１ｂ  ＷＬＡＮコネクションは、そのブルートゥース信号送信に関連する干渉によっても悪影響を受ける可能性があり、その逆も同様である。この状況は、既に説明したような他の状況とともに、共存ドライバによって処理される。共存ドライバは、潜在的に複数の無線テクノロジに関連する情報を処理することによって、同一または異なる無線ネットワークテクノロジ（例えばブルートゥースおよび８０２．１１ｂ無線通信）に関連する重複周波数スペクトルから生じる信号干渉に対処しようとする共存方式を確立／実行する。特別の場合として、重複する周波数、または互いに近い周波数（そのために信号干渉を生じる）を使用する２つの８０２．１１ｂ、ｇ、またはａの電波のように、同一の無線ネットワークテクノロジを利用するトランシーバ間の干渉の場合がある。
【００３６】
図３を参照すると、ノート型コンピュータ２００およびパーソナルコンピュータ２１４のような、無線ネットワークインタフェースを含むコンピューティングデバイス内に組み込まれた共存ドライバ３００が、潜在的に複数のネットワークインタフェースにわたり、潜在的に複数のサポートされたネットワーク媒体テクノロジに関係する動作／ステータス情報に、適応およびパケットフロー制御方式を適用する。その後、共存ドライバ３００は、無線ネットワークインタフェースを設定し、必要であれば、内部または外部源からの干渉を受けている無線ネットワークインタフェースへのデータパケットフローを順序付け／制御する。本発明の例示的実施形態では、共存ドライバ３００は、ＭＩＣＲＯＳＯＦＴ（登録商標）  ＷＩＮＤＯＷＳ（登録商標）オペレーティングシステムのＮＤＩＳ(network  driver  interface  specification)レイヤ３１０内で動作する。したがって、例示的な共存ドライバ３００は、インタフェースの個別のセットを必要とせずに、ＮＤＩＳレイヤ３１０内の中間的なサブレイヤとして動作し、トランスポートドライバ３１２からの送出データは、ＮＤＩＳレイヤ３１０を通ってから、プロトコル固有の無線インタフェースドライバに送られる。
【００３７】
さらに図３を参照すると、本発明の一実施形態では、共存ドライバ３００は、実際の、または外部の干渉している無線テクノロジの特定の組合せを処理するために、ＶＣＤ３２０やＶＣＤ３２２のような仮想共存ドライバ（ＶＣＤ）のセットを作成／インストールして収容する。各ＶＣＤは、そのＶＣＤによってサポートされる無線ネットワークインタフェースのセットの１つへ向かうパケットを処理する。例えば、ＶＣＤ３２０は、８０２．１１ｂネットワークインタフェースドライバ３３０およびブルートゥース・ネットワークインタフェースドライバ３３２宛のパケットを処理する。ＶＣＤ３２２は、８０２．１１ａネットワークインタフェースドライバ３３４およびウルトラワイドバンド・ネットワークインタフェースドライバ３３６宛のパケットを処理する。ＶＣＤを個々のネットワークインタフェースドライバの上位に配置することによって、ＶＣＤは、干渉する可能性のあるネットワークテクノロジ（例えばブルートゥースと８０２．１１ｂ）を利用するインタフェースのセットのそれぞれに関連する集約された情報に基づいて、さまざまな設定／制御動作を実行することができる。
【００３８】
本発明の一実施形態では、すべてのＶＣＤは、共存ドライバ３００によって管理される基本クラスから導出される。共存ドライバ３００は、識別された干渉源に基づいて、カスタマイズされたコンテクストおよび関数を含むＶＣＤの特定のインスタンスを作成する。競合するテクノロジおよび干渉源の識別ならびに適当なＶＣＤインスタンスの選択については、以下でさらに説明する。インストール後、ＮＤＩＳレイヤ３１０経由でネットワークインタフェースドライバに渡されるパケットに対する各ＶＣＤの制御の程度および制御の性質は、ＶＣＤのプログラミングによって、また場合によっては、共存ドライバ３００および／または共存ドライバ３００に収容されるＶＣＤによってユーザに提示されるコンフィギュレーション選択によって、決定される。
【００３９】
以上、本発明を実行する例示的な無線ネットワークドライバの構成について一般的に説明したので、次に図４を参照する。図４は、例示的なＶＣＤによって実行され、ＶＣＤが共存を管理する干渉源のセットに応じてカスタマイズされた、タスク／関数のセットを識別している。なお、注意すべきであるが、識別されているタスクは、特定のプログラムセグメント／モジュールに必ずしも限定されない。むしろ、タスクは、競合する無線テクノロジや他の干渉源から生じる干渉問題を適応的に処理するために、共存ドライバ３００によって作成されるＶＣＤにより示される例示的機能を概念化および区画化する一手段として識別されている。
【００４０】
適応タスク４１０
共存ドライバ３００内のＶＣＤによって実行される適応タスク４１０は、識別された実際の／潜在的な干渉条件のセットに応じて、装着されている無線インタフェースのセットに対する共存方式を指定することに関与する。例示的な共存方式のセットが、図６および図７を参照して以下で説明される。適応タスク４１０はさらに、指定された方式を実行する無線ネットワークインタフェース制御命令を提供することを含む。インタフェース制御命令は、ネットワークインタフェースの特定の動作モードを確立し、および／または関連するドライバの制御下で特定のネットワークインタフェースによるデータパケット送信のタイミングを規制する。例えば、ＶＣＤ３２０は、ある共存方式を指定して、８０２．１１ｂドライバ３３０に関連する第１のネットワークインタフェースおよびブルートゥースドライバ３３２に関連する第２のネットワークインタフェースに関するコンフィギュレーションおよびデータトラフィック制御について決定する。
【００４１】
Ｃ／Ｉ計算アプリケーション／チャネル選択
本発明の一実施形態では、適応タスク４１０として実現される適応タスクは、ＶＣＤのそれぞれの特定の無線テクノロジに関する情報を定期的に処理して、それぞれの特定のサポートされた無線テクノロジに対するそれぞれのサポートされたチャネルについて、輻輳／干渉（Ｃ／Ｉ）メトリックを提供する。所与の無線テクノロジの各チャネルについて収集される情報としては、例えば、信号強度、パケット誤り率、パケット損失、平均再試行回数、ノイズレベル、および推定輻輳がある。このような情報、または少なくともその一部が、既知の媒体アクセス制御ドライバによって提供される。Ｃ／Ｉメトリックは、装着されている無線トランシーバによって生成される干渉と、外部干渉源（例えば、別のユーザが別のコンピューティングデバイスのブルートゥースデバイスを動作させている場合）の両方を考慮に入れている。
【００４２】
その後、各無線テクノロジの各チャネルについて生成されたＣ／Ｉメトリックは、無線テクノロジおよび他の信号干渉源の間の干渉を低減／回避するために、ＶＣＤによって多くの方法で使用されることが可能である。第１の干渉回避形態では、適応タスク４１０は、特定の無線テクノロジについて生成されたＣ／Ｉメトリックを利用して、その特定の無線テクノロジに対してデータトラフィックが流れる最適なチャネルまたはチャネルのセットを選択する。しかし、許容できるチャネルが利用可能でなく、所望のトラフィックフローをサポートするために代替無線テクノロジが利用可能である場合、ＶＣＤは無線テクノロジ選択手続きを実行する。この第２の干渉回避形態では、ネットワーク選択手続き（後述）は、トラフィックフローを処理するための異なるネットワーク通信テクノロジを決定するために、例えば共存ドライバ３００によって実行される。
【００４３】
優先順位付けタスク４２０
各ＶＣＤによって実行される優先順位付けタスク４２０は、重要な情報が適時に渡されることを確実にするとともに、すべてのデータパケットが、最初に割り当てられた優先順位にかかわらず、適応タスク４１０によって指定された優先順位付け方式に従って最終的に送信されることを確実にする。このような優先順位付け方式は、同じ場所に配置された複数の無線テクノロジ間の潜在的コンフリクトを処理するために、順序付けされた非同時パケット送信が規定されている場合に所望される。後述の例示的なトラフィック処理方法では、優先順位付けタスク４２０は、ＮＤＩＳレイヤ３１０に渡されるデータパケットに優先順位を割当て／再割当てすることを担当する。
【００４４】
優先順位は、データの発信元のユーザ／アプリケーションの個々の需要を一般的に反映するさまざまな要因に従って、ＶＣＤによって処理されるデータトラフィックに割り当てられることが可能である。優先順位は、例えば、アプリケーション優先順位に関するユーザ指定の設定によって初期割当てされる。他の場合、優先順位は、特定のデータレートを保証するように特定の優先順位が提供される特定のアプリケーションに基づいている。同様に、さらに他の場合、初期優先順位は、アプリケーションタイプ（例えば、ＤＶＤビューアプログラム）、データのタイプ（例えば、電話の会話）、またはデータの宛先（ＤＶＤプレーヤ）に基づく。
【００４５】
本発明の一実施形態では、すべての制御パケットは、共存ドライバ３００のＶＣＤによって現在実施されている共存方式とは無関係に、自動的にネットワークインタフェースドライバに渡される。ＭＡＣレベル制御パケットは、いくつかの理由で、共存ドライバによって処理されない。第１に、共存ドライバ３００は、ＭＡＣドライバによって実装されるプロトコルを知らない。第２に、ＭＡＣ制御情報はタイムクリティカル（マイクロ秒の精度）である。さらに、制御パケットは優先順位が高いとみなされるため、優先順位とは無関係にそれらのパケットを最初に（高優先順位の／タイムクリティカルなパケットとして）送信し、ＶＣＤトラフィック制御方式を迂回することから生じ得るコンフリクト（およびパケット損失）をＭＡＣドライバに処理させるのが適当である。全送信のうち制御送信が占めるのは比較的小さい割合であるため、制御パケットに対するこのようなパススルーの適応は、コンフリクト回避に関してＶＣＤによって提供される利点には実質的に影響しない。他方、データパケットのタイムクリティカル性にはかなりばらつきがあり、一部のデータ送信の量は、優先順位付けされていない場合、タイムクリティカルな（例えば制御）パケットの送信を遅延させる。
【００４６】
キューイングタスク４３０
キューイングタスク４３０は、優先順位付けタスク４２０およびコマンド／制御タスク４４０と協調して動作し、競合する無線テクノロジの信号送信干渉を回避するように系統的に、テクノロジ固有のドライバにデータパケットを順次送信する。キューイングタスク４３０は、それぞれのサポートされている優先順位レベル（または最初に割り当てられた優先順位による各キューレベル内での優先順位付けを容易にするサブレベル）ごとに、未処理データパケットのキューを維持管理する。本発明の一実施形態では、順序付け共存方式（以下で図７を参照して説明する）をサポートする各ＶＣＤはソフトウェアスイッチを実装する。これは、キューの先頭にあるパケットを取り出し、そのパケットを適当な無線テクノロジインタフェースドライバに渡し、送信完了通知を受け取り、そして次の未処理パケットを送出する（ネットワークインタフェース経由で送信するためにデータをグループ化する他の方法の可能性を考慮して、本明細書ではパケットのことを一般的にデータセットと称する）。
【００４７】
本発明の一実施形態では、キューイングタスク４３０は、現在最高の優先順位のキューについて（高優先順位のパケットの定常ストリームが存在する時に低優先順位のパケットのスターベーションを回避する基準に基づいて）全部または一部のパケットの順次送信が完了した後、（低優先順位のキューに関連する）残りすべての未処理パケットの優先順位を１レベル上げてから、未処理パケットを有する最高送信キューからのパケットの送信を再開する。さらに、各優先順位レベル内では、最初にキューイングされた時にパケットに割り当てられた基本優先順位レベルに従ってサブレベルが維持管理される。現在の最高のキューレベル内で、サブレベルキューは、各パケットに割り当てられた基本優先順位の順序で処理される。
【００４８】
コマンド／制御タスク４４０
コマンド／制御タスク４４０は、関連するネットワークインタフェースドライバに制御命令を通知することに関与する。このような命令は、第１の場合として、チャネル選択のような適応タスク４１０によって提供されるコンフィギュレーション決定や、他の高レベル動作モード決定に基づく。その後、第２の場合として、コマンド／制御タスク４４０は、ネットワークインタフェースドライバの１つを指定するパケット送信要求を受け取る。これに応答して、コマンド／制御タスク４４０は、指定されたドライバへ無線テクノロジプロトコル固有のコマンド／命令を発行して、受け取ったパケットの送信を開始する。次に、コマンド／制御タスク４４０は、ＶＣＤによって使用される可能性のあるパケット送信完了通知の受渡しを行い、競合するインタフェースドライバが共存方式をサポートしていない場合に一度にただ１つだけのパケットが送信されるようにする。前述のように、本発明の一実施形態では、コンフリクト回避メカニズムは、時間に敏感な制御パケットには適用されない。というのは、制御パケットは、ＶＣＤによって維持管理されるキュー内でウェイトを課さずに適当なネットワーク通信ドライバに渡されるからである。
【００４９】
ＶＣＤの作成方法
コンピューティングシステム内に実装するための例示的な共存アーキテクチャについて説明したので、次に図５を参照する。図５は、データセット（例えばパケット）の送信中にコンピューティングデバイス上のネットワークインタフェースが受ける可能性のある、無線テクノロジと他の無線信号干渉源との間の信号コンフリクトを処理するためのＶＣＤを作成するために、共存ドライバ３００によって実行されるステップをまとめたものである。本発明の一実施形態では、共存ドライバ３００は、オンデマンドで、および共存ドライバ３００が存在するコンピューティングデバイスにとって既知の干渉源のセットに従って、ＶＣＤを起動する。コンピューティングデバイスは、干渉源のセット（同一無線テクノロジを利用する複数のネットワークインタフェースを含む）への変化に関する通知を待ち、必要であれば新たなＶＣＤを起動して、同じ場所に配置された外部干渉源のセットへの変化に対処する。
【００５０】
図５を参照すると、無線ネットワークインタフェースの起動や新たな干渉源の検知等のさまざまな通知タイプのいずれかに応答して、ステップ５００で、共存ドライバ３００は、共存処理が所望される潜在的な無線干渉源のセットを整理する。本発明の一実施形態では、潜在的な無線干渉源のセットは、同じ場所に配置された源（例えば、装着されている無線ネットワークインタフェース）および外部源（例えば近くのコンピュータシステム上のブルートゥーストランシーバ）の両方を含む。同じ場所に配置された源は、例えば、装着されているデバイス（無線ネットワークインタフェースを含む）のセットをリストアップしているバインダリに問合せを行うことによって判定される。外部源は、信号特性を（共存ドライバ３００が）検知および分析することによって、および／または現在のオペレーティング環境の情報を有するユーザが干渉源タイプを手入力することによって、識別される。
【００５１】
その後、ステップ５０２において、共存ドライバ３００は、競合する無線干渉源のセットを提供する。本発明の一実施形態では、「既知の」無線テクノロジのセットを列挙するマスタコンフリクトマップ（例えば、テーブル等の好適なデータ構造）が維持管理される。各無線テクノロジについて、既知の干渉源のセットがマスタコンフリクトテーブル内で識別される。例示的なマスタコンフリクトテーブルを次に示す。これは、８０２．１１ａ／ｂ、ブルートゥース、およびＵＷＢ無線テクノロジに関するコンフリクトを識別する。第１行は、無線インタフェースとの潜在的な干渉源のセットを識別する。第１列は、無線インタフェーステクノロジのセットを識別する。より空間効率の良い配列では、格納されたバイトセット内のマッピングされたビットセットを必要とする。その場合、各ビット位置が特定の干渉源タイプを表す。
【００５２】
【表１】
2005012815.tif 000003
【００５３】
共存ドライバ３００は、まず、コンピューティングデバイスに現在装着されている無線テクノロジごとに干渉源のセットを判定する。本発明の一実施形態では、それぞれの装着されている無線インタフェースについて、共存ドライバ３００は、それぞれの装着されている無線インタフェースと干渉する可能性があることが知られている干渉源のセットを検討する。ステップ５００で識別された干渉源が干渉源のセット内に存在する場合、その干渉源が、適当なＶＣＤを指定するための干渉源のセットに追加される。装着されているすべての無線インタフェースを処理した後、干渉源のセットの共通部分を求め、それらの内容（識別された干渉源）を併合する。図３に示した例では、８０２．１１ｂおよびブルートゥーステクノロジが１つの干渉源セットに属する一方、８０２．１１ａおよびＵＷＢ無線テクノロジが第２のセットに属し、それに対してＶＣＤが作成される。
【００５４】
ステップ５０４で、干渉信号源を処理するために、１つまたは複数のＶＣＤが（必要であれば）共存ドライバ３００によって指定される。特に、共存ドライバ３００によってインスタンス化されるべき適当なＶＣＤを決定するために、ステップ５０２で識別された結果として得られる併合された干渉源のセットが、ＶＣＤ記述のセットに適用される。図３に提供された例では、共存ドライバ３００は、８０２．１１ｂネットワークインタフェースとブルートゥースインタフェースの間の潜在的コンフリクトを処理するためにＶＣＤ３２０を作成する。また、共存ドライバ３００は、８０２．１１ａネットワークインタフェースとＵＷＢインタフェースの間の潜在的コンフリクトを処理するためにＶＣＤ３２２を作成する。
【００５５】
なお、注意すべきであるが、ＶＣＤを指定／作成する目的上、共存ドライバ３００が動作するコンピューティングデバイスに、干渉源とみなされる特定の無線テクノロジが存在し、あるいは装着されている必要はない。したがって、例えば、ＶＣＤ３２０は、８０２．１１ｂテクノロジとブルートゥーステクノロジの間のコンフリクトを処理するために作成されるが、両方のタイプの無線ネットワークインタフェースがコンピューティングデバイス上に位置する（あるいは一方の無線テクノロジは単に外部干渉源である）かどうかとは無関係である。しかし、ＶＣＤの適応４１０、優先順位付け４２０およびキューイング４３０の各タスクのその後の動作は、干渉源がコンピューティングデバイス上に位置するかどうかによって影響される。というのは、外部干渉源はコンピューティングデバイスによって送信されるデータセット（パケット）を送出することができないからである。ＶＣＤは、外部干渉源に適応することが可能である。例として、ＶＣＤは、８０２．１１ｂ送信機が干渉を生じていると判定した場合、その監視制御下にあるＢＴドライバによる送信を、影響を受けない特定の周波数範囲に適応させ、あるいは制限することができる。同様に、８０２．１１ｂトランシーバの干渉源がＢＴ送信機である場合、ＶＣＤは、ＢＴ送信機との干渉を受ける可能性が低い特定の利用可能なチャネルを選択することが可能である。
【００５６】
ステップ５０６で、共存ドライバ３００は、ステップ５０４で指定されたＶＣＤのセットを起動する。例示的な一実施形態では、ＶＣＤ３２０および３２２は、ＶＣＤ基本クラスから導出されるサブクラスからインスタンス化される。したがって、ＶＣＤ３２０および３２２は、共存ドライバ３００によって起動されるすべてのＶＣＤに対して提供される実行可能コードベースを共有する。しかし、各サブクラスは、図４に示した上記のＶＣＤタスクを実行するための固有の関数、オペレーション、メソッド等のセットを含む。各ＶＣＤインスタンスには固有のコンテクストが提供される。各ＶＣＤは共存ドライバ３００内で動作し、共存ドライバ３００は、ＮＤＩＳプロトコルスタック内の中間レイヤで動作する。
【００５７】
各ＶＣＤによる共存処理
図６の一連のステップは、ステップ５０６で共存ドライバ３００によって起動された後の例示的なＶＣＤの動作をまとめたものである。概して、ＶＣＤは、存在する／潜在的な干渉条件にＶＣＤの動作を適応させるための一連のステップを実行する。その後、ＶＣＤは、指定された共存方式を実行して、存在する干渉条件を解決する。本発明の一実施形態では、適当なトリガイベント（例えば、コネクションの切断、ネットワークインタフェースの無効化、無線インタフェース上のサービス品質の劣化等）の通知を受けると、図６にまとめられている一連のステップが再始動されて実行される。
【００５８】
共存ドライバ３００によって起動された後、ステップ６００で、ＶＣＤ、またはＶＣＤの代わりに作用するエンティティが、そのＶＣＤに関連する装着されているネットワークインタフェースに関する動作情報を媒体アクセス制御ドライバから取得する。このような情報としては、動作周波数、信号強度、パケット誤り率、平均再試行回数、パケット損失率、ノイズしきい値等がある。情報収集ステップ６００は、図６に示したステップの毎回の実行ごとに（図６に示した他のステップの実行中であっても）任意回数繰り返されることが可能である。したがって、図６に示した全シーケンスの毎回の実行の間に獲得されるデータは、無線ネットワークインタフェースの長期オペレーティング環境を表さない瞬間的な異常値を除去するために処理（例えば平均）されることが可能である。
【００５９】
ステップ６０２において、ＶＣＤは、上記の適応タスク４１０によって、各無線インタフェースの各チャネルに対する「輻輳／干渉（Ｃ／Ｉ）メトリック」を判定する。このメトリックは、本発明の一実施形態では、ステップ６００で獲得された情報の加重平均を含む。その後、同じく適応タスク４１０に関連するステップ６０４で、Ｃ／Ｉ値を用いて、ＶＣＤによってサービスされる１つまたは複数の無線ネットワークインタフェースへの１つまたは複数のトラフィックフローのために（１つまたは複数の）利用可能なチャネルを選択する。チャネル選択を実行し、場合によっては異なるネットワークインタフェースを選択する例示的な一連のステップについては、図７を参照して後述する。
【００６０】
チャネルのセットを選択した後、ステップ６０６で、ＶＣＤは、例として図４に指定されている前述のＶＣＤ適応４１０、優先順位付け４２０、キューイング４３０、およびコマンド／制御４４０の各タスクを実行する。適応タスク４１０は、チャネルに対するＣ／Ｉ値を定期的に判定し、ステップ６００、６０２および６０４を再実行して新しいチャネルのセット（および場合によっては異なるネットワークインタフェースのセット）を確立することを含み得る。
【００６１】
図７にまとめられている一連のステップは、チャネル選択を実行し、ＶＣＤによってサービスされる無線ネットワークインタフェースのセットに対して適当な共存方式を確立する。最初に、ステップ７００において、ＶＣＤは、ステップ６０２で生成されたＣ／Ｉメトリック値にしきい値およびチャネル選択方式を適用して、データパケットが送信される各無線ネットワークインタフェースに対して１つまたは複数のチャネルを提供する。例として、チャネルのＣ／Ｉメトリックが許容できるしきい値より小さい場合、ＶＣＤは、同じ無線テクノロジに対してより良いチャネルを探索し、そのチャネルへの切り替えを行う。複数のチャネルを利用する無線テクノロジ（例えばブルートゥースまたは同じ無線テクノロジを使用する２つのネットワークインタフェース）の場合、ＶＣＤは、許容できるチャネルのセットを決定する。その後、ステップ７０２で、１つまたは複数の無線インタフェース／テクノロジが許容できない干渉を受けているために、チャネル選択ステップ７００が、ＶＣＤによって管理される無線インタフェースのセットに対して満足なチャネルのセットを確立することができない場合、制御はステップ７０４に移る。
【００６２】
ステップ７０４で、同じテクノロジに対して許容できる代替無線テクノロジまたはネットワークプロバイダ（例えば、異なる周波数を使用する２つの異なるＷｉ−Ｆｉネットワークアクセスポイントプロバイダ）が見つかった場合、代替テクノロジ／ネットワークへの切り替えを開始するステップが実行される。一般に、代替無線テクノロジまたはネットワークの選択は、代替テクノロジ／ネットワークが、ステップ７０２で許容できないとみなされた無線インタフェース／テクノロジによって提供される基本レベルの機能を満たすように実行される。例えば、同程度の接続性を提供しないネットワークや、安全性の劣るネットワークへの切り替えは一般に望ましくない。無線テクノロジインタフェースのセットは変化する可能性があるため、新しいＶＣＤのセットがコンピューティングデバイスに対して決定される。
【００６３】
ステップ７０２で、無線ネットワークインタフェースが許容できる信号品質を示した場合、制御はステップ７０６に移る。ステップ７０６で、ＶＣＤはまず、周波数適応およびインタフェース切り替えという２つの共存方式タイプの間で一般的選択を行う。本発明の一実施形態では、周波数適応が利用可能である場合、制御はステップ７０８に移る。ステップ７０８で、ＶＣＤは周波数範囲を共有する共存方式を指定する。この方式では、ＶＣＤによって表される無線インタフェース／テクノロジのセットのいずれかにより使用される周波数範囲／チャネルが、そのセット内の他のいかなる無線インタフェース／テクノロジにより使用されるいかなる周波数範囲／チャネルとも重複しない。周波数範囲を選択する場合、信号浸出を防ぐために、周波数間隔は小さいよりも大きいほうが好ましい。こうして、動作周波数範囲を慎重に選択することによって、無線テクノロジのセットによる送信を並列して行うことができる。このような方式の例を以下で説明する。
【００６４】
同じ場所に配置されたテクノロジ間のバンド選択による適応
ステップ７０８で指定される１つの共存方式では、適応タスク４１０は、１つまたは複数の競合するテクノロジによって使用されるチャネル／周波数範囲のセットを調整することによって干渉を除去しようと試みる。例えば、８０２．１１ｂとブルートゥースの送信間のコンフリクトを処理するＶＣＤ３２０の場合、適応タスク４１０は、ブルートゥース送信機によって利用される適応ホップセットに対して、８０２．１１ｂトランシーバによって現在利用されているチャネルの周波数範囲と重複しないチャネルのセットを指定する。同様に、ＶＣＤ３２２は、８０２．１１ａトランシーバによって現在使用されているチャネルを回避するように、ＵＷＢトランシーバによって使用される特定のチャネルを指定する。チャネル／周波数範囲が適応タスク４１０によって決定された後、コマンド／制御タスク４４０によって発行されるネットワークインタフェースドライバ固有の命令を通じて決定が実行される。
【００６５】
しかし、ステップ７０６で、周波数適応が利用可能でない場合、制御はステップ７１０に移り、トランシーバの切り替えをする共存方式がＶＣＤによって指定される。この場合、ＶＣＤは、無線ネットワークインタフェースドライバへのパケットのフローを規制し、データパケットがコンピューティングデバイスによって同じ周波数範囲内で同時に送信されないようにする。
【００６６】
同じ場所に配置されたテクノロジ間のトランシーバ切り替えによる適応
未解決の送信チャネル重複に起因して、競合する無線テクノロジがデータトラフィックを同時に送信することができない場合、ＶＣＤは、無線ネットワークインタフェースのセットに対するタイムスライシング動作モードを規定する。この場合、同じ場所に配置された競合する無線インタフェースのそれぞれが、互いに排他的な時間フレームにデータを送信する。
【００６７】
適応タスク４１０の一側面によれば、ＶＣＤは、後述する優先順位付け４２０、キューイング４３０、およびコマンド／制御４４０の各タスクによって実行されるトラフィック順序付け方式を設定する。トラフィック順序付けモードで動作する間、競合する無線テクノロジのデータトラフィックはＶＣＤによって規制され、２つの競合するチャネルがコンピューティングデバイスによってデータパケットを送信するために同時に使用されないようにする。例えばＣ／Ｉメトリック、送信優先順位、スターベーション時間、ドライバ遅延等に基づくトラフィック処理アルゴリズム（後述）が、特定のＶＣＤインスタンスによってサポートされる競合する無線テクノロジを通じて未処理データパケットを送信する順序を確定する。
【００６８】
同じ場所に配置されたテクノロジ間の需要ベースのトランシーバ切替による適応
競合する無線ネットワークインタフェーステクノロジを処理するための上記のトランシーバ切り替え方式の一つのバリエーションとして、適応タスク４１０は、特定の無線テクノロジが特定の周波数バンドをいつ使用するかについての情報を利用して、ある時点では並列に送信し、（送信周波数コンフリクトに起因して）他の時点では順次送信する共存方式を実行する。同じ場所に配置されたブルートゥースおよび８０２．１１ｂ無線ネットワークインタフェースに関連する一特定実施例では、ブルートゥース１．０インタフェースは７９チャネルにわたってホッピングを行い、各チャネルの幅は１ＭＨｚである。したがって、これはＩＳＭバンド２．４０２〜２．４８３ＧＨｚのほとんど全体をカバーする。８０２．１１ｂネットワークインタフェースは、このバンドの２２ＭＨｚを使用する。したがって、ブルートゥース１．０インタフェースの２２個のチャネルに、８０２．１１ｂ信号送信とのコンフリクトの可能性が存在する。
【００６９】
適応タスク４１０によって規定される以下の共存方式は、ブルートゥースインタフェースが残りの５７個の非重複周波数を利用している時の同時並行性を利用する。上記の同時並行方式の実施を容易にするため、仮想共存ドライバ３２０は、ブルートゥースドライバによって現在使用されているホッピングアルゴリズム（マスタのクロックおよびＭＡＣアドレスによって決まる）を判定／使用する。ＶＣＤは、同時並行的な８０２．１１ｂ送信のためにパケットの送信を保留するかどうかを判定する場合、次のホップが８０２．１１ｂ送信と干渉するかどうかを判定する。干渉しない場合、ブルートゥースおよび８０２．１１ｂの同時並行送信が許可される。
【００７０】
最後になるが、図７に関して、上記の共存方式は単なる例示である。共存ドライバ３００のアーキテクチャは、識別された競合する無線テクノロジの特定の組合せに関連するＶＣＤの指定を通じて、実質的にいかなるタイプの共存方式を指定することもサポートする、柔軟性および拡張性の高いアーキテクチャを提供する。例えば、本発明の一実施形態では、データパケットを優先順位によって編成／キューイングするのではなく、パケットは、アプリケーション、ソース、無線インタフェースによって、これらおよび／または優先順位の組合せ（例えば、高優先順位のＢＴは高優先順位の８０２．１１に優先するが、低優先順位の８０２．１１は低優先順位のＢＴに優先する）等によって配列される。さらに、図７に示したステップは例示である。２つの一般的タイプの共存方式の一方がＶＣＤによってサポートされる本発明の別の実施形態では、ステップ７０６を実行する必要はない。
【００７１】
当業者には認識されるように、本明細書では、無線ネットワークアクセスの１つまたは複数のモードの設定／選択を容易にするための新規で有益な方法およびフレームワークを説明した。より詳細には、本明細書に記載の無線ネットワークインタフェース選択および共存ドライバアーキテクチャは、特定のネットワークインタフェースおよび無線テクノロジに関連するネットワークインタフェースドライバのセットによって提供されるステータス情報に基づいて、ネットワークアクセスの特定のモードの自動選択を容易にする。本発明の原理を適用し得る多くの可能なコンピューティング環境と、無線データ通信について考える場合に生じる干渉等の共存問題を解決するために自動ネットワークアクセス設定を実行する柔軟性を考慮すれば、本明細書に記載の実施形態は例示を意図しており、本発明の範囲を限定するものと解釈してはならないことが認識されるべきである。本発明が適用される技術分野の当業者には認識されるように、例示的実施形態は、本発明の要旨から逸脱することなく、構成および細部において変更可能である。したがって、本明細書に記載の発明は、添付の特許請求の範囲およびその均等の範囲内に入るすべてのそのような実施形態を考慮に入れている。
【図面の簡単な説明】
【００７２】
【図１】本発明の一実施形態を実行するコンピューティングデバイスの例示的アーキテクチャを示す概略図である。
【図２】複数の競合／干渉する無線テクノロジを含む例示的な複合的なネットワーク通信媒体の構成である。
【図３】本発明を実現する共存ドライバを含むシステム内のコンポーネントを識別する概略図である。
【図４】無線インタフェース信号干渉源を処理する共存方式を実行する仮想共存ドライバ内に実現される例示的なタスクのセットの概要である。
【図５】仮想共存ドライバのセットを指定しアクティベートするために共存ドライバによって実行されるステップのセットの概要である。
【図６】仮想共存ドライバによって起動後に実行されるステップのセットの概要である。
【図７】潜在的無線干渉源に対処する共存方式を確立するために仮想共存ドライバによって実行されるステップのセットの概要である。
【符号の説明】
【００７３】
１００  オペレーティング環境
１１０  コンピュータ
１２０  処理ユニット
１２１  システムバス
１３０  システムメモリ
１３１  読み出し専用メモリ（ＲＯＭ）
１３２  ランダムアクセスメモリ（ＲＡＭ）
１３３  基本入出力システム（ＢＩＯＳ）
１３４  オペレーティングシステム
１３５  アプリケーションプログラム
１３６  他のプログラムモジュール
１３７  プログラムデータ
１４０  非リムーバブルメモリインタフェース
１４１  ハードディスクドライブ
１４４  オペレーティングシステム
１４５  アプリケーションプログラム
１４６  他のプログラムモジュール
１４７  プログラムデータ
１５０  リムーバブルメモリインタフェース
１５１  磁気ディスクドライブ
１５２  磁気ディスク
１５５  光ディスクドライブ
１５６  光ディスク
１６０  ユーザ入力インタフェース
１６１  ポインティングデバイス
１６２  キーボード
１７０  ネットワークインタフェース
１７１  ローカルエリアネットワーク（ＬＡＮ）
１７３  ワイドエリアネットワーク（ＷＡＮ）
１８０  リモートコンピュータ
１８１  メモリデバイス
１８５  リモートアプリケーションプログラム
１９０  ビデオインタフェース
１９１  モニタ
１９５  出力周辺インタフェース
１９６  プリンタ
１９７  スピーカ
２００  ノート型コンピュータ
２０２  セルラ伝送タワー
２０４  無線トランシーバ
２０６  ＬＡＮ
２０８  ファイルサーバ
２１０  ゲートウェイ／ファイアウォール／モデム
２１１  コンピュータ
２１２  インターネット
２１４  パーソナルコンピュータ
３００  共存ドライバ
３１０  ＮＤＩＳレイヤ
３１２  トランスポートドライバ
３２０，３２２  仮想共存ドライバ（ＶＣＤ）
３３０  ８０２．１１ｂネットワークインタフェースドライバ
３３２  ブルートゥース・ネットワークインタフェースドライバ
３３４  ８０２．１１ａネットワークインタフェースドライバ
３３６  ウルトラワイドバンド・ネットワークインタフェースドライバ
４１０  適応タスク
４２０  優先順位付けタスク
４３０  キューイングタスク
４４０  コマンド／制御タスク
【図１】
2005012815.tif 000004
【図２】
2005012815.tif 000005
【図３】
2005012815.tif 000006
【図４】
2005012815.tif 000007
【図５】
2005012815.tif 000008
【図６】
2005012815.tif 000009
【図７】
2005012815.tif 000010