WO2014038582A1 - パケット振分装置、パケット振分方法、およびパケット振分プログラム - Google Patents

パケット振分装置、パケット振分方法、およびパケット振分プログラム Download PDF

Info

Publication number
WO2014038582A1
WO2014038582A1 PCT/JP2013/073776 JP2013073776W WO2014038582A1 WO 2014038582 A1 WO2014038582 A1 WO 2014038582A1 JP 2013073776 W JP2013073776 W JP 2013073776W WO 2014038582 A1 WO2014038582 A1 WO 2014038582A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
distribution
processing
flow information
processing unit
Prior art date
Application number
PCT/JP2013/073776
Other languages
English (en)
French (fr)
Inventor
智久 横田
Original Assignee
日本電気株式会社
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 日本電気株式会社 filed Critical 日本電気株式会社
Publication of WO2014038582A1 publication Critical patent/WO2014038582A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Definitions

  • the present invention relates to a packet distribution device, a packet distribution method, and a packet distribution program, and more particularly to a packet distribution device that can effectively use the resources of a multi-core processor.
  • the Internet generally includes many data relay devices that transfer communication packets from one network to another, such as routers, repeaters, gateways, and the like. In this specification, these devices are collectively referred to as a packet distribution device.
  • the packet distribution device is based on information about the transmission source and destination of the packet included in the header information of the received packet, such as an IP address and a port number (hereinafter, these information are collectively referred to as flow information). In addition, after performing processing such as necessary data format conversion, it plays a role of transferring the packet to the network according to the flow information. In other words, the packet distribution device is arranged at each important point of the Internet and is indispensable for the Internet to function.
  • the processor included in the packet distribution device has been able to cope with the improvement in processing capacity by increasing the clock frequency.
  • the increase in clock frequency has reached a physical limit due to problems such as the amount of heat generated by the operation of the processor, so that a multi-core processor having a plurality of cores that are the execution body of arithmetic processing is used. It has become to.
  • FIG. 7 is an explanatory diagram showing a configuration of a general packet distribution device 910 on the Internet.
  • the packet distribution device 910 includes a multi-core processor.
  • the multi-core processor includes a plurality of cores each of which is a main body that executes different computer programs, and these cores function simultaneously as a packet distribution unit 921 and packet processing units 922a to 922d, respectively.
  • FIG. 7 shows an example in which four packet processing units are provided, other numbers may be used.
  • the packet distribution unit 921 distributes and processes input packets sent from other devices to the packet processing units 922a to 922d according to the flow information of the input packets.
  • Each distributed packet is temporarily stored in a processing standby buffer 923a-d corresponding to each of the packet processing units 922a-d of the distribution destination by the FIFO (First In In First Out Out) method, and temporarily stored.
  • the packet processing units 922a to 922d process in order.
  • the “round robin method” or the “hash method” is mainly used. Each of these will be described below.
  • the round robin method is a method in which when each packet is received by the packet sorting unit 921, it is distributed to each of the packet processing units 922a to 922d according to the order of reception.
  • the processing speed may be different in each packet processing unit 922a-d. Therefore, when packets having the same flow information are distributed to different packet processing units.
  • problems such as exclusive processing of the sharing rule table and a decrease in the cache hit rate are also problematic.
  • the hash method is a method in which a hash value obtained by applying a hash function known in cryptography or the like to flow information is used as a tag value, and the packet is distributed to each of the packet processing units 922a to 922d according to the tag value. is there. Due to the characteristics of the hash function, since the same hash value is always obtained from packets having the same flow information, they are always distributed to the same packet processing unit. Therefore, there is an advantage that the processing order cannot be reversed in principle.
  • Patent Document 1 describes a packet distribution device having a configuration in which hardware for distributing packets is parallelized.
  • this apparatus the occurrence of processing order reversal is suppressed by passing packets distributed by a technique such as the round robin method through a rearrangement unit. Therefore, this technique requires processing load and apparatus cost for packet rearrangement.
  • Patent Document 2 describes a packet distribution device that acquires a transfer destination port and a transferable port of each packet, and distributes the packet to a place with a low load in the transferable port.
  • Patent Document 3 describes a packet distribution device that distributes received packets by the hash method described above.
  • An object of the present invention is to provide a packet allocation that makes it possible to effectively use resources of a multi-core processor by always distributing packets having different flow information to different packet processing units even if the hash values (tag values) are the same. It is to provide a distribution device, a packet distribution method, and a packet distribution program.
  • a packet distribution device is a packet distribution device that relays a packet transmitted through a network to another network.
  • a plurality of packet processing units that perform processing corresponding to the network, a processing standby buffer that temporarily stores packets distributed to each packet processing unit in a first-in first-out method, and a transmission source and destination of the packet included in the input packet
  • a packet processing unit that determines a packet processing unit that processes each packet on the basis of the entire flow information that is information on the packet and outputs each packet to the packet processing unit.
  • a packet distribution method is a packet distribution device that relays a packet transmitted through a network to another network, and the packet distribution device is inputted.
  • a plurality of packet processing units that perform processing corresponding to the output destination network for the packet, a processing standby buffer that temporarily stores packets distributed to each packet processing unit in a first-in first-out method, and the input packet
  • a packet processing unit that determines a packet processing unit that processes each packet based on flow information that is information about the transmission source and destination of the packet and outputs each packet to the packet processing unit;
  • the packet transmission / reception function of the packet distribution unit extracts flow information from the packet, and the extracted flow information and
  • the distribution rule processing function of the packet distribution unit collates with the stored distribution rule table to determine the packet processing unit to process the packet, and the processing destination of the packet determined by the distribution rule processing function
  • the packet transmission / reception function of the packet distribution unit outputs the packet to a certain packet processing unit.
  • a packet distribution program is a packet distribution device that relays a packet transmitted through a network to another network.
  • a plurality of packet processing units that perform processing corresponding to the output destination network for the packet, a processing standby buffer that temporarily stores packets distributed to each packet processing unit in a first-in first-out method, and the input packet
  • a packet processing unit that determines a packet processing unit that processes each packet based on flow information that is information about the transmission source and destination of the packet and outputs each packet to the packet processing unit.
  • the present invention is configured to determine the packet processing unit from the entire flow information extracted from the packet and output the packet there, so even if the hash value (tag value) is the same Packets having different flow information are always distributed to different packet processing units. Accordingly, it is possible to provide a packet distribution device, a packet distribution method, and a packet distribution program having an excellent feature that the resources of the multi-core processor can be effectively used.
  • FIG. 3 is an explanatory diagram showing an example of more detailed storage contents of the distribution rule table shown in FIGS.
  • FIG. 3 is a flowchart showing an input packet sorting operation performed by a packet sorting unit in the packet sorting apparatus shown in FIGS. 1 and 2.
  • FIG. 3 is an explanatory diagram illustrating an example of flow information of an input packet input to the packet distribution device illustrated in FIGS.
  • FIGS. 5A to 5C show the first to third input packets 301 to 303, respectively.
  • FIG. 6 is an explanatory diagram showing a distribution rule table in a state where a new entry is added through the processing for the input packet shown in FIG. 5 in the packet distribution device shown in FIGS. It is explanatory drawing shown about the structure of the general packet distribution apparatus in the internet.
  • the packet distribution device 10 is a packet distribution device that relays a packet transmitted through a network to another network, and performs processing corresponding to an output destination network for the input packet.
  • a packet distribution unit 101 that determines a packet processing unit that processes each packet based on the entire flow information that is the information of the above and outputs each packet there.
  • the packet distribution unit 101 collates the flow information of the input packet with a pre-stored distribution rule table 111 to determine a packet processing unit that processes the packet, and an input A packet transmission / reception function 101a that extracts flow information from the received packet, transmits the flow information to the distribution rule processing function, and outputs the packet to a packet processing unit that is a processing destination of the packet returned in response thereto; Is provided.
  • the distribution rule processing function 101b of the packet distribution unit 101 calculates a tag value from the flow information by a hash function, and an entry corresponding to this tag value is registered in the distribution rule table 111.
  • the entire flow information of the input packet is compared with the flow information stored in the entry corresponding to the tag value in the distribution rule table, and if the flow information matches, the flow information is stored in the entry.
  • the distribution destination is determined as a packet processing unit that processes the packet.
  • the packet distribution unit includes a load comparison function 101c that acquires the number of unprocessed packets temporarily stored in each processing standby buffer, and an entry that matches the tag value of the input packet and the entire flow information is allocated.
  • the distribution rule processing function 101b processes the packet in the packet processing unit corresponding to the processing standby buffer with the smallest number of unprocessed packets acquired by the load comparison function. The new entry corresponding to this is added to the distribution rule table.
  • the packet distribution device 10 includes a multi-core processor 11 having a plurality of cores 11a to 11e each of which is a main body that executes different computer programs, and the packet distribution unit and each packet processing unit function in different cores. .
  • the packet distribution device 10 distributes packets having different flow information to different packet processing units even if the hash values (tag values) are the same, thereby effectively using the resources of the multi-core processor. It becomes possible to utilize it. Hereinafter, this will be described in more detail.
  • FIG. 1 is an explanatory diagram showing a software configuration of the packet distribution device 10 according to the embodiment of the present invention.
  • FIG. 2 is an explanatory diagram showing a hardware configuration of the packet sorting apparatus 10 shown in FIG.
  • the packet distribution device 10 is a device that relays a data packet transmitted through a network to another network, such as a router, a repeater, or a gateway.
  • the packet distribution device 10 includes, as hardware, a multi-core processor 11 that mainly executes a computer program, a storage unit 12 that stores data, an input interface 13 that receives data input from another device, and data to other devices. And an output interface 14 for outputting.
  • the multi-core processor 11 includes a plurality of cores 11a to 11e each of which is a main body that executes different computer programs.
  • the core 11a functions as a packet distribution unit 101
  • the cores 11b to 11e function as packet processing units 102a to 102d, respectively.
  • the storage unit 12 has a distribution rule table 111 and storage areas as processing standby buffers 112a to 112d.
  • FIGS. 1 and 2 show examples in which five cores and four packet processing units are provided, but other numbers may be used.
  • the flow of data packets is indicated by solid arrows, and the flow of other data and commands is indicated by broken arrows.
  • An input packet sent from another device is received by the packet distribution unit 101 via the input interface 13, and the flow information of the input packet is checked against the rules defined in the distribution rule table 111.
  • the packet processing units 102a to 102d may have different final data output destinations, or may have different specific processing contents.
  • the input packets distributed by the packet distribution unit 101 are temporarily stored in the processing standby buffers 112a to 112d in a FIFO (First / In / First / Out) method, and the packet processing units 102a corresponding to each of the processing standby buffers 112a to 112d. Are sequentially output to .about.d.
  • the packet processing units 102a to 102d perform processing such as data format conversion corresponding to the output destination for each packet, and output the output packet as the processing result to another device via the output interface 14.
  • the packet distribution unit 101 includes functions such as a packet transmission / reception function 101a, a distribution rule processing function 101b, and a load comparison function 101c.
  • the packet transmission / reception function 101a receives an input packet via the input interface 13, inquires of the distribution rule processing function 101b of the distribution destination, and sends to the packet processing units 102a to 102d of the distribution destination obtained by the inquiry.
  • the packet is output to the corresponding processing standby buffers 112a to 112d.
  • the distribution rule processing function 101b receives the header information of each input packet from the packet transmission / reception function 101a, determines the distribution destination of the input packet by comparing the header information with the distribution rule table 111, and determines this. Return to the packet transmission / reception function 101a.
  • a distribution rule defined in the distribution rule table 111 can be added and edited.
  • the load comparison function 101c acquires the number of unprocessed packets temporarily stored in the respective processing standby buffers 112a to 112d (processing standby number), and the processing standby buffers 112a to 112d having the smallest processing standby number.
  • the packet processing units 102a to 102d corresponding to are identified as having the smallest processing load, and the specified contents are transmitted to the distribution rule processing function 101b.
  • FIG. 3 is an explanatory diagram showing an example of more detailed storage contents of the distribution rule table 111 shown in FIGS.
  • the distribution rule table 111 includes data such as a tag value 111a, flow information 111b, and a distribution destination 111c.
  • the tag value 111a is a numerical value calculated by the distribution rule processing function 101b from the flow information of each input packet using a hash function.
  • the flow information 111b indicates a condition regarding a numerical value included in each field included in the flow information in the header information of each input packet.
  • Each entry of the distribution rule table 111 is “a packet corresponding to the condition defined by the tag value 111a and the flow information 111b is output to the packet processing units 102a to 102d defined in the distribution destination 111c and processed. Is defined as a distribution rule.
  • the flow information 111b includes items “SA”, “DA”, “SP”, “DP”, and “Pro”. They respectively represent “SA”: source IP address, “DA”: destination IP address, “SP”: source port number, “DP”: destination port number, and “Pro”: protocol type number.
  • This flow information is based on the basic standard of TCP / IP (Transmission Control Protocol / Internet Protocol) such as RFC791,793,768.
  • TCP / IP Transmission Control Protocol / Internet Protocol
  • FIG. 4 is a flowchart showing an input packet sorting operation performed by the packet sorting unit 101 in the packet sorting apparatus 10 shown in FIGS.
  • the packet transmission / reception function 101a of the packet distribution unit 101 receives this via the input interface 13, and distributes header information included in the input packet. It passes to the minute rule processing function 101b (step S201).
  • the distribution rule processing function 101b calculates a tag value by applying a hash function to the header information passed from the packet transmission / reception function 101a (step S202), and assigns a distribution condition corresponding to the tag value to the distribution rule table 111.
  • the tag value 111a is searched, and it is determined whether or not the corresponding distribution condition exists (step S203).
  • step S203 if there is an entry for the distribution condition corresponding to this tag value, the distribution rule processing function 101b further determines whether the header information itself corresponds to the condition defined in the flow information 111b of the same entry. Is determined (step S204). If not, the process proceeds to the next entry (step S210), the process returns to step S203, and the determination is continued as to whether or not there is a corresponding tag value in the next and subsequent entries.
  • the packet processing units 102a to 102d of the distribution destination 111c defined in the entry are specified as distribution destinations and returned to the packet transmission / reception function 101a (Ste S205).
  • the packet transmission / reception function 101a outputs the input packet to the processing standby buffers 112a to 112d corresponding to the distribution destination packet processing units 102a to 102d (step S206).
  • the load comparison function 101c acquires the number of processing standbys in each processing standby buffer 112a-d (step S207), The packet processing units 102a to 102d corresponding to the processing standby buffers 112a to 112d having the smallest number of processing standbys are identified and returned to the distribution rule processing function 101b (step S208).
  • the distribution rule processing function 101b that has received the specific result returns this specific result to the packet transmission / reception function 101a as the distribution destination as it is, and at the same time, the tag value 111a and the flow that are the basis of this determination in the distribution rule table 111 A new entry having the specified result as the distribution destination 111c is added to the information 111b (step S209). Thereafter, the process proceeds to step S206 described above, and the packet transmission / reception function 101a outputs the input packet to the processing standby buffers 112a to 112d corresponding to the packet processing units 102a to 102d to which the packet is distributed.
  • FIG. 5 is an explanatory diagram showing an example of the flow information 301a to 303a of the input packets 301 to 303 input to the packet sorting apparatus 10 shown in FIGS.
  • FIGS. 5A to 5C show the first to third input packets 301 to 303, respectively.
  • These input packets 301 to 303 are input to the packet distribution device 10 in the order of 301 ⁇ 302 ⁇ 303.
  • the tag value 301b calculated by the distribution rule processing function 101b from the flow information 301a of the first input packet 301 is “1”.
  • the tag value 302 b calculated from the flow information 302 a of the second input packet 302 is “1”
  • the tag value 303 b calculated from the flow information 303 a of the third input packet 303 is “2”.
  • the distribution rule table 111 at the start of processing is in the state shown in FIG.
  • the process proceeds to No in the second step S203.
  • the load comparison function 101c detects the processing standby number of the processing standby buffers 112a to 112d in the process of step S207, and determines that the processing standby buffer 112c has the minimum processing standby number in the process of step S208.
  • a specific result indicating that the packet 302 should be processed by the packet processing unit 102c is returned to the distribution rule processing function 101b.
  • FIG. 6 is an explanatory diagram showing the distribution rule table 111 in a state where a new entry is added through the processing for the input packet 302 shown in FIG. 5 in the packet distribution device 10 shown in FIGS. Then, the packet transmission / reception function 101a outputs the input packet 302 to the processing standby buffer 112c.
  • the tag value 303b “2”
  • the packet distribution method according to the present embodiment is in the packet distribution device 10 that relays a packet transmitted via a network to another network, and the packet distribution device outputs an input packet. Included in the input packets are a plurality of packet processing units 102a to 102d that perform processing corresponding to the previous network, processing standby buffers 112a to 112d that temporarily store packets distributed to each packet processing unit in a first-in first-out manner, and A packet processing unit 101 that determines a packet processing unit that processes each packet based on flow information that is information about the transmission source and destination of the packet and outputs each packet there; The packet transmission / reception function of the packet distribution unit extracts the flow information from the received packet (see FIG.
  • the distribution rule processing function of the packet distribution unit compares the extracted flow information with the pre-stored distribution rule table to determine a packet processing unit that processes the packet (FIG. 4, step S201).
  • the packet transmission / reception function of the packet distribution unit outputs the packet to the packet processing unit that is the processing destination of the packet determined by the distribution rule processing function (step S206 in FIG. 4).
  • the process of determining the packet processing unit for processing the packet by the distribution rule processing function calculates the tag value from the extracted flow information by the hash function (step S202 in FIG. 4), and the entry corresponding to this tag value Is registered in the distribution rule table, the entire flow information of the input packet is compared with the flow information stored in the entry corresponding to the tag value in the distribution rule table (FIG. 4, steps S203 to S204). When the flow information matches, the distribution destination stored in the entry is determined as a packet processing unit that processes the packet (step S205 in FIG. 4).
  • each of the above-described operation steps may be programmed to be executable by a computer, and may be executed by the processor 11 of the packet distribution device that directly executes each of the steps.
  • the program may be recorded on a non-temporary recording medium, such as a DVD, a CD, or a flash memory. In this case, the program is read from the recording medium by a computer and executed.
  • the advantage of the hash method that packets having the same flow information are always distributed to the same packet processing unit is maintained. If the entire flow information does not match, the same packet processing unit cannot be distributed. Therefore, it is possible to avoid a situation where packets are concentrated on a specific packet processing unit. Moreover, the advantage of the hash method that the reversal of the processing order cannot occur remains the same.
  • the distribution rule table is configured so that the packet processing unit with the smallest number of processing standbys in the corresponding processing standby buffer processes the packet. Create a new entry.
  • the load of each packet processing unit can be made equal and the resources of the multi-core processor can be used effectively.
  • it is no longer necessary to store rules for all cases in advance in the distribution rule table and it is possible to suppress the occurrence of uneven load on each packet processing unit due to inadequate or inappropriate rule settings. Is also possible.
  • the processor of the packet distribution device may not be a multi-core processor, for example, may be a multi-thread processor, or may include a plurality of processors themselves.
  • the method of calculating the tag value from the flow information only needs to satisfy the characteristic that “the same tag value is always calculated from the same flow information” without using a so-called cryptographic hash function. Any method can be applied.
  • a packet distribution device that relays a packet transmitted over a network to another network, A plurality of packet processing units for performing processing corresponding to an output destination network for the input packet; A processing standby buffer for temporarily storing the packets distributed to the packet processing units in a first-in first-out manner; Packet distribution that determines the packet processing unit that processes each packet based on the entire flow information that is information about the transmission source and destination of the packet included in the input packet and outputs the packet there A packet distribution device.
  • the packet distribution unit A sorting rule processing function that determines the packet processing unit that processes the packet by checking the entire flow information of the input packet against a pre-stored sorting rule table; The flow information is extracted from the input packet, transmitted to the distribution rule processing function, and the packet is output to the packet processing unit which is a processing destination of the packet returned in response to the flow information.
  • Packet transmission / reception function The packet distribution device according to appendix 1, characterized by comprising:
  • the distribution rule processing function of the packet distribution unit calculates a tag value from the flow information using a hash function, and an entry corresponding to the tag value is registered in the distribution rule table. The entire flow information of the input packet is compared with the flow information stored in the entry corresponding to the tag value in the distribution rule table. 3.
  • the packet distribution device according to appendix 2, wherein a distribution destination stored in an entry is determined as the packet processing unit that processes the packet.
  • the packet distribution unit A load comparison function for obtaining the number of unprocessed packets temporarily stored in each processing standby buffer; When an entry that matches the tag value of the input packet and the entire flow information does not exist in the distribution rule table, the distribution rule processing function is an unprocessed information acquired by the load comparison function.
  • the packet processing unit corresponding to the processing standby buffer with the smallest number of packets is determined to process the packet, and a new entry corresponding to the packet processing unit is added to the distribution rule table.
  • the packet distribution device according to attachment 3 wherein the packet distribution device is characterized.
  • a multi-core processor having a plurality of cores each of which is a main body that executes different computer programs, The packet distribution device according to appendix 1, wherein the packet distribution unit and each packet processing unit function in different cores.
  • This packet distribution device In the packet distribution apparatus which relays the packet transmitted via a network to another network, This packet distribution device A plurality of packet processing units for performing processing corresponding to an output destination network for the input packet; A processing standby buffer for temporarily storing the packets distributed to the packet processing units in a first-in first-out manner; A packet distribution unit that determines the packet processing unit that processes each packet based on flow information that is information about the transmission source and destination of the packet included in the input packet and outputs the packet there And with The packet transmission / reception function of the packet distribution unit extracts the flow information from the input packet, The packet processing unit that processes the packet is determined by collating the distribution rule table stored in advance with the entire extracted flow information and the distribution rule processing function of the packet distribution unit, A packet distribution method, wherein the packet transmission / reception function of the packet distribution unit outputs the packet to the packet processing unit which is a processing destination of the packet determined by the distribution rule processing function.
  • This packet distribution device In a packet distribution device that relays a packet transmitted through a network to another network, This packet distribution device A plurality of packet processing units for performing processing corresponding to an output destination network for the input packet; A processing standby buffer for temporarily storing the packets distributed to the packet processing units in a first-in first-out manner; A packet distribution unit that determines the packet processing unit that processes each packet based on flow information that is information about the transmission source and destination of the packet included in the input packet and outputs the packet there And with In the processor included in this packet distribution unit, A procedure for extracting the flow information from the input packet; A procedure for determining the packet processing unit that processes the packet by comparing the entire extracted flow information with a pre-stored distribution rule table; And a packet distribution program for causing the packet processing unit, which is a processing destination of the packet determined by the distribution rule processing function, to execute a procedure for outputting the packet.
  • a procedure for determining the packet processing unit that processes the packet includes: A tag value is calculated by a hash function from the extracted flow information, When an entry corresponding to the tag value is registered in the distribution rule table, the entire flow information of the input packet is stored in the entry corresponding to the tag value in the distribution rule table. Compared to information, 9.
  • the present invention can be widely applied to packet distribution devices such as routers, repeaters, gateways, etc., which are arranged at important points on the Internet.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】異なるフロー情報を持つパケットを必ず異なるパケット処理部に振り分けるパケット振分装置等を提供する。 【解決手段】パケット振分装置10のパケット振分部101は、パケットのフロー情報全体を予め記憶された振分ルールテーブル111と照合して当該パケットを処理するパケット処理部を決定する振分ルール処理機能101bと、入力されたパケットからフロー情報を抽出し、これに応じて返信されてきた当該パケットの処理先であるパケット処理部に当該パケットを出力するパケット送受信機能101aとを備える。

Description

パケット振分装置、パケット振分方法、およびパケット振分プログラム
 本発明はパケット振分装置、パケット振分方法、およびパケット振分プログラムに関し、特にマルチコアプロセッサのリソースを有効に活用しうるパケット振分装置などに関する。
 インターネットは一般的に、たとえばルータ、リピータ、ゲートウェイなどのように、通信パケットを一つのネットワークから他のネットワークに転送するデータ中継装置を多数含む。本明細書では、それらの装置を総称してパケット振分装置という。
 パケット振分装置は、受信したパケットのヘッダ情報の中に含まれる当該パケットの送信元や宛先についての情報、たとえばIPアドレス、ポート番号など(以後これらの情報を総称してフロー情報という)に基づいて、必要なデータ形式の変換などの処理を行った上で、フロー情報に応じたネットワークに当該パケットを転送する役割を果たす。即ち、パケット振分装置は、インターネットの要所ごとに配置され、インターネットが機能を果たすために不可欠なものである。
 近年は、インターネットを介して、高画質の映像や高音質の音声などを含むいわゆるリッチコンテンツのリアルタイム配信も多く行われるようになっている。このため、インターネットの要所に配置されるパケット振分装置は、ますます多くの量のパケットをフロー情報に応じてリアルタイムに処理することが要求されている。
 その一方でパケット振分装置が備えるプロセッサは、これまではクロック周波数を高周波数化することによって処理容量の向上に対応してきた。しかしながら、近年はプロセッサの動作に伴う発熱量などの問題により、クロック周波数の増加は物理的限界に達しているので、演算処理の実施主体であるコアを複数備えたマルチコアプロセッサが利用されるようになってきている。
 図7は、インターネットにおける一般的なパケット振分装置910の構成について示す説明図である。パケット振分装置910は、マルチコアプロセッサを備えている。このマルチコアプロセッサは、それぞれが異なるコンピュータプログラムを実行する主体となる複数のコアを備え、これらのコアがそれぞれパケット振分部921およびパケット処理部922a~dとして、各々同時に機能する。図7ではパケット処理部を4つ備えた例を示したが、これ以外の数であってもよい。
 パケット振分部921は、他装置から送られてきた入力パケットを、当該入力パケットのフロー情報に応じてパケット処理部922a~dに振り分けて処理させる。振り分けられた各パケットは、振分先の各パケット処理部922a~dのそれぞれに対応する処理待機バッファ923a~dにFIFO(First In First Out, 先入れ先出し)方式で一時記憶され、その一時記憶された順番で各パケット処理部922a~dによって処理される。
 パケット振分部921によるその振り分けの際、主に使用されるのは「ラウンドロビン法」、あるいは「ハッシュ法」である。以下、これらの各々について説明する。
 ラウンドロビン法は、各々のパケットがパケット振分部921で受信された時点で、その受信された順番に応じて各パケット処理部922a~dに振り分けるという方法である。この方法だと、特にパケット長や処理内容が異なる場合、各パケット処理部922a~dで処理速度が異なる場合があるので、同一のフロー情報を持つパケットが別々のパケット処理部に振り分けられた場合に、処理順序の逆転が発生しやすいという問題がある。また、共有ルールテーブルの排他処理、キャッシュヒット率の低下などといった点も問題となる。
 ハッシュ法は、暗号学などで公知のハッシュ関数をフロー情報に適用して得られたハッシュ値をタグ値として、このタグ値に応じて当該パケットを各パケット処理部922a~dに振り分けるという方法である。ハッシュ関数の特性上、同一のフロー情報を持つパケットからは、必ず同一のハッシュ値が得られるので、必ず同一のパケット処理部に振り分けられる。そのため、処理順序の逆転は原理的に発生し得ないという利点がある。
 これに関連して、次のような各技術文献がある。この中でも特許文献1には、パケットの振分を行うハードウェアを並列化した構成のパケット振分装置が記載されている。この装置では、ラウンドロビン法などの手法で振り分けられたパケットを再配列ユニットに通すことによって処理順序逆転の発生を抑制している。従って、この技術ではパケットの再配列に処理負荷や装置コストを要することとなる。
 特許文献2には、各パケットの転送先ポートと転送可能ポートを取得して、転送可能ポートの中で負荷の少ない所に当該パケットを振り分けるというパケット振分装置が記載されている。特許文献3には、上述のハッシュ法によって受信パケットを振り分けるというパケット振分装置が記載されている。
特開2001-211203号公報 特開2003-032291号公報 特開2010-161546号公報
 前述したハッシュ法による受信パケットの振り分けでは、処理順序の逆転は発生し得ないが、異なるフロー情報を持つパケットが偶然に同一のハッシュ値(タグ値)となる可能性があり、それらが同一のパケット処理部に振り分けられ、その結果として特定のパケット処理部に受信パケットが集中してしまう危険性がある。これはパケット振分装置全体のボトルネックとなり、マルチコアプロセッサのリソースを有効に活用できていないこととなる。
 また、この手法では、どのタグ値のパケットをどのパケット処理部に振り分けるかを、全ての場合について事前に設定しておく必要がある。この設定は煩雑であり、しかもこの設定が適切でない場合には特定のパケット処理部に処理が集中してしまい、これまたリソースを有効に活用できていないこととなる。以上の問題を解決しうる技術は、前述の特許文献1~3のいずれにも記載されていない。
 本発明の目的は、ハッシュ値(タグ値)が同一であっても異なるフロー情報を持つパケットを必ず異なるパケット処理部に振り分けて、マルチコアプロセッサのリソースを有効に活用することを可能とするパケット振分装置、パケット振分方法、およびパケット振分プログラムを提供することにある。
 上記目的を達成するため、本発明に係るパケット振分装置は、ネットワークを介して伝送されるパケットを他のネットワークに中継するパケット振分装置であって、入力されたパケットに対して出力先のネットワークに対応する処理を行う複数のパケット処理部と、各パケット処理部に振り分けられたパケットを先入れ先出し方式で一時記憶する処理待機バッファと、入力されたパケットに含まれる当該パケットの送信元および宛先についての情報であるフロー情報全体に基づいて各パケットを処理するパケット処理部を決定してそこに各パケットを出力するパケット振分部とを備えることを特徴とする。
 上記目的を達成するため、本発明に係るパケット振分方法は、ネットワークを介して伝送されるパケットを他のネットワークに中継するパケット振分装置にあって、このパケット振分装置が、入力されたパケットに対して出力先のネットワークに対応する処理を行う複数のパケット処理部と、各パケット処理部に振り分けられたパケットを先入れ先出し方式で一時記憶する処理待機バッファと、入力されたパケットに含まれる当該パケットの送信元および宛先についての情報であるフロー情報に基づいて各パケットを処理するパケット処理部を決定してそこに各パケットを出力するパケット振分部とを備えるものであると共に、入力されたパケットからパケット振分部のパケット送受信機能がフロー情報を抽出し、抽出されたフロー情報と予め記憶された振分ルールテーブルとをパケット振分部の振分ルール処理機能が照合して当該パケットを処理するパケット処理部を決定し、振分ルール処理機能が決定した当該パケットの処理先であるパケット処理部にパケット振分部のパケット送受信機能が当該パケットを出力することを特徴とする。
 上記目的を達成するため、本発明に係るパケット振分プログラムは、ネットワークを介して伝送されるパケットを他のネットワークに中継するパケット振分装置にあって、このパケット振分装置が、入力されたパケットに対して出力先のネットワークに対応する処理を行う複数のパケット処理部と、各パケット処理部に振り分けられたパケットを先入れ先出し方式で一時記憶する処理待機バッファと、入力されたパケットに含まれる当該パケットの送信元および宛先についての情報であるフロー情報に基づいて各パケットを処理するパケット処理部を決定してそこに各パケットを出力するパケット振分部とを備えるものであると共に、このパケット振分部が備えるプロセッサに、入力されたパケットからフロー情報を抽出する手順、抽出されたフロー情報と予め記憶された振分ルールテーブルとを照合して当該パケットを処理するパケット処理部を決定する手順、および振分ルール処理機能が決定した当該パケットの処理先であるパケット処理部に当該パケットを出力する手順を実行させることを特徴とする。
 本発明は、上記したように、パケットから抽出されたフロー情報全体からパケット処理部を決定してそこに当該パケットを出力するように構成したので、ハッシュ値(タグ値)が同一であっても異なるフロー情報を持つパケットは、必ず異なるパケット処理部に振り分けられる。従って、これによってマルチコアプロセッサのリソースを有効に活用することが可能であるという、優れた特徴を持つパケット振分装置、パケット振分方法、およびパケット振分プログラムを提供することができる。
本発明の実施形態に係るパケット振分装置のソフトウェアとしての構成について示す説明図である。 図1に示したパケット振分装置のハードウェアとしての構成について示す説明図である。 図1~2に示した振分ルールテーブルのより詳しい記憶内容の例について示す説明図である。 図1~2に示したパケット振分装置で、パケット振分部が行う入力パケット振り分けの動作について示すフローチャートである。 図1~2で示したパケット振分装置に入力される入力パケットのフロー情報の一例について示す説明図である。図5(A)~(C)は各々、1~3番目の入力パケット301~303について示している。 図1~2で示したパケット振分装置で、図5に示した入力パケットに対する処理を経て新規エントリが追加された状態の振分ルールテーブルについて示す説明図である。 インターネットにおける一般的なパケット振分装置の構成について示す説明図である。
(実施形態)
 以下、本発明の実施形態の構成について添付図1に基づいて説明する。
 最初に、本実施形態の基本的な内容について説明し、その後でより具体的な内容について説明する。
 本実施形態に係るパケット振分装置10は、ネットワークを介して伝送されるパケットを他のネットワークに中継するパケット振分装置であり、入力されたパケットに対して出力先のネットワークに対応する処理を行う複数のパケット処理部102a~dと、各パケット処理部に振り分けられたパケットを先入れ先出し方式で一時記憶する処理待機バッファ112a~dと、入力されたパケットに含まれる当該パケットの送信元および宛先についての情報であるフロー情報全体に基づいて各パケットを処理するパケット処理部を決定してそこに各パケットを出力するパケット振分部101とを備える。そして、パケット振分部101は、入力されたパケットのフロー情報を予め記憶された振分ルールテーブル111と照合して当該パケットを処理するパケット処理部を決定する振分ルール処理機能101bと、入力されたパケットからフロー情報を抽出して振分ルール処理機能にこれを送信し、これに応じて返信されてきた当該パケットの処理先であるパケット処理部に当該パケットを出力するパケット送受信機能101aとを備える。
 ここで、パケット振分部101の振分ルール処理機能101bは、フロー情報からハッシュ関数によってタグ値を算出するものであり、且つこのタグ値に対応するエントリが振分ルールテーブル111に登録されている場合に入力されたパケットのフロー情報全体を振分ルールテーブルでタグ値に対応するエントリに記憶されているフロー情報と比較し、これらのフロー情報が一致した場合に当該エントリに記憶されている振分先を当該パケットを処理するパケット処理部として決定する。
 そしてパケット振分部は、各処理待機バッファに一時記憶されている未処理のパケットの数を取得する負荷比較機能101cを備え、入力されたパケットのタグ値およびフロー情報全体が一致するエントリが振分ルールテーブル内に存在しない場合に、振分ルール処理機能101bが、負荷比較機能によって取得された未処理のパケットの数が最も少ない処理待機バッファに対応するパケット処理部をパケットを処理するものとして決定し、これに対応する新規エントリを当該振分ルールテーブルに追加するものである。
 さらに、パケット振分装置10は、それぞれが異なるコンピュータプログラムを実行する主体となる複数のコア11a~11eを有するマルチコアプロセッサ11を備え、パケット振分部および各パケット処理部がそれぞれ異なるコアにおいて機能する。
 以上の構成を備える事により、このパケット振分装置10は、ハッシュ値(タグ値)が同一であっても異なるフロー情報を持つパケットを必ず異なるパケット処理部に振り分けて、マルチコアプロセッサのリソースを有効に活用することが可能となる。
 以下、これをより詳細に説明する。
 図1は、本発明の実施形態に係るパケット振分装置10のソフトウェアとしての構成について示す説明図である。図2は、図1に示したパケット振分装置10のハードウェアとしての構成について示す説明図である。パケット振分装置10は、ネットワーク構成においては、たとえばルータ、リピータ、ゲートウェイなどのように、ネットワークを介して伝送されるデータパケットを他のネットワークに中継する装置である。
 パケット振分装置10は、ハードウェアとしてはコンピュータプログラムを実行する主体となるマルチコアプロセッサ11と、データを記憶する記憶手段12と、他装置からのデータ入力を受ける入力インタフェース13と、他装置にデータを出力する出力インタフェース14とからなる。
 マルチコアプロセッサ11は、それぞれが異なるコンピュータプログラムを実行する主体となる複数のコア11a~11eを備え、コア11aがパケット振分部101、コア11b~11eがパケット処理部102a~dとして、各々同時に機能する。また、記憶手段12には、振分ルールテーブル111と、処理待機バッファ112a~dとしての記憶領域が確保されている。
 図1~2ではコアを5つ、パケット処理部を4つ備えた例を示したが、これ以外の数であってもよい。また、図1では、データパケットの流れを実線矢印で、それ以外のデータや指令などの流れを破線矢印で示している。
 他装置から送られてきた入力パケットを、入力インタフェース13を介してパケット振分部101が受信して、当該入力パケットのフロー情報を振分ルールテーブル111として定義されたルールと照合して、各々のパケット処理部102a~dに振り分ける。ここでパケット処理部102a~dは、最終的なデータの出力先が各々異なるものとしてもよいし、具体的な処理内容が各々異なるものとしてもよい。
 パケット振分部101で振り分けられた入力パケットは、処理待機バッファ112a~dにFIFO(First In First Out, 先入れ先出し)方式で一時記憶され、処理待機バッファ112a~dの各々に対応するパケット処理部102a~dに順次出力される。パケット処理部102a~dは、各々のパケットに対して出力先に対応するデータ形式変換などの処理を行って、その処理結果である出力パケットを、出力インタフェース14を介して他装置に出力する。
 パケット振分部101は、パケット送受信機能101a、振分ルール処理機能101b、および負荷比較機能101cといった各機能を備える。パケット送受信機能101aは、入力インタフェース13を介して入力パケットを受信してその振分先を振分ルール処理機能101bに照会し、その照会によって得られた振分先のパケット処理部102a~dに対応する処理待機バッファ112a~dに対してそのパケットを出力する。
 振分ルール処理機能101bは、各入力パケットのヘッダ情報をパケット送受信機能101aから受信し、そのヘッダ情報を振分ルールテーブル111に照らし合わせて当該入力パケットの振分先を決定して、これをパケット送受信機能101aに返す。また、振分ルールテーブル111に定義された振分ルールを追加および編集することもできる。
 負荷比較機能101cは、各々の処理待機バッファ112a~dに一時記憶されている未処理のパケットの数(処理待機数)を取得して、この処理待機数が最小である処理待機バッファ112a~dに対応するパケット処理部102a~dを、処理負荷が最小のものとして特定し、この特定された内容を振分ルール処理機能101bに伝える。
 図3は、図1~2に示した振分ルールテーブル111のより詳しい記憶内容の例について示す説明図である。振分ルールテーブル111は、タグ値111a、フロー情報111b、振分先111cといった各データを含む。タグ値111aは、各入力パケットのフロー情報から、ハッシュ関数によって振分ルール処理機能101bが算出する数値である。フロー情報111bは、各入力パケットのヘッダ情報内のフロー情報に含まれる各フィールドに含まれる数値などについての条件を示す。
 振分ルールテーブル111の各エントリは、「タグ値111aおよびフロー情報111bで定義された条件に該当するパケットは、振分先111cに定義されるパケット処理部102a~dに出力されて処理される」という振分ルールを定義するものである。
 図3に示した例では、フロー情報111bとしては「SA」「DA」「SP」「DP」「Pro」という各項目がある。それらは各々、「SA」:発信元IPアドレス、「DA」:宛先IPアドレス、「SP」:発信元ポート番号、「DP」:宛先ポート番号、「Pro」:プロトコル種別番号を表す。このフロー情報は、RFC791,793,768といったTCP/IP(Transmission Control Protocol / Internet Protocol)の基本的な規格に基づく。また、これら以外の項目が含まれていてももちろんよいが、以後の動作説明を平易なものとするために詳しい項目例は本明細書では割愛する。
 図4は、図1~2に示したパケット振分装置10で、パケット振分部101が行う入力パケット振り分けの動作について示すフローチャートである。パケット振分装置10に対して新たなパケットが送信されると、これを入力インタフェース13を介してパケット振分部101のパケット送受信機能101aが受信して、この入力パケットに含まれるヘッダ情報を振分ルール処理機能101bに渡す(ステップS201)。
 振分ルール処理機能101bは、パケット送受信機能101aから渡されたヘッダ情報にハッシュ関数を適用してタグ値を算出し(ステップS202)、このタグ値に該当する振分条件を振分ルールテーブル111のタグ値111aの中から検索し、該当する振分条件が存在するか否かについて判断する(ステップS203)。
 ステップS203で、このタグ値に該当する振分条件のエントリが存在すれば、振分ルール処理機能101bはさらにそのヘッダ情報自体が同じエントリのフロー情報111bに定義された条件に該当するか否かを判断する(ステップS204)。該当しなければ、次のエントリに進んで(ステップS210)ステップS203に処理が戻り、次以降のエントリで該当するタグ値のものが存在するか否かについて判断を継続する。
 ステップS204でフロー情報111bに定義された条件に該当すれば、そのエントリで定義された振分先111cのパケット処理部102a~dを振り分け先として特定して、これをパケット送受信機能101aに返す(ステップS205)。パケット送受信機能101aはその入力パケットを、その振り分け先のパケット処理部102a~dに対応する処理待機バッファ112a~dに出力する(ステップS206)。
 ステップS203で、振分ルールテーブル111の全エントリについて該当する振分条件が存在しなかった場合、負荷比較機能101cが各処理待機バッファ112a~dの処理待機数を取得して(ステップS207)、処理待機数が最小である処理待機バッファ112a~dに対応するパケット処理部102a~dを特定して、これを振分ルール処理機能101bに返す(ステップS208)。
 特定結果を受け取った振分ルール処理機能101bは、この特定結果をそのまま振分先としてパケット送受信機能101aに返すと同時に、振分ルールテーブル111にこの判断のもととなったタグ値111aおよびフロー情報111bにこの特定結果を振分先111cとした新たなエントリを追加する(ステップS209)。以後は前述のステップS206に進み、パケット送受信機能101aが振分先のパケット処理部102a~dに対応する処理待機バッファ112a~dに、その入力パケットを出力する。
(具体的な動作例)
 より具体的な動作例について説明する。図5は、図1~2で示したパケット振分装置10に入力される入力パケット301~303のフロー情報301a~303aの一例について示す説明図である。図5(A)~(C)は各々、1~3番目の入力パケット301~303について示している。1番目の入力パケット301には「SA=あ,DA=い,SP=う,DP=え,Pro=お」というフロー情報301aが含まれる。2番目の入力パケット302には「SA=か,DA=き,SP=く,DP=け,Pro=こ」というフロー情報302aが含まれる。3番目の入力パケット303には「SA=さ,DA=し,SP=す,DP=せ,Pro=そ」というフロー情報303aが含まれる。
 これらの入力パケット301~303が、301→302→303の順番でパケット振分装置10に入力される。1番目の入力パケット301のフロー情報301aから振分ルール処理機能101bによって算出されるタグ値301b=「1」となる。同様に、2番目の入力パケット302のフロー情報302aから算出されるタグ値302b=「1」、3番目の入力パケット303のフロー情報303aから算出されるタグ値303b=「2」となる。
 これに対して、処理開始時点での振分ルールテーブル111は、図3に示した状態である。1番目のエントリはタグ値111a=「1」,フロー情報111b=「SA=あ,DA=い,SP=う,DP=え,Pro=お」,振分先111c=「パケット処理部102a」であり、2番目のエントリはタグ値111a=「2」,フロー情報111b=「SA=さ,DA=し,SP=す,DP=せ,Pro=そ」,振分先111c=「パケット処理部102b」である。振分ルールテーブル111の3番目以降のエントリにはこれら以外のルールも定義されているが、ここで説明する動作例には特に関係しないので無視する。
 まず1番目の入力パケット301が入力される。これはタグ値301b=「1」、フロー情報301a=「SA=あ,DA=い,SP=う,DP=え,Pro=お」であるので、図3の振分ルールテーブル111の1番目のエントリに一致するのでステップS203およびS204の判断でいずれもイエスの方に進み、振分先は「パケット処理部102a」に決定される。従ってパケット送受信機能101aは、この入力パケット301を処理待機バッファ112aに出力する。
 これに続く2番目の入力パケット302は、タグ値302b=「1」であるので、振分ルールテーブル111の1番目のエントリのタグ値111aと一致してステップS203の判断はイエスに進む。しかしながら、フロー情報302aが振分ルールテーブル111の1番目のエントリと一致しないので、ステップS204でノーに進み、ステップS210を経てステップS203に戻って、2番目以降のエントリにタグ値111a=「1」となるものがあるか否かを判断する。
 振分ルールテーブル111の2番目以降のエントリにはタグ値111a=「1」となるものがないので、2回目のステップS203ではノーに進む。ここで負荷比較機能101cは、ステップS207の処理で処理待機バッファ112a~dの処理待機数を検出し、ステップS208の処理で処理待機バッファ112cが処理待機数が最小であると判断し、この入力パケット302をパケット処理部102cで処理すべきという特定結果を振分ルール処理機能101bに返す。
 これを受けた振分ルール処理機能101bは、ステップS209の処理でこれに対応する新規エントリを振分ルールテーブル111の最終行に追加する。図6は、図1~2で示したパケット振分装置10で、図5に示した入力パケット302に対する処理を経て新規エントリが追加された状態の振分ルールテーブル111について示す説明図である。そしてパケット送受信機能101aは、この入力パケット302を処理待機バッファ112cに出力する。
 これに続く3番目の入力パケット303については、タグ値303b=「2」、フロー情報301a=「SA=さ,DA=し,SP=す,DP=せ,Pro=そ」であるので、図3の振分ルールテーブル111の2番目のエントリに一致するのでステップS203およびS204の判断でいずれもイエスの方に進み、振分先は「パケット処理部102b」に決定される。従ってパケット送受信機能101aは、この入力パケット303を処理待機バッファ112bに出力する。
(実施形態の全体的な動作)
 次に、上記の実施形態の全体的な動作について説明する。
 本実施形態に係るパケット振分方法は、ネットワークを介して伝送されるパケットを他のネットワークに中継するパケット振分装置10にあって、このパケット振分装置が、入力されたパケットに対して出力先のネットワークに対応する処理を行う複数のパケット処理部102a~dと、各パケット処理部に振り分けられたパケットを先入れ先出し方式で一時記憶する処理待機バッファ112a~dと、入力されたパケットに含まれる当該パケットの送信元および宛先についての情報であるフロー情報に基づいて各パケットを処理するパケット処理部を決定してそこに各パケットを出力するパケット振分部101とを備えるものであると共に、入力されたパケットからパケット振分部のパケット送受信機能がフロー情報を抽出し(図4・ステップS201)、抽出されたフロー情報と予め記憶された振分ルールテーブルとをパケット振分部の振分ルール処理機能が照合して当該パケットを処理するパケット処理部を決定し(図4・ステップS202~205)、振分ルール処理機能が決定した当該パケットの処理先であるパケット処理部にパケット振分部のパケット送受信機能が当該パケットを出力する(図4・ステップS206)。
 また、振分ルール処理機能がパケットを処理するパケット処理部を決定する処理が、抽出されたフロー情報からハッシュ関数によってタグ値を算出し(図4・ステップS202)、このタグ値に対応するエントリが振分ルールテーブルに登録されている場合に入力されたパケットのフロー情報全体を振分ルールテーブルでタグ値に対応するエントリに記憶されているフロー情報と比較し(図4・ステップS203~204)、これらのフロー情報が一致した場合に当該エントリに記憶されている振分先を当該パケットを処理するパケット処理部として決定する(図4・ステップS205)ものである。
 ここで、上記各動作ステップについては、これをコンピュータで実行可能にプログラム化し、これらを前記各ステップを直接実行するパケット振分装置のプロセッサ11に実行させるようにしてもよい。本プログラムは、非一時的な記録媒体、例えば、DVD、CD、フラッシュメモリ等に記録されてもよい。その場合、本プログラムは、記録媒体からコンピュータによって読み出され、実行される。
 この動作により、本実施形態は以下のような効果を奏する。
 本実施形態によれば、同一のフロー情報を持つパケットは必ず同一のパケット処理部に振り分けられるというハッシュ法の利点はそのままに、異なるフロー情報から偶然に同一のタグ値が得られたとしても、フロー情報全体が一致しないと同一のパケット処理部には振り分けられないという特徴が加わる。従って、特定のパケット処理部にパケットが集中してしまうという事態を回避する事が可能となる。しかも、処理順序の逆転は発生し得ないというハッシュ法の利点もそのままである。
 さらに、振分ルールテーブルに登録されていないフロー情報を持つパケットに対しては、対応する処理待機バッファの処理待機数が最小であるパケット処理部にそのパケットを処理させるよう、振分ルールテーブルに新規エントリを登録する。これによって、パケット処理部ごとの負荷を均等にして、マルチコアプロセッサのリソースを有効に活用する事が可能となる。かつ、振分ルールテーブルに全ての場合を想定したルールを予め記憶させておく必要もなくなり、そのルールの設定の不備や不適切などによるパケット処理部ごとの負荷の不均等の発生を抑制する事も可能となる。
(実施形態の拡張)
 以上で説明した実施形態は、その趣旨を改変しない範囲で様々な拡張が可能である。たとえば、パケット振分装置のプロセッサがマルチコアプロセッサでなくても、たとえばマルチスレッドプロセッサであってもよく、またプロセッサ自体を複数備えたものであってもよい。
 また、フロー情報からタグ値を算出する方法は、いわゆる暗号学的ハッシュ関数を利用するものでなくても「同一のフロー情報から必ず同一のタグ値が算出される」という特質を満たしさえすれば、任意の方法を適用することが可能である。
 これまで本発明について図面に示した特定の実施形態をもって説明してきたが、本発明は図面に示した実施形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができる。
 上述した実施形態について、その新規な技術内容の要点をまとめると、以下のようになる。なお、上記実施形態の一部または全部は、新規な技術として以下のようにまとめられるが、本発明は必ずしもこれに限定されるものではない。
(付記1) ネットワークを介して伝送されるパケットを他のネットワークに中継するパケット振分装置であって、
 入力された前記パケットに対して出力先のネットワークに対応する処理を行う複数のパケット処理部と、
 前記各パケット処理部に振り分けられた前記パケットを先入れ先出し方式で一時記憶する処理待機バッファと、
 前記入力されたパケットに含まれる当該パケットの送信元および宛先についての情報であるフロー情報全体に基づいて各パケットを処理する前記パケット処理部を決定してそこに前記各パケットを出力するパケット振分部と
を備えることを特徴とするパケット振分装置。
(付記2) 前記パケット振分部が、
 入力された前記パケットの前記フロー情報全体を予め記憶された振分ルールテーブルと照合して当該パケットを処理する前記パケット処理部を決定する振分ルール処理機能と、
 前記入力されたパケットから前記フロー情報を抽出して前記振分ルール処理機能にこれを送信し、これに応じて返信されてきた当該パケットの処理先である前記パケット処理部に当該パケットを出力するパケット送受信機能と、
を備えることを特徴とする、付記1に記載のパケット振分装置。
(付記3) 前記パケット振分部の前記振分ルール処理機能が、前記フロー情報からハッシュ関数によってタグ値を算出するものであり、且つこのタグ値に対応するエントリが前記振分ルールテーブルに登録されている場合に前記入力されたパケットの前記フロー情報全体を前記振分ルールテーブルで前記タグ値に対応するエントリに記憶されているフロー情報と比較し、これらのフロー情報が一致した場合に当該エントリに記憶されている振分先を当該パケットを処理する前記パケット処理部として決定するものであることを特徴とする、付記2に記載のパケット振分装置。
(付記4) 前記パケット振分部が、
 前記各処理待機バッファに一時記憶されている未処理の前記パケットの数を取得する負荷比較機能を備えると共に、
 前記入力されたパケットの前記タグ値および前記フロー情報全体が一致するエントリが前記振分ルールテーブル内に存在しない場合に、前記振分ルール処理機能が、前記負荷比較機能によって取得された未処理の前記パケットの数が最も少ない前記処理待機バッファに対応する前記パケット処理部を前記パケットを処理するものとして決定し、これに対応する新規エントリを当該前記振分ルールテーブルに追加するものであることを特徴とする、付記3に記載のパケット振分装置。
(付記5) それぞれが異なるコンピュータプログラムを実行する主体となる複数のコアを有するマルチコアプロセッサを備え、
 前記パケット振分部および前記各パケット処理部がそれぞれ異なる前記コアにおいて機能することを特徴とする、付記1に記載のパケット振分装置。
(付記6) ネットワークを介して伝送されるパケットを他のネットワークに中継するパケット振分装置にあって、
 このパケット振分装置が、
 入力された前記パケットに対して出力先のネットワークに対応する処理を行う複数のパケット処理部と、
 前記各パケット処理部に振り分けられた前記パケットを先入れ先出し方式で一時記憶する処理待機バッファと、
 前記入力されたパケットに含まれる当該パケットの送信元および宛先についての情報であるフロー情報に基づいて各パケットを処理する前記パケット処理部を決定してそこに前記各パケットを出力するパケット振分部と
を備えるものであると共に、
 入力された前記パケットから前記パケット振分部のパケット送受信機能が前記フロー情報を抽出し、
 抽出された前記フロー情報全体を予め記憶された振分ルールテーブルと前記パケット振分部の振分ルール処理機能が照合して当該パケットを処理する前記パケット処理部を決定し、
 前記振分ルール処理機能が決定した当該パケットの処理先である前記パケット処理部に前記パケット振分部のパケット送受信機能が当該パケットを出力する
ことを特徴とするパケット振分方法。
(付記7) 前記振分ルール処理機能が前記パケットを処理する前記パケット処理部を決定する処理が、
 抽出された前記フロー情報からハッシュ関数によってタグ値を算出し、
 このタグ値に対応するエントリが前記振分ルールテーブルに登録されている場合に前記入力されたパケットの前記フロー情報全体を前記振分ルールテーブルで前記タグ値に対応するエントリに記憶されているフロー情報と比較し、
 これらのフロー情報が一致した場合に当該エントリに記憶されている振分先を当該パケットを処理する前記パケット処理部として決定するものであることを特徴とする、付記6に記載のパケット振分方法。
(付記8) ネットワークを介して伝送されるパケットを他のネットワークに中継するパケット振分装置にあって、
 このパケット振分装置が、
 入力された前記パケットに対して出力先のネットワークに対応する処理を行う複数のパケット処理部と、
 前記各パケット処理部に振り分けられた前記パケットを先入れ先出し方式で一時記憶する処理待機バッファと、
 前記入力されたパケットに含まれる当該パケットの送信元および宛先についての情報であるフロー情報に基づいて各パケットを処理する前記パケット処理部を決定してそこに前記各パケットを出力するパケット振分部と
を備えるものであると共に、
 このパケット振分部が備えるプロセッサに、
 入力された前記パケットから前記フロー情報を抽出する手順、
 抽出された前記フロー情報全体を予め記憶された振分ルールテーブルと照合して当該パケットを処理する前記パケット処理部を決定する手順、
 および前記振分ルール処理機能が決定した当該パケットの処理先である前記パケット処理部に当該パケットを出力する手順
を実行させることを特徴とするパケット振分プログラム。
(付記9) 前記パケットを処理する前記パケット処理部を決定する手順が、
 抽出された前記フロー情報からハッシュ関数によってタグ値を算出し、
 このタグ値に対応するエントリが前記振分ルールテーブルに登録されている場合に前記入力されたパケットの前記フロー情報全体を前記振分ルールテーブルで前記タグ値に対応するエントリに記憶されているフロー情報と比較し、
 これらのフロー情報が一致した場合に当該エントリに記憶されている振分先を当該パケットを処理する前記パケット処理部として決定するものであることを特徴とする、付記8に記載のパケット振分プログラム。
 この出願は2012年9月4日に出願された日本出願特願2012-193705を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 本発明は、ルータ、リピータ、ゲートウェイなど、インターネットの要所ごとに配置されたパケット振分装置において、幅広く適用することができる。
  10 パケット振分装置
  11 マルチコアプロセッサ
  11a、11b、11e コア
  12 記憶手段
  13 入力インタフェース
  14 出力インタフェース
  101 パケット振分部
  101a パケット送受信機能
  101b 振分ルール処理機能
  101c 負荷比較機能
  102a、102b、102c、102d パケット処理部
  111 振分ルールテーブル
  111a、301b、302b、303b タグ値
  111b、301a、302a、303a フロー情報
  111c 振分先
  112a、112b、112c、112d 処理待機バッファ
  301 1番目の入力パケット
  302 2番目の入力パケット
  303 3番目の入力パケット

Claims (9)

  1.  ネットワークを介して伝送されるパケットを他のネットワークに中継するパケット振分装置であって、
     入力された前記パケットに対して出力先のネットワークに対応する処理を行う複数のパケット処理部と、
     前記各パケット処理部に振り分けられた前記パケットを先入れ先出し方式で一時記憶する処理待機バッファと、
     前記入力されたパケットに含まれる当該パケットの送信元および宛先についての情報であるフロー情報全体に基づいて各パケットを処理する前記パケット処理部を決定してそこに前記各パケットを出力するパケット振分部と
    を備えることを特徴とするパケット振分装置。
  2.  前記パケット振分部が、
     入力された前記パケットの前記フロー情報全体を予め記憶された振分ルールテーブルと照合して当該パケットを処理する前記パケット処理部を決定する振分ルール処理機能と、
     前記入力されたパケットから前記フロー情報を抽出して前記振分ルール処理機能にこれを送信し、これに応じて返信されてきた当該パケットの処理先である前記パケット処理部に当該パケットを出力するパケット送受信機能と、
    を備えることを特徴とする、請求項1に記載のパケット振分装置。
  3.  前記パケット振分部の前記振分ルール処理機能が、前記フロー情報からハッシュ関数によってタグ値を算出するものであり、且つこのタグ値に対応するエントリが前記振分ルールテーブルに登録されている場合に前記入力されたパケットの前記フロー情報全体を前記振分ルールテーブルで前記タグ値に対応するエントリに記憶されているフロー情報と比較し、これらのフロー情報が一致した場合に当該エントリに記憶されている振分先を当該パケットを処理する前記パケット処理部として決定するものであることを特徴とする、請求項2に記載のパケット振分装置。
  4.  前記パケット振分部が、
     前記各処理待機バッファに一時記憶されている未処理の前記パケットの数を取得する負荷比較機能を備えると共に、
     前記入力されたパケットの前記タグ値および前記フロー情報全体が一致するエントリが前記振分ルールテーブル内に存在しない場合に、前記振分ルール処理機能が、前記負荷比較機能によって取得された未処理の前記パケットの数が最も少ない前記処理待機バッファに対応する前記パケット処理部を前記パケットを処理するものとして決定し、これに対応する新規エントリを当該前記振分ルールテーブルに追加するものであることを特徴とする、請求項3に記載のパケット振分装置。
  5.  それぞれが異なるコンピュータプログラムを実行する主体となる複数のコアを有するマルチコアプロセッサを備え、
     前記パケット振分部および前記各パケット処理部がそれぞれ異なる前記コアにおいて機能することを特徴とする、請求項1に記載のパケット振分装置。
  6.  ネットワークを介して伝送されるパケットを他のネットワークに中継するパケット振分装置にあって、
     このパケット振分装置が、
     入力された前記パケットに対して出力先のネットワークに対応する処理を行う複数のパケット処理部と、
     前記各パケット処理部に振り分けられた前記パケットを先入れ先出し方式で一時記憶する処理待機バッファと、
     前記入力されたパケットに含まれる当該パケットの送信元および宛先についての情報であるフロー情報に基づいて各パケットを処理する前記パケット処理部を決定してそこに前記各パケットを出力するパケット振分部と
    を備えるものであると共に、
     入力された前記パケットから前記パケット振分部のパケット送受信機能が前記フロー情報を抽出し、
     抽出された前記フロー情報全体を予め記憶された振分ルールテーブルと前記パケット振分部の振分ルール処理機能が照合して当該パケットを処理する前記パケット処理部を決定し、
     前記振分ルール処理機能が決定した当該パケットの処理先である前記パケット処理部に前記パケット振分部のパケット送受信機能が当該パケットを出力する
    ことを特徴とするパケット振分方法。
  7.  前記振分ルール処理機能が前記パケットを処理する前記パケット処理部を決定する処理が、
     抽出された前記フロー情報からハッシュ関数によってタグ値を算出し、
     このタグ値に対応するエントリが前記振分ルールテーブルに登録されている場合に前記入力されたパケットの前記フロー情報全体を前記振分ルールテーブルで前記タグ値に対応するエントリに記憶されているフロー情報と比較し、
     これらのフロー情報が一致した場合に当該エントリに記憶されている振分先を当該パケットを処理する前記パケット処理部として決定するものであることを特徴とする、請求項6に記載のパケット振分方法。
  8.  ネットワークを介して伝送されるパケットを他のネットワークに中継するパケット振分装置にあって、
     このパケット振分装置が、
     入力された前記パケットに対して出力先のネットワークに対応する処理を行う複数のパケット処理部と、
     前記各パケット処理部に振り分けられた前記パケットを先入れ先出し方式で一時記憶する処理待機バッファと、
     前記入力されたパケットに含まれる当該パケットの送信元および宛先についての情報であるフロー情報に基づいて各パケットを処理する前記パケット処理部を決定してそこに前記各パケットを出力するパケット振分部と
    を備えるものであると共に、
     このパケット振分部が備えるプロセッサに、
     入力された前記パケットから前記フロー情報を抽出する手順、
     抽出された前記フロー情報全体を予め記憶された振分ルールテーブルと照合して当該パケットを処理する前記パケット処理部を決定する手順、
     および前記振分ルール処理機能が決定した当該パケットの処理先である前記パケット処理部に当該パケットを出力する手順
    を実行させることを特徴とするパケット振分プログラム。
  9.  前記パケットを処理する前記パケット処理部を決定する手順が、
     抽出された前記フロー情報からハッシュ関数によってタグ値を算出し、
     このタグ値に対応するエントリが前記振分ルールテーブルに登録されている場合に前記入力されたパケットの前記フロー情報全体を前記振分ルールテーブルで前記タグ値に対応するエントリに記憶されているフロー情報と比較し、
     これらのフロー情報が一致した場合に当該エントリに記憶されている振分先を当該パケットを処理する前記パケット処理部として決定するものであることを特徴とする、請求項8に記載のパケット振分プログラム。
PCT/JP2013/073776 2012-09-04 2013-09-04 パケット振分装置、パケット振分方法、およびパケット振分プログラム WO2014038582A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2012-193705 2012-09-04
JP2012193705 2012-09-04

Publications (1)

Publication Number Publication Date
WO2014038582A1 true WO2014038582A1 (ja) 2014-03-13

Family

ID=50237191

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/073776 WO2014038582A1 (ja) 2012-09-04 2013-09-04 パケット振分装置、パケット振分方法、およびパケット振分プログラム

Country Status (1)

Country Link
WO (1) WO2014038582A1 (ja)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002538724A (ja) * 1999-03-01 2002-11-12 サン・マイクロシステムズ・インコーポレイテッド マルチプロセッサコンピュータでネットワークトラフィック処理を分散する方法および装置
JP2003519944A (ja) * 2000-01-07 2003-06-24 インターナショナル・ビジネス・マシーンズ・コーポレーション フレームおよびプロトコル分類の方法およびシステム
JP2004221805A (ja) * 2003-01-14 2004-08-05 Hitachi Ltd パケット通信方法およびパケット通信装置
JP2005507212A (ja) * 2001-10-22 2005-03-10 サン・マイクロシステムズ・インコーポレーテッド パケット分類のための方法および装置
JP2008523729A (ja) * 2004-12-13 2008-07-03 インテル・コーポレーション フロー割当て
JP2008167305A (ja) * 2006-12-28 2008-07-17 Mitsubishi Electric Corp パケット並列処理装置およびパケット並列処理方法
JP2010161546A (ja) * 2009-01-07 2010-07-22 Hitachi Ltd ネットワーク中継装置およびパケット振り分け方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002538724A (ja) * 1999-03-01 2002-11-12 サン・マイクロシステムズ・インコーポレイテッド マルチプロセッサコンピュータでネットワークトラフィック処理を分散する方法および装置
JP2003519944A (ja) * 2000-01-07 2003-06-24 インターナショナル・ビジネス・マシーンズ・コーポレーション フレームおよびプロトコル分類の方法およびシステム
JP2005507212A (ja) * 2001-10-22 2005-03-10 サン・マイクロシステムズ・インコーポレーテッド パケット分類のための方法および装置
JP2004221805A (ja) * 2003-01-14 2004-08-05 Hitachi Ltd パケット通信方法およびパケット通信装置
JP2008523729A (ja) * 2004-12-13 2008-07-03 インテル・コーポレーション フロー割当て
JP2008167305A (ja) * 2006-12-28 2008-07-17 Mitsubishi Electric Corp パケット並列処理装置およびパケット並列処理方法
JP2010161546A (ja) * 2009-01-07 2010-07-22 Hitachi Ltd ネットワーク中継装置およびパケット振り分け方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Intel 82599 10 Gigabit Ethernet Controller: Datasheet", RIVISION 2.0, July 2009 (2009-07-01), pages 211 - 240, Retrieved from the Internet <URL:http://ftp.jaist.ac.jp/pub/sourceforge/e/e1/e1000/82599%20Developer%20Manual/2.0/82599_Datasheet_rev_2_0.pdf> [retrieved on 20131113] *

Similar Documents

Publication Publication Date Title
EP3079313B1 (en) Data splitting method and splitter
US9430239B2 (en) Configurable multicore network processor
JP4723586B2 (ja) パケットのキューイング、スケジューリングおよび順序づけ
US7027442B2 (en) Fast and adaptive packet processing device and method using digest information of input packet
EP2540039B1 (en) A method and arrangement for performing link aggregation
CN101069170B (zh) 一种网络服务处理器以及处理数据包的装置和方法
US20120030451A1 (en) Parallel and long adaptive instruction set architecture
JP2018518927A (ja) コンピューティングネットワークにおけるデータトラフィックを管理する方法およびシステム
CN110166570A (zh) 业务会话管理方法、装置、电子设备
JP2012065281A (ja) 通信プログラム、通信装置、通信方法、及び通信システム
US10212083B2 (en) Openflow data channel and control channel separation
JP2016019052A (ja) パケット処理装置、制御プログラム、及びパケット処理装置の制御方法
US20120177036A1 (en) Simple fairness protocols for daisy chain interconnects
JP2017163530A (ja) ネットワークデバイスおよびトラフィックシェーピング方法
JP6926953B2 (ja) 情報処理装置、情報処理方法及びプログラム
US20140214761A1 (en) Systems and Methods for Accelerating Networking Functionality
WO2014038582A1 (ja) パケット振分装置、パケット振分方法、およびパケット振分プログラム
JP2007180963A (ja) クラスタノード制御プログラム、クラスタノード、クラスタシステム制御方法
WO2016188032A1 (zh) 利用流表转发数据的方法及系统
KR102420610B1 (ko) 다층 캐싱 전략을 이용하는 패킷 데이터 처리 방법 및 이를 사용하는 전자 장치
JP6127900B2 (ja) パケット処理装置、パケット処理方法、パケット処理プログラム
CN113098925B (zh) 一种基于F-Stack和Nginx实现动态代理的方法和系统
JP2009199433A (ja) ネットワーク処理装置およびネットワーク処理プログラム
JP5359357B2 (ja) パケット処理装置、該処理装置に用いられるパケット処理順序制御方法及びパケット処理順序制御プログラム
JP2017225001A (ja) 並列負荷分散システム、並列負荷分散方法、sdnコントローラホスト及びプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13836024

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13836024

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP