(57)【要約】【課題】コントローラの負荷を軽減する。【解決手段】転送装置は、制御装置から取得した処理ルールに従ってフレームを処理し、記憶部、検出部、取得部、同期制御部を備える。記憶部は、制御装置から取得した処理ルールを記憶する。検出部は、記憶部に記憶されている第１の処理ルールを適用するフレームを受信しない期間が所定期間を超えると、第１の処理ルールを削除可能な情報として検出する。取得部は、第１の処理ルールを削除するタイミングを第２の処理ルールの削除と同期させる設定が第１の処理ルールに含まれている場合、第２の処理ルールの使用状況を取得する。同期制御部は、第２の処理ルールの使用状況を用いて、第１の処理ルールを削除するかを決定する。【選択図】図１
2018113506.tif 000002
【特許請求の範囲】
【請求項１】
制御装置から取得した処理ルールに従ってフレームを処理する転送装置であって、
前記制御装置から取得した処理ルールを記憶する記憶部と、
前記記憶部に記憶されている第１の処理ルールを適用するフレームを受信しない期間が所定期間を超えると、前記第１の処理ルールを削除可能な情報として検出する検出部と、
前記第１の処理ルールを削除するタイミングを第２の処理ルールの削除と同期させる設定が前記第１の処理ルールに含まれている場合、前記第２の処理ルールの使用状況を取得する取得部と、
前記第２の処理ルールの使用状況を用いて、前記第１の処理ルールを削除するかを決定する同期制御部
を備えることを特徴とする転送装置。
【請求項２】
前記記憶部は、前記記憶部が保持する処理ルールと削除のタイミングを同期させる処理ルールの通知先の情報をさらに記憶し、
前記取得部は、前記通知先から前記第２の処理ルールの使用状況を取得し
前記同期制御部は、前記第２の処理ルールが前記通知先で使用されていない場合、前記第１の処理ルールを前記記憶部から削除する
ことを特徴とする請求項１に記載の転送装置。
【請求項３】
前記制御装置から取得する処理ルールの各々には、当該処理ルールの削除のタイミングが他の処理ルールの削除と同期される場合、削除のタイミングを同期させるグループを識別する識別情報が含められ、
前記取得部は、前記第１の処理ルールに含まれる識別情報を用いて、前記通知先に、前記第１の処理ルールと同じグループに属する処理ルールの使用状況を問い合わせ、
前記同期処理部は、前記第１の処理ルールと同じグループに属する処理ルールが前記通知先のいずれでも使用されていない場合、前記第１の処理ルールを前記記憶部から削除すると共に、前記通知先に、前記第１の処理ルールが含む識別情報を含む処理ルールの削除を要求する
ことを特徴とする請求項２に記載の転送装置。
【請求項４】
前記記憶部は、前記制御装置から取得した処理ルールの各々に対応付けて、当該処理ルールの使用状況をさらに記憶し、
前記取得部は、前記第２の処理ルールが前記記憶部に記憶されている場合、前記第２の処理ルールに対応付けられている使用状況を取得し、
前記同期制御部は、前記第２の処理ルールが使用中である場合、前記第１の処理ルールに対応付けて前記記憶部に記録される使用状況を、削除保留中に設定する
ことを特徴とする請求項１〜３のいずれか１項に記載の転送装置。
【請求項５】
制御装置から取得した処理ルールに従ってフレームを処理する転送装置が、
前記制御装置から取得した処理ルールを記憶し、
記憶している第１の処理ルールを適用するフレームを受信しない期間が所定期間を超えると、前記第１の処理ルールを削除可能な情報として検出し、
前記第１の処理ルールを削除するタイミングを第２の処理ルールの削除と同期させる設定が前記第１の処理ルールに含まれている場合、前記第２の処理ルールの使用状況を取得し、
前記第２の処理ルールの使用状況を用いて、前記第１の処理ルールを削除するかを決定する
ことを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、転送装置と転送装置で行われる制御に関する。
【背景技術】
【０００２】
近年、ＳＤＮ(Software Defined Networking)に対応したシステムの研究や開発が進められており、様々なＳＤＮコントローラ、ＳＤＮスイッチなどが提供されている。また、コントローラとスイッチとの間の通信にＯｐｅｎＦｌｏｗプロトコルが使用されることがある。ＳＤＮに対応したシステムでは、ＳＤＮスイッチでのフレームの処理に使用される処理ルールが、ＳＤＮコントローラから通知される。ＳＤＮスイッチは、ＳＤＮコントローラから通知された処理ルールに従って受信フレームを処理するが、受信フレームに適用する処理ルールを保持していない場合は、ＳＤＮコントローラに受信フレームに適用可能な処理ルールを問合わせる。
【０００３】
ＳＤＮスイッチには、ｉｄｌｅ  ｔｉｍｅｏｕｔ機能に対応したものも提案されている。ｉｄｌｅ  ｔｉｍｅｏｕｔに対応したＳＤＮスイッチは、取得した処理ルールのうち、所定時間以上、受信フレームに適用しなかった処理ルールを自律的に削除する。レイヤ２（Ｌ２）のＭＡＣ（Media Access Control）アドレスを、事前にＳＤＮコントローラに登録しておくことは煩雑であるため、Ｌ２の条件を用いた処理ルールでｉｄｌｅ  ｔｉｍｅｏｕｔ機能が使用されることが多い。ＳＤＮコントローラは、ＳＤＮスイッチから処理ルールの問い合わせを受信すると、問い合わせの対象となっているフレームに含まれているＭＡＣアドレスを取得する。ＳＤＮコントローラは、取得したＭＡＣアドレスが割り当てられた端末から送信されたフローに対する制御を決定すると、問い合わせ元のＳＤＮスイッチに対して、ｉｄｌｅ  ｔｉｍｅｏｕｔ付きの処理ルールを通知する。ＳＤＮスイッチでは、ｉｄｌｅ  ｔｉｍｅｏｕｔが設定された処理ルールを適用可能なフレームを所定期間中に受信している間は、処理ルールを保持する。しかし、ｉｄｌｅ  ｔｉｍｅｏｕｔで設定された期間以上にわたって通信がない端末についての処理ルールは、ＳＤＮスイッチで削除される。
【０００４】
関連する技術として、コントローラが、複数のスイッチ間で相互に送受信される巡回パケットが到着しなくなった場合に削除される巡回用エントリを複数のスイッチに設定する管理方法が提案されている。この管理方法では、コントローラは、巡回用エントリの削除がスイッチから通知されると、システム中の障害を検出する（例えば、特許文献１）。また、新たに設定されたスイッチが、コントローラのＩＰアドレスを含む設定情報の問い合わせをブロードキャストし、コントローラや他のスイッチから、コントローラのＩＰアドレスを含む設定情報を取得するシステムも提案されている（例えば、特許文献２）。このシステム中のスイッチは、一定間隔で、他のスイッチに対して、コントローラのＩＰアドレスを含む設定情報の問い合わせを繰り返す。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１３／１１５１７７号
【特許文献２】特開２０１３−１４３６９８号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ある処理ルールにｉｄｌｅ  ｔｉｍｅｏｕｔが設定されている場合、設定されている期間中にその処理ルールが使用されたかによって、その処理ルールを削除するかが決定される。しかし、ある処理ルールが設定された期間にわたって使用されていなくても、後で処理ルールが使用される可能性が高い場合もある。このような場合、処理ルールを削除した後で、スイッチが削除済みの処理ルールを適用可能なフレームを受信すると、再度、コントローラへの問い合わせが行われる。このように、スイッチから複数回にわたって同じ処理ルールが問い合わせられることがあるため、コントローラに負荷がかかっている。なお、以上の説明では、ＯｐｅｎＦｌｏｗプロトコルが使用される場合を例としたが、他のプロトコルが使用される場合であっても、スイッチがコントローラから指定された処理ルールに従って処理を行う場合には、同様の問題が発生する。
【０００７】
本発明は、１つの側面では、コントローラの負荷を軽減することを目的とする。
【課題を解決するための手段】
【０００８】
ある１つの態様にかかる転送装置は、制御装置から取得した処理ルールに従ってフレームを処理し、記憶部、検出部、取得部、同期制御部を備える。記憶部は、前記制御装置から取得した処理ルールを記憶する。検出部は、前記記憶部に記憶されている第１の処理ルールを適用するフレームを受信しない期間が所定期間を超えると、前記第１の処理ルールを削除可能な情報として検出する。取得部は、前記第１の処理ルールを削除するタイミングを第２の処理ルールの削除と同期させる設定が前記第１の処理ルールに含まれている場合、前記第２の処理ルールの使用状況を取得する。同期制御部は、前記第２の処理ルールの使用状況を用いて、前記第１の処理ルールを削除するかを決定する。
【発明の効果】
【０００９】
コントローラの負荷を軽減できる。
【図面の簡単な説明】
【００１０】
【図１】実施形態にかかる制御方法の例を説明する図である。
【図２】転送装置の構成の例を説明する図である。
【図３】転送装置のハードウェア構成の例を説明する図である。
【図４】ネットワークとフローテーブルの例を説明する図である。
【図５】削除対象のエントリを検出したときの処理の例を説明するフローチャートである。
【図６】フローテーブルの例を説明する図である。
【図７】フレームを受信したときの処理の例を説明するフローチャートである。
【図８】ネットワークの例を説明する図である。
【図９】転送装置の組み合わせの例を説明する図である。
【図１０】組み合わせ管理テーブルの例を説明する図である。
【図１１】フレームのフォーマットの例を説明する図である。
【図１２】ネットワークとフローテーブルの例を説明する図である。
【図１３】転送装置が行う処理の例を説明するシーケンス図である。
【図１４】削除対象のエントリを検出したときの処理の例を説明するフローチャートである。
【図１５】他の転送装置からのフレームを受信したときの処理の例を説明するフローチャートである。
【図１６】周期的に行われる処理の例を説明するフローチャートである。
【発明を実施するための形態】
【００１１】
コントローラは、転送装置で使用される処理ルールを、転送装置に通知する。ここで、処理ルールは、転送装置が受信フレームに対して行う処理を指定する情報と、その処理を適用するフレームの条件の組み合わせを含む。
【００１２】
実施形態にかかる制御方法では、コントローラは、ある処理ルールを、その処理ルールが使用されている場合に後で使用される可能性がある他の処理ルールと同じグループに分類する。例えば、ある端末間での通信経路の設定に使用される処理ルールと、その通信経路の冗長経路の設定に使用される処理ルールは、１つのグループに分類され得る。さらに、送信元と宛先のアドレスが同じでポート番号が異なる条件を有する処理ルールも、１つのグループに分類されても良い。例えば、端末Ａと端末Ｂの間で宛先ポート番号がＸの通信が行われているが、端末Ａと端末Ｂの間で宛先ポート番号がＹのフローは所定期間以上、転送装置で受信されていないとする。この場合、端末Ａと端末Ｂの間の通信が継続しているので、ユーザの処理によっては、今後、宛先ポート番号がＹのフローが発生する場合もあり得る。換言すると、あるグループに属する処理ルールの各々では、その処理ルールの削除のタイミングを、同じグループ中の他の処理ルールの削除と同期させることが望ましいことになる。
【００１３】
このように、コントローラは、削除のタイミングを同期させることが望ましい処理ルールを１つのグループに分類し、各処理ルール中に、その処理ルールが属するグループを識別する情報が含めた状態で、転送装置に通知する。以下、図１を参照しながら、転送装置での処理の例を説明する。
【００１４】
図１は、実施形態にかかる制御方法の例を説明するフローチャートである。転送装置は、処理ルールをフローテーブルに格納している。転送装置は、使用されていない期間が所定期間を超えた処理ルールを検出したかを判定する（ステップＳ１）。ここで、フローテーブル中のあるエントリ中の処理ルールで使用されていない期間が所定期間を超えたとする（ステップＳ１でＹｅｓ）。すると、転送装置は、使用されていない期間が所定期間を超えた処理ルールとして検出した処理ルールは、削除のタイミングの同期処理の対象であるかを判定する（ステップＳ２）。ここで、削除のタイミングの同期処理の対象となる処理ルールは、その処理ルールの削除のタイミングを他の処理ルールの削除と同期させることが要求されている処理ルールであり、グループの識別情報を含んでいる。
【００１５】
転送装置は、使用されていない期間が所定期間を超えた処理ルールが同期処理の対象の処理ルールであると判定したとする（ステップＳ２でＹｅｓ）。この場合、転送装置は、使用されていない期間が所定期間を超えた処理ルールと削除時期を同期する処理ルールであって、かつ、使用中の処理ルールがあるかを判定する（ステップＳ３）。使用されていない期間が所定期間を超えた処理ルールと削除時期を同期する処理ルールであって、使用中のエントリがある場合、転送装置は、使用されていない期間が所定期間を超えた処理ルールを削除保留中に設定する（ステップＳ３でＹｅｓ、ステップＳ４）。
【００１６】
一方、使用されていない期間が所定期間を超えた処理ルールと削除時期を同期する処理ルールのうちで使用中の処理ルールがない場合、転送装置は、使用されていない期間が所定期間を超えた処理ルールを削除する（ステップＳ３でＮｏ、ステップＳ５）。さらに、転送装置は、削除した処理ルールと削除時期を同期するために削除が保留されている処理ルールを削除するための処理を行う（ステップＳ６）。すなわち、転送装置は、削除した処理ルールと削除時期を同期するために削除を保留していた処理ルールのうち、自装置が保持している処理ルールを削除する。削除した処理ルールと削除時期を同期するために削除が保留されていた処理ルールが他の転送装置に保持されている可能性がある場合、転送装置は、他の転送装置に対して、削除した処理ルールと削除時期を同期させる処理ルールの削除を要求する。
【００１７】
次に、使用されていない期間が所定期間を超えたエントリ中の処理ルールが同期処理の対象の処理ルールではないと判定された場合について説明する（ステップＳ２でＮｏ）。この場合、転送装置は、使用されていない期間が所定期間を超えた処理ルールを削除する（ステップＳ７）。
【００１８】
このように、転送装置は、処理ルールにグループを特定する情報が含まれている場合、同じグループ中の他の処理ルールの使用状況に応じて、所定期間以上使用されていない処理ルールを削除するかを決定する。このため、転送装置は、設定された期間にわたって使用されていなくても、後で使用される可能性のある処理ルールを削除しないで保持することができる。従って、所定期間使用されていない処理ルールを適用可能なフレームを受信した場合にも、転送装置は、コントローラに処理ルールを問合わせることなく、受信フレームを処理することができる。
【００１９】
実施形態にかかる転送装置は、他の処理ルールと削除のタイミングを同期させる設定がされていない処理ルールについては、使用されていない期間が所定期間を経過すると削除する。このため、ＯｐｅｎＦｌｏｗプロトコルのｉｄｌｅ  ｔｉｍｅｏｕｔが使用される場合と同様に、システムにアクセスしなくなった端末への経路情報が所定の期間で削除されるので、個々の転送装置の記憶領域を有効活用することもできる。
【００２０】
＜装置構成＞
以下、ＯｐｅｎＦｌｏｗプロトコルが使用されるシステムを例として説明する。ＯｐｅｎＦｌｏｗプロトコルが使用される場合、使用されていない期間が所定期間を経過しているかは、ｉｄｌｅ  ｔｉｍｅｏｕｔ機能を用いて判定される。
【００２１】
図２は、転送装置１０の構成の例を説明する図である。転送装置１０は、Ｄ−Ｐｌａｎｅ回線インタフェース１１、Ｃ−Ｐｌａｎｅ回線インタフェース１２、送信部１３、受信部１４、制御部２０、同期処理部３０、Ｏｐｅｎｆｌｏｗプロトコル処理部４１を備える。ここで、Ｄ−Ｐｌａｎｅはユーザデータを含むフレームの送受信に使用され、Ｃ−Ｐｌａｎｅは制御用のフレームの送受信に使用される。Ｄ−Ｐｌａｎｅ回線インタフェース１１は、データフレームの送受信に使用され、Ｃ−Ｐｌａｎｅ回線インタフェース１２は、制御フレームの送受信に使用される。転送装置１０は、さらに、オプションとして、スイッチ間通信処理部４２、組み合わせ管理テーブル４３を有しても良い。
【００２２】
制御部２０は、フローテーブル２１、フレーム処理部２２、検出部２３を有する。同期処理部３０は、取得部３１と同期制御部３２を有する。
【００２３】
送信部１３は、データフレームの送信処理を行う。受信部１４は、データフレームの受信処理を行う。フローテーブル２１は、コントローラ６０（図４）から転送装置１０が受信した処理ルールを格納している。フレーム処理部２２は、受信部１４で受信されたフレームに対して、フローテーブル２１に指定された処理を特定する。さらに、フレーム処理部２２は、受信フレームに対して指定された処理を行う。受信フレームに対する転送先がフローテーブル２１に指定されている場合、フレーム処理部２２は、受信フレームを、転送先の情報と共に送信部１３に出力する。検出部２３は、フローテーブル２１に格納されている各処理ルールに対して、未使用の期間が所定の期間を経過したかを判定する。なお、その処理ルールを削除するまでの期間は、処理ルールごとに異なる値が指定されても良い。この場合、検出部２３は、処理ルールごとに、その処理ルールに対して指定された期間にわたって、その処理ルールが未使用であるかを判定する。
【００２４】
同期制御部３２は、未使用の期間が所定の期間を経過したことを検出部２３が検出した処理ルールが、削除のタイミングを他の処理ルールと同期させることが指定されている処理ルールであるかを判定する。取得部３１は、未使用の期間が所定の期間を経過したことが検出された処理ルールと、削除のタイミングを同期させることが指定されている他の処理ルールの使用状況を取得する。なお、削除のタイミングを同期させることが指定されている他の処理ルールは、後述するように、未使用の期間が所定の期間を経過したことが検出された処理ルールと同じ転送装置１０に記憶されていても良く、異なる転送装置１０に記憶されていても良い。
【００２５】
Ｏｐｅｎｆｌｏｗプロトコル処理部４１は、Ｏｐｅｎｆｌｏｗプロトコルの処理を行う。例えば、Ｏｐｅｎｆｌｏｗプロトコル処理部４１は、コントローラ６０に対する処理ルールの問い合わせやフローテーブル２１の更新等を行う。スイッチ間通信処理部４２は、適宜、取得部３１からの要求に基づいて、システム中の他の転送装置１０との間の通信を行う。組み合わせ管理テーブル４３は、同期させることが指定されている他の処理ルールを保持する可能性のある転送装置１０の情報を格納する。
【００２６】
図３は、転送装置１０のハードウェア構成の例を説明する図である。転送装置１０は、プロセッサ１０１、メモリ１０２、バス１０３、回線インタフェース１０４（１０４ａ、１０４ｂ）を備える。プロセッサ１０１は、任意の処理回路であり、例えば、ＣＰＵ（Central Processing Unit）とすることができる。プロセッサ１０１は、メモリ１０２をワーキングメモリとして使用して、プログラムを実行することにより、様々な処理を実行する。メモリ１０２には、ＲＡＭ（Random Access Memory）が含まれ、さらに、ＲＯＭ（Read Only Memory）等の不揮発性のメモリも含まれる。メモリ１０２は、プログラムやプロセッサ１０１での処理に使用されるデータの格納に使用される。回線インタフェース１０４は、ネットワークを介した他の装置との通信に使用される。バス１０３は、プロセッサ１０１、メモリ１０２、回線インタフェース１０４を、互いにデータの入出力が可能になるように接続する。
【００２７】
さらに、オプションとして、転送装置１０は、可搬記憶媒体にアクセス可能であっても良い。この場合、転送装置１０は、メモリ１０２中のデータを可搬記憶媒体に出力することができ、また、可搬記憶媒体からプログラムやデータ等を読み出すことができる。ここで、可搬記憶媒体は、持ち運びが可能な任意の記憶媒体である。
【００２８】
転送装置１０において、プロセッサ１０１は、送信部１３、受信部１４、フレーム処理部２２、検出部２３、同期処理部３０、Ｏｐｅｎｆｌｏｗプロトコル処理部４１、スイッチ間通信処理部４２として動作する。メモリ１０２は、フローテーブル２１と組み合わせ管理テーブル４３を保持する。Ｄ−Ｐｌａｎｅ回線インタフェース１１とＣ−Ｐｌａｎｅ回線インタフェース１２は、回線インタフェース１０４によって実現される。
【００２９】
＜第１の実施形態＞
第１の実施形態では、削除のタイミングが同期される複数の処理ルールが１台の転送装置１０に設定されている場合を例として説明する。なお、第１の実施形態では、組み合わせ管理テーブル４３とスイッチ間通信処理部４２を備えていない転送装置１０を用いることもできる。
【００３０】
図４は、ネットワークとフローテーブルの例を説明する図である。ネットワークＮ１では、転送装置１０は、端末５ａ、コントローラ６０、サーバ７０ｘ、サーバ７０ｙに接続されているとする。転送装置１０は、ＳＤＮスイッチとして動作し、コントローラ６０はＳＤＮコントローラとして動作する。ネットワークＮ１では、端末５ａのＭＡＣアドレスはＡ、サーバ７０ｘのＭＡＣアドレスはＸ、サーバ７０ｙのＭＡＣアドレスはＹである。さらに、転送装置１０にはＳＷ１という識別子が割り当てられているとする。ネットワークＮ１では、サーバ７０ｘは、転送装置１０のポート１に接続されており、サーバ７０ｙは、転送装置１０のポート２に接続されている。
【００３１】
ここで、ネットワークＮ１では、転送装置１０にサーバ７０ｘとサーバ７０ｙが接続されているので、転送装置１０に接続する端末５は、サーバ７０ｘとサーバ７０ｙの両方にアクセス可能である。そこで、予め、コントローラ６０は、転送装置１０において、受信フレームをサーバ７０ｘに転送する際に使用する処理ルールと、受信フレームをサーバ７０ｙに転送する際に使用する処理ルールの削除のタイミングを同期させるように設定されているとする。
【００３２】
例えば、端末５ａが転送装置１０に接続して通信を開始しようとする場合、端末５ａは、宛先のＭＡＣアドレスを問合わせるためのＡＲＰ（Address Resolution Protocol）パケットを含むフレームを送信する。転送装置１０の受信部１４は、Ｄ−Ｐｌａｎｅ回線インタフェース１１を介して端末５ａから送信されたフレームをフレーム処理部２２に出力する。フレーム処理部２２は、入力されたフレームに適用する処理ルールをフローテーブル２１中で検索するが、この時点では、端末５ａから送信されたフレームに関する処理ルールはフローテーブル２１に記録されていないとする。すると、Ｏｐｅｎｆｌｏｗプロトコル処理部４１は、受信フレームに適用する処理ルールをコントローラ６０に要求するための要求メッセージを生成する。例えば、要求メッセージとして、Ｐａｃｋｅｔ−Ｉｎメッセージが使用され得る。
【００３３】
コントローラ６０は、要求メッセージを取得すると、端末５ａがネットワークに含まれていることを認識する。コントローラ６０は、トポロジ情報を更新すると共に、以後は、更新後のトポロジ情報を用いて、処理ルールの生成を行うことができる。例えば、コントローラ６０は、端末５ａから送信されたＡＲＰパケットを含むフレームを転送装置１０のＰｏｒｔ１やＰｏｒｔ２から送信することを指定する処理ルールや、端末５ａ宛のフレームの出力ポートを指定する処理ルールを生成したとする。生成されたルールは、コントローラ６０からＣ−プレーンを介して転送装置１０に通知される。
【００３４】
転送装置１０のＯｐｅｎｆｌｏｗプロトコル処理部４１は、Ｃ−Ｐｌａｎｅ回線インタフェース１２経由でコントローラ６０から処理ルールを取得すると、得られた処理ルールをフローテーブル２１に格納する。また、フレーム処理部２２は、端末５ａから送信されたフレームを通知された処理ルールに従って転送するので、端末５ａから送信されたＡＲＰは、サーバ７０ｘに到達する。サーバ７０ｘは、ＡＲＰ  ｒｅｐｌｙを端末５ａ宛に送信する。転送装置１０のフレーム処理部２２は、サーバ７０ｘから送信されたＡＲＰｒｅｐｌｙを含むフレームを、受信部１４などを介して取得すると、フローテーブル２１に従って処理する。このため、ＡＲＰ  ｒｅｐｌｙを含むフレームが端末５ａに到達し、端末５ａは、通信先のＭＡＣアドレスを取得できる。
【００３５】
例えば、コントローラ６０は端末５aにサーバ７０ｘの特定のサービスの使用を許可し、ＡＲＰ用のフローテーブルと同時に、サーバ７０ｘの特定のサービスへの処理ルールをフローテーブル２１に設定する。
【００３６】
ここで、コントローラ６０には、予め、オペレータによって、サーバ７０ｘ宛のフレームの処理ルールと、サーバ７０ｙ宛のフレームの処理ルールとの間で、削除のタイミングを同期させることが設定されている。そこで、コントローラ６０は、端末５ａからサーバ７０ｘ宛てに送信されたフレームに適用する処理ルールには、削除のタイミングの同期処理に使用する設定情報を含める。設定情報の例については後述する。生成されたルールは、コントローラ６０からＣ−プレーンを介して転送装置１０に通知されるので、他の処理ルールと同様の手順により、フローテーブル２１に記録される。
【００３７】
端末５ａがサーバ７０ｙと通信を開始する際にも、端末５ａからのＡＲＰパケットを含むフレームの送信やサーバ７０ｙからのＡＲＰｒｅｐｌｙの送信が行われるので、端末５ａは、サーバ７０ｙのＭＡＣアドレス（Ｙ）を取得できる。
【００３８】
例えば、コントローラ６０は端末５aにサーバ７０ｙの特定のサービスの使用を許可し、ＡＲＰ用のフローテーブルと同時に、サーバ７０ｙの特定のサービスへの処理ルールをフローテーブル２１に設定する。
【００３９】
このとき、コントローラ６０は、端末５ａからサーバ７０ｙ宛てに送信されたフレームに適用する処理ルールにも、削除のタイミングの同期処理に使用する設定情報を含める。生成されたルールは、コントローラ６０からＣ−プレーンを介して転送装置１０に通知される。
【００４０】
図４のフローテーブル２１は、転送装置１０が保持するフローテーブル２１の例である。図４の例では、フローテーブル２１に、処理ルールの通知先の転送装置１０の識別子と処理ルールが含まれているが、フローテーブル２１には、転送装置１０の識別子は含まれていなくても良い。また、フローテーブル２１には、説明の関係上、一部の処理ルールを図示しているが、フローテーブル２１には他の処理ルールも含まれ得る。
【００４１】
処理ルールには、マッチパターン、アクション、Ｃｏｏｋｉｅ、ｉｄｌｅ  ｔｉｍｅｏｕｔの設定値、状態情報が含まれる。マッチパターンは、その処理ルールが適用されるフレームの条件を表わす情報である。アクションは、マッチパターンに該当するフレームに対して転送装置１０で行う処理である。ｉｄｌｅ  ｔｉｍｅｏｕｔの設定値は、その処理ルールが使用されなくなってから削除可能であると判定されるまでの期間である。すなわち、使用されなくなってから経過した期間がｉｄｌｅ  ｔｉｍｅｏｕｔの設定値に達した処理ルールは、検出部２３によって、削除可能な処理ルールとして検出される。状態情報は、処理ルールの使用状況を表わす情報である。処理ルールが最後に使用されてから経過した期間がｉｄｌｅ  ｔｉｍｅｏｕｔの設定値に達していない場合、状態情報＝Ａｃｔｉｖｅに設定される。すなわち、状態情報＝Ａｃｔｉｖｅは、使用中の処理ルールを表わしている。処理ルールが最後に使用されてから経過した期間がｉｄｌｅ  ｔｉｍｅｏｕｔの設定値以上になっているが、削除時期を同期する他の処理ルールが削除可能な状態ではないため、削除を保留している場合、状態情報＝保留中に設定される。
【００４２】
Ｃｏｏｋｉｅは、転送装置１０での削除のタイミングを同期させるための設定情報として用いられている。Ｃｏｏｋｉｅは、処理ルールの削除のタイミングを同期させるための指示と、処理ルールの削除のタイミングを同期させる処理ルールのグループの識別情報を含む。Ｃｏｏｋｉｅに含まれる情報要素の例をＦ１に示す。図４の例では、Ｃｏｏｋｉｅが６４ビットのビット列であり、上位１６ビットが同期指示フィールドに使用される。例えば、削除時期を他の処理ルールと同期させる処理ルールの場合、同期指示フィールドの値は０ｘｆｆｆｆに設定される。Ｃｏｏｋｉｅの下位２４ビットは、グループ識別子フィールドとして使用される。グループ識別子フィールドには、処理ルールの削除のタイミングを同期させる処理ルールのグループを識別する情報（グループ識別子）が記録される。なお、グループ識別子は、コントローラ６０において、削除のタイミングを同期させる処理ルールのグループごとに設定される。例えば、コントローラ６０は、端末５ａとサーバ７０ｘの間の通信に関する処理ルールと、端末５ａとサーバ７０ｙの間の通信に関する処理ルールを同じグループに分類すると共に、そのグループのグループ識別子を０ｘ１２３４３２などの値に設定できる。
【００４３】
例えば、図４中のフローテーブル２１では、１番目のエントリの上位１６ビットが０ｘｆｆｆｆであり、グループ識別子が０ｘ１２３４３２に設定されている。このため、フローテーブル２１中の１番目のエントリに登録されている処理ルールの削除のタイミングは、グループ識別子＝１２３４３２に設定されている他の処理ルールの削除と同期される。フローテーブル２１の１番目のエントリには、送信元ＭＡＣアドレス＝Ａ、かつ、宛先ＭＡＣアドレス＝Ｘであるフレームをポート１から出力することが設定されており、ｉｄｌｅ  ｔｉｍｅｏｕｔの設定値は３００秒である。このため、端末５ａからサーバ７０ｘ宛に送信されたフレームは、１番目のエントリに従って、転送装置１０のポート１から出力される。
【００４４】
フローテーブル２１中の２番目のエントリには、送信元ＭＡＣアドレス＝Ａ、かつ、宛先ＭＡＣアドレス＝Ｙであるフレームをポート２から出力することが設定されており、ｉｄｌｅ  ｔｉｍｅｏｕｔの設定値は３００秒である。端末５ａからサーバ７０ｙ宛に送信されたフレームは、２番目のエントリに従って、転送装置１０のポート２から出力される。さらに、フローテーブル２１中の２番目のエントリでも、Ｃｏｏｋｉｅの上位１６ビットが０ｘｆｆｆｆであり、グループ識別子が１２３４３２に設定されている。このため、フローテーブル２１の２番目のエントリと１番目のエントリは、フローテーブル２１からの削除のタイミングを同期させるエントリ同士である。
【００４５】
なお、図４のＦ１に示したフォーマットは一例であり、Ｃｏｏｋｉｅ中に含まれている情報要素や各情報の格納に用いられるビットなどは、実装に応じて任意に変更され得る。さらに、グループ識別子やｉｄｌｅ  ｔｉｍｅｏｕｔの同期設定などに使用されるビット数も、実装に応じて任意に変更され得る。
【００４６】
図５は、削除対象のエントリを検出したときの処理の例を説明するフローチャートである。なお、図５では、削除のタイミングを他の処理ルールと同期させることが指定されている処理ルールのことを、「ｉｄｌｅ  ｔｉｍｅｏｕｔ同期型」の処理ルールと記載している。
【００４７】
検出部２３は、ｉｄｌｅ  ｔｉｍｅｏｕｔの発生を検出する（ステップＳ１１）。このとき、検出部２３は、フローテーブル２１中のいずれかのエントリ中の処理ルールにおいて、使用されていない期間がｉｄｌｅ  ｔｉｍｅｏｕｔの設定値以上になっている場合に、ｉｄｌｅ  ｔｉｍｅｏｕｔを検出したと判定する。検出部２３は、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールを特定する情報と共に、ｉｄｌｅ  ｔｉｍｅｏｕｔの発生を同期制御部３２に通知する。例えば、図４のフローテーブル２１中の２番目のエントリに格納されている処理ルールが使用されていない期間が３００秒を超えたとする。すると、検出部２３は、フローテーブル２１中の２番目のエントリ中の処理ルールに対して、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生したと判定し、検出した結果を同期制御部３２に通知する。
【００４８】
同期制御部３２は、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生したと判定された処理ルールが、ｉｄｌｅ  ｔｉｍｅｏｕｔ同期型の処理ルールであるかを判定する（ステップＳ１２）。このとき、同期制御部３２は、フローテーブル２１中のＣｏｏｋｉｅを用いて判定を行う。ｉｄｌｅ  ｔｉｍｅｏｕｔが発生したと判定された処理ルールが、ｉｄｌｅ  ｔｉｍｅｏｕｔ同期型の処理ルールではない場合、同期制御部３２は、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールを削除する（ステップＳ１２でＮｏ、ステップＳ１３）。
【００４９】
一方、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生したと判定された処理ルールが、ｉｄｌｅ  ｔｉｍｅｏｕｔ同期型の処理ルールであるとする（ステップＳ１２でＹｅｓ）。この場合、取得部３１は、フローテーブル２１中で、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールと同じグループの処理ルールを特定する（ステップＳ１４）。取得部３１は、特定した処理ルールのうち、Ａｃｔｉｖｅに設定されている処理ルールがあるかを判定する（ステップＳ１５）。特定された処理ルールのうち、Ａｃｔｉｖｅに設定されている処理ルールがある場合、同期制御部３２は、Ｉｄｌｅ  ｔｉｍｅｏｕｔの発生が検出された処理ルールの状態情報を保留中に設定する（ステップＳ１５でＹｅｓ、ステップＳ１６）。
【００５０】
次に、特定された処理ルール中にＡｃｔｉｖｅに設定されている処理ルールがないとする（ステップＳ１５でＮｏ）。この場合、同期制御部３２は、Ｉｄｌｅ  ｔｉｍｅｏｕｔの発生が検出された処理ルールと同じグループ識別子に対応付けられた全ての処理ルールを削除する（ステップＳ１７）。
【００５１】
例えば、図４のフローテーブル２１中の２番目のエントリ中の処理ルールのｉｄｌｅ  ｔｉｍｅｏｕｔが発生した場合を例として、図５のステップＳ１４〜Ｓ１６での処理を説明する。フローテーブル２１の２番目のエントリ中のＣｏｏｋｉｅの上位１６ビットが０ｘｆｆｆｆであることから、同期制御部３２は、２番目のエントリはｉｄｌｅ  ｔｉｍｅｏｕｔ同期型の処理ルールであると判定する。そこで、取得部３１は、フローテーブル２１中のＣｏｏｋｉｅ値を用いて、フローテーブル２１中の２番目のエントリと同じグループに属する処理ルールを特定する。その結果、取得部３１は、フローテーブル２１の１番目のエントリは、フローテーブル２１中の２番目のエントリと同じグループに属すると判定する。すると、取得部３１は、フローテーブル２１を参照し、１番目のエントリ中の処理ルールでは状態情報がＡｃｔｉｖｅに設定されていることを特定する。同期制御部３２は、取得部３１が特定した結果に応じて、Ｉｄｌｅ  ｔｉｍｅｏｕｔの発生が検出された処理ルールを処理する。図４の例では、Ｉｄｌｅ  ｔｉｍｅｏｕｔの発生が検出された処理ルールと同じグループでＡｃｔｉｖｅに設定されている処理ルールがあるので、同期制御部３２は、２番目のエントリ中の処理ルールを削除せず、状態情報を保留中に設定する。
【００５２】
図６に、同期制御部３２によって、更新されたフローテーブルの例を示す。図４、図５を参照しながら説明したように、同じグループに属するエントリのうちの１つ以上において、状態情報がＡｃｔｉｖｅに設定されている場合、同期制御部３２は、Ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールが今後の通信で使用される可能性があると判定できる。このため、同期制御部３２は、Ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールと同じグループに属する処理ルールの状態情報がＡｃｔｉｖｅの場合、Ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールを削除しない。換言すると、同期制御部３２は、Ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールが、後で使用される可能性があるかを、Ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールと同じグループに属する処理ルールの使用状況を指標として用いて判定していることになる。
【００５３】
一方、図６のフローテーブル２１が使用されているときに、１番目のエントリに格納されている処理ルールについて、Ｉｄｌｅ  ｔｉｍｅｏｕｔが発生したとする。この場合、２番目のエントリ中の処理ルールは、Ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールと同じグループに属するが、状況情報が保留中に設定されている。このため、取得部３１は、図５のステップＳ１５のＮｏと判定される場合で説明したように、Ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールと同じグループに属し、かつ、状態情報がＡｃｔｉｖｅである処理ルールは無いと判定する。すると、同期制御部３２は、図６中の１番目のエントリと２番目のエントリの両方を削除する。
【００５４】
ところで、状態情報が保留中に設定された処理ルールであっても、その処理ルールを適用するデータフレームを転送装置１０が受信すると、その処理ルールが使用されるため、状態情報が保留中からＡｃｔｉｖｅに設定変更される。以下、このケースについて、図７を参照しながら説明する。
【００５５】
図７は、フレームを受信したときの処理の例を説明するフローチャートである。なお、図７は一例であり、実装に応じて処理の順序は変更され得る。例えば、ステップＳ２６の処理は、ステップＳ２３〜Ｓ２５の処理と並行して行われても良く、また、ステップＳ２６の処理がステップＳ２３〜Ｓ２５の前に行われても良い。
【００５６】
Ｄ−Ｐｌａｎｅ回線インタフェース１１は、Ｄプレーンのフレームを受信する（ステップＳ２１）。受信部１４は、Ｄ−Ｐｌａｎｅ回線インタフェース１１で受信された受信フレームを、フレーム処理部２２に出力する。フレーム処理部２２は、受信フレームの処理に使用する処理ルールをフローテーブル２１中で検索する（ステップＳ２２）。フレーム処理部２２は、受信フレームに適用する処理ルールを同期制御部３２に通知する。同期制御部３２は、適用する処理ルールがｉｄｌｅ  ｔｉｍｅｏｕｔ同期型であるかを判定する（ステップＳ２３）。適用する処理ルールがｉｄｌｅ  ｔｉｍｅｏｕｔ同期型である場合、同期制御部３２は、適用する処理ルールの状態情報がＡｃｔｉｖｅであるかを判定する（ステップＳ２３でＹｅｓ、ステップＳ２４）。適用する処理ルールの状態情報がＡｃｔｉｖｅではない場合、同期制御部３２は、適用する処理ルールの状態情報をＡｃｔｉｖｅに変更する（ステップＳ２４でＮｏ、ステップＳ２５）。その後、フレーム処理部２２は、ステップＳ２２で検索した処理ルールを用いて、受信フレームを処理する（ステップＳ２６）。
【００５７】
なお、適用する処理ルールの状態情報がＡｃｔｉｖｅである場合も、フレーム処理部２２は、ステップＳ２２で検索した処理ルールを用いて、受信フレームを処理する（ステップＳ２４でＹｅｓ、ステップＳ２６）。さらに、適用する処理ルールがｉｄｌｅ  ｔｉｍｅｏｕｔ同期型ではない場合も、フレーム処理部２２は、ステップＳ２２で検索した処理ルールを用いて、受信フレームを処理する（ステップＳ２３でＮｏ、ステップＳ２６）。
【００５８】
例えば、転送装置１０が図６に示すフローテーブル２１を保持しているとする。図６の状態では、端末５ａからサーバ７０ｙ宛に送信されるフレームに適用される処理ルールは、削除されていないが削除の保留中である。この状態で、転送装置１０は、Ｄプレーンのフレームを端末５ａから受信したとする。転送装置１０の受信部１４は、Ｄ−Ｐｌａｎｅ回線インタフェース１１を介して、Ｄプレーンの受信フレームを取得し、取得したフレームをフレーム処理部２２に出力する。フレーム処理部２２は、図６の２つ目のエントリを受信フレームに適用する処理ルールとして選択する。すると、同期制御部３２は、フレーム処理部２２によって選択された処理ルールがｉｄｌｅ  ｔｉｍｅｏｕｔ同期型であり、かつ、状態情報＝保留中に設定されているので、選択された処理ルールの状態情報をＡｃｔｉｖｅに更新する。このため、図６に示すフローテーブル２１は、図４に示すように更新される。
【００５９】
また、フレーム処理部２２は、受信フレームを、選択した処理ルールに従って、受信フレームの出力先をポート２に指定して、送信部１３に出力する。送信部１３は、受信フレームを、Ｄ−Ｐｌａｎｅ回線インタフェース１１が備えるポート２から出力させるので、受信フレームはサーバ７０ｙに向けて転送される。
【００６０】
このように、転送装置１０は、処理ルールにグループを特定する情報が含まれている場合、同じグループ中の他の処理ルールの使用状況に応じて、所定期間以上使用されていない処理ルールを削除するかを決定する。従って、設定された期間にわたって使用されていない処理ルールであっても、後で使用される可能性が高いことが特定された場合、転送装置１０は削除せずに保持する。その結果、コントローラ６０は、過去に通知済みの処理ルールを複数回にわたって転送装置１０から問い合わせられる可能性が低くなる。
【００６１】
例えば、図４に示すネットワークＮ１において、サーバ７０ｘはファイルサーバであり、サーバ７０ｙはインターネット接続の際に端末Ａが使用するプロキシサーバであるとする。この場合、端末５ａのユーザがインターネットにアクセスしていないが、サーバ７０ｘとの間でデータの送受信を行っている場合、端末５ａは、転送装置１０を介してサーバ７０ｙともアクセス可能な状態である。実施形態にかかる方法では、端末５ａから所定期間以上にわたってサーバ７０ｙに対するアクセスがなくても、端末５ａからサーバ７０ｙに宛てたフレームの処理ルールが使用中の他の処理ルールに対応付けられていると削除されない。このため、端末５ａのユーザの処理になどにより、端末５ａが所定の設定期間以上の期間を経てから、サーバ７０ｙ宛のフレームを送信しても、転送装置１０はコントローラ６０に処理ルールを要求せずに、受信フレームを処理できる。その結果、コントローラ６０での処理負荷が軽減される。
【００６２】
＜第２の実施形態＞
第２の実施形態では、削除のタイミングが同期される複数の処理ルールが異なる転送装置１０に設定されている場合を例として説明する。
【００６３】
図８は、ネットワークの例を説明する図である。図８に示すネットワークでは、複数の転送装置１０（１０ａ〜１０ｆ）とコントローラ６０が含まれている。各転送装置１０は、コントローラ６０や他の転送装置１０と、Ｃ−プレーンの通信回線を介して接続している。さらに、転送装置１０間には、受信したデータフレームの送受信に使用されるＤ−プレーンの回線が接続されている。図８では、図を見やすくするために、転送装置１０間での通信に使用されるＤ−プレーンの回線を破線で示している。さらに、各転送装置１０には、１つ以上の端末５がＤ−プレーンの通信回線を介して接続されている。なお、図８の例では、端末５ａ〜５ｋを図示しているが、ネットワーク中の端末５の数は任意である。さらに、ネットワーク中の転送装置１０の数も任意である。
【００６４】
以下の説明では、動作を行っている転送装置１０を明確にするために、符号の最後に動作を行っている転送装置１０に割り当てられているアルファベットを記載することがある。例えば、フレーム処理部２２ｅは転送装置１０ｅのフレーム処理部２２であり、同期制御部３２ｆは転送装置１０ｆの同期制御部３２である。
【００６５】
第２の実施形態では、削除のタイミングを同期させる処理ルールが設定される転送装置１０は、削除のタイミングを同期させる処理ルールのグループごとに、オペレータによって、予め決められている。例えば、ある端末５とサーバ７０の間の通信に使用される経路中の転送装置１０と冗長経路に含まれる転送装置１０は、その端末５とサーバ７０の間の通信について、削除のタイミングを同期させる処理ルールが設定される転送装置１０の組み合わせに含まれる。
【００６６】
図９は、転送装置１０の組み合わせの例を説明する図である。図９では、図８のネットワークに含まれる装置のうち、端末５ａ、転送装置１０ａ、転送装置１０ｅ、転送装置１０ｆ、コントローラ６０を抜き出して記載している。図９では、コントローラ６０と転送装置１０ｅの間の制御用の通信経路を矢印Ａ１で示し、コントローラ６０と転送装置１０ｆの間の制御用の通信経路を矢印Ａ２で示している。以下の説明では、Ｃ−プレーンの通信の際に転送装置１０が使用するＩＰ（Internet Protocol）アドレスは、転送装置１０ａではＳＷ１、転送装置１０ｅではＳＷ１１、転送装置１０ｆではＳＷ１２であるとする。
【００６７】
例えば、矢印Ｄに示すように、端末５ａが転送装置１０ａと転送装置１０ｅを介して、サーバ７０（図示せず）や他の端末５（図示せず）と通信しているとする。また、端末５ａから、転送装置１０ａと転送装置１０ｆを介する通信経路は、矢印Ｄで示す通信経路の冗長経路であるとする。この場合、転送装置１０ｆが転送装置１０ｅの予備装置として動作可能となるように、通信に使用される経路の切り替えに備えて、転送装置１０ｅと転送装置１０ｆのいずれにも、端末５ａから送信されるフレームの処理に使用する処理ルールが設定される。従って、図９の場合、端末５ａから送信されるフレームの削除時期を同期させる場合、転送装置１０ｅと転送装置１０ｆは、削除時期を同期させる処理ルールが設定される転送装置１０の組み合わせとなる。オペレータは、削除時期を同期させる処理ルールを設定する転送装置１０には、予め、組み合わせ管理テーブル４３を設定しておくものとする。
【００６８】
図１０は、組み合わせ管理テーブル４３の例を説明する図である。組み合わせ管理テーブル４３には、組み合わせとなる転送装置１０ごとに、その転送装置１０との通信の際に使用する情報が記録されている。図１０は、転送装置１０ｅが保持する組み合わせ管理テーブル４３ｅを示す。例えば、図９を参照しながら説明したように、転送装置１０ｅと転送装置１０ｆが１つの組み合わせに含まれており、組み合わせ管理テーブル４３ｅには、転送装置１０ｆの情報が記録されているとする。図１０の例では、組み合わせ管理テーブル４３には、項１にＩＰアドレスが記録され、項２に通信状態が記録される。図１０では、項１には転送装置１０ｆがＣ−プレーンの通信で使用しているＩＰアドレスがＳＷ１２であることが記録されている。通信状態の欄には、転送装置１０ｆの通信状態として、ＣｏｎｎｅｃｔｅｄとＤｉｓｃｏｎｎｅｃｔｅｄのいずれかが設定される。Ｃｏｎｎｅｃｔｅｄは、転送装置１０ｅと転送装置１０ｆの間の通信が正常であることを示し、Ｄｉｓｃｏｎｎｅｃｔｅｄは、転送装置１０ｅと転送装置１０ｆの間の通信に異常が発生していることを示す。
【００６９】
なお、図１０の例では、組み合わせ管理テーブル４３ｅのうち、１台の転送装置１０ｆの情報を示したが、組み合わせ管理テーブル４３には任意の数の転送装置１０の情報が含まれ得る。３台以上の転送装置１０が１つの組み合わせに含まれている場合、組み合わせに含まれる転送装置１０の各々は、同じ組み合わせに含まれる自装置以外の全ての転送装置１０の情報を組み合わせ管理テーブル４３に保持している。この場合、通信状態として、項１のＩＰアドレスが割り当てられた転送装置との間の通信状態が記録される。
【００７０】
各転送装置１０の取得部３１や同期制御部３２は、その転送装置１０が保持する処理ルールと同期して削除する処理ルールを保持している転送装置１０の情報を、組み合わせ管理テーブル４３を用いて特定する。また、スイッチ間通信処理部４２は、取得部３１や同期制御部３２などの要求に応じて、他の転送装置１０との間での通信処理を行う。
【００７１】
図１１は、転送装置１０間での通信に使用されるフレームのフォーマットの例を説明する図である。Ｆ１に示すように、転送装置１０間で送受信されるフレームには、Ｌ２ヘッダ、ＩＰヘッダ、ＴＣＰ（Transmission Control Protocol）ヘッダ、同期ヘッダ、プロトコルデータが含まれる。同期ヘッダには、フレーム中のデータ種別とプロトコルデータ長が含まれる。プロトコルデータは、データ種別によって異なる。
【００７２】
Ｐ１は、ある処理ルールと同じグループに含まれている処理ルールに対して設定されている状態情報の問い合わせのフレームに含まれる同期ヘッダとプロトコルデータの例である。データ種別＝１は、状態情報の問い合わせのフレームであることを表わすとする。状態情報の問い合わせのフレームのプロトコルデータには、問い合わせの対象となる処理ルールが属するグループのグループ識別子が含められる。
【００７３】
Ｐ２は、状態情報の問い合わせに対する応答フレームに含まれる同期ヘッダとプロトコルデータの例である。データ種別＝２は、状態情報の問い合わせに対する応答（状態応答）のフレームであることを表わす。状態応答の問い合わせのフレームのプロトコルデータには、問い合わせの対象となったグループのグループ識別子と、グループ識別子に対応付けられた処理ルールの状態情報が含められる。
【００７４】
Ｐ３は、削除時期を同期させる処理ルールの削除が可能な状態になっていることを通知するフレーム（完了通知）に含まれる同期ヘッダとプロトコルデータの例である。データ種別＝３は、完了通知のフレームであることを表わすとする。完了通知のフレームのプロトコルデータには、削除が可能な状態になっている処理ルールが属するグループのグループ識別子が含められる。
【００７５】
図１２は、ネットワークとフローテーブルの例を説明する図である。以下、図１２を参照しながら、図８に示すネットワーク中の端末５ａと端末５ｆが通信する場合を例として、転送装置１０で行われる処理の例を説明する。
【００７６】
ネットワークＮ１１は、図８のネットワークに含まれる装置のうち、端末５ａ、転送装置１０ａ、転送装置１０ｅ、転送装置１０ｆ、転送装置１０ｂ、端末５ｆを抜き出して記載している。図１２の例では、転送装置１０ａ、転送装置１０ｅ、転送装置１０ｆ、転送装置１０ｂが、同じグループに含まれている処理ルールを保持する転送装置１０の組み合わせに設定されているとする。さらに、転送装置１０ａでは、ｆａｓｔ  ｆｅｉｌｏｖｅｒによる経路切り替えを行うために、転送装置１０ｅに接続されているポートと転送装置１０ｆに接続されているポートとが１つのグループ（Ｇｒｏｕｐ  １）に設定されているとする。以下、端末５ａのＭＡＣアドレスはＡであり、端末５ｆのＭＡＣアドレスはＦであるとする。さらに、転送装置１０ａではＳＷ１、転送装置１０ｂではＳＷ２、転送装置１０ｅではＳＷ１１、転送装置１０ｆではＳＷ１２というＩＰアドレスがＣプレーンでの通信に使用されているとする。
【００７７】
端末５ａが端末５ｆと通信を開始するために、ＡＲＰパケットを含むフレームを送信したとする。この時点では、転送装置１０ａが保持するフローテーブル２１ａには、端末５ａから送信されたフレームに適用可能な処理ルールが記録されていないとする。この場合、図４などを参照しながら説明した処理と同様の処理により、転送装置１０ａは、コントローラ６０に対して要求メッセージを送信する。
【００７８】
コントローラ６０は、端末５ａから転送装置１０ａ、転送装置１０ｅ、転送装置１０ｂを介して端末５ｆに至る経路を通信経路として計算したとする。さらに、コントローラ６０は、端末５ａから転送装置１０ａ、転送装置１０ｆ、転送装置１０ｂを介して端末５ｆに至る経路を冗長経路として求めたとする。さらに、コントローラ６０は、転送装置１０ａ、転送装置１０ｂ、転送装置１０ｅ、転送装置１０ｆが１つの同じグループに含まれている処理ルールを保持する転送装置１０の組み合わせに設定されていることも認識している。このため、端末５ａから端末５ｆに至る通信経路と冗長経路の設定のために転送装置１０ａ、転送装置１０ｂ、転送装置１０ｅ、転送装置１０ｆの各々に設定される処理ルールには、削除のタイミングを調整するための設定情報として同じ値が含められる。図１２の例では、図４での説明と同様に、削除のタイミングを調整するための設定情報としてＣｏｏｋｉｅ値が使用され、Ｃｏｏｋｉｅ値のフォーマットも図４のＦ１と同様であるとする。以下、端末５ａから端末５ｆに至る通信経路と冗長経路の設定に使用される処理ルールに適用されるグループ識別子は０ｘ１２３４５６であるとする。
【００７９】
図１２のテーブルＴ１は、コントローラ６０が端末５ａから端末５ｆに至る通信経路と冗長経路の設定のために生成した処理ルールと、各処理ルールの設定先の転送装置の例である。転送装置１０ａ（ＳＷ１）に設定される処理ルールには、送信先ＭＡＣ＝Ｆのフレームを、ポートグループのＧｒｏｕｐ１に出力することが含まれる。転送装置１０ｅ（ＳＷ１１）に設定される処理ルールには、宛先ＭＡＣアドレス＝Ｆのフレームを、転送装置１０ｂに出力することが含まれる。転送装置１０ｆは、転送装置１０ｅを介する経路に障害が発生した場合に転送装置１０ｅの代替として動作する装置であるので、転送装置１０ｆ（ＳＷ１２）には、転送装置１０ｅと同じ処理ルールが適用される。転送装置１０ｂ（ＳＷ２）に設定される処理ルールには、宛先ＭＡＣアドレス＝Ｆのフレームを、ＭＡＣアドレス＝Ｆが割り当てられた端末５ｆに接続されているポートから出力することが含まれる。テーブルＴ１のいずれの処理ルールでも、Ｃｏｏｋｉｅ値の上位１６ビットは０ｘｆｆｆｆであり、下位２４ビットは０ｘ１２３４５６である。このため、テーブルＴ１に含まれている全ての処理ルールの間で、削除のタイミングの同期が取られる。
【００８０】
なお、Ｉｄｌｅ  ｔｉｍｅｏｕｔの設定値は、削除のタイミングを同期させる処理ルールの間で同じであっても異なっていても良い。テーブルＴ１の例では、テーブルＴ１のいずれの処理ルールについても、Ｉｄｌｅ  ｔｉｍｅｏｕｔが３００秒に設定されている。
【００８１】
コントローラ６０は、テーブルＴ１に示す情報を生成すると、各処理ルールを、設定先の転送装置１０に通知する。また、各転送装置１０中のＯｐｅｎｆｌｏｗプロトコル処理部４１は、コントローラ６０から受信した処理ルールを、第１の実施形態で説明した手順と同様の処理により、フローテーブル２１に格納する。さらに、各転送装置１０において、同期制御部３２は、新たに格納された処理ルールに対応付ける状態情報を、Ａｃｔｉｖｅに設定する。このため、転送装置１０ａが保持するフローテーブル２１は、フローテーブル２１ａに示す通りになる。同様に、転送装置１０ｅは図１２に示すフローテーブル２１ｅを保持し、転送装置１０ｆは図１２に示すフローテーブル２１ｆを保持する。さらに、転送装置１０ｂは図１２に示すフローテーブル２１ｂを保持する。
【００８２】
図１３は、転送装置１０が行う処理の例を説明するシーケンス図である。図１３は、図１２に示すネットワークＮ１１において、転送装置１０ａ、転送装置１０ｂ、転送装置１０ｅ、転送装置１０ｆの各々が図１２に示すフローテーブル２１を保持している場合の処理の例を示している。図１３の最初の段階では、転送装置１０ｅを介する転送経路に障害が発生していないので、転送装置１０ａにおいて、Ｇｒｏｕｐ１が転送先に指定されると、転送装置１０ｅにフレームが転送されるとする。
【００８３】
端末５ａが端末５ｆに宛てて送信したデータフレームは、転送装置１０ａに到達する。転送装置１０ａの受信部１４ａは、データフレームをフレーム処理部２２ａに出力する。フレーム処理部２２ａは、フローテーブル２１ａ（図１２）に従って、データフレームを転送するので、データフレームは転送装置１０ｅに到達する（ステップＳ３１）。転送装置１０ｅでも、受信部１４ｅ等を介してデータフレームを取得したフレーム処理部２２ｅは、フローテーブル２１ｅ（図１２）を参照することにより、データフレームを転送装置１０ｂに転送する（ステップＳ３２）。すると、転送装置１０ｂのフレーム処理部２２ｂは、データフレームを、フローテーブル２１ｂに従って端末５ｆに転送する。ステップＳ３１とＳ３２の処理によって、転送装置１０ａ、転送装置１０ｅ、転送装置１０ｂの各々では、グループ識別子＝０ｘ１２３４５６に対応付けられている処理ルールが使用されている。このため、転送装置１０ａ、転送装置１０ｅ、転送装置１０ｂの各々では、グループ識別子＝０ｘ１２３４５６に対応付けられている処理ルールは削除可能な処理ルールとして検出されない。
【００８４】
一方、転送装置１０ｆでは、検出部２３ｆがフローテーブル２１ｆ中の１番目のエントリに示す処理ルールについて、その処理ルールが使用されていない期間がｉｄｌｅ  ｔｉｍｅｏｕｔの設定値である３００秒を超えたことを検出したとする。すると、検出部２３ｆは、フローテーブル２１ｆ中の宛先ＭＡＣアドレス（Ｄｓｔｍａｃ）＝Ｆのエントリに示す処理ルールを削除可能な処理ルールとして、同期制御部３２ｆに通知する。同期制御部３２ｆは、Ｃｏｏｋｉｅを用いて、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールの削除時期が他の処理ルールの削除時期と同期されるかを判定する。フローテーブル２１ｆ中の１番目のエントリの処理ルールでは、Ｃｏｏｋｉｅの上位１６ビットが０ｘｆｆｆｆである。このため、同期制御部３２ｆは、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールはｉｄｌｅ  ｔｉｍｅｏｕｔ同期型の処理ルールであると判定する。同期制御部３２ｆは、取得部３１ｆにｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールが削除のタイミングを同期させる処理ルールの状況の取得を要求する。取得部３１ｆは、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールと削除時期を同期させる他の処理ルールが、ネットワーク中のいずれかの転送装置１０で使用中であるかを判定するために、状態問合せフレーム（図１１）に含めるデータを生成する。ここでは、状態問合せフレームに含めるデータとして、以下の情報が生成される。
同期ヘッダ      ：１（状態問合せ）
プロトコルデータ：グループ識別子＝０ｘ１２３４５６
取得部３１ｆは、生成したデータを、組み合わせ管理テーブル４３ｆに含まれている転送装置１０の各々に送信することをスイッチ間通信処理部４２ｆに要求する。スイッチ間通信処理部４２ｆは、組み合わせ管理テーブル４３ｆを参照する。図１３の例では、組み合わせ管理テーブル４３ｆには、転送装置１０ａ、転送装置１０ｂ、転送装置１０ｅのＩＰアドレスなどの情報が含まれている。そこで、スイッチ間通信処理部４２は、転送装置１０ａ、転送装置１０ｂ、転送装置１０ｅに宛てて、状態問合せフレームを送信する（ステップＳ３３）。このとき、状態問合せフレームの送信は、Ｃ−プレーンを介して行われる。
【００８５】
転送装置１０ｅのスイッチ間通信処理部４２ｅは、状態問合せフレームを受信すると、同期制御部３２ｅに出力する。同期制御部３２ｅは、フローテーブル２１ｅを参照して、状態問合せフレームで通知されたグループ識別子をＣｏｏｋｉｅに含む処理ルールの状態を取得する。ステップＳ３３の時点では、問合せの対象となっている処理ルールはステップＳ３２の処理で使用されているため、Ａｃｔｉｖｅに設定されている。そこで、同期制御部３２ｅは、以下の情報を含む応答フレームのデータを生成する。
同期ヘッダ      ：２（状態応答）
プロトコルデータ：グループ識別子＝０ｘ１２３４５６
状態            ：Ａｃｔｉｖｅ
スイッチ間通信処理部４２ｅは、同期制御部３２ｅで生成されたデータを含む応答フレームを、転送装置１０ｆに送信する。
【００８６】
転送装置１０ａ、転送装置１０ｂにおいても、状態問合せフレームを受信すると、転送装置１０ｅと同様の処理を行う。このため、転送装置１０ｆには、転送装置１０ａ、転送装置１０ｂ、転送装置１０ｅから問合せ対象の処理ルールが使用されていることを表す応答フレームが到達する。
【００８７】
転送装置１０ｆのスイッチ間通信処理部４２ｆは、Ｃ-Ｐｌａｎｅ回線インタフェース１２ｆを介して受信した応答フレームを取得部３１ｆに出力する。取得部３１ｆは、問い合わせた処理ルールと削除時期を同期する処理ルールがネットワーク中の他の転送装置１０においてＡｃｔｉｖｅに設定されていることを、同期制御部３２ｆに通知する。すると、同期制御部３２ｆは、フローテーブル２１ｆ中でｉｄｌｅ  ｔｉｍｅｏｕｔが発生している処理ルールを削除せずに、状態情報を保留中に設定する。このため、フローテーブル２１ｆでは、宛先ＭＡＣアドレス（Ｄｓｔｍａｃ）＝Ｆの処理ルールの状態情報が保留中に設定される（ステップＳ３４）。
【００８８】
その後、転送装置１０ａと転送装置１０ｅの間のＤプレーンのリンクで障害が発生したとする。すると、ｆａｓｔ  ｆａｉｌｏｖｅｒ機能により、転送装置１０ａではＧｒｏｕｐ１のポートに出力するフレームが転送装置１０ｆに向けて出力されるようになる。障害発生による経路の切り替えの後で、端末５ａから端末５ｆ宛てのデータフレームが送信されたとする。すると、転送装置１０ａでは、受信部１４ａ等を介してデータフレームを取得したフレーム処理部２２ａは、フローテーブル２１ａ（図１２）を参照することにより、データフレームをポートのＧｒｏｕｐ１に出力する。このため、データフレームは転送装置１０ｆに到達する（ステップＳ３５）。
【００８９】
転送装置１０ｆでは、受信部１４ｆ等を介してデータフレームを取得したフレーム処理部２２ｆが、フローテーブル２１ｆを参照することにより、データフレームの転送先を転送装置１０ｂに転送する（ステップＳ３６）。同期制御部３２ｆは、宛先ＭＡＣアドレス（Ｄｓｔｍａｃ）＝Ｆの処理ルールがデータフレームの転送に使用されたことから、Ｄｓｔｍａｃ＝Ｆの処理ルールの状態情報をＡｃｔｉｖｅに設定する（ステップＳ３７）。
【００９０】
転送装置１０ｅ中の検出部２３ｅは、フローテーブル２１ｅ中のＤｓｔｍａｃ＝Ｆの処理ルールが使用されていない期間が、ｉｄｌｅ  ｔｉｍｅｏｕｔの設定値（３００秒）を超えたことを検出したとする。すると、転送装置１０ｅは、ステップＳ３３で説明した転送装置１０ｆでの処理と同様の処理により、以下の情報を含む状態問合せフレームを、転送装置１０ａ、転送装置１０ｂ、転送装置１０ｆに宛てて送信する（ステップＳ３８）。
同期ヘッダ      ：１（状態問合せ）
プロトコルデータ：グループ識別子＝０ｘ１２３４５６
【００９１】
転送装置１０ａ、転送装置１０ｂ、転送装置１０ｆでは、状態問合せフレームを受信すると、同期制御部３２は、状態問合せフレームで通知されたグループ識別子をＣｏｏｋｉｅに含む処理ルールの状態がＡｃｔｉｖｅであることを特定する。このため、ステップＳ３３で説明した応答フレームの送信処理と同様の処理が、転送装置１０ａ、転送装置１０ｂ、転送装置１０ｆで行われる。従って、転送装置１０ｅには、転送装置１０ａ、転送装置１０ｂ、転送装置１０ｆから問合せ対象の処理ルールが使用されていることを表す応答フレームが到達する。
【００９２】
転送装置１０ｅ中の同期制御部３２ｅは、ステップＳ３４での転送装置１０ｆの処理と同様の処理により、フローテーブル２１ｅを更新する。このため、フローテーブル２１ｅにおいて、宛先ＭＡＣアドレス（Ｄｓｔｍａｃ）＝Ｆの処理ルールの状態情報が保留中に設定される（ステップＳ３９）。
【００９３】
その後、端末５ａと端末５ｆとの間の通信も終了したとする。さらに、端末５ａが通信システムから離脱したとする。
【００９４】
転送装置１０ａにおいて、フローテーブル２１ａ中の送信先ＭＡＣアドレス（Ｄｓｔｍａｃ）＝Ｆの処理ルールが使用されていない期間がｉｄｌｅ  ｔｉｍｅｏｕｔの設定値（３００秒）を超えたことを、検出部２３ａが検出したとする。すると、転送装置１０ａは、ステップＳ３３で説明した転送装置１０ｆでの処理と同様の処理により、グループ識別子＝０ｘ１２３４５６を含む状態問合せフレームを、転送装置１０ｂ、転送装置１０ｅ、転送装置１０ｆに送信する（ステップＳ４０）。この時点では、転送装置１０ｅでは、グループ識別子＝０ｘ１２３４５６を含む処理ルールは保留中であるが、転送装置１０ｂと転送装置１０ｆのいずれでもグループ識別子＝０ｘ１２３４５６を含む処理ルールがＡｃｔｉｖｅであると通知される。すると、転送装置１０ａ中の同期制御部３２ａは、ＤｓｔＭａｃ＝Ｆの処理ルールの状態を保留中に設定する。
【００９５】
次に、転送装置１０ｆでも、検出部２３ｆが、フローテーブル２１ｆ中のＤｓｔｍａｃ＝Ｆの処理ルールが使用されていない期間がｉｄｌｅ  ｔｉｍｅｏｕｔの設定値（３００秒）を超えたと判定したとする。すると、転送装置１０ｆも、転送装置１０ａと同様にグループ識別子＝０ｘ１２３４５６を含む状態問合せフレームを送信する（ステップＳ４１）。この時点では、転送装置１０ｅと転送装置１０ａでは、グループ識別子＝０ｘ１２３４５６を含む処理ルールは保留中であるが、転送装置１０ｂではグループ識別子＝０ｘ１２３４５６を含む処理ルールがＡｃｔｉｖｅであると通知される。すると、転送装置１０ｆ中の同期制御部３２ｆは、Ｄｓｔｍａｃ＝Ｆの処理ルールの状態を保留中に設定する。
【００９６】
さらに、転送装置１０ｂ中の検出部２３ｂが、フローテーブル２１ｂ中のＤｓｔｍａｃ＝Ｆの処理ルールが使用されていない期間がｉｄｌｅ  ｔｉｍｅｏｕｔの設定値（３００秒）を超えたと判定したとする。転送装置１０ｂも、転送装置１０ｆと同様にグループ識別子＝０ｘ１２３４５６を含む状態問合せフレームを送信する（ステップＳ４２）。この時点では、転送装置１０ｅ、転送装置１０ａ、転送装置１０ｆのいずれでも、グループ識別子＝０ｘ１２３４５６を含む処理ルールは保留中である。すると、転送装置１０ｂ中の同期制御部３２ｂは、グループ識別子＝０ｘ１２３４５６に属する処理ルールが削除可能な状態になっていると判定する。そこで、同期制御部３２ｂは、Ｄｓｔｍａｃ＝Ｆの処理ルールの状態をフローテーブル２１ｂから削除する（ステップＳ４３）。さらに、取得部３１ｂは、グループ識別子＝０ｘ１２３４５６に属する処理ルールが削除可能な状態になっていることを他の転送装置１０に通知するために、取得部３１ｂは、完了通知フレーム（図１１）に含めるデータを生成する。ここでは、完了通知フレームに含めるデータとして、以下の情報が生成される。
同期ヘッダ      ：３（完了通知）
プロトコルデータ：グループ識別子＝０ｘ１２３４５６
取得部３１ｂは、生成したデータを組み合わせ管理テーブル４３ｂに含まれている転送装置１０の各々に送信することを、スイッチ間通信処理部４２ｂに要求する。すると、スイッチ間通信処理部４２ｂは、転送装置１０ａ、転送装置１０ｅ、転送装置１０ｅに宛てて、完了通知フレームを送信する（ステップＳ４４）。
【００９７】
完了通知フレームを受信した各転送装置１０では、完了通知フレームがスイッチ間通信処理部４２を介して同期制御部３２に出力される。すると、同期制御部３２は、グループ識別子＝０ｘ１２３４５６に属する処理ルールが削除可能な状態になっていることを認識し、グループ識別子＝０ｘ１２３４５６に属する処理ルールをフローテーブル２１から削除する。このため、転送装置１０ａ、転送装置１０ｂ、転送装置１０ｅ、転送装置１０ｆのいずれでも、フローテーブル２１から、グループ識別子＝０ｘ１２３４５６に対応付けられた処理ルールが削除される。
【００９８】
図１４は、削除対象のエントリを検出したときの転送装置１０の処理の例を説明するフローチャートである。なお、図１４は一例である。例えば、ステップＳ６３とＳ６４の順序は互いに変更されてもよい。図１４のステップＳ５１〜Ｓ５５は、図５を参照しながら説明したステップＳ１１〜Ｓ１５の処理と同様である。
【００９９】
次に、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールと同じグループの処理ルールのうち、Ａｃｔｉｖｅに設定されている処理ルールがない場合（ステップＳ５５でＮｏ）について説明する。スイッチ間通信処理部４２は、組み合わせ管理テーブル４３に記録された転送装置１０の各々に、状態問合せフレームを送信する（ステップＳ５６）。スイッチ間通信処理部４２は、状態問合せフレームに対する応答の待ち時間（Ｔ１）が経過するまで、応答フレームを待ち合わせる（ステップＳ５７でＮｏ）。待ち時間（Ｔ１）が経過すると、同期制御部３２は、いずれの転送装置１０でも、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールと同じグループの処理ルールがＡｃｔｉｖｅに設定されていないかを判定する（ステップＳ５７でＹｅｓ、ステップＳ５８）。ステップＳ５８の判定は、同期制御部３２が応答フレーム中の状態情報を参照することにより行われる。いずれの転送装置１０でも、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールと同じグループの処理ルールがＡｃｔｉｖｅに設定されていない場合、同期制御部３２は、未受信の応答フレームがあるかを判定する（ステップＳ５８でＹｅｓ、ステップＳ５９）。ステップＳ５９において、同期制御部３２は、状態問合せフレームの宛先の全てから応答フレームを受信していない場合、未受信の応答フレームがあると判定する。
【０１００】
未受信の応答フレームがある場合、そのグループの処理ルールがＡｃｔｉｖｅである転送装置１０で障害が発生した可能性がある（ステップＳ５９でＹｅｓ）。このため、同期制御部３２は、障害の発生している転送装置１０の代替えとして自装置が動作する可能性があると判定できる。従って、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールを使用する可能性があるので、同期制御部３２は、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールを削除しない。同期制御部３２は、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールの状態がＡｃｔｉｖｅに変化しているかを判定する（ステップＳ６０）。ここで、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールの状態がＡｃｔｉｖｅに変化していない場合、モニタ期間（Ｔ２）を経過したかを判定する（ステップＳ６１）。なお、ステップＳ６１でのモニタ期間Ｔ２は、未受信の応答があると判定してから、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールの状態がＡｃｔｉｖｅに変化しているかのモニタを行う期間として、同期制御部３２が設定した期間である。モニタ期間が経過していない場合、ステップＳ６０以降の処理が繰り返される（ステップＳ６１でＮｏ）。
【０１０１】
一方、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールの状態がＡｃｔｉｖｅに変化したと判定された場合（ステップＳ６０でＹｅｓ）、障害の発生した転送装置１０等の代替えとして自装置が動作していることになる。そこで、同期制御部３２は、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールと同じグループの処理ルールのうち、自装置が保持するフローテーブル２１に含まれている処理に使用していない処理ルールの状態を保留中に設定する（ステップＳ６２）。
【０１０２】
未受信の応答フレームがなく、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールと同じグループの処理ルールがいずれの転送装置１０でもＡｃｔｉｖｅではないとする（ステップＳ５９でＮｏ）。この場合、同期制御部３２は、そのグループの処理ルールは削除可能であると判定する。そこで、スイッチ間通信処理部４２は、組み合わせ管理テーブル４３に含まれている全ての転送装置１０に、削除可能になったグループの識別番号を含む完了通知を送信する（ステップＳ６３）。さらに、同期制御部３２は、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールと同じグループに対応付けられた全ての処理ルールを削除する（ステップＳ６４）。
【０１０３】
ステップＳ６１において、モニタ期間（Ｔ２）を経過したと判定された場合は、自装置は他の転送装置１０の代替えとして、Ｉｄｌｅ  ｔｉｍｅｏｕｔの発生が検出された処理ルールを使用していない（ステップＳ６１でＹｅｓ）。そこで、この場合も、ステップＳ６３とステップＳ６４の処理が行われる。
【０１０４】
次に、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールと同じグループの処理ルールのうち、Ａｃｔｉｖｅに設定されている処理ルールがあるとする（ステップＳ５５でＮｏ）。この場合、同期制御部３２は、Ｉｄｌｅ  ｔｉｍｅｏｕｔの発生が検出された処理ルールと同じグループ識別子に対応付けられた全ての処理ルールを保留中に設定する（ステップＳ６５）。さらに、応答フレームによって、いずれかの転送装置１０において、ｉｄｌｅ  ｔｉｍｅｏｕｔが発生した処理ルールと同じグループの処理ルールがＡｃｔｉｖｅであることが通知された場合（ステップＳ５８でＮｏ）も、ステップＳ６５の処理が行われる。
【０１０５】
図１５は、他の転送装置１０からのフレームを受信したときの転送装置１０の処理の例を説明するフローチャートである。なお、図１５は処理の一例である。例えば、実装に応じて、ステップＳ７１、Ｓ７３、Ｓ７５の判定の順序は変更され得る。
【０１０６】
同期制御部３２は、完了通知を受信したかを判定する（ステップＳ７１）。完了通知を受信した場合、同期制御部３２は、完了通知に含まれるグループ識別子に対応付けられた全ての処理ルールを削除する（ステップＳ７１でＹｅｓ、ステップＳ７２）。
【０１０７】
完了通知を受信していない場合、同期制御部３２は、受信フレームが状態問合せであるかを判定する（ステップＳ７１でＮｏ、ステップＳ７３）。受信フレームが状態問合せである場合、同期制御部３２は、状態フレームで問い合わせが行われている処理ルールについての状態の応答を返信する（ステップＳ７３でＹｅｓ、ステップＳ７４）。
【０１０８】
受信フレームが状態問合せでもない場合、同期制御部３２は、受信フレームが状態問合せの応答であるかを判定する（ステップＳ７３でＮｏ、ステップＳ７４）。受信フレームが状態問合せの応答である場合、同期制御部３２は、受信した応答を用いて、処理ルールを削除するかの判定処理を行う（ステップＳ７５でＹｅｓ、ステップＳ７６）。受信フレームが状態問合せの応答でもない場合、処理が終了される（ステップＳ７５でＮｏ）。
【０１０９】
図１６は、周期的に行われる処理の例を説明するフローチャートである。あるグループ識別子に対応付けられた処理ルールが１台の転送装置１０以外の全てで保留中に設定された後に、そのグループの処理ルールがＡｃｔｉｖｅである転送装置１０で障害が発生するケースもある。このような場合には、図１３〜図１５を参照しながら説明した処理だけでは、削除可能な処理ルールが削除保留中のまま残ってしまうおそれがある。そこで、各転送装置１０は、周期的に図１６のフローチャートに示す処理を行う。
【０１１０】
スイッチ間通信処理部４２は、組み合わせ管理テーブル４３に記録された転送装置１０の各々に死活監視用のフレームを送信する（ステップＳ８１）。ここで、死活監視用のフレームとして、状態問合せフレームのうち、死活監視用に割り当てられたグループ識別子が使用される。例えば、グループ識別子＝０が死活監視用に割り当てられていても良い。この場合、各転送装置１０は、グループ識別子＝０が含まれた状態問合せフレームを死活監視フレームとして扱う。
【０１１１】
スイッチ間通信処理部４２は、死活監視用フレームの宛先の全てから応答フレームを受信したかを判定する（ステップＳ８２）。死活監視用フレームの宛先の全てから応答フレームを受信した場合、自装置が保持している処理ルールと同じグループの処理ルールを保持する全ての転送装置１０が動作している（ステップＳ８２でＹｅｓ）。そこで、スイッチ間通信処理部４２は処理を終了する。
【０１１２】
一方、死活監視用フレームの宛先の全てから応答フレームを受信していないとする（ステップＳ８２でＮｏ）。この場合、同期制御部３２は、通信可能な転送装置１０との間で処理ルールの各々について、状態、グループ識別子、ｉｄｌｅ  ｔｉｍｅｏｕｔ設定値を交換する（ステップＳ８３）。同期制御部３２は、通信可能な転送装置１０のいずれでもＡｃｔｉｖｅではない処理ルールＸがあるかを判定する（ステップＳ８４）。通信可能な転送装置１０のいずれでもＡｃｔｉｖｅではない処理ルールＸがない場合、同期制御部３２は処理を終了する（ステップＳ８４でＮｏ）。一方、通信可能な転送装置１０のいずれでもＡｃｔｉｖｅではない処理ルールＸがある場合、同期制御部３２は、処理ルールＸのｉｄｌｅ  ｔｉｍｅｏｕｔ設定値は自装置が最小であるかを判定する（ステップＳ８４でＹｅｓ、ステップＳ８５）。処理ルールＸのｉｄｌｅ  ｔｉｍｅｏｕｔ設定値は自装置が最小である場合、同期制御部３２は、処理ルールＸをＡｃｔｉｖｅに戻す（ステップＳ８６）。この場合、再度、処理ルールＸのｉｄｌｅ  ｔｉｍｅｏｕｔが発生すると、図１４で説明した処理が行われる。一方、処理ルールＸのｉｄｌｅ  ｔｉｍｅｏｕｔ設定値は自装置が最小ではない場合、同期制御部３２は処理を終了する。
【０１１３】
このように、第２の実施形態にかかる方法では、同じグループ識別子に対応付けられた処理ルールが異なる転送装置１０に記録されている場合であっても、同じグループ識別子に対応付けられた処理ルールの削除のタイミングを同期させることができる。このため、例えば、図１３の転送装置１０ｆのように、冗長経路に含まれている転送装置１０にｉｄｌｅ  ｔｉｍｅｏｕｔを含む処理ルールを設定することができる。従って、通信システムから離脱する端末５がある場合、その端末５の通信が終了すると、通信に使用された経路と冗長経路のいずれに含まれている転送装置１０でも、離脱する端末の通信に使用された処理ルールが自律的に削除される。このため、通信システムの管理が容易である。
【０１１４】
同じグループ識別子に対応付けられた処理ルールの削除のタイミングを同期させることによって、経路の切り替えの際のコントローラ６０の負荷を低くできるという効果もある。例えば、同じグループ識別子に対応付けられた処理ルールの削除のタイミングを同期させずに、ｉｄｌｅ  ｔｉｍｅｏｕｔを処理ルールに含めた場合では、所定時間で冗長経路での設定が削除されてしまう。このため、冗長経路中の装置にｉｄｌｅ  ｔｉｍｅｏｕｔを含む処理ルールを設定すると、冗長経路への経路切り替えの際に、コントローラ６０は、冗長経路用の処理ルールを再設定することがあった。コントローラ６０での経路の再設定が行われない場合、経路の切り替えに伴い、冗長経路中のＳＤＮスイッチから大量のＰａｃｋｅｔ−Ｉｎメッセージがコントローラ６０に送られるため、コントローラ６０の処理負荷は高くなることがあった。また、経路の切り替えに時間がかかるとフレームロスが発生する恐れもある。
【０１１５】
一方、実施形態にかかる方法では、同じグループ識別子に対応付けられた処理ルールの削除のタイミングを同期させているので、冗長経路中の転送装置１０は、切り替えが発生したときに使用する処理ルールの削除を保留している。このため、冗長経路への経路切り替えの際に、コントローラ６０は、冗長経路用の処理ルールを再設定しなくても、自律的に経路が切り替えられる。従って、実施形態にかかる方法では、コントローラ６０には、処理ルールの再設定による処理負荷がかからない。また、冗長経路中の転送装置１０は、切り替えが発生したときに使用する処理ルールを保持したままであるので、経路が切り替わっても、フレームに適用する処理ルールをコントローラ６０に問い合わせなくてもよい。このため、経路の切り替えに伴って大量のＰａｃｋｅｔ−Ｉｎメッセージがコントローラ６０に送信されることはない。さらに、経路の切り替えに時間がかかるおそれがないので、フレームロスも防止できる。
【０１１６】
＜その他＞
なお、実施形態は上記に限られるものではなく、様々に変形可能である。以下にその例をいくつか述べる。
【０１１７】
第２の実施形態において、死活監視フレームとして、状態問合せフレームのうち、死活監視用に割り当てられたグループ識別子が使用される場合を例としたが、死活監視フレームとして別のフレームが用いられてもよい。この場合、各転送装置１０は、図１５を参照しながら説明したフローチャートは、死活監視用のフレームであるかも判定するように変更される。
【０１１８】
以上の説明では、Ｃ−プレーンを用いて転送装置１０間の通信が行われる場合を例として説明したが、これは一例である。例えば、転送装置１０間の通信はＭ−プレーンを用いて行われてもよい。また、転送装置１０間の通信がＴＣＰを用いて行われる場合を例として説明したが、転送装置１０間の通信に使用されるトランスポートプロトコルは任意である。例えば、転送装置１０間の通信にＵＤＰ（User Datagram Protocol）が使用されてもよい。
【０１１９】
以上の説明で使用したフレーム例、テーブル例等に含まれている情報要素やフォーマットは一例であり、実装に応じて変更され得る。例えば、グループ識別子は、Ｃｏｏｋｉｅではなく、メタデータのフィールドを用いてグループ識別子が各転送装置１０に通知されてもよい。
【０１２０】
上述の第１および第２の実施形態を含む実施形態に関し、さらに以下の付記を開示する。
（付記１）
制御装置から取得した処理ルールに従ってフレームを処理する転送装置であって、
前記制御装置から取得した処理ルールを記憶する記憶部と、
前記記憶部に記憶されている第１の処理ルールを適用するフレームを受信しない期間が所定期間を超えると、前記第１の処理ルールを削除可能な情報として検出する検出部と、
前記第１の処理ルールを削除するタイミングを第２の処理ルールの削除と同期させる設定が前記第１の処理ルールに含まれている場合、前記第２の処理ルールの使用状況を取得する取得部と、
前記第２の処理ルールの使用状況を用いて、前記第１の処理ルールを削除するかを決定する同期制御部
を備えることを特徴とする転送装置。
（付記２）
前記記憶部は、前記記憶部が保持する処理ルールと削除のタイミングを同期させる処理ルールの通知先の情報をさらに記憶し、
前記取得部は、前記通知先から前記第２の処理ルールの使用状況を取得し
前記同期制御部は、前記第２の処理ルールが前記通知先で使用されていない場合、前記第１の処理ルールを前記記憶部から削除する
ことを特徴とする付記１に記載の転送装置。
（付記３）
前記制御装置から取得する処理ルールの各々には、当該処理ルールの削除のタイミングが他の処理ルールの削除と同期される場合、削除のタイミングを同期させるグループを識別する識別情報が含められ、
前記取得部は、前記第１の処理ルールに含まれる識別情報を用いて、前記通知先に、前記第１の処理ルールと同じグループに属する処理ルールの使用状況を問い合わせ、
前記同期処理部は、前記第１の処理ルールと同じグループに属する処理ルールが前記通知先のいずれでも使用されていない場合、前記第１の処理ルールを前記記憶部から削除すると共に、前記通知先に、前記第１の処理ルールが含む識別情報を含む処理ルールの削除を要求する
ことを特徴とする付記２に記載の転送装置。
（付記４）
前記記憶部は、前記制御装置から取得した処理ルールの各々に対応付けて、当該処理ルールの使用状況をさらに記憶し、
前記取得部は、前記第２の処理ルールが前記記憶部に記憶されている場合、前記第２の処理ルールに対応付けられている使用状況を取得し、
前記同期制御部は、前記第２の処理ルールが使用中である場合、前記第１の処理ルールに対応付けて前記記憶部に記録される使用状況を、削除保留中に設定する
ことを特徴とする付記１〜３のいずれか１項に記載の転送装置。
（付記５）
制御装置から取得した処理ルールに従ってフレームを処理する転送装置が、
前記制御装置から取得した処理ルールを記憶し、
記憶している第１の処理ルールを適用するフレームを受信しない期間が所定期間を超えると、前記第１の処理ルールを削除可能な情報として検出し、
前記第１の処理ルールを削除するタイミングを第２の処理ルールの削除と同期させる設定が前記第１の処理ルールに含まれている場合、前記第２の処理ルールの使用状況を取得し、
前記第２の処理ルールの使用状況を用いて、前記第１の処理ルールを削除するかを決定する
ことを特徴とする制御方法。
（付記６）
前記転送装置は、
記憶している処理ルールと削除のタイミングを同期させる処理ルールの通知先の情報をさらに記憶し、
前記通知先から前記第２の処理ルールの使用状況を取得し
前記第２の処理ルールが前記通知先で使用されていない場合、前記第１の処理ルールを削除する
ことを特徴とする付記５に記載の制御方法。
（付記７）
前記制御装置から取得する処理ルールの各々には、当該処理ルールの削除のタイミングが他の処理ルールの削除と同期される場合、削除のタイミングを同期させるグループを識別する識別情報が含められ、
前記転送装置は、
前記第１の処理ルールに含まれる識別情報を用いて、前記通知先に、前記第１の処理ルールと同じグループに属する処理ルールの使用状況を問い合わせ、
前記第１の処理ルールと同じグループに属する処理ルールが前記通知先のいずれでも使用されていない場合、前記第１の処理ルールを削除すると共に、前記通知先に、前記第１の処理ルールが含む識別情報を含む処理ルールの削除を要求する
ことを特徴とする付記６に記載の制御方法。
（付記８）
前記転送装置は、
前記制御装置から取得した処理ルールの各々に対応付けて、当該処理ルールの使用状況をさらに記憶し、
前記第２の処理ルールを記憶している場合、前記第２の処理ルールに対応付けられている使用状況を特定し、
前記第２の処理ルールが使用中である場合、前記第１の処理ルールに対応付けて前記記憶部に記録される使用状況を、削除保留中に設定する
ことを特徴とする付記５〜７のいずれか１項に記載の制御方法。
【符号の説明】
【０１２１】
５  端末
１０  転送装置
１１  Ｄ-Ｐｌａｎｅ回線インタフェース
１２  Ｃ-Ｐｌａｎｅ回線インタフェース
１３  送信部
１４  受信部
２０  制御部
２１  フローテーブル
２２  フレーム処理部
２３  検出部
３０  同期処理部
３１  取得部
３２  同期制御部
４１  Ｏｐｅｎｆｌｏｗプロトコル処理部
４２  スイッチ間通信処理部
４３  組み合わせ管理テーブル
６０  コントローラ
７０  サーバ
１０１  プロセッサ
１０２  メモリ
１０３  バス
１０４  回線インタフェース
【図１】
2018113506.tif 000003
【図２】
2018113506.tif 000004
【図３】
2018113506.tif 000005
【図４】
2018113506.tif 000006
【図５】
2018113506.tif 000007
【図６】
2018113506.tif 000008
【図７】
2018113506.tif 000009
【図８】
2018113506.tif 000010
【図９】
2018113506.tif 000011
【図１０】
2018113506.tif 000012
【図１１】
2018113506.tif 000013
【図１２】
2018113506.tif 000014
【図１３】
2018113506.tif 000015
【図１４】
2018113506.tif 000016
【図１５】
2018113506.tif 000017
【図１６】
2018113506.tif 000018