WO2011096127A1 - パケット転送処理装置、方法及びプログラム - Google Patents

パケット転送処理装置、方法及びプログラム Download PDF

Info

Publication number
WO2011096127A1
WO2011096127A1 PCT/JP2010/071460 JP2010071460W WO2011096127A1 WO 2011096127 A1 WO2011096127 A1 WO 2011096127A1 JP 2010071460 W JP2010071460 W JP 2010071460W WO 2011096127 A1 WO2011096127 A1 WO 2011096127A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
search
search condition
timer
entry area
Prior art date
Application number
PCT/JP2010/071460
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 日本電信電話株式会社
Priority to JP2011552665A priority Critical patent/JP5389193B2/ja
Priority to US13/575,062 priority patent/US8902756B2/en
Priority to CN201080062742.7A priority patent/CN102812675B/zh
Publication of WO2011096127A1 publication Critical patent/WO2011096127A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering

Definitions

  • the present invention relates to a packet transfer processing apparatus, method, and program for performing packet transfer processing using a packet filtering function, such as a router used in an IP (Internet Protocol) network.
  • a packet filtering function such as a router used in an IP (Internet Protocol) network.
  • a LAN Local Area Network
  • the LAN is connected to an external network via the Internet or the like to perform packet transfer.
  • confidential information such as personal information may be leaked or altered due to unauthorized access from the external network. It is a difficult issue.
  • a packet transfer processing device such as a router that relays and transfers packets between a LAN and an external network is provided with a packet filtering function.
  • the packet filtering function determines whether or not to allow passage of the packet by comparing the input packet with a preset filtering rule.
  • the filtering rule is defined by communication parameters used for packet transfer, for example, a source address, a destination address, a protocol, a source port number, and a destination port number.
  • a specific search circuit there is a circuit that compares a communication parameter of a received packet with a filtering rule by using a plurality of rule comparison units in parallel.
  • this circuit distributes and inputs the communication parameters of the received packet to a rule comparison unit that has completed processing among a plurality of rule comparison units.
  • this filtering rule is supplied to all the rule comparison units.
  • Each time the rule comparison unit compares each filtering rule sequentially read from the search table each time a communication parameter of the received packet is input.
  • this filtering rule is output as a search result.
  • the filtering rule with the highest priority is output as a search result (see, for example, Patent Document 1).
  • the CPU has a 32-bit architecture
  • searching for a free area in the search table only 32 search table entry areas can be checked at a time. Since the entry area of the search table is as large as 2048, for example, a large number of processing steps and time are still required when the CPU searches for an empty area of the search table.
  • one aspect of the present invention provides a search table having a plurality of entry areas for storing a plurality of packet search conditions, and communication parameters of the received packets each time a packet is received.
  • a search processing unit that compares each of the plurality of packet search conditions stored in the search table and outputs a search result corresponding to the packet search condition that matches the communication parameter, and the received packet based on the search result
  • a transfer processing unit that performs transfer or discard processing of the information, and information that sets whether the packet search condition is valid or invalid in association with each of the plurality of packet search conditions stored in the search table
  • a valid management table to be stored; a timer corresponding to each of the plurality of entry areas; and the valid set valid A timer management unit that starts a time counting operation by the timer every time a packet whose communication parameter matches a packet search condition corresponding to information on the management table is received or each time the information is written to the valid management table And a time-out management table for storing information indicating whether the timer is operating or time
  • the control unit can detect an empty entry area in the search table based on the information stored in the timeout management table, and a new entry is detected in the detected empty entry area. Search conditions can be stored.
  • a block including a bit position indicating that the timer has timed out is selected from a bit position indicating that the timer has timed out in the selected block, and belongs to the selected group Bit data is read from the bit area of the timeout register, and an entry area corresponding to the timer that has timed out is detected based on the read bit data.
  • the memory when the timer times out, includes a memory for sequentially storing identification information of entry areas of the search table corresponding to the timer that has timed out, and the control unit detects the empty entry area.
  • the identification information of the entry area is read from the memory in the order of storage order, and the entry area represented by the read identification information is set as the empty entry area.
  • identification information indicating the entry area in which the packet search condition is stored is sequentially stored in the memory.
  • the entry area can be easily specified. Therefore, it is possible to specify an empty entry area in a short time with fewer processing steps without searching the entry area of the search table or the bit area of the timeout register.
  • each packet search condition in which the packet is transferred between the first interface and the second interface and stored in the search table includes the first search condition, the second search condition, and the second search condition.
  • the search processing unit includes a communication parameter of the first packet and the first search condition when the received packet is the first packet received by the first interface. And the third search condition set, and if the communication parameter of the first packet matches the first search condition and the third search condition set, the search result is output,
  • the received packet is a second packet received by the second interface
  • the communication parameter of the second packet, the second search condition, and the third packet Comparing the set of search conditions, and outputs the search results if the communication parameters of the second packet matches the set of the second search condition and the third search condition.
  • a search result is output if the communication parameter of the received packet matches the set of the first search condition and the third search condition.
  • a search result is output if the communication parameter of the received packet matches the set of the second search condition and the third search condition. For this reason, the search table can be searched bidirectionally. Therefore, the entry area of the search table can be reduced, and the memory capacity of the search table is reduced.
  • the search processing unit when the received packet is the first packet, sets the second search condition as a communication parameter after conversion by network address port conversion for the first packet. If the received packet is the second packet, the first search condition is output as a communication parameter after conversion by network address port conversion for the second packet.
  • the second search condition when a packet is received by the first interface, the second search condition is output as a communication parameter after conversion by network address port conversion.
  • the first search condition is output as a communication parameter after conversion by network address port conversion. Therefore, network address port conversion can be realized without increasing the number of entry areas in the search table or increasing packet search conditions stored in the entry area of the search table.
  • packets are transferred between the first interface and the second interface, and each packet search condition stored in the search table includes a first search condition, a second search condition, and a second search condition.
  • the search processing unit includes a communication parameter of the received packet and the first parameter regardless of whether the received packet is received by the first interface or the second interface. Comparing one search condition and the third search condition set, comparing the communication parameter of the received packet with the second search condition and the third search condition set, and The parameter matches the set of the first search condition and the third search condition, or the communication parameter is the second search condition and the If a match to the third search condition set, and outputs the search results.
  • the communication parameter of the received packet matches the set of the first search condition and the third search condition, or the communication parameter of the received packet is the set of the second search condition and the third search condition. If it matches, the search result is output. Therefore, the search table can be searched bidirectionally without determining which interface the packet is received on. Therefore, the entry area of the search table can be reduced, and the memory capacity of the search table is reduced. Also, the number of packet search conditions can be halved compared to the case where the search table is searched according to the interface from which the packet is received. Therefore, this is particularly effective when the number of required packet search conditions is large.
  • the search processing unit performs network address port conversion on the received packet if the communication parameter of the received packet matches the set of the first search condition and the third search condition.
  • the second search condition is output as a communication parameter after conversion, and if the communication parameter matches the set of the second search condition and the third search condition, the first communication parameter is converted as the first communication parameter after conversion. Output the search condition.
  • the second search condition is output as the communication parameter after conversion by network address port conversion. Further, if the communication parameter matches the set of the second search condition and the third search condition, the first search condition is output as the converted communication parameter. Therefore, network address port conversion can be realized without increasing the number of entry areas in the search table or increasing packet search conditions stored in the entry area of the search table.
  • each of the packet search conditions for IPv4 is stored in one entry area
  • each of the packet search conditions for IPv6 is stored in two entry areas in the search table
  • the packet search conditions for IPv6 include the first search condition, the second search condition, and the third parameter respectively corresponding to the first parameter, the second parameter, and the third parameter of the communication parameter of the IPv6 packet.
  • the first search condition and the third search condition are stored in an even-numbered entry area
  • the second search condition is stored in an odd-numbered entry area.
  • the third search condition is stored, and the search processing unit determines whether the received packet is an IPv4 packet or the IPv6 packet. Serial compare with each or each packet search conditions for the IPv6 packet search conditions for IPv4 and the communication parameters of the received packet.
  • each packet search condition for IPv4 stored in one entry area is compared with the communication parameter of the received IPv4 packet.
  • each packet search condition for IPv6 stored in the two entry areas is compared with the communication parameter of the received IPv6 packet.
  • the set of the first parameter and the third parameter is compared with the set of the first search condition and the third search condition stored in the even-numbered entry area.
  • the set of the second parameter and the third parameter is compared with the set of the second search condition and the third search condition stored in the odd-numbered entry area.
  • IPv4 packets and IPv6 packets are mixed, it is possible to store the packet search conditions for IPv4 and the packet search conditions for IPv6 on the same search table. For this reason, the memory capacity of the entire search table can be reduced and the memory capacity of the search table can be optimized compared to the case where the search table for IPv4 packets and the search table for IPv6 packets are provided separately.
  • the search processing unit compares the communication parameter of the received packet with a packet search condition of the even-numbered entry area, and outputs a first comparison result;
  • a second comparison unit that compares the communication parameter with the packet search condition of the odd-numbered entry area and outputs a second comparison result; and based on the first comparison result and the second comparison result
  • a determination unit that determines whether or not a packet search condition that matches the communication parameter is searched, and when the received packet is the IPv4 packet, the determination unit includes the first comparison result and the If at least one of the second comparison results indicates a match, it is determined that a packet search condition matching the communication parameter has been found, and the received packet is determined.
  • the first comparison unit compares the packet search condition of the even-numbered entry area with the set of the first parameter and the third parameter, and the even-numbered packet.
  • the packet search condition of the entry area of the second entry is compared with the set of the second parameter and the third parameter
  • the second comparison unit compares the packet search condition of the odd-numbered entry area and the first parameter.
  • the third parameter set, and the packet search condition of the odd-numbered entry area is compared with the second parameter and the third parameter set.
  • the packet search condition of the th entry area matches the set of the first parameter and the third parameter, and the odd number
  • the packet search condition of the entry area matches the set of the second parameter and the third parameter, or the packet search condition of the odd-numbered entry area matches the first parameter and the third parameter. If the packet search condition of the even-numbered entry area matches the set of the second parameter and the third parameter, the packet search condition that matches the communication parameter is found. judge.
  • the communication parameter of the received packet matches the packet search condition of the even-numbered entry area, or the communication parameter matches the packet search condition of the odd-numbered entry area. If so, it is determined that a packet search condition matching the communication parameter has been searched.
  • the packet search condition of the even-numbered entry area matches the set of the first parameter and the third parameter
  • the packet search condition of the odd-numbered entry area is the first. 2 or the third parameter set, or the packet search condition of the odd-numbered entry area matches the first parameter and the third parameter set, and the even-numbered entry area If the packet search condition matches the set of the second parameter and the third parameter, it is determined that the packet search condition that matches the communication parameter has been searched.
  • the search table can be searched using a circuit common to the IPv4 packet and the IPv6 packet.
  • the search for the even-numbered entry areas and the search for the odd-numbered entry areas are performed in parallel, a high-speed search can be realized.
  • Another aspect of the present invention is a packet transfer processing method corresponding to the above-described packet transfer processing device. Still another aspect of the present invention is a packet transfer processing program for causing a computer to execute such a packet transfer processing method.
  • control unit can detect the end of the communication period reliably and efficiently. Thereby, it becomes possible to effectively manage the validity / invalidity of the search rule in the search table, and the packet transfer processing device, method, and program capable of further effectively using the limited search table entry area Can be provided.
  • FIG. 2 is a block diagram illustrating a configuration of a search unit and a search table of the packet transfer processing device illustrated in FIG. 1.
  • 3 is a flowchart showing a processing procedure and processing contents when the timer management unit shown in FIG. 2 holds a valid bit of a valid management table.
  • 3 is a flowchart showing a processing procedure and processing contents when the timer management unit shown in FIG. 2 changes a valid bit of a valid management table to an invalid bit.
  • 5 is a flowchart showing a processing procedure and processing contents for requesting the start of decrement for the bit change processing shown in FIG. 4.
  • FIG. 3 is a diagram illustrating a configuration of a totaling register provided in the timeout management table illustrated in FIG. 2 together with an entry timeout register.
  • FIG. 2 is a block diagram illustrating a first configuration example of a search unit and a search table of a packet transfer processing device when a FIFO memory is provided in the search unit illustrated in FIG. 1. It is a block diagram which shows the 2nd structural example of the search part and search table of a packet transmission processing apparatus when a FIFO memory is provided in the search part shown in FIG. It is a figure which shows the 1st structural example of the entry search table in 2nd Embodiment of this invention. It is a figure which shows the 2nd structural example of the entry search table in 2nd Embodiment of this invention.
  • FIG. 1 is a block diagram showing the configuration of a packet transfer processing apparatus according to the first embodiment of the present invention.
  • the packet transfer processing apparatus includes a packet transfer unit 10 and a control unit 20 including a central processing unit (CPU) connected to the packet transfer unit 10 via a bus 30.
  • CPU central processing unit
  • the packet transfer unit 10 includes a frame reception unit 1, a buffer management unit 2, a packet buffer 3, a parser 4, a search table 5, a search unit 6, a QoS (Quality of Service) unit 7, a frame generation unit 8, and a frame transmission unit 9. Prepare. These processing units are integrated, and the packet transfer unit 10 is configured by one LSI (Large Scale Integration).
  • the packet transfer unit 10 receives a reception packet input from a reception interface (not shown) for each frame by the frame reception unit 1, stores the received packet in the packet buffer 3 through the buffer management unit 2, and stores it in the parser 4. Supply.
  • the parser 4 analyzes the header of the supplied received packet, and searches for a communication parameter inserted in the header, that is, a source IP address, a destination IP address, a source port number, a destination port number, and a protocol. Are used as job information to the search unit 6.
  • the search unit 6 sequentially compares the communication parameters of the received packet given as JOB information from the parser 4 with a plurality of search conditions (packet search conditions) stored in the search table 5 in advance, and the search conditions matching the communication parameters are found. If found, information representing a search result corresponding to the search condition is read from the search table 5 and supplied to the QoS unit 7.
  • the QoS unit 7 determines whether the received packet is a passing target or a discarding target based on the information indicating the supplied search result. If the received packet is to be discarded as a result of this determination, the QoS unit 7 gives a deletion instruction to the buffer management unit 2 to delete the corresponding packet from the packet buffer 3 and deletes the JOB information. On the other hand, if the received packet is a passing target, the QoS unit 7 accumulates the JOB information in a queue (not shown) according to the quality class obtained from the JOB information. When the packet transmission opportunity is obtained by the scheduling process, the QoS unit 7 supplies the transmission frame information to the frame generation unit 8.
  • the frame generation unit 8 reads the corresponding packet from the packet buffer 3 via the buffer management unit 2, rewrites the MAC (Media Access Control) address, IP address, and the like of the header of this packet, and then sends it to the frame transmission unit 9. Output.
  • the frame transmission unit 9 outputs the supplied packet to a transmission-side line interface (not shown).
  • FIG. 2 is a block diagram showing their configuration.
  • the search table 5 includes an effective management table 51, an entry search table 52, and an entry result table 53.
  • the entry search table 52 has 2048 entry areas as an example, and search conditions are stored in these entry areas under the control of the control unit 20, respectively.
  • the search conditions include, for example, a source IP address, a destination IP address, a source port number, a destination port number, a UDP (User Datagram Protocol), and a TCP used for packet filtering, network address port translation (NAPT) search, and route cache search. It is represented by a protocol such as (Transmission Control Protocol).
  • a protocol such as (Transmission Control Protocol).
  • search conditions in addition to these, an IP address / port number designated by a mask or prefix to be used for route search, an ICMP (Internet Control Message Protocol) code number, and presence / absence of fragment packet information are used. Also good. In short, any information can be applied as long as it is information for identifying a packet.
  • the protocol name (tcp, udp) corresponding to the protocol number is shown for easy understanding, but the protocol number is actually stored. The same applies to the entry search table shown in the drawings described below.
  • the valid management table 51 has 2048 valid bit areas corresponding to the entry areas of the entry search table 52. In these valid bit areas, valid / invalid bits (valid / invalid) indicating whether the search condition stored in the entry area of the entry search table 52 is valid or invalid under the control of the control unit 20, respectively. Flag) is stored.
  • FIG. 2 illustrates a case where the valid bit is “1” and the invalid bit is “0”.
  • the entry result table 53 is provided with 2048 pass / discard bit areas and a translation address area corresponding to each entry area of the entry search table 52.
  • a pass / discard bit designating whether to pass or discard the packet is stored in the pass / discard bit area.
  • the translation address area stores a translation address for translating the header address when the received packet is passed. Note that storage processing of the pass / discard bit and the translation address to the pass / discard bit area and the translation address area is also performed under the control of the control unit 20.
  • the search unit 6 includes a search processing unit 61, a timer management unit 62, an update timer management unit 63, an update timer management table 64, a management timer register table 65, and a timeout management table 66.
  • the search processing unit 61 selects the search condition corresponding to the effective bit area in which the effective bit “1” is set on the effective management table 51 and the received packet among the plurality of search conditions stored in the entry search table 52.
  • the communication parameters are sequentially compared, and when a search condition matching the communication parameter is found, a process of reading out and outputting the pass / discard bit and the translation address corresponding to the search condition from the entry result table 53 is executed.
  • the update timer management unit 63 uses the counter 642 provided in the update timer management table 64 to count the system clock, and every time the count value reaches the value stored in the timer value register 641 of the update timer management table 64. In addition, a decrement request is output to the timer management unit 62.
  • the management timer register table 65 includes a management timer register 651 and a management timer threshold register 652.
  • the management timer register 651 is provided with 2048 timer register areas corresponding to the entry areas of the entry search table 52, and the timer count values are stored in these timer register areas.
  • the management timer threshold register 652 stores the maximum count value (timeout value) of the timer.
  • the timer management unit 62 uses a timer to monitor whether the search condition stored in the entry search table 52 is in use, and has a function of performing the following processing. (1) When the valid bit “1” is set on the valid management table 51, the maximum count value of the management timer threshold register 652 is set in the timer register area corresponding to the search condition corresponding to the valid bit area. A process of decrementing the count value of the timer register area each time a decrement request is output from the update timer management unit 63.
  • 3 to 5 are flowcharts showing the processing procedure and processing contents of the timer management unit 62.
  • the timer management unit 62 monitors access to the search condition in which the valid bit “1” is set in the corresponding valid bit area in step S51, and in step S52, from the search processing unit 61.
  • the output of valid search results is monitored. In this state, for example, it is assumed that “1” or “0” is written in the effective management table 51 with the start of communication, or an effective search result is notified from the search processing unit 61.
  • the timer management unit 62 shifts the processing to step S53, determines whether or not the management timer register table 65 is accessible, and waits until the access becomes possible if the access is impossible. In this state, when the decrement processing of the timer value of the management timer register 651 is completed and the management timer register table 65 can be accessed, the timer management unit 62 shifts the processing to step S54, and the corresponding management timer register 651.
  • the timer value set in the management timer register 651 described above is written as “1” or “0” in the effective management table 51 during the timer timing period described later, or an effective search from the search processing unit 61. This is also done when the result is notified. That is, each time “1” or “0” is written in the corresponding effective bit area of the effective management table 51, or a valid search result is notified from the search processing unit 61, the timer starts counting from the beginning. Try again.
  • the update timer management unit 63 first resets the counter 642 as shown in FIG. 5, and then starts counting the system clock using the counter 642 in step S71, and the count value is stored in the timer value register 641. It is monitored in step S72 whether or not the value has been reached. When the count value of the counter 642 reaches the timer value “133000000” of the timer value register 641, the update timer management unit 63 outputs a decrement request to the timer management unit 62 in step S73. Thereafter, the processing from step S71 to step S73 is repeated. Accordingly, the update timer management unit 63 outputs a decrement request at a time interval determined by the timer value and the system clock cycle. For example, if the system clock is 133 MHz and the timer value is “133000000”, the update timer management unit 63 outputs a decrement request every second.
  • the timer manager 62 executes a timer value decrement process, that is, a timer timing process as follows. That is, as shown in FIG. 4, the timer management unit 62 first initializes the entry number of the management timer register 651 to “0” in step S61, and then in step S62, the entry number is the maximum value “2047” +1. It is determined whether or not “2048” has been reached.
  • the timer management unit 62 shifts the process to step S66, and it is still timed in the area of the corresponding entry timeout register 661 of the timeout management table 66. “0” is stored.
  • the timer management unit 62 increments (+1) the entry number in step S68 and returns the processing to step S62. Then, the decrement process of the timer with the entry number “1” is executed in steps S62 to S66 and step S68. Thereafter, similarly, the timer management unit 62 repeats the decrement processing of the timer value corresponding to each entry number in steps S62 to S66 and step S68 until the entry number exceeds “2047” which is the maximum value in step S62. Execute. When the entry number exceeds “2047”, the timer management unit 62 ends the decrement process.
  • the timer management unit 62 detects that the timer value has become “ ⁇ 1” in step S65, the timer management unit 62 regards this as a timeout, and sets the corresponding timer value in the management timer register 651 to “0” in step S67. Further, information “1” indicating that the timer has timed out is stored in the corresponding entry timeout register 661 in the timeout management table 66.
  • the control unit 20 changes the valid bit area of the valid management table 51 based on the information stored in the entry timeout register 661 of the timeout management table 66, that is, information indicating whether the timer is timing or timed out. Execute the process. At the same time, the control unit 20 detects a free entry area from the entry search table 52 and executes a process of setting a search condition for new communication in this free entry area.
  • timeout aggregation registers 672-0 and 672-1 the logical sum data output from the logical sum circuits 671-0 to 671-31 and the logical sum circuits 671-32 to 671-63 respectively belonging to the block. Is memorized.
  • the block division of the logical sum circuit 671 the number of bits of logical sum data in each block is determined according to the architecture of the CPU of the control unit 20. For example, if the CPU is a 32-bit architecture, the logical sum circuit 671 is divided so that 32 pieces are one block.
  • the control unit 20 writes a search condition necessary for new communication in the entry area detected as the empty entry area in the entry search table 52. At the same time, the control unit 20 writes the pass / discard information and the conversion address in an area corresponding to the entry area in the entry result table 53. Further, the control unit 20 writes the valid bit “1” in the valid bit area corresponding to the entry area in the valid management table 51.
  • the number of the entry area corresponding to the timer that has timed out is managed using a first in first out (FIFO) memory. That is, as shown in FIG. 6B, the FIFO memory 68 is provided in the timeout management table 66 ′ of the search unit 6 ′. Alternatively, as shown in FIG. 6C, a FIFO memory 68 is provided in the search unit 6 ′′ independently of the timeout management table 66. The timer management unit 62 times out when the timer times out. The number (identification information) of the entry area corresponding to the timer is stored in the FIFO memory 68.
  • FIFO first in first out
  • a timer for monitoring the usage time is provided in the management timer register 651 corresponding to each entry area of the entry search table 52.
  • every time “1” or “0” is written in the effective management table 51 or a valid search result is notified from the search processing unit 61, the timer counts. To start.
  • information indicating that the time-out has occurred is stored in the corresponding register area of the time-out management table 66.
  • FIG. 7A shows a configuration example of an entry search table corresponding to bidirectional search.
  • a packet is transferred between two interfaces, and each interface is described as interface 0 / interface 1.
  • the entry search table and the like will be described using the symbols shown in FIG.
  • the search processing unit 61 uses the destination IP address / source IP address / destination port number included in the header of the received packet.
  • the transmission source port number / protocol number is compared with the IP address 3 / IP address 2 / port number 3 / port number 2 / protocol number stored in the entry search table 52 as a search condition.
  • the QoS unit 7 determines processing for the received packet in accordance with the pass / discard information stored in the entry result table 53 in association with the search condition that matches the communication parameter.
  • IP address 1 / port number 1 is used as the source IP address / source port number after NAPT conversion. In this way, the entry area of the entry search table 52 can be further reduced, and the memory capacity can be reduced.
  • the sub-comparing unit 6121 matches the destination IPv6 address / destination port number / protocol number of the received packet with the even-numbered search condition, and the sub-comparing unit 6122 sends the source IPv6 address of the received packet.
  • the determination circuit 6123 determines that the communication parameter of the received packet matches the search condition.
  • the received packet received by the frame reception unit 1 is sent to the frame generation unit 8 via the parser 4 and the search unit 6.
  • the frame generation unit 8 discards the received packet.
  • the frame generation unit 8 performs processing such as generating a packet in which the MAC address and IP address of the header of the received packet are rewritten.
  • the frame generation unit 8 stores the generated packet in the packet buffer 3 via the buffer management unit 2 and outputs transmission frame information to the QoS unit 7.
  • each part which comprises the packet transfer processing apparatus mentioned above is comprised with the computer system provided with memory, CPU, etc. besides the form implement
  • These functions may be realized by loading and executing the above.
  • the program may be recorded on a computer-readable recording medium, and the program recorded on the recording medium may be read into a computer system and executed.
  • the computer system mentioned here includes hardware such as an operating system and peripheral devices.
  • the computer-readable recording medium is a portable medium such as a flexible disk, a magneto-optical disk, a ROM (Read Only Memory), a CD (Compact Disk) -ROM, or a storage device such as a hard disk built in the computer system.
  • the program may be a program for realizing a part of the functions described above.
  • the program may be a program that can realize the above-described function in combination with a program already recorded in a computer system, a so-called differential program.
  • the types and configurations of the tables provided in the search table, the processing procedures and processing contents of the search unit and timer management unit, and the like can be variously modified and implemented without departing from the scope of the present invention.
  • the present invention is not limited to the above-described embodiments as they are, and can be embodied by modifying the components without departing from the scope of the invention in the implementation stage.
  • Various modifications can be made by appropriately combining a plurality of constituent elements disclosed in the above embodiments. For example, some components may be deleted from all the components shown in each embodiment. Furthermore, you may combine suitably the component covering different embodiment.
  • the present invention can be used in, for example, a router used in an IP network. According to the present invention, the end of the communication period can be detected reliably and efficiently. Therefore, it is possible to effectively manage the validity / invalidity of the search rule in the search table, and to use the limited entry area of the search table more effectively.
  • Timer value register 642.
  • management timer register table 651 ... management timer register, 652 ... management timer threshold register, 66, 66 '... timeout management table, 661 ... Entry timeout register, 67 ... Aggregate register, 671-0, 671-1,671-31, 671-32, 671-63 ... OR circuit, 672-0,672-1 ... Timeout aggregation register, 68 ... FIFO memory.

