WO2018061209A1 - 通信システム、端末装置、サーバ装置、通信プログラム、及び通信方法 - Google Patents

通信システム、端末装置、サーバ装置、通信プログラム、及び通信方法 Download PDF

Info

Publication number
WO2018061209A1
WO2018061209A1 PCT/JP2016/079156 JP2016079156W WO2018061209A1 WO 2018061209 A1 WO2018061209 A1 WO 2018061209A1 JP 2016079156 W JP2016079156 W JP 2016079156W WO 2018061209 A1 WO2018061209 A1 WO 2018061209A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
communication
proxy
bundle
terminal
Prior art date
Application number
PCT/JP2016/079156
Other languages
English (en)
French (fr)
Inventor
山村新也
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to JP2018541856A priority Critical patent/JPWO2018061209A1/ja
Priority to PCT/JP2016/079156 priority patent/WO2018061209A1/ja
Publication of WO2018061209A1 publication Critical patent/WO2018061209A1/ja
Priority to US16/299,203 priority patent/US20190205189A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5022Mechanisms to release resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/02Topology update or discovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W36/00Hand-off or reselection arrangements
    • H04W36/16Performing reselection for specific purposes
    • H04W36/18Performing reselection for specific purposes for allowing seamless reselection, e.g. soft reselection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/24Connectivity information management, e.g. connectivity discovery or connectivity update
    • H04W40/248Connectivity information update
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding
    • H04W40/34Modification of an existing route
    • H04W40/36Modification of an existing route due to handover
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W84/00Network topologies
    • H04W84/02Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
    • H04W84/10Small scale networks; Flat hierarchical networks
    • H04W84/12WLAN [Wireless Local Area Networks]

Definitions

  • This case relates to a communication system, a terminal device, a server device, a communication program, and a communication method.
  • a terminal device such as a smartphone is connected to a wireless network such as Wi-Fi (Wireless Fidelity, registered trademark, the same shall apply hereinafter) or LTE (Long Term Evolution, registered trademark, the same applies hereinafter).
  • Wi-Fi Wireless Fidelity, registered trademark, the same shall apply hereinafter
  • LTE Long Term Evolution, registered trademark, the same applies hereinafter.
  • the wireless network is switched. For this reason, each time the wireless network is switched, the terminal device is assigned a new IP (Internet Protocol) address by DHCP (Dynamic Host Configuration Protocol) or the like.
  • the session of the application using communication is managed separately from the session of the communication protocol such as TCP (Transmission Control Protocol) / IP, and unilateral communication from the server device to the terminal device such as push communication is as follows.
  • TCP Transmission Control Protocol
  • IP Transmission Control Protocol
  • the application layer indicates the connection state of the session by delaying the output of the data packet from the buffer to the application layer. The point which extends recognition time is indicated.
  • an object of the present invention is to provide a communication system, a terminal device, a server device, a communication program, and a communication method that can continue communication in response to changes in the network connection environment.
  • the server device changes from the first application to the second application.
  • a first proxy unit that relays communication to the terminal device, and the terminal device includes a second proxy unit that forwards communication relayed from the first proxy unit to the second application;
  • the proxy unit and the second proxy unit generate a communication path corresponding to a session established by communication between the first application and the second application, and respond to switching of a network to which the terminal device is connected The session is maintained using the communication path.
  • communication can be continued in response to changes in the network connection environment.
  • DTN Delay,
  • FIG. (1) which shows operation
  • FIG. (2) which shows operation
  • FIG. (3) which shows operation
  • FIG. (4) which shows operation
  • FIG. (5) which shows operation
  • FIG. (5) which shows operation
  • the sequence diagram (the 1) which shows the other example of communication from a control application to an automatic driving
  • the 2 which shows other examples of communication from a control application to an automatic driving application.
  • FIG. 1 is a configuration diagram illustrating an example of a communication system.
  • a traffic information mobility IoT (Internet Of Things) service system is cited.
  • the server 2 is an example of a server device and is connected to the Internet NW.
  • a measurement application (measurement APL) 201b for measuring the speed of each of the cars # 1 to # 3 and a control application (control) for controlling the speed of each of the cars # 1 to # 3 based on the speed.
  • APL) 201a is operating.
  • the control APL 201 a is an example of a first application that operates on the server 2.
  • Terminals 1a to 1c are examples of terminal devices and are mounted in automobiles # 1 to # 3, respectively.
  • the terminals 1a to 1c communicate with the server 2 via the Internet NW by linking with a wireless access point AP connected to the Internet NW.
  • the terminals 1a to 1c include a terminal device for wireless communication such as a smartphone, but are not limited thereto.
  • the wireless access point AP may correspond to a communication line for Wi-Fi, or may correspond to a communication line for LTE or 3G.
  • a sensor application (sensor APL) 101b for detecting the speeds of the cars # 1 to # 3 by the sensor device 91 mounted in the cars # 1 to # 3 and the cars # 1 to # 3 are installed.
  • the automatic driving application (automatic driving APL) 101a for controlling the drive device 90 that has been operated by an instruction from the server 2 operates.
  • the sensor device 91 is a sensor that detects the rotational speed of the axles of the cars # 1 to # 3, for example, and the drive device 90 is a device that automatically controls the speed of the cars # 1 to # 3 by an accelerator or a brake, for example.
  • the automatic driving APL 101a is an example of a second application that operates on the terminal 1.
  • the sensor APL 101b detects the speed of the cars # 1 to # 3 by the sensor device 91 and notifies the server 2 via the Internet NW.
  • the measurement APL 201b measures the speeds of the automobiles # 1 to # 3 based on the notification from the sensor APL 101b.
  • the control APL 201a acquires the speeds of the cars # 1 to # 3 from the measurement APL 201b and analyzes the road conditions on which the cars # 1 to # 3 travel.
  • the control APL 201a instructs the speed to the terminals 1a to 1c of the automobiles # 1 to # 3 based on the analysis result.
  • the automatic operation APL 101a controls the driving device 90 so as to have a speed according to an instruction from the control APL 201a.
  • the measurement APL 201b establishes a session with the sensor APL 101b
  • the control APL 201a establishes a session with the automatic operation APL 101a.
  • An example of speed control will be described below.
  • each car # 1 to # 3 is traveling on the same road in the left direction of the page (see “Progression direction”) in FIG.
  • the sensor APL 101b of the terminal 1a of the car # 1 detects the speed 20 (km / h) of the car # 1 and notifies the server 2 of it.
  • the sensor APL 101b of the terminal 1b of the car # 2 detects the speed 60 (km / h) of the car # 2 and notifies the server 2 of it.
  • the measurement APL 201b of the server 2 When the measurement APL 201b of the server 2 receives the speed of the car # 1 and the speed of the car # 2 from the terminals 1a and 1b, the measurement APL 201b outputs the speed to the control APL 201a.
  • the control APL 201a analyzes the speed of the car # 1, the speed of the car # 2, and the like, and instructs the terminal 1c of the car # 3 to decelerate to the speed 40 (km / h) based on the analysis result.
  • the automatic operation APL 101a of the terminal 1c of the car # 3 controls the driving device 90 so that the speed of the car # 3 becomes 40 (km / h) according to the instruction of the control APL 201a. Thereby, the optimum automatic driving according to the road condition is performed on the car # 3.
  • the terminals 1a to 1c are not always linked to the wireless access point because the cars # 1 to # 3 are traveling. That is, each of the terminals 1a to 1c is disconnected from the wireless access point AP when the cars # 1 to # 3 enter the area outside the wireless LAN (Local Area Network) of the wireless access point. For this reason, the communication between the server 2 and the terminals 1a to 1c is intermittent.
  • LAN Local Area Network
  • each of the terminals 1a to 1c can link with the wireless access point AP again when the cars # 1 to # 3 enter the range of the wireless LAN of the other wireless access points, but a new IP address is set by DHCP. Assigned. For this reason, the server 2 cannot know the IP addresses of the terminals 1a to 1c until it receives communication from the terminals 1a to 1c. For example, the server 2 instructs the terminals 1a to 1c unilaterally by the push type communication. I can't.
  • the terminal 1c will be described as an example.
  • FIG. 2 is a diagram illustrating an example of a change in the network connection environment of the terminal 1c.
  • the same reference numerals are given to the same components as those in FIG. 1, and the description thereof is omitted.
  • the car # 3 is traveling in the area of the wireless LAN # 1 of the wireless access point AP # 1.
  • the terminal 1c is linked to the wireless access point AP # 1 and connected to the wireless LAN # 1, and the IP address “10.10.10.105” is assigned by DHCP communication with the wireless access point AP # 1.
  • the terminal 1c notifies the server 2 of the speed of the car # 3 via the wireless access point AP # 1.
  • the server 2 detects the IP address “10.10.10.105” of the transmission source by receiving the speed notification from the terminal 1c. Therefore, the server 2 can instruct the speed to the terminal 1c with the IP address “10.10.10.105” as the destination.
  • the car # 3 goes out of the range of the wireless LAN # 1.
  • the server 2 cannot instruct the speed to the terminal 1c.
  • the terminal 1c does not have an IP address because the terminal 1c is in a broken link state.
  • the car # 3 enters the area of the wireless LAN # 2 of the wireless access point AP # 2.
  • the terminal 1c is linked to the wireless access point AP # 2 and connected to the wireless LAN # 2, and the IP address “20.20.20.210” is assigned by DHCP communication with the wireless access point AP # 2. Thereby, the IP address of the terminal 1c is changed.
  • the wireless LANs # 1 and # 2 are examples of a network to which the terminal 1c is connected.
  • the server 2 Since the server 2 does not know the new IP address “20.20.20.210” of the terminal 1c, it cannot instruct the speed to the terminal 1c. However, if the terminal 1c notifies the server 2 of the speed again, the server 2 can know the IP address “20.20.20.210” of the terminal 1c. However, if the server 2 instructs the speed after receiving the notification from the terminal 1c, the control as described with reference to FIG. 1 cannot be realized, and the system can function effectively. Can not.
  • the server 2 and the terminals 1a to 1c have a configuration for the applications 101a, 101b, 201a, and 201b to communicate based on the technology of the interruption resistant network.
  • the terminals 1a to 1c notify the server 2 of the IP address every time an IP address is assigned. Accordingly, the server 2 and the terminals 1a to 1c can perform smooth communication even in an environment where communication is intermittent due to a change in the network connection environment of the terminals 1a to 1c.
  • the configurations of the terminals 1a to 1c and the server 2 will be described below.
  • FIG. 3 is a block diagram showing an example of the terminals 1a to 1c.
  • the terminals 1a to 1c are represented as “terminal 1”.
  • the terminal 1 includes a CPU (Central Processing Unit) 10, a ROM (Read Only Memory) 11, a RAM (Random Access Memory) 12, a storage unit 13 such as an HDD (Hard Disk Drive) or a memory, a wireless LAN module 14, and an input unit 15. And a display unit 16.
  • the CPU 10 is connected to the ROM 11, the RAM 12, the storage unit 13, the wireless LAN module 14, the input unit 15, and the display unit 16 through the bus 17 so that signals can be input and output.
  • the ROM 11 stores a program for driving the CPU 10.
  • the programs in the ROM 11 include an OS (Operating System) and a communication program for executing the communication method of the embodiment. As will be described later, this communication method processes communication between applications 201 a and 201 b operating on the server 2 and applications 101 a and 101 b operating on the terminal 1.
  • OS Operating System
  • this communication method processes communication between applications 201 a and 201 b operating on the server 2 and applications 101 a and 101 b operating on the terminal 1.
  • the RAM 12 functions as a working memory for the CPU 10.
  • the storage unit 13 stores various types of information used for program execution.
  • the wireless LAN module 14 communicates with the server 2 on the Internet NW by linking with the wireless access point AP.
  • the input unit 15 is a means for inputting information to the terminal 1. Examples of the input unit 15 include a keyboard, a mouse, and a touch panel. The input unit 15 outputs the input information to the CPU 10 via the bus 17.
  • the display unit 16 is a means for outputting information of the terminal 1. Examples of the display unit 16 include a display, a touch panel, and a printer. The display unit 16 acquires information from the CPU 10 via the bus 17 and displays the information. On the display unit 16, for example, the communication status and results of the applications 101a and 101b of the terminal 1 are displayed.
  • the CPU 10 When the CPU 10 reads the program from the ROM 11, various functions for executing the communication method are formed.
  • the CPU 10 is an example of a computer that executes a program.
  • the functional configuration of the terminal 1 will be described later.
  • FIG. 4 is a configuration diagram illustrating an example of the server 2.
  • the server 2 has a CPU 20, ROM 21, RAM 22, HDD 23, and communication port 24.
  • the CPU 20 is connected to the ROM 21, the RAM 22, the HDD 23, and the communication port 24 via the bus 27 so that signals can be input and output.
  • the ROM 21 stores a program for driving the CPU 20.
  • the programs in the ROM 21 include an OS and a communication program that executes the communication method of the embodiment. As will be described later, this communication method processes communication between applications 201 a and 201 b operating on the server 2 and applications 101 a and 101 b operating on the terminal 1.
  • the RAM 22 functions as a working memory for the CPU 20.
  • the communication port 24 is, for example, a NIC (Network Interface Card), and communicates with the terminal 1 via the Internet NW.
  • the CPU 20 When the CPU 20 reads a program from the ROM 21, various functions for executing the communication method are formed.
  • the CPU 20 is an example of a computer that executes a program.
  • FIG. 5 is a configuration diagram illustrating an example of each functional configuration of the terminal 1 and the server 2.
  • the terminal 1 and the server 2 are connected via the Internet NW as an example.
  • the terminal 1 includes an application function unit 100, a DTN proxy unit 19, an OS function unit 130, and an IP route table (IP route TBL) 131.
  • the DTN proxy unit 19 includes a proxy protocol function unit 110, a bundle control unit 120, a status notification unit 121, a bundle buffer 122, a DTN route table (DTN route TBL) 123, and a route control unit 124.
  • the DTN proxy unit 19 is an example of a first proxy unit.
  • the application function unit 100 includes an application (APLc) 101 and a TCP processing unit 102.
  • the application 101 corresponds to the sensor APL 101b and the automatic driving APL 101a of the terminals 1a to 1c.
  • the proxy protocol function unit 110 includes a proxy control unit 111, a connection monitoring unit 112, an address conversion unit 113, a transmission / reception control unit 114, a response control unit 115, a connection list 116, an initial setting file 117, and a filter table. (Filter TBL) 118.
  • the proxy protocol function unit 110 mediates between the application layer in which the application 101 functions and the bundle layer in which the bundle control unit 120 functions, so that the difference in transport protocol between layers can be indicated to the bundle control unit 120. Conceal.
  • the proxy protocol function unit 110 is generated individually for each of the automatic operation APL 101a and the sensor APL 101b.
  • the function unit 130 is a function formed in the CPU 10 of the terminal 1. Further, the connection list 116, the initial setting file 117, the filter TBL 118, the bundle buffer 122, the DTN route TBL 123, and the IP route TBL 131 are stored in the storage unit 13.
  • the server 2 has an application function unit 200, a DTN proxy unit 29, an OS function unit 230, and an IP route TBL231.
  • the DTN proxy unit 29 includes a proxy protocol function unit 210, a bundle control unit 220, a state notification unit 221, a bundle buffer 222, a DTN route TBL 223, and a route control unit 224.
  • the DTN proxy unit 29 is an example of a second proxy unit.
  • the application function unit 200 includes an application (APLs) 201 and a TCP processing unit 202.
  • the application 201 corresponds to the control APL 201a and the measurement APL 201b.
  • the proxy protocol function unit 210 includes a proxy control unit 211, a connection monitoring unit 212, an address conversion unit 213, a transmission / reception control unit 214, a response control unit 215, a connection list 216, an initial setting file 217, and a filter TBL 218. And have.
  • the proxy protocol function unit 210 mediates between the application layer in which the application 201 functions and the bundle layer in which the bundle control unit 220 functions, so that the difference in transport protocol between layers can be indicated to the bundle control unit 220. Conceal.
  • the proxy protocol function unit 210 is generated individually for each of the terminals 1a to 1c and the measurement APL 201b that are communication destinations of the control APL 201a.
  • the function unit 230 is a function formed in the CPU 20 of the server 2.
  • the connection list 216, the initial setting file 217, the filter TBL 218, the bundle buffer 222, the DTN path TBL 223, and the IP path TBL 231 are stored in the HDD 23.
  • the application 201 and the application 101 cooperate to provide a predetermined function by communicating with the TCP processing units 102 and 202.
  • Examples of the functions of the application 201 and the application 101 include, but are not limited to, the functions described with reference to FIG.
  • the TCP processing units 102 and 202 have a TCP / IP communication function provided by, for example, an OS driver.
  • the TCP processing unit 102 of the terminal 1 controls the wireless LAN module 14 to transmit / receive packets
  • the TCP processing unit 202 of the server 2 controls the communication port 24 to transmit / receive packets.
  • the application 201 and the application 101 directly perform communication based on TCP / IP via the Internet NW.
  • the bundle control units 120 and 220 perform communication based on the DTN bundle protocol instead of communication based on TCP / IP.
  • the bundle control units 120 and 220 bundle the data transmitted by the applications 101 and 201 and temporarily store them in the bundle buffers 122 and 222.
  • the bundle control units 120 and 220 The bundle data is read and transmitted to the communication destination (server 2 or terminal 1).
  • the bundle control unit 120 switches communication from the application 101 to the communication destination from communication based on TCP / IP to communication based on the DTN bundle protocol according to the state of the connection with the communication destination.
  • the connection monitoring unit 112 monitors the state of the connection with the communication destination, and controls the address conversion unit 113 according to the connection state.
  • connection monitoring unit 112 switches communication with the communication destination of the application 101 from communication using TCP / IP to communication using the DTN bundle protocol. Therefore, communication of the application 101 is switched from communication based on TCP / IP by the TCP processing unit 102 to communication based on the bundle protocol by the bundle control unit 120.
  • the bundle control unit 220 switches communication from the application 201 to the communication destination from communication based on TCP / IP to communication based on the DTN bundle protocol according to the state of the connection with the communication destination.
  • the connection monitoring unit 212 monitors the connection state with the communication destination, and controls the address conversion unit 213 according to the connection state.
  • connection monitoring unit 212 switches communication with the communication destination of the application 201 from communication using TCP / IP to communication using the DTN bundle protocol. Accordingly, communication of the application 201 is switched from communication based on TCP / IP by the TCP processing unit 202 to communication based on the bundle protocol by the bundle control unit 220.
  • the bundle control units 120 and 220 perform communication based on the bundle protocol in accordance with, for example, RFC (Request For Comments) 5050.
  • the bundle control units 120 and 220 transmit the transmission target data of the applications 101 and 201 in a payload portion of a data message called a bundle.
  • Fig. 6 shows the format of the bundle.
  • the bundle includes a primary bundle block and a bundle payload block.
  • the primary bundle block includes information on the transmission source and destination, and a lifetime (“Life time”) indicating the time until the bundle is deleted.
  • the bundle payload block includes a payload (“Bundle Payload”) that accommodates data. Each item in the bundle is defined in RFC5050.
  • the bundle control units 120 and 220 refer to the DTN route TBL 123 and 223 when transmitting the bundle, and the destination IP address on the TCP / IP corresponding to the EID indicating the destination in the bundle protocol and A TCP port number (hereinafter referred to as “port number”) is acquired.
  • FIG. 7 is a diagram illustrating an example of the DTN paths TBL123 and 223.
  • the destination EID the next hop type that is the type of the destination IP address, the next hop address that is the destination IP address, and the port number of the destination are registered.
  • the destination EID includes “dtn: // mobile1”, “dtn: // mobile2”, and “dtn: / / mobile3 "is registered. Since the IP address of each terminal 1 is variable according to the wireless LAN to which the terminal 1 is connected, “variable” is registered as the next hop type, and the next hop address is unregistered (“ ⁇ ”). It has become. As will be described later, the next hop address is registered based on the address notification received from the terminal 1. Further, “4556” is registered as the port number based on the initial setting file 217.
  • the bundle control units 120 and 220 store the bundles in the bundle buffers 122 and 222 when the connection with the destination, that is, the connection between the terminal 1 and the server 2 is disconnected.
  • the bundle is read from the bundle buffers 122 and 222 and transmitted. Thereby, communication based on DTN is performed.
  • FIG. 8 shows an example of the bundle buffers 122 and 222.
  • the bundle buffers 122 and 222 are bundle storage areas.
  • the bundle is stored in the bundle buffers 122 and 222 together with a bundle ID for identifying the bundle.
  • the bundle control units 120 and 220 store the bundles in the bundle buffers 122 and 222 not only when the bundle is transmitted but also when the bundle is received.
  • the bundle control units 120 and 220 transmit and receive bundles by the OS function units 130 and 230 included in the OS.
  • the OS function unit 130 of the terminal 1 has a communication processing function by the wireless LAN module 14 and processes a link and communication with the wireless access point AP.
  • the OS function unit 230 of the server 2 has a communication processing function by the communication port 24 and processes a link and communication with a connection destination device of the communication port 24.
  • the OS function units 130 and 230 search for the gateway address corresponding to the IP address of the communication destination from the IP route TBL 131 and 231 and perform communication by accessing the gateway.
  • the path control unit 124 of the terminal 1 generates a communication path corresponding to a session established by communication between the application 101 and the application 201. More specifically, the route control unit 124 monitors the OS function unit 130, and if the result of the monitoring detects the assignment of a new IP address by DHCP, sets the gateway address corresponding to the IP address in the IP route TBL 131. To do. In addition, the route control unit 124 generates an address notification including the IP address and transmits it to the route control unit 224 of the server 2 via the bundle control unit 120. At this time, the path control unit 124 opens a socket for communication from the bundle control unit 120 to the bundle control unit 220 of the server 2 prior to transmission.
  • the path control unit 224 of the server 2 generates a communication path corresponding to a session established by communication between the application 101 and the application 201. More specifically, when receiving the address notification from the route control unit 124 of the terminal 1, the route control unit 224 acquires the IP address of the terminal 1 from the address notification and registers it in the next hop address of the DTN route TBL 223. Further, the route control unit 224 opens a socket for communication from the bundle control unit 220 to the bundle control unit 120 of the terminal 1, and generates an address notification including the IP address of the server 2 as a response to the route control unit 124. To send.
  • the proxy protocol function units 110 and 210 convert communication between the application 101 and the application 201 from TCP socket communication to bundle protocol communication. At this time, the proxy protocol function units 110 and 210 set and control the bundle control units 120 and 220 using a bundle API (Application Programming Interface), thereby enabling DTN to be used even in general applications. Details of the proxy protocol function units 110 and 210 will be described below.
  • the address conversion units 113 and 213 convert the communication destinations of the applications 101 and 201 to the destinations of the transmission / reception control units 114 and 214, respectively.
  • the address translation unit 113 uses the destination IP address and port number of a packet destined for the server 2 as the destination IP address of a TCP socket (hereinafter referred to as “socket”) set in the transmission / reception control unit 114. And port number.
  • the proxy protocol function units 110 and 210 can receive packet data transmitted from the applications 101 and 201 to the communication destination.
  • the address conversion units 113 and 213 are realized by WFP (Windows Filtering Platform) when Windows (registered trademark) is used as the OS, and Linux (registered trademark) is used as the OS, for example. , Realized by "iptables".
  • the transmission / reception control units 114 and 214 terminate the TCP socket communication of the applications 101 and 201.
  • the transmission / reception control units 114 and 214 establish a local loopback connection in the apparatus.
  • the transmission / reception control unit 114 of the terminal 1 monitors the connection of the socket from the application 101 (that is, the opening of the socket), establishes a session for the application 201 of the server 2 and instructs the socket according to the instruction from the proxy control unit 111. Send data to. Further, the transmission / reception control unit 214 of the server 2 monitors the connection of the socket from the application 201, and in accordance with the instruction from the proxy control unit 211, establishes a session for the application 101 of the terminal 1 and transmits data to the designated socket Send. The transmission / reception control unit 114 notifies the applications 101 and 201 that the session with the communication destination is established.
  • the proxy control units 111 and 211 accommodate the packet data received by the transmission / reception control units 114 and 214 in the payload of the proxy message, and output the packet data to the bundle control units 120 and 220 using the bundle API. As a result, the proxy control units 111 and 211 request the bundle control units 120 and 220 to transmit a bundle.
  • the proxy control units 111 and 211 manage proxy messages with connection numbers according to destinations.
  • the proxy control units 111 and 211 register new connection numbers in the connection lists 116 and 216 each time the socket is opened by the transmission / reception control units 114 and 214.
  • FIG. 8 shows an example of the connection lists 116 and 216.
  • connection numbers, socket channel IDs, and destination EIDs are registered in association with each other.
  • the socket channel ID is an identifier of the socket of the transmission / reception control units 114 and 214.
  • the proxy control units 111 and 211 give a connection number corresponding to the socket channel ID of the socket that received the packet to the proxy message and output it to the bundle control units 120 and 220. In addition, the proxy control units 111 and 211 request the bundle control units 120 and 220 to transmit the bundle to the corresponding destination EID.
  • the EID of the server 2 is registered in the destination EID of the connection list 116 of the terminal 1, and the EID of the terminal 1 is registered in the destination EID of the connection list 216 of the server 2.
  • the proxy control units 111 and 211 acquire information necessary for communication such as EID of the own device and EID of the communication destination by reading the initial setting files 117 and 217.
  • FIG. 9 is a diagram illustrating an example of the initial setting files 117 and 217.
  • an initial setting file 117 of the proxy control unit 111 corresponding to the automatic driving APL 101a and an initial setting file 217 of the control APL 201a having the terminal 1a as a communication destination are shown.
  • node EID, application EID, output pointer, various port numbers, and destination EID are registered.
  • the node EID is an EID that identifies a communication node, and is associated with an IP address.
  • the node EIDs of the terminals 1a to 1c are “dtn: // mobile1”, “dtn: // mobile2”, and “dtn: // mobile3”, respectively.
  • the node EID of the server 2 is “dtn: // server”.
  • Application EID is EID for identifying the applications 101 and 201, and is associated with the proxy control units 111 and 211.
  • the application EID of the automatic operation APL 101a of the terminal 1 is “dtn: // mobile1 / navi”
  • the application EID of the control APL 201a for the terminal 1a of the server 2 is “dtn: // server / navi / mobile1”.
  • the output pointer indicates the output directory of the bundle received by the bundle control units 120 and 220.
  • the port number of the terminal 1 is a port number of a socket for the bundle control unit 120 to transmit / receive the bundle
  • the port number of the server 2 is a port number corresponding to the socket for the bundle control unit 220 to transmit / receive the bundle.
  • the proxy port number is a port number corresponding to a socket for the proxy control units 111 and 211 to transmit and receive data to and from the applications 101 and 201.
  • the proxy control units 111 and 211 receive proxy messages from the bundle control units 120 and 220.
  • the proxy control units 111 and 211 instruct the transmission / reception control units 114 and 214 to open a new socket and start a session using the socket. To do.
  • the proxy control units 111 and 211 search the connection list 116 for the socket channel ID corresponding to the connection number.
  • the proxy control units 111 and 211 determine that the communication has ended, and instruct the transmission / reception control units 114 and 214 to delete the socket having the searched socket channel ID.
  • sockets and EIDs are managed in association with the connection list 116. For this reason, TCP / IP communication using a socket can be performed based on the bundle protocol.
  • the bundle control units 120 and 220 transmit a bundle in response to a bundle transmission request from the proxy control units 111 and 211. Therefore, the bundle control units 120 and 220 can perform communication from the applications 101 and 201 to the communication destination based on the protocol of the interruption resistant network.
  • the response control units 115 and 215 When the communication from the applications 101 and 201 requires a response, the response control units 115 and 215 generate a response and output the response to the applications 101 and 201. For this reason, even when the communication with the communication destination is interrupted due to the disconnection of the connection, the applications 101 and 201 operate without knowing that the communication is interrupted. Therefore, it is not necessary to redo communication after reconnection.
  • the response control unit 115 when the proxy control unit 111 communicates with the application 101, the response control unit 115 outputs a response to the communication to the application 101.
  • the response control unit 115 of the terminal 1 prompts the application 101 to transmit the next file data as a response instead of the application 201.
  • the response control units 115 and 215 notify the applications 101 and 201 of the completion of communication. For this reason, the applications 101 and 201 do not know the result of communication based on the bundle protocol of the bundle control units 120 and 220 and recognize that the communication is successful.
  • the status notification units 121 and 221 notify the communication information regarding the communication status and results to the user by, for example, pop-up display on the screen or a log. More specifically, the status notification unit 121 of the terminal 1 outputs communication information to the display unit 16 or writes a log file in which the communication information is recorded in the storage unit 13. Further, the status notification unit 221 of the server 2 writes a log file in which communication information is recorded in the HDD 23.
  • the proxy control units 111 and 211 instruct the state notification units 121 and 221 to perform notification according to the communication state. Thereby, the status notification units 121 and 221 notify the user of the communication failure when the proxy control units 111 and 211 determine that the communication has failed.
  • connection monitoring units 112 and 212 monitor the connection status of the bundle control units 120 and 220. When the connection is disconnected, the connection monitoring units 112 and 212 connect the connection. When the connection is successful, the connection monitoring units 112 and 212 instruct the connection monitoring units 112 and 212 to transmit the bundle to be transmitted in the bundle buffers 122 and 222. .
  • connection monitoring units 112 and 212 set and delete the conversion information for the address conversion units 113 and 213 according to the state of the connection.
  • the connection monitoring units 112 and 212 set conversion information based on the filters TBL 118 and 218.
  • FIG. 8 shows an example of the filters TBL 118 and 218.
  • packet filter conditions, conversion information, and setting states are associated and registered.
  • the filter condition specifies the IP address and port number of the source and destination of the packet subject to address translation.
  • the conversion information indicates a portion to be rewritten of a packet that matches the filter condition and a value after rewriting.
  • the setting state indicates whether the setting of the filter condition and conversion information is valid or invalid.
  • connection monitoring units 112 and 212 set or delete the conversion information of the address conversion units 113 and 213 according to the connection state. For this reason, the bundle protocol is automatically applied to the communication of the applications 101 and 201.
  • connection monitoring units 112 and 212 detect the state of the connection with the communication destination, and determine whether or not the bundle protocol can be applied to the communication of the applications 101 and 201 according to the state of the connection. For this reason, the bundle protocol is used for communication of the applications 101 and 201 according to the connection state.
  • the applications 101 and 201 perform communication by converting the protocol of TCP / IP with the above configuration.
  • FIG. 10 shows an example of protocol conversion. 10 includes the application 101 of the terminal 1, the proxy control unit 111, and the bundle control unit 120, and the application 201, the proxy control unit 211, and the bundle control unit 220 of the server 2 in the configuration illustrated in FIG. It is shown.
  • TCP / IP communication is performed using an IP address and a port number.
  • the socket SC1 is opened for the application 101 of the terminal 1
  • the socket SC6 is opened for the application 201 of the server 2.
  • the application 101 and the application 201 communicate with each other to establish a session.
  • the proxy control unit 111 Between the proxy control units 111 and 211, communication is performed using a protocol between proxies using a connection number.
  • the transmission / reception control unit 114 opens the socket SC2 corresponding to the socket SC6 of the application 201 on a one-to-one basis. As a result, the proxy control unit 111 establishes a session with the application 101.
  • the socket SC5 corresponding to the socket SC1 of the application 101 is opened by the transmission / reception control unit 214 in a one-to-one manner.
  • the proxy control unit 211 establishes a session with the application 201.
  • Communication between the application 101 and the proxy control unit 111 is performed using the sockets SC1 and SC2, and communication between the application 201 and the proxy control unit 211 is performed using the sockets SC5 and SC6. Therefore, the transmission / reception control units 114 and 214 open and close the sockets SC2 and SC5 in accordance with the sockets SC1 and SC6 of the application 101 and the application 201, and perform data transmission / reception through the sockets SC2 and SC5.
  • the sockets SC1, SC2, SC5, and SC6 are closed when the session ends.
  • Bundle communication by EID is performed between the bundle control units 120 and 220.
  • the sockets SC3 and SC4 are opened by the path control units 124 and 224, respectively.
  • the path control unit 124 opens the socket SC3 in the bundle control unit 120.
  • the route control unit 124 transmits an address notification of the IP address to the route control unit 224 of the server 2.
  • the path control unit 224 when the path control unit 224 receives the address notification, the path control unit 224 opens the socket SC4 in the bundle control unit 220. As a result, the route control unit 224 transmits an IP address notification to the route control unit 124 of the terminal 1.
  • the proxy control unit 111 in the terminal 1 sets the port number of the packet to the destination EID based on the initial setting file 117 as indicated by reference numeral D1. Convert to In addition, the bundle control unit 120 converts the destination EID into a destination IP address and a port number based on the DTN route TBL123.
  • the bundle control unit 220 converts the destination EID into an output pointer
  • the proxy control unit 211 converts the output pointer into a destination IP address and a port number. In this way, communication from the application 101 of the terminal 1 to the application 201 of the server 2 is performed.
  • the proxy control unit 211 in the server 2 sets the port number of the packet based on the initial setting file 217 as indicated by reference numeral D2. Convert to destination EID. Further, the bundle control unit 220 converts the destination EID into a destination IP address and a port number based on the DTN route TBL223.
  • the bundle control unit 120 converts the destination EID into an output pointer
  • the proxy control unit 111 converts the output pointer into a destination IP address and a port number. In this way, communication from the application 201 of the server 2 to the application 101 of the terminal 1 is performed. Processing executed in communication between the applications 101 and 201 will be described below.
  • FIG. 11 is a flowchart showing an example of data transmission processing of the applications 101 and 201.
  • the proxy control units 111 and 211 read the initial setting files 117 and 217 (step St1).
  • the proxy control units 111 and 211 open sockets for receiving packets addressed to the communication destination applications 201 and 101 from the applications 101 and 201 to the transmission / reception control units 114 and 214 (step St2).
  • the proxy port number of the initial setting files 117 and 217 or the loopback IP address “127.0.0.1” is set.
  • the application 101 of the terminal 1 transmits a packet to the socket generated by the transmission / reception control unit 114 instead of the socket of the application 201 of the server 2. Further, the application 201 of the server 2 transmits the packet to the socket generated by the transmission / reception control unit 214 instead of the socket of the application 101 of the terminal 1. At this time, the destination IP address and the port number of the packet are converted by a predetermined setting or the address converters 113 and 213.
  • the transmission / reception control units 114 and 214 determine whether or not a packet is received at the socket (step St3). If no packet is received (No in step St3), the transmission / reception control unit 114.214 executes the determination process in step St3 again.
  • the proxy control units 111 and 211 determine whether or not the transmission source port number of the packet is new (step St4). That is, the proxy control units 111 and 211 determine whether or not the port numbers of the applications 101 and 201 are changed and a new channel is established.
  • the transmission / reception control units 114 and 214 detect the completion of communication from the applications 101 and 201, and the received packet data is transferred to the proxy control units 111 and 211 via a memory or the like. Output to. At this time, the transmission / reception control units 114 and 214 notify the applications 101 and 201 of session establishment.
  • the proxy control units 111 and 211 register a new connection number, a socket channel ID and a destination EID corresponding to the connection number in the connection lists 116 and 216, respectively. (Step St9). Further, when the transmission source port number is not new (No in Step St4), the proxy control units 111 and 211 do not execute the process in Step St9.
  • the proxy control units 111 and 211 generate a proxy message as indicated by reference numeral G1 (step St5).
  • the proxy message includes a connection number and a payload.
  • the proxy control units 111 and 211 generate packet messages by storing packet data in the payload and assigning connection numbers retrieved from the connection lists 116 and 216.
  • the proxy message is output to the bundle control units 120 and 220 by the bundle API.
  • the response control units 115 and 215 determine whether or not a response to the transmission target packet is necessary (step St6).
  • the response control units 115 and 215 determine whether or not there is a response necessary for continuing communication at the application level, not the TCP ACK.
  • the response control units 115 and 215 When a response is required (Yes in step St6), the response control units 115 and 215 generate response data instead of the communication destination applications 201 and 101 and transmit the response data to the applications 101 and 201 based on a predetermined algorithm. (Step St7). That is, the response control units 115 and 215 notify the application 101 and the application 201 of the completion of communication. For this reason, as described above, the applications 101 and 201 recognize that the communication is successful even if the communication of the bundle protocol fails. Moreover, the response control parts 115 and 215 do not generate response data when no response is required (No in step St6).
  • the proxy control units 111 and 211 request the bundle control units 120 and 220 to transmit the bundle using the bundle API (step St8).
  • the bundle control units 120 and 220 generate and transmit a bundle from the proxy message.
  • the bundle control units 120 and 220 perform communication from the applications 101 and 201 to the communication destination applications 201 and 101 based on the protocol of the interruption resistant network. In this way, the data transmission processing of the applications 101 and 201 is executed.
  • FIG. 12 is a flowchart showing an example of bundle transmission processing.
  • the bundle control units 120 and 220 When the bundle control units 120 and 220 are requested to transmit a bundle from the proxy control units 111 and 211, the bundle control units 120 and 220 read out the DTN paths TBL123 and 223 (step St11). Next, the bundle control units 120 and 220 generate a bundle of a destination IP address and a port number corresponding to the destination EID based on the DTN paths TBL123 and 223 (step St12).
  • the bundle control units 120 and 220 determine whether or not the connection with the communication destination corresponding to the destination EID is in an established state (step St14). If the connection is not established (No in Step St14), the bundle control units 120 and 220 store the bundle in the bundle buffers 122 and 222 (Step St13), and execute the process in Step St14 again.
  • step St14 the bundle control units 120 and 220 determine whether or not the IP address is variable based on the next hop type of the DTN routes TBL123 and 223 (step St15). If the IP address is fixed (No in step St15), the bundle control units 120 and 220 transmit the bundle (step St17).
  • the bundle control units 120 and 220 determine whether or not the IP address has been set based on the next hop address of the DTN routes TBL123 and 223 (Step S15). St16). If the IP address is not set (No in step St16), the bundle control units 120 and 220 store the bundle in the bundle buffers 122 and 222 (step St13), and execute the process in step St14 again.
  • the IP address is not set, for example, the bundle is generated with a temporary IP address, and the IP address is corrected after the IP address is set.
  • the bundle control units 120 and 220 transmit the bundle (step St17). In this way, the bundle transmission process is executed.
  • FIG. 13 is a flowchart illustrating an example of bundle reception processing.
  • the proxy control units 111 and 211 read the initial setting files 117 and 217 (step St21).
  • the proxy control units 111 and 211 allow the bundle control units 120 and 220 to receive the bundle from the communication partner applications 201 and 101 according to the initial setting files 117 and 217 using the bundle API and the node EID and output pointer. Is registered (step St22).
  • the bundle control units 120 and 220 output the bundle to the designated directory of the output pointer “data / receive” when the bundle is received.
  • the bundle control units 120 and 220 determine whether or not a bundle has been received (step St23). When the bundle control units 120 and 220 have not received the bundle (No in Step St23), the bundle control units 120 and 220 execute the process in Step St23 again. When the bundle control units 120 and 220 receive the bundle (Yes in step St23), the bundle control units 120 and 220 determine whether or not the EID registered in step St22 matches the destination EID of the bundle (step St24).
  • the bundle control units 120 and 220 discard the bundle and end the processing because the bundle is not addressed to the own device.
  • the bundle control units 120 and 220 generate the proxy message by acquiring the packet data from the bundle payload, and specify the output pointer. Output to the directory (step St25).
  • the proxy control units 111 and 211 refer to the designated directory of the output pointer and acquire a proxy message (step St26). Next, the proxy control units 111 and 211 determine whether or not the connection number of the proxy message has been registered in the connection lists 116 and 216 (step St27).
  • the proxy control units 111 and 211 open the sockets with the proxy port numbers specified in the initial setting files 117 and 217 to the transmission / reception control units 114 and 214. Is instructed (step St28). Further, when the connection number has been registered (Yes in step St27), the proxy control units 111 and 211 determine whether or not the packet data is accommodated in the payload of the proxy message (step St30).
  • the proxy control units 111 and 211 transmit the data to the corresponding socket (step St29).
  • the proxy control units 111 and 211 instruct the transmission / reception control units 114 and 214 to close the corresponding socket (step St31). In this way, the bundle receiving process is executed.
  • the proxy protocol function units 110 and 210 perform socket connection based on the operation of the application. Open and close are reproduced. For this reason, communication can be continued between the application 101 and the application 201 even when the connection is disconnected.
  • FIG. 14 is a flowchart illustrating an example of processing of the route control unit 124 of the terminal 1.
  • the path control unit 124 monitors whether the OS function unit 130 is assigned an IP address (step St51).
  • the OS function unit 130 is assigned an IP address by DHCP communication with the wireless access point AP to which the terminal 1 is linked. Therefore, the path control unit 124 can detect that the terminal 1 is connected to the wireless LAN by monitoring the OS function unit 130.
  • the path control unit 124 determines whether or not an IP address is assigned from the monitoring result (step St52). When the IP address is not assigned (No in Step St52), the route control unit 124 executes the process in Step St51 again.
  • the route control unit 124 acquires the IP address from the OS function unit 130 (Step St53). Next, the route control unit 124 sets a gateway address corresponding to the acquired IP address in the IP route TBL 131 (step St54). The gateway address is determined by DHCP. Since the bundle is routed according to the IP route TBL 131, when the gateway address is set in the IP route TBL 131, a communication route from the terminal 1 to the server 2 is generated.
  • the path control unit 124 opens a socket for communication with the server 2 in the bundle control unit 120 (step St55).
  • the path control unit 124 generates an address notification including the IP address and the node EID (Step St56). Note that the node EID is acquired from the initial setting file 117.
  • the route control unit 124 transmits an address notification to the server 2 by the bundle control unit 120 (step St57). Therefore, the server 2 can know the new IP address of the terminal 1 even when the connection destination wireless LAN of the terminal 1 is switched.
  • the path control unit 124 determines whether or not a link break has been detected for the wireless access point AP by monitoring the OS function unit 130 (step St58). If there is no link break (No in Step St58), the route control unit 124 executes the process in Step St58 again. In addition, when the link disconnection occurs (Yes in Step St58), the path control unit 124 closes the socket of the bundle control unit 120 (Step St59).
  • the route control unit 124 deletes the gateway address from the IP route TBL 131 (step St60) and executes the process of step St51 again. In this way, the processing of the route control unit 124 is executed.
  • FIG. 15 is a flowchart illustrating an example of processing of the route control unit 224 of the server 2.
  • the route control unit 224 determines whether or not an address notification is received from the route control unit 124 of the terminal 1 (step St71). When the route control unit 224 has not received the address notification (No in Step St71), the route control unit 224 executes the process in Step St71 again.
  • the route control unit 224 acquires the IP address of the terminal 1 that is the transmission source IP address from the address notification (Step St72).
  • the path control unit 224 sets the acquired IP address in the DTN path TBL 223 (step St73). At this time, the IP address is registered in the next hop address corresponding to the node EID of the terminal 1 included in the address notification.
  • the path control unit 224 opens a socket for communication with the terminal 1 in the bundle control unit 220 (step St74).
  • the path control unit 224 generates an address notification including the IP address and the node EID (Step St75).
  • the node EID is acquired from the initial setting file 217.
  • the path control unit 224 transmits an address notification to the terminal 1 by the bundle control unit 220 (step St76). Therefore, the terminal 1 can confirm the address notification response transmitted to the server 2.
  • the path control unit 224 determines whether or not communication disconnection is detected for the terminal 1 by monitoring the OS function unit 230 (step St77). When there is no communication disconnection (No in Step St77), the route control unit 224 executes the process in Step St77 again. Further, when the communication disconnection occurs (Yes in step St77), the path control unit 224 closes the socket of the bundle control unit 220 (step St78).
  • the path control unit 224 deletes the address of the terminal 1 from the DTN path TBL 223 (step St79), and executes the process of step St71 again. In this way, the processing of the route control unit 224 is executed.
  • FIG. 16 is a flowchart showing an example of bundle protocol application switching processing.
  • the connection monitoring units 112 and 212 detect the presence / absence of connection with the communication destination (step St41).
  • the bundle control units 120 and 220 detect a connection state with a corresponding communication destination and a communication state by a keep alive function based on the IP address and port number set in the DTN paths TBL 123 and 223.
  • the connection monitoring units 112 and 212 acquire the detection results of the bundle control units 120 and 220, or detect the connection state by control using the bundle API.
  • connection monitoring units 112 and 212 determine whether a bundle waiting for transmission is stored in the bundle buffers 122 and 222 (step St42). When there is no stored bundle (No in step St42), the connection monitoring units 112 and 212 execute the process in step St41 again.
  • connection monitoring units 112 and 212 refer to the setting state of the filters TBL 118 and 218 to determine whether or not the conversion information is set for the address conversion units 113 and 213. Determination is made (step St43). If the conversion information is not set (No in step St43), the connection monitoring units 112 and 212 end the process. Further, when there is conversion information setting (Yes in step St43), the connection monitoring units 112 and 212 delete the conversion information (step St44).
  • connection monitoring units 112 and 212 refer to the setting state of the filters TBL 118 and 218 to determine whether or not the conversion information is set for the address conversion units 113 and 213. Determination is made (step St45). If there is conversion information setting (Yes in step St45), the connection monitoring units 112 and 212 end the process. Further, when there is no conversion information setting (No in step St45), the connection monitoring units 112 and 212 set the conversion information (step St46).
  • connection monitoring units 112 and 212 detect the state of the connection with the communication destination, and determine whether or not the bundle protocol can be applied to the communication between the applications 101 and 201 according to the state of the connection. For this reason, the bundle protocol is automatically applied.
  • FIG. 17 is a diagram illustrating an example of EID allocation.
  • white circles indicate sockets for transmitting and receiving data.
  • the EID and port number are assigned by the initial setting files 117 and 217.
  • the proxy protocol function unit 110 is formed for the automatic operation APL 101a and the sensor APL 101b, respectively.
  • the terminal 1a is provided with a proxy # 11 that is a proxy protocol function unit 110a corresponding to the automatic driving APL 101a and a proxy # 12 that is a proxy protocol function unit 110b corresponding to the sensor APL 101b.
  • Proxy # 11 transmits data to the socket of port number “9000” of automatic operation APL 101a, and proxy # 12 receives data from sensor APL 101b through the socket of port number “8001”.
  • the node EID “dtn: // mobile1” is assigned to the bundle control unit 120.
  • the bundle control unit 120 receives data from the bundle control unit 220 of the server 2 through the socket having the port number “4556”.
  • the terminal 1b is provided with a proxy # 21 which is a proxy protocol function unit 110a corresponding to the automatic driving APL 101a and a proxy # 22 which is a proxy protocol function unit 110b corresponding to the sensor APL 101b.
  • Proxy E21 is assigned application EID “dtn: // mobile2 / navi”
  • Proxy E22 is assigned application EID “dtn: // mobile2 / sensor”.
  • Proxy # 21 transmits data to the socket of port number “9000” of automatic operation APL 101a
  • proxy # 22 receives data from sensor APL 101b at the socket of port number “8001”.
  • the node EID “dtn: // mobile2” is assigned to the bundle control unit 120.
  • the bundle control unit 120 receives data from the bundle control unit 220 of the server 2 through the socket having the port number “4556”.
  • the terminal 1c is provided with a proxy # 31 which is a proxy protocol function unit 110a corresponding to the automatic operation APL 101a and a proxy # 32 which is a proxy protocol function unit 110b corresponding to the sensor APL 101b.
  • Proxy E31 is assigned application EID “dtn: // mobile3 / navi”, and Proxy E32 is assigned application EID “dtn: // mobile3 / sensor”.
  • Proxy # 31 transmits data to the socket with port number “9000” of automatic operation APL 101a, and proxy # 32 receives data from sensor APL 101b with the socket with port number “8001”.
  • the node EID “dtn: // mobile3” is assigned to the bundle control unit 120.
  • the bundle control unit 120 receives data from the bundle control unit 220 of the server 2 through the socket having the port number “4556”.
  • the bundle control unit 120 of each terminal 1a to 1c transmits and receives data via the interface IF.
  • the interface IF is, for example, the wireless LAN module 14, and its IP address is variable.
  • the proxy protocol function unit 210 is formed for each of the communication destination of the control APL 201a and the measurement APL 201b.
  • Proxy # 01 is a proxy protocol function unit 210a corresponding to the automatic operation APL 101a of the terminal 1a, and an application EID “dtn: // server / navi / mobile1” is assigned thereto.
  • Proxy # 02 is a proxy protocol function unit 210b corresponding to the automatic operation APL 101a of the terminal 1b, and an application EID “dtn: // server / navi / mobile2” is assigned thereto.
  • the proxy # 03 is a proxy protocol function unit 210c corresponding to the automatic operation APL 101a of the terminal 1c, and is assigned an application EID “dtn: // server / navi / mobile3”.
  • Proxy # 01 receives data from the control APL 201a through the socket with the port number “9001”, and proxy # 02 receives data from the control APL 201a through the socket with the port number “9002”.
  • the proxy # 03 receives data from the control APL 201a through the socket having the port number “9003”.
  • the terminals 1a to 1c In the communication from the control APL 201a to the automatic driving APL 101a, the terminals 1a to 1c have server functions. Therefore, the terminals 1a to 1c need proxies # 11, # 21, and # 31 corresponding to the automatic driving APL 101a. Requires proxies # 01 to # 03 corresponding to proxies # 11, # 21, and # 31. In bundle protocol communication, since the communication destination is specified by the application EID, the communication destination can be specified even when the IP addresses of the terminals 1a to 1c are not yet determined.
  • control APL 201a designates the communication destination by the IP address and the port number, the terminals 1a to 1c whose IP addresses are not determined cannot be designated as the communication destination. Therefore, by assigning individual port numbers “9001” to “9003” to the proxies # 01 to # 03, the control APL 201a can virtually specify the terminals 1a to 1c as communication destinations.
  • Proxy # 04 is a proxy protocol function unit 210d corresponding to the measurement APL 201b, and an application EID “dtn: // server / sensor” is assigned thereto. Proxy # 04 transmits data to the socket of port number “8000” of measurement APL 201b.
  • the node EID “dtn: // server” is assigned to the bundle control unit 220.
  • the bundle control unit 120 receives data from the bundle control unit 120 of the terminals 1a to 1c through the socket having the port number “4556”.
  • the bundle control unit 120 transmits and receives data via the interface IF.
  • the interface IF is, for example, the communication port 24, and its IP address is “10.10.10.100”. Based on the above-described assignment of EID and port number, communication from the control APL 201a to the automatic operation APL 101a of the terminal 1c will be described below as an example.
  • FIG. 18 is a sequence diagram showing an example of communication from the control APL 201a to the automatic operation APL 101a. 18, the automatic operation APL 101a of the terminal 1c, the DTN proxy unit 19 including the proxy # 31, and the OS function unit 130, the control APL 201a of the server 2, the DTN proxy unit 29 including the proxy # 03, and the OS function unit 230. The operation of communication with is shown. This example shows communication when the terminal 1c is linked to the wireless access point AP # 1.
  • FIGS. 19 to 23 show the internal operations of the terminal 1c and the server 2 in accordance with the sequence of this example.
  • numbers in parentheses indicate port numbers.
  • FIG. 19 shows the state of the terminal 1c and the server 2 before the sequence starts.
  • the path control unit 224 of the server 2 generates a reception thread 220b for receiving data from the DTN proxy unit 19 of the terminal 1c in the bundle control unit 120.
  • the reception thread 220b corresponds to the socket having the port number “4556”.
  • the route control unit 124 of the terminal 1c generates a reception thread 120b for receiving data from the DTN proxy unit 29 of the server 2 in the bundle control unit 220.
  • the reception thread 120b corresponds to the socket having the port number “4556”.
  • the node EID “dtn: // mobile3” of the terminal 1c is set as the destination EID, and “variable” is set as the next hop type. Further, since the IP address of the terminal 1c has not been determined, the next hop address is not set. Note that the port number of the DTN route TBL 223 is omitted. In addition, the gateway address “10.10.10.256” is set as the transmission destination gateway (GW) in the IP route TBL231.
  • the node EID “dtn: // server” of the server 2 is set as the destination EID, and “fixed” is set as the next hop type. Further, the IP address “10.10.10.100” of the server 2 is set as the next hop address.
  • the server 2 activates the proxy # 03 corresponding to the control APL 201a having the automatic operation APL 101a of the terminal 1c as a communication destination.
  • Proxy # 03 opens a socket with the port number “9003” and waits for communication from the control APL 201a.
  • the control APL 201a opens the socket with the port number “9000” and transmits data.
  • the terminal 1c activates the proxy # 31 corresponding to the automatic operation APL 101a.
  • the DTN proxy unit 19 of the terminal 1c monitors the OS function unit 130 in order to detect the IP address assignment (reference S1).
  • the control APL 201a of the server 2 starts a session with the automatic operation APL 101a
  • the control APL 201a opens a socket for the DTN proxy unit 29 (reference numeral R1).
  • This socket corresponds to the socket SC6 in FIG. 10, and the communication destination is the IP address “10.10.10.100” and the port number “9003” of the proxy # 03.
  • the control APL 201a transmits data from the socket to the DTN proxy unit 29 (reference R2). At this time, since the IP address of the destination terminal 1c is not set in the DTN route TBL 223, the transmitted data is stored in the bundle buffer 122 (reference R3). Next, the control APL 201a closes the socket (reference numeral R4).
  • the DTN proxy unit 29 notifies the control APL 201a of the establishment of a session (reference R5). That is, when the control APL 201a is requested to communicate with the automatic driving APL 101a, the DTN proxy unit 29 notifies the control APL 201a of the establishment of a session.
  • FIG. 20 shows operations of reference numerals S1, R1, and R2 in FIG.
  • the control APL 201 a transmits data (that is, a speed instruction) to the proxy # 03, and the proxy # 03 converts the data into a proxy message and transmits the proxy message to the bundle control unit 220.
  • the bundle control unit 220 obtains the node EID “dtn: // mobile3” from the destination application EID “dtn: // mobile3 / navi”, and searches the DTN route TBL123 based on the node EID “dtn: // mobile3”. .
  • the IP address corresponding to the communication destination terminal 1c is not set in the next hop address of the DTN route TBL123. For this reason, the bundle control unit 220 generates a bundle from the proxy message, but stores the bundle in the bundle buffer 222 because the destination is unknown (reference Y1). In the terminal 1c, the path control unit 124 monitors the OS function unit 130 (reference numeral Y2).
  • the OS function unit 130 establishes a link with the wireless access point AP # 1 (reference S2).
  • the OS function unit 130 communicates with the wireless access point AP # 1 by DHCP (reference S3), and the IP address “10.10.10.105” is assigned to the terminal 1c (reference S4).
  • the DTN proxy unit 19 acquires an IP address from the OS function unit 130 (reference S5).
  • the DTN proxy unit 19 opens a socket to the DTN proxy unit 29 that is a communication destination (reference S6).
  • This socket corresponds to the socket SC3 in FIG. 10, and the communication destination is the IP address “10.10.10.100” and the port number “4556” of the bundle control unit 220.
  • the DTN proxy unit 19 generates an address notification including the IP address “10.10.10.105” and the node EID “dtn: // mobile3”, and transmits it to the DTN proxy unit 29 of the server 2 (reference S7). That is, the DTN proxy unit 19 notifies the DTN proxy unit 29 of the server 2 of the IP address of the terminal 1c in the wireless LAN # 1 after switching.
  • the IP address is an example of identification information in the wireless LAN # 1.
  • FIG. 24 is a diagram showing an example of address notification.
  • the address notification includes an IP header, a TCP header, bundle data, and a payload.
  • the IP header includes a source IP address “10.10.10.105” and a destination IP address “10.10.10.100”.
  • the TCP header includes an arbitrary transmission source port number and a destination port number “4556”.
  • the bundle data includes the node EID “dtn: // mobile3” of the terminal 1c as the transmission source EID, and the EID “dtn: // server / routeManager” of the route control unit 224 of the server 2 is specified as the destination EID.
  • the EID of the route control unit 224 is set in the initial setting file 217, for example.
  • the payload includes, for example, “registration” or “remove” as the message type.
  • the DTN proxy unit 29 acquires the IP address from the address notification and sets it in the DTN route TBL 223 so as to correspond to the node EID in the address notification (reference R6). . More specifically, the route control unit 224 sets the source IP address of the address notification in the DTN route TBL 223 so as to correspond to the destination EID of the address notification.
  • FIG. 21 shows operations of symbols S5 to S7 and R6 in FIG.
  • the route control unit 124 of the terminal 1c sets the gateway address “10.10.10.128” corresponding to the IP address in the IP route TBL 131 so as to correspond to the IP address “10.10.10.100” of the server 2 ( Reference Y3).
  • the path control unit 124 generates a transmission thread 120a with the server 2 as a communication destination for the bundle control unit 120 (reference Y4), and opens a socket for transmitting data to the reception thread of the server 2. (Code Y5).
  • a communication path from the automatic driving APL 101a to the control APL 201a is generated so as to correspond to the session established between the automatic driving APL 101a and the control APL 201a.
  • the path control unit 124 generates an address notification and transmits it from the transmission thread 120a to the path control unit 224 of the server 2 (reference numeral Y6).
  • the address notification is output from the reception thread 220b to the route control unit 224.
  • the path control unit 224 of the server 2 sets the IP address of the terminal 1c to the DTN path TBL 223 (reference numeral Y7).
  • the path control unit 224 generates a transmission thread 220a having the terminal 1c as a communication destination for the bundle control unit 220 (reference Y8).
  • the DTN proxy unit 29 opens a socket for the DTN proxy unit 19 that is a communication destination (reference R7).
  • This socket corresponds to the socket SC4 in FIG. 10, and the communication destination is the IP address “10.10.10.105” and the port number “4556” of the bundle control unit 120.
  • the route control unit 224 generates a communication route based on the IP address notified from the DTN proxy unit 19 of the terminal 1c so as to correspond to the session established between the automatic operation APL 101a and the control APL 201a. Therefore, the control APL 201a can specify the terminal 1c as a communication destination by the IP address.
  • the DTN proxy unit 29 generates an address notification including the IP address “10.10.10.100” and the node EID “dtn: // server” and transmits it to the DTN proxy unit 19 of the terminal 1c (reference R8).
  • the DTN proxy unit 29 reads the bundle data from the bundle buffer 222 and transmits it to the DTN proxy unit 19 of the terminal 1c (reference R9).
  • the DTN proxy unit 19 of the terminal 1c opens a socket for the automatic operation APL 101a of the communication destination (reference S8). This socket corresponds to the socket SC2 in FIG.
  • the DTN proxy unit 19 transmits data from the socket to the automatic operation APL 101a (reference S9), and closes the socket (reference S10).
  • the DTN proxy unit 19 of the terminal 1c establishes a session with the automatic operation APL 101a in accordance with the address notification from the DTN proxy unit 29 of the server 2 after switching the wireless LAN to which the terminal 1c is connected. Further, the DTN proxy unit 29 of the server 2 notifies the control APL 201a that the session is established when the control APL 201a is requested to communicate with the automatic operation APL 101a. For this reason, the DTN proxy unit 19 of the terminal 1c can relay the communication from the control APL 201a to the automatic operation APL 101a to the DTN proxy unit 29 of the server 2 in accordance with the switching of the wireless LAN.
  • FIG. 22 shows operations of symbols S8 to S10 and R7 to R9 in FIG.
  • the path control unit 224 of the server 2 opens a socket whose communication destination is the reception thread 120b of the terminal 1c (reference numeral Y9).
  • the route control unit 224 generates an address notification and transmits it from the transmission thread 220a to the route control unit 124 of the terminal 1c (reference Y10).
  • the bundle control unit 220 reads the bundle from the bundle buffer 222 and transmits it from the transmission thread 220a to the terminal 1c (reference Y11).
  • the bundle control unit 120 of the terminal 1c converts the bundle into a proxy message and outputs it to the proxy # 31.
  • Proxy # 31 opens a socket for automatic operation APL 101a, and transmits proxy message data from the socket to automatic operation APL 101a.
  • the DTN proxy unit 19 detects a link break by the OS function unit 130 (reference S11). Next, the DTN proxy unit 19 monitors the OS function unit 130 again in preparation for a link with another wireless access point AP (reference S12). Thereafter, the sequence of this example is repeated.
  • the DTN proxy unit 29 of the server 2 detects the disconnection state of the communication with the terminal 1c by the OS function unit 230 (reference R10). Next, the DTN proxy unit 29 deletes the setting based on the address notification of the terminal 1c from the DTN route TBL223 (reference R11).
  • FIG. 23 shows operations of symbols S11 and R11 in FIG.
  • the route control unit 124 deletes the gateway address setting from the IP route TBL 131 (reference numeral Y12). Further, the path control unit 124 deletes the transmission thread 120a of the bundle control unit 120 (reference Y13).
  • the path control unit 224 deletes the IP address of the terminal 1c from the DTN path TBL 223 (reference numeral Y14). Further, the path control unit 224 deletes the transmission thread 220a of the bundle control unit 220 (reference Y14). Thereby, the terminal 1c and the server 2 return to the initial state shown in FIG.
  • the DTN proxy unit 29 of the server 2 relays communication from the control APL 201a to the automatic operation APL 101a, and the DTN proxy unit 19 of the terminal 1c performs communication relayed from the DTN proxy unit 29 of the server 2. Transfer to automatic operation APL 101a.
  • Each DTN proxy part 19 and 29 produces
  • the DTN proxy unit 19 when the DTN proxy unit 19 detects an IP address assignment, the DTN proxy unit 19 sets the IP route TBL 131 and opens a socket for the DTN proxy unit 29 of the server 2, and sends the IP address to the DTN proxy by address notification. Notify unit 29.
  • the DTN proxy unit 29 sets the IP address notified by the address notification in the DTN route TBL 223 and opens a socket for the DTN proxy unit 29 of the terminal 1c.
  • each DTN proxy unit 19, 29 maintains a session between the control APL 201a and the automatic driving APL 101a using the generated communication path in accordance with switching of the wireless LAN to which the terminal 1c is connected. More specifically, each of the DTN proxy units 19 and 29 generates a new communication path by IP address notification in the wireless LAN after switching even when the wireless LAN access point AP to which the terminal 1c is connected is switched. The session between the control APL 201a and the automatic operation APL 101a can be continued. Therefore, it is possible to continue communication between the control APL 201a and the automatic operation APL 101a in response to a change in the network connection environment of the terminal 1c.
  • the server 2 can know the IP address by receiving the address notification from the terminal 1c. Can be instructed.
  • 25 and 26 are sequence diagrams illustrating other examples of communication from the control APL 201a to the automatic operation APL 101a.
  • the terminal 1c links with the wireless access point AP # 1, and then links with another wireless access point AP # 2.
  • the wireless LAN to which the terminal 1c is connected is switched from the wireless LAN # 1 to the wireless LAN # 2.
  • FIG. 25 shows a sequence from when the terminal 1c is linked to the wireless access point AP # 1 until the link is disconnected.
  • operations common to those in FIG. 18 are denoted by the same reference numerals, and description thereof is omitted.
  • the DTN proxy unit 29 of the server 2 does not complete the transfer of the bundle data due to the disconnection of the link between the terminal 1c and the wireless access point AP # 1, and interrupts (reference numerals R9, R9 '). Further, the DTN proxy unit 19 of the terminal 1c keeps the socket for the automatic driving APL 101a open because the data reception is not completed.
  • FIG. 26 shows a sequence from when the terminal 1c is linked to another wireless access point AP # 2 until the link is disconnected.
  • the operations of reference numerals S21 to S27, S29 to S32, and R26 to R31 are the same as the operations of reference numerals S1 to S7, S9 to S12, and R6 to R11 of FIG. Omitted.
  • the DTN proxy unit 19 of the terminal 1c detects that the new IP address “20.20.20.210” is assigned to the terminal 1c by monitoring the OS function unit 130 (reference S21) (references S24 and S25).
  • the DTN proxy unit 19 sets an IP address in the IP route TBL 131, opens a socket in the DTN proxy unit 29 of the server 2 (reference S26), and transmits an address notification (reference S27).
  • the DTN proxy unit 29 of the server 2 When receiving the address notification, the DTN proxy unit 29 of the server 2 sets the new IP address “20.20.20.210” of the terminal 1c to the DTN route TBL 223 (reference R26).
  • the DTN proxy unit 29 opens a socket in the DTN proxy unit 19 of the terminal 1c (reference R27) and transmits an address notification (reference R28). Thereby, the DTN proxy units 19 and 29 generate a new communication path corresponding to the session between the control APL 201a and the automatic operation APL 101a.
  • the DTN proxy unit 29 retransmits the bundle data that failed to be transmitted due to the interruption of communication to the DTN proxy unit 19 of the terminal 1c (reference R29).
  • the DTN proxy unit 19 transmits data from the opened socket to the automatic operation APL 101a (reference S29), and closes the socket (reference S30).
  • the bundle protocol retransmission is performed for each bundle that has failed to be transmitted, so that the communication interrupted by the switching of the wireless LAN is completed.
  • each DTN proxy unit 19, 29 uses the communication path corresponding to the session between the control APL 201 a and the automatic operation APL 101 a to communicate from the control APL 201 a interrupted by the switching of the wireless LAN to the automatic operation APL 101 a. continue. Therefore, communication from the control APL 201a to the automatic operation APL 101a can be completed.
  • the DTN proxy unit 19 of the terminal 1c monitors the OS function unit 130 in order to detect the assignment of the IP address (reference S41).
  • the OS function unit 130 establishes a link with the wireless access point AP # 1 (reference S42).
  • the OS function unit 130 communicates with the wireless access point AP # 1 by DHCP (reference S43), and the IP address “10.10.10.105” is assigned to the terminal 1c (reference S44).
  • the DTN proxy unit 19 acquires an IP address from the OS function unit 130 (reference S45).
  • the DTN proxy unit 19 opens a socket to the DTN proxy unit 29 that is a communication destination (reference S46).
  • This socket corresponds to the socket SC3 in FIG. 10, and the communication destination is the IP address “10.10.10.100” and the port number “4556” of the bundle control unit 220.
  • the DTN proxy unit 19 generates an address notification including the IP address “10.10.10.105” and the node EID “dtn: // mobile3” and transmits it to the DTN proxy unit 29 of the server 2 (reference S47).
  • the DTN proxy unit 29 When receiving the address notification, acquires an IP address from the address notification and sets it in the DTN route TBL 223 so as to correspond to the node EID in the address notification (reference R41). More specifically, the route control unit 224 sets the source IP address of the address notification in the DTN route TBL 223 so as to correspond to the destination EID of the address notification.
  • the setting contents are as described with reference to FIG.
  • the DTN proxy unit 29 opens a socket with respect to the DTN proxy unit 19 that is a communication destination (reference R42). This socket corresponds to the socket SC4 in FIG. 10, and the communication destination is the IP address “10.10.10.105” and the port number “4556” of the bundle control unit 120. Next, the DTN proxy unit 29 generates an address notification including the IP address “10.10.10.100” and the node EID “dtn: // server” and transmits the notification to the DTN proxy unit 19 of the terminal 1c (reference R43).
  • the sensor APL 101b of the terminal 1c opens a socket for the DTN proxy unit 19 (reference S48).
  • This socket corresponds to the socket SC1 in FIG. 10, and the communication destination is the IP address “10.10.10.105” and the port number “8001” of the proxy # 12.
  • the sensor APL 101b transmits data from the socket to the DTN proxy unit 19 (reference S49).
  • the DTN proxy unit 19 transmits the bundle data to the DTN proxy unit 29 of the server 2 (reference R44).
  • the sensor APL 101b closes the socket when the data transmission is completed (reference S50). Further, the DTN proxy unit 19 notifies the sensor APL 101b of the establishment of a session (reference S51).
  • the DTN proxy unit 29 of the server 2 opens a socket for the communication destination measurement APL 201b (reference R45). This socket corresponds to the socket SC5 in FIG.
  • the DTN proxy unit 29 transmits data from the socket to the measurement APL 201b (reference R46), and closes the socket (reference R47).
  • the DTN proxy unit 19 detects a link break by the OS function unit 130 (reference S52). Next, the DTN proxy unit 19 monitors the OS function unit 130 again in preparation for a link with another wireless access point AP (reference S53). Thereafter, the sequence of this example is repeated. In this way, communication from the sensor APL 101b to the measurement APL 201b is performed. Note that the above-described sequences are similarly executed for the other terminals 1a and 1b.
  • the above processing functions can be realized by a computer.
  • a program describing the processing contents of the functions that the processing apparatus should have is provided.
  • the program describing the processing contents can be recorded on a computer-readable recording medium (except for a carrier wave).
  • the program When the program is distributed, for example, it is sold in the form of a portable recording medium such as a DVD (Digital Versatile Disc) or CD-ROM (Compact Disc Read Only Memory) on which the program is recorded. It is also possible to store the program in a storage device of a server computer and transfer the program from the server computer to another computer via a network.
  • a portable recording medium such as a DVD (Digital Versatile Disc) or CD-ROM (Compact Disc Read Only Memory) on which the program is recorded. It is also possible to store the program in a storage device of a server computer and transfer the program from the server computer to another computer via a network.
  • the computer that executes the program stores, for example, the program recorded on the portable recording medium or the program transferred from the server computer in its own storage device. Then, the computer reads the program from its own storage device and executes processing according to the program. The computer can also read the program directly from the portable recording medium and execute processing according to the program. Further, each time the program is transferred from the server computer, the computer can sequentially execute processing according to the received program.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

通信システムは、第1アプリケーションが動作するサーバ装置と、第2アプリケーションが動作する端末装置とを含む通信システムにおいて、前記サーバ装置は、前記第1アプリケーションから前記第2アプリケーションへの通信を前記端末装置に中継する第1プロキシ部を有し、前記端末装置は、前記第1プロキシ部から中継された通信を前記第2アプリケーションに転送する第2プロキシ部を有し、前記第1プロキシ部及び前記第2プロキシ部は、前記第1アプリケーションと前記第2アプリケーションの間の通信により確立されたセッションに対応して通信経路を生成し、前記端末装置が接続されるネットワークの切り替えに応じ前記通信経路を用いて前記セッションを維持する。

Description

通信システム、端末装置、サーバ装置、通信プログラム、及び通信方法
 本件は、通信システム、端末装置、サーバ装置、通信プログラム、及び通信方法に関する。
 スマートフォンなどの端末装置は、例えばWi-Fi(Wireless Fidelity、登録商標、以下同様)やLTE(Long Term Evolution、登録商標、以下同様)などの無線ネットワークに接続されるが、移動に伴い接続先の無線ネットワークが切り替わる。このため、端末装置は、無線ネットワークの切り替えのたびに、DHCP(Dynamic Host Configuration Protocol)などにより新たなIP(Internet Protocol)アドレスが割り当てられる。
 通信を利用するアプリケーションのセッションは、TCP(Transmission Control Protocol)/IPなどの通信プロトコルのセッションとは別に管理されており、プッシュ型通信のようなサーバ装置から端末装置への一方的な通信は、端末装置のIPアドレスが変更されると途絶する。
 セッションに関し、例えば特許文献1には、無線端末において、サーバとの無線リンクが切断状態であるとき、バッファからアプリケーションレイヤへのデータパケットの出力を遅延させることにより、アプリケーションレイヤがセッションの接続状態を認識する時間を延ばす点が記載されている。
