JP6396934B2 - パケット処理システム及びパケット処理方法 - Google Patents

パケット処理システム及びパケット処理方法 Download PDF

Info

Publication number
JP6396934B2
JP6396934B2 JP2016025620A JP2016025620A JP6396934B2 JP 6396934 B2 JP6396934 B2 JP 6396934B2 JP 2016025620 A JP2016025620 A JP 2016025620A JP 2016025620 A JP2016025620 A JP 2016025620A JP 6396934 B2 JP6396934 B2 JP 6396934B2
Authority
JP
Japan
Prior art keywords
packet
accelerator
server
identifier
buffer
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
JP2016025620A
Other languages
English (en)
Other versions
JP2017147488A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2016025620A priority Critical patent/JP6396934B2/ja
Publication of JP2017147488A publication Critical patent/JP2017147488A/ja
Application granted granted Critical
Publication of JP6396934B2 publication Critical patent/JP6396934B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、パケット処理システム及びパケット処理方法に関する。
従来、例えばハードウェア構成のアクセラレータをサーバに接続し、特定の処理をアクセラレータにオフロードすることで、パケット処理の負荷を分散させて、サーバのパケット処理の負荷を低減する方法がある。具体的には、OvS(Open vSwitch)などの転送機能を、サーバだけではなく、アクセラレータにも持たせ、サーバとアクセラレータとの両方でパケットを処理する方法が提案されている(例えば、非特許文献1〜3参照)。
この方法では、アクセラレータ側で処理されるパケットは、5tuple情報(宛先IPアドレス、送信元IPアドレス、宛先ポート、送信ポート及びプロトコルの組み合わせ)等の識別子によって、オフロード対象に指定される。アクセラレータは、入力されたパケットの識別子を基に、入力されたパケットがオフロード対象であるか否かを判定し、オフロード対象に指定されたパケットを処理し、オフロード対象に指定されていないパケットをサーバに転送する。サーバでは、オフロード対象に指定されていないパケットを処理する。したがって、この方法によれば、サーバとアクセラレータとの両方でパケットを処理するため、フローを効率的に処理することができる。
Z. Bronstein, E. Roch, J. Xia, and A. Molkho, "Uniform Handling and Abstraction of NFV Hardware Accelerators" IEEE Network, Volume:29, Issue:3,pp.22-29, 2015 Accelerating SDN/NFV with transparent offloading architecture,[online]、[平成28年1月29日検索]、インターネット<URL:https://www.usenix.org/system/files/conference/ons2014/ons2014-paper-yamazaki.pdf> L. Nobach, D. Hausheer, "Open, Elastic Provisioning of Hardware Acceleration in NFV Environment", IEEE Networked Systems (NetSys), 2015 International Conference and Workshops on, 9-12, March 2015
このように、従来では、オフロード対象のフローとして指定された識別子を持つパケットは、全てアクセラレータで処理していた。
しかしながら、アクセラレータでは、アクセラレータの処理能力を超えるパケットが入力された場合、該入力されたパケットを廃棄するため、システム全体のスループット性能が劣化するという問題があった。また、サーバでは、検索テーブルのキャッシュ容量に上限があるため、多種類のフローを処理するとサーバの処理能力が低下してしまうという問題があった。
本発明は、上記に鑑みてなされたものであって、パケット廃棄の影響を低減するとともに、サーバにおける効率的な処理を維持して、システム全体のスループット性能の劣化を抑制することができるパケット処理システム及びパケット処理方法を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明に係るパケット処理システムは、入力されたパケットを処理又は転送するアクセラレータと、前記アクセラレータから転送されたパケットを処理するサーバと、を有するパケット処理システムにおいて、前記アクセラレータは、該アクセラレータのパケット処理対象であるパケットをバッファリングするバッファと、前記入力されたパケットがオフロード対象として指定された識別子を有するか否かを判定し、前記オフロード対象として指定された識別子以外の識別子を有すると判定したパケットを前記サーバに転送するオフロード判定部と、前記バッファのバッファ量が所定量を超えている場合には、前記オフロード対象として指定された識別子を有するパケットを前記サーバに転送し、前記バッファのバッファ量が前記所定量以下である場合には、前記オフロード対象として指定された識別子を有するパケットを前記バッファにバッファリングする振り分け処理部と、前記バッファにバッファリングされたパケットを処理するアクセラレータ側パケット処理部と、を有し、前記サーバは、前記アクセラレータから転送されたパケットを処理するサーバ側パケット処理部と、前記アクセラレータから転送されたパケットの識別子のうち、前記オフロード対象のパケットとして指定された識別子を、該サーバに所定期間転送させるパケットの識別子として、前記アクセラレータに通知する通知部と、を有することを特徴とする。
本発明によれば、パケット廃棄の影響を低減するとともに、サーバにおける効率的な処理を維持して、システム全体のスループット性能の劣化を抑制することができる。
図1は、実施の形態1に係るパケット処理システムの構成の一例を模式的に示す図である。 図2は、図1に示すオフロードテーブルのデータ構成を説明するための図である。 図3は、図1に示す一時停止テーブルのデータ構成を説明するための図である。 図4は、図1に示すパケット処理システムのパケット処理の流れを説明するシーケンス図である。 図5は、図1に示すパケット処理システムのパケット処理の流れを説明するための図である。 図6は、プログラムが実行されることにより、パケット処理システムが実現されるコンピュータの一例を示す図である。
以下、図面を参照して、本発明の一実施形態を詳細に説明する。なお、この実施形態により本発明が限定されるものではない。また、図面の記載において、同一部分には同一の符号を付して示している。
[実施の形態1]
実施の形態1に係るパケット処理システムについて、パケット処理システムの概略構成及びパケット処理システムにおける処理の流れ及び具体例を説明する。
[パケット処理システムの構成]
まず、図1を参照して、実施の形態1に係るパケット処理システムの構成について説明する。図1は、実施の形態1に係るパケット処理システムの構成の一例を説明するための図である。
図1に示すように、実施の形態1に係るパケット処理システム1は、パケット処理システムであり、入力されたパケットを受信するアクセラレータ10と、該アクセラレータ10の後段に設けられたサーバ20とを有し、インターネットNを介して、例えば、ユーザ端末5と接続される。
パケット処理システム1では、アクセラレータ10をサーバ20に接続させ、該アクセラレータ10に特定の処理をオフロードすることで、サーバ20によるパケット処理の負荷を分散させている。言い換えると、パケット処理システム1では、サーバ20と、アクセラレータ10との両方でパケットを処理する。そして、パケット処理システム1では、アクセラレータ10は、アクセラレータ10のバッファがバッファリングしているパケット量が所定量を超えている場合には、入力されたパケットを廃棄せず、サーバ20に転送している。
[アクセラレータの構成]
アクセラレータ10は、パケット処理システム1の処理能力を高めるために、サーバ20に追加して利用されるハードウェア或いはソフトウェアである。アクセラレータ10は、OvS(Open vSwitch)などのサーバ20が有する転送機能と同様の転送機能を有し、入力されたパケットのうち、少なくともオフロード対象のパケットを処理する。アクセラレータ10は、記憶部11、入力部12、制御部13及び出力部14を有する。
記憶部11は、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現され、アクセラレータ10を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部11は、パケット処理部132におけるパケット処理に必要な情報を記憶する。
また、記憶部11は、アクセラレータ10の処理対象であるオフロード対象として指定されたパケットの識別子を記憶するオフロードテーブル111と、サーバ20に所定期間転送させるパケットの識別子とを記憶する一時停止テーブル112とを記憶する。一時停止テーブル112には、オフロード対象として指定されたパケットのうち、アクセラレータ10においてのパケット処理を一時停止し、サーバ20に所定期間転送させるパケットの識別子が記憶される。
図2は、図1に示すオフロードテーブル111のデータ構成を説明するための図である。アクセラレータ10に入力されたパケットは、該パケットの5tuple情報(宛先IPアドレス、送信元IPアドレス、宛先ポート、送信ポート及びプロトコルの組み合わせ)によって、オフロード対象であるか否かを判定される。このため、オフロードテーブル111は、図2に示すテーブルT1のように、オフロード対象の各5tuple情報を記憶する。
例えば、図2に示すテーブルT1では、5tuple=a、5tuple=c及び5tuple=dのフローのパケットが、オフロード対象とされている。したがって、入力されたパケットが5tuple=aのフローのパケットである場合には、オフロード対象となるため、アクセラレータ10での処理対象のパケットであると判定される。これに対し、5tuple=bのフローは、オフロード対象には含まれていない。したがって、入力されたパケットが5tuple=bのフローのパケットである場合には、オフロード対象ではないため、アクセラレータ10での処理対象外のパケット、すなわち、サーバ20での処理対象のパケットであると判定される。オフロードテーブル111の更新は、サーバ20による指示のもと、制御部13が行う。
また、図3は、図1に示す一時停止テーブル112のデータ構成を説明するための図である。アクセラレータ10に入力されたパケットは、該パケットの5tuple情報によって、アクセラレータ10においてパケット処理を一時停止される一時停止対象であるか否かを判定される。このため、一時停止テーブル112は、図3に示すテーブルT2のように、一時停止対象の5tuple情報と停止期間とがそれぞれ対応付けられている。
例えば、図3に示すテーブルT2では、オフロード対象の5tuple=cのフローのパケットが、「2016.2.5 17:00:00〜2016.2.5 17:03:00」の間にオフロード対象を停止する対象とされている。したがって、「2016.2.5 17:00:00〜2016.2.5 17:03:00」の間に入力されたパケットであってオフロード対象であると判定されたパケットのうち、5tuple=cのフローのパケットは、一時停止対象となるため、アクセラレータ10での処理対象から外れ、サーバ20での処理対象となる。一時停止テーブル112の更新は、サーバ20による指示のもと、制御部13が行う。
入力部12は、ネットワークを介して接続された装置と各種情報を受信する入力インターフェースである。具体的には、入力部12は、インターネットNを介して接続された装置(例えば、ユーザ端末5)から送信されたパケットを受信する。
制御部13は、各種の処理手順などを規定したプログラム及び所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、制御部13は、CPU(Central Processing Unit)やMPU(Micro Processing Unit)などの電子回路である。制御部13は、パケット判定部131、パケットバッファ132aを有するパケット処理部132(アクセラレータ側パケット処理部)、及び、記録制御部133を有する。
パケット判定部131は、入力部12を介して入力されたパケットが、アクセラレータ10における処理対象のパケット(オフロード対象のパケット)であるか、或いは、サーバ20における処理対象であるかを判定する。さらに、パケット判定部131は、パケット処理部132(後述)のパケットバッファ132a(後述)がバッファリングしているパケット量が所定量を超えている場合には、入力されたパケットがオフロード対象のパケットであっても、サーバ20に転送する。パケット判定部131は、オフロード判定部131a及び振り分け処理部131bを有する。
オフロード判定部131aは、入力されたパケットの識別子(例えば5tuple情報)を取得して、該入力されたパケットがオフロード対象として指定された識別子を有するか否かを判定し、少なくとも、オフロード対象として指定された識別子以外の識別子を有すると判定したパケットをサーバ20に転送する。さらに、オフロード判定部131aは、入力されたパケットが、オフロード対象として指定されたパケットの識別子を有するパケット、かつ、サーバ20に所定期間転送させる一時停止対象のパケットの識別子以外の識別子を有するパケットであるか否かを判定する。
オフロード判定部131aは、入力されたパケットが、オフロード対象として指定されたパケットの識別子を有するパケット、かつ、サーバ20に所定期間転送させる一時停止対象のパケットの識別子以外の識別子を有するパケットであると判定した場合には、該入力されたパケットを振り分け対象のパケットとして振り分け部131bに出力する。
これに対し、オフロード判定部131aは、入力されたパケットが、オフロード対象として指定された識別子以外の識別子を有するパケット、または、サーバ20に所定期間転送させるパケットの識別子を有するパケットであると判定した場合には、該入力されたパケットをサーバ20に転送する。
振り分け処理部131bは、パケット処理部132のパケットバッファ132aのバッファ量を測定する。そして、振り分け処理部131bは、測定したバッファ量が所定量を超えている場合には、オフロード判定部131aから振り分け対象のパケットとして出力されたパケットを、サーバ20に転送する。一方、振り分け処理部131bは、測定したバッファ量が所定量以下の場合には、振り分け対象のパケットをパケット処理部132のパケットバッファ132aにバッファリングする。
このパケットの転送先判定を行う際にバッファの測定量の比較対象となる所定量は、アプリケーションに応じて、予めサーバ20等によって設定されており、記憶部11に記憶されている。振り分け処理部131bは、このパケットバッファ132aに対する所定量を記憶部11から読み出して、パケットバッファ132aの測定量との比較を行い、パケットの転送先を判定する。
なお、振り分け処理部131bは、パケットバッファ132aのバッファリング可能量を測定し、測定したバッファリング可能量よりも、振り分け対象のパケット量の方が少ない場合には、振り分け対象のパケットをパケットバッファ132aにバッファリングし、測定したバッファリング可能量よりも振り分け対象のパケット量の方が多い場合には、入力されたパケットをサーバ20に転送してもよい。
パケット処理部132は、パケット処理部132の処理対象であるパケットをバッファリングするパケットバッファ132aを有する。パケット処理部132は、パケットバッファ132aにバッファリングされたパケットを読み出し、該パケットの処理に必要な情報を記憶部11から取得し、その情報にしたがってパケットを処理して出力部14に出力する。パケット処理部132は、例えば通信トラヒック(traffic)の内容を把握する場合であれば、パケットのペイロード部を解析するDPI(Deep Packet Inspection)等の処理を行う。
すなわち、パケット処理部132は、入力されたパケットのうち、パケットバッファ132aにバッファリングされたパケット、すなわち、オフロード対象として指定されたパケットの識別子を有するパケット、かつ、サーバ20に所定期間転送させるパケットの識別子以外の識別子を有するパケットであるとともに、パケットバッファ132aがバッファリングしているパケット量が所定量以下の場合に入力されたパケットを処理する。
記録制御部133は、記憶部11のオフロードテーブル111及び一時停止テーブル112への記録制御を行う。具体的には、サーバ20からの指示に従って、オフロードテーブル111に、オフロード対象として指定されたパケットの識別子を記録、更新する。また、記録制御部133は、サーバ20からの通知に従って、一時停止テーブル112に、一時停止対象のパケットの識別子及び一時停止期間を記録、更新する。
出力部14は、ネットワークを介して接続された装置に各種情報を送信する入力インターフェースである。具体的には、出力部14は、インターネットNを介して接続された装置(例えば、ユーザ端末5)に、サーバ20及びパケット処理部132が処理したパケットを出力する。出力部14は、送信キュー機能を有し、出力対象のパケットの一時保存や、送信タイミング調整を行う。
このように、実施の形態1におけるアクセラレータ10では、アクセラレータ10の処理能力を超えるパケットの入力があった場合、その処理能力を超える分のパケットを廃棄せずにサーバ20に転送している。
[サーバの構成]
次に、サーバ20の構成について説明する。サーバ20は、例えば、通信インターフェース、プロセッサ、メモリ、仮想スイッチ等を有する物理サーバであり、アクセラレータ10のパケット振り分け処理を制御するとともに、アクセラレータ10から転送されたパケットを処理する。図1に示すように、サーバ20は、記憶部21及び制御部22を有する。
記憶部21は、RAM、フラッシュメモリ等の半導体メモリ素子、又は、ハードディスク、光ディスク等の記憶装置によって実現され、サーバ20を動作させる処理プログラムや、処理プログラムの実行中に使用されるデータなどが記憶される。記憶部21は、パケット処理部221におけるパケット処理に必要な情報を記憶する。
制御部22は、各種の処理手順などを規定したプログラム及び所要データを格納するための内部メモリを有し、これらによって種々の処理を実行する。例えば、制御部22は、CPUやMPUなどの電子回路である。制御部22は、パケット処理部221(サーバ側パケット処理部)及びオフロード指示部222(通知部)を有する。
パケット処理部221は、アクセラレータ10から転送されたパケットを処理する。パケット処理部221は、パケットの処理に必要な情報を記憶部21から取得し、その情報にしたがって、アクセラレータ10から転送されたパケットを処理する。そして、パケット処理部221は、オフロード指示部222を介して、処理したパケットを、アクセラレータ10の出力部14に出力する。パケット処理部221は、例えば通信トラヒックの内容を把握する場合であれば、パケットのペイロード部を解析するDPI等の処理を行う。パケット処理部221は、アクセラレータ10から転送されたパケットをバッファリングするバッファ(不図示)を有する。
オフロード指示部222は、アクセラレータ10に、オフロード対象として指定したパケットの識別子を通知することによって、該オフロード対象として指定した識別子を有するパケットに対して所定の処理を実行させる。
また、オフロード指示部222は、パケット処理部221から出力されたパケットの識別子を判定する。ここで、パケット処理部221から出力されたパケットの中に、オフロード対象のパケットとして指定された識別子を有するパケットがあった場合には、このパケットは、パケットバッファ132aのバッファ量が所定量を超えている場合に振り分け処理部131bから転送されたパケットであると判断できる。このため、オフロード指示部222は、アクセラレータ10から転送されたパケットの識別子のうちオフロード対象のパケットとして指定された識別子を、該サーバ20に所定期間転送させるパケットの識別子として、アクセラレータ10に通知する該オフロード対象のパケットとして通知する。
このオフロード指示部222によって通知された通知に従い、アクセラレータ10では、記録制御部133が、通知された識別子を、サーバ20に所定期間転送させるパケットの識別子として一時停止テーブル112に記録する。これによって、アクセラレータ10は、入力されたパケットのうち、オフロード指示部222によって通知された識別子を有するパケットを、サーバ20に所定期間転送する処理を行う。
この結果、サーバ20は、オフロード対象以外の識別子を有するパケットの他に、所定期間のみ転送を通知した識別子を有するパケットを処理する。言い換えると、サーバ20は、オフロード対象以外の識別子を有するパケットの他に、一定の種類のフローのパケットのみを所定期間に限って処理する。このため、サーバ20において、検索テーブルのキャッシュ容量の上限を超えた多種類のフローを長時間にわたって処理させる状態は回避されることとなる。
[パケット処理システムのパケット処理の流れ]
次に、図4及び図5を参照して、図1に示すパケット処理システム1のパケット処理の流れについて説明する。図4は、図1に示すパケット処理システム1のパケット処理の流れを説明するシーケンス図である。また、図5は、図1に示すパケット処理システム1のパケット処理の流れを説明するための図である。
図4に示すように、まず、アクセラレータ10にパケットが入力されると(図4のステップS1)、オフロード判定部131aは、入力されたパケットの識別子(例えば、5tuple)を取得する(図4のステップS2)。続いて、オフロード判定部131aは、記憶部11のオフロードテーブル111及び一時停止テーブル112を参照し、取得した5tupleが、オフロードテーブル111に登録あり、かつ、一時停止テーブル112に登録なしか否かを判定する(図4のステップS3)。
オフロード判定部131aは、取得した5tupleが、オフロードテーブル111に登録があり、かつ、一時停止テーブル112に登録がないと判定した場合には(図4のステップS3:Yes)、この5tupleを有するパケットを、振り分け対象のパケットとして、振り分け処理部131bに出力する(図4のステップS4及び図5の(1)参照)。
一方、オフロード判定部131aは、取得した5tupleが、オフロードテーブル111に登録があり、かつ、一時停止テーブル112に登録がないものではないと判定した場合には(図4のステップS3:No)、それ以外のパケットとして、入力されたパケットをサーバ20に転送する(図4のステップS5及び図5の(2)参照)。言い換えると、オフロード判定部131aは、入力されたパケットが、オフロード対象として指定されたパケットの5tuple以外の5tupleを有するパケット、または、サーバ20に所定期間転送させるパケットの5tupleを有するパケットである場合に、該パケットをサーバ20に転送する。
続いて、アクセラレータ10では、振り分け処理部131bが、パケット処理部132のパケットバッファ132aのバッファ量を測定する(図4のステップS6)。そして、振り分け処理部131bは、パケットバッファ132aのバッファ量の測定値が、定数αを超えているか否かを判断する(図4のステップS7)。この定数αは、パケットの転送先判定を行う際にバッファの測定量の比較対象となる所定量を示すものである。
振り分け処理部131bは、パケットバッファ132aのバッファ量の測定値が、定数αを超えていないと判断した場合(図4のステップS7:No)、すなわち、パケットバッファ132aのバッファ量が所定量以下の場合(図5の(3)参照)、オフロード判定部131aから出力された振り分け対象のパケットをパケット処理部132に出力して(図4のステップS8)、パケットバッファ132aにバッファリングする(図4のステップS9)。
パケット処理部132では、パケットバッファ132aにバッファリングされたパケットを読み出し、記憶部11から取得した該パケットの処理に必要な情報にしたがってパケット処理(例えば、DPI等)を実施する(図4のステップS10)。そして、パケット処理部132は、パケット処理後のパケットを出力部14に出力し(図4のステップS11)、出力部14は、インターネットN等を介して、外部装置にパケットを出力する(図4のステップS12)。
また、振り分け処理部131bは、パケットバッファ132aのバッファ量の測定値が、定数αを超えていると判断した場合には(図4のステップS7:Yes)、オフロード判定部131aから出力された振り分け対象のパケットをサーバ20に出力する(図4のステップS13及び図5の(4)参照)。
そして、サーバ20では、パケット処理部221が、アクセラレータ10から転送されたパケットに対し、記憶部21から取得した該パケットの処理に必要な情報にしたがってパケット処理(例えば、DPI等)を実施する(図4のステップS14)。そして、パケット処理部221は、パケット処理後のパケットをオフロード指示部222に出力する(図4のステップS15)。続いて、オフロード指示部222は、パケット処理部221から出力されたパケットの5tupleを判別した(図4のステップS16)後に、該パケットを出力部14に出力する(図4のステップS17)。出力部14は、インターネットN等を介して、外部装置にパケットを出力する(図4のステップS12)。
そして、オフロード指示部222は、パケットの5tupleを判別した結果、サーバ20に転送されたパケットの中に、オフロード対象のパケットとして指定された5tupleを有するパケットがあった場合には、このパケットの5tupleを、一時停止対象の5tupleとしてアクセラレータ10に通知する(図4のステップS18)。具体的には、オフロード指示部222は、サーバ20側で処理したパケットに含まれていたオフロード対象の識別子を一時停止テーブル112に登録するようにアクセラレータ10の制御部13に指示する(図5の(5)参照)。
これに応じて、アクセラレータ10側では、記録制御部133が、登録を指示されたパケットの識別子を一時停止テーブル112に登録する(図4のステップS19及び図5の(6)参照)。この結果、アクセラレータ10は、次に入力されたパケットが、オフロード対象以外のパケット或いは一時停止対象のパケットである場合には、このパケットをサーバ20に転送する。
[実施の形態1の効果]
このように、実施の形態1に係るパケット処理システム1では、アクセラレータ10は、オフロード対象のパケットが入力された場合であっても、アクセラレータ10のバッファがバッファリングしているパケット量が所定量を超えている場合には、入力されたパケットを廃棄せず、サーバ20に転送している。このため、実施の形態1によれば、アクセラレータ10において従来廃棄されてパケットを、サーバ20で処理するため、パケット廃棄の影響を低減することができる。
また、実施の形態1では、サーバ20は、パケット処理を行ったパケットのうち、本来アクセラレータ10で処理するオフロード対象として指定された識別子を有するパケットが含まれていた場合には、該パケットが、アクセラレータ10の処理能力超過によってアクセラレータ10から転送されたパケットであると判断し、アクセラレータ10に、該パケットの識別子と同じ識別子を有するパケットを所定期間に限ってサーバ20に転送させている。
すなわち、サーバ20は、オフロード対象以外の識別子を有するパケットの他に、一定の種類のフローのパケットのみを所定期間に限って処理している。したがって、サーバ20は、多種類のフローを長時間にわたって処理することはないため、検索テーブルのキャッシュ容量の上限を超えた多種類のフローを長時間にわたってサーバ20に処理させる状態は回避できる。この結果、サーバ20における効率的な処理を維持できる。
以上のように、本実施の形態1によれば、パケット廃棄の影響を低減するとともに、サーバ20における効率的な処理を維持して、システム全体のスループット性能の劣化を抑制することができる。
[他の実施の形態]
[システム構成等]
図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。さらに、各装置にて行なわれる各処理機能は、その全部又は任意の一部が、CPU及び当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部又は一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部又は一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
[プログラム]
図6は、プログラムが実行されることにより、パケット処理システムが実現されるコンピュータの一例を示す図である。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
ハードディスクドライブ1090は、例えば、OS1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、パケット処理システムの各処理を規定するプログラムは、コンピュータ1000により実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、パケット処理システムにおける機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
また、上述した実施形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN、WAN等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
以上、本発明者によってなされた発明を適用した実施形態について説明したが、本実施形態による本発明の開示の一部をなす記述及び図面により本発明は限定されることはない。すなわち、本実施形態に基づいて当業者等によりなされる他の実施形態、実施例及び運用技術等は全て本発明の範疇に含まれる。
1 パケット処理システム
5 ユーザ端末
10 アクセラレータ
20 サーバ
11,21 記憶部
12 入力部
13,22 制御部
14 出力部
111 オフロードテーブル
112 一時停止テーブル
131 パケット判定部
131a オフロード判定部
131b 振り分け処理部
132,221 パケット処理部
132a パケットバッファ
222 オフロード指示部

