Communication devices, communication systems, methods, and programs
A communication system with a server-mediated relay and compression processing addresses the overhead issue in cloud computing systems, enhancing efficiency and reducing costs by optimizing data transmission between non-directly connected devices.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- KK TOSHIBA
- Filing Date
- 2023-08-03
- Publication Date
- 2026-04-13
AI Technical Summary
The increase in communication overhead due to bidirectional communication between multiple communication devices through a server device, leading to higher costs and reduced responsiveness, is a challenge in existing cloud computing systems.
A communication system where a server device acts as a relay between communication devices connected via different networks, utilizing compression processing to reduce overhead by compressing data using specific methods based on communication type, and transmitting it through separate networks to other devices.
This approach effectively reduces communication overhead, thereby lowering costs and improving responsiveness by optimizing data transmission between devices that cannot directly communicate.
Smart Images

Figure 0007844399000001 
Figure 0007844399000002 
Figure 0007844399000003
Abstract
Description
Technical Field
[0001] Embodiments of the present invention relate to a communication device, a communication system, a method, and a program.
Background Art
[0002] In recent years, server devices that provide cloud computing services are known. According to such a server device, for example, by establishing a session between a plurality of communication devices that cannot directly communicate with each other, it is possible to make the plurality of communication devices appear to be directly communicating (bidirectional communication) on a virtual network.
[0003] However, when a plurality of communication devices perform bidirectional communication on a virtual network as described above, each of the plurality of communication devices needs to transmit information (control information, etc.) for communication with the server device in addition to information for bidirectional communication with other communication devices, resulting in an increase in communication overhead. Such an increase in communication overhead is a factor in increasing communication costs and reducing communication responsiveness.
Prior Art Documents
Patent Documents
[0004]
【Patent Document 〗 International Publication No. 2010 / 001684
Summary of the Invention
Problems to be Solved by the Invention
[0005] Therefore, the problem to be solved by the present invention is to provide a communication device, a communication system, a method, and a program capable of suppressing communication overhead.
Means for Solving the Problems
[0006] According to one embodiment, a server device connected to other communication devices via a first network and a communication device connected via a second network are provided. The communication device includes a compression processing means for compressing a portion of first data transmitted in bidirectional communication between the server device and the other communication device using a first compression method corresponding to the type of bidirectional communication, and a transmission means for transmitting the partially compressed first data to the server device. The server device transmits the transmitted first data to the other communication device. The first compression method is notified from the server device to the communication device. [Brief explanation of the drawing]
[0007] [Figure 1] A diagram showing an example of the network configuration of the communication system according to the embodiment. [Figure 2] A diagram illustrating an example of a specific usage scenario for a communication system. [Figure 3] A block diagram showing an example of the functional configuration of the first communication device. [Figure 4] A diagram showing an example of the hardware configuration of the first communication device. [Figure 5] A block diagram showing an example of the functional configuration of a server device. [Figure 6] A sequence chart illustrating an example of the processing procedure for a communication system. [Figure 7] A diagram showing an example of packet structure. [Figure 8] A diagram showing an example of policy information. [Figure 9] A diagram showing an example of session information managed by a server device. [Figure 10] A diagram showing an example of session information managed by the first communication device. [Figure 11] A diagram illustrating packets transmitted and received in bidirectional communication. [Figure 12] A diagram illustrating an example of compression rules. [Figure 13] A diagram showing another example of a communication system network configuration. [Figure 14]A diagram illustrating other examples of specific usage patterns of communication systems. [Figure 15] A sequence chart illustrating another example of the processing procedure for a communication system. [Modes for carrying out the invention]
[0008] The embodiments will be described below with reference to the drawings. Figure 1 shows an example of the network configuration of the communication system according to this embodiment. As shown in Figure 1, the communication system 1 comprises a first communication device 10 (first client terminal), a second communication device 20 (second client terminal), and a server device 30.
[0009] The first communication device 10 is connected to the server device 30 via, for example, network 1a. The second communication device 20 is also connected to the server device 30 via, for example, network 1b.
[0010] At least one of networks 1a and 1b may be a local area network or a wide area network. Furthermore, if at least one of networks 1a and 1b is a wide area network, that wide area network may be an open network such as the Internet or a closed network such as a private network. Networks 1a and 1b may be the same network and have a direct connection point.
[0011] Furthermore, the communication performed between the first communication device 10 connected to the network 1a and the server device 30 and the communication performed between the second communication device 20 connected to the network 1b and the server device 30 may be wireless communication or wired communication. The wireless communication may be, for example, communication based on a wireless LAN, communication based on wide-area power-saving radio such as LPWA or LPWAN, or communication based on a mobile phone communication method or a satellite communication method such as LTE or 5G. On the other hand, the wired communication may be communication based on a wired LAN using electric wires or optical fibers, or communication using a telephone line or cable TV, etc.
[0012] Here, in the communication system 1 according to the present embodiment, it is assumed that the first communication device 10 and the second communication device 20 cannot perform direct communication. That is, in the communication system 1 according to the present embodiment, the first communication device 10 cannot directly communicate with the second communication device 20 by specifying an identifier for identifying the second communication device 20 on the network 1b, for example, and the second communication device 20 cannot directly communicate with the first communication device 10 by specifying an identifier for identifying the first communication device 10 on the network 1a, for example.
[0013] Note that, in the present embodiment, "the first communication device 10 and the second communication device 20 cannot perform direct communication" includes, for example, that the networks 1a and 1b are not technically interconnected. In this case, "not technically interconnected" includes that the networks 1a and 1b are constructed with different communication methods or communication technologies.
[0014] Furthermore, in the present embodiment, "the first communication device 10 and the second communication device 20 cannot perform direct communication" includes, for example, that the networks 1a and 1b are not interconnected for operational reasons. In this case, "not interconnected for operational reasons" includes, for example, the case where communication is restricted by network functions or firewall functions, etc. executed on the networks 1a and 1b (or the first communication device 10 and the second communication device 20).
[0015] In contrast, in the communication system 1 according to the present embodiment, for example, the first communication device 10 and the server device 30 can directly communicate via the network 1a. That is, in the communication system 1 according to the present embodiment, the first communication device 10 can directly communicate (transmit and receive data) with the server device 30 by specifying an identifier for identifying the server device 30 on the network 1a, for example. Although the first communication device 10 has been described here, similarly, the second communication device 20 and the server device 30 can directly communicate via the network 1b.
[0016] Note that the above-mentioned identifier on the network includes an identifier that can uniquely identify a node connected to the network, such as an IP address or a telephone number.
[0017] As described above, in the present embodiment, the first communication device 10 and the second communication device 20 can each directly communicate with the server device 30. However, assume a communication system 1 in which the first communication device 10 and the second communication device 20 cannot directly communicate with each other. In such a communication system 1, the server device 30 operates as a relay device (intermediary) between the first communication device 10 and the second communication device 20, thereby realizing communication (data exchange) between the first communication device 10 and the second communication device 20. In the following description, for convenience, the communication performed by the first communication device 10 and the second communication device 20 through the mediation of the above-mentioned server device 30 is referred to as two-way communication.
[0018] Here, FIG. 2 shows an example of a specific usage mode of the communication system 1 shown in FIG. 1. In FIG. 2, it is assumed that the communication system 1 is used in a maintenance system for maintaining various devices or equipment (hereinafter referred to as on-site devices) such as automatic doors, elevators, lighting, and air conditioners installed in a building or the like.
[0019] In this case, for example, the first communication device 10 shown in Figure 1 is implemented as a maintenance PC (a PC on which an application program for realizing maintenance functions for the field equipment runs) used by, for example, a remote maintenance worker for the field equipment. Also, the second communication device 20 shown in Figure 1 is implemented as a field equipment (a communication device mounted on it). Furthermore, the server device 30 is implemented as, for example, a cloud server that provides cloud computing services. Note that the cloud server may be implemented by a single server device or by multiple server devices.
[0020] According to the communication system 1 shown in Figure 2, bidirectional communication is performed between, for example, a maintenance PC (first communication device 10) and field equipment (second communication device 20) via the mediation of a cloud server (server device 30). This makes it possible to remotely perform maintenance work on the field equipment in response to operations performed by a maintenance worker on the maintenance PC.
[0021] Note that the usage of communication system 1 shown in Figure 2 is just one example, and communication system 1 may be used in other ways. Specifically, in communication system 1, the first communication device 10 may be a PC or the like that controls IoT devices used to provide IoT services, and the second communication device 20 may be the IoT device (edge device), etc.
[0022] In other words, the communication system 1 according to this embodiment can be applied to various fields as long as it is configured to enable bidirectional communication between the first communication device 10 and the second communication device 20 via a server device 30 in a network configuration where the first communication device 10 and the second communication device 20 cannot communicate directly, as described above.
[0023] The communication system 1 according to this embodiment will be described in detail below. Figure 3 is a block diagram showing an example of the functional configuration of the first communication device 10 provided in the communication system 1.
[0024] As shown in Figure 3, the first communication device 10 includes an application processing unit 11, a session information storage unit 12, a compression rule storage unit 13, a compression processing unit 14, and a communication processing unit 15.
[0025] The application processing unit 11 generates data to be transmitted in bidirectional communication with, for example, the second communication device 20.
[0026] The session information storage unit 12 stores session information for managing a session, for example, when a session for bidirectional communication with the second communication device 20 is established.
[0027] In this embodiment, it is assumed that the first communication device 10 and the second communication device 20 perform bidirectional communication via the server device 30. In this bidirectional communication, the data transmitted includes not only information for bidirectional communication but also information for communication with the server device 30 (control information), etc., which increases the communication overhead when performing such bidirectional communication. Therefore, in this embodiment, a compression rule storage unit 13 and a compression processing unit 14 are included as configurations to suppress the above-mentioned communication overhead.
[0028] The compression rule storage unit 13 stores compression rules for compressing data transmitted in bidirectional communication (data generated by the application processing unit 11).
[0029] The compression processing unit 14 executes a process to compress a portion of the data transmitted in bidirectional communication based on the compression rules stored in the compression rule storage unit 13.
[0030] The communication processing unit 15 transmits the data, which has been partially compressed by the compression processing unit 14, to the server device 30 via the network 1a. The data transmitted in this manner from the first communication device 10 (communication processing unit 15) to the server device 30 is then transmitted from the server device 30 to the second communication device 20 via the network 1b.
[0031] Although Figure 3 illustrates the functional configuration of the first communication device 10, the second communication device 20 has a similar functional configuration. In other words, while this explanation describes the case where data is transmitted from the first communication device 10, in bidirectional communication, the second communication device 20 may also transmit data.
[0032] The data transmitted from the second communication device 20 is received by the server device 30 and transmitted from the server device 30 to the first communication device 10. The communication processing unit 15 receives the data transmitted from the server device 30 in this manner.
[0033] Here, a portion of the data received by the communication processing unit 15 is compressed on the second communication device 20 side. Therefore, the compression processing unit 14 decompresses a portion of the data received by the communication processing unit 15 based on the session information stored in the session information storage unit 12 and the compression rules stored in the compression rule storage unit 13.
[0034] The application processing unit 11 can acquire the data decompressed by the compression processing unit 14 and perform processing on that data.
[0035] Figure 4 shows an example of the hardware configuration of the first communication device 10 shown in Figure 3. As shown in Figure 4, the first communication device 10 includes a CPU 10a, non-volatile memory 10b, main memory 10c, and communication device 10d, etc.
[0036] The CPU 10a is a processor that controls the operation of each component within the first communication device 10. The CPU 10a may consist of a single processor or multiple processors. The CPU 10a executes various programs that are loaded from the non-volatile memory 10b, which is a storage device, into the main memory 10c. The communication device 10d is a device for communicating with an external device (for example, a server device 30).
[0037] In this embodiment, some or all of the application processing unit 11, compression processing unit 14, and communication processing unit 15 shown in Figure 3 may be implemented by, for example, having the CPU 10a shown in Figure 4 execute a predetermined program (application program), i.e., by software; or by hardware such as an IC (Integrated Circuit); or by a configuration combining software and hardware.
[0038] Furthermore, in this embodiment, the session information storage unit 12 and the compression rule storage unit 13 shown in Figure 3 can be implemented, for example, by the non-volatile memory 10b shown in Figure 4.
[0039] While the hardware configuration of the first communication device 10 has been described here, the hardware configuration of the second communication device 20 is the same as that of the first communication device 10, so a detailed explanation of it will be omitted here.
[0040] Figure 5 is a block diagram showing an example of the functional configuration of a server device 30 provided in the communication system 1.
[0041] As shown in Figure 5, the server device 30 includes a first communication processing unit 31, a second communication processing unit 32, an application processing unit 33, a policy information storage unit 34, and a session information storage unit 35.
[0042] The first communication processing unit 31 communicates with the first communication device 10 via the network 1a. For example, when data is transmitted from the first communication device 10, the first communication processing unit 31 receives the data.
[0043] The second communication processing unit 32 communicates with the second communication device 20 via the network 1b. For example, when data is transmitted from the second communication device 20, the second communication processing unit 32 receives the data.
[0044] In the case of a network configuration where the server device 30 is connected to only one network (i.e., networks 1a and 1b are the same network), the first communication processing unit 31 and the second communication processing unit 32 do not need to be distinguished in implementation.
[0045] The application processing unit 33 processes data received by, for example, the first communication processing unit 31 or the second communication processing unit 32 (i.e., packets exchanged in bidirectional communication). Specifically, when data is received by the first communication processing unit 31, the application processing unit 33 executes a process to transfer the data to the second communication device 20. Similarly, when data is received by the second communication processing unit 32, the application processing unit 33 executes a process to transfer the data to the first communication device 10.
[0046] In this embodiment, when bidirectional communication is initiated, the first communication device 10 or the second communication device 20 requests the initiation of the bidirectional communication, as will be described later. The policy information storage unit 34 stores policy information for determining whether or not to permit the request (hereinafter referred to as the communication initiation request).
[0047] The session information storage unit 35 stores session information for managing the session when a session for performing bidirectional communication is established by granting permission for a communication start request (i.e., the requested bidirectional communication) based on the policy information described above.
[0048] Although not shown in the figures, the server device 30 has a hardware configuration similar to the first communication device 10 and the second communication device 20 described above, including, for example, a CPU, non-volatile memory, main memory, and communication devices.
[0049] In this case, some or all of the first communication processing unit 31, the second communication processing unit 32, and the application processing unit 33 shown in Figure 5 may be implemented by causing the CPU of the server device to execute a predetermined program (application program), that is, by software, by hardware, or by a configuration combining software and hardware.
[0050] Furthermore, the policy information storage unit 34 and session information storage unit 35 shown in Figure 5 can be implemented using non-volatile memory provided by the server device 30.
[0051] Hereinafter, an example of the processing procedure of the communication system 1 according to this embodiment will be described with reference to the sequence chart in Figure 6.
[0052] As mentioned above, Figure 3 was used to illustrate the functional configuration of the first communication device 10. However, since the functional configuration of the second communication device 20 in this embodiment is the same as that of the first communication device 10, Figure 3 will be used as appropriate when describing the functional configuration of the second communication device 20 below.
[0053] Here, we assume that the first communication device 10 requests the start of bidirectional communication with the second communication device 20. In this case, the application processing unit 11 included in the first communication device 10 generates a communication start request, and the communication processing unit 15 transmits the generated communication start request to the server device 30 via the network 1a (step S1).
[0054] In step S1, the communication start request transmitted from the first communication device 10 to the server device 30 includes, for example, identification information for identifying the first communication device 10, which is the source of the communication start request (hereinafter referred to as the identification information of the first communication device 10), and identification information for identifying the second communication device 20, which is the recipient of the communication start request (i.e., the communication partner in bidirectional communication) (hereinafter referred to as the identification information of the second communication device 20).
[0055] Furthermore, the identification information for the first communication device 10 and the second communication device 20 can be, for example, identifiers assigned to nodes on networks 1a and 1b managed by the server device 30. In this case, the identification information for the first communication device 10 and the second communication device 20 may be identifiers such as device ID, user ID, or client ID.
[0056] Furthermore, the identification information for the first communication device 10 and the second communication device 20 may be an identifier of a node managed separately outside the communication system 1. In this case, the identification information for the first communication device 10 and the second communication device 20 may be an FQDN (domain name), a URL including the FQDN, or an identifier defined under another identifier system.
[0057] Here, the communication initiation request is described as including identification information for the first communication device 10 and the second communication device 20, but for example, the identification information for the second communication device 20 may be omitted. In addition, the communication initiation request may include other information. Specifically, the communication initiation request may include the type of bidirectional communication requested by the communication initiation request (and the content of that communication type), etc.
[0058] In this embodiment, network 1a transmits and receives data in units called packets, for example. Figure 7 shows an example of a packet configuration.
[0059] As shown in Figure 7, a packet consists of a header and a data section. The header section includes, for example, source information indicating the source of the data and destination information indicating the destination of the data. The data section contains the data itself that is exchanged between nodes.
[0060] Specifically, assuming that a packet is transmitted in step S1 described above, the header portion of the packet includes source information indicating the first communication device 10 and destination information indicating the server device 30. The data portion of the packet also includes data related to the communication start request (such as data indicating that the first communication device 10 is requesting the second communication device 20 to start bidirectional communication).
[0061] The header section also includes control information specific to each communication method (communication medium), as well as control information for protocols applied to communications conducted over the network (in this case, network 1a).
[0062] Furthermore, if network 1a is a TCP / IP-based network, the header portion of packets transmitted and received over that network will include transport protocol header information in addition to the IP header. The header portion of the packet may also include header information for communication security used (applied), for example. Generally, data exchange with the server device 30 is performed based on application protocols such as HTTP or MQTT, so the header portion of the packet may include control information for the application protocol.
[0063] Here, we have described packets transmitted and received in network 1a (i.e., between the first communication device 10 and the server device 30), but we will assume that packets are transmitted and received similarly in network 1b (i.e., between the second communication device 20 and the server device 30).
[0064] Returning to Figure 6, the first communication processing unit 31 included in the server device 30 receives a communication start request (a packet with the configuration shown in Figure 7) transmitted from the first communication device 10 via the network 1a.
[0065] When the first communication processing unit 31 receives a communication start request, the application processing unit 33 executes a process to determine whether or not to allow the communication start request (hereinafter referred to as the request allowance / failure determination process) (step S2).
[0066] The following is an overview of the request eligibility determination process. The request eligibility determination process is executed based on the policy information stored in the policy information storage unit 34.
[0067] Here, Figure 8 shows an example of policy information. The policy information shown in Figure 8 corresponds to information that defines the content of the communication initiation request (the bidirectional communication requested by it) that should be permitted, and includes, for example, a policy number, requester, requester, communication type, and expiration date, all associated with each other.
[0068] The policy number is a number assigned to the policy information. The requester is information indicating the communication device that is the requester of the communication initiation request. The recipient is information indicating the communication device that is the recipient of the communication initiation request (i.e., the communication partner in a bidirectional communication). The communication type is information indicating the type of bidirectional communication that takes place between the requester (the communication device indicated by the requester) and the recipient (the communication device indicated by the requester). The communication type is represented, for example, by the protocol and port (number) applied to the bidirectional communication. The expiration date is information indicating the expiration date set for the policy information to which the policy number is assigned.
[0069] Figure 8 shows multiple policy information entries, including policy information entries 341 to 343. Policy information entry 341 includes the policy number "1000", requester "X1", requester "X2", communication type "Protocol A, port P1, Protocol B, port P2", and expiration date "-". According to this policy information entry 341, if the requester of a communication initiation request is communication device X1, the requester of the communication initiation request is communication device X2, and the requester requests the requester to initiate bidirectional communication of protocol A, port P1 or protocol B, port P2, then the communication initiation request will be permitted. The expiration date "-" indicates that no expiration date is set for policy information entry 341.
[0070] Furthermore, policy information 342 includes the policy number "2000", requester "Y1", requester "Y2", communication type "Any", and expiration date "July 1, 2023, 23:50:00". According to this policy information 342, if the requester of a communication initiation request is communication device Y1 and the requester of the communication initiation request is communication device Y2, the communication initiation request will be permitted. Note that the communication type "Any" indicates that the communication type is not specified (any type is acceptable). The expiration date set for policy information 342 is July 1, 2023, 23:50:00, and when this expiration date expires, policy information 342 will be discarded from the policy information storage unit 34. Note that the expiration date may be renewed (extended).
[0071] Furthermore, policy information 343 includes the policy number "2500", requester "Z1", requester "Z2", communication type "Protocol C, Port P3", and expiration date "-" in association with each other. According to this policy information 341, if the requester of a communication initiation request is communication device Z1, the requester of the communication initiation request is communication device Z2, and the requester requests the requester to initiate bidirectional communication of protocol C, port P3, then the communication initiation request will be permitted.
[0072] Here, policy information 341 to 343 has been described, but these policy information 341 to 343 are just examples, and other policy information may be stored in the policy information storage unit 34. Also, some of the information included in the policy information shown in Figure 8 may be omitted, and the policy information may include other information not shown in Figure 8.
[0073] Here, the information corresponding to the requester, request destination, and communication type included in the policy information described above (identification information of the first communication device 10, identification information of the second communication device 20, and the communication type of bidirectional communication requested by the communication start request) can be obtained from the packet (the header and data parts that constitute it) sent from the first communication device 10 to the server device 30. In the request permission determination process described above, the application processing unit 33 determines whether or not to permit the communication start request by comparing the information obtained from the packet with the policy information.
[0074] Furthermore, if, for example, the identification information of the second communication device 20 or the type of bidirectional communication requested by the communication start request is not included in the communication start request, the server device 30 may, for example, perform a request feasibility determination process based on information such as the communication partners (communication devices) with which the first communication device 10 can perform bidirectional communication and the types of bidirectional communication that the first communication device 10 can perform, which are managed (configured) in advance.
[0075] In the example shown in Figure 8, for example, if the requesting first communication device 10 is communication device X1, and the requesting second communication device 20 is communication device X2, and the first communication device 10 requests the second communication device 20 to initiate bidirectional communication of protocol A and port P1, then such a communication initiation request is defined in policy information 341, and therefore the request approval / rejection determination process determines that the communication initiation request should be permitted.
[0076] On the other hand, if the first communication device 10 (communication device X1) requests the second communication device 20 (communication device X2) to initiate bidirectional communication using protocol C and port P2, the policy information defining such a communication initiation request does not exist in the policy information storage unit 34. Therefore, the request approval / rejection process determines that the communication initiation request should not be permitted (i.e., rejected).
[0077] In Figure 8, it was explained that policy information defining (enumerating) the contents of communication initiation requests to be permitted, based on the premise of rejecting communication initiation requests, is stored in the policy information storage unit 34. However, the policy information storage unit 34 may also store policy information defining the contents of communication initiation requests to be rejected, based on the premise of permitting communication initiation requests.
[0078] The request approval / rejection process described here is just one example, and other processes may be executed to determine whether or not to permit a communication start request. Specifically, for example, the decision to permit a communication start request (i.e., whether or not to accept the request) may be made based on the availability of computing resources and communication resources of the second communication device 20.
[0079] Returning to Figure 6, if the request approval / rejection determination process determines that the communication start request is permitted, the second communication processing unit 32 transmits (transfers) the communication start request to the second communication device 20 via the network 1b (step S3).
[0080] The communication processing unit 15 included in the second communication device 20 receives a communication start request sent from the server device 30 via the network 1b. In this case, the application processing unit 11 sends a response (hereinafter referred to as a permission response) to the server device 30 via the communication processing unit 15, based on the communication start request received by the communication processing unit 15 (step S4).
[0081] Furthermore, the permission response (packet) transmitted in step S4 may contain control information that the first communication device 10 should use during bidirectional communication. In addition, this permission response may contain security information (such as secrets or tokens) used during bidirectional communication.
[0082] The second communication processing unit 32 included in the server device 30 receives a permission response sent from the second communication device 20 via the network 1b. When the permission response is received by the second communication processing unit 32, the first communication processing unit 31 transmits (transfers) the permission response to the first communication device 10 via the network 1a (step S5).
[0083] When step S5 is executed, bidirectional communication between the first communication device 10 and the second communication device 20 is permitted, and a session for such bidirectional communication is established. This enables the first communication device 10 and the second communication device 20 to communicate bidirectionally. The bidirectional communication between the first communication device 10 and the second communication device 20 takes place over a virtual network realized by a technique such as tunneling.
[0084] Here, if bidirectional communication between the first communication device 10 and the second communication device 20 is permitted as described above, session information is stored in the session information storage unit 35 included in the server device 30, and in the server device 30, bidirectional communication between the first communication device 10 and the second communication device 20 is managed in units called sessions.
[0085] Figure 9 shows an example of session information stored in the session information storage unit 35 included in the server device 30 (i.e., session information managed by the server device 30). As shown in Figure 9, the session information stored in the session information storage unit 35 includes, for example, a session number, communication device information, communication type, session identification information, and expiration date, all associated with each other.
[0086] The session number is the number assigned to the session information. The communication device information is information indicating the two communication devices that will perform the permitted bidirectional communication (in this case, the identification information of the first communication device 10 and the second communication device 20 that are permitted to perform bidirectional communication). The communication type is information indicating the type of communication of the permitted bidirectional communication (i.e., the type of communication performed on the bidirectional communication). The session identification information is identification information for identifying the session established for the permitted bidirectional communication. The expiration date is information indicating the expiration date set for the permitted bidirectional communication (session).
[0087] The session information shown in Figure 9 includes the session number "100", communication device information "X1, X2", communication type "Protocol A, Port P1", session identification information "aaa", and expiration date "June 15, 2023, 12:00:00". This session information indicates that bidirectional communication of protocol A, port P1 can be performed between communication device X1, which corresponds to the first communication device 10, and communication device X2, which corresponds to the second communication device 20. The expiration date set for this session information is June 15, 2023, 12:00:00. When this expiration date passes, the session information is discarded from the session information storage unit 35 (i.e., bidirectional communication between the first communication device 10 and the second communication device 20 becomes impossible).
[0088] In this explanation, the session information stored in the session information storage unit 35 is described as including a session number, communication device information, communication type, session identification information, and expiration date. However, some of the information included in the session information may be omitted, and the session information may also include other information not shown in Figure 9.
[0089] Figure 10 also shows an example of session information stored in the session information storage unit 12 included in the first communication device 10 (i.e., session information managed by the first communication device 10). As shown in Figure 10, the session information stored in the session information storage unit 12 includes, for example, a session number, communication device information, communication type, session identification information, and security information in association with each other.
[0090] The session number is a number assigned to the session information. The communication device information is information indicating the communication device that performs bidirectional communication with the first communication device 10 (in this case, the identification information of the second communication device 20, which is the communication partner for the authorized bidirectional communication). The communication type is information indicating the communication type of the authorized bidirectional communication. The session identification information is identification information for identifying the session established for the authorized bidirectional communication. The security information is information indicating secrets, tokens, etc., used during the authorized bidirectional communication.
[0091] The session information shown in Figure 10 includes the session number "300", communication device information "X2", communication type "Protocol A, Port P1", session identification information "aaa", and security information "sssss". According to this session information, the first communication device 10 (communication device X1) is conducting bidirectional communication of protocol A, port P1 with the second communication device 20 (communication device X2), and the security information "sssss" is being used in this bidirectional communication.
[0092] In this explanation, the session information stored in the session information storage unit 12 is described as including a session number, communication device information, communication type, session identification information, and security information. However, some of the information included in the session information may be omitted, and the session information may also include other information not shown in Figure 10.
[0093] Furthermore, while this explanation describes the session information stored in the session information storage unit 12 included in the first communication device 10, the same session information is also stored in the session information storage unit 12 included in the second communication device 20. The communication device information included in the session information stored in the session information storage unit 12 included in the second communication device 20 is information indicating the first communication device 10 that performs bidirectional communication with the second communication device 20 (identification information of the first communication device 10).
[0094] The communication device information and communication type included in the session information are specified by the requester of the communication start request (i.e., the first communication device 10 that sent the communication start request) and are obtained from that communication start request.
[0095] Furthermore, the session identification information included in the session information described above is generated by the server device 30 and issued to the first communication device 10 and the second communication device 20. Specifically, the server device 30 generates the session identification information and notifies the second communication device 20 at the time it sends a communication start request to the second communication device 20 in step S3, for example. The server device 30 also notifies the first communication device 10 of the session identification information at the time it sends an permission response to the first communication device 10 in step S5, for example.
[0096] Furthermore, multiple sessions may be established with respect to the first communication device 10 and the second communication device 20. Session identification information may be issued for each session, or a single session identification information common to all sessions may be issued.
[0097] Furthermore, the security information included in the session information is specified by the recipient of the communication initiation request (i.e., the second communication device 20 that receives the communication initiation request) and is obtained from the permission response.
[0098] Returning to Figure 6, the application processing unit 11 included in the first communication device 10 acquires the data body (hereinafter referred to as the communication target data) to be exchanged with the second communication device 20 in bidirectional communication, and generates (constructs) a packet containing the communication target data (step S6). Hereinafter, the packet generated in step S6 will be referred to as a bidirectional communication packet.
[0099] Now, referring to Figure 11, we will explain what a bidirectional communication packet is (i.e., a packet sent and received in bidirectional communication).
[0100] The bidirectional communication packet shown in Figure 11 consists of a header and a data section, similar to Figure 7 described above. The header section contains information for communication between the first communication device 10 and the server device 30. This information includes, for example, the identification information of the first communication device 10 (source information) and the identification information of the server device 30 (destination information). The header section also includes session identification information obtained from the session information described above.
[0101] On the other hand, the data section is further composed of a sub-header section and a sub-data section. The sub-header section contains information for bidirectional communication between the first communication device 10 and the second communication device 20. The sub-header section also contains security information obtained from the session information described above, header information corresponding to the type of bidirectional communication, etc.
[0102] The sub-data section contains the data to be communicated (i.e., the main data exchanged according to the type of bidirectional communication).
[0103] The information included in the subheader varies depending on the content of the bidirectional communication between the first communication device 10 and the second communication device 20. When bidirectional communication is performed as if the first communication device 10 and the second communication device 20 were communicating directly on a virtual network (IP network), the subheader includes control information for protocols used at the network layer, such as the IP addresses of the first communication device 10 and the second communication device 20 on the virtual network, and control information for protocols at higher layers of the network layer. Furthermore, when bidirectional communication is performed between the first communication device 10 and the second communication device 20, exchanging data at the transport layer or higher, the subheader includes control information for the protocol used at the corresponding transport layer. In addition, when bidirectional communication is performed between the first communication device 10 and the second communication device 20, exchanging data according to a protocol used at a specific application layer (application protocol), the subheader includes control information for the corresponding application protocol.
[0104] Here, the information included in the subheader section has been explained as differing depending on the content of the bidirectional communication between the first communication device 10 and the second communication device 20, and the same applies to the communication target data included in the subdata section. The content of the bidirectional communication is agreed upon between the first communication device 10 and the second communication device 20 by executing the processes in steps S1 to S5 described above before the bidirectional communication takes place.
[0105] Furthermore, in this embodiment, from the start of the process shown in Figure 6 until the communication start request is permitted, the communication is solely between the first communication device 10 and the server device 30 or between the second communication device 20 and the server device 30, and packets with the configuration shown in Figure 7 are used. On the other hand, after the communication start request is permitted (i.e., after the start of bidirectional communication), packets with the configuration shown in Figure 11 (bidirectional communication packets) are used.
[0106] In addition, if a bidirectional communication packet is generated in step S6, processes such as authentication and encryption performed between the first communication device 10 and the server device 30 may be executed.
[0107] Here, the compression processing unit 14 included in the first communication device 10 performs compression processing on the bidirectional communication packets generated in step S6 (step S7).
[0108] The compression process in step S7 will now be described. In step S7, the compression processing unit 14 included in the first communication device 10 performs the compression process based on the compression rules stored in the compression rule storage unit 13.
[0109] Figure 12 shows an example of a compression rule. As shown in Figure 12, the compression rule includes a rule number, communication type, and compression method in association.
[0110] The rule number is the number assigned to the compression rule. The communication type is information indicating the type of bidirectional communication performed by the first communication device 10. The compression method is information indicating the compression method used to compress packets.
[0111] Figure 12 shows multiple compression rules, including compression rules 131 and 132. Compression rule 131 includes rule number "1", communication type "Protocol A, port P1", and compression method "HTTP (HyperText Transfer Protocol) → CoAP (Constrained Application Protocol)". In compression rule 131, the communication type "Protocol A, port P1" is assumed to be, for example, TCP, port 80 (or port 8080). According to compression rule 131, when bidirectional communication of protocol A, port P1 occurs, compression is performed by converting the application layer protocol from HTTP to CoAP (RFC7572). Since CoAP is equivalent to a simplified version of the HTTP protocol, it is possible to reduce the amount of data compared to HTTP. The compression method included in compression rule 131 corresponds to a compression method based on protocol conversion.
[0112] Compression rule 132 includes the association of rule number "2", communication type "Protocol B, port P2", and compression method "JSON (JavaScript® Object Notation) → CBOR (Concise Binary Object Representation)". Note that the communication type "Protocol B, port P2" in compression rule 132 assumes, for example, UDP, port 10000 or TCP, port 10000. According to compression rule 132, when bidirectional communication of protocol B, port P2 occurs, compression is performed by converting the data format (data description method) from JSON to CBOR (RFC7049). Note that, unlike JSON, CBOR can accept binary data, thus reducing the data size. The compression method included in compression rule 132 corresponds to a compression method based on data format conversion.
[0113] Compression rule 133 includes the association of rule number "3", communication type "Protocol C, Port P3", and compression method "SCHC (Static Context Header Compression)". Note that the communication type "Protocol C, Port P3" in compression rule 133 is assumed to be, for example, TCP, port 20000. According to compression rule 133, when bidirectional communication of protocol C, port P3 occurs, compression by SCHC is performed. SCHC is a header compression standard standardized in RFCs. Furthermore, details of SCHC header compression rules, such as the example in RFC 8724, are managed separately within the compression rule storage unit 13. Note that the compression method included in compression rule 133 corresponds to a compression method based on protocol analysis.
[0114] Although compression rules 131 to 133 have been described here, these are merely examples, and other compression rules may be stored in the compression rule storage unit 13. Furthermore, the compression rule storage unit 13 may also store compression rules that include a compression method that does not compress in association with a specific type of communication.
[0115] Furthermore, while the compression rules stored in the compression rule storage unit 13 included in the first communication device 10 have been described here, it should be assumed that the same compression rules are also stored in the compression rule storage unit 13 included in the second communication device 20.
[0116] In step S7 shown in Figure 6, the compression processing unit 14 refers to the compression rule shown in Figure 12, identifies a compression method included in the compression rule in association with the type of bidirectional communication with the second communication device 20, and compresses the bidirectional communication packets generated in step S6 using the identified compression method (i.e., the compression method corresponding to the type of communication).
[0117] In step S7, the data portion (i.e., the sub-header portion and sub-data portion) constituting the bidirectional communication packet is compressed.
[0118] Furthermore, there may be multiple compression methods identified by the compression processing unit 14 (i.e., compression methods applied to compressing bidirectional communication packets).
[0119] In step S7 described above, the bidirectional communication packets that have undergone compression are transmitted from the first communication device 10 (communication processing unit 15) to the server device 30 via the network 1a (step S8).
[0120] The first communication processing unit 31 included in the server device 30 receives the bidirectional communication packet transmitted in step S8. The application processing unit 33 extracts session identification information from the bidirectional communication packet (header portion) received by the first communication processing unit 31. The application processing unit 33 refers to the session information stored in the session information storage unit 35, obtains the communication device information included in the session information in association with the session identification information extracted from the bidirectional communication packet, and identifies the forwarding destination (in this case, the second communication device 20) of the data portion (sub-header portion and sub-data portion) constituting the bidirectional communication packet. In this case, the application processing unit 33 adds a header portion containing information for communication between the second communication device 20 and the server device 30 to the data portion constituting the bidirectional communication packet received by the first communication processing unit 31, and generates a bidirectional communication packet consisting of the header portion and the data portion. The bidirectional communication packet thus generated by the application processing unit 33 is transmitted (forwarded) from the second communication processing unit 32 to the second communication device 20 via the network 1b (step S9).
[0121] Furthermore, as described above, when a bidirectional communication packet is sent from the server device 30 to the second communication device 20, the expiration date included in the session information is updated in accordance with the session identification information extracted from the bidirectional communication packet, as described above. In this case, the expiration date is extended to increase the period until the expiration date. In this way, the expiration date included in the session information is updated (extended) by bidirectional communication, but session information that has expired without bidirectional communication is deleted from the session information storage unit 35 by, for example, the application processing unit 33. This prevents unnecessary session information from being accumulated in the session information storage unit 35.
[0122] Furthermore, if session information, including session identification information extracted from a bidirectional communication packet, is not stored (does not exist) in the session information storage unit 35, the bidirectional communication packet is discarded. In this case, the first communication device 10 (the packet sender) may be notified that the bidirectional communication packet has been discarded.
[0123] The communication processing unit 15 included in the second communication device 20 receives the bidirectional communication packet transmitted in step S9.
[0124] Here, the data portion (subheader portion and subdata portion) constituting the bidirectional communication packet received by the communication processing unit 15 included in the second communication device 20 is compressed in the first communication device 10.
[0125] Therefore, the compression processing unit 14 included in the second communication device 20 performs decompression processing on the bidirectional communication packets received by the communication processing unit 15 based on the session information stored in the session information storage unit 12 and the compression rules stored in the compression rule storage unit 13 (step S10).
[0126] Specifically, the compression processing unit 14 extracts session identification information from the bidirectional communication packet (header portion) received by the communication processing unit 15. The compression processing unit 14 refers to the session information stored in the session information storage unit 12 and identifies the communication type included in the session information in association with the session identification information extracted from the bidirectional communication packet. The compression processing unit 14 refers to the compression rules stored in the compression rule storage unit 13 and identifies the compression method included in the compression rule in association with the communication type identified based on the session identification information, and expands the data portion (sub-header portion and sub-data portion) that constitutes the bidirectional communication packet according to the identified compression method.
[0127] In this embodiment, by sharing compression rules between the first communication device 10 and the second communication device 20, which perform bidirectional communication as described above, the second communication device 20 can perform decompression processing corresponding to the compression method applied when the bidirectional communication packets are compressed in the first communication device 10 (i.e., the compression method according to the type of communication).
[0128] When the process in step S10 is executed, the application processing unit 11 processes the subheader and subdata sections that were expanded by the process in step S7, and performs processing (hereinafter referred to as application processing) based on the application program running in the second communication device 20 on the data to be communicated extracted from the subdata section (step S11).
[0129] Figure 6 shows an example in which bidirectional communication continues after the processing of step S11 is executed. In this case, it is shown that the processing of steps S12 and S13, which correspond to the processing of steps S6 and S7 described above, is executed in the second communication device 20, the processing of steps S14 and S15, which correspond to the processing of steps S8 and S9, is executed, and furthermore, the processing of steps S16 and S17, which correspond to the processing of steps S10 and S11, is executed in the first communication device 10.
[0130] Figure 6 shows that the processes in steps S1 to S17 are executed. For example, the processes in steps S6 to S17 (i.e., bidirectional communication between the first communication device 10 and the second communication device 20) will continue to be executed until explicitly terminated by either the first communication device 10 or the second communication device 20. If, for example, the first communication device 10 explicitly instructs the first communication device 10 to terminate the bidirectional communication, the termination of the bidirectional communication may be notified from the first communication device 10 to the server device 30 and the second communication device 20. Similarly, if, for example, the second communication device 20 explicitly instructs the second communication device 20 to terminate the bidirectional communication, the termination of the bidirectional communication may be notified from the second communication device 20 to the server device 30 and the first communication device 10.
[0131] In this explanation, it is assumed that an instruction to explicitly terminate bidirectional communication is issued in the first communication device 10 or the second communication device 20. However, bidirectional communication may also be terminated, for example, by not performing bidirectional communication for a certain period of time.
[0132] Furthermore, although the example shown in Figure 6 is described as the first communication device 10 sending the communication start request, the second communication device 20 may also send the communication start request.
[0133] Furthermore, in the example shown in Figure 6, it was explained that in bidirectional communication, a bidirectional communication packet is transmitted from the first communication device 10 to the second communication device 20, and then a bidirectional communication packet is transmitted from the second communication device 20 to the first communication device 10. However, the bidirectional communication packet may be transmitted from the second communication device 20 to the first communication device 10 first.
[0134] Furthermore, although Figure 6 illustrates an example in which bidirectional communication packets are transmitted alternately from the first communication device 10 and the second communication device 20, the bidirectional communication packets do not need to be transmitted alternately as shown in Figure 6; the first communication device 10 (or the second communication device 20) may transmit bidirectional communication packets continuously. The transmission pattern (sequence) of bidirectional communication packets may differ depending on the type of communication and communication conditions of the bidirectional communication.
[0135] In Figure 6, the case in which a communication start request is permitted in the request approval / rejection process is explained. However, if the communication start request is rejected, the requester of the communication start request (in this case, the first communication device 10) may be notified that the request has been rejected. When the first communication device 10 is notified that the communication start request has been rejected, the process shown in Figure 6 may be terminated, or the first communication device 10 may resend the communication start request after a certain period of time has elapsed.
[0136] Furthermore, although not shown in Figure 6, if a communication start request is permitted in the request approval / rejection determination process, the source of the communication start request (in this case, the first communication device 10) may be notified that the communication start request has been permitted.
[0137] Furthermore, although Figure 6 describes the request feasibility determination process as being performed in the server device 30, this request feasibility determination process may also be performed, for example, in the second communication device 20 that receives the communication start request from the server device 30 (i.e., the destination of the communication start request).
[0138] Furthermore, although Figure 6 describes the compression and decompression of the subheader (information contained therein) and subdata (communication target data contained therein) that constitute the data portion of a bidirectional communication packet, the target of such compression and decompression may be either the subheader or the subdata, or it may be a part of the information contained in the subheader or a part of the communication target data contained in the subdata.
[0139] As described above, in this embodiment, for example, the first communication device 10 is connected via network 1a (second network) to a server device 30 which is connected to a second communication device 20 (another communication device) via network 1b (first network). In bidirectional communication conducted with the second communication device 20 via the server device 30, a portion of the bidirectional communication packets (first data) transmitted is compressed using a compression method (first compression method) corresponding to the type of bidirectional communication, and the partially compressed packets are transmitted to the server device 30. In this case, the server device 30 transmits the bidirectional communication packets transmitted from the first communication device 10 to the second communication device 20. In this embodiment, the bidirectional communication between the first communication device 10 and the second communication device 20 is assumed to take place on a virtual network realized by tunneling technology.
[0140] In the bidirectional communication (data exchange) between the first communication device 10 and the second communication device 20, which is realized by the server device 30 acting as an intermediary as described above, it is necessary to transmit information for communication with the server device 30 in addition to the information for the bidirectional communication, resulting in a large communication overhead.
[0141] However, in this embodiment, since a portion of the bidirectional communication packets transmitted in bidirectional communication are compressed by the above-described configuration, this compression suppresses communication overhead and avoids an increase in communication costs and a decrease in communication responsiveness for bidirectional communication.
[0142] The bidirectional communication packet (first data) transmitted from the first communication device 10 to the server device 30 consists of a header section (first header section) containing information for communication with the server device 30, a sub-header section (second header section) containing information for bidirectional communication with the second communication device 20, and a sub-header section containing the data body (communication target data) other than the header section and sub-header section. In this embodiment, the sub-header section or sub-data section is compressed.
[0143] Specifically, the first communication device 10 includes a compression rule storage unit 13 that stores compression rules indicating a compression method corresponding to each of the communication types of a plurality of bidirectional communications, and can compress the subheader or subdata portion that constitutes a bidirectional communication packet using a compression method corresponding to the communication type of bidirectional communication conducted with the second communication device 20 based on the compression rules.
[0144] As described above, the bidirectional communication packet in which the subheader or subdata portion has been compressed in the first communication device 10 is transmitted (forwarded) from the server device 30 to the second communication device 20. The second communication device 20 includes a compression rule storage unit 13 that stores the compression rules described above, and decompresses the subheader or subdata portion constituting the bidirectional communication packet (i.e., a part of the bidirectional communication packet compressed in the first communication device 10) according to the compression method indicated by the compression rules.
[0145] In this case, the compression rule (compression method) applied during compression can be identified based on the session information (session identification information and communication type of bidirectional communication) stored in the session information storage unit 12 when a session for bidirectional communication is established.
[0146] In this embodiment, with this configuration, bidirectional communication packets compressed at the source (first communication device 10) based on compression rules can be decompressed at the destination (second communication device 20) based on the same compression rules, thereby enabling appropriate bidirectional communication while suppressing communication overhead.
[0147] In this embodiment, the communication type of bidirectional communication is represented, for example, by the protocol and port (number) applied to the bidirectional communication, but the communication type may be represented by other information. Also, in this embodiment, the compression method has been described as including, for example, a compression method based on protocol conversion and a compression method based on protocol analysis, but the compression method may be other methods that can compress a portion of the bidirectional communication packets in order to suppress the above-mentioned communication overhead.
[0148] In this embodiment, compression rules are stored in the compression rule storage unit 13 included in the first communication device 10 and the compression rule storage unit 13 included in the second communication device 20, and the first communication device 10 (and its compression processing unit 14) and the second communication device 20 (and its compression processing unit 14) respectively identify the compression method to be applied to packet compression and decompression. However, this embodiment may have other configurations. Specifically, the server device 30 may include a compression rule storage unit for storing compression rules, and the server device 30 may identify the compression method to be applied to packet compression and decompression according to the type of bidirectional communication, and the identified compression method may be notified from the server device 30 to the first communication device 10 and the second communication device 20. In this case, there may be multiple compression methods notified from the server device 30 to the first communication device 10 and the second communication device 20.
[0149] Furthermore, if, as described above, the first communication device 10 or the second communication device 20 does not support the compression method notified to them by the server device 30 (i.e., the first communication device 10 or the second communication device 20 does not have the functionality to compress and decompress packets based on the compression method), the server device 30 may query the first communication device 10 and the second communication device 20 to confirm whether they support the compression method.
[0150] Furthermore, although this embodiment has been described as having a common compression rule maintained (managed) by the first communication device 10 and the second communication device 20, if, for example, only the first communication device 10 maintains the compression rule, the first communication device 10 may notify (transmit) the compression rule to the second communication device 20 via the server device 30. On the other hand, if, for example, only the second communication device 20 maintains the compression rule, the second communication device 20 may notify (transmit) the compression rule to the first communication device 10 via the server device 30. In this case, there may be multiple compression rules to be notified.
[0151] Such compression rules can be notified at any point during the process (communication sequence) described in Figure 6, for example. Specifically, compression rules can be notified using, for example, a communication start request or permission response (exchange).
[0152] In other words, this embodiment may be configured such that one communication device performing bidirectional communication learns compression rules (information on the compression method) from the other communication device. In this case, for example, one communication device may learn a newly generated compression rule from the other communication device.
[0153] Furthermore, as described above, if the other communication device does not support the compression method indicated by the compression rule notified from one communication device to the other (i.e., the other communication device does not have the functionality to compress and decompress packets based on that compression method), one communication device may query the other communication device to check whether it supports that compression method.
[0154] Furthermore, although this embodiment has been described as comprising a first communication device 10, a second communication device 20, and a server device 30 as shown in Figure 1, the communication system 1 according to this embodiment may further include, for example, a first node 40 connected to the first communication device 10 via network 1c, and a second node 50 connected to the second communication device 20 via network 1d, as shown in Figure 13.
[0155] Here, Figure 14 shows an example of a specific usage of the communication system 1 shown in Figure 13. Note that in Figure 14, detailed explanations of parts similar to those in Figure 2 described above are omitted.
[0156] In the example shown in Figure 14, the first communication device 10 shown in Figure 13 is implemented as a gateway to an office where a maintenance PC used by remote maintenance personnel for on-site equipment is located, and the first node 40 is implemented as the said maintenance PC. Also in the example shown in Figure 14, the second communication device 20 shown in Figure 13 is implemented as a gateway to the site where the on-site equipment is located, and the second node 50 is implemented as the on-site equipment (the communication device installed on it).
[0157] In such a communication system 1, for example, bidirectional communication between a first communication device 10 (office gateway) and a second communication device 20 (field gateway) can be used to realize communication between a maintenance PC (first node 40) and field equipment (second node 50). This makes it possible to remotely perform maintenance work on field equipment in response to operations performed by a maintenance worker on the maintenance PC.
[0158] Here, with reference to the sequence chart in Figure 15, we will briefly explain an example of the processing procedure for the communication system 1 shown in Figure 13.
[0159] First, the processes S21 to S25, which correspond to the processes S1 to S5 shown in Figure 6, are executed.
[0160] In Figure 6, the application processing unit 11 included in the first communication device 10 is described as acquiring the data to be communicated. However, in the communication system 1 shown in Figure 13, the first node 40 acquires the data to be communicated, and the data is transmitted from the first node 40 to the first communication device 10 via the network 1c (step S26).
[0161] The data to be communicated transmitted in step S26 is received (acquired) by the first communication device 10, and the processes of steps S27 to S31, which correspond to the processes of steps S6 to S10 shown in Figure 6, are executed.
[0162] In Figure 6, it is explained that application processing is performed in the first communication device 10 after the processing in step S10 is performed. However, if the processing in step S31 is performed, the communication target data extracted from the sub-data portion constituting the bidirectional communication packet is transmitted from the second communication device 20 to the second node 50 via the network 1d (step S32).
[0163] The data to be communicated transmitted in step S32 is received (acquired) by the second node 50. In this case, the second node 50 can execute application processing equivalent to, for example, the process in step S11 shown in Figure 6.
[0164] In Figure 15, bidirectional communication continues after the processing in step S32 is executed (application processing is executed at the second node 50). In this case, as shown in the example in Figure 15, the second node 50 acquires the data to be communicated, and the data is transmitted from the second node 50 to the second communication device 20 via the network 1d (step S33).
[0165] The data to be communicated transmitted in step S33 is received (acquired) by the second communication device 20, and the processes in steps S34 to S38, which correspond to the processes in S12 to S16 shown in Figure 6, are executed. If the process in step S38 is executed, the data to be communicated extracted from the subdata portion constituting the bidirectional communication packet is transmitted from the first communication device 10 to the first node 40 via the network 1c (step S39).
[0166] The data to be communicated transmitted in step S39 is received (acquired) by the first node 40. In this case, the first node 40 can execute application processing corresponding to, for example, the processing in step S17 shown in Figure 6.
[0167] According to the process shown in Figure 15 above, even if, for example, the first node 40 and the second node 50 cannot communicate directly, communication between the first node 40 and the second node 50 can be achieved by utilizing the bidirectional communication between the first communication device 10 and the second communication device 20. Furthermore, the communication overhead in bidirectional communication can be suppressed by compressing the bidirectional communication packets.
[0168] Note that the second node 50 may be omitted from the configuration of the communication system 1 shown in Figure 13, and for example, the first node 40 may communicate with the second communication device 20. Similarly, the first node 40 may be omitted from the configuration of the communication system 1 shown in Figure 13, and for example, the second node 50 may communicate with the first communication device 10.
[0169] While several embodiments of the present invention have been described, these embodiments are presented as examples only and are not intended to limit the scope of the invention. These embodiments can be carried out in a variety of other forms, and various omissions, substitutions, and modifications can be made without departing from the spirit of the invention. These embodiments and their variations are included in the scope and spirit of the invention, as well as in the claims and their equivalents. [Explanation of symbols]
[0170] 1...Communication system, 1a~1d...Network, 10...First communication device, 10a...CPU, 10b...Non-volatile memory, 10c...Main memory, 10d...Communication device, 11...Application processing unit, 12...Session information storage unit, 13...Compression rule storage unit, 14...Compression processing unit, 15...Communication processing unit, 20...Second communication device, 30...Server device, 31...First communication processing unit, 32...Second communication processing unit, 33...Application processing unit, 34...Policy information storage unit, 35...Session information storage unit, 40...First node, 50...Second node.
Claims
1. In a server device connected to other communication devices via a first network and a communication device connected via a second network, A compression processing means for compressing a portion of the first data transmitted in bidirectional communication between the server device and the other communication device via the server device using a first compression method corresponding to the type of bidirectional communication, A transmission means for transmitting the first data, which has been partially compressed, to the server device. It is equipped with, The server device transmits the transmitted first data to the other communication device. The first compression method is notified from the server device to the communication device. Communication device.
2. The first data includes a first packet comprising a first header section containing information for communication with the server device, a second header section containing information for the bidirectional communication, and a subdata section containing the data body other than the first and second headers. The compression processing means compresses the second header portion or subdata portion that constitutes the first packet. The communication device according to claim 1.
3. The system further comprises a first storage means for storing compression rules that indicate the compression method corresponding to each of the communication types of multiple bidirectional communications, The compression processing means compresses the second header portion or subdata portion constituting the first packet using a first compression method corresponding to the type of bidirectional communication between the other communication device, based on the compression rule. The other communication device includes a second storage means for storing the compression rule, and decompresses the second header portion or second subdata portion constituting the first packet transmitted from the server device according to the first compression method indicated by the compression rule. The communication device according to claim 2.
4. A server device connected to other communication devices via a first network and a communication device connected via a second network, A compression processing means for compressing a portion of the first data transmitted in bidirectional communication between the server device and the other communication device via the server device using a first compression method corresponding to the type of bidirectional communication, A transmission means for transmitting the first data, which has been partially compressed, to the server device. It is equipped with, The server device transmits the transmitted first data to the other communication device. The system further comprises receiving means for receiving second data transmitted from the other communication device to the server device from the server device, The second data includes a second packet comprising a first header section containing information for communication between the other communication device and the server device, a second header section containing information for bidirectional communication between the other communication device and the communication device, and a sub-data section containing the data body other than the first and second header sections. The second header portion or subdata portion constituting the second packet is compressed using a second compression method corresponding to the type of bidirectional communication with the other communication device. A first storage means for storing compression rules that indicate the compression method corresponding to each of the communication types of multiple bidirectional communications, A third storage means stores session information that includes session identification information for identifying the session and the type of communication of the bidirectional communication when a session for bidirectional communication with the aforementioned other communication device is established, It further comprises, The first header portion constituting the received second packet includes the session identification information, The compression processing means identifies a second compression method corresponding to the type of bidirectional communication included in the session information, in association with the session identification information included in the first header portion constituting the second packet, based on the compression rule, and expands the second header portion or subdata portion constituting the second packet according to the identified second compression method. Communication device.
5. The communication device according to claim 3 or 4, wherein each of the communication types of the aforementioned bidirectional communication is represented by the protocol and port to which the bidirectional communication is applied.
6. The communication device according to claim 5, wherein the compression method indicated by the compression rule includes a compression method based on protocol conversion or a compression method based on protocol analysis.
7. The communication device according to claim 3 or 4, wherein the compression rule is notified from the communication device to the other communication device or from the other communication device to the communication device via the server device.
8. The aforementioned communication device is connected to the first node via a third network. The subdata portion constituting the first packet includes data acquired at the first node. The communication device according to claim 2.
9. The aforementioned other communication device is connected to the second node via the fourth network. The subdata portion constituting the second packet includes data acquired at the second node. The communication device according to claim 4.
10. The communication device according to any one of claims 1 to 4, wherein bidirectional communication with the other communication device is performed over a virtual network realized by tunneling technology.
11. First communication device and A server device connected to the first communication device via the first network, The server device and the second communication device connected via the second network It is equipped with, The first communication device is A first compression processing means compresses a portion of the first data transmitted in bidirectional communication between the server device and the second communication device via the server device using a first compression method corresponding to the type of bidirectional communication, A transmission means for transmitting the first data, which has been partially compressed, to the server device. Includes, The server device includes a transmission means for transmitting the transmitted first data to the second communication device. The second communication device includes a second compression processing means for decompressing a portion of the transmitted first data according to the first compression method, The first compression method is notified from the server device to the first communication device. Communication system.
12. A first communication device, A server device connected to the first communication device via the first network, The server device and the second communication device connected via the second network It is equipped with, The first communication device is A first compression processing means compresses a portion of the first data transmitted in bidirectional communication between the server device and the second communication device via the server device using a first compression method corresponding to the type of bidirectional communication, A transmission means for transmitting the first data, which has been partially compressed, to the server device. Includes, The server device includes a transmission means for transmitting the transmitted first data to the second communication device. The second communication device includes a second compression processing means for decompressing a portion of the transmitted first data according to the first compression method, The first communication device further comprises receiving means for receiving second data transmitted from the second communication device to the server device from the server device, The second data includes a second packet comprising a first header section containing information for communication between the second communication device and the server device, a second header section containing information for bidirectional communication between the second communication device and the first communication device, and a sub-data section containing the data body other than the first and second header sections. The second header portion or subdata portion constituting the second packet is compressed using a second compression method corresponding to the type of bidirectional communication between the first communication device and the second communication device. The first communication device is A first storage means for storing compression rules that indicate the compression method corresponding to each of the communication types of multiple bidirectional communications, When a session for bidirectional communication with the second communication device is established, a third storage means stores session information including session identification information for identifying the session and the type of communication of the bidirectional communication in association with it. It further comprises, The first header portion constituting the received second packet includes the session identification information, The first compression processing means identifies a second compression method corresponding to the type of bidirectional communication included in the session information, in association with the session identification information included in the first header portion constituting the second packet, based on the compression rule, and expands the second header portion or subdata portion constituting the second packet according to the identified second compression method. Communication system.
13. A method performed by a server device connected to other communication devices via a first network and a communication device connected via a second network, A step of compressing a portion of the first data transmitted in bidirectional communication between the server device and the other communication device via the server device using a first compression method corresponding to the type of bidirectional communication, The steps include: transmitting the partially compressed first data to the server device; It is equipped with, The server device transmits the transmitted first data to the other communication device. The first compression method is notified from the server device to the communication device. method.
14. A method performed by a server device connected to another communication device via a first network and a communication device connected via a second network, A step of compressing a portion of the first data transmitted in bidirectional communication between the server device and the other communication device via the server device using a first compression method corresponding to the type of bidirectional communication, The steps include: transmitting the partially compressed first data to the server device; It is equipped with, The server device transmits the transmitted first data to the other communication device. The system further comprises the step of receiving second data transmitted from the other communication device to the server device from the server device, The second data includes a second packet comprising a first header section containing information for communication between the other communication device and the server device, a second header section containing information for bidirectional communication between the other communication device and the communication device, and a sub-data section containing the data body other than the first and second header sections. The second header portion or subdata portion constituting the second packet is compressed using a second compression method corresponding to the type of bidirectional communication between the communication device and the other communication device. The aforementioned communication device is A first storage means for storing compression rules that indicate the compression method corresponding to each of the communication types of multiple bidirectional communications, When a session for bidirectional communication with the aforementioned other communication device is established, a third storage means stores session information including session identification information for identifying the session and the type of communication of the bidirectional communication in association with it. It is equipped with, The first header portion constituting the received second packet includes the session identification information, The method further comprises the steps of identifying a second compression method corresponding to the type of bidirectional communication included in the session information, in association with the session identification information included in the first header portion constituting the second packet, based on the compression rule, and expanding the second header portion or subdata portion constituting the second packet according to the identified second compression method. method.
15. A program executed by a server device connected to other communication devices via a first network and a computer of a communication device connected via a second network, To the aforementioned computer, A step of compressing a portion of the first data transmitted in bidirectional communication between the server device and the other communication device via the server device using a first compression method corresponding to the type of bidirectional communication, The steps include: transmitting the partially compressed first data to the server device; Make it run, The server device transmits the transmitted first data to the other communication device. The first compression method is notified from the server device to the communication device. program.
16. A program executed by a computer of a server device connected to other communication devices via a first network and a communication device connected via a second network, To the aforementioned computer, A step of compressing a portion of the first data transmitted in bidirectional communication between the server device and the other communication device via the server device using a first compression method corresponding to the type of bidirectional communication, The steps include: transmitting the partially compressed first data to the server device; Make it run, The server device transmits the transmitted first data to the other communication device. The computer is further instructed to perform the step of receiving the second data transmitted from the other communication device to the server device from the server device. The second data includes a second packet comprising a first header section containing information for communication between the other communication device and the server device, a second header section containing information for bidirectional communication between the other communication device and the communication device, and a sub-data section containing the data body other than the first and second header sections. The second header portion or subdata portion constituting the second packet is compressed using a second compression method corresponding to the type of bidirectional communication between the communication device and the other communication device. The aforementioned communication device is A first storage means for storing compression rules that indicate the compression method corresponding to each of the communication types of multiple bidirectional communications, When a session for bidirectional communication with the aforementioned other communication device is established, a third storage means stores session information including session identification information for identifying the session and the type of communication of the bidirectional communication in association with it. It is equipped with, The first header portion constituting the received second packet includes the session identification information, The computer is further instructed to perform the following steps: identify a second compression method corresponding to the type of bidirectional communication included in the session information, in association with the session identification information included in the first header portion constituting the second packet, based on the compression rule; and decompress the second header portion or subdata portion constituting the second packet according to the identified second compression method. program.
Citation Information
Patent Citations
Data compression transmission system, transmission apparatus, and data compression transmission method for use therein
JP2012039198A
Data transfer device, data transfer method, and network system including data transfer device
JP2019193129A
Communication system
WO2010001684A1