伝送制御プロトコル接続を確立する方法であって、ハイパーテキスト伝送プロトコル要求の一部として、uniformresourcelocatorを受信するステップと、前記URLによってホストデータベースを検索するステップと、前記URLに対するホストデータが利用可能かどうかを判定するステップと、URLホストおよび1つまたは複数のサブリソースホストに対してドメイン名サービスルックアップを実行するステップであって、すべてのDNSルックアップが、前記URLに対するホストデータが利用可能な時に、実質的に同時に並行に実行される、ステップとを含む、方法。前記URLホストおよび前記1つまたは複数のサブリソースホストの各々に対する、少なくとも1つのTCP接続を確立するステップをさらに含む、請求項1に記載の方法。メインリソースをロードするステップと、1つまたは複数のサブリソースをロードするステップとをさらに含む、請求項2に記載の方法。前記URLに対する前記ウェブページが完全にロードされた時に、前記ホストデータベースを更新するステップをさらに含む、請求項3に記載の方法。HTMLファイルが解析された後に、ダウンロードされるべき残りのオブジェクトを予測するステップをさらに含む、請求項3に記載の方法。伝送制御プロトコル接続が開放されているかどうかを判定するステップと、前記TCP接続が開放されている場合に、ホストがHTTPバージョン11以上のバージョンで動作しているかどうかを判定するステップとをさらに含む、請求項1に記載の方法。スループットヘッドルームが、TPヘッドルームの条件を満たすかどうかを判定するステップをさらに含む、請求項6に記載の方法。TCP再送信タイムアウトがTCPRTOの条件を満たすかどうかを判定するステップと、前記TCPRTOが前記TCPRTOの条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出すステップとをさらに含む、請求項7に記載の方法。前記TCPRTOが前記TCPRTOの条件を満たす場合に、新たなTCP接続を開放するステップと、前記TCPRTOが前記TCPRTOの条件を満たさない場合に、TCPウィンドウ利用率がTCPウィンドウ利用率の条件を満たすかどうかを判定するステップとをさらに含む、請求項8に記載の方法。前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たす場合に、新たなTCP接続を開放するステップと、前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出すステップとをさらに含む、請求項9に記載の方法。ハイパーテキスト伝送プロトコル要求の一部として、uniformresourcelocatorを受信するための手段と、前記URLによってホストデータベースを検索するための手段と、前記URLに対するホストデータが利用可能かどうかを判定するための手段と、URLホストおよび1つまたは複数のサブリソースホストに対してドメイン名サービスルックアップを実行するための手段であって、すべてのDNSルックアップが、前記URLに対するホストデータが利用可能な時に、実質的に同時に並行に実行される、手段とを含む、デバイス。前記URLホストおよび前記1つまたは複数のサブリソースホストの各々に対する、少なくとも1つの接続を確立するための手段をさらに含む、請求項11に記載のデバイス。メインリソースをロードするための手段と、1つまたは複数のサブリソースをロードするための手段とをさらに含む、請求項12に記載のデバイス。HTMLファイルが解析された後に、ダウンロードされるべき残りのオブジェクトを予測するための手段をさらに含む、請求項13に記載のデバイス。前記URLに対する前記ウェブページが完全にロードされた時に、前記ホストデータベースを更新するための手段をさらに含む、請求項11に記載のデバイス。伝送制御プロトコル接続が開放されているかどうかを判定するための手段と、前記TCP接続が開放されている場合に、ホストがHTTPバージョン11以上のバージョンで動作しているかどうかを判定するための手段とをさらに含む、請求項11に記載のデバイス。スループットヘッドルームが、TPヘッドルームの条件を満たすかどうかを判定するための手段をさらに含む、請求項16に記載のデバイス。TCP再送信タイムアウトがTCPRTOの条件を満たすかどうかを判定するための手段と、前記TCPRTOが前記TCPRTOの条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出すための手段とをさらに含む、請求項17に記載のデバイス。前記TCPRTOが前記TCPRTOの条件を満たす場合に、新たなTCP接続を開放するための手段と、前記TCPRTOが前記TCPRTOの条件を満たさない場合に、TCPウィンドウ利用率がTCPウィンドウ利用率の条件を満たすかどうかを判定するための手段とをさらに含む、請求項18に記載のデバイス。前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たす場合に、新たなTCP接続を開放するための手段と、前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出すための手段とをさらに含む、請求項19に記載のデバイス。メモリと、前記メモリにアクセス可能なプロセッサとを含むデバイスであって、前記プロセッサが、ハイパーテキスト伝送プロトコル要求の一部として、uniformresourcelocatorを受信し、前記URLによってホストデータベースを検索し、前記URLに対するホストデータが利用可能かどうかを判定し、URLホストおよび1つまたは複数のサブリソースホストに対してドメイン名サービスルックアップを実行するように動作可能であり、すべてのDNSルックアップが、前記URLに対するホストデータが利用可能な時に、実質的に同時に並行に実行される、デバイス。前記プロセッサが、前記URLホストおよび前記1つまたは複数のサブリソースホストの各々に対する、TCP接続を確立するようにさらに動作可能である、請求項21に記載のデバイス。前記プロセッサが、メインリソースをロードし、1つまたは複数のサブリソースをロードするようにさらに動作可能である、請求項22に記載のデバイス。前記プロセッサが、HTMLファイルが解析された後に、ダウンロードされるべき残りのオブジェクトを予測するようにさらに動作可能である、請求項23に記載のデバイス。前記プロセッサが、前記URLに対する前記ウェブページが完全にロードされた時に、前記ホストデータベースを更新するようにさらに動作可能である、請求項23に記載のデバイス。前記プロセッサが、伝送制御プロトコル接続が開放されているかどうかを判定し、前記TCP接続が開放されている場合に、ホストがHTTPバージョン11以上のバージョンで動作しているかどうかを判定するようにさらに動作可能である、請求項25に記載のデバイス。前記プロセッサが、スループットヘッドルームが、TPヘッドルームの条件を満たすかどうかを判定するようにさらに動作可能である、請求項26に記載のデバイス。前記プロセッサが、TCP再送信タイムアウトがTCPRTOの条件を満たすかどうかを判定し、前記TCPRTOが前記TCPRTOの条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出すようにさらに動作可能である、請求項27に記載のデバイス。前記プロセッサが、前記TCPRTOが前記TCPRTOの条件を満たす場合に、新たなTCP接続を開放し、前記TCPRTOが前記TCPRTOの条件を満たさない場合に、TCPウィンドウ利用率がTCPウィンドウ利用率の条件を満たすかどうかを判定するようにさらに動作可能である、請求項28に記載のデバイス。前記プロセッサが、前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たす場合に、新たなTCP接続を開放し、前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出すようにさらに動作可能である、請求項29に記載のデバイス。ワイヤレスポータブルコンピューティングデバイスのために伝送制御プロトコル接続を確立するための、コンピュータにより実行可能な命令からなるコンピュータプログラムであって、ハイパーテキスト伝送プロトコル要求の一部として、uniformresourcelocatorを受信するための少なくとも1つの命令と、前記URLによってホストデータベースを検索するための少なくとも1つの命令と、前記URLに対するホストデータが利用可能かどうかを判定するための少なくとも1つの命令と、URLホストおよび1つまたは複数のサブリソースホストに対してドメイン名サービスルックアップを実行するための少なくとも1つの命令であって、すべてのDNSルックアップが、前記URLに対するホストデータが利用可能な時に、実質的に同時に並行に実行される、命令とを含む、コンピュータプログラム。前記URLホストおよび前記1つまたは複数のサブリソースホストの各々に対する、少なくとも1つの接続を確立するための少なくとも1つの命令をさらに含む、請求項31に記載のコンピュータプログラム。メインリソースをロードするための少なくとも1つの命令と、1つまたは複数のサブリソースをロードするための少なくとも1つの命令とをさらに含む、請求項32に記載のコンピュータプログラム。前記URLに対する前記ウェブページが完全にロードされた時に、前記ホストデータベースを更新するための少なくとも1つの命令をさらに含む、請求項33に記載のコンピュータプログラム。伝送制御プロトコル接続が開放されているかどうかを判定するための少なくとも1つの命令と、前記TCP接続が開放されている場合に、ホストがHTTPバージョン11以上のバージョンで動作しているかどうかを判定するための少なくとも1つの命令とをさらに含む、請求項34に記載のコンピュータプログラム。スループットヘッドルームが、TPヘッドルームの条件を満たすかどうかを判定するための少なくとも1つの命令をさらに含む、請求項35に記載のコンピュータプログラム。TCP再送信タイムアウトがTCPRTOの条件を満たすかどうかを判定するための少なくとも1つの命令と、前記TCPRTOが前記TCPRTOの条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出すための少なくとも1つの命令とをさらに含む、請求項36に記載のコンピュータプログラム。前記TCPRTOが前記TCPRTOの条件を満たす場合に、新たなTCP接続を開放するための少なくとも1つの命令と、前記TCPRTOが前記TCPRTOの条件を満たさない場合に、TCPウィンドウ利用率がTCPウィンドウ利用率の条件を満たすかどうかを判定するための少なくとも1つの命令とをさらに含む、請求項37に記載のコンピュータプログラム。前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たす場合に、新たなTCP接続を開放するための少なくとも1つの命令と、前記TCPウィンドウ利用率が前記TCPウィンドウ利用率の条件を満たさない場合に、既存のTCP接続へ前記HTTP要求を出すための少なくとも1つの命令とをさらに含む、請求項38に記載のコンピュータプログラム。したがって、必要とされているのは、伝送制御プロトコル接続を確立する、改善されたシステムおよび方法である。図中、別段に規定されていない限り、類似の参照番号は、様々な図の全体を通じて、類似の部分を指す。例示的なという言葉は、一例、実例または例としてを意味するように本明細書で使用される。例示的なものとして本明細書で説明する任意の態様は、必ずしも他の態様よりも好ましい、または有利であると解釈されるものではない。本明細書では、アプリケーションという用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチのような、実行可能コンテンツを有するファイルも含み得る。加えて、本明細書で言及するアプリケーションは、開かれる必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルのような、本質的に実行可能ではないファイルも含み得る。コンテンツという用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチのような、実行可能コンテンツを有するファイルも含み得る。加えて、本明細書で言及するコンテンツは、開かれる必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルのような、本質的に実行可能ではないファイルも含み得る。本明細書で使用される場合、コンポーネント、データベース、モジュール、システムなどの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、実行中のソフトウェアを問わず、コンピュータ関連のエンティティを指すことが意図されている。たとえばコンポーネントは、プロセッサ上で作動しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラムおよびまたはコンピュータであってよいが、これらには限定されない。例を挙げると、コンピューティングデバイス上で作動しているアプリケーションとコンピューティングデバイスの両方が、コンポーネントであり得る。1つまたは複数のコンポーネントは、プロセスおよびまたは実行スレッドの中に存在してよく、1つのコンポーネントは、1つのコンピュータに局在化していてよく、かつまたは2つ以上のコンピュータに分散していてもよい。加えて、これらのコンポーネントは、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。コンポーネントは、1つまたは複数のデータパケットを有する信号に従うなどして、ローカルプロセスおよびまたはリモートプロセスによって通信することができる。最初に図1および図2を参照すると、例示的なポータブルコンピューティングデバイスが示されており、全体的に100と表される。図示のように、PCD100は、ハウジング102を含み得る。ハウジング102は、上側ハウジング部104および下側ハウジング部106を含み得る。図1は、上側ハウジング部104がディスプレイ108を含み得ることを示す。特定の態様では、ディスプレイ108はタッチスクリーンディスプレイでもよい。上側ハウジング部104は、トラックボール入力デバイス110も含み得る。さらに、図1に示されるように、上側ハウジング部104は、電源投入ボタン112および電源切断ボタン114を含み得る。図1に示されるように、PCD100の上側ハウジング部104は、複数のインジケータライト116およびスピーカー118を含み得る。各インジケータライト116は、発光ダイオードでもよい。特定の態様では、図2に示すように、上側ハウジング部104は下側ハウジング部106に対して移動可能である。具体的には、上側ハウジング部104は下側ハウジング部106に対してスライド可能であってよい。図2に示すように、下側ハウジング部106はマルチボタン型キーボード120を含み得る。特定の態様では、マルチボタン型キーボード120は標準的なQWERTYキーボードであり得る。マルチボタン型キーボード120は、上側ハウジング部104が下側ハウジング部106に対して動かされた時に現れ得る。図2は、PCD100が下側ハウジング部106上にリセットボタン122を含み得ることをさらに示している。図3を参照すると、ポータブルコンピューティングデバイスの例示的な非限定的態様が示されており、全体的に100と表される。図示のように、PCD100は、互いに結合されたデジタルシグナルプロセッサ324およびアナログシグナルプロセッサ326を含むオンチップシステム322を含む。オンチップシステム322は、3つ以上のプロセッサを含み得る。たとえば、当業者が理解するように、オンチップシステム322は、複数のコアプロセッサおよび1つのARM11プロセッサを含み得る。図3に示すように、ディスプレイコントローラ328およびタッチスクリーンコントローラ330が、デジタルシグナルプロセッサ324に結合される。次に、オンチップシステム322の外部にあるタッチスクリーンディスプレイ108が、ディスプレイコントローラ328およびタッチスクリーンコントローラ330に結合される。図3は、ビデオエンコーダ334、たとえば位相反転線エンコーダ、sequentialcouleuramemoireエンコーダ、または全国テレビジョン方式委員会エンコーダが、デジタルシグナルプロセッサ324に結合されることをさらに示している。さらに、ビデオ増幅器336が、ビデオエンコーダ334およびタッチスクリーンディスプレイ108に結合される。また、ビデオポート338が、ビデオ増幅器336に結合される。図3に示すように、ユニバーサルシリアルバスコントローラ340が、デジタルシグナルプロセッサ324に結合される。また、USBポート342が、USBコントローラ340に結合される。メモリ344および加入者識別モジュールカード346も、デジタルシグナルプロセッサ324に結合され得る。さらに、図3に示すように、デジタルカメラ348が、デジタルシグナルプロセッサ324に結合され得る。例示的な態様では、デジタルカメラ348は、電荷結合デバイスカメラまたは相補型金属酸化物半導体カメラである。図3にさらに示されるように、ステレオオーディオコーデック350が、アナログシグナルプロセッサ326に結合され得る。さらに、オーディオ増幅器352が、ステレオオーディオコーデック350に結合され得る。例示的な態様では、第1のステレオスピーカー354および第2のステレオスピーカー356が、オーディオ増幅器352に結合される。図3は、マイクロフォン増幅器358も、ステレオオーディオコーデック350に結合され得ることを示している。加えて、マイクロフォン360が、マイクロフォン増幅器358に結合され得る。特定の態様では、周波数変調ラジオチューナー362が、ステレオオーディオコーデック350に結合され得る。また、FMアンテナ364が、FMラジオチューナー362に結合される。さらに、ステレオヘッドフォン366が、ステレオオーディオコーデック350に結合され得る。図3は、高周波送受信機368が、アナログシグナルプロセッサ326に結合され得ることをさらに示している。RFスイッチ370が、RF送受信機368およびRFアンテナ372に結合され得る。図3に示すように、キーパッド374が、アナログシグナルプロセッサ326に結合され得る。また、マイクロフォンを備えたモノヘッドセット376が、アナログシグナルプロセッサ326に結合され得る。さらに、バイブレータデバイス378が、アナログシグナルプロセッサ326に結合され得る。図3は、電源380が、オンチップシステム322に結合され得ることも示している。特定の態様では、電源380は、電力を必要とするPCD100の様々なコンポーネントに電力を供給する、直流電源である。さらに、特定の態様では、電源は、AC電源に接続された交流DC変換器から得られる、充電式DCバッテリまたはDC電源である。図3は、PCD100が、データネットワーク、たとえばローカルエリアネットワーク、パーソナルエリアネットワーク、または任意の他のネットワークにアクセスするために使用できる、ネットワークカード388も含み得ることをさらに示している。ネットワークカード388は、Bluetoothネットワークカード、WiFiネットワークカード、パーソナルエリアネットワークカード、パーソナルエリアネットワーク超低電力技術ネットワークカード、または当技術分野でよく知られている任意の他のネットワークカードであってよい。さらに、ネットワークカード388は、チップに組み込まれてよく、すなわち、ネットワークカード388は、チップでのフルソリューションであってもよく、個別のネットワークカード388でなくてもよい。図3は、PCD100が、メモリ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によって実行され、1つまたは複数のTCP接続を必要とするウェブページに対応し得る、モバイルウェブブラウザ382を含み得る。当業者によって理解され以下で説明されるように、モバイルウェブブラウザアプリケーションまたはモジュール382は、インターネットプロトコル層422の上に存在する伝送制御プロトコルモジュール416A~Cと通信することができる。当業者によって理解されるように、IP層422は、ネットワークバッファ層424と通信する。IP層422は、モデムサブシステム404と通信し、モデムサブシステム404は、第2の中央演算処理装置またはアナログシグナルプロセッサ326によって実行される。モバイルウェブブラウザモジュール382は、HTTPスタック412およびドメイン名サーバモジュール414を含む。ウェブブラウザモジュール382は、アプリケーションサブシステム402とともにモデムサブシステム404の要素も継続的に監視できるという点で、動的であり得る。当業者によって理解されるように、ウェブブラウザ382のDNSモジュール414は、テキストベースのドメイン名を、数値的なインターネットプロトコルアドレスへ変換することを担い得る。DNSモジュール414は、IPアドレスをHTTPスタック412へ伝え戻すことができ、HTTPスタック412が次いで、TCP接続モジュール416A~Cの1つへIPアドレスを伝える。HTTPスタック412が、TCP接続モジュール416A~Cの1つから、ウェブページのようなメタオブジェクトを返す場合、HTTPスタックモジュール412は、何らかの状態情報をクライアントのウェブブラウザモジュール382へ提供することもできる。この状態情報は、限定はされないが、highspeedschedulecontrolchannelの有効状態、highspeedtransportblocksize、層1のブロックエラーレート、無線リンク制御のプロトコルデータユニットのサイズ、無線リンク制御のダウンリンクのサービスデータユニットの受信バイト、highspeeddownlinkpacketaccessユーザ装置のカテゴリ、メディアアクセス制御のアップリンクのバッファ状態報告、enhanceduplinkの送信時間間隔、enhancedtransportformatcombinationindexのテーブルインデックス、ETCFI、新たな送信の数、無線リンク制御のアップリンクのサービスデータユニットの送信バイト、diversitytransmissiondiversityreceptionのモード、enhanceduplinkのユーザ装置のカテゴリ、メディアアクセス制御の送信層のトランスポートブロックサイズ、パケットデータコンバージェンスプロトコルのダウンリンクのサービスデータユニットの受信バイト、mediaaccesscontroluplinktransportblocksize、パケットデータコンバージェンスプロトコルのアップリンクのサービスデータユニットの送信バイト、およびユーザ装置のカテゴリを含み得る。当業者によって理解されるように、トランスポート制御プロトコル接続モジュール416A~Cは、一般的なネットワーキングのOpenSystemsInterconnectionモデルのトランスポート層において動作する。TCP接続モジュール416は、宛先ホストへの送信のためにネットワークインフラストラクチャへ伝送するのに適したデータユニットの形へと、アプリケーションデータブロックをカプセル化すること、または、ネットワークデータグラムを抽象化し、モバイルウェブブラウザ382へペイロードを送達することによって、逆方向のトランザクションを管理することを担う。TCP接続モジュール416は、限定はされないが、再送信タイムアウト、通知される受信ウィンドウ、送信受信スループット、パケット統計、TCP接続の全体数、推定される往復時間、受信されるバイト数、順序通りのパケットの数、およびTCP送信ウィンドウサイズを含む、情報を提供することができる。インターネットプロトコルモジュール422は、TCP接続モジュール416およびネットワークバッファ層424と通信する。IPモジュール422には、区別されたプロトコルデータグラムを、そのアドレスに基づいてモバイルウェブブラウザからサーバへ送達する役割がある。IPモジュール422は、データグラムのカプセル化のための、アドレス指定方法および構造を定義する。IPモジュール422は、インターネットプロトコルバージョン4とともにインターネットプロトコルバージョン6を利用することができ、IPv6は本書の時点で実際に展開されている。しかし、まだ開発されていない今後のインターネットプロトコルを含む、他のバージョンのインターネットプロトコルが、本発明の範囲に含まれる。ネットワークバッファ層424は、IPモジュール422およびモデムサブシステム404と通信する。ネットワークバッファ層424は、イーサネットおよび他のIEEE802カプセル化方式のような、すべてのハードウェア特有のインターフェースの方法を含み得る。ネットワークバッファ層424は、ローカルネットワークのトポロジーを調査することができる。ネットワークバッファ層424は、ルータおよび近隣のホストを見つけることができ、リンク上の他のノードを見つけることを担い得る。ネットワークバッファ層424は、他のノードのリンク層アドレスを求め、利用可能なルータを見つけ、他のアクティブな近隣ノードへの経路についての到達可能性情報を保持することができる。ウェブブラウザモジュール382は、httpスタック412とともにTCPモジュール416と通信することができる。ウェブブラウザモジュール382はまた、全地球測位システムモジュール438などの衛星ナビゲーションシステムモジュールのような、1つまたは複数のセンサと通信することができる。モデムサブシステム404は、無線リンク制御層434、メディアアクセス制御層432、物理層430、無線中継制御モジュール456、および、全地球測位システム438のような衛星ナビゲーションシステムを含み得る。モデムサブシステム404のこれらの要素は、図3に示すようなRF送受信機368などの、通信ハードウェアとの通信を担い得る。モデムサブシステム404の要素の各々は、メッセージを送信し、ウェブブラウザモジュール382からクエリを受信することができる。たとえば、RRCモジュール436は、限定はされないが、highspeeddownlinkpacketaccessのカテゴリ情報、enhanceduplinklayerのカテゴリ情報、および、discontinuousreceptiontransmissionの設定情報のような情報を、伝えることができる。RLCモジュール434は、スループットとともに、無線リンク制御プロトコルデータユニットサイズを伝えることができる。MAC層432は、限定はされないが、バッファ状態報告情報およびenhanceddedicatedchannelトランスポートフォーマット情報のような、アップリンク情報を伝えることができる。物理層430は、限定はされないが、highspeedtransportblocksize、変調、channelqualityindication、ブロックエラーレートの測定結果、多入力多出力、受信機自動利得制御、さらに、イコライザ集積回路受信機ダイバーシティのような、ダウンリンク情報を伝えることができる。物理層430はまた、限定はされないが、BLER、変調、および送信機自動利得制御のような、アップリンク情報を伝えることができる。当業者が理解するように、RRCモジュール436、RLCモジュール434、MACモジュール432、およびPHYモジュール430は、evolvedhighspeedpacketaccesssystem816を形成し得る。一方、GPSモジュール438は、限定はされないが、ポータブルコンピューティングデバイス100の位置、速さまたは速度のような情報を、ウェブブラウザモジュール382に提供することができる。アプリケーションシステム402およびモデムサブシステム404の要素を監視することによって、ウェブブラウザモジュール382は、ワイヤレスネットワークの状態とともにポータブルコンピューティングデバイス100自身の状態を監視することによって、ワイヤレスポータブルコンピューティングデバイス100が、PCD100の操作者が見る可能性の高いウェブページを、インテリジェントに選択できるようにし得る。ウェブブラウザモジュール382は、監視された状態を使うことによって、ロードすべきウェブページのサイズおよび種類を求めて、サーバからダウンロードされることになるウェブページに対して適切なビットレートを求めることができる。アプリケーションサブシステム402およびモデムサブシステム404によって提供されたデータに基づく、監視された状態の一部は、限定はされないが、現在のバッファのサイズおよび、バッファの増加分がポータブルコンピューティングデバイス100によって消費される割合を含むメモリ状態、現在のおよび過去のWWANの帯域幅、現在のおよび過去のWWAN信号の強度、利用可能なIPソケットデータ接続の数、全体のビデオクリップの長さの推定値および、信号対雑音比の履歴ヒストグラムおよび位置情報サービスに基づくウェブページの各ファイルセグメントの各uniformresourcelocatorダウンロード時間の推定値、セルタワー識別三角測量とGPSモジュール143のような位置に基づく技術の使用による正確な経度緯度とのいずれかによって計算される、ポータブルコンピューティングデバイス100の速度、ならびに、加速度計およびまたはLBSを使ったポータブルコンピューティングデバイス100の移動の方向を含む。ウェブブラウザモジュール382は、維持しなければならない所定の期間を計算することができ、または、信号対雑音比が継続的に高いままになるまで、かつまたはBLERが継続的に低いままになるまで、低いビットレートを使うことができる。ウェブブラウザモジュール382はまた、理想的なネットワークの状態の間、たとえば、ポータブルコンピューティングデバイス100が静止している時、または、ユーザがポータブルコンピューティングデバイス100を持って歩いている場合のような、ポータブルコンピューティングデバイス100が比較的低速の状態で動作している時に、電力を最小にするために、モデムサブシステム404において任意の種類の受信機ダイバーシティ機能をオンまたはオフすることができる。動作中、TCP接続モジュール416A~Cは、接続情報をウェブブラウザ382に提供することができ、ウェブブラウザ382は、他のTCP接続の効率的な確立、既存のTCP接続の使用、またはこれらの組合せを支援するために、接続情報を使うことができる。接続情報は、TCP再送信タイムアウトの推定値、TCP受信ウィンドウサイズ、最後の順序の狂ったパケット、またはこれらの組合せを含み得る。PHYモジュール430、MACモジュール432、RLCモジュール434、RRCモジュール436、GPS438、またはこれらの組合せは、モデムサブシステム情報をウェブブラウザ382に提供することができる。ウェブブラウザ382はまた、他のTCP接続の効率的な確立、既存のTCP接続の使用、またはこれらの組合せを支援するために、モデムサブシステム404の情報も使うことができる。モデムサブシステム情報は、GPSの垂直方向の速さ、GPSの水平方向の速さ、HSPAダウンリンクで実現可能な最大のスループット、HSPADLの現在のTP、またはこれらの組合せを含み得る。ウェブブラウザ382は、新たなTCP接続を確立するために、または既存のTCP接続を再使用するために、本明細書で説明されたように、接続情報、モデムサブシステム情報、またはこれらの組合せを使うことができることが理解されよう。通常のポータブルコンピューティングデバイス、たとえば携帯電話では、ウェブブラウザ382は、メインリソース、すなわちメインHTMLファイルを、主要なホストサーバからロードすることができる。メインリソースは通常、ユーザがリンクをクリックした時またはuniversalresourcelocatorを入力した時に、インターネットウェブブラウザがダウンロードする、最初のリソースを含む。ウェブページでは、メインリソースは通常、ハイパーテキストマークアップ言語ファイルである。ユーザが画像へのリンクをクリックする場合、メインリソースは画像ファイルであり得るが、通常、ウェブページのメインリソースまたは主要リソースは常にHTMLファイルである。HTMLファイルは通常、サブリソースを有し得る唯一の種類のリソースである。また、HTMLという用語は、XHTMLまたはHTML5を含むものとして、当業者によって理解される。一方、サブリソースは通常、メインリソース内で参照または規定される、追加のファイルである。サブリソースは通常、ウェブページを完全かつ正確に表示するのに必要である。サブリソースは、限定はされないが、他の二次的なHTMLファイルに関連するファイル、CSSファイル、JavaScriptファイル、Flashファイル、および画像ファイルを含む、様々な種類のファイルであってよい。主要なホストは、各々が異なるドメイン名を有する1つまたは複数の二次的なホストサーバへ、ウェブブラウザを向けることができる。各々の異なるドメイン名に対して、DNSルックアップが、TCP接続の確立の前に実行される。連続して実行されるより多量のDNSルックアップによって、ウェブブラウザによる、TCP接続の確立ならびにリソースおよびサブリソースの取り出しが、かなり遅くなり得る。本明細書で開示される方法およびシステムは、DNSルックアップおよびTCP接続の確立をかなり高速化することができる。図5および図6を参照すると、TCP接続を確立する方法の第1の態様が示されており、全体的に500と指定される。方法500は、ブロック502においてDOループで開始することができ、このDOループでは、uniformresourcelocatorがウェブブラウザに入力されると、以下のステップが実行される。URLは、ハイパーテキスト伝送プロトコル要求の一部であってよい。ブロック504において、ウェブブラウザ382が、現在のURLを有するメモリリソース334内に保持される、ホストデータベース403を検索することができる。ホストデータベース403は、URLによってインデックスを付けられた、サーバなどのホストのリストを含み得る。これらのホストのリストは、ある特定のURLと関連付けられるコンテンツがデバイス上でロードされた最後の時に、そのURLに対してロードされたリソースおよびサブリソースを格納する、サーバである。PCD100のユーザが特定のURLへ進むと、データベース403を参照することができ、エントリが見つかると、DNSルックアップおよびTCP接続が、データベースのエントリにおいて一覧にされている各ホストに対して、メインリソースのロードと並行して実行される。判定ブロック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ホストに対するHTTPGET命令を実行することができる。ブロック608において、ウェブブラウザ382が、URLホストからリソースを受信することができる。ブロック610において、ウェブブラウザ382が、URLホストからのリソースをメモリリソース344にロードすることができる。ブロック612に移り、ウェブブラウザ382が、サブリソースホストに対するDNSルックアップを実行することができる。次いでブロック614に移り、ウェブブラウザ382が、サブリソースホストに対するTCP接続を確立することができる。ブロック616において、ウェブブラウザ382が、サブリソースホストに対するHTTPGET命令を実行することができる。ブロック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は、PCD100、DNSサーバ704、第1のホストサーバ706A、および第2のホストサーバ706Bに関して説明される。ステップ710および712において開始すると、PCD100が、第1のクエリおよび第2のクエリをDNSサーバ704に送信することができる。第1のクエリ711Aおよび第2のクエリ711Bは、並行に、すなわち実質的に同時に送信され得る。ステップ714Aおよび714Bにおいて、PCD100は、第1の応答および第2の応答をDNSサーバ704から受信することができる。第1の応答714Aは、PCD100を第1のホスト706Aへ向けることができ、第2の応答714Bは、PCD100を第2のホスト706Bへ向けることができる。第1のホスト706Aは、PCD100において、たとえばウェブブラウザ382においてロードされることになる、1つまたは複数の主要なリソースを提供することができ、第2のホスト706Bは、1つまたは複数のサブリソースを提供することができる。ステップ718において、PCD100が、第1のHTTPGET命令715Aを、第1のホスト706に送信することができる。さらに、ステップ720において、PCD100が、第2のHTTPGET命令715Bを、第2のホスト708に送信することができる。HTTPGET命令715A、715Bは、並行に、すなわち実質的に同時に送信され得る。ステップ722において、PCD100が、第1のホスト706Aから1つまたは複数のメインリソース717A~Cを受信することができる。さらに、ステップ724において、PCD100が、第2のホスト708から1つまたは複数のサブリソース719A、719Bを受信することができる。特定の態様では、PCD100のウェブブラウザ382は、メインリソース、すなわちメインHTMLファイルをロードすることができ、そして、PCD100のウェブブラウザ382は、サブリソースをロードすることができる。ロードされると、メインリソースおよびサブリソースは、PCD100のディスプレイを介して見るためのウェブページを確立することができる。ここで図8および図9を参照すると、1つまたは複数の伝送制御プロトコル接続を確立する方法の第3の態様が示されており、全体的に800と指定される。ステップ802において開始すると、GPSモニタ804は、ポータブルコンピューティングデバイスに関連するGPSの垂直方向の速さを監視し、またはそれ以外の場合には測定することができる。ステップ806において、GPSモニタ804は、PCDに関連するGPSの水平方向の速さを測定することができる。その後、ステップ808において、GPSモニタ804は、GPSの垂直方向の速さをウェブブラウザ382へ出力することができる。さらに、ステップ812において、GPSモニタ804は、GPSの水平方向の速さをウェブブラウザ382へ出力することができる。ステップ814へ移り、highspeedpacketaccessシステム816が、HSPAダウンリンクに対して実現可能な最大のスループットを求めることができる。さらに、ステップ818において、HSPAシステム816が、HSPADLに対する現在のTPを求めることができる。ステップ820において、HSPAシステム816は、HSPADLに対する実現可能な最大のTPを、ウェブブラウザ382へ出力することができる。また、ステップ822において、HSPAシステム816は、HSPADLに対する現在のTPを、ウェブブラウザ382へ出力することができる。ステップ824において、伝送制御プロトコルモジュール416が、TCP再送信タイムアウトの推定値を求めることができる。加えて、ステップ828において、TCPモジュール416が、TCP受信ウィンドウサイズを求めることができる。ステップ830において、TCPモジュール416が、最後の順序の狂ったパケット830を求めることができる。ステップ832へ移り、TCPモジュール416が、TCPRTOの推定値をウェブブラウザ382へ出力することができる。さらに、ステップ834へ移り、TCPモジュール416が、TCP受信ウィンドウサイズをウェブブラウザ382へ出力することができる。ブロック836へと続き、ウェブブラウザ382は、モバイル機器の速さを求めることができる。モバイル機器の速さは、以下の式によって求められ得る。上式で、vertspeedはステップ802におけるGPSの垂直方向の速さであり、horzspeedはステップ804におけるGPSの水平方向の速さである。ブロック838において、ウェブブラウザ382は、以下の式からHSPATPヘッドルームを求めることができる。HSPATPheadroommaxTPcurrentTP上式で、maxTPは、ステップ814において求められた実現可能な最大のHSPATPであり、currentTPは、ステップ818において求められた現在のHSPADLTPである。ブロック840において、ウェブブラウザ382は、推定されるTPヘッドルームを計算することができる。たとえば、モバイル機器の速さがモバイル機器の速さの条件を満たす場合、TPヘッドルームは0として計算され得る。それ以外の場合、すなわち、モバイル機器の速さがモバイル機器の速さの条件を満たさない場合、TPヘッドルームは、ステップ838において上で求められたTPHSPAヘッドルームと等しく設定され得る。モバイル機器の速さの条件は、モバイル機器の速さの閾値であってよく、モバイル機器の速さが閾値よりも大きい場合に、モバイル機器の速さの条件を満たしていると考えることができる。たとえば、閾値は、時速1マイル、時速2マイル、時速3マイルなどであってよい。ブロック840から、方法800は図9のブロック902に進むことができ、方法800は以下で説明するように継続することができる。ブロック842に進み、ウェブブラウザ382は、以下の式からTCPウィンドウ利用率サイズを求めることができる。TCPwindowutilizationHSPADLTPTCPRTOTCPReceiveWindowsize上式で、HSPADLTPは、ステップ818において求められた現在のHSPADLTPである。TCPRTOは、ステップ824で求められたTCPRTOの推定値である。TCPReceiveWindowSizeは、ステップ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バージョン11以上のバージョンで動作しているかどうかを、ウェブブラウザ382が判定することができる。ホストがHTTPバージョン11以上のバージョンで動作していない場合、方法800は以下で説明されるブロック918へ進むことができる。その後、方法800は終了することができる。判定ブロック908に戻り、ホストがHTTPバージョン11以上のバージョンで動作している場合、方法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において求められたTCPRTOがTCPRTOの条件を満たすかどうかを判定することができる。たとえば、TCPRTOの条件はTCPRTTの閾値であってよく、TCPRTOは、TCPRTOがTCPRTTの閾値よりも小さい場合に、TCPRTOの条件を満たし得る。特定の態様では、TCPRTTの閾値は、限定はされないが、50ms、200msなどの値を含み得る。判定ブロック914において、TCPRTOがTCPRTTの閾値よりも小さい場合、方法800はブロック918へ進むことができ、ウェブブラウザ382は、新たなTCP接続を開放することができる。その後、方法800は終了することができる。判定ブロック914に戻り、TCPRTOがTCPRTTの閾値よりも大きい場合、方法800は上で説明されたステップ910へ戻ることができ、ウェブブラウザ382は、既存のTCP接続に対してHTTP要求を出すことができる。図10を参照すると、1つまたは複数の伝送制御プロトコル接続を確立する方法の第4の態様が示されており、全体的に1000と指定される。ブロック1002において開始すると、ウェブブラウザ382は、1つまたは複数のネットワークリソースのすぐ後の性能を推定することができる。ブロック1004において、ウェブブラウザ382は、ダウンロードされるべきアイテムの数を予測することができる。さらに、ブロック1006において、ウェブブラウザ382は、ダウンロードされるべきアイテムのサイズを予測することができる。ブロック1008において、ネットワークリソースのすぐ後の性能、ダウンロードされるべきアイテムの数、ダウンロードされるべきアイテムのサイズ、またはこれらの組合せに少なくとも一部基づいて、ウェブブラウザ382は、既存のTCP接続を利用することができ、または新たなTCP接続を開放することができる。そして、方法1000は終了することができる。1つまたは複数のネットワークリソースのすぐ後の性能を推定するために、無線リンクの測定基準、モビリティの測定基準、TCPの測定基準、またはこれらの組合せが考慮され得る。無線リンクの測定基準は、ブロックエラーレート、信号対雑音比、実現されているスループット、RTT、またはこれらの組合せを含み得る。BLERは、不正常に伝送されたデータパケットの数を、伝送されるパケットの数で割ったものであり得ることが、理解され得る。SNRは、信号エネルギーと、信号を破損させ得る雑音エネルギーとの比であり得る。スループットは、通信チャネルを通じた、成功したメッセージの送達の平均速度であり得る。スループットは、ビット毎秒の単位で測定され得る。RTTは、信号のパルスまたはパケットが、ある特定の発信源からある特定の宛先へ移動し、再び戻ってくるのに必要な時間であり得る。モビリティの測定基準は、デバイスが静止しているかどうか、デバイスが移動しているかどうか、デバイスの垂直方向の速さ、デバイスの水平方向の速さ、デバイスの速さ、またはこれらの組合せを含み得る。TCPの測定基準は、脱落し順序の狂ったパケットについての統計、現在の接続スループット、現在の混雑状態および受信ウィンドウサイズ、RTOの推定値、またはこれらの組合せを含み得る。特定の態様では、ダウンロードされるべき残りのオブジェクトを予測するステップは、HTMLが解析され、DOMツリーが作成され、どの要求されたオブジェクトがキャッシュの中にないかに関する判定が行われた後に、行われ得る。キャッシュされていないリソースのサイズを推定するステップは、1つまたは複数のHTTPの測定基準、任意の未処理の要求のmimeのタイプ、リソースマニフェストファイル、キャッシュ中の既存の期限切れコンテンツ、またはこれらの組合せに基づいて、行われ得る。HTTPの測定基準は、未処理の要求についてのコンテンツの長さの情報、ヘッダがすでに受信されたかどうか、サーバがHTTP11をサポートするかどうかを示し得るサーバから受信されたHTTPバージョン情報、またはこれらの組合せを含み得る。未処理の要求のmimeのタイプは、新たな要求の予想されるmimeのタイプを含み得る。新たな要求の予想されるmimeのタイプは、URLおよびファイル名の拡張子から推測され得る。あるいは、予想されるmimeのタイプは、またはのような囲みタグによって、ブラウザによって別個に提供されてもよい。リソースマニフェストファイルは、gzipファイルとして取得され得るような、ページ上のコンテンツのインデックスを含み得る。ウェブページによってサポートされるかクライアントのブラウザによって作成されるかに関わらず、リソースマニフェストをキャッシュすることは、リソースマニフェストファイルのために優先され得る。キャッシュ中に存在する期限切れのコンテンツは、コンテンツのサイズを推定するために使われ得る。たとえば、期限切れのスクリプトが12kBであったキャッシュに存在する場合、更新されたスクリプトのサイズは同様であると仮定するのは妥当である。上の測定基準の一部またはすべてが、判定ブロック実行エンジンへの入力としての役割を果たし、判定ブロック実行エンジンは、新たなソケットを開放すること、既存のアイドル状態のソケットを再使用すること、既存のビジー状態のソケットへの要求をパイプライン処理すること、または、後のために要求をキューに加えることのいずれかを行うと、決定する。判定ブロック実行エンジンは、ウェブブラウザ382、ウェブブラウザアプリケーション382の一部、別個のアプリケーション、またはこれらの組合せであってよい。図11は、全体的に1100と指定される、1つまたは複数の伝送制御プロトコル接続を確立する方法の第5の態様を示す。ブロック1102において開始すると、HTTP要求が、ウェブブラウザ382によって開始され得る。判定ブロック1104へ移り、ウェブブラウザ382が、TCP接続が現在開放されているかどうかを判定することができる。TCP接続が現在開放されていない場合、方法1100はブロック1106へ続くことができ、ウェブブラウザ382は、新たなTCP接続を開放することができる。その後、方法1100は終了することができる。判定ブロック1104に戻り、ウェブブラウザ382が、TCP接続が開放されていると判定する場合、方法1100は、判定ブロック1108へ進むことができる。判定ブロック1108において、ウェブブラウザ382は、開放されたTCP接続またはソケットを通じて現在受信されている、リソースまたはサブリソースのビット単位での全体のサイズが、知られているかどうかを判定することができる。知られている場合、方法1100はブロック1110に進むことができ、ウェブブラウザ382はダウンロード完了時間を求めることができる。ダウンロード完了時間は、以下の式によって求められ得る。DLTT上式で、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を求めることができる。推定されるダウンロード完了時間は、以下の式から求められ得る。DLESTT上式で、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つまたは複数の伝送制御プロトコル接続を確立する方法の第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は、携帯電話デバイス、携帯情報端末デバイス、スマートブックコンピューティングデバイス、ネットブックコンピューティングデバイス、ラップトップコンピューティングデバイス、デスクトップコンピューティングデバイス、またはそれらの組合せであってよい。また、様々な方法ステップは、新しい方法を作成するために、任意の順序で組み合わされ得る。本明細書で説明される構成によって、本明細書のシステムおよび方法を使って、DNSルックアップをかなり高速化することができる。さらに、本明細書のシステムおよび方法は、新たなTCP接続の効率的な確立、TCP接続の再使用、またはこれらの組合せのために使われ得る。一態様では、デバイス、たとえばデバイスに記憶されたウェブブラウザ382は、図5に示されるように、ある特定のURLと関連付けられるコンテンツがデバイス上でロードされた最後の時に、そのURLに対してロードされたサブリソースのロード元であるすべてのホストの、URLによってインデックスを付けられたデータベースを、メモリ344に保持することができる。ユーザが特定のURLへ進むと、データベース403を参照することができ、エントリが見つかると、DNSルックアップおよびTCP接続の確立が、データベースのエントリにおいて一覧にされている各ホストに対して、メインリソースのロードと並行して実行される。さらに、ページが完全にロードされた後、データベース403は、最新のロードに関して連絡されたホストの実際のセットによって、更新され得る。ブラウザは、最新のロードにおいて連絡されなかったすべてのホストを削除し、または、古いリストを新しいリストと統合することを選択できる。この手法は、セルラーのカバレッジ領域の端部では有用であり得る。そのような領域では、ダウンロード性能が依然として適正、たとえば300kbpsであり得るとしても、アップリンク性能がかろうじて使用可能な状態、たとえば4kbpsにまで劣化することがある。従来のコンピューティングデバイスにおいてHTTPGET命令に続いて行われる、DNSルックアップの本発明による手法と従来の手法は、少なくともHTTPオブジェクトを返信するための時間の分だけアップリンク接続が遅れ、かつ、メインリソースがロードされた後にのみアップリンク接続が行われるという点で一致する。提案された手法は、最終的には必要ではない可能性のあるいくつかのDNSルックアップを実行し得るが、メインリソースがロードされる前にDNSルックアップを開始し、その後のHTTPGET命令タスクによって、DNSルックアップの間隔を空けるのではなくDNSルックアップを待ち行列に入れることで、より良好なアップリンク性能が得られる。1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装することができる。ソフトウェアで実装した場合、これらの機能を、機械可読媒体、すなわちコンピュータ可読媒体などのコンピュータプログラム製品に記憶することができ、または、そのようなコンピュータプログラム製品上の1つもしくは複数の命令またはコードとして送信することができる。コンピュータ可読媒体は、1つの場所から別の場所へのコンピュータプログラムの転送を容易にするあらゆる媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CDROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを伝送もしくは記憶するために使用され、コンピュータによってアクセスされ得る、その他の媒体を含み得る。また、あらゆる接続がコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、ウェブサイト、サーバ、または他のリモートソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線、または、赤外線、無線およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または、赤外線、無線およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれ得る。本明細書で使用する場合、ディスクおよびディスクは、コンパクトディスク、レーザディスク、光ディスク、デジタル多用途ディスク、フレキシブルディスク、およびブルーレイディスクを含み、ディスクは、通常、磁気的にデータを再生し、ディスクは、レーザで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。選択された態様が詳細に示され詳述されてきたが、以下の請求項によって定義されるような本発明の趣旨および範囲から逸脱することなく、本明細書において様々な置換および改変を実施できることが理解されよう。