WO2009093308A1 - 接続制御方法、接続制御サーバ装置、接続制御クライアント装置、及びプログラム - Google Patents

接続制御方法、接続制御サーバ装置、接続制御クライアント装置、及びプログラム Download PDF

Info

Publication number
WO2009093308A1
WO2009093308A1 PCT/JP2008/050824 JP2008050824W WO2009093308A1 WO 2009093308 A1 WO2009093308 A1 WO 2009093308A1 JP 2008050824 W JP2008050824 W JP 2008050824W WO 2009093308 A1 WO2009093308 A1 WO 2009093308A1
Authority
WO
WIPO (PCT)
Prior art keywords
connection
session
connection control
unit
tunnel
Prior art date
Application number
PCT/JP2008/050824
Other languages
English (en)
French (fr)
Inventor
Hiroaki Hata
Original Assignee
Ntt Pc Communications, Inc.
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 Ntt Pc Communications, Inc. filed Critical Ntt Pc Communications, Inc.
Priority to JP2009550393A priority Critical patent/JP5122587B2/ja
Priority to PCT/JP2008/050824 priority patent/WO2009093308A1/ja
Publication of WO2009093308A1 publication Critical patent/WO2009093308A1/ja

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding

Definitions

  • the present invention relates to a technique for disclosing only a specific application installed in a server terminal to an unspecified number of client terminals on the Internet.
  • Devices such as personal computers, mobile phones, and PDAs are generally used as personal terminals for receiving content.
  • individuals will send content to the outside due to the spread of SNS and blogs. It is often used as a server terminal.
  • a server application such as a web server is mounted on the server terminal, and access from an unspecified number of client terminals is received via the Internet.
  • the devices When the above devices are used as network devices, from the viewpoint of ensuring security, the devices are generally placed in a private network under the control of NAPT (Network Address Port Translation) or the like. Even if a global IP address is assigned to these devices, these devices are not always connected to the network. Therefore, these devices have a global IP address using a technology such as DHCP (Dynamic Host Configuration Protocol). It is common to be assigned. Therefore, the IP address assigned to these devices will change each time the device disconnects / connects to the network.
  • NAPT Network Address Port Translation
  • the network environment as described above is a network environment that is not suitable for installing a server in the first place, and it is not possible to access a server terminal installed in such a network environment from an unspecified client terminal connected to the Internet. Have difficulty.
  • the various devices described above are devices that are not originally intended to be used as server terminals, and there is a problem of danger caused by opening such devices to a large number of unspecified clients on the Internet. There is also.
  • a mobile phone since a mobile phone is generally equipped with a digital camera and a microphone, it can be operated as a so-called Web camera by being connected to a network. Then, the mobile phone as a Web server requires moving image content from an unspecified number of client terminals.
  • mobile phones are equipped with IC cards, and many of them fulfill the functions of a wallet and a key. If these functions are accessed, there is a risk of unauthorized operations.
  • the present invention has been made in view of the above points, and an object of the present invention is to provide a technique for publishing only a specific application in a server terminal to an unspecified number of client terminals on the Internet.
  • connection control client device having a connection control client unit connected to a server application unit, and a connection control server device connected to an application client terminal
  • connection control A step of generating a tunnel between a server device and the connection control client unit, and the connection control server device between the connection control server device and the application client terminal based on a connection request from the application client terminal Establishing a first connection and obtaining a first connection identifier for identifying the first connection; and the connection control server device generates a session ID corresponding to the first connection, and the session ID
  • the connection control client unit that has received the session establishment request establishes a second connection between the connection control client unit and the server application unit, and identifies the second connection.
  • connection control client unit when the connection control client unit receives a packet from the server application unit via the second connection, the connection control client unit acquires the second connection identifier corresponding to the second connection.
  • a step of adding a tunnel header to the packet and transmitting the packet with the tunnel header to the connection control server device via the tunnel; and the connection control server device having received the packet with the tunnel header includes the tunnel header Included Acquiring the first connection identifier corresponding to the session ID from the first connection session correspondence storage means, and the connection control server device corresponds to the first connection identifier.
  • connection control method when the connection control server device receives a packet from the application client terminal via the first connection, the first connection identifier corresponding to the first connection is set.
  • a step of transmitting the packet with the tunnel header to the connection control client unit via the tunnel, and the connection control client unit that has received the packet with the tunnel header includes: Included in header Obtaining the session ID, obtaining the second connection identifier corresponding to the session ID from the second connection session correspondence storage means, and the connection control client unit including the second connection identifier. And a step of transmitting the packet to the server application unit using the second connection corresponding to.
  • the present invention also relates to the connection control server device used in a system having a connection control client device having a connection control client unit connected to a server application unit and a connection control server device connected to an application client terminal.
  • a tunnel generating means for generating a tunnel between the connection control server device and the connection control client unit, and between the connection control server device and the application client terminal based on a connection request from the application client terminal.
  • a connection identifier acquiring means for acquiring a connection identifier for identifying the connection, generating a session ID corresponding to the connection, and sending a session opening request including the session ID
  • a session establishment request transmission unit that transmits to the connection control client unit via a tunnel, and a connection session correspondence recording unit that records the session ID and the connection identifier in association with each other in a connection session correspondence storage unit. It can also be configured as a connection control server device.
  • a tunnel header-attached packet receiving means for receiving a tunnel header-attached packet to which a tunnel header including the session ID is added from the connection control client unit, and acquiring the session ID included in the tunnel header
  • a connection identification means for obtaining the connection identifier corresponding to the session ID from the connection session correspondence storage means, and a tunnel from the packet with the tunnel header to the application client terminal using the connection corresponding to the connection identifier.
  • Packet transmission means for transmitting a packet excluding the header may be further included.
  • connection control server device when receiving a packet from the application client terminal via the connection, obtains the connection identifier corresponding to the connection from the connection session correspondence storage unit.
  • Session identification means for acquiring the session ID corresponding to a connection identifier, a tunnel for adding a tunnel header including the session ID to the packet, and transmitting the packet with the tunnel header to the connection control client unit via the tunnel It is good also as having a packet transmission means with a header.
  • the present invention can also be realized as a program that causes a computer to function as each means of the connection control server device.
  • the present invention is the connection control client device in a system having a connection control client device having a connection control client unit connected to the server application unit, and a connection control server device connected to the application client terminal,
  • the connection control client unit in the connection control client device includes a tunnel generation unit that generates a tunnel between the connection control server device and the connection control client unit, and a session opening request including a session ID.
  • connection control client unit In response to receiving the session establishment request received from the session establishment request receiving means received from the tunnel, a connection is established between the connection control client unit and the server application unit, and the connection A connection identifier acquisition means for acquiring a connection identifier for identifying a down,
  • a connection control client device comprising: a connection session correspondence recording unit that associates the session ID included in the session establishment request with the connection identifier and stores it in the connection session correspondence storage unit. it can.
  • connection control client device when the connection control client unit receives a packet from the server application unit via the connection, a connection identification unit that acquires the connection identifier corresponding to the connection; and the connection session Session identification means for obtaining the session ID corresponding to the connection identifier from the correspondence storage unit, a tunnel header including the session ID is added to the packet, and the packet with the tunnel header is added to the connection control server via the tunnel. It is good also as having a packet transmission means with a tunnel header transmitted to an apparatus.
  • the connection control client unit includes a tunnel header-added packet receiving unit that receives a packet with a tunnel header to which a tunnel header including the session ID is added from the connection control server device, and the tunnel
  • the server application using the connection identification unit that acquires the session ID included in the header and acquires the connection identifier corresponding to the session ID from the connection session correspondence storage unit, and the connection corresponding to the connection identifier It is good also as having a packet transmission means which transmits the packet remove
  • the present invention can also be realized as a program that causes a computer to function as each means of the connection control client device.
  • FIG. 1 It is a figure which shows the whole structure of the system in embodiment of this invention. It is a figure which shows the example in case there exist multiple sets of a connection control client part and a server application part. It is a figure for demonstrating an outline
  • maintains It is a figure which shows an example of the connection session corresponding table which the connection control client part 12 hold
  • 4 is a flowchart for explaining a data transfer operation in each of a connection control server unit 22 and a connection control client unit 12. It is a figure for demonstrating session end operation
  • FIG. It is a figure which shows the example of a format of a tunnel control packet. It is a figure which shows the format of a session control packet.
  • FIG. 3 is a block diagram illustrating a functional configuration example of a connection control server unit 22.
  • FIG. 3 is a block diagram illustrating a functional configuration example of a connection control client unit 12.
  • Connection control client apparatus 11 Server application part 12 Connection control client part 2 Connection control server apparatus 22 Connection control server part 3 Application client terminal 4 Network 5 Internet 6 Tunnel 101 Tunnel generation and communication part 102 Connection session control part 103 Connection generation and communication Unit 104 Data storage unit 104 111 Session ID generation unit 112 Correspondence table recording unit 113 Session establishment processing unit 114 Connection determination unit 115 Session determination unit 115 201 tunnel generation / communication unit 202 connection session control unit 203 connection generation / communication unit 204 data storage unit 111 correspondence table recording unit 212 session establishment processing unit 213 connection determination unit 214 session determination unit
  • the system according to the present embodiment includes a connection control client device 1, a connection control server device 2, and an application client terminal 3.
  • connection control client device 1 is arranged in a network 4 where a server device that is normally disclosed on the Internet is not installed.
  • the network 4 is, for example, a network inside NAPT to which a private address is assigned, or a network to which a global IP address is distributed by DHCP.
  • connection control server device 2 and the application client terminal 3 are arranged on the Internet 5.
  • the Internet is a network to which a global IP address is assigned.
  • the connection control client device 1 has a server application unit 11 and a connection control client unit 12.
  • the server application unit 11 is a functional unit realized by executing, in the connection control client device 1, a server application program that is to be disclosed to an unspecified number of application client terminals on the Internet.
  • the server application program in the present embodiment is, for example, an http server application program.
  • connection control client unit 12 is a functional unit that forms a tunnel 6 with the connection control server device 2 and communicates with the server application unit 11.
  • the connection control client unit 12 is a functional unit realized by executing a connection control client program in the connection control client device 1.
  • the connection control client device 1 can be realized by installing a program in a computer having a storage device such as a CPU, a memory, and a hard disk. Further, the computer has a socket communication function. As such a computer, a device such as a mobile phone, a PDA, or a home appliance described in the background art can be used in addition to a computer such as a PC.
  • the program may be installed on the computer from a computer-readable recording medium, or may be downloaded and installed via a network.
  • the server application unit 11 exists inside the connection control server device 2, but the server application unit 11 is provided as a server application device outside the connection control server device 2, and connection control with the server application device is performed. It is good also as a structure which connects with the server apparatus 2 via a network. In this case, the server application device is set to communicate only with the connection control server device 2.
  • the server application unit 11 is set so as to communicate only with the connection control client unit 12.
  • the server application unit 11 is set to accept only communication from the local host.
  • the connection control server device 2 has a connection control server unit 22.
  • the connection control server unit 22 is a functional unit that forms a tunnel 6 with the connection control client unit 12 and communicates with the application client terminal. Specifically, after a session between the connection control server unit 22 and the connection control client unit 12 is established, a processing request for the server application unit 11 generated from the application client terminal 3 is accepted and is passed through the tunnel 6. The data for the processing request is received from the server application unit 11 through the connection control client unit 12 and the tunnel 6 and transmitted to the application client terminal 3.
  • the connection control server device 2 can also be realized by installing a program in a computer having a storage device such as a CPU, a memory, and a hard disk. Further, the computer has a socket communication function. The program may be installed on the computer from a computer-readable recording medium, or may be downloaded and installed via a network.
  • the application client terminal 3 is a computer such as a general PC equipped with a Web browser, for example. By connecting to the connection control server device 2, the application client terminal 3 can transmit a processing request to the server application unit 11 existing in the network 4 and acquire data for the processing request.
  • connection control client unit 12 is provided for one server application unit 11.
  • one set of the connection control client unit 11 and the server application unit 12 is shown, but there may be a plurality of sets of connection control client units and server application units. In that case, as shown in FIG. 2, tunnels 6 and 7 between the connection control client devices 12 and 13 and the connection control server device 2 are generated.
  • connection transport layer connection
  • TCP Transmission Control Protocol
  • connection control client unit 12 transmits a tunnel opening request to the connection control server unit 22 (step 1).
  • a NAPT or the like may be installed between the network 4 where the connection control client device 1 is installed and the Internet 5 where the connection control server device 2 is installed. In general, sending a request toward the server and receiving a response to the request can be performed without any problem.
  • connection control server unit 22 returns a tunnel opening response to the connection control client unit 12 (step 2). Thereby, a tunnel 6 is formed between the connection control client unit 12 and the connection control server unit 22.
  • the communication in the tunnel 6 uses a transport layer protocol such as TCP.
  • connection control server unit 22 in order to request processing (for example, to request content) from the server application unit 11 (step 3), and the connection control server unit 22 Is returned (step 4), a connection is established between the connection control server unit 22 and the application client terminal 3.
  • this connection is a TCP connection.
  • TCP a connection is established by a three-way handshake, but FIG. 3 shows a simplified procedure.
  • connection control server unit 22 transmits a session establishment request to the connection control client unit 12 (step 5).
  • the connection control client unit 12 that has received the session establishment request transmits a connection request to the server application unit 11 (step 6), and the server application unit 11 returns a response (step 7). Further, the connection control client unit 12 returns a response to the session establishment request to the connection control server unit 22 (step 8).
  • the connection between the application client terminal 3 and the connection control server unit 22, the session between the connection control server unit 22 and the connection control client unit 12, the connection control client unit 12 And the server application unit 11 are established, and using these, the application client terminal 3 transmits a processing request to the server application unit 11, and the server application unit 11 returns response data corresponding thereto. it can. That is, data communication is performed between the application client terminal 3 and the server application unit 11 (step 9 in FIG. 3). Thereafter, although not shown in FIG. 3, a session end operation, a tunnel end operation, and the like are performed as necessary.
  • FIG. 4 shows that the application layer section is between the server application section and the application client terminal, the tunnel section is between the connection control client section and the connection control server section, and the TCP section is between the server application section and the connection control client section. It is shown that the TCP section is between the application client terminal and the connection control server unit.
  • a session is a virtual communication path established in the tunnel 6 between the connection control server unit 22 and the connection control client unit 12, and includes one application client terminal 3 and one server application unit.
  • 11 is a communication path that is generated corresponding to the transport layer connection with the network 11.
  • the connection is a virtual communication path in the transport layer between the server application unit 11 and the connection control client unit 12.
  • the virtual communication path in the transport layer between the application client terminal 3 and the connection control server unit 22 is also a connection.
  • connection control client unit 12 (System operation)
  • connection control server unit 22 (System operation)
  • the operations of the connection control client unit 12 and the connection control server unit 22 in the present embodiment will be described in detail according to the sequence chart shown in FIG.
  • the IP address and port number of the connection control server unit 22 facing the tunnel 6 and the IP of the server application unit 11 are sent to the connection control client unit 12.
  • An address and a port number are set (that is, they are stored in a storage device).
  • an authentication ID and a password are assigned to the connection control client unit 12 and these are registered in the connection control server unit 22.
  • the connection control client unit 12 is set with a port number (referred to as a public port number) for requesting the connection control server unit 22 to make public.
  • connection control client unit 12 When the connection control client unit 12 is activated in the connection control client device 1, the connection control client unit 12 transmits a tunnel opening request to the connection control server unit 22 (step 11 in FIG. 5). As shown in FIG. 5, a public port number is added as additional information to the tunnel opening request. Although not shown, an authentication ID and a password are added to the tunnel opening request. If authentication is not performed, it is not necessary to add an authentication ID and password.
  • connection control server unit 22 authenticates the connection control client unit 12 as necessary, and then passively opens the port with the public port number added to the tunnel opening request (request acceptance mode) (step 12).
  • passively opening a port means creating a socket for accepting connections and assigning a public port number to it.
  • connection control server unit 22 If the port can be passively opened, the connection control server unit 22 returns a tunnel opening response to the connection control client unit 12 (step 13). As a result, a tunnel is generated between the connection control server unit 22 and the connection control client unit 12.
  • the generation of a tunnel means that the settings for tunnel communication have been completed in each of the connection control server unit 22 and the connection control client unit 12. That is, this means that the setting for performing the process of encapsulating (adding a tunnel header) to the data or removing the tunnel header from the tunnel data (encapsulated data) is completed.
  • connection control server unit 22 After the connection control server unit 22 receives the tunnel opening request from the connection control client unit 12, when the requested public port number is already used, the port at the port number cannot be opened. The connection control server unit 22 changes the port number and opens the port using an alternative number. The connection control server unit 22 puts the opened port number in the tunnel opening response and returns it to the connection control client 12.
  • a tunnel keep alive packet is exchanged between the connection control client unit 12 and the connection control server unit 22 (step 14).
  • the mutual connection session correspondence table described later is exchanged to confirm that no inconsistency has occurred.
  • connection control server unit 22 can receive tunnel opening requests from a plurality of different connection control client units 12 and 13 and generate a plurality of tunnels.
  • the port is passively opened with the port number: 1 for the connection control client unit 12, and the port is passively opened with the port number: 2 for the connection control client unit 13.
  • each connection control client unit requests the disclosure of the same port number by requesting the disclosure of the same port number.
  • the connection control server unit 22 adopts only one public port number among a plurality of different public port numbers, and does not adopt any other public port number. Assign an alternative port number instead of the public port number and open the port. If the connection control client unit to which the alternative port number is assigned does not permit the alternative port number included in the tunnel opening response, the tunnel is not formed and the tunnel formation process ends.
  • connection control server unit 22 After the connection control server unit 22 passively opens the port, the connection control server unit 22 receives from the application client terminal 3 a connection establishment request addressed to the port (in this embodiment, a TCP connection establishment request) (step 21).
  • the application client terminal 3 can obtain an IP address and a port number to be connected to use a service of a desired server application by accessing a directory server installed on the Internet 5, for example.
  • the connection control server unit 22 registers its IP address and public port number in the directory server in association with the server application name corresponding to the public port number.
  • connection control server unit 22 that has received the connection establishment request generates an individual socket for performing communication with the application client terminal 3 (step 22).
  • the socket is generated by an OS (operating system) function in the connection control server device 2, and an identification number for identifying the socket is generated with the generation of the socket.
  • a TCP connection is established between the connection control server unit 22 and the application client terminal by a three-way handshake.
  • connection control server unit 22 generates a new session ID corresponding to the connection, and stores the session ID and connection identifier (here, communication with the application client terminal 3) in the connection session correspondence table held by the connection control server unit 22. (Socket identification number) is recorded (step 23). Further, the connection control server unit 22 transmits a session establishment request having the session ID as additional information to the connection control client unit 12 through the tunnel (step 24).
  • connection control client unit 12 that has received the session establishment request generates a socket for communication with the server application unit 11 (step 25), and corresponds to the IP address / port number of the server application unit 11 set at the initial setting.
  • a connection establishment request is transmitted (step 26).
  • a TCP connection is established between the server application unit 11 and the connection control client unit 12 via a three-way handshake.
  • connection control client unit 12 When the connection between the server application unit 11 and the connection control client unit 12 is established, the connection control client unit 12 stores the session ID and the connection identifier (here, the server) in the connection session correspondence table held by the connection control client unit 12. The socket identification number for communication with the application unit 11 is recorded (step 27). Further, as a response to the session establishment request, the connection control client unit 12 returns a session establishment response for notifying the success of the session establishment to the connection control server unit 22 via the tunnel (step 28).
  • connection control client unit 12 If connection establishment between the connection control client unit 12 and the server application unit 11 fails, the connection control client unit 12 connects a session establishment response indicating an error without recording information in the connection session correspondence table. It transmits to the control server unit 22. The connection control server unit 22 that has received the error deletes the information recorded in step 23 from the connection session correspondence table.
  • connection control server unit 22 may record the connection ID and the session identifier in the connection session correspondence table after receiving a session establishment response indicating that the connection establishment is successful.
  • FIG. 8A shows an example of a connection session correspondence table held by the connection control server unit 22.
  • FIG. 8B shows an example of a connection session correspondence table held by the connection control client unit 12.
  • the session ID generated when the connection control server unit 22 receives a connection establishment request from the application client terminal 3 is recorded as the session ID.
  • connection identifier of the connection session correspondence table (FIG. 8A) held by the connection control server unit 22 an identifier for identifying a connection between the connection control server unit 22 and the application client terminal 3 is recorded.
  • a socket identification number for communication with the application client terminal 3 in the connection control server unit 22 is recorded as the connection identifier.
  • connection ID in the connection session correspondence table (FIG. 8B) held by the connection control client unit 12 an identifier for identifying a connection between the connection control client unit 12 and the server application unit 11 is recorded.
  • a socket identification number for communication with the server application unit 11 in the connection control client unit 12 is recorded as the connection identifier.
  • connection control server unit 22 and the connection control client unit 12 hold the connection session correspondence table as described above, the connection between the connection control server unit 22 and the application client terminal 3, the connection control client unit 12 and the server application The connection between the units 11 is linked through the session ID.
  • connection control server unit 22 When the connection control server unit 22 receives data (packets) from the application client terminal 3 via the connection (step 31), the connection control server unit 22 refers to its own connection session correspondence table and sets the session ID corresponding to the connection. To get. That is, the connection control server unit 22 acquires the identification number of the socket used to receive the packet, and acquires the session ID corresponding to the identification number from the connection session correspondence table (step 32).
  • step 33 a tunnel header including the session ID is added to the packet, and a packet with a tunnel header to which the tunnel header is added is transmitted to the opposite connection control client unit 12 (step 33).
  • the connection control server unit 22 terminates the connection with the application client terminal 3.
  • connection control client unit 12 receives the packet with the tunnel header, extracts the tunnel header from the packet with the tunnel header, and acquires the session ID included in the tunnel header (step 34). Then, the connection control client unit 12 refers to the connection session correspondence table held by the connection control client unit 12 and acquires a connection identifier corresponding to the session ID (step 35).
  • connection control client unit 12 that has acquired the connection identifier sends a packet from which the tunnel header has been deleted from the received packet with the tunnel header to the connection corresponding to the connection identifier (step 36). That is, the connection control client unit 12 transmits a packet in which the tunnel header is deleted from the received packet with the tunnel header to the server application unit 12 using the socket corresponding to the connection identifier (socket identification number).
  • connection control client unit 12 When the connection control client unit 12 cannot acquire the connection connection identifier corresponding to the session ID from the connection session correspondence table in step 35, the connection control client unit 12 requests the connection control server unit 22 to end the session. Send.
  • connection control client unit 12 When the connection control client unit 12 receives data (packet) from the server application unit via the connection (step 37), the connection control client unit 12 refers to the connection session correspondence table held by itself and corresponds to the connection. A session ID is acquired (step 38). That is, the connection control client unit 12 acquires a session ID corresponding to the identification number of the socket used for receiving the packet from the connection session correspondence table.
  • connection control client unit 12 adds a tunnel header including the session ID to the packet, and transmits the packet with the tunnel header to the opposite connection control server unit 22 (step 39).
  • step 38 if the session ID corresponding to the connection (socket identification number) cannot be obtained from the connection session correspondence table, the connection control client unit 12 terminates the connection with the server application unit 11.
  • connection control server unit 22 receives a packet with a tunnel header. Then, the connection control server unit 22 extracts the tunnel header from the packet with the tunnel header, and acquires the session ID included in the tunnel header (step 40). Then, the connection control server unit 22 refers to the connection session correspondence table held by the connection control server unit 22 and acquires a connection identifier corresponding to the session ID (step 41).
  • connection control server unit 22 that has acquired the connection identifier sends a packet from which the tunnel header is deleted from the received packet with the tunnel header to the connection corresponding to the connection identifier (step 42). That is, the connection control server unit 22 transmits a packet obtained by deleting the tunnel header from the received packet with the tunnel header to the application client terminal 3 using the socket corresponding to the connection identifier (socket identification number).
  • step 41 when the connection control server unit 22 cannot obtain the connection connection identifier corresponding to the session ID from the connection session correspondence table, the connection control server unit 22 ends the session with respect to the connection control client unit 12. Send a request.
  • connection control server unit 22 and the connection control client unit 22 operate in an equal relationship.
  • connection control server unit 22 when the connection control server unit 22 receives the connection termination request from the application client terminal 3 via the connection (step 51), the connection control server unit 22 uses the session ID corresponding to the connection. Is obtained from the connection session correspondence table. Then, the connection control server unit 22 transmits a session end request to which the tunnel header including the session ID is added to the connection control client unit 12 (step 52). Upon receiving the session termination request including the session ID, the connection control client unit 12 acquires the connection identifier corresponding to the session ID from the connection session correspondence table, and terminates the connection with the server application unit 11 corresponding to the connection identifier. (Step 53). Then, the connection control client unit 12 returns a session end response to the opposite connection control server unit 22 (step 54).
  • connection control client unit 12 when the connection control client unit 12 receives a connection termination request from the server application unit 11 via a connection, the connection control client unit 12 sets a session ID corresponding to the connection. Obtained from the connection session correspondence table. Then, the connection control client unit 12 transmits a session end request to which the tunnel header including the session ID is added to the connection control server unit 22. The connection control server unit 22 that has received the session termination request including the session ID acquires the connection identifier corresponding to the session ID from the connection session correspondence table, and terminates the connection corresponding to the connection identifier. Then, the connection control server unit 22 returns a session end response to the opposite connection control client unit 12.
  • FIG. 11 shows a tunnel end operation when the connection control server unit 22 ends the operation.
  • connection control server unit 22 When the connection control server unit 22 ends the operation, the connection control server unit 22 transmits a tunnel end request to which the tunnel header including the session ID is added to the connection control client unit 12 before the operation ends (step 61). ). The connection control client unit 12 that has received the tunnel termination request terminates all open connections (step 62), and then returns a tunnel termination response to the opposite connection control server unit 22 (step 63). Then, the connection control server unit 22 also terminates all connections (step 64).
  • connection control client unit 12 When a tunnel end request is sent from the connection control server unit 22 to the connection control client unit 12 as described above, after the tunnel is deleted, the connection control client unit 12 sends a tunnel opening request again to the connection control server unit 22. You may make it perform the operation
  • connection control client unit 12 when the connection control client unit 12 ends the operation, the connection control client unit 12 transmits a tunnel end request with the tunnel header added thereto to the connection control server unit 22 before the operation ends.
  • the connection control server unit 22 that has received the tunnel termination request terminates all open connections, and then returns a tunnel termination response to the opposite connection control client unit 12. Then, the connection control client unit 12 also ends all connections.
  • connection control server unit 22 when a tunnel termination request is sent from the connection control client unit 12 to the connection control server unit 22, the connection control server unit 22 does nothing particularly after the tunnel is deleted, and connection control is performed again. It is possible to wait for receiving a tunnel opening request from the client unit 12.
  • FIG. 12 shows a format example of a packet with a tunnel header used for communication between the connection control server unit 22 and the connection control client unit 12.
  • the tunnel header of a packet with a tunnel header includes a session ID, a control ID (Ctl ID), and a sequence number (SQC). Note that the tunnel header also includes the IP address of the opposite device constituting the tunnel, but these are not shown in FIG.
  • the session ID is identification information for identifying a session.
  • a packet with a tunnel header whose session ID is 0 is called a control packet, and the control type is determined by the control ID in the control packet.
  • the sequence number is a number for identifying whether a packet with a tunnel header is related to retransmission, and indicates the number of times the same packet with a tunnel header has been transmitted.
  • FIG. 13 shows a format example of a tunnel control packet which is one of the control packets.
  • This tunnel control packet corresponds to the control of tunnel establishment or tunnel termination according to the value of the control ID, and “REASON” identifies whether it is a request or a response.
  • FIG. 14 shows a format example of a session control packet which is one of the control packets.
  • This session control packet corresponds to the control of session establishment or session termination according to the control ID, the session to be controlled is identified by the session ID in the packet, and the request or response is identified by “REASON”.
  • FIG. 15 shows a format example of the keep alive packet.
  • This keep alive packet includes a connection session correspondence table.
  • FIG. 16 shows a format example of a packet with a tunnel header for communication.
  • the session ID is not 0, and application data is included in the packet body.
  • the connection is identified from the session ID by the connection session correspondence table, and the data of the packet body is transmitted to the connection.
  • FIG. 17 shows an example of a management session using a control packet.
  • connection control server device 2 including the connection control server unit 22 that implements the operations described so far can be configured with the following means. That is, the connection control server device uses the connection control used in a system having a connection control client device having a connection control client unit connected to a server application unit and a connection control server device connected to an application client terminal.
  • Session establishment request transmitting means for transmitting a session establishment request to the connection control client unit via the tunnel, and connection session correspondence recording means for associating the session ID with the connection identifier and recording them in a connection session correspondence storage means; At least.
  • connection control client device 1 including the connection control client unit 12 that realizes the operations described so far can be configured to include the following means. That is, the connection control client device 1 is a connection control client device in a system having a connection control client device having a connection control client unit connected to a server application unit and a connection control server device connected to an application client terminal.
  • the connection control client unit in the connection control client device includes a tunnel generation means for generating a tunnel between the connection control server device and the connection control client unit, and a session opening request including a session ID.
  • a session establishment request receiving means for receiving from the connection control server device via the tunnel, and a connection between the connection control client unit and the server application unit in response to the reception of the session establishment request.
  • a connection identifier for acquiring a connection identifier for identifying the connection, a connection identifier for storing the session ID included in the session establishment request and the connection identifier in association with each other.
  • a session correspondence recording means for acquiring a connection identifier for identifying the connection
  • connection control server unit 22 and the connection control client unit 12 that perform the operations described so far will be described more specifically.
  • FIG. 18 is a block diagram illustrating a functional configuration example of the connection control server unit 22.
  • the connection control server unit 22 includes a tunnel generation / communication unit 101, a connection session control unit 102, a connection generation / communication unit 103, and a data storage unit 104.
  • the connection session control unit 102 includes a session ID generation unit 111, a correspondence table recording unit 112, a session establishment processing unit 113, a connection determination unit 114, and a session determination unit 115.
  • the operation of the connection control server unit 22 having this configuration will be described.
  • the tunnel generation / communication unit 101 generates a tunnel with the connection control client unit 12 based on the tunnel opening request received from the connection control client unit 12. Further, the tunnel generation / communication unit 101 notifies the connection generation / communication unit 103 of the public port number added to the tunnel opening request received from the connection control client unit 12.
  • connection generation / communication unit 103 opens a connection reception port using the public port number notified from the tunnel generation / communication unit 101.
  • connection generation / communication unit 103 A socket is generated (connection is established), and communication with the application client terminal 3 is performed using the socket. Further, the connection generation / communication unit 103 notifies the connection session control unit 102 of the identifier of the generated connection (in this embodiment, the socket identification number).
  • connection reception port generated by the connection generation / communication unit 103 receives a connection establishment request from the application client terminal 3, the session ID generation unit 111 of the connection session control unit 102 newly generates a session ID, Is transferred to the correspondence table recording unit 112 and the session establishment processing unit 113.
  • the correspondence table recording unit 112 associates the session ID with the connection identifier (socket identification number) notified from the connection generation / communication unit 103, and stores it in the connection session correspondence table stored in the data storage unit 104. Record. Further, the connection establishment processing unit 113 generates a session establishment request to which the session ID is added and passes it to the tunnel generation / communication unit 101. The tunnel generation / communication unit 101 sends a session establishment request to which the session ID is added to the connection control client unit 12 through the tunnel.
  • connection generation / communication unit 103 After the session between the connection control client unit 12 and the connection control server unit 22 is established, when the connection generation / communication unit 103 receives a packet from the application client terminal 3, the connection generation / communication unit 103 receives the received packet. At the same time, the session determination unit 115 is notified of the identifier of the connection used for packet reception.
  • the session determination unit 115 refers to the connection session correspondence table stored in the data storage unit 104, acquires a session ID corresponding to the connection identifier, and passes the session ID and packet to the tunnel generation / communication unit 101.
  • the tunnel generation / communication unit 101 transmits a packet to which the tunnel header including the session ID is added to the connection control client unit 12.
  • the tunnel generation / communication unit 101 When the tunnel generation / communication unit 101 receives a packet with a tunnel header from the connection control client unit 12 via the tunnel, the tunnel generation / communication unit 101 connects the session ID and the packet included in the tunnel header. The data is transferred to the connection determination unit 114 of the session control unit 101.
  • the connection determination unit 114 refers to the connection session correspondence table, acquires a connection identifier corresponding to the session ID, and passes the packet and the connection identifier to the connection generation / communication unit 103.
  • the connection generation / communication unit 103 transmits a packet to the application client terminal 3 using a connection corresponding to the received connection identifier.
  • FIG. 19 is a block diagram illustrating a functional configuration example of the connection control client unit 12.
  • connection control client unit 12 includes a tunnel generation / communication unit 201, a connection session control unit 202, a connection generation / communication unit 203, and a data storage unit 204.
  • the connection session control unit 202 includes a correspondence table recording unit 211, a session establishment processing unit 212, a connection determination unit 213, and a session determination unit 214. The operation of the connection control client unit 12 having this configuration will be described below.
  • the tunnel generation / communication unit 201 transmits a tunnel establishment request with the public port number added to the connection control server unit 22 and generates a tunnel with the connection control server unit 22.
  • the tunnel generation / communication unit 201 When the tunnel generation / communication unit 201 receives from the connection control server unit 22 a session establishment request to which a tunnel header including a session ID is added, the session ID and the session establishment request are passed to the session establishment processing unit 212.
  • the session establishment processing unit 212 passes the session ID to the correspondence table recording unit 213. Further, the session establishment processing unit 212 requests the connection generation / communication unit 203 to establish a connection with the server application unit 11.
  • the connection generation / communication unit 203 Upon receiving the request, the connection generation / communication unit 203 generates a socket for communication with the server application unit 11, acquires the identification number of the socket as a connection identifier, and passes it to the session establishment processing unit 212.
  • the session establishment processing unit 212 passes the connection identifier to the correspondence table recording unit 213 and instructs the tunnel generation / communication unit 201 to transmit a session establishment response, and the tunnel creation / communication unit 201 connects the session establishment response. It transmits to the control server unit 22.
  • the correspondence table recording unit 213 that has received the session ID and the connection identifier as described above records the session ID and the connection identifier in the connection session correspondence table stored in the data storage unit 204 in association with each other.
  • connection generation / communication unit 203 After the session between the connection control client unit 21 and the connection control server unit 22 is established, when the connection generation / communication unit 203 receives a packet from the server application unit 11, the connection generation / communication unit 203 receives the received packet. At the same time, the session determination unit 214 is notified of the identifier of the connection used for packet reception.
  • the session determination unit 214 refers to the connection session correspondence table stored in the data storage unit 204, acquires a session ID corresponding to the connection identifier, and passes the session ID and packet to the tunnel generation / communication unit 201.
  • the tunnel generation / communication unit 201 generates a packet to which a tunnel header including the session ID is added, and transmits it to the connection control server unit 22.
  • the tunnel generation / communication unit 201 When the tunnel generation / communication unit 201 receives a packet with a tunnel header from the connection control server unit 22 via the tunnel, the tunnel generation / communication unit 201 connects the session ID and the packet included in the tunnel header. The data is transferred to the connection determination unit 213 of the session control unit 202.
  • the connection determination unit 213 refers to the connection session correspondence table, acquires a connection identifier corresponding to the session ID, and passes the packet and the connection identifier to the connection generation / communication unit 203.
  • the connection generation / communication unit 203 transmits a packet to the server application unit 203 using the connection corresponding to the received connection identifier.
  • the TCP connection is described as an example of the transport layer connection.
  • the transport layer connection is not limited to the TCP connection, and UDP may be used.
  • UDP a pair of the IP address and port number of the opposite device can be used as a connection identifier.
  • the connection between the application client terminal 3 and the connection control server unit 22 is based on the IP address and port number of the application client terminal 3. Since it can be identified, a set of the IP address and port number of the application client terminal 3 can be used as a connection identifier in the connection session correspondence table in the connection control server unit 22.
  • connection between the application client terminal 3 and the connection control server unit 22, the session in the tunnel between the connection control server unit 22 and the connection control client unit 12, and the connection control Connections between the client unit 12 and the server application unit 11 are associated with each other to form one link, and application data can be transmitted and received between the application client terminal 3 and the server application unit 11. . That is, only a specific application can be disclosed to an unspecified number of client terminals on the Internet. Thereby, even when the server application unit 11 and the connection control client unit 12 are in the private network, the application client terminal 3 on the Internet can use the application service of the server application unit 11 safely.
  • the application client terminal 3 is not aware of the movement, and connection control given the global IP address of the Internet.
  • the application service of the server application unit 11 can be used.

