JP2018531552A - ネットワークを介するレートベースパケット伝送のためのシステムおよび方法 - Google Patents

ネットワークを介するレートベースパケット伝送のためのシステムおよび方法 Download PDF

Info

Publication number
JP2018531552A
JP2018531552A JP2018516778A JP2018516778A JP2018531552A JP 2018531552 A JP2018531552 A JP 2018531552A JP 2018516778 A JP2018516778 A JP 2018516778A JP 2018516778 A JP2018516778 A JP 2018516778A JP 2018531552 A JP2018531552 A JP 2018531552A
Authority
JP
Japan
Prior art keywords
transmission
data
rate
appliance
packet
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
JP2018516778A
Other languages
English (en)
Other versions
JP6510142B2 (ja
JP2018531552A6 (ja
Inventor
ムスタファ クツルク テスティシオグル,
ムスタファ クツルク テスティシオグル,
マヘシュ マイララッパ,
マヘシュ マイララッパ,
Original Assignee
サイトリックス システムズ,インコーポレイテッド
サイトリックス システムズ,インコーポレイテッド
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 サイトリックス システムズ,インコーポレイテッド, サイトリックス システムズ,インコーポレイテッド filed Critical サイトリックス システムズ,インコーポレイテッド
Publication of JP2018531552A publication Critical patent/JP2018531552A/ja
Publication of JP2018531552A6 publication Critical patent/JP2018531552A6/ja
Application granted granted Critical
Publication of JP6510142B2 publication Critical patent/JP6510142B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/12Avoiding congestion; Recovering from congestion
    • H04L47/125Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/25Flow control; Congestion control with rate being modified by the source upon detecting a change of network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L5/00Arrangements affording multiple use of the transmission path
    • H04L5/003Arrangements for allocating sub-channels of the transmission path
    • H04L5/0053Allocation of signaling, i.e. of overhead other than pilot signals
    • H04L5/0055Physical resource allocation for ACK/NACK
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W28/00Network traffic management; Network resource management
    • H04W28/02Traffic management, e.g. flow control or congestion control
    • H04W28/0273Traffic management, e.g. flow control or congestion control adapting protocols for flow control or congestion control to wireless environment, e.g. adapting transmission control protocol [TCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/02Processing of mobility data, e.g. registration information at HLR [Home Location Register] or VLR [Visitor Location Register]; Transfer of mobility data, e.g. between HLR, VLR or external networks
    • H04W8/04Registration at HLR or HSS [Home Subscriber Server]

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Environmental & Geological Engineering (AREA)
  • Databases & Information Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

データ伝送を制御するためのアプライアンスが説明される。アプライアンスは、リンクを経由する第1のデータパケットのフローに関するデータを取得し、フローに対するトランスポート通信プロトコル(TCP)特性を決定するように構成されているパケットエンジンを含む。アプライアンスは、第2のデータパケットを受信し、TCP特性に基づいて、伝送レートを決定し、1つ以上の基準に基づいて、レートベースのデータ伝送制御を使用すべきかどうかを決定し、第1のデータパケットの伝送を制御するように構成されたデータ伝送コントローラも含む。データ伝送コントローラは、レートベースのデータ伝送制御が第2のデータパケットの伝送を制御するために使用されるべきであるという決定に応答して、パケットエンジンに、第2のデータパケットをグループで伝送させるようにも構成されている。

Description

ネットワーク環境では、ネットワーク輻輳は、リンクまたはネットワークノード(例えば、ルータ)が多数のデータパケットでオーバーロードされるときに生じ得、それは、有意な伝送遅延につながり得る。さらに、ネットワークノードがデータパケットを処理不能であり、それらをドロップせざるを得ないので、有意なデータパケット損失が、生じ得る。これらは全て、ネットワーク性能の有意な劣化につながり得る。
ネットワークのオーバーロードを回避し、ネットワーク性能を改良するために利用可能な種々のスキームが存在する。例えば、トランスポート通信プロトコル(TCP)は、いくつかの輻輳制御機構を提供し、それは、ネットワークの中に送信されるデータの量を制御するための輻輳ウィンドウの使用を含む。輻輳ウィンドウは、1つのネットワークラウンドトリップ時間(RTT)内にネットワークの中に伝送され得るデータの最大サイズを定義することができる。RTTは、送信側デバイスがデータパケットを伝送するときと、送信側デバイスが受信側デバイスから伝送されたデータパケットに対する肯定応答を受信するときとの間の経過時間に基づいて測定されることができる。輻輳ウィンドウは、ネットワークがより多くのデータパケットを伝送するための容量を有することの指示(例えば、伝送されたデータパケットに対応する肯定応答の受信によって示され得る、ネットワークを通したデータパケットの前の伝送の成功)に基づいて、より多くのデータがネットワークの中に送信されることを可能にするために増加させられることができる。輻輳ウィンドウは、ネットワークが輻輳していることの指示に基づいて、より少ないデータがネットワークの中に送信されることを可能にするために減少させられることもできる。そのような指示は、例えば、ある数の重複肯定応答の受信、選択的肯定応答(SACK)、肯定応答の受信前にRTTの推定値を反映するタイマが切れるとき等のパケット損失の検出に基づくことができる。TCP輻輳制御機構は、再伝送アルゴリズムも含み、データパケットが損失されたことの指示が存在するとき、データパケットが再伝送される。さらに、TCPは、遅延肯定応答も可能にし、いくつかの肯定応答(いくつかのデータパケットの受信に応答して)が、単一肯定応答に組み合わせられ、プロトコルオーバーヘッドを低減させることができる。
前述のTCP輻輳制御機構は、いくつかの仮定に基づいて動作する。そのような仮定は、例えば、1)ボトルネックノード(例えば、ルータ)の帯域幅が同一のままであることと、2)接続待ち時間における変化が、パケットがネットワーク輻輳を示すボトルネックノードにおいて待ち行列に入れられていることを示すことと、3)パケット損失が、典型的には、ネットワーク輻輳の指示であり、それに帰することと、4)重複肯定応答にもつながり得る、パケット並べ替えが、希事象であり、数パケット内で検出され得ることと、5)遅延させられた肯定応答が、遅延肯定応答アルゴリズムがアクティブであるときのみに観察され、最大2つのパケットに対して1つの肯定応答に限定されることとを含み得る。
前述の仮定のうちの全部ではないにしても、大部分は、無線ネットワーク(例えば、WiFi、LIB等)等のいくつかのタイプのネットワークに対して不正確であり得る。例えば、LTEネットワークでは、帯域幅は、下位層において展開されるチャネル/搬送波集約技法に起因して変動し得る。媒体アクセス制御(MAC)および無線リンク制御(RLC)層における再伝送機構に起因して、連続待ち時間変動も存在し得る。チャネルおよび搬送波集約/集約解除時、待ち時間が多数の通常パス待ち時間に急増することも観察されている。さらに、MACおよびRLC構成に基づく多数のアウトオブオーダパケットが、観察され得る。さらに、必ずしも輻輳に起因するネットワークノードのデータパケットの処理の失敗に帰するわけではないランダムデータパケット損失が、無線ネットワークにおいて頻繁に生じる。したがって、ランダムデータパケット損失は、典型的には、そのようなネットワーク内のネットワーク輻輳の信頼性のあるインジケータではない。
全てのこれらの不正確な仮定は、パケット損失の正しくない決定および/またはネットワーク輻輳の正しくない決定につながり得る。例えば、ランダムデータパケット損失は、ネットワーク輻輳を示すように間違って解釈され得る。さらに、いくつかの無線規格(例えば、4G)下では、受信側デバイスは、ストレッチ肯定応答を送信し得、それは、データの完全RTTに値する量を対象とし得るが、データ送信の1 RTT内で到着しない。ストレッチ肯定応答の遅延させられた受信は、いくつかの点においてTCP輻輳制御機構の動作に影響を及ぼし得る。第1に、TCP輻輳制御機構下では、輻輳ウィンドウの調節およびデータパケットの次の組の伝送の両方が、前に伝送されたデータパケットの肯定応答の受信によってトリガされ、それらの前に伝送されたデータパケットに対応する、ストレッチ肯定応答の遅延させられた受信によって延期され、ネットワークリソースの過小利用につながり得る。第2に、輻輳関連パケット損失の正しくない決定が生じる場合、例えば、ストレッチ肯定応答が、ネットワーク輻輳に起因してではなく、ストレッチ肯定応答の生成のためのデータの蓄積に起因して、予期されるRTTよりも後に到着するとき、輻輳ウィンドウサイズの不必要な低減およびデータパケットの再伝送が、生じ得る。ネットワーク性能は、その結果、劣化し得る。
いくつかの側面では、データ伝送を制御するためのアプライアンスが、説明される。アプライアンスは、リンクを経由した第1のデータパケットのフローに関するデータを取得し、フローに対するトランスポート通信プロトコル(TCP)特性を決定するように構成されているパケットエンジンを含むことができる。アプライアンスは、第2のデータパケットを受信し、伝送レートを決定し、1つ以上の基準に基づいて、レートベースのデータ伝送制御が第2のデータパケットの伝送を制御するために使用されるべきかどうかを決定するように構成されるデータ伝送コントローラも含むことができる。データ伝送コントローラは、レートベースのデータ伝送制御が第2のデータパケットの伝送を制御するために使用されるべきであることの決定に応答して、パケットエンジンに、第2のデータパケットをグループで伝送させるように構成され、第2のデータパケットの各グループの伝送時間は、伝送レートに基づいて決定される。
別の側面では、データ伝送を制御する方法が説明される。方法は、リンクを経由した第1のデータパケットのフローに関するデータを取得することと、フローに対するトランスポート通信プロトコル(TCP)特性を決定することと、第2のデータパケットを受信することと、伝送レートを決定することと、1つ以上の基準に基づいて、レートベースのデータ伝送制御が第2のデータパケットの伝送を制御するために使用されるべきかどうかを決定することと、レートベースのデータ伝送制御が第2のデータパケットの伝送を制御するために使用されるべきであることの決定に応答して、第2のデータパケットをグループで伝送することとを含むことができ、第2のデータパケットの各グループの伝送時間は、伝送レートに基づいて決定される。
さらに別の側面では、非一過性コンピュータ読み取り可能な記憶媒体が説明される。記憶媒体は、アプライアンスの少なくとも1つのプロセッサによって実行可能であり、アプライアンスにデータ伝送を制御する方法を行わせる、命令の組を記憶する。方法は、リンクを経由した第1のデータパケットのフローに関するデータを取得することと、フローに対するトランスポート通信プロトコル(TCP)特性を決定することと、第2のデータパケットを受信することと、伝送レートを決定することと、1つ以上の基準に基づいて、レートベースのデータ伝送制御が第2のデータパケットの伝送を制御するために使用されるべきかどうかを決定することと、レートベースのデータ伝送制御が第2のデータパケットの伝送を制御するために使用されるべきであることの決定に応答して、第2のデータパケットをグループで伝送することとを含むことができ、第2のデータパケットの各グループの伝送時間は、伝送レートに基づいて決定される。
ここで、本開示の例示的実施形態を示す付随の図面を参照する。
図1は、本開示の実施形態に準拠する、例示的ネットワーク環境のブロック図である。 図2A−2Bは、本開示の実施形態に準拠する、例示的コンピューティングデバイスのブロック図である。 図2A−2Bは、本開示の実施形態に準拠する、例示的コンピューティングデバイスのブロック図である。 図3Aは、本開示の実施形態に準拠する、図1に図示される例示的アプライアンスのブロック図である。 図3Bは、本開示の実施形態に準拠する、図3Aに図示される例示的アプライアンスの一部のブロック図である。 図4は、本開示の実施形態に準拠する、データパケットの伝送レートを推定するために使用される通信の例示的組を図示する。 図5は、本開示の実施形態に準拠する、データ伝送コントローラのための例示的実施形態のブロック図である。 図6は、本開示の実施形態に準拠する、データ伝送制御の例示的方法を表すフローチャートである。 図7A−7Cは、本開示の実施形態に準拠する、データ伝送制御の例示的方法を表すフローチャートである。 図7A−7Cは、本開示の実施形態に準拠する、データ伝送制御の例示的方法を表すフローチャートである。 図7A−7Cは、本開示の実施形態に準拠する、データ伝送制御の例示的方法を表すフローチャートである。
ここで、本開示に従って実装される例示的実施形態が詳細に参照されるであろうが、その実施例は、付随の図面に図示される。可能である場合は常に、同一参照番号は、図面全体を通して、同一または同様の部品を指すために使用されるであろう。
本明細書に説明される実施形態は、データが実際のネットワーク性能を反映させるレートにおいてネットワークを経由して伝送されることを可能にするレートベースのデータ伝送制御を提供し、旧来のTCP輻輳制御機構下におけるネットワーク輻輳の正しくない決定に起因する、ネットワークのオーバーロードおよび/または過小利用を軽減することができる。ネットワークデータフローの効率は、その結果、改良されることができる。
図1は、例示的通信システム100のブロック図である。例示的通信システム100は、ネットワークを経由してデータパケットを伝送する任意のタイプのシステムであることができる。例えば、例示的通信システム100は、有線または無線ネットワークを横断してデータパケットを端末(図1Aに図示されない端末)に伝送する1つ以上のネットワークを含むことができる。例示的通信システム100は、例えば、GSM(登録商標)ネットワーク、ワイドバンド符号分割多重アクセス(W−CDMA)無線アクセス技術を採用するUMTSネットワーク、CDMA2000ネットワーク、WiMaxネットワーク、LTEネットワーク等のネットワークアーキテクチャを有することができる。
例示的通信システム100は、とりわけ、1つ以上のネットワーク101、102、103(A−C)と、1つ以上のコントローラ104(A−D)と、1つ以上のサービングノード105(A−B)と、1つ以上の基地局107(A−C)−109(A−C)と、ゲートウェイ120と、1つ以上のアプライアンス140とを含むことができる。大まかには、通信システム100は、ツリー状ネットワークトポロジを有することができ、ゲートウェイ120は、ツリーのルートノードであり、基地局107−109は、リーフである。
ネットワーク101は、無線ネットワーク、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、またはインターネット通信等のパケットタイプ通信に好適な無線ネットワークの任意の組み合わせであることができる。例えば、一例示的実施形態では、ネットワーク101は、汎用パケット無線サービス(GPRS)コアネットワークであることができ、それは、GSM(登録商標)およびW−CDMAネットワークにおけるインターネットプロトコルパケットサービスのためのモビリティ管理、セッション管理、およびトランスポートを提供する。いくつかの実施形態では、ネットワーク101は、ゲートウェイ120と、1つ以上のサービングノード105(A−B)とを含むことができる。
ネットワーク102は、広域ネットワーク(WAN)、ローカルエリアネットワーク(LAN)、またはパケットタイプ通信に好適な無線ネットワークの任意の組み合わせを含むことができる。いくつかの例示的実施形態では、ネットワーク102は、例えば、インターネットおよびX.25ネットワークであることができる。いくつかの実施形態では、ネットワーク102は、データパケットをクライアントデバイス130(A−C)から受信することができる。クライアントデバイス130は、ネットワーク101および103を通して別の遠隔デバイス(例えば、サーバ、別のクライアントデバイス等)と通信するように構成される任意のデバイスであることができる。ネットワーク102は、クライアントデバイス130から受信されたデータパケットを、例えば、ゲートウェイ120を介して、ネットワーク101と通信することができる。クライアントデバイス130は、コンピュータ(例えば、クライアントデバイス130A)、ラップトップ(例えば、クライアントデバイス130B)、およびタブレット(例えば、クライアントデバイス130C)として描かれるが、クライアントデバイス130は、パケットをネットワーク101、102、および103を通して通信する任意のタイプのデバイス(例えば、ウェアラブルスマートウォッチ等)であり得ることを理解されたい。
ゲートウェイ120は、1つのタイプのネットワーク内で提供されるフォーマットされたデータを別のタイプのネットワークのために要求される特定のフォーマットに変換する、デバイスである。ゲートウェイ120は、サーバ、ルータ、ファイアウォールサーバ、ホスト、またはプロキシサーバ、もしくは前述の任意の組み合わせであり得る。いくつかの実施形態では、ゲートウェイ120は、負荷バランサまたは他の類似システムを含むことができる。いくつかの実施形態では、ゲートウェイ120は、ルータ110から受信された信号をネットワーク101が理解し得る信号に変換することができ、その逆もできる。ゲートウェイ120は、単独で、または任意の組み合わせにおいて、ウェブページ、画像、オーディオ、ビデオ、およびT.120伝送を処理可能であり得、全二重媒体変換可能である。例示的実施形態として、ゲートウェイ120は、GPRSネットワークと、インターネットおよびX.25ネットワークのような外部パケット切り替え式ネットワークとの間のインターワーキングをサポートするゲートウェイGPRSサポートノード(GGSN)であることができる。
サービングノード105は、データパケットをゲートウェイ120からその地理的サービスエリア内の対応するネットワーク103に送達し、その逆も行うデバイスである。サービングノード105は、例えば、サーバ、ルータ、ファイアウォールサーバ、ホスト、またはプロキシサーバであることができる。サービングノード105は、パケットルーティングおよび転送、モビリティ管理(アタッチ/デタッチおよび場所管理)、論理リンク管理、ネットワークアクセス調停および認証、ならびに課金機能を含む機能を有することもできる。いくつかの実施形態では、サービングノード105は、サービングGPRSサポートノード(SGSN)であることができる。そのような実施形態では、SGSNは、場所レジスタを有することができ、それは、本SGSNに登録された全てのGPRSユーザの場所情報、例えば、現在のセル、現在の訪問先場所(VLR)と、ユーザプロファイル、例えば、国際モバイルサブスクライバ識別(IMSI)およびパケットデータネットワーク内で使用されるアドレスとを記憶する。
ネットワーク103は、GSM(登録商標)もしくはUMTSネットワークまたはパケットタイプ通信に好適な任意の他の無線ネットワーク内の任意の無線送受信機ネットワークを含むことができる。いくつかの例示的実施形態では、利用されている下層トランスポート技術に応じて、ネットワーク103の無線アクセスネットワーク(RAN)またはバックホールエリアは、リングトポロジを有することができる。いくつかの実施形態では、ネットワーク103は、GSM(登録商標)システム内のRANまたはUMTSシステムのバックホールエリアであることができる。例示的ネットワーク103は、とりわけ、基地局107−109(例えば、送受信基地局(BTS)またはNode−B)と、1つ以上のコントローラ104(A−C)(例えば、基地局コントローラ(BSC)または無線ネットワークコントローラ(RNC))とを含むことができる。モバイル端末(図1には図示せず)は、無線送受信機機器を有するBTS/Node−B 107−109と通信する。BTS/Node−B 107−109は、ユーザが1つのセルから別のセルに移動する場合の無線チャネルの配分およびハンドオフに責任がある、BSC/RNC104(A−C)と通信する。BSC/RNC104(A−C)は、順に、ユーザのモビリティを管理し、かつネットワークへのアクセス調停および課金等の他の機能を提供する、サービングノード105に通信する。
アプライアンス140は、例えば、広域ネットワーク(WAN)トラフィックを最適化および制御することができるデバイスである。いくつかの実施形態では、アプライアンス140は、ローカルエリアネットワーク(LAN)トラフィック、都市規模ネットワーク(MAN)トラフィック、または無線ネットワークトラフィック等の他のタイプのネットワークトラフィックを最適化する。アプライアンス140は、多くの企業ネットワークにおいて一般的であるMultiprotocol Label Switching(「MPLS」)のような異なるネットワークをハンドリングすることもできる。アプライアンス140は、例えば、ある数のデータパケットが、スケジュールされた時間およびレートで伝送またはドロップされるように確立された通信リンク内のデータパケットをスケジュールすることによって、ネットワーク101および102ならびにダウンストリームネットワーク(例えば、ネットワーク103)内のネットワーク輻輳を回避または軽減するようにネットワークトラフィックを最適化することができる。いくつかの実施形態では、アプライアンス140は、Citrix System’s Branch Repeater、Netscaler、またはCloudブリッジ等の物理デバイスである。いくつかの実施形態では、アプライアンス140は、仮想アプライアンスであることができる。いくつかの実施形態では、アプライアンス140は、仮想マシン(例えば、仮想クラウドブリッジ)の複数のインスタンスを有する物理デバイスであることができる。図1に示されるように、アプライアンス140は、ネットワーク101内の種々の場所で展開されることができる。いくつかの実施形態では、アプライアンス140は、ゲートウェイ120、コントローラ104、1つ以上の基地局107−109、または任意の他の場所に位置し、その場所におけるネットワークトラフィックを最適化することができる。
いくつかの実施形態では、通信システム100はさらに、アプライアンス140(図1には図示せず)と通信可能に結合されるデータセンタを含む。データセンタは、物理または仮想のいずれかにおける、特定のパブリックまたはプライベートエンティティに関するデータおよび情報の記憶、管理、および配布のための中央リポジトリであることができる。データセンタは、コンピュータシステムと、1つ以上の物理サーバ、仮想サーバ、および記憶システム等の関連付けられたコンポーネントとを格納するために使用されることができる。データセンタは、とりわけ、あるサービスを提供するように構成される、1つ以上のサーバを含むことができる。データセンタはまた、図1のアプライアンス140に類似する様式においてネットワークトラフィックを最適化し得る、アプライアンスを含むことができる。いくつかの実施形態では、データセンタにおけるアプライアンスは、ネットワークトラフィックを最適化する際、アプライアンス140と協働することができる。
アプライアンス140およびゲートウェイ120は、本明細書に説明される任意のタイプおよび形態のネットワーク上で通信可能な任意のタイプならびに形態の具体的コンピューティングデバイス(例えば、図2A−2Bのコンピューティングデバイス等)として展開される、またはその上で実行されることができる。
図2A−2Bに示されるように、各コンピューティングデバイス200は、中央処理ユニット(CPU)221と、メインメモリ222とを含む。CPU221は、メインメモリ222からフェッチされた命令に応答し、それを処理する、任意の論理回路であることができる。CPU221は、メモリ(例えば、メインメモリ222)またはキャッシュ(例えば、キャッシュ240)内に記憶される特定の命令の組を実行可能な単一もしくは複数のマイクロプロセッサ、フィールドプログラマブルゲートアレイ(FPGA)、またはデジタル信号プロセッサ(DSP)であることができる。メモリは、フレキシブルディスク、ハードディスク、CD−ROM(コンパクトディスク読み取り専用メモリ)、MO(光磁気)ドライブ、DVD−ROM(デジタル多用途ディスク読み取り専用メモリ)、DVD−RAM(デジタル多用途ディスクランダムアクセスメモリ)、フラッシュドライブ、フラッシュメモリ、レジスタ、キャッシュ、または半導体メモリ等の有形および/または非一過性コンピュータ読み取り可能な媒体を含む。メインメモリ222は、データを記憶可能であり、任意の記憶装置場所がCPU221によって直接アクセスされることを可能にする1つ以上のメモリチップであることができる。メインメモリ222は、任意のタイプのランダムアクセスメモリ(RAM)または本明細書に説明されるように動作可能な任意の他の利用可能なメモリチップであることができる。図2Aに示される例示的実施形態では、CPU221は、システムバス250を介して、メインメモリ222と通信する。コンピューティングデバイス200は、視覚的ディスプレイデバイス224と、I/Oコントローラ223を通して接続される入力/出力(I/O)デバイス230(例えば、キーボード、マウス、またはポインティングデバイス)とを含むこともでき、両方とも、システムバス250を介して通信する。CPU221が、シリアル通信様式または2地点間通信様式を通して等、システムバス250を通して以外の様式でメモリ222および他のデバイスと通信することもできることを理解されたい。さらに、(I/O)デバイス230は、コンピューティングデバイス200のための記憶および/またはインストール媒体を提供することもできる。
図2Bは、CPU221がメモリポート203を介してメインメモリ222と直接通信する例示的コンピューティングデバイス200の実施形態を描写する。CPU221は、バックサイドバスとも称される二次バス(図示せず)を介して、キャッシュ240と通信することができる。ある他の実施形態では、CPU221は、システムバス250を介して、キャッシュ240と通信することができる。キャッシュ240は、典型的には、メインメモリ222より高速の応答時間を有する。図2Bに示される実施形態等のいくつかの実施形態では、CPU221は、I/Oポート(図示せず)を介して、I/Oデバイス230と直接通信することができる。さらなる実施形態では、I/Oデバイス230は、システムバス250と、USBバス、Apple Desktopバス、RS−232シリアル接続、SCSIバス、FireWireTMバス、FireWire800TMバス、Ethernet(登録商標)バス、AppleTalkTMバス、Gigabit Ethernet(登録商標)バス、Ashychronous Transfer Modeバス、HIPPIバス、Super HIPPIバス、SerialPlusバス、SCI/LAMPバス、FibreChannelTMバス、またはSerial Attachedスモールコンピュータシステムインターフェースバス、またはある他のタイプのデータバス等の外部通信バスとの間のブリッジ270であることができる。
図2Aに示されるように、コンピューティングデバイス200は、例えば、USBデバイス、フラッシュドライブ、SDメモリカード、ハードドライブ、または任意のクライアントエージェント220等のソフトウェアおよびプログラムまたはその一部をインストールするために好適な任意の他のデバイス等、1つ以上のコンピュータ読み取り可能な媒体を受け取るためのディスクドライブまたは他の入力ポート等の任意の好適なインストールデバイス216をサポートすることができる。コンピューティングデバイス200は、オペレーティングシステムおよび他の関連ソフトウェア、およびクライアントエージェント220に関連する任意のプログラム等のアプリケーションソフトウェアプログラムを記憶するための1つ以上のハードディスクドライブもしくは独立ディスクの冗長アレイ等の記憶デバイス228も備えていることができる。随意に、インストールデバイス216の任意のものは、記憶デバイス228としても使用され得る。
さらに、コンピューティングデバイス200は、限定ではないが、標準的電話回線、LANまたはWANリンク(例えば、802.11、Tl、T3、56kb、X.25)、ブロードバンドリンク(例えば、ISDN、Frame Relay、ATM)、無線接続(Wi−Fi、Bluetooth(登録商標)、Z−Wave、Zigbee(登録商標))、または前述の任意もしくは全てのいくつかの組み合わせを含む、種々のリンクを通して、LAN、WAN、MAN、またはインターネットとインターフェースをとるためのネットワークインターフェース218を含むことができる。ネットワークインターフェース218は、内蔵ネットワークアダプタ、ネットワークインターフェースカード、PCMCIAネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、USBネットワークアダプタ、モデム、またはコンピューティングデバイス200を通信可能な任意のタイプのネットワークにインターフェースをとらせ、本明細書に説明される動作を行うために好適な任意の他のデバイスを備えていることができる。
図3Aは、本開示の実施形態に準拠する、図1に図示される例示的アプライアンス140のブロック図である。アプライアンス140は、図2Aのネットワークインターフェース218に準拠する1つ以上のネットワークインターフェース218A−Nと、パケットエンジン320と、データ伝送コントローラ330とを含むことができる。図3Aは、ネットワークインターフェース218A−218Nを2つのネットワークインターフェースとして描写するが、インターフェース218A−218Nは、任意の数のネットワークインターフェースを含み得ることを理解されたい。
いくつかの実施形態では、「パケット処理エンジン」、「パケットプロセッサ」、または「データプロセッサ」とも称される、パケットエンジン320は、ネットワークインターフェース218A−Nを介してアプライアンス140によって受信および伝送されるデータパケットの処理の制御および管理に責任がある。パケットエンジン320は、関連機能の特定のステップに対応する特定の機能(例えば、データパケットの処理の制御および管理)を行う他のコンポーネントまたはプログラムの一部との使用のために設計される1つ以上のパッケージ化された機能ハードウェアユニットであり得る1つ以上のモジュールであることができる。パケットエンジン320は、ネットワークスタック(例えば、オープンシステム相互接続通信モデルの層およびプロトコル等)のデータリンク層(層2)、ネットワーク層(層3)、またはトランスポート層(層4)において動作し得る単一パケットエンジンまたは任意の数の複数のパケットエンジンとして具現化されることができる。パケットエンジンは、CPU221によって実行された後、本明細書に説明されるステップの一部または全部を遂行するように構成されることができる。いくつかの実施形態では、データパケットは、IEEE802.3によって対象とされるそれらのプロトコル等、WANまたはLANプロトコルのファミリのいずれかを備えているEthernet(登録商標)通信プロトコルを介して、データリンク層を経由して搬送される。いくつかの実施形態では、ネットワークスタックは、IEEE802.11および/またはモバイルインターネットプロトコル等の任意のタイプならびに形態の無線プロトコルを有することができる。1つ以上のパケットエンジン320は、IP通信プロトコルを介して等、ネットワーク層においてデータパケットをインターセプトまたは受信する。いくつかの実施形態では、パケットエンジン320は、TCP通信プロトコルを介して等、トランスポート層においてデータパケットをインターセプトまたは受信し、トランスポート層の上方の任意のセッションまたは任意のアプリケーション層において動作することができる。
パケットエンジン320は、データパケットの処理中に1つ以上のデータパケットを待ち行列に入れるためのバッファを含むことができる。加えて、パケットエンジン320は、1つ以上の通信プロトコルを介して通信し、ネットワークインターフェース218A−Nを介して、1つ以上のリンクを横断して複数のネットワークデータパケットを伝送および受信することができる。リンクは、アプライアンス140を、例えば、アプライアンス140から遠隔に位置する別のアプライアンス等の他のデバイスに接続する。パケットエンジン320は、フローに関するデータを取得し、取得されたデータを動作可能に接続されるコンピュータメモリ内に記憶するように構成されることができる。1つ以上のリンクを横断して動作する送信および受信されたデータパケットは、「データフロー」または「フロー」と見なされ得る。
いくつかの実施形態では、パケットエンジン320は、アクティブフローの動作を示すデータを収集することができる。例えば、データは、同一パケット(またはその肯定応答)の送信および受信の両方のためのパケット送信時間、パケット受信時間、ラウンドトリップ時間を示す情報、データパケットの損失イベントを示す情報、送信および受信されたパケットの総数、および/またはリンクを横断して動作する1つ以上のアクティブフローの輻輳および/または動作側面を示す他の情報を含むことができる。データに基づいて、パケットエンジン320は、フローの1つ以上のTCP特性を動的に決定することができる。フロー特性は、例えば、パケットラウンドトリップ時間、パケットのための待ち行列遅延、輻輳ウィンドウサイズ情報等を含み得る。
いくつかの実施形態では、データ伝送コントローラ330は、他のエンティティ(例えば、ソフトウェアアプリケーション、別の物理的デバイス等)からネットワークの中に受信され得るデータの伝送の制御に責任がある。データ伝送コントローラ330は、データ伝送制御コーディネータ340と、レートベースのデータ伝送コントローラ350と、輻輳ウィンドウベースのデータ伝送コントローラ360とをさらに含む。以下に説明されるように、レートベースのデータ伝送コントローラ350は、データ伝送制御コーディネータ340の調整下、ネットワークの中へのデータの伝送を制御することにおいて輻輳ウィンドウベースのデータ伝送コントローラ360と協働することができる。
いくつかの実施形態では、レートベースのデータ伝送コントローラ350は、ネットワーク性能を反映する情報に基づいて、データがネットワークインターフェース218A−Nを介してネットワークに伝送されるべき場合、1つ以上の伝送時間を決定することができる。レートベースのデータ伝送コントローラ350は、例えば、ネットワーク性能情報に基づいて、データパケットのペイロードサイズおよびネットワークの中に伝送されるべきデータパケットの数を決定することによって、前述の伝送時間において伝送されるべきデータのサイズを決定することもできる。いくつかの実施形態では、ネットワーク性能情報は、パケットエンジン320によって計算された前のデータフローの1つ以上のTCP特性から導出されることができる。例えば、以下に説明されるように、レートベースのデータ伝送コントローラ350は、パケットエンジン320によって提供されるデータパケットの伝送時間および肯定応答の受信時間に基づいて、ネットワーク内のデータパケットの伝送レートを推定することができる。レートベースのデータ伝送コントローラ350は、次いで、データパケットの複数のグループを複数の対応する伝送時間において伝送するようにパケットエンジン320を制御することができ、伝送時間は、伝送レートを反映する時間間隔によって分離される。いくつかの実施形態では、データパケットの各グループのサイズは、同じであることができる。以下に説明されるように、前述のデータパケットサイズおよび時間間隔は、ネットワーク内の伝送レートならびにRTTに基づいて決定されることができる。
いくつかの実施形態では、前述のように、伝送レートは、データパケットの伝送時間および関連付けられた肯定応答の受信時間に基づいて決定されることができる。ここで、伝送レートを決定する例示的方法を図示する図4を参照する。例証的例として、パケット405A−D、406A−D、407A−D、および408A−Dは、例えば、パケットエンジン320のバッファにおいて待ち行列に入れられる。パケット405A−Dの各々は、それぞれ、D、D、D、およびDのデータサイズを有する。パケット405A−Dの各々は、時間410Aにおいて実質的に同時にデータ受信機412に伝送される。データ受信機412がパケットを受信すると、データ受信機412は、受信されたパケットの各々のための肯定応答を伝送し、ack415Aは、パケット405Aに対応し、ack415Bは、パケット405Bに対応し、ack415Cは、パケット405Cに対応し、ack415Dは、パケット405Dに対応する。図4に示されるように、アプライアンス140は、ack415Aを時間420Aにおいて、ack415Bを時間420Bにおいて、ack415Cを時間420Cにおいて、ack415Dを時間420Dにおいて受信する。
この例証的例では、伝送レートは、以下の式に基づいて決定されることができる。
レート=(D+D+D)/(時間420D−時間420A)
状態テーブル等の他の手段も、この決定を行うために使用されることができることを理解されたい。
複数のデータパケットに対応する遅延させられた肯定応答が受信された場合、レート計算は、その遅延させられた肯定応答によって肯定応答された全てのデータパケットを含むように調節されることができる。例証的例として、ack415Bおよび415Cが、受信されず、ack415Dが、パケット405B、405C、および405Dに対応する、遅延させられた肯定応答である場合、伝送レート計算は、ack415Dによって肯定応答されたパケット405B、405C、および405Dのサイズを考慮するように調節されることができる。この特定の例では、上記と同一式が、依然として、伝送レートを計算するために使用されることができる。
いくつかの実施形態では、伝送レートは、最小パスRTT等の他のパラメータに基づいて計算されることもでき、輻輳ウィンドウ値が、フローのTCP特性内に含まれる。そのような計算は、肯定応答の受信時間が伝送レート決定のためにまだ利用可能ではないとき、初期伝送レートを計算するために使用されることができる。
パケット405A−Dが伝送された後、対応する肯定応答の受信を待つことなく、パケットグループの残りも、伝送レートに基づいて決定される伝送時間において、待ち行列の順序に従って伝送されることができる。例えば、図4に示されるように、パケット406A−Dは、時間410Bにおいて伝送され、パケット407A−Dは、時間410Cにおいて伝送され、パケット408A−Dは、時間410Dにおいて伝送される。時間410A、410B、410C、および410Dの各々は、ある時間間隔によって分離されることができる。ある場合、データパケット405A−D、406A−D、407A−D、および408A−Dの各グループは、同一サイズであることができるが、必須ではない。ある時間間隔の時間長と、データパケット405A−D、406A−D、407A−D、および408A−Dのデータサイズとの組み合わせは、伝送レートを反映することができる。例証的例として、データパケット405A−D、406A−D、407A−D、および408A−Dの各グループが同一サイズであり、時間410A、410B、410C、および410D間の時間間隔の時間長が同じである場合、伝送レートは、データパケット405A−Dのサイズと、データパケット405A−Dの伝送時間(時間410A)とデータパケット406A−Dの伝送時間(時間410B)との間の時間間隔の時間長との間の比率によって反映されることができる。
いくつかの実施形態では、伝送レートは、RTTあたり約1回、または1 RTTより長い時間長の間に更新されることができる。例えば、図4を参照すると、パケット405A−Dの伝送後の1 RTTの時間長内に受信された肯定応答が、収集されることができ、伝送レートが、それらの肯定応答の受信時間に基づいて計算されることができる。ある場合、RTTは、前に送信されるパケットの伝送時間と対応する肯定応答の受信時間との間の差異に基づいて、推定されることができる。例えば、RTTは、時間420Aと410Aとの間の差異(パケット405Aおよびack415Aに対して)または他のパケット肯定応答ペアに対する伝送時間と受信時間との間(例えば、パケット405Bおよびack415Bに対する時間420Bと410Aとの間、パケット405Cおよびack415Cに対する時間420Cと410Aとの間、パケット405Dおよびack415Dに対する時間420Dと410Aとの間等)の差異に基づいて、推定されることができる。RTTは、平均化(例えば、任意の数のパケット405A−Dに対するRTTの平均化)およびフィルタ処理(例えば、パケット405A−Dに関連付けられないRTTの破棄、第1のデータパケットの他のRTTと有意に異なるRTTの破棄等)等、後処理されることができる。
有効測定が1 RTTの時間長内で利用可能ではない(例えば、肯定応答が受信されず、故に、肯定応答の受信時間がサンプリングされることができない)場合、伝送レートの更新は、スキップされることができる。そのような場合では、データパケットの次のグループの伝送時間は、例えば、前のRTTにおいて決定された伝送レートに基づいて決定されることができる。例証的例として、肯定応答が、パケット406A−Dの伝送時間(時間410B)の1 RTT内で受信されない場合、次の伝送時間(時間410C)は、伝送時間410Aと410Bとの間を分離する時間間隔を決定する同一伝送レートに基づいて決定されることができる。
いくつかの実施形態では、前述のように、伝送レートは、データパケットの同一グループに属する肯定応答のみに基づいて、更新されることができる。肯定応答がデータパケットの同一グループに属するかどうかの決定は、例えば、肯定応答内に含まれるシーケンス番号と対応するパケットの伝送時間とに基づくことができる。データパケットの同一グループに属さない肯定応答が、そのRTT内で受信される場合、伝送レートは、その肯定応答に対して更新されないであろう。例証的例として、時間410A後の1 RTT内において、データパケットの前のグループに対するストレッチ肯定応答が、ack415A−Dに加えて受信される場合、伝送レートは、そのストレッチ肯定応答の受信時間に基づいて更新されないであろう。
いくつかの実施形態では、伝送レートは、平均関数に基づいて更新されることができ、現在のRTTに対して計算された伝送レートは、前のRTTにおいて計算された伝送レートと平均される。平均は、RTTをまたいだ肯定応答の受信時間に基づいて行われることもできる。平均伝送レートは、次いで、パケットエンジン320に提供され、ネットワークへのデータの伝送を制御するであろう。いくつかの実施形態では、平均関数は、指数関数移動平均関数であることができ、伝送レートのより最近のサンプルは、例えば、比較的に離れた過去において決定された伝送レートのサンプルより大きい重みに関連付けられる。伝送レートが、現在のRTTに対して計算されない(例えば、肯定応答受信時間の有効測定が、時間410Aの1 RTT内で利用可能ではない等)場合、平均伝送レートは、更新されないこともあり、データパケットの次のグループの伝送は、現在の平均伝送レートに基づいて制御されることができる。
いくつかの実施形態では、伝送レートの更新は、1つ以上の伝送されたパケットが、損失され、データ受信機412への到達に失敗したことの指示に基づいて、調節されることができる。指示は、例えば、アプライアンス140がデータ受信機412によって受信されたパケットのシーケンス番号を示す選択的肯定応答(SACK)を受信することから生じることができる。SACK内にリストアップされたシーケンス番号が、伝送されたパケットのシーケンス番号を含まない場合、レートベースのデータ伝送コントローラ350は、伝送されたパケットが損失されたことを決定することができる。パケット損失の別の可能な指示は、アプライアンス140が伝送後のある時間量内に伝送されたパケットに対する肯定応答の受信に失敗したことであり得る。両場合において、レートベースのデータ伝送コントローラ350は、計算のレートが現在のRTT内で受信された肯定応答の受信時間に基づいて計算されないこともあることを決定することができる。代わりに、前のRTT内で決定された伝送レートが、パケットエンジン320に提供され、データパケットの次のグループの伝送を制御することができる。いくつかの実施形態では、提供される伝送レートは、ネットワークのオーバーロードのリスクを軽減するために、所定の係数によってさらに低減させられることができる。
伝送レートが決定された後、レートベースのデータ伝送コントローラ350は、データパケットのグループにおいて伝送されるべきデータの総サイズを決定することができる。伝送されるべきデータの総サイズは、例えば、ダウンストリームネットワークノード(例えば、ルータ)の待ち行列サイズによって限定され得る。いくつかの実施形態では、前述のように、パケットエンジン320は、TCPフロー特性の一部として、データパケットの待ち行列遅延を決定することができる。レートベースのデータ伝送コントローラ350は、待ち行列遅延に基づいて、待ち行列サイズを推定し、ネットワークノードのオーバーロードおよびネットワークの輻輳のリスクを軽減するために、待ち行列サイズのある比率であるように伝送されるべきデータの総サイズを制御することができる。
データパケットのグループにおいて伝送されるべきデータの総サイズと伝送レートとに基づいて、レートベースのデータ伝送コントローラ350は、次いで、データパケットの各グループの伝送時間を分離する時間間隔とデータパケットの各グループのサイズとを決定することができる。ある場合、伝送時間を分離する時間間隔は、同じであることができるが、必須ではない。いくつかの実施形態では、データパケットの各グループは、レートベースのデータ伝送コントローラ350が他のエンティティ(例えば、ソフトウェアアプリケーション、別の物理的デバイス等)から受信したデータパケットの数を含むことができる。いくつかの実施形態では、レートベースのデータ伝送コントローラ350は、受信されたデータパケットのペイロードを抽出し、抽出されたペイロードを使用して、データパケットのグループを生成することもできる。ある場合、データパケットの各グループのサイズは、同じであることができるが、必須ではない。
図3Aに戻って参照すると、データ伝送コントローラ330は、輻輳ウィンドウベースのデータ伝送コントローラ360も含む。いくつかの実施形態では、輻輳ウィンドウベースのデータ伝送コントローラ360は、パケットエンジン320によって計算される輻輳ウィンドウサイズに基づいて、1 RTTの時間長内でネットワークの中に伝送されるべきデータのサイズ(例えば、データパケットの数、パケットペイロードのサイズ等によって反映される)を決定することができる。輻輳ウィンドウサイズは、旧来のTCP輻輳回避アルゴリズムに基づいて、制御されることができる。輻輳ウィンドウベースのデータ伝送コントローラ360は、次いで、決定されたサイズのデータを1 RTTの時間長内でネットワークの中に伝送するように、パケットエンジン320を制御することができる。
いくつかの実施形態では、データ伝送制御コーディネータ340は、レートベースのデータ伝送コントローラ350および輻輳ウィンドウベースのデータ伝送コントローラ360の動作を調整することができる。例えば、データ伝送制御コーディネータ340は、1つ以上の基準の充足に基づいて、レートベースのデータ伝送コントローラ350がパケットエンジン320によるデータの伝送を制御することを可能にし、1つ以上の基準がもはや満たされないとき、制御を輻輳ウィンドウベースのデータ伝送コントローラ360に動的に与えることを決定することができる。
レートベースのデータ伝送コントローラ350がパケットエンジン320を制御することを可能にすべきか、輻輳ウィンドウベースのデータ伝送コントローラ360がパケットエンジン320を制御することを可能にすべきかを決定するための基準は、例えば、ネットワーク内で伝送されているパケットの数が少なくとも閾値と等しいことを含むことができる。例えば、接続が確立されたばかりであり、送信側デバイスが、少数のデータパケットのみを伝送し、少数の対応する肯定応答を受信しているとき、少数のデータパケットの伝送レートは、必ずしも、ネットワークの現在の性能を反映しない。そのような場合、データ伝送制御コーディネータ340は、少数の肯定応答の受信時間がネットワーク内のデータの伝送レートの正確な推定を提供しないことを決定することができる。その結果、データ伝送制御コーディネータ340は、より多くのデータパケットがネットワーク内で伝送されていることの指示を受信するまで、輻輳ウィンドウベースのデータ伝送コントローラ360がパケットエンジン320におけるデータパケットの伝送を制御することを可能にすることを決定することができる。いくつかの実施形態では、そのような指示は、例えば、輻輳ウィンドウサイズ(肯定応答が受信されるときに増加し得る)が少なくとも所定の閾値と等しいこと、または少なくとも閾値と等しいいくつかのデータパケットが伝送に成功したことを反映する任意の他のパラメータを含むことができる。
前述の基準は、例えば、1 RTT内でレートベースのデータ伝送コントローラ350によってネットワークの中に伝送されるべきデータのサイズが少なくとも前述の閾値と等しいことを含むこともできる。データ伝送制御コーディネータ340は、例えば、決定された伝送レートに基づいて、決定を行うことができる。そのように決定された1 RTT内で伝送されるべきデータのサイズは、レートベースのデータ伝送コントローラ350によって伝送されるべきデータパケットのグループの総サイズ(例えば、前述のように、ダウンストリームネットワークノードの待ち行列サイズに基づいて決定されることができる)より大きいことも、より小さいことも可能である。レートベースのデータ伝送コントローラ350の制御下で1 RTT内で伝送されるべきデータのサイズが、前述の閾値未満である場合、データ伝送制御コーディネータ340は、レートベースの伝送を使用してRTT内でデータパケットのグループの伝送を完了するためにネットワークが遅すぎる(輻輳)ことを決定することができる。その結果、データ伝送制御コーディネータ340は、輻輳ウィンドウベースのデータ伝送コントローラ360がパケットエンジン320におけるデータパケットの伝送を制御することを可能にすることを決定することができる。その場合、輻輳ウィンドウベースのデータ伝送コントローラ360は、輻輳ウィンドウサイズを1 RTT内で決定された伝送レートで伝送されるべきデータの量と等しくなるように設定することができる。ある場合、輻輳ウィンドウベースのデータ伝送コントローラ360は、1 RTT内において、輻輳ウィンドウの前述のサイズに基づいて、ある数のデータパケットを伝送することができる。伝送されたデータパケットのうちの少なくとも1つの肯定応答を受信後、輻輳ウィンドウベースのデータ伝送コントローラ360は、次いで、輻輳ウィンドウのサイズを増加させ、次いで、輻輳ウィンドウの増加させられたサイズに基づいて、次の組のデータパケットを伝送することができる。
いくつかの実施形態では、データ伝送制御コーディネータ340は、レートベースのデータ伝送コントローラ350を選択するように事前に構成されることもできる。事前に構成された選択は、前述の基準のいずれかが満たされないとき、無効にされることができる。いくつかの実施形態では、データ伝送制御コーディネータ340は、前述の基準のうちの少なくともいくつかが満たされるとき、輻輳ウィンドウベースのデータ伝送コントローラ360を選択し、次いで、レートベースのデータ伝送コントローラ350に切り替えるように事前に構成されることもできる。
図3Bは、本開示の実施形態に準拠する、図3Aに図示される例示的アプライアンス140の一部のブロック図である。いくつかの実施形態では、アプライアンス140のオペレーティングシステムは、利用可能なシステムメモリをカーネル空間(システム空間)およびユーザ空間(アプリケーション空間)と称されるものの中に配分、管理、または別様に分離する。カーネル空間は、典型的には、任意のデバイスドライバ、カーネル拡張子、または他のカーネル関連ソフトウェアを含むカーネルを起動させるために確保される。カーネルは、オペレーティングシステムのコアであり、アプライアンス140のリソースおよびハードウェア関連要素のアクセス、制御、および管理を提供することができる。アプライアンス140のいくつかの実施形態によると、カーネル空間は、パケットエンジン320、データ伝送コントローラ330、またはその任意の部分と共にいくつかのネットワークサービスまたはプロセス作業を含むことができる。加えて、カーネルの実施形態は、アプライアンス140によってインストール、構成、または別様に使用されるオペレーティングシステム次第であることができる。
ユーザ空間は、そうでなければユーザモードで起動する、ユーザモードアプリケーションまたはプログラムによって使用されるオペレーティングシステムのメモリエリアもしくは部分である。ユーザモードアプリケーションは、カーネル空間に直接アクセスすることができず、サービスコールを使用してカーネルサービスにアクセスする。オペレーティングシステムは、アプリケーションの実行または起動およびユーザレベルプログラム、サービス、プロセス、および/またはタスクのプロビジョニングのために、ユーザ空間を使用する。例として、オペレーティングシステムは、ユーザ空間内のネットワークインターフェース218A−Nのソフトウェアを実行することができる。
図5は、本開示の実施形態に準拠する、データ伝送制御のための例示的実施形態のブロック図である。前述のように、データ伝送コントローラ330は、パケットデータ550のアクティブフローに関連する情報を含む、TCP特性530等の1つ以上のTCP特性をパケットエンジン320から受信するように構成されることができる。TCP特性530は、例えば、1つ以上の待ち行列遅延を含む情報、フロー輻輳を示す情報、1つ以上の輻輳ウィンドウサイズを示す情報、およびアクティブフロー450内のパケットに対する1つ以上の平均ラウンドトリップ時間を示す情報を含むことができる。フローは、パケットがTCPリンクを横断して送信および受信されているとき、「アクティブ」である。
いくつかの実施形態によると、1つ以上のプロセッサ(例えば、CPU221)が、データ伝送コントローラ330を実行する。データ伝送コントローラ330は、TCP特性530を受信し、次いで、TCP特性530(例えば、現在の輻輳ウィンドウサイズ)に基づいて、レートベースのデータ伝送制御がパケットエンジン320によるデータパケットの伝送を制御するために使用されるべきか、輻輳ウィンドウベースのデータ伝送制御がそうするために使用されるべきかを決定することができる。レートベースのデータ伝送制御が使用されるべき場合、データ伝送コントローラ330は、TCP特性530(例えば、待ち行列遅延、肯定応答の受信時間等)に基づいて、伝送レートおよびその伝送レートにおいて伝送されるべきデータパケットのグループの総サイズを決定することもできる。データ伝送制御に関連するデータ(例えば、レートベースが使用されるべきか、または輻輳ウィンドウベースの制御が使用されるべきか、伝送時間、伝送されるべきデータのサイズ等)は、伝送構成540内に含まれることができ、それは、次いで、パケットエンジン320に提供されることができる。
図6は、本開示の実施形態に準拠する、データ伝送制御の例示的方法600を表すフローチャートである。図示されるプロシージャが、ステップを削除する、またはさらに追加のステップを含むように改変されることができることは、容易に理解されるであろう。方法600は、アプライアンス(例えば、アプライアンス140)によって行われるように説明されるが、方法600は、単独で、またはアプライアンスと組み合わせて、他のデバイスによって行われることができることを理解されたい。
初期開始後、アプライアンス140は、ステップ605において、例えば、1つ以上のパケットエンジン(例えば、パケットエンジン320)を使用して、1つ以上のTCP特性を第1のデータパケットの現在の伝送から決定することができる。TCP特性は、例えば、輻輳ウィンドウサイズ、RTT、第1のデータパケットに対応する肯定応答の受信時間等を含むことができる。
ステップ610では、アプライアンス140は、次の伝送のための第2のデータパケットの組を受信することができる。アプライアンス140は、第2のデータパケットを、例えば、ソフトウェアアプリケーションまたはアプライアンス140と通信可能に結合される他の物理的デバイス(例えば、クライアントデバイス130A−C)から受信することができる。いくつかの実施形態では、ステップ610は、ステップ605の前、後、またはそれと並行して生じることができる。
ステップ615では、アプライアンス140は、パケットの伝送を制御するために、レートベースのデータ伝送制御がパケットエンジン320において使用されるべきかどうかを決定する。前述のように、決定は、1つ以上の所定の基準が満たされるかどうかに基づくことができる。ある場合、基準は、例えば、肯定応答の受信時間がネットワーク内のデータの伝送レートの推定を提供し得るように、十分な数のデータパケットが伝送されているかどうかを含むことができる。そのような決定は、例えば、TCP特性内に含まれる輻輳ウィンドウサイズ情報に基づくことができ、輻輳ウィンドウサイズ情報は、伝送および肯定応答されているデータパケットの数を反映し得る。基準は、輻輳ウィンドウサイズが少なくとも所定の閾値と等しいときに満たされることができる。さらに、ある場合、基準は、レートベースのデータ伝送コントローラ350によって1 RTT内でネットワークの中に伝送されるべきデータのサイズが所定の閾値を超えることを含むこともでき、それは、レートベースのデータ伝送コントローラ350によって伝送されるべきデータをハンドリングするためにネットワークが十分な容量を有することを示し得る。いくつかの実施形態では、ステップ615は、図3Aのデータ伝送制御コーディネータ340によって行われることができる。
アプライアンス140が、レートベースのデータ伝送制御が使用されるべきであることを決定する(ステップ615において)場合、ステップ620において、アプライアンス140は、第2のデータパケットの組を、例えば、パケットエンジン320において待ち行列に入れることができる。アプライアンス140は、次いで、ステップ625において受信された1つ以上のTCP特性に基づいて、第2のデータパケットの組のための伝送レートを決定することができる。前述のように、伝送レートは、例えば、図4に図示されるように、伝送されるデータパケットのサイズと対応する肯定応答の受信時間とに基づいて決定されることができる。肯定応答の受信時間がまだ利用可能ではない場合(例えば、初期伝送レートを計算するために)、伝送レートは、受信されたTCP特性内に含まれるRTTおよび輻輳ウィンドウサイズ情報に基づいて決定されることもできる。さらに、伝送レートは、例えば、移動平均関数を使用して、事前に決定された伝送レートに基づいて決定されることもできる。ある場合、第2のデータパケットのための伝送レートは、例えば、肯定応答がパケットのグループの伝送の1 RTT内で受信されないとき、またはパケット損失が検出されるとき、事前に決定された伝送レートに基づいて決定されることもできる。
伝送レートがステップ625において決定された後、レートベースのデータ伝送コントローラ350は、次いで、ステップ630において、パケットエンジン320における第2のデータパケットの伝送を制御することができる。前述のように、レートベースのデータ伝送コントローラ350は、待ち行列に入れられた第2のデータパケット(または第2のデータパケットから導出されるパケット)をグループにおいて伝送するように、パケットエンジン320を制御することができ、各グループの伝送時間は、ある時間間隔によって分離され、時間間隔は、ステップ625において決定された伝送レートに基づいて決定されることができる。パケットの各グループのサイズは、例えば、伝送レート、伝送されるべきデータの総サイズ等に基づいて決定されることもできる。レートベースのデータ伝送コントローラ350は、次いで、時間間隔およびデータサイズ情報をパケットエンジン320に伝送構成(例えば、伝送構成540)の一部として伝送することができる。パケットエンジン320は、次いで、伝送構成に基づいて、データを伝送することができる。
一方、データ伝送制御コーディネータ340が、ステップ615において、輻輳ウィンドウベースのデータ伝送制御が使用されるべきであることを決定する場合、輻輳ウィンドウベースのデータ伝送コントローラ360は、次いで、ステップ635において、1 RTT内における伝送のためのある数の第2のデータパケットをパケットエンジン320に提供することができる。提供される第2のデータパケットの数は、輻輳ウィンドウサイズに基づいて決定されることができる。ある場合、輻輳ウィンドウサイズは、TCP特性内に含まれる輻輳ウィンドウサイズ情報に基づいて決定されることができる。ある場合、輻輳ウィンドウサイズは、事前に決定された伝送レートにおける1 RTT内で伝送されるべきデータのサイズの推定に基づいて決定されることができる。
図7A−7Cは、本開示の実施形態に準拠する、データ伝送制御の例示的方法700を表す、フローチャートである。図示されるプロシージャが、ステップを削除する、またはさらに追加のステップを含むように改変されることができることは、容易に理解されるであろう。方法700は、アプライアンス(例えば、アプライアンス140)によって行われるように説明されるが、方法700は、単独で、またはアプライアンスと組み合わせて、他のデバイスによって行われることもできることを理解されたい。
初期開始後、アプライアンス140は、ステップ705において、例えば、1つ以上のパケットエンジン(例えば、パケットエンジン320)を使用して、第1のデータパケットの組を伝送することができる。第1のデータパケットの伝送後、アプライアンス140は、ステップ710において、第1のデータパケットの組に対応する肯定応答を監視および受信することができる。
ステップ710における肯定応答の受信後、アプライアンス140は、次いで、ステップ715において、受信された肯定応答が、第1のデータパケットのうちの1つ以上のものが、損失され、受信側(例えば、データ受信機412)への到達に失敗したことを示すかどうかを決定することができる。前述のように、パケット損失の指示は、例えば、アプライアンス140がデータ受信機412によって受信されたパケットのシーケンス番号を示すSACKを受信することから生じ得る。SACKからの情報に基づいて、アプライアンス140は、次いで、第1のデータパケットのうちの1つ以上のものがデータ受信機412によって受信されず、損失されたことを決定することができる。パケット損失の指示は、アプライアンス140が伝送後のある時間量(例えば、予期されるRTT)内に伝送されたパケットに対する肯定応答を受信しないことからも生じ得る。
アプライアンス140が、伝送された第1のデータパケットのうちのいずれも損失されていないことを決定する場合(ステップ715)、アプライアンス140は、次いで、図7Bのステップ722に進むことができ、そこで、アプライアンス140は、次の伝送のための第2のデータパケットの組を受信することができる。アプライアンス140は、次いで、ステップ724において、第1のデータパケットの伝送のRTTを決定することができる。決定は、例えば、第1のデータパケットの伝送時間および対応する肯定応答の受信時間に基づくことができる。RTTは、平均(例えば、ある数の第1のデータパケットに対するRTTの平均)およびフィルタ処理(例えば、第1のデータパケットに関連付けられないRTTの破棄、第1のデータパケットの他のRTTと有意に異なるRTTの破棄等)等、後処理されることができる。いくつかの実施形態では、受信ステップ722は、決定ステップ724後に生じることができる。
第1のデータパケットの伝送のRTTが、決定された後(ステップ724)、アプライアンス140は、次いで、ステップ726において、レートベースの伝送制御が第2のデータパケットの次の伝送のために使用されるべきかどうかを決定することができる。上で議論されたように、決定は、異なる要因に基づくことができる。例えば、接続が確立されたばかりであるとき、レートベースの伝送制御は、輻輳ウィンドウサイズが、測定された伝送レートが実際のネットワーク性能を反映し得るように、十分な数のパケットがネットワーク内で伝送されていることを示し得る所定の閾値に到達するまで使用されない。決定は、例えば、アプライアンス140がレートベースの伝送を使用するように事前に構成されるかどうかに基づくことができる。いくつかの実施形態では、ステップ726は、データ伝送制御コーディネータ340によって行われることができる。
データ伝送制御コーディネータ340が、レートベースの伝送制御が第2のデータパケットの伝送のために使用されるべきことを決定する場合(ステップ726)、レートベースのデータ伝送コントローラ350は、次いで、ステップ728において、伝送レートを決定することができる。決定は、例えば、図4に図示されるように、第1のデータパケットのサイズおよび対応する肯定応答の受信時間に基づくことができる。肯定応答の受信時間がまだ利用可能ではない場合(例えば、初期伝送レートを計算するために)、伝送レートは、RTTおよび輻輳ウィンドウサイズに基づいて決定されることができる。さらに、伝送レートは、例えば、移動平均関数を使用して、事前に決定された伝送レートに基づいて決定されることができる。ある場合、第2のデータパケットのための伝送レートは、例えば、肯定応答が第1のデータパケットの伝送の1 RTT内で受信されないとき、事前に決定された伝送レートに基づいて決定されることができる。
第2のデータパケットのための伝送レートが決定された後(ステップ728)、レートベースのデータ伝送コントローラ350は、次いで、ステップ730において、1 RTT(ステップ724おいて決定された)が、例えば、第1のデータパケットの伝送から経過したかどうかを決定することができる。上で議論されるように、伝送レートは、RTT毎に1回または1 RTTより長い時間長の間に更新されることができる。いくつかの実施形態では、レートベースのデータ伝送コントローラ350が、ステップ730において、1 RTTが経過していないことを決定する場合、1 RTTが経過するまで、ステップ728において決定された伝送レートを使用せずに、終了に進むことができる。
一方、レートベースのデータ伝送コントローラ350が、ステップ730において、少なくとも1 RTTが経過したことを決定する場合、ステップ732において、伝送されるべき第2のデータパケットの各グループの伝送時間およびサイズを決定することができる。上で議論されるように、第2のデータパケットは、グループにおいて送信されることができ、各グループの伝送時間は、ある時間間隔によって分離される。レートベースのデータ伝送コントローラ350は、例えば、ステップ728において決定された伝送レートに基づいて、伝送時間を決定することができる。例えば、上で議論されるように、伝送されているデータパケットのグループのサイズと時間間隔の時間長との間の比率は、伝送レートを反映することができる。レートベースのデータ伝送コントローラ350は、例えば、ネットワークノードにおける待ち行列遅延を反映し得るステップ724において決定されたRTT情報に基づくそのダウンストリームネットワークノード(例えば、ルータ)における待ち行列サイズの推定に基づいて、伝送されるべきデータパケットのグループのサイズを決定することができる。ある場合、パケットの各グループのデータサイズは、同じであることができる。ある場合、伝送時間は、同じ時間間隔によって分離されることができる。パケット情報の伝送時間およびサイズが、ステップ732において決定された後、レートベースのデータ伝送コントローラ350は、次いで、情報をパケットエンジン320に構成データ(例えば、伝送構成540)の形態で提供することができる。パケットエンジン320は、次いで、ステップ734において、第2のデータパケットをグループで伝送することができる。
一方、データ伝送制御コーディネータ340が、ステップ726において、レートベースの伝送制御が第2のデータパケットの次の伝送のために使用されるべきではないことを決定する場合(例えば、輻輳ウィンドウベースの伝送制御を使用するための事前構成に起因して)、次いで、ステップ736において、1 RTT中にレートベースの伝送を使用して伝送されるデータのサイズ(ステップ724において決定された)が少なくとも閾値と等しいかどうかを決定することができる。前述のように、決定は、ネットワークが決定された伝送レートにおいて伝送されるデータをハンドリングするための容量を有するかどうかについての指示を提供することができる。データ伝送制御コーディネータ340が、ステップ736において、1 RTT中にレートベースの伝送を使用して伝送されるデータのサイズが少なくとも閾値と等しいことを決定する場合、ステップ728に進み、レートベースのデータ伝送コントローラ350が第2のデータパケットの伝送を制御することを可能にすることができる。
データ伝送制御コーディネータ340が、1 RTT中にレートベースの伝送を使用して伝送されるデータのサイズが閾値を超えないことを決定する場合(ステップ736)、輻輳ウィンドウベースのデータ伝送コントローラ360が第2のデータパケットの伝送を制御することを可能にするように進むことができる。パケットエンジン320は、例えば、旧来のTCP輻輳回避アルゴリズムに従って受信された肯定応答に基づいて、または事前に決定された伝送レートにおいて1 RTT内で伝送されるべき推定されたデータのサイズに基づいて、輻輳ウィンドウサイズを決定することができる。輻輳ウィンドウベースのデータ伝送コントローラ360は、次いで、輻輳ウィンドウサイズに基づいて、伝送のために、ある数の第2のデータパケットをパケットエンジン320に提供することができる。パケットエンジン320は、次いで、ステップ738において、その数の第2のデータパケットを伝送することができる。いくつかの実施形態では(図7Bには図示せず)、ステップ738において、その数の第2のデータパケットが伝送される、1 RTT中、増加させられた輻輳ウィンドウサイズが所定の閾値を超えるように、輻輳ウィンドウが増加させられる場合(例えば、ステップ738に先立って、またはその間、伝送されるデータパケットに対応する肯定応答の受信に起因して)、データ伝送制御コーディネータ340は、レートベースの伝送に切り替わることを決定し、ステップ728に戻ることができる。
図7Aに戻って参照すると、アプライアンス140が、ステップ715において、伝送される第1のデータパケットのうちの少なくとも1つが損失されていることを決定する場合、アプライアンス140は、図7Cのステップ752に進むことができ、そこで、アプライアンス140は、次の伝送のために、第2のデータパケットの組を受信することができる。アプライアンス140は、次いで、ステップ754において、前のRTTにおいて決定された伝送レートに基づいて、第2のデータパケットのための伝送レートを決定することができる。ある場合、決定された伝送レートは、ある係数によってさらに低減させられ、ネットワークのオーバーロードのリスクを軽減することができる。
伝送レートが決定された後、アプライアンス140(例えば、データ伝送制御コーディネータ340)は、次いで、ステップ756において、1 RTT中にレートベースの伝送を用いて伝送されるデータのサイズ(ステップ724において計算される)が少なくとも閾値と等しいかどうかを決定することができる。ステップ756における決定は、図7Bのステップ736に説明されるものと類似し、その詳細は、ここでは繰り返されない。
データ伝送制御コーディネータ340が、1 RTT中にレートベースの伝送を用いて伝送されるデータのサイズが少なくとも閾値と等しいことを決定する場合(ステップ756)、次いで、レートベースのデータ伝送コントローラ350が、ステップ754において決定された伝送レートに基づいて、第2のデータパケットの伝送を制御することを可能にするように進むことができる。ステップ758では、レートベースのデータ伝送コントローラ350は、レートベースの伝送のための第2のデータパケットのグループの伝送時間およびサイズを決定することができる。パケットエンジン320は、次いで、ステップ760において、第2のデータパケットのグループを伝送することができる。ステップ758および760は、図7Bのステップ732および734に類似し、その詳細は、ここでは繰り返されない。
一方、データ伝送制御コーディネータ340が、ステップ756において、1 RTT中にレートベースの伝送を用いて伝送されるデータのサイズが閾値を超えないことを決定する場合、輻輳ウィンドウベースのデータ伝送コントローラ360が第2のデータパケットの伝送を制御することを可能にするように進むことができる。パケットエンジン320は、例えば、旧来のTCP輻輳回避アルゴリズムに従って受信された肯定応答に基づいて、またはステップ754において決定された伝送レートにおいて1 RTT内で伝送されるべき推定されたデータのサイズに基づいて、輻輳ウィンドウサイズを決定することができる。輻輳ウィンドウベースのデータ伝送コントローラ360は、次いで、ステップ762において、輻輳ウィンドウサイズに基づいて、1 RTT内における伝送のために、ある数の第2のデータパケットをパケットエンジン320に提供することができる。いくつかの実施形態では(図7Cには図示せず)、ステップ762において、その数の第2のデータパケットが輻輳ウィンドウを使用して伝送される1 RTT中、増加させられた輻輳ウィンドウサイズが所定の閾値を超えるように輻輳ウィンドウが増加させられる場合(例えば、ステップ762に先立って、またはその間、伝送されるデータパケットに対応する肯定応答の受信に起因して)、データ伝送制御コーディネータ340は、レートベースの伝送に切り替わることを決定し、ステップ758に戻ることができる。
本開示の実施形態を用いることで、データは、実際のネットワーク性能を反映する伝送レートで伝送されることができる。その結果、データの伝送は、帯域幅および待ち時間変動、不規則パケット、ストレッチ肯定応答等によって殆ど影響されず、それらは、旧来のTCP輻輳制御機構下において、無線ネットワークに一般的であり、パケット損失がネットワーク輻輳および輻輳ウィンドウサイズの対応する変化に起因するという正しくない決定につながり得る。データの伝送レートは、次いで、ランダムパケット損失に照らして、維持されることができ、ネットワークのオーバーロードおよび過小利用の両方が、回避されることができる。そのような配置は、ネットワーク性能も劣化させ得る接続における主なバーストを回避することができる。ネットワークデータフローの効率は、その結果、改良されることができる。
前述の明細書では、実施形態が、実装毎に変動し得る多数の具体的詳細を参照して説明された。説明される実施形態のある適応および修正が行われることができる。他の実施形態は、本明細書に開示される実施形態の仕様および実践の検討から当業者に明白となり得る。明細書および実施例は、例示にすぎないものとして見なされることが意図される。また、図に示されるステップのシーケンスは、例証目的のために意図されるものであり、ステップの任意の特定のシーケンスに限定されることを意図するものではない。したがって、当業者は、これらのステップが、同一方法を実装しながら、異なる順序で行われることができることを理解し得る。

