A relay device communicates with first and second terminal devices via first and second communication networks, respectively. The relay device determines whether or not a line stability and a line speed of each of the first and second communication networks satisfy a predetermined condition. When a line stability and a line speed of each of the first and second communication networks satisfy the predetermined condition, the relay device temporarily stores, in a memory, data received from the first terminal device via the first communication network, and transfers the temporarily stored data to the second terminal device via the second communication network.
|
9. A method for a relay device to communicate with a plurality of devices via a plurality of communication networks, the method comprising:
by at least one hardware processor that executes instructions stored in at least one memory to,
detect a first communication link with a first device among the devices located within a first communication network among the plurality of communication networks;
receive at least one accumulated message among accumulated messages from the first device using the first communication link through the first communication network;
buffer the at least one accumulated message into the at least one memory;
identify a second device among the devices as a server destination of the at least one accumulated message, the second device communicating with the relay device using a second communication link through a second communication network from among the plurality of communication networks;
acquire, from the at least one memory that stores information indicating correspondences of communication links of the communication networks to degrees of communication connection establishment indicative of communication link stability to the communication networks, and communication speeds of the communication links,
a first degree of communication connection establishment and a first communication link speed corresponding to the first communication network, and
a second degree of communication connection establishment and a second communication link speed corresponding to the second communication network;
determine whether a condition is satisfied that the acquired second degree of communication connection establishment corresponding to the second communication network for the server destination is higher than the first degree of communication connection establishment corresponding to the first communication network for the first device, and the second communication link speed corresponding to the second communication network for the server destination is lower than the first communication link speed corresponding to the first communication network for the first device;
in response to the condition satisfied and receipt of at least one remaining accumulated message of the accumulated messages other than the buffered at least one accumulated message from the first device using the first communication link through the first communication network,
buffer the at least one remaining accumulated message into the at least one memory, and
after the receipt of the at least one remaining accumulated message is completed, transmit an acknowledgment of the receipt to the first device to indicate transfer completion by the relay device of the accumulated messages of the first device; and
transfer, from the at least one memory, the buffered at least one accumulated message and the at least one remaining accumulated message to the second device as the server destination using the second communication link through the second communication network.
1. A non-transitory computer readable recording medium having stored therein a program for causing at least one hardware processor to implement functions of a relay device that communicates with a plurality of communication networks to execute a procedure, the procedure comprising:
detecting a first communication link with a first device located within a first communication network among the plurality of communication networks;
receiving at least one accumulated message among accumulated messages from the first device using the first communication link through the first communication network;
buffering the at least one accumulated message into at least one memory;
identifying a second device as a server destination of the at least one accumulated message, the second device communicating with the relay device using a second communication link through a second communication network from among the plurality of communication networks;
acquiring, from the at least one memory that stores information indicating correspondences of communication links of the communication networks to degrees of communication connection establishment indicative of communication link stability to the communication networks, and communication speeds of the communication links,
a first degree of communication connection establishment and a first communication link speed corresponding to the first communication network, and
a second degree of communication connection establishment and a second communication link speed corresponding to the second communication network;
determining whether a condition is satisfied that the acquired second degree of communication connection establishment corresponding to the second communication network for the server destination is higher than the first degree of communication connection establishment corresponding to the first communication network for the first device, and the second communication link speed corresponding to the second communication network for the server destination is lower than the first communication link speed corresponding to the first communication network for the first device;
in response to the condition satisfied and receiving at least one remaining accumulated message of the accumulated messages other than the buffered at least one accumulated message from the first device using the first communication link through the first communication network,
buffering the at least one remaining accumulated message into the at least one memory, and
after the receiving of the at least one remaining accumulated message is completed, transmitting an acknowledgment of the receipt to the first device to indicate transfer completion by the relay device of the accumulated messages of the first device; and
transferring, from the at least one memory, the buffered at least one accumulated message and the at least one remaining accumulated message to the second device as the server destination using the second communication link through the second communication network.
10. A system comprising:
a first device that communicates using a first communication network;
a second device that communicates using a second communication network; and
a relay device comprising:
at least one memory to store data and instructions; and
at least one hardware processor to execute the instructions to cause the relay device to:
detect a first communication link with the first device using the first communication network;
receive at least one accumulated message among accumulated messages from the first device using the first communication link through the first communication network;
buffer the at least one accumulated message into at least one memory;
identify a second device as a server destination of the at least one accumulated message, the second device communicating with the relay device using a second communication link using the second communication network;
acquire, from the at least one memory that stores information indicating correspondences of communication links of communication networks to degrees of communication connection establishment indicative of communication link stability to the communication networks, and communication speeds of the communication links,
a first degree of communication connection establishment and a first communication link speed corresponding to the first communication network among the communication networks, and
a second degree of communication connection establishment and a second communication link speed corresponding to the second communication network among the communication networks;
determine whether a condition is satisfied that the acquired second degree of communication connection establishment corresponding to the second communication network for the server destination is higher than the first degree of communication connection establishment corresponding to the first communication network for the first device, and the second communication link speed corresponding to the second communication network for the server destination is lower than the first communication link speed corresponding to the first communication network for the first device;
in response to the condition satisfied and receipt of at least one remaining accumulated message of the accumulated messages other than the buffered at least one accumulated message from the first device using the first communication link through the first communication network,
buffer the at least one remaining accumulated message into the at least one memory, and
after the receipt of the at least one remaining accumulated message is completed, transmit an acknowledgment of the receipt to the first device to indicate transfer completion by the relay device of the accumulated messages of the first device; and
transfer, from the at least one memory, the buffered at least one accumulated message and the at least one remaining accumulated message to the second device as the server destination using the second communication link through the second communication network.
7. A relay device configured to communicate with devices via a plurality of communication networks, the relay device comprising:
at least one memory to store data and instructions; and
at least one hardware processor to execute the instructions to cause the relay device to:
detect a first communication link with a first device among the devices located within a first communication network among the plurality of communication networks;
receive at least one accumulated message among accumulated messages from the first device using the first communication link through the first communication network;
buffer the at least one accumulated message into the at least one memory;
identify a second device among the devices as a server destination of the at least one accumulated message, the second device communicating with the relay device using a second communication link through a second communication network from among the plurality of communication networks;
acquire, from the at least one memory that stores information indicating correspondences of communication links of the communication networks to degrees of communication connection establishment indicative of communication link stability to the communication networks, and communication speeds of the communication links,
a first degree of communication connection establishment and a first communication link speed corresponding to the first communication network, and
a second degree of communication connection establishment and a second communication link speed corresponding to the second communication network;
determine whether a condition is satisfied that the acquired second degree of communication connection establishment corresponding to the second communication network for the server destination is higher than the first degree of communication connection establishment corresponding to the first communication network for the first device, and the second communication link speed corresponding to the second communication network for the server destination is lower than the first communication link speed corresponding to the first communication network for the first device;
in response to the condition satisfied and receipt of at least one remaining accumulated message of the accumulated messages other than the buffered at least one accumulated message from the first device using the first communication link through the first communication network,
buffer the at least one remaining accumulated message into the at least one memory, and
after the receipt of the at least one remaining accumulated message is completed, transmit an acknowledgment of the receipt to the first device to indicate transfer completion by the relay device of the accumulated messages of the first device; and
transfer, from the at least one memory, the buffered at least one accumulated message and the at least one remaining accumulated message to the second device as the server destination using the second communication link through the second communication network.
2. The non-transitory computer readable recording medium of
in response to the condition not satisfied, transferring the data corresponding to the at least one message received from the first device, to the second device through the second communication link to the second communication network before the transfer completion of the accumulated messages by the first device.
3. The non-transitory computer readable recording medium of
the transferring includes selecting, from the information indicating the correspondences of the communication apparatuses, a priority communication apparatus, through which to perform the transferring the buffered at least one message to the second device, for which a third degree of communication connection establishment of the third communication network is higher than the second degree of communication establishment of the second communication network and a third communication link speed of the third communication network is faster than the second communication link speed of the second communication network.
4. The non-transitory computer readable recording medium of
in response to a detection of communication with the priority communication apparatus within a life time in which the data from the first device is scheduled to arrive at the second device through the second communication network and the third communication network, preferentially selecting the priority communication apparatus through which to perform the transferring the buffered at least one accumulated message and the at least one remaining accumulated message to the second device.
5. The non-transitory computer readable recording medium of
in response to a detection of communication with a new communication apparatus, storing, in the information indicating correspondences of communication apparatuses, information of the new communication apparatus and a fourth degree of communication connection establishment and a fourth communication link speed of a fourth communication network through which the new communication apparatus is able to communicate with the second terminal device.
6. The non-transitory computer readable recording medium of
in response to detection of termination of communication with the first device through the first communication network during a communication between the first device communicating using the first communication network and the second device communicating using the second communication network, notifying the second device of a status of connection with the first device, through the second communication network.
8. The relay device of
the relay device is mounted in a movable body that moves within an area of the first communication network or the second communication network.
|
This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2012-185812, filed on Aug. 24, 2012, the entire contents of which are incorporated herein by reference.
The embodiments discussed herein are related to apparatus and method for transferring data via heterogeneous networks.
There are machine-to-machine (M2M) information collecting systems that transfer data between a machine and a machine that are able to communicate with each other. In some existing M2M information collecting systems, M2M service providers use dedicated wire lines for individual machines. However, laying dedicated wire lines leads to very high cost. Some M2M information collecting systems use mobile networks of cellular phones that have spread throughout the world. However, the communication speed of mobile networks is low, and moreover their communication cost is high.
Accordingly, there has been also proposed a scheme in which transfer of data between a machine and a machine is realized by wireless ad hoc communication, and data is aggregated at a gateway connected to a mobile network or a dedicated line.
However, to build a wireless ad hoc network, the placement density of machines 201 has to be increased, leading to very high cost.
Accordingly, M2M information collecting systems exist which use a Delay Tolerant Networking (DTN)-based store-carry-forward communication scheme in areas where there is no communication infrastructure, without increasing the placement density of machines 201.
The relay device 304 moves into the area of the first short-range wireless network 303, communicates with the machine IF 302 of the machine 301 located within the first short-range wireless network 303, and receives information from the machine 301. Further, the relay device 304 passes through the area between the first short-range wireless network 303 and the second short-range wireless network 305 where no communication infrastructure exists, and moves into the area of the second short-range wireless network 305. The relay device 304 moves into the area of the second short-range wireless network 305 and communicates with the second short-range wireless network 305. Further, the fixed AP 306 receives data on the machine 301 via the second short-range wireless network 305 from the relay device 304 that has moved into the area of the second short-range wireless network 305, and transmits the received data to the gateway 308 via the access network 307. Further, the gateway 308 transmits the data received via the access network 307 to the server 310 via the core network 309.
As a result, in the M2M information collecting system 300 illustrated as
The followings are related arts:
According to an aspect of the embodiment, an apparatus communicates with first and second terminal devices via first and second communication networks, respectively. The apparatus determines whether or not a line stability and a line speed of each of the first and second communication networks satisfy a predetermined condition. When a line stability and a line speed of each of the first and second communication networks satisfy the predetermined condition, the apparatus temporarily stores, in a memory, data received from the first terminal device via the first communication network, and transfers the temporarily stored data to the second terminal device via the second communication network.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
However, the M2M information collecting system 300 as illustrated in
Hereinafter, embodiments of a relay device and a relay method will be described with reference to the drawings. The embodiments are not intended to limit the scope of the disclosed technique. The embodiments described below may be combined as appropriate as long as the embodiments do not contradict each other.
First Embodiment
The mobile router 3 is mounted in, for example, a vehicle for maintenance or business use that collects data on each of the machines 2. The mobile router 3 establishes a connection via the short-range wireless network NW0 with the machine 2 within the wireless area of the short-range wireless network NW0 in which the vehicle is located. Further, the mobile router 3 establishes a connection with the wireless network NW1. The vehicle in which the mobile router 3 is mounted makes rounds within the wireless area of each short-range wireless network NW0 on a regular basis, and collects data on each of the machines 2 via the short-range wireless network NW0.
The machine 2 establishes a connection via the short-range wireless network NW0 with the mobile router 3 that has entered the wireless area of the short-range wireless network NW0 in which the machine 2 is located. Then, after establishing the connection, the machine 2 transmits data in the machine 2 to the mobile router 3 via the short-range wireless network NW0.
Further, the mobile router 3 transfers the data in the machine 2 received via the short-range wireless network NW0, to the server 4 via the wireless network NW1, the Internet network NW2, and the corporate network NW3. As a result, the server 4 is able to collect data on each of the machines 2 via each corresponding short-range wireless network NW0.
The scheduler 36A functions as a process for managing a schedule. The scheduler 36A is a program that is interrupted by the proxy control unit 36D at a designated time. The scheduler 36A is used in determining whether a life time (validity time) is up in an asynchronous transfer process that will be described later.
The receive control unit 36B functions as a process for controlling the receiver buffer 35B. The receive control unit 36B is a program including an application IF for a communication program, and a control driver for the NW0 IF 33A. The receive control unit 36B communicates by using an IP address and an application-specific port number.
Further, the transmit control unit 36C functions as a process for controlling the transmit buffer 35C. The transmit control unit 36C is a program including an application IF for a communication program, and a control driver for the NW1 IF 33B. The transmit control unit 36C communicates by using an IP address and an application-specific port number.
The proxy control unit 36D functions as a process that acts on behalf of the machine 2 and communicates with the server 4. The proxy control unit 36D manages the message buffer 34A, the IF table 34B, the history table 34C, and the connection table 35A.
The routing control unit 36E functions as a process for controlling the proxy control unit 36D, the receive control unit 36B, and the transmit control unit 36C. The routing control unit 36E is a program that determines a communication IF on the output side of the data to be transferred. The routing control unit 36E includes a routing table (not illustrated) for determining the destination, and retrieves, from the routing table, the output-side communication IF corresponding to the destination address of the data to be transferred. Since it is assumed that communication is performed with heterogeneous communication networks, the routing control unit 36E selects the output-side communication IF from among a plurality of communication IFs.
The line speed 343B is the line speed of a communication network. For example, the line speed of the short-range wireless network NW0 such as Wi-Fi is assumed to be approximately 20 Mbps, and the line speed of the wireless network NW1 is assumed to be approximately 300 kbps. While, for example, a numerical value obtained from the catalog specifications of a communication network or the average value of the actual measured data is set by operator's operation as the line speed 343B, the line speed 343B may be set dynamically by periodically measuring line speed by using measurement packets. The proxy control unit 36D retrieves information in the IF table 34B using the IF identification 341B, for example.
In the comparative example in
In contrast,
Then, at time t2, as in the comparative example, one-third of data is transferred from the machine 2 to the server 4. However, the mobile router 3 buffers another one-third of data from the machine 2. As a result, at time t2, the amount of data in the machine 2 is one-third. Further, at time t3, the remaining one-third of data in the machine 2 is buffered in the mobile router 3, and thus the amount of data in the machine 2 becomes “0”. Then, at time t4, even though the connection between the mobile router 3 and the machine 2 has been cut off, the connection between the mobile router 3 and the server 4 is maintained. Therefore, the mobile router 3 sequentially transfers the buffered two-thirds of data to the server 4. As a result, at time t4, although only two-thirds of data have been successfully transferred to the server 4 in the comparative example, transfer of all 3/3of data to the server 4 has been completed in the first embodiment.
Next, operation of the M2M information collecting system 1 according to the first embodiment will be described.
When the mobile router 3 receives the connection request (CR1), the mobile router 3 stores a machine identification contained in the connection request (CR1) and identifying the machine 2, and a source address and a port number of the machine 2 contained in the TCP/IP header, into the RAM 35 in association with each other (step S12).
Once the machine identification, the source address, and the port number within the connection request (CR1) are stored, the mobile router 3 transmits a connection request (CR2) to the server 4 via the wireless network NW1, the Internet network NW2, and the corporate network NW3 (step S13).
Further, the server 4 changes the status of connection with the machine 2 that is stored in the connection table 45A in the RAM 45, from “offline” to “online” (step S14). The server 4 transmits a connection request acknowledgement (CRA1) to the mobile router 3 (step S15). When the mobile router 3 receives the connection request acknowledgement (CRA1), the mobile router 3 transmits a connection request acknowledgement (CRA2) to the machine 2 (step S16). Then, when the machine 2 receives the connection request acknowledgement (CRA2), the machine 2 changes the status of connection with the server 4 that is stored in the connection table 25A in the RAM 25, from “offline” to “online” (step S17).
The machine 2 transmits data accumulated in the message buffer 24A in the storage 24 to the mobile router 3 (step S18). Now that the connection with the mobile router 3 via the short-range wireless network NW0 has been established, the machine 2 transmits accumulated data to the mobile router 3 at high speed. The mobile router 3 transfers data received from the machine 2 to the server 4 (step S19). Further, the mobile router 3 transmits an acknowledgement (ACK) for the data received from the machine 2 to the machine 2 (step S20). In addition, the server 4 also transmits an acknowledgement (ACK) for the data received from the mobile router 3 to the mobile router 3 (step S21).
Next, when the machine 2 detects a link down with the mobile router 3 (step S22), the machine 2 changes the status of connection with the server 4 that is held in the connection table 25A in the RAM 25, from “online” to “offline” (step S23). A link down between the machine 2 and the mobile router 3 occurs when, for example, the vehicle in which the mobile router 3 is mounted has left the wireless area of the short-range wireless network NW0, and the connection between the machine 2 and the mobile router 3 has been cut off.
When the mobile router 3 detects a link down with the machine 2 in step S22, the mobile router 3 sends a connection status notification (CSN) to the server 4 (step S24). The connection status notification (CSN) notifies the server 4 of the fact that the current status is a proxy status in which the mobile router 3 acts on behalf of the machine 2, when a link down with the machine 2 is detected.
When the server 4 receives the connection status notification (CSN), the server 4 changes the status of connection with the machine 2 within the connection table 45A in the RAM 45, from “online” to “proxy” (step S25). Further, when there is data from the machine 2 that is being stored in the message buffer 34A, the mobile router 3 transfers this data to the server 4 (step S26). Then, when the server 4 receives the data, the server 4 transmits an acknowledgement (ACK) for the data to the mobile router 3 (step S27). As a result, even if the connection with the machine 2 is cut off, the mobile router 3 is able to transfer the data temporarily stored in the message buffer 34A to the server 4 via the wireless network NW1, the Internet network NW2, and the corporate network NW3.
Then, once there is no more data temporarily stored in the message buffer 34A, the mobile router 3 sends a connection status notification (CSN) for notifying that the current status is offline, to the server 4 (step S28). When the server 4 receives the connection status notification (CSN), the server 4 changes the status of connection with the machine 2 that is held in the connection table 45A in the RAM 45, from “proxy” to “offline” (step S29), and terminates the processing as illustrated in
The mobile router 3 illustrated in
When the mobile router 3 detects a link down with the machine 2 during communication between the machine 2 and the server 4, the mobile router 3 acts on behalf of the machine 2 and notifies the server 4 of the connection status (proxy) of the machine 2. As a result, the server 4 is able to recognize the connection status of the machine 2, thereby avoiding redundant transmission of message commands to the machine 2 with which the link is down and which is in a proxy state.
The message 60 further includes source IP address 71, destination IP address 72, option 73, padding 74, source port number 75, destination port number 76, sequence number 77, acknowledgement number 78, and header length 79. The source IP address 71 is the IP address of the packet's source. The destination IP address 72 is the IP address of the packet's destination. The option 73 is a piece of information that specifies the option to be added to the IP packet. The padding 74 is an additional area for making an adjustment to size of an area for the option 73 by padding the additional area with value “0” so that the size of the area becomes multiples of four bytes at the time of specifying the option 73. The source port number 75 is the port number of the packet's source. The destination port number 76 is the port number of the packet's destination. The sequence number 77 is a piece of information that identifies the sequence of data. The acknowledgement number 78 is a piece of information that identifies the position of received data. The header length 79 is a piece of information indicating the length of the IP header.
The message 60 further includes reserved 80, code bit 81, window size 82, checksum 83, urgent pointer 84, option 85, and data 86. The reserved 80 represents reserved bits. The code bit 81 is a piece of information for identifying a code. The window size 82 is a piece of information used for informing the other party of the window size on the receiving side. The checksum 83 is a piece of information for checking the integrity of a packet. The urgent pointer 84 is a piece of information indicating whether or not urgent data is contained in the packet. The option 85 is a piece of information used for setting various characteristics in the TCP connection. The data 86 is the body of data.
A connection request (CR2) is a message transmitted from the mobile router 3 to the server 4 via the wireless network NW1. The source IP address 91 of the connection request (CR2) is the IP address of the mobile router 3, the destination IP address 92 is the IP address of the server 4, the source port number 93 is an arbitrary port number, and the destination port number 94 is an application port number. Further, the data 95 of the connection request (CR2) includes message type, machine identification, server identification, and server port number, or the like.
A connection request acknowledgement (CRA1) is a message transmitted from the server 4 to the mobile router 3 via the wireless network NW1. The source IP address 91 of the connection request acknowledgement (CRA1) is the IP address of the server 4, the destination IP address 92 is the IP address of the mobile router 3, the source port number 93 is an arbitrary port number, and the destination port number 94 is an arbitrary port number. Further, the data 95 of the connection request acknowledgement (CRA1) includes message number and machine type, or the like.
A connection request acknowledgement (CRA2) is a message transmitted from the mobile router 3 to the machine 2 via the short-range wireless network NW0. The source IP address 91 of the connection request acknowledgement (CRA2) is the IP address of the mobile router 3, the destination IP address 92 is the IP address of the machine 2, the source port number 93 is an arbitrary port number, and the destination port number 94 is an arbitrary port number. Further, the data 95 of the connection request acknowledgement (CRA2) includes message type and machine identification, or the like.
A connection status notification (CSN) is a message transmitted from the mobile router 3 to the server 4 via the wireless network NW1. The source IP address 91 of the connection status notification (CSN) is the IP address of the mobile router 3, the destination IP address 92 is the IP address of the server 4, the source port number 93 is an arbitrary port number, and the destination port number 94 is an application port number. Further, the data 95 of the connection status notification (CSN) includes message type, machine identification information, and connection status, or the like.
The proxy control unit 36D transmits a connection request (CR2) to the server 4 through the NW1 IF 33B (step S33). That is, the proxy control unit 36D generates a new connection request (CR2) that copies the data 95 of the connection request (CR1) as it is. Then, the proxy control unit 36D transmits the generated connection request (CR2) to the server port whose number is set in the data 95 of the connection request (CR1). Then, when the server 4 receives the connection request (CR2) through the NW3 IF 43B, the server 4 sets the connection status of the corresponding entry within the connection table 45A to “offline” on the basis of the machine identification information in the connection request (CR2).
The proxy control unit 36D determines whether or not a connection request acknowledgement (CRA1) for the connection request (CR2) has been received within a predetermined time (step S34). When the connection request acknowledgement (CRA1) has been received (step S34: Yes), the proxy control unit 36D transmits a connection request acknowledgement (CRA2) to the machine 2 (step S35). Here, the proxy control unit 36D generates a new connection request acknowledgement (CRA2) by copying the data 95 of the connection request acknowledgement (CRA1) as it is. Then, the proxy control unit 36D searches the source information stored in step S32 by using the machine identification information in the CRA1, sets the corresponding machine 2 as the destination of the connection request acknowledgement (CRA2), and transmits the connection request acknowledgement (CRA2). As a result, when the machine 2 receives the connection request acknowledgement (CRA2), the machine 2 starts transmitting data to the source IP address and the source port number contained in the TCP/IP header of the connection request acknowledgement (CRA2).
The proxy control unit 36D monitors the connection with the machine 2 on the basis of periodic transmission of a keep alive to the machine 2 and whether or not there is a response (step S36). The proxy control unit 36D determines whether or not a link down with the machine 2 has been detected on the basis of the connection monitoring results (step S37). The proxy control unit 36D detects a link down with the machine 2 when there is no response to the keepalive, or when a connection cut-off notification has been detected.
When the proxy control unit 36D has detected a link down with the machine 2 (step S37: Yes), the proxy control unit 36D transmits a connection status notification (CSN) indicating change of the connection status to “proxy”, to the server 4 (step S38). The proxy control unit 36D transmits the connection status notification (CSN) toward the application port of the server 3. The proxy control unit 36D may also maintain a proxy state on the basis of a predetermined policy.
The proxy control unit 36D determines whether or not transmission of data to the server 4 is complete (step S39). When transmission of data to the server 4 is complete (step S39: Yes), the proxy control unit 36D transmits a connection status notification (CSN) indicating change of the connection status to “offline”, to the server 4 (step S40), and terminates the processing illustrated in
When the connection request (CR1) from the machine 2 has not been received (step S31: No), the proxy control unit 36D terminates the processing illustrated in
When a link down with the machine 2 has not been detected (step S37: No), the proxy control unit 36D determines whether or not transmission of data to the server 4 is complete (step S41). When transmission of data to the server 4 is complete (step S41: Yes), the proxy control unit 36D proceeds to step S40, in order to transmit a connection status notification (CSN) indicating change of the connection status to “offline”, to the server 4. When transmission of data to the server 4 is not complete (step S41: No), the proxy control unit 36D proceeds to step S37, in order to determine whether or not a link down with the machine 2 has been detected.
When the connection request acknowledgement (CRA1) has not been received within a predetermined time (step S34: No), the proxy control unit 36D transmits a connection request not acknowledgement (CRNA) to the machine 2 (step S42), and terminates the processing illustrated in
In the connection establishing process illustrated in
When the mobile router 3 detects a link down with the machine 2 during communication between the machine 2 and the server 4, the mobile router 3 operates on behalf of the machine 2 and notifies the server 4 of the connection status (proxy) of the machine 2. As a result, the server 4 is able to recognize the connection status of the machine 2, thereby avoiding redundant transmission of message commands to the machine 2 with which the link is down and which is in a proxy state.
The proxy control unit 36D determines whether or not the determined output-side communication IF is able to communicate (step S52). When the output-side communication IF is able to communicate (step S52: Yes), the proxy control unit 36D determines whether or not a predetermined condition is satisfied where the predetermined condition indicates that a communication network coupled to the output-side communication IF has a high line stability and a slow line speed in comparison to a communication network coupled to the input-side communication IF (step S53). The proxy control unit 36D retrieves the line stability and the line speed in the IF table 34B by using the identification information of the NW1 IF 33B that is the output-side communication IF. In the first embodiment, the short-range wireless network NW0 as a communication network coupled to the input-side communication IF has a line stability of “1” and a line speed of 20 Mbps, and the wireless network NW1 as a communication network coupled to the output-side communication IF has a line stability of “2” and a line speed of 300 kbps. Therefore, the proxy control unit 36D determines that the predetermined condition is satisfied.
When the predetermined condition is satisfied (step S53: Yes), the proxy control unit 36D sets asynchronous transfer (step S54), and terminates the processing illustrated in
When the predetermined condition is not satisfied (step S53: No), the proxy control unit 36D sets synchronous transfer (step S55), and terminates the processing illustrated in
When the determined output-side communication IF is not able to communicate (step S52: No), the proxy control unit 36D proceeds to step S54 in order to set asynchronous transfer.
In the transfer setting process in
In the transfer setting process, when the predetermined condition that the output-side communication network has a high line stability and a slow line speed in comparison to the input-side communication network is not satisfied, synchronous transfer between the machine 2 and the server 4 by the mobile router 3 is set. As a result, the mobile router 3 is able to efficiently transfer data synchronously between the short-range wireless network NW0 coupled to the input-side communication IF and the wireless network NW1 coupled to the output-side communication IF.
When a connection with the output-side communication IF has been established (step S62: Yes), the proxy control unit 36D transfers the data temporarily stored in the message buffer 34A to the output-side communication IF (step S63), and terminates the processing illustrated in
When a connection with the output-side communication IF has not been established (step S62: No), the proxy control unit 36D terminates the processing illustrated in
The mobile router 3 in the asynchronous transfer process illustrated in
The mobile router 3 according to the first embodiment temporarily stores data from the machine 2 received via the input-side communication IF into the message buffer 34A, when the condition that the communication network on the output-side communication IF side has a high line stability and a slow line speed in comparison to the communication network coupled to the input-side communication IF is satisfied. Further, the mobile router 3 transfers the temporarily stored data to the server 4 via the output-side communication IF. As a result, the mobile router 3 is able to efficiently transfer information from the machine 2 to the server 4 asynchronously between heterogeneous communication networks.
The mobile router 3 does not store data from the machine 2 received via the input-side IF into the message buffer 34A, when the predetermined condition that the communication network on the output-side communication IF side has a high line stability and a slow line speed in comparison to the communication network on the input-side communication IF side is not satisfied. In the case, the mobile router 3 is able to efficiently transfer the data to the server 4 via the output-side communication IF.
In the first embodiment, when the vehicle in which the mobile router 3 is mounted makes rounds among the plurality of machines 2, and collects data on each of the machines 2, even in a case where the communication time between the mobile router 3 and the machine 2 is short, it is possible to receive a large amount of data from the machine 2 by making use of the short-range wireless network NW0 that is high speed. Then, the mobile router 3 temporarily stores the data received from the machine 2. Further, even after the connection with the machine 2 ends as the mobile router 3 moves, the mobile router 3 is able to transfer the temporarily stored data to the server 4 by using the wireless network NW1.
In the first embodiment, it is possible to build an M2M communication infrastructure that minimizes communication cost by reducing the number of mobile routers 3 used for collecting data, that is, the number of lines coupled to the wireless networks NW1.
The mobile router 3 according to the first embodiment operates on behalf of the machine 2 in sending a connection request from the machine 2 to the server 4. As a result, for the machine 2, it is possible to guarantee that data will reach the server 4 while employing store-carry-forward communication. Further, it is possible for both the machine 2 and the server 4 to efficiently transfer data in a manner suited for individual communication networks, without making the machine 2 and the server 4 aware of the mobile router 3 that dynamically changes.
In the first embodiment, in a case where communication is performed over heterogeneous communication networks, it is possible to make the most of the transfer efficiency of each communication network, without the transfer speed being limited by the communication network having the slowest line speed which constitutes the end-to-end connection.
In the first embodiment, connection and data transfer control are separated from each other, and the connection itself is handled by the mobile router 3 operating as a proxy as if an end-to-end connection is established, and the actual data transfer is performed asynchronously in accordance with the line characteristics of communication networks. As a result, it is possible to control data transfer in a manner that makes the most of the line characteristics of heterogeneous communication networks.
In the first embodiment, use of the storage 34 in the transfer control enables long-term buffering of data, and allows speed adjustment between heterogeneous communication networks by referencing the characteristics of lines used for transfer.
In the first embodiment, even in a case where the mobile router 3 that moves performs asynchronous transfer, the intercommunication between the machine 2 and the server 4 is maintained, and it is possible for the machine 2 and the server 4 to communicate with each other solely on the basis of identification information.
When the mobile router 3 detects a link down with the machine 2 during communication between the machine 2 and the server 4, the mobile router 3 operates on behalf of the machine 2 and notifies the server 4 of the connection status (proxy) of the machine 2. As a result, the server 4 is able to recognize the connection status of the machine 2, thereby avoiding redundant transmission of message commands to the machine 2 with which the link is down and which is in a proxy state.
The M2M information collecting system 1 according to the first embodiment mentioned above is configured so that the mobile router 3 transfers data received from the machine 2 to the server 4 via the wireless network NW1. However, the mobile router 3 may transfer received data to the server 4 via a communication apparatus connected to not only the wireless network NW1 but also a communication network that is superior in line stability and line speed to the wireless network NW1, for example, the corporate network NW3. An embodiment in this case will be described below as a second embodiment.
Second Embodiment
In an M2M information collecting system 1A illustrated in
When the CPU 36 in the mobile router 3 detects communication with a new communication apparatus, the CPU 36 stores, in the history table 34C, as history information, information on a communication network connected to the new communication apparatus and the line stability and line speed of the communication network. The history table 34C stores, as history information, the IF identification of the corporate network NW3, the terminal identification of the gateway 5 connected to the corporate network NW3, and the line stability and line speed of the corporate network NW3. For example, the line stability of the corporate network NW3 is “3”, and the line speed of the corporate network NW3 is “11 Gbps”.
Then, while setting asynchronous transfer, the CPU 36 references the history table 34C, and searches for a communication apparatus connected to a communication network that is able to communicate with the server 4 and is superior in line stability and line speed to a communication network coupled to the output-side communication IF on which an asynchronous setting process is to be performed, for example, the wireless network NW1. For example, the CPU 36 searches for the gateway 5 connected to the corporate network NW3 as a communication apparatus connected to a communication network that is superior in line stability and line speed to the wireless network NW1. Then, when the CPU 36 has found the gateway 5 connected to the corporate network NW3, the CPU 36 computes a life time on the basis of the valid time of the data being temporarily stored and the predicted time for the data to arrive at the server 4. The life time is a maximum time limit within which data is supposed to arrive at the server 4 via the wireless network NW1. Further, until the life time elapses, the proxy control unit 36D in the CPU 36 stops transfer of the temporarily stored data to the server 4 via the wireless network NW1, and gives priority to transfer of data to the server 4 via the corporate network NW3 through the gateway 5. When a connection with the gateway 5 has not been successfully established within the life time, the proxy control unit 36D transfers data to the server 4 via the wireless network NW1.
In
The proxy control unit 36D references the history table 34C, and determines a priority IF on the basis of the line stability and line speed of the normal output-side communication IF (step S72). At this time, the proxy control unit 36D references the history table 34C, and determines, for example, the gateway 5 connected to the corporate network NW3, as a priority IF whose line stability and also line speed are higher than those of the wireless network NW1 that is the normal output-side communication IF.
The proxy control unit 36D determines whether or not the determined normal output-side communication IF is able to communicate (step S73). When the normal output-side communication IF is able to communicate (step S73: Yes), the proxy control unit 36D determines whether or not a predetermined condition is satisfied (step S74), where the predetermined condition is that the normal output-side communication IF has a high line stability and a slow line speed in comparison to the input-side communication IF.
When the predetermined condition is satisfied (step S74: Yes), the proxy control unit 36D sets asynchronous transfer (step S75), and terminates the processing illustrated in
When the predetermined condition is not satisfied (step S74: No), the proxy control unit 36D sets synchronous transfer (step S76), and terminates the processing illustrated in
In the transfer setting process illustrated in
The proxy control unit 36D monitors establishment of a connection with the priority IF (step S83). The proxy control unit 36D monitors establishment of a connection on the basis of whether or not the proxy control unit 36D has received a response to a connection request acknowledgement (CRA) from the gateway 5 that is the priority IF. The proxy control unit 36D determines whether or not a connection with the priority IF has been established within the life time (step S84). In the case of
When a connection with the priority IF has been established within the life time (step S84: Yes), the proxy control unit 36D transfers the data temporarily stored in the message buffer 34A to the server 4 via the priority IF (step S85). Then, the proxy control unit 36D terminates the processing illustrated in
When a connection with the priority IF has not been established within the life time (step S84: No), the proxy control unit 36D determines whether or not a connection with the normal output-side communication IF has been established (step S86). In this case, the normal output-side communication IF is the NW1 IF 33B of the wireless network NW1. When a connection with the normal output-side communication IF has been established (step S86: Yes), the proxy control unit 36D transfers the data temporarily stored in the message buffer 34A to the server 4 via the normal output-side communication IF (step S87), and terminates the processing illustrated as
When a connection with the normal output-side communication IF has not been established (step S86: No), the proxy control unit 36D proceeds to step S86, in order to determine whether or not a connection with the normal output-side communication IF has been established.
The mobile router 3 in the asynchronous transfer process illustrated in
When a connection with the priority IF has not been established within the life time, the mobile router 3 establishes a connection with the normal output-side communication IF, and transfers the data temporarily stored in the message buffer 34A to the server 4 via the normal output-side communication IF. As a result, the mobile router 3 is able to efficiently transfer data from the machine 2 to the server 4 via the wireless network NW1.
The mobile router 3 according to the second embodiment references the history table 34C, and selects, as a priority IF, a communication apparatus whose output-side communication IF is coupled to a communication network having a higher line stability and a faster line speed than those of a communication network coupled to the normal output-side communication IF. The mobile router 3 preferentially transfers data from the machine 2 temporarily stored in the message buffer 34A to the server 4 via the priority IF. As a result, the efficiency of data transfer within the M2M information collecting system 1A may be optimized. Moreover, it is possible to select which data is to be transferred via the wireless network NW1, on the basis of the urgency of communication requested by an application, thereby enabling a further reduction in communication cost.
There is a possibility that the mobile router 3 may encounter a communication apparatus having a line with higher line speed than the communication IF owned by the mobile router 3 (for example, a wireless hotspot that is connected by a wire). Then, the mobile router 3 may record information on the communication IF owned by this communication apparatus as history information, in a history of past communication with communication apparatuses.
While the above-mentioned embodiments are directed to the M2M information collecting system 1 that transfers data from the machine 2 to the server 4, the embodiments are also applicable to a relay system that transfers data from a terminal device to an opposite-side terminal device between heterogeneous communication networks, without limitation to the machine 2 or the server 4.
The components of the individual units depicted in the drawings may not have to be physically configured as depicted in the drawings. That is, the specific form of dispersion/integration of the individual units is not limited to the form depicted in the drawings, and the whole or part of the individual units may be configured so as to be functionally or physically dispersed/integrated in arbitrary units in accordance with various loads, usage conditions, and so on.
The whole or an arbitrary part of various process functions executed in individual devices may be executed on a central processing unit (CPU) (or a microcomputer such as a micro processing unit (MPU) or a micro controller unit (MCU)). Moreover, it is needless to mention that the whole or an arbitrary part of the various process functions may be executed using a program that is analyzed and executed by a CPU (or a microcomputer such as a MPU or a MCU), or using a piece of hardware based on a wired logic.
The various processes described with reference to the embodiments above may be implemented by executing a program prepared in advance by a communication device. Accordingly, hereinafter, an example of a communication device that executes a program having the same function as the above-mentioned embodiments will be described.
In
The processor 130 reads the programs 110A and 110B from the ROM 110, and executes each of these read programs. Then, the processor 130 causes the programs 110A and 110B to function as a determining process 130A and a control process 130B, respectively. The communication unit 150 performs an IF function that enables communication with a terminal device via a first communication network, and enables communication with an opposite-side terminal device via a second communication network.
The processor 130 of the communication device 100 determines whether or not a predetermined condition is satisfied. The predetermined condition is that the line stability of the second communication network is higher than the line stability of the first communication network, and that the line speed of the second communication network is slower than the line speed of the first communication network. Further, when the predetermined condition is satisfied, the processor 130 temporarily stores data from the terminal device received via the first communication network into the RAM 120, and then transfers the temporarily stored data to the opposite-side terminal device via the second communication network. As a result, the transfer efficiency when transferring data from the terminal device to the opposite-side terminal device via heterogeneous communication networks is improved.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Patent | Priority | Assignee | Title |
10715621, | Nov 08 2017 | Toyota Jidosha Kabushiki Kaisha | Communication method, in-vehicle communication device, computer-readable medium, and in-vehicle communication system |
10805420, | Nov 29 2017 | FORCEPOINT FEDERAL HOLDINGS LLC; Forcepoint LLC | Proxy-less wide area network acceleration |
10972313, | Mar 09 2018 | Yokogawa Electric Corporation | Relay device |
10999394, | Nov 08 2017 | Toyota Jidosha Kabushiki Kaisha | Communication method, in-vehicle communication device, computer-readable medium, and in-vehicle communication system |
11272421, | Sep 25 2017 | Denso Corporation | Data transfer path calculation device and data transfer terminal |
Patent | Priority | Assignee | Title |
5519699, | Dec 17 1993 | NEC CORPORATION A CORP OF JAPAN | Method of protocol termination and a packet data communication system applied the method |
7948966, | Oct 01 2007 | Raytheon Company | Multi-metric routing calculations |
9036509, | Jan 14 2011 | Cisco Technology, Inc. | System and method for routing, mobility, application services, discovery, and sensing in a vehicular network environment |
20050063303, | |||
20050114711, | |||
20050144186, | |||
20050181792, | |||
20060040705, | |||
20070008927, | |||
20090116393, | |||
20090213850, | |||
20100121957, | |||
20120057456, | |||
20120100808, | |||
20130336206, | |||
CN102882778, | |||
JP2002290563, | |||
JP2004153802, | |||
JP2006245824, | |||
JP200680782, | |||
JP20114258, | |||
WO2010121205, |
Executed on | Assignor | Assignee | Conveyance | Frame | Reel | Doc |
Jun 07 2013 | YAMAMURA, SHINYA | Fujitsu Limited | ASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS | 030742 | /0953 | |
Jun 24 2013 | Fujitsu Limited | (assignment on the face of the patent) | / |
Date | Maintenance Fee Events |
May 08 2023 | REM: Maintenance Fee Reminder Mailed. |
Oct 23 2023 | EXP: Patent Expired for Failure to Pay Maintenance Fees. |
Date | Maintenance Schedule |
Sep 17 2022 | 4 years fee payment window open |
Mar 17 2023 | 6 months grace period start (w surcharge) |
Sep 17 2023 | patent expiry (for year 4) |
Sep 17 2025 | 2 years to revive unintentionally abandoned end. (for year 4) |
Sep 17 2026 | 8 years fee payment window open |
Mar 17 2027 | 6 months grace period start (w surcharge) |
Sep 17 2027 | patent expiry (for year 8) |
Sep 17 2029 | 2 years to revive unintentionally abandoned end. (for year 8) |
Sep 17 2030 | 12 years fee payment window open |
Mar 17 2031 | 6 months grace period start (w surcharge) |
Sep 17 2031 | patent expiry (for year 12) |
Sep 17 2033 | 2 years to revive unintentionally abandoned end. (for year 12) |