JP3635660B2 - Packet processing apparatus and packet transfer method thereof - Google Patents
Packet processing apparatus and packet transfer method thereof Download PDFInfo
- Publication number
- JP3635660B2 JP3635660B2 JP2001385748A JP2001385748A JP3635660B2 JP 3635660 B2 JP3635660 B2 JP 3635660B2 JP 2001385748 A JP2001385748 A JP 2001385748A JP 2001385748 A JP2001385748 A JP 2001385748A JP 3635660 B2 JP3635660 B2 JP 3635660B2
- Authority
- JP
- Japan
- Prior art keywords
- packet
- processing
- transfer
- control information
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Multi Processors (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Description
【0001】
【発明の属する技術分野】
本発明は、パケットに対する処理を分散処理するパケット処理装置に関し、特に、転送経路別の転送順序に基づいて各パケットを転送するパケット処理装置とそのパケット転送方法に関する。
【0002】
【従来の技術】
インターネットの普及とCATV、ADSL、光ファイバーといった広帯域アクセス網の普及により、インターネット上を流れるトラヒック量が増大している。インターネット上のルータやサーバ等のパケット処理装置は、装置の高速化や負荷分散処理を用いて、トラヒックの増加に対応している。
【0003】
こうしたトラヒックの増加に対応する従来技術として、特開2000−222374号公報に開示された負荷分散型パケット並列処理装置がある。
【0004】
この従来技術は、複数のパケットプロセッサを用いてパケット処理を行ない、かつ1つのパケットプロセッサに負荷が集中しないように、各パケットプロセッサの負荷状況を確認しながら、最も負荷の軽いパケットプロセッサへパケットを配分するパケット処理装置を提案している。これにより、各パケットプロセッサの負荷が平均化されるという効果を得ている。
【0005】
ここでパケット処理とは、転送するパケットのヘッダ部の書き換え処理や、そのパケットの送信に用いるポートを適正に選択する等の処理である。また、パケットプロセッサとは、パケット処理装置内において、こうしたパケット処理やパケットの転送を実行するプロセッサである。
【0006】
【発明が解決しようとする課題】
しかし、上述した従来技術では、フロー(転送経路)毎の転送順序に基づいて各パケットを正しく転送することができいという問題点があった。
【0007】
つまり、特開2000−222374号公報の従来の技術では、各パケットプロセッサの負荷状況のみに基づいて、各パケットプロセッサに対するパケットの分配を判断している。このため、同一の端末の同一のアプリケーションから発せられた複数のIPパケット等の、フロー(転送経路)が同一の複数のパケットが、異なるパケットプロセッサで処理される可能性がある。そして、各パケットプロセッサにおける負荷はそれぞれに異なるため、各パケットプロセッサの処理時間のばらつきにより各パケットの順序の逆転が生じることがあった。
【0008】
本発明の目的は、上記従来技術の欠点を解決し、複数のパケットプロセッサにより処理を分散すると共に、転送経路毎の転送順序に基づいて各パケットを転送することのできるパケット処理装置とそのパケット転送方法を提供することにある。
【0009】
【課題を解決するための手段】
上記目的を達成するため本発明のパケット処理装置は、パケットを転送する転送プロセッサを複数備えるパケット処理装置において、受信した各前記パケットの処理の有無を示す処理状態を示すと共に転送順序を転送経路別に示す制御情報を生成する手段を備え、各前記転送プロセッサが、個別に、前記制御情報に示される処理状態を参照してパケット処理を行うと共に、前記転送経路別の転送順序に基づいて、各前記パケットを転送する手段を備えることを特徴とする。
【0010】
請求項2の本発明のパケット処理装置は、前記制御情報が、各前記パケット毎に、当該パケットに対するパケット処理が未処理であるのか処理済であるのかを示す情報と、当該パケットが排他制御中であるか否かを示す情報を含み、各前記転送プロセッサが、個別に、各前記パケットに対し前記パケット処理を実行する手段を備え、前記制御情報に示される、前記パケット処理が未処理でありかつ前記排他制御中でない前記パケットに対して、前記パケット処理を実行することを特徴とする。
【0011】
請求項3の本発明のパケット処理装置は、各前記転送プロセッサが、前記制御情報に示される各前記パケットの情報を、当該パケットに対する前記パケット処理の開始時に、当該パケットが前記排他制御中である旨を示すように更新し、当該パケットに対する前記パケット処理の完了時に、当該パケットが前記排他制御中ではなくかつ前記パケット処理が処理済である旨を示すように更新する手段を備えることを特徴とする。
【0012】
請求項4の本発明のパケット処理装置は、各前記転送プロセッサが、前記パケットに対する前記パケット処理の終了時点において、当該パケットと伝送経路が同一である転送待機中の他のパケットが存在しない場合、前記パケット処理を終了した前記パケットを転送することを特徴とする。
【0013】
請求項5の本発明のパケット処理装置は、前記制御情報が、各前記パケット毎に、かつ当該パケットに対し各前記転送プロセッサの少なくとも1つにより処理可能である各処理毎に、各前記処理が未処理であるのか処理済であるのかを示す情報を含み、各前記転送プロセッサが、前記制御情報に基づいて、前記排他制御中でない前記パケットに対して、前記パケットにおいて未処理でありかつ当該転送プロセッサにより処理可能な前記処理を実行することを特徴とする。
【0014】
請求項6の本発明のパケット処理装置は、各前記転送プロセッサにおいて機能する各タスクのそれぞれに、前記制御情報に基づいて、各前記パケットに対する前記パケット処理を実行させることを特徴とする。
【0015】
請求項7の本発明のパケット処理装置は、前記制御情報が、各前記パケット毎に、かつ当該パケットに対し各前記転送プロセッサにおいて機能する各タスクの少なくとも1つにより処理可能である各処理毎に、各前記処理が未処理であるのか処理済であるのかを示す情報を含み、各前記転送プロセッサにおいて機能する各タスクのそれぞれに、前記制御情報に基づいて、前記排他制御中でない前記パケットに対して、前記パケットにおいて未処理でありかつ当該タスクにより処理可能な前記処理を実行させることを特徴とする。
【0016】
請求項8の本発明のパケット処理装置は、各前記転送プロセッサにおいて機能する各タスクのそれぞれに、前記制御情報に示される転送経路別の転送順序に基づいて、各前記パケットの転送を実行させることを特徴とする。
【0017】
請求項9の本発明のパケット転送方法は、パケットを転送する転送プロセッサを複数備えるパケット処理装置のパケット転送方法において、受信した各前記パケットの処理の有無を示す処理状態を示すと共に転送順序を転送経路別に示す制御情報を生成するステップを備え、各前記転送プロセッサが、個別に、前記制御情報に示される処理状態を参照してパケット処理を行うと共に、前記転送経路別の転送順序に基づいて、各前記パケットを転送するステップを備えることを特徴とする。
【0018】
請求項10の本発明のパケット転送方法は、前記制御情報が、各前記パケット毎に、当該パケットに対するパケット処理が未処理であるのか処理済であるのかを示す情報と、当該パケットが排他制御中であるか否かを示す情報を含み、各前記転送プロセッサが、個別に、前記制御情報に示される、前記パケット処理が未処理でありかつ前記排他制御中でない前記パケットに対して、前記パケット処理を実行するステップを備えることを特徴とする。
【0019】
請求項11の本発明のパケット転送方法は、各前記転送プロセッサが、前記制御情報に示される各前記パケットの情報を、当該パケットに対する前記パケット処理の開始時に、当該パケットが前記排他制御中である旨を示すように更新し、当該パケットに対する前記パケット処理の完了時に、当該パケットが前記排他制御中ではなくかつ前記パケット処理が処理済である旨を示すように更新するステップを備えることを特徴とする。
【0020】
請求項12の本発明のパケット転送方法は、各前記転送プロセッサが、前記パケットに対する前記パケット処理の終了時点において、当該パケットと伝送経路が同一である転送待機中の他のパケットが存在しない場合、前記パケット処理を終了した前記パケットを転送することを特徴とする。
【0021】
請求項13の本発明のパケット転送方法は、前記制御情報が、各前記パケット毎に、かつ当該パケットに対し各前記転送プロセッサの少なくとも1つにより処理可能である各処理毎に、各前記処理が未処理であるのか処理済であるのかを示す情報を含み、各前記転送プロセッサが、前記制御情報に基づいて、前記排他制御中でない前記パケットに対して、前記パケットにおいて未処理でありかつ当該転送プロセッサにより処理可能な前記処理を実行することを特徴とする。
【0022】
請求項14の本発明のパケット転送方法は、各前記転送プロセッサにおいて機能する各タスクのそれぞれに、前記制御情報に基づいて、各前記パケットに対する前記パケット処理を実行させることを特徴とする。
【0023】
請求項15の本発明のパケット転送方法は、前記制御情報が、各前記パケット毎に、かつ当該パケットに対し各前記転送プロセッサにおいて機能する各タスクの少なくとも1つにより処理可能である各処理毎に、各前記処理が未処理であるのか処理済であるのかを示す情報を含み、各前記転送プロセッサにおいて機能する各タスクのそれぞれに、前記制御情報に基づいて、前記排他制御中でない前記パケットに対して、前記パケットにおいて未処理でありかつ当該タスクにより処理可能な前記処理を実行させることを特徴とする。
【0024】
請求項16の本発明のパケット転送方法は、各前記転送プロセッサにおいて機能する各タスクのそれぞれに、前記制御情報に示される転送経路別の転送順序に基づいて、各前記パケットの転送を実行させることを特徴とする。
【0026】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0027】
図1は、本発明の第1の実施の形態によるパケット処理装置1000の構成を示すブロック図である。
【0028】
本実施の形態のパケット処理装置1000は、各パケットの転送順序を転送経路別に示す制御情報を生成し、その制御情報を複数のパケットプロセッサ(転送プロセッサ)30a、30bがそれぞれ個別に参照して各パケットを転送経路別の転送順序に基づいて転送することを特徴とする。これにより、複数のパケットプロセッサ30a、30bによる負荷分散と共に、転送経路毎の転送順序に基づく各パケットの転送を実現する。
【0029】
また本実施の形態では、各パケット毎の、パケット処理に関する情報を含めて、上述の制御情報を生成することにより、制御情報を各パケットプロセッサ30a、30bによるパケット処理の負荷分散にも用いる。
【0030】
ここで、パケット処理に関する情報とは、各パケットにおいて、パケット処理が未処理であるのか処理済であるのかを示す情報や、そのパケットが排他制御中であるか否かを示す情報等である。また、各パケットプロセッサ30a、30bは、それぞれ個別にこの制御情報を、そのパケットプロセッサ30a、30bにおけるパケット処理等の進行に応じて随時更新する。
【0031】
図1を参照すると、本実施の形態のパケット処理装置1000は、パケットインタフェース10、受信プロセッサ20、複数のパケットプロセッサ30a、30b、メモリアクセス調停部50、メインメモリ60を備えている。
【0032】
また、受信プロセッサ20及び各パケットプロセッサ30a、30bは、バス40によりパケットインタフェース10と接続され、バス41によりメモリアクセス調停部50と接続されている。
【0033】
ここで図1では、2個のパケットプロセッサ30a、30bが示されているが、その個数を限定する必要はなく、パケットプロセッサを2個以上の任意の個数(3個、4個、…)備える場合においても本実施の形態と同様にして実施することができる。
【0034】
パケットインタフェース10は、外部の装置やネットワークとのパケット入出力を行なう。パケットインタフェース10は、外部から受信したパケットを受信プロセッサ20に送り、また、外部に送信するパケットを各パケットプロセッサ30a、30bから受け付けて送信する。
【0035】
受信プロセッサ20は、受信したパケットをメインメモリ60に格納すると共に、そのパケットの受信に応じてメインメモリ60中に格納されている制御情報を更新する。
【0036】
各パケットプロセッサ(転送プロセッサ)30a、30bは、受信した各パケットに対してパケット処理やパケットの転送を行なうためのプロセッサである。パケット処理は、例えばIP(Internet Protocol)パケット処理等を行なう。
【0037】
メモリアクセス調停部50は、受信プロセッサ20及び各パケットプロセッサ30a、30bからメインメモリ60への、メモリアクセス調停を行なう。
【0038】
メインメモリ60は、受信プロセッサ20及び各パケットプロセッサ30a、30bからのアクセスを受け付けて、受信パケットや送信パケットまたパケット処理等で使用する制御情報等の各種データの入力や更新を受け付けて、これらのデータを保持する。
【0039】
次に、本実施の形態の動作を説明する。ここでは、各パケットをIPパケットとし、パケット処理をIPパケット処理とする場合を例に説明する。
【0040】
図5は、本実施の形態の受信プロセッサ20の動作を説明するためのフローチャートであり、図6は、本実施の形態の各パケットプロセッサ30a、30bのパケット処理の動作を説明するためのフローチャートであり、図7は、本実施の形態のパケットプロセッサ30a、30bのパケット送信の動作を説明するためのフローチャートである。
【0041】
また、図1においては、本実施の形態のパケット処理装置1000内のIPパケットの処理の流れを、パケットフロー70により示している。
【0042】
また図2は、本実施の形態によるパケット処理装置1000の実施例を示す図である。図2では、各プロセッサに割り当てられた機能も示しており、受信プロセッサ20は、パケットを受信する受信処理部21と、制御情報を生成するチェーン生成部22を備えている。また、各パケットプロセッサ30a、30bは、パケット処理を実行するパケット処理部31と、パケットを送信する送信処理部32を備えている。
【0043】
図5を参照すると本実施の形態の受信プロセッサ20は、まず受信処理部21により、パケットインタフェース10から入力されたIPパケットを受信して、パケット受信処理を行なう(ステップ1001)。そして、チェーン生成部22により、制御情報である到着シーケンスチェーン61とフロー別チェーン62の2種類のパケットチェーンを生成して、メインメモリ60内に格納する(ステップ1002、1003)。また、受信したパケットは、メインメモリ60に格納する(ステップ1004)。
【0044】
到着シーケンスチェーン61は、各パケットの到着順を示すチェーンである。図2においては、パケット▲1▼、▲2▼、▲3▼、…というように到着シーケンスチェーン61を組んでいる。
【0045】
フロー別チェーン62は、各パケットの到着順をフロー別に示すチェーンである。図2においては、各フロー毎に到着したパケットが示されており、例えば、到着シーケンスチェーン61のパケット▲1▼と同一のフローのパケットは、パケット▲1▼、▲5▼、▲7▼、…の順に到着していることが示されている。
【0046】
受信プロセッサ20のチェーン生成部22は、例えばIPv4パケットの場合は、Source IPアドレスやDestination Address、プロトコル情報、TCP/IPのSource Port番号やDestination Port番号、TOS情報を基に、フロー別チェーン62を生成することができる。またIPv6パケットの場合は、受信プロセッサ20は、Source IPアドレスやプロトコル情報、TCP/IPのSource Port番号やDestination Port番号、Traffic Class情報、Flow Label情報を基に、フロー別チェーン62を生成することができる。
【0047】
到着シーケンスチェーン61とフロー別チェーン62の2つのチェーンは、本実施の形態のパケット処理装置1000が、パケット処理等行なうために用いる制御情報であり、図3にその例を示し、図4にて図3に示される各パケットの制御情報の一具体例を示している。
【0048】
パケット番号100〜140は、各々の受信パケットに割り当てた番号である。図4では、各パケットP100〜P140のパケット番号として、それぞれに100〜140を割り当てている。
【0049】
到着ポインタ200〜240は、双方向ポインタであり、到着シーケンスチェーン61を形成するために使用する。図3の到着ポインタ同士の接続から分かるように、逆方向のポインタは後に到着したパケット番号、順方向のポインタは前に到着したパケット番号を示している。
【0050】
フローポインタ300〜340は、双方向ポインタで、フロー別チェーン62を形成するために使用する。図3のフローポインタ同士の接続から分かるように、逆方向のポインタは、同一フローで後に到着したパケット番号、順方向のポインタは、同一フローで前に到着したパケット番号を示している。
【0051】
図3、図4を参照すると、到着ポインタ200〜240に示されるように、各パケットP100〜P140は、パケットP100を先頭にパケットP140までその番号順に到着している。また、フローポインタ300〜340に示されるように、フローは、P100、P130、P140の順番に到着したフローと、P110、P120の順番に到着したフローとがある。
【0052】
受信処理状態400〜440は、その各パケットに対する受信プロセッサ20での処理状態を示す。例えば、受信処理状態400が「00」ならば未処理、「01」ならば処理中、「10」ならば処理完了を示している。
【0053】
図4の受信処理状態400〜440を参照すると、パケットP100〜P130(パケット番号が100〜130のパケット)は受信処理が完了しており、またパケットP140は現在受信処理中である。
【0054】
処理状態A 500〜540は、その各パケットに対するパケットプロセッサ30aの処理状態を示し、処理状態B 600〜640は、その各パケットに対するパケットプロセッサ30bの処理状態を示す。処理状態A 500〜540及び処理状態B 600〜640は、「00」ならば未処理、「01」ならば処理中、「10」ならば処理完了を示している。
【0055】
図4の処理状態A 500〜540、処理状態B 600〜640を参照すると、まだ処理を完了したパケットは1つもなく、パケットプロセッサ30bはパケットP100に対し処理中であり、パケットプロセッサ30aには処理中のパケットはない。また、このように図4の状態においてはパケットP100とパケット140は現在排他制御中であるため、パケットプロセッサ30aは、これ以外のパケットに対してパケット処理を行なう。
【0056】
受信プロセッサ20は、パケット受信を開始すると、メインメモリに前記制御情報を格納し、受信パケットの受信処理を行なう。例えば、この受信パケットに図3のパケット番号100が割り当てられると、到着ポインタ200とフローポインタ300への値の割り当て(連結処理)を行ない、処理状態A 500を「10」(処理完了)に設定する。処理状態A 500と処理状態B 600は「00」の未処理状態に設定する。
【0057】
図6を参照すると、各パケットプロセッサ30a、30bは、まず到着シーケンスチェーン61の先頭を監視することによって、受信パケットの有無を検知する(ステップ1101)。
【0058】
例えば、前記パケット番号100のパケットを、パケットプロセッサ30aが到着シーケンスチェーン61の先頭に検知すると、パケットプロセッサ30aは処理状態A 500の状態をチェックする。
【0059】
このとき処理状態A 500が「00」(未処理)であれば、パケットプロセッサ30aが、このパケットのパケット処理処理を行なう(ステップ1102)。
【0060】
もし処理状態B 600が「01」(処理中)であれば、このパケットはパケットプロセッサ30bが処理中であることを示している。従って、パケットプロセッサ30aは、このパケットに対する処理を行なわない(ステップ1103)。
【0061】
このようにして、パケット処理が未処理でありかつ他のパケットプロセッサ30bにより処理中ではない(排他制御中ではない)場合に、当該パケットに対しパケット処理を実行する(ステップ1104、1103)。
【0062】
パケット処理においては、パケットプロセッサ30aは、そのパケット処理の進行に応じて、随時そのパケットの制御情報を更新する。つまり、パケット処理の開始時点において、そのパケットの制御情報である処理状態A 500をパケット処理実行中(排他制御中)を示す「01」に更新する(ステップ1104、1105)。また、パケット処理の完了時点において、そのパケットの制御情報である処理状態A 500を、パケット処理完了を示す「10」に更新する(ステップ1106、1107)。
【0063】
次にパケットプロセッサ30aは、到着ポインタ200を参照して、次のパケットがあるかどうかを調べ(ステップ1108)、もしある場合にはそのパケットに対しステップ1102以下の処理を同様に実行する。また、もし次のパケットがない場合には、ステップ1101に戻り新たなパケットの到着を待機する。
【0064】
ここでは、次のパケットとしてパケットP110があるため、そのパケットP110の処理状態A 510をチェックする等の、ステップ1102以下の処理を同様に実行する。
【0065】
以上のようにして、受信パケットに対するパケット処理は、制御情報を参照することにより2つのパケットプロセッサ30a、30bが独立に行なうことができ、パケット処理を複数のパケットプロセッサ30a、30bに効率よく負荷分散することができる。
【0066】
また、本実施の形態のパケットプロセッサ30a、30bは、送信処理部32を備えることにより、パケットの送信処理も行なう。
【0067】
図7を参照すると、本実施の形態の各パケットプロセッサ30a、30bのパケット送信の動作は、まず各パケットプロセッサ30a、30bは、独立にフロー別チェーン62の各チェーンの先頭に送信可能なパケットがあるかどうかをチェックする(ステップ1201)。ここで、送信可能なパケットとは、パケット処理の完了した排他制御中ではない(処理中ではない)パケットであり、そのパケットの制御情報を確認することでチェックすることができる。
【0068】
またここでは、フロー別チェーン62の各チェーンの先頭に、最後に送信したパケットの制御情報を保持する方式を採用している。これにより、各パケットプロセッサ30a、30bは、この制御情報のフローポインタが持つ順方向ポインタを参照することで、次に送信すべきパケットを特定する。
【0069】
例えば、最後に送信したパケットがパケット番号100を持つパケット(パケットP100)であったとすると、その保持されている制御情報を参照することで、次に送信すべきパケットがパケット番号130を持つパケット(パケットP130)であることが分かる。
【0070】
この場合、パケットプロセッサ30aは、パケットP130の処理状態A 530、処理状態B 630をチェックする。処理状態A 530又は処理状態B630が「10」(処理完了)であれば、パケット処理が終了しているので送信可能であることが分かる。
【0071】
ここで送信可能の場合には、パケットプロセッサ30aは、パケット番号130のパケットを送信する(ステップ1202)。そしてパケットプロセッサ30aは、パケットP130の送信に伴いメインメモリ60内の制御情報を更新する(ステップ1203)。これは、フロー別チェーン62のそのチェーンにおいて現在保持されているパケットP100の制御情報を削除し、パケットP130の制御情報を前回送信したパケットの情報として保持する等の処理を行なう。
【0072】
以上のパケットプロセッサ30aのパケット送信処理は、パケットプロセッサ30bの送信処理でも同様である。
【0073】
また、本実施の形態の送信処理においては、フロー別チェーン62の各フローのチェーンに対し、その先頭の送信可能なパケットをチェックする順番は任意であり、例えばフロー別にこれをチェックする優先順位を設定することにより、パケットを送信する優先度をフロー単位に設定することが可能である。
【0074】
以上説明したように、本実施の形態のパケット処理装置1000によれば、制御情報を参照することにより、複数のパケットプロセッサが独立にパケット単位でパケット処理を行なうことができる。従って、パケット処理の負荷が各々のパケットプロセッサに分散され、各々のパケットプロセッサの処理能力を効果的に利用できるうえ、装置全体の処理能力の向上が見込める。
【0075】
また、フロー別チェーン62を備えてパケットのフロー別の転送順序を管理することにより、装置内でのパケットを転送する順序の逆転を防ぐことができる。また、パケット送信処理において、フロー別チェーンに優先度をつけて読み出すことも可能であり、これによりQoS保証機能を持ったパケット処理装置としても動作可能である。
【0076】
また、メモリアクセス調停部によりメモリアクセスを調停することにより、複数のパケットプロセッサが同時にメモリアクセスを行なうことを防止でき、例えば参照中の制御データが上書きされたりするような誤動作を防止できる。
【0077】
また、パケット同士を双方向ポインタでチェーンすることにより、パケット処理で、例えばQoS廃棄が発生したとしても、その廃棄パケットの前後のパケットの制御情報に含まれる双方向チェーンを書き換えることでパケット送信処理に影響を与えることがない。
【0078】
また、上記本実施の形態の図1の例では、2個のパケットプロセッサ30a、30bを備える場合を例として説明したが、パケットプロセッサの個数はこれに限るものではない。また、より多くの個数のパケットプロセッサ(パケットプロセッサ30c、30d、…)を備える場合には、各パケットの制御情報として、パケットプロセッサの個数に対応させて処理状態A、処理状態B、処理状態C、処理状態D、…を備えることにより、上記第1の実施の形態と同様にして、各パケットプロセッサが分散処理を行なうことがでいる。
【0079】
次に、本発明の第2の実施の形態を説明する。
【0080】
一般的なパケット処理装置、例えばルータでは、さまざまなフローのIPパケットが到来する。メインメモリ60の容量にも限界があるので、登録できるフロー数にも制限がある。従って、フローの登録エリアを有効に活用する必要がある。
【0081】
パケットフローの順序を保証しなければならないのは、パケット処理装置内に、そのフローの1個以上のパケットが滞留している場合である。従って、滞留していない場合は、そのフローの登録を解放しても問題はない。
【0082】
そこで、本発明の第2の実施の形態では、第1の実施の形態の構成に加えて、パケット滞留状況を監視するためのフローテーブル700を新たに備える。図8に、そのフローテーブル700の構成の一例を示す。
【0083】
図8では、Source IPアドレスでフローを決定する場合のフローテーブル700が示されている。このフローテーブル700は、メインメモリ60上に置かれている。フローテーブル700の構成要素は、Source IPアドレス701とパケットカウンタ702である。Source IPアドレス701は、登録されているフローを示している。またパケットカウンタ702は、そのフローの滞留パケット数を示している。
【0084】
受信プロセッサ20は、パケット受信時に、Source IPアドレスを検索キーとして、フローテーブル700を検索する。もし一致するSource IPアドレスが登録されていれば、パケットカウンタを1カウントアップする。もし一致しなければ、そのSource IPアドレスを、フローテーブル700に登録し、パケットカウンタを1カウントアップする。
【0085】
パケットプロセッサ30a、30bは、パケット送信時に、Source IPアドレスを検索キーとして、フローテーブル700を検索する。もし一致するSource IPアドレスが登録されていれば、パケットカウンタを1カウントダウンする。カウントダウンした結果が「0」となった場合、パケットプロセッサ30a、30bは、そのフローの登録を抹消する。Source IPアドレスを1以上であれば、そのままとする。
【0086】
図9は、本実施の形態の各パケットプロセッサ30a、30bのパケット処理の動作を説明するためのフローチャートである。
【0087】
図9を参照すると、第1の実施の形態との違いは、各パケットプロセッサ30a、30bは、パケット処理の完了時点においてフローテーブル700を参照し、そのパケットと同一のフローの他のパケットが滞留していない場合には、直ちにそのパケットの送信を実行する点がある(ステップ1308、1309)。
【0088】
以上説明したように本実施の形態のパケット処理装置は、第1の実施の形態の効果に加えて、パケットフローを動的に登録することにより、フロー別のパケットの転送順序を保証したより効率のよいパケット転送を実現することができる。
【0089】
次に、本発明の第3の実施の形態を説明する。
【0090】
上記各実施の形態では、同一機能を持った複数のパケットプロセッサで、受信パケットを分散処理する方式を説明した。しかし、本発明のパケット処理装置は、別の分散処理方法も可能であり、例えば、異なる機能を備える各パケットプロセッサによる機能別の分散処理も実施することができる。
【0091】
図10に、本発明の第3の実施の形態のパケット処理装置1000bを示す。図10では、第1の実施の形態の構成に加えて、新たな機能を備えるパケットプロセッサ80を追加している。
【0092】
ここで、このパケットプロセッサ80は、各パケットプロセッサ30a、30bが備えない機能であるIPヘッダの拡張ヘッダ処理機能を備える場合を例に説明する。
【0093】
図11は、本実施の形態によるパケット処理装置1000bにおいて用いる各パケットの制御情報の一例を示す図である。本実施の形態では、第1の実施の形態の各パケットの制御情報のデータ構成に加えて、処理状態X 800と処理状態Y 900のフィールドを新たに追加している。
【0094】
処理状態Xは、前記パケットプロセッサ80がIPパケットを受信したときに行なう拡張ヘッダ処理の処理状態を示すためのフィールドである。処理状態Yは、前記パケットプロセッサ80がIPパケットを送信するときに行なう拡張ヘッダ処理の処理状態を示すためのフィールドである。処理状態Xと処理状態Yは、処理状態Aや処理状態Bと同様にして、「00」ならば未処理、「01」ならば処理中、「10」ならば処理完了を示す。
【0095】
図12は、本実施の形態の各パケットプロセッサ30a、30bのパケット処理の動作を説明するためのフローチャートである。本実施の形態の動作の第1の実施の形態との違いは、パケットプロセッサ30a、30bは、処理状態Xが「10」(処理完了)でなければ、パケット処理を行なわない点である。
【0096】
またパケットプロセッサ30a、30bは、処理状態Yが「10」(処理完了)でなければ、パケットプロセッサ30a、30bはパケット送信処理を行なわない。つまり、本実施の形態では、第1の実施の形態のステップ1201に示される送信可能なパケットのチェックにおいて、処理状態A又は処理状態Bが処理完了であることのチェックに加えて、処理状態Yが処理完了であることのチェックを行なうのである。
【0097】
図13は、本発明の第3の実施の形態のパケットプロセッサ80の拡張ヘッダ処理の動作を説明するためのフローチャートである。図13に示されるように、パケットプロセッサ80の制御情報のチェックや更新の動作は、パケットプロセッサ30a、30bの動作と同様である。
【0098】
パケット受信時の拡張ヘッダ処理において、パケットプロセッサ80は、処理状態Xが「00」(未処理)であれば(ステップ1502)、受信時の拡張ヘッダ処理を行なう。
【0099】
ただし、ステップ1502においては、受信したパケットに拡張ヘッダが存在しない場合には、パケットプロセッサ80は処理状態Xを処理済に更新する処理を行ない、そのパケットの処理を終了することとする。
【0100】
拡張ヘッダ処理が存在すれば、パケットプロセッサ80は拡張ヘッダ処理を実行し、処理終了時に処理状態Xの更新する。拡張ヘッダ処理を完了すれば、パケットプロセッサ80は、処理状態Xを「10」(処理完了)に設定する(ステップ1504〜1507)。
【0101】
パケット送信時の拡張ヘッダ処理において、パケットプロセッサ80は、処理状態Yが「00」(未処理)であれば、拡張ヘッダ処理を行なう(ステップ1509)。
【0102】
ただし、ステップ1509においては、そのパケットに拡張ヘッダが存在しない場合には、パケットプロセッサ80は処理状態Yを処理済に更新する処理を行ない、そのパケットの処理を終了することとする。
【0103】
拡張ヘッダ処理が存在すれば、パケットプロセッサ80は拡張ヘッダ処理を実行し、処理終了時に処理状態Yの更新する。拡張ヘッダ処理を完了すれば、パケットプロセッサ80は、処理状態Yを「10」(処理完了)に設定する(ステップ1511〜1514)。
【0104】
以上のようにして、本実施の形態のパケットプロセッサ80は、拡張ヘッダ処理を行なうことができる。
【0105】
また、上記のパケットプロセッサ80の動作では、パケットの受信時と送信時との双方において拡張ヘッダ処理を実行するが、その受信時と送信時の一方のみにおいて実行する方式も同様に実施することがでいる。
【0106】
パケットプロセッサ80の処理としては、上記説明した拡張パケット処理以外にも、例えばIP Fragmentation処理(組み立て、分割処理)や、ある一定長以上、又は一定以下のIPパケットだけを処理させること等も同様に実施することができる。またパケットプロセッサ80を、複数用意して、分散処理させることも、第1の実施の形態のパケットプロセッサ30a、30bと同様にして実施することができる。
【0107】
また、パケットプロセッサを、様々なプロトコルのそれぞれに対応させて備えることで、マルチプロトコルによる通信に対応することができる。
【0108】
以上説明したように、本実施の形態の本実施の形態のパケット処理装置1000bは、第1の実施の形態の効果に加えて、異なる機能を割り当てた複数のパケットプロセッサにより、パケットに対する処理を機能分散して処理することができる。例えば、上記説明したようにパケットプロセッサ30a、30bには通常のIPパケットを処理させ、パケットプロセッサ80に、突発的に発生する例外IPパケットを処理させることができる。
【0109】
このように、本実施の形態のパケット処理装置1000bは、同一の機能を備えるパケットプロセッサの複数化による負荷分散処理だけでなく、機能分散による負荷分散を行なうことができる。
【0110】
例えば、図2に示される第1の実施の形態のパケット処理装置1000の構成において、各パケットプロセッサ30a、30bにおけるパケット処理部31と送信処理部32をそれぞれ独立のプロセッサとして分割し、機能分散させて実施することも可能である。
【0111】
また、上記各実施の形態のパケット処理装置は、各パケットプロセッサにおいて機能するタスク単位での分散処理も同様にして実施することができる。
【0112】
例えば、1つのパケットプロセッサが、同時にパケット処理とパケット転送を並行して実施する機能を備えたり、パケット処理を同時に複数個のパケットに対し並行して実施する機能を備える場合においては、これらの処理を実行する各タスク毎に分散処理を行なうことも同様に実施することができる。つまり、これらタスク単位にその処理状態の情報を制御情報に示し、各タスクがその制御情報を参照してパケット処理やパケット転送等の処理を実行することにより、上記各実施の形態と同様にして、負荷分散や機能分散を実現することができる。
【0113】
また、上記各実施の形態は、互いに自由に組み合わせて実施することができる。例えば、第2の実施の形態と、第3の実施の形態を組み合わせることにより、第2の実施の形態のフローテーブル700を用いたフロー別のパケットの転送順序を保証した効率のよいパケット転送と、第3の実施の形態のパケットプロセッサ毎の機能分散を同時に実現することができる。
【0114】
以上好ましい実施の形態及び実施例をあげて本発明を説明したが、本発明は必ずしも上記実施の形態及び実施例に限定されるものではなく、その技術的思想の範囲内において様々に変形して実施することができる。
【0115】
【発明の効果】
以上説明したように本発明によれば、受信した各前記パケットの転送順序を転送経路別に示す制御情報を生成することにより、複数の転送プロセッサ(パケットプロセッサ)が、個別に、その制御情報に示される転送経路別の転送順序に基づいて各パケットを転送することができる。また、制御情報において、各パケット毎に、パケット処理が未処理であるのか処理済であるのか、又排他制御中であるか否かを示すことにより、複数の転送プロセッサが、個別に、パケット処理を効率よく分散して処理することができる。このようにして、複数のパケットプロセッサにより処理を分散すると共に、転送経路毎の転送順序に基づいて各パケットを転送することができる。
【図面の簡単な説明】
【図1】 本発明の第1の実施の形態によるパケット処理装置の構成を示すブロック図である。
【図2】 本発明の第1の実施の形態によるパケット処理装置の実施例を示す図である。
【図3】 本発明の第1の実施の形態によるパケット処理装置において用いる制御情報の一例を示す図である。
【図4】 本発明の第1の実施の形態によるパケット処理装置において用いる制御情報の一例を示す図である。
【図5】 本発明の第1の実施の形態の受信プロセッサの動作を説明するためのフローチャートである。
【図6】 本発明の第1の実施の形態のパケットプロセッサのパケット処理の動作を説明するためのフローチャートである。
【図7】 本発明の第1の実施の形態のパケットプロセッサのパケット送信の動作を説明するためのフローチャートである。
【図8】 本発明の第2の実施の形態のフローテーブルの一例を示す図である。
【図9】 本発明の第2の実施の形態のパケットプロセッサのパケット処理の動作を説明するためのフローチャートである。
【図10】 本発明の第3の実施の形態によるパケット処理装置の構成を示すブロック図である。
【図11】 本発明の第3の実施の形態によるパケット処理装置において用いる制御情報の一例を示す図である。
【図12】 本発明の第3の実施の形態のパケットプロセッサのパケット処理の動作を説明するためのフローチャートである。
【図13】 本発明の第3の実施の形態の拡張ヘッダ処理を行なうパケットプロセッサの動作を説明するためのフローチャートである。
【符号の説明】
1000、1000b パケット処理装置
10 パケットインタフェース
20 受信プロセッサ
21 受信処理部
22 チェーン生成部
30a、30b パケットプロセッサ
31 パケット処理部
32 送信処理部
40、41 バス
50 メモリアクセス調停部
60 メインメモリ
61 到着シーケンスチェーン
62 フロー別チェーン
70 パケットフロー
80 パケットプロセッサ
100〜140 パケット番号
200〜240 到着ポインタ
300〜340 フローポインタ
400〜440 受信処理状態
500〜540 処理状態A
600〜640 処理状態B
700 フローテーブル
800 処理状態X
900 処理状態Y
2000 制御情報[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a packet processing apparatus that performs distributed processing on packets, and more particularly to a packet processing apparatus that transfers each packet based on a transfer order for each transfer path and a packet transfer method thereof.
[0002]
[Prior art]
With the spread of the Internet and the wideband access networks such as CATV, ADSL, and optical fiber, the amount of traffic flowing on the Internet is increasing. Packet processing devices such as routers and servers on the Internet cope with an increase in traffic by using high-speed device and load distribution processing.
[0003]
As a prior art corresponding to such an increase in traffic, there is a load distribution type packet parallel processing device disclosed in Japanese Patent Laid-Open No. 2000-222374.
[0004]
This prior art performs packet processing using a plurality of packet processors, and checks the load status of each packet processor so that the load is not concentrated on one packet processor, and sends packets to the packet processor with the lightest load. A packet processing device for distribution is proposed. Thereby, the effect that the load of each packet processor is averaged is obtained.
[0005]
Here, the packet processing is processing such as rewriting a header portion of a packet to be transferred, and appropriately selecting a port used for transmission of the packet. The packet processor is a processor that executes such packet processing and packet transfer in the packet processing apparatus.
[0006]
[Problems to be solved by the invention]
However, the above-described prior art has a problem in that it is difficult to correctly transfer each packet based on the transfer order for each flow (transfer route).
[0007]
That is, in the conventional technique disclosed in Japanese Patent Laid-Open No. 2000-222374, the distribution of packets to each packet processor is determined based only on the load status of each packet processor. For this reason, there is a possibility that a plurality of packets having the same flow (forwarding path), such as a plurality of IP packets issued from the same application of the same terminal, are processed by different packet processors. Since the load in each packet processor is different, the order of the packets may be reversed due to variations in processing time of the packet processors.
[0008]
An object of the present invention is to solve the above-mentioned disadvantages of the prior art, distribute a process by a plurality of packet processors, and transfer a packet based on a transfer order for each transfer path, and its packet transfer It is to provide a method.
[0009]
[Means for Solving the Problems]
In order to achieve the above object, a packet processing device according to the present invention provides a packet processing device including a plurality of transfer processors for transferring packets. Indicates the processing status that indicates the presence or absence of processing Means for generating control information indicating a transfer order for each transfer path, and each of the transfer processors is individually indicated in the control information. Perform packet processing with reference to the processing state, and A means for transferring each of the packets based on a transfer order for each transfer route is provided.
[0010]
In the packet processing device according to the second aspect of the present invention, the control information includes, for each packet, information indicating whether packet processing for the packet is unprocessed or processed, and the packet is under exclusive control. Each of the transfer processors includes means for executing the packet processing on each of the packets individually, and the packet processing indicated by the control information is unprocessed. In addition, the packet processing is performed on the packet that is not under exclusive control.
[0011]
In the packet processing device according to the third aspect of the present invention, each of the transfer processors is in the exclusive control of the information of each packet indicated in the control information when the packet processing for the packet is started. And updating means so as to indicate that the packet is not in the exclusive control and the packet processing has been processed when the packet processing for the packet is completed. To do.
[0012]
In the packet processing device of the present invention according to claim 4, when each of the transfer processors has no other packet waiting for transfer having the same transmission path as the packet at the end of the packet processing for the packet, The packet that has been subjected to the packet processing is transferred.
[0013]
The packet processing device of the present invention according to claim 5 is characterized in that the control information is processed for each packet and for each process that can be processed by at least one of the transfer processors for the packet. Including information indicating whether the packet is unprocessed or processed, and each of the transfer processors is unprocessed in the packet and the transfer is not performed on the packet that is not under exclusive control based on the control information. The processing that can be processed by a processor is executed.
[0014]
According to a sixth aspect of the present invention, there is provided the packet processing apparatus according to the present invention, wherein each of the tasks functioning in each of the transfer processors is caused to execute the packet processing for each of the packets based on the control information.
[0015]
The packet processing device of the present invention according to claim 7, wherein the control information can be processed for each of the packets and for each process that can be processed by at least one of the tasks functioning in the transfer processor for the packet. , Including information indicating whether each process is unprocessed or processed, and for each task functioning in each transfer processor, for each packet that is not under exclusive control based on the control information Thus, the processing that is unprocessed in the packet and that can be processed by the task is executed.
[0016]
The packet processing device of the present invention according to claim 8 causes each task functioning in each transfer processor to transfer each packet based on a transfer order for each transfer route indicated in the control information. It is characterized by.
[0017]
Claim 9 of the present invention The packet transfer method is a packet transfer method of a packet processing apparatus including a plurality of transfer processors for transferring packets, and generates control information indicating a processing state indicating whether or not each received packet is processed and indicating a transfer order for each transfer route Each of the transfer processors individually performing packet processing with reference to the processing state indicated in the control information, and transferring each of the packets based on the transfer order for each of the transfer paths. With It is characterized by that.
[0018]
The packet transfer method of the present invention according to
[0019]
The packet transfer method of the present invention according to
[0020]
The packet transfer method of the present invention according to claim 12 comprises: Each of the transfer processors transfers the packet for which the packet processing has been completed when there is no other packet waiting for transfer having the same transmission path as the packet at the end of the packet processing for the packet. It is characterized by that.
[0021]
The packet transfer method of the present invention according to claim 13 comprises: The control information indicates whether each process is unprocessed or processed for each packet and for each process that can be processed for the packet by at least one of the transfer processors. Each of the transfer processors including the information, based on the control information, executes the processing that is not processed in the packet and that can be processed by the transfer processor, with respect to the packet that is not under exclusive control It is characterized by that.
[0022]
The packet transfer method of the present invention according to claim 14 comprises: Each task functioning in each transfer processor is caused to execute the packet processing for each packet based on the control information. It is characterized by that.
[0023]
The packet transfer method of the present invention according to claim 15 comprises: Whether the control information is unprocessed for each packet and for each process that can be processed for each packet by at least one of the tasks functioning in each transfer processor. Each of the tasks that function in each of the transfer processors, and for each of the packets that are not under exclusive control based on the control information, the packet is unprocessed and the task Execute the process that can be processed by It is characterized by that.
[0024]
The packet transfer method of the present invention according to claim 16 comprises: Each of the tasks functioning in each of the transfer processors is caused to execute transfer of the packet based on the transfer order for each transfer path indicated in the control information. It is characterized by that.
[0026]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
[0027]
FIG. 1 is a block diagram showing a configuration of a
[0028]
The
[0029]
In the present embodiment, the control information is also used for distributing the load of packet processing by the
[0030]
Here, the information related to packet processing is information indicating whether packet processing is unprocessed or processed in each packet, information indicating whether the packet is under exclusive control, or the like. Each
[0031]
Referring to FIG. 1, the
[0032]
The
[0033]
Here, although two
[0034]
The
[0035]
The
[0036]
Each packet processor (transfer processor) 30a, 30b is a processor for performing packet processing and packet transfer on each received packet. The packet processing is, for example, IP (Internet Protocol) packet processing.
[0037]
The memory
[0038]
The
[0039]
Next, the operation of the present embodiment will be described. Here, an example will be described in which each packet is an IP packet and the packet processing is IP packet processing.
[0040]
FIG. 5 is a flowchart for explaining the operation of the
[0041]
In FIG. 1, the flow of IP packet processing in the
[0042]
FIG. 2 is a diagram illustrating an example of the
[0043]
Referring to FIG. 5, the
[0044]
The
[0045]
The flow-
[0046]
For example, in the case of an IPv4 packet, the
[0047]
The two chains of the
[0048]
[0049]
The
[0050]
The
[0051]
Referring to FIGS. 3 and 4, as indicated by
[0052]
Reception processing states 400 to 440 indicate processing states in the
[0053]
Referring to the reception processing states 400 to 440 in FIG. 4, reception processing for packets P100 to P130 (packets with
[0054]
Processing state A 500-540 shows the processing state of the
[0055]
Referring to processing
[0056]
When the
[0057]
Referring to FIG. 6, each
[0058]
For example, when the
[0059]
At this time, if the
[0060]
If the
[0061]
In this way, when the packet processing is unprocessed and is not being processed by another
[0062]
In packet processing, the
[0063]
Next, the
[0064]
Here, since there is a packet P110 as the next packet, the processing after
[0065]
As described above, the packet processing for the received packet can be performed independently by the two
[0066]
Further, the
[0067]
Referring to FIG. 7, the packet transmission operation of each
[0068]
Here, a method is adopted in which the control information of the last transmitted packet is held at the head of each chain of the flow-
[0069]
For example, if the last transmitted packet is a packet having the packet number 100 (packet P100), the packet to be transmitted next is a packet having the
[0070]
In this case, the
[0071]
If transmission is possible here, the
[0072]
The packet transmission process of the
[0073]
Further, in the transmission processing of the present embodiment, the order of checking the first transmittable packet for each flow chain of the flow-
[0074]
As described above, according to the
[0075]
Further, by providing the flow-
[0076]
Further, by arbitrating memory access by the memory access arbitration unit, it is possible to prevent a plurality of packet processors from accessing the memory at the same time. For example, it is possible to prevent malfunction such as overwriting of control data being referred to.
[0077]
In addition, by chaining packets with a bi-directional pointer, packet transmission processing can be performed by rewriting the bi-directional chain included in the packet control information before and after the discarded packet even if, for example, QoS discard occurs during packet processing. Will not be affected.
[0078]
In the example of FIG. 1 of the present embodiment, the case where the two
[0079]
Next, a second embodiment of the present invention will be described.
[0080]
In a general packet processing apparatus, for example, a router, IP packets of various flows arrive. Since the capacity of the
[0081]
The order of the packet flow must be guaranteed when one or more packets of that flow stay in the packet processing apparatus. Therefore, if it does not stay, there is no problem even if the registration of the flow is released.
[0082]
Therefore, in the second embodiment of the present invention, in addition to the configuration of the first embodiment, a flow table 700 for monitoring the packet retention state is newly provided. FIG. 8 shows an example of the configuration of the flow table 700.
[0083]
FIG. 8 shows a flow table 700 when the flow is determined by the Source IP address. This flow table 700 is placed on the
[0084]
When receiving the packet, the
[0085]
The
[0086]
FIG. 9 is a flowchart for explaining the packet processing operation of each
[0087]
Referring to FIG. 9, the difference from the first embodiment is that each
[0088]
As described above, in addition to the effects of the first embodiment, the packet processing apparatus according to the present embodiment dynamically registers packet flows, thereby ensuring more efficient transfer order of packets by flow. Packet transfer can be realized.
[0089]
Next, a third embodiment of the present invention will be described.
[0090]
In each of the above-described embodiments, a method has been described in which received packets are distributedly processed by a plurality of packet processors having the same function. However, the packet processing apparatus of the present invention can also use another distributed processing method. For example, distributed processing according to function by each packet processor having different functions can be performed.
[0091]
FIG. 10 shows a
[0092]
Here, a case will be described as an example where the
[0093]
FIG. 11 is a diagram illustrating an example of control information of each packet used in the
[0094]
The processing state X is a field for indicating the processing state of the extension header processing performed when the
[0095]
FIG. 12 is a flowchart for explaining the packet processing operation of each
[0096]
The
[0097]
FIG. 13 is a flowchart for explaining the operation of the extension header processing of the
[0098]
In the extension header processing at the time of packet reception, if the processing state X is “00” (unprocessed) (step 1502), the
[0099]
However, in
[0100]
If the extension header process exists, the
[0101]
In the extension header processing at the time of packet transmission, if the processing state Y is “00” (unprocessed), the
[0102]
However, in
[0103]
If the extension header process exists, the
[0104]
As described above, the
[0105]
Further, in the operation of the
[0106]
As processing of the
[0107]
Further, by providing a packet processor corresponding to each of various protocols, it is possible to support multi-protocol communication.
[0108]
As described above, the
[0109]
As described above, the
[0110]
For example, in the configuration of the
[0111]
In addition, the packet processing apparatus according to each of the above embodiments can similarly perform distributed processing in units of tasks that function in each packet processor.
[0112]
For example, when one packet processor has a function of executing packet processing and packet transfer in parallel at the same time, or has a function of executing packet processing simultaneously on a plurality of packets, these processes are performed. It is also possible to carry out distributed processing for each task that executes. In other words, the processing status information is indicated in the control information for each task, and each task executes processing such as packet processing and packet transfer with reference to the control information, thereby performing the same as in each of the above embodiments. , Load distribution and function distribution can be realized.
[0113]
Further, the above embodiments can be implemented by freely combining with each other. For example, by combining the second embodiment and the third embodiment, efficient packet transfer that guarantees the transfer order of packets by flow using the flow table 700 of the second embodiment and The function distribution for each packet processor according to the third embodiment can be realized at the same time.
[0114]
Although the present invention has been described with reference to the preferred embodiments and examples, the present invention is not necessarily limited to the above-described embodiments and examples, and various modifications can be made within the scope of the technical idea. Can be implemented.
[0115]
【The invention's effect】
As described above, according to the present invention, a plurality of transfer processors (packet processors) are individually indicated in the control information by generating control information indicating the transfer order of each received packet for each transfer path. Each packet can be transferred based on the transfer order for each transfer route. Also, in the control information, for each packet, a plurality of transfer processors can individually process packet processing by indicating whether packet processing is unprocessed or processed, and whether or not exclusive control is being performed. Can be efficiently distributed and processed. In this manner, processing can be distributed by a plurality of packet processors and each packet can be transferred based on the transfer order for each transfer path.
[Brief description of the drawings]
FIG. 1 is a block diagram showing a configuration of a packet processing device according to a first embodiment of the present invention.
FIG. 2 is a diagram illustrating an example of a packet processing device according to the first embodiment of the present invention;
FIG. 3 is a diagram showing an example of control information used in the packet processing apparatus according to the first embodiment of the present invention.
FIG. 4 is a diagram illustrating an example of control information used in the packet processing device according to the first embodiment of the present invention.
FIG. 5 is a flowchart for explaining the operation of the reception processor according to the first embodiment of this invention;
FIG. 6 is a flowchart for explaining the packet processing operation of the packet processor according to the first embodiment of this invention;
FIG. 7 is a flowchart for explaining the packet transmission operation of the packet processor according to the first embodiment of this invention;
FIG. 8 illustrates an example of a flow table according to the second embodiment of this invention.
FIG. 9 is a flowchart for explaining an operation of packet processing of the packet processor according to the second embodiment of this invention;
FIG. 10 is a block diagram showing a configuration of a packet processing device according to a third embodiment of the present invention.
FIG. 11 is a diagram illustrating an example of control information used in a packet processing device according to a third embodiment of the present invention.
FIG. 12 is a flowchart for explaining the packet processing operation of the packet processor according to the third embodiment of this invention;
FIG. 13 is a flowchart for explaining an operation of a packet processor that performs extension header processing according to the third embodiment of this invention;
[Explanation of symbols]
1000, 1000b packet processing device
10 Packet interface
20 Receiving processor
21 Reception processing section
22 Chain generator
30a, 30b packet processor
31 Packet processor
32 Transmission processor
40, 41 bus
50 Memory access arbitration unit
60 main memory
61 Arrival Sequence Chain
62 Chains by flow
70 packet flow
80 packet processor
100-140 packet number
200-240 Arrival pointer
300-340 flow pointer
400-440 Receive processing status
500 to 540 Processing state A
600 to 640 Processing state B
700 Flow table
800 Processing state X
900 Processing state Y
2000 Control information
Claims (16)
受信した各前記パケットの処理の有無を示す処理状態を示すと共に転送順序を転送経路別に示す制御情報を生成する手段を備え、
各前記転送プロセッサが、
個別に、前記制御情報に示される処理状態を参照してパケット処理を行うと共に、前記転送経路別の転送順序に基づいて、各前記パケットを転送する手段を備えることを特徴とするパケット処理装置。In a packet processing device comprising a plurality of transfer processors for transferring packets,
Means for generating control information indicating a processing state indicating whether or not each received packet is processed and indicating a transfer order for each transfer path;
Each said transfer processor is
A packet processing apparatus comprising: means for individually performing packet processing with reference to a processing state indicated in the control information, and transferring each of the packets based on a transfer order for each transfer route.
各前記転送プロセッサが、
個別に、各前記パケットに対し前記パケット処理を実行する手段を備え、
前記制御情報に示される、前記パケット処理が未処理でありかつ前記排他制御中でない前記パケットに対して、前記パケット処理を実行することを特徴とする請求項1に記載のパケット処理装置。The control information includes, for each packet, information indicating whether packet processing for the packet is unprocessed or processed, and information indicating whether the packet is under exclusive control,
Each said transfer processor is
Individually comprising means for performing said packet processing on each said packet;
The packet processing apparatus according to claim 1, wherein the packet processing is performed on the packet indicated by the control information, in which the packet processing is not yet processed and is not under exclusive control.
前記制御情報に示される各前記パケットの情報を、当該パケットに対する前記パケット処理の開始時に、当該パケットが前記排他制御中である旨を示すように更新し、当該パケットに対する前記パケット処理の完了時に、当該パケットが前記排他制御中ではなくかつ前記パケット処理が処理済である旨を示すように更新する手段を備えることを特徴とする請求項2に記載のパケット処理装置。Each said transfer processor is
The information of each packet indicated in the control information is updated to indicate that the packet is in the exclusive control at the start of the packet processing for the packet, and when the packet processing for the packet is completed, The packet processing apparatus according to claim 2, further comprising means for updating the packet not to be in the exclusive control and to indicate that the packet processing has been processed.
前記パケットに対する前記パケット処理の終了時点において、当該パケットと伝送経路が同一である転送待機中の他のパケットが存在しない場合、前記パケット処理を終了した前記パケットを転送することを特徴とする請求項3に記載のパケット処理装置。Each said transfer processor is
The packet that has been subjected to the packet processing is transferred when there is no other packet waiting to be transferred that has the same transmission path as the packet at the end of the packet processing for the packet. 4. The packet processing device according to 3.
各前記転送プロセッサが、
前記制御情報に基づいて、前記排他制御中でない前記パケットに対して、前記パケットにおいて未処理でありかつ当該転送プロセッサにより処理可能な前記処理を実行することを特徴とする請求項2から請求項4のいずれか1つに記載のパケット処理装置。The control information indicates whether each process is unprocessed or processed for each packet and for each process that can be processed for the packet by at least one of the transfer processors. Including information,
Each said transfer processor is
5. The processing that is unprocessed in the packet and that can be processed by the transfer processor is executed on the packet that is not under exclusive control based on the control information. The packet processing device according to any one of the above.
各前記転送プロセッサにおいて機能する各タスクのそれぞれに、前記制御情報に基づいて、前記排他制御中でない前記パケットに対して、前記パケットにおいて未処理でありかつ当該タスクにより処理可能な前記処理を実行させることを特徴とする請求項2から請求項4のいずれか1つに記載のパケット処理装置。Whether the control information is unprocessed for each packet and for each process that can be processed for each packet by at least one of the tasks functioning in each transfer processor. Including information indicating whether or not
Based on the control information, each task functioning in each of the transfer processors is caused to execute the processing that is not processed in the packet and that can be processed by the task, for the packet that is not under exclusive control. The packet processing device according to any one of claims 2 to 4, wherein
受信した各前記パケットの処理の有無を示す処理状態を示すと共に転送順序を転送経路別に示す制御情報を生成するステップを備え、
各前記転送プロセッサが、
個別に、前記制御情報に示される処理状態を参照してパケット処理を行うと共に、前記転送経路別の転送順序に基づいて、各前記パケットを転送するステップを備えることを特徴とするパケット転送方法。In a packet transfer method of a packet processing device comprising a plurality of transfer processors for transferring packets,
Generating control information indicating a processing state indicating whether or not each received packet is processed and indicating a transfer order for each transfer path;
Each said transfer processor is
A packet transfer method comprising: individually performing packet processing with reference to a processing state indicated in the control information, and transferring each packet based on a transfer order for each transfer route.
各前記転送プロセッサが、
個別に、前記制御情報に示される、前記パケット処理が未処理でありかつ前記排他制御中でない前記パケットに対して、前記パケット処理を実行するステップを備えることを特徴とする請求項9に記載のパケット転送方法。The control information includes, for each packet, information indicating whether packet processing for the packet is unprocessed or processed, and information indicating whether the packet is under exclusive control,
Each said transfer processor is
10. The method according to claim 9 , further comprising a step of individually executing the packet processing on the packet that is not processed and is not under exclusive control, which is indicated in the control information. Packet transfer method.
前記制御情報に示される各前記パケットの情報を、当該パケットに対する前記パケット処理の開始時に、当該パケットが前記排他制御中である旨を示すように更新し、当該パケットに対する前記パケット処理の完了時に、当該パケットが前記排他制御中ではなくかつ前記パケット処理が処理済である旨を示すように更新するステップを備えることを特徴とする請求項10に記載のパケット転送方法。Each said transfer processor is
The information of each packet indicated in the control information is updated to indicate that the packet is in the exclusive control at the start of the packet processing for the packet, and when the packet processing for the packet is completed, The packet transfer method according to claim 10 , further comprising a step of updating the packet to indicate that the exclusive control is not being performed and the packet processing has been completed.
前記パケットに対する前記パケット処理の終了時点において、当該パケットと伝送経路が同一である転送待機中の他のパケットが存在しない場合、前記パケット処理を終了した前記パケットを転送することを特徴とする請求項11に記載のパケット転送方法。Each said transfer processor is
At the end of the packet processing on the packet, if another packet during transfer standby transmission path and the packet is the same does not exist, claims, characterized in that forwarding the packet terminating the packet processing 11. The packet transfer method according to 11 .
各前記転送プロセッサが、
前記制御情報に基づいて、前記排他制御中でない前記パケットに対して、前記パケットにおいて未処理でありかつ当該転送プロセッサにより処理可能な前記処理を実行することを特徴とする請求項10から請求項12のいずれか1つに記載のパケット転送方法。The control information indicates whether each process is unprocessed or processed for each packet and for each process that can be processed for the packet by at least one of the transfer processors. Including information,
Each said transfer processor is
Based on the control information, to the packet is not in the exclusive control, claim 12 claim 10, characterized in that executing the processing can be the processing by it and the transfer processor untreated in the packets The packet transfer method according to any one of the above.
各前記転送プロセッサにおいて機能する各タスクのそれぞれに、前記制御情報に基づいて、前記排他制御中でない前記パケットに対して、前記パケットにおいて未処理でありかつ当該タスクにより処理可能な前記処理を実行させることを特徴とする請求項10から請求項12のいずれか1つに記載のパケット転送方法。Whether the control information is unprocessed for each packet and for each process that can be processed for each packet by at least one of the tasks functioning in each transfer processor. Including information indicating whether or not
Based on the control information, each task functioning in each of the transfer processors is caused to execute the processing that is not processed in the packet and that can be processed by the task, for the packet that is not under exclusive control. The packet transfer method according to claim 10, wherein the packet transfer method is a packet transfer method.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001385748A JP3635660B2 (en) | 2001-12-19 | 2001-12-19 | Packet processing apparatus and packet transfer method thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001385748A JP3635660B2 (en) | 2001-12-19 | 2001-12-19 | Packet processing apparatus and packet transfer method thereof |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003188936A JP2003188936A (en) | 2003-07-04 |
JP3635660B2 true JP3635660B2 (en) | 2005-04-06 |
Family
ID=27595075
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001385748A Expired - Fee Related JP3635660B2 (en) | 2001-12-19 | 2001-12-19 | Packet processing apparatus and packet transfer method thereof |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3635660B2 (en) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7895431B2 (en) * | 2004-09-10 | 2011-02-22 | Cavium Networks, Inc. | Packet queuing, scheduling and ordering |
JP4815284B2 (en) * | 2006-07-06 | 2011-11-16 | アラクサラネットワークス株式会社 | Packet transfer device |
JP5359357B2 (en) * | 2009-02-20 | 2013-12-04 | 日本電気株式会社 | Packet processing apparatus, packet processing order control method and packet processing order control program used in the processing apparatus |
US8014295B2 (en) * | 2009-07-14 | 2011-09-06 | Ixia | Parallel packet processor with session active checker |
-
2001
- 2001-12-19 JP JP2001385748A patent/JP3635660B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003188936A (en) | 2003-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7535829B2 (en) | Tunnel reroute | |
JP3399928B2 (en) | High-speed transfer and filtering of network packets in computer systems | |
US7000055B1 (en) | Multi-interface symmetric multiprocessor | |
US6901580B2 (en) | Configuration parameter sequencing and sequencer | |
CA2480461C (en) | Methods and apparatus for fibre channel frame delivery | |
US7620040B2 (en) | Application non disruptive task migration in a network edge switch | |
US7924860B1 (en) | Maintaining data unit order in a network switching device | |
US6798788B1 (en) | Arrangement determining policies for layer 3 frame fragments in a network switch | |
EP1122971A2 (en) | Data channel reservation in optical burst-switched networks | |
US7388840B2 (en) | Methods and apparatuses for route management on a networking control plane | |
US6853638B2 (en) | Route/service processor scalability via flow-based distribution of traffic | |
US7617291B2 (en) | System and method for supporting TCP out-of-order receive data using generic buffer | |
US20070183415A1 (en) | Method and system for internal data loop back in a high data rate switch | |
JPH05219065A (en) | Message routing device | |
US7664045B2 (en) | Sampling to a next hop | |
WO2011102488A1 (en) | Communication control system, switching node, communication control method and communication control program | |
JP2007208963A (en) | Packet processing apparatus and method | |
US11758024B2 (en) | Distributor node, automation network and method for transmitting telegrams | |
US8630296B2 (en) | Shared and separate network stack instances | |
US6735207B1 (en) | Apparatus and method for reducing queuing memory access cycles using a distributed queue structure | |
CN113395212B (en) | Network device, method of operating the same, and non-transitory computer readable medium | |
JP2001060956A (en) | Transport layer multi-link communication method | |
US6728246B1 (en) | Arrangement for reducing layer 3 header data supplied to switching logic on a network switch | |
JP3635660B2 (en) | Packet processing apparatus and packet transfer method thereof | |
Radhakrishnan | Linux–advanced networking overview version 1 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20040412 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040416 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040615 |
|
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: 20041213 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20041226 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080114 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090114 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100114 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110114 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110114 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120114 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130114 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130114 Year of fee payment: 8 |
|
LAPS | Cancellation because of no payment of annual fees |