[go: up one dir, main page]

JP5967222B2 - パケット処理装置、フローエントリの配置方法及びプログラム - Google Patents

パケット処理装置、フローエントリの配置方法及びプログラム Download PDF

Info

Publication number
JP5967222B2
JP5967222B2 JP2014553172A JP2014553172A JP5967222B2 JP 5967222 B2 JP5967222 B2 JP 5967222B2 JP 2014553172 A JP2014553172 A JP 2014553172A JP 2014553172 A JP2014553172 A JP 2014553172A JP 5967222 B2 JP5967222 B2 JP 5967222B2
Authority
JP
Japan
Prior art keywords
entry
priority
flow
group
new flow
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2014553172A
Other languages
English (en)
Other versions
JPWO2014098114A1 (ja
Inventor
謙 藤田
謙 藤田
鈴木 洋司
洋司 鈴木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Application granted granted Critical
Publication of JP5967222B2 publication Critical patent/JP5967222B2/ja
Publication of JPWO2014098114A1 publication Critical patent/JPWO2014098114A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/54Organization of routing tables
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/38Flow based routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W72/00Local resource management
    • H04W72/50Allocation or scheduling criteria for wireless resources
    • H04W72/56Allocation or scheduling criteria for wireless resources based on priority criteria
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

[関連出願についての記載]
本発明は、日本国特許出願:特願2012−276734号(2012年12月19日出願)に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、パケット処理装置、フローエントリの配置方法及びプログラムに関し、特に、複数のフローエントリを保持してパケットを処理するパケット処理装置、フローエントリの配置方法及びプログラムに関する。
非特許文献1、2に、オープンフローという技術が提案されている。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。非特許文献2に仕様化されているオープンフロースイッチは、オープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチ条件(Match Fields)と、フロー統計情報(Counters)と、処理内容を定義したインストラクション(Instructions)と、の組が定義される(非特許文献2の「5.2 Flow Table」の項参照)。
例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチ条件(非特許文献2の「5.3 Matching」参照)を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、フロー統計情報(カウンタ)を更新するとともに、受信パケットに対して、当該エントリのインストラクションフィールドに記述された処理内容(指定ポートからのパケット送信、フラッディング、廃棄等)を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対してエントリ設定の要求、即ち、受信パケットを処理するための制御情報の送信要求(Packet−Inメッセージ)を送信する。オープンフロースイッチは、処理内容が定められたフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを制御情報として用いてパケット転送を行う。
また、特許文献1には、ネットワークから情報を収集する情報蓄積手段と、情報の優先度を判定する優先度判定手段と、情報に対してユーザの興味に応じた重要度を判定する重要度判定手段と、ユーザの興味を示す情報を管理する興味情報管理手段と、優先度に応じて情報の出力・蓄積を判定する優先度比較手段と、情報を重要度の高い順に並び替える並び替え手段と、前記情報を重要度に応じた詳細度に変換する詳細度決定手段と、簡約化した情報を生成する簡約手段と、蓄積された情報の整理を行う履歴管理手段と、収集された情報の蓄積をする情報蓄積手段と、出力している情報の優先度を記録する優先度監視手段と、端末に蓄積された情報の出力およびネットワークからの情報の収集のタイミングを制御する提示タイミング制御手段とを備え、ネットワークから収集した情報を適切なタイミングと分量で提示するという情報提示装置が開示されている。
また、特許文献2には、ATMスイッチング装置に記憶されているATMセルをそのセルが持っているデッドラインによって管理しつつ送信させるためのバッファ制御用シフトレジスタ(優先処理機能を有するシフトレジスタ)が開示されている。
特開平9−81099号公報 特開平7−254906号公報
Nick McKeownほか7名、"OpenFlow: Enabling Innovation in Campus Networks"、[online]、[平成24(2012)年11月24日検索]、インターネット〈URL:http://www.openflow.org/documents/openflow-wp-latest.pdf〉 "OpenFlow Switch Specification" Version 1.3.1 (Wire Protocol 0x04)、[online]、[平成24(2012)年12月11日検索]、インターネット〈URL: https://www.opennetworking.org/images/stories/downloads/specification/openflow-spec-v1.3.1.pdf〉
以下の分析は、本発明によって与えられたものである。非特許文献1、2のオープンフロースイッチにおいて、フローエントリを優先度順に並べて保持し、フローエントリの検索を高速化するものが知られている。
上記機能を持つオープンフロースイッチは、オープンフローコントローラから、新しいフローエントリを受け取ると、次のように、フローテーブルに格納する。オープンフロースイッチは、まず、既存のフローエントリの優先度と、新規フローエントリの優先度とを比較する。前記比較の結果、オープンフロースイッチは、新規フローエントリと優先度が最も近い高優先度側のフローエントリと、低優先度側のフローエントリと、を検出する。そして、オープンフロースイッチは、これら2つのフローエントリの登録場所を算出し、新規フローエントリをその中間位置に格納する。
このとき、フローテーブルの前記2つのフローエントリが連続して格納されていて、中間位置に空き領域が無い場合がある。この場合、オープンフロースイッチは、前記格納位置に最も近い空き領域を探し、所定エントリ数分既存フローエントリの格納位置をシフトさせる処理を行っている。このときのシフト量は、例えば、シフト先の空き領域のサイズに応じて決定している。
このため、新規フローエントリの優先度が特定の値に偏った場合、フローテーブル内のフローエントリの並び替えの頻度が多くなるという問題点がある。また、新規フローエントリの優先度によっては、1回のフローエントリ登録に伴うフローエントリのシフトによる並び替えが多量になり、並び替えのための処理時間が大きくなり、新規フローエントリの登録に要する時間が長くなるという問題点もある。
本発明は、上記したオープンフロースイッチに代表されるフローエントリを優先度順に並べて保持するパケット処理装置における新規フローエントリの登録時の並び替えコストの低減に貢献できるパケット処理装置、フローエントリの配置方法及びプログラムを提供することを目的とする。
第1の視点によれば、優先度グループの順に割り当てられた領域にフローエントリを格納可能なフローテーブルと、所定の制御装置から新規フローエントリを受信した場合、前記新規フローエントリが、前記複数の優先度グループのうちのどの優先度グループに属するかと、前記優先度グループ内の位置を決定する第2レベルの優先度と、により前記フローテーブルへの格納位置を決定するエントリ管理部と、前記フローテーブルの先頭から走査して、受信パケットに適合するマッチ条件を持つエントリを検索して、前記受信パケットに適用する処理を決定するエントリ検索部と、を備えたパケット処理装置が提供される。
第2の視点によれば、優先度グループの順に割り当てられた領域にフローエントリを格納可能なフローテーブルと、前記フローテーブルの先頭から走査して、受信パケットに適合するマッチ条件を持つエントリを検索して、前記受信パケットに適用する処理を決定するエントリ検索部と、を備えてパケット処理装置における新規フローエントリの配置方法であって、所定の制御装置から新規フローエントリを受信した場合、前記新規フローエントリに含まれる優先度情報に基づいて、前記新規フローエントリが属する優先度グループを判別するステップと、前記新規フローエントリに含まれる優先度情報に基づいて、前記判別した優先度グループ内の位置を決定する第2レベルの優先度を判別するステップと、前記フローテーブルの、前記優先度グループと前記第2レベルの優先度に対応する領域に前記新規フローエントリを格納するステップと、を含むフローエントリの配置方法が提供される。本方法は、フローエントリを優先度順に並べて保持してパケットを処理するパケット処理装置という、特定の機械に結びつけられている。
第3の視点によれば、優先度グループの順に割り当てられた領域にフローエントリを格納可能なフローテーブルと、前記フローテーブルの先頭から走査して、受信パケットに適合するマッチ条件を持つエントリを検索して、前記受信パケットに適用する処理を決定するエントリ検索部と、を備えてパケット処理装置に搭載されたコンピュータに、所定の制御装置から新規フローエントリを受信した場合、前記新規フローエントリに含まれる優先度情報に基づいて、前記新規フローエントリが属する優先度グループを判別する処理と、前記新規フローエントリに含まれる優先度情報に基づいて、前記判別した優先度グループ内の位置を決定する第2レベルの優先度を判別する処理と、前記フローテーブルの、前記優先度グループと前記第2レベルの優先度に対応する領域に前記新規フローエントリを格納する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な(非トランジエントな)記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
本発明によれば、フローエントリを優先度順に並べて保持するパケット処理装置における新規フローエントリの登録時の並び替えコストを低減することが可能となる。
本発明の第1の実施形態のパケット処理装置の構成を示す図である。 本発明の第1の実施形態のパケット処理装置の詳細構成を示す図である。 本発明の第1の実施形態のパケット処理装置のエントリ検索部に保持されるフローテーブルの一例を示す図である。 本発明の第1の実施形態のパケット処理装置のエントリ管理部に保持されるエントリ管理テーブルの一例を示す図である。 図3のエントリ管理テーブルと図4のフローテーブルとの対応関係を示す図である。 本発明の第1の実施形態の動作を表したシーケンス図である。 図5に示す状態において、新たに新規フローエントリFを受信した場合の各テーブルの変化(シフト不要)を表した図である。 図6のステップS003においてエントリのシフト処理が必要と判断した場合の動作を表したシーケンス図である。 図7に示す状態において、新たに新規フローエントリGを受信した場合の各テーブルの変化(シフト要)を表した図である。 図9の続図である。 図10の続図である。
はじめに本発明の一実施形態の概要について図面を参照して説明する。なお、この概要に付記した図面参照符号は、理解を助けるための一例として各要素に便宜上付記したものであり、本発明を図示の態様に限定することを意図するものではない。
本発明は、その一実施形態において、エントリ管理部(図1の22)と、フローテーブル(図1の211)を先頭から走査して、受信パケットに適合するマッチ条件を持つエントリを検索し、前記受信パケットに適用する処理を決定するエントリ検索部(図1の21)と、を備えたパケット処理装置にて実現できる。
より具体的には、フローテーブル(図1の211)は、優先度グループの順に割り当てられた領域にフローエントリを格納可能となっている。そして、エントリ管理部(図1の22)は、所定の制御装置(図1の10)から新規フローエントリを受信した場合、新規フローエントリが、前記複数の優先度グループのうちのどの優先度グループに属するかと、前記優先度グループ内の位置を決定する第2レベルの優先度により前記フローテーブルへの格納位置を決定する。
前述のように、フローテーブル(図1の211)は、優先度グループの順に領域が割り当てられているため、新規フローエントリが属する優先度の領域に空き領域が存在すれば、優先度に基づく並び替えは不要となる。また、新規フローエントリが属する優先度グループの該当位置に空き領域が存在しない場合であっても、最寄りの空き領域を探してフローエントリをずらす(シフトさせる)処理を行えばよく、新規フローエントリの登録時の並び替えコストを低減することができる。
[第1の実施形態]
図1は、本発明の第1の実施形態のパケット処理装置の構成を示す図である。図1を参照すると、パケット処理装置20に対してフローテーブル211へのフローエントリの設定を指示するフローエントリ設定メッセージを送信する制御装置10と、前記制御装置10から受信したフローエントリを参照して、他のパケット処理装置、端末、サーバ等から受信したパケットを処理するパケット処理装置20とを含む構成が示されている。
制御装置10は、パケット処理装置20からフローエントリの設定要求や予め定めた通信ポリシに従って、パケット処理装置20に設定するフローエントリを作成し、パケット処理装置20に対してフローエントリ設定メッセージを送信する。なお、フローエントリとしては、パケットヘッダと照合するマッチ条件(Match Fields)と、処理内容を定義したインストラクション(Instructions)と、を対応付けたものを用いることができる。なお、このような制御装置10としては、非特許文献1、2のオープンフローコントローラを用いることができる。
パケット処理装置20は、フローテーブル211から受信パケットに適合するマッチ条件を持つフローエントリを検索するエントリ検索部21と、フローテーブル211におけるフローエントリの配置等を管理するエントリ管理部22とを備えている。このような制御装置10としては、非特許文献1、2のオープンスイッチと同等の機能を有する物理スイッチのほか、仮想化サーバ上で動作する仮想スイッチ、あるいは、ユーザ端末上で動作して上位アプリケーションからのパケットを処理するソフトウェアスイッチ等が挙げられる。
図2は、上記パケット処理装置の詳細構成を示す図である。図2の例では、フローテーブル211は、優先度が高い順に、N個のフローエントリを格納可能となっている。エントリ検索部21は、他のパケット処理装置、端末、サーバ等からパケットを受信すると、フローテーブル211のうち優先度の最も高いエントリ1から順番に、受信パケットのヘッダ等と、フローエントリのマッチ条件とを照合してゆく。前記照合の結果、図2のエントリXで受信パケットとマッチ条件が一致した場合、エントリ検索部21は、前記マッチ条件が一致したフローエントリのインストラクション(Instructions)に記述された処理内容(受信パケットの転送、ヘッダ書換え等)を実行する。また、前記のように受信パケットに適合するフローエントリが見つかった場合(図2の「条件一致」)、エントリ検索部21は、エントリX以降のフローエントリとの照合を省略する(図2の「検索省略」)。
図3は、フローテーブル211の一例を示す図である。本実施形態のフローテーブル211には、優先度グループの順に複数の領域が割り当てられ、優先度グループ順にフローエントリを格納可能となっている。また、同一の優先度グループ内に属するフローエントリ同士のグループ内優先度(第2レベルの優先度)の高低は、個々の優先度グループに割り当てられた領域内での格納位置(本実施形態の場合、優先度が高いほど上位に格納される)にて表される。例えば、図3のエントリ1、エントリ2は、共に既存フローエントリの中では最も優先順位の高い優先度グループ=2に属しており、エントリ1の方がエントリ2よりもグループ内優先度(第2レベルの優先度)が高いため、エントリ1、エントリ2の順にフローエントリが設定されている。同様に、図3のエントリ(N−1)、エントリNは、共に既存フローエントリの中では最も優先順位の低い優先度グループ=8に属しており、エントリ(N−1)の方がエントリNよりもグループ内優先度(第2レベルの優先度)が高いため、エントリ(N−1)、エントリNの順にフローエントリが設定されている。なお、図3において「:」が記されている領域は空きエントリであるものとする。
また、フローテーブル211の各優先度グループに割り当てるフローエントリ格納用の領域の数は、事前に決めていてもよいし、運用中に動的に変更してもよい。これにより、フローテーブル211の各優先度グループの空きエントリの数が容易に把握できるようになる。
エントリ管理部22は、フローテーブル211に設定されているフローエントリの内容や位置を管理するエントリ管理テーブル222と、前記エントリ管理テーブル222に基づいて、フローテーブル211への書込み要求等の操作を行うエントリ設定部221とを備えている。
図4は、エントリ管理テーブル222の一例を示す図である。図4を参照すると、フローテーブル211に格納された個々のフローエントリについて、優先度グループ、グループ内優先度(第2レベルの優先度)、フローエントリの内容と、エントリ番号とを対応付けたエントリが示されている。例えば、エントリ管理テーブル222のNo.1のエントリは、図3のフローテーブル211のエントリ(N−1)の格納位置(優先度)とフローエントリの内容とを対応付けた内容となっている。
図5は、図3のフローテーブル211と図4のエントリ管理テーブル222との対応関係を示す図である。エントリ設定部221は、制御装置10から新規フローエントリ設定メッセージを受信すると、その内容から優先度グループ及びグループ内優先度を求め、エントリ管理テーブル222に登録し、フローテーブル211の優先度グループ及びグループ内優先度によって特定される位置に、フローエントリを登録する。また、エントリ設定部221は、制御装置10からフローエントリ削除指示メッセージを受信すると、エントリ管理テーブル222を参照して、フローテーブル211の該当フローエントリを削除した後、エントリ管理テーブル222の前記削除したフローエントリに対応するエントリを削除する。
なお、新規フローエントリを登録する場合において、例えば図3のエントリ1とエントリ2の間、エントリ(N−1)とエントリNとの間のように、フローテーブル211において、優先度グループ及びグループ内優先度によって特定される位置に空きが無い場合が起こりうる。この場合、エントリ設定部221は、最寄りの空き領域を探してフローエントリをシフトさせて、当該新規フローエントリを格納する領域を確保する。例えば、制御装置10から、図3のエントリ1とエントリ2の間に格納すべきフローエントリを受け取った場合、エントリ設定部221は、エントリ2を一段下にずらし、これまでエントリ2が格納されていた場所に、新規フローエントリを格納する。
なお、図1、2に示したパケット処理装置20のエントリ検索部22は、パケット処理装置20を構成するコンピュータに、そのハードウェアを用いて、上記したエントリ管理テーブル222と連動したフローテーブル211の操作処理を実行させるコンピュータプログラムにより実現することもできる。
続いて、本実施形態の動作について図面を参照して詳細に説明する。図6は、本発明の第1の実施形態の動作を表したシーケンス図である。制御装置10が、パケット処理装置20からフローエントリの設定要求や予め定めた通信ポリシに従って、パケット処理装置20に設定するフローエントリを作成し、パケット処理装置20に対してフローエントリ設定メッセージを送信する(ステップS001)。
新規フローエントリ設定メッセージを受信すると、パケット処理装置20は、新規フローエントリが属する優先度グループと、グループ内の優先度(第2レベルの優先度)を特定する(ステップS002)。優先度グループ及びグループ内の優先度の特定方法としては種々の方法が考えられるが、例えば、制御装置10からの新規フローエントリ設定メッセージにて指定された優先度情報の上位ビットを優先度グループの特定に用い、下位ビットをグループ内の優先度の特定に用いることができる。
次に、パケット処理装置20は、前記特定した優先度グループとグループ内の優先度に対応するフローテーブル211の位置に空きがあるか否か、即ち、既存エントリのシフト操作が必要か否かを確認する(ステップS003)。
前記確認の結果、前記特定した優先度グループとグループ内の優先度に対応するフローテーブル211の位置に空きがある、即ち、既存エントリのシフト操作を行わなくとも、新規フローエントリを格納可能である場合(ステップS003のNo)、パケット処理装置20は、フローテーブル211の該当位置に新規フローエントリを登録し(ステップS004、S005)、エントリ管理テーブル222の該当エントリのエントリ番号欄にフローテーブル211上の位置(エントリ番号)を記録する(ステップS006)。
図7は、図5に示す状態において、新たにグループ優先度“4”、グループ内優先度“2”を持つ新規フローエントリFを受信した場合の各テーブルの変化を表した図である。パケット処理装置20は、フローテーブル211のグループ優先度“4”、グループ内優先度“2”に対応する位置に空き領域があるか否かを確認する。図5の時点では、フローテーブル211のグループ優先度“4”、グループ内優先度“2”に対応する位置は空いているので、パケット処理装置20は、フローテーブル211の上から(X−1)番目の領域にフローエントリFを登録する。また、パケット処理装置20は、エントリ管理テーブル222のフローエントリFのエントリ番号として(X−1)を登録する。
図8は、図6のステップS003の確認の結果、特定した優先度グループとグループ内の優先度に対応するフローテーブル211の位置に空きがない、即ち、既存エントリのシフト操作が必要であると判定した場合(ステップS003のYes)の動作を示すシーケンス図である。この場合、パケット処理装置20は、フローテーブル211の該当位置に最も近い同一優先度グループの空き領域を検索する(ステップS101)。前記検索の結果、同一優先度グループの空き領域が見つからなかった場合、パケット処理装置20は、フローエントリ設定メッセージを破棄し、制御装置10に対し、エラーを返す(ステップS103)。制御装置10は、前記エラー応答を受けて、フローテーブル211からの不要なフローエントリの削除等を検討することになる。
一方、前記検索の結果、同一優先度グループの空き領域が見つかった場合、パケット処理装置20は、前記特定した優先度グループとグループ内の優先度に対応する位置を起点として、前記空き領域の方向に、同一の優先度グループに属するフローエントリをずらして空き領域を作成する(ステップS104)。その後、パケット処理装置20は、図6のステップS004以下に戻って、フローテーブル211への新規フローエントリの登録、エントリ管理テーブル222の更新を実行する。
図9は、図7に示す状態において、新たにグループ優先度“2”、グループ内優先度“4”を持つ新規フローエントリGを受信した場合の各テーブルの変化を表した図である。パケット処理装置20は、フローテーブル211のグループ優先度“2”、グループ内優先度“4”に対応する位置に空き領域があるか否かを確認する。図7の時点では、グループ優先度“2”に属するエントリ1(グループ内優先度“2”)、 エントリ2(グループ内優先度“6”)が連続して格納されており、グループ内優先度“4”フローテーブル211のグループ優先度“2”、グループ内優先度“4”に対応する位置は空いていない。
そこで、パケット処理装置20は、図10に示すように、フローテーブル211のエントリ2の後に空き領域があることを検出し、エントリ2の格納位置を一つ下にずらすシフト処理を実行する。また、これに併せて、パケット処理装置20は、エントリ管理テーブル222の従来エントリ番号2であったエントリのエントリ番号を「3」に修正する。なお、ここでのシフト操作としては、新規フローエントリの分だけ、即ち1つだけシフトさせてもよいし、将来の利用を見越して複数の領域を空けるようシフトさせてもよい。
前記シフト処理によって空き領域が確保できると、パケット処理装置20は、図11に示すように、フローテーブル211のエントリ番号2として、新規フローエントリG(新エントリ2)を登録する。また、パケット処理装置20は、エントリ管理テーブル222の新規フローエントリGのエントリ番号欄に「2」に記録する。
以上の説明から明らかなように、本実施形態によれば、優先度順にフローエントリを並べることによるマッチング処理の高速性と、新規フローエントリの登録時の並び替えコストの低減とを両立することができる。
以上、本発明の各実施形態を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。例えば、各図面に示したネットワーク構成や要素の構成は、本発明の理解を助けるための一例であり、これらの図面に示した構成に限定されるものではない。
例えば、上記した実施形態では、制御装置10からの新規フローエントリ設定メッセージにて指定された優先度情報の下位ビットをグループ内の優先度として用いるものとして説明したが、制御装置10からのフローエントリ設定メッセージの到着順序をグループ内優先度(第2レベルの優先度)として用いることもできる。このようにすることで、フローエントリのシフト処理の発生頻度をより抑えることが可能になる。
また、上記した実施形態では、新規フローエントリを格納する同一優先度グループの空き領域が見つからなかった場合、パケット処理装置20は、フローエントリ設定メッセージを破棄し、制御装置10に対し、エラーを返すものとして説明したが、以下のような変形実施を行うこともできる。
(1)フローテーブル211の他の優先度グループに空きが有る場合は、当該空き領域に新規フローエントリを登録する。併せてフローテーブル211の該当優先度グループに割り当てられた領域に、前記新規フローエントリを登録した領域を追加する(空き領域のあった他の優先度グループに割り当てられた領域から、前記前記新規フローエントリを登録した領域を削除する)。また、この場合において、空き領域のある優先度グループが複数ある場合、最も優先度の低い優先度グループや最も優先度の近い優先度グループを選択することができる。なお、この場合において、特定の優先度グループへの領域の割り当てが集中しないよう、該当優先度グループのフローエントリを削除したタイミングで、空き領域の割り当てを元の優先度グループに戻してもよい。
(2)フローテーブル211のすべての優先度グループに空きがない場合は、所定の基準で選択したフローエントリを削除し、制御装置10に対して報告する。なお、前記所定の基準としては、優先度グループ及びグループ内優先度が低いもの、最も最近使われなかったもの(Least Recently Used)等の基準により削除対象のフローエントリを選択することができる。
(3)また、フローエントリ211のいくつかの領域を、初期状態においていずれの優先度グループにも属さない共用領域として確保しておいてもよい。このようにすれば、フローテーブル211の領域をより効率よく利用できる。
最後に、本発明の好ましい形態を要約する。
[第1の形態]
(上記第1の視点によるパケット処理装置参照)
[第2の形態]
第1の形態のパケット処理装置において、
前記第2レベルの優先度によって決定される位置に空きが無い場合、前記エントリ管理部は、前記第2レベルの優先度によって決定される位置を起点として、同一優先度のグループの最寄の空き領域の方向に、前記新規フローエントリと同一の優先度グループに属するフローエントリをずらして前記新規フローエントリを格納するパケット処理装置。
[第3の形態]
第1又は第2の形態のパケット処理装置において、
前記エントリ管理部は、前記フローテーブルのエントリと1対1に対応する管理用エントリを持つエントリ管理テーブルを用いて、前記フローテーブルに設定したフローエントリを管理するパケット処理装置。
[第4の形態]
第1の形態のパケット処理装置において、
前記第2のレベルの優先度として、前記所定の制御装置から新規フローエントリを受信した順序を用いるパケット処理装置。
[第5の形態]
第1から第4いずれか一の形態のパケット処理装置において、
前記エントリ管理部は、新規フローエントリを受信した際に、前記フローテーブルに、前記新規フローエントリが属する優先度グループの空き領域が無い場合、前記新規フローエントリが属する優先度グループよりも下位の優先度グループの空き領域に前記新規フローエントリを格納するパケット処理装置。
[第6の形態]
第5の形態のパケット処理装置において、
前記第2のレベルの優先度に対応する前記新規フローエントリが属する優先度グループのグループ内の位置の空き領域が無い場合、前記新規フローエントリを格納する優先度グループとして、空き領域を有する優先度グループのうち優先度が最も下位の優先度グループの空き領域に前記新規フローエントリを格納するパケット処理装置。
[第7の形態]
(上記第2の視点によるフローエントリの配置方法参照)
[第8の形態]
(上記第3の視点によるプログラム参照)
なお、上記第7、第8の形態は、第1の形態と同様に、第2〜第6の形態に展開することが可能である。
なお、上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施形態ないし実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ、ないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
10 制御装置
20 パケット処理装置
21 エントリ検索部
22 エントリ管理部
211 フローテーブル
221 エントリ設定部
222 エントリ管理テーブル

Claims (8)

  1. 優先度グループの順に割り当てられた領域にフローエントリを格納可能なフローテーブルと、
    所定の制御装置から新規フローエントリを受信した場合、前記新規フローエントリが、前記複数の優先度グループのうちのどの優先度グループに属するかと、前記優先度グループ内の位置を決定する第2レベルの優先度と、により前記フローテーブルへの格納位置を決定するエントリ管理部と、
    前記フローテーブルの先頭から走査して、受信パケットに適合するマッチ条件を持つエントリを検索して、前記受信パケットに適用する処理を決定するエントリ検索部と、
    を備えたパケット処理装置。
  2. 前記第2レベルの優先度によって決定される位置に空きが無い場合、前記エントリ管理部は、前記第2レベルの優先度によって決定される位置を起点として、同一優先度のグループの最寄の空き領域の方向に、前記新規フローエントリと同一の優先度グループに属するフローエントリをずらして前記新規フローエントリを格納する請求項1のパケット処理装置。
  3. 前記エントリ管理部は、前記フローテーブルのエントリと1対1に対応する管理用エントリを持つエントリ管理テーブルを用いて、前記フローテーブルに設定したフローエントリを管理する請求項1又は2のパケット処理装置。
  4. 前記第2のレベルの優先度として、前記所定の制御装置から新規フローエントリを受信した順序を用いる請求項1のパケット処理装置。
  5. 前記エントリ管理部は、新規フローエントリを受信した際に、前記フローテーブルに、前記新規フローエントリが属する優先度グループの空き領域が無い場合、前記新規フローエントリが属する優先度グループよりも下位の優先度グループの空き領域に前記新規フローエントリを格納する請求項1から4いずれか一のパケット処理装置。
  6. 前記第2のレベルの優先度に対応する前記新規フローエントリが属する優先度グループのグループ内の位置の空き領域が無い場合、前記新規フローエントリを格納する優先度グループとして、空き領域を有する優先度グループのうち優先度が最も下位の優先度グループの空き領域に前記新規フローエントリを格納する請求項5のパケット処理装置。
  7. 優先度グループの順に割り当てられた領域にフローエントリを格納可能なフローテーブルと、前記フローテーブルの先頭から走査して、受信パケットに適合するマッチ条件を持つエントリを検索して、前記受信パケットに適用する処理を決定するエントリ検索部と、を備えてパケット処理装置における新規フローエントリの配置方法であって、
    所定の制御装置から新規フローエントリを受信した場合、前記新規フローエントリに含まれる優先度情報に基づいて、前記新規フローエントリが属する優先度グループを判別するステップと、
    前記新規フローエントリに含まれる優先度情報に基づいて、前記判別した優先度グループ内の位置を決定する第2レベルの優先度を判別するステップと、
    前記フローテーブルの、前記優先度グループと前記第2レベルの優先度に対応する領域に前記新規フローエントリを格納するステップと、を含むフローエントリの配置方法。
  8. 優先度グループの順に割り当てられた領域にフローエントリを格納可能なフローテーブルと、前記フローテーブルの先頭から走査して、受信パケットに適合するマッチ条件を持つエントリを検索して、前記受信パケットに適用する処理を決定するエントリ検索部と、を備えてパケット処理装置に搭載されたコンピュータに、
    所定の制御装置から新規フローエントリを受信した場合、前記新規フローエントリに含まれる優先度情報に基づいて、前記新規フローエントリが属する優先度グループを判別する処理と、
    前記新規フローエントリに含まれる優先度情報に基づいて、前記判別した優先度グループ内の位置を決定する第2レベルの優先度を判別する処理と、
    前記フローテーブルの、前記優先度グループと前記第2レベルの優先度に対応する領域に前記新規フローエントリを格納する処理と、を実行させるプログラム。
JP2014553172A 2012-12-19 2013-12-18 パケット処理装置、フローエントリの配置方法及びプログラム Active JP5967222B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012276734 2012-12-19
JP2012276734 2012-12-19
PCT/JP2013/083857 WO2014098114A1 (ja) 2012-12-19 2013-12-18 パケット処理装置、フローエントリの配置方法及びプログラム

Publications (2)

Publication Number Publication Date
JP5967222B2 true JP5967222B2 (ja) 2016-08-10
JPWO2014098114A1 JPWO2014098114A1 (ja) 2017-01-12

Family

ID=50978439

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014553172A Active JP5967222B2 (ja) 2012-12-19 2013-12-18 パケット処理装置、フローエントリの配置方法及びプログラム

Country Status (9)

Country Link
US (1) US9876716B2 (ja)
EP (1) EP2938029B1 (ja)
JP (1) JP5967222B2 (ja)
KR (1) KR101746316B1 (ja)
CN (1) CN104871501A (ja)
BR (1) BR112015014211A2 (ja)
CA (1) CA2895688A1 (ja)
RU (1) RU2628477C2 (ja)
WO (1) WO2014098114A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014084250A1 (ja) * 2012-11-28 2014-06-05 日本電気株式会社 スイッチ装置、vlan設定管理方法及びプログラム
US9692684B2 (en) * 2014-09-05 2017-06-27 Telefonaktiebolaget L M Ericsson (Publ) Forwarding table precedence in SDN
CN104283805B (zh) * 2014-10-27 2017-11-10 新华三技术有限公司 一种sdn网络报文发送方法及设备
US10003529B2 (en) * 2015-08-04 2018-06-19 Telefonaktiebolaget Lm Ericsson (Publ) Method and system for memory allocation in a software-defined networking (SDN) system
WO2017167385A1 (en) * 2016-03-31 2017-10-05 Nec Europe Ltd. Software-enhanced stateful switching architecture
TWI626837B (zh) * 2016-12-01 2018-06-11 財團法人工業技術研究院 封包傳遞方法、封包傳遞裝置及非暫態電腦可讀取媒體
US11632332B2 (en) * 2018-06-07 2023-04-18 Vmware, Inc. Packet classification with multiple classifiers
WO2021181541A1 (ja) 2020-03-10 2021-09-16 三菱電機株式会社 コントローラ、ネットワークシステムおよびフロー管理方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011083786A1 (ja) * 2010-01-06 2011-07-14 日本電気株式会社 通信制御システム、及び通信制御方法
WO2012032864A1 (ja) * 2010-09-08 2012-03-15 日本電気株式会社 スイッチシステム、スイッチ制御方法、及び記憶媒体

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07254906A (ja) 1994-03-16 1995-10-03 Mitsubishi Electric Corp 優先処理機能を有するシフトレジスタ、それを用いたパケット通信用スイッチング装置及びそれを用いたatmネットワーク並びに優先処理を伴うパケット通信方式及び優先処理を伴うatm通信方式
JP2783212B2 (ja) 1995-09-08 1998-08-06 日本電気株式会社 情報提示装置
JP3449326B2 (ja) * 1999-12-08 2003-09-22 日本電気株式会社 データ検索システム及びパケット処理装置並びに制御方法
US7089240B2 (en) * 2000-04-06 2006-08-08 International Business Machines Corporation Longest prefix match lookup using hash function
JP3591420B2 (ja) * 2000-04-07 2004-11-17 日本電気株式会社 ルータにおけるキャッシュテーブル管理装置およびプログラム記録媒体
JP2002185513A (ja) * 2000-12-18 2002-06-28 Hitachi Ltd パケット通信ネットワークおよびパケット転送制御方法
JP3936883B2 (ja) * 2002-04-08 2007-06-27 株式会社日立製作所 フロー検出装置およびフロー検出機能を備えたパケット転送装置
AU2003260876A1 (en) 2002-09-26 2004-04-19 Koninklijke Philips Electronics N.V. Multiple stream readout
US20040151197A1 (en) * 2002-10-21 2004-08-05 Hui Ronald Chi-Chun Priority queue architecture for supporting per flow queuing and multiple ports
EP2562980A1 (en) * 2003-01-24 2013-02-27 Coco Communications Corp. Method and apparatus for secure communications and resource sharing between anonymous non-trusting parties with no central administration
US7418505B2 (en) * 2003-05-26 2008-08-26 Ewha University Industry Collaboration Foundation IP address lookup using either a hashing table or multiple hash functions
US7787471B2 (en) * 2003-11-10 2010-08-31 Broadcom Corporation Field processor for a network device
JP4336625B2 (ja) * 2004-06-17 2009-09-30 株式会社日立製作所 パケット転送装置
KR100612256B1 (ko) * 2005-01-14 2006-08-14 삼성전자주식회사 터너리 내용 주소화 메모리 관리 장치 및 그 방법
JP4556761B2 (ja) * 2005-05-06 2010-10-06 株式会社日立製作所 パケット転送装置
RU2429537C2 (ru) * 2005-08-01 2011-09-20 Вольт Информейшн Сайенсиз Инк. Система и способ управления выполняемым сторонними исполнителями предоставлением услуг по соглашению об уровне обслуживания
US7606968B2 (en) * 2006-05-08 2009-10-20 Mcdata Corporation Multi-level content addressable memory
JP2009239401A (ja) * 2008-03-26 2009-10-15 Alaxala Networks Corp パケット転送装置
US20100064072A1 (en) * 2008-09-09 2010-03-11 Emulex Design & Manufacturing Corporation Dynamically Adjustable Arbitration Scheme
EP2395712A4 (en) * 2009-02-03 2012-07-04 Nec Corp APPLICATION SWITCHING SYSTEM AND APPLICATION SWITCHING METHOD
WO2011043363A1 (ja) 2009-10-07 2011-04-14 日本電気株式会社 通信システムの制御装置、制御方法及びプログラム
US8677030B2 (en) * 2009-12-09 2014-03-18 Oracle America, Inc. Apparatus and method for managing packet classification tables
US20110145255A1 (en) * 2009-12-11 2011-06-16 Sap Ag. Systems and methods for distribution of data in a database index
JP5720668B2 (ja) * 2010-02-16 2015-05-20 日本電気株式会社 パケット転送装置、通信システム、処理規則の更新方法およびプログラム
CN102263664A (zh) * 2011-08-11 2011-11-30 北京星网锐捷网络技术有限公司 一种会话流处理方法及装置
KR101887581B1 (ko) * 2011-12-26 2018-08-14 한국전자통신연구원 플로우 기반의 패킷 전송 장치 및 그것의 패킷 처리 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011083786A1 (ja) * 2010-01-06 2011-07-14 日本電気株式会社 通信制御システム、及び通信制御方法
WO2012032864A1 (ja) * 2010-09-08 2012-03-15 日本電気株式会社 スイッチシステム、スイッチ制御方法、及び記憶媒体

Also Published As

Publication number Publication date
EP2938029A1 (en) 2015-10-28
EP2938029A4 (en) 2016-08-10
BR112015014211A2 (pt) 2017-07-11
CA2895688A1 (en) 2014-06-26
WO2014098114A1 (ja) 2014-06-26
CN104871501A (zh) 2015-08-26
KR20150097663A (ko) 2015-08-26
RU2628477C2 (ru) 2017-08-17
US20150326477A1 (en) 2015-11-12
EP2938029B1 (en) 2019-03-27
RU2015129507A (ru) 2017-01-26
KR101746316B1 (ko) 2017-06-12
JPWO2014098114A1 (ja) 2017-01-12
US9876716B2 (en) 2018-01-23

Similar Documents

Publication Publication Date Title
JP5967222B2 (ja) パケット処理装置、フローエントリの配置方法及びプログラム
RU2598815C2 (ru) Система связи, устройство управления, способ связи и программа
CN102783097B (zh) 分组转发系统、控制设备、转发设备以及用于准备处理规则的方法
JP5800019B2 (ja) 通信経路制御システム、経路制御装置、通信経路制御方法および経路制御プログラム
JP5534036B2 (ja) 情報システム、制御装置、通信方法およびプログラム
KR101577926B1 (ko) 통신 노드, 패킷 처리 방법 및 프로그램
JPWO2014112616A1 (ja) 制御装置、通信装置、通信システム、スイッチの制御方法及びプログラム
JPWO2014061583A1 (ja) 通信ノード、制御装置、通信システム、パケット処理方法及びプログラム
JP5747997B2 (ja) 制御装置、通信システム、仮想ネットワークの管理方法およびプログラム
WO2014061587A1 (ja) 制御装置、ノード、通信システム、通信方法及びプログラム
JPWO2014010723A1 (ja) スイッチ、通信システム、スイッチ制御方法及びプログラム
WO2014157460A1 (ja) 通信システム、制御装置、情報収集方法およびプログラム
JP2008085886A (ja) パケット処理装置、パケット処理方法及びパケット処理プログラム
US9860178B2 (en) Control message relay apparatus, control message relay method, and program
JP4769316B2 (ja) パケットキューイング装置およびパケットキューイング方法
WO2014038143A1 (en) Flow information collecting system, method and program
RU2675148C1 (ru) Способ организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения
CN120111014A (zh) 数据处理方法及装置、非易失性存储介质、电子设备
JPWO2014010724A1 (ja) 制御装置、通信システム、通信方法及びプログラム
HK1175622A (en) Packet transfer system, control apparatus, transfer apparatus, method of creating processing rules, and program
WO2019050423A1 (ru) Способ организации автоматической балансировки потоков многопоточного соединения на коммутационных устройствах с использованием их самообучения

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160607

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160620

R150 Certificate of patent or registration of utility model

Ref document number: 5967222

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150