JP6015744B2 - 輻輳制御方法、輻輳制御装置、通信システム及び輻輳制御プログラム - Google Patents

輻輳制御方法、輻輳制御装置、通信システム及び輻輳制御プログラム Download PDF

Info

Publication number
JP6015744B2
JP6015744B2 JP2014505929A JP2014505929A JP6015744B2 JP 6015744 B2 JP6015744 B2 JP 6015744B2 JP 2014505929 A JP2014505929 A JP 2014505929A JP 2014505929 A JP2014505929 A JP 2014505929A JP 6015744 B2 JP6015744 B2 JP 6015744B2
Authority
JP
Japan
Prior art keywords
congestion
control
upper layer
rate
layer
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.)
Expired - Fee Related
Application number
JP2014505929A
Other languages
English (en)
Other versions
JPWO2013140602A1 (ja
Inventor
昌浩 佐藤
昌浩 佐藤
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of JPWO2013140602A1 publication Critical patent/JPWO2013140602A1/ja
Application granted granted Critical
Publication of JP6015744B2 publication Critical patent/JP6015744B2/ja
Expired - Fee Related 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
    • 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/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
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/11Identifying 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/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/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)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、輻輳制御方法、輻輳制御装置、通信システム及び輻輳制御プログラムに関する。
クラウドデータセンタにおいては、複数のテナント(アプリケーションや情報処理装置)が同一のネットワーク資源を共有しているため、テナント間の品質制御が重要となる。このような品質制御の1つとして、輻輳発生時の輻輳制御がある。輻輳制御は、例えば、IEEE802.1Qau Congestion Notificationドラフト2.0(以降、IEEE802.1Qauと呼ぶ)に標準化されている。
図20は、IEEE802.1Qauにおける輻輳制御を模式的に示す図である。
図20においては、サーバ101と情報処理装置(テナント)105とがスイッチ103を介して接続されており、太線の図面右向きの矢印で示すように、テナント105がサーバ101に送信を行なっている。
この状態において、下位レイヤであるレイヤ2において輻輳が発生すると、スイッチ103は、白抜きの図面左向きの矢印で示すように、IEEE802.1Qauに従って、送信元ノードである情報処理装置(テナント)105に、輻輳通知パケット161を送信する。この輻輳通知パケットには、出力レートを制御する対象の宛先IP(Internet Protocol)アドレス(以下、「対象宛先IPアドレス」と呼ぶ)と、L2制御レートとが含まれる。以下、この2つをまとめて、「輻輳制御情報」とも呼ぶ。このL2制御レートは、輻輳を解消するためにスイッチ103が算出した、各送信元ノードが対象宛先IPアドレスに出力する際の上限レートである。輻輳通知パケット161を受信した送信元ノード105は、自身が出力する出力レートを制御し、これにより輻輳が緩和される。
このとき、送信元ノード105は、輻輳に影響を与えるフローの出力キューと、輻輳に影響を与えないフローの出力キューとを分けることで、出力レートを制御する。そして、輻輳に影響を与えるフローのみのレート制御を行ない、輻輳に影響を与えないフローに対してはレート制御を行なわない。
IEEE802.1Qau Congestion Notificationドラフト2.0
図20に図示した構成において、通信トラフィックがTCP(Transmission Control Protocol)通信の場合、輻輳発生時には、レイヤ2の輻輳制御と独立して、上位レイヤであるTCPレイヤ(レイヤ4)においても輻輳制御が行なわれる。
TCPでは、シーケンス番号が重複したパケットの受信やTCP再送タイマの経過が検出されると輻輳が発生していると判断される。このとき、L4処理部121(図22参照)は、ウィンドウサイズを減少させて出力レート制御を行ない、輻輳制御を実施する。このような輻輳制御はTCPセッション単位で行なわれる。
図21は、TCPにおけるウィンドウサイズの制御を模式的に示す図である。時点t11において輻輳が発生すると、情報処理装置105に備えられ、レイヤ4を処理するレイヤ4(L4)処理部121は、TCPセッション#1,#2のウィンドウサイズを減少させる。時点t12において輻輳が解消されると、L4処理部121は、TCPセッション#1,#2のウィンドウサイズを増加させる。時点t13において再度輻輳が発生すると、L4処理部121は、TCPセッション#1,#2のウィンドウサイズを減少させる。
このように、通信トラフィックがTCPであり、レイヤ2においてもIEEE802.1Qauに規定されているような輻輳制御を行なう場合、図22に示すように、輻輳発生時にレイヤ2とレイヤ4の両方で輻輳制御が働く。これらの輻輳制御は、レイヤ2とレイヤ4とで別個に行なわれる。
図22は、レイヤ2とレイヤ4とにおいて独立して行なう輻輳制御を模式的に示す図であり、(a)は出力レート、(b)は輻輳制御処理を示す。
図22(b)に示すように、情報処理装置105は、レイヤ2を処理するレイヤ2(L2)処理部111と、レイヤ4を処理するL4処理部121とを備える。
輻輳発生時には、レイヤ2の輻輳が先に検出され、L2処理部111のレート制御処理部117がレート制御を行なう。しかし、この時点では、レイヤ4では輻輳が未だ検知されていないため、L4処理部121は輻輳制御を行なわない。
このため、レイヤ2の輻輳制御の開始から、レイヤ4の出力レートが制御されるまでに、図22の(a)のグラフに示すようにタイムラグが発生する。その結果、レイヤ4の出力レートが制御されるまでに、レイヤ2から送出な可能レート以上でレイヤ4から、パケットが出力されるため、レイヤ2においてパケットロスが発生してしまう。
1つの側面では、本発明は、輻輳の発生時に、下位レイヤと上位レイヤ間の輻輳制御開始のタイムラグに起因するパケットロスを防止することを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
このため、この輻輳制御方法は、それぞれが固有の輻輳制御を行なう下位レイヤと上位レイヤとを含む通信方式において輻輳を制御する方法であって、前記下位レイヤにおいて輻輳を検知し、前記輻輳の検知と、前記下位レイヤにおける制御レートを含む前記輻輳に係る輻輳制御情報とを前記下位レイヤから前記上位レイヤに通知し、前記上位レイヤにおいて、前記輻輳に関連する1つ以上の上位レイヤセッションの出力レートをセッション単位で設定し、前記設定時に、前記上位レイヤにおいて、前記下位レイヤにおける前記制御レートと前記輻輳に関連する前記1つ以上の上位レイヤセッションの優先度を示す重みとを管理する管理テーブルにおいて、前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれに対し、前記輻輳発生時点の前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれの出力サイズの比率に基づいて、動的に重みを設定する。
また、この輻輳制御装置は、それぞれが固有の輻輳制御を行なう下位レイヤと上位レイヤとを含む通信方式において輻輳を制御する輻輳制御装置であって、前記下位レイヤにおいて輻輳を検知する検知部と、前記輻輳の検知と、前記下位レイヤにおける制御レートを含む前記輻輳に係る輻輳制御情報とを前記下位レイヤから前記上位レイヤに通知する通知部と、前記上位レイヤにおいて、前記輻輳に関連する1つ以上の上位レイヤセッションの出力レートをセッション単位で設定する処理部と、前記上位レイヤにおいて、前記下位レイヤにおける前記制御レートと前記輻輳に関連する前記1つ以上の上位レイヤセッションの優先度を示す重みとを管理する管理テーブルと、を備え、前記管理テーブルにおいて、前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれに対し、前記輻輳発生時点の前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれの出力サイズの比率に基づいて、動的に重みを設定する。
また、この通信システムは、情報処理装置と上位装置とが中継装置で接続されており、固有の輻輳制御を行なう下位レイヤと上位レイヤとを含む通信方式で通信を行なう通信システムであって、前記情報処理装置は、前記下位レイヤにおいて輻輳を検知する検知部と、前記輻輳の検知と、前記下位レイヤにおける制御レートを含む前記輻輳に係る輻輳制御情報とを前記下位レイヤから前記上位レイヤに通知する通知部と、前記上位レイヤにおいて、前記輻輳に関連する1つ以上の上位レイヤセッションの出力レートをセッション単位で設定する処理部と、前記上位レイヤにおいて、前記下位レイヤにおける前記制御レートと前記輻輳に関連する前記1つ以上の上位レイヤセッションの優先度を示す重みとを管理する管理テーブルと、を備え、前記管理テーブルにおいて、前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれに対し、前記輻輳発生時点の前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれの出力サイズの比率に基づいて、動的に重みを設定する。
また、この輻輳制御プログラムは、コンピュータに、それぞれが固有の輻輳制御を行なう下位レイヤと上位レイヤとを含む通信方式において輻輳を制御させる輻輳制御プログラムであって、前記プログラムは、該コンピュータに、前記下位レイヤにおいて輻輳を検知させ、前記輻輳の検知と、前記下位レイヤにおける制御レートを含む前記輻輳に係る輻輳制御情報とを前記下位レイヤから前記上位レイヤに通知させ、前記上位レイヤにおいて、前記輻輳に関連する1つ以上の上位レイヤセッションの出力レートをセッション単位で設定させ、前記設定時に、前記上位レイヤにおいて、前記下位レイヤにおける前記制御レートと前記輻輳に関連する前記1つ以上の上位レイヤセッションの優先度を示す重みとを管理する管理テーブルにおいて、前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれに対し、前記輻輳発生時点の前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれの出力サイズの比率に基づいて、動的に重みを設定させる。
1実施形態によれば、輻輳の発生時に、下位レイヤと上位レイヤ間の輻輳制御開始のタイムラグに起因するパケットロスを防止できる。
実施形態の一例としての輻輳制御装置の機能構成を模式的に示す図である。 実施形態の一例としての輻輳制御装置のハードウェア構成を模式的に示す図である。 実施形態の一例としての輻輳制御装置が使用されるネットワーク構成の例を模式的に示す図である。 実施形態の一例としての輻輳制御装置のL4処理部の構成例を模式的に示す図である。 実施形態の一例としての輻輳制御装置における輻輳発生時の動作を模式的に示す図である。 実施形態の一例としての輻輳制御装置における輻輳発生時のレイヤ4のウィンドウ制御を模式的に示すグラフである。 実施形態の一例としての輻輳制御装置における輻輳解消時の動作を模式的に示す図である。 実施形態の一例としての輻輳制御装置におけるTCPセッション追加時の動作を模式的に示す図である。 実施形態の一例としての輻輳制御装置におけるTCPセッション削除時の動作を模式的に示す図である。 実施形態の一例としての輻輳制御装置における処理を示すフローチャートであり、(a)は輻輳発生時、(b)は輻輳解除時、(c)はTCPセッションの追加又は削除時のそれぞれの処理を示す。 図3のネットワーク構成例において輻輳が発生していない状態を模式的に示す図である。 図11の例における処理を模式的に示す図であり、(a)はウィンドウサイズ、(b)は出力レート、(c)は輻輳制御装置を示す。 図3のネットワーク構成例における輻輳発生時の状態を模式的に示す図である。 図3のネットワーク構成例における輻輳通知後の状態を模式的に示す図である。 図14の例における輻輳制御処理を模式的に示す図であり、(a)はウィンドウサイズ、(b)は出力レート、(c)は輻輳制御装置を示す。 図3のネットワーク構成例におけるTCPセッション追加時の輻輳制御処理を模式的に示す図であり、(a)はウィンドウサイズ、(b)は出力レート、(c)は輻輳制御装置を示す。 図3のネットワーク構成例におけるTCPセッション削除時の輻輳制御処理を模式的に示す図であり、(a)はウィンドウサイズ、(b)は出力レート、(c)は輻輳制御装置を示す。 図3のネットワーク構成例における輻輳解消時の状態を模式的に示す図である。 図18の例における処理を模式的に示す図であり、(a)はウィンドウサイズ、(b)は出力レート、(c)は輻輳制御装置を示す。 IEEE802.1Qauの輻輳制御を模式的に示す図である。 TCPにおけるウィンドウサイズの制御を模式的に示すグラフである。 レイヤ2とレイヤ4とにおいて独立して行なう輻輳制御を模式的に示す図であり、(a)は出力レート、(b)は輻輳制御処理を示す。
以下、図面を参照して本発明の実施の形態を説明する。
(A)構成
まず、実施形態の一例としての輻輳制御装置1の構成について説明する。
図1は、実施形態の一例としての輻輳制御装置1の機能構成を模式的に示す図である。
本輻輳制御装置1は、例えば、情報処理装置55(図2参照)に備えられている。
輻輳制御装置1は、L2処理部11と、L4処理部21とを備える。
L2処理部11(図中、L2とも図示する)は、レイヤ2(下位レイヤ)に関する輻輳処理を行なう。L2処理部11は、スイッチ53(図3参照)から輻輳通知パケット61を受信する。この輻輳通知パケット61には、出力レートを制御する対象の宛先IPアドレス(以下、「対象宛先IPアドレス」と呼ぶ)63と、L2制御レート65とが記載されている。このL2制御レートは、輻輳を解消するためにスイッチ53が算出した、各送信元ノードが対象宛先IPアドレスに出力する際の上限レートである。
L2処理部11は、輻輳通知パケット61を受信すると、IEEE802.1Qauに準拠したレイヤ2の輻輳制御を行なうと共に、後述するL4処理部21に対して輻輳の発生を通知する。その際、L2処理部11は、L4処理部21に、対象宛先IPアドレス63を通知すると共に、L2制御レート65もレート制御情報として通知する。
L2処理部11は、送受信パケット制御部13、輻輳制御部(通知部)15、レート制御処理部(検知部)17及び輻輳制御テーブル33を備える。
送受信パケット制御部13は、情報処理装置55と、外部装置との間でやりとりされるパケット送受信に関わる制御を行なう。
輻輳制御部15は、後述するレート制御処理部17が、スイッチ53(図3参照)から輻輳通知パケット61を受信すると、レイヤ2において輻輳の発生を検知する。そして、輻輳制御部15は、L4処理部21のTCPセッション制御部23に、輻輳の発生を通知する。その際、輻輳制御部15は、TCPセッション制御部23に、対象宛先IPアドレス63を通知すると共に、L2制御レート65をレート制御情報として通知する。
また、レート制御処理部17は、輻輳通知パケット61内の制御対象宛先IPアドレス63と、L2制御レート65とを、輻輳制御テーブル33の対応するフィールド34,35(図5参照)に記載する。
なお、輻輳が解消されると、スイッチ53は、輻輳通知パケット61の送信を中止する。このため、輻輳制御部15は、レート制御処理部17がスイッチ53(図3参照)から所定期間、輻輳通知パケット61を受信していない場合、レイヤ2の輻輳が解消されたと判定する。この場合、輻輳制御部15は、L4処理部21のTCPセッション制御部23に、輻輳の解除を通知する。その際、輻輳制御部15は、制御解除対象の宛先IPアドレスもTCPセッション制御部23に通知する。
輻輳が解消され、レート制御処理部17は、輻輳制御テーブル33内の対応するレコードを更新する。
レート制御処理部17は、スイッチ53(図3参照)から輻輳通知パケット61を受信すると、IEEE802.1Qauに従って、送受信パケット制御部13からの出力レートを、輻輳通知パケット6のL2制御レート65で通知されている値に下げて、輻輳を解消する。
輻輳制御テーブル33は、レイヤ2における輻輳制御のための情報を格納するテーブルである。輻輳制御テーブル33は、図5に示すように、制御対象宛先IPアドレス34とL2制御レート35との各フィールドを備える。
制御対象宛先IPアドレス34は、L2レイヤにおけるレート制御対象となる宛先IPアドレスであり、スイッチ53から送信される輻輳通知パケット61内の制御対象宛先IPアドレス63の値が格納される。
L2制御レート35は、L2レイヤにおいて輻輳を解消するための各送信元ノードが出力できる上限レートであり、スイッチ53から送信される輻輳通知パケット61内のL2制御レート65の値が格納される。
図1に示すように、L4処理部21(図中、L4とも図示する)は、レイヤ4(上位レイヤ)における輻輳処理を行なう。L4処理部21は、TCP標準の輻輳制御の開始前に、L2処理部11からの通知に従って、各TCPセッションのウィンドウサイズを下げることにより、レイヤ4の出力レートを低下させ、タイムラグによるパケットロスの発生を阻止する。
L4処理部21は、TCPセッション制御部(制御部)23、TCP処理部(処理部)25、及びセッションアトリビュートテーブル(管理テーブル)43を備える。
TCPセッション制御部23は、レイヤ2の輻輳発生時に、L2処理部11の輻輳制御部15から通知された制御対象宛先IPアドレス及びレート制御情報に基づいて、後述するセッションアトリビュートテーブル43を更新する。詳細には、TCPセッション制御部23は、後述するセッションアトリビュートテーブル43のL2制御レート48(図4参照)を、通知されたレート制御情報で更新する。更に、TCPセッション制御部23は、各TCPセッションの重み割合を計算し、セッションアトリビュートテーブル43の重み割合47に記録する。なお、重み及び重み割合については後述する。
TCP処理部25は、各TCPセッションを処理する。図1の例では、TCP処理部25は、TCPセッション#1〜#nのn(nは1以上の自然数)個のTCPセッションを同時に処理している。また、TCP処理部25は、レイヤ2の輻輳発生時に、セッションアトリビュートテーブル43に従って、各TCPセッションのウィンドウサイズを下げて、パケットロスを防止する。この処理については後述する。
セッションアトリビュートテーブル43は、各TCPセッションのアトリビュート値を格納しているテーブルである。セッションアトリビュートテーブル43は、図4に示すように、セッションID44、宛先IPアドレス45、重み46、重み割合47及びL2制御レート48の各フィールドを備える。
セッションID44は、TCPセッションを識別する情報を格納するフィールドである。図4の例では、セッションID44にTCPセッション名が記述されている。
宛先IPアドレス45は、TCPセッションの宛先IPアドレスを示す。
重み46は、前述のように、TCPセッション間の優先順位を設定するために使用される設定値である。優先順位の高いTCPセッションには、重み46に高い値が設定される。前述のように、デフォルト設定では、全てのTCPセッションの重み46が同じ値に設定されている。
重み割合47は、各TCPセッションの重み46の割合であり、例えば、以下の式に従って計算される。
重み割合=各TCPセッションの重み/全TCPセッションの合計重み
L2制御レート48は、L2レイヤにおける制御レートであり、L2処理部11の輻輳制御部15から通知されたレート制御情報の値を格納する。
TCP処理部25は、TCPセッション#1〜#nの処理にあたり、セッションアトリビュートテーブル43の重み割合47とL2制御レート48とに基づいて、各TCPセッションのウィンドウサイズと出力レートとを計算する。TCP処理部25は、ウィンドウサイズと出力レートとを、例えば、以下の式に従って求める。
ウィンドウサイズ=TCPセッション出力レート×ラウンドトリップタイム(Round Trip Time:RTT) …式(1)
TCPセッション出力レート=レイヤ2における制御レート×重み割合 …式(2)
ここで、RTTとは、例えば、1パケットの往復時間であり、単位は秒(s)である。
なお、セッションアトリビュートテーブル43の重み46には、例えばデフォルトでは、全TCPセッションに対して同じ重みの値が設定される。しかし、ユーザ等が、プロビジョニング(事前設定)に基づいて、TCPセッション毎に異なる値を設定してもよい。或いは、各TCPセッションの輻輳発生時点でのウィンドウサイズの比率により、各TCPセッションに対して重みを動的に設定してもよい。
図2は、実施形態の一例としての輻輳制御装置1のハードウェア構成を模式的に示す図である。
前述のように、実施形態の一例としての輻輳制御装置1は、例えば、情報処理装置55に備えられている。
情報処理装置55は、例えば、CPU(Central Processing Unit)3、メモリ5、インタフェース(interface:I/F)7、ストレージ8及びバス9を備える。
CPU3は、メモリ5やストレージ8等から不図示の輻輳制御プログラムを読み出し、輻輳制御装置1としての処理を実行するプロセッサである。
メモリ5は、CPU3が演算や制御を行なうに際して、種々のデータやプログラムを一時的に格納する記憶領域である。また、メモリ5は、輻輳制御装置1が使用する輻輳制御テーブル33を格納する輻輳制御テーブル格納部31、及びセッションアトリビュートテーブル43を格納するセッションアトリビュートテーブル格納部41としても機能する。メモリ5は、例えばRAM(Random Access Memory)やROM(Read Only Memory)などである。
I/F7は、情報処理装置55と外部との接続に使用されるインタフェースであり、例えばネットワークI/Fボードなどである。
ストレージ8は、例えば、情報処理装置55のオペレーティングシステム(Operating System)やプログラム、各種データを記憶しているストレージ装置である。例えば、ストレージ8は、ハードディスクドライブ(Hard Disk Drive:HDD)やSSD(Solid State Drive)などの不揮発でも、他の記憶装置でもよい。
バス9は、CPU3、メモリ5、I/F7、ストレージ8や、情報処理装置55のその他の部品を内部的に接続している相互接続バスである。
図3は、実施形態の一例としての輻輳制御装置1が使用されるネットワーク構成の例を模式的に示す図である。
図3に示すように、それぞれ輻輳制御装置1を備えた情報処理装置55−1〜55−3(テナントA〜C)が、スイッチ53を介して、サーバ51に接続され、サーバ51からサービスや環境等の提供を受けている。
図3のネットワーク構成において、サーバ51とスイッチ53間の最大レートは、例えば、100メガビット/秒(Mb/s)である。また、スイッチ53と、各情報処理装置55−1〜55−3間の最大レートは、例えば、それぞれ100Mb/sである。
サーバ51は、テナントA〜Cにサービスや環境等を提供するために、各テナントに対応する仮想マシン(Virtual Machine:VM)57−1〜57−3を実行している。
なお、以下、情報処理装置を示す符号としては、複数の情報処理装置のうち1台を特定する必要があるときには符号55−1〜55−3を用いるが、任意の情報処理装置を指すときには符号55を用いる。
また、以下、VMを示す符号としては、複数のVMのうち1つを特定する必要があるときには符号57−1〜57−3を用いるが、任意のVMを指すときには符号57を用いる。
スイッチ53は、例えば、IEEE802.1Qauの輻輳制御に対応したスイッチであり、特定のリンクにおいて輻輳を検知すると、その発信元の情報処理装置55(輻輳制御装置1)に対して輻輳通知を行なう。
次に、実施形態の一例としての輻輳制御装置1のL4(TCPレイヤ)処理部21について詳細に説明する。
図4は、輻輳制御装置1のL4処理部21の構成例を模式的に示す図である。
この図の例では、L4処理部21において、例えば、TCP処理部25(図1参照)により、TCPセッション#1とTCPセッション#2との2つのTCPセッションが処理されている。
また、セッションアトリビュートテーブル43の各フィールドには、これらのTCPセッション#1,#2に対する値が設定されている。
これらのTCPセッション#1,#2に対するセッションアトリビュートテーブル43の重み割合47とL2制御レート48とが、TCPセッション制御部23により設定(制御)される。
そして、セッションアトリビュートテーブル43の重み46、重み割合47及びL2制御レート48に基づいて、TCP処理部25が、セッション#1,#2のそれぞれの重み、重み割合及びL2制御レートを制御する。
(B)動作
次に、図面を参照して、実施形態の一例としての輻輳制御装置1の動作について説明する。
図5は、実施形態の一例としての輻輳制御装置1における輻輳発生時の動作を模式的に示す図である。
L2処理部11のレート制御処理部17が、スイッチ53(図3参照)から輻輳通知パケット61を受信すると、、輻輳制御テーブル33を更新する。詳細には、レート制御処理部17は、輻輳通知パケット61に記載されている制御対象宛先IPアドレス(「10.0.0.1」)と、L2制御レート(100Mb/s)とを、輻輳制御テーブル33の制御対象宛先IPアドレス35及びL2制御レート35に登録する。
これと並行して、輻輳制御部15は、輻輳の発生、制御対象宛先IPアドレス及びレート制御情報としてのL2制御レートを、L4処理部21のTCPセッション制御部23に通知する(図5の(1)参照)。
TCPセッション制御部23は、通知されたセッションアトリビュートテーブル43の制御対象宛先IPアドレスに対応するTCPセッションのレコードのL2制御レート48を、通知されたレート制御情報に基づいて更新する(図5の(2)参照)。更に、TCPセッション制御部23は、各TCPセッションの重み割合を計算し、セッションアトリビュートテーブル43の重み割合47に記録する。
次に、TCP処理部25は、セッションアトリビュートテーブル43の値に基づいて、TCPセッション毎にウィンドウサイズを計算し、ウィンドウ制御を行なう。
このときの2つのTCPセッション#1,#2のウィンドウサイズが、図6に示すように制御される。
図6は、実施形態の一例としての輻輳制御装置1における輻輳発生時のレイヤ4のウィンドウ制御を模式的に示すグラフである。図6の例は、TCPセッション#1と#2とで重み46及びRTTが等しい場合を示す。
このような処理を行なうことで、図6に示すように、レイヤ2におけるレート制御の開始と同時に、レイヤ2で制御されるレートでTCPの出力レートも制御される。このため、パケットロスの発生を防ぐことが可能となる。
次に、図7を用いて輻輳解消時の輻輳制御装置1の動作について説明する。
図7は、実施形態の一例としての輻輳制御装置1における輻輳解消時の動作を模式的に示す図である。
例えば、前述の図5の状態において、L2処理部11のレート制御処理部17が、スイッチ53から所定時間、輻輳通知パケット61を受信しない場合、L2処理部11の輻輳制御部15は、レイヤ2の輻輳が解消されたと判定する。例えば、この所定時間は、IEEE802.1Qauに規定されている輻輳解除時間などである。そして、レート制御処理部17は、レイヤ2のレート制御を解除する
このとき、レート制御処理部17は、輻輳が解消されたと判定された宛先IPアドレスの輻輳制御テーブル33のエントリを削除する(図7の(3)参照)。
また、輻輳制御部15は、レイヤ4処理部21のTCPセッション制御部23に対して、輻輳解除通知と制御解除対象の宛先IPアドレスの通知を行なう(図7の(1)参照)。
そして、L4処理部21のTCPセッション制御部23は、制御解除対象の宛先IPアドレスに該当する各TCPセッションの、セッションアトリビュートテーブル43のL2制御レート48の値を更新する(図7の(2)参照)。図7の例では、TCPセッション制御部23は、例えば、L2制御レート48に「0Mb/s」を設定して、本実施形態に係るレイヤ4のレート制御を解除する。なお、L2制御レート48に値「0Mb/s」が設定されている場合、本実施形態に係るレイヤ4のレート制御を行なわないことを意味する。つまり、セッションアトリビュートテーブル43のL2制御レート48に値「0Mb/s」を設定すると、本実施形態に係るレイヤ4のレート制御を解除し、TCP標準のWindow制御を使用するように設定される。
次に、図8を用いて、新規TCPセッション追加時の輻輳制御装置1の動作を説明する。
図8は、TCPセッション追加時の輻輳制御装置の動作を模式的に示す図である。
例えば、前述の図7の状態において、図8に示すように、TCPセッション#3が追加される。このTCPセッション#3の宛先IPアドレスは、制御対象宛先IPアドレスに一致する。このため、L4処理部21のTCPセッション制御部23は、セッションアトリビュートテーブル43に、TCPセッション#3のエントリを追加する。その際、例えば、TCPセッション制御部23は、新規TCPセッション#3のL2制御レート48を設定すると共に、重み46に、既存のTCPセッション#1,#2と同じ重み値を設定する。これに伴い、TCPセッション制御部23は、TCPセッション#1,#2の重み割合47を「1/2」から「1/3」に変更すると共に、TCPセッション#3の重み割合47に値「1/3」を設定する(図8の(1)参照)。
次に、図9を用いて、TCPセッションが削除された時の輻輳制御装置1の動作を説明する。
図9は、実施形態の一例としての輻輳制御装置1におけるTCPセッション削除時の動作を模式的に示す図である。
例えば、前述の図8の状態において、図9に示すように、TCPセッション#1が削除される。このTCPセッション#1の宛先IPアドレスは、制御対象宛先IPアドレスに一致する。このため、TCPセッション制御部23は、セッションアトリビュートテーブル43から、TCPセッション#1のエントリを削除する。その際、例えば、TCPセッション制御部23は、TCPセッション#1の削除に伴い、残りのTCPセッション#2,#3の重み割合47を「1/3」から「1/2」に変更する(図9の(1)参照)。
上記図6〜図9の処理を、図10にまとめる。
図10は、実施形態の一例としての輻輳制御装置1の処理を示すフローチャートであり、(a)は輻輳発生時、(b)は輻輳解除時、(c)はTCPセッションの追加又は削除時のそれぞれの処理を示す。
まず、図10の(a)のフローを用いて輻輳発生時の処理を説明する。
L2レイヤにおいて輻輳が発生すると、ステップS1において、L2処理部11のレート制御処理部17が、スイッチ53から輻輳通知パケット61を受信する。
次に、ステップS3において、レイヤ2で輻輳が発生していると判定し、輻輳制御部15は、L4処理部21のTCPセッション制御部23に、輻輳の発生を通知する。その際、輻輳制御部15は、輻輳通知パケット61に記載されている制御対象宛先IPアドレス63と、レート制御情報としてのL2制御レート65とをTCPセッション制御部23に通知する。
また、レート制御処理部17は、ステップS7において、輻輳制御テーブル33を更新する。
次に、ステップS5において、L4処理部21のTCPセッション制御部23は輻輳を検知する。ステップS9において、TCPセッション制御部23は、制御対象宛先IPアドレスに一致する全TCPセッションについて、セッションアトリビュートテーブル43のL2制御レート48の値を更新する。
次に、ステップS11において、TCP処理部25は、セッションアトリビュートテーブル43に基づいて、制御対象宛先IPアドレスに一致する各TCPセッションのウィンドウサイズを変更し、TCPの出力レート制御を行なう。
次に、図10の(b)のフローを用いて輻輳解消時の処理を説明する。
輻輳が解消されると、スイッチ53は、輻輳通知パケット61の送信を中止する。このため、ステップS13において、L2処理部11のレート制御処理部17は、所定時間、スイッチ53から輻輳通知パケット61を受信しない。
この場合、ステップS15において、レイヤ2の輻輳が解消されたと判定し、L2処理部11の輻輳制御部15は、L4処理部21のTCPセッション制御部23に輻輳の解除を通知する。その際、輻輳制御部15は制御解除対象の宛先IPアドレスもTCPセッション制御部23に通知する。
また、レート制御処理部17は、ステップS7において、輻輳制御テーブル33を更新する。
また、ステップS17において、L4処理部21のTCPセッション制御部23は、輻輳の解除を検知する。ステップS19において、TCPセッション制御部23は、制御解除対象の宛先IPアドレスに該当する全TCPセッションに対する、セッションアトリビュートテーブル43のL2制御レート48の値を更新する。
次に、ステップS21において、TCP処理部25は、制御解除対象の宛先IPアドレスに該当する各TCPセッションのウィンドウサイズを変更し、TCPの出力レート制御を解除する。
次に、図10の(c)のフローを用いてTCPセッションの追加又は削除時の処理を説明する。
ステップS23において、TCPセッションが追加又は削除されると、ステップS25において、TCPセッション制御部23は、追加削除されるセッションが制御対象宛先IPアドレスに一致する場合に限り、制御対象宛先IPアドレスに一致する全TCPセッションについて、セッションアトリビュートテーブル43の重み割合47とL2制御レート48との値を更新する。
次に、ステップS27において、TCP処理部25は、制御対象宛先IPアドレスに一致する各TCPセッションのウィンドウサイズを変更する。
次に、具体例を用いて輻輳制御装置1の動作について説明する。
ここでは、図3を用いて前述したネットワーク構成を用いて説明を行なう。
図3のネットワーク構成例では、異なる3つのテナントA、テナントB及びテナントCがサーバ51上の各テナントのVM57−1〜57−3と通信し、サービスや環境等の提供を受けている。前述のように、この構成例では、輻輳制御方法としてIEEE802.1Qauが使用される。また、スイッチ53と各ノードのリンクの速度は全て100Mb/sである。
始めに、図11に示すように、テナントAとテナントBとがそれぞれサーバ51と通信を開始し、それぞれが出力レート50Mb/sでサーバ51に送信を行なう。
テナントAとテナントBとはそれぞれ、前述の輻輳制御装置1を備えている。しかし、簡潔を期するため、以降の説明では、テナントA内の輻輳制御装置1のみに注目する。
図11の状態においては、図12(c)に示すように、テナントAには2つのTCPセッション#1,#2が存在する。通信の開始後、L4処理部21のTCP処理部25は、TCPセッション#1,#2の個々のウィンドウサイズを図12(a)に示すように増加させて、それぞれの出力レートを図12(b)に示すように増やす。
この場合、テナントAからの出力レートが50Mb/sの時のTCPセッション#1,#2の出力レートは、それぞれ以下の値となる。なお、RTTは、例えば、それぞれ10msとする。
TCPセッション#1の出力レート=8×40KB(ウィンドウサイズ)×0.01s(RTT)=32Mb/s
TCPセッション#2の出力レート=8×22.5KB(ウィンドウサイズ)×0.01s(RTT)=18Mb/s
なお、上記各式において数値8を掛けているのは、バイトをビットに変換するためである。
また、セッションアトリビュートテーブル43の重み46はデフォルト設定のままであり、各TCPセッションの重み46は「1」である。そのため、TCPセッション制御部23は、TCPセッション#1,#2の重み割合47に、それぞれ「1/2」を設定する。
次に、図13に示すように、テナントCが、50Mb/sでサーバ51との通信を開始すると、サーバ51とスイッチ53間のリンクの速度である100Mb/sを越えるため、スイッチ53上で輻輳が発生する。その結果、スイッチ53は、各送信元ノード(テナントA〜C)に輻輳通知パケット61を送信する。
例えば、スイッチ53は、各ノードに対して、100Mb/sの帯域を公平に分配した33Mb/sで送信を行なうように、図14に示すように、輻輳通知パケット61で33Mb/sのL2制御レートを通知する。
図15は、図14の輻輳通知後のテナントAにおける輻輳制御処理を示す。図15(a),(b)に示すように、時点t1において、輻輳が発生し、L2制御レートの出力レートが33Mb/sに制限される。このとき、図15(c)に示すように、レイヤ2処理部11の輻輳制御部15は、L4処理部21のTCPセッション制御部23に対して、輻輳通知と、制御対象宛先IPアドレスである「10.0.0.1」と、レート制御情報として「33Mb/s」とを通知する。
レイヤ2処理部11の輻輳制御部15から輻輳通知を受け取ったTCPセッション制御部23は、宛先IPアドレス45が「10.0.0.1」に一致するTCPセッションを検索し、該当するTCPセッションのL2制御レート48の値を「33Mb/s」に更新する。
その後、TCP処理部25は、TCPセッション#1,#2のウィンドウサイズを以下のように変更する。
TCPセッション#1の出力レート=33Mb/s(レイヤ2制御レート)×1/2(重み割合)=16.5Mb/s
TCPセッション#1のウィンドウサイズ=16.5Mb/s×0.01s(RTT)/8=20.6KB
TCPセッション#2の出力レート=33Mb/s(レイヤ2制御レート)×1/2(重み割合)=16.5Mb/s
TCPセッション#2のウィンドウサイズ=16.5Mb/s×0.01s(RTT)/8=20.6KB
次に、テナントAにおいてTCPセッション#3が追加される場合の処理を図16に示す。
図16(a),(b)に示すように、時点t2において、TCPセッション#3が追加される。追加されたTCPセッション#3は、宛先IPアドレスが「10.0.0.1」であるため、制御対象のTCPセッションである。
そのため、図16(c)に示すように、TCPセッション制御部23は、宛先IPアドレスが「10.0.0.1」であるTCPセッション#1,#2の重み割合47の値を「1/3」に更新する。これに伴い、TCP処理部25は、ウィンドウサイズを再計算し、TCPセッション#1〜#3のウィンドウサイズを以下の値に変更する。
TCPセッション#1の出力レート=33Mb/s(レイヤ2制御レート)×1/3(重み割合)=11Mb/s
TCPセッション#1のウィンドウサイズ=11Mb/s×0.01s(RTT)/8=13.8KB
TCPセッション#2の出力レート=33Mb/s(レイヤ2制御レート)×1/3(重み割合)=11Mb/s
TCPセッション#2のウィンドウサイズ=11Mb/s×0.01s(RTT)/8=13.8KB
TCPセッション#3の出力レート=33Mb/s(レイヤ2制御レート)×1/3(重み割合)=11Mb/s
TCPセッション#3のウィンドウサイズ=11Mb/s×0.01s(RTT)/8=13.8KB
次に、テナントAにおいてTCPセッション#1が削除された場合の処理を図17に示す。
図17(a),(b)に示すように、時点t3において、TCPセッション#1が削除される。削除されたTCPセッション#1は、宛先IPアドレスが「10.0.0.1」であるため、制御対象のTCPセッションである。
そのため、図17(c)に示すように、TCPセッション制御部23は、宛先IPアドレスが「10.0.0.1」であるTCPセッション#2,#3の重み割合47の値を「1/2」に更新する。これに伴い、TCP処理部25は、ウィンドウサイズを再計算し、TCPセッション#2,#3のウィンドウサイズを以下の値に変更する。
TCPセッション#2の出力レート=33Mb/s(レイヤ2制御レート)×1/2(重み割合)=16.5Mb/s
TCPセッション#2のウィンドウサイズ=16.5Mb/s×0.01s(RTT)/8=20.6KB
TCPセッション#3の出力レート=33Mb/s(レイヤ2制御レート)×1/2(重み割合)=16.5Mb/s
TCPセッション#3のウィンドウサイズ=16.5Mb/s×0.01s(RTT)/8=20.6KB
次に、テナントCの通信が終了し、輻輳が解消された状態を図18に示す。
スイッチ53における輻輳が解消されると、スイッチ53は、送信元ノード(テナントA,B)に対して輻輳通知パケット61の送信を中止する。
この場合、送信元ノード(テナントA,B)の輻輳制御装置1はレート制御を解除し、送信レートを再び増加させる。
図19は、図18に示した輻輳解除後のテナントAにおける輻輳制御処理を示す。図19(a),(b)に示すように、t4において、輻輳解除によってレイヤ2のレート制御が解除されると、輻輳制御部15は、L4処理部21のTCPセッション制御部23に対して、輻輳解除通知と制御解除対象IPアドレスである「10.0.0.1」とを通知する。
レイヤ2処理部11の輻輳制御部15から輻輳解除通知を受け取ったTCPセッション制御部23は、宛先IPアドレス45が「10.0.0.1」に一致するTCPセッションを検索し、該当するTCPセッションのL2制御レート48の値を「0Mb/s」に更新する。
その後、TCP処理部25は、TCPセッション#2,#3のウィンドウサイズ及び出力レートを、図19(a),(b)に示すように個々に増加させる。
このように、実施形態の一例によれば、輻輳の発生時に、レイヤ2からレイヤ4に、輻輳の発生及びレイヤ2制御レート、及び宛先IPアドレスを通知することにより、両レイヤ間の輻輳制御開始のタイムラグに起因するレイヤ2でのパケットロスを防止できる。
また、輻輳に関与するTCPセッションのみのウィンドウサイズを下げることにより、輻輳に関与しない影響するTCPセッションに影響を与えることなく、レイヤ2におけるパケットロスの発生を防ぐことができる。
これにより、輻輳に影響するTCPセッションのみの出力レートの抑制が可能となり、輻輳に影響しないTCPセッションのレートを低下させることがない。
C)その他
なお、上述した実施形態に関わらず、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
例えば、上記の実施形態の例においては、セッションアトリビュートテーブル43のL2制御レート48に値「0Mb/s」を設定することにより、レイヤ4のレート制御を解除し、TCP標準の輻輳制御を使用するよう設定したが、これに限定されるものではない。例えば、L2制御レート48に別の値を設定してレート制御の解除を指示してもよい。
なお、上記の各実施形態においては、情報処理装置55のCPU3が、輻輳制御プログラムを実行することにより、図2のL2処理部11、送受信パケット制御部13、輻輳制御部15、レート制御処理部17、L4処理部21、TCPセッション制御部23、及びTCP処理部25として機能する。
また、情報処理装置55のメモリ5が、輻輳制御テーブル格納部31及びセッションアトリビュートテーブル格納部41として機能する。
なお、これらのL2処理部11、送受信パケット制御部13、輻輳制御部15、レート制御処理部17、L4処理部21、TCPセッション制御部23、及びTCP処理部25としての機能を実現するための輻輳制御プログラムは、例えばフレキシブルディスク,CD(CD−ROM,CD−R,CD−RW等),DVD(DVD−ROM,DVD−RAM,DVD−R,DVD+R,DVD−RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置又は外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク、光ディスク、光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
L2処理部11、送受信パケット制御部13、輻輳制御部15、レート制御処理部17、L4処理部21、TCPセッション制御部23、及びTCP処理部25としての機能を実現する際には、内部記憶装置(本実施形態では情報処理装置55のメモリ5やストレージ8)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態では情報処理装置55のCPU3)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、CPU等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とを備えており、本実施形態においては、情報処理装置55がコンピュータとしての機能を有している。
(D)付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
それぞれが固有の輻輳制御を行なう下位レイヤと上位レイヤとを含む通信方式において輻輳を制御する方法であって、
前記下位レイヤにおいて輻輳を検知し、
前記輻輳の検知と前記輻輳に係る輻輳制御情報とを前記下位レイヤから前記上位レイヤに通知し、
前記上位レイヤにおいて、前記輻輳に関連する1つ以上の上位レイヤセッションの出力レートをセッション単位で設定することを特徴とする輻輳制御方法。
(付記2)
前記輻輳制御情報には前記下位レイヤにおける制御レートが含まれ、
前記上位レイヤにおいて、前記下位レイヤにおける前記制御レートと前記輻輳に関連する前記1つ以上の上位レイヤセッションの優先度を示す重みとを管理することを特徴とする付記1記載の輻輳制御方法。
(付記3)
前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれに対し、同じ重みを設定することを特徴とする付記2記載の輻輳制御方法。
(付記4)
前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれに対し、事前設定に基づいて静的に重みを設定することを特徴とする付記2記載の輻輳制御方法。
(付記5)
前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれに対し、前記輻輳発生時点の前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれの出力サイズの比率に基づいて、動的に重みを設定することを特徴とする付記2記載の輻輳制御方法。
(付記6)
前記輻輳制御情報には、前記下位レイヤにおける前記出力レートを制御する対象の宛先アドレス情報が更に含まれ、
前記輻輳の発生時に、前記上位レイヤにおいて前記宛先アドレス情報に対応する1つ以上の上位レイヤセッションを、前記輻輳に関連する1つ以上の上位レイヤセッションとして選択することを特徴とする付記2〜5のいずれか1項に記載の輻輳制御方法。
(付記7)
前記下位レイヤにおいて前記輻輳の解消を検知し、
前記輻輳の解消と、前記解消された輻輳に係る宛先アドレス情報とを前記下位レイヤから上位レイヤに通知し、
前記上位レイヤにおいて、前記解消された輻輳に係る前記宛先アドレス情報に対応する1つ以上の上位レイヤセッションの出力レートを、セッション単位で再設定することを特徴とする付記6記載の輻輳制御方法。
(付記8)
前記輻輳発生時に、前記上位レイヤにおいて、前記下位レイヤの制御レートと、前記輻輳に関連する前記1つ以上の上位レイヤセッションの前記重みの合計に対する、前記輻輳に関連する各上位レイヤセッションの重みの割合とを用いて前記出力レートを計算し、
前記計算した出力レートとラウンドトリップタイムとを用いて、前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれの出力サイズを計算することを特徴とする付記2〜7のいずれか1項記載の輻輳制御方法。
(付記9)
前記輻輳に関連する前記1つ以上の上位レイヤセッションが保持する制御レートの値が輻輳の解除を示す値の場合、前記上位レイヤの前記固有の輻輳制御を使用することを特徴とする付記2〜8のいずれか1項に記載の輻輳制御方法。
(付記10)
それぞれが固有の輻輳制御を行なう下位レイヤと上位レイヤとを含む通信方式において輻輳を制御する輻輳制御装置であって、
前記下位レイヤにおいて輻輳を検知する検知部と、
前記輻輳の検知と前記輻輳に係る輻輳制御情報とを前記下位レイヤから前記上位レイヤに通知する通知部と、
前記上位レイヤにおいて、前記輻輳に関連する1つ以上の上位レイヤセッションの出力レートをセッション単位で設定する処理部と、を備えることを特徴とする輻輳制御装置。
(付記11)
前記輻輳制御情報には前記下位レイヤにおける制御レートが含まれ、
前記上位レイヤにおいて、前記下位レイヤにおける前記制御レートと前記輻輳に関連する前記1つ以上の上位レイヤセッションの優先度を示す重みとを管理する管理テーブルを更に備えることを特徴とする付記10記載の輻輳制御装置。
(付記12)
前記管理テーブルにおいて、前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれに対し、同じ重みを設定することを特徴とする付記11記載の輻輳制御装置。
(付記13)
前記管理テーブルにおいて、前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれに対し、事前設定に基づいて静的に重みを設定することを特徴とする付記11記載の輻輳制御装置。
(付記14)
前記管理テーブルにおいて、前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれに対し、前記輻輳発生時点の前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれの出力サイズの比率に基づいて、動的に重みを設定することを特徴とする付記11記載の輻輳制御装置。
(付記15)
前記輻輳制御情報には、前記下位レイヤにおける前記出力レートを制御する対象の宛先アドレス情報が更に含まれ、
前記処理部は、前記輻輳の発生時に、前記上位レイヤにおいて前記宛先アドレス情報に対応する1つ以上の上位レイヤセッションを、前記輻輳に関連する1つ以上の上位レイヤセッションとして選択することを特徴とする付記11〜14のいずれか1項に記載の輻輳制御装置。
(付記16)
前記検知部は、前記下位レイヤにおいて前記輻輳の解消を検知し、
前記通知部は、前記輻輳の解消と、前記解消された輻輳に係る宛先アドレス情報とを前記下位レイヤから上位レイヤに通知し、
前記処理部は、前記上位レイヤにおいて、前記解消された輻輳に係る前記宛先アドレス情報に対応する1つ以上の上位レイヤセッションの出力レートを、セッション単位で再設定することを特徴とする付記15記載の輻輳制御装置。
(付記17)
前記処理部は、前記輻輳発生時に、前記上位レイヤにおいて、前記下位レイヤの制御レートと、前記輻輳に関連する前記1つ以上の上位レイヤセッションの前記重みの合計に対する、前記輻輳に関連する各上位レイヤセッションの重みの割合とを用いて前記出力レートを計算し、
前記計算した出力レートとラウンドトリップタイムとを用いて、前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれの出力サイズを計算することを特徴とする付記11〜16のいずれか1項記載の輻輳制御装置。
(付記18)
前記処理部は、前記輻輳に関連する前記1つ以上の上位レイヤセッションが保持する制御レートの値が輻輳の解除を示す値の場合、前記上位レイヤの前記固有の輻輳制御を使用することを特徴とする付記11〜17のいずれか1項に記載の輻輳制御装置。
(付記19)
情報処理装置と上位装置とが中継装置で接続されており、固有の輻輳制御を行なう下位レイヤと上位レイヤとを含む通信方式で通信を行なう通信システムであって、
前記情報処理装置は、
前記下位レイヤにおいて輻輳を検知する検知部と、
前記輻輳の検知と前記輻輳に係る輻輳制御情報とを前記下位レイヤから前記上位レイヤに通知する通知部と、
前記上位レイヤにおいて、前記輻輳に関連する1つ以上の上位レイヤセッションの出力レートをセッション単位で設定する処理部と、を備えることを特徴とする通信システム。
(付記20)
コンピュータに、それぞれが固有の輻輳制御を行なう下位レイヤと上位レイヤとを含む通信方式において輻輳を制御させる輻輳制御プログラムであって、
前記プログラムは、該コンピュータに、
前記下位レイヤにおいて輻輳を検知させ、
前記輻輳の検知と前記輻輳に係る輻輳制御情報とを前記下位レイヤから前記上位レイヤに通知させ、
前記上位レイヤにおいて、前記輻輳に関連する1つ以上の上位レイヤセッションの出力レートをセッション単位で設定させることを特徴とする輻輳制御プログラム。
1 輻輳制御装置
3 CPU
5 メモリ
11 L2処理部
13 送受信パケット制御部
15 輻輳制御部(通知部)
17 レート制御処理部(検知部)
21 L4処理部
23 TCPセッション制御部
25 TCP処理部(処理部)
31 輻輳制御テーブル格納部
33 輻輳制御テーブル
34 制御対象宛先IPアドレス(輻輳制御情報、宛先アドレス情報)
35 L2制御レート(輻輳制御情報、制御レート)
41 セッションアトリビュートテーブル格納部
43 セッションアトリビュートテーブル
44 セッションID
45 宛先IPアドレス
46 重み
47 重み割合
48 L2制御レート
51 サーバ(上位装置)
53 スイッチ(中継装置)
55 情報処理装置
61 輻輳通知パケット

Claims (8)

  1. それぞれが固有の輻輳制御を行なう下位レイヤと上位レイヤとを含む通信方式において輻輳を制御する方法であって、
    前記下位レイヤにおいて輻輳を検知し、
    前記輻輳の検知と、前記下位レイヤにおける制御レートを含む前記輻輳に係る輻輳制御情報とを前記下位レイヤから前記上位レイヤに通知し、
    前記上位レイヤにおいて、前記輻輳に関連する1つ以上の上位レイヤセッションの出力レートをセッション単位で設定し、
    前記設定時に、前記上位レイヤにおいて、前記下位レイヤにおける前記制御レートと前記輻輳に関連する前記1つ以上の上位レイヤセッションの優先度を示す重みとを管理する管理テーブルにおいて、前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれに対し、前記輻輳発生時点の前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれの出力サイズの比率に基づいて、動的に重みを設定することを特徴とする輻輳制御方法。
  2. それぞれが固有の輻輳制御を行なう下位レイヤと上位レイヤとを含む通信方式において輻輳を制御する輻輳制御装置であって、
    前記下位レイヤにおいて輻輳を検知する検知部と、
    前記輻輳の検知と、前記下位レイヤにおける制御レートを含む前記輻輳に係る輻輳制御情報とを前記下位レイヤから前記上位レイヤに通知する通知部と、
    前記上位レイヤにおいて、前記輻輳に関連する1つ以上の上位レイヤセッションの出力レートをセッション単位で設定する処理部と、
    前記上位レイヤにおいて、前記下位レイヤにおける前記制御レートと前記輻輳に関連する前記1つ以上の上位レイヤセッションの優先度を示す重みとを管理する管理テーブルと、を備え
    前記管理テーブルにおいて、前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれに対し、前記輻輳発生時点の前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれの出力サイズの比率に基づいて、動的に重みを設定することを特徴とする輻輳制御装置
  3. 前記輻輳制御情報には、前記下位レイヤにおける前記出力レートを制御する対象の宛先アドレス情報が更に含まれ、
    前記処理部は、前記輻輳の発生時に、前記上位レイヤにおいて前記宛先アドレス情報に対応する1つ以上の上位レイヤセッションを、前記輻輳に関連する1つ以上の上位レイヤセッションとして選択することを特徴とする請求項2記載の輻輳制御装置。
  4. 前記検知部は、前記下位レイヤにおいて前記輻輳の解消を検知し、
    前記通知部は、前記輻輳の解消と、前記解消された輻輳に係る宛先アドレス情報とを前記下位レイヤから上位レイヤに通知し、
    前記処理部は、前記上位レイヤにおいて、前記解消された輻輳に係る前記宛先アドレス情報に対応する1つ以上の上位レイヤセッションの出力レートを、セッション単位で再設定することを特徴とする請求項記載の輻輳制御装置。
  5. 前記処理部は、前記輻輳発生時に、前記上位レイヤにおいて、前記下位レイヤの制御レートと、前記輻輳に関連する前記1つ以上の上位レイヤセッションの前記重みの合計に対する、前記輻輳に関連する各上位レイヤセッションの重みの割合とを用いて前記出力レートを計算し、
    前記計算した出力レートとラウンドトリップタイムとを用いて、前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれの出力サイズを計算することを特徴とする請求項のいずれか1項記載の輻輳制御装置。
  6. 前記処理部は、前記輻輳に関連する前記1つ以上の上位レイヤセッションが保持する制御レートの値が輻輳の解除を示す値の場合、前記上位レイヤの前記固有の輻輳制御を使用することを特徴とする請求項のいずれか1項に記載の輻輳制御装置。
  7. 情報処理装置と上位装置とが中継装置で接続されており、固有の輻輳制御を行なう下位レイヤと上位レイヤとを含む通信方式で通信を行なう通信システムであって、
    前記情報処理装置は、
    前記下位レイヤにおいて輻輳を検知する検知部と、
    前記輻輳の検知と、前記下位レイヤにおける制御レートを含む前記輻輳に係る輻輳制御情報とを前記下位レイヤから前記上位レイヤに通知する通知部と、
    前記上位レイヤにおいて、前記輻輳に関連する1つ以上の上位レイヤセッションの出力レートをセッション単位で設定する処理部と、
    前記上位レイヤにおいて、前記下位レイヤにおける前記制御レートと前記輻輳に関連する前記1つ以上の上位レイヤセッションの優先度を示す重みとを管理する管理テーブルと、を備え
    前記管理テーブルにおいて、前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれに対し、前記輻輳発生時点の前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれの出力サイズの比率に基づいて、動的に重みを設定することを特徴とする通信システム。
  8. コンピュータに、それぞれが固有の輻輳制御を行なう下位レイヤと上位レイヤとを含む通信方式において輻輳を制御させる輻輳制御プログラムであって、
    前記プログラムは、該コンピュータに、
    前記下位レイヤにおいて輻輳を検知させ、
    前記輻輳の検知と、前記下位レイヤにおける制御レートを含む前記輻輳に係る輻輳制御情報とを前記下位レイヤから前記上位レイヤに通知させ、
    前記上位レイヤにおいて、前記輻輳に関連する1つ以上の上位レイヤセッションの出力レートをセッション単位で設定させ
    前記設定時に、前記上位レイヤにおいて、前記下位レイヤにおける前記制御レートと前記輻輳に関連する前記1つ以上の上位レイヤセッションの優先度を示す重みとを管理する管理テーブルにおいて、前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれに対し、前記輻輳発生時点の前記輻輳に関連する前記1つ以上の上位レイヤセッションのそれぞれの出力サイズの比率に基づいて、動的に重みを設定させることを特徴とする輻輳制御プログラム。
JP2014505929A 2012-03-23 2012-03-23 輻輳制御方法、輻輳制御装置、通信システム及び輻輳制御プログラム Expired - Fee Related JP6015744B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2012/057508 WO2013140602A1 (ja) 2012-03-23 2012-03-23 輻輳制御方法、輻輳制御装置、通信システム及び輻輳制御プログラム

Publications (2)

Publication Number Publication Date
JPWO2013140602A1 JPWO2013140602A1 (ja) 2015-08-03
JP6015744B2 true JP6015744B2 (ja) 2016-10-26

Family

ID=49222096

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014505929A Expired - Fee Related JP6015744B2 (ja) 2012-03-23 2012-03-23 輻輳制御方法、輻輳制御装置、通信システム及び輻輳制御プログラム

Country Status (3)

Country Link
US (1) US9521080B2 (ja)
JP (1) JP6015744B2 (ja)
WO (1) WO2013140602A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014006692A1 (ja) * 2012-07-03 2014-01-09 富士通株式会社 制御対象フロー特定プログラム、制御対象フロー特定方法および制御対象フロー特定装置
KR20150084307A (ko) * 2014-01-13 2015-07-22 삼성전자주식회사 네트워크에서 웹 로딩 시간 제어 방법 및 장치
US9807024B2 (en) * 2015-06-04 2017-10-31 Mellanox Technologies, Ltd. Management of data transmission limits for congestion control
US10009277B2 (en) 2015-08-04 2018-06-26 Mellanox Technologies Tlv Ltd. Backward congestion notification in layer-3 networks
US10237376B2 (en) 2015-09-29 2019-03-19 Mellanox Technologies, Ltd. Hardware-based congestion control for TCP traffic
US10097462B2 (en) * 2016-04-02 2018-10-09 Niciria, Inc. Throughput resilience during link failover
US10439945B2 (en) * 2017-12-29 2019-10-08 Tionesta, Llc Single stream aggregation protocol
US11218413B2 (en) * 2019-11-14 2022-01-04 Mellanox Technologies, Ltd. Congestion control management method derived from packets at a network adapter
US11296988B2 (en) * 2019-11-14 2022-04-05 Mellanox Technologies, Ltd. Programmable congestion control communication scheme

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH09205461A (ja) 1996-01-29 1997-08-05 Nec Corp 優先制御方式
US6490251B2 (en) * 1997-04-14 2002-12-03 Nortel Networks Limited Method and apparatus for communicating congestion information among different protocol layers between networks
JP3413788B2 (ja) 1997-09-25 2003-06-09 日本電信電話株式会社 層間のフロー制御を行う通信プロトコルを持つ通信方法およびデータ通信端末
JP3434231B2 (ja) 1999-02-25 2003-08-04 日本電信電話株式会社 Tcp制御方法
JP2001168871A (ja) * 1999-12-06 2001-06-22 Nippon Telegr & Teleph Corp <Ntt> データ転送方式
US7730201B1 (en) * 2000-04-13 2010-06-01 Alcatel-Lucent Canada, Inc. Method and apparatus for congestion avoidance in source routed signaling protocol communication networks
JP2002204255A (ja) * 2000-10-27 2002-07-19 Matsushita Electric Ind Co Ltd 伝送レート制御装置及び伝送レート制御方法
US20020075895A1 (en) 2000-10-27 2002-06-20 Takao Yamaguchi Transmission rate controller and transmission rate control method
US8325602B2 (en) * 2008-12-18 2012-12-04 Cisco Technology, Inc. Method and system to manage network traffic congestion in networks with link layer flow control
US8929218B2 (en) * 2010-09-10 2015-01-06 Brocade Communication Systems, Inc. Congestion notification across multiple layer-2 domains
JP5673057B2 (ja) * 2010-12-10 2015-02-18 富士通株式会社 輻輳制御プログラム、情報処理装置および輻輳制御方法
US9030935B2 (en) * 2011-03-30 2015-05-12 International Business Machines Corporation Device and method for adjusting rate limits for transmission rates of data flows having a certain priority in a transmitter
US8995265B2 (en) * 2012-01-28 2015-03-31 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Monitoring endpoint buffer occupancy to determine congestion in an ethernet network
US20130205038A1 (en) * 2012-02-06 2013-08-08 International Business Machines Corporation Lossless socket-based layer 4 transport (reliability) system for a converged ethernet network