Claims (33)

  1. データ伝送を制御するためのアプライアンスであって、前記アプライアンスは、
    リンクを経由した第1のデータパケットのフローに関するデータを取得し、前記フローに対するトランスポート通信プロトコル(TCP)特性を決定するように構成されているパケットエンジンと、
    データ伝送コントローラと
    を備え、
    前記データ伝送コントローラは、
    第2のデータパケットを受信することと、
    前記TCP特性に基づいて、伝送レートを決定することと、
    1つ以上の基準に基づいて、レートベースのデータ伝送制御が前記第2のデータパケットの伝送を制御するために使用されるべきかどうかを決定することと、
    レートベースのデータ伝送制御が前記第2のデータパケットの伝送を制御するために使用されるべきであることの決定に応答して、前記パケットエンジンに前記第2のデータパケットをグループで伝送させることと
    を行うように構成され、
    前記第2のデータパケットの各グループの伝送時間は、前記伝送レートに基づいて決定される、アプライアンス。
  2. 前記TCP特性は、前記リンクに関連付けられたネットワークノードにおける待ち行列遅延についての情報を含み、前記第2のデータパケットの前記グループのサイズは、前記待ち行列遅延に基づいて決定される、請求項1に記載のアプライアンス。
  3. 前記TCP特性は、前記リンクのラウンドトリップ時間(RTT)および輻輳ウィンドウサイズについての情報を含み、前記伝送レートは、前記RTTおよび前記輻輳ウィンドウサイズに基づいて決定される、請求項1または2に記載のアプライアンス。
  4. 前記TCP特性は、前記第1のデータパケットのうちの少なくともいくつかに対応する肯定応答の受信時間を含み、前記伝送レートは、前記第1のデータパケットのうちの前記少なくともいくつかのデータサイズと前記受信時間のうちの少なくともいくつかとに基づいて決定される、請求項1−3のいずれか1項に記載のアプライアンス。
  5. 前記伝送レートは、前に決定された1つ以上の伝送レートを使用して決定される、請求項1−3のいずれか1項に記載のアプライアンス。
  6. 前記データ伝送コントローラは、パケット損失の検出に基づいて、前記伝送レートが前に決定された前記1つ以上の伝送レートに基づいて決定されるべきであることを決定するように構成されている、請求項5に記載のアプライアンス。
  7. 前記データ伝送コントローラは、前記伝送レートがストレッチ肯定応答の受信時間に基づいて決定されるべきではないことを決定するように構成されている、請求項5または6に記載のアプライアンス。
  8. 前記データ伝送コントローラは、前記第1のデータパケットのうちの1つ以上のものの伝送後、前記第1のデータパケットのうちのいずれかに対応する肯定応答が前記リンクのラウンドトリップ時間(RTT)に関連する期間内に受信されないことの決定に基づいて、前記伝送レートが前に決定された前記1つ以上の伝送レートに基づいて決定されるべきであることを決定するように構成されている、請求項5−7のいずれか1項に記載のアプライアンス。
  9. 前記1つ以上の基準は、前記輻輳ウィンドウサイズが少なくとも閾値と等しいことを含み、前記データ伝送コントローラは、前記輻輳ウィンドウサイズが前記閾値より小さいことの決定に応答して、レートベースのデータ伝送制御が前記第2のデータパケットの伝送を制御するために使用されるべきではないことを決定するように構成されている、請求項3に記載のアプライアンス。
  10. 前記1つ以上の基準は、前記決定された伝送レートで前記RTT内に伝送されることが可能なデータの第1のサイズが少なくとも閾値と等しいことを含み、前記データ伝送コントローラは、
    前記第1のサイズを決定することと、
    前記第1のサイズが前記閾値より小さいかどうかを決定することと、
    前記第1のサイズが前記閾値より小さいことの決定に応答して、レートベースのデータ伝送制御が前記第2のデータパケットの伝送を制御するために使用されるべきではないことを決定することと
    を行うように構成されている、請求項3または9に記載のアプライアンス。
  11. 前記データ伝送コントローラは、レートベースのデータ伝送制御が前記第2のデータパケットの伝送を制御するために使用されるべきではないことの決定に応答して、前記パケットエンジンにある数の前記第2のデータパケットを伝送させ、前記数は、前記輻輳ウィンドウサイズに基づいて決定されるように構成されている、請求項3、9、または10のいずれか1項に記載のアプライアンス。
  12. データ伝送を制御する方法であって、前記方法は、
    リンクを経由した第1のデータパケットのフローに関するデータを取得することと、
    前記フローに対するトランスポート通信プロトコル(TCP)特性を決定することと、
    第2のデータパケットを受信することと、
    前記TCP特性に基づいて、伝送レートを決定することと、
    1つ以上の基準に基づいて、レートベースのデータ伝送制御が前記第2のデータパケットの伝送を制御するために使用されるべきかどうかを決定することと、
    レートベースのデータ伝送制御が前記第2のデータパケットの伝送を制御するために使用されるべきであることの決定に応答して、前記第2のデータパケットをグループで伝送することと
    を含み、
    第2のデータパケットの各グループの伝送時間は、前記伝送レートに基づいて決定される、方法。
  13. 前記TCP特性は、前記リンクに関連付けられたネットワークノードにおける待ち行列遅延についての情報を含み、前記第2のデータパケットの前記グループのサイズは、前記待ち行列遅延に基づいて決定される、請求項12に記載の方法。
  14. 前記TCP特性は、前記リンクのラウンドトリップ時間(RTT)および輻輳ウィンドウサイズについての情報を含み、前記伝送レートは、前記RTTおよび前記輻輳ウィンドウサイズに基づいて決定される、請求項12または13に記載の方法。
  15. 前記TCP特性は、前記第1のデータパケットのうちの少なくともいくつかに対応する肯定応答の受信時間を含み、前記伝送レートは、前記第1のデータパケットのうちの前記少なくともいくつかのデータサイズと前記受信時間のうちの少なくともいくつかとに基づいて決定される、請求項12−14のいずれか1項に記載の方法。
  16. 前記伝送レートは、前に決定された1つ以上の伝送レートを使用して決定される、請求項12−15のいずれか1項に記載の方法。
  17. パケット損失の検出に基づいて、前記伝送レートが前に決定された前記1つ以上の伝送レートに基づいて決定されるべきであることを決定することをさらに含む、請求項16に記載の方法。
  18. 前記伝送レートがストレッチ肯定応答の受信時間に基づいて決定されるべきではないことを決定することをさらに含む、請求項16または17に記載の方法。
  19. 前記第1のデータパケットのうちの1つ以上のものの伝送後、前記第1のデータパケットのうちのいずれかに対応する肯定応答が前記リンクのラウンドトリップ時間(RTT)に関連する期間内に受信されないことの決定に基づいて、前記伝送レートが前に決定された前記1つ以上の伝送レートに基づいて決定されるべきであることを決定することをさらに含む、請求項16−18のいずれか1項に記載の方法。
  20. 前記1つ以上の基準は、前記輻輳ウィンドウサイズが少なくとも閾値と等しいことを含み、前記輻輳ウィンドウサイズが前記閾値より小さいことの決定に応答して、レートベースのデータ伝送制御が前記第2のデータパケットの伝送を制御するために使用されるべきではないことを決定することをさらに含む、請求項14に記載の方法。
  21. 前記1つ以上の基準は、前記決定された伝送レートで前記RTT内に伝送されることが可能なデータの第1のサイズが少なくとも閾値と等しいことを含み、前記方法は、
    前記第1のサイズを決定することと、
    前記第1のサイズが前記閾値より小さいかどうかを決定することと、
    前記第1のサイズが前記閾値より小さいことの決定に応答して、レートベースのデータ伝送制御が前記第2のデータパケットの伝送を制御するために使用されるべきではないことを決定することと
    をさらに含む、請求項14または20に記載の方法。
  22. レートベースのデータ伝送制御が前記第2のデータパケットの伝送を制御するために使用されるべきではないことの決定に応答して、ある数の前記第2のデータパケットを伝送することをさらに含み、前記数は、前記輻輳ウィンドウサイズに基づいて決定される、請求項14、20、または21のいずれか1項に記載の方法。
  23. アプライアンスの少なくとも1つのプロセッサによって実行可能である命令の組を記憶している非一過性コンピュータ読み取り可能な記憶媒体であって、前記命令の組は、前記アプライアンスにデータ伝送を制御する方法を行わせ、前記方法は、
    リンクを経由した第1のデータパケットのフローに関するデータを取得することと、
    前記フローに対するトランスポート通信プロトコル(TCP)特性を決定することと、
    第2のデータパケットを受信することと、
    前記TCP特性に基づいて、伝送レートを決定することと、
    1つ以上の基準に基づいて、レートベースのデータ伝送制御が前記第2のデータパケットの伝送を制御するために使用されるべきかどうかを決定することと、
    レートベースのデータ伝送制御が前記第2のデータパケットの伝送を制御するために使用されるべきであることの決定に応答して、前記第2のデータパケットをグループで伝送することと
    を含み、
    前記第2のデータパケットの各グループの伝送時間は、前記伝送レートに基づいて決定される、非一過性コンピュータ読み取り可能な記憶媒体。
  24. 前記TCP特性は、前記リンクに関連付けられたネットワークノードにおける待ち行列遅延についての情報を含み、前記第2のデータパケットの前記グループのサイズは、前記待ち行列遅延に基づいて決定される、請求項23に記載の非一過性コンピュータ読み取り可能な記憶媒体。
  25. 前記TCP特性は、前記リンクのラウンドトリップ時間(RTT)および輻輳ウィンドウサイズについての情報を含み、前記伝送レートは、前記RTTおよび前記輻輳ウィンドウサイズに基づいて決定される、請求項23または24に記載の非一過性コンピュータ読み取り可能な記憶媒体。
  26. 前記TCP特性は、前記第1のデータパケットのうちの少なくともいくつかに対応する肯定応答の受信時間を含み、前記伝送レートは、前記第1のデータパケットのうちの前記少なくともいくつかのデータサイズと前記受信時間のうちの少なくともいくつかとに基づいて決定される、請求項23−25のいずれか1項に記載の非一過性コンピュータ読み取り可能な記憶媒体。
  27. 前記伝送レートは、前に決定された1つ以上の伝送レートを使用して決定される、請求項23−26のいずれか1項に記載の非一過性コンピュータ読み取り可能な記憶媒体。
  28. 前記アプライアンスの前記少なくとも1つのプロセッサによって実行可能である前記命令の組は、
    パケット損失の検出に基づいて、前記伝送レートが前に決定された前記1つ以上の伝送レートに基づいて決定されるべきであることを決定することを前記アプライアンスにさらに行わせる、請求項27に記載の非一過性コンピュータ読み取り可能な記憶媒体。
  29. 前記アプライアンスの前記少なくとも1つのプロセッサによって実行可能である前記命令の組は、
    前記伝送レートがストレッチ肯定応答の受信時間に基づいて決定されるべきではないことを決定することを前記アプライアンスにさらに行わせる、請求項27または28に記載の非一過性コンピュータ読み取り可能な記憶媒体。
  30. 前記アプライアンスの前記少なくとも1つのプロセッサによって実行可能である前記命令の組は、前記第1のデータパケットのうちの1つ以上のものの伝送後、前記第1のデータパケットのうちのいずれかに対応する肯定応答が前記リンクのラウンドトリップ時間(RTT)に関連する期間内に受信されないことの決定に基づいて、前記伝送レートが前に決定された前記1つ以上の伝送レートに基づいて決定されるべきであることを決定することを前記アプライアンスにさらに行わせる、請求項27−29のいずれか1項に記載の非一過性コンピュータ読み取り可能な記憶媒体。
  31. 前記1つ以上の基準は、前記輻輳ウィンドウサイズが少なくとも閾値と等しいことを含み、前記アプライアンスの前記少なくとも1つのプロセッサによって実行可能である前記命令の組は、前記輻輳ウィンドウサイズが前記閾値より小さいことの決定に応答して、レートベースのデータ伝送制御が前記第2のデータパケットの伝送を制御するために使用されるべきではないことを決定することを前記アプライアンスにさらに行わせる、請求項25に記載の非一過性コンピュータ読み取り可能な記憶媒体。
  32. 前記1つ以上の基準は、前記決定された伝送レートで前記RTT内に伝送されることが可能なデータの第1のサイズが少なくとも閾値と等しいことを含み、前記アプライアンスの前記少なくとも1つのプロセッサによって実行可能である前記命令の組は、
    前記第1のサイズを決定することと、
    前記第1のサイズが前記閾値より小さいかどうかを決定することと、
    前記第1のサイズが前記閾値より小さいことの決定に応答して、レートベースのデータ伝送制御が前記第2のデータパケットの伝送を制御するために使用されるべきではないことを決定することと
    を前記アプライアンスにさらに行わせる、請求項25または31に記載の非一過性コンピュータ読み取り可能な記憶媒体。
  33. 前記アプライアンスの前記少なくとも1つのプロセッサによって実行可能である前記命令の組は、レートベースのデータ伝送制御が前記第2のデータパケットの伝送を制御するために使用されるべきではないことの決定に応答して、ある数の前記第2のデータパケットを伝送することを前記アプライアンスにさらに行わせ、前記数は、前記輻輳ウィンドウサイズに基づいて決定される、請求項25、31、または32のいずれか1項に記載の非一過性コンピュータ読み取り可能な記憶媒体。