Abstract

 通信期間の終了を制御部が確実かつ効率よく検出できるようにして、検索テーブルにおける検索ルールの有効/無効の管理を効果的に行えるようにする。検索テーブルの各エントリ領域に対応してタイマを設ける。そして、タイマ管理部の制御の下で、有効管理テーブルに情報が書き込まれるか或いは有効に設定された有効管理テーブル上の情報に対応するパケット検索条件と通信パラメータが一致するパケットが受信されるごとに、上記タイマに計時動作を開始させる。また、上記タイマの計時時間が予め設定したタイムアウト時間を超えたとき、そのタイムアウトした旨の情報をタイムアウト管理テーブルに記憶させる。

Description

パケット転送処理装置、方法及びプログラム
 この発明は、例えばIP(Internet Protocol)網で使用されるルータ等のように、パケットフィルタリング機能を用いてパケットの転送処理を行うパケット転送処理装置、方法及びプログラムに関する。
 本願は、2010年2月4日に日本へ出願された特願2010-023251号に対して優先権を主張し、その内容をここに援用する。
 近年、インターネットに代表されるIP網の利用拡大に伴い、企業及び家庭内にLAN(Local Area Network)を構築し、このLANをインターネット等を介して外部のネットワークに接続してパケット転送を行うことが多くなってきている。しかし、LANに収容された端末を外部のネットワークに接続すると、外部のネットワークからの不正アクセスにより個人情報等の機密情報の漏えいや改竄が発生するおそれがあるため、LAN内部のセキュリティの確保が重要な課題となっている。
 そこで従来では、LANと外部ネットワークとの間でパケットを中継転送するルータ等のパケット転送処理装置に、パケットフィルタリング機能を持たせるようにしている。パケットフィルタリング機能は、入力されたパケットを予め設定されているフィルタリングルールと比較することにより、上記パケットの通過を許可するか否かを判定するものである。フィルタリングルールは、パケット転送に使用される通信パラメータ、例えば送信元アドレス、宛先アドレス、プロトコル、送信元ポート番号及び宛先ポート番号により定義される。
 ところで、パケットフィルタリング機能を実現するには、非常に多くのフィルタリングルールを検索ルールとして検索テーブルに記憶させる必要があるが、検索テーブルの記憶容量には限りがある。そこで、検索テーブルに記憶する検索ルールのエントリ数を減らすために、例えば以下のような装置が提案されている。
 すなわち、通常はパケットを廃棄し必要なパケットのみ通過させる場合の検索ルールは、常に有効である必要は無く通信の開始から終了まで有効であればよい。そこで、検索テーブルに記憶された各検索ルールに対しそれぞれ各検索ルールの有効/無効を示す有効フラグを用意する。そして、通信開始時にCPU(Central Processing Unit)が検索テーブルに検索ルールを設定したときに、対応する有効フラグを“1”に設定して当該検索ルールを有効とする。一方、通信が終了すると上記有効フラグを“0”にリセットし、以後この検索ルールが使用されないようにして次の検索ルールの追加に備える。この状態で、新たに通信を開始する場合には、“0”に設定されている有効フラグに対応する検索ルール、つまり有効でないエントリを検索し、この使われていない検索ルールの代わりに新たな検索ルールを検索テーブルに設定する。このようにすると、検索テーブルのエントリの内容が動的に変更されることになり、少ないメモリ領域でより多くのパケットの検索が可能となる。
 具体的な検索回路としては、複数のルール比較部を並列に使用して受信パケットの通信パラメータとフィルタリングルールとを比較する回路がある。この回路は、パケットが受信されると、複数のルール比較部のうち処理が終了しているルール比較部に上記受信パケットの通信パラメータを振り分けて入力する。またそれと共に、検索テーブルからフィルタリングルールを1つ読み出すごとにこのフィルタリングルールを上記すべてのルール比較部に供給する。各ルール比較部は、受信パケットの通信パラメータが入力されるごとに、上記検索テーブルから順次読み出されるすべてのフィルタリングルールと比較する。そして、通信パラメータと一致するフィルタリングルールが検出されると、このフィルタリングルールを検索結果として出力する。なお、通信パラメータと一致するフィルタリングルールが複数検出された場合には優先度が最も高いフィルタリングルールを検索結果として出力する(例えば特許文献1を参照。)。
特開2007-166514号公報
 ところが、CPUが32bitアーキテクチャであると、検索テーブルの空き領域を検索する場合、1度に32個分の検索テーブルのエントリ領域しか調べることができない。検索テーブルのエントリ領域は例えば2048と多いため、CPUが検索テーブルの空き領域を検索する際には、依然として多くの処理ステップ数と時間が必要となる。
 さらに、通信終了後に該当する検索ルールを無効化するためには、通信が終了したか否かをCPUで判定する必要がある。しかし、一般に検索テーブルに検索ルールが設定された後の通信期間中におけるパケット転送の可否判定は、CPUと独立して動作するパケット転送ブロックにより行われる。このため、通信期間中にはCPUにパケットが転送されなくなり、CPUは通信期間の終了を検出することができなくなる。
 この発明は上記事情に着目してなされたもので、その目的とするところは、通信期間の終了を制御部が確実かつ効率よく検出できるようにすることで、検索テーブルにおける検索ルールの有効/無効の管理を効果的に行えるようにし、限りのある検索テーブルのエントリ領域をさらに有効に使用できるようにしたパケット転送処理装置、方法及びプログラムを提供することにある。
 上記目的を達成するために、この発明の1つの観点は、複数のパケット検索条件を記憶する複数のエントリ領域を有する検索テーブルと、パケットが受信されるごとに、前記受信したパケットの通信パラメータを前記検索テーブルに記憶された前記複数のパケット検索条件とそれぞれ比較し、前記通信パラメータに一致するパケット検索条件に対応した検索結果を出力する検索処理部と、前記検索結果に基づいて前記受信したパケットの転送又は廃棄処理を行う転送処理部と、前記検索テーブルに記憶された前記複数のパケット検索条件の各々に対応付けて、前記パケット検索条件が有効であるか無効であるかを設定する情報を記憶する有効管理テーブルと、前記複数のエントリ領域の各々に対応したタイマと、有効に設定された前記有効管理テーブル上の情報に対応するパケット検索条件と通信パラメータが一致するパケットが受信されるごと、または、前記有効管理テーブルに前記情報が書き込まれるごとに、前記タイマにより計時動作を開始するタイマ管理部と、前記タイマごとに、前記タイマが計時動作中であるかタイムアウトしたかを表す情報を記憶するタイムアウト管理テーブルと、前記タイマの計時時間が予め設定したタイムアウト時間を超えたとき、前記タイマがタイムアウトしたことを表す情報を前記タイムアウト管理テーブルに記憶させると共に、前記有効管理テーブルに記憶された前記情報のうち、タイムアウトした前記タイマに対応する情報を有効から無効に変更する有効無効管理部と、通信開始時に、前記タイムアウト管理テーブルに記憶された前記情報をもとに前記検索テーブル中の空きのエントリ領域を検出し、前記検出された空きのエントリ領域に前記通信に必要なパケット検索条件を記憶させる制御部とを具備するパケット転送処理装置である。
 したがってこの発明によれば、有効に設定されたパケット検索条件の各々について、当該パケット検索条件に該当するパケットが受信されない時間が一定時間以上続いてタイマがタイムアウトすると、タイムアウトを表す情報がタイムアウト管理テーブルに記憶される。このため、通信開始時に制御部は、上記タイムアウト管理テーブルに記憶された情報をもとに上記検索テーブル中の空きのエントリ領域を検出することが可能となり、この検出された空きエントリ領域に新たな検索条件を記憶させることができる。
 すなわち、通信期間中に制御部がパケット転送処理に関与しない場合でも、制御部は検索テーブル中の空きエントリ領域を把握して、検索テーブルにおけるパケット検索条件のエントリを動的に管理することが可能となる。これにより、検索テーブルのエントリ領域の利用効率が高められて、検索テーブルのメモリ量を削減することができる。
 また、この発明は以下のような態様を備えていてもよい。
 第1の態様では、前記タイムアウト管理テーブルは、前記検索テーブルの各エントリ領域に対応付けて設けられた複数のビット領域を有し、前記タイマが計時動作中であるかタイムアウトしたかを表すビットデータを、前記複数のビット領域のうち、前記タイマに対応するビット領域に記憶するタイムアウトレジスタと、前記タイムアウトレジスタの前記複数のビット領域を分割した複数のグループに対応付けて設けられ、各グループに含まれる複数のビット領域に記憶されたビットデータの論理和データを出力する複数の論理和回路と、前記複数の論理和回路を、前記制御部のプロセッサが同時に処理可能なビット数ずつ分割した複数のブロックに対応付けて設けられ、各ブロックに含まれる論理和回路から出力される論理和データを記憶する複数の集約レジスタとを備え、前記制御部は、前記空きのエントリ領域を検出する際に、前記集約レジスタに記憶された前記論理和データをもとに前記タイマがタイムアウトしたことを示すビットを含むブロックを選択し、前記選択されたブロック内における前記タイマがタイムアウトしたことを示すビットの位置から前記タイマがタイムアウトしたことを示すビットの位置を含むグループを選択し、前記選択されたグループに属する前記タイムアウトレジスタのビット領域からビットデータを読み出し、読み出した前記ビットデータをもとにタイムアウトした前記タイマに対応するエントリ領域を検出する。
 このようにすると、空きのエントリ領域を検出する際に、先ず集約レジスタに記憶された論理和データをもとにタイムアウトしたエントリ領域を含むグループが選択される。次に、この選択されたグループに属するビット領域のビットデータをもとに空きのエントリ領域が特定される。すなわち、空きのエントリ領域を特定する際の絞り込みが二段階に行われる。したがって、検索テーブルのすべてのエントリ領域について順次その有効/無効を判定する場合に比べ、空きのエントリ領域を特定するために要する処理ステップ及び時間が大幅に短縮される。
 第2の態様では、前記タイマがタイムアウトしたときに、タイムアウトした前記タイマに対応する前記検索テーブルのエントリ領域の識別情報を順次記憶するメモリを備え、前記制御部は、前記空きのエントリ領域を検出する際に、前記メモリから記憶順序の早い順に前記エントリ領域の識別情報を読み出し、読み出した前記識別情報により表されるエントリ領域を前記空きのエントリ領域とする。
 このようにすると、パケット検索条件が無効になるごとに、当該パケット検索条件が記憶されているエントリ領域を表す識別情報がメモリに順次記憶されるので、制御部はこのメモリを検索することにより空きのエントリ領域を容易に特定することができる。したがって、検索テーブルのエントリ領域又はタイムアウトレジスタのビット領域をサーチすることなく、さらに少ない処理ステップで短時間に空きのエントリ領域を特定することが可能となる。
 第3の態様では、パケットが第1のインタフェースと第2のインタフェースとの間で転送され、前記検索テーブルに記憶される各パケット検索条件は、第1の検索条件,第2の検索条件および第3の検索条件を含み、前記検索処理部は、前記受信したパケットが前記第1のインタフェースで受信された第1のパケットである場合、前記第1のパケットの通信パラメータと前記第1の検索条件および前記第3の検索条件の組とを比較し、前記第1のパケットの前記通信パラメータが前記第1の検索条件および前記第3の検索条件の組に一致すれば前記検索結果を出力し、前記受信したパケットが前記第2のインタフェースで受信された第2のパケットである場合、前記第2のパケットの通信パラメータと前記第2の検索条件および前記第3の検索条件の組とを比較し、前記第2のパケットの前記通信パラメータが前記第2の検索条件および前記第3の検索条件の組に一致すれば前記検索結果を出力する。
 これにより、第1のインタフェースでパケットを受信した場合には、受信したパケットの通信パラメータと第1の検索条件および第3の検索条件の組とが一致すれば検索結果が出力される。また、第2のインタフェースでパケットを受信した場合には、受信したパケットの通信パラメータと第2の検索条件および第3の検索条件の組とが一致すれば検索結果が出力される。このため、検索テーブルの検索を双方向に行うことができる。したがって、検索テーブルのエントリ領域を減らすことができ、検索テーブルのメモリ容量が削減される。
 第4の態様では、前記検索処理部は、前記受信したパケットが前記第1のパケットである場合、前記第1のパケットに対するネットワークアドレスポート変換による変換後の通信パラメータとして前記第2の検索条件を出力し、前記受信したパケットが前記第2のパケットである場合、前記第2のパケットに対するネットワークアドレスポート変換による変換後の通信パラメータとして前記第1の検索条件を出力する。
 これにより、第1のインタフェースでパケットを受信した場合には、ネットワークアドレスポート変換による変換後の通信パラメータとして第2の検索条件を出力する。また、第2のインタフェースでパケットを受信した場合には、ネットワークアドレスポート変換による変換後の通信パラメータとして第1の検索条件を出力する。したがって、検索テーブルのエントリ領域の数を増やしたり、検索テーブルのエントリ領域に記憶されるパケット検索条件を増やしたりすることなく、ネットワークアドレスポート変換を実現できる。
 第5の態様では、パケットが第1のインタフェースと第2のインタフェースとの間で転送され、前記検索テーブルに記憶される各パケット検索条件は、第1の検索条件,第2の検索条件および第3の検索条件を含み、前記検索処理部は、前記受信したパケットが前記第1のインタフェースで受信されたか前記第2のインタフェースで受信されたかによらず、前記受信したパケットの通信パラメータと前記第1の検索条件および前記第3の検索条件の組とを比較するとともに、前記受信したパケットの前記通信パラメータと前記第2の検索条件および前記第3の検索条件の組とを比較し、前記通信パラメータが、前記第1の検索条件および前記第3の検索条件の組に一致するか、または、前記通信パラメータが前記第2の検索条件および前記第3の検索条件の組に一致すれば、前記検索結果を出力する。
 これにより、受信したパケットの通信パラメータが第1の検索条件および第3の検索条件の組に一致するか、または、受信したパケットの通信パラメータが第2の検索条件および第3の検索条件の組に一致すれば、検索結果が出力される。このため、パケットがいずれのインタフェースで受信されたのかを判断することなく、検索テーブルの検索を双方向に行うことができる。したがって、検索テーブルのエントリ領域を減らすことができ、検索テーブルのメモリ容量が削減される。また、パケットが受信されたインタフェースに応じて検索テーブルの検索を行う場合に比べて、パケット検索条件の数を1/2にすることができる。したがって、必要とされるパケット検索条件の数が多い場合に特に有効である。
 第6の態様では、前記検索処理部は、前記受信したパケットの通信パラメータが前記第1の検索条件および前記第3の検索条件の組に一致すれば、前記受信したパケットに対するネットワークアドレスポート変換による変換後の通信パラメータとして前記第2の検索条件を出力し、前記通信パラメータが前記第2の検索条件および前記第3の検索条件の組に一致すれば、前記変換後の通信パラメータとして前記第1の検索条件を出力する。
 これにより、通信パラメータが第1の検索条件および第3の検索条件の組に一致すれば、ネットワークアドレスポート変換による変換後の通信パラメータとして第2の検索条件を出力する。また、通信パラメータが第2の検索条件および第3の検索条件の組に一致すれば、変換後の通信パラメータとして第1の検索条件を出力する。したがって、検索テーブルのエントリ領域の数を増やしたり、検索テーブルのエントリ領域に記憶されるパケット検索条件を増やしたりすることなく、ネットワークアドレスポート変換を実現できる。
 第7の態様では、前記検索テーブルには、IPv4用のパケット検索条件の各々が1個のエントリ領域上に記憶され、IPv6用のパケット検索条件の各々が2個のエントリ領域上に記憶され、前記IPv6用のパケット検索条件は、IPv6のパケットの通信パラメータが有する第1のパラメータ,第2のパラメータおよび第3のパラメータにそれぞれ対応した第1の検索条件,第2の検索条件および第3の検索条件を有し、前記2個のエントリ領域のうち、偶数番目のエントリ領域に前記第1の検索条件および前記第3の検索条件が記憶され、奇数番目のエントリ領域に前記第2の検索条件および前記第3の検索条件が記憶され、前記検索処理部は、前記受信したパケットがIPv4のパケットか前記IPv6のパケットかに応じて、前記IPv4用のパケット検索条件の各々または前記IPv6用のパケット検索条件の各々と前記受信したパケットの前記通信パラメータとを比較する。
 これにより、IPv4のパケットを受信したかIPv6のパケットを受信したかに応じて、1個のエントリ領域上に記憶されたIPv4用の各パケット検索条件と受信したIPv4のパケットの通信パラメータとを比較し、あるいは、2個のエントリ領域上に記憶されたIPv6用の各パケット検索条件と受信したIPv6のパケットの通信パラメータとを比較する。IPv6のパケットの場合には、第1のパラメータおよび第3のパラメータの組と偶数番目のエントリ領域に記憶された第1の検索条件および第3の検索条件の組とが比較されるとともに、第2のパラメータおよび第3のパラメータの組と奇数番目のエントリ領域に記憶された第2の検索条件および第3の検索条件の組とが比較される。したがって、IPv4パケットとIPv6パケットが混在した環境において、IPv4用のパケット検索条件とIPv6用のパケット検索条件を同一の検索テーブル上に記憶させることが可能となる。このため、IPv4パケット用の検索テーブルとIPv6パケット用の検索テーブルを別々に設けた場合に比べて、検索テーブル全体のメモリ容量を削減することができ、検索テーブルのメモリ容量を最適化できる。
 第8の態様では、前記検索処理部は、前記受信したパケットの前記通信パラメータと前記偶数番目のエントリ領域のパケット検索条件とを比較して第1の比較結果を出力する第1の比較部と、前記通信パラメータと前記奇数番目のエントリ領域のパケット検索条件とを比較して第2の比較結果を出力する第2の比較部と、前記第1の比較結果および前記第2の比較結果に基づいて、前記通信パラメータに一致するパケット検索条件が検索されたかどうか判定する判定部とを備え、前記受信したパケットが前記IPv4のパケットである場合、前記判定部は、前記第1の比較結果および前記第2の比較結果の少なくとも一つが一致を示していれば、前記通信パラメータに一致するパケット検索条件が検索されたと判定し、前記受信したパケットが前記IPv6のパケットである場合、前記第1の比較部は、前記偶数番目のエントリ領域のパケット検索条件と前記第1のパラメータおよび前記第3のパラメータの組とを比較するとともに、前記偶数番目のエントリ領域のパケット検索条件と前記第2のパラメータおよび前記第3のパラメータの組とを比較し、前記第2の比較部は、前記奇数番目のエントリ領域のパケット検索条件と前記第1のパラメータおよび前記第3のパラメータの組とを比較するとともに、前記奇数番目のエントリ領域のパケット検索条件と前記第2のパラメータおよび前記第3のパラメータの組とを比較し、前記判定部は、前記偶数番目のエントリ領域のパケット検索条件が前記第1のパラメータおよび前記第3のパラメータの組に一致し、かつ、前記奇数番目のエントリ領域のパケット検索条件が前記第2のパラメータおよび前記第3のパラメータの組に一致するか、または、前記奇数番目のエントリ領域のパケット検索条件が前記第1のパラメータおよび前記第3のパラメータの組に一致し、かつ、前記偶数番目のエントリ領域のパケット検索条件が前記第2のパラメータおよび前記第3のパラメータの組に一致すれば、前記通信パラメータに一致するパケット検索条件が検索されたと判定する。
 これにより、IPv4のパケットを受信した場合には、受信したパケットの通信パラメータと偶数番目のエントリ領域のパケット検索条件が一致するか、または、通信パラメータと奇数番目のエントリ領域のパケット検索条件が一致していれば、通信パラメータに一致するパケット検索条件が検索されたと判定する。また、IPv6のパケットを受信した場合には、偶数番目のエントリ領域のパケット検索条件が第1のパラメータおよび第3のパラメータの組に一致し、かつ、奇数番目のエントリ領域のパケット検索条件が第2のパラメータおよび第3のパラメータの組に一致するか、または、奇数番目のエントリ領域のパケット検索条件が第1のパラメータおよび第3のパラメータの組に一致し、かつ、偶数番目のエントリ領域のパケット検索条件が第2のパラメータおよび第3のパラメータの組に一致すれば、通信パラメータに一致するパケット検索条件が検索されたと判定する。したがって、IPv4パケットとIPv6パケットが混在する場合にも、IPv4パケットおよびIPv6パケットに共通の回路を用いながら検索テーブルの検索を行うことができる。また、偶数番目のエントリ領域に対する検索と奇数番目のエントリ領域に対する検索が平行して行われるため、高速な検索を実現することができる。
 また、この発明の別の観点は、上述したパケット転送処理装置に対応したパケット転送処理方法である。
 さらに、この発明のさらに別の観点は、かかるパケット転送処理方法をコンピュータに実行させるためのパケット転送処理プログラムである。
 すなわちこの発明によれば、通信期間の終了を制御部が確実かつ効率よく検出できるようになる。これにより、検索テーブルにおける検索ルールの有効/無効の管理を効果的に行えるようになって、限りのある検索テーブルのエントリ領域をさらに有効に使用することが可能なパケット転送処理装置、方法及びプログラムを提供することができる。
この発明の第1の実施形態に係わるパケット転送処理装置の構成を示すブロック図である。 図1に示したパケット転送処理装置の検索部及び検索テーブルの構成を示すブロック図である。 図2に示したタイマ管理部が、有効管理テーブルの有効ビットを保持するときの処理手順と処理内容を示すフローチャートである。 図2に示したタイマ管理部が、有効管理テーブルの有効ビットを無効ビットに変更するときの処理手順と処理内容を示すフローチャートである。 図4に示したビット変更処理に対しデクリメントの開始を要求するための処理手順と処理内容を示すフローチャートである。 図2に示したタイムアウト管理テーブルに設けられる集計レジスタの構成をエントリタイムアウトレジスタとともに示す図である。 図1に示した検索部にFIFOメモリを設けた場合におけるパケット転送処理装置の検索部及び検索テーブルの第1の構成例を示すブロック図である。 図1に示した検索部にFIFOメモリを設けた場合におけるパケット転送処理装置の検索部及び検索テーブルの第2の構成例を示すブロック図である。 この発明の第2の実施形態におけるエントリ検索テーブルの第1の構成例を示す図である。 この発明の第2の実施形態におけるエントリ検索テーブルの第2の構成例を示す図である。 この発明の第2の実施形態におけるエントリ検索テーブルの第3の構成例を示す図である。 図8に示した検索テーブルを使用する場合の検索部の構成と処理内容を示す図である。 この発明のその他の実施形態に係わるパケット転送処理装置の構成を示すブロック図である。
 以下、図面を参照してこの発明に係わる実施形態を説明する。
 (第1の実施形態)
 図1は、この発明の第1の実施形態に係わるパケット転送処理装置の構成を示すブロック図である。このパケット転送処理装置は、パケット転送部10と、このパケット転送部10に対しバス30を介して接続される中央処理ユニット(CPU;Central Processing Unit)を備えた制御部20とを備えている。
 パケット転送部10は、フレーム受信部1、バッファ管理部2、パケットバッファ3、パーサ4、検索テーブル5、検索部6、QoS(Quality of Service)部7、フレーム生成部8及びフレーム送信部9を備える。なお、これらの処理部は集積化されてパケット転送部10は1個のLSI(Large Scale Integration)により構成される。
 パケット転送部10は、図示しない受信インタフェースから入力された受信パケットをフレーム受信部1によりフレーム毎に受信し、この受信したパケットをバッファ管理部2を介してパケットバッファ3に記憶させると共にパーサ4に供給する。パーサ4は、上記供給された受信パケットのヘッダを解析し、このヘッダに挿入されている通信パラメータ、つまり送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号及びプロトコルといった検索部6で用いられるパラメータをJOB情報として検索部6に与える。
 検索部6は、上記パーサ4からJOB情報として与えられた受信パケットの通信パラメータを検索テーブル5に予め記憶した複数の検索条件(パケット検索条件)と順次比較し、通信パラメータと一致する検索条件が見つかると、当該検索条件に対応する検索結果を表す情報を検索テーブル5から読み出してQoS部7に供給する。
 QoS部7は、上記供給された検索結果を表す情報をもとに上記受信パケットが通過対象か又は廃棄対象かを判定する。この判定の結果、上記受信パケットが廃棄対象であれば、QoS部7は、バッファ管理部2に対し削除指示を与えてパケットバッファ3から該当するパケットを削除させると共に、上記JOB情報を削除する。これに対し、上記受信パケットが通過対象であれば、QoS部7は、JOB情報を当該JOB情報から得られる品質クラスに従った図示しないキューに蓄積する。そして、スケジューリング処理により上記パケットの送信機会が得られると、QoS部7は、送出フレーム情報をフレーム生成部8に供給する。フレーム生成部8は、バッファ管理部2を介して、パケットバッファ3から該当するパケットを読み出し、このパケットのヘッダのMAC(Media Access Control)アドレス及びIPアドレス等を書き換えたのち、フレーム送信部9へ出力する。フレーム送信部9は、上記供給されたパケットを図示しない送信側の回線インタフェースへ出力する。
 ところで、上記検索テーブル5及び検索部6は次のように構成される。図2はそれらの構成を示すブロック図である。
 先ず検索テーブル5は、有効管理テーブル51と、エントリ検索テーブル52と、エントリ結果テーブル53とを備えている。エントリ検索テーブル52は、一例として2048個のエントリ領域を有し、これらのエントリ領域にそれぞれ制御部20の制御の下で検索条件が記憶される。
 検索条件は、例えばパケットフィルタリングやネットワークアドレスポート変換(NAPT)検索、経路キャッシュ検索に用いられる、送信元IPアドレス、宛先IPアドレス、送信元ポート番号、宛先ポート番号、UDP(User Datagram Protocol)やTCP(Transmission Control Protocol)等のプロトコルにより表される。なお、検索条件としては、これらの他に、経路検索に用いられるようにマスク或いはプレフィックス指定されたIPアドレス/ポート番号や、ICMP(Internet Control Message Protocol)コード番号やフラグメントパケット情報の有無を用いてもよい。要するにパケットを識別するための情報であれば如何なる情報でも適用可能である。
 なお、図2に示したエントリ検索テーブルでは、理解を容易にするために、プロトコル番号に対応したプロトコルの名称(tcp,udp)を示してあるが、実際にはプロトコル番号が格納される。このことは、これ以降に説明する図中に示されたエントリ検索テーブルについても同様である。
 有効管理テーブル51は、上記エントリ検索テーブル52の各エントリ領域に対応して2048個の有効ビット領域を有する。これらの有効ビット領域には、それぞれ制御部20の制御の下で上記エントリ検索テーブル52のエントリ領域に記憶された検索条件が有効であるか無効であるかを表す有効/無効ビット(有効/無効フラグ)が記憶される。図2では有効ビットを“1”、無効ビットを“0”とした場合を例示している。
 エントリ結果テーブル53は、上記エントリ検索テーブル52の各エントリ領域に対応して、2048個の通過/廃棄ビット領域と、変換アドレス領域を設けたものである。通過/廃棄ビット領域にはパケットを通過させるか或いは破棄するかを指定する通過/廃棄ビットが記憶される。変換アドレス領域には、受信パケットを通過させる際にそのヘッダのアドレスを変換するための変換アドレスが記憶される。なお、通過/廃棄ビット領域及び変換アドレス領域への通過/廃棄ビット及び変換アドレスの記憶処理も、制御部20の制御の下で行われる。
 次に検索部6は、検索処理部61と、タイマ管理部62と、更新タイマ管理部63と、更新タイマ管理テーブル64と、管理タイマレジスタテーブル65と、タイムアウト管理テーブル66を備えている。
 検索処理部61は、上記エントリ検索テーブル52に記憶されている複数の検索条件のうち、有効管理テーブル51上で有効ビット“1”が設定された有効ビット領域に対応する検索条件と受信パケットの通信パラメータとを順次比較し、通信パラメータと一致する検索条件が見つかると、当該検索条件に対応する通過/廃棄ビット及び変換アドレスをエントリ結果テーブル53から読み出して出力する処理を、実行する。
 更新タイマ管理部63は、更新タイマ管理テーブル64に設けられたカウンタ642を使用してシステムクロックをカウントし、そのカウント値が更新タイマ管理テーブル64のタイマ値レジスタ641に記憶された値に達するごとに、タイマ管理部62に対しデクリメント要求を出力する。
 管理タイマレジスタテーブル65は、管理タイマレジスタ651と、管理タイマ閾値レジスタ652を備えている。管理タイマレジスタ651には、上記エントリ検索テーブル52のエントリ領域に対応する2048個のタイマレジスタ領域が設けられ、これらのタイマレジスタ領域にタイマのカウント値が記憶される。管理タイマ閾値レジスタ652には、上記タイマの最大カウント値(タイムアウト値)が記憶される。
 タイマ管理部62は、エントリ検索テーブル52に記憶された検索条件が使用中かどうかをタイマを用いて監視するもので、以下の処理を行う機能を有する。
 (1) 有効管理テーブル51上で有効ビット“1”が設定されたとき、有効ビット領域に対応した検索条件に対応するタイマレジスタ領域に、管理タイマ閾値レジスタ652の最大カウント値をセットし、上記更新タイマ管理部63からデクリメント要求が出力されるごとに上記タイマレジスタ領域のカウント値をデクリメントする処理。
 (2) 上記デクリメント処理の実行期間中、つまりタイマの計時中に、上記検索処理部61から受信パケットの通信パラメータが検索条件と一致したことを表す一致情報が通知されると、この時点で上記タイマレジスタ領域のカウント値を管理タイマ閾値レジスタ652の最大カウント値に戻す処理。
 (3) 上記デクリメント処理の実行期間中に、上記検索処理部61から一致情報が通知されずに上記タイマレジスタ領域のカウント値が「-1」になると、これをタイムアウトと見なして、管理タイマレジスタ651の該当するタイマ値を「0」に設定し、さらにタイムアウト管理テーブル66内の対応するエントリタイムアウトレジスタ661に、タイムアウトしたことを表す情報“1”を記憶させる処理。
 次に、以上のように構成されたパケット転送処理装置による検索条件の使用状況監視動作を説明する。図3乃至図5はタイマ管理部62の処理手順と処理内容を示すフローチャートである。
 タイマ管理部62は、図3に示すようにステップS51において、対応する有効ビット領域に有効ビット“1”が設定されている検索条件に対するアクセスを監視すると共に、ステップS52において検索処理部61からの有効な検索結果の出力を監視している。この状態で、例えば通信開始に伴い有効管理テーブル51に“1”又は“0”が書き込まれるか、或いは検索処理部61から有効な検索結果が通知されたとする。
 そうするとタイマ管理部62は、処理をステップS53に移行して管理タイマレジスタテーブル65に対するアクセスが可能か否かを判定し、アクセスが不可能であればアクセス可能になるまで待機する。この状態で、管理タイマレジスタ651のタイマ値のデクリメント処理等が終了し、管理タイマレジスタテーブル65に対するアクセスが可能になると、タイマ管理部62は処理をステップS54に移行し、管理タイマレジスタ651の該当するタイマレジスタ領域に管理タイマ閾値レジスタ652の最大カウント値、例えば図2では“200”をタイマ値としてセットする。
 以上述べた管理タイマレジスタ651へのタイマ値のセットは、後述するタイマの計時期間中に、有効管理テーブル51に“1”又は“0”が書き込まれるか、或いは検索処理部61から有効な検索結果が通知された場合にも行われる。すなわち、タイマは、有効管理テーブル51の該当する有効ビット領域に“1”又は“0”が書き込まれるか、或いは検索処理部61から有効な検索結果が通知されるごとに、最初から計時動作をやり直す。
 更新タイマ管理部63は、図5に示すように先ずカウンタ642をリセットした後、ステップS71により当該カウンタ642を使用してシステムクロックのカウントを開始し、そのカウント値がタイマ値レジスタ641に記憶された値に達したか否かをステップS72により監視する。そして、カウンタ642のカウント値がタイマ値レジスタ641のタイマ値“133000000”に達すると、更新タイマ管理部63は、ステップS73によりタイマ管理部62に対しデクリメント要求を出力する。以後、上記ステップS71~ステップS73の処理を繰り返す。したがって、更新タイマ管理部63からは、上記タイマ値とシステムクロックの周期により決まる時間間隔でデクリメント要求が出力される。例えば、システムクロックが133MHzで、かつタイマ値が“133000000”であれば、更新タイマ管理部63からは1秒ごとにデクリメント要求が出力される。
 タイマ管理部62は、上記更新タイマ管理部63からデクリメント要求が出力されるごとに、以下のようにタイマ値のデクリメント処理、つまりタイマの計時処理を実行する。すなわち、タイマ管理部62は、図4に示すように先ずステップS61により管理タイマレジスタ651のエントリ番号を「0」に初期設定した後、ステップS62においてエントリ番号が最大値「2047」+1である「2048」に達したか否かを判定する。
 そして、エントリ番号が最大値+1である「2048」に達していなければ、タイマ管理部62は、ステップS63において管理タイマレジスタテーブル65に対するアクセスが可能か否かを判定し、アクセスが不可能であればアクセス可能になるまで待機する。この状態で、管理タイマレジスタ651へのタイマの最大カウント値の設定処理等が終了し、管理タイマレジスタテーブル65に対するアクセスが可能になると、タイマ管理部62は処理をステップS64に移行し、管理タイマレジスタ651のエントリ番号「0」に対応するタイマレジスタ領域のカウント値、つまりタイマ値をデクリメント(-1)する。そして・BR>Aタイマ管理部62は、このデクリメント後のカウント値が“0”以上であるか否かをステップS65で判定する。デクリメント後のカウント値が“0”以上であれば、タイマ管理部62は、処理をステップS66に移行して、タイムアウト管理テーブル66の該当するエントリタイムアウトレジスタ661の領域に、まだ計時中であることを示す“0”を記憶させる。
 そうしてエントリ番号「0」に対応するタイマのデクリメント処理が終了すると、次にタイマ管理部62はステップS68によりエントリ番号をインクリメント(+1)して処理をステップS62に戻す。そして、ステップS62~ステップS66およびステップS68によりエントリ番号「1」のタイマのデクリメント処理を実行する。以後同様に、タイマ管理部62は、ステップS62においてエントリ番号が最大値である「2047」を超えるまで、上記ステップS62~ステップS66およびステップS68により各エントリ番号に対応するタイマ値のデクリメント処理を繰り返し実行する。そして、エントリ番号が「2047」を超えると、タイマ管理部62はデクリメント処理を終了する。
 さて、上記デクリメント処理の結果、あるエントリ番号に対応するタイマ値が「-1」になったとする。タイマ管理部62は、このタイマ値が「-1」になったことをステップS65で検出すると、これをタイムアウトと見なして、ステップS67により管理タイマレジスタ651の該当するタイマ値を「0」に設定し、さらにタイムアウト管理テーブル66内の対応するエントリタイムアウトレジスタ661に、タイマがタイムアウトしたことを表す情報“1”を記憶させる。
 制御部20は、上記タイムアウト管理テーブル66のエントリタイムアウトレジスタ661に記憶された情報、つまりタイマが計時中であるか又はタイムアウトしたかを表す情報に基づいて、有効管理テーブル51の有効ビット領域を変更する処理を実行する。またそれと共に、制御部20は、エントリ検索テーブル52から空きエントリ領域を検出して、この空きエントリ領域に新たな通信のための検索条件を設定する処理を実行する。
 この空きエントリ領域の検出及び検索条件の設定を行うための構成及び方法には、次の2つが考えられる。
 第1の構成及び方法は、タイムアウト管理テーブル66に集計レジスタを設け、制御部20がこの集計レジスタの出力をもとに空きエントリ領域を特定するものである。図6Aは、この場合における集計レジスタ67の構成をエントリタイムアウトレジスタ661とともに示す回路図である。
 すなわち、エントリタイムアウトレジスタ661の2048個のビット領域は複数のグループに分割され、これらのグループごとに論理和回路671-0~671-63(以下、これらを総称して論理和回路671と呼ぶ)が設けられている。これらの論理和回路671はそれぞれ、上記エントリタイムアウトレジスタ661の該当グループに属するビット領域からタイムアウトの有無を表すビットデータを取り込み、これらのビットデータの論理和データを出力する。上記論理和回路671はさらに複数のブロックに分割され、これらのブロックごとにタイムアウト集約レジスタ672-0および672-1が設けられている。これらのタイムアウト集約レジスタ672-0および672-1には、当該ブロックにそれぞれ属する上記論理和回路671-0~671-31および論理和回路671-32~671-63からそれぞれ出力された論理和データが記憶される。このとき、上記論理和回路671のブロック分けにおいては、各ブロックにおける論理和データのビット数が制御部20のCPUのアーキテクチャに応じて決定される。例えば、CPUが32bitアーキテクチャであれば、論理和回路671は32個が1ブロックとなるように分けられる。
 制御部20は、先ず上記タイムアウト集約レジスタ672-0および672-1からそれぞれ32個分の論理回路671-0~671-31の論理和データおよび32個分の論理和回路671-32~671-63の論理和データを読み出し、これらの論理和データの中にタイマがタイムアウトしたことを表すビット“1”が含まれているか否かを判定する。例えば、制御部20は、各タイムアウト集約レジスタの値が「0」か否かを判定する。この判定の結果、タイマがタイムアウトしたことを表すビット“1”が含まれるブロックが見つかると、制御部20は、次にその論理和データからタイムアウトビット“1”のビット位置を特定して、この特定したビット位置が属するグループを選択する。そして、制御部20は、この選択されたグループに属する上記エントリタイムアウトレジスタ661のビット領域からビットデータを読み出し、この読み出したビットデータをもとにタイムアウトしたエントリ領域を空きエントリ領域として検出する。
 制御部20は、エントリ検索テーブル52内の、上記空きエントリ領域として検出されたエントリ領域に、新たな通信に必要な検索条件を書き込む。またそれと共に、制御部20は、エントリ結果テーブル53内の上記エントリ領域と対応する領域に通過/廃棄情報及び変換アドレスを書き込む。さらに、制御部20は、有効管理テーブル51内の上記エントリ領域と対応する有効ビット領域に、有効ビット“1”を書き込む。
 第2の構成及び方法は、タイムアウトしたタイマに対応するエントリ領域の番号をFIFO(First in First out)メモリを用いて管理するものである。
 すなわち、図6Bに示したように、検索部6′のタイムアウト管理テーブル66′内にFIFOメモリ68が設けられる。あるいは、図6Cに示したように、タイムアウト管理テーブル66とは独立して検索部6"内にFIFOメモリ68が設けられる。そして、タイマ管理部62は、タイマがタイムアウトしたときに、このタイムアウトしたタイマに対応するエントリ領域の番号(識別情報)を上記FIFOメモリ68に記憶させる。
 制御部20は、空きエントリ領域を特定する際に、上記FIFOメモリ68からその記憶順序の早いエントリ領域の番号を読み出し、この読み出した番号により表されるエントリ領域を空きエントリ領域として特定する。そして、制御部20は、エントリ検索テーブル52内の、上記空きエントリ領域として検出されたエントリ領域に、新たな通信に必要な検索条件を書き込む。またそれと共に、制御部20は、エントリ結果テーブル53内の上記エントリ領域と対応する領域に通過/廃棄情報及び変換アドレスを書き込む。さらに、制御部20は、有効管理テーブル51内の上記エントリ領域と対応する有効ビット領域に、有効ビット“1”を書き込む。
 以上詳述したようにこの実施形態では、エントリ検索テーブル52の各エントリ領域に対応してその使用時間を監視するためのタイマを管理タイマレジスタ651に設ける。そして、タイマ管理部62の制御の下で、有効管理テーブル51に“1”又は“0”が書き込まれるか或いは検索処理部61から有効な検索結果が通知されるごとに、上記タイマに計時動作を開始させる。また、上記タイマの計時時間が予め設定したタイムアウト時間を超えたとき、そのタイムアウトした旨の情報をタイムアウト管理テーブル66の該当するレジスタ領域に記憶させるようにしている。
 したがって、制御部20は、通信開始時に上記タイムアウト管理テーブル66に記憶されたタイムアウトの結果を表す情報をもとに、上記エントリ検索テーブル52中の空きエントリ領域を特定することが可能となり、この検出された空きエントリ領域にこれ以降の通信に必要な検索条件を記憶させることができる。
 このため、通信期間中に制御部20がパケット転送処理に関与しない場合でも、制御部20はエントリ検索テーブル52中の空きエントリ領域を把握して、エントリ検索テーブル52における検索条件のエントリを動的に管理することが可能となる。この結果、エントリ検索テーブル52のエントリ領域の利用効率は高められ、エントリ検索テーブル52のメモリ容量を削減することができる。
 しかもこの実施形態では、タイムアウト管理テーブル66に集計レジスタ67を設け、制御部20がこの集計レジスタ67の出力をもとに空きエントリ領域を特定するようにしている。このため、空きエントリ領域を特定する際に制御部20は、空きのエントリ領域を特定する際の絞り込みを二段階に行うことができる。したがって、エントリ検索テーブル52のすべてのエントリ領域について順にその有効/無効を判定する場合に比べ、空きのエントリ領域を特定するために要する処理ステップ及び時間を大幅に短縮することができる。例えば、エントリ検索テーブルが2048個のエントリ領域を備える場合、タイムアウトしたエントリ領域の検索には、従来であれば最長64(0でない32bitレジスタを検索)+32(0でない32bitレジスタ内のビット検索)=96ステップの処理が必要である。これに対して、本実施形態であれば、処理に必要なステップ数を1+32+32=65ステップに削減することが可能となる。
 また、タイムアウトしたタイマに対応するエントリ領域の番号をFIFOメモリ68を用いて管理すると、制御部20はこのFIFOメモリ68からエントリ領域の番号を読み出すだけで、空きエントリ領域の探索処理を行うことなく、空きエントリ領域をさらに簡単かつ短時間に特定することができる。
 (第2の実施形態)
 次に、この発明の第2の実施形態として、エントリ検索テーブルのメモリ容量を削減するための実施形態を説明する。
 第2の実施形態は、NAPT(Network Address Port translation)やパケットフィルタリングを行う場合のエントリ検索テーブルに対する検索処理を、双方向検索により行うようにしたものである。
 図7Aは、双方向検索に対応するエントリ検索テーブルの構成例を示すものである。なお、ここでは2つのインタフェース間でパケットが転送されることを想定し、それぞれのインタフェースをインタフェース0/インタフェース1として説明を行う。また、この実施形態においてもエントリ検索テーブル等には図2に示した符号を使用して説明を行う。
 インタフェース0で受信されたパケットの通信パラメータと一致する検索条件をエントリ検索テーブル52から検索する場合には、検索処理部61は、受信パケットのヘッダに含まれる宛先IPアドレス/送信元IPアドレス/宛先ポート番号/送信元ポート番号/プロトコル番号を、エントリ検索テーブル52のエントリ領域に検索条件として記憶されたIPアドレス0/IPアドレス1/ポート番号0/ポート番号1/プロトコル番号と比較する。
 パケットフィルタリングやパケット分類のためにこの検索条件を使用する場合には、QoS部7は、上記通信パラメータと一致した検索条件に対応付けられたエントリ結果テーブル53の内容に従い、受信パケットに対し通過/廃棄/クラス分け等の処理を行う。
 NAPTの場合には、IPアドレス2/IPアドレス3,ポート番号2/ポート番号3が、NAPT変換後の宛先IPアドレス/送信元IPアドレス/宛先ポート番号/送信元ポート番号として使われる。
 逆に、インタフェース1で受信されたパケットの通信パラメータと一致する検索条件を検索する場合には、検索処理部61は、受信パケットのヘッダに含まれる宛先IPアドレス/送信元IPアドレス/宛先ポート番号/送信元ポート番号/プロトコル番号を、エントリ検索テーブル52に検索条件として記憶されたIPアドレス3/IPアドレス2/ポート番号3/ポート番号2/プロトコル番号と比較する。そして、QoS部7は、通信パラメータに一致した検索条件と対応付けてエントリ結果テーブル53に記憶された通過/廃棄情報に従い、当該受信パケットに対する処理を決定する。
 NAPTの場合には、IPアドレス1/IPアドレス0/ポート番号1/ポート番号0が、それぞれNAPT変換後の宛先IPアドレス/送信元IPアドレス/宛先ポート番号/送信元ポート番号として使われる。
 このようにエントリ検索テーブル52のエントリ領域に記憶された検索条件に対し双方向に検索することで、エントリ検索テーブル52のエントリ領域を減らす。これにより、エントリ検索テーブル52のメモリ容量を削減することができる。
 エントリ検索テーブル52のメモリ容量をさらに削減するためのエントリ検索テーブルの構成を図7Bに示す。
 インタフェース0で受信されたパケットのヘッダに含まれる通信パラメータと一致する検索条件をエントリ検索テーブル52から検索する場合、検索処理部61は、受信されたパケットのヘッダに含まれる宛先IPアドレス/送信元IPアドレス/宛先ポート番号/送信元ポート番号/プロトコル番号を、エントリ検索テーブル52に検索条件として記憶されたIPアドレス1/IPアドレス0/ポート番号1/ポート番号0/プロトコル番号と比較する。
 この場合も、先に述べた図7Aの場合と同様に、QoS部7は、通信パラメータと一致した検索条件に対応付けてエントリ結果テーブル53に記憶されている通過/廃棄情報に従い、当該受信パケットの動作を決定する。
 NAPTの場合には、IPアドレス2/ポート番号2がNAPT変換後の宛先IPアドレス/宛先ポート番号として使われる。
 逆に、インタフェース1で受信されたパケットのヘッダに含まれる通信パラメータに一致する検索条件をエントリ検索テーブル52から検索する場合には、検索処理部61は、受信されたパケットのヘッダに通信パラメータとして含まれる宛先IPアドレス/送信元IPアドレス/宛先ポート番号/送信元ポート番号/プロトコル番号を、エントリ検索テーブル52に検索条件として記憶されたIPアドレス0/IPアドレス2/ポート番号0/ポート番号2/プロトコル番号と比較する。この場合も、先に述べた図7Aの場合と同様に、QoS部7は、通信パラメータと一致した検索条件に対応付けてエントリ結果テーブル53に記憶されている通過/廃棄情報に従い、当該受信パケットの動作を決定する。
 NAPTの場合には、IPアドレス1/ポート番号1がNAPT変換後の送信元IPアドレス/送信元ポート番号として使われる。
 このようにすることで、エントリ検索テーブル52のエントリ領域をさらに減らして、メモリ容量を削減することができる。
 なお、エントリ検索テーブル52の検索は、パケットがどのインタフェースで受信されたものなのかを判定することなく行うことも可能である。
 例えば、受信されたパケットのヘッダに通信パラメータとして挿入された宛先IPアドレス/送信元IPアドレス/宛先ポート番号/送信元ポート番号/プロトコル番号を、検索条件A(エントリ検索テーブル52のIPアドレス0/IPアドレス1/ポート番号0/ポート番号1/プロトコル番号)、及び検索条件B(エントリ検索テーブル52のIPアドレス3/IPアドレス2/ポート番号3/ポート番号2/プロトコル番号)とそれぞれ比較する。
 そして、パケットフィルタリングやパケット分類を目的として上記検索条件を使用して検索する場合には、受信パケットの通信パラメータが上記いずれかの検索条件と一致した場合に、QoS部7は、この一致した検索条件に対応付けてエントリ結果テーブル53に記憶された通過/廃棄情報に従い、通過/廃棄/クラス分け等を行う。
 NAPTの場合には、通信パラメータと一致した検索条件に応じてパケットの書き換え情報が変わる。例えば、通信パラメータが検索条件Aに一致した場合には、IPアドレス2/IPアドレス3/ポート番号2/ポート番号3がNAPT変換後の宛先IPアドレス/送信元IPアドレス/宛先ポート番号/送信元ポート番号として使われる。また、通信パラメータが検索条件Bに一致した場合、IPアドレス1/IPアドレス0/ポート番号1/ポート番号0がNAPT変換後の宛先IPアドレス/送信元IPアドレス/宛先ポート番号/送信元ポート番号として使われる。
 これらはいずれも、通信パラメータと検索条件の比較を行う比較部の回路規模を増大させる。しかし、検索ルール数(エントリ検索テーブル52の総エントリ数)を1/2にすることが可能になるので、必要とされる検索条件の数が多い場合に特に有効である。
 以上の説明はIPv4の場合であって、2個の検索条件を記憶するために二つのエントリ領域が用いられる(図8の上側に示したIPv4用のエントリ検索テーブルを参照)。
 一方、IPv6の場合は、指定すべきアドレス長が非常に長い。この場合には、2個のエントリ領域を使うことによって、エントリ検索テーブル52のメモリ容量を削減することができる。
 例えば、図8の下側に示すようにIPv6用のエントリ検索テーブルを構成する。すなわち、二つのエントリ領域に含まれるIPアドレス0/IPアドレス1/IPアドレス2/ポート番号0/ポート番号1の領域を使って、送信元IPv6アドレスおよび宛先IPv6アドレスを設定する。また、二つのエントリ領域に含まれるポート番号2の領域を使って、送信元ポート番号および宛先ポート番号を設定する。さらに、二つのエントリ領域に含まれるプロトコル番号の領域を使って、プロトコル番号を設定する。これにより、IPv6パケットの送信元IPv6アドレス/宛先IPv6アドレス/送信元ポート番号/宛先ポート番号/プロトコル番号を設定することが可能となる。
 以上の例では、両方のエントリ領域に同じプロトコル番号が存在することになる。しかし、IPv4の場合に用いられる設定(アドレス等の割り付け)に従って、一つ一つのエントリ領域を用いて送信元IPv6アドレス/宛先IPv6アドレス、送信元ポート番号/宛先ポート番号およびプロトコル番号を設定する場合、エントリ検索テーブルにおいて使われない領域が大きくなる。それに比べれば、双方のエントリ領域に同じプロトコル番号が存在するほうがエントリ検索テーブルを有効に利用することができる。
 また、このIPv6用のエントリ検索テーブルに対する検索手段としては、以下のような構成が考えられる。すなわち、検索条件ごとにIPv4用の検索条件かIPv6用の検索条件かを指定する。IPv4パケットの場合には、先に説明したように検索処理が行われる。通常、高速検索を行う場合にはパケットの通信パラメータと検索条件とを比較するための回路を複数用いる。
 例えば図9に示すように、検索部6において、読み出し回路611によりエントリ検索テーブルから偶数番目の検索条件及び奇数番目の検索条件をそれぞれ読み出し、これらをそれぞれ比較部612内のサブ比較部6121,6122に与える。そうすることで、パケットの通信パラメータと検索条件との比較処理を平行して行う。
 すなわち、サブ比較部6121では、受信パケットの送信元IPv6アドレスおよび宛先IPv6アドレスがそれぞれエントリ検索テーブル52のIPv6アドレス0と比較される。また、サブ比較部6121では、受信パケットの送信元ポート番号および宛先ポート番号がそれぞれエントリ検索テーブル52のポート番号2と比較される。さらに、サブ比較部6121では、受信パケットのプロトコル番号が、エントリ検索テーブル52のプロトコル番号と比較される。同様に、サブ比較部6122では、受信パケットの送信元IPv6アドレスおよび宛先IPv6アドレスが、それぞれエントリ検索テーブル52のIPv6アドレス1と比較される。また、サブ比較部6122では、受信パケットの送信元ポート番号および宛先ポート番号がそれぞれエントリ検索テーブル52のポート番号2と比較される。さらに、サブ比較部6122では、受信パケットのプロトコル番号がエントリ検索テーブル52のプロトコル番号と比較される。
 そして、これらの比較結果は判定回路6123に入力される。判定回路6123は、IPv4パケットの場合には、サブ比較部6121/サブ比較部6122のそれぞれの比較結果を独立して評価する。すなわち、サブ比較部6121/サブ比較部6122の双方が受信パケットの通信パラメータと検索条件の不一致を示している場合、判定回路6123は、不一致を示す判定結果を出力する。サブ比較部6121/サブ比較部6122のいずれか一方が受信パケットの通信パラメータと検索条件の一致を示している場合、判定回路6123は、一致を示す比較結果を出力しているサブ比較部に対応した偶数番目のエントリ領域または奇数番目のエントリ領域を示す判定結果を出力する。サブ比較部6121/サブ比較部6122の双方が受信パケットの通信パラメータと検索条件の一致を示している場合、判定回路6123は、検索条件の優先度に従い、サブ比較部6121或いはサブ比較部6122に対応した偶数番目のエントリ領域または奇数番目のエントリ領域を示す判定結果を出力する。
 一方、IPv6パケットの場合には、サブ比較部6121において受信パケットの宛先IPv6アドレス/宛先ポート番号/プロトコル番号が偶数番目の検索条件と一致し、かつサブ比較部6122において受信パケットの送信元IPv6アドレス/送信元ポート番号/プロトコル番号が奇数番目の検索条件と一致した場合に、判定回路6123は受信パケットの通信パラメータと検索条件が一致したと判断する。
 同様に、サブ比較部6121において受信パケット情報の送信元IPv6アドレス/送信元ポート番号/プロトコル番号が偶数番目の検索条件と一致し、かつサブ比較部6122において受信パケットの宛先IPv6アドレス/宛先ポート番号/プロトコル番号が奇数番目の検索条件と一致した場合に、判定回路6123は受信パケットの通信パラメータと検索条件が一致したと判断する。
 このように構成することで、IPv6パケットとIPv4パケットが混在する場合でも、エントリ検索テーブル52のメモリ容量の最適化が図れる。
 (その他の実施形態)
 なお、この発明は上記実施形態に限定されるものではない。例えば、パケット転送部10の構成として、図10にパケット転送部10′として示すように、検索部6から出力された検索結果をフレーム生成部8に供給し、このフレーム生成部8から出力された送出フレーム情報をQoS部7に供給するものであってもよい。
 この場合、フレーム受信部1で受信された受信パケットは、パーサ4および検索部6を介してフレーム生成部8まで送られる。そして、検索部6から出力される検索結果がパケットの廃棄を示している場合、フレーム生成部8は受信パケットを廃棄する。これに対して、検索結果がパケットの廃棄を示していない場合、フレーム生成部8は、受信パケットのヘッダのMACアドレス及びIPアドレス等を書き換えたパケットを生成する等の処理を行う。次に、フレーム生成部8は、生成されたパケットをバッファ管理部2経由でパケットバッファ3に記憶させ、送出フレーム情報をQos部7へ出力する。以上の構成を採ることで、廃棄されるパケットをパケットバッファ3に記憶させる必要がなくなるため、パケットバッファ3をより有効に利用できる。
 また、前記各実施形態では、検索部6から検索結果(通過/廃棄ビット及び変換アドレス)を出力するようにした。しかし、検索部6からはエントリ番号を出力して、フレーム生成部8又はQoS部7が検索テーブル5内のエントリ結果テーブル53にアクセスし、検索部6から出力されたエントリ番号に対応する通過/廃棄ビット及び変換アドレスを取得して、取得した通過/廃棄ビット及び変換アドレスを出力するようにしてもよい。さらに、前記各実施形態では、エントリ結果テーブル53から、検索結果を表す情報として、通過/廃棄の設定情報及び変換後アドレスを出力するようにした。しかし、これらの他に、「特定インタフェースから出力する」、「廃棄する」、「品質クラスを設定する」、「IPアドレスやポート番号を書き換える」と云った情報を出力するようにしてもよい。これらの情報は、フレーム生成部8或いはQoS部7に通知され、フレーム生成部8或いはQoS部7が当該パケットに対する操作を行う。
 なお、上述したパケット転送処理装置を構成する各部は、専用のハードウェアにより実現する形態のほか、メモリおよびCPUなどを備えたコンピュータシステムで構成し、それら各部の処理を実現するためのプログラムをメモリにロードして実行することで、それらの機能を実現させる形態であっても良い。また、このプログラムをコンピュータ読み取り可能な記録媒体に記録しておき、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませて実行するようにしても良い。
 ここで言うコンピュータシステムとは、オペレーティングシステムや周辺機器等のハードウェアを含む。また、コンピュータ読み取り可能な記録媒体とは、フレキシブルディスク,光磁気ディスク,ROM(Read Only Memory),CD(Compact Disc)-ROM等の可搬媒体,コンピュータシステムに内蔵されるハードディスク等の記憶装置を指す。上記プログラムは、前述した機能の一部を実現するためのプログラムであっても良い。あるいは、上記プログラムは、コンピュータシステムにすでに記録されているプログラムとの組み合わせで前述した機能を実現できるプログラム、いわゆる差分プログラムであっても良い。
 その他、検索テーブルに設けられるテーブルの種類やその構成、検索部及びタイマ管理部の処理手順及び処理内容等についても、この発明の要旨を逸脱しない範囲で種々変形して実施可能である。
 要するにこの発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の変形を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
 この発明は、例えば、IP網で使用されるルータで利用可能である。この発明によれば、通信期間の終了を確実かつ効率よく検出できる。したがって、検索テーブルにおける検索ルールの有効/無効の管理を効果的に行え、限りのある検索テーブルのエントリ領域をさらに有効に使用することが可能となる。
 1…フレーム受信部、2…バッファ管理部、3…パケットバッファ、4…パーサ、5…検索テーブル、6,6′,6"…検索部、7…QoS部、8…フレーム生成部、9…フレーム送信部、10,10′…パケット転送部、20…制御部、30…バス、51…有効管理テーブル、52…エントリ検索テーブル、53…エントリ結果テーブル、61…検索処理部、62…タイマ管理部、611…読み出し回路、612…比較部、6121,6122…サブ比較部、6123…判定回路、63…更新タイマ管理部、64…更新タイマ管理テーブル、641…タイマ値レジスタ、642…カウンタ、65…管理タイマレジスタテーブル、651…管理タイマレジスタ、652…管理タイマ閾値レジスタ、66,66′…タイムアウト管理テーブル、661…エントリタイムアウトレジスタ、67…集計レジスタ、671-0,671-1,671-31,671-32,671-63…論理和回路、672-0,672-1…タイムアウト集約レジスタ、68…FIFOメモリ。

