[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP2007116714A - 帯域幅保証を伴う適応性帯域幅制御のための方法及び装置 - Google Patents

帯域幅保証を伴う適応性帯域幅制御のための方法及び装置 Download PDF

Info

Publication number
JP2007116714A
JP2007116714A JP2006286657A JP2006286657A JP2007116714A JP 2007116714 A JP2007116714 A JP 2007116714A JP 2006286657 A JP2006286657 A JP 2006286657A JP 2006286657 A JP2006286657 A JP 2006286657A JP 2007116714 A JP2007116714 A JP 2007116714A
Authority
JP
Japan
Prior art keywords
data
threshold
transmission
bandwidth
adaptive
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
JP2006286657A
Other languages
English (en)
Other versions
JP4791322B2 (ja
Inventor
James Kudamik Gregory
グレゴリー・ジェームス・クダミク
Elliot Steven
スティーブン・エリオット
Christopher V Lazzaro
クリストファ・ビクター・ラザロ
Thanh K Tran
タン・ケー・トラン
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2007116714A publication Critical patent/JP2007116714A/ja
Application granted granted Critical
Publication of JP4791322B2 publication Critical patent/JP4791322B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1825Adaptation of specific ARQ protocol parameters according to transmission conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • H04L1/18Automatic repetition systems, e.g. Van Duuren systems
    • H04L1/1867Arrangements specially adapted for the transmitter end
    • H04L1/1887Scheduling and prioritising arrangements
    • 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/0894Packet rate
    • 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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • 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/22Traffic shaping
    • H04L47/225Determination of shaping rate, e.g. using a moving window

Landscapes

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

Abstract

【課題】
ターゲットへのデータの送信を監視するためのコンピュータによって実行される方法、装置、およびコンピュータ使用可能プログラム・コードを提供する。
【解決手段】
データの送信状態が閾値を超えるかどうかに関する決定が行われる。データの送信状態が閾値を超える場合、適応性帯域幅制御プロセスを使用して、データをターゲットに送信するために使用される帯域幅が制御される。この場合、データの送信に関して最小量の帯域幅が保証される。
【選択図】 図3

Description

本発明は、総体的には、データ処理システムの改良に関し、詳しく云えば、データを転送するための、コンピュータによって実行される方法および装置に関するものである。更に詳しく云えば、本発明は、データを転送するために使用される帯域幅を適応可能に制御するためのコンピュータによって実行される方法、装置、およびコンピュータ使用可能プログラム・コードに関するものである。
ネットワークおよびインターネットの共同使用によって、商業的な通信に革命的変化がもたらされた。ネットワークは、一般に、データを転送するために使用される。サービスの質を向上させるために、多くの分散アプリケーションが大きなバックグラウンド転送を利用する。これらのタイプのバックグラウンド転送によって、ユーザは、これらの転送が完了するのを待ってから他のアクションを取ることを必要としない。例えば、データ・バックアップ、プリフェッチ、企業データの配布、インターネット・コンテンツの配布、およびピア・ツー・ピアのストレージ等を含む広範囲のアプリケーションおよびサービスがバックグラウンド転送を使用している。これらのおよび他のタイプのアプリケーションはネットワーク帯域幅の消費を増大させる。これらのサービスのうちの或るものは帯域幅の要求を潜在的に無制限にされ、その場合、増分的に多くの帯域幅の使用が増分的に良好なサービスを提供する。これらのタイプのアプリケーションに伴う1つの問題点は、ネットワークがデータ転送のためには限定された量の帯域幅しか使用し得ないことである。或るアプリケーションは、他のアプリケーションが非臨界的なものであっても、臨界的な機能を遂行する。一般に、バックグラウンド転送は非臨界的であり、臨界的なネットワーク・トラフィックを減速してすべての使用可能な帯域幅を使用することが可能である。
ネットワークに対するインパクトを軽減するようネットワーク状態に自動的に適応させるために、適応性帯域幅制御が使用されてきた。現在、輻輳を回避するよう種々のアプリケーションによって使用される帯域幅の量を制御するために、種々の適応性帯域幅制御プロセスおよびアルゴリズムが使用される。現在使用可能な適応性帯域幅制御プロセスは、サーバまたはクライアントにおいてローカル・インターフェース・レベルでネットワーク状態を考慮するが、データの転送において存在し得る他の状態を考慮することはできない。
従って、データの転送において帯域幅の使用を適応可能に制御するために、改良されたコンピュータによって実行される方法、装置、およびコンピュータ使用可能プログラム・コードを有することは有利であろう。
本発明の目的は、ターゲットへのデータの送信を監視するためのコンピュータによって実行される方法、装置、およびコンピュータ使用可能プログラム・コードを提供することにある。
データの送信状態が閾値を超えるかどうかに関する決定が行われる。データの送信が閾値を超える場合、適応性帯域幅制御プロセスを使用して、データをターゲットに送信するために使用される帯域幅が制御される。この場合、データの送信に関して最小量の帯域幅が保証される。
図1および図2は、本発明の実施例を具現化し得るデータ処理環境の概略図として提供される。図1および図2が、単に例示的なものであること、および本発明の種々の局面または実施例を具現化し得る環境に関する如何なる限定も主張または暗示する意図がないことは当然である。本発明の真意および範囲から逸脱することなく、示された環境に対する多くの修正を施すことが可能である。
図面を参照すると、図1は、本発明の種々の局面を具現化し得るデータ処理システムのネットワークの概略表示を示す。ネットワーク・データ処理システム100は、本発明の実施例を具現化し得るコンピュータのネットワークである。ネットワーク・データ処理システム100はネットワーク102を含み、そのネットワーク102は、ネットワーク・データ処理システム100内の相互接続された種々の装置及びコンピュータの間の通信リンクを提供するために使用される媒体である。ネットワーク102は、有線通信リンク、無線通信リンク、または光ファイバ・ケーブルのような接続機器を含む。
図示の例では、サーバ104及びサーバ106が記憶装置108と共にネットワーク102に接続している。更に、クライアント110、112、及び114がネットワーク102に接続している。これらのクライアント110、112、及び114は、例えば、パーソナル・コンピュータまたはネットワーク・コンピュータであってもよい。図示の例では、サーバ104は、ブート・ファイル、オペレーティング・システム・イメージ、及びアプリケーションのようなデータをクライアント110、112、及び114に提供する。クライアント110、112、及び114は、この例では、サーバ104に対するクライアントである。ネットワーク・データ処理システム100は、図示されてない更なるサーバ、クライアント、及び他の装置を含んでもよい。
図示の例では、ネットワーク・データ処理システム100は、ネットワーク102が、プロトコルのトランスミッション・コントロール・プロトコル/インターネット・プロトコル(TCP/IP)スイートを使って相互に通信を行うネットワーク及びゲートウェイの世界的な集合体を表す場合、インターネットである。インターネットの中心には、主要ノードまたはホスト・コンピュータ間の高速通信回線のバックボーンがあり、それは、データ及びメッセージを経路指定する数千の商業用、政府機関用、教育用、及びその他のコンピュータ・システムを含む。勿論、ネットワーク・データ処理システム100は、例えば、イントラネット、ローカル・エリア・ネットワーク(LAN)、または広域ネットワーク(WAN)のような多数の種々のタイプのネットワークとして具現化することも可能である。図1は、本発明の種々の実施例に対する1つの例として意図されており、種々の実施例に対するアーキテクチャ上の限定として意図されるものではない。
次に図2を参照すると、本発明の種々の局面を具現化し得るデータ処理システムのブロック図が示される。データ処理システム200は、図1におけるサーバ104またはクライアント110のようなコンピュータの一例であり、そこには、本発明の実施例に関するプロセスを具現化するコンピュータ使用可能コードまたは命令を設けることが可能である。
図示の例において、データ処理システム200は、ノース・ブリッジ兼メモリ・コントローラ・ハブ(north bridge and memory controller hub - NB/MCH)202及びサウス・ブリッジ兼入出力コントローラ・ハブ(southbridge and input/output controller hub - SB/ICH)204を含むハブ・アーキテクチャを使用する。処理ユニット206、メイン・メモリ208、及びグラフィックス・プロセッサ210がノース・ブリッジ兼メモリ・コントローラ・ハブ202に接続される。グラフィックス・プロセッサ210はアクセラレーテッド・グラフィックス・ポート(acceleratedgraphics port – AGP)を介してノース・ブリッジ兼メモリ・コントローラ・ハブ202に接続することも可能である。
図示の例では、ローカル・エリア・ネットワーク(LAN)アダプタ212がサウス・ブリッジ兼入出力コントローラ・ハブ204に接続している。オーディオ・アダプタ216、キーボード及びマウス・アダプタ220、モデム222、リード・オンリ・メモリ(ROM)224、ハード・ディスク・ドライブ(HDD)226、CD−ROMドライブ230、ユニバーサル・シリアル・バス(USB)ポート兼他の通信ポート232、及びPCI/PCIeデバイス234がバス238及びバス240を介してサウス・ブリッジ兼入出力コントローラ・ハブ204に接続している。PCI/PCIeデバイスは、例えば、イーサネット・アダプタ、アドイン・カード、及びノートブック・コンピュータ用PCカードを含んでもよい。PCIは、カード・バス・コントローラを使用し、一方,PCIeはそれを使用しない。ROM224は、例えば、フラッシュ・バイナリ入出力システム(BIOS)であってもよい。
ハード・ディスク・ドライブ226及びCD−ROMドライブ230はバス240を介してサウス・ブリッジ兼入出力コントローラ・ハブ204に接続している。ハード・ディスク・ドライブ226及びCD−ROMドライブ230は、例えば、統合ドライブ電子機器(integrated drive electronics - IDE)インターフェースまたはシリアル拡張テクノロジ接続機構(serialadvanced technology attachment – SATA)インターフェースを使用してもよい。サウス・ブリッジ兼入出力コントローラ・ハブ204にスーパI/O(SIO)デバイス236が接続されてもよい。
オペレーティング・システムが処理ユニット206において稼動し、図2におけるデータ処理システム200内の種々のコンポーネントの制御を調整および提供する。クライアントとしてのオペレーティング・システムは、Microsoft Windows XP(Microsoft 及び Windows は、米国の Microsoft 社の商標である)のような商業的に入手可能なオペレーティング・システムであってもよい。Java(商標)プログラミング・システムのようなオブジェクト指向プログラミング・システムがオペレーティング・システムに関連して稼動することも可能であり、データ処理システム200において実行されるJava プログラムまたはアプリケーションからオペレーティング・システムに対するコールを行うことも可能である(Java は、米国の Sun Microsystems社の商標である)。
サーバとしてのデータ処理システム200は、例えば、拡張対話式エグゼクティブ(Advanced Interactive Executive – AIX)オペレーティング・システムを稼動する IBM eServereSeries コンピュータ・システムまたは Linux オペレーティング・システムであってもよい(eServer、eSeries、及びAIXは米国のインターナショナル・ビジネス・マシーンズ(IBM)社の商標であり、Linuxは米国の Linus Torvalds の商標である)。データ処理システム200は、処理ユニット206において複数のプロセッサを含む対称マルチプロセッサ(SMP)システムであってもよい。それとは別に、単一プロセッサ・システムが使用されてもよい。
オペレーティング・システム、オブジェクト指向プログラミング・システム、及びアプリケーションまたはプログラムのための命令がハード・ディスク・ドライブ226のような記憶装置上に配置され、処理ユニット206による実行のためにメイン・メモリ208にロードされる。本発明の実施例に関するプロセスは、処理ユニット206がコンピュータ使用可能プログラム・コードを使うことによって遂行される。それらのプログラム・コードは、例えば、メイン・メモリ208、リード・オンリ・メモリ224のようなメモリに、或いは1つまたは複数の周辺装置226及び230内に配置される。
図1及び図2におけるハードウェアが実施方法次第で変り得るものであることは当業者には明らかであろう。図1及び図2に示されたハードウェアに加えて、またはそれに代わって、フラッシュ・メモリ、同等の不揮発性メモリ、または光ディスク・ドライブのような他の内部ハードウェアまたは周辺装置を使用することも可能である。更に、本発明のプロセスはマルチプロセッサ・データ処理システムにも適用することが可能である。
或る実施例では、データ処理システム200は、オペレーティング・システム・ファイル、及び/又は、ユーザ生成のデータを保存するための不揮発性メモリを提供するようにフラッシュ・メモリと共に構成されるパーソナル・デジタル・アシスタント(PDA)であってもよい。
システム・バスは、図2に示されるように、バス238またはバス240のような1つまたは複数のバスから構成されてもよい。勿論、バス・システムは、任意のタイプの通信ファブリックまたはアーキテクチャを使用して具現化することが可能であり、そのファブリックまたはアーキテクチャに接続された種々のコンポーネントまたはデバイス間のデータ転送を行う。通信ユニットは、図2のモデム222またはネットワーク・アダプタ212のような、データを送信または受信するために使用される1つまたは複数のデバイスを含んでもよい。メモリは、例えば、メイン・メモリ208、リード・オンリ・メモリ224、または図2におけるノース・ブリッジ兼メモリ・コントローラ・ハブ202において見られるようなキャッシュであってもよい。図1及び図2における図示の例及び上述の例は、アーキテクチャ上の限定を暗示することを意味するものではない。例えば、データ処理システム200は、PDAの形態をとることに加えて、タブレット・コンピュータ、ラップトップ・コンピュータ、または電話装置であってもよい。
本発明の種々の局面は、データを転送する際に使用される帯域幅を適応可能に制御するためのコンピュータによって実行される方法、装置、及びコンピュータ使用可能プログラム・コードを提供する。本発明の種々の局面は、ネットワークを介してデータを送信するための或る最小量の帯域幅が保証されるようにデータの送信を適応可能に制御することができる。これらの例では、正規の高インパクトTCP/IPプロセス対低インパクト適応性プロセスを使用してデータを送ることによって保証される。換言すれば、データは、ネットワークが最小量の帯域幅まで許容するように高速度で送られる。或る場合には、保証された量の帯域幅の場合でも、転送し得るデータの量はネットワーク状態のためにその最小量に達しないことがある。
本発明の種々の局面は、データを転送するための現在の適応性配布機構が如何なる程度の保証も与えないということを承知している。更に、本発明の種々の局面は、適応性帯域幅制御プロセスが使用されない期間が存在する或る最小レベルの帯域幅を与える。帯域幅がそのレベルを超えるとき、どのような帯域幅を最小レベルよりも高いデータ転送速度または率に適用し得るかを決定するために、適応性制御プロセスが使用される。これらの例は適応性帯域幅制御に関連するが、本発明の種々の局面は、1つまたは複数のターゲット・データ処理システムへの任意のタイプの大量データの転送に適用することが可能である。
次に図3に説明を転ずると、本発明の実施例に従って、適応性帯域幅制御において使用されるコンポーネントを示す図が示される。この例では、適応性センダ300がレシーバ302、304、及び306にデータを送る。ルータ310のような経路指定機構にパケット308を送ることによってデータが送られる。ルータ310は、パケット308において見つかった経路指定データに基づいて適切なレシーバにパケット308を経路指定するようにまたは送るように働く装置である。ルータ310があまりに多くのパケットを処理するように強いられるとき、それはバックログを有する(backlogged)ルータと呼ばれる。換言すれば、バックログを有するルータは、それの待ち行列に最大量の負荷または最大数のパケットを有するルータである。センダとレシーバとの間にはゼロまたはそれ以上のルータが存在する。センダはパケットのソースであり、レシーバは肯定応答のソースである。これらのレシーバがパケット308を受信するとき、それらは肯定応答を適応性センダ300に戻す。この例では、肯定応答は正規のTCP/IP通信の一部である。
これらの例では、適応性センダ300は、図1におけるサーバ104のようなデータ処理システムにおけるプロセスとして具現化することが可能である。レシーバ302、304、及び306は、図1におけるクライアント108、110、及び112のような受信装置において実行し得るプロセスである。特に、これらの種々のプロセスは、図2におけるデータ処理システム200のようなデータ処理システムにおいて具現化することが可能である。
適応性センダ300は、各レシーバに送られたパケット308を追跡する。肯定応答312の受信も追跡され、ラウンド・トリップ時間のようなパラメータを識別するために使用される。ラウンド・トリップ時間は、パケットが送られた時間から、肯定応答が受信されるまでの時間である。この例では、ラウンド・トリップ時間は、適応性センダ300の視点に基づいている。
更に、この情報は、ブロックを識別するためにも使用される。ブロックは、任意のパケットが送られる時に始まる。ブロックを開始させた最初のパケットがレシーバによって肯定応答されるまで、統計上のデータがそのブロック内のすべてのパケットに対して保持される。任意のパケットに対する肯定応答が戻されるとき、適応性センダ300は、そのブロックのパケットに対する統計値を計算する。換言すれば、1つのブロックには1つ又は複数のパケットが存在するが、そのパケットの数は、ブロックの始めにおける任意の当該パケットに対する肯定応答が返送される前に送られたパケットの量に依存する。更に、適応性センダ300はウィンドウも識別する。ウィンドウは、そのネットワークにおいて送られてしまったが肯定応答が受信されてないパケットの数である。
更に、適応性センダ300はルータ310に配置されているパケットの数も見積もる。この情報は、「肯定応答されてないパケットの予測数」対「肯定応答されてないパケットの実際の数」を計算するために現在のラウンド・トリップ時間を使って決定される。例えば、現在のラウンド・トリップ時間のためには5個のパケットがネットワーク上に存在しなければならず、しかも8個の肯定応答されてないパケットが適応性センダ300によって識別される場合、適応性センダ300は、3個のパケットがルータ310に配置されていることを見積もることができる。
適応性センダ300は、選択された数のパケットをルータ310において保つようにしながら、予測されたウィンドウのサイズを増加または減少させることによって速度を制御する。ルータ310は「適応性パケット」対「他のネットワーク・トラフィック」の処理において多くの時間を費やすので、大きいウィンドウはより攻撃的である。この場合、適応性センダ300はルータ310に対するアルファ及びベータ・パラメータをチューニングすることが可能である。アルファは、ウィンドウが1パケットだけ増加する前の各接続当たりのルータ310におけるパケットの最小数を表す整数である。ベータは、ウィンドウが1パケットだけ減少する前の各接続当たりのバックログ・ルータにおけるパケットの最大数を表す整数である。これらのパラメータは、アルファ及びベータに基づいてウィンドウを調節することによって速度のわずかな増加または減少を可能にする。もう1つのパラメータである閾値は、1つのブロックにおけるパケットの50%がこの閾値の条件に適合するとき、速度の急激な減少を可能にする。この例では、閾値は、基本ラウンド・トリップ時間から最大ラウンド・トリップ時間までの行程の設定可能なパーセンテージである。この例では、適応性センダ300は、データが適応性帯域幅制御プロセスに基づいてエンド・ポイントまたはターゲットに送られる速度を変更する。これらの例では、この制御プロセスは、データ転送の或る閾値レベルを超えたデータを転送する場合に使うために使用される。データ転送の閾値設定及び測定は多くの種々の方法で行うことが可能である。例えば、測定は、或る期間にわたって転送されるデータの量であってもよく、リンク速度の合計量の或るパーセンテージであってもよい。
図4に説明を転ずると、本発明の実施例に従って、TCP/IP及び同様のプロトコルが示される。TCP/IP及び同様のプロトコルは通信アーキテクチャ400によって利用される。この例では、通信アーキテクチャ400は4層のシステムである。このアーキテクチャは、アプリケーション層402、トランスポート層404、ネットワーク層406、及びリンク層408を含む。各層は、種々の通信タスクを処理する責任を負っている。リンク層408は、データ・リンク層またはネットワーク・インターフェース層とも呼ばれ、通常は、オペレーティング・システムにおけるデバイス・ドライバ及びコンピュータにおける対応するネットワーク・インターフェース・カードを含む。この層は、光ケーブルまたはイーサネット・ケーブルのような使用されるネットワーク媒体と物理的にインターフェースすることに関するすべてのハードウェアの細部を処理する。
ネットワーク層406はインターネット層とも呼ばれ、ネットワークの周囲におけるデータ・パケットの移動を処理する。例えば、ネットワーク層406は、ネットワークを介して転送される種々のデータ・パケットの経路指定を処理する。TCP/IPスイートにおけるネットワーク層406は、インターネット・プロトコル(IP)、インターネット・コントロール・メッセージ・プロトコル(IPMP)、及びインターネット・グループ・マネージメント・プロトコル(IGMP)を含むいくつかのプロトコルから成る。
次に、トランスポート層404は、ネットワーク層406とアプリケーション層402との間のインターフェースを提供し、2つのホスト・コンピュータ間におけるデータの転送を促進する。トランスポート層404は、例えば、アプリケーションからそれに送られたデータをネットワーク層以下に対する適切なサイズのチャンクに分割すること、受信されたパケットに関して肯定応答すること、及び送られたパケットに関して他のエンドが肯定応答することを確実にするためにタイムアウトを設定することのようなものに関連している。TCP/IPプロトコル・スイートでは、2つの明らかに異なるデータグラム・トランスポート・プロトコルが存在し、それはTCPデータグラム・プロトコルとユーザ・データグラム・プロトコル(UDP)である。TCPは、データが2つのホストの間で適正に送信されることを保証するために、ドロップアウト検出及び再送信サービスを含む信頼性サービスを提供する。
逆に、UDPは、データが適正に転送されることを保証するための如何なる機構も設けることなく、データグラムと呼ばれるデータを1つのホストから他のホストに送るだけでずっと簡単なサービスをアプリケーション層に提供する。UDPを使用するとき、アプリケーション層は信頼性機能を遂行しなければならない。
アプリケーション層402は特定のアプリケーションの細部を処理する。リモート・ログインのための Telnet、ファイル転送プロトコル(FTP)、電子メール用のシンプル・メール・トランスファ・プロトコル(SMTP)、シンプル・ネットワーク・マネージメント・プロトコル(SNMP)を含む多くの一般的なTCP/IPアプリケーションがほとんどすべての具現化のために存在する。
これらの例では、ユーザ設定がユーザによって入力されることを可能にするようにデータの転送を適応可能に制御するために、本発明の種々の局面がアプリケーション層402において具現化される。このように、ユーザは、適応性帯域幅制御における使用のためにネットワークを介してパケットを送る方法を制御すべく種々の設定を変更することが可能である。ユーザ設定がアプリケーション・レベルから入力されるのを可能にすることによって、ユーザは、種々のタイプのネットワークに関する変更、及び一般には適応性帯域幅制御プロセスによって考慮されない種々のネットワーク状態に関する変更を行うことが可能である。
ユーザが設定し得る1つの設定は、データの転送のために使用されるべき最小量の帯域幅に対する閾値レベルである。データ転送がその閾値を超えるとき、データ転送の高い速度に対して適応性帯域幅制御プロセスが使用される。このように、クライアントに関する状態以外の状態を考慮することが可能である。例えば、本発明の種々の局面は、ユーザが、レシーバまでのパスにおけるホップの数及び大量のトラフィックまたは輻輳を有するレシーバまでのパスにおけるリンクの数のような識別要素に基づいて設定を変更することを可能にする。図示の例はアプリケーション層において具現化されるが、本発明の種々の局面は、トランスポート層404のような他の層においても具現化することが可能である。使用される特定の層が特定の実施方法に依存して変ることはあり得る。
次に図5の説明に転ずると、本発明の実施例に従って、適応性帯域幅制御を行うときに使用されるスフとウェア・プロセス及びコンポーネントを示す図が示される。この例では、適応性センダ500は、図3における適応性センダ300内のプロセスの更に詳細な図である。適応性センダ500は、この例では、3つのスレッドを含む。送信スレッド502、輻輳スレッド504、及びパケット探知スレッド506が、1つまたは複数のレシーバにデータを適応可能に送るために使用されるコンポーネントである。送信スレッド502は、ソケットへのコールを行うことによってデータを送るために使用される。ソケットは、TCP/IPスタックにおけるTCP/IPプロトコルのようなネットワーク・プロトコルにアプリケーションを接続するソフトウェア・オブジェクトである。送信スレッド502は、パケット512においてデータを転送する。接続またはリンクによって許容される転送の速度が帯域幅の閾値または最小レベルを超える場合、送信スレッド502は、如何に多くのデータをその送信スレッド502が送り得るデータの量を問合せるための要求508を輻輳制御スレッド504に送る。輻輳制御スレッド504は、送り得るデータの量を知らせる応答510を返送する。送信スレッド502は応答510を使って、送信のためのパケット512を送る。
応答510を使用する際、何らかの理由で、その送られるべきデータが、保証された量または閾値レベルよりも少ない場合、送信スレッド502はその応答を無視し、帯域幅の最小量が再び超えられるまで、最早輻輳制御スレッド504からのこの情報を要求しない。これらのパケットは、バックログ・ルータがパケットをそれらの宛先に経路指定するまで、バックログ・ルータ・キュー514に保存される。バックログ・ルータ・キュー514は、図3におけるルータ310のようなバックログ・ルータ上に設けられる。パケットが受信されるとき、肯定応答516が適応性センダ500に返送される。この例では、説明の便宜上、保証された量に基づいてデータを送るためのプロセスまたはロジックが送信スレッド502によって実行される。勿論、この特定のプロセスは、輻輳制御スレッド504において具現化することも可能である。このタイプの具現化では、送信スレッド502は、送信し得るデータの量に関して、いつも輻輳制御スレッド504に問合せるであろう。
輻輳制御スレッド504は、適応性帯域幅制御プロセスを遂行することによって送信されるべきデータの量を識別する。これらの例における輻輳制御スレッド504は、ネットワーク状態における変化に応答して、ネットワークを介してデータ・パケットを送信するための送信速度を適応可能に識別するために、適応性帯域幅制御プロセスを使用する。これらのネットワーク状態は、例えば、適応性センダによって処理される輻輳の量に加えて、種々の他のデータ送信によるネットワーク上の輻輳の量を含む。換言すれば、データが送られる速度の割合はネットワーク状態に従って変化する。輻輳制御スレッド504は、ユーザによって設定される種々のパラメータに基づいて最小のネットワーク・インパクトを維持するためにスピード・アップまたはスロー・ダウンする種々の割合を識別する。このプロセスはキュー518に配置されている情報を使用する。特に、パケット探知スレッド506がネットワークからパケット及び肯定応答をグラブし、パケット情報520及び肯定応答情報522をキュー518に入れる。パケット探知スレッド506は、パケット及び肯定応答をフィルタし、輻輳制御スレッド504が必要とする適切なデータをキュー518に入れる。これとは別に、パケット及び肯定応答全体が輻輳制御スレッド504による処理のためにキュー518に入れられてもよい。キュー518における情報は、パケットが送られたときから、そのパケットに対する肯定応答が受信されるまでのラウンド・トリップ時間のようなパラメータを識別するために輻輳制御スレッド504によって使用される。輻輳制御スレッド504によって識別及び維持され得る、キュー518における情報からの他のパラメータはブロック、ウィンドウ、及びバックログ・ルータにおけるパケットを含む。
更に、本発明の種々の局面は、ユーザ定義されたパラメータ526を設定するために使用することが可能なユーザ・インターフェース524を含む。ユーザ・インターフェース524は、パラメータ・スレッド528によって提供される。一般に、パラメータは、適応性プロセスが最初にシステム上に設定されるときに設定される。これらのパラメータは、ユーザ・インターフェース524及びパラメータ・スレッド528を通して変更することが可能である。ユーザ定義されたパラメータ526は、ディスクのような不揮発性メモリに保存される。これらのパラメータは、その後、適応性帯域幅制御プロセスが開始するときに読み取ることができる。ユーザ・インターフェース524は、適応性帯域幅制御プロセスを遂行するとき、輻輳制御スレッド504による使用のためにユーザが種々のパラメータを選択または入力することを可能にする。
これらの例では、本発明の種々の局面は、適応制御プロセスを使用することなくデータを転送するための最小レベルまたは速度として使用される閾値を、ユーザが入力または選択することを可能にする。本発明の種々の局面は、データを宛先またはターゲットに送るための閾値を使用する。データ転送がこの閾値を超えるとき、データを転送するときに使用するための適応性帯域幅制御プロセスが開始される。何らかの理由で、転送されるデータの量が閾値よりも少ないことを適応性帯域幅制御プロセスが表示する場合、この表示は、そのプロセスがデータを送ることによって無視される。このように、本発明の種々の局面は、保証された転送速度でデータを送る場合、適応性帯域幅制御を提供する。これらの例において、設定することが可能な他のパラメータは、閾値、ラウンド・トリップ時間の最大変化、ベータ、ラウンド・トリップ時間の平滑化、及び最大待ち時間を含む。ラウンド・トリップ時間の最大変化は、前に測定されたラウンド・トリップ時間に関連する現在の測定されたラウンド・トリップ時間の変化の量を制限するために使用されるパラメータである。プロセスは、現在のラウンド・トリップ時間、最大ラウンド・トリップ時間、及び基本ラウンド・トリップ時間を追跡する。
輻輳制御スレッドは、ソケットごとのラウンド・トリップ時間及びそのシーケンスを追跡する。1つのパケットが10のラウンド・トリップ時間を有し、第2のパケットが20のラウンド・トリップ時間を有する場合、第2のパケットのラウンド・トリップ時間は、1.5のラウンド・トリップ時間最大変化値によって制限される。たとえ実際のラウンド・トリップ時間が20であっても、そのラウンド・トリップ時間値は、10x1.5=15として記録される。従って、その後のパケットは、最大 1.5x15 のラウンド・トリップ時間を持ち得るし、第2のパケットに対してそのラウンド・トリップ時間が記録される。
一般に、ネットワークは或る量のランダム性を有する。このパラメータは、適応性帯域幅制御プロセスが過度に大きいまたは過度に小さいラウンド・トリップ時間を無視することを許容するが、それらがかなり頻繁に生じる場合には、大きいラウンド・トリップ時間を許容する。このパラメータは、どのくらいの大きさの変化が許容されるかをユーザが設定することを可能にする。
これらの例におけるラウンド・トリップ時間平均化パラメータは、ラウンド・トリップ時間の測定が指数型減衰によってどのくらい平滑化されるべきであるかを表すために使用される整数である。その指数型減衰は前の測定を平均化することによって行われる。このパラメータは、適応性帯域幅制御プロセスが、ラウンド・トリップ時間における変動を過剰補償することによって不規則に振舞うケースを助けることがある。一般に、平滑化は、最大変化パラメータが考慮される前に生じる。
最大待ち時間は、1つの接続が送信を断念してリ設定する前に最大ラウンド・トリップ時間の何倍の時間の間その送信を待つであろうということを表すパラメータである。時には、追加のデータを送る前にセンダを長期間の間待たせるネットワークでは、肯定応答が喪失されることがある。これは、データが送られる前にあまり多くの時間が経過した場合、適応性帯域幅制御のプロセスをリ設定するためのリセット値である。閾値パラメータに関しては、パケットのラウンド・トリップ時間がソケットを介して送られるとき、その時間は選択された範囲内に落着く傾向がある。この状況は、特に、ネットワークがアイドル中であるときに真である。
閾値は、最小ラウンド・トリップ時間から最大ラウンド・トリップ時間までの過程のパーセンテージである。例えば、20%の閾値は、その閾値が基本ラウンド・トリップ時間から最大ラウンド・トリップ時間までの過程の20%であることを意味する。ネットワークのタイプ次第で、ラウンド・トリップ時間は多少の変動を持つであろう。一般に、種々の変動が種々の閾値を必要とする。例えば、十分に作用するローカル・エリア・ネットワークは、低い閾値を可能にする非常に小さいラウンド・トリップ時間を有するであろう。広域ネットワークは、高いラウンド・トリップ時間変動を有するであろう。このタイプのネットワークの場合、高い閾値が必要である。この特定のパラメータは、データを送る際に遭遇し得る種々のタイプのネットワークを考慮するようにユーザ構成可能なものである。閾値パラメータに関して、パケットのラウンド・トリップ時間がソケットに送られるとき、その時間は或る選択された範囲内に落着く傾向がある。この状況は、特に、ネットワークがアイドル中であるときに真である。
パケットのラウンド・トリップ時間が閾値よりも遅い場合、このパケットは遅いと見なされる。1つのブロックにおけるパケットの50%が遅いと見なされる場合、ウィンドウは半分にカットされ、配布速度をかなり減少させる。その結果、この値のユーザ構成を許容することは、種々のネットワーク・タイプ及び状態を考慮することを可能にする。
次に図6に説明を転ずると、本発明の実施例に従って、パラメータに関するユーザ設定を構成するためのプロセスのフローチャートが示される。図6に示されるプロセスは、図5における送信スレッド502において具現化することが可能である。このプロセスは、ユーザが、適応性帯域幅制御において使用されるパラメータを定義または変更することを可能にするために使用される。これらの例では、パラメータは、閾値、ラウンド・トリップ時間の最大変化、ラウンド・トリップ時間の平滑化、最大待ち時間、及びベータ閾値である。
プロセスは、ユーザ設定を提示することによって始まる(ステップ600)。これらの設定は、図5におけるユーザ・インターフェース524のようなユーザ・インターフェースにおいて提示することが可能である。そこで、プロセスはユーザ入力を受ける(ステップ602)。ユーザ入力がパラメータにおける設定を変更するかどうかに関する決定が行われる(ステップ604)。ユーザ入力が設定を変更する場合、旧い設定が新しい設定でもって置換される(ステップ606)。しかる後、プロセスは、これらの設定をユーザに提示するためにステップ600に戻る。
再びステップ604を参照すると、ユーザ入力が設定を変更しない場合、ユーザ入力がユーザ設定を変更するプロセスを終了すべきかどうかに関する決定が行われる(ステップ608)。ユーザ入力がそのプロセスを終了すべきでない場合、プロセスはステップ600に戻る。そうでない場合、ユーザ設定が保存され(ステップ610)、しかる後、プロセスが終了する。これらの設定は、これらの例では、図5におけるユーザ定義されたパラメータ526として保存される。
次に図7に説明を転ずると、本発明の実施例に従って、送信スレッドに関するプロセスのフローチャートが示される。図7に示されたプロセスは、図5における送信スレッド502のような送信スレッドにおいて具現化することが可能である。
プロセスは、受信されるべきデータを送ることによって始まる(ステップ700)。しかる後、レシーバに送られるべき更なるデータが存在するかどうかに関する決定が行われる(ステップ702)。送られるべき更なるデータが存在する場合、データの送信が第1閾値を超えるかどうかに関する決定が行われる(ステップ704)。ステップ704における決定は、多くの種々の方法で数量制限されることによって行うことも可能である。例えば、閾値を超えたかどうかを決定するために、その送られたデータの量及びデータを送るために必要な時間が使用されてもよい。閾値は、その接続に関する速度の或るパーセンテージよりも大きい速度が使用されるかどうかの決定であることもある。この閾値は、適応性帯域幅制御が行われるレベルを設定するために使用される。
データの送信状態が第1閾値を超える場合、プロセスは、送ることができるデータの量に関する要求を輻輳制御スレッドに送る(ステップ706)。しかる後、プロセスは応答を受ける(ステップ708)。この応答は、レシーバに送り得るデータの量を指定する。次に、そのデータの量が第2閾値よりも少ないかまたはそれに等しいかに関する決定が行われる(ステップ710)。この第2閾値は、データを送るために保証される帯域幅の最少量を設定するために使用される。第2閾値は、特定の実施方法次第で第1閾値と同じ値であることもある。
応答におけるデータの量が第2閾値よりも少なくないかまたはそれに等しくない場合、応答において指定されたデータの量までのみの量を使ってデータが送られる(ステップ712)。次に、送られるべき更なるデータが存在するかどうかに関する決定が行われる(ステップ714)。更なるデータが存在しない場合、プロセスは終了する。
更なるデータが存在する場合、プロセスは、別の要求を輻輳制御スレッドに送るためにステップ706に戻る。再び、ステップ710に関連して、応答におけるデータの量が第2閾値よりも少ないかまたはそれに等しい場合、その応答は無視され(ステップ716)、プロセスはデータを送るためにステップ700に戻る。再びステップ702に関連して、更なるデータが存在しない場合、プロセスは終了する。
次に図8に説明を転ずると、本発明の実施例に従って、パケット探知スレッドに関するプロセスのフローチャートが示される。図8に示されたプロセスは、図5におけるパケット探知スレッド506において具現化することが可能である。
プロセスは、パケットが検出されたかどうかを決定することによって始まる(ステップ800)。パケットが検出されている場合、プロセスはそのパケットからパケット識別子及びタイムスタンプを取り出す(ステップ802)。次に、プロセスはそのデータをキューに保存する(ステップ804)。このキューは、ラウンド・トリップ時間を決定するとき及び適応性帯域幅制御プロセスを遂行するときそのデータを使用し得るよう、輻輳制御スレッドによってアクセス可能である。
再びステップ800に関連して、パケットが検出されてない場合、肯定応答が検出されたかどうかに関する決定が行われる(ステップ806)。肯定応答が検出されてない場合、プロセスはステップ800に戻る。ステップ806において肯定応答が検出されていた場合、その肯定応答に対するパケット識別子及びタイムスタンプが取り出される(ステップ808)。そこで、プロセスは、上述のようにステップ804に進む。
次に図9に説明を転ずると、本発明の実施例に従って、輻輳制御スレッドに関するフローチャートが示される。この例では、図9に示されるプロセスを、図5における輻輳制御スレッド504において具現化することが可能である。
プロセスは、送信スレッドから要求を受けることによって始まる(ステップ900)。この要求は、送ることが可能なデータの量に関する識別情報を要求する。しかる後、データがキューから引き出される(ステップ902)。このデータは到達時間及びパケット識別子を含む。しかる後、ラウンド・トリップ時間がキューにおけるデータから識別される(ステップ904)。次に、ユーザ定義されたパラメータが得られる(ステップ906)。これらのパラメータは図5におけるユーザ定義されたパラメータ526から生じる。しかる後、プロセスは適応性帯域幅制御プロセスを実行する(ステップ908)。このプロセスは、例えば、輻輳制御スレッドに含まれたステップであってもよい。それとは別に、そのスレッドはステップ908における機能または外部プロセスをコールしてもよい。そこで、プロセスは結果を得て(ステップ910)、送ることが可能なデータの量と共に応答が返送され(ステップ912)、しかる後、プロセスは終了する。
次に図10に説明を転ずると、本発明の実施例に従って、適応性帯域幅制御を遂行するためのプロセスのフローチャートが示される。図10に示されるプロセスは、図9におけるステップ908を更に詳細に説明したものである。
プロセスは、最小ラウンド・トリップ時間及び最大ラウンド・トリップ時間を識別することによって始まる(ステップ1000)。しかる後、ウィンドウが識別される(ステップ1002)。そこで、プロセスは、1つの肯定応答当たりの閾値の上及び下におけるパケットの数を識別する(ステップ1004)。次に、プロセスは、1つのブロックにおけるパケットの50%が閾値の上であるかどうかを決定する(ステップ1006)。1つのブロックにおけるパケットの50%が閾値の上でない場合、予想されるスループットが計算される(ステップ1008)。ステップ1008では、予想されるスループットは次式(1)によって計算される。
[数1]
E ← W/minRTT (1)
上式(1)において、Eは予想されるスループットであり、Wはウィンドウであり、そして minRTT はキューから得られたラウンド・トリップ時間からわかった最小ラウンド・トリップ時間である。しかる後、プロセスは実際のスループットを識別する(ステップ1010)。実際のスループットは次式(2)を使って識別される。
[数2]
A ← W/observedRTT(2)
上式(2)において、Aは実際のスループットであり、Wはウィンドウであり、そして observedRTT は、パケットが送られるときおよび肯定応答が受信されるときからの時間の差を使って測定される値である。その結果、予想されるスループットは、アイドル・ネットワークでは最小ラウンド・トリップ時間がいつもパケットを送ることの結果であるという予想が存在するので、最小のラウンド・トリップ時間に基づいている。実際のスループットは、現在のラウンド・トリップ時間が最小ラウンド・トリップ時間よりも大きいという現在のネットワーク状態に基づいている。これらの例では、最小ラウンド・トリップ時間は基本ラウンド・トリップ時間と同じである。そこで、プロセスはバックログ・ルータにおけるパケットの数を計算する(ステップ1012)。パケットの実際の数は次式(3)を使って算定される。
[数3]
Diff ← (E−A)・minRTT (3)
上式(3)において、Diff はバックログ・ルータにおけるパケットの数であり、Eは予想されるスループットであり、Aは実際のスループットであり、そしてminRTT はわかっている最小ラウンド・トリップ時間である。
次に、バックログ・ルータにおけるパケットの数がアルファよりも少ないかどうかに関する決定が行われる(ステップ1014)。上述のように、アルファは、ウィンドウが1パケットだけ増加する前に1つの接続当たりのバックログ・ルータに存在すべきパケットの数を表す値である。バックログ・ルータにおけるパケットの数がアルファよりの少ない場合、プロセスは1だけウィンドウをインクリメントする(ステップ1022)。しかる後、プロセスは、ウィンドウ・サイズまでデータを送ることが承認され(ステップ1018)、しかる後、プロセスは終了する。
再び、ステップ1014に関連して、バックログ・ルータにおけるパケットの数がアルファよりも少なくない場合、パケットの数がベータよりも大きいかどうかに関する決定が行われる(ステップ1016)。パケットの数がベータよりも大きい場合、ウィンドウ・サイズが1だけ減少する(ステップ1024)。そこで、プロセスは、上述のようにステップ1018に進む。そうでない場合、プロセスは、ウィンドウ・サイズを変更することなくステップ1018に進む。
ステップ1006に関連して、1つのブロックにおけるパケットの50%が閾値を超える場合、ウィンドウは半分だけ減少する(ステップ1020)。そこで、プロセスは、上述のように、ステップ1018に進む。
図10に示されたプロセスは、ACM SIGOPS Operating Systems Review 誌、Vol. 36、Issue SI Winter 2002、pp. 1-15 における“TCP Nice : A Mechanism for Background Transfers”と題したVenkataramani 氏他による記事に記載された Nice アルゴリズムのような現在使用可能な帯域幅制御アルゴリズムに対する修正に基づいている。
NICE_FAST_RETURN は、設定されたとき、EWOULDBLOCK の errno を伴う最初の失敗した send() 時に高速開始フェーズを抜け出す。これは、高速開始モードにおいて費やされる時間の量を最小にする。ソケットの出力キューを満たすことが非常に高速でなければならないので、この時間の量はゲートウェイにとって利するものではない。デフォルトが設定される。
NICE_INTERFACEは、nice によって使用されるべきインターフェース(ネットワーク・カード識別子)である。このとき、適応性帯域幅制御プロセスは正しいインターフェースを動的に決定することができない。従って、そのインターフェースは、それが第1アクティブ・インターフェースでない場合、相互に設定される必要がある。一般に、これは、“eth1”のようなものに設定されるであろう。デフォルトが設定解除される。
NICE_MAX_MULT は、maxRTT に対する最小値を baseRTT の倍数として指定する浮動小数点数である。それは、設定されるとき、maxRTTに対する過度に低い値及びそれに付随する傾向のある低いスループットを防ぐのを支援しなければならない。デフォルトは 0.0 である。
NICE_MIN_MSS は、使用されるべき最小MSSを表す整数である。効率に関しては、オペレーティング・システムによって提供された低い値がNICE_DEFAULT_MSS に利するように無視される。デフォルトは 1000 である。
NICE_MIN_PACKET は、1回に送られるべきデータの最小量を指定する整数である。これは、 ok_to_send がその指定された値よりも小さい場合にそれが0に設定されるという点でNICE_MIN_SEND とは異なる。これは、輻輳制御スレッドが1バイトのような非常に小さい値のものを送るよう送信スレッドに命じ続けるという状況を回避するためである。この値を10に設定することによって、輻輳制御スレッドは、少なくとも10バイトが送られるまで待つ(計算が10を指定するまで0に戻る)であろう。デフォルトは0である。
NICE_MIN_SEND は、輻輳制御スレッドが少なくともこの量のデータを送るよう送信スレッドに常時命じていることを意味するok_to_send の最小値を指定する整数である。これを10に設定することによって、たとえ適応性計算が3を指定しても、輻輳制御スレッドは10に戻る。デフォルトは0である。
NICE_NANO_FIXED は、インターネット・コールバック機能、select_delay() が使用時には休眠しているマイクロ秒の数を指定する整数である。
NICE_NANO_FIXED は、コールバックが select_delay() 以外にものに設定されるときには効果はない。それが設定されない時、最終ブロックのスループット(最終ブロックにおける最速のパケットのRTTおよびそのブロックのサイズによって決定される)によって表されるように、パケットを送るに十分な空きが存在するためにそれが取るべき長さに基づいて、遅延が動的に計算される。それが1234に設定されるとき、nanosleep()はコールされず、即ち、遅延がゼロに動的に計算され、nanosleep() が0の値でコールされるが、それは或るシステム1234では10ms程度の遅延であってもよく、その他の場合はnanosleep() をコールせず、指定されたマイクロ秒の数(デフォルトは0である)でもって nanosleep() をコールする。
NICE_PCAP_TIMEOUT は、捕捉されたパケットのリストを戻すまえにオペレーティング・システムが待たなければならない長さを表す整数である。Linuxシステムは、それが必要とする長さに関係なく1つのパケットが使用可能になるまで待つだけなので、この変数は Linux システムに影響を与えない。Solaris のような、この変数が影響を与えるシステムでは、タイムアウトが低く設定されるときには正確なRTTを得ること及びネットワークがアイドル中であるときにCPU時間を浪費することの間にはトレードオフが存在する。デフォルトは10ms(Solarisにおける最低のサポートされた値)である。
NICE_QUEUE_LIMIT は、輻輳スレッドにより読み出された探知スレッドによって書き込まれたパケットのキューの最大長を指定する整数である。キューが長ければ長いほどnice の応答性は悪くなる。というのは、輻輳スレッドが作用している情報は、パケットがキューを通して自身の方向に進むために、如何に長くても遅延されるためである。デフォルトは10である。
NICE_RTT_MAX_CHNGE は、基本及び最大のRTTが前の値に関して変ることを許容される最大量を表す整数である。設定されるとき、適応性帯域幅制御プロセスは、擬似の極端なRTT値に関してより寛容でなければならない。デフォルトは1.5である。
NICE_RTT_MIN_STDSは、RTTが基本RTTよりも大きいと見なさなければならないので、基本RTTよりも大きい標準偏差の最小数を表す整数である。デフォルトは0である。
NICE_RTT_SMOOTHING は、前の測定値を平均化することによって行われる指数型減衰によって平滑化されなければならないRTT(ラウンド・トリップ時間)の測定値の量を表す整数である。これを設定することは、RTTにおける各変動を過剰補償することによってniceが不規則に振舞う場合の助けになり得る。デフォルトは50である。
NICE_RTT_STD_SMOOTH は、 NICE_RTT_SMOOTHING と同じであるが標準偏差に対する整数である。標準偏差は、最近のRTT測定のウェート付けされた平均に基づいている。デフォルトは0である。
NICE_SEND_RTX_Q は、設定されるとき、送信スレッドは、RTTを計算するために使用される rtx_q に各出力パケットの見積もりを追加または更新するであろう。送信スレッドは、それがパケットを脱落しないという利点を有するが、出力時間の見積もりが不正確であることがある。デフォルトが設定される。
NICE_THROUGHPUT_AVG は、スループット計算に含まれるべき最近のパケットの量を表す整数である。大きな値はより正確なスループット計算を生じるが、しかし、低い応答性であることを犠牲にしなければならない。デフォルトは20である。
NICE_THROUGHPUT_START は、スループット計算を始める前に送信されなければならないパケットの最小数を表す整数である。これは、低速リンク・キューが当初は空であったことを説明するためであり、従って、ソケットの初期部分中のスループットはソケットを代表するものではあり得ず、無視されなければならない。デフォルトは100である。
NICE_WAIT_BASE は、1つの接続が、送信を断念して snd_nxt 及び snd_una をリ設定する前に、v_baseRTT(グローバル最小RTT)の何倍の時間を送信のために待つかを表す整数である。計算されたタイムアウトは、NICE_WAIT_MAXに対するタイムアウトに加えられる。デフォルトはゼロである。
NICE_WAIT_MAX は、1つの接続が、送信を断念して リ設定する前に、何倍の v_maxRTT(グローバル最大RTT)を送信するのを待っているかを表す整数である。デフォルトは優先順位に基づいている。
従って、本発明の種々の局面は、データ転送の速度を調節するためのコンピュータによって実行される方法、装置、およびコンピュータ使用可能プログラム・コードを提供する。
本発明は、全体的にハードウェアの実施例、全体的にソフトウェアの実施例、またはハードウェア要素及びソフトウェア要素の両方を含む実施例の形態を取ることが可能である。好適な実施例では、本発明は、ファームウェア、常駐ソフトウェア、マイクロコード等を含むがそれに限定されないソフトウェアにおいて具現化される。
更に、本発明は、コンピュータまたは任意の命令実行システムによってまたはそれに関連して使用するためのプログラム・コードを提供する、コンピュータ使用可能媒体またはコンピュータ可読媒体からアクセスし得るコンピュータ・プログラムの形態を取ることが可能である。この説明のために、コンピュータ使用可能媒体またはコンピュータ可読媒体は、命令実行システム、装置、またはデバイスによってまたはそれに関連して使用するためのプログラムを含み、保存、通信、伝播、または搬送することが可能な任意の有形の装置であってもよい。
その媒体は、電子的、磁気的、光学的、電磁的、赤外線式、または半導体型システム(または装置またはデバイス)、或いは伝播媒体であってもよい。コンピュータ可読媒体の例は、半導体またはソリッド・ステート・メモリ、磁気テープ、取外し可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、リード・オンリ・メモリ(ROM)、固定磁気ディスク、及び光ディスクを含む。光ディスクの現在の例は、コンパクト・ディスク・リード・オンリ・メモリ(CD−ROM)、コンパクト・ディスク・リード/ライト(CD−R/W)、及びDVDを含む。
プログラム・コードを記憶及び/又は実行するに適したデータ処理システムは、システム・バスを介してメモリ素子に直接に又は間接的に接続された少なくとも1つのプロセッサを含むであろう。メモリ素子は、プログラム・コードの実際の実行中に使用されるローカル・メモリ、大容量記憶装置、及び、実行中に大容量記憶装置からコードが検索されなければならない回数を少なくするために少なくとも幾つかのプログラム・コードの一時的記憶装置を提供するキャッシュ・メモリを含むことが可能である。
入出力またはI/O装置(キーボード、ディスプレイ、ポインティング・デバイス等を含むがそれに限定されない)は直接にまたは介在のI/Oコントローラを通してシステムに接続することも可能である。
ネットワーク・アダプタは、データ処理システムが介在の私設又は公衆ネットワークの介入を通して他のデータ処理システム或いはリモート・プリンタ又は記憶装置に結合されるのを可能にするために接続されてもよい。モデム、ケーブル・モデム、及びイーサネット・カードは幾つかの現在使用可能なタイプのネットワーク・アダプタである。
本発明に関する記述は、図解及び説明を目的として示されたが、網羅的であること又は開示された形式の発明に限定されることを意図するものではない。当業者にとって、多くの修正及び変更が明らかであろう。実施例は、本発明の原理を説明するために、及び意図された特定の用途に適するような種々の修正を持った種々の実施例に関して当業者が本発明を理解することを可能ならしめるために選択及び記述された。
本発明の局面を具現化し得るデータ処理システムのネットワークの概略図である。 本発明の局面を具現化し得るデータ処理システムのネットワークのブロック図である。 本発明の実施例に従って、適応性帯域幅制御において使用されるコンポーネントを示すブロック図である。 本発明の実施例に従って、TCP/IP及び同様のプロトコルを表す概略図である。 本発明の実施例に従って、適応性帯域幅制御を行う場合に使用されるソフトウェア・プロセスおよびコンポーネントを示すブロック図である。 本発明の実施例に従って、パラメータに対するユーザ設定を行うためのプロセスのフローチャートである。 本発明の実施例に従って、送信スレッドのためのプロセスのフローチャートである。 本発明の実施例に従って、パケット探知スレッドのためのプロセスのフローチャートである。 本発明の実施例に従って、輻輳制御スレッドのためのプロセスのフローチャートである。 本発明の実施例に従って、適応性帯域幅制御を遂行するためのプロセスのフローチャートである。

Claims (9)

  1. データの送信を適応可能に制御するためのコンピュータによって実行される方法であって、
    ターゲットへのデータの送信を監視するステップと、
    前記データの送信状態が閾値を超えるかどうかを決定するステップと、
    前記データの送信状態に関連したパラメータが前記閾値を超えた場合、適応性帯域幅制御プロセスを使用して、前記ターゲットにデータを送信するために使用される帯域幅を制御するステップであって、前記データの送信に対して最小量の帯域幅が保証される、ステップと、
    を含む、方法。
  2. 前記決定するステップが、
    データの送信速度を識別するステップと、
    前記送信速度を前記閾値に比較するステップと、
    を含む、請求項1に記載の方法。
  3. 前記決定するステップが、
    前記ターゲットにデータを送信するために使用される全回線速度のパーセンテージを識別するステップと、
    使用される全回線速度の前記パーセンテージを前記閾値に比較するステップと、
    を含む、請求項1に記載の方法。
  4. 前記データの送信状態が第2閾値よりも小さいか又はそれに等しいかどうかを決定するステップと、
    前記データの送信状態が第2閾値よりも小さいか又はそれに等しい場合、前記適応性帯域幅制御プロセスの使用を停止するステップと、
    を更に含む、請求項1に記載の方法。
  5. 前記閾値が前記第2閾値に等しい、請求項4に記載の方法。
  6. 前記制御するステップがアプリケーション層において実施される、請求項1に記載の方法。
  7. 前記制御するステップがトランスポート層において実施される、請求項1に記載の方法。
  8. コンピュータ使用可能媒体に保存され、データの送信を適応可能に制御するためのコンピュータ・プログラムであって、
    ターゲットへのデータの送信を監視するためのコンピュータ使用可能プログラム・コードと、
    前記データの送信状態が閾値を超えるかどうかを決定するためのコンピュータ使用可能プログラム・コードと、
    前記データの送信状態に関連したパラメータが前記閾値を超えた場合、適応性帯域幅制御プロセスを使用して、前記ターゲットにデータを送信するために使用される帯域幅を制御するためのコンピュータ使用可能プログラム・コードであって、前記データの送信に対して最小量の帯域幅が保証される、コンピュータ使用可能プログラム・コードと、
    を含む、コンピュータ・プログラム。
  9. バスと、
    前記バスに接続された通信ユニットと、
    前記バスに接続され、コンピュータ使用可能プログラム・コードのセットを含むメモリと、
    前記バスに接続されたプロセッサ・ユニットであって、ターゲットへのデータの送信を監視するためにコンピュータ使用可能プログラム・コードのセットを実行し、前記データの送信状態が閾値を超えるかどうかを決定し、前記データの送信状態に関連したパラメータが前記閾値を超えた場合に適応性帯域幅制御プロセスを使用して前記ターゲットにデータを送信するために使用される帯域幅を制御し、前記データの送信に対して最小量の帯域幅が保証される、プロセッサ・ユニットと、
    を含むデータ処理システム。
JP2006286657A 2005-10-21 2006-10-20 帯域幅保証を伴う適応性帯域幅制御のための方法及び装置 Active JP4791322B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/256,260 2005-10-21
US11/256,260 US20070091922A1 (en) 2005-10-21 2005-10-21 Method and apparatus for adaptive bandwidth control with a bandwidth guarantee

Publications (2)

Publication Number Publication Date
JP2007116714A true JP2007116714A (ja) 2007-05-10
JP4791322B2 JP4791322B2 (ja) 2011-10-12

Family

ID=37985330

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006286657A Active JP4791322B2 (ja) 2005-10-21 2006-10-20 帯域幅保証を伴う適応性帯域幅制御のための方法及び装置

Country Status (3)

Country Link
US (2) US20070091922A1 (ja)
JP (1) JP4791322B2 (ja)
CN (1) CN1953351B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102156281A (zh) * 2010-12-17 2011-08-17 浙江大学 基于单fpga的波束形成器输出数据带宽控制方法及装置
KR101139675B1 (ko) 2008-03-05 2012-05-21 소니 컴퓨터 엔터테인먼트 인코포레이티드 동시 다중 연결을 위한 대칭형 네트워크 주소 변환기 통과 방법
JP2013157742A (ja) * 2012-01-27 2013-08-15 Fujitsu Ltd 監視装置、プログラム及び監視方法
US9588570B2 (en) 2013-04-30 2017-03-07 Samsung Electronics Co., Ltd. Apparatus and method for adjusting bandwidth
WO2018056399A1 (ja) * 2016-09-23 2018-03-29 日本電気株式会社 輻輳抑制装置、輻輳抑制方法、プログラム

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2396275B (en) * 2002-12-09 2006-03-15 Ipwireless Inc Support of plural chip rates in a CDMA system
US20070091922A1 (en) * 2005-10-21 2007-04-26 Steven Elliot Method and apparatus for adaptive bandwidth control with a bandwidth guarantee
US7558271B2 (en) * 2005-10-21 2009-07-07 International Business Machines Corporation Method and apparatus for adaptive bandwidth control with defined priorities for different networks
US7474614B2 (en) * 2005-10-21 2009-01-06 International Business Machines Corporation Method and apparatus for adaptive bandwidth control with user settings
US8132172B2 (en) * 2007-03-26 2012-03-06 Intel Corporation Thread scheduling on multiprocessor systems
US20080298374A1 (en) * 2007-06-04 2008-12-04 At&T Knowledge Ventures, L.P. Apparatus for monitoring network connectivity
US7688730B2 (en) * 2007-12-20 2010-03-30 Harris Corporation System and method for multi-channel data-adaptive thresholding for shared channels with time-varying rate constraints
JP4650573B2 (ja) * 2009-01-22 2011-03-16 ソニー株式会社 通信装置、通信システム、プログラム、および通信方法
US8942096B2 (en) * 2009-06-03 2015-01-27 Telefonaktiebolaget L M Ericsson (Publ) Congestion-based traffic metering
EP2564557B1 (en) * 2010-04-26 2018-12-12 Telefonaktiebolaget LM Ericsson (publ) Method for setting and adjusting a parameter dependent on a round trip time
US9043509B2 (en) * 2011-01-14 2015-05-26 Broadcom Corporation Method and system for low-latency networking
US9338098B2 (en) * 2012-12-13 2016-05-10 Cellco Partnership Dynamic flow management at a firewall based on error messages
CN103051498B (zh) * 2012-12-29 2015-05-20 电信科学技术第一研究所 网速测试方法及系统
CN103001835A (zh) * 2012-12-29 2013-03-27 电信科学技术第一研究所 基于数据传输的网络带宽测试方法及系统
US9348773B2 (en) * 2013-05-28 2016-05-24 Dell Products, L.P. Systems and methods for adaptive interrupt coalescing in a converged network
CN104301290B (zh) * 2013-07-15 2018-11-09 联想(北京)有限公司 一种信息处理的方法及电子设备
CN104486134B (zh) * 2014-12-30 2018-01-23 北京奇虎科技有限公司 一种监控文件发送积压的方法和装置
US9674090B2 (en) * 2015-06-26 2017-06-06 Microsoft Technology Licensing, Llc In-line network accelerator
CN105159102A (zh) * 2015-07-30 2015-12-16 北京京东尚科信息技术有限公司 智能家电、智能家电系统及其方法
CN107276850B (zh) * 2017-06-26 2020-11-03 中国电力科学研究院 一种用电信息采集系统统一接口测试并发传输方法及系统
CN109451541A (zh) * 2018-12-21 2019-03-08 中国电子科技集团公司第三十研究所 一种无线网络环境下基于udp的数据传输速率自适应方法
KR102769767B1 (ko) * 2019-04-25 2025-02-20 에스케이하이닉스 주식회사 컨트롤러 및 그것의 동작방법
WO2022032694A1 (en) 2020-08-14 2022-02-17 Cisco Technology, Inc. Dynamic deterministic adjustment of bandwidth across multiple hubs with adaptive per-tunnel quality of service (qos)
KR20220053249A (ko) * 2020-10-22 2022-04-29 에스케이하이닉스 주식회사 데이터 처리 장치, 이를 포함하는 데이터 처리 시스템 및 그 동작 방법
CN116318585A (zh) * 2020-11-06 2023-06-23 深圳市欢太科技有限公司 数据传输方法及装置、终端、存储介质
US20250219959A1 (en) * 2024-01-02 2025-07-03 Qualcomm Incorporated Rendering and displaying data

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004088219A (ja) * 2002-08-23 2004-03-18 Nippon Telegraph & Telephone East Corp フレーム転送ネットワークにおけるフレーム送信速度制御方法並びにその方法を用いたフレーム転送装置およびユーザ端末
JP2004153505A (ja) * 2002-10-30 2004-05-27 Hitachi Communication Technologies Ltd データフレーム伝送システム

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05260045A (ja) * 1992-01-14 1993-10-08 Ricoh Co Ltd デ−タ端末装置の通信方法
US5822318A (en) * 1994-07-29 1998-10-13 Qualcomm Incorporated Method and apparatus for controlling power in a variable rate communication system
WO1996027965A1 (en) * 1995-03-08 1996-09-12 Oxford Brookes University Broadband swithing network
US6961341B1 (en) * 1996-07-02 2005-11-01 Microsoft Corporation Adaptive bandwidth throttling for network services
FI972718A0 (fi) 1996-07-02 1997-06-24 More Magic Software Mms Oy Foerfaranden och arrangemang foer distribution av ett anvaendargraenssnitt
US6088578A (en) * 1998-03-26 2000-07-11 Nortel Networks Corporation Burst request method and apparatus for CDMA high speed data
US6366761B1 (en) * 1998-10-06 2002-04-02 Teledesic Llc Priority-based bandwidth allocation and bandwidth-on-demand in a low-earth-orbit satellite data communication network
EP1077559A1 (en) 1999-08-17 2001-02-21 Telefonaktiebolaget Lm Ericsson Method and device for determining a time-parameter
US20050259682A1 (en) 2000-02-03 2005-11-24 Yuval Yosef Broadcast system
US20020078164A1 (en) 2000-12-13 2002-06-20 Marnetics Ltd. System and method for data transfer acceleration in a TCP network environment
US7065586B2 (en) 2000-12-22 2006-06-20 Radiance Technologies, Inc. System and method for scheduling and executing data transfers over a network
US6747994B2 (en) 2001-10-17 2004-06-08 Qualcomm, Incorporated Selecting optimal transmit formats for transmissions over allocated time durations
CN1266878C (zh) * 2002-01-22 2006-07-26 瑞昱半导体股份有限公司 一种带宽控制装置及方法
GB0216728D0 (en) 2002-07-18 2002-08-28 British Telecomm Network resource control
US7418494B2 (en) * 2002-07-25 2008-08-26 Intellectual Ventures Holding 40 Llc Method and system for background replication of data objects
JP4223901B2 (ja) 2003-09-03 2009-02-12 富士通株式会社 通信中継方法及び装置
US20070008884A1 (en) 2003-10-08 2007-01-11 Bob Tang Immediate ready implementation of virtually congestion free guarantedd service capable network
US20050108444A1 (en) * 2003-11-19 2005-05-19 Flauaus Gary R. Method of detecting and monitoring fabric congestion
JP3853784B2 (ja) 2003-12-19 2006-12-06 エヌ・ティ・ティ・アドバンステクノロジ株式会社 データ通信管理方法
US7688746B2 (en) * 2003-12-29 2010-03-30 Intel Corporation Method and system for dynamic resource allocation
US8125910B2 (en) * 2004-06-25 2012-02-28 Nec Corporation Communication system
US7796517B2 (en) 2004-06-28 2010-09-14 Minghua Chen Optimization of streaming data throughput in unreliable networks
US7423977B1 (en) 2004-08-23 2008-09-09 Foundry Networks Inc. Smoothing algorithm for round trip time (RTT) measurements
JP4335859B2 (ja) 2005-09-15 2009-09-30 株式会社日立エルジーデータストレージ 情報記録再生装置及び情報再生装置
EP1929687B1 (en) * 2005-09-30 2011-05-25 Research In Motion Limited Methods and apparatus for dynamically adjusting a data packet window size for data packet transmission in a wireless communication network
US20070091922A1 (en) 2005-10-21 2007-04-26 Steven Elliot Method and apparatus for adaptive bandwidth control with a bandwidth guarantee
US7558271B2 (en) 2005-10-21 2009-07-07 International Business Machines Corporation Method and apparatus for adaptive bandwidth control with defined priorities for different networks
US7474614B2 (en) 2005-10-21 2009-01-06 International Business Machines Corporation Method and apparatus for adaptive bandwidth control with user settings

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004088219A (ja) * 2002-08-23 2004-03-18 Nippon Telegraph & Telephone East Corp フレーム転送ネットワークにおけるフレーム送信速度制御方法並びにその方法を用いたフレーム転送装置およびユーザ端末
JP2004153505A (ja) * 2002-10-30 2004-05-27 Hitachi Communication Technologies Ltd データフレーム伝送システム

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101139675B1 (ko) 2008-03-05 2012-05-21 소니 컴퓨터 엔터테인먼트 인코포레이티드 동시 다중 연결을 위한 대칭형 네트워크 주소 변환기 통과 방법
CN102156281A (zh) * 2010-12-17 2011-08-17 浙江大学 基于单fpga的波束形成器输出数据带宽控制方法及装置
CN102156281B (zh) * 2010-12-17 2012-04-04 浙江大学 基于单fpga的波束形成器输出数据带宽控制方法及装置
JP2013157742A (ja) * 2012-01-27 2013-08-15 Fujitsu Ltd 監視装置、プログラム及び監視方法
US9588570B2 (en) 2013-04-30 2017-03-07 Samsung Electronics Co., Ltd. Apparatus and method for adjusting bandwidth
WO2018056399A1 (ja) * 2016-09-23 2018-03-29 日本電気株式会社 輻輳抑制装置、輻輳抑制方法、プログラム

Also Published As

Publication number Publication date
US20080259803A1 (en) 2008-10-23
JP4791322B2 (ja) 2011-10-12
CN1953351B (zh) 2010-06-16
CN1953351A (zh) 2007-04-25
US20070091922A1 (en) 2007-04-26
US8493859B2 (en) 2013-07-23

Similar Documents

Publication Publication Date Title
JP4791322B2 (ja) 帯域幅保証を伴う適応性帯域幅制御のための方法及び装置
US8284796B2 (en) Method and apparatus for adaptive bandwidth control with defined priorities for different networks
US7953113B2 (en) Method and apparatus for adaptive bandwidth control with user settings
JP4589406B2 (ja) バルク・データ転送
US8873385B2 (en) Incast congestion control in a network
US20060203730A1 (en) Method and system for reducing end station latency in response to network congestion
KR101143172B1 (ko) 웹 서비스를 위한 신뢰성 있는 메시징 프로토콜을 이용한메시지의 효율적인 전송
US20190044861A1 (en) Technologies for congestion control for ip-routable rdma over converged ethernet
US8325602B2 (en) Method and system to manage network traffic congestion in networks with link layer flow control
Zats et al. Fastlane: making short flows shorter with agile drop notification
CN114884884A (zh) 一种拥塞控制方法及装置
Adesanmi et al. Controlling TCP Incast congestion in data centre networks
US20080056147A1 (en) Method and apparatus for determining minimum round trip times for a network socket
US20080056146A1 (en) Method and apparatus for determining maximum round trip times for a network socket

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090722

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101213

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110222

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110222

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20110222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110224

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110404

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110526

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110526

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

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20110711

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20110711

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

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

Free format text: PAYMENT UNTIL: 20140729

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4791322

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150