Claims (4)

  1. 入力されたパケットを処理又は転送するアクセラレータと、前記アクセラレータから転送されたパケットを処理するサーバと、を有するパケット処理システムにおいて、
    前記アクセラレータは、
    該アクセラレータのパケット処理対象であるパケットをバッファリングするバッファと、
    前記入力されたパケットがオフロード対象として指定された識別子を有するか否かを判定し、少なくとも、前記オフロード対象として指定された識別子以外の識別子を有すると判定したパケットを前記サーバに転送するオフロード判定部と、
    前記バッファのバッファ量が所定量を超えている場合には、前記オフロード対象として指定された識別子を有するパケットを前記サーバに転送し、前記バッファのバッファ量が前記所定量以下である場合には、前記オフロード対象として指定された識別子を有するパケットを前記バッファにバッファリングする振り分け処理部と、
    前記バッファにバッファリングされたパケットを処理するアクセラレータ側パケット処理部と、
    を有し、
    前記サーバは、
    前記アクセラレータから転送されたパケットを処理するサーバ側パケット処理部と、
    前記アクセラレータから転送されたパケットの識別子のうち、前記オフロード対象のパケットとして指定された識別子を、該サーバに所定期間転送させるパケットの識別子として、前記アクセラレータに通知する通知部と、
    を有することを特徴とするパケット処理システム。
  2. 前記アクセラレータは、
    前記オフロード対象として指定されたパケットの識別子と、前記通知部によって通知された、前記サーバに所定期間転送させるパケットの識別子とを記憶する記憶部と、
    前記通知部によって通知された、前記サーバに所定期間転送させるパケットの識別子を前記記憶部に記録する記録制御部と、
    を有することを特徴とする請求項1に記載のパケット処理システム。
  3. 前記オフロード判定部は、前記入力されたパケットが、前記オフロード対象として指定された識別子以外の識別子を有するパケット、または、前記サーバに所定期間転送させるパケットの識別子を有するパケットであると判定した場合には、該入力されたパケットを前記サーバに転送し、前記入力されたパケットが、オフロード対象として指定された識別子を有するパケット、かつ、前記サーバに所定期間転送させるパケットの識別子以外の識別子を有するパケットであると判定したパケットを振り分け対象のパケットとして前記振り分け部に出力し、
    前記振り分け処理部は、前記バッファのバッファ量が所定量を超えている場合には、前記振り分け対象のパケットを前記サーバに転送し、前記バッファのバッファ量が前記所定量以下である場合には、前記振り分け対象のパケットを前記バッファにバッファリングすることを特徴とする請求項1または2に記載のパケット処理システム。
  4. 入力されたパケットを処理又は転送するアクセラレータと、前記アクセラレータから転送されたパケットを処理するサーバと、が実行するパケット処理方法おいて、
    前記アクセラレータは、パケット処理対象であるパケットをバッファリングするバッファを有し、
    前記アクセラレータが、前記入力されたパケットがオフロード対象として指定された識別子を有するか否かを判定する判定工程と、
    前記アクセラレータが、前記判定工程において、少なくとも、前記オフロード対象として指定された識別子以外の識別子を有すると判定されたパケットを前記サーバに転送する第1の転送工程と、
    前記アクセラレータが、前記バッファのバッファ量が所定量を超えている場合には、前記オフロード対象として指定された識別子を有するとパケットを前記サーバに転送する第2の転送工程と、
    前記アクセラレータが、前記バッファのバッファ量が前記所定量以下である場合には、前記オフロード対象として指定された識別子を有するパケットを前記バッファにバッファリングするバッファ工程と、
    前記アクセラレータが、前記バッファにバッファリングされたパケットを処理する第1のパケット処理工程と、
    前記サーバが、前記アクセラレータから転送されたパケットを処理する第2のパケット処理工程と、
    前記サーバが、前記アクセラレータから転送されたパケットの識別子のうち、前記オフロード対象のパケットとして指定された識別子を、該サーバに所定期間転送させるパケットの識別子として、前記アクセラレータに通知する通知工程と、
    を含んだことを特徴とするパケット処理方法。
