JP2016167708A - 情報処理システム、スイッチ装置及び情報処理システムの制御方法 - Google Patents

情報処理システム、スイッチ装置及び情報処理システムの制御方法 Download PDF

Info

Publication number
JP2016167708A
JP2016167708A JP2015046413A JP2015046413A JP2016167708A JP 2016167708 A JP2016167708 A JP 2016167708A JP 2015046413 A JP2015046413 A JP 2015046413A JP 2015046413 A JP2015046413 A JP 2015046413A JP 2016167708 A JP2016167708 A JP 2016167708A
Authority
JP
Japan
Prior art keywords
unit
switch device
port
flow
congestion
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
JP2015046413A
Other languages
English (en)
Other versions
JP6511875B2 (ja
Inventor
幸洋 中川
Koyo Nakagawa
幸洋 中川
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
Priority to JP2015046413A priority Critical patent/JP6511875B2/ja
Priority to US15/002,763 priority patent/US10135761B2/en
Publication of JP2016167708A publication Critical patent/JP2016167708A/ja
Application granted granted Critical
Publication of JP6511875B2 publication Critical patent/JP6511875B2/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
    • H04L49/00Packet switching elements
    • H04L49/50Overload detection or protection within a single switching element
    • H04L49/505Corrective measures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/22Alternate routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • 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/122Avoiding congestion; Recovering from congestion by diverting traffic away from congested entities
    • 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/30Flow control; Congestion control in combination with information about buffer occupancy at either end or at transit nodes

Landscapes

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

Abstract

【課題】LAG/MLAGにおいてスイッチによる経路変更時のパケットの到着順序の逆転を防ぎ、効率の良い経路変更を行うこと。【解決手段】制御メッセージ送受信部42が輻輳情報を含む制御メッセージを送受信してリモート輻輳ベクタ43及びリモートフローベクタ44としてメモリ14に書込むことで、スパイン間で輻輳情報を共有する。そして、LAGトラフィック制御部41が、リモート輻輳ベクタ43を用いて迂回先の輻輳状態を確認した後、迂回を行う。また、LAGトラフィック制御部41は、ローカルフローベクタ29を参照して出力キュー12cのパケットが格納されていないフローを迂回するフローとして選択する。【選択図】図14

Description

本発明は、情報処理システム、スイッチ装置及び情報処理システムの制御方法に関する。
複数の情報処理装置を複数のスイッチで接続して構築される情報処理システムでは、レイヤ2の冗長化技術としてLAG(Link Aggregation)が利用されている。図24は、LAGを説明するための図である。図24では、S#0〜S#3で表される4台の情報処理装置2がSwitch#0及びSwitch#1で表される2台のスイッチ90で接続される。
2台のスイッチ90は4つの物理リンク90aで接続されるが、LAGでは、4つの物理リンク90aは1つの論理リンクとみなされる。LAGをサポートしたL2スイッチ(レイヤ2スイッチ)間の経路は、全てアクティブな経路(通信可能な経路)として扱われるため、スイッチは複数経路を有効活用することができる。さらに、ケーブル切断時には迂回路(バックアップ)によるフェールオーバーが可能であり可用性が向上する。
複数経路を選択するためのアルゴリズムとしては、単純なラウンド・ロビン方式(パケット単位)は、パケットの順序逆転が起こるため、適当でない。IP(Internet Protocol)アドレスやMAC(Media Access Control)アドレス等パケットの情報を元にハッシュ値を算出して、ハッシュ値に基づいてパケットの送出先の物理リンクを選択するのが一般的である。これにより、トラフィックはフロー単位で分散されるため順序反転は生じないが、物理回線数が多くなると経路選択がフロー毎のトラフィック偏りの影響を受けやすくなることが知られている。
なお、LAGにおいて、受信パケットのハッシュ値と優先度を保持しておき、ハッシュ値と優先度と受信パケットのバッファリング状態とに基づいて受信パケットの出力先を制御して、フロー単位でパケットを順序入れ替えを行うことなく振り分ける技術がある。
また、複数の回線カードに跨ってLAGグループが形成されている場合であっても、LAGグループ単位の帯域制御レートをLAGグループを構成する全リンクの物理帯域の合計レートまで拡大する技術がある。
特開2012−205048号公報 特開2009−200905号公報
LAGでは、トラフィックの偏りにより経路で輻輳が発生した場合に、経路を変更するとパケットの順序逆転が生じるという問題がある。パケットの順序逆転は、TCP(Transmission Control Protocol)の性能低下を引き起こす。
本発明は、1つの側面では、輻輳が発生した場合に、迂回によるパケットの順序逆転を防ぐとともに、効率の良い迂回制御を行うことを目的とする。
本願の開示する情報処理システムは、1つの態様において、スイッチ装置と、前記スイッチ装置に接続される他のスイッチ装置とを有する。前記スイッチ装置は、複数のポート部と、複数のキュー部と、検出部と、通知部と、判断部と、選択部と、記憶部と、制御部とを有する。前記ポート部は、フローに含まれるパケットをそれぞれ送信する。前記キュー部は、前記複数のポート部に対応してそれぞれ設けられ、パケットをそれぞれ格納する。前記検出部は、前記複数のキュー部の各々に格納されたパケットの量に基づき、前記複数のポート部のいずれかにおける輻輳状態を検出する。前記通知部は、輻輳状態が検出された場合、前記複数のポート部のうち、前記輻輳状態が検出されたポート部の前記輻輳状態に関する輻輳情報を、前記他のスイッチ装置に接続するスイッチ装置間ポート部を介して当該他のスイッチ装置に通知する。前記判断部は、前記他のスイッチ装置から通知された他の輻輳情報に基づき、前記他のスイッチ装置を介した迂回路を使用できるかを判断する。前記選択部は、前記複数のキュー部のうち迂回路として使用されるポート部のキュー部にパケットが格納されていないフロー集合を対象フロー集合として選択する。前記記憶部は、前記選択部が選択した対象フロー集合を特定するフロー集合特定情報を記憶する。前記制御部は、前記判断部が他のスイッチ装置を介した迂回路を使用できると判断した場合、前記フロー集合特定情報に基づき、前記対象フロー集合に含まれるフローに属するパケットを、スイッチ装置間ポート部を介して他のスイッチ装置に送出して迂回させる。
1実施態様によれば、輻輳が発生した場合に、迂回によるパケットの順序逆転を防ぐとともに、効率の良い迂回制御を行うことができる。
図1は、実施例1に係るスイッチによる経路変更を説明するための図である。 図2は、実施例1に係るスイッチの構成を示す図である。 図3は、輻輳検出通知部による輻輳状態の検出及び通知を説明するための図である。 図4は、フローグループカウンタを説明するための図である。 図5は、迂回路の使用可否判断を説明するための図である。 図6は、迂回するフローの選択を説明するための図である。 図7は、迂回するフローの記録を説明するための図である。 図8は、輻輳状態解除時の迂回解除判断を説明するための図である。 図9は、スイッチがパケットを受信したときの処理のフローを示すフローチャートである。 図10は、LAGトラフィック制御部による迂回フロー選択の処理のフローを示すフローチャートである。 図11は、LAGトラフィック制御部によるフロー迂回解除の処理のフローを示すフローチャートである。 図12は、MLAGを説明するための図である。 図13は、実施例2に係るスイッチによる経路変更を説明するための図である。 図14は、実施例2に係るスイッチの構成を示す図である。 図15は、スパイン間の制御メッセージを示す図である。 図16は、迂回路の使用可否判断を説明するための図である。 図17は、迂回するフローの記録を説明するための図である。 図18は、制御メッセージの送信処理のフローを示すフローチャートである。 図19は、制御メッセージの受信処理のフローを示すフローチャートである。 図20は、実施例2に係るLAGトラフィック制御部による迂回フロー選択の処理のフローを示すフローチャートである。 図21は、実施例3に係るスイッチによる経路変更を説明するための図である。 図22Aは、実施例3に係るLAGトラフィック制御部による迂回フロー選択の処理のフローを示す第1のフローチャートである。 図22Bは、実施例3に係るLAGトラフィック制御部による迂回フロー選択の処理のフローを示す第2のフローチャートである。 図23は、実施例3に係るLAGトラフィック制御部によるフロー迂回解除の処理のフローを示すフローチャートである。 図24は、LAGを説明するための図である。
以下に、本願の開示する情報処理システム、スイッチ装置及び情報処理システムの制御方法の実施例を図面に基づいて詳細に説明する。なお、実施例は開示の技術を限定するものではない。
まず、実施例1に係るスイッチによる経路変更について説明する。図1は、実施例1に係るスイッチによる経路変更を説明するための図である。図1に示すように、実施例1に係る情報処理システム1は、S#0〜S#3で表される4台の情報処理装置2とSwitch#0及びSwitch#1で表される2台のスイッチ10を有し、4台の情報処理装置2が2台のスイッチ10で接続される。情報処理装置2は、情報処理を行う装置であり、スイッチ10は、情報処理装置間の通信を中継する装置である。
スイッチ10は、P#0〜P#5で表される6つのポートを有する。P#0及びP#1は、情報処理装置2に接続する。P#2〜P#5は、他のスイッチ10に接続する。2台のスイッチ10はP#2〜P#5を用いて4つの物理リンク10aで接続されるが、LAGにより、2台のスイッチ10は1つの論理リンクで接続される。なお、図1では、説明の便宜上、4つの物理リンク10aで1つの論理リンクを構成するが、より多くの物理リンク10aでLAGを構成してもよい。
Switch#0は、輻輳状態を検出すると、他のポートの経路の利用率等に基づいて迂回先の候補を選択する。そして、Switch#0は、迂回先の候補が輻輳していないことを確認し、迂回先の候補を迂回先として選択する。そして、Switch#0は、迂回元のキュー情報を基に経路を変更するフローを選択し、選択したフローの経路を迂回元から迂回先に変更する。また、Switch#0は、迂回元の輻輳状態が解除されると、迂回先のキュー情報を確認し、迂回しているフローの経路をもとに戻す。
図1では、P#5で輻輳状態が検出され、P#5からパケットが送信されるフローのうち選択されたフローの経路が迂回先へ変更される。そして、P#5の輻輳状態が解除されると、迂回先へ変更されたフローの経路がP#5の経路に戻される。
次に、実施例1に係るスイッチ10の構成について説明する。図2は、実施例1に係るスイッチ10の構成を示す図である。図2に示すように、スイッチ10は、受信ポートISL(Inter Switch Link)で表される受信ポート11aと、受信ポート#0〜受信ポート#31で表される32個の受信ポート11bを有する。また、スイッチ10は、送信ポートISLで表される送信ポート12aと、送信ポート#0〜送信ポート#31で表される32個の送信ポート12bを有する。また、スイッチ10は、CPU13(Central Processing Unit)と、メモリ14と、スイッチングモジュール20とを有する。
受信ポート11aは、スイッチ10がMLAG(Multi-Chassis LAG)のスパイン(Spine)として用いられる場合にISLを介して他のスパインから送信されるパケットを受信するポートである。なお、MLAG及びスパインについては、実施例2で説明する。受信ポート11bは、接続される情報処理装置2又はスイッチ10から送信されたパケットを受信するポートである。
送信ポート12aは、スイッチ10がMLAGのスパインとして用いられる場合に他のスパインへパケットを送信するポートである。送信ポート12bは、接続される情報処理装置2又は他のスイッチ10にパケットを送信するポートである。送信ポート12a及び送信ポート12bは、出力キュー12cを有する。出力キュー12cは、スイッチ10が出力するパケットを格納するキューである。
CPU13は、メモリ14からプログラムを読み出して実行する中央処理装置である。CPU13は、プログラムを実行することにより、LAGトラフィック制御部31の機能を実現する。LAGトラフィック制御部31は、送信ポート12bの輻輳情報及び出力キュー12cの格納状態に基づいてトラフィックの経路を制御する。なお、LAGトラフィック制御部31の詳細については後述する。メモリ14は、プログラム、プログラム実行の途中結果等を記憶するRAM(Random Access Memory)である。
スイッチングモジュール20は、受信ポート11a及び受信ポート11bが受信したパケットをパケットの宛先に基づいて送信ポート12a及び送信ポート12bに振り分ける。スイッチングモジュール20は、パケット受信部21と、FDB(Forwarding Database)記憶部22と、FDB制御部23と、ハッシュ計算部24と、パケット振り分け部25とを有する。また、スイッチングモジュール20は、輻輳検出通知部26と、ローカル輻輳ベクタ27と、フローグループカウンタ28と、ローカルフローベクタ29とを有する。
パケット受信部21は、受信ポート11a及び受信ポート11bが受信したパケットを受信する。FDB記憶部22は、パケットの宛先からパケットを出力する論理ポートを検索するためのデータベースを記憶し、MACアドレス及びVLAN番号と論理ポート番号との対応を記憶する。FDB制御部23は、FDB記憶部22が記憶するFDBを検索してパケットを出力する論理ポートを取得する。なお、以下の説明では、32個の送信ポート12bがLAGにより1つの論理送信ポートであり、他のスイッチ10の32個の受信ポート11bに各々物理リンク10aで接続するとする。
ハッシュ計算部24は、5タプルからパケットのハッシュ値を計算する。ここで、5タプルとは、送信元IPアドレス、送信先IPアドレス、送信元ポート番号、宛先ポート番号及びプロトコルである。パケット振り分け部25は、ハッシュ計算部24により計算されたハッシュ値を送信ポート12bにマッピングすることで、送信するパケットを送信ポート12bのいずれかに振り分ける。
輻輳検出通知部26は、送信ポート12bの輻輳状態を検出し、LAGトラフィック制御部31に通知するとともに、ローカル輻輳ベクタ27を設定する。ローカル輻輳ベクタ27は、送信ポート12b毎に、輻輳状態を記憶する。送信ポート12bが輻輳状態になると、ローカル輻輳ベクタ27の対応するビットが1に設定される。
図3は、輻輳検出通知部26による輻輳状態の検出及び通知を説明するための図である。図3に示すように、送信ポート12bは、出力キュー12cの他に、出力キュー12cの長さをカウントするキュー長カウンタ12dを有する。キュー長カウンタ12dは、出力キュー12cにパケットが入力されると加算され、出力キュー12cからパケットが出力されると減算される。
輻輳検出通知部26は、輻輳検出の閾値を示す輻輳しきい値26aを記憶し、キュー長カウンタ12dの値を輻輳しきい値26aと比較する比較部26bを送信ポート12b毎に有する。そして、輻輳検出通知部26は、比較部26bの比較結果に基づいて、出力キュー12cのキュー長が輻輳しきい値26aを超えると、ローカル輻輳ベクタ27の対応するビットを1に設定する。また、輻輳検出通知部26は、出力キュー12cのキュー長が輻輳しきい値26aを超え、TCPセッション要求を受信した場合に、輻輳検出をポート番号とハッシュ値とともにLAGトラフィック制御部31に通知する。
また、輻輳検出通知部26は、輻輳状態が解除されると、輻輳解除をLAGトラフィック制御部31に通知するとともに、ローカル輻輳ベクタ27の対応するビットを0に設定する。
フローグループカウンタ28は、ハッシュ値が共通するフローをグループ化したフローグループ(フロー集合)に属するパケットの出力キュー12c内の数をカウントするカウンタである。図4は、フローグループカウンタ28を説明するための図である。図4に示すように、フローグループカウンタ28は、フローグループ毎にエントリを有する。図4では、フローグループカウンタ28は、group counter#0〜group counter#255の256のエントリを有する。
パケットの5タプルから計算されたハッシュ値の下位8ビットに基づいてフローはグループ化される。そして、出力キュー12cにパケットが入力されると対応するgroup counter#n(0≦n≦255)が加算され、出力キュー12cからパケットが出力されると対応するgroup counter#nが減算される。
なお、図4では、出力キュー12cの数とフローグループカウンタ28のエントリの数の関係は1対256であるが、出力キュー12cの数とフローグループカウンタ28のエントリの数の関係は整数M及びNに関してM対Nでよい。また、図4では、パケット数に基づいてカウンタの値を増減するが、パケット長に基づいてカウンタの値を増減してもよい。また、フローグループカウンタ28は、後述する図7に示すように、各エントリに対応付けて、フローグループが迂回されているか否かを示すビット、迂回先のポート番号を有する。
ローカルフローベクタ29は、フローグループカウンタ28の状態を示す256ビットのベクトルである。ローカルフローベクタ29のビットnは、group counter#nの値が0の場合に0に設定され、group counter#nの値が0以外の場合に1に設定される。すなわち、ローカルフローベクタ29のビットnが0であることは、対応するフローグループに属するパケットが出力キュー12cにないことを示す。
次に、LAGトラフィック制御部31の詳細について説明する。LAGトラフィック制御部31は、迂回路の使用可否判断、迂回するフローの選択、迂回するフローの記録、及び輻輳状態解除時の迂回解除判断を行う。
図5は、迂回路の使用可否判断を説明するための図である。LAGトラフィック制御部31は、ローカル輻輳ベクタ27を用いて迂回路の輻輳状態を確認し、迂回路の使用可否を判断する。LAGトラフィック制御部31は、迂回路として使用する他の送信ポート12bを示す32ビットのCVマスクベクタを生成し、ローカル輻輳ベクタ27とマスクベクタのANDをとり、全て0であれば迂回路が使用可能と判断する。
図6は、迂回するフローの選択を説明するための図である。図6に示すように、LAGトラフィック制御部31は、ローカルフローベクタ29を用いて、出力キュー12cにパケットがキューイングされていないフローを迂回するフローとして選択する。
具体的には、LAGトラフィック制御部31は、新たにセッションを開始するTCPフローについて、SYNパケットの5タプルから計算したハッシュ値の下位8ビットに基づいて256ビットのFVマスクベクタを生成する。そして、LAGトラフィック制御部31は、ローカルフローベクタ29とFVマスクベクタのANDを取り、全て0であれば、ハッシュ値の下位8ビットに対応するフローグループに含まれるフローを迂回するフローとして選択する。
このように、LAGトラフィック制御部31は、新たにセッションを開始するTCPフローを対象として迂回を行うことによって、CPUの負荷を増やさず、パケットの受信順序の逆転を防ぐことができる。また、LAGトラフィック制御部31は、既に出力キュー12cにキューイングされているフローグループのフローは迂回せず、キューイングされていないフローグループのフローを迂回する。したがって、LAGトラフィック制御部31は、新たにセッションを開始するTCPフロー以外で迂回されるフローグループに属するフローでパケットの受信順序が逆転することを防ぐことができ、効率の良い迂回制御を行うことができる。
図7は、迂回するフローの記録を説明するための図である。図7に示すように、LAGトラフィック制御部31は、迂回するフローグループを選択すると、フローグループカウンタ28の対応するエントリに迂回する旨を記録する。具体的には、LAGトラフィック制御部31は、迂回を示すビットを1にし、迂回先のポート番号を記録する。例えば、図7では、group counter#0に対応するフローグループに属するフローが迂回され、迂回先は送信ポート#2である。その後、迂回されたフローグループに含まれるフローに属するパケットは迂回される。
図8は、輻輳状態解除時の迂回解除判断を説明するための図である。図8に示すように、LAGトラフィック制御部31は、迂回しているフローについて、ローカルフローベクタ29で迂回先の送信ポート12bの出力キュー12cの空きを確認した後に、迂回を解除する。具体的には、LAGトラフィック制御部31は、迂回しているフローグループに対応するビットを1に設定した256ビットのFVマスクベクタを生成し、ローカルフローベクタ29とFVマスクベクタのANDをとり、全て0であれば迂回の解除が可能と判断する。
次に、スイッチ10がパケットを受信したときの処理のフローについて説明する。図9は、スイッチ10がパケットを受信したときの処理のフローを示すフローチャートである。図9に示すように、パケット受信部21は、パケットを受信したか否かを判定する(ステップS1)。受信していない場合には、パケット受信部21は、パケットの受信を待つ。
一方、受信した場合には、FDB制御部23が、宛先MACアドレスでFDBを検索し、パケットを送信する論理ポート(1以上の物理ポートで構成されるLAGに対応する論理ポート)を特定する(ステップS2)。そして、ハッシュ計算部24がパケットの5タプルでハッシュ計算を行い(ステップS3)、ハッシュ値に基づいてパケット振り分け部25が送信ポート(パケットを送信する物理ポート)12bを特定する(ステップS4)。
そして、輻輳検出通知部26が、送信ポート12bが輻輳しているか判定し(ステップS5)、輻輳していない場合には、ステップS9へ制御を移す。一方、輻輳している場合には、輻輳検出通知部26は、オーバレイネットワークか否か判定する(ステップS6)。オーバレイネットワークである場合には、元のTCPフレームがUDPのアウターヘッダでカプセル化されるため、輻輳検出通知部26は、パケットがTCPコネクション要求か否かを判定できないので、ステップS9へ制御を移す。
一方、オーバレイネットワークでない場合には、輻輳検出通知部26は、パケットがTCPコネクション要求か否か判定し(ステップS7)、TCPコネクション要求でない場合は、ステップS9へ進む。一方、TCPコネクション要求の場合は、輻輳検出通知部26は、輻輳検出通知(輻輳している送信ポート12bの番号とパケットのハッシュ値)をLAGトラフィック制御部31に送る(ステップS8)。
そして、パケット振り分け部25が、ハッシュ値に対応するフローグループカウンタ28の迂回情報を参照し、迂回するフローか否かを判定する(ステップS9)。迂回するフローである場合は、パケット振り分け部25は、迂回路を送信ポート12bに変更し(ステップS10)、迂回するフローでない場合には、ステップS11へ進む。
そして、パケット振り分け部25は、送信ポート12bのフローグループカウンタ28の対応するgroup counterをインクリメントし(ステップS11)、パケットを送信ポート12bの出力キュー12cに入れる(ステップS12)。そして、送信ポート12bは、パケットを出力キュー12cから取り出し(ステップS13)、送信ポート12bのフローグループカウンタ28の対応するgroup counterをデクリメントする(ステップS14)。そして、送信ポート12bは、パケットを送信ポート12bから送信する(ステップS15)。
このように、輻輳検出通知部26が、パケットがTCPコネクション要求である場合に輻輳検出通知をLAGトラフィック制御部31に送信することによって、スイッチ10は、新たなフローが発生したタイミングでパケットの迂回を行うことができる。
次に、LAGトラフィック制御部31による迂回フロー選択の処理のフローについて説明する。図10は、LAGトラフィック制御部31による迂回フロー選択の処理のフローを示すフローチャートである。図10に示すように、LAGトラフィック制御部31は、輻輳検出通知部26から輻輳検出通知を受信したか否かを判定する(ステップS21)。受信していない場合には、LAGトラフィック制御部31は、輻輳検出通知の受信を待つ。
一方、受信した場合には、LAGトラフィック制御部31は、迂回路の候補となる他の送信ポート12bがあるか否かを判定する(ステップS22)。迂回路の候補がない場合の例として、同一LAGに属する他の送信ポート12bが全てリンクダウンしている場合などがある。迂回路の候補となる他の送信ポート12bがない場合には、LAGトラフィック制御部31は、ステップS21に戻って次の輻輳検出通知の受信を待つ。
一方、迂回路の候補となる他の送信ポート12bがある場合には、LAGトラフィック制御部31は、CVマスクベクタのビットの中で迂回路に対応するビットを1に設定する(ステップS23)。そして、LAGトラフィック制御部31は、CVマスクベクタと迂回路のローカル輻輳ベクタ27とのビット毎のANDをとり(ステップS24)、演算結果がAll 0であるか否かを判定する(ステップS25)。All 0でない場合には、LAGトラフィック制御部31は、ステップS21に戻って次の輻輳検出通知の受信を待つ。
一方、All 0である場合には、LAGトラフィック制御部31は、FVマスクベクタのビットの中で迂回の対象となる対象フローの属するフローグループに対応するビットを1に設定する(ステップS26)。そして、LAGトラフィック制御部31は、FVマスクベクタと迂回元送信ポート12bのローカルフローベクタ29とでビット毎のANDをとり(ステップS27)、演算結果がAll 0であるか否かを判定する(ステップS28)。
All 0である場合には、LAGトラフィック制御部31は、対象フローを迂回するフローとして、フローグループカウンタ28の対応するエントリに記録し(ステップS29)、ステップS21に戻る。一方、演算結果がAll 0でない場合には、LAGトラフィック制御部31は、所定時間ウエイトし(ステップS30)、所定回数に到達しているか否かを判定する(ステップS31)。
所定回数に到達していない場合には、LAGトラフィック制御部31は、ステップS27に戻って、再度、FVマスクベクタと迂回元送信ポート12bのローカルフローベクタ29とでビット毎のANDをとる。一方、所定回数に到達した場合には、LAGトラフィック制御部31は、ステップS21に戻る。
このように、LAGトラフィック制御部31は、迂回元送信ポート12bのローカルフローベクタ29を参照することで、出力キュー12cにパケットが格納されていないフローグループに属するフローを迂回することができる。
次に、LAGトラフィック制御部31によるフロー迂回解除の処理のフローについて説明する。図11は、LAGトラフィック制御部31によるフロー迂回解除の処理のフローを示すフローチャートである。図11に示すように、LAGトラフィック制御部31は、輻輳検出通知部26から輻輳解除通知を受信したか否かを判定する(ステップS41)。受信していない場合には、LAGトラフィック制御部31は、輻輳解除通知の受信を待つ。
一方、受信した場合には、LAGトラフィック制御部31は、対応する送信ポート12bのフローグループカウンタ28を参照して迂回フローを検索し(ステップS42)、迂回フローがあるか否かを判定する(ステップS43)。迂回フローがない場合には、LAGトラフィック制御部31は、処理を終了する。
一方、迂回フローがある場合には、LAGトラフィック制御部31は、FVマスクベクタの該当ビットを1に設定し(ステップS44)、FVマスクベクタと迂回先のローカルフローベクタ29とのビット毎のANDをとる(ステップS45)。そして、LAGトラフィック制御部31は、演算結果がAll 0であるか否かを判定する(ステップS46)。
All 0でない場合には、LAGトラフィック制御部31は、ステップS45に戻り、All 0である場合には、迂回しないフローとして、フローグループカウンタ28の対応するエントリに記録する(ステップS47)。
このように、LAGトラフィック制御部31は、迂回先のローカルフローベクタ29を参照することで、出力キュー12cにパケットが格納されていないときに迂回を解除する。したがって、スイッチ10は、迂回の解除に伴うパケットの到着順序の逆転を防ぐことができる。
上述してきたように、実施例1では、輻輳検出通知部26は、輻輳状態でTCPセッション要求を受信した場合に、輻輳検出をLAGトラフィック制御部31に通知する。したがって、LAGトラフィック制御部31は、新たなフローが発生したときにフローを迂回することができ、CPUの負荷を増やさず、他のスイッチ10でパケットの受信順序が逆転することを防ぐことができる。
また、実施例1では、LAGトラフィック制御部31は、ローカルフローベクタ29を参照して、出力キュー12cにパケットが格納されていないフローグループに属するフローを迂回する。したがって、スイッチ10は、既に他のスイッチ10にパケットを送信済みのフローだけを迂回するので、他のスイッチ10でパケットの受信順序が逆転することを防ぐことができる。
また、実施例1では、LAGトラフィック制御部31は、ローカルフローベクタ29を参照して、出力キュー12cにパケットが格納されていないときに迂回を解除する。したがって、スイッチ10は、既に他のスイッチ10にパケットを送信済みのときだけ迂回を解除するので、他のスイッチ10でパケットの受信順序が逆転することを防ぐことができる。
また、実施例1では、輻輳検出通知部26が、キュー長カウンタ12dの値が輻輳しきい値26aを超えると、輻輳を検知してLAGトラフィック制御部31に通知する。したがって、スイッチ10は、輻輳を確実に検知することができる。
また、実施例1では、フローグループカウンタ28の各group counterが0であるか否かは、ローカルフローベクタ29に反映される。したがって、スイッチ10は、ローカルフローベクタ29を用いて出力キュー12cの状態を確認することができる。
また、実施例1では、フローグループ毎に、出力キュー12cにパケットが格納されているかを確認する。フローグループカウンタは、出力キュー12cの数とフローグループカウンタ28のエントリの数の関係を選択することにより、所望のハードウェア規模に抑えることができる。したがって、スイッチ10は、フローグループ毎に迂回の可否を判断することができ、フロー毎に迂回の可否を判断する場合と比較して、スイッチ10のハードウェア量を減らすことができる。
実施例1ではLAGの場合について説明したが、実施例2ではMLAGの場合について説明する。ここで、MLAGとは、複数の装置により実現されるLAGである。図12は、MLAGを説明するための図である。図12に示すように、実施例2に係る情報処理システム3は、S#0〜S#7で表される8台の情報処理装置2と、Leaf#0〜Leaf#3及びSpine#0〜Spine#1で表される6台のスイッチ40とを有する。ここで、リーフ(Leaf)は、情報処理装置2に直接接続するスイッチ40であり、スパイン(Spine)はLeaf以外のスイッチ40である。スイッチ40は、情報処理装置間の通信を中継する装置である。
各リーフは、スパインと接続するための2つのポートUP#0及びUP#1を有する。UP#0は、Spine#0と接続し、UP#1は、Spine#1と接続する。各スパインは、リーフと接続するための4つのポートDP#0〜DP#3を有する。DP#0はLeaf#0と接続し、DP#1はLeaf#1と接続し、DP#2はLeaf#2と接続し、DP#3はLeaf#3と接続する。
各リーフは、Spine#0を経由して他のリーフと通信する経路と、Spine#1を経由して他のリーフと通信する経路を有し、MLAGを構成する。例えば、S#6からS#0宛のパケットは、Leaf#3のUP#0とUP#1のいずれかから送出される。Speine#0-Leaf#0間のリンクがダウンすると、UP#0から送出されたパケットはSpine#0→Spine#1→DP#0経由でLeaf#0に届く。このように、リーフから見てMLAGを実現するSpine#0及びSpine#1は、1つのドメインを構成する。
なお、ISLを用いたスパイン間通信の帯域は、スパイン−リーフ間の通信の帯域と比較すると狭い。また、図12では、説明の便宜上、2つのスパインでドメインを構成する場合を示したが、より多くのスパインでドメインを構成してもよい。
次に、実施例2に係るスイッチ40による経路変更について説明する。図13は、実施例2に係るスイッチ40による経路変更を説明するための図である。図13に示すように、実施例2に係る情報処理システム3は、同一ドメインに属するSpine#0とSpine#1との間で、FDBだけでなく輻輳情報も共有する。そして、Spine#0は、リーフへのいずれかの経路で輻輳状態を検出すると、Spine#1の経路が輻輳していないことを確認してISLを経由する迂回路を使用する。例えば、Spine#0は、DP#0の輻輳状態を検知すると、Spine#1のDP#0が輻輳していないことを確認してSpine#1のDP#0を迂回路として使用する。
また、Spine#0は、DP#0のキュー情報を基に迂回路を使用するフローを選択し、選択したフローをSpine#1経由で迂回する。その後、Spine#0は、DP#0の輻輳状態が解除されると、Spine#1のDP#0の出力キュー12cの情報を確認し、出力キュー12cに迂回したフローのパケットが格納されていないときに迂回しているフローの経路を元に戻す。
このように、Spine#0は、Spine#1と輻輳情報を共有し、Spine#1の経路が輻輳していないことを確認して迂回路を使用することによって、効率の良い経路変更を行うことができる。
次に、実施例2に係るスイッチ40の構成について説明する。図14は、実施例2に係るスイッチ40の構成を示す図である。なお、ここでは説明の便宜上、図2に示した各部と同様の役割を果たす機能部については同一符号を付すこととしてその詳細な説明を省略する。
図14に示すように、スイッチ40は、図2と比較してスイッチングモジュール20の代わりにスイッチングモジュール50を有する。スイッチングモジュール50は、フローグループカウンタ28の代わりにフローグループカウンタ58を有する。フローグループカウンタ58は、フローグループカウンタ28と異なり、迂回先を記憶しない。その理由は、実施例2では、迂回元と迂回先でスパインは異なるが送信ポート12bの番号は同じであるためである。
CPU13は、プログラムを実行することにより、LAGトラフィック制御部41と制御メッセージ送受信部42の機能を実現する。制御メッセージ送受信部42は、他のスパインと制御メッセージを用いて輻輳情報を送受信し、受信した輻輳情報をメモリ14にリモート輻輳ベクタ43及びリモートフローベクタ44として格納する。ここで、リモートとは、他のスイッチ40を表す。これに対して、ローカルは、自スイッチ40を表す。
図15は、スパイン間の制御メッセージを示す図である。図15に示すように、制御メッセージには、Dst MACと、Src MACと、CV(Congestion Vector)と、FV(Flow Vector)とが含まれる。Dst MACは、PDU(Protocol Data Unit)のリザーブMACアドレスであり、01:80:C2:00:00:0fである。Src MACは、制御メッセージを送信するスイッチ40のMACアドレスである。CVは、32個の送信ポート12bのローカル輻輳ベクタ27である。FVは、32個の送信ポート12bの256ビットのローカルフローベクタ29である。
輻輳状態の共有のために使用される情報量は、CVについては、1ビット(輻輳状態)×32(ポート)=32ビット=4バイトであり、FVについては、1ビット(空状態)×256(フローグループ)×32(ポート)=8Kビット=1Kバイトである。したがって、例えば10G(ギガ)のリンクでの帯域使用率は、メッセージ間隔を100μsとすると、(1Kバイト×8ビット/100μs)/10Gbps=0.008であるので、約0.8%にすぎない。
LAGトラフィック制御部41は、LAGトラフィック制御部31と同様の機能を有するが、迂回路の使用可否を判断する場合に、ローカル輻輳ベクタ27の代わりにリモート輻輳ベクタ43を用いる。図16は、迂回路の使用可否判断を説明するための図である。図5と比較すると、図16では、リモート輻輳ベクタ43とCVマスクベクタとの間でビット毎のANDがとられている。
また、LAGトラフィック制御部41は、迂回先のポート番号をフローグループカウンタ58に記録しない。図17は、迂回するフローの記録を説明するための図である。図17に示すように、LAGトラフィック制御部41は、迂回するフローグループを選択すると、フローグループカウンタ58の対応するエントリの迂回を示すビットを1にするが、迂回先のポート番号は記録しない。
また、LAGトラフィック制御部41は、輻輳状態が解除された場合に、ローカルフローベクタ29の代わりにリモートフローベクタ44を用いて迂回先の出力キュー12cの空きを確認した後、迂回を解除する。
次に、制御メッセージ送受信部42による制御メッセージ送受信処理のフローについて説明する。図18は、制御メッセージの送信処理のフローを示すフローチャートであり、図19は、制御メッセージの受信処理のフローを示すフローチャートである。
図18に示すように、制御メッセージ送受信部42は、所定時間が経過したか否かを判定し(ステップS101)、経過していない場合には、所定時間が経過するのを待つ。一方、所定時間が経過した場合には、制御メッセージ送受信部42は、ローカル輻輳ベクタ27及びローカルフローベクタ29の値を輻輳情報として取得し(ステップS102〜ステップS103)、輻輳情報を含む制御メッセージを送信する(ステップS104)。
また、制御メッセージ送受信部42は、図19に示すように、輻輳情報を含む制御メッセージを受信したか否かを判定し(ステップS111)、受信していない場合には、輻輳情報を含む制御メッセージの受信を待つ。
一方、輻輳情報を含む制御メッセージを受信した場合には、制御メッセージ送受信部42は、リモート輻輳ベクタ43及びリモートフローベクタ44の値をメモリ14に格納する(ステップS112〜ステップS113)。
このように、制御メッセージ送受信部42が輻輳情報を含む制御メッセージを送受信することによって、スパインは他のスパインと輻輳情報を共有することができる。
次に、実施例2に係るLAGトラフィック制御部41による迂回フロー選択の処理のフローについて説明する。図20は、実施例2に係るLAGトラフィック制御部41による迂回フロー選択の処理のフローを示すフローチャートである。図20に示すように、LAGトラフィック制御部41は、輻輳検出通知部26から輻輳検出通知を受信したか否かを判定する(ステップS141)。受信していない場合には、LAGトラフィック制御部41は、輻輳検出通知の受信を待つ。
一方、受信した場合には、LAGトラフィック制御部41は、CVマスクベクタのビットの中でローカル輻輳ポートに対応するビットを1に設定する(ステップS142)。そして、LAGトラフィック制御部41は、CVマスクベクタとリモート輻輳ベクタ43とのビット毎のANDをとり(ステップS143)、演算結果がAll 0であるか否かを判定する(ステップS144)。All 0でない場合には、LAGトラフィック制御部41は、ステップS141に戻って次の輻輳検出通知の受信を待つ。
一方、All 0である場合には、LAGトラフィック制御部41は、FVマスクベクタのビットの中で迂回の対象となる対象フローの属するフローグループに対応するビットを1に設定する(ステップS145)。そして、LAGトラフィック制御部41は、FVマスクベクタと迂回元送信ポート12bのローカルフローベクタ29とでビット毎のANDをとり(ステップS146)、演算結果がAll 0であるか否かを判定する(ステップS147)。
All 0である場合には、LAGトラフィック制御部41は、対象フローを迂回するフローとして、フローグループカウンタ58の対応するエントリに記録し(ステップS148)、ステップS141に戻る。一方、演算結果がAll 0でない場合には、LAGトラフィック制御部41は、所定時間ウエイトし(ステップS149)、所定回数に到達しているか否かを判定する(ステップS150)。
所定回数に到達していない場合には、LAGトラフィック制御部41は、ステップS146に戻って、再度、FVマスクベクタと迂回元送信ポート12bのローカルフローベクタ29とでビット毎のANDをとる。一方、所定回数に到達した場合には、LAGトラフィック制御部41は、ステップS141に戻る。
このように、LAGトラフィック制御部41は、リモート輻輳ベクタ43を参照することで、迂回先の輻輳状態を判定することができる。
上述してきたように、実施例2では、制御メッセージ送受信部42が輻輳情報を含む制御メッセージを送受信してリモート輻輳ベクタ43及びリモートフローベクタ44としてメモリ14に書込むことで、スパイン間で輻輳情報を共有する。そして、LAGトラフィック制御部41が、リモート輻輳ベクタ43を用いて迂回先の輻輳状態を確認した後、迂回を行う。また、LAGトラフィック制御部41は、ローカルフローベクタ29を参照して出力キュー12cのパケットが格納されていないフローを迂回するフローとして選択する。したがって、スイッチ40は、迂回によるパケットの到達順序の逆転を防ぐとともに、効率良く迂回を行うことができる。実施例2では、輻輳状態が解除した場合に迂回路を使用しないようにフローの迂回を解除する。したがって、スイッチは、帯域の狭いISLを使用することなく、効率の良いパケット中継を行うことができる。
実施例2ではスパイン間で輻輳情報を共有する場合について説明したが、実施例3ではリーフもスパインの輻輳情報を共有する場合について説明する。図21は、実施例3に係るスイッチによる経路変更を説明するための図である。なお、図21では、実施例3に係るスイッチをスイッチ60と表す。
図21に示すように、Spine#0及びSpine#1は、Leaf#0〜Leaf#3とも輻輳情報を共有する。そして、各リーフは、Spine#0の経路で輻輳状態を検知したら、リーフの他のポートとSpine#1の経路が輻輳していないことを確認して経路を変更する。
例えば、Leaf#3は、Spine#0の経路で輻輳状態を検知したら、UP#1とSpine#1のDP#0とが輻輳していないことを確認して経路を変更する。そして、Leaf#3は、自身のキュー情報を基に、経路を変更するフローを選択して、フローを迂回する。その後、Spine#0の輻輳状態が解除されると、Leaf#3は、迂回路で使用している自身及びSpine#1のキュー情報を確認し、迂回しているフローの経路を元に戻す。
図22A及び図22Bは、実施例3に係るLAGトラフィック制御部による迂回フロー選択の処理のフローを示すフローチャートである。ここで、実施例3に係るLAGトラフィック制御部は、リーフが有するLAGトラフィック制御部である。図22Aに示すように、LAGトラフィック制御部は、輻輳検出通知を受信したか否かを判定する(ステップS241)。受信していない場合には、LAGトラフィック制御部は、輻輳検出通知の受信を待つ。
一方、受信した場合には、LAGトラフィック制御部は、迂回路の候補となる他の送信ポート12bがあるか否かを判定する(ステップS242)。迂回路の候補となる他の送信ポート12bがない場合には、LAGトラフィック制御部は、ステップS241に戻って次の輻輳検出通知の受信を待つ。
一方、迂回路の候補となる他の送信ポート12bがある場合には、LAGトラフィック制御部は、CVマスクベクタのビットの中でスパインの輻輳ポートに対応するビットを1に設定する(ステップS243)。そして、LAGトラフィック制御部は、CVマスクベクタと他のスパインのリモート輻輳ベクタ43とのビット毎のANDをとり(ステップS244)、演算結果がAll 0であるか否かを判定する(ステップS245)。All 0でない場合には、LAGトラフィック制御部は、ステップS241に戻って次の輻輳検出通知の受信を待つ。
一方、All 0である場合には、LAGトラフィック制御部は、迂回路のCVマスクベクタの該当ビットを1に設定する(ステップS246)。そして、LAGトラフィック制御部は、CVマスクベクタと迂回路のローカル輻輳ベクタ27とでビット毎のANDをとり(ステップS247)、演算結果がAll 0であるか否かを判定する(ステップS248)。
All 0でない場合には、LAGトラフィック制御部は、所定時間ウエイトし(ステップS249)、所定回数に到達しているか否かを判定する(ステップS250)。所定回数に到達していない場合には、LAGトラフィック制御部は、ステップS247に戻って、再度、CVマスクベクタと迂回路のローカル輻輳ベクタ27とでビット毎のANDをとる。一方、所定回数に到達した場合には、LAGトラフィック制御部は、ステップS241に戻る。
一方、ステップS248において、演算結果がAll 0である場合には、図22Bに示すように、LAGトラフィック制御部は、FVマスクベクタのビットの中で迂回の対象となる対象フローの属するフローグループに対応するビットを1に設定する(ステップS251)。そして、LAGトラフィック制御部は、FVマスクベクタと迂回元送信ポート12bのローカルフローベクタ29とでビット毎のANDをとり(ステップS252)、演算結果がAll 0であるか否かを判定する(ステップS253)。
All 0である場合には、LAGトラフィック制御部は、対象フローを迂回するフローとして、フローグループカウンタ58の対応するエントリに記録し(ステップS254)、ステップS241に戻る。一方、演算結果がAll 0でない場合には、LAGトラフィック制御部は、所定時間ウエイトし(ステップS255)、所定回数に到達しているか否かを判定する(ステップS256)。
所定回数に到達していない場合には、LAGトラフィック制御部は、ステップS252に戻って、再度、FVマスクベクタと迂回元送信ポート12bのローカルフローベクタ29とでビット毎のANDをとる。一方、所定回数に到達した場合には、LAGトラフィック制御部は、ステップS241に戻る。
図23は、実施例3に係るLAGトラフィック制御部によるフロー迂回解除の処理のフローを示すフローチャートである。図23に示すように、LAGトラフィック制御部は、輻輳解除通知を受信したか否かを判定する(ステップS261)。受信していない場合には、LAGトラフィック制御部は、輻輳解除通知の受信を待つ。
一方、受信した場合には、LAGトラフィック制御部は、輻輳が解除されたスパインのポートに対応する送信ポート12bのフローグループカウンタ58を参照し、迂回フローを検索する(ステップS262)。そして、LAGトラフィック制御部は、迂回フローがあるか否かを判定する(ステップS263)。迂回フローがない場合には、LAGトラフィック制御部は、処理を終了する。
一方、迂回フローがある場合には、LAGトラフィック制御部は、FVマスクベクタの該当ビットを1に設定し(ステップS264)、FVマスクベクタとスパインの迂回先のリモートフローベクタ44とのビット毎のANDをとる(ステップS265)。そして、LAGトラフィック制御部は、演算結果がAll 0であるか否かを判定する(ステップS266)。
LAGトラフィック制御部は、All 0でない場合には、ステップS265に戻り、All 0である場合には、FVマスクベクタと自身の迂回先のローカルフローベクタ29とのビット毎のANDをとる(ステップS267)。そして、LAGトラフィック制御部は、演算結果がAll 0であるか否かを判定する(ステップS268)。
LAGトラフィック制御部は、All 0でない場合には、ステップS267に戻り、All 0である場合には、迂回しないフローとして、フローグループカウンタ58の対応するエントリに記録する(ステップS269)。
上述してきたように、実施例3では、スパインの輻輳情報をリーフが共有するので、スパインで輻輳が発生するとリーフが迂回路に変更する。したがって、スイッチ60は、帯域の狭いISLを使用することなく、効率の良い迂回を行うことができる。
1,3 情報処理システム
2 情報処理装置
10,40,60,90 スイッチ
10a,90a 物理リンク
11a,11b 受信ポート
12a,12b 送信ポート
12c 出力キュー
12d キュー長カウンタ
13 CPU
14 メモリ
20,50,60 スイッチングモジュール
21 パケット受信部
22 FDB記憶部
23 FDB制御部
24 ハッシュ計算部
25 パケット振り分け部
26 輻輳検出通知部
26a 輻輳しきい値
26b 比較部
27 ローカル輻輳ベクタ
28,58 フローグループカウンタ
29 ローカルフローベクタ
31,41 LAGトラフィック制御部
42 制御メッセージ送受信部
43 リモート輻輳ベクタ
44 リモートフローベクタ

Claims (8)

  1. スイッチ装置と、前記スイッチ装置に接続される他のスイッチ装置とを有する情報処理システムにおいて、
    前記スイッチ装置は、
    フローに含まれるパケットをそれぞれ送信する複数のポート部と、
    前記複数のポート部に対応してそれぞれ設けられ、パケットをそれぞれ格納する複数のキュー部と、
    前記複数のキュー部の各々に格納されたパケットの量に基づき、前記複数のポート部のいずれかにおける輻輳状態を検出する検出部と、
    前記検出部が前記複数のポート部のいずれかにおける輻輳状態を検出した場合、前記複数のポート部のうち、前記輻輳状態が検出されたポート部の前記輻輳状態に関する輻輳情報を、前記他のスイッチ装置に接続するスイッチ装置間ポート部を介して当該他のスイッチ装置に通知する通知部と、
    前記他のスイッチ装置から通知された他の輻輳情報に基づき、前記他のスイッチ装置を介した迂回路を使用できるかを判断する判断部と、
    前記複数のキュー部のうち、迂回路として使用されるポート部のキュー部にパケットが格納されていないフロー集合を、対象フロー集合として選択する選択部と、
    前記選択部が選択した対象フロー集合を特定するフロー集合特定情報を記憶する記憶部と、
    前記判断部が、前記他のスイッチ装置を介した迂回路を使用できると判断した場合、前記フロー集合特定情報に基づき、前記対象フロー集合に含まれるフローに属するパケットを、前記スイッチ装置間ポート部を介して前記他のスイッチ装置に送出させる制御部と
    を有することを特徴とする情報処理システム。
  2. 前記輻輳状態が解除されると、前記対象フロー集合に含まれるフローのパケットが迂回路として使用されるポート部のキュー部にパケットが格納されていないときに、迂回を解除する解除部をさらに有することを特徴とする請求項1記載の情報処理システム。
  3. 前記検出部は、前記複数のキュー部にキューの長さをカウントするためにそれぞれ設けられたキュー長カウンタの値と所定の閾値を比較することで前記輻輳状態を検出することを特徴とする請求項1又は2記載の情報処理システム。
  4. フロー集合毎にキュー部にパケットが格納されているか否かを記憶するパケット有無記憶部をさらに有し、
    前記選択部は、パケット有無記憶部を用いて対象フロー集合を選択することを特徴とする請求項1、2又は3記載の情報処理システム。
  5. 前記記憶部は、キュー部に格納されているパケットの数をカウントするカウンタとフローのパケットを迂回するか否かを示す情報とをフロー集合毎に記憶することを特徴とする請求項1〜4のいずれか1つ記載の情報処理システム。
  6. 前記スイッチ装置及び前記他のスイッチ装置はスパインであり、リーフであるスイッチ装置をさらに有し、
    前記通知部は、前記検出部が前記複数のポート部のいずれかにおける輻輳状態を検出した場合、検出されたいずれかのポート部の輻輳状態に関する輻輳情報を、リーフであるスイッチ装置に通知し、
    リーフであるスイッチ装置は、
    前記スイッチ装置から通知された他の輻輳情報に基づき、前記他のスイッチ装置を介した迂回路を使用できるかを判断する迂回判断部
    を有することを特徴とする請求項1〜5のいずれか1つ記載の情報処理システム。
  7. 他のスイッチ装置に接続されるスイッチ装置において、
    フローに含まれるパケットをそれぞれ送信する複数のポート部と、
    前記複数のポート部に対応してそれぞれ設けられ、パケットをそれぞれ格納する複数のキュー部と、
    前記複数のキュー部の各々に格納されたパケットの量に基づき、前記複数のポート部のいずれかにおける輻輳状態を検出する検出部と、
    前記検出部が前記複数のポート部のいずれかにおける輻輳状態を検出した場合、前記複数のポート部のうち、前記輻輳状態が検出されたポート部の前記輻輳状態に関する輻輳情報を、前記他のスイッチ装置に接続するスイッチ装置間ポート部を介して当該他のスイッチ装置に通知する通知部と、
    前記他のスイッチ装置から通知された他の輻輳情報に基づき、前記他のスイッチ装置を介した迂回路を使用できるかを判断する判断部と、
    前記複数のキュー部のうち、迂回路として使用されるポート部のキュー部にパケットが格納されていないフロー集合を、対象フロー集合として選択する選択部と、
    前記選択部が選択した対象フロー集合を特定するフロー集合特定情報を記憶する記憶部と、
    前記判断部が、前記他のスイッチ装置を介した迂回路を使用できると判断した場合、前記フロー集合特定情報に基づき、前記対象フロー集合に含まれるフローに属するパケットを、前記スイッチ装置間ポート部を介して前記他のスイッチ装置に送出させる制御部と
    を有することを特徴とするスイッチ装置。
  8. フローに含まれるパケットをそれぞれ送信する複数のポート部と前記複数のポート部に対応してそれぞれ設けられるとともにパケットをそれぞれ格納する複数のキュー部とを備えるスイッチ装置と、前記スイッチ装置に接続される他のスイッチ装置とを有する情報処理システムの制御方法において、
    前記スイッチ装置が有する検出部が、前記複数のキュー部の各々に格納されたパケットの量に基づき、前記複数のポート部のいずれかにおける輻輳状態を検出し、
    前記検出部が前記複数のポート部のいずれかにおける輻輳状態を検出した場合、前記スイッチ装置が有する通知部が、前記複数のポート部のうち、前記輻輳状態が検出されたポート部の前記輻輳状態に関する輻輳情報を、前記他のスイッチ装置に接続するスイッチ装置間ポート部を介して当該他のスイッチ装置に通知し、
    前記他のスイッチ装置から通知された他の輻輳情報に基づき、前記他のスイッチ装置を介した迂回路を使用できるかを判断し、
    前記スイッチ装置が有する選択部が、前記複数のキュー部のうち、迂回路として使用されるポート部のキュー部にパケットが格納されていないフロー集合を、対象フロー集合として選択し、
    前記スイッチ装置が有する記憶部が、選択された対象フロー集合を特定するフロー集合特定情報を記憶し、
    前記判断部が、前記他のスイッチ装置を介した迂回路を使用できると判断した場合、前記スイッチ装置が有する制御部が、前記フロー集合特定情報に基づき、前記対象フロー集合に含まれるフローに属するパケットを、前記スイッチ装置間ポート部を介して前記他のスイッチ装置に送出させることを特徴とする情報処理システムの制御方法。
JP2015046413A 2015-03-09 2015-03-09 情報処理システム、スイッチ装置及び情報処理システムの制御方法 Active JP6511875B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2015046413A JP6511875B2 (ja) 2015-03-09 2015-03-09 情報処理システム、スイッチ装置及び情報処理システムの制御方法
US15/002,763 US10135761B2 (en) 2015-03-09 2016-01-21 Switch device, control method, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015046413A JP6511875B2 (ja) 2015-03-09 2015-03-09 情報処理システム、スイッチ装置及び情報処理システムの制御方法

Publications (2)

Publication Number Publication Date
JP2016167708A true JP2016167708A (ja) 2016-09-15
JP6511875B2 JP6511875B2 (ja) 2019-05-15

Family

ID=56888574

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015046413A Active JP6511875B2 (ja) 2015-03-09 2015-03-09 情報処理システム、スイッチ装置及び情報処理システムの制御方法

Country Status (2)

Country Link
US (1) US10135761B2 (ja)
JP (1) JP6511875B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10833998B2 (en) * 2017-01-12 2020-11-10 Marvell Israel (M.I.S.L) Ltd. Method and apparatus for flow control
US10855606B2 (en) * 2018-03-07 2020-12-01 Fujitsu Limited Information processing apparatus and information processing system
US11012369B2 (en) * 2019-07-05 2021-05-18 Dell Products L.P. Aggregated switch path optimization system
CN112448862B (zh) * 2019-09-05 2022-08-30 中国移动通信有限公司研究院 一种流量处理方法、装置、设备及计算机可读存储介质
US11784916B2 (en) * 2021-07-23 2023-10-10 EMC IP Holding Company LLC Intelligent control plane communication

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012204937A (ja) * 2011-03-24 2012-10-22 Fujitsu Ten Ltd 通信装置および通信システム

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996097B1 (en) * 1999-05-21 2006-02-07 Microsoft Corporation Receiver-driven layered error correction multicast over heterogeneous packet networks
JP2002111716A (ja) * 2000-10-04 2002-04-12 Nec Corp パケットスイッチ及びそれに用いるマルチキャスト制御方式
US7180857B2 (en) * 2000-11-24 2007-02-20 Matsushita Electric Industrial Co., Ltd Apparatus and method for flow control
JP2002252640A (ja) * 2001-02-23 2002-09-06 Fujitsu Ltd ネットワーク中継装置及び方法並びにシステム
TWI227080B (en) * 2001-05-31 2005-01-21 Via Tech Inc Network switch providing congestion control and method thereof
US8125902B2 (en) * 2001-09-27 2012-02-28 Hyperchip Inc. Method and system for congestion avoidance in packet switching devices
EP1464144A4 (en) * 2001-11-09 2010-09-22 Vitesse Semiconductor Corp MEANS AND METHOD FOR SWITCHING PACKETS OR DATA FRAMES
US6996104B2 (en) * 2002-02-20 2006-02-07 Nokia Corporation Rate allocation and control for multicast services in wireless networks
US7471688B2 (en) * 2002-06-18 2008-12-30 Intel Corporation Scheduling system for transmission of cells to ATM virtual circuits and DSL ports
US7257080B2 (en) * 2002-12-09 2007-08-14 Lsi Corporation Dynamic traffic-based packet analysis for flow control
US7573827B2 (en) * 2003-05-06 2009-08-11 Hewlett-Packard Development Company, L.P. Method and apparatus for detecting network congestion
US7577157B2 (en) * 2003-12-12 2009-08-18 Intel Corporation Facilitating transmission of a packet in accordance with a number of transmit buffers to be associated with the packet
JP4394988B2 (ja) * 2004-03-19 2010-01-06 富士通株式会社 パケット読出し制御方法及び装置
US7613116B1 (en) * 2004-09-29 2009-11-03 Marvell Israel (M.I.S.L.) Ltd. Method and apparatus for preventing head of line blocking among ethernet switches
US7680053B1 (en) * 2004-10-29 2010-03-16 Marvell International Ltd. Inter-device flow control
JP4244940B2 (ja) * 2005-02-24 2009-03-25 日本電気株式会社 ネットワークの品質劣化箇所推定装置、品質劣化箇所推定方法及び品質劣化箇所推定プログラム
US7797467B2 (en) * 2005-11-01 2010-09-14 Lsi Corporation Systems for implementing SDRAM controllers, and buses adapted to include advanced high performance bus features
US20070280232A1 (en) * 2006-05-31 2007-12-06 Wojciech Dec Dynamic delivery of multicast service notification messages
JP4755066B2 (ja) * 2006-10-30 2011-08-24 富士通株式会社 帯域制御装置および帯域制御方法
JP5169296B2 (ja) 2008-02-22 2013-03-27 日本電気株式会社 通信装置、帯域制御通信方法、帯域制御通信プログラムおよびプログラム記録媒体
US8619775B2 (en) * 2008-07-21 2013-12-31 Ltn Global Communications, Inc. Scalable flow transport and delivery network and associated methods and systems
US8427958B2 (en) * 2010-04-30 2013-04-23 Brocade Communications Systems, Inc. Dynamic latency-based rerouting
JP5655933B2 (ja) * 2011-03-19 2015-01-21 富士通株式会社 輻輳制御方法および無線通信装置
JP2012205048A (ja) 2011-03-25 2012-10-22 Nec Corp パケット伝送装置、パケット伝送方法、及びコンピュータプログラム
CN103283192A (zh) * 2011-03-28 2013-09-04 松下电器产业株式会社 中继器、中继器的控制方法以及程序
WO2012130264A1 (en) * 2011-03-29 2012-10-04 Nec Europe Ltd. User traffic accountability under congestion in flow-based multi-layer switches
JP5733131B2 (ja) * 2011-09-22 2015-06-10 富士通株式会社 通信装置及びパス確立方法
JP5991013B2 (ja) * 2012-05-08 2016-09-14 富士通株式会社 基地局及び無線リソース割当て方法
US8995277B2 (en) * 2012-10-30 2015-03-31 Telefonaktiebolaget L M Ericsson (Publ) Method for dynamic load balancing of network flows on LAG interfaces
US9853756B2 (en) * 2012-11-07 2017-12-26 Qualcomm Incorporated Multicast over wireless network with the assistance of power-efficient peer group discovery
US9253096B2 (en) * 2013-03-15 2016-02-02 International Business Machines Corporation Bypassing congestion points in a converged enhanced ethernet fabric
US9473408B1 (en) * 2014-01-14 2016-10-18 Google Inc. Shortest first longer next routing with congestion reduction

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012204937A (ja) * 2011-03-24 2012-10-22 Fujitsu Ten Ltd 通信装置および通信システム

Also Published As

Publication number Publication date
JP6511875B2 (ja) 2019-05-15
US20160269322A1 (en) 2016-09-15
US10135761B2 (en) 2018-11-20

Similar Documents

Publication Publication Date Title
JP5418925B2 (ja) 動的経路分岐システム、動的経路分岐装置、動的経路分岐方法、通信システム、ノード、制御装置、パケット転送方法およびプログラム
US10666563B2 (en) Buffer-less virtual routing
JP5867211B2 (ja) 中継装置、中継装置の制御方法及び中継システム
RU2598815C2 (ru) Система связи, устройство управления, способ связи и программа
US9270598B1 (en) Congestion control using congestion prefix information in a named data networking environment
EP2449735B1 (en) Inter-node link aggregation method and node
EP2434698B1 (en) Method and apparatus for traffic engineering in shortest path bridged networks
JP6511875B2 (ja) 情報処理システム、スイッチ装置及び情報処理システムの制御方法
JP5044537B2 (ja) トランスポート制御サーバ、ネットワークシステム及び集約パス決定方法
CN104980349A (zh) 中继系统以及交换机装置
US11228528B2 (en) Adaptive load balancing between routers in wan overlay networks using telemetry information
US20230017561A1 (en) Network Device, System and Method For Cycle-Based Load Balancing
JP2535874B2 (ja) パケット交換網のル−ティング制御方式
JP2012023582A (ja) 輻輳制御を備えるパケット中継装置、輻輳制御方法およびネットワークシステム
US11502941B2 (en) Techniques for routing data in a network
JP2005176268A (ja) 死活監視を利用したipネットワーク迂回システム
JP2019180076A (ja) ネットワークシステム、ネットワークシステムの経路切換方法、および、通信装置
JPWO2007108054A1 (ja) 通信ノード及び通信経路選択方法
JP2017204785A (ja) 通信装置、通信システム、及び通信装置のパケット転送方法
JP2017208589A (ja) 転送装置及び転送処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180115

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181030

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181205

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190325

R150 Certificate of patent or registration of utility model

Ref document number: 6511875

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150