(57)【特許請求の範囲】
【請求項１】
データプレーンの通信で用いる或る通信プロトコルのプロトコルメッセージと、前記プロトコルメッセージの識別子と、の組を複数記憶する記憶部と、
前記データプレーンの通信には、前記記憶部における前記プロトコルメッセージのいずれかを用い、前記データプレーンにおける前記プロトコルメッセージのフローを制御するコントローラとの間のコントロールプレーンの通信には、前記記憶部において前記フローの制御対象である前記プロトコルメッセージに対応する前記識別子を用いる通信処理部と、
を備えた、フロースイッチ。
【請求項２】
前記通信処理部は、
前記コントローラから、複数の前記識別子のうちのいずれかを含む前記コントロールプレーンの制御メッセージを受信する第１受信部と、
前記記憶部において、前記制御メッセージに含まれる前記識別子に対応する前記プロトコルメッセージを、前記データプレーンへ送信する第１送信部と、を備えた、請求項１に記載のフロースイッチ。
【請求項３】
前記通信処理部は、
他のフロースイッチが前記データプレーンへ送信した第２のプロトコルメッセージを受信する第２受信部と、
前記記憶部に前記第２受信部で受信した前記第２のプロトコルメッセージが記憶されている場合に、当該第２のプロトコルメッセージに対応する前記識別子を、前記コントローラへ前記コントロールプレーンにて送信する第２送信部と、を備えた請求項１又は２に記載のフロースイッチ。
【請求項４】
前記通信プロトコルは、リンクレイヤディスカバリプロトコルであり、前記コントロールプレーンの通信は、オープンフロープロトコルに基づく通信である、請求項１〜３のいずれか１項に記載のフロースイッチ。
【請求項５】
複数のフロースイッチ間におけるデータプレーンの通信で用いる或る通信プロトコルのプロトコルメッセージと、前記プロトコルメッセージの識別子と、の組を複数記憶する記憶部と、
前記データプレーンにおける前記プロトコルメッセージのフローを制御するためのコントロールプレーンの通信に、前記記憶部において前記フローの制御対象である前記プロトコルメッセージに対応する前記識別子を用いる通信処理部と、
を備えたコントローラ。
【請求項６】
コントローラと複数のフロースイッチとの間のコントロールプレーンの通信を中継する中継装置であって、
前記フロースイッチ間におけるデータプレーンの通信で用いる或る通信プロトコルのプロトコルメッセージと、前記プロトコルメッセージの識別子と、の組を複数記憶する記憶部と、
前記データプレーンにおける前記プロトコルメッセージのフローを制御する前記コントローラとの間のコントロールプレーンの通信には、前記記憶部において前記フローの制御対象である前記プロトコルメッセージに対応する前記識別子を用い、前記フロースイッチのいずれかとの間のコントロールプレーンの通信には、前記記憶部における複数の前記識別子のうちのいずれかに対応する前記プロトコルメッセージを用いる通信処理部と、
を備えた、中継装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載する技術は、フロースイッチ、コントローラ、及び、中継装置に関する。
【背景技術】
【０００２】
近年、コンピューティングリソースの仮想化が進み、ネットワークにおいて、オンデマンドで仮想コンピュータを配備できるようになったことに伴って、ＳＤＮ（Software Defined Networking）が注目されている。
【０００３】
ＳＤＮは、ネットワークをソフトウェアでオンデマンドに設定あるいは変更することが可能な技術である。１つのコントローラで複数のフロースイッチを管理、制御するようなネットワークに、ＳＤＮを適用することも検討されている。
【０００４】
そのようなネットワークにおいてＳＤＮを実現可能な通信プロトコルの有力な候補の１つに、オープンフロー（ＯＦ）プロトコルがある。コントローラは、ＯＦプロトコルを用いて各フロースイッチと通信することで、各フロースイッチの管理や制御を行なうことができる。
【０００５】
なお、ＯＦプロトコルをサポートするコントローラを、ＯＦコントローラ（ＯＦＣ）と称し、ＯＦプロトコルをサポートするフロースイッチを、ＯＦスイッチと称することがある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１４−５０２８１１号公報
【特許文献２】特開２０１１−８２８３４号公報
【特許文献３】特開２０１４−２７４４３号公報
【非特許文献】
【０００７】
【非特許文献１】ＩＥＥＥ  ８０２．１  ＡＢ
【発明の概要】
【発明が解決しようとする課題】
【０００８】
コントローラと各フロースイッチとの間の管理や制御に関わるコントロールプレーンの通信量が増加して輻輳が生じることがある。
【０００９】
１つの側面では、本明細書の記載する技術の目的の１つは、コントローラとフロースイッチと間のコントロールプレーンの通信量を削減できるようにすることにある。
【課題を解決するための手段】
【００１０】
１つの側面において、フロースイッチは、記憶部と、通信処理部と、を備えてよい。記憶部は、データプレーンの通信で用いる或る通信プロトコルのプロトコルメッセージと、前記プロトコルメッセージの識別子と、の組を複数記憶してよい。通信処理部は、前記データプレーンの通信には、前記記憶部における前記プロトコルメッセージのいずれかを用い、コントローラとの間のコントロールプレーンの通信には、前記記憶部においてフローの制御対象である前記プロトコルメッセージに対応する前記識別子を用いてよい。なお、コントローラは、前記データプレーンにおける前記プロトコルメッセージのフローを制御してよい。
【００１１】
また、１つの側面において、コントローラは、記憶部と、通信処理部と、を備えてよい。記憶部は、複数のフロースイッチ間におけるデータプレーンの通信で用いる或る通信プロトコルのプロトコルメッセージと、前記プロトコルメッセージの識別子と、の組を複数記憶してよい。通信処理部は、前記データプレーンにおける前記プロトコルメッセージのフローを制御するためのコントロールプレーンの通信に、前記記憶部において前記フローの制御対象である前記プロトコルメッセージに対応する前記識別子を用いてよい。
【００１２】
更に、１つの側面において、中継装置は、コントローラと複数のフロースイッチとの間のコントロールプレーンの通信を中継してよい。当該中継装置は、記憶部と、通信処理部と、を備えてよい。記憶部は、前記フロースイッチ間におけるデータプレーンの通信で用いる或る通信プロトコルのプロトコルメッセージと、前記プロトコルメッセージの識別子と、の組を複数記憶してよい。通信処理部は、前記データプレーンにおける前記プロトコルメッセージのフローを制御する前記コントローラとの間のコントロールプレーンの通信には、前記記憶部において前記フローの制御対象である前記プロトコルメッセージに対応する前記識別子を用いてよい。また、通信処理部は、前記フロースイッチのいずれかとの間のコントロールプレーンの通信には、前記記憶部における複数の前記識別子のうちのいずれかに対応する前記プロトコルメッセージを用いてよい。
【発明の効果】
【００１３】
１つの側面として、コントローラとフロースイッチと間のコントロールプレーンの通信量を削減できる。
【図面の簡単な説明】
【００１４】
【図１】第１実施形態に係る通信システムの構成例を示すブロック図である。
【図２】図１の通信システムにおいて、パケットインメッセージ及びパケットアウトメッセージを用いて、データプレーン（ＤＰ）伝送路において、或る通信プロトコルのメッセージを交換する様子を模式的に例示する図である。
【図３】（Ａ）はパケットアウトメッセージのフォーマット例を示す図であり、（Ｂ）はパケットインメッセージのフォーマット例を示す図である。
【図４】図１及び図２に例示した通信システムにおける制御ネットワークの負荷が上昇する例を模式的に例示する図である。
【図５】第１実施形態の通信システムの動作例を説明するための図である。
【図６】第１実施形態の通信システムの動作例を説明するための図である。
【図７】第１実施形態で用いる登録（削除）要求メッセージのフォーマット例を示す図である。
【図８】第１実施形態の通信システムの動作例を説明するための図である。
【図９】第１実施形態で用いる送出要求メッセージのフォーマット例を示す図である。
【図１０】第１実施形態の通信システムの動作例を説明するための図である。
【図１１】第１実施形態の通信システムの動作例を説明するための図である。
【図１２】第１実施形態で用いる登録要求メッセージ（又は削除要求メッセージ）のフォーマット例を示す図である。
【図１３】第１実施形態の通信システムの動作例を説明するための図である。
【図１４】第１実施形態で用いる受信通知メッセージのフォーマット例を示す図である。
【図１５】第１実施形態のオープンフローコントローラ（ＯＦＣ）の機能的な構成例を示すブロック図である。
【図１６】第１実施形態のＯＦＣのハードウェア構成例を示すブロック図である。
【図１７】第１実施形態のＯＦＣの動作例を説明するためのフローチャートである。
【図１８】第１実施形態のＯＦＣの動作例を説明するためのフローチャートである。
【図１９】第１実施形態のＯＦスイッチの機能的な構成例を示すブロック図である。
【図２０】第１実施形態のＯＦスイッチのハードウェア構成例を示すブロック図である。
【図２１】第１実施形態のＯＦスイッチの動作例を説明するためのフローチャートである。
【図２２】第１実施形態のＯＦスイッチの動作例を説明するためのフローチャートである。
【図２３】第２実施形態の通信システムの構成例及び動作例を説明するためのブロック図である。
【図２４】第２実施形態のプロトコル変換装置の機能的な構成例を示すブロック図である。
【図２５】第２実施形態のＯＦスイッチの機能的な構成例を示すブロック図である。
【発明を実施するための形態】
【００１５】
以下、図面を参照して実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。また、以下に説明する各種の例示的態様は、適宜に組み合わせて実施しても構わない。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００１６】
（第１実施形態）
図１は、第１実施形態に係る通信システムの構成例を示すブロック図である。図１に例示するように、通信システム１は、複数のスイッチ２−１〜２−Ｎ（＃１〜＃Ｎ）と、コントローラ３と、を備えてよい。なお、「Ｎ」は２以上の整数であり、図１の例では、Ｎ＝５である。スイッチ２−１〜２−Ｎ（＃１〜＃Ｎ）を区別する必要がない場合、スイッチ２−ｉ（＃ｉ）（ｉ＝１〜Ｎのいずれか）、あるいは、単にスイッチ２と表記することがある。
【００１７】
スイッチ２のそれぞれは、通信装置あるいは通信デバイスの一例であり、例示的に、オープンフロー（ＯＦ）プロトコルをサポートするＯＦスイッチであってよい。既述のとおり、ＯＦプロトコルは、ＳＤＮを実現可能な通信プロトコルの有力な候補の１つである。
【００１８】
コントローラ３は、例示的に、制御ネットワーク４を介して各スイッチ２と通信可能に接続されてよく、制御ネットワーク４を介した通信によって、各スイッチ２の動作を集中的に管理、制御することが可能である。
【００１９】
制御ネットワーク４を介した各スイッチ２の管理や制御に関わる通信は、便宜的に、「制御通信」又は「コントロールプレーンの通信」と称してよい。「コントロールプレーンの通信」は、便宜的に、「ＣＰ通信」と略称してよい。「ＣＰ通信」に用いられる信号やメッセージは、「制御信号」又は「制御メッセージ」と称してよい。「ＣＰ通信」には、ＯＦプロトコルを用いてよい。
【００２０】
ＯＦプロトコルを用いたＣＰ通信が可能なコントローラ３は、「オープンフローコントローラ（ＯＦＣ）３」と称してよい。なお、制御ネットワーク４には、ＯＦＣ３とＯＦスイッチ２との間の制御通信の接続を切り替えるスイッチ４１が備えられてよい。ＯＦＣ３と各ＯＦスイッチ２とを含む通信システム１は、「ＯＦネットワーク１」と称されてもよい。
【００２１】
ＯＦネットワーク１において、ＯＦＣ３、及び、当該ＯＦＣ３において動作するアプリケーション３１は、コントロールプレーン（ＣＰ）を構成し、各ＯＦスイッチ２は、データプレーン（ＤＰ）を構成する、と捉えてよい。別言すると、ＯＦスイッチ２とＯＦＣ３と間のＣＰ通信にＯＦプロトコルを用いることで、ＣＰとＤＰとの分離が可能である。
【００２２】
なお、ＯＦＣ３において動作するアプリケーション３１の一例としては、ＬＬＤＰ（Link Layer Discovery Protocol）をサポートするアプリケーションが挙げられる。当該アプリケーション３１は、便宜的に「ＬＬＤＰアプリケーション３１」と称してよい。
【００２３】
ＯＦプロトコルでは、ＤＰ伝送路において様々なプロトコルに対応する装置をオンデマンドで配備できるように、「パケットインメッセージ（packet-in message）」及び「パケットアウトメッセージ（packet-out message）」が規定されている。これらのメッセージは、いずれも「制御メッセージ」の一例である。
【００２４】
「パケットインメッセージ」は、例示的に、ＤＰ伝送路で受信した様々なプロトコルのデータ（例えば、パケット）を、ＯＦＣ３に通知するために用いられる。これに対し、「パケットアウトメッセージ」は、例示的に、ＯＦＣ３からＤＰ伝送路に対して様々な通信プロトコルのパケット送信を指示するために用いられる。
【００２５】
図２に、パケットインメッセージ及びパケットアウトメッセージを用いてＤＰ伝送路において、ＬＬＤＰメッセージ（便宜的に「ＬＬＤＰパケット」と称してもよい。）を交換する様子を模式的に例示する。なお、「パケットインメッセージ」及び「パケットアウトメッセージ」は、それぞれ、「パケットイン」及び「パケットアウト」と略称することがある。
【００２６】
図２において、ＬＬＤＰアプリケーション３１は、まず、ＤＰ伝送路で受信されたＬＬＤＰパケットを受け取れるようにＯＦＣ３に指示する。
【００２７】
当該指示に従って、ＯＦＣ３は、ＬＬＤＰヘッダを有するメッセージ（ＬＬＤＰパケット）をＤＰ伝送路で受信したら、当該パケットをＯＦＣ３宛に送信することを規定したフローエントリを各ＯＦスイッチ２に対して設定してよい。
【００２８】
次に、ＬＬＤＰアプリケーション３１は、例えば、ＯＦスイッチ＃１のポート＃１から送出させるＬＬＤＰパケットを生成し、当該ＬＬＤＰパケットをＯＦスイッチ＃１のポート＃１から送出させるようにＯＦＣ３に指示する。
【００２９】
ＯＦＣ３は、この指示に従ってパケットアウトをＯＦスイッチ＃１に送る。パケットアウトのフォーマット例を、図３（Ａ）に示す。パケットアウトには、ＬＬＤＰアプリケーション３１が生成したＬＬＤＰパケットと、当該ＬＬＤＰパケットをポート＃１から送出することを指示する情報（「送信ポート情報」と称してよい。）と、が含まれてよい。
【００３０】
ＯＦスイッチ＃１は、当該パケットアウトをＯＦＣ３から受信すると、受信したパケットアウトに含まれるＬＬＤＰパケットを、指示されたポート＃１から送出する。
【００３１】
ここで、図２に例示するように、ＯＦスイッチ＃１のポート＃１が、ＯＦスイッチ＃５のポート＃２に接続されていると仮定すれば、ＯＦスイッチ＃１のポート＃１から送出されたＬＬＤＰパケットは、ＯＦスイッチ＃５のポート＃２で受信される。
【００３２】
ＯＦスイッチ＃５は、既述のとおり、受信したＬＬＤＰパケットをＯＦＣ３宛に送信することを規定したフローエントリが事前に設定されているので、受信したＬＬＤＰパケットを、パケットインを用いてＯＦＣ３宛に送信する。
【００３３】
パケットインのフォーマット例を、図３（Ｂ）に示す。パケットインには、ＤＰ伝送路から受信したＬＬＤＰパケットと、当該ＬＬＤＰパケットを受信したポート（＃２）を示す情報（「受信ポート情報」と称してよい。）と、が含まれてよい。
【００３４】
ＯＦＣ３は、パケットインを受信すると、受信したパケットインに含まれているＬＬＤＰパケットと受信ポート情報とをＬＬＤＰアプリケーション３１に渡す。
【００３５】
以上のような手順により、ＯＦスイッチ２及びＯＦＣ３は、ＤＰ伝送路において、ＬＬＤＰによるリンク発見の機能を提供することができる。
【００３６】
ＯＦＣ３のアプリケーション３１を、ＬＬＤＰとは異なる他の通信プロトコルのアプリケーションに変更すれば、同様のメカニズムを用いて、他の通信プロトコルの機能をＯＦスイッチ２間のＤＰ伝送路において提供することができる。
【００３７】
ＯＦＣ３において、様々な通信プロトコルのアプリケーション３１を用意しておいて、要求に応じてアプリケーションを変更することにより、ＤＰ伝送路において提供したい通信プロトコルの機能をオンデマンドで提供することが可能になる。
【００３８】
ＯＦスイッチ２とＯＦＣ３との間のＣＰ伝送路において送受信されるメッセージは、インタオペラビリティのために標準的な通信プロトコル仕様に準拠したメッセージ（「プロトコルメッセージ」と称してよい。）であることが望まれる。例えば図３（Ａ）及び図３（Ｂ）に示したように、ＯＦプロトコルのメッセージは、ＴＣＰ（Transmission Control Protocol）ヘッダ、及び、ＩＰ（Internet Protocol）ヘッダでカプセル化されてよい。
【００３９】
ＯＦＣ３のアプリケーション３１が多くのプロトコルメッセージをＤＰの伝送路において送受信する場合や、１台のＯＦＣ３が制御の対象とするＯＦスイッチ２の数が多い場合等では、図４に例示するように、制御ネットワーク４が輻輳することがある。
【００４０】
近年、ＳＤＮをデータセンタに限らず公衆網に適用することの検討が進んでいるが、公衆網では制御ネットワーク４で利用可能な帯域が限られることが多いため、制御ネットワーク４の輻輳が起こりやすいと云える。また、公衆網では制御対象のデバイスが多数であることが多いため、１つのＯＦＣ３が多数のＯＦスイッチ２を制御するシーンが多くなると予想される。
【００４１】
そのため、ＯＦプロトコルのパケットアウト及びパケットインを用いてＤＰ伝送路において単純にメッセージ（パケット）を送受信すると、制御ネットワーク４において輻輳が生じ易い。
【００４２】
そこで、以下では、ＯＦＣ３がＯＦスイッチ２を制御するために利用される制御ネットワーク４に、輻輳が生じることを回避又は抑制可能な技術について検討する。
【００４３】
通信プロトコルによっては、定常状態では同じ内容のメッセージを周期的に送受信することがある。これにより、自装置と通信相手装置との間の伝送路が疎通していることを確認したり、自装置の状態に変化が無いことを通信相手装置との間で互いに通知し合って、通信相手装置の状態に変化が無いことを互いに確認し合ったりすることができる。
【００４４】
標準のＯＦプロトコルにおいて、パケットアウトは、図３（Ａ）に例示したように、ＤＰ伝送路に送出するメッセージの全体を含んでいる。ＯＦＣ３は、同じ内容のメッセージを含むパケットアウトであっても、メッセージをＤＰ伝送路に送出するには、その都度、ＯＦスイッチ２へパケットアウトを送信する。
【００４５】
また、パケットインは、図３（Ｂ）に例示したように、ＤＰ伝送路においてＯＦスイッチ２が受信したメッセージの全体を含んでいる。ＯＦスイッチ２は、同じ内容のメッセージであっても、受信の度に、受信したメッセージの全体をパケットインに含めてＯＦＣ３宛に送信する。
【００４６】
したがって、定常状態において、ＯＦＣ３とＯＦスイッチ２との間で、同じ内容のメッセージが重複的に送受信されることを抑制できれば、制御ネットワーク４の負荷を軽減することができ、輻輳の発生を回避あるいは抑制できる。
【００４７】
例えば、ＯＦスイッチ２に、メッセージの内容に対応する識別子のデータベース（ＤＢ）を備える。ＯＦＣ３のアプリケーション３１から同じ内容のメッセージを繰り返し送信する場合には、ＯＦＣ３は、ＯＦスイッチ２間のＤＰ伝送路に送出するメッセージの内容に対応する識別子を、ＯＦスイッチ２のＤＢに追加する。
【００４８】
その上で、ＯＦＣ３は、ＤＰ伝送路に送出するメッセージそのものではなく、当該メッセージの内容に対応する識別子を含むパケットアウト相当の制御メッセージを、ＯＦスイッチ２に送信して、ＤＰ伝送路にメッセージを送出することを指示する。
【００４９】
また、アプリケーション３１が同じ内容のメッセージを繰り返し受信することが予想される場合には、ＯＦＣ３は、繰り返し受信が予想されるメッセージの内容に対応する識別子をＯＦスイッチ２のデータベースに追加する。
【００５０】
ＯＦスイッチ２は、ＤＢに登録されたメッセージをＤＰ伝送路から受信すると、受信したメッセージそのものではなく、当該メッセージに対応する識別子を含むパケットイン相当の制御メッセージをＯＦＣ３宛に送信する。
【００５１】
以上のようにして、メッセージの全体ではなく対応する識別子をＯＦスイッチとＯＦＣ３との間のＣＰ通信における制御メッセージに含めることで、制御ネットワーク４を流れるメッセージのサイズ（別言すると、容量）を低減できる。したがって、制御ネットワーク４の負荷を軽減することができる。
【００５２】
なお、ＤＰ伝送路を流れるメッセージ内容に対応する「識別子を含む制御メッセージ」は、便宜的に、ＯＦプロトコルで用いられる標準的な制御メッセージを拡張した「拡張メッセージ」に相当する、と捉えてもよい。
【００５３】
例えば、メッセージ内容に代えて識別子を含むパケットアウトは拡張パケットアウトと称してもよく、メッセージ内容に代えて識別子を含むパケットインは拡張パケットインと称してもよい。
【００５４】
（動作例）
以下、図５〜図１４を参照して、通信システム１の動作例について説明する。
図５に例示する通信システム１は、図１に例示した構成と同様である。図５において、ＯＦＣ３では、ＤＰ伝送路でＬＬＤＰの機能を提供するためのＬＬＤＰアプリケーション３１が動作すると仮定する。また、ＯＦＣ３（例示的に、ＬＬＤＰアプリケーション３１）は、初期状態において、ＯＦスイッチ２間の接続関係（「トポロジ」と称してもよい。）を認識していないと仮定する。
【００５５】
ＬＬＤＰアプリケーション３１は、ＯＦＣ３が制御対象とする全てのＯＦスイッチ２に対して、イーサネットタイプ値にＬＬＤＰを示す「88-CC」が設定されたパケットはＯＦＣ３宛に送信することを指定したフローエントリを設定する。なお、「イーサネット」は、登録商標である。
【００５６】
次に、ＬＬＤＰアプリケーション３１は、各ＯＦスイッチ２の各ポートから送出させるプロトコルメッセージの一例としてＬＬＤＰパケットを生成する。ＬＬＤＰアプリケーション３１は、図５の左上に例示するように、生成したＬＬＤＰパケットの内容（「イメージ」と称してもよい。）毎に、送信元ＯＦスイッチ２の情報と、送信元ポートの情報と、識別子と、を登録したデータベース（ＤＢ）３１１を生成してよい。当該ＤＢ３１１は、「送出パケットＤＢ３１１」と称してよい。
【００５７】
なお、送出パケットＤＢ３１１は、複数のＯＦスイッチ２間におけるＤＰ通信で用いるメッセージと、当該メッセージの識別子と、の組を複数記憶してよい。
【００５８】
次に、ＬＬＤＰアプリケーション３１は、図６に例示するように、ＯＦＣ３を介して各ＬＬＤＰパケットの送信元ＯＦスイッチ２（例えば、ＯＦスイッチ＃１）に対して、ＬＬＤＰパケットのイメージを、対応する識別子と共に通知してよい（処理Ｐ１０）。
【００５９】
当該通知には、図７に例示する登録要求メッセージを用いてよい。登録要求メッセージは、ＯＦプロトコルにおけるパケットアウトやパケットアウト等の制御メッセージを拡張した拡張メッセージの一例であり、メッセージ本体に、ＬＬＤＰパケットのイメージと、対応する識別子と、が設定されてよい。また、ＯＦヘッダに、「登録要求」であることを表示するメッセージタイプが設定されてよい。
【００６０】
ＯＦスイッチ＃１は、登録要求メッセージの受信に応じて、メッセージ本体に設定されているＬＬＤＰパケットのイメージと識別子とを、例えば図６に示すように、内部のＤＢ２１１に登録してよい。ＯＦスイッチ２におけるＤＢ２１１は、便宜的に、「パケットＤＢ２１１」と称してよい。
【００６１】
なお、パケットＤＢ２１１は、ＤＰ伝送路に送出するパケットイメージ、あるいは、ＤＰ伝送路から受信が予想されるパケットイメージと、そのパケットイメージに対応する識別子と、の組を複数保持してよい。
【００６２】
また、登録要求メッセージは、ＬＬＤＰパケットの送信元となるＯＦスイッチ２のそれぞれに対して送信されてよく、登録要求メッセージを受信した送信元ＯＦスイッチ２のそれぞれにおいて、パケットＤＢ２１１が生成されてよい。
【００６３】
更に、パケットＤＢ２１１におけるパケットイメージと識別子との組のエントリは、ＯＦＣ３からの制御メッセージによって、適宜に、追加、削除することができる。エントリを追加する制御メッセージの一例は、上述した登録要求メッセージである。
【００６４】
エントリを削除する制御メッセージには、例えば図７に例示した登録要求メッセージのＯＦヘッダにおけるメッセージタイプを、例えば「削除要求」に変更したメッセージ（便宜的に「削除要求メッセージ」と称してよい。）を用いてよい。
【００６５】
削除要求メッセージによって、パケットＤＢ２１１において不要なエントリを削除することができるので、パケットＤＢ２１１に用意する容量を抑えることができる。
【００６６】
上述したパケットＤＢ２１１の登録が済むと、ＬＬＤＰアプリケーション３１は、図８に例示するように、送出パケットＤＢ３１１を基に、各送信元ＯＦスイッチ２に対して、指定のポートからＬＬＤＰパケットを送出するよう要求してよい（処理Ｐ２０）。
【００６７】
当該送出要求（「送出指示」と称してもよい。）には、図９に例示する送出要求メッセージを用いてよい。送出要求メッセージは、ＯＦプロトコルでのＯＦスイッチ２宛の制御メッセージ（例えば、パケットアウト）を拡張した拡張メッセージの一例である。
【００６８】
ただし、送出要求メッセージのメッセージ本体には、送出するＬＬＤＰパケットのイメージに対応する識別子と、送信元ポート情報と、が含められ、ＬＬＤＰパケットのイメージ全体は含められない。ＯＦヘッダには、「送出要求」であることを表示するメッセージタイプが設定されてよい。
【００６９】
図８の例では、ＯＦＣ３は、ＬＬＤＰアプリケーション３１からの要求に応じて、識別子＃１のＬＬＤＰパケットをポート＃１から送出することを要求する送出要求メッセージを、ＯＦスイッチ＃１宛に送信する。
【００７０】
ＯＦスイッチ＃１は、当該送出要求メッセージを受信すると、パケットＤＢ２１１を参照して、識別子＃１に対応するＬＬＤＰパケットを読み出して、ポート＃１から送出する（処理Ｐ３０）。
【００７１】
図８の例において、ＯＦスイッチ＃１のポート＃１は、ＯＦスイッチ＃５のポート＃２と接続されているので、ＯＦスイッチ＃１のポート＃１から送出されたＬＬＤＰパケットは、ＯＦスイッチ＃５のポート＃２で受信される。
【００７２】
ＯＦスイッチ＃５では、イーサネットタイプ値にＬＬＤＰを示す「88-CC」が設定されたパケットはＯＦＣ３宛に送信するフローエントリが登録されている。しかし、この段階では、例えば図１０に示すように、ＯＦスイッチ＃５のパケットＤＢ２１１において、受信したＬＬＤＰパケットの内容と同じ内容のＬＬＤＰパケットのエントリは未登録である。
【００７３】
そのため、ＯＦスイッチ＃５は、受信したＬＬＤＰパケットを図３（Ｂ）に例示したパケットインを用いてＯＦＣ３宛に送信してよい（処理Ｐ４０）。当該パケットインには、ＬＬＤＰパケットのイメージと、当該ＬＬＤＰパケットを受信したＯＦスイッチ＃５の識別情報及び受信ポート情報と、が含められてよい。
【００７４】
ＬＬＤＰアプリケーション３１は、ＯＦスイッチ＃５が受信したＬＬＤＰパケットの受信に応じて、例えば図１１に示すように、当該ＬＬＤＰパケット＃１のイメージと、対応する識別子＃１と、を、ＯＦスイッチ＃５に通知してよい（処理Ｐ５０）。これにより、ＯＦスイッチ＃５のパケットＤＢ２１１に、ＬＬＤＰパケット＃１のイメージと識別子＃１との組が登録される。
【００７５】
当該通知には、図７と同様、図１２に例示するように、登録要求メッセージを用いてよい。登録要求メッセージは、ＯＦプロトコルでのＯＦスイッチ２宛の制御メッセージを拡張した拡張メッセージの一例である。登録要求メッセージのメッセージ本体には、ＬＬＤＰパケットのイメージと、対応する識別子と、が設定されてよい。また、ＯＦヘッダに、「登録要求」であることを表示するメッセージタイプが設定されてよい。
【００７６】
なお、処理Ｐ５０における登録要求メッセージの送信は、ＯＦスイッチ＃５において以降も同じ内容のＬＬＤＰパケットが受信される可能性があるとの判断に応じて実施されてよい。
【００７７】
その後、ＬＬＤＰアプリケーション３１は、図８に例示したように、改めてＯＦスイッチ＃１に対して識別子＃１に対応するＬＬＤＰパケットの送出を送出要求メッセージによって要求してよい。この段階では、ＯＦスイッチ＃５のパケットＤＢ２１１に、ＯＦスイッチ＃１から受信したＬＬＤＰパケットと同じイメージのパケットが登録されている。
【００７８】
したがって、図１３に例示するように、ＯＦスイッチ＃５は、受信ＬＬＤＰパケット＃１に対応する識別子＃１を用いて、パケット受信を、ＯＦＣ３のＬＬＤＰアプリケーション３１に通知する（処理Ｐ６０）。
【００７９】
当該パケット受信の通知には、図１４に例示する受信通知メッセージを用いてよい。受信通知メッセージは、ＯＦプロトコルでのＯＦＣ３宛の制御メッセージ（例えば、パケットイン）を拡張した拡張メッセージの一例である。
【００８０】
ただし、受信通知メッセージのメッセージ本体には、受信したＬＬＤＰパケット＃１のイメージに対応する識別子＃１と、受信ポート情報と、が含められ、受信したＬＬＤＰパケット＃１のイメージ全体は含められない。ＯＦヘッダには、「受信通知」であることを表示するメッセージタイプが設定されてよい。
【００８１】
以上のようにして、ＯＦＣ３と各ＯＦスイッチ２との間で送受信される制御メッセージに、ＬＬＤＰパケットのイメージに対応する識別子を用いることで、制御ネットワーク４の通信量を低減でき、制御ネットワーク４の負荷を軽減することができる。
【００８２】
したがって、制御ネットワーク４に輻輳が発生すること、別言すると、ＯＦＣ３とＯＦスイッチ２との間のＣＰ通信に輻輳が発生することを抑制できる。
【００８３】
次に、上述した動作例を実施可能なＯＦＣ３及びＯＦスイッチ２の構成例及び動作例について説明する。
【００８４】
（ＯＦＣ３の構成例）
図１５は、ＯＦＣ３の機能的な構成例を示すブロック図である。
図１５に例示するように、ＯＦＣ３は、例示的に、既述の送出パケットＤＢ３１１に加えて、ポートデータベース（ＤＢ）３１２と、ＬＬＤＰ処理部３１３と、ＯＦプロトコル処理部３１４と、を備えてよい。
【００８５】
なお、図１５に示す構成例は、ＯＦＣ３において動作するプロトコルアプリケーション３１がＬＬＤＰアプリケーションである場合の構成例である。ＯＦＣ３において動作するプロトコルアプリケーション３１に応じたプロトコル処理部３１３が、ＯＦＣ３において動作すると捉えてよい。
【００８６】
ポートＤＢ３１２は、例示的に、ＯＦＣ３が制御の対象とする全ＯＦスイッチ２のポート情報を記憶する。ポートＤＢ３１２に記憶されたポート情報のいずれかが、既述のように、ＯＦスイッチ２宛の制御メッセージのメッセージ本体に設定されてよい。
【００８７】
ＬＬＤＰ処理部３１３は、例示的に、ＬＬＤＰアプリケーション３１の実行に応じて具現されて、送出パケットＤＢ３１１の生成や、送出パケットＤＢ３１１及びポートＤＢ３１２の情報に基づくＬＬＤＰのメッセージ処理を行なう。
【００８８】
例えば、ＬＬＤＰのメッセージ送信処理には、ＬＬＤＰパケットや、拡張メッセージを含む制御メッセージの生成及び送信に関わる処理や、ＬＬＤＰパケットのイメージに対応する識別子の生成及び割当に関わる処理が含まれてよい。一方、ＬＬＤＰのメッセージ受信処理には、ＯＦスイッチ２がＯＦＣ３宛に送信した、拡張メッセージを含む制御メッセージの受信に関わる処理が含まれてよい。
【００８９】
ＯＦプロトコル処理部３１４は、ＯＦスイッチ２との間でＯＦプロトコルに基づく送受信処理を実施する。例えば、ＯＦプロトコルの送信処理には、ＬＬＤＰ処理部３１３で生成されたメッセージをＯＦプロトコルでのメッセージにカプセル化してＯＦスイッチ２宛に送信する処理が含まれてよい。
【００９０】
一方、ＯＦプロトコルの受信処理には、ＯＦスイッチ２から受信したＯＦプロトコルでのメッセージをＬＬＤＰのメッセージにデカプセル化してＬＬＤＰ処理部３１３に与える処理が含まれてよい。
【００９１】
なお、ＬＬＤＰ処理部３１３及びＯＦプロトコル処理部３１４は、通信処理部の一例である。通信処理部は、既述のように、ＯＦスイッチ２間のＤＰにおけるＬＬＤＰパケットのフローを制御するためのＣＰ通信に、送出パケットＤＢ３１１においてフロー制御対象であるＬＬＤＰパケットに対応する識別子を用いる。
【００９２】
図１６は、ＯＦＣ３のハードウェア構成例を示すブロック図である。
図１６に示すように、ＯＦＣ３は、例示的に、ＣＰＵ（Central Processing Unit）３２、メモリ３３、記憶装置３４、及び、ネットワークインタフェース（ＮＷ−ＩＦ）３５を備えてよい。ＮＷ−ＩＦ３５は、ＯＦＣ３に複数備えられてよい。ＣＰＵ３２、メモリ３３、記憶装置３４、及び、ＮＷ−ＩＦ３５は、例示的に、通信バス３６によって互いに通信可能に接続されてよい。
【００９３】
ＣＰＵ３２は、演算能力を備えたプロセッサの一例である。演算能力を備えたプロセッサは、「コンピュータ」と称してもよい。また、「プロセッサ」は、ハードウェア的な「プロセッサ回路」あるいは「プロセッサデバイス」と称してもよい。ＣＰＵ３２は、メモリ３３や記憶装置３４に記憶されたプログラムやデータを適宜に読み出して動作することで、ＯＦＣ３としての機能や動作を実現する。
【００９４】
「プログラム」は、「アプリケーション」あるいは「ソフトウェア」と称してもよい。したがって、既述のＬＬＤＰアプリケーション３１は、「プログラム」の一例であると捉えてよい。「データ」には、「プログラム」の実行に用いられるデータや「プログラム」の実行によって生成されたデータが含まれてよい。
【００９５】
プログラムやデータは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ，ＭＯ，ＤＶＤ、ブルーレイディスク、ＵＳＢメモリ等の、コンピュータ読取可能な記憶媒体に記録された形態で提供されてよい。
【００９６】
コンピュータは、記憶媒体から制御プログラムやデータを読み取って例えばメモリ３３等の記憶装置に展開して用いる。また、プログラムやデータは、サーバ等から通信回線を介してコンピュータに提供（ダウンロード）されてもよい。
【００９７】
図１５に例示したＬＬＤＰ処理部３１３及びＯＦプロトコル処理部３１４は、例示的に、ＯＦＣ３としての機能や動作を実現するプログラム（ＬＬＤＰアプリケーション３１が含まれてよい。）やデータをＣＰＵ３２が読み取って実行、動作することで具現される。なお、「プログラム」は、コンピュータのオペレーティングシステム（ＯＳ）の一部であってもよい。
【００９８】
メモリ３３は、例示的に、ＣＰＵ３２のワークメモリであってよく、記憶装置３４に記憶されたプログラムやデータが一時的に記憶、展開されて、ＣＰＵ３２の動作に用いられる。メモリ３３は、例示的に、ランダムアクセスメモリ（ＲＡＭ）等の半導体メモリであってよい。
【００９９】
記憶装置３４は、例示的に、ＯＦＣ３としての機能や動作を実現するプログラムやデータを記憶する。記憶装置３４には、例示的に、ハードディスクドライブ（ＨＤＤ）やソリッドステートドライブ（ＳＳＤ）等が適用可能である。記憶装置３４に、図１５に例示した送出パケットＤＢ３１１及びポートＤＢ３１２が記憶されてよい。
【０１００】
なお、メモリ３３と記憶装置３４とを併せて「記憶部」と称してもよい。
【０１０１】
ＮＷ−ＩＦ３５は、例示的に、制御ネットワーク４との接続インタフェースを提供する。ＮＷ−ＩＦ３５を通じて、既述の拡張メッセージを含む制御メッセージの送信又は受信が行なわれてよい。
【０１０２】
（ＯＦＣ３の動作例）
図１７及び図１８は、ＯＦＣ３の動作例を示すフローチャートである。図１７に例示するように、ＯＦＣ３は、ＬＬＤＰ処理部３１３において、ポートＤＢ３１２を参照して、ＬＬＤＰパケットの送信元となるＯＦスイッチ２のポート情報を取得する（処理Ｐ１１１）。
【０１０３】
ＬＬＤＰ処理部３１３は、取得したポート情報によって識別されるポートから送出するＬＬＤＰパケットを生成する（処理Ｐ１１２）。ＬＬＤＰパケットの生成に応じて、ＬＬＤＰ処理部３１３は、生成したＬＬＤＰパケットのイメージに対して識別子を生成し割り当てる（処理Ｐ１１３）。
【０１０４】
そして、ＬＬＤＰ処理部３１３は、図５の左上に例示したように、生成したＬＬＤＰパケットのイメージ毎に、送信元ＯＦスイッチ２の情報と、送信元ポートの情報と、割り当てた識別子と、を、送出パケットＤＢ３１１に登録する（処理Ｐ１１４）。
【０１０５】
併せて、ＬＬＤＰ処理部３１３は、図６及び図７にて説明した登録要求メッセージを生成してＬＬＤＰパケットの送信元ＯＦスイッチ２宛に送信する。これにより、送信元ＯＦスイッチ２のパケットＤＢ２１１に、ＬＬＤＰパケットのイメージと、対応する識別子と、が登録される。
【０１０６】
以後、ＬＬＤＰ処理部３１３は、各ＯＦスイッチ２宛に、図８及び図９にて説明したように、識別子と送信元ポート情報とを含む送出要求メッセージを送信してよい（処理Ｐ１１５）。当該送出要求メッセージの送信は、周期的に行なってよい。
【０１０７】
送出要求メッセージの送信に応じて、ＬＬＤＰ処理部３１３は、図１８に例示するフローチャートを実行してよい。例えば、ＬＬＤＰ処理部３１３は、いずれかのＯＦスイッチ２が送信したパケットインを受信したか否かをチェックしてよい（処理Ｐ１２１）。
【０１０８】
パケットインを受信すれば（処理Ｐ１２１でＹＥＳ）、ＬＬＤＰ処理部３１３は、受信したパケットインに含まれるＬＬＤＰパケットを受信処理してプロトコル種別やメッセージタイプを判別してよい。また、ＬＬＤＰ処理部３１３は、受信したパケットインの送信元ＯＦスイッチ２のポートステータスを更新してよい（処理Ｐ１２２）。
【０１０９】
例えば、ＬＬＤＰを実行することにより、ＬＬＤＰアプリケーション３１は、ＯＦスイッチ２のそれぞれのポートに対向する、別のＯＦスイッチ２の識別子やポート番号の情報等を取得できる。ＬＬＤＰパケットを受信することにより、ＬＬＤＰアプリケーション３１は、これらの情報を獲得できるので、ポートＤＢ３１２に、獲得した情報を書き込むことで、「ポートステータス」の更新を行なう。
【０１１０】
そして、ＬＬＤＰ処理部３１３は、判別したプロトコル種別やメッセージタイプを基に、以後、パケットインの送信元ＯＦスイッチ２にて同じ内容のＬＬＤＰパケットが繰り返し受信される可能性があるか否かを判断してよい（処理Ｐ１２３）。
【０１１１】
処理Ｐ１２３で「ＮＯ」と判断すれば、ＬＬＤＰ処理部３１３は、実行する処理を処理Ｐ１２１に戻してよい。処理Ｐ１２３で「ＹＥＳ」と判断すれば、ＬＬＤＰ処理部３１３は、受信したＬＬＤＰパケットのイメージに識別子を割り当てて、送出パケットＤＢ３１１に登録してよい（処理Ｐ１２４）。
【０１１２】
併せて、ＬＬＤＰ処理部３１３は、図１１及び図１２にて説明したように、登録要求メッセージを、パケットインの送信元ＯＦスイッチ２宛に送信してよい。これにより、当該ＯＦスイッチ２のパケットＤＢ２１１に、ＬＬＤＰパケットのイメージと識別子とが登録される（処理Ｐ１２４）。処理Ｐ１２４の後、ＬＬＤＰ処理部３１３は、実行する処理を処理Ｐ１２１に戻してよい。
【０１１３】
一方、処理Ｐ１２１において、パケットインが受信されていなければ（ＮＯの場合）、ＬＬＤＰ処理部３１３は、いずれかのＯＦスイッチ２が送信した受信通知メッセージ（図１３及び図１４参照）を受信したか否かをチェックしてよい（処理Ｐ１２５）。
【０１１４】
受信通知メッセージを受信していなければ（処理Ｐ１２５でＮＯ）、ＬＬＤＰ処理部３１３は、実行する処理を処理Ｐ１２１に戻してよい。
【０１１５】
受信通知メッセージを受信していれば（処理Ｐ１２５でＹＥＳ）、ＬＬＤＰ処理部３１３は、送出パケットＤＢ３１１において、受信通知メッセージに含まれる識別子に対応するＬＬＤＰパケットのイメージを検索してよい（処理Ｐ１２６）。
【０１１６】
送出パケットＤＢ３１１の検索により、受信通知メッセージに含まれる識別子に対応したＬＬＤＰパケットのイメージが存在すれば（処理Ｐ１２７でＹＥＳ）、ＬＬＤＰ処理部３１３は、当該ＬＬＤＰパケットのイメージを読み出して受信処理してよい（処理Ｐ１２８）。併せて、ＬＬＤＰ処理部３１３は、受信通知メッセージの送信元ＯＦスイッチ２のポートステータスを更新してよい（処理Ｐ１２８）。
【０１１７】
なお、送出パケットＤＢ３１１において、受信通知メッセージに含まれる識別子に対応したＬＬＤＰパケットのイメージが見つからなかった場合（処理Ｐ１２７でＮＯ）、ＬＬＤＰ処理部３１３は、実行する処理を処理Ｐ１２１に戻してよい。
【０１１８】
以上のように、ＯＦＣ３は、ＯＦスイッチ２間のＤＰにおけるＬＬＤＰパケットのフローを制御するためのＣＰ通信に、送出パケットＤＢ３１１においてフロー制御対象のＬＬＤＰパケットに対応する識別子を用いる。
【０１１９】
したがって、ＯＦＣ３とＯＦスイッチ２との間のＣＰの通信量を削減でき、制御ネットワーク４の負荷を軽減して輻輳の発生を抑制することができる。
【０１２０】
（ＯＦスイッチ２の構成例）
図１９は、既述のＯＦスイッチ２の機能的な構成例を示すブロック図である。図１９に示すように、ＯＦスイッチ２は、例示的に、既述のパケットＤＢ２１１に加えて、ＯＦプロトコル処理部２１２、ＤＢ書き込み部２１３、ＤＢ参照部２１４、フローテーブル２１５、テーブル検査部２１６、及び、アクション処理部２１７を備えてよい。
【０１２１】
ＯＦプロトコル処理部２１２は、例示的に、ＯＦＣ３との間でＯＦプロトコルに基づく送受信処理を実施する。例えば、ＯＦプロトコルの送信処理には、既述の拡張メッセージを含む制御メッセージの送信処理が含まれてよい。一方、ＯＦプロトコルの受信処理には、ＯＦＣ３が送信した、既述の拡張メッセージを含む制御メッセージの受信処理が含まれてよい。
【０１２２】
ＤＢ書き込み部２１３は、例示的に、ＯＦＣ３からの登録要求メッセージに含まれる、ＬＬＤＰパケットのイメージと識別子とをパケットＤＢ２１１に書き込んで登録する。
【０１２３】
ＤＢ参照部２１４は、例示的に、ＯＦＣ３からの送出要求メッセージに含まれる識別子を基に、パケットＤＢ２１１を参照して、識別子に対応するＬＬＤＰパケットのイメージを読み出し、読み出したイメージをＯＦプロトコル処理部２１２に与える。なお、ＤＢ参照部２１４は、識別子を基にパケットＤＢ２１１を検索する「ＤＢ検索部２１４」と言い換えてもよい。
【０１２４】
ＯＦプロトコル処理部２１２は、ＤＢ参照部２１４からのＬＬＤＰパケットのイメージをアクション処理部２１７に転送し、アクション処理部２１７からＤＰ伝送路へＬＬＤＰパケットを送出させる。
【０１２５】
フローテーブル２１５は、例示的に、ＤＰ伝送路から受信したパケットの宛先に応じた転送先（例えば、出力ポート）を示す情報等を含むフローエントリを記憶する。フローエントリには、ＬＬＤＰパケットをＤＰ伝送路で受信したら、当該パケットをＯＦＣ３宛に送信することを規定したフローエントリが含まれてよい。
【０１２６】
テーブル検査部２１６は、ＤＰ伝送路から受信したパケットを、フローテーブル２１５のフローエントリに従って、宛先に応じた出力ポートに転送する。
【０１２７】
アクション処理部２１７は、テーブル検査部２１６から転送された受信パケットのフロー（例えば、ヘッダフィールド）に対して規定される「アクション」に応じた処理を行なう。「アクション」には、パケットの転送（フォワーディング）や破棄（ドロップ）等を指定できる。
【０１２８】
なお、ＯＦプロトコル処理部２１２は、ＯＦＣ３から、識別子を含む制御メッセージを受信する第１受信部の一例である。また、アクション処理部２１７は、パケットＤＢ２１１において、ＯＦＣ３から受信された制御メッセージに含まれる識別子に対応するメッセージを、ＤＰへ送信する第１送信部の一例である。
【０１２９】
更に、テーブル検査部２１６は、他のＯＦスイッチ２がＤＰへ送信したメッセージを受信する第２受信部の一例である。また、ＯＦプロトコル処理部２１２は、パケットＤＢ２１１において、第２受信部で受信したメッセージに対応する識別子を、ＯＦＣ３へ送信する第２送信部の一例でもある。
【０１３０】
図２０は、ＯＦスイッチ２のハードウェア構成例を示すブロック図である。
図２０に示すように、ＯＦスイッチ２は、例示的に、ＣＰＵ（Central Processing Unit）２２、メモリ２３、記憶装置２４、及び、ＮＷ−ＩＦ２５を備えてよい。ＮＷ−ＩＦ２５は、ＯＦスイッチ２に複数備えられてよい。
【０１３１】
ＣＰＵ２２は、ＯＦＣ３のＣＰＵ３２と同様に、演算能力を備えたプロセッサの一例である。ＣＰＵ２２は、メモリ２３に記憶されたプログラムやデータを適宜に読み出して動作することで、ＯＦスイッチ２としての機能や動作を実現する。
【０１３２】
「プログラム」は、「アプリケーション」あるいは「ソフトウェア」と称してもよい。「データ」には、「プログラム」の実行に用いられるデータや「プログラム」の実行によって生成されたデータが含まれてよい。
【０１３３】
プログラムやデータは、既述のとおり、コンピュータ読取可能な記憶媒体に記録された形態で提供されてよい。コンピュータは、記憶媒体からプログラムやデータを読み取って例えばメモリ２３に展開して用いる。また、プログラムやデータは、サーバ等から通信回線を介してコンピュータに提供（ダウンロード）されてもよい。
【０１３４】
図１９に例示した各部２１２〜２１４、２１６、及び、２１７は、例示的に、ＯＦスイッチ２としての機能や動作を実現するプログラムやデータをＣＰＵ２２が読み取って実行、動作することで具現される。
【０１３５】
別言すると、ＯＦスイッチ２のＣＰＵ２２は、他のＯＦスイッチ２との間のＤＰ通信と、ＯＦＣ３との間のＣＰ通信と、を処理する通信処理部の一例である。ＯＦＣ３は、ＣＰ通信によって、ＯＦスイッチ２間のＤＰにおけるＬＬＤＰパケットのフローを制御できる。
【０１３６】
通信処理部は、例示的に、図１９に示したＯＦプロトコル処理部２１２、テーブル検査部２１６、及び、アクション処理部２１７を含んでよい。ただし、通信処理部には、図１９に例示したＤＢ書き込み部２１３、ＤＢ参照部２１４、及び、フローテーブル２１５が含まれてもよい。
【０１３７】
通信処理部は、ＯＦスイッチ２間のＤＰ通信には、パケットＤＢ２１１におけるＬＬＤＰパケットのいずれかを用い、ＯＦＣ３との間のＣＰ通信には、パケットＤＢ２１１においてフロー制御対象であるＬＬＤＰパケットに対応する識別子を用いる。
【０１３８】
これにより、ＯＦスイッチ２間のＤＰ通信には、標準仕様のＬＬＤＰパケットを用いながら、ＯＦスイッチ２とＯＦＣ３との間のＣＰの通信量を削減できる。別言すると、ＯＦスイッチ２間のＤＰ通信に対してＬＬＤＰ機能を確実に提供しつつ、ＣＰの通信量は削減できる。
【０１３９】
メモリ２３は、例示的に、ＣＰＵ２２のワークメモリであってよく、プログラムやデータが一時的に記憶、展開されて、ＣＰＵ２２の動作に用いられる。メモリ２３は、例示的に、ＲＡＭ等の半導体メモリであってよい。
【０１４０】
記憶装置２４は、例示的に、ＯＦスイッチ２としての機能や動作を実現するプログラムやデータを記憶する。記憶装置２４には、例示的に、ＨＤＤやＳＳＤ等が適用可能である。記憶装置２４に、図１９に例示したパケットＤＢ２１１及びフローテーブル２１５が記憶されてよい。
【０１４１】
なお、メモリ２３と記憶装置２４とを併せて「記憶部」と称してもよい。
【０１４２】
ＮＷ−ＩＦ２５は、例示的に、制御ネットワーク４との接続インタフェースを提供する。ＮＷ−ＩＦ２５を通じて、既述の拡張メッセージを含む制御メッセージの送信又は受信が行なわれてよい。また、ＮＷ−ＩＦ２５は、他のＯＦスイッチ２との接続インタフェースを提供してよい。ＮＷ−ＩＦ２５を通じて、他のＯＦスイッチ２との間でＤＰ伝送路を通じたＤＰの通信が行なわれてよい。
【０１４３】
（ＯＦスイッチ２の動作例）
図２１及び図２２は、ＯＦスイッチ２の動作例を示すフローチャートである。図２１に例示するように、ＯＦスイッチ２は、例えばＯＦプロトコル処理部２１２において、ＯＦプロトコルのメッセージを受信したか否かをチェックする（処理Ｐ２１１）。
【０１４４】
ＯＦプロトコルのメッセージを受信していなければ（処理Ｐ２１１でＮＯ）、ＯＦプロトコル処理部２１２は、ＯＦプロトコルのメッセージの受信チェックを継続してよい。
【０１４５】
ＯＦプロトコルのメッセージを受信すれば（処理Ｐ２１１でＹＥＳ）、ＯＦプロトコル処理部２１２は、受信メッセージのメッセージタイプを参照してＯＦプロトコルの標準的な制御メッセージであるか否かをチェックする（処理Ｐ２１２）。
【０１４６】
受信したメッセージがＯＦプロトコルの標準的な制御メッセージであれば（処理Ｐ２１２でＹＥＳ）、ＯＦプロトコル処理部２１２は、標準のＯＦプロトコルの仕様に従って、受信メッセージを処理してよい（処理Ｐ２１３）。
【０１４７】
例えば、受信したメッセージがパケットアウトであれば、ＯＦプロトコル処理部２１２は、パケットアウトで指定されたポートからＬＬＤＰパケットを送出する処理を行なってよい。
【０１４８】
一方、受信メッセージがＯＦプロトコルの標準的な制御メッセージでなければ（処理Ｐ２１２でＮＯ）、ＯＦプロトコル処理部２１２は、受信メッセージのメッセージタイプを基に、登録要求メッセージであるか否かをチェックしてよい（処理Ｐ２１４）。
【０１４９】
受信メッセージが登録要求メッセージであれば（処理Ｐ２１４でＹＥＳ）、ＯＦプロトコル処理部２１２は、登録要求メッセージに含まれる、ＬＬＤＰパケットのイメージと、対応する識別子と、を、パケットＤＢ２１１に登録してよい（処理Ｐ２１５）。当該登録は、例示的に、ＤＢ書き込み部２１３によって行なわれてよい。
【０１５０】
一方、受信メッセージが登録要求メッセージでなければ（処理Ｐ２１４でＮＯ）、ＯＦプロトコル処理部２１２は、受信メッセージが送出要求メッセージであるか否かを更にチェックしてよい（処理Ｐ２１６）。
【０１５１】
受信メッセージが送出要求メッセージであれば（処理Ｐ２１６でＹＥＳ）、ＯＦプロトコル処理部２１２は、送出要求メッセージに含まれる識別子に対応するＬＬＤＰパケットのイメージをパケットＤＢ２１１からＤＢ参照部２１４を介して読み出す。そして、ＯＦプロトコル処理部２１２は、読み出したＬＬＤＰパケットのイメージを、送出要求メッセージに含まれる送信元ポート情報に対応する出力ポートから送出する（処理Ｐ２１７）。
【０１５２】
このように、ＯＦスイッチ２は、ＯＦＣ３から識別子を指定してＤＰ伝送路にＬＬＤＰパケットを送出する指示を受けると、パケットＤＢ２１１において当該識別子に対応するＬＬＤＰパケットをＤＰ伝送路に送出する。
【０１５３】
なお、受信メッセージが登録要求メッセージ及び送出要求メッセージのいずれでもない場合（処理Ｐ２１４及びＰ２１６でＮＯ）、ＯＦプロトコル処理部２１２は、実行する処理を処理Ｐ２１１に戻してよい。
【０１５４】
以上の処理とは別に、ＯＦスイッチ２は、図２２に例示するように、例えばテーブル検査部２１６において、ＤＰ伝送路からパケットが受信されるか否かをチェックしてよい（処理Ｐ２２１）。
【０１５５】
伝送路からパケットが受信されない場合（処理Ｐ２２１でＮＯ）、テーブル検査部２１６は、パケット受信有無の監視を継続してよい。伝送路からパケットが受信されれば（処理Ｐ２２１でＹＥＳ）、テーブル検査部２１６は、フローテーブル２１５をチェックして（処理Ｐ２２２）、受信パケットがＯＦＣ３宛に送信すべきパケットであるか否かをチェックしてよい（処理Ｐ２２３）。
【０１５６】
受信パケットがＯＦＣ３宛に送信すべきパケットでなければ（処理Ｐ２２３でＮＯ）、テーブル検査部２１６は、アクション処理部２１７と協働して、フローテーブル２１５において条件にマッチした「アクション」に従った処理を実行してよい（処理Ｐ２２４）。
【０１５７】
一方、受信パケットがＯＦＣ３宛に送信すべきパケットであれば（処理Ｐ２２３でＹＥＳ）、テーブル検査部２１６は、例示的に、受信パケットをアクション処理部２１７経由でＯＦプロトコル処理部２１２に転送してよい。
【０１５８】
ＯＦプロトコル処理部２１２は、受信パケットの転送を受けると、例えばＤＢ参照部２１４によってパケットＤＢ２１１を検索して、受信パケットの内容がパケットＤＢ２１１に登録済みであるか否かをチェックしてよい（処理Ｐ２２５及びＰ２２６）。
【０１５９】
登録済みであれば（処理Ｐ２２６でＹＥＳ）、ＯＦプロトコル処理部２１２は、パケットＤＢ２１１から、受信パケットの内容に対応する識別子を読み出し、当該識別子を用いてパケット受信をＯＦＣ３宛に通知してよい（処理Ｐ２２８）。当該通知は、既述のとおり、識別子と受信ポート情報とを含む受信通知メッセージ（図１４参照）によって行なってよい。
【０１６０】
このように、ＯＦスイッチ２は、フローテーブル２１５のフローエントリを基に、受信パケットがＯＦＣ３に送るべきパケットであると判断すると、受信パケットとパケットＤＢ２１１のエントリとを比較して一致するエントリの識別子をＯＦＣ３宛に送信する。
【０１６１】
一方、受信パケットの内容がパケットＤＢ２１１に未登録であれば（処理Ｐ２２６でＮＯ）、ＯＦプロトコル処理部２１２は、標準のＯＦプロトコルでのパケットインによって受信パケットをＯＦＣ３宛に送信してよい（処理Ｐ２２７）。
【０１６２】
以上のように、ＯＦスイッチ２は、他のＯＦスイッチ２とのＤＰ通信には、パケットＤＢ２１１のＬＬＤＰパケットを用い、ＯＦＣ３との間のＣＰ通信には、パケットＤＢ２１１においてフロー制御対象のＬＬＤＰパケットに対応する識別子を用いる。
【０１６３】
したがって、ＯＦスイッチ２間のＤＰ通信には標準仕様のＬＬＤＰパケットを用いながら、ＯＦスイッチ２とＯＦＣ３との間のＣＰの通信量を削減できる。よって、ＯＦスイッチ２間のＤＰ通信に対してＬＬＤＰ機能を確実に提供しつつ、制御ネットワーク４の負荷は軽減して輻輳の発生を抑制することができる。
【０１６４】
（第２実施形態）
図２３は、第２実施形態に係る信システムの構成例を示すブロック図である。図２３に例示する通信システム１は、図１に例示した第１実施形態の通信システム１に比して、ＯＦＣ３と各ＯＦスイッチ２−ｉとの間に、プロトコル変換装置５−ｉが備えられている点が異なる。なお、プロトコル変換装置５−ｉを区別する必要が無い場合は、「プロトコル変換装置５」と略称することがある。
【０１６５】
プロトコル変換装置５−ｉのそれぞれは、対応するＯＦスイッチ２−ｉと通信可能に接続され、また、制御ネットワーク４を介してＯＦＣ３と通信可能に接続されている。
【０１６６】
プロトコル変換装置５は、第１実施形態にて説明した、識別子を用いた登録要求や送出要求、受信通知等の拡張メッセージと、パケットアウトやパケットイン等のＯＦプロトコルにおける標準の制御メッセージと、の間のプロトコル変換を行なう。プロトコル変換装置５は、ＯＦＣ３と複数のＯＦスイッチ２との間のＣＰ通信を中継する中継装置の一例である、と捉えてもよい。
【０１６７】
例えば、プロトコル変換装置５は、それぞれ、ＯＦＣ３との間で、第１実施形態にて説明した、識別子を用いた登録要求や送出要求、受信通知等の拡張メッセージの送信又は受信を行なう。別言すると、プロトコル変換装置５は、第１実施形態においてＯＦスイッチ２が実施していた拡張メッセージの送信又は受信を、ＯＦスイッチ２に代わって行なう。
【０１６８】
そのため、プロトコル変換装置５は、図２４に例示するように、第１実施形態のＯＦスイッチ２に備えられていた各部２１１〜２１４（図１９参照）にそれぞれ相当する各部５１１〜５１４を備えてよい。
【０１６９】
なお、図２４に例示するＯＦプロトコル処理部５１５は、ＯＦプロトコル処理部５１２が拡張メッセージの処理を担当するのに対し、標準のＯＦプロトコルでの制御メッセージの処理を担当する。
【０１７０】
したがって、ＯＦプロトコル処理部５１２は、拡張ＯＦプロトコル処理部５１２と称してもよく、ＯＦプロトコル処理部５１５は、標準ＯＦプロトコル処理部５１５と称してもよい。
【０１７１】
図２４において、ＯＦプロトコル処理部５１２及び５１５は、通信処理部の一例である。なお、通信処理部には、ＤＢ書き込み部５１３及びＤＢ参照部５１４が含まれてもよい。
【０１７２】
通信処理部は、ＯＦＣ３との間のＣＰ通信には、パケットＤＢ５１１においてフロー制御対象であるＬＬＤＰパケットに対応する識別子を用いる。その一方で、通信処理部は、ＯＦスイッチ２のいずれかとの間のＣＰ通信には、パケットＤＢ５１１における識別子のいずれかに対応するＬＬＤＰパケットを用いる。
【０１７３】
プロトコル変換装置５−ｉの追加によって、第２実施形態のＯＦスイッチ２は、拡張メッセージの処理をサポートしなくてよいため、図２５に例示するように、図１９に例示した各部２１１〜２１４は備えられなくてよい。
【０１７４】
別言すると、第２実施形態のＯＦスイッチ２は、第１実施形態で説明した拡張メッセージを、ＯＦプロトコルでの標準的な制御メッセージに加えてサポートするための機能的な拡張が不要である。
【０１７５】
第２実施形態のＯＦスイッチ２のハードウェア構成例は、第１実施形態の図２０に例示した構成例と同様でよい。また、プロトコル変換装置５−ｉのハードウェア構成例は、例えば図１６に示したＯＦＣ３の構成例と同様でよい。例えば、プロトコル変換装置５−ｉのメモリや記憶装置に、パケットＤＢ５１１が記憶されてよい。更に、プロトコル変換装置５−ｉのＣＰＵによって、上述した通信処理部が具現されてよい。
【０１７６】
（動作例）
以下、第２実施形態の動作例について説明する。なお、ＯＦＣ３では、第１実施形態と同様に、プロトコルアプリケーションの一例としてＬＬＤＰアプリケーション３１が実行されていると仮定する。
【０１７７】
第１実施形態と同様に、ＬＬＤＰアプリケーション３１は、ＯＦＣ３が制御の対象とする全てのＯＦスイッチ２に対して、イーサネットタイプ値にＬＬＤＰを示す「88-CC」が設定されたパケットはＯＦＣ３宛に送信することを指定したフローエントリを設定する。
【０１７８】
次に、ＬＬＤＰアプリケーション３１は、各ＯＦスイッチ２の各ポートから送出させるプロトコルメッセージの一例としてＬＬＤＰパケットを生成する。ＬＬＤＰアプリケーション３１は、第１実施形態（例えば図５）と同様に、生成したＬＬＤＰパケットのイメージ毎に、送信元ＯＦスイッチ２の情報と、送信元ポートの情報と、識別子と、を登録した送出パケットＤＢ３１１を生成してよい。
【０１７９】
次に、ＬＬＤＰアプリケーション３１は、ＯＦＣ３を介して各ＬＬＤＰパケットの送信元ＯＦスイッチ２−ｉに対応するプロトコル変換装置５−ｉに対して、ＬＬＤＰパケットのイメージを、対応する識別子と共に通知してよい。当該通知には、図７に例示した、拡張メッセージの一例である登録要求メッセージを用いてよい。
【０１８０】
プロトコル変換装置５−ｉは、登録要求メッセージの受信に応じて、メッセージ本体に設定されているＬＬＤＰパケットのイメージと識別子とを、内部のパケットＤＢ５１１に登録してよい。
【０１８１】
なお、登録要求メッセージは、ＬＬＤＰパケットの送信元ＯＦスイッチ２−ｉに対応するプロトコル変換装置５−ｉのそれぞれに対して送信されてよい。登録要求メッセージを受信したプロトコル変換装置５−ｉのそれぞれにおいて、パケットＤＢ５１１が生成されてよい。
【０１８２】
プロトコル変換装置５−ｉのパケットＤＢ５１１に対する登録が済むと、ＬＬＤＰアプリケーション３１は、送出パケットＤＢ３１１を基に、送信元ＯＦスイッチ２−ｉに対応するプロトコル変換装置５−ｉ宛に、送出要求メッセージ（図９参照）を送信してよい。
【０１８３】
第１実施形態と同様に、送出要求メッセージのメッセージ本体には、送出するＬＬＤＰパケットのイメージに対応する識別子と、送信元ポート情報と、が含められ、ＬＬＤＰパケットのイメージ全体は含められない。
【０１８４】
プロトコル変換装置５−ｉは、送出要求メッセージの受信に応じて、識別子を基にパケットＤＢ５１１を検索して対応するＬＬＤＰパケットのイメージを読み出す。そして、プロトコル変換装置５−ｉは、読み出したイメージをパケットアウトに含めて、対応するＯＦスイッチ２−ｉに送信する。
【０１８５】
別言すると、プロトコル変換装置５−ｉは、ＯＦＣ３から受信した送出要求メッセージを、例えば図３（Ａ）に例示した標準仕様のパケットアウトに変換して、ＯＦスイッチ２−ｉへ送信する。
【０１８６】
ＯＦスイッチ２−ｉ（例えば、ＯＦスイッチ＃１）は、パケットアウトの受信に応じて、当該パケットアウトに含まれるＬＬＤＰパケットのイメージを指定のポート（例えば、ポート＃１）から送出する。
【０１８７】
図２３の例において、ＯＦスイッチ＃１のポート＃１は、ＯＦスイッチ＃５のポート＃２と接続されているので、ＯＦスイッチ＃１のポート＃１から送出されたＬＬＤＰパケットは、ＯＦスイッチ＃５のポート＃２で受信される。
【０１８８】
ＯＦスイッチ＃５では、イーサネットタイプ値にＬＬＤＰを示す「88-CC」が設定されたパケットはＯＦＣ３宛に送信するフローエントリが登録されているので、標準のＯＦプロトコルでのパケットインを用いて、パケット受信をプロトコル変換装置＃５に通知する。
【０１８９】
例えば、当該パケットインには、ＬＬＤＰパケットのイメージと、当該ＬＬＤＰパケットを受信したＯＦスイッチ＃５の識別情報及び受信ポート情報と、が含められてよい。
【０１９０】
プロトコル変換装置＃５では、ＯＦスイッチ＃５からパケットインによって受信したＬＬＤＰパケットのイメージが、この段階では、パケットＤＢ５１１に未登録である。そのため、プロトコル変換装置＃５は、受信ＬＬＤＰパケットのイメージを、例えば図３（Ｂ）に例示した標準のＯＦプロトコルでのパケットインにてＯＦＣ３宛に送信してよい。
【０１９１】
ＯＦＣ３では、プロトコル変換装置＃５からパケットインにて受信したＬＬＤＰパケットのイメージを、当該ＬＬＤＰパケットを受信したＯＦスイッチ＃５の識別情報と受信ポート情報と共に、ＬＬＤＰアプリケーション３１に送る。
【０１９２】
ＬＬＤＰアプリケーション３１では、ＯＦスイッチ＃５が受信したＬＬＤＰパケットのイメージを受信すると、プロトコル変換装置＃５のパケットＤＢ５１１に、当該ＬＬＤＰパケットのイメージと、対応する識別子と、を、プロトコル変換装置＃５に通知してよい。当該通知には、図１２に例示した登録要求メッセージを用いてよい。登録要求メッセージのメッセージ本体には、ＬＬＤＰパケットのイメージと、対応する識別子と、が設定されてよい。
【０１９３】
なお、プロトコル変換装置＃５への登録要求メッセージの送信は、ＯＦスイッチ＃５において以降も同じ内容のＬＬＤＰパケットが受信される可能性があるとの判断に応じて実施されてよい。
【０１９４】
その後、ＬＬＤＰアプリケーション３１は、改めてＯＦスイッチ＃１に対して識別子＃１に対応するＬＬＤＰパケットの送出を要求するために、プロトコル変換装置＃１に送出要求メッセージを送信してよい。この段階では、プロトコル変換装置＃５のパケットＤＢ５１１に、ＯＦスイッチ＃１から受信したＬＬＤＰパケットと同じイメージのパケットが登録されている。
【０１９５】
したがって、プロトコル変換装置＃５は、ＯＦスイッチ＃５がパケットインにてプロトコル変換装置＃５に送信した受信ＬＬＤＰパケットに対応する識別子を用いて、パケット受信を、ＯＦＣ３のＬＬＤＰアプリケーション３１に通知する。
【０１９６】
当該パケット受信の通知には、図１４に例示した受信通知メッセージを用いてよい。受信通知メッセージのメッセージ本体には、受信したＬＬＤＰパケットのイメージに対応する識別子と、受信ポート情報と、が含められ、受信したＬＬＤＰパケットのイメージ全体は含められない。
【０１９７】
以上のようにして、拡張メッセージの処理をサポートしないＯＦスイッチ２に対しても、プロトコル変換装置５−ｉを追加的に備えることで、制御ネットワーク４の負荷を低減できる。
【０１９８】
別言すると、通信システム１にプロトコル変換装置５−ｉを追加すれば、通信システム１に多数存在するＯＦスイッチ２のそれぞれを機能的に拡張したり改変したりしなくても、第１実施形態と同様の作用効果を奏することができる。したがって、第１実施形態で述べた、識別子を用いた制御メッセージ処理の既存通信システム１への導入が容易になる。
【符号の説明】
【０１９９】
１  通信システム
２−１〜２−Ｎ  オープンフロー（ＯＦ）スイッチ
２１１  パケットＤＢ
２１２  ＯＦプロトコル処理部
２１３  ＤＢ書き込み部
２１４  ＤＢ参照部（ＤＢ検索部）
２１５  フローテーブル
２１６  テーブル検査部
２１７  アクション処理部
３  オープンフローコントローラ（ＯＦＣ）
３１  プロトコルアプリケーション（ＬＬＤＰアプリケーション）
３１１  送出パケットＤＢ
３１２  ポートＤＢ
３１３  ＬＬＤＰ処理部
３１４  ＯＦプロトコル処理部
４  制御ネットワーク
４１  スイッチ
５−１〜５−Ｎ  プロトコル変換装置（中継装置）
５１１  パケットＤＢ
５１２  ＯＦプロトコル処理部（拡張ＯＦプロトコル処理部）
５１３  ＤＢ書き込み部
５１４  ＤＢ参照部（ＤＢ検索部）
５１５  ＯＦプロトコル処理部（標準ＯＦプロトコル処理部）
【図１】
0006606919.tif 000002
【図２】
0006606919.tif 000003
【図３】
0006606919.tif 000004
【図４】
0006606919.tif 000005
【図５】
0006606919.tif 000006
【図６】
0006606919.tif 000007
【図７】
0006606919.tif 000008
【図８】
0006606919.tif 000009
【図９】
0006606919.tif 000010
【図１０】
0006606919.tif 000011
【図１１】
0006606919.tif 000012
【図１２】
0006606919.tif 000013
【図１３】
0006606919.tif 000014
【図１４】
0006606919.tif 000015
【図１５】
0006606919.tif 000016
【図１６】
0006606919.tif 000017
【図１７】
0006606919.tif 000018
【図１８】
0006606919.tif 000019
【図１９】
0006606919.tif 000020
【図２０】
0006606919.tif 000021
【図２１】
0006606919.tif 000022
【図２２】
0006606919.tif 000023
【図２３】
0006606919.tif 000024
【図２４】
0006606919.tif 000025
【図２５】
0006606919.tif 000026