特開2011-217198号公報
 しかし、特許文献1に開示された技術では、上記のようなネットワーク接続環境の変化に対応して通信を継続することはできない。
 そこで本件は、ネットワーク接続環境の変化に対応して通信を継続することができる通信システム、端末装置、サーバ装置、通信プログラム、及び通信方法を提供することを目的とする。
 1つの態様では、通信システムは、第1アプリケーションが動作するサーバ装置と、第2アプリケーションが動作する端末装置とを含む通信システムにおいて、前記サーバ装置は、前記第1アプリケーションから前記第2アプリケーションへの通信を前記端末装置に中継する第1プロキシ部を有し、前記端末装置は、前記第1プロキシ部から中継された通信を前記第2アプリケーションに転送する第2プロキシ部を有し、前記第1プロキシ部及び前記第2プロキシ部は、前記第1アプリケーションと前記第2アプリケーションの間の通信により確立されたセッションに対応して通信経路を生成し、前記端末装置が接続されるネットワークの切り替えに応じ前記通信経路を用いて前記セッションを維持する。
 1つの側面として、ネットワーク接続環境の変化に対応して通信を継続することができる。
通信システムの一例を示す構成図である。 端末のネットワーク接続環境の変化の一例を示す図である。 端末の一例を示す構成図である。 サーバの一例を示す構成図である。 端末及びサーバの各機能構成の一例を示す構成図である。 バンドルのフォーマットを示す図である。 DTN(Delay, Disruption Tolerant Networking)経路テーブルの一例を示す図である。 コネクションリスト、フィルタテーブル、及びバンドルバッファの一例を示す図である。 初期設定ファイルの一例を示す図である。 プロトコル変換の一例を示す図である。 アプリケーションのデータ送信処理の一例を示すフローチャートである。 バンドルの送信処理の一例を示すフローチャートである。 バンドルの受信処理の一例を示すフローチャートである。 端末の経路制御部の処理の一例を示すフローチャートである。 サーバの経路制御部の処理の一例を示すフローチャートである。 バンドルプロトコルの適用の切り替え処理の一例を示すフローチャートである。 EID(End Point ID)の割り当ての一例を示す図である。 制御アプリケーションから自動運転アプリケーションへの通信の一例を示すシーケンス図である。 端末及びサーバの内部の動作を示す図(その1)である。 端末及びサーバの内部の動作を示す図(その2)である。 端末及びサーバの内部の動作を示す図(その3)である。 端末及びサーバの内部の動作を示す図(その4)である。 端末及びサーバの内部の動作を示す図(その5)である。 アドレス通知の一例を示す図である。 制御アプリケーションから自動運転アプリケーションへの通信の他例を示すシーケンス図(その1)である。 制御アプリケーションから自動運転アプリケーションへの通信の他例を示すシーケンス図(その2)である。 センサアプリケーションから計測アプリケーションに通信する時の端末及びサーバの内部の動作を示す図である。
 図1は、通信システムの一例を示す構成図である。本実施例では、サーバ2と複数の端末1a~1cを含む通信システムの適用例として、交通情報のモビリティIoT(Internet Of Things)サービスのシステムを挙げる。
 サーバ2は、サーバ装置の一例であり、インターネットNWに接続されている。サーバ装置2では、各自動車#1~#3の速度を計測するための計測アプリケーション(計測APL)201bと、その速度に基づき各自動車#1~#3の速度を制御するための制御アプリケーション(制御APL)201aが動作している。制御APL201aは、サーバ2で動作する第1アプリケーションの一例である。
 端末1a~1cは、端末装置の一例であり、自動車#1~#3にそれぞれ搭載されている。端末1a~1cは、インターネットNWに接続された無線アクセスポイントAPとリンクすることによりインターネットNWを介しサーバ2と通信する。なお、端末1a~1cとしては、スマートフォンなどの無線通信用の端末装置が挙げられるが、これに限定されない。また、無線アクセスポイントAPは、Wi-Fiに通信回線に対応するものであってもよいし、LTEや3Gの通信回線に対応するものであってもよい。
 端末1a~1cでは、自動車#1~#3に搭載されたセンサ装置91により自動車#1~#3の速度を検出するためのセンサアプリケーション(センサAPL)101bと、自動車#1~#3に搭載された駆動装置90をサーバ2からの指示により制御するための自動運転アプリケーション(自動運転APL)101aが動作する。センサ装置91は、例えば自動車#1~#3の車軸の回転数を検出するセンサであり、駆動装置90は、例えばアクセルやブレーキにより自動車#1~#3の速度などを自動制御する装置である。なお、自動運転APL101aは、端末1で動作する第2アプリケーションの一例である。
 センサAPL101bは、センサ装置91により自動車#1~#3の速度を検出して、インターネットNWを介しサーバ2に通知する。計測APL201bは、センサAPL101bからの通知により各自動車#1~#3の速度を計測する。
 制御APL201aは、計測APL201bから各自動車#1~#3の速度を取得して、自動車#1~#3の走行する道路の状況を分析する。制御APL201aは、その分析結果に基づき各自動車#1~#3の端末1a~1cに速度を指示する。自動運転APL101aは、制御APL201aからの指示に応じた速度となるように駆動装置90を制御する。
 このため、計測APL201bはセンサAPL101bとセッションを確立し、制御APL201aは自動運転APL101aとセッションを確立する。以下に速度制御の例を挙げて説明する。
 各自動車#1~#3は同じ道路を図1の紙面左方向(「進行方向」参照)に向かい走行していると仮定する。自動車#1の端末1aのセンサAPL101bは、自動車#1の速度20(km/h)を検出してサーバ2に通知する。また、自動車#2の端末1bのセンサAPL101bは、自動車#2の速度60(km/h)を検出してサーバ2に通知する。
 サーバ2の計測APL201bは、自動車#1の速度と自動車#2の速度を端末1a,1bから受信すると、制御APL201aに出力する。制御APL201aは、自動車#1の速度と自動車#2の速度などを分析し、その分析結果から自動車#3の端末1cに対し速度40(km/h)に減速するように指示する。
 自動車#3の端末1cの自動運転APL101aは、制御APL201aの指示に従い、自動車#3の速度が40(km/h)となるように駆動装置90を制御する。これにより、自動車#3に対し道路状況に応じた最適な自動運転が行われる。
 しかし、各端末1a~1cは、自動車#1~#3の走行のため、常に無線アクセスポイントにリンクすることがでるわけではない。すなわち、各端末1a~1cは、自動車#1~#3が無線アクセスポイントの無線LAN(Local Area Network)の圏外に入ると、無線アクセスポイントAPとのリンクが切断される。このため、サーバ2と端末1a~1cの通信は断続的となる。
 また、各端末1a~1cは、自動車#1~#3が他の無線アクセスポイントの無線LANの圏内に入ると、再び無線アクセスポイントAPとリンクすることができるが、DHCPにより新たなIPアドレスが割り当てられる。このため、サーバ2は、端末1a~1cからの通信を受けるまで端末1a~1cのIPアドレスを知ることができないので、例えば、プッシュ型通信により端末1a~1cに対し一方的に速度を指示することができない。以下に端末1cを例に挙げて説明する。
 図2は、端末1cのネットワーク接続環境の変化の一例を示す図である。図2において、図1と共通する構成には同一の符号を付し、その説明を省略する。
 時刻t0において、自動車#3は無線アクセスポイントAP#1の無線LAN#1の圏内を走行している。このとき、端末1cは、無線アクセスポイントAP#1とリンクして無線LAN#1に接続され、無線アクセスポイントAP#1とのDHCPの通信によりIPアドレス「10.10.10.105」が割り当てられる。
 端末1cは、無線アクセスポイントAP#1を介し自動車#3の速度をサーバ2に通知する。サーバ2は、端末1cから速度の通知を受信することにより、送信元のIPアドレス「10.10.10.105」を検出する。このため、サーバ2は、IPアドレス「10.10.10.105」を宛先として、端末1cに速度を指示することができる。
 次に、時刻t1において自動車#3は無線LAN#1の圏外に出る。このとき、端末1cは、何れの無線アクセスポイントAPにもリンクしていないため、サーバ2は端末1cに速度を指示することができない。なお、端末1cは、リンク断の状態であるため、IPアドレスを有していない。
 次に、時刻t2において自動車#3は無線アクセスポイントAP#2の無線LAN#2の圏内に入る。このとき、端末1cは、無線アクセスポイントAP#2とリンクして無線LAN#2に接続され、無線アクセスポイントAP#2とのDHCPの通信によりIPアドレス「20.20.20.210」が割り当てられる。これにより、端末1cのIPアドレスが変更される。なお、無線LAN#1,#2は、端末1cが接続されるネットワークの一例である。
 サーバ2は、端末1cの新しいIPアドレス「20.20.20.210」を知らないため、端末1cに速度を指示することができない。もっとも、端末1cがサーバ2に再び速度を通知すれば、サーバ2は端末1cのIPアドレス「20.20.20.210」を知ることができる。しかし、サーバ2は、端末1cからの通知を受信した後に速度の指示を行うのでは、図1を参照して述べたような制御を実現することができず、有効にシステムを機能させることができない。
 そこで、サーバ2及び端末1a~1cは、各アプリケーション101a,101b,201a,201bが途絶耐性ネットワークの技術に基づき通信するための構成を備える。また、端末1a~1cは、IPアドレスの割り当てのたびにサーバ2にIPアドレスを通知する。これにより、サーバ2と端末1a~1cは、端末1a~1cのネットワーク接続環境の変化により通信が断続的となる環境でも円滑な通信を行うことができる。以下に端末1a~1cとサーバ2の構成を述べる。
 図3は端末1a~1cの一例を示す構成図である。なお、以下の説明では、端末1a~1cを代表して「端末1」と表記する。
 端末1は、CPU(Central Processing Unit)10、ROM(Read Only Memory)11、RAM(Random Access Memory)12、HDD(Hard Disk Drive)やメモリなどの記憶部13、無線LANモジュール14、入力部15、及び表示部16を有する。CPU10は、互いに信号の入出力ができるように、ROM11、RAM12、記憶部13、無線LANモジュール14、入力部15、及び表示部16と、バス17を介して接続されている。
 ROM11は、CPU10を駆動するプログラムが格納されている。ROM11内のプログラムには、OS(Operating System)や実施例の通信方法を実行する通信プログラムが含まれる。この通信方法は、後述するように、サーバ2で動作するアプリケーション201a,201bと、端末1で動作するアプリケーション101a,101bとの間の通信を処理するものである。
 RAM12は、CPU10のワーキングメモリとして機能する。記憶部13には、プログラムの実行に用いられる各種の情報が記憶されている。無線LANモジュール14は、無線アクセスポイントAPとリンクすることによりインターネットNW上のサーバ2と通信する。
 入力部15は、端末1に情報を入力する手段である。入力部15としては、例えばキーボード、マウス、及びタッチパネルなどが挙げられる。入力部15は、入力された情報を、バス17を介しCPU10に出力する。
 表示部16は、端末1の情報を出力する手段である。表示部16としては、例えばディスプレイ、タッチパネル、及びプリンタなどが挙げられる。表示部16は、CPU10からバス17を介して情報を取得して表示する。表示部16には、例えば端末1のアプリケーション101a,101bの通信の状況及び結果が表示される。
 CPU10は、ROM11からプログラムを読み込むと、通信方法を実行するための各種の機能が形成される。CPU10は、プログラムを実行するコンピュータの一例である。なお、端末1の機能構成については後述する。
 図4は、サーバ2の一例を示す構成図である。サーバ2は、CPU20、ROM21、RAM22、HDD23、及び通信ポート24を有する。CPU20は、互いに信号の入出力ができるように、ROM21、RAM22、HDD23、及び通信ポート24と、バス27を介して接続されている。
 ROM21は、CPU20を駆動するプログラムが格納されている。ROM21内のプログラムには、OSや実施例の通信方法を実行する通信プログラムが含まれる。この通信方法は、後述するように、サーバ2で動作するアプリケーション201a,201bと、端末1で動作するアプリケーション101a,101bとの間の通信を処理するものである。RAM22は、CPU20のワーキングメモリとして機能する。通信ポート24は、例えばNIC(Network Interface Card)であり、インターネットNWを介し端末1と通信する。
 CPU20は、ROM21からプログラムを読み込むと、通信方法を実行するための各種の機能が形成される。CPU20は、プログラムを実行するコンピュータの一例である。
 図5は、端末1及びサーバ2の各機能構成の一例を示す構成図である。端末1及びサーバ2は、一例としてインターネットNWを介して接続されている。
 端末1は、アプリケーション機能部100と、DTNプロキシ部19と、OS機能部130と、IP経路テーブル(IP経路TBL)131とを有する。DTNプロキシ部19は、プロキシプロトコル機能部110と、バンドル制御部120と、状態通知部121と、バンドルバッファ122と、DTN経路テーブル(DTN経路TBL)123と、経路制御部124とを有する。なお、DTNプロキシ部19は第1プロキシ部の一例である。
 アプリケーション機能部100は、アプリケーション(APLc)101と、TCP処理部102とを有する。アプリケーション101は、端末1a~1cのセンサAPL101bと自動運転APL101aに該当する。
 プロキシプロトコル機能部110は、プロキシ制御部111と、コネクション監視部112と、アドレス変換部113と、送受信制御部114と、応答制御部115と、コネクションリスト116と、初期設定ファイル117と、フィルタテーブル(フィルタTBL)118とを有する。プロキシプロトコル機能部110は、アプリケーション101が機能するアプリケーションレイヤと、バンドル制御部120が機能するバンドルレイヤとの間を仲介することにより、バンドル制御部120に対してレイヤ間のトランスポートプロトコルの違いを隠蔽する。プロキシプロトコル機能部110は、自動運転APL101aとセンサAPL101bのそれぞれに対して個別に生成される。
 アプリケーション101、TCP処理部102、プロキシ制御部111、コネクション監視部112、アドレス変換部113、送受信制御部114、応答制御部115、バンドル制御部120、状態通知部121、経路制御部124、及びOS機能部130は、端末1のCPU10に形成される機能である。また、コネクションリスト116、初期設定ファイル117と、フィルタTBL118、バンドルバッファ122、DTN経路TBL123、及びIP経路TBL131は、記憶部13に記憶されている。
 一方、サーバ2は、アプリケーション機能部200と、DTNプロキシ部29と、OS機能部230と、IP経路TBL231とを有する。DTNプロキシ部29は、プロキシプロトコル機能部210と、バンドル制御部220と、状態通知部221と、バンドルバッファ222と、DTN経路TBL223と、経路制御部224とを有する。なお、DTNプロキシ部29は第2プロキシ部の一例である。
 アプリケーション機能部200は、アプリケーション(APLs)201と、TCP処理部202とを有する。アプリケーション201は、制御APL201aと計測APL201bに該当する。
 プロキシプロトコル機能部210は、プロキシ制御部211と、コネクション監視部212と、アドレス変換部213と、送受信制御部214と、応答制御部215と、コネクションリスト216と、初期設定ファイル217と、フィルタTBL218とを有する。プロキシプロトコル機能部210は、アプリケーション201が機能するアプリケーションレイヤと、バンドル制御部220が機能するバンドルレイヤとの間を仲介することにより、バンドル制御部220に対してレイヤ間のトランスポートプロトコルの違いを隠蔽する。プロキシプロトコル機能部210は、制御APL201aの通信先の各端末1a~1c及び計測APL201bに対して個別に生成される。
 アプリケーション201、TCP処理部202、プロキシ制御部211、コネクション監視部212、アドレス変換部213、送受信制御部214、応答制御部215、バンドル制御部220、状態通知部221、経路制御部224、及びOS機能部230は、サーバ2のCPU20に形成される機能である。また、コネクションリスト216と、初期設定ファイル217と、フィルタTBL218、バンドルバッファ222、DTN経路TBL223、及びIP経路TBL231は、HDD23に記憶されている。
 アプリケーション201とアプリケーション101は、TCP処理部102,202により通信することにより連携して所定の機能を提供する。アプリケーション201とアプリケーション101の機能としては、例えば図1を参照して述べた機能などが挙げられるが限定はない。
 TCP処理部102,202は、例えばOSのドライバなどにより提供されるTCP/IPの通信機能を備える。端末1のTCP処理部102は、無線LANモジュール14を制御してパケットの送受信を行い、サーバ2のTCP処理部202は、通信ポート24を制御してパケットの送受信を行う。
 アプリケーション201とアプリケーション101は、インターネットNWを介し、直接的にTCP/IPに基づく通信を行う。しかし、通信が断続的となる環境においては、バンドル制御部120,220が、TCP/IPに基づく通信に代えて、DTNのバンドルプロトコルに基づく通信を行う。バンドル制御部120,220は、通信が途絶した場合、アプリケーション101,201が送信するデータをバンドルして一時的にバンドルバッファ122,222に格納しておき、通信が可能なるとバンドルバッファ122,222からバンドルデータを読み出して通信先(サーバ2または端末1)に送信する。
 バンドル制御部120は、アプリケーション101から通信先への通信を、その通信先とのコネクションの状態に応じて、TCP/IPに基づく通信からDTNのバンドルプロトコルに基づく通信に切り替えて行う。このとき、コネクション監視部112は、通信先とのコネクションの状態を監視し、コネクションの状態に応じてアドレス変換部113を制御する。
 これにより、コネクション監視部112は、アプリケーション101の通信先との通信をTCP/IPによる通信からDTNのバンドルプロトコルによる通信に切り替える。したがって、アプリケーション101の通信が、TCP処理部102によるTCP/IPに基づく通信からバンドル制御部120によるバンドルプロトコルに基づく通信に切り替えられる。
 また、バンドル制御部220は、アプリケーション201から通信先への通信を、その通信先とのコネクションの状態に応じて、TCP/IPに基づく通信からDTNのバンドルプロトコルに基づく通信に切り替えて行う。このとき、コネクション監視部212は、通信先とのコネクションの状態を監視し、コネクションの状態に応じて、アドレス変換部213を制御する。
 これにより、コネクション監視部212は、アプリケーション201の通信先との通信をTCP/IPによる通信からDTNのバンドルプロトコルによる通信に切り替える。したがって、アプリケーション201の通信が、TCP処理部202によるTCP/IPに基づく通信からバンドル制御部220によるバンドルプロトコルに基づく通信に切り替えられる。
 バンドル制御部120,220は、例えば、RFC(Request For Comments)5050の規定に従い、バンドルプロトコルに基づく通信を行う。バンドル制御部120,220は、アプリケーション101,201の送信対象データを、バンドルと呼ばれるデータメッセージのペイロード部分に収容して送信する。
 図6には、バンドルのフォーマットが示されている。バンドルは、プライマリバンドルブロック及びバンドルペイロードブロックを含む。プライマリバンドルブロックには、送信元や宛先に関する情報、及び、バンドルの削除までの時間を示すライフタイム(「Life time」)などが含まれる。バンドルペイロードブロックには、データを収容するペイロード(「Bundle Payload」)が含まれる。なお、バンドル内の各項目についてはRFC5050に規定されている。
 再び図5を参照すると、バンドル制御部120,220は、バンドルを送信するとき、DTN経路TBL123,223を参照して、バンドルプロトコルにおける宛先を示すEIDに対応するTCP/IP上の宛先IPアドレス及びTCPポート番号(以下、「ポート番号」と表記)を取得する。
 図7は、DTN経路TBL123,223の一例を示す図である。DTN経路TBL123,223には、宛先EID、宛先のIPアドレスの種別である次ホップ種別、宛先のIPアドレスである次ホップアドレス、及び宛先のポート番号が登録されている。
 端末1のDTN経路TBL123において、宛先EIDには、サーバ2のEIDである「dtn://server」が登録されている。また、サーバ2のIPアドレスは固定であるため、次ホップ種別には「固定」が登録されている。また、初期設定ファイル117に基づき、次ホップアドレスにはサーバ2のIPアドレス「10.10.10.100」が登録され、ポート番号には「4556」が登録されている。
 一方、サーバ2のDTN経路TBL223において、宛先EIDには、各端末1(つまり端末1a~1c)のEIDである「dtn://mobile1」、「dtn://mobile2」、及び「dtn://mobile3」が登録されている。また、各端末1のIPアドレスは、端末1の接続先の無線LANに応じて可変であるため、次ホップ種別には「可変」が登録され、次ホップアドレスは未登録状態(「-」)となっている。次ホップアドレスは、後述するように、端末1から受信されたアドレス通知に基づき登録される。また、初期設定ファイル217に基づき、ポート番号には「4556」が登録されている。
 再び図5を参照すると、バンドル制御部120,220は、その宛先とのコネクション、つまり端末1とサーバ2の間のコネクションが切断されているとき、バンドルバッファ122,222にバンドルを格納しておき、コネクションが再接続されたとき、バンドルバッファ122,222からバンドルを読み出して送信する。これにより、DTNに基づく通信が行われる。
 図8には、バンドルバッファ122,222の一例が示されている。バンドルバッファ122,222はバンドルの格納領域である。バンドルは、バンドルを識別するバンドルIDとともにバンドルバッファ122,222に格納される。なお、バンドル制御部120,220は、バンドルの送信時だけでなく、バンドルの受信時もバンドルをバンドルバッファ122,222に格納する。
 再び図5を参照すると、バンドル制御部120,220は、OSに含まれるOS機能部130,230によりバンドルを送受信する。端末1のOS機能部130は、無線LANモジュール14による通信処理機能を有し、無線アクセスポイントAPとのリンク及び通信を処理する。また、サーバ2のOS機能部230は、通信ポート24による通信処理機能を有し、通信ポート24の接続先のデバイスとのリンク及び通信を処理する。OS機能部130,230は、IP経路TBL131,231から通信先のIPアドレスに応じたゲートウェイアドレスを検索し、そのゲートウェイにアクセスすることで通信を行う。
 端末1の経路制御部124は、アプリケーション101とアプリケーション201の間の通信により確立されたセッションに対応する通信経路を生成する。より具体的には、経路制御部124は、OS機能部130を監視し、監視の結果、DHCPによる新たなIPアドレスの割り当てを検出した場合、IPアドレスに応じたゲートウェイアドレスをIP経路TBL131に設定する。また、経路制御部124は、そのIPアドレスを含むアドレス通知を生成してバンドル制御部120経由でサーバ2の経路制御部224に送信する。このとき、経路制御部124は、送信に先立って、バンドル制御部120からサーバ2のバンドル制御部220に通信するためのソケットをオープンする。
 サーバ2の経路制御部224は、アプリケーション101とアプリケーション201の間の通信により確立されたセッションに対応する通信経路を生成する。より具体的には、経路制御部224は、端末1の経路制御部124からアドレス通知を受信すると、アドレス通知から端末1のIPアドレスを取得してDTN経路TBL223の次ホップアドレスに登録する。また、経路制御部224は、バンドル制御部220から端末1のバンドル制御部120に通信するためのソケットをオープンし、経路制御部124に対する応答として、サーバ2のIPアドレスを含むアドレス通知を生成して送信する。
 これにより、端末1の接続先の無線LANが切り替わった場合でも、アプリケーション101とアプリケーション201の間の通信が可能となり、アプリケーション101とアプリケーション201の間のセッションが維持される。
 プロキシプロトコル機能部110,210は、アプリケーション101とアプリケーション201の間の通信を、TCPのソケット通信からバンドルプロトコルの通信に変換する。このとき、プロキシプロトコル機能部110,210は、バンドル制御部120,220に対しバンドルAPI(Application Programing Interface)により設定及び制御を行うことにより、一般的なアプリケーションでもDTNを利用可能とする。以下にプロキシプロトコル機能部110,210の詳細を説明する。
 アドレス変換部113,213は、アプリケーション101,201の通信の宛先を送受信制御部114,214の宛先に変換する。例えば端末1において、アドレス変換部113は、サーバ2を宛先とするパケットの宛先IPアドレス及びポート番号を、送受信制御部114に設定されたTCPソケット(以下、「ソケット」と表記)の宛先IPアドレス及びポート番号に変換する。
 このため、プロキシプロトコル機能部110,210は、アプリケーション101,201から通信先に送信されるパケットのデータを受信することができる。なお、アドレス変換部113,213は、例えば、OSとしてWindows(登録商標、以下同様)が使用される場合、WFP(Windows Filtering Platform)により実現され、OSとしてLinux(登録商標)が使用される場合、「iptables」により実現される。
 送受信制御部114,214は、アプリケーション101,201のTCPのソケット通信を終端する。送受信制御部114,214は、装置内のローカルなループバックコネクションを確立する。
 端末1の送受信制御部114は、アプリケーション101からのソケットの接続(つまりソケットのオープン)を監視し、プロキシ制御部111からの指示に従い、サーバ2のアプリケーション201に対するセッションの確立と、指示されたソケットへのデータの送信を行う。また、サーバ2の送受信制御部214は、アプリケーション201からのソケットの接続を監視し、プロキシ制御部211からの指示に従い、端末1のアプリケーション101に対するセッションの確立と、指示されたソケットへのデータの送信を行う。送受信制御部114は、通信先とのセッションが確立をアプリケーション101,201に通知する。
 プロキシ制御部111,211は、送受信制御部114,214で受信したパケットのデータを、プロキシメッセージのペイロードに収容して、バンドルAPIによりバンドル制御部120,220に出力する。これにより、プロキシ制御部111,211からバンドル制御部120,220に対してバンドルの送信が要求される。
 プロキシ制御部111,211は、プロキシメッセージを、宛先に応じたコネクション番号により管理する。プロキシ制御部111,211は、送受信制御部114,214によりソケットがオープンされるたびに新規のコネクション番号をコネクションリスト116,216に登録する。
 図8には、コネクションリスト116,216の一例が示されている。コネクションリスト116,216には、コネクション番号、ソケットチャネルID、及び宛先EIDが対応付けられて登録されている。ソケットチャネルIDは、送受信制御部114,214のソケットの識別子である。
 プロキシ制御部111,211は、パケットの受信元のソケットのソケットチャネルIDに応じたコネクション番号をプロキシメッセージに付与してバンドル制御部120,220に出力する。また、プロキシ制御部111,211は、該当する宛先EIDへのバンドルの送信をバンドル制御部120,220に要求する。
 したがって、端末1のコネクションリスト116の宛先EIDには、サーバ2のEIDが登録され、サーバ2のコネクションリスト216の宛先EIDには、端末1のEIDが登録されている。また、プロキシ制御部111,211は、初期設定ファイル117,217を読み出すことにより、自装置のEIDや通信先のEIDなどの通信に必要な情報を取得する。
 図9は、初期設定ファイル117,217の一例を示す図である。本例では、自動運転APL101aに対応するプロキシ制御部111の初期設定ファイル117と、端末1aを通信先とする制御APL201aの初期設定ファイル217とが示されている。初期設定ファイル117,217には、ノードEID、アプリケーションEID、出力ポインタ、各種のポート番号、及び宛先EIDが登録されている。
 ノードEIDは、通信のノードを識別するEIDであり、IPアドレスに対応付けられる。端末1a~1cのノードEIDは、一例として、それぞれ、「dtn://mobile1」、「dtn://mobile2」、及び「dtn://mobile3」とする。また、サーバ2のノードEIDは、一例として、「dtn://server」とする。
 アプリケーションEIDは、アプリケーション101,201を識別するEIDであり、プロキシ制御部111,211に対応付けられる。例えば、端末1の自動運転APL101aのアプリケーションEIDは「dtn://mobile1/navi」であり、サーバ2の端末1aに対する制御APL201aのアプリケーションEIDは「dtn://server/navi/mobile1」である。
 出力ポインタは、バンドル制御部120,220が受信したバンドルの出力先のディレクトリを示す。端末1のポート番号は、バンドル制御部120がバンドルを送受信するためのソケットのポート番号であり、サーバ2のポート番号は、バンドル制御部220がバンドルを送受信するためのソケットに対応するポート番号である。また、プロキシのポート番号は、プロキシ制御部111,211がアプリケーション101,201とデータを送受信するためのソケットに対応するポート番号である。
 再び図5を参照すると、プロキシ制御部111,211は、バンドル制御部120,220からプロキシメッセージを受信する。プロキシ制御部111,211は、受信したプロキシメッセージのコネクション番号がコネクションリスト116,216に未登録である場合、送受信制御部114,214に新規のソケットのオープンを指示し、そのソケットによるセッションを開始する。
 また、プロキシ制御部111,211は、受信したプロキシメッセージにデータが収容されていない場合、そのコネクション番号に対応するソケットチャネルIDをコネクションリスト116から検索する。プロキシ制御部111,211は、通信が終了したと判定し、検索したソケットチャネルIDのソケットの削除を送受信制御部114,214に指示する。
 このように、ソケットとEIDは、コネクションリスト116により対応付けられて管理される。このため、ソケットを用いるTCP/IPの通信をバンドルプロトコルに基づき行うことが可能となる。
 また、バンドル制御部120,220は、プロキシ制御部111,211からのバンドルの送信要求に応じてバンドルを送信する。したがって、バンドル制御部120,220は、アプリケーション101,201から通信先への通信を途絶耐性ネットワークのプロトコルに基づいて行うことができる。
 応答制御部115,215は、アプリケーション101,201からの通信が応答を要する場合、その応答を生成してアプリケーション101,201に出力する。このため、コネクションの切断により通信先との通信が途絶した場合でも、アプリケーション101,201は、通信の途絶を知ることなく動作を行う。したがって、コネクションの再接続後に通信のやり直しを必要としない。
 例えば、端末1において、プロキシ制御部111がアプリケーション101の通信を行った場合、応答制御部115はその通信に対する応答をアプリケーション101に出力する。アプリケーション101からアプリケーション201に対してファイルを分割して転送の場合、端末1の応答制御部115は、アプリケーション201に代わり、応答として、アプリケーション101に対し次のファイルデータの送信を促す。
 つまり、応答制御部115,215は、アプリケーション101,201に通信の完了を通知する。このため、アプリケーション101,201は、バンドル制御部120,220のバンドルプロトコルに基づく通信の結果を知らず、通信が成功したと認識する。
 このため、状態通知部121,221は、通信の状態及び結果に関する通信情報を、例えば画面へのポップアップ表示やログによりユーザに通知する。より具体的には、端末1の状態通知部121は表示部16に通信情報を出力し、または通信情報が記録されたログファイルを記憶部13に書き込む。また、サーバ2の状態通知部221は、通信情報が記録されたログファイルをHDD23に書き込む。
 プロキシ制御部111,211は、通信の状態に応じた通知を状態通知部121,221に指示する。これにより、状態通知部121,221は、プロキシ制御部111,211が通信を失敗と判定した場合、ユーザに通信の失敗を通知する。
 コネクション監視部112,212は、バンドル制御部120,220のコネクションの状態を監視する。コネクション監視部112,212は、コネクションが切断された状態ではコネクションの接続を行い、接続に成功した場合、コネクション監視部112,212にバンドルバッファ122,222内の送信対象のバンドルの送信を指示する。
 また、コネクション監視部112,212は、コネクションの状態に応じて、アドレス変換部113,213に対し変換情報の設定及び削除を行う。コネクション監視部112,212は、フィルタTBL118,218に基づき変換情報を設定する。
 図8には、フィルタTBL118,218の一例が示されている。フィルタTBL118,218には、パケットのフィルタ条件、変換情報、及び設定状態が対応付けられて登録されている。フィルタ条件には、アドレス変換の対象のパケットの送信元及び宛先のIPアドレスやポート番号などが指定されている。変換情報には、フィルタ条件に合致するパケットの書き換え対象の部分及び書き換え後の値を示す。設定状態は、フィルタ条件及び変換情報の設定の有効または無効を示す。
 再び図5を参照すると、コネクション監視部112,212は、コネクションの状態に応じて、アドレス変換部113,213の変換情報の設定または削除を行う。このため、アプリケーション101,201の通信に自動的にバンドルプロトコルが適用される。
 このように、コネクション監視部112,212は、通信先とのコネクションの状態を検出し、コネクションの状態に応じて、アプリケーション101,201の通信に対するバンドルプロトコルの適用の可否を決定する。このため、バンドルプロトコルは、コネクションの状態に応じてアプリケーション101,201の通信に使用される。
 アプリケーション101,201は、通信が断続的となる場合、上記の構成によりTCP/IPをプロトコル変換することにより通信を行う。
 図10にはプロトコル変換の一例が示されている。図10には、図5に示された構成のうち、端末1のアプリケーション101、プロキシ制御部111、及びバンドル制御部120と、サーバ2のアプリケーション201、プロキシ制御部211、及びバンドル制御部220が示されている。
 アプリケーション101及びアプリケーション201の間では、IPアドレス及びポート番号によるTCP/IPの通信が行われる。端末1のアプリケーション101にはソケットSC1がオープンされ、サーバ2のアプリケーション201にはソケットSC6がオープンされる。このように、アプリケーション101及びアプリケーション201は、互いに通信してセッションを確立する。
 プロキシ制御部111,211の間では、コネクション番号によるプロキシ間プロトコルによる通信が行われる。プロキシ制御部111には、送受信制御部114によりアプリケーション201のソケットSC6に1対1で対応するソケットSC2がオープンされる。これにより、プロキシ制御部111はアプリケーション101とのセッションを確立する。
 また、プロキシ制御部211には、送受信制御部214によりアプリケーション101のソケットSC1に1対1で対応するソケットSC5がオープンされる。これにより、プロキシ制御部211はアプリケーション201とのセッションを確立する。
 アプリケーション101とプロキシ制御部111の間ではソケットSC1,SC2による通信が行われ、アプリケーション201とプロキシ制御部211の間ではソケットSC5,SC6による通信が行われる。このため、送受信制御部114,214は、アプリケーション101及びアプリケーション201の各ソケットSC1,SC6に合わせてソケットSC2,SC5のオープン及びクローズを行い、そのソケットSC2,SC5によるデータ送受信を行う。なお、各ソケットSC1,SC2,SC5,SC6はセッションの終了によりクローズされる。
 バンドル制御部120,220の間では、EIDによるバンドルプロトコルの通信が行われる。バンドル制御部120,220には、経路制御部124,224によりソケットSC3,SC4がそれぞれオープンされる。経路制御部124は、端末1に新たなIPアドレスが割り当てられた場合、バンドル制御部120にソケットSC3をオープンする。これにより、経路制御部124は、IPアドレスのアドレス通知をサーバ2の経路制御部224に送信する。
 また、経路制御部224は、アドレス通知を受信した場合、バンドル制御部220にソケットSC4をオープンする。これにより、経路制御部224は、IPアドレスのアドレス通知を端末1の経路制御部124に送信する。
 端末1のアプリケーション101からサーバ2のアプリケーション201への通信が行われる場合、符号D1で示されるように、端末1において、プロキシ制御部111は、初期設定ファイル117に基づきパケットのポート番号を宛先EIDに変換する。また、バンドル制御部120は、DTN経路TBL123に基づき宛先EIDを宛先IPアドレス及びポート番号に変換する。
 また、サーバ2において、バンドル制御部220は、宛先EIDを出力ポインタに変換し、プロキシ制御部211は、出力ポインタを宛先IPアドレス及びポート番号に変換する。このようにして、端末1のアプリケーション101からサーバ2のアプリケーション201への通信は行われる。
 一方、サーバ2のアプリケーション201から端末1のアプリケーション101への通信が行われる場合、符号D2で示されるように、サーバ2において、プロキシ制御部211は、初期設定ファイル217に基づきパケットのポート番号を宛先EIDに変換する。また、バンドル制御部220は、DTN経路TBL223に基づき宛先EIDを宛先IPアドレス及びポート番号に変換する。
 また、端末1において、バンドル制御部120は、宛先EIDを出力ポインタに変換し、プロキシ制御部111は、出力ポインタを宛先IPアドレス及びポート番号に変換する。このようにして、サーバ2のアプリケーション201から端末1のアプリケーション101への通信は行われる。以下にアプリケーション101,201の間の通信において実行される処理について述べる。
 図11は、アプリケーション101,201のデータ送信処理の一例を示すフローチャートである。プロキシ制御部111,211は、初期設定ファイル117,217を読み出す(ステップSt1)。
 次に、プロキシ制御部111,211は、アプリケーション101,201から通信先のアプリケーション201,101宛のパケットを受信するためのソケットを送受信制御部114,214にオープンする(ステップSt2)。ソケットには、初期設定ファイル117,217のプロキシのポート番号、またはループバックIPアドレス「127.0.0.1」が設定される。
 このため、端末1のアプリケーション101は、サーバ2のアプリケーション201のソケットに代えて、送受信制御部114が生成したソケットにパケットを送信する。また、サーバ2のアプリケーション201は、端末1のアプリケーション101のソケットに代えて、送受信制御部214が生成したソケットにパケットを送信する。このとき、パケットの宛先IPアドレス及びポート番号は、所定の設定またはアドレス変換部113,213により変換される。
 次に、送受信制御部114,214は、ソケットでのパケットの受信の有無を判定する(ステップSt3)。送受信制御部114.214は、パケットが受信されていない場合(ステップSt3のNo)、再度、ステップSt3の判定処理を実行する。
 プロキシ制御部111,211は、パケットが受信された場合(ステップSt3のYes)、パケットの送信元ポート番号が新規であるか否かを判定する(ステップSt4)。つまり、プロキシ制御部111,211は、アプリケーション101,201のポート番号が変更され、新たなチャネルが確立されたか否かを判定する。なお、送受信制御部114,214は、ソケットでパケットが受信されると、アプリケーション101,201からの通信の完了を検出し、受信したパケットのデータを、メモリなどを介してプロキシ制御部111,211に出力する。このとき、送受信制御部114,214は、アプリケーション101,201にセッションの確立を通知する。
 プロキシ制御部111,211は、送信元ポート番号が新規である場合(ステップSt4のYes)、コネクションリスト116,216に新たなコネクション番号と、そのコネクション番号に対応するソケットチャネルID及び宛先EIDを登録する(ステップSt9)。また、プロキシ制御部111,211は、送信元ポート番号が新規ではない場合(ステップSt4のNo)、ステップSt9の処理を実行しない。
 次に、プロキシ制御部111,211は、符号G1で示されるようなプロキシメッセージを生成する(ステップSt5)。プロキシメッセージには、コネクション番号及びペイロードが含まれる。プロキシ制御部111,211は、ペイロードにパケットのデータを収容し、コネクションリスト116,216から検索したコネクション番号を付与することにより、プロキシメッセージを生成する。プロキシメッセージは、バンドルAPIによりバンドル制御部120,220に出力される。
 次に、応答制御部115,215は、送信対象のパケットに対する応答の要否を判定する(ステップSt6)。応答制御部115,215は、TCPのACKではなく、アプリケーションレベルでの通信の継続に必要な応答の有無を判定する。
 応答制御部115,215は、応答が必要である場合(ステップSt6のYes)、所定のアルゴリズムに基づき、通信先のアプリケーション201,101の代わりに応答データを生成してアプリケーション101,201に送信する(ステップSt7)。つまり、応答制御部115,215は、アプリケーション101及びアプリケーション201に通信の完了を通知する。このため、上述したように、アプリケーション101,201は、バンドルプロトコルの通信が失敗しても、通信が成功したと認識する。また、応答制御部115,215は、応答が不要である場合(ステップSt6のNo)、応答データを生成しない。
 次に、プロキシ制御部111,211は、バンドルAPIによりバンドル制御部120,220にバンドルの送信を要求する(ステップSt8)。バンドル制御部120,220は、プロキシメッセージからバンドルを生成して送信する。これにより、バンドル制御部120,220は、アプリケーション101,201から通信先のアプリケーション201,101への通信を途絶耐性ネットワークのプロトコルに基づいて行う。このようにして、アプリケーション101,201のデータ送信処理は実行される。
 図12は、バンドルの送信処理の一例を示すフローチャートである。バンドル制御部120,220は、プロキシ制御部111,211からバンドルの送信を要求されると、DTN経路TBL123,223を読み出す(ステップSt11)。次に、バンドル制御部120,220は、DTN経路TBL123,223に基づき、宛先EIDに応じた宛先IPアドレス及びポート番号のバンドルを生成する(ステップSt12)。
 次に、バンドル制御部120,220は、宛先EIDに応じた通信先とのコネクションが確立状態であるか否かを判定する(ステップSt14)。バンドル制御部120,220は、コネクションが確立状態でない場合(ステップSt14のNo)、バンドルをバンドルバッファ122,222に格納し(ステップSt13)、再びステップSt14の処理を実行する。
 バンドル制御部120,220は、コネクションが確立状態である場合(ステップSt14のYes)、DTN経路TBL123,223の次ホップ種別に基づきIPアドレスが可変であるか否かを判定する(ステップSt15)。バンドル制御部120,220は、IPアドレスが固定である場合(ステップSt15のNo)、バンドルを送信する(ステップSt17)。
 また、バンドル制御部120,220は、IPアドレスが可変である場合(ステップSt15のYes)、DTN経路TBL123,223の次ホップアドレスに基づきIPアドレスが設定済みであるか否かを判定する(ステップSt16)。バンドル制御部120,220は、IPアドレスが未設定である場合(ステップSt16のNo)、バンドルをバンドルバッファ122,222に格納し(ステップSt13)、再びステップSt14の処理を実行する。なお、IPアドレスが未設定である場合、例えば、バンドルは仮のIPアドレスで生成され、IPアドレスの設定後にIPアドレスの修正が行われる。
 また、バンドル制御部120,220は、IPアドレスが設定済みである場合(ステップSt16のYes)、バンドルを送信する(ステップSt17)。このようにして、バンドルの送信処理は実行される。
 図13は、バンドルの受信処理の一例を示すフローチャートである。プロキシ制御部111,211は、初期設定ファイル117,217を読み出す(ステップSt21)。次に、プロキシ制御部111,211は、バンドル制御部120,220に対して通信相手のアプリケーション201,101からバンドルを受信できるように、初期設定ファイル117,217に従ってバンドルAPIによりノードEID及び出力ポインタを登録する(ステップSt22)。これにより、バンドル制御部120,220は、バンドルを受信したとき、出力ポインタ「data/receive」の指定ディレクトリにバンドルを出力する。
 次に、バンドル制御部120,220は、バンドルの受信の有無を判定する(ステップSt23)。バンドル制御部120,220は、バンドルを受信していない場合(ステップSt23のNo)、再びステップSt23の処理を実行する。また、バンドル制御部120,220は、バンドルを受信した場合(ステップSt23のYes)、ステップSt22で登録済みのEIDとバンドルの宛先EIDが一致するか否かを判定する(ステップSt24)。
 バンドル制御部120,220は、登録済みのEIDとバンドルの宛先EIDが不一致である場合(ステップSt24のNo)、自装置宛てのバンドルではないため、バンドルを廃棄して処理を終了する。バンドル制御部120,220は、登録済みのEIDとバンドルの宛先EIDが一致する場合(ステップSt24のYes)、バンドルのペイロードからパケットのデータを取得してプロキシメッセージを生成して、出力ポインタの指定ディレクトリに出力する(ステップSt25)。
 次に、プロキシ制御部111,211は、出力ポインタの指定ディレクトリを参照して、プロキシメッセージを取得する(ステップSt26)。次に、プロキシ制御部111,211は、プロキシメッセージのコネクション番号がコネクションリスト116,216に登録済みであるか否かを判定する(ステップSt27)。
 プロキシ制御部111,211は、コネクション番号が未登録である場合(ステップSt27のNo)、送受信制御部114,214に対し、初期設定ファイル117,217で指定されたプロキシのポート番号のソケットのオープンを指示する(ステップSt28)。また、プロキシ制御部111,211は、コネクション番号が登録済みである場合(ステップSt27のYes)、プロキシメッセージのペイロードにパケットのデータが収容されているか否かを判定する(ステップSt30)。
 プロキシ制御部111,211は、パケットのデータが収容されている場合(ステップSt30のYes)、該当するソケットにデータを送信する(ステップSt29)。また、プロキシ制御部111,211は、パケットのデータが収容されていない場合(ステップSt30のNo)、送受信制御部114,214に対し、該当するソケットのクローズを指示する(ステップSt31)。このようにして、バンドルの受信処理は実行される。
 このように、端末1のアプリケーション101及びサーバ2のアプリケーション201の間では、端末1とサーバ2の間のコネクションの有無とは無関係に、アプリケーションの動作に基づきプロキシプロトコル機能部110,210によりソケットのオープン及びクローズが再現される。このため、アプリケーション101及びアプリケーション201の間では、コネクションが切断されている場合でも通信の継続が可能となる。
 図14は、端末1の経路制御部124の処理の一例を示すフローチャートである。経路制御部124は、OS機能部130に対してIPアドレスの割り当ての有無を監視する(ステップSt51)。OS機能部130は、端末1のリンク先の無線アクセスポイントAPとのDHCPによる通信によりIPアドレスが割り当てられる。このため、経路制御部124は、OS機能部130を監視することにより、端末1が無線LANに接続されたことを検出することができる。
 次に、経路制御部124は、監視結果からIPアドレスの割り当ての有無を判定する(ステップSt52)。経路制御部124は、IPアドレスが未割り当てである場合(ステップSt52のNo)、再びステップSt51の処理を実行する。
 また、経路制御部124は、IPアドレスが割り当てられた場合(ステップSt52のYes)、OS機能部130からそのIPアドレスを取得する(ステップSt53)。次に、経路制御部124は、取得したIPアドレスに対応するゲートウェイアドレスをIP経路TBL131に設定する(ステップSt54)。ゲートウェイアドレスは、DHCPにより決定される。バンドルは、IP経路TBL131に従いルーティングされるため、ゲートウェイアドレスがIP経路TBL131に設定されると、端末1からサーバ2までの通信経路が生成される。
 次に、経路制御部124は、サーバ2に対する通信のソケットをバンドル制御部120にオープンする(ステップSt55)。次に、経路制御部124は、IPアドレス及びノードEIDを含むアドレス通知を生成する(ステップSt56)。なお、ノードEIDは、初期設定ファイル117から取得される。
 次に、経路制御部124は、バンドル制御部120によりアドレス通知をサーバ2に送信する(ステップSt57)。このため、サーバ2は、端末1の接続先の無線LANが切り替わった場合でも、端末1の新しいIPアドレスを知ることができる。
 次に、経路制御部124は、OS機能部130を監視することにより無線アクセスポイントAPに対するリンク断の検出の有無を判定する(ステップSt58)。経路制御部124は、リンク断がない場合(ステップSt58のNo)、再びステップSt58の処理を実行する。また、経路制御部124は、リンク断が発生した場合(ステップSt58のYes)、バンドル制御部120のソケットをクローズする(ステップSt59)。
 次に、経路制御部124は、IP経路TBL131からゲートウェイアドレスを削除し(ステップSt60)、再びステップSt51の処理を実行する。このようにして、経路制御部124の処理は実行される。
 図15は、サーバ2の経路制御部224の処理の一例を示すフローチャートである。経路制御部224は、端末1の経路制御部124からのアドレス通知の受信の有無を判定する(ステップSt71)。経路制御部224は、アドレス通知を受信していない場合(ステップSt71のNo)、再びステップSt71の処理を実行する。
 また、経路制御部224は、アドレス通知を受信した場合(ステップSt71のYes)、アドレス通知からその送信元IPアドレスである端末1のIPアドレスを取得する(ステップSt72)。次に、経路制御部224は、取得したIPアドレスをDTN経路TBL223に設定する(ステップSt73)。このとき、IPアドレスは、アドレス通知に含まれる端末1のノードEIDに対応する次ホップアドレスに登録される。
 次に、経路制御部224は、端末1に対する通信のソケットをバンドル制御部220にオープンする(ステップSt74)。次に、経路制御部224は、IPアドレス及びノードEIDを含むアドレス通知を生成する(ステップSt75)。なお、ノードEIDは、初期設定ファイル217から取得される。
 次に、経路制御部224は、バンドル制御部220によりアドレス通知を端末1に送信する(ステップSt76)。このため、端末1は、サーバ2に送信したアドレス通知の応答を確認することができる。
 次に、経路制御部224は、OS機能部230を監視することにより端末1に対する通信断の検出の有無を判定する(ステップSt77)。経路制御部224は、通信断がない場合(ステップSt77のNo)、再びステップSt77の処理を実行する。また、経路制御部224は、通信断が発生した場合(ステップSt77のYes)、バンドル制御部220のソケットをクローズする(ステップSt78)。
 次に、経路制御部224は、DTN経路TBL223から端末1のアドレスを削除し(ステップSt79)、再びステップSt71の処理を実行する。このようにして、経路制御部224の処理は実行される。
 図16は、バンドルプロトコルの適用の切り替え処理の一例を示すフローチャートである。コネクション監視部112,212は、通信先とのコネクションの接続の有無を検出する(ステップSt41)。
 バンドル制御部120,220は、DTN経路TBL123,223に設定されたIPアドレス及びポート番号に基づき、該当する通信先との接続状態や、キープアライブ(keep alive)機能により通信の状態を検出する。コネクション監視部112,212は、バンドル制御部120,220の検出結果を取得し、またはバンドルAPIによる制御などによりコネクションの状態を検出する。
 コネクション監視部112,212は、コネクションが接続されている場合(ステップSt41のYes)、バンドルバッファ122,222に送信待ちのバンドルが格納されているか否かを判定する(ステップSt42)。コネクション監視部112,212は、格納済みのバンドルがない場合(ステップSt42のNo)、再びステップSt41の処理を実行する。
 また、コネクション監視部112,212は、格納済みのバンドルがある場合(ステップSt42のYes)、フィルタTBL118,218の設定状態を参照することによりアドレス変換部113,213に対する変換情報の設定の有無を判定する(ステップSt43)。コネクション監視部112,212は、変換情報の設定がない場合(ステップSt43のNo)、処理を終了する。また、コネクション監視部112,212は、変換情報の設定が有る場合(ステップSt43のYes)、変換情報を削除する(ステップSt44)。
 これにより、TCP処理部102,202から送受信制御部114,214のソケットに対するパケットの転送が停止する。したがって、アプリケーション101,201の間の通信に対してバンドルプロトコルの適用が停止されるため、プロキシプロトコル機能部110,210を介さない直接的なTCP/IPの通信が行われる。
 一方、コネクション監視部112,212は、コネクションが切断されている場合(ステップSt41のNo)、フィルタTBL118,218の設定状態を参照することによりアドレス変換部113,213に対する変換情報の設定の有無を判定する(ステップSt45)。コネクション監視部112,212は、変換情報の設定が有る場合(ステップSt45のYes)、処理を終了する。また、コネクション監視部112,212は、変換情報の設定がない場合(ステップSt45のNo)、変換情報を設定する(ステップSt46)。
 これにより、TCP処理部102,202から送受信制御部114,214のソケットに対するパケットの転送が開始される。したがって、アプリケーション101,201の間の通信に対してバンドルプロトコルの適用が開始されるため、プロキシプロトコル機能部110,210を介した通信が行われる。
 このように、コネクション監視部112,212は、通信先とのコネクションの状態を検出し、そのコネクションの状態に応じて、アプリケーション101,201の間の通信に対するバンドルプロトコルの適用の可否を決定する。このため、バンドルプロトコルの適用が自動的に行われる。
 次に、図1の通信システムにおけるEIDの割り当てについて述べる。
 図17は、EIDの割り当ての一例を示す図である。図17において、白丸は、データを送受信するためのソケットを示す。EID及びポート番号は初期設定ファイル117,217により割り当てられる。
 各端末1a~1cにおいて、プロキシプロトコル機能部110は自動運転APL101a及びセンサAPL101bに対してそれぞれ形成されている。端末1aには、自動運転APL101aに対応するプロキシプロトコル機能部110aであるプロキシ#11と、センサAPL101bに対応するプロキシプロトコル機能部110bであるプロキシ#12が設けられている。
 プロキシ#11にはアプリケーションEID「dtn://mobile1/navi」が割り当てられ、プロキシ#12にはアプリケーションEID「dtn://mobile1/sensor」が割り当てられている。プロキシ#11は、自動運転APL101aのポート番号「9000」のソケットへデータを送信し、プロキシ#12は、ポート番号「8001」のソケットでセンサAPL101bからデータを受信する。
 また、バンドル制御部120にはノードEID「dtn://mobile1」が割り当てられている。バンドル制御部120は、ポート番号「4556」のソケットでサーバ2のバンドル制御部220からデータを受信する。
 端末1bには、自動運転APL101aに対応するプロキシプロトコル機能部110aであるプロキシ#21と、センサAPL101bに対応するプロキシプロトコル機能部110bであるプロキシ#22が設けられている。
 プロキシ#21にはアプリケーションEID「dtn://mobile2/navi」が割り当てられ、プロキシ#22にはアプリケーションEID「dtn://mobile2/sensor」が割り当てられている。プロキシ#21は、自動運転APL101aのポート番号「9000」のソケットへデータを送信し、プロキシ#22は、ポート番号「8001」のソケットでセンサAPL101bからデータを受信する。
 また、バンドル制御部120にはノードEID「dtn://mobile2」が割り当てられている。バンドル制御部120は、ポート番号「4556」のソケットでサーバ2のバンドル制御部220からデータを受信する。
 端末1cには、自動運転APL101aに対応するプロキシプロトコル機能部110aであるプロキシ#31と、センサAPL101bに対応するプロキシプロトコル機能部110bであるプロキシ#32が設けられている。
 プロキシ#31にはアプリケーションEID「dtn://mobile3/navi」が割り当てられ、プロキシ#32にはアプリケーションEID「dtn://mobile3/sensor」が割り当てられている。プロキシ#31は、自動運転APL101aのポート番号「9000」のソケットへデータを送信し、プロキシ#32は、ポート番号「8001」のソケットでセンサAPL101bからデータを受信する。
 また、バンドル制御部120にはノードEID「dtn://mobile3」が割り当てられている。バンドル制御部120は、ポート番号「4556」のソケットでサーバ2のバンドル制御部220からデータを受信する。
 各端末1a~1cのバンドル制御部120は、インターフェースIFを介しデータを送受信する。インターフェースIFは、例えば無線LANモジュール14であり、そのIPアドレスは可変である。
 一方、サーバ2において、プロキシプロトコル機能部210は、制御APL201aの通信先と計測APL201bについてそれぞれ形成されている。プロキシ#01は、端末1aの自動運転APL101aに対応するプロキシプロトコル機能部210aであり、アプリケーションEID「dtn://server/navi/mobile1」が割り当てられている。
 プロキシ#02は、端末1bの自動運転APL101aに対応するプロキシプロトコル機能部210bであり、アプリケーションEID「dtn://server/navi/mobile2」が割り当てられている。プロキシ#03は、端末1cの自動運転APL101aに対応するプロキシプロトコル機能部210cであり、アプリケーションEID「dtn://server/navi/mobile3」が割り当てられている。
 プロキシ#01は、ポート番号「9001」のソケットで制御APL201aからデータを受信し、プロキシ#02は、ポート番号「9002」のソケットで制御APL201aからデータを受信する。また、プロキシ#03は、ポート番号「9003」のソケットで制御APL201aからデータを受信する。
 制御APL201aから自動運転APL101aへの通信では端末1a~1cがサーバ機能を持つため、各端末1a~1cには自動運転APL101aに対応するプロキシ#11,#21,#31が必要となり、サーバ2にはプロキシ#11,#21,#31に対応するプロキシ#01~#03が必要となる。バンドルプロトコルの通信では、アプリケーションEIDにより通信先が指定されるため、端末1a~1cのIPアドレスが未決定である場合でも通信先の指定は可能である。
 しかし、制御APL201aは、通信先をIPアドレス及びポート番号で指定するため、IPアドレスが未決定の端末1a~1cを通信先として指定できない。このため、プロキシ#01~#03に個別のポート番号「9001」~「9003」を割り当てることにより、制御APL201aは仮想的に端末1a~1cを通信先として指定することができる。
 また、プロキシ#04は、計測APL201bに対応するプロキシプロトコル機能部210dであり、アプリケーションEID「dtn://server/sensor」が割り当てられている。プロキシ#04は、計測APL201bのポート番号「8000」のソケットへデータを送信する。
 また、バンドル制御部220にはノードEID「dtn://server」が割り当てられている。バンドル制御部120は、ポート番号「4556」のソケットで端末1a~1cのバンドル制御部120からデータを受信する。
 バンドル制御部120は、インターフェースIFを介しデータを送受信する。インターフェースIFは、例えば通信ポート24であり、そのIPアドレスは「10.10.10.100」である。上述したEID及びポート番号の割り当てを前提として、以下に制御APL201aから端末1cの自動運転APL101aへの通信を例に挙げて述べる。
 図18は、制御APL201aから自動運転APL101aへの通信の一例を示すシーケンス図である。図18には、端末1cの自動運転APL101a、プロキシ#31を含むDTNプロキシ部19、及びOS機能部130と、サーバ2の制御APL201a、プロキシ#03を含むDTNプロキシ部29、及びOS機能部230との間の通信の動作が示されている。本例では、端末1cが無線アクセスポイントAP#1とリンクしたときの通信を示す。
 また、図19~図23には、本例のシーケンスに沿った端末1c及びサーバ2の内部の動作が示されている。なお、図19~図23においてカッコ内の番号はポート番号を示す。
 図19は、シーケンス開始前の端末1c及びサーバ2の状態を示す。サーバ2の経路制御部224は、バンドル制御部120に、端末1cのDTNプロキシ部19からデータを受信するための受信スレッド220bを生成する。受信スレッド220bは、ポート番号「4556」のソケットに該当する。
 また、端末1cの経路制御部124は、バンドル制御部220に、サーバ2のDTNプロキシ部29からデータを受信するための受信スレッド120bを生成する。受信スレッド120bは、ポート番号「4556」のソケットに該当する。
 サーバ2のDTN経路TBL223には、宛先EIDとして端末1cのノードEID「dtn://mobile3」が設定され、次ホップ種別として「可変」が設定されている。また、端末1cのIPアドレスは未決定であるため、次ホップアドレスは未設定状態である。なお、DTN経路TBL223のポート番号は省略されている。また、IP経路TBL231には、送信先ゲートウェイ(GW)として、ゲートウェイアドレス「10.10.10.256」が設定されている。
 端末1cのDTN経路TBL123には、宛先EIDとしてサーバ2のノードEID「dtn://server」が設定され、次ホップ種別として「固定」が設定されている。また、次ホップアドレスとしてはサーバ2のIPアドレス「10.10.10.100」が設定されている。
 また、サーバ2は、端末1cの自動運転APL101aを通信先とする制御APL201aに対応してプロキシ#03を起動する。プロキシ#03は、ポート番号「9003」のソケットをオープンして、制御APL201aからの通信を待ち受ける。なお、制御APL201aは、ポート番号「9000」のソケットをオープンしてデータを送信する。また、端末1cは、自動運転APL101aに対応してプロキシ#31を起動する。
 図18を参照すると、端末1cのDTNプロキシ部19は、IPアドレスの割り当てを検出するためにOS機能部130を監視する(符号S1)。また、サーバ2の制御APL201aは、自動運転APL101aとのセッションを開始すると、DTNプロキシ部29に対しソケットをオープンする(符号R1)。このソケットは図10のソケットSC6に該当し、その通信先はプロキシ#03のIPアドレス「10.10.10.100」及びポート番号「9003」である。
 制御APL201aは、ソケットからDTNプロキシ部29にデータを送信する(符号R2)。このとき、宛先となる端末1cのIPアドレスがDTN経路TBL223に未設定であるため、送信されたデータはバンドルバッファ122に格納される(符号R3)。次に、制御APL201aはソケットをクローズする(符号R4)。
 また、DTNプロキシ部29は、セッションの確立を制御APL201aに通知する(符号R5)。すなわち、DTNプロキシ部29は、制御APL201aから自動運転APL101aに対する通信を依頼されたとき、セッションの確立を制御APL201aに通知する。
 図20には、図18の符号S1,R1,R2の動作が示されている。サーバ2において、制御APL201aはプロキシ#03にデータ(つまり速度の指示)を送信し、プロキシ#03は、データをプロキシメッセージに変換してバンドル制御部220に送信する。バンドル制御部220は、宛先のアプリケーションEID「dtn://mobile3/navi」からノードEID「dtn://mobile3」を得て、ノードEID「dtn://mobile3」に基づきDTN経路TBL123を検索する。
 しかし、DTN経路TBL123の次ホップアドレスには、通信先の端末1cに対応するIPアドレスが設定されていない。このため、バンドル制御部220は、プロキシメッセージからバンドルを生成するが、その宛先が不明であるため、バンドルをバンドルバッファ222に格納する(符号Y1)。また、端末1cにおいて、経路制御部124はOS機能部130を監視する(符号Y2)。
 図18を参照すると、OS機能部130は、端末1cが無線LAN#1の圏内に入ると、無線アクセスポイントAP#1とリンクを確立する(符号S2)。OS機能部130は、無線アクセスポイントAP#1とDHCPによる通信を行い(符号S3)、端末1cにIPアドレス「10.10.10.105」が割り当てられる(符号S4)。DTNプロキシ部19は、OS機能部130からIPアドレスを取得する(符号S5)。
 次に、DTNプロキシ部19は、通信先のDTNプロキシ部29に対しソケットをオープンする(符号S6)。このソケットは図10のソケットSC3に該当し、その通信先はバンドル制御部220のIPアドレス「10.10.10.100」及びポート番号「4556」とする。次に、DTNプロキシ部19は、IPアドレス「10.10.10.105」及びノードEID「dtn://mobile3」を含むアドレス通知を生成してサーバ2のDTNプロキシ部29に送信する(符号S7)。すなわち、DTNプロキシ部19は、切り替え後の無線LAN#1における端末1cのIPアドレスをサーバ2のDTNプロキシ部29に通知する。なお、IPアドレスは無線LAN#1における識別情報の一例である。
 図24は、アドレス通知の一例を示す図である。アドレス通知は、IPヘッダ、TCPヘッダ、バンドルデータ、及びペイロードを有する。IPヘッダには、送信元IPアドレス「10.10.10.105」と宛先IPアドレス「10.10.10.100」が含まれる。TCPヘッダには、任意の送信元ポート番号と、宛先ポート番号「4556」とが含まれる。
 また、バンドルデータには、送信元EIDとして端末1cのノードEID「dtn://mobile3」が含まれ、宛先EIDとしてサーバ2の経路制御部224のEID「dtn://server/routeManager」が指定されている。経路制御部224のEIDは、例えば初期設定ファイル217に設定されている。また、ペイロードには、メッセージ種別として、例えば「registration」または「remove」が含まれている。
 再び図18を参照すると、DTNプロキシ部29は、アドレス通知を受信すると、アドレス通知からIPアドレスを取得して、アドレス通知内のノードEIDに対応するようにDTN経路TBL223に設定する(符号R6)。より具体的には、経路制御部224は、アドレス通知の送信元IPアドレスを、アドレス通知の宛先EIDに対応するようにDTN経路TBL223に設定する。
 図21には、図18の符号S5~S7,R6の動作が示されている。端末1cの経路制御部124は、IPアドレスを取得すると、IPアドレスに応じたゲートウェイアドレス「10.10.10.128」をサーバ2のIPアドレス「10.10.10.100」に対応するようにIP経路TBL131に設定する(符号Y3)。
 次に、経路制御部124は、バンドル制御部120に対し、サーバ2を通信先とする送信スレッド120aを生成し(符号Y4)、サーバ2の受信スレッドにデータを送信するためのソケットをオープンする(符号Y5)。これにより、自動運転APL101aと制御APL201aの間で確立されたセッションに対応するように、自動運転APL101aから制御APL201aまでの通信経路が生成される。
 次に、経路制御部124は、アドレス通知を生成して、送信スレッド120aからサーバ2の経路制御部224に送信する(符号Y6)。サーバ2において、アドレス通知は受信スレッド220bから経路制御部224に出力される。
 サーバ2の経路制御部224は、端末1cのIPアドレスをDTN経路TBL223に設定する(符号Y7)。経路制御部224は、バンドル制御部220に対し、端末1cを通信先とする送信スレッド220aを生成する(符号Y8)。
 図18を参照すると、DTNプロキシ部29は、通信先のDTNプロキシ部19に対しソケットをオープンする(符号R7)。このソケットは図10のソケットSC4に該当し、その通信先はバンドル制御部120のIPアドレス「10.10.10.105」及びポート番号「4556」である。
 これにより、制御APL201aから自動運転APL101aへの通信経路が生成される。すなわち、経路制御部224は、自動運転APL101aと制御APL201aの間で確立されたセッションに対応するように、端末1cのDTNプロキシ部19から通知されたIPアドレスに基づき通信経路を生成する。このため、制御APL201aは、IPアドレスにより端末1cを通信先として特定することができる。
 次に、DTNプロキシ部29は、IPアドレス「10.10.10.100」及びノードEID「dtn://server」を含むアドレス通知を生成して端末1cのDTNプロキシ部19に送信する(符号R8)。
 次に、DTNプロキシ部29は、バンドルバッファ222からバンドルのデータを読み出して端末1cのDTNプロキシ部19に送信する(符号R9)。端末1cのDTNプロキシ部19は、通信先の自動運転APL101aに対しソケットをオープンする(符号S8)。このソケットは図10のソケットSC2に該当する。DTNプロキシ部19は、ソケットからデータを自動運転APL101aに送信し(符号S9)、ソケットをクローズする(符号S10)。
 このように、端末1cのDTNプロキシ部19は、端末1cの接続先の無線LANの切り替え後、サーバ2のDTNプロキシ部29からのアドレス通知に応じて自動運転APL101aとのセッションを確立する。また、サーバ2のDTNプロキシ部29は、制御APL201aから自動運転APL101aに対する通信を依頼されたとき、セッションの確立を制御APL201aに通知する。このため、端末1cのDTNプロキシ部19は、無線LANの切り替えに応じて、制御APL201aから自動運転APL101aへの通信をサーバ2のDTNプロキシ部29に中継することができる。
 図22には、図18の符号S8~S10,R7~R9の動作が示されている。サーバ2の経路制御部224は、端末1cの受信スレッド120bを通信先とするソケットをオープンする(符号Y9)。経路制御部224は、アドレス通知を生成し、送信スレッド220aから端末1cの経路制御部124に送信する(符号Y10)。次に、バンドル制御部220は、バンドルバッファ222からバンドルを読み出し、送信スレッド220aから端末1cに送信する(符号Y11)。
 端末1cのバンドル制御部120は、バンドルをプロキシメッセージに変換してプロキシ#31に出力する。プロキシ#31は、自動運転APL101aに対しソケットをオープンして、ソケットからプロキシメッセージのデータを自動運転APL101aに送信する。
 図18を参照すると、端末1cが無線LAN#1の圏外に移動したとき、端末1cと無線アクセスポイントAP#1のリンクが断状態となる。DTNプロキシ部19は、OS機能部130によりリンク断を検出する(符号S11)。次に、DTNプロキシ部19は、他の無線アクセスポイントAPとのリンクに備えて、再びOS機能部130を監視する(符号S12)。その後、本例のシーケンスが繰り返される。
 また、サーバ2のDTNプロキシ部29は、OS機能部230により端末1cとの通信の断状態を検出する(符号R10)。次に、DTNプロキシ部29は、DTN経路TBL223から端末1cのアドレス通知に基づく設定を削除する(符号R11)。
 図23には、図18の符号S11,R11の動作が示されている。端末1cにおいて、経路制御部124は、IP経路TBL131からゲートウェイアドレスの設定を削除する(符号Y12)。さらに、経路制御部124は、バンドル制御部120の送信スレッド120aを削除する(符号Y13)。
 また、サーバ2において、経路制御部224は、DTN経路TBL223から、端末1cのIPアドレスを削除する(符号Y14)。さらに、経路制御部224は、バンドル制御部220の送信スレッド220aを削除する(符号Y14)。これにより、端末1c及びサーバ2は、図19に示される初期状態に戻る。
 本例のシーケンスにおいて、サーバ2のDTNプロキシ部29は、制御APL201aから自動運転APL101aへの通信を中継し、端末1cのDTNプロキシ部19は、サーバ2のDTNプロキシ部29から中継された通信を自動運転APL101aに転送する。各DTNプロキシ部19,29は、制御APL201aと自動運転APL101aの間の通信により確立されたセッションに対応する通信経路を生成する。
 より具体的には、DTNプロキシ部19は、IPアドレスの割り当てを検出したとき、IP経路TBL131を設定してサーバ2のDTNプロキシ部29に対しソケットをオープンし、アドレス通知によりIPアドレスをDTNプロキシ部29に通知する。一方、DTNプロキシ部29は、アドレス通知で通知されたIPアドレスをDTN経路TBL223に設定し、端末1cのDTNプロキシ部29に対しソケットをオープンする。
 これにより、各DTNプロキシ部19,29は、端末1cが接続される無線LANの切り替えに応じ、生成した通信経路を用いて制御APL201aと自動運転APL101aの間のセッションを維持する。より具体的には、各DTNプロキシ部19,29は、端末1cの接続先の無線LANアクセスポイントAPが切り替わっても、切り替え後の無線LANにおけるIPアドレス通知により新たに通信経路を生成するため、制御APL201aと自動運転APL101aの間のセッションを継続できる。したがって、制御APL201aと自動運転APL101aの間の通信を、端末1cのネットワーク接続環境の変化に対応して継続することが可能である。
 このため、例えば図3の通信システムの場合、サーバ2は、端末1cからアドレス通知を受信することでそのIPアドレスを知ることができるので、例えば、プッシュ型通信により端末1cに対し一方的に速度を指示することができる。
 次に、バンドルのデータの送信中に無線LANが切り替わることにより通信が中断した場合のシーケンスを説明する。
 図25及び図26は、制御APL201aから自動運転APL101aへの通信の他例を示すシーケンス図である。本例において、端末1cは、無線アクセスポイントAP#1とリンクし、その後、他の無線アクセスポイントAP#2とリンクする。これにより、端末1cの接続先の無線LANは、無線LAN#1から無線LAN#2に切り替わる。
 図25には、端末1cが無線アクセスポイントAP#1とリンクしたときから、そのリンクが断状態となるまでのシーケンスが示されている。図25において、図18と共通する動作には同一の符号を付し、その説明を省略する。
 サーバ2のDTNプロキシ部29は、端末1cと無線アクセスポイントAP#1の間のリンク断によりバンドルのデータの転送が完了せず、中断する(符号R9,R9’)。また、端末1cのDTNプロキシ部19は、データの受信が完了していないため、自動運転APL101aに対するソケットをオープンしたままにする。
 図26には、端末1cが他の無線アクセスポイントAP#2にリンクしたときから、そのリンクが断状態となるまでのシーケンスが示されている。図26において、符号S21~S27,S29~S32,R26~R31の動作は、図18の符号S1~S7,S9~S12,R6~R11の動作と同様であるため、その詳細な説明は適宜に省略する。
 端末1cのDTNプロキシ部19は、OS機能部130を監視することにより(符号S21)、端末1cに新しいIPアドレス「20.20.20.210」が割り当てられたことを検出する(符号S24、S25)。DTNプロキシ部19は、IPアドレスをIP経路TBL131に設定して、サーバ2のDTNプロキシ部29にソケットをオープンし(符号S26)、アドレス通知を送信する(符号S27)。
 サーバ2のDTNプロキシ部29は、アドレス通知を受信すると、端末1cの新しいIPアドレス「20.20.20.210」をDTN経路TBL223に設定する(符号R26)。DTNプロキシ部29は、端末1cのDTNプロキシ部19にソケットをオープンし(符号R27)、アドレス通知を送信する(符号R28)。これにより、DTNプロキシ部19,29は、制御APL201aと自動運転APL101aの間のセッションに対応する新たな通信経路を生成する。
 次に、DTNプロキシ部29は、通信の中断により送信に失敗したバンドルのデータを端末1cのDTNプロキシ部19に再送する(符号R29)。DTNプロキシ部19は、データをオープン済みのソケットから自動運転APL101aに送信し(符号S29)、ソケットをクローズする(符号S30)。これにより、バンドルプロトコルでは、送信に失敗したバンドルごとに再送が行われるため、無線LANの切り替えにより中断した通信が完了する。
 このように、各DTNプロキシ部19,29は、制御APL201aと自動運転APL101aの間のセッションに対応する通信経路を用いて、無線LANの切り替えによって中断された制御APL201aから自動運転APL101aへの通信を継続する。したがって、制御APL201aから自動運転APL101aへの通信を完了することができる。
 次に、端末1cのセンサAPL101bからサーバ2の計測APL201bへの通信のシーケンスについて述べる。
 図27には、端末1cのセンサAPL101b、プロキシ#12を含むDTNプロキシ部19、及びOS機能部130と、サーバ2の計測APL201b、プロキシ#04を含むDTNプロキシ部29、及びOS機能部230との間の通信の動作が示されている。本例では、端末1cが無線アクセスポイントAP#1とリンクしたときの通信を示す。
 端末1cのDTNプロキシ部19は、IPアドレスの割り当てを検出するためにOS機能部130を監視する(符号S41)。OS機能部130は、端末1cが無線LAN#1の圏内に入ると、無線アクセスポイントAP#1とリンクを確立する(符号S42)。OS機能部130は、無線アクセスポイントAP#1とDHCPによる通信を行い(符号S43)、端末1cにIPアドレス「10.10.10.105」が割り当てられる(符号S44)。DTNプロキシ部19は、OS機能部130からIPアドレスを取得する(符号S45)。
 次に、DTNプロキシ部19は、通信先のDTNプロキシ部29に対しソケットをオープンする(符号S46)。このソケットは図10のソケットSC3に該当し、その通信先はバンドル制御部220のIPアドレス「10.10.10.100」及びポート番号「4556」とする。次に、DTNプロキシ部19は、IPアドレス「10.10.10.105」及びノードEID「dtn://mobile3」を含むアドレス通知を生成してサーバ2のDTNプロキシ部29に送信する(符号S47)。
 DTNプロキシ部29は、アドレス通知を受信すると、アドレス通知からIPアドレスを取得して、アドレス通知内のノードEIDに対応するようにDTN経路TBL223に設定する(符号R41)。より具体的には、経路制御部224は、アドレス通知の送信元IPアドレスを、アドレス通知の宛先EIDに対応するようにDTN経路TBL223に設定する。なお、設定内容については、図21を参照して述べたとおりである。
 DTNプロキシ部29は、通信先のDTNプロキシ部19に対しソケットをオープンする(符号R42)。このソケットは図10のソケットSC4に該当し、その通信先はバンドル制御部120のIPアドレス「10.10.10.105」及びポート番号「4556」である。次に、DTNプロキシ部29は、IPアドレス「10.10.10.100」及びノードEID「dtn://server」を含むアドレス通知を生成して端末1cのDTNプロキシ部19に送信する(符号R43)。
 端末1cのセンサAPL101bは、DTNプロキシ部19に対しソケットをオープンする(符号S48)。このソケットは図10のソケットSC1に該当し、その通信先はプロキシ#12のIPアドレス「10.10.10.105」及びポート番号「8001」である。センサAPL101bは、ソケットからDTNプロキシ部19にデータを送信する(符号S49)。DTNプロキシ部19は、バンドルのデータをサーバ2のDTNプロキシ部29に送信する(符号R44)。
 センサAPL101bは、データの送信を完了すると、ソケットをクローズする(符号S50)。また、DTNプロキシ部19は、センサAPL101bにセッションの確立を通知する(符号S51)。
 サーバ2のDTNプロキシ部29は、通信先の計測APL201bに対しソケットをオープンする(符号R45)。このソケットは図10のソケットSC5に該当する。DTNプロキシ部29は、ソケットからデータを計測APL201bに送信し(符号R46)、ソケットをクローズする(符号R47)。
 端末1cが無線LAN#1の圏外に移動したとき、端末1cと無線アクセスポイントAP#1のリンクが断状態となる。DTNプロキシ部19は、OS機能部130によりリンク断を検出する(符号S52)。次に、DTNプロキシ部19は、他の無線アクセスポイントAPとのリンクに備えて、再びOS機能部130を監視する(符号S53)。その後、本例のシーケンスが繰り返される。このようにして、センサAPL101bから計測APL201bへの通信は行われる。なお、上述した各シーケンスは、他の端末1a,1bについても同様に実行される。
 また、上記の処理機能は、コンピュータによって実現することができる。その場合、処理装置が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体(ただし、搬送波は除く)に記録しておくことができる。
 プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD(Digital Versatile Disc)、CD-ROM(Compact Disc Read Only Memory)などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
 プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
 上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
 1,1a~1c     端末
 2       サーバ
 10,20      CPU
 19,29      DTNプロキシ部
 120,220     バンドル制御部
 124,224     経路制御部
 101a      自動運転アプリケーション
 201a      制御アプリケーション

