Communication equipment and communication methods

The communication device achieves packet redundancy using middleware and multiple paths to maintain reliability in challenging environments without increasing device count, enhancing remote operation efficiency.

JP7881500B2Active Publication Date: 2026-06-29HITACHI LTD

Patent Information

Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
HITACHI LTD
Filing Date
2023-02-28
Publication Date
2026-06-29

Smart Images

  • Figure 0007881500000001
    Figure 0007881500000001
  • Figure 0007881500000002
    Figure 0007881500000002
  • Figure 0007881500000003
    Figure 0007881500000003
Patent Text Reader

Abstract

To provide a communication apparatus capable of performing redundancy of a packet while suppressing an increase of the number of devices.SOLUTION: A processor realizes a communication application part A101 that transmits a packet A111 to a terminal B by executing an application. Also, the processor executes a middleware to perform redundancy of the packet A111 to a plurality of packets A112 corresponded to each of a plurality of communication paths 1 to n, and a redundancy control part that transmits each packet A112 to a terminal B via the plurality of communication paths 1 to n is realized.SELECTED DRAWING: Figure 1
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates to a communication device and a communication method.

Background Art

[0002] Conventionally, in the field of communication, for the purpose of enhancing network reliability, redundancy of servers and redundancy of packets have been carried out. For example, Patent Document 1 discloses a communication system that redundantly transmits data to a plurality of networks between a transmission device and a reception device and unifies the redundant data on the reception side.

Prior Art Documents

Patent Documents

[0003]

Patent Document 1

Summary of the Invention

Problems to be Solved by the Invention

[0004] In the technique described in Patent Document 1, a transmission device redundantly transmits data from a processing device that executes an application for transmitting data. Therefore, since a transmission device that functions as a data relay device separately from the processing device is required, there is a problem that the number of devices increases. For this reason, it is difficult to ensure high reliability of communication used for remote operation of a device located in a place where it is difficult to install a relay device, such as a narrow place where people cannot enter.

[0005] An object of the present disclosure is to provide a communication device and a communication method capable of performing packet redundancy while suppressing an increase in the number of devices.

Means for Solving the Problems

[0006] A communication device according to one aspect of the present disclosure is a communication device that is communicably connected to an external device via a plurality of communication paths, and comprises a recording unit and a processor, wherein the recording unit records an application and middleware, the processor implements an application unit that sends packets addressed to the external device by executing the application, and the processor implements a redundancy control unit that redundancies the packets sent from the application unit into a plurality of transmission packets corresponding to each of the plurality of communication paths, and transmits each transmission packet to the external device via the plurality of communication paths. [Effects of the Invention]

[0007] According to the present invention, it is possible to implement packet redundancy while suppressing an increase in the number of devices. [Brief explanation of the drawing]

[0008] [Figure 1] This figure shows a communication system according to one embodiment of the present disclosure. [Figure 2] This is a diagram showing the packet structure. [Figure 3] This is a flowchart illustrating an example of route management processing. [Figure 4] This is a flowchart illustrating an example of a procedure for confirming whether a person is alive or dead. [Figure 5] This figure shows an example of the hardware configuration of a terminal. [Modes for carrying out the invention]

[0009] The embodiments of this disclosure will be described below with reference to the drawings.

[0010] Figure 1 shows a communication system according to one embodiment of the present disclosure. The communication system shown in Figure 1 has terminals A and B, which are connected to each other via a plurality of communication paths 1 to n so that they can communicate with one another.

[0011] Terminal A comprises a communication application unit A101, a virtual network interface A121, a routing / IP address setting unit A131, a route management unit A132, an encapsulation unit A133, a decapsulating unit A134, and multiple NICs (Network Interface Cards) A151 to A15n. Terminal B has the same configuration as Terminal A. In the following, elements of Terminal B that correspond to elements of Terminal A are denoted by replacing the letter "A" in the code attached to the element of Terminal A with "B". Therefore, for example, the communication application unit of Terminal B corresponding to the communication application unit A101 of Terminal A is denoted by the code "B101". Furthermore, the functions of Terminal A are described below, and since the functions of Terminal B are the same as those of Terminal A, their description will be omitted as appropriate.

[0012] NICA151~A15n are communication devices corresponding to each of the multiple communication paths 1~n, and each has a different IP address. In this embodiment, NICA151~A15n each have IP addresses A1~An. n can be any integer greater than or equal to 2. In other words, the number of NICs and communication paths is not limited as long as there are multiple NICs. NICA151~A15n transmits packet A112, described later, to terminal B and receives packet A112 from terminal B.

[0013] The communication application unit A101 is implemented by an application (application program) that performs data communication. The communication application unit A101 sends packet A111 addressed to terminal B, which is an external device.