Abstract

 サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおいて、前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成し、前記接続制御サーバ装置が、前記アプリケーションクライアント端末との間に第1のコネクションを確立し、前記第1のコネクションに対応するセッションIDを含むセッション開設要求を前記接続制御クライアント部に送信し、前記セッションIDと前記第1のコネクションの識別子とを対応付けて格納手段に格納し、前記接続制御クライアント部が、前記サーバアプリケーション部との間に第2のコネクションを確立し、前記セッション開設要求に含まれる前記セッションIDと、前記第2のコネクションの識別子とを対応付けて格納手段に格納する。

Description

接続制御方法、接続制御サーバ装置、接続制御クライアント装置、及びプログラム
 本発明は、サーバ端末に搭載された特定のアプリケーションのみをインターネット上の不特定多数のクライアント端末に公開する技術に関するものである。
 パーソナルコンピュータ、携帯電話機、PDA等の装置は、コンテンツを受け取るためのパーソナル端末として用いられるのが一般的であるが、SNSやブログ等の普及を背景にして今後は個々人がコンテンツを外部に発信するためのサーバ端末として使用されることが多くなる。
 その場合、上記のサーバ端末にはWebサーバ等のサーバアプリケーションが搭載され、インターネットを介して不特定多数のクライアント端末からのアクセスを受けることになる。
 更に、パーソナルコンピュータ、携帯電話機、PDA等の装置ばかりでなく、デジタルカメラ、キャッシュレジスタ、情報家電といった装置にも外部からの要求に基づく情報発信のためのサーバアプリケーションが搭載される場合が多くなると考えられる。このように、今後は、ネットワーク上のいたるところにサーバとして機能する機器が存在するようになる。なお、本願に関連し得る先行技術文献として下記の文献1、2がある。