JP2016025620A 2016-02-15 2016-02-15 パケット処理システム及びパケット処理方法 Active JP6396934B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016025620A JP6396934B2 (ja) 2016-02-15 2016-02-15 パケット処理システム及びパケット処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016025620A JP6396934B2 (ja) 2016-02-15 2016-02-15 パケット処理システム及びパケット処理方法

Publications (2)

Publication Number Publication Date
JP2017147488A JP2017147488A (ja) 2017-08-24
JP6396934B2 true JP6396934B2 (ja) 2018-09-26

Family

ID=59683194

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016025620A Active JP6396934B2 (ja) 2016-02-15 2016-02-15 パケット処理システム及びパケット処理方法

Country Status (1)

Country Link
JP (1) JP6396934B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7087807B2 (ja) 2018-08-08 2022-06-21 日本電信電話株式会社 サーバ、サーバシステム及びサーバのネットワーク帯域増加方法
WO2024013829A1 (ja) * 2022-07-11 2024-01-18 日本電信電話株式会社 信号処理集約装置、信号処理集約システム、信号処理集約方法およびプログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007088709A (ja) * 2005-09-21 2007-04-05 Oki Electric Ind Co Ltd パケット通信装置およびその処理方法
US8898448B2 (en) * 2008-06-19 2014-11-25 Qualcomm Incorporated Hardware acceleration for WWAN technologies
JP5817458B2 (ja) * 2011-11-18 2015-11-18 沖電気工業株式会社 転送処理装置

