JP2002094567A - Tcpネットワーク環境におけるバンド幅の高速動的測定 - Google Patents
Tcpネットワーク環境におけるバンド幅の高速動的測定Info
- Publication number
- JP2002094567A JP2002094567A JP2001242612A JP2001242612A JP2002094567A JP 2002094567 A JP2002094567 A JP 2002094567A JP 2001242612 A JP2001242612 A JP 2001242612A JP 2001242612 A JP2001242612 A JP 2001242612A JP 2002094567 A JP2002094567 A JP 2002094567A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- network
- packets
- bandwidth
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/28—Flow control; Congestion control in relation to timing considerations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
- H04L43/0888—Throughput
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/19—Flow control; Congestion control at layers above the network layer
- H04L47/193—Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/26—Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/163—In-band adaptation of TCP data exchange; In-band control procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/087—Jitter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/16—Threshold monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
Abstract
CPネットワーク環境におけるバンド幅の高速動的測定
方法を提供する。 【解決手段】 バンド幅の高速動的測定では、これらの
アルゴリズムで課されている遅延を解消するための対応
策が取り入れられている。その対応策とは、Nagle
アルゴリズムの適用を禁止することと、パケットペア
の直後に「プッシュ」パケットを送信することによって
パケットのバッファリングを最小限にすること、および
ダミーパケットでプライミング(初期化)することによ
ってSlow Start アルゴリズムを回避するこ
とである。
Description
ク環境上のエンティティ間のコネクションのための最大
バンド幅を動的に検出することに関する。具体的には、
本発明は、あるパケット集合の伝送を効果的に遅延させ
る可能性のある、ネットワーク環境のフロー制御機能に
対する対応策に関する。
net) の成熟に伴って、インターネット上で利用可
能なコンテキストの特性が変化している。現在では、サ
ウンドとビデオコンテンツが従来のテキストコンテンツ
に組み込まれている。しかし、インターネット上のこの
新コンテンツでは、数年前までは普通に利用可能であっ
たものよりも、コネクション速度(つまり、バンド幅)
の高速化が要求されている。
例を示す。この構成には、サーバ(メディアサーバ20
など)が含まれ、このサーバはインターネット30に結
合されている。サーバには、1つまたは2つ以上の物理
的サーバコンピュータ22が置かれているのが代表的で
あり、サーバコンピュータは1つまたは2つ以上の物理
的ストレージデバイスおよび/またはデータベース24
を装備している。インターネット伝送の反対側には、ク
ライント90、92が存在し、これは多数の利用可能な
インターネットサービスプロバイダ (Interne
t Service Provider (ISP))
80の1つを通して接続されている。ここでは、サー
バはデータを送信するネットワークエンティティであ
り、クライアントはデータを受信するネットワークエン
ティティになっている。
ターネットと明記されているが、理解されているよう
に、このクラウドは、図示のものだけを含んでいるイン
ターネット部分を表している。このクラウドの内側に
は、ルータ、伝送回線、コネクション、および他の通信
デバイスが置かれていて、クライアントとサーバの間で
データがほとんど正常に伝送されるようにしている。例
示のインターネットクラウド30の内側には、ルータ3
2〜44、2つのサテライトディッシュ (satel
lite dish) 46、50およびサテライト4
8が存在している。これらのデバイス間のリンクは取り
得る経路 (path) を表し、データパケットは、
その経路を通ってサーバとクライアント間を伝送される
ようになっている。
など)上の通信デバイスは、ネットワークを利用した2
エンティティ間のコミュニケーションを容易にするデバ
イスになっており、そこには、2つのエンティティが含
まれている。そのようなエンティティの例としては、サ
ーバ20とクライント90がある。
Interconnection (OSI)) モ
デルは、世界的規模のコミュニケーションのためのIS
O標準であり、そこでは、プロトコルを7層で実装する
ためのネットワーキングフレームワークが定義されてい
る。コントロールは、あるステーション(局)に置かれ
たアプリケーション層から始まって、ある層から次の層
へ渡され、最下層に移った後、チャネルを通って次のス
テーションに渡され、階層の上方に向かって戻るように
なっている。当業者ならば、このOSIモデルは周知で
ある。
2または3つのOSI層が1つに統合されていることが
あっても、すべての通信システムに存在している。これ
らの層は「レベル」とも呼ばれている。
れている。そのようなハードウェアとしては、ネットワ
ークカード、モデム、またはある種の他の通信デバイス
がある。代表例として、トランスポート層は、オペレー
ティングシステム (operating syste
m OS) のカーネルで実現されている。
あり、そこにはアプリケーションが置かれている。ここ
には、Webブラウザやメディアプレイヤ、eメールプ
ログラムのように、コンピュータの外側に置かれたエン
ティティと通信するアプリケーションが置かれている。
アプリケーション層では、インターネットのようなネッ
トワーク上のエンティティ間のコミュニケーション詳細
に対する制御権は、最小になっている。
に伝送できるデータ量のことである。例えば、図1に示
すメディアサーバ20とメディアクライアント90間の
バンド幅は、ある時間単位(例えば、1秒)内に両者間
で伝送できるデータ量(例えば、1000ビット)で計
算される。もっと具体的に説明すると、データは、概算
で秒当たり56,000ビットのレートでデバイス間を
伝送することができる。このレートは、毎秒56キロビ
ット (Kbps) で表すこともできる。
送は複数のリンクを通り抜けてから、そのデスティネー
ション(目的地)に到達する。各リンクは独自のバンド
幅をもっている。チェーン(鎖)はその最も弱いリンク
と同じ強度しかないのと同じように、サーバ20とクラ
イント20間の最大バンド幅は、最低速バンド幅をもつ
リンクで両者間を結んでいることになる。代表的には、
これはクライアント90とそのISP 80間のリンク
になっている。その最低速バンド幅は、事実上の最大バ
ンド幅 (maximum de fact band
width)である。
場合を除き、ネットワークエンティティ(サーバ20と
クライアント90のような)間のバンド幅というとき
は、これらエンティティ間の事実上の最大バンド幅であ
るものと想定される。
nection speed)」、「速度」、または
「レート」とも呼ばれる。本明細書の中でバンド幅とい
うとき、それが毎秒ビット数で表されているときは、
「ビット・レート(bit rate)」または「ビッ
トレート(bitrate)」とも呼ばれる(なお、本
明細書では「ビットレート」ということにする)。
連続するストリームとして処理できるような形でマルテ
ィメディアデータを転送する手法である。ストリーミン
グテクノロジの重要度がインターネントの成長と共に高
まっているのは、大部分のユーザによるアクセスが十分
に高速でないため、大量のマルチメディアファイルを高
速にダウンロードできないからである。ストリーミング
を使用すると、クライアントブラウザまたはプラグイン
は、ファイル全体の伝送が完了する前にデータ表示を開
始することができる。
受信するクライアント側は、データを収集し、そのデー
タを一定のストリームとしてアプリケーションに送信
し、そのアプリケーションでデータを処理し、それをサ
ウンドやピクチャに変換できるようになっていなければ
ならない。このことは、ストリーミングクライアントが
必要以上の高速でデータを受信したとき、余分のデータ
をバッファに置いておく必要があることを意味する。逆
に、データが十分に高速で受信されないときは、データ
のプレゼンテーションはスムーズに行われないことにな
る。
ゼンテーションのコンテキスト内では、「メディア」と
「マルティメディア」は、本明細書では同じ意味で用い
られている。メディアとは、テキスト、グラフィック
ス、ビデオ、アニメーション、および/またはサウンド
を統合化して提示することを意味している。
ワーク(インターネットなど)を利用してエンドユーザ
に伝送されるオーディオおよび/またはビジュアルプレ
ゼンテーションである。このような伝送は、プレゼンテ
ーションが相対的にスムーズで、ジャーク (jerk
y) が生じないように行われる。追加のフレームがユ
ーザにダウンロードされている間のポーズ (paus
e) が長いと、ユーザにとっては煩わしくなってい
る。このような煩わしさは、ユーザが将来のストリーミ
ングメディアを見ることを断念させる原因になってい
る。
幅によって決まるので、ストリーミングメディアプレゼ
ンテーションが提示されるときのレートは、バンド幅が
許容するレートまでに制限されている。例えば、メディ
アサーバ20が、ストリーミングメディアプレゼンテー
ションをスムーズに「プレイ」するためには、データを
50Kbpsでクライアント90に送信する必要がある
とする。しかし、クライアントとサーバ間のバンド幅は
30Kbpsに制限されている。その結果は、メディア
プレゼンテーションがジャークし、ジャンプすることに
なる。
ミングメディアプレゼンテーションは、品質度の異なる
複数のフォーマットに符号化(エンコード)されてい
る。
ズ、低解像度、小カラーパケット)は、一定時間にクラ
イアントにプッシュ (push) されるデータ量が
最小になっている。従って、低速リンク上のクライアン
トはストリーミングメディアプレゼンテーションをスム
ーズに提示できるが、プレゼンテーションの品質が犠牲
になっている。
クリーンサイズ、高解像度、大カラーサイズ)は、一定
時間にクライアントにプッシュされるデータ量が最大に
なっている。従って、高速リンクをもつクライアント
は、ストリーミングメディアプレゼンテーションをスム
ーズに提示できると共に、高品質のプレゼンテーション
が得られることになる。
するとき、どのようなフォーマットを使用するかを知っ
ていなければならない。従って、正しいフォーマットを
選択するためには、サーバはサーバとクライアント間の
バンド幅を知っていなければならない。
バンド幅であるかをクライアントのユーザに尋ねること
である。インターネットへのクライアントのリンクは、
バンド幅にボトルネックがあるのが代表的であるので、
このリンクのバンド幅が分かると、実際のバンド幅が分
かるのが一般的である。
示されるWebページの1部分(カッタウェイ)100
を示す。このカッタウェイ100の内部には、そのコネ
クション速度についてユーザに尋ねるために使用できる
代表的なユーザインタフェースがある。ユーザは、ユー
ザインタフェース110によって提供される、3つのボ
タン112、114、116をクリックする。ユーザが
ボタン112をクリックすると、サーバは、28.8
Kbpsで伝送する設計になったフォーマットでストリ
ーミングメディアを収めているファイルからデータを送
出する。同様に、ユーザがボタン114をクリックする
と、データは、56.6 Kbpsで伝送する設計にな
ったフォーマットでストリーミングメディアを収めてい
るファイルから送信される。ユーザがボタン114をク
リックすると、サーバは、56.6 Kbps以上であ
って、T1コネクションの代表的速度までのレートで伝
送する設計になったフォーマットでストリーミングメデ
ィアを収めているファイルからデータを送信する。
ると、ユーザに慎重な選択が要求されるという大きな問
題がある。このアプローチによると、選択エラーが起こ
りやすくなっている。
し、知識があることが要求されている。よくあること
は、ユーザがどのボタンを押すべきかに特別な注意を払
わないことである。ユーザが分かっていることは、ユー
ザがボタンの1つを押すと、メディアプレゼンテーショ
ンが表示されることだけである。従って、ユーザはボタ
ンのどれかを押している。
の概念を理解していないことである。ユーザがボタン1
16を選択するのは、プレゼンテーションを最高品質で
見たいからである。プレゼンテーションを最高品質で表
示すると、インターネットコネクションは、インターネ
ットコネクションを通してデータが送信されるときのレ
ートを処理できないので、プレゼンテーションがスムー
ズでなくなるということがこのユーザに分かっていな
い。
も、自分のバンド幅が分かっていないことがある。ユー
ザは自分のバンド幅に無知だけのこともある。さらに、
ノイズの度合が変化すると、ユーザがインターネットに
接続するたびにコネクション速度が変化することがあ
る。さらに、コネクションのタイプによっては(ケーブ
ルモデムなど)、多数の要因によってコネクション速度
が広範囲に変化するものもある。
どのようなことが起こるかを理解している必要がある。
ユーザは、スムーズなプレゼンテーションを得るために
は自分のバンド幅と同じか、あるいはそれ以下のオプシ
ョンを選択する必要があることを理解できるだけの教育
が必要である。しかし、ユーザは、自分のバンド幅より
大幅に低いオプションを選択してはならない。そのよう
にすると、利用できる、もっと高いバンド幅で表示でき
るはずのスムーズなプレゼンテーションが、低品質で表
示されることになってしまう。
ニュアル(手動操作)による方法は、多くのユーザを混
乱させ、脅威になっていることがよくある。そのため、
選択を誤ることがよく起こっている。
1ファイル)をメディアサーバに置いておくと、Web
サイトを維持するオーバヘッドが増加することになる。
ファイルを使用し、複数のバンド幅用のサブファイルを
そこに収めておくことができる。さらに、メディアサー
バは、バンド幅を自動的に検出することができる。
tiple bit rate:複数ビットレート)フ
ァイルと呼ばれている。MBRファイルは、複数の異な
る「バンド」または「ストリーム」を収めているのが代
表的である。これらのバンドは「サブファイル」と呼ば
れている。ユーザは1つのリンクをクリックするだけで
ある。すると、サーバは、クライアントに送信するとき
の正しい速度のバンドを、自動的に判断する。なお、こ
れはユーザには見えないように行われる。
る。このことは、プレゼンテーションが始まるまでに、
ユーザはさらに5秒または1分(またはそれ以上)待た
されることを意味している。既存の自動速度検出にこの
ような遅れがあるのは、速度判断が進行中のときの「ハ
ンドシェ−キング」時間が長いことによる。
クライアント間の速度を測定するために複数のデータパ
ケットが送信されている。この手法は、以下の「複数測
定パケット手法」の個所に詳しく説明されている。
の1または2以上のパケットを送信することによって、
ネットワーク上のエンティティ間のバンド幅を測定して
いる。
側(例えば、クライアント)間の2つのパケット(Px
とPy)の伝送をたどって行く時間グラフを示す。サー
バ側とクライアント側はそのように示されている。グラ
フ上では、時間は下に向かって進んでいる。
バ側の時刻を示している。時刻tbは、Pxの伝送が終
了するサーバ側の時刻を示している。同様に、時刻t0
は、クライアントがPxの受信を開始する時刻を示して
いる。時刻t1は、クライアントがPxの受信を完了す
る時刻を示している。t1時に、ネットワークハードウ
ェアは、通信層を上方に向かってパケットを渡してい
き、アプリケーション層に到達するものと想定されてい
る。
じように示されている。tcは、P yの伝送が開始され
るサーバ側の時刻である。tdは、Pyの伝送が終了す
るサーバ側の時刻である。同様に、t2は、Pyの受信
を開始するクライアント側の時刻である。t3は、Py
の受信を完了するクライアント側の時刻である。t3時
に、ネットワークハードウェアは、通信層を上方に向か
ってパケットを渡していき、アプリケーション層に到達
するものと想定されている。
定。研究所のように制御された環境では、ネットワーク
上の2エンティティ間のバンド幅測定は簡単である。こ
の計算を行うために、既知サイズのパケットが一方のエ
ンティティから他方のエンティティに送信され、伝送レ
イテンシが測定されている。ここで、伝送レイテンシ
(transmission latency) と
は、パケットがソース(発信元)からデスティネーショ
ン(宛先)まで走行して行くのに要する時間量のことで
ある。このようなシナリオが与えられているとき、パケ
ットが送信された時間とパケットが到着した時間が分か
っていなければならない。
用的である。この手法は、クライアントとサーバ間が同
期している必要があるので、非同期ネットワーク(イン
ターネットなど)では使用できない。クライアントとサ
ーバのどちらも、同じクロックを使用している必要があ
る。
トの受信を開始した時刻(Pxではt0)と、パケット
の受信が完了した時刻(Pxではt1)をたどって行く
ことができる。
れるパケットPxを示している。P xは、パケットサイ
ズPSは既知サイズ(ビット数)になっている。バンド
幅(bw) の計算式は次の通りである。
ながら実用には適していない。パケットがいつ初めて受
信されるかは、ハードウェアだけが分かっている。従っ
て、t0がいつであるかは、ハードウェアだけが分かっ
ている。
リケーション層など)が分かっているのは、パケットが
ハードウェアによって完全に受信された時刻だけであ
る。これは、ハードウェアがパケットをこれらの層に渡
したときである。パケットPxの完了時刻はt1であ
る。ある時点が分かっているだけでは、バンド幅を計算
することは不可能である。
et−pair) と呼ばれる手法は、非同期ネットワ
ークでの上記問題を解消するために使用されている。パ
ケットペアによると、2つの同一パケットはバックツー
バック (back−to−back) で送信され
る。サーバは、一方が他方の直後に続くように、ペアの
パケットを送信する。両パケットは同じであるので、同
一サイズ (PS) になっている。バンド幅は、パケ
ットサイズを各パケットの受信の時間差で除することに
よって求められている。
いる。具体的には、これらの特性としては、そのパケッ
トサイズ (PS) とパケット到着といった測定時間
(例えば、図3中のt0 3)がある。ある種の特性
(パケットサイズなど)は、測定されるよりも指定され
ることがあるが、測定することが望ましければ、測定す
ることも可能である。
を送信する。クライアント側ハードウェアはt0時にパ
ケットの受信を開始する。パケットの受信がt1時に完
了すると、ハードウェアは通信層を上方に向かってパケ
ットを渡していく。最終的には、パケットはほぼt1時
にデスティネーション層(例えば、アプリケーション
層)によって受信される。
時に完了している)、tc時にパケットPyを即時に送
信する。重要なことは、1) tbとtcの間に測定可
能な遅延が絶対に存在しないか、あるいは2) tbと
tcの間に存在する遅延の長さが分かっていることであ
る。ここでは、説明を簡単にするために、tbとtcの
間に測定可能な遅延が存在しないものとしている。
yの受信を開始する。このパケットの受信がt3時に完
了すると、ハードウェアは通信層の上方に向かってパケ
ットを渡していく。最終的に、パケットはほぼt3時に
デスティネーション層(例えば、アプリケーション層)
によって受信される。
2(Pyの受信開始時刻)の間に遅延が存在しないこと
を示している。理論的には、このことが常に起こるの
は、P xとPyが同じ条件で伝送されたときである。実
際には、このことがよく起こるのは、PyがPxの直後
に送信されるからである。
(bw) の計算式は次の通りである。
ある。しかし、これが有効に働くのは、比較的静的なネ
ットワークに限られている。
クはサーバ20、ルータ32、34、36、ISP80
の中の特定ISP、およびクライアント90から構成さ
れている。さらに、この静的ネットワーク上の各ノード
間のリンクは固定され、一定のバンド幅をもっているこ
とが想定されている。このような状況では、パケットペ
ア手法によると、正確で、効果的なバンド幅測定が得ら
れる。
たときの問題。しかし、パケットペア手法は、インター
ネットのような動的ネットワークでは有効な働きをしな
い。動的ネットワークとは、パケットが先行パケットと
は異なるか、後続パケットとは異なる方法で処理される
可能性があるようなネットワークである。具体的には、
TCPネットワークで問題が起こっている。
異を処理する例を示している。ここでは、すべてのパケ
ットはサーバからクライアントへ(図1の左から右へ)
走行するものと想定されている。また、パケット60〜
68は、サーバ20によってバックツーバックでクライ
アントに送信されたものと想定されている。
異なるルートを通ることが可能になっている。さらに、
ルートによっては、パケット伝送を大幅に遅延させるも
のがある。このことが起こるのは、特に、パケットが、
ワイヤレス伝送のような見かけ上異常な(必ずしも、通
常でないとは限らない)ルートを経て伝送され、海底ケ
ーブル、サテライト伝送(ディッシュ46、50とサテ
ライト48で図示)などを経て海外に伝送されるときで
ある。ルータ(ルータ42のような)は、パケットをメ
モリ(バッファ43のような)に一時的に置いておくこ
とにより、別のルータよりも1または2以上のパケット
(63と64のような)を遅延させることがある。
定手法では、複数のパケットが使用されている。サーバ
は複数のパケット(3以上のパケット)を送信し、各パ
ケットの速度を計算している。バンド幅測定の従来の考
え方から明らかであるように、正確な測定を得るために
は、複数のペアのパケットを、数秒間から数分間にわた
って繰り返し送信する必要がある。ここでは、上述した
「パケットペア」手法と区別するために、この手法は
「複数パケット」と呼ぶことにする。
バンド幅測定の平均を求めることによって判断されてい
る。このように平均をとると、各パケットの遅延のばら
つきは平滑化されるが、伝送中のパケット圧縮は補償さ
れない。2測定のうち一方が非常に不正確であると、平
均はゆがむことになる。
らメディアプレゼンテーションまでユーザが待たされて
いた時間に比べて待ち時間が長くなっている。この待ち
時間は、データと状況に応じて5秒から数分間にわたっ
ている。このような待ちがあると、メディアプレゼンテ
ーションを体験することを望んでいるユーザにとって
は、煩わしが増加することになる。この遅延は望ましく
ない。従来の手法では、利用できる他のオプションがな
いために、ユーザはこれらの遅延に我慢せざるを得なく
なっている。
ーネット上のバンド幅を、ペアのパケットを使用してほ
ぼ瞬時に測定することが不可能である。また、どの既存
自動バンド幅測定手法も、この測定をアプリケーション
層で行うことが不可能である。そのために、オペレーテ
ィングシステムを修正することが回避されている。どの
既存自動バンド幅測定手法も、パケット圧縮が原因で起
こる測定ひずみを扱っていない。
オペレーティングシステム (OS) のカーネルを修
正しているのが代表的である。具体的に説明すると、こ
れらのアプローチでは、OSIモデルのトランスポート
層を修正しているが、この層はOSのカーネルに置かれ
ていることが多い。一般的に、このような修正は、OS
を修正していない実装に比べて、全体的に安定性が低下
し、高価になるので望ましくない。
に(従って、アプリケーション層に)実装できないの
で、このような修正は不可能になる。しかし、どの既存
パケットペアによる手法も、アプリケーション層でバン
ド幅を測定していない。これは、ネットワーク上で実際
に行われるコミュニケーション詳細に対する制御権が、
アプリケーション層では、他の層に比べて低いためであ
る。具体的には、アプリケーションは、TCP使用によ
る制御権が、UDP(User Datagram P
rotocol:ユーザデータグラムプロトコル)によ
る場合よりも、はるかに低くなっている。
P」の個所に詳しく説明されている。トランスポート層
とアプリケーション層は、以下で説明するOSIモデル
の7層の一部になっている。
ータパケットは、TCPまたはUDPプロトコルを使用
して送信されるのが通常である。TCPはインターネッ
トでは広く認められ、理解されている。
ntrol Protocol:伝送制御プロトコル)
は、TCP/IPネットワーク(インターネットなど)
における主要プロトコルの1つである。IPプロトコル
はパケットだけを扱っているのに対し、TCPは2つの
ホストがコネクションを確立し、データストリームをや
りとりすることを可能にしている。TCPは、データの
配達を保証し、パケットがその送信時と同じ順序で配達
されることを保証している。
rotocol:ユーザデータグラムプロトコル)はコ
ネクションレス型プロトコル (connection
less protocol) であり、(TCPと同
じように)IPネットワークの上で走行する。TCP/
IPとは異なり、UDP/IPは提供するエラー回復サ
ービスが非常に少ないが、その代わりに、IPネットワ
ーク上のパケット(つまり、データグラム)の送受信を
直接的方法で行うことができる。
によって提供されるデータの塊 (chunk) であ
る。UDPでは、シングル「アプリケーションレベルデ
ータ」はシングルUDPパケットとして送信されるのが
代表的である。これに対し、TCPでは、シングルアプ
リケーションレベルパケットは、もっと小さな、複数の
TCP「セグメント」に分割され、その各々はTCP層
で別々の「パケット」として扱われるようになってい
る。Nagle アルゴリズム(下述する)は、上記と
は逆のことを行う。つまり、複数の、小さなアプリケー
ションパケットを受け取り、それらを結合してもっと大
きな、1つのTCPセグメントにする。
さなTCPセグメント(「タイニグラム(tinygr
am)」と呼ばれることもある)に起こる問題を回避す
る設計になっている。このアルゴリズムの規定によれ
ば、まだ受信確認(ACK) されていないで未処理の
まま、TCP/IPコネクションに残っているタイニグ
ラムは1つに限られている。タイニグラムの定義サイズ
は実装によって決まる。しかし、そのサイズは、一般的
に、代表的なTCPセグメントのサイズより小さくなっ
ている。
によっては、データが送信される前の待ち時間は約20
0ミリ秒 (msec) であることが規定されてい
る。Nagle アルゴリズムは、スイッチ経由のトラ
フィックに対して次のようなパラメータを使用してい
る。 ・ セグメントサイズ = MTUまたはtcp_ms
sdfltまたはMTU経路検出値 ・ TCPウィンドウサイズ = tcp_sends
pace値とtcp_recvspace値のうち小さ
い方 ・ データサイズ = アプリケーションデータバッフ
ァサイズ
るときNagle アルゴリズムによって使用される、
具体的ルールである。 ・ パケットがセグメントサイズと同じか、それより大
きく、TCPウィンドウが一杯になっていなければ、M
TUサイズのバッファを即時に送信する。 ・ インタフェースがアイドル中であるか、TCP_N
ODELAYフラグがセットされていて、TCPウィン
ドウが一杯になっていなければ、バッファを即時に送信
する。 ・ TCPウィンドウに未処理のまま残っているデータ
がウィンドウの半分以下であれば、バッファを即時に送
信する。 ・ 送信するセグメントサイズがバッファ未満であり、
ウィンドウに未処理のまま残っているデータがウィンド
ウの半分以上であって、TCP_NODELAYがセッ
トされていなければ、残りデータについて200 ms
ecまで待ってからバッファを送信する。
Yをセットすると、Nagle アルゴリズムは非アク
チベートされる。送信される全データは、データサイズ
に関係なく即時に送出される。
は、「タイニグラムバッファリング」機能と呼ぶことが
できるが、これはタイニグラムがバッファリングされる
からである。
ム “Slow Start”(スロースタート)を使用し
ないTCPネットワークでは、デバイスは、受信側が公
表しているウィンドウサイズに達するまで、複数のパケ
ットをネットワークに投入することによって送信側との
コネクションを開始している。2ホストが同じLAN上
にあるときは、これは許されるが、送信側と受信側の間
にルータや低速リンクがあると、問題が発生する可能性
がある。中間ルータの一部はパケットを待ち行列(キュ
ー)に置いておく可能性があるので、そのようなルータ
は、メモリ不足のためパケットを待ち行列に置くことが
できないことが起こり得る。従って、このナイーブなア
プローチによると、TCPコネクションのスループット
が大幅に低下するおそれがある。
Start” と呼ばれている。このアルゴリズム
は、新パケットがネットワークに投入されるときのレー
トが、受信確認通知が他方のエンドから戻されるときの
レートであることを観察する働きをする。
は、送信側のTCPに別のウィンドウが追加されてい
る。つまり、輻輳 (congestion) ウィン
ドウであり、”cwnd”と名付けられている。別のネ
ットワーク上のホストとの間で新しいコネクションが確
立されると、輻輳ウィンドウは1パケットに初期化され
る。受信確認通知(つまり、”ACK”)が受信される
たびに、輻輳ウィンドウは1パケットずつ増加して行
く。送信側は、「輻輳ウィンドウ」と「公表(adve
rtised)ウィンドウ」の最小限まで送信すること
ができる。「輻輳ウィンドウ」は、送信側によって課さ
れたフロー制御である。「公表ウィンドウ」は、受信側
によって課されたフロー制御である。前者は、ネットワ
ーク輻輳がどの程度であるかを送信側が評価することに
基づいている。後者は、そのコネクションのために利用
できるバッファスペースが、受信側にどれだけ残ってい
るかに関係している。
K(受信確認通知)を待つことからスタートする。その
ACKが受信されると、輻輳ウィンドウは1から2にイ
ンクリメントされる。これらの2パケットの各々が受信
確認されると、輻輳ウィンドウは4に増加する。以下、
同様である。
ネクションの容量まで到達することになる。容量まで到
達すると、いずれかの中間ルータはパケットを破棄する
ことを開始する。輻輳ウィンドウが限界まで達したこと
は、この廃棄によって送信側は知ることになる。
は、クライアントアプリケーション(Webブラウザな
ど)と実サーバ (real server)の間に置
かれたデバイスである。一般的に、プロキシは、実サー
バとの間でやりとりされるすべての要求をインターセプ
ト (intercept) し、自身で要求を満たす
ことができるかどうかを確かめる。満たすことができな
ければ、要求を実サーバに転送する。プロキシは、主に
次の2目的のために採用されている。すなわち、パフォ
ーマンス向上と要求のフィルタリングである。
中央コミュニケーションポイントとなることが多いの
で、そのコミュニケーションを可能な限り効率化するこ
とを試みている。従って、プロキシは、Nagle ア
ルゴリズムの一種を実装しているのが代表的である。す
べての新コネクションはSlow Startから開始
する。クライアントとサーバの間にプロキシが置かれて
いるときは、SlowStartは、2つのコネクショ
ンで実行される。すなわち、サーバとプロキシ(ser
ver−proxy) 間コネクションとプロキシとク
ライアント(proxy−client) 間コネクシ
ョンである。従って、プロキシを使用すると、パケット
ペアの試みはさらに複雑化することになる。
る)は、TCPパケットの処理に対する制御が制限され
ている。従って、従来のバンド幅測定では、アプリケー
ションレベルでのTCPバンド幅測定が回避されてい
る。
パケットはバックツーバックで送信されることが保全性
の要件となっている。しかし、これらのパケットは、N
agle アルゴリズムとSlow Start アル
ゴリズムの影響のためにそのような形で到着しないこと
がある。このことが、TCPネットワーク上のバンド幅
測定にパケットペア手法を使用することの妨げとなって
いる。
法を使用することの可能なTCPネットワーク環境にお
けるバンド幅の高速動的測定方法を提供することにあ
る。
では、ネットワーク(インターネットなど)上の2エン
ティティ間のバンド幅を計算するために、シングルペア
のパケットが利用されている。この計算はパケットペア
手法に基づいている。このバンド幅測定は非常に高速で
ある。
中で、通信デバイスはパケットペアを遅延させることが
ある。具体的には、TCPネットワークでは、ネットワ
ークの総スループットを向上することを目標として、あ
る種のパケットを遅延させる設計になった2つのアルゴ
リズムが使用されている。しかし、これらのアルゴリズ
ムは、バンド幅を測定することを目的としたパケットペ
アを事実上遅延させる可能性がある。従って、これらの
アルゴリズムを使用すると、測定にひずみが起こってい
る。そのアルゴリズムとは、”Nagle”と”Slo
w Start”である。
ゴリズムに課されている遅延を解消するための対応策が
実装されている。その対応策とは、Nagle アルゴ
リズムの適用を禁止すること、「プッシュ」パケットを
パケットペアの直後に送信することによってパケットの
バッファリングを最小限にすること、およびダミーパケ
ットで初期化(プライミング)することによってSlo
w Start アルゴリズムを回避することである。
境におけるバンド幅の高速動的測定の具体的実施形態に
ついて説明するが、そこには請求項に記載されているエ
レメントが組み込まれている。この実施形態は、法律上
の要件、使用可能性の要件、および最良形態の要件に合
致するように具体的に説明されている。しかし、その説
明自体は、本発明の範囲を限定するものではない。むし
ろ、本発明によるTCPネットワーク環境における高速
動的バンド幅測定は、他の現存および将来のテクノロジ
と併用して他の方法でも実現可能であり、それが本発明
者の意図する目的である。
ンド幅の高速動的測定(つまり、「バンド幅メータ」ま
たは「bw−meter」。なお、以下では、「バンド
幅メータ」という)はTCPネットワーク(インターネ
ットなど)で使用されたときでも、高速であり、強固で
ある。例示のバンド幅メータは、通信ネットワーク上の
2エンティティ間で利用可能なネットワークバンド幅を
自動的に測定する低レイテンシ手法が実装されている。
これは、インターネット(または他のTCPネットワー
ク)上で利用すると、特に有用であることが判明してい
る。
ド幅メータによると、困難なネットワーク条件下でも、
起こり得る遅延を最小にして最善努力のバンド幅測定が
得られる。例示のバンド幅メータは、LAN、ケーブ
ル、DSL、およびモデムコネクションを含む、大部分
の既存TCPネットワークにおいて1秒未満で妥当な出
力が得られる設計になっている。
ケーション層に実装されている。例示のバンド幅メータ
は他の層でも実装可能であるが、ここで説明されている
ものはアプリケーション層に実装されている。具体的に
は、これは、その一部をWebブラウザまたはメディア
プレイヤで実現することが可能である。
パケットペア手法の他の側面は、米国での特許出願、発
明の名称「コネクションバンド幅の高速動的測定(Fa
stDynamic Measurement of
Connection Bandwidth)」、Mi
crosoft Corporationに譲渡済み)
に詳しく説明されている。なお、この米国特許出願の内
容は引用により、本明細書の一部になっている。
る、確立されたパケットペア手法が利用されている。例
示のバンド幅メータは、上述したパケットペア公式(式
2)を使用して、通信ネットワーク(インターネットな
ど)上の2エンティティ間の、事実上の最大バンド幅を
計算している。
バンド幅測定手法とは異なり、例示のバンド幅メータ
は、インターネット上のバンド幅を測定するためにシン
グルペアのパケットを使用している。例示のバンド幅メ
ータでは、バンド幅測定と計算は、シングルペアの測定
パケットだけが送信されるので、「ほぼ瞬時」に行われ
る。ここで「ほぼ瞬時に(nearly instan
taneously)」とは、ペアのパケットがクライ
アントに到着するのと同時にバンド幅が求められること
を意味している。
ルゴリズムとSlow Startアルゴリズムに対す
る対応策を実装することによって、TCPネットワーク
(インターネットなど)上でパケットペアを使用すると
きの欠点と制約を解消している。
幅メータのパケットペア手法によるパケットは、送信側
エンティティ(例えば、サーバ)から受信側エンティテ
ィ(例えば、クライアント)に走行する。図4は、その
ような走行ルートの例を示す。図4に示す環境は、図1
に示す環境に類似している。
ネットワーク)構成の例を示す図である。そこには、サ
ーバ(メディアサーバ220など)が含まれ、これはイ
ンターネット230に結合されている。サーバは、1ま
たは2以上の物理的サーバコンピュータ222が実装さ
れ、コンピュータは1または2以上の物理的ストレージ
デバイスおよび/またはデータベース224を装備して
いる。インターネット伝送の反対側には、クライアント
290、292が置かれており、これは、インターネッ
トサービスプロバイダ (Internet Serv
ice Provider ISP) 280であ
る、プロキシサーバ284を経由して接続されている。
ているが、理解されるように、このクラウドは、そこに
示されているものだけが置かれているインターネット部
分を表している。このクラウドの内側には、ルータ、伝
送回線、コネクション、および他のデバイスが置かれ、
クライアントとサーバ間のデータ伝送が、ほぼ正常に行
われるようにしている。例示のインターネットクラウド
230の内側には、ルータ232〜244、2つのサテ
ライトディッシュ246、250、およびサテライト2
48が置かれている。これらは、データパケットがサー
バとクライアント間を走行する途中で取り得る経路を表
している。
信されるペアの、連続するパケット260、262を示
している。サーバ220は、パケット260の直後にパ
ケット262を送信する。
通してそのISP280に接続されている。クライアン
ト290とクライアント292はプロキシサーバを使用
して、インターネットと通信する。
の下のトランスポート層または他の、なんらかの層に実
装されているのが代表的である。しかるに、例示のバン
ド幅メータはアプリケーション層に実装されている。ア
プリケーションレベルでTCPパケットペアバンド幅を
測定する方法には、少なくとも2つの大きな利点があ
る。
ど)にパケットペア手法を実装することは、不利である
ことである。OSのカーネルの変更が必要になり、段階
的(増分的)展開に役立たないからである。アプリケー
ションレベル実装とは異なり、下位パケットペア実装は
その開発、初期展開、将来の開発、および将来の展開に
多大な費用を要している。
の恩恵を受けるのは、研究対象のTCPコネクションの
うち1/4にすぎないことである。従って、使用される
コネクションがその1/4未満にすぎないときは、この
バンド幅測定を下位レベルに実装することはコスト効果
的でない。従って、このバンド幅は、それを必要とする
アプリケーションに組み込んでおくのが最良である。ア
プリケーションは、オペレーティングシステムの新しい
カーネルよりも、段階的(増分的)展開がはるかに容易
である(低コストである)。
あり、IPデータグラム(つまり、パケット)が受信側
ネットワークスタック(OS層)を上方に向かって通り
抜けてアプリケーションに妨害を受けることなく渡され
るようにする考え方が安全な方法である。Americ
a Onlineバージョン4 (AOLv4)および
それ以前のソフトウェアのように、タイマだけでデータ
がアプリケーションに渡されるように振る舞っていた、
ある種のアプリケーションの場合には、この考え方に反
することになる。従って、測定には人工的クロックの細
粒性が要求されていた。幸いなことに、AOLソフトウ
ェアのバージョン5(およびそれ以降)では、このよう
な妨害は起こっていない。
良好な測定を得るためには2つの条件を満足しなければ
ならない。
クで送信されなければならないことである。ここでは、
これを「バックツーバック」条件と呼ぶことにする。パ
ケットがバックツーバックで送信されないときは、パケ
ット間のタイミング測定にひずみが生じることになる。
Nagle アルゴリズムとSlow Startアル
ゴリズムはどちらも、この条件に反するおそれがある。
どちらも、2番目の測定パケットの配達を遅延させる潜
在性をもっている。パケットペアを使用してバンド幅を
測定する場合は、実際のバンド幅の測定にひずみが生じ
るので、パケット間に起こることが避けられない遅延は
耐えられないものになっている。
ていなければならないことである。つまり、パケットは
他のパケットと結合してはならない。ここでは、これを
「サイズ保持」条件と呼ぶことにする。Nagle ア
ルゴリズムは、この条件に反するおそれがある。
のアプリケーション層パケットはシングルTCPパケッ
トとして送信されることがある。従って、アプリケーシ
ョンは2またはそれ以上のパケットを送信しているつも
りでいても、実際には、TCP層はシングルパケットだ
けを送信している。
さなパケットのとき、未処理のまま残っているACKは
1つだけであることである。従って、ペアになった小さ
なパケットは、Nagle アルゴリズムではバックツ
ーバックで送信することができない。Nagle アル
ゴリズムでは、ACKを待っている小さなパケットは結
合されることになる。これは、「バックツーバック」条
件にも、「サイズ保持」条件にも影響を与えている。
アルゴリズムがこれら2条件を妨げる傾向を解消するた
めの対応策が講じられている。あるエンティティ(図4
中のサーバ220など)はコマンドを送信し、通信デバ
イス(ルータ230−250など)がNagle アル
ゴリズムを使用禁止 (disable) にするよう
に指示する。一般的に、サーバは「ディレイディスエー
ブル(delay−disable)」コマンドと総称
されるコマンドを渡している。具体的には、サーバはT
CP_NODELAYをSetSockOpt()に渡
している。
Nagle アルゴリズムをオフにすると、TCPはp
acket−pairパケットのいずれも結合する試み
が禁止されるので、TCPは即時にパケットをネットワ
ークに書き出すことになる。
を「ディレイディスエーブル」コマンドで使用禁止にす
ると、packet−pairのどちらのパケットも、
Nagleが複数パケットを収集するとそれが原因で起
こる遅延なしで、ルータを通過していくことになる。
する対応策 例示のバンド幅メータでは、Slow Start ア
ルゴリズムが「バックツーバック」条件を妨げる傾向を
解消するための対応策が講じられている。これは、サー
バの輻輳ウィンドウ(これは具体的には”cwnd”と
名付けられている)を少なくとも3パケットにオープン
することによって行われる。
(priming)」(初期化)することによって行わ
れる。輻輳ウィンドウをプライミング(初期化)するた
めに、サーバは少なくとも1つのパケットを送信し、A
CKを受信してから、packet−pairのペアの
パケットを送信するようにしている。従って、サーバ
は、少なくとも1つの「プライミング」パケットをクラ
イアントに送信するが、そのパケットはバンド幅計算の
ためには使用されない。1つまたは2つ以上のプライミ
ングパケットが送信されたあと、サーバは、バンド幅計
算のために実際に使用されるpacket−pairを
送信する。この時点では、Slow Start アル
ゴリズムでは、少なくとも2パケットが遅延することな
く、続けて通り抜けるようにしている。
特定のTCPコネクションの後半でバンド幅測定を行う
ようにすると、完全に回避することができる。しかし、
これは、2つの理由で望ましいオプションではない。遅
延とオーバヘッドが増加し、誤った測定の原因となるか
らである。
た遅延があるため、Slow Start アルゴリズ
ムが全コースを走行するまで待たされることになる。回
避できる遅延ならば、ない方がよい。例示のバンド幅メ
ータによると、この遅延を回避することができる。
で行うと、コネクションの進行と共に累積して行く、多
数の不確実性が除去される。例えば、TCPコネクショ
ンが制御層とデータトランスポート層の両方で共有され
ているときは、送信側の輻輳ウィンドウにパケットがバ
ケットツーバックで送信される余裕があるかどうかを、
セッションの後半で予測することは不可能である。
同じように、packet−pairのバンド幅測定に
ひずみを生じさせる可能性がある。一般的に、プロキシ
は「ディレイディスエーブル」コマンドを認識しない。
クライアントとサーバのどちらのアプリケーションも、
コネクションが回線レベルのプロキシを通るように行わ
れているかどうかを、事前に通知することができない。
ズムにアドレスするためには、ペアの測定パケットのあ
とに大きな第3パケットが送信されている。プロキシが
packet−pairの第2パケットを保持している
と、この第3パケットは第2パケットをプッシュ(押し
出す)ことになる。従って、この第3パケットは「プッ
シュ(push)」パケットと呼ばれている。
プロキシで結合するこが可能である。このようにする
と、人工的に得られる測定は高くなるが、いずれにして
も、プロキシユーザの圧倒的多数は高バンド幅コネクシ
ョンをもつことなる。
す。これは、サーバ側から見た図である。300で、例
示のバンド幅メータによる動的バンド幅測定が開始され
る。代表例として、クライアントのユーザは、Webペ
ージ上でオプションを選択すると、メディアプレゼンテ
ーションを体験することになる。別の方法として、この
バンド幅測定を、クライアントに置かれたアプリケーシ
ョンで開始することも可能である。そのようなアプリケ
ーションとしては、Webブラウザ、メディアプレイヤ
などがある。
方が他方の直後に続くように、ペアのパケットをクライ
アントに送信する。このブロック302での具体的な実
装詳細は、図6、図7、および8に示されている。これ
らの図については、下述する。
答を待っている。時間制限内に応答が受信されなけれ
ば、このプロセスは元に戻り、302で別のペアのパケ
ットが送信される。フローチャートには図示されていな
いが、このプロセスによれば、これは一定の回数繰り返
されたあと、終了し、エラーを生成する。応答が時間制
限内に受信されたときは、プロセスは308で次のブロ
ックに進む。
パケットを使用してクライアントによって、304で判
断されたバンド幅測定が含まれている。308で、サー
バは、応答から特定のバンド幅を抽出する。
幅に等しいか、それ以下のバンド幅用にフォーマットさ
れたファイル(またはその一部)を選択する。312
で、サーバはそのファイル(またはその一部)をクライ
アントに送信する。
アントのユーザは、プレイが即時に開始されるメディア
プレゼンテーションを楽しむことができる。プレイは、
測定されたバンド幅で可能な限り最高品質でスムーズに
行われる。プロセスは314で終了する。
策。図6は、Nagle アルゴリズムに対する対応策
として、例示のバンド幅メータを方法で実現した具体例
を示す。402で、サーバは「ディレイディスエーブ
ル」コマンドを送信し、Nagle アルゴリズムの使
用を禁止する。404で、サーバはペアのバンド幅測定
パケットをクライアントに送信する。406で、プロセ
スは図5のブロック306に戻る。
ロキシ遅延に対する対応策として、例示のバンド幅メー
タを方法で実現した具体例を示す。412で、サーバは
ペアのバンド幅測定パケットをクライアントに送信す
る。414で、サーバは「プッシュ」パケットを送信
し、通信デバイスによってパケットがストアされている
可能性のあるバッファからペアを押し出す。416で、
プロセスは図5のブロック306に戻る。
する対応策。図8は、Slow Start アルゴリ
ズムに対する対応策として、例示のバンド幅メータを方
法で実現した具体例を示す。422で、サーバは「プラ
イミング」パケットを送信し、Slow Start
アルゴリズムを解消する。
測定には使用されない。このパケットはネットワークを
オープンさせ(つまり、輻輳ウィンドウをオープンさせ
る)、同時に2つのパケットを遅延なしで可能にする。
424で、サーバはペアのバンド幅測定パケットをクラ
イアントに送信する。426で、プロセスは図5のブロ
ック306に戻る。
トワーク上の2エンティティ間のバンド幅を高速に測定
することを望んでいるエンティティによって実装させる
ことが可能である。具体的には、ネットワークは、イン
ターネットなどのTCPネットワークである。
ンド幅メータをアプリケーション層に実装することがで
きる。この例示のバンド幅メータを実装できるアプリケ
ーションレベルのプログラムモジュールの例としては、
サーバ側に置かれていて、Microsoft Med
ia Server (MMS) プロトコルまたはR
eal Time Streaming Protoc
ol (RTSP)のどちらかを使用するストリーミン
グメディアサーバアプリケーションがある。
した基本的手法を共有し、例示のバンド幅メータを使用
して正常な測定を行うための条件を示している。しか
し、RTSPを使用した例示のバンド幅メータの実装
は、MMSプロトコルを使用した実装よりも扱いづらく
なっている。
MMSよりも扱いづらくしている1つは、3つのパケッ
トをRTSPコマンドに対する応答であるかのように見
せて、クライアントのRTSPパーサがそれらのパケッ
トを処理できるようにする必要があるからである。RT
SP GET_PARAMETERコマンドは、パケッ
トペアの実験を要求するために使用される。応答の第1
パケットの先頭には、代表的なRTSP応答ヘッダが置
かれている。
ケットペア要求のヘッダの例である。
ペア応答のヘッダの例である。
ンドウは、少なくとも3パケットがサーバから送られて
くる時点までにその3パケットのためにオープンしてい
る必要がある。初期輻輳ウィンドウは2であるので、3
またはそれ以上のパケットのためにウィンドウをオープ
ンするためにはDESCRIBE応答が使用される。D
ESCRIBE応答が3パケットを要求していれば、こ
れは、3番目のパケットはクライアントからのACKを
待ってからでなければ送信できないことを意味する。
または両方のACKを待っている間に、GET_PAR
AMETERが到着し、アプリケーションがGET_P
ARAMETERに対する応答をソケットに書くことを
始めたときは、パケットペアのパケットはDESCRI
BE応答の3番目である最終パケットと結合され、相互
に結合されることになる。従って、クライアントは、D
ESCRIBE応答が完全な形で受信されるまではGE
T_PARAMETERを送信してはならない。
トが送信されるとき輻輳ウィンドウがサーバ側でオープ
ンすることが保証される。その結果、どのパケットも結
合されることはない。DESCRIBE応答は1または
それ以上のパケットのことがあるので、輻輳ウィンドウ
は、パケットペアの実行時に3またはそれ以上になる。
パケットペアの前に他のトラッフィクが行われることが
ないことは、もちろんである。
ルで)例示のバンド幅メータのパケットペア測定を実行
するということは、クライアントアプリケーションが2
パケットの到着時間を測定することを意味している。R
TSPでは、正確な測定のために要求される細粒性に比
べて応答ヘッダはその処理に時間がかかるため、これは
余計な難題になっている。従って、クライアントは、応
答の処理が終わるのを待ってからでなければ、パケット
ペアの第1パケットがタイムスタンプされる前にそれが
パケットペア要求に対する応答であることを知ることが
できない。
のタイプの応答であるかを知る前に行われていなければ
ならない。従って、クライアントがパケットペア要求を
行うとき、着信するすべてのコマンド応答はパケットペ
アの受信前にタイムスタンプされる。そのあと、このプ
レタイムスタンプモード (pre−timestam
p mode) から出ることになる。
第1パケットのヘッダを処理してからでなければ第2パ
ケットを読み取ることができない。従って、ボトルネッ
クをどの高さまで測定できるかには上限があり、これ
は、クライアントがRTSP応答ヘッダをどれだけ高速
に処理できるかによって決まる。例えば、ヘッダを処理
するのに要する時間が5msであれば、測定できる最大
速度は800 kb/s前後である。従って、ハイエン
ドにおけるRTSP測定は、RTSP応答をパース(p
arse:構文解析)するのに要する時間が低くなけれ
ば、MMSほどには良好にならない。
るコンピューティング環境920の例を示す。
適したコンピューティング環境の一例にすぎず、例示の
バンド幅メータが使用される範囲または機能する範囲が
限定されることを意味するものではない。また、コンピ
ューティング環境920は、例示のコンピューティング
環境920に図示のコンポーネントまたはその組み合わ
せに関して依存性または要求条件があるものと解釈して
はならない。
または専用コンピューティングシステム環境または構成
で動作可能になっている。例示のバンド幅メータで使用
するのに適している周知のコンピューティングシステ
ム、環境、および/または構成の例としては、パーソナ
ルコンピュータ、サーバコンピュータ、シンクライアン
ト (thin client)、シッククライアント
(thick client)、ハンドヘルドまたは
ラップトップデバイス、マルチプロセッサシステム、マ
イクロプロセッサベースシステム、セットトップボック
ス (set top box)、プログラマブルコン
シューマエレクトロニクス、ワイヤレス電話、ワイヤレ
ス通信デバイス、ネットワークPC、ミニコンピュー
タ、メインフレームコンピュータ、上述したシステムま
たはデバイスのいずれかを含んでいる分散コンピューテ
ィング環境、などがあるが、これらに限定されるもので
はない。
ュールのように、コンピュータによって実行されるコン
ピュータ実行可能命令という広い意味でとらえて説明す
ることもできる。一般的に、プログラムモジュールに
は、ルーチン、プログラム、オブジェクト、コンポーネ
ント、データ構造などがあり、これらは特定のタスクを
実行し、あるいは特定の抽象データ型を実装している。
例示のバンド幅メータは、通信ネットワークを通してリ
ンクされているリモート処理デバイスによってタスクが
実行されるような分散コンピューティング環境で実施す
ることも可能である。分散コンピューティング環境で
は、プログラムモジュールは、メモリストレージデバイ
スを含む、ローカルとリモートの両方のコンピュータ記
憶媒体に置いておくことができる。
境920は、汎用コンピューティングデバイスをコンピ
ュータ930の形で含んでいる。コンピュータ920の
コンポーネントとしては、1または2以上のプロセッサ
または処理ユニット932、システムメモリ934、お
よびシステムメモリ934を含む、種々のシステムコン
ポーネントをプロセッサ932に結合するバス936が
あるが、これらに限定されるものではない。
ずれかの1つまたは2つ以上を表しているが、そのよう
なものとしては、メモリバスまたはメモリコントロー
ラ、ペリフェラルバス、高速グラフィックスバス、およ
びプロセッサまたはローカルバスがあり、これらは種々
バスアーキテクチャのどれかを採用している。そのよう
なアーキテクチャの例をいくつか挙げると、ISA(I
ndustry Standard Architec
ture:業界標準アーキテクチャ)バス、MCA(M
icro Channel Architectur
e:マイクロチャネルアーキテクチャ)バス、EISA
(Enhanced ISA:拡張ISA)バス、VE
SA(Video Electronics Stan
dardsAssociation) ローカルバス、
およびMezzanineバスとしても知られているP
CI(Peripheral Component I
nterconnects:ペリフェラルコンポーネン
ト相互接続)バスがあるが、これらに限定されない。
タ読取可能媒体を装備しているのが代表的である。その
ような媒体としては、コンピュータ930によってアク
セス可能ならば、どの利用可能な媒体にすることも可能
であり、その中には、揮発性媒体と不揮発性媒体、取り
外し可能媒体と取り外し不能(固定)媒体が含まれてい
る。
されているコンピュータ読取可能媒体は、ランダムアク
セスメモリ (random access memo
ryRAM)940などの揮発性、および/またはリー
ドオンリメモリ (read only memory
ROM)938などの不揮発性の形体になってい
る。スタートアップ時のときのように、コンピュータ9
30内のエレメント間で情報を転送するのを支援する基
本ルーチンからなる、基本入出力システム(basic
input/output system) 942
は、ROM938に格納されている。RAM 940
は、プロセッサ932によって即時にアクセス可能であ
る、および/または現在操作可能であるデータおよび/
またはプログラムモジュールを格納しているのが代表的
である。
外し可能/取り外し不能、揮発性/不揮発性コンピュー
タ記憶媒体を装備することも可能である。図9には、取
り外し不能、不揮発性磁気媒体との間で読み書きするハ
ードディスクドライブ944(これは、図には示されて
いないが、「ハードドライブ」とも呼ばれている)、取
り外し可能、不揮発性磁気ディスク948(例えば、
「フロッピディスク」)との間で読み書きする磁気ディ
スクドライブ946、およびCD−ROM、DVD−R
OM、その他の光媒体などの取り外し可能、不揮発性光
ディスク952との間で読み書きする光ディスクドライ
ブ950が示されているが、これらは一例にすぎない。
ハードディスクドライブ944、磁気ディスクドライブ
946、および光ディスクドライブ950は、それぞれ
1または2以上のインタフェースを通してバス936に
接続されている。
ータ読取可能媒体は、コンピュータ読取可能命令、デー
タ構造、プログラムモジュール、および他のデータを、
コンピュータ930のために永続的(不揮発性)に保存
している。ここで説明している例示の環境は、ハードデ
ィスク、取り外し可能磁気ディスク948および取り外
し可能光ディスク952を採用しているが、この分野の
精通者ならば当然に理解されるように、コンピュータが
アクセスできるデータを、他のタイプのコンピュータ読
取可能媒体に保管しておくことも可能である。そのよう
なものとしては、磁気カセット、フラッシュメモリカー
ド、デジタルビデオディスク、ランダムアクセスメモリ
(RAM)、リードオンリメモリ (ROM)などが
あり、これらも例示の動作環境で使用することができ
る。
ドディスク、磁気ディスク948、光ディスク952、
ROM 938またはRAM 940に格納しておくこ
とも可能であり、そのようなものの例としては、オペレ
ーティングシステム958、1または2以上のアプリケ
ーションプログラム960、他のプログラムモジュール
962、およびプログラムデータ964があるが、これ
らに限定されない。
ングデバイス968(「マウス」など)などの入力デバ
イスを通してコマンドおよび情報をコンピュータ930
に入力することができる。その他の入力デバイス(図示
せず)としては、マイクロホン、ジョイスティック、ゲ
ームパッド、サテライトディッシュ、シリアルポート、
スキャナなどがある。上記および他の入力デバイスは、
バス936に結合されたユーザ入力インタフェース97
0を通して処理ユニット932に接続されているが、パ
ラレルポート、ゲームポート、ユニバーサルシリアルバ
ス (universal serial bus −
USB) などの、他のインタフェースおよびバス構
造で接続することも可能である。
デバイスも、ビデオアダプタ974などのインタフェー
スを通してバス936に接続されている。モニタのほか
に、パーソナルコンピュータは、スピーカやプインタな
どの他の周辺出力デバイス(図せず)を装備しているの
が代表的であり、これらは出力周辺インタフェース97
5を通して接続可能になっている。
ータ982などの、1または2以上のリモートコンピュ
ータとの論理的コネクションを使用したネットワーキン
グ環境で動作させることができる。リモートコンピュー
タ982は、コンピュータ930に関連して上述したエ
レメントと特徴の多くまたはすべてを具備することがで
きる。
カルエリアネットワーク (local area n
etwork LAN) 977と一般的な広域ネッ
トワーク (wide area network
WAN) 979である。このようなネットワーキング
環境は、オフィス、企業内コンピュータネットワーク、
イントラネット、およびインターネット (the I
nternet) で普及されている。
ときは、コンピュータ930はLAN977のネットワ
ークインタフェースまたはアダプタ986に接続されて
いる。WANネットワーキング環境で使用されるとき
は、コンピュータは、WAN979上のコミュニケーシ
ョンを確立するためのモデム978または他の手段を装
備しているのが代表的である。モデム978は内蔵され
ているものと、外付けのものとがあるが、どちらも、ユ
ーザ入力インタフェース970または他の該当メカニズ
ムを通してシステムバス936に接続可能になってい
る。
たWANの構築例である。インターネット上では、コン
ピュータ930は、インターネット980上のコミュニ
ケーションを確立するためのモデム978または他の手
段を装備しているのが代表的である。モデム978は内
蔵されているものと、外付けのものとがあるが、どちら
も、インタフェース970を通してバス936に接続さ
れている。
ンピュータ930に関連して示されているプログラムモ
ジュールまたはその一部は、リモートのメモリストレー
ジデバイスに格納しておくことができる。一例として、
図9に示されているリモートアプリケーションプログラ
ムは、リモートコンピュータ982のメモリデバイスに
置かれているが、これに限定されない。理解されるよう
に、図示し、上述してきたネットワークコネクションは
例示であり、コンピュータ間の通信リンクを確立する他
の手段を使用することも可能である。
る動作環境920の例を示す。具体的には、例示のバン
ド幅メータは、図9では、任意のプログラム960−9
62またはオペレーティングシステム958によって実
現されている。
例にすぎず、ここで説明されているバンド幅メータが使
用される範囲または機能する範囲が限定されることを意
味するものではない。バンド幅メータで使用するのに適
している、他の周知のコンピューティングシステム、環
境、および/または構成としては、パーソナルコンピュ
ータ、サーバコンピュータ、ハンドヘルドまたはラップ
トップデバイス、マルチプロセッサシステム、マイクロ
プロセッサベースシステム、プログラマブルコンシュー
マエレクトロニクス、ネットワークPC、ミニコンピュ
ータ、メインフレームコンピュータ、上記システムまた
はデバイスを含んでいる分散コンピューティング環境な
どがあるが、これらに限定されない。
のように、1または2以上のコンピュータまたは他のデ
バイスによって実行されるコンピュータ実行可能命令を
広い意味でとらえて説明することができる。一般的に、
プログラムモジュールとしては、特定のタスクを実行す
る、または特定の抽象データ型を実装しているルーチ
ン、プログラム、オブジェクト、コンポーネント、デー
タ構造などがある。代表例として、プログラムモジュー
ルの機能は、種々の実施形態において必要に応じて結合
し、あるいは分散化することができる。
読取可能媒体に保管しておくことも、媒体間で受け渡し
することも可能である。コンピュータ読取可能媒体は、
コンピュータによってアクセス可能であれば、どのよう
な利用可能な媒体にもすることができる。例を挙げる
と、コンピュータ読取可能媒体としては、コンピュータ
記憶媒体と通信媒体があるが、これに限定されない。
ータ読取可能命令、データ構造、プログラムモジュー
ル、他のデータなどの情報を格納するためにいずれかの
方法またはテクノロジで実現された揮発性と不揮発性、
取り外し可能と取り外し不能媒体がある。コンピュータ
記憶媒体としては、RAM、ROM、EEPROM、フ
ラッシュメモリや他のメモリテクノロジ、CD−RO
M、デジタルバーサタイルディスク (digital
versatile disk DVD)や他の光
ストレージ、磁気カセット、磁気テープ、磁気ディスク
ストレージや他の磁気ストレージデバイス、または必要
とする情報を保管しておくために使用でき、コンピュー
タによってアクセス可能な他の媒体があるが、これらに
限定されない。
データ構造、プログラムモジュール、あるいは他のデー
タを、搬送波などの変調データ信号または他のトランス
ポートメカニズムの形で具現化しているのが代表的であ
り、その中には、情報配達媒体が含まれている。ここで
「変調データ信号(modulated datasi
gnal)」とは、その特性1つまたは2つ以上が、信
号の中の情報を符号化(エンコード)するような形でセ
ットまたは変更されている信号のことである。例を挙げ
ると、通信媒体には、ワイヤドネットワークや直接ワイ
ヤドコネクションなどのワイヤド媒体、音響、RF、赤
外線、その他のワイヤレス媒体のようなワイヤレス媒体
があるが、これらに限定されない。上記を任意に組み合
わせたものも、コンピュータ読取可能媒体の範囲に含ま
れている。
定を、構造上の特徴および/または方法で表したステッ
プに特有の表現で説明してきたが、当然に理解されるよ
うに、請求項に明確化されている、TCPネットワーク
環境におけるバンド幅の高速動的測定は、必ずしも上述
した具体的特徴またはステップに限定されるものではな
い。むしろ、具体的特徴とステップは、請求項に記載
の、TCPネットワーク環境におけるバンド幅の高速動
的測定を実現する好適形態として開示されている。
Nagle アルゴリズムの適用を禁止すること、「プ
ッシュ」パケットをパケットペアの直後に送信すること
によってパケットのバッファリングを最小限にするこ
と、およびダミーパケットで初期化(プライミング)す
ることによってSlow Start アルゴリズムを
回避する。
ネットなど)およびサーバからクライアントに送信され
るデータパケットのルーティングと遅延を示す図であ
る。
り、このカッタウェイには、バンド幅を選択するための
メカニズムをユーザに提供するユーザインタフェースが
示されている。また、そこには、バンド幅を判断するた
めの従来の手法が示されている。
(サーバからクライアントに送信される)を示す図であ
る。
ネットなど)を示す図であり、そこには、バックツーバ
ックで送信されるペアのパケットが示されている。
フローチャートである。
法で実現した具体例の詳細を示すフローチャートであ
る。
した具体例の詳細を示すフローチャートである。
した具体例の詳細を示すフローチャートである。
ューティング動作環境の例を示す図である。
P) 282 リンク 284 プロキシサーバ 290、292 クライアント
Claims (38)
- 【請求項1】 ネットワーク上のエンティティ間の高速
パケット通信を容易化する方法であって、 ディレイディスエーブル (delay−disabl
e) コマンドを送信し、 パケット集合を送信側エンティティから受信側エンティ
ティに送信することを特徴とする方法。 - 【請求項2】 請求項1に記載の方法において、パケッ
ト集合はバックツーバックで送信される2つのパケット
を含むことを特徴とする方法。 - 【請求項3】 請求項1に記載の方法において、パケッ
ト集合は、第1バンド幅測定パケットと第2バンド幅測
定パケットとを含み、第2パケットは第1パケットの直
後に送信されることを特徴とする方法。 - 【請求項4】 請求項1に記載の方法において、ネット
ワークはTCPであることを特徴とする方法。 - 【請求項5】 請求項1に記載の方法において、ディレ
イディスエーブルコマンドは、ネットワーク上の1また
は2以上の通信デバイス上のNagle アルゴリズム
を使用禁止にすることを特徴とする方法。 - 【請求項6】 請求項1に記載の方法において、ディレ
イディスエーブルコマンドはTCP_NODELAYで
あることを特徴とする方法。 - 【請求項7】 コンピュータによって実行されたとき、
請求項1に記載の方法をOSIモデルに準拠するアプリ
ケーション層で実行するコンピュータ実行可能命令を実
装していることを特徴とするプログラムモジュール。 - 【請求項8】 コンピュータによって実行されたとき、
請求項1に記載の方法を実行するコンピュータ実行可能
命令を収めていることを特徴とするコンピュータ読取可
能媒体。 - 【請求項9】 ネットワーク上のエンティティ間の高速
パケット通信を容易化する方法であって、 パケット集合を送信側エンティティから受信側エンティ
ティに送信し、この場合、パケット集合に含まれるパケ
ット間の伝送遅延は許容限度を超えており、 前記の直後に、パケット集合に含まれるパケット間の伝
送遅延を警告するために少なくとも1つの「プッシュ」
パケットを送信し、この場合、前記遅延はネットワーク
上の通信デバイスのパケットバッファリングが原因であ
ることを特徴とする方法。 - 【請求項10】 請求項9に記載の方法において、パケ
ット集合は、バックツーバックで送信される2つのパケ
ットを含むことを特徴とする方法。 - 【請求項11】 請求項9に記載の方法において、パケ
ット集合は送信側エンティティと受信側エンティティ間
のバンド幅を測定するためのバンド幅測定パケットであ
ることを特徴とする方法。 - 【請求項12】 請求項9に記載の方法において、通信
デバイスはプロキシサーバであることを特徴とする方
法。 - 【請求項13】 請求項9に記載の方法において、ネッ
トワークはTCPであることを特徴とする方法。 - 【請求項14】 コンピュータによって実行されたと
き、請求項9に記載の方法をOSIモデルに準拠するア
プリケーション層で実行するコンピュータ実行可能命令
を実装していることを特徴とするプログラムモジュー
ル。 - 【請求項15】 コンピュータによって実行されたと
き、請求項9に記載の方法を実行するコンピュータ実行
可能命令を収めていることを特徴とするコンピュータ読
取可能媒体。 - 【請求項16】 ネットワーク上のエンティティ間の高
速パケット通信を容易化する方法であって、 パケット集合を送信側エンティティから受信側エンティ
ティに送信し、この場合、パケット集合に含まれるパケ
ット間の伝送遅延は許容限度を超えており、 前記の直後に、パケット集合に含まれるパケット間の伝
送遅延を警告するために少なくとも1つの「プライミン
グ」パケットを送信し、この場合、前記遅延はネットワ
ーク上の通信デバイスのフロー制御機能が原因であるこ
とを特徴とする方法。 - 【請求項17】 請求項16に記載の方法において、パ
ケット集合は、バックツーバックで送信される2つのパ
ケットを含むことを特徴とする方法。 - 【請求項18】 請求項16に記載の方法において、パ
ケット集合は送信側エンティティと受信側エンティティ
間のバンド幅を測定するためのバンド幅測定パケットで
あることを特徴とする方法。 - 【請求項19】 請求項16に記載の方法において、ネ
ットワークはTCPであることを特徴とする方法。 - 【請求項20】 請求項16に記載の方法において、送
信側エンティティから受信側エンティティへの間にTC
Pコネクションを確立するステップをさらに含み、確立
するステップはパケット集合が送信される直前に行われ
ることを特徴とする方法。 - 【請求項21】 請求項16に記載の方法において、フ
ロー制御機能はSlow Start アルゴリズムで
あることを特徴とする方法。 - 【請求項22】 コンピュータによって実行されたと
き、請求項16に記載の方法をOSIモデルに準拠する
アプリケーション層で実行するコンピュータ実行可能命
令を実装していることを特徴とするプログラムモジュー
ル。 - 【請求項23】 コンピュータによって実行されたと
き、請求項16に記載の方法を実行するコンピュータ実
行可能命令を収めていることを特徴とするコンピュータ
読取可能媒体。 - 【請求項24】 ネットワーク上の2エンティティ間の
バンド幅測定を容易化する方法であって、 ディレイディスエーブル (delay−disabl
e) コマンドを送信し、 送信側エンティティから受信側エンティティにペアのバ
ンド幅測定パケットを送信することを特徴とする方法。 - 【請求項25】 請求項24に記載の方法において、ペ
アのパケットに関係する測定に基づくバンド幅計算を受
信するステップをさらに含むことを特徴とする方法。 - 【請求項26】 ネットワーク上のエンティティ間のバ
ンド幅測定を容易化する方法であって、 ペアのパケットを送信側エンティティから受信側エンテ
ィティに送信し、この場合、ペアに含まれるパケット間
の伝送遅延は許容限度を超えており、 前記の直後に、ペアに含まれるパケット間の伝送遅延を
警告するために少なくとも1つの「プッシュ」パケット
を送信し、この場合、前記遅延はネットワーク上の通信
デバイスのパケットバッファリングが原因であることを
特徴とする方法。 - 【請求項27】 請求項26に記載の方法において、ペ
アのパケットに関係する測定に基づくバンド幅計算を受
信することを特徴とする方法。 - 【請求項28】 ネットワーク上のエンティティ間のバ
ンド幅測定を容易化する方法であって、 ペアのパケットを送信側エンティティから受信側エンテ
ィティに送信し、この場合、ペアに含まれるパケット間
の伝送遅延は許容限度を超えており、 前記の直後に、ペアに含まれるパケット間の伝送遅延を
警告するために少なくとも1つの「プライミング」パケ
ットを送信し、この場合、前記遅延はネットワーク上の
通信デバイスのフロー制御機能が原因であることを特徴
とする方法。 - 【請求項29】 請求項28に記載の方法において、ペ
アのパケットに関係する測定に基づくバンド幅計算を受
信するステップをさらに含むことを特徴とする方法。 - 【請求項30】 コンピュータによって実行されたと
き、ネットワーク上のエンティティ間の高速パケット通
信を高速化する方法を実行するコンピュータ実行可能命
令を収めているコンピュータ読取可能媒体であって、前
記方法は、 ディレイディスエーブル (delay−disabl
e) コマンドを送信し、 送信側エンティティから受信側エンティティにパケット
集合を送信することを特徴とするコンピュータ読取可能
媒体。 - 【請求項31】 コンピュータによって実行されたと
き、ネットワーク上のエンティティ間の高速パケット通
信を高速化する方法を実行するコンピュータ実行可能命
令を収めているコンピュータ読取可能媒体であって、前
記方法は、 パケット集合を送信側エンティティから受信側エンティ
ティに送信し、この場合、パケット集合に含まれるパケ
ット間の伝送遅延は許容限度を超えており、 前記の直後に、パケット集合に含まれるパケット間の伝
送遅延を警告するために少なくとも1つの「プッシュ」
パケットを送信し、この場合、前記遅延はネットワーク
上の通信デバイスのパケットバッファリングが原因であ
ることを特徴とするコンピュータ読取可能媒体。 - 【請求項32】 コンピュータによって実行されたと
き、ネットワーク上のエンティティ間の高速パケット通
信を高速化する方法を実行するコンピュータ実行可能命
令を収めているコンピュータ読取可能媒体であって、前
記方法は、パケット集合を送信側エンティティから受信
側エンティティに送信し、この場合、パケット集合に含
まれるパケット間の伝送遅延は許容限度を超えており、 前記の直後に、パケット集合に含まれるパケット間の伝
送遅延を警告するために少なくとも1つの「プライミン
グ」パケットを送信し、この場合、前記遅延はネットワ
ーク上の通信デバイスのフロー制御機能が原因であるこ
とを特徴とするコンピュータ読取可能媒体。 - 【請求項33】 プロセッサと、プロセッサ上で実行可
能な伝送遅延アボイダとを備えた装置であって、前記伝
送遅延アボイダは、 ディレイディスエーブル (delay−disabl
e) コマンドを送信し、 送信側エンティティから受信側エンティティにパケット
集合を送信することを特徴とする装置。 - 【請求項34】 プロセッサと、プロセッサ上で実行可
能な伝送遅延アボイダとを備えた装置であって、前記伝
送遅延アボイダは、 パケット集合を送信側エンティティから受信側エンティ
ティに送信し、この場合、パケット集合に含まれるパケ
ット間の伝送遅延は許容限度を超えており、 前記の直後に、パケット集合に含まれるパケット間の伝
送遅延を警告するために少なくとも1つの「プッシュ」
パケットを送信し、この場合、前記遅延はネットワーク
上の通信デバイスのパケットバッファリングが原因であ
ることを特徴とする装置。 - 【請求項35】 プロセッサと、プロセッサ上で実行可
能な伝送遅延アボイダとを備えた装置であって、前記伝
送遅延アボイダは、 パケット集合を送信側エンティティから受信側エンティ
ティに送信し、この場合、パケット集合に含まれるパケ
ット間の伝送遅延は許容限度を超えており、 前記の直後に、パケット集合に含まれるパケット間の伝
送遅延を警告するために少なくとも1つの「プライミン
グ」パケットを送信し、この場合、前記遅延はネットワ
ーク上の通信デバイスのフロー制御機能が原因であるこ
とを特徴とする装置。 - 【請求項36】 データフィールドがそこに符号化され
ていて、通信チャネル上を伝送される変調データ信号で
あって、 ディレイディスエーブル (delay−disabl
e) コマンドを含んでいる第1フィールドと、 第1バンド幅測定パケットを含んでいる第2フィールド
と、 第2バンド幅パケットを含んでいる第3フィールドと、
を備えていることを特徴とする変調データ信号。 - 【請求項37】 データフィールドがそこに符号化され
ていて、通信チャネル上を伝送される変調データ信号で
あって、 第1バンド幅測定パケットを含んでいる第1フィールド
と、 第1バンド幅測定パケットを含んでいる第2フィールド
と、 第1パケットと第2パケット間の伝送遅延の最小限化を
容易にする「プッシュ」パケットを含んでいる第3フィ
ールドとを備え、前記遅延はネットワーク上の通信デバ
イスのパケットバッファリングが原因であることを特徴
とする変調データ信号。 - 【請求項38】 データフィールドがそこに符号化され
ていて、通信チャネル上を伝送される変調データ信号で
あって、 「プライミング」パケットを含んでいる第1フィールド
と、 第1バンド幅測定パケットを含んでいる第2フィールド
と、 第2バンド幅測定パケットを含んでいる第3フィールド
とを備え、前記「プライミング」パケットはパケット間
の伝送遅延の最小限化を容易にし、前記遅延はネットワ
ーク上の通信デバイスのフロー制御機能が原因であるこ
とを特徴とする変調データ信号。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/635988 | 2000-08-09 | ||
US09/635,988 US7266613B1 (en) | 2000-08-09 | 2000-08-09 | Fast dynamic measurement of bandwidth in a TCP network environment |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2002094567A true JP2002094567A (ja) | 2002-03-29 |
JP2002094567A5 JP2002094567A5 (ja) | 2008-09-25 |
JP4806141B2 JP4806141B2 (ja) | 2011-11-02 |
Family
ID=24549933
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001242612A Expired - Fee Related JP4806141B2 (ja) | 2000-08-09 | 2001-08-09 | Tcpネットワーク環境におけるバンド幅の高速動的測定 |
Country Status (5)
Country | Link |
---|---|
US (5) | US7266613B1 (ja) |
EP (4) | EP1912393B1 (ja) |
JP (1) | JP4806141B2 (ja) |
AT (4) | ATE400947T1 (ja) |
DE (4) | DE60134793D1 (ja) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2005277949A (ja) * | 2004-03-25 | 2005-10-06 | Sony Corp | 送信装置および方法、受信装置および方法、記録媒体、並びにプログラム |
US7274740B2 (en) | 2003-06-25 | 2007-09-25 | Sharp Laboratories Of America, Inc. | Wireless video transmission system |
JP2009231857A (ja) * | 2008-03-19 | 2009-10-08 | Sony Corp | 通信制御装置、通信制御方法および通信制御プログラム |
US7652994B2 (en) | 2006-03-31 | 2010-01-26 | Sharp Laboratories Of America, Inc. | Accelerated media coding for robust low-delay video streaming over time-varying and bandwidth limited channels |
US7784076B2 (en) | 2004-10-30 | 2010-08-24 | Sharp Laboratories Of America, Inc. | Sender-side bandwidth estimation for video transmission with receiver packet buffer |
US7797723B2 (en) | 2004-10-30 | 2010-09-14 | Sharp Laboratories Of America, Inc. | Packet scheduling for video transmission with sender queue control |
US8018850B2 (en) | 2004-02-23 | 2011-09-13 | Sharp Laboratories Of America, Inc. | Wireless video transmission system |
US8861597B2 (en) | 2006-09-18 | 2014-10-14 | Sharp Laboratories Of America, Inc. | Distributed channel time allocation for video streaming over wireless networks |
US9325998B2 (en) | 2003-09-30 | 2016-04-26 | Sharp Laboratories Of America, Inc. | Wireless video transmission system |
US9544602B2 (en) | 2005-12-30 | 2017-01-10 | Sharp Laboratories Of America, Inc. | Wireless video transmission system |
Families Citing this family (84)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7266613B1 (en) * | 2000-08-09 | 2007-09-04 | Microsoft Corporation | Fast dynamic measurement of bandwidth in a TCP network environment |
US7353289B2 (en) | 2000-11-06 | 2008-04-01 | Telecommunication Systems, Inc. | System for an open architecture development platform with centralized synchronization |
US7150045B2 (en) * | 2000-12-14 | 2006-12-12 | Widevine Technologies, Inc. | Method and apparatus for protection of electronic media |
US7606909B1 (en) * | 2001-02-20 | 2009-10-20 | Michael Ely | Method and apparatus for a business contact center |
US20020169880A1 (en) * | 2001-04-19 | 2002-11-14 | Koninklijke Philips Electronics N.V. | Method and device for robust real-time estimation of the bottleneck bandwidth in the internet |
US7376967B1 (en) | 2002-01-14 | 2008-05-20 | F5 Networks, Inc. | Method and system for performing asynchronous cryptographic operations |
US7979528B2 (en) * | 2002-03-27 | 2011-07-12 | Radvision Ltd. | System and method for traversing firewalls, NATs, and proxies with rich media communications and other application protocols |
EP1497955B1 (en) * | 2002-04-19 | 2010-06-09 | Telefonaktiebolaget LM Ericsson (publ) | Method and devices for adaptative proxying of flows |
US7525923B2 (en) * | 2002-06-28 | 2009-04-28 | Ntt Docomo, Inc. | Catprobe |
US7729268B2 (en) | 2002-06-28 | 2010-06-01 | Ntt Docomo, Inc. | Method and apparatus for quality of service determination |
US7802008B2 (en) * | 2002-08-12 | 2010-09-21 | Matsushita Electric Industrial Co., Ltd. | Quality of service management in network gateways |
US7430755B1 (en) | 2002-09-03 | 2008-09-30 | Fs Networks, Inc. | Method and system for providing persistence in a secure network access |
US7221685B2 (en) | 2002-12-13 | 2007-05-22 | Sbc Properties, L.P. | Method and system relating to bandwidth utilization |
US7650421B2 (en) * | 2002-12-30 | 2010-01-19 | Microsoft Corporation | Adaptable accelerated content streaming |
US7107420B2 (en) * | 2003-08-29 | 2006-09-12 | International Business Machines Corporation | Apparatus and method to adjust data transfer rate |
US9614772B1 (en) | 2003-10-20 | 2017-04-04 | F5 Networks, Inc. | System and method for directing network traffic in tunneling applications |
US20080259813A1 (en) * | 2004-03-09 | 2008-10-23 | Johnny Mikhael Matta | Method and apparatus for quality of service determination |
US7925775B2 (en) * | 2004-04-07 | 2011-04-12 | Sony Corporation | TCP congestion control based on bandwidth estimation techniques |
US20060049234A1 (en) * | 2004-05-21 | 2006-03-09 | Flak Richard A | Friction stirring and its application to drill bits, oil field and mining tools, and components in other industrial applications |
US20050265235A1 (en) * | 2004-05-27 | 2005-12-01 | International Business Machines Corporation | Method, computer program product, and data processing system for improving transaction-oriented client-server application performance |
US7080173B2 (en) | 2004-05-27 | 2006-07-18 | Microsoft Corporation | Reducing information reception delays |
US8024483B1 (en) | 2004-10-01 | 2011-09-20 | F5 Networks, Inc. | Selective compression for network connections |
US8356327B2 (en) | 2004-10-30 | 2013-01-15 | Sharp Laboratories Of America, Inc. | Wireless video transmission system |
US7440419B2 (en) * | 2005-01-27 | 2008-10-21 | International Business Machines Corporation | Methods for detecting nagling on a TCP network connection |
US7526531B2 (en) * | 2005-01-27 | 2009-04-28 | International Business Machines Corporation | Methods for detecting outbound nagling on a TCP network connection |
US7545749B2 (en) * | 2005-02-15 | 2009-06-09 | Microsoft Corporation | High-accuracy packet pair for network bottleneck bandwidth measurement |
KR20060100512A (ko) * | 2005-03-17 | 2006-09-21 | 삼성전자주식회사 | 전송제어 프로토콜 기반의 네트워크에서 평균 대역폭 추정방법 및 시스템 |
US8418233B1 (en) | 2005-07-29 | 2013-04-09 | F5 Networks, Inc. | Rule based extensible authentication |
US8533308B1 (en) | 2005-08-12 | 2013-09-10 | F5 Networks, Inc. | Network traffic management through protocol-configurable transaction processing |
US8621078B1 (en) | 2005-08-15 | 2013-12-31 | F5 Networks, Inc. | Certificate selection for virtual host servers |
GB2429593A (en) | 2005-08-26 | 2007-02-28 | Electrosonic Ltd | Data compressing using a wavelet compression scheme |
US8065733B2 (en) * | 2005-09-23 | 2011-11-22 | Google, Inc. | Method for evolving detectors to detect malign behavior in an artificial immune system |
WO2007038245A2 (en) | 2005-09-23 | 2007-04-05 | Widevine Technologies, Inc. | Method for evolving detectors to detect malign behavior in an artificial immune system |
US7873065B1 (en) * | 2006-02-01 | 2011-01-18 | F5 Networks, Inc. | Selectively enabling network packet concatenation based on metrics |
US8565088B1 (en) | 2006-02-01 | 2013-10-22 | F5 Networks, Inc. | Selectively enabling packet concatenation based on a transaction boundary |
US7765307B1 (en) * | 2006-02-28 | 2010-07-27 | Symantec Operating Corporation | Bulk network transmissions using multiple connections primed to optimize transfer parameters |
US8375421B1 (en) | 2006-03-02 | 2013-02-12 | F5 Networks, Inc. | Enabling a virtual meeting room through a firewall on a network |
US8572219B1 (en) | 2006-03-02 | 2013-10-29 | F5 Networks, Inc. | Selective tunneling based on a client configuration and request |
US8782393B1 (en) | 2006-03-23 | 2014-07-15 | F5 Networks, Inc. | Accessing SSL connection data by a third-party |
FR2900017B1 (fr) * | 2006-04-12 | 2008-10-31 | Arteris Sa | Systeme d'interconnexions de blocs fonctionnels externes sur puce muni d'un unique protocole parametrable de communication |
FR2901437B1 (fr) * | 2006-05-16 | 2008-08-08 | Arteris Sa | Procede de realisation d'un circuit de synchronisation de donnees echangees de maniere asynchrone entre deux blocs synchrones, et circuit de synchronisation elabore a partir d'un tel procede |
FR2902957B1 (fr) * | 2006-06-23 | 2008-09-12 | Arteris Sa | Systeme et procede de gestions de messages transmis dans un reseau d'interconnexions |
FR2904445B1 (fr) * | 2006-07-26 | 2008-10-10 | Arteris Sa | Systeme de gestion de messages transmis dans un reseau d'interconnexions sur puce |
EP2084864A1 (en) * | 2006-10-24 | 2009-08-05 | Medianet Innovations A/S | Method and system for firewall friendly real-time communication |
US7652993B2 (en) | 2006-11-03 | 2010-01-26 | Sharp Laboratories Of America, Inc. | Multi-stream pro-active rate adaptation for robust video transmission |
CN101188601B (zh) * | 2006-11-15 | 2011-03-16 | 中兴通讯股份有限公司 | 一种多媒体数据快速发送和接收的方法 |
GB2446195B (en) * | 2007-02-01 | 2011-07-27 | Wecomm Ltd | Data transmission |
US9106606B1 (en) | 2007-02-05 | 2015-08-11 | F5 Networks, Inc. | Method, intermediate device and computer program code for maintaining persistency |
US8139487B2 (en) * | 2007-02-28 | 2012-03-20 | Microsoft Corporation | Strategies for selecting a format for data transmission based on measured bandwidth |
US8171135B2 (en) * | 2007-07-12 | 2012-05-01 | Viasat, Inc. | Accumulator for prefetch abort |
US7782794B2 (en) * | 2007-07-12 | 2010-08-24 | Viasat, Inc. | Methods and systems for bandwidth measurement techniques |
US8549099B2 (en) * | 2007-07-12 | 2013-10-01 | Viasat, Inc. | Methods and systems for javascript parsing |
US20090016222A1 (en) * | 2007-07-12 | 2009-01-15 | Viasat, Inc. | Methods and systems for implementing time-slice flow control |
US8966053B2 (en) * | 2007-07-12 | 2015-02-24 | Viasat, Inc. | Methods and systems for performing a prefetch abort operation for network acceleration |
US20100146415A1 (en) * | 2007-07-12 | 2010-06-10 | Viasat, Inc. | Dns prefetch |
US8245287B2 (en) | 2007-10-01 | 2012-08-14 | Viasat, Inc. | Server message block (SMB) security signatures seamless session switch |
US8743284B2 (en) * | 2007-10-08 | 2014-06-03 | Motorola Mobility Llc | Synchronizing remote audio with fixed video |
US9654328B2 (en) | 2007-10-15 | 2017-05-16 | Viasat, Inc. | Methods and systems for implementing a cache model in a prefetching system |
CN101316157B (zh) * | 2008-01-17 | 2010-12-22 | 上海交通大学 | 基于浮点窗口增量因子的自适应包长方法 |
US8325800B2 (en) | 2008-05-07 | 2012-12-04 | Microsoft Corporation | Encoding streaming media as a high bit rate layer, a low bit rate layer, and one or more intermediate bit rate layers |
US8379851B2 (en) | 2008-05-12 | 2013-02-19 | Microsoft Corporation | Optimized client side rate control and indexed file layout for streaming media |
US7925774B2 (en) | 2008-05-30 | 2011-04-12 | Microsoft Corporation | Media streaming using an index file |
US9832069B1 (en) | 2008-05-30 | 2017-11-28 | F5 Networks, Inc. | Persistence based on server response in an IP multimedia subsystem (IMS) |
US9130846B1 (en) | 2008-08-27 | 2015-09-08 | F5 Networks, Inc. | Exposed control components for customizable load balancing and persistence |
US8265140B2 (en) | 2008-09-30 | 2012-09-11 | Microsoft Corporation | Fine-grained client-side control of scalable media delivery |
BRPI0919932A8 (pt) | 2008-10-24 | 2018-02-06 | Novartis Ag | Pirrolina-carbóxi-lisina gerada biossinteticamente, bem como processo para preparar método para derivatizar uma proteína |
US20100180082A1 (en) * | 2009-01-12 | 2010-07-15 | Viasat, Inc. | Methods and systems for implementing url masking |
US8966374B1 (en) * | 2009-03-30 | 2015-02-24 | Glance Networks, Inc. | Method and apparatus for enabling participants to assume control over a presentation in a remote viewing session |
US8639836B2 (en) * | 2009-06-29 | 2014-01-28 | International Business Machines Corporation | Smart nagling in a TCP connection |
US8274886B2 (en) * | 2009-10-28 | 2012-09-25 | At&T Intellectual Property I, L.P. | Inferring TCP initial congestion window |
US8700892B2 (en) | 2010-03-19 | 2014-04-15 | F5 Networks, Inc. | Proxy SSL authentication in split SSL for client-side proxy agent resources with content insertion |
US8879571B2 (en) | 2011-11-01 | 2014-11-04 | Hewlett-Packard Development Company, L.P. | Delays based on packet sizes |
WO2013091180A1 (zh) * | 2011-12-21 | 2013-06-27 | 华为技术有限公司 | 文件初始传输速率的确定方法、装置和系统 |
US9386128B2 (en) * | 2012-03-23 | 2016-07-05 | Qualcomm Incorporated | Delay based active queue management for uplink traffic in user equipment |
KR102197248B1 (ko) | 2012-07-19 | 2020-12-31 | 글랜스 네트웍스, 인크 | 다른 형태의 정보 공유를 통한 코브라우징의 통합 |
RU2530663C2 (ru) * | 2012-11-16 | 2014-10-10 | Открытое Акционерное Общество "Информационные Технологии И Коммуникационные Системы" | Способ передачи данных в цифровых сетях передачи данных по протоколу тср/ip через нттр |
US9148379B1 (en) * | 2013-01-09 | 2015-09-29 | “Intermind” société à responsabilité limitée | Method and system for prioritizing audio traffic in IP networks |
CN105075202B (zh) | 2013-03-28 | 2019-07-12 | 英国电讯有限公司 | 用于在分组网络中处理分组的方法、节点和分组网络 |
CN105207828A (zh) * | 2014-05-29 | 2015-12-30 | 国基电子(上海)有限公司 | 路由器及其测量上行频宽的方法 |
EP3332522B8 (en) | 2015-08-06 | 2019-07-31 | British Telecommunications public limited company | Data packet network |
US10645016B2 (en) | 2015-08-06 | 2020-05-05 | British Telecommunications Public Limited Company | Data packet network |
US9992252B2 (en) * | 2015-09-29 | 2018-06-05 | Rgb Systems, Inc. | Method and apparatus for adaptively compressing streaming video |
US11223689B1 (en) | 2018-01-05 | 2022-01-11 | F5 Networks, Inc. | Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof |
US11044350B1 (en) * | 2018-02-07 | 2021-06-22 | F5 Networks, Inc. | Methods for dynamically managing utilization of Nagle's algorithm in transmission control protocol (TCP) connections and devices thereof |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10150468A (ja) * | 1996-11-18 | 1998-06-02 | Fujitsu Ltd | 送信履歴ビットを持つデータ処理装置およびデータ通信方法 |
Family Cites Families (97)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US236902A (en) * | 1881-01-25 | Hugh a | ||
US605943A (en) * | 1898-06-21 | Balanced valve | ||
US3101A (en) * | 1843-05-26 | Ltjthbr jones | ||
US238902A (en) * | 1881-03-15 | Geoege m | ||
US47899A (en) * | 1865-05-23 | Improved tool for opening boxes | ||
US18799A (en) * | 1857-12-08 | Billiard-table cushion | ||
US48448A (en) * | 1865-06-27 | Improved heel-shave | ||
US90027A (en) * | 1869-05-11 | Improvement in lumber-driers | ||
US49817A (en) * | 1865-09-05 | Improvement in grain-registers | ||
US236912A (en) * | 1881-01-25 | Moses b | ||
JPH021671A (ja) * | 1988-03-17 | 1990-01-05 | Toshiba Corp | パケット交換機の負荷制御方式 |
US5057932A (en) | 1988-12-27 | 1991-10-15 | Explore Technology, Inc. | Audio/video transceiver apparatus including compression means, random access storage means, and microwave transceiver means |
US4963995A (en) | 1988-12-27 | 1990-10-16 | Explore Technology, Inc. | Audio/video transceiver apparatus including compression means |
US5164839A (en) | 1988-12-27 | 1992-11-17 | Explore Technology, Inc. | Method for handling audio/video source information |
US5262875A (en) | 1992-04-30 | 1993-11-16 | Instant Video Technologies, Inc. | Audio/video file server including decompression/playback means |
US5412782A (en) * | 1992-07-02 | 1995-05-02 | 3Com Corporation | Programmed I/O ethernet adapter with early interrupts for accelerating data transfer |
US5440334A (en) | 1993-02-01 | 1995-08-08 | Explore Technology, Inc. | Broadcast video burst transmission cyclic distribution apparatus and method |
US20020048448A1 (en) | 1993-03-29 | 2002-04-25 | Microsoft Corporation | Pausing the display of a television program as a signal including the television program is received |
CA2130395C (en) | 1993-12-09 | 1999-01-19 | David G. Greenwood | Multimedia distribution over wide area networks |
JPH07219774A (ja) | 1994-02-07 | 1995-08-18 | Fujitsu Ltd | データ処理装置および例外処理方法 |
US5978567A (en) | 1994-07-27 | 1999-11-02 | Instant Video Technologies Inc. | System for distribution of interactive multimedia and linear programs by enabling program webs which include control scripts to define presentation by client transceiver |
US5758076A (en) | 1995-07-19 | 1998-05-26 | International Business Machines Corporation | Multimedia server system having rate adjustable data retrieval based on buffer capacity |
US5787472A (en) | 1995-07-31 | 1998-07-28 | Ibm Corporation | Disk caching system for selectively providing interval caching or segment caching of vided data |
US5835495A (en) | 1995-10-11 | 1998-11-10 | Microsoft Corporation | System and method for scaleable streamed audio transmission over a network |
US6041345A (en) | 1996-03-08 | 2000-03-21 | Microsoft Corporation | Active stream format for holding multiple media streams |
US5931961A (en) | 1996-05-08 | 1999-08-03 | Apple Computer, Inc. | Discovery of acceptable packet size using ICMP echo |
US6658010B1 (en) | 1996-07-25 | 2003-12-02 | Hybrid Networks, Inc. | High-speed internet access system |
US5913038A (en) | 1996-12-13 | 1999-06-15 | Microsoft Corporation | System and method for processing multimedia data streams using filter graphs |
US6005621A (en) | 1996-12-23 | 1999-12-21 | C-Cube Microsystems, Inc. | Multiple resolution video compression |
US6014706A (en) | 1997-01-30 | 2000-01-11 | Microsoft Corporation | Methods and apparatus for implementing control functions in a streamed video display system |
US6292834B1 (en) | 1997-03-14 | 2001-09-18 | Microsoft Corporation | Dynamic bandwidth selection for efficient transmission of multimedia streams in a computer network |
US6118817A (en) | 1997-03-14 | 2000-09-12 | Microsoft Corporation | Digital video signal encoder and encoding method having adjustable quantization |
US6111567A (en) | 1997-04-03 | 2000-08-29 | Microsoft Corporation | Seamless multimedia branching |
US6209041B1 (en) | 1997-04-04 | 2001-03-27 | Microsoft Corporation | Method and computer program product for reducing inter-buffer data transfers between separate processing components |
US5963202A (en) | 1997-04-14 | 1999-10-05 | Instant Video Technologies, Inc. | System and method for distributing and managing digital video information in a video distribution network |
US6216163B1 (en) | 1997-04-14 | 2001-04-10 | Lucent Technologies Inc. | Method and apparatus providing for automatically restarting a client-server connection in a distributed network |
US6195692B1 (en) | 1997-06-02 | 2001-02-27 | Sony Corporation | Television/internet system having multiple data stream connections |
US6385647B1 (en) | 1997-08-18 | 2002-05-07 | Mci Communications Corporations | System for selectively routing data via either a network that supports Internet protocol or via satellite transmission network based on size of the data |
JPH11163947A (ja) | 1997-09-22 | 1999-06-18 | Toshiba Corp | ゲートウェイ装置、無線端末装置、ルータ装置および通信ネットワークのゲートウェイ制御方法 |
US5996015A (en) | 1997-10-31 | 1999-11-30 | International Business Machines Corporation | Method of delivering seamless and continuous presentation of multimedia data files to a target device by assembling and concatenating multimedia segments in memory |
JP3655071B2 (ja) | 1997-10-31 | 2005-06-02 | 株式会社ニデック | 眼屈折力測定装置 |
JP3235655B2 (ja) * | 1997-12-01 | 2001-12-04 | 日本電気株式会社 | バースト性をもつ低速汎用データの固定長パケット多重装置 |
US5983263A (en) | 1998-01-02 | 1999-11-09 | Intel Corporation | Method and apparatus for transmitting images during a multimedia teleconference |
US6161201A (en) | 1998-02-26 | 2000-12-12 | 3Com Corporation | Method and apparatus for concurrent interaction with a modem having an open connection |
US6327421B1 (en) | 1998-03-10 | 2001-12-04 | International Business Machines Corporation | Multiple speed fast forward/rewind compressed video delivery system |
US6054943A (en) | 1998-03-25 | 2000-04-25 | Lawrence; John Clifton | Multilevel digital information compression based on lawrence algorithm |
US6292880B1 (en) * | 1998-04-15 | 2001-09-18 | Inktomi Corporation | Alias-free content-indexed object cache |
US6314492B1 (en) | 1998-05-27 | 2001-11-06 | International Business Machines Corporation | System and method for server control of client cache |
US6421348B1 (en) * | 1998-07-01 | 2002-07-16 | National Semiconductor Corporation | High-speed network switch bus |
US6480498B1 (en) * | 1998-07-01 | 2002-11-12 | National Semiconductor Corporation | High speed network switch bus clock |
JP3602972B2 (ja) * | 1998-07-28 | 2004-12-15 | 富士通株式会社 | 通信性能測定装置及びその測定方法 |
US6502135B1 (en) * | 1998-10-30 | 2002-12-31 | Science Applications International Corporation | Agile network protocol for secure communications with assured system availability |
US6249844B1 (en) | 1998-11-13 | 2001-06-19 | International Business Machines Corporation | Identifying, processing and caching object fragments in a web environment |
US6553376B1 (en) | 1998-11-18 | 2003-04-22 | Infolibria, Inc. | Efficient content server using request redirection |
US6449269B1 (en) | 1998-12-31 | 2002-09-10 | Nortel Networks Limited | Packet voice telephony system and method |
US6351767B1 (en) * | 1999-01-25 | 2002-02-26 | International Business Machines Corporation | Method and system for automatically caching dynamic content based on a cacheability determination |
JP3587352B2 (ja) | 1999-02-04 | 2004-11-10 | 富士通株式会社 | ネットワーク通信性能測定方法及び装置並びにネットワーク通信性能測定プログラムを格納したコンピュータ読取り可能な記録媒体 |
US6405256B1 (en) | 1999-03-31 | 2002-06-11 | Lucent Technologies Inc. | Data streaming using caching servers with expandable buffers and adjustable rate of data transmission to absorb network congestion |
US6725333B1 (en) * | 1999-04-22 | 2004-04-20 | International Business Machines Corporation | System and method for managing cachable entities |
US6611868B1 (en) | 1999-05-21 | 2003-08-26 | 3Com Corporation | Method and system for automatic link hang up |
US6735634B1 (en) | 1999-06-10 | 2004-05-11 | Blue Coat Systems | Method for real time protocol media recording |
JP3463803B2 (ja) | 1999-11-09 | 2003-11-05 | 松下電器産業株式会社 | クラスタサーバ装置 |
US6643259B1 (en) * | 1999-11-12 | 2003-11-04 | 3Com Corporation | Method for optimizing data transfer in a data network |
US6779043B1 (en) * | 1999-11-16 | 2004-08-17 | National Semiconductor Corporation | Network address manager |
US6990070B1 (en) * | 1999-12-17 | 2006-01-24 | Nortel Networks Limited | Method and apparatus for adjusting packet transmission volume from a source |
US7051110B2 (en) | 1999-12-20 | 2006-05-23 | Matsushita Electric Industrial Co., Ltd. | Data reception/playback method and apparatus and data transmission method and apparatus for providing playback control functions |
US6329165B1 (en) | 1999-12-30 | 2001-12-11 | Nalco Chemical Company | Measurement and control of sessile and planktonic microbiological activity in industrial water systems |
US6389467B1 (en) | 2000-01-24 | 2002-05-14 | Friskit, Inc. | Streaming media search and continuous playback system of media resources located by multiple network addresses |
US6519648B1 (en) | 2000-01-24 | 2003-02-11 | Friskit, Inc. | Streaming media search and continuous playback of multiple media resources located on a network |
US7159233B2 (en) | 2000-01-28 | 2007-01-02 | Sedna Patent Services, Llc | Method and apparatus for preprocessing and postprocessing content in an interactive information distribution system |
US6643269B1 (en) * | 2000-03-03 | 2003-11-04 | Luminous Networks, Inc. | Routing switch automatically identifying network topology |
SE0000908L (sv) * | 2000-03-20 | 2001-09-21 | Ericsson Telefon Ab L M | Load regulation |
US6765878B1 (en) * | 2000-03-28 | 2004-07-20 | Intel Corporation | Selective use of transmit complete interrupt delay on small sized packets in an ethernet controller |
US7007090B1 (en) | 2000-03-31 | 2006-02-28 | Intel Corporation | Techniques of utilizing actually unused bandwidth |
US6952424B1 (en) * | 2000-04-13 | 2005-10-04 | International Business Machines Corporation | Method and system for network processor scheduling outputs using queueing |
US7266613B1 (en) | 2000-08-09 | 2007-09-04 | Microsoft Corporation | Fast dynamic measurement of bandwidth in a TCP network environment |
US6741648B2 (en) | 2000-11-10 | 2004-05-25 | Nokia Corporation | Apparatus, and associated method, for selecting an encoding rate by which to encode video frames of a video sequence |
US6407680B1 (en) | 2000-12-22 | 2002-06-18 | Generic Media, Inc. | Distributed on-demand media transcoding system and method |
US6611898B1 (en) | 2000-12-22 | 2003-08-26 | Convergys Customer Management Group, Inc. | Object-oriented cache management system and method |
US6772375B1 (en) * | 2000-12-22 | 2004-08-03 | Network Appliance, Inc. | Auto-detection of limiting factors in a TCP connection |
US7054949B2 (en) * | 2001-01-19 | 2006-05-30 | World Streaming Network, Inc. | System and method for streaming media |
WO2002078348A2 (en) | 2001-03-23 | 2002-10-03 | Popwire.Com | Method and apparatus for streaming video |
US20020194608A1 (en) | 2001-04-26 | 2002-12-19 | Goldhor Richard S. | Method and apparatus for a playback enhancement system implementing a "Say Again" feature |
US6742082B1 (en) * | 2001-06-12 | 2004-05-25 | Network Appliance | Pre-computing streaming media payload method and apparatus |
US7076560B1 (en) | 2001-06-12 | 2006-07-11 | Network Appliance, Inc. | Methods and apparatus for storing and serving streaming media data |
US7054911B1 (en) * | 2001-06-12 | 2006-05-30 | Network Appliance, Inc. | Streaming media bitrate switching methods and apparatus |
US6986018B2 (en) * | 2001-06-26 | 2006-01-10 | Microsoft Corporation | Method and apparatus for selecting cache and proxy policy |
US20020049817A1 (en) | 2001-07-12 | 2002-04-25 | Eatamar Drory | Storageless system and method for unified messaging on existing mail accounts via standard internet mail protocols |
US20030099364A1 (en) | 2001-11-28 | 2003-05-29 | Thompson Mark R. | Playback manipulation of HTTP streamed content objects |
US7133881B2 (en) * | 2002-04-29 | 2006-11-07 | Intel Corporation | Encoding and transferring media content onto removable storage |
US7457312B2 (en) | 2002-06-19 | 2008-11-25 | Microsoft Corporation | Bandwidth sharing in advanced streaming format |
US7451229B2 (en) | 2002-06-24 | 2008-11-11 | Microsoft Corporation | System and method for embedding a streaming media format header within a session description message |
US20040003101A1 (en) | 2002-06-26 | 2004-01-01 | Roth David J. | Caching control for streaming media |
US7401221B2 (en) | 2002-09-04 | 2008-07-15 | Microsoft Corporation | Advanced stream format (ASF) data stream header object protection |
US7020087B2 (en) * | 2003-01-13 | 2006-03-28 | Motorola, Inc. | Segmented and distributed path optimization in a communication network |
US7454510B2 (en) | 2003-05-29 | 2008-11-18 | Microsoft Corporation | Controlled relay of media streams across network perimeters |
US7054774B2 (en) * | 2003-06-27 | 2006-05-30 | Microsoft Corporation | Midstream determination of varying bandwidth availability |
-
2000
- 2000-08-09 US US09/635,988 patent/US7266613B1/en not_active Expired - Fee Related
-
2001
- 2001-08-02 EP EP08002201A patent/EP1912393B1/en not_active Expired - Lifetime
- 2001-08-02 DE DE60134793T patent/DE60134793D1/de not_active Expired - Lifetime
- 2001-08-02 EP EP01118629A patent/EP1179925B1/en not_active Expired - Lifetime
- 2001-08-02 EP EP05003310A patent/EP1538796B1/en not_active Expired - Lifetime
- 2001-08-02 DE DE60134701T patent/DE60134701D1/de not_active Expired - Lifetime
- 2001-08-02 DE DE60133324T patent/DE60133324T2/de not_active Expired - Lifetime
- 2001-08-02 AT AT01118629T patent/ATE400947T1/de not_active IP Right Cessation
- 2001-08-02 AT AT08002201T patent/ATE463906T1/de not_active IP Right Cessation
- 2001-08-02 DE DE60141782T patent/DE60141782D1/de not_active Expired - Lifetime
- 2001-08-02 AT AT05003309T patent/ATE389999T1/de not_active IP Right Cessation
- 2001-08-02 EP EP05003309A patent/EP1538795B1/en not_active Expired - Lifetime
- 2001-08-02 AT AT05003310T patent/ATE400949T1/de not_active IP Right Cessation
- 2001-08-09 JP JP2001242612A patent/JP4806141B2/ja not_active Expired - Fee Related
-
2004
- 2004-12-17 US US11/016,392 patent/US7353286B2/en not_active Expired - Fee Related
- 2004-12-17 US US11/015,982 patent/US7349977B2/en not_active Expired - Fee Related
-
2008
- 2008-02-08 US US12/028,680 patent/US20080147877A1/en not_active Abandoned
- 2008-03-31 US US12/060,141 patent/US20080183888A1/en not_active Abandoned
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10150468A (ja) * | 1996-11-18 | 1998-06-02 | Fujitsu Ltd | 送信履歴ビットを持つデータ処理装置およびデータ通信方法 |
Non-Patent Citations (2)
Title |
---|
CSNG200100047010, 木村 卓巳 Takumi Kimura, "インターネットパス帯域測定法の比較評価 Comparison of Internet Path Bandwidth Measurement Methods", 電子情報通信学会技術研究報告 Vol.98 No.669 IEICE Technical Report, 19990318, 第98巻, 第67−72頁, JP, 社団法人電子情報通信学会 The Institute of Electro * |
CSNG200100088007, 村山 公保 YUKIO MURAYAMA, "TCP短期デッドロック問題の解決 A Solution of the TCP Short−term Deadlock Problem", 情報処理学会論文誌 第39巻 第2号 Transactions of Information Processing Society of Japan, 19980215, 第39巻, 第239−252頁, JP, 社団法人情報処理学会 Information Processing Socie * |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7274740B2 (en) | 2003-06-25 | 2007-09-25 | Sharp Laboratories Of America, Inc. | Wireless video transmission system |
US9325998B2 (en) | 2003-09-30 | 2016-04-26 | Sharp Laboratories Of America, Inc. | Wireless video transmission system |
US8018850B2 (en) | 2004-02-23 | 2011-09-13 | Sharp Laboratories Of America, Inc. | Wireless video transmission system |
JP2005277949A (ja) * | 2004-03-25 | 2005-10-06 | Sony Corp | 送信装置および方法、受信装置および方法、記録媒体、並びにプログラム |
US7784076B2 (en) | 2004-10-30 | 2010-08-24 | Sharp Laboratories Of America, Inc. | Sender-side bandwidth estimation for video transmission with receiver packet buffer |
US7797723B2 (en) | 2004-10-30 | 2010-09-14 | Sharp Laboratories Of America, Inc. | Packet scheduling for video transmission with sender queue control |
US9544602B2 (en) | 2005-12-30 | 2017-01-10 | Sharp Laboratories Of America, Inc. | Wireless video transmission system |
US7652994B2 (en) | 2006-03-31 | 2010-01-26 | Sharp Laboratories Of America, Inc. | Accelerated media coding for robust low-delay video streaming over time-varying and bandwidth limited channels |
US8861597B2 (en) | 2006-09-18 | 2014-10-14 | Sharp Laboratories Of America, Inc. | Distributed channel time allocation for video streaming over wireless networks |
JP2009231857A (ja) * | 2008-03-19 | 2009-10-08 | Sony Corp | 通信制御装置、通信制御方法および通信制御プログラム |
US8223645B2 (en) | 2008-03-19 | 2012-07-17 | Sony Corporation | Communication control apparatus, communication control method, and communication control program |
Also Published As
Publication number | Publication date |
---|---|
US7349977B2 (en) | 2008-03-25 |
US20080183888A1 (en) | 2008-07-31 |
EP1912393A1 (en) | 2008-04-16 |
EP1912393B1 (en) | 2010-04-07 |
US20080147877A1 (en) | 2008-06-19 |
US7266613B1 (en) | 2007-09-04 |
EP1179925A2 (en) | 2002-02-13 |
EP1179925B1 (en) | 2008-07-09 |
EP1538795A2 (en) | 2005-06-08 |
EP1538795A3 (en) | 2005-06-15 |
DE60133324D1 (de) | 2008-04-30 |
ATE400947T1 (de) | 2008-07-15 |
EP1538796A3 (en) | 2005-06-15 |
US20050108420A1 (en) | 2005-05-19 |
DE60133324T2 (de) | 2009-04-09 |
DE60134701D1 (de) | 2008-08-21 |
JP4806141B2 (ja) | 2011-11-02 |
DE60134793D1 (de) | 2008-08-21 |
EP1538796A2 (en) | 2005-06-08 |
EP1538796B1 (en) | 2008-07-09 |
DE60141782D1 (de) | 2010-05-20 |
EP1538795B1 (en) | 2008-03-19 |
US20050100014A1 (en) | 2005-05-12 |
EP1179925A3 (en) | 2003-08-13 |
ATE389999T1 (de) | 2008-04-15 |
ATE463906T1 (de) | 2010-04-15 |
ATE400949T1 (de) | 2008-07-15 |
US7353286B2 (en) | 2008-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4806141B2 (ja) | Tcpネットワーク環境におけるバンド幅の高速動的測定 | |
US7185082B1 (en) | Fast dynamic measurement of connection bandwidth using at least a pair of non-compressible packets having measurable characteristics | |
US7634373B2 (en) | Midstream determination of varying bandwidth availability | |
US11570098B2 (en) | Systems, apparatuses and methods for cooperating routers | |
US7995478B2 (en) | Network communication with path MTU size discovery | |
EP1441288B1 (en) | Reactive bandwidth control for streaming data | |
US8171123B2 (en) | Network bandwidth detection and distribution | |
US20100005178A1 (en) | Method and system for firewall friendly real-time communication | |
US7577097B2 (en) | Compound transmission control protocol | |
WO2018112877A1 (zh) | 路径计算和访问请求分发方法、装置及系统 | |
US20060002425A1 (en) | Determining available bandwidth in a network | |
Ben Ameur et al. | Combining traffic-shaping methods with congestion control variants for HTTP adaptive streaming | |
US20230171191A1 (en) | Systems, Apparatuses and Methods for Cooperating Routers | |
Petlund | Improving latency for interactive, thin-stream applications over reliable transport | |
Hisamatsu et al. | Non bandwidth-intrusive video streaming over TCP | |
KR20050007313A (ko) | 적응 속도 제어하기 위한 장치 및 방법 | |
CN111727588A (zh) | 用于网络中立性测试的系统和方法 | |
KR102131427B1 (ko) | Sctp에서의 혼잡 제어 방법 및 장치 | |
Khurshid et al. | Protocols for transferring bulk data over internet: Current solutions and future challenges | |
Hisamatsu et al. | Network Friendly Transmission Control for Progressive Download over TCP. | |
Duarte | Transport protocols for large bandwidth-delay product networks-TCP extensions and alternative transport protocols | |
Opstad | Taming Redundant Data Bundling-Balancing fairness and latency for redundant bundling in TCP | |
Iyengar et al. | Minion: Unordered Delivery Wire-Compatible with TCP and TLS |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080811 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080811 |
|
RD04 | Notification of resignation of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7424 Effective date: 20080811 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100728 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100806 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101104 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20110125 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110519 |
|
RD13 | Notification of appointment of power of sub attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7433 Effective date: 20110520 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20110520 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110610 |
|
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: 20110805 |
|
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: 20110812 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4806141 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140819 Year of fee payment: 3 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |