(57)【要約】  スイッチとスイッチコントローラとの間の制御メッセージの送信レートが低減されることができる。ネットワークシステムは、スイッチフローテーブルに基づいてパケットを転送するスイッチと、スイッチコントローラと、前記スイッチと前記スイッチコントローラとの間の制御メッセージを中継するフロントエンド装置とを備えている。前記フロントエンド装置は、バッファと、フローテーブル記憶部と、前記フローテーブルのバッファフローエントリにヒットする前記制御メッセージを、前記バッファにバッファリングするバッファ制御部とを備える。
2013047705.tif 000002
【特許請求の範囲】
【請求項１】
スイッチフローテーブルに基づいてパケットを転送するスイッチと、
前記スイッチフローテーブルを更新するスイッチコントローラと、
前記スイッチと前記スイッチコントローラとの間の制御メッセージを中継するフロントエンド装置とを備え、
前記フロントエンド装置は、
前記スイッチから受信された前記制御メッセージを一時的に保存するバッファと、
フローテーブルを記憶するフローテーブル記憶部と、
前記フローテーブルのバッファフローエントリにヒットする前記制御メッセージは、前記バッファにバッファリングし、前記フローテーブルのバッファフローエントリにヒットしない前記制御メッセージは、前記バッファにバッファリングせずに前記スイッチコントローラに送信するバッファ制御部と
を備えるネットワークシステム。
【請求項２】
請求項１に記載のネットワークシステムにおいて、
前記フローテーブルは、更にスイッチフローエントリを有し、
前記バッファ制御部は、前記スイッチフローエントリにヒットする前記制御メッセージを、前記スイッチに折り返し送信する
ネットワークシステム。
【請求項３】
請求項２に記載のネットワークシステムにおいて、
前記フローテーブルは、
フローエントリを識別するためのフローＩＤと、
フローエントリがバッファフローエントリであるか、スイッチフローエントリであるかを示すフロー種別と、
前記制御メッセージに含まれる前記スイッチによる転送対象のパケットのヘッダ情報と、
前記ヘッダ情報を含むパケットに対するアクションを定めるアクション情報と
を有する
ネットワークシステム。
【請求項４】
請求項１乃至３のいずれかに記載のネットワークシステムにおいて、
前記バッファ制御部は、前記スイッチから受信された制御メッセージが、前記フローテーブルのバッファフローエントリにヒットしない場合には、前記ヒットしない制御メッセージに対応する前記フローテーブルのバッファフローエントリを作成し、前記スイッチから受信された制御メッセージが、前記フローテーブルのバッファフローエントリにヒットする場合には、前記対応するフローテーブルのバッファフローエントリを作成しない
ネットワークシステム。
【請求項５】
請求項１乃至４のいずれかに記載のネットワークシステムにおいて、
前記バッファ制御部は、前記スイッチから受信される制御メッセージのレートを監視し、前記レートが一定の値以下となった場合には、前記バッファにバッファリングされている前記制御メッセージを、前記スイッチコントローラへ送信する
ネットワークシステム。
【請求項６】
請求項２に記載のネットワークシステムにおいて、
前記バッファ制御部は、前記スイッチコントローラから前記制御メッセージが受信される際に、前記フローテーブルのバッファフローエントリを検索し、前記制御メッセージに対応する前記バッファフローエントリがある場合には、前記対応するバッファフローエントリを前記フローテーブルから削除し、前記制御メッセージに対応する前記バッファフローエントリがない場合には、スイッチフローエントリを前記フローテーブルに登録する
ネットワークシステム。
【請求項７】
請求項３に記載のネットワークシステムにおいて、
前記フローテーブルの前記バッファフローエントリは、前記スイッチコントローラへ送信した制御メッセージの登録時刻を含み、
前記バッファ制御部は、前記フローテーブルの前記登録時刻を参照し、一定時間経過した前記バッファフローエントリを削除する
ネットワークシステム。
【請求項８】
スイッチフローテーブルに基づいてパケットを転送するスイッチと、
前記スイッチフローテーブルを更新するスイッチコントローラと、
前記スイッチと前記スイッチコントローラとの間の制御メッセージを中継するフロントエンド装置とを備えるネットワークシステムにおいて、
前記フロントエンド装置のバッファが、前記スイッチから受信された前記制御メッセージを一時的に保存するステップと、
前記フロントエンド装置のフローテーブル記憶部が、フローテーブルを記憶するステップと、
前記フロントエンド装置のバッファ制御部が、前記フローテーブルのバッファフローエントリにヒットする前記制御メッセージは、前記バッファにバッファリングするステップと、
前記フロントエンド装置のバッファ制御部が、前記フローテーブルのバッファフローエントリにヒットしなかった前記制御メッセージは、前記バッファにバッファリングせずに前記スイッチコントローラに送信するステップと
を含む
制御メッセージ送信レート低減方法。
【請求項９】
請求項８に記載の制御メッセージ送信レート低減方法において、
前記フローテーブルは、更にスイッチフローエントリを有し、
前記バッファ制御部は、前記スイッチフローエントリにヒットする前記制御メッセージを前記スイッチに折り返し送信するステップを更に含む
制御メッセージ送信レート低減方法。
【請求項１０】
請求項８または９に記載の制御メッセージ送信レート低減方法において、
前記フロントエンド装置のバッファ制御部が、前記スイッチから受信された制御メッセージが、前記フローテーブルのバッファフローエントリにヒットしない場合には、前記ヒットしなかった制御メッセージに対応する前記フローテーブルのバッファフローエントリを作成するステップを更に含む
制御メッセージ送信レート低減方法。
【請求項１１】
請求項８乃至１０のいずれかに記載の制御メッセージ送信レート低減方法において、
前記フロントエンド装置のバッファ制御部が、前記スイッチから受信する制御メッセージのレートを監視するステップと、
前記フロントエンド装置のバッファ制御部が、前記レートが一定の値以下となった場合には、前記バッファにバッファリングされている前記制御メッセージを、前記スイッチコントローラへ送信するステップと
を更に含む
制御メッセージ送信レート低減方法。
【請求項１２】
請求項９に記載の制御メッセージ送信レート低減方法において、
前記フロントエンド装置のバッファ制御部が、前記スイッチコントローラから前記制御メッセージを受信された際に、前記フローテーブルのバッファフローエントリを検索するステップと、
前記フロントエンド装置のバッファ制御部が、前記制御メッセージに対応する前記バッファフローエントリがある場合には、前記対応するバッファフローエントリを前記フローテーブルから削除するステップと、
前記フロントエンド装置のバッファ制御部が、前記制御メッセージに対応する前記バッファフローエントリがない場合には、スイッチフローエントリを前記フローテーブルに登録するステップと
を更に含む
制御メッセージ送信レート低減方法。
【請求項１３】
請求項８乃至１２のいずれかに記載の制御メッセージ送信レート低減方法において、
前記フローテーブルの前記バッファフローエントリは、前記スイッチコントローラへ送信した制御メッセージの登録時刻を含み、
前記フロントエンド装置のバッファ制御部が、前記フローテーブルの前記登録時刻を参照するステップと、
前記フロントエンド装置のバッファ制御部が、一定時間経過した前記バッファフローエントリを削除するステップと
を更に含む
制御メッセージ送信レート低減方法。
【請求項１４】
スイッチフローテーブルに基づいてパケットを転送するスイッチと、前記スイッチフローテーブルを更新するスイッチコントローラとの間の制御メッセージを中継するフロントエンド装置であって、
スイッチから受信された前記制御メッセージを一時的に保存するバッファと、
フローテーブルを記憶するフローテーブル記憶部と、
前記フローテーブルのバッファフローエントリにヒットする前記制御メッセージは、前記バッファにバッファリングし、前記フローテーブルのバッファフローエントリにヒットしない前記制御メッセージは、前記バッファにバッファリングせずに前記スイッチコントローラに送信するバッファ制御部と
を備える
フロントエンド装置。
【請求項１５】
請求項１４に記載のフロントエンド装置において、
前記フローテーブルは、更にスイッチフローエントリを有し、
前記バッファ制御部は、前記スイッチフローエントリにヒットする前記制御メッセージを、前記スイッチに折り返し送信する
フロントエンド装置。
【請求項１６】
請求項１５に記載のフロントエンド装置において、
前記フローテーブルは、
フローエントリを識別するためのフローＩＤと、
フローエントリがバッファフローエントリであるか、スイッチフローエントリであるかを示すフロー種別と、
前記制御メッセージに含まれる前記スイッチによる転送対象のパケットのヘッダ情報と、
前記ヘッダ情報を含むパケットに対するアクションを定めるアクション情報と
を有する
フロントエンド装置。
【請求項１７】
請求項１４乃至１６のいずれかに記載のフロントエンド装置において、
前記バッファ制御部は、前記スイッチから受信された制御メッセージが、前記フローテーブルのバッファフローエントリにヒットしない場合には、前記ヒットしない制御メッセージに対応する前記フローテーブルのバッファフローエントリを作成し、前記スイッチから受信された制御メッセージが、前記フローテーブルのバッファフローエントリにヒットする場合には、前記対応するフローテーブルのバッファフローエントリを作成しない
フロントエンド装置。
【請求項１８】
請求項１４乃至１７のいずれかに記載のフロントエンド装置において、
前記バッファ制御部は、前記スイッチから受信される制御メッセージのレートを監視し、前記レートが一定の値以下となった場合には、前記バッファにバッファリングされている前記制御メッセージを、前記スイッチコントローラへ送信する
フロントエンド装置。
【請求項１９】
請求項８乃至１３のいずれかに記載の制御メッセージ送信レート低減方法を達成するための計算機実行可能な制御メッセージ送信レート低減プログラムを格納するする非遷移的計算機読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステムに関し、特に、スイッチとスイッチコントローラとの間の制御メッセージの送信レートを低減する技術に関する。
【背景技術】
【０００２】
近年、新しいネットワーク制御の研究分野において、オープンフロー（ＯｐｅｎＦｌｏｗ）技術が提案されている。オープンフロー技術に関する先行技術文献としては、“ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”（非特許文献１）が知られている。オープンフロー技術では、通信をＥｎｄ−ｔｏ−Ｅｎｄのフロー単位で捉え、フロー単位でネットワークの経路制御、障害回復、負荷分散、最適化を行う。オープンフロースイッチは、オープンフロープロトコルに従って、オープンフロースイッチコントローラにより追加、更新されるフローテーブルに基づいて、転送パケットをスイッチングする。【０００３】
オープンフロープロトコルを利用するネットワークは、スイッチコントローラ（制御系）とスイッチ（パケット転送系）が分離されるという特徴がある。オープンフロースイッチは、パケットを受信すると、フローテーブルに該当するエントリがある場合には、エントリに定められたアクションに従ってパケットの処理を行う。一方、該当するエントリがない場合には、オープンフロースイッチコントローラにパケットの受信を通知する。オープンフロースイッチは、受信パケットに対する処理を決定できないときには、オープンフロースイッチコントローラに、受信パケットの情報を送信する。一般的に、オープンフロースイッチは、フローテーブルにエントリがない初期状態では、受信した全てのパケットを、オープンフロースイッチコントローラに送信する。【０００４】
ＴＣＰ（Ｔｒａｎｓｍｉｓｓｉｏｎ  Ｃｏｎｔｒｏｌ  Ｐｒｏｔｏｃｏｌ）のようなハンドシェークを行うフローでは、オープンフロースイッチが、端末のＳＹＮパケットを宛先端末に対して転送しない限り、宛先端末からＳＹＮ＋ＡＣＫパケットが返信されない。オープンフロースイッチは、このような仕組みを利用して、端末間の通信に対してレート制御をかけることにより、ネットワークの輻輳制御を行うことができる。【０００５】
オープンフロースイッチにフローテーブルが設定され、既にサービストラヒックが流れていた場合に、オープンフロースイッチの障害等により、フローテーブルが初期化される場合がある。このような場合、オープンフロースイッチは、受信パケットの転送方法を判断できないため、受信パケット全ての情報を、オープンフロースイッチコントローラに送信する。これらのパケットには、同一のフローテーブルにヒットして転送されるはずのパケットの情報が、複数個含まれている可能性がある。オープンフロースイッチコントローラは、冗長なパケット情報を処理しなければならず、オープンフロースイッチコントローラの負荷が増大する。【０００６】
オープンフロープロトコルを使用するネットワークなどのように、スイッチ（データ転送処理）とスイッチコントローラ（制御処理）が分離したアーキテクチャのネットワークでは、転送方法を判断するために、スイッチからスイッチコントローラへの転送パケットのトラヒックが多い場合が、パケット転送処理のボトルネックになる。【０００７】
関連する発明としては、特開２０１０−４５５０２号公報（特許文献１）が知られている。特開２０１０−４５５０２号公報（特許文献１）では、スイッチコントローラ側で、高負荷状態が発生した場合に、ネットワークに与える影響が抑制される発明が開示されている。この発明では、監視マネージャが、複数のスイッチコントローラのうち、スイッチと接続されたスイッチコントローラの負荷と所定値とを比較する。比較の結果、負荷が所定値よりも大きい場合、起動されていないスイッチコントローラが新たに起動され、新たに起動されたスイッチコントローラへの接続をスイッチへ指示する。スイッチは、監視マネージャから、新たに起動されたスイッチコントローラへの接続を指示された場合、新たに起動されたスイッチコントローラへ接続要求を行う。新たに起動されたスイッチコントローラは、接続を要求するスイッチと接続し、当該スイッチを制御する。【０００８】
特開２０１０−４５５０２号公報では、スイッチコントローラの負荷が増大した場合に、負荷分散のためにスイッチコントローラを増やすことにより問題を解決している。スイッチコントローラにとって、冗長なパケットを処理しなければならないという課題は解決されていない。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１０−４５５０２号公報
【非特許文献】
【００１０】
【非特許文献１】”ＯｐｅｎＦｌｏｗ：  Ｅｎａｂｌｉｎｇ  Ｉｎｎｏｖａｔｉｏｎ  ｉｎ  Ｃａｍｐｕｓ  Ｎｅｔｗｏｒｋｓ”＜ｈｔｔｐ：／／ｗｗｗ．ｏｐｅｎｆｌｏｗｓｗｉｔｃｈ．ｏｒｇ／ｄｏｃｕｍｅｎｔｓ／ｏｐｅｎｆｌｏｗ−ｗｐ−ｌａｔｅｓｔ．ｐｄｆ＞
【発明の概要】
【００１１】
本発明の目的は、スイッチとスイッチコントローラとの間の制御メッセージの送信レートを低減することができるネットワークシステムを提供することにある。
【００１２】
本発明のネットワークシステムは、スイッチフローテーブルに基づいてパケットを転送するスイッチと、前記スイッチフローテーブルを更新するスイッチコントローラと、前記スイッチと前記スイッチコントローラとの間の制御メッセージを中継するフロントエンド装置とを備えている。前記フロントエンド装置は、前記スイッチから受信した前記制御メッセージを一時的に保存するバッファと、フローテーブルを記憶するフローテーブル記憶部と、前記フローテーブルのバッファフローエントリにヒットした前記制御メッセージは、前記バッファにバッファリングし、前記フローテーブルのバッファフローエントリにヒットしなかった前記制御メッセージは、前記バッファにバッファリングせずに前記スイッチコントローラに送信するバッファ制御部とを備える。
【００１３】
本発明の制御メッセージ送信レート削減方法は、スイッチフローテーブルに基づいてパケットを転送するスイッチと、前記スイッチフローテーブルを更新するスイッチコントローラと、前記スイッチと前記スイッチコントローラとの間の制御メッセージを中継するフロントエンド装置とを備えるネットワークシステムにおいて実施される制御メッセージ送信レート削減方法である。本発明の制御メッセージ送信レート削減方法は、前記フロントエンド装置のバッファが、前記スイッチから受信した前記制御メッセージを一時的に保存するステップと、前記フロントエンド装置のフローテーブル記憶部が、フローテーブルを記憶するステップと、前記フロントエンド装置のバッファ制御部が、前記フローテーブルのバッファフローエントリにヒットした前記制御メッセージは、前記バッファにバッファリングするステップと、前記フロントエンド装置のバッファ制御部が、前記フローテーブルのバッファフローエントリにヒットしなかった前記制御メッセージは、前記バッファにバッファリングせずに前記スイッチコントローラに送信するステップとを含む。
【００１４】
本発明によれば、スイッチとスイッチコントローラとの間の制御メッセージの送信レートを低減することができるネットワークシステムを提供することができる。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明の実施形態におけるネットワークシステムが備えるフロントエンド装置、スイッチコントローラ及びスイッチの内部ブロック図である。
【図２】図２は、本発明の実施形態におけるネットワークシステムの全体図である。
【図３】図３は、本発明の実施形態のネットワークシステムにおいて、フロントエンド装置による制御メッセージのバッファリング方法のフローチャートである。
【図４】図４は、本発明の実施形態のネットワークシステムにおけるスイッチフローテーブルを説明するための図である。
【図５】図５は、本発明の実施形態のネットワークシステムにおけるフローテーブルを説明するための図である。
【図６】図６は、本発明の実施形態のネットワークシステムにおいて、フロントエンド装置が、スイッチコントローラから制御メッセージを受信した際の動作方法のフローチャートである。
【図７】図７は、本発明の他の実施形態におけるネットワークシステムの全体図である。
【例示的実施形態の説明】
【００１６】
添付図面を参照して、本発明の実施形態によるネットワークシステムを以下に説明する。
【００１７】
＜構成の説明＞
はじめに、本実施形態におけるネットワークシステムの構成の説明を行う。本実施形態のネットワークシステムは、フロントエンド装置１０、スイッチコントローラ２０及びスイッチ３０を備える。図１は、本発明の実施形態におけるネットワークシステムが備えるフロントエンド装置１０、スイッチコントローラ２０及びスイッチ３０の内部ブロック図である。
【００１８】
フロントエンド装置１０は、受信部１０１、送信部１０２、バッファ１０３、バッファ制御部１０４、フローテーブル記憶部１０５、受信部１０６及び送信部１０７を備える。
【００１９】
受信部１０１は、スイッチ３０から送信される制御メッセージを、制御回線４０３を介して受信する。送信部１０２は、受信部１０１で受信された制御メッセージをスイッチコントローラ２０へ送信する。
【００２０】
バッファ１０３は、スイッチ３０からスイッチコントローラ２０に送信される制御メッセージを一時的に保存する。バッファ制御部１０４は、バッファ１０３及びフローテーブル記憶部１０５に記憶されているフローテーブル１０８を使用して、スイッチ３０とスイッチコントローラ２０との間の制御メッセージの送信レートを制御する。バッファ制御部１０４は、受信部１０１で受信された制御メッセージが、フローテーブル１０８のバッファフローエントリにヒットする場合には、受信された制御メッセージを、バッファ１０３でバッファリングする。また、バッファ制御部１０４は、受信部１０１で受信された制御メッセージが、フローテーブル１０８のスイッチフローエントリにヒットする場合には、受信されたメッセージを、スイッチ３０に折り返し送信する。
【００２１】
受信部１０６は、スイッチコントローラ２０から送信される制御メッセージを受信する。送信部１０７は、受信部１０６で受信された制御メッセージをスイッチ３０へ送信する。
【００２２】
スイッチコントローラ２０は、スイッチ制御部２０１を備える。スイッチ制御部２０１は、フロントエンド装置１０から受信される制御メッセージに基づいて、経路計算等を行い、制御メッセージに含まれる転送パケットの情報に対応するスイッチ３０の動作を決定し、スイッチ３０のスイッチフローテーブルに設定するスイッチフローエントリを生成する。スイッチ制御部２０１は、生成されたスイッチフローエントリを、制御メッセージに載せて、スイッチ３０宛に送信する。
【００２３】
スイッチ３０は、受信部３０１、スイッチフローテーブル記憶部３０２、スイッチ制御処理部３０３、パケット処理部３０４及び送信部３０５を備える。
【００２４】
受信部３０１は、受信回線４０１を介して転送パケットを受信する。スイッチフローテーブル記憶部３０２は、転送パケットのヘッダ情報に基づいて、転送アクションを決定するためのスイッチフローテーブル３０６が記憶されている。スイッチフローテーブル３０６のスイッチフローエントリにヒットするパケットは、パケット処理部３０４によって、スイッチフローエントリで定められたアクション情報３０８に基づいて処理される。
【００２５】
スイッチ制御処理部３０３は、スイッチ３０全体の動作を制御する。パケット処理部３０４は、スイッチフローテーブル３０６のスイッチフローエントリに規定されたアクション情報３０８に基づいて、ヘッダの書き換え処理や、転送パケットの出力ポートを決定する。送信部３０５は、送信回線４０２へ転送パケットを送信する。
【００２６】
図２は、本発明の実施形態におけるネットワークシステムの全体図である。スイッチ３０−１、３０−２〜３０−Ｎは、それぞれが、フロントエンド装置１０と接続され、フロントエンド装置１０は、更にスイッチコントローラ２０に接続されている。なお、図２では、スイッチコントローラ２０からスイッチ３０までの接続の状態のみが示され、スイッチ３０−１、３０−２〜３０−Ｎにより実現されているネットワーク構成の状態は省略されている。スイッチ３０−１〜３０−Ｎから、スイッチコントローラ２０宛に送られる制御メッセージは、フロントエンド装置１０で、バッファリングの判定が行われた後、スイッチコントローラ２０に送信される。
【００２７】
＜動作方法の説明＞
次に、本実施形態のネットワークシステムにおけるスイッチ３０とスイッチコントローラ２０との間の制御メッセージ送信レート低減方法の説明を行う。
【００２８】
本実施形態におけるネットワークシステムは、制御メッセージの送信レートを低減するために、スイッチ３０とスイッチコントローラ２０との間に、制御メッセージをバッファリングするフロントエンド装置１０を備える。はじめに、制御メッセージのバッファリング方法について説明する。図３は、本発明の実施形態のネットワークシステムにおいて、フロントエンド装置１０による制御メッセージのバッファリング方法のフローチャートである。
【００２９】
まず、フロントエンド装置１０のフローテーブル記憶部１０５に記憶されているフローテーブル１０８と、スイッチ３０のスイッチフローテーブル記憶部３０２に記憶されているスイッチフローテーブル３０６について説明する。
【００３０】
図４は、本発明の実施形態のネットワークシステムにおけるスイッチフローテーブル３０６を説明するための図である。スイッチフローテーブル３０６の各エントリは、パケットヘッダ情報３０７及びアクション情報３０８を含む。スイッチフローテーブル３０６では、パケットヘッダ情報３０７毎に、パケット書き換え処理や、所定の転送先への送信処理等のアクション情報３０８が定められている。
【００３１】
図５は、本発明の実施形態のネットワークシステムにおけるフローテーブル１０８を説明するための図である。フローテーブル１０８は、フローＩＤ１０９、フロー種別１１０、パケットヘッダ情報１１１、アクション情報１１２及び登録時刻１１３を含む。フローＩＤ１０９は、フローエントリを識別するためのＩＤである。フロー種別１１０は、フローエントリの種別を示し、バッファフローエントリとスイッチフローエントリがある。パケットヘッダ情報１１１は、受信部１０１で受信された制御メッセージに含まれる、スイッチ３０による転送対象のパケットのヘッダ情報である。アクション情報１１２は、以下に説明される、ステップＳ１３及びステップＳ１５の処理が定められている。すなわち、アクション情報１１２を変更することで、ステップＳ１３及びステップＳ１５の処理を変更することができる。例えば、ステップＳ１４でヒットした制御メッセージを、バッファ１０１でバッファリングすることなく、廃棄する処理等に変更することができる。登録時刻１１３は、フローテーブル１０８にフローエントリを登録した時刻である。
【００３２】
（ステップＳ１１）
フロントエンド装置１０の受信部１０１が、制御回線４０３からパケットを受信する。バッファ制御部１０４は、制御メッセージのヘッダ情報を抽出し、抽出されたヘッダ情報をキーとして、フローテーブル記憶部１０５に記憶されているフローテーブル１０８に、対応するスイッチフローエントリがあるかどうか検索する。このスイッチフローエントリは、スイッチコントローラ２０からフロントエンド装置１０を介して、スイッチ３０のスイッチフローテーブル３０６にスイッチフローエントリが設定される際に、フロントエンド装置１０のフローテーブル１０８に設定されている（図６のステップＳ３５）。
【００３３】
（ステップＳ１２）
バッファ制御部１０４は、ステップＳ１１で抽出されたヘッダ情報がフローテーブル１０８のスイッチフローエントリのいずれかにヒットするか否か判定する。制御は、ヒットする場合には、ステップＳ１３に進み、ヒットしなかった場合にはステップＳ１４に進む。
【００３４】
（ステップＳ１３）
バッファ制御部１０４は、対応するスイッチフローエントリがスイッチ３０のスイッチフローテーブルにスイッチコントローラ２０により既に登録されているとみなし、ヒットする制御メッセージをスイッチ３０へ折り返し送信する。バッファ制御部１０４は、制御メッセージをスイッチ３０に折り返し送信する際に、フローテーブル１０８のアクション情報に基づいて、制御メッセージのパケットヘッダ情報を変更する。バッファ制御部１０４は、スイッチ３０から受信された制御メッセージのパケットヘッダ情報に含まれる「パケット受信」を示す情報を、「パケット送信」を示す情報に書き換える。
【００３５】
なお、スイッチ１０のスイッチフローテーブル３０６のスイッチフローエントリが、装置再起動等の何らかの理由で消失した場合には、再度、同一のパケットの転送に対するスイッチコントローラ１０への問い合わせが発生する。このような場合を検出できずに、制御メッセージを、折り返してしまうと、スイッチ１０にフロー設定が入らない状態となる。そのため、フロントエンド装置１０のフローテーブル１０８のエントリ保持期間に、１０秒程度のタイムアウトを設定してもよい。なお、当該タイムアウトの時間は、当業者が、適宜、運用環境に合わせて変更してもよい。
【００３６】
（ステップＳ１４）
バッファ制御部１０４は、受信部１０１で受信された制御メッセージが、フローテーブル記憶部１０５に記憶されているフローテーブル１０８のバッファフローエントリにヒットするか判定する。ヒットする場合には、ステップＳ１５に進み、ヒットしなかった場合にはステップＳ１６に進む。
【００３７】
（ステップＳ１５）
バッファ制御部１０４は、ステップＳ１４でヒットする制御メッセージをバッファ１０３に保存し、スイッチコントローラ２０への送信を保留する。
【００３８】
（ステップＳ１６）
バッファ制御部１０４は、ステップＳ１４でヒットしなかった制御メッセージに対応するフローテーブル１０８のバッファフローエントリを作成する。
【００３９】
（ステップＳ１７）
バッファ制御部１０４は、ステップＳ１６でフローテーブル１０８のバッファフローエントリを作成した制御メッセージを、スイッチコントローラ２０に送信する。
【００４０】
上述の制御メッセージのバッファリング方法により、フロントエンド装置１０が、スイッチ３０から受信された同様の制御メッセージが、スイッチコントローラ２０に連続的に送信されることを防ぐことができる（バッファフローエントリにヒットする場合）。また、スイッチ３０のスイッチフローテーブル３０６に、既に登録されているスイッチフローに対応する制御メッセージが、スイッチコントローラ２０に送信されることを防ぐことができる（スイッチフローエントリにヒットする場合）。上述の制御メッセージのバッファリング方法により、フロントエンド装置１０とスイッチコントローラ２０の間の制御メッセージの送信レートを低減することができる。
【００４１】
次に、図６を参照して、フロントエンド装置１０が、スイッチコントローラ２０から制御メッセージを受信する際の動作方法について説明する。
【００４２】
（ステップＳ３１）
フロントエンド装置１０の受信部１０６が、スイッチコントローラ２０から制御メッセージを受信する。
【００４３】
（ステップＳ３２）
バッファ制御部１０４は、制御メッセージのヘッダ情報を抽出し、抽出されたヘッダ情報をキーとして、フローテーブル記憶部１０５に記憶されているフローテーブル１０８に、対応するバッファフローエントリがあるかどうか検索する。
【００４４】
（ステップＳ３３）
バッファ制御部１０４は、受信部１０１で受信された制御メッセージが、フローテーブル１０８のバッファフローエントリにヒットするか判定する。ヒットする場合には、ステップＳ３４に進み、ヒットしなかった場合にはステップＳ３６に進む。
【００４５】
（ステップＳ３４）
バッファ制御部１０４は、ステップＳ３３でヒットする制御メッセージに対応するフローテーブル１０８のバッファフローエントリを削除する。バッファ制御部１０４は、当該バッファフローエントリに対応するパケットヘッダ情報１１１を、バッファ１０３から取得し、当該ヒットする制御メッセージを、スイッチ３０宛の適切な制御メッセージに書き換える。バッファ制御部１０４は、コントローラ２０からの制御メッセージが「スイッチフローテーブル生成」であれば、フローテーブル１０８で指定されるアクションに基づいて、スイッチ３０のスイッチフローテーブル３０６に指定する「パケット送信」の制御メッセージを生成する。バッファ制御部１０４は、コントローラ２０からの制御メッセージが「パケット送信」であれば、当該バッファフローエントリに対応するパケットヘッダ情報１１１から、パケット送信先情報を取得して、「パケット送信」の制御メッセージを生成する。
【００４６】
（ステップＳ３５）
バッファ制御部１０４は、受信部１０６で受信された制御メッセージに基づき、スイッチ３０のスイッチフローテーブル３０６に設定するスイッチフローエントリと同一のスイッチフローエントリを、フローテーブル１０８に設定する。バッファ制御部１０４は、フローエントリの検索時には、スイッチフローエントリをバッファフローエントリよりも高い優先度で検索する。
【００４７】
（ステップＳ３６）
送信部１０７は、受信部１０６で受信された制御メッセージをスイッチ３０へ送信する。ステップＳ３４により、バッファフローエントリにヒットする制御メッセージを、スイッチ３０宛の適切な制御メッセージに書き換えていた場合は、書き換え後の制御メッセージをスイッチ３０へ送信する。
【００４８】
上述の方法によって、フローテーブル１０８のバッファフローエントリが削除される。しかし、制御メッセージが、スイッチコントローラ２０で廃棄された場合等、バッファフローエントリに対応する制御メッセージが、スイッチコントローラ２０からフロントエンド装置１０に送信されない場合、バッファフローエントリが記憶されたまま残る。そのため、バッファ制御部１０４は、フローテーブル１０８の登録時刻１１３を参照し、一定時間経過したバッファフローエントリを削除する。
【００４９】
バッファ１０３に保存されている制御メッセージについては、バッファ制御部１０４が、スイッチ３０から受信する制御メッセージのレートを監視し、レートが一定の値以下となった場合に、バッファ１０３の制御メッセージを、送信部１０２に送り、スイッチコントローラ２０へ送信する。
【００５０】
本実施形態によれば、スイッチ３０からスイッチコントローラ２０に対して、同様のメッセージが連続する場合において、フロントエンド装置１０にて、制御メッセージの量を抑制することができる。また、制御メッセージに対応するスイッチフローが、スイッチフローテーブル３０６に既に登録されているとみなせる場合は、フロントエンド装置１０に、当該制御メッセージを折り返し送信する。そのため、スイッチコントローラ２０の負荷を低減することができる。
【００５１】
本実施形態では、図２のような構成で、フロントエンド装置１０を配置したが、図７のように、各スイッチ３０−１〜スイッチ３０−Ｎにおいて、フロントエンド部１０−１〜フロントエンド部１０−Ｎとして、フロントエンド装置１０のバッファリング処理を実現してもよい。
【００５２】
以上、本発明の実施の形態が添付の図面を参照することにより説明された。但し、本発明は、上述の実施の形態に限定されず、要旨を逸脱しない範囲で当業者により適宜変更され得る。
【図１】
2013047705.tif 000003
【図２】
2013047705.tif 000004
【図３】
2013047705.tif 000005
【図４】
2013047705.tif 000006
【図５】
2013047705.tif 000007
【図６】
2013047705.tif 000008
【図７】
2013047705.tif 000009
【手続補正書】
【提出日】平成26年12月24日(2014.12.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
スイッチフローテーブルに基づいてパケットを転送するスイッチと、
前記スイッチフローテーブルを更新するスイッチコントローラと、
前記スイッチと前記スイッチコントローラとの間の制御メッセージを中継するフロントエンド装置とを備え、
前記フロントエンド装置は、
前記スイッチから受信された前記制御メッセージを一時的に保存するバッファと、
フローテーブルを記憶するフローテーブル記憶部と、
前記フローテーブルのバッファフローエントリにヒットする前記制御メッセージは、前記バッファにバッファリングし、前記フローテーブルのバッファフローエントリにヒットしない前記制御メッセージは、前記バッファにバッファリングせずに前記スイッチコントローラに送信するバッファ制御部と
を備え、
前記フローテーブルは、更にスイッチフローエントリを有し、
前記バッファ制御部は、前記スイッチフローエントリにヒットする前記制御メッセージを、前記スイッチに折り返し送信する
ネットワークシステム。
【請求項２】
請求項１に記載のネットワークシステムにおいて、
前記フローテーブルは、
フローエントリを識別するためのフローＩＤと、
フローエントリがバッファフローエントリであるか、スイッチフローエントリであるかを示すフロー種別と、
前記制御メッセージに含まれる前記スイッチによる転送対象のパケットのヘッダ情報と、
前記ヘッダ情報を含むパケットに対するアクションを定めるアクション情報と
を有する
ネットワークシステム。
【請求項３】
請求項１または２に記載のネットワークシステムにおいて、
前記バッファ制御部は、前記スイッチから受信された制御メッセージが、前記フローテーブルのバッファフローエントリにヒットしない場合には、前記ヒットしない制御メッセージに対応する前記フローテーブルのバッファフローエントリを作成し、前記スイッチから受信された制御メッセージが、前記フローテーブルのバッファフローエントリにヒットする場合には、前記対応するフローテーブルのバッファフローエントリを作成しない
ネットワークシステム。
【請求項４】
請求項１乃至３のいずれかに記載のネットワークシステムにおいて、
前記バッファ制御部は、前記スイッチから受信される制御メッセージのレートを監視し、前記レートが一定の値以下となった場合には、前記バッファにバッファリングされている前記制御メッセージを、前記スイッチコントローラへ送信する
ネットワークシステム。
【請求項５】
請求項１に記載のネットワークシステムにおいて、
前記バッファ制御部は、前記スイッチコントローラから前記制御メッセージが受信される際に、前記フローテーブルのバッファフローエントリを検索し、前記制御メッセージに対応する前記バッファフローエントリがある場合には、前記対応するバッファフローエントリを前記フローテーブルから削除し、前記制御メッセージに対応する前記バッファフローエントリがない場合には、スイッチフローエントリを前記フローテーブルに登録する
ネットワークシステム。
【請求項６】
請求項２に記載のネットワークシステムにおいて、
前記フローテーブルの前記バッファフローエントリは、前記スイッチコントローラへ送信した制御メッセージの登録時刻を含み、
前記バッファ制御部は、前記フローテーブルの前記登録時刻を参照し、一定時間経過した前記バッファフローエントリを削除する
ネットワークシステム。
【請求項７】
スイッチフローテーブルに基づいてパケットを転送するスイッチと、
前記スイッチフローテーブルを更新するスイッチコントローラと、
前記スイッチと前記スイッチコントローラとの間の制御メッセージを中継するフロントエンド装置とを備えるネットワークシステムにおいて、
前記フロントエンド装置のバッファが、前記スイッチから受信された前記制御メッセージを一時的に保存するステップと、
前記フロントエンド装置のフローテーブル記憶部が、フローテーブルを記憶するステップと、
前記フロントエンド装置のバッファ制御部が、前記フローテーブルのバッファフローエントリにヒットする前記制御メッセージは、前記バッファにバッファリングするステップと、
前記フロントエンド装置のバッファ制御部が、前記フローテーブルのバッファフローエントリにヒットしなかった前記制御メッセージは、前記バッファにバッファリングせずに前記スイッチコントローラに送信するステップと
を含み、
前記フローテーブルは、更にスイッチフローエントリを有し、
前記バッファ制御部は、前記スイッチフローエントリにヒットする前記制御メッセージを前記スイッチに折り返し送信するステップを更に含む
制御メッセージ送信レート低減方法。
【請求項８】
請求項７に記載の制御メッセージ送信レート低減方法において、
前記フロントエンド装置のバッファ制御部が、前記スイッチから受信された制御メッセージが、前記フローテーブルのバッファフローエントリにヒットしない場合には、前記ヒットしなかった制御メッセージに対応する前記フローテーブルのバッファフローエントリを作成するステップを更に含む
制御メッセージ送信レート低減方法。
【請求項９】
請求項７または８に記載の制御メッセージ送信レート低減方法において、
前記フロントエンド装置のバッファ制御部が、前記スイッチから受信する制御メッセージのレートを監視するステップと、
前記フロントエンド装置のバッファ制御部が、前記レートが一定の値以下となった場合には、前記バッファにバッファリングされている前記制御メッセージを、前記スイッチコントローラへ送信するステップと
を更に含む
制御メッセージ送信レート低減方法。
【請求項１０】
請求項７に記載の制御メッセージ送信レート低減方法において、
前記フロントエンド装置のバッファ制御部が、前記スイッチコントローラから前記制御メッセージを受信された際に、前記フローテーブルのバッファフローエントリを検索するステップと、
前記フロントエンド装置のバッファ制御部が、前記制御メッセージに対応する前記バッファフローエントリがある場合には、前記対応するバッファフローエントリを前記フローテーブルから削除するステップと、
前記フロントエンド装置のバッファ制御部が、前記制御メッセージに対応する前記バッファフローエントリがない場合には、スイッチフローエントリを前記フローテーブルに登録するステップと
を更に含む
制御メッセージ送信レート低減方法。
【請求項１１】
請求項７乃至１０のいずれかに記載の制御メッセージ送信レート低減方法において、
前記フローテーブルの前記バッファフローエントリは、前記スイッチコントローラへ送信した制御メッセージの登録時刻を含み、
前記フロントエンド装置のバッファ制御部が、前記フローテーブルの前記登録時刻を参照するステップと、
前記フロントエンド装置のバッファ制御部が、一定時間経過した前記バッファフローエントリを削除するステップと
を更に含む
制御メッセージ送信レート低減方法。
【請求項１２】
スイッチフローテーブルに基づいてパケットを転送するスイッチと、前記スイッチフローテーブルを更新するスイッチコントローラとの間の制御メッセージを中継するフロントエンド装置であって、
スイッチから受信された前記制御メッセージを一時的に保存するバッファと、
フローテーブルを記憶するフローテーブル記憶部と、
前記フローテーブルのバッファフローエントリにヒットする前記制御メッセージは、前記バッファにバッファリングし、前記フローテーブルのバッファフローエントリにヒットしない前記制御メッセージは、前記バッファにバッファリングせずに前記スイッチコントローラに送信するバッファ制御部と
を備え、
前記フローテーブルは、更にスイッチフローエントリを有し、
前記バッファ制御部は、前記スイッチフローエントリにヒットする前記制御メッセージを、前記スイッチに折り返し送信する
フロントエンド装置。
【請求項１３】
請求項１２に記載のフロントエンド装置において、
前記フローテーブルは、
フローエントリを識別するためのフローＩＤと、
フローエントリがバッファフローエントリであるか、スイッチフローエントリであるかを示すフロー種別と、
前記制御メッセージに含まれる前記スイッチによる転送対象のパケットのヘッダ情報と、
前記ヘッダ情報を含むパケットに対するアクションを定めるアクション情報と
を有する
フロントエンド装置。
【請求項１４】
請求項１２または１３に記載のフロントエンド装置において、
前記バッファ制御部は、前記スイッチから受信された制御メッセージが、前記フローテーブルのバッファフローエントリにヒットしない場合には、前記ヒットしない制御メッセージに対応する前記フローテーブルのバッファフローエントリを作成し、前記スイッチから受信された制御メッセージが、前記フローテーブルのバッファフローエントリにヒットする場合には、前記対応するフローテーブルのバッファフローエントリを作成しない
フロントエンド装置。
【請求項１５】
請求項１２乃至１４のいずれかに記載のフロントエンド装置において、
前記バッファ制御部は、前記スイッチから受信される制御メッセージのレートを監視し、前記レートが一定の値以下となった場合には、前記バッファにバッファリングされている前記制御メッセージを、前記スイッチコントローラへ送信する
フロントエンド装置。
【請求項１６】
請求項７乃至１１のいずれかに記載の制御メッセージ送信レート低減方法を達成するための計算機実行可能な制御メッセージ送信レート低減プログラムを格納する計算機読み取り可能な記録媒体。
【国際調査報告】
2013047705.tif 000010
2013047705.tif 000011
2013047705.tif 000012