説明

パケット処理装置及びそれに用いるパケット処理方法

【課題】 パケット処理待ち時間を減少させ、パケット処理の効率をあげることができ、スループットを向上させることが可能なパケット処理装置を提供する。
【解決手段】 パケット処理装置は、パケットを受信する受信処理手段(31)と、当該パケットのヘッダ部分を解析するヘッダ解析処理手段(32)と、ヘッダ部分の処理を行うヘッダ処理手段(33)と、処理したパケットを送信する送信処理手段(34)とを少なくとも含む。受信処理手段(31)は、受信したパケットのパケットヘッダのサイズ分をパケット格納メモリ(5)に転送した時点で、当該パケットのデータ部分をパケット格納メモリ(5)に転送するパケット転送処理とヘッダ解析処理手段(32)の処理を行うためのパケット情報の転送処理とを並行して実行する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明はパケット処理装置及びそれに用いるパケット処理方法に関し、特にパケット処理装置におけるパケット受信処理に関する。
【背景技術】
【0002】
本発明に関連するパケット処理装置では、各パケット処理部が複数のスレッド処理を実施できる場合でも、パケットの順序逆転が発生するため、受信した順番にパケットを送信する必要がある。
【0003】
上記のパケット処理装置におけるパケット処理を効率的に行う方法としては、以下の特許文献に記載された技術等がある。特許文献1では、パケット受信部、処理部、送信部各々から後段に処理完了通知を転送し、各処理部の処理結果を多ポートメモリに格納している。特許文献2では、パケット処理を行う各処理部の処理が終了する前の所定のタイミングで、後段の処理部に内部情報の引継ぎを行っている。
【0004】
特許文献3では、分割した固定長パケットをポインタリンクにより指定されたページに順に格納するパケット格納メモリと、ポインタリンクのページに対応して次にリンクするページを表す次ポインタを格納するポインタ格納メモリを備えている。特許文献4では、パケット処理をパケット処理エンジンと検索エンジンで分散処理する構成としている。
【0005】
特許文献5では、中央処理装置とメインメモリとの間に、メインメモリより高速に動作するバッファメモリを設け、このバッファメモリにパケットのヘッダ部のみを格納している。特許文献6では、パケット処理を行う各処理部の処理を並列化して処理速度を向上させている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開2002−164924号公報
【特許文献2】特許第4342100号公報
【特許文献3】特開2006−135379号公報
【特許文献4】特開2007−208963号公報
【特許文献5】特開2009−088622号公報
【特許文献6】特開2010−109746号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述した本発明に関連するパケット処理装置では、パケット長やパケット種別(処理内容)によって、パケット処理待ち時間が異なることで、パケット順序を整えるためのスレッドの処理待ち時間が発生している。
【0008】
そのため、本発明に関連するパケット処理装置では、パケット処理効率が悪く、回線のスループットよりも装置でのスループットが低下してしまうという課題がある。加えて、本発明に関連するパケット処理装置では、別途、パケット順序を整える処理が発生していることで、その分の処理負荷がかかり、スループット低下となっている。尚、上記の特許文献1〜6を相互に組み合わせても、上記の課題を解決することはできない。
【0009】
そこで、本発明の目的は上記の問題点を解消し、パケット処理待ち時間を減少させ、パケット処理の効率をあげることができ、スループットを向上させることができるパケット処理装置及びそれに用いるパケット処理方法を提供することにある。
【課題を解決するための手段】
【0010】
本発明によるパケット処理装置は、パケットを受信する受信処理手段と、当該パケットのヘッダ部分を解析するヘッダ解析処理手段と、前記ヘッダ部分の処理を行うヘッダ処理手段と、処理したパケットを送信する送信処理手段とを少なくとも含むパケット処理装置であって、
前記受信処理手段が、受信したパケットのパケットヘッダのサイズ分をパケット格納メモリに転送した時点で、当該パケットのデータ部分を前記パケット格納メモリに転送するパケット転送処理と前記ヘッダ解析処理手段の処理を行うためのパケット情報の転送処理とを並行して実行している。
【0011】
本発明によるパケット処理方法は、パケットを受信する受信処理と、当該パケットのヘッダ部分を解析するヘッダ解析処理と、前記ヘッダ部分の処理を行うヘッダ処理と、処理したパケットを送信する送信処理とを少なくとも含むパケット処理方法であって、
前記受信処理において、受信したパケットのパケットヘッダのサイズ分をパケット格納メモリに転送した時点で、当該パケットのデータ部分を前記パケット格納メモリに転送するパケット転送処理と前記ヘッダ解析処理を行うためのパケット情報の転送処理とを並行して実行している。
【発明の効果】
【0012】
本発明は、上記のような構成及び動作とすることで、パケット処理待ち時間を減少させ、パケット処理の効率をあげることができ、スループットを向上させることができるという効果が得られる。
【図面の簡単な説明】
【0013】
【図1】本発明の実施の形態によるパケット処理装置の構成例を示すブロック図である。
【図2】本発明に関連するパケット処理装置における3パケットを受け取った時の処理経過及び時間を示す図である。
【図3】本発明の実施の形態によるパケット処理装置における3パケットを受け取った時の処理経過及び時間を示す図である。
【発明を実施するための形態】
【0014】
次に、本発明の実施の形態について図面を参照して説明する。まず、本発明によるパケット処理装置の概要について説明する。
【0015】
本発明によるパケット処理装置は、パケット受信時にパケットヘッダ部をパケットバッファからパケット処理部内のパケット格納メモリへ転送した時点で、次のパケット処理(パケットヘッダを除く残りのパケットデータをパケット格納メモリへ転送するパケット転送処理、ヘッダ解析処理)を並行して実施することで、パケットサイズによる処理待ち時間を少なくすることができる。
【0016】
また、本発明によるパケット処理装置は、パケットヘッダ部の処理をパケット受信前に実施して記憶しておくことで、パケット種別毎の処理時間差をなくすことができ、スループットを向上させることができる。
【0017】
さらに、本発明によるパケット処理装置は、自動的にパケットを受信した順番にパケット処理が行われるため、パケット順序保障処理を別途実施する必要がなくなり、パケット処理負荷が軽減されることで、スループットを向上させることができる。
【0018】
本発明によるパケット処理装置では、パケット受信処理において、パケットヘッダのサイズ分[IPv6(Internet Protocol Version 6)の最大ヘッダ分]をパケットバッファからパケット処理部内のパケット格納メモリに転送した時点で、パケット転送処理と、次処理(ヘッダ解析処理)とを並行して処理することができるようにするために、受信処理中のパケットの情報[パケットID(IDentifier)]を次のパケット処理部内の処理部へ渡す。
【0019】
パケットのデータ部は、パケット受信処理にてパケット格納メモリに転送され、送信処理にてパケット格納メモリから送信バッファへ転送されるだけなので、次処理も並行してパケット処理が可能となる。パケット受信処理部の各スレッドは、パケット受信から次処理へのパケット受け渡しまでの時間が一定となり、パケット長による処理時間差はなくなる。
【0020】
また、本発明によるパケット処理装置では、パケット毎のポリシーが決まった段階で、そのポリシーに沿ったパケットヘッダ処理を事前に実施し、パケット処理内部のメモリに格納しておくことで、ヘッダ処理部は、ポリシーの検索と、変換後のパケットヘッダをパケット格納メモリの該当するパケットデータに対して保存する処理とを実施することになる。よって、パケット種別(処理内容)が異なるパケットを受信しても、ヘッダ処理部は、決まった動作を実施するのみなので、処理時間差がなくなる。
【0021】
上記のように、本発明によるパケット処理装置では、各処理部の処理時間差をなくすことで、各処理部での待ち時間、また各スレッドの待ち時間がなくなり、パケット処理効率化によりスループット向上を図れる。
【0022】
さらに、本発明によるパケット処理装置では、各パケット処理部でのパケット処理時間が均一になることで、パケットを受信した順番に自動的に送信処理までパケットを処理することができる。そのため、本発明によるパケット処理装置では、パケットの順序を気にせずに、パケットの順序を保証することができるという利点がある。
【0023】
これによって、本発明によるパケット処理装置では、パケット順序制御を行う必要がなくなるため、パケット処理が軽減され、さらにスループット向上が可能となる。
【0024】
図1は本発明の実施の形態によるパケット処理装置の構成例を示すブロック図である。図1において、本発明の実施の形態によるパケット処理装置は、回線1,10と、受信バッファ2と、パケット処理部3と、パケット受信処理完了フラグ4と、パケット格納メモリ5と、ポリシー検索デバイス6と、ヘッダ格納メモリ7と、ポリシー制御部8と、送信バッファ9とから構成されている。
【0025】
パケットは、回線1,10から送受信され、送受信の際は受信バッファ2、送信バッファ9各々に一時的に保存される。
【0026】
パケット処理部3は、受信部31と、ヘッダ解析部32と、ヘッダ処理部33と、送信部34とを備えている。受信部31、ヘッダ解析部32、ヘッダ処理部33、送信部34各々は、3つのスレッドで構成されていると仮定し、各スレッド「1」〜「3」はパラレルに動作可能としている。
【0027】
また、パケット格納メモリ5は、パケット処理部3内のパケット格納メモリを表している。ポリシー検索デバイス6は、ポリシーの検索を行うデバイスであり、ヘッダ格納メモリ7は、ポリシーに沿ったパケットヘッダを格納している。パケット情報30は、パケット処理部3の各処理部の間のパケット情報(パケットID、ポリシー検索キー)を示している。
【0028】
パケット処理部3において、受信部31は、受信バッファ2のパケット受信状況を常時監視しており、パケットが格納されてからすぐにパケット格納メモリ5にパケットを転送するものとする。その時、パケット格納メモリ5は、受信部31のスレッドと対応付けられるかたちで3個用意されており、各スレッドが他スレッドに干渉されることなく、受信部31に同時にアクセスできる仕様となっている。
【0029】
また、受信部31は、パケット情報30の取得、パケットのヘッダ部をパケット格納メモリ5に格納した時点で、パケット情報30をヘッダ解析部32に受け渡した後で、残りのパケットをパケット格納メモリ5に転送する。受信部31は、すべてのパケットデータのパケット格納メモリ5への転送が完了すると、また受信バッファ2のパケット受信状況を確認する。
【0030】
ヘッダ解析部32は、受信部31からパケット情報30を受け取り、そのパケット情報30を基に、パケット格納メモリ5に格納されている該当パケットのヘッダ部分の解析を実施する。
【0031】
ヘッダ解析部32は、主に、パケットヘッダのチェックとポリシー検索に使用される検索キーの抽出とを行い、パケット情報30の検索キーを更新してヘッダ処理部33に受け渡す。ヘッダ解析部32は、上記の動作を繰り返すものとする。
【0032】
ヘッダ処理部33は、ヘッダ解析部32からパケット情報30を受け取り、パケット情報30内の検索キーを用いてポリシー検索を実施する。ポリシー検索デバイス6は、ヒットしたポリシーに対応したヘッダ格納メモリ7のアドレスをヘッダ処理部33に返す。
【0033】
ヘッダ処理部33は、ポリシー検索デバイス6からのアドレスを基にヘッダ格納メモリ7からポリシーに沿ったパケットヘッダを取得し、パケット格納メモリ5のヘッダ部分への上書きを実施する。ヘッダ処理部33は、ヘッダ処理が完了したら、パケットデータを送信部34に渡す。ヘッダ処理部33は、上記の動作を繰り返すものとする。
【0034】
送信部34は、ヘッダ処理部33からパケット情報30を受け取り、そのパケット情報30を基に、パケット格納メモリ5から取得したパケットを送信バッファ9に転送する。送信部34は、この動作を繰り返す。但し、送信部34は、受信部31の処理とは違い、パケット長が異なることで、送信バッファ9への転送処理時間が異なることから、パケット順序を保証するために、各スレッド「1」〜「3」はパラレルでは動作できないものとする。
【0035】
ポリシー制御部8は、新たなポリシー登録があった場合や、ポリシーの変更及び削除が発生した場合に、ポリシー検索デバイス6にポリシー検索キー登録の実施と、ヘッダ格納メモリ7にポリシーに沿ったパケットヘッダを格納する。
【0036】
また、本発明の実施の形態によるパケット処理装置では、受信部31のパケットヘッダを除く転送処理が、ヘッダ解析部32、ヘッダ処理部33、送信部34各々の処理よりも時間がかかる場合に備えて、受信部31がパケット転送を完了したパケット受信処理完了フラグ4を用意する。送信部34は、送信バッファ9へのパケット転送前に、パケットIDに対応したフラグを確認し、処理完了を確認して転送処理を実施する。
【0037】
図2は本発明に関連するパケット処理装置における3パケットを受け取った時の処理経過及び時間を示す図であり、図3は本発明の実施の形態によるパケット処理装置における処理経過及び時間を示す図である。
【0038】
図2においては、本発明に関連するパケット処理を想定し、パケット処理受信部では、受信したパケットのパケット転送処理(パケットをパケット格納メモリへ転送する処理)がすべて完了した時点で次処理(ヘッダ解析処理)にパケット情報を受け渡すものとする。
【0039】
また、ヘッダ処理部では、ポリシーに沿った処理を受信したパケット毎に実施するため、異なる処理パケットを受信した場合にヘッダ処理時間が異なる。送信部では、受信処理時に取得したパケットIDの順番にパケットを送信するように、パケット順序保障を実施する。
【0040】
図3においては、本発明の実施の形態でのパケット処理経過及び時間を示す。図3においては、図2に示す本発明に関連するパケット処理装置での処理と異なり、受信部31にてパケットを受信し、パケット格納メモリ5にパケットヘッダ分の転送が完了した時点で、次処理(ヘッダ解析部32)にパケット情報30を受け渡すものとする。
【0041】
また、ヘッダ処理部33では、予めポリシーに沿ったパケットヘッダが用意されているため、異なる処理のパケットを受信した場合でも、処理時間は同じとする。送信部34では、パケット順序を気にする必要がないため、パケット順序保障処理は実施しないものとする。
【0042】
図2において、「a」,「b」,「c」のパケットをほぼ同時に受信したと仮定し、「a」,「b」,「c」の順でパケット処理するものとする。「a」のパケット長は「3x」、「b」のパケット長は「2x」、「c」のパケット長は「x」とし、パケット長「x」を送受信する時間を「t」とする。また、ヘッダ処理部33での受信処理時間をそれぞれ「3t」,「2t」,「t」と仮定する。
【0043】
図3では、図2と同様のパケットを受信したと仮定し、パケットのヘッダ部の長さは「1/2x」とする。ヘッダ処理部33は、「a」,「b」,「c」とも時間「t」かかるものとする。パケット解析部32は、図2及び図3において、ともに処理時間「t」かかるものとする。図2及び図3には出てこないが、本発明に関連するパケット処理装置では順序保障を実施しているが、本発明の実施の形態では未実施(意識しないもの)とする。
【0044】
また、図2及び図3に共通して、回線のスループットはパケット処理装置のパケット処理のスループットよりも十分に早いものとし、回線⇔パケットバッファ間での待ち時間は発生しないものとする。
【0045】
図2に示す処理の場合、受信部から次処理部へのパケット受け渡し時間が異なること、ヘッダ処理部の時間が異なることにより、パケット「b」でのパケット処理待ち時間が「5t」、パケット「c」でのパケット処理待ち時間が「9t」となり、処理している時間よりも処理待ち時間が長いことがわかる。よって、パケット受信からパケット送信処理の完了まで、3パケットの処理時間は「13t」であることがわかる。
【0046】
一方、図3に示す処理の場合は、受信処理から次処理へのパケット受け渡しまでの時間が同じであること、パケットのヘッダ部分の処理時間が同じであることにより、処理待ち時間がパケット「b」で「3.5t」、パケット「c」で「5.5t」と、図2に示す処理よりも短くなっていることがわかる。
【0047】
すなわち、3パケットの処理時間は「9t」となり、本発明に関連するパケット処理装置の処理(図2に示す処理)よりも大幅に改善されていることがわかる。また、本発明の実施の形態では、パケット順序保障を実施する必要がないため、処理負荷が軽減され、その分パケット処理に時間を使うことができるため、さらにパケット処理時間を短くすることができる。
【0048】
以上説明したように、本実施の形態では、以下のような効果を奏する。つまり、本発明に関連するパケット処理装置では、パケット受信処理が完全に終了してから次処理へとパケットを渡していたために、パケット長によって受信部でのパケット処理時間が異なることが、パケット処理待ち時間を増やしている。
【0049】
これに対して、本実施の形態では、受信処理がパケットのヘッダ部分の転送が完了した時点で、次処理へパケット情報を受け渡すことで、処理部同士が並行してパケット処理を実施することができる。そのため、本実施の形態では、パケット処理待ち時間が減少し、パケット処理の効率があがり、スループットを向上させることができるという効果が期待できる。
【0050】
また、本実施の形態では、パケット毎のポリシーが決まった段階で、それにあったヘッダ処理を事前に実施し、その内容をメモリに記憶しておくことで、パケット受信時のヘッダ処理がポリシー検索と事前に処理されたヘッダを付け替えることのみとなる。そのため、ポリシーが異なるパケット処理時でも、ヘッダ処理時間が一定となりパケット処理待ち時間が減少でき、スループット向上するという効果が期待できる。
【0051】
さらに、本実施の形態では、上記の動作を実施することで、パケット処理部3の各処理部の処理時間(送信処理を除く)が等しくなる。よって、本実施の形態では、受信から送信までのパケット順序を意識することなく、パケット処理を実施することが可能となるため、処理負荷の軽減が期待される。その分、パケット処理を実施することが可能となり、スループットの向上が期待できる。
【0052】
本発明においては、上記の実施の形態で、パケット処理部3を受信部31、ヘッダ解析部32、ヘッダ処理部33、送信部34の4つの処理部で構成しているが、上記の構成に加えて、レートリミット処理やQOS(Quality Of Service)処理等、さらに高度な処理を追加することも可能である。
【0053】
この場合、処理の有無や、レートリミット、QOSの値によっては、パケット毎の処理時間が異なることが想定されるが、上記の受信部31で実施したように、一定の処理(必要処理)が終了した時点で、次処理にパケットを渡してしまうことで、並行してパケット処理を実施することができ、パケット処理の処理時間差を小さくすることができる。
【0054】
また、この場合には、上述した本発明の実施の形態と同様に、パケット順序保障を意識することなく、パケット処理を実施することができるため、処理負荷を軽減することができる。
【産業上の利用可能性】
【0055】
本発明は、パケット処理負荷の高い装置(各拠点間をつなぐまたはユーザパケット集約、転送するスイッチやルータ等のパケット伝送装置)、また順序保障が必要な装置(音声や動画パケットを転送する装置)に対して大きな効果を発揮するものと考えられる。
【符号の説明】
【0056】
1,10 回線
2 受信バッファ
3 パケット処理部
4 パケット受信処理完了フラグ
5 パケット格納メモリ
6 ポリシー検索デバイス
7 ヘッダ格納メモリ
8 ポリシー制御部
9 送信バッファ
30 パケット情報
31 受信部
32 ヘッダ解析部
33 ヘッダ処理部
34 送信部

