This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2017-243660, filed on Dec. 20, 2017, the entire contents of which are incorporated herein by reference.
The present disclosure relates to a relay communication apparatus, a relay communication method, and a non-transitory computer-readable storage medium for storing a program for relay communication.
In recent years, the wide spread of a plurality of wireless communication measures results in spread of a manner by which a terminal apparatus such as a smartphone performs communication by changing the wireless LAN (Local Area Network) access point such as Wi-Fi and the broadband wireless connection of a communication carrier. In such an environment, because its communication state is influenced by the number of connected terminals and a state of ambient electric waves, the quality of communication may vary in accordance with the location and time, which may possibly result in intermittent communications.
For example, in a case where, a terminal apparatus while moving communicates with a server over the Internet by changing the wireless communication unit to be linked, a higher amount of data is communicated. Moreover, when the terminal apparatus stays for a short period of time within a linkable range of the wireless communication unit, the corresponding communication is disconnected incompletely. Therefore, the communication may be to be restarted after re-linking with another wireless communication unit. Even when the terminal apparatus stays still, the communication may be intermittent because of an influence such as electric wave interferences with other wireless communication units. Even over a wired network, the communication may be intermittent with a certain number of connections of the terminal or due to some states of the wired network.
In order to overcome such problems, providing an application in a terminal with tolerance against communication delays or disruption has been under review. For example, as a technology enabling smooth communication even in an environment with intermittent communication, delay, disruption tolerant networking (DTN) has been known. This technology has been standardized by The Internet Engineering Task Force (IETF). For example, Request For Comments (RFC) 5050 provides a bundle protocol (which may be called a disruption tolerance protocol) for application to a DTN.
Examples of the related art include Japanese Laid-open Patent Publication No. 2008-205890, International Publication Pamphlet No. WO2009/078427, Japanese Laid-open Patent Publication No. 2000-278313, RFC4838, Delay-Tolerant Networking Architecture, (April 2007), https://tools.ietf.org/html/rfc 4838, and RFC5050, Bundle Protocol Specification, (November 2007), https://tools.ietf.org/html/rfc 5050.
According to an aspect of the embodiments, a relay communication apparatus includes: a buffer configured to store data to be relayed from a first apparatus to a second apparatus in a case where the data is to be relayed from the first apparatus to the second apparatus and when a communication link with the second apparatus is not established; and a transfer control circuitry configured to control transfer processing on the data based on at least one control rule according to a purpose of the data before the data is transferred to the second apparatus and according to a disruption tolerant protocol when a communication link with the second apparatus is established.
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.
DTN and bundle protocols are originally assumed to be applied to communication not having a real time characteristic (which may be also called immediacy) such as communication under a special environment such as in the space or under the sea and assuming delays. Therefore, it is difficult for DTN and bundle protocols to be directly used for general applications. In order to implement DTN and bundle protocols to communication by a general application, a proxy function (which may be called a DTN proxy) may be used which performs communication based on DTN or a bundle protocol.
A DTN proxy may put data to be transmitted to the other communication partner by an application into a bundle, and store the bundle in a buffer while the communication is being disconnected, and the data are transmitted after recovery of the communication. Through the DTN proxy in the communication with the other communication partner, the application may receive the benefits of the relay communication based on DTN.
The DTN proxy starts transmission of data retained in the buffer when the recovery of the communication is detected. In this case, because the time for disconnection of the communication is not fixed, the buffer retention times of data may vary significantly between data pieces.
In some applications of data, the freshness of the data may become obsolete while being retained in the buffer, and therefore the data buffered in a relatively longer retention time is no longer proper. For example, in a case of a service with high immediacy such as a service for detecting an abnormality from video image data captured by a monitoring camera, relatively old video image data may not be concerned.
However, disadvantageously, data retained in a buffer in the DTN proxy is data which has been already transmitted by the application, the application may not control the data.
The data transmitted from an application may be used for various purposes. The data may be concerned with some purposes while it may not be concerned with other purposes. For example, video image data captured by a monitoring camera may be used for a service with immediacy which, for example, detects an abnormality from the video image data and as well as for a service without immediacy which analyzes a flow of people from the video image data to analyze and enhance works.
Therefore, it may not be proper to transfer relatively new data pieces of data retained in a buffer in a DTN proxy and to abandon the other old data pieces.
According to an aspect of the present disclosure, it is an object to provide a technology which, even after data is transmitted from an application, may control relay communication of the data transmitted from the application in accordance with the purpose of the data transmitted from the application.
With reference to drawings, embodiments of a control technology relating to relay communication according to the present disclosure will be described in detail below. It is not intended that the following embodiments limit the disclosed technology. Apparently, the following embodiments may be implemented in combination. All of contents of RFC4838, Delay-Tolerant Networking Architecture, (April 2007), https://tools.ietf.org/html/rfc 4838 and RFC5050, Bundle Protocol Specification, (November 2007), https://tools.ietf.org/html/rfc 5050] are incorporated for reference.
In a system according to Embodiment 1, a control rule is defined in accordance with the purpose of data to be transmitted from an upper layer application in a DTN (DTN: Delay, Disruption Tolerant Networking) proxy which relays communication between applications (which may be called “between nodes”). Thus, the DTN proxy is capable of controlling the relay communication in accordance with the purpose of the data to be transmitted from the application.
The terminal apparatus 10 has a node 1 (101) (which may also be called a first node), a conversion-1 processing unit 102 (which may also be called a first conversion processing unit), a proxy-1 processing unit 103 (which may also be called a first proxy processing unit), a DTN-1 processing unit 104 (which may also be called a first DTN processing unit), a buffer 105, address conversion information T1021, destination information T1031, application information T1041, control rule information T1042, and DTN path information T1043. The node 1 (101) is an example of an application (which may also be called a client application or a client) running on the terminal apparatus 10 and is a first device according to one aspect.
The server apparatus 20 has a node 2 (201) (which may also be called a second node), a proxy-2 processing unit 202 (which may also be called a second proxy processing unit), a DTN-2 processing unit 203 (which may also be called a second DTN processing unit), node setting information T202, and DTN setting information T203. The node 2 (201) is an example of an application (which may also be called a server application or a server) running on the server apparatus 20 and is a second device according to the aspect.
The DTN-1 processing unit 104 in the terminal apparatus 10 is configured to relay a signal from the node 1 (101) in the terminal apparatus 10 to the node 2 (201) in the server apparatus 20 based on a DTN (or Delay, Disruption Tolerant Networking) protocol (which may also be called a disruption-tolerant protocol). In other words, for example, the DTN-1 processing unit 104 according to an aspect is an example of a transfer control unit in a relay communication apparatus which relays communication between the node 1 (101) in the terminal apparatus 10 and the node 2 (201) in the server apparatus 20. The relay communication apparatus may include the DTN-1 processing unit 104 and the proxy-1 processing unit 103. Referring to
The DTN-2 processing unit 203 in the server apparatus 20 is an example of the relay communication apparatus which relays communication between the terminal apparatus 10 and the server apparatus 20 based on a DTN protocol and is configured to receive a signal to be relayed from the DTN-1 processing unit 104 in the terminal apparatus 10 and transfer it to the node 2 (201) in the server apparatus 20 through the proxy-2 processing unit 202.
A flow of data from the node 1 (101) to the node 2 (201) will be described in the system configuration illustrated in
The signal S1 transmitted from the node 1 (101) in the terminal apparatus 10 may be received by the server apparatus 20 at the address N2Addr of the node 2 (201) over the network. Thus, the data included in the signal S1 transmitted from the node 1 (101) is received by the node 2 (201) running on the server apparatus 20 over the network. In this case, the processing in the conversion-1 processing unit 102, the proxy-1 processing unit 103, the DTN-1 processing unit 104, the DTN-2 processing unit 203, and the proxy-2 processing unit 202 illustrated in
The terminal apparatus 10 may transfer the signal S1 transmitted from the node 1 (101) to the proxy-1 processing unit 103 through the conversion-1 processing unit 102 (which may be indicated by a signal S2). The terminal apparatus 10 may convert in the conversion-1 processing unit 102 the address N2Addr indicated in the signal S1 to an address P1Addr of the proxy-1 processing unit 103 based on the address conversion information T1021.
The conversion-1 processing unit 102 may change the connection destination of a socket set up (generated) with the address N2Addr designated by the node 1 (101) to the proxy-1 processing unit 103 indicated by the address P1Addr based on the address conversion information T1021. In other words, for example, the signal S1 transmitted from the node 1 (101) is converted to a signal S2 to be transferred to the proxy-1 processing unit 103 indicated by the address P1Addr through the conversion-1 processing unit 102.
The proxy-1 processing unit 103 having received the signal S2 transfers a signal S3 including a destination EID (Directed EID (Endpoint IDentification)) 2 indicated in the destination information T1031 and data included in the signal S2 to the DTN-1 processing unit 104. In order to receive the signal S2 including the data transmitted from the node 1 (101), the proxy-1 processing unit 103 may generate in advance a socket (which may also be called a server socket) with the address P1Addr designated based on the destination information T1031 (which may also be called an initial setting). As indicated by the address conversion information T1021 in
The destination EID (Directed Endpoint IDentification) is information acting as identification information of a node according to a DTN (Delay, Disruption Tolerant Networking) protocol. In the example in
The destination EID (which may also be called a destination EID2 indicated by the signal S3 has an information structure such as “dtn://<destination node name >/<application ID>”. The part “dtn://” in the destination EID is an example of a protocol indication to be used when the DTN protocol is used. The part “<destination node name>” of the destination EID indicates identification information indicating a DTN node running on the server apparatus 20 that is a substantial destination of the data to be transmitted from the node 1 (101). A destination EID2 is identification information indicating the DTN-2 processing unit 203 running on the server apparatus 20. A part “<application ID>” of the destination EID indicates identification information based on the purpose (which may also be called an application) of data to be transmitted from the node 1 (101) (which may also be called application identification information or an application ID or an App ID). The aforementioned information structure of the destination EID given for illustration purpose, and the present disclosure is not limited thereto. For example, another information element may be inserted between “<destination node name>” and “<application ID>”.
When the signal S3 is received, the DTN-1 processing unit 104 (which may also be called a transfer control unit) obtains an application ID (which may also be called an application ID of the signal S3 or App ID of the signal S3) based on the destination EID2 included in the signal S3 and executes processing defined under a control rule corresponding to the application ID of the signal S3. Thus, the relay communication may be controlled in accordance with the purpose (which may also be called an application) of the data to be transmitted from the node 1 (101).
For example, in the DTN-1 processing unit 104, the terminal apparatus 10 may obtain a control ID (which may also be called a control ID of the signal S3) corresponding to the application ID of the signal S3 from the application information T1041.
In the DTN-1 processing unit 104, the terminal apparatus 10 may obtain from the control rule information T1042 a control rule (which may also be called a control rule of the signal S3) corresponding to the control ID of the signal S3.
In the example in
According to another example in
The control method T1042-2 may be a control method including selecting and executing an applicable action from the control rule group T1042-3 based on an elapsed time from a time when data from the node 1 (101) is transferred to the DTN-1 processing unit 104. In this case, conditions in combinations set in the control rule group T1042-3 may include whether the elapsed time is equal to or higher than a predetermined value, whether the elapsed time is equal to or lower than the predetermined value, whether the elapsed time is equal to the predetermined value, whether the elapsed time is higher than the predetermined value, and whether the elapsed time is lower than the predetermined value. Alternatively, as an example of the control method T1042-2, a control method may be applied which includes selecting and executing an applicable action from the control rule group T1042-3 based on the size of data from the node 1 (101). In this case, the conditions in the combinations set in the control rule group T1042-3 may include whether the data size is equal to or higher than a predetermined value, whether the data size is equal to or lower than the predetermined value, whether the data size is equal to the predetermined value, whether the data size is higher than the predetermined value, whether the data size is lower than the predetermined value and so on.
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Referring to
Next, the DTN-1 processing unit 104 obtains a destination address corresponding to the destination EID based on the DTN path information T1043. The destination EID may be a destination EID indicated by the signal S3 or may be a destination EID designated by a control according to the purpose of the data.
The DTN-1 processing unit 104 may judge whether communication with the communication partner at the destination address over a network is enabled or not, and, when so, may transmit a signal S4 including the data from the node 1 (101) to the communication partner identified with the destination address based on the DTN protocol. Thus, the DTN processing unit 104 may perform the control according to the purpose of the data on the data from the node 1 (101) and may then transmit the signal S4 including the data from the node 1 (101) based on the DTN protocol to the communication partner at the destination address corresponding to the destination EID. The signal S4 may include the destination EID indicated in the signal S3 or may include the destination EID designated by the control according to the purpose of the data. In other words, for example, in a case where the signal S4 is to be transmitted to the other communication partner at the destination address corresponding to the destination EID indicated in the destination information T1031, the signal S4 may include the destination EID indicated in the destination information T1031. Alternatively, in a case where the signal S4 is to be transmitted to the other communication partner at the destination address corresponding to the destination EID designated by the control according to the purpose of the data, the signal S4 may include the destination EID designated by the control according to the purpose of the data.
On the other hand, the DTN-1 processing unit 104 may store the signal S3 in the buffer 105 in a case where the communication with the communication partner at the destination address over the network is not enabled. After that, in a case where it is detected that the communication with the other communication partner at the destination address over the network becomes enabled, a control according to the purpose of the data may be performed again on the data (which may also be called data from the node 1 (101)) included in the signal S3 stored in the buffer 105. After the control according to the purpose of the data is performed again, the signal S4 may be transmitted to the communication partner at the destination address corresponding to the destination EID. The destination EID may be a destination EID (T1031-2) indicated in the destination information T1031 or may be destination EID designated by the control according to the purpose of the data which is performed again. For example, according to the control rule group T1042-3 of the control method T1042-2 “METHOD 1 (ELAPSED TIME T)”, referring to
Referring to
The proxy-2 processing unit 202 in the server apparatus 20 monitors whether the signal S5 is stored in a predetermined storage area based on the output pointer indicated in the node setting information T202. When it is detected that the signal S5 is stored in the storage area indicated in the output pointer, the information (which may also be called a signal S6) regarding the signal S5 to a node 2 address corresponding to the output pointer based on the node setting information T202. The signal S6 includes the data from the node 1 (101).
According to the signal flow between nodes illustrated in
Next, a flow of processing relating to execution of a control rule based on the purpose of data will be described at a DTN node which relays communication between the terminal apparatus 10 and the server apparatus 20.
The DTN-1 processing unit 104 obtains an application ID from the destination EID indicated in the signal S3 (S104-1). The destination EID indicated in the signal S3 may have an information structure “dtn://<destination node name>/<application ID>”. For example, when the destination EID is represented by a character string “dtn://serverA/AppID1”, the application ID is “AppID1”. In the example above, the destination node name is “serverA”.
The DTN-1 processing unit 104 obtains the control method and the control rule group (which may also be called a control method T1042-2 and a control rule group T1042-3) corresponding to the application ID based on the application information T1041 and the control rule information T1042 (S104-2). In S104-2, the DTN-1 processing unit 104 may obtain a control ID (T1041-2) corresponding to the application ID (that is the application ID obtained from the destination EID indicated in the signal S3) based on the application information T1041. In S104-2, the DTN-1 processing unit 104 may obtain the control method T1042-2 and a control rule group T1042-3 corresponding to the control ID (T1041-2, T1042-1) based on the control rule information T1042.
The DTN-1 processing unit 104 selects an action satisfying a condition in the control rule group obtained in S104-2 (S104-3). In S104-3, the DTN-1 processing unit 104 may perform judgment on the condition indicated in the control rule group according to the control method obtained in S104-2. For example, according to the control method T1042-2 “METHOD 1 (ELAPSED TIME T)” in
The DTN-1 processing unit 104 executes the action selected in S104-3 (S104-4). For example, in S104-3, in a case where it is judged that the condition T1042-3-1 “1 MIN T<10 MIN” is satisfied according to the control method T1042-2 “METHOD 1 (ELAPSED TIME T)” in
After the action is executed in S104-4, the DTN-1 processing unit 104 generates, from the data included in the signal S3, a signal S4 to be transmitted to a transfer destination DTN node (which may also be called a transfer destination DTN node) indicated by the destination EID (S104-5). According to the DTN protocol, the signal S4 may be called a bundle.
The DTN-1 processing unit 104 executes a DTN path control including obtaining a destination address from the destination EID of the signal S4 based on the DTN path information T1043 (S104-6). The destination address indicates an address over a network of an apparatus on which the transfer destination DTN node runs and may include an IP address and a port number.
The DTN-1 processing unit 104 judges whether communication to a destination DTN node (which may also be called a transfer destination DTN node) is enabled based on the destination address obtained by the DTN path control (S104-6) (S104-7). For example, in a case where a signal for reach check such as a Ping is transmitted to the DTN node designated with the destination address and where a response to the signal for reach check is received within a predetermined time period, the DTN-1 processing unit 104 may judge that the communication with the transfer destination DTN node is enabled.
In a case where it is judged in S104-7 that the communication with the destination DTN node is enabled (YES in S104-7), the DTN-1 processing unit 104 transfers the signal S4 to an apparatus that is the transfer destination indicated by the destination address (S104-8).
On the other hand, in a case where it is judged in S104-7 that the communication with the destination DTN node is disabled (NO in S104-7), the DTN-1 processing unit 104 stores the signal S3 in the buffer 105 (S104-9) and, after a wait for a predetermined period of time, may execute the processing in S104-1 and subsequent steps on the signal S3 stored in the buffer 105.
In the above, an example of the flow of the transmission processing at a DTN node according to Embodiment 1 has been described.
According to an aspect of Embodiment 1 disclosed above, a control rule based on the purpose of data from the node 1 (101) is executed in the DTN-1 processing unit 104. Therefore, at a time after the data from the node 1 (101) is transmitted, a proper control based on the purpose of the data may be executed on the data. These effects may improve communication efficiency of relay communication based on the DTN protocol and thus may inhibit waste of calculation costs in a transfer destination node (such as a node 2 (201)), which is advantageous for more efficient use of hardware resources.
According to Embodiment 2, a terminal apparatus 10 according to the present disclosure has a configuration, which will be described in detail below.
The node 1 (101) illustrated in
The TCP processing unit 1012 is configured to communicate based on a TCP/IP (Transmission Control Protocol/Internet Protocol) protocol stack and, for example, may be implemented by a TCP/IP communication function provided by a driver for an OS (Operating System).
The address conversion unit 102 is configured to convert a destination address of packet data (which may also be called a packet) transmitted from the application 1011 through the TCP processing unit 1012 to an address of the proxy-1 processing unit 103 based on the address conversion information T1021. For example, the address conversion unit 102 converts a destination address (destination IP address and port number) of a packet to be transmitted to the node 2 (201) in the server apparatus 20 as its destination to an address (which may also be called a proxy address, a proxy IP address and a port number) of a TCP socket (which may also be called a proxy socket or a socket) set in a transmission/reception control unit 1032, which will be described below, in the proxy-1 processing unit 103. Thus, the proxy-1 processing unit 103 may receive (obtain) the packet data to be transmitted to the node 2 (201) that is the communication destination from the application 1011. In a case where Windows (registered trademark) is used as the OS, the address conversion unit 102 may be implemented by a Windows Filtering Platform (WFP). In a case where Linux (registered trademark) is used as the OS, it may be implemented by “iptables”.
The proxy-1 processing unit 103 illustrated in
The connection monitoring unit 1031 is configured to monitor a state of connection with the node 2 (201) that is a communication destination of the application 1011 and to control operations to be performed by the address conversion unit 102 based on the state of connection. For example, the connection monitoring unit 1031 may check a state of connection with the communication destination of the application 1011 for a predetermined period of time, and, when a response packet is not received from the communication destination, may judge that the connection is disconnected. When the connection monitoring unit 1031 judges that the connection with the communication destination is disconnected, the connection monitoring unit 1031 changes the communication method for the communication between the node 1 (101) and the node 2 (201) from a communication based on TCP/IP (which may also be called a first communication method) to a communication based on a DTN bundle protocol (which may also be called a second communication method). For example, the connection monitoring unit 1031 may set whether the destination node address T1021-1 is valid as a conversion subject or not in the address conversion information T1021 to instruct the communication method to the address conversion unit 102. In this case, a valid conversion subject means a communication based on the second communication method, and invalid conversion subject means a communication based on the first communication method.
The transmission/reception control unit 1032 is configured to generate the socket for receiving data from the node 1 (101) based on a proxy address T1031-1 of the destination information T1031. The proxy address T1031-1 of the destination information T1031 corresponds to the proxy address T1021-2 of the address conversion information T1021.
The transmission/reception control unit 1032 divides the packet (which may also be called data) received from the node 1 (101) via the socket into data having a size designated under a policy (algorithm or processing policy) set by a user or an operator to output to the proxy control unit 1033. The size of the division may be equal to a data size received from an open to a close of the socket, the size of the received packet or a predetermined value, for example.
The proxy control unit 1033 is configured to accommodate the data of the packet received by the transmission/reception control unit 1032 in a payload of the proxy message to output to the DTN-1 processing unit 104 via the bundle API. Thus, the transmission of the bundle is requested from the proxy control unit 1033 to the DTN-1 processing unit 104.
The proxy control unit 1033 manages proxy messages according to connection numbers based on their destinations. The proxy control unit 1033 may register a new connection number with the connection list T1032 every time the transmission/reception control unit 1032 opens the socket.
The proxy control unit 1033 provides a connection number according to the socket channel ID of the original destination socket of the packet to the proxy message to output to the DTN-1 processing unit 104. In this case, the proxy control unit 1033 obtains a destination EID corresponding to the socket via which the data from the node 1 (101) has been received based on the destination information T1031 and provides the destination EID to the proxy message. In other words, for example, the proxy control unit 1033 requests the DTN-1 processing unit 104 to transmit the bundle to the destination EID. The EID of the DTN-2 processing unit 203 (which may also be called a transfer destination DTN node) corresponding to the node 2 (201) is registered with the destination EID (T1032-3) of the connection list T1032. The proxy control unit 1033 obtains the destination EID of the transfer destination DTN node based on the destination EID (T1031-2) of the destination information T1031.
The proxy control unit 1033 may be configured to receive the proxy message from the DTN-1 processing unit 104. In a case where the connection number of the received proxy message is not registered with the connection list T1032, the proxy control unit 1033 instructs the transmission/reception control unit 1032 to open a new socket to start communication via the socket. In this case, the proxy control unit 1033 may obtain the proxy address T1031-1 corresponding to the destination EID indicated in the proxy message received from the DTN-1 processing unit 104 based on the destination information T1031 and may instruct to open a new socket by using the proxy address T1031-1.
In a case where the received proxy message does not accommodate data, the proxy control unit 1033 may obtain the socket channel ID corresponding to the connection number indicated in a protocol message based on the connection list T1032 and may instruct the transmission/reception control unit 1032 to delete the socket corresponding to the socket channel ID.
In a case where a communication from the application 1011 requests a response, the response control unit 1034 generates the response to output to the application 1011. Thus, in a case where a disconnection results in disruption of a communication with a communication destination, the application 1011 may continue operating without knowing the disruption of the communication. In other words, for example, the application 1011 may not retry the communication after re-connection of the connection. In other words, for example, the response control unit 1034 hides a state in which the connection with the communication partner has been disconnected from the application 1011. Thus, the application 1011 may concentrate on the original processing without being aware of whether the communication is being disconnected or not.
For example, in a case where the proxy control unit 1033 instructs the DTN-1 processing unit 104 to relay a communication of the application 1011, the response control unit 1034 may output a response to the communication to the application 1011. In a case where a file is divided and is transferred from the application 1011 to the node 2 (201), the response control unit 1034 may output the response to the application 1011 by proxy of the node 2 (201) to prompt the application 1011 to transmit the next file data.
The DTN-1 processing unit 104 illustrated in
The app inherent control unit 1041 (which may also be called a transfer control unit) is configured to obtain an application ID indicating a purpose of data from the node 1 (101) based on the destination EID indicated in a request from the proxy control unit 1033 and executes a control rule corresponding to the application ID according to application information T1041 and control rule information T1042. Thus, on the data transmitted from application 1011, a control for the purpose of the data may be executed in the DTN-1 processing unit 104.
The DTN path control unit 1042 is configured to transfer bundle data generated based on data from the application 1011 to a transfer destination DTN node according to DTN path information T1043. The DTN path control unit 1042 may perform communication based on a bundle protocol according to RFC5050 provisions. In this case, the DTN path control unit 1042 accommodates the data from the application 1011 in a payload part of a data message called a bundle for transmission. Specifications of fields within the bundle are provided in RFC5050.
The DTN path control unit 1042, for transmitting the bundle, obtains a destination IP address and a TCP port number (which may also be called a port number) based on TCP/IP corresponding to the EID (Endpoint ID) indicating the destination based on the bundle protocol with reference to the DTN path information T1043. When the connection with the transfer destination DTN node is disconnected, the DTN path control unit 1042 may store the bundle in a buffer 105 (which may also be called a bundle buffer) and, when the connection is re-connected, read out and transmit the bundle from the buffer 105.
The state notification unit 1043 is configured to notify communication information regarding a state and a result of a communication to a user by presenting a pop-up display or a log on a screen, for example. For example, the state notification unit 1043 may output communication information to a display unit (liquid crystal display, for example) in the terminal apparatus 10 or may write communication information in a log file. The notification information may include a result of execution of a control rule according to the purpose of the data from the node 1 (101) by the app inherent control unit 1041.
In the above, the configuration of the terminal apparatus 10 according to Embodiment 2 has been described. The server apparatus 20 may include the same configuration as that of the terminal apparatus 10 according to Embodiment 2 or may include a configuration excluding a part of the configuration of the terminal apparatus 10. For example, the server apparatus 20 may exclude a component corresponding to the app inherent control unit 1041.
Having described that, according to the Embodiments 1 and 2, the terminal apparatus 10 has the node 1 (101), the conversion-1 processing unit 102, the proxy-1 processing unit 103, and the DTN-1 processing unit 104, the present disclosure is not limited thereto. For example, some components of the node 1 (101), the conversion-1 processing unit 102, the proxy-1 processing unit 103, and the DTN-1 processing unit 104 may be implemented in an apparatus different from the terminal apparatus 10.
Having described that, according to Embodiments 1 and 2, the server apparatus 20 includes the node 2 (201), the proxy-2 processing unit 202, and the DTN-2 processing unit 203, the present disclosure is not limited thereto. For example, some components of the node 2 (201), the proxy-2 processing unit 202, and the DTN-2 processing unit 203 may be implemented in an apparatus different from the server apparatus 20.
Hardware Configuration Example
Finally, hardware configurations of the apparatuses according to the aforementioned embodiments disclosed herein will be described briefly.
The terminal apparatus 10 illustrated in
The processing circuit H101 (which may also be called a processor circuit or a computing circuit) may be a computing apparatus (which may also be called a computer) which implements processing in the terminal apparatus 10 according to Embodiment 1 or 2 by reading out and executing a program (which may also be called a relay communication program) stored in the memory H102. In other words, for example, the processing circuit H101 according to an aspect is an execution subject of processing units (such as the node 1 (101), the address conversion unit 102, the proxy-1 processing unit 103, and the DTN-1 processing unit 104) of the terminal apparatus 10 according to Embodiment 1 or 2. Further In other words, for example, the processing circuit H101 may execute a predetermined program (such as a relay communication program) for conversion to hardware circuits implementing functions of the node 1 (101), the address conversion unit 102, the proxy-1 processing unit 103, and the DTN-1 processing unit 104. The processing circuit H101 may be, for example, a central processing unit (CPU), a micro processing unit (MPU), a digital signal processor (DSP) or a field programmable gate array (FPGA). The processing circuit H101 may be a multi-core processor including two or more cores.
The memory H102 is a circuit configured to store and hold data and a program (which may also be called a relay communication program) relating to processes to be executed by the processing circuit H101. The memory H102 may be configured by including both or at least one of a nonvolatile storage device and a volatile storage device. For example, it may include a random access memory (RAM), a read only memory (ROM), a solid state drive (SSD), and a hard disk drive (HDD). Referring to
The wireless communication circuit H103 may be wirelessly connected to the access point 30 connected to the network 40 to be communicable with the server apparatus 20 over the network 40. For example, wireless communication circuit H103 may be a communication module based on a wireless LAN (Local Area Network) standard such as Wi-Fi or may be a communication module based on a 3GPP standard such as Long Term Evolution (LTE).
The server apparatus 20 illustrated in
The processing circuit H201 (which may also be called a processor circuit or a computing circuit) may be a computing apparatus (which may also be called a computer) which implements processing in the server apparatus 20 according to Embodiment 1 or 2 by reading out and executing a program (which may also be called a relay communication program) stored in the memory H202. In other words, for example, the processing circuit H201 according to an aspect is an execution subject of processing units (such as the node 2 (201), the proxy-2 processing unit 202, and the DTN-2 processing unit 203) of the server apparatus 20 according to Embodiment 1 or 2. Further In other words, for example, the processing circuit H201 may execute a predetermined program (such as a relay communication program) for conversion to hardware circuits implementing functions of the node 2 (201), the proxy-2 processing unit 202, and the DTN-2 processing unit 203. The processing circuit H201 may be, for example, a central processing unit (CPU), a micro processing unit (MPU), a digital signal processor (DSP) or a field programmable gate array (FPGA). The processing circuit H201 may be a multi-core processor including two or more cores.
The memory H202 is a circuit configured to store and hold data and a program (which may also be called a relay communication program) relating to processes to be executed by the processing circuit H201. The memory H202 may be configured by including both or at least one of a nonvolatile storage device and a volatile storage device. For example, it may include a random access memory (RAM), a read only memory (ROM), a solid state drive (SSD), and a hard disk drive (HDD). Referring to
The wired communication circuit H203 is a communication module configured to be communicable with the terminal apparatus 10 connected to the network 40 via the access point 30.
From the detail descriptions above, features and advantages of the aforementioned embodiments become apparent. It is intended that claims would cover the features and advantages of the aforementioned embodiments without departing from the spirit and right scope of the present disclosure. Those who have common knowledge in the art could easily reach all improvements and changes. Therefore, it is not intended that the scope of the inventive embodiments is limited to the aforementioned one and may rely on appropriate improvements and equivalents included in the scope disclosed in the embodiments. For example, the processes disclosed herein may not be performed in time series and in order disclosed as an example of the flow of processing, and the order of the processes may be changed or a plurality of processes may be executed in parallel without departing from the spirit and scope of the claimed disclosure. Matters that may occur in the system 1 that become apparent from the detail descriptions above may be found in review of the system 1 according to one aspect, and it is noted that other matters could be found in review of other aspects thereof. In other words, for example, features and advantages of the present disclosure are not limited to the purposes that are effective for the matters specified in the detail descriptions above.
Finally, the configurations of embodiments of the present disclosure illustrate examples for embodying the technical ideas of the present disclosure, and it is not intended that the present disclosure is limited by the configurations of the embodiments. The present disclosure is equally applicable to other embodiments included in the claims. For example, it is to be noted that the terms in the descriptions of the present disclosure may be named differently in accordance with changes in future technical trends. It is to be noted that one or more other names enumerated for a term according to the present disclosure are synonymous with each other.
All examples and conditional language provided herein are intended for the pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations 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 one or more 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.
Number | Date | Country | Kind |
---|---|---|---|
2017-243660 | Dec 2017 | JP | national |