[0014] Virtual network interface A121 is a virtual NIC implemented in software and has IP address α1 as the source IP address of packet A111.

[0015] The routing / IP address setting unit A131 is a routing setting unit that manages the internal routing of terminal A, and is implemented, for example, by middleware. For example, the routing / IP address setting unit A131 pre-assigns IP address α1 to the virtual network interface A121 of terminal A, and further sets the IP address α1 of virtual network interface A121 in routing table A122 as a gateway to the network address of IP address β1 of virtual network interface B121 of terminal B, which will be the communication partner. As a result, the routing / IP address setting unit A131 can route packet A111, which is sent from the communication application unit A101 and addressed to terminal B (more specifically, addressed to IP address β1 of virtual network interface B121 of terminal B), to the virtual network interface A121 of terminal A using routing table A122.

[0016] The routing unit A132, encapsulation unit A133, and decapsulating unit A134 are implemented by middleware and constitute a redundant control unit that provides redundancy to packet A111 sent from communication application unit A101 and transmits it to terminal B, which is the destination of packet A111.

[0017] The path management unit A132 checks whether each of the communication paths 1 to n is available, and adds the check result to the path management table A141. Specifically, the path management unit A132 periodically transmits a liveness check packet A113 for checking the availability of the communication paths 1 to n to the terminal B using each of the communication paths 1 to n. Also, the path management unit A132 checks the availability of the communication paths 1 to n based on the liveness check packet B113 from the terminal B for each of the communication paths 1 to n. For example, for each communication path, if the path management unit A132 receives the liveness check packet B113 within a certain period, it determines that the communication path is available, and if it does not receive the liveness check packet within a certain period, it determines that the communication path is not communicable. Then, the path management unit A132 sets the availability of each of the communication paths 1 to n as the path status in the path management table A141.

[0018] Note that the path management table A141 is information indicating the path status of each communication path. In this embodiment, in the path management table A141, the path status indicates "Up" when it is available and "Down" when it is not available in this embodiment.

[0019] The encapsulation unit A133 intercepts the packet A111 sent from the communication application unit A101 and routed to the virtual network interface A121 from the virtual network interface A121. The encapsulation unit A133 identifies the destination terminal (here, the terminal B) of the intercepted packet A111 using the destination-source correspondence table A142. The destination-source correspondence table A142 is pre-set information and shows the correspondence relationship between the destination and the source of the packet A111.

[0020] Also, based on the path management table A141, the encapsulation unit A133 duplicates the harvested packet A111 into a plurality of transmitted packets A112, which correspond to each of the available paths among the plurality of communication paths 1 to n and are in an available state. Then, the encapsulation unit A133 transmits the packet A112 corresponding to each of the available paths to the terminal B (specifically, the NIC corresponding to the available path among the NICs B151 to B15n of the terminal B) via each of the NICs A151 to A15n corresponding to the available paths.

[0021] The duplication of the packet A111 is performed by adding headers corresponding to each of the communication paths 1 to n (specifically, the available paths) to the packet A111.

[0022] Figure 2 is a diagram for explaining the duplication of the packet A111 and shows the configurations of the packets A111 and A112.

[0023] As shown in Figure 2, the packet A111 includes application data 10 and an IP header 11. The application data 10 is the data of the communication application unit A101. The IP header 11 includes the IP address α1 of the virtual network interface A121 of the terminal A as the source IP address and the IP address of the virtual network interface B121 of the terminal B as the destination IP address.

[0024] On the other hand, packet A112 includes a sequence header 12 and an additional IP header 13, in addition to application data 10 and an IP header 11. The sequence header 12 includes a sequence number that defines the order of the packets. The sequence number is managed for each source and destination combination, and multiple redundant packets A112 derived from the same packet A111 are assigned the same sequence number. The additional IP header 13 includes the IP address of the NIC corresponding to packet A112 on terminal A, and the IP address of the NIC on terminal B that corresponds to that NIC. Note that NICs B151 to NIC15n on terminal B each have IP addresses B1 to Bn.

[0025] The sequence header 12 and the additional IP header 13 are added to packet A111 by the encapsulation unit A133. Hereafter, the process of adding the sequence header 12 and the additional IP header 13 to packet A111 in the encapsulation unit A133 to make it redundant may be referred to as encapsulation.

[0026] Returning to the explanation of Figure 1, the decapsulating unit A134 receives packet B112, an external device packet transmitted from terminal B via an available path, from NICA151~A15n. If there are multiple packets B112 with the same sequence number, the decapsulating unit A134 keeps only the packet that was received earliest and discards the others.

[0027] The decapsulating unit B131 sends packet B114, which is a received packet that has undergone decapsulating by removing the sequence header and IP header from the received packet B112, to the communication application unit A101. Specifically, packet B114 sent from the decapsulating unit B131 is routed to the virtual network interface A121 of terminal A by routing table A122. Then, packet B114 routed to the virtual network interface A121 is harvested by the communication application unit A101.

[0028] Furthermore, the decapsulating unit B131 may detect packet loss, reversed packet arrival order, etc., based on the sequence number within packet B112. If a reversed packet arrival order is detected, the decapsulating unit B131 may temporarily save the packets to memory 52 (see Figure 5) or the like, rearrange them in the correct order, and send them to the communication application unit A101 to correct the packet arrival order.

[0029] The above description explains the configuration of terminal A, but as mentioned above, terminal B has a similar configuration, enabling mutual communication between terminals A and B. However, terminal A may be the transmitter and terminal B the receiver. Also, although the number of terminals is shown as one each for the transmitter and receiver in the diagram, it can be increased or decreased to any number. Furthermore, the encapsulating unit A133 may be equipped with packet encryption, communication with response confirmation, retransmission control using protocols such as TCP (Transmission Control Protocol), and teaming functions.

[0030] Figure 3 is a flowchart illustrating an example of the route management process performed by the route management unit A132.

[0031] In the route management process, the route management unit A132 waits for the duration of one predetermined route monitoring cycle (step S301). After the duration of one cycle has elapsed, the route management unit A132 performs a status check to confirm whether communication routes 1 to n are usable (step S302), and then returns to the process in step S301.

[0032] Figure 4 is a flowchart illustrating an example of the life / death check process in step S302 of Figure 3. The life / death check process is performed for each of the communication paths 1 to n.

[0033] In the life / death check process, the route management unit A132 checks whether or not it has received a life / death check packet corresponding to the target communication route from terminal B (step S401).

[0034] If a life / death confirmation packet is received (step S401: Yes), the routing unit A132 determines that the target communication path is available, sets the route status of the target communication path in the routing table A141 to "Up" (step S402), and terminates the process.

[0035] On the other hand, if a life / death confirmation packet has not been received (step S401: No), the routing unit A132 determines whether a certain amount of time has elapsed since the start of the life / death confirmation process (step S403).

[0036] If a certain amount of time has elapsed (step S403: Yes), the route management unit A132 determines that the target communication route is unavailable, sets the route status of the target communication route in the route management table A141 to "Down" (step S404), and terminates the process. On the other hand, if a certain amount of time has not elapsed (step S403: No), the route management unit A132 returns to the process in step S401.

[0037] Figure 5 shows an example of the hardware configuration of terminal A. As shown in Figure 5, terminal A has a processor 51, memory 52, recording device 53, input device 54, and display device 55, which are connected via a bus 56. Terminal B can be implemented with a device having the same hardware configuration as terminal A.

[0038] The recording device 53 is a device that records data in a writable and readable format, and records various types of information. For example, the recording device 53 records a program that defines the operation of the processor 51, a routing table A122, a route management table A141, and a destination / source correspondence table A142. The processor 51 reads the program recorded in the recording device 53 into the memory 52 and uses the memory 52 to execute processing according to the program. The processor 51 realizes each part of terminal A shown in Figure 1 (communication application unit A101, virtual network interface A121, routing / IP address setting unit A131, route management unit A132, encapsulation unit A133, and decapsulating unit A134). The input device 54 is a device that receives various types of information from the user of terminal A and external devices (not shown), and this information is used for processing by the processor 51. The display device 55 is a device that displays various types of information.

[0039] As described above, according to this embodiment, the processor 51 implements a communication application unit A101 that sends packet A111 addressed to terminal B by executing an application. The processor also implements a redundancy control unit that, by executing middleware, redundancies packet A111 sent from the application unit into multiple packets A112 corresponding to each of the multiple communication paths 1 to n, and transmits each packet A112 to terminal B via the multiple communication paths 1 to n. Therefore, it becomes possible to perform redundancy of packet A111 within terminal A, thereby enabling redundancy of packet A111 while suppressing an increase in the number of devices. Furthermore, since the redundancy of packet A111 is performed by middleware, it is possible to perform redundancy of packet A111 within terminal A without changing the application. This makes it possible to ensure high reliability of communications used for remote work on devices located in places where it is difficult to install relay devices, such as narrow places that are inaccessible to people. It also makes it possible to reduce the number of places where failures may occur and to reduce costs.

[0040] Furthermore, in this embodiment, the redundant control unit intercepts and redundancies packet A111, which has been sent from the communication application unit A101 and routed to the virtual network interface A121. This makes it possible to accurately deliver packet A111 to the redundant control unit.

