JP2008236653A - Packet transfer order security method, packet transfer order security apparatus, and packet transfer order security program - Google Patents
Packet transfer order security method, packet transfer order security apparatus, and packet transfer order security program Download PDFInfo
- Publication number
- JP2008236653A JP2008236653A JP2007076930A JP2007076930A JP2008236653A JP 2008236653 A JP2008236653 A JP 2008236653A JP 2007076930 A JP2007076930 A JP 2007076930A JP 2007076930 A JP2007076930 A JP 2007076930A JP 2008236653 A JP2008236653 A JP 2008236653A
- Authority
- JP
- Japan
- Prior art keywords
- packet
- sequence number
- output
- input
- processing
- 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.)
- Pending
Links
Images
Landscapes
- Communication Control (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
本発明はパケット転送順序保障方法、パケット転送順序保障装置及びパケット転送順序保障プログラムに係り、特に並列処理におけるパケット転送順序保障方法、パケット転送順序保障装置及びパケット転送順序保障プログラムに関する。 The present invention relates to a packet transfer order guarantee method, a packet transfer order guarantee apparatus, and a packet transfer order guarantee program, and more particularly to a packet transfer order guarantee method, a packet transfer order guarantee apparatus, and a packet transfer order guarantee program in parallel processing.
パケットが複数のスイッチング用並列処理エレメントに入力されて並列処理するパケット処理装置では、パケット転送順序が入れ替わることがあり、その場合にはそのパケット処理装置から出力されるパケットのうち、中継装置を経てそのパケットの最終の受信処理装置である転送先に届かず廃棄されてしまうものがある。これを防ぐためにパケット転送順序保障を行う必要がある。そこで、従来は、並列処理でのパケット転送順序を保障する方法として、同じ入力情報(例えば、パケット種別、処理内容、入出力ポート番号等)のパケットを、その入力情報を基に同じ処理エレメントに割り当て、シーケンシャルに処理する方法がとられている。 In a packet processing device in which a packet is input to a plurality of parallel processing elements for switching and processed in parallel, the packet transfer order may be changed. In this case, among the packets output from the packet processing device, the packet passes through a relay device. Some packets are discarded without reaching the transfer destination that is the final reception processing device of the packet. In order to prevent this, it is necessary to guarantee the packet transfer order. Therefore, conventionally, as a method for guaranteeing the packet transfer order in parallel processing, packets having the same input information (for example, packet type, processing content, input / output port number, etc.) are assigned to the same processing element based on the input information. Allocation and sequential processing methods are used.
また、パケット転送の順序を保障する方法に類似の方法として、フレームの順序を保障する方法が従来知られている(例えば、特許文献1参照)。この特許文献1には、2台の情報処理装置間を1本以上の通信回線で相互に接続し通信データフレームを1本以上の通信回線に分配してデータ通信を行うデータ通信システムにおいて、送信側システムの送信制御部においてフレームに順序情報を挿入し、受信側システムの受信制御部でフレームの受信時にフレームに挿入された順序情報からそのフレームの順序を判断し、順序を直して収集・受信処理を行うことでフレームの順序保障を行う技術が記載されている。
Further, as a method similar to a method for guaranteeing the order of packet transfer, a method for guaranteeing the order of frames is conventionally known (see, for example, Patent Document 1). This
しかるに、並列処理でのパケット転送順序を保障する上記の従来の方法は、先に到着したパケットの処理時間が長く、後に到着したパケットの処理時間が短い場合は、先に到着したパケット処理が終了するまで後続のパケット処理が待たされ、転送効率が低くなってしまう。また、同一の入力情報を持つパケットが集中して入力された場合、同一処理エレメントで処理を行うためにその処理エレメントに負荷が集中してしまい、並列処理を行うメリットが損なわれてしまう。 However, the above-described conventional method for guaranteeing the packet transfer order in parallel processing ends the processing of the packet arriving first if the processing time of the packet arriving first is long and the processing time of the packet arriving later is short. The subsequent packet processing is awaited until the transfer efficiency is lowered. In addition, when packets having the same input information are input in a concentrated manner, processing is performed by the same processing element, so that the load is concentrated on the processing element, and the merit of performing parallel processing is impaired.
また、特許文献1記載のフレームの順序保障を行う方法は、1対1の通信を想定しているので、通信相手単位でフレームの順序保障を行うものであり、多対多通信においてパケット種別、入出力ポート番号で順序保障を行う用途には適用できない。また、特許文献1記載のフレームの順序保障を行う方法は、送信元装置に出力用の、送信先装置に入力用の順序保障機構が揃っていないと順次が保障されず、対向装置に条件(制限)がある。
Further, since the method for guaranteeing the order of frames described in
本発明は以上の点に鑑みなされたもので、順序保障制御を簡単にすることでその処理によるオーバヘッドを極力無くし、かつ、パケット転送効率も落とさないパケット転送順序保障方法、パケット転送順序保障装置及びパケット転送順序保障プログラムを提供することを目的とする。 The present invention has been made in view of the above points. A packet transfer order guarantee method, a packet transfer order guarantee apparatus, and a packet transfer order guarantee apparatus that eliminate the overhead caused by the processing as much as possible by simplifying the order guarantee control and reduce the packet transfer efficiency. An object is to provide a packet transfer order guarantee program.
また、本発明の他の目的は、対向装置に条件(制限)を有することなく、多対多通信においてパケット種別、入出力番号などでパケットの順序保障を行い得るパケット転送順序保障方法、パケット転送順序保障装置及びパケット転送順序保障プログラムを提供することにある。 Another object of the present invention is to provide a packet transfer order guarantee method capable of guaranteeing the order of packets by packet type, input / output number, etc. in many-to-many communication without having conditions (limitations) in the opposite device, and packet transfer An object is to provide an order guarantee device and a packet transfer order guarantee program.
上記の目的を達成するため、本発明のパケット転送順序保障方法は、処理パケット入力キューから順次取り出したパケットを複数のパケット処理エレメントに分散入力してそれぞれで並列処理した後、複数のパケット処理エレメントのそれぞれから処理後のパケットを共通の処理パケット出力キューに積んで出力させるパケット転送システムのパケット転送順序保障方法であって、
処理パケット入力キューから順次取り出した異なるパケットを複数のパケット処理エレメントに順番に入力する第1のステップと、複数のパケット処理エレメントのそれぞれにおいて、入力パケットの順序保障を行う単位毎にその入力パケットが所定のパケット条件に一致するとき、その入力パケットに対して、複数のパケット処理エレメントの間での入力順を示す値のシーケンス番号を付与する第2のステップと、複数のパケット処理エレメントのそれぞれでシーケンス番号が付与されたパケットを処理する第3のステップと、複数のパケット処理エレメントのそれぞれにおいて、処理後のシーケンス番号が付与されたパケットに付与されているシーケンス番号と、所定のパケット条件に一致するパケットの出力順を示す出力カウンタ値とを比較する第4のステップと、出力カウンタ値に一致するシーケンス番号が付与されている処理後のパケットをパケット処理エレメントから取り出して処理パケット出力キューに積み込む第5のステップとを含むことを特徴とする。
In order to achieve the above object, the packet transfer order guarantee method of the present invention distributes packets sequentially taken out from a processing packet input queue to a plurality of packet processing elements and performs parallel processing on each of them, and then a plurality of packet processing elements. A packet transfer order guarantee method for a packet transfer system that outputs packets after processing from each of the packets in a common processing packet output queue,
A first step of sequentially inputting different packets sequentially taken out from the processing packet input queue to the plurality of packet processing elements, and in each of the plurality of packet processing elements, the input packet is determined for each unit for guaranteeing the order of the input packets. A second step of assigning a sequence number of a value indicating an input order between a plurality of packet processing elements to the input packet when a predetermined packet condition is met, and each of the plurality of packet processing elements A third step for processing a packet to which a sequence number is assigned, and a sequence number assigned to a packet to which a processed sequence number is assigned and a predetermined packet condition in each of a plurality of packet processing elements Output counter value indicating the output order of packets A fourth step of comparing, and a fifth step of extracting a processed packet having a sequence number matching the output counter value from the packet processing element and loading the packet into the processing packet output queue. .
また、上記の目的を達成するため、本発明のパケット転送順序保障装置は、処理パケット入力キューから順次取り出したパケットを複数のパケット処理エレメントに分散入力してそれぞれで並列処理した後、複数のパケット処理エレメントのそれぞれから処理後のパケットを共通の処理パケット出力キューに積んで出力させるパケット転送システムのパケット転送順序保障装置であって、
複数のパケット処理エレメントから参照・更新可能であり、入力パケットの転送順序保障を行う単位毎にシーケンス番号を個別管理している複数のカウンタから形成される入力側カウンタ群と、複数のパケット処理エレメントから参照・更新可能であり、パケット転送順序保障を行う単位毎(各種条件の組み合わせ毎)に出力可能なシーケンス番号を個別管理し、かつ、入力側カウンタ群の複数のカウンタと対を構成する複数のカウンタから形成された出力側カウンタ群と、処理パケット入力キューからパケットを順次取り出して複数のパケット処理エレメントに順番に入力するパケット入力手段と、複数のパケット処理エレメントのそれぞれにおいて、入力パケットの順序保障を行う単位毎にその入力パケットが所定のパケット条件に一致するとき、入力カウンタ群中の所定のパケット条件に一致したカウンタから複数のパケット処理エレメントの間での入力順を示す値を読み出して、入力パケットにシーケンス番号として付与するシーケンス番号付与手段と、複数のパケット処理エレメントのそれぞれにおいて、処理された後のシーケンス番号が付与されたパケットに付与されているシーケンス番号と、出力カウンタ群中の所定のパケット条件に一致したカウンタから読み出したパケットの出力順を示す出力カウンタ値とを比較するシーケンス番号比較手段と、シーケンス番号比較手段で一致する比較結果が得られたシーケンス番号が付与されている処理後のパケットをパケット処理エレメントから取り出して処理パケット出力キューに積み込む出力選択手段とを有することを特徴とする。
In order to achieve the above object, the packet transfer order assurance device of the present invention distributes the packets sequentially taken out from the processing packet input queue to a plurality of packet processing elements and processes them in parallel, and then processes the plurality of packets. A packet transfer order assurance device for a packet transfer system that outputs packets after being processed from each of the processing elements in a common processing packet output queue,
Input side counter group formed from a plurality of counters that can be referred to / updated from a plurality of packet processing elements and individually manage sequence numbers for each unit for guaranteeing the transfer order of input packets, and a plurality of packet processing elements A sequence number that can be referred to / updated from each other and that can be output for each unit (for each combination of various conditions) that guarantees the packet transfer order, and that forms a pair with a plurality of counters in the input side counter group An output side counter group formed from the counters, a packet input means for sequentially taking out packets from the processing packet input queue and sequentially inputting them to a plurality of packet processing elements, and an order of input packets in each of the plurality of packet processing elements The input packet matches the predetermined packet condition for each unit to be guaranteed A sequence number giving means for reading out a value indicating an input order between a plurality of packet processing elements from a counter that matches a predetermined packet condition in the input counter group, and giving the input packet as a sequence number; In each of the packet processing elements, the sequence number given to the packet to which the processed sequence number is given and the output order of the packets read from the counter that matches the predetermined packet condition in the output counter group A sequence number comparing means for comparing the output counter value indicated, and a processed packet to which a sequence number obtained by the sequence number comparing means for which a comparison result is obtained is taken out from the packet processing element and placed in the processing packet output queue. Having an output selection means for loading And butterflies.
また、上記の目的を達成するため、本発明のパケット転送順序保障プログラムは、上記の本発明のパケット転送順序保障方法の各ステップをコンピュータにより実行させることを特徴とする。 In order to achieve the above object, the packet transfer order guarantee program of the present invention is characterized by causing a computer to execute each step of the packet transfer order guarantee method of the present invention.
本発明では、パケット処理エレメントの入出力端で、順序保障を必要とする所定のパケット条件(パケット種別、処理内容、入出力ポート番号等)毎に独立した複数のカウンタを、並列処理を行う各パケット処理エレメントから参照・更新可能な場所に設置する。処理対象のパケットは処理開始が可能なパケット処理エレメントによって取り込まれる(ラウンドロビン等のパケット取り込み制御は行わない)。パケット処理エレメント入力端では入力パケットにシーケンス番号(入力側カウンタ値)を付与し、パケット処理エレメント出力端では処理後のパケットに付与されたシーケンス番号と出力側カウンタ値を比較し、一致した場合にのみ出力し、そうでなければカウンタ値が一致するまで待機、比較を繰り返す。 In the present invention, a plurality of independent counters for each predetermined packet condition (packet type, processing content, input / output port number, etc.) requiring order guarantee at the input / output end of the packet processing element Install in a place where packet processing elements can be referenced and updated. A packet to be processed is captured by a packet processing element that can start processing (packet capture control such as round robin is not performed). At the packet processing element input end, a sequence number (input side counter value) is assigned to the input packet. At the packet processing element output end, the sequence number assigned to the processed packet is compared with the output side counter value. Only output, otherwise wait and compare until the counter values match.
これにより中間の並列で行われるパケット処理では順序保障を意識することなく自由に処理を行え、順序保障を行うべきパケットについて並列処理が可能となり、出力時にはパケット転送順序保障が行われ、並列処理の負荷分散が可能となる。すなわち、本発明は、簡単な仕組みにより並列処理が可能なパケット処理装置でパケットの入力順序通りに出力する方法(順序保障)と、並列処理エレメントの有効活用を行うことを実現し、その制御による転送効率劣化を低減することが可能となる。 As a result, intermediate parallel packet processing can be performed freely without regard to order guarantees, and parallel processing can be performed for packets that need to be ordered, and packet output order guarantees are performed at the time of output. Load distribution is possible. That is, the present invention realizes a method of outputting packets in the order of packet input (order guarantee) in a packet processing apparatus capable of parallel processing with a simple mechanism, and effective use of parallel processing elements. It is possible to reduce transfer efficiency deterioration.
本発明によれば、パケットがシーケンス番号を付与されてから実際に順序保障を行う部分(出力直前)までの間、パケットの追い越しを気にせず自由に処理できるため、従来のパケット転送順序保障方法と比べてパケット転送効率劣化を低減することができる。 According to the present invention, the packet transfer order guarantee method can be processed freely without worrying about overtaking of the packet from the time when the packet is given a sequence number until the part where the order is actually guaranteed (immediately before output). Compared with, it is possible to reduce packet transfer efficiency degradation.
また、本発明によれば、シーケンス番号付与とシーケンス番号比較がカウンタとその値との一致比較のみで行われるため、従来のパケット転送順序保障方法と比べて順序保障論理の単純化が可能となる。 Further, according to the present invention, since the sequence number assignment and the sequence number comparison are performed only by the coincidence comparison between the counter and its value, the order guarantee logic can be simplified as compared with the conventional packet transfer order guarantee method. .
次に、本発明を実施するための最良の形態について図面と共に詳細に説明する。図1は本発明になるパケット転送順次保障方法及び保障装置の一実施の形態の説明図を示す。図1に示すように、本実施の形態では、前段からの入力パケットを貯める処理パケット入力キュー100、処理パケット入力キュー100からパケットを引き取りそのパケットの処理を行って処理パケット出力キュー104にパケットを渡すN個(Nは2以上の自然数)のパケット処理エレメント102−1〜102−N、パケット処理エレメント102−1〜102−Nで処理を終えたパケットを後段へ渡すためにパケットを貯める処理パケット出力キュー104とを配置する。
Next, the best mode for carrying out the present invention will be described in detail with reference to the drawings. FIG. 1 is an explanatory diagram of an embodiment of a packet transfer sequential guarantee method and guarantee apparatus according to the present invention. As shown in FIG. 1, in the present embodiment, a processing
また、パケット処理エレメント102−1〜102−Nの入口には、入力パケットの順序保障を行う単位毎(各種条件の組み合わせ毎)にシーケンス番号を個別管理している複数のカウンタから形成される入力側カウンタ群101から、シーケンス番号を読み出して入力パケットに付与するシーケンス番号付与部102−1−1〜102−N−1が配置され、また、パケット処理エレメントの出口には、入力側カウンタ群101と同じく順序保障を行う単位毎(各種条件の組み合わせ毎)に出力可能なシーケンス番号を個別管理している複数のカウンタから形成された出力側カウンタ群103を参照し、処理パケット出力キュー104への積み込みが可能かチェックするシーケンス番号比較部102−1−2〜102−N−2が配置される。
Further, at the entrance of the packet processing elements 102-1 to 102-N, an input formed by a plurality of counters individually managing sequence numbers for each unit (for each combination of various conditions) for guaranteeing the order of input packets. Sequence number assigning units 102-1-1 to 102-N-1 for reading out sequence numbers from the
入力側カウンタ群101と出力側カウンタ群103とは、全てのパケット処理エレメント102−1〜102−Nから参照・更新可能な位置に同じ条件下で対になるように配置され、各々のカウンタは、同時に処理することが可能な数N以上の値を表すことができるようにする。
The input-
次に、本発明における順序保障の基本動作を、図2の説明図と図3のフローチャートを併せ参照して説明する。なお、図2中、図1と同一構成部分には同一符号を付してある。前提条件として入力側カウンタ群101のカウンタ101−1〜101−Nと、出力側カウンタ群103のカウンタ103−1〜103−Nとのうち、対になっているカウンタ(101−1と103−1、101−2と103−2、・・・、101−Nと103−N)の値は初期状態で同一とし、またカウンタ更新は同じルール(1増加)に従って更新することとする。
Next, the basic operation of order assurance in the present invention will be described with reference to the explanatory diagram of FIG. 2 and the flowchart of FIG. In FIG. 2, the same components as those in FIG. 1 are denoted by the same reference numerals. As a precondition, among counters 101-1 to 101-N of the input-
まず、図1のX番目(Xは1〜Nの自然数)のパケット処理エレメント102−X内のシーケンス番号付与部102−X−1は、図2(A)に示すように、処理パケット入力キュー100からパケット200を取り出し(図3のステップS1)、その取り出しの際にシーケンス番号付与部102−X−1は入力側カウンタ群101中の、取り出したパケットの条件(パケット種別、処理内容、入出力ポート等)に一致するカウンタ(仮にカウンタ101−1とする)から値を読み取る(図3のステップS2)。続いて、シーケンス番号付与部102−X−1は、値を読み取ったカウンタ101−1の値を同一条件で入力されてくる後続パケットに同じシーケンス番号を付与しないように更新し(図3のステップS3)、また読み取ったカウンタ101−1の値をシーケンス番号として、パケット200に付与する(図3のステップS4)。
First, as shown in FIG. 2A, the sequence number assigning unit 102-X-1 in the Xth (X is a natural number from 1 to N) packet processing element 102-X in FIG. The
続いて、シーケンス番号を付与されたパケット200は、図2(B)に示すように、パケット処理エレメント102−X内でその入力順序を意識することなく自由に処理される(図3のステップS5)。パケット200のパケット処理を終え、処理パケット出力キュー104に渡す前にシーケンス番号比較部102−X−2は、出力側カウンタ群103中の、パケット200に値を付加したカウンタ101−1と対となるカウンタ103−1から値を読み取り(図3のステップS6)、パケットに付与されたシーケンス番号と一致比較を行う(図3のステップS7)。
Subsequently, as shown in FIG. 2B, the
その一致比較の結果、一致していなければ一定時間待機して(図3のステップS8)、再度カウンタ103−1の値を読み込んで、一致比較を行う(図3のステップS6、S7)。この動作を一致するまで繰り返す。また、一致比較の結果、一致していれば図2(C)に示すように、一致比較に使用したカウンタ103−1の値を更新し(図3のステップS9)、処理パケット200を処理パケット出力キュー104に積む(図3のステップS10)。パケット200を処理パケット出力キュー104に積み込んだ場合は、この基本動作によってパケットの順序保障が行われる。
As a result of the coincidence comparison, if there is no coincidence, it waits for a certain time (step S8 in FIG. 3), reads the value of the counter 103-1 again, and performs a coincidence comparison (steps S6 and S7 in FIG. 3). This operation is repeated until they match. As a result of the match comparison, if they match, as shown in FIG. 2C, the value of the counter 103-1 used for the match comparison is updated (step S9 in FIG. 3), and the
次に、順序保障を行わなければならないパケット(同一条件のパケット)が複数のパケット処理エレメントで並列処理される場合について図4を用いて説明する。処理パケット入力キュー100にパケット400、401が積まれているとする。この2つのパケット400、401は処理を行っていないパケット処理エレメントによって空いている順に取り出される(ラウンドロビンなどの取り出し制御は行わない)。
Next, a case where packets that must be ordered (packets with the same condition) are processed in parallel by a plurality of packet processing elements will be described with reference to FIG. Assume that
ここで、図4に示すように、パケット400、401がそれぞれパケット処理エレメント102−X、102−Yに順に取り出されたとする。パケット処理エレメント102−Xのシーケンス番号付与部102−X−1は、入力側カウンタ群101のパケット400(およびパケット401)の条件(パケット種別、処理内容、入出力ポート等)に一致するカウンタ(仮に101−1とする)からシーケンス番号nを読み出してパケット400に付与し、カウンタ101−1の値を(n+1)に更新する。少し遅れてパケット処理エレメント102−Yのシーケンス番号付与部102−Y−1は同様にカウンタ101−1から更新した値(n+1)を読み出してパケット401にシーケンス番号として付与し、カウンタ101−1の値を(n+2)に更新する。
Here, as shown in FIG. 4, it is assumed that the
パケット処理エレメント102−X、102−Yで行われるパケット処理は、それぞれ他のパケット処理エレメントで処理されているパケットを意識することなく並列処理される。パケット400の処理時間がパケット401の処理時間よりも長い場合には、シーケンス番号比較部102−X−2、102−Y−2に到達するまでにその順序が入れ替わる。
Packet processing performed by the packet processing elements 102-X and 102-Y is performed in parallel without being aware of the packets being processed by the other packet processing elements. When the processing time of the
この場合、先にシーケンス番号比較部102−Y−2にパケット401が到達し、シーケンス番号比較部102−Y−2でパケット401に付与された値と、その値を付与したカウンタ101−1と対になる出力側カウンタ群内のカウンタ103−1の値を比較すると、パケット401に付与された値は(n+1)でカウンタ103−1の値はnであるから両者は不一致となり、カウンタ103−1の値がパケット401に付与されたシーケンス番号になるまで一定時間待機と比較を交互に繰り返す。
In this case, the
パケット処理エレメント102−Yでパケット401が待機と比較を行っている間に、パケット400がシーケンス番号比較部102−X−2に到達し、パケット400に付与された値とカウンタ103−1の値とを比較する。この場合は、パケット400に付与されたシーケンス番号の値はnでカウンタ103−1の値はnであるから両者は値が一致し、パケット処理エレメント102−Xは処理パケット出力キュー104にパケット400を積み込む。
While the
その後、カウンタ103−1の値は(n+1)に更新されるので、カウンタ103−1の値がパケット401に付与されたシーケンス番号と一致するので、パケット401がパケット400の次に処理パケット出力キュー104に積み込まれる。このようにして順序保障の必要なパケットはその順序を保つことができる。
Thereafter, since the value of the counter 103-1 is updated to (n + 1), the value of the counter 103-1 matches the sequence number assigned to the
次に、順序保障を行う必要のないパケット(異なる条件のパケット)が複数のパケット処理エレメントで並列処理される場合について図5を用いて説明する。処理パケット入力キューにパケット500、501が積まれているとする。この2つのパケットは前述と同様に、処理を行っていないパケット処理エレメントによって空いている順に取り出される。ここで、パケット500、501がそれぞれパケット処理エレメント102−X、102−Yに順に取り出されたとする。
Next, a case where packets that do not need to be guaranteed in order (packets with different conditions) are processed in parallel by a plurality of packet processing elements will be described with reference to FIG. Assume that
パケット処理エレメント102−Xのシーケンス番号付与部102−X−1は、入力側カウンタ群101のパケット500の条件に一致するカウンタ(仮に101−1とする)からシーケンス番号n1を読み出してパケット500に付与し、カウンタ101−1の値をn2に更新する。少し遅れてパケット処理エレメント102−Yのシーケンス番号付与部102−Y−1はパケット501の条件に一致したカウンタ(仮に101−2とする)からシーケンス番号n2を読み出してパケット501に付与し、カウンタ101−2の値を更新する。パケット処理エレメント102−X、102−Yで行われるパケット処理はそれぞれ、他のパケット処理エレメントで処理されているパケットを意識することなく並列処理される。
The sequence number assigning unit 102-X-1 of the packet processing element 102-X reads the sequence number n1 from the counter (assumed to be 101-1) that matches the condition of the
パケット500の処理がパケット501の処理よりも長い場合には、シーケンス番号比較部102−X−2、102−Y−2に到達するまでに、パケット500とパケット501の順序が入れ替わる。先にシーケンス番号比較部102−Y−2にパケット501が到達し、シーケンス番号比較部102−Y−2でパケット501に付与された値n2と、その値を付与したカウンタ101−2と対になる出力側カウンタ群103内のカウンタ103−2の値n2とを比較すると、両者の値が一致して後にシーケンス番号比較部103−1に到達するパケット500を待つことなく処理パケット出力キュー104に積まれる。その後、パケット500も同様の動作で処理パケット出力キュー104に積まれる。この結果、順序保証が不要なパケット500、501の場合は、パケットの転送順序は保たれないまま出力される。
When the processing of the
このようにして、本実施の形態によれば、順序保障の必要/不要のパケットが混在する場合でも前述により順序保障が必要なパケットのみの順序保障を行うことができる。これにより、本実施の形態では、簡単な仕組みにより並列処理が可能なパケット処理装置でパケットの入力順序通りに出力する方法(順序保障)と、並列に配置されたパケット処理エレメントの有効活用を行うことを実現し、その制御による転送効率劣化を低減することが可能となる。また、本実施の形態では、パケット処理エレメント102−1〜102−Nのそれぞれの内部にシーケンス番号付与部102−1−1〜102−N−1と、シーケンス番号比較部102−1−2〜102−N−2というパケット転送順序保障機構が設けられているため、対向装置に条件(制限)がなく、パケット種別、入出力番号などでパケットの順序保障を行っているので、多対多通信に適用できる。 In this way, according to the present embodiment, even when packets requiring / unnecessary for order are mixed, it is possible to guarantee the order of only the packets requiring order guarantee as described above. As a result, in the present embodiment, a packet processing device capable of parallel processing with a simple mechanism outputs a packet in the order of packet input (order guarantee), and effectively uses packet processing elements arranged in parallel. This makes it possible to reduce transfer efficiency deterioration due to the control. Further, in the present embodiment, sequence number assigning units 102-1-1 to 102-N-1 and sequence number comparing units 102-1-2 to 102-102-1 are provided inside packet processing elements 102-1 to 102-N, respectively. Since the packet transfer order guarantee mechanism 102-N-2 is provided, there is no condition (limitation) in the opposite device, and the packet order is guaranteed by the packet type, input / output number, etc. Applicable to.
なお、上記の実施の形態では、パケットの条件としてパケット種別、処理内容、入出力ポートを用い、これらの全てに一致するときパケットの条件を満足する(パケットの条件に一致する)としてカウンタ値をシーケンス番号として付与している。しかし、パケットの条件が分類できない場合は、上記の3つのいずれか一つでもよいが、条件分けが可能であれば、上記の3つの条件に限らず、できるだけ細かく分類することが望ましい。それは、同一パケットの条件に一致しない場合は、パケットの追い越しが発生しても、パケットの順序を保障しなくても問題が起こらず(パケットの順序が入れ替わることによる廃棄が起きないため)、逆に粗い条件分けであると、パケットの追い越しの発生が発生しても、そのパケットの順序が殆どの場合保障されるため、パケットの追い越しの問題が起きないパケットの処理を待たせることになり、無駄な処理待ち時間を作ってしまうからである。 In the above embodiment, the packet type, processing content, and input / output port are used as the packet condition, and when all of these are matched, the counter value is set to satisfy the packet condition (match the packet condition). It is given as a sequence number. However, if the packet condition cannot be classified, any one of the above three may be used. However, if the condition can be classified, it is desirable to classify as much as possible without being limited to the above three conditions. If it does not match the conditions of the same packet, there will be no problem even if packet overtaking occurs or packet order is not guaranteed (since discarding due to packet reordering does not occur), the reverse If the conditions are very rough, even if an overtaking of a packet occurs, the order of the packet is guaranteed in most cases, so that the processing of the packet that does not cause the overtaking of the packet will be awaited. This is because useless processing waiting time is created.
なお、本発明は上記の実施の形態に限定されるものではなく、例えば競合制御としても利用できる。競合制御を行うべき動作を開始する以前にシーケンス番号を付与し、競合制御が必要な動作の直前にシーケンス番号比較を行うことで競合制御が必要な動作はある1つの処理エレメントから起動されることが許可される。また、本発明は、図3の各ステップの手順をコンピュータのソフトウェアにより実行させるパケット転送順序保障プログラムも包含するものである。 In addition, this invention is not limited to said embodiment, For example, it can utilize also as competition control. An operation that requires contention control is started from a certain processing element by assigning a sequence number before starting the operation that should perform contention control and comparing the sequence number immediately before the operation that requires contention control. Is allowed. The present invention also includes a packet transfer order guarantee program that causes the procedure of each step of FIG. 3 to be executed by computer software.
100 処理パケット入力キュー
101 入力側カウンタ群
101−1〜101−N 入力側カウンタ
102−1〜102−N パケット処理エレメント
102−1−1、102−2−1、102−N−1、102−X−1、102−Y−1 シーケンス番号付与部
102−1−2、102−2−2、102−N−2、102−X−2、102−Y−2 シーケンス番号比較部
103 出力側カウンタ群
103−1〜103−N 出力側カウンタ
104 処理パケット出力キュー
400、401、500、501 パケット
100 processing
Claims (12)
前記処理パケット入力キューから順次取り出した異なるパケットを前記複数のパケット処理エレメントに順番に入力する第1のステップと、
前記複数のパケット処理エレメントのそれぞれにおいて、入力パケットの順序保障を行う単位毎にその入力パケットが所定のパケット条件に一致するとき、その入力パケットに対して、前記複数のパケット処理エレメントの間での入力順を示す値のシーケンス番号を付与する第2のステップと、
前記複数のパケット処理エレメントのそれぞれで前記シーケンス番号が付与されたパケットを処理する第3のステップと、
前記複数のパケット処理エレメントのそれぞれにおいて、前記処理後の前記シーケンス番号が付与されたパケットに付与されている前記シーケンス番号と、前記所定のパケット条件に一致するパケットの出力順を示す出力カウンタ値とを比較する第4のステップと、
前記出力カウンタ値に一致するシーケンス番号が付与されている前記処理後のパケットを前記パケット処理エレメントから取り出して前記処理パケット出力キューに積み込む第5のステップと
を含むことを特徴とするパケット転送順序保障方法。 Packets sequentially taken out from the processing packet input queue are distributed and input to a plurality of packet processing elements and processed in parallel, and then the processed packets from each of the plurality of packet processing elements are loaded into a common processing packet output queue. A packet transfer order guarantee method for a packet transfer system to output,
A first step of sequentially inputting different packets sequentially retrieved from the processing packet input queue to the plurality of packet processing elements;
In each of the plurality of packet processing elements, when the input packet matches a predetermined packet condition for each unit in which the order of the input packets is guaranteed, the input packet is between the plurality of packet processing elements. A second step of assigning a sequence number of values indicating the input order;
A third step of processing a packet assigned the sequence number in each of the plurality of packet processing elements;
In each of the plurality of packet processing elements, the sequence number given to the packet given the sequence number after the processing, and an output counter value indicating the output order of packets matching the predetermined packet condition, A fourth step of comparing
A packet transfer order guarantee comprising: a fifth step of taking out the processed packet assigned with a sequence number matching the output counter value from the packet processing element and loading it into the processed packet output queue. Method.
前記複数のパケット処理エレメントから参照・更新可能であり、入力パケットの転送順序保障を行う単位毎にシーケンス番号を個別管理している複数のカウンタから形成される入力側カウンタ群と、
前記複数のパケット処理エレメントから参照・更新可能であり、前記転送順序保障を行う単位毎(各種条件の組み合わせ毎)に出力可能なシーケンス番号を個別管理し、かつ、前記入力側カウンタ群の複数のカウンタと対を構成する複数のカウンタから形成された出力側カウンタ群と、
前記処理パケット入力キューからパケットを順次取り出して前記複数のパケット処理エレメントに順番に入力するパケット入力手段と、
前記複数のパケット処理エレメントのそれぞれにおいて、入力パケットの順序保障を行う単位毎にその入力パケットが所定のパケット条件に一致するとき、前記入力カウンタ群中の前記所定のパケット条件に一致したカウンタから前記複数のパケット処理エレメントの間での入力順を示す値を読み出して、前記入力パケットにシーケンス番号として付与するシーケンス番号付与手段と、
前記複数のパケット処理エレメントのそれぞれにおいて、処理された後の前記シーケンス番号が付与されたパケットに付与されている前記シーケンス番号と、前記出力カウンタ群中の前記所定のパケット条件に一致したカウンタから読み出したパケットの出力順を示す出力カウンタ値とを比較するシーケンス番号比較手段と、
前記シーケンス番号比較手段で一致する比較結果が得られたシーケンス番号が付与されている前記処理後のパケットを前記パケット処理エレメントから取り出して前記処理パケット出力キューに積み込む出力選択手段と
を有することを特徴とするパケット転送順序保障装置。 Packets sequentially taken out from the processing packet input queue are distributed and input to a plurality of packet processing elements and processed in parallel, and then the processed packets from each of the plurality of packet processing elements are loaded into a common processing packet output queue. A packet transfer order assurance device for a packet transfer system to output,
An input-side counter group formed of a plurality of counters that can be referred to and updated from the plurality of packet processing elements and that individually manage sequence numbers for each unit that guarantees the transfer order of input packets,
It is possible to refer to and update from the plurality of packet processing elements, individually manage sequence numbers that can be output for each unit (for each combination of various conditions) for ensuring the transfer order, and a plurality of input side counter groups An output-side counter group formed of a plurality of counters constituting a pair with the counter;
Packet input means for sequentially retrieving packets from the processing packet input queue and sequentially inputting the packets to the plurality of packet processing elements;
In each of the plurality of packet processing elements, when the input packet matches a predetermined packet condition for each unit that guarantees the order of the input packets, the counter that matches the predetermined packet condition in the input counter group A sequence number giving means for reading a value indicating an input order among a plurality of packet processing elements and giving the input packet as a sequence number;
In each of the plurality of packet processing elements, read from the counter that matches the sequence number given to the packet to which the sequence number after processing has been given and the predetermined packet condition in the output counter group Sequence number comparison means for comparing the output counter value indicating the output order of the received packets;
Output selection means for taking out the processed packet, to which the sequence number obtained by the sequence number comparison means for matching results has been assigned, from the packet processing element and loading it into the processing packet output queue. A packet transfer order guarantee device.
前記コンピュータに、
前記処理パケット入力キューから順次取り出した異なるパケットを前記複数のパケット処理エレメントに順番に入力する第1のステップと、
前記複数のパケット処理エレメントのそれぞれにおいて、入力パケットの順序保障を行う単位毎にその入力パケットが所定のパケット条件に一致するとき、その入力パケットに対して、前記複数のパケット処理エレメントの間での入力順を示す値のシーケンス番号を付与する第2のステップと、
前記複数のパケット処理エレメントのそれぞれで前記シーケンス番号が付与されたパケットを処理する第3のステップと、
前記複数のパケット処理エレメントのそれぞれにおいて、前記処理後の前記シーケンス番号が付与されたパケットに付与されている前記シーケンス番号と、前記所定のパケット条件に一致するパケットの出力順を示す出力カウンタ値とを比較する第4のステップと、
前記出力カウンタ値に一致するシーケンス番号が付与されている前記処理後のパケットを前記パケット処理エレメントから取り出して前記処理パケット出力キューに積み込む第5のステップと
を実行させることを特徴とするパケット転送順序保障プログラム。 Packets sequentially taken out from the processing packet input queue are distributed and input to a plurality of packet processing elements and processed in parallel, and then the processed packets from each of the plurality of packet processing elements are loaded into a common processing packet output queue. A packet transfer order guarantee program for ensuring a packet transfer order of a packet transfer system to be output by a computer,
In the computer,
A first step of sequentially inputting different packets sequentially retrieved from the processing packet input queue to the plurality of packet processing elements;
In each of the plurality of packet processing elements, when the input packet matches a predetermined packet condition for each unit in which the order of the input packets is guaranteed, the input packet is between the plurality of packet processing elements. A second step of assigning a sequence number of values indicating the input order;
A third step of processing a packet assigned the sequence number in each of the plurality of packet processing elements;
In each of the plurality of packet processing elements, the sequence number given to the packet given the sequence number after the processing, and an output counter value indicating the output order of packets matching the predetermined packet condition, A fourth step of comparing
And a fifth step of executing the fifth step of taking out the processed packet assigned the sequence number that matches the output counter value from the packet processing element and loading it into the processed packet output queue. Security program.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007076930A JP2008236653A (en) | 2007-03-23 | 2007-03-23 | Packet transfer order security method, packet transfer order security apparatus, and packet transfer order security program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007076930A JP2008236653A (en) | 2007-03-23 | 2007-03-23 | Packet transfer order security method, packet transfer order security apparatus, and packet transfer order security program |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008236653A true JP2008236653A (en) | 2008-10-02 |
Family
ID=39908840
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007076930A Pending JP2008236653A (en) | 2007-03-23 | 2007-03-23 | Packet transfer order security method, packet transfer order security apparatus, and packet transfer order security program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2008236653A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010199643A (en) * | 2009-02-20 | 2010-09-09 | Nec Corp | Packet processing apparatus, and method and program for controlling packet processing order used for the processing apparatus |
US9282045B2 (en) | 2012-12-19 | 2016-03-08 | Fujitsu Limited | Information processing method, information processing circuit, and information processing apparatus |
-
2007
- 2007-03-23 JP JP2007076930A patent/JP2008236653A/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010199643A (en) * | 2009-02-20 | 2010-09-09 | Nec Corp | Packet processing apparatus, and method and program for controlling packet processing order used for the processing apparatus |
US9282045B2 (en) | 2012-12-19 | 2016-03-08 | Fujitsu Limited | Information processing method, information processing circuit, and information processing apparatus |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7602790B2 (en) | Two-dimensional pipelined scheduling technique | |
US9098330B2 (en) | Packet processing on a multi-core processor | |
US20070140229A1 (en) | Method for cell reordering, method and apparatus for cell processing using the same | |
US7453898B1 (en) | Methods and apparatus for simultaneously scheduling multiple priorities of packets | |
CN102577258B (en) | Configuring a three-stage CLOS-network packet switch | |
JP2011528193A (en) | Method and filter arrangement for filtering messages arriving at a subscriber of a network via a serial data bus of a communication network | |
US11294841B1 (en) | Dynamically configurable pipeline | |
JP5382003B2 (en) | Arbitration device | |
JP2002259352A (en) | Multiprocessor system device | |
CN102739651B (en) | automation system | |
US7693421B2 (en) | Optical packet buffering device and method | |
US7184443B2 (en) | Packet scheduling particularly applicable to systems including a non-blocking switching fabric and homogeneous or heterogeneous line card interfaces | |
JP2008527853A (en) | Method and apparatus for scheduling packets and / or cells | |
US6888841B1 (en) | Pipelined scheduling technique | |
JP2008236653A (en) | Packet transfer order security method, packet transfer order security apparatus, and packet transfer order security program | |
CN103067304B (en) | The method of packet order preserving and device | |
CN104255004B (en) | Straight-through forwarding module and the method for receiving and launching data frame under straight-through forward mode | |
JP2002199000A (en) | Packet exchange with control part connected in cascade and switching matrix connected in cascade without buffer | |
CN106776032A (en) | The treating method and apparatus of the I/O Request of distributed block storage | |
US7486687B2 (en) | Method and allocation device for allocating pending requests for data packet transmission at a number of inputs to a number of outputs of a packet switching device in successive time slots | |
CA2492361A1 (en) | Packet switching system | |
JP2010073113A (en) | Data transfer device and semiconductor testing device | |
CN104919769A (en) | Scheduler for deciding final output queue by selectingone of multiple candidate output queues and related method | |
US11196684B2 (en) | Flow control device and method | |
JP3923433B2 (en) | Feedback system for a packet switching device having a bufferless cascaded switching matrix |