(57)【特許請求の範囲】
【請求項１】
パケットを受信する受信処理手段と、当該パケットのヘッダ部分を解析するヘッダ解析処理手段と、前記ヘッダ部分の処理を行うヘッダ処理手段と、処理したパケットを送信する送信処理手段と、パケット毎のポリシーが決まった段階で、そのポリシーに沿ったパケットのヘッダ処理の実施結果を事前に格納する格納メモリとを少なくとも含むパケット処理装置であって、
前記受信処理手段が、受信したパケットのパケットヘッダのサイズ分をパケット格納メモリに転送した時点で、当該パケットのデータ部分を前記パケット格納メモリに転送するパケット転送処理と前記ヘッダ解析処理手段の処理を行うためのパケット情報の転送処理とを並行して実行し、
前記ヘッダ解析処理手段が、前記受信処理手段にて受信したパケットのパケットヘッダから検索キーを抽出し、
前記ヘッダ処理手段が、前記検索キーを用いてポリシー検索を実施し、ヒットしたポリシーに対応するパケットのヘッダ処理の実施結果を前記格納メモリから読み出し、その実施結果で前記受信処理手段にて受信したパケットのヘッダを書き換え、
前記格納メモリから読み出された実施結果は、その実施結果でヘッダが書き換えられるパケットを前記受信処理手段が受信する前に、前記格納メモリに格納されたものであることを特徴とするパケット処理装置。
【請求項２】
前記受信処理手段が、現在受信処理中のパケットの情報を前記パケット情報として前記ヘッダ解析処理手段に転送することを特徴とする請求項１記載のパケット処理装置。
【請求項３】
パケットを受信する受信処理と、当該パケットのヘッダ部分を解析するヘッダ解析処理と、前記ヘッダ部分の処理を行うヘッダ処理と、処理したパケットを送信する送信処理とを少なくとも含むパケット処理方法であって、
パケット毎のポリシーが決まった段階で、そのポリシーに沿ったパケットのヘッダ処理の実施結果を事前に格納メモリに格納しておき、
前記受信処理において、受信したパケットのパケットヘッダのサイズ分をパケット格納メモリに転送した時点で、当該パケットのデータ部分を前記パケット格納メモリに転送するパケット転送処理と前記ヘッダ解析処理を行うためのパケット情報の転送処理とを並行して実行し、
前記ヘッダ解析処理において、前記受信処理にて受信したパケットのパケットヘッダから検索キーを抽出し、
前記受信処理にて受信したパケットに対する前記ヘッダ処理において、前記検索キーを用いてポリシー検索を実施し、ヒットしたポリシーに対応するパケットのヘッダ処理の実施結果を前記格納メモリから読み出し、その実施結果で前記受信処理にて受信したパケットのヘッダを書き換え、
前記格納メモリから読み出された実施結果は、その実施結果でヘッダが書き換えられるパケットを前記受信処理にて受信する前に、前記格納メモリに格納されたものであることを特徴とするパケット処理方法。
【請求項４】
前記受信処理において、現在受信処理中のパケットの情報を前記パケット情報として前記ヘッダ解析処理に転送することを特徴とする請求項３記載のパケット処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はパケット処理装置及びそれに用いるパケット処理方法に関し、特にパケット処理装置におけるパケット受信処理に関する。
【背景技術】
【０００２】
本発明に関連するパケット処理装置では、各パケット処理部が複数のスレッド処理を実施できる場合でも、パケットの順序逆転が発生するため、受信した順番にパケットを送信する必要がある。
【０００３】
上記のパケット処理装置におけるパケット処理を効率的に行う方法としては、以下の特許文献に記載された技術等がある。特許文献１では、パケット受信部、処理部、送信部各々から後段に処理完了通知を転送し、各処理部の処理結果を多ポートメモリに格納している。特許文献２では、パケット処理を行う各処理部の処理が終了する前の所定のタイミングで、後段の処理部に内部情報の引継ぎを行っている。
【０００４】
特許文献３では、分割した固定長パケットをポインタリンクにより指定されたページに順に格納するパケット格納メモリと、ポインタリンクのページに対応して次にリンクするページを表す次ポインタを格納するポインタ格納メモリを備えている。特許文献４では、パケット処理をパケット処理エンジンと検索エンジンで分散処理する構成としている。
【０００５】
特許文献５では、中央処理装置とメインメモリとの間に、メインメモリより高速に動作するバッファメモリを設け、このバッファメモリにパケットのヘッダ部のみを格納している。特許文献６では、パケット処理を行う各処理部の処理を並列化して処理速度を向上させている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１６４９２４号公報
【特許文献２】特許第４３４２１００号公報
【特許文献３】特開２００６−１３５３７９号公報
【特許文献４】特開２００７−２０８９６３号公報
【特許文献５】特開２００９−０８８６２２号公報
【特許文献６】特開２０１０−１０９７４６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述した本発明に関連するパケット処理装置では、パケット長やパケット種別（処理内容）によって、パケット処理待ち時間が異なることで、パケット順序を整えるためのスレッドの処理待ち時間が発生している。
【０００８】
そのため、本発明に関連するパケット処理装置では、パケット処理効率が悪く、回線のスループットよりも装置でのスループットが低下してしまうという課題がある。加えて、本発明に関連するパケット処理装置では、別途、パケット順序を整える処理が発生していることで、その分の処理負荷がかかり、スループット低下となっている。尚、上記の特許文献１〜６を相互に組み合わせても、上記の課題を解決することはできない。
【０００９】
そこで、本発明の目的は上記の問題点を解消し、パケット処理待ち時間を減少させ、パケット処理の効率をあげることができ、スループットを向上させることができるパケット処理装置及びそれに用いるパケット処理方法を提供することにある。
【課題を解決するための手段】
【００１０】
本発明によるパケット処理装置は、パケットを受信する受信処理手段と、当該パケットのヘッダ部分を解析するヘッダ解析処理手段と、前記ヘッダ部分の処理を行うヘッダ処理手段と、処理したパケットを送信する送信処理手段とを少なくとも含むパケット処理装置であって、
前記受信処理手段が、受信したパケットのパケットヘッダのサイズ分をパケット格納メモリに転送した時点で、当該パケットのデータ部分を前記パケット格納メモリに転送するパケット転送処理と前記ヘッダ解析処理手段の処理を行うためのパケット情報の転送処理とを並行して実行している。
【００１１】
本発明によるパケット処理方法は、パケットを受信する受信処理と、当該パケットのヘッダ部分を解析するヘッダ解析処理と、前記ヘッダ部分の処理を行うヘッダ処理と、処理したパケットを送信する送信処理とを少なくとも含むパケット処理方法であって、
前記受信処理において、受信したパケットのパケットヘッダのサイズ分をパケット格納メモリに転送した時点で、当該パケットのデータ部分を前記パケット格納メモリに転送するパケット転送処理と前記ヘッダ解析処理を行うためのパケット情報の転送処理とを並行して実行している。
【発明の効果】
【００１２】
本発明は、上記のような構成及び動作とすることで、パケット処理待ち時間を減少させ、パケット処理の効率をあげることができ、スループットを向上させることができるという効果が得られる。
【図面の簡単な説明】
【００１３】
【図１】本発明の実施の形態によるパケット処理装置の構成例を示すブロック図である。
【図２】本発明に関連するパケット処理装置における３パケットを受け取った時の処理経過及び時間を示す図である。
【図３】本発明の実施の形態によるパケット処理装置における３パケットを受け取った時の処理経過及び時間を示す図である。
【発明を実施するための形態】
【００１４】
次に、本発明の実施の形態について図面を参照して説明する。まず、本発明によるパケット処理装置の概要について説明する。
【００１５】
本発明によるパケット処理装置は、パケット受信時にパケットヘッダ部をパケットバッファからパケット処理部内のパケット格納メモリへ転送した時点で、次のパケット処理（パケットヘッダを除く残りのパケットデータをパケット格納メモリへ転送するパケット転送処理、ヘッダ解析処理）を並行して実施することで、パケットサイズによる処理待ち時間を少なくすることができる。
【００１６】
また、本発明によるパケット処理装置は、パケットヘッダ部の処理をパケット受信前に実施して記憶しておくことで、パケット種別毎の処理時間差をなくすことができ、スループットを向上させることができる。
【００１７】
さらに、本発明によるパケット処理装置は、自動的にパケットを受信した順番にパケット処理が行われるため、パケット順序保障処理を別途実施する必要がなくなり、パケット処理負荷が軽減されることで、スループットを向上させることができる。
【００１８】
本発明によるパケット処理装置では、パケット受信処理において、パケットヘッダのサイズ分［ＩＰｖ６（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｏｃｏｌ  Ｖｅｒｓｉｏｎ  ６）の最大ヘッダ分］をパケットバッファからパケット処理部内のパケット格納メモリに転送した時点で、パケット転送処理と、次処理（ヘッダ解析処理）とを並行して処理することができるようにするために、受信処理中のパケットの情報［パケットＩＤ（ＩＤｅｎｔｉｆｉｅｒ）］を次のパケット処理部内の処理部へ渡す。
【００１９】
パケットのデータ部は、パケット受信処理にてパケット格納メモリに転送され、送信処理にてパケット格納メモリから送信バッファへ転送されるだけなので、次処理も並行してパケット処理が可能となる。パケット受信処理部の各スレッドは、パケット受信から次処理へのパケット受け渡しまでの時間が一定となり、パケット長による処理時間差はなくなる。
【００２０】
また、本発明によるパケット処理装置では、パケット毎のポリシーが決まった段階で、そのポリシーに沿ったパケットヘッダ処理を事前に実施し、パケット処理内部のメモリに格納しておくことで、ヘッダ処理部は、ポリシーの検索と、変換後のパケットヘッダをパケット格納メモリの該当するパケットデータに対して保存する処理とを実施することになる。よって、パケット種別（処理内容）が異なるパケットを受信しても、ヘッダ処理部は、決まった動作を実施するのみなので、処理時間差がなくなる。
【００２１】
上記のように、本発明によるパケット処理装置では、各処理部の処理時間差をなくすことで、各処理部での待ち時間、また各スレッドの待ち時間がなくなり、パケット処理効率化によりスループット向上を図れる。
【００２２】
さらに、本発明によるパケット処理装置では、各パケット処理部でのパケット処理時間が均一になることで、パケットを受信した順番に自動的に送信処理までパケットを処理することができる。そのため、本発明によるパケット処理装置では、パケットの順序を気にせずに、パケットの順序を保証することができるという利点がある。
【００２３】
これによって、本発明によるパケット処理装置では、パケット順序制御を行う必要がなくなるため、パケット処理が軽減され、さらにスループット向上が可能となる。
【００２４】
図１は本発明の実施の形態によるパケット処理装置の構成例を示すブロック図である。図１において、本発明の実施の形態によるパケット処理装置は、回線１，１０と、受信バッファ２と、パケット処理部３と、パケット受信処理完了フラグ４と、パケット格納メモリ５と、ポリシー検索デバイス６と、ヘッダ格納メモリ７と、ポリシー制御部８と、送信バッファ９とから構成されている。
【００２５】
パケットは、回線１，１０から送受信され、送受信の際は受信バッファ２、送信バッファ９各々に一時的に保存される。
【００２６】
パケット処理部３は、受信部３１と、ヘッダ解析部３２と、ヘッダ処理部３３と、送信部３４とを備えている。受信部３１、ヘッダ解析部３２、ヘッダ処理部３３、送信部３４各々は、３つのスレッドで構成されていると仮定し、各スレッド「１」〜「３」はパラレルに動作可能としている。
【００２７】
また、パケット格納メモリ５は、パケット処理部３内のパケット格納メモリを表している。ポリシー検索デバイス６は、ポリシーの検索を行うデバイスであり、ヘッダ格納メモリ７は、ポリシーに沿ったパケットヘッダを格納している。パケット情報３０は、パケット処理部３の各処理部の間のパケット情報（パケットＩＤ、ポリシー検索キー）を示している。
【００２８】
パケット処理部３において、受信部３１は、受信バッファ２のパケット受信状況を常時監視しており、パケットが格納されてからすぐにパケット格納メモリ５にパケットを転送するものとする。その時、パケット格納メモリ５は、受信部３１のスレッドと対応付けられるかたちで３個用意されており、各スレッドが他スレッドに干渉されることなく、受信部３１に同時にアクセスできる仕様となっている。
【００２９】
また、受信部３１は、パケット情報３０の取得、パケットのヘッダ部をパケット格納メモリ５に格納した時点で、パケット情報３０をヘッダ解析部３２に受け渡した後で、残りのパケットをパケット格納メモリ５に転送する。受信部３１は、すべてのパケットデータのパケット格納メモリ５への転送が完了すると、また受信バッファ２のパケット受信状況を確認する。
【００３０】
ヘッダ解析部３２は、受信部３１からパケット情報３０を受け取り、そのパケット情報３０を基に、パケット格納メモリ５に格納されている該当パケットのヘッダ部分の解析を実施する。
【００３１】
ヘッダ解析部３２は、主に、パケットヘッダのチェックとポリシー検索に使用される検索キーの抽出とを行い、パケット情報３０の検索キーを更新してヘッダ処理部３３に受け渡す。ヘッダ解析部３２は、上記の動作を繰り返すものとする。
【００３２】
ヘッダ処理部３３は、ヘッダ解析部３２からパケット情報３０を受け取り、パケット情報３０内の検索キーを用いてポリシー検索を実施する。ポリシー検索デバイス６は、ヒットしたポリシーに対応したヘッダ格納メモリ７のアドレスをヘッダ処理部３３に返す。
【００３３】
ヘッダ処理部３３は、ポリシー検索デバイス６からのアドレスを基にヘッダ格納メモリ７からポリシーに沿ったパケットヘッダを取得し、パケット格納メモリ５のヘッダ部分への上書きを実施する。ヘッダ処理部３３は、ヘッダ処理が完了したら、パケットデータを送信部３４に渡す。ヘッダ処理部３３は、上記の動作を繰り返すものとする。
【００３４】
送信部３４は、ヘッダ処理部３３からパケット情報３０を受け取り、そのパケット情報３０を基に、パケット格納メモリ５から取得したパケットを送信バッファ９に転送する。送信部３４は、この動作を繰り返す。但し、送信部３４は、受信部３１の処理とは違い、パケット長が異なることで、送信バッファ９への転送処理時間が異なることから、パケット順序を保証するために、各スレッド「１」〜「３」はパラレルでは動作できないものとする。
【００３５】
ポリシー制御部８は、新たなポリシー登録があった場合や、ポリシーの変更及び削除が発生した場合に、ポリシー検索デバイス６にポリシー検索キー登録の実施と、ヘッダ格納メモリ７にポリシーに沿ったパケットヘッダを格納する。
【００３６】
また、本発明の実施の形態によるパケット処理装置では、受信部３１のパケットヘッダを除く転送処理が、ヘッダ解析部３２、ヘッダ処理部３３、送信部３４各々の処理よりも時間がかかる場合に備えて、受信部３１がパケット転送を完了したパケット受信処理完了フラグ４を用意する。送信部３４は、送信バッファ９へのパケット転送前に、パケットＩＤに対応したフラグを確認し、処理完了を確認して転送処理を実施する。
【００３７】
図２は本発明に関連するパケット処理装置における３パケットを受け取った時の処理経過及び時間を示す図であり、図３は本発明の実施の形態によるパケット処理装置における処理経過及び時間を示す図である。
【００３８】
図２においては、本発明に関連するパケット処理を想定し、パケット処理受信部では、受信したパケットのパケット転送処理（パケットをパケット格納メモリへ転送する処理）がすべて完了した時点で次処理（ヘッダ解析処理）にパケット情報を受け渡すものとする。
【００３９】
また、ヘッダ処理部では、ポリシーに沿った処理を受信したパケット毎に実施するため、異なる処理パケットを受信した場合にヘッダ処理時間が異なる。送信部では、受信処理時に取得したパケットＩＤの順番にパケットを送信するように、パケット順序保障を実施する。
【００４０】
図３においては、本発明の実施の形態でのパケット処理経過及び時間を示す。図３においては、図２に示す本発明に関連するパケット処理装置での処理と異なり、受信部３１にてパケットを受信し、パケット格納メモリ５にパケットヘッダ分の転送が完了した時点で、次処理（ヘッダ解析部３２）にパケット情報３０を受け渡すものとする。
【００４１】
また、ヘッダ処理部３３では、予めポリシーに沿ったパケットヘッダが用意されているため、異なる処理のパケットを受信した場合でも、処理時間は同じとする。送信部３４では、パケット順序を気にする必要がないため、パケット順序保障処理は実施しないものとする。
【００４２】
図２において、「ａ」，「ｂ」，「ｃ」のパケットをほぼ同時に受信したと仮定し、「ａ」，「ｂ」，「ｃ」の順でパケット処理するものとする。「ａ」のパケット長は「３ｘ」、「ｂ」のパケット長は「２ｘ」、「ｃ」のパケット長は「ｘ」とし、パケット長「ｘ」を送受信する時間を「ｔ」とする。また、ヘッダ処理部３３での受信処理時間をそれぞれ「３ｔ」，「２ｔ」，「ｔ」と仮定する。
【００４３】
図３では、図２と同様のパケットを受信したと仮定し、パケットのヘッダ部の長さは「１／２ｘ」とする。ヘッダ処理部３３は、「ａ」，「ｂ」，「ｃ」とも時間「ｔ」かかるものとする。パケット解析部３２は、図２及び図３において、ともに処理時間「ｔ」かかるものとする。図２及び図３には出てこないが、本発明に関連するパケット処理装置では順序保障を実施しているが、本発明の実施の形態では未実施（意識しないもの）とする。
【００４４】
また、図２及び図３に共通して、回線のスループットはパケット処理装置のパケット処理のスループットよりも十分に早いものとし、回線⇔パケットバッファ間での待ち時間は発生しないものとする。
【００４５】
図２に示す処理の場合、受信部から次処理部へのパケット受け渡し時間が異なること、ヘッダ処理部の時間が異なることにより、パケット「ｂ」でのパケット処理待ち時間が「５ｔ」、パケット「ｃ」でのパケット処理待ち時間が「９ｔ」となり、処理している時間よりも処理待ち時間が長いことがわかる。よって、パケット受信からパケット送信処理の完了まで、３パケットの処理時間は「１３ｔ」であることがわかる。
【００４６】
一方、図３に示す処理の場合は、受信処理から次処理へのパケット受け渡しまでの時間が同じであること、パケットのヘッダ部分の処理時間が同じであることにより、処理待ち時間がパケット「ｂ」で「３．５ｔ」、パケット「ｃ」で「５．５ｔ」と、図２に示す処理よりも短くなっていることがわかる。
【００４７】
すなわち、３パケットの処理時間は「９ｔ」となり、本発明に関連するパケット処理装置の処理（図２に示す処理）よりも大幅に改善されていることがわかる。また、本発明の実施の形態では、パケット順序保障を実施する必要がないため、処理負荷が軽減され、その分パケット処理に時間を使うことができるため、さらにパケット処理時間を短くすることができる。
【００４８】
以上説明したように、本実施の形態では、以下のような効果を奏する。つまり、本発明に関連するパケット処理装置では、パケット受信処理が完全に終了してから次処理へとパケットを渡していたために、パケット長によって受信部でのパケット処理時間が異なることが、パケット処理待ち時間を増やしている。
【００４９】
これに対して、本実施の形態では、受信処理がパケットのヘッダ部分の転送が完了した時点で、次処理へパケット情報を受け渡すことで、処理部同士が並行してパケット処理を実施することができる。そのため、本実施の形態では、パケット処理待ち時間が減少し、パケット処理の効率があがり、スループットを向上させることができるという効果が期待できる。
【００５０】
また、本実施の形態では、パケット毎のポリシーが決まった段階で、それにあったヘッダ処理を事前に実施し、その内容をメモリに記憶しておくことで、パケット受信時のヘッダ処理がポリシー検索と事前に処理されたヘッダを付け替えることのみとなる。そのため、ポリシーが異なるパケット処理時でも、ヘッダ処理時間が一定となりパケット処理待ち時間が減少でき、スループット向上するという効果が期待できる。
【００５１】
さらに、本実施の形態では、上記の動作を実施することで、パケット処理部３の各処理部の処理時間（送信処理を除く）が等しくなる。よって、本実施の形態では、受信から送信までのパケット順序を意識することなく、パケット処理を実施することが可能となるため、処理負荷の軽減が期待される。その分、パケット処理を実施することが可能となり、スループットの向上が期待できる。
【００５２】
本発明においては、上記の実施の形態で、パケット処理部３を受信部３１、ヘッダ解析部３２、ヘッダ処理部３３、送信部３４の４つの処理部で構成しているが、上記の構成に加えて、レートリミット処理やＱＯＳ（Ｑｕａｌｉｔｙ  Ｏｆ  Ｓｅｒｖｉｃｅ）処理等、さらに高度な処理を追加することも可能である。
【００５３】
この場合、処理の有無や、レートリミット、ＱＯＳの値によっては、パケット毎の処理時間が異なることが想定されるが、上記の受信部３１で実施したように、一定の処理（必要処理）が終了した時点で、次処理にパケットを渡してしまうことで、並行してパケット処理を実施することができ、パケット処理の処理時間差を小さくすることができる。
【００５４】
また、この場合には、上述した本発明の実施の形態と同様に、パケット順序保障を意識することなく、パケット処理を実施することができるため、処理負荷を軽減することができる。
【産業上の利用可能性】
【００５５】
本発明は、パケット処理負荷の高い装置（各拠点間をつなぐまたはユーザパケット集約、転送するスイッチやルータ等のパケット伝送装置）、また順序保障が必要な装置（音声や動画パケットを転送する装置）に対して大きな効果を発揮するものと考えられる。
【符号の説明】
【００５６】
１，１０  回線
２  受信バッファ
３  パケット処理部
４  パケット受信処理完了フラグ
５  パケット格納メモリ
６  ポリシー検索デバイス
７  ヘッダ格納メモリ
８  ポリシー制御部
９  送信バッファ
３０  パケット情報
３１  受信部
３２  ヘッダ解析部
３３  ヘッダ処理部
３４  送信部
【図１】
0005811698.tif 000002
【図２】
0005811698.tif 000003
【図３】
0005811698.tif 000004