JPWO2012105677A1 - パケット処理装置、パケット処理方法およびプログラム - Google Patents

パケット処理装置、パケット処理方法およびプログラム Download PDF

Info

Publication number
JPWO2012105677A1
JPWO2012105677A1 JP2012555968A JP2012555968A JPWO2012105677A1 JP WO2012105677 A1 JPWO2012105677 A1 JP WO2012105677A1 JP 2012555968 A JP2012555968 A JP 2012555968A JP 2012555968 A JP2012555968 A JP 2012555968A JP WO2012105677 A1 JPWO2012105677 A1 JP WO2012105677A1
Authority
JP
Japan
Prior art keywords
packet
rule
target
processing
processor
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.)
Granted
Application number
JP2012555968A
Other languages
English (en)
Other versions
JP5900352B2 (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
Priority to JP2012555968A priority Critical patent/JP5900352B2/ja
Publication of JPWO2012105677A1 publication Critical patent/JPWO2012105677A1/ja
Application granted granted Critical
Publication of JP5900352B2 publication Critical patent/JP5900352B2/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
    • H04L12/00Data switching networks
    • H04L12/64Hybrid switching systems
    • H04L12/6418Hybrid transport
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • H04W12/088Access security using filters or firewalls

Landscapes

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

Abstract

パケット処理装置は、パケットに格納された情報、該パケットに対する第1の処理を示す処理規則、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付けるルールを保持するルールテーブルと、処理すべきパケットである対象パケットに格納された情報に対応するルールを、前記ルールテーブルから抽出するルール抽出部と、抽出されたルールに基づいて、前記対象パケットに対する前記処理規則に従った前記第1の処理の実行と、前記プロセッサ識別子に相当するプロセッサに対する前記第2の処理の依頼とを行うルール適用部と、を備えている。複数のプロセッサを備えたパケット転送装置において、パケットの処理を実行するプロセッサを複数のプロセッサの中から柔軟かつ高速に選択できるようにする。

Description

(関連出願についての記載)
本発明は、日本国特許出願:特願2011−022303号(2011年2月4日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は、パケット処理装置、パケット処理方法およびプログラムに関し、特に、複数のプロセッサを用いてパケットの送受信を行うパケット処理装置、パケット処理方法およびプログラムに関する。
インターネットトラフィックの増加に伴い、それを支えるパケット処理装置の高速化・高性能化が進んでいる。近年、高速なネットワークインタフェースカードの普及が進んでおり、汎用サーバでも当該ネットワークインタフェースカードを使用することで、パケット処理の高速化が可能となっている。一方、プロセッサの高クロック化による高速化は消費電力増大による限界が見えてきたため、マルチコア・マルチプロセッサ化による性能向上が進んでおり、パケット処理装置での対称型マルチプロセッサの利用も一般的になっている。
Linux(登録商標)等の汎用OSを利用してパケット処理装置を実現した場合、高速なネットワークカードを搭載していると、送受信におけるプロセッサ処理がボトルネックとなってしまい、ワイヤレートでの通信が困難になる。仮にマルチコアプロセッサを採用していても、ネットワークインタフェースカードからの割り込み先となった単一のプロセッサ(コア)にパケットの処理が集中することにより、ボトルネックが発生し、十分な負荷分散を行うことができないという問題がある。
この問題を解決するために、特許文献1では、処理すべきパケットのヘッダ情報に基づいて、複数のプロセッサから、そのパケットを処理するプロセッサを一意的に決定している。具体的には、パケットのヘッダの一部のフィールドからハッシュ値を算出し、得られたハッシュ値についてプロセッサ数(コア数)によるモジュロ演算を行い、プロセッサ番号を求めている。そして、求めたプロセッサ番号のプロセッサに、該パケットの処理を行わせる。ここで、プロセッサ数(コア数)によるモジュロ演算を行っているため、当該演算により、プロセッサ番号が一意に求まる。すなわち、ハッシュ値から求めた剰余(すなわち、プロセッサ番号)が異なれば、処理するプロセッサも異なることとなり、パケットの処理を複数のプロセッサ(コア)間で分散することが可能となる。したがって、単一のプロセッサ(コア)による処理がボトルネックとなることなく、負荷分散を実現することができる。
以下、プロセッサおよびプロセッサコアを、「プロセッサ」と総称する。
特表2002―538724号公報
Nick McKeownほか7名,"OpenFlow:Enabling Innovation in Campus Networks,"[online],[平成22年12月17日検索],インターネット〈URL:http://www.openflowswitch.org//documents/openflow−wp−latest.pdf〉. "OpenFlow Switch Specification Version 1.0.0.(Wire Protocol 0x01),"[平成22年12月17日検索],インターネット〈URL:http://www.openflowswitch.org/documents/openflow−spec−v1.0.0.pdf〉.
上記の特許文献および非特許文献の各開示を、本書に引用をもって繰り込むものとする。以下の分析は、本発明者によってなされたものである。
特許文献1に記載のパケット処理装置においては、上記のとおり、パケットのヘッダの一部のフィールドに基づいて、パケットを処理するプロセッサを一意に決定している。そのため、当該ヘッダの一部のフィールドから算出されるハッシュ値が同じであれば、モジュロ演算から求まるプロセッサ番号は常に同一となり、当該パケットを処理するプロセッサが固定されてしまう。したがって、パケットの処理を実行するプロセッサを柔軟に選択することはできないという問題がある。
そこで、複数のプロセッサを備えたパケット転送装置において、パケットの処理を実行するプロセッサを複数のプロセッサの中から柔軟かつ高速に選択できるようにすることが課題となる。本発明の目的は、かかる課題を解決するパケット処理装置、パケット処理方法およびプログラムを提供することにある。
本発明の第1の視点に係るパケット処理装置は、
パケットに格納された情報、該パケットに対する第1の処理を示す処理規則、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付けるルールを保持するルールテーブルと、
処理すべきパケットである対象パケットに格納された情報に対応するルールを、前記ルールテーブルから抽出するルール抽出部と、
抽出されたルールに基づいて、前記対象パケットに対する前記処理規則に従った前記第1の処理の実行と、前記プロセッサ識別子に相当するプロセッサに対する前記第2の処理の依頼とを行うルール適用部と、を備えている。
本発明の第2の視点に係るパケット処理方法は、
複数のプロセッサのうちの一のプロセッサが、パケットに格納された情報、該パケットに対する第1の処理を示す処理規則、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付けるルールを保持するルールテーブルから、処理すべきパケットである対象パケットに格納された情報に対応するルールを抽出する工程と、
前記一のプロセッサが、抽出されたルール基づいて、前記対象パケットに対する前記処理規則に従った前記第1の処理の実行と、前記プロセッサ識別子に相当するプロセッサに対する前記第2の処理の依頼とを行う工程と、を含む。
本発明の第3の視点に係るプログラムは、
パケットに格納された情報、該パケットに対する第1の処理を示す処理規則、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付けるルールを保持するルールテーブルから、処理すべきパケットである対象パケットに格納された情報に対応するルールを抽出する処理と、
抽出されたルールに基づいて、前記対象パケットに対する前記処理規則に従った前記第1の処理の実行と、前記プロセッサ識別子に相当するプロセッサに対する前記第2の処理の依頼とを行う処理と、を複数のプロセッサのうちの一のプロセッサに実行させる。
なお、プログラムは、非トランジエントなコンピュータ読み取り可能記録媒体(non-transient computer-readable storage medium)に記録されたプログラム製品として提供してもよい。
本発明に係るパケット処理装置、パケット処理方法およびプログラムによると、パケットに格納された情報、該パケットに対する第1の処理を示す処理規則、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付けるルールテーブルを備えるため、該ルールテーブルのプロセッサ識別子を設定することにより、パケットの処理を実行するプロセッサを複数のプロセッサの中から柔軟に選択することができる。
また、本発明に係るパケット処理装置およびパケット処理方法によると、該ルールテーブルから抽出した、処理すべきパケットに対応するルールに基づき、該パケットに対する第1の処理の実行と、該パケットを処理するプロセッサの選択とを1つの処理として実行するため、パケットの処理を高速に行うことができる。
本発明に係るパケット処理装置の構成を概略的に示すブロック図である。 第1の実施形態に係るパケット処理装置の構成を示すブロック図である。 第1の実施形態に係るパケット処理装置におけるルールテーブルを示す図である。 第1の実施形態に係るパケット処理装置の動作を示すフローチャートである。 第2の実施形態に係るパケット処理装置の構成を示すブロック図である。 第2の実施形態に係るパケット処理装置におけるルールテーブルを示す図である。 第2の実施形態に係るパケット処理装置による送信処理を示すフローチャートである。 第2の実施形態に係るパケット処理装置による受信処理を示すフローチャートである。 第2の実施形態に係るパケット処理装置による受信処理を示すフローチャートである。 第3の実施形態に係るパケット処理装置の構成を示すブロック図である。 第3の実施形態に係るパケット処理装置におけるルールテーブルを示す図である。 第4の実施形態に係るパケット処理装置の構成を示すブロック図である。 オープンフローのフローテーブルのエントリを示す図である。 オープンフローのアクションを示す図である。
はじめに、本発明の概要について説明する。なお、この概要に付記する図面参照符号は、専ら理解を助けるための例示であり、本発明を図示の態様に限定することを意図するものではない。
図1を参照すると、本発明のパケット処理装置は、パケットに格納された情報、該パケットに対する第1の処理を示す処理規則、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付けるルールを保持するルールテーブル(110)と、処理すべきパケットである対象パケットに格納された情報に適合するルールを、ルールテーブル(110)から抽出するルール抽出部(130)と、抽出されたルールに基づいて、前記対象パケットに対する前記処理規則に従った第1の処理の実行と、前記プロセッサ識別子に相当するプロセッサに対する第2の処理を依頼するルール適用部(140)と、を備えている。
本発明のパケット処理装置は、パケットに対する照合条件とパケットを処理するプロセッサとを関連付けるルールを保持するルールテーブル(110)を備えている。したがって、ルールテーブル(110)のルールに対して、照合条件およびプロセッサの識別子を直接設定することで、パケットを処理するプロセッサを柔軟に選択することができ、特許文献1のように、同一のヘッダ情報を有するパケット群を処理するプロセッサが、所定の演算規則にしたがって一意に固定されることがなくなる。また、本発明のパケット処理装置によると、ユーザはルールテーブル(110)に格納されたルールを書き換えることで、パケットを処理するプロセッサ選択の規則を容易に変更することができる。
さらに、本発明のパケット処理装置におけるルールテーブル(110)のルールは、パケットに格納された情報、該パケットに対する第1の処理を示す処理規則、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付ける。したがって、ルール抽出部(130)によって、対象パケットに対応するルールが抽出されると、パケットに対して実行すべき第1の処理の内容が特定されるのみならず、該パケットに対する第2の処理を実行すべきプロセッサも特定される。したがって、本発明のパケット処理装置によると、パケットに対する処理を示す処理規則をテーブルの参照によって特定し、パケットに対する処理を実行するプロセッサを別途特定する場合と比較して、パケットの処理を高速に行うことができる。
以上より、本発明のパケット処理装置によると、複数のプロセッサを備えたパケット転送装置において、パケットの処理を実行するプロセッサを複数のプロセッサの中から柔軟かつ高速に選択することができる。
なお、本発明において、下記の形態が可能である。
[形態1]
上記第1の視点に係るパケット処理装置のとおりである。
[形態2]
前記第1の処理は、前記対象パケットを破棄すべきか否かを判定する処理であり、
前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には前記対象パケットに対する上位レイヤの処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には前記対象パケットに対する下位レイヤの処理であってもよい。
[形態3]
前記ルール適用部は、前記第1の処理において前記対象パケットが破棄すべきパケットでない場合には、前記対象パケットに対する前記第2の処理を前記プロセッサに依頼するようにしてもよい。
[形態4]
前記ルールテーブルは、パケットに格納された情報、該パケットに対する第1の処理を示す処理規則、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子、および、該パケットを含むフローを定義するフィールドを示すフロー定義フィールドを互いに関連付けるルールを保持し、
前記ルール適用部は、抽出されたルールに複数のプロセッサ識別子が含まれる場合には、前記フロー定義フィールドを参照し、該複数のプロセッサ識別子に相当する複数のプロセッサのうちのいずれかのプロセッサに対して、同一のフローに含まれるすべての対象パケットに対する前記第2の処理を依頼するようにしてもよい。
[形態5]
前記ルール抽出部は、前記ルールテーブルが前記対象パケットに格納された情報に対応するルールを保持していない場合には、前記ルールを設定可能なルール設定装置に該情報に適合するルールを設定するように依頼するようにしてもよい。
[形態6]
前記第1の処理は、前記対象パケットの宛先を判定する処理であり、
前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には前記対象パケットに対する上位レイヤの処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には前記対象パケットに対する下位レイヤの処理であってもよい。
[形態7]
前記ルール適用部は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合において、前記対象パケットの宛先が前記パケット処理装置である場合には、前記対象パケットに対する前記第2の処理を前記プロセッサに依頼するようにしてもよい。
[形態8]
前記ルール抽出部は、抽出したルールを一時的に保持するキャッシュを有し、前記対象パケットに格納された情報に適合するルールを該キャッシュから抽出し、
前記ルール適用部は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合において、前記対象パケットに適合するルールが前記ルール抽出部により前記キャッシュから抽出されたときには、前記対象パケットに対する前記第2の処理を前記プロセッサに依頼するようにしてもよい。
[形態9]
前記第1の処理は、前記対象パケットを送受信する際のトランスポートレイヤにおける制御情報を特定する処理であり、
前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には、特定された制御情報を用いた前記対象パケットに対するレイヤ4の受信処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には、特定された制御情報を用いた前記対象パケットに対するレイヤ4以下の送信処理であってもよい。
[形態10]
前記ルールテーブルは、優先度に応じてソートされた複数のルールを保持し、
前記ルール抽出部は、前記対象パケットに格納された情報に適合する複数のルールが前記ルールテーブルに格納されている場合には、該複数のルールのうちの優先度が高いものを抽出するようにしてもよい。
[形態11]
前記ルールテーブルのルールは、パケットに格納された情報として、送信元アドレス、宛先アドレス、送信元ポート番号、および、宛先ポート番号のうちの少なくともいずれかを含んでいてもよい。
[形態12]
前記ルールテーブルに対して、ルールの追加、変更、または、削除を行うルール設定部をさらに備えていてもよい。
[形態13]
上記第2の視点に係るパケット処理方法のとおりである。
[形態14]
また、パケットに格納された情報、該パケットに対する第1の処理を示す処理規則、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付けるルールを保持するルールテーブルから、処理すべきパケットである対象パケットに格納された情報に対応するルールを抽出する処理と、
抽出されたルールに基づいて、前記対象パケットに対する前記処理規則に従った前記第1の処理の実行と、前記プロセッサ識別子に相当するプロセッサに対する前記第2の処理の依頼とを行う処理と、を複数のプロセッサのうちの一のプロセッサに実行させるプログラムが提供される。
(実施形態1)
第1の実施形態に係るパケット処理装置について、図面を参照して説明する。図2は、本実施形態に係るパケット処理装置の構成を一例として示すブロック図である。図2を参照すると、本実施形態に係るパケット処理装置は、ルールテーブル10、ルール設定部20、ルール抽出部30、ルール適用部40、処理スレッド50、送信受付部60、および、受信受付部70を備えている。
また、本実施形態のパケット処理装置は、複数のプロセッサ(またはプロセッサコア)に対応するOSを搭載しており、ネットワークインタフェースデバイスを介してネットワークと接続し、IPパケットに代表されるパケットの処理および上位レイヤのプロトコル処理をソフトウェア(OSを含む)で行うものである。すなわち、図2に示した構成要素は、それぞれ、ソフトウェアにより実現しうる。ただし、図2の構成要素の一部または全部をハードウェアにより実現してもよい。
ルールテーブル10は、送受信パケットのフィルタリングの規則を記述したフィルタリングルールとプロセッサの割り当て規則を記述したディスパッチルールを保持する。フィルタリングルールおよびディスパッチルールは、単一のテーブルで管理する。
図3は、ルールテーブル10を一例として示す図である。図3を参照すると、ルールテーブル10は、受信・送信ごとに管理される。ルールテーブル10の各行に相当する一つのルールは、少なくとも、照合条件、アクション、および、処理プロセッサ識別子を含む。また、ルールテーブル10の各ルールは、フロー定義フィールドを含んでいてもよい。
照合条件は、パケットのL3レイヤ以上のヘッダのフィールドに関する条件式を表す。例えば、図3の第1行目のルールは、TCPプロトコルであり、宛先ポート番号が80番であるパケットに関するルールであることを表す。照合条件として、図3に示したプロトコル番号およびポート番号のみならず、IPアドレス、AHヘッダ(Authentication Header)、ESP(Encapsulating Security Payload)ヘッダにおけるSPI(Security Parameter Index)値等のさまざまなフィールドに関する条件を記述しうる。
アクションは、送受信パケットに対する第1の処理(第1の処理、基本処理)を示す。アクションには、例えば、パケットの処理を続行するACCEPT、パケットを破棄するDROPが用いられる。また、アクションとして、これら2つの処理以外に、パケットの一部のデータを書き換える処理などを記述してもよい。
処理プロセッサ識別子は、照合条件にマッチ(適合)したパケットの処理を行うプロセッサを表す。処理プロセッサ識別子には、0個以上のプロセッサ識別子を記述することができる。
フロー定義フィールドは、同一のフローか否かを識別するために使用するパケットのヘッダのフィールドを表す。フロー定義フィールドは、処理プロセッサ識別子に複数のプロセッサ識別子が記載されている場合において、同一のフローに属するパケットが同一のプロセッサで処理されるように、処理プロセッサ識別子に記載の中から1つのプロセッサを選択するために用いられる。
ルールテーブル10中のルールは、優先度順に整列して管理することが好ましい。
ルール設定部20は、ルールテーブル10に対してルールの追加、変更、削除等のルールの設定を行う。ルール設定部20は、例えば、ユーザアプリケーションとして動作し、ユーザ/カーネル間のメッセージ通信を行うことで、ルールを設定する。
ルール抽出部30は、送受信パケットに格納された情報とルールテーブル10の照合条件とを照合し、マッチするルールを検索する。ルール抽出部30は、複数のルールがマッチした場合には、例えば、マッチするルールのうちの優先度の最も高いものを検索結果として返す。
ルール適用部40は、基本適用部401およびディスパッチ部402を有する。ルール適用部40は、ルールと送受信パケットを受け取ると、基本適用部401において第1の処理としてフィルタリングルールが適用され、ディスパッチ部402においてディスパッチルールが適用される。一方、フィルタリングルールの適用により処理が中止された場合には、ディスパッチ部402におけるディスパッチルールの適用を行わず、そのパケットの処理を終了する。
基本適用部401は、第1の処理として、ルールにおけるアクションに関する処理を行う。ルールのアクションがDROPである場合には、基本適用部401は、送受信パケットを破棄する。一方、アクションがACCEPTである場合に、ディスパッチ部402は、ルール中の処理プロセッサ識別子に応じて送受信パケットを処理する処理プロセッサを決定し、そのプロセッサに対応する処理スレッド50に対してパケットの処理を依頼する。
処理スレッド50は、プロセッサ毎に用意されるカーネルスレッドであり、パケットに対する第2の処理として、受信パケットのレイヤ3およびレイヤ4の受信処理、送信パケットのレイヤ3およびレイヤ2の送信処理を行う。処理スレッド50は、受信処理部501および送信処理部502を備え、処理キュー(非図示)を保持する。処理キューには、パケットと処理区分(送信/受信)が格納される。処理スレッド50は、処理キューに格納されたパケットを順次取り出し、処理区分が送信の場合には、送信処理部502による送信処理をパケットに対して行う。一方、処理区分が受信の場合には、処理スレッド50は、受信処理部501による受信処理をパケットに対して行う。送信処理部502は、送信パケットに対してレイヤ3およびレイヤ2の送信処理を行い、パケットをネットワークに送出する。一方、受信処理部501は、受信パケットに対して、レイヤ3およびレイヤ4の受信処理を行い、必要に応じてユーザアプリケーションに受信パケットを渡す処理を行う。
送信受付部60は、ユーザアプリケーションまたはカーネル内部からの送信パケットを受け取り、送信パケットをルール抽出部30で照合し、照合結果として得られたルールと送信パケットをルール適用部40に渡す。
受信受付部70は、ネットワークからの受信パケットを受け取り、受信パケットをルール抽出部30で照合し、照合結果として得られたルールと受信パケットをルール適用部40に渡す。
次に、本実施形態に係るパケット処理装置の動作について、図面を参照して説明する。図4は、本実施形態に係るパケット処理装置の動作を一例として示すフローチャートである。
図4を参照すると、ネットワークからパケットが到着すると、受信受付部70に受信パケットが渡される。受信パケットを受け取った受信受付部70は、ルール抽出部30によって受信パケットにマッチするルールをルールテーブル10から検索し(ステップS1)、その結果を受信パケットと共にルール適用部40に渡す。
次に、ルール適用部40は、ルールと受信パケットを受け取ると、基本適用部401が、第1の処理としてアクションを適用する(ステップS2)。ルール中のアクションがDROPである場合には(ステップS3のNo)、基本適用部401は、受信パケットを破棄し(ステップS4)、その受信パケットの処理を完了する。
一方、アクションがACCEPTである場合には(ステップS3のYes)、ディスパッチ部402は、ルールの処理プロセッサ識別子に応じて処理プロセッサを選択する(ステップS5のYes、S6)。一方、ルールに処理プロセッサ識別子が指定されていない場合には(ステップS5のNo)、ディスパッチ部402は、現在処理を実行中のプロセッサ(すなわち、ディスパッチ部402の処理を実行しているプロセッサ自身)を処理プロセッサとして選択する(ステップS7)。
次に、ディスパッチ部402は、決定した処理プロセッサに対応する処理スレッド50の処理キューに受信パケットの上位プロトコルの受信処理をキューイングすることで処理を依頼する(ステップS8)。依頼を受けた処理スレッド50の受信処理部501は、パケットに対する第2の処理として、パケット受信処理(すなわち、受信パケットに対する上位レイヤの受信処理)を実行する。
ステップS6において、フロー定義フィールドを利用する場合、指定されたフィールドのハッシュ値をもとに、処理プロセッサ識別子で指定されたプロセッサの中から処理プロセッサを決定する。特に、フロー定義フィールドとして、同一のフローを識別することができるフィールドを選択することが好ましい。これにより、同一のフローに属するパケットが複数のプロセッサに分散することを防ぐことができ、排他制御およびパケットの整列によって生じるオーバーヘッドを軽減することができる。
パケットの送信処理では、パケット送信時に送信パケットに対してルール照合が行われ、依頼を受けた処理スレッドがパケットの送信処理を行う点を除いて同様の処理が行われる。したがって、パケット送信時の処理シーケンスについては、説明を省略する。
本実施形態では、フィルタリングルール(図3の照合条件とアクションとの組)を記載したルールテーブル10に、送受信パケットの処理を行う処理プロセッサを決定するディスパッチルール(図3の照合条件と処理プロセッサ識別子およびフロー定義フィールドとの組)を併せて記載する。また、本実施形態によると、ルールテーブル10へのルールをユーザ側から設定することができる。したがって、処理プロセッサを選択するためのルールを一元的に管理でき、ユーザのポリシーに基づいて柔軟なプロセッサ選択を行うことができる。さらに、パケットに対するフィルタリング処理とパケットに対する第2の処理を行う処理プロセッサの選択とを1つの処理として実行するため、該パケットに対する処理時間を削減することが可能である。
(実施形態2)
第2の実施形態に係るパケット処理装置について、図面を参照して説明する。図5は、本実施形態に係るパケット処理装置の構成を一例として示すブロック図である。図5を参照すると、本実施形態におけるパケット処理装置は、ルールテーブル11、ルール設定部21、ルール抽出部31、ルール適用部41、処理スレッド50、送信受付部61、および、受信受付部71を備えている。
ルールテーブル11は、送受信パケットの宛先アドレスから転送先を決定するための経路ルール、および、送信パケットの宛先アドレス又は受信パケットの送信元アドレスから処理プロセッサを決定するためのディスパッチルールを1つのテーブルとして保持する。
図6は、ルールテーブル11を一例として示す図である。図6を参照すると、ルールテーブル11は、ネットワークアドレス(アドレスとネットマスク)、転送先のゲートウェイ、出力インタフェース、および、処理プロセッサ識別子とを関連付けて保持する。ここで、ネットワークアドレス、転送先のゲートウェイ、および、出力インタフェースの対応関係は、経路ルールの適用で用いられる。また、ネットワークアドレスと処理プロセッサ識別子との対応関係は、ディスパッチルールの適用で用いられる。ディスパッチルールは、送信パケットでは宛先アドレスに対するルール、受信パケットでは送信元アドレスに対するルールとして解釈される。
ルール設定部21は、ルールテーブル11に対して経路ルールおよびディスパッチルールの追加、変更、削除等のルールの設定を行う。ルール設定部21は、例えば、ユーザアプリケーションとして動作し、ユーザとカーネル間でメッセージ通信を行うことで、経路ルールを設定する。
ルール抽出部31は、パケットに格納されたアドレスとルールテーブル11のネットワークアドレスとを照合し、マッチするルールを検索する。ルール抽出部31は、最近検索した検索結果の一部を保持し、高速に検索可能な経路キャッシュ(非図示)を備えていてもよい。
ルール適用部41は、基本適用部411およびディスパッチ部402を有する。ルール適用部41は、経路ルールと送受信パケットを受け取ると、基本適用部411は、第1の処理として経路ルールに従った処理を行う。具体的には、送信パケットに対しては、送信パケットが経路ルール中の出力先インタフェースからゲートウェイに対して送信されるように設定する。経路ルールから受信パケットが他ホスト宛のパケットであると判断された場合には、基本適用部411は、受信パケットの転送処理を行う。ディスパッチ部402の動作については、第1の実施形態と同様であるため、詳細な説明を省略する。
また、処理スレッド50の動作についても、第1の実施形態と同様であるため、詳細な説明を省略する。
送信受付部61は、ユーザアプリケーションまたはカーネル内部からの送信パケットを受け取り、送信パケットの宛先アドレスに対応するルールをルール抽出部31で検索し、検索結果として得られたルールと送信パケットをルール適用部41に渡す。
受信受付部71は、ネットワークからの受信パケットを受け取り、ルール抽出部31において、受信パケットの宛先アドレスから経路ルールを、送信元アドレスからディスパッチルールをそれぞれ検索し、前記検索した経路ルールとディスパッチルール、及び受信パケットをルール適用部41に渡す。ルール抽出部31が経路キャッシュを備えている場合には、ディスパッチルールの検索を、経路キャッシュを用いて行うようにしてもよい。
次に、本実施形態に係るパケット処理装置の動作について、図面を参照して説明する。図7は、本実施形態に係るパケット処理装置による送信処理を一例として示すフローチャートである。
図7を参照すると、アプリケーションまたはカーネル内部からパケットが到着すると、送信受付部61に送信パケットが渡される。送信パケットを受け取った送信受付部61は、ルール抽出部31によって、送信パケットの宛先アドレスとマッチするルールをルールテーブル11から検索する(ステップS11)。ルール抽出部31が経路キャッシュを備えている場合には、検索結果を経路キャッシュに保持することで以降の検索を高速化することができる。送信受付部61は、ルールの検索結果を送信パケットとともにルール適用部41に渡す。
次に、ルール適用部41は、検索されたルールと送信パケットを受け取ると、基本適用部411が、該ルールに基づき、第1の処理として、送信パケットに対して出力インタフェースを設定する(ステップS12)。対応する経路ルールがない場合には、基本適用部411は、送信パケットを破棄し、送信処理を完了する。
一方、ディスパッチ部402は、ルールの処理プロセッサ識別子に応じて処理プロセッサを選択する(ステップS13のYes、S14)。また、ディスパッチルールで処理プロセッサ識別子が指定されていない場合には(ステップS13のNo)、ディスパッチ部402は、現在処理を実行中のプロセッサ(すなわち、ディスパッチ部402の処理を実行しているプロセッサ自身)を処理プロセッサとして選択する(ステップS15)。
そして、ディスパッチ部402は、決定した処理プロセッサに対応する処理スレッド50の処理キューに、送信パケットの上位プロトコルの送信処理をキューイングすることで処理を依頼する(ステップS16)。依頼を受けた処理スレッド50の送信処理部502は、パケットに対する第2の処理としてパケットの送信処理(パケットに対する下位レイヤの送信処理)を実行する。
図8は、ルール抽出部31が経路キャッシュを備えていない場合における、本実施形態に係るパケット処理装置による受信処理を一例として示すフローチャートである。ネットワークから受信パケットが到着すると、受信受付部71はルール抽出部31によって、受信パケットの宛先アドレスとマッチするルールをルールテーブル11から検索する(ステップS21)。
検索結果からパケット処理装置自身宛のパケットではないと判断された場合には(ステップS22のNo)、ルール適用部41の基本適用部411は、受信パケットを転送して処理を終了する(ステップS23)。一方、パケット処理装置自身宛のパケットと判断された場合には(ステップS22のYes)、受信受付部71は、ルール抽出部31を用いて、受信パケットの送信元アドレスに対応するディスパッチルールをルールテーブル11から検索する(ステップS24)。
ディスパッチ部402は、ルールの処理プロセッサ識別子に応じて処理プロセッサを選択する(ステップS25のYes、S26)。一方、ルールに処理プロセッサ識別子が指定されていない場合には(ステップS25のNo)、現在処理を実行中のプロセッサ(すなわち、ディスパッチ部402の処理を実行しているプロセッサ自身)を処理プロセッサとして選択する(ステップS27)。
そして、ディスパッチ部402は、選択された処理プロセッサに対応する処理スレッド50の処理キューに、受信パケットの上位プロトコルの受信処理をキューイングすることで処理を依頼する(ステップS28)。依頼を受けた処理スレッド50の受信処理部501は、パケットに対する第2の処理としてパケットの受信処理を実行する。
図9は、ルール抽出部31が経路キャッシュを備えている場合における、本実施形態に係るパケット処理装置による受信処理を一例として示すフローチャートである。図9において、ステップS21からS23およびステップS25からS28に関しては、ルール抽出部31が経路キャッシュを備えていない場合(図8)と同様であるため、詳細な説明を省略する。図9は、図8のステップS24の代わりに、ステップS29およびステップS30を含む点で、図8と相違する。
ルール抽出部31が経路キャッシュを備えている場合には、受信受付部71は、経路キャッシュを利用して、ディスパッチルールを検索する(ステップS29)。
経路キャッシュにマッチするルールが保持されていない場合には(ステップS30のNo)、プロセッサ識別子が指定されていないものとみなして、処理が行われる。このように、高速に検索を可能な経路キャッシュにルールが保持されている場合に(ステップS30のYes)、ディスパッチルールを利用する(ステップS25〜S27)ことにより、検索に要する時間を削減することができる。
経路キャッシュは、送信処理における経路検索で更新される(図7のステップS11)。したがって、定期的に送信が行われているアドレスからの受信パケットであれば、経路キャッシュにマッチするルールが保持されるため(図9のステップS30のYes)、ディスパッチルールに基づくプロセッサの選択(図9のステップS25〜S27)が可能となる。
本実施形態では、図6に示すように、ルールテーブル11に処理プロセッサを決定するディスパッチルールを設定する。第1の実施形態におけるフィルタリング処理は、パケット処理において常に必要とされるわけではない。一方、経路の検索処理は、パケットの処理に不可欠である。したがって、本実施形態に係るパケット処理装置は、フィルタリング処理を行わない場合のパケット転送にも適用することができ、ルールテーブル11へのルールをユーザ側から設定することにより、柔軟なプロセッサ選択を行うことが可能である。また、本実施形態に係るパケット処理装置による送信処理では、送信パケットに対して出力インタフェースを設定する処理と、該送信パケットに対する第2の処理を行うプロセッサを選択する処理とを、1つの処理として実行するため、該送信パケットに対する処理時間を削減することができる。
(実施形態3)
第3の実施形態に係るパケット処理装置について、図面を参照して説明する。図10は、本実施形態に係るパケット処理装置の構成を一例として示すブロック図である。図10を参照すると、本実施形態に係るパケット処理装置は、ルールテーブル12、ユーザアプリケーション22、ルール抽出部32、ルール適用部42、処理スレッド52、送信受付部62、および、受信受付部72を備えている。
ルールテーブル12は、アドレスとポート番号とソケットの対応関係を保持する。ここで、ソケットは、TCP、UDP等に代表されるトランスポートレイヤの接続情報に関する制御データと、該制御データと関連付けられた処理プロセッサ識別子とを保持する。
図11は、本実施形態に係るパケット処理装置におけるルールテーブル12を一例として示す図である。図11を参照すると、ルールテーブル12は、ソケットとして、プロトコル処理に必要な制御データ以外に、処理プロセッサ識別子を含む。
ユーザアプリケーション22は、ソケットを特定するためのファイル記述子をもち、ファイル記述子を利用してシステムコール(例えば、setsockopt)を利用し、ソケットの処理プロセッサ識別子を設定することができる。また、ユーザアプリケーション22は、ファイル記述子を指定し、readおよびwriteシステムコールにより、特定のソケット(コネクション)を利用したデータの送受信を行うことができる。
ルール抽出部32は、パケットに格納されている送信元のアドレスとポート番号、および、送信先のアドレスとポート番号の4つ組から、トランスポートレイヤの制御情報を表すソケットを特定する。
ルール適用部42は、基本適用部421およびディスパッチ部422を有する。ルール適用部42は、送信受付部62または受信受付部72から送信パケットまたは受信パケットとソケットを受け取ると、基本適用部421は、第1の処理として、送信パケットまたは受信パケットがソケットに保持されるトランスポートレイヤの制御情報を利用して、送信または受信の設定を行う。また、ディスパッチ部422は、ソケットに保持されるプロセッサ識別子に応じてプロセッサを選択し、対応する処理スレッド52に、第2の処理として、送信パケットまたは受信パケットの送信処理または受信処理を行うように依頼する。
処理スレッド52は、第1の実施形態における処理スレッド50と同様に、プロセッサ毎に用意されるカーネルスレッドである。ただし、本実施形態では、受信処理部521が受信パケットに対するレイヤ4の受信処理を行い、送信処理部522が送信パケットに対するレイヤ4以下の送信処理を行う点において、第1の実施形態と相違する。受信処理部521は、最終的に、受信パケットをユーザアプリケーション22に届ける。
送信受付部62は、ユーザアプリケーション22からファイル記述子と送信パケットを受け取る。送信受付部62は、ファイル記述子と送信パケットを受け取ると、それが示すソケットを特定し、ルール適用部42に渡す。
受信受付部72は、ネットワークから受信パケットを受け取り、そのアドレスおよびポート番号でルールテーブル12を検索する。また、受信受付部72は、検索結果のソケットと受信パケットをルール適用部42に渡す。
次に、本実施形態に係るパケット処理装置による送受信処理について説明する。
送信処理の動作は、次のとおりである。まず、ユーザアプリケーション22はソケットを識別するためのファイル記述子と送信パケットを引数として、sendシステムコールを呼び出す。sendシステムコールにより、ファイル記述子と送信パケットを受け取ると、送信受付部62は、ファイル記述子からソケットを特定する。次に、ルール適用部42の基本適用部421は、第1の処理として、特定されたソケットに保持されるトランスポートレイヤの制御情報を用いて、送信パケットに対する送信の設定を行う。また、ディスパッチ部422は、ソケットに保持されるプロセッサ識別子から対応する処理スレッド52を選択し、第2の処理として送信パケットの送信処理を依頼する。
一方、受信処理の動作は、次のとおりである。ネットワークから受信パケットが到着すると、受信受付部72は、受信パケットのアドレスおよびポート番号をもとに、ルールテーブル12から対応するソケットを特定する。次に、ルール適用部42の基本適用部421は、第1の処理として、特定されたソケットに保持されるトランスポートレイヤの制御情報を用いて、受信パケットの受信処理の設定を行う。また、ディスパッチ部422は、ソケットに保持されるプロセッサ識別子から対応する処理スレッド52を選択し、第2の処理として受信パケットの受信処理を依頼する。
本実施形態に係るパケット処理装置によると、ソケットが、トランスポートレイヤの接続情報に関する制御データと処理プロセッサとを関連付けて保持することにより、送信又は受信パケットに対する送信又は受信の設定と、該送信又は受信パケットに対する第2の処理を行うプロセッサの選択とを、1つの処理として実行するため、該送信又は受信パケットに対する処理時間を削減することができる。また、setsockopt等の既存のシステムコールを利用することにより、ユーザアプリケーション22が容易に第2の処理を行うプロセッサの設定を行うことができ、柔軟なプロセッサ選択を行うことが可能である。
(実施形態4)
本発明の第4の実施形態に係るパケット処理装置について、図面を参照して説明する。図12は、本実施形態に係るパケット処理装置の構成を一例として示すブロック図である。図12を参照すると、本実形態に係るパケット処理装置は、ルールテーブル13、ルール抽出部33、ルール適用部40、処理スレッド50、送信受付部60、および、受信受付部70を備えている。図12に示した本実施形態の構成要素のうち、図2と同一の符号を付したものの動作は、第1の実施形態における構成要素の動作と同一であることから、説明を省略する。
ルールテーブル13は、パケット処理装置の外部に設けられたルール設定装置23により、ルールが設定される。ルールテーブル13およびルール設定装置23に対して、一例として、非特許文献1に記載されているオープンフロー(OpenFlow)技術を採用することができる。
オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。転送ノードとして機能するオープンフロースイッチ(OFS:OpenFlow Switch)は、制御サーバに位置付けられるオープンフローコントローラ(OFC:OpenFlow Controller)との通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。
本実施形態におけるパケット処理装置、ルール設定装置23、ルールテーブル13、および、ルールテーブル13に格納されたルールは、それぞれ、オープンフローにおけるオープンフロースイッチ、オープンフローコントローラ、フローテーブル、および、フローテーブルのエントリに相当する。
図13は、オープンフローのフローテーブルのエントリを一例として示す図である。図13を参照すると、フローテーブルには、フロー毎に、パケットヘッダと照合する照合条件と、処理内容を定義したアクション(actions)と、フロー統計情報(stats)との組が定義される。
図14は、非特許文献2に定義されているアクション名とアクションの内容を一例として示す表である。OUTPUTは、指定ポート(インタフェース)に出力するアクションである。SET_VLAN_VIDからSET_TP_DSTは、パケットヘッダのフィールドを修正するアクションである。
オープンフロースイッチは、パケットを受信すると、フローテーブル(図13)から、受信パケットのヘッダ情報に適合する照合条件(FlowKey)を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、受信パケットに対して、当該エントリのアクションフィールドに記述された処理内容を実施する。一方、検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対して受信パケットを転送し、受信パケットの送信元・送信先に基づいたパケットの経路の決定を依頼し、これを実現するフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを処理規則として用いてパケットを転送する。
本実施形態のルールテーブル13(図12)は、図13に示すように、照合条件フィールドおよびアクション(actions)フィールドを有する。また、照合条件フィールドには、第1の実施形態におけるルールテーブル10(図3)と同様に、照合条件が格納される。さらに、アクションフィールドには、第1の実施形態におけるルールテーブル10(図3)と同様に、アクションおよび処理プロセッサ識別子が格納される。
ルール抽出部33は、ルールテーブル13を参照し、処理対象のパケットに適合するルールがルールテーブル13に存在しない場合には、オープンフローコントローラに相当するルール設定装置23に問い合わせる。ルール設定装置23は、ルール抽出部13から問い合わせを受けると、アクションと処理プロセッサ識別子と関連付けたルールをルールテーブル10のルールとして設定する。
本実施形態のように、複数のプロセッサを備えたパケット処理装置をオープンフローのオープンフロースイッチとして利用することで、各オープンフロースイッチは複数のプロセッサの中からパケットの処理を実行するプロセッサを柔軟かつ高速に選択することができる。
本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施形態の各要素、各図面の各要素等を含む)の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
10〜13,110 ルールテーブル
20、21 ルール設定部
22 ユーザアプリケーション
23 ルール設定装置
30〜33,130 ルール抽出部
40,41,42,140 ルール適用部
401,411,421 基本適用部
402,422 ディスパッチ部
50,52 処理スレッド
501,521 受信処理部
502,522 送信処理部
60〜62 送信受付部
70〜72 受信受付部

Claims (20)

  1. パケットに格納された情報、該パケットに対する第1の処理を示す処理規則、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付けるルールを保持するルールテーブルと、
    処理すべきパケットである対象パケットに格納された情報に対応するルールを、前記ルールテーブルから抽出するルール抽出部と、
    抽出されたルールに基づいて、前記対象パケットに対する前記処理規則に従った前記第1の処理の実行と、前記プロセッサ識別子に相当するプロセッサに対する前記第2の処理の依頼とを行うルール適用部と、を備えていることを特徴とするパケット処理装置。
  2. 前記第1の処理は、前記対象パケットを破棄すべきか否かを判定する処理であり、
    前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には前記対象パケットに対する上位レイヤの処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には前記対象パケットに対する下位レイヤの処理であることを特徴とする、請求項1に記載のパケット処理装置。
  3. 前記ルール適用部は、前記第1の処理において前記対象パケットが破棄すべきパケットでない場合には、前記対象パケットに対する前記第2の処理を前記プロセッサに依頼することを特徴とする、請求項2に記載のパケット処理装置。
  4. 前記ルールテーブルは、パケットに格納された情報、該パケットに対する第1の処理を示す処理規則、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子、および、該パケットを含むフローを定義するフィールドを示すフロー定義フィールドを互いに関連付けるルールを保持し、
    前記ルール適用部は、抽出されたルールに複数のプロセッサ識別子が含まれる場合には、前記フロー定義フィールドを参照し、該複数のプロセッサ識別子に相当する複数のプロセッサのうちのいずれかのプロセッサに対して、同一のフローに含まれるすべての対象パケットに対する前記第2の処理を依頼することを特徴とする、請求項2または3に記載のパケット処理装置。
  5. 前記ルール抽出部は、前記ルールテーブルが前記対象パケットに格納された情報に対応するルールを保持していない場合には、前記ルールを設定可能なルール設定装置に該情報に適合するルールを設定するように依頼することを特徴とする、請求項2ないし4のいずれか1項に記載のパケット処理装置。
  6. 前記第1の処理は、前記対象パケットの宛先を判定する処理であり、
    前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には前記対象パケットに対する上位レイヤの処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には前記対象パケットに対する下位レイヤの処理であることを特徴とする、請求項1に記載のパケット処理装置。
  7. 前記ルール適用部は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合において、前記対象パケットの宛先が前記パケット処理装置である場合には、前記対象パケットに対する前記第2の処理を前記プロセッサに依頼することを特徴とする、請求項6に記載のパケット処理装置。
  8. 前記ルール抽出部は、抽出したルールを一時的に保持するキャッシュを有し、前記対象パケットに格納された情報に適合するルールを該キャッシュから抽出し、
    前記ルール適用部は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合において、前記対象パケットに適合するルールが前記ルール抽出部により前記キャッシュから抽出されたときには、前記対象パケットに対する前記第2の処理を前記プロセッサに依頼することを特徴とする、請求項6または7に記載のパケット処理装置。
  9. 前記第1の処理は、前記対象パケットを送受信する際のトランスポートレイヤにおける制御情報を特定する処理であり、
    前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には、特定された制御情報を用いた前記対象パケットに対するレイヤ4の受信処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には、特定された制御情報を用いた前記対象パケットに対するレイヤ4以下の送信処理であることを特徴とする、請求項1に記載のパケット処理装置。
  10. 前記ルールテーブルは、優先度に応じてソートされた複数のルールを保持し、
    前記ルール抽出部は、前記対象パケットに格納された情報に適合する複数のルールが前記ルールテーブルに格納されている場合には、該複数のルールのうちの優先度が高いものを抽出することを特徴とする、請求項1に記載のパケット処理装置。
  11. 前記ルールテーブルのルールは、パケットに格納された情報として、送信元アドレス、宛先アドレス、送信元ポート番号、および、宛先ポート番号のうちの少なくともいずれかを含んでいることを特徴とする、請求項1に記載のパケット処理装置。
  12. 前記ルールテーブルに対して、ルールの追加、変更、または、削除を行うルール設定部をさらに備えていることを特徴とする、請求項1に記載のパケット処理装置。
  13. 複数のプロセッサのうちの一のプロセッサが、パケットに格納された情報、該パケットに対する第1の処理を示す処理規則、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付けるルールを保持するルールテーブルから、処理すべきパケットである対象パケットに格納された情報に対応するルールを抽出する工程と、
    前記一のプロセッサが、抽出されたルールに基づいて、前記対象パケットに対する前記処理規則に従った前記第1の処理の実行と、前記プロセッサ識別子に相当するプロセッサに対する前記第2の処理の依頼とを行う工程と、を含むことを特徴とするパケット処理方法。
  14. 前記第1の処理は、前記対象パケットを破棄すべきか否かを判定する処理であり、
    前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には前記対象パケットに対する上位レイヤの処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には前記対象パケットに対する下位レイヤの処理であることを特徴とする、請求項13に記載のパケット処理方法。
  15. 前記第1の処理は、前記対象パケットの宛先を判定する処理であり、
    前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には前記対象パケットに対する上位レイヤの処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には前記対象パケットに対する下位レイヤの処理であることを特徴とする、請求項13に記載のパケット処理方法。
  16. 前記第1の処理は、前記対象パケットを送受信する際のトランスポートレイヤにおける制御情報を特定する処理であり、
    前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には、特定された制御情報を用いた前記対象パケットに対するレイヤ4の受信処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には、特定された制御情報を用いた前記対象パケットに対するレイヤ4以下の送信処理であることを特徴とする、請求項13に記載のパケット処理方法。
  17. パケットに格納された情報、該パケットに対する第1の処理を示す処理規則、および、該パケットに対する第2の処理を行うプロセッサを識別するプロセッサ識別子を互いに関連付けるルールを保持するルールテーブルから、処理すべきパケットである対象パケットに格納された情報に対応するルールを抽出する処理と、
    抽出されたルールに基づいて、前記対象パケットに対する前記処理規則に従った前記第1の処理の実行と、前記プロセッサ識別子に相当するプロセッサに対する前記第2の処理の依頼とを行う処理と、を複数のプロセッサのうちの一のプロセッサに実行させることを特徴とするプログラム。
  18. 前記第1の処理は、前記対象パケットを破棄すべきか否かを判定する処理であり、
    前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には前記対象パケットに対する上位レイヤの処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には前記対象パケットに対する下位レイヤの処理であることを特徴とする、請求項17に記載のプログラム。
  19. 前記第1の処理は、前記対象パケットの宛先を判定する処理であり、
    前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には前記対象パケットに対する上位レイヤの処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には前記対象パケットに対する下位レイヤの処理であることを特徴とする、請求項17に記載のプログラム。
  20. 前記第1の処理は、前記対象パケットを送受信する際のトランスポートレイヤにおける制御情報を特定する処理であり、
    前記第2の処理は、前記対象パケットが前記パケット処理装置で受信すべきパケットである場合には、特定された制御情報を用いた前記対象パケットに対するレイヤ4の受信処理であり、前記対象パケットが前記パケット処理装置で送信すべきパケットである場合には、特定された制御情報を用いた前記対象パケットに対するレイヤ4以下の送信処理であることを特徴とする、請求項17に記載のプログラム。
JP2012555968A 2011-02-04 2012-02-03 パケット処理装置、パケット処理方法およびプログラム Active JP5900352B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012555968A JP5900352B2 (ja) 2011-02-04 2012-02-03 パケット処理装置、パケット処理方法およびプログラム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2011022303 2011-02-04
JP2011022303 2011-02-04
JP2012555968A JP5900352B2 (ja) 2011-02-04 2012-02-03 パケット処理装置、パケット処理方法およびプログラム
PCT/JP2012/052465 WO2012105677A1 (ja) 2011-02-04 2012-02-03 パケット処理装置、パケット処理方法およびプログラム

Publications (2)

Publication Number Publication Date
JPWO2012105677A1 true JPWO2012105677A1 (ja) 2014-07-03
JP5900352B2 JP5900352B2 (ja) 2016-04-06

Family

ID=46602877

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012555968A Active JP5900352B2 (ja) 2011-02-04 2012-02-03 パケット処理装置、パケット処理方法およびプログラム

Country Status (2)

Country Link
JP (1) JP5900352B2 (ja)
WO (1) WO2012105677A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150236953A1 (en) * 2012-09-11 2015-08-20 Nec Corporation Control device, communication system, communication method and storage medium
CN104811431B (zh) * 2014-01-29 2018-01-16 华为技术有限公司 基于并行协议栈实例的数据包处理方法和装置
WO2015133448A1 (ja) * 2014-03-04 2015-09-11 日本電気株式会社 パケット処理装置、パケット処理方法およびプログラム
JP5917678B1 (ja) * 2014-12-26 2016-05-18 株式会社Pfu 情報処理装置、方法およびプログラム
JP6489239B2 (ja) * 2015-05-11 2019-03-27 日本電気株式会社 通信装置、システム、方法、及びプログラム
JP6600250B2 (ja) * 2015-12-21 2019-10-30 Kddi株式会社 マルチコアcpuを有するパケット転送装置の制御装置及びプログラム
JP6773458B2 (ja) 2016-06-08 2020-10-21 日本電気通信システム株式会社 パケット処理装置、パケット処理方法、およびプログラム

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4827499A (en) * 1987-06-12 1989-05-02 American Telephone And Telegraph Company At&T Bell Laboratories Call control of a distributed processing communications switching system
US6564059B1 (en) * 2000-10-11 2003-05-13 Lucent Technologies Inc. Modification of link identifier to include routing label that allows base station message routing to serving processor
JP4398354B2 (ja) * 2004-12-20 2010-01-13 富士通株式会社 中継システム
JP4263718B2 (ja) * 2005-12-16 2009-05-13 日本電信電話株式会社 通信処理装置及び通信処理方法

Also Published As

Publication number Publication date
WO2012105677A1 (ja) 2012-08-09
JP5900352B2 (ja) 2016-04-06

Similar Documents

Publication Publication Date Title
JP5900352B2 (ja) パケット処理装置、パケット処理方法およびプログラム
KR101703088B1 (ko) Sdn 기반의 통합 라우팅 방법 및 그 시스템
JP6592595B2 (ja) コンピューティングネットワークにおけるデータトラフィックを管理する方法およびシステム
RU2589340C2 (ru) Сетевая система и способ получения данных тега vlan
JP5800019B2 (ja) 通信経路制御システム、経路制御装置、通信経路制御方法および経路制御プログラム
WO2011118566A1 (ja) パケット転送システム、制御装置、転送装置、処理規則の作成方法およびプログラム
WO2015114473A1 (en) Method and apparatus for locality sensitive hash-based load balancing
US10243849B2 (en) Distributed methodology for peer-to-peer transmission of stateful packet flows
WO2014112616A1 (ja) 制御装置、通信装置、通信システム、スイッチの制御方法及びプログラム
US10069648B2 (en) Communication system, control apparatus, communication control method and program
JP5993817B2 (ja) キャリア網における経路制御システム及び方法
JP5858141B2 (ja) 制御装置、通信装置、通信システム、通信方法及びプログラム
US20150043588A1 (en) Communication System, Upper Layer Switch, Control Apparatus, Switch Control Method, and Program
JP5725236B2 (ja) 通信システム、ノード、パケット転送方法およびプログラム
JP2015533045A (ja) 通信システム、通信方法、情報処理装置、通信制御方法及びプログラム
JP6524911B2 (ja) ネットワーク制御装置、ネットワーク制御方法およびプログラム
KR101812856B1 (ko) 스위치 장치, vlan 설정 관리 방법, 및 컴퓨터 판독가능 저장매체
US20150381775A1 (en) Communication system, communication method, control apparatus, control apparatus control method, and program
JP6292128B2 (ja) 通信システム、ノード、制御装置、通信方法およびプログラム
US9894017B2 (en) Communication system, physical machine, virtual network management apparatus, and network control method
KR101707073B1 (ko) Sdn 기반의 에러 탐색 네트워크 시스템
JP5359357B2 (ja) パケット処理装置、該処理装置に用いられるパケット処理順序制御方法及びパケット処理順序制御プログラム
JP2015511097A (ja) 通信システム、制御装置、通信方法、及びプログラム
WO2018096609A1 (ja) 計算機、通信制御方法、及びプログラム
WO2015118811A1 (ja) 通信システム、パケット転送装置、パケット転送方法およびパケット転送用プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160104

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: 20160209

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160222

R150 Certificate of patent or registration of utility model

Ref document number: 5900352

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150