WO2011102312A1 - パケット転送装置、通信システム、処理規則の更新方法およびプログラム - Google Patents

パケット転送装置、通信システム、処理規則の更新方法およびプログラム Download PDF

Info

Publication number
WO2011102312A1
WO2011102312A1 PCT/JP2011/053025 JP2011053025W WO2011102312A1 WO 2011102312 A1 WO2011102312 A1 WO 2011102312A1 JP 2011053025 W JP2011053025 W JP 2011053025W WO 2011102312 A1 WO2011102312 A1 WO 2011102312A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
flow
processing rule
processing
unit
Prior art date
Application number
PCT/JP2011/053025
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 JP2012500583A priority Critical patent/JP5720668B2/ja
Priority to US13/191,341 priority patent/US8737215B2/en
Publication of WO2011102312A1 publication Critical patent/WO2011102312A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification

Definitions

  • the present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2010-031522 (filed on Feb. 16, 2010), the entire contents of which are incorporated herein by reference. Shall.
  • the present invention relates to a packet transfer device, a communication system, a processing rule updating method, and a program, and more particularly, a packet transfer device, a communication system, a processing rule updating method, and a program for processing a received packet in accordance with a processing rule suitable for the received packet.
  • a packet transfer device a communication system, a processing rule updating method, and a program for processing a received packet in accordance with a processing rule suitable for the received packet.
  • FIG. 18 shows a conceptual diagram of the OpenFlow switch.
  • the OpenFlow switch that functions as a forwarding node includes a secure channel for communication with the OpenFlow controller positioned as a control device, and operates according to a flow table that is appropriately added or rewritten from the OpenFlow controller.
  • a set of a matching rule (header field) that matches a packet header, an action that defines processing contents, and flow statistical information (counter) is defined (see FIGS. 19 and 20). .
  • FIG. 21 illustrates action names and action contents defined in Non-Patent Document 2.
  • OUTPUT is an action to be output to a designated port (interface).
  • SET_VLAN_VID to SET_TP_DST are actions for modifying the field of the packet header.
  • the OpenFlow switch when it receives a packet, it searches the flow table for an entry having a matching rule (see the header fields in FIGS. 19 and 20) that matches the header information of the received packet. When an entry that matches the received packet is found as a result of the search, the OpenFlow switch performs the processing content described in the action field of the entry on the received packet. On the other hand, if no entry matching the received packet is found as a result of the search, the OpenFlow switch forwards the received packet to the OpenFlow controller via the secure channel, and the source / destination of the received packet. To request the determination of the route of the packet based on the above, receive the flow entry that realizes this, and update the flow table. As described above, the OpenFlow switch performs packet transfer using an entry stored in the flow table as a processing rule.
  • a matching rule see the header fields in FIGS. 19 and 20
  • Non-Patent Documents 1 and 2 a flow entry (hereinafter referred to as a packet transfer device equivalent to the flow entry of Non-Patent Documents 1 and 2 when a communication is started is referred to as information referred to when a received packet process is determined. Processing rule ”) is set, and when the corresponding packet is not received for the period indicated by the expiration date (lifetime in FIG. 19) to be set separately, it is described that the corresponding entry is deleted (non- (See “Idle_Timeout and Hard_Timeout” on page 24 of Patent Document 2.)
  • Non-Patent Documents 1 and 2 there is a problem in that the processing rule that has already ended communication remains until the expiration date passes, and the storage area of the processing rule is compressed.
  • the processing rule whose communication has ended is one factor that reduces the search efficiency of the processing rule that matches the received packet in the packet transfer apparatus.
  • the present invention has been made in view of the above circumstances, and provides a packet transfer apparatus, a communication system, a processing rule update method, and a program capable of accurately deleting the above processing rules. .
  • processing of a received packet using a processing rule storage unit that stores a processing rule that defines processing contents in units of flows and a processing rule that matches the received packet from the processing rules.
  • the packet determination unit that extracts information for confirming the flow termination from the received packet
  • a flow end confirmation unit that deletes a processing rule corresponding to the packet transfer apparatus.
  • a communication system including the packet transfer device described above and a control device that sets a processing rule for the packet transfer device.
  • a packet transfer device comprising: a step of extracting information for confirming the end of the flow from the received packet, and confirming the end of the flow based on the extracted information And a step of deleting a processing rule corresponding to the flow from the processing rule storage unit.
  • This program can be recorded on a computer-readable storage medium. That is, the present invention can be embodied as a computer program product.
  • the present invention it is possible to delete from the processing rule storage unit of the packet transfer apparatus, even if the processing rule has not expired, the processing rule that is no longer necessary due to the end of communication.
  • the reason is that information for determining the end of the flow (end of communication) is extracted from the received packet, and a function for determining the end of the flow (end of communication) is added.
  • FIG. 1 It is a block diagram for demonstrating the outline
  • FIG. 10 is a continuation diagram of FIG. 9.
  • FIG. 11 is a continuation diagram of FIG. 10.
  • FIG. 12 is a continuation diagram of FIG. 11.
  • FIG. 13 is a continuation diagram of FIG. 12.
  • It is a flowchart for demonstrating the 2nd example of this invention. It is a figure for demonstrating step by step the memory content of the process rule memory
  • It is a conceptual diagram of the open flow switch of a nonpatent literature 1,2. It is a figure which shows the structure of the flow entry of the open flow switch of a nonpatent literature 1,2. It is a specific example of the flow table of the open flow switch of a nonpatent literature 1,2. It is an example of the action illustrated by the nonpatent literature 2.
  • a packet transfer apparatus 1 reads a processing rule storage unit 11 that stores a processing rule to be applied to a received packet, and reads and transfers a processing rule that matches the received packet from the processing rule storage unit.
  • the packet processing unit 12 that performs processing
  • the termination determination information extracting unit 13 that extracts information for confirming the end of the flow from the received packet, and the end of the flow is confirmed based on the extracted information
  • a flow end confirmation unit 14 for deleting a processing rule corresponding to the flow.
  • TCP Transmission Control Protocol
  • ACK packet communication occurs in the reverse direction of the flow after the FIN flag (flow in which the transmission source and the transmission destination are reverse). be able to.
  • TCP Transmission Control Protocol
  • HTTP Hypertext Transfer Protocol
  • IP Internet Protocol
  • the corresponding information is extracted by the termination determination information extraction unit 13 and sent to the flow termination confirmation unit 14 to determine whether or not the processing rule is unnecessary, and the unnecessary processing rule is deleted. It becomes possible to do.
  • the packet transfer device further includes a timeout determination unit that performs a timeout determination of the processing rule stored in the processing rule storage unit,
  • the flow termination confirmation unit causes the timeout determination unit to start timeout determination based on the information extracted by the termination determination information extraction unit, and deletes the processing rule determined as timeout by the timeout determination unit It is preferable to do.
  • the packet transfer apparatus further includes a packet storage unit for storing received packets, Extracting information for specifying the processing rule corresponding to the flow to which the received packet belongs and the flow in the opposite direction from the packet storage unit to the termination determination information extraction unit, and confirming the flow termination Can determine whether to delete the bidirectional processing rule.
  • the flow end confirmation unit determines the end of the flow using one or more of a FIN (Transmission Control Protocol) TCP flag, an RST flag, and a SYN flag extracted by the end point determination information extraction unit. Can be.
  • FIN Transmission Control Protocol
  • RST Remote Terminal
  • SYN Session Management Protocol
  • the packet transfer apparatus performs processing corresponding to a flow to which the received packet belongs and a flow in a direction opposite to the flow from the received packet and the received packet modified according to the processing rule. It is preferable to extract information for specifying a rule and determine deletion of the bidirectional processing rule.
  • the end of the flow can be determined by using any one or more of a TCP (Transmission Control Protocol) FIN flag, RST flag, or SYN flag.
  • TCP Transmission Control Protocol
  • Flow refers to communication from a specific source to a destination. That is, “flow” means a set of transmitted packets or the transmission itself. Further, “transmission source” and “transmission destination” do not necessarily mean one physical and logical destination. That is, communication from a specific subnet to another subnet may be collected and regarded as one flow. For this reason, the flow may be a set of more detailed flows.
  • Non-Patent Documents 1 and 2 a flow entry in which a part of a destination address, a source address, or the like is described with a wild card and a plurality of flows are combined into one corresponds to this.
  • FIG. 2 is a block diagram showing the configuration of the first embodiment of the present invention.
  • the packet transfer apparatus C1 of the present embodiment includes a packet receiving unit C10, a packet storage unit C11, a packet processing information extraction unit C12, a processing rule storage unit C13, and a processing rule search unit C14.
  • the packet receiving unit C10 receives a packet transmitted by another node, and temporarily stores the received packet in the packet storage unit C11.
  • the packet receiving unit C10 can also store reception status information such as an entry port (reception port ID information) at the same time.
  • reception port ID information reception port ID information
  • the packet receiving unit C10 notifies the packet processing information extracting unit C12 and the termination determining packet information extracting unit C17 that the packet has been received.
  • the packet storage unit C11 temporarily stores the packet until the packet received by the packet receiving unit C10 is transmitted by the packet transmitting unit C16.
  • the packet processing information extraction unit C12 uses the notification that the packet is received from the packet reception unit C10 as a trigger, and determines the processing contents to be applied to the packet from the packet storage unit C11. Information on the header field and reception status information (such as the ingress port (reception port ID information)) are extracted. The packet processing information extraction unit C12 outputs the extracted packet information to the processing rule search unit C14.
  • the information extracted by the packet processing information extraction unit C12 to determine the processing contents to be applied to the received packet is the same as the OpenFlow switch of Non-Patent Documents 1 and 2. it can.
  • ingress port (reception port ID information), Ethernet (registered trademark) source address, destination address, upper protocol type, IEEE 802.1Q compliant VLAN (Virtual LAN) TCI (Tag Control Information) VID (VLAN -ID), PCP (Priority Code Point), IP (Internet Protocol) source address, destination address, upper protocol type, TCP (Transmission Control Protocol) or UDP (User Datagram Protocol) source port, destination
  • the ingress port (reception port ID information) of the packet transfer device can be obtained from the reception status information, and others can be obtained from the header field of the received packet, the upper protocol header inside the packet, or the like.
  • the processing rule storage unit C13 stores processing rules that define processing contents to be applied to received packets in units of flows.
  • the configuration can be the same as the contents of the flow tables of Non-Patent Documents 1 and 2 shown in FIGS. 18 and 19, a header field for collating the received packet to determine the flow, and statistical information (counter ) And the processing content (action).
  • the header field of FIG. 19 includes an ingress port of the packet transfer device, an Ethernet (registered trademark) source address, a destination address, an upper protocol type, an IEEE 802.1Q-compliant VLAN VID, and a priority (PCP; priority code). Point), IP source address, destination address, upper protocol type, TCP or UDP source port, and destination port.
  • Ethernet registered trademark
  • PCP priority code
  • the counter (field) in FIG. 19 holds the number of received packets, the number of received bytes, and the lifetime of the rule, and is used as statistical information regarding the flow to which the packet belongs.
  • Modify-Field for changing packet information, and any number of actions can be registered.
  • any number of actions can be registered.
  • Modify-Filled actions include setting / changing VLAN ID and priority, removing VLAN header, changing Ethernet / IP source / destination address, changing TCP / UDP source / destination port, etc. (In addition, IP ToS (Type of Service) field changes, etc.).
  • the processing rule storage unit C13 is provided with an internal state information field used by the flow end confirmation unit C18 described later for determining the flow end for each processing rule (see “ FIN, reverse FIN, timeout reference "," SYN, timeout reference "of FIG. 15).
  • the processing rule search unit C14 determines an action (processing content) to be applied to the received packet based on the information passed from the packet processing information extraction unit C12, and outputs the action to the packet processing unit C15. More specifically, the processing rule search unit C14 searches the processing rule storage unit C13 for a processing rule that matches the information extracted from the received packet passed from the packet processing information extraction unit C12, and the packet processing unit C15. Output to. Here, when there is a processing rule that matches the received packet, the processing rule search unit C14 extracts the action (processing content) defined in the action field of the processing rule and outputs it to the packet processing unit C15.
  • the processing rule search unit C14 transmits the received packet or information extracted from the received packet to a predetermined control device (controller; see FIG. 18). Request creation / transmission of processing rules.
  • the processing rule search unit C14 registers the received processing rule in the processing rule storage unit C13. Thereafter, the processing rule search unit C14 extracts the action (processing content) of the processing rule and outputs it to the packet processing unit C15.
  • the physical port number 1 of the packet transfer apparatus is set to 192.168.8.0. / 24 network destination protocol type 0x0006 (TCP) destination 192.168.1. / 24 network, packet addressed to TCP port 80, change the IP source address of the packet to 192.168.1 / 24, and transmit from physical port 2 of the transfer device ( Processing content) is executed.
  • the packet is sent to a packet other than the HTTP port, the IP source address of the packet is changed to 192.168.1 / 24, and the transfer device physical An action (processing content) transmitted from port 3 is executed.
  • the packet processing unit C15 processes the received packet stored in the packet storage unit C11 in accordance with the action (processing content) output from the processing rule search unit C14. For example, when receiving a Forward action for transferring a packet, the packet processing unit C15 requests the packet transmission unit C16 to transmit the packet. Further, the packet processing unit C15 appropriately performs basic processing related to communication in addition to the action (processing content) output from the processing rule search unit C14 as necessary. For example, in the case of the first processing rule in FIG. 20, the action (processing content) is packet transmission after the transmission source IP address is changed to 192.168.1.1.
  • the packet processing unit C15 appropriately rewrites a TTL (Time To Live) field, a checksum field, and the like of the IP header, which are basic processing such as IP, as basic processing related to communication.
  • TTL Time To Live
  • checksum field a field of the IP header
  • the packet transmission end determination when the TTL value becomes 0 or the like is also a basic process related to communication.
  • the packet transmission unit C16 When the packet transmission unit C16 is requested to transmit a packet from the packet processing unit C15, the packet transmission unit C16 transmits the packet read from the packet storage unit C11 from the port instructed by the packet processing unit C15. Furthermore, the packet transmission unit C16 notifies the termination determination information extraction unit C17 that the packet has been transmitted.
  • the termination determination information extraction unit C17 uses the notification that the packet is received from the packet reception unit C10 as a trigger, and extracts specific information in the packet from the packet storage unit C11 as information necessary for the termination determination of the flow. . Similarly to the packet processing information extraction unit C12, the termination determination information extraction unit C17 further includes information on the header field of the received packet in order to determine the processing content to be applied to the packet. Or reception status information (the above-described ingress port (reception port ID information) or the like) is extracted. Also, the termination determination information extraction unit C17 uses the notification that the packet is transmitted from the packet transmission unit C16 as a trigger when the specific information in the packet is determined to be information necessary for the flow termination determination. Information for determining the processing contents to be applied to the packet (information on the header field of the received packet and reception status information (ingress port, etc.) and information determined to be necessary for the flow end determination, a flow end confirmation unit Output to C18.
  • the packet processing information extraction unit C12 and the termination determination information extraction unit C17 are provided separately. However, the same information may be extracted under the same conditions, and therefore can be integrated. It is. Further, the extraction of information for determining the processing content to be applied to the received packet in the termination determination information extraction unit C17 determines that the specific information in the packet is information necessary for the termination determination of the flow. It can also be done only if you do.
  • the flow end confirmation unit C18 determines whether or not the last packet transmission as the end of the flow has been performed based on the information passed from the end determination information extraction unit C17. When it is determined that the last packet transmission has been performed, the processing rule corresponding to the flow to which the transmission packet belongs is deleted from the processing rule storage unit C13. For this determination, the flow end confirmation unit C18 refers to or updates the internal state information field of the processing rule stored in the processing rule storage unit C13 as necessary.
  • Examples of the internal state information field referred to or updated by the flow end confirmation unit C18 include stage information (determination stage information) for end determination, elapsed time information after stage change (after change of determination stage), etc. ( FIG. 9 “FIN, reverse FIN, timeout reference” and FIG. 15 “SYN, timeout reference”).
  • each unit (processing unit) of the packet transfer device C1 illustrated in FIG. 2 may be realized by a computer program that causes a computer constituting the packet transfer device C1 to execute the above-described processes using the hardware. it can.
  • the packet receiving unit C10 stores the received packet in the packet storage unit C11 (step S102).
  • the packet reception unit C10 notifies the packet processing information extraction unit C12 and the termination determination information extraction unit C17 that the packet has been received. Thereby, two processes operate
  • the first process is a process for processing the received packet (steps S103 to S110).
  • the packet processing information extractor C12 extracts information for determining the processing contents to be applied to the packet from the packet storage C11. Then, the data is transferred to the processing rule search unit C14 (step S103).
  • the processing rule search unit C14 that has received the extracted information searches the processing rule storage unit C13 for a processing rule that matches the extracted information (step S104). If a processing rule that matches the extracted information is found, the processing rule search unit C14 extracts an action (processing content) defined in the processing rule and passes it to the packet processing unit C15 (step S105). ). On the other hand, when a processing rule that matches the extracted information is not found, the processing rule search unit C14 transmits a received packet or information extracted from the received packet to a predetermined control device (controller; see FIG. 18). Then, the creation / transmission of a processing rule is requested (step S106). When a processing rule is received from a predetermined control device (controller; see FIG. 18), the processing rule search unit C14 registers the received processing rule in the processing rule storage unit C13, and the action (processing content) of the processing rule. ) Are extracted and output to the packet processing unit C15 (step S107).
  • the packet processing unit C15 that has received the action (processing content) processes the packet stored in the packet storage unit C11 according to the action (processing content) (step S108). For example, correction of each field of the packet, basic processing related to communication described above, and the like are appropriately performed.
  • the packet processing unit C15 determines whether the packet should be transmitted based on whether or not the action (processing content) includes packet transfer and information such as TTL (step S109). When it is determined that the packet should be transmitted, the packet processing unit C15 instructs the packet transmission unit C16 to transmit the packet.
  • the packet transmission unit C16 reads the packet from the packet storage unit C11 and transmits it from the port designated by the action (processing content) (step S110). Furthermore, the packet transmission unit C16 notifies the termination determination information extraction unit C17 that the packet has been transmitted.
  • the second process is a process for performing flow end determination and deleting unnecessary process rules from the process rule storage unit C13 (steps S111 to S116).
  • the termination determination information extracting unit C17 receives specific information in the packet as information necessary for the flow termination determination from the packet storage unit C11. To extract. Similarly to step S103, the termination determination information extraction unit C17 further extracts information for determining the processing content to be applied to the packet from the packet (step S111). If the specific information in the extracted packet is not information necessary for the flow end determination, the flow end determination regarding the packet ends (No in step S112).
  • the termination determination information extraction unit C17 notifies that the packet transmission unit C16 has transmitted the packet. Wait until you receive Upon receiving the notification that the packet has been transmitted from the packet transmission unit C16, the termination determination information extraction unit C17 applies to the flow termination confirmation unit C18 information necessary for determining the end of the flow and the packet. Outputs information for determining the processing contents to be performed.
  • the flow end confirmation unit C18 determines whether it is the end of the flow from the information passed from the end determination information extraction unit C17 (step S113). When it is determined that it is not the end of the flow (No in step S114), the flow end confirmation unit C18 appropriately updates the internal state in the processing rule of the processing rule storage unit C13 according to the determination content (step S115). On the other hand, as a result of the determination, if it is determined that it is the end of the flow (Yes in step S114), the flow end confirmation unit C18 deletes the processing rule confirming the flow end from the processing rule storage unit C13 (step S116). ).
  • the present embodiment it is possible to determine whether or not the flow to which the received packet belongs has been completed, and to quickly delete unnecessary processing rules from the processing rule storage unit C13. Thereby, it is possible to avoid a situation in which the number of processing rules that can be stored in the processing rule storage unit C13 is compressed. As a result, a processing rule setting request for a predetermined control device (controller; see FIG. 18) or a processing rule resulting from the number of necessary processing rules exceeding the number of processing rules that can be stored in the processing rule storage unit C13. Can also reduce the number of updates. Further, in order to guarantee QoS, it is possible to remove unnecessary processing rules from the target when updating the processing rule storage unit C13.
  • FIG. 4 is a block diagram showing the configuration of the second exemplary embodiment of the present invention.
  • the packet transfer apparatus C1a of the second embodiment of the present invention has a configuration in which a timeout determination unit C19 is added to the configuration of the first embodiment. The following description will be focused on the differences from the first embodiment described above.
  • the timeout determination unit C19 monitors a specific field of the processing rule storage unit C13, determines whether it is timed out, and determines whether or not to trigger termination.
  • the timeout determination unit C19 first monitors a specific field in the processing rule storage unit C13 to determine whether it is a timeout.
  • the time-out monitoring method includes an absolute value evaluation method that compares the value of a specific field with the current time, and exceeds a certain value (time-out determination threshold value) over the value of a specific field that is controlled to count up / count down. Alternatively, it may be realized by either of the relative value evaluation methods for determining whether the value is lower.
  • the time-out determination unit C19 determines that a time-out has occurred, the time-out determination unit C19 passes information indicating that a time-out has occurred and the flow to the flow end confirmation unit C18.
  • the processing rule storage unit C13a has a function of updating a specific field for the timeout determination unit C19 to perform the timeout determination in addition to the function of the first embodiment described above.
  • the flow end confirmation unit C18 determines the end of the flow upon receiving a notification from the timeout determination unit C19 that a timeout has occurred. When it is determined that the process is finished, the flow end confirmation unit C18 deletes the processing rule corresponding to the flow from the processing rule storage unit C13. Note that the processing rule deletion determination triggered by the timeout may be performed independently of other processing, but when the information necessary for determining the end of the flow is passed from the termination determination information extraction unit C17. In addition, it may be performed in cooperation. Conversely, when a notification that the timeout has occurred is received, the determination based on the information necessary for determining the end of the flow from the termination determination information extraction unit C17 and the timeout determination are performed in cooperation. Also good.
  • processing rule storage unit C13a may be provided independently as shown in FIG. 4, but receive the corresponding packet for a period indicated by a separately set expiration date. It can be realized by a mechanism equivalent to that of Non-Patent Documents 1 and 2 in which the entry is deleted when there is no such entry.
  • FIG. 5 is a block diagram showing the configuration of the third exemplary embodiment of the present invention. Compared to FIG. 2, the packet processing unit C15a and the termination determination information extracting unit C17a are changed, and a double arrow indicating an exchange between them is added. Others are the same as those in the first embodiment, and therefore only the changed part will be described below.
  • the packet processing unit C15a When performing packet transmission processing, the packet processing unit C15a first notifies the termination determination information extraction unit C17a of completion of packet transmission preparation, and then requests the packet transmission unit C16 to transmit a packet.
  • the termination determination information extraction unit C17a also determines the termination of the flow from the packet storage unit C11 when it receives a packet transmission preparation completion notification from the packet processing unit C15a. Specific information in the packet is extracted as necessary information. Then, when the termination determination information extraction unit C17a determines that the specific information in the packet is information necessary for the flow termination determination, information for determining the processing content to be applied to the packet (Header field information and reception status information (entrance port, etc.) of the received packet and information determined to be necessary for the flow end determination are output to the flow end confirmation unit C18.
  • this embodiment it is possible to perform flow end determination not only when a packet is received but also when a packet is transmitted, and delete unnecessary processing rules. Thereby, it becomes possible to reduce processing rules more actively than in the first embodiment.
  • FIG. 6 is a diagram illustrating state transition of a TCP connection.
  • “CLOSED” in the upper part of FIG. 6 indicates a state in which TCP communication is ended, and a portion connected to this is a state before the end of TCP communication.
  • MSL Maximum Segment Lifetime
  • the retransmitted packet should be transferred immediately after this 2 MSL time.
  • the end of TCP communication can be determined based on whether or not a new FIN packet arrives at 2 MSL + ⁇ time with a margin added.
  • the packet transfer apparatus C1 relays TCP communication between the computer (client) D10 having the network configuration shown in FIG. 7 and the server D20.
  • the computer D10 has 192.168.8.0. / 24 network and is set in 192.168.0.10.
  • the server D20 has 192.168.1. / 24 network and is set in 192.168.1.10.
  • the control device (controller) D1 is connected to the packet transfer device C1 through a dedicated channel in the same manner as the OpenFlow controller described in Non-Patent Documents 1 and 2, and manages the connection between the two networks.
  • control device (controller) D1 controls the packet transfer device C1 so that a connection from another network looks like communication from No. 1 (192.168.1.1) of each network.
  • the field monitored by the termination determination information extracting unit C17 is the protocol stack and is TCP. This is a field for confirming this and a FIN flag in the TCP header.
  • FIG. 8 is a flowchart for explaining the process of determining the end of the flow using the FIN flag.
  • a time-out determination is added to steps S111 to S116 in the flowchart of FIG. The operation will be described below with reference to FIGS. 3, 6, 8 and 9 to 13.
  • a description will be given of communication at the TCP / IP level.
  • the packet (SYN) for establishing the first communication enters the packet transfer device C1 (start of active open by SYN transmission in FIG. 6).
  • the packet receiving unit C10 receives this first packet and stores it in the packet storage unit C11 (steps S101 to S102 in FIG. 3).
  • the packet reception unit C10 notifies the packet processing information extraction unit C12 and the termination determination information extraction unit C17 that the packet has been received.
  • the packet processing information extraction unit C12 refers to the packet storage unit C11 and extracts information such as an IP transmission source / destination necessary for searching for a processing rule (step S103 in FIG. 3). Thereafter, a series of processes on the steps S103 to S110 in FIG. 3 is started.
  • the termination determination information extraction unit C17 refers to the packet storage unit C11 and monitors the TCP FIN flag, but does not set the termination flag because the FIN flag is not set. Therefore, the flow termination determination process on the side of steps S111 to S116 in FIG. 3 is not performed.
  • the packet processing information extraction unit C12 uses the extracted information (the entry port is 1, the transmission source address is 192.168.0.10, the destination is 192.168.1.10, and the protocol is TCP (type is 0x0006)). It passes to processing rule search section C14.
  • the processing rule search unit C14 refers to the processing rule storage unit C13 and makes an inquiry to the control device (controller) D1 because there is no processing rule that matches the packet (steps S104 and S106 in FIG. 3).
  • the control device (controller) D1 creates a processing rule whose processing content is modification of the source IP and transfer from the designated transfer port, and transmits the processing rule to the packet transfer device C1.
  • the processing rule search unit C14 registers the processing rule received from the control device (controller) D1 as a new entry in the processing rule storage unit C13 (step S107 in FIG. 3). At this stage, as shown in FIG. 9, a new processing rule is added to the processing rule storage unit C13.
  • the processing rule search unit C14 transmits the searched processing rule to the packet processing unit C15.
  • the packet processing unit C15 performs packet correction such as IP address replacement and TTL reduction according to the transmitted processing rules (step S108 in FIG. 3). If it is determined that the TTL does not end and it is determined that the packet is to be transmitted (Yes in step S109 in FIG. 3), the packet processing unit C15 transmits the packet so as to transmit the received packet from the port # 2 of the packet transfer device C1. Instruct part C16.
  • the instruction is also sent to the termination determination information extraction unit C17. However, since it is not determined as a packet for termination determination for the above reason, the processing rule is deleted. None done.
  • the packet transmission unit C16 transmits a packet from the port # 2 in accordance with the above. Through the above processing, the first packet is transmitted.
  • a final response (ACK packet) for establishing communication is transmitted from the computer D10 to the server D20 (ACK transmission in FIG. 6).
  • the processing rule storage unit C13 has already received the response from the computer D10. Since the processing rule that matches the flow addressed to the server D20 is registered, the processing rule search unit C14 extracts the processing content (action) defined in the corresponding processing rule from the processing rule storage unit C13. (Step S105). Thereafter, in the same manner as described above, the packets transmitted and received between the computer D10 and the server D20 are corrected and relayed ("ESTABLISHED" state in FIG. 6).
  • the computer D10 transmits a FIN packet for communication termination to the server D20 (start of active close by FIN transmission in FIG. 6).
  • This FIN packet enters the packet transfer device C1. Since the transfer process of the FIN packet is the same as that after the ACK packet, the description is omitted.
  • steps S111 to S116 in FIG. 3 will be described in detail with reference to FIG.
  • the termination determination information extracting unit C17 receives the notification that the packet has been received from the packet receiving unit C10, the termination determination information extracting unit C17 refers to the packet storage unit C11, monitors the TCP FIN flag, and finds the FIN flag (FIG. 8). Step S201).
  • the termination determination information extraction unit C17 further extracts information for specifying the processing rule to be deleted from the packet storage unit C11.
  • the source address is 192.168.1.1
  • the destination is 192.168.1.10
  • the protocol is TCP (type is 0x0006). This information is used for reverse flow marking.
  • the termination determination information extraction unit C17 notifies the flow termination confirmation unit C18 of the information along with the notification that the FIN packet has been received (step S202 in FIG. 8).
  • the flow termination confirmation unit C18 that has received the above information from the termination determination information extraction unit C17 checks whether or not the FIN flag is set at a predetermined position of the packet header (step S203). Up to this point corresponds to the processing of steps S111 to S114 in FIG.
  • the flow end confirmation unit C18 extracts the processing rule from the processing rule storage unit C13 using the information for specifying the processing rule to be deleted as a key, and receives the FIN packet. Are marked (S204 to S205 in FIG. 8). This process corresponds to the internal state update process in step S115 of FIG.
  • the flow end confirmation unit C18 checks whether or not the forward / reverse FIN is marked for the processing rule. At this point, only the forward direction is still marked, so that the next process is performed. Move (No in S206 of FIG. 8).
  • the flow end confirmation unit C18 extracts a processing rule corresponding to the information for specifying the processing rule to be deleted (matching by reversing the transmission source and the destination), and marks the reverse FIN packet reception flag ( Steps S207 to S208 in FIG.
  • the FIN flag and the reverse FIN flag of the corresponding processing rule in the processing rule storage unit C13 are set. Even at this time, since both the forward and reverse FIN flags of the corresponding processing rule are not marked, the processing rule is not deleted immediately but waiting for reception of the next packet (see FIG. 8 (Yes in step S209).
  • the server D20 transmits a FIN packet to the computer D10. .
  • the flow end determination process in steps S111 to S116 is started, as in the case of the start of active close.
  • the termination determination information extracting unit C17 receives the notification that the packet is received from the packet receiving unit C10, the termination determination information extracting unit C17 refers to the packet storage unit C11, monitors the TCP FIN flag, and finds the FIN packet (FIG. 8). Step S201).
  • the termination determination information extraction unit C17 When receiving the notification that the packet has been transmitted from the packet transmission unit C16, the termination determination information extraction unit C17 further extracts information for specifying the modified processing rule from the packet storage unit C11. Since the IP address is replaced in the information for specifying the modified processing rule extracted here, the source address is 192.168.1.10, the destination is 192.168.0.10, the protocol Becomes TCP (type is 0x0006). This information is used for reverse flow marking.
  • the termination determination information extraction unit C17 notifies the flow termination confirmation unit C18 of the information along with the notification that the FIN packet has been received (step S202 in FIG. 8).
  • the flow termination confirmation unit C18 that has received the above information from the termination determination information extraction unit C17 checks whether a FIN flag is set at a predetermined position in the packet header (step S203 in FIG. 8). Up to this point corresponds to the processing of steps S111 to S114 in FIG.
  • the flow end confirmation unit C18 uses the information for specifying the processing rule to be deleted as a key from the processing rule storage unit C13 (the entry port 2 in FIG. 11). And the FIN packet reception flag is marked (S204 to S205 in FIG. 8). This process corresponds to the internal state update process in step S115 of FIG.
  • the flow end confirmation unit C18 checks whether the forward and reverse FIN flags are marked for the processing rule.
  • the flow end confirmation unit C18 uses the final timeout time of the processing rule (processing rule from the entry port 2 in FIG. 12) as 2MSL (+ ⁇ ) is set (step S210 in FIG. 8).
  • is a predetermined margin determined so that the determination does not become excessively strict.
  • the flow end confirmation unit C18 extracts a processing rule corresponding to the information for specifying the processing rule to be deleted (matching by reversing the transmission source and the destination), and marks the reverse FIN packet reception flag ( Steps S207 to S208 in FIG.
  • the flow termination confirmation unit C18 determines the timeout period of the processing rule (processing rule from the entry port 1 in FIG. 12) as 2MSL (+ ⁇ ) is set (step S210 in FIG. 8). At this stage, as shown in FIG. 12, the timeout time 2MSL of the corresponding processing rule in the processing rule storage unit C13 is set.
  • the timeout determination unit C19 becomes a monitoring target, and timeout monitoring is started (steps S211 to S212 in FIG. 8).
  • This time-out monitoring may be performed by updating the timer value and comparing it with the time-out value, or by updating either the time-out value and comparing it with a predetermined threshold value. Good.
  • the last ACK should be transmitted / received. If the FIN packet is retransmitted without the last ACK being transmitted / received, the processing from step S202 onward in FIG. 8 is performed. The timeout value is set again and updated to a new timeout value.
  • the timeout determination unit C19 notifies the flow termination confirmation unit C18 that it has determined that a timeout has occurred.
  • the flow end confirmation unit C18 deletes the corresponding processing rule from the processing rule storage unit C13 (step S116 in FIG. 3 and step S213 in FIG. 8).
  • the corresponding processing rule is deleted from the processing rule storage unit C13.
  • time-out monitoring in steps S211 to S212 in FIG. 8 means that the time-out determination for the processing rule is continued. If another FIN packet is received during that time, step S201 is separately performed for the FIN packet. Processing is performed according to the following end determination flow.
  • a time out is determined when a state in which a SYN / ACK packet does not flow continues for a predetermined time in a flow in the opposite direction to the flow in which the SYN packet flows (from “SYN_RCVD” to “SYN_SENT” in FIG. 6).
  • FIG. 14 is a flowchart for explaining the process of determining the end of the flow using the SYN flag. Since the basic operation is the same as that of the first specific example described above, the following description will be focused on the difference.
  • the termination determination information extraction unit C17 that has received the notification that the packet has been received from the packet reception unit C10 refers to the packet storage unit C11, monitors the TCP SYN flag, and receives the SYN packet. Discover (step S301 in FIG. 14).
  • the termination determination information extraction unit C17 When receiving the notification that the packet has been transmitted from the packet transmission unit C16, the termination determination information extraction unit C17 further extracts information for specifying the modified processing rule from the packet storage unit C11. Since the IP address is replaced in the information for specifying the processing rule extracted here, the source address is 192.168.1.10, the destination is 192.168.0.10, and the protocol is TCP ( The type is 0x0006). This information is used for reverse flow marking.
  • the termination determination information extraction unit C17 notifies the flow termination confirmation unit C18 of the information together with the notification that the SYN packet has been received (step S302 in FIG. 14).
  • the flow termination confirmation unit C18 that has received the above information from the termination determination information extraction unit C17 checks whether the SYN flag is set at a predetermined position of the packet header and the ACK flag is not marked. (Step S303 in FIG. 14). Up to this point corresponds to the processing of steps S111 to S114 in FIG.
  • the flow end confirmation unit C18 extracts the processing rule from the processing rule storage unit C13 using the information for specifying the processing rule to be deleted as a key, and receives the SYN packet.
  • a flag is marked (S304 to S305 in FIG. 14). This process corresponds to the internal state update process in step S115 of FIG.
  • the flow termination confirmation unit C18 sets the SYN / ACK packet reception timeout time in the processing rule storage unit C13, and causes the timeout determination unit C19 to start the timeout determination process (step S306 in FIG. 14).
  • the timeout period 2MSL of the corresponding process rule in the process rule storage unit C13 is set.
  • step S303 when it is determined in step S303 that the packet is not a SYN packet, the flow termination confirmation unit C18 checks whether it is a SYN / ACK packet, that is, whether both the SYN flag and the ACK flag are marked (FIG. 14). Step S307).
  • the flow end confirmation unit C18 extracts the processing rule from the processing rule storage unit C13 using the information for specifying the processing rule to be deleted as a key, and the SYN packet The reception flag mark is deleted (steps S308 to S309 in FIG. 14).
  • the flow end confirmation unit C18 also deletes the timeout time from the processing rule storage unit C13. As a result, the time-out determination process by the time-out determination unit C19 is canceled (step S310 in FIG. 14).
  • step S306 in FIG. 14 when the time-out determination process is started in step S306 in FIG. 14 and finally time-out is determined (Yes in step S311 in FIG. 14), the time-out determination unit C19 sends to the flow end confirmation unit C18. Notify that it has been timed out. In response to this, the flow end confirmation unit C18 deletes the corresponding processing rule from the processing rule storage unit C13 (step S116 in FIG. 3 and step S314 in FIG. 14).
  • the timeout determination process is continued until the timeout determination process is canceled (No in step S312 in FIG. 14).
  • the TCP RST (reset) flag means that the connection is released and communication is started again. That is, the RST packet in which the RST flag is set has a meaning of invalidating the communication. Therefore, the end of the flow can be determined by detecting this.
  • FIG. 16 is a first flowchart for explaining the process of determining the end of the flow using the RST flag. Since the basic operation is the same as that of the first specific example described above, the following description will be focused on the difference.
  • the termination determination information extraction unit C17 that has received the notification that the packet has been received from the packet reception unit C10 refers to the packet storage unit C11, monitors the TCP RST flag, and determines the RST packet. Discover (step S401 in FIG. 16).
  • the termination determination information extraction unit C17 notifies the flow termination confirmation unit C18 of the information together with the notification that the RST packet has been received (FIG. 16). Step S402).
  • the flow termination confirmation unit C18 that has received the above information from the termination determination information extraction unit C17 checks whether an RST flag is set at a predetermined position in the packet header (step S403 in FIG. 16). Up to this point corresponds to the processing of steps S111 to S114 in FIG.
  • the flow end confirmation unit C18 extracts the processing rule from the processing rule storage unit C13 using the information for specifying the processing rule to be deleted as a key, and deletes the processing rule (FIG. 16 S404 to S405).
  • This RST flag means invalidation of communication, so it can be deleted even for a flow in the reverse direction.
  • FIG. 17 is a flowchart in the case where the end of the flow is determined using the RST flag and the processing rule in the reverse direction is also deleted. Since the basic operation is the same as that of the first specific example described above, the following description will be focused on the difference.
  • the termination determination information extraction unit C17 that has received the notification that the packet is received from the packet reception unit C10 refers to the packet storage unit C11, monitors the TCP RST flag, and determines the RST packet. Discover (step S501 in FIG. 17).
  • the termination determination information extraction unit C17 extracts information specifying the modified processing rule from the packet storage unit C11. Since the IP address is replaced in the information for specifying the processing rule extracted here, the source address is 192.168.1.10, the destination is 192.168.0.10, and the protocol is TCP ( The type is 0x0006). This information is used to delete the reverse flow processing rule.
  • the termination determination information extraction unit C17 notifies the flow termination confirmation unit C18 of the information together with the notification that the RST packet has been received (step S502 in FIG. 17).
  • the flow termination confirmation unit C18 that has received the above information from the termination determination information extraction unit C17 checks whether or not the RST flag is set at a predetermined position in the packet header (step S503 in FIG. 17).
  • the flow end confirmation unit C18 extracts the processing rule from the processing rule storage unit C13 using the information for specifying the processing rule to be deleted as a key, and deletes the processing rule (FIG. 17 S504 to S505).
  • the flow end confirmation unit C18 extracts and deletes the processing rule from the processing rule storage unit C13 using the information for specifying the modified processing rule (corresponding to the reverse flow) as a key (FIG. 17). S506 to S507).
  • the processing rule corresponding to the forward / reverse bidirectional flow can be deleted from the processing rule storage unit using the RST packet.
  • a specific example of the present invention monitors a specific flag of TCP, and can be executed in parallel by the same packet transfer apparatus.
  • the processing after the detection of the packet that causes the flow end described above can be realized by branching to the above-described FIG. 8, FIG. 14, and FIG. 16 (FIG. 17).
  • the TCP is mainly shown, but the present invention can be applied to all connection type protocols in which the information field of termination information can be observed.
  • the end of the flow can be determined by E-bit in the DATA chunk of SCTP (Stream Control Transmission Protocol).
  • the end of the flow can be determined.
  • the end of the packet can be determined by the IP MF (More Fragments) flag, so that the end of the flow is determined. Can do.
  • IP MF Mobile Fragments
  • the present invention can be applied to a packet transfer apparatus such as a HUB or a switch having a storage area for regulating processing rules.