Also Published As

Publication number Publication date
JP2017147488A (ja) 2017-08-24

Similar Documents

Publication Publication Date Title
US10686658B1 (en) Incremental update of the data plane of a hardware forwarding element
US9503382B2 (en) Scalable flow and cogestion control with openflow
US8730984B2 (en) Queuing based on packet classification
US9088515B2 (en) Dynamic maximum transmission unit size adaption
US20170048352A1 (en) Computer-readable recording medium, distributed processing method, and distributed processing device
US20170295035A1 (en) Selecting an optimal network device for reporting flow table misses upon expiry of a flow in a software defined network
US20160014237A1 (en) Communication device, communication method, and computer-readable recording medium
US8438323B2 (en) Communication processing apparatus, communication processing method, control method and communication device of communication processing apparatus
Papagianni et al. Pi2 for p4: An active queue management scheme for programmable data planes
US20160173451A1 (en) Dynamic Denial of Service Protection
JP6396934B2 (ja) パケット処理システム及びパケット処理方法
US10616116B1 (en) Network traffic load balancing using rotating hash
Freitas et al. A survey on accelerating technologies for fast network packet processing in Linux environments
US20150078394A1 (en) Hash perturbation with queue management in data communication
US8812622B2 (en) Application optimization in a network system
US20200336573A1 (en) Network switching with co-resident data-plane and network interface controllers
US9736080B2 (en) Determination method, device and storage medium
US10915479B1 (en) Hardware acceleration for uploading/downloading databases
JP2013153278A (ja) 通信装置、通信方法、及び通信プログラム
US8819302B2 (en) System to manage input/output performance and/or deadlock in network attached storage gateway connected to a storage area network environment
JP7464122B2 (ja) L2スイッチ、通信制御方法、および、通信制御プログラム
US11394651B1 (en) Smart cache control for mission-critical and high priority traffic flows
JP2017022530A (ja) ネットワークプロセッサ、通信装置、パケット転送方法及びパケット転送プログラム
US20230254248A1 (en) L2 switch, communication control method, and communication control program
KR20160080266A (ko) Cpu 부하 분산 패킷 처리 장치 및 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171218

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180830

R150 Certificate of patent or registration of utility model

Ref document number: 6396934

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150