(57)【要約】  伝送制御プロトコル(TCP)接続を確立する方法が開示され、この方法は、ハイパーテキスト伝送プロトコル(HTTP)要求の一部として、uniform resource locator (URL)を受信するステップを含み得る。さらに、この方法は、URLによってホストデータベースを検索するステップと、URLに対するホストデータが利用可能かどうかを判定するステップとを含み得る。この方法はまた、URLホストおよび1つまたは複数のサブリソースホストに対してドメイン名サービス(DNS)ルックアップを実行するステップを含んでよく、すべてのDNSルックアップが、URLに対するホストデータが利用可能な時に、実質的に同時に並行に実行される。
2013546041.tif 000002
【特許請求の範囲】
【請求項１】
伝送制御プロトコル(TCP)接続を確立する方法であって、
ハイパーテキスト伝送プロトコル(HTTP)要求の一部として、uniform resource locator (URL)を受信するステップと、
前記URLによってホストデータベースを検索するステップと、
前記URLに対するホストデータが利用可能かどうかを判定するステップと、
URLホストおよび1つまたは複数のサブリソースホストに対してドメイン名サービス(DNS)ルックアップを実行するステップであって、すべてのDNSルックアップが、前記URLに対するホストデータが利用可能な時に、実質的に同時に並行に実行される、ステップと
を含む、方法。
【請求項２】
前記URLホストおよび前記1つまたは複数のサブリソースホストの各々に対する、少なくとも1つのTCP接続を確立するステップ
をさらに含む、請求項1に記載の方法。
【請求項３】
メインリソースをロードするステップと、
1つまたは複数のサブリソースをロードするステップと
をさらに含む、請求項2に記載の方法。
【請求項４】
前記URLに対する前記ウェブページが完全にロードされた時に、前記ホストデータベースを更新するステップ
をさらに含む、請求項3に記載の方法。
【請求項５】
HTMLファイルが解析された後に、ダウンロードされるべき残りのオブジェクトを予測するステップをさらに含む、請求項3に記載の方法。
【請求項６】
伝送制御プロトコル(TCP)接続が開放されているかどうかを判定するステップと、
前記TCP接続が開放されている場合に、ホストがHTTPバージョン1.1以上のバージョンで動作しているかどうかを判定するステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
スループット(TP)ヘッドルームが、TPヘッドルームの条件を満たすかどうかを判定するステップ
をさらに含む、請求項6に記載の方法。
【請求項８】
TCP再送信タイムアウト(RTO)がTCP RTOの条件を満たすかどうかを判定するステップと、
前記TCP RTOが前記TCP RTOの条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出すステップと
をさらに含む、請求項7に記載の方法。
【請求項９】
前記TCP RTOが前記TCP RTOの条件を満たす場合に、新たなTCP接続を開放するステップと、
前記TCP RTOが前記TCP RTOの条件を満たさない場合に、TCPウィンドウ利用率がTCPウィンドウ利用率の条件を満たすかどうかを判定するステップと
をさらに含む、請求項8に記載の方法。
【請求項１０】
前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たす場合に、新たなTCP接続を開放するステップと、
前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出すステップと
をさらに含む、請求項9に記載の方法。
【請求項１１】
ハイパーテキスト伝送プロトコル(HTTP)要求の一部として、uniform resource locator (URL)を受信するための手段と、
前記URLによってホストデータベースを検索するための手段と、
前記URLに対するホストデータが利用可能かどうかを判定するための手段と、
URLホストおよび1つまたは複数のサブリソースホストに対してドメイン名サービス(DNS)ルックアップを実行するための手段であって、すべてのDNSルックアップが、前記URLに対するホストデータが利用可能な時に、実質的に同時に並行に実行される、手段と
を含む、デバイス。
【請求項１２】
前記URLホストおよび前記1つまたは複数のサブリソースホストの各々に対する、少なくとも1つの接続を確立するための手段
をさらに含む、請求項11に記載のデバイス。
【請求項１３】
メインリソースをロードするための手段と、
1つまたは複数のサブリソースをロードするための手段と
をさらに含む、請求項12に記載のデバイス。
【請求項１４】
HTMLファイルが解析された後に、ダウンロードされるべき残りのオブジェクトを予測するための手段をさらに含む、請求項13に記載のデバイス。
【請求項１５】
前記URLに対する前記ウェブページが完全にロードされた時に、前記ホストデータベースを更新するための手段
をさらに含む、請求項11に記載のデバイス。
【請求項１６】
伝送制御プロトコル(TCP)接続が開放されているかどうかを判定するための手段と、
前記TCP接続が開放されている場合に、ホストがHTTPバージョン1.1以上のバージョンで動作しているかどうかを判定するための手段と
をさらに含む、請求項11に記載のデバイス。
【請求項１７】
スループット(TP)ヘッドルームが、TPヘッドルームの条件を満たすかどうかを判定するための手段
をさらに含む、請求項16に記載のデバイス。
【請求項１８】
TCP再送信タイムアウト(RTO)がTCP RTOの条件を満たすかどうかを判定するための手段と、
前記TCP RTOが前記TCP RTOの条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出すための手段と
をさらに含む、請求項17に記載のデバイス。
【請求項１９】
前記TCP RTOが前記TCP RTOの条件を満たす場合に、新たなTCP接続を開放するための手段と、
前記TCP RTOが前記TCP RTOの条件を満たさない場合に、TCPウィンドウ利用率がTCPウィンドウ利用率の条件を満たすかどうかを判定するための手段と
をさらに含む、請求項18に記載のデバイス。
【請求項２０】
前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たす場合に、新たなTCP接続を開放するための手段と、
前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出すための手段と
をさらに含む、請求項19に記載のデバイス。
【請求項２１】
メモリと、
前記メモリにアクセス可能なプロセッサと
を含むデバイスであって、前記プロセッサが、
ハイパーテキスト伝送プロトコル(HTTP)要求の一部として、uniform resource locator (URL)を受信し、
前記URLによってホストデータベースを検索し、
前記URLに対するホストデータが利用可能かどうかを判定し、
URLホストおよび1つまたは複数のサブリソースホストに対してドメイン名サービス(DNS)ルックアップを実行する
ように動作可能であり、すべてのDNSルックアップが、前記URLに対するホストデータが利用可能な時に、実質的に同時に並行に実行される、デバイス。
【請求項２２】
前記プロセッサが、
前記URLホストおよび前記1つまたは複数のサブリソースホストの各々に対する、TCP接続を確立する
ようにさらに動作可能である、請求項21に記載のデバイス。
【請求項２３】
前記プロセッサが、
メインリソースをロードし、
1つまたは複数のサブリソースをロードする
ようにさらに動作可能である、請求項22に記載のデバイス。
【請求項２４】
前記プロセッサが、
HTMLファイルが解析された後に、ダウンロードされるべき残りのオブジェクトを予測する
ようにさらに動作可能である、請求項23に記載のデバイス。
【請求項２５】
前記プロセッサが、
前記URLに対する前記ウェブページが完全にロードされた時に、前記ホストデータベースを更新する
ようにさらに動作可能である、請求項23に記載のデバイス。
【請求項２６】
前記プロセッサが、
伝送制御プロトコル(TCP)接続が開放されているかどうかを判定し、
前記TCP接続が開放されている場合に、ホストがHTTPバージョン1.1以上のバージョンで動作しているかどうかを判定する
ようにさらに動作可能である、請求項25に記載のデバイス。
【請求項２７】
前記プロセッサが、
スループット(TP)ヘッドルームが、TPヘッドルームの条件を満たすかどうかを判定する
ようにさらに動作可能である、請求項26に記載のデバイス。
【請求項２８】
前記プロセッサが、
TCP再送信タイムアウト(RTO)がTCP RTOの条件を満たすかどうかを判定し、
前記TCP RTOが前記TCP RTOの条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出す
ようにさらに動作可能である、請求項27に記載のデバイス。
【請求項２９】
前記プロセッサが、
前記TCP RTOが前記TCP RTOの条件を満たす場合に、新たなTCP接続を開放し、
前記TCP RTOが前記TCP RTOの条件を満たさない場合に、TCPウィンドウ利用率がTCPウィンドウ利用率の条件を満たすかどうかを判定する
ようにさらに動作可能である、請求項28に記載のデバイス。
【請求項３０】
前記プロセッサが、
前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たす場合に、新たなTCP接続を開放し、
前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出す
ようにさらに動作可能である、請求項29に記載のデバイス。
【請求項３１】
ワイヤレスポータブルコンピューティングデバイスのために伝送制御プロトコル(TCP)接続を確立するための、コンピュータにより実行可能な命令からなるコンピュータプログラムであって、
ハイパーテキスト伝送プロトコル(HTTP)要求の一部として、uniform resource locator (URL)を受信するための少なくとも1つの命令と、
前記URLによってホストデータベースを検索するための少なくとも1つの命令と、
前記URLに対するホストデータが利用可能かどうかを判定するための少なくとも1つの命令と、
URLホストおよび1つまたは複数のサブリソースホストに対してドメイン名サービス(DNS)ルックアップを実行するための少なくとも1つの命令であって、すべてのDNSルックアップが、前記URLに対するホストデータが利用可能な時に、実質的に同時に並行に実行される、命令と
を含む、コンピュータプログラム。
【請求項３２】
前記URLホストおよび前記1つまたは複数のサブリソースホストの各々に対する、少なくとも1つの接続を確立するための少なくとも1つの命令
をさらに含む、請求項31に記載のコンピュータプログラム。
【請求項３３】
メインリソースをロードするための少なくとも1つの命令と、
1つまたは複数のサブリソースをロードするための少なくとも1つの命令と
をさらに含む、請求項32に記載のコンピュータプログラム。
【請求項３４】
前記URLに対する前記ウェブページが完全にロードされた時に、前記ホストデータベースを更新するための少なくとも1つの命令
をさらに含む、請求項33に記載のコンピュータプログラム。
【請求項３５】
伝送制御プロトコル(TCP)接続が開放されているかどうかを判定するための少なくとも1つの命令と、
前記TCP接続が開放されている場合に、ホストがHTTPバージョン1.1以上のバージョンで動作しているかどうかを判定するための少なくとも1つの命令と
をさらに含む、請求項34に記載のコンピュータプログラム。
【請求項３６】
スループット(TP)ヘッドルームが、TPヘッドルームの条件を満たすかどうかを判定するための少なくとも1つの命令
をさらに含む、請求項35に記載のコンピュータプログラム。
【請求項３７】
TCP再送信タイムアウト(RTO)がTCP RTOの条件を満たすかどうかを判定するための少なくとも1つの命令と、
前記TCP RTOが前記TCP RTOの条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出すための少なくとも1つの命令と
をさらに含む、請求項36に記載のコンピュータプログラム。
【請求項３８】
前記TCP RTOが前記TCP RTOの条件を満たす場合に、新たなTCP接続を開放するための少なくとも1つの命令と、
前記TCP RTOが前記TCP RTOの条件を満たさない場合に、TCPウィンドウ利用率がTCPウィンドウ利用率の条件を満たすかどうかを判定するための少なくとも1つの命令と
をさらに含む、請求項37に記載のコンピュータプログラム。
【請求項３９】
前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たす場合に、新たなTCP接続を開放するための少なくとも1つの命令と、
前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出すための少なくとも1つの命令と
をさらに含む、請求項38に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、伝送制御プロトコル接続を確立するシステムおよび方法を提供することに関する。
【背景技術】
【０００２】
ポータブルコンピューティングデバイス(PCD)は至る所にある。これらのデバイスは、携帯電話、携帯情報端末(PDA)、ポータブルゲームコンソール、パームトップコンピュータ、および他のポータブル電子デバイスを含み得る。これらのポータブルコンピューティングデバイスの多くは、コンテンツをダウンロードしたりコンテンツを見たりするためにユーザがインターネットにアクセスするのを可能にし得る、ウェブブラウザを含む。通常、ユーザがuniform resource locator (URL)をウェブブラウザに入力すると、DNSルックアップがそのURLに対して実行され、伝送制御プロトコル(TCP)接続が確立され得る。その後、メインHTMLファイル、またはメインリソースが、そのURL向けのホストサーバから受信され得る。メインHTMLファイルは、1つまたは複数のサブリソースを要求して取得するために、ウェブブラウザを1つまたは複数の追加のホストサーバへ向けることができる。追加のホストサーバに対してDNSルックアップを実行し、TCP接続を確立するための処理はかなり遅いことがあり、かなりの量のオーバーヘッドを必要とし得る。
【発明の概要】
【課題を解決するための手段】
【０００３】
したがって、必要とされているのは、伝送制御プロトコル接続を確立する、改善されたシステムおよび方法である。
【０００４】
図中、別段に規定されていない限り、類似の参照番号は、様々な図の全体を通じて、類似の部分を指す。
【図面の簡単な説明】
【０００５】
【図１】閉位置のポータブルコンピューティングデバイス(PCD)の第1の態様を示す正面図である。
【図２】開位置のPCDの第1の態様を示す正面図である。
【図３】PCDの第2の態様を示すブロック図である。
【図４】ワイヤレスポータブルコンピューティングデバイスのためにTCP接続を確立するシステムのソフトウェアアーキテクチャの第1の態様の図である。
【図５】TCP接続を確立する方法の第1の態様を示すフローチャートの第1の部分である。
【図６】TCP接続を確立する方法の第1の態様を示すフローチャートの第2の部分である。
【図７】TCP接続を確立する方法の第2の態様を示すフローチャートである。
【図８】TCP接続を確立する方法の第2の態様を示すフローチャートの第1の部分である。
【図９】TCP接続を確立する方法の第3の態様を示すフローチャートの第2の部分である。
【図１０】伝送制御プロトコル(TCP)接続を確立する方法の第4の態様を示すフローチャートである。
【図１１】TCP接続を確立する方法の第5の態様を示すフローチャートである。
【図１２】TCP接続を確立する方法の第6の態様を示すフローチャートである。
【発明を実施するための形態】
【０００６】
「例示的な」という言葉は、「一例、実例または例として」を意味するように本明細書で使用される。「例示的な」ものとして本明細書で説明する任意の態様は、必ずしも他の態様よりも好ましい、または有利であると解釈されるものではない。
【０００７】
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチのような、実行可能コンテンツを有するファイルも含み得る。加えて、本明細書で言及する「アプリケーション」は、開かれる必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルのような、本質的に実行可能ではないファイルも含み得る。
【０００８】
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチのような、実行可能コンテンツを有するファイルも含み得る。加えて、本明細書で言及する「コンテンツ」は、開かれる必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルのような、本質的に実行可能ではないファイルも含み得る。
【０００９】
本明細書で使用される場合、「コンポーネント」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、実行中のソフトウェアを問わず、コンピュータ関連のエンティティを指すことが意図されている。たとえばコンポーネントは、プロセッサ上で作動しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラムおよび/またはコンピュータであってよいが、これらには限定されない。例を挙げると、コンピューティングデバイス上で作動しているアプリケーションとコンピューティングデバイスの両方が、コンポーネントであり得る。1つまたは複数のコンポーネントは、プロセスおよび/または実行スレッドの中に存在してよく、1つのコンポーネントは、1つのコンピュータに局在化していてよく、かつ/または2つ以上のコンピュータに分散していてもよい。加えて、これらのコンポーネントは、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。コンポーネントは、1つまたは複数のデータパケット(たとえば、信号によって、ローカルシステム、分散システム中の別のコンポーネントと、かつ/または、インターネットのようなネットワークにわたって他のシステムと対話する、1つのコンポーネントからのデータ)を有する信号に従うなどして、ローカルプロセスおよび/またはリモートプロセスによって通信することができる。
【００１０】
最初に図1および図2を参照すると、例示的なポータブルコンピューティングデバイス(PCD)が示されており、全体的に100と表される。図示のように、PCD 100は、ハウジング102を含み得る。ハウジング102は、上側ハウジング部104および下側ハウジング部106を含み得る。図1は、上側ハウジング部104がディスプレイ108を含み得ることを示す。特定の態様では、ディスプレイ108はタッチスクリーンディスプレイでもよい。上側ハウジング部104は、トラックボール入力デバイス110も含み得る。さらに、図1に示されるように、上側ハウジング部104は、電源投入ボタン112および電源切断ボタン114を含み得る。図1に示されるように、PCD 100の上側ハウジング部104は、複数のインジケータライト116およびスピーカー118を含み得る。各インジケータライト116は、発光ダイオード(LED)でもよい。
【００１１】
特定の態様では、図2に示すように、上側ハウジング部104は下側ハウジング部106に対して移動可能である。具体的には、上側ハウジング部104は下側ハウジング部106に対してスライド可能であってよい。図2に示すように、下側ハウジング部106はマルチボタン型キーボード120を含み得る。特定の態様では、マルチボタン型キーボード120は標準的なQWERTYキーボードであり得る。マルチボタン型キーボード120は、上側ハウジング部104が下側ハウジング部106に対して動かされた時に現れ得る。図2は、PCD 100が下側ハウジング部106上にリセットボタン122を含み得ることをさらに示している。
【００１２】
図3を参照すると、ポータブルコンピューティングデバイス(PCD)の例示的な非限定的態様が示されており、全体的に100と表される。図示のように、PCD 100は、互いに結合されたデジタルシグナルプロセッサ324およびアナログシグナルプロセッサ326を含むオンチップシステム322を含む。オンチップシステム322は、3つ以上のプロセッサを含み得る。たとえば、当業者が理解するように、オンチップシステム322は、複数のコアプロセッサおよび1つのARM11プロセッサを含み得る。
【００１３】
図3に示すように、ディスプレイコントローラ328およびタッチスクリーンコントローラ330が、デジタルシグナルプロセッサ324に結合される。次に、オンチップシステム322の外部にあるタッチスクリーンディスプレイ108が、ディスプレイコントローラ328およびタッチスクリーンコントローラ330に結合される。
【００１４】
図3は、ビデオエンコーダ334、たとえば位相反転線(PAL)エンコーダ、sequential couleur a memoire(SECAM)エンコーダ、または全国テレビジョン方式委員会(NTSC)エンコーダが、デジタルシグナルプロセッサ324に結合されることをさらに示している。さらに、ビデオ増幅器336が、ビデオエンコーダ334およびタッチスクリーンディスプレイ108に結合される。また、ビデオポート338が、ビデオ増幅器336に結合される。図3に示すように、ユニバーサルシリアルバス(USB)コントローラ340が、デジタルシグナルプロセッサ324に結合される。また、USBポート342が、USBコントローラ340に結合される。メモリ344および加入者識別モジュール(SIM)カード346も、デジタルシグナルプロセッサ324に結合され得る。さらに、図3に示すように、デジタルカメラ348が、デジタルシグナルプロセッサ324に結合され得る。例示的な態様では、デジタルカメラ348は、電荷結合デバイス(CCD)カメラまたは相補型金属酸化物半導体(CMOS)カメラである。
【００１５】
図3にさらに示されるように、ステレオオーディオコーデック350が、アナログシグナルプロセッサ326に結合され得る。さらに、オーディオ増幅器352が、ステレオオーディオコーデック350に結合され得る。例示的な態様では、第1のステレオスピーカー354および第2のステレオスピーカー356が、オーディオ増幅器352に結合される。図3は、マイクロフォン増幅器358も、ステレオオーディオコーデック350に結合され得ることを示している。加えて、マイクロフォン360が、マイクロフォン増幅器358に結合され得る。特定の態様では、周波数変調(FM)ラジオチューナー362が、ステレオオーディオコーデック350に結合され得る。また、FMアンテナ364が、FMラジオチューナー362に結合される。さらに、ステレオヘッドフォン366が、ステレオオーディオコーデック350に結合され得る。
【００１６】
図3は、高周波(「RF」)送受信機368が、アナログシグナルプロセッサ326に結合され得ることをさらに示している。RFスイッチ370が、RF送受信機368およびRFアンテナ372に結合され得る。図3に示すように、キーパッド374が、アナログシグナルプロセッサ326に結合され得る。また、マイクロフォンを備えたモノヘッドセット376が、アナログシグナルプロセッサ326に結合され得る。さらに、バイブレータデバイス378が、アナログシグナルプロセッサ326に結合され得る。図3は、電源380が、オンチップシステム322に結合され得ることも示している。特定の態様では、電源380は、電力を必要とするPCD 100の様々なコンポーネントに電力を供給する、直流(DC)電源である。さらに、特定の態様では、電源は、AC電源に接続された交流(AC)-DC変換器から得られる、充電式DCバッテリまたはDC電源である。
【００１７】
図3は、PCD 100が、データネットワーク、たとえばローカルエリアネットワーク、パーソナルエリアネットワーク、または任意の他のネットワークにアクセスするために使用できる、ネットワークカード388も含み得ることをさらに示している。ネットワークカード388は、Bluetooth(登録商標)ネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、パーソナルエリアネットワーク超低電力技術(PeANUT)ネットワークカード、または当技術分野でよく知られている任意の他のネットワークカードであってよい。さらに、ネットワークカード388は、チップに組み込まれてよく、すなわち、ネットワークカード388は、チップでのフルソリューションであってもよく、個別のネットワークカード388でなくてもよい。
【００１８】
図3は、PCD 100が、メモリ344内に記憶され得るウェブブラウザ382も含み得ることを示している。ウェブブラウザ382を使って、インターネットを検索し、オンラインコンテンツにアクセスし、映像をダウンロードし、音楽をダウンロードし、映像を視聴し、またはこれらの組合せを行うことができる。
【００１９】
図3に示すように、タッチスクリーンディスプレイ108、ビデオポート338、USBポート342、カメラ348、第1のステレオスピーカー354、第2のステレオスピーカー356、マイクロフォン360、FMアンテナ364、ステレオヘッドフォン366、RFスイッチ370、RFアンテナ372、キーパッド374、モノヘッドセット376、バイブレータ378、および電源380は、オンチップシステム322の外部にある。
【００２０】
特定の態様では、本明細書で説明する方法ステップのうちの1つまたは複数は、コンピュータプログラム命令として、たとえばウェブブラウザ382の一部として、メモリ344に記憶され得る。これらの命令は、本明細書で説明する方法を実施するために、プロセッサ324、326によって実行可能であり得る。さらに、プロセッサ324、326、メモリ344、ウェブブラウザ382、またはこれらの組合せは、1つまたは複数のTCP接続を確立するための本明細書で説明される方法ステップの1つまたは複数を、実行するための手段として機能し得る。
【００２１】
図4は、ワイヤレスポータブルコンピューティングデバイス100のためにTCP接続を確立するアプリケーションサブシステム402の、ソフトウェアアーキテクチャの第1の態様の図である。アプリケーションサブシステム402は、デジタルシグナルプロセッサまたは中央演算処理装置324(図3参照)によって実行され、1つまたは複数のTCP接続を必要とするウェブページに対応し得る、モバイルウェブブラウザ382を含み得る。
【００２２】
当業者によって理解され以下で説明されるように、モバイルウェブブラウザアプリケーションまたはモジュール382は、インターネットプロトコル(「IP」)層422の上に存在する伝送制御プロトコル(「TCP」)モジュール416A〜Cと通信することができる。
【００２３】
当業者によって理解されるように、IP層422は、ネットワークバッファ層424と通信する。IP層422は、モデムサブシステム404と通信し、モデムサブシステム404は、第2の中央演算処理装置またはアナログシグナルプロセッサ326(図3参照)によって実行される。
【００２４】
モバイルウェブブラウザモジュール382は、HTTPスタック412およびドメイン名サーバモジュール414を含む。ウェブブラウザモジュール382は、アプリケーションサブシステム402とともにモデムサブシステム404の要素も継続的に監視できるという点で、動的であり得る。
【００２５】
当業者によって理解されるように、ウェブブラウザ382のDNSモジュール414は、テキストベースのドメイン名を、数値的なインターネットプロトコル(IP)アドレスへ変換することを担い得る。DNSモジュール414は、IPアドレスをHTTPスタック412へ伝え戻すことができ、HTTPスタック412が次いで、TCP接続モジュール416A〜Cの1つへIPアドレスを伝える。
【００２６】
HTTPスタック412が、TCP接続モジュール416A〜Cの1つから、ウェブページのようなメタオブジェクトを返す場合、HTTPスタックモジュール412は、何らかの状態情報をクライアントのウェブブラウザモジュール382へ提供することもできる。この状態情報は、限定はされないが、high speed-schedule control channel (「HS-SCCH」)の有効状態、high speed transport block size (「HS-TBS」)、層1のブロックエラーレート(「L1 BLER」)、無線リンク制御のプロトコルデータユニット(「RLC PDU」)のサイズ、無線リンク制御のダウンリンクのサービスデータユニット(「RLC DL SDU」)の受信(「Rx」)バイト、high speed downlink packet access (「HSDPA」)ユーザ装置(「UE」)のカテゴリ、メディアアクセス制御のアップリンクのバッファ状態報告(「MAC UL BSR」)、 enhanced uplink の送信時間間隔 (「EUL TTI」)、enhanced transport format combination index (「ETFCI」)のテーブルインデックス、ETCFI、新たな送信(「Tx」)の数、無線リンク制御のアップリンクのサービスデータユニット(「RLC UL SDU」)の送信(「Tx」)バイト、diversity transmission / diversity reception (「DTX/DRX」)のモード、enhanced uplinkのユーザ装置(「EUL UE」)のカテゴリ、メディアアクセス制御の送信層のトランスポートブロックサイズ(「MAC TL TBS」)、パケットデータコンバージェンスプロトコルのダウンリンクのサービスデータユニット(「PDCP DL SDU」)の受信バイト(「Rx」)、media access control uplink transport block size (「MAC UL TBS」)、パケットデータコンバージェンスプロトコルのアップリンクのサービスデータユニット(「PDCP UL SDU」)の送信(「Tx」)バイト、およびユーザ装置のカテゴリ(「UE Category」)を含み得る。
【００２７】
当業者によって理解されるように、トランスポート制御プロトコル(「TCP」)接続モジュール416A〜Cは、一般的なネットワーキングのOpen Systems Interconnection (「OSI」)モデルのトランスポート層において動作する。TCP接続モジュール416は、宛先ホストへの送信のためにネットワークインフラストラクチャへ伝送するのに適したデータユニット(データグラム、セグメント)の形へと、アプリケーションデータブロックをカプセル化すること、または、ネットワークデータグラムを抽象化し、モバイルウェブブラウザ382へペイロードを送達することによって、逆方向のトランザクションを管理することを担う。
【００２８】
TCP接続モジュール416は、限定はされないが、再送信タイムアウト(「RTO」)、通知される受信ウィンドウ(「Rx Window」)、送信受信スループット(「Tx/Rxスループット」)、パケット統計、TCP接続の全体数、推定される往復時間(「RTT」)、受信されるバイト数、順序通りのパケットの数、およびTCP送信ウィンドウサイズを含む、情報を提供することができる。
【００２９】
インターネットプロトコル(「IP」)モジュール422は、TCP接続モジュール416およびネットワークバッファ層424と通信する。IPモジュール422には、区別されたプロトコルデータグラム(パケット)を、そのアドレスに基づいてモバイルウェブブラウザからサーバへ送達する役割がある。IPモジュール422は、データグラムのカプセル化のための、アドレス指定方法および構造を定義する。IPモジュール422は、インターネットプロトコルバージョン4(「IPv4」)とともにインターネットプロトコルバージョン6(「IPv6」)を利用することができ、IPv6は本書の時点で実際に展開されている。しかし、まだ開発されていない今後のインターネットプロトコルを含む、他のバージョンのインターネットプロトコルが、本発明の範囲に含まれる。
【００３０】
ネットワークバッファ層424は、IPモジュール422およびモデムサブシステム404と通信する。ネットワークバッファ層424は、イーサネット(登録商標)および他のIEEE 802カプセル化方式のような、すべてのハードウェア特有のインターフェースの方法を含み得る。ネットワークバッファ層424は、ローカルネットワークのトポロジーを調査することができる。ネットワークバッファ層424は、ルータおよび近隣のホストを見つけることができ、リンク上の他のノードを見つけることを担い得る。ネットワークバッファ層424は、他のノードのリンク層アドレスを求め、利用可能なルータを見つけ、他のアクティブな近隣ノードへの経路についての到達可能性情報を保持することができる。
【００３１】
ウェブブラウザモジュール382は、httpスタック412とともにTCPモジュール416と通信することができる。ウェブブラウザモジュール382はまた、全地球測位システム(GPS)モジュール438などの衛星ナビゲーションシステムモジュールのような、1つまたは複数のセンサと通信することができる。
【００３２】
モデムサブシステム404は、無線リンク制御(「RLC」)層434、メディアアクセス制御(「MAC」)層432、物理(「PHY」)層430、無線中継制御(「RRC」)モジュール456、および、全地球測位システム(「GPS」)438のような衛星ナビゲーションシステムを含み得る。モデムサブシステム404のこれらの要素は、図3に示すようなRF送受信機368などの、通信ハードウェアとの通信を担い得る。
【００３３】
モデムサブシステム404の要素の各々は、メッセージを送信し、ウェブブラウザモジュール382からクエリを受信することができる。たとえば、RRCモジュール436は、限定はされないが、high speed downlink packet access (「HSDPA」)のカテゴリ情報、enhanced uplink layer (「EUL」)のカテゴリ情報、および、discontinuous reception/transmission (「DRX/DTX」)の設定(「Config」)情報のような情報を、伝えることができる。
【００３４】
RLCモジュール434は、スループットとともに、無線リンク制御(「RLC」)プロトコルデータユニット(「PDU」)サイズを伝えることができる。MAC層432は、限定はされないが、バッファ状態報告(「BSR」)情報およびenhanced dedicated channel (「EDCH」)トランスポートフォーマット(「TF」)情報のような、アップリンク(「UL」)情報を伝えることができる。物理層430は、限定はされないが、high speed transport block size (「HS-TBS」)、変調、channel quality indication (「CQI」)、ブロックエラーレート(「BLER」)の測定結果、多入力/多出力(「MIMO」)、受信機(「Rx」)自動利得制御(「AGC」)、さらに、イコライザ集積回路(「EQ/IC」)受信機(「Rx」)ダイバーシティ(「D」)のような、ダウンリンク(「DL」)情報を伝えることができる。物理層430はまた、限定はされないが、BLER、変調、および送信機(「Tx」)自動利得制御(「AGC」)のような、アップリンク(「UL」)情報を伝えることができる。
【００３５】
当業者が理解するように、RRCモジュール436、RLCモジュール434、MACモジュール432、およびPHYモジュール430は、evolved high-speed packet access system (「HSPA」)816(以下の図8参照)を形成し得る。一方、GPSモジュール438は、限定はされないが、ポータブルコンピューティングデバイス100の位置、速さまたは速度のような情報を、ウェブブラウザモジュール382に提供することができる。
【００３６】
アプリケーションシステム402およびモデムサブシステム404の要素を監視することによって、ウェブブラウザモジュール382は、ワイヤレスネットワークの状態とともにポータブルコンピューティングデバイス100自身の状態を監視することによって、ワイヤレスポータブルコンピューティングデバイス100が、PCD 100の操作者が見る可能性の高いウェブページを、インテリジェントに選択できるようにし得る。ウェブブラウザモジュール382は、監視された状態を使うことによって、ロードすべきウェブページのサイズおよび種類を求めて、サーバからダウンロードされることになるウェブページに対して適切なビットレートを求めることができる。
【００３７】
アプリケーションサブシステム402およびモデムサブシステム404によって提供されたデータに基づく、監視された状態の一部は、限定はされないが、現在のバッファのサイズおよび、バッファの増加分がポータブルコンピューティングデバイス100によって消費される割合を含むメモリ状態、現在のおよび過去のWWANの帯域幅、現在のおよび過去のWWAN信号の強度、利用可能なIPソケットデータ接続の数、全体のビデオクリップの長さの推定値および、信号対雑音比の履歴/ヒストグラムおよび位置情報サービス(「LBS」)に基づくウェブページの各ファイルセグメントの各uniform resource locator (「URL」)ダウンロード時間の推定値、セルタワー識別三角測量とGPSモジュール143のような位置に基づく技術の使用による正確な経度緯度とのいずれかによって計算される、ポータブルコンピューティングデバイス100の速度、ならびに、加速度計および/またはLBSを使ったポータブルコンピューティングデバイス100の移動の方向を含む。
【００３８】
ウェブブラウザモジュール382は、維持しなければならない所定の期間を計算することができ、または、信号対雑音比が継続的に高いままになるまで、かつ/またはBLERが継続的に低いままになるまで、低いビットレートを使うことができる。ウェブブラウザモジュール382はまた、理想的なネットワークの状態の間、たとえば、ポータブルコンピューティングデバイス100が静止している時、または、ユーザがポータブルコンピューティングデバイス100を持って歩いている場合のような、ポータブルコンピューティングデバイス100が比較的低速の状態で動作している時に、電力を最小にするために、モデムサブシステム404において任意の種類の受信機ダイバーシティ機能を「オン」または「オフ」することができる。
【００３９】
動作中、TCP接続モジュール416A〜Cは、接続情報をウェブブラウザ382に提供することができ、ウェブブラウザ382は、他のTCP接続の効率的な確立、既存のTCP接続の使用、またはこれらの組合せを支援するために、接続情報を使うことができる。接続情報は、TCP再送信タイムアウト(RTO)の推定値、TCP受信ウィンドウサイズ、最後の順序の狂ったパケット、またはこれらの組合せを含み得る。
【００４０】
PHYモジュール430、MACモジュール432、RLCモジュール434、RRCモジュール436、GPS 438、またはこれらの組合せは、モデムサブシステム情報をウェブブラウザ382に提供することができる。ウェブブラウザ382はまた、他のTCP接続の効率的な確立、既存のTCP接続の使用、またはこれらの組合せを支援するために、モデムサブシステム404の情報も使うことができる。モデムサブシステム情報は、GPSの垂直方向の速さ、GPSの水平方向の速さ、HSPAダウンリンク(DL)で実現可能な最大のスループット(TP)、HSPA DLの現在のTP、またはこれらの組合せを含み得る。
【００４１】
ウェブブラウザ382は、新たなTCP接続を確立するために、または既存のTCP接続を再使用するために、本明細書で説明されたように、接続情報、モデムサブシステム情報、またはこれらの組合せを使うことができることが理解されよう。
【００４２】
通常のポータブルコンピューティングデバイス、たとえば携帯電話では、ウェブブラウザ382は、メインリソース、すなわちメインHTMLファイルを、主要なホストサーバからロードすることができる。メインリソースは通常、ユーザがリンクをクリックした時またはuniversal resource locator (URL)を入力した時に、インターネットウェブブラウザがダウンロードする、最初のリソースを含む。ウェブページでは、メインリソースは通常、ハイパーテキストマークアップ言語(HTML)ファイルである。ユーザが画像へのリンクをクリックする場合、メインリソースは画像ファイルであり得るが、通常、ウェブページのメインリソースまたは主要リソースは常にHTMLファイルである。HTMLファイルは通常、サブリソースを有し得る唯一の種類のリソースである。また、「HTML」という用語は、XHTMLまたはHTML5を含むものとして、当業者によって理解される。
【００４３】
一方、サブリソースは通常、メインリソース内で参照または規定される、追加のファイルである。サブリソースは通常、ウェブページを完全かつ正確に表示するのに必要である。サブリソースは、限定はされないが、他の二次的なHTMLファイル(第1のHTMLファイルによって参照される、メインファイルまたは第1のHTMLファイル(メインリソース)に関連するファイル)、CSSファイル、JavaScript(登録商標)ファイル、Flashファイル、および画像ファイルを含む、様々な種類のファイルであってよい。
【００４４】
主要なホストは、各々が異なるドメイン名を有する1つまたは複数の二次的なホストサーバへ、ウェブブラウザを向けることができる。各々の異なるドメイン名に対して、DNSルックアップが、TCP接続の確立の前に実行される。連続して実行されるより多量のDNSルックアップによって、ウェブブラウザによる、TCP接続の確立ならびにリソースおよびサブリソースの取り出しが、かなり遅くなり得る。本明細書で開示される方法およびシステムは、DNSルックアップおよびTCP接続の確立をかなり高速化することができる。
【００４５】
図5および図6を参照すると、TCP接続を確立する方法の第1の態様が示されており、全体的に500と指定される。方法500は、ブロック502においてDOループで開始することができ、このDOループでは、uniform resource locator (URL)がウェブブラウザに入力されると、以下のステップが実行される。URLは、ハイパーテキスト伝送プロトコル(HTTP)要求の一部であってよい。ブロック504において、ウェブブラウザ382が、現在のURLを有するメモリリソース334内に保持される、ホストデータベース403を検索することができる。ホストデータベース403は、URLによってインデックスを付けられた、サーバなどのホストのリストを含み得る。これらのホストのリストは、ある特定のURLと関連付けられるコンテンツがデバイス上でロードされた最後の時に、そのURLに対してロードされたリソースおよびサブリソースを格納する、サーバである。PCD 100のユーザが特定のURLへ進むと、データベース403を参照することができ、エントリが見つかると、DNSルックアップおよびTCP接続が、データベースのエントリにおいて一覧にされている各ホストに対して(あらゆるGET命令の発行の前に)、メインリソースのロードと並行して実行される。
【００４６】
判定ブロック506に移り、ウェブブラウザ382が、ホストデータが現在のURLに対して利用可能かどうかを判定することができる。ホストデータが現在のURLに対して利用可能ではない場合、方法500は図6のブロック602へ進むことができる。たとえば、ある特定のURLが初めてアクセスされる場合、ホストデータは利用可能ではないことがある。
【００４７】
判定ブロック506に戻り、ホストデータが現在のURLに対して利用可能な場合、方法500は、ブロック508へ進み、ウェブブラウザ382が、ホストデータに記録されている、URLホストおよび各々のサブリソースホストに対するDNSルックアップを実行することができる。様々なルックアップが、実質的に並行に、すなわち実質的に同時に実行され得る。ブロック510へ移り、ウェブブラウザ382が、図4のTCPモジュール416のうちの1つを使って、ホストデータに記録されている、URLホストおよび各々のサブリソースホストに対するTCP接続を確立することができる。TCP接続は、実質的に並行に確立され得る。すなわち、TCP接続は、実質的に同時に確立され得る。ブロック512において、ウェブブラウザ382が、URLホストからのすべてのリソースおよびサブリソースホストからのすべてのサブリソースを、メモリリソース344にロードすることができる。
【００４８】
判定ブロック514へ進み、ウェブブラウザ382が、URLと関連付けられるウェブページが完全にロードされるかどうかを判定することができる。そうではない場合、方法500は、ブロック512に戻り、本明細書で説明するように継続することができる。それ以外の場合、すなわち、URLと関連付けられるウェブページが完全にロードされる場合、方法500はブロック516へ進むことができ、ウェブブラウザ382が、現在のURLと関連付けられる最新のページのロードに関して連絡されたホストの実際のセットによって、ホストデータベース403を更新することができる。
【００４９】
判定ブロック518において、ウェブブラウザ382が、別のURLが入力されたかどうかを判定することができる。入力された場合、方法500はブロック504に戻ることができ、方法500は本明細書で説明するように継続することができる。逆に、別のURLが入力されていない場合、方法500はブロック520へ続くことができ、ウェブブラウザ382は、ホストデータベース403を維持することができる。特定の態様では、ホストデータベース403はURL名によってインデックスを付けられ得る。その後、方法500は終了することができる。
【００５０】
判定ブロック506に戻り、ホストデータが現在のURLに対して利用可能ではない場合、方法500は図6のブロック602へ進むことができる。ブロック602において、ウェブブラウザ382が、URLホストに対するDNSルックアップを実行することができる。ブロック604において、ウェブブラウザ382が、図4のTCPモジュール416のうちの1つを使って、URLホストに対するTCP接続を確立することができる。さらに、ブロック606において、ウェブブラウザ382が、URLホストに対するHTTP GET命令を実行することができる。ブロック608において、ウェブブラウザ382が、URLホストからリソースを受信することができる。ブロック610において、ウェブブラウザ382が、URLホストからのリソースをメモリリソース344にロードすることができる。
【００５１】
ブロック612に移り、ウェブブラウザ382が、サブリソースホストに対するDNSルックアップを実行することができる。次いでブロック614に移り、ウェブブラウザ382が、サブリソースホストに対するTCP接続を確立することができる。ブロック616において、ウェブブラウザ382が、サブリソースホストに対するHTTP GET命令を実行することができる。ブロック618において、ウェブブラウザ382が、サブリソースホストからサブリソースを受信することができる。また、ブロック620において、ウェブブラウザ382が、サブリソースホストから受信されたサブリソースをロードすることができる。
【００５２】
判定ブロック622へと続き、ウェブブラウザ382が、別のサブリソースが現在のURLに対して存在するかどうかを判定することができる。存在する場合、方法500はブロック612に戻ることができ、方法500は本明細書で説明するように継続することができる。判定ブロック622において、別のサブリソースが現在のURLに対して存在しない場合、方法500はブロック624へ進むことができ、ウェブブラウザ382は、現在のURLに対するサブリソースのロード元であるすべてのサブリソースホストを記録することができる。その後、ブロック626において、ウェブブラウザ382が、ホストデータベース内に現在のホストデータを記憶することができる。ブロック628において、ウェブブラウザ382が、現在のサブリソースホストデータと現在のURLを関連付けることができる。次いで、方法500は、図5の判定ブロック518に戻ることができ、方法500は、本明細書で説明するように判定ブロックに518から継続することができる。
【００５３】
ここで図7を参照すると、TCP接続を確立する方法の第2の態様が示されており、全体的に700と指定される。わかりやすくするために、方法700は、PCD 100、DNSサーバ704、第1のホストサーバ706A、および第2のホストサーバ706Bに関して説明される。
【００５４】
ステップ710および712において開始すると、PCD 100が、第1のクエリおよび第2のクエリをDNSサーバ704に送信することができる。第1のクエリ711Aおよび第2のクエリ711Bは、並行に、すなわち実質的に同時に送信され得る。ステップ714Aおよび714Bにおいて、PCD 100は、第1の応答および第2の応答をDNSサーバ704から受信することができる。第1の応答714Aは、PCD 100を第1のホスト706Aへ向けることができ、第2の応答714Bは、PCD 100を第2のホスト706Bへ向けることができる。第1のホスト706Aは、PCD 100において、たとえばウェブブラウザ382においてロードされることになる、1つまたは複数の主要なリソースを提供することができ、第2のホスト706Bは、1つまたは複数のサブリソースを提供することができる。
【００５５】
ステップ718において、PCD 100が、第1のHTTP GET命令715Aを、第1のホスト706に送信することができる。さらに、ステップ720において、PCD 100が、第2のHTTP GET命令715Bを、第2のホスト708に送信することができる。HTTP GET命令715A、715Bは、並行に、すなわち実質的に同時に送信され得る。ステップ722において、PCD 100が、第1のホスト706Aから1つまたは複数のメインリソース717A〜Cを受信することができる。さらに、ステップ724において、PCD 100が、第2のホスト708から1つまたは複数のサブリソース719A、719Bを受信することができる。
【００５６】
特定の態様では、PCD 100のウェブブラウザ382は、メインリソース、すなわちメインHTMLファイルをロードすることができ、そして、PCD 100のウェブブラウザ382は、サブリソースをロードすることができる。ロードされると、メインリソースおよびサブリソースは、PCD 100のディスプレイを介して見るためのウェブページを確立することができる。
【００５７】
ここで図8および図9を参照すると、1つまたは複数の伝送制御プロトコル(TCP)接続を確立する方法の第3の態様が示されており、全体的に800と指定される。ステップ802において開始すると、GPSモニタ804は、ポータブルコンピューティングデバイス(PCD)に関連するGPSの垂直方向の速さを監視し、またはそれ以外の場合には測定することができる。ステップ806において、GPSモニタ804は、PCDに関連するGPSの水平方向の速さを測定することができる。その後、ステップ808において、GPSモニタ804は、GPSの垂直方向の速さをウェブブラウザ382へ出力することができる。さらに、ステップ812において、GPSモニタ804は、GPSの水平方向の速さをウェブブラウザ382へ出力することができる。
【００５８】
ステップ814へ移り、high speed packet access (HSPA)システム816(上で説明された)が、HSPAダウンリンク(DL)に対して実現可能な最大のスループット(TP)を求めることができる。さらに、ステップ818において、HSPAシステム816が、HSPA DLに対する現在のTPを求めることができる。ステップ820において、HSPAシステム816は、HSPA DLに対する実現可能な最大のTPを、ウェブブラウザ382へ出力することができる。また、ステップ822において、HSPAシステム816は、HSPA DLに対する現在のTPを、ウェブブラウザ382へ出力することができる。
【００５９】
ステップ824において、伝送制御プロトコル(TCP)モジュール416が、TCP再送信タイムアウト(RTO)の推定値を求めることができる。加えて、ステップ828において、TCPモジュール416が、TCP受信ウィンドウサイズを求めることができる。ステップ830において、TCPモジュール416が、最後の順序の狂ったパケット830を求めることができる。ステップ832へ移り、TCPモジュール416が、TCP RTOの推定値をウェブブラウザ382へ出力することができる。さらに、ステップ834へ移り、TCPモジュール416が、TCP受信ウィンドウサイズをウェブブラウザ382へ出力することができる。
【００６０】
ブロック836へと続き、ウェブブラウザ382は、モバイル機器の速さを求めることができる。モバイル機器の速さは、以下の式によって求められ得る。
【００６１】
【数１】
2013546041.tif 000003
【００６２】
上式で、
vertspeedはステップ802におけるGPSの垂直方向の速さであり、
horzspeedはステップ804におけるGPSの水平方向の速さである。
【００６３】
ブロック838において、ウェブブラウザ382は、以下の式からHSPA TPヘッドルームを求めることができる。
HSPA TP headroom = max TP - current TP
上式で、
max TPは、ステップ814において求められた実現可能な最大のHSPA TPであり、
current TPは、ステップ818において求められた現在のHSPA DL TPである。
【００６４】
ブロック840において、ウェブブラウザ382は、推定されるTPヘッドルームを計算することができる。たとえば、モバイル機器の速さがモバイル機器の速さの条件を満たす場合、TPヘッドルームは0として計算され得る。それ以外の場合、すなわち、モバイル機器の速さがモバイル機器の速さの条件を満たさない場合、TPヘッドルームは、ステップ838において上で求められたTP HSPAヘッドルームと等しく設定され得る。モバイル機器の速さの条件は、モバイル機器の速さの閾値であってよく、モバイル機器の速さが閾値よりも大きい場合に、モバイル機器の速さの条件を満たしていると考えることができる。たとえば、閾値は、時速1マイル、時速2マイル、時速3マイルなどであってよい。ブロック840から、方法800は図9のブロック902に進むことができ、方法800は以下で説明するように継続することができる。
【００６５】
ブロック842に進み、ウェブブラウザ382は、以下の式からTCPウィンドウ利用率サイズを求めることができる。
TCP window utilization = HSPA DL TP * TCP RTO / TCP Receive Window size
上式で、
HSPA DL TPは、ステップ818において求められた現在のHSPA DL TPである。
TCP RTOは、ステップ824で求められたTCP RTOの推定値である。
TCP Receive Window Sizeは、ステップ828で求められたTCP受信ウィンドウサイズである。
【００６６】
ブロック842から、方法800は図9のブロック902に進むことができ、方法800は以下で説明するように継続することができる。
【００６７】
図9のブロック902において、HTTP要求が、ウェブブラウザ382によって開始され得る。判定ブロック904へ移り、ウェブブラウザ382が、TCP接続が現在開放されているかどうかを判定することができる。TCP接続が現在開放されていない場合、方法800はブロック918へ続くことができ、ウェブブラウザ382は、新たなTCP接続を開放することができる。その後、方法800は終了することができる。
【００６８】
判定ブロック904に戻り、ウェブブラウザ382が、TCP接続が開放されていると判定する場合、方法800は、判定ブロック908へ進むことができる。判定ブロック908において、ホストがHTTPバージョン1.1以上のバージョンで動作しているかどうかを、ウェブブラウザ382が判定することができる。ホストがHTTPバージョン1.1以上のバージョンで動作していない場合、方法800は以下で説明されるブロック918へ進むことができる。その後、方法800は終了することができる。
【００６９】
判定ブロック908に戻り、ホストがHTTPバージョン1.1以上のバージョンで動作している場合、方法800は、判定ブロック912へ進むことができる。判定ブロック912において、ウェブブラウザ382は、ブロック840において求められたTPヘッドルームがTPヘッドルームの条件を満たすかどうかを判定することができる。たとえば、TPヘッドルームの条件は、TPヘッドルームの閾値であってよく、TPヘッドルームは、TPヘッドルームがTPヘッドルームの閾値よりも大きい場合に、TPヘッドルームの条件を満たし得る。特定の態様では、TPヘッドルームの閾値は、限定はされないが、250Kbps、500Kbps、および1Mbpsなどのような例示的な値を含み得る。
【００７０】
判定ブロック912において、TPヘッドルームがTPヘッドルームの閾値よりも大きくない場合、方法800はブロック910へ進むことができ、ウェブブラウザ382は、既存のTCP接続に対してHTTP要求を出すことができる。その後、方法800は終了することができる。判定ブロック912に戻り、TPヘッドルームがTPヘッドルームの閾値よりも大きい場合、方法800は、判定ブロック914へ進むことができる。
【００７１】
判定ブロック914において、ウェブブラウザ382は、ブロック824において求められたTCP RTOがTCP RTOの条件を満たすかどうかを判定することができる。たとえば、TCP RTOの条件はTCP RTTの閾値であってよく、TCP RTOは、TCP RTOがTCP RTTの閾値よりも小さい場合に、TCP RTOの条件を満たし得る。特定の態様では、TCP RTTの閾値は、限定はされないが、50ms、200msなどの値を含み得る。
【００７２】
判定ブロック914において、TCP RTOがTCP RTTの閾値よりも小さい場合、方法800はブロック918へ進むことができ、ウェブブラウザ382は、新たなTCP接続を開放することができる。その後、方法800は終了することができる。判定ブロック914に戻り、TCP RTOがTCP RTTの閾値よりも大きい(小さくない)場合、方法800は上で説明されたステップ910へ戻ることができ、ウェブブラウザ382は、既存のTCP接続に対してHTTP要求を出すことができる。
【００７３】
図10を参照すると、1つまたは複数の伝送制御プロトコル(TCP)接続を確立する方法の第4の態様が示されており、全体的に1000と指定される。ブロック1002において開始すると、ウェブブラウザ382は、1つまたは複数のネットワークリソースのすぐ後の性能を推定することができる。ブロック1004において、ウェブブラウザ382は、ダウンロードされるべきアイテムの数を予測することができる。さらに、ブロック1006において、ウェブブラウザ382は、ダウンロードされるべきアイテムのサイズを予測することができる。ブロック1008において、ネットワークリソースのすぐ後の性能、ダウンロードされるべきアイテムの数、ダウンロードされるべきアイテムのサイズ、またはこれらの組合せに少なくとも一部基づいて、ウェブブラウザ382は、既存のTCP接続を利用することができ、または新たなTCP接続を開放することができる。そして、方法1000は終了することができる。
【００７４】
1つまたは複数のネットワークリソースのすぐ後の性能を推定するために、無線リンクの測定基準、モビリティの測定基準、TCPの測定基準、またはこれらの組合せが考慮され得る。無線リンクの測定基準は、ブロックエラーレート(BLER)、信号対雑音比(SNR)、実現されているスループット(TP)、RTT、またはこれらの組合せを含み得る。
【００７５】
BLERは、不正常に伝送されたデータパケットの数を、伝送されるパケットの数で割ったものであり得ることが、理解され得る。SNRは、信号エネルギーと、信号を破損させ得る雑音エネルギーとの比であり得る。スループットは、通信チャネルを通じた、成功したメッセージの送達の平均速度であり得る。スループットは、ビット毎秒(bit/sまたはbps)の単位で測定され得る。RTTは、信号のパルスまたはパケットが、ある特定の発信源からある特定の宛先へ移動し、再び戻ってくるのに必要な時間であり得る。
【００７６】
モビリティの測定基準は、デバイスが静止しているかどうか、デバイスが移動しているかどうか、デバイスの垂直方向の速さ、デバイスの水平方向の速さ、デバイスの速さ、またはこれらの組合せを含み得る。TCPの測定基準は、脱落し順序の狂ったパケットについての統計、現在の接続スループット、現在の混雑状態および受信ウィンドウサイズ、RTOの推定値、またはこれらの組合せを含み得る。
【００７７】
特定の態様では、ダウンロードされるべき残りのオブジェクトを予測するステップは、HTMLが解析され、DOMツリーが作成され、どの要求されたオブジェクトがキャッシュの中にないかに関する判定が行われた後に、行われ得る。キャッシュされていないリソースのサイズを推定するステップは、1つまたは複数のHTTPの測定基準、任意の未処理の要求のmimeのタイプ、リソースマニフェストファイル、キャッシュ中の既存の期限切れコンテンツ、またはこれらの組合せに基づいて、行われ得る。
【００７８】
HTTPの測定基準は、未処理の要求についてのコンテンツの長さの情報、ヘッダがすでに受信されたかどうか、サーバがHTTP1.1をサポートするかどうかを示し得るサーバから受信されたHTTPバージョン情報、またはこれらの組合せを含み得る。未処理の要求のmimeのタイプは、新たな要求の予想されるmimeのタイプを含み得る。新たな要求の予想されるmimeのタイプは、URLおよびファイル名の拡張子から推測され得る。あるいは、予想されるmimeのタイプは、<img>または<script>のような囲みタグによって、ブラウザによって別個に提供されてもよい。
【００７９】
リソースマニフェストファイルは、gzipファイルとして取得され得るような、ページ上のコンテンツのインデックスを含み得る。ウェブページによってサポートされるかクライアントのブラウザによって作成されるかに関わらず、リソースマニフェストをキャッシュすることは、リソースマニフェストファイルのために優先され得る。キャッシュ中に存在する期限切れのコンテンツは、コンテンツのサイズを推定するために使われ得る。たとえば、期限切れのスクリプトが12kBであったキャッシュに存在する場合、更新されたスクリプトのサイズは同様であると仮定するのは妥当である。
【００８０】
上の測定基準の一部またはすべてが、判定ブロック実行エンジンへの入力としての役割を果たし、判定ブロック実行エンジンは、新たなソケットを開放すること、既存のアイドル状態のソケットを再使用すること、既存のビジー状態のソケットへの要求をパイプライン処理すること、または、後のために要求をキューに加えることのいずれかを行うと、決定する。判定ブロック実行エンジンは、ウェブブラウザ382、ウェブブラウザアプリケーション382の一部(すなわちプラグイン)、別個のアプリケーション、またはこれらの組合せであってよい。
【００８１】
図11は、全体的に1100と指定される、1つまたは複数の伝送制御プロトコル(TCP)接続を確立する方法の第5の態様を示す。ブロック1102において開始すると、HTTP要求が、ウェブブラウザ382によって開始され得る。判定ブロック1104へ移り、ウェブブラウザ382が、TCP接続が現在開放されているかどうかを判定することができる。TCP接続が現在開放されていない場合、方法1100はブロック1106へ続くことができ、ウェブブラウザ382は、新たなTCP接続を開放することができる。その後、方法1100は終了することができる。
【００８２】
判定ブロック1104に戻り、ウェブブラウザ382が、TCP接続が開放されていると判定する場合、方法1100は、判定ブロック1108へ進むことができる。判定ブロック1108において、ウェブブラウザ382は、開放されたTCP接続またはソケットを通じて現在受信されている、リソースまたはサブリソースのビット単位での全体のサイズが、知られているかどうかを判定することができる。知られている場合、方法1100はブロック1110に進むことができ、ウェブブラウザ382はダウンロード完了時間を求めることができる。ダウンロード完了時間は、以下の式によって求められ得る。
DLT = (STot - SRx)/T
上式で、
DLT = ダウンロード完了時間、
STOT = 現在のリソースのビット単位での全体のサイズ、
SRX  = すでに受信されたビット数、
T = ビット毎秒単位での現在のダウンリンクTCPスループット
である。
【００８３】
ブロック1110から、方法1100は、判定ブロック1112に進むことができる。判定ブロック1112において、ダウンロード完了時間がダウンロード完了時間の条件を満たすかどうかを、ウェブブラウザ382が判定することができる。たとえば、ダウンロード完了時間の条件はRTTであってよく、ダウンロード完了時間は、ダウンロード完了時間がRTTより長い場合、すなわち、現在のリソースのダウンロードを完了するのにかかり得る予想される時間が、新たなソケット接続の確立に必要な予想される時間よりも長い場合に、ダウンロード完了時間の条件を満たし得る。
【００８４】
判定ブロック1112において、ダウンロード完了時間がRTTよりも長い場合、方法1100はブロック1106へ進むことができ、ウェブブラウザ382は、新たなTCP接続を開放することができる。そして、方法1100は終了することができる。
【００８５】
判定ブロック1112に戻り、ダウンロード完了時間がRTTよりも長くない場合、方法1100はブロック1114へ進むことができ、ウェブブラウザ382は、既存のTCP接続に対してHTTP要求を出すことができる。その後、方法1100は終了することができる。
【００８６】
判定ブロック1108に戻り、STotが未知である場合、方法1100は、判定ブロック1116へ進むことができる。ブロック1116において、ウェブブラウザは、平均のオブジェクトサイズSAVGを求めることができる。SAVGは、未処理の要求のmimeのタイプに基づく、リソースオブジェクトの平均サイズであり得る。SAVGは、現在のホストからすでに受信されているオブジェクトのサイズ、履歴情報、またはこれらの組合せのいずれかに基づいて、ホスト毎に動的に求められ得る。別の態様では、SAVGは、複数の他のウェブサイトから受信された同様のリソースのサイズを平均することによって計算される所定の定数に基づいて、求められ得る。
【００８７】
ブロック1116から、方法1100はブロック1118に進むことができ、ウェブブラウザ382は、推定されるダウンロード完了時間DLESTを求めることができる。推定されるダウンロード完了時間は、以下の式から求められ得る。
DLEST = (SAVG - SRX) / T
上式で、
DLEST = 推定されるダウンロード完了時間、
SAVG = ビット単位での平均のオブジェクトサイズ
SRX = すでに受信されたビット数、
T = ビット毎秒単位での現在のダウンリンクTCPのスループット
【００８８】
ブロック1118から、方法1100は、判定ブロック1120に進むことができる。判定ブロック1120において、推定されるダウンロード完了時間が推定されるダウンロード完了時間の条件を満たすかどうかを、ウェブブラウザ382が判定することができる。たとえば、推定されるダウンロード完了時間の条件はRTTであってよく、推定されるダウンロード完了時間は、推定されるダウンロード完了時間がRTTよりも長い場合、条件を満たし得る。判定ブロック1120において、推定されるダウンロード完了時間がRTTよりも長い場合、方法1100はブロック1106へ進むことができ、ウェブブラウザ382は、新たなTCP接続を開放することができる。そして、方法1100は終了することができる。
【００８９】
判定ブロック1112に戻り、推定されるダウンロード完了時間がRTTよりも長くない場合、方法1100はブロック1114へ進むことができ、ウェブブラウザ382は、既存のTCP接続に対してHTTP要求を出すことができる。その後、方法1100は終了することができる。
【００９０】
図12は、全体的に1200と指定される、1つまたは複数の伝送制御プロトコル(TCP)接続を確立する方法の第6の態様を示す。ブロック1202において開始すると、HTTP要求が、ウェブブラウザ382によって開始され得る。判定ブロック1204へ移り、ウェブブラウザ382が、TCP接続が現在開放されているかどうかを判定することができる。TCP接続が現在開放されていない場合、方法1200はブロック1206へ続くことができ、ウェブブラウザ382は、新たなTCP接続を開放することができる。その後、方法1200は終了することができる。
【００９１】
判定ブロック1204に戻り、ウェブブラウザ382が、TCP接続が開放されていると判定する場合、方法1200は、判定ブロック1208へ進むことができる。判定ブロック1208において、ウェブブラウザ382は、TCP接続が混雑を避けるために制限された送信ウィンドウサイズを使っているかどうかを、判定することができる。
【００９２】
TCP接続が混雑を避けるために制限された送信ウィンドウサイズを使っていない場合、方法1200はブロック1210へ進むことができる。ブロック1210において、ウェブブラウザ382が、既存のTCP接続に対してHTTP要求を出すことができる。その後、方法1200は終了することができる。
【００９３】
判定ブロック1208に戻り、TCP接続が混雑を避けるために制限された送信ウィンドウサイズを使っている場合、方法1200はブロック1206へ進むことができる。ブロック1206において、ウィンドウブラウザアプリケーションが、新たなTCP接続を開放することができる。その後、方法1200は終了することができる。
【００９４】
本明細書で説明する方法ステップは、必ずしも説明通りの順序で実施する必要はないことを理解されたい。さらに、「その後」、「次いで」、「次に」などの語は、ステップの順序を限定することを意図していない。これらの語は、方法ステップの説明を通じて読者を案内するために使用されているにすぎない。さらに、本明細書で説明する方法はポータブルコンピューティングデバイス(PCD)上で実行可能なものとして説明されている。PCDは、携帯電話デバイス、携帯情報端末デバイス、スマートブックコンピューティングデバイス、ネットブックコンピューティングデバイス、ラップトップコンピューティングデバイス、デスクトップコンピューティングデバイス、またはそれらの組合せであってよい。また、様々な方法ステップは、新しい方法を作成するために、任意の順序で組み合わされ得る。
【００９５】
本明細書で説明される構成によって、本明細書のシステムおよび方法を使って、DNSルックアップをかなり高速化することができる。さらに、本明細書のシステムおよび方法は、新たなTCP接続の効率的な確立、TCP接続の再使用、またはこれらの組合せのために使われ得る。
【００９６】
一態様では、デバイス、たとえばデバイスに記憶されたウェブブラウザ382は、図5に示されるように、ある特定のURLと関連付けられるコンテンツがデバイス上でロードされた最後の時に、そのURLに対してロードされたサブリソースのロード元であるすべてのホストの、URLによってインデックスを付けられたデータベースを、メモリ344に保持することができる。ユーザが特定のURLへ進むと、データベース403を参照することができ、エントリが見つかると、DNSルックアップおよびTCP接続の確立が、データベースのエントリにおいて一覧にされている各ホストに対して、メインリソースのロードと並行して実行される。さらに、ページが完全にロードされた後、データベース403は、最新のロードに関して連絡されたホストの実際のセットによって、更新され得る。ブラウザは、最新のロードにおいて連絡されなかったすべてのホストを削除し、または、古いリストを新しいリストと統合することを選択できる。
【００９７】
この手法は、セルラーのカバレッジ領域の端部では有用であり得る。そのような領域では、ダウンロード性能が依然として適正、たとえば300kbpsであり得るとしても、アップリンク性能がかろうじて使用可能な状態、たとえば4kbpsにまで劣化することがある。従来のコンピューティングデバイスにおいてHTTP GET命令に続いて行われる、DNSルックアップの本発明による手法と従来の手法は、少なくともHTTPオブジェクトを返信するための時間の分だけアップリンク接続が遅れ、かつ、メインリソースがロードされた後にのみアップリンク接続が行われるという点で一致する。提案された手法は、最終的には必要ではない可能性のあるいくつかのDNSルックアップを実行し得るが、メインリソースがロードされる前にDNSルックアップを開始し、その後のHTTP GET命令タスクによって、DNSルックアップの間隔を空けるのではなくDNSルックアップを待ち行列に入れることで、より良好なアップリンク性能が得られる。
【００９８】
1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装することができる。ソフトウェアで実装した場合、これらの機能を、機械可読媒体、すなわちコンピュータ可読媒体などのコンピュータプログラム製品に記憶することができ、または、そのようなコンピュータプログラム製品上の1つもしくは複数の命令またはコードとして送信することができる。コンピュータ可読媒体は、1つの場所から別の場所へのコンピュータプログラムの転送を容易にするあらゆる媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを伝送もしくは記憶するために使用され、コンピュータによってアクセスされ得る、その他の媒体を含み得る。また、あらゆる接続がコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、ウェブサイト、サーバ、または他のリモートソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または、赤外線、無線およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または、赤外線、無線およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれ得る。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フレキシブルディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【００９９】
選択された態様が詳細に示され詳述されてきたが、以下の請求項によって定義されるような本発明の趣旨および範囲から逸脱することなく、本明細書において様々な置換および改変を実施できることが理解されよう。
【符号の説明】
【０１００】
382  ウェブブラウザ
402  アプリケーションサブシステム
404  モデムサブシステム
412  HTTPスタック
416A  伝送制御プロトコル
422  インターネットプロトコル層
424  ネットワークバッファ層
430  物理層
432  メディアアクセス制御層
434  無線リンク制御層
436  無線中継制御モジュール
438  全地球測位システム
704  DNSサーバ
706A  第1のホストサーバ
706B  第2のホストサーバ
711A  第1のクエリ
714A  第1の応答
715A  HTTP GET命令
717A  メインリソース
719A  サブリソース
804  GPSモニタ
816  HSPAシステム
【図１】
2013546041.tif 000004
【図２】
2013546041.tif 000005
【図３】
2013546041.tif 000006
【図４】
2013546041.tif 000007
【図５】
2013546041.tif 000008
【図６】
2013546041.tif 000009
【図７】
2013546041.tif 000010
【図８】
2013546041.tif 000011
【図９】
2013546041.tif 000012
【図１０】
2013546041.tif 000013
【図１１】
2013546041.tif 000014
【図１２】
2013546041.tif 000015
【手続補正書】
【提出日】平成24年9月11日(2012.9.11)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
伝送制御プロトコル(TCP)接続を確立する方法であって、
ハイパーテキスト伝送プロトコル(HTTP)要求の一部として、uniform resource locator (URL)を受信するステップと、
前記URLによってホストデータベースを検索するステップと、
前記URLに対するホストデータが利用可能かどうかを判定するステップと、
前記URLに対する前記ホストデータに記録された、URLホストおよび1つまたは複数のサブリソースホストに対してドメイン名サービス(DNS)ルックアップを実行するステップであって、すべてのDNSルックアップが、メインリソースがロードされる前に、前記URLに対するホストデータが利用可能な時に、実質的に同時に並行に開始される、ステップと、
伝送制御プロトコル(TCP)接続が開放されているかどうかを判定するステップと、
前記TCP接続が開放されている場合に、ホストがHTTPバージョン1.1以上のバージョンで動作しているかどうかを判定するステップと、
推定されるスループット(TP)ヘッドルームがTPヘッドルームの条件を満たすかどうかを判定するステップであって、前記TPヘッドルームが、モバイルデバイスの速さ、最大のスループット、および現在のスループットの関数として計算される、ステップと、
前記推定されるTPヘッドルームが前記TPヘッドルーム条件を満たさない場合に、前記開放されているTCP接続へ前記HTTP要求を出すステップと
含む、方法。
【請求項２】
前記URLホストおよび前記1つまたは複数のサブリソースホストの各々に対する、少なくとも1つのTCP接続を確立するステップ
をさらに含む、請求項1に記載の方法。
【請求項３】
DNSルックアップを待ち行列に入れるステップ
をさらに含む、請求項2に記載の方法。
【請求項４】
前記URLに対する前記ウェブページが完全にロードされた時に、前記ホストデータベースを更新するステップ
をさらに含む、請求項3に記載の方法。
【請求項５】
HTMLファイルが解析された後に、ダウンロードされるべき残りのオブジェクトを予測するステップをさらに含む、請求項3に記載の方法。
【請求項６】
TCP再送信タイムアウト(RTO)がTCP RTOの条件を満たすかどうかを判定するステップと、
前記TCP RTOが前記TCP RTOの条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出すステップと
をさらに含む、請求項1に記載の方法。
【請求項７】
前記TCP RTOが前記TCP RTOの条件を満たす場合に、新たなTCP接続を開放するステップ
をさらに含む、請求項6に記載の方法。
【請求項８】
前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出すステップ
をさらに含む、請求項7に記載の方法。
【請求項９】
ハイパーテキスト伝送プロトコル(HTTP)要求の一部として、uniform resource locator (URL)を受信するための手段と、
前記URLによってホストデータベースを検索するための手段と、
前記URLに対するホストデータが利用可能かどうかを判定するための手段と、
前記URLに対する前記ホストデータに記録された、URLホストおよび1つまたは複数のサブリソースホストに対してドメイン名サービス(DNS)ルックアップを実行するための手段であって、すべてのDNSルックアップが、メインリソースがロードされる前に、前記URLに対するホストデータが利用可能な時に、実質的に同時に並行に開始される、手段と、
伝送制御プロトコル(TCP)接続が開放されているかどうかを判定するための手段と、
前記TCP接続が開放されている場合に、ホストがHTTPバージョン1.1以上のバージョンで動作しているかどうかを判定するための手段と、
推定されるスループット(TP)ヘッドルームがTPヘッドルームの条件を満たすかどうかを判定するための手段であって、前記TPヘッドルームが、モバイルデバイスの速さ、最大のスループット、および現在のスループットの関数として計算される、手段と、
前記推定されるTPヘッドルームが前記TPヘッドルームの条件を満たさない場合に、前記開放されているTCP接続へ前記HTTP要求を出すための手段と
含む、デバイス。
【請求項１０】
前記URLホストおよび前記1つまたは複数のサブリソースホストの各々に対する、少なくとも1つの接続を確立するための手段
をさらに含む、請求項9に記載のデバイス。
【請求項１１】
DNSルックアップを待ち行列に入れるための手段
をさらに含む、請求項10に記載のデバイス。
【請求項１２】
HTMLファイルが解析された後に、ダウンロードされるべき残りのオブジェクトを予測するための手段をさらに含む、請求項11に記載のデバイス。
【請求項１３】
前記URLに対する前記ウェブページが完全にロードされた時に、前記ホストデータベースを更新するための手段
をさらに含む、請求項9に記載のデバイス。
【請求項１４】
TCP再送信タイムアウト(RTO)がTCP RTOの条件を満たすかどうかを判定するための手段と、
前記TCP RTOが前記TCP RTOの条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出すための手段と
をさらに含む、請求項9に記載のデバイス。
【請求項１５】
前記TCP RTOが前記TCP RTOの条件を満たす場合に、新たなTCP接続を開放するための手段
をさらに含む、請求項14に記載のデバイス。
【請求項１６】
前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たす場合に、新たなTCP接続を開放するための手段と、
前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出すための手段と
をさらに含む、請求項15に記載のデバイス。
【請求項１７】
メモリと、
前記メモリにアクセス可能なプロセッサと
を含むデバイスであって、前記プロセッサが、
ハイパーテキスト伝送プロトコル(HTTP)要求の一部として、uniform resource locator (URL)を受信し、
前記URLによってホストデータベースを検索し、
前記URLに対するホストデータが利用可能かどうかを判定し、
前記URLに対する前記ホストデータに記録された、URLホストおよび1つまたは複数のサブリソースホストに対してドメイン名サービス(DNS)ルックアップを実行し、このとき、すべてのDNSルックアップが、メインリソースがロードされる前に、前記URLに対するホストデータが利用可能な時に、実質的に同時に並行に開始され、
伝送制御プロトコル(TCP)接続が開放されているかどうかを判定し、
前記TCP接続が開放されている場合に、ホストがHTTPバージョン1.1以上のバージョンで動作しているかどうかを判定し、
推定されるスループット(TP)ヘッドルームがTPヘッドルームの条件を満たすかどうかを判定し、このとき、前記TPヘッドルームが、モバイルデバイスの速さ、最大のスループット、および現在のスループットの関数として計算され、
前記推定されるTPヘッドルームが前記TPヘッドルームの条件を満たさない場合に、前記開放されているTCP接続へ前記HTTP要求を出す
ように動作可能である、デバイス。
【請求項１８】
前記プロセッサが、
前記URLホストおよび前記1つまたは複数のサブリソースホストの各々に対する、TCP接続を確立する
ようにさらに動作可能である、請求項17に記載のデバイス。
【請求項１９】
前記プロセッサが、
DNSルックアップを待ち行列に入れる
ようにさらに動作可能である、請求項18に記載のデバイス。
【請求項２０】
前記プロセッサが、
HTMLファイルが解析された後に、ダウンロードされるべき残りのオブジェクトを予測する
ようにさらに動作可能である、請求項19に記載のデバイス。
【請求項２１】
前記プロセッサが、
前記URLに対する前記ウェブページが完全にロードされた時に、前記ホストデータベースを更新する
ようにさらに動作可能である、請求項19に記載のデバイス。
【請求項２２】
前記プロセッサが、
TCP再送信タイムアウト(RTO)がTCP RTOの条件を満たすかどうかを判定し、
前記TCP RTOが前記TCP RTOの条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出す
ようにさらに動作可能である、請求項17載のデバイス。
【請求項２３】
前記プロセッサが、
前記TCP RTOが前記TCP RTOの条件を満たす場合に、新たなTCP接続を開放し、
前記TCP RTOが前記TCP RTOの条件を満たさない場合に、TCPウィンドウ利用率がTCPウィンドウ利用率の条件を満たすかどうかを判定する
ようにさらに動作可能である、請求項22に記載のデバイス。
【請求項２４】
前記プロセッサが、
前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たす場合に、新たなTCP接続を開放し、
前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出す
ようにさらに動作可能である、請求項23に記載のデバイス。
【請求項２５】
ワイヤレスポータブルコンピューティングデバイスのために伝送制御プロトコル(TCP)接続を確立するための、コンピュータにより実行可能な命令からなるコンピュータプログラムであって、
ハイパーテキスト伝送プロトコル(HTTP)要求の一部として、uniform resource locator (URL)を受信するための少なくとも1つの命令と、
前記URLによってホストデータベースを検索するための少なくとも1つの命令と、
前記URLに対するホストデータが利用可能かどうかを判定するための少なくとも1つの命令と、
前記URLに対する前記ホストデータに記録された、URLホストおよび1つまたは複数のサブリソースホストに対してドメイン名サービス(DNS)ルックアップを実行するための少なくとも1つの命令であって、すべてのDNSルックアップが、メインリソースがロードされる前に、前記URLに対するホストデータが利用可能な時に、実質的に同時に並行に開始される、命令と、
伝送制御プロトコル(TCP)接続が開放されているかどうかを判定するための少なくとも1つの命令と、
前記TCP接続が開放されている場合に、ホストがHTTPバージョン1.1以上のバージョンで動作しているかどうかを判定するための少なくとも1つの命令と、
推定されるスループット(TP)ヘッドルームがTPヘッドルームの条件を満たすかどうかを判定するための少なくとも1つの命令であって、前記TPヘッドルームが、モバイルデバイスの速さ、最大のスループット、および現在のスループットの関数として計算される、命令と、
前記推定されるTPヘッドルームが前記TPヘッドルームの条件を満たさない場合に、前記開放されているTCP接続へ前記HTTP要求を出すための少なくとも1つの命令と
含む、コンピュータプログラム。
【請求項２６】
前記URLホストおよび前記1つまたは複数のサブリソースホストの各々に対する、少なくとも1つの接続を確立するための少なくとも1つの命令
をさらに含む、請求項25に記載のコンピュータプログラム。
【請求項２７】
DNSルックアップを待ち行列に入れるための少なくとも1つの命令
をさらに含む、請求項26に記載のコンピュータプログラム。
【請求項２８】
前記URLに対する前記ウェブページが完全にロードされた時に、前記ホストデータベースを更新するための少なくとも1つの命令
をさらに含む、請求項27に記載のコンピュータプログラム。
【請求項２９】
伝送制御プロトコル(TCP)接続が開放されているかどうかを判定するための少なくとも1つの命令と、
前記TCP接続が開放されている場合に、ホストがHTTPバージョン1.1以上のバージョンで動作しているかどうかを判定するための少なくとも1つの命令と
をさらに含む、請求項28に記載のコンピュータプログラム。
【請求項３０】
前記TCP RTOが前記TCP RTOの条件を満たす場合に、新たなTCP接続を開放するための少なくとも1つの命令
をさらに含む、請求項25載のコンピュータプログラム。
【請求項３１】
前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出すための少なくとも1つの命令
をさらに含む、請求項30に記載のコンピュータプログラム。
【国際調査報告】
2013546041.tif 000016
2013546041.tif 000017
2013546041.tif 000018