特開2000-216827号公報 特開2005-198145号公報
 上記の各種装置がネットワーク機器として使用される場合、セキュリティーを確保する観点から、当該装置は、NAPT(Network Address Port Translation)等の配下にあるプライベートネットワーク内に配置されるのが一般的である。また、これらの装置にグローバルIPアドレスが割り当てられる場合でも、これらの装置は常時ネットワークに接続されるわけではないため、これらの装置にはDHCP(Dynamic Host Configuration Protocol)等の技術によりグローバルIPアドレスが割り当てられるのが一般的である。従って、これらの装置に割り当てられるIPアドレスは、装置がネットワークに切断/接続するたびに変化することになる。
 上述したようなプライベートネットワークに存在する上記各種装置をサーバ端末として使用する場合、インターネット上の不特定多数のクライアント端末は当該サーバ端末にアクセスすることはできない。また、DHCPによりグローバルIPアドレスが付与されるネットワークに存在するサーバ端末に関しては、動的に変化するグローバルIPアドレスに対応するためにダイナミックDNSを採用することも考えられるが、ダイナミックDNSは反応が遅く、動的に変化するグローバルIPアドレスにリアルタイムに追従することは困難である。
 上記のようなネットワーク環境はそもそもサーバを設置することに適していないネットワーク環境であり、このようなネットワーク環境に設置されたサーバ端末にインターネットに接続された不特定のクライアント端末からアクセスを行うことは困難である。
 更に、上述した各種装置は、もともとサーバ端末として使用することを想定していない装置であり、そのような装置をインターネット上の不特定多数のクライアントに公開してしまうことにより発生する危険性の問題もある。
 例えば、携帯電話機には一般的にデジタルカメラとマイクロホンが搭載されているため、これがネットワークに接続されることによりいわゆるWebカメラとして動作させることが可能である。そして、Webサーバとしての当該携帯電話機には不特定多数のクライアント端末から動画コンテンツが要求されることになる。しかし、携帯電話機にはICカードが搭載されており、財布や鍵の機能を果たしているものが多く、これらの機能がアクセスを受けることにより不正な操作をなされる恐れがある。
 従って、もともとサーバ端末として使用することを想定していない携帯電話機のような装置をインターネットの不特定多数のクライアントに公開する場合には、当該装置の特定のアプリケーションのみ(例えばWebカメラアプリケーションのみ)をインターネットに公開して、その他のアプリケーションについては公開しないことが必要になる。
 本発明は上記の点に鑑みてなされたものであり、サーバ端末における特定のアプリケーションだけをインターネット上の不特定多数のクライアント端末に公開するための技術を提供することを目的とする。
 上記の課題は、サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおける接続制御方法であって、前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するステップと、前記接続制御サーバ装置が、前記アプリケーションクライアント端末からの接続要求に基づき前記接続制御サーバ装置と前記アプリケーションクライアント端末との間に第1のコネクションを確立し、当該第1のコネクションを識別する第1のコネクション識別子を取得するステップと、前記接続制御サーバ装置が、前記第1のコネクションに対応するセッションIDを生成し、当該セッションIDを含むセッション開設要求を前記接続制御クライアント部に送信するステップと、前記接続制御サーバ装置が、前記セッションIDと前記第1のコネクション識別子とを対応付けて第1のコネクションセッション対応格納手段に格納するステップと、前記セッション開設要求を受信した前記接続制御クライアント部が、当該接続制御クライアント部と前記サーバアプリケーション部との間に第2のコネクションを確立し、当該第2のコネクションを識別する第2のコネクション識別子を取得するステップと、前記接続制御クライアント部が、前記セッション開設要求に含まれる前記セッションIDと、前記第2のコネクション識別子とを対応付けて第2のコネクションセッション対応格納手段に格納するステップとを有することを特徴とする接続制御方法により解決される。
 上記接続制御方法において、前記接続制御クライアント部が、前記サーバアプリケーション部から前記第2のコネクションを介してパケットを受信した場合に、当該第2のコネクションに対応する前記第2のコネクション識別子を取得するステップと、前記接続制御クライアント部が、前記第2のコネクションセッション対応格納部から前記第2のコネクション識別子に対応する前記セッションIDを取得するステップと、前記接続制御クライアント部が、前記セッションIDを含むトンネルヘッダを前記パケットに付加し、当該トンネルヘッダ付パケットを前記トンネルを介して前記接続制御サーバ装置に送信するステップと、前記トンネルヘッダ付パケットを受信した前記接続制御サーバ装置が、当該トンネルヘッダに含まれる前記セッションIDを取得し、前記第1のコネクションセッション対応格納手段から、当該セッションIDに対応する前記第1のコネクション識別子を取得するステップと、前記接続制御サーバ装置が、前記第1のコネクション識別子に対応する前記第1のコネクションを用いて前記アプリケーションクライアント端末に前記パケットを送信するステップとを更に有することとしてもよい。
 また、上記接続制御方法において、前記接続制御サーバ装置が、前記アプリケーションクライアント端末から前記第1のコネクションを介してパケットを受信した場合に、当該第1のコネクションに対応する前記第1のコネクション識別子を取得するステップと、前記接続制御サーバ装置が、前記第1のコネクションセッション対応格納部から前記第1のコネクション識別子に対応する前記セッションIDを取得するステップと、前記接続制御サーバ装置が、前記セッションIDを含むトンネルヘッダを前記パケットに付加し、当該トンネルヘッダ付パケットを前記トンネルを介して前記接続制御クライアント部に送信するステップと、前記トンネルヘッダ付パケットを受信した前記接続制御クライアント部が、当該トンネルヘッダに含まれる前記セッションIDを取得し、前記第2のコネクションセッション対応格納手段から、当該セッションIDに対応する前記第2のコネクション識別子を取得するステップと、前記接続制御クライアント部が、前記第2のコネクション識別子に対応する前記第2のコネクションを用いて前記サーバアプリケーション部に前記パケットを送信するステップとを更に有することとしてもよい。
 また、本発明は、サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおいて使用される前記接続制御サーバ装置であって、前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するトンネル生成手段と、前記アプリケーションクライアント端末からの接続要求に基づき前記接続制御サーバ装置と前記アプリケーションクライアント端末との間にコネクションを確立し、当該コネクションを識別するコネクション識別子を取得するコネクション識別子取得手段と、前記コネクションに対応するセッションIDを生成し、当該セッションIDを含むセッション開設要求を前記トンネルを介して前記接続制御クライアント部に送信するセッション開設要求送信手段と、前記セッションIDと前記コネクション識別子とを対応付けてコネクションセッション対応格納手段に記録するコネクションセッション対応記録手段とを有することを特徴とする接続制御サーバ装置として構成することもできる。
 上記接続制御サーバ装置において、前記セッションIDを含むトンネルヘッダが付加されたトンネルヘッダ付パケットを前記接続制御クライアント部から受信するトンネルヘッダ付パケット受信手段と、前記トンネルヘッダに含まれる前記セッションIDを取得し、前記コネクションセッション対応格納手段から、当該セッションIDに対応する前記コネクション識別子を取得するコネクション識別手段と、前記コネクション識別子に対応する前記コネクションを用いて前記アプリケーションクライアント端末に前記トンネルヘッダ付パケットからトンネルヘッダを除いたパケットを送信するパケット送信手段とを更に有することとしてもよい。
 また、上記接続制御サーバ装置は、前記アプリケーションクライアント端末から前記コネクションを介してパケットを受信した場合に、当該コネクションに対応する前記コネクション識別子を取得するコネクション識別手段と、前記コネクションセッション対応格納部から前記コネクション識別子に対応する前記セッションIDを取得するセッション識別手段と、前記セッションIDを含むトンネルヘッダを前記パケットに付加し、当該トンネルヘッダ付パケットを前記トンネルを介して前記接続制御クライアント部に送信するトンネルヘッダ付パケット送信手段とを更に有することとしてもよい。
 また、本発明は、コンピュータを上記接続制御サーバ装置の各手段として機能させるプログラムとして実現することもできる。
 また、本発明は、サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおける前記接続制御クライアント装置であって、当該接続制御クライアント装置における前記接続制御クライアント部は、前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するトンネル生成手段と、セッションIDを含むセッション開設要求を前記接続制御サーバ装置から前記トンネルを介して受信するセッション開設要求受信手段と、前記セッション開設要求を受信したことに応じて、前記接続制御クライアント部と前記サーバアプリケーション部との間にコネクションを確立し、当該コネクションを識別するコネクション識別子を取得するコネクション識別子取得手段と、
 前記セッション開設要求に含まれる前記セッションIDと、前記コネクション識別子とを対応付けてコネクションセッション対応格納手段に格納するコネクションセッション対応記録手段とを有することを特徴とする接続制御クライアント装置として構成することもできる。
 上記接続制御クライアント装置において、前記接続制御クライアント部は、前記サーバアプリケーション部から前記コネクションを介してパケットを受信した場合に、当該コネクションに対応する前記コネクション識別子を取得するコネクション識別手段と、前記コネクションセッション対応格納部から前記コネクション識別子に対応する前記セッションIDを取得するセッション識別手段と、前記セッションIDを含むトンネルヘッダを前記パケットに付加し、当該トンネルヘッダ付パケットを前記トンネルを介して前記接続制御サーバ装置に送信するトンネルヘッダ付パケット送信手段とを更に有することとしてもよい。
 また、上記接続制御クライアント装置において、前記接続制御クライアント部は、前記セッションIDを含むトンネルヘッダが付加されたトンネルヘッダ付パケットを前記接続制御サーバ装置から受信するトンネルヘッダ付パケット受信手段と、前記トンネルヘッダに含まれる前記セッションIDを取得し、前記コネクションセッション対応格納手段から、当該セッションIDに対応する前記コネクション識別子を取得するコネクション識別手段と、前記コネクション識別子に対応する前記コネクションを用いて前記サーバアプリケーション部に前記トンネルヘッダ付パケットからトンネルヘッダを除いたパケットを送信するパケット送信手段とを更に有することとしてもよい。
 また、本発明は、コンピュータを上記接続制御クライアント装置の各手段として機能させるプログラムとして実現することもできる。
 本発明によれば、プライベートネットワーク等に存在するサーバ端末における特定のアプリケーションだけをインターネット上の不特定多数のクライアント端末に公開する技術を提供できる。
本発明の実施の形態におけるシステムの全体構成を示す図である。 接続制御クライアント部とサーバアプリケーション部の組が複数存在する場合の例を示す図である。 本発明の実施の形態における動作を概要を説明するための図である。 複数のサーバアプリケーション部と、複数のアプリケーションクライアント端末間でコネクション、セッションを確立し通信を行う場合の例を示す図である。 トンネル開設動作を説明するための図である。 接続制御サーバ部22が、複数の異なる接続制御クライアント部12、13からのトンネル開設要求を受け付ける場合の例を示す図である。 セッションの開設動作を説明するための図である。 接続制御サーバ部22が保持するコネクションセッション対応表の一例を示す図である。 接続制御クライアント部12が保持するコネクションセッション対応表の一例を示す図である。 接続制御サーバ部22及び接続制御クライアント部12のそれぞれにおけるデータ転送動作を説明するためのフローチャートである。 セッション終了動作について説明するための図である。 トンネル終了動作について説明するための図である。 接続制御サーバ部22と接続制御クライアント部12との間の通信に使用されるトンネルヘッダ付パケットのフォーマット例を示す図である。 トンネルコントロールパケットのフォーマット例を示す図である。 セッションコントロールパケットのフォーマットを示す図である。 キープアライブパケットのフォーマット例を示す図である。 通信用のトンネルヘッダ付パケットのフォーマット例を示す図である。 管理用セッションの例を示す図である。 接続制御サーバ部22の機能構成例を示すブロック図である。 接続制御クライアント部12の機能構成例を示すブロック図である。
符号の説明
1 接続制御クライアント装置
11 サーバアプリケーション部
12 接続制御クライアント部
2 接続制御サーバ装置
22 接続制御サーバ部
3 アプリケーションクライアント端末
4 ネットワーク
5 インターネット
6 トンネル
101 トンネル生成・通信部
102 コネクションセッション制御部
103 コネクション生成・通信部
104 データ格納部104
111 セッションID生成部
112 対応表記録部
113 セッション開設処理部
114 コネクション決定部
115 セッション決定部115
201 トンネル生成・通信部
202 コネクションセッション制御部
203 コネクション生成・通信部
204 データ格納部
111 対応表記録部
212 セッション開設処理部
213 コネクション決定部
214 セッション決定部
 以下、図面を参照して本発明の実施の形態について説明する。
 (システム構成)
 まず、図1を参照して本発明の実施の形態におけるシステムの全体構成について説明する。図1に示すように、本実施の形態のシステムは、接続制御クライアント装置1、接続制御サーバ装置2、及びアプリケーションクライアント端末3を有する。
 接続制御クライアント装置1は、通常はインターネットに公開されるサーバ装置が設置されることのないネットワーク4に配置されているものとする。ネットワーク4は、例えば、プライベートアドレスが付与されたNAPTの内側のネットワークや、DHCPによりグローバルIPアドレスが配布されるネットワークである。
 また、接続制御サーバ装置2及びアプリケーションクライアント端末3は、インターネット5上に配置されているものとする。なお、インターネットとはグローバルIPアドレスを付与されているネットワークである。
 接続制御クライアント装置1は、サーバアプリケーション部11と接続制御クライアント部12とを有している。サーバアプリケーション部11は、インターネット上の不特定多数のアプリケーションクライアント端末に公開しようとするサーバアプリケーションプログラムが接続制御クライアント装置1において実行されることにより実現される機能部である。本実施の形態におけるサーバアプリケーションプログラムは例えばhttpサーバアプリケーションプログラムである。
 接続制御クライアント部12は、接続制御サーバ装置2との間でトンネル6を形成するとともに、サーバアプリケーション部11と通信を行う機能部である。接続制御クライアント部12は、接続制御クライアントプログラムが接続制御クライアント装置1において実行されることにより実現される機能部である。
 接続制御クライアント装置1は、CPU、メモリ、ハードディスク等の記憶装置を備えたコンピュータにプログラムをインストールすることにより実現することができる。また、当該コンピュータは、ソケット通信の機能を備えている。そのようなコンピュータとして、PC等のコンピュータの他、背景技術において説明した、携帯電話機、PDA、家電等の装置を用いることもできる。上記プログラムは、コンピュータ読み取り可能な記録媒体から上記コンピュータにインストールしてもよいし、ネットワークを介してダウンロードしてインストールすることとしてもよい。
 図1に示す例では、サーバアプリケーション部11が接続制御サーバ装置2の内部に存在するが、サーバアプリケーション部11を接続制御サーバ装置2の外部にサーバアプリケーション装置として備え、当該サーバアプリケーション装置と接続制御サーバ装置2とをネットワークを介して接続する構成としてもよい。この場合、サーバアプリケーション装置は接続制御サーバ装置2のみと通信を行うように設定する。
 また、図1に示す構成でも、サーバアプリケーション部11は、接続制御クライアント部12とのみ通信を行うように設定しておく。例えば、サーバアプリケーション部11は、ローカルホストからの通信しか受け付けないように設定しておく。
 接続制御サーバ装置2は、接続制御サーバ部22を有する。接続制御サーバ部22は、接続制御クライアント部12との間でトンネル6を形成するとともに、アプリケーションクライアント端末との間で通信を行う機能部である。具体的には、接続制御サーバ部22と接続制御クライアント部12との間のセッションが確立された後に、アプリケーションクライアント端末3から発生するサーバアプリケーション部11に対する処理要求を受け付け、それをトンネル6を介して接続制御クライアント部12に送信するとともに、接続制御クライアント部12及びトンネル6を介してサーバアプリケーション部11から処理要求に対するデータを受信し、アプリケーションクライアント端末3に送信する。接続制御サーバ装置2も、CPU、メモリ、ハードディスク等の記憶装置を備えたコンピュータにプログラムをインストールすることにより実現することができる。また、当該コンピュータは、ソケット通信の機能を備えている。上記プログラムは、コンピュータ読み取り可能な記録媒体から上記コンピュータにインストールしてもよいし、ネットワークを介してダウンロードしてインストールすることとしてもよい。
 アプリケーションクライアント端末3は、例えばWebブラウザ等を備えた一般的なPC等のコンピュータである。アプリケーションクライアント端末3は、接続制御サーバ装置2に接続することにより、ネットワーク4に存在するサーバアプリケーション部11に対して処理要求を送信し、処理要求に対するデータを取得することができる。
 接続制御クライアント部12は1つのサーバアプリケーション部11に対して1つ備えられる。上記の例では、接続制御クライアント部11とサーバアプリケーション部12の組を1つだけ示しているが、接続制御クライアント部とサーバアプリケーション部の組は複数あってもよい。その場合、図2に示すように、それぞれの接続制御クライアント部12、13について、接続制御サーバ装置2との間のトンネル6、7が生成される。
 上記のシステム構成における動作の概要を図3のシーケンスチャートを参照して説明する。なお、以下の説明では、2つの装置間で形成されるコネクション(トランスポートレイヤのコネクション)はTCP(Transmission Control Protocol)コネクションであるものとする。なお、当該コネクションはTCPコネクションに限られるわけではない。
 まず、接続制御クライアント部12が、トンネル開設要求を接続制御サーバ部22に送信する(ステップ1)。なお、接続制御クライアント装置1が設置されるネットワーク4と、接続制御サーバ装置2が設置されるインターネット5の間にはNAPT等が設置される場合があるが、その場合でも、ネットワーク4からインターネット5に向けての要求の送信と、その要求に対する応答の受信は一般に問題なく行うことができる。
 接続制御サーバ部22は、トンネル開設応答を接続制御クライアント部12に返す(ステップ2)。これにより、接続制御クライアント部12と接続制御サーバ部22間でトンネル6が形成される。このトンネル6における通信には、TCP等のトランスポートレイヤプロトコルを使用する。
 続いて、アプリケーションクライアント端末3は、サーバアプリケーション部11に処理を要求するために(例えばコンテンツを要求するために)、接続制御サーバ部22に接続要求を送り(ステップ3)、接続制御サーバ部22から応答が返されることにより(ステップ4)、接続制御サーバ部22とアプリケーションクライアント端末3との間にコネクションが開設される。本実施の形態では、このコネクションはTCPコネクションである。なお、TCPでは3ウェイハンドシェークによりコネクションが確立されるが、図3は手順を簡略化して示している。
 そして、接続制御サーバ部22は、接続制御クライアント部12に対してセッション開設要求を送信する(ステップ5)。セッション開設要求を受信した接続制御クライアント部12は、サーバアプリケーション部11に対して接続要求を送信し(ステップ6)、サーバアプリケーション部11が応答を返す(ステップ7)。更に、接続制御クライアント部12は、セッション開設要求に対する応答を接続制御サーバ部22に返す(ステップ8)。
 以上のステップにより、図1に示すように、アプリケーションクライアント端末3と接続制御サーバ部22との間のコネクション、接続制御サーバ部22と接続制御クライアント部12との間のセッション、接続制御クライアント部12とサーバアプリケーション部11との間のコネクションが確立され、これらを用いてアプリケーションクライアント端末3がサーバアプリケーション部11に対して処理要求を送信し、サーバアプリケーション部11はそれに対応する応答データを返すことができる。つまり、アプリケーションクライアント端末3とサーバアプリケーション部11との間のデータ通信が行われる(図3のステップ9)。その後、図3には示していないが、セッションの終了動作、及びトンネルの終了動作等が必要に応じて行われる。
 また、図4に示すように、複数のサーバアプリケーション部と、複数のアプリケーションクライアント端末間でコネクション、セッションを確立し通信を行うことも可能である。なお、図4に示すソケットや公開ポート等については下記の動作詳細説明において説明する。また、図4には、サーバアプリケーション部とアプリケーションクライアント端末間がアプリケーションレイヤ区間であり、接続制御クライアント部と接続制御サーバ部間がトンネル区間であり、サーバアプリケーション部と接続制御クライアント部間がTCP区間であり、アプリケーションクライアント端末と接続制御サーバ部間がTCP区間であることが示されている。
 なお、本明細書において、セッションとは、接続制御サーバ部22と接続制御クライアント部12との間のトンネル6内に張られる仮想通信路であり、1つのアプリケーションクライアント端末3と1つのサーバアプリケーション部11との間のトランスポートレイヤの接続に対応して1つ生成される通信路である。また、コネクションとは、サーバアプリケーション部11と接続制御クライアント部12との間のトランスポートレイヤの仮想通信路である。また、アプリケーションクライアント端末3と接続制御サーバ部22との間のトランスポートレイヤの仮想通信路もコネクションである。
 (システムの動作)
 以下、図3に示したシーケンスチャートの手順に沿って、図5~図11を適宜参照して本実施の形態における接続制御クライアント部12と接続制御サーバ部22の動作を詳細に説明する。
  <初期設定>
 図3に示したトンネル開設手順(ステップ1、2)の前提として、接続制御クライアント部12に、トンネル6の対向となる接続制御サーバ部22のIPアドレスとポート番号、及びサーバアプリケーション部11のIPアドレスとポート番号とを設定しておく(つまり、これらを記憶装置に格納しておく)。また、接続制御サーバ部22が接続制御クライアント部12の認証を行うために、接続制御クライアント部12に認証IDとパスワードを割り当てるとともに、それらを接続制御サーバ部22に登録しておく。更に、接続制御クライアント部12には、接続制御サーバ部22に対して公開することを要求するポート番号(公開ポート番号と呼ぶ)を設定しておく。
  <トンネル開設動作>
 トンネル開設動作を図5を参照して説明する。接続制御クライアント部12が接続制御クライアント装置1において起動されると、接続制御クライアント部12は接続制御サーバ部22に対してトンネル開設要求を送信する(図5のステップ11)。図5に示すように、トンネル開設要求には付加情報として公開ポート番号が付加される。また、図示していないが、トンネル開設要求には認証IDとパスワードが付加される。なお、認証を行わないこととしている場合には、認証IDとパスワードを付加する必要はない。
 接続制御サーバ部22は、必要に応じて接続制御クライアント部12の認証を行った後、トンネル開設要求に付加された公開ポート番号でポートをパッシブオープン(要求受付モード)する(ステップ12)。ポなお、ポートをパッシブオープンするとは、接続受付用のソケットを作成し、それに公開ポート番号を割り当てることである。
 ポートをパッシブオープンできた場合には、接続制御サーバ部22は、トンネル開設応答を接続制御クライアント部12に返す(ステップ13)。これにより接続制御サーバ部22と接続制御クライアント部12との間にトンネルが生成される。なお、トンネルを生成するとは、接続制御サーバ部22と接続制御クライアント部12のそれぞれにおいて、トンネル通信のための設定が完了したことを意味する。つまり、データに対してカプセル化(トンネル用のヘッダを付加)を施したり、トンネルデータ(カプセル化データ)からトンネル用ヘッダを除去したりする処理を行う設定が完了したことを意味する。
 接続制御サーバ部22が接続制御クライアント部12からトンネル開設要求を受信した後、要求された公開ポート番号が既に使用されているために当該ポート番号でのポートをオープンすることができない場合には、接続制御サーバ部22は、ポート番号を変えて代替の番号を用いてポートをオープンする。接続制御サーバ部22は、トンネル開設応答に、オープンしたポート番号を入れて接続制御クライアント12に返送する。
 トンネルが開設されると、接続制御クライアント部12と接続制御サーバ部22間ではトンネルキープアライブパケットがやり取りされる(ステップ14)。トンネルキープアライブパケットをやり取りすることにより、お互いの通信の正常性を確認することに加え、後述する互いのコネクションセッション対応表を交換して不一致が発生していないことの確認を行う。
 さて、図6に示すように、接続制御サーバ部22は、複数の異なる接続制御クライアント部12、13からのトンネル開設要求を受け付け、複数のトンネルを生成することが可能である。図6に示す例では、接続制御クライアント部12に対してはポート番号:1でポートがパッシブオープンされ、接続制御クライアント部13に対してはポート番号:2でポートがパッシブオープンされている。
 この場合、上記のように各接続制御クライアント部の希望通りの公開ポート番号でポートがオープンされる場合の他、複数の異なる接続制御クライアント部が同じポート番号の公開を要求することにより、各接続制御クライアント部の希望通りの公開ポート番号でポートをオープンできない場合があり得る。そのような場合、上述したとおり、接続制御サーバ部22は、異なる複数の公開ポート番号のうち、1つの公開ポート番号のみを採用し、それ以外の公開ポート番号を採用せず、採用しなかった公開ポート番号に代えて代替のポート番号を割り当て、ポートをオープンする。なお、代替ポート番号が割り当てられた接続制御クライアント部が、トンネル開設応答に含まれる代替ポート番号を許容しない場合には、トンネルは形成されず、トンネル形成処理は終了する。
  <セッション開設動作>
 次に、セッションの開設動作(図3のステップ3~8)を図7を参照して説明する。接続制御サーバ部22がポートをパッシブオープンした後、接続制御サーバ部22はそのポート宛のコネクション開設要求(本実施形態ではTCPのコネクション開設要求)をアプリケーションクライアント端末3から受信する(ステップ21)。なお、アプリケーションクライアント端末3は、例えばインターネット5上に設置されたディレクトリサーバにアクセスすることにより、所望のサーバアプリケーションのサービスを利用するために接続すべきIPアドレスとポート番号を取得することができる。この場合、接続制御サーバ部22は、例えばポートをパッシブオープンした後に、自分のIPアドレスと公開ポート番号とを、公開ポート番号に対応するサーバアプリケーション名と対応付けてディレクトリサーバに登録する。
 コネクション開設要求を受信した接続制御サーバ部22は、アプリケーションクライアント端末3との通信を行うための個別のソケットを生成する(ステップ22)。なお、ソケットの生成は接続制御サーバ装置2におけるOS(オペレーティングシステム)の機能により行われるものであり、ソケットの生成に伴って当該ソケットを識別する識別番号が生成される。そして、接続制御サーバ部22とアプリケーションクライアント端末間では、3ウェイハンドシェークによりTCPコネクションが確立される。
 また、接続制御サーバ部22は、上記コネクションに対応する新たなセッションIDを生成し、接続制御サーバ部22が保持するコネクションセッション対応表にセッションIDとコネクション識別子(ここではアプリケーションクライアント端末3との通信のためのソケットの識別番号)を記録する(ステップ23)。更に、接続制御サーバ部22は、接続制御クライアント部12に対し、当該セッションIDを付加情報として持つセッション開設要求をトンネルを介して送信する(ステップ24)。
 セッション開設要求を受信した接続制御クライアント部12は、サーバアプリケーション部11との通信のためのソケットを生成し(ステップ25)、初期設定時に設定されたサーバアプリケーション部11のIPアドレス/ポート番号に対してコネクション開設要求を送信する(ステップ26)。これにより、サーバアプリケーション部11と接続制御クライアント部12との間で3ウェイハンドシェークを経てTCPコネクションが確立される。
 サーバアプリケーション部11と接続制御クライアント部12との間のコネクションが確立されると、接続制御クライアント部12は、接続制御クライアント部12が保持するコネクションセッション対応表にセッションIDとコネクション識別子(ここではサーバアプリケーション部11との通信のためのソケットの識別番号)を記録する(ステップ27)。更に、接続制御クライアント部12は、セッション開設要求の応答として、セッション開設成功を通知するためのセッション開設応答をトンネルを介して接続制御サーバ部22に返送する(ステップ28)。
 接続制御クライアント部12とサーバアプリケーション部11との間のコネクション確立が失敗した場合は、接続制御クライアント部12は、コネクションセッション対応表への情報記録を行うことなく、エラーを示すセッション開設応答を接続制御サーバ部22に送信する。エラーを受信した接続制御サーバ部22は、コネクションセッション対応表からステップ23において記録した情報を削除する。
 なお、接続制御サーバ部22は、コネクション開設成功であることを示すセッション開設応答を受信してからコネクションセッション対応表にコネクションIDとセッション識別子を記録することとしてもよい。
 図8Aに、接続制御サーバ部22が保持するコネクションセッション対応表の一例を示す。また、図8Bに、接続制御クライアント部12が保持するコネクションセッション対応表の一例を示す。図8A、8Bに示すように、両者ともにセッションIDとしては接続制御サーバ部22がアプリケーションクライアント端末3からコネクション開設要求を受信した際に生成したセッションIDが記録される。
 また、接続制御サーバ部22が保持するコネクションセッション対応表(図8A)のコネクション識別子としては、接続制御サーバ部22とアプリケーションクライアント端末3との間のコネクションを識別するための識別子が記録される。本実施形態では、当該コネクション識別子として接続制御サーバ部22におけるアプリケーションクライアント端末3との間の通信のためのソケットの識別番号が記録される。
 また、接続制御クライアント部12が保持するコネクションセッション対応表(図8B)におけるコネクションIDとしては、接続制御クライアント部12とサーバアプリケーション部11との間のコネクションを識別するための識別子が記録される。本実施の形態では、当該コネクション識別子として、接続制御クライアント部12におけるサーバアプリケーション部11との間の通信のためのソケットの識別番号が記録される。
 接続制御サーバ部22と接続制御クライアント部12がそれぞれ上記のようなコネクションセッション対応表を保持することにより、接続制御サーバ部22とアプリケーションクライアント端末3間のコネクションと、接続制御クライアント部12とサーバアプリケーション部11間のコネクションとが、セッションIDを介して結び付けられることになる。
 <データ転送>
 次に、接続制御サーバ部22及び接続制御クライアント部12のそれぞれにおけるデータ転送動作について図9に示すフローチャートを参照して説明する。このデータ転送動作は、アプリケーションクライアント端末3とサーバアプリケーション部11との間でデータ送受信を行うために行われるものである。
 接続制御サーバ部22がアプリケーションクライアント端末3からコネクションを介してデータ(パケット)を受信すると(ステップ31)、接続制御サーバ部22は自身のコネクションセッション対応表を参照し、当該コネクションに対応するセッションIDを取得する。つまり、接続制御サーバ部22は、パケットの受信に用いられたソケットの識別番号を取得し、その識別番号に対応するセッションIDをコネクションセッション対応表から取得する(ステップ32)。
 そして、そのパケットに当該セッションIDを含むトンネルヘッダを付加し、トンネルヘッダを付加したトンネルヘッダ付パケットを対向の接続制御クライアント部12に送信する(ステップ33)。ステップ32において、コネクション(ソケットの識別番号)に対応するセッションIDがコネクションセッション対応表から取得できなかった場合には、接続制御サーバ部22は、当該アプリケーションクライアント端末3とのコネクションを終了させる。
 接続制御クライアント部12は、トンネルヘッダ付パケットを受信し、トンネルヘッダ付パケットからトンネルヘッダを抽出し、トンネルヘッダに含まれるセッションIDを取得する(ステップ34)。そして、接続制御クライアント部12は、接続制御クライアント部12が保持するコネクションセッション対応表を参照し、セッションIDに対応するコネクション識別子を取得する(ステップ35)。
 コネクション識別子を取得した接続制御クライアント部12は、受信したトンネルヘッダ付パケットからトンネルヘッダを削除したパケットを、当該コネクション識別子に対応するコネクションに送出する(ステップ36)。つまり、接続制御クライアント部12は、受信したトンネルヘッダ付パケットからトンネルヘッダを削除したパケットを、当該コネクション識別子(ソケットの識別番号)に対応するソケットを用いてサーバアプリケーション部12に送信する。
 ステップ35において接続制御クライアント部12が、セッションIDに対応するコネコネクション識別子をコネクションセッション対応表から取得できなかった場合、接続制御クライアント部12は、接続制御サーバ部22に対してセッションを終了する要求を送信する。
 接続制御クライアント部12がサーバアプリケーション部からコネクションを介してデータ(パケット)を受信すると(ステップ37)、接続制御クライアント部12は、自身が保持するコネクションセッション対応表を参照し、当該コネクションに対応するセッションIDを取得する(ステップ38)。つまり、接続制御クライアント部12は、パケットの受信に用いられたソケットの識別番号に対応するセッションIDをコネクションセッション対応表から取得する。
 そして、接続制御クライアント部12は、そのパケットに当該セッションIDを含むトンネルヘッダを付加し、トンネルヘッダ付パケットを対向の接続制御サーバ部22に送信する(ステップ39)。ステップ38において、コネクション(ソケットの識別番号)に対応するセッションIDがコネクションセッション対応表から取得できなかった場合には、接続制御クライアント部12は、サーバアプリケーション部11との間のコネクションを終了させる。
 接続制御サーバ部22はトンネルヘッダ付パケットを受信する。そして、接続制御サーバ部22は、トンネルヘッダ付パケットからトンネルヘッダを抽出し、トンネルヘッダに含まれるセッションIDを取得する(ステップ40)。そして、接続制御サーバ部22は、接続制御サーバ部22が保持するコネクションセッション対応表を参照し、セッションIDに対応するコネクション識別子を取得する(ステップ41)。
 コネクション識別子を取得した接続制御サーバ部22は、受信したトンネルヘッダ付パケットからトンネルヘッダを削除したパケットを、当該コネクション識別子に対応するコネクションに送出する(ステップ42)。つまり、接続制御サーバ部22は、受信したトンネルヘッダ付パケットからトンネルヘッダを削除したパケットを、当該コネクション識別子(ソケットの識別番号)に対応するソケットを用いてアプリケーションクライアント端末3に送信する。
 ステップ41において、接続制御サーバ部22が、セッションIDに対応するコネコネクション識別子をコネクションセッション対応表から取得できなかった場合、接続制御サーバ部22は、接続制御クライアント部12に対してセッションを終了する要求を送信する。
 上記のように、このデータ転送に関しては、接続制御サーバ部22及び接続制御クライアント部22は対等な関係で動作を行う。
 <セッション終了動作>
 次に、図10を参照してセッション終了動作について説明する。図10に示すように、接続制御サーバ部22がアプリケーションクライアント端末3からコネクションを介して当該コネクションの終了要求を受信した場合(ステップ51)、接続制御サーバ部22は、当該コネクションに対応するセッションIDをコネクションセッション対応表から取得する。そして、接続制御サーバ部22は、当該セッションIDを含むトンネルヘッダを付加したセッション終了要求を接続制御クライアント部12に送信する(ステップ52)。当該セッションIDを含むセッション終了要求を受け取った接続制御クライアント部12は、当該セッションIDに対応するコネクション識別子をコネクションセッション対応表から取得し、当該コネクション識別子に対応するサーバアプリケーション部11とのコネクションを終了させる(ステップ53)。そして、接続制御クライアント部12は、セッション終了応答を対向の接続制御サーバ部22に返送する(ステップ54)。
 また、図示していないが、接続制御クライアント部12がサーバアプリケーション部11からコネクションを介して当該コネクションの終了要求を受信した場合には、接続制御クライアント部12は、当該コネクションに対応するセッションIDをコネクションセッション対応表から取得する。そして、接続制御クライアント部12は、当該セッションIDを含むトンネルヘッダを付加したセッション終了要求を接続制御サーバ部22に送信する。当該セッションIDを含むセッション終了要求を受け取った接続制御サーバ部22は、当該セッションIDに対応するコネクション識別子をコネクションセッション対応表から取得し、当該コネクション識別子に対応するコネクションを終了させる。そして、接続制御サーバ部22は、セッション終了応答を対向の接続制御クライアント部12に返送する。
 <トンネル終了動作>
 次に、図11を参照してトンネル終了動作について説明する。図11には、接続制御サーバ部22が動作を終了する場合におけるトンネル終了動作を示している。
 接続制御サーバ部22が動作を終了する場合、動作を終了する前に、接続制御サーバ部22は、セッションIDを含むトンネルヘッダを付加したトンネル終了要求を接続制御クライアント部12に送信する(ステップ61)。当該トンネル終了要求を受信した接続制御クライアント部12は、開設中の全てのコネクションを終了させた後に(ステップ62)、トンネル終了応答を対向の接続制御サーバ部22に返送する(ステップ63)。そして、接続制御サーバ部22も全てのコネクションを終了させる(ステップ64)。
 上記のように接続制御サーバ部22から接続制御クライアント部12にトンネル終了要求が送られた場合には、トンネルが削除された後、接続制御クライアント部12は再びトンネル開設要求を接続制御サーバ部22に対して送信する動作を行うようにしてもよい。
 図示していないが、接続制御クライアント部12が動作を終了する場合、動作を終了する前に、接続制御クライアント部12は、トンネルヘッダを付加したトンネル終了要求を接続制御サーバ部22に送信する。当該トンネル終了要求を受信した接続制御サーバ部22は、開設中の全てのコネクションを終了させた後に、トンネル終了応答を対向の接続制御クライアント部12に返送する。そして、接続制御クライアント部12も全てのコネクションを終了させる。
 上記のように、接続制御クライアント部12からトンネル終了要求が接続制御サーバ部22に対して送られた場合には、トンネルが削除された後に接続制御サーバ部22は特に何もせず、再度接続制御クライアント部12からトンネル開設要求を受信するのを待つこととしてよい。
 <パケットフォーマットについて>
 図12に、接続制御サーバ部22と接続制御クライアント部12との間の通信に使用されるトンネルヘッダ付パケットのフォーマット例を示す。
 図12に示すように、トンネルヘッダ付パケットのトンネルヘッダはセッションID、コントロールID(Ctl ID)、及びシーケンス番号(SQC)を含む。なお、トンネルヘッダは、トンネルを構成する対向装置のIPアドレス等も含むが、図12にはそれらは示されていない。
 上述したようにセッションIDはセッションを識別する識別情報である。特にセッションIDが0であるトンネルヘッダ付パケットをコントロールパケットと呼び、コントロールパケットにおいてはコントロールIDによりコントロールの種別が決定される。シーケンス番号はトンネルヘッダ付パケットが再送に係るものか等を識別するための番号であり、同じトンネルヘッダ付パケットが送信された回数を示す。
 図13に、コントロールパケットの一つであるトンネルコントロールパケットのフォーマット例を示す。このトンネルコントロールパケットは、コントロールIDの値に応じてトンネル開設又はトンネル終了の制御に対応し、"REASON"により、要求か応答かが識別される。
 図14に、コントロールパケットの一つであるセッションコントロールパケットのフォーマット例を示す。このセッションコントロールパケットはコントロールIDに応じてセッション開設又はセッション終了の制御に対応し、パケット内のセッションIDにより制御対象のセッションが識別され、"REASON"により、要求か応答かが識別される。
 図15に、キープアライブパケットのフォーマット例を示す。このキープアライブパケットにはコネクションセッション対応表が含まれる。図16に、通信用のトンネルヘッダ付パケットのフォーマット例を示す。通信用のトンネルヘッダ付パケットでは、セッションIDが0ではなく、パケット本体にはアプリケーション用のデータが含まれる。前述したように、コネクションセッション対応表により、セッションIDからコネクションが識別され、パケット本体のデータが当該コネクションに送出される。
 なお、図17に、コントロールパケットを用いた管理用セッションの例を示す。
  (装置構成例)
 これまでに説明した動作を実現する接続制御サーバ部22を備える接続制御サーバ装置2は、次のような手段を備えて構成することができる。つまり、当該接続制御サーバ装置は、サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおいて使用される前記接続制御サーバ装置であって、前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するトンネル生成手段と、前記アプリケーションクライアント端末からの接続要求に基づき前記接続制御サーバ装置と前記アプリケーションクライアント端末との間にコネクションを確立し、当該コネクションを識別するコネクション識別子を取得するコネクション識別子取得手段と、前記コネクションに対応するセッションIDを生成し、当該セッションIDを含むセッション開設要求を前記トンネルを介して前記接続制御クライアント部に送信するセッション開設要求送信手段と、前記セッションIDと前記コネクション識別子とを対応付けてコネクションセッション対応格納手段に記録するコネクションセッション対応記録手段とを少なくとも備える。
 また、これまでに説明した動作を実現する接続制御クライアント部12を備える接続制御クライアント装置1は、次のような手段を備えて構成することができる。つまり、当該接続制御クライアント装置1は、サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおける前記接続制御クライアント装置であって、当該接続制御クライアント装置における前記接続制御クライアント部は、前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するトンネル生成手段と、セッションIDを含むセッション開設要求を前記接続制御サーバ装置から前記トンネルを介して受信するセッション開設要求受信手段と、前記セッション開設要求を受信したことに応じて、前記接続制御クライアント部と前記サーバアプリケーション部との間にコネクションを確立し、当該コネクションを識別するコネクション識別子を取得するコネクション識別子取得手段と、前記セッション開設要求に含まれる前記セッションIDと、前記コネクション識別子とを対応付けてコネクションセッション対応格納手段に格納するコネクションセッション対応記録手段とを少なくとも備える。
 次に、図18及び図19を参照して、これまでに説明した動作を行う接続制御サーバ部22と接続制御クライアント部12の機能構成例をより具体的に説明する。
 図18は、接続制御サーバ部22の機能構成例を示すブロック図である。図18に示すように、接続制御サーバ部22は、トンネル生成・通信部101、コネクションセッション制御部102、コネクション生成・通信部103、及びデータ格納部104を有する。また、コネクションセッション制御部102は、セッションID生成部111、対応表記録部112、セッション開設処理部113、コネクション決定部114、及びセッション決定部115を有する。以下、この構成を持つ接続制御サーバ部22の動作を説明する。
 トンネル生成・通信部101は、接続制御クライアント部12から受信するトンネル開設要求に基づき接続制御クライアント部12との間のトンネルを生成する。更に、トンネル生成・通信部101は、接続制御クライアント部12から受信するトンネル開設要求に付加された公開ポート番号をコネクション生成・通信部103に通知する。
 コネクション生成・通信部103は、トンネル生成・通信部101から通知された公開ポート番号を用いて接続受付用のポートを開くとともに、アプリケーションクライアント端末3からコネクション開設要求を受信した場合には通信用のソケットを生成し(コネクションを確立し)、そのソケットを用いて当該アプリケーションクライアント端末3との通信を行う。また、コネクション生成・通信部103は、生成したコネクションの識別子(本実施形態ではソケットの識別番号)をコネクションセッション制御部102に通知する。
 コネクション生成・通信部103が生成した接続受付用ポートがアプリケーションクライアント端末3からコネクション開設要求を受信した場合に、コネクションセッション制御部102のセッションID生成部111は、新たにセッションIDを生成し、それを対応表記録部112及びセッション開設処理部113に渡す。
 対応表記録部112は、上記セッションIDと、コネクション生成・通信部103から通知されるコネクション識別子(ソケットの識別番号)とを対応付けて、データ格納部104に格納されているコネクションセッション対応表に記録する。また、コネクション開設処理部113は、上記セッションIDが付加されたセッション開設要求を生成し、それをトンネル生成・通信部101に渡す。トンネル生成・通信部101は、当該セッションIDが付加されたセッション開設要求をトンネルを介して接続制御クライアント部12に送出する。
 接続制御クライアント部12と接続制御サーバ部22との間のセッションが確立された後、コネクション生成・通信部103がアプリケーションクライアント端末3からパケットを受信すると、コネクション生成・通信部103は、受信したパケットとともにパケット受信に用いられたコネクションの識別子をセッション決定部115に通知する。セッション決定部115は、データ格納部104に格納されているコネクションセッション対応表を参照し、当該コネクション識別子に対応するセッションIDを取得し、セッションIDとパケットをトンネル生成・通信部101に渡す。トンネル生成・通信部101は、当該セッションIDを含むトンネルヘッダを付加したパケットを接続制御クライアント部12に送信する。
 また、トンネル生成・通信部101が、接続制御クライアント部12からトンネルを介してトンネルヘッダ付パケットを受信した場合には、トンネル生成・通信部101は、トンネルヘッダに含まれるセッションIDとパケットをコネクションセッション制御部101のコネクション決定部114に渡す。コネクション決定部114は、コネクションセッション対応表を参照し、上記セッションIDに対応するコネクション識別子を取得し、パケットと当該コネクション識別子をコネクション生成・通信部103に渡す。コネクション生成・通信部103は、受け取ったコネクション識別子に対応するコネクションを用いてパケットをアプリケーションクライアント端末3に送信する。
 次に、接続制御クライアント部12の機能構成例について説明する。図19は、接続制御クライアント部12の機能構成例を示すブロック図である。
 図19に示すように、接続制御クライアント部12は、トンネル生成・通信部201、コネクションセッション制御部202、コネクション生成・通信部203、及びデータ格納部204を有する。また、コネクションセッション制御部202は、対応表記録部211、セッション開設処理部212、コネクション決定部213、及びセッション決定部214を有する。以下、この構成を持つ接続制御クライアント部12の動作を説明する。
 トンネル生成・通信部201は、接続制御サーバ部22に、公開ポート番号が付加されたトンネル開設要求を送信し、接続制御サーバ部22との間のトンネルを生成する。
 トンネル生成・通信部201が、セッションIDを含むトンネルヘッダを付加されたセッション開設要求を接続制御サーバ部22から受信すると、セッションIDとセッション開設要求がセッション開設処理部212に渡される。セッション開設処理部212は、セッションIDを対応表記録部213に渡す。さらに、セッション開設処理部212は、コネクション生成・通信部203に対してサーバアプリケーション部11との間のコネクション開設を要求する。
 上記の要求を受けたコネクション生成・通信部203は、サーバアプリケーション部11との間の通信用のソケットを生成し、そのソケットの識別番号をコネクション識別子として取得し、セッション開設処理部212に渡す。そして、セッション開設処理部212は、当該コネクション識別子を対応表記録部213に渡すとともに、セッション開設応答の送信をトンネル生成・通信部201に指示し、トンネル生成・通信部201はセッション開設応答を接続制御サーバ部22に送信する。
 上記のようにしてセッションIDとコネクション識別子を受け取った対応表記録部213は、セッションIDとコネクション識別子とを対応付けて、データ格納部204に格納されたコネクションセッション対応表に記録する。
 接続制御クライアント部21と接続制御サーバ部22との間のセッションが確立された後、コネクション生成・通信部203がサーバアプリケーション部11からパケットを受信すると、コネクション生成・通信部203は、受信したパケットとともにパケット受信に用いられたコネクションの識別子をセッション決定部214に通知する。セッション決定部214は、データ格納部204に格納されているコネクションセッション対応表を参照し、当該コネクション識別子に対応するセッションIDを取得し、セッションIDとパケットをトンネル生成・通信部201に渡す。トンネル生成・通信部201は、当該セッションIDを含むトンネルヘッダを付加したパケットを生成し、それを接続制御サーバ部22に送信する。
 また、トンネル生成・通信部201が、接続制御サーバ部22からトンネルを介してトンネルヘッダ付パケットを受信した場合には、トンネル生成・通信部201は、トンネルヘッダに含まれるセッションIDとパケットをコネクションセッション制御部202のコネクション決定部213に渡す。コネクション決定部213は、コネクションセッション対応表を参照し、上記セッションIDに対応するコネクション識別子を取得し、パケットと当該コネクション識別子をコネクション生成・通信部203に渡す。コネクション生成・通信部203は、受け取ったコネクション識別子に対応するコネクションを用いてパケットをサーバアプリケーション部203に送信する。
 なお、これまでに説明した例では、トランスポートレイヤのコネクションとしてTCPコネクションを例にとって説明したが、トランスポートレイヤのコネクションとしてはTCPコネクションに限られるものではなく、UDPを用いてもよい。UDPの場合、対向装置のIPアドレスとポート番号の組をコネクション識別子として用いることができる。例えば、アプリケーションクライアント端末3と接続制御サーバ部22間のトランスポートレイヤの通信としてUDPを用いる場合、アプリケーションクライアント端末3と接続制御サーバ部22間のコネクションはアプリケーションクライアント端末3のIPアドレスとポート番号で識別できるので、接続制御サーバ部22におけるコネクションセッション対応表におけるコネクション識別子としてアプリケーションクライアント端末3のIPアドレスとポート番号の組を使用できる。
 本発明の実施の形態によれば、アプリケーションクライアント端末3と接続制御サーバ部22との間のコネクションと、接続制御サーバ部22と接続制御クライアント部12との間のトンネル内のセッションと、接続制御クライアント部12とサーバアプリケーション部11との間のコネクションとが互いに関連付けられて1つのリンクを形成し、アプリケーションクライアント端末3とサーバアプリケーション部11との間でアプリケーションデータの送受信を行うことが可能となる。つまり、特定のアプリケーションだけをインターネット上の不特定多数のクライアント端末に公開することが可能になる。これにより、サーバアプリケーション部11と接続制御クライアント部12がプライベートネットワーク内にある場合であっても、インターネット上のアプリケーションクライアント端末3はサーバアプリケーション部11のアプリケーションサービスを安全に利用できる。また、サーバアプリケーション部11と接続制御クライアント部12があるプライベートネットワークから別プライベートネットワークに移動したとしても、アプリケーションクライアント端末3はその移動を意識することなく、インターネットのグローバルIPアドレスを付与された接続制御サーバ装置2にアクセスすることにより、サーバアプリケーション部11のアプリケーションサービスを利用できる。
 本発明は、上記の実施形態に限定されることなく、特許請求の範囲内において種々の変更及び応用が可能である。

Claims (11)

  1.  サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおける接続制御方法であって、
     前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するステップと、
     前記接続制御サーバ装置が、前記アプリケーションクライアント端末からの接続要求に基づき前記接続制御サーバ装置と前記アプリケーションクライアント端末との間に第1のコネクションを確立し、当該第1のコネクションを識別する第1のコネクション識別子を取得するステップと、
     前記接続制御サーバ装置が、前記第1のコネクションに対応するセッションIDを生成し、当該セッションIDを含むセッション開設要求を前記接続制御クライアント部に送信するステップと、
     前記接続制御サーバ装置が、前記セッションIDと前記第1のコネクション識別子とを対応付けて第1のコネクションセッション対応格納手段に格納するステップと、
     前記セッション開設要求を受信した前記接続制御クライアント部が、当該接続制御クライアント部と前記サーバアプリケーション部との間に第2のコネクションを確立し、当該第2のコネクションを識別する第2のコネクション識別子を取得するステップと、
     前記接続制御クライアント部が、前記セッション開設要求に含まれる前記セッションIDと、前記第2のコネクション識別子とを対応付けて第2のコネクションセッション対応格納手段に格納するステップと
     を有することを特徴とする接続制御方法。
  2.  前記接続制御クライアント部が、前記サーバアプリケーション部から前記第2のコネクションを介してパケットを受信した場合に、当該第2のコネクションに対応する前記第2のコネクション識別子を取得するステップと、
     前記接続制御クライアント部が、前記第2のコネクションセッション対応格納部から前記第2のコネクション識別子に対応する前記セッションIDを取得するステップと、
     前記接続制御クライアント部が、前記セッションIDを含むトンネルヘッダを前記パケットに付加し、当該トンネルヘッダ付パケットを前記トンネルを介して前記接続制御サーバ装置に送信するステップと、
     前記トンネルヘッダ付パケットを受信した前記接続制御サーバ装置が、当該トンネルヘッダに含まれる前記セッションIDを取得し、前記第1のコネクションセッション対応格納手段から、当該セッションIDに対応する前記第1のコネクション識別子を取得するステップと、
     前記接続制御サーバ装置が、前記第1のコネクション識別子に対応する前記第1のコネクションを用いて前記アプリケーションクライアント端末に前記パケットを送信するステップと
     を更に有する請求項1に記載の接続制御方法。
  3.  前記接続制御サーバ装置が、前記アプリケーションクライアント端末から前記第1のコネクションを介してパケットを受信した場合に、当該第1のコネクションに対応する前記第1のコネクション識別子を取得するステップと、
     前記接続制御サーバ装置が、前記第1のコネクションセッション対応格納部から前記第1のコネクション識別子に対応する前記セッションIDを取得するステップと、
     前記接続制御サーバ装置が、前記セッションIDを含むトンネルヘッダを前記パケットに付加し、当該トンネルヘッダ付パケットを前記トンネルを介して前記接続制御クライアント部に送信するステップと、
     前記トンネルヘッダ付パケットを受信した前記接続制御クライアント部が、当該トンネルヘッダに含まれる前記セッションIDを取得し、前記第2のコネクションセッション対応格納手段から、当該セッションIDに対応する前記第2のコネクション識別子を取得するステップと、
     前記接続制御クライアント部が、前記第2のコネクション識別子に対応する前記第2のコネクションを用いて前記サーバアプリケーション部に前記パケットを送信するステップと
     を更に有する請求項1に記載の接続制御方法。
  4.  サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおいて使用される前記接続制御サーバ装置であって、
     前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するトンネル生成手段と、
     前記アプリケーションクライアント端末からの接続要求に基づき前記接続制御サーバ装置と前記アプリケーションクライアント端末との間にコネクションを確立し、当該コネクションを識別するコネクション識別子を取得するコネクション識別子取得手段と、
     前記コネクションに対応するセッションIDを生成し、当該セッションIDを含むセッション開設要求を前記トンネルを介して前記接続制御クライアント部に送信するセッション開設要求送信手段と、
     前記セッションIDと前記コネクション識別子とを対応付けてコネクションセッション対応格納手段に記録するコネクションセッション対応記録手段と
     を有することを特徴とする接続制御サーバ装置。
  5.  前記セッションIDを含むトンネルヘッダが付加されたトンネルヘッダ付パケットを前記接続制御クライアント部から受信するトンネルヘッダ付パケット受信手段と、
     前記トンネルヘッダに含まれる前記セッションIDを取得し、前記コネクションセッション対応格納手段から、当該セッションIDに対応する前記コネクション識別子を取得するコネクション識別手段と、
     前記コネクション識別子に対応する前記コネクションを用いて前記アプリケーションクライアント端末に前記トンネルヘッダ付パケットからトンネルヘッダを除いたパケットを送信するパケット送信手段と
     を更に有する請求項4に記載の接続制御サーバ装置。
  6.  前記アプリケーションクライアント端末から前記コネクションを介してパケットを受信した場合に、当該コネクションに対応する前記コネクション識別子を取得するコネクション識別手段と、
     前記コネクションセッション対応格納部から前記コネクション識別子に対応する前記セッションIDを取得するセッション識別手段と、
     前記セッションIDを含むトンネルヘッダを前記パケットに付加し、当該トンネルヘッダ付パケットを前記トンネルを介して前記接続制御クライアント部に送信するトンネルヘッダ付パケット送信手段と
     を更に有する請求項4に記載の接続制御サーバ装置。
  7.  サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおける前記接続制御クライアント装置であって、当該接続制御クライアント装置における前記接続制御クライアント部は、
     前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するトンネル生成手段と、
     セッションIDを含むセッション開設要求を前記接続制御サーバ装置から前記トンネルを介して受信するセッション開設要求受信手段と、
     前記セッション開設要求を受信したことに応じて、前記接続制御クライアント部と前記サーバアプリケーション部との間にコネクションを確立し、当該コネクションを識別するコネクション識別子を取得するコネクション識別子取得手段と、
     前記セッション開設要求に含まれる前記セッションIDと、前記コネクション識別子とを対応付けてコネクションセッション対応格納手段に格納するコネクションセッション対応記録手段と
     を有することを特徴とする接続制御クライアント装置。
  8.  前記接続制御クライアント部は、
     前記サーバアプリケーション部から前記コネクションを介してパケットを受信した場合に、当該コネクションに対応する前記コネクション識別子を取得するコネクション識別手段と、
     前記コネクションセッション対応格納部から前記コネクション識別子に対応する前記セッションIDを取得するセッション識別手段と、
     前記セッションIDを含むトンネルヘッダを前記パケットに付加し、当該トンネルヘッダ付パケットを前記トンネルを介して前記接続制御サーバ装置に送信するトンネルヘッダ付パケット送信手段と
     を更に有する請求項7に記載の接続制御クライアント装置。
  9.  前記接続制御クライアント部は、
     前記セッションIDを含むトンネルヘッダが付加されたトンネルヘッダ付パケットを前記接続制御サーバ装置から受信するトンネルヘッダ付パケット受信手段と、
     前記トンネルヘッダに含まれる前記セッションIDを取得し、前記コネクションセッション対応格納手段から、当該セッションIDに対応する前記コネクション識別子を取得するコネクション識別手段と、
     前記コネクション識別子に対応する前記コネクションを用いて前記サーバアプリケーション部に前記トンネルヘッダ付パケットからトンネルヘッダを除いたパケットを送信するパケット送信手段と
     を更に有する請求項7に記載の接続制御クライアント装置。
  10.  コンピュータを、サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおいて使用される前記接続制御サーバ装置として機能させるプログラムであって、コンピュータを、
     前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するトンネル生成手段、
     前記アプリケーションクライアント端末からの接続要求に基づき前記接続制御サーバ装置と前記アプリケーションクライアント端末との間にコネクションを確立し、当該コネクションを識別するコネクション識別子を取得するコネクション識別子取得手段、
     前記コネクションに対応するセッションIDを生成し、当該セッションIDを含むセッション開設要求を前記トンネルを介して前記接続制御クライアント部に送信するセッション開設要求送信手段、
     前記セッションIDと前記コネクション識別子とを対応付けてコネクションセッション対応格納手段に記録するコネクションセッション対応記録手段、
     として機能させるプログラム。
  11.  コンピュータを、サーバアプリケーション部と接続される接続制御クライアント部を有する接続制御クライアント装置と、アプリケーションクライアント端末に接続される接続制御サーバ装置とを有するシステムにおける前記接続制御クライアント装置として機能させるプログラムであって、コンピュータを、
     前記接続制御サーバ装置と前記接続制御クライアント部との間にトンネルを生成するトンネル生成手段、
     セッションIDを含むセッション開設要求を前記接続制御サーバ装置から前記トンネルを介して受信するセッション開設要求受信手段、
     前記セッション開設要求を受信したことに応じて、前記接続制御クライアント部と前記サーバアプリケーション部との間にコネクションを確立し、当該コネクションを識別するコネクション識別子を取得するコネクション識別子取得手段、
     前記セッション開設要求に含まれる前記セッションIDと、前記コネクション識別子とを対応付けてコネクションセッション対応格納手段に格納するコネクションセッション対応記録手段、
     として機能させるプログラム。
PCT/JP2008/050824 2008-01-22 2008-01-22 接続制御方法、接続制御サーバ装置、接続制御クライアント装置、及びプログラム WO2009093308A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009550393A JP5122587B2 (ja) 2008-01-22 2008-01-22 接続制御方法、接続制御サーバ装置、接続制御クライアント装置、接続制御システム、及びプログラム
PCT/JP2008/050824 WO2009093308A1 (ja) 2008-01-22 2008-01-22 接続制御方法、接続制御サーバ装置、接続制御クライアント装置、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2008/050824 WO2009093308A1 (ja) 2008-01-22 2008-01-22 接続制御方法、接続制御サーバ装置、接続制御クライアント装置、及びプログラム

Publications (1)

Publication Number Publication Date
WO2009093308A1 true WO2009093308A1 (ja) 2009-07-30

Family

ID=40900826

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2008/050824 WO2009093308A1 (ja) 2008-01-22 2008-01-22 接続制御方法、接続制御サーバ装置、接続制御クライアント装置、及びプログラム

Country Status (2)

Country Link
JP (1) JP5122587B2 (ja)
WO (1) WO2009093308A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012093696A1 (ja) * 2011-01-05 2012-07-12 フリービット株式会社 メモリカード装置
JP2012253743A (ja) * 2011-05-11 2012-12-20 Yokogawa Electric Corp 通信システム
KR20150059248A (ko) * 2013-11-22 2015-06-01 삼성에스디에스 주식회사 중계 프록시 서버, 이를 이용한 데이터 전송 중계 방법 및 데이터 전송시스템
JP2015231225A (ja) * 2014-06-06 2015-12-21 エヌ・ティ・ティ・コミュニケーションズ株式会社 トンネル接続装置、トンネル終端装置、接続制御方法、及びプログラム
JP2018182628A (ja) * 2017-04-19 2018-11-15 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
JP2021164099A (ja) * 2020-04-01 2021-10-11 ケ, ミン チーKe, Ming Chi 仮想プライベートネットワークにおける装置を接続するデバイス、その方法及びパソコンで読取り可能な記録メディア
JP7011271B1 (ja) 2020-10-29 2022-01-26 株式会社C-Rise 情報処理方法、情報処理システム及びコンピュータプログラム
US20220247527A1 (en) * 2019-06-20 2022-08-04 Nippon Telegraph And Telephone Corporation Transmission control method and program

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004151886A (ja) * 2002-10-29 2004-05-27 Toshiba Corp セキュア通信システム、方法及びプログラム
JP2005026856A (ja) * 2003-06-30 2005-01-27 Phoenix Technologies Kk リモートアクセスシステム
JP2006287564A (ja) * 2005-03-31 2006-10-19 Dowango:Kk 通信システム、中継サーバ、プログラム、および通信方法
JP2007324788A (ja) * 2006-05-31 2007-12-13 Softbank Bb Corp 移動端末及び通信方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8117340B2 (en) * 2005-04-25 2012-02-14 Microsoft Corporation Trans-network roaming and resolution with web services for devices

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004151886A (ja) * 2002-10-29 2004-05-27 Toshiba Corp セキュア通信システム、方法及びプログラム
JP2005026856A (ja) * 2003-06-30 2005-01-27 Phoenix Technologies Kk リモートアクセスシステム
JP2006287564A (ja) * 2005-03-31 2006-10-19 Dowango:Kk 通信システム、中継サーバ、プログラム、および通信方法
JP2007324788A (ja) * 2006-05-31 2007-12-13 Softbank Bb Corp 移動端末及び通信方法

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9854198B2 (en) 2011-01-05 2017-12-26 Freebit Co. Ltd. Memory card device
CN103282893A (zh) * 2011-01-05 2013-09-04 飞比特网络股份有限公司 存储卡装置
WO2012093696A1 (ja) * 2011-01-05 2012-07-12 フリービット株式会社 メモリカード装置
JP2012253743A (ja) * 2011-05-11 2012-12-20 Yokogawa Electric Corp 通信システム
US9055024B2 (en) 2011-05-11 2015-06-09 Yokogawa Electric Corporation Communication system
KR20150059248A (ko) * 2013-11-22 2015-06-01 삼성에스디에스 주식회사 중계 프록시 서버, 이를 이용한 데이터 전송 중계 방법 및 데이터 전송시스템
KR102087735B1 (ko) * 2013-11-22 2020-03-11 삼성에스디에스 주식회사 중계 프록시 서버, 이를 이용한 데이터 전송 중계 방법 및 데이터 전송시스템
JP2015231225A (ja) * 2014-06-06 2015-12-21 エヌ・ティ・ティ・コミュニケーションズ株式会社 トンネル接続装置、トンネル終端装置、接続制御方法、及びプログラム
JP2018182628A (ja) * 2017-04-19 2018-11-15 富士通株式会社 情報処理装置、情報処理方法および情報処理プログラム
US20220247527A1 (en) * 2019-06-20 2022-08-04 Nippon Telegraph And Telephone Corporation Transmission control method and program
JP2021164099A (ja) * 2020-04-01 2021-10-11 ケ, ミン チーKe, Ming Chi 仮想プライベートネットワークにおける装置を接続するデバイス、その方法及びパソコンで読取り可能な記録メディア
JP7011271B1 (ja) 2020-10-29 2022-01-26 株式会社C-Rise 情報処理方法、情報処理システム及びコンピュータプログラム
JP2022072173A (ja) * 2020-10-29 2022-05-17 株式会社C-Rise 情報処理方法、情報処理システム及びコンピュータプログラム

Also Published As

Publication number Publication date
JP5122587B2 (ja) 2013-01-16
JPWO2009093308A1 (ja) 2011-05-26

Similar Documents

Publication Publication Date Title
JP5122587B2 (ja) 接続制御方法、接続制御サーバ装置、接続制御クライアント装置、接続制御システム、及びプログラム
TWI545446B (zh) 與一公用雲端網路一同使用之方法及系統
US7542573B2 (en) Providing apparatus, communication device, method, and program
CN105993146A (zh) 不访问私钥而使用公钥密码的安全会话能力
CN110365701B (zh) 客户终端设备的管理方法、装置、计算设备及存储介质
CN110191031A (zh) 网络资源访问方法、装置、电子设备
CN110401641B (zh) 用户认证方法、装置、电子设备
JP4260659B2 (ja) パケットのnat透過機能を有する端末装置及びそのプログラム
CN104662871A (zh) 安全地访问网络服务的方法和设备
CN107733890B (zh) 基于web协议的跨网通讯方法、电子设备、存储介质、系统
CN112769835B (zh) 一种访问请求的发起方法及终端设备
TWI537744B (zh) 不利用公用雲端型路由伺服器之私有雲端路由伺服器、私有網路服務及智慧型裝置客戶端架構
JP4886712B2 (ja) アクセス制御システム、アクセス制御方法、アクセス制御装置およびアクセス制御プログラム
JP3970857B2 (ja) 通信システム、ゲートウェイ装置
US8646066B2 (en) Security protocol control apparatus and security protocol control method
US20080118005A1 (en) Receiving apparatus and receiving method
CN111182071A (zh) 一种内网穿透与服务发布的方法
JP3935823B2 (ja) Httpセッション・トンネリング・システム、その方法、及びそのプログラム
CN110943962B (zh) 一种认证方法、网络设备和认证服务器以及转发设备
JP4152753B2 (ja) ネットワーク認証アクセス制御サーバ、アプリケーション認証アクセス制御サーバ、および統合型認証アクセス制御システム
JP4608466B2 (ja) 通信システムおよび通信方法
JP6539497B2 (ja) 通信中継システム、デバイス収容端末、サーバ側コンピュータ、プログラム、及び通信中継方法
JP5084716B2 (ja) Vpn接続装置、dnsパケット制御方法、及びプログラム
JP5347263B2 (ja) クライアント装置および通信方法
JP6225283B1 (ja) 閉域ネットワーク接続装置、プログラム及び方法

Legal Events

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

Ref document number: 08703668

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2009550393

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 08703668

Country of ref document: EP

Kind code of ref document: A1