JP2004266840A - 終端間測定に基づくネットワークへのデータストリームの許容の制御 - Google Patents

終端間測定に基づくネットワークへのデータストリームの許容の制御 Download PDF

Info

Publication number
JP2004266840A
JP2004266840A JP2004059839A JP2004059839A JP2004266840A JP 2004266840 A JP2004266840 A JP 2004266840A JP 2004059839 A JP2004059839 A JP 2004059839A JP 2004059839 A JP2004059839 A JP 2004059839A JP 2004266840 A JP2004266840 A JP 2004266840A
Authority
JP
Japan
Prior art keywords
data
receiving
computer system
transmitting
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2004059839A
Other languages
English (en)
Other versions
JP4491257B2 (ja
Inventor
Ashish Khisti
ヒスティ アシシュ
Christian Huitema
ウイテマ クリスチャン
Aditya Dube
デュベ アディチャ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2004266840A publication Critical patent/JP2004266840A/ja
Application granted granted Critical
Publication of JP4491257B2 publication Critical patent/JP4491257B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Small-Scale Networks (AREA)
  • Communication Control (AREA)
  • Radio Relay Systems (AREA)
  • Time-Division Multiplex Systems (AREA)

Abstract

【課題】 ネットワークへのデータストリームの許容の制御。
【解決手段】 より受動的なテストからより能動的なテストに遷移する一連のテストにおける適切な判定は、ネットワークデータ経路上へのデータストリームの許容を制御する。より受動的なテストはプロミスキャスモードおよびパケット対テストを含むことができる。より受動的なテストの結果が、データストリームがネットワークデータ経路を輻輳状態に遷移させる可能性が低減することを示した場合、輻輳の可能性をより正確に決定するためにネットワークデータ経路を能動的にプローブできる。診断用データパケットのトレインは輻輳させる危険性を大幅に低減させた診断用データ転送速度で送信される。目標データパケットのトレインは要求されたアプリケーション転送データ速度で送信される。指定された遅延閾値内に受信された目標データパケット数が遅延閾値で受信された診断用データパケット数と比較される。
【選択図】 図2

Description

本発明は、ネットワーク通信技術に関し、より詳細には、ネットワーク上へのデータストリームの許容を制御する機構に関する。
コンピュータネットワークは、1つのコンピュータまたはデバイス(以下、どちらも「コンピューティングシステム」と称する)が電子データを使用する別のコンピューティングシステムとネットワークを介して通信することを可能にすることによって通信し、情報にアクセスする能力を強化してきた。コンピューティングシステム間で電子データを転送する場合、電子メッセージは、電子データに対して動作するプロトコルスタックをしばしば通過することになる。開放型システム間相互接続(「OSI」)モデルは、プロトコルスタックを実施するためのネットワーク接続フレームワークの一例である。
OSIモデルは、電子データの転送に関する動作を、データ転送プロセスの所定の動作を実行するようにそれぞれが指定されている7つの別個の「層」に細分する。プロトコルスタックは場合によっては各層を実行することができるが、多くのプロトコルスタックはネットワークを介して電子データを転送する際に使用するために選択的な層のみを実施する。電子データがコンピューティングシステムから送信される場合、その電子データはアプリケーション層から発信され、中間のより低い層に、次いでネットワークに渡される。電子データは、ネットワークから受信されると、物理層に入り、中間のより高い層に渡され、次いで最終的にアプリケーション層で受信される。
最上層であるアプリケーション層は、アプリケーションとエンドユーザのプロセスをサポートすることを担当している。大部分のプロトコルによって組み込まれた中間の層は、アプリケーションのデータを低位層に配信するためにトランスポート層セグメントに多重化し、トランスポート層セグメントをアプリケーションに配信するためにアプリケーションのデータに逆多重化するよう最低限機能するトランスポート層である。ユーザデータグラムプロトコル(「UDP」)は、アプリケーションとネットワークの間での適合した転送のためのデータの多重化/逆多重化をするだけの、トランスポート層で実施されるプロトコルの一例である。トランスポート層で実施されるもう1つの共通プロトコルは伝送制御プロトコル(「TCP」)である。これは、アプリケーション層に対して終端間エラーリカバリ、再順序付け、およびフロー制御という機能も提供することができるコネクション型プロトコルである。
適切に構成されたネットワーク上でも、ハードウェアコンポーネントの故障、ソフトウェアのエラー、リンクノイズまたは干渉、ネットワークの輻輳など、不利なネットワーク状況によってデータ損失が時々生じる場合がある。多くの場合、不利なネットワーク状況の発生は、ネットワークを介して電子データを送信することを希望するユーザにとって未知である。さらに、ユーザが不利なネットワーク状況に気付いた場合であっても、その不利な状況を修正することはしばしばユーザの制御範囲を超えている。したがって、電子データがネットワークを介して送信される場合、常にある程度はデータ損失の可能性を伴う。幸いなことに、TCPの機能は、多くの不利なネットワーク状況によって生じるデータ損失を補償し、修正することができる。したがって、TCPは、テキストとグラフィックの両方を有するウェブページを転送する場合など、データの信頼性のある転送が希望される場合には特に有用である。
しかし、TCPの機能を実現するために、受信および送信バッファ、輻輳制御パラメータ、ならびにシーケンスおよび確認番号(acknowledgment number)パラメータのような所定の状態情報を各TCP接続に対して維持する必要がある。状態情報の維持はコンピューティングシステム資源(例えば、システムメモリ)を消費し、そうでなければこれらの資源を使用することができるユーザのプロセスに対してこれらの資源を無効とする。したがって、データの信頼性のある転送が重要でない場合、ネットワークを介して電子データを送信する際にアプリケーションはコンピューティングシステム資源を節約するために代わりにUDPを使用することができる。
UDPは、コンピューティングシステム間でオーディオ/ビデオデータ(以下、「A/Vデータ」と称する)を安定した連続的なストリーム(しばしば「ストリーミング」と称される)として転送するには特に適している。A/Vデータの出力は、通常、以前に受信したA/Vデータをリフレッシュすることを含んでいるので、A/VデータストリームからのA/Vデータのある程度の損失(例えば、多くのネットワークにおける固有のデータ損失)は重要ではない。例えば、ビデオフレーム用のビデオデータが受信されていない場合、表示画面には一瞬ちらつきが生じる場合があるが、更新されたビデオデータが受信されると表示画面はリフレッシュされる。したがって、ホームネットワーク、ローカルエリアネットワーク、およびワイドエリアネットワーク環境でのコンピューティングシステム間でA/Vデータストリームを転送するためにUDPは頻繁に使用される。
残念ながら、UDPは輻輳制御に関して内蔵機構を有しない。したがって、A/Vデータストリームを転送するためにUDPを使用するコンピューティングシステムは、通常、ネットワーク輻輳によってA/Vデータストリームの送信が劣化する時点を検出することはできない。同様に、A/Vデータストリームを転送するためにUDPを使用するコンピューティングシステムは、通常、そのA/Vデータストリームが他のA/Vデータストリームを劣化させるネットワーク輻輳の原因となる時点を検出することができない。したがって、A/Vデータストリームは他の既存のA/Vデータストリームと共にネットワーク上に送信することができ、これによってすべてのA/Vデータストリームの品質は劣化する。
例えば、10メガビット/秒(「Mbps」)のイーサネット(登録商標)ハブが既存の6Mbpsの高品位テレビジョンデータストリームをサポートし、もう1つの6Mbpsの高品位テレビジョンデータストリームが開始される場合、どちらのデータストリームも高い遅延、ジッター、およびパケット損失を被る場合がある。さらに、UDPの伝送速度は、アプリケーションがデータを生成する速度およびソースの機能(CPU、クロック速度など)によってのみ制約されるので、複数のA/Vデータストリームに任意の所与の時点において高いデータ転送速度でデータを転送させることは稀ではない。TCPは輻輳制御機構を有するが、TCP輻輳制御機構は、A/Vデータストリームを送信するアプリケーションのようなリアルタイムのアプリケーションには適さない。TCP輻輳制御機構は、送信コンピューティングシステムと受信コンピューティングシステムの間の1つまたは複数のデータリンクが過度に輻輳した場合にデータ転送速度を低下させる。しかし、データ転送速度の低下は、ある程度のパケット損失は許容できるものの最低限のデータ転送速度を必要とするリアルタイムのアプリケーションを大幅に劣化させる可能性がある。
さらに、ネットワークが輻輳すると、1つのA/Vデータストリームは不均衡な帯域幅量(一般に、「イーサネット(登録商標)のキャプチャ効果」と称される)を得る場合がある。したがって、新しいA/Vデータストリームは既存のA/Vデータストリームから帯域幅を「引継ぐ」可能性がある。このため、既存のA/Vデータストリームの既存のユーザには不満が残る場合がある。新しいA/Vデータストリームを開始したユーザは、既存のA/Vデータストリームを劣化させることを能動的に希望していない場合がある。しかし、開始したユーザには、新しいA/Vストリームを開始する前にそのネットワークが両方のA/Vストリームをサポートすることができるか否かを判定する方法がない場合がある。
さらに、ネットワーク管理者はA/Vデータストリームを制限するか、またはA/Vデータストリームが消費することのできるネットワーク帯域幅の量を限定する機構を持たない場合がある。A/Vデータストリームから消失したデータは通常は回復されないので、多くのネットワークは、他のタイプのデータよりも優先順位の高いA/Vデータストリームを本質的に提供する。したがって、ネットワークリンクで輻輳が発生した場合、A/Vデータストリームは優先順位が高いために帯域幅を提供される場合がある。輻輳中にA/Vデータストリームに提供される帯域幅は他の非ストリーミンデータに使用可能な帯域幅を低下させる可能性があり、これによって非ストリーミングデータの転送が劣化することになる。例えば、A/Vデータストリームとウェブページの両方を適切に送信するには帯域幅の容量が十分でない場合、A/Vデータストリームの送信が、ウェブページの送信を遅延または場合によっては妨害さえすることがある。
したがって、ネットワーク上へのデータストリームの許容を制御するシステム、方法、およびコンピュータプログラム製品が有利である。
従来技術の上記の問題点は、本発明の原理によって克服される。本発明は、ネットワーク上へのデータストリームの許容を制御する方法、システム、およびコンピュータプログラム製品を対象としている。送信コンピュータシステムは、少なくとも1つの送信側データリンクと1つの受信側データリンクとを含む1つまたは複数のデータリンクを有するネットワークデータ経路を介して受信コンピュータシステムに接続可能なネットワークである。送信コンピュータシステムは、要求されたアプリケーションのデータ転送速度を、送信コンピュータシステムから受信コンピュータシステムへのアプリケーションのデータストリームの配信を要求するアプリケーションから受信する。
送信コンピュータシステムは送信側のデータ負荷を受動的に検出する。使用可能な送信側の帯域幅を計算するには、送信側のデータ負荷を10メガビット/秒(「Mbps」)など、許容可能な送信側データリンク許容量から差し引く。使用可能な送信側の帯域幅が要求されたアプリケーションのデータ転送速度よりも大きい場合、使用可能な送信側の帯域幅はそのアプリケーションのデータストリームを受信するには十分であると見なされる。ネットワーク構成に応じて、送信側コンピュータシステムはまた、使用可能な受信側の帯域幅を計算するための命令を受信側コンピュータシステムに送信する。使用可能な受信側の帯域幅が要求されたアプリケーションのデータ転送速度よりも大きい場合、使用可能な受信側の帯域幅はそのアプリケーションのデータストリームを受信するには十分であると見なされる。使用可能な送信側の帯域幅に応じ、かつ十分であるとされる使用可能な受信側の帯域幅にも適宜応じて、送信コンピュータシステムはさらに能動的なテストを開始する。
送信コンピュータシステムは第1のパケット対(packet-pair)のデータパケットを、次いで第2のパケット対のデータパケットを、どちらもネットワークデータ経路を介して受信コンピュータシステムに送信する。受信コンピュータシステムは、第1の受信時刻に第1のパケット対のデータを、第2の受信時刻に第2のパケット対のデータパケットを受信する。少なくとも第1の受信時刻と第2の受信時刻での差に基づいて、ネットワークデータ経路のボトルネック帯域幅が推定される。ボトルネック帯域幅が要求されたアプリケーションのデータ転送速度よりも大きい場合、使用可能なネットワークデータ経路の帯域幅はそのアプリケーションのデータストリームを受信するには十分であると見なされる。十分とされる使用可能なネットワークデータ経路の帯域幅に応じて、送信コンピュータシステムはさらに能動的なテストを開始する。
送信コンピュータシステムは、要求されたアプリケーションのデータ転送速度でのアプリケーションのデータストリームの送信をシミュレーションするためにデータパケットのトレインを構成するためのパラメータを特定する。送信コンピュータシステムは、アプリケーションのデータストリームの送信をシミュレーションするために特定されたパラメータに従って一時的にデータパケットのトレインを送信する。受信コンピュータシステムは、パケットのトレインのデータパケットの少なくとも一部を受信する。受信コンピュータシステムは、データパケットのトレインがネットワークデータ経路を輻輳状態に遷移させないと推測する。
一部の実施形態では、送信コンピュータシステムは、最初に診断用データパケットのトレインを、推定されたボトルネック帯域幅の指定された分数(例えば、1/100)でネットワークデータ経路上に送信する。推定されたボトルネック帯域幅の指定された分数は、ネットワークデータ経路上での輻輳の原因となる可能性を大幅に低減させた診断用データ転送速度を表す。受信コンピュータシステムは、診断用データパケットの少なくとも一部を受信する。受信した診断用データパケットから、受信コンピュータシステムは遅延した診断用データパケット数を特定する(例えば、指定された時間閾値後に受信した診断用データパケット)。
この場合、送信コンピュータシステムは、要求されたアプリケーションのデータ転送速度でネットワークデータ経路上に目標データパケットのトレインを一時的に送信する。目標データパケットのトレインは、ネットワークデータ経路上の輻輳の原因となる可能性を減らす方法でアプリケーションのデータストリームの送信をシミュレーションするために一時的に送信される。受信コンピュータシステムは、目標データパケットの少なくとも一部を受信する。受信された目標データパケットから、受信コンピュータシステムは遅延した目標データパケット(例えば、指定された時間閾値後に受信した目標データパケット)の数を特定する。
受信コンピュータシステムは、遅延した目標データパケット数を遅延した診断用データパケット数と比較する。遅延した目標データパケット数が遅延した診断用データパケット数の指定の遅延したパケット閾値内である場合、そのアプリケーションのデータストリームはネットワークデータ経路上での輻輳の原因とはならないと判定される。受信コンピュータシステムは、この比較の結果を送信コンピュータシステムに送信する。したがって、送信コンピュータシステムはアプリケーションのデータストリームをネットワークデータ経路上に送信する。
本発明の更なる機能および利点を以下の説明で述べる。これらの一部はこの説明から明らかになろうし、また本発明の実施によって知ることができよう。本発明の機能および利点は、首記の特許請求の範囲で特に指摘した機器および組合せによって理解し、得ることができる。本発明のこれらおよび他の機能は、以下の説明および特許請求の範囲からより十分に明らかになろうし、また以下で説明するように本発明の実施によって知ることができよう。
本発明の上記および他の利点および特徴が得られるように説明するために、上記で概説した本発明のより詳細な説明を、添付の図面に示された具体的な実施形態を参照することによって行う。これらの図面は本発明の典型的な実施形態のみを示しており、本発明の範囲を限定するものと見なされるべきではないということを理解して、本発明を添付の図面を使用して更なる具体性および詳細をもって記述し、説明する。
本発明の原理は、ネットワーク上へのデータストリームの許容を制御することを提供する。より受動的なテストからより能動的なテストに遷移する一連のテストにおける適切な判定は、ネットワークデータ経路上へのデータストリームの許容を制御する。より受動的なテストは、ネットワークデータ経路の送信側データリンクでの、また適宜ネットワークデータ経路の受信側データリンクでのプロミスキャスモード測定を含むことができる。送信側データリンクおよび/または受信側データリンクがアプリケーションのデータストリームをサポートするために十分な使用可能な帯域幅を有しない場合、テストは停止し、そのアプリケーションのデータストリームはネットワーク上には送信されない。一方、送信側データリンク、および適宜受信側データリンクがそのアプリケーションのデータストリームをサポートするために十分な使用可能な帯域幅を有する場合、パケット対テストおよび/または能動ネットワークプロービングのようなより能動的なテストが実行される。
ネットワークデータ経路のボトルネック帯域幅を計算するために、適宜、パケット対テストが実行される。ボトルネック帯域幅が、アプリケーションのデータストリームをサポートするために十分でない場合、テストは停止し、そのアプリケーションのデータストリームはネットワーク上には送信されない。一方、ボトルネック帯域幅がアプリケーションのデータストリームをサポートするために十分である場合、能動ネットワークプロービングのような、より能動的なテストが実行される。
アプリケーションのデータストリームがネットワークデータ経路上に送信される場合、適宜、アプリケーションのデータストリームがネットワークデータ経路上の輻輳の原因となる可能性を特定するためにネットワークデータ経路が能動的にプローブされる(例えば、データパケットのトレインを送信することにより)。輻輳の原因となる可能性が増大した場合、アプリケーションのデータストリームはそのネットワーク上には配信されない。一方、輻輳の原因となる可能性が低減したことが特定された場合、アプリケーションのデータストリームはそのネットワークデータ経路上に配信することができる。
本発明の範囲内の実施形態は、記憶したコンピュータ実行可能命令またはデータ構造を搬送しまたは有するコンピュータ可読媒体を含む。このようなコンピュータ可読媒体は、汎用または専用コンピュータシステムによってアクセス可能ないかなる使用可能な媒体であってもよい。限定ではなく一例として、このようなコンピュータ可読媒体は、RAM、ROM、EPROM、CD−ROM、または他の光学ディスク記憶のような物理記憶媒体、磁気ディスク記憶または他の磁気記憶装置、もしくは所望のプログラムコード手段をコンピュータ実行可能命令、コンピュータ可読命令、またはデータ構造の形式で搬送または記憶するために使用することができ、かつ汎用または専用コンピュータシステムによってアクセスすることができるいかなる他の媒体をも含むことができる。
本明細書および特許請求の範囲では、「ネットワーク」は、コンピュータシステムおよび/またはモジュールの間で電子データを転送することを可能にする1つまたは複数のデータリンクであると定義される。ネットワークまたは他の通信接続(ハードワイヤード、無線、またはハードワイヤードと無線の組合せのいずれか)を介して情報がコンピュータシステムに転送される場合、その接続はコンピュータ可読媒体であると適切に見なされる。したがって、いかなるこのような接続でもコンピュータ可読媒体と適切に称される。上記の組合せは、コンピュータ可読媒体の範囲内にも含まれるべきである。コンピュータ実行可能命令は、例えば、汎用コンピュータシステムまたは専用コンピュータシステムに所定の機能または一群の機能を実行させる命令およびデータを含む。コンピュータ実行可能命令は、バイナリ、アセンブリ言語のような中間フォーマット命令、または場合によってはソースコードであってよい。
本明細書および特許請求の範囲では、「コンピュータシステム」は、電子データ上で動作を実行するために共同して機能する、1つまたは複数のソフトウェアモジュール、1つまたは複数のハードウェアモジュール、またはこれらの組合せであると定義される。例えば、コンピュータシステムの定義は、パーソナルコンピュータのハードウェアコンポーネント、並びにパーソナルコンピュータのオペレーティングシステムのようなソフトウェアモジュールを含む。モジュールの物理的なレイアウトは重要ではない。コンピュータシステムは、ネットワークを介して結合される1つまたは複数のコンピュータを含むことができる。同様に、内部モジュール(メモリおよびプロセッサなど)が電子データに対して動作を実行するために共同して機能する場合、コンピュータシステムは単一の物理装置(携帯電話またはパーソナルデジタルアシスタント「PDA」など)を含むことができる。
本明細書および特許請求の範囲では、「データストリーム」は、転送されたデータの部分を受信した通りに出力することができるように(データストリームが完了する前に受信される場合でも)、安定した連続的なストリームで転送されるデータであると定義される。データストリームは、受信コンピュータシステムで出力するために送信コンピュータシステムから配信されるオーディオおよび/またはビデオデータストリーム(例えば、オーディオ/ビデオ「A/V」データストリーム)であってよい。データストリームは、生のラジオまたはテレビジョン放送データのデータストリームのような生のデータストリームであってよい。同様に、データストリームは、記憶したモーションピクチャエキスパートグループ(「MPEG」)ファイルが選択された場合に生じるデータストリームのように、送信コンピュータシステムで記憶されているファイルが受信コンピュータシステムに転送される場合に生じる場合がある。データストリームに含まれるデータは、そのデータの出力後に受信コンピュータシステムで保存しても保存しなくてもよい。データストリームは、ユーザデータグラムプロトコル(「UDP」)、リアルタイムトランスポートプロトコル(「RTP」)、およびリアルタイムストリーミングプロトコル(「RTSP」)のような幅広い種類のプロトコルまたはプロトコルの組合せを使用して転送することができる。
本明細書および特許請求の範囲では、「データ転送速度」は、データがデータリンク上に、データリンクを介して転送され(または転送されることになっており)、もしくはデータリンクから受信される速度であると定義される。データ転送速度は、メガビット/秒(「Mbps」)およびメガバイト/秒(「MBps」)のような様々な異なる単位で測定することができる。例えば、アプリケーションモジュール202は、オーディオデータストリームを2Mbpsのデータ転送速度でコンピュータシステム221に(データリンク272、271を介して)送信させることができる。データストリームがデータリンク上に送信される前に、アプリケーションモジュールは、ネットワークプロービングモジュールに対して推定されたデータストリームのピークのデータ転送速度を示すことができる。
本明細書および特許請求の範囲では、「データハブ」は、他のコンピュータシステムに対する共通接続点(有線または無線)として機能し、受信したデータパケットをハブのすべてのポートから送出することによって、接続されたコンピュータシステム間で電子データを転送するコンピュータシステムであると定義される。すなわち、データパケットがデータハブの1つのポートで受信される場合、そのデータハブはそのパケットをデータハブの他のポートすべてにコピーする。その結果、データハブに接続された1つのデータリンクから受信したデータパケットは、その後、そのデータハブに接続された他のデータリンクすべてに転送される。例えば、データリンク271を介してデータハブ250で受信したデータパケットは、その後、データリンク271、272、273、および277に送信される。
本明細書および特許請求の範囲では、「データスイッチ」は、他のコンピュータシステムに対して共通の接続点(有線または無線)として機能し、受信したデータパケットをデータパケットに含まれる宛先アドレスに対応するポートから送出することによって、接続されたコンピュータシステム間で電子データを転送するコンピュータシステムであると定義される。すなわち、データパケットがデータスイッチの1つのポートで受信されると、そのデータスイッチはデータパケットの宛先アドレス(例えば、インターネットプロトコル(「IP」)アドレス)を読み取り、そのデータパケットを宛先アドレスに対応するポートに送信する。その結果、1つのデータリンクから受信したデータパケットは、その後、宛先アドレスに関連付けられた宛先コンピュータシステムにより近接したデータリンクに転送される。
宛先コンピュータシステムにより近接したデータリンクは、宛先コンピュータシステムに接続されたデータリンクであってよい。例えば、データスイッチ255は、コンピュータシステム251に対応する宛先アドレスを有するデータパケットを受信することができる。したがって、データスイッチ255は、データリンク279上にデータパケットを送信することができる。一方、宛先コンピュータシステムにより近接したデータリンクは、送信コンピュータシステムと宛先コンピュータシステムとの間の中間のデータリンクであってよい。例えば、コンピュータシステム211は、コンピュータシステム241に関連付けられた宛先アドレスにデータパケットを送信することができる。したがって、データハブ250は、データリンク277(並びにデータリンク271、272、273)上にデータパケットを反復する。データスイッチ255は、データリンク277からデータパケットを受信し、データパケットの宛先アドレスを読み取ることができる。したがって、データスイッチ255は、データパケットをデータリンク278に送信することができる(データスイッチ260がデータリンク278からデータパケットを受信して、そのデータパケットをデータリンク276に送信することができた後)。
当業者ならば、本発明が、パーソナルコンピュータ、ラップトップコンピュータ、ハンドヘルドデバイス、マルチプロセッサシステム、マイクロコンピュータベースの、またはプログラム可能な家庭用電化製品、ネットワークPC、ミニコンピュータ、メインフレームコンピュータ、携帯電話、PDA、ページャなどを含めて多くのタイプのコンピュータシステム構成を有するネットワークコンピューティング環境で実施することができる。本発明は、(ハードワイヤードデータリンク、無線データリンク、またはハードワイヤードデータリンクと無線データリンクの組合せによって)ネットワークを介してリンクされるローカルおよび遠隔コンピュータシステムがどちらもタスクを実行する場合、分散型システム環境でも実施することができる。分散型システム環境では、プログラムモジュールは、ローカルおよび遠隔記憶装置の両方に配置することができる。
図1および以下の解説は、本発明を実施することができる適切なコンピューティング環境の簡潔かつ一般的な説明を提供することを意図している。必須ではないが、本発明は、コンピュータシステムによって実行されるプログラムモジュールのようなコンピュータ実行可能命令の一般的な状況で説明することにする。一般に、プログラムモジュールは、特定タスクを実行し、または特定抽象データ型を実施するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。コンピュータ実行可能命令、関連データ型、およびプログラムモジュールは、本明細書で開示する方法の動作を実行するためのプログラムコード手段の例を表す。
図1を参照すると、本発明を実施するためのシステム例は、処理装置121、システムメモリ122、およびシステムメモリ122を含む様々なシステムコンポーネントを処理装置121に結合するシステムバス123を含むコンピュータシステム120の形式をとる汎用コンピューティング装置を含んでいる。処理装置121は、本発明の機能を含めてコンピュータシステム120の機能を実施するように設計されたコンピュータ実行可能命令を実行することができる。システムバス123は、メモリバスまたはメモリコントローラを含む複数のタイプのバス構造、周辺バス、および様々なバスアーキテクチャのいずれかを使用するローカルバスのいずれかであってよい。システムメモリは、読み取り専用メモリ(「ROM」)124およびランダムアクセスメモリ(「RAM」)125を含む。起動時などにコンピュータシステム120内の素子間で情報の転送を支援する基本ルーチンを含む基本入出力システム(「BIOS」)126は、ROM124に記憶することができる。
コンピュータシステム120は、磁気ハードディスク139から読み取り、またこれに書き込むための磁気ハードディスク127、取り外し可能な磁気ディスク129から読み取り、またこれに書き込むための磁気ディスクドライブ128、およびCD−ROMまたは他の光媒体のような取り外し可能な光ディスク131から読み取り、またこれに書き込むための光ディスクドライブ130も含むことができる。磁気ハードディスクドライブ127、磁気ディスクドライブ128、および光ディスクドライブ130は、それぞれハードディスクドライブインターフェース132、磁気ディスクドライブインターフェース133、および光ドライブ134インターフェースによってシステムバス123に接続される。これらドライブおよびこれらの関連するコンピュータ可読媒体は、コンピュータ実行可能命令、データ構造、プログラムモジュール、および他のデータの不揮発性記憶をコンピュータシステム120に提供する。本明細書に記載の実施例は磁気ハードディスク139、取り外し可能な磁気ディスク129および取り外し可能な光ディスク131を使用しているが、磁気カセット、フラッシュメモリカード、デジタル多用途ディスク、ベルヌーイカートリッジ、RAM、ROMなどを含めてデータを記憶するための他のタイプのコンピュータ可読媒体を使用することができる。
1つまたは複数のプログラムモジュールを含むプログラムコード手段は、オペレーティングシステム135、1つまたは複数のアプリケーションプログラム136、他のプログラムモジュール137、およびプログラムデータ138を含めて、ハードディスク139、磁気ディスク129、光ディスク131、ROM124またはRAM125に記憶することができる。ユーザは、コマンドおよび情報をキーボード140、ポインティングデバイス142、またはマイクロフォン、ジョイスティック、ゲームパッド、スキャナのような他の入力装置(図示せず)を介してコンピュータシステム120に入力することができる。これらおよび他の入力装置は、システムバス123に結合された入出力インターフェース146を介して処理装置121に接続することができる。入出力インターフェース146は、シリアルポートインターフェース、PS/2インターフェース、パラレルポートインターフェース、ユニバーサルシリアルバス(「USB」)インターフェース、または電気電子技術者協会(「IEEE」)1394インターフェース(すなわち、FireWireインターフェース)のような幅広い種類の異なるインターフェースのどれでも論理的に表し、場合によっては異なるインターフェースの組合せを論理的に表すことができる。
モニタ147または他の表示装置もビデオインターフェース148を介してシステムバス123に接続される。スピーカ169または他のオーディオ出力装置もオーディオインターフェース149を介してシステムバス123に接続される。プリンタのような他の周辺出力装置(図示せず)もコンピュータシステム120に接続することができる。
コンピュータシステム120は、事務所規模または企業規模のコンピュータネットワーク、ホームネットワーク、イントラネット、および/またはインターネットのようなネットワークに接続される。コンピュータシステム120は、そのようなネットワークを介した遠隔コンピュータシステム、遠隔アプリケーション、および/または遠隔データベースのような外部ソースとデータを交換することができる。
コンピュータシステム120は、コンピュータシステム120が外部ソースからデータを受信し、かつ/または外部ソースにデータを送信するネットワークインターフェース153を含む。図1に示すように、ネットワークインターフェース153は、データリンク151を介した遠隔コンピュータシステム183とのデータの交換に役立つ。ネットワークインターフェース153は、ネットワークインターフェースカードおよび対応するネットワークドライバインターフェース規約(「NDIS」)スタックのような1つまたは複数のソフトウェアおよび/またはハードウェアモジュールを論理的に表すことができる。データリンク151は、ネットワークの部分(例えば、イーサネット(登録商標)セグメント)を表し、遠隔コンピュータシステム183はネットワークのノードを表す。例えば、遠隔コンピュータシステム183は、データストリームをコンピュータシステム120に送信する送信コンピュータシステムであってよい。一方、遠隔コンピュータシステム183は、送信されたデータストリームをコンピュータシステム120から受信する受信コンピュータシステムであってよい。
同様に、コンピュータシステム120は、コンピュータシステム120が外部ソースからデータを受信し、外部ソースにデータを送信する入出力インターフェース146を含む。入出力インターフェース146はデータリンク159を介してモデム154(例えば、標準型モデム、ケーブルモデム、またはデジタル加入者回線(「DSL」モデム))に結合され、これによってコンピュータシステム120は外部ソースからデータを受信し、かつ/またはこれにデータを送信する。図1に示すように、入出力インターフェース146およびモデム154は、データリンク152を介した遠隔コンピュータシステム193とのデータの交換に役立つ。データリンク152はネットワークの部分を表し、遠隔コンピュータシステム193はネットワークのノードを表す。例えば、遠隔コンピュータシステム193は、データストリームをコンピュータシステム120に送信する送信コンピュータシステムであってよい。一方、遠隔コンピュータシステム193は、コンピュータシステム120から送信されたデータストリームを受信する受信コンピュータシステムであってよい。
図1は本発明に適した動作環境を表すが、本発明の原理は適宜適切な修正を加えて本発明の原理を実施することができるいかなるシステムにでも使用することができる。図1に示した環境は、説明のみを意図しており、本発明の原理を実施することができる幅広い種類の環境の小部分すら表すものではない。
本発明によれば、アプリケーションモジュール、ネットワークインターフェースモジュール、およびプロービングモジュールは、データパケット、送信パラメータ、およびデータストリームを含めて関連するデータと同様に、コンピュータシステム120に関連付けられたコンピュータ可読媒体のどれにでも記憶し、またそこからアクセスすることができる。例えば、そのようなモジュールの部分および関連するプログラムデータの部分を、システムメモリ122に記憶するためにオペレーティングシステム135、アプリケーションプログラム136、プログラムモジュール137、および/またはプログラムデータ138に含めることができる。
磁気ハードディスク139のような大容量記憶装置がコンピュータシステム120に結合されている場合、そのようなモジュールおよび関連するプログラムデータもその大容量記憶装置に記憶することができる。ネットワーク接続環境では、コンピュータシステム120に関連して示されたプログラムモジュールまたはその一部を、遠隔コンピュータシステム183および/または遠隔コンピュータシステム193に関連付けられたシステムメモリおよび/または大容量記憶装置のような遠隔記憶装置に記憶することができる。そのようなモジュールの実行は、上述のように分散型環境で行うことができる。
図2は、ネットワーク上へのデータストリームの許容を制御することに役立つネットワークアーキテクチャ200の一例を示す。ネットワークアーキテクチャ200には、コンピュータシステム201、211、221、231、241、および251が含まれる。コンピュータシステム201、211、および221は、それぞれ対応するデータリンク272、273、および271によってデータハブ250に接続される。コンピュータシステム201、211、および221は、電子データを送信し電子データを受信するためにそれぞれ対応するネットワークインターフェースモジュール203、213、および223を含む。
データハブ250はデータリンク277によってデータスイッチ255に接続されている。同様に、コンピュータシステム251はデータリンク279によってデータスイッチ255に接続されている。コンピュータシステム251は、電子データを送信し電子データを受信するためのネットワークインターフェースモジュール253を含む。データスイッチ255は、データリンク278によってデータスイッチ260に接続されている。コンピュータシステム231および241は、それぞれ対応するデータリンク275および276によってデータスイッチ260に接続されている。コンピュータシステム231および241は、それぞれ電子データをデータスイッチ260に送信し、電子データをそこから受信するための対応するネットワークインターフェースモジュール233および243を含む。
データストリーム(例えば、UDPデータストリーム)は、ネットワークアーキテクチャ200のコンピュータシステム間およびネットワークアーキテクチャ200のコンピュータシステムとネットワークアーキテクチャ200外部のコンピュータシステム(図示せず)との間で転送することができる。ネットワークアーキテクチャ200のコンピュータシステムは、データストリームが別のコンピュータシステムの対応する受信アプリケーションに転送されることを要求する1つのコンピュータシステムでの送信アプリケーションの結果としてデータストリームを転送することができる。例えば、アプリケーションモジュール212は、アプリケーションモジュール242にアプリケーションのデータストリームの転送を要求することができる。その結果、ネットワークインターフェースモジュール213は、適切なアプリケーションのデータを含んでおり、コンピュータシステム241に対応する宛先アドレス(例えば、IPアドレス)を有するデータストリームをデータリンク273上に送信することができる。ネットワークインターフェースモジュール243は、送信されたデータストリームをデータリンク276から受信し、そこに含まれているアプリケーションのデータをアプリケーション242に配信させることができる。
非ストリーミングデータは、ネットワークアーキテクチャ200のコンピュータシステム間およびネットワークアーキテクチャ200のコンピュータシステムとネットワークアーキテクチャ200外部のコンピュータシステムとの間で転送することもできる。例えば、コンピュータシステム251は、データを非ストリーミングによる方法で他のコンピュータシステムに転送するサーバであってよい。別のコンピュータシステムがコンピュータシステム251に記憶されているファイルを要求する場合、ネットワークインターフェースモジュール253は、要求されたファイルを含んでおり、要求側コンピュータシステムの宛先アドレスを有するデータパケットを送信することにより応答することができる。例えば、アプリケーションモジュール222は、コンピュータシステム251に記憶されているウェブページを要求するウェブブラウザであってよい。したがって、コンピュータシステム251は、コンピュータシステム221に配信するためにデータリンク279上に要求されたウェブページを転送することにより応答することができる。ネットワークインターフェースモジュール253は、ウェブページを含むHTTPメッセージ(例えば、1つまたは複数の通信制御プロトコル(「TCP」)セグメントとして)をコンピュータシステム221に送信することによって、要求されたウェブページの送信に役立つことができる。ネットワークインターフェースモジュール223は、データリンク271からウェブページを受信し、そのウェブページをアプリケーションモジュール222に配信させることができる。
したがって、ネットワークアーキテクチャ200のデータリンクは、ストリーミングおよび非ストリーミングデータがデータリンクを介して転送されることによるデータ負荷の変動を経験する場合がある。データがデータリンク上に送信されると、そのデータリンクの帯域幅の一部が消費され、それによってそのデータリンクの使用可能な帯域幅は減る。反対に、データリンクからデータが除去されると(例えば、ファイル転送完了後、またはデータストリーム終了後)、そのデータリンクの帯域幅の一部は解放され、それによってそのデータリンクの使用可能な帯域幅は増える。
図3Aおよび3Bは、送信コンピュータシステムがネットワークデータ経路を輻輳せずにアプリケーションのデータストリームを受信コンピュータシステムに配信することができると推定するための方法300の一例である流れ図を示す。方法300を、ネットワークアーキテクチャ200に示すコンピュータシステムに関して説明する。
方法300は、要求されたアプリケーションのデータ転送速度を受信する動作を含む(動作301)。動作301は、送信コンピュータシステムから受信コンピュータシステムへのアプリケーションのデータストリームの配信を要求するアプリケーションから、要求されたアプリケーションのデータ転送速度を受信することを含むことができる。例えば、プロービングモジュール204は、アプリケーションモジュール202がコンピュータシステム201からコンピュータシステム221またはコンピュータシステム231に配信されることを要求しているアプリケーションのデータストリームに対するアプリケーションのデータ転送速度を受信することができる。要求されたアプリケーションのデータ転送速度は、データストリームの送信中に使用されるべきピーク転送率であってよい。
方法300は、プロミスキャス(promiscuous)モード測定を実行するための機能的な結果志向ステップを含む(ステップ312)。ステップ312は、プロミスキャスモード測定を実行する結果を達成するためのいかなる対応する動作でも含むことができる。しかし、図3に示した例では、ステップ312は、送信側のデータ負荷を受動的に検出する対応する動作を含む(動作302)。動作302は、送信側データリンクの送信側のデータ負荷を受動的に検出することを含むことができる。
送信側コンピュータシステムは、データストリームを送信すべき送信コンピュータシステムであってよい。例えば、アプリケーションモジュール202からの要求されたアプリケーションのデータ速度の受信に応答して、プロービングモジュール204は、データリンク272を介して転送されるすべてのデータパケットを受信するようネットワークインターフェースモジュール203を構成することができる。少なくともデータパケットが受信される周波数と受信したデータパケットのサイズとに基づいて、プロービングモジュール204は、データリンク272上のデータ負荷を推定することができる。コンピュータシステム201はデータハブ250に接続されているので、データリンク272上のデータ負荷はデータリンク271、272、273および277上で送信中のすべてのデータパケットから計算される。例えば、コンピュータシステム221は第1のデータストリームをコンピュータシステム211に3Mbpsで転送し、第2のデータストリームをデータスイッチ255に(例えば、コンピュータシステム231への配信のために)2Mbpsで転送していてよい。したがって、データリンク272上のデータ負荷は少なくとも5Mbpsとなる。
別法として、送信側コンピュータシステムは、送信コンピュータシステムと共に共通データハブに接続されているコンピュータシステムであってよい。例えば、コンピュータシステム201(送信コンピュータシステム)はデータ経路291を介してデータストリームをコンピュータシステム231に送信する場合、プロービングモジュール204はプロービングモジュール224に送信側のデータ負荷を受動的に検出するための命令を送信することができる。したがって、プロービングモジュール224は、データリンク271を介して転送されるすべてのデータパケットを受信するようネットワークインターフェースモジュール223を構成することができる。データハブ250はすべての接続されたデータリンクからすべての他の接続されているデータリンク(データリンク271、272、273、および277)にデータパケットを送信するので、データリンク271上のデータ負荷はデータリンク272上のデータ負荷と同じになる。
データ負荷の受動的な検出は、データリンク上にデータパケットをまったく送信せずに行うことができる。例えば、プロービングモジュール204は、データリンク272上にデータパケットをまったく送信せずにデータリンク272上のデータ負荷を検出することができる。したがって、データリンク272上のデータ負荷の受動的な検出がデータハブ250を介して転送中の他のデータを劣化させる危険性は大幅に削減される。
ステップ312は、送信側データリンクの使用可能な帯域幅容量が十分であると計算することに対応する動作も含む(動作303)。動作303は、検出された送信側のデータ負荷に基づいて、送信側データリンクで使用可能な帯域幅容量が要求されたアプリケーションのデータ転送速度でデータストリームを受信するために十分であるということを計算することを含むことができる。データリンクに対する使用可能な帯域幅容量は等式1に従って計算することができる。
使用可能なリンク帯域幅=[(許容可能なローディング)・(リンク容量)]−データリンク負荷 等式1
許容可能なローディング(Acceptable_Loading)は、データストリームが消費することのできる使用可能な帯域幅のパーセンテージを表すためにネットワーク管理者またはユーザの希望で選択することのできる値である。データストリームに対する低減された使用可能な帯域幅を許可することが希望される場合、許容可能なローディング値を低減することができる。例えば、データリンクの容量の30%をデータストリームのために使用することが希望される場合、許容可能なローディング値「.3」を選択することができる。一方、データストリームのために増加した使用可能な帯域幅を許可することが希望される場合、許容可能なローディング値を増加させることができる。例えば、データリンクの容量の90%をデータストリームのために使用することが希望される場合、許容ローディング値を「.9」にセットすることができる。データリンクの全容量をデータストリームのために使用することが希望される場合、許容ローディング値を「1」にセットすることができる。許容ローディング値は、データリンクを輻輳させずにデータストリームのためにデータリンクの容量をできるだけ多く使用するよう選択することができる。一方、使用可能な帯域幅の一部の量を非ストリーミングデータの送信用に消費するよう許容可能なローディング値を選択することができる。
リンク容量(Link_Capacity)は、データリンク(例えば、データリンク272)の定格データ容量を(例えば、Mbpsで)表す値である。リンク容量は、イーサネット(登録商標)(IEEE802.3標準)、または無線(IEEE802.11標準)のような、データリンクを実施するために使用される技術によって異なる場合がある。さらに、特定の技術の実施態様は異なる定格データ容量を有する場合がある。例えば、イーサネット(登録商標)データリンクは、定格データ容量、10Mbps、100Mbps、または1,000Mbps(ギガビット)であってよい。同様に、IEEE802.11データリンクは、定格データ容量、11Mbps、5.5Mbps、2Mbps、または1Mbpsであってよい。しかし、本発明は上記ネットワーク技術および定格データ容量に限定されないということを理解されたい。当業者には、本明細書を検討すれば、本発明を実施する際には、上記のネットワーク技術および定格データ容量に加えて幅広い種類のネットワーク技術および定格データ容量を使用することができるということが明らかになろう。
データリンク負荷(Data_Link_Load)は、送信(または受信)側のデータリンク上の受動的に検出された送信(または受信)側のデータ負荷のような、データリンク上のデータ負荷を表す値である。
等式1の値は、使用可能なリンク帯域幅(Available_Link_Bandwidth)の値を計算するために等式1の算術演算子に従って結合することができる。すなわち、データリンク負荷値は、許容可能なローディング値にリンク許容値を乗じた積から差し引かれる。例えば、データリンク272は、リンク容量値が10Mbps、データリンク負荷値が2Mbpsであってよい。さらに、ネットワーク管理者またはネットワークアーキテクチャ200のユーザが、データリンク272のために許容可能なローディング値として「.7」を選択している場合がある。したがって、本実施例では、データリンク272のための使用可能なリンク帯域幅値は[(.7)・(10Mbps)]−2Mbpsまたは5Mbpsに等しくなる。
送信側データリンクに対する計算された使用可能なリンク帯域幅値が、要求されたアプリケーションのデータ転送速度よりも小さい場合、この送信側データリンクは、要求されたアプリケーションのデータ速度でアプリケーションのデータストリームをサポートするために十分な使用可能な帯域幅容量を有していないと見なされる。直前の実施例を参照すると、データリンク272は、5Mbpsよりも大きい、いかなるデータ速度でアプリケーションのデータストリームを受信するために十分な使用可能な帯域幅を有しているとは見なされない。データリンクのリンク容量よりも大きいデータ転送速度全体(すなわち、データリンクのデータ負荷総計)でデータリンクを介してデータを転送することを許可することにより、データリンクを輻輳させる可能性は増大する。したがって、データリンクが要求されたアプリケーションのデータ速度をサポートするために十分な使用可能な帯域幅容量を有しない場合、アプリケーションのデータストリームはデータリンク上に送信されず、テストを終了することができる。有益な結果として、データリンクを輻輳させる可能性の増大したデータストリームがデータリンク上に送信されることが防止される。
一方、送信側データリンクに対して計算された使用可能なリンク帯域幅値が要求されたアプリケーションのデータ転送速度よりも大きい(または等しい)場合、送信側データリンクは、要求されたアプリケーションのデータ速度でアプリケーションのデータストリームをサポートするために十分な使用可能な帯域幅容量を有していると見なされる。直前の実施例を参照すると、データリンク272は、5Mbpsと同等またはこれより低いいかなるアプリケーションのデータ速度でもサポートするために十分な使用可能な帯域幅を有していると見なされる。データリンクのリンク容量と同等またはこれより低いデータ転送速度全体でデータリンクを介してデータを転送することを許可することによって、データリンクを輻輳させる可能性は減少する。したがって、要求されたアプリケーションのデータ速度をデータリンクがサポートできる場合、アプリケーションのデータストリームがネットワークデータ経路を輻輳させる可能性をより正確に決定するために、パケット対テストおよび/または能動ネットワークプロービングのようなより能動的なテストを実行することができる。
ネットワーク構成に応じて、送信側コンピュータシステムは受信側コンピュータシステムに受信側のデータ負荷を受動的に検出するための命令を送信することもできる(動作304)。送信側データリンク(例えば、データリンク272)および受信側データリンク(例えば、データリンク271)は同じデータハブ(例えば、データハブ250)に接続され、同じリンク容量および許容可能なローディング値を有していてよい。したがって、送信側データリンクと受信側データリンクの両方に対して使用可能なローカル帯域幅を検出することは冗長であると見なされる場合がある。したがって、これらのネットワーク構成では、送信コンピュータシステムは受信側コンピュータシステムに命令を送信しなくてよい。例えば、アプリケーションモジュール202がアプリケーションモジュール222にデータストリームの送信を要求する場合、プロービングモジュール204はプロービングモジュール224に命令を送信しなくてよい。
一方、送信側データリンク(例えば、データリンク272)および受信側データリンク(例えば、データリンク275)はスイッチによって分離され、かつ/またはリンク容量が異なり、かつ/または許容可能なローディング値が異なるネットワークデータ経路(例えば、データ経路291)の終端にある。したがって、送信側データリンクと受信側データリンクの両方に対する使用可能なローカル帯域幅を検出することは冗長であるとは見なされない場合がある。したがって、これらのネットワーク構成では、送信コンピュータシステムは受信側コンピュータシステムに命令を送信することができる。例えば、アプリケーションモジュール202がデータストリームの送信をアプリケーションモジュール232に要求した場合、プロービングモジュール204はプロービングモジュール234に命令を送信することができる。
方法300は、受信コンピュータシステムがプロミスキャスモード測定に参加するための機能的な結果志向ステップを適宜含む(ステップ324)。ステップ324は、プロミスキャスモード測定に参加する結果を達成するためのいかなる対応する動作をも含むことができる。しかし、図3に示した例では、ステップ324は、受信側コンピュータシステムが受信側のデータ負荷を受動的に検出することに対応する動作を含む(動作314)。動作314は、受信側データリンクでの受信側のデータ負荷を受動的に検出することを含むことができる。受信側コンピュータシステムは、データストリームを受信すべき受信コンピュータシステムであってよい。例えば、コンピュータシステム231がデータ経路291を介してコンピュータシステム201からデータストリームを受信すべき場合、プロービングモジュール232は、データリンク275を介して転送されたすべてのデータパケットを受信するようネットワークインターフェースモジュール233を構成することができる。
別法として、受信側コンピュータシステムは、受信コンピュータシステムと共に共通データハブに接続されているコンピュータシステムであってよい。例えば、コンピュータシステム231(送信コンピュータシステム)がデータ経路291を介してコンピュータシステム201(受信コンピュータシステム)にデータストリームを送信すべき場合、プロービングモジュール234はプロービングモジュール224に受信側のデータ負荷を受動的に検出するための命令を送信することができる。したがって、プロービングモジュール224は、データリンク271を介して転送されるすべてのデータパケットを受信するようネットワークインターフェースモジュール223を構成することができる。データハブ250はすべての接続されたデータリンクからすべての他の接続されたリンク(データリンク271、272、273、および277)にデータパケットをコピーするので、271上のデータ負荷はデータリンク272上のデータ負荷と同じになる。
ステップ324は、使用可能な受信側帯域幅容量を計算することに対応する動作を含む(動作315)。動作315は、検出された受信側のデータ負荷に基づいて受信側コンピュータシステムが受信側データリンクの使用可能な帯域幅容量を計算することを含むことができる。受信側コンピュータシステムは、等式1に従って受信側のデータ負荷を計算することができる。方法300は、送信コンピュータシステムに対して使用可能な受信側の帯域幅容量を示す動作を含む(動作316)。動作316は、受信側コンピュータシステムが送信コンピュータシステムに対して受信側データリンクの使用可能な帯域幅を示すことを含むことができる。例えば、コンピュータシステム231がコンピュータシステム201からデータストリームを受信すべき場合、コンピュータシステム231は、コンピュータシステム201に対してデータリンク275の使用可能な帯域幅容量を示すことができる。
方法300は、受信側データリンクの使用可能な帯域幅容量が十分であるという指示を受信する送信側コンピュータシステムの動作を含む(動作305)。動作305は、受信側データリンクの使用可能な帯域幅容量の指示を受信側コンピュータシステムから受信することを含むことができる。受信側データリンクに対する(例えば、等式1に従って)計算された使用可能なリンク帯域幅値が要求されたアプリケーションのデータ転送速度よりも小さい場合、受信側データリンクは、要求されたアプリケーションのデータ速度でアプリケーションのデータストリームをサポートするには十分な使用可能な帯域幅容量を有していないと見なされる。したがって、適宜、アプリケーションのデータストリームは送信されず、テストを終了することができる。一方、受信側データリンクに対して計算された使用可能なリンク帯域幅値が、要求されたアプリケーションのデータ転送速度よりも大きい(または等しい)場合、受信側データリンクは、要求されたアプリケーションのデータ速度でアプリケーションのデータストリームをサポートするために十分に使用可能な帯域幅容量を有していると見なされる。したがって、アプリケーションのデータストリームがネットワークデータ経路を輻輳させる可能性をより正確に決定するために、適宜、パケット対テストおよび/または能動的なネットワークプロービングのようなより能動的なテストを実行することができる。
方法300は、パケット対テストを開始するための機能的な結果志向ステップを含む(ステップ313)。ステップ313は、パケット対テストを開始する結果を達成するためのいかなる対応する動作をも含むことができる。しかし、図3に示した実施例では、ステップ313は、第1のパケット対のデータパケットを送信することに対応する動作を含む(動作306)。動作306は、送信側コンピュータシステムが、受信側コンピュータシステムに配信するためにネットワークデータ経路上に第1のパケット対のデータパケットを送信することを含むことができる。例えば、コンピュータシステム201はコンピュータシステム231とパケット対テストを開始することができる。したがって、コンピュータシステム201は、コンピュータシステム231に配信するために第1のパケット対のデータパケットをデータ経路291上に送信することができる。
ステップ313は、第2のパケット対のデータパケットを後で送信することに対応する動作も含む(動作307)。動作307は、送信側コンピュータシステムが、受信側コンピュータシステムに配信するためにネットワークデータ経路上に対応する第2のパケット対のデータパケットを送信することを含むことができる。第2のパケット対のデータパケットは、第1のパケット対のデータパケットに近いサイズ、または場合によっては同一サイズである。送信時間間隔(例えば、非同期送信コマンド間の時間間隔)は、第1のパケット対のデータパケットと第2のパケット対のデータパケットの送信を分離することができる。送信時間間隔の値は、パケット対のデータパケットがネットワークデータ経路のボトルネックリンクでキューに入っている可能性が大幅に増加するほど十分に小さくてよい。
別法として、パケット対のデータパケットは中間の送信コンピュータシステムから送信することができる。例えば、送信側プロミスキャスモード測定の結果は、送信側データリンクがアプリケーションのデータストリームをサポートするために十分な使用可能な帯域幅容量を有していることを示す場合がある。したがって、送信側データリンクを介した送信パケット対のデータパケットは冗長である場合がある。例えば、データリンク272(すなわち、データリンク277も)がアプリケーションのデータストリームをサポートするために十分な使用可能な帯域幅容量を有することが示されている場合、パケット対のデータパケットをデータスイッチ255から送信することができる。
方法300は、受信側コンピュータシステムがパケット対テストに参加するための機能的な結果志向ステップを含む(ステップ325)。ステップ325は、パケット対テストに参加する結果を達成するためのいかなる対応する動作でも含むことができる。しかし、図3に示した例では、ステップ325は、第1のパケット対のデータパケットの対応する動作を含む(動作317)。動作317は、第1の受信時刻でネットワークデータ経路から第1のパケット対のデータパケットを受信する受信側コンピュータシステムを含むことができる。ステップ325は、第2のパケット対のデータパケットを受信することに対応する動作も含む(動作318)。動作318は、第2の受信時刻でネットワークデータ経路から第2のパケット対のデータパケットを受信する受信側コンピュータシステムを含むことができる。
別法として、パケット対のデータパケットを中間の受信コンピュータシステムで受信することができる。例えば、受信側プロミスキャスモード測定の結果は、受信側データリンクがアプリケーションのデータストリームを受信するために十分な使用可能な帯域幅を有していることを示すことができる。したがって、受信側データリンクを介してパケット対のデータパケットを受信することは冗長である場合がある。例えば、データリンク275がアプリケーションのデータストリームを受信するために十分な使用可能な帯域幅を有するということが示された場合、パケット対のデータパケットをデータスイッチ260で受信することができる。
ステップ325は、ボトルネックリンクの使用可能な帯域幅容量を計算することに対応する動作を含む(動作319)。動作319は、少なくとも第1の受信時刻と第2の受信時刻との間の差に基づいてネットワークデータ経路のボトルネックデータリンク上の使用可能な帯域幅容量を計算することを含むことができる。方法300では受信側で行われるものとして示したが、受信側または中間の受信コンピュータシステムが受信されたボトルネックッデータに基づいてボトルネック帯域幅を計算する送信側または中間の送信コンピュータシステムにボトルネックデータ(第1および第2の受信時刻を含めて)を送信することができる。
ネットワークデータ経路のボトルネック帯域幅は少なくとも等式2によって推定することができる。
ボトルネック帯域幅=パケットサイズ/(第2の受信時刻−第1の受信時刻) 等式2
パケットサイズは、第1のパケット対のデータパケットと第2のパケット対のデータパケットのサイズを表す値である。第1のパケット対のデータパケットと第2のパケット対のデータパケットが同一サイズでない場合、この値は、第1のパケット対のデータパケットのサイズと第2のパケット対のデータパケットのサイズの平均を表す場合がある。第1の受信時刻は、第1のパケット対のデータパケットが受信側コンピュータシステムまたは中間の受信コンピュータシステムで受信された時刻を表す値である。同様に、第2の受信時刻は、第2のパケット対のデータパケットが受信側コンピュータシステムまたは中間の受信コンピュータシステムで受信された時刻を表す値である。
ボトルネック帯域幅値を計算するために等式2の算術演算子に従って等式2の値を結合することができる。すなわち、パケットサイズ値は、第1の受信時刻値から第2の受信時刻値を差し引いた差で割られる。例えば、コンピュータシステム231は、09:56:05.234でパケットサイズ値32,768ビット(4,096バイト)のデータ経路291を介して第1のパケット対のデータパケットを受信することができる(第1の受信時刻値)。その後、コンピュータシステム231は、09:56:05.250でパケットサイズ値32,768ビットのデータ経路291を介して第2のパケット対のデータパケットを受信することができる(第2の受信時刻値)。したがって、本実施例では、推定されたボトルネック帯域幅値は32,786ビット/(.250秒−.234秒)と等しいかまたは約2Mbpsである。
送信側コンピュータシステムまたは中間の送信コンピュータシステムは、ネットワークデータ経路を介して受信側コンピュータシステムまたは中間の受信コンピュータシステムに送信される、サイズが不変の連続したデータパケット(各データパケットは不変のパケット対の送信時間間隔によって分離される)のパケット対のトレインの第1および第2のパケット対のデータパケットを含むことができる。ネットワークデータ経路に対するボトルネック帯域幅を計算するために、レシーバーオンリーパケットペア(「ROPP」)アルゴリズム、レシーバーベースパケットペア(「RBPP」)アルゴリズム、およびセンダーベースパケットペア(「SBPP」)アルゴリズムのような様々な異なるパケット対アルゴリズムのいずれかを実施するためにパケット対のトレインの送信を使用することができる。データ経路291に対するボトルネック帯域幅値を計算するために、これらのパケット対アルゴリズムのどれでも(または、他のパケット対アルゴリズムのどれでも)実施することができる。プロービングモジュール204、224、および/または234のようなプロービングモジュールを、パケット対アルゴリズムを実施するために適切な機能性によって構成することができる。パケット対アルゴリズムの精度を高めるために、ヒストグラムのようなパケット対フィルタリング技術を使用することができる。
一部の実施形態では、中間の送信コンピュータシステムは、少なくとも第1および第2のパケット対のデータパケットを中間の受信コンピュータシステムに送信する。例えば、プロミスキャスモード測定の結果は、送信側データリンクと受信側データリンクの両方がアプリケーションのデータストリームをサポートするために十分な使用可能な帯域幅容量を有することを示すことができる。したがって、これらのデータリンクを介した送信および受信パケット対のデータパケットは冗長である場合がある。例えば、データリンク271およびデータリンク276がアプリケーションのデータストリームをサポートするために十分な使用可能な帯域幅容量を有することが示されている場合、パケット対のデータパケットをデータスイッチ255からデータスイッチ260に送信することができる。したがってこの場合、データスイッチ255またはデータスイッチ260は、データリンク278に対するボトルネック帯域幅を計算することができる。
方法300は、送信コンピュータシステムに対して使用可能なボトルネック帯域幅を示す動作を含む(動作320)。動作320は、受信側コンピュータシステムまたは中間の受信コンピュータシステムが送信側コンピュータシステムまたは中間の送信コンピュータシステムに対して使用可能なボトルネック帯域幅容量を示すことを含むことができる。方法300は、ボトルネックデータリンク上の使用可能な帯域幅容量が十分であるという指示を受信する動作を含む(動作308)。動作308は、送信側コンピュータシステムまたは中間の送信コンピュータシステムが、ボトルネックデータリンクの使用可能な帯域幅容量は要求されたアプリケーションのデータ転送速度でデータストリームをサポートするために十分であるという指示を受信することを含むことができる。
一部の実施形態では、指定されたボトルネックローディング値(例えば、.2、.7など)は、データストリームが消費できるボトルネック帯域幅容量を制限する。指定されたボトルネックローディング値はネットワーク管理者またはユーザの希望に従って選択することができる。データストリームに対して低減したボトルネック帯域幅を許可することが希望される場合、指定されたボトルネックローディング値を低減することができる。例えば、データストリームに対してネットワークデータ経路のボトルネック帯域幅の20%を許可するために、使用可能なボトルネック帯域幅値を計算するためにボトルネック帯域幅値に指定されたボトルネックローディング値「.2」を乗じることができる。
一方、データストリームに対して増加したボトルネック帯域幅を許可することが希望される場合、指定されたボトルネックローディング値を増加させることができる。例えば、データストリームに対してネットワークデータ経路のボトルネック帯域幅の70%を許可するために、使用可能なボトルネック帯域幅値を計算するためにボトルネック帯域幅値に指定されたボトルネックローディング値「.7」を乗じることができる。データストリームに対してネットワークデータ経路のボトルネック帯域幅のすべてを許可することが希望される場合、指定されたボトルネックローディング値を「1」にセットすることができる。ネットワークデータ経路を輻輳させずにできるだけ多くのボトルネック帯域幅を使用するために、指定されたボトルネックローディング値が選択されることができる。一方、非ストリーミングデータの送信用にボトルネック帯域幅の一部の量を消費するように、指定されたボトルネックローディング値を選択することができる。
計算されたボトルネック帯域幅値(または、適宜、計算された使用可能なボトルネック帯域幅値)が要求されたアプリケーションのデータ転送速度よりも小さい場合、そのネットワークデータ経路は要求されたアプリケーションのデータ転送速度でアプリケーションのデータストリームをサポートするために十分な使用可能な帯域幅容量を有していないと見なされる。したがって、アプリケーションのデータストリームはネットワークデータ経路上に送信されず、テストを終了することができる。有益な結果として、ネットワークデータ経路を輻輳させる可能性が増大したデータストリームがネットワークデータ経路上に送信されることが防止される。
一方、ネットワークデータ経路に対して計算されたボトルネック帯域幅値(または、適宜、計算された使用可能なボトルネック帯域幅値)が要求されたアプリケーションのデータ転送速度よりも大きい(または等しい)場合、ネットワークデータ経路は、要求されたアプリケーションのデータ速度でアプリケーションのデータストリームをサポートするために十分な使用可能な帯域幅容量を有するものと見なされる。その結果、アプリケーションのデータストリームがネットワークデータ経路を輻輳させる可能性をより正確に決定するために、能動ネットワークプロービングのようなより能動的なテストを実行することができる。
方法300は、ネットワークデータ経路を能動的にプローブするために機能的な結果志向のステップを含む(ステップ314)。ステップ314は、ネットワークデータ経路を能動的にプローブする結果を達成するためのいかなる対応する動作も含むことができる。しかし、図3に示した例では、ステップ314は、アプリケーションのデータストリームをシミュレーションするために送信パラメータを特定することに対応する動作を含む(動作309)。動作309は、送信コンピュータシステムが、要求されたアプリケーションのデータ転送速度でのアプリケーションのデータストリームの送信をシミュレーションするようデータパケットのトレインを構成するための送信パラメータを特定することを含むことができる。
例えば、送信コンピュータシステムは、プロービングデータパケットサイズ値、トレイン値当たりパケット数(packets per trains value)、プロービングデータパケット間隔値、およびプロービングトレイン間隔値を特定することができる。プロービングデータパケットサイズ値は、プロービングデータパケットのトレインに含まれるプロービングデータパケットのサイズ(例えば、ビットまたはバイト)を表す。例えば、プロービングデータパケットサイズ値4,096は、プロービングデータパケットのトレインに含まれるプロービングデータパケットが4,096ビットまたは4,096バイト(32,768ビット)のサイズを有すべきことを表すことができる。トレイン値当たりパケット数は、プロービングデータパケットのトレインに含まれるべきプロービングデータパケット数を表す。例えば、トレイン当たりパケット数の値10は、10個のプロービングデータパケットがプロービングデータパケットのトレインに含まれるべきことを表すことができる。プロービングデータパケット間隔値は、プロービングデータパケットのトレイン内の連続するプロービングデータパケットの送信間の時間間隔(例えば、ミリ秒)を表す。例えば、プロービングデータパケット間隔値1は、プロービングデータパケットのトレイン内のプロービングデータパケットが1ミリ秒ごとに送信されるべきことを表すことができる。
プロービングトレイン間隔値は、プロービングデータパケットの一連のトレイン内のプロービングデータパケットの連続するトレイン間の時間間隔(例えば、ミリ秒)を表す。例えば、プロービングトレイン間隔値90は、プロービングデータパケットの連続するトレインが90ミリ秒ごとに送信されるべきことを表すことができる。プロービングデータパケットの連続するトレインをプロービングトレイン間隔値によって分離することによって、データハブおよびデータスイッチでの(キューに入っているデータパケットを少なくともプロービングトレイン間隔時間で配信させることが許可されるような)キャプチャ効果が低減される可能性がある。これによりプロービングデータパケットのトレインのいずれかがネットワークデータ経路上で送信中の他のデータ(データストリームまたは非ストリーミングデータ)を劣化させる可能性が低減される。
ステップ314は、特定された送信パラメータに従いパケットのトレインを一時的に送信することに対応する動作を含む(動作310)。動作310は、送信コンピュータシステムが、ネットワークデータ経路上へのアプリケーションのデータストリームの送信をシミュレーションするために、特定された送信パラメータに従いプロービングデータパケットのトレインを一時的に送信することを含むことができる。例えば、プロービングモジュール204は、要求されたアプリケーションのデータ転送速度でのアプリケーションのデータストリームの送信をシミュレーションするために、データ経路291上にプロービングデータパケットのトレインを一時的に送信することができる。
方法300は、ネットワークデータ経路の能動的なプロービングに参加するための機能的な結果志向ステップを含む(ステップ326)。ステップ326は、ネットワークデータ経路の能動的なプロービングに参加する結果を達成するためのいかなる対応する動作でも含むことができる。しかし、図3に示した例では、ステップ326は、アプリケーションのデータ転送速度でアプリケーションのデータストリームをシミュレーションするプロービングパケットのトレインからプロービングパケットを受信することに対応する動作を含む(動作321)。動作321は、要求されたアプリケーションのデータ転送速度でアプリケーションのデータストリームをシミュレーションするためにパケットをネットワークデータ経路上に送信した送信コンピュータシステムから受信コンピュータシステムがプロービングデータパケットのトレイン内のプロービングパケットの少なくとも一部を受信することを含むことができる。例えば、プロービングモジュール234は、プロービングモジュール204によって送信されたプロービングデータパケットのトレインからプロービングデータパケットを受信することができる。
ステップ326は、プロービングデータパケットのトレインがネットワークデータ経路を輻輳させなかったことを計算することに対応する動作を含む(動作322)。動作322は、受信側コンピュータシステムが、プロービングデータパケットのトレインがネットワークデータ経路のデータリンクのいずれも輻輳状態に遷移させなかったことを計算することを含むことができる。例えば、プロービングモジュール234は、プロービングモジュール204から受信したプロービングパケットのトレインがデータ経路291(すなわち、データリンク272、277、278、および275)のどのデータリンクも輻輳状態に遷移させなかったことを計算することができる。
方法300は、プロービングパケットのトレインがネットワークデータ経路を輻輳させなかったことを送信コンピュータシステムに示す動作を含む(動作323)。動作323は、受信側コンピュータシステムが、プロービングデータパケットのトレインはネットワークデータ経路のデータリンクをいずれも輻輳状態に遷移させなかったことを送信側コンピュータシステムに示すことを含むことができる。例えば、プロービングモジュール234は、データ経路291上で受信したプロービングデータパケットのトレインがデータ経路291を輻輳させなかったことをプロービングモジュール204に示すことができる。
方法300は、プロービングデータパケットのトレインがネットワークデータ経路を輻輳させなかったという指示を受信する動作を含む(動作311)。動作311は、プロービングデータパケットのトレインはネットワークデータ経路のどのデータリンクも輻輳状態に遷移させなかったという指示を送信側コンピュータシステムが受信側コンピュータシステムから受信することを含むことができる。例えば、プロービングモジュール204は、プロービングデータパケットのトレインがデータ経路291を輻輳させなかったという指示をプロービングモジュール234から受信することができる。
一部の実施形態では、データストリームがネットワークデータ経路を輻輳させる可能性は、様々なデータ転送速度で送信されたデータパケットのトレインに関連付けられたキューに入っている遅延を比較することによって決定される。図4は、特定されたキューに入っている遅延に基づく輻輳の可能性を推定するための方法400の一例である流れ図を示す。図5は、キューに入っている遅延に10Mbpsのイーサネット(登録商標)リンクに対して提案された負荷を対比した一例であるグラフ500を示している。図6Aは、データストリームがプローブされたネットワークデータ経路を輻輳状態に遷移させる可能性が低減されたことを示す、受信したデータパケットの受信時刻遅延閾値からの分散に対するパーセンテージの一例であるグラフ600を示している。図6Bは、データストリームがプローブされたネットワークデータ経路を輻輳状態に遷移させる可能性が増加したことを示す、受信したデータパケットの受信時刻遅延閾値からの分散に対するパーセンテージの一例であるグラフ650を示している。方法400を、ネットワークアーキテクチャ200およびグラフ500、600および650に示したコンピュータシステム関して説明する。
一例であるグラフ500では、キューに入っている遅延を縦軸(「Y軸」)に、提案された負荷を横軸(「X軸」)に示す。グラフ500は、リンク容量10Mbpsのイーサネット(登録商標)リンク上を特定の提案された負荷(例えば、4Mbps)で移動するデータパケットが特定のキューに入っている遅延(例えば、2ミリ秒未満)を経験することを示す。提案された負荷が増大するが、キューに入っている遅延は提案された負荷がニー領域501に遷移するまで比較的不変に保たれる。次いで、ニー(knee)領域501内の提案されたある負荷でキューに入っている遅延が劇的に増加し始める。
例えば、キューに入っている遅延は、提案された負荷7Mbps(2ミリ秒未満のキューに入っている遅延)と提案された負荷9Mbps(約10ミリ秒のキューに入っている遅延)の間の5倍以上に増加する。したがって、グラフ500が示すように、提案された負荷がリンク容量よりも少ない場合でさえ、より大きなキューに入っている遅延が発生する可能性はある。キューに入っている遅延が増加するとデータパケットはさらに長い時間間隔にわたりイーサネット(登録商標)に残り、これがイーサネット(登録商標)リンクを輻輳状態に遷移させる可能性がある。したがって、イーサネット(登録商標)リンクは、提案された負荷がリンク容量よりも少ない場合でさえデータストリームには適切でない場合がある。グラフ500はキューに入っている遅延を10Mbpsのイーサネット(登録商標)リンクに対して提案された負荷に対する対比を示しているが、100Mbpsのイーサネット(登録商標)リンクとIEEE802.11リンクのような幅広い種類の他のタイプのデータリンクが提案された負荷が増加するに従い同様のキューに入っている遅延の増加を経験する場合があることを理解されたい。
図4を参照すると、方法400は、診断用データパケットのトレインを送信する動作を含む(動作401)。動作401は、送信コンピュータシステムが診断用パケットのトレインをネットワークデータ経路上にボトルネック帯域幅値(例えば、パケット対テストによって推定される)の指定された分数(例えば、1パーセント)で送信することを含むことができる。例えば、プロービングモジュール204は、診断用データパケットのトレインをデータ経路291上にデータ経路291のボトルネック帯域幅の分数(例えば、1/100、または1/50)で送信することができる。ボトルネック帯域幅の指定された分数は、ネットワークデータ経路を輻輳させるか、さもなければネットワークデータ経路上を送信中のデータを劣化させる可能性を大幅に低減する診断用データ速度を表す。例えば、ボトルネック帯域幅5Mbpsのネットワークデータ経路を介して診断用データパケットのトレインを送信する場合、50キロビット/秒(「Kbps」)の診断用データ速度を使用することができる。送信コンピュータシステムは、診断用データパケットが送信された時刻を示す、各診断用データパケットのタイムスタンプを含むことができる。
方法400は、診断用データパケットの少なくとも一部を受信する動作を含む(動作404)。動作404は、受信コンピュータシステムが、送信コンピュータシステムから受信コンピュータシステムに送信される診断用データパケットのトレインに含まれる診断用データパケットの少なくとも一部を受信することを含むことができる。例えば、プロービングモジュール234は、プロービングモジュール204から送信される診断用データパケットのトレインの診断用データパケットの少なくとも一部を受信することができる。
方法400は、受信した診断用データパケットから遅延した診断用データパケット数を特定する動作を含む(動作405)。例えば、プロービングモジュールは、プロービングモジュール204から受信した診断用データパケットから遅延した診断用データパケットを特定することができる。データパケットに対する計算されたキューに入っている遅延が指定された受信時間遅延閾値よりも大きい場合、そのデータパケットは「遅延した」ものと見なされる。キューに入っている遅延は等式3に従って計算することができる。
QD=パケットの遷移時間−全受信パケット中最小遷移時間 等式3
パケットの遷移時間は、特定の受信したデータパケットに対する(有線による)遷移時間を表す値である。パケットの遷移時間は、データパケットが受信された時刻からそのデータパケットが送信された時刻を引いた差に等しい。データパケットが受信された場合、R時刻パックは受信時刻を表すために使用することのできる値である。データパケットが送信された時刻は、そのデータパケットに含まれるタイムスタンプから特定することができる。T時刻パックはデータパケットが送信された時刻を表すために使用することのできる値である。データパケットのトレインからデータパケットが受信された場合、各受信したデータパケットの送信時刻と受信時刻が特定され、適切に表される。遷移時間(R時刻パック−T時刻パック)は各受信されたデータパケットに対して計算される。全受信パケット中最小遷移時間は、すべての計算された遷移時間中最小の遷移時間を表す値である。
等式3の値を、特定データパケットに対してキューに入っている遅延を表すQD値を計算するために等式3の算術演算子に従って結合することができる。全受信パケット中最小遷移時間値を差し引くことによって、QD値は正規化され、送信側コンピュータシステムと受信側コンピュータシステムでのクロック値の差が補償される。したがって、クロックが不正確であるためにデータパケットに対する遷移時間が不正確または負になったとしても、等式3を依然として使用することができる。表1は、8つのデータパケットに対して可能な送信時刻および受信時刻(時:分:秒)の一例を示している。
Figure 2004266840
表1に示すように、データパケット3は、8つのデータパケットに対する全受信パケット中最小遷移時間値5.052秒に関連付けられている。遷移時間の列に「見かけ上の遷移時間」という見出しが付いているのは、クロックが不正確であることで遷移時間が実際の遷移時間とかなり異なって表示される可能性があるからである。受信遅延閾値は、管理者またはユーザが適切であると選択する事実上いかなる閾値であってもよい。一部の実施形態では、受信遅延閾値は(例えば、非同期送信の間の)送信時間間隔に等しい。表1では、送信時間間隔は2ミリ秒である。
等式3に従い、各データパケットに対するQDをパケットの見かけ上の遷移時間から5.052引いた差を取ることによって計算することができる。例えば、パケット7に対するQDは5.054秒−5.052秒、すなわち2msである。2ミリ秒のQDが2ミリ秒の送信時間間隔未満またはこれと同じなので、パケット7は遅延したパケットとは見なされない。一方、パケット5は4ミリ秒のQDを有しており、4ミリ秒は2ミリ秒よりも長いのでこれは遅延したパケットであると見なされる。
方法400は、目標データパケットのトレインを送信する動作を含む(動作402)。動作402は、送信コンピュータシステムが要求されたデータ転送速度(例えば、アプリケーションモジュールによって要求されるなどの)でコンピュータネットワークデータ経路上に目標データパケットのトレインを一時的に送信することを含むことができる。キャプチャ効果の増大を低減するために目標パケットのトレインを比較的短い時間間隔で送信することができる。したがって、要求されたデータ転送速度を他のデータストリームを劣化する可能性を低減した方法でシミュレーションすることができる。送信コンピュータシステムは、その目標パケットが送信された時刻を示す、各目標データパケット中のタイムスタンプを含むことができる。
方法400は、目標データパケットの少なくとも一部を受信する動作を含む(動作406)。動作406は、受信コンピュータシステムが、送信コンピュータシステムから受信コンピュータシステムに送信された目標データパケットのトレインに含まれるデータパケットの少なくとも一部を受信することを含むことができる。例えば、プロービングモジュール234は、プロービングモジュール204から送信された目標データパケットのトレイン内の目標データパケットの少なくとも一部を受信することができる。
方法400は、受信した目標データパケットから遅延した目標データパケット数を特定する動作を含む(動作407)。例えば、プロービングモジュール234は、プロービングモジュール204から受信した目標データパケットから遅延した目標データパケットを特定することができる。プロービングモジュール234は、遅延した目標データパケットを等式3に従って特定することができる。
方法400は、遅延した目標データパケット数を遅延した診断用データパケット数と比較する動作を含む(動作408)。動作408は、受信コンピュータシステムが、目標データパケットのトレインがネットワークデータ経路を輻輳させたか否かを判定するために、遅延した目標データパケット数を遅延した診断用データパケット数と比較することを含むことができる。例えば、プロービングモジュール234は、プロービングモジュール204から送信された遅延した目標データパケット数をプロービングモジュール204から送信された遅延した診断用データパケット数と比較することができる。
遅延した目標データパケット数が遅延した診断用データパケット数の指定された遅延したパケット閾値内である場合、アプリケーションのデータストリームの配信がプローブされたネットワークデータ経路を輻輳状態に遷移させる可能性は低下する。遅延したパケット閾値は、データパケット数であってもデータパケットのパーセンテージであってもよく、アプリケーションのデータストリームがネットワークを輻輳させるより堅実な、またはあまり堅実でない推定を表すよう変更することができる。
例えば、データストリームがネットワークを輻輳させないより堅実な推定が希望される場合、3%など、より低い遅延したパケット閾値をセットすることができる。したがって、ネットワークデータ経路が輻輳する可能性が低下したことを目標データパケットのトレインが示すには、受信遅延閾値内で受信した目標データパケット数が受信遅延閾値内で受信した診断用データパケット数よりも3%だけ少なければよい。一方、データストリームがネットワークを輻輳させないあまり堅実でない推定が希望される場合、12%など、より大きな遅延したパケット閾値をセットすることができる。したがって、目標データパケットのトレインがネットワークデータ経路が輻輳する可能性が低下したことを示すには、受信遅延閾値内で受信した目標データパケット数が受信遅延閾値内で受信した診断用データパケット数よりも12%だけ少なければよい。
図6Aを参照すると、一例であるグラフ600は、プローブされたネットワークデータ経路に対して遅延閾値601内で受信した目標データパケットと診断用データパケットのパーセンテージを示す。受信遅延閾値601より遅延の少ないデータパケット(診断用と目標の両方)は許容可能な遅延を有しているものと見なされる。反対に、受信遅延閾値601よりも遅延の大きいデータパケットは許容不可能な遅延であると見なされる。一例であるグラフ600では、受信したパケットのパーセンテージを縦軸(「Y軸」)に、受信遅延閾値601との時間の差を横軸(「X軸」)に示す。一例であるグラフ600は、推定されたデータ転送速度が2Mbpsのデータストリームがネットワークデータ経路を輻輳状態に遷移させるか否かを判定するために、データ負荷が4Mbpsのネットワークデータ経路(例えば、データ経路291)を能動的にプローブする結果を示している。
診断用トレインのY切片は、受信遅延閾値601内で受信した診断用データパケットのパーセンテージを表す。図から分かるように、診断用データパケットの約90%は許容可能な遅延内で受信された。目標トレインのY切片は、受信遅延閾値601内で受信した目標データパケットのパーセンテージを表す。図から分かるように、目標データパケットの約90%が許容可能な遅延内で受信された。目標データパケットと診断用データパケットの同様のパーセンテージが許容可能な遅延内で受信されたので、目標データパケットのパーセンテージは診断用データパケットのパーセンテージの遅延パケット閾値内であると見なされる可能性がある。したがって、一例であるグラフ600は、データストリームは2Mbpsというアプリケーションのデータ転送速度ではプローブされたネットワークデータ経路を輻輳させる可能性がないことを示す。したがって、2Mbpsのデータストリームをプローブされたネットデータ経路上に送信することを許可することができる。
遅延した目標データパケット数が遅延した診断用データパケット数の指定された遅延したパケット閾値内でない場合、アプリケーションのデータストリームの配信がプローブされたネットワークデータ経路を輻輳状態に遷移させる可能性は増大することになる。図6Bを参照すると、一例であるグラフ650は、プローブされたネットワークデータ経路から受信遅延閾値601内で受信された目標データパケットと診断用データパケットのパーセンテージを表している。受信遅延閾値601よりも遅延の少ない(診断用と目標の両方の)データパケットは、許容可能な遅延であると見なされる。反対に、受信遅延閾値601よりも遅延の大きいデータパケットは許容不可能な遅延であると見なされる。一例であるグラフ650では、受信したパケットのパーセンテージを縦軸(「Y軸」)に、受信遅延閾値601との差を横軸(「X軸」)に示した。一例であるグラフ650は、データ転送速度が7Mbpsであると推定されたデータストリームがネットワークデータ経路を輻輳状態に遷移させるか否かを判定するために、データ負荷が4Mbpsのネットワークデータ経路(例えば、データ経路291)を能動的にプローブした結果を表している。
診断用トレインのY切片は、受信遅延閾値601内に受信された診断用データパケット数を表している。図から分かるように、診断用データパケットの約90%は遅延閾値601内に受信されたものである。目標トレインのY切片は、遅延閾値601内に受信された目標データパケット数を表している。図から分かるように、目標データパケットの約15%は遅延閾値601内に受信されたものである。目標データパケットのパーセンテージと許容可能な遅延内で受信された診断用データパケットのパーセンテージとは大幅に変動するので、目標データパケットのパーセンテージは診断用データパケットのパーセンテージの遅延したパケット閾値内であると見なされる可能性はない。したがって、一例であるグラフ650は、アプリケーションのデータ転送速度7Mbpsではデータストリームはプローブされたネットワークデータ経路を輻輳させる可能性がないことを示している。したがって、7Mbpsのデータストリームをプローブされたネットワークデータ経路上に送信することを防止することができる。有益な結果として、ネットワークデータ経路を輻輳させる可能性が増大したデータストリームがネットワークデータ経路上に送信されることはない。
(例えば、10Mbps、100Mbpsなどのデータリンクを有する)ネットワークデータ経路の構成に応じて、許容可能な遅延内で(例えば、受信遅延閾値601以前に)受信された目標データパケットの特定のパーセンテージは、そのパーセンテージだけを検討した場合、必ずしも輻輳の信頼できる指示を提供できるわけではない。例えば、10Mbpsのネットワークデータリンク上では、遅延閾値内で目標データパケットの75%を受信するということは輻輳を示さない受信パーセンテージと見なすことができる。一方、100Mbpsのネットワークデータリンク上では、遅延閾値内で目標データパケットの75%を受信するということは輻輳を示す受信パーセンテージと見なすことができる。しかし、送信側コンピュータシステムおよび/または受信側コンピュータシステムが目標データパケットが送信される前にネットワークデータ経路の構成を認識する方法はない場合がある。例えば、送信側コンピュータシステムと受信側コンピュータシステムを(ボトルネックリンクを含む)1つまたは複数の中間のデータリンクによって分離することができる。
上述のように、ネットワークデータ経路を輻輳させる可能性が大幅に低減されたデータ速度で診断用パケットのトレインを送信することができる。したがって、ネットワークデータ経路が輻輳する可能性がない場合、ネットワークデータ経路に対して遅延したパケットの許容可能な閾値を示すために診断用パケットのトレインを使用することができる。さらに、送信側コンピュータシステムと受信側コンピュータシステムがネットワークデータ経路の輻輳に関する事前情報を有しない場合でさえ、遅延したパケットの許容可能な閾値を特定することができる。したがって、データストリームをネットワークデータ経路上に送信できるか否かを判定する前に、送信側コンピュータシステムと受信側コンピュータシステムがネットワークデータ経路構成を意識する必要はない。さらに、(ネットワークデータ経路の構成だけに基づいて判定するのとは対照的に)遅延した目標データパケットのパーセンテージを遅延したパケットの許容可能な閾値と比較することによって、より信頼性のある判定を行うことができる。
方法400は、比較の結果を送信する動作を含む(動作409)。動作409は、受信コンピュータシステムが、目標データパケットのキューに入っている遅延を診断用データパケットと比較した結果を送信コンピュータシステムに送信することを含むことができる。例えば、プロービングモジュール234は比較の結果をプロービングモジュール204に送信することができる。方法400は、比較の結果を受信する動作を含む(動作403)。動作403は、送信コンピュータシステムが、目標データパケットのキューに入っている遅延を診断用データパケットと比較した結果を受信コンピュータシステムから受信することを含むことができる。例えば、プロービングモジュール204は比較の結果をプロービングモジュール234から受信することができる。結果が適切である場合、アプリケーションモジュール202はアプリケーションのデータストリームを要求されたアプリケーションのデータ速度でアプリケーション232に送信することができる。
一部の実施形態では、診断用データパケットのトレインの送信後に、中間の診断用データパケットのトレインが送信コンピュータシステムから受信コンピュータシステムに送信される。中間の診断用データパケットのトレインは中間の診断用データ速度で送信される。中間の診断用データ速度は診断用データ速度よりは大きいが、要求されたアプリケーションのデータ速度よりは小さい。要求されたアプリケーションのデータ速度が診断用のデータ速度と比較して大きい場合、診断用データ速度と要求されたアプリケーションのデータ速度の間の一部の中間の診断用データ速度での潜在的な輻輳を決定すると有利な場合がある。例えば、ネットワークデータ経路に対する使用可能なボトルネック帯域幅値が70Mbpsである場合がある。したがって、診断用データ速度700Mbpsを選択することができる。要求されたアプリケーションのデータ転送速度が60Mbpsである場合、700Kbpsと60Mbpsの間の中間の診断用データ速度、例えば20または30Mbpsでの潜在的な輻輳を決定すると有利である。
受信した中間の診断用データパケットに対するキューに入っている遅延が受信した診断用パケットに対するキューに入っている遅延と比較される。遅延した中間の診断用データパケット数が遅延した診断用データパケット数の指定された遅延したパケット閾値内にない場合、中間の診断用データ速度でのデータストリームの配信がプローブされたネットワークデータ経路を輻輳状態に遷移させる可能性は増大する。したがって、より高い要求されたアプリケーションのデータ速度でのデータストリームも、プローブされたネットワークデータ経路を輻輳状態に遷移させる可能性がある。したがって、能動的プロービングは、要求されたアプリケーションのデータ転送速度で能動的にプローブせずに終了することができる。有益な結果として、プローブされたネットワークデータ経路を輻輳させる可能性が増大したデータストリームの送信がプローブされたネットワークデータ経路上に送信されることはない。
一方、遅延した中間の診断用データパケット数が遅延した診断用データパケット数の指定された遅延したパケット閾値内である場合、中間の診断用データ速度でのデータストリームの配信がプローブされたネットワークデータ経路を輻輳状態に遷移させる可能性は低減する。したがって、要求されたアプリケーションのデータ転送速度で能動的プロービングを続行することができる。
潜在的なネットワークデータ経路の輻輳に関する判断の信頼性を高めるために、ネットワークデータ経路を能動的にプローブするようデータパケットの数連のトレイン(診断用、中間の診断用、または目標)を送信することができる。最初に、ネットワークデータ経路を輻輳させる可能性を大幅に低減させたデータ転送速度に関連付けられたキューに入っている遅延を特定するために、診断用パケットの一連のトレインが送信される。その後、中間の診断用データ転送速度に関連付けられたキューに入っている遅延を特定するために、中間の診断用データパケットの一連のトレインが適宜送信される。次いで、要求されたアプリケーションのデータ転送速度に関連付けられたキューに入っている遅延を特定するために、目標データパケットの一連のトレインが送信される。
一連のデータパケットの各トレインをプロービングトレイン間隔で分離することができる。プローブされたネットワークデータ経路上でのキャプチャ効果を低減させるようプロービングトレイン間隔を選択することができる。例えば、1ミリ秒のプロービングデータパケット間隔で送信された10個のデータパケットのトレイン(すなわち、合計送信時間10ミリ秒)をプロービングトレイン間隔90ミリ秒で分離することができる。したがって、100ミリ秒の間隔は一連のデータパケットのトレイン内の連続したトレインに対する送信の開始を分離する。これによって、ネットワークデータ経路をプローブするために使用される負荷は、要求されたアプリケーションのデータ速度の10%まで効果的に低減される。
ネットワーク管理者またはユーザは、所望の信頼性と効果に従って一連のトレイン内のトレイン数を選択することができる。より大きな信頼性が希望される場合、一連のトレイン数を増加させることができ、それによってキューに入っている遅延を計算するためのさらなるサンプルは提供される。一方、より大きな効果が希望される場合、一連のトレイン数を低減させることができ、それによってネットワークデータ経路のプローブを完了するための時間は低減される。
一部の実施形態では、プロービングモジュール(例えば、プロービングモジュール204、224、または234)は、ネットワーク管理者またはユーザが本明細書に記載のパラメータに対して所望の値を選択かつ/または入力できるように、コンピュータシステムにユーザインターフェースを提供する。ユーザインターフェースはネットワーク管理者またはユーザが入力装置を用いて選択することができるパラメータ値のリストを提供する場合がある。同様に、ユーザインターフェースは、ネットワーク管理者またはユーザが入力装置を用いて値を入力することができるラベル付けされたフィールドを提供する場合がある。例えば、ネットワーク管理者またはユーザは、ユーザインターフェースを介して、送信側データリンクおよび/または受信側データリンクに対する所望の許容可能なローディング値と、データストリームに使用可能な帯域幅を限定するためにロードする所望の指定されたボトルネックとを選択または入力することができる。同様に、ネットワーク管理者またはユーザは、ネットワークデータ経路を能動的にプローブするためにデータパケットのトレインおよびデータパケットの複数系列のトレインを構成するパラメータを選択または入力することができる。
本発明は、その趣旨または本質的な特性から逸脱せずに他の具体的な形式で実施することができる。上記の実施形態はすべての点に関して説明のみを目的としたものであり限定的なものではないと見なされるべきである。したがって、本発明の範囲は、上記の説明ではなく特許請求の範囲によって示される。特許請求の範囲の意味の範囲内および均等の範囲内に含まれるすべての変更は本発明に包含されるものと見なされるべきである。
本発明の原理に適した動作環境を説明する図である。 ネットワーク上へのデータストリームの許容の制御に役立つネットワークアーキテクチャの一例を示す図である。 ネットワークデータ経路を輻輳させずに送信コンピュータシステムが受信コンピュータシステムにアプリケーションのデータストリームを配信することができると推定する方法の一例としての流れ図を示す図である。 ネットワークデータ経路を輻輳させずに送信コンピュータシステムが受信コンピュータシステムにアプリケーションのデータストリームを配信することができると推定する方法の一例としての流れ図を示す図である。 特定されたキューに入っている遅延に基づいてネットワークデータ経路の輻輳の可能性を推定するための方法の一例としての流れ図である。 キューに入っている遅延と10メガビット/秒のイーサネット(登録商標)リンクに提示された負荷とを対比した一例を示す特性図である。 データストリームがプローブされたネットワークデータ経路を輻輳させる可能性が低減されたことを示す、受信遅延閾値からの分散に対する受信したデータパケットのパーセンテージの一例を示す特性図である。 データストリームがプローブされたネットワークデータ経路を輻輳させる可能性が増大したことを示す、受信遅延閾値からの分散に対する受信したデータパケットのパーセンテージの一例を示す特性図である。
符号の説明
201 コンピュータシステム
211 コンピュータシステム
221 コンピュータシステム
231 コンピュータシステム
241 コンピュータシステム
251 コンピュータシステム
202 アプリケーションモジュール
212 アプリケーションモジュール
222 アプリケーションモジュール
232 アプリケーションモジュール
242 アプリケーションモジュール
203 ネットワークインターフェースモジュール
213 ネットワークインターフェースモジュール
223 ネットワークインターフェースモジュール
233 ネットワークインターフェースモジュール
243 ネットワークインターフェースモジュール
253 ネットワークインターフェースモジュール
204 プロービングモジュール
224 プロービングモジュール
234 プロービングモジュール
250 データハブ
255 データスイッチ
260 データスイッチ

Claims (36)

  1. 少なくとも1つの送信側データリンクと1つの受信側データリンクとを含むコンピュータネットワークデータ経路を介して受信コンピュータシステムに接続可能なネットワークである送信コンピュータシステムで、前記コンピュータネットワークデータ経路に含まれる前記データリンクをいずれも輻輳させずにアプリケーションのデータストリームを前記送信コンピュータシステムから前記受信コンピュータシステムに配信できるか否かを判定する方法において、
    要求されたアプリケーションのデータ転送速度を、前記送信コンピュータシステムから前記受信コンピュータシステムへの前記アプリケーションのデータストリームの配信を要求するアプリケーションから受信する動作であって、前記要求されたアプリケーションのデータ転送速度は前記アプリケーションのデータストリームの配信中に消費される帯域幅の推定値を表す動作と、
    前記送信側データリンク上の送信側のデータ負荷を受動的に検出する動作と、
    前記送信側のデータ負荷に基づいて、前記送信側データリンク上の使用可能な帯域幅容量が前記要求されたアプリケーションのデータ転送速度でデータのストリームをサポートするために十分であることを計算する動作と、
    前記受信コンピュータシステムまたは中間のコンピュータシステムに配信するために前記コンピュータネットワークデータ経路上に第1のパケット対のデータパケットを送信する動作と、
    前記第1のパケット対のデータパケットの送信後に、前記受信コンピュータシステムまたは前記中間のコンピュータシステムに配信するために前記コンピュータネットワークデータ上に対応する第2のパケット対のデータパケットを送信する動作であって、前記第2のパケット対のデータパケットは前記第1のパケット対のデータパケットと同じサイズである動作と、
    前記コンピュータネットワークデータ経路の前記ボトルネックデータリンク上の前記使用可能な帯域幅容量が前記要求されたアプリケーションのデータ転送速度でデータのストリームを受信するには十分であるという指示を受信する動作と、
    プロービングデータパケットのトレインを、前記要求されたアプリケーションのデータ転送速度で前記アプリケーションのデータストリームを送信することをシミュレーションするように構成するために送信パラメータを特定する動作と、
    前記コンピュータネットワークデータ経路上に前記アプリケーションのデータストリームを送信することをシミュレーションするために前記特定された送信パラメータに従ってプロービングデータパケットのトレインを一時的に送信する動作と、
    データプロービングパケットの前記トレインが前記コンピュータネットワークデータ経路の前記データリンクのいずれも輻輳状態に遷移させなかったという指示を受信する動作と
    を備えることを特徴とする方法。
  2. アプリケーションからアプリケーションのデータ転送速度を受信する動作であって、前記要求されたアプリケーションのデータ転送速度が前記アプリケーションのデータストリームの配信中に消費される前記帯域幅の推定値を表す前記動作は、アプリケーションのデータ転送速度が、ユニバーサルデータグラムプロトコルデータストリームの配信中に消費される前記帯域幅を推定する動作を含むことを特徴とする請求項1に記載の方法。
  3. 前記送信側データリンク上の前記使用可能な帯域幅容量が前記アプリケーションの要求されたデータ転送速度でデータのストリームをサポートするために十分であることを計算する前記動作は、ユーザが選択した許容可能なローディング値に基づいて前記送信側データリンク上での前記使用可能な帯域幅容量を計算する動作を含むことを特徴とする請求項1に記載の方法。
  4. プロービングデータパケットのトレインを構成するために送信パラメータを特定する前記動作は、ユーザインターフェースで入力されたユーザが選択した送信パラメータを特定する動作を含むことを特徴とする請求項1に記載の方法。
  5. 受信側のデータ負荷を受動的に検出するための命令を受信側コンピュータシステムに送信する動作をさらに備えることを特徴とする請求項1に記載の方法。
  6. 前記受信側データリンク上の前記使用可能な帯域幅容量は前記要求されたアプリケーションのデータ転送速度でデータのストリームをサポートするには十分であるという指示を受信する動作をさらに備えることを特徴とする請求項1に記載の方法。
  7. 前記コンピュータネットワークデータ経路上に前記要求されたアプリケーションのデータ転送速度で前記アプリケーションのデータストリームを送信する動作をさらに備えることを特徴とする請求項1に記載の方法。
  8. 前記送信側データリンクと前記受信側データリンクは同一データリンクであることを特徴とする請求項1に記載の方法。
  9. 少なくとも1つの送信側データリンクと1つの受信側データリンクとを含むコンピュータネットワークデータ経路を介して受信コンピュータシステムに接続可能なネットワークである送信コンピュータシステムで、前記コンピュータネットワークデータ経路に含まれる前記データリンクをいずれも輻輳させずにアプリケーションのデータストリームを前記送信コンピュータシステムから前記受信コンピュータシステムに配信できるか否かを判定する方法において、
    要求されたアプリケーションのデータ転送速度を、前記送信コンピュータシステムから前記受信コンピュータシステムへの前記アプリケーションのデータストリームの配信を要求するアプリケーションから受信する動作であって、前記要求されたアプリケーションのデータ転送速度は前記アプリケーションのデータストリームの配信中に消費される帯域幅の推定値を表す動作と、
    前記送信側データリンクが前記アプリケーションのデータストリームを受信するために十分な使用可能な帯域幅を有するか否かを判定するためにプロミスキャスモード測定を実行するステップと、
    前記コンピュータネットワークデータ経路の前記ボトルネックデータリンクが前記アプリケーションのデータストリームを受信するために十分な使用可能な帯域幅容量を有するか否かを判定するためにパケット対テストを開始するステップと、
    前記ボトルネックデータリンク上の前記使用可能な帯域幅容量が前記要求されたアプリケーションのデータ転送速度でデータのストリームを受信するには十分であるという指示を受信する動作と、
    前記アプリケーションのデータストリームが前記コンピュータネットワークデータ経路上に配信される場合に前記コンピュータネットワークデータ経路が輻輳状態に遷移するか否かを判定するために、プロービングデータパケットのトレインによって前記コンピュータネットワークデータ経路を能動的にプローブするステップと、
    プロービングデータパケットの前記トレインは前記コンピュータネットワークデータ経路の前記データリンクのいずれも輻輳状態に遷移させなかったという指示を受信する動作と
    を含むことを特徴とする方法。
  10. 少なくとも1つの受信側データリンクと1つの送信側データリンクとを含むコンピュータネットワークデータ経路を介して送信コンピュータシステムに接続可能なネットワークである受信コンピュータシステムで、前記コンピュータネットワークデータ経路に含まれる前記データリンクをいずれも輻輳させずにアプリケーションのデータストリームを前記送信コンピュータシステムから前記受信コンピュータシステムに配信できるか否かを判定する方法において、
    前記受信側データリンク上の受信側のデータ負荷を受動的に検出する動作と、
    前記受信側のデータ負荷に基づいて、前記受信側データリンク上の使用可能な帯域幅容量を計算する動作と、
    前記受信側データリンク上の前記使用可能な帯域幅容量を前記送信コンピュータシステムに示す動作と、
    第1のパケット対のデータパケットを第1の受信時刻に前記コンピュータネットワークデータ経路から受信する動作と、
    第2のパケット対のデータパケットを第2の受信時刻に前記コンピュータネットワークデータ経路から受信する動作と、
    少なくとも前記第1の受信時刻と前記第2の受信時刻との差に基づいて、前記コンピュータネットワークデータ経路の前記ボトルネックデータリンク上の前記使用可能な帯域幅容量を計算する動作と、
    前記ボトルネックデータリンク上の前記使用可能な帯域幅容量を前記送信コンピュータシステムに示す動作と、
    アプリケーションのデータ転送速度でアプリケーションのデータストリームをシミュレーションするためにパケットを前記コンピュータネットワークデータ経路上に送信した前記送信コンピュータシステムからプロービングデータパケットのトレイン内の前記プロービングデータパケットの少なくとも一部を受信する動作と、
    プロービングデータパケットの前記トレインが前記コンピュータネットワークデータ経路の前記データリンクのいずれも輻輳状態に遷移させなかったことを計算する動作と、
    プロービングデータパケットの前記トレインが前記コンピュータネットワークデータ経路の前記データリンクのいずれも輻輳状態に遷移させなかったことを前記送信コンピュータシステムに示す動作と
    を備えることを特徴とする方法。
  11. 前記受信側のデータ負荷に基づいて、前記受信側データリンク上の使用可能な帯域幅容量を計算する前記動作が、ユーザが選択した許容可能なローディング値に基づいて前記受信側データリンクの前記使用可能な帯域幅容量を計算する動作を含むことを特徴とする請求項10に記載の方法。
  12. 少なくとも前記第1の受信時刻と前記第2の受信時刻との差に基づいて、前記ボトルネックデータリンク上の前記使用可能な帯域幅容量を計算する前記動作は、パケット対アルゴリズムに従って送信されたパケット対のデータパケットのトレインに含まれる複数のパケット対のデータパケットの前記受信時刻に基づいて前記ボトルネック帯域幅を計算する動作を含むことを特徴とする請求項10に記載の方法。
  13. 送信側コンピュータシステムから受信側のデータ負荷を受動的に検出するための命令を受信する動作をさらに備えることを特徴とする請求項10に記載の方法。
  14. 前記コンピュータネットワークデータ経路から前記要求されたアプリケーションのデータ転送速度で前記アプリケーションのデータストリームを受信する動作をさらに備えることを特徴とする請求項10に記載の方法。
  15. 前記送信側データリンクと前記受信側データリンクは同一データリンクであることを特徴とする請求項10に記載の方法。
  16. 少なくとも1つの受信側データリンクと1つの送信側データリンクとを含むコンピュータネットワークデータ経路を介して送信コンピュータシステムに接続可能なネットワークである受信コンピュータシステムで、前記コンピュータネットワークデータ経路に含まれる前記データリンクをいずれも輻輳させずにアプリケーションのデータストリームを前記送信コンピュータシステムから前記受信コンピュータシステムに配信できるか否かを判定する方法において、
    前記受信側データリンク上での前記使用可能な帯域幅容量を決定するためにプロミスキャスモード測定に参加するステップと、
    前記受信側データリンク上の前記使用可能な帯域幅容量を前記送信コンピュータシステムに示す動作と、
    前記コンピュータネットワークデータ経路の前記ボトルネックデータリンク上の前記使用可能な帯域幅容量を決定するためにパケット対テストに参加するステップと、
    前記ボトルネックデータリンク上の前記使用可能な帯域幅容量を前記送信コンピュータシステムに示す動作と、
    前記アプリケーションのデータストリームが前記コンピュータネットワークデータ経路の前記データリンクのいずれも輻輳状態に遷移させないか否かを判定するために前記コンピュータネットワークデータ経路の能動的なプロービングに参加するステップと、
    プロービングデータパケットの前記トレインが前記コンピュータネットワークデータ経路の前記データリンクをいずれも輻輳状態に遷移させなかったことを前記送信コンピュータシステムに示す動作と
    を備えることを特徴とする方法。
  17. 少なくとも1つの送信側データリンクと1つの受信側データリンクを含むコンピュータネットワークデータ経路を介して受信コンピュータシステムに接続可能なネットワークである送信コンピュータシステムであって、前記コンピュータネットワークデータ経路が前記コンピュータネットワークデータ経路の前記ボトルネックリンクの前記帯域幅を表すボトルネック帯域幅を有する送信コンピュータシステムで、要求されたデータ転送速度で前記コンピュータネットワークデータ経路上にアプリケーションのデータストリームを配信することによって前記コンピュータネットワークデータ経路に含まれる前記データリンクのいずれかが輻輳状態に遷移するか否かを判定するために前記コンピュータネットワークデータ経路を能動的にプローブする方法において、
    診断用データパケットのトレインを前記ボトルネック帯域幅の指定された分数で前記コンピュータネットワークデータ経路上に送信する動作であって、前記ボトルネック帯域幅の前記指定された分数が他のデータストリームを劣化させる可能性が大幅に低減された診断用データ転送速度を表す動作と、
    前記アプリケーションのデータストリームの送信を他のデータストリームを劣化させる可能性を低減する方法でシミュレーションできるように前記コンピュータネットワークデータ経路上に前記要求されたデータ転送速度で目標データパケットのトレインを一時的に送信する動作と、
    目標データパケットの前記トレインが前記コンピュータネットワークデータ経路に含まれる前記データリンクのいずれかを輻輳させるか否かを示す比較の結果を受信する動作と
    を備えることを特徴とする方法。
  18. 診断用データパケットのトレインを前記ボトルネック帯域幅の指定された分数で前記コンピュータネットワークデータ経路上に送信する前記動作は、診断用データパケットの一連のトレインに含まれる診断用データパケットの複数のトレインの1つである診断用データパケットのトレインを送信する動作であって、診断用データパケットの前記複数のトレイン内の診断用データパケットの各トレインの送信はプロービングトレイン間隔によって分離される動作を含むことを特徴とする請求項17に記載の方法。
  19. 前記コンピュータネットワークデータ経路上に前記要求されたアプリケーションのデータ転送速度で目標データパケットのトレインを一時的に送信する前記動作は、目標データパケットの一連のトレインに含まれる目標データパケットの複数のトレインの1つである目標データパケットのトレインを送信する動作であって、目標データパケットの前記複数のトレイン内の目標データパケットの各トレインの送信がプロービングトレイン間隔で分離される動作を含むことを特徴とする請求項17に記載の方法。
  20. パケット対テストから前記ボトルネック帯域幅を計算する動作をさらに備えることを特徴とする請求項17に記載の方法。
  21. 前記ボトルネック帯域幅と前記要求されたアプリケーションのデータ転送速度とに基づいて、中間の診断用データパケットのトレインを中間の診断用データ速度で前記受信コンピュータシステムに送信すべきか否かを判定する動作であって、前記中間の診断用データ速度は前記診断用データ速度よりも大きく、前記要求されたアプリケーションのデータ転送速度よりも小さい動作をさらに備えることを特徴とする請求項17に記載の方法。
  22. 中間の診断用データパケットのトレインを前記中間の診断用データ速度で送信する動作をさらに備えることを特徴とする請求項21に記載の方法。
  23. データパケットの前記トレインを構成するためにユーザが選択した送信パラメータを前記送信コンピュータシステムのユーザインターフェースから受信する動作をさらに備えることを特徴とする請求項17に記載の方法。
  24. 少なくとも1つの送信側データリンクと1つの受信側データリンクとを含むコンピュータネットワークデータ経路を介して送信コンピュータシステムに接続可能なネットワークである受信コンピュータシステムであって、前記コンピュータネットワークデータ経路が前記コンピュータネットワークデータ経路の前記ボトルネックリンクの前記帯域幅を表すボトルネック帯域幅を有する受信コンピュータシステムで、要求されたデータ転送速度で前記コンピュータネットワークデータ経路上にアプリケーションのデータストリームを配信することによって前記コンピュータネットワークデータ経路に含まれる前記データリンクのいずれかが輻輳状態に遷移するか否かを判定するために前記コンピュータネットワークデータ経路を能動的にプローブする方法において、
    前記送信コンピュータシステムから前記受信コンピュータシステムに送信された診断用データパケットのトレインに含まれる前記診断用データパケットの少なくとも一部を受信する動作であって、他のデータストリームを劣化させる可能性を大幅に低減するために前記診断用パケットは前記ボトルネック帯域幅の分数で受信される動作と、
    遅延した診断用データパケット数を前記受信した診断用パケットから特定する動作と、
    他のデータストリームを劣化させる可能性を低減する方法で前記アプリケーションのデータストリームの送信をシミュレーションするために、前記送信コンピュータシステムから前記受信コンピュータシステムに一時的に送信された目標データパケットのトレインに含まれる前記目標パケットの少なくとも一部を受信する動作と、
    遅延した目標データパケット数を前記受信した目標データパケットから特定する動作と、
    目標データパケットの前記トレインが前記コンピュータネットワークデータ経路の前記データリンクのいずれかを輻輳させたか否かを判定するために、遅延した目標データパケット数を遅延した診断用データパケット数と比較する動作と
    を備えることを特徴とする方法。
  25. 前記送信コンピュータシステムから前記受信コンピュータシステムに送信された診断用データパケットのトレインに含まれる前記診断用データパケットの少なくとも一部を受信する前記動作は、診断用データパケットの一連のトレインに含まれる診断用データパケットの複数のトレインの1つである診断用データパケットのトレインから診断用データパケットを受信する動作を含むことを特徴とする請求項24に記載の方法。
  26. 遅延した診断用データパケット数を前記受信した診断用データパケットから特定する前記動作は、受信遅延閾値内で受信されなかった診断用データパケットを特定する動作を含むことを特徴とする請求項24に記載の方法。
  27. 前記送信コンピュータシステムから前記受信コンピュータシステムに一時的に送信された目標パケットのトレインに含まれる前記目標データパケットの少なくとも一部を受信する動作は、目標データパケットの一連のトレインに含まれる目標データパケットの複数のトレインの1つである目標データパケットのトレインから目標データパケットを受信する動作を含むことを特徴とする請求項24に記載の方法。
  28. 遅延した目標データパケット数を前記受信した目標データパケットから特定する前記動作は、受信遅延閾値内で受信されなかった目標データパケットを特定する動作を含むことを特徴とする請求項24に記載の方法。
  29. 遅延した目標データパケット数を遅延した診断用データパケット数と比較する前記動作は、受信遅延内に受信した目標データパケットのパーセンテージを前記受信遅延で受信した診断用データパケット数と比較する動作を含むことを特徴とする請求項24に記載の方法。
  30. 前記送信コンピュータシステムから中間の診断用データ転送速度で前記受信コンピュータに送信された中間の診断用データパケットのトレインに含まれる前記中間の診断用データパケットの少なくとも一部を受信する動作であって、前記中間の診断用データ転送速度はボトルネック帯域幅の前記分数よりも大きく、前記アプリケーションのデータストリームのアプリケーションのデータ転送速度よりも小さい動作をさらに含むことを特徴とする請求項24に記載の方法。
  31. 少なくとも1つの送信側データリンクと1つの受信側データリンクとを含むコンピュータネットワークデータ経路を介して受信コンピュータシステムに接続可能なネットワークである送信コンピュータシステムで使用し、前記コンピュータネットワークデータ経路に含まれる前記データリンクのいずれかを輻輳させずにアプリケーションのデータストリームを前記送信コンピュータシステムから前記受信コンピュータシステムに配信することができるか否かを判定する方法を実施するためのコンピュータプログラム製品であって、
    要求されたアプリケーションのデータ転送速度を、前記送信コンピュータシステムから前記受信コンピュータシステムへの前記アプリケーションのデータストリームの配信を要求するアプリケーションから受信するためのコンピュータ実行可能命令であって、前記要求されたアプリケーションのデータ転送速度は前記アプリケーションのデータストリームの配信中に消費される前記帯域幅の推定値を表すコンピュータ実行可能命令と、
    前記送信側データリンク上の送信側のデータ負荷を受動的に検出するためのコンピュータ実行可能命令と、
    前記送信側のデータ負荷に基づいて、前記送信側データリンク上の使用可能な帯域幅容量が前記要求されたアプリケーションのデータ転送速度でデータのストリームをサポートするために十分であることを計算するためのコンピュータ実行可能命令と、
    前記受信コンピュータシステムまたは中間のコンピュータシステムに配信するために前記コンピュータネットワークデータ経路上に第1のパケット対のデータパケットを送信するためのコンピュータ実行可能命令と、
    前記第1のパケット対のデータパケットの送信後に、前記受信コンピュータシステムまたは前記中間のコンピュータシステムに配信するために前記コンピュータネットワークデータ上に対応する第2のパケット対のデータパケットを送信するためのコンピュータ実行可能命令であって、前記第2のパケット対のデータパケットは前記第1のパケット対のデータパケットと同じサイズであるコンピュータ実行可能命令と、
    前記コンピュータネットワークデータ経路の前記ボトルネックデータリンク上の前記使用可能な帯域幅容量が前記要求されたアプリケーションのデータ転送速度でデータのストリームを受信するには十分であるという指示を受信するためのコンピュータ実行可能命令と、
    プロービングデータパケットのトレインを、前記要求されたアプリケーションのデータ転送速度で前記アプリケーションのデータストリームを送信することをシミュレーションするように構成するために送信パラメータを特定するためのコンピュータ実行可能命令と、
    前記コンピュータネットワークデータ経路上に前記アプリケーションのデータストリームを送信することをシミュレーションするために前記特定された送信パラメータに従ってプロービングデータパケットのトレインを一時的に送信するためのコンピュータ実行可能命令と、
    データプロービングパケットの前記トレインが前記コンピュータネットワークデータ経路の前記データリンクのいずれも輻輳状態に遷移させなかったという指示を受信するためのコンピュータ実行可能命令と
    を記憶している1つまたは複数のコンピュータ可読媒体を備えることを特徴とするコンピュータプログラム製品。
  32. 前記1つまたは複数のコンピュータ可読媒体が物理記憶媒体を含むことを特徴とする請求項31に記載のコンピュータプログラム製品。
  33. 少なくとも1つの受信側データリンクと1つの送信側データリンクとを含むコンピュータネットワークデータ経路を介して送信コンピュータシステムに接続可能なネットワークである受信コンピュータシステムで使用し、前記コンピュータネットワークデータ経路に含まれる前記データリンクをいずれも輻輳させずにアプリケーションのデータストリームを前記送信コンピュータシステムから前記受信コンピュータシステムに配信できるか否かを判定する方法を実施するためのコンピュータプログラム製品であって、
    前記受信側データリンク上の受信側のデータ負荷を受動的に検出するためのコンピュータ実行可能命令と、
    前記受信側のデータ負荷に基づいて、前記受信側データリンク上の使用可能な帯域幅容量を計算するためのコンピュータ実行可能命令と、
    前記受信側データリンク上の前記使用可能な帯域幅容量を前記送信コンピュータシステムに示すためのコンピュータ実行可能命令と、
    第1のパケット対のデータパケットを第1の受信時刻に前記コンピュータネットワークデータ経路から受信するためのコンピュータ実行可能命令と、
    第2のパケット対のデータパケットを第2の受信時刻に前記コンピュータネットワークデータ経路から受信するためのコンピュータ実行可能命令と、
    少なくとも前記第1の受信時刻と前記第2の受信時刻との差に基づいて、前記コンピュータネットワークデータ経路の前記ボトルネックデータリンク上の前記使用可能な帯域幅容量を計算するためのコンピュータ実行可能命令と、
    前記ボトルネックデータリンク上の前記使用可能な帯域幅容量を前記送信コンピュータシステムに示すためのコンピュータ実行可能命令と、
    アプリケーションのデータ転送速度でアプリケーションのデータストリームをシミュレーションするためにパケットを前記コンピュータネットワークデータ経路上に送信した前記送信コンピュータシステムからプロービングデータパケットのトレイン内の前記プロービングデータパケットの少なくとも一部を受信するためのコンピュータ実行可能命令と、
    プロービングデータパケットの前記トレインが前記コンピュータネットワークデータ経路の前記データリンクのいずれも輻輳状態に遷移させなかったことを計算するためのコンピュータ実行可能命令と、
    プロービングデータパケットの前記トレインが前記コンピュータネットワークデータ経路の前記データリンクのいずれも輻輳状態に遷移させなかったことを前記送信コンピュータシステムに示すためのコンピュータ実行可能命令と
    を記憶している1つまたは複数のコンピュータ可読媒体を備えることを特徴とするコンピュータプログラム製品。
  34. 前記1つまたは複数のコンピュータ可読媒体は物理記憶媒体を含むことを特徴とする請求項33に記載のコンピュータプログラム製品。
  35. アプリケーションのデータストリームを前記コンピュータネットワークデータ経路上に配信することによって前記ネットワークデータ経路が輻輳状態に遷移するか否かを判定するためにコンピュータネットワークデータ経路を能動的にプローブするよう構成されたコンピュータシステムであって、
    1つまたは複数の処理装置と、
    診断用データパケットのトレインを前記ボトルネック帯域幅の指定された分数で前記コンピュータネットワークデータ経路上に送信し、前記ボトルネック帯域幅の前記指定された分数は他のデータストリームを劣化させる可能性が大幅に低減された診断用データ転送速度を表し、
    前記アプリケーションのデータストリームの送信を他のデータストリームを劣化させる可能性が低減される方法でシミュレーションできるように前記コンピュータネットワークデータ経路上に前記要求されたデータ転送速度で目標データパケットのトレインを一時的に送信し、
    目標データパケットの前記トレインが前記コンピュータネットワークデータ経路に含まれる前記データリンクのいずれかを輻輳させるか否かを示す比較の結果を受信するように構成された送信側プロービングモジュールを記憶している1つまたは複数のコンピュータ可読媒体と
    を備えることを特徴とするコンピュータシステム。
  36. アプリケーションのデータストリームを前記コンピュータネットワークデータ経路上に配信することによって前記ネットワークデータ経路が輻輳状態に遷移するか否かを判定するためにコンピュータネットワークデータ経路を能動的にプローブするよう構成されたコンピュータシステムであって、
    1つまたは複数の処理装置と、
    前記送信コンピュータシステムから前記受信コンピュータシステムに送信された診断用データパケットのトレインに含まれる前記診断用データパケットの少なくとも一部を受信し、他のデータストリームを劣化させる可能性を大幅に低減するために前記診断用パケットが前記ボトルネック帯域幅の分数で受信され、
    遅延した診断用データパケット数を前記受信した診断用パケットから特定し、
    前記アプリケーションのデータストリームの送信を他のデータストリームを劣化させる可能性を低減する方法でシミュレーションするために、前記送信コンピュータシステムから前記受信コンピュータに一時的に送信された目標データパケットのトレインに含まれる前記目標パケットの少なくとも一部を受信し、
    遅延した目標データパケット数を前記受信した目標データパケットから特定し、
    目標データパケットの前記トレインが前記コンピュータネットワークデータ経路の前記データリンクのいずれかを輻輳させたか否かを判定するために、遅延した目標データパケット数を遅延した診断用データパケット数と比較するように構成された受信側プロービングモジュールを記憶している1つまたは複数のコンピュータ可読媒体と
    を備えることを特徴とするコンピュータシステム。
JP2004059839A 2003-03-03 2004-03-03 終端間測定に基づくネットワークへのデータストリームの許容の制御 Expired - Fee Related JP4491257B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/378,532 US7239611B2 (en) 2003-03-03 2003-03-03 Controlling admission of data streams onto a network based on end-to-end measurements

Publications (2)

Publication Number Publication Date
JP2004266840A true JP2004266840A (ja) 2004-09-24
JP4491257B2 JP4491257B2 (ja) 2010-06-30

Family

ID=32824757

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004059839A Expired - Fee Related JP4491257B2 (ja) 2003-03-03 2004-03-03 終端間測定に基づくネットワークへのデータストリームの許容の制御

Country Status (8)

Country Link
US (1) US7239611B2 (ja)
EP (1) EP1455490B1 (ja)
JP (1) JP4491257B2 (ja)
KR (1) KR101137164B1 (ja)
CN (2) CN101917304B (ja)
AT (1) ATE450956T1 (ja)
DE (1) DE602004024348D1 (ja)
HK (1) HK1069494A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007243790A (ja) * 2006-03-10 2007-09-20 Fujitsu Ltd ネットワーク管理方法、プログラム及びシステム
JP2010279036A (ja) * 2009-05-29 2010-12-09 Yokogawa Electric Corp 帯域幅を調節する方法およびシステム
WO2013111236A1 (ja) * 2012-01-25 2013-08-01 日本電気株式会社 可用帯域探索範囲制御方法および可用帯域探索範囲制御システム

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7792982B2 (en) * 2003-01-07 2010-09-07 Microsoft Corporation System and method for distributing streaming content through cooperative networking
US6944144B2 (en) * 2003-02-28 2005-09-13 Microsoft Corporation Vertical roaming in wireless networks through improved quality of service measures
US6982949B2 (en) * 2003-02-28 2006-01-03 Microsoft Corporation Vertical roaming in wireless networks through improved wireless network cell boundary detection
US7336617B1 (en) * 2003-08-01 2008-02-26 Verizon Laboratories Inc. Bit-field-encoded resource record for determining a transmission path in a communications network
US7366097B2 (en) * 2003-10-20 2008-04-29 Microsoft Corporation Increasing the accuracy and efficiency of admission control for data streams
US7652995B2 (en) * 2003-12-19 2010-01-26 International Business Machines Corporation Autonomic reassociation of clients in a wireless local area network
AU2005209770A1 (en) * 2004-02-06 2005-08-18 Apparent Networks, Inc. Method and apparatus for characterizing an end-to-end path of a packet-based network
US8619556B2 (en) * 2004-03-01 2013-12-31 Bae Systems Plc Call control
US7426181B1 (en) * 2004-03-26 2008-09-16 Packeteer, Inc. Slow-start adaptive mechanisms to improve efficiency of bandwidth allocation
US8355400B2 (en) * 2004-08-06 2013-01-15 Lantiq Deutschland Gmbh System and method for transmitting information over a plurality of communication links
US7730519B2 (en) * 2004-09-17 2010-06-01 At&T Intellectual Property I, L.P. Detection of encrypted packet streams using feedback probing
US7760638B2 (en) * 2004-11-29 2010-07-20 Nec Corporation High-throughput communication system, communication terminal, session relay, and communication protocol
CN100409647C (zh) * 2005-01-18 2008-08-06 广州泰思管理科技有限公司 数据流协议转换和传输装置
US7545749B2 (en) * 2005-02-15 2009-06-09 Microsoft Corporation High-accuracy packet pair for network bottleneck bandwidth measurement
CN100446479C (zh) * 2005-03-10 2008-12-24 同济大学 一种基于网络紧链路定位的端到端可用带宽测量的方法
US7675856B2 (en) * 2005-03-24 2010-03-09 Microsoft Corporation Bandwidth estimation in broadband access networks
US7613138B2 (en) * 2005-05-23 2009-11-03 Microsoft Corporation Separating control and data in wireless networks
US20070058705A1 (en) * 2005-09-13 2007-03-15 Sbc Knowledge Ventures, L.P. System and method to transmit a data stream
JP4606338B2 (ja) * 2006-01-30 2011-01-05 富士通株式会社 検出方法及び検出装置
US7747734B2 (en) * 2006-03-29 2010-06-29 International Business Machines Corporation Apparatus, system, and method for error assessment over a communication link
KR101140972B1 (ko) 2006-09-28 2012-05-03 콸콤 인코포레이티드 통신 링크 품질을 결정하기 위한 방법 및 장치
TW200833016A (en) 2006-09-28 2008-08-01 Qualcomm Inc Methods and apparatus for determining quality of service in a communication system
US8867377B2 (en) * 2007-10-11 2014-10-21 Cisco Technology, Inc. Dynamic selection between active and passive probing in computer network
US8149719B2 (en) * 2008-02-13 2012-04-03 Embarq Holdings Company, Llc System and method for marking live test packets
CN101242618B (zh) * 2008-03-04 2011-12-07 中兴通讯股份有限公司 一种通讯通道上通讯状态的实时检测方法
US20100265833A1 (en) * 2009-04-16 2010-10-21 Ou Frank Y Network bandwidth determination
US8199655B2 (en) * 2009-08-21 2012-06-12 Verizon Patent And Licensing Inc. Optimized layer-2 network switching systems and methods
US8661118B2 (en) 2010-03-08 2014-02-25 Microsoft Corporation Detection of end-to-end transport quality
JP5515978B2 (ja) * 2010-03-31 2014-06-11 ソニー株式会社 通信装置、通信方法およびプログラム
CN102104426B (zh) * 2010-12-24 2013-11-20 安凯 一种漫射激光通信码速率的自适应确定方法
US8773993B2 (en) 2011-01-31 2014-07-08 Apple Inc. Adaptive bandwidth estimation
WO2014011163A1 (en) 2012-07-11 2014-01-16 Empire Technology Development Llc Network congestion reduction
US20140056143A1 (en) * 2012-08-24 2014-02-27 Ascom Network Testing Ab Systems and Methods for Measuring Available Bandwidth in Mobile Telecommunications Networks
US9215181B2 (en) 2012-11-06 2015-12-15 Comcast Cable Communications, Llc Systems and methods for managing a network
US10142236B2 (en) 2013-03-14 2018-11-27 Comcast Cable Communications, Llc Systems and methods for managing a packet network
US10122639B2 (en) * 2013-10-30 2018-11-06 Comcast Cable Communications, Llc Systems and methods for managing a network
KR101488133B1 (ko) * 2014-02-19 2015-02-04 포항공과대학교 산학협력단 단말을 위한 에너지 효율적인 가용대역폭 측정 방법 및 장치
EP3092748B1 (de) * 2014-04-23 2020-06-24 Siemens Aktiengesellschaft Verfahren und system zur diagnose von übertragungs-störungen in einem netzwerk gemäss opc ua standard
WO2016010192A1 (ko) * 2014-07-17 2016-01-21 주식회사 케이티 엑세스 네트워크에서 인터넷을 제공하기 위한 네트워크 관리 장치 및 이를 이용한 네트워크 관리 방법
WO2016010193A1 (ko) * 2014-07-17 2016-01-21 주식회사 케이티 엑세스 네트워크에서 인터넷을 제공하기 위한 네트워크 관리 장치 및 이를 이용한 네트워크 관리 방법
US9729448B2 (en) * 2015-01-22 2017-08-08 International Business Machines Corporation Congestion detection using a differentiated packet pair
US9747343B2 (en) * 2015-02-19 2017-08-29 International Business Machines Corporation Algorithmic changing in a streaming environment
KR101593504B1 (ko) * 2015-07-29 2016-02-19 한국해양과학기술원 수중 장거리 네트워크를 위한 데이터링크 계층 수신 프로토콜
US20170324642A1 (en) * 2016-05-04 2017-11-09 Microsoft Technology Licensing, Llc Initial and periodic slowdowns for background connections
CN108880754B (zh) * 2018-06-25 2020-04-10 西安电子科技大学 基于分级冗余机制的低时延信令、数据无线传输方法
US10873520B2 (en) 2018-07-02 2020-12-22 Hewlett Packard Enterprise Development Lp Packet batching identification

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10336244A (ja) * 1997-05-30 1998-12-18 Nippon Telegr & Teleph Corp <Ntt> アプリケーションによるip品質保証サービスのパラメータ決定方法及びip品質保証サービスのパラメータ決定プログラムを記録した記録媒体
JP2000224172A (ja) * 1999-02-04 2000-08-11 Fujitsu Ltd ネットワーク通信性能測定方法及び装置並びにネットワーク通信性能測定プログラムを格納したコンピュータ読取り可能な記録媒体
JP2004048565A (ja) * 2002-07-15 2004-02-12 Nippon Telegr & Teleph Corp <Ntt> ネットワーク品質推定制御方式

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4464176A (en) * 1982-06-04 1984-08-07 Mallinckrodt, Inc. Blood vessel catheter for medicine delivery and method of manufacture
DE69431557T2 (de) * 1993-09-20 2003-02-20 Codex Corp Dynamische ratenanpassung zur ueberlastregelung in kommunikationsnetzwerken
US5627970A (en) 1994-08-08 1997-05-06 Lucent Technologies Inc. Methods and apparatus for achieving and maintaining optimum transmission rates and preventing data loss in a processing system nework
JP2776301B2 (ja) * 1994-08-30 1998-07-16 日本電気株式会社 回線予約装置および方法、回線予約受付装置および方法
KR100278573B1 (ko) * 1995-12-13 2001-01-15 포만 제프리 엘 접속 승인 제어 방법 및 이를 수행하는 장치
US5864678A (en) * 1996-05-08 1999-01-26 Apple Computer, Inc. System for detecting and reporting data flow imbalance between computers using grab rate outflow rate arrival rate and play rate
US5936940A (en) 1996-08-22 1999-08-10 International Business Machines Corporation Adaptive rate-based congestion control in packet networks
US6075769A (en) * 1997-11-26 2000-06-13 Cisco Systems, Inc. Method and apparatus for network flow control
CA2240596A1 (en) 1997-11-28 1999-05-28 Newbridge Networks Corporation Controlling atm layer transfer characteristics based on physical layer dynamic rate adaptation
JPH11261702A (ja) * 1998-03-06 1999-09-24 Fujitsu Ltd 負荷予測によるシステム最適化制御装置
US6222824B1 (en) * 1998-04-24 2001-04-24 International Business Machines Corporation Statistical call admission control
CA2316866A1 (en) * 1998-11-02 2000-05-25 Koninklijke Philips Electronics N.V. Communication system using a compressed connection
US6917590B1 (en) * 1998-11-13 2005-07-12 Sprint Communications Company L.P. Method and system for connection admission control
US6498782B1 (en) * 1999-02-03 2002-12-24 International Business Machines Corporation Communications methods and gigabit ethernet communications adapter providing quality of service and receiver connection speed differentiation
WO2000056021A1 (en) 1999-03-15 2000-09-21 Vocaltec Communications Ltd. Flow control method and apparatus
WO2001020918A2 (en) 1999-09-17 2001-03-22 Mercury Interactive Corporation Server and network performance monitoring
US6430160B1 (en) * 2000-02-29 2002-08-06 Verizon Laboratories Inc. Estimating data delays from poisson probe delays
US20020034162A1 (en) * 2000-06-30 2002-03-21 Brinkerhoff Kenneth W. Technique for implementing fractional interval times for fine granularity bandwidth allocation
WO2002019654A2 (en) 2000-08-31 2002-03-07 The Regents Of The University Of California Method for improving tcp performance over wireless links
US7130268B2 (en) * 2000-10-17 2006-10-31 Saverio Mascolo End-to-end bandwidth estimation for congestion control in packet switching networks
US6895235B2 (en) 2001-06-05 2005-05-17 Telcordia Technologies, Inc. Adaptive load and coverage management system and method
US7012893B2 (en) 2001-06-12 2006-03-14 Smartpackets, Inc. Adaptive control of data packet size in networks
US7151749B2 (en) 2001-06-14 2006-12-19 Microsoft Corporation Method and System for providing adaptive bandwidth control for real-time communication
US7274661B2 (en) * 2001-09-17 2007-09-25 Altera Corporation Flow control method for quality streaming of audio/video/media over packet networks
US7088677B1 (en) * 2002-03-01 2006-08-08 Bellsouth Intellectual Property Corporation System and method for delay-based congestion detection and connection admission control

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10336244A (ja) * 1997-05-30 1998-12-18 Nippon Telegr & Teleph Corp <Ntt> アプリケーションによるip品質保証サービスのパラメータ決定方法及びip品質保証サービスのパラメータ決定プログラムを記録した記録媒体
JP2000224172A (ja) * 1999-02-04 2000-08-11 Fujitsu Ltd ネットワーク通信性能測定方法及び装置並びにネットワーク通信性能測定プログラムを格納したコンピュータ読取り可能な記録媒体
JP2004048565A (ja) * 2002-07-15 2004-02-12 Nippon Telegr & Teleph Corp <Ntt> ネットワーク品質推定制御方式

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007243790A (ja) * 2006-03-10 2007-09-20 Fujitsu Ltd ネットワーク管理方法、プログラム及びシステム
JP2010279036A (ja) * 2009-05-29 2010-12-09 Yokogawa Electric Corp 帯域幅を調節する方法およびシステム
WO2013111236A1 (ja) * 2012-01-25 2013-08-01 日本電気株式会社 可用帯域探索範囲制御方法および可用帯域探索範囲制御システム
JPWO2013111236A1 (ja) * 2012-01-25 2015-05-11 日本電気株式会社 可用帯域探索範囲制御方法および可用帯域探索範囲制御システム
US9521054B2 (en) 2012-01-25 2016-12-13 Nec Corporation Available bandwidth search range control method and available bandwidth search range control system

Also Published As

Publication number Publication date
KR20040078559A (ko) 2004-09-10
JP4491257B2 (ja) 2010-06-30
ATE450956T1 (de) 2009-12-15
KR101137164B1 (ko) 2012-04-23
US20040174815A1 (en) 2004-09-09
CN101917304B (zh) 2012-03-21
DE602004024348D1 (de) 2010-01-14
EP1455490B1 (en) 2009-12-02
HK1069494A1 (en) 2005-05-20
CN1543157B (zh) 2010-11-03
EP1455490A3 (en) 2004-12-08
CN1543157A (zh) 2004-11-03
EP1455490A2 (en) 2004-09-08
US7239611B2 (en) 2007-07-03
CN101917304A (zh) 2010-12-15

Similar Documents

Publication Publication Date Title
JP4491257B2 (ja) 終端間測定に基づくネットワークへのデータストリームの許容の制御
WO2021223452A1 (zh) 数据传输方法及装置
KR101046105B1 (ko) 컴퓨터 프로그램 제조품, 리소스 요구 조정 방법 및 엔드 시스템
US8441943B2 (en) Information processing apparatus and method, program, and recording medium
US8171123B2 (en) Network bandwidth detection and distribution
CN106301684B (zh) 一种媒体数据传输方法及装置
EP2760182B1 (en) Data communication apparatus, data transmission method, and computer system
US20070226375A1 (en) Plug-in architecture for a network stack in an operating system
WO2018121742A1 (zh) 一种流数据的传输方法和装置
JP2003338841A (ja) プロトコル、情報処理システムおよび方法、情報処理装置および方法、記録媒体、並びにプログラム
CN110830460B (zh) 一种连接建立方法、装置、电子设备及存储介质
US20070226347A1 (en) Method and apparatus for dynamically changing the TCP behavior of a network connection
US7366097B2 (en) Increasing the accuracy and efficiency of admission control for data streams
CN113438180B (zh) Udp数据包的传输控制方法、装置、设备及可读存储介质
US20100086021A1 (en) Information transmission apparatus, method of controlling the same, and storage medium
US9762472B2 (en) Method for evaluating an available path bitrate based on an acknowledgement path selection
US20150382232A1 (en) Controlling apparatus for communication-quality measuring, communication apparatus, and program
JP4798495B2 (ja) 映像配信品質測定システム、装置および方法
CN117676695A (zh) Tcp传输方法、装置和系统
Ламри et al. Developing Al-ARQ module for automatic measurement of one-way data transmission delay
JP2010124127A (ja) ネットワーク診断装置、ネットワーク診断方法およびプログラム
US11824792B2 (en) Method and system for dynamic quota-based congestion management
JP2016154307A (ja) データ転送プログラム、データ転送装置、及びデータ転送システム
Sullivan et al. A protocol for simultaneous real time playback and full quality storage of streaming media
CN117411833A (zh) 拥塞控制方法、设备及系统

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070209

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090901

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20091008

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20091130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091203

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100303

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100326

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100405

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130409

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees