JP2017143344A - パケット伝送装置,制御装置,及びパケット伝送制御方法 - Google Patents
パケット伝送装置,制御装置,及びパケット伝送制御方法 Download PDFInfo
- Publication number
- JP2017143344A JP2017143344A JP2016022048A JP2016022048A JP2017143344A JP 2017143344 A JP2017143344 A JP 2017143344A JP 2016022048 A JP2016022048 A JP 2016022048A JP 2016022048 A JP2016022048 A JP 2016022048A JP 2017143344 A JP2017143344 A JP 2017143344A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- port
- flow
- switch
- output
- 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.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/38—Flow based routing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
【課題】パケットの転送時間を短縮化する。【解決手段】パケット伝送装置2は、パケットが入力される複数の入力ポートと、パケットが出力される複数の出力ポートと、パケットの識別情報と、前記パケットに対するパケット処理が対応付けられて記憶されている第1テーブル44と、入力ポートと出力ポートとが対応付けられて記憶されている第2テーブル45と、入力されたパケットの入力ポートが前記第2テーブルに記憶されている場合は、前記入力ポートに対応付けられている出力ポートからパケットを出力し、前記パケットの入力ポートが前記第2テーブルに記憶されていない場合は、前記第1テーブルに基づくパケット処理がされるよう制御する制御部43とを含む。【選択図】図4
Description
本発明は、パケット伝送装置,制御装置,及びパケット伝送制御方法に関する。
Software Defined Networking(SDN)は、ソフトウェアでネットワーク全体の挙動
を制御する技術である。SDNを実現する標準として、OpenFlow(オープンフロー)技術がある。OpenFlowネットワークは、データ転送機能を備える“OpenFlowスイッチ”(OF−SW:以下「スイッチ」と表記することもある)と、経路制御を司る“OpenFlowコントローラ”(OFC:以下「コントローラ」と表記することもある)を備え、コントローラとスイッチとは“OpenFlowプロトコル”に従って、コミュニケーションを図る。
を制御する技術である。SDNを実現する標準として、OpenFlow(オープンフロー)技術がある。OpenFlowネットワークは、データ転送機能を備える“OpenFlowスイッチ”(OF−SW:以下「スイッチ」と表記することもある)と、経路制御を司る“OpenFlowコントローラ”(OFC:以下「コントローラ」と表記することもある)を備え、コントローラとスイッチとは“OpenFlowプロトコル”に従って、コミュニケーションを図る。
各スイッチは、自身に入力されたパケットに対する動作(アクション)を決定するための情報が記憶されたフローテーブルを備える。OpenFlowでは、パケットが持つヘッダ情報(イーサネットアドレス、VLANタグ、IPアドレス、TCP/UDPポート番号など)の任意の組
み合わせにより識別されるデータの集合体を“フロー”と呼ぶ。フローテーブルは、フローに係る情報が格納されたエントリ(以下、「フローエントリ」と呼ぶ)の集合体であり、各フローエントリは、 “マッチ条件(ルールとも呼ばれる)”,“アクション(Action)”,及び“統計情報(Statistics)”で構成される。
み合わせにより識別されるデータの集合体を“フロー”と呼ぶ。フローテーブルは、フローに係る情報が格納されたエントリ(以下、「フローエントリ」と呼ぶ)の集合体であり、各フローエントリは、 “マッチ条件(ルールとも呼ばれる)”,“アクション(Action)”,及び“統計情報(Statistics)”で構成される。
“マッチ条件”は、パケットの識別情報であり、パケットを特定するためのパラメータで形成される。“アクション”は、“マッチ条件”に合致したパケットに対する処理内容(動作:アクション)を示す情報である。“統計情報”は、マッチ条件に合致し、アクションに基づく処理が行われたパケット数のような統計情報を示す。スイッチは、フローテーブルを参照し、受信されたパケットが合致するマッチ条件を含むエントリを特定し、特定されたエントリで定義されたアクション(例えば、或るポートからパケットを出力する)を行うことができる。
フローに係る情報(フローエントリ)は、コントローラによって生成され、“OpenFlowプロトコル”を用いて各スイッチに送信される。各スイッチは、コントローラから受信したフローをフローテーブルに記憶する。このように、コントローラは、コントローラ自身の配下にある各スイッチが有するフローテーブルを一元管理する。
近年、SDNやInternet of Things(IoT)の進展に伴って、ネットワークのトラフィックパターンの多様化が進んでいる。例えば、HyperText Transfer Protocol(HTT
P)トラフィックやセンサデータなどの、狭帯域(細粒度)のフローが存在する。一方、データセンタ(DC)間、或いはDC内のバックアップに係るバルクデータ転送や、ストリーミングデータの転送など、広帯域での転送が要求されるフローが増大している。
P)トラフィックやセンサデータなどの、狭帯域(細粒度)のフローが存在する。一方、データセンタ(DC)間、或いはDC内のバックアップに係るバルクデータ転送や、ストリーミングデータの転送など、広帯域での転送が要求されるフローが増大している。
広帯域での転送が要求されるフローを効率的にネットワークに収容する技術の一例とし
て、パケット網及び光コア網を含むマルチレイヤ網において、光伝送装置が光カットスルーを行う技術がある。しかし、光伝送装置は高価である。このため、光伝送装置よりも安価なパケット伝送装置を用いて、広帯域での転送が要求されるフローを広帯域で転送できることが望まれている。
て、パケット網及び光コア網を含むマルチレイヤ網において、光伝送装置が光カットスルーを行う技術がある。しかし、光伝送装置は高価である。このため、光伝送装置よりも安価なパケット伝送装置を用いて、広帯域での転送が要求されるフローを広帯域で転送できることが望まれている。
しかし、パケット伝送装置としてOF−SWが用いられる場合には以下の問題があった。OF−SWは、パケット毎にフローテーブルの参照(ルックアップ、すなわち、パケットと合致するマッチ条件を含むフローエントリの探索)を行い、パケットの出力ポートを決定する。広帯域での転送が要求されるフローでは、大容量のデータが転送されるので、大量のパケットに対するフローテーブルの参照が発生する。
ところが、フローテーブルの検索時間はパケットの転送に寄与しないので、フローテーブルの参照が頻繁に発生すると、パケット転送時間が長くなるおそれがあった。特に、フローテーブルに少なくない数のフローエントリが登録される場合には、パケットに合致するフローエントリの検出までに時間がかかることがある。この場合には、さらにパケット転送時間がかかるおそれがあった。
一側面において、本発明は、パケットの伝送時間を短縮可能な技術を提供することを目的とする。
本発明の一態様は、パケット伝送装置である。パケット伝送装置は、パケットが入力される複数の入力ポートと、パケットが出力される複数の出力ポートと、パケットの識別情報と、前記パケットに対するパケット処理が対応付けられて記憶されている第1テーブルと、入力ポートと出力ポートとが対応付けられて記憶されている第2テーブルと、入力されたパケットの入力ポートが前記第2テーブルに記憶されている場合は、前記入力ポートに対応付けられている出力ポートからパケットを出力し、前記パケットの入力ポートが前記第2テーブルに記憶されていない場合は、前記第1テーブルに基づくパケット処理がされるよう制御する制御部とを含む。。
本発明の一態様によれば、パケットの伝送時間を短縮することができる。
以下、図面を参照して、パケット伝送装置,制御装置,及びパケット伝送制御方法の実施形態について説明する。実施形態の構成は例示であり、実施形態の構成に限定されない。
実施形態に係るパケット伝送装置は、パケット伝送装置は、パケットが入力される複数の入力ポートと、パケットが出力される複数の出力ポートと、パケットの識別情報と、前記パケットに対するパケット処理が対応付けられて記憶されている第1テーブルと、入力ポートと出力ポートとが対応付けられて記憶されている第2テーブルと、入力されたパケットの入力ポートが前記第2テーブルに記憶されている場合は、前記入力ポートに対応付けられている出力ポートからパケットを出力し、前記パケットの入力ポートが前記第2テーブルに記憶されていない場合は、前記第1テーブルに基づくパケット処理がされるよう制御する制御部とを含む。
実施形態に係るパケット伝送装置は、例えば、制御装置によって制御される。制御装置は、送信部を含む。送信部は、第1のフローの経路上にあるパケット伝送装置に対し、前記第1のフローのパケットの識別情報と、前記パケットに対するパケット処理とを対応づけて第1テーブルに記憶する指示を送信するとともに、前記第1のフローと異なる第2のフローの経路上にある少なくとも1つのパケット伝送装置に対し、前記第2の対象フローに割り当てられた入力ポートと出力ポートとの対応関係を第2テーブルへ記憶する指示を送信する。
但し、パケット伝送装置に含まれる第1テーブル及び第2テーブルへの記憶内容(登録内容)が、制御装置から送信されるケース以外に、パケット伝送装置に直接入力したり、記憶内容が記憶された記憶装置をパケット伝送装置に接続したりすることで行われることはあり得る。
<ネットワーク構成>
実施形態では、SDNネットワークシステムの一例として、OpenFlowネットワークシステムについて説明する。但し、実施形態に係る構成は、OpenFlow以外のSDNネットワークに適用し得る。
実施形態では、SDNネットワークシステムの一例として、OpenFlowネットワークシステムについて説明する。但し、実施形態に係る構成は、OpenFlow以外のSDNネットワークに適用し得る。
図1は、実施形態に係るネットワークシステムの構成例を示す。図1において、ネットワークシステムは、コントローラ(OFC)1と、コントローラ1と接続され、コントローラ1によって制御される複数のスイッチ(OF−SW)2とを含む。但し、図1では、コントローラ1と各スイッチ2との通信線は、破線で図示している。コントローラ1は、「パケット伝送装置の制御装置」の一例であり、複数のスイッチ2は、「複数のパケット伝送装置」の一例である。
図1に示す例では、複数のスイッチ2として、スイッチA〜Hが例示されている。各スイッチ2は、パケットの送信又は受信に使用される複数のポートを有している。複数のポートは、「複数の入力ポート」と「複数の出力ポート」との一例である。図1の例では、スイッチAは、5つのポート(ポート1〜5)を有し、スイッチB〜Fのそれぞれは、4つのポート(ポート1〜4)を有し、スイッチG及びスイッチHは、それぞれ2つのポート(ポート1,2)を有している。但し、各スイッチ2が有するポートの数は、適宜設定可能である。
スイッチAのポート1,ポート2,ポート3には、ホスト1,ホスト2,ホスト3が接続されている。スイッチAのポート4は、スイッチEのポート1に接続されている。スイッチAのポート5は、スイッチBのポート3に接続されている。スイッチBのポート1はホスト4に接続されており、スイッチBのポート2はホスト5に接続されている。スイッチBのポート4は、スイッチEのポート2に接続されている。
各スイッチ2が有する各ポートは、以下のようにして、スイッチ2又はホストと接続されている。ホストは、パケットを送受信する端末である。図1の例では、9つのホスト1〜9が例示されている。
スイッチCのポート1は、ホスト6に接続されており、スイッチCのポート2は、ホスト7に接続されている。スイッチCのポート3は、スイッチFのポート1に接続されており、スイッチCのポート4は、スイッチDのポート3に接続されている。スイッチDのポート1は、ホスト8と接続されており、スイッチDのポート2は、ホスト9と接続されている。スイッチDのポート4は、スイッチFのポート2と接続されている。
スイッチEのポート3は、スイッチGのポート1に接続されており、スイッチEのポート4は、スイッチHのポート1に接続されている。スイッチFのポート3は、スイッチGのポート2に接続されており、スイッチFのポート4は、スイッチHのポート2に接続されている。
OFC1は、複数のスイッチ2(スイッチA〜H)で形成されるネットワークに対し、ホスト間でパケットを転送するためのパス(経路)を設定することができる。スイッチ2(スイッチA〜Hのそれぞれ)は、フローエントリが登録されるフローテーブルを備える。フローエントリは、パケットの識別情報である「マッチ条件」と、マッチ条件に合致するパケットに対する動作(アクション)を定義した「アクション」とを含む。マッチ条件は、「パケットの識別情報」の一例であり、アクションは「アクション情報」の一例である。
パケットの識別情報として使用可能なパラメータ(値)として、例えば、以下のパラメータが使用可能である。「マッチ条件」として、以下に説明する複数のパラメータの何れか1つ、或いは2以上のパラメータの組み合わせが適用される。
・“Switch Port (Ingress Port):受信(入力)ポート”,
・“MAC src:送信元MAC(Media Access Control)アドレス”
・“MAC dst:宛先MACアドレス”,
・“Eth type:プロトコル種別”,
・“VLAN−ID”,
・“VLAN Priority: VLAN PCP(Priority Code Point)値”,
・“IP src:送信元IPアドレス”,
・“IP dst:宛先IPアドレス”,
・“IP Protocol number:プロトコル番号”,
・“IP ToS bits:ToS(Type of Service)値”
・“Transport src port:送信元ポート番号”,
・“Transport dst port:宛先ポート番号”
このように、パラメータは、パケットに含まれた情報(アドレス情報,仮想LANの識別子、プロトコルタイプなど)を含む。さらにパラメータは、パケットの入力ポートなどのパケットに含まれていない情報を含み得る。
・“Switch Port (Ingress Port):受信(入力)ポート”,
・“MAC src:送信元MAC(Media Access Control)アドレス”
・“MAC dst:宛先MACアドレス”,
・“Eth type:プロトコル種別”,
・“VLAN−ID”,
・“VLAN Priority: VLAN PCP(Priority Code Point)値”,
・“IP src:送信元IPアドレス”,
・“IP dst:宛先IPアドレス”,
・“IP Protocol number:プロトコル番号”,
・“IP ToS bits:ToS(Type of Service)値”
・“Transport src port:送信元ポート番号”,
・“Transport dst port:宛先ポート番号”
このように、パラメータは、パケットに含まれた情報(アドレス情報,仮想LANの識別子、プロトコルタイプなど)を含む。さらにパラメータは、パケットの入力ポートなどのパケットに含まれていない情報を含み得る。
また、「アクション」は、例えば、以下のようなアクションの定義を含む。
・“ALL:他の全ポートへ転送”,
・“CONTROLLER:コントローラへ転送”,
・“LOCAL:特定の1ポートへ転送”
・“TABLE:フローテーブルのアクションを実行”,
・“IN_PORT:入力ポートへ送信(入力ポートから出力)”
・“ALL:他の全ポートへ転送”,
・“CONTROLLER:コントローラへ転送”,
・“LOCAL:特定の1ポートへ転送”
・“TABLE:フローテーブルのアクションを実行”,
・“IN_PORT:入力ポートへ送信(入力ポートから出力)”
「アクション」には、複数のアクションを定義することができる。また、「アクション」の定義がないときには、“Drop:パケットの廃棄”が行われるようにしても良い。フローエントリは、統計情報を含むことができる。統計情報として、或るマッチ条件に合致するパケット数やパケット量がカウントされる。このような統計情報は、アクションを実行するための条件として使用することができる。また、統計情報は、コントローラ1へ送信され、コントローラ1によるスイッチ2の制御に使用される。「アクション」は、「パケットに対するパケット処理」の一例である。
コントローラ1は、各スイッチ2向けのフローエントリを生成し、各スイッチ2へ送る。スイッチ2は、コントローラ1から提供されたフローエントリをフローテーブルに登録する。スイッチ2は、パケットが受信されると、フローテーブルを参照し、受信されたパケットと合致する「マッチ条件」を含むフローエントリを特定し、特定したフローエントリ中の「アクション」によって定義された動作を行う。「アクション」が、例えば、或るポートからのパケットの出力を示す場合、パケットは、或るポートから送信される。
図2(A)は、パスの設定の一例を示す。ホスト2からホスト6へパケットを転送するために、スイッチA−スイッチE−スイッチG−スイッチF−スイッチCを辿るパスを設定する場合を仮定する。
コントローラ1は、上記パスを辿ってパケットがホスト2からホスト6へ転送されるように、スイッチA,スイッチE,スイッチG,スイッチF及びスイッチC向けのフローエントリを作成する。フローエントリは、コントローラ1からスイッチA,スイッチE,スイッチG,スイッチF及びスイッチCに送信される。
スイッチA,スイッチE,スイッチG,スイッチF及びスイッチCは、コントローラ1から受信したフローエントリをフローテーブルに登録する。例えば、スイッチA,スイッチE,スイッチG,スイッチFで登録されるフローエントリのマッチ条件として、ホスト2から送信されたパケットを検出するための共通の「マッチ条件」が定義される。但し、各スイッチ2でホスト2からのパケットを検出できる限り、異なるマッチ条件を定義可能である。
一方、アクションとして、例えば、スイッチAのフローエントリでは、スイッチAのポート4からのパケット出力が定義される。スイッチEのフローエントリでは、アクションとして、スイッチEのポート3からのパケット出力が定義される。スイッチGのフローエントリでは、スイッチGのポート2からのパケット出力が定義される。スイッチFのフローエントリでは、アクションとして、スイッチFのポート1からのパケット出力が定義さ
れる。スイッチCのフローエントリでは、アクションとして、スイッチCのポート1からのパケット出力が定義される。
れる。スイッチCのフローエントリでは、アクションとして、スイッチCのポート1からのパケット出力が定義される。
これによって、ホスト2から送信されたパケットは、スイッチA,スイッチE,スイッチG,スイッチF及びスイッチCを経てホスト6で受信される。なお、上記経路でホスト6からホスト2へパケットを送信する場合には、ホスト6からホスト2へパケットを送信するためのフローエントリも、スイッチA,スイッチE,スイッチG,スイッチF及びスイッチCに登録される。
実施形態では、広帯域でのパケット伝送が要求されたフロー(広帯域フロー)が「対象フロー」として扱われる。広帯域フローは、例えば、データセンタのバルクデータやストリーミングデータのような広帯域の回線乃至環境での伝送が好ましい、又は要求されるデータのフローである。換言すれば、広帯域フローは、広帯域フロー以外のフロー(通常のフローと呼ぶ)の通信速度より速い通信速度でのパケット伝送が要求されたフローである。対象フロー(広帯域フロー)は、「第2のフロー」の一例であり、対象フロー以外のフロー(通常フロー)は、「第1のフロー」の一例である。
実施形態では対象のフローに関して広帯域での伝送が要求された場合に、対象フロー以外のフローに対する通信速度より速い通信速度で対象フローのパケットを伝送するためのパス(Limited Path:LPATH(Lパス)と呼ぶ)を設定する。対象フローは、新規に発生するフローであっても良く、既存のフローであっても良い。すなわち、広帯域での伝送要求は、新規のフロー発生に合わせて発生する場合と、既存のフローに関して発生する場合とがある。また、Lパスは、対象フローのルート上にある全てのスイッチ2を対象として設定されてもよく、複数のスイッチ2の少なくとも1つを対象として設定されても良い。
例えば、図2(B)に示すように、ホスト3からホスト7へのフローが新規に発生し、当該フローを対象フローとする広帯域でのパケットの伝送要求が発生したと仮定する。この場合、例えば、対象フローの経路(ルート)の全体に亘って以下のようなLパスが設定される。
(ホスト3からホスト7へのLパス)
ホスト3→スイッチAのポート3→スイッチAのポート4→スイッチEのポート1→スイッチEのポート3→スイッチGのポート1→スイッチGのポート2→スイッチFのポート2→スイッチFのポート1→スイッチCのポート3→スイッチCのポート2→ホスト7
(ホスト3からホスト7へのLパス)
ホスト3→スイッチAのポート3→スイッチAのポート4→スイッチEのポート1→スイッチEのポート3→スイッチGのポート1→スイッチGのポート2→スイッチFのポート2→スイッチFのポート1→スイッチCのポート3→スイッチCのポート2→ホスト7
Lパスの設定にあたり、コントローラ1は、対象フローの経路上にある各スイッチ2に関して対象フローの入力ポート及び出力ポートを割り当てる。このとき、Lパスのルート上にあるスイッチ2については、対象フローに割り当てられた入力ポート及び出力ポートは、対象フローの専有に設定される。換言すれば、コントローラ1は、Lパス上のスイッチにおいて、対象フローに割り当てられた入出力ポートを、対象フロー以外のフロー(通常フロー)に割り当てない。このように、Lパスが経由するポート(対象フローに専有されるポート。Lポートと呼ぶ)は、通常フローの送受信に使用されない。Lパスの入出力ポートが対象フローに専有されることによって、対象フローに割り当てる帯域が確保される。
実施形態では入出力ポートが対象フローに専有される場合について説明する。但し、入出力ポートの専有を要しない場合もあり得る。例えば、対象のフローに対して所望の帯域が確保される場合には、対象のフロー以外のフローと入力ポートと出力ポートとの少なくとも一方を共有する場合もあり得る。
図2(B)の例では、スイッチAのポート3及びポート4は、Lパスの入力ポート及び
出力ポートとして使用される。スイッチEのポート1及びポート3,スイッチGのポート1及びポート2,スイッチFのポート3及びポート1,スイッチCのポート3及びポート2も同様である。
出力ポートとして使用される。スイッチEのポート1及びポート3,スイッチGのポート1及びポート2,スイッチFのポート3及びポート1,スイッチCのポート3及びポート2も同様である。
実施形態では、Lパスの設定時に、入出力ポートの専有状態を確保する。Lポートを経由する通常フローがある場合、当該通常パスのルートは、Lポート以外のポートを経由するように変更される。すなわち、通常パスは、Lパスのルート以外のルートに退避する。図2(B)の例では、ホスト2からホスト6へのルートが、Lパスを経由しないように以下のように変更される。
(ホスト2からホスト6への通常パス(退避ルート))
ホスト2→スイッチAのポート2→スイッチAのポート5→スイッチBのポート3→スイッチBのポート4→スイッチEのポート2→スイッチEのポート4→スイッチHのポート1→スイッチHのポート2→スイッチFのポート4→スイッチFのポート2→スイッチDのポート4→スイッチDのポート3→スイッチCのポート4→スイッチCのポート1→ホスト6
(ホスト2からホスト6への通常パス(退避ルート))
ホスト2→スイッチAのポート2→スイッチAのポート5→スイッチBのポート3→スイッチBのポート4→スイッチEのポート2→スイッチEのポート4→スイッチHのポート1→スイッチHのポート2→スイッチFのポート4→スイッチFのポート2→スイッチDのポート4→スイッチDのポート3→スイッチCのポート4→スイッチCのポート1→ホスト6
スイッチ2において、対象フローにより専有される入力ポート及び出力ポートを示したエントリが、フローテーブルと異なるテーブル(Lポートテーブルと呼ぶ)に登録される。Lポートテーブルに登録された入力ポートで受信されたパケットは、フローテーブルの参照なく、上記入力ポートに関連づけられた出力ポートから出力される。このような、フローテーブルの参照回避を「カットスルー」と呼ぶ。Lポートテーブルは、パケットの出力ポートの決定にあたり、フローテーブル(第1テーブルの一例)に優先して参照される第2のテーブルの一例である。対象フロー以外のフロー(通常フロー)のパケットに関する出力ポートの決定は、フローテーブルの参照によって行われる。
フローテーブルの参照回避によって、スイッチ2内における対象フローのパケットの伝送時間を短縮することができる。すなわち、対象フローに対する通信速度を、フローテーブルを参照する通常フローよりも上げることができる。さらに、入出力ポートの専有によって、他のフローが排除されることで、対象フローの処理量(伝送量)を増やすことができる。これによって、広帯域フローのパケットを、スイッチ(OF−SW)2を用いて効率的に転送できる。換言すれば、OF−SWで、粒度の小さいデータのフローと、これより粒度が大きいデータのフローとを収容可能となる。以下、実施形態の詳細について説明する。
<情報処理装置>
図3は、コントローラ1及びスイッチ2のそれぞれとして使用可能な情報処理装置(コンピュータ)10のハードウェア構成例を示す。情報処理装置10として、例えば、パーソナルコンピュータ(PC),ワークステーション(WS)のような汎用コンピュータを適用できる。或いは、サーバマシンのような専用のコンピュータを適用することもできる。但し、上述したPC,WS,サーバマシン以外のコンピュータを用いる場合もある。
図3は、コントローラ1及びスイッチ2のそれぞれとして使用可能な情報処理装置(コンピュータ)10のハードウェア構成例を示す。情報処理装置10として、例えば、パーソナルコンピュータ(PC),ワークステーション(WS)のような汎用コンピュータを適用できる。或いは、サーバマシンのような専用のコンピュータを適用することもできる。但し、上述したPC,WS,サーバマシン以外のコンピュータを用いる場合もある。
図3に示すように、情報処理装置10は、例えば、バスを介して相互に接続された、Central Processing Unit(CPU)11と、メモリ12と、出力装置13と、入力装置1
4と、通信インタフェース(通信IF)15とを含む。CPU11は、「制御部」、「制御装置」の一例であり、メモリ12は、「記憶装置」、「記憶部」、「記憶媒体」の一例である。
4と、通信インタフェース(通信IF)15とを含む。CPU11は、「制御部」、「制御装置」の一例であり、メモリ12は、「記憶装置」、「記憶部」、「記憶媒体」の一例である。
メモリ12は、主記憶装置と補助記憶装置とを含む。主記憶装置は、プログラムの展開領域,CPU11の作業領域,データやプログラムの記憶領域又はバッファ領域として使用される。主記憶装置は、例えばRandom Access Memory(RAM),或いはRAMとRead
Only Memory(ROM)との組み合わせで形成される。
Only Memory(ROM)との組み合わせで形成される。
補助記憶装置は、例えば、ハードディスクドライブ(HDD),Solid State Drive(
SSD),フラッシュメモリ,Electrically Erasable Programmable Read-Only Memory
(EEPROM)などの不揮発性記憶媒体で形成される。補助記憶装置は、データやプログラムの記憶領域として使用される。
SSD),フラッシュメモリ,Electrically Erasable Programmable Read-Only Memory
(EEPROM)などの不揮発性記憶媒体で形成される。補助記憶装置は、データやプログラムの記憶領域として使用される。
出力装置13は、データや情報を出力する。出力装置13は、例えば、ディスプレイ,プリンタなどである。入力装置14は、情報やデータの入力に使用される。入力装置14は、例えば、キー,ボタン,マウス等のポインティングデバイス,タッチパネルなどである。
通信IF15は、ネットワークに接続され、他の通信装置とデータを送受信するインタフェース回路である。通信IF15として、例えば、Local Area Network(LAN)カードやネットワークインタフェースカード(NIC)と呼ばれる通信インタフェースカードが適用される。
CPU11は、プロセッサの一例であり、メモリ12中の主記憶装置及び補助記憶装置の少なくとも一方に記憶されたプログラムを主記憶装置にロードして実行する。これによって、CPU11は、情報処理装置10をコントローラ1、或いはスイッチ2として動作させる。
CPU11は、MPU(Microprocessor)、プロセッサとも呼ばれる。CPU11は、単一のプロセッサに限定される訳ではなく、マルチプロセッサ構成であってもよい。また、単一のソケットで接続される単一のCPUがマルチコア構成を有していても良い。CPU11で行われる処理の少なくとも一部は、CPU以外のプロセッサ、例えば、Digital Signal Processor(DSP)、Graphics Processing Unit(GPU)、数値演算プロセッサ、ベクトルプロセッサ、画像処理プロセッサ等の専用プロセッサで行われても良い。また、CPU11で行われる処理の少なくとも一部は、集積回路(IC)、その他のディジタル回路で行われても良い。また、集積回路やディジタル回路はアナログ回路を含んでいても良い。集積回路は、LSI,Application Specific Integrated Circuit(ASIC),プログラ
マブルロジックデバイス(PLD)を含む。PLDは、例えば、Field-Programmable Gate Array(FPGA)を含む。CPU11で行われる処理の少なくとも一部は、プロセッサと集
積回路との組み合わせにより実行されても良い。組み合わせは、例えば、マイクロコントローラ(MCU),SoC(System-on-a-chip),システムLSI,チップセットなどと呼ばれる。
マブルロジックデバイス(PLD)を含む。PLDは、例えば、Field-Programmable Gate Array(FPGA)を含む。CPU11で行われる処理の少なくとも一部は、プロセッサと集
積回路との組み合わせにより実行されても良い。組み合わせは、例えば、マイクロコントローラ(MCU),SoC(System-on-a-chip),システムLSI,チップセットなどと呼ばれる。
<コントローラ及びスイッチの構成>
図4は、コントローラ(OFC)1及びスイッチ(OF−SW)2が有する機能を模式的に示す図である。図3に示した情報処理装置10は、CPU11がコントローラ1用のプログラムを実行することによって、図4に示す構成要素を含む装置(コントローラ1)として動作することができる。また、情報処理装置10は、CPU11がスイッチ2用のプログラムを実行することによって、図4に示す構成要素を含む装置(スイッチ2)として動作することができる。
図4は、コントローラ(OFC)1及びスイッチ(OF−SW)2が有する機能を模式的に示す図である。図3に示した情報処理装置10は、CPU11がコントローラ1用のプログラムを実行することによって、図4に示す構成要素を含む装置(コントローラ1)として動作することができる。また、情報処理装置10は、CPU11がスイッチ2用のプログラムを実行することによって、図4に示す構成要素を含む装置(スイッチ2)として動作することができる。
図4において、コントローラ1は、経路計算部31,フローエントリ管理部32,メッセージ送受信部33,フロースケジューラ34を含む。また、コントローラ1は、フローテーブル35,ネットワークデータベース(NW DB)36,LポートDB37を含む。フロースケジューラ34は、Lパス要求の受付部(LPATH要求受付部)38と、経路処
理部39とを含む。
理部39とを含む。
本実施形態では、情報処理装置10のCPU11が、プログラムの実行によって、経路計算部31,フローエントリ管理部32,メッセージ送受信部33,フロースケジューラ34として動作する。フローテーブル35,NW DB36,LポートDB37は、メモリ12上に作成される。
NW DB36は、ネットワーク構成に関する情報を記憶している。例えば、NW DB36は、ネットワークを形成するスイッチ2(スイッチA〜H)の情報と、各スイッチ2が有する複数のポートの情報と、ネットワークに設定されている通常パスのルート(使用されているポート)を示す情報を記憶する。
また、NW DB36は、各ポートで送受信される、単位時間当たりのパケット量やパケット数を記憶することもできる。パケット数やパケット量は、スイッチ2の負荷を示す情報として使用できる。但し、スイッチ2の負荷を示す情報として、上記したパケット数やパケット量以外の情報を使用しても良い。また、NW DB36は、Lパスが設定された場合における通常パスの退避ルートの情報を予め記憶しておくこともできる。
経路計算部31は、例えば、入力装置14を用いて入力されたパケットを送受信するホストの指定情報と、NW DB36に記憶されたネットワークの構成情報とを用いて、ホスト間の経路を計算する。例えば、ホスト3とホスト6とが指定された場合に、経路計算部31は、図2を用いて説明したような通常パスのルートを計算する。
フローエントリ管理部32は、経路計算部31によって算出されたルートでパケットが転送されるためのフローエントリを生成する。このとき、フローエントリ管理部32は、ルート上にある各スイッチ2向けのフローエントリを作成する。作成されたフローエントリは、フローテーブル35に記憶されて一元管理される。また、作成されたフローエントリは、所定のOpenFlowメッセージ(OFメッセージ)に含まれて、メッセージ送受信部33から対応するスイッチ2へ送信される。メッセージ送受信部33は、OpenFlowのプロトコルに従い、各スイッチ2との間でOFメッセージを送受信する。
フロースケジューラ34は、Lパス要求受付部38と、経路処理部39とを含む。Lパス要求の受付部38は、Lパスの設定要求(Lパス要求)を受け付ける。ユーザが新規に広帯域トラフィックを要求してくる場合、または既存トラフィックが途中から広帯域となった場合、受付部38は、Lパス要求を受付ける。Lパス要求は、例えば、入力装置14から入力される。あるいは、他の通信装置から受信する場合もある。メッセージ送受信部33は、「送信部」の一例であり、フロースケジューラ34は、「制御部」の一例である。
経路処理部39は、NW DB36及びLポートDB37に記憶された情報を用いて、Lパスのルートの計算、Lパスの設定に伴い退避させる通常パスの代替ルートの計算、計算結果に応じたスイッチ2向けのフローエントリの生成、などを行う。
図5は、LポートDB37の説明図である。LポートDB37は、Lパス上にあるスイッチ(OF−SW)2と、スイッチ2が備えるLポートとの対応関係を示す情報を記憶する。例えば、ホスト3からホスト7へ、図2を用いて説明した経路のLパスが設定される場合、LポートDB37の登録内容は、図5に示す内容となる。
図4に戻って、スイッチ(OF−SW)2は、メッセージ送受信部41と、パケット処理部42と、入出力処理部43とを含む。パケット処理部42は、フローテーブル44を含み、入出力処理部43は、Lポートテーブル45を含む。
実施形態では、CPU11が、メッセージ送受信部41,パケット処理部42,及び入出力処理部43として動作する例について説明する。但し、メッセージ送受信部41,パケット処理部42,及び入出力処理部43が行う処理の少なくとも一部は、CPU11以外のプロセッサ,集積回路、ディジタル回路によって行われても良い。例えば、入出力処理部43の処理は集積回路やネットワークプロセッサ(NWP)のような専用のプロセッサを用いて行われ、パケット処理部42の処理は、CPU11によって行われるようにしても良い。
フローテーブル44は、1以上のフローエントリを含む。フローテーブル44には、コントローラ1から供給されたフローエントリが登録される。フローエントリの追加、変更及び削除は、コントローラ1によって制御される。フローテーブル44は、「パケットの識別情報と、前記パケットに対するパケット処理が対応づけられて記憶されている第1テーブル」の一例である。フローエントリは「第1のエントリ」の一例である。入出力処理部43は、「制御部」の一例であり、パケット処理部42は、「処理部」の一例である。
図6は、Lポートテーブル45のデータ構造例を示す。Lポートテーブル45には、対象フローに割り当てられた入力ポートと出力ポートとの対応関係を示す情報(入力ポート及び出力ポートの識別子)を含むエントリが登録される。
図6の例は、図5に示したLパスが設定される場合において,スイッチAのLポートテーブル45に登録される情報の例を示す。図6では、スイッチAのポート3(P3)とポート4(P4)とがホスト3−ホスト7間のLパスの入力ポート及び出力ポートとして割り当てられていることを示す。なお、図6の登録例は、ホスト3とホスト7との間に双方向のLパスが設定されている例を示し、順方向(ホスト3→ホスト7(P3→P4)のエントリと、逆方向(ホスト7→ホスト3(P4→P3))のエントリとが登録されている。
なお、Lポートテーブル45に登録されるポートの識別子(ポート番号)は、複数の物理ポートを論理的に集約(アグリゲート)した論理ポートの識別子であってもよい。複数の物理ポートを一つの回線として用い、1つのフローのパケットを複数のポートを用いて転送する場合があるからである。Lポートテーブル45は、「入力ポートと出力ポートとが対応づけられて記憶されている第2テーブル」の一例であり、Lポートテーブル45に登録されるエントリは、「第2のエントリ」の一例である。
メッセージ送受信部41は、OpenFlowのプロトコルに従い、コントローラ(OFC)1との間でOFメッセージを送受信する。
パケット処理部42は、入出力処理部43からパケットを受け取り、フローテーブル44を参照して、パケットと合致するマッチ条件を含むフローエントリを探索する。パケット処理部42は、対応するフローエントリが検出(ヒット)すると、検出されたフローエントリ中の「アクション」に従った動作(アクション)を行う。
アクションは、「指定ポート(特定の1ポート)からパケットを出力する」との定義を含む。パケット処理部42は、アクションで指定されたポートの情報とともに、パケットを入出力処理部43へ送る。このようにパケット処理部42は、フローテーブル44の参照によって、パケットを出力するポートを決定する。
入出力処理部43は、複数のポートを有する。複数のポートは、「複数の入力ポート」及び「複数の出力ポート」の一例である。スイッチ2が備える複数のポート間の接続(折
り返しを含む)を行い、各ポートから入力されたパケットを、出力先のポートに接続し、パケットを出力先のポートから出力させる。
り返しを含む)を行い、各ポートから入力されたパケットを、出力先のポートに接続し、パケットを出力先のポートから出力させる。
図7は、入出力処理部43の処理例を示すフローチャートである。図7の処理部は、各ポートからパケットが入力されることを契機に開始される。01では、入出力処理部43は、パケットの入力ポート(入力ポートと一致するエントリ)がLポートテーブル45に登録されているか否かを判定する。入力ポートがLポートテーブル45に登録されている場合には、02に処理が進み、そうでない場合には、処理が03に進む。
02では、入出力処理部43は、Lポートテーブル45で指定された出力ポートからパケットを出力する。すなわち、入出力処理部43は、入力ポートと一致するエントリに含まれた出力ポートにパケットを接続し、当該出力ポートからパケットを出力する。
03では、入出力処理部43は、パケットの出力ポートをパケット処理部42に問い合わせる。例えば、入出力処理部43は、パケットをパケット処理部42に転送する。これにより、パケット処理部42は、フローテーブル44の参照によって、パケットの出力ポートを決定する。決定された出力ポートを示す情報及びパケットは、入出力処理部43に渡される。
上記処理は、以下のように変形できる。例えば、パケットは入出力処理部43で保持しておき、入出力処理部43は、パケットのマッチ条件と照合する情報をパケット処理部42へ送り、パケット処理部42から、出力ポートの決定結果(出力ポートの指定)を受け取る。この場合も、入出力処理部43は、フローテーブル44の参照によって得られた出力ポートの指定情報を取得することができる。
04では、入出力処理部43は、パケット処理部42から指定された出力ポートからパケットを出力する。このように、入出力処理部43は、Lポートテーブル45を参照し、パケットの入力ポートを含むエントリがLポートテーブルに登録されていれば、パケット処理部42に対するパケットの出力ポートの問い合わせを行わない。入出力処理部43は、Lポートテーブル45において入力ポートと関連づけられた出力ポートからパケットを出力する。すなわち、フローテーブル44の参照(パケット処理部42の処理)がカットスルーされる。
これに対し、Lポートテーブル45に登録された入力ポート及び出力ポート以外のポート(通常パスのポート)から入力されるパケットについては、フローテーブル44の参照によって出力ポートが決定される。入出力処理部43は、決定された(指定された)出力ポートからパケットを出力する。
図4の例では、入出力処理部43は、ポート1〜6(P1〜P6)と接続されており、ポート1(P1)とポート4(P4)、ポート2(P2)とポート6(P6)との組み合わせは、通常パスのパケット転送に使用される。このため、パケット処理部42の処理(フローテーブル44の参照)を経由している。これに対し、ポート3(P3)とポート5(P5)との組み合わせは、専有ポート(Lポート)であるので、パケット処理部42の処理がカットスルーされる。
<動作例>
次に、実施形態の動作例について説明する。一例として、図2の左側に示したような、ホスト2からホスト6への通常パスが設定されている状態において、Lパス要求に応じて図2の右側に示すようなLパスを設定する場合の動作及び処理を説明する。
次に、実施形態の動作例について説明する。一例として、図2の左側に示したような、ホスト2からホスト6への通常パスが設定されている状態において、Lパス要求に応じて図2の右側に示すようなLパスを設定する場合の動作及び処理を説明する。
図8は、Lパス設定時におけるコントローラ1の処理例を示すフローチャートである。図8の処理は、例えば、Lパス要求の受付部38がLパス要求を受け付けることによって開始される。実施形態では、ホスト3からホスト7へのLパスの新規設定が要求された場合を例として説明する。
11の処理では、フロースケジューラ34は、Lポートを通らない経路(ルート)があるか否かを判定する。経路がないと判定された場合には、図8の処理が終了する。この場合Lパスは設定されない。これに対し、経路があると判定された場合には、処理が12へ進む。
11の処理において、フロースケジューラ34は、LポートDB37を参照し、Lポートを通らないルートの有無をチェックする。図2の例では、この時点で、LポートDB37にLポートは登録されていない。したがって、フロースケジューラは、Lポートを通らない経路(ルート)があると判定し、処理が12へ進む。
12の処理では、フロースケジューラ34は、経路処理部39を用いて、Lパスの経路(ルート)を決定する。例えば、NW DB36を参照して、図2を用いて説明したような経路(ルート)を決定することができる。或いは、既存の通常パス(ホスト2→ホスト6)のルートを用い、Lパスのルートを決定することができる。
13の処理では、フロースケジューラ34は、通常パスのフロー(通常フロー)を退避させるためのLポートを通らない経路(ルート)があるか否かを判定する。13の処理は、例えば、NW DB36に記憶されたネットワークの構成情報、或いは、退避路の情報を用いて判定される。図2の例では、図2の右側に示したようなホスト2からホスト6への退避ルート(迂回ルート)が見つかるので、13の判定はYesとなる。退避ルートがない場合には、図8の処理が終了し、Lパスは設定されない。
14の処理では、フロースケジューラ34は、Lパス上を通常フローを退避させる。すなわち、フロースケジューラ34は、通常フローのパケットを退避ルートで転送するためのフローエントリを含んだOFメッセージ(FlowModメッセージ)を生成し、対応するス
イッチ2へ送信する。OFメッセージの送信は、メッセージ送受信部33によって行われる。図2の例では、退避ルート上にあるスイッチA,スイッチB,スイッチE,スイッチH,スイッチF,スイッチD,スイッチCに、OFメッセージが送信される。
イッチ2へ送信する。OFメッセージの送信は、メッセージ送受信部33によって行われる。図2の例では、退避ルート上にあるスイッチA,スイッチB,スイッチE,スイッチH,スイッチF,スイッチD,スイッチCに、OFメッセージが送信される。
図9は、FlowModメッセージを受信したスイッチ(OF−SW)2の処理例を示すフロ
ーチャートである。FlowModメッセージは、メッセージ送受信部41で受信され、パケッ
ト処理部42に渡される。
ーチャートである。FlowModメッセージは、メッセージ送受信部41で受信され、パケッ
ト処理部42に渡される。
パケット処理部42は、FlowModメッセージに基づいて、フローテーブル44を更新す
る(21)。例えば、スイッチAのパケット処理部42は、ホスト2からのパケットがポート4ではなくポート5から出力されるように、FlowModメッセージ中の指示に従い、フ
ローテーブル44のフローエントリを更新する。
る(21)。例えば、スイッチAのパケット処理部42は、ホスト2からのパケットがポート4ではなくポート5から出力されるように、FlowModメッセージ中の指示に従い、フ
ローテーブル44のフローエントリを更新する。
また、スイッチBのパケット処理部42は、ホスト2からのパケットをポート4から出力するためのフローエントリをフローテーブル44に追加する。このようにして、残りの退避ルート上の各スイッチ2でも、フローテーブル44が更新される。
なお、各スイッチ2のフローテーブルの更新に伴って、コントローラ1のフローテーブル35も同様に更新される。なお、必要に応じて、退避によって通常フローのルートから外れたスイッチ2(例えばスイッチG)に対し、通常フロー向けのフローエントリの削除
を指示するOFメッセージが送信されるようにしても良い。
を指示するOFメッセージが送信されるようにしても良い。
図8の15では、Lパスモードがオンに設定される。すなわち、フロースケジューラ34は、Lパスのルート上にあるスイッチ2向けに、Lポートテーブル45用のエントリ(第2のエントリと称する)を生成する。第2のエントリを含むメッセージ(Lポート設定メッセージ)は、Lパス上の各スイッチ2へ送信される。Lポート設定メッセージの送信は、例えば、メッセージ送受信部33で行われる。
図10は、Lポート設定メッセージ受信時におけるスイッチ2の処理例を示すフローチャートである。Lポート設定メッセージは、例えば、メッセージ送受信部41で受信され、入出力処理部43に渡される。
図10の22の処理において、入出力処理部43は、Lポートテーブル45にLポート設定メッセージ中の第2のエントリを書き込む(登録する)。これによって、入出力処理部43は、第2のエントリで指定された入力ポートから入力されたホスト3からのパケットを当該第2のエントリで指定された出力ポートから出力し、パケット処理部42の処理をカットスルーする状態となる。
図8に戻って、16の処理では、フロースケジューラ34は、Lポートをデータベースに記録する。すなわち、フロースケジューラ34は、Lパスの情報を、LポートDB37に登録する。これによって、LポートDB37には、図5に示したような内容が登録される。Lパスの情報は、新たなLパス要求時に使用される。
なお、図8の処理では、13及び14の処理において、Lパスの設定により対象フロー以外のフローを退避ルートに退避させる。但し、既存のフローが存在しないルートにLパスを設定する場合もあり得る。この場合、13及び14の処理は省略可能である。既存のフローが存在するか否かは、例えば、NW DB36に、既存のフローのルートを記憶しておき、Lパスのルートを12の処理で決定したときに、既存のルートと重複する部分があるか否かを判定することによって行うことができる。
<実施形態の効果>
実施形態では、スイッチ2(パケット伝送装置)は、コントローラ1(制御装置)から供給される、通常フロー(第1のフロー)のフローエントリ(パケットの識別情報に対するパケット処理)をフローテーブル44(第1テーブル)に登録する。また、スイッチ2は、広帯域フロー(対象フロー:第1のフローと異なる第2のフロー)のパケットの入力ポート及び出力ポートの対応関係を示す第2エントリをLポートテーブル45(第2テーブル)に登録する。
実施形態では、スイッチ2(パケット伝送装置)は、コントローラ1(制御装置)から供給される、通常フロー(第1のフロー)のフローエントリ(パケットの識別情報に対するパケット処理)をフローテーブル44(第1テーブル)に登録する。また、スイッチ2は、広帯域フロー(対象フロー:第1のフローと異なる第2のフロー)のパケットの入力ポート及び出力ポートの対応関係を示す第2エントリをLポートテーブル45(第2テーブル)に登録する。
スイッチ2の入出力処理部43は、第2エントリで特定される入力ポートによって受信される対象フローのパケットを当該第2エントリで特定する出力ポートから出力する。これによって、フローテーブル44の参照(パケット処理部42の処理)を回避(カットスルー)する。
フローテーブル44の参照のカットスルー(回避)によって、スイッチ2内における対象フローのパケットに係る処理時間が短縮される。また、Lポートテーブル45を用いた判定は、パケットの入力ポートがLポートテーブル45に登録されているかの判定であり、パケットが有するパラメータ(パケットのヘッダ情報)を参照しない。すなわち、入力ポートの判定は、通常のフローテーブルにおけるマッチ条件とパケットのマッチングよりも単純な処理である。このため、Lポートテーブル45を用いた出力ポートの決定に要する時間は、フローテーブル44の用いた出力ポート決定に要する時間より短くできる。
また、フローテーブル44には、全ての通常パスに対するフローエントリが登録されるため、エントリ数が多数、或いは膨大となり、マッチ条件がパケットと合致するフローエントリの探索に時間がかかる場合がある。これに対し、Lポートテーブル45は、通常パスより少ないLパスについてのエントリが登録される。この点でも、出力ポートの決定に要する時間を短くできる。
これらによって、Lパスの回線速度を通常パスより速めることができる。スイッチ2におけるパケット転送時間を短くでき、広帯域フローのパケットを高速で転送することが可能となる。また、頻繁なフローテーブル44のルックアップ(パケット処理部42の処理)が回避されることで、スイッチ2の負荷を低減することができる。
なお、広帯域フローのパケットについて、フローテーブルのルックアップ回数を減らす方法として、以下が考えられる。例えば、複数のパケットを纏めたフローテーブルの参照を行う方法(パケットバッチングと呼ばれる)が考えられる。或いは、パケットのMaximum Transmission Unit (MTU)のサイズを大きくする(例えば1500byteから9000byteにする)方法が考えられる。実施形態で説明したフローテーブルの参照を回避する方法は、上記のフローテーブルのルックアップの回数を減らす方法よりも、スイッチ2におけるパケットの滞留時間を短くすることができる。
また、Lパス設定時に、対象フローに専有される入力ポートと出力ポートとの少なくとも一方が対象フロー以外のフローのパケット転送に使用されている場合には、パケット処理部42は、以下を行う。すなわち、パケット処理部42は、対象フロー以外のフローを退避ルートで転送するためのフローテーブル更新を行う。
すなわち、パケット処理部42は、第2テーブルに対応関係が登録された入力ポート及び出力ポートの少なくとも一方が前記対象フロー以外のフローによって使用中である場合に、以下を行う。すなわち、パケット処理部42は、対象フロー以外のフローのパケットが入力ポート及び出力ポート以外のポートを用いて転送されるように第1テーブルを更新する。
このようにして、他のフローが退避ルートに退避されることで、所定フローによるLポートの専有状態を確保する。対象フローがLポートを専有し、対象フロー以外のフローに対する処理が排除されることで、対象フローに対するパケット処理の効率を高めることができる。
なお、実施形態では、複数のスイッチ2の動作をコントローラ1が一元的に管理するために、各スイッチ2に対するフローエントリや第2のエントリの生成及び供給をコントローラ1が行っている。但し、各スイッチ2に供給されるフローエントリ及び第2のエントリは、コントローラ1以外の装置との通信や、フローエントリや第2のエントリを記憶した記憶媒体からの読み出し等によって各スイッチ2で取得されるようにしても良い。なお、第2のフローが広帯域フローである例について説明したが、広帯域フロー以外のフローが第2のフローとして扱われる場合もあり得る。
<変形例1>
上述した例では、ホスト間における対象フローの経路の全てをLパスに設定する例について説明した。但し、Lパスは、ホスト間の経路の一部に設定されても良い。例えば、図11(A)に示すように、ホスト2からホスト6へのパケットの通常フローと、ホスト3からホスト7への通常フローが存在する(図11(A)の矢印で示す経路参照)と仮定する。このとき、スイッチGが高負荷状態であると仮定する。
上述した例では、ホスト間における対象フローの経路の全てをLパスに設定する例について説明した。但し、Lパスは、ホスト間の経路の一部に設定されても良い。例えば、図11(A)に示すように、ホスト2からホスト6へのパケットの通常フローと、ホスト3からホスト7への通常フローが存在する(図11(A)の矢印で示す経路参照)と仮定する。このとき、スイッチGが高負荷状態であると仮定する。
各スイッチ2は、自身の負荷状況を、定期的に、或いはコントローラ1からの要求に応じてコントローラ1へ送ることができる。コントローラ1は、各スイッチ2から報告される負荷状態に基づいて、各スイッチ2が高負荷か否かを判定する。コントローラ1は、スイッチGが高負荷と判定すると以下の処理を行う。
すなわち、コントローラ1は、ホスト3からホスト7へのフローに関して、スイッチGのポート1とスイッチGのポート2との間の経路をLパスにする(スイッチEとスイッチGとの間、及びスイッチGとスイッチFとの間をLパスにする)設定を行う。
このとき、スイッチGのポート1とポート2との間を、ホスト3からホスト7へのフローに専有させるため、ホスト2からホスト6へのフローのルートは、スイッチEからスイッチHへ進む退避ルートに変更される。この結果、ホスト3からホスト6へ転送されるパケットがスイッチGを経由するのが回避される。これによって、スイッチGの処理負荷が軽減される。
このような、経路の一部をLパスとする設定は、図8,図9及び図10に示した処理で実行できる。具体的には、図8の15の処理で、スイッチGに、第2エントリを含むLポート設定メッセージを送信し、スイッチGがLポートテーブル45に第2エントリを登録することでなされる。
<変形例2>
実施形態のコントローラ1及びスイッチ2は、以下のように変形できる。すなわち、Lパスは、Lパスの設定要求に応じて所定時間継続する一時的なパスとし、或るフローが長時間に亘ってスイッチ2のポートを専有しないようにしても良い。
実施形態のコントローラ1及びスイッチ2は、以下のように変形できる。すなわち、Lパスは、Lパスの設定要求に応じて所定時間継続する一時的なパスとし、或るフローが長時間に亘ってスイッチ2のポートを専有しないようにしても良い。
図12は、変形例2に係るコントローラ1及びスイッチ2の構成例を示す。図12に示すコントローラ1は、フロースケジューラ34がタイマ51をさらに含む点で、図4に示したコントローラ1と異なる。
図13は、変形例2におけるコントローラ1の処理例を示すフローチャートである。11〜16までの処理は、図8に示した処理と同じであるので説明を省略する。17の処理で、フロースケジューラ34は、タイマ51をONにして、所定期間(タイマ設定時間)の計時を開始する。
18の処理において、フロースケジューラ34は、タイマ51の満了、すなわちタイマ設定時間の経過を検出すると、カットスルーの解除処理を行う(19の処理)。すなわち、フロースケジューラ34は、Lポートテーブル45の第2エントリの削除指示を含むメッセージを生成する。削除指示のメッセージは、メッセージ送受信部33を介してスイッチ2へ送信される。
図14は、削除指示メッセージを受信した場合におけるスイッチ2の処理例を示すフローチャートである。図14の33の処理において、削除指示メッセージを受信した入出力処理部43は、第2エントリに対応するフローエントリを生成する。このとき、削除が指示された第2エントリ中の「入力ポート」がフローエントリのマッチ条件に設定される。また、削除が指示された第2エントリ中の「出力ポートへのパケット出力」がフローエントリのアクションに設定される。フローエントリは、パケット処理部42に与えられ、パケット処理部42がフローエントリをフローテーブル44に登録する。
34の処理では、入出力処理部43は、削除対象の第2エントリをLポートテーブル4
5から削除する。このとき、Lポートテーブル45の登録エントリ数が零になる場合には、Lポートテーブル45を削除しても良い。この場合、新たなLパスの設定を契機に、Lポートテーブル45が生成される。
5から削除する。このとき、Lポートテーブル45の登録エントリ数が零になる場合には、Lポートテーブル45を削除しても良い。この場合、新たなLパスの設定を契機に、Lポートテーブル45が生成される。
入出力処理部43は、第2エントリを削除すると、第2エントリの削除完了を示すメッセージをコントローラ1へ送信する。また、パケット処理部42は、フローテーブル44の変更を示す(追加されたフローエントリを含む)OFメッセージをコントローラ1へ送る。コントローラ1のフローエントリ管理部32は、OFメッセージ中のフローエントリをフローテーブル35に登録し、スイッチ2との同期をとる。
36では、パケット処理部42は、周期的に、例えば、単位時間の経過毎に、33の処理で追加されたフローエントリを用いて転送されたパケットの数又は量(対象フローのパケット数又はパケット量)の計測結果を含むOFメッセージを生成する。OFメッセージは、メッセージ送受信部41を介してコントローラ1へ送信される。
図13に戻って、19の処理が終了すると、20の処理において、フロースケジューラ34は、削除指示に係るLポートの情報(Lパスの情報)をLポートDB37から削除する。
図13の21Aの処理において、フロースケジューラ34は、図14の36の処理でスイッチ2から送信された統計情報を参照し、パケット数又はパケット量が所定の閾値を超過するか否かを判定する(22Aの処理)。パケット数又はパケット量が所定の閾値を超過する場合、対象フロー(大容量のデータ転送)が継続していると判定される。これに対し、パケット数又はパケット量が閾値未満であれば、対象フロー(大容量のデータ転送)が終了していると判定される。
パケット数又はパケット量が所定の閾値を超過する場合、フロースケジューラ34は、Lパス要求が発行された場合と同様の処理、すなわち、11以降の処理を行い、第2エントリを削除したルートについてLパスを再設定する。
以上説明したように、変形例2では、入出力処理部43は、「所定時間の経過に応じて前記第2テーブルから前記入力ポート及び出力ポートの対応関係を削除」する処理を行う。また、入出力処理部43は、パケット処理部42は、「前記入力ポートに入力されるパケットを前記出力ポートから出力することを示すアクション情報を前記第1テーブルに登録ための処理」を行う。さらに、入出力処理部43は、「当該アクション情報を用いて転送されるパケットの統計情報を制御装置に送信する処理」を行う。
コントローラ1では、メッセージ送受信部33が、「前記第2テーブルからの前記対応関係の削除指示を送信」する。また、フロースケジューラ34(制御部)は、「前記対応関係で特定される出力ポートから出力されるパケットの統計情報を削除指示を受信したパケット伝送装置から受信」する。フロースケジューラ34は、「パケットの統計情報に基づいて前記対象フローに係る入力ポートと出力ポートとの対応関係の送信を制御」する。
これによって、変形例2では、コントローラ1は、タイマ51の満了を契機に第2エントリを削除してカットスルーを解除し、入出力ポートが対象フロー以外のフローにも割り当て可能とする。その後、削除された第2エントリで特定されるルート上で閾値以上のデータ量のパケット転送が行われていると判定される場合に、Lパスの再設定を行い、大容量のデータ転送に合わせて通信速度を上昇させる(対象フローに対する広帯域化を図る)ことができる。
なお、上記した変形例2の説明では、タイマ設定時間をコントローラ1が計時し、タイマ設定時間の満了を契機に削除指示を送信している。この構成に代えて、図15に示すように、Lポートテーブル45への第2エントリの登録(22)を契機に、タイマ設定時間野の計時をスイッチ2で行い(図15、32の処理)、タイマ設定時間の経過後に、33以降の処理が行われるようにしても良い。この場合、コントローラ1でのタイマ51の計時及び削除指示メッセージの送信は省略可能である。
<変形例3>
図16は、実施形態の変形例3に係るコントローラ1及びスイッチ2の構成例を示す。図16に示すように、変形例3に係るコントローラ1は、フロースケジューラ34がさらにポート情報取得部52を含む点で、変形例2(図12)と異なる。一方、スイッチ2は、ポートを監視して、出力ポートから出力されるパケット量やパケット数を計測し、計測結果をコントローラ1へ送るポート監視部46を備えている。
図16は、実施形態の変形例3に係るコントローラ1及びスイッチ2の構成例を示す。図16に示すように、変形例3に係るコントローラ1は、フロースケジューラ34がさらにポート情報取得部52を含む点で、変形例2(図12)と異なる。一方、スイッチ2は、ポートを監視して、出力ポートから出力されるパケット量やパケット数を計測し、計測結果をコントローラ1へ送るポート監視部46を備えている。
変形例3では、スイッチ2は、Lポートテーブル45に登録された入力ポートと出力ポートとの対応関係を用いたパケットの転送状況を示す情報をコントローラ1(制御装置)へ送信する。また、スイッチ2は、コントローラ1からの「前記転送状況に基づく指示に応じて前記対応関係を前記第2テーブルから削除する」処理を行う。
また、変形例3では、フロースケジューラ34(制御部)は、対象フローの経路上にあるスイッチ2(パケット伝送装置)のそれぞれから、対応関係を用いたパケットの転送状況を受信する。フロースケジューラ34は、転送状況に基づいて、対象フローの経路上にあるスイッチ2(パケット伝送装置)のそれぞれに、対応関係をLポートテーブル45(第2テーブル)から削除する指示を供給する。
具体的には、変形例3では、以下のような動作及び処理が行われる。図17は、変形例3におけるコントローラ1の処理例を示すフローチャートである。図18は、変形例3におけるスイッチ2の処理例を示すフローチャートである。図17における11〜16の処理は、実施形態(図8)と同じであるので説明を省略する。
スイッチ2では、Lポート設定メッセージを受信して第2エントリをLポートテーブル45に書き込むと、タイマ設定時間を計時する(32A)。タイマ設定時間が経過すると、ポート監視部46がポートの統計情報(例えば、各ポートから出力される、単位時間当たりのパケット量やパケット数)をスイッチ2へ送信する(37)。
コントローラ1のフロースケジューラ34は、ポート監視部46からのポートの統計情報(ポート情報)を取得する(図17の23)。フロースケジューラ34は、統計情報(パケット量又はパケット数)が所定の閾値を超過していない否か(或いは、所定範囲に低下しているか否か)を判定する(図17の24)。
パケット量又はパケット数が閾値を超過していない(所定範囲に低下している)場合には、フロースケジューラ34は、第2エントリの削除指示を生成し、対応するスイッチ2へ送信する(図17の19)。
スイッチ2では、削除指示を受信すると(図18の38)、入出力処理部43が、第2エントリがLポートテーブル45を削除し、削除が完了すると、スイッチ2へ完了報告が送信される(図18の39)。
第2エントリの削除完了がスイッチ2から報告されると、フロースケジューラ34は、LポートDB37から対応するエントリを削除する(図17の20)。なお、スイッチ2
におけるタイマ設定時間の計時は、第2エントリが削除されるまで、定期的に実行される。
におけるタイマ設定時間の計時は、第2エントリが削除されるまで、定期的に実行される。
また、図17及び図18の処理では、スイッチ2がタイマ設定時間を計時している。但し、コントローラ1がタイマ設定時間を計時し、タイマ設定時間が満了すると、コントローラ1がスイッチ2に統計情報の送信を要求し、ポート監視部46が要求に応じて統計情報を送信するようにしても良い。
変形例3は、Lポートの設定(対象フローによるポートの専有)が維持されたままで、タイマ設定時間が経過する毎に、専有されたポートにおけるパケット量やパケット数が所定範囲に低下しているかが判定される。所定範囲に低下していると判定されることは、対象フローの終了を意味する。変形例3によれば、対象フローの終了を検出して、第2エントリをLポートテーブル45から削除して、ポートの専有状態を解除することができる。第2エントリの削除に応じて、第2実施形態と同様の33〜36の処理が行われるようにしても良い。以上説明した実施形態の構成は、適宜組み合わせることができる。
1・・・コントローラ(OFC)
2・・・スイッチ(OF−SW)
10・・・情報処理装置(コンピュータ)
11・・・CPU
12・・・メモリ
15・・・通信インタフェース
33,41・・・メッセージ送信部
34・・・フロースケジューラ
42・・・パケット処理部
43・・・入出力テーブル
44・・・フローテーブル
45・・・Lポートテーブル
2・・・スイッチ(OF−SW)
10・・・情報処理装置(コンピュータ)
11・・・CPU
12・・・メモリ
15・・・通信インタフェース
33,41・・・メッセージ送信部
34・・・フロースケジューラ
42・・・パケット処理部
43・・・入出力テーブル
44・・・フローテーブル
45・・・Lポートテーブル
Claims (13)
- パケットが入力される複数の入力ポートと、
パケットが出力される複数の出力ポートと、
パケットの識別情報と、前記パケットに対するパケット処理が対応付けられて記憶されている第1テーブルと、
入力ポートと出力ポートとが対応付けられて記憶されている第2テーブルと、
入力されたパケットの入力ポートが前記第2テーブルに記憶されている場合は、前記入力ポートに対応付けられている出力ポートからパケットを出力し、前記パケットの入力ポートが前記第2テーブルに記憶されていない場合は、前記第1テーブルに基づくパケット処理がされるよう制御する制御部と
を含むパケット伝送装置。 - 前記第2テーブルには、広帯域でのパケット伝送が要求された対象フローに割り当てられた入力ポートと出力ポートとが対応づけられて記憶される
請求項1に記載のパケット伝送装置。 - 前記第2テーブルに記憶された入力ポート及び出力ポートの少なくとも一方が前記第2テーブルに記憶された入力ポート及び出力ポートを用いてパケットが転送される対象フロー以外のフローによって使用中である場合に、前記対象フロー以外のフローのパケットが前記入力ポート及び前記出力ポート以外のポートを用いて転送されるように前記第1テーブルを更新する処理部
をさらに含む請求項1又は2に記載のパケット伝送装置。 - 前記制御部は、所定時間の経過に応じて前記第2テーブルから前記入力ポート及び出力ポートの対応関係を削除する処理と、前記第2テーブルから削除された入力ポートに入力されるパケットを前記第2テーブルから削除された出力ポートから出力することを示すパケット処理を前記第1テーブルに記憶させる処理と、当該パケット処理を用いて転送されるパケットの統計情報を制御装置に送信する処理とを行う
請求項1から3のいずれか1項に記載のパケット伝送装置。 - 前記制御部は、前記第2テーブルに記憶された入力ポートと出力ポートとの対応関係を用いたパケットの転送状況を示す情報を制御装置へ送信し、前記制御装置からの前記転送状況に基づく指示に応じて前記対応関係を前記第2テーブルから削除する
請求項1から3のいずれか1項に記載のパケット伝送装置。 - 第1のフローの経路上にあるパケット伝送装置に対し、前記第1のフローのパケットの識別情報と、前記パケットに対するパケット処理とを対応づけて第1テーブルに記憶する指示を送信するとともに、前記第1のフローと異なる第2のフローの経路上にある少なくとも1つのパケット伝送装置に対し、前記第2のフローに割り当てられた入力ポートと出力ポートとの対応関係を第2テーブルへ記憶する指示を送信する送信部
を含むパケット伝送装置の制御装置。 - 前記第2のフローは、広帯域でのパケット伝送が要求されるフローである
請求項6に記載のパケット伝送装置の制御装置。 - 前記送信部は、前記第2テーブルに対応関係が記憶された入力ポート及び出力ポートの少なくとも一方が前記第1のフローによって使用中である場合に、前記第1のフローのパケットが前記第2テーブルに対応関係が記憶された入力ポート及び出力ポート以外のポートを用いて転送されるパケット処理を前記第1テーブルへ記憶する指示を送信する
請求項6又は7に記載のパケット伝送装置の制御装置。 - 前記送信部は、前記第2のフローの経路上にある複数のパケット伝送装置のうち、負荷が閾値を超過する少なくとも1つのパケット伝送装置に対し、前記第2のフローに割り当てられた入力ポートと出力ポートとの対応関係を第2テーブルへ記憶する指示を送信する請求項6から8のいずれか1項に記載のパケット伝送装置の制御装置。
- 前記送信部は、前記第2テーブルからの前記入力ポートと出力ポートとの対応関係の削除指示を送信し、
前記対応関係で特定される出力ポートから出力されるパケットの統計情報を、前記削除指示を受信したパケット伝送装置から受信し、前記パケットの統計情報に基づいて前記第2のフローに係る入力ポートと出力ポートとの対応関係を前記第2テーブルに記憶する指示の送信を制御する制御部
をさらに含む請求項5から7のいずれか1項に記載のパケット伝送装置の制御装置。 - 前記第2のフローの経路上にあるパケット伝送装置のそれぞれから受信される、前記第2テーブルに記憶された入力ポートと出力ポートとの対応関係を用いたパケットの転送状況に基づいて、前記第2のフローの経路上にあるパケット伝送装置のそれぞれに、前記第2テーブルに記憶された入力ポートと出力ポートとの対応関係を前記第2テーブルから削除する指示を供給する制御部
をさらに含む請求項6から10のいずれか1項に記載のパケット伝送装置の制御装置。 - パケットが入力される複数の入力ポートと、パケットが出力される複数の出力ポートとを有するパケット伝送装置が、
パケットの識別情報と、前記パケットに対するパケット処理とを対応付けて第1テーブルに記憶し、
入力ポートと出力ポートとを対応づけて第2テーブルに記憶し、
入力されたパケットの入力ポートが前記第2テーブルに記憶されている場合は、前記入力ポートに対応付けられている出力ポートからパケットを出力し、前記パケットの入力ポートが前記第2テーブルに記憶されていない場合は、前記第1テーブルに基づくパケット処理がされるよう制御する
ことを含むパケット伝送制御方法。 - パケット伝送装置の制御装置が、
第1のフローの経路上にあるパケット伝送装置に対し、当該前記第1のフローのパケットの識別情報と、前記パケットに対するパケット処理とを対応づけて第1テーブルに記憶する指示を送信し、
前記第1のフローと異なる第2のフローの経路上にある少なくとも1つのパケット伝送装置に対し、前記第2のフローに割り当てられた入力ポートと出力ポートとの対応関係を第2テーブルへ記憶する指示を送信する
ことを含むパケット伝送制御方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016022048A JP2017143344A (ja) | 2016-02-08 | 2016-02-08 | パケット伝送装置,制御装置,及びパケット伝送制御方法 |
US15/412,375 US20170230284A1 (en) | 2016-02-08 | 2017-01-23 | Packet transmission apparatus, controller, and packet transmission control method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2016022048A JP2017143344A (ja) | 2016-02-08 | 2016-02-08 | パケット伝送装置,制御装置,及びパケット伝送制御方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017143344A true JP2017143344A (ja) | 2017-08-17 |
Family
ID=59498004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2016022048A Pending JP2017143344A (ja) | 2016-02-08 | 2016-02-08 | パケット伝送装置,制御装置,及びパケット伝送制御方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20170230284A1 (ja) |
JP (1) | JP2017143344A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022014041A1 (ja) * | 2020-07-17 | 2022-01-20 | 日本電信電話株式会社 | 伝送装置管理装置、伝送装置管理システム、伝送装置管理方法及びプログラム |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102284953B1 (ko) * | 2016-01-13 | 2021-08-03 | 삼성전자 주식회사 | 소프트웨어 정의 네트워크 기반 이동통신 시스템에서 제어 메시지 전송 방법 및 장치 |
US10437775B2 (en) | 2017-09-14 | 2019-10-08 | Microsoft Technology Licensing, Llc | Remote direct memory access in computing systems |
US11888899B2 (en) * | 2018-01-24 | 2024-01-30 | Nicira, Inc. | Flow-based forwarding element configuration |
TWI642285B (zh) * | 2018-02-02 | 2018-11-21 | 思銳科技股份有限公司 | 網路交換機的主機狀態偵測方法與系統 |
US11949604B2 (en) * | 2021-10-06 | 2024-04-02 | Inernational Business Machines Corporation | Integrated network switch operation |
-
2016
- 2016-02-08 JP JP2016022048A patent/JP2017143344A/ja active Pending
-
2017
- 2017-01-23 US US15/412,375 patent/US20170230284A1/en not_active Abandoned
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2022014041A1 (ja) * | 2020-07-17 | 2022-01-20 | 日本電信電話株式会社 | 伝送装置管理装置、伝送装置管理システム、伝送装置管理方法及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
US20170230284A1 (en) | 2017-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2017143344A (ja) | パケット伝送装置,制御装置,及びパケット伝送制御方法 | |
TWI520527B (zh) | 開關系統、開關控制方法以及記憶媒體 | |
US9479423B2 (en) | Information processing system, relay device, information processing device, and information processing method | |
US9769074B2 (en) | Network per-flow rate limiting | |
US9503382B2 (en) | Scalable flow and cogestion control with openflow | |
TWI542172B (zh) | 路徑更換方法與系統及其控制器 | |
US10103969B2 (en) | Open shortest path first routing for hybrid networks | |
US10212095B2 (en) | Maximum transmission unit installation for switches in a software-defined network | |
US20140119191A1 (en) | Network management apparatus and method | |
US10826823B2 (en) | Centralized label-based software defined network | |
CN108471383A (zh) | 报文转发方法、装置和系统 | |
US20180167337A1 (en) | Application of network flow rule action based on packet counter | |
US20170063696A1 (en) | Data packet flow rule field range of an application specific integrated circuit | |
US10462064B2 (en) | Maximum transmission unit installation for network traffic along a datapath in a software defined network | |
US8614946B1 (en) | Dynamic switch port monitoring | |
US20150263990A1 (en) | Network device, control method, and program | |
US20150381775A1 (en) | Communication system, communication method, control apparatus, control apparatus control method, and program | |
JP2016100721A (ja) | 制御装置 | |
US11128569B2 (en) | Load distribution system and load distribution method | |
US20180198704A1 (en) | Pre-processing of data packets with network switch application -specific integrated circuit | |
JP6287443B2 (ja) | 制御装置、及びそのテーブル作成方法 | |
US9356864B2 (en) | Packet transfer apparatus and packet relay method | |
CN111404705A (zh) | 一种sdn的优化方法、装置及计算机可读存储介质 | |
WO2018150481A1 (ja) | 分散処理システムのデータ制御方法及び分散処理システム | |
JP2004120636A (ja) | パケット振り分け装置 |