(57)【要約】【課題】宛先不明のパケットの転送に要する処理負荷を軽減できる中継装置等を提供する。【解決手段】受信したパケットを中継する複数の中継装置と、各中継装置を監視制御する制御装置とを有する中継システムである。各中継装置は、判定部と、転送部とを有する。判定部は、宛先不明のパケットを受信したか否かを判定する。転送部は、前記宛先不明のパケットを受信した場合に、当該宛先不明のパケットを、当該中継装置を監視制御する制御装置、又は他の中継装置に転送する。【選択図】図３
2017063280.tif 000002
【特許請求の範囲】
【請求項１】
受信したパケットを中継する中継装置であって、
宛先不明のパケットを受信したか否かを判定する判定部と、
前記宛先不明のパケットを受信した場合に、当該宛先不明のパケットを、当該中継装置を監視制御する制御装置、又は他の中継装置に転送する転送部と
を有することを特徴とする中継装置。
【請求項２】
前記制御装置への前記パケットの転送に要する処理負荷が所定閾値を超えたか否かを判定する閾値判定部を有し、
前記転送部は、
前記処理負荷が前記所定閾値を超えていない場合に、前記宛先不明のパケットを前記制御装置に転送する第１の転送部と、
前記処理負荷が前記所定閾値を超えた場合に、前記宛先不明のパケットを前記他の中継装置に転送する第２の転送部と
を有することを特徴とする請求項１に記載の中継装置。
【請求項３】
前記転送部は、
前記他の中継装置へ前記宛先不明のパケットを転送する際に、当該パケットを転送できる転送回数をパケットに付加し、当該パケットを前記他の中継装置に転送する第２の転送部と、
前記他の中継装置から受信した前記パケット内の転送回数が実際の転送回数を超えた場合に、当該パケットを前記制御装置に転送する第１の転送部と
を有することを特徴とする中継装置。
【請求項４】
前記第２の転送部は、
前記宛先不明のパケットを受信した場合に、当該宛先不明のパケットに自装置を識別する識別情報を付加し、当該パケットを前記他の中継装置に転送することを特徴とする請求項２又は３に記載の中継装置。
【請求項５】
受信したパケットを中継する複数の中継装置と、各中継装置を監視制御する制御装置とを有する中継システムであって、
各中継装置は、
宛先不明のパケットを受信したか否かを判定する判定部と、
前記宛先不明のパケットを受信した場合に、当該宛先不明のパケットを、当該中継装置を監視制御する制御装置、又は他の中継装置に転送する転送部と
を有することを特徴とする中継システム。
【請求項６】
受信したパケットを中継する中継装置が、
宛先不明のパケットを受信したか否かを判定し、
前記宛先不明のパケットを受信した場合に、当該宛先不明のパケットを、当該中継装置を監視制御する制御装置、又は他の中継装置に転送する
処理を実行することを特徴とする中継方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、中継装置、中継システム及び中継方法に関する。
【背景技術】
【０００２】
近年、従来のＬ２(Layer  2)スイッチやルータ等の既存のパケット転送やルーティング処理にとらわれない柔軟なパケット転送制御が可能な制御プロトコルとして、オープンフロー（Open  Flow）が知られている。Open  Flowでは、ＯＦＣ（Open  Flow  Controller）と、ＯＦＳ（Open  Flow  Switch）とを有し、ＯＦＣが複数のＯＦＳの経路制御や転送制御を一括管理する技術である。ＯＦＣは、制御対象のパケットのフローを識別するマッチ条件毎に、例えば、転送、廃棄、ヘッダ内のフィールドの書換え等の実行すべき処理を定義した動作内容を含むフローテーブルの内容を生成し、そのフローテーブルの内容を各ＯＦＳに設定する。尚、フローテーブルは、ネットワークの運用管理者やユーザが自由に設計し、ＯＦＣからOpen  Flowプロトコルを用いてＯＦＳへ動的かつプログラマブルに設定できる。各ＯＦＳは、フローテーブルを参照し、受信パケットに対応した処理を実行する。
【０００３】
また、ＯＦＳは、フローテーブル内にない未知のパケットを受信した場合、PacketInメッセージとして未知のパケットをカプセル化してＯＦＣに通知する。その結果、ＯＦＣは、PacketInメッセージ内の未知のパケットに基づき、未知のパケットに対する動作内容を生成し、その動作内容をＯＦＳに通知する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２０１４−５０４８１１号公報
【特許文献２】特開２０１４−１５４９５８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＯＦＳがPacketInメッセージをＯＦＣに通知する機能は、ＯＦＳ側のＣＰＵの処理能力や、ＯＦＳとＯＦＣとの間の制御回線の帯域量に依存する。例えば、ＯＦＳ側のＣＰＵは、ＯＦＣに用いるＩＡサーバと比較して、その処理能力が劣る。また、制御回線の帯域量は、ＯＦＳ間のデータ回線の帯域量に比較して狭帯域である。例えば、ＯＦＳが未知、すなわち宛先不明のパケットをバースト的に受信した場合、全ての未知のパケットをPacketInメッセージでＯＦＣに通知するのは困難である。その結果、ＯＦＳは、PacketInメッセージをＯＦＣに通知できないため、通信遅延や通信不能が発生する。
【０００６】
一つの側面では、宛先不明のパケットの転送に要する処理負担を軽減できる中継装置、中継システム及び中継方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
一つの態様の中継装置は、受信したパケットを中継する中継装置である。中継装置は、判定部と、転送部とを有する。判定部は、宛先不明のパケットを受信したか否かを判定する。転送部は、宛先不明のパケットを受信した場合に、当該宛先不明のパケットを、当該中継装置を監視制御する制御装置、又は他の中継装置に転送する。
【発明の効果】
【０００８】
一つの側面として、宛先不明のパケットの転送に要する処理負担を軽減できる。
【図面の簡単な説明】
【０００９】
【図１】図１は、本実施例の中継システムの一例を示す説明図である。
【図２】図２は、中継システム内の回線構成の一例を示す説明図である。
【図３】図３は、ＯＦＳの構成の一例を示すブロック図である。
【図４】図４は、フローテーブルの一例を示す説明図である。
【図５】図５は、パケット転送に関わるホップ数の一例を示す説明図である。
【図６】図６は、未知のパケット転送処理に関わる中継システムの動作の一例を示す説明図である。
【図７】図７は、ＯＦＣの構成の一例を示すブロック図である。
【図８】図８は、PacketInメッセージの構成の一例を示す説明図である。
【図９】図９は、OXM  TLVの一例（OFPXMC  OPENFLOW  BASIC）を示す説明図である。
【図１０】図１０は、OXM  TLVの一例（OFPXMC  EXPERIMENTER）を示す説明図である。
【図１１】図１１は、事前設定処理に関わるＯＦＳの処理動作の一例を示すフローチャートである。
【図１２】図１２は、受信処理に関わるＯＦＳの処理動作の一例を示すフローチャートである。
【図１３】図１３は、更新処理に関わるＯＦＳの処理動作の一例を示すフローチャートである。
【図１４】図１４は、通知処理に関わるＯＦＳの処理動作の一例を示すフローチャートである。
【図１５】図１５は、PacketIn受信処理に関わるＯＦＣの処理動作の一例を示すフローチャートである。
【図１６】図１６は、中継プログラムを実行するコンピュータの一例を示す説明図である。
【発明を実施するための形態】
【００１０】
以下、図面に基づいて、本願の開示する中継装置、中継システム及び中継方法の実施例を詳細に説明する。尚、本実施例により、開示技術が限定されるものではない。また、以下に示す実施例は、矛盾を起こさない範囲で適宜組み合わせても良い。
【実施例】
【００１１】
図１は、本実施例の中継システム１の一例を示す説明図である。図１に示す中継システム１は、複数のＯＦＳ２と、ＯＦＣ３と、複数のルータ４とを有する。各ＯＦＳ２は、例えば、Open  Flowプロトコルの中継装置に相当する。ＯＦＣ３は、複数のＯＦＳ２を監視制御する、例えば、Open  Flowプロトコルの制御装置に相当する。各ＯＦＳ２は、データ回線５を用いて接続し、データ回線５を用いてパケットを送受信する。更に、各ＯＦＳ２は、転送トンネル６を用いて接続し、転送トンネル６を用いて、後述する未知のパケットを転送する。尚、未知のパケットは、例えば、ＯＦＳ２の動作内容が明確に規定されていない宛先不明のパケットである。更に、ＯＦＣ３は、各ＯＦＳ２との間で制御回線７を用いて接続し、制御回線７を用いて、各種制御メッセージを送受信する。ＯＦＳ２は、未知のパケットを受信した場合、未知のパケットをカプセル化してPacketInメッセージを生成し、その生成したPacketInメッセージを制御回線７経由でＯＦＣ３に通知する。尚、説明の便宜上、データ回線５は１０Ｇ（Ｇｂｐｓ）回線、制御回線７は１Ｇ回線とする。
【００１２】
ＯＦＳ２は、第１のＯＦＳ２Ａ、第２のＯＦＳ２Ｂ及び第３のＯＦＳ２Ｃを有し、主ＯＦＳと、代理ＯＦＳとに分類できる。主ＯＦＳは、例えば、データ回線５から未知のパケットを受信したＯＦＳ２である。代理ＯＦＳは、例えば、転送トンネル６から転送パケットを受信したＯＦＳ２である。ＯＦＳ２は、未知のパケットを受信した場合、現在の処理負荷が所定閾値を超えていない場合、未知のパケットをカプセル化してPacketInメッセージを生成し、制御回線７を用いて、そのPacketInメッセージをＯＦＣ３に通知する。尚、所定閾値は、例えば、ＯＦＳ２自体が接続する制御回線７の使用帯域の閾値８０％である。つまり、ＯＦＳ２は、制御回線７の使用帯域が８０％を超えていない場合、制御回線７を用いて未知のパケットのPacketInメッセージをＯＦＣ３に通知する。これに対して、ＯＦＳ２は、制御回線７の使用帯域が８０％を超える場合に、転送トンネル６を用いて、未知のパケットを他のＯＦＳ２、すなわち代理ＯＦＳに転送する。
【００１３】
図２は、中継システム１内の回線構成の一例を示す説明図である。図２に示す第１のＯＦＳ２Ａは、制御回線７Ａを用いてＯＦＣ３と接続すると共に、データ回線５Ａ及び転送トンネル６Ａを用いて第２のＯＦＳ２Ｂと接続すると共に、データ回線５Ｂ及び転送トンネル６Ｂを用いて第３のＯＦＳ２Ｃと接続する。また、第２のＯＦＳ２Ｂは、制御回線７Ｂを用いてＯＦＣ３と接続する。更に、第３のＯＦＳ２Ｃは、制御回線７Ｃを用いてＯＦＣ３と接続する。
【００１４】
図３は、ＯＦＳ２の構成の一例を示す説明図である。図３に示すＯＦＳ２は、ＯＦＣ通信部１１と、通信部１２と、入出力部１３と、記憶部１４と、ＯＦＳ制御部１５とを有する。ＯＦＣ通信部１１は、制御回線７と接続し、ＯＦＣ３と通信する通信インタフェースである。通信部１２は、データ回線５又は転送トンネル６と接続し、他のＯＦＳ２と通信する通信インタフェースである。入出力部１３は、例えば、管理者からの入力操作に応じて設定情報を入力すると共に、各種情報を出力する入出力インタフェースである。記憶部１４は、各種情報を記憶する領域である。ＯＦＳ制御部１５は、ＯＦＳ２全体を制御する。
【００１５】
記憶部１４は、パケット記憶部２１と、フローテーブル２２と、閾値テーブル２３と、ホップ数テーブル２４とを有する。パケット記憶部２１は、例えば、送受信するパケットを一時的に格納するバッファである。フローテーブル２２は、パケットを識別するフロー等のマッチ条件毎に動作内容を管理するテーブルである。図４は、フローテーブル２２の一例を示す説明図である。マッチ条件２２Ａと、第１の動作内容２２Ｂと、第２の動作内容２２Ｃとを対応付けて管理するテーブルである。マッチ条件２２Ａは、パケットを識別するフローの条件である。第１の動作内容２２Ｂ及び第２の動作内容２２Ｃは、マッチ条件２２Ａに対応したパケットの処理内容に相当し、例えば、転送、廃棄、ヘッダ内のフィールドの書換え等の実行すべき処理を定義した情報である。第１の動作内容２２Ｂは、現在の処理負荷が所定閾値を超えない場合、例えば、制御回線７の使用帯域が８０％を超えない場合に適用するアクションである。また、第２の動作内容２２Ｃは、現在の処理負荷が所定閾値を超えた場合、例えば、制御回線７の使用帯域が８０％を超えた場合に適用するアクションである。つまり、ＯＦＳ制御部１５は、制御回線７の使用帯域が８０％を超えたか否かの判定結果に基づき、フローテーブル２２内の第１の動作内容２２Ｂ又は第２の動作内容２２Ｃを切替設定する。
【００１６】
図４に示すフローテーブル２２は、例えば、図２に示す第１のＯＦＳ２Ａのフローテーブル２２の一例である。例えば、マッチ条件２２Ａとしてデータ回線５Ａからの１９２．１６８．１０．１０宛のパケットは、第１の動作内容２２Ｂ及び第２の動作内容２２Ｃとして、データ回線５Ｂへ転送する。また、マッチ条件２２Ａとして転送トンネル６Ａからのパケットは、第１の動作内容２２Ｂとして、PacketInの処理を実行する。尚、PacketIn処理は、パケットをPacketInメッセージにカプセル化してＯＦＣ３に通知する処理である。また、マッチ条件２２Ａとして転送トンネル６Ａからのパケットは、第２の動作内容２２Ｃとして、転送トンネル６Ｂで第３のＯＦＳ２Ｃへ転送する。また、マッチ条件２２Ａとして転送トンネル６Ｂからのパケットは、第１の動作内容２２ＢとしてPacketInの処理、第２の動作内容２２Ｃとして、転送トンネル６Ａで第２のＯＦＳ２Ｂへ転送する。また、マッチ条件２２Ａとして未知のパケットは、第１の動作内容２２Ｂとして、PacketInの処理、第２の動作内容２２Ｃとして、転送トンネル６Ａで第３のＯＦＳ２Ｃへ転送する。
【００１７】
閾値テーブル２３は、制御回線７の使用帯域の閾値、例えば、使用帯域全体の８０％を記憶する領域である。ホップ数テーブル２４は、転送パケットの他のＯＦＳ２への転送を許容できる最大ホップ数を記憶する領域である。
【００１８】
また、ＯＦＳ制御部１５は、制御回線７の使用帯域が８０％を超えていない場合、フローテーブル２２内の第１の動作内容２２Ｂを適用する。ＯＦＳ制御部１５は、制御回線７の使用帯域が８０％を超える場合、フローテーブル２２内の第２の動作内容２２Ｃを適用する。
【００１９】
ＯＦＳ制御部１５は、監視部３１と、計算部３２と、パケット処理部３３と、メッセージ処理部３４とを有する。監視部３１は、現在の処理負荷、例えば、制御回線７の現在の使用帯域を監視する。計算部３２は、監視部３１の監視結果である制御回線７の使用帯域が閾値８０％を超えたか否かを判定する。パケット処理部３３は、データ回線５を通じて送受信するパケットの各種処理を実行する。メッセージ処理部３４は、制御回線７を通じてＯＦＣ３との間でメッセージの各種処理を実行する。メッセージ処理部３４は、例えば、未知のパケットをカプセル化してPacketInメッセージを生成し、そのPacketInメッセージを、制御回線７を用いてＯＦＣ３に通知する。
【００２０】
計算部３２は、例えば、データ回線５から未知のパケットを受信したか否かを判定する、例えば、判定部である。計算部３２は、制御回線７の現在の使用帯域が８０％を超えたか否かを判定する、例えば、閾値判定部である。計算部３２は、制御回線７の使用帯域が８０％を超えていない場合に、フローテーブル２２内の第１の動作内容２２Ｂを適用する。メッセージ処理部３４は、第１の動作内容２２Ｂを参照し、未知のパケットをカプセル化してPacketInメッセージを生成し、PacketInメッセージを、制御回線７を用いてＯＦＣ３に通知する、例えば、第１の転送部である。計算部３２は、制御回線７の使用帯域が８０％を超えた場合、フローテーブル２２内の第２の動作内容２２Ｃを適用する。パケット処理部３３は、第２の動作内容２２Ｃを参照し、未知のパケットを転送トンネル６を用いて代理ＯＦＳに転送する、例えば、第２の転送部である。
【００２１】
パケット処理部３３は、主ＯＦＳとして未知のパケットを代理ＯＦＳに転送する場合、転送パケット内に最大ホップ数及び自装置のＤＰＩＤ（Data  Path  Identification）を付加し、付加した転送パケットを代理ＯＦＳに転送する。尚、最大ホップ数は、ホップ数テーブル２４に格納されているものとする。
【００２２】
また、代理ＯＦＳ内の計算部３２は、最大ホップ数及びＤＰＩＤを付加した転送パケットを転送トンネル６から受信した場合、自装置と接続する制御回線７の使用帯域が８０％を超えるか否かを判定する。
【００２３】
代理ＯＦＳ内のＯＦＳ制御部１５は、制御回線７の使用帯域が８０％を超えていない場合に、フローテーブル２２内の第１の動作内容２２Ｂを適用する。更に、代理ＯＦＳのメッセージ処理部３４は、第１の動作内容２２Ｂを適用した場合、転送トンネル６から受信したパケットをPacketInメッセージにカプセル化してＯＦＣ３に通知する。尚、メッセージ処理部３４は、転送トンネル６から受信したパケット内の主ＯＦＳのＤＰＩＤをPacketInメッセージに付加する。
【００２４】
更に、代理ＯＦＳ２内のパケット処理部３３は、第２の動作内容２２Ｃを適用した場合、転送トンネル６から受信したパケットに付加されたホップ数及びＤＰＩＤを抽出する。ＯＦＳ制御部１５は、抽出したホップ数が“０”であるか否かを判定する。パケット処理部３３は、抽出したホップ数が“０”でない場合、ホップ数を−１デクリメントして更新したホップ数及び抽出したＤＰＩＤをパケットに付加し、パケットを代理ＯＦＳに転送する。尚、抽出したＤＰＩＤは、主ＯＦＳを識別するＤＰＩＤである。
【００２５】
図５は、パケット転送に関わるホップ数の一例を示す説明図である。図５の例では、例えば、第２のＯＦＳ２Ｂ→第１のＯＦＳ２Ａ→第３のＯＦＳ２Ｃ→第４のＯＦＳ２Ｄ→第２のＯＦＳ２Ｂの順にデータ回線５及び転送トンネル６でループ接続しているものとする。第２のＯＦＳ２Ｂは、データ回線５Ａ及び転送トンネル６Ａを用いて第１のＯＦＳ２Ａと接続し、データ回線５Ｄ及び転送トンネル６Ｄを用いて第４のＯＦＳ２Ｄと接続し、制御回線７Ｂを用いてＯＦＣ３と接続する。第１のＯＦＳ２Ａは、データ回線５Ｂ及び転送トンネル６Ｂを用いて第３のＯＦＳ２Ｃと接続し、制御回線７Ａを用いてＯＦＣ３と接続する。第３のＯＦＳ２Ｃは、データ回線５Ｃ及び転送トンネル６Ｃを用いて第４のＯＦＳ２Ｄと接続し、制御回線７Ｃを用いてＯＦＣ３と接続する。第４のＯＦＳ２Ｄは、制御回線７Ｄを用いてＯＦＣ３と接続する。
【００２６】
例えば、第２のＯＦＳ２Ｂは、制御回線７Ｂの使用帯域が８０％を超えた場合、転送トンネル６Ａを用いて、未知のパケットの伝送パケットを代理ＯＦＳである第１のＯＦＳ２Ａに転送する。この際、第２のＯＦＳ２Ｂは、ホップ数テーブル２４内の最大ホップ数“２”及び主ＯＦＳである自装置を識別するＤＰＩＤを転送パケットに付加し、付加した転送パケットを転送トンネル６Ａで代理ＯＦＳである第１のＯＦＳ２Ａに転送する。
【００２７】
第１のＯＦＳ２Ａは、転送トンネル６Ａから転送パケットを受信し、制御回線７Ａの使用帯域が８０％を超えた場合、転送パケット内のホップ数が“０”であるか否かを判定する。第１のＯＦＳ２Ａは、ホップ数が“２”であるため、ホップ数を−１デクリメントして“１”とし、ホップ数“１”を転送パケットに付加する。更に、第１のＯＦＳ２Ａは、主ＯＦＳである第２のＯＦＳ２ＢのＤＰＩＤを転送パケットに付加する。そして、第１のＯＦＳ２Ａは、転送パケットを転送トンネル６Ｂで代理ＯＦＳである第３のＯＦＳ２Ｃに転送する。
【００２８】
第３のＯＦＳ２Ｃは、転送トンネル６Ｂから転送パケットを受信し、制御回線７Ｃの使用帯域が８０％を超えた場合、転送パケット内のホップ数が“０”であるか否かを判定する。第３のＯＦＳ２Ｃは、ホップ数が“１”であるため、ホップ数を−１デクリメントして“０”とし、ホップ数“０”を転送パケットに付加する。更に、第３のＯＦＳ２Ｃは、主ＯＦＳである第２のＯＦＳ２ＢのＤＰＩＤを転送パケットに付加する。そして、第３のＯＦＳ２Ｃは、転送パケットを転送トンネル６Ｃで代理ＯＦＳである第４のＯＦＳ２Ｄに転送する。
【００２９】
第４のＯＦＳ２Ｄは、転送トンネル６Ｃから転送パケットを受信し、制御回線７Ｄの使用帯域が８０％を超えた場合、転送パケット内のホップ数が“０”であるか否かを判定する。第４のＯＦＳ２Ｄは、ホップ数が“０”であるため、転送パケットの代理ＯＦＳへの転送を禁止と判断し、転送パケットをPacketInメッセージにカプセル化して制御回線７ＤでＯＦＣ３に転送する。この際、PacketInメッセージには、主ＯＦＳである第２のＯＦＳ２ＢのＤＰＩＤを付加する。
【００３０】
図６は、未知のパケット転送処理に関わる中継システム１の動作の一例を示す説明図である。図６に示す第２のＯＦＳ２Ｂは、未知のパケットを受信し、制御回線７Ｂの使用帯域が８０％を超える場合、未知のパケットを転送パケットとし、その転送パケットに最大ホップ数及び主ＯＦＳである自装置のＤＰＩＤを付加する。そして、第２のＯＦＳ２Ｂは、転送パケットを転送トンネル６Ａで代理ＯＦＳである第１のＯＦＳ２Ａに転送する。つまり、第２のＯＦＳ２Ｂは、未知のパケットのパケット量を１００％とした場合、制御回線７Ｂ経由で、その４０％分のパケットをPacketInメッセージでＯＦＣ３に通知する。更に、第２のＯＦＳ２Ｂは、その制御回線７Ｂの使用帯域が８０％を超えることで、転送トンネル６Ａを用いて、その６０％分のパケットを第１のＯＦＳ２Ａに転送する。
【００３１】
更に、第１のＯＦＳ２Ａは、転送トンネル６Ａを通じて転送パケットを受信した場合、制御回線７Ａの使用帯域が８０％を超えるか否かを判定する。第１のＯＦＳ２Ａは、制御回線７Ａの使用帯域が８０％を超えた場合、転送パケットのホップ数が“０”であるか否かを判定する。第１のＯＦＳ２Ａは、ホップ数が“０”でない場合、転送パケット内のホップ数を−１デクリメントして“１”にする。更に、第１のＯＦＳ２Ａは、ホップ数“１”及び主ＯＦＳである第２のＯＦＳ２ＢのＤＰＩＤを付加した転送パケットを転送トンネル６Ｂで代理ＯＦＳである第３のＯＦＳ２Ｃに転送する。つまり、第１のＯＦＳ２Ａは、未知のパケット全体の６０％分のパケットを転送トンネル６Ａで受信し、制御回線７Ａを用いて、未知のパケット全体の４０％分のパケットをPacketInメッセージでＯＦＣ３に通知する。更に、第１のＯＦＳ２Ａは、その制御回線７Ａの使用帯域が８０％を超えるため、転送トンネル６Ｂを用いて、残りの２０％分のパケットを第３のＯＦＳ２Ｃに転送する。
【００３２】
第３のＯＦＳ２Ｃは、転送トンネル６Ｂを通じて転送パケットを受信した場合、制御回線７Ｃの使用帯域が８０％を超えるか否かを判定する。第３のＯＦＳ２Ｃは、制御回線７Ｃの使用帯域が８０％を超えない場合、転送パケット内のホップ数が“０”であるか否かを判定する。第３のＯＦＳ２Ｃは、ホップ数が“０”の場合、転送パケットをPacketInメッセージにカプセル化し、制御回線７Ｃを用いて、そのPacketInメッセージをＯＦＣ３に転送する。つまり、第３のＯＦＳ２Ｃは、未知のパケット全体の２０％分のパケットを転送トンネル６Ｂで受信し、制御回線７Ｃを用いて、未知のパケット全体の残りの２０％分のパケットをPacketInメッセージで転送する。
【００３３】
図７は、ＯＦＣ３の一例を示す説明図である。図７に示すＯＦＣ３は、ＯＦＳ通信部５１と、入出力部５２と、記憶部５３と、ＯＦＣ制御部５４とを有する。ＯＦＳ通信部５１は、各制御回線７を通じて各ＯＦＳ２と通信する通信インタフェースである。入出力部５２は、例えば、管理者からの入力操作に応じて各種情報を入力すると共に、各種情報を出力する入出力インタフェースである。
【００３４】
記憶部５３は、メッセージ記憶部５３Ａを有する。メッセージ記憶部５３Ａは、各種メッセージを記憶する領域である。ＯＦＣ制御部５４は、ＯＦＣ３全体を制御する。
【００３５】
ＯＦＣ制御部５４は、解析部６１と、計算部６２と、メッセージ処理部６３とを有する。解析部６１は、メッセージ内容を解析する処理部である。メッセージ処理部６３は、各ＯＦＳ２との間の各種メッセージを処理する処理部である。メッセージ処理部６３は、受信したPacketInメッセージに格納された未知のパケットに関わる動作内容を生成する。尚、メッセージ処理部６３は、受信したPacketInメッセージに付加したＤＰＩＤに基づき、ＡＲＰ(Address Resolution Protocol)解決の処理を実行する。更に、メッセージ処理部６３は、その動作内容及びマッチ条件をＤＰＩＤに相当する主ＯＦＳに対してフローテーブル２２の更新を通知する。
【００３６】
図８は、PacketInメッセージの構成の一例を示す説明図である。PacketInメッセージ７０は、ofp  header構造体７１と、ofp  PacketIn構造体７２と、ofp  match構造体７３とを有する。ofp  header構造体７１は、Version７１Ａと、Type７１Ｂと、Length７１Ｃと、Xid７１Ｄとを有する。Version７１Ａは、ヘッダが有するオープンフローメッセージが準拠するバージョンを示す８ビットの情報である。Type７１Ｂは、ヘッダが有するオープンフローメッセージの種類を示す８ビットの情報である。Length７１Ｃは、オープンフローメッセージ全体の長さを示す１６ビットの情報である。Xid７１Ｄは、ＯＦＳ２とＯＦＣ３との間で実行するオープンフローメッセージの内、要求と返答とがあるメッセージを識別する３２ビットの情報である。
【００３７】
ofp  PacketIn構造体７２は、Buffer  id７２Ａと、Total  Len７２Ｂと、Reason７２Ｃと、Table  id７２Ｄと、Cookie７２Ｅとを有する。Buffer  id７２Ａは、受信したパケットがＯＦＳ２でバッファリングされている場合にパケットを識別する３２ビットの情報である。Total  Len７２Ｂは、パケットのサイズを示す１６ビットの情報である。Reason７２Ｃは、ＯＦＳ２がＯＦＣ３へPacketInを実行する要因を示す８ビットの情報である。Table  id７２Ｄは、ＯＦＳ２内でマッチングするフローテーブル２２を識別する８ビットの情報である。Cookie７２Ｅは、ＯＦＣ３へPacketInする要因となったフローを識別する６４ビットの情報である。
【００３８】
ofp  match構造体７３は、Type７３Ａと、Length７３Ｂと、複数のOXM  TLVs７４とを有する。Type７３Ａは、oft  match構造体の構造を決定する１６ビットの情報である。Length７３Ｂは、ofp  match構造体のサイズを示す１６ビットの情報である。Oxm  TLVs７４は、実際のパケット付加情報が格納される情報である。
【００３９】
OXM  TLVs７４は、Oxm  class７４Ａと、Oxm  field７４Ｂと、Has  mask７４Ｃと、Oxm  length７４Ｄと、Payload７４Ｅとを有する。Oxm  class７４Ａは、OXM  TLVs７４のクラスを識別する１６ビットの情報である。Oxm  field７４Ｂは、OXM  TLVs７４が保持しているデータの種別を示す７ビットの情報である。Has  mask７４Ｃは、OXM  TLVs７４がmaskを有しているか否かを識別する１ビットの情報である。Oxm  length７４Ｄは、Payload及びMaskのサイズを示す８ビットの情報である。Payload７４Ｅは、実際のデータが格納される情報である。そして、複数のOXM  TLVs７４の内、一つのOXM  TLVｓ７４に主ＯＦＳのＤＰＩＤを格納するものとする。
【００４０】
図９は、OXM  TLV７４１の一例（OFPXMC  OPENFLOW  BASIC）を示す説明図である。OFPXMC  OPENFLOW  BASICは、標準的なOxm  fieldを含むクラスを示す情報である。OXM  TLV７４１は、前述した通り、主ＯＦＳのＤＰＩＤを格納する領域である。Oxm  class７４Ａに、OFPXMC  OPENFLOW  BASIC=0x8000、Has  mask７４Ｃに０、Oxm  length７４Ｄに８、Payload７４Ｅに、主ＯＦＳのＤＰＩＤを格納する。
【００４１】
図１０は、OXM  TLV７４２の一例（OFPXMC  EXPERIMENTER）を示す説明図である。OFPXMC  EXPERIMENTERは実験的なOxm  fieldを含むクラスを示す情報である。OXM  TLV７４２は、前述した通り、主ＯＦＳのＤＰＩＤを格納する領域である。Oxm  class７４Ａに、OFPXMC  EXPERIMENTER=0xFFFF、Has  mask７４Ｃに０、Oxm  length７４Ｄに８、Payload７４Ｅに、主ＯＦＳ２のＤＰＩＤを格納する。
【００４２】
次に本実施例の中継システム１の動作について説明する。図１１は、事前設定処理に関わるＯＦＳ２の処理動作の一例を示すフローチャートである。図１１に示す事前設定処理は、管理者の設定操作に応じて各種設定値を設定する処理である。
【００４３】
図１１においてＯＦＳ２のＯＦＳ制御部１５は、管理者の設定操作に応じて、制御回線７の使用帯域の閾値、例えば、８０％を調整し、その調整した閾値を閾値テーブル２３に設定する（ステップＳ１１）。ＯＦＳ制御部１５は、管理者の設定操作に応じて、転送パケットの転送に使用する転送トンネル６をフローテーブル２２に設定する（ステップＳ１２）。
【００４４】
更に、ＯＦＳ制御部１５は、管理者の設定操作に応じて、パケットを転送する際の最大ホップ数をホップ数テーブル２４に設定する（ステップＳ１３）。更に、ＯＦＳ制御部１５は、管理者の設定操作に応じて、転送トンネル６からのパケットに対する動作内容をフローテーブル２２に設定し（ステップＳ１４）、図１１に示す処理動作を終了する。
【００４５】
図１１に示す事前設定処理を実行するＯＦＳ制御部１５は、管理者の設定操作に応じて、制御回線７の使用帯域の閾値、最大ホップ数、転送トンネル６及び、転送トンネル６からの受信パケットに対応する動作内容を調整して自由に設定できる。
【００４６】
図１２は、受信処理に関わるＯＦＳ２の処理動作の一例を示すフローチャートである。図１２においてＯＦＳ２内のＯＦＳ制御部１５は、パケットを受信したか否かを判定する（ステップＳ２１）。ＯＦＳ制御部１５は、パケットを受信した場合（ステップＳ２１肯定）、フローテーブル２２から受信パケットに対応する動作内容を参照し（ステップＳ２２）、その動作内容がPacketInであるか否かを判定する（ステップＳ２３）。
【００４７】
ＯＦＳ制御部１５は、受信パケットの動作内容がPacketInでない場合（ステップＳ２３否定）、その動作内容に基づき、受信パケットに対応する処理を実行し（ステップＳ２４）、図１２に示す処理動作を終了する。
【００４８】
ＯＦＳ制御部１５は、受信パケットの動作内容がPacketInの場合（ステップＳ２３肯定）、図１４に示す通知処理を実行し（ステップＳ２５）、図１２に示す処理動作を終了する。また、ＯＦＳ制御部１５は、パケットを受信しなかった場合（ステップＳ２１否定）、図１２に示す処理動作を終了する。
【００４９】
図１２に示す受信処理を実行するＯＦＳ制御部１５は、フローテーブル２２を参照し、受信パケットに対応する動作内容を読み出し、その動作内容に基づき、受信パケットの処理を実行する。
【００５０】
図１３は、更新処理に関わるＯＦＳ２の処理動作の一例を示すフローチャートである。図１３においてＯＦＳ２内のＯＦＳ制御部１５は、制御回線７の使用帯域が８０％を超えたか否かを判定する（ステップＳ３１）。ＯＦＳ制御部１５は、制御回線７の使用帯域が８０％を超えていない場合（ステップＳ３１否定）、フローテーブル２２内の未知のパケットに対する動作内容を第１の動作内容２２ＢとしてPacketInのＯＦＣ通知に設定する（ステップＳ３２）。更に、ＯＦＳ制御部１５は、フローテーブル２２内の転送トンネル６からの受信パケットに対する動作内容を第１の動作内容２２ＢとしてPacketInのＯＦＣ通知に設定し（ステップＳ３３）、図１３に示す処理動作を終了する。つまり、ＯＦＳ制御部１５は、制御回線７の使用帯域が８０％を超えていない場合、フローテーブル２２の動作内容として第１の動作内容２２Ｂを適用する。
【００５１】
また、ＯＦＳ制御部１５は、制御回線７の使用帯域が８０％を超えた場合（ステップＳ３１肯定）、フローテーブル２２内の未知のパケットに対する動作内容を第２の動作内容２２Ｃとして代理ＯＦＳ転送に更新する（ステップＳ３４）。更に、ＯＦＳ制御部１５は、フローテーブル２２内の転送トンネル６からの受信パケットに対する動作内容を第２の動作内容２２Ｃとして代理ＯＦＳ転送に更新し（ステップＳ３５）、図１３に示す処理動作を終了する。つまり、ＯＦＳ制御部１５は、制御回線７の使用帯域が８０％を超えた場合、フローテーブル２２の動作内容として第２の動作内容２２Ｃを適用する。
【００５２】
更新処理を実行するＯＦＳ制御部１５は、制御回線７の使用帯域が８０％を超えていない場合、フローテーブル２２の動作内容として第１の動作内容２２Ｂを適用できる。
【００５３】
更に、ＯＦＳ制御部１５は、制御回線７の使用帯域が８０％を超えた場合、フローテーブル２２の動作内容として第２の動作内容２２Ｃを適用できる。
【００５４】
図１４は、通知処理に関わるＯＦＳ２の処理動作の一例を示すフローチャートである。図１４においてＯＦＳ２内のＯＦＳ制御部１５は、受信パケットが転送トンネル６からの受信パケットであるか否かを判定する（ステップＳ４１）。ＯＦＳ制御部１５は、転送トンネル６からの受信パケットでない場合（ステップＳ４１否定）、制御回線７の使用帯域が８０％を超えたか否かを判定する（ステップＳ４２）。
【００５５】
ＯＦＳ制御部１５内のメッセージ処理部３４は、制御回線７の使用帯域が８０％を超えていない場合に（ステップＳ４２否定）、受信パケットをPacketInメッセージにカプセル化する（ステップＳ４３）。更に、メッセージ処理部３４は、制御回線７を用いて、PacketInメッセージをＯＦＣ３に通知し（ステップＳ４４）、図１４に示す処理動作を終了する。
【００５６】
ＯＦＳ制御部１５は、制御回線７の使用帯域が８０％を超えた場合に（ステップＳ４２肯定）、自装置のＤＰＩＤを取得し（ステップＳ４５）、ホップ数テーブル２４に格納中の最大ホップ数を取得する（ステップＳ４６）。更に、ＯＦＳ制御部１５内のパケット処理部３３は、取得したＤＰＩＤ及び最大ホップ数を受信パケットに付加し（ステップＳ４７）、受信パケットを代理ＯＦＳに転送し（ステップＳ４８）、図１４に示す処理動作を終了する。
【００５７】
ＯＦＳ制御部１５は、受信パケットが転送トンネル６からの受信パケットの場合（ステップＳ４１肯定）、受信パケット内のホップ数が“０”であるか否かを判定する（ステップＳ４９）。ＯＦＳ制御部１５は、受信パケットのホップ数が“０”でない場合（ステップＳ４９否定）、制御回線７の現在の使用帯域が８０％を超えたか否かを判定する（ステップＳ４９Ａ）。ＯＦＳ制御部１５は、制御回線７の現在の使用帯域が８０％を超えた場合（ステップＳ４９Ａ肯定）、受信パケットのホップ数を−１デクリメントして更新する（ステップＳ５０）。更に、ＯＦＳ制御部１５は、更新したホップ数を受信パケットに付加し（ステップＳ５１）、転送トンネル６を用いて、受信パケットを代理ＯＦＳに転送し（ステップＳ５２）、図１４に示す処理動作を終了する。
【００５８】
ＯＦＳ制御部１５は、受信パケット内のホップ数が“０”の場合（ステップＳ４９肯定）、受信パケットに付加したＤＰＩＤを抽出する（ステップＳ５３）。メッセージ処理部３４は、受信パケットをPacketInメッセージにカプセル化する（ステップＳ５４）。更にメッセージ処理部３４は、抽出したＤＰＩＤをPacketInメッセージに付加し（ステップＳ５５）、制御回線７を用いて、PacketInメッセージをＯＦＣ３に通知し（ステップＳ５６）、図１４に示す処理動作を終了する。ＯＦＳ制御部１５は、制御回線７の現在の使用帯域が８０％を超えていない場合に（ステップＳ４９Ａ否定）、受信パケットをPacketInメッセージにカプセル化すべく、ステップＳ４３に移行する。
【００５９】
図１４に示す通知処理を実行するＯＦＳ制御部１５は、制御回線７の使用帯域が８０％を超えていない場合、受信パケットをPacketInメッセージ内にカプセル化し、制御回線７経由でＯＦＣ３に通知する。その結果、ＯＦＳ２は、PacketInメッセージをＯＦＣ３に通知できる。
【００６０】
ＯＦＳ制御部１５は、制御回線７の使用帯域が８０％を超えた場合、自装置のＤＰＩＤ及びホップ数を転送パケットに付加し、転送トンネル６を用いて、付加した転送パケットを代理ＯＦＳに転送する。ＯＦＳ２は、転送パケットを代理ＯＦＳに転送し、各代理ＯＦＳがPacketInメッセージをＯＦＣ３に通知する。その結果、各ＯＦＳ２は、ＯＦＣ３への通知に要する処理負担を分散できるため、PacketInメッセージをＯＦＣ３に通知できないことによる通信遅延や通信不能の発生を抑制できる。
【００６１】
ＯＦＳ制御部１５は、転送トンネル６から受信したパケット内のホップ数が“０”の場合、パケットからＤＰＩＤを抽出し、抽出したＤＰＩＤをＰacketInメッセージに付加してＯＦＣ３に通知する。その結果、ＯＦＣ３は、ＤＰＩＤに依存したメッセージ処理を確保できる。
【００６２】
ＯＦＳ制御部１５は、転送トンネル６から受信したパケット内のホップ数が“０”でない場合、ホップ数を−１デクリメントし、転送トンネル６を用いて、その更新ホップ数を転送パケットに付加して代理ＯＦＳに転送する。その結果、ＯＦＳ２は、ホップ数に限定してパケットの転送回数を抑制し、転送パケットのループや不必要な転送を回避できる。
【００６３】
図１５は、PacketIn受信処理に関わるＯＦＣ３の処理動作の一例を示すフローチャートである。図１５に示すＯＦＣ３内のＯＦＣ制御部５４は、制御回線７からPacketInメッセージを受信したか否かを判定する（ステップＳ６１）。ＯＦＣ制御部５４は、PacketInメッセージを受信した場合（ステップＳ６１肯定）、PacketInメッセージ内にＤＰＩＤがあるか否かを判定する（ステップＳ６２）。
【００６４】
ＯＦＣ制御部５４は、PacketInメッセージ内にＤＰＩＤがある場合（ステップＳ６２肯定）、ＤＰＩＤに依存したPacketInメッセージの処理を実行し（ステップＳ６３）、図１５に示す処理動作を終了する。尚、PacketInメッセージ処理は、例えば、メッセージ内の転送パケット及びＤＰＩＤに基づき、転送パケットに対する動作内容を生成し、その動作内容を主ＯＦＳに通知する処理である。
【００６５】
ＯＦＣ制御部５４は、PacketInメッセージを受信しなかった場合（ステップＳ６１否定）、図１５に示す処理動作を終了する。ＯＦＣ制御部５４は、PacketInメッセージ内にＤＰＩＤがない場合（ステップＳ６２否定）、PacketInメッセージの処理を実行し（ステップＳ６４）、図１５に示す処理動作を終了する。
【００６６】
図１５に示すPacketIn受信処理を実行するＯＦＣ制御部５４は、制御回線７からPacketInメッセージを受信した場合、PacketInメッセージに関わる処理を実行する。例えば、ＯＦＣ制御部５４は、PacketInメッセージ内のパケットの動作内容を生成し、その動作内容をＯＦＳ２に通知する。その結果、ＯＦＣ３は、PacketInメッセージ内の転送パケットに関わる動作内容をＯＦＳ２に通知できる。
【００６７】
ＯＦＣ制御部５４は、制御回線７からPacketInメッセージを受信し、PacketInメッセージ内にＤＰＩＤがある場合、ＤＰＩＤに基づき、PacketInメッセージに関わる処理を実行する。例えば、ＯＦＣ制御部５４は、PacketInメッセージ内のパケットの動作内容を生成し、その動作内容を、PacketInメッセージ内のＤＰＩＤに基づき主ＯＦＳに通知する。その結果、ＯＦＣ３は、PacketInメッセージ内の転送パケットに関わる動作内容を主ＯＦＳに通知できる。
【００６８】
本実施例のＯＦＳ２は、未知のパケットを受信した場合に、当該未知のパケットを、ＯＦＣ３又は他のＯＦＳ２（代理ＯＦＳ）に転送する。その結果、従来、ＯＦＣ３にしか通知できなかった未知のパケットを他のＯＦＳ２に転送することで、ＯＦＣ３に通知する際の通知処理負荷を各ＯＦＳ２で分散できる。つまり、ＯＦＳ２は、通知処理負荷を他のＯＦＳ２と分担できる。そして、PacketInメッセージをＯＦＣ３に通知できないことによる通信遅延や通信不能を抑制できる。
【００６９】
ＯＦＳ２は、制御回線７の使用帯域が８０％を超えていない場合に、未知のパケットをPacketInメッセージでＯＦＣ３に通知する。その結果、ＯＦＳ２は、未知のパケットをPacketInメッセージでＯＦＣ３に通知できる。
【００７０】
ＯＦＳ２は、制御回線７の使用帯域が８０％を超えなかった場合に、未知のパケットを他のＯＦＳ２（代理ＯＦＳ）に転送する。その結果、ＯＦＳ２は、ＯＦＣ３へ未知のパケットを転送する際の処理負担を各ＯＦＳ２に分散できる。
【００７１】
ＯＦＳ２は、他のＯＦＳ２へ未知のパケットを転送する際に、当該パケットを転送できるホップ回数をパケットに付加し、当該パケットを他のＯＦＳ２（代理ＯＦＳ）に転送する。その結果、ＯＦＳ２は、ホップ数で転送回数を制限するため、転送パケットのループや不必要な転送を回避できる。
【００７２】
ＯＦＳ２は、他のＯＦＳ２から受信したパケット内のホップ数が所定回数を超えた場合に、当該未知のパケットをPacketInメッセージでＯＦＣ３に通知する。その結果、ＯＦＳ２は、ホップ数で転送回数を制限するため、転送パケットのループや不必要な転送を回避できる。
【００７３】
ＯＦＳ２は、未知のパケットを受信した場合に、当該未知のパケットに自装置（主ＯＦＳ）を識別するＤＰＩＤを付加し、当該パケットを他のＯＦＳ２（代理ＯＦＳ）に転送する。更に、代理ＯＦＳは、当該パケットから主ＯＦＳのＤＰＩＤを抽出し、当該パケットをPacketInメッセージでカプセル化し、そのメッセージにＤＰＩＤを付加してＯＦＣ３に通知する。その結果、ＯＦＣ３は、ＤＰＩＤに依存したPacketInメッセージ処理を実現できる。
【００７４】
尚、上記実施例のＯＦＳ２は、ＯＦＣ３からのFlow  Modメッセージに基づいて動的にフローテーブル２２の内容を設定可能にしたが、図示せぬ記憶装置に保持された静的な情報を読み込んでフローテーブル２２の内容を設定しても良い。
【００７５】
ＯＦＳ２は、制御回線７の使用帯域が閾値８０％を超えたか否かを判定したが、閾値は８０％に限定されるものではなく、その閾値は適宜変更可能である。しかも、その閾値は、制御回線７毎に設定変更可能である。
【００７６】
更に、ＯＦＳ２は、判定対象は制御回線７の使用帯域に限定されるものではなく、ＯＦＳ２のＯＦＳ制御部１５を司るＣＰＵの処理負荷量等であっても良い。この場合、ＣＰＵの処理負荷量が閾値８０％を超えたか否かを判定し、ＣＰＵの処理負荷量が８０％を超えた場合にフローテーブル２２内の動作内容２２Ｃを適用し、ＣＰＵの処理負荷量が８０％を超えなかった場合に動作内容２２Ｂを適用する。また、そのＣＰＵの閾値は、８０％に限定されるものではなく、適宜変更可能である。しかも、その閾値は、各ＯＦＳ２のＣＰＵ毎に設定変更可能である。また、ＯＦＳ２は、制御回線７の使用帯域及びＣＰＵの処理負荷量を併用して、処理負荷が所定閾値を超えたか否かを判定するようにしても良い。
【００７７】
ＯＦＳ２は、最大ホップ数を“２”としたが、これらに限定されるものではなく、適宜設定変更可能である。
【００７８】
データ回線５、転送トンネル６及び制御回線７は、有線は勿論のこと、無線にしても、同様の効果が得られる。
【００７９】
ＯＦＳ２は、制御回線７の使用帯域が８０％を超えた場合に単一の代理ＯＦＳに転送パケットを転送したが、転送パケットを複数の代理ＯＦＳに転送しても良い。
【００８０】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。
【００８１】
更に、各装置で行われる各種処理機能は、ＣＰＵ（Central  Processing  Unit）、ＤＳＰ（Digital  Signal  Processor）やＦＰＧＡ（Field  Programmable  Gate  Array）等上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、ＣＰＵ等で解析実行するプログラム上、又はワイヤードロジックによるハードウェア上で、その全部又は任意の一部を実行するようにしても良い。
【００８２】
各種情報を記憶する領域は、例えば、ＲＯＭ（Read  Only  Memory）や、ＳＤＲＡＭ（Synchronous  Dynamic  Random  Access  Memory）、ＭＲＡＭ（Magnetoresistive  Random  Access  Memory）やＮＶＲＡＭ（Non  Volatile  Random  Access  Memory）等のＲＡＭ（Random  Access  Memory）で構成しても良い。
【００８３】
ところで、本実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータ内のＣＰＵ等のプロセッサで実行させることによって実現できる。そこで、以下では、上記実施例と同様の機能を有するプログラムを実行する情報処理装置の一例を説明する。図１６は、中継プログラムを実行するコンピュータの一例を示す説明図である。
【００８４】
図１６に示す中継プログラムを実行するコンピュータ２００は、通信部２１０と、ＨＤＤ（Hard  Disc  Drive）２２０と、ＲＯＭ２３０と、ＲＡＭ２４０と、ＣＰＵ２５０とを有する。通信部２１０、ＨＤＤ２２０、ＲＯＭ２３０、ＲＡＭ２４０及びＣＰＵ２５０は、バス２６０を介して接続される。通信部２１０は、制御回線と接続して制御装置と通信すると共に、データ回線及び転送トンネルと接続して他のコンピュータ２００と通信する。
【００８５】
そして、ＲＯＭ２３０には、上記実施例と同様の機能を発揮する中継プログラムが予め記憶されている。ＲＯＭ２３０は、中継プログラムとして判定プログラム２３０Ａ及び転送プログラム２３０Ｂが記憶されている。尚、ＲＯＭ２３０ではなく、図示せぬドライブでコンピュータ読取可能な記録媒体に中継プログラムが記録されていても良い。また、記録媒体としては、例えば、ＣＤ−ＲＯＭ、ＤＶＤディスク、ＵＳＢメモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ等でも良い。
【００８６】
そして、ＣＰＵ２５０は、判定プログラム２３０ＡをＲＯＭ２３０から読み出し、ＲＡＭ２４０上で判定プロセス２４０Ａとして機能させる。更に、ＣＰＵ２５０は、転送プログラム２３０ＢをＲＯＭ２３０から読み出し、ＲＡＭ２４０上で転送プロセス２４０Ｂとして機能させる。
【００８７】
ＣＰＵ２５０は、宛先不明のパケットを受信したか否かを判定する。ＣＰＵ２５０は、宛先不明のパケットを受信した場合に、当該宛先不明のパケットを、当該中継装置を監視制御する制御装置、又は他の中継装置に転送する。その結果、中継装置は、未知のパケットを制御装置は勿論のこと、他の中継装置にも転送が可能になるため、宛先不明のパケットの転送に要する処理負荷を分散して軽減できる。つまり、中継装置は、通知処理負荷を他の中継装置と分担できる。
【符号の説明】
【００８８】
１  中継システム
２  ＯＦＳ
３  ＯＦＣ
２２  フローテーブル
３１  監視部
３２  計算部
３３  パケット処理部
３４  メッセージ処理部
【図１】
2017063280.tif 000003
【図２】
2017063280.tif 000004
【図３】
2017063280.tif 000005
【図４】
2017063280.tif 000006
【図５】
2017063280.tif 000007
【図６】
2017063280.tif 000008
【図７】
2017063280.tif 000009
【図８】
2017063280.tif 000010
【図９】
2017063280.tif 000011
【図１０】
2017063280.tif 000012
【図１１】
2017063280.tif 000013
【図１２】
2017063280.tif 000014
【図１３】
2017063280.tif 000015
【図１４】
2017063280.tif 000016
【図１５】
2017063280.tif 000017
【図１６】
2017063280.tif 000018