【特許請求の範囲】
【請求項1】
パケットを受信する受信処理手段と、当該パケットのヘッダ部分を解析するヘッダ解析処理手段と、前記ヘッダ部分の処理を行うヘッダ処理手段と、処理したパケットを送信する送信処理手段とを少なくとも含むパケット処理装置であって、
前記受信処理手段が、受信したパケットのパケットヘッダのサイズ分をパケット格納メモリに転送した時点で、当該パケットのデータ部分を前記パケット格納メモリに転送するパケット転送処理と前記ヘッダ解析処理手段の処理を行うためのパケット情報の転送処理とを並行して実行することを特徴とするパケット処理装置。
【請求項2】
前記受信処理手段が、現在受信処理中のパケットの情報を前記パケット情報として前記ヘッダ解析処理手段に転送することを特徴とする請求項1記載のパケット処理装置。
【請求項3】
パケット毎のポリシーが決まった段階で、そのポリシーに沿ったパケットのヘッダ処理の実施結果を事前に格納する格納メモリを含み、
前記ヘッダ処理手段が、前記受信処理手段にて受信したパケットのポリシーに対応するパケットのヘッダ処理の実施結果を前記格納メモリから読み出し、その実施結果で前記受信処理手段にて受信したパケットのヘッダを書き換えることを特徴とする請求項1または請求項2記載のパケット処理装置。
【請求項4】
パケットを受信する受信処理と、当該パケットのヘッダ部分を解析するヘッダ解析処理と、前記ヘッダ部分の処理を行うヘッダ処理と、処理したパケットを送信する送信処理とを少なくとも含むパケット処理方法であって、
前記受信処理において、受信したパケットのパケットヘッダのサイズ分をパケット格納メモリに転送した時点で、当該パケットのデータ部分を前記パケット格納メモリに転送するパケット転送処理と前記ヘッダ解析処理を行うためのパケット情報の転送処理とを並行して実行することを特徴とするパケット処理方法。
【請求項5】
前記受信処理において、現在受信処理中のパケットの情報を前記パケット情報として前記ヘッダ解析処理に転送することを特徴とする請求項4記載のパケット処理方法。
【請求項6】
パケット毎のポリシーが決まった段階で、そのポリシーに沿ったパケットのヘッダ処理の実施結果を事前に格納メモリに格納しておき、
前記ヘッダ処理において、前記受信処理にて受信したパケットのポリシーに対応するパケットのヘッダ処理の実施結果を前記格納メモリから読み出し、その実施結果で前記受信処理にて受信したパケットのヘッダを書き換えることを特徴とする請求項4または請求項5記載のパケット処理方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2013−51536(P2013−51536A)
【公開日】平成25年3月14日(2013.3.14)
【国際特許分類】
【出願番号】特願2011−188092(P2011−188092)
【出願日】平成23年8月31日(2011.8.31)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】