JP2018516778A 2015-10-21 2016-10-18 ネットワークを介するレートベースパケット伝送のためのシステムおよび方法 Expired - Fee Related JP6510142B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/919,317 2015-10-21
US14/919,317 US9992120B2 (en) 2015-10-21 2015-10-21 System and method for rate-based packet transmission over a network
PCT/US2016/057549 WO2017070119A1 (en) 2015-10-21 2016-10-18 System and method for rate-based packet transmission over a network

Publications (3)

Publication Number Publication Date
JP2018531552A true JP2018531552A (ja) 2018-10-25
JP2018531552A6 JP2018531552A6 (ja) 2018-12-13
JP6510142B2 JP6510142B2 (ja) 2019-05-08

Family

ID=57209927

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018516778A Expired - Fee Related JP6510142B2 (ja) 2015-10-21 2016-10-18 ネットワークを介するレートベースパケット伝送のためのシステムおよび方法

Country Status (6)

Country Link
US (2) US9992120B2 (ja)
EP (1) EP3366013B1 (ja)
JP (1) JP6510142B2 (ja)
KR (1) KR102059283B1 (ja)
CN (1) CN108353032B (ja)
WO (1) WO2017070119A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017079412A (ja) * 2015-10-20 2017-04-27 富士通株式会社 パケット解析プログラム、パケット解析装置およびパケット解析方法
CN110300069B (zh) * 2018-03-22 2022-03-29 华为技术有限公司 数据传输方法、优化装置及系统
WO2019222880A1 (zh) * 2018-05-21 2019-11-28 华为技术有限公司 网络设备的配置方法及装置、存储介质
KR102139378B1 (ko) 2018-11-20 2020-07-29 울산과학기술원 혼잡 제어 방법 및 장치
CN110048906B (zh) * 2019-03-27 2021-04-02 网宿科技股份有限公司 一种判断节点传输质量的方法、系统、装置及服务器
US10999206B2 (en) 2019-06-27 2021-05-04 Google Llc Congestion control for low latency datacenter networks
CN113285891B (zh) * 2020-02-20 2022-10-28 瑞昱半导体股份有限公司 用于过载式网络交换的带宽分配装置与相关网络交换装置
US11979330B2 (en) 2020-06-22 2024-05-07 Google Llc Rate update engine for reliable transport protocol
CN112019447B (zh) * 2020-08-19 2024-06-25 博锐尚格科技股份有限公司 数据流量控制方法、装置、系统、电子设备、及存储介质
CN112333680B (zh) * 2020-10-20 2023-06-20 迅镭(广州)智能科技股份有限公司 基于蓝牙底座的数据传输方法及相关设备
US11616730B1 (en) * 2021-10-01 2023-03-28 Compira Labs Ltd. System and method for adapting transmission rate computation by a content transmitter
CN115277556A (zh) * 2022-06-21 2022-11-01 网宿科技股份有限公司 拥塞控制方法、电子设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009089416A (ja) * 2008-11-21 2009-04-23 Sony Corp 通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム
WO2014069642A1 (ja) * 2012-11-05 2014-05-08 日本電気株式会社 通信装置、送信データ出力制御方法、及びそのプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7512066B2 (en) * 2004-03-30 2009-03-31 Hewlett-Packard Development Company, L.P. Congestion control system
US7983156B1 (en) * 2004-11-12 2011-07-19 Openwave Systems Inc. System and method for controlling network congestion
US8553540B2 (en) * 2010-03-05 2013-10-08 Microsoft Corporation Congestion control for delay sensitive applications
US8570864B2 (en) 2010-12-17 2013-10-29 Microsoft Corporation Kernel awareness of physical environment
EP2684390A4 (en) * 2011-03-10 2015-02-25 Optis Cellular Technology Llc HYBRID OVERLOAD CONTROL
US20140281018A1 (en) * 2013-03-13 2014-09-18 Futurewei Technologies, Inc. Dynamic Optimization of TCP Connections

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009089416A (ja) * 2008-11-21 2009-04-23 Sony Corp 通信処理装置、データ通信システム、および通信処理方法、並びにコンピュータ・プログラム
WO2014069642A1 (ja) * 2012-11-05 2014-05-08 日本電気株式会社 通信装置、送信データ出力制御方法、及びそのプログラム
US20150304226A1 (en) * 2012-11-05 2015-10-22 Nec Corporation Communication device, transmission data output control method, and program for same

