(57)【要約】   ネットワークのスループットを測定するシステム。データブロックが送信され（３２４）、各ブロックのデータ速度が求められる（３２６）。一定ブロック（３２６）のスループットを収集し、平均することによって、正確な測定が行われる。システムは、コールセンタに接続された診断ユニットと接続された状態で示される。顧客の問題が発生することによって、ユーザは診断ウェブページに誘導される。一旦ユーザコンピュータがウェブページにアクセスする（３１６）と、診断ユニットは、データブロックをユーザコンピュータに送出する（２１６）か、又は、ユーザコンピュータがデータブロックを診断ユニットに送出する（３２４）ようにさせるコードをウェブページに埋め込むことができる。
2007523508.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークのスループットを測定する方法であって、
ａ）前記ネットワークを通じてデータブロックを送信し、
ｂ）前記ブロックの前記送信時間を表す値を測定し、
ｃ）前記ブロックの前記データ送信レートを計算し、
ｄ）停止イベントが発生するまで、ステップａ）、ｂ）、及びｃ）を繰り返し、前記停止イベントは、或る数のブロックの送信、又は、或る時間量の経過の最初の発生であり、
ｅ）前記ブロックのうちの選択されたブロックの前記データ送信レートを平均することによって、前記ネットワークスループットを計算する、
ことを含む方法。
【請求項２】
前記ネットワークがバースト性ネットワークであることがわかっているとき、前記ブロックのうちの前記選択されたブロックは、前記測定中にデータレートがそれについて計算された前記ブロックの全てから成る、請求項１に記載の方法。
【請求項３】
前記ネットワークが非バースト性ネットワークであることがわかっているとき、前記ブロックのうちの前記選択されたブロックは、前記測定中に、送信された全てのブロックの平均データ送信レートから指定した量だけ小さくなるようにデータレートがそれについて計算された前記ブロックのみから成る、請求項１に記載の方法。
【請求項４】
データブロックのサイズはネットワークパケット内に適合するように選択される、請求項１に記載の方法。
【請求項５】
データブロックのサイズは、前記ネットワークに接続されるコンピュータのアプリケーション層が、バッファリングのための遅延なしで、前記ブロックを含むメッセージを前記ネットワークに渡すように選択される、請求項４に記載の方法。
【請求項６】
前記送信時間は、前記ネットワークに接続されるコンピュータのアプリケーションプログラミング層で測定される、請求項５に記載の方法。
【請求項７】
データブロックの送信は、あるバッファを有するソケットを確立するオペレーティングシステム上で実行されるアプリケーションプログラムからメッセージを生成することを含み、前記方法はさらに、前記ソケットバッファのサイズを設定することを含む、請求項１に記載の方法。
【請求項８】
データブロックのサイズは２キロバイトより小さい、請求項１に記載の方法。
【請求項９】
前記スループットは上流スループットで測定され、前記方法は、下流スループットを測定することをさらに含む、請求項１に記載の方法。
【請求項１０】
ネットワークのスループットを測定する方法であって、
ａ）ユーザコンピュータとサーバの間の接続を確立し、
ｂ）前記サーバによって、診断ウェブページを前記ユーザに提示し、
ｃ）停止イベントが発生するまで、前記ユーザコンピュータと前記サーバの間で、前記ネットワークを通じてデータブロックを繰り返し送信し、前記停止イベントは、或る数のブロックの送信又は或る時間量の経過の最初の発生であり、
ｄ）前記ブロックの送信時間を表す値を測定し、
ｅ）前記ブロックのうちの選択されたブロックのデータ送信レートを平均することによって前記ネットワークスループットを計算する、
ことを含む方法。
【請求項１１】
前記ウェブページは、前記ユーザコンピュータが、データブロックを前記サーバに送信させるようにするスクリプトを含むＨＴＭＬページとして前記ユーザに提示される、請求項１０に記載の方法。
【請求項１２】
前記ネットワークはＡＤＳＬネットワークであり、前記コンピュータスループットは前記上流スループットを表す、請求項１１に記載の方法。
【請求項１３】
前記下流スループットは個別に測定される、請求項１２に記載の方法。
【請求項１４】
前記ＨＴＭＬページは、前記データブロックにおいて送信される試験ペイロードをさらに含む、請求項１１に記載の方法。
【請求項１５】
データブロックを繰り返して送信することを含み、
ａ）データブロックの送信は、ブロックを前記サーバから前記ユーザコンピュータに送信することを含み、
ｂ）送信時間を表す値は、前記ユーザコンピュータからの連続するアクノレッジ間の時間から導出される、
請求項１０に記載の方法。
【請求項１６】
前記サーバは前記ネットワークに設置される診断ユニットである、請求項１０に記載の方法。
【請求項１７】
ａ）ネットワークオペレータによって管理されるコールセンタにおいて、前記ネットワークユーザからの呼を受け取り、
ｂ）前記診断ウェブページにアクセスするように前記ユーザを誘導し、結果を受け取り、
ｃ）前記コールセンタで使用するために、前記計算されたネットワークスループットを受け取る、
ことをさらに含む請求項１０に記載の方法。
【請求項１８】
前記時間経過は１０秒未満である、請求項１０に記載の方法。
【請求項１９】
インターネットサービスプロバイダのために、前記計算されたスループットをコールセンタに提供することをさらに含む、請求項１０に記載の方法。
【請求項２０】
前記ネットワークは、非バースト性ネットワークであり、前記ブロックのうちの前記選択されたブロックは、前記ブロックの送信時間と他の全てのブロックの平均送信時間との間の関係に基づいて選択される、請求項１０に記載の方法。
【請求項２１】
ネットワークのアクセス部分において、ユーザが経験するスループットを測定するように構成されたネットワークであって、ネットワークに接続された診断ユニットを備え、該診断ユニットは、
ａ）前記ユーザが前記診断ユニットにアクセスするときに、診断ウェブページをユーザコンピュータに提示し、
ｂ）前記ユーザコンピュータと前記診断ユニットの間での、前記アクセスネットワークを通じたデータブロックの繰り返し送信を制御し、
ｃ）前記ブロックの送信時間を表す値を測定し、
ｄ）停止イベントが発生する前に受信された前記ブロックのうちの選択されたブロックのデータ送信レートを平均することによって前記ネットワークスループットを計算する、
プログラミングを有し、前記停止イベントは、或る数のブロックの送信又は或る時間量の経過の最初の発生である、ネットワーク。
【請求項２２】
前記診断ユニットは、前記上流及び下流方向のスループットを測定するようにプログラムされる、請求項２１に記載のネットワーク。
【請求項２３】
前記診断ユニットは、データブロックを前記ユーザコンピュータに送信することによって、下流スループットを測定し、前記ユーザコンピュータによって送出されるアクノレッジメッセージ間の時間差を測定することによって時間を表す値を測定する、請求項２２に記載のネットワーク。
【請求項２４】
前記診断ユニットは、前記ユーザコンピュータに提示されるときに前記ウェブページ内にコードを埋め込むことによって上流スループットを測定し、前記コードは、前記ユーザコンピュータが、連続するデータブロックを前記診断ユニットに送出するようにさせる、請求項２３に記載のネットワーク。
【請求項２５】
前記プログラミングは、オペレーティングシステム上で実行されるアプリケーションプログラムであり、前記オペレーティングシステムは、あるバッファを有するソケットを確立することによって、前記アプリケーションプログラムと前記ユーザコンピュータとの間でネットワークを通じた通信を可能にし、前記アプリケーションプログラムは、前記ソケットバッファのサイズを設定するプログラミングをさらに含む、請求項２１に記載のネットワーク。
【請求項２６】
前記ソケットバッファのサイズは、２Ｋバイト〜１６Ｋバイトに設定される、請求項２５に記載のネットワーク。
【請求項２７】
前記ソケットバッファのサイズは、８Ｋバイト〜１２Ｋバイトに設定される、請求項２６に記載のネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概括的にはデータネットワークに関し、より詳細には、データネットワークを試験することに関する。
【背景技術】
【０００２】
データネットワークは広く使用されている。ほとんどのオフィス及び多くの家庭さえもが、ローカルエリアネットワークを含む。多くのビジネスにおいて、異なる場所のローカルエリアネットワークをつなぐワイドエリアネットワークが採用される。そして、インターネットは、ビジネスにおいて、また、人々によってその家庭で広く使用されており、ユーザが、世界中に配置されるコンピュータからデータにアクセスすることを可能にする。インターネットが伝送するデータは、テキスト、グラフィックス、オーディオ、ビデオ、又は他のタイプの情報を表すことができる。本明細書では、インターネットは、データネットワークの例として使用している。
【０００３】
データネットワークの急増は、ネットワーク試験ツールに対する必要性を生み出す。試験は、ネットワーク内の故障を発見するため、また、ネットワークによって提供されるサービス品質が適切であることを確認するために使用される。たとえば、インターネットサービスプロバイダ（ＩＳＰ）は、インターネットへのアクセスを販売し、ＩＳＰが販売するサービスレベルに見合ったレベルで、ネットワーク上のコンピュータと、その顧客がデータを交換することができることを保障しなければならない。より一般的に、「ノード」と呼ばれる、ネットワークの一部であるか、又は、ネットワークを通して接続される２つのデバイス間で、データを渡すことができる速度は、スループットと呼ばれる。
【０００４】
低スループットは、ワイヤ、サーバ、ルータ、又は他のネットワークノードなどのネットワーク機器のある部品の物理的故障を示す可能性がある。或いは、低スループットは、ネットワークデバイスが適切に構成されていないこと、又は、ネットワークに、全てのネットワークユーザにデータを同時に搬送するための十分な機器が不足していることを示している可能性がある。
【０００５】
スループットが不適切である理由にかかわらず、ネットワークユーザは、不十分なサービスを受けることになる。その顧客を満足した状態に保つか、又は、高スループットネットワーク接続に対してＩＳＰが追加金を請求することができることを確実にするために、ＩＳＰは、ネットワーク中の種々のノード間のスループットを知ることが必要になる。
【０００６】
イリノイ州ディアフィールド(Deerfield, IL)のテラダイン（Teradyne）は、ＮｅｔＦｌａｒｅ（登録商標）と呼ぶ製品を提供し、それによって、ＩＳＰ又は他のネットワークオペレータが、その顧客に提供するサービス品質の記録をとるのに役立っている。この製品の１つの機能は、スループットを測定できることである。
【０００７】
スループットを測定する従来の手法は、データブロックをネットワークの１つのノードから別のノードへ単に送出することである。それが、ブロックを送信するのにかかる時間長を測定することによって、スループットを示す、データが送信されたレート（速度）を計算することができる。
【０００８】
この手法についてのいくつかの欠点が存在する。１つの欠点は、スループットを正確に測定するために送信されなければならないデータ量がスループットによって決まることである。たとえば、５６キロビット／秒のみでデータを送信すべき２つのノード間のリンクは、ネットワーク性能の適度のサンプルを得るために、１００メガビット／秒で動作するリンクよりずっと小さい量のデータを送信する必要があることになる。
【０００９】
さらに、ネットワーク接続が動作する速度に関わらず、ネットワーク接続のスループットを正確に測定するのに十分大きなデータサンプルを送出する手法は、一般に不適切である。データサンプルが、高速での正確な測定を提供するのに十分大きい場合、ネットワークが実際には低速で動作している場合には、試験を実行するのに非常に長い時間がかかるであろう。試験は、終了するのに、ネットワークユーザにとって許容可能であるよりも長い時間がかかる可能性がある。さらに、試験が、比較的低速のネットワークに大量のデータを与える場合、試験データ自体が、ネットワークを過負荷にするか、又は、そうでなければ、その動作を低下させる可能性がある。
【００１０】
スループット測定を行うほとんどのシステムは、スループット測定を試みることになる継続時間を制限する。試験データが、指定した時間量内で送信されない場合、試験は打ち切られる。しかしながら、試験データが、試験下のリンク（被試験リンク）を通じて送信される前に、試験が打ち切られる場合、試験システムは、データの送信を遮断している、リンクの欠陥と、ネットワークが非常に低スループットで動作している状況とを区別することができない。
【００１１】
一部のシステムは、オペレータからネットワークスループットの推定値を得、次に、このデータ速度で、正確なスループット測定を行うのに適切なデータ量によって試験を実行することによって、スループット測定に関するこれらの問題を解決しようと試みる。たとえば、ＰＣＰＩＴＳＴＯＰ．ＣＯＭと呼ばれるユーティリティはこの様に動作する。リンクが、低データ速度を有すると予測されると、試験データが、試験のために設定されたとき間限界中に送信されるように、より少量のデータが使用される。
【００１２】
この手法についてのいくつかの欠点が存在する。１つは、オペレータが、リンクの予想されるスループットがわからず、したがって、不正確な情報を提供する可能性があることである。他の問題は、スループット試験が、ネットワーク上に問題が存在するときに実行されることが多く、スループット試験が、意図されるデータ速度で動作しないことである。そのため、ユーザ入力は、ネットワークに適するよりも、大きな試験データパッケージを指定する結果となる。
【００１３】
ネットワークのスループットを測定するのに使用することができる改良された技法を有することが望ましい。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
前述の背景を念頭に置いて、ネットワークのスループットを測定するためのより好都合で、且つ、正確なシステム及び方法を提供することが、本発明の目的である。
ネットワークに重い負担をかけない、ネットワークのスループットを測定するためのシステム及び方法を提供することも、同様に、本発明の目的である。
【００１５】
ＡＤＳＬネットワーク又はケーブル広帯域ネットワークの上流リンクと下流リンクの両方のスループットを測定するシステム及び方法を提供することも、同様に、本発明の目的である。
【課題を解決するための手段】
【００１６】
上述の、また、他の目的は、複数のデータブロックが送信されるプロセスを使用して達成される。各ブロックの送信時間が測定される。測定は、正確なスループット測定が得られるか、又は、所定時間が経過するまで続けられる。
【００１７】
一実施形態では、ＡＤＳＬネットワークの上流リンクのスループットは、ＨＴＭＬページを提供するウェブサーバに対してユーザインタフェースを有することによって測定される。ＨＴＭＬページは、試験ペイロード及びブロック内のペイロードをサーバに自動的に送信するスクリプトであるＪａｖａＳｃｒｉｐｔ（商標）を含む。
【００１８】
さらに別の実施形態では、個々のブロックについて行われるスループット測定は、測定精度を増すために、統計分析（解析）される。統計解析は、好ましくは、「非バースト」ネットワークのためだけに使用される。
【発明を実施するための最良の形態】
【００１９】
本発明は、以下のより詳細な説明及び添付図面を参照することによって、よりよく理解されるであろう。
本発明は、そのアプリケーションにおいて、以下の説明で述べられるか、又は、図面で示される構造の詳細及びコンポーネントの配置構成に限定されない。本発明は、他の実施形態が可能であり、種々の方法で、実施されるか、又は、実行されることが可能である。同様に、本明細書で使用される表現及び用語は、説明のためであり、制限的であると考えられるべきではない。「含む」、「備える」又は「有する」、「収容する(containing)」、「伴う(involving)」の使用及び本明細書でのそれらの変形は、以下に挙げる項目及びその等価物並びに付加的な項目を包含することが意図される。
【００２０】
図１は、スループットが測定されることになるネットワーク１１０を、非常に単純な形態で示す。本発明の好ましい実施形態は、インターネットにアクセスするユーザが経験するスループットを測定することに関連して述べる。この場合、ネットワーク１１０は、インターネットサービスプロバイダによって提供されるアクセスネットワークを表す。しかしながら、本発明は、このアプリケーションの使用に限定されない。
【００２１】
データ端末がネットワークに接続される。図１では、コンピュータ１１２は、データ端末を表す。コンピュータ１１２は、たとえば、家庭用コンピュータであってもよい。
インターネットを使用するとき、ユーザは、ネットワーク１１０を通じて他のデータ端末にアクセスする。試験下のネットワークがインターネットである図１の例では、これらのデータ端末は、情報を受信するか、又は、情報をインターネットユーザに提供するサーバである可能性が最も高い。サーバ１１４は、これらのデータ端末を表す。インターネットは、インターネットに接続された多くのユーザ及び多くのサーバを有するが、簡潔にするために、２つだけが示されることを理解すべきである。コンピュータ１１２又はサーバ１１４を実施するのに使用される厳密な機器のタイプは、本発明にとって重要ではない。しかしながら、好ましい実施形態は、標準的なインターネットブラウザを含むコンピュータ１１２を使用するものとして本明細書で述べる。その実施形態では、ブラウザは、ＪａｖａＳｃｒｉｐｔ（商標）プログラムによるＨＴＭＬページを含むＨＴＭＬページを受信し、ＨＴＭＬページに応答することができる。
【００２２】
図１は、ネットワークに同様に接続される診断ユニット１１６を示す。好ましい実施形態では、診断ユニット１１６は、ＮｅｔＦｌａｒｅ（登録商標）という名称で、イリノイ州ディアフィールドのテラダインによって販売されるタイプである。しかしながら、以降で述べるプログラムを実行することができる任意の診断ユニットを使用することができる。さらに、別個の診断ユニットが使用されることは必要ない。以下で述べるプログラムは、試験下のネットワーク１１０に接続される任意のコンピュータ上で実行されるであろう。たとえば、プログラムは、サーバ１１４で実行されるであろう。
【００２３】
診断ユニット１１６は、スループット測定アルゴリズム１２０を実行するようにプログラムされる。以下でより詳細に述べるように、スループットアルゴリズム１２０は、診断ユニット１１６において、コンピュータプログラムとして実施される。このコンピュータプログラムを、任意の好都合な言語で書くことができる。しかしながら、好ましい実施形態の利点は、スループットプログラムを、コンピュータアプリケーションとして書くことができることである。好ましい実施形態では、このアプリケーションは、ネットワーク１１０を通じた通信を管理するために標準的なコンピュータユーティリティを使用する。ネットワークプロトコルのＯＳＩ５層モデルの用語では、スループットプログラムは、層５で実施され、ネットワークの層１〜４を実施する標準的なソフトウェア又はハードウェアの修正を必要としない。
【００２４】
図１は、診断ユニット１１６が、ネットワークと、スループットアルゴリズム１２０を実行するソフトウェアとの間にバッファ１１８を収容することを示す。バッファ１１８は、ほとんどのコンピュータ及びサーバのオペレーティングシステムによって実施される機能を表す。アプリケーションプログラムが、ネットワークを通じて送出されるデータを生成するときに、オペレーティングシステムは、一般に、メッセージが、ネットワークを通じて送出される準備ができたと判断するまで、データをバッファリングすることになる。たとえば、従来のネットワークプロトコルは、メッセージが、パケットで送出され、各パケットが一部のコントロールビット及びある数のデータビットを有することを指定する。オペレーティングシステムが、全てのデータバイトを、アプリケーションプログラムから受信しながら送信した場合、各パケットは、多くのコントロールビット及び比較的少数のデータビットを有することになる。そのため、ネットワークトラフィックのほとんどは、コントロール情報を送信するのに専用になり、実際のデータ送信にはほとんど使われず非効率的なネットワークになる。
【００２５】
通常、バッファ１１８が望ましい。しかしながら、ネットワークスループットを測定するとき、バッファは望ましくない。バッファは、アプリケーションプログラムからのメッセージの送信に可変量の遅延を導入する可能性がある。好ましい実施形態では、スループット測定ソフトウェアは、アプリケーションプログラムとして実施される。しかし、オペレーティングシステムによって導入される可能性がある可変遅延を回避するために、以下で述べるように、好ましい実施形態は、バッファリングによって生じる任意の著しい遅延を回避するように設計される。
【００２６】
好ましい実施形態では、スループット測定プログラム１２０は、ネットワーク１１０を通ってコンピュータ１１２を通る通信か、又は、コンピュータ１１２からネットワーク１１０を通ってサーバ１１４への通信についてデータ速度を測定する。これらの測定値は、一般に、それぞれ、上流及び下流スループットと呼ばれる。
【００２７】
好ましい実施形態では、スループット測定値から得られたデータは、顧客ケアを提供するために、インターネットサービスプロバイダによって使用される。スループット測定値は、コールセンタ１２２に提供される。コールセンタ１２２は、その顧客が、顧客のネットワークサービスについての苦情を送ることができるインターネットサービスプロバイダによって運営される施設のことを言う。一般に、コールセンタ１２２には、顧客からの電話呼又は電子通信を受信する人間オペレータが配置されるであろう。しかし、コールセンタ１２２は、物理的なロケーションである必要がないことが理解されるべきである。顧客サービスオペレータは、顧客からの通信を受信することができる任意の場所に位置することができる。たとえば、顧客サービスオペレータは、ネットワークオペレーションセンタ（ＮＯＣ）に含まれてもよい。顧客サービスは、人間オペレータによって提供される必要がないことも理解されるべきである。顧客の苦情に対する自動化応答について、種々の人工知能技法が知られている。
【００２８】
好ましい実施形態では、顧客のネットワーク接続のスループットについての苦情を受けた顧客コンタクトコールセンタ１２２は、顧客のコンピュータ１１２を使用して、診断ユニット１１６にアクセスするように指示されるであろう。好ましくは、診断ユニット１１６は、顧客のコンピュータが、ネットワーク１１０を通じてアクセスすることができるサーバとしてユーザには見える。コンピュータ１１２と診断ユニット１１６の間の接続を容易にするために、コールセンタ１２２は、診断ユニット１１６のウェブアドレスをユーザに与える。しかし、ユーザは、コールセンタ１２２以外から診断ユニット１１６のウェブアドレスを得ることができることを理解すべきである。たとえば、診断ユニット１１６のウェブアドレスは、自身のサービスウェブサイトからダウンロードすることができる。
【００２９】
コンピュータ１１２と診断ユニット１１６の間の接続が始動する方法に関わらず、一旦接続が確立されると、スループットアルゴリズムを実施することができる。図２は、下流スループットを測定するプロセスの部分を示す。図２の左側に示すステップは、好ましい実施形態では、「ホスト」の役を果たすコンピュータ１１２上で実施される。図２の右側のステップは、サーバの役を果たすコンピュータ上で実施される。好ましい実施形態では、そのコンピュータは、診断ユニット１１６であり得る。
【００３０】
プロセスは、ホストコンピュータがサーバに接続するステップ２１０で始まる。先に述べたように、好ましい実施形態の接続は、ホストの役を果たすユーザコンピュータ１１２が、診断ウェブページにログするときに行われる。
【００３１】
一旦接続が確立されると、プロセスは、サーバに対して実施されるステップ２１２に進む。ステップ２１２にて、試験タイマが始動される。好ましくは、スループット測定は、ネットワーク上のスループットに関わらず、所定の最大時間量内で終了するであろう。ステップ２１２にて始動した試験タイマは、許容可能な最大試験時間の記録をとるであろう。許容可能最大時間が超えられ、且つ、試験が終了していない場合、試験タイマは、タイムアウトし、試験は停止する。プロセスにタイムアウトさせる多くの方法が当技術分野で知られている。たとえば、試験タイマのタイムアウトは、ソフトウェア割り込みをトリガーすることができる。或いは、プロセスは、タイマの時間を繰り返しポーリングするステップを含むことができ、プロセスは、タイマがタイムアウトしたとポーリングが指示する任意の時点で終了することになる。試験がタイムアウトするようにさせる厳密な方法は、本発明にとって重要ではない。
【００３２】
ステップ２１４にて、別個の計時プロセスが始まる。この計時プロセスは、１つのデータブロックをサーバからホストへ転送するのにかかる時間量を測定するのに使用される。ステップ２１４は、転送間隔の開始を確立する。好ましい実施形態では、転送間隔の開始は、システムクロックによって指示される時間を記録することによって記録される。しかしながら、時間間隔を測定する多くの代替方法が知られており、使用される特定の方法は、本発明にとって重要ではない。
【００３３】
処理は、ステップ２１６に進む。ステップ２１６にて、データブロックが、サーバからホストコンピュータに送出される。前述したように、ステップ２１６は、好ましくは、診断ユニット１１６上のアプリケーションプログラムとして実施される。アプリケーションプログラムは、ネットワーク１１０を通じてデータを実際に転送するために、診断ユニット１１６でプログラムされる既存のシステムユーティリティに依存する。しかしながら、アプリケーションプログラムが、データブロックの送信時間を正確に測定するために、アプリケーション層から送出されるデータブロックは、バッファリングによって生じる遅延無しで、ＯＳＩネットワークモデルの層１〜４を実施する診断ユニット１１６のハードウェア及びソフトウェアを通過しなければならない。データブロックが、ネットワークプロトコルの層１〜４を通過するときに、確実にバッファリングされないようにするために、データブロックのサイズは、低レベルネットワークプロトコルに従って、ネットワーク１１０を通じて送出されることになるデータパケットを満たすように選択されるべきである。メッセージが、可変遅延によってバッファリングされる可能性を減らすように、ソケットのバッファサイズを設定することも望ましい。
【００３４】
好ましい実施形態では、スループット試験を実施するアプリケーションプログラムは、標準的なオペレーティングシステム上で実行される。一実施形態では、このオペレーティングシステムはＬｉｎｕｘである。こうした環境では、ホストとサーバの間の接続は、「ソケット」として表される。アプリケーションプログラムが、特定のソケットにアクセスすると、オペレーティングシステムは、下層のソフトウェア及びハードウェアを制御して、ネットワークを通じてメッセージを適切なフォーマットで送出する。スループット測定を制御するアプリケーションプログラムは、好ましくは、下層のハードウェア及びソフトウェアを直接制御しないが、好ましい実施形態では、アプリケーションプログラムは、メッセージが遅延することになる可能性を減らすために、ソケットのパラメータを実際に設定する。特に、ソケットバッファサイズが変更される。好ましくは、ソケットバッファサイズは、ソケット当たりのサイズを基準として変更され、他の通信が混乱しないように、スループット測定に使用されるソケットについてのみ変更される。ＴＣＰセッションを制御するソフトウェアは、ソケットに対応する特定のセッションについてのＴＣＰウィンドウをソケットバッファより小さいサイズに設定するため、ソケットバッファをアプリケーションレベルから間接的に調整することは、低レベルネットワークオペレーションに影響を及ぼす。そのため、ブロックサイズ及びソケットバッファサイズについての適切なサイズのアプリケーションレベルにおける選択は、より正確なスループット測定をもたらす。
【００３５】
たとえば、従来のオペレーティングシステムでは、ソケットバッファサイズは、約６４Ｋにデフォルト設定することができる。ソケットバッファサイズを約９Ｋｂｙｔｅｓ（バイト）に減らすことによって、より正確な測定値がもたらされることがわかった。この値は、部分的に経験的に選択された。試験セットアップは研究所環境で作成された。実際のスループットは、パケット解析器を使用して測定された。バッファサイズは、本明細書で述べた技法を使用した測定が、パッケット解析器によって測定された実際のスループットを近似するまで調整された。しかしながら、バッファサイズは、ブロックより小さくされることはなく、そうしなければ、単一パケットであったとしてもそれを受信する前にバッファがオーバフローすることになる。それに応じて、ソケットバッファのサイズは、好ましくは、２Ｋｂｙｔｅｓ〜１６Ｋｂｙｔｅｓであり、より好ましくは、８Ｋｂｙｔｅｓ〜１２Ｋｂｙｔｅｓであるであろう。
【００３６】
ブロックサイズを設定するために、ネットワークプロトコルが考慮される。たとえば、データは、イーサネットプロトコルを使用したインターネットを通じて送信される。イーサネットプロトコルは、ネットワークを通じて転送されるメッセージのフレームサイズが、１，５１８ｂｙｔｅｓであるべきことを指定する。フレーム内の情報の一定部分は、制御用であり、１，４９７ｂｙｔｅｓのデータ用の空間が残る。フレーム又はメッセージパケットに収容されるデータは、ペイロードと呼ばれる場合がある。好ましい実施形態では、ステップ２１６で送出されるデータブロックは、好ましくは、ネットワークプロトコルによって指定される最大メッセージペイロードと同じサイズである。
【００３７】
好ましいペイロードサイズは、ネットワークごとに変わることになることが理解されるであろう。しかしながら、ペイロードサイズにほぼ等しいデータブロックを使用してスループットを測定することは、いくつかの利点を提供することが認識された。先に述べた１つの利点は、アプリケーションプログラムが、ＴＣＰスタック又は他の低レベルネットワーク要素に対する直接制御を行う必要なしで、試験を実施することが可能になることである。第２の利点は、１つのデータブロックが、スループット測定試験を実施するために割り当てられる総時間より、通常、ずっと短い時間で送出されることが可能になることである。こうして、ほとんどのスループット測定は、複数のデータブロックを使用して行うことができる。これらの測定値は、より正確なスループットの測定値を作成するために平均される。好ましくは、一部のネットワーク接続が低速であり、大量のデータブロックを必要とする試験の実施が、割り当てられた時間内に終了しない可能性がことを考慮して、ブロックサイズが選択される。好ましい実施形態では、５６Ｋｂｐｓ〜８Ｍｂｐｓの範囲のネットワークスループットを測定するように、ブロックサイズが選択され、１．２Ｋｂｙｔｅｓ〜２．５Ｋｂｙｔｅｓの範囲のブロックサイズがもたらされ、好ましいサイズは約２Ｋｂｙｔｅｓである。
【００３８】
ホストがデータブロックを受信すると、ホストは、ステップ２１８で指示されるように、確認応答（アクノレッジ）を送出することによって応答する。サーバがその確認応答を受信すると、処理はステップ２２０にて続く。確認応答メッセージが受信される時間は、ステップ２２０にて記録される。この時間は、データブロックの送信時間を求めるために、ステップ２１４で設定された開始時間と比較される。ブロックサイズを送信時間で割ることよって、ブロック送信中のビット速度（レート）すなわちスループットを計算することができる。
【００３９】
実行は、次に、ステップ２２２に進む。ステップ２２２にて、スループットの正確な測定を提供するために、十分な数のブロックが送信されたかどうかのチェックが行われる。好ましい実施形態では、スループット測定試験は、所定数のデータブロックが送信された後に打ち切られる。好ましくは、ブロックのその数は２００〜５００である。好ましい実施形態では、４００ブロックが使用される。しかしながら、所定数のブロック送信は、スループット測定を停止する基準として使用されることは必要ない。たとえば、前のブロックについての個々のスループット測定の統計的特性が、ステップ２２２にて、十分なブロックが送信されたかどうかを判断する基準として使用されることができる。試験は、前のブロックについてのスループット測定の標準偏差が５％未満であったときに停止するであろう。それに応じて、十分なブロックが送信されたかどうかを判断するために、ステップ２２２にて使用される厳密な技法は、本発明にとって重要ではない。
【００４０】
十分なブロックが送信されなかった場合、処理はステップ２１４に戻る。ステップ２１４に戻ることによって、別のブロックが送出され、このブロックについてビット速度が測定される。十分なブロックが送出された場合、処理は、ステップ２２４に進む。先に述べたように、データの送信はまた、ステップ２１２で設定されたタイマがタイムアウトする場合に終了する。そのため、ステップ２２４は、十分なブロックが送出されたときか、又は、許容可能最大試験時間が超えられたときのいずれかで実行されるであろう。
【００４１】
ステップ２２４にて、ステップ２２０で計算された個々のブロックについてのビット速度を平均することによって、総合ビット速度（レート）が計算される。ビット速度は、ネットワークのスループットの尺度である。しかしながら、より高性能な処理を使用して、総合ビット速度を計算することができる。たとえば、個々のブロックについてのビット速度は、統計的に解析されて、ステップ２２４におけるビット速度の全体の計算から、異常動作状況を指示する可能性があるブロックを排除することができる。異常動作状況下で行われた測定を排除することは、スループット測定の全体の精度を増加させることができる。しかしながら、統計的特性に基づいて個々のブロックについてのビット速度測定を排除することが、全体のスループット測定の精度を実際には低下させることになる一部の状況が存在する。一部のネットワークは、データのパッケージを「バースト性パターン（bursty pattern）」で送信する。たとえば、ネットワーク１１０が、ケーブル会社によって運営されるインターネットアクセスネットワークを表す場合、コンピュータ１１２に送出されるパケットの送信時間は、ローカルなケーブルループのネットワークトラフィックによって決まることになる。そのため、個々のブロックについて測定されたスループットは、ネットワークトラフィックに応じて、徐々に変わることになる。「バースト性（bursty）」という用語は、瞬時スループットが、スループット試験に割り当てられた期間にわたって変わることが予想されるネットワークのことを言う。一方、ネットワーク１１０が、ＡＤＳＬサービスを提供する電話会社によって運営されるインターネットアクセスネットワークを表す場合、試験において個々のブロックについて測定されるビット速度は、ネットワークの回線の物理的状況又は試験期間にわたって変化する可能性がない他の因子に依存する可能性がより高い。この状況を「非バースト性」ネットワークと呼ぶ。非バーストネットワークの場合、個々のブロックについて、瞬時スループットが平均スループットと著しく異なる測定を排除するための統計解析を使用して、総合のスループット測定精度が上がるであろう。
【００４２】
現在好ましい実施形態では、ステップ２２４における処理は、個々のブロックについて計算されたスループットのうちの選択されたスループットを排除するように構成することができるコンピュータソフトウェアによって実施されるであろう。しかしながら、ソフトウェアは、バースト性ネットワークのスループットを測定するのに使用されるとき、この機能を使用不能にする能力を含むであろう。
【００４３】
図２に示すステップは、例示的であること、及び、プロセスは、厳密に示されるように実施される必要はないことが理解される。たとえば、図２は、ブロックの送信時間が、ブロックの送出と、確認応答の受信との間の時間差として測定されることを示す。連続して送信されるブロックからの、サーバにおける確認応答の各受信の間の時間を測定することによって、ブロックの送信時間を測定することが好ましい場合がある。こうして、確認応答がサーバに達する時間及び送信時間における任意の他の固定遅延が、ビット速度の計算から排除される。
【００４４】
図３は、上流スループットを測定する同様なプロセスを示す。図３は、ステップ３１０で始まるプロセスを示し、ユーザコンピュータ１１２などのホストがサーバに接続される。図２と同様に、サーバは、好ましい実施形態では、診断ユニット１１６である。しかしながら、ネットワーク上の任意の他のサーバも使用することができる。同様に、ステップ３１０においてサーバに接続することは、ステップ２１０においてサーバに接続するときに、別個のユーザ相互作用を必要としないことが理解されるべきである。図３のプロセスは、図２に示すプロセスの終了後に、自動的に実行されるであろう。
【００４５】
接続が確立される方法に関わらず、一旦接続が確立されると、処理はステップ３１２に進む。ステップ３１２にて、サーバは試験タイマを始動する。図２に示す下流測定プロセスと同様に、上流測定プロセスは、所定の時間量内に終了しない場合、打ち切られる。
【００４６】
サーバは、ＨＴＭＬページをホストコンピュータに送出する。ウェブサイトにログオンすることによって、一般に、ＨＴＭＬページの送信が引き起こされ、ＨＴＭＬページを送出するステップは、図２及び図３では特に詳述されない。しかしながら、ステップ３１４で送出された特定のページは、ホストコンピュータに、上流スループット測定プロセスの部分を実施させるように特別に修正される。
【００４７】
ステップ３１４で送出されたＨＴＭＬページは、ＨＴＭＬページ３１６として概略的に示される。ＨＴＭＬページ３１６は、本明細書でＪａｖａＳｃｒｉｐｔ（商標）３１８として表される実行可能コードを含む。さらに、ＨＴＭＬページ３１６は、ペイロード３２０を含む。好ましい実施形態では、ペイロード３２０は、ステップ２１６で送信されたデータブロックと同じデータブロックである。先に述べたように、ペイロードのサイズは、低レベルネットワークプロトコル層を実施するハードウェア又はソフトウェアにおいて、バッファリングによって遅延することなく、ネットワーク１１０を通じて送信される情報のパケットを満たすように選択される。
【００４８】
ＨＴＭＬページ３１６はまた、サブミットボタン３２２を含むように示される。サブミットボタン３２２は、コンピュータ１１２がＨＴＭＬページ３１６を受信すると、コンピュータ１１２のウェブブラウザによって表示される実際のユーザコントロールであることができる。ユーザがサブミットボタン３２２を起動すると、ＪａｖａＳｃｒｉｐｔ（商標）３１８が実行され始める。好ましい実施形態では、ＪａｖａＳｃｒｉｐｔ（商標）３１８は、サーバへの、ペイロード３２０を収容するメッセージの反復した転送をもたらす簡易的なプログラムである。ＪａｖａＳｃｒｉｐｔ（商標）３１８は、或る所定期間の間、反復して実行される。好ましくは、この期間は、上流スループット測定期間に割り当てられた時間量に一致する。現在好ましい実施形態では、この時間は、好ましくは、１〜１５秒、最も好ましくは、約１０秒である。ユーザにサブミット３２２を押下させることは、プロセスにおいて重要なステップではないことが理解されるべきである。代替法として、ＨＴＭＬページ３１６は、ウェブページ３１６がコンピュータ１１２にロードされると、ＪａｖａＳｃｒｉｐｔ（商標）が自動的に送信(サブミット：submit)されるように構成することができる。
【００４９】
ステップ３２４で送出されたデータブロックが、サーバによって受信され、ステップ３２６で指示するように処理される。ステップ３２６は、図２と関連して先に述べたように、一般的にデータブロックを解析する。診断ユニット１１６又はサーバの役を果たす他のコンピュータは、各データブロックがホストコンピュータから受信される時間を記録する。連続するブロック間の時間差は、データブロックがネットワーク１１０を通じて渡されるのにかかる時間量の指示である。ブロックサイズを送信時間で割ることによって、ブロック送信についてのスループットの推定値を求めることができる。ステップ３２６は、図２と関連して先に述べたように、個々のブロックのスループット測定値を解析する。解析は、スループットを正確に計算するために、十分なデータブロックが受信されたかどうかを判断することを含む。ステップ３２６はまた、上流スループット測定についての最大時間量を超えたかどうかを判断するためにチェックする。先に述べたように、このチェックは、ステップ３１２で設定された試験時間の値が所定値を超えたかどうかを調べることによるなど、多くの方法で実施することができる。
【００５０】
十分な数のブロックが受信されるか、十分に長い期間が経過したかのいずれかの理由で、十分なデータが収集されると、ステップ３２６にて、総合スループットもまた計算される。好ましい実施形態では、総合スループットは、コールセンタ１２２に報告され、コールセンタ１２２において、この情報が、ネットワーク問題を診断するときか、又は、顧客の苦情の解決を容易にするときに使用される。
【００５１】
ステップ３２６にて、サーバが、総合スループットが既に受信したブロックの測定値に基づいて計算されるべきであると判断する場合、サーバは、ホストとサーバ間の接続が切断されていることを指示するメッセージをホストに送出するであろう。ＨＴＭＬプロトコルは、サーバがホストに対して接続が切断されていることを合図することを可能にするセッション制御式メッセージを含む。ホストコンピュータ上で使用される可能性がある、ほとんどの市販のウェブブラウザの場合、こうしたメッセージを受信することによって、ＪａｖａＳｃｒｉｐｔ（商標）３１８の実行が打ち切られることになり得る。こうして、ホストは、必要であるより多くのデータを送信しないことになる。しかしながら、セッションメッセージの終了を送出することによって、一部の市販のウェブブラウザは、ユーザに対する通知を表示する。こうした通知が、コンピュータ１１２のユーザに表示される可能性を回避することが望ましい場合、サーバ１１２が、セッションメッセージの終了を送出することは必要ない。この場合、ＪａｖａＳｃｒｉｐｔ（商標）３１８は、所定の期間の間、実行されると、実行を停止することになる。現在好ましい実施形態では、ＪａｖａＳｃｒｉｐｔ（商標）３１８は、タイムアウトし、好ましくは、５〜１０秒である時間後、データの送出を停止することになる。
【００５２】
図２及び図３に示すプロセスは、本発明による技法を実施するために書くことができるプログラムの高レベルロジックを表す。当業者は、同様に本発明を利用する代替のプログラムを開発することができる。たとえば、ステップ２２０は、個々のブロックについてビット速度を計算するものとして指示され、ステップ２２４は、総合ビット速度を計算するものとして指示される。種々の数学的操作が実施される順序は、本発明にとって重要ではない。たとえば、個々のブロックについてのビット速度の平均は、最初に、それぞれの個々のブロックについてビット速度を計算し、次に、数値を平均することによって、計算することができる。しかしながら、送信される全てのブロックにおけるビット数を加算し、次に、その数のブロックを送信するのにかかった時間で割ることによって、数値的に同じ結果を達成することができる。さらなる代替法として、好ましい実施形態では、ブロックの全てが同じサイズであることが留意されるべきである。全てのブロックが同じサイズであることは必要ない。しかしながら、ブロックが同じサイズである場合、ブロックのサイズは、任意の好都合な時間においてビット速度を計算する式に適用することができる一定のスケール係数になる。
【００５３】
本発明の少なくとも１つの実施形態のいくつかの特徴を述べたが、種々の変更、修正、及び改良を、当業者が容易に想到可能であることが理解される。こうした変更、修正、及び改良は、本開示の一部であり、また、本発明の精神及びその範囲内にあることが意図される。したがって、先の説明及び図面は例示に過ぎない。
【図面の簡単な説明】
【００５４】
【図１】本発明を使用することができるネットワークの略図である。
【図２】ビット速度を計算するプロセスのフローチャートである。
【図３】上流方向のビット速度計算するプロセスのフローチャートである。
【図１】
2007523508.tif 000003
【図２】
2007523508.tif 000004
【図３】
2007523508.tif 000005
【国際調査報告】
2007523508.tif 000006
2007523508.tif 000007