JP3635660B2 - Packet processing apparatus and packet transfer method thereof - Google Patents

Packet processing apparatus and packet transfer method thereof Download PDF

Info

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
Application number
JP2001385748A
Other languages
Japanese (ja)
Other versions
JP2003188936A (en
Inventor
浩史 傅寳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2001385748A priority Critical patent/JP3635660B2/en
Publication of JP2003188936A publication Critical patent/JP2003188936A/en
Application granted granted Critical
Publication of JP3635660B2 publication Critical patent/JP3635660B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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 claim 10 comprises: 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, The transfer processor includes a step of individually executing the packet processing on the packet indicated by the control information, the packet processing being unprocessed and not under the exclusive control. It is characterized by that.
[0019]
The packet transfer method of the present invention according to claim 11 comprises: Each of the forwarding processors updates the information of each packet indicated in the control information so as to indicate that the packet is under exclusive control at the start of the packet processing for the packet, and A step of updating the packet processing to indicate that the packet is not under the exclusive control and that the packet processing has been processed, when the packet processing is completed It is characterized by that.
[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 packet processing apparatus 1000 according to the first embodiment of the present invention.
[0028]
The packet processing apparatus 1000 according to the present embodiment generates control information indicating the transfer order of each packet for each transfer path, and the control information is individually referred to by a plurality of packet processors (transfer processors) 30a and 30b. It is characterized in that the packet is transferred based on the transfer order for each transfer route. As a result, load transfer by the plurality of packet processors 30a and 30b and transfer of each packet based on the transfer order for each transfer path are realized.
[0029]
In the present embodiment, the control information is also used for distributing the load of packet processing by the packet processors 30a and 30b by generating the above-described control information including information related to packet processing for each packet.
[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 packet processor 30a, 30b individually updates this control information as needed according to the progress of packet processing or the like in the packet processor 30a, 30b.
[0031]
Referring to FIG. 1, the packet processing apparatus 1000 according to the present embodiment includes a packet interface 10, a reception processor 20, a plurality of packet processors 30a and 30b, a memory access arbitration unit 50, and a main memory 60.
[0032]
The reception processor 20 and each of the packet processors 30 a and 30 b are connected to the packet interface 10 via a bus 40 and connected to the memory access arbitration unit 50 via a bus 41.
[0033]
Here, although two packet processors 30a and 30b are shown in FIG. 1, it is not necessary to limit the number thereof, and any number (three, four,...) Of packet processors is provided. Even in this case, it can be carried out in the same manner as this embodiment.
[0034]
The packet interface 10 performs packet input / output with an external device or a network. The packet interface 10 sends a packet received from the outside to the receiving processor 20, and receives and sends a packet to be sent from the outside to each of the packet processors 30a and 30b.
[0035]
The reception processor 20 stores the received packet in the main memory 60 and updates control information stored in the main memory 60 in response to reception of the packet.
[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 access arbitration unit 50 performs memory access arbitration from the receiving processor 20 and the packet processors 30a and 30b to the main memory 60.
[0038]
The main memory 60 accepts access from the receiving processor 20 and each packet processor 30a, 30b, accepts input or update of various data such as control information used in received packets, transmitted packets, packet processing, etc. Retain data.
[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 reception processor 20 of this embodiment, and FIG. 6 is a flowchart for explaining the packet processing operation of each packet processor 30a, 30b of this embodiment. FIG. 7 is a flowchart for explaining the packet transmission operation of the packet processors 30a and 30b of the present embodiment.
[0041]
In FIG. 1, the flow of IP packet processing in the packet processing apparatus 1000 according to the present embodiment is indicated by a packet flow 70.
[0042]
FIG. 2 is a diagram illustrating an example of the packet processing apparatus 1000 according to the present embodiment. FIG. 2 also shows functions assigned to each processor, and the reception processor 20 includes a reception processing unit 21 that receives a packet and a chain generation unit 22 that generates control information. Each packet processor 30a, 30b includes a packet processing unit 31 that executes packet processing and a transmission processing unit 32 that transmits packets.
[0043]
Referring to FIG. 5, the reception processor 20 of the present embodiment first receives an IP packet input from the packet interface 10 by the reception processing unit 21 and performs packet reception processing (step 1001). Then, the chain generator 22 generates two types of packet chains, that is, an arrival sequence chain 61 and a flow-specific chain 62 as control information, and stores them in the main memory 60 (steps 1002 and 1003). The received packet is stored in the main memory 60 (step 1004).
[0044]
The arrival sequence chain 61 is a chain indicating the arrival order of each packet. In FIG. 2, an arrival sequence chain 61 is assembled such as packets (1), (2), (3),.
[0045]
The flow-specific chain 62 is a chain indicating the arrival order of each packet by flow. In FIG. 2, packets arriving for each flow are shown. For example, packets of the same flow as packet (1) of arrival sequence chain 61 are packets (1), (5), (7), It is shown that they arrived in the order of….
[0046]
For example, in the case of an IPv4 packet, the chain generation unit 22 of the reception processor 20 creates a flow-specific chain 62 based on the Source IP address, Destination Address, protocol information, TCP / IP Source Port number, Destination Port number, and TOS information. Can be generated. In the case of an IPv6 packet, the reception processor 20 generates a flow-specific chain 62 based on the Source IP address and protocol information, the TCP / IP Source Port number and Destination Port number, Traffic Class information, and Flow Label information. Can do.
[0047]
The two chains of the arrival sequence chain 61 and the flow-specific chain 62 are control information used by the packet processing apparatus 1000 according to the present embodiment to perform packet processing and the like. FIG. A specific example of the control information of each packet shown in FIG. 3 is shown.
[0048]
Packet numbers 100 to 140 are numbers assigned to the respective received packets. In FIG. 4, 100 to 140 are assigned to the packet numbers of the packets P100 to P140, respectively.
[0049]
The arrival pointers 200 to 240 are bidirectional pointers and are used to form the arrival sequence chain 61. As can be seen from the connection of the arrival pointers in FIG. 3, the backward pointer indicates the packet number that arrives later, and the forward pointer indicates the packet number that arrives earlier.
[0050]
The flow pointers 300 to 340 are bidirectional pointers and are used to form the flow-specific chain 62. As can be seen from the connection between the flow pointers in FIG. 3, the backward pointer indicates the packet number that arrives later in the same flow, and the forward pointer indicates the packet number that arrives earlier in the same flow.
[0051]
Referring to FIGS. 3 and 4, as indicated by arrival pointers 200 to 240, each packet P100 to P140 arrives in order of the number from packet P100 to packet P140. As indicated by the flow pointers 300 to 340, there are flows that arrive in the order of P100, P130, and P140 and flows that arrive in the order of P110 and P120.
[0052]
Reception processing states 400 to 440 indicate processing states in the reception processor 20 for the respective packets. For example, if the reception processing state 400 is “00”, the processing is not processed, if “01”, the processing is in progress, and if “10”, the processing is completed.
[0053]
Referring to the reception processing states 400 to 440 in FIG. 4, reception processing for packets P100 to P130 (packets with packet numbers 100 to 130) has been completed, and packet P140 is currently undergoing reception processing.
[0054]
Processing state A 500-540 shows the processing state of the packet processor 30a for each packet, and processing state B 600-640 shows the processing state of the packet processor 30b for each packet. In the processing states A 500 to 540 and the processing states B 600 to 640, “00” indicates no processing, “01” indicates that the processing is in progress, and “10” indicates that the processing is complete.
[0055]
Referring to processing state A 500 to 540 and processing state B 600 to 640 in FIG. 4, there is no packet that has been processed yet, and packet processor 30b is processing packet P100. There is no packet inside. In this way, in the state of FIG. 4, since the packet P100 and the packet 140 are currently under exclusive control, the packet processor 30a performs packet processing on the other packets.
[0056]
When the reception processor 20 starts packet reception, the reception processor 20 stores the control information in the main memory and performs reception processing of the received packet. For example, when the packet number 100 of FIG. 3 is assigned to this received packet, values are assigned to the arrival pointer 200 and the flow pointer 300 (concatenation processing), and the processing state A 500 is set to “10” (processing completion). To do. Processing state A 500 and processing state B 600 are set to an unprocessed state of “00”.
[0057]
Referring to FIG. 6, each packet processor 30a, 30b first detects the presence or absence of a received packet by monitoring the head of the arrival sequence chain 61 (step 1101).
[0058]
For example, when the packet processor 30a detects the packet with the packet number 100 at the head of the arrival sequence chain 61, the packet processor 30a checks the state of the processing state A 500.
[0059]
At this time, if the processing state A 500 is “00” (unprocessed), the packet processor 30a performs the packet processing of this packet (step 1102).
[0060]
If the processing state B 600 is “01” (processing), this packet indicates that the packet processor 30b is processing. Accordingly, the packet processor 30a does not perform processing for this packet (step 1103).
[0061]
In this way, when the packet processing is unprocessed and is not being processed by another packet processor 30b (not under exclusive control), the packet processing is executed for the packet (steps 1104 and 1103).
[0062]
In packet processing, the packet processor 30a updates the control information of the packet as needed as the packet processing progresses. That is, at the start of packet processing, the processing state A 500 that is the control information of the packet is updated to “01” indicating that packet processing is being executed (exclusive control is being performed) (steps 1104 and 1105). Further, at the time of completion of packet processing, the processing state A 500 that is control information of the packet is updated to “10” indicating completion of packet processing (steps 1106 and 1107).
[0063]
Next, the packet processor 30a refers to the arrival pointer 200 to check whether there is a next packet (step 1108). If there is, the packet processor 30a similarly executes the processing from step 1102 on that packet. If there is no next packet, the process returns to step 1101 to wait for the arrival of a new packet.
[0064]
Here, since there is a packet P110 as the next packet, the processing after step 1102 such as checking the processing state A 510 of the packet P110 is similarly executed.
[0065]
As described above, the packet processing for the received packet can be performed independently by the two packet processors 30a and 30b by referring to the control information, and the packet processing is efficiently distributed to the plurality of packet processors 30a and 30b. can do.
[0066]
Further, the packet processors 30a and 30b according to the present embodiment include the transmission processing unit 32 to perform packet transmission processing.
[0067]
Referring to FIG. 7, the packet transmission operation of each packet processor 30a, 30b according to the present embodiment is as follows. It is checked whether or not there is (step 1201). Here, a packet that can be transmitted is a packet that is not being subjected to exclusive control for which packet processing has been completed (not being processed), and can be checked by checking the control information of the packet.
[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-specific chains 62. Thereby, each packet processor 30a, 30b identifies the packet to be transmitted next by referring to the forward pointer of the flow pointer of the control information.
[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 packet number 130 by referring to the stored control information (packet P100). It can be seen that this is packet P130).
[0070]
In this case, the packet processor 30a checks the processing state A 530 and the processing state B 630 of the packet P130. If the processing state A 530 or the processing state B 630 is “10” (processing complete), it can be understood that transmission is possible because the packet processing is completed.
[0071]
If transmission is possible here, the packet processor 30a transmits the packet with the packet number 130 (step 1202). The packet processor 30a updates the control information in the main memory 60 with the transmission of the packet P130 (step 1203). This performs processing such as deleting the control information of the packet P100 currently held in the chain of the flow-specific chain 62, and holding the control information of the packet P130 as information of the previously transmitted packet.
[0072]
The packet transmission process of the packet processor 30a is the same as the transmission process of the packet processor 30b.
[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-specific chain 62 is arbitrary. By setting, it is possible to set the priority for transmitting a packet for each flow.
[0074]
As described above, according to the packet processing apparatus 1000 of the present embodiment, a plurality of packet processors can independently perform packet processing on a packet basis by referring to the control information. Therefore, the load of packet processing is distributed to each packet processor, and the processing capability of each packet processor can be used effectively, and the processing capability of the entire apparatus can be improved.
[0075]
Further, by providing the flow-specific chain 62 and managing the transfer order of packets by flow, it is possible to prevent reversal of the order of transferring packets in the apparatus. Further, in the packet transmission process, it is also possible to read by assigning priority to the flow-specific chain, and thus it is possible to operate as a packet processing apparatus having a QoS guarantee function.
[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 packet processors 30a and 30b are provided has been described as an example. However, the number of packet processors is not limited to this. When a larger number of packet processors (packet processors 30c, 30d,...) Are provided, processing state A, processing state B, and processing state C are associated with the number of packet processors as control information for each packet. ,..., Each packet processor can perform distributed processing in the same manner as in the first embodiment.
[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 main memory 60 is also limited, the number of flows that can be registered is also limited. Therefore, it is necessary to effectively use the flow registration area.
[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 main memory 60. The components of the flow table 700 are a source IP address 701 and a packet counter 702. A Source IP address 701 indicates a registered flow. A packet counter 702 indicates the number of staying packets in the flow.
[0084]
When receiving the packet, the reception processor 20 searches the flow table 700 using the Source IP address as a search key. If the matching Source IP address is registered, the packet counter is incremented by one. If they do not match, the source IP address is registered in the flow table 700, and the packet counter is incremented by one.
[0085]
The packet processors 30a and 30b search the flow table 700 using the source IP address as a search key at the time of packet transmission. If the matching Source IP address is registered, the packet counter is counted down by one. When the result of the countdown becomes “0”, the packet processors 30a and 30b delete the registration of the flow. If the Source IP address is 1 or more, leave it as it is.
[0086]
FIG. 9 is a flowchart for explaining the packet processing operation of each packet processor 30a, 30b of the present embodiment.
[0087]
Referring to FIG. 9, the difference from the first embodiment is that each packet processor 30a, 30b refers to the flow table 700 at the time of completion of packet processing, and other packets in the same flow as that packet stay. If not, the packet is immediately transmitted (steps 1308 and 1309).
[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 packet processing apparatus 1000b according to the third embodiment of this invention. In FIG. 10, in addition to the configuration of the first embodiment, a packet processor 80 having a new function is added.
[0092]
Here, a case will be described as an example where the packet processor 80 has an IP header extension header processing function, which is a function that the packet processors 30a and 30b do not have.
[0093]
FIG. 11 is a diagram illustrating an example of control information of each packet used in the packet processing apparatus 1000b according to the present embodiment. In the present embodiment, in addition to the data configuration of the control information of each packet in the first embodiment, fields of processing state X 800 and processing state Y 900 are newly added.
[0094]
The processing state X is a field for indicating the processing state of the extension header processing performed when the packet processor 80 receives an IP packet. The processing state Y is a field for indicating the processing state of the extension header processing performed when the packet processor 80 transmits an IP packet. Similarly to the processing state A and the processing state B, the processing state X and the processing state Y indicate “unprocessed” if “00”, in-process if “01”, and “completed” if “10”.
[0095]
FIG. 12 is a flowchart for explaining the packet processing operation of each packet processor 30a, 30b of the present embodiment. The difference between the operation of the present embodiment and the first embodiment is that the packet processors 30a and 30b do not perform packet processing unless the processing state X is "10" (processing complete).
[0096]
The packet processors 30a and 30b do not perform packet transmission processing unless the processing state Y is "10" (processing complete). That is, in this embodiment, in the check of packets that can be transmitted shown in step 1201 of the first embodiment, in addition to the check that the processing state A or the processing state B is processing complete, the processing state Y Is checked that the process is complete.
[0097]
FIG. 13 is a flowchart for explaining the operation of the extension header processing of the packet processor 80 according to the third embodiment of this invention. As shown in FIG. 13, the control information check and update operations of the packet processor 80 are the same as the operations of the packet processors 30a and 30b.
[0098]
In the extension header processing at the time of packet reception, if the processing state X is “00” (unprocessed) (step 1502), the packet processor 80 performs the extension header processing at the time of reception.
[0099]
However, in step 1502, if there is no extension header in the received packet, the packet processor 80 performs a process of updating the processing state X to be processed, and ends the processing of the packet.
[0100]
If the extension header process exists, the packet processor 80 executes the extension header process, and updates the processing state X when the process ends. When the extension header processing is completed, the packet processor 80 sets the processing state X to “10” (processing completed) (steps 1504 to 1507).
[0101]
In the extension header processing at the time of packet transmission, if the processing state Y is “00” (unprocessed), the packet processor 80 performs extension header processing (step 1509).
[0102]
However, in step 1509, if an extension header does not exist in the packet, the packet processor 80 performs processing for updating the processing state Y to processing, and ends the processing of the packet.
[0103]
If the extension header process exists, the packet processor 80 executes the extension header process, and updates the processing state Y when the process ends. When the extension header processing is completed, the packet processor 80 sets the processing state Y to “10” (processing completed) (steps 1511 to 1514).
[0104]
As described above, the packet processor 80 according to the present embodiment can perform extension header processing.
[0105]
Further, in the operation of the packet processor 80 described above, the extension header processing is executed both at the time of reception and transmission of the packet, but the method executed only at one of the reception time and transmission time can be similarly executed. It is out.
[0106]
As processing of the packet processor 80, in addition to the above-described extended packet processing, for example, IP Fragmentation processing (assembly and division processing), processing only IP packets of a certain length or more, or less than a certain length, etc. Can be implemented. Also, a plurality of packet processors 80 may be prepared and distributedly processed as in the packet processors 30a and 30b of the first embodiment.
[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 packet processing apparatus 1000b according to the present embodiment functions in addition to the effects of the first embodiment to perform processing on packets by a plurality of packet processors to which different functions are assigned. Can be distributed and processed. For example, as described above, the packet processors 30a and 30b can process normal IP packets, and the packet processor 80 can process unexpected IP packets that occur unexpectedly.
[0109]
As described above, the packet processing apparatus 1000b according to the present embodiment can perform not only load distribution processing by a plurality of packet processors having the same function but also load distribution by function distribution.
[0110]
For example, in the configuration of the packet processing apparatus 1000 of the first embodiment shown in FIG. 2, the packet processing unit 31 and the transmission processing unit 32 in each packet processor 30a, 30b are divided as independent processors, and the functions are distributed. It is also possible to implement.
[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.
前記制御情報が、各前記パケット毎に、かつ当該パケットに対し各前記転送プロセッサの少なくとも1つにより処理可能である各処理毎に、各前記処理が未処理であるのか処理済であるのかを示す情報を含み、
各前記転送プロセッサが、
前記制御情報に基づいて、前記排他制御中でない前記パケットに対して、前記パケットにおいて未処理でありかつ当該転送プロセッサにより処理可能な前記処理を実行することを特徴とする請求項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から請求項5のいずれか1つに記載のパケット処理装置。  The task according to any one of claims 2 to 5, wherein each of the tasks functioning in each of the transfer processors is caused to execute the packet processing on each of the packets based on the control information. Packet processing device. 前記制御情報が、各前記パケット毎に、かつ当該パケットに対し各前記転送プロセッサにおいて機能する各タスクの少なくとも1つにより処理可能である各処理毎に、各前記処理が未処理であるのか処理済であるのかを示す情報を含み、
各前記転送プロセッサにおいて機能する各タスクのそれぞれに、前記制御情報に基づいて、前記排他制御中でない前記パケットに対して、前記パケットにおいて未処理でありかつ当該タスクにより処理可能な前記処理を実行させることを特徴とする請求項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
各前記転送プロセッサにおいて機能する各タスクのそれぞれに、前記制御情報に示される転送経路別の転送順序に基づいて、各前記パケットの転送を実行させることを特徴とする請求項1から請求項7のいずれか1つに記載のパケット処理装置。  8. Each of the tasks functioning in each of the transfer processors causes each of the packets to be transferred based on a transfer order for each transfer path indicated in the control information. The packet processing device according to any one of the above. パケットを転送する転送プロセッサを複数備えるパケット処理装置のパケット転送方法において、
受信した各前記パケットの処理の有無を示す処理状態を示すと共に転送順序を転送経路別に示す制御情報を生成するステップを備え、
各前記転送プロセッサが、
個別に、前記制御情報に示される処理状態を参照してパケット処理を行うと共に、前記転送経路別の転送順序に基づいて、各前記パケットを転送するステップを備えることを特徴とするパケット転送方法。
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 .
前記制御情報が、各前記パケット毎に、かつ当該パケットに対し各前記転送プロセッサの少なくとも1つにより処理可能である各処理毎に、各前記処理が未処理であるのか処理済であるのかを示す情報を含み、
各前記転送プロセッサが、
前記制御情報に基づいて、前記排他制御中でない前記パケットに対して、前記パケットにおいて未処理でありかつ当該転送プロセッサにより処理可能な前記処理を実行することを特徴とする請求項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から請求項13のいずれか1つに記載のパケット転送方法。14. The task according to claim 10 , wherein each of the tasks functioning in each of the transfer processors is caused to execute the packet processing on each of the packets based on the control information. Packet transfer method. 前記制御情報が、各前記パケット毎に、かつ当該パケットに対し各前記転送プロセッサにおいて機能する各タスクの少なくとも1つにより処理可能である各処理毎に、各前記処理が未処理であるのか処理済であるのかを示す情報を含み、
各前記転送プロセッサにおいて機能する各タスクのそれぞれに、前記制御情報に基づいて、前記排他制御中でない前記パケットに対して、前記パケットにおいて未処理でありかつ当該タスクにより処理可能な前記処理を実行させることを特徴とする請求項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.
各前記転送プロセッサにおいて機能する各タスクのそれぞれに、前記制御情報に示される転送経路別の転送順序に基づいて、各前記パケットの転送を実行させることを特徴とする請求項9から請求項15のいずれか1つに記載のパケット転送方法。 16. Each of the tasks functioning in each of the transfer processors causes each of the packets to be transferred based on a transfer order for each transfer path indicated in the control information. The packet transfer method according to any one of the above.
JP2001385748A 2001-12-19 2001-12-19 Packet processing apparatus and packet transfer method thereof Expired - Fee Related JP3635660B2 (en)

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)

* Cited by examiner, † Cited by third party
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

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