Also Published As

Publication number Publication date
CN108353032A (zh) 2018-07-31
US9992120B2 (en) 2018-06-05
EP3366013B1 (en) 2020-08-19
US20180262430A1 (en) 2018-09-13
JP6510142B2 (ja) 2019-05-08
US20170118120A1 (en) 2017-04-27
WO2017070119A1 (en) 2017-04-27
CN108353032B (zh) 2022-03-04
US10659367B2 (en) 2020-05-19
EP3366013A1 (en) 2018-08-29
KR20180054800A (ko) 2018-05-24
KR102059283B1 (ko) 2019-12-24

Similar Documents

Publication Publication Date Title
US10659367B2 (en) System and method for rate-based packet transmission over a network
JP2018531552A6 (ja) ネットワークを介するレートベースパケット伝送のためのシステムおよび方法
US11470011B2 (en) System for bandwidth optimization with traffic priority determination
US10594609B2 (en) System and method of providing improved throughput control under delay-based congestion situation in a network
US11582163B2 (en) System for early system resource constraint detection and recovery
US9929956B2 (en) System for bandwidth optimization with initial congestion window determination
US10158575B2 (en) System for bandwidth optimization with high priority traffic awareness and control
JP2020502948A (ja) パケット伝送システムおよび方法
JP2019520745A (ja) 同時接続の総スループットを改善するためのシステム及び方法
JP5867160B2 (ja) 通信制御装置、通信制御方法および通信制御プログラム
EP3961981A1 (en) Method and device for congestion control, communication network, and computer storage medium
US20180070263A1 (en) Supporting Delivery of Data Packets Using Transmission Control Protocol in a Wireless Communication Network
EP4145780A1 (en) Method for controlling network congestion and network device
US9819591B2 (en) System and method of providing compression technique for jitter sensitive application through multiple network links
US20160255004A1 (en) System for dynamic selection and application of tcp congestion avoidance flavors
US9544249B2 (en) Apparatus and method for aligning order of received packets
JPWO2014171543A1 (ja) データ送信装置、データ送信方法、及びそのプログラム
JP6200870B2 (ja) データ転送制御装置、方法及びプログラム
WO2017041569A1 (zh) 业务数据传输方法及装置
Tekala et al. Throughput analysis of Scalable TCP congestion control

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180528

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190307

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: 20190314

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190403

R150 Certificate of patent or registration of utility model

Ref document number: 6510142

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees