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
Application number
JP2001242612A
Other languages
English (en)
Other versions
JP2002094567A5 (ja
JP4806141B2 (ja
Inventor
Thomas D Brown
ディー.ブラウン トーマス
Val David Del
デル バル ダビド
Anders E Klemets
イー.クレメッツ アンダース
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 JP2002094567A publication Critical patent/JP2002094567A/ja
Publication of JP2002094567A5 publication Critical patent/JP2002094567A5/ja
Application granted granted Critical
Publication of JP4806141B2 publication Critical patent/JP4806141B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0896Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0888Throughput
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/26Flow control; Congestion control using explicit feedback to the source, e.g. choke packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/163In-band adaptation of TCP data exchange; In-band control procedures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0852Delays
    • H04L43/087Jitter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/16Threshold monitoring
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS

Abstract

(57)【要約】 【課題】 パケットペア手法を使用することの可能なT
CPネットワーク環境におけるバンド幅の高速動的測定
方法を提供する。 【解決手段】 バンド幅の高速動的測定では、これらの
アルゴリズムで課されている遅延を解消するための対応
策が取り入れられている。その対応策とは、Nagle
アルゴリズムの適用を禁止することと、パケットペア
の直後に「プッシュ」パケットを送信することによって
パケットのバッファリングを最小限にすること、および
ダミーパケットでプライミング(初期化)することによ
ってSlow Start アルゴリズムを回避するこ
とである。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、TCPネットワー
ク環境上のエンティティ間のコネクションのための最大
バンド幅を動的に検出することに関する。具体的には、
本発明は、あるパケット集合の伝送を効果的に遅延させ
る可能性のある、ネットワーク環境のフロー制御機能に
対する対応策に関する。
【0002】
【従来の技術】インターネット (the Inter
net) の成熟に伴って、インターネット上で利用可
能なコンテキストの特性が変化している。現在では、サ
ウンドとビデオコンテンツが従来のテキストコンテンツ
に組み込まれている。しかし、インターネット上のこの
新コンテンツでは、数年前までは普通に利用可能であっ
たものよりも、コネクション速度(つまり、バンド幅)
の高速化が要求されている。
【0003】図1は、代表的なインターネットの構成の
例を示す。この構成には、サーバ(メディアサーバ20
など)が含まれ、このサーバはインターネット30に結
合されている。サーバには、1つまたは2つ以上の物理
的サーバコンピュータ22が置かれているのが代表的で
あり、サーバコンピュータは1つまたは2つ以上の物理
的ストレージデバイスおよび/またはデータベース24
を装備している。インターネット伝送の反対側には、ク
ライント90、92が存在し、これは多数の利用可能な
インターネットサービスプロバイダ (Interne
t Service Provider (ISP))
80の1つを通して接続されている。ここでは、サー
バはデータを送信するネットワークエンティティであ
り、クライアントはデータを受信するネットワークエン
ティティになっている。
【0004】クラウド(集団、cloud)30はイン
ターネットと明記されているが、理解されているよう
に、このクラウドは、図示のものだけを含んでいるイン
ターネット部分を表している。このクラウドの内側に
は、ルータ、伝送回線、コネクション、および他の通信
デバイスが置かれていて、クライアントとサーバの間で
データがほとんど正常に伝送されるようにしている。例
示のインターネットクラウド30の内側には、ルータ3
2〜44、2つのサテライトディッシュ (satel
lite dish) 46、50およびサテライト4
8が存在している。これらのデバイス間のリンクは取り
得る経路 (path) を表し、データパケットは、
その経路を通ってサーバとクライアント間を伝送される
ようになっている。
【0005】一般的に、ネットワーク(インターネット
など)上の通信デバイスは、ネットワークを利用した2
エンティティ間のコミュニケーションを容易にするデバ
イスになっており、そこには、2つのエンティティが含
まれている。そのようなエンティティの例としては、サ
ーバ20とクライント90がある。
【0006】OSIモデルの層 開放型システム間相互接続 (Open System
Interconnection (OSI)) モ
デルは、世界的規模のコミュニケーションのためのIS
O標準であり、そこでは、プロトコルを7層で実装する
ためのネットワーキングフレームワークが定義されてい
る。コントロールは、あるステーション(局)に置かれ
たアプリケーション層から始まって、ある層から次の層
へ渡され、最下層に移った後、チャネルを通って次のス
テーションに渡され、階層の上方に向かって戻るように
なっている。当業者ならば、このOSIモデルは周知で
ある。
【0007】OSIモデルに含まれる機能の大部分は、
2または3つのOSI層が1つに統合されていることが
あっても、すべての通信システムに存在している。これ
らの層は「レベル」とも呼ばれている。
【0008】一般的に、物理層はハードウェアで実現さ
れている。そのようなハードウェアとしては、ネットワ
ークカード、モデム、またはある種の他の通信デバイス
がある。代表例として、トランスポート層は、オペレー
ティングシステム (operating syste
m OS) のカーネルで実現されている。
【0009】スタックの最上層はアプリケーション層で
あり、そこにはアプリケーションが置かれている。ここ
には、Webブラウザやメディアプレイヤ、eメールプ
ログラムのように、コンピュータの外側に置かれたエン
ティティと通信するアプリケーションが置かれている。
アプリケーション層では、インターネットのようなネッ
トワーク上のエンティティ間のコミュニケーション詳細
に対する制御権は、最小になっている。
【0010】バンド幅 バンド幅 (bandwidth) とは、一定時間内
に伝送できるデータ量のことである。例えば、図1に示
すメディアサーバ20とメディアクライアント90間の
バンド幅は、ある時間単位(例えば、1秒)内に両者間
で伝送できるデータ量(例えば、1000ビット)で計
算される。もっと具体的に説明すると、データは、概算
で秒当たり56,000ビットのレートでデバイス間を
伝送することができる。このレートは、毎秒56キロビ
ット (Kbps) で表すこともできる。
【0011】図1に示すように、インターネット上の伝
送は複数のリンクを通り抜けてから、そのデスティネー
ション(目的地)に到達する。各リンクは独自のバンド
幅をもっている。チェーン(鎖)はその最も弱いリンク
と同じ強度しかないのと同じように、サーバ20とクラ
イント20間の最大バンド幅は、最低速バンド幅をもつ
リンクで両者間を結んでいることになる。代表的には、
これはクライアント90とそのISP 80間のリンク
になっている。その最低速バンド幅は、事実上の最大バ
ンド幅 (maximum de fact band
width)である。
【0012】ここでは、コンテキストから明らかである
場合を除き、ネットワークエンティティ(サーバ20と
クライアント90のような)間のバンド幅というとき
は、これらエンティティ間の事実上の最大バンド幅であ
るものと想定される。
【0013】バンド幅は、「コネクション速度(con
nection speed)」、「速度」、または
「レート」とも呼ばれる。本明細書の中でバンド幅とい
うとき、それが毎秒ビット数で表されているときは、
「ビット・レート(bit rate)」または「ビッ
トレート(bitrate)」とも呼ばれる(なお、本
明細書では「ビットレート」ということにする)。
【0014】ストリーミングメディア ストリーミング (streaming) は、一定で
連続するストリームとして処理できるような形でマルテ
ィメディアデータを転送する手法である。ストリーミン
グテクノロジの重要度がインターネントの成長と共に高
まっているのは、大部分のユーザによるアクセスが十分
に高速でないため、大量のマルチメディアファイルを高
速にダウンロードできないからである。ストリーミング
を使用すると、クライアントブラウザまたはプラグイン
は、ファイル全体の伝送が完了する前にデータ表示を開
始することができる。
【0015】ストリーミングが働くためには、データを
受信するクライアント側は、データを収集し、そのデー
タを一定のストリームとしてアプリケーションに送信
し、そのアプリケーションでデータを処理し、それをサ
ウンドやピクチャに変換できるようになっていなければ
ならない。このことは、ストリーミングクライアントが
必要以上の高速でデータを受信したとき、余分のデータ
をバッファに置いておく必要があることを意味する。逆
に、データが十分に高速で受信されないときは、データ
のプレゼンテーションはスムーズに行われないことにな
る。
【0016】オーディオおよび/またはビジュアルプレ
ゼンテーションのコンテキスト内では、「メディア」と
「マルティメディア」は、本明細書では同じ意味で用い
られている。メディアとは、テキスト、グラフィック
ス、ビデオ、アニメーション、および/またはサウンド
を統合化して提示することを意味している。
【0017】「ストリーミングメディア」とは、ネット
ワーク(インターネットなど)を利用してエンドユーザ
に伝送されるオーディオおよび/またはビジュアルプレ
ゼンテーションである。このような伝送は、プレゼンテ
ーションが相対的にスムーズで、ジャーク (jerk
y) が生じないように行われる。追加のフレームがユ
ーザにダウンロードされている間のポーズ (paus
e) が長いと、ユーザにとっては煩わしくなってい
る。このような煩わしさは、ユーザが将来のストリーミ
ングメディアを見ることを断念させる原因になってい
る。
【0018】ストリーミングメディアのスムーズな伝送 クライアントがデータを受信するときのレートはバンド
幅によって決まるので、ストリーミングメディアプレゼ
ンテーションが提示されるときのレートは、バンド幅が
許容するレートまでに制限されている。例えば、メディ
アサーバ20が、ストリーミングメディアプレゼンテー
ションをスムーズに「プレイ」するためには、データを
50Kbpsでクライアント90に送信する必要がある
とする。しかし、クライアントとサーバ間のバンド幅は
30Kbpsに制限されている。その結果は、メディア
プレゼンテーションがジャークし、ジャンプすることに
なる。
【0019】この問題を緩和する試みとして、ストリー
ミングメディアプレゼンテーションは、品質度の異なる
複数のフォーマットに符号化(エンコード)されてい
る。
【0020】最低品質のフォーマット(例えば、小サイ
ズ、低解像度、小カラーパケット)は、一定時間にクラ
イアントにプッシュ (push) されるデータ量が
最小になっている。従って、低速リンク上のクライアン
トはストリーミングメディアプレゼンテーションをスム
ーズに提示できるが、プレゼンテーションの品質が犠牲
になっている。
【0021】最高品質のフォーマット(例えば、フルス
クリーンサイズ、高解像度、大カラーサイズ)は、一定
時間にクライアントにプッシュされるデータ量が最大に
なっている。従って、高速リンクをもつクライアント
は、ストリーミングメディアプレゼンテーションをスム
ーズに提示できると共に、高品質のプレゼンテーション
が得られることになる。
【0022】バンド幅選択アプローチ サーバはストリーミングメディアをクライアントに送信
するとき、どのようなフォーマットを使用するかを知っ
ていなければならない。従って、正しいフォーマットを
選択するためには、サーバはサーバとクライアント間の
バンド幅を知っていなければならない。
【0023】これを行う最も簡単な方法は、どのような
バンド幅であるかをクライアントのユーザに尋ねること
である。インターネットへのクライアントのリンクは、
バンド幅にボトルネックがあるのが代表的であるので、
このリンクのバンド幅が分かると、実際のバンド幅が分
かるのが一般的である。
【0024】図2は、クライアントのコンピュータに表
示されるWebページの1部分(カッタウェイ)100
を示す。このカッタウェイ100の内部には、そのコネ
クション速度についてユーザに尋ねるために使用できる
代表的なユーザインタフェースがある。ユーザは、ユー
ザインタフェース110によって提供される、3つのボ
タン112、114、116をクリックする。ユーザが
ボタン112をクリックすると、サーバは、28.8
Kbpsで伝送する設計になったフォーマットでストリ
ーミングメディアを収めているファイルからデータを送
出する。同様に、ユーザがボタン114をクリックする
と、データは、56.6 Kbpsで伝送する設計にな
ったフォーマットでストリーミングメディアを収めてい
るファイルから送信される。ユーザがボタン114をク
リックすると、サーバは、56.6 Kbps以上であ
って、T1コネクションの代表的速度までのレートで伝
送する設計になったフォーマットでストリーミングメデ
ィアを収めているファイルからデータを送信する。
【0025】しかし、「バンド幅選択」アプローチによ
ると、ユーザに慎重な選択が要求されるという大きな問
題がある。このアプローチによると、選択エラーが起こ
りやすくなっている。
【0026】ユーザはコネクション速度に注意し、理解
し、知識があることが要求されている。よくあること
は、ユーザがどのボタンを押すべきかに特別な注意を払
わないことである。ユーザが分かっていることは、ユー
ザがボタンの1つを押すと、メディアプレゼンテーショ
ンが表示されることだけである。従って、ユーザはボタ
ンのどれかを押している。
【0027】また、よくあることは、ユーザがバンド幅
の概念を理解していないことである。ユーザがボタン1
16を選択するのは、プレゼンテーションを最高品質で
見たいからである。プレゼンテーションを最高品質で表
示すると、インターネットコネクションは、インターネ
ットコネクションを通してデータが送信されるときのレ
ートを処理できないので、プレゼンテーションがスムー
ズでなくなるということがこのユーザに分かっていな
い。
【0028】ユーザはバンド幅の概念を理解していて
も、自分のバンド幅が分かっていないことがある。ユー
ザは自分のバンド幅に無知だけのこともある。さらに、
ノイズの度合が変化すると、ユーザがインターネットに
接続するたびにコネクション速度が変化することがあ
る。さらに、コネクションのタイプによっては(ケーブ
ルモデムなど)、多数の要因によってコネクション速度
が広範囲に変化するものもある。
【0029】さらに、ユーザは、選択が正しくないと、
どのようなことが起こるかを理解している必要がある。
ユーザは、スムーズなプレゼンテーションを得るために
は自分のバンド幅と同じか、あるいはそれ以下のオプシ
ョンを選択する必要があることを理解できるだけの教育
が必要である。しかし、ユーザは、自分のバンド幅より
大幅に低いオプションを選択してはならない。そのよう
にすると、利用できる、もっと高いバンド幅で表示でき
るはずのスムーズなプレゼンテーションが、低品質で表
示されることになってしまう。
【0030】以上の説明から理解されるように、このマ
ニュアル(手動操作)による方法は、多くのユーザを混
乱させ、脅威になっていることがよくある。そのため、
選択を誤ることがよく起こっている。
【0031】さらに、多数のファイル(バンド幅ごとに
1ファイル)をメディアサーバに置いておくと、Web
サイトを維持するオーバヘッドが増加することになる。
【0032】自動バンド幅検出 上記問題を解消するために、メディアサーバはシングル
ファイルを使用し、複数のバンド幅用のサブファイルを
そこに収めておくことができる。さらに、メディアサー
バは、バンド幅を自動的に検出することができる。
【0033】このシングルファイルは、MBR(mul
tiple bit rate:複数ビットレート)フ
ァイルと呼ばれている。MBRファイルは、複数の異な
る「バンド」または「ストリーム」を収めているのが代
表的である。これらのバンドは「サブファイル」と呼ば
れている。ユーザは1つのリンクをクリックするだけで
ある。すると、サーバは、クライアントに送信するとき
の正しい速度のバンドを、自動的に判断する。なお、こ
れはユーザには見えないように行われる。
【0034】この自動速度検出は時間がかかることがあ
る。このことは、プレゼンテーションが始まるまでに、
ユーザはさらに5秒または1分(またはそれ以上)待た
されることを意味している。既存の自動速度検出にこの
ような遅れがあるのは、速度判断が進行中のときの「ハ
ンドシェ−キング」時間が長いことによる。
【0035】ある既存自動速度検出手法では、サーバと
クライアント間の速度を測定するために複数のデータパ
ケットが送信されている。この手法は、以下の「複数測
定パケット手法」の個所に詳しく説明されている。
【0036】バンド幅測定パケット 代表例として、自動バンド幅検出手法では、既知サイズ
の1または2以上のパケットを送信することによって、
ネットワーク上のエンティティ間のバンド幅を測定して
いる。
【0037】図3は、送信側(例えば、サーバ)と受信
側(例えば、クライアント)間の2つのパケット(P
とP)の伝送をたどって行く時間グラフを示す。サー
バ側とクライアント側はそのように示されている。グラ
フ上では、時間は下に向かって進んでいる。
【0038】時刻tは、Pの伝送が開始されるサー
バ側の時刻を示している。時刻tは、Pの伝送が終
了するサーバ側の時刻を示している。同様に、時刻t
は、クライアントがPの受信を開始する時刻を示して
いる。時刻tは、クライアントがPの受信を完了す
る時刻を示している。t時に、ネットワークハードウ
ェアは、通信層を上方に向かってパケットを渡してい
き、アプリケーション層に到達するものと想定されてい
る。
【0039】パケットPは、図3の時間グラフ上に同
じように示されている。tは、P の伝送が開始され
るサーバ側の時刻である。tは、Pの伝送が終了す
るサーバ側の時刻である。同様に、tは、Pの受信
を開始するクライアント側の時刻である。tは、P
の受信を完了するクライアント側の時刻である。t
に、ネットワークハードウェアは、通信層を上方に向か
ってパケットを渡していき、アプリケーション層に到達
するものと想定されている。
【0040】シングルパケットを使用したバンド幅測
。研究所のように制御された環境では、ネットワーク
上の2エンティティ間のバンド幅測定は簡単である。こ
の計算を行うために、既知サイズのパケットが一方のエ
ンティティから他方のエンティティに送信され、伝送レ
イテンシが測定されている。ここで、伝送レイテンシ
(transmission latency) と
は、パケットがソース(発信元)からデスティネーショ
ン(宛先)まで走行して行くのに要する時間量のことで
ある。このようなシナリオが与えられているとき、パケ
ットが送信された時間とパケットが到着した時間が分か
っていなければならない。
【0041】この手法は、研究所以外ではほとんど非実
用的である。この手法は、クライアントとサーバ間が同
期している必要があるので、非同期ネットワーク(イン
ターネットなど)では使用できない。クライアントとサ
ーバのどちらも、同じクロックを使用している必要があ
る。
【0042】別の手法として、クライアントは、パケッ
トの受信を開始した時刻(Pではt)と、パケット
の受信が完了した時刻(Pではt)をたどって行く
ことができる。
【0043】図3は、サーバからクライアントに送信さ
れるパケットPを示している。P は、パケットサイ
ズPSは既知サイズ(ビット数)になっている。バンド
幅(bw) の計算式は次の通りである。
【0044】
【数1】
【0045】この手法は理論的には有効であるが、残念
ながら実用には適していない。パケットがいつ初めて受
信されるかは、ハードウェアだけが分かっている。従っ
て、tがいつであるかは、ハードウェアだけが分かっ
ている。
【0046】その他の通信層(トランスポート層とアプ
リケーション層など)が分かっているのは、パケットが
ハードウェアによって完全に受信された時刻だけであ
る。これは、ハードウェアがパケットをこれらの層に渡
したときである。パケットPの完了時刻はtであ
る。ある時点が分かっているだけでは、バンド幅を計算
することは不可能である。
【0047】パケットペア。パケットペア (pack
et−pair) と呼ばれる手法は、非同期ネットワ
ークでの上記問題を解消するために使用されている。パ
ケットペアによると、2つの同一パケットはバックツー
バック (back−to−back) で送信され
る。サーバは、一方が他方の直後に続くように、ペアの
パケットを送信する。両パケットは同じであるので、同
一サイズ (PS) になっている。バンド幅は、パケ
ットサイズを各パケットの受信の時間差で除することに
よって求められている。
【0048】各パケットは固有の測定可能特性をもって
いる。具体的には、これらの特性としては、そのパケッ
トサイズ (PS) とパケット到着といった測定時間
(例えば、図3中のt )がある。ある種の特性
(パケットサイズなど)は、測定されるよりも指定され
ることがあるが、測定することが望ましければ、測定す
ることも可能である。
【0049】図3に示すように、サーバはパケットP
を送信する。クライアント側ハードウェアはt時にパ
ケットの受信を開始する。パケットの受信がt時に完
了すると、ハードウェアは通信層を上方に向かってパケ
ットを渡していく。最終的には、パケットはほぼt
にデスティネーション層(例えば、アプリケーション
層)によって受信される。
【0050】サーバはPを送信したあと(これはt
時に完了している)、t時にパケットPを即時に送
信する。重要なことは、1) tとtの間に測定可
能な遅延が絶対に存在しないか、あるいは2) t
の間に存在する遅延の長さが分かっていることであ
る。ここでは、説明を簡単にするために、tとt
間に測定可能な遅延が存在しないものとしている。
【0051】クライアント側ハードウェアはt時にP
の受信を開始する。このパケットの受信がt時に完
了すると、ハードウェアは通信層の上方に向かってパケ
ットを渡していく。最終的に、パケットはほぼt時に
デスティネーション層(例えば、アプリケーション層)
によって受信される。
【0052】図3は、t(Pの受信完了時刻)とt
(Pの受信開始時刻)の間に遅延が存在しないこと
を示している。理論的には、このことが常に起こるの
は、P とPが同じ条件で伝送されたときである。実
際には、このことがよく起こるのは、PがPの直後
に送信されるからである。
【0053】パケットペアを使用したときの、バンド幅
(bw) の計算式は次の通りである。
【0054】
【数2】
【0055】この手法は理論的にも、実用面でも有効で
ある。しかし、これが有効に働くのは、比較的静的なネ
ットワークに限られている。
【0056】例えば、図1に示す想定では、ネットワー
クはサーバ20、ルータ32、34、36、ISP80
の中の特定ISP、およびクライアント90から構成さ
れている。さらに、この静的ネットワーク上の各ノード
間のリンクは固定され、一定のバンド幅をもっているこ
とが想定されている。このような状況では、パケットペ
ア手法によると、正確で、効果的なバンド幅測定が得ら
れる。
【0057】パケットペアをインターネット上で使用し
たときの問題。しかし、パケットペア手法は、インター
ネットのような動的ネットワークでは有効な働きをしな
い。動的ネットワークとは、パケットが先行パケットと
は異なるか、後続パケットとは異なる方法で処理される
可能性があるようなネットワークである。具体的には、
TCPネットワークで問題が起こっている。
【0058】図1は、動的ネットワーク上で見られる差
異を処理する例を示している。ここでは、すべてのパケ
ットはサーバからクライアントへ(図1の左から右へ)
走行するものと想定されている。また、パケット60〜
68は、サーバ20によってバックツーバックでクライ
アントに送信されたものと想定されている。
【0059】図1を見れば明らかなように、パケットは
異なるルートを通ることが可能になっている。さらに、
ルートによっては、パケット伝送を大幅に遅延させるも
のがある。このことが起こるのは、特に、パケットが、
ワイヤレス伝送のような見かけ上異常な(必ずしも、通
常でないとは限らない)ルートを経て伝送され、海底ケ
ーブル、サテライト伝送(ディッシュ46、50とサテ
ライト48で図示)などを経て海外に伝送されるときで
ある。ルータ(ルータ42のような)は、パケットをメ
モリ(バッファ43のような)に一時的に置いておくこ
とにより、別のルータよりも1または2以上のパケット
(63と64のような)を遅延させることがある。
【0060】複数測定パケット手法 上述した問題を解消するために、従来の自動バンド幅測
定手法では、複数のパケットが使用されている。サーバ
は複数のパケット(3以上のパケット)を送信し、各パ
ケットの速度を計算している。バンド幅測定の従来の考
え方から明らかであるように、正確な測定を得るために
は、複数のペアのパケットを、数秒間から数分間にわた
って繰り返し送信する必要がある。ここでは、上述した
「パケットペア」手法と区別するために、この手法は
「複数パケット」と呼ぶことにする。
【0061】代表例として、最終的バンド幅は、多数の
バンド幅測定の平均を求めることによって判断されてい
る。このように平均をとると、各パケットの遅延のばら
つきは平滑化されるが、伝送中のパケット圧縮は補償さ
れない。2測定のうち一方が非常に不正確であると、平
均はゆがむことになる。
【0062】残念ながら、この手法は、クリックしてか
らメディアプレゼンテーションまでユーザが待たされて
いた時間に比べて待ち時間が長くなっている。この待ち
時間は、データと状況に応じて5秒から数分間にわたっ
ている。このような待ちがあると、メディアプレゼンテ
ーションを体験することを望んでいるユーザにとって
は、煩わしが増加することになる。この遅延は望ましく
ない。従来の手法では、利用できる他のオプションがな
いために、ユーザはこれらの遅延に我慢せざるを得なく
なっている。
【0063】どの既存自動バンド幅測定手法も、インタ
ーネット上のバンド幅を、ペアのパケットを使用してほ
ぼ瞬時に測定することが不可能である。また、どの既存
自動バンド幅測定手法も、この測定をアプリケーション
層で行うことが不可能である。そのために、オペレーテ
ィングシステムを修正することが回避されている。どの
既存自動バンド幅測定手法も、パケット圧縮が原因で起
こる測定ひずみを扱っていない。
【0064】トランスポート層の実装 従来のアプローチでは、自動バンド幅測定を行うために
オペレーティングシステム (OS) のカーネルを修
正しているのが代表的である。具体的に説明すると、こ
れらのアプローチでは、OSIモデルのトランスポート
層を修正しているが、この層はOSのカーネルに置かれ
ていることが多い。一般的に、このような修正は、OS
を修正していない実装に比べて、全体的に安定性が低下
し、高価になるので望ましくない。
【0065】これらのアプローチはアプリケーション内
に(従って、アプリケーション層に)実装できないの
で、このような修正は不可能になる。しかし、どの既存
パケットペアによる手法も、アプリケーション層でバン
ド幅を測定していない。これは、ネットワーク上で実際
に行われるコミュニケーション詳細に対する制御権が、
アプリケーション層では、他の層に比べて低いためであ
る。具体的には、アプリケーションは、TCP使用によ
る制御権が、UDP(User Datagram P
rotocol:ユーザデータグラムプロトコル)によ
る場合よりも、はるかに低くなっている。
【0066】TCPとUDPは、以下の「TCPとUD
P」の個所に詳しく説明されている。トランスポート層
とアプリケーション層は、以下で説明するOSIモデル
の7層の一部になっている。
【0067】TCPとUDP インターネット(および他のネットワーク)上では、デ
ータパケットは、TCPまたはUDPプロトコルを使用
して送信されるのが通常である。TCPはインターネッ
トでは広く認められ、理解されている。
【0068】TCP(Transmission Co
ntrol Protocol:伝送制御プロトコル)
は、TCP/IPネットワーク(インターネットなど)
における主要プロトコルの1つである。IPプロトコル
はパケットだけを扱っているのに対し、TCPは2つの
ホストがコネクションを確立し、データストリームをや
りとりすることを可能にしている。TCPは、データの
配達を保証し、パケットがその送信時と同じ順序で配達
されることを保証している。
【0069】UDP(User Datagram P
rotocol:ユーザデータグラムプロトコル)はコ
ネクションレス型プロトコル (connection
less protocol) であり、(TCPと同
じように)IPネットワークの上で走行する。TCP/
IPとは異なり、UDP/IPは提供するエラー回復サ
ービスが非常に少ないが、その代わりに、IPネットワ
ーク上のパケット(つまり、データグラム)の送受信を
直接的方法で行うことができる。
【0070】パケットは、アプリケーションプログラム
によって提供されるデータの塊 (chunk) であ
る。UDPでは、シングル「アプリケーションレベルデ
ータ」はシングルUDPパケットとして送信されるのが
代表的である。これに対し、TCPでは、シングルアプ
リケーションレベルパケットは、もっと小さな、複数の
TCP「セグメント」に分割され、その各々はTCP層
で別々の「パケット」として扱われるようになってい
る。Nagle アルゴリズム(下述する)は、上記と
は逆のことを行う。つまり、複数の、小さなアプリケー
ションパケットを受け取り、それらを結合してもっと大
きな、1つのTCPセグメントにする。
【0071】Nagle TCP/IP アルゴリズム Nagle アルゴリズムは、低速ネットワーク上で小
さなTCPセグメント(「タイニグラム(tinygr
am)」と呼ばれることもある)に起こる問題を回避す
る設計になっている。このアルゴリズムの規定によれ
ば、まだ受信確認(ACK) されていないで未処理の
まま、TCP/IPコネクションに残っているタイニグ
ラムは1つに限られている。タイニグラムの定義サイズ
は実装によって決まる。しかし、そのサイズは、一般的
に、代表的なTCPセグメントのサイズより小さくなっ
ている。
【0072】Nagle アルゴリズムのよれば、状況
によっては、データが送信される前の待ち時間は約20
0ミリ秒 (msec) であることが規定されてい
る。Nagle アルゴリズムは、スイッチ経由のトラ
フィックに対して次のようなパラメータを使用してい
る。 ・ セグメントサイズ = MTUまたはtcp_ms
sdfltまたはMTU経路検出値 ・ TCPウィンドウサイズ = tcp_sends
pace値とtcp_recvspace値のうち小さ
い方 ・ データサイズ = アプリケーションデータバッフ
ァサイズ
【0073】以下は、データをいつ送信するかを判断す
るときNagle アルゴリズムによって使用される、
具体的ルールである。 ・ パケットがセグメントサイズと同じか、それより大
きく、TCPウィンドウが一杯になっていなければ、M
TUサイズのバッファを即時に送信する。 ・ インタフェースがアイドル中であるか、TCP_N
ODELAYフラグがセットされていて、TCPウィン
ドウが一杯になっていなければ、バッファを即時に送信
する。 ・ TCPウィンドウに未処理のまま残っているデータ
がウィンドウの半分以下であれば、バッファを即時に送
信する。 ・ 送信するセグメントサイズがバッファ未満であり、
ウィンドウに未処理のまま残っているデータがウィンド
ウの半分以上であって、TCP_NODELAYがセッ
トされていなければ、残りデータについて200 ms
ecまで待ってからバッファを送信する。
【0074】送信側のソケットでTCP_NODELA
Yをセットすると、Nagle アルゴリズムは非アク
チベートされる。送信される全データは、データサイズ
に関係なく即時に送出される。
【0075】Nagle アルゴリズムは、広い意味で
は、「タイニグラムバッファリング」機能と呼ぶことが
できるが、これはタイニグラムがバッファリングされる
からである。
【0076】TCP Slow Startアルゴリズ
“Slow Start”(スロースタート)を使用し
ないTCPネットワークでは、デバイスは、受信側が公
表しているウィンドウサイズに達するまで、複数のパケ
ットをネットワークに投入することによって送信側との
コネクションを開始している。2ホストが同じLAN上
にあるときは、これは許されるが、送信側と受信側の間
にルータや低速リンクがあると、問題が発生する可能性
がある。中間ルータの一部はパケットを待ち行列(キュ
ー)に置いておく可能性があるので、そのようなルータ
は、メモリ不足のためパケットを待ち行列に置くことが
できないことが起こり得る。従って、このナイーブなア
プローチによると、TCPコネクションのスループット
が大幅に低下するおそれがある。
【0077】これを回避するアルゴリズムは”Slow
Start” と呼ばれている。このアルゴリズム
は、新パケットがネットワークに投入されるときのレー
トが、受信確認通知が他方のエンドから戻されるときの
レートであることを観察する働きをする。
【0078】このSlow Startアルゴリズムで
は、送信側のTCPに別のウィンドウが追加されてい
る。つまり、輻輳 (congestion) ウィン
ドウであり、”cwnd”と名付けられている。別のネ
ットワーク上のホストとの間で新しいコネクションが確
立されると、輻輳ウィンドウは1パケットに初期化され
る。受信確認通知(つまり、”ACK”)が受信される
たびに、輻輳ウィンドウは1パケットずつ増加して行
く。送信側は、「輻輳ウィンドウ」と「公表(adve
rtised)ウィンドウ」の最小限まで送信すること
ができる。「輻輳ウィンドウ」は、送信側によって課さ
れたフロー制御である。「公表ウィンドウ」は、受信側
によって課されたフロー制御である。前者は、ネットワ
ーク輻輳がどの程度であるかを送信側が評価することに
基づいている。後者は、そのコネクションのために利用
できるバッファスペースが、受信側にどれだけ残ってい
るかに関係している。
【0079】送信側は、1パケットを送信し、そのAC
K(受信確認通知)を待つことからスタートする。その
ACKが受信されると、輻輳ウィンドウは1から2にイ
ンクリメントされる。これらの2パケットの各々が受信
確認されると、輻輳ウィンドウは4に増加する。以下、
同様である。
【0080】いずれかの時点で、送信側と受信側間のコ
ネクションの容量まで到達することになる。容量まで到
達すると、いずれかの中間ルータはパケットを破棄する
ことを開始する。輻輳ウィンドウが限界まで達したこと
は、この廃棄によって送信側は知ることになる。
【0081】プロキシ プロキシ (proxy)(つまり、プロキシサーバ)
は、クライアントアプリケーション(Webブラウザな
ど)と実サーバ (real server)の間に置
かれたデバイスである。一般的に、プロキシは、実サー
バとの間でやりとりされるすべての要求をインターセプ
ト (intercept) し、自身で要求を満たす
ことができるかどうかを確かめる。満たすことができな
ければ、要求を実サーバに転送する。プロキシは、主に
次の2目的のために採用されている。すなわち、パフォ
ーマンス向上と要求のフィルタリングである。
【0082】プロキシは、複数のクライアントのための
中央コミュニケーションポイントとなることが多いの
で、そのコミュニケーションを可能な限り効率化するこ
とを試みている。従って、プロキシは、Nagle ア
ルゴリズムの一種を実装しているのが代表的である。す
べての新コネクションはSlow Startから開始
する。クライアントとサーバの間にプロキシが置かれて
いるときは、SlowStartは、2つのコネクショ
ンで実行される。すなわち、サーバとプロキシ(ser
ver−proxy) 間コネクションとプロキシとク
ライアント(proxy−client) 間コネクシ
ョンである。従って、プロキシを使用すると、パケット
ペアの試みはさらに複雑化することになる。
【0083】
【発明が解決しようとする課題】背景の要約 アプリケーション(アプリケーション層に置かれてい
る)は、TCPパケットの処理に対する制御が制限され
ている。従って、従来のバンド幅測定では、アプリケー
ションレベルでのTCPバンド幅測定が回避されてい
る。
【0084】パケットペア手法では、少なくとも2つの
パケットはバックツーバックで送信されることが保全性
の要件となっている。しかし、これらのパケットは、N
agle アルゴリズムとSlow Start アル
ゴリズムの影響のためにそのような形で到着しないこと
がある。このことが、TCPネットワーク上のバンド幅
測定にパケットペア手法を使用することの妨げとなって
いる。
【0085】そこで、本発明の目的は、パケットペア手
法を使用することの可能なTCPネットワーク環境にお
けるバンド幅の高速動的測定方法を提供することにあ
る。
【0086】
【課題を解決するための手段】概要 TCPネットワーク環境における高速動的バンド幅測定
では、ネットワーク(インターネットなど)上の2エン
ティティ間のバンド幅を計算するために、シングルペア
のパケットが利用されている。この計算はパケットペア
手法に基づいている。このバンド幅測定は非常に高速で
ある。
【0087】パケットがネットワークを走行している途
中で、通信デバイスはパケットペアを遅延させることが
ある。具体的には、TCPネットワークでは、ネットワ
ークの総スループットを向上することを目標として、あ
る種のパケットを遅延させる設計になった2つのアルゴ
リズムが使用されている。しかし、これらのアルゴリズ
ムは、バンド幅を測定することを目的としたパケットペ
アを事実上遅延させる可能性がある。従って、これらの
アルゴリズムを使用すると、測定にひずみが起こってい
る。そのアルゴリズムとは、”Nagle”と”Slo
w Start”である。
【0088】高速動的バンド幅測定では、これらのアル
ゴリズムに課されている遅延を解消するための対応策が
実装されている。その対応策とは、Nagle アルゴ
リズムの適用を禁止すること、「プッシュ」パケットを
パケットペアの直後に送信することによってパケットの
バッファリングを最小限にすること、およびダミーパケ
ットで初期化(プライミング)することによってSlo
w Start アルゴリズムを回避することである。
【0089】
【発明の実施の形態】以下では、TCPネットワーク環
境におけるバンド幅の高速動的測定の具体的実施形態に
ついて説明するが、そこには請求項に記載されているエ
レメントが組み込まれている。この実施形態は、法律上
の要件、使用可能性の要件、および最良形態の要件に合
致するように具体的に説明されている。しかし、その説
明自体は、本発明の範囲を限定するものではない。むし
ろ、本発明によるTCPネットワーク環境における高速
動的バンド幅測定は、他の現存および将来のテクノロジ
と併用して他の方法でも実現可能であり、それが本発明
者の意図する目的である。
【0090】例示のTCPネットワーク環境におけるバ
ンド幅の高速動的測定(つまり、「バンド幅メータ」ま
たは「bw−meter」。なお、以下では、「バンド
幅メータ」という)はTCPネットワーク(インターネ
ットなど)で使用されたときでも、高速であり、強固で
ある。例示のバンド幅メータは、通信ネットワーク上の
2エンティティ間で利用可能なネットワークバンド幅を
自動的に測定する低レイテンシ手法が実装されている。
これは、インターネット(または他のTCPネットワー
ク)上で利用すると、特に有用であることが判明してい
る。
【0091】従来のアプローチとは異なり、例示のバン
ド幅メータによると、困難なネットワーク条件下でも、
起こり得る遅延を最小にして最善努力のバンド幅測定が
得られる。例示のバンド幅メータは、LAN、ケーブ
ル、DSL、およびモデムコネクションを含む、大部分
の既存TCPネットワークにおいて1秒未満で妥当な出
力が得られる設計になっている。
【0092】さらに、例示のバンド幅メータは、アプリ
ケーション層に実装されている。例示のバンド幅メータ
は他の層でも実装可能であるが、ここで説明されている
ものはアプリケーション層に実装されている。具体的に
は、これは、その一部をWebブラウザまたはメディア
プレイヤで実現することが可能である。
【0093】例示のバンド幅メータによって実現可能な
パケットペア手法の他の側面は、米国での特許出願、発
明の名称「コネクションバンド幅の高速動的測定(Fa
stDynamic Measurement of
Connection Bandwidth)」、Mi
crosoft Corporationに譲渡済み)
に詳しく説明されている。なお、この米国特許出願の内
容は引用により、本明細書の一部になっている。
【0094】パケットペア手法 例示のバンド幅メータでは、上述し、図3に示されてい
る、確立されたパケットペア手法が利用されている。例
示のバンド幅メータは、上述したパケットペア公式(式
2)を使用して、通信ネットワーク(インターネットな
ど)上の2エンティティ間の、事実上の最大バンド幅を
計算している。
【0095】複数のパケットを使用している、既存自動
バンド幅測定手法とは異なり、例示のバンド幅メータ
は、インターネット上のバンド幅を測定するためにシン
グルペアのパケットを使用している。例示のバンド幅メ
ータでは、バンド幅測定と計算は、シングルペアの測定
パケットだけが送信されるので、「ほぼ瞬時」に行われ
る。ここで「ほぼ瞬時に(nearly instan
taneously)」とは、ペアのパケットがクライ
アントに到着するのと同時にバンド幅が求められること
を意味している。
【0096】例示のバンド幅メータは、Nagle ア
ルゴリズムとSlow Startアルゴリズムに対す
る対応策を実装することによって、TCPネットワーク
(インターネットなど)上でパケットペアを使用すると
きの欠点と制約を解消している。
【0097】パケットペアが通るルート。例示のバンド
幅メータのパケットペア手法によるパケットは、送信側
エンティティ(例えば、サーバ)から受信側エンティテ
ィ(例えば、クライアント)に走行する。図4は、その
ような走行ルートの例を示す。図4に示す環境は、図1
に示す環境に類似している。
【0098】図4は、代表的なインターネット(TCP
ネットワーク)構成の例を示す図である。そこには、サ
ーバ(メディアサーバ220など)が含まれ、これはイ
ンターネット230に結合されている。サーバは、1ま
たは2以上の物理的サーバコンピュータ222が実装さ
れ、コンピュータは1または2以上の物理的ストレージ
デバイスおよび/またはデータベース224を装備して
いる。インターネット伝送の反対側には、クライアント
290、292が置かれており、これは、インターネッ
トサービスプロバイダ (Internet Serv
ice Provider ISP) 280であ
る、プロキシサーバ284を経由して接続されている。
【0099】インターネットはクラウド230で示され
ているが、理解されるように、このクラウドは、そこに
示されているものだけが置かれているインターネット部
分を表している。このクラウドの内側には、ルータ、伝
送回線、コネクション、および他のデバイスが置かれ、
クライアントとサーバ間のデータ伝送が、ほぼ正常に行
われるようにしている。例示のインターネットクラウド
230の内側には、ルータ232〜244、2つのサテ
ライトディッシュ246、250、およびサテライト2
48が置かれている。これらは、データパケットがサー
バとクライアント間を走行する途中で取り得る経路を表
している。
【0100】図4は、例示のバンド幅メータに従って送
信されるペアの、連続するパケット260、262を示
している。サーバ220は、パケット260の直後にパ
ケット262を送信する。
【0101】プロキシサーバ284は、リンク282を
通してそのISP280に接続されている。クライアン
ト290とクライアント292はプロキシサーバを使用
して、インターネットと通信する。
【0102】アプリケーションレベルでのバンド幅測定 従来のバンド幅測定アプローチは、アプリケーション層
の下のトランスポート層または他の、なんらかの層に実
装されているのが代表的である。しかるに、例示のバン
ド幅メータはアプリケーション層に実装されている。ア
プリケーションレベルでTCPパケットペアバンド幅を
測定する方法には、少なくとも2つの大きな利点があ
る。
【0103】第一は、下位レベル(トランスポート層な
ど)にパケットペア手法を実装することは、不利である
ことである。OSのカーネルの変更が必要になり、段階
的(増分的)展開に役立たないからである。アプリケー
ションレベル実装とは異なり、下位パケットペア実装は
その開発、初期展開、将来の開発、および将来の展開に
多大な費用を要している。
【0104】第二は、ある研究によれば、バンド幅測定
の恩恵を受けるのは、研究対象のTCPコネクションの
うち1/4にすぎないことである。従って、使用される
コネクションがその1/4未満にすぎないときは、この
バンド幅測定を下位レベルに実装することはコスト効果
的でない。従って、このバンド幅は、それを必要とする
アプリケーションに組み込んでおくのが最良である。ア
プリケーションは、オペレーティングシステムの新しい
カーネルよりも、段階的(増分的)展開がはるかに容易
である(低コストである)。
【0105】一般的に、受信側クロックが十分な精度で
あり、IPデータグラム(つまり、パケット)が受信側
ネットワークスタック(OS層)を上方に向かって通り
抜けてアプリケーションに妨害を受けることなく渡され
るようにする考え方が安全な方法である。Americ
a Onlineバージョン4 (AOLv4)および
それ以前のソフトウェアのように、タイマだけでデータ
がアプリケーションに渡されるように振る舞っていた、
ある種のアプリケーションの場合には、この考え方に反
することになる。従って、測定には人工的クロックの細
粒性が要求されていた。幸いなことに、AOLソフトウ
ェアのバージョン5(およびそれ以降)では、このよう
な妨害は起こっていない。
【0106】パケットペア使用による効果的測定の条件 パケットペア手法を使用してバンド幅を測定するとき、
良好な測定を得るためには2つの条件を満足しなければ
ならない。
【0107】第一の条件は、パケットがバックツーバッ
クで送信されなければならないことである。ここでは、
これを「バックツーバック」条件と呼ぶことにする。パ
ケットがバックツーバックで送信されないときは、パケ
ット間のタイミング測定にひずみが生じることになる。
Nagle アルゴリズムとSlow Startアル
ゴリズムはどちらも、この条件に反するおそれがある。
どちらも、2番目の測定パケットの配達を遅延させる潜
在性をもっている。パケットペアを使用してバンド幅を
測定する場合は、実際のバンド幅の測定にひずみが生じ
るので、パケット間に起こることが避けられない遅延は
耐えられないものになっている。
【0108】第二の条件は、パケットのサイズは保たれ
ていなければならないことである。つまり、パケットは
他のパケットと結合してはならない。ここでは、これを
「サイズ保持」条件と呼ぶことにする。Nagle ア
ルゴリズムは、この条件に反するおそれがある。
【0109】Nagle アルゴリズムによると、複数
のアプリケーション層パケットはシングルTCPパケッ
トとして送信されることがある。従って、アプリケーシ
ョンは2またはそれ以上のパケットを送信しているつも
りでいても、実際には、TCP層はシングルパケットだ
けを送信している。
【0110】Nagle アルゴリズムに対する対応策 Nagle アルゴリズムの興味のある振る舞いは、小
さなパケットのとき、未処理のまま残っているACKは
1つだけであることである。従って、ペアになった小さ
なパケットは、Nagle アルゴリズムではバックツ
ーバックで送信することができない。Nagle アル
ゴリズムでは、ACKを待っている小さなパケットは結
合されることになる。これは、「バックツーバック」条
件にも、「サイズ保持」条件にも影響を与えている。
【0111】例示のバンド幅メータでは、Nagle
アルゴリズムがこれら2条件を妨げる傾向を解消するた
めの対応策が講じられている。あるエンティティ(図4
中のサーバ220など)はコマンドを送信し、通信デバ
イス(ルータ230−250など)がNagle アル
ゴリズムを使用禁止 (disable) にするよう
に指示する。一般的に、サーバは「ディレイディスエー
ブル(delay−disable)」コマンドと総称
されるコマンドを渡している。具体的には、サーバはT
CP_NODELAYをSetSockOpt()に渡
している。
【0112】輻輳ウィンドウがオープンしている限り、
Nagle アルゴリズムをオフにすると、TCPはp
acket−pairパケットのいずれも結合する試み
が禁止されるので、TCPは即時にパケットをネットワ
ークに書き出すことになる。
【0113】言い換えれば、Nagle アルゴリズム
を「ディレイディスエーブル」コマンドで使用禁止にす
ると、packet−pairのどちらのパケットも、
Nagleが複数パケットを収集するとそれが原因で起
こる遅延なしで、ルータを通過していくことになる。
【0114】Slow Start アルゴリズムに対
する対応策 例示のバンド幅メータでは、Slow Start ア
ルゴリズムが「バックツーバック」条件を妨げる傾向を
解消するための対応策が講じられている。これは、サー
バの輻輳ウィンドウ(これは具体的には”cwnd”と
名付けられている)を少なくとも3パケットにオープン
することによって行われる。
【0115】これは、輻輳ウィンドウを「プライミング
(priming)」(初期化)することによって行わ
れる。輻輳ウィンドウをプライミング(初期化)するた
めに、サーバは少なくとも1つのパケットを送信し、A
CKを受信してから、packet−pairのペアの
パケットを送信するようにしている。従って、サーバ
は、少なくとも1つの「プライミング」パケットをクラ
イアントに送信するが、そのパケットはバンド幅計算の
ためには使用されない。1つまたは2つ以上のプライミ
ングパケットが送信されたあと、サーバは、バンド幅計
算のために実際に使用されるpacket−pairを
送信する。この時点では、Slow Start アル
ゴリズムでは、少なくとも2パケットが遅延することな
く、続けて通り抜けるようにしている。
【0116】Slow Start アルゴリズムは、
特定のTCPコネクションの後半でバンド幅測定を行う
ようにすると、完全に回避することができる。しかし、
これは、2つの理由で望ましいオプションではない。遅
延とオーバヘッドが増加し、誤った測定の原因となるか
らである。
【0117】測定が後半で行われる場合は、組み込まれ
た遅延があるため、Slow Start アルゴリズ
ムが全コースを走行するまで待たされることになる。回
避できる遅延ならば、ない方がよい。例示のバンド幅メ
ータによると、この遅延を回避することができる。
【0118】バンド幅測定をTCPコネクションの先頭
で行うと、コネクションの進行と共に累積して行く、多
数の不確実性が除去される。例えば、TCPコネクショ
ンが制御層とデータトランスポート層の両方で共有され
ているときは、送信側の輻輳ウィンドウにパケットがバ
ケットツーバックで送信される余裕があるかどうかを、
セッションの後半で予測することは不可能である。
【0119】プロキシでの遅延に対する対応策 プロキシで動作しているNagle アルゴリズムは、
同じように、packet−pairのバンド幅測定に
ひずみを生じさせる可能性がある。一般的に、プロキシ
は「ディレイディスエーブル」コマンドを認識しない。
クライアントとサーバのどちらのアプリケーションも、
コネクションが回線レベルのプロキシを通るように行わ
れているかどうかを、事前に通知することができない。
【0120】プロキシに置かれたNagle アルゴリ
ズムにアドレスするためには、ペアの測定パケットのあ
とに大きな第3パケットが送信されている。プロキシが
packet−pairの第2パケットを保持している
と、この第3パケットは第2パケットをプッシュ(押し
出す)ことになる。従って、この第3パケットは「プッ
シュ(push)」パケットと呼ばれている。
【0121】さらに、第1パケットと第2パケットは、
プロキシで結合するこが可能である。このようにする
と、人工的に得られる測定は高くなるが、いずれにして
も、プロキシユーザの圧倒的多数は高バンド幅コネクシ
ョンをもつことなる。
【0122】方法による実装 図5は、例示のバンド幅メータを方法で実現した例を示
す。これは、サーバ側から見た図である。300で、例
示のバンド幅メータによる動的バンド幅測定が開始され
る。代表例として、クライアントのユーザは、Webペ
ージ上でオプションを選択すると、メディアプレゼンテ
ーションを体験することになる。別の方法として、この
バンド幅測定を、クライアントに置かれたアプリケーシ
ョンで開始することも可能である。そのようなアプリケ
ーションとしては、Webブラウザ、メディアプレイヤ
などがある。
【0123】一般的に、図5の302で、サーバは、一
方が他方の直後に続くように、ペアのパケットをクライ
アントに送信する。このブロック302での具体的な実
装詳細は、図6、図7、および8に示されている。これ
らの図については、下述する。
【0124】306で、サーバはクライアントからの応
答を待っている。時間制限内に応答が受信されなけれ
ば、このプロセスは元に戻り、302で別のペアのパケ
ットが送信される。フローチャートには図示されていな
いが、このプロセスによれば、これは一定の回数繰り返
されたあと、終了し、エラーを生成する。応答が時間制
限内に受信されたときは、プロセスは308で次のブロ
ックに進む。
【0125】応答には、サーバから送られてきたペアの
パケットを使用してクライアントによって、304で判
断されたバンド幅測定が含まれている。308で、サー
バは、応答から特定のバンド幅を抽出する。
【0126】図9の310で、サーバは、特定のバンド
幅に等しいか、それ以下のバンド幅用にフォーマットさ
れたファイル(またはその一部)を選択する。312
で、サーバはそのファイル(またはその一部)をクライ
アントに送信する。
【0127】それがメディアファイルであれば、クライ
アントのユーザは、プレイが即時に開始されるメディア
プレゼンテーションを楽しむことができる。プレイは、
測定されたバンド幅で可能な限り最高品質でスムーズに
行われる。プロセスは314で終了する。
【0128】Nagle アルゴリズムに対する対応
。図6は、Nagle アルゴリズムに対する対応策
として、例示のバンド幅メータを方法で実現した具体例
を示す。402で、サーバは「ディレイディスエーブ
ル」コマンドを送信し、Nagle アルゴリズムの使
用を禁止する。404で、サーバはペアのバンド幅測定
パケットをクライアントに送信する。406で、プロセ
スは図5のブロック306に戻る。
【0129】プロキシ遅延に対する対応策。図7は、プ
ロキシ遅延に対する対応策として、例示のバンド幅メー
タを方法で実現した具体例を示す。412で、サーバは
ペアのバンド幅測定パケットをクライアントに送信す
る。414で、サーバは「プッシュ」パケットを送信
し、通信デバイスによってパケットがストアされている
可能性のあるバッファからペアを押し出す。416で、
プロセスは図5のブロック306に戻る。
【0130】Slow Start アルゴリズムに対
する対応策。図8は、Slow Start アルゴリ
ズムに対する対応策として、例示のバンド幅メータを方
法で実現した具体例を示す。422で、サーバは「プラ
イミング」パケットを送信し、Slow Start
アルゴリズムを解消する。
【0131】この「プライミング」パケットはバンド幅
測定には使用されない。このパケットはネットワークを
オープンさせ(つまり、輻輳ウィンドウをオープンさせ
る)、同時に2つのパケットを遅延なしで可能にする。
424で、サーバはペアのバンド幅測定パケットをクラ
イアントに送信する。426で、プロセスは図5のブロ
ック306に戻る。
【0132】その他の実装の詳細 実装アプリケーション 。例示のバンド幅メータは、ネッ
トワーク上の2エンティティ間のバンド幅を高速に測定
することを望んでいるエンティティによって実装させる
ことが可能である。具体的には、ネットワークは、イン
ターネットなどのTCPネットワークである。
【0133】そのようなエンティティは、この例示のバ
ンド幅メータをアプリケーション層に実装することがで
きる。この例示のバンド幅メータを実装できるアプリケ
ーションレベルのプログラムモジュールの例としては、
サーバ側に置かれていて、Microsoft Med
ia Server (MMS) プロトコルまたはR
eal Time Streaming Protoc
ol (RTSP)のどちらかを使用するストリーミン
グメディアサーバアプリケーションがある。
【0134】MMSとRTSPのどちらも、非常に類似
した基本的手法を共有し、例示のバンド幅メータを使用
して正常な測定を行うための条件を示している。しか
し、RTSPを使用した例示のバンド幅メータの実装
は、MMSプロトコルを使用した実装よりも扱いづらく
なっている。
【0135】RTSPパケットペアの構文。RTSPを
MMSよりも扱いづらくしている1つは、3つのパケッ
トをRTSPコマンドに対する応答であるかのように見
せて、クライアントのRTSPパーサがそれらのパケッ
トを処理できるようにする必要があるからである。RT
SP GET_PARAMETERコマンドは、パケッ
トペアの実験を要求するために使用される。応答の第1
パケットの先頭には、代表的なRTSP応答ヘッダが置
かれている。
【0136】次に示したものは、クライアントからのパ
ケットペア要求のヘッダの例である。
【0137】
【数3】
【0138】次に示したものは、サーバからのパケット
ペア応答のヘッダの例である。
【0139】
【数4】
【0140】TCPの問題。前述したように、輻輳ウィ
ンドウは、少なくとも3パケットがサーバから送られて
くる時点までにその3パケットのためにオープンしてい
る必要がある。初期輻輳ウィンドウは2であるので、3
またはそれ以上のパケットのためにウィンドウをオープ
ンするためにはDESCRIBE応答が使用される。D
ESCRIBE応答が3パケットを要求していれば、こ
れは、3番目のパケットはクライアントからのACKを
待ってからでなければ送信できないことを意味する。
【0141】サーバのTCPが最初の2パケットの一方
または両方のACKを待っている間に、GET_PAR
AMETERが到着し、アプリケーションがGET_P
ARAMETERに対する応答をソケットに書くことを
始めたときは、パケットペアのパケットはDESCRI
BE応答の3番目である最終パケットと結合され、相互
に結合されることになる。従って、クライアントは、D
ESCRIBE応答が完全な形で受信されるまではGE
T_PARAMETERを送信してはならない。
【0142】このようにすると、パケットペアのパケッ
トが送信されるとき輻輳ウィンドウがサーバ側でオープ
ンすることが保証される。その結果、どのパケットも結
合されることはない。DESCRIBE応答は1または
それ以上のパケットのことがあるので、輻輳ウィンドウ
は、パケットペアの実行時に3またはそれ以上になる。
パケットペアの前に他のトラッフィクが行われることが
ないことは、もちろんである。
【0143】到着時間の測定。(アプリケーションレベ
ルで)例示のバンド幅メータのパケットペア測定を実行
するということは、クライアントアプリケーションが2
パケットの到着時間を測定することを意味している。R
TSPでは、正確な測定のために要求される細粒性に比
べて応答ヘッダはその処理に時間がかかるため、これは
余計な難題になっている。従って、クライアントは、応
答の処理が終わるのを待ってからでなければ、パケット
ペアの第1パケットがタイムスタンプされる前にそれが
パケットペア要求に対する応答であることを知ることが
できない。
【0144】このタイムスタンプは、クライアントがど
のタイプの応答であるかを知る前に行われていなければ
ならない。従って、クライアントがパケットペア要求を
行うとき、着信するすべてのコマンド応答はパケットペ
アの受信前にタイムスタンプされる。そのあと、このプ
レタイムスタンプモード (pre−timestam
p mode) から出ることになる。
【0145】このモードから出ても、クライアントは、
第1パケットのヘッダを処理してからでなければ第2パ
ケットを読み取ることができない。従って、ボトルネッ
クをどの高さまで測定できるかには上限があり、これ
は、クライアントがRTSP応答ヘッダをどれだけ高速
に処理できるかによって決まる。例えば、ヘッダを処理
するのに要する時間が5msであれば、測定できる最大
速度は800 kb/s前後である。従って、ハイエン
ドにおけるRTSP測定は、RTSP応答をパース(p
arse:構文解析)するのに要する時間が低くなけれ
ば、MMSほどには良好にならない。
【0146】例示のコンピューティング環境 図9は、例示のバンド幅メータを実現するのに適してい
るコンピューティング環境920の例を示す。
【0147】例示のコンピューティング環境920は、
適したコンピューティング環境の一例にすぎず、例示の
バンド幅メータが使用される範囲または機能する範囲が
限定されることを意味するものではない。また、コンピ
ューティング環境920は、例示のコンピューティング
環境920に図示のコンポーネントまたはその組み合わ
せに関して依存性または要求条件があるものと解釈して
はならない。
【0148】例示のバンド幅メータは、他の多数の汎用
または専用コンピューティングシステム環境または構成
で動作可能になっている。例示のバンド幅メータで使用
するのに適している周知のコンピューティングシステ
ム、環境、および/または構成の例としては、パーソナ
ルコンピュータ、サーバコンピュータ、シンクライアン
ト (thin client)、シッククライアント
(thick client)、ハンドヘルドまたは
ラップトップデバイス、マルチプロセッサシステム、マ
イクロプロセッサベースシステム、セットトップボック
ス (set top box)、プログラマブルコン
シューマエレクトロニクス、ワイヤレス電話、ワイヤレ
ス通信デバイス、ネットワークPC、ミニコンピュー
タ、メインフレームコンピュータ、上述したシステムま
たはデバイスのいずれかを含んでいる分散コンピューテ
ィング環境、などがあるが、これらに限定されるもので
はない。
【0149】例示のバンド幅メータは、プログラムモジ
ュールのように、コンピュータによって実行されるコン
ピュータ実行可能命令という広い意味でとらえて説明す
ることもできる。一般的に、プログラムモジュールに
は、ルーチン、プログラム、オブジェクト、コンポーネ
ント、データ構造などがあり、これらは特定のタスクを
実行し、あるいは特定の抽象データ型を実装している。
例示のバンド幅メータは、通信ネットワークを通してリ
ンクされているリモート処理デバイスによってタスクが
実行されるような分散コンピューティング環境で実施す
ることも可能である。分散コンピューティング環境で
は、プログラムモジュールは、メモリストレージデバイ
スを含む、ローカルとリモートの両方のコンピュータ記
憶媒体に置いておくことができる。
【0150】図9に示すように、コンピューティング環
境920は、汎用コンピューティングデバイスをコンピ
ュータ930の形で含んでいる。コンピュータ920の
コンポーネントとしては、1または2以上のプロセッサ
または処理ユニット932、システムメモリ934、お
よびシステムメモリ934を含む、種々のシステムコン
ポーネントをプロセッサ932に結合するバス936が
あるが、これらに限定されるものではない。
【0151】バス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:ペリフェラルコンポーネン
ト相互接続)バスがあるが、これらに限定されない。
【0152】コンピュータ930は、種々のコンピュー
タ読取可能媒体を装備しているのが代表的である。その
ような媒体としては、コンピュータ930によってアク
セス可能ならば、どの利用可能な媒体にすることも可能
であり、その中には、揮発性媒体と不揮発性媒体、取り
外し可能媒体と取り外し不能(固定)媒体が含まれてい
る。
【0153】図9に示すように、システムメモリに装備
されているコンピュータ読取可能媒体は、ランダムアク
セスメモリ (random access memo
ryRAM)940などの揮発性、および/またはリー
ドオンリメモリ (read only memory
ROM)938などの不揮発性の形体になってい
る。スタートアップ時のときのように、コンピュータ9
30内のエレメント間で情報を転送するのを支援する基
本ルーチンからなる、基本入出力システム(basic
input/output system) 942
は、ROM938に格納されている。RAM 940
は、プロセッサ932によって即時にアクセス可能であ
る、および/または現在操作可能であるデータおよび/
またはプログラムモジュールを格納しているのが代表的
である。
【0154】コンピュータ930は、さらに、他の取り
外し可能/取り外し不能、揮発性/不揮発性コンピュー
タ記憶媒体を装備することも可能である。図9には、取
り外し不能、不揮発性磁気媒体との間で読み書きするハ
ードディスクドライブ944(これは、図には示されて
いないが、「ハードドライブ」とも呼ばれている)、取
り外し可能、不揮発性磁気ディスク948(例えば、
「フロッピディスク」)との間で読み書きする磁気ディ
スクドライブ946、およびCD−ROM、DVD−R
OM、その他の光媒体などの取り外し可能、不揮発性光
ディスク952との間で読み書きする光ディスクドライ
ブ950が示されているが、これらは一例にすぎない。
ハードディスクドライブ944、磁気ディスクドライブ
946、および光ディスクドライブ950は、それぞれ
1または2以上のインタフェースを通してバス936に
接続されている。
【0155】これらのドライブおよびその関連コンピュ
ータ読取可能媒体は、コンピュータ読取可能命令、デー
タ構造、プログラムモジュール、および他のデータを、
コンピュータ930のために永続的(不揮発性)に保存
している。ここで説明している例示の環境は、ハードデ
ィスク、取り外し可能磁気ディスク948および取り外
し可能光ディスク952を採用しているが、この分野の
精通者ならば当然に理解されるように、コンピュータが
アクセスできるデータを、他のタイプのコンピュータ読
取可能媒体に保管しておくことも可能である。そのよう
なものとしては、磁気カセット、フラッシュメモリカー
ド、デジタルビデオディスク、ランダムアクセスメモリ
(RAM)、リードオンリメモリ (ROM)などが
あり、これらも例示の動作環境で使用することができ
る。
【0156】いくつかのプログラムモジュールを、ハー
ドディスク、磁気ディスク948、光ディスク952、
ROM 938またはRAM 940に格納しておくこ
とも可能であり、そのようなものの例としては、オペレ
ーティングシステム958、1または2以上のアプリケ
ーションプログラム960、他のプログラムモジュール
962、およびプログラムデータ964があるが、これ
らに限定されない。
【0157】ユーザは、キーボード966やポインティ
ングデバイス968(「マウス」など)などの入力デバ
イスを通してコマンドおよび情報をコンピュータ930
に入力することができる。その他の入力デバイス(図示
せず)としては、マイクロホン、ジョイスティック、ゲ
ームパッド、サテライトディッシュ、シリアルポート、
スキャナなどがある。上記および他の入力デバイスは、
バス936に結合されたユーザ入力インタフェース97
0を通して処理ユニット932に接続されているが、パ
ラレルポート、ゲームポート、ユニバーサルシリアルバ
ス (universal serial bus −
USB) などの、他のインタフェースおよびバス構
造で接続することも可能である。
【0158】モニタ972や他のタイプのディスプレイ
デバイスも、ビデオアダプタ974などのインタフェー
スを通してバス936に接続されている。モニタのほか
に、パーソナルコンピュータは、スピーカやプインタな
どの他の周辺出力デバイス(図せず)を装備しているの
が代表的であり、これらは出力周辺インタフェース97
5を通して接続可能になっている。
【0159】コンピュータ930は、リモートコンピュ
ータ982などの、1または2以上のリモートコンピュ
ータとの論理的コネクションを使用したネットワーキン
グ環境で動作させることができる。リモートコンピュー
タ982は、コンピュータ930に関連して上述したエ
レメントと特徴の多くまたはすべてを具備することがで
きる。
【0160】図9に示す論理的コネクションとは、ロー
カルエリアネットワーク (local area n
etwork LAN) 977と一般的な広域ネッ
トワーク (wide area network
WAN) 979である。このようなネットワーキング
環境は、オフィス、企業内コンピュータネットワーク、
イントラネット、およびインターネット (the I
nternet) で普及されている。
【0161】LANネットワーキング環境で使用される
ときは、コンピュータ930はLAN977のネットワ
ークインタフェースまたはアダプタ986に接続されて
いる。WANネットワーキング環境で使用されるとき
は、コンピュータは、WAN979上のコミュニケーシ
ョンを確立するためのモデム978または他の手段を装
備しているのが代表的である。モデム978は内蔵され
ているものと、外付けのものとがあるが、どちらも、ユ
ーザ入力インタフェース970または他の該当メカニズ
ムを通してシステムバス936に接続可能になってい
る。
【0162】図9に示したのは、インターネットを通し
たWANの構築例である。インターネット上では、コン
ピュータ930は、インターネット980上のコミュニ
ケーションを確立するためのモデム978または他の手
段を装備しているのが代表的である。モデム978は内
蔵されているものと、外付けのものとがあるが、どちら
も、インタフェース970を通してバス936に接続さ
れている。
【0163】ネットワーキング環境では、パーソナルコ
ンピュータ930に関連して示されているプログラムモ
ジュールまたはその一部は、リモートのメモリストレー
ジデバイスに格納しておくことができる。一例として、
図9に示されているリモートアプリケーションプログラ
ムは、リモートコンピュータ982のメモリデバイスに
置かれているが、これに限定されない。理解されるよう
に、図示し、上述してきたネットワークコネクションは
例示であり、コンピュータ間の通信リンクを確立する他
の手段を使用することも可能である。
【0164】例示の動作環境 図9は、例示のバンド幅メータを実現するのに適してい
る動作環境920の例を示す。具体的には、例示のバン
ド幅メータは、図9では、任意のプログラム960−9
62またはオペレーティングシステム958によって実
現されている。
【0165】この動作環境は、適している動作環境の一
例にすぎず、ここで説明されているバンド幅メータが使
用される範囲または機能する範囲が限定されることを意
味するものではない。バンド幅メータで使用するのに適
している、他の周知のコンピューティングシステム、環
境、および/または構成としては、パーソナルコンピュ
ータ、サーバコンピュータ、ハンドヘルドまたはラップ
トップデバイス、マルチプロセッサシステム、マイクロ
プロセッサベースシステム、プログラマブルコンシュー
マエレクトロニクス、ネットワークPC、ミニコンピュ
ータ、メインフレームコンピュータ、上記システムまた
はデバイスを含んでいる分散コンピューティング環境な
どがあるが、これらに限定されない。
【0166】コンピュータ実行可能命令 例示のバンド幅メータの実装は、プログラムモジュール
のように、1または2以上のコンピュータまたは他のデ
バイスによって実行されるコンピュータ実行可能命令を
広い意味でとらえて説明することができる。一般的に、
プログラムモジュールとしては、特定のタスクを実行す
る、または特定の抽象データ型を実装しているルーチ
ン、プログラム、オブジェクト、コンポーネント、デー
タ構造などがある。代表例として、プログラムモジュー
ルの機能は、種々の実施形態において必要に応じて結合
し、あるいは分散化することができる。
【0167】コンピュータ読取可能媒体 例示のバンド幅メータの実装は、ある種のコンピュータ
読取可能媒体に保管しておくことも、媒体間で受け渡し
することも可能である。コンピュータ読取可能媒体は、
コンピュータによってアクセス可能であれば、どのよう
な利用可能な媒体にもすることができる。例を挙げる
と、コンピュータ読取可能媒体としては、コンピュータ
記憶媒体と通信媒体があるが、これに限定されない。
【0168】コンピュータ読取可能媒体には、コンピュ
ータ読取可能命令、データ構造、プログラムモジュー
ル、他のデータなどの情報を格納するためにいずれかの
方法またはテクノロジで実現された揮発性と不揮発性、
取り外し可能と取り外し不能媒体がある。コンピュータ
記憶媒体としては、RAM、ROM、EEPROM、フ
ラッシュメモリや他のメモリテクノロジ、CD−RO
M、デジタルバーサタイルディスク (digital
versatile disk DVD)や他の光
ストレージ、磁気カセット、磁気テープ、磁気ディスク
ストレージや他の磁気ストレージデバイス、または必要
とする情報を保管しておくために使用でき、コンピュー
タによってアクセス可能な他の媒体があるが、これらに
限定されない。
【0169】通信媒体は、コンピュータ読取可能命令、
データ構造、プログラムモジュール、あるいは他のデー
タを、搬送波などの変調データ信号または他のトランス
ポートメカニズムの形で具現化しているのが代表的であ
り、その中には、情報配達媒体が含まれている。ここで
「変調データ信号(modulated datasi
gnal)」とは、その特性1つまたは2つ以上が、信
号の中の情報を符号化(エンコード)するような形でセ
ットまたは変更されている信号のことである。例を挙げ
ると、通信媒体には、ワイヤドネットワークや直接ワイ
ヤドコネクションなどのワイヤド媒体、音響、RF、赤
外線、その他のワイヤレス媒体のようなワイヤレス媒体
があるが、これらに限定されない。上記を任意に組み合
わせたものも、コンピュータ読取可能媒体の範囲に含ま
れている。
【0170】結論 TCPネットワーク環境におけるバンド幅の高速動的測
定を、構造上の特徴および/または方法で表したステッ
プに特有の表現で説明してきたが、当然に理解されるよ
うに、請求項に明確化されている、TCPネットワーク
環境におけるバンド幅の高速動的測定は、必ずしも上述
した具体的特徴またはステップに限定されるものではな
い。むしろ、具体的特徴とステップは、請求項に記載
の、TCPネットワーク環境におけるバンド幅の高速動
的測定を実現する好適形態として開示されている。
【0171】
【発明の効果】以上説明したように、本発明によれば、
Nagle アルゴリズムの適用を禁止すること、「プ
ッシュ」パケットをパケットペアの直後に送信すること
によってパケットのバッファリングを最小限にするこ
と、およびダミーパケットで初期化(プライミング)す
ることによってSlow Start アルゴリズムを
回避する。
【図面の簡単な説明】
【図1】代表的な公衆ネットワーキング環境(インター
ネットなど)およびサーバからクライアントに送信され
るデータパケットのルーティングと遅延を示す図であ
る。
【図2】Webページのカッタウェイ部分を示す図であ
り、このカッタウェイには、バンド幅を選択するための
メカニズムをユーザに提供するユーザインタフェースが
示されている。また、そこには、バンド幅を判断するた
めの従来の手法が示されている。
【図3】時間ドメインでグラフ化されたパケットペア
(サーバからクライアントに送信される)を示す図であ
る。
【図4】代表的な公衆ネットワーキング環境(インター
ネットなど)を示す図であり、そこには、バックツーバ
ックで送信されるペアのパケットが示されている。
【図5】例示のバンド幅測定を方法で実現した例を示す
フローチャートである。
【図6】図6は、例示のバンド幅測定の異なる側面を方
法で実現した具体例の詳細を示すフローチャートであ
る。
【図7】例示のバンド幅測定の異なる側面を方法で実現
した具体例の詳細を示すフローチャートである。
【図8】例示のバンド幅測定の異なる側面を方法で実現
した具体例の詳細を示すフローチャートである。
【図9】例示のバンド幅測定の実現を可能にするコンピ
ューティング動作環境の例を示す図である。
【符号の説明】
220 メディアサーバ 222 サーバコンピュータ 224 データベース 230 インターネット 232−244 ルータ 246、250 サテライトディッシュ 248 サテライト 260、262 パケット 280 インターネットサービスプロバイダ (IS
P) 282 リンク 284 プロキシサーバ 290、292 クライアント
フロントページの続き (72)発明者 ダビド デル バル スペイン 28034 マドリード バジェ デ ラシアナ 13 (72)発明者 アンダース イー.クレメッツ アメリカ合衆国 98122 ワシントン州 シアトル 28 アベニュー 523 Fターム(参考) 5K030 GA02 HA08 LC01 LC14 MB06

Claims (38)

    【特許請求の範囲】
  1. 【請求項1】 ネットワーク上のエンティティ間の高速
    パケット通信を容易化する方法であって、 ディレイディスエーブル (delay−disabl
    e) コマンドを送信し、 パケット集合を送信側エンティティから受信側エンティ
    ティに送信することを特徴とする方法。
  2. 【請求項2】 請求項1に記載の方法において、パケッ
    ト集合はバックツーバックで送信される2つのパケット
    を含むことを特徴とする方法。
  3. 【請求項3】 請求項1に記載の方法において、パケッ
    ト集合は、第1バンド幅測定パケットと第2バンド幅測
    定パケットとを含み、第2パケットは第1パケットの直
    後に送信されることを特徴とする方法。
  4. 【請求項4】 請求項1に記載の方法において、ネット
    ワークはTCPであることを特徴とする方法。
  5. 【請求項5】 請求項1に記載の方法において、ディレ
    イディスエーブルコマンドは、ネットワーク上の1また
    は2以上の通信デバイス上のNagle アルゴリズム
    を使用禁止にすることを特徴とする方法。
  6. 【請求項6】 請求項1に記載の方法において、ディレ
    イディスエーブルコマンドはTCP_NODELAYで
    あることを特徴とする方法。
  7. 【請求項7】 コンピュータによって実行されたとき、
    請求項1に記載の方法をOSIモデルに準拠するアプリ
    ケーション層で実行するコンピュータ実行可能命令を実
    装していることを特徴とするプログラムモジュール。
  8. 【請求項8】 コンピュータによって実行されたとき、
    請求項1に記載の方法を実行するコンピュータ実行可能
    命令を収めていることを特徴とするコンピュータ読取可
    能媒体。
  9. 【請求項9】 ネットワーク上のエンティティ間の高速
    パケット通信を容易化する方法であって、 パケット集合を送信側エンティティから受信側エンティ
    ティに送信し、この場合、パケット集合に含まれるパケ
    ット間の伝送遅延は許容限度を超えており、 前記の直後に、パケット集合に含まれるパケット間の伝
    送遅延を警告するために少なくとも1つの「プッシュ」
    パケットを送信し、この場合、前記遅延はネットワーク
    上の通信デバイスのパケットバッファリングが原因であ
    ることを特徴とする方法。
  10. 【請求項10】 請求項9に記載の方法において、パケ
    ット集合は、バックツーバックで送信される2つのパケ
    ットを含むことを特徴とする方法。
  11. 【請求項11】 請求項9に記載の方法において、パケ
    ット集合は送信側エンティティと受信側エンティティ間
    のバンド幅を測定するためのバンド幅測定パケットであ
    ることを特徴とする方法。
  12. 【請求項12】 請求項9に記載の方法において、通信
    デバイスはプロキシサーバであることを特徴とする方
    法。
  13. 【請求項13】 請求項9に記載の方法において、ネッ
    トワークはTCPであることを特徴とする方法。
  14. 【請求項14】 コンピュータによって実行されたと
    き、請求項9に記載の方法をOSIモデルに準拠するア
    プリケーション層で実行するコンピュータ実行可能命令
    を実装していることを特徴とするプログラムモジュー
    ル。
  15. 【請求項15】 コンピュータによって実行されたと
    き、請求項9に記載の方法を実行するコンピュータ実行
    可能命令を収めていることを特徴とするコンピュータ読
    取可能媒体。
  16. 【請求項16】 ネットワーク上のエンティティ間の高
    速パケット通信を容易化する方法であって、 パケット集合を送信側エンティティから受信側エンティ
    ティに送信し、この場合、パケット集合に含まれるパケ
    ット間の伝送遅延は許容限度を超えており、 前記の直後に、パケット集合に含まれるパケット間の伝
    送遅延を警告するために少なくとも1つの「プライミン
    グ」パケットを送信し、この場合、前記遅延はネットワ
    ーク上の通信デバイスのフロー制御機能が原因であるこ
    とを特徴とする方法。
  17. 【請求項17】 請求項16に記載の方法において、パ
    ケット集合は、バックツーバックで送信される2つのパ
    ケットを含むことを特徴とする方法。
  18. 【請求項18】 請求項16に記載の方法において、パ
    ケット集合は送信側エンティティと受信側エンティティ
    間のバンド幅を測定するためのバンド幅測定パケットで
    あることを特徴とする方法。
  19. 【請求項19】 請求項16に記載の方法において、ネ
    ットワークはTCPであることを特徴とする方法。
  20. 【請求項20】 請求項16に記載の方法において、送
    信側エンティティから受信側エンティティへの間にTC
    Pコネクションを確立するステップをさらに含み、確立
    するステップはパケット集合が送信される直前に行われ
    ることを特徴とする方法。
  21. 【請求項21】 請求項16に記載の方法において、フ
    ロー制御機能はSlow Start アルゴリズムで
    あることを特徴とする方法。
  22. 【請求項22】 コンピュータによって実行されたと
    き、請求項16に記載の方法をOSIモデルに準拠する
    アプリケーション層で実行するコンピュータ実行可能命
    令を実装していることを特徴とするプログラムモジュー
    ル。
  23. 【請求項23】 コンピュータによって実行されたと
    き、請求項16に記載の方法を実行するコンピュータ実
    行可能命令を収めていることを特徴とするコンピュータ
    読取可能媒体。
  24. 【請求項24】 ネットワーク上の2エンティティ間の
    バンド幅測定を容易化する方法であって、 ディレイディスエーブル (delay−disabl
    e) コマンドを送信し、 送信側エンティティから受信側エンティティにペアのバ
    ンド幅測定パケットを送信することを特徴とする方法。
  25. 【請求項25】 請求項24に記載の方法において、ペ
    アのパケットに関係する測定に基づくバンド幅計算を受
    信するステップをさらに含むことを特徴とする方法。
  26. 【請求項26】 ネットワーク上のエンティティ間のバ
    ンド幅測定を容易化する方法であって、 ペアのパケットを送信側エンティティから受信側エンテ
    ィティに送信し、この場合、ペアに含まれるパケット間
    の伝送遅延は許容限度を超えており、 前記の直後に、ペアに含まれるパケット間の伝送遅延を
    警告するために少なくとも1つの「プッシュ」パケット
    を送信し、この場合、前記遅延はネットワーク上の通信
    デバイスのパケットバッファリングが原因であることを
    特徴とする方法。
  27. 【請求項27】 請求項26に記載の方法において、ペ
    アのパケットに関係する測定に基づくバンド幅計算を受
    信することを特徴とする方法。
  28. 【請求項28】 ネットワーク上のエンティティ間のバ
    ンド幅測定を容易化する方法であって、 ペアのパケットを送信側エンティティから受信側エンテ
    ィティに送信し、この場合、ペアに含まれるパケット間
    の伝送遅延は許容限度を超えており、 前記の直後に、ペアに含まれるパケット間の伝送遅延を
    警告するために少なくとも1つの「プライミング」パケ
    ットを送信し、この場合、前記遅延はネットワーク上の
    通信デバイスのフロー制御機能が原因であることを特徴
    とする方法。
  29. 【請求項29】 請求項28に記載の方法において、ペ
    アのパケットに関係する測定に基づくバンド幅計算を受
    信するステップをさらに含むことを特徴とする方法。
  30. 【請求項30】 コンピュータによって実行されたと
    き、ネットワーク上のエンティティ間の高速パケット通
    信を高速化する方法を実行するコンピュータ実行可能命
    令を収めているコンピュータ読取可能媒体であって、前
    記方法は、 ディレイディスエーブル (delay−disabl
    e) コマンドを送信し、 送信側エンティティから受信側エンティティにパケット
    集合を送信することを特徴とするコンピュータ読取可能
    媒体。
  31. 【請求項31】 コンピュータによって実行されたと
    き、ネットワーク上のエンティティ間の高速パケット通
    信を高速化する方法を実行するコンピュータ実行可能命
    令を収めているコンピュータ読取可能媒体であって、前
    記方法は、 パケット集合を送信側エンティティから受信側エンティ
    ティに送信し、この場合、パケット集合に含まれるパケ
    ット間の伝送遅延は許容限度を超えており、 前記の直後に、パケット集合に含まれるパケット間の伝
    送遅延を警告するために少なくとも1つの「プッシュ」
    パケットを送信し、この場合、前記遅延はネットワーク
    上の通信デバイスのパケットバッファリングが原因であ
    ることを特徴とするコンピュータ読取可能媒体。
  32. 【請求項32】 コンピュータによって実行されたと
    き、ネットワーク上のエンティティ間の高速パケット通
    信を高速化する方法を実行するコンピュータ実行可能命
    令を収めているコンピュータ読取可能媒体であって、前
    記方法は、パケット集合を送信側エンティティから受信
    側エンティティに送信し、この場合、パケット集合に含
    まれるパケット間の伝送遅延は許容限度を超えており、 前記の直後に、パケット集合に含まれるパケット間の伝
    送遅延を警告するために少なくとも1つの「プライミン
    グ」パケットを送信し、この場合、前記遅延はネットワ
    ーク上の通信デバイスのフロー制御機能が原因であるこ
    とを特徴とするコンピュータ読取可能媒体。
  33. 【請求項33】 プロセッサと、プロセッサ上で実行可
    能な伝送遅延アボイダとを備えた装置であって、前記伝
    送遅延アボイダは、 ディレイディスエーブル (delay−disabl
    e) コマンドを送信し、 送信側エンティティから受信側エンティティにパケット
    集合を送信することを特徴とする装置。
  34. 【請求項34】 プロセッサと、プロセッサ上で実行可
    能な伝送遅延アボイダとを備えた装置であって、前記伝
    送遅延アボイダは、 パケット集合を送信側エンティティから受信側エンティ
    ティに送信し、この場合、パケット集合に含まれるパケ
    ット間の伝送遅延は許容限度を超えており、 前記の直後に、パケット集合に含まれるパケット間の伝
    送遅延を警告するために少なくとも1つの「プッシュ」
    パケットを送信し、この場合、前記遅延はネットワーク
    上の通信デバイスのパケットバッファリングが原因であ
    ることを特徴とする装置。
  35. 【請求項35】 プロセッサと、プロセッサ上で実行可
    能な伝送遅延アボイダとを備えた装置であって、前記伝
    送遅延アボイダは、 パケット集合を送信側エンティティから受信側エンティ
    ティに送信し、この場合、パケット集合に含まれるパケ
    ット間の伝送遅延は許容限度を超えており、 前記の直後に、パケット集合に含まれるパケット間の伝
    送遅延を警告するために少なくとも1つの「プライミン
    グ」パケットを送信し、この場合、前記遅延はネットワ
    ーク上の通信デバイスのフロー制御機能が原因であるこ
    とを特徴とする装置。
  36. 【請求項36】 データフィールドがそこに符号化され
    ていて、通信チャネル上を伝送される変調データ信号で
    あって、 ディレイディスエーブル (delay−disabl
    e) コマンドを含んでいる第1フィールドと、 第1バンド幅測定パケットを含んでいる第2フィールド
    と、 第2バンド幅パケットを含んでいる第3フィールドと、
    を備えていることを特徴とする変調データ信号。
  37. 【請求項37】 データフィールドがそこに符号化され
    ていて、通信チャネル上を伝送される変調データ信号で
    あって、 第1バンド幅測定パケットを含んでいる第1フィールド
    と、 第1バンド幅測定パケットを含んでいる第2フィールド
    と、 第1パケットと第2パケット間の伝送遅延の最小限化を
    容易にする「プッシュ」パケットを含んでいる第3フィ
    ールドとを備え、前記遅延はネットワーク上の通信デバ
    イスのパケットバッファリングが原因であることを特徴
    とする変調データ信号。
  38. 【請求項38】 データフィールドがそこに符号化され
    ていて、通信チャネル上を伝送される変調データ信号で
    あって、 「プライミング」パケットを含んでいる第1フィールド
    と、 第1バンド幅測定パケットを含んでいる第2フィールド
    と、 第2バンド幅測定パケットを含んでいる第3フィールド
    とを備え、前記「プライミング」パケットはパケット間
    の伝送遅延の最小限化を容易にし、前記遅延はネットワ
    ーク上の通信デバイスのフロー制御機能が原因であるこ
    とを特徴とする変調データ信号。
JP2001242612A 2000-08-09 2001-08-09 Tcpネットワーク環境におけるバンド幅の高速動的測定 Expired - Fee Related JP4806141B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10150468A (ja) * 1996-11-18 1998-06-02 Fujitsu Ltd 送信履歴ビットを持つデータ処理装置およびデータ通信方法

Family Cites Families (97)

* Cited by examiner, † Cited by third party
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

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10150468A (ja) * 1996-11-18 1998-06-02 Fujitsu Ltd 送信履歴ビットを持つデータ処理装置およびデータ通信方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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