Claims (13)

  1.  複数のパケット検索条件を記憶する複数のエントリ領域を有する検索テーブルと、
     パケットが受信されるごとに、前記受信したパケットの通信パラメータを前記検索テーブルに記憶された前記複数のパケット検索条件とそれぞれ比較し、前記通信パラメータに一致するパケット検索条件に対応した検索結果を出力する検索処理部と、
     前記検索結果に基づいて前記受信したパケットの転送又は廃棄処理を行う転送処理部と、
     前記検索テーブルに記憶された前記複数のパケット検索条件の各々に対応付けて、前記パケット検索条件が有効であるか無効であるかを設定する情報を記憶する有効管理テーブルと、
     前記複数のエントリ領域の各々に対応したタイマと、
     有効に設定された前記有効管理テーブル上の情報に対応するパケット検索条件と通信パラメータが一致するパケットが受信されるごと、または、前記有効管理テーブルに前記情報が書き込まれるごとに、前記タイマにより計時動作を開始するタイマ管理部と、
     前記タイマごとに、前記タイマが計時動作中であるかタイムアウトしたかを表す情報を記憶するタイムアウト管理テーブルと、
     前記タイマの計時時間が予め設定したタイムアウト時間を超えたとき、前記タイマがタイムアウトしたことを表す情報を前記タイムアウト管理テーブルに記憶させると共に、前記有効管理テーブルに記憶された前記情報のうち、タイムアウトした前記タイマに対応する情報を有効から無効に変更する有効無効管理部と、
     通信開始時に、前記タイムアウト管理テーブルに記憶された前記情報をもとに前記検索テーブル中の空きのエントリ領域を検出し、前記検出された空きのエントリ領域に前記通信に必要なパケット検索条件を記憶させる制御部と
     を具備するパケット転送処理装置。
  2.  前記タイムアウト管理テーブルは、
      前記検索テーブルの各エントリ領域に対応付けて設けられた複数のビット領域を有し、前記タイマが計時動作中であるかタイムアウトしたかを表すビットデータを、前記複数のビット領域のうち、前記タイマに対応するビット領域に記憶するタイムアウトレジスタと、
      前記タイムアウトレジスタの前記複数のビット領域を分割した複数のグループに対応付けて設けられ、各グループに含まれる複数のビット領域に記憶されたビットデータの論理和データを出力する複数の論理和回路と、
      前記複数の論理和回路を、前記制御部のプロセッサが同時に処理可能なビット数ずつ分割した複数のブロックに対応付けて設けられ、各ブロックに含まれる論理和回路から出力される論理和データを記憶する複数の集約レジスタと
    を備え、
     前記制御部は、前記空きのエントリ領域を検出する際に、前記集約レジスタに記憶された前記論理和データをもとに前記タイマがタイムアウトしたことを示すビットを含むブロックを選択し、前記選択されたブロック内における前記タイマがタイムアウトしたことを示すビットの位置から前記タイマがタイムアウトしたことを示すビットの位置を含むグループを選択し、前記選択されたグループに属する前記タイムアウトレジスタのビット領域からビットデータを読み出し、読み出した前記ビットデータをもとにタイムアウトした前記タイマに対応するエントリ領域を検出する
     請求項1記載のパケット転送処理装置。
  3.  前記タイマがタイムアウトしたときに、タイムアウトした前記タイマに対応する前記検索テーブルのエントリ領域の識別情報を順次記憶するメモリを備え、
     前記制御部は、前記空きのエントリ領域を検出する際に、前記メモリから記憶順序の早い順に前記エントリ領域の識別情報を読み出し、読み出した前記識別情報により表されるエントリ領域を前記空きのエントリ領域とする
     請求項1記載のパケット転送処理装置。
  4.  パケットが第1のインタフェースと第2のインタフェースとの間で転送され、
     前記検索テーブルに記憶される各パケット検索条件は、第1の検索条件,第2の検索条件および第3の検索条件を含み、
     前記検索処理部は、
      前記受信したパケットが前記第1のインタフェースで受信された第1のパケットである場合、前記第1のパケットの通信パラメータと前記第1の検索条件および前記第3の検索条件の組とを比較し、前記第1のパケットの前記通信パラメータが前記第1の検索条件および前記第3の検索条件の組に一致すれば前記検索結果を出力し、
      前記受信したパケットが前記第2のインタフェースで受信された第2のパケットである場合、前記第2のパケットの通信パラメータと前記第2の検索条件および前記第3の検索条件の組とを比較し、前記第2のパケットの前記通信パラメータが前記第2の検索条件および前記第3の検索条件の組に一致すれば前記検索結果を出力する
     請求項1~3のいずれか1項に記載のパケット転送処理装置。
  5.  前記検索処理部は、前記受信したパケットが前記第1のパケットである場合、前記第1のパケットに対するネットワークアドレスポート変換による変換後の通信パラメータとして前記第2の検索条件を出力し、前記受信したパケットが前記第2のパケットである場合、前記第2のパケットに対するネットワークアドレスポート変換による変換後の通信パラメータとして前記第1の検索条件を出力する
     請求項4記載のパケット転送処理装置。
  6.  パケットが第1のインタフェースと第2のインタフェースとの間で転送され、
     前記検索テーブルに記憶される各パケット検索条件は、第1の検索条件,第2の検索条件および第3の検索条件を含み、
     前記検索処理部は、前記受信したパケットが前記第1のインタフェースで受信されたか前記第2のインタフェースで受信されたかによらず、前記受信したパケットの通信パラメータと前記第1の検索条件および前記第3の検索条件の組とを比較するとともに、前記受信したパケットの前記通信パラメータと前記第2の検索条件および前記第3の検索条件の組とを比較し、前記通信パラメータが、前記第1の検索条件および前記第3の検索条件の組に一致するか、または、前記通信パラメータが前記第2の検索条件および前記第3の検索条件の組に一致すれば、前記検索結果を出力する
     請求項1~3のいずれか1項に記載のパケット転送処理装置。
  7.  前記検索処理部は、前記受信したパケットの通信パラメータが前記第1の検索条件および前記第3の検索条件の組に一致すれば、前記受信したパケットに対するネットワークアドレスポート変換による変換後の通信パラメータとして前記第2の検索条件を出力し、前記通信パラメータが前記第2の検索条件および前記第3の検索条件の組に一致すれば、前記変換後の通信パラメータとして前記第1の検索条件を出力する
     請求項6記載のパケット転送処理装置。
  8.  前記検索テーブルには、IPv4用のパケット検索条件の各々が1個のエントリ領域上に記憶され、IPv6用のパケット検索条件の各々が2個のエントリ領域上に記憶され、
     前記IPv6用のパケット検索条件は、IPv6のパケットの通信パラメータが有する第1のパラメータ,第2のパラメータおよび第3のパラメータにそれぞれ対応した第1の検索条件,第2の検索条件および第3の検索条件を有し、前記2個のエントリ領域のうち、偶数番目のエントリ領域に前記第1の検索条件および前記第3の検索条件が記憶され、奇数番目のエントリ領域に前記第2の検索条件および前記第3の検索条件が記憶され、
     前記検索処理部は、前記受信したパケットがIPv4のパケットか前記IPv6のパケットかに応じて、前記IPv4用のパケット検索条件の各々または前記IPv6用のパケット検索条件の各々と前記受信したパケットの前記通信パラメータとを比較する
     請求項1~7のいずれか1項に記載のパケット転送処理装置。
  9.  前記検索処理部は、
     前記受信したパケットの前記通信パラメータと前記偶数番目のエントリ領域のパケット検索条件とを比較して第1の比較結果を出力する第1の比較部と、
     前記通信パラメータと前記奇数番目のエントリ領域のパケット検索条件とを比較して第2の比較結果を出力する第2の比較部と、
     前記第1の比較結果および前記第2の比較結果に基づいて、前記通信パラメータに一致するパケット検索条件が検索されたかどうか判定する判定部と
    を備え、
     前記受信したパケットが前記IPv4のパケットである場合、
      前記判定部は、前記第1の比較結果および前記第2の比較結果の少なくとも一つが一致を示していれば、前記通信パラメータに一致するパケット検索条件が検索されたと判定し、
     前記受信したパケットが前記IPv6のパケットである場合、
      前記第1の比較部は、前記偶数番目のエントリ領域のパケット検索条件と前記第1のパラメータおよび前記第3のパラメータの組とを比較するとともに、前記偶数番目のエントリ領域のパケット検索条件と前記第2のパラメータおよび前記第3のパラメータの組とを比較し、
      前記第2の比較部は、前記奇数番目のエントリ領域のパケット検索条件と前記第1のパラメータおよび前記第3のパラメータの組とを比較するとともに、前記奇数番目のエントリ領域のパケット検索条件と前記第2のパラメータおよび前記第3のパラメータの組とを比較し、
      前記判定部は、前記偶数番目のエントリ領域のパケット検索条件が前記第1のパラメータおよび前記第3のパラメータの組に一致し、かつ、前記奇数番目のエントリ領域のパケット検索条件が前記第2のパラメータおよび前記第3のパラメータの組に一致するか、または、前記奇数番目のエントリ領域のパケット検索条件が前記第1のパラメータおよび前記第3のパラメータの組に一致し、かつ、前記偶数番目のエントリ領域のパケット検索条件が前記第2のパラメータおよび前記第3のパラメータの組に一致すれば、前記通信パラメータに一致するパケット検索条件が検索されたと判定する
     請求項8記載のパケット転送処理装置。
  10.  複数のパケット検索条件を検索テーブルの複数のエントリ領域に記憶する検索テーブル記憶過程と、
     パケットが受信されるごとに、前記受信したパケットの通信パラメータを前記検索テーブルに記憶された前記複数のパケット検索条件とそれぞれ比較し、前記通信パラメータに一致するパケット検索条件に対応した検索結果を出力する検索処理過程と、
     前記検索結果に基づいて前記受信したパケットの転送又は廃棄処理を行う転送処理過程と、
     前記検索テーブルに記憶された前記複数のパケット検索条件の各々に対応付けて、前記パケット検索条件が有効であるか無効であるかを設定する情報を有効管理テーブルに記憶する有効管理テーブル記憶過程と
     前記複数のエントリ領域の各々について、有効に設定された前記有効管理テーブル上の情報に対応するパケット検索条件と通信パラメータが一致するパケットが受信されるごと、または、前記有効管理テーブルに前記情報が書き込まれるごとに、対応するタイマにより計時動作を開始する計時過程と、
     前記タイマが計時動作中のとき計時中であることを表す情報をタイムアウト管理テーブルに記憶させ、前記タイマの計時時間が予め設定したタイムアウト時間を超えたとき、前記タイマがタイムアウトしたことを表す情報を前記タイムアウト管理テーブルに記憶させるタイムアウト管理テーブル記憶過程と、
     前記タイマの前記計時時間が前記タイムアウト時間を超えたとき、前記有効管理テーブルに記憶された前記情報のうち、タイムアウトした前記タイマに対応する情報を有効から無効に変更する有効管理テーブル変更過程と、
     通信開始時に、前記タイムアウト管理テーブルに記憶された前記情報をもとに前記検索テーブル中の空きのエントリ領域を検出し、前記検出された空きのエントリ領域に前記通信に必要なパケット検索条件を記憶させる検索条件記憶過程と
    を具備するパケット転送処理方法。
  11.  前記タイムアウト管理テーブル記憶過程は、
      前記タイマが計時動作中であるかタイムアウトしたかを表すビットデータを、前記検索テーブルの各エントリ領域に対応付けて設けられたタイムアウトレジスタの複数のビット領域のうち、前記タイマに対応するビット領域に記憶させるタイムアウトレジスタ記憶過程と、
      前記タイムアウトレジスタの前記複数のビット領域を複数のグループに分割し、グループごとに各グループに含まれる複数のビット領域に記憶されたビットデータの論理和データを求める論理和データ算出過程と、
      求められた複数の論理和データを、プロセッサが同時に処理可能なビット数ずつ複数のブロックに分割し、ブロックごとに各ブロックに含まれる論理和データを集約レジスタに集約して記憶させる集約過程と
    を備え、
     前記検索条件記憶過程は、
      前記空きのエントリ領域を検出する際に、前記集約レジスタに記憶された前記論理和データをもとに前記タイマがタイムアウトしたことを示すビットを含むブロックを選択するブロック選択過程と、
      前記選択されたブロック内における前記タイマがタイムアウトしたことを示すビットの位置から前記タイマがタイムアウトしたことを示すビットの位置を含むグループを選択するグループ選択過程と、
      前記選択されたグループに属する前記タイムアウトレジスタのビット領域からビットデータを読み出し、読み出した前記ビットデータをもとにタイムアウトした前記タイマに対応するエントリ領域を検出するエントリ領域検出過程と
    を備える
     請求項10記載のパケット転送処理方法。
  12.  前記タイマがタイムアウトしたときに、タイムアウトした前記タイマに対応する前記検索テーブルのエントリ領域の識別情報をメモリに順次記憶させる識別情報記憶過程を備え、
     前記検索条件記憶過程は、前記空きのエントリ領域を検出する際に、前記メモリから記憶順序の早い順に前記エントリ領域の識別情報を読み出し、読み出した前記識別情報により表されるエントリ領域を前記空きのエントリ領域とする
     請求項10記載のパケット転送処理方法。
  13.  請求項10~12のいずれか1項に記載のパケット転送処理方法をコンピュータに実行させるパケット転送処理プログラム。
