(57)【要約】【課題】ネットワークのトポロジ検出に関わる処理負荷を軽減できるようにする。【解決手段】第１のネットワークスイッチ１１−１は、制御装置１２からの指示に応じて、第１のネットワークスイッチ１１−１が有する複数のポートから第１のトポロジ検出用信号を送信する。第１のトポロジ検出用信号を受信した第２のネットワークスイッチ１１−２は、第１のトポロジ検出用信号を基に検出したトポロジ情報を含む応答信号を制御装置１２宛に送信してよい。制御装置１２は、前記応答信号に含まれるトポロジ情報に基づいて、第２のネットワークスイッチ１１−２が有する複数のポートのうち、いずれのポートから第２のトポロジ検出用信号を送信させるかを制御してよい。【選択図】図３
2016181819.tif 000002
【特許請求の範囲】
【請求項１】
複数のネットワークスイッチを備えたネットワークの制御装置であって、
第１のネットワークスイッチ宛に、前記第１のネットワークスイッチが有する複数のポートから第１のトポロジ検出用信号を送信することを指示する制御信号を、送信する送信部と、
前記第１のトポロジ検出用信号を受信した第２のネットワークスイッチが前記第１のトポロジ検出用信号を基に検出したトポロジ情報を含む応答信号を、前記第２のネットワークスイッチから受信する受信部と、
前記応答信号に含まれる前記トポロジ情報に基づいて、前記第２のネットワークスイッチが有する複数のポートのうち、いずれのポートから第２のトポロジ検出用信号を送信させるかを制御する制御部と、
を備えた、ネットワークの制御装置。
【請求項２】
前記制御部は、
前記応答信号に含まれる前記トポロジ情報に基づいて、前記第２のネットワークスイッチが前記第１のトポロジ検出用信号を受信したポートを、前記第２のトポロジ検出用信号の送信元候補から除外する、請求項１に記載のネットワークの制御装置。
【請求項３】
前記制御部は、
前記複数のネットワークスイッチの中から、前記第１のトポロジ検出用信号の送信先である前記第１のネットワークスイッチを、所定のポリシーに従って選択する、請求項１又は２に記載のネットワークの制御装置。
【請求項４】
前記ポリシーは、前記第１のトポロジ検出用信号の送信先としてポート数が他のネットワークスイッチよりも多いネットワークスイッチを前記第１のネットワークスイッチに優先的に選択するポリシーである、請求項３に記載のネットワークの制御装置。
【請求項５】
前記ポリシーは、前記第１のトポロジ検出用信号の送信先としてポート数が他のネットワークスイッチよりも少ないネットワークスイッチを前記第１のネットワークスイッチに優先的に選択するポリシーである、請求項３に記載のネットワークの制御装置。
【請求項６】
前記ポリシーは、前記第１のトポロジ検出用信号の送信先として前記第１のネットワークスイッチを複数選択するポリシーである、請求項３に記載のネットワークの制御装置。
【請求項７】
前記制御部は、
前記受信部にて複数の前記第２のネットワークスイッチから複数の前記応答信号が受信されると、前記第２のトポロジ検出用信号の送信を指示する対象を前記複数の第２のネットワークスイッチの一部に制限する、請求項１〜６のいずれか１項に記載のネットワークの制御装置。
【請求項８】
制御装置によって制御されるネットワークを成す第１及び第２のネットワークスイッチのうちの前記第２のネットワークスイッチであって、
複数のポートから第１のトポロジ検出用信号を送信することを指示する制御信号を前記制御装置から受信した前記第１のネットワークスイッチが、前記指示に従って送信した前記第１のトポロジ検出用信号を受信する受信部と、
前記第１のトポロジ検出用信号を基に検出したトポロジ情報を含む応答信号を、前記制御装置宛に送信する送信部と、
前記第２のネットワークスイッチが有する複数のポートのうち、前記応答信号を受信した前記制御装置が前記トポロジ情報に基づいて指定したポートを第２のトポロジ検出用信号の送信元ポートに設定する制御部と、
を備えた、ネットワークスイッチ。
【請求項９】
前記制御装置が前記指定したポートは、前記第２のネットワークスイッチが有する複数のポートのうち、前記第２のネットワークスイッチが前記第１のトポロジ検出用信号を受信したポート以外のポートである、請求項８に記載のネットワークスイッチ。
【請求項１０】
複数のネットワークスイッチを備えたネットワークを制御装置によって制御する、ネットワークの制御方法であって、
第１のネットワークスイッチは、前記制御装置からの指示に応じて、前記第１のネットワークスイッチが有する複数のポートから第１のトポロジ検出用信号を送信し、
前記第１のトポロジ検出用信号を受信した第２のネットワークスイッチは、前記第１のトポロジ検出用信号を基に検出したトポロジ情報を含む応答信号を前記制御装置宛に送信し、
前記制御装置は、前記応答信号に含まれるトポロジ情報に基づいて、前記第２のネットワークスイッチが有する複数のポートのうち、いずれのポートから第２のトポロジ検出用信号を送信させるかを制御する、ネットワークの制御方法。
【請求項１１】
前記制御装置は、
前記応答信号に含まれる前記トポロジ情報に基づいて、前記第２のネットワークスイッチが前記第１のトポロジ検出用信号を受信したポートを、前記第２のトポロジ検出用信号の送信元候補から除外する、請求項１０に記載のネットワークの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書に記載する技術は、ネットワークの制御装置及び制御方法、並びに、ネットワークスイッチに関する。
【背景技術】
【０００２】
ソフトウェアでネットワーク全体の挙動を制御するＳＤＮ（Software Defined Networking）技術が注目されている。ＳＤＮを実現する一手法として、オープンフロー（OpenFlow, OF）（登録商標）と呼ばれる技術あるいはプロトコルが知られている。
【０００３】
ＯＦプロトコルに準拠したＯＦネットワークでは、ＬＬＤＰ（Link Layer Discovery Protocol）を用いて、ＯＦネットワークのトポロジ検出が行なわれることがある。ＬＬＤＰは、レイヤ２（Ｌ２）の接続を検出したり管理したりするために用いられるプロトコルであり、ＩＥＥＥ８０２．１ａｂとして国際標準化されている。
【０００４】
例えば、オープンフローコントローラ（ＯＦＣ）は、ＯＦネットワークを形成する複数のＯＦスイッチ間の接続関係を検出するための信号を、各ＯＦスイッチとの間で送受信する。ＯＦスイッチ間の「接続関係を検出する」ことは、ＯＦスイッチ間の「リンクを発見する」こと、と言い換えてもよい。
【０００５】
ＯＦスイッチ間の接続関係を検出するための信号に、ＬＬＤＰを用いることができる。ＬＬＤＰの信号は、ＬＬＤＰメッセージ、ＬＬＤＰフレーム、あるいは、ＬＬＤＰパケット等と言い換えられてもよい。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】国際公開第２０１１／０８０８７０号
【特許文献２】特開２０１４−４２３２８号公報
【特許文献３】特開２０１４−２７４４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＬＬＤＰを用いた、ＯＦネットワークのトポロジ検出によると、ＯＦネットワークの規模が大きくなるほど、トポロジ検出に関わるＬＬＤＰ信号の送受信数が増加し、ＯＦＣやＯＦネットワークが過負荷になるおそれがある。
【０００８】
１つの側面では、本明細書の記載する技術の目的の１つは、ネットワークのトポロジ検出に関わる処理負荷を軽減できるようにすることにある。
【課題を解決するための手段】
【０００９】
１つの側面において、ネットワークの制御装置は、複数のネットワークスイッチを備えたネットワークの制御装置であって、送信部と、受信部と、制御部と、を備えてよい。送信部は、第１のネットワークスイッチ宛に、前記第１のネットワークスイッチが有する複数のポートから第１のトポロジ検出用信号を送信することを指示する制御信号を、送信してよい。受信部は、前記第１のトポロジ検出用信号を受信した第２のネットワークスイッチが前記第１のトポロジ検出用信号を基に検出したトポロジ情報を含む応答信号を、前記第２のネットワークスイッチから受信してよい。制御部は、前記応答信号に含まれる前記トポロジ情報に基づいて、前記第２のネットワークスイッチが有する複数のポートのうち、いずれのポートから第２のトポロジ検出用信号を送信させるかを制御してよい。
【００１０】
また、１つの側面において、ネットワークスイッチは、制御装置によって制御されるネットワークを成す第１及び第２のネットワークスイッチのうちの前記第２のネットワークスイッチであって、受信部と、送信部と、制御部と、を備えてよい。受信部は、複数のポートから第１のトポロジ検出用信号を送信することを指示する制御信号を前記制御装置から受信した前記第１のネットワークスイッチが、前記指示に従って送信した前記第１のトポロジ検出用信号を受信してよい。送信部は、前記第１のトポロジ検出用信号を基に検出したトポロジ情報を含む応答信号を、前記制御装置宛に送信してよい。制御部は、前記第２のネットワークスイッチが有する複数のポートのうち、前記応答信号を受信した前記制御装置が前記トポロジ情報に基づいて指定したポートを第２のトポロジ検出用信号の送信元ポートに設定してよい。
【００１１】
更に、１つの側面において、ネットワークの制御方法は、複数のネットワークスイッチを備えたネットワークを制御装置によって制御する、ネットワークの制御方法であって、以下の処理を含んでよい。例えば、第１のネットワークスイッチは、前記制御装置からの指示に応じて、前記第１のネットワークスイッチが有する複数のポートから第１のトポロジ検出用信号を送信してよい。前記第１のトポロジ検出用信号を受信した第２のネットワークスイッチは、前記第１のトポロジ検出用信号を基に検出したトポロジ情報を含む応答信号を前記制御装置宛に送信してよい。前記制御装置は、前記応答信号に含まれるトポロジ情報に基づいて、前記第２のネットワークスイッチが有する複数のポートのうち、いずれのポートから第２のトポロジ検出用信号を送信させるかを制御してよい。
【発明の効果】
【００１２】
１つの側面として、ネットワークのトポロジ検出に関わる処理負荷を軽減できる。
【図面の簡単な説明】
【００１３】
【図１】一実施形態に係るネットワークの構成例を示すブロック図である。
【図２】図１に例示したネットワークのトポロジ検出方法を概念的に説明するための図である。
【図３】図２に例示したネットワークにおいてリンク発見済みのポートからのＬＬＤＰメッセージの送信を抑止する例を概念的に説明するための図である。
【図４】図３に例示したネットワークにおいて３つのＯＦスイッチに着目してリンク発見済みのポートからのＬＬＤＰメッセージの送信を抑止する例を概念的に説明するための図である。
【図５】一実施形態に係る、ＯＦＣの構成例を示すブロック図である。
【図６】一実施形態に係る、ＯＦスイッチの構成例を示すブロック図である。
【図７】一実施形態に係る、ＬＬＤＰを用いたトポロジ検出の一例を概念的に説明するための図である。
【図８】（Ａ）及び（Ｂ）は、ＯＦＣからＯＦスイッチ宛に送信するパケットアウトメッセージの一例を示す図である。
【図９】（Ａ）及び（Ｂ）は、パケットアウトを受信したＯＦスイッチがポートから送信するＬＬＤＰメッセージの一例を示す図である。
【図１０】（Ａ）及び（Ｂ）は、それぞれ、図９（Ａ）及び図９（Ｂ）のＬＬＤＰメッセージを受信したＯＦスイッチがＯＦＣ宛に送信するパケットインメッセージの一例を示す図である。
【図１１】（Ａ）及び（Ｂ）は、パケットインメッセージを受信したＯＦＣがパケットインメッセージの送信元ＯＦスイッチ宛に送信するパケットアウトメッセージの一例を示す図である。
【図１２】（Ａ）及び（Ｂ）は、それぞれ、図１１（Ａ）及び図１１（Ｂ）のパケットアウトメッセージを受信したＯＦスイッチがポートから送信するＬＬＤＰメッセージの一例を示す図である。
【図１３】（Ａ）及び（Ｂ）は、それぞれ、図１２（Ａ）及び図１２（Ｂ）のＬＬＤＰメッセージを受信したＯＦスイッチがＯＦＣ宛に送信するパケットインメッセージの一例を示す図である。
【図１４】（Ａ）及び（Ｂ）は、それぞれ、図１３（Ａ）及び図１３（Ｂ）のパケットインメッセージを受信したＯＦＣがパケットインメッセージの送信元ＯＦスイッチ宛に送信するパケットアウトメッセージの一例を示す図である。
【図１５】（Ａ）及び（Ｂ）は、それぞれ、図１４（Ａ）及び図１４（Ｂ）のパケットアウトメッセージを受信したＯＦスイッチがポートから送信するＬＬＤＰメッセージの一例を示す図である。
【図１６】第１のＯＦスイッチが送信したＬＬＤＰメッセージの受信に応じて第２のＯＦスイッチがパケットインメッセージをＯＦＣ宛に送信する例を説明するための図である。
【図１７】第１のＯＦスイッチに、ＯＦスイッチではないホストが接続されていると、当該ホストからはＯＦＣ宛にパケットインメッセージが送信されないことを説明するための図である。
【図１８】図５に例示したＯＦＣにおけるトポロジ検出終了判定部の動作例を説明するためのフローチャートである。
【図１９】図５に例示したＯＦＣにおけるＬＬＤＰ送信パターン制御部の動作例を説明するためのフローチャートである。
【図２０】図５に例示したＯＦＣにおけるＬＬＤＰ送信パターン制御部の動作例を説明するためのフローチャートである。
【図２１】一実施形態の変形例を説明するための模式的なネットワーク構成図である。
【図２２】一実施形態の変形例を説明するための模式的なネットワーク構成図である。
【図２３】一実施形態の変形例を説明するための模式的なネットワーク構成図である。
【図２４】一実施形態の変形例を説明するための模式的なネットワーク構成図である。
【図２５】一実施形態の変形例を説明するための模式的なネットワーク構成図である。
【発明を実施するための形態】
【００１４】
以下、図面を参照して実施の形態を説明する。ただし、以下に説明する実施形態は、あくまでも例示であり、以下に明示しない種々の変形や技術の適用を排除する意図はない。また、以下に説明する各種の例示的態様は、適宜に組み合わせて実施しても構わない。なお、以下の実施形態で用いる図面において、同一符号を付した部分は、特に断らない限り、同一若しくは同様の部分を表す。
【００１５】
図１は、一実施形態に係るネットワークの構成例を示すブロック図である。図１に示すネットワーク１は、例示的に、オープンフロー（ＯＦ）プロトコルに準拠したＯＦネットワークである。なお、「ネットワーク」は、便宜的に、「システム」と称されてもよい。
【００１６】
ＯＦネットワーク１は、例示的に、複数のＯＦスイッチ（ＯＦ−ＳＷ）１１−１〜１１−Ｎ（Ｎは２以上の整数）と、ＯＦコントローラ（ＯＦＣ）１２と、を備えてよい。図１の例では、Ｎ＝８である。ＯＦスイッチ１１−１〜１１−Ｎを区別しなくてよい場合は、便宜的に、「ＯＦスイッチ１１−ｉ」（ｉは１〜Ｎのいずれか）又は「ＯＦスイッチ１１」と略称することがある。「ＯＦスイッチ」は、「ネットワークスイッチ」の一例である。
【００１７】
ＯＦスイッチ１１には、１又は複数のポート（ｐ）が備えられており、いずれかのポートを通じて他のＯＦスイッチ１１と通信可能に接続される。ＯＦスイッチ１１のポートには、ＯＦスイッチ１１に限らず、サーバ等の「ホスト」が接続されることもある。なお、「ホスト」に接続された「ポート」は、ＯＦネットワーク１の「エッジポート」と称されもよい。
【００１８】
例えば図１において、ＯＦスイッチ１１−１は、３つのポートｐ１１、ｐ１２、及び、ｐ１３を有し、ポートｐ１１に、ホスト１３−１が接続されている。ポートｐ１２は、ＯＦスイッチ１１−２のポートｐ２１と接続され、ポートｐ１３は、ＯＦスイッチ１１−３のポートｐ３１と接続されている。
【００１９】
ＯＦスイッチ１１−２に着目すると、ポートｐ２１は、ＯＦスイッチ１１−１のポートｐ１２と接続され、ポートｐ２２は、ＯＦスイッチ１１−４のポートｐ４１と接続され、ポートｐ２３は、ＯＦスイッチ１１−７のポートｐ７１と接続されている。
【００２０】
ＯＦスイッチ１１−３に着目すると、ポートｐ３１は、ＯＦスイッチ１１−１のポートｐ１３と接続され、ポートｐ３２は、ＯＦスイッチ１１−５のポートｐ５１と接続され、ポートｐ３３は、ＯＦスイッチ１１−６のポートｐ６１と接続されている。
【００２１】
ＯＦスイッチ１１−４に着目すると、ポートｐ４１は、ＯＦスイッチ１１−２のポートｐ２２と接続され、ポートｐ４２は、ＯＦスイッチ１１−５のポートｐ５２と接続されている。
【００２２】
ＯＦスイッチ１１−５に着目すると、ポートｐ５１は、ＯＦスイッチ１１−３のポートＰ３２と接続され、ポートｐ５２は、ＯＦスイッチ１１−４のポートｐ４２と接続されている。また、ポートｐ５３は、ＯＦスイッチ１１−７のポートｐ７３と接続され、ポートｐ５４は、ＯＦスイッチ１１−６のポート６２と接続されている。
【００２３】
ＯＦスイッチ１１−６に着目すると、ポートｐ６１は、ＯＦスイッチ１１−３のポートｐ３３と接続され、ポートｐ６２は、ＯＦスイッチ１１−５のポートｐ５４と接続され、ポートｐ６３は、ＯＦスイッチ１１−８のポートｐ８１と接続されている。
【００２４】
ＯＦスイッチ１１−７に着目すると、ポートｐ７１は、ＯＦスイッチ１１−２のポートｐ２３と接続され、ポートｐ７２は、ＯＦスイッチ１１−８のポートｐ８２と接続され、ポートｐ７３は、ＯＦスイッチ１１−５のポートｐ５３と接続されている。
【００２５】
ＯＦスイッチ１１−８に着目すると、ポートｐ８１は、ＯＦスイッチ１１−６のポートｐ６３と接続され、ポートｐ８２は、ＯＦスイッチ１１−７のポートｐ７２と接続され、ポートｐ８３は、ホスト１３−２に接続されている。なお、以下において、ホスト１３−２とホスト１３−１とを区別しなくてよい場合は、「ホスト１３」と略称することがある。
【００２６】
便宜的に、ＯＦスイッチ１１のスイッチ番号を「ｉ」で表し、ＯＦスイッチ１１に備えられたポート番号を「ｎ」で表すこととすると、ＯＦスイッチ１１−ｉのポートは、上記のようにスイッチ番号「ｉ」とポート番号「ｎ」とを組み合わせた番号で識別できる。ただし、「ｎ」は、１以上の整数である。「番号」は、「識別情報」あるいは「識別子」と言い換えてもよい。ＯＦスイッチ１１の識別情報は、データパス識別子（Datapath ID, DPID）と称されてもよい。
【００２７】
ＯＦＣ１２は、ＯＦネットワーク１のエレメントである各ＯＦスイッチ１１と通信可能に接続されて、ＯＦスイッチ１１間の通信を制御する。ＯＦＣ１２とＯＦスイッチ１１との接続には、ＴＣＰ（Transmission Control Protocol）やＴＬＳ（Transport Layer Security）が適用されてよい。
【００２８】
ＯＦスイッチ１１間の通信は、例示的に、データプレーンにおけるデータの転送であり、「データフロー」と称してもよい。「データフロー」で転送されるデータは、パケットデータであってよい。パケットデータは、単に「パケット」と略称してよい。データフローの経路は、「データパス」と称されてよく、既述の「データパス識別子」を基に、ＯＦネットワーク１における「データパス」が識別されてよい。
【００２９】
ＯＦＣ１２は、ＯＦスイッチ１１間のデータフローを一元的に管理、制御してよい。例えば、ＯＦＣ１２は、ＯＦスイッチ１１が記憶するフローテーブルのエントリを一元的に管理、制御してよい。
【００３０】
ＯＦスイッチ１１間のデータフローを制御するために、ＯＦＣ１２は、ＯＦネットワーク１のトポロジ情報を検出する。トポロジ情報は、ＯＦネットワーク１におけるＯＦスイッチ１１間の接続関係を識別可能にする情報の一例である。トポロジ情報を基に、ＯＦネットワーク１についての経路計算等がＯＦＣ１２において実施されてよい。
【００３１】
トポロジ情報の検出（便宜的に「トポロジ検出」と略称してよい。）には、ＬＬＤＰを適用してよい。ＯＦＣ１２は、接続関係を調べたいＯＦスイッチ１１宛に、ＬＬＤＰの信号を送信する。ＬＬＤＰの信号は、「ＬＬＤＰメッセージ」、「ＬＬＤＰフレーム」、あるいは、「ＬＬＤＰパケット」と称してもよい。
【００３２】
ＬＬＤＰメッセージには、接続関係を調べたいＯＦスイッチ１１のＤＰＩＤ及びポート番号と、当該ＬＬＤＰメッセージを受信したＯＦスイッチ１１の動作（「アクション」と称してもよい。）を指定する情報と、が設定されてよい。
【００３３】
例示的に、「アクション」には、「指定したポート番号のポートからＬＬＤＰメッセージを送信する」ことを示す情報が設定されてよい。このように「アクション」が指定されてＯＦスイッチ１１に宛に送信されるＬＬＤＰメッセージを、「パケットアウト（Packet-Out）メッセージ」と称してよい。パケットアウトメッセージは、単に「パケットアウト」と略称してもよい。パケットアウトは、ＯＦＣ１２からＯＦスイッチ１１宛に送信される制御信号の一例であると捉えてもよい。
【００３４】
パケットアウトは、例示的に、ＯＦネットワーク１の初期立ち上げ時に各ＯＦスイッチ１１がＯＦＣ１２に接続された場合に、各ＯＦスイッチ１１宛に送信され得る。例えば、ＯＦスイッチ１１は、ＯＦネットワーク１への接続後に起動されると、スイッチジョイン（Switch Join, SJ）イベントをＯＦＣ１２宛に送信してよい。ＳＪイベントは、当該ＯＦスイッチ１１がＯＦネットワーク１に接続（「追加」と称してもよい。）されたことをＯＦＣ１２に通知する信号の一例である。
【００３５】
ＳＪイベントの受信に応じて、ＯＦＣ１２は、受信したＳＪイベントの送信元であるＯＦスイッチ１１を、リンク発見の試行対象（別言すると、パケットアウトの送信先）の候補に設定する。リンク発見の試行対象に設定されたＯＦスイッチ１１宛に、ＯＦＣ１２からパケットアウトが送信されてよい。
【００３６】
なお、ＳＪイベントは、例えば、ＯＦＣ１２に障害が発生した後、当該障害の復旧に応じて、各ＯＦスイッチ１１がＯＦＣ１２に再接続された場合にも、各ＯＦスイッチ１１からＯＦＣ１２宛に送信され得る。
【００３７】
パケットアウトを受信した（第１の）ＯＦスイッチ１１は、指定されたアクションに従って、トポロジ検出用信号の一例であるＬＬＤＰメッセージを指定のポートから送信する。
【００３８】
当該ＬＬＤＰメッセージには、当該ＬＬＤＰメッセージが送信されたポートを識別可能な情報（例えばポート番号）が、ＬＬＤＰメッセージの送信元ポート情報として含まれてよい。
【００３９】
ＬＬＤＰメッセージの送信元ポートに他の（第２の）ＯＦスイッチ１１が接続されていれば、当該ＬＬＤＰメッセージが当該第２のＯＦスイッチ１１にて受信される。
【００４０】
ここで、第２のＯＦスイッチ１１において、受信したＬＬＤＰメッセージの処理方法がフローテーブルに未設定であると仮定すると、第２のＯＦスイッチ１１は、処理方法をＯＦＣ１２に問い合わせるために、ＬＬＤＰメッセージをＯＦＣ１２宛に送信する。
【００４１】
ＯＦスイッチ１１からＯＦＣ１２宛に送信されるＬＬＤＰメッセージを「パケットイン（Packet-In）メッセージ」と称してよい。パケットインメッセージは、単に「パケットイン」と略称してもよい。パケットインは、ＯＦスイッチ１１からＯＦＣ１２宛に送信される、パケットアウトに対する応答信号の一例であると捉えてもよい。
【００４２】
パケットインには、送信元である第２のＯＦスイッチ１１のＤＰＩＤと、ＬＬＤＰメッセージを受信したポート番号と、が設定されてよい。ＯＦＣ１２は、第１のＯＦスイッチ１１宛に送信したパケットアウトに設定した情報と、第２のＯＦスイッチ１１から受信したパケットインに設定された情報と、を基に、第１のＯＦスイッチ１１と第２のＯＦスイッチとの間のポート間接続を検出できる。「ポート間接続の検出」は、「リンクの発見（ディスカバリ）」と称してもよいし「トポロジの検出」と称してもよい。
【００４３】
図１の例では、ＯＦスイッチ１１−１が、「第１のＯＦスイッチ」に相当する。ＯＦスイッチ１１−１と接続されたＯＦスイッチ１１−２及び１１−３が、それぞれ、「第２のＯＦスイッチ」に相当する。なお、他のＯＦスイッチ１１と「接続された」ＯＦスイッチ１１は、便宜的に、他のＯＦスイッチ１１と「隣接する」ＯＦスイッチ１１であると、言い換えてもよい。
【００４４】
ＯＦＣ１２は、トポロジ検出の開始に応じて、例えば、ＯＦスイッチ１１−１宛に、「アクション」として「全ポートｐ１１〜ｐ１３からＬＬＤＰメッセージの送信」を指定したパケットアウトを送信する（処理Ｓ１）。
【００４５】
なお、図１の例では、ＯＦＣ１２からＯＦスイッチ１１−１宛にパケットアウトが送信される処理に着目しているが、ＯＦＣ１２は、ＳＪイベントを受信済みの全ＯＦスイッチ１１宛に段階的（あるいは、パラレル）にパケットアウトメッセージを送信してよい。
【００４６】
ＯＦスイッチ１１−１は、当該パケットアウトの受信に応じて、自身のＤＰＩＤを当該メッセージに含めて、パケットアウトで指定されたポートｐ１１〜ｐ１３のそれぞれから送信する（処理Ｓ２）。
【００４７】
各ポートｐ１１〜ｐ１３から送信されるＬＬＤＰメッセージには、送信元ポート番号（ｐ１１、ｐ１２、又は、ｐ１３）が含められてよい。当該「送信元ポート番号」は、「送信元ポート情報」と称してもよい。
【００４８】
ポートｐ１１〜ｐ１３から送信されたＬＬＤＰメッセージは、それぞれ、ホスト１３−１、ＯＦスイッチ１１−２（ポートｐ２１）、及び、ＯＦスイッチ１１−３（ポートｐ３１）にて受信される。
【００４９】
ＯＦスイッチ１１−２及び１１−３は、それぞれ、受信したＬＬＤＰメッセージの処理方法がフローテーブルに未設定であると仮定して、パケットインをＯＦＣ１２宛に送信する（処理Ｓ３）。
【００５０】
例えば、ＯＦスイッチ１１−２は、受信したＬＬＤＰメッセージに、自身のＤＰＩＤと、当該ＬＬＤＰメッセージを受信したポート番号（ｐ２１）と、を含めて、パケットインとしてＯＦＣ１２宛に送信する。
【００５１】
同様に、ＯＦスイッチ１１−３は、受信したＬＬＤＰメッセージに、自身のＤＰＩＤと、当該ＬＬＤＰメッセージを受信したポート番号（ｐ３１）と、を含めて、パケットインとしてＯＦＣ１２宛に送信する。
【００５２】
ＯＦＣ１２は、ＯＦスイッチ１１−２及び１１−３からそれぞれ受信したパケットインメッセージの内容を解析することで、ＯＦスイッチ１１−１と、ＯＦスイッチ１１−２及び１１−３と、の間のリンクを発見する。なお、「リンクの発見」は、ＯＦスイッチ１１間のリンクの存在と、当該リンクの両端に相当する各ＯＦスイッチ１１のポート番号と、を示す情報の検出（又は取得）と捉えてもよい。
【００５３】
例えば、ＯＦＣ１２は、パケットインメッセージに含まれるＤＰＩＤ及びポート番号から、ＯＦスイッチ１１−１のポートｐ１２と、ＯＦスイッチ１１−２のポートｐ２１と、の間のリンクを発見する。同様にして、ＯＦＣ１２は、ＯＦスイッチ１１−１のポートｐ１３と、ＯＦスイッチ１１−３のポートｐ３１と、の間のリンクを発見する。
【００５４】
なお、図１の例において、ＯＦスイッチ１１−１のポートｐ１１から送信されたＬＬＤＰメッセージは、ＯＦスイッチ１１ではないホスト１３−１にて受信される。そのため、ホスト１３−１からパケットインは、ＯＦＣ１２宛に送信されない。別言すると、ホスト１３−１は、ＬＬＤＰメッセージを受信しても無応答である。
【００５５】
ＯＦＣ１２は、以上のようなパケットアウトの送信と、それに対するパケットインの受信とを、ＯＦネットワーク１において接続関係を調べたいＯＦスイッチ１１に対して繰り返し実施してよい。
【００５６】
例えば、ＯＦＣ１２は、ＯＦスイッチ１１−２〜１１−８に対して、段階的に、パケットアウトを繰り返し送信してよい。例示的に、ＯＦＣ１２は、パケットアウトの送信によってパケットインを受信したＯＦスイッチ１１を、次のパケットアウトの送信先に選択してよい。
【００５７】
別言すると、ＯＦＣ１２は、ＯＦネットワーク１において、パケットアウトの送信先ＯＦスイッチ１１を、パケットインを受信したＯＦスイッチ１１に段階的に変更することで、トポロジ検出範囲を徐々に広げてゆく。これにより、ＯＦＣ１２は、最終的に、ＯＦネットワーク１全体のトポロジ情報を検出できる。
【００５８】
ＯＦネットワーク１全体のトポロジ検出後、ＯＦＣ１２は、例えば、定期あるいは不定期に上述した手順を実施してよく、トポロジ情報に変更があれば、トポロジ情報を更新してよい。
【００５９】
ここで、ＯＦネットワーク１においてＯＦスイッチ１１の数が増加するほど、トポロジ検出に関わるＬＬＤＰメッセージの送受信数が増えるため、ＯＦＣ１２やＯＦネットワーク１の負荷が上昇し得る。
【００６０】
例えば、大規模なＯＦネットワーク１のトポロジ検出を実施する場合、各ＯＦスイッチ１１がＯＦＣ１２に接続されて起動されると、各ＯＦスイッチ１１からＯＦＣ１２宛にＳＪイベントが一斉に送信され得る。
【００６１】
ＯＦＣ１２が、ＳＪイベントの受信に応じて、各ＯＦスイッチ１１の全ポートからＬＬＤＰメッセージを送信させると、パケットアウトを受信したＯＦスイッチ１１と接続関係を有する全ＯＦスイッチ１１から、大量のパケットインがＯＦＣ１２で受信され得る。そのため、ＯＦＣ１２が過負荷となるおそれがある。
【００６２】
このようにＯＦＣ１２が過負荷となり得る、想定されるケースの一例としては、以下が挙げられる。
【００６３】
（１）ＯＦネットワーク１の初期立上げ時において、全てのＯＦスイッチ１１間の接続及び設定は完了したが、ＯＦＣ１２とのＴＣＰ（又はＴＬＳ）接続が確立していない状態（「過渡状態」と称してもよい。）で、当該接続を確立するケース。なお、過渡状態では、ＯＦスイッチ１１がＳＪイベントを未だＯＦＣ１２に送信できないため、ＯＦＣ１２は、パケットアウトの送信及びパケットインの受信が未だ行なえない状態である。
【００６４】
（２）ＯＦＣ１２に何らかの障害が発生して、ＯＦＣ１２と各ＯＦスイッチ１１との接続が切断された後、ＯＦＣ１２が障害から復旧して、ＯＦＣ１２と各ＯＦスイッチ１１とを再接続するケース。
【００６５】
上記のようなケース（１）及び（２）において、例えば、ＯＦＣ１２が、単純に全ポートからＬＬＤＰメッセージを送信することを指定したパケットアウトをＯＦＣ１２から各ＯＦスイッチ１１宛に段階的に送信すると仮定する。
【００６６】
この場合、以前のパケットアウトの送信によってリンク発見済みである、ＯＦスイッチ１１のポートからも、トポロジ検出用信号の一例であるＬＬＤＰメッセージが送信される。その結果、発見済みのリンクに関するＤＰＩＤやポート番号を含むパケットインがＯＦＣ１２宛に冗長に送信され得る。
【００６７】
例えば、図１にて説明したようにＯＦスイッチ１１−１のリンク発見後に、図２に例示するように、ＯＦＣ１２が、パケットインの送信元であるＯＦスイッチ１１−２及び１１−３をリンク発見の試行対象に選択したと仮定する。ＯＦＣ１２は、例示的に、ＯＦスイッチ１１−２及び１１−３に、パケットアウトメッセージをそれぞれ送信してよい（処理Ｓ４）。
【００６８】
当該メッセージに、「アクション」として単純に「全ポートからＬＬＤＰメッセージを送信する」ことが指定されていると、ＯＦスイッチ１１−２及び１１−３は、ＯＦＣ１２でリンク発見済みのポートからもＬＬＤＰメッセージを送信することになる（処理Ｓ５）。
【００６９】
例えば、ＯＦスイッチ１１−２は、パケットアウトメッセージの受信に応じて、ＬＬＤＰメッセージを各ポートｐ２１〜ｐ２３から送信するが、ポートｐ２１は、ＯＦスイッチ１１−１のポートｐ１２との間のリンク発見済みのポートである。
【００７０】
同様に、ＯＦスイッチ１１−３は、パケットアウトメッセージの受信に応じて、ＬＬＤＰメッセージを各ポートｐ３１〜ｐ３３から送信するが、ポートｐ３１は、ＯＦスイッチ１１−１のポートｐ１３との間のリンク発見済みのポートである。
【００７１】
ＯＦスイッチ１１−２がポートｐ２１から送信したＬＬＤＰメッセージ、及び、ＯＦスイッチ１１−３がポートｐ３１から送信したＬＬＤＰメッセージは、ＯＦスイッチ１１−１にて受信される。
【００７２】
したがって、ＯＦスイッチ１１−１は、各ＬＬＤＰメッセージの受信に応じて、ＯＦＣ１２でリンク発見済みのポート番号を含むパケットインメッセージをそれぞれＯＦＣ１２宛に送信することになる（処理Ｓ６）。
【００７３】
なお、図２の例において、ＯＦスイッチ１１−４は、ＯＦスイッチ１１−２からＬＬＤＰメッセージを受信し、ＯＦスイッチ１１−５及び１１−６は、ＯＦスイッチ１１−３からＬＬＤＰメッセージを受信する。そのため、ＯＦスイッチ１１−４〜１１−６も、パケットインメッセージをＯＦＣ１２宛に送信する。
【００７４】
図２の例において、ＯＦスイッチ１１−１が送信したパケットインメッセージには、新しいリンクに関する情報は含まれていないため、ＯＦＣ１２にとって結果的には不要なメッセージである。したがって、このような無駄なパケットインの送信を回避あるいは抑制できれば、ＯＦＣ１２やＯＦネットワーク１の負荷の低減を図ることができる。
【００７５】
そのためには、図２の例において、ＯＦスイッチ１１−２及び１１−３が、ＯＦＣ１２でリンク発見済みのポートからＬＬＤＰメッセージを送信することを抑止できればよい（例えば図３の一点鎖線参照）。
【００７６】
リンク発見済みのポートからのＬＬＤＰメッセージの送信を抑止するには、例えば、ＯＦＣ１２が、パケットアウトにおいて送信を指定するポート番号の候補から、リンク発見済みのポート番号を除外すればよい。
【００７７】
例えば図３の例において、ＯＦＣ１２は、ＯＦスイッチ１１−２宛に送信するパケットアウトに、リンク発見済みのポート番号ｐ２１は指定せず、ポート番号ｐ２２及びｐ２３を指定する。また、ＯＦＣ１２は、ＯＦスイッチ１１−３宛に送信するパケットアウトに、リンク発見済みのポート番号ｐ３１は指定せず、ポート番号ｐ３２及びｐ３３を指定する。
【００７８】
これにより、例えば図４に模式的に示すように、パケットアウトを受信したＯＦスイッチ１１−２は、ＯＦスイッチ１１−１に繋がる、リンク発見済みのポート番号ｐ２１のポートからはＬＬＤＰメッセージを送信しない。ＯＦスイッチ１１−２は、リンク未発見のポート番号ｐ２２及びｐ２３の各ポートからＬＬＤＰメッセージを送信する。
【００７９】
同様に、パケットアウトを受信したＯＦスイッチ１１−３は、ＯＦスイッチ１１−１に繋がる、リンク発見済みのポート番号ｐ３１のポートからはＬＬＤＰメッセージを送信しない。ＯＦスイッチ１１−３は、リンク未発見のポート番号ｐ３２及びｐ３３の各ポートからＬＬＤＰメッセージを送信する。
【００８０】
なお、リンク発見済みのポート番号をパケットアウトに指定する情報の候補から除外することは、ＯＦスイッチ１１によるＬＬＤＰメッセージの送信を制御することに相当する、と捉えてよい。ＯＦスイッチ１１によるＬＬＤＰメッセージの送信を制御することは、ＬＬＤＰメッセージの送信パターンを制御すること、と捉えてもよい。
【００８１】
（ＯＦＣ及びＯＦスイッチの構成例）
次に、上述した動作を可能にするＯＦＣ１２の機能的な構成例について、図５を参照して説明する。また、図６を参照して、ＯＦスイッチ１１の機能的な構成例を説明する。
【００８２】
（ＯＦＣの構成例）
図５に示すＯＦＣ１２は、例示的に、トポロジ情報記憶部１２１、ＬＬＤＰフレーム生成部１２２、パケットアウト送信部１２３、ＯＦスイッチ接続部１２４、パケットイン受信部１２５、及び、トポロジ更新部１２６を備えてよい。また、ＯＦＣ１２は、ＬＬＤＰ送信パターン制御部１２７と、トポロジ検出終了判定部１２８と、を備えてよい。
【００８３】
トポロジ情報記憶部１２１は、ＯＦネットワーク１のトポロジ情報を記憶する。トポロジ情報記憶部１２１には、ＲＡＭ（Random Access Memory）やフラッシュメモリ、ハードディスクドライブ（ＨＤＤ）等の記憶デバイスが適用されてよい。なお、以下において、トポロジ情報記憶部１２１を単に「記憶部１２１」と略称することがある。
【００８４】
ＬＬＤＰフレーム生成部１２２は、例示的に、パケットアウトメッセージ等のＬＬＤＰフレームを生成する。
【００８５】
パケットアウト送信部１２３は、例示的に、いずれかのＯＦスイッチ１１宛にパケットアウトメッセージを送信する。
【００８６】
ＯＦスイッチ接続部１２４は、例示的に、ＯＦネットワーク１におけるＯＦスイッチ１１との間で、既述のＴＣＰやＴＬＳによる接続を確立する。
【００８７】
パケットイン受信部１２５は、例示的に、いずれかのＯＦスイッチ１１が送信したパケットインメッセージを受信する。
【００８８】
トポロジ更新部１２６は、例示的に、パケットイン受信部１２５で受信されたパケットインメッセージを基にトポロジ情報を検出し、検出したトポロジ情報によってトポロジ情報記憶部１２１に記憶されたトポロジ情報を更新する。
【００８９】
ＬＬＤＰ送信パターン制御部１２７は、例示的に、記憶部１２１のトポロジ情報に基づいて、既述のように、ＯＦスイッチ１１によるＬＬＤＰメッセージの送信パターンを制御する。
【００９０】
例えば、ＬＬＤＰ送信パターン制御部１２７は、記憶部１２１のトポロジ情報に基づいて、リンク発見済みである、ＯＦスイッチ１１のポート番号を識別し、識別したポート番号を、パケットアウトメッセージへの指定候補から除外する。
【００９１】
トポロジ検出終了判定部１２８は、例示的に、ＯＦネットワーク１のトポロジ検出が終了したか否かを判定する。例示的に、トポロジ検出終了判定部１２８は、後述するように、ＯＦスイッチ接続部１２４にて、或る設定時間にわたってＳＪイベントが受信されなければ、トポロジ検出が完了したと判定してよい。
【００９２】
あるいは、トポロジ検出終了判定部１２８は、リンク未発見のＯＦスイッチ１１のポートがホスト１３に繋がっていると判断してよければ、トポロジ検出が完了したと判定してよい。
【００９３】
例えば、ＬＬＤＰ送信パターン制御部１２７が、リンク未発見のＯＦスイッチ１１のポートからＬＬＤＰメッセージを送信させても、パケットインがパケットイン受信部１２５で受信されなければ、当該ポートはホスト１３に繋がるポートであると判定してよい。
【００９４】
（ＯＦスイッチの構成例）
図６に示すように、ＯＦスイッチ１１は、例示的に、プロセッサ１１１と、メモリ１１２と、ネットワークインタフェース（ＮＷ−ＩＦ）１１３と、を備えてよい。プロセッサ１１１、メモリ１１２、及び、ＮＷ−ＩＦ１１３は、互いに通信可能にバス１１４にて接続されてよい。
【００９５】
プロセッサ１１１は、ＯＦスイッチ１１の全体的な動作を制御する。プロセッサ１１１には、例示的に、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）等の、演算能力を備えた演算装置や演算回路、演算デバイスを適用してよい。
【００９６】
例示的に、プロセッサ１１１は、メモリ１１２に記憶されたプログラムやデータを適宜に読み取って動作することにより、ＯＦスイッチ１１としての機能を具現する。「プログラム」は、「ソフトウェア」あるいは「アプリケーション」と称してもよい。「データ」には、図６に例示するように、フローテーブル１１２１が含まれてよい。
【００９７】
プロセッサ１１１の動作に応じてＯＦスイッチ１１において具現される機能には、図６に例示するように、パケットイン送信部１１１１、パケットアウト受信部１１１２、及び、フロー転送部１１１３としての機能が含まれてよい。
【００９８】
パケットイン送信部１１１は、ＯＦＣ１２宛のパケットインを生成し、バス１１４を通じてＮＷ−ＩＦ１１３へ送信する。ＯＦＣ１２宛のパケットインは、例示的に、メモリ１１２に記憶されたフローテーブル１１２１に、受信したＬＬＤＰメッセージの処理方法が未設定であることの検出に応じて生成されてよい。
【００９９】
パケットアウト受信部１１１２は、ＯＦＣ１２が送信したパケットアウトを、ＮＷ−ＩＦ１１３及びバス１１４を通じて受信する。
【０１００】
フロー転送部１１１３は、フローテーブル１１２１の設定内容に従って、データフローの転送処理を実施する。例えば、フロー転送部１１１３は、受信パケットをフローテーブル１１２１の設定内容に従って適切なポートへ受信パケットを転送する。
【０１０１】
また、フロー転送部１１１３は、例えば、パケットアウト受信部１１１２によるパケットアウトの受信に応じてＬＬＤＰメッセージを生成して、当該パケットアウトに指定されている、ＮＷ−ＩＦ１１３のポートへＬＬＤＰメッセージを送信してよい。
【０１０２】
別言すると、フロー転送部１１１３は、ＬＬＤＰメッセージの送信元ポートを、ＯＦＣ１２から受信したパケットアウトで指定されているポートに設定してよい。したがって、フロー転送部１１１３は、ＬＬＤＰメッセージの送信元ポートの設定を制御する制御部の一例であると捉えてもよい。
【０１０３】
メモリ１１２は、例示的に、既述のプログラムやデータ（フローテーブル１１２１を含んでよい。）を記憶する。メモリ１１２は、記憶デバイスあるいは記憶媒体の一例であり、ＲＡＭ（Random Access Memory）やフラッシュメモリ、ＳＳＤ（Solid State Drive）、ＨＤＤ（Hard Disk Drive）等が適用されてよい。
【０１０４】
フローテーブル１１２１は、例示的に、フロー転送部１１１３によるフロー転送に用いられる経路情報の一例である。経路情報は、例示的に、ＯＦＣ１２によって計算されてＯＦスイッチ１１に設定されてよい。
【０１０５】
ＮＷ−ＩＦ１１３は、例示的に、他のＯＦスイッチ１１及びＯＦＣ１２との通信を可能にするインタフェースであり、既述のパケットインやパケットアウトを含むＬＬＤＰメッセージの送受信が可能である。
【０１０６】
例えば、ＮＷ−ＩＦ１１３は、受信処理に着目すれば、ＯＦＣ１２が送信したパケットアウトを受信する受信部の一例であり、他のＯＦスイッチ１１がＯＦＣ１２の指示に応じて送信したＬＬＤＰメッセージを受信する受信部の一例でもある。
【０１０７】
また、ＮＷ−ＩＦ１１３は、送信処理に着目すれば、パケットイン送信部１１１１が送信したパケットインをＯＦＣ１２宛に送信する送信部の一例である。なお、ＮＷ−ＩＦ１１３は、既述のＴＣＰやＴＬＳによってＯＦＣ１２との通信を確立できる。
【０１０８】
（動作例）
以下、図７〜図２０を参照して、上述したＯＦネットワーク１のトポロジ検出例について説明する。なお、図７の例では、３つのＯＦスイッチ１１−１〜１１−３に着目している。
【０１０９】
ＯＦスイッチ１１−１は、例示的に、２つのポートｐ１及びｐ２を有し、ＯＦスイッチ１１−２及び１１−３は、それぞれ例示的に、３つのポートｐ１〜ｐ３を有している。
【０１１０】
図７の（１）の例では、３つのＯＦスイッチ１１のいずれについても物理的な接続はなされているがリンクは未発見の状態（「初期状態」と称してよい。）にある。ただし、各ＯＦスイッチ１１−１〜１１−３は、ＯＦＣ１２との間でＴＣＰ（又はＴＬＳ）のセッションを確立しており、当該セッションの確立過程で、ポートの情報（ポート番号等の識別情報）をＯＦＣ１２に通知済みであると仮定する。したがって、ＯＦＣ１２は、各ＯＦスイッチ１１−１〜１１−３のポート情報を把握している。ポート情報は、例えば図５に示した記憶部１２１に記憶されてよい。
【０１１１】
初期状態において、ＯＦＣ１２は、例えばＬＬＤＰ送信パターン制御部１２７にて、ＯＦスイッチ１１−１をリンク発見の最初の試行対象に選択したと仮定する。なお、リンク発見の最初の試行対象とするＯＦスイッチ１１は、ランダムに選択されてもよいし、後述するポリシーに従って選択されてもよい。
【０１１２】
当該選択に応じて、ＬＬＤＰ送信パターン制御部１２７は、ＬＬＤＰフレーム生成部１２２に指示を与えて、例えば図８（Ａ）及び図８（Ｂ）に示すような、ＯＦスイッチ１１−１宛のパケットアウトメッセージを生成させる。
【０１１３】
図８（Ａ）及び図８（Ｂ）に例示するように、パケットアウトメッセージは、ＯＦスイッチ１１−１のポート別に生成されてよい。パケットアウトメッセージは、ＬＬＤＰヘッダとペイロードとを有し、ペイロードに、ＬＬＤＰメッセージの送信先ポート情報と、送信元ポート情報と、が設定されてよい。
【０１１４】
送信先ポート情報に、ＬＬＤＰメッセージをＯＦスイッチ１１−１のどのポートから送信するかを示す情報が設定されてよい。
【０１１５】
例えば図８（Ａ）の例において、第１のパケットアウトの送信先ポート情報には、ＯＦスイッチ１１−１のポートｐ１を示す情報（例えば、ＳＷ１［ｐ１］で表されるポート情報）が設定されてよい。
【０１１６】
同様に、図８（Ｂ）の例において、第２のパケットアウトの送信先情報には、ＯＦスイッチ１１−１のポートｐ２を示す情報（例えば、ＳＷ１［ｐ２］で表されるポート情報）が設定されてよい。
【０１１７】
なお、第１及び第２のパケットアウトのいずれについても、送信元ポート情報には、ＯＦＣ１２の識別情報が設定されてよい。また、パケットアウトは、各ポートｐ１及びｐ２に共通のメッセージとして生成されてもよい。例えば、１つのペイロードに、上記のポート情報ＳＷ１［ｐ１］及びＳＷ１［ｐ２］の双方が設定されたパケットアウトがＯＦＣ１２において生成されてもよい。
【０１１８】
ＯＦスイッチ１１−１は、ＯＦＣ１２からパケットアウトを受信すると、図７の（２）に例示するように、受信したパケットアウトに設定されている送信先ポート情報によって識別されるポートｐ１及びｐ２からＬＬＤＰメッセージを送信する。当該ＬＬＤＰメッセージは、「第１のトポロジ検出用信号」に相当すると捉えてよい。
【０１１９】
図９（Ａ）及び図９（Ｂ）に、それぞれ、ＯＦスイッチ１１−１がポートｐ１及びｐ２から送信するＬＬＤＰメッセージの一例を示す。
【０１２０】
図９（Ａ）に例示するように、ＯＦスイッチ１１−１は、ペイロードに、ＬＬＤＰメッセージの送信元であるポートｐ１を示す送信元ポート情報（例えば、ＳＷ１［ｐ１］）を設定したＬＬＤＰメッセージを生成してポートｐ１から送信する。
【０１２１】
また、図９（Ｂ）に例示するように、ＯＦスイッチ１１−１は、ペイロードに、ＬＬＤＰメッセージの送信元であるポートｐ２を示す送信元ポート情報（例えば、ＳＷ１［ｐ２］）を設定したＬＬＤＰメッセージを生成してポートｐ２から送信する。なお、図９（Ａ）及び図９（Ｂ）において、送信先のポート情報は「空」でよい。
【０１２２】
ＯＦスイッチ１１−１のポートｐ１から送信されたＬＬＤＰメッセージは、当該ポートｐ１に繋がるＯＦスイッチ１１−２のポートｐ１に到達する。ＯＦスイッチ１１−１のポートｐ２から送信されたＬＬＤＰメッセージは、当該ポートｐ２に繋がるＯＦスイッチ１１−３のポートｐ１に到達する。
【０１２３】
ＯＦスイッチ１１−２及び１１−３は、いずれも、ポートｐ１を通じてＬＬＤＰメッセージを受信すると、フローテーブル１１２１を参照して、受信したＬＬＤＰメッセージの処理方法を確認する。
【０１２４】
本例では、ＬＬＤＰメッセージの処理方法がフローテーブルに未設定（初期状態）であるため、ＯＦスイッチ１１−２及び１１−３は、いずれも、パケットインメッセージを生成してＯＦＣ１２宛に送信する。当該パケットインメッセージには、ＬＬＤＰメッセージを受信したポート情報が送信元ポート情報として設定されてよい。
【０１２５】
図１０（Ａ）及び図１０（Ｂ）に、それぞれ、ＯＦスイッチ１１−２及び１１−３がＯＦＣ１２宛に送信するパケットインメッセージの一例を示す。
【０１２６】
図１０（Ａ）に例示するように、ＯＦスイッチ１１−２は、ペイロードに、ＬＬＤＰメッセージを受信したポートｐ１の情報（例えば、ＳＷ２［ｐ１］）を送信元ポート情報として設定したＬＬＤＰメッセージを生成してＯＦＣ１２宛に送信する。
【０１２７】
また、図１０（Ｂ）に例示するように、ＯＦスイッチ１１−３は、ペイロードに、ＬＬＤＰメッセージを受信したポートｐ１の情報（例えば、ＳＷ３［ｐ１］）を送信元ポート情報として設定したＬＬＤＰメッセージを生成してＯＦＣ１２宛に送信する。
【０１２８】
なお、図１０（Ａ）及び図１０（Ｂ）において、送信先ポート情報には、ＯＦＣ１２の識別情報が設定されてよい。
【０１２９】
ＯＦＣ１２は、ＯＦスイッチ１１−２及び１１−３からそれぞれ送信されたパケットインメッセージを受信することにより、ＯＦスイッチ１１−１とＯＦスイッチ１１−２及び１１−３との間のリンクを発見できる。
【０１３０】
例えば、ＯＦＣ１２は、図８（Ａ）のパケットアウトにおける送信先ポート情報（ＳＷ１［ｐ１］）と、図１０（Ａ）のパケットインにおける送信元ポート情報（ＳＷ２［ｐ１］）と、を基に、ＳＷ１［ｐ１］−ＳＷ２［ｐ１］間のリンクを発見できる。
【０１３１】
同様に、ＯＦＣ１２は、図８（Ｂ）のパケットアウトにおける送信先ポート情報（ＳＷ１［ｐ２］）と、図１０（Ｂ）のパケットインにおける送信元ポート情報（ＳＷ３［ｐ１］）と、を基に、ＳＷ１［ｐ２］−ＳＷ３［ｐ１］間のリンクを発見できる。
【０１３２】
ＯＦＣ１２は、発見したリンクの情報（「リンク情報」と略称してよい。）を例えばトポロジ更新部１２６によって記憶部１２１に記憶する。なお、リンク情報は、パケットインの受信に応じて蓄積、更新されてゆき、記憶部１２１に蓄積されたリンク情報の集合を「トポロジ情報」と称してよい。
【０１３３】
ＯＦＣ１２（例えば、ＬＬＤＰ送信パターン制御部１２７）は、当該トポロジ情報を基に、新たなパケットアウトの送信先ポート情報への設定候補から、発見済みのリンクに関わるポート情報を除外する。例えば、上述した例では、ＳＷ２［ｐ１］及びＳＷ３［ｐ１］のポート情報が、設定候補から除外される。
【０１３４】
したがって、例えば、ＯＦＣ１２は、ＯＦスイッチ１１−２宛に、ＯＦスイッチ１１−２の各ポートｐ１〜ｐ３のうち、ポートｐ１以外のポートｐ２及びｐ３からＬＬＤＰメッセージを送信することを示すパケットアウトを送信する。
【０１３５】
同様に、ＯＦＣ１２は、ＯＦスイッチ１１−３宛に、ＯＦスイッチ１１−３の各ポートｐ１〜ｐ３のうち、ポートｐ１以外のポートｐ２及びｐ３からＬＬＤＰメッセージを送信することを示すパケットアウトを送信する。
【０１３６】
図１１（Ａ）及び図１１（Ｂ）に、それぞれ、ＯＦＣ１２が、ＯＦスイッチ１１−２及び１１−３宛に送信するパケットアウトメッセージの一例を示す。
【０１３７】
図１１（Ａ）に例示するように、ＯＦＣ１２は、ペイロードに、ＯＦスイッチ１１−２のポートｐ２を示す情報（例えば、ＳＷ２［ｐ２］）を送信先ポート情報として設定したパケットアウトを生成して、ＯＦスイッチ１１−２宛に送信する。
【０１３８】
また、図１１（Ｂ）に例示するように、ＯＦＣ１２は、ペイロードに、ＯＦスイッチ１１−２のポートｐ３を示すポート情報（例えば、ＳＷ２［ｐ３］）を送信先ポート情報として設定したパケットアウトを生成して、ＯＦスイッチ１１−２宛に送信する。
【０１３９】
なお、図１１（Ａ）及び図１１（Ｂ）に例示するパケットアウトのいずれについても、送信元ポート情報には、ＯＦＣ１２の識別情報が設定されてよい。ＯＦＣ１２は、ＯＦスイッチ１１−３の各ポートｐ２及びｐ３についても、同様にして、パケットアウトを送信してよい。
【０１４０】
ＯＦスイッチ１１−２及び１１−３は、それぞれ、ＯＦＣ１２からパケットアウトを受信すると、図７の（３）に例示するように、受信したパケットアウトの送信先ポート情報によって識別されるポートｐ２及びｐ３からＬＬＤＰメッセージを送信する。当該ＬＬＤＰメッセージは、「第２のトポロジ検出用信号」に相当すると捉えてよい。
【０１４１】
図１２（Ａ）及び図１２（Ｂ）に、それぞれ、ＯＦスイッチ１１−２がポートｐ２及びｐ３から送信するＬＬＤＰメッセージの一例を示す。
【０１４２】
図１２（Ａ）に例示するように、ＯＦスイッチ１１−２は、ペイロードに、ＬＬＤＰメッセージの送信元であるポートｐ２を示す送信元ポート情報（例えば、ＳＷ２［ｐ２］）を設定したＬＬＤＰメッセージを生成してポートｐ２から送信する。
【０１４３】
また、図１２（Ｂ）に例示するように、ＯＦスイッチ１１−２は、ペイロードに、ＬＬＤＰメッセージの送信元であるポートｐ３を示す送信元ポート情報（例えば、ＳＷ２［ｐ３］）を設定したＬＬＤＰメッセージを生成してポートｐ３から送信する。
【０１４４】
なお、図１２（Ａ）及び図１２（Ｂ）において、送信先のポート情報は「空」でよい。また、ＯＦスイッチ１１−２のポートｐ１は、パケットアウトの送信先ポート情報に設定されていないため、ＯＦスイッチ１１−２は、ポートｐ１からはＬＬＤＰメッセージを送信しない。
【０１４５】
ＯＦスイッチ１１−３においても、ＯＦスイッチ１１−２と同様にして、パケットアウトの受信に応じて、ＬＬＤＰメッセージの送信が実施される。例えば、ＯＦスイッチ１１−３は、ペイロードに、ＬＬＤＰメッセージの送信元であるポートｐ２を示す送信元ポート情報（例えば、ＳＷ３［ｐ２］）を設定したＬＬＤＰメッセージを生成してポートｐ２から送信する。
【０１４６】
また、ＯＦスイッチ１１−３は、ペイロードに、ＬＬＤＰメッセージの送信元であるポートｐ３を示す送信元ポート情報（例えば、ＳＷ３［ｐ３］）を設定したＬＬＤＰメッセージを生成してポートｐ３から送信する。
【０１４７】
ＯＦスイッチ１１−２のポートｐ２から送信されたＬＬＤＰメッセージは、当該ポートｐ２に繋がるＯＦスイッチ１１−３のポートｐ２に到達する。また、ＯＦスイッチ１１−３のポートｐ２から送信されたＬＬＤＰメッセージは、当該ポートｐ２に繋がるＯＦスイッチ１１−２のポートｐ２に到達する。
【０１４８】
ＯＦスイッチ１１−２及び１１−３は、いずれも、ポートｐ２を通じてＬＬＤＰメッセージを受信すると、フローテーブル１１２１を参照して、受信したＬＬＤＰメッセージの処理方法を確認する。
【０１４９】
本例では、ＬＬＤＰメッセージの処理方法がフローテーブルに未設定（初期状態）であるため、ＯＦスイッチ１１−２及び１１−３は、いずれも、パケットインメッセージを生成してＯＦＣ１２宛に送信する。当該パケットインメッセージには、ＬＬＤＰメッセージを受信したポート情報が送信元ポート情報として設定されてよい。
【０１５０】
図１３（Ａ）及び図１３（Ｂ）に、それぞれ、ＯＦスイッチ１１−２及び１１−３がＯＦＣ１２宛に送信するパケットインメッセージの一例を示す。
【０１５１】
図１３（Ａ）に例示するように、ＯＦスイッチ１１−２は、ペイロードに、ＬＬＤＰメッセージを受信したポートｐ２の情報（例えば、ＳＷ２［ｐ２］）を送信元ポート情報として設定したパケットインメッセージを生成してＯＦＣ１２宛に送信する。
【０１５２】
また、図１３（Ｂ）に例示するように、ＯＦスイッチ１１−３は、ペイロードに、ＬＬＤＰメッセージを受信したポートｐ２の情報（例えば、ＳＷ３［ｐ２］）を送信元ポート情報として設定したパケットインメッセージを生成してＯＦＣ１２宛に送信する。
【０１５３】
なお、図１３（Ａ）及び図１３（Ｂ）において、送信先ポート情報には、ＯＦＣ１２の識別情報が設定されてよい。
【０１５４】
ＯＦＣ１２は、ＯＦスイッチ１１−２及び１１−３からそれぞれ送信されたパケットインメッセージを受信することにより、図７の（４）に例示するように、ＯＦスイッチ１１−２とＯＦスイッチ１１−３との間のリンクを発見できる。
【０１５５】
例えば、ＯＦＣ１２は、図１１（Ａ）のパケットアウトにおける送信先ポート情報（ＳＷ２［ｐ２］）と、図１３（Ｂ）のパケットインにおける送信元ポート情報（ＳＷ３［ｐ２］）と、を基に、ＳＷ２［ｐ２］−ＳＷ３［ｐ２］間のリンクを発見できる。
【０１５６】
なお、ＳＷ２［ｐ２］−ＳＷ３［ｐ２］間のリンクは、ＯＦスイッチ１１−３宛に送信したパケットアウトの送信先ポート情報と、ＯＦスイッチ１１−２から受信したパケットインの送信元ポート情報と、を基にしてもＯＦＣ１２において発見できる。
【０１５７】
ＯＦＣ１２は、発見したリンク情報を例えばトポロジ更新部１２６によって記憶部１２１に記憶してトポロジ情報を更新する。
【０１５８】
ところで、ＯＦスイッチ１１−２及び１１−３のポートｐ３から送信されたＬＬＤＰメッセージのいずれかが、ＯＦスイッチ１１ではないホスト１３に到達することがある。
【０１５９】
図１６に例示するように、ＬＬＤＰメッセージの受信先がＯＦスイッチ１１であれば、ＯＦスイッチ１１からＯＦＣ１２宛にパケットインメッセージが送信され得る。これに対し、図１７に例示するように、ＬＬＤＰメッセージの受信先がホスト１３であると、ホスト１３は、ＯＦスイッチ１１ではないため、ＯＦＣ１２宛にパケットインメッセージを送信しない。
【０１６０】
そのため、ＯＦスイッチ１１−２及び１１−３の各ポートｐ３の一方又は双方がホスト１３に繋がっていると、ＯＦＣ１２は、ＯＦスイッチ１１−２及び１１−３の各ポートｐ３の一方又は双方のリンクを発見できない。
【０１６１】
仮に、ＯＦスイッチ１１−２のポートｐ３のリンクが発見できなければ、ＯＦＣ１２は、例えば図１４（Ａ）に示すように、送信先ポート情報にポートｐ３の情報（ＳＷ２［ｐ３］）を設定したパケットアウトをＯＦスイッチ１１−２宛に送信してよい。
【０１６２】
ＯＦスイッチ１１−２は、当該パケットアウトを受信すると、例えば図１５（Ａ）に示すように、送信元ポート情報にポートｐ３の情報（例えば、ＳＷ２［ｐ３］を設定したＬＬＤＰメッセージを生成してポートｐ３から送信する。
【０１６３】
同様に、ＯＦスイッチ１１−３のポートｐ３のリンクが発見できなければ、ＯＦＣ１２は、例えば図１４（Ｂ）に示すように、送信先ポート情報にポートｐ３の情報（ＳＷ３［ｐ３］）を設定したパケットアウトをＯＦスイッチ１１−３宛に送信してよい。
【０１６４】
ＯＦスイッチ１１−３は、当該パケットアウトを受信すると、例えば図１５（Ｂ）に示すように、送信元ポート情報にポートｐ３の情報（例えば、ＳＷ３［ｐ３］を設定したＬＬＤＰメッセージを生成してポートｐ３から送信する。
【０１６５】
ＯＦＣ１２は、ＯＦスイッチ１１−２宛に送信したパケットアウトに対するパケットインが設定時間待っても受信されなければ、ＯＦスイッチ１１−２のポートｐ３は、例えば、「ホスト１３に繋がっている」と判定してよい。
【０１６６】
同様に、ＯＦＣ１２は、ＯＦスイッチ１１−３宛に送信したパケットアウトに対するパケットインが設定時間待っても受信されなければ、ＯＦスイッチ１１−３のポートｐ３は、例えば、「ホスト１３に繋がっている」と判定してよい。
【０１６７】
図７の（５）には、ＯＦスイッチ１１−２及び１１−３の各ポートｐ３が、いずれも、ホスト１３に繋がっているケースを例示している。当該ケースでは、ＯＦＣ１２は、３つのＯＦスイッチ１１−１〜１１−３についてのトポロジ検出が完了したと判断してトポロジ検出を終了してよい。以上のようなトポロジ検出の終了判定は、例示的に、図５に示したトポロジ検出終了判定部１２８にて実施されてよい。
【０１６８】
例示的に、トポロジ検出終了判定部１２８（以下、便宜的に「判定部１２８」と略称することがある。）は、図１８に示すフローチャートに従って、トポロジ検出の終了判定を実施してよい。
【０１６９】
例えば、トポロジ検出終了判定部１２８は、ＯＦスイッチ１１が送信したＳＪイベントの受信を検出すると（処理Ｓ３０１）、設定時間を待ってから（処理Ｓ３０２）、再度、ＳＪイベント受信を受信するか否かを監視する（処理Ｓ３０３）。
【０１７０】
なお、ＳＪイベントは、例えば図５に示したＯＦスイッチ接続部１２４にて受信される。ＯＦスイッチ接続部１２４は、ＳＪイベントの受信をトポロジ検出終了判定部１２８に通知する。また、設定時間は、タイマによって計時されてよい。当該タイマは、便宜的に、「ＳＪ受信待ちタイマ」と称してよい。図５に例示するように、ＳＪ受信待ちタイマ１２８１は、トポロジ検出終了判定部１２８に備えられてよい。ＳＪ受信待ちタイマ１２８１が計時する時間は、設定によって変更可能であってよい。
【０１７１】
ＳＪ受信待ちタイマ１２８１がタイムアウトする前に、ＳＪイベントが受信されれば（処理Ｓ３０３でＹＥＳの場合）、トポロジ検出終了判定部１２８は、ＳＪイベントの受信監視を継続する。その際、ＳＪ受信待ちタイマ１２８１は、リセットされてよい。
【０１７２】
ＳＪ受信待ちタイマ１２８１がタイムアウトしても、ＳＪイベントが受信されなければ（処理Ｓ３０３でＮＯの場合）、判定部１２８は、パケットアウトに対して反応が無いためにリンクを発見できないポートにはホスト１３が接続されていると判定してよい。
【０１７３】
当該判定に応じて、判定部１２８は、トポロジ検出を終了してよい（処理Ｓ３０４）。例えば、判定部１２８は、ＬＬＤＰ送信パターン制御部１２７（あるいは、ＬＬＤＰフレーム生成部１２２でもよい。）に、パケットアウトの送信を停止してよいことを通知する。
【０１７４】
なお、トポロジ検出終了判定部１２８は、以下の判定方法によってトポロジ検出の終了を判定してもよい。例えば、ＯＦネットワーク１の運用開始前に、ネットワークオペレータがホスト１３に繋がるＯＦスイッチ１１のポート情報を、ＯＦＣ１２の記憶部１２１に設定、記憶しておく。
【０１７５】
トポロジ検出終了判定部１２８は、ＬＬＤＰによるトポロジ検出の結果、リンク未発見のポート情報が記憶部１２１に記憶されているかをチェックする。チェックの結果、リンク未発見のポート情報が記憶部１２１に記憶されていれば、当該リンク未発見のポートは、ホスト１３に接続されたポートである、と確認して、トポロジ検出が完了したと判定してよい。
【０１７６】
次に、ＯＦＣ１２のＬＬＤＰ送信パターン制御部１２７に着目した動作例について説明する。ＬＬＤＰ送信パターン制御部１２７は、既述のように、パケットアウトの送信先ＯＦスイッチ１１を選択し、選択したＯＦスイッチ１１宛に、未発見のリンクが繋がるポートからＬＬＤＰメッセージを送信することを指定したパケットアウトを送信する。
【０１７７】
ＬＬＤＰ送信パターン制御部１２７がパケットアウトの送信を開始するトリガの一例としては、以下の２つのケースが想定される。
（ａ）ＳＪイベントの受信がトリガとなるケース
（ｂ）ＯＦスイッチ１１からのパケットイン（「ＬＬＤＰ応答」と称してもよい。）がトリガとなるケース
【０１７８】
上記のケース（ａ）及び（ｂ）に対応した、ＬＬＤＰ送信パターン制御部１２７の動作例を、図１９及び図２０のフローチャートにてそれぞれ例示する。
【０１７９】
まず、上記のケース（ａ）について、図１９を参照して説明する。
図１９に例示するように、ＬＬＤＰ送信パターン制御部１２７は、いずれかのＯＦスイッチ１１が送信したＳＪイベントを、例えばＯＦスイッチ接続部１２４を介して、受信すると（処理Ｓ４０１）、タイマを起動してよい（処理Ｓ４０２）。
【０１８０】
当該タイマは、便宜的に、「ＳＪ集約タイマ」と称してよい。図５に例示するように、ＳＪ集約タイマ１２７１は、ＬＬＤＰ送信パターン制御部１２７に備えられてよい。ＳＪ集約タイマ１２７１は、設定された時間を計時する。ＳＪ集約タイマ１２７１が計時する時間は、設定により変更可能であってよい。
【０１８１】
ＬＬＤＰ送信パターン制御部１２７は、例示的に、ＳＪ集約タイマ１２７１が起動されてからタイムアウトするまでの設定時間に、ＳＪイベントの受信数をカウントしてよい。ＬＬＤＰ送信パターン制御部１２７は、設定時間におけるＳＪイベントの受信数が設定閾値を超過したか否かをチェックしてよい（処理Ｓ４０３）。
【０１８２】
設定閾値は、例示的に、当該設定閾値以下であれば受信した全てのＳＪイベントの送信元ＯＦスイッチ１１についてＬＬＤＰ送信パターン制御部１２７がパケットアウトの送信処理を実施しても過負荷にならない範囲の値に設定されてよい。
【０１８３】
別言すると、設定閾値は、ＬＬＤＰ送信パターン制御部１２７が具現されるプロセッサの処理能力に応じて設定されてよい。なお、設定閾値は、例示的に、ＬＬＤＰ送信パターン制御部１２７に備えられたメモリ（図示省略）に記憶されてもよいし、既述の記憶部１２１に記憶されてもよい。
【０１８４】
ＳＪイベントの受信数が設定閾値を超過していれば（処理Ｓ４０３でＹＥＳの場合）、ＬＬＤＰ送信パターン制御部１２７は、リンク発見試行対象の候補ＯＦスイッチ１１群の中から、例えば、１つを選択してパケットアウトを送信する（処理Ｓ４０４）。
【０１８５】
一方、ＳＪイベントの受信数が設定閾値を超過していなければ（処理Ｓ４０３でＮＯの場合）、ＬＬＤＰ送信パターン制御部１２７は、ＳＪイベントの送信元である全てのＯＦスイッチ１１宛に、パケットアウトを送信してよい（処理Ｓ４０５）。
【０１８６】
このように、ＬＬＤＰ送信パターン制御部１２７は、ＳＪ集約タイマ１２７１で計時される時間内に設定閾値を超える数のＳＪイベントが受信されていれば、パケットアウトの送信先に選ぶＯＦスイッチ１１の数を制限してよい。
【０１８７】
なお、図１９の例では、パケットアウトの送信先に選ばれるＯＦスイッチ１１の数（便宜的に「制限選択数」と称してよい。）は、「１」であるが、２以上かつＳＪイベント受信数未満でもよい。
【０１８８】
例えば、ＯＦスイッチ１１の制限選択数は、ＬＬＤＰ送信パターン制御部１２７の処理能力に応じて適宜に設定されてよい。別言すると、ＯＦスイッチ１１の制限選択数は、ＯＦＣ１２のプロセッサの処理能力を超えない範囲の数に設定されてよい。
【０１８９】
なお、パケットアウトの送信先に選択されなかったＯＦスイッチ１１については、ＬＬＤＰ送信パターン制御部１２７は、或る設定時間を待機してから、パケットアウトの送信を実施してよい。設定時間を待機した結果、ＳＪイベントの受信数が設定閾値以下になっていれば、ＬＬＤＰ送信パターン制御部１２７は、未選択のＯＦスイッチ１１の全てに対してパケットアウトの送信を実施して構わない。
【０１９０】
次に、前記のケース（ｂ）について、図２０を参照して説明する。図２０に例示するように、ＯＦＣ１２は、いずれかのＯＦスイッチ１１が送信したパケットインをパケットイン受信部１２５にて受信する（処理Ｓ５０１）。パケットインの受信に応じて、ＯＦＣ１２は、受信したパケットインに含まれる情報を基に、記憶部１２１に記憶されたトポロジ情報を例えばトポロジ更新部１２６によって更新する（処理Ｓ５０２）。
【０１９１】
トポロジ情報の更新に応じて、ＯＦＣ１２は、ＬＬＤＰ送信パターン制御部１２７によって、パケットインの送信元ＯＦスイッチ１１宛に、リンク未発見のポートからＬＬＤＰメッセージを送信することを示すパケットアウトを送信してよい（処理Ｓ５０３）。当該処理Ｓ５０３は、例えば図３の処理Ｓ４に対応すると捉えてよい。
【０１９２】
（変形例）
なお、トポロジ検出の開始に応じて、ＬＬＤＰ送信パターン制御部１２７が、いずれのＯＦスイッチ１１を最初のパケットアウトの送信先に選択するかというポリシーは、例示的に、ネットワーク管理者によって適宜に設定、変更可能であってよい。
【０１９３】
ポリシーは、例示的に、ＬＬＤＰ送信パターン制御部１２７に備えられたメモリ（図示省略）に設定、記憶されてもよいし、既述の記憶部１２１に設定、記憶されてもよい。
【０１９４】
ポリシーの非限定的な一例としては、以下の３つが挙げられる。
（１）ポート数の多いＯＦスイッチ１１を優先的に選択するポリシー（図２１）
（２）ポート数の少ないＯＦスイッチ１１を優先的に選択するポリシー（図２２）
（３）複数のＯＦスイッチ１１を選択するポリシー（図２３）
【０１９５】
上記のポリシー（１）に従い、例えば図２１に模式的に示すように、パケットアウトの送信先に、他のＯＦスイッチ１１よりもポート数の多いＯＦスイッチ１１を優先的に選択すると、トポロジ検出の効率化を図ることができる。
【０１９６】
なぜなら、ポート数の多いＯＦスイッチ１１には、隣接するＯＦスイッチ１１が他に比べて多く存在するため、より多くの隣接ＯＦスイッチ１１にＬＬＤＰメッセージが伝達されるからである。
【０１９７】
上記のポリシー（２）に従い、例えば図２２に模式的に例示するように、パケットアウトの送信先に、他のＯＦスイッチ１１よりもポート数の少ないＯＦスイッチ１１を優先的に選択すると、ＯＦＣ１１の負荷低減を図ることができる。
【０１９８】
なぜなら、ポート数の少ないＯＦスイッチ１１には、隣接するＯＦスイッチ１１が他に比べて少ないため、ＯＦＣ１２宛に送信されるパケットインの数を低減できるからである。
【０１９９】
上記のポリシー（３）に従い、例えば図２３に模式的に例示するように、パケットアウトの送信先に、複数のＯＦスイッチ１１を選択すると、並列処理によって、トポロジ検出の高速化を図ることができる。
【０２００】
なお、上記のポリシー（１）〜（３）によって得られる効果は、ＯＦネットワーク１のトポロジに依存するため、いずれのポリシーを適用するかは、ＯＦネットワーク１のトポロジに適したポリシーを選択すればよい。
【０２０１】
ところで、ＯＦＣ１２が、複数のパケットインの受信に応じて、全ての送信元ＯＦスイッチ１１宛にパケットアウトを送信する動作（例えば図２０の処理Ｓ５０１〜Ｓ５０３）を繰り返すと、トポロジによってはパケットアウトの送信先数がべき乗で増加する。そのため、ＯＦＣ１２でのパケットインの受信数も、べき乗で増加し、ＯＦＣ１２が過負荷になるおそれがある。
【０２０２】
例えば図２４に模式的に示すトポロジにおいて、ＯＦスイッチ１１−２及び１１−３がそれぞれＯＦＣ１２宛にパケットインを送信したと仮定する。この場合、ＯＦＣ１２は、パケットインの送信元である２つのＯＦスイッチ１１−２及び１１−３を、パケットアウトの送信先に選択してよい。
【０２０３】
ここで、選択したＯＦスイッチ１１−２及び１１−３宛に同時にパケットアウトを送信してしまうと、ＯＦスイッチ１１−２及び１１−３に隣接する４つのＯＦスイッチ１１−４〜１１−７からそれぞれパケットインがＯＦＣ１２にて受信される。
【０２０４】
ＯＦＣ１２は、４つのパケットインの受信に応じて、４つのＯＦスイッチ１１−４〜１１−７宛に、それぞれ、パケットアウトを送信する。このように、ＯＦＣ１２から複数のＯＦスイッチ１１宛にパケットアウトを送信すると、その後のパケットインの受信数及びパケットアウトの送信数がべき乗で増加する場合がある。
【０２０５】
そこで、ＯＦＣ１２（例えばＬＬＤＰ送信パターン制御部１２７）は、例示的に、図２０の処理Ｓ５０３において、パケットアウトの送信先対象が複数存在する場合、パケットアウトの送信先対象を一部に制限してよい。
【０２０６】
ＬＬＤＰ送信パターン制御部１２７は、パケットイン受信部１２５にて複数のＯＦスイッチ１１から複数のパケットインが受信されると、トポロジ検出用のＬＬＤＰメッセージの送信を指示する対象のＯＦスイッチ１１を一部に制限してよい。
【０２０７】
例えば図２５に模式的に示すトポロジにおいて、ＯＦスイッチ１１−２及び１１−３がそれぞれＯＦＣ１２宛にパケットインを送信して、ＯＦスイッチ１１−２及び１１−３がパケットアウトの送信先候補となったと仮定する。
【０２０８】
この場合、ＬＬＤＰ送信パターン制御部１２７は、まず、ＯＦスイッチ１１−２及び１１−３の一方に対してのみパケットアウトを送信し、他方に対しては一方についてのトポロジ検出が完了してからパケットアウトを送信してよい。
【０２０９】
このように、実際にパケットアウトを送信するＯＦスイッチ１１の数を制限して段階的にトポロジ検出を実施することで、ＯＦＣ１２でのパケットアウトの送信数及びパケットインの受信数がべき乗で増加することを回避あるいは抑制できる。したがって、ＯＦＣ１２の負荷低減を図ることがでる。
【０２１０】
以上のように、上述した変形例を含む実施形態によれば、ＯＦＣ１２が、パケットインの受信によってリンク発見済みのポートを、パケットアウトに指定する、ＬＬＤＰメッセージの送信元候補から除外する。
【０２１１】
これにより、ＯＦスイッチ１１におけるリンク発見済みのポートからトポロジ検出（あるいはリンク発見）のためのＬＬＤＰメッセージが送信されることを抑止できる。したがって、ＯＦＣ１２で発見済みのリンクに対して冗長にＬＬＤＰメッセージが送信されることを抑止できる。
【０２１２】
別言すると、ＯＦＣ１２で発見済みのリンクに対しては、片方向にしかＬＬＤＰメッセージは伝達されない。よって、ＯＦネットワーク１に流れるＬＬＤＰメッセージ数を削減できる。結果として、ＯＦスイッチ１１からＯＦＣ１２宛に送信されるパケットインメッセージの数を削減でき、ＯＦＣ１２のトポロジ検出に関わる処理負荷を軽減できる。
【符号の説明】
【０２１３】
１  ネットワーク
１１−１〜１１−Ｎ  オープンフロー（ＯＦ）スイッチ
１１１  プロセッサ
１１１１  パケットイン送信部
１１１２  パケットアウト受信部
１１１３  フロー転送部
１１２  メモリ
１１３  ネットワークインタフェース（ＮＷ−ＩＦ）
１１４  バス
１２  オープンフローコントローラ（ＯＦＣ）
１２１  トポロジ情報記憶部
１２２  ＬＬＤＰフレーム生成部
１２３  パケットアウト送信部
１２４  ＯＦスイッチ接続部
１２５  パケットイン受信部
１２６  トポロジ更新部
１２７  ＬＬＤＰ送信パターン制御部
１２８  トポロジ検出終了判定部
１３−１，１３−２  ホスト
【図１】
2016181819.tif 000003
【図２】
2016181819.tif 000004
【図３】
2016181819.tif 000005
【図４】
2016181819.tif 000006
【図５】
2016181819.tif 000007
【図６】
2016181819.tif 000008
【図７】
2016181819.tif 000009
【図８】
2016181819.tif 000010
【図９】
2016181819.tif 000011
【図１０】
2016181819.tif 000012
【図１１】
2016181819.tif 000013
【図１２】
2016181819.tif 000014
【図１３】
2016181819.tif 000015
【図１４】
2016181819.tif 000016
【図１５】
2016181819.tif 000017
【図１６】
2016181819.tif 000018
【図１７】
2016181819.tif 000019
【図１８】
2016181819.tif 000020
【図１９】
2016181819.tif 000021
【図２０】
2016181819.tif 000022
【図２１】
2016181819.tif 000023
【図２２】
2016181819.tif 000024
【図２３】
2016181819.tif 000025
【図２４】
2016181819.tif 000026
【図２５】
2016181819.tif 000027