添付の図面を参照しながら、新規のシステム、装置および方法の様々な態様が、以下でより十分に説明される。しかしながら、本教示の開示は、多くの異なる形態で具現化されてよく、本開示全体にわたって提示される任意の特定の構造または機能に限定されるものと解釈すべきではない。むしろ、これらの態様は、本開示が周到で完全になり、本開示の範囲を当業者に十分に伝えるために与えられるものである。本明細書の教示に基づいて、本開示の範囲は、本発明の他の態様とは無関係に実装されるか、本発明の他の態様と組み合わせて実装されるかにかかわらず、本明細書で開示される新規のシステム、装置および方法のいかなる態様をも包含するものであることを、当業者は諒解されたい。たとえば、本明細書に記載の態様をいくつ使用しても、装置を実装することができ、または方法を実施することができる。加えて、本発明の範囲は、本明細書に記載の本発明の様々な態様に加えて、またはそれらの態様以外に、他の構造、機能、または構造および機能を使用して実施されるそのような装置またはそのような方法を包含するものとする。本明細書で開示されるいずれの態様も、請求項の1つまたは複数の要素によって具現化され得ることを理解されたい。
本明細書では特定の態様が説明されるが、これらの態様の多くの変形体および置換は本開示の範囲内に入る。好ましい態様のいくつかの利益および利点に言及するが、本開示の範囲は特定の利益、使用、または目的に限定されるものではない。むしろ、本開示の態様は、様々なワイヤレス技術、システム構成、ネットワーク、および送信プロトコルに広く適用可能であるものとし、そのうちのいくつかが例として図および好ましい態様についての以下の説明で示される。発明を実施するための形態および図面は、限定的なものではなく本開示を説明するものにすぎず、本開示の範囲は添付の特許請求の範囲およびその等価物によって規定される。
普及しているワイヤレスネットワーク技術は、様々なタイプのワイヤレスローカルエリアネットワーク(WLAN)を含み得る。WLANは、広く使用されるネットワークプロトコルを利用して、近くのデバイスを一緒に相互接続するのに使用され得る。本明細書で説明される様々な態様は、WiFiのような任意の通信規格に、または、より一般的には、ワイヤレスプロトコルのIEEE群のうち任意のメンバーに適用することができる。たとえば、本明細書で説明される様々な態様は、IEEE802.11nプロトコルの一部として使用され得る。
一部の実装形態では、WLANは、ワイヤレスネットワークにアクセスするコンポーネントである様々なデバイスを含む。たとえば、アクセスポイント(「AP」)およびクライアント(局、すなわち「STA」とも呼ばれる)という2つのタイプのデバイスがあり得る。一般に、APは、WLAN用のハブまたは基地局として働き、STAは、WLANのユーザとして働く。たとえば、STAは、ラップトップコンピュータ、携帯情報端末(PDA)、携帯電話などであり得る。ある例では、STAは、WiFi(たとえば、802.11nなどのIEEE802.11プロトコル)準拠ワイヤレスリンクを介してAPに接続して、インターネットまたは他のワイドエリアネットワークへの全般的な接続性を取得する。APは、バックホールと呼ばれ得るリンクを通じて、インターネットまたは他のワイドエリアネットワークと相互接続し得る。一部の実装形態では、STAは、APとしても使用され得る。
アクセスポイント(「AP」)はまた、NodeB、eNodeB、基地局コントローラ(「BSC」)、無線基地局装置(「BTS」)、基地局(「BS」)、送受信機機能(「TF」)、無線ルータ、無線送受信機、または何らかの他の用語を含むことがあり、それらとして実装されることがあり、あるいはそれらとして知られていることがある。
局「STA」はまた、アクセス端末(「AT」)、加入者局、加入者ユニット、移動局、遠隔局、遠隔端末、ユーザ端末、ユーザエージェント、ユーザデバイス、ユーザ機器、または何らかの他の用語を含むことがあり、それらとして実装されることがあり、またはそれらとして知られていることがある。いくつかの実装形態では、アクセス端末は、セルラー電話、コードレス電話、セッション開始プロトコル(「SIP」)電話、ワイヤレスローカルループ(「WLL」)局、携帯情報端末(「PDA」)、ワイヤレス接続機能を有するハンドヘルドデバイス、またはワイヤレスモデムに接続された何らかの他の好適な処理デバイスを含み得る。したがって、本明細書で教示される1つまたは複数の態様は、電話(たとえば、セルラー電話またはスマートフォン)、コンピュータ(たとえば、ラップトップ)、ポータブル通信デバイス、ヘッドセット、ポータブルコンピューティングデバイス(たとえば、個人情報端末)、娯楽デバイス(たとえば、音楽もしくはビデオデバイス、または衛星ラジオ)、ゲームデバイスまたはシステム、全地球測位システムデバイス、あるいは、ワイヤレス媒体を介して通信するように構成された任意の他の適切なデバイスに組み込まれ得る。
図1は、本開示の態様が利用され得るワイヤレス通信システム100の例を示す。ワイヤレス通信システム100は、ワイヤレス規格、たとえば802.11n規格に従って動作し得る。ワイヤレス通信システム100は、STA106と通信するAP104を含み得る。
種々のプロセスおよび方法が、AP104とSTA106との間の、ワイヤレス通信システム100における送信のために使用され得る。たとえば、信号は、OFDM/OFDMA技法に従って、AP104とSTA106との間で送信および受信され得る。これが行われる場合、ワイヤレス通信システム100は、OFDM/OFDMAシステムと呼ばれ得る。あるいは、信号は、CDMA技法に従って、AP104とSTA106との間で送信および受信され得る。これが行われる場合、ワイヤレス通信システム100は、CDMAシステムと呼ばれ得る。
AP104からSTA106のうち1つまたは複数への送信を支援する通信リンクは、ダウンリンク(DL)108と呼ばれることがあり、STA106のうち1つまたは複数からAP104への送信を支援する通信リンクは、アップリンク(UL)110と呼ばれることがある。あるいは、ダウンリンク108は順方向リンクまたは順方向チャネルと呼ばれることがあり、アップリンク110は逆方向リンクまたは逆方向チャネルと呼ばれることがある。
AP104は、基地局として動作し、基本サービスエリア(BSA)102内でワイヤレス通信カバレッジを提供し得る。AP104は、AP104に接続され通信のためにAP104を使用するSTA106とともに、基本サービスセット(BSS)と呼ばれ得る。ワイヤレス通信システム100は、中央AP104をもたなくてよく、むしろSTA106の間のピアツーピアネットワークとして機能し得ることに留意されたい。したがって、本明細書で説明されるAP104の機能は、代替的には、STA106のうち1つまたは複数によって実行され得る。
例示される実施形態では、AP104は、バックホール通信リンク112を使用して、より大きなネットワーク114と通信する。ネットワーク114は、たとえば、インターネットまたは公衆交換電話網(PSTN)であってよい。バックホールは、いくつかの物理リンクを含み得る。ある実施形態では、STA106は、AP104を介してサーバ116と通信し得る。たとえば、STA106は、アップリンク110およびダウンリンク108を介してAP104と通信することができ、AP104は、バックホール通信リンク112を介して通信をサーバ116に中継することができる。
バックホール品質推定(BQE)
ある実施形態では、STA106は、サーバ116とのエンドツーエンドリンクの品質を推定することができる。エンドツーエンドリンクは、たとえば、アップリンク110、ダウンリンク108、およびバックホール通信リンク112を含み得る。したがって、STA106は、アップリンク110、ダウンリンク108、および/またはバックホール通信リンク112の積算品質として、エンドツーエンドリンクの品質を推定することができる。STA106は、たとえば、転送速度、レイテンシ、パケット遅延変動、パケットロスなどの測定として、エンドツーエンドリンクの品質を測定することができる。バックホール通信リンク112の品質がアップリンク110および/またはダウンリンク108の品質よりも低い実施形態では、エンドツーエンドリンクの品質は、バックホール通信リンク112の品質によって制限され得る。逆に、バックホール通信リンク112の品質がアップリンク110および/またはダウンリンク108の品質よりも高い実施形態では、エンドツーエンドリンクの品質は、アップリンク110および/またはダウンリンク108の品質によって制限され得る。したがって、いくつかの実施形態では、STA106は、バックホール通信リンク112の品質を事実上推定することができる。エンドツーエンドリンクの1つまたは複数の態様の品質の推定は、「バックホール品質推定」(BQE)と本明細書では呼ばれ得る。
ある実施形態では、STA106は、たとえば、サーバ116からのファイルを要求することによって、サーバ116とのエンドツーエンドリンクの品質を推定することができる。具体的には、STA106は、品質推定要求をサーバ116に送信することができる。サーバ116は、本明細書ではファイルと呼ばれるデータを含む、品質推定応答をSTA106に送信することができる。STA106は本明細書ではサーバ116から「ファイル」をダウンロードするものとして説明されるが、品質推定応答は静的である必要はないことが諒解されるだろう。ある実施形態では、STA106は、品質推定応答を動的に生成することができる。
エンドツーエンドリンクの品質がエンドツーエンドリンクの速度を含む実施形態では、STA106は、サーバ116から品質推定応答をダウンロードするのにかかる時間を測定し、品質推定応答のサイズを転送時間で除算することによって、エンドツーエンドリンクの速度を推定することができる。エンドツーエンドリンクの品質がエンドツーエンドリンクのレイテンシを含む実施形態では、STA106は、サーバがダウンロード要求に応答するのにかかる時間を測定することによって、エンドツーエンドリンクのレイテンシを推定することができる。エンドツーエンドリンクの品質がエンドツーエンドのパケット遅延変動を含む実施形態では、STA106は、品質推定応答をダウンロードする時にパケットの送信および確認応答を監視することによって、エンドツーエンドリンクのパケット遅延変動を推定することができる。エンドツーエンドリンクの品質がエンドツーエンドリンクのパケットロス率を含む実施形態では、STA106は、品質推定応答をダウンロードする時にサーバ116によって再送信されたパケットの数を測定することによって、エンドツーエンドリンクのパケットロス率を推定することができる。
一実施形態では、品質推定応答は、ランダムデータ、擬似ランダムデータ、空データ、または、STA106の現在の状態に関連するデータを含み得る。品質推定応答は、STA106に新たな情報を伝えることを意図しないデータを含み得る。したがって、品質推定応答は、「ダミーファイル」と呼ばれ得る。STA106は、ダミーファイル中のデータを使用することなく廃棄または削除することができる。たとえば、STA106は、アプリケーションにおいてダミーファイル中のデータを使用しなくてよく、ユーザインターフェースを介してそのデータを提示しなくてよい。別の実施形態では、ファイルは、STA106によって処理され、STA106の状況または状態に関連する情報を提供する。
ある実施形態では、サーバ116は、品質推定応答をキャッシュすることができる。たとえば、サーバ116は、たとえば、マサチューセッツ州ケンブリッジのAkamai Technologies, Inc.により提供されるAkamai(登録商標)Content Delivery Networkのような、コンテンツ配信ネットワーク(CDN)の一部であってよい。CDNは、異なる地理的な位置にある複数のサーバの1つにおいて品質推定応答をキャッシュすることができ、品質推定要求は、STA106に最も近いサーバにルーティングされ得る。本明細書で使用される場合、サーバ116は、スタンドアロンのサーバと、CDNとともに動作するサーバとのいずれかを指し得る。
ある実施形態では、品質推定応答は、STA106がエンドツーエンドリンクの品質を測定するのに十分なサイズであり得る。たとえば、品質推定応答は、サイズが約0ビットから約2メガビットの間であり得る。ある実施形態では、品質推定応答は、サイズが約0.5メガビットから約1.5メガビットの間であってよく、より具体的には、サイズが約1メガビットであってよい。ある実施形態では、品質推定応答のサイズは、STA106とサーバ116との間のパケットの往復時間(RTT)に基づき得る。たとえば、品質推定応答は、以下のTable 1(表1)に基づいてRTTに関連し得る。
STA106は頻繁に、たとえばSTA106がAPに接続するたびに、エンドツーエンドリンクの品質を推定し得るので、品質推定応答は、長時間大量の帯域幅を使用し得る。品質推定応答をダウンロードする時にSTA106によって使用される帯域幅は、STA106と関連付けられる帯域幅の割当に加わり得る。したがって、品質推定応答は、ダミーデータの代わりに有用なデータを含むことが望ましいことがある。有用なデータは、たとえば、STA106がまだ利用できないデータ、STA106上のアプリケーションが使用するデータ、STA106のユーザインターフェースを介して提示されるべきデータ、および/または、デバイス管理情報を含み得る。デバイス管理情報は、たとえば、アクセス確率因子、品質推定割当、BQEキャッシュ期間、BQE履歴制限、受動BQR命令、および/または他の情報を含み得る。デバイス管理情報は、アクセス制約を含み得る。
多数のSTAが、サーバ116に品質推定要求を送信するように構成され得る。サーバ116に送信される品質推定要求の数が増えるに従って、サーバ116での処理の負荷および/またはネットワーク帯域幅の負荷が増え得る。いくつかの実施形態では、品質推定要求の数は、サーバ116の能力を超え得る。サーバ116は、STA106にデバイス管理情報を送信することによって、品質推定要求の量を管理することができる。デバイス管理情報は、サーバ116がBQEのために利用可能となる条件を示し得る。
図2は、ワイヤレス通信システム100内で利用され得るワイヤレスデバイス202において使用され得る様々なコンポーネントを示す。ワイヤレスデバイス202は、プロセッサ204、メモリ206、筐体208、送信機210および受信機212(送受信機214を形成し得る)、アンテナ216、測位モジュール218、デジタル信号プロセッサ(DSP)220、ユーザインターフェース222、ならびに通信バス226を含み得る。ワイヤレスデバイス202は、本明細書で説明される様々な方法を実装するように構成され得るデバイスの例である。たとえば、ワイヤレスデバイス202は、AP104および/または複数のSTA106の1つを含み得る。
ワイヤレスデバイス202は、ワイヤレスデバイス202の動作を制御するプロセッサ204を含み得る。プロセッサ204は、中央処理装置(CPU)と呼ばれることもある。読取り専用メモリ(ROM)とランダムアクセスメモリ(RAM)の両方を含み得るメモリ206は、命令とデータとをプロセッサ204に与える。メモリ206の一部分は、不揮発性ランダムアクセスメモリ(NVRAM)も含み得る。プロセッサ204は、メモリ206内に記憶されたプログラム命令に基づいて、論理演算および算術演算を実行する。メモリ206中の命令は、本明細書で説明される方法を実施するように実行可能であり得る。
プロセッサ204は、1つもしくは複数のプロセッサとともに実装される処理システムのコンポーネントを含み、またはそのコンポーネントであってよい。1つまたは複数のプロセッサは、汎用マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、プログラマブルロジックデバイス(PLD)、コントローラ、状態機械、ゲート論理、個別ハードウェアコンポーネント、専用ハードウェア有限状態機械、または、情報の算出もしくは他の操作を実行できる任意の他の適切なエンティティの、任意の組合せによって実装され得る。
処理システムは、ソフトウェアを記憶するための機械可読記憶媒体も含み得る。ソフトウェアは、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語などの名称にかかわらず、任意のタイプの命令を意味すると広く解釈されたい。命令は、(たとえば、ソースコード形式、バイナリコード形式、実行可能コード形式、または任意の他の適切なコード形式の)コードを含み得る。命令は、1つまたは複数のプロセッサによって実行されると、処理システムに、本明細書で説明される様々な機能を実行させる。
ワイヤレスデバイス202は、ワイヤレスデバイス202と遠隔地との間のデータの送信および受信を可能にするために送信機210および/または受信機212を含み得る、筐体208も含み得る。送信機210と受信機212とは、組み合わされて送受信機214になり得る。アンテナ216は、筐体208に取り付けられ、送受信機214に電気的に結合され得る。ワイヤレスデバイス202は、(図示しない)複数の送信機、複数の受信機、複数の送受信機、および/または複数のアンテナも含み得る。
送信機210は、上で論じられたように、品質推定要求を送信し、様々なAPと接続するように構成され得る。受信機212は、上で論じられたように、品質推定応答を受信し、様々なAPの利用可能性を監視するように構成され得る。
ワイヤレスデバイス202は、ワイヤレスデバイス202の位置を測定するために使用され得る測位モジュール218を含み得る。測位モジュール218は、たとえば、全地球測位システム(GPS)、支援された全地球測位システム(AGPS)、セルラー三角測量、IPに基づく位置認識技法などに基づいて、ワイヤレスデバイス202の位置を測定することができる。位置モジュール218は、受信機212、アンテナ216、プロセッサ204、メモリ206、および/またはDSP220とともに、ワイヤレスデバイス202の位置を測定することができる。ワイヤレスデバイス202は、信号を処理する際に使用するためのデジタル信号プロセッサ(DSP)220も含み得る。DSP220は、送信用のパケットを生成するように構成され得る。いくつかの態様において、パケットは、物理層データユニット(PPDU)を含み得る。
ワイヤレスデバイス202は、いくつかの態様では、ユーザインターフェース222をさらに含み得る。ユーザインターフェース222は、キーパッド、マイクロフォン、スピーカ、および/またはディスプレイを含み得る。ユーザインターフェース222は、ワイヤレスデバイス202のユーザに情報を伝え、かつ/またはユーザから入力を受け取る、任意の要素またはコンポーネントを含み得る。ある実施形態では、ユーザインターフェース222は、ワイヤレスネットワークマップをユーザに表示することができ、ワイヤレスネットワークマップに基づいて異なるAPと接続せよという命令を受け取ることができる。
ワイヤレスデバイス202の様々なコンポーネントは、バスシステム226によって一緒に結合され得る。バスシステム226は、データバスとともに、たとえば、データバスに加えて、電力バス、制御信号バス、状態信号バスを含み得る。ワイヤレスデバイス202のコンポーネントは、何らかの他の機構を使用して、一緒に結合されてよく、または互いに入力を受け入れまたは提供してよいことを、当業者は諒解するだろう。
いくつかの別個のコンポーネントが図2に示されているが、コンポーネントのうち1つまたは複数は、組み合わされても、または共通して実装されてもよいことを当業者は認識するだろう。たとえば、プロセッサ204は、プロセッサ204に関して上で説明された機能を実装するだけでなく、信号検出器218および/またはDSP220に関して上で説明された機能を実装するのにも使用され得る。さらに、図2に示されるコンポーネントの各々は、複数の別個の要素を使用して実装され得る。
参照しやすくするために、ワイヤレスデバイス202がAPとして構成される場合、ワイヤレスデバイス202は今後ワイヤレスデバイス202aと呼ばれる。同様に、ワイヤレスデバイス202がSTAとして構成される場合、ワイヤレスデバイス202は今後ワイヤレスデバイス202sと呼ばれる。ワイヤレス通信システム100中のデバイスは、送信ノードの機能のみ、受信ノードの機能のみ、または、送信ノードと受信ノードの両方の機能を実装することができる。
能動BQE
ある実施形態では、プロセッサ204は、通信リンクの品質を推定するように構成される。たとえば、ワイヤレスデバイス202sがSTA106を含む実施形態では、プロセッサ204は、STA106とサーバ116との間のエンドツーエンドリンクの品質を、BQEを介して推定することができる。ある実施形態では、プロセッサ204は、間欠的にBQEを試みることができる。ある実施形態では、プロセッサ204は、ワイヤレスデバイス202sが通信ネットワークに接続するたびにBQEを試みることができる。たとえば、プロセッサ204は、ワイヤレスデバイス202sがAP104のようなAPと接続するたびにBQEを試みることができる。別の実施形態では、プロセッサ204は、一定の間隔で、または一定ではない間隔でBQEを試みることができる。
BQEを試みる時、プロセッサ204は、サーバ116がBQEのために利用可能かどうかを判定することができる。ある実施形態では、プロセッサ204は、サーバ116から受信されたデバイス管理情報に基づいて、サーバ116がBQEのために利用可能かどうかを判定することができる。サーバ116がBQEのために利用可能であるとプロセッサ204が判定すると、BQE試行は成功したと言える。サーバ116がBQEのために利用可能ではないとプロセッサ204が判定すると、BQE試行は失敗した、または中断したと言える。BQE試行が成功すると、プロセッサ204は、品質推定要求を生成し、品質推定要求を送信し、品質推定応答を受信し、品質推定要求に対する応答に基づいて通信リンクの品質尺度を計算し、品質尺度をサーバに報告し、応答をメモリ206に記憶することができる。サーバ116が関わる帯域幅の品質推定は、「能動BQE」と呼ばれ得る。
ある実施形態では、プロセッサ204は、サーバ116がBQEのために利用可能である時、品質推定要求を生成する。ある実施形態では、品質推定要求は、ハイパーテキスト転送プロトコル(HTTP) GET要求を含み得る。別の実施形態では、品質推定の報告は、量子化された位置を含むHTTP POST要求を含み得る。様々な実施形態では、品質推定要求は他の形態をとり得る。
ある実施形態では、プロセッサ204は、送信機210に、アンテナ216を介して品質推定要求をサーバ116へ送信させ得る。プロセッサは、受信機212を介してサーバ116から応答を受信し得る。応答は、デバイス管理情報を含み得る。ある実施形態では、プロセッサ204は、定期的に、ワイヤレスデバイス202sが新たなワイヤレスネットワークに接続するたびに、または様々な他の基準に基づいて、品質推定要求を生成し送信することができる。
サーバ116から品質推定応答を受信する時、プロセッサ204は、応答に基づいて品質尺度を計算することができる。品質尺度は通信統計を含んでよく、BQE結果と呼ばれ得る。たとえば、プロセッサ204は、ある数のバイトを受信するのにかかる時間を測定し、品質推定応答のサイズを転送時間で除算することによって、通信リンクの速度を推定することができる。バイトは、サーバ116、またはワイヤレスデバイス202に送信している任意の他のホストから、受信され得る。プロセッサ204は、サーバが品質推定要求に応答するのにかかる時間を測定することによって、通信リンクのレイテンシを推定することができる。プロセッサ204は、応答を受信する時にパケットおよび確認応答の送信を監視することによって、通信リンクのパケット遅延変動を推定することができる。プロセッサ204は、応答を受信する時にサーバ116によって再送信されるパケットの数を測定することによって、通信リンクのパケットロス率を推定することができる。
ある実施形態では、プロセッサ204は、能動BQEの間に「srate」尺度を計算することができる。srateは、ある期間の平均速度を測定することによって定量的なユーザ体験を反映する、総合的な尺度として使用され得る。上記の期間は、DNSクエリ時間(利用可能であれば)、TCP接続セットアップ時間、TCPスロースタート時間、およびTCP混雑回避時間を含み得る。プロセッサ204は、BQEカウンタを保持してよく、BQEカウンタは、各能動BQEの開始時にインクリメントされ得る。プロセッサ204は、要求するファイルサイズを計算して、BQE応答がダウンロードされるべき最長の時間を示すBQEタイムアウトを決定することができる。ある実施形態では、プロセッサ204は、AP104の基本サービスセット識別子(BSSID)のような、AP104についての情報を収集する。
ある実施形態では、プロセッサ204は、最大帯域幅(MBW)、往復時間(RTT)、最大セグメントサイズ(MSS)、並列ストリームの数(NPS)、および、TCPスロースタートにおいて費やされる時間に対する混雑回避において費やされる時間の比(cong2slow)のうちの1つまたは複数に基づいて、ファイルサイズを計算することができる。ある実施形態では、サーバ116は、現在の動作ポリシーに従って、STA106が測定を試みるべき最大帯域幅を伝えるために、MBWをSTA106に送信することができる。ある実施形態では、STA106は、インターネット接続検出(ICD)の間に、サーバ116からMBWを受信することができる。図5に関して以下で説明される、ICDの間に、STA116は、AP104がインターネット接続性を提供するかどうかを検出することができる。ある実施形態では、STA106は、受信されたMBWおよび/またはデフォルトのMBWをメモリ206に記憶することができる。
ある実施形態では、プロセッサ204は、BQEトラフィックの量をネットワークのレイテンシ条件に適合させるために、サーバ116へのRTTを推定することができる。ある実施形態では、プロセッサ204は、推定されたRTT値が利用可能ではない場合、デフォルトのRTT値を使用することができる。ある実施形態では、プロセッサ204は、図5に関して以下で説明されるICD送信とともにRTTを推定することができる。ある実施形態では、プロセッサ204は、任意のインターネットホストに基づいてRTTを推定することができる。ある実施形態では、プロセッサ204は、サーバ116が利用可能ではない時のみ、RTT推定のために別のインターネットホストを使用することができる。
ファイルサイズを計算する時、プロセッサ204は、NPS*(2^R-1)*MSS+MBW*T*cong2slowに等しい、総トラフィック値を求めることができる。上で論じられたように、NPSは、BQEのために使用される並列のTCPストリームの数である。Rは、転送プロトコルがピーク速度に達するのに十分なRTTの数である。ある実施形態では、R=max(1, log2(MBW*RTT/(N*MSS))である。MSSは、転送プロトコルによって使用される最大セグメントサイズである。MBWは、BQEが推定を試みる最大帯域幅である。Tは、転送プロトコルがピーク速度に達するのに十分な経過時間である。ある実施形態では、T=RTT*Rである。ある実施形態では、ファイルサイズは、求められた総トラフィック値に少なくとも等しい、最小の許容されたサイズである。ある実施形態では、転送プロトコルはTCPである。
ある実施形態では、プロセッサ204は、TCPスロースタートにおいて費やされる時間に対する混雑回避において費やされる時間の比(cong2slow)、ダウンロードがピーク速度に達するのに十分な経過時間(T)、および/または、DNSクエリが解決するための準備時間(dns_rtt)のうちの1つまたは複数に基づいて、BQEタイムアウトを計算することができる。サーバ116に対するRTT推定値が利用可能である場合、プロセッサ204は、ICD/BQEサーバのためのDNSがローカルDNSキャッシュ中にあると判定することができ、BQEの間にDNSを解決するための時間を準備しなくてよい。したがって、プロセッサ204はdns_rtt=0と設定することができる。サーバ116に対するRTT推定値が利用可能ではない場合、プロセッサ204はdns_rtt=2*RTTと設定することができる。ある実施形態では、プロセッサ204は、BQEタイムアウトを(cong2slow+1)*T+dns_rttと計算することができる。
ある実施形態では、プロセッサ204は、AP104についてのファイルサイズおよび情報に基づいて、BQE要求のためにURIを生成する。ある実施形態では、プロセッサは、BQE要求(たとえば、HTTP送信)のために使用されるソケットをワイヤレスローカルエリアネットワーク(WLAN)インターフェースにバインドする。プロセッサ204は、生成されたURIに対するHTTP GETを介して、BQE要求を提出することができる。ある実施形態では、プロセッサ204は、BQEタイムアウトに基づいてBQEタイマを始動し、srateの推定を開始することができる。
ある実施形態では、プロセッサ204は、ダウンロードされたバイトの数および経過したダウンロード時間に基づいて、srateを計算することができる。ある実施形態では、プロセッサ204は、ネットワークインターフェースレベルにおいて非ローカルホストからダウンロードされたバイトの数を監視することができる。プロセッサ204は、定期的にバイトカウンタを更新することができる。ある実施形態では、プロセッサ204は、無線インターフェースを通じて受信されたバイトのみを監視することができる。
ある実施形態では、プロセッサ204は、HTTP例外がBQE要求の送信の間に発生する場合、BQEが成功したと判定することができる。たとえば、プロセッサ204は、SC_INTERNAL_SERVER_ERROR、SC_NOT_FOUND、SC_SERVICE_UNAVAILABLE、およびSC_UNAUTHORIZEDの1つまたは複数が受信された場合、BQEが成功したと判定することができる。ある実施形態では、プロセッサ204は、BQEがHTTP例外により成功したと判定される場合、計算された速度をメモリ206に記憶しなくてよい。
ある実施形態では、プロセッサ204は、ダウンロードの間、受信されたバイトの数を監視することができる。能動BQEの間に受信されたバイトの数が計算されたファイルサイズ以上になると、プロセッサ204は能動BQEのダウンロードを終了することができる。ある実施形態では、プロセッサ204は、たとえば、ソケット停止またはHTTPライブラリを介して、進行中のHTTP GETを終了することができる。プロセッサ204は、ダウンロードを終了する時、TCP FINおよび/またはTCP RSTパケットを送信することができる。
ある実施形態では、プロセッサ204は、能動BQEの間にBQEタイマを監視することができる。能動BQEの期間がBQEタイムアウト閾値以上であることをBQEタイマが示すと、プロセッサ204は能動BQEのダウンロードを終了することができる。ある実施形態では、プロセッサ204は、たとえば、ソケット停止またはHTTPライブラリを介して、進行中のHTTP GETを終了することができる。プロセッサ204は、TCP FINパケットを送信することができる。様々な実施形態では、BQEタイマは、BQEタイムアウトからカウントダウンしてよく、またはBQEタイムアウトまでカウントアップしてよい。ある実施形態では、プロセッサ204は、受信されたバイトの数とBQEタイマの組合せに基づいて、BQEのダウンロードを停止することができる。
ある実施形態では、プロセッサ204は、能動BQEのダウンロードに基づいて、BQE尺度を計算することができる。プロセッサ204は、BQE尺度をBQE閾値と比較することができる。BQE閾値は、ワイヤレスデバイス202が通信リンクを使用するために通信リンクが満たさなければならない最小限の品質を示し得る。ある実施形態では、プロセッサ204は、BQE尺度がBQE閾値以上である場合、通信リンク112の品質は十分であると判定することができる。ある実施形態では、プロセッサ204は、BQE尺度がBQE閾値未満である場合、通信リンク112の品質は不十分であると判定することができる。
ある実施形態では、プロセッサ204は、BQEの後に、BQE情報の1つまたは複数をサーバ116にアップロードすることができる。たとえば、通信リンク112の品質は十分であるとプロセッサ204が判定すると、プロセッサ204は、計算されたsrateをサーバ116にアップロードすることができる。ある実施形態では、通信リンク112がアクセスをインターネットに提供するとプロセッサ204が判定すると、プロセッサ204は、BQE情報のみをアップロードすることができる。ある実施形態では、通信リンク112の品質が十分である場合、プロセッサ204は、BQE情報をメモリ206に記憶することができる。
ある実施形態では、通信リンク112の品質が不十分であるとプロセッサ204が判定すると、かつ/または、通信リンク112がインターネットアクセスを提供しないとプロセッサ204が判定すると、プロセッサ204は、BQE情報をサーバ116にアップロードすることなくBQE結果を廃棄することができる。ある実施形態では、通信リンク112の品質が不十分である場合、プロセッサ204は、BQE情報をメモリ206に記憶しなくてよい。ある実施形態では、プロセッサ204が、たとえばサービスセットID(SSID)のようなAP104の1つまたは複数の識別子を判定できない場合、プロセッサ204は、BQE情報をメモリ206に記憶しなくてよい。
ある実施形態では、プロセッサ204は、受信機212を介してサーバ116から応答を受信した後、応答をメモリ206に記憶することができる。様々な実施形態では、プロセッサ204は、品質推定以外の種々の目的で、品質推定応答中の情報を使用することができる。たとえば、応答がデバイス管理情報を含む実施形態では、プロセッサ204は、BQEのためにサーバ116を利用できるかどうかを判定する際に後で使用するために、デバイス管理情報をメモリ206に記憶することができる。
受動BQE
ある実施形態では、品質推定は受動BQEである。受動BQE命令は、プロセッサ204が品質推定要求をサーバ116に送信すべきではないことを示す情報を含み得る。サーバ116に連絡することのないBQEは、「受動BQE」と呼ばれ得る。ある実施形態では、プロセッサ204がBQEを試みる時、プロセッサ204は、サーバ116に品質推定要求を送信することなく、送信機210および/または受信機212を通じたネットワークトラフィックを監視することによって、受動BQEを実行することができる。
プロセッサ204が受動BQEを実行する実施形態では、プロセッサ204は、サーバへ、またはサーバからデータを転送するのにかかる時間を測定し、転送されるデータの量を転送時間で除算することによって、リンクの速度を推定することができる。別の実施形態では、プロセッサ204は、サーバが通信に応答するのにかかる時間を測定することによって、サーバとのリンクのレイテンシを推定することができる。別の実施形態では、プロセッサ204は、パケットおよび確認応答の送信を監視することによって、サーバとのリンクのパケット遅延変動を推定することができる。別の実施形態では、プロセッサ204は、品質推定応答をダウンロードする時にサーバによって再送信されるパケットの数を測定することによって、サーバとのリンクのパケットロス率を推定することができる。ある実施形態では、受動BQEの間、プロセッサ204は、BQEの目的で開始されずバックホール112の向こう側の宛先を有する通信のみを、監視および/または測定する。
ある実施形態では、プロセッサ204は、能動BQEに関して上で説明された1つまたは複数の技法を使用して、受動BQEを実行することができる。たとえば、プロセッサ204は、ダウンロード要求をサーバ116に送信することなく、能動BQE技法を実行することができる。サーバ116からダウンロードされたバイトを監視する代わりに、プロセッサ204は、1つまたは複数の他のインターネットサーバからダウンロードされたバイトを監視することができる。プロセッサ204は、上述のサンプリングモード、バーストモード、srate計算などを使用して、ダウンロードされたバイトを監視することができる。ある実施形態では、プロセッサ204は、受動BQEのために非ローカルトラフィックのみを監視することができる。ある実施形態では、プロセッサは、ユニキャストトラフィックのみを監視し、ブロードキャストおよびユニキャストトラフィックを除外することができる。ある実施形態では、プロセッサ204は、srateおよび/またはバーストビットレートを計算する際に、バイトが受信されなかった期間を除外することができる。別の実施形態では、プロセッサ204は、ネットワーク層において受信されたすべてのトラフィックを測定することができ、Nを整数として最大でN個のビットレートサンプルの平均を計算することができる。ある実施形態では、プロセッサ204は、STA106がAP104に接続されると受動BQEを実行することができ、それより後の制限された期間、受動BQEのみを実行することができる。
ある実施形態では、プロセッサ204は、サンプリング間隔およびバースト期間に従って、srateを計算することができる。ある実施形態では、サンプリング間隔は、プロセッサ204がどの程度頻繁にバイトカウンタを確認するかを示し得る。バースト期間は、プロセッサ204がビットレートを計算すべき期間を示し得る。バースト期間は、サンプリング間隔の倍数として規定され得る。ある実施形態では、STA106は、サーバ116からバースト期間および/またはサンプリング間隔を受信することができる。ある実施形態では、STA106は、メモリ206にバースト期間および/またはサンプリング間隔を記憶することができる。
ある実施形態では、各サンプリング間隔において、プロセッサ204は、その間隔で受信されたバイトの数を計算することができる。受信されたバイトの数を定期的に計算する場合、プロセッサ204はサンプリングモードにあり得る。少なくとも1バイトが受信されたとプロセッサ204が判定する場合、プロセッサ204はバーストモードに入り得る。
バーストモードでは、プロセッサ204は、バーストの期間に受信されるバイトの数を計算することができる。プロセッサ204は、バーストの間に受信されたバイトの数をバーストの期間で除算したものと等しい、バーストレートを計算することができる。srate計算の間、プロセッサ204は、1つまたは複数のバーストにわたって受信されたバイトの数の8倍の数を、1つまたは複数のバーストにわたる経過時間で除算したものとして、srateを計算することができる。
ある実施形態では、メモリ206は、事前設定された受動BQE命令を記憶することができる。別の実施形態では、プロセッサ204は、たとえば、BQE結果の履歴、バッテリレベルなどに基づいて、受動BQE命令を生成することができる。別の実施形態では、プロセッサ204は、受信機212を介して受動BQE命令を取り出し、受動BQE命令をメモリ206に記憶することができる。ある実施形態では、プロセッサ204は、品質推定要求に応答して、サーバ116から受動BQE命令を受信することができる。受動BQE命令は、品質推定応答に含まれ得る。様々な実施形態において、プロセッサ204は、能動BQEに加えて、またはその代わりに、受動BQEを実行することができる。たとえば、プロセッサ204が能動BQEを試みて失敗すると、プロセッサ204は受動BQEを実行することができる。別の例として、プロセッサ204は、受動BQE命令を受信することなく、受動BQEを実行するように構成され得る。
図3は、一実装形態による、クエリ応答300の概略図である。クエリ応答300は、図5に関して以下で説明される、BQE応答とICD応答の1つまたは複数を含み得る。示されるように、クエリ応答300は、デバイス管理情報310と、BQEおよび/またはICDデータ320とを含む。デバイス管理情報310およびBQEまたはICDデータ320はある特定の構成で示されるが、他の構成が可能であることを当業者は諒解するだろう。たとえば、デバイス管理情報310およびBQEデータ320の位置は、逆転され、インターリーブされ、追加のデータによって分離されるなどされてよい。さらに、BQEまたはICDデータ320は、デバイス管理情報310がBQEまたはICDに十分である実施形態では、省略されてよい。
群衆情報
BQEおよび/またはICDデータ320は、たとえば、近くのWiFiホットスポットについての情報、チャレンジレスポンスなどのような、ダミーデータおよび/または有用なデータを含み得る。ある実施形態では、品質推定応答は、群衆から得られる情報(「群衆情報」)を含み得る。群衆情報は、特定のAP104に対する1つまたは複数の他のSTA106のBQE結果に基づく、BQE情報を含み得る。群衆情報の少なくとも一部は、他のユーザによって提供されサーバ116上で収集され得る。ある実施形態では、群衆情報は、通信リンク112の品質が十分かどうかを示す数値を含む。別の実施形態では、群衆情報は、通信リンク112に対する平均のBQE尺度を含む。別の実施形態では、群衆情報は、サーバ116に記憶された過去のBQE結果に基づく、1つまたは複数の他の尺度を含み得る。群衆情報が任意の適切な符号化を使用できることを、当業者は諒解するだろう。
ある実施形態では、クエリ応答300は、テキスト、ハイパーテキストマークアップ言語(HTML)、拡張マークアップ言語(XML)、または任意の他のデータフォーマットとしてフォーマットされ得る。一実施形態では、クエリ応答300は次のようにフォーマットされ得る。
<access probability>0.7</access probability>
<quota>9</quota>
<ここから最後までのバイトは無意味である>
Pppppppppppppppppppppppppppppppppppppppppppp….
例示される実施形態では、デバイス管理情報320は、履歴制限330、キャッシュ期間340、要求割当350、アクセス確率因子360、および受動BQE命令370を含む。様々な実施形態では、デバイス管理情報320は、履歴制限330、キャッシュ期間340、要求割当350、アクセス確率因子360、および受動BQE命令370を異なる順序で含んでよく、追加の情報を含んでよく、かつ/または、履歴制限330、キャッシュ期間340、要求割当350、アクセス確率因子360、および受動BQE命令370の1つまたは複数を省略してよい。様々な実施形態では、プロセッサ204は、履歴制限330、キャッシュ期間340、要求割当350、アクセス確率因子360、および受動BQE命令370の1つまたは複数の、単独または組合せに対して動作してよい。
履歴制限
ある実施形態では、クエリ応答300は、履歴制限330を含み得る。履歴制限は、どれだけのBQEおよび/またはICD結果を、プロセッサ204が各通信ネットワークのために記憶すべきかを示す、情報を含み得る。ある実施形態では、履歴制限330は、プロセッサ204がBQEおよび/またはICDを実行する各通信ネットワークに対して、プロセッサ204がメモリ206に記憶すべきBQEおよび/またはICD結果の最大の数を示す、数値を含む。履歴制限330が任意の適切な符号化を使用できることを、当業者は諒解するだろう。様々な実施形態では、デバイス管理情報310は、BQE要求とICD要求の1つもしくは両方に対する別個の履歴制限330、または、BQE要求とICD要求の両方に対する組み合わされた履歴制限330を含み得る。
一実施形態では、プロセッサ204は、たとえばワイヤレスデバイス202sがAP104に接続する時、BQEおよび/またはICDを試みることができる。サーバ116がBQEおよび/またはICDに利用可能かどうかを判定するために、プロセッサは、メモリ206からBQE結果および/またはICD結果の履歴を読み取ることができる。結果の履歴は、BQE結果および/またはICD結果の長期間の履歴を含み得る。ある実施形態では、結果の履歴は、ネットワーク識別子のリスト、対応するBQE結果および/もしくはICD結果、ならびに/または、各結果が記録された時を示す対応するタイムスタンプを含み得る。ネットワーク識別子は、たとえば、SSID、BSSID、ルータの媒体アクセス制御(MAC)アドレス、ネットワークドメイン名などを含み得る。
STA106は、BQE結果およびICD結果に対する別個の結果の履歴を保持してよく、または、組み合わされた結果の履歴を保持してよい。ある実施形態では、結果の履歴(比較的長期間の結果の履歴を記憶する)および結果のキャッシュ(以下で説明されるように、比較的短期間の結果の履歴を記憶する)は、同じデータセット中に含まれ得る。別の実施形態では、結果の履歴および結果のキャッシュは別々に記憶され得る。
プロセッサ204は、現在のネットワーク識別子(すなわち、ワイヤレスデバイス202sが接続されているネットワークのネットワーク識別子)を判定することができる。プロセッサ204は、現在のネットワーク識別子を、メモリ206に記憶されている結果の履歴中のネットワーク識別子と比較することができる。現在のネットワーク識別子がメモリ206に記憶されている結果の履歴中に含まれていない場合、プロセッサ204は、サーバ116がBQEおよび/またはICDに利用可能であると判定することができる。現在のネットワーク識別子がメモリ206に記憶されている結果の履歴中に含まれている場合、プロセッサ204は、ローカルの履歴によってBQEの結論(たとえば、BQE成功またはBQE失敗)が出せなければ、サーバ116がBQEに利用可能であると判定することができる。平均-標準偏差>閾値または平均+標準偏差<閾値であれば、ローカルの履歴によってBQEの結論を出すことができ、前者の場合はBQE成功と結論づけられ、後者の場合はBQE失敗と結論づけられる。前述の式において、平均は、現在のネットワーク識別子に対する過去X回のBQE結果の平均であり、標準偏差は、過去X回の結果にわたる標準偏差であり、閾値は、閾値ビットレートである。
ある実施形態では、Xは履歴制限330に等しい。ある実施形態では、メモリ206は事前設定されたX値を記憶することができる。別の実施形態では、プロセッサ204は、たとえば、BQE結果および/またはICD結果の履歴、バッテリレベルなどに基づいて、X値を生成することができる。別の実施形態では、プロセッサ204は、受信機212を介してX値を取り出し、X値をメモリ206に記憶することができる。ある実施形態では、プロセッサ204は、品質推定要求に応答して、サーバ116からX値を受信することができる。X値は、クエリ応答300に含まれ得る。
ある実施形態では、メモリ206は事前設定された閾値を記憶することができる。別の実施形態では、プロセッサ204は、たとえば、BQE結果の履歴、バッテリレベルなどに基づいて、閾値を生成することができる。別の実施形態では、プロセッサ204は、受信機212を介して閾値を取り出し、閾値をメモリ206に記憶することができる。ある実施形態では、プロセッサ204は、BQEまたはICD要求に応答して、サーバ116から閾値を受信することができる。閾値は、クエリ応答300に含まれ得る。ある実施形態では、プロセッサは、無線を通じて測定された無線パラメータを使用して、現在の閾値を計算することができる。
一実施形態では、プロセッサ204は、乱数または擬似乱数を生成することができる。別の実施形態では、DSP204は、乱数または擬似乱数を生成することができる。乱数または擬似乱数は、0から1の範囲内で生成され得る。プロセッサ204は、生成された数を閾値と比較して、サーバ116がBQEに利用可能かどうかを判定することができる。ある実施形態では、プロセッサ204は、生成された数が閾値未満である場合、サーバ116がBQEに利用可能であると判定することができる。ある実施形態では、プロセッサ204は、生成された数が閾値以下である場合、サーバ116がBQEに利用可能であると判定することができる。
別の実施形態では、プロセッサ204がBQEを試みるたびに、プロセッサ204はカウンタをインクリメントすることができる。プロセッサ204は、メモリ206にカウンタを記憶することができる。プロセッサ204は、カウンタを割当と比較して、サーバ116がBQEに利用可能かどうかを判定することができる。ある実施形態では、プロセッサ204は、カウンタが割当未満である場合、サーバがBQEに利用可能であると判定することができる。
一般に、閾値が高いと、プロセッサ204にBQEをより頻繁に実行させる傾向がある。同様に、閾値が低いと、プロセッサ204にBQEをあまり頻繁に実行させない傾向がある。所与の通信ネットワークに対するBQE結果の履歴が比較的高い場合、プロセッサ204はBQEをあまり頻繁に実行しない傾向がある。所与の通信ネットワークに対するBQE結果の履歴が比較的低い場合、プロセッサ204はBQEをより頻繁に実行する傾向がある。したがって、プロセッサ204は、比較的低品質のネットワークに接続されると、BQEをより頻繁に実行する傾向がある。
別の実施形態では、プロセッサ204は、サーバ116が、BQE結果の履歴のばらつきに関連するある確率を有するBQEに利用可能であると、判定することができる。たとえば、プロセッサ204は、サーバ116が、1-(STDEVX/閾値)という確率を有するBQEに利用可能であると判定することができ、STDEVXは、現在のネットワーク識別子に対する過去X回のBQE結果の標準偏差であり、閾値は閾値ビットレートである。別の実施形態では、プロセッサ204は、サーバ116が、平均(mean)、中央値、平均(average)、標準偏差、ばらつき、最小値、最大値などの、BQE結果の履歴の統計尺度の1つまたは複数に関連するある確率を有するBQEに利用可能であると、判定することができる。
ある実施形態では、メモリ206は事前設定された履歴制限330を記憶することができる。別の実施形態では、プロセッサ204は、たとえば、BQE結果および/またはICD結果の履歴、バッテリレベルなどに基づいて、履歴制限330を生成することができる。別の実施形態では、プロセッサ204は、受信機212を介して履歴制限330を取り出し、履歴制限330をメモリ206に記憶することができる。ある実施形態では、プロセッサ204は、BQE要求および/またはICD要求に応答して、サーバ116から履歴制限330を受信することができる。
キャッシュ期間
ある実施形態では、クエリ応答300は、キャッシュ期間340を含み得る。キャッシュ期間は、プロセッサ204が同じネットワーク接続に対する連続するBQE要求および/またはICD要求の間でどの程度長く待機すべきかを示す情報を含み得る。一実施形態では、たとえば、プロセッサ204は、1時間に1回BQEおよび/またはICDを試みることができる。キャッシュ期間340が3時間のキャッシュ期間を示す場合、プロセッサ204は、サーバ116が最初のBQE試行および/またはICD試行に利用可能であると判定し、次いで、サーバ116が3時間の期間内のその後の2回のBQE試行および/またはICD試行には利用可能ではないと判定し、BQE試行および/またはICD試行は失敗する。
ある実施形態では、キャッシュ期間340は、プロセッサ204が1回よりも多くBQEおよび/またはICDを実行すべきではない期間を示す、数値を含む。キャッシュ期間340は、任意の時間枠(たとえば、1時間、3時間、1日、1週間、1ヶ月など)を含み得る。キャッシュ期間340が任意の適切な符号化を使用できることを、当業者は諒解するだろう。様々な実施形態では、デバイス管理情報310は、BQE要求とICD要求の1つもしくは両方に対する別個のキャッシュ期間340、または、BQE要求とICD要求の両方に対する組み合わされたキャッシュ期間340を含み得る。
一実施形態では、プロセッサ204は、たとえばワイヤレスデバイス202sがAP104に接続する時、BQEおよび/またはICDを試みることができる。サーバ116がBQEおよび/またはICDに利用可能かどうかを判定するために、プロセッサは、メモリ206から結果のキャッシュを読み取ることができる。結果のキャッシュは、BQE結果および/またはICD結果の短期間の履歴を含み得る。ある実施形態では、結果のキャッシュは、ネットワーク識別子のリスト、対応するBQE結果および/もしくはICD結果、ならびに/または、各BQE結果および/またはICD結果が記録された時を示す対応するタイムスタンプを含み得る。ネットワーク識別子は、たとえば、サービスセット識別子(SSID)、基本サービスセット識別子(BSSID)、ルータの媒体アクセス制御(MAC)アドレス、ネットワークドメイン名、セル識別子などを含み得る。
STA106は、BQE結果およびICD結果に対する別個の結果のキャッシュを保持してよく、または、組み合わされた結果のキャッシュを保持してよい。ある実施形態では、結果の履歴(上で説明されたように、非常に長期間の結果の履歴を記憶する)および結果のキャッシュ(比較的短期間の結果の履歴を記憶する)は、同じデータセット中に含まれ得る。別の実施形態では、結果の履歴および結果のキャッシュは別々に記憶され得る。
プロセッサ204は、現在のネットワーク識別子(すなわち、ワイヤレスデバイス202sが接続されているネットワークのネットワーク識別子)を判定することができる。プロセッサ204は、現在のネットワーク識別子を、メモリ206に記憶されている結果のキャッシュ中のネットワーク識別子と比較することができる。現在のネットワーク識別子がメモリ206に記憶されている結果のキャッシュ中に含まれていない場合、プロセッサ204は、サーバ116がBQEおよび/またはICDに利用可能であると判定することができる。現在のネットワーク識別子がメモリ206に記憶されている結果のキャッシュ中に含まれている場合、プロセッサ204は、サーバ116がBQEおよび/またはICDに利用可能ではないと判定することができる。ある実施形態では、現在のネットワーク識別子が結果のキャッシュに含まれ、タイムスタンプがキャッシュ期間340より古い場合、プロセッサ204は、サーバ116がBQEおよび/またはICDに利用可能ではないと判定することができる。サーバ116がBQEおよび/またはICDに利用可能であるとプロセッサ204が判定する場合、プロセッサ204は、本明細書で説明されるようにBQEおよび/またはICDを実行することができる。プロセッサ204は、現在のネットワーク識別子および/またはタイムスタンプとともに、BQE結果および/またはICD結果をBQE結果のキャッシュに記憶することができる。
ある実施形態では、メモリ206は事前設定されたキャッシュ期間340を記憶することができる。別の実施形態では、プロセッサ204は、たとえば、BQE結果および/またはICD結果の履歴、バッテリレベルなどに基づいて、キャッシュ期間340を生成することができる。別の実施形態では、プロセッサ204は、受信機212を介してキャッシュ期間340を取り出し、キャッシュ期間340をメモリ206に記憶することができる。ある実施形態では、プロセッサ204は、BQE要求および/またはICD要求に応答して、サーバ116からキャッシュ期間340を受信することができる。
要求割当
ある実施形態では、クエリ応答300は、要求割当350を含み得る。要求割当350は、プロセッサ204がBQEおよび/またはICDに対するサーバ116の利用可能性を判定する時、BQE試行および/またはICD試行が成功するであろうかどうかを示す情報を含み得る。具体的には、要求割当350は、ある期間内に成功するであろうBQE試行および/またはICD試行の数に対する制限を示し得る。一実施形態では、たとえば、プロセッサ204は、1日に10回、BQEおよび/またはICDを試みることができる。要求割当350が1日に5回というBQEおよび/またはICDの制限を示す場合、プロセッサ204は、サーバ116が最初の5回のBQE試行および/またはICD試行に利用可能であると判定し、次いで、サーバ116がその後の5回のBQE試行には利用可能ではないと判定し、BQE試行および/またはICD試行は失敗する。
ある実施形態では、要求割当350は、所与の期間内に成功するであろうBQE試行および/またはICD試行の数に対する制限を示す数値を含む。要求割当350は明示的に期間を特定してよく、または期間は暗黙的であってよい。要求期間は、任意の時間枠(たとえば、1時間、1日、1週間、1ヶ月など)、動的な期間(たとえば、APごと、再起動ごと、ワイヤレスセッションごと)、またはこれらの任意の組合せを含み得る。要求割当350が任意の適切な符号化を使用できることを、当業者は諒解するだろう。様々な実施形態では、デバイス管理情報310は、BQE要求とICD要求の1つもしくは両方に対する別個の要求割当350、または、BQE要求とICD要求の両方に対する組み合わされた要求割当350を含み得る。
一実施形態では、プロセッサ204は、プロセッサ204がBQEおよび/またはICDに対するサーバの利用可能性を判定するたびに、カウンタをインクリメントすることができる。プロセッサ204は、メモリ206にカウンタを記憶することができる。プロセッサ204は、カウンタを要求割当350と比較して、サーバ116がBQEおよび/またはICDに利用可能かどうかを判定することができる。ある実施形態では、プロセッサ204は、カウンタが要求割当350未満である場合、サーバがBQEおよび/またはICDに利用可能であると判定することができる。別の実施形態では、プロセッサ204は、カウンタが要求割当350以下である場合、サーバがBQEおよび/またはICDに利用可能であると判定することができる。様々な実施形態では、プロセッサ204は、サーバ116が前述の条件の各々においてBQEおよび/またはICDに対して利用可能ではないと判定することができる。
プロセッサ204は、デバイス管理情報に従ってカウンタをリセットすることができる。たとえば、プロセッサ204は、1時間ごと、1週間に1回、1ヶ月ごと、ワイヤレスデバイス202sが異なるAPに接続するたび、ワイヤレスデバイス202sが再起動するたびなどに、カウンタをリセットすることができる。ある実施形態では、プロセッサ204は、要求割当350とアクセス確率因子の組合せに基づいて、サーバ116がBQEおよび/またはICDに利用可能かどうかを判定することができる。たとえば、要求割当350が超えられていないとプロセッサ204が判定すると、プロセッサは、アクセス確率因子に関係なく、サーバ116がBQEおよび/またはICDに利用可能であると判定することができる。一方、要求割当350が超えられているとプロセッサ204が判定すると、プロセッサは、上で説明されたように、アクセス確率因子に基づいて、サーバ116がBQEおよび/またはICDに利用可能かどうかを判定することができる。
ある実施形態では、メモリ206は事前設定された要求割当350を記憶することができる。別の実施形態では、プロセッサ204は、たとえば、BQE結果および/またはICD結果の履歴、バッテリレベルなどに基づいて、要求割当350を生成することができる。別の実施形態では、プロセッサ204は、受信機212を介して要求割当350を取り出し、要求割当350をメモリ206に記憶することができる。ある実施形態では、プロセッサ204は、BQE要求および/またはICD要求に応答して、サーバ116から要求割当350を受信することができる。
アクセス確率因子
ある実施形態では、クエリ応答300は、アクセス確率因子360を含み得る。アクセス確率因子360は、プロセッサ204がBQEおよび/またはICDに対するサーバ116の利用可能性を判定する時、BQE試行および/またはICD試行がどの程度頻繁に成功するであろうかを示す情報を含み得る。具体的には、アクセス確率因子360は、BQE試行および/またはICD試行が成功するであろう確率を示し得る。一実施形態では、たとえば、プロセッサ204は、ワイヤレスデバイス202sが送信機214を介してAP104と接続するたびにBQEおよび/またはICDを試みることができる。アクセス確率因子360が50%の成功率を示す場合、プロセッサ204は、サーバ116が概ね時間の50%の間利用可能ではないと判定し、BQE試行および/またはICD試行は失敗する。
ある実施形態では、アクセス確率因子360は、0から1までの数値を含み、0は、BQEおよび/またはICDの成功の確率が0%であることを示し、1は、BQEおよび/またはICDの成功の確率が100%であることを示す。別の実施形態では、アクセス確率因子360は、0から100までの数値を含み、0は、BQEおよび/またはICDの成功の確率が0%であることを示し、100は、BQEおよび/またはICDの成功の確率が100%であることを示す。別の実施形態では、アクセス確率因子360は、X回ごとにBQE試行および/またはICD試行が成功するであろうことを示す、数値Xを含む。アクセス確率因子360が任意の適切な符号化を使用できることを、当業者は諒解するだろう。様々な実施形態では、デバイス管理情報310は、BQE要求とICD要求の1つもしくは両方に対する別個のアクセス確率因子360、または、BQE要求とICD要求の両方に対する組み合わされたアクセス確率因子360を含み得る。
一実施形態では、プロセッサ204は、乱数または擬似乱数を生成することができる。別の実施形態では、DSP204は、乱数または擬似乱数を生成することができる。乱数または擬似乱数は、アクセス確率因子360の可能な値の範囲内で生成され得る。プロセッサ204は、生成された数をアクセス確率因子360と比較して、サーバ116がBQEおよび/またはICDに利用可能かどうかを判定することができる。ある実施形態では、プロセッサ204は、生成された数がアクセス確率因子360未満である場合、サーバ116がBQEおよび/またはICDに利用可能であると判定することができる。ある実施形態では、プロセッサ204は、生成された数がアクセス確率因子360以下である場合、サーバ116がBQEおよび/またはICDに利用可能であると判定することができる。ある実施形態では、プロセッサ204は、生成された数がアクセス確率因子360より大きい場合、サーバ116がBQEおよび/またはICDに利用可能であると判定することができる。ある実施形態では、プロセッサ204は、生成された数がアクセス確率因子360以上である場合、サーバ116がBQEおよび/またはICDに利用可能であると判定することができる。様々な実施形態では、プロセッサ204は、サーバ116が前述の条件の各々においてBQEおよび/またはICDに対して利用可能ではないと判定することができる。
別の実施形態では、プロセッサ204がBQEおよび/またはICDを試みるたびに、プロセッサ204はカウンタをインクリメントすることができる。プロセッサ204は、メモリ206にカウンタを記憶することができる。プロセッサ204は、カウンタをアクセス確率因子360と比較して、サーバ116がBQEおよび/またはICDに利用可能かどうかを判定することができる。ある実施形態では、プロセッサ204は、カウンタがアクセス確率因子360の偶数倍である場合、サーバがBQEおよび/またはICDに利用可能であると判定することができる。別の実施形態では、プロセッサ204は、カウンタがアクセス確率因子360の逆数の偶数倍である場合、サーバがBQEおよび/またはICDに利用可能であると判定することができる。様々な実施形態では、プロセッサ204は、サーバ116が前述の条件の各々においてBQEおよび/またはICDに対して利用可能ではないと判定することができる。
ある実施形態では、メモリ206は事前設定されたアクセス確率因子360を記憶することができる。別の実施形態では、プロセッサ204は、たとえば、BQE結果および/またはICD結果の履歴、バッテリレベルなどに基づいて、アクセス確率因子360を生成することができる。別の実施形態では、プロセッサ204は、受信機212を介してアクセス確率因子360を取り出し、アクセス確率因子360をメモリ206に記憶することができる。ある実施形態では、プロセッサ204は、BQE要求および/またはICD要求に応答して、サーバ116からアクセス確率因子360を受信することができる。
図4は、通信リンク品質の充足性を判定する方法を示すフローチャート400である。明瞭性のために、フローチャート400は、図1に示される通信ネットワーク100および図2に示されるデバイス202sに関して以下で説明される。しかしながら、フローチャート400の方法は任意の適切なデバイスとともに使用され得ることを、当業者は諒解するだろう。一実装形態では、プロセッサ204は、デバイス202sの機能要素を制御して以下で説明される機能を実行するための、コードの1つまたは複数のセットを実行する。様々な実施形態では、本明細書で説明されるステップは、異なる順序で実行されてよく、または省略されてよく、追加のステップが追加されてよい。
ある実施形態では、STA106は、新しいAP104に接続する時、フローチャート400に従い得る。STA106は、フローチャート400の結果に基づいて、通信リンク112の品質が十分かどうかを判定することができる。通信リンク112の品質が不十分であることをフローチャート400が示す場合、STA106は通信のためにAP104を使用することができず、代わりに別の無線および/またはAPを使用することができる。たとえば、STA106は、WiFi APのBQEが低い品質を示す場合、WiFi無線からセルラー無線に切り替えることができる。一方、通信リンク112の品質が十分であることをフローチャート400が示す場合、STA106は通信のためにAP104を使用することができる。
まず、ブロック405において、BQEが有効かどうかをプロセッサ204が判定する。プロセッサ204は、メモリ206に記憶された値を確認することによって、BQEが有効かどうかを判定することができる。ある実施形態では、STA106は、サーバ116から、BQEが有効にされるべきであるかどうかについての情報を受信することができる。別の実施形態では、STA106は、サービスプロバイダから、BQEが有効にされるべきであるかどうかについての情報を受信することができる。BQEが無効であるとプロセッサ204が判定すると、プロセッサ204は、ブロック410において、通信リンク112の品質が十分であると判定することができる。一方、BQEが有効であるとプロセッサ204が判定すると、プロセッサ204はブロック415へ続き得る。
次に、ブロック415において、プロセッサ204は上で説明されたような受動BQEを開始することができる。プロセッサ204は、バックグラウンドで受動BQEを実行することができ、STA106と1つまたは複数のインターネットホストとの間の偶発的な通信を監視する。受動BQEが実行されている間に、プロセッサ204はブロック420へ続き得る。
次いで、ブロック420において、プロセッサ204は、上で説明されたように、AP104の短期間の履歴を確認することができる。たとえば、プロセッサは、メモリ206からBQE結果のキャッシュを読み取ることができる。ある実施形態では、現在のネットワーク識別子がBQE結果のキャッシュに含まれており、タイムスタンプがBQEキャッシュ期間よりも古い場合、プロセッサ204は、短期間の履歴が新しくかつ良好であると判定することができる。短期間の履歴が新しくかつ良好である場合、プロセッサ204は、ブロック410において、通信リンク112の品質が十分であると判定することができる。一方、短期間の履歴が新しく良好ではないとプロセッサ204が判定すると、プロセッサ204はブロック425へ続き得る。
その後、ブロック425において、プロセッサ204は、上で説明されたように、AP104の長期間の履歴を確認することができる。たとえば、プロセッサは、メモリ206からBQE結果の履歴を読み取ることができる。ある実施形態では、プロセッサ204は、平均-標準偏差>閾値である場合、長期間の履歴が高信頼度であり良好であるかどうかを判定することができ、平均は、現在のネットワーク識別子に対する過去X回のBQE結果の平均であり、標準偏差は、過去X回の結果にわたる標準偏差であり、閾値は、閾値ビットレートである。長期間の履歴が高信頼度で新しい場合、プロセッサ204は、ブロック410において、通信リンク112の品質が十分であると判定することができる。一方、長期間の履歴が高信頼度で新しくはないとプロセッサ204が判定すると、プロセッサ204はブロック430へ続き得る。
続いて、ブロック430において、プロセッサ204は、ICD応答とICDタイムアウトのいずれかを待機することができる。図5に関して以下で説明されるように、STA106は、ICD応答とともに、サーバ116から群衆情報を受信することができる。STA106が、ICD要求をサーバ116に送信した後のタイムアウト期間内にICD応答を受信しない場合、ICDはタイムアウトし得る。ICDが成功した後、またはタイムアウトした後、プロセッサ204は、ブロック435に進む。
次に、ブロック435において、プロセッサ204は、サーバ116から受信された群衆情報を読み取る。通信リンク112の品質が十分であることを群衆情報が示す場合、プロセッサ204は、ブロック410に進み得る。通信リンク112の品質が十分であることを群衆情報が示さない場合、または、STA106がサーバ116から群衆情報を受信するのに成功しなかった場合、プロセッサ204はブロック440へ続く。
次いで、ブロック440において、プロセッサ204は、ブロック415で開始された受動BQEの結果を確認する。プロセッサ204は、受動BQE結果を、通信リンク112の十分な品質を示す閾値品質値と比較する。受動BQE結果がBQE閾値以上であるとプロセッサ204が判定する場合、プロセッサはブロック410へ続く。一方、受動BQE結果がBQE閾値未満であるとプロセッサ204が判定する場合、または受動BQEが失敗した場合、プロセッサはブロック445へ続く。
その後、ブロック445において、プロセッサ204は再び、上で説明されたように、AP104の長期間の履歴を確認することができる。たとえば、プロセッサは、メモリ206からBQE結果の履歴を読み取ることができる。ある実施形態では、プロセッサ204は、平均+標準偏差<閾値である場合、長期間の履歴が高信頼度かつ劣悪であると判定することができ、平均は、現在のネットワーク識別子に対する過去X回のBQE結果の平均であり、標準偏差は、過去X回の結果にわたる標準偏差であり、閾値は、閾値ビットレートである。長期間の履歴が高信頼度かつ劣悪である場合、プロセッサ204は、ブロック450において、通信リンク112の品質が不十分であると判定することができる。一方、長期間の履歴が高信頼度かつ劣悪ではないとプロセッサ204が判定すると、プロセッサ204はブロック455へ続き得る。
続いて、ブロック455において、プロセッサ204は再び、サーバ116から受信された群衆情報を読み取る。通信リンク112の品質が不十分であることを群衆情報が示す場合、プロセッサ204は、ブロック450に進み得る。通信リンク112の品質が不十分であることを群衆情報が示さない場合、または、STA106がサーバ116から群衆情報を受信するのに成功しなかった場合、プロセッサ204はブロック460へ続く。
次に、ブロック460において、プロセッサ204は、たとえば、アクセス確率因子、品質推定割当などのような負荷管理技法に関して上で説明されたように、サーバ116がBQEに利用可能かどうかを判定する。サーバ116がBQEに利用可能ではないとプロセッサ204が判定すると、プロセッサ204は、ブロック410において、通信リンク112の品質が不十分であると判定することができる。一方、サーバ116がBQEに利用可能であるとプロセッサ204が判定すると、プロセッサ204はブロック465において能動BQEへと続き得る。
次いで、ブロック465において、プロセッサ204は上で説明されたような能動BQEを実行する。ある実施形態では、プロセッサ204は、能動BQE結果を、通信リンク112の十分な品質を示す閾値品質値と比較する。能動BQE結果がBQE閾値以上であるとプロセッサ204が判定する場合、プロセッサはブロック410へ続く。一方、能動BQE結果がBQE閾値未満であるとプロセッサ204が判定する場合、または能動BQEが失敗した場合、プロセッサはブロック450へ続く。
インターネット接続検出(ICD)
ある実施形態では、STA106は、STA106がAP104に接続する時、通信リンク112のインターネット接続性を検出することができる。AP104がインターネットに対するアクセスを提供するかどうかを判定するために、STA106は、インターネット接続検出(ICD)を実行することができる。ある実施形態では、STA106は、STA106がAP104に接続するたびに、ICDを実行することができる。ICDは、APが、インターネット要求に対して不正に応答し得るいわゆる「captive portal」であるかどうかを、たとえば、要求されたページの代わりに支払要求ウェブページを提供することによって、STA106が検出することを可能にし得る。STA106は、限られたインターネット接続をAPが提供するかどうかを検出することができる。
図5は、アクセスポイント104のインターネット接続性を判定する方法を示すフローチャート500である。明瞭性のために、フローチャート500は、図1に示される通信ネットワーク100および図2に示されるデバイス202sに関して以下で説明される。しかしながら、フローチャート500の方法は任意の適切なデバイスとともに使用され得ることを、当業者は諒解するだろう。一実装形態では、プロセッサ204は、デバイス202sの機能要素を制御して以下で説明される機能を実行するための、コードの1つまたは複数のセットを実行する。様々な実施形態では、本明細書で説明されるステップは、異なる順序で実行されてよく、または省略されてよく、追加のステップが追加されてよい。
まず、ブロック505において、ICDが有効かどうかをプロセッサ204が判定する。プロセッサ204は、メモリ206に記憶された値を確認することによって、ICDが有効かどうかを判定することができる。ある実施形態では、STA106は、サーバ116から、ICDが有効にされるべきであるかどうかについての情報を受信することができる。別の実施形態では、STA106は、サーバプロバイダから、ICDが有効にされるべきであるかどうかについての情報を受信することができる。ICDが無効であるとプロセッサ204が判定すると、プロセッサ204は、ブロック510において、AP104がインターネット接続性を提供すると判定することができる。一方、ICDが有効であるとプロセッサ204が判定すると、プロセッサ204はブロック515へ続き得る。
次に、ブロック515において、プロセッサ204は、AP104の短期間の履歴を確認することができる。ある実施形態では、ICDの短期間の履歴は、上で説明された、BQEの短期間の履歴の1つまたは複数の態様を含み得る。AP104がインターネット接続性を提供するかどうかを判定するために、プロセッサは、メモリ206からICD結果のキャッシュを読み取ることができる。ICD結果のキャッシュは、ICD結果の短期間の履歴を含み得る。ある実施形態では、ICD結果のキャッシュは、ネットワーク識別子のリスト、対応するICD結果、および/または、各ICD結果が記録された時を示す対応するタイムスタンプを含み得る。ネットワーク識別子は、たとえば、サービスセット識別子(SSID)、基本サービスセット識別子(BSSID)、ルータの媒体アクセス制御(MAC)アドレス、ネットワークドメイン名などを含み得る。
プロセッサ204は、現在のネットワーク識別子(すなわち、ワイヤレスデバイス202sが接続されているネットワークのネットワーク識別子)を判定することができる。プロセッサ204は、現在のネットワーク識別子を、メモリ206に記憶されているICD結果のキャッシュ中のネットワーク識別子と比較することができる。現在のネットワーク識別子がメモリ206に記憶されているICD結果のキャッシュ中に含まれていない場合、プロセッサ204は、AP104がインターネット接続性を提供すると判定することができない。現在のネットワーク識別子がメモリ206に記憶されているICD結果のキャッシュ中に含まれている場合、プロセッサ204は、記憶されているICD結果に基づいて、AP104がインターネット接続性を提供すると判定することができる。ある実施形態では、現在のネットワーク識別子がICD結果のキャッシュに含まれており、タイムスタンプがICDキャッシュ期間よりも古くない場合、プロセッサ204は、AP104がインターネット接続性を提供すると判定することができる。サーバ116がICDに利用可能であるとプロセッサ204が判定する場合、プロセッサ204は、本明細書で説明されるようにICDを実行することができる。プロセッサ204は、現在のネットワーク識別子および/またはタイムスタンプとともに、ICD結果をICD結果のキャッシュに記憶することができる。
ある実施形態では、メモリ206は事前設定されたICDキャッシュ期間を記憶することができる。別の実施形態では、プロセッサ204は、たとえば、ICD結果の履歴、バッテリレベルなどに基づいて、ICDキャッシュ期間を生成することができる。別の実施形態では、プロセッサ204は、受信機212を介してICDキャッシュ期間を取り出し、ICDキャッシュ期間をメモリ206に記憶することができる。ある実施形態では、プロセッサ204は、品質推定要求またはICD要求に応答して、サーバ116からICDキャッシュ期間を受信することができる。ICDキャッシュ期間は、品質推定応答またはICD応答に含まれ得る。
プロセッサ204が、短期間の履歴に基づいて、AP104がインターネット接続性を提供すると判定すると、プロセッサ204はブロック510へ続き得る。一方、AP104がインターネット接続性を提供するとプロセッサ204が判定しない場合、プロセッサ204はブロック520へ続く。たとえば、AP104がインターネット接続性を提供しないことを最近のICD結果が示すとプロセッサ204が判定する場合、プロセッサ204はブロック520へ続き得る。ある実施形態では、プロセッサ204は、短期間の履歴の結果に関係なく、事前設定された確率でブロック520へ続き得る。
次いで、ブロック520において、プロセッサは、メモリ206からICD結果の履歴を読み取ることができる。ICD結果の履歴は、ICD結果の長期間の履歴を含み得る。ある実施形態では、ICD結果の履歴は、ネットワーク識別子のリスト、対応するICD結果、および/または、各ICD結果が記録された時を示す対応するタイムスタンプを含み得る。ネットワーク識別子は、たとえば、SSID、BSSID、ルータの媒体アクセス制御(MAC)アドレス、ネットワークドメイン名などを含み得る。ある実施形態では、ICD結果の履歴(比較的長期間の結果の履歴を記憶する)およびICD結果のキャッシュ(比較的短期間の結果の履歴を記憶する)は、同じデータセット中に含まれ得る。別の実施形態では、ICD結果の履歴およびICD結果のキャッシュは別々に記憶され得る。
プロセッサ204は、現在のネットワーク識別子(すなわち、ワイヤレスデバイス202sが接続されているネットワークのネットワーク識別子)を判定することができる。プロセッサ204は、現在のネットワーク識別子を、メモリ206に記憶されているICD結果の履歴中のネットワーク識別子と比較することができる。現在のネットワーク識別子がメモリ206に記憶されているICD結果の履歴中に含まれていない場合、プロセッサ204は、AP104がインターネット接続性を提供すると判定することができない。
現在のネットワーク識別子がメモリ206に記憶されているICD結果の履歴中に含まれている場合、プロセッサ204は、AP104がインターネット接続性を提供することを最新のICD結果が示す場合、AP104がインターネット接続性を提供すると判定することができる。ある実施形態では、AP104に対するすべての記憶されたICD結果が、AP104がインターネット接続性を提供することを示す場合、プロセッサ204は、AP104がインターネット接続性を提供すると判定することができる。ある実施形態では、プロセッサ204は、AP104がICD結果の履歴の平均に関連する確率でインターネット接続性を提供すると、判定することができる。
一実施形態では、プロセッサ204は、乱数または擬似乱数を生成することができる。別の実施形態では、DSP204は、乱数または擬似乱数を生成することができる。乱数または擬似乱数は、0から1の範囲内で生成され得る。プロセッサ204は、生成された数を確率と比較して、AP104がインターネット接続性を提供するかどうかを判定することができる。ある実施形態では、プロセッサ204は、生成された数が確率未満である場合、AP104がインターネット接続性を提供すると判定することができる。ある実施形態では、プロセッサ204は、生成された数が確率以下である場合、AP104がインターネット接続性を提供すると判定することができる。
別の実施形態では、プロセッサ204がICDを試みるたびに、プロセッサ204はカウンタをインクリメントすることができる。プロセッサ204は、メモリ206にカウンタを記憶することができる。プロセッサ204は、カウンタを確率と比較して、AP104がインターネット接続性を提供するかどうかを判定することができる。ある実施形態では、プロセッサ204は、カウンタが確率の偶数倍である場合、AP104がインターネット接続性を提供すると判定することができる。別の実施形態では、プロセッサ204は、カウンタが確率の逆数の偶数倍である場合、AP104がインターネット接続性を提供すると判定することができる。
一般に、閾値が高いと、プロセッサ204にICDをより頻繁に実行させる傾向がある。同様に、閾値が低いと、プロセッサ204にICDをあまり頻繁に実行させない傾向がある。所与の通信ネットワークに対するICD結果の履歴が比較的高い場合、プロセッサ204はICDをあまり頻繁に実行しない傾向がある。所与の通信ネットワークに対するICD結果の履歴が比較的低い場合、プロセッサ204はICDをより頻繁に実行する傾向がある。したがって、プロセッサ204は、比較的低品質のネットワークに接続されると、ICDをより頻繁に実行する傾向がある。
ある実施形態では、メモリ206は事前設定されたICD履歴制限を記憶することができる。別の実施形態では、プロセッサ204は、たとえば、ICD結果の履歴、バッテリレベルなどに基づいて、ICD履歴制限を生成することができる。別の実施形態では、プロセッサ204は、受信機212を介してICD履歴制限を取り出し、ICD履歴制限をメモリ206に記憶することができる。ある実施形態では、プロセッサ204は、品質推定要求またはICD要求に応答して、サーバ116からICD履歴制限を受信することができる。ICD履歴制限は、品質推定応答またはICD応答に含まれ得る。
プロセッサ204が、長期間の履歴に基づいて、AP104がインターネット接続性を提供すると判定すると、プロセッサ204はブロック510へ続き得る。一方、AP104がインターネット接続性を提供するとプロセッサ204が判定しない場合、プロセッサ204はブロック525へ続く。ある実施形態では、プロセッサ204は、長期間の履歴の結果に関係なく、事前設定された確率でブロック520へ続き得る。ある実施形態では、プロセッサ204は、長期間の履歴の結果に関係なく、事前設定された確率でブロック510へ続き得る。
その後、ブロック525において、プロセッサ204は、たとえば、アクセス確率因子、品質推定割当などのような負荷管理技法に関して上で説明されたように、サーバ116がICDに利用可能かどうかを判定する。様々な負荷管理技法がBQEに関して上で説明されたが、BQE負荷管理技法の1つまたは複数の態様が、ICD負荷管理に適用され得る。たとえば、STA106は、BQE応答またはICD応答を介してサーバ116からICD割当を受信することができる。別の例として、STA106は、BQE応答またはICD応答を介してサーバ116からICDに対するアクセス確率因子を受信することができる。サーバ116がICDに利用可能ではないとプロセッサ204が判定すると、プロセッサ204は、ブロック510において、AP104がインターネット接続性を提供すると判定することができる。一方、サーバ116がICDに利用可能であるとプロセッサ204が判定すると、プロセッサ204はブロック530においてICDへと続き得る。
続いて、ブロック530において、プロセッサ204がICDを開始する。ある実施形態では、プロセッサ204は、ICD要求を生成することができる。プロセッサ204は、たとえば、HTTPを介してサーバ116にICD要求を送信することができる。ある実施形態では、プロセッサ204は、ICD HTTP送信をWLANインターフェースにバインドする。プロセッサ204は、行われたICD要求の数を記録し、その数をメモリ206に記憶することができる。
ある実施形態では、プロセッサ204は、ICD要求が送信される先のICD URIを生成することができる。ICD URIは、STA106、AP104、および/または一時的な識別子の識別情報を含み得る。一時的な識別子は、たとえば、AP104のBSSIDのようなキーを含み得る。一時的な識別子は、ランダムデータまたは擬似ランダムデータを含み得る。一時的な識別子は、STA106、AP104、通信システム100、および/またはサーバ116の識別子に基づき得る。ある実施形態では、一時的な識別子は「トークン」と呼ばれ得る。ICD要求は、サーバ116に対するICD URIのためのICD HTTP GETを含み得る。
プロセッサ204は、サーバ116からの応答を、ある時間待機することができる。その時間は、ICDタイムアウト値であり得る。ICD応答がICDタイムアウトより前に受信された場合、プロセッサ204は応答にタイムスタンプを与えることができる。ICD応答が予測された位置にキーを含む場合、プロセッサ204は、ブロック510において、AP104がインターネット接続性を提供すると判定することができる。
ICD応答がICDタイムアウト内に受信されない場合、プロセッサは、ブロック535において、AP104がインターネット接続性を提供しないと判定することができる。ICD応答がキーを含まない場合、プロセッサは、APが制限された接続性を提供すると判定することができる。ある実施形態では、プロセッサ204は、サーバ116のIPアドレスを決定するために、DNS要求を生成し送信することができる。DNS要求が失敗した場合、プロセッサ204は、ブロック510において、AP104がインターネットアクセスを提供しないと判定することができる。ICDが成功するか失敗するかに関係なく、プロセッサ204は、ICD結果をメモリ206に記憶することができる。
図6は、通信リンクの特性を判定する方法のある実施形態を示すフローチャート600である。フローチャート600の方法は、図2に関して上で論じられたワイヤレス通信システム100、および図2に関して上で論じられたワイヤレスデバイス202を参照して本明細書では説明されるが、フローチャート600の方法は、本明細書で説明された別のデバイス、または任意の他の適切なデバイスによって実施され得ることを、当業者は諒解するだろう。ある実施形態では、フローチャート600中のステップは、少なくとも一部、たとえば、プロセッサ204(図2)および/またはDSP220(図2)のようなプロセッサまたはコントローラによって、場合によってはメモリ206(図2)とともに実行され得る。フローチャート600の方法は、特定の順序を参照して本明細書では説明されるが、様々な実施形態では、本明細書のブロックは異なる順序で実行されてよく、または省略されてよく、かつ追加のブロックが追加されてよい。
まず、ブロック610において、STA106が、通信リンク112を通じて、第1の通信に対する第1の要求をサーバ116に送信する。第1の通信は、通信リンク112の適格性を判定するためのものであり得る。様々な実施形態では、第1の要求は、図2〜図4に関して上で論じられたような、BQE要求およびICD要求の1つまたは複数を含み得る。第1の通信は、図2〜図4に関して上で論じられたような、BQE応答およびICD応答の1つまたは複数を含み得る。
次に、ブロック620において、STA106は、第1の要求に応答して、サーバ116から第1の通信を受信する。サーバ116は、通信リンク112を通じて第1の通信を送信することができる。STA106は、受信機212を介して第1の通信を受信することができる。
次いで、ブロック630において、STA106は、第1の通信に基づいて、通信リンク112の適格性を判定する。たとえば、第1の通信がBQE応答を含む実施形態では、STA106は、図4に関して上で論じられたように、フローチャート400の1つまたは複数の態様に従って、通信リンク112の適格性を判定することができる。第1の通信がICD応答を含む実施形態では、STA106は、図5に関して上で論じられたように、フローチャート500の1つまたは複数の態様に従って、通信リンク112の適格性を判定することができる。
その後、ブロック640において、STA106は、複数のネットワークの判定された適格性を特定する情報を記憶する。たとえば、STA106は、AP104と接続しているネットワークとともに、通信リンク112の判定された適格性を特定する情報を記憶することができる。ある実施形態では、STA106は、図2に関して上で説明された短期間および/または長期間のBQEの履歴に従って、判定された適格性を特定する情報を記憶することができる。別の実施形態では、STA106は、図5に関して上で説明された短期間および/または長期間のICDの履歴に従って、判定された適格性を特定する情報を記憶することができる。
その後、ブロック650において、STAが、通信リンク112を通じて、第2の通信に対する第2の要求をサーバ116へ選択的に送信する。第2の通信は、通信リンク112の適格性を判定するためのものであり得る。様々な実施形態では、第2の要求は、図2〜図4に関して上で論じられたような、BQE要求およびICD要求の1つまたは複数を含み得る。第2の通信は、図2〜図4に関して上で論じられたような、BQE応答およびICD応答の1つまたは複数を含み得る。
STA106は、短期間の履歴、長期間の履歴、群衆情報、受動BQE結果、および、たとえば、アクセス確率因子、品質推定割当などのような負荷管理技法のうちの1つまたは複数に基づいて、第2の要求を送信するかどうかを判定することができる。たとえば、第2の通信がBQE応答を含む実施形態では、STA106は、図4に関して上で論じられたように、フローチャート400の1つまたは複数の態様に従って、通信リンク112の適格性を判定することができる。第2の通信がICD応答を含む実施形態では、STA106は、図5に関して上で論じられたように、フローチャート500の1つまたは複数の態様に従って、通信リンク112の適格性を判定することができる。
図7は、本発明の例示的な実施形態による、通信リンクの特性を判定するためのシステム700の機能ブロック図である。システムは、図7に示される簡略化されたシステム700よりも多くのコンポーネントを有し得ることを、当業者は諒解するだろう。示されるシステム700は、特許請求の範囲内の実装形態のいくつかの顕著な特徴を説明するのに有用なコンポーネントのみを含む。
通信リンクの特性を判定するためのシステム700は、モバイルデバイスにおいて、通信リンクの適格性を判定するための第1の通信に対する第1の要求をサーバに送信するための手段710と、第1の要求に応答して、通信リンクを通じてサーバから第1の通信を受信するための手段720と、第1の通信に基づいて通信リンクの適格性を判定するための手段730と、複数のネットワークの判定された適格性を特定する情報を記憶するための手段740と、通信リンクを通じて、第2の通信に対する第2の要求を選択的に送信するための手段750とを含む。
ある実施形態では、モバイルデバイスにおいて、通信リンクの適格性を判定するための第1の通信に対する第1の要求をサーバに送信するための手段710は、ブロック610(図6)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、モバイルデバイスにおいて、通信リンクの適格性を判定するための第1の通信に対する第1の要求をサーバに送信するための手段710は、プロセッサ204(図2)、メモリ206(図2)、DSP220(図2)、および送信機210(図2)の1つまたは複数によって実装され得る。
ある実施形態では、第1の要求に応答して、通信リンクを通じてサーバから第1の通信を受信するための手段720は、ブロック620(図6)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、第1の要求に応答して、通信リンクを通じてサーバから第1の通信を受信するための手段720は、プロセッサ204(図2)、メモリ206(図2)、DSP220(図2)、および受信機212(図2)の1つまたは複数によって実装され得る。
ある実施形態では、第1の通信に基づいて通信リンクの適格性を判定するための手段730は、ブロック630(図6)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、第1の通信に基づいて通信リンクの適格性を判定するための手段730は、プロセッサ204(図2)、メモリ206(図2)、およびDSP220(図2)の1つまたは複数によって実装され得る。
ある実施形態では、複数のネットワークの判定された適格性を特定する情報を記憶するための手段740は、ブロック640(図6)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、複数のネットワークの判定された適格性を特定する情報を記憶するための手段740は、プロセッサ204(図2)、メモリ206(図2)、およびDSP220(図2)の1つまたは複数によって実装され得る。
ある実施形態では、通信リンクを通じて、第2の通信に対する第2の要求を選択的に送信するための手段750は、ブロック650(図6)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、通信リンクを通じて、第2の通信に対する第2の要求を選択的に送信するための手段750は、プロセッサ204(図2)、メモリ206(図2)、DSP220(図2)、および送信機210(図2)の1つまたは複数によって実装され得る。
図8は、アクティブな通信リンクの特性を判定する方法のある実施形態を示すフローチャート800である。フローチャート800の方法は、図2に関して上で論じられたワイヤレス通信システム100、および図2に関して上で論じられたワイヤレスデバイス202を参照して本明細書では説明されるが、フローチャート800の方法は、本明細書で説明された別のデバイス、または任意の他の適切なデバイスによって実施され得ることを、当業者は諒解するだろう。ある実施形態では、フローチャート800中のステップは、少なくとも一部、たとえば、プロセッサ204(図2)および/またはDSP220(図2)のようなプロセッサまたはコントローラによって、場合によってはメモリ206(図2)とともに実行され得る。フローチャート800の方法は、特定の順序を参照して本明細書では説明されるが、様々な実施形態では、本明細書のブロックは異なる順序で実行されてよく、または省略されてよく、かつ追加のブロックが追加されてよい。
まず、ブロック810において、STA106が、アクティブな通信リンクを介してサーバ116にアクセスすることの正当性を判定する。アクティブな通信リンクはたとえば、通信リンク112であり得る。STA106は、第1のアクセス制約に基づいて、サーバ116にアクセスすることの正当性を判定する。ある実施形態では、第1のアクセス制約は、図3に関して上で論じられた、デバイス管理情報310を含み得る。たとえば、第1のアクセス制約は、アクセス確率因子330(図3)、品質推定割当340、BQEキャッシュ期間350、BQE履歴制限360、受動BQE命令370、および/または、ワイヤレスデバイス202sがBQEをどのようにまたはいつ実行すべきかを示す他の情報を含み得る。様々な実施形態において、第1のアクセス制約は、たとえば、ICD割当、ICDキャッシュ期間、ICD履歴制限360、および/または、STA106がICDをどのようにまたはいつ実行すべきかを示す他の情報のような、図5に関して上で論じられたような、類似したICDデバイス管理情報を含み得る。
プロセッサ204は、図2に関して上で論じられたように、サーバ116がBQEおよび/またはICDに利用可能かどうかを判定することができる。ある実施形態では、STA106は、通信ネットワーク100(図1)のような通信ネットワークに接続する。ある実施形態では、プロセッサ202は、送信機210に、ワイヤレス202sをAP104と接続させる。ある実施形態では、プロセッサ204は、ワイヤレスデバイス202sが通信ネットワークに接続するたびにBQEおよび/またはICDを試みることができる。たとえば、プロセッサ204は、ワイヤレスデバイス202sがAP104のようなAPと接続するたびにBQEおよび/またはICDを試みることができる。
次いで、ブロック820において、STA106は、サーバへのアクセスが可能である場合、サーバ116からの通信に対する要求を送信する。様々な実施形態では、要求は、図2〜図4に関して上で論じられたような、BQE要求およびICD要求の1つまたは複数を含み得る。送信機210は、アンテナ216を介して、要求をサーバ116に送信することができる。通信は、図2〜図4に関して上で論じられたような、BQE応答およびICD応答の1つまたは複数を含み得る。
その後、ブロック830において、STA106は、要求に応答して、通信リンクを通じてサーバ116から通信を受信する。ある実施形態では、通信リンクは、バックホール通信リンク112を含み得る。通信は、図2〜図4に関して上で論じられたような、BQE応答およびICD応答の1つまたは複数を含み得る。したがって、サーバ116からの通信は、アクセス確率因子330(図3)、品質推定割当340、BQEキャッシュ期間350、BQE履歴制限360、受動BQE命令370、および/または、ワイヤレスデバイス202sがBQEをどのようにまたはいつ実行すべきかを示す他の情報を含み得る。様々な実施形態において、通信は、たとえば、ICD割当、ICDキャッシュ期間、ICD履歴制限360、および/または、STA106がICDをどのようにまたはいつ実行すべきかを示す他の情報のような、図5に関して上で論じられたような、類似したICDデバイス管理情報を含み得る。受信機212は、アンテナ216を介して、通信をサーバ116から受信することができる。
その後、ブロック840において、STA106は、サーバ116からの通信に基づいて、通信リンク112の特性を判定する。様々な実施形態では、特性は、BQE結果およびICD結果の1つまたは複数を含み得る。特性は、サーバ116からの応答に基づく品質尺度を含み得る。たとえば、プロセッサ204は、サーバ116から応答をダウンロードするのにかかる時間を測定し、品質推定応答のサイズを転送時間で除算することによって、通信リンクの速度を推定することができる。プロセッサ204は、サーバが品質推定要求に応答するのにかかる時間を測定することによって、通信リンクのレイテンシを推定することができる。プロセッサ204は、応答を受信する時にパケットおよび確認応答の送信を監視することによって、通信リンクのパケット遅延変動を推定することができる。プロセッサ204は、応答を受信する時にサーバ116によって再送信されるパケットの数を測定することによって、通信リンクのパケットロス率を推定することができる。
ある実施形態では、プロセッサ204は、メモリ206に特性を記憶することができる。プロセッサ204は、サーバからの通信に基づいて、第1のアクセス制約を更新することができる。たとえば、応答がデバイス管理情報310を含む実施形態では、プロセッサ204は、サーバ116が利用できるかどうかを判定する際に後で使用するために、デバイス管理情報310をメモリ206に記憶することができる。
図9は、本発明の例示的な実施形態による、アクティブな通信リンクの特性を判定するためのシステム900の機能ブロック図である。システムは、図9に示される簡略化されたシステム900よりも多くのコンポーネントを有し得ることを、当業者は諒解するだろう。示されるシステム900は、特許請求の範囲内の実装形態のいくつかの顕著な特徴を説明するのに有用なコンポーネントのみを含む。
アクティブな通信リンクの特性を判定するためのシステム900は、第1のアクセス制約に基づいて、アクティブな通信リンクを介してサーバにアクセスすることの正当性を判定するための手段910と、アクセスすることが正当である場合にサーバからの通信に対する要求を送信するための手段920と、要求に応答して、通信リンクを通じてサーバから通信を受信するための手段930と、サーバからの通信に基づいて通信リンクの特性を判定するための手段940とを含む。
ある実施形態では、第1のアクセス制約に基づいて、アクティブな通信リンクを介してサーバにアクセスすることの正当性を判定するための手段910は、ブロック810(図8)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、第1のアクセス制約に基づいて、アクティブな通信リンクを介してサーバにアクセスすることの正当性を判定するための手段910は、プロセッサ204(図2)、メモリ206(図2)、およびDSP220(図2)の1つまたは複数によって実装され得る。
ある実施形態では、アクセスすることが正当である場合にサーバからの通信に対する要求を送信するための手段920は、ブロック820(図8)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、アクセスすることが正当である場合にサーバからの通信に対する要求を送信するための手段920は、プロセッサ204(図2)、メモリ206(図2)、DSP220(図2)、および送信機210(図2)の1つまたは複数によって実装され得る。
ある実施形態では、要求に応答して、通信リンクを通じてサーバから通信を受信するための手段930は、ブロック830(図8)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、要求に応答して、通信リンクを通じてサーバから通信を受信するための手段930は、プロセッサ204(図2)、メモリ206(図2)、DSP220(図2)、および受信機212(図2)の1つまたは複数によって実装され得る。
ある実施形態では、サーバからの通信に基づいて通信リンクの特性を判定するための手段940は、ブロック840(図8)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、サーバからの通信に基づいて通信リンクの特性を判定するための手段940は、プロセッサ204(図2)、メモリ206(図2)、およびDSP220(図2)の1つまたは複数によって実装され得る。
図10は、アクセスポイントを通じたサーバへの接続性を検出する方法のある実施形態を示すフローチャート1000である。フローチャート1000の方法は、図2に関して上で論じられたワイヤレス通信システム100、および図2に関して上で論じられたワイヤレスデバイス202を参照して本明細書では説明されるが、フローチャート1000の方法は、本明細書で説明された別のデバイス、または任意の他の適切なデバイスによって実施され得ることを、当業者は諒解するだろう。ある実施形態では、フローチャート1000中のステップは、少なくとも一部、たとえば、プロセッサ204(図2)および/またはDSP220(図2)のようなプロセッサまたはコントローラによって、場合によってはメモリ206(図2)とともに実行され得る。フローチャート1000の方法は、特定の順序を参照して本明細書では説明されるが、様々な実施形態では、本明細書のブロックは異なる順序で実行されてよく、または省略されてよく、かつ追加のブロックが追加されてよい。
まず、ブロック1010において、STA106が、トークンを含む接続検出要求を生成する。ある実施形態では、接続検出要求は、図5に関して上で説明されたICD要求を含み得る。トークンは、図5に関して上で説明された一時的な識別子を含み得る。たとえば、トークンは、たとえば、AP104のBSSIDのようなキーを含み得る。トークンは、たとえば、リダイレクトまたはスプーフィングされた、ログインプロンプト、支払プロンプトなどのような、「captive portal」情報と、有効なICD応答とを、STA106が区別することを可能にし得る。
ある実施形態では、STA106は、通信ネットワーク100(図1)のような通信ネットワークに接続する。ある実施形態では、プロセッサ202は、送信機210に、ワイヤレス202sをAP104と接続させる。ある実施形態では、プロセッサ204は、ワイヤレスデバイス202sが通信ネットワークに接続するたびにICDを試みることができる。たとえば、プロセッサ204は、ワイヤレスデバイス202sがAP104のようなAPと接続するたびにICDを試みることができる。
次いで、ブロック1120において、STA106が、たとえばサーバ116のようなサーバに宛てられた接続検出要求を、AP104を介して送信する。STA106は、バックホール通信リンク112を通じて、送信機210を介して接続検出要求を送信することができる。接続検出要求は、サーバ116に対するICD URIのためのICD HTTP GETを含み得る。
次に、ブロック1130において、STA106は、サーバ116からの接続検出応答を待機する。ある実施形態では、接続検出応答は、図2〜図5に関して上で説明されたICD応答を含み得る。ある実施形態では、プロセッサ204は、サーバ116からの応答を、ある時間待機することができる。その時間は、ICDタイムアウト値であり得る。ICD応答がICDタイムアウト内に受信されない場合、プロセッサは、AP104がインターネット接続性を提供しないと判定することができる。
その後、ブロック1140において、STA106が、受信された接続検出応答がトークンを含むかどうかを判定する。ある実施形態では、ICD応答が予測された位置にキーを含む場合、プロセッサ204は、AP104がインターネット接続性を提供すると判定することができる。ICD応答が異常である(たとえば、トークンがない)場合、プロセッサは、AP104がインターネット接続性を提供しないと判定することができる。ある実施形態では、プロセッサ204は、サーバ116のIPアドレスを決定するために、DNS要求を生成し送信することができる。DNS要求が失敗した場合、プロセッサ204は、ブロック710において、AP104がインターネットアクセスを提供しないと判定することができる。ICDが成功するか失敗するかに関係なく、プロセッサ204は、ICD結果をメモリ206に記憶することができる。
図11は、本発明の例示的な実施形態による、アクセスポイントを通じたサーバへの接続性を検出するためのシステム1100の機能ブロック図である。システムは、図11に示される簡略化されたシステム1100よりも多くのコンポーネントを有し得ることを、当業者は諒解するだろう。示されるシステム1100は、特許請求の範囲内の実装形態のいくつかの顕著な特徴を説明するのに有用なコンポーネントのみを含む。
アクセスポイントを通じたサーバへの接続性を検出するためのシステム1100は、ワイヤレスデバイスにおいて、トークンを含む接続検出要求を生成するための手段1110と、ワイヤレスデバイスにおいて、サーバに宛てられた接続検出要求をアクセスポイントを介して送信するための手段1120と、サーバからの接続検出応答を待機するための手段1130と、受信された接続検出応答がトークンを含むかどうかを判定するための手段1140とを含む。
ある実施形態では、ワイヤレスデバイスにおいて、トークンを含む接続検出要求を生成するための手段1110は、ブロック1010(図10)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、ワイヤレスデバイスにおいて、トークンを含む接続検出要求を生成するための手段1110は、プロセッサ204(図2)、メモリ206(図2)、およびDSP220(図2)の1つまたは複数によって実装され得る。
ある実施形態では、ワイヤレスデバイスにおいて、サーバに宛てられた接続検出要求をアクセスポイントを介して送信するための手段1120は、ブロック1020(図10)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、ワイヤレスデバイスにおいて、サーバに宛てられた接続検出要求をアクセスポイントを介して送信するための手段1120は、プロセッサ204(図2)、メモリ206(図2)、DSP220(図2)、および送信機210(図2)の1つまたは複数によって実装され得る。
ある実施形態では、サーバからの接続検出応答を待機するための手段1130は、ブロック1030(図10)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、サーバからの接続検出応答を待機するための手段1130は、プロセッサ204(図2)、メモリ206(図2)、およびDSP220(図2)の1つまたは複数によって実装され得る。
ある実施形態では、受信された接続検出応答がトークンを含むかどうかを判定するための手段1140は、ブロック1040(図10)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、受信された接続検出応答がトークンを含むかどうかを判定するための手段1140は、プロセッサ204(図2)、メモリ206(図2)、およびDSP220(図2)の1つまたは複数によって実装され得る。
図12は、ワイヤレスネットワークにおいて通信する方法のある実施形態を示すフローチャート1200である。フローチャート1200の方法は、図2に関して上で論じられたワイヤレス通信システム120、および図2に関して上で論じられたワイヤレスデバイス202を参照して本明細書では説明されるが、フローチャート1200の方法は、本明細書で説明された別のデバイス、または任意の他の適切なデバイスによって実施され得ることを、当業者は諒解するだろう。ある実施形態では、フローチャート1200中のステップは、少なくとも一部、たとえば、プロセッサ204(図2)および/またはDSP220(図2)のようなプロセッサまたはコントローラによって、場合によってはメモリ206(図2)とともに実行され得る。フローチャート1200の方法は、特定の順序を参照して本明細書では説明されるが、様々な実施形態では、本明細書のブロックは異なる順序で実行されてよく、または省略されてよく、かつ追加のブロックが追加されてよい。
まず、ブロック1210において、STA106が、少なくとも1つの通信リンクのネットワーク接続性を、許容可能または許容不可能であると判定する。様々な実施形態では、STA106は、バックホール通信リンク112、またはAP104と関連する別のリンクのネットワーク接続性を、それぞれ図4および図5に関して上で説明されたフローチャート400および/または500に従って、許容可能または許容不可能であると判定することができる。STA106は、たとえば、WiFiリンク、セルラーリンク、Bluetooth(登録商標)リンクなどのような、図1には示されない1つまたは複数の利用可能な通信リンクおよび/またはAPの各々のネットワーク接続性を判定することができる。
たとえば、STA106は、本明細書で説明されるようにICDを実行し、通信リンクのネットワーク接続性を、AP104がインターネット接続性を提供する場合には許容可能であると判定し、AP104がインターネット接続性を提供しない場合には許容不可能であると判定することができる。ある実施形態では、STA106は、本明細書で説明されるようにBQEを実行し、通信リンクのネットワーク接続性を、BQE結果が閾値を超える場合には許容可能であると判定し、BQE結果が閾値を超えない場合には許容不可能であると判定することができる。
次に、ブロック1220において、STA106は、許容不可能なネットワーク接続性を有する1つまたは複数の通信リンクを通じて、データの第1のサブセットを送信する。ある実施形態では、STA106は、許容不可能なネットワーク接続性を有する各通信リンクを通じて、データの第1のサブセットを送信する。AP104が「captive portal」である状況では、許容不可能な通信リンクを通じたデータの第1のサブセットの送信は、ユーザが、ログインプロンプト、支払プロンプトなどにアクセスすることを可能にし得る。許容不可能な通信リンクを通じたデータの第1のサブセットの送信はさらに、STA106が、ネットワーク接続性の変化を検出することを可能にし得る。プロセッサ204は、送信機210を介してデータの第1のサブセットを送信することができる。
次いで、ブロック1230において、STA106は、許容可能なネットワーク接続性を有する1つまたは複数の通信リンクを通じて、データの第2のサブセットを送信する。ある実施形態では、STA106は、許容可能なネットワーク接続性を有する各通信リンクを通じて、データの第1のサブセットを送信する。許容可能な通信リンクを通じたデータの第2のサブセットの通信は、ネットワークアクセスの信頼性と品質を向上させ得る。様々な実施形態において、データの第1のサブセットおよび第2のサブセットは、重なることがあり、または重ならないことがある。ある実施形態では、STA106は、たとえば、許容不可能な接続性を有する通信リンクのような1つまたは複数の通信リンクのネットワーク接続性を、連続的に、定期的に、または間欠的に再判定することができる。プロセッサ204は、送信機210を介してデータの第2のサブセットを送信することができる。
図13は、本発明の例示的な実施形態による、ワイヤレスネットワークにおいて通信するためのシステム1300の機能ブロック図である。システムは、図13に示される簡略化されたシステム1300よりも多くのコンポーネントを有し得ることを、当業者は諒解するだろう。示されるシステム1300は、特許請求の範囲内の実装形態のいくつかの顕著な特徴を説明するのに有用なコンポーネントのみを含む。
ワイヤレスネットワークにおいて通信するためのシステム1300は、少なくとも1つの通信リンクのネットワーク接続性を許容可能または許容不可能であると判定するための手段1310と、許容不可能なネットワーク接続性を有する通信リンクを通じてデータの第1のサブセットを送信するための手段1320と、許容可能なネットワーク接続性を有する通信リンクを通じてデータの第2のサブセットを送信するための手段1330とを含む。
ある実施形態では、少なくとも1つの通信リンクのネットワーク接続性を許容可能または許容不可能であると判定するための手段1310は、ブロック1210(図12)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、少なくとも1つの通信リンクのネットワーク接続性を許容可能または許容不可能であると判定するための手段1310は、プロセッサ204(図2)、メモリ206(図2)、DSP220(図2)、送信機210、および受信機212の1つまたは複数によって実装され得る。
ある実施形態では、許容不可能なネットワーク接続性を有する通信リンクを通じてデータの第1のサブセットを送信するための手段1320は、ブロック1220(図12)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、許容不可能なネットワーク接続性を有する通信リンクを通じてデータの第1のサブセットを送信するための手段1320は、プロセッサ204(図2)、メモリ206(図2)、DSP220(図2)、および送信機210の1つまたは複数によって実装され得る。
ある実施形態では、許容可能なネットワーク接続性を有する通信リンクを通じてデータの第2のサブセットを送信するための手段1330は、ブロック1230(図12)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、許容可能なネットワーク接続性を有する通信リンクを通じてデータの第2のサブセットを送信するための手段1330は、プロセッサ204(図2)、メモリ206(図2)、DSP220(図2)、および送信機210の1つまたは複数によって実装され得る。
図14は、通信リンクの特性を判定する別の方法のある実施形態を示すフローチャート1400である。フローチャート1400の方法は、図2に関して上で論じられたワイヤレス通信システム100、および図2に関して上で論じられたワイヤレスデバイス202を参照して本明細書では説明されるが、フローチャート1400の方法は、本明細書で説明された別のデバイス、または任意の他の適切なデバイスによって実施され得ることを、当業者は諒解するだろう。ある実施形態では、フローチャート1400中のステップは、少なくとも一部、たとえば、プロセッサ204(図2)および/またはDSP220(図2)のようなプロセッサまたはコントローラによって、場合によってはメモリ206(図2)とともに実行され得る。フローチャート1400の方法は、特定の順序を参照して本明細書では説明されるが、様々な実施形態では、本明細書のブロックは異なる順序で実行されてよく、または省略されてよく、かつ追加のブロックが追加されてよい。
まず、ブロック1410において、STA106が、通信リンク112を通じて、通信に対する要求をサーバ116に送信する。通信は、通信リンク112の適格性を判定するためのものであり得る。様々な実施形態では、要求は、図2〜図4に関して上で論じられたような、BQE要求およびICD要求の1つまたは複数を含み得る。通信は、図2〜図4に関して上で論じられたような、BQE応答およびICD応答の1つまたは複数を含み得る。
次に、ブロック1420において、STA106は、要求に応答して、サーバ116から通信を受信する。サーバ116は、通信リンク112を通じて通信を送信することができる。STA106は、受信機212を介して第1の通信を受信することができる。
次いで、ブロック1430において、STA106は、トラフィックと通信を受信するための時間との少なくとも1つの目標量を計算する。ある実施形態では、STAは、図2に関して上で論じられたように、BQEを実行する間にダウンロードすべきデータの目標量を計算することができる。ある実施形態では、STAは、図2に関して上で論じられたように、BQE応答がダウンロードされるべき最長の時間を示すBQEタイムアウトを計算することができる。STA106は、要求されるファイルサイズを計算することができ、ダウンロードされるべきデータの目標量は、要求されるファイルサイズより小さくてよい。
ある実施形態では、STA106は、サーバへの往復時間を推定することができる。STA106は、サーバからファイルを要求し、応答時間を測定することができる。STA106は、転送プロトコルによって使用されるセグメントサイズを推定することができる。STA106は、最大推定速度を決定することができる。STA106は、使用する転送フローの数を決定することができる。STA106は、転送プロトコルがスロースタートモードで費やす時間に対する、転送プロトコルが混雑回避モードで費やす時間の第1の比、転送フローの数、推定される往復時間、推定されるセグメントサイズ、および最大推定速度のうちの1つまたは複数に基づいて、目標を計算することができる。
その後、ブロック1440において、STA106は、計算された時間または受信されたトラフィックの量に基づいて、通信を終了する。たとえば、STA106は、BQEの間に受信されるトラフィックの量を監視し、受信されたトラフィックの量がトラフィックの計算された目標量を超える場合、BQE応答の受信を終了することができる。別の例では、STA106は、BQE応答を転送するのにかかる時間を測定することができ、測定された時間が計算された目標の時間を超える場合、BQE応答の受信を終了することができる。したがって、STA106は、BQE応答が完全にダウンロードされる前に、BQE応答の転送を終了することができる。
その後、ブロック1450において、STA106は、サーバ116からの通信に基づいて、通信リンク112の特性を判定する。様々な実施形態では、特性は、BQE結果およびICD結果の1つまたは複数を含み得る。特性は、サーバ116からの応答に基づく品質尺度を含み得る。たとえば、プロセッサ204は、サーバ116から応答をダウンロードするのにかかる時間を測定し、品質推定応答のサイズを転送時間で除算することによって、通信リンクの速度を推定することができる。プロセッサ204は、サーバが品質推定要求に応答するのにかかる時間を測定することによって、通信リンクのレイテンシを推定することができる。プロセッサ204は、応答を受信する時にパケットおよび確認応答の送信を監視することによって、通信リンクのパケット遅延変動を推定することができる。プロセッサ204は、応答を受信する時にサーバ116によって再送信されるパケットの数を測定することによって、通信リンクのパケットロス率を推定することができる。
ある実施形態では、プロセッサ204は、メモリ206に特性を記憶することができる。プロセッサ204は、サーバからの通信に基づいて、第1のアクセス制約を更新することができる。たとえば、応答がデバイス管理情報310を含む実施形態では、プロセッサ204は、サーバ116が利用できるかどうかを判定する際に後で使用するために、デバイス管理情報310をメモリ206に記憶することができる。
図15は、本発明の例示的な実施形態による、通信リンクの特性を判定するための別のシステム1500の機能ブロック図である。システムは、図15に示される簡略化されたシステム1500よりも多くのコンポーネントを有し得ることを、当業者は諒解するだろう。示されるシステム1500は、特許請求の範囲内の実装形態のいくつかの顕著な特徴を説明するのに有用なコンポーネントのみを含む。
通信リンクの特性を判定するためのシステム1500は、モバイルデバイスにおいて、サーバからの通信に対する要求を送信するための手段1510と、要求に応答して、通信リンクを通じてサーバから通信を受信するための手段1520と、トラフィックと通信を受信するための時間との少なくとも1つの目標量を計算するための手段1530と、計算された時間または受信されたトラフィックの量に基づいて通信を終了するための手段1540と、サーバからの通信に基づいて通信リンクの特性を判定するための手段1550とを含む。
ある実施形態では、モバイルデバイスにおいて、サーバからの通信に対する要求を送信するための手段1510は、ブロック1410(図14)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、モバイルデバイスにおいて、サーバからの通信に対する要求を送信するための手段1510は、プロセッサ204(図2)、メモリ206(図2)、DSP220(図2)、および送信機210(図2)の1つまたは複数によって実装され得る。
ある実施形態では、要求に応答して、通信リンクを通じてサーバから通信を受信するための手段1520は、ブロック1420(図14)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、要求に応答して、通信リンクを通じてサーバから通信を受信するための手段1520は、プロセッサ204(図2)、メモリ206(図2)、DSP220(図2)、および受信機212(図2)の1つまたは複数によって実装され得る。
ある実施形態では、トラフィックと通信を受信するための時間との少なくとも1つの目標量を計算するための手段1530は、ブロック1430(図14)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、トラフィックと通信を受信するための時間との少なくとも1つの目標量を計算するための手段1530は、プロセッサ204(図2)、メモリ206(図2)、およびDSP220(図2)の1つまたは複数によって実装され得る。
ある実施形態では、計算された時間または受信されたトラフィックの量に基づいて通信を終了するための手段1540は、ブロック1440(図14)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、計算された時間または受信されたトラフィックの量に基づいて通信を終了するための手段1540は、プロセッサ204(図2)、メモリ206(図2)、DSP220(図2)、および送信機210(図2)の1つまたは複数によって実装され得る。
ある実施形態では、サーバからの通信に基づいて通信リンクの特性を判定するための手段1550は、ブロック1550(図14)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、サーバからの通信に基づいて通信リンクの特性を判定するための手段1550は、プロセッサ204(図2)、メモリ206(図2)、およびDSP220(図2)の1つまたは複数によって実装され得る。
図16は、通信リンクの品質を推定するある実施形態を示すフローチャート1600である。フローチャート1600の方法は、図2に関して上で論じられたワイヤレス通信システム100、および図2に関して上で論じられたワイヤレスデバイス202を参照して本明細書では説明されるが、フローチャート1600の方法は、本明細書で説明された別のデバイス、または任意の他の適切なデバイスによって実施され得ることを、当業者は諒解するだろう。ある実施形態では、フローチャート1600中のステップは、少なくとも一部、たとえば、プロセッサ204(図2)および/またはDSP220(図2)のようなプロセッサまたはコントローラによって、場合によってはメモリ206(図2)とともに実行され得る。フローチャート1600の方法は、特定の順序を参照して本明細書では説明されるが、様々な実施形態では、本明細書のブロックは異なる順序で実行されてよく、または省略されてよく、かつ追加のブロックが追加されてよい。
まず、ブロック1610において、STA106が、ネットワークインターフェースを介して複数のデータユニットを受信する。たとえば、STA106は、受信機212を介してデータユニットを受信することができる。ある実施形態では、STA106は、ローカルエリアネットワークから、たとえば、AP104に接続される別のSTA106などから、データユニットの一部分を受信することができる。したがって、ローカルエリアネットワークから受信されるデータユニットは、バックホール通信リンク112の品質または接続性を示さないことがある。STA106は、たとえば、ネットワーク114のような非ローカルネットワークから、データユニットの別の部分を受信することができる。非ローカルネットワークから受信されるデータユニットは、バックホール通信リンク112の品質または接続性を示すことがある。
次に、ブロック1620において、STA106が、ネットワークインターフェースにおいて、受信されたデータユニットを監視する。ある実施形態では、STA106は、受信機212において受信されたバイトをカウントすることができ、ソースアドレス、ソースサブネット、または、受信されたデータユニットに関連する他のネットワーク情報を決定することができる。ある実施形態では、サーバ116は、通信リンク112を介して、1つまたは複数のデータユニットをSTA106に送信することができる。同時に、AP104に接続される別のSTAは、1つまたは複数のデータユニットをSTA106に送信することができる。
次いで、ブロック1630において、STA106は、ネットワークインターフェースを介して受信された各データユニットに対して、データユニットがローカルエリアネットワークから生じたか非ローカルネットワークから生じたかを判定する。たとえば、プロセッサ204は、受信機212のサブネットおよび受信されたパケットのサブネットを決定することができる。プロセッサ204は、パケットのサブネットが受信機212のサブネットと一致する場合、受信されたパケットがローカルエリアネットワークから生じたと判定することができる。プロセッサ204は、パケットのサブネットが受信機212のサブネットと一致しない場合、受信されたパケットが非ローカルエリアネットワークから生じたと判定することができる。
様々な実施形態では、プロセッサ204は、限定はされないが、ヘッダ情報(たとえば、ソースIP、ソースサブネット、有効期間(TTL)、マルチキャストまたはブロードキャスト属性など)およびペイロード情報(たとえば、サーバ116によりペイロードに含められる識別情報など)を含む、非ローカルトラフィックからローカルトラフィックを区別するために、パケット中の他の識別情報を使用することができる。ローカルトラフィックはまた、ホップの数によって定義されてよく、または、ソースへの経路をたどることによって決定されてよい。
その後、ブロック1650において、STA106は、非ローカルネットワークから生じたデータユニットに基づいて、通信リンク112の特性を判定する。STA106は、特性を判定する時、非ローカルデータユニットのみを考慮することができる。STA106は、別の通信リンクの特性を判定する時、ローカルデータユニットを別に考慮することができる。
様々な実施形態では、特性は、BQE結果およびICD結果の1つまたは複数を含み得る。特性は、サーバ116からの応答に基づく品質尺度を含み得る。たとえば、プロセッサ204は、サーバ116から応答をダウンロードするのにかかる時間を測定し、品質推定応答のサイズを転送時間で除算することによって、通信リンクの速度を推定することができる。プロセッサ204は、サーバが品質推定要求に応答するのにかかる時間を測定することによって、通信リンクのレイテンシを推定することができる。プロセッサ204は、応答を受信する時にパケットおよび確認応答の送信を監視することによって、通信リンクのパケット遅延変動を推定することができる。プロセッサ204は、応答を受信する時にサーバ116によって再送信されるパケットの数を測定することによって、通信リンクのパケットロス率を推定することができる。
ある実施形態では、プロセッサ204は、メモリ206に特性を記憶することができる。プロセッサ204は、サーバからの通信に基づいて、第1のアクセス制約を更新することができる。たとえば、応答がデバイス管理情報310を含む実施形態では、プロセッサ204は、サーバ116が利用できるかどうかを判定する際に後で使用するために、デバイス管理情報310をメモリ206に記憶することができる。
ある実施形態では、STA106は、ネットワークインターフェースが利用可能になると、転送速度の測定を開始することができる。たとえば、STA106は、AP104に接続した後、受動BQEを実行することができる。STA106は、ネットワークインターフェースが利用可能になると、タイマを始動することができ、タイマが閾値に達した後、測定を停止することができる。測定の間、STA106は、ネットワークインターフェースを介して受信されたバイトをカウントし、ローカルネットワークから生じたバイトを廃棄し、またはそれを他の方法でカウントから除外することができる。STA106は、図2に関して上で説明されたように、1つまたは複数のバーストレートのサンプルを計算することができる。STA106は、多数の最高のバーストレートのサンプルのレートを平均することができる。
図17は、本発明の例示的な実施形態による、通信リンクの品質を推定するためのシステム1700の機能ブロック図である。システムは、図17に示される簡略化されたシステム1700よりも多くのコンポーネントを有し得ることを、当業者は諒解するだろう。示されるシステム1700は、特許請求の範囲内の実装形態のいくつかの顕著な特徴を説明するのに有用なコンポーネントのみを含む。
通信リンクの品質を推定するためのシステム1700は、ネットワークインターフェースを介してデータユニットを受信するための手段1710と、ネットワークインターフェースにおいて受信されたデータユニットを監視するための手段1720と、ネットワークインターフェースを介して受信された各データユニットに対して、データユニットがローカルエリアネットワークから生じたか非ローカルネットワークから生じたかを判定するための手段1730と、非ローカルネットワークから生じたデータユニットに基づいて通信リンクの特性を計算するための手段1740とを含む。
ある実施形態では、ネットワークインターフェースを介してデータユニットを受信するための手段1710は、ブロック1610(図16)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、ネットワークインターフェースを介してデータユニットを受信するための手段1710は、プロセッサ204(図2)、メモリ206(図2)、DSP220(図2)、および受信機212(図2)の1つまたは複数によって実装され得る。
ある実施形態では、ネットワークインターフェースにおいて受信されたデータユニットを監視するための手段1720は、ブロック1620(図16)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、ネットワークインターフェースにおいて受信されたデータユニットを監視するための手段1720は、プロセッサ204(図2)、メモリ206(図2)、およびDSP220(図2)の1つまたは複数によって実装され得る。
ある実施形態では、ネットワークインターフェースを介して受信された各データユニットに対して、データユニットがローカルエリアネットワークから生じたか非ローカルネットワークから生じたかを判定するための手段1730は、ブロック1630(図16)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、ネットワークインターフェースを介して受信された各データユニットに対して、データユニットがローカルエリアネットワークから生じたか非ローカルネットワークから生じたかを判定するための手段1730は、プロセッサ204(図2)、メモリ206(図2)、およびDSP220(図2)の1つまたは複数によって実装され得る。
ある実施形態では、非ローカルネットワークから生じたデータユニットに基づいて通信リンクの特性を計算するための手段1740は、ブロック1640(図16)に関して上で説明された機能の1つまたは複数を実行するように構成され得る。様々な実施形態では、非ローカルネットワークから生じたデータユニットに基づいて通信リンクの特性を計算するための手段1740は、プロセッサ204(図2)、メモリ206(図2)、およびDSP220(図2)の1つまたは複数によって実装され得る。
本明細書で使用される「決定すること」という用語は、多種多様な動作を包含する。たとえば、「決定すること」は、算出すること、計算すること、処理すること、導出すること、調査すること、検索すること(たとえば、テーブル、データベース、または別のデータ構造を検索すること)、確認することなどを含み得る。また、「決定すること」は、受信すること(たとえば、情報を受信すること)、アクセスすること(たとえば、メモリ内のデータにアクセスすること)などを含み得る。また、「決定すること」は、解決すること、選択すること、選出すること、確立することなどを含み得る。さらに、本明細書で使用される「チャネル幅」は、いくつかの態様では帯域幅を包含してよく、または帯域幅と呼ばれることがある。
本明細書で使用される、項目のリスト「のうちの少なくとも1つ」に言及する句は、個々のメンバーを含む、それらの項目の任意の組合せを指す。ある例として、「a、b、またはcのうちの少なくとも1つ」は、a、b、c、a-b、a-c、b-c、およびa-b-cを包含することが意図される。
上で説明された方法の様々な動作は、様々なハードウェアおよび/またはソフトウェアコンポーネント、回路および/またはモジュールのような、動作を実行することができる任意の適切な手段によって実行され得る。一般に、図に示される任意の動作は、動作を実行することが可能な対応する機能手段によって実行され得る。
本開示に関して説明された様々な例示的な論理ブロック、モジュール、および回路は、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)または他のプログラマブルロジックデバイス(PLD)、個別ゲートまたはトランジスタ論理、個別ハードウェアコンポーネント、あるいは、本明細書で説明される機能を実施するように設計されたそれらの任意の組合せで実装または実行され得る。汎用プロセッサはマイクロプロセッサであり得るが、代替として、プロセッサは、任意の市販のプロセッサ、コントローラ、マイクロコントローラ、または状態機械であり得る。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装され得る。
1つまたは複数の態様では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読記憶媒体上に記憶され、またはコンピュータ可読記憶媒体を介して送信され得る。コンピュータ可読記憶媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを搬送もしくは記憶するために使用されコンピュータによってアクセスされ得る任意の他の媒体を含み得る。また、任意の接続が、コンピュータ可読記憶媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。本明細書で使用される場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザーディスク(登録商標)、光ディスク、デジタル多用途ディスク(DVD)、フロッピー(登録商標)ディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザーで光学的にデータを再生する。したがって、一部の態様において、コンピュータ可読記憶媒体は、非一時的コンピュータ可読記憶媒体(たとえば、有形媒体)を含み得る。さらに、一部の態様において、コンピュータ可読記憶媒体は、一時的コンピュータ可読記憶媒体(たとえば、信号)を含み得る。上記の組合せもコンピュータ可読記憶媒体の範囲内に含めるべきである。
本明細書で開示された方法は、説明された方法を達成するための1つまたは複数のステップまたは動作を含む。方法のステップおよび/または動作は、特許請求の範囲から逸脱することなく、互いに交換され得る。言い換えると、ステップまたは動作の特定の順序が指定されていない限り、特定のステップおよび/または動作の順序および/または使用は、特許請求の範囲から逸脱することなく修正され得る。
説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、コンピュータ可読記憶媒体上の1つまたは複数の命令として記憶され得る。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを搬送もしくは記憶するために使用されコンピュータによってアクセスされ得る任意の他の媒体を含み得る。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)、およびBlu-ray(登録商標)ディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。
したがって、いくつかの態様は、本明細書で提示する動作を実行するためのコンピュータプログラム製品を含み得る。たとえば、そのようなコンピュータプログラム製品は、本明細書で説明される動作を実施するために1つまたは複数のプロセッサによって実行可能な命令を記憶(および/または符号化)するコンピュータ可読記憶媒体を含み得る。いくつかの態様では、コンピュータプログラム製品はパッケージング材料を含み得る。
ソフトウェアまたは命令はまた、伝送媒体を通じて送信され得る。たとえば、ソフトウェアが同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は伝送媒体の定義内に含まれる。
さらに、本明細書で説明された方法および技法を実行するためのモジュールおよび/または他の適切な手段は、適用可能な場合、ユーザ端末および/または基地局によってダウンロードされ、かつ/またはその他の方法で取得され得ることを諒解されたい。たとえば、そのようなデバイスは、本明細書で説明された方法を実行するための手段の転送を容易にするために、サーバに結合され得る。代わりに、本明細書で説明された様々な方法は、ユーザ端末および/または基地局が、記憶手段をデバイスに結合したすぐ後、または提供したすぐ後に、様々な方法を取得することができるように、記憶手段(たとえば、RAM、ROM、コンパクトディスク(CD)またはフロッピー(登録商標)ディスクなどの物理的記憶媒体など)を介して提供され得る。その上、本明細書で説明された方法および技法をデバイスに与えるための任意の他の適切な技法が利用され得る。
特許請求の範囲は、上で示された厳密な構成およびコンポーネントに限定されないことを理解されたい。特許請求の範囲から逸脱することなく、上で説明された方法および装置の構成、動作および詳細に対して、様々な改変、変更および変形を行うことができる。
上記は本開示の態様を対象とするが、本開示の他のさらなる態様が、それらの基本的な範囲から逸脱することなく考案されてよく、それらの範囲は、以下の特許請求の範囲によって決定される。