PCT/JP2010/071460 2010-02-04 2010-12-01 パケット転送処理装置、方法及びプログラム WO2011096127A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011552665A JP5389193B2 (ja) 2010-02-04 2010-12-01 パケット転送処理装置、方法及びプログラム
US13/575,062 US8902756B2 (en) 2010-02-04 2010-12-01 Packet transfer processing device, packet transfer processing method, and packet transfer processing program
CN201080062742.7A CN102812675B (zh) 2010-02-04 2010-12-01 分组转送处理装置、方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010023251 2010-02-04
JP2010-023251 2010-02-04

Publications (1)

Publication Number Publication Date
WO2011096127A1 true WO2011096127A1 (ja) 2011-08-11

Family

ID=44355149

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2010/071460 WO2011096127A1 (ja) 2010-02-04 2010-12-01 パケット転送処理装置、方法及びプログラム

Country Status (4)

Country Link
US (1) US8902756B2 (ja)
JP (1) JP5389193B2 (ja)
CN (1) CN102812675B (ja)
WO (1) WO2011096127A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4861539B1 (ja) * 2010-06-02 2012-01-25 パナソニック株式会社 通信制御装置およびパケットフィルタリング方法
JP2013161122A (ja) * 2012-02-01 2013-08-19 Canon Inc データ処理装置、情報処理方法、及びプログラム
KR20190002712A (ko) 2016-06-23 2019-01-08 미쓰비시덴키 가부시키가이샤 침입 검지 장치 및 기억 매체에 저장된 침입 검지 프로그램

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006085374A1 (ja) * 2005-02-10 2006-08-17 Fujitsu Limited 通信装置
JP2007166514A (ja) * 2005-12-16 2007-06-28 Nippon Telegr & Teleph Corp <Ntt> 通信処理装置及び通信処理方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI246285B (en) * 2002-02-08 2005-12-21 Matsushita Electric Ind Co Ltd Gateway apparatus and its controlling method
JP3936883B2 (ja) * 2002-04-08 2007-06-27 株式会社日立製作所 フロー検出装置およびフロー検出機能を備えたパケット転送装置
US20040167897A1 (en) * 2003-02-25 2004-08-26 International Business Machines Corporation Data mining accelerator for efficient data searching
US7792133B2 (en) * 2003-05-29 2010-09-07 Nec Corporation Packet relay device and packet method, and program
JP4341413B2 (ja) * 2003-07-11 2009-10-07 株式会社日立製作所 統計収集装置を備えたパケット転送装置および統計収集方法
JP4365672B2 (ja) * 2003-12-04 2009-11-18 株式会社日立製作所 パケット通信ノード装置
CN100568851C (zh) 2005-12-31 2009-12-09 北京航空航天大学 一种防火墙分组过滤的方法
JP4137948B2 (ja) * 2006-02-14 2008-08-20 日本電信電話株式会社 パケット通過制御装置及びパケット通過制御方法
JP4881829B2 (ja) * 2007-10-03 2012-02-22 株式会社日立製作所 パケット転送システム
JP4663761B2 (ja) * 2008-06-20 2011-04-06 アラクサラネットワークス株式会社 パケット中継装置
JP2010211388A (ja) * 2009-03-09 2010-09-24 Canon Inc 検索装置及び検索方法
US8514714B2 (en) * 2009-10-06 2013-08-20 Electronics And Telecommunications Research Institute Device and method for providing forwarding information and QOS information in flow based network environment

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006085374A1 (ja) * 2005-02-10 2006-08-17 Fujitsu Limited 通信装置
JP2007166514A (ja) * 2005-12-16 2007-06-28 Nippon Telegr & Teleph Corp <Ntt> 通信処理装置及び通信処理方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4861539B1 (ja) * 2010-06-02 2012-01-25 パナソニック株式会社 通信制御装置およびパケットフィルタリング方法
JP2013161122A (ja) * 2012-02-01 2013-08-19 Canon Inc データ処理装置、情報処理方法、及びプログラム
US9952653B2 (en) 2012-02-01 2018-04-24 Canon Kabushiki Kaisha Data processing apparatus, information processing method, and storage medium
KR20190002712A (ko) 2016-06-23 2019-01-08 미쓰비시덴키 가부시키가이샤 침입 검지 장치 및 기억 매체에 저장된 침입 검지 프로그램