Also Published As

Publication number Publication date
US9521080B2 (en) 2016-12-13
US20150009817A1 (en) 2015-01-08
WO2013140602A1 (ja) 2013-09-26
JPWO2013140602A1 (ja) 2015-08-03

Similar Documents

Publication Publication Date Title
JP6015744B2 (ja) 輻輳制御方法、輻輳制御装置、通信システム及び輻輳制御プログラム
US11683256B2 (en) Specializing virtual network device processing to avoid interrupt processing for high packet rate applications
JP6938766B2 (ja) パケット制御方法およびネットワーク装置
US9749402B2 (en) Workload deployment with real-time consideration of global network congestion
US10158538B2 (en) Reporting elephant flows to a network controller
US9444718B2 (en) Distributed platform test network
US9614930B2 (en) Virtual machine mobility using OpenFlow
JP5790312B2 (ja) 通信方法、通信装置、および、通信プログラム
JP5625978B2 (ja) 通信制御プログラム、情報処理装置およびパケット通信方法
US8942094B2 (en) Credit-based network congestion management
US20180288152A1 (en) Storage dynamic accessibility mechanism method and apparatus
TW201603531A (zh) 全網域服務控制器
JP5838661B2 (ja) データ処理システム、データ中継装置およびデータ中継方法
WO2014183574A1 (zh) 计算节点部署方法、处理节点、控制器及系统
JP6287859B2 (ja) 通信ノード、制御装置、制御情報エントリの管理方法及びプログラム
JP6365280B2 (ja) 情報処理装置、情報処理システム、及びプログラム
JP2020028048A (ja) 負荷分散システム及び負荷分散方法
JP7003873B2 (ja) 負荷分散システム及び負荷分散方法
JP4840086B2 (ja) 通信制御装置、通信制御システム、通信制御方法及び通信制御プログラム
JP2018110359A (ja) 仮想マシン管理プログラム、仮想マシン管理装置および仮想マシン管理方法
US10764168B1 (en) Adjusting communications parameters based on known characteristics
WO2024137676A1 (en) Virtual network distributed denial-of-service scrubber
US9853885B1 (en) Using packet duplication in a packet-switched network to increase reliability

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160223

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160420

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160912

R150 Certificate of patent or registration of utility model

Ref document number: 6015744

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees