(57)【特許請求の範囲】
【請求項１】
制御及び転送が分離した集中型システムに用いるパケット処理方法であって、
パケット処理装置により、コントローラにより送信されている第一フローテーブルエントリーを受信し、前記第一フローテーブルエントリーは、第一フローテーブルエントリーの重要性を示すために用いられる第一重要性情報を含み；
フローテーブルにアイドルフローテーブルエントリーリソースが存在しなければ、前記パケット処理装置により、前記フローテーブルに第二フローテーブルエントリーが存在するかどうかを判断し、前記第二フローテーブルエントリーは、第二フローテーブルエントリーの重要性を示すために用いられる第二重要性情報を含み、前記第二重要性情報により示される重要性は、前記第一重要性情報により示される重要性よりも低く；及び
前記フローテーブルに前記第二フローテーブルエントリーが存在すれば、前記パケット処理装置により、前記フローテーブルにおける前記第二フローテーブルエントリーを削除し、前記パケット処理装置により、前記第一フローテーブルエントリーを前記フローテーブルに追加することを含む、方法。
【請求項２】
請求項１に記載の方法であって、
前記第一フローテーブルエントリーは、フローテーブルエントリーのマッチング優先度情報を含み、前記第一フローテーブルエントリーは、前記第一重要性情報を運ぶために用いられる新しく追加されたフィールドを更に含む、方法。
【請求項３】
請求項１に記載の方法であって、
前記第一及び第二重要性情報は、フローテーブルエントリーのマッチング優先度情報及びフローテーブルエントリーのマッチング回数情報のうちの少なくとも一つをそれぞれ含み、
前記フローテーブルエントリーのマッチング優先度情報により示される優先度が高ければ高いほど、対応するフローの重要性が高く；及び
前記フローテーブルエントリーのマッチング回数情報により示される回数が多ければ多いほど、対応するフローの重要性が高い、方法。
【請求項４】
請求項１〜３のうち何れか一つに記載の方法であって、
前記フローテーブルに前記第二フローテーブルエントリーが存在しなければ、前記コントローラにエラーメッセージを送信し、前記フローテーブルに、前記第一フローテーブルエントリーを追加するためのアイドルフローテーブルエントリーリソースが存在しないことを示すことを更に含む、方法。
【請求項５】
請求項１〜４のうちの何れか一つに記載の方法であって、
前記制御及び転送が分離した集中型システムは、オープンフローシステムを含む、方法。
【請求項６】
制御及び転送が分離した集中型システムに用いるパケット処理装置であって、
コントローラにより送信されている第一フローテーブルエントリーを受信するように構成された受信器であって、前記第一フローテーブルエントリーは、第一フローテーブルエントリーの重要性を示すために用いられる第一重要性情報を含む、受信器；及び
フローテーブルにアイドルフローテーブルエントリーリソースが存在しなければ、前記フローテーブルに第二フローテーブルエントリーが存在するかどうかを判断するように構成された処理器であって、前記第二フローテーブルエントリーは、第二フローテーブルエントリーの重要性を示すために用いられる第二重要性情報を含み、前記第二重要性情報により示される重要性は、前記第一重要性情報により示される重要性よりも低く、前記処理器は、前記フローテーブルに前記第二フローテーブルエントリーが存在すれば、前記フローテーブルにおける前記第二フローテーブルエントリーを削除し、前記第一フローテーブルエントリーを前記フローテーブルに追加する、処理器を含む、装置。
【請求項７】
請求項６に記載の装置であって、
前記第一フローテーブルエントリーは、フローテーブルエントリーのマッチング優先度情報を含み、前記第一フローテーブルエントリーは、前記第一重要性情報を運ぶために用いられる新しく追加されたフィールドを更に含む、装置。
【請求項８】
請求項６又は７に記載の装置であって、
前記第一及び第二重要性情報は、フローテーブルエントリーのマッチング優先度情報及びフローテーブルエントリーのマッチング回数情報のうちの少なくとも一つをそれぞれ含み、
前記フローテーブルエントリーのマッチング優先度情報により示される優先度が高ければ高いほど、対応するフローの重要性が高く；及び
前記フローテーブルエントリーのマッチング回数情報により示される回数が多ければ多いほど、対応するフローの重要性が高い、装置。
【請求項９】
請求項６〜８のうち何れか一つに記載の装置であって、
前記処理器は、さらに、
前記フローテーブルに前記第二フローテーブルエントリーが存在しなければ、前記コントローラにエラーメッセージを送信し、前記フローテーブルに、前記第一フローテーブルエントリーを追加するためのアイドルフローテーブルエントリーリソースが存在しないことを示すように構成される、装置。
【請求項１０】
請求項６〜９のうちの何れか一つに記載の装置であって、
前記制御及び転送が分離した集中型システムは、オープンフローシステムを含む、装置。
【請求項１１】
フローテーブルエントリー送信方法であって、
コントローラにより、第一フローテーブルエントリーをネットワーク装置に送信し、前記第一フローテーブルエントリーは、第一フローテーブルエントリーの重要性を示すために用いられる第一重要性情報を含み、前記第一重要性情報は、フローテーブルにおける第二フローテーブルエントリーの第二重要性情報及び前記第一フローテーブルエントリーの前記第一重要性情報に従って、前記ネットワーク装置のフローテーブルにアイドルフローテーブルエントリーリソースが存在しない場合、前記第一フローテーブルエントリーを前記フローテーブルに追加するかどうかを判断するために、前記ネットワーク装置により用いられ；
前記コントローラにより、前記第一フローテーブルエントリーを生成し、前記第一フローテーブルエントリーは、優先度情報を運ぶフィールドと、前記第一重要性情報を運ぶ新しく追加されたフィールドとを含む、方法。
【請求項１２】
請求項１１に記載の方法であって、
前記コントローラにより、前記ネットワーク装置の前記フローテーブルに前記第二フローテーブルエントリーが存在しなければ、前記第一フローテーブルエントリーを追加するためのアイドルフローテーブルエントリーリソースが存在しないことを示すために用いられるエラーメッセージを受信することを更に含む、方法。
【請求項１３】
コントローラであって、
第一フローテーブルエントリーをネットワーク装置に送信するように構成された送信器であって、前記第一フローテーブルエントリーは、第一フローテーブルエントリーの重要性を示すために用いられる第一重要性情報を含み、前記第一重要性情報は、フローテーブルにおける第二フローテーブルエントリーの第二重要性情報及び前記第一フローテーブルエントリーの前記第一重要性情報に従って、前記ネットワーク装置のフローテーブルにアイドルフローテーブルエントリーリソースが存在しない場合、前記第一フローテーブルエントリーを前記フローテーブルに追加するかどうかを判断するために、前記ネットワーク装置により用いられる、送信器；
前記第一フローテーブルエントリーを生成するように構成された処理器であって、前記第一フローテーブルエントリーは、優先度情報を運ぶフィールドと、前記第一重要性情報を運ぶ新しく追加されたフィールドとを含む、コントローラ。
【請求項１４】
請求項１３に記載のコントローラであって、
前記ネットワーク装置の前記フローテーブルに前記第二フローテーブルエントリーが存在しなければ、前記第一フローテーブルエントリーを追加するためのアイドルフローテーブルエントリーリソースが存在しないことを示すために用いられるエラーメッセージを受信するように構成された受信器を更に含む、コントローラ。
【請求項１５】
請求項１３又は１４に記載のコントローラ及び請求項６〜１０のうちの何れか一つに記載のパケット処理装置を含む、パケット処理システム。
【請求項１６】
コンピュータに、請求項１〜５のうちの何れか一つに記載の方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１７】
コンピュータに、請求項１〜５のうちの何れか一つに記載の方法を実行させるためのプログラム。
【請求項１８】
コンピュータに、請求項１１又は１２に記載の方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項１９】
コンピュータに、請求項１１又は１２に記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理技術に関し、特に、パケットを処理する方法、装置及びシステムに関する。
【背景技術】
【０００２】
インターネットの発展に伴い、分散型システムがネットワークの拡張性及び管理上のニーズをよりよく満足することができないので、制御及び転送が分離した集中型システムが機運に応じて生まれている。例えば、オープンフロー（OpenFlow）システムは、制御及び転送が分離した集中型システムの一種であり、OpenFlowスイッチ（OpenFlow  Switch）は、元々完全にスイッチ/ルーターにより制御されるパケット転送プロセスを、OpenFlowスイッチ及びコントローラ（Controller）により共同に完成されるプロセスに変換し、これにより、データの転送及びルーティング制御の分離を実現することができる。コントローラは、事前に規定されたインターフェース操作（interface  operation）により、OpenFlowスイッチにおけるフローテーブルを制御することができ、これにより、データ転送の目的を達成することができる。OpenFlowスイッチは、OpenFlowスイッチに進入したパケットについて、フローテーブルに対してクエリーを行うことにより、該パケットにマッチングするフローテーブルエントリーを得ることができる。そして、該フローテーブルエントリーに従って、該パケットに対して行う必要のある操作を確定することができ、該操作は、例えば、該パケットを、目的ポートに転送し、放棄し、又はコントローラに報告（report）するなどである。フローの最初のパケットについては、OpenFlowスイッチは、マッチングによりフローテーブルエントリーが得られなければ、該パケットをコントローラに報告することができ、コントローラは、該パケットが所属するフローのために、新しいフローテーブルエントリーを生成し、そして、該パケットをOpenFlowスイッチに引き渡し（deliver）、これにより、OpenFlowスイッチは、この新しいフローテーブルエントリーをフローテーブルに追加する。
【０００３】
しかし、フローテーブルエントリーのリソースがすべて使われている時に、OpenFlowスイッチは、新しいフローテーブルエントリーをフローテーブルに追加することができず、これにより、OpenFlowスイッチは、新しいフローに対してタイムリーな処理を行うことができないので、パケット処理は信頼性が低下してしまう。また、制御及び転送が分離した他の集中型システムにも類似する問題が存在する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、パケット処理の信頼性を向上させるために、パケットを処理する方法、装置、及びシステムを提供することにある。
【課題を解決するための手段】
【０００５】
本発明の一側面によれば、制御及び転送が分離した集中型システムに用いるパケット処理方法が提供される。該パケット処理方法は、コントローラにより送信されている第一フローテーブルエントリーを受信し、そのうち、前記第一フローテーブルエントリーは第一フローの重要性を示すための第一重要性情報を含み；フローテーブルにアイドル（idle；“空き”）フローテーブルエントリーリソースが存在しなければ、前記フローテーブルに第二フローテーブルエントリーが存在するかどうかを判断し、そのうち、前記第二フローテーブルエントリーは第二フローの重要性を示すための第二重要性情報を含み、前記第二重要性情報により示される重要性は前記第一重要性情報により示される重要性よりも低く；及び、前記フローテーブルに前記第二フローテーブルエントリーが存在すれば、前記フローテーブルにおける前記第二フローテーブルエントリーを削除し、前記第一フローテーブルエントリーを前記フローテーブルに追加することを含む。
【０００６】
本発明の他の側面によれば、制御及び転送が分離した集中型システムに用いるパケット処理装置が提供される。該パケット処理装置は、コントローラにより送信されている第一フローテーブルエントリーを受信するための受信器であって、前記第一フローテーブルエントリーは第一フローの重要性を示すための第一重要性情報を含む、受信器；及び、フローテーブルにアイドルフローテーブルエントリーリソースが存在しなければ、前記フローテーブルに第二フローテーブルエントリーが存在するかどうかを判断するための処理器であって、前記第二フローテーブルエントリーは第二フローの重要性を示すための第二重要性情報を含み、前記第二重要性情報により示される重要性は前記第一重要性情報により示される重要性よりも低く、前記処理器は、前記フローテーブルに前記第二フローテーブルエントリーが存在すれば、前記フローテーブルにおける前記第二フローテーブルエントリーを削除し、前記第一フローテーブルエントリーを前記フローテーブルに追加する、処理器を含む。
【０００７】
本発明の他の側面によれば、制御及び転送が分離した集中型システムに用いるパケット処理システムが提供される。該パケット処理システムは、コントローラ及び上述のようなパケット処理装置を含む。
【０００８】
上述の技術案によれば、本発明の実施例は、追加された前記第一フローテーブルエントリーに従って、受信されたパケットに対してタイムリーな処理を行うことができ、重要性が比較的高いフローに対してのタイムリーな処理を実現することができ、フローテーブルエントリーリソースがすべて使われていることによって転送装置が新しいフローテーブルエントリーをフローテーブルに追加することができないという従来技術における問題を軽減することができるので、パケット処理の信頼性を向上させることができる。
【図面の簡単な説明】
【０００９】
【図１】本発明の一実施例によるパケット処理方法のフローチャートである。
【図２】本発明の他の実施例によるパケット処理装置の構造図である。
【発明を実施するための形態】
【００１０】
以下、添付した図面を参照しながら本発明の好適な実施形態を詳細に説明する。
【００１１】
なお、本発明の技術案は、制御及び転送が分離した集中型システム、例えば、OpenFlowシステム等に応用することができる。
【００１２】
図1は、本発明の一実施例によるパケット処理方法のフローチャートである。図1に示すように、該パケット処理方法は、次のようなステップを含む。
【００１３】
101：コントローラにより送信されている第一フローテーブルエントリーを受信し、そのうち、該第一フローテーブルエントリーは、第一フローの重要性を示すための第一重要性情報を含む。
【００１４】
102：フローテーブルにアイドルフローテーブルエントリーリソースが存在しなければ、該フローテーブルに第二フローテーブルエントリーが存在するかどうかを判断し、そのうち、該第二フローテーブルエントリーは、第二フローの重要性を示すための第二重要性情報を含み、該第二重要性情報により示される重要性は、上述の第一重要性情報により示される重要性よりも低い。
【００１５】
103：上述のフローテーブルに上述の第二フローテーブルエントリーが存在すると判断すれば、上述のフローテーブルにおける上述の第二フローテーブルエントリーを削除し、上述の第一フローテーブルエントリーを上述のフローテーブルに追加する。
【００１６】
なお、上述のフローテーブルには、アイドルフローテーブルエントリーリソースが存在しない。言い換えると、フローテーブルエントリーリソースは、すべて使われており、即ち、フローテーブルは、フル（満）になっている。
【００１７】
オプションで、本実施例の一例では、上述の重要性情報は、従来技術におけるフローテーブルエントリーのフィールドに運ばれてもよく、又は、フローテーブルエントリーの新しく追加されたフィールドに運ばれてもよいが、本実施例では、これに限定されない。具体的には、上述の重要性情報は、次のような情報のうちの少なくとも一つを含んでもよいが、それに限定されない。
【００１８】
フローテーブルエントリーのマッチング優先度情報（例えば、従来技術におけるフローテーブルエントリーに運ばれるPriority）：フローテーブルエントリーのマッチング優先度情報により示される優先度が高ければ高いほど、対応するフローの重要性が高く；及び、
フローテーブルエントリーのマッチング回数情報（例えば、従来技術におけるフローテーブルエントリーに運ばれるCounters）：フローテーブルエントリーのマッチング回数情報により示される回数が多ければ多いほど、対応するフローの重要性が高い。
【００１９】
オプションで、上述の新しく追加されたフィールドは、統計による「最近もっともアクセスされていない（LRU：Least  Recently  Used）回数」に基づいて、フローテーブルエントリーの重要性を設置するために用いられてもよく、例えば、フローのLRU回数が多ければ多いほど、フローテーブルエントリーの重要性が高く；或いは、所定期間において、統計によるパケットの数に基づいて、フローテーブルエントリーの重要性を設置するために用いられてもよく、例えば、フローに含まれるパケットの数が多ければ多いほど、フローテーブルエントリーの重要性が高い。なお、本実施例では、これに限定されない。
【００２０】
オプションで、上述の重要性情報は、単独でフローの重要性を示してもよい。
【００２１】
オプションで、上述の重要性情報は、組み合わせることによってフローの重要性を示してもよい。例えば、フローテーブルエントリーのマッチング優先度情報（例えば、従来技術におけるフローテーブルエントリーのPriority）により示される2つのフロー（フロー1及びフロー2）の重要性が等しい時に、フロー1に対応するフローテーブルエントリーにおけるフローテーブルエントリーのマッチング回数情報が、高い（大きい）マッチング回数を示せれば、フロー1の重要性が高く；フロー2に対応するフローテーブルエントリーにおけるフローテーブルエントリーのマッチング回数情報が、高い（大きい）マッチング回数を示せれば、フロー2の重要性が高い。重要性情報を組み合わせてフローの重要性を示す時は、具体的なニーズに応じて重要性の配置（configuration）を行ってもよいが、本発明では、具体的に限定されない。
【００２２】
なお、上述のステップ101、102及び103の実行主体は、転送装置であってもよく、例えば、OpenFlowシステムでは、転送装置は、OpenFlowスイッチであってもよい。
【００２３】
理解すべきは、転送装置は、上述のフローテーブルにおける第二フローテーブルエントリーを削除した後に、さらに、上述のコントローラに削除メッセージを送信することができ、これにより、上述のフローテーブルにおける第二フローテーブルエントリーが削除されたということを知らせることができる。
【００２４】
オプションで、本実施例の一例では、ステップ102の後に、転送装置により、上述のフローテーブルに上述の第二フローテーブルエントリーが存在しないと判断すれば、転送装置は、上述のコントローラにエラーメッセージを送信することができ、これにより、上述の第一フローテーブルエントリーを追加するためのアイドルフローテーブルエントリーリソースが上述のフローテーブルに存在しないことを示す（報告する）ことができるので、上述のコントローラにより受信されるエラーメッセージの数を減少させ、上述のコントローラの処理負荷を低減させることができる。
【００２５】
例えば、OpenFlowシステムでは、OpenFlowスイッチは、コントローラにエラーメッセージofp_error_msgを送信し、該ofp_error_msgには、フローテーブル追加失敗類型（OFPET_FLOW_MOD_FAILED）及びフローテーブルフルコード（OFPFMFC_ALL_TABLES_FULL）が運ばれる。
【００２６】
また、フローテーブルがフル（満）になる時刻は、臨界（critical）時刻であり、転送装置は、その受信したフロー（例えば、対応するフローテーブルエントリーがなければ）の最初のパケットをコントローラに送信する。本実施例では、転送装置は、タイムリーに、重要性が比較的高いフローのフローテーブルエントリーをフローテーブルに追加することができるので、該フローのパケット（例えば、後続のパケット）を上述のコントローラに送信する可能性を減少させることができ、これにより、上述のコントローラの処理負荷を更に低減させることができる。
【００２７】
オプションで、本実施例の一例では、上述のフローテーブルに未マッチング（unmatched）エントリー（table-miss）が存在すれば、予め該未マッチングエントリー（table-miss）に最も低い重要性情報が配置されたので、上述の第二重要性情報により示される重要性が、二番目に低い（second  lowest）ものであってもよい。
【００２８】
オプションで、本実施例の一例では、上述のフローテーブルに未マッチングエントリー（table-miss）が存在しなければ、上述の第二重要性情報により示される重要性が、最も低いものであってもよい。
【００２９】
本実施例では、コントローラにより送信されている第一フローテーブルエントリーを受信し、そのうち、該第一フローテーブルエントリーは、第一フローの重要性を示すための第一重要性情報を含む。フローテーブルにアイドルフローテーブルエントリーリソースが存在しなければ、該フローテーブルに第二フローテーブルエントリーが存在するかどうかを判断し、そのうち、該第二フローテーブルエントリーは、第二フローの重要性を示すための第二重要性情報を含み、該第二重要性情報により示される重要性は、上述の第一重要性情報により示される重要性よりも低い。上述のフローテーブルに上述の第二フローテーブルエントリーが存在すると判断すれば、上述のフローテーブルにおける上述の第二フローテーブルエントリーを削除し、上述の第一フローテーブルエントリーを上述のフローテーブルに追加し、これにより、添加された上述の第一フローテーブルエントリーに基づいて、受信したパケットに対してタイムリーな処理を行うことができ、重要性が比較的高いフローに対してタイムリーな処理を実現することができるので、フローテーブルエントリーリソースが全て使われていることによって転送装置が新しいフローテーブルエントリーをフローテーブルに追加できないという従来技術における問題を軽減させ、パケット処理の信頼性を向上させることができる。
【００３０】
なお、上述の方法に係る各実施例は、説明を簡潔にするために、一連の動作（ステップ）の組み合わせとして説明されているが、理解すべきは、本発明は、説明されている動作（ステップ）の順序に限定されず、幾つかのステップは、他の順序又は同時に行われてもよいとのことである。また、理解すべきは、明細書に記載されている実施例は、すべて例示的なものであり、その中に含まれている動作（ステップ）及びモジュールは、必ずしも本発明の必須なものではない。
【００３１】
上述では、各実施例についての説明にそれぞれ重点を置いている。ある実施例の詳しく説明されていない部分については、他の実施例の関連する説明を参照することができる。
【００３２】
図2は、本発明の他の実施例によるパケット処理装置の構造図である。図2に示すように、本実施例のパケット処理装置は、受信器21及び処理器22を含んでもよい。受信器21は、コントローラにより送信されている第一フローテーブルエントリーを受信するために用いられ、そのうち、該第一フローテーブルエントリーは、第一フローの重要性を示すための第一重要性情報を含む。処理器22は、フローテーブルにアイドルフローテーブルエントリーリソースが存在しなければ、該フローテーブルに第二フローテーブルエントリーが存在するかどうかを判断するために用いられ、そのうち、該第二フローテーブルエントリーは、第二フローの重要性を示すための第二重要性情報を含み、該第二重要性情報により示される重要性は、上述の第一重要性情報により示される重要性よりも低い。処理器22は、上述のフローテーブルに上述の第二フローテーブルエントリーが存在すると判断すれば、上述のフローテーブルにおける第二フローテーブルエントリーを削除し、上述の第一フローテーブルエントリーを上述のフローテーブルに追加する。
【００３３】
オプションで、本実施例の一例では、上述の重要性情報は、従来技術におけるフローテーブルエントリーのフィールドに運ばれてもよく、或いは、フローテーブルエントリーの新しく追加されたフィールドに運ばれてもよいが、本実施例は、これについて限定しない。具体的には、上述の重要性情報は、次のような情報のうちの少なくとも一つを含んでもよいが、それに限定されない。
【００３４】
フローテーブルエントリーのマッチング優先度情報（例えば、従来技術におけるフローテーブルエントリーに運ばれるPriority）：フローテーブルエントリーのマッチング優先度情報により示される優先度が高ければ高いほど、対応するフローの重要性が高く；及び、
フローテーブルエントリーのマッチング回数情報（例えば、従来技術におけるフローテーブルエントリーに運ばれるCounters）：フローテーブルエントリーのマッチング回数情報により示される回数が多ければ多いほど、対応するフローの重要性が高い。
【００３５】
オプションで、上述の新しく追加されたフィールドは、統計による「最近もっともアクセスされていない（LRU：Least  Recently  Used）回数」に基づいて、フローテーブルエントリーの重要性を設置するために用いられてもよく、例えば、フローのLRU回数が多ければ多いほど、フローテーブルエントリーの重要性が高く；或いは、所定期間において、統計によるパケットの数に基づいて、フローテーブルエントリーの重要性を設置するために用いられてもよく、例えば、フローに含まれるパケットの数が多ければ多いほど、フローテーブルエントリーの重要性が高い。なお、本実施例では、これに限定されない。
【００３６】
オプションで、上述の重要性情報は、単独でフローの重要性を示してもよい。
【００３７】
オプションで、上述の重要性情報は、組み合わせることによってフローの重要性を示してもよい。例えば、フローテーブルエントリーのマッチング優先度情報（例えば、従来技術におけるフローテーブルエントリーのPriority）により示される2つのフロー（フロー1及びフロー2）の重要性が等しい時に、フロー1に対応するフローテーブルエントリーにおけるフローテーブルエントリーのマッチング回数情報が、高い（大きい）マッチング回数を示せれば、フロー1の重要性が高く；フロー2に対応するフローテーブルエントリーにおけるフローテーブルエントリーのマッチング回数情報が、高い（大きい）マッチング回数を示せれば、フロー2の重要性が高い。重要性情報を組み合わせてフローの重要性を示す時は、具体的なニーズに応じて重要性の配置（configuration）を行ってもよいが、本発明では、具体的に限定されない。
【００３８】
なお、本実施例のパケット処理装置は、OpenFlowシステムにおいて、OpenFlowスイッチであってもよい。
【００３９】
オプションで、本実施例の一例では、処理器22は、上述のフローテーブルに上述の第二フローテーブルエントリーが存在しないと判断すれば、上述のコントローラにエラーメッセージを送ってもよく、これにより、上述の第一フローテーブルエントリーを追加するためのアイドルフローテーブルエントリーリソースが上述のフローテーブルに存在しないことを示す（報告する）ことができるので、上述のコントローラにより受信されるエラーメッセージの数を減少させ、上述のコントローラの処理負荷を低減させることができる。
【００４０】
例えば、OpenFlowシステムでは、パケット処理装置（即ち、OpenFlowスイッチ）の送信器は、コントローラにエラーメッセージofp_error_msgを送信してもよく、該ofp_error_msgには、フローテーブル追加失敗類型（OFPET_FLOW_MOD_FAILED）及びフローテーブルフルコード（OFPFMFC_ALL_TABLES_FULL）が運ばれる。
【００４１】
また、フローテーブルがフル（満）になる時刻は、臨界（critical）時刻であり、転送装置は、その受信したフロー（例えば、対応するフローテーブルエントリーがなければ）の最初のパケットをコントローラに送信する。本実施例では、転送装置は、タイムリーに、重要性が比較的高いフローのフローテーブルエントリーをフローテーブルに追加することができるので、該フローのパケット（例えば、後続のパケット）を上述のコントローラに送信する可能性を減少させることができ、これにより、上述のコントローラの処理負荷を更に低減させることができる。
【００４２】
オプションで、本実施例の一例では、上述のフローテーブルに未マッチング（unmatched）エントリー（table-miss）が存在すれば、予め該未マッチングエントリー（table-miss）に最も低い重要性情報が配置されたので、上述の第二重要性情報により示される重要性が、二番目に低い（second  lowest）ものであってもよい。
【００４３】
オプションで、本実施例の一例では、上述のフローテーブルに未マッチングエントリー（table-miss）が存在しなければ、上述の第二重要性情報により示されている重要性が、最も低いものであってもよい。
【００４４】
本実施例では、受信器は、コントローラにより送信されている第一フローテーブルエントリーを受信し、そのうち、該第一フローテーブルエントリーは、第一フローの重要性を示すための第一重要性情報を含む。処理器は、フローテーブルにアイドルフローテーブルエントリーリソースが存在しなければ、該フローテーブルに第二フローテーブルエントリーが存在するかどうかを判断し、そのうち、該第二フローテーブルエントリーは、第二フローの重要性を示すための第二重要性情報を含み、該第二重要性情報により示される重要性は、上述の第一重要性情報により示される重要性よりも低い。処理器は、上述のフローテーブルに上述の第二フローテーブルエントリーが存在すると判断すれば、上述のフローテーブルにおける上述の第二フローテーブルエントリーを削除し、上述の第一フローテーブルエントリーを上述のフローテーブルに追加し、これにより、添加された上述の第一フローテーブルエントリーに基づいて、受信したパケットに対してタイムリーな処理を行うことができ、重要性が比較的高いフローに対してタイムリーな処理を実現することができるので、フローテーブルエントリーリソースが全て使われていることによって転送装置が新しいフローテーブルエントリーをフローテーブルに追加できないという従来技術における問題を軽減させ、パケット処理の信頼性を向上させることができる。
【００４５】
本発明の他の実施例によれば、制御及び転送が分離した集中型システムに用いるパケット処理システムが提供される。該パケット処理システムは、コントローラ及び上述の図2に対応する実施例により提供されているパケット処理装置を含む。
【００４６】
理解すべきは、説明を簡潔にするために、上述のシステム、装置及びユニットの具体的なワーキングプロセスについて、上述の方法に係る実施例における対応するプロセスを参照することができるので、ここでは、その説明を省略してもよいとのことである。
【００４７】
また、理解すべきは、本明細書に記載の幾つかの実施例において説明されているシステム、装置及び方法は、他の方式で実現され得るとのことである。例えば、上述の装置に係る実施例は、例示的なものだけであり、例えば、上述のユニットの区別は、ロジック機能の区別だけであり、実際に実現する時は、他の区別方法を採用してもよく、例えば、複数のユニット又はアセンブリは、組み合わせることにより他のシステムに応用されてもよく、又は、他のシステムに集積されてもよく、或いは、幾つかの特徴は、省略されてもよく、又は、実行されなくもよい。また、表示されている又は議論されている互いの間のカップリング又は直接的なカップリング又は通信接続は、幾つかのインターフェース、装置又はユニットによる間接的なカップリング又は通信接続であってもよく、電気的な、機械的な又は他の形式であってもよい。
【００４８】
上述の分離した部品として説明されているユニットは、物理的に分離したものであってもよく、そうではなくてもよい。ユニットとして表示されている部品は、物理的なユニットであってもよく、そうではなくてもよく、即ち、一つの箇所に位置してもよく、複数のネットワークユニットに分布してもよい。また、実際のニーズに応じて、そのうちの一部又は全部のユニットを選択して、本実施例の技術案の目的を達成することができる。
【００４９】
また、本発明の各実施例における各機能ユニットは、一つの処理ユニットに集積されてもよく、各ユニットとして物理的に単独で存在してもよく、又は、そのうちの複数のユニットが一つのユニットに集積されてもよい。集積されたユニットは、ハードウェアの形で実現されてもよく、ソフトウェアによる機能ユニット（例えば、プログラムによるもの）の形で実現されてもよく、又は、ハードウェア及びソフトウェアによる機能ユニットの形で実現されてもよく。
【００５０】
ソフトウェアによる機能ユニットの形で実現された集積ユニット（例えば、プログラムによるもの）は、コンピュータ可読な記憶媒体に記録されてもよい。該記憶媒体に記録されている該ソフトウェアによる機能ユニットは、複数の指令を含み、コンピュータ装置（例えば、パソコン、サーバー、又はネットワーク装置等）又はプロセッサー（processor）に、本発明の各実施例における方法の部分のステップを実行させるために用いられる。また、上述の記憶媒体は、Uディスク、ポータブルハードディスク、ROM（Read-Only  Memory）、RAM（Random  Access  Memory）、磁気ディスク又は光ディスクなどの各種の、プログラムコードを記録可能な媒体を含む。
【００５１】
以上、本発明の好ましい実施形態を説明したが、本発明はこの実施形態に限定されず、本発明の趣旨を離脱しない限り、本発明に対するあらゆる変更は本発明の技術的範囲に属する。
【００５２】
以上の実施形態に関し、更に、以下の項目を開示する。
【００５３】
(1)制御及び転送が分離した集中型システムに用いるパケット処理方法であって、
コントローラにより送信されている第一フローテーブルエントリーを受信し、そのうち、前記第一フローテーブルエントリーは、第一フローの重要性を示すための第一重要性情報を含み；
フローテーブルにアイドルフローテーブルエントリーリソースが存在しなければ、前記フローテーブルに第二フローテーブルエントリーが存在するかどうかを判断し、前記第二フローテーブルエントリーは、第二フローの重要性を示すための第二重要性情報を含み、前記第二重要性情報により示される重要性は、前記第一重要性情報により示される重要性よりも低く；及び
前記フローテーブルに前記第二フローテーブルエントリーが存在すれば、前記フローテーブルにおける前記第二フローテーブルエントリーを削除し、前記第一フローテーブルエントリーを前記フローテーブルに追加することを含む、方法。
【００５４】
(2)(1)に記載の方法であって、
前記重要性情報は、フローテーブルエントリーのマッチング優先度情報及びフローテーブルエントリーのマッチング回数情報のうちの少なくとも一つを含み、
前記フローテーブルエントリーのマッチング優先度情報により示される優先度が高ければ高いほど、対応するフローの重要性が高く；及び
前記フローテーブルエントリーのマッチング回数情報により示される回数が多ければ多いほど、対応するフローの重要性が高い、方法。
【００５５】
(3)(1)又は(2)に記載の方法であって、
前記フローテーブルに前記第二フローテーブルエントリーが存在しなければ、前記コントローラにエラーメッセージを送信し、前記フローテーブルに、前記第一フローテーブルエントリーを追加するためのアイドルフローテーブルエントリーリソースが存在しないことを示すことを更に含む、方法。
【００５６】
(4)(1)〜(3)のうちの何れか一つに記載の方法であって、
前記フローテーブルに未マッチングエントリーが存在すれば、前記第二重要性情報により示される重要性が２番目に低いものであり；又は
前記フローテーブルに未マッチングエントリーが存在しなければ、前記第二重要性情報により示される重要性が最も低いものである、方法。
【００５７】
(5)(1)〜(4)のうちの何れか一つに記載の方法であって、
前記制御及び転送が分離した集中型システムは、オープンフローシステムを含む、方法。
【００５８】
(6)制御及び転送が分離した集中型システムに用いるパケット処理装置であって、
コントローラにより送信されている第一フローテーブルエントリーを受信するための受信器であって、前記第一フローテーブルエントリーは、第一フローの重要性を示すための第一重要性情報を含む、受信器；及び
フローテーブルにアイドルフローテーブルエントリーリソースが存在しなければ、前記フローテーブルに第二フローテーブルエントリーが存在するかどうかを判断するための処理器であって、前記第二フローテーブルエントリーは、第二フローの重要性を示すための第二重要性情報を含み、前記第二重要性情報により示される重要性は、前記第一重要性情報により示される重要性よりも低く、前記処理器は、前記フローテーブルに前記第二フローテーブルエントリーが存在すれば、前記フローテーブルにおける前記第二フローテーブルエントリーを削除し、前記第一フローテーブルエントリーを前記フローテーブルに追加する、処理器を含む、装置。
【００５９】
(7)(6)に記載の装置であって、
前記重要性情報は、フローテーブルエントリーのマッチング優先度情報及びフローテーブルエントリーのマッチング回数情報のうちの少なくとも一つを含み、
前記フローテーブルエントリーのマッチング優先度情報により示される優先度が高ければ高いほど、対応するフローの重要性が高く；及び
前記フローテーブルエントリーのマッチング回数情報により示される回数が多ければ多いほど、対応するフローの重要性が高い、装置。
【００６０】
(8)(6)又は(7)に記載の装置であって、
前記処理器は、さらに、
前記フローテーブルに前記第二フローテーブルエントリーが存在しなければ、前記コントローラにエラーメッセージを送信し、前記フローテーブルに、前記第一フローテーブルエントリーを追加するためのアイドルフローテーブルエントリーリソースが存在しないことを示すために用いられる、装置。
【００６１】
(9)(6)〜(8)のうちの何れか一つに記載の装置であって、
前記フローテーブルに未マッチングエントリーが存在すれば、前記第二重要性情報により示される重要性が２番目に低いものであり；又は
前記フローテーブルに未マッチングエントリーが存在しなければ、前記第二重要性情報により示される重要性が最も低いものである、装置。
【００６２】
(10)(6)〜(9)のうちの何れか一つに記載の装置であって、
前記制御及び転送が分離した集中型システムは、オープンフローシステムを含む、装置。
【００６３】
(11)制御及び転送が分離した集中型システムに用いるパケット処理システムであって、
コントローラ及び(6)〜(10)のうちの何れか一つに記載のパケット処理装置を含む、システム。
【００６４】
(12)コンピュータに、請求項(1)〜(5)のうちの何れか一つに記載の方法を実行させるためのプログラム。
【００６５】
(13)(12)に記載のプログラムを記録したコンピュータ読み取り可能な記録媒体。
【図１】
0006055009.tif 000002
【図２】
0006055009.tif 000003