Patent Publication Number: US-10333817-B2

Title: Non-transitory computer-readable storage medium, communication device, and determination method

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2016-158039, filed on Aug. 10, 2016, the entire contents of which are incorporated herein by reference. 
     FIELD 
     The embodiments discussed herein are related to a non-transitory computer-readable storage medium, a communication device, and a determination method. 
     BACKGROUND 
     In a data center, a physical network is established by connecting a plurality of physical servers in a wired manner, and virtual machines or virtual switches are operated using the physical servers included in the physical network. With such a configuration, virtual networks have been increasingly established. Even in a system in which the virtual network is established in the physical network, there are some cases where a plurality of paths is used in communication between devices in order to secure a communication speed or measures against a system failure. 
     When communication is performed between the virtual machines included in the virtual network, communication is performed between the physical servers in which the virtual machines that perform communication operate, respectively. Thus, both a case where causes of the failure are present in the virtual network and a case where causes of the failure are present in the physical network are considered in the system in which the virtual network is established in the physical network. Accordingly, when the measures against the system failure are set up, an operator is to specify whether the causes of the failure are attributed to the failure in the physical network or are attributed to the problem in the virtual network. Here, the operator specifies whether or not the failure occurs in the physical network, and determines that a communication failure occurs due to the failure in the virtual network in a case where the failure does not occur in the physical network. 
     However, there are some cases where it is difficult to find a location in which the failure occurs by simply performing real-time monitoring or log analysis in the physical server included in the physical network. Thus, there are some cases where whether or not packet loss occurs is determined using a check packet. 
     As related arts, a test method using a packet acquired by adding path information to a header portion to which destination information is set has been suggested (for example, Japanese Laid-open Patent Publication No. 9-270822). In this test method, a relay node transmits a packet transmitted from a transmission source based on routing information, and a device as a transmission source determines a state of a communication path based on whether or not a response packet is received from a destination specified using the destination information. A system in which a node that receives a frame transmitted from a management computer transmits a received frame based on the routing information indicating a delivery path of the frame in a communication network and transmits a response to the management computer also has been suggested. In this system, the management computer specifies a location in which the failure occurs based on a reception state of the response from the node included in the network (for example, International Publication Pamphlet No. WO 2010064532). A communication method of enabling restoration even though the packet loss occurs in any one path by generating a redundant packet if the packet is received and transmitting the received packet and the redundant packet over different paths to a network as a destination has been suggested (for example, Japanese Laid-open Patent Publication No. 2004-274703). 
     SUMMARY 
     According to an aspect of the invention, a non-transitory computer-readable storage medium that stores a determination program that causes a communication device to execute a process, the communication device monitoring a communication state with a communication destination device, the process including transmitting a check packet to the communication destination device, when the communication device receives a first response packet, determining whether or not header information of a second response packet is included in data of the first response packet, both of the first response packet and the second response packet being transmitted from the communication destination device in response to reception of the check packet on the communication destination device, a communication path corresponding to the first response packet and a communication path corresponding to the second response packet being different each other, and determining that a failure occurs in the communication path corresponding to the second response packet when the header information of a second response packet is included in data of the first response packet and when the communication device does not receive the second response packet within a predetermined time from transmitting the check packet. 
     The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims. 
     It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed. 
    
    
     
       BRIEF DESCRIPTION OF DRAWINGS 
         FIG. 1  is a diagram for describing an example of a check method according to an embodiment; 
         FIG. 2  is a diagram for describing an example of a configuration of a communication device; 
         FIG. 3  is a diagram for describing an example of a hardware configuration of the communication device; 
         FIG. 4  is a diagram for describing an example of a network; 
         FIG. 5  is a diagram for describing an example of a check packet and a check packet table; 
         FIG. 6  is a flowchart for describing an example of a transmission process of the check packet; 
         FIG. 7  is a diagram for describing an example of a traffic distribution process using a switch; 
         FIG. 8  is a diagram for describing an example of transmission paths of a check packet and a response packet; 
         FIG. 9  is a diagram for describing an example of a generation method of a base of the response packet; 
         FIG. 10  is a diagram for describing an example of a generation method of the response packet; 
         FIG. 11  is a flowchart for describing an example of a reception process of a packet in the communication device; 
         FIG. 12  is a flowchart for describing an example of a process when the check packet is received and the response packet is transmitted; 
         FIG. 13  is a flowchart for describing an example of a reception process of the response packet; 
         FIG. 14  is a diagram for describing an example of a check packet table; 
         FIG. 15  is a flowchart for describing an example of a timer process; 
         FIG. 16  is a diagram for describing a loss example of the response packet; 
         FIG. 17  is a flowchart for describing an example of an inquiry process of the path; 
         FIG. 18  is a flowchart for describing an example of a process in a management device that receives an inquiry about a path; 
         FIG. 19  is a flowchart for describing an example of a specification process of a path in the management device; 
         FIG. 20  is a diagram for describing an example of a configuration of a communication device according to a second embodiment; 
         FIG. 21  is a diagram for describing an example of a generation method of a response packet; 
         FIG. 22  is a diagram for describing an example of the generation method of the response packet; 
         FIGS. 23A and 23B  are a flowchart for describing an example of the generation method of the response packet; 
         FIG. 24  is a flowchart for describing an example of a process performed when a distribution state of the paths is learned; 
         FIG. 25  is a diagram for describing an example of communication performed in a third embodiment; 
         FIG. 26  is a diagram for describing an example of a configuration of a communication device according to the third embodiment; 
         FIG. 27  is a diagram for describing an example of the check packet; 
         FIG. 28  is a diagram for describing an example of the check packet table; 
         FIG. 29  is a flowchart for describing an example of a transmission process of the check packet; 
         FIG. 30  is a flowchart for describing an example of a duplication process of the check packet; 
         FIG. 31  is a diagram for describing an example of a reception state table; 
         FIG. 32  is a flowchart for describing an example of a reception process of the check packet; 
         FIG. 33  is a flowchart for describing an example of the timer process; 
         FIG. 34  is a flowchart for describing an example of the timer process; 
         FIG. 35  is a flowchart for describing an example of a generation process of the base of the response packet; 
         FIG. 36  is a diagram for describing an example of the response packet; 
         FIG. 37  is a flowchart for describing an example of a reception process of the response packet; 
         FIG. 38  is a diagram for describing an example of the check packet table; and 
         FIGS. 39A and 39B  are a flowchart for describing an example of an inquiry process of the path. 
     
    
    
     DESCRIPTION OF EMBODIMENTS 
     In order to detect a failure in a path from a communication device to a device as a communication destination, the communication device transmits a check packet, and determines whether or not a response packet to the transmitted check packet is received. However, in a case where the paths from the communication device to the device as the communication destination are redundant, since there is a possibility that the check packet and the response packet will be transmitted over different paths, it is difficult to specify the path in which the failure occurs. That is, in a case where a transmission source of the check packet does not receive the response packet, there are a possibility that a failure will occur in a transmission path of the response packet and a possibility that a failure will occur in a transmission path of the check packet, but it is difficult to specify the path in which the failure occurs. 
     An object of an aspect of the present embodiment is to specify a path in which a failure occurs. 
       FIG. 1  is a diagram for describing an example of a check method according to an embodiment. A system illustrated in  FIG. 1  includes communication devices  20  ( 20   a  to  20   d ) and switches  10  ( 10   a  to  10   d ), but the number of communication devices  20  or the number of switches  10  included in the system is arbitrarily set. In the example of  FIG. 1 , it is assumed that there are a path (path R 1 ) passing through a switch  10   a , a switch  10   b , and a switch  10   d , and a path (path R 2 ) passing through the switch  10   a , a switch  10   c  and the switch  10   d , as communication paths from the communication device  20   a  to the communication device  20   d . It is assumed that each switch  10  distributes a path by using a hash value of a header of the received packet. Accordingly, it is assumed that in the switch  10  such as the switch  10   a  or the switch  10   d  through which a plurality of paths passes, a path to be used for transmitting a reception packet is selected depending on a hash value of a header of the reception packet. 
     In such a system, it is assumed that the communication device  20   a  generates a check packet P 0  (not illustrated) for the communication device  20   d . It is assumed that the communication device  20   a  stores information of a header included in the check packet P 0  and the check packet P 0  is transmitted to the communication device  20   d . Thus, if the check packet P 0  is transmitted from the communication device  20   a , this check packet arrives at the switch  10   a.    
     The switch  10   a  determines to transmit the check packet P 0  to the switch  10   b  by using the hash value of the header of the check packet P 0 . The switch  10   a  transmits the check packet P 0  to the switch  10   b . If the check packet P 0  is received from the switch  10   a , since the destination of the check packet P 0  is the communication device  20   d , the switch  10   b  transmits the check packet P 0  to the switch  10   d . Since the destination of the check packet P 0  is the communication device  20   d , the switch  10   d  transmits the check packet P 0  to the communication device  20   d . Accordingly, the check packet P 0  is transmitted along the path (path R 1 ) illustrated in an arrow A 11  of  FIG. 1 . In a case where the failure does not occur in the path R 1 , the check packet P 0  arrives at the communication device  20   d.    
     If the check packet P 0  is received, the communication device  20   d  generates response packets as a response to the check packet P 0  by a predetermined number. Here, the predetermined number is an arbitrary number of 2 or more. When a plurality of response packets is generated, the communication device  20   d  sets information items of headers included in the response packets to have different values such that a possibility that communication paths through which the plurality of response packets passes will be different paths becomes high. For example, the communication device  20   d  sets transmission source port numbers of the plurality of response packets to be different from one another. In  FIG. 1 , it is assumed that the communication device  20   d  generates response packets P 1  and P 2 , as the response packets. It is assumed that the transmission source port number (SP) included in the header of the response packet P 1  is SP#A. Meanwhile, it is assumed that the transmission source port number included in the header of the response packet P 2  is SP#B. 
     In a case where a part of the response packets does not arrive at the communication device  20   a , the communication device  20   d  adds header information of “another response packet” to data of each response packet such that the communication device  20   a  can recognize the information of the header of the response packet that does not arrive at the transmission destination. Here, the “another response packet” of a certain response packet is a response packet among the plurality of response packets which notify that the reception succeeds and are generated as responses to the check packet except for this response packet. Accordingly, the response packet P 2  is another response packet of the response packet P 1 . Meanwhile, the response packet P 1  is another response packet of the response packet P 2 . Accordingly, header information H 1  of the response packet P 2  is included in data of the response packet P 1 . Meanwhile, header information H 2  of the response packet P 1  is included in data of the response packet P 2 . In the example of  FIG. 1 , information of the transmission source port number included in the header of another response packet is used as the information of another response packet. Thus, the response packet P 1  includes data indicating that the transmission source port number is SP#B, as the header information H 1  of another response packet. The response packet P 2  includes data indicating that the transmission source port number is SP#A, the header information H 2  of another response packet. 
     If the communication device  20   d  transmits the response packets P 1  and P 2  to the communication device  20   a , it is assumed that both the response packets P 1  and P 2  arrive at the switch  10   d . It is assumed that the switch  10   d  determines that the transmission destination of the response packet P 1  is the switch  10   c  based on the hash value of the header information of the response packet P 1 . Thus, the response packet P 1  is transmitted over the path (arrow Al 2 ) up to the communication device  20   a  through the switch  10   c  and the switch  10   a . It is assumed that the path of an arrow Al 2  is a path R 2 . 
     Meanwhile, it is assumed that the switch  10   d  determines for the response packet P 2  that the transmission destination of the response packet P 2  is the switch  10   b  based on the hash value of the header information of the response packet P 2 . Thus, the response packet P 2  is transmitted over a path (arrow A 13 ) up to the communication device  20   a  through the switch  10   b  and the switch  10   a . An arrow A 13  is a path along the path R 1 . 
     In a case where a failure occurs neither the path R 1  nor the path R 2 , the communication device  20   a  can receive both the response packets P 1  and P 2 . In this case, a failure does not occur in a physical network between the communication device  20   a  and the communication device  20   d.    
     In a case where a failure occurs in any one of the path R 1  and the path R 2 , the communication device  20   a  can receive the response packet transmitted over the path in which the failure does not occur. For example, it is assumed that the communication device  20   a  receives the response packet P 2  and does not receive the response packet P 1 . Thus, the communication device  20   a  can specify the presence of the response packet P 1  which fails to be received and the information included in the header of the response packet P 1  by using the header information H 2  of the data of the response packet P 2  which succeeds to be received. Here, the communication device  20   a  determines that the failure occurs in the transmission path specified using the information of the header of the response packet P 1 . An arbitrary known method can be used as the method of specifying the transmission path based on the information of the header. 
     Incidentally, in a case where the failure occurs in the path R 1 , the check packet P 0  does not arrive at the communication device  20   d  as represented by an arrow A 11 . Thus, the communication device  20   d  does not generate the response packets, and the communication device  20   a  does not also receive the response packets. As stated above, in a case where any response packet is also not received, the communication device  20   a  determines that the check packet transmitted by the communication device  20   a  itself does not arrive at the communication device  20   d  as the destination. When the check packet P 0  is transmitted, since the information of the header of the check packet P 0  is stored, the communication device  20   a  determines that the failure occurs in the transmission path specified by the information of the header of the check packet P 0 . 
     As mentioned above, the communication device  20  that receives the check packet transmits the plurality of response packets including the header information of another response packet over different paths, and the communication device  20  as the transmission source of the check packet can recognize the presence of the response packet that is not received. It is possible to specify the path in which the failure occurs by specifying the information of the header of the response packet that is not received by using the received response packet. In a case where any response packet is not received, the communication device  20  can determine that the failure occurs in the transmission path of the transmitted check packet. Accordingly, it is possible to specify the path in which the failure occurs among the plurality of redundant paths by the method according to the embodiment. 
     &lt;Examples of Device Configuration and Network&gt; 
       FIG. 2  is a diagram for describing an example of a configuration of the communication device  20 . The communication device  20  includes a transmission unit  21 , a reception unit  22 , a classification unit  23 , a data processing unit  24 , and a check unit  30 . The check unit  30  includes a generation unit  31 , a storage unit  32 , a response unit  33 , a duplication unit  34 , and a determination unit  35 . The storage unit  32  stores a check packet table  36 , and retains data to be used in the process performed in the check unit  30 . For example, the storage unit  32  may retain an address resolution protocol (ARP) table. 
     The transmission unit  21  transmits the packet to another device such as another communication device  20 . The reception unit  22  receives the packet from another device such as the communication device  20  or the switch  10 . The reception unit  22  outputs the received packet to the classification unit  23 . 
     The classification unit  23  classifies the input packets by using a destination port number of the packet. In a case where the destination port number of the packet is a value used for identifying the check packet or the response packet processed in the check unit  30 , the classification unit  23  outputs the reception packet to the response unit  33  and the determination unit  35 . Hereinafter, the value used for identifying the check packet or the response packet processed in the check unit  30  is described as a “checking port number”. Meanwhile, in a case where the destination port number of the packet is a value other than the checking port number, the classification unit  23  outputs the reception packet to the data processing unit  24 . It is assumed that the classification unit  23  previously stores the checking port number. The data processing unit  24  processes the input packet, and appropriately generates a transmission packet. 
     In a case where the communication device  20  receives the check packet from another communication device  20 , the response unit  33  generates information as a base of the response packet, and the duplication unit  34  generates a plurality of response packets by using the information generated by the response unit  33 . The duplication unit  34  transmits the plurality of generated response packets to the transmission source of the check packet through the transmission unit  21 . 
     Meanwhile, in a case where the communication device  20  receives the response packets from another communication device  20 , the determination unit  35  acquires information items of headers of the received response packets, and determines whether or not all the response packets transmitted from the communication device  20  as the destination of the check packet are acquired. The determination unit  35  determines that a failure occurs in a transmission path of the response packet that fails to be received. The details of the process performed in the determination unit  35  will be described below. In a case where the communication device  20  transmits the check packet, the generation unit  31  generates a check packet to be addressed to the communication device  20  as the communication destination as a checking target of a state of a path. The generation unit  31  stores header information of the check packet in the check packet table  36 . 
       FIG. 3  is a diagram for describing an example of a hardware configuration of the communication device  20 . The communication device  20  includes a processor  101 , a memory  102 , a bus  103 , and a network connection device  104 . The memory  102  includes a random access memory (RAM) and a read only memory (ROM). The processor  101  may execute a program stored in the memory  102 . The bus  103  connects the processor  101 , the memory  102 , and the network connection device  104  such that these components are able to mutually transmit and receive data. The network connection device  104  performs the inputting and outputting of information with another device included in the network. For example, the network connection device  104  is realized as a network interface card (NIC). In the communication device  20 , the processor  101  is operated as the classification unit  23 , the data processing unit  24 , the generation unit  31 , the response unit  33 , the duplication unit  34 , and the determination unit  35 . The memory  102  is operated as the storage unit  32 , and is also operated as a part of the data processing unit  24  by being used for storing data processed by the data processing unit  24 . The network connection device  104  realizes the transmission unit  21  and the reception unit  22 . 
     The communication device  20  may optionally include one or more devices of an input device, an output device, and a portable storage medium driving device. The input device is an arbitrary device such as a keyboard used for inputting information, and the output device is an arbitrary device such as a display used for outputting data. The portable storage medium driving device can output the data included in the memory  102  to a portable storage medium, and can read a program or data from the portable storage medium. Here, the portable storage medium is an arbitrary portable storage medium. 
     In a case where the communication device  20  is realized as a computer, the classification unit  23 , the data processing unit  24 , the generation unit  31 , the response unit  33 , the duplication unit  34 , and the determination unit  35  may be realized by software such as an operating system (OS). The entire communication device  20  may be realized by the NIC. In a case where the entire communication device  20  is realized by the NIC, one or more units of the classification unit  23 , the data processing unit  24 , the generation unit  31 , the response unit  33 , the duplication unit  34 , and the determination unit  35  may be realized by hardware. 
       FIG. 4  is a diagram for describing an example of the network. The network illustrated in  FIG. 4  includes communication devices  20   a  to  20   h , a plurality of switches  10  (SW 1  to SW 10 ), and a management device  80 .  FIG. 4  is an example, and the number of switches  10  included in the network, the number of communication devices  20 , and the connection relationship between the switches  10  or the communication devices  20  may be changed depending on the implementation of these components. 
     The management device  80  may be connected with all the communication devices  20  included in the network through a control line. The communication device  20  transmits an inquiry including information of a header transmitted along a path in which it is determined that a failure occurs by using a reception state of the response packet to the management device  80 . The management device  80  specifies a transmission path specified from the information of the header by using the information of the header included in the inquiry received from the communication device  20 , a network topology, an algorithm of a distribution process performed in each switch  10 . Thereafter, the management device  80  may transmit a path information notification including information of the specified transmission path to the communication device  20  as a transmission source of the inquiry. In this case, it is possible to acquire information for specifying the path in which the failure occurs from the communication device  20 . Accordingly, an operator can acquire the information of the path in which the failure occurs from a display device of the communication device  20  that transmits the check packet. The management device  80  may display the information of the path specified using the information of the header included in the inquiry on a display device capable of being visually perceived by the operator, or may transmit the information for specifying the path in which the failure occurs to a terminal being used by the operator. 
     In a case where a transmission destination port is able to be acquired from the switch  10  by notifying the switch  10  of the header information, the management device  80  may be connected to each switch  10  included in the network, as depicted by a dotted line of  FIG. 4 . The management device  80  specifies the path in which the failure occurs by transmitting the information of the header included in the inquiry to the switch  10  and acquiring a destination of the distribution performed in the switch  10  from the switch  10 . The process performed by the management device  80  after the path in which the failure occurs is specified is the same as that in a case where the management device  80  is not connected to the switch  10 . 
     &lt;First Embodiment&gt; 
     Hereinafter, a first embodiment will be described while distinguishing between a transmission process of the check packet, a distribution process for the plurality of paths, a reception process of the check packet and a transmission process of the response packet, reception of the response packet, an inquiry about the path in which the packet is lost, and a process performed in the management device  80 . In the following description, in order to easily understand which one of the communication devices  20  performs the process, there are some cases where the ends of symbols will be assigned the same alphabets as the ends of symbols of the communication devices  20  that perform the process. For example, a generation unit  31   a  is the generation unit  31  of the communication device  20   a , and a determination unit  35   g  is the determination unit  35  of the communication device  20   g.    
     (1) Transmission Process of Check Packet 
     The generation unit  31  generates the check packet in response to a check instruction input to the communication device  20 . The check instruction may be transmitted to the communication device  20  from the management device  80 , or may be input by the operator from the input device of the communication device  20 . An IP address assigned to the destination of the check packet may be included in the check instruction, and a value used as a transmission source port of the check packet may be optionally included in the check instruction. 
       FIG. 5  is a diagram for describing an example of the check packet and the check packet table. P 5  indicates an example of the check packet. The check packet includes an Ether header, an Internet Protocol (IP) header, a User Datagram Protocol (UDP) header, and an UDP payload. The Ether header includes a destination media access control (MAC) address and a transmission source MAC address. The IP header includes a transmission source IP address, a destination IP address, and protocol information (Proto). In the example of P 5 , since the protocol of the transport layer is the UDP, the protocol information is set to be a value indicating the UDP. The UDP header includes a transmission source port number (Src Port) and a destination port number (Dst Port). Here, the generation unit  31  sets the destination port number to be the checking port number such that the process is performed in the check unit  30  of the communication device  20  as the destination of the check packet. As the transmission source port number, the value generated by the generation unit  31  or a value included in the check instruction is used. 
     The UDP payload includes an ID field and a type field. An ID used for identifying each check packet of the check packets of which the combinations of the transmission sources and the destinations are the same is stored in the ID field. Information indicating whether the packet is the check packet or the response packet is stored in the type field. In a case where the packet is the check packet, the value of the type field is Request, and in a case where the packet is the response packet, the type field is Response. 
     If the check packet is generated, the generation unit  31  records the information of the check packet as check packet information of the check packet table  36 . 
     The check packet table  36  includes check packet information, response packet information, and timer field. The check packet information is information of the check packet transmitted by the communication device  20  itself, and includes a destination IP address field, a transmission source port number field, and an ID field. An IP address of the destination of the check packet is stored in the destination IP address field, and the transmission source port number of the check packet is stored in the transmission source port number field. An ID of the check packet is stored in the ID field. 
     The response packet information is information used for specifying the reception state of the response packet as a response to the check packet, which is specified from information included in an entry, and includes a response number field, a response list field, a reception response number field, and a reception list field. Information of the total number of response packets transmitted as responses to the same check packet as the check packet corresponding to the response packet received by the communication device  20  is stored in the response number filed. A list acquired by recording transmission source port numbers included in the response packets for a plurality of response packets transmitted as responses to the same check packet as the check packet corresponding to the response packet received by the communication device  20  is stored in the response list field. The number of response packets received by the communication device  20  is recorded in the reception response number field. A list of the transmission source port numbers included in the response packets received by the communication device  20  as responses to the check packet specified from the entry is stored in the reception list field. The timer field is a time when the response packet are received after the check packet is transmitted, if the value of the timer field is 0, the reception of the response to the check packet of the entry is ended. 
       FIG. 6  is a flowchart for describing an example of the transmission process of the check packet. In  FIG. 6 , SeqID is a variable indicating a value used as an ID of the check packet, and is set to be SeqID=0 when the communication device  20  is initialized. The generation unit  31  waits until the check instruction is input (step S 1 ). If the input of the check instruction is detected, the generation unit  31  specifies a MAC address (MACx) of the communication device  20  as the destination from the ARP table and the destination IP address (IPx) included in the check instruction (Yes in step S 1 , step S 2 ). The generation unit  31  determines whether or not a designation of the transmission source port number is included in the check instruction (step S 3 ). In a case where the designation of the transmission source port number is not included in the check instruction, the generation unit  31  generates the transmission source port number (SPx) (No in step S 3 , step S 4 ). In step S 4 , the generation unit  31  generates the transmission source port number by using a random number such that the value of the transmission source port number is random. In a case where the transmission source port number is included in the check instruction (Yes in step S 3 ), if the generation unit  31  generates the transmission source port number (step S 4 ), the generation unit  31  generates the check packet (step S 5 ). 
     In the check packet, the destination MAC address is set to be the MAC address (MACx) of the communication device  20  as the destination acquired in step S 2 , and the destination IP address is set to be the IP address (IPx) designated in response to a generation instruction. The transmission source MAC address and the IP address of the check packet are set to be the values assigned to the communication device  20  as the transmission source of the check packet, and the protocol is designated as being the UDP. The transmission source port number included in the check packet is set to be a designation value designated by the generation instruction or the transmission source port number SPx generated in step S 4 . The destination port number is set to be the checking port number, and the ID is set to be the value of the SeqID. Request is set in the type field included in the check packet. If the check packet is generated, the generation unit  31  records the information of the of the check packet of the check packet table  36  (step S 6 ). 
     In a check packet table  36 - 1  illustrated in  FIG. 5 , the values of the destination IP address, the transmission source port number, and the ID are recorded as the check packet information. For example, in a case where the communication device  20   a  transmits a check packet with which transmission source port number=12345 and ID=1 to the communication device  20   g  to which an IP address of IPg is assigned, information of a first entry in the check packet table  36 - 1  is recorded. Similarly, in a case where the communication device  20   a  transmits a check packet of which transmission source port number=22334 and ID=5 to the communication device  20   f  to which an IP address of IPf is assigned, information of a second entry in the check packet table  36 - 1  is recorded. 
     Thereafter, the generation unit  31  sets a timer value in the timer field of the entry as a processing target, and activates the timer (step S 7 ). The generation unit  31  transmits the check packet from the transmission unit  21  to the destination (step S 8 ). Thereafter, the generation unit  31  increments the variable SeqID by one, and returns to step S 1  (step S 9 ). 
     (2) Example of Distribution Process to Plurality of Paths 
     In a case where the paths are redundant, the switch  10  determines which one of paths is used for transmitting the packet by using the value included in the header. Thus, in a redundant system, if the communication device  20  transmits the check packet, the transmitted check packet is transmitted to the communication device  20  as the destination over any one of the plurality of paths. Hereinafter, the determination method of the transmission path will be described with reference to  FIG. 7 . 
     A packet P 21  of  FIG. 7  is an example of the packet to be transmitted. Among information items included in the header of the packet P 21 , the destination MAC address, the transmission source MAC address, the transmission source IP address, the destination IP address, the protocol, the transmission source port number, and the destination port number are used in the path determination. The information items to be used in the path determination are illustrated in H of  FIG. 7 . The switch  10  through which the plurality of paths passes correlates an output destination with a remainder acquired when a hash value calculated from a bit array acquired by connecting information items to be used in the path determination is divided by the number of paths passing through the switch  10 , and stores the output destination. Thus, the switch  10  determines a transmission destination of the packet according to the value of the acquired remainder. Since the switches  10  included in the network perform the same process, the transmission path of the packet is distributed to the plurality of paths. 
     Hereinafter, in order to easily describe an example of the distribution process, an example of a network in which the number of communication devices  20  or the number of switches  10  is smaller than that in the network illustrated in  FIG. 4  is used. For example, it is assumed that four communication devices  20  including a communication device  20   m , a communication device  20   n , a communication device  20   p , and a communication device  20   q  are connected to each other through the switches  10  (SW 21  to SW 24 ) as illustrated in a case C 1 . In a case where the packet is transmitted to the communication device  20   m  to the communication device  20   p  in this state, as the transmission paths, there are two paths including a path from the communication device  20   m  to the communication device  20   p  through the SW 21 , the SW 23 , and the SW 22  and a path from the communication device  20   m  to the communication device  20   p  through the SW 21 , the SW 24 , and the SW 22 . If the packet is transmitted from the communication device  20   m , the SW 21  calculates a remainder when a hash value of information represented in H of the packet P 21  by 2. The SW selects one of an arrow α and an arrow β, as the transmission path depending on the acquired remainder. For example, it is assumed that the arrow α is correlated with remainder=0 and the arrow β is correlated with remainder=1. Here, in a case where a remainder acquired using the hash value calculated from the header of the packet P 21  is 0, since the packet P 21  is transmitted from the SW 21  to the SW 23 , this packet is transmitted to the communication device  20   p  through the SW 21 , the SW 23 , and the SW 22 . Meanwhile, in a case where the remainder acquired using the hash value calculated from the header of the packet P 21  is 1, since the packet P 21  is transmitted from the SW 21  to the SW 24 , this packet is transmitted to the communication device  20   p  through the SW 21 , the SW 24 , and the SW 22 . 
       FIG. 8  is a diagram for describing an example of the transmission path of the check packet and the response packet. The determination method of the transmission path is similarly applied to any packet other the check packet. For example, the path is also determined by the same process in a case where the response packet is transmitted from the communication device  20  as the destination of the check packet. 
     For example, it is assumed that the check packet transmitted from the communication device  20   a  arrives at the communication device  20   g  through the SW 1 , the SW 3 , the SW 9 , the SW 7 , and the SW 6  as depicted by an arrow R 21 . Meanwhile, it is assumed that the communication device  20   g  generates packets which are two response packets as responses to the check packet and have different transmission source port numbers from each other and transmits the generated packets to the communication device  20   a . In this case, the individual response packets are distributed to the paths by the same process as the process described with reference to  FIG. 7 . For example, it is assumed that one response packet is transmitted over a path arriving at the communication device  20   a  through the SW 6 , the SW 8 , the SW 10 , the SW 4 , and the SW 1  as depicted by an arrow R 22 . Meanwhile, the other response packet is transmitted over a path to the communication device  20   a  through the SW 6 , the SW 7 , the SW 9 , the SW 3 , and the SW 1  as depicted by an arrow R 23 . 
     (3) Reception Process of Check Packet and Transmission Process of Response Packet 
     It is assumed that a check packet P 31  illustrated in  FIG. 9  is a check packet transmitted from the communication device  20   a  to the communication device  20   g . If the check packet P 31  is received, the reception unit  22   g  of the communication device  20   g  outputs the check packet P 31  to the classification unit  23   g . Since the destination port number included in the check packet P 31  is the checking port number, the classification unit  23   g  outputs the check packet P 31  to the response unit  33   g  and the determination unit  35   g . Since the value of the type field included in the UDP payload of the check packet P 31  is Request, the determination unit  35   g  determines that this packet is not the process target, and ends the process. 
     Since the value of the type field included in the UDP payload of the check packet P 31  is Request, the response unit  33   g  generates bases to be used for generating the response packets by using the check packet P 31 . 
       FIG. 9  is a diagram for describing an example of the generation method of the bases of the response packets. In a base P 32  of the response packet, the transmission source MAC address of the check packet P 31  is used as the destination MAC address, and the transmission source IP address of the check packet P 31  is used as the destination IP address. In the base P 32  of the response packet, the destination MAC address of the check packet P 31  is used as the transmission source MAC address, and the destination IP address of the check packet P 31  is used as the transmission source IP address. The value of the transmission source port number set to the response packet is set to be different for each response packet, but the transmission source port number is appropriately set to the base P 32 . For example, the transmission source port number of the check packet may be set to the base P 32 . In the base P 32  of the response packet, the checking port number is used as the destination port number, and the value included in the UDP payload of the check packet is used as the ID included in the UDP payload. In the base P 32  of the response packet, the type field is set to be Response. The response unit  33   g  outputs the generated base P 32  to the duplication unit  34   g.    
       FIG. 10  is a diagram for describing an example of the generation method of the response packet. An example of the process performed in a case where response packets P 41  to P 43  are generated will be described with reference to  FIG. 10 . The duplication unit  34   g  stores the number (response number) of response packets generated to one check packet. The duplication unit  34   g  determines as many transmission source port numbers as the response number, and generates response packets by using the determined transmission source port numbers. The response number and the transmission source port number included in each response packet are included in data of an individual response packet. The duplication unit  34   g  may determine the transmission source port number by performing an arithmetic operation using the transmission source port number included in the base P 32 . 
     For example, in the example of  FIG. 10 , the transmission source port number to be used for the response packet P 41  by the duplication unit  34   g  is a transmission source port number pn 1  included in the base P 32 . It is assumed that the duplication unit  34   g  sets the transmission source port number to be used for the response packet P 42  to be pn 2  acquired by adding a predetermined number to pn 1 . It is assumed that the duplication unit  34   g  sets the transmission source port number to be used for the response packet P 43  to be pn 3  acquired by adding a predetermined number to the transmission source port number pn 2  of the response packet P 42 . The duplication unit  34   g  adds the response number and a list {pn 1 , pn 2 , pn 3 } of the transmission source port numbers of the response packets P 41  to P 43  to the UDP payloads of the response packets P 41  to P 43 . The duplication unit  34   g  transmits the generated response packets P 41  to P 43  to the communication device  20   a  through the transmission unit  21   g.    
     In any response packet, since a value set to the base P 32  of the response packet is used as a value other than the transmission source port number, there is no difference between the response packets except for the value other than transmission source port number. Thus, if any one of the packets P 41  to P 43  arrives at the transmission source of the check packet, it is possible to restore the header information in the total number of transmitted response packets or each of the transmitted response packets in the communication device  20  as the transmission source of the check packet. 
       FIG. 11  is a flowchart for describing an example of the reception process of the packet in the communication device  20 . The reception unit  22  of the communication device  20  waits until the packet is received (No in step S 21 ). If the packet is received, the reception unit  22  outputs the received packet to the classification unit  23  (Yes in step S 21 ). The classification unit  23  determines whether or not the destination port number of the received packet is the checking port number (step S 22 ). In a case where the destination port number of the received packet is not the checking port number, since the received packet is neither the check packet nor the response packet, the received packet is processed by the data processing unit  24  (No in step S 22 , step S 23 ). In a case where the destination port number of the reception packet is the checking port number, the classification unit  23  outputs the reception packet to the determination unit  35  and the response unit  33  (Yes in step S 22 ). The determination unit  35  and the response unit  33  determine whether or not the value of the type field of the input packet is set to be Response (step S 24 ). In a case where the value of the type field of the input packet is not Response, the response unit  33  processes the packet when the check packet is received (step S 25 ). The example of the process when the check packet is received is the process described with reference to  FIGS. 9 and 10 . Meanwhile, in a case where the value of the type field of the input packet is Response, the determination unit  35  processes the packet when the response packet is received (step S 26 ). The process when the response packet is received will be described below. After the process of step S 25  or step S 26  is performed, the processes subsequent to step S 21  are repeated. 
       FIG. 12  is a flowchart for describing an example of the process when the check packet is received and the response packet is transmitted.  FIG. 12  is an example of the process of step S 25  of  FIG. 11 . In  FIG. 12 , the case where the transmission source port number is set to be 0 in the response packet base and the transmission source port number of the check packet is notified to the duplication unit  34  separately from the base of the response packet will be described. The response unit  33  generates the response packet base to be used for generating the response packet by using the check packet (step S 31 ). In the response packet base, the transmission source MAC address of the check packet is used as the destination MAC address, and the transmission source IP address of the check packet is used as the destination IP address. A MAC address of its own node is set to the transmission source MAC address, and an IP address assigned to its own node is used as the transmission source IP address. The transmission source port number (srcport) is set to be 0, and the destination port number is set to be the checking port number. The protocol is set to be the UDP, and the ID is set to be the ID of the check packet. The setting type is set to be Response. The total number (respNum) of the response packet is set to be 0. 
     The duplication unit  34  sets a variable n to the response number and sets a variable p to the transmission source port number of the check packet, and initializes a transmission port number list (SL) (step S 32 ). The transmission port number list is a list of the transmission source port number to be used for generating the response packet. The duplication unit  34  determines whether or not the variable n is 0 (step S 33 ). In a case where the variable n is not 0, the duplication unit  34  adds the variable p to the transmission port number list (No in step S 33 , step S 34 ). The duplication unit  34  increments the variable p by one and decrements the variable n by one, and returns to step S 33  (step S 35 ). In a case where the variable n is 0, the duplication unit  34  determines that as many of the transmission source port number as the response number (Yes in step S 33 ). Here, the duplication unit  34  generates the UDP payload to which the response number and the transmission port number list are set by using the base of the response packet (step S 36 ). 
     In step S 37 , the duplication unit  34  sets the value acquired by performing a pop process on the transmission port number list (SL) to the variable pn. The duplication unit  34  sets the variable pn to the transmission source port number of the response packet generated by combining the response packet base and the UDP payload, and transmits the response packet acquired after the setting process is performed (step S 37 ). The duplication unit  34  determines whether or not the data is included in the transmission port number list (step S 38 ). In a case where the data is included in the transmission port number list, the processes subsequent to step S 37  are repeated (No in step S 38 ). Meanwhile, in a case where the data is not included in the transmission port number list, the duplication unit  34  determines that the transmission of the response packet is ended, and ends the process (Yes in step S 38 ). 
     (4) Reception of Response Packet 
     An example of the process of the communication device  20  that receives the response packets will be described as an example of a case where the communication device  20   a  receives the response packets after the response packets P 41  to P 43  are transmitted to the communication device  20   a  from the communication device  20   g . In the communication device  20   a , the classification unit  23   a  acquires the reception packets through the reception unit  22   a . The classification unit  23   a  outputs the received packets to the response unit  33   a  and the determination unit  35   a  since the checking port number is used as the received packet. 
     The response unit  33   a  determines that the process of the input packet is not performed since the type value of the response packet is Response. Meanwhile, the determination unit  35   a  recognizes the response packet as the processing target since the type value of the response packet is Response. 
       FIG. 13  is a flowchart for describing an example of the reception process of the response packet.  FIG. 13  is an example of the process of step S 26  of  FIG. 11 . An example of the process performed in the determination unit  35   a  will be described with reference to  FIG. 13 . The determination unit  35   a  specifies the entry as the processing target from the check packet table  36  by using the ID and the transmission source IP address of the received response packet (step S 41 ). For example, it is assumed that the communication device  20   a  retains the check packet table  36 - 1  ( FIG. 5 ) and the response packet including ID=1 is received from the communication device  20   g . It is assumed that the IP address of the communication device  20   g  is IPg. In so doing, the determination unit  35   a  specifies the first entry of the check packet table  36 - 1 , as the processing target. 
     The determination unit  35   a  determines whether or not reception response number=0 is set in the entry as the processing target (step S 42 ). The entry in which the reception response number=0 is an entry that does not receive the response packet so far and is related to the check packet. Here, in a case where the entry in which reception response number=0 is the processing target, the determination unit  35   a  sets the response number and the response list to be values included in the response packet, and initializes the reception list (step S 43 ). For example, it is assumed that the response packet input to the determination unit  35   a  is the response packet P 41  ( FIG. 10 ). In so doing, the determination unit  35   a  records response number=3 and the response list={pn 1 , pn 2 , pn 3 } in the entry as the processing target. That is, in the process of step S 43 , information of another response packet other than the received response packet is acquired from the data of the response packet. Another response packet is a packet transmitted as a response to the same check packet as the received response packet. 
     In a case where the reception response number in the entry as the processing target is equal to or greater than 1 and after the process of step S 43  is performed, the determination unit  35   a  increments the reception response number in the entry as the processing target by one, and adds the transmission source port number included in the response packet to the reception list (step S 44 ). For example, in a case where the response packet input to the determination unit  35   a  is the response packet P 41  ( FIG. 10 ), after the process of step S 43  is performed, the determination unit  35   a  sets the reception response number to be 1, and adds the transmission source port number pn 1  of the response packet P 41  to the reception list. Thus, these processes are ended, the first entry of the check packet table  36 - 1  is changed to a first entry of a check packet table  36 - 2  illustrated in  FIG. 14 . 
     Thereafter, the determination unit  35   a  determines whether or not the reception response number is the same as the response number (step S 45 ). In a case where the reception response number is not the same as the response number, the determination unit  35   a  ends the process (No in step S 45 ). In this case, if the packet is newly received, the processes described with reference to  FIGS. 11 to 13  are repeated. Meanwhile, in a case where the reception response number is the same as the response number, the determination unit  35   a  outputs the determination (success determination) indicating that there is no abnormality in the path as the checking target, and removes the entry as the processing target from the check packet table  36  (Yes in step S 45 , step S 46 ). 
     A second entry of the check packet table  36 - 2  illustrated in  FIG. 14  is an example in which the reception response number and the response number are the same through the reception of the response packet. In so doing, the determination unit  35   a  determines that all the response packets transmitted to the communication device  20   a  from the communication device  20   f  to which the IP address of IPf is assigned arrives at the communication device  20   a . Thus, the determination unit  35   a  determines that the failure does not occur over a physical network in the communication path between the communication device  20   f  and the communication device  20   a . The determination unit  35   a  outputs the determination result to a display device included in the communication device  20   a . The determination unit  35   a  may transmit the determination result to a terminal operated by the operator through the transmission unit  21   a . Thus, the operator can recognize that it is determined that the failure of the physical network does not occur for the communication between the communication device  20   f  and the communication device  20   a . Accordingly, in a case where the failure occurs in the communication between a virtual machine operated in the communication device  20   f  and a virtual machine operated in the communication device  20   a , the operator can determine that a failure occurs by a failure of a virtual network. 
     (5) Inquiry about Path in which Packet is Lost 
     Before the path in which the packet is lost is specified, an example of a timer process will be described. The timer process is performed on all the entries of the check packet table in which the reception of all the response packets for the check packet is not completed. 
       FIG. 15  is a flowchart for describing an example of the timer process. In  FIG. 15 , variables E and I are used. The variable E is used for specifying the entry as the processing target, and the variable I is used for counting the number of processed entries. The determination unit  35  monitors a hardware timer, and waits for timeout of the hardware timer (step S 51 ). The determination unit  35  acquires a first entry E 0  of the check packet table  36 , substitutes E with E 0 , and sets the variable I to be 0 (step S 52 ). The determination unit  35  decrements the timer of the entry E by one (step S 53 ). The timer of the entry E is a value of the timer field included in the entry E. The determination unit  35  determines whether or not the timer of the entry E is 0 (step S 54 ). In a case where the timer of the entry E is not 0, the determination unit  35  acquires the next entry En to E from the check packet table  36 , and substitutes E with En. The determination unit  35  increments the variable I by one (No in step S 54 , step S 55 ). The determination unit  35  determines whether or not the variable I is less than the number of valid entries (step S 58 ). In a case where the variable I is less than the number of valid entries, the processes subsequent to step S 53  are repeated (Yes in step S 58 ). Meanwhile, in a case where the variable I is equal to or greater than the number of valid entries, the processes subsequent to step S 51  are repeated (No in step S 58 ). 
     In a case where the timer of the entry E is 0, the determination unit  35  inquires of the management device  80  about the path in which the failure occurs among the paths to the destination of the entry E (Yes in step S 54 , step S 56 ). The details of the process performed in step S 56  will be described below. Thereafter, the determination unit  35  acquires the next entry En to E, and removes the entry E. The determination unit  35  substitutes E with En, and increments the variable I by one (step S 57 ). Thereafter, the processes subsequent to step S 58  are performed. 
       FIG. 16  is a diagram for describing a loss example of the response packet. An example of the process of step S 56  of  FIG. 15  will be described with reference to  FIG. 16 . For example, it is assumed that the packet P 42  among the packets P 41  to P 43  transmitted from the communication device  20   g  to the communication device  20   a  is lost in the transmission path. In so doing, the determination unit  35   a  determines that the response packet in which the transmission port number=pn 2  is not received even in a point of tie when the timer value of the first entry of the check packet table  36 - 2  is 0. In so doing, the determination unit  35   a  generates header information of the response packet that fails to be received by using the information of the received response packet and the value pn 2  of the transmission source port number included in the response packet that fails to be received. The determination unit  35   a  determines that the failure occurs in the path specified by the generated header information, and adds the generated header information to an inquiry list. 
     A packet P 44  is a packet (analysis request packet) used by the determination unit  35  when the management device  80  is requested to analyze the path. The packet P 44  includes an IP header, a Transmission Control Protocol (TCP) header, an inquiry list, and an inquiry type. The inquiry list is a list of header information items of the response packets that are not received by the communication device  20 . The number of headers included in the inquiry list is an arbitrary value. The inquiry type is a value for determining whether the inquiry is an inquiry that the reception of the response packet is failed or an inquiry performed regardless of the reception state of the response packet. When the inquiry about the path in which the packet is lost is performed, inquiry type=packet loss occurrence path is set. In a case where the inquiry is performed regardless of the reception state of the response packet, inquiry type=inquiry is set. 
     Although the example in which the transmission source of the check packet does not receive some of the response packets has been described with reference to  FIG. 16 , there is a possibility that the transmission source of the check packet will not receive any one of the response packets ever after a predetermined time elapses from the transmission of the check packet. In such a case, since there is a high possibility that the check packet will not arrive at the destination, the determination unit  35  determines that the failure occurs in the path specified by the header information of the check packet. The information of the header of the check packet can be reproduced from the information recorded in the check packet table  36 . Thus, the determination unit  35  adds the header information of the check packet to the inquiry list, and inquires of the management device  80  about the path. 
       FIG. 17  is a flowchart for describing an example of an inquiry process of the path.  FIG. 17  illustrates the details of the process of step S 56  of  FIG. 15 . The determination unit  35  initializes an inquiry list (QL) (step S 61 ). The determination unit  35  uses the entry of the check packet table  36  of which the timer is 0, as the processing target. A destination MAC address (MAC 1 ) of the check packet is acquired from an ARP table by using the destination IP address of the entry as the processing target included in the check packet table  36  (step S 62 ). The determination unit  35  determines whether or not the reception response number in the entry is 0 (step S 63 ). 
     In a case where the reception response number in the entry is 0, since any one of the response packets is not received from the communication device  20  as the destination of the check packet, the determination unit  35  determines that the failure occurs in the transmission path of the check packet (Yes in step S 63 ). Here, the determination unit  35  uses header information H of the inquiring target as the header included in the check packet (step S 64 ). That is, the determination unit  35  uses the transmission source MAC address and the transmission source IP address in the header information H, as the addresses of its own device, and uses the destination IP address as the destination IP address included in the entry as the processing target. The determination unit  35  sets the MAC 1  acquired in step S 62  to be the destination MAC address in the header information H. The determination unit  35  uses the transmission source port number in the header information H, as the transmission source port number included in the entry as the processing target, and sets the destination port number to be the checking port number. Thereafter, the determination unit  35  adds the generated header information H to the inquiry list QL, and performs the inquiry about the path using the inquiry list QL (step S 65 , S 70 ). In this case, the determination unit  35  generates the analysis request packet including the inquiry list, and transmits the generated packet to the management device  80  through the transmission unit  21 . 
     In a case where the reception response number in the entry is not 0, since some of the response packets transmitted from the communication device  20  as the destination of the check packet are received, the determination unit  35  determines that the failure occurs in the transmission path of the response packet that fails to be received (No in step S 63 ). The transmission source port number included in the header of the response packet that fails to be received is included in the response list of the entry as the processing target, but is not included in the reception list. Here, the determination unit  35  generates a difference (Sd) between the reception list and the response list of the entry as the processing target (step S 66 ). For example, in the case of  FIGS. 16 , P 41  and P 43  of the response packets transmitted from the communication device  20   g  are received by the communication device  20   a . Thus, the response list is {pn 1 , pn 2 , pn 3 }, whereas the reception list is {pn 1 , pn 3 }. Accordingly, Sd=pn 2 . In a case where the reception of one or more response packets is failed, a plurality of transmission source port numbers is included in Sd. 
     Subsequently, the determination unit  35  generates a template used for generating the header information of the response packet that fails to be received. That is, the determination unit  35  uses the destination MAC address and the destination IP address in the template, as the addresses of its own device, and uses the transmission source IP address as the destination IP address in the entry as the processing target. The determination unit  35  sets the MAC1 acquired in step S 62  to the transmission source MAC address in the template. The determination unit  35  sets the transmission source port number in the template to be 0, and sets the destination port number to be the checking port number (step S 67 ). Thereafter, the determination unit  35  adds one of the transmission port numbers that are not processed in the difference Sd to the template, and adds the acquired header information to the inquiry list QL (step S 68 ). The determination unit  35  determines whether or not there are the port numbers that are not processed in the difference Sd (step S 69 ). In a case where there are the port numbers that are not processed in the difference Sd, the determination unit  35  returns to step S 68  (No in step S 69 ). In a case where there are no port numbers that are not processed in the difference Sd, the determination unit  35  performs the inquiry about the path by using the inquiry list QL (Yes in step S 69 , S 70 ). The inquiry about the path in this case may also be performed using the analysis request packet (P 44  of  FIG. 16 ). 
     (6) Example of Process in Management Device  80   
     If the analysis request packet is received, the management device  80  specifies the transmission path of the packet included in the same header as the header information of the inquiring target notified using the analysis request packet. The management device  80  previously retains topology information of the network and an algorithm of a selection process of the path in each switch  10 , and specifies the transmission path by using the specified header information and algorithm. For example, the management device  80  may generate information acquired by arranging identification information of the switch  10 , and an input port and an output port of the packet for the switch  10 , as path information, for each of the switches  10  included in the path in the order of passed packets. The management device  80  transmits the acquired path information to the transmission source of the analysis request packet. 
       FIG. 18  is a flowchart for describing an example of the process in the management device  80  that receives the inquiry about the path. It is assumed that the management device  80  retains a list (analysis target list) of the header information items as the targets on which an analysis process is performed. It is assumed that the management device  80  may retain the analysis result as the path information. 
     The management device  80  determines whether or not the analysis request packet is received (step S 81 ). If the inquiry list is extracted from the analysis request packet, the management device  80  substitutes the analysis target list with the inquiry list, and initializes path information RL (step S 82 ). The management device  80  determines whether or not there are the header information items that are not processed in the analysis target list (step S 83 ). In a case where there are the header information items that are not processed in the analysis target list, the management device  80  selects the header information as the processing target from the analysis target list (Yes in step S 83 , step S 84 ). The management device  80  performs a path specification process by using the selected header information (step S 85 ). Thereafter, the combination of the header information as the processing target and the acquired path to the path information RL, and returns to step S 83  (step S 86 ). In a case where there are no header information items that are not processed in the analysis target list, the management device  80  transmits the path information RL to the transmission source of the analysis request packet, and returns to step S 81  (No in step S 83 , step S 87 ). 
       FIG. 19  is a flowchart for describing an example of a specification process of the path in the management device  80 .  FIG. 19  illustrates an example of the process of step S 85  of  FIG. 18 . It is assumed that the path information generated through the process of  FIG. 19  is a character string acquired by expressing the path from a transmission source node to a reception node of the packet having the header as the inquiring target in the following form. {ID of transmission source node, (ID of switch  10 , input port of switch  10 , output port of switch  10 ), . . . , ID of destination node} 
     The management device  80  does not perform the path specification process until the header information H of the processing target is selected (No in step S 91 ). If the header information H of the processing target is selected, the management device  80  specifies the transmission source node of the packet by using the transmission source address included in the header information H and the topology information, and adds the information of the transmission source node to the path information (Yes in step S 91 , step S 92 ). In step S 92 , one or more of the transmission source MAC address and the transmission source IP address may be used as the transmission source address. Subsequently, the management device  80  specifies the destination node of the packet by using the destination address included in the header information H and the topology information (step S 93 ). In step S 93 , one or more of the destination MAC address and the destination IP address may be used as the destination address. The management device  80  acquires the ID of the switch  10  to which the transmission source node is directly connected and the input port number Pin of the packet for the switch by using the topology information (step S 94 ). The management device  80  specifies output port group information of the specified switch (step S 95 ). Here, the port group information is the combination of the port numbers as the output destination in a case where the packet having the header of the processing target is input from the Pin in the specified switch  10 . The management device  80  specifies an output port Pout from a distribution algorithm of the specified switch  10  (step S 96 ). In step S 96 , Expression (1) may be used. 
     In remainder corresponding to Pout=F(h, M) . . . (1) In Expression (1), h is a hash value of the header information H. F represents a modulo operation, and h is a dividend in the modulo operation. M is the number of ports included in the port group information, and is used as a divisor in the modulo operation. It is assumed that the management device  80  previously retains the relationship between a value acquired through the modulo operation in each switch  10  and the port used as the output port, as a part of the algorithm. 
     The management device  80  combines an identifier (Sw) of the specified switch  10 , an input port (Pin) of the packet, and an output port (Pout) of the packet, and adds the combined information to the path information (step S 97 ). The management device  80  specifies the device as the output destination by using the topology information (step S 98 ). The management device  80  determines whether or not the device as the output destination is the destination node (step S 99 ). In a case where the device as the output destination is not the destination node, the device as the specified output destination is the switch  10  (No in step S 99 ). Here, if the input port Pin of the packet having the header of the header information H for the specified switch is specified, the management device  80  repeats the processes subsequent to step S 95  (step S 100 ). 
     Meanwhile, in a case where the device as the output destination is the destination node, an end point of the path is searched for (Yes in step S 99 ). Here, the management device  80  adds the ID of the destination node to the path information (step S 101 ). 
     For example, it is assumed that the response packet P 42  ( FIG. 16 ) that fails to be received by the communication device  20   a  is transmitted over the path to the communication device  20   a  through the SW 6 , the SW 8 , the SW 10 , the SW 4 , and the SW 1  as depicted by an arrow R 22  of  FIG. 8 . If the transmission path of the response packet P 42  is inquired, the management device  80  notifies the communication device  20   a  of the combination of the identifier, the input port, and the output port of each switch included in the path of the arrow R 22 , as the path. For example, if the port number is continuously described as a character string of “Po”, the path information generated by the management device  80  is expressed as follows. 
     {communication device  20   g , (SW 6 , Po 2 , Po 4 ), (Sw 8 , Po 2 , Po 3 ), (SW 10 , Po 2 , Po 1 ), (SW 4 , Po 3 , Po 1 ), (SW 1 , Po 4 , Po 1 ), communication device  20   a}   
     As described above, according to the first embodiment, the communication device  20  that receives the check packet generates a plurality of response packets as responses to the check packet, and adds header information of another response packet to each response packet. Thus, if one of the plurality of response packets is received, the communication device  20  as the transmission source of the check packet can specify the header of the response packet that is not received. It is possible to specify the path in which the failure occurs by using the information of the header of the response packet that is not received. In a case where any one of the response packets is not received, the communication device  20  as the transmission source of the check packet can determine that the failure occurs in the transmission path of the transmission check packet. Accordingly, it is easy to specify the path in which the failure occurs in a state in which the paths are redundant. 
     In a case where the communication device  20  that receives the check packet receives all the response packets from the destination of the check packet, the failure of the physical network is not found. In this case, it is possible to determine that a communication failure between the virtual machine operated in the communication device  20  as the transmission source of the response packet and the virtual machine operated in the communication device  20  as the transmission source of the check packet is caused by a problem in the virtual network. 
     As stated above, if the first embodiment is used, it is easy to distinguish whether the failure in the system in which the virtual network is established in the physical network is caused by the failure in the physical network or by the failure in the virtual network. Thus, it is easy to perform the restoration from the failure. 
     &lt;Second Embodiment&gt; 
     Although it has been described in the first embodiment that the plurality of response packets having different headers is transmitted in the communication device  20 , there are some cases where some of the response packets pass over the same path. Here, in the second embodiment, a case where the communication device that transmits the plurality of response packets learns a distribution state of the path will be described. 
       FIG. 20  is a diagram for describing an example of a configuration of a communication device  50  according to the second embodiment. The communication device  50  includes a transmission unit  21 , a reception unit  22 , a classification unit  23 , a data processing unit  24 , and a check unit  51 . The check unit  51  includes a generation unit  31 , a storage unit  32 , a response unit  33 , a duplication unit  54 , a determination unit  35 , and a learning unit  52 . The storage unit  32  stores the check packet table  36 , and the learning unit  52  includes a learning table  53 . 
     The learning unit  52  inquires of the management device  80  about the transmission path to be used for each of the response packets. The learning unit  52  determines whether or not there are the response packets passing over the same path among the plurality of response packets by using the information of the path acquired from the management device  80 . The learning unit specifies a state of the distribution or redundancy of the transmission paths of the plurality of response packets, and records the header information items of the response packets transmitted to the distributed paths in the learning table  53 . The duplication unit  54  generates the plurality of response packets by using the header information items recorded in the learning table  53 . 
     The processes performed in the transmission unit  21 , the reception unit  22 , the classification unit  23 , the data processing unit  24 , the generation unit  31 , the storage unit  32 , the response unit  33 , and the determination unit  35  and the check packet table  36  in the second embodiment are the same as those in the first embodiment. 
     A hardware configuration of the communication device  50  is also as illustrated in  FIG. 3 . A processor that realizes the communication device  50  is operated as the classification unit  23 , the data processing unit  24 , the generation unit  31 , the response unit  33 , the determination unit  35 , the learning unit  52 , and the duplication unit  54 . The learning table  53  is appropriately stored in the memory  102 . 
       FIG. 21  is a diagram for describing an example of the generation method of the response packet. In  FIG. 21 , it is assumed that the communication devices  50   a  to  50   f  are connected to each other through the switches  10  (SW 31  to SW 36 ) as depicted in a case C 11 . Although it is not illustrated in  FIG. 21  in order to easily illustrate the drawing, it is assumed that the management device  80  is connected to the communication device  50  and the switches  10  included in the network through a control line. 
     It is assumed that the check packet is transmitted to the communication device  50   f  from the communication device  50   a  in the network illustrated in the case C 11  and the check packet arrives at the communication device  50   f  through the same process as that in the first embodiment. Similarly to the first embodiment, the response unit  33   f  of the communication device  50   f  generates the bases of the response packets. In a case where the communication device  20   f  initially receives the check packet from the communication device  50   a , the duplication unit  54   f  generates the plurality of response packets through the same process as that in the first embodiment. For example, in a case where the number of duplicates is 4, the duplication unit  54   f  generates four response packets. In the generated response packets, the values of the transmission source port numbers are different from each other. In the example of  FIG. 21 , it is assumed that any one of sp 31 , sp 32 , sp 33 , and sp 34  is used as the transmission source port number included in the generated response packets. The duplication unit  54   f  transmits four generated response packets through the transmission unit  21   f.    
     Thereafter, the duplication unit  54   f  generates the analysis request packet including the header information of each of four generated response packets. In this case, since the packet loss does not occur, the duplication unit  54   f  sets the inquiry type of the analysis request packet to be “inquiry”. The duplication unit  54   f  transmits the analysis request packet to the management device  80  through the transmission unit  21   f.    
     The analysis process performed in the management device  80  and the notification process of the analysis result are the same as the processes described in the first embodiment. However, in the second embodiment, it is assumed that the checking port number is designated in the destination port number of the notification packet for notifying of the path. As the analysis result in the management device  80 , it is assumed that the transmission of the response packets is specified as illustrated in the case C 11 . Here, a path R 31  is a transmission path of the response packet of which transmission source port number=sp 31 . A path R 32  is a transmission path of the response packet of which transmission source port number=sp 32 , and a path R 33  is a transmission path of the response packet of which transmission source port number=sp 33 . A path R 34  is a transmission path of the response packet of which transmission source port number=sp 34 . 
     It is assumed that the notification of the path is transmitted to the communication device  50   f  from the management device  80 . The classification unit  23   f  acquires the notification packet through the reception unit  22   f , and outputs the notification packet to the response unit  33   f , the determination unit  35   f , and the learning unit  52   f  in response to the destination port number. The response unit  33   f  and the determination unit  35   f  do not use the notification packet as the processing target. 
     If the notification packet is acquired, the learning unit  52   f  specifies the transmission path for each response packet by using the combination of the path notified by the notification packet with the header information. As illustrated in the case C 11 , the learning unit  52   f  determines that both the response packet of which transmission source port number=sp 31  and the response packet of which transmission source port number=sp 32  arrive at the communication device  50   a  from the communication device  50   f  through the SW 33 , the SW 34 , and the SW 31 . The learning unit  52   f  determines that both the response packet of which transmission source port number=sp 33  and the response packet of which transmission source port number=sp 34  arrive at the communication device  50   a  from the communication device  50   f  through the SW 33 , the SW 36 , and the SW 31 . When the check packet is received from the communication device  50   a  later, the learning unit  52   f  records the transmission source port numbers of which the paths do not overlap each other and the transmission paths in the learning table  53   f  in order to transmit the plurality of response packets over different paths. 
     A learning table  53 - 1  is an example of the learning table  53   f  generated in a case where the paths illustrated in the case C 11  are acquired. The learning table  53 - 1  includes a destination, a distribution list, a path list, and a next value for each entry. The destination is a destination of the response packet. In the case C 11 , since the response packet is transmitted to the communication device  50   a , the destination is set to be an IP address (IP 50   a ) of the communication device  50   a . The distribution list is a list of transmission source port numbers selected such that the paths of the response packets do not overlap each other. In the case C 11 , since the transmission paths of the response packet of which transmission source port number=sp 31  and the response packet of which transmission source port number=sp 32  overlap each other, one of the sp 31  and the sp 32  is included in the distribution list. Since the transmission paths of the response packet of which transmission source port number=sp 33  and the response packet of which transmission source port number=sp 34  overlap each other, one of the sp 33  and the sp 34  is included in the distribution list. In the example of the learning table  53 - 1 , the sp 31  and the sp 33  are recorded in the distribution list. 
     The path list is a list of transmission paths to be used when the transmission source port numbers included in the distribution list are used. In the example of the learning table  53 - 1 , since the sp 31  and the sp 33  are recorded in the distribution list, the R 31  and the R 33  are recorded in the path list. The next value is a value to be initially used in a case where the response packets are generated by using the transmission source port numbers that are not used by the duplication unit  54  so far. When the transmission process is performed as illustrated in the case C 11 , the sp 31  to sp 34  are used as the transmission source port numbers. Here, the learning unit  52   f  sets sp 35  to be the next value. 
     Hereinafter, a case where the communication device  50   f  receives the check packet from the communication device  50   a  again after the process of  FIG. 21  will be described. In this case, the generation of the base of the response packet when the response packet is generated is performed by the response unit  33   f  similarly to the first embodiment. 
     The duplication unit  54   f  generates the response packets by using the transmission source port numbers included in the distribution list. In a case where the learning table  53 - 1  is used, the duplication unit  54   f  generates the response packet of which transmission source port number=sp 31  and the response packet of which transmission source port number=sp 33 . Although the generation of the response packets that use the transmission source port numbers included in the learning table  53 - 1  is ended in this stage, the total number of response packets is 2, and is not 4 which is the response number. As stated above, even though the response packets are generated by using all the transmission source port numbers included in the distribution list, in a case where as many response packets as the response number are not generated, the duplication unit  54   f  generates the response packets by using the next values as new port numbers. In the learning table  53 - 1 , next value=sp 35 . Here, the duplication unit  54   f  generates the response packet of which transmission source port number=sp 35  and the response packet of which transmission source port number=sp 36 . The duplication unit  54   f  transmits four generated response packets through the transmission unit  21   f . Thereafter, the duplication unit  54   f  inquires of the management device  80  about the transmission path by using the header information of each of two response packets which are newly generated among four generated response packets. 
     A case C 12  of  FIG. 22  is a diagram for describing an example of the transmission path of the response packet generated using the learning table  53 - 1 . The path R 31  is a transmission path of the response packet of which transmission source port number=sp 31 , and the path R 33  is a transmission path of the response packet of which transmission source port number=sp 33 . A path R 35  is a transmission path of the response packet of which transmission source port number=sp 35 . A path R 36  is a transmission path of the response packet of which transmission source port number=sp 36 . If the notification packet including the inquired path information is acquired from the management device  80 , the learning unit  52   f  specifies the transmission path for each response packet and updates the learning table  53  through the same process as the process described with reference to  FIG. 21 . For example, since the transmission path of the response packet of which transmission source port number=sp 35  and any one of the response packets do not overlap each other, the learning unit  52   f  adds the response packet of which transmission source port number=sp 35  to the distribution list, and adds the path R 35  to the path list. Meanwhile, the transmission paths of the response packet of which transmission source port number=sp 36  and the response packet of which transmission source port number=sp 31  overlap each other, the information of the response packet of which transmission source port number=sp 31  is already recorded in the learning table  53 . Thus, the learning unit  52   f  does not add the transmission path of the response packet of which transmission source port number=sp 36  and the transmission source port number to the learning table  53 . The learning unit  52   f  updates the next value of the transmission source port number capable of being used for the response packet addressed to the communication device  50   a  with sp 37 . As mentioned above, the learning table  53 - 1  ( FIG. 21 ) is updated as illustrated in a learning table  53 - 2  ( FIG. 22 ) through the process of the learning unit  52   f.    
     Although as many response packets as the response number are transmitted from the communication device  50  that transmits the response packets in the process described with reference to  FIGS. 21 and 22 , the minimum response number may be set in addition to the response number in the second embodiment. The minimum response number is the number of response packets to be transmitted capable of being applied when the response is performed using only the response packets of which the transmission over different paths is checked, and is a value smaller than the response number. Thus, in a case where the number of transmission source port numbers included in the distribution list exceeds the minimum response number, as many response packets as the minimum response number are generated by using the transmission source port numbers included in the distribution list. In a case where as many response packets of which the transmission over different paths is checked as the minimum response number are not transmitted, since there is a possibility that the transmission of the response packets in the overlapped paths will be performed, as many response packets as the response number are transmitted. 
       FIGS. 23A and 23B  are a flowchart for describing an example of the generation method of the response packet.  FIGS. 23A and 23B  illustrate an example of the process performed in a case where the minimum response number (RNmin) is set in addition to the response number. 
     The duplication unit  54  initializes the transmission source port list and the inquiry list (step S 111 ). The duplication unit  54  determines whether or not there is the entry corresponding to the destination of the response packet in the learning table  53  (step S 112 ). In a case where there is no entry corresponding to the destination of the response packet, the duplication unit  54  sets the variable n to the response number, and sets the variable p to the transmission source port number (SP) of the response packet base (step S 113 ). The duplication unit  54  determines whether or not the variable n is 0 (step S 114 ). In a case where the variable n is not 0, the determination of the transmission source port number to be used for generating as many response packets as the response number is not ended (No in step S 114 ). Here, the duplication unit  54  adds the header information of which the transmission source port number is set to be the variable p to the inquiry list (step S 115 ). The duplication unit  54  adds the variable p to the transmission source port list (step S 116 ). The duplication unit  54  increments the variable p by one, and decrements the variable n by one (step S 117 ). After step S 117 , the process returns to step S 114 . 
     If it is determined that the variable n is 0, the duplication unit  54  adds the number of generated response packets and the transmission source port list to the UDP payload of the response packet (step S 125 ). The duplication unit  54  transmits the response packet having the value selected from the transmission source port list as the transmission source port number by using the response packet base and the UDP payload set in step S 125  (step S 126 ). The duplication unit  54  determines whether or not unused data is included in the transmission port number list (step S 127 ). In a case where the unused data is included in the transmission port number list, the duplication unit  54  returns to the process of step S 126  (Yes in step S 127 ). In a case where the unused data is not included in the transmission port number list, the duplication unit  54  determines whether or not data is included in the inquiry list (No in step S 127 , step S 128 ). In a case where the data is not included in the inquiry list, the duplication unit  54  ends the process (No in step S 128 ). In a case where the data is included in the inquiry list, the duplication unit  54  performs the learning process, and ends the process (Yes in step S 128 , step S 129 ). 
     Subsequently, a case where there is an entry corresponding to the destination of the response packet in the learning table  53  will be described (Yes in step S 112 ). In this case, the duplication unit  54  sets the variable n to the minimum response number (RNmin), and substitutes the distribution list of entries as the processing targets with a temporary list (step S 118 ). The duplication unit  54  determines whether or not the variable n is 0 (step S 119 ). 
     In a case where the variable n is not 0, the determination of the transmission source port numbers to be used for generating as many response packets as the minimum response number is not ended (No in step S 119 ). Here, the duplication unit  54  adds the value selected from the temporary list to the transmission source port list, and decrements the variable n by one (step S 120 ). The duplication unit  54  determines whether or not there are the port numbers that are not processed in the temporary list (step S 121 ). In a case where there are the port numbers that are not processed in the temporary list, the duplication unit  54  repeats the processes subsequent to step S 119  (Yes in step S 121 ). Meanwhile, in a case where there are no port numbers that are not processed in the temporary list, the duplication unit  54  determines whether or not the variable n is 0 (No in step S 121 , step S 123 ). In a case where the variable n is not 0, the determination of the transmission source port numbers to be used for generating as many response packets as the minimum response number is not ended (No in step S 123 ). However, in this case, all the values of the temporary list are used. That is, the value included in the transmission source port list is smaller than the minimum response number. Since the number of header information items of the response packets of which the transmission over different paths is checked is less than the minimum response number, the duplication unit  54  determines to generate as many response packets as the response number. Thus, the duplication unit  54  sets the variable n to be a value acquired by subtracting the total number (RNmin−n) of transmission source port numbers determined so far from the response number, and sets the variable p to be the next value of the entry as the processing target of the learning table  53  (step S 124 ). In step S 124 , if the response number is RN, the value substituted with the variable n may be expressed as RN−(RNmin−n). After step S 124 , the duplication unit  54  performs the processes subsequent to step S 115 . Meanwhile, in a case where it is determined that the variable n is 0 in step S 119  or step S 123 , the duplication unit  54  performs the processes subsequent to step S 125 . 
       FIG. 24  is a flowchart for describing an example of the process performed when the distribution state of the paths is learned. The learning unit  52  acquires the result of the inquiry about the path for the management device  80  (step S 141 ). The learning unit  52  acquires the information of the entry corresponding to the destination IP address of the response packet transmitted last from the learning table  53  (step S 142 ). The learning unit  52  determines whether or not there are the data items that are not processed among the acquired results (step S 143 ). The learning unit  52  selects the combination of the header of the processing target with the path from the combinations that are not processed among the result results about the path (step S 144 ). The learning unit  52  determines whether or not the selected path is included in the path list of the entry acquired in step S 143  (step S 145 ). In a case where the selected path is included in the path list of the entry, the learning unit  52  determines that the information of the path overlapping the transmission path of the response packet generated using any value of the distribution list of the entry is the processing target (Yes in step S 145 ). Thus, the learning unit  52  returns to step S 143  without recording the information of the selected path in the learning table  53 . 
     In a case where the selected path is not included in the path list of the entry, the learning unit  52  determines that the information of the path which does not overlap the transmission path of the response packet generated using the value included in the distribution list of the entry is selected as the processing target (No in step S 145 ). Here, the learning unit  52  adds the transmission source port number included in the header selected in step S 144  to the distribution list of the selected entry, adds the selected path to the pat list, and returns to step S 143  (step S 146 ). 
     If the process on all the data items included in the inquiry result about the path is ended, the learning unit  52  updates the value of the next field of the entry as the processing target in the learning table  53  (No in step S 143 , step S 147 ). 
     As stated above, the communication device  50  according to the second embodiment can generate the list of the transmission source port numbers capable of being used for generating the response packets of which the transmission paths do not overlap each other by using the analysis result of the transmission paths of the response packets transmitted from the communication device  50 . Thus, since a predetermined number of response packets are able to be transmitted to the transmission source of the check packet such that the paths do not overlap each other, it is possible to efficiently determine whether or not the failure occurs in the physical network. 
     &lt;Third Embodiment&gt; 
       FIG. 25  is a diagram for describing an example of communication performed in a third embodiment. In the third embodiment, the transmission source of the check packet transmits the plurality of check packets in order to determine the states of the plurality of paths capable of arriving at the destination of the check packet. In the network illustrated in  FIG. 25 , a plurality of communication devices  60  ( 60   a  to  60   h ,  60   w  to  60   z ) is connected through the switches  10  (SW 1  to SW 16 ). In such a network, it is assumed that the communication device  60   a  transmits the plurality of check packets in order to determine the state of the communication path with the communication device  60   z . As illustrated in  FIG. 25 , it is assumed that four check packets addressed to the communication device  60   z  from the communication device  60   a  arrive at the communication device  60   z  through a path R 41 , a path R 42 , a path R 43 , and a path R 44 , respectively. 
     As mentioned above, in a case where the plurality of check packets is transmitted, if the communication device  60   x  that receives the check packets performs the same process as that in the first and second embodiments, there is a concern that the number of response packets will be increased. Here, in the third embodiment, a case where responses to the plurality of check packets are grouped as one response packet will be described. In the third embodiment, the communication device  60   z  transmits the plurality of response packets including the responses to the plurality of check packets such that the loss of the response packet is recognized by the communication device  60   a  as the transmission side. 
       FIG. 26  is a diagram for describing an example of a configuration of the communication device  60  according to the third embodiment. The communication device  60  includes a transmission unit  21 , a reception unit  22 , a classification unit  23 , a data processing unit  24 , and a check unit  61 . The check unit  61  includes a duplication unit  62 , a storage unit  63 , a determination unit  66 , and a response unit  67 , and also includes a generation unit  31 , a storage unit  32 , and a duplication unit  34 . The storage unit  32  stores a check packet table  65 . 
     The duplication unit  62  duplicates the check packet generated by the generation unit  31 , and changes the transmission source port number included in the duplicated check packet. In this case, the duplication unit  62  sets the transmission source port numbers such that the transmission source port numbers are different from each other between the plurality of check packets. The storage unit  63  retains a reception state table  64 . The reception state table  64  records the reception state of the check packet. The response unit  67  records the reception state of the check packet in the reception state table  64 , and generates the base of the response packet if the condition in which the response packet is transmitted is satisfied. In the third embodiment, the storage unit  32  retains the check packet table  65  instead of the check packet table  36 . The check packet table  65  includes arrival information of the check packet in addition to the information included in the check packet table  36 . The check packet table  65  is appropriately updated by the generation unit  31 , the duplication unit  62 , and the determination unit  66 . The determination unit  66  determines whether or not the failure occurs in the transmission path of the check packet or the response packet by using the reception state of the response packet and the arrival state of the check packet. 
     The hardware configuration of the communication device  60  is also as illustrated in  FIG. 3 . A processor that realizes the communication device  60  is operated as the classification unit  23 , the data processing unit  24 , the generation unit  31 , the response unit  67 , the determination unit  66 , the duplication unit  34 , and the duplication unit  62 . The storage unit  63  is appropriately realized by the memory  102 . 
     Hereinafter, the third embodiment will be described while distinguishing between a process when the check packet is transmitted, a process performed in the communication device  60  that receives the check packet, and a process when the response packet is received. 
     (A) Process when Check Packet is Transmitted 
       FIG. 27  is a diagram for describing an example of the check packet used in the third embodiment. The check packet used in the third embodiment includes an Ether header, an IP header, a UDP header, and a UDP payload. Information elements included in the Ether header, the IP header, and the UDP header are same as those of the check packet described with reference to  FIG. 5 . The UDP payload includes an ID field, a type field, and a check number field. The check number is the total number of check packet of which the combination of the value of the ID field is the same as that of the communication device  60  as the destination. The ID field and the type field are the same as those of the check packet described with reference to  FIG. 5 . 
     Packets P 51  to P 53  illustrated in  FIG. 27  are examples of the check packet of which the combination of the value of the ID field is the same as that of the communication device  60  as the destination. In the third embodiment, the transmission source port numbers are set to be different from each other between the plurality of check packets of which the combination of the value of the ID field is the same as that of the communication device  60  as the destination. For example, the transmission source port number included in the check packet P 51  is sp 1 , the transmission source port number included in the check packet P 52  is sp 2 , and the transmission source port number included in the check packet P 53  is sp 3 . 
       FIG. 28  is a diagram for describing an example of the check packet table  65 . The check packet table  65  includes check packet information, response packet information, and a timer field. The check packet information is information of the check packet transmitted by the communication device  60  itself, and includes a destination IP address field, an ID field, a check number field, a check list field, an arrival check number field, and an arrival list field. An IP address of the destination of the check packet is stored in the destination IP address field, and an ID of the check packet is stored in the ID field. The total number of check packets of which the destination IP address and the ID value are the same is recorded in the check number field. A list of transmission source port numbers used by the check packets having the combination of the destination IP address and the ID value of the entry is stored in the check list field. 
     The arrival check number is the total number of check packets arriving at the communication device  60  as the destination within a predetermined period of time, and a list of transmission source port addresses included in the check packets arriving at the communication device  60  as the destination within a predetermined period of time is stored in the arrival list field. Both the arrival check number and the arrival list are information items acquired from the response packets, and the acquisition method of these information items will be described. 
     The response packet information and the timer field are the same as the response packet information and the timer field included in the check packet table  36  described with reference to  FIG. 5 . 
       FIG. 29  is a flowchart for describing an example of a transmission process of the check packet. In  FIG. 29 , SeqID is a variable representing a value used as the ID of the check packet, and SeqID=0 is set when the communication device  60  is initialized. 
     The generation unit  31  waits until a check instruction is input (No in step S 151 ). If the input of the check instruction is detected, the generation unit  31  specifies a MAC address (MACα) of the communication device  60  as the destination from an ARP table and a destination IP address (IPα) included in the check instruction (Yes in step S 151 , step S 152 ). 
     The generation unit  31  generates the check packet base to be used for generating the plurality of check packets (step S 153 ). In the check packet base, the destination MAC address is set to be the MAC address (MACα) of the communication device  60  as the destination acquired in step S 152 , and the destination IP address is set to be the IP address (IPα) designated by the generation instruction. The transmission source MAC address and the transmission source IP address of the check packet are set to be values assigned to the communication device  20  as the transmission source of the check packet, and the protocol is designated as being the UDP. The transmission source port number included in the check packet base is set to be an invalid value such as 0. The destination port number is set to be the checking port number, and the ID is set to be the value of the SeqID. Request is set in the type field included in the check packet, and the check number and the check list are initialized. 
     If the check packet base is generated, the duplication unit  62  performs the generation of the check packet and the transmission process of the check packet by using the check packet base (step S 154 ). Thereafter, the generation unit  31  increments the SeqID by one, and returns to step S 151 . 
       FIG. 30  is a flowchart for describing an example of a duplication process of the check packet.  FIG. 30  illustrates an example of the details of the process performed in step S 154  of  FIG. 29 . In  FIG. 30 , the transmission source port list is used when the list of values to be used for the transmission source port numbers is generated. The transmission source port list is a list retained in the duplication unit  62 . 
     The duplication unit  62  generates a transmission source port number p, and sets the variable n to the check number. The transmission source port list is initialized (step S 161 ). The duplication unit  62  determines whether or not the variable n is 0 (step S 162 ). In a case where the variable n is not 0, the duplication unit  62  determines that as many transmission source port numbers as the number of check packets to be transmitted are not generated (No in step S 162 ). Here, the duplication unit  62  adds the generated transmission source port number p to the transmission source port list. The duplication unit increments p by one, and decrements the variable n by one (step S 163 ). After the process of step S 163 , the processes subsequent to step S 162  are performed. 
     Meanwhile, in a case where the variable n is 0, the duplication unit  62  determines that as many transmission source port numbers as the number of check packets to be transmitted are generated (Yes in step S 162 ). The duplication unit  62  records the information of the check packet in the check packet table  65  by using the check packet base and the transmission source port list (step S 164 ). In step S 164 , the contents of the transmission source port list are recorded in the check list included in the check packet table  65 . For example, it is assumed that the duplication unit  62   a  of the communication device  60  generates sp 1 , sp 2 , sp 3 , and sp 4  as the transmission source port numbers for the check packet addressed to the communication device  60   z . In so doing, the duplication unit  62   a  sets the destination IP address of the check packet table  65   a  to be the IP address (IP 60   z ) of the communication device  60   z , sets the check number to be 4, and sets the check list to be {sp 1 , sp 2 , sp 3 , sp 4 }. The duplication unit  62   a  records the value of the ID in the check packet table  65   a . Thus, if the information of the check packet transmitted to the communication device  60   z  from the communication device  60   a  is recorded, the information of the first entry of  FIG. 28  is recorded. 
     The duplication unit  62  generates the check packet having the value selected from the transmission source port list as the transmission source port number, and transmits the check packet through the transmission unit  21  (step S 165 ). The duplication unit  62  removes the port number used in the transmission process from the transmission source port list (step S 166 ). The duplication unit  62  determines whether or not the port numbers that are not transmitted are included in the transmission source port list (step S 167 ). In a case where the port numbers of the packets that are not transmitted are included in the transmission source port list, the duplication unit  62  repeats the processes subsequent to step S 165  (Yes in step S 167 ). In a case where the port numbers that are not transmitted are not included in the transmission source port list, the duplication unit  62  sets the timer value in the timer field of the check packet table  65 , and activates the timer (No in step S 167 , step S 168 ). 
     (B) Process Performed in Communication Device  60  that Receives Check Packet 
     It is assumed that the reception unit  22   z  of the communication device  60   z  receives the check packet transmitted from the communication device  60   a . The reception unit  22   z  outputs the received check packet to the classification unit  23   z . Since the destination port number included in the check packet is the checking port number, the classification unit  23   z  outputs the check packet P 31  to the response unit  67   z  and the determination unit  66   z . The response unit  67   z  records the reception state of the check packet in the reception state table  64   z.    
       FIG. 31  is a diagram for describing an example of the reception state table  64 . The reception state table  64  is used for recording the reception state of the check packet. The reception state table  64  includes a transmission source IP address field, an ID field, a header information field, a check number field, a reception check number field, a reception list field, and a timer field. The response unit  67   z  records the transmission source IP address of the check packet in the transmission source IP address field, and records the ID included in the check packet in the ID field. The response unit  67   z  records the header information of the check packet in the header information field, and records the check number included in the UDP payload of the check packet in the check number field. Whenever the check packet is input, the response unit  67   z  increments the reception check number included in the entry including the combination of the ID and the transmission source IP address of the input check packet by one, and adds the transmission source port number included in the input check packet to the reception list. 
     For example, it is assumed that the check packets of which transmission source port number=sp 1  and sp 2  are received by the communication device  60   z  among four check packets transmitted to the communication device  60   z  from the communication device  60   a . In this case, information of the first entry of the reception state table  64  illustrated in  FIG. 31  is recorded through the process of the response unit  67   z . It is assumed that the IP address assigned to the communication device  60   a  is IP 60   a . As illustrated in  FIG. 31 , the reception results of the plurality of check packets transmitted from the communication device  60  are grouped and managed for each combination of the transmission source IP address and the ID in the reception state table  64 . 
       FIG. 32  is a flowchart for describing an example of a reception process of the check packet. If the check packet is input, the response unit  67  searches the reception state table  64  by using the transmission source address and the ID of the check packet, and determines whether or not there is an entry as the processing target including the transmission source address and the ID of the check packet (step S 171 , S 172 ). In a case where there is no entry as the processing target, the response unit  67  generates a new entry in the reception state table  64  (No in step S 172 , step S 173 ). The response unit  67  records the information items acquired from the check packet in the transmission source IP field, the ID field, and the check number field of the generated entry, and stores the header of the check packet in the header information field. The response unit  67  sets the reception check number of the newly generated entry to be 0, and initializes the reception list. Thereafter, the timer value is set in the newly generated entry, and the timer is activated (step S 174 ). 
     The response unit  67  increments the reception check number by one in the entry as the processing target, and adds the transmission source port number of the check packet to the reception list (step S 175 ). The response unit  67  determines whether or not the reception check number and the check number are the same (step S 176 ). In a case where the reception check number and the check number are not the same, since there are the check packets that are not received, the response unit  67  ends the process (No in step S 176 ). 
     Meanwhile, if the reception check number and the check number are the same, the response unit  67  determines that all the check packets specified by the combinations of the transmission sources and the IDs of the check packets being processed are received (Yes in step S 176 ). Here, the response unit  67  generates the response packet bases, and the duplication unit  34  performs the transmission process of the response packets (step S 177 ). Thereafter, the response unit  67  removes the entry for the check packet transmitted from the destination of the response packet from the reception state table  64  (step S 178 ). 
     In a case where the entry as the processing target is searched for in step S 172 , the processes subsequent to step S 175  are also performed. 
     It has been described that the response packets are transmitted after all the check packets of which the combinations of the transmission sources and the IDs of the check packets are the same are received while referring to steps S 176  to S 178  of  FIG. 32 . However, even in a case where all the check packets are not received within a predetermined period of time, if the timeout occurs, the response packets are transmitted. Hereinafter, the timer process will be described. 
       FIG. 33  is a flowchart for describing an example of the timer process.  FIG. 33  is an example, and the order of steps S 182  and S 183  may be changed to each other depending on the implementation of the components. If the timeout of the hardware timer occurs, the timer process in the storage unit  32  is performed (steps S 181  and S 182 ). The value of the timer in the check packet table  65  becomes small through the timer process in the storage unit  32 . The check packet table  65  is a table used when the communication device itself transmits the check packet. Accordingly, the process in step S 182  is the same as the process described with reference to steps S 52  to S 58  of  FIG. 15 . Subsequently, the timer process in the storage unit  63  is performed (step S 183 ). The value of the timer in the reception state table  64  becomes small through the timer process in the storage unit  63 . The reception state table  64  is a table used when the check packet transmitted from another communication device  60  is received. The details of the process in step S 183  will be described with reference to  FIG. 34 . 
       FIG. 34  is a flowchart for describing an example of the timer process. The response unit  67  acquires the first entry E 0  of the reception state table  64 , substitutes E with E 0 , and sets the variable I to be 0 (step S 191 ). The response unit  67  decrements the timer of the entry E by one, and determines whether or not the timer of the entry E is 0 (steps S 192  and S 193 ). 
     In step S 193 , in a case where the timer of the entry E is not 0, the response unit  67  acquires the next entry En to E from the reception state table  64 , and substitutes E with En. The response unit  67  increments the variable I by one (No in step S 193 , step S 194 ). The response unit  67  determines whether or not the variable I is less than the number of valid entries (step S 197 ). In a case where the variable I is less than the number of valid entries, the processes subsequent to step S 192  are repeated (Yes in step S 197 ). Meanwhile, in a case where the variable I is equal to or greater than the number of valid entries, the response unit  67  ends the process (No in step S 197 ). 
     In a case where the timer of the entry E is 0 in step S 193 , the response unit  67  and the duplication unit  34  perform the transmission process of the response packets addressed to the transmission source IP addresses included in the entry E (step S 195 ). The details of the process performed in step S 195  will be described. Thereafter, the response unit  67  acquires the next entry En to E, and removes the entry E. The response unit  67  substitutes E with En, and increments the variable I by one (step S 196 ). Thereafter, the processes subsequent to step S 197  are performed. 
       FIG. 35  is a flowchart for describing an example of the generation process of the base of the response packet. The response unit  67  reads the entry including the information of the transmission destination of the response packet from the reception state table  64  (step S 201 ). The entry including the information of the transmission destination of the response packet is an entry of the check packets of which the reception of all the check packets of which the combinations of the transmission sources and the IDs are the same is checked or an timeout entry as illustrated in step S 195  of  FIG. 34 . The response unit  67  generates the response packet base by using the information of the read entry (step S 202 ). In the response packet base, the transmission source MAC address included in the header information included in the read entry is used as the destination MAC address, and the transmission source IP address of the check packet is used as the destination IP address. A MAC address of its own node is set to the transmission source MAC address, and an IP address assigned to its own node is used as the transmission source IP address. The transmission source port number is set to be 0, and the destination port number is set to be checking port number. The protocol is set to be UDP, and the ID is set to be the ID of the check packet. The setting type is set to be Response. The total number of response packets is set to be 0. The reception check number and the reception list included in the read entry are also included in the response packet base. An example of the generated response packet base is illustrated in P 61  of  FIG. 36 . 
       FIG. 36  is a diagram for describing an example of the response packet base and the response packet. The response packet base illustrated in P 61  is an example of the response packet base generated by the response unit  67   z  in a case where the communication device  60   z  receives four check packets transmitted from the communication device  60   a . In P 61 , reception check number=4, and the transmission source port numbers included in the received check packets are sp 1 , sp 2 , sp 3 , and sp 4 . The response unit  67   z  outputs the generated response packet base to the duplication unit  34 . 
     As illustrated in P 61 , the reception state of the plurality of check packets is recorded in the response packet base. Thus, the information indicating the reception state included in the response packet is recorded in each of the response packets generated using the response packet bases. In other words, since the reception state of the plurality of check packets is included in the response packet used in the third embodiment, the communication device  60  groups the responses to the plurality of check packets as one response packet. 
     In the example of  FIG. 36 , it is assumed that the duplication unit  34   z  transmits to three response packets to the communication device  60   a . The duplication unit  34   z  sets the transmission source port number of the response packet base P 61  for each response packet, and adds the list of the transmission source port numbers in each response packet and the total number of response packets (the response number) to the UDP payload. Response packets P 62  to P 64  are generated through the process of the duplication unit  34   z . The details of the process when the response packets are generated are the same as those of steps S 32  to S 38  described with reference to  FIG. 12 . The duplication unit  34   z  transmits the generated response packets P 62  to P 64  to the communication device  60   a  through the transmission unit  21   z.    
     (C) Process when Response Packet is Received 
     An example of the process of the communication device  60  that receives the response packets will be described as an example of a case where the communication device  60   a  receives the response packets after the response packets P 62  to P 64  are transmitted to the communication device  60   a  from the communication device  60   z.    
       FIG. 37  is a flowchart for describing an example of the reception process of the response packet. The classification unit  23   a  outputs the response packets received by the reception unit  22   a  to the determination unit  66   a  and the response unit  67   a . The determination unit  66   a  specifies the entry as the processing target from the check packet table  36  by using the ID and the transmission source IP address of the input response packet (step S 211 ). 
     The determination unit  66   a  determines whether or not reception response number=0 is set in the entry as the processing target (step S 212 ). The entry in which reception response number=0 is an entry that does not receive the response packet so far and is related to the check packet. Here, in a case where the entry of which reception response number=0 is the processing target, the determination unit  66   a  sets the arrival check number, the arrival list, the response number, and the response list included in the entry as the processing target to be the values in the response packet, and initializes the reception list (step S 213 ). For example, it is assumed that the response packet input to the determination unit  66   a  is the response packet P 63  ( FIG. 36 ). In so doing, the determination unit  66   a  sets the entry as the processing target to enter the state including the following information items. 
     Destination IP address: IP 60   z  (communication device  60   z ) 
     ID:  1   
     Check number:  4   
     Check list: {sp 1 , sp 2 , sp 3 , sp 4 } 
     Arrival check number:  4   
     Arrival list: {sp 1 , sp 2 , sp 3 , sp 4 } 
     Response number:  3   
     Response list: {pn 21 , pn 22 , pn 23 } 
     In a case where the reception response number in the entry as the processing target is equal to or greater than 1 and after the process of step S 213  is performed, the determination unit  66   a  increments the reception response number in the entry as the processing target by one, and adds the transmission source port number included in the response packet to the reception list (step S 214 ). For example, in a case where the response packet input to the determination unit  66   a  is the response packet P 63  ( FIG. 36 ), after the process of step S 213  is performed, the determination unit  66   a  sets the reception response number to be 1, and adds the transmission source port number pn 22  of the response packet P 63  to the reception list. 
     Thereafter, the determination unit  66   a  determines whether or not the reception response number is the same as the response number (step S 215 ). In a case where the reception response number is not the same as the response number, the determination unit  66   a  ends the process (No in step S 215 ). In this case, if the response packet is newly received, the processes of  FIG. 37  is repeated. Meanwhile, in a case where the reception response number is the same as the response number, the determination unit  66   a  determines that all the response packets are received, and performs the determination process using the arrival state of the check packet (Yes in step S 215 , step S 216 ). Thereafter, the determination unit  66   a  removes the entry as the processing target from the check packet table  65  (step S 217 ). 
       FIG. 38  is a diagram for describing an example of the check packet table  65 . The first entry of the check packet table  65  represents the list of the transmission source port numbers of the check packets transmitted using ID=1 to the communication device  60   z , the arrival information of the check packet, and the reception state of the response packet from the communication device  60   z . Accordingly, in a case where the communication device  60   a  includes the check packet table  65  illustrated in  FIG. 38 , the determination unit  66   a  can determine that all the check packets transmitted to the communication device  60   z  arrive the communication device  60   z . In other words, the determination unit  66   a  can determine that the failure does not occur in any one of the transmission paths of the check packets transmitted to the communication device  60   z . If the timer times up or all the response packets are received, the determination unit  66   a  can perform the determination process on the transmission paths of the response packets. 
     The second entry of the check packet table  65  records the information of the check packet or the response packet transmitted using ID=5 to the communication device  60   w  (IP 60   w ). The communication device  60   a  transmits the check packets of {sp 11 , sp 12 , sp 13 , sp 14 } to the communication device  60   w . However, in the response packet received by the communication device  60   w , arrival check number=3, and the check list is {sp 11 , sp 12 , sp 14 }. Accordingly, among the check packets transmitted from the communication device  60   a , the check packet of which transmission source port number=sp 13  does not arrive at the communication device  60   w.    
       FIGS. 39A and 39B  are a flowchart for describing an example of the inquiry process of the path. The process of  FIGS. 39A and 39B  are an example, and the processes may be changed depending on the implementation of the components. For example, before the determination using the arrival state of the check packet through steps S 223  to S 227  is performed, the determination using the reception state of the response packet illustrated in steps S 228  to S 232  may be performed. The determination process of  FIGS. 39A and 39B  are performed through step S 216  of  FIG. 37  or when the timer included in the entry of the check packet table  65  times up. A variation in the timer value included in the entry of the check packet table  65  is performed similarly to the process described using  FIG. 15 or 33 . 
     When the inquiry process of the path is started, the determination unit  66  initializes the inquiry list (step S 221 ). The determination unit  66  acquires the destination MAC address of the check packet from the ARP table by using the destination IP address of the entry as the processing target included in the check packet table  65  (step S 222 ). The determination unit  66  determines whether or not the arrival check number and the check number match each other on the entry as the processing target (step S 223 ). 
     In a case where the arrival check number and the check number do not match each other, since some of the check packets does not arrive at the destination, the determination unit  66  determines that the failure occurs in the path specified using the header of the check packet that does not arrive (No in step S 223 ). The determination unit  66  creates a difference (Sd 1 ) between the check list and the arrival list, and generates a template T 1  used for generating the header information of the check packet (steps S 224  and S 225 ). When the template T 1  is generated, the determination unit  66  sets both the transmission source MAC address and the transmission source IP address to the addresses assigned to its own nodes. The determination unit  66  sets the destination MAC address included in the template T 1  to the MAC address specified in step S 222  and sets the destination IP address with the destination IP address included in the entry. The determination unit  66  sets the destination port number included in the template T 1  to the checking port number. Thereafter, the determination unit  66  adds one of the transmission source port numbers of the difference Sd 1  to the template T 1  of the header information, and adds the acquired header information to the inquiry list (step S 226 ). The determination unit  66  determines whether or not there are the port numbers that are not processed in the difference Sd 1  (step S 227 ). In a case where there are the port numbers that are not processed, the process returns to step S 226  (Yes in step S 227 ). 
     Hereinafter, the determination on the transmission paths of the response packets will be described. After the process of step S 227  or if it is determined that the arrival check number and the check number match each other in step S 223 , the processes subsequent to step S 228  are performed. Here, in a case where the arrival check number and the check number match each other, since all the check packets arrive at the destination, the determination unit  66  determines that the failure does not occur in the path specified using the header of the check packet (Yes in step S 223 ). 
     The determination unit  66  determines whether or not the reception response number and response number match each other for the entry as the processing target (step S 228 ). In a case where the reception response number and the response number do not match each other, since some of the response packets are not received, the determination unit  66  determines that the failure occurs in the path specified using the headers of the response packets that are not received (No in step S 228 ). The determination unit  66  creates a difference (Sd 2 ) between the response list and the reception list, and generates a template T 2  used for generating the header information of the response packet (steps S 229  and S 230 ). When the template T 2  is generated, the determination unit  66  sets both the destination MAC address and the destination IP address to the addresses assigned to its own nodes. The determination unit  66  sets the transmission source MAC address included in the template T 2  to the MAC address specified in step S 222 , and sets the transmission source IP address to be the destination IP address included in the entry. The determination unit  66  sets the destination port number included in the template T 2  to be the checking port number. Thereafter, the determination unit  66  adds one of the transmission source port numbers included in the difference Sd 2  to the template T 2  of the header information, and adds the acquired header information to the inquiry list (step S 231 ). The determination unit  66  determines whether or not there are the port numbers that are not processed in the difference Sd 2  (step S 232 ). In a case where there are the port numbers that are not processed, the process returns to step S 231  (Yes in step S 232 ). Thereafter, the determination unit  66  inquires the management device  80  about the path specified by each header included in the inquiry list by using the inquiry list, and appropriately outputs the acquired result (No in step S 232 , step S 234 ). The searching for the path in the management device  80  and the notifying the communication device  60  of the path are the same as those in the first embodiment. 
     In a case where the reception response number and the response number match each other for the entry as the processing target, the determination unit  66  determines whether or not the data is included in the inquiry list (Yes in step S 228 , step S 233 ). In a case where the data is included in the inquiry list, the process of step S 234  is performed. In a case where the data is not included in the inquiry list, since the transmission and reception of all the check packets and the response packets succeed, the determination unit  66  determines that the failure does not occur in the paths used in the transmission and reception of all the check packets and the response packets (No in step S 233 ). Here, the determination unit  66  outputs the success determination to the display device, and ends the process (step S 235 ). 
     As described above, according to the third embodiment, since the responses to the plurality of check packets is grouped as one response packet, it is possible to avoid the increase in the number of response packets. For one of groups of check packets grouped for each combination of the transmission sources and the IDs of the check packets, the plurality of response packets is transmitted, and information of another response packet is included in each response packet. Another response packet is a response to the same check packet as that of the response packet including the information of another response packet. Accordingly, in the third embodiment, it is possible to specify the path in which the failure occurs in the physical network by using the arrival state of the check packet and the reception state of the response packet. 
     In the third embodiment, since the plurality of check packets is transmitted, whether or not the failure occurs in the plurality of paths to the destination of the check packet from the transmission source of the check packet is examined. Thus, the third embodiment is useful in a case where the node or the application in which the failure occurs is not specified in the network. 
     &lt;OTHERS&gt; 
     The embodiments are not limited to the above-described embodiments, and may be modified in various forms. Hereinafter, some modification examples will be described. 
     For example, the number of response packets generated by the communication device  20 ,  50 , or  60  may be arbitrarily changed depending on the implementation of the components. The number of check packets transmitted from the communication device  60  when the checking is performed once may be arbitrarily changed depending on the implementation of the components. 
     The arithmetic operation when the transmission source port number included in the response packet is determined may be determined depending on the implementation of the components. Although it has been described in the above-described example that the predetermined value is added to the transmission port of the check packet when the transmission source port number included in the response packet is determined, the predetermined value may be subtracted from the transmission port of the check packet, or another arithmetic operation may be performed. 
     In order to apply the above-described example with a network including a communication device other than the communication device  20 ,  50 , or  60  according to the embodiments, the above-described example may be modified such that the determination unit  35  determines whether or not header information of the packet other than the reception packet is included in the data included in the received packet. In this case, if the inclusion of the header information of the packet other than the received packet in the data of the received response packet is specified, the determination unit  35  performs the reception process illustrated in  FIG. 13 . For example, in  FIG. 13 , a process of determining whether or not the information of another response packet is included in the response packet may be included between step S 42  and step S 43 . 
     Although it has been described in the above-described example that the UDP packet is used as the check packet and the response packet, the protocol used for the check packet or the response packet may be changed depending on the implementation of the components. For example, The Internet Control Message Protocol (ICMP) may be used. 
     Similarly to the second embodiment, the third embodiment may be modified such that the communication device  60  as the transmission side of the response packet learns the overlapping state of the paths. The third embodiment may be modified such that the communication device  60  as the transmission source that transmits the plurality of check packets inquires of the management device  80  about the transmission paths of the transmitted check packets, and learns the overlapping state of the paths. In this case, in a case where the check packets are transmitted to the communication device  60  later, the communication device  60  as the transmission side may transmit the plurality of check packets such that the transmission paths do not overlap each other. 
     In the above-described embodiments, the timing when the check packet is transmitted may be arbitrarily changed depending on the implementation of these components. For example, the operator designates the destination of the check packet from a specific communication device  20 , and executes a command, and thus, the check packet may be transmitted. The operator may designate the transmission source of the check packet and the destination of the check packet and may execute the command by using a management console. The operator may previously set the combination of the transmission source of the check packet, the destination of the check packet, and a time interval at which the checking is performed to the system, and may check the state of the transmission path in the system for every predetermined time. The operator may designate the transmission source port number of the check packet when the command related to the transmission of the check packet is executed. In a case where the designation is performed by the operator, the communication device  20  generates the check packet by using the designated transmission source port number. The above-described modification example is not limited to the case where the communication device  20  is used in the system, and may be applied to a system in which the communication device  50  or the communication device  60  is used. 
     The transmission of the check packet may be recognized by the determination unit  35  or the determination unit  66  by previously performing the setting when the failure occurs in the system. In this case, if all the response packets are received, the determination unit  35  or the determination unit  66  may generate a message notifying that there is a possibility that the failure will occur in the virtual network instead of the success determination. 
     The format of the packet or the table used in the above description is an example, and the information elements of the packet or the table may be changed depending on the implementation of these components. 
     The arithmetic operation performed for traffic distribution may also be changed depending on the implementation of these components. For example, a hash function may be calculated using five types of information elements without using seven types of information elements as described in  FIG. 7 . In this case, hash values are calculated using information items of the destination MAC address, the transmission source MAC address, the transmission source IP address, the destination IP address, and the protocol. The hash function used when the hash values are calculated may also be arbitrarily selected depending on the implementation of these components. The function used for the traffic distribution is not limited to a remainder function. 
     All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.