Also Published As

Publication number Publication date
CN102812675B (zh) 2015-05-13
JP5389193B2 (ja) 2014-01-15
JPWO2011096127A1 (ja) 2013-06-10
US8902756B2 (en) 2014-12-02
US20120294311A1 (en) 2012-11-22
CN102812675A (zh) 2012-12-05

Similar Documents

Publication Publication Date Title
US7787442B2 (en) Communication statistic information collection apparatus
US9727508B2 (en) Address learning and aging for network bridging in a network processor
TWI406133B (zh) 資料處理設備及資料傳送方法
EP1570361B1 (en) Method and apparatus for performing network processing functions
US7924868B1 (en) Internet protocol (IP) router residing in a processor chipset
US9596182B2 (en) Controlling non-congestion controlled flows
US10778721B1 (en) Hash-based ACL lookup offload
US8094670B1 (en) Method and apparatus for performing network processing functions
US9356844B2 (en) Efficient application recognition in network traffic
US10708272B1 (en) Optimized hash-based ACL lookup offload
Shi et al. NDN-DPDK: NDN forwarding at 100 Gbps on commodity hardware
KR20080083828A (ko) 상태기반 패킷필터링 장치 및 그 장치에서의 테이블 관리방법
US7188250B1 (en) Method and apparatus for performing network processing functions
JP2017143344A (ja) パケット伝送装置,制御装置,及びパケット伝送制御方法
JP5389193B2 (ja) パケット転送処理装置、方法及びプログラム
Raumer et al. Performance exploration of software-based packet processing systems
JP4263718B2 (ja) 通信処理装置及び通信処理方法
US9716673B2 (en) Packet storage method and packet storage apparatus
KR100864889B1 (ko) Tcp 상태 기반 패킷 필터 장치 및 그 방법
JP2008085886A (ja) パケット処理装置、パケット処理方法及びパケット処理プログラム
JP4340646B2 (ja) 通信処理回路、通信処理方法
JP5036752B2 (ja) インタネットワーク装置、及び、ローカルアドレス及び各ローカルアドレスと共に用いられるローカルアドレス内通信ポート番号と、グローバルアドレス及び各グローバルアドレスと共に用いられるグローバルアドレス内通信ポート番号とを相互に変換する方法
JP5581995B2 (ja) メッセージ受信装置およびマイクロコントローラ
JP4350713B2 (ja) データ転送装置およびデータ転送方法
JP2006174233A (ja) パケット処理装置

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 201080062742.7

Country of ref document: CN

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

Ref document number: 10845258

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011552665

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 13575062

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10845258

Country of ref document: EP

Kind code of ref document: A1