Landscapes

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

Abstract

 パケット転送等に用いる処理規則の削除を的確に行うことのできるパケット転送装置、通信システム、処理規則の更新方法の提供。パケット転送装置は、フロー単位で処理内容を定義した処理規則を記憶する処理規則記憶部と、前記処理規則の中から受信パケットに適合する処理規則を用いて受信パケットの処理を行うパケット処理部と、前記受信パケットからフローの終端を確認するための情報を抽出する終端判定用情報抽出部と、前記抽出された情報に基づいて、フローの終端を確認した場合、当該フローに対応する処理規則を削除するフロー終端確認部と、を備える。

Description

パケット転送装置、通信システム、処理規則の更新方法およびプログラム
 (関連出願についての記載)
 本発明は、日本国特許出願:特願2010-031522号(2010年2月16日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
 本発明は、パケット転送装置、通信システム、処理規則の更新方法およびプログラムに関し、特に、受信パケットに適合する処理規則に従って、受信パケットを処理するパケット転送装置、通信システム、処理規則の更新方法およびプログラムに関する。
 近年、オープンフロー(OpenFlow)という技術が提案されている(非特許文献1参照)。オープンフローは、通信をエンドツーエンドのフローとして捉え、フロー単位で経路制御、障害回復、負荷分散、最適化を行うものである。図18に、オープンフロースイッチの概念図を示す。転送ノードとして機能するオープンフロースイッチは、制御装置と位置付けられるオープンフローコントローラとの通信用のセキュアチャネルを備え、オープンフローコントローラから適宜追加または書き換え指示されるフローテーブルに従って動作する。フローテーブルには、フロー毎に、パケットヘッダと照合するマッチングルール(ヘッダフィールド)と、処理内容を定義したアクションと、フロー統計情報(カウンタ)との組が定義される(図19、20参照)。
 図21に、非特許文献2に定義されているアクション名とアクションの内容を例示する。OUTPUTは、指定ポート(インタフェース)に出力するアクションである。SET_VLAN_VIDからSET_TP_DSTは、パケットヘッダのフィールドを修正するアクションである。
 例えば、オープンフロースイッチは、パケットを受信すると、フローテーブルから、受信パケットのヘッダ情報に適合するマッチングルール(図19、20のヘッダフィールド参照)を持つエントリを検索する。検索の結果、受信パケットに適合するエントリが見つかった場合、オープンフロースイッチは、受信パケットに対して、当該エントリのアクションフィールドに記述された処理内容を実施する。一方、前記検索の結果、受信パケットに適合するエントリが見つからなかった場合、オープンフロースイッチは、セキュアチャネルを介して、オープンフローコントローラに対して受信パケットを転送し、受信パケットの送信元・送信先に基づいたパケットの経路の決定を依頼し、これを実現するフローエントリを受け取ってフローテーブルを更新する。このように、オープンフロースイッチは、フローテーブルに格納されたエントリを処理規則として用いてパケット転送を行っている。
Nick McKeownほか7名、"OpenFlow: Enabling Innovation in Campus Networks"、[online]、[平成21年12月22日検索]、インターネット〈URL:http://www.openflowswitch.org//documents/openflow-wp-latest.pdf〉 "OpenFlow Switch Specification" Version 0.9.0. (Wire Protocol 0x98) [平成21年12月22日検索] 、インターネット〈URL:http://www.openflowswitch.org/documents/openflow-spec-v0.9.0.pdf〉
 以下の分析は、本発明者によってなされたものである。
 上記非特許文献1、2では、通信の開始時にコントローラからフローエントリ(以下、非特許文献1、2のフローエントリと同等のパケット転送装置が受信パケットの処理を決定する際に参照する情報を「処理規則」という。)を設定し、別途設定する有効期限(図19の存続時間)に示す期間、該当するパケットを受信しなかったときに、該当エントリを削除することが記載されている(非特許文献2の24頁「Idle_TimeoutとHard_Timeout」参照。)。
 そのため、非特許文献1、2のフローテーブルには、すでに通信終了となった処理規則が、有効期限を経過するまで残ってしまい、処理規則の記憶領域を圧迫するという問題点がある。また、この通信終了となった処理規則は、パケット転送装置における受信パケットに適合する処理規則の検索効率を低下させる一因ともなっている。
 さらに、このように残った処理規則が多数残存することにより処理規則の記憶領域に不足が生じた場合、必要数の処理規則を何らかのルールで削除していく必要が出てくる。例えば、最近に設定された処理規則を残し、古い処理規則を削除するというルールを採用した場合、通信終了となっているにも拘らず新しい処理規則が残され、通信終了となっていない有効な処理規則が削除されるといった状況も生じうる。
 本発明は、上記した事情に鑑みてなされたものであって、上記した処理規則の削除を的確に行うことのできるパケット転送装置、通信システム、処理規則の更新方法およびプログラムを提供することにある。
 本発明の第1の視点によれば、フロー単位で処理内容を定義した処理規則を記憶する処理規則記憶部と、前記処理規則の中から受信パケットに適合する処理規則を用いて受信パケットの処理を行うパケット処理部と、前記受信パケットからフローの終端を確認するための情報を抽出する終端判定用情報抽出部と、前記抽出された情報に基づいて、フローの終端を確認した場合、当該フローに対応する処理規則を削除するフロー終端確認部と、を備えるパケット転送装置が提供される。
 本発明の第2の視点によれば、上記したパケット転送装置と、前記パケット転送装置に処理規則を設定する制御装置と、を含む通信システムが提供される。
 本発明の第3の視点によれば、フロー単位で処理内容を定義した処理規則を記憶する処理規則記憶部と、前記処理規則の中から受信パケットに適合する処理規則を用いて受信パケットの処理を行うパケット処理部と、を備えたパケット転送装置が、前記受信パケットからフローの終端を確認するための情報を抽出するステップと、前記抽出された情報に基づいて、フローの終端を確認した場合、前記処理規則記憶部から、当該フローに対応する処理規則を削除するステップと、を含む処理規則の更新方法が提供される。本方法は、処理規則記憶部とパケット処理部とを備えるパケット転送装置という、特定の機械に結びつけられている。
 本発明の第4の視点によれば、フロー単位で処理内容を定義した処理規則を記憶する処理規則記憶部と、前記処理規則の中から受信パケットに適合する処理規則を用いて受信パケットの処理を行うパケット処理部と、を備えたパケット転送装置を構成するコンピュータに、前記受信パケットからフローの終端を確認するための情報を抽出する処理と、前記抽出された情報に基づいて、フローの終端を確認した場合、前記処理規則記憶部から、当該フローに対応する処理規則を削除する処理と、を実行させるプログラムが提供される。なお、このプログラムは、コンピュータが読み取り可能な記憶媒体に記録することができる。即ち、本発明は、コンピュータプログラム製品として具現することも可能である。
 本発明によれば、パケット転送装置の処理規則記憶部から、有効期限が満了していない処理規則であっても、通信終了となり必要の無くなった処理規則を削除させることが可能になる。その理由は、受信パケットからフローの終端(通信の終了)を判別するための情報を抽出し、フローの終端(通信の終了)を判別する機能を追加したことにある。
本発明の概要を説明するためのブロック図である。 本発明の第1の実施形態の構成を示すブロック図である。 本発明の第1の実施形態の動作を説明するためのフローチャートである。 本発明の第2の実施形態の構成を示すブロック図である。 本発明の第3の実施形態の構成を示すブロック図である。 TCPのコネクションの状態遷移を示す図である。 本発明の具体例を説明するための図である。 本発明の具体例を説明するためのフローチャートである。 パケット転送装置の処理規則記憶部の記憶内容を段階的に説明するための図である。 図9の続図である。 図10の続図である。 図11の続図である。 図12の続図である。 本発明の第2の具体例を説明するためのフローチャートである。 第2の具体例におけるパケット転送装置の処理規則記憶部の記憶内容を段階的に説明するための図である。 本発明の第3の具体例を説明するためのフローチャートである。 本発明の第3の具体例を説明するための第2のフローチャートである。 非特許文献1、2のオープンフロースイッチの概念図である。 非特許文献1、2のオープンフロースイッチのフローエントリの構成を示す図である。 非特許文献1、2のオープンフロースイッチのフローテーブルの具体例である。 非特許文献2に例示されているアクションの例である。
 はじめに、本発明の概要を説明する。以下、この概要に付記した図面参照符号は、専ら理解を助けるための例示であり、図示の態様に限定することを意図するものではない。図1に示すように、本発明に係るパケット転送装置1は、受信パケットに適用する処理規則を記憶する処理規則記憶部11と、処理規則記憶部から受信パケットに適合する処理規則を読み出して転送処理等を行うパケット処理部12と、受信パケットからフローの終端を確認するための情報を抽出する終端判定用情報抽出部13と、前記抽出された情報に基づいて、フローの終端を確認した場合、当該フローに対応する処理規則を削除するフロー終端確認部14と、を備えて構成される。
 フローの終端の検知の方法としては、次のような種々の方法が挙げられる。例えば、プロトコルの終了メッセージをチェックする方法が挙げられる。例えば、TCP(Transmission Control Protocol)では、FINフラグのチェックにより、通信の終了、すなわち、通信を利用したフローの終了を検知することができる。実際には、FINフラグ後のフローの逆方向(送信元、送信先が逆のフロー)でACKパケットの通信が発生するため、FINパケット後の逆方向フローのACKフラグを検知したら終了と判断することができる。更には、TCPは双方向通信のため、逆方向フローとセットにして、終了を検知したら当該逆方向のフローに対応する処理規則も不要になったと判断することができる。また、SYNパケットの受信から所定時間経過してタイムアウトとなったときや、RSTパケットの受信を契機として通信の終了を判定することもできる。これらは、後に具体例として詳述する。
 フロー終了の検知の方法のもう一例として、SCTP(Stream Control Transmission Protocol)のDATAチャンクにおけるE-bitで判断する方法が挙げられる。
 更に、フロー終了の検知の方法のもう一例として、HTTP(Hypertext Transfer Protocol)での例が挙げられる。HTTPヘッダのConnection属性がCloseを検知し、対応するHTTPのメッセージ分が送信確認できたとき、一連のフローの終了と判断できる。
 更に、フロー終了の検知の方法のもう一例として、IP(Internet Protocol)での例が挙げられる。パケット列ごとに1フローと前提がつけられている環境下では、IPのMF(More Fragments)フラグにより、パケットの終端が判断できるので、フローの終了と判断することができる。
 いずれの場合も、終端判定用情報抽出部13にて該当する情報を抽出し、フロー終端確認部14に送ることで、不要な処理規則であるか否かを判定し、不要な処理規則を削除することが可能になる。
 以上により、通信終了となった処理規則のその有効期限を待たずに削除されるため、処理規則記憶部の記憶領域に余裕を生じさせるとともに、処理規則の検索の効率化が達成される。また、必要な処理規則を削除してしまう事態も発生しにくくなるため、これら処理規則の再設定のために生じていたトラヒックや負荷も低減される。更には、QoS保証などのため、処理規則の更新制御を行う場合においても、不必要な処理規則をその対象から外すことが可能になる。
 本発明において以下の形態が可能である。
[形態1]
 前記第1の視点に記載のパケット転送装置のとおり。
[形態2]
 前記パケット転送装置は、さらに、前記処理規則記憶部に記憶された処理規則のタイムアウト判定を行うタイムアウト判定部を備え、
 前記フロー終端確認部は、前記終端判定用情報抽出部にて抽出された情報に基づいて、前記タイムアウト判定部にタイムアウト判定を開始させ、前記タイムアウト判定部にてタイムアウトと判定された処理規則を削除することが好ましい。
[形態3]
 前記パケット転送装置は、さらに、受信パケットを記憶するパケット記憶部を備え、
 前記終端判定用情報抽出部に、前記パケット記憶部から、受信パケットが属するフローと、該フローと逆方向のフローとにそれぞれ対応する処理規則を特定するための情報を抽出し、前記フロー終端確認部に、前記双方向の処理規則の削除を判定させることができる。
[形態4]
 前記フロー終端確認部は、前記終端判定用情報抽出部にて抽出されたTCP(Transmission Control Protocol)のFINフラグ、RSTフラグまたはSYNフラグのいずれか一つ以上を用いて、フローの終端を判定するようにすることができる。
[形態5]
 前記第2の視点に記載の通信システムのとおり。
[形態6]
 前記第3の視点に記載の処理規則の更新方法のとおり。
[形態7]
 前記処理規則の更新方法において、前記パケット転送装置は、前記フローの終端を確認するための情報に基づいて、タイムアウト判定を開始し、タイムアウトと判定した処理規則を削除することが好ましい。
[形態8]
 前記処理規則の更新方法において、前記パケット転送装置は、受信パケットと前記処理規則に従って修正された後の受信パケットから、受信パケットが属するフローと、該フローと逆方向のフローとにそれぞれ対応する処理規則を特定するための情報を抽出し、前記双方向の処理規則の削除を判定することが好ましい。
[形態9]
 前記処理規則の更新方法において、フローの終端は、TCP(Transmission Control Protocol)のFINフラグ、RSTフラグまたはSYNフラグのいずれか一つ以上を用いて判定することができる。
[形態10]
 前記第4の視点に記載のプログラムのとおり。
 なお、上記第2、第4の視点に記載の通信システムおよびプログラムは、形態1の通信システムと同様に、形態2~形態4の内容に展開することが可能である。
[第1の実施形態]
 続いて、本発明の第1の実施形態について図面を参照して詳細に説明する。はじめに、用語の定義をしておく。「フロー」とは特定の送信元から送信先への通信のことを指す。すなわち、「フロー」は、伝送されているパケットの集合、もしくは、その伝送自体のことを意味する。また、「送信元」、「送信先」は、物理的、論理的な1つの宛先を意味するとは限らない。すなわち、特定のサブネットから、別のサブネットへの通信をまとめて、それを1つのフローと捉えても良い。このことから、フローは、より詳細なフローの集合となることもある。例えば、非特許文献1、2のオープンフローのように、宛先アドレスや送信元アドレス等の一部をワイルドカードで記述して、複数のフローを一つにまとめたフローエントリがこれに相当する。
 図2は、本発明の第1の実施形態の構成を示すブロック図である。図2を参照すると、本実施形態のパケット転送装置C1は、パケット受信部C10と、パケット記憶部C11と、パケット処理用情報抽出部C12と、処理規則記憶部C13と、処理規則検索部C14と、パケット処理部C15と、パケット送信部C16と、終端判定用情報抽出部C17と、フロー終端確認部C18とを備える。
 パケット受信部C10は、他のノードによって送信されたパケットを受信し、パケット記憶部C11へ受信したパケットを一旦格納する。また、パケット受信部C10は、進入ポート(受信ポートID情報)などの受信状況情報も同時に記憶することもできるものとする。前記受信パケットを格納すると、パケット受信部C10は、パケット処理用情報抽出部C12と、終端判定用パケット情報抽出部C17に対し、パケットを受信したことを通知する。
 パケット記憶部C11は、パケット受信部C10が受信したパケットが、パケット送信部C16によって送信されるまでの間、該パケットを一時的に格納する。
 パケット処理用情報抽出部C12は、パケット受信部C10からパケットを受信したとの通知をトリガとして、パケット記憶部C11から、当該パケットに対して適用すべき処理内容を決定するために、受信パケットのヘッダフィールドの情報や、受信状況情報(上記進入ポート(受信ポートID情報)等)を抽出する。パケット処理用情報抽出部C12は、抽出したパケット情報を処理規則検索部C14に出力する。
 ここで、パケット処理用情報抽出部C12が受信パケットに対して適用すべき処理内容を決定するために抽出する情報としては、非特許文献1、2のオープンフロースイッチと同様のものを用いることができる。例えば、進入ポート(受信ポートID情報)、Ethernet(登録商標)の送信元アドレス、宛先アドレス、上位プロトコルタイプと、IEEE802.1Q準拠のVLAN(Virtual LAN)のTCI(Tag Control Information)のVID(VLAN-ID)、PCP(Priority Code Point)と、IP(Internet Proctocol)の送信元アドレス、宛先アドレス、上位プロトコルタイプと、TCP(Transmission Control Protocol)もしくはUDP(User Datagram Protocol)の送信元ポート、宛先ポートを挙げることができる。このうち、パケット転送装置の進入ポート(受信ポートID情報)は受信状況情報から得ることができ、その他は、受信パケットのヘッダフィールドやパケット内部の上位プロトコルヘッダなどから得ることができる。
 処理規則記憶部C13は、受信パケットに対して適用する処理内容をフロー単位で定めた処理規則を記憶する。その構成は、図18、図19に示した非特許文献1、2のフローテーブルと同等の内容とすることができ、受信パケットと照合しフローを判別するためのヘッダフィールドと、統計情報(カウンタ)と、処理内容(アクション)とを対応付けたエントリとすることができる。
 例えば、図19のヘッダフィールドは、パケット転送装置の進入ポートと、Ethernet(登録商標)の送信元アドレス、宛先アドレス、上位プロトコルタイプと、IEEE802.1Q準拠のVLANのVID、プライオリティ(PCP;プライオリティ コード ポイント)、IPの送信元アドレス、宛先アドレス、上位プロトコルタイプ、TCPもしくはUDPの送信元ポート、宛先ポートから構成される。これらのヘッダフィールドの内容に適合するパケットを受信した場合に、アクションフィールドに定められた処理内容が行われることになる。ただし、ヘッダフィールドの任意の情報ビットについてワイルドカードを使用することもできるものとする。
 また、図19のカウンタ(フィールド)には、受信パケット数、受信バイト数、ルールの存続時間が保持され、該パケットが属するフローに関する統計情報として使用される。
 また、図19のアクションとしては、パケットを転送するためのForward、パケットを廃棄するためのDrop、パケットの情報を変更するためのModify-Fieldが存在し、任意個のアクションを登録することができる(図21の一覧参照。ただし、非特許文献2の場合、アクションフィールドが空欄のとき「Drop」となる。)。Modify-Filedアクションとしては、VLANのIDやプライオリティの設定・変更、VLANヘッダの除去、Ethernet(登録商標)やIPの送信元/宛先アドレスの変更、TCP/UDPの送信元/宛先ポートの変更などが用意されている(その他、IPのToS(Type of Service)フィールドの変更等)。
 さらに本実施形態では、処理規則記憶部C13は、各処理規則毎に、後記するフロー終端確認部C18がフロー終端の判定に用いる内部状態情報フィールドが設けられているものとする(図9の「FIN、逆FIN、timeout参照」、図15の「SYN、timeout参照」)。
 処理規則検索部C14は、パケット処理用情報抽出部C12から渡された情報に基づいて、受信パケットに対して適用すべきアクション(処理内容)を決定し、パケット処理部C15に出力する。より具体的には、処理規則検索部C14は、処理規則記憶部C13から、パケット処理用情報抽出部C12から渡された受信パケットから抽出した情報に適合する処理規則を探索し、パケット処理部C15に出力する。ここで、受信パケットに適合する処理規則が存在した場合、処理規則検索部C14は、処理規則のアクションフィールドに定められたアクション(処理内容)を抽出し、パケット処理部C15に出力する。一方、受信パケットに適合する処理規則が見つからなかった場合、処理規則検索部C14は、所定の制御装置(コントローラ;図18参照)に対し、受信パケットまたは受信パケットから抽出した情報を送信して、処理規則の作成・送信を要求する。所定の制御装置(コントローラ;図18参照)から処理規則を受信すると、処理規則検索部C14は、当該受信した処理規則を、処理規則記憶部C13へ登録する。その後、処理規則検索部C14は、当該処理規則のアクション(処理内容)を抽出し、パケット処理部C15に出力する。
 図20に示したフローテーブルの最初の処理規則によると、パケット転送装置の物理ポート1番に192.168.0./24のネットワークから入ってきたプロトコルタイプが0x0006(TCP)の宛先192.168.1./24のネットワーク、TCPポート80番宛てのパケットを適用対象として、当該パケットのIPの送信元アドレスを192.168.1/24に変更して、転送装置の物理ポート2番から送信するアクション(処理内容)が実行される。同様に、図20の2番目の処理規則によると、HTTPポート以外へのパケットを適用対象として、当該パケットのIPの送信元アドレスを192.168.1/24に変更して、転送装置の物理ポート3番から送信するアクション(処理内容)が実行される。
 パケット処理部C15は、処理規則検索部C14から出力されたアクション(処理内容)に従い、パケット記憶部C11に格納されている受信パケットを処理する。例えば、パケットを転送するためのForwardアクションを受け取った場合、パケット処理部C15は、パケット送信部C16に対してパケットの送信を要求する。また、パケット処理部C15は、処理規則検索部C14から出力されたアクション(処理内容)のほか、通信に関する基本処理等も必要に応じて適宜行う。例えば、図20の1番目の処理規則の場合、アクション(処理内容)としては、送信元IPアドレスを192.168.1.1に変更した後、パケット送信となる。この際に、パケット処理部C15が、上記に加え、通信に関する基本処理としてIPなどの基本処理であるIPヘッダのTTL(Time To Live)フィールド、チェックサムフィールド等の書き換えなどを適宜行う。また、TTLの値が0などになった場合のパケット送信終了の判定なども通信に関する基本処理となる。
 パケット送信部C16は、パケット処理部C15からパケット送信を要求されると、パケット処理部C15から指示されたポートから、パケット記憶部C11から読み出したパケットを送信する。更に、パケット送信部C16は、終端判定用情報抽出部C17に対してパケットを送信したことを通知する。
 終端判定用情報抽出部C17は、パケット受信部C10からパケットを受信したとの通知をトリガとして、パケット記憶部C11から、フローの終端判定に必要な情報として、パケット内の特定の情報を抽出する。また、終端判定用情報抽出部C17は、パケット処理用情報抽出部C12と同様に、該パケットからさらに、当該パケットに対して適用すべき処理内容を決定するために、受信パケットのヘッダフィールドの情報や、受信状況情報(上記進入ポート(受信ポートID情報)等)を抽出する。また、終端判定用情報抽出部C17は、パケット内の特定の情報がフロー終端判定に必要な情報であると判定したときに、パケット送信部C16からパケットを送信したとの通知をトリガとして、当該パケットに対して適用すべき処理内容を決定するための情報(受信パケットのヘッダフィールドの情報や受信状況情報(進入ポート等)と、フロー終端判定に必要と判定した情報と、をフロー終端確認部C18に出力する。
 なお、図2の例では、パケット処理用情報抽出部C12と終端判定用情報抽出部C17を別途に設けているが、同一条件で同一の情報を抽出することがあるので、統合することも可能である。また、終端判定用情報抽出部C17における、受信パケットに対して適用すべき処理内容を決定するための情報の抽出は、パケット内の特定の情報がフローの終端判定に必要な情報であると判定した場合にのみ行うようにすることもできる。
 フロー終端確認部C18は、終端判定用情報抽出部C17から渡された情報に基づいて、フローの終端である最後のパケット送信が行われたかどうかを判定する。最後のパケット送信が行われたと判断したときは、処理規則記憶部C13から、送信パケットが属するフローに対応する処理規則を削除する。また、フロー終端確認部C18は、この判定のため、必要に応じて、処理規則記憶部C13に記憶された処理規則の内部状態情報フィールドを参照または更新する。
 上記フロー終端確認部C18が参照または更新する内部状態情報フィールドとしては、例えば、終了判定のステージ情報(判定段階情報)や、ステージ変更後(判定段階変更後)の経過時間情報等が挙げられる(図9の「FIN、逆FIN、timeout参照」、図15の「SYN、timeout参照」)。
 なお、図2に示したパケット転送装置C1の各部(処理手段)は、パケット転送装置C1を構成するコンピュータに、そのハードウェアを用いて、上記した各処理を実行させるコンピュータプログラムにより実現することもできる。
 続いて、図3のフローチャートを参照して、本実施形態のパケット転送装置C1におけるパケット受信から送信までの動作を詳細に説明する。
 図3を参照すると、まず、パケットを受信すると(ステップS101)、パケット受信部C10は、受信したパケットをパケット記憶部C11へ格納する(ステップS102)。
 次に、パケット受信部C10は、パケット処理用情報抽出部C12及び終端判定用情報抽出部C17に対し、パケットを受信したことを通知する。これにより、2つの処理が同時に動作することになる(ステップS102後の分岐)。
 第1の処理は、受信したパケットに対し処理を施すための処理である(ステップS103~S110)。パケット処理用情報抽出部C12は、パケット受信部C10からパケットを受信したとの通知を受けると、パケット記憶部C11から、当該パケットに対して適用すべき処理内容を決定するための情報を抽出し、処理規則検索部C14へ渡す(ステップS103)。
 次に、前記抽出された情報を受け取った処理規則検索部C14は、処理規則記憶部C13から、前記抽出された情報に適合する処理規則を検索する(ステップS104)。ここで、前記抽出された情報に適合する処理規則が見つかった場合、処理規則検索部C14は、当該処理規則に定められたアクション(処理内容)を抽出し、パケット処理部C15へ渡す(ステップS105)。一方、前記抽出された情報に適合する処理規則が見つからなった場合、処理規則検索部C14は、所定の制御装置(コントローラ;図18参照)に対し、受信パケットまたは受信パケットから抽出した情報を送信して、処理規則の作成・送信を要求する(ステップS106)。所定の制御装置(コントローラ;図18参照)から処理規則を受信すると、処理規則検索部C14は、当該受信した処理規則を、処理規則記憶部C13へ登録するとともに、当該処理規則のアクション(処理内容)を抽出し、パケット処理部C15に出力する(ステップS107)。
 次に、アクション(処理内容)を受け取ったパケット処理部C15は、パケット記憶部C11に格納されたパケットに対し、アクション(処理内容)に従って処理を行う(ステップS108)。例えば、パケットの各フィールドの修正や、先述した通信に関する基本処理などが適宜行われる。
 次に、パケット処理部C15は、アクション(処理内容)にパケット転送が含まれるか否かや、TTLなどの情報に基づき、当該パケットを送信すべきか判断する(ステップS109)。パケットを送信すべきであると判断した場合、パケット処理部C15は、パケット送信部C16に対してパケットの送信を指示する。
 最後に、パケット送信部C16は、該パケットをパケット記憶部C11から読み出し、アクション(処理内容)にて指示されたポートから送信する(ステップS110)。更に、パケット送信部C16は、終端判定用情報抽出部C17に対してパケットを送信したことを通知する。
 第2の処理は、フロー終端判定を行って、処理規則記憶部C13から不必要となる処理規則を削除するための処理である(ステップS111~S116)。
 はじめに、パケット受信部C10からパケットを受信したことを示す通知を受け取ると、終端判定用情報抽出部C17は、パケット記憶部C11から、フローの終端判定に必要な情報として、パケット内の特定の情報を抽出する。また、終端判定用情報抽出部C17は、ステップS103と同様に、該パケットからさらに、当該パケットに対して適用すべき処理内容を決定するための情報を抽出する(ステップS111)。前記抽出したパケット内の特定の情報がフローの終了判定に必要な情報でない場合、当該パケットに関するフロー終端判定は終了する(ステップS112のNo)。
 一方、前記抽出したパケット内の特定の情報が終了判定に必要な情報である場合(ステップS112のYes)、終端判定用情報抽出部C17は、パケット送信部C16から該パケットを送信したとの通知を受信するまで待機する。パケット送信部C16から該パケットを送信したとの通知を受け取ると、終端判定用情報抽出部C17は、フロー終端確認部C18に対し、フローの終了判定に必要な情報と、当該パケットに対して適用すべき処理内容を決定するための情報を出力する。
 次に、フロー終端確認部C18は、終端判定用情報抽出部C17から渡された情報から、フローの終端であるかどうかを判定する(ステップS113)。フローの終端でないと判定した場合(ステップS114のNo)、フロー終端確認部C18は、その判定内容に従い、処理規則記憶部C13の処理規則内の内部状態を適宜更新する(ステップS115)。一方、前記判定の結果、フローの終端であると判定した場合(ステップS114のYes)、フロー終端確認部C18は、処理規則記憶部C13から当該フロー終端を確認した処理規則を削除する(ステップS116)。
 以上のように本実施形態によれば、受信パケットが属するフローが終了したかどうかを判定して、いち早く処理規則記憶部C13から不必要となる処理規則を削除することができる。これにより、処理規則記憶部C13の記憶可能な処理規則数が圧迫されてしまう事態を回避することが可能となる。これにより、必要な処理規則が処理規則記憶部C13の記憶可能な処理規則数を超えてしまうことに起因する、所定の制御装置(コントローラ;図18参照)に対する処理規則の設定要求や、処理規則の更新回数を減らすこともできる。また、QoS保証のため、処理規則記憶部C13の更新動作を行うような場合において、不必要な処理規則をその対象から外すことが可能となる。
[第2の実施形態]
 続いて、上記第1の実施形態に変更を加えた本発明の第2の実施形態について図面を参照して詳細に説明する。図4は、本発明の第2の実施形態の構成を表わしたブロック図である。図2と比較すると、本発明の第2の実施形態のパケット転送装置C1aは、第1の実施形態の構成に、タイムアウト判定部C19を追加した構成となっている。以下、先に説明した第1の実施形態との相違点に焦点を当てて説明する。
 タイムアウト判定部C19は、処理規則記憶部C13の特定のフィールドを監視して、タイムアウトかどうかを判定し、終了判定の契機にするかどうかを決定する。
 タイムアウト判定部C19は、まず、処理規則記憶部C13の特定のフィールドを監視して、タイムアウトかどうかを判定する。タイムアウトの監視方法としては、特定のフィールドの値と現在時刻を比較する絶対値評価方法と、カウントアップ/カウントダウン制御される特定のフィールドの値を、一定の値(タイムアウト判定しきい値)を上回る、もしくは、下回るかで判定する相対値評価方法のどちらの方法で実現しても良い。タイムアウト判定部C19は、タイムアウトと判定したときに、タイムアウトが発生した旨とフローを特定する情報をフロー終端確認部C18へ渡す。
 処理規則記憶部C13aは、上記した第1の実施形態の機能に加え、タイムアウト判定部C19が前記タイムアウト判定を行うための特定のフィールドを更新する機能を有している。
 フロー終端確認部C18は、上記した第1の実施形態の機能に加え、タイムアウト判定部C19からタイムアウトが発生した旨の通知を受け取ると、該フローに対する終了の判定を行う。終了と判定した場合、フロー終端確認部C18は、処理規則記憶部C13から、該フローに対応する処理規則を削除する。なお、前記タイムアウトを契機とする処理規則の削除判定は、他の処理と独立して行うものとしてもよいが、終端判定用情報抽出部C17からフローの終了判定に必要な情報を渡されたときに、連携して行うようにしてもよい。また逆に、前記タイムアウトが発生した旨の通知を受け取ったときに、終端判定用情報抽出部C17からのフローの終了判定に必要な情報による判定と、タイムアウト判定とを連携して行うようにしてもよい。
 以上のように、本発明の第2の実施形態によれば、タイムアウトによるフロー終端判定が加わるため、処理規則記憶部C13aから、一定期間使用されていない処理規則をより積極的に削減することが可能となる。なお、処理規則記憶部C13a、フロー終端確認部C18、タイムアウト判定部C19は、図4に示すように独立して設けてもよいが、別途設定した有効期限に示す期間、該当するパケットを受信しなかったときに、該当エントリを削除する非特許文献1、2と同等の仕組みにて実現することもできる。
[第3の実施形態]
 続いて、上記第1の実施形態に変更を加えた本発明の第3の実施形態について図面を参照して詳細に説明する。図5は、本発明の第3の実施形態の構成を表わしたブロック図である。図2と比較すると、パケット処理部C15aと終端判定用情報抽出部C17aが変わり、これらの間でのやり取りを示す両矢線が追加されている。その他は第1の実施形態と同様であるので、以下、変更部分にのみ焦点を当てて説明する。
 パケット処理部C15aは、パケット送信処理する場合、まず、終端判定用情報抽出部C17aへ、パケット送信準備完了を通知してから、パケット送信部C16へパケットの送信を要求する。
 終端判定用情報抽出部C17aは、上記第1の実施形態で説明した動作に加えて、パケット処理部C15aからパケット送信準備完了通知を受信した場合も、パケット記憶部C11から、フローの終端判定に必要な情報として、パケット内の特定の情報を抽出する。そして、終端判定用情報抽出部C17aは、前記パケット内の特定の情報がフロー終端判定に必要な情報であると判定したときに、当該パケットに対して適用すべき処理内容を決定するための情報(受信パケットのヘッダフィールドの情報や受信状況情報(進入ポート等)と、フロー終端判定に必要と判定した情報と、をフロー終端確認部C18に出力する。
 即ち、本実施形態では、パケット受信時のみならず、パケット送信時にもフロー終端判定を行ない、不要な処理規則を削除することが可能になる。これにより、第1の実施形態よりも、より積極的に処理規則を削減することが可能になる。
 続いて、上記した各実施形態の各特徴を組み合わせて、TCP(Transmission Control Protocol)のフラグを利用してフローの終端判定を行う具体例1~3を説明する。
[具体例1]
 図6は、TCPのコネクションの状態遷移を示す図である。図6の上段の「CLOSED」がTCP通信が終了している状態を示し、これにつながる箇所が、TCP通信の終了前の状態である。上記「CLOSED」に、一番長く辿りつかないケースは、双方のFINが流れてから約2MSL(MSL:Maximum Segment Lifetime(最大セグメント寿命))を待機したときである。そのため、双方向のFINを確認してから、この2MSL時間だけ待機したら、基本的には通信終了と判断できる。パケット落ちなどで状態が順調に遷移しない場合(例えば、「CLOSING」後のACK送信が到着しない場合)も、この2MSL時間後すぐに、再送パケットが転送されるはずであるので、最大でも2MSLにマージンを加えた2MSL+α時間に新たなFINパケットが届かないかどうかでTCP通信の終了を判断できる。
 以下、本発明に係るパケット転送装置C1が、図7に示したネットワーク構成のコンピュータ(クライアント)D10と、サーバD20間のTCP通信を中継する場合を考える。図7の例では、コンピュータD10は、192.168.0./24のネットワークに属し、192.168.0.10で設定されている。また、サーバD20は、192.168.1./24のネットワークに属し、192.168.1.10で設定されている。制御装置(コントローラ)D1は、パケット転送装置C1と、非特許文献1、2に記載のオープンフローコントローラと同様に専用のチャネルで接続されており、2つのネットワーク間の接続を管理している。以下の説明では、制御装置(コントローラ)D1は、他ネットワークからの接続は、それぞれのネットワークの1番(192.168.1.1)からの通信のように見せかけるようパケット転送装置C1を制御するものとする(図19の処理規則のアクション参照。また、本具体例では、FINパケットの監視を行うため、終端判定用情報抽出部C17が監視するフィールドはプロトコルスタックを監視して、TCPであることを確認できるフィールドと、TCPヘッダのFINフラグとなる。
 図8は、FINフラグを用いてフローの終端を判定する処理を説明するためのフローチャートである。図3のフローチャートのステップS111~S116にタイムアウト判定を加えて、より細分化したものである。以下、図3、図6、図8および図9~図13を参照して動作を説明する。なお、実際にはTCP/IP通信の前にARP(Address Resolution Protocol)通信が行われ、処理規則設定はその段階で行われる可能性があるが、今回は説明を簡単にするために省略し、TCP/IPレベルでの通信で説明する。
 まず、コンピュータD10から、サーバD20宛へ通信を開始する。このとき、最初の通信確立のためのパケット(SYN)がパケット転送装置C1に進入する(図6のSYN送信によるアクティブオープンの開始)。パケット受信部C10は、この最初のパケットを受信し、パケット記憶部C11に格納する(図3のステップS101~S102)。
 パケット受信部C10は、パケット処理用情報抽出部C12と、終端判定用情報抽出部C17へ、パケットを受信したことを通知する。パケット処理用情報抽出部C12は、パケット記憶部C11を参照して、処理規則を検索するのに必要となるIPの送信元/宛先などの情報を抽出する(図3のステップS103)。以下、図3のステップS103乃至ステップS110側の一連の処理が開始される。
 一方、終端判定用情報抽出部C17は、パケット記憶部C11を参照して、TCPのFINフラグを監視するが、FINフラグは設定されていないため、終端判定の対象としない。そのため、図3のステップS111乃至ステップS116側のフロー終端判定処理は行われない。
 次に、受信パケットに対応する処理規則の検索が行われる。パケット処理用情報抽出部C12は、抽出した情報(進入ポートが1、送信元アドレスが192.168.0.10、宛先が192.168.1.10、プロトコルがTCP(タイプが0x0006))を処理規則検索部C14に渡す。処理規則検索部C14は、処理規則記憶部C13を参照して、前記パケットに適合する処理規則が存在しないので、制御装置(コントローラ)D1へ問い合わせる(図3のステップS104、ステップS106)。制御装置(コントローラ)D1は、送信元IPの修正と、指定した転送ポートからの転送を処理内容とする処理規則を作成し、パケット転送装置C1へ送信する。処理規則検索部C14は、制御装置(コントローラ)D1から受信した処理規則を新規エントリとして処理規則記憶部C13へ登録する(図3のステップS107)。この段階で、図9に示すように、処理規則記憶部C13に新しい処理規則が追加される。
 次に、パケットの転送処理に入る。処理規則検索部C14は、検索した処理規則をパケット処理部C15に送信する。パケット処理部C15は、前記送信された処理規則に従って、IPアドレスの置き換え、TTLなどの削減などのパケットの修正を実行する(図3のステップS108)。ここで、TTLは終了しないとし、パケットを送信すると判定されたとすると(図3のステップS109のYes)、パケット処理部C15は、パケット転送装置C1のポート#2から受信パケットを送信するようパケット送信部C16に指示する。ここで、第3の実施形態と同等の構成の場合、前記指示は、終端判定用情報抽出部C17にも送られるが、上記理由により終了判定の対象パケットと判定されないため、処理規則の削除が行われることはない。
 パケット送信部C16は、前記に従い、ポート#2からパケットを送信する。以上の処理により、最初のパケットの送信が行われる。
 次に、サーバD20からのコンピュータD10との通信確立のための応答(SYN/ACKパケット)がパケット転送装置C1に進入したものとする(図6のSYN/ACK送信)。上記コンピュータD10から、サーバD20宛へ通信確立のときと同様に、処理規則記憶部C13の参照が行われるが前記応答パケットに適合する処理規則は存在しないため、制御装置(コントローラ)D1へ問い合わせが行われ、逆方向のフローに適用する処理規則を定めた新しい処理規則が追加される(図3のステップS104、ステップS106、ステップS107)。この段階で、図10に示すように、処理規則記憶部C13に新しい処理規則が追加される。
 次に、コンピュータD10から、サーバD20宛へ通信確立のための最後の応答(ACKパケット)が送信されるが(図6のACK送信)、この時点ではすでに、処理規則記憶部C13にコンピュータD10から、サーバD20宛のフローに適合する処理規則が登録されているため、処理規則検索部C14は、処理規則記憶部C13から該当する処理規則に規定されている処理内容(アクション)を抽出することになる(ステップS105)。以降、上記と同様に、コンピュータD10とサーバD20間で送受信されるパケットの修正と中継が行われる(図6の「ESTABLISHED」状態)。
 その後、通信を終えるとき、コンピュータD10から、サーバD20宛へ通信終了のためのFINパケットを送信する(図6のFIN送信によるアクティブクローズの開始)。このFINパケットがパケット転送装置C1に進入する。FINパケットの転送処理は上記ACKパケット以降と同様であるため、省略する。以下、図3のステップS111~S116について図8を用いて詳細に説明する。
 パケット受信部C10からパケットを受信したとの通知を受けた終端判定用情報抽出部C17は、パケット記憶部C11を参照して、TCPのFINフラグを監視し、FINフラグを発見する(図8のステップS201)。
 ここでは、FINフラグが設定されているため、フロー終端判定に必要な情報であると判断し、削除する処理規則を特定するための情報(進入ポートが1、送信元アドレスが192.168.0.10、宛先が192.168.1.10、プロトコルがTCP(タイプが0x0006))を抽出し、パケットの送信まで待機する。終端判定用情報抽出部C17は、パケット送信部C16からパケットを送信したとの通知を受け取ると、さらに、パケット記憶部C11から、削除する処理規則を特定するための情報を抽出する。ここで抽出される削除する処理規則を特定するための情報は、IPアドレスが置き換えられているので、送信元アドレスが192.168.1.1、宛先が192.168.1.10、プロトコルがTCP(タイプが0x0006)となる。この情報は逆フローのマーキングに使用される。終端判定用情報抽出部C17は、FINパケットを受信したとの通知とともに、これらの情報をフロー終端確認部C18へ通知する(図8のステップS202)。
 終端判定用情報抽出部C17から、上記した情報を受け取ったフロー終端確認部C18は、パケットヘッダの所定位置にFINフラグが設定されているか否かをチェックする(ステップS203)。ここまでが、図3のステップS111~S114の処理に相当する。
 ここでは、FINパケットが送信されているため、フロー終端確認部C18は、前記削除対象の処理規則を特定するための情報をキーとして、処理規則記憶部C13から処理規則を抽出し、FINパケット受信のフラグをマークする(図8のS204~S205)。この処理は、図3のステップS115の内部状態更新処理に相当する。
 次に、フロー終端確認部C18は、当該処理規則について、正方向・逆方向のFINがマークされているかをチェックするが、この時点では、まだ正方向しかマークされていないため、次の処理へ移る(図8のS206のNo)。
 次に、逆方向のマーキングに移る。フロー終端確認部C18は、前記削除対象の処理規則を特定する情報に対応する処理規則を抽出し(送信元と宛先を逆転してマッチングする)、逆方向のFINパケット受信のフラグをマークする(図8のステップS207~S208)。この段階で、図11に示すように、処理規則記憶部C13の該当処理規則のFINフラグ、逆FINフラグが立てられる。この時点においても、該当処理規則の正方向・逆方向のFINフラグの双方がマークされていないので、直ちに処理規則の削除を行うのではなく、次のパケットの受信を待機することになる(図8のステップS209のYes)。
 次に、サーバD20から、コンピュータD10のFINパケットに対するACK応答が上記通常のパケットと同様に転送された後(図6のパッシブクローズの開始)、サーバD20は、コンピュータD10に対しFINパケットを送信する。このFINパケットがパケット転送装置C1へと進入すると、上記アクティブクローズの開始の場合と同様に、ステップS111~S116のフロー終端判定処理が開始される。
 パケット受信部C10からパケットを受信したとの通知を受けた終端判定用情報抽出部C17は、パケット記憶部C11を参照して、TCPのFINフラグを監視し、FINパケットを発見する(図8のステップS201)。
 ここでは、FINフラグが設定されているため、フロー終端判定に必要な情報であると判断し、削除する処理規則を特定するための情報(進入ポートが2、送信元アドレスが192.168.1.10、宛先が192.168.1.1、プロトコルがTCP(タイプが0x0006))を抽出し、パケットの送信まで待機する。終端判定用情報抽出部C17は、パケット送信部C16からパケットを送信したとの通知を受け取ると、さらに、パケット記憶部C11から、修正された処理規則を特定するための情報を抽出する。ここで抽出される修正された処理規則を特定するための情報は、IPアドレスが置き換えられているので、送信元アドレスが192.168.1.10、宛先が192.168.0.10、プロトコルがTCP(タイプが0x0006)となる。この情報は、逆フローのマーキングに使用される。終端判定用情報抽出部C17は、FINパケットを受信したとの通知とともに、これらの情報をフロー終端確認部C18へ通知する(図8のステップS202)。
 終端判定用情報抽出部C17から、上記した情報を受け取ったフロー終端確認部C18は、パケットヘッダの所定位置にFINフラグが設定されているか否かをチェックする(図8のステップS203)。ここまでが、図3のステップS111~S114の処理に相当する。
 ここでは、FINパケットが送信されているため、フロー終端確認部C18は、前記削除対象の処理規則を特定するための情報をキーとして、処理規則記憶部C13から処理規則(図11の進入ポート2の処理規則)を抽出し、FINパケット受信のフラグをマークする(図8のS204~S205)。この処理は、図3のステップS115の内部状態更新処理に相当する。
 次に、フロー終端確認部C18は、当該処理規則について、正方向・逆方向のFINフラグがマークされているかをチェックする。ここでは、正方向・逆方向のFINフラグがマークされていることを確認できるため、フロー終端確認部C18は、当該処理規則(図12の進入ポート2からの処理規則)の最終タイムアウト時間として、2MSL(+α)を設定する(図8のステップS210)。なお、αは判定が過度に厳しくならないように定めた所定のマージンである。
 次に、逆方向のマーキングに移る。フロー終端確認部C18は、前記削除対象の処理規則を特定する情報に対応する処理規則を抽出し(送信元と宛先を逆転してマッチングする)、逆方向のFINパケット受信のフラグをマークする(図8のステップS207~S208)。
 上記の結果、正方向・逆方向のFINフラグがマークされていることを確認できるため、フロー終端確認部C18は、当該処理規則(図12の進入ポート1からの処理規則)のタイムアウト時間として、2MSL(+α)を設定する(図8のステップS210)。この段階で、図12に示すように、処理規則記憶部C13の該当処理規則のタイムアウト時間2MSLが設定される。
 これらのタイムアウト値の設定により、タイムアウト判定部C19の監視対象となり、タイムアウト監視が開始される(図8のステップS211~212)。このタイムアウト監視は、タイマ値を更新し、タイムアウト値と比較することとしても良いし、また、タイムアウト値の方を更新し、所定のしきい値と比較する方法のいずれの方法を採用してもよい。
 上記タイムアウト判定の間に、最後のACKが送受信されるはずであるが、もし、最後のACKが送受信されずに、FINパケットの再送が行われた場合、上記図8のステップS202以下の処理に従い、再度タイムアウト値の設定処理が行われ、新たなタイムアウト値に更新される。
 最終的にタイムアウトと判定されたとき(図8のステップS211のYes)、タイムアウト判定部C19は、フロー終端確認部C18に対しタイムアウトと判定した旨を通知する。これに対応して、フロー終端確認部C18は、処理規則記憶部C13から、対応する処理規則を削除する(図3のステップS116、図8のステップS213)。この段階で、図13に示すように、処理規則記憶部C13から、該当処理規則が削除される。
 なお、図8のステップS211~212のタイムアウトの監視は、当該処理規則についてのタイムアウト判定が継続されるという意味であり、その間に別のFINパケットを受信すれば、当該FINパケットについて、別途ステップS201以下の終了判定フローに従い処理が行われる。
 以上のように、FINフラグを用いて、フローの終了を確実に検出して、無駄となった処理規則を処理規則記憶部から削除することができる。
[具体例2]
 再度、図6のTCPのコネクションの状態遷移図を参照すると、FINフラグによる状態遷移を通らずに、図6上段の「CLOSED」につながる箇所として、SYNフラグをマークしたSYNパケットを送信した場合のSYN_SENTからセッションがクローズされた場合、もしくは、タイムアウトが生じた場合がある。この場合、パケット転送装置は、クローズを監視することはできないが、タイムアウトは次の方法で確認できる。本具体例では、このタイムアウトをもってフローの終了判定を行うものである。
 本具体例では、SYNパケットが流れたフローに対する逆方向のフロー(図6の「SYN_RCVD」から「SYN_SENT」)に、SYN/ACKパケットが流れない状態が所定時間継続したことをもってタイムアウトと判定する。
 図14は、SYNフラグを用いてフローの終端を判定する処理を説明するためのフローチャートである。基本的な動作は、上記した具体例1と同等であるため、以下相違点に焦点を当てて説明する。
 図14を参照すると、パケット受信部C10からパケットを受信したとの通知を受けた終端判定用情報抽出部C17は、パケット記憶部C11を参照して、TCPのSYNフラグを監視し、SYNパケットを発見する(図14のステップS301)。
 ここでは、SYNフラグが設定されているため、フロー終端判定に必要な情報であると判断し、削除する処理規則を特定するための情報(進入ポートが2、送信元アドレスが192.168.1.10、宛先が192.168.1.1、プロトコルがTCP(タイプが0x0006))を抽出し、パケットの送信まで待機する。終端判定用情報抽出部C17は、パケット送信部C16からパケットを送信したとの通知を受け取ると、さらに、パケット記憶部C11から、修正された処理規則を特定するための情報を抽出する。ここで抽出される処理規則を特定するための情報は、IPアドレスが置き換えられているので、送信元アドレスが192.168.1.10、宛先が192.168.0.10、プロトコルがTCP(タイプが0x0006)となる。この情報は、逆フローのマーキングに使用される。終端判定用情報抽出部C17は、SYNパケットを受信したとの通知とともに、これらの情報をフロー終端確認部C18へ通知する(図14のステップS302)。
 終端判定用情報抽出部C17から、上記した情報を受け取ったフロー終端確認部C18は、パケットヘッダの所定位置にSYNフラグが設定されており、かつ、ACKフラグがマークされていないかどうかをチェックする(図14のステップS303)。ここまでが、図3のステップS111~S114の処理に相当する。
 SYNパケットであることが確認できた場合、フロー終端確認部C18は、前記削除対象の処理規則を特定するための情報をキーとして、処理規則記憶部C13から処理規則を抽出し、SYNパケット受信のフラグをマークする(図14のS304~S305)。この処理は、図3のステップS115の内部状態更新処理に相当する。
 その後、フロー終端確認部C18は、処理規則記憶部C13に、SYN/ACKパケットの受信タイムアウト時間を設定し、タイムアウト判定部C19にタイムアウト判定処理を開始させる(図14のステップS306)。この段階で、図15に示すように、処理規則記憶部C13の該当処理規則のタイムアウト時間2MSLが設定される。
 一方、ステップS303において、SYNパケットでないと判定した場合、フロー終端確認部C18は、SYN/ACKパケットかどうか、すなわち、SYNフラグ、ACKフラグが両方ともマークされているかどうかをチェックする(図14のステップS307)。
 SYN/ACKパケットであることが確認できた場合、フロー終端確認部C18は、前記削除対象の処理規則を特定するための情報をキーとして、処理規則記憶部C13から処理規則を抽出し、SYNパケット受信のフラグのマークを削除する(図14のステップS308~S309)。
 その後、フロー終端確認部C18は、処理規則記憶部C13からタイムアウト時間も削除する。これにより、タイムアウト判定部C19による該処理規則をタイムアウト判定処理は解除される(図14のステップS310)。
 一方、図14のステップS306にて、タイムアウト判定処理が開始された後、最終的にタイムアウトと判定されたとき(図14のステップS311のYes)、タイムアウト判定部C19は、フロー終端確認部C18に対しタイムアウトと判定した旨を通知する。これに対応して、フロー終端確認部C18は、処理規則記憶部C13から、対応する処理規則を削除する(図3のステップS116、図14のステップS314)。
 上記タイムアウト判定処理は、タイムアウト判定処理が解除されるまで継続される(図14のステップS312のNo)。
 以上のように、SYNフラグを用いても、フローの終了を確実に検出して、無駄となった処理規則を処理規則記憶部から削除することができる。
[具体例3]
 続いて、TCPのRST(リセット)フラグを用いてフローの終了判定を行う第3の具体例について説明する。
 再度、図6のTCPのコネクションの状態遷移図を参照すると、通信確立待機状態の「SYN_RCVD」から「通信待機状態」のLISTEN状態に戻る遷移があることが分かる。TCPのRST(リセット)フラグは、コネクションを開放し、通信をやり直すという意味を持つ。つまり、このRSTフラグが立てられたRSTパケットは、通信を無効化する意味を持つので、これを検出してフローの終了判定を行うことができる。
 図16は、RSTフラグを用いてフローの終端を判定する処理を説明するための第1のフローチャートである。基本的な動作は、上記した具体例1と同等であるため、以下相違点に焦点を当てて説明する。
 図16を参照すると、パケット受信部C10からパケットを受信したとの通知を受けた終端判定用情報抽出部C17は、パケット記憶部C11を参照して、TCPのRSTフラグを監視し、RSTパケットを発見する(図16のステップS401)。
 ここでは、RSTフラグが設定されているため、フロー終端判定に必要な情報であると判断し、削除する処理規則を特定するための情報(進入ポートが2、送信元アドレスが192.168.1.10、宛先が192.168.1.1、プロトコルがTCP(タイプが0x0006))を抽出し、パケットの送信まで待機する。終端判定用情報抽出部C17は、パケット送信部C16からパケットを送信したとの通知を受け取ると、RSTパケットを受信したとの通知とともに、これらの情報をフロー終端確認部C18へ通知する(図16のステップS402)。
 終端判定用情報抽出部C17から、上記した情報を受け取ったフロー終端確認部C18は、パケットヘッダの所定位置にRSTフラグが設定されているかどうかをチェックする(図16のステップS403)。ここまでが、図3のステップS111~S114の処理に相当する。
 RSTパケットであることが確認できた場合、フロー終端確認部C18は、前記削除対象の処理規則を特定するための情報をキーとして、処理規則記憶部C13から処理規則を抽出し、削除する(図16のS404~S405)。
 以上のように、RSTフラグを用いても、フローの終了を確実に検出して、無駄となった処理規則を処理規則記憶部から削除することができる。
 このRSTフラグは、通信の無効化を意味するので、逆方向のフローに対しても、削除することが可能である。図17は、RSTフラグを用いてフローの終端を判定し、逆方向の処理規則も削除する場合のフローチャートである。基本的な動作は、上記した具体例1と同等であるため、以下相違点に焦点を当てて説明する。
 図17を参照すると、パケット受信部C10からパケットを受信したとの通知を受けた終端判定用情報抽出部C17は、パケット記憶部C11を参照して、TCPのRSTフラグを監視し、RSTパケットを発見する(図17のステップS501)。
 ここでは、RSTフラグが設定されているため、フロー終端判定に必要な情報であると判断し、削除する処理規則を特定するための情報(進入ポートが2、送信元アドレスが192.168.1.10、宛先が192.168.1.1、プロトコルがTCP(タイプが0x0006))を抽出し、パケットの送信まで待機する。終端判定用情報抽出部C17は、パケット送信部C16からパケットを送信したとの通知を受け取ると、パケット記憶部C11から、修正された処理規則を特定する情報を抽出する。ここで抽出される処理規則を特定するための情報は、IPアドレスが置き換えられているので、送信元アドレスが192.168.1.10、宛先が192.168.0.10、プロトコルがTCP(タイプが0x0006)となる。この情報は、逆フローの処理規則の削除に使用される。終端判定用情報抽出部C17は、RSTパケットを受信したとの通知とともに、これらの情報をフロー終端確認部C18へ通知する(図17のステップS502)。
 終端判定用情報抽出部C17から、上記した情報を受け取ったフロー終端確認部C18は、パケットヘッダの所定位置にRSTフラグが設定されているかどうかをチェックする(図17のステップS503)。
 RSTパケットであることが確認できた場合、フロー終端確認部C18は、前記削除対象の処理規則を特定するための情報をキーとして、処理規則記憶部C13から処理規則を抽出し、削除する(図17のS504~S505)。
 さらに、フロー終端確認部C18は、前記修正された処理規則(逆方向のフローに相当)を特定するための情報をキーとして、処理規則記憶部C13から処理規則を抽出し、削除する(図17のS506~S507)。
 以上のように、RSTパケットを用いて、正・逆双方向のフローに対応する処理規則を処理規則記憶部から削除することができる。
 以上、本発明の好適な実施形態びその具体例を説明したが、本発明は、上記した実施形態に限定されるものではなく、本発明の基本的技術的思想を逸脱しない範囲で、更なる変形・置換・調整を加えることができる。
 例えば、本発明の具体例は、TCPの特定のフラグを監視するものであり、並列して同一のパケット転送装置に実行させることができる。例えば、上記したフロー終了の要因となるパケットの検出後の処理を、上記図8、図14、図16(図17)に分岐させることにより、実現することが可能である。
 本発明の具体例では、TCPを中心に示したが、終端情報の情報フィールドが観測可能なすべてのコネクション型プロトコルに適用することが可能である。例えば、SCTP(Stream Control Transmission Protocol)のDATAチャンクにおけるE-bitでフローの終了を判断することができる。
 また例えば、HTTP(Hypertext Transfer Protocol)ヘッダのConnection属性がCloseであることを検知し、対応するHTTPのメッセージ分が送信確認できたときに、フローの終了を判断することができる。
 また例えば、IP(Internet Protocol)パケット列ごとに1フローと前提がつけられている環境下では、IPのMF(More Fragments)フラグにより、パケットの終端が判断できるので、フローの終了と判断することができる。
 なお、上記の非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素の多様な組み合わせないし選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。
 本発明は、処理規則を規則するための記憶領域を持つHUBやスイッチなどのパケット転送装置に適用できる。
 1、C1、C1a、C1b  パケット転送装置
 C10 パケット受信部
 C11 パケット記憶部
 C12 パケット処理用情報抽出部
 11、C13、C13a 処理規則記憶部
 C14 処理規則検索部
 12、C15、C15a パケット処理部
 C16 パケット送信部
 13、C17、C17a 終端判定用情報抽出部
 14、C18 フロー終端確認部
 C19 タイムアウト判定部
 D1  制御装置(コントローラ)
 D10 コンピュータ(クライアント)
 D20 サーバ

Claims (10)

  1.  フロー単位で処理内容を定義した処理規則を記憶する処理規則記憶部と、
     前記処理規則の中から受信パケットに適合する処理規則を用いて受信パケットの処理を行うパケット処理部と、
     前記受信パケットからフローの終端を確認するための情報を抽出する終端判定用情報抽出部と、
     前記抽出された情報に基づいて、フローの終端を確認した場合、当該フローに対応する処理規則を削除するフロー終端確認部と、を備えるパケット転送装置。
  2.  さらに、前記処理規則記憶部に記憶された処理規則のタイムアウト判定を行うタイムアウト判定部を備え、
     前記フロー終端確認部は、前記終端判定用情報抽出部にて抽出された情報に基づいて、前記タイムアウト判定部にタイムアウト判定を開始させ、前記タイムアウト判定部にてタイムアウトと判定された処理規則を削除する請求項1記載のパケット転送装置。
  3.  さらに、受信パケットを記憶するパケット記憶部を備え、
     前記終端判定用情報抽出部は、前記パケット記憶部から、受信パケットが属するフローと、該フローと逆方向のフローとにそれぞれ対応する処理規則を特定するための情報を抽出し、前記フロー終端確認部に、前記双方向の処理規則の削除を判定させる請求項1または2のパケット転送装置。
  4.  前記フロー終端確認部は、前記終端判定用情報抽出部にて抽出されたTCP(Transmission Control Protocol)のFINフラグ、RSTフラグまたはSYNフラグのいずれか一つ以上を用いて、フローの終端を判定する請求項1から3いずれか一のパケット転送装置。
  5.  請求項1から4いずれか一のパケット転送装置と、
     前記パケット転送装置に処理規則を設定する制御装置と、を含む通信システム。
  6.  フロー単位で処理内容を定義した処理規則を記憶する処理規則記憶部と、
     前記処理規則の中から受信パケットに適合する処理規則を用いて受信パケットの処理を行うパケット処理部と、を備えたパケット転送装置が、
     前記受信パケットからフローの終端を確認するための情報を抽出するステップと、
     前記抽出した情報に基づいて、フローの終端を確認した場合、前記処理規則記憶部から、当該フローに対応する処理規則を削除するステップと、を含む処理規則の更新方法。
  7.  前記パケット転送装置は、前記フローの終端を確認するための情報に基づいて、タイムアウト判定を開始し、タイムアウトと判定した処理規則を削除する請求項6の処理規則の更新方法。
  8.  前記パケット転送装置は、受信パケットと前記処理規則に従って修正された後の受信パケットから、受信パケットが属するフローと、該フローと逆方向のフローとにそれぞれ対応する処理規則を特定するための情報を抽出し、前記双方向の処理規則の削除を判定する請求項6または7の処理規則の更新方法。
  9.  TCP(Transmission Control Protocol)のFINフラグ、RSTフラグまたはSYNフラグのいずれか一つ以上を用いて、フローの終端を判定する請求項6から8いずれか一の処理規則の更新方法。
  10.  フロー単位で処理内容を定義した処理規則を記憶する処理規則記憶部と、
     前記処理規則の中から受信パケットに適合する処理規則を用いて受信パケットの処理を行うパケット処理部と、を備えたパケット転送装置を構成するコンピュータに、
     前記受信パケットからフローの終端を確認するための情報を抽出する処理と、
     前記抽出された情報に基づいて、フローの終端を確認した場合、前記処理規則記憶部から、当該フローに対応する処理規則を削除する処理と、を実行させるプログラム。
PCT/JP2011/053025 2010-02-16 2011-02-14 パケット転送装置、通信システム、処理規則の更新方法およびプログラム WO2011102312A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012500583A JP5720668B2 (ja) 2010-02-16 2011-02-14 パケット転送装置、通信システム、処理規則の更新方法およびプログラム
US13/191,341 US8737215B2 (en) 2010-02-16 2011-07-26 Packet forwarding apparatus, communication system, process rule update method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2010031522 2010-02-16
JP2010-031522 2010-02-16

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/191,341 Continuation US8737215B2 (en) 2010-02-16 2011-07-26 Packet forwarding apparatus, communication system, process rule update method, and program

Publications (1)

Publication Number Publication Date
WO2011102312A1 true WO2011102312A1 (ja) 2011-08-25

Family

ID=44482897

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/053025 WO2011102312A1 (ja) 2010-02-16 2011-02-14 パケット転送装置、通信システム、処理規則の更新方法およびプログラム

Country Status (3)

Country Link
US (1) US8737215B2 (ja)
JP (1) JP5720668B2 (ja)
WO (1) WO2011102312A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013128938A1 (en) * 2012-03-02 2013-09-06 Nec Corporation Communication system, control apparatus, control method and program
JP2013243670A (ja) * 2012-05-21 2013-12-05 Huawei Technologies Co Ltd パケット処理方法、装置及びシステム
JP2014506021A (ja) * 2011-02-17 2014-03-06 日本電気株式会社 フロー通信システム
JP2015167316A (ja) * 2014-03-04 2015-09-24 富士通株式会社 重複パケット除去方法及びプログラム

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5035068B2 (ja) * 2008-03-28 2012-09-26 富士通株式会社 サービス処理状況分析プログラム、サービス処理状況分析装置、およびサービス処理状況分析方法
JP6036815B2 (ja) * 2011-09-09 2016-11-30 日本電気株式会社 ネットワーク管理サービスシステム、制御装置、方法およびプログラム
US20140286294A1 (en) * 2011-11-09 2014-09-25 Nec Corporation Mobile communication terminal, communication method, communication system, and control apparatus
US8738906B1 (en) 2011-11-30 2014-05-27 Juniper Networks, Inc. Traffic classification and control on a network node
KR101887581B1 (ko) * 2011-12-26 2018-08-14 한국전자통신연구원 플로우 기반의 패킷 전송 장치 및 그것의 패킷 처리 방법
EP2880825A4 (en) 2012-07-31 2016-03-16 Hewlett Packard Development Co IMPLEMENTATION OF A TRANSITION PROTOCOL WITH A FIRST RULE FOR ROUTING PACKAGES, RECEIVING A GROUP OF SWITCHES DURING A FIRST PERIOD, AND UPGRADING INTO A SECOND RULE OF ACTION
US9306743B2 (en) * 2012-08-30 2016-04-05 Texas Instruments Incorporated One-way key fob and vehicle pairing verification, retention, and revocation
US10187315B2 (en) * 2012-09-06 2019-01-22 Apple Inc. Apparatus and method for optimizing communications at an intermittent communication link
BR112015014211A2 (pt) * 2012-12-19 2017-07-11 Nec Corp aparelho de processamento de pacotes, método de configuração de entrada de fluxo e programa
WO2015052866A1 (ja) * 2013-10-11 2015-04-16 日本電気株式会社 端末装置、端末装置制御方法および端末装置制御プログラム
CN104580025B (zh) * 2013-10-18 2018-12-14 华为技术有限公司 用于开放流网络中建立带内连接的方法和交换机
US10212083B2 (en) 2013-10-30 2019-02-19 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Openflow data channel and control channel separation
KR102262183B1 (ko) * 2014-04-04 2021-06-07 뉴라컴 인코포레이티드 수신 확인 방법 및 다중 사용자 전송 방법
EP4362403A2 (en) 2014-04-22 2024-05-01 Orckit Ip, Llc A method for deep packet inspection in software defined networks
GB2532055B (en) * 2014-11-07 2016-12-14 Ibm Sticky and transient markers for a packet parser
US10374833B2 (en) 2014-12-03 2019-08-06 Hewlett Packard Enterprise Development Lp Modifying an address to forward a packet to a service function
US9979645B2 (en) * 2015-01-14 2018-05-22 Futurewei Technologies, Inc. Hardware and software methodologies for creating and managing portable service function chains
US10608932B2 (en) 2015-02-28 2020-03-31 Hewlett Packard Enterprise Development Lp Refresh flow entry
US10530684B2 (en) * 2015-05-19 2020-01-07 International Business Machines Corporation Management of unreachable OpenFlow rules
WO2017209669A1 (en) * 2016-06-02 2017-12-07 Telefonaktiebolaget Lm Ericsson (Publ) Method and network node for handling sctp packets
US11050501B2 (en) * 2018-06-14 2021-06-29 Microchip Technology Incorporated Performing PHY-level hardware timestamping and time synchronization in cost-sensitive environments

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008108403A1 (ja) * 2007-03-06 2008-09-12 Nec Corporation ノード装置、ノードシステム、該ノード装置に用いられる統計情報管理テーブルの入替え方法及びプログラム
JP2011024179A (ja) * 2009-07-14 2011-02-03 Industry & Academic Cooperation In Chungnam National Univ (Iac) Httpパケットにおけるハングルまたは日本語のデコード方法と装置、及びこれを用いたハングルまたは日本語ウェブコンテンツの分析方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4319925B2 (ja) * 2004-03-02 2009-08-26 株式会社日立製作所 ストレージネットワークシステムの制御方法及びストレージネットワークシステム
US7554976B2 (en) * 2005-05-13 2009-06-30 Microsoft Corporation Method and system for transferring a packet stream to RDMA
US7930740B2 (en) * 2005-07-07 2011-04-19 International Business Machines Corporation System and method for detection and mitigation of distributed denial of service attacks
US20070255861A1 (en) * 2006-04-27 2007-11-01 Kain Michael T System and method for providing dynamic network firewall with default deny
KR100889670B1 (ko) * 2007-08-08 2009-03-19 삼성에스디에스 주식회사 모바일 디바이스상에서 tcp 기반의 서비스거부 공격의 차단 방법
JP5604927B2 (ja) * 2010-03-24 2014-10-15 富士通株式会社 経路制御プログラム、中継プログラム、及びデータ中継方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008108403A1 (ja) * 2007-03-06 2008-09-12 Nec Corporation ノード装置、ノードシステム、該ノード装置に用いられる統計情報管理テーブルの入替え方法及びプログラム
JP2011024179A (ja) * 2009-07-14 2011-02-03 Industry & Academic Cooperation In Chungnam National Univ (Iac) Httpパケットにおけるハングルまたは日本語のデコード方法と装置、及びこれを用いたハングルまたは日本語ウェブコンテンツの分析方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
"OpenFlow Switch Specification Version 1.0.0", WIRE PROTOCOL OX01, 31 December 2009 (2009-12-31) *
HIROSHI UENO ET AL.: "A Study on Deployment of Network Appliance Functionalities in Datacenter Network", IEICE TECHNICAL REPORT CPSY2009-36, vol. 109, no. 296, 13 November 2009 (2009-11-13), pages 7 - 12 *
KISU KIM ET AL., JAPANESE CONTENT CLASSIFICATION OF HTTP TRAFFIC, DICOM02009, vol. 2009, no. 1, 1 July 2009 (2009-07-01), pages 518 - 522 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014506021A (ja) * 2011-02-17 2014-03-06 日本電気株式会社 フロー通信システム
WO2013128938A1 (en) * 2012-03-02 2013-09-06 Nec Corporation Communication system, control apparatus, control method and program
JP2015508946A (ja) * 2012-03-02 2015-03-23 日本電気株式会社 通信システム、制御装置及び制御方法
US9537763B2 (en) 2012-03-02 2017-01-03 Nec Corporation Communication system, control apparatus, control method and program
JP2013243670A (ja) * 2012-05-21 2013-12-05 Huawei Technologies Co Ltd パケット処理方法、装置及びシステム
US9385948B2 (en) 2012-05-21 2016-07-05 Huawei Technologies Co., Ltd. Packet processing method, device and system
US9742667B2 (en) 2012-05-21 2017-08-22 Huawei Technologies Co., Ltd. Packet processing method, device and system
JP2015167316A (ja) * 2014-03-04 2015-09-24 富士通株式会社 重複パケット除去方法及びプログラム

Also Published As

Publication number Publication date
JP5720668B2 (ja) 2015-05-20
JPWO2011102312A1 (ja) 2013-06-17
US20110310901A1 (en) 2011-12-22
US8737215B2 (en) 2014-05-27

Similar Documents

Publication Publication Date Title
JP5720668B2 (ja) パケット転送装置、通信システム、処理規則の更新方法およびプログラム
US9407503B2 (en) Control apparatus, communication system, communication method, and program
JP6144834B2 (ja) Sdnスイッチにより正確なフロー・エントリを獲得するための方法、およびsdnスイッチ、コントローラ、およびシステム
US20140019639A1 (en) Computer system and communication method
JP5598582B2 (ja) 通信システム、ノード、制御装置、通信方法およびプログラム
JP5800019B2 (ja) 通信経路制御システム、経路制御装置、通信経路制御方法および経路制御プログラム
US20130282867A1 (en) Information system, control apparatus, method of providing virtual network, and program
WO2014112612A1 (ja) 通信システム、制御装置及びネットワークトポロジの管理方法
JP2015029356A (ja) 制御装置、通信システム、制御方法及びプログラム
US9515926B2 (en) Communication system, upper layer switch, control apparatus, switch control method, and program
JP2007184799A (ja) パケット通信装置
CN106576108B (zh) 通信***中的通信方法和设备及***
WO2014017631A1 (ja) 制御装置、通信システム、通信方法及びプログラム
JP2013535895A (ja) 通信システム、ノード、統計情報収集装置、統計情報の収集方法およびプログラム
JP5725236B2 (ja) 通信システム、ノード、パケット転送方法およびプログラム
JP5720340B2 (ja) 制御サーバ、通信システム、制御方法およびプログラム
WO2013047705A1 (ja) ネットワークシステム、フロントエンド装置、制御メッセージ送信レート低減方法
JP2013223191A (ja) 通信システム、制御装置、パケット採取方法及びプログラム
WO2014104277A1 (ja) 制御装置、通信システム、通信ノードの制御方法及びプログラム
WO2013168207A1 (en) Communication system, communication method, and program
US8639822B2 (en) Extending application-layer sessions based on out-of-order messages
JP5657505B2 (ja) ネットワークシステム、中継装置、通信方法、中継方法及び中継プログラム
WO2015045275A1 (ja) 制御装置、ネットワークシステム、パケット転送制御方法、制御装置用プログラム
JP6424496B2 (ja) パケット転送システム,及びパケット転送装置
JP2007043382A (ja) フレーム処理装置

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: 11744598

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2012500583

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11744598

Country of ref document: EP

Kind code of ref document: A1