Claims (19)

  1.  第1アプリケーションが動作するサーバ装置と、第2アプリケーションが動作する端末装置とを含む通信システムにおいて、
     前記サーバ装置は、前記第1アプリケーションから前記第2アプリケーションへの通信を前記端末装置に中継する第1プロキシ部を有し、
     前記端末装置は、前記第1プロキシ部から中継された通信を前記第2アプリケーションに転送する第2プロキシ部を有し、
     前記第1プロキシ部及び前記第2プロキシ部は、前記第1アプリケーションと前記第2アプリケーションの間の通信により確立されたセッションに対応して通信経路を生成し、前記端末装置が接続されるネットワークの切り替えに応じ前記通信経路を用いて前記セッションを維持することを特徴とする通信システム。
  2.  前記第1プロキシ部及び前記第2プロキシ部は、前記通信経路を用いて、前記ネットワークの切り替えによって中断された前記第1アプリケーションから前記第2アプリケーションへの通信を継続することを特徴とする請求項1に記載の通信システム。
  3.  前記第1プロキシ部は、前記第1アプリケーションから前記第2アプリケーションに対する通信を依頼されたとき、前記第1アプリケーションにセッションの確立を通知し、
     前記第2プロキシ部は、前記ネットワークの切り替え後、前記第1プロキシ部からの通知に応じて前記第2アプリケーションとのセッションを確立することを特徴とする請求項1または2に記載の通信システム。
  4.  前記第2プロキシ部は、前記切り替え後のネットワークにおける前記端末装置の識別情報を前記第1プロキシ部に通知し、
     前記第1プロキシ部は、前記識別情報に基づき前記通信経路を生成することを特徴とする請求項1乃至3の何れかに記載の通信システム。
  5.  サーバ装置で動作する第1アプリケーションと通信する第2アプリケーションが動作する端末装置において、
     前記サーバ装置から中継された前記第1アプリケーションから前記第2アプリケーションへの通信を前記第2アプリケーションに転送するプロキシ部を有し、
     前記プロキシ部は、前記第1アプリケーションと前記第2アプリケーションの間の通信により確立されたセッションに対応する通信経路を生成し、接続されるネットワークの切り替えに応じ前記通信経路を用いて前記セッションを維持することを特徴とする端末装置。
  6.  前記プロキシ部は、前記通信経路を用いて、前記ネットワークの切り替えによって中断された前記第1アプリケーションから前記第2アプリケーションへの通信を継続することを特徴とする請求項5に記載の端末装置。
  7.  前記プロキシ部は、前記切り替え後のネットワークにおける前記端末装置の識別情報を前記サーバ装置に通知することを特徴とする請求項5または6の何れかに記載の端末装置。
  8.  第1アプリケーションが動作するサーバ装置において、
     前記サーバ装置は、前記第1アプリケーションから、端末装置で動作する第2アプリケーションへの通信を前記端末装置に中継するプロキシ部を有し、
     前記プロキシ部は、前記第1アプリケーションと前記第2アプリケーションの間の通信により確立されたセッションに対応する通信経路を生成し、前記端末装置が接続されるネットワークの切り替えに応じ前記通信経路を用いて前記セッションを維持することを特徴とするサーバ装置。
  9.  前記プロキシ部は、前記通信経路を用いて、前記ネットワークの切り替えによって中断された前記第1アプリケーションから前記第2アプリケーションへの通信を継続することを特徴とする請求項8に記載のサーバ装置。
  10.  サーバ装置で動作する第1アプリケーションと、端末装置で動作する第2アプリケーションとの間の通信を処理する通信プログラムにおいて、
     前記サーバ装置から前記端末装置に中継された前記第1アプリケーションから前記第2アプリケーションへの通信を前記第2アプリケーションに転送し、
     前記第1アプリケーションと前記第2アプリケーションの間の通信により確立されたセッションに対応する通信経路を生成し、前記端末装置が接続されるネットワークの切り替えに応じ前記通信経路を用いて前記セッションを維持する、処理をコンピュータに実行させることを特徴とする通信プログラム。
  11.  前記通信経路を用いて、前記ネットワークの切り替えによって中断された前記第1アプリケーションから前記第2アプリケーションへの通信を継続する処理を前記コンピュータに実行させることを特徴とする請求項10に記載の通信プログラム。
  12.  前記切り替え後のネットワークにおける前記端末装置の識別情報を前記サーバ装置に通知する処理を前記コンピュータに実行させることを特徴とする請求項10または11の何れかに記載の通信プログラム。
  13.  サーバ装置で動作する第1アプリケーションと、端末装置で動作する第2アプリケーションとの間の通信を処理する通信プログラムにおいて、
     前記第1アプリケーションから前記第2アプリケーションへの通信を前記サーバ装置から前記端末装置に中継し、
     前記第1アプリケーションと前記第2アプリケーションの間の通信により確立されたセッションに対応する通信経路を生成し、前記端末装置が接続されるネットワークの切り替えに応じ前記通信経路を用いて前記セッションを維持する、処理をコンピュータに実行させることを特徴とする通信プログラム。
  14.  前記通信経路を用いて、前記ネットワークの切り替えによって中断された前記第1アプリケーションから前記第2アプリケーションへの通信を継続する処理を前記コンピュータに実行させることを特徴とする請求項13に記載の通信プログラム。
  15.  サーバ装置で動作する第1アプリケーションと、端末装置で動作する第2アプリケーションとの間の通信を処理する通信方法において、
     前記サーバ装置から前記端末装置に中継された前記第1アプリケーションから前記第2アプリケーションへの通信を前記第2アプリケーションに転送する工程と、
     前記第1アプリケーションと前記第2アプリケーションの間の通信により確立されたセッションに対応する通信経路を生成し、前記端末装置が接続されるネットワークの切り替えに応じ前記通信経路を用いて前記セッションを維持する工程とを、コンピュータが実行することを特徴とする通信方法。
  16.  前記通信経路を用いて、前記ネットワークの切り替えによって中断された前記第1アプリケーションから前記第2アプリケーションへの通信を継続する処理を前記コンピュータが実行することを特徴とする請求項15に記載の通信方法。
  17.  前記切り替え後のネットワークにおける前記端末装置の識別情報を前記サーバ装置に通知する処理を前記コンピュータが実行することを特徴とする請求項15または16に記載の通信方法。
  18.  サーバ装置で動作する第1アプリケーションと、端末装置で動作する第2アプリケーションとの間の通信を処理する通信方法において、
     前記第1アプリケーションから前記第2アプリケーションへの通信を前記サーバ装置から前記端末装置に中継する工程と、
     前記第1アプリケーションと前記第2アプリケーションの間の通信により確立されたセッションに対応する通信経路を生成し、前記端末装置が接続されるネットワークの切り替えに応じ前記通信経路を用いて前記セッションを維持する工程とを、コンピュータが実行することを特徴とする通信方法。
  19.  前記通信経路を用いて、前記ネットワークの切り替えによって中断された前記第1アプリケーションから前記第2アプリケーションへの通信を継続する処理を前記コンピュータが実行することを特徴とする請求項18に記載の通信方法。