[0041] Furthermore, in this embodiment, the redundancy control unit generates a encapsulating packet A112 for each NIC, by adding an additional IP header containing the IP address of the NIC and the IP address of the terminal B corresponding to the NIC, and a sequence header containing a sequence number indicating the order of packet A111, thereby making packet A111 redundant. In this case, it becomes possible to perform the redundancy of packet A111 more appropriately.

[0042] Furthermore, in this embodiment, a sequence number is assigned to each combination of source and destination of packet A111. This makes it possible to assign sequence numbers more appropriately.

[0043] Furthermore, in this embodiment, the redundancy control unit sends packet B113, which is obtained by removing the additional IP header and sequence header from packet B111 from terminal B, to the communication application unit A101. As a result, it becomes possible to receive redundant packets from external devices without changing the communication application.

[0044] Furthermore, in this embodiment, the redundancy control unit discards all packets B112 except the one received earliest among the multiple packets B112 received by each of the NICA151~15n. In this case, it is possible to suppress a decrease in communication speed while ensuring high reliability through redundancy.

[0045] Furthermore, in this embodiment, the routing / IP address setting unit A131 routes packet B114 sent from the redundant control unit to the application unit 101 via the virtual network interface A121. This makes it possible to accurately deliver packet B114 to the communication application unit A101.

[0046] Furthermore, in this embodiment, the redundancy control unit checks whether each of the communication paths 1 to n is available and redundancies packet A111 into packet A112 corresponding to each of the available communication paths among communication paths 1 to n. In this case, it becomes possible to efficiently redundancy packet A111.

[0047] The embodiments of the Disclosure described above are illustrative for illustrative purposes and are not intended to limit the scope of the Disclosure to those embodiments only. Those skilled in the art can implement the Disclosure in various other forms without departing from the scope of the Disclosure. [Explanation of symbols]

[0048] 1-n: Communication path 10: Application data 11: IP header 12: Sequence header 13: Additional IP header 51: Processor 52: Memory 53: Recording device 54: Input device 55: Display device 56: Bus A, B: Terminals A101, B101: Communication application unit A121, B121: Virtual network interface A131, B131: Routing / IP address setting unit A132, B132: Route management unit A133, B133: Capsulating unit A134, B134: Decapsulating unit

Claims

1. A communication device that is connected to an external device via multiple communication paths, It has memory, a processor, and a virtual network interface. The aforementioned memory stores applications and middleware, The processor, by executing the application, realizes an application unit that sends packets destined for the external device. The processor, by executing the middleware, implements a redundant control unit that redundancies packets sent from the application unit into multiple transmission packets corresponding to each of the multiple communication paths, and transmits each transmission packet to the external device via the multiple communication paths. The communication device includes a routing configuration unit that routes packets sent from the application unit to the virtual network interface. The redundancy control unit is a communication device that captures packets routed to the virtual network interface and makes them redundant.

2. Each of the aforementioned multiple communication paths has multiple NICs (Network Interface Cards), The communication device according to claim 1, wherein the redundancy control unit generates a encapsulating packet as the transmission packet for each NIC, by adding an additional IP header to the packet that includes the IP address of the NIC and the IP address of the external device corresponding to the NIC, and a sequence header that includes a sequence number indicating the order of the packets.

3. The communication device according to claim 2, wherein the sequence number is assigned to each combination of source and destination of the packet.

4. Each of the aforementioned plurality of NICs receives an external device packet, which is the transmission packet of the external device. The communication device according to claim 2, wherein the redundant control unit sends a received packet, from which the additional IP header and the sequence header have been removed from the external device packet, to the application unit.

5. The communication device according to claim 4, wherein the redundant control unit discards all external device packets except the one received earliest among the multiple external device packets received by each of the multiple NICs.

6. The communication device according to claim 1, further comprising a routing setting unit that routes received packets sent from the redundant control unit to the application unit via the virtual network interface.

7. The communication device according to claim 1, wherein the redundancy control unit checks whether each of the plurality of communication paths is in an usable state, and redundancies the packet into a plurality of transmission packets corresponding to each of the plurality of communication paths that is in an usable state.

8. A communication method using a communication device that is connected to an external device via multiple communication paths, The communication device has memory, a processor, and a virtual network interface. The aforementioned memory stores applications and middleware, The processor is configured to implement an application unit that sends packets destined for the external device by executing the application. The communication device routes packets sent from the application unit to the virtual network interface. The processor implements a redundant control unit that, by executing the middleware, redundancies packets sent from the application unit into multiple transmission packets corresponding to each of the multiple communication paths, and transmits each transmission packet to the external device via the multiple communication paths. The redundancy control unit provides a communication method that involves pruning packets routed to the virtual network interface to make them redundant.