PCT/JP2016/079156 2016-09-30 2016-09-30 通信システム、端末装置、サーバ装置、通信プログラム、及び通信方法 WO2018061209A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018541856A JPWO2018061209A1 (ja) 2016-09-30 2016-09-30 通信システム、端末装置、サーバ装置、通信プログラム、及び通信方法
PCT/JP2016/079156 WO2018061209A1 (ja) 2016-09-30 2016-09-30 通信システム、端末装置、サーバ装置、通信プログラム、及び通信方法
US16/299,203 US20190205189A1 (en) 2016-09-30 2019-03-12 Communication system, terminal, and server

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/079156 WO2018061209A1 (ja) 2016-09-30 2016-09-30 通信システム、端末装置、サーバ装置、通信プログラム、及び通信方法

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US16/299,203 Continuation US20190205189A1 (en) 2016-09-30 2019-03-12 Communication system, terminal, and server

Publications (1)

Publication Number Publication Date
WO2018061209A1 true WO2018061209A1 (ja) 2018-04-05

Family

ID=61760588

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2016/079156 WO2018061209A1 (ja) 2016-09-30 2016-09-30 通信システム、端末装置、サーバ装置、通信プログラム、及び通信方法

Country Status (3)

Country Link
US (1) US20190205189A1 (ja)
JP (1) JPWO2018061209A1 (ja)
WO (1) WO2018061209A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109672580A (zh) * 2018-09-21 2019-04-23 平安科技(深圳)有限公司 全链路监控方法、装置、终端设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001231080A (ja) * 2000-02-18 2001-08-24 Nippon Telegr & Teleph Corp <Ntt> ネットワークサービス継続システム及び移動端末
US20140369188A1 (en) * 2013-06-17 2014-12-18 Seven Networks, Inc. Selective activation of network management policies of mobile devices in a mobile network

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7882247B2 (en) * 1999-06-11 2011-02-01 Netmotion Wireless, Inc. Method and apparatus for providing secure connectivity in mobile and other intermittent computing environments
US8238326B2 (en) * 2004-11-18 2012-08-07 Ruckus Wireless, Inc. Maintaining consistent network connections while moving through wireless networks
WO2009070061A1 (en) * 2007-11-30 2009-06-04 Telefonaktiebolaget L M Ericson (Publ) Method and apparatus for handling a local breakout session
US8831566B2 (en) * 2008-11-21 2014-09-09 At&T Intellectual Property I, L.P. Femtocell local breakout management services
US20160119165A1 (en) * 2014-10-27 2016-04-28 Netsnapper Technologies Sarl Methods and systems to manage network connections

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001231080A (ja) * 2000-02-18 2001-08-24 Nippon Telegr & Teleph Corp <Ntt> ネットワークサービス継続システム及び移動端末
US20140369188A1 (en) * 2013-06-17 2014-12-18 Seven Networks, Inc. Selective activation of network management policies of mobile devices in a mobile network

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109672580A (zh) * 2018-09-21 2019-04-23 平安科技(深圳)有限公司 全链路监控方法、装置、终端设备及存储介质
CN109672580B (zh) * 2018-09-21 2022-01-18 平安科技(深圳)有限公司 全链路监控方法、装置、终端设备及存储介质

Also Published As

Publication number Publication date
JPWO2018061209A1 (ja) 2019-04-04
US20190205189A1 (en) 2019-07-04

Similar Documents

Publication Publication Date Title
JP4684339B2 (ja) ネットワーク制御装置およびネットワーク制御方法
JP3670624B2 (ja) 移動端末、移動端末の通信方法、移動端末の制御系ドライバ、移動端末の制御系ドライバの処理方法、およびコンピュータプログラム製品
US8824480B2 (en) Method and apparatus for end-host based mobility, multi-homing and multipath protocols
EP2014126B1 (en) Apparatus and device for mobility management
JP2853662B2 (ja) 移動ホスト対応ネットワーク
JP3545987B2 (ja) 通信方法及びモバイルip環境
JP4652276B2 (ja) 通信システム及びそれに用いられる管理装置並びに中継装置
JP5053835B2 (ja) 中継装置
JP2018166258A (ja) 中継通信方法、中継通信プログラム、及び中継通信装置
JPH08307446A (ja) ネットワークシステムの使用方法
JPH11163947A (ja) ゲートウェイ装置、無線端末装置、ルータ装置および通信ネットワークのゲートウェイ制御方法
JP2004506378A (ja) 移動インターネットのためのパケット伝送方法
WO2018061209A1 (ja) 通信システム、端末装置、サーバ装置、通信プログラム、及び通信方法
US8233454B2 (en) Communication system and method for switching between wireless connections
JP4567560B2 (ja) モバイルルータ、ホームエージェントおよび移動通信システム
US20080215754A1 (en) Bridging Data Network Communications
JP3790140B2 (ja) マルチホップネットワークの中継方法および無線ノード
JP2004201476A (ja) 列車車両間通信中継装置
JP6662152B2 (ja) 通信プログラム、通信方法、及び通信装置
JP3385186B2 (ja) パケットルーチング装置
JP2002223236A (ja) 通信システムにおけるゲートウェイ装置及び通信システムにおけるルート最適化方法
JP4715041B2 (ja) 通信システム
JP2005244273A (ja) データ通信制御装置
CN109068338A (zh) 一种探测和处理三地址无线分布式系统兼容性的系统及方法
JP3669366B2 (ja) 移動端末及びネットワークインタフェース切替方法

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2018541856

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16917759

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16917759

Country of ref document: EP

Kind code of ref document: A1