[go: up one dir, main page]

WO2008069504A1 - Method for configuring control tunnel and direct tunnel in ipv4 network-based ipv6 service providing system - Google Patents

Method for configuring control tunnel and direct tunnel in ipv4 network-based ipv6 service providing system Download PDF

Info

Publication number
WO2008069504A1
WO2008069504A1 PCT/KR2007/006151 KR2007006151W WO2008069504A1 WO 2008069504 A1 WO2008069504 A1 WO 2008069504A1 KR 2007006151 W KR2007006151 W KR 2007006151W WO 2008069504 A1 WO2008069504 A1 WO 2008069504A1
Authority
WO
WIPO (PCT)
Prior art keywords
terminal
tunnel
network
ipv6
ipv4
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/KR2007/006151
Other languages
French (fr)
Inventor
Sun Cheul Kim
Sung Back Hong
Kyeong Ho Lee
Kyung Pyo Jun
Sang Wha Lee
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Electronics and Telecommunications Research Institute ETRI
Mobileconvergence Co Ltd
Original Assignee
Electronics and Telecommunications Research Institute ETRI
Mobileconvergence Co Ltd
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
Priority claimed from KR20070077503A external-priority patent/KR100901790B1/en
Application filed by Electronics and Telecommunications Research Institute ETRI, Mobileconvergence Co Ltd filed Critical Electronics and Telecommunications Research Institute ETRI
Priority to US12/517,550 priority Critical patent/US8457014B2/en
Priority to JP2009540139A priority patent/JP4819953B2/en
Publication of WO2008069504A1 publication Critical patent/WO2008069504A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways

Definitions

  • the present disclosure relates to an Internet Protocol version 6 (IPv6) service providing system using a tunneling technology in an IPv4-based network environment, and more particularly, to a method for configuring a control tunnel and a direct tunnel for providing a terminal-to-terminal and terminal-to-network IPv6 communication service.
  • IPv6 Internet Protocol version 6
  • a tunneling technology is used to allow an IPv6 packet to cross an IPv4 network by configuring a tunnel, when the IPv6 packet must be transmitted from an IPv6 network to another IPv6 network via the IPv4 network.
  • IPv4/IPv6 dual stack hosts and routers can perform tunneling through an IPv4 routing topology region by encapsulating an IPv6 datagram to an IPv4 packet.
  • IPv6 island networks appear at the beginning stage of IPv4 to IPv6 transition, the tunneling technology will be used to a great extent. Thus, many efforts have been actively made for standardization of the tunneling technologies among various transition technologies. As a result, a variety of tunneling technologies have been proposed as the standard tunneling technology. Representative ones of those tunneling technologies include 'Configured tunnel', '6to4', '6over4' and Tntra-Site Automatic Tunnel Addressing Protocol (ISATAP)'.
  • ISATAP Tntra-Site Automatic Tunnel Addressing Protocol
  • control tunnel To provide the IPv6 communication between terminals on an IPv4 network, a control tunnel and a direct tunnel are used.
  • the control tunnel is similar to existing Tunnel Broker or Teredo, but includes a user group management module that allows peer- 2-peer data communication such as MSN or SkyPe, which is being widely used.
  • the control tunnel provides a direct tunnel between the terminals so that data can be directly transmitted and received therebetween, which is very advantageous in data transmission.
  • the terminals When terminals are located currently on a network, the terminals may be assigned public IP addresses by an Internet Service Provider (ISP) and may be assigned private IP addresses by the NAT.
  • ISP Internet Service Provider
  • the NAT uses a source NAT (SNAT), dynamic NAT (DNAT)-port forwarding, and a DNAT-load distribution.
  • SNAT source NAT
  • DNAT dynamic NAT
  • DNAT-load distribution a server to operate is placed on a specific private network, and access thereto is allowed only for a specific user who knows the specific private network on which the service is placed.
  • the load of TCP/UDP traffic is distributed to a plurality of servers on an internal network.
  • Such an NAT is connected to an external network by using a public IP address assigned by the IPS, and assigns a private IP address to each of terminals attached to the NAT.
  • the NAT enables communication by maintaining mapping information of a private IP address/port number, and an IP address/port number of an external network.
  • the DNAT is not used for general network operation because the NAT must be controlled in advance for a specific purpose.
  • the NAT allows terminal host A and terminal host B on its private network having
  • IP address 192.168.2.0 to be connected simultaneously with an external network by using one public IP address 100.100.100.50 allocated to a user from the IPS.
  • the NAT router buffers IP addresses and port numbers of the transmitting terminals. Then, the NAT router respectively translates the IP addresses and port numbers to the public IP address 100.100.100.50 and new port numbers of 60000 or greater, and transmits to the IPS.
  • a router of the IPS having received the packets considers those packets to be sent from two different processes of the same terminal 100.100.100.50, and thus can transmit the packets to another Internet network without limitations.
  • the NAT router searches the mapping table including the port numbers and internal network addresses to detect an IP address and a port number of a destination terminal, and transmits to the corresponding terminal.
  • a plurality of terminals on the private network can use a public network by sharing one IP address provided by the ISP.
  • the SNAT is available only when clients on the private network access external servers.
  • FTP file transfer protocol
  • external terminals send packets by using a public IP address allocated to the NAT and a well-known FTP port number such as 20 and 21 since an IP address of the server on the internal network is unknown to the external terminals.
  • the NAT router having received such a packet may consider the destination IP address and port number of the received packet to be for an FTP server installed in the NAT itself, and thus the received packet cannot be transmitted to another FTP server on the private network.
  • a destination IP address of the packet is a public IP address of the NAT, whereas a destination port number is port number 3000, not the well-known FTP port number.
  • the NAT router when receiving the FTP packet with the known port number 3000 that the NAT router knows, the NAT router changes the IP address into an IP address of the FTP server installed on its private network, and also changes the destination port number of the packet into port number 21, and then transmits. In such a manner, the NAT router makes the FTP server on the private network accessible by clients on an external network.
  • An aspect of the present invention provides a method for configuring a control tunnel and a direct tunnel, which enables an IPv6-based service by changing just software of a control server and each terminal, without changing equipment and technologies used in an existing network.
  • An aspect of the present invention also provides a method for configuring a control tunnel between a terminal and a control server for IPv6 communication and configuring a direct tunnel directly between terminals, by configuring an IPv6 tunnel in an IPv4 network and configuring an IPv6 route in the configured tunnel.
  • An aspect of the present invention also provides a method for configuring a direct tunnel between terminals according to network positional relationships between the terminals regardless of a private network or a public network, for efficient terminal- to-terminal IPv6 service, and terminal-to-network communication related to an IPv6 gateway.
  • a method for configuring a control tunnel in an Internet Protocol version 4 (IPv4) network-based Internet Protocol version 6 (IPv6) service providing system having at least two terminals, and a portal server and a control server interworking with the terminals over an IPv4 network, the control tunnel being configured at each of the terminals for a terminal-to-terminal IPv6 communication service, including: configuring a control tunnel with the control server when a tunnel response message is received from the control server by using service information downloaded from the portal server at the time of initialization; sending a registration request message to the control server through the configured control tunnel; and reporting completion of control-tunnel configuration and terminal registration when a registration response message is received from the control server.
  • IPv4 Internet Protocol version 4
  • IPv6 Internet Protocol version 6
  • a method for configuring a control tunnel in an Internet Protocol version 4 (IPv4) network-based Internet Protocol version 6 (IPv6) service providing system having at least two terminals, and a portal server and a control server interworking with the terminals over an IPv4 network, the control tunnel being configured at the control server for a terminal-to-terminal IPv6 communication service, including: receiving a tunnel request message from each of the terminals; checking a public IPv4 address set on an IPv4 header of the tunnel request message, and an allocated IPv4 address of each of the terminals included in the tunnel request message; configuring a control tunnel with each of the terminals by using the public IPv4 address and the allocated IPv4 address; and registering each of the terminals when a registration request message is received from each of the terminals through the configured control tunnel.
  • IPv4 Internet Protocol version 4
  • IPv6 Internet Protocol version 6
  • a method for configuring a direct tunnel in an Internet Protocol version 4 (IPv4) network-based Internet Protocol version 6 (IPv6) service providing system having at least two terminals, and a control server interworking with the terminals over an IPv4 network, the direct tunnel being configured at a random request terminal for IPv6 communication service with a counterpart terminal, including: configuring a control tunnel with the control server; registering the counterpart terminal and learning a status of the counterpart terminal in real-time; sending a direct tunnel request message to the counterpart terminal by using terminal information obtained through the learning; configuring a direct tunnel with the counterpart terminal when a direct tunnel response message is received from the counterpart terminal; and checking whether IPv6 data transmission is available through the configured direct tunnel.
  • IPv4 Internet Protocol version 4
  • IPv6 Internet Protocol version 6
  • a method for configuring a direct tunnel in an Internet Protocol version 4 (IPv4) network-based Internet Protocol version 6 (IPv6) service providing system having at least two terminals and a control server interworking with the terminals through an IPv4 network, the direct tunnel being configured for IPv6 communication service at a random counterpart terminal receiving a direct tunnel request, including: receiving a message for the direct tunnel request from a request terminal; searching terminal information of the request terminal included in the message; checking whether the direct tunnel can be configured with the request terminal by using the searched terminal information; determining a network positional relationship with the request terminal by using the searched terminal information if the direct tunnel can be configured; generating a direct tunnel response message according to the determined network positional relationship, and sending the generated direct tunnel response message to the request terminal; and configuring the direct tunnel according to the determined network positional relationship.
  • IPv4 Internet Protocol version 4
  • IPv6 Internet Protocol version 6
  • a method for configuring a control tunnel and a direct tunnel in an Internet Protocol version 4 (IPv4) network-based Internet Protocol version 6 (IPv6) service providing system having at least two terminals, and a portal server, a control server and an IPv6 gateway interworking with the terminal through an IPv4 network, the control tunnel and the direct tunnel being configured at each of the terminals for terminal-to-network IPv6 communication service, including: configuring a control tunnel with the control server when a tunnel response message is received from the control server by using service information downloaded from the portal server at the time of initialization; registering the terminal and the IPv6 gateway to the control server through the configured control tunnel; registering the IPv6 gateway as a counterpart terminal on a counterpart terminal list in the terminal; transmitting a terminal information request message to the IPv6 gateway and receiving a terminal information response message from the IPv6 gateway to check a network address of a network connected to the IPv6 gateway; configuring a direct tunnel to the IPv
  • IPv4 Internet Protocol version 4
  • FIG. 1 is a view showing a process of subscribing to a portal server and receiving service information in an IPv4 network-based IPv6 service providing system according to embodiments of the present invention.
  • FIG. 2 shows types of control tunnel and direct tunnel configured in an IPv4 network-based IPv6 service providing system according to first and second embodiments of the present invention.
  • FIG. 3 shows types of tunnel configured when a terminal is initially registered to a control server according to the first embodiment of the present invention.
  • FIG. 4 is a flow diagram showing a process for configuring a control tunnel between a terminal and a server in an IPv4 network-based IPv6 service providing system according to the first embodiment of the present invention.
  • FIG. 5 is a flowchart showing an operation of a terminal protocol unit for configuring a control tunnel in the process of FIG. 4.
  • FIG. 6 is a flowchart showing an operation of a terminal protocol unit for configuring a control tunnel in the process of FIG. 4.
  • FIG. 7 shows types of tunnel according to a network positional relationship in configuring a direct tunnel in an IPv4 network-based IPv6 service providing system according to the second embodiment of the present invention.
  • FIG. 8 shows an example of tunnel configuration between a terminal on a public network and a terminal on a private network according to the second embodiment of the present invention.
  • FIG. 9 is an example of tunnel configuration between two terminals in different private networks according the second embodiment of the present invention.
  • FIG. 10 is a flow diagram showing a process of detecting a plurality of counterpart terminals and learning status information before direct tunnel configuration according to the second embodiment of the present invention.
  • FIG. 11 is a flow diagram showing a process for configuring a direct tunnel between terminals according to the second embodiment of the present invention.
  • FIG. 12 is a flowchart showing an operation of determining a proper tunnel type by determining a network positional relationship with the counterpart terminal in the process of learning status information and network position information of the counterpart terminal of FIG. 10, and setting a direct tunnel into the determined type.
  • FIG. 13 is a flowchart showing an operation for protocol processing of a request terminal in configuring the direct tunnel of FIG. 11.
  • FIG. 14 is a flowchart showing an operation for protocol processing of a response terminal in configuring of the direct tunnel of FIG. 11.
  • FIG. 15 shows an operation for determining whether a direct tunnel can be configured and used according to the second embodiment of the present invention.
  • FIG. 16 is a flowchart showing an operation for determining whether the corresponding terminal can use the direct tunnel with the counterpart terminal according to the second embodiment of the present invention.
  • FIG. 17 shows a network configuration and an operation for end-to-network IPv6 communication according to a third embodiment of the present invention.
  • Embodiments of the present invention propose an IPv4 network-based IPv6 service providing system with a server-client configuration including a control server and terminals in order to minimize changes in network equipment that are caused by the use of an Internet Protocol version 6 (IPv6) service.
  • IPv6 Internet Protocol version 6
  • the IPv4 network-based IPv6 service providing system has a structure where a terminal 10, a portal server 20, and a control server 30 interwork with one another through an IPv4 network or a public network.
  • a control tunnel and a direct tunnel are configured.
  • the control server 30 must be on a public network for configuration of a control tunnel with the terminal 10, and the terminal 10 may be on the public network, or on a private network connected to a network address translator (NAT).
  • NAT network address translator
  • the terminal 10 subscribes to the portal server 20 to receive service, and downloads client software and control information.
  • the terminal 10 configures a control tunnel with the control server 30 by using the downloaded software and control information, and performs data communication through the control tunnel.
  • the terminal 10 creates a direct tunnel to a counterpart terminal (not shown) for data transmission.
  • the control tunnel is a tunnel that exists all the time in an online status of the terminal 10, and the direct tunnel is a flexible tunnel that is created and eliminated whenever an application such as voice over internet protocol (VoIP) and file transfer is used and ended.
  • VoIP voice over internet protocol
  • the control server 30 performs control tunnel configuration and terminal registration under a request of the terminal 10, and also performs forwarding of an IPv6 packet to allow terminal-to-terminal communication through the control tunnel.
  • the service information is an IPv6 address of the terminal 10, a user name, and an
  • IPv4 address and an IPv6 address of the control server 30 are examples of the control server 30.
  • the IPv6 address of the terminal 10 is an address for IPv6 communication of the terminal 10 subscribed to service.
  • the user name may be a name that a user group management module uses to manage counterpart terminals having registered to the service.
  • the IPv4 address of the control server 30 is used in receiving/transmitting a protocol message when the terminal 10 configures a control tunnel.
  • the IPv6 address of the control server 30 is used to transmit/receive a protocol message when the terminal 10 is registered to the control server 30 after the control tunnel configuration.
  • An IPv4 address of the terminal 10 is not obtained from the portal server 20, but is obtained statically by a user or dynamically by dynamic host configuration protocol (DHCP) on a network on which the terminal 10 is placed.
  • DHCP dynamic host configuration protocol
  • the terminal 10 obtains an IPv4 address from a DHCP server (not shown).
  • the IPv4 address may be statically assigned by a user.
  • the terminal 10 sends a subscription request message to the portal server 20 to be registered to service.
  • the portal server 20 informs the control server that the terminal 10 is to use the control server 30.
  • control server 30 determines/manages that the terminal 10 is to use the control server 30, and sends a response message to the portal server.
  • portal server 20 sends the terminal 10 a response message including client software and service information for providing service.
  • Each of terminals in an IPv4 network configures a control tunnel through transmission and reception of initial IPv4 messages, and is registered to a control server through transmission and reception of IPv6 messages. Thereafter, an IPv6 router is provided to the configured control tunnel, so that IPv6 communication can be made between the terminals.
  • the types of tunnel configured between the control server and the terminal may include an IPv6-user datagram protocol (UDP)-IPv4 type and an IPv6-IPv4 type.
  • the IPv6-UDP-IPv4 type tunnel is configured when the terminal is on a private network.
  • both of the IPv6-UDP-IPv4 type tunnel and the IPv6-IPv4 type tunnel are configurable, but mostly, the IPv6-IPv4 type tunnel is configured because of efficiency of data transmission/reception.
  • the terminal respectively transmits and receives a direct tunnel request message and a response message by using UDP source port information and a public IPv4 address translated via its NAT learned in the control-tunnel configuration process.
  • the direct tunnel is configured differently in four different cases. There are two types of tunnel configurable according to each case.
  • a terminal on the private network periodically sends a Keep-Alive message to renew a lifetime of a mapping table stored in the NAT.
  • the terminal having requested the configuration of the direct tunnel enables an IPv6 P2P service in due consideration of "a function of obtaining network position information of a counterpart terminal", "a function of managing an online/offline status of the counterpart terminal in real time”, and "a function of checking possibility of configuring a direct tunnel of a terminal on a private network”.
  • Types of control and direct tunnels configured to provide the IPv6 P2P service according to a positional relationship between terminals on the same network or on different networks will now be described with reference to FIG. 2. There are four different network positional relationships between terminals depending on the position of each terminal.
  • the first relationship is a relationship on the same private network 61, that is, a relationship between two terminals 10 attached to the same NAT 40.
  • a configurable direct tunnel type is an IPv6-IPv4 type and an IPv6-UDP-IPv4 type.
  • IPv6-UDP-IPv4 unnecessarily uses a UDP header, efficiency of packet transfer can be deteriorated.
  • the IPv6-IPv4 tunnel is used.
  • the second relationship is a relationship between different private networks 62, that is, a relationship between two terminals 10 attached to their respective NATs 40 on the different private networks.
  • a configurable direct tunnel type is just an IPv6-UDP-IPv4 type, and thus each terminal 10 must periodically send a NAT Keep Alive message using a set UDP port number to update a table in the NAT 40.
  • the third relationship is a relationship on a public network, that is, a relationship between terminals on the public network.
  • a configurable direct tunnel type is an IPv6-IPv4 type and an IPv6-UDP-IPv4 type.
  • IPv6-UDP-IPv6 type unnecessarily requires a UDP header, efficiency of packet transfer is deteriorated. Accordingly, the IPv6-IPv4 tunnel is used.
  • the fourth relationship is a positional relationship between a public network and a private network 64, that is, a relationship between one terminal 10 on the public network and another terminal 10 attached to an NAT 40.
  • a configurable direct tunnel is just an IPv6-UDP-IPv4 type, not an IPv6-IPv4 type.
  • the terminal 10 attached to the NAT 40 must periodically send an NAT Keep Alive message using a UDP port number to update a table in the NAT 40.
  • an apparatus for configuring a control tunnel and a direct tunnel may include a user group management unit 110, an interface management unit 120, a first terminal protocol unit 130a, a second terminal protocol unit 130b, and a control server protocol unit 140.
  • the user group management unit 110 manages information of each counterpart terminal 10 which an initial terminal 10 wants to communicate with after control tunnel configuration and terminal registration to the control server 30.
  • the interface management unit 120 is a module that is placed at the terminal 10 and is configured to determine interface information.
  • the interface management unit 120 checks interface information of the terminal 10 that is usable at the time of initial execution, such as an allocated IPv4 address, an IPv6 address, and a terminal name, and manages information for communication with the control server 30 such as an IPv4 address and an IPv6 address. Also, the interface management unit 120 provides the information to the terminal protocol units 130a and 130b.
  • the first and second terminal protocol units 130a and 130b are placed at respective terminals 10.
  • the first and second terminal protocol units 130a and 130b perform control tunnel configuration and terminal registration through transmission and reception of protocol messages with the control server protocol unit 140. Also, the first and second terminal protocol units 130a and 130b renew a lifetime of a tunnel, and configure a direct tunnel through message transmission and reception with a protocol module of each counterpart terminal.
  • the control server protocol unit 140 is placed at the control server 30, and performs control operations upon request such as a terminal registration request, a tunnel configuration request, and a lifetime renewing request.
  • FIG. 3 the types of tunnel that the initial terminal configures for registration to the control server 30 according to the positional relations between the terminals are shown.
  • an IPv6-IPv4 tunnel is configured and used. If the terminal 10 is on a private network 72, an IPv6-UDP-IPv4 tunnel is configured and used. Here, the terminal 10 on the private network 7 periodically sends an NAT Keep-Alive message to update mapping table of the NAT 40.
  • FIG. 4 is a flow diagram of a process of configuring a control tunnel between a terminal and a server in an IPv4 network-based IPv6 service providing system according to a first embodiment of the present invention.
  • the IPv4 network-based IPv6 service providing system may include a tunnel configuring system including a user terminal group management unit 110, an interface management unit 120, first and second terminal protocol units 130a and 130b, and a control server protocol unit 140 in the control server.
  • the first terminal protocol unit 130a is a protocol unit of a first terminal 3ffe:: 111, i.e., a request terminal
  • the second terminal protocol unit 130b is a protocol unit of a second terminal 3ffe::222, i.e., a counterpart terminal.
  • the interface management unit 120 determines interface information and service information of the request terminal 3ffe::l 11.
  • the interface management unit 120 sends a tunnel configuration request message for requesting control-tunnel configuration and registration of the request terminal to the first terminal protocol unit 130.
  • the first terminal protocol unit 130a sends a tunnel request message to the control server protocol unit 140 by using information obtained from the tunnel configuration request message sent from the interface management unit 120.
  • the tunnel request message is sent as an IPv4-UDP packet including a specific port number, and includes an IPv4 address, an IPv6 address and other information of the request terminal 3ffe::l l l.
  • the control server protocol unit 140 confirms that the request terminal 3ffe:: 111 is a valid terminal from the information of the received tunnel request message, i.e., an IPv4 UDP message, and then configures a tunnel to the request terminal 3ffe:: 111.
  • the control server protocol unit 140 sends a tunnel response message to the first terminal protocol unit 130a.
  • the control server protocol unit 140 checks an IPv4 address of the request terminal 3ffe:: 111 on an IPv4 header of the received tunnel request message, i.e., an public IPv4 address of the request terminal 3ffe:: 111, and an IPv4 address included in the message, i.e., an allocated IPv4 address of the request terminal 3ffe:: 111. If the public IPv4 address and the allocated IPv4 address are different from each other, the control server protocol unit 10 determines that the request terminal 3ffe:: 111 is on a private network using an NAT.
  • the tunnel response message may include information indicating that the terminal 3ffe:: 111 is attached to the NAT, and also includes the allocated IPv4 address, the IPv4 public address, and a translated UDP port number of the request terminal 3ffe::l 11. From the above information the control server protocol unit 140 can determine whether the request terminal 3ffe:: 111 is on a private network using the NAT or on a public network, and thus can determine a type of tunnel to be configured.
  • the first terminal protocol unit 130a receives the tunnel response message, confirms that the received tunnel response message is a response to the tunnel configuration request message that it sent in operation 202, and then configures a tunnel to the control server.
  • the request terminal 3ffe:: 111 is attached to the NAT
  • the first terminal protocol unit 130a configures the tunnel into an IPv6-UDP-IPv4 type
  • the request terminal 3ffe:: 111 is on the public network
  • the first terminal protocol unit 130a configures the tunnel into an IPv6-IPv4 type.
  • the first terminal protocol unit 130a periodically sends an NAT Keep-Alive message to update a mapping table of NAT equipment.
  • the first terminal protocol unit 130a sends a registration request message for registering of the request terminal 3ffe:: 111 to the control server protocol unit 140. Then, in operation 208, the first terminal protocol unit 130a receives a registration response message through the configured control tunnel. Both of the registration request message and the registration response message must be IPv6 messages.
  • the first terminal protocol unit 130a transmits/receives messages for confirming that IPv6 data can be transmitted/received through the IPv6-(UDP)-IPv4 tunnel, and for renewing a lifetime of the configured tunnel.
  • the configuration of the control tunnel and the following registration of the request terminal 3ffe::l 11 are completed.
  • the first terminal protocol unit 130a informs the user group management unit 100 that an initialization process is completed.
  • the user group management unit 110 When informed that the control-tunnel configuration and the terminal registration are completed from the first terminal protocol unit 130a, the user group management unit 110 adds information of each counterpart terminal 110 in the case where there is user group information of a existing counterpart terminal or a new counterpart terminal is registered. Accordingly, the first terminal protocol unit 110 can manage an online/ offline status of each counterpart terminal. Thus, the user management unit 110 can obtain status information of a plurality of counterpart terminals, which is learned from the first terminal protocol unit 130a, and links the obtained status information to an application program, thereby enabling IPv6 data communication.
  • Each terminal performs the above-described process at an initial stage, so that a control tunnel to a control server can be configured, and the terminal can be registered to the control server.
  • the second terminal protocol unit 130b performs the same processes as those in operations 203 through 211 together with the control server protocol unit 140, so that a control tunnel of the counterpart terminal 3ffe::222 can be configured to the control server, and the counterpart terminal 3ffe::222 can be registered to the control server.
  • IPv6 communication between the registered request terminal and the registered counterpart terminal is enabled through the control tunnel.
  • the terminal protocol unit 130 sends a tunnel request message to a control server, and receives a corresponding tunnel response message from the control server.
  • the terminal protocol unit 130 extracts information included in the tunnel response message in order to determine whether a terminal is on a private network or on a public network, and checks using the extracted information whether an NAT flag is set, whether a public IPv4 address and an allocated IPv4 address are the same, or whether a UDP source port number is changed.
  • the allocated IPv4 address is an IPv4 address assigned to the terminal, and the public IPv4 address is a source address in an IP header that the NAT changes as it passes through the NAT, i.e., an interface IPv4 address of NAT equipment connected to a public network.
  • the changed UDP port number is a source port number changed as a UDP source port number in the tunnel request message passes through the NAT.
  • the terminal protocol unit 130 determines whether the terminal is attached to the NAT. In operation 304, when it is determined that the terminal is attached to the NAT, i.e., is on a private network, the terminal protocol unit 130 configures an IPv6-UDP-IPv4 tunnel. In operation 305, the terminal protocol unit 130 periodically sends an NAT Keep-Alive message, and then completes the operation. In contrast, in operation 306, when it is determined that the terminal is on a public network, the terminal protocol unit 130 configures an IPv6-IPv4 tunnel for data efficiency, and then completes the operation.
  • the control server protocol unit 140 receives a tunnel request message from the terminal protocol unit 130.
  • the control server protocol unit 140 extracts an IPv4 address of the terminal included in an IPv4 header of the received message, i.e., a public IPv4 address of an NAT in the case where the message passes through the NAT, and also extracts an IPv4 address included in the message, i.e., an allocated IPv4 address of the terminal.
  • the control server protocol unit 140 determines whether the two extracted addresses are identical or not.
  • the control server protocol unit determines that the terminal having sent the tunnel request message is attached to the NAT on a private network, and thus configures an IPv6-UDP-IPv4 control tunnel with the terminal.
  • the control server protocol unit 140 After configuring the IPv6-UDP-IPv4, the control server protocol unit 140 generates a tunnel response message including information that the terminal is attached to the NAT.
  • the tunnel response message includes an "NAT Present Flag" indicating that the terminal is on the private network, or an allocated IPv4 address, a public IPv4 address and a changed UDP port number of the corresponding terminal.
  • the allocated IPv4 address is an IPv4 address allocated to the terminal
  • the public IPv4 address is a source address in an IP header that the NAT changes as it passes through the NAT, that is, an interface IPv4 address of NAT equipment connected to a public network.
  • the changed UDP port number is a source port number changed as a UDP source port number in the tunnel request message passes through the NAT.
  • control server protocol unit 140 determines that the terminal is on a public network, and configures an IPv6-IPv4 control tunnel with the terminal.
  • the control server protocol unit 140 can configure both an IPv6-UDP-IPv4 control tunnel and an IPv6-IPv4 control tunnel, it configures the IPv6-IPv4 control tunnel in due consideration of data efficiency.
  • control server protocol unit 140 indicates False in the NAT Present Flag , or includes the identical value of allocated IPv4 address and the public IPv4 address, and the un-changed UDP port number in due consideration of the case where the request terminal 3ffe:: 111 is on a private network of an NAT.
  • control server protocol unit 140 After performing operation 405 or 407, the control server protocol unit 140 sends the tunnel response message to the corresponding terminal, and completes an operation.
  • IPv6 communication according to the first embodiment of the present invention has been described. Thereafter, a method for configuring a direct tunnel when each application service requires IPv6 communication according to a second embodiment of the present invention will now be described.
  • FIG. 7 configurable tunnel types according to network positional relationships between terminals are shown. As shown in FIG. 2, there are four different network positional relationships between a request terminal and a counterpart terminal for configuring a P2P direct tunnel therebetween.
  • the first positional relationship is a relationship on a public network 63.
  • a direct tunnel can be configured into both an IPv6-UDP-IPv type and an IPv6-IPv4 type, but the IPv6-IPv4 tunnel is configured for the data efficiency.
  • the second positional relationship is a relationship between a public network and a private network 64.
  • the direct tunnel is configured into an IPv6-UDP-IPv4 type.
  • the third positional relationship is a relationship on a private network 61, i.e., on the same network.
  • the direct tunnel can be configured into both an IPv6-UDP-IPv4 type and an IPv6-IPv4 type, the IPv6-IPv4 tunnel is configured for the data efficiency.
  • the fourth positional relationship is a relationship between private networks, i.e., different networks.
  • a configurable P2P direct tunnel type is an IPv6-UDP-IPv4 type.
  • a first terminal 10a is on a public network, and a second terminal
  • the second terminal 10b learns changed information such as a source IP address and a UDP source port from a control server 30 in an initial tunnel configuration and terminal registration process. Thereafter, like the user registration process described with reference to FIG. 4, the first terminal 10a learns the changed information such as a source IP address and a UDP source port from network position information of the second terminal 10b, and the second terminal 10b learns that the first terminal 10a is on the public network.
  • a protocol unit of the first terminal 10a or the second terminal 10b sends a direct tunnel request message to the counterpart terminal, and receives a direct tunnel response message from the counterpart terminal.
  • the first terminal 10a configures a tunnel as "Src IP(20.20.20.20) Src UDP Port(50000) Dst IP(IO.IO.IO.IO) UDP Dst Port(1024)" on the basis of the learned information.
  • Dst IP(IO.10.10.10) is an IP address changed as it passes through an NAT of the second terminal 10b
  • UDP Dst Port(1024) is a changed UDP source port number.
  • the second terminal 10b configures a tunnel as "Src IP(192.168.1.10) Src UDP Port(50000) Dst IP(20.20.20.20) UDP Dst Port(50000)” After the tunnel configuration, the two terminals 10a and 10b can freely perform IPv6 communication in an IPv6 NAT environment.
  • a first terminal 10a is on a private network.
  • the first terminal 10a is on a private network.
  • a second terminal 10b is also on a private network, and thus learns that a changed source IP address is 10.10.10.10 and a changed source UDP port number is 1024 during an initial control-tunnel configuration and terminal registration process.
  • the first terminal 10a learns the changed source IP address and UDP source port number of the second terminal 10b from network position information of the second terminal 10b
  • the second terminal 10b learns the changed source IP address and UDP source port number of the first terminal 10a from network position information of the first terminal 10a.
  • the terminals 10a and 10b learn that they are placed on the different private networks.
  • Each of the terminals 10a and 10b sends a direct tunnel request message and receives a direct tunnel response message with each other to configure a tunnel.
  • the first terminal 10a configures a tunnel as "Src IP(192.168.1.11) Src UDP Port(50000) Dst IP(IO.IO.IO.IO) UDPDst Port(1024)" on the basis of the IP address and UDP source port number changed in an NAT 40b to which the second terminal 10b is attached.
  • the second terminal 10b configures a terminal as "Src IP(192.168.1.10) Src UDP Port(50000) Dst IP(30.30.30) UDP Dst Port(2048)" on the basis of the IP address and UDP source port number changed in an NAT 40a to which the first terminal 10a is attached.
  • the two terminals 10a and 10b can freely perform IPv6 communication in different NAT environments from each other.
  • FIG. 10 is a flow diagram of a process of finding a plurality of counterpart terminals and learning their statuses before configuration of a direct tunnel according to the second embodiment of the present invention.
  • the IPv4 network-based IPv6 service providing system may include a tunnel configuring system including a user group management unit 110, first to third terminal protocol units 130a, 130b and 130c, and a control server protocol unit 140 of a control server.
  • the first terminal protocol unit 130a is a protocol unit of a first terminal 3ffe:: 111, i.e., a request terminal.
  • the second terminal protocol unit 130b is a protocol unit of a second terminal 3ffe:: 112, i.e., a counterpart terminal
  • the third terminal protocol unit 130c is a protocol unit of a third terminal 3ffe:: 113, i.e., another counterpart terminal.
  • the user group management unit 110 is a module that manages a counterpart terminal list for terminal-to-terminal communication.
  • the user group management unit manages (e.g., adds/deletes) list information of counterpart terminals such as a service group or a buddy list of, e.g., Microsoft Network (MSN) or Sky-pe.
  • the user group management unit 110 serves to provide status information such as an online/offline status of a counterpart terminal when each IPv6 application service requires data communication with a counterpart terminal.
  • the user group management unit serves to request configuration/deletion of a tunnel when a tunnel to be used is a direct tunnel.
  • the first terminal protocol unit 130a sends/receives a status management message with the second and third protocol units 130b and 130c of the respective second and third terminals 3ffe:: 112 and 3ffe::l 13, i.e., the counterpart terminals, so that the status management can be performed in real-time. Also, when the user group management unit 100 or an application requests a direct tunnel with an online counterpart terminal, the first terminal protocol unit 130a sends a direct tunnel request message to a counterpart terminal and receives a direct tunnel response message therefrom to provide the direct tunnel.
  • This procedure may be divided into a counterpart terminal adding process of registering a counterpart terminal to obtain network position information and an online/ offline status of the counterpart terminal in real-time, a status managing process of periodically checking status information in case where real-time transmission/reception of status information to/from the counterpart terminal fails due to a message loss or other reasons, and a completion process of informing a counterpart terminal in the list of an offline status when an abnormal situation occurs.
  • control- tunnel configuration and terminal registration performed between the terminal protocol unit 130 of each terminal and the control server protocol are previously performed.
  • the user group management unit 110 registers a counterpart terminal, and sets a status to an offline status.
  • the user group management unit 110 reports information of the counterpart terminal to the first terminal protocol unit 130a.
  • the first terminal protocol unit 130a adds the information of the counterpart terminal to be registered on a list of an internal material structure.
  • the first terminal protocol unit 130a sends a terminal information request message to the second terminal protocol unit 130b in order to check network positional information of the counterpart terminal and an online/offline status thereof.
  • the first terminal protocol unit 130a sets a timer, and resends the terminal information request message at every specific time interval.
  • the second terminal protocol unit 130b updates network position information of the request terminal 3ffe:: 111 as soon as the terminal information request message is received, and reports an online status to the user group management unit 110.
  • the second terminal protocol unit 130b sends a terminal information response message including network position information of the counterpart terminal 3ffe:: 112 to the request terminal 3ffe:: 111, i.e., the first terminal protocol unit 130a.
  • the first terminal protocol unit 13a updates the network position information of the counterpart terminal 3ffe::l 12, and confirms its online status to set the status of the counterpart terminal 3ffe:: 112 to an online status.
  • the first terminal protocol unit 130a reports the online status to the user group management unit 110. Every message used herein has an IPv6 packet format using a control tunnel.
  • the terminal information request message must include a public IPv4 address and a changed UDP source port number that the request terminal 3ffe:: 111 has learned during its initial control-tunnel configuration and terminal registration process
  • the terminal information response message must include a public IPv4 address and a changed UDP source port number that the response terminal, i.e., the counterpart terminal 3ffe:: 112 learns during its initial control-tunnel configuration and terminal registration process.
  • the information is needed to pass through the respective NATs when a direct tunnel is configured.
  • the terminal protocol unit 130a If the terminal protocol unit 130a cannot determines an abnormal situation occurs in the registration and deletion of a counterpart terminal and step for processing of an abnormal situation occurs, the terminal protocol unit 130a periodically exchange status information with a plurality of counterpart terminals to perform a status management process.
  • the status management process will now be described in detail with reference to FIG. 7.
  • the first terminal protocol unit 130a starts a processor at a specific time interval.
  • the first terminal protocol unit 130a checks for timeout, and the first terminal protocol unit determines a status of a counterpart terminal as an offline if there is no received response message within the timeout time.
  • the first terminal protocol unit 130a reports the offline status to the user group management unit 110.
  • the first terminal protocol unit 130a sends a terminal information request message initially sent in counterpart-terminal registration to a plurality of counterpart terminals at a specific time interval.
  • the second terminal protocol unit 130b sets a status of the request terminal 3ffe:: 111 to an online status.
  • the first terminal protocol unit 130a starts a timer.
  • the first terminal protocol unit 130a receives a terminal information response message from the second terminal protocol unit 130b.
  • the first terminal protocol unit 130a updates network position information, determines whether the counterpart terminal 3ffe:: 112 is in an online status to set the status of the counterpart terminal 3ffe:: 112 to an online status, and changes a timeout value.
  • the response message is not received during a specific period of time, i.e., until the timer expires, the first terminal protocol unit 130a determines that the counterpart terminal is in an offline status.
  • the first terminal protocol unit 130a reports the online status to the user group management unit 110.
  • each of the second and third terminal protocol units 130b and 130c of the respective counterpart terminals 3ffe:: 112 and 3ffe::l 13 sets the counterpart node status to an offline status, and reports the offline status to a user group management module, so that each of the corresponding terminals can be immediately informed of the change to the offline status.
  • the first terminal protocol unit 130a terminates a system or process.
  • the user group management unit 110 since a user group management unit 110 must be previously informed of network positional information and an online/offline status of a counterpart terminal through registration of a counterpart terminal, the user group management unit 110 sends a counterpart node addition request message to a first terminal protocol unit 130a of the request terminal 3ffe:: 111.
  • the first terminal protocol unit 130a sends a terminal information request message to a second protocol unit 130b of the counterpart terminal 3ffe::222, and receives a response message thereto.
  • the user group management unit 110 or an IPv6 application program makes a direct tunnel request, i.e., a counterpart-node addition request from the first terminal protocol unit 130a. Then, the first terminal protocol unit 130a sends a direct tunnel request message to the second terminal protocol unit 130b. Then, the second terminal protocol unit 130b sends a direct tunnel response message to the first terminal protocol unit 130a, and thereafter configures a direct tunnel.
  • the first terminal protocol unit 130a receives the response message to configure the direct tunnel, so that configuration of the direct tunnel between the two terminals 3ffe:: 111 and 3ffe::222 is completed.
  • the direct tunnel request message and the direct tunnel response message are transmitted/received through the control tunnel that has been previously configured to ensure data transmission/reception.
  • the first terminal protocol unit 130a sends a direct tunnel check request message as an iPv6 packet format to the second terminal protocol unit 130b of the counterpart terminal 3ffe::222, and receives a direct tunnel check response message, thereby confirming the usability of the direct tunnel. If the check messages are not transmitted/received, it means that the configured direct tunnel has a problem. In this case, the two terminals 3ffe:: 111 and 3ffe::222 respectively eliminate the direct tunnel, and thereafter performs IPv6 communication through the control tunnel.
  • a request terminal receives a terminal information response message, or a response terminal, i.e., a counterpart terminal receives a terminal information request message.
  • each of the terminals has already learned its network position information during an initial control-tunnel configuration and terminal registration process with respect to the control server.
  • the learned information includes, e.g., a source IP address and a UDP source port number translated as it passes through an NAT, and is included in the corresponding message at the time of message transmission/reception.
  • operation 802 when the request terminal receives the corresponding message, it checks whether it is attached to an NAT. In operation 803, if the request terminal is not attached to the NAT, the request terminal checks whether the counterpart terminal is attached to an NAT. In operation 804, if the counterpart terminal is not attached to the NAT, the request terminal determines that a positional relationship with the counterpart terminal is a relationship on a public network 63 of FIG. 7, and thus the request terminal determines a type of a direct tunnel as an IPv6-IPv4 type. Thereafter, operation 811 is performed.
  • the request terminal determines that a positional relationship with the counterpart terminal is a relationship between a public network and a private network 64 of FIG. 7, and thus the request terminal determines a type of a direct tunnel as an IPv6-UDP-IPv4 type. Thereafter, the operation 811 is performed.
  • the request terminal determines whether the counterpart terminal is attached to an NAT.
  • the request terminal determines that a positional relationship with the counterpart terminal is a relationship between a public network and a private network 64 of FIG. 7, and thus the request terminal determines a tunnel type as an IPv6-UDP-IPv4 type.
  • the request terminal compares its public IPv4 address with its allocated IPv4 address thereof.
  • the request terminal determines a positional relationship with the counterpart terminal is a relationship on the same private network 61 of FIG. 7, and thus the request terminal determines a tunnel type as an IPv6-IPv4 type. Thereafter, the operation 811 is performed.
  • the request terminal determines that a positional relationship with the counterpart terminal is a relationship between different private networks 62 of FIG. 7, and thus determines a tunnel type as an IPvV6-UDP-IPv4 type. Thereafter, in operation 811, the tunnel is configured into the type determined in the aforementioned manner.
  • the first terminal protocol unit 130 receives a direct tunnel request from the user group management unit 110 or an application. In operation 902, the first terminal protocol unit 130 checks network position information and online status information that has already been obtained during a counterpart terminal registration process.
  • the first terminal protocol unit 130a checks whether the counterpart terminal can configure a direct tunnel. In operation 904, if the counterpart part terminal cannot configure a direct tunnel, the first terminal protocol unit informs the user group management unit 110 or the application that the direct tunnel cannot be configured.
  • the first terminal protocol unit 130a In contrast, in operation 905, if the direct tunnel can be configured, the first terminal protocol unit 130a generates a direct tunnel request message, and sends the direct tunnel request message to the counterpart terminal, i.e., the second terminal protocol unit 130b.
  • the first terminal protocol unit 130a includes network position of the request terminal in the message.
  • the first terminal protocol unit 130a receives a direct tunnel response message from the second protocol unit 130b.
  • the first terminal protocol unit 130a checks whether the received direct tunnel response message is a valid response message from a counterpart terminal list. If the direct tunnel response message is a valid message, the next operation is performed, and if not the message is neglected.
  • the first terminal protocol unit 130a determines a network positional relationship with the counterpart terminal on the basis of the received message, stored network position information of the counterpart terminal, and position information of the request terminal. That is, in operation 908, the first terminal protocol unit 130a determines whether a tunnel type is an IPv6-IPv4 type. In operation 909, if the tunnel type is not the IPv6-IPv4 type, the first terminal protocol unit 130 configures a tunnel into an IPv6-UDP-IPv4 type. In operation 910, the first terminal protocol unit 130a periodically sends an NAT Keep- Alive message to update a mapping table in NAT equipment. In contrast, in operation 911, if the tunnel type is the IPv6-IPv4 type, the first terminal protocol unit 130a configures the tunnel into the IPv6-IPv4 type.
  • the counterpart terminal i.e., the second terminal protocol unit 130b receives a direct tunnel request message.
  • the second terminal protocol unit 130b searches counterpart node information to check whether the request terminal is a terminal registered by the user group management unit 110.
  • the second terminal protocol unit 130b checks whether a direct tunnel can be configured. In operation 1004, if the direct tunnel cannot be configured, the second terminal protocol unit 130b sends a direct tunnel error message, and informs the request terminal that the direct tunnel cannot be configured.
  • the second terminal protocol unit 130b checks a network positional relationship between the two terminals on the basis of counterpart terminal information or information of the received message. In operation 1006, the second terminal protocol unit 130b checks whether the checked network positional relationship is an IPv6-IPv4 type. In operation 1007, if the network positional relationship is not the IPv6-IPv4 type, the second terminal protocol unit 130b sends a direct tunnel response message to the request terminal. In operation 1008, the second terminal protocol unit 130b configures a direct tunnel into an IPv6-UDP-IPv4 type. Then, in operation 1009, the second terminal protocol unit 130b periodically sends an NAT Keep- Alive message to update a mapping table set in NAT equipment.
  • the second terminal protocol unit 130b sends a direct tunnel response message to the request terminal.
  • the second terminal protocol unit 130b configures a direct tunnel into an IPv6-IPv4 type.
  • a positional relationship between two terminals is a relationship on a public network 63 of FIG. 7, or a relationship on the same private network 61 of FIG. 7, an IPv6-IPv4 tunnel is used so that a direct tunnel can be configured and used all the time.
  • the positional relationship between the two terminals is a relationship between a public network and a private network 64 of FIG. 7, or a relationship on different private networks 62 of FIG. 7, an IPv6-UPD-IPv4 tunnel must be configured and used. In this case, a direct tunnel may not be configured and used depending on a kind of NAT equipment.
  • the two terminals that cannot use a direct tunnel perform data communication by using a control tunnel.
  • each terminal learns that NAT equipment of a private network works as a source NAT during a process of configuring a control tunnel and registering a terminal to a control server, if the terminal is on the private network.
  • NAT equipment does not act as a source NAT
  • a request terminal must not request a direct tunnel from a counterpart terminal. If the counterpart terminal requests a direct tunnel from the request terminal, the request terminal informs the counterpart terminal that the direct tunnel cannot be used. In this case, the two terminals that cannot use a direct tunnel use a control tunnel for data communication.
  • a control server includes a main control server 31 and an auxiliary control server 32 to determine whether the direct tunnel can be configured and used.
  • the main control server 31 performs configuration of a control tunnel, registration of each terminal 10, and forwarding of an IPv6 packet.
  • the auxiliary control server 32 receives an NAT check request message that each terminal 10 sends to check whether its NAT equipment acts as a source NAT, and transmits an NAT check response message to each request terminal.
  • the auxiliary control server 32 checks a source port number of a UDP message received from each request terminal, and includes the source port number in the NAT check response message.
  • the terminal 10 sends a tunnel request message in an IPv4 UDP packet to the main control server 13 in operation 1101.
  • the same port is used for a source port and a destination port of a UDP port being used.
  • the main control server 31 checks a changed source port number, includes this changed source port number in the tunnel response message, and then sends the message to the terminal 10 via an NAT 40.
  • the terminal 10 sends an NAT check request message to the auxiliary control server 32.
  • a source port number and a destination port number of a UDP port being used must be the same number that was used for the tunnel request message.
  • the auxiliary control server 32 having received the NAT check request message checks a changed UDP source port number, and sends an NAT check response message including the changed UDP source port number to the terminal 10.
  • the terminal 10 sends a tunnel request message in an IPv4 packet to the main control server 31 at the time of initialization, and then receives IPv4 tunnel response message in an IPv4 packet.
  • the terminal 10 determines whether it is on a private network or a public network by using information included in the tunnel response message. If the terminal 10 is on the public network, a process shown in FIG. 2 is performed.
  • the terminal sends an NAT checks request message in an IPv4 UDP packet using the same source port to the auxiliary control server 32, and receives an NAT check response message from the auxiliary control server 32.
  • the NAT check request message must include a UDP source port number and a destination port number that are the same as those used in the tunnel request message.
  • the terminal compares a changed source port number included in the tunnel response message received from the main control server 31 with a changed source port number in the NAT checks response message received from the auxiliary control server 32.
  • operation 1205 if the two changed source port numbers are identical, the terminal determines that the corresponding NAT acts as a source NAT, and thus a direct tunnel can be configured and used. However, in operation 1206, if the two changed source port numbers are not the same, the terminal determines that the corresponding NAT does not act as a source NAT, and thus the direct tunnel cannot be used.
  • FIG. 17 is a network configuration for terminal-to-network IPv6 communication, and an operation thereof according to a third embodiment of the present invention.
  • an IPv4 network-based IPv6 service providing system further includes an IPv6 gateway 80.
  • the IPv6 gateway 80 serves to perform IPv4 communication and IPv6 tunneling to an IPv4 network 40, and serves as a gateway of an IPv6 network.
  • the IPv6 gateway 80 is linked to each terminal on the IPv4 network, thereby enabling communication with terminals on the IPv6 network.
  • a terminal 10 and the IPv6 gateway 80 subscribe to a portal server 20 for service, and performs a control-tunnel configuration and terminal registration process through message transmission and reception in operations 1301 and 1302, respectively.
  • the terminal 10 and the IPv6 gateway 80 can transmit/receive an IPv6 message through a control tunnel.
  • the terminal 10 when the terminal 10 receives a terminal addition request from a user group management unit, the terminal 10 performs a process of registering the IPv6 gateway 80 as a counterpart terminal on a counterpart terminal list.
  • the IPv6 gateway 80 is registered so as to allow the corresponding terminal to access the IPv6 network 3ffe:200::/64.
  • the terminal 10 respectively transmits and receives a terminal information request message and a terminal information response message with the IPv6 gateway 80, so as to confirm that the IPv6 gateway 80 is a gateway node connected to the IPv6 network.
  • the terminal information request message and the terminal information response message each include information about a request terminal type.
  • a general terminal serves as a mobile node
  • a node connecting the IPv6 network serves as a gateway
  • the terminal information request message and the terminal information response message include an address of a network connected to the gateway at the time of message transmission/reception with the terminal.
  • a terminal protocol unit of the terminal 10 sends a direct tunnel request message to the IPv6 gateway 3ffe::200 80 by using a network address.
  • the IPv6 gateway 80 configures a direct tunnel with respect to the corresponding terminal 10 and sends a direct tunnel response message to the terminal 10.
  • the direct tunnel response message includes an IPv6 network address 3ffe:200::/64 that the IPv6 gateway connects.
  • the terminal 10 receives the direct tunnel response message to configure a direct tunnel 3ffe::200 up to the IPv6 gateway 80, and adds information included in the message to IPv6 router information 3ffe:200::/64 in the configured direct tunnel.
  • the terminal 10 is able to communicate with every IPv6 terminal on the IPv6 network via the IPv6 gateway 80.
  • an IPv6 tunneling is provided on an IPv4 network base, which is being widely used, to provide an IPv6 service.
  • the efficient and cheap IPv6 service can be provided by just changing a control server and terminal software, without changing or modifying any other equipment within a network zone.
  • a direct tunnel is directly connected between two terminals without going by way of a server, so that data transmission/reception can be very efficiently performed, and a tunnel can be provided even between terminals on various networks.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Provided is a method for configuring a control tunnel and a direct tunnel in an IPv4 network-based IPv6 service providing system. To provide IPv6 service, when a random request terminal receives a tunnel response message from a control server by using service information downloaded from a portal server at the time of initialization, the request terminal configures a control tunnel with the control server, and is registered to the control server. The request terminal transmits and receives a direct tunnel request message and a direct tunnel response message with a counterpart terminal by using its terminal information learned during the control tunnel configuration, i.e., network position information and status information, thereby configuring a direct tunnel. Thus, IPv6 communication is made through IPv4 based IPv6 tunneling, so that IPv6 application services that are not yet widely used can easily come into wide use. Also, only software change of each terminal and a control server is required without changing existing network equipment, so that a cost burden of a service provider can be minimized.

Description

Description
METHOD FOR CONFIGURING CONTROL TUNNEL AND DIRECT TUNNEL IN IPV4 NETWORK-BASED IPV6 SERVICE
PROVIDING SYSTEM
Technical Field
[1] The present disclosure relates to an Internet Protocol version 6 (IPv6) service providing system using a tunneling technology in an IPv4-based network environment, and more particularly, to a method for configuring a control tunnel and a direct tunnel for providing a terminal-to-terminal and terminal-to-network IPv6 communication service.
[2]
Background Art
[3] In general, a tunneling technology is used to allow an IPv6 packet to cross an IPv4 network by configuring a tunnel, when the IPv6 packet must be transmitted from an IPv6 network to another IPv6 network via the IPv4 network. IPv4/IPv6 dual stack hosts and routers can perform tunneling through an IPv4 routing topology region by encapsulating an IPv6 datagram to an IPv4 packet.
[4] Since IPv6 island networks appear at the beginning stage of IPv4 to IPv6 transition, the tunneling technology will be used to a great extent. Thus, many efforts have been actively made for standardization of the tunneling technologies among various transition technologies. As a result, a variety of tunneling technologies have been proposed as the standard tunneling technology. Representative ones of those tunneling technologies include 'Configured tunnel', '6to4', '6over4' and Tntra-Site Automatic Tunnel Addressing Protocol (ISATAP)'.
[5] To provide the IPv6 communication between terminals on an IPv4 network, a control tunnel and a direct tunnel are used. The control tunnel is similar to existing Tunnel Broker or Teredo, but includes a user group management module that allows peer- 2-peer data communication such as MSN or SkyPe, which is being widely used. The control tunnel provides a direct tunnel between the terminals so that data can be directly transmitted and received therebetween, which is very advantageous in data transmission.
[6] The most important factor in setting the direct tunnel is a network address translator
(hereinafter, referred to as an NAT). When terminals are located currently on a network, the terminals may be assigned public IP addresses by an Internet Service Provider (ISP) and may be assigned private IP addresses by the NAT. To overcome the lack of IP addresses, the NAT uses a source NAT (SNAT), dynamic NAT (DNAT)-port forwarding, and a DNAT-load distribution. As for the DNAT-port forwarding, a server to operate is placed on a specific private network, and access thereto is allowed only for a specific user who knows the specific private network on which the service is placed. In the case of the DNAT-load distribution, the load of TCP/UDP traffic is distributed to a plurality of servers on an internal network. Such an NAT is connected to an external network by using a public IP address assigned by the IPS, and assigns a private IP address to each of terminals attached to the NAT. The NAT enables communication by maintaining mapping information of a private IP address/port number, and an IP address/port number of an external network. Here, the DNAT is not used for general network operation because the NAT must be controlled in advance for a specific purpose.
[7] The NAT allows terminal host A and terminal host B on its private network having
IP address 192.168.2.0 to be connected simultaneously with an external network by using one public IP address 100.100.100.50 allocated to a user from the IPS. In detail, when an NAP router set to a default gateway of the terminal A and terminal B detects through routing that destinations of IP packets sent from the terminal A and terminal B is on the external network, the NAT router buffers IP addresses and port numbers of the transmitting terminals. Then, the NAT router respectively translates the IP addresses and port numbers to the public IP address 100.100.100.50 and new port numbers of 60000 or greater, and transmits to the IPS. A router of the IPS having received the packets considers those packets to be sent from two different processes of the same terminal 100.100.100.50, and thus can transmit the packets to another Internet network without limitations.
[8] Also, when the packets are transmitted from the ISP, the NAT router searches the mapping table including the port numbers and internal network addresses to detect an IP address and a port number of a destination terminal, and transmits to the corresponding terminal. Thus, a plurality of terminals on the private network can use a public network by sharing one IP address provided by the ISP.
[9] The SNAT is available only when clients on the private network access external servers. In the case where file transfer protocol (FTP) servers are installed in the private network, external terminals send packets by using a public IP address allocated to the NAT and a well-known FTP port number such as 20 and 21 since an IP address of the server on the internal network is unknown to the external terminals. The NAT router having received such a packet may consider the destination IP address and port number of the received packet to be for an FTP server installed in the NAT itself, and thus the received packet cannot be transmitted to another FTP server on the private network.
[10] If an external user has already been informed of a specific FTP server in the private network, the user does not use a well-known FTP port number 21, but serves to send a packet whose destination is port number 3000 that is intentionally allocated to the FTP server of an internal network. In detail, a destination IP address of the packet is a public IP address of the NAT, whereas a destination port number is port number 3000, not the well-known FTP port number.
[11] Accordingly, when receiving the FTP packet with the known port number 3000 that the NAT router knows, the NAT router changes the IP address into an IP address of the FTP server installed on its private network, and also changes the destination port number of the packet into port number 21, and then transmits. In such a manner, the NAT router makes the FTP server on the private network accessible by clients on an external network.
[12] However, other users who are not informed of a specific port number of the specific server cannot use the aforementioned function, and to enable this function, information must be stored in the NAT in advance.
[13] The current communication service is based on IPv4, and many efforts are being made to evolve into an IPv6-based service. However, in actuality, there are not many IPv6-baased services, and thus technologies for transition from IPv4 to IPv6 are required. Even though many technologies have been conventionally proposed, those conventional technologies require many changes in equipment on a network.
[14]
Disclosure of Invention
Technical Problem
[15] An aspect of the present invention provides a method for configuring a control tunnel and a direct tunnel, which enables an IPv6-based service by changing just software of a control server and each terminal, without changing equipment and technologies used in an existing network.
[16] An aspect of the present invention also provides a method for configuring a control tunnel between a terminal and a control server for IPv6 communication and configuring a direct tunnel directly between terminals, by configuring an IPv6 tunnel in an IPv4 network and configuring an IPv6 route in the configured tunnel.
[17] An aspect of the present invention also provides a method for configuring a direct tunnel between terminals according to network positional relationships between the terminals regardless of a private network or a public network, for efficient terminal- to-terminal IPv6 service, and terminal-to-network communication related to an IPv6 gateway.
[18]
Technical Solution [19] According to an aspect of the present invention, there is provided a method for configuring a control tunnel in an Internet Protocol version 4 (IPv4) network-based Internet Protocol version 6 (IPv6) service providing system having at least two terminals, and a portal server and a control server interworking with the terminals over an IPv4 network, the control tunnel being configured at each of the terminals for a terminal-to-terminal IPv6 communication service, including: configuring a control tunnel with the control server when a tunnel response message is received from the control server by using service information downloaded from the portal server at the time of initialization; sending a registration request message to the control server through the configured control tunnel; and reporting completion of control-tunnel configuration and terminal registration when a registration response message is received from the control server.
[20] According to another aspect of the present invention, there is provided a method for configuring a control tunnel in an Internet Protocol version 4 (IPv4) network-based Internet Protocol version 6 (IPv6) service providing system having at least two terminals, and a portal server and a control server interworking with the terminals over an IPv4 network, the control tunnel being configured at the control server for a terminal-to-terminal IPv6 communication service, including: receiving a tunnel request message from each of the terminals; checking a public IPv4 address set on an IPv4 header of the tunnel request message, and an allocated IPv4 address of each of the terminals included in the tunnel request message; configuring a control tunnel with each of the terminals by using the public IPv4 address and the allocated IPv4 address; and registering each of the terminals when a registration request message is received from each of the terminals through the configured control tunnel.
[21] According to another aspect of the present invention, there is provided a method for configuring a direct tunnel in an Internet Protocol version 4 (IPv4) network-based Internet Protocol version 6 (IPv6) service providing system having at least two terminals, and a control server interworking with the terminals over an IPv4 network, the direct tunnel being configured at a random request terminal for IPv6 communication service with a counterpart terminal, including: configuring a control tunnel with the control server; registering the counterpart terminal and learning a status of the counterpart terminal in real-time; sending a direct tunnel request message to the counterpart terminal by using terminal information obtained through the learning; configuring a direct tunnel with the counterpart terminal when a direct tunnel response message is received from the counterpart terminal; and checking whether IPv6 data transmission is available through the configured direct tunnel.
[22] According to another aspect of the present invention, there is provided a method for configuring a direct tunnel in an Internet Protocol version 4 (IPv4) network-based Internet Protocol version 6 (IPv6) service providing system having at least two terminals and a control server interworking with the terminals through an IPv4 network, the direct tunnel being configured for IPv6 communication service at a random counterpart terminal receiving a direct tunnel request, including: receiving a message for the direct tunnel request from a request terminal; searching terminal information of the request terminal included in the message; checking whether the direct tunnel can be configured with the request terminal by using the searched terminal information; determining a network positional relationship with the request terminal by using the searched terminal information if the direct tunnel can be configured; generating a direct tunnel response message according to the determined network positional relationship, and sending the generated direct tunnel response message to the request terminal; and configuring the direct tunnel according to the determined network positional relationship.
[23] According to another aspect of the present invention, there is provided a method for configuring a control tunnel and a direct tunnel in an Internet Protocol version 4 (IPv4) network-based Internet Protocol version 6 (IPv6) service providing system having at least two terminals, and a portal server, a control server and an IPv6 gateway interworking with the terminal through an IPv4 network, the control tunnel and the direct tunnel being configured at each of the terminals for terminal-to-network IPv6 communication service, including: configuring a control tunnel with the control server when a tunnel response message is received from the control server by using service information downloaded from the portal server at the time of initialization; registering the terminal and the IPv6 gateway to the control server through the configured control tunnel; registering the IPv6 gateway as a counterpart terminal on a counterpart terminal list in the terminal; transmitting a terminal information request message to the IPv6 gateway and receiving a terminal information response message from the IPv6 gateway to check a network address of a network connected to the IPv6 gateway; configuring a direct tunnel to the IPv6 gateway by using the network address; and performing communication with IPv6 terminals on an IPv6 network connected to the IPv6 gateway through the configured direct tunnel.
[24] The details of one or more embodiments are set forth in the accompanying drawings and the description below. Other features will be apparent from the description and drawings, and from the claims.
Advantageous Effects
[25] In providing an IPv6 service, only software of each terminal and a control server needs to be changed without changing existing network equipment. Thus, a cost burden of a service provider is minimized, an existing IPv4 network can be used, and IPv6 communication is performed through IPv4-based IPv6 tunneling, so that IPv6 application services that are not yet widely used can easily come into wide use. [26]
Brief Description of the Drawings
[27] FIG. 1 is a view showing a process of subscribing to a portal server and receiving service information in an IPv4 network-based IPv6 service providing system according to embodiments of the present invention.
[28] FIG. 2 shows types of control tunnel and direct tunnel configured in an IPv4 network-based IPv6 service providing system according to first and second embodiments of the present invention.
[29] FIG. 3 shows types of tunnel configured when a terminal is initially registered to a control server according to the first embodiment of the present invention.
[30] FIG. 4 is a flow diagram showing a process for configuring a control tunnel between a terminal and a server in an IPv4 network-based IPv6 service providing system according to the first embodiment of the present invention.
[31] FIG. 5 is a flowchart showing an operation of a terminal protocol unit for configuring a control tunnel in the process of FIG. 4.
[32] FIG. 6 is a flowchart showing an operation of a terminal protocol unit for configuring a control tunnel in the process of FIG. 4.
[33] FIG. 7 shows types of tunnel according to a network positional relationship in configuring a direct tunnel in an IPv4 network-based IPv6 service providing system according to the second embodiment of the present invention.
[34] FIG. 8 shows an example of tunnel configuration between a terminal on a public network and a terminal on a private network according to the second embodiment of the present invention.
[35] FIG. 9 is an example of tunnel configuration between two terminals in different private networks according the second embodiment of the present invention.
[36] FIG. 10 is a flow diagram showing a process of detecting a plurality of counterpart terminals and learning status information before direct tunnel configuration according to the second embodiment of the present invention.
[37] FIG. 11 is a flow diagram showing a process for configuring a direct tunnel between terminals according to the second embodiment of the present invention.
[38] FIG. 12 is a flowchart showing an operation of determining a proper tunnel type by determining a network positional relationship with the counterpart terminal in the process of learning status information and network position information of the counterpart terminal of FIG. 10, and setting a direct tunnel into the determined type.
[39] FIG. 13 is a flowchart showing an operation for protocol processing of a request terminal in configuring the direct tunnel of FIG. 11.
[40] FIG. 14 is a flowchart showing an operation for protocol processing of a response terminal in configuring of the direct tunnel of FIG. 11.
[41] FIG. 15 shows an operation for determining whether a direct tunnel can be configured and used according to the second embodiment of the present invention.
[42] FIG. 16 is a flowchart showing an operation for determining whether the corresponding terminal can use the direct tunnel with the counterpart terminal according to the second embodiment of the present invention.
[43] FIG. 17 shows a network configuration and an operation for end-to-network IPv6 communication according to a third embodiment of the present invention.
[44]
Best Mode for Carrying Out the Invention
[45] Reference will now be made in detail to the embodiments of the present disclosure, examples of which are illustrated in the accompanying drawings. In some embodiments, well-known functions and structures will not be described in detail to avoid ambiguous interpretation of the present invention.
[46] Embodiments of the present invention propose an IPv4 network-based IPv6 service providing system with a server-client configuration including a control server and terminals in order to minimize changes in network equipment that are caused by the use of an Internet Protocol version 6 (IPv6) service. There will now be described an apparatus and method for configuring a control tunnel and a direct tunnel for IPv6 communication between terminals in the IPv4 network-based IPv6 service providing system.
[47] First, a structure of the IPv4 network-based IPv6 service providing system, and a process in which a terminal subscribes to a service portal server, and downloads service information from the server.
[48] Referring to FIG. 1, the IPv4 network-based IPv6 service providing system has a structure where a terminal 10, a portal server 20, and a control server 30 interwork with one another through an IPv4 network or a public network. To implement a peer- to-peer (P2P) IPv6 service, a control tunnel and a direct tunnel are configured. The control server 30 must be on a public network for configuration of a control tunnel with the terminal 10, and the terminal 10 may be on the public network, or on a private network connected to a network address translator (NAT).
[49] The terminal 10 subscribes to the portal server 20 to receive service, and downloads client software and control information. The terminal 10 configures a control tunnel with the control server 30 by using the downloaded software and control information, and performs data communication through the control tunnel. Also, the terminal 10 creates a direct tunnel to a counterpart terminal (not shown) for data transmission. The control tunnel is a tunnel that exists all the time in an online status of the terminal 10, and the direct tunnel is a flexible tunnel that is created and eliminated whenever an application such as voice over internet protocol (VoIP) and file transfer is used and ended.
[50] The control server 30 performs control tunnel configuration and terminal registration under a request of the terminal 10, and also performs forwarding of an IPv6 packet to allow terminal-to-terminal communication through the control tunnel.
[51] In the IPv4 network-based IPv6 service providing system having such a structure, a process in which each terminal, i.e., a subscriber, accesses a portal server to subscribe to service, and obtains service information will now be described.
[52] The service information is an IPv6 address of the terminal 10, a user name, and an
IPv4 address and an IPv6 address of the control server 30.
[53] In detail, the IPv6 address of the terminal 10 is an address for IPv6 communication of the terminal 10 subscribed to service. The user name may be a name that a user group management module uses to manage counterpart terminals having registered to the service. The IPv4 address of the control server 30 is used in receiving/transmitting a protocol message when the terminal 10 configures a control tunnel. The IPv6 address of the control server 30 is used to transmit/receive a protocol message when the terminal 10 is registered to the control server 30 after the control tunnel configuration. An IPv4 address of the terminal 10 is not obtained from the portal server 20, but is obtained statically by a user or dynamically by dynamic host configuration protocol (DHCP) on a network on which the terminal 10 is placed.
[54] Referring to FIG. 1, in operations 51 and 52, the terminal 10 obtains an IPv4 address from a DHCP server (not shown). The IPv4 address may be statically assigned by a user.
[55] In operation 53, the terminal 10 sends a subscription request message to the portal server 20 to be registered to service. In operation 54, the portal server 20 informs the control server that the terminal 10 is to use the control server 30.
[56] In operation 55, the control server 30 determines/manages that the terminal 10 is to use the control server 30, and sends a response message to the portal server. In operation 56, the portal server 20 sends the terminal 10 a response message including client software and service information for providing service.
[57] Types of control and direct tunnels in the IPv4 network-based IPv6 service providing system, and a method for configuring the control tunnel and the direction tunnel will now be described with reference to accompanying drawings.
[58] Each of terminals in an IPv4 network configures a control tunnel through transmission and reception of initial IPv4 messages, and is registered to a control server through transmission and reception of IPv6 messages. Thereafter, an IPv6 router is provided to the configured control tunnel, so that IPv6 communication can be made between the terminals. The types of tunnel configured between the control server and the terminal may include an IPv6-user datagram protocol (UDP)-IPv4 type and an IPv6-IPv4 type. The IPv6-UDP-IPv4 type tunnel is configured when the terminal is on a private network. When the terminal is on a public network, both of the IPv6-UDP-IPv4 type tunnel and the IPv6-IPv4 type tunnel are configurable, but mostly, the IPv6-IPv4 type tunnel is configured because of efficiency of data transmission/reception.
[59] To configure a direct tunnel between the terminals, the terminal respectively transmits and receives a direct tunnel request message and a response message by using UDP source port information and a public IPv4 address translated via its NAT learned in the control-tunnel configuration process. The direct tunnel is configured differently in four different cases. There are two types of tunnel configurable according to each case. When the tunnel is configured into the IPv6-UDP-IPv4 type regardless of whether the tunnel is the control tunnel or the direct tunnel, a terminal on the private network periodically sends a Keep-Alive message to renew a lifetime of a mapping table stored in the NAT. The terminal having requested the configuration of the direct tunnel enables an IPv6 P2P service in due consideration of "a function of obtaining network position information of a counterpart terminal", "a function of managing an online/offline status of the counterpart terminal in real time", and "a function of checking possibility of configuring a direct tunnel of a terminal on a private network".
[60] Types of control and direct tunnels configured to provide the IPv6 P2P service according to a positional relationship between terminals on the same network or on different networks will now be described with reference to FIG. 2. There are four different network positional relationships between terminals depending on the position of each terminal.
[61] The first relationship is a relationship on the same private network 61, that is, a relationship between two terminals 10 attached to the same NAT 40. In this case, a configurable direct tunnel type is an IPv6-IPv4 type and an IPv6-UDP-IPv4 type. However, since the IPv6-UDP-IPv4 unnecessarily uses a UDP header, efficiency of packet transfer can be deteriorated. Thus, the IPv6-IPv4 tunnel is used.
[62] The second relationship is a relationship between different private networks 62, that is, a relationship between two terminals 10 attached to their respective NATs 40 on the different private networks. In this case, a configurable direct tunnel type is just an IPv6-UDP-IPv4 type, and thus each terminal 10 must periodically send a NAT Keep Alive message using a set UDP port number to update a table in the NAT 40.
[63] The third relationship is a relationship on a public network, that is, a relationship between terminals on the public network. In this case, a configurable direct tunnel type is an IPv6-IPv4 type and an IPv6-UDP-IPv4 type. However, since the IPv6-UDP-IPv6 type unnecessarily requires a UDP header, efficiency of packet transfer is deteriorated. Accordingly, the IPv6-IPv4 tunnel is used.
[64] The fourth relationship is a positional relationship between a public network and a private network 64, that is, a relationship between one terminal 10 on the public network and another terminal 10 attached to an NAT 40. In this case, a configurable direct tunnel is just an IPv6-UDP-IPv4 type, not an IPv6-IPv4 type. Also, the terminal 10 attached to the NAT 40 must periodically send an NAT Keep Alive message using a UDP port number to update a table in the NAT 40.
[65] Referring also to FIG. 4, an apparatus for configuring a control tunnel and a direct tunnel may include a user group management unit 110, an interface management unit 120, a first terminal protocol unit 130a, a second terminal protocol unit 130b, and a control server protocol unit 140.
[66] The user group management unit 110 manages information of each counterpart terminal 10 which an initial terminal 10 wants to communicate with after control tunnel configuration and terminal registration to the control server 30.
[67] The interface management unit 120 is a module that is placed at the terminal 10 and is configured to determine interface information. The interface management unit 120 checks interface information of the terminal 10 that is usable at the time of initial execution, such as an allocated IPv4 address, an IPv6 address, and a terminal name, and manages information for communication with the control server 30 such as an IPv4 address and an IPv6 address. Also, the interface management unit 120 provides the information to the terminal protocol units 130a and 130b.
[68] The first and second terminal protocol units 130a and 130b are placed at respective terminals 10. The first and second terminal protocol units 130a and 130b perform control tunnel configuration and terminal registration through transmission and reception of protocol messages with the control server protocol unit 140. Also, the first and second terminal protocol units 130a and 130b renew a lifetime of a tunnel, and configure a direct tunnel through message transmission and reception with a protocol module of each counterpart terminal.
[69] The control server protocol unit 140 is placed at the control server 30, and performs control operations upon request such as a terminal registration request, a tunnel configuration request, and a lifetime renewing request.
[70] In FIG. 3, the types of tunnel that the initial terminal configures for registration to the control server 30 according to the positional relations between the terminals are shown.
[71] If the terminal 10 is on a public network 71, an IPv6-IPv4 tunnel is configured and used. If the terminal 10 is on a private network 72, an IPv6-UDP-IPv4 tunnel is configured and used. Here, the terminal 10 on the private network 7 periodically sends an NAT Keep-Alive message to update mapping table of the NAT 40.
[72] A process of initial control-tunnel configuration and terminal registration to a control server depending on a type of a configured terminal will now be described in detail with reference to accompanying drawings.
[73] FIG. 4 is a flow diagram of a process of configuring a control tunnel between a terminal and a server in an IPv4 network-based IPv6 service providing system according to a first embodiment of the present invention.
[74] Referring to FIG. 4, the IPv4 network-based IPv6 service providing system may include a tunnel configuring system including a user terminal group management unit 110, an interface management unit 120, first and second terminal protocol units 130a and 130b, and a control server protocol unit 140 in the control server. The first terminal protocol unit 130a is a protocol unit of a first terminal 3ffe:: 111, i.e., a request terminal, and the second terminal protocol unit 130b is a protocol unit of a second terminal 3ffe::222, i.e., a counterpart terminal.
[75] Referring to FIG. 4, in operation 201, the interface management unit 120 determines interface information and service information of the request terminal 3ffe::l 11. In operation 202, the interface management unit 120 sends a tunnel configuration request message for requesting control-tunnel configuration and registration of the request terminal to the first terminal protocol unit 130. In operation 203, the first terminal protocol unit 130a sends a tunnel request message to the control server protocol unit 140 by using information obtained from the tunnel configuration request message sent from the interface management unit 120. In due consideration of the case where the request terminal 3ffe:: 111 is on a private network of an NAT, the tunnel request message is sent as an IPv4-UDP packet including a specific port number, and includes an IPv4 address, an IPv6 address and other information of the request terminal 3ffe::l l l.
[76] Then, in operation 204, the control server protocol unit 140 confirms that the request terminal 3ffe:: 111 is a valid terminal from the information of the received tunnel request message, i.e., an IPv4 UDP message, and then configures a tunnel to the request terminal 3ffe:: 111. In operation 205, the control server protocol unit 140 sends a tunnel response message to the first terminal protocol unit 130a. Here, the control server protocol unit 140 checks an IPv4 address of the request terminal 3ffe:: 111 on an IPv4 header of the received tunnel request message, i.e., an public IPv4 address of the request terminal 3ffe:: 111, and an IPv4 address included in the message, i.e., an allocated IPv4 address of the request terminal 3ffe:: 111. If the public IPv4 address and the allocated IPv4 address are different from each other, the control server protocol unit 10 determines that the request terminal 3ffe:: 111 is on a private network using an NAT. Here, the tunnel response message may include information indicating that the terminal 3ffe:: 111 is attached to the NAT, and also includes the allocated IPv4 address, the IPv4 public address, and a translated UDP port number of the request terminal 3ffe::l 11. From the above information the control server protocol unit 140 can determine whether the request terminal 3ffe:: 111 is on a private network using the NAT or on a public network, and thus can determine a type of tunnel to be configured.
[77] In operation 206, the first terminal protocol unit 130a receives the tunnel response message, confirms that the received tunnel response message is a response to the tunnel configuration request message that it sent in operation 202, and then configures a tunnel to the control server. Here, when the request terminal 3ffe:: 111 is attached to the NAT, the first terminal protocol unit 130a configures the tunnel into an IPv6-UDP-IPv4 type, whereas when the request terminal 3ffe:: 111 is on the public network, the first terminal protocol unit 130a configures the tunnel into an IPv6-IPv4 type. In the case where the tunnel is the IPv6-UDP-IPv4 type tunnel going by way of the NAT, the first terminal protocol unit 130a periodically sends an NAT Keep-Alive message to update a mapping table of NAT equipment.
[78] After the control tunnel is configured in such manner, in operation 207, the first terminal protocol unit 130a sends a registration request message for registering of the request terminal 3ffe:: 111 to the control server protocol unit 140. Then, in operation 208, the first terminal protocol unit 130a receives a registration response message through the configured control tunnel. Both of the registration request message and the registration response message must be IPv6 messages.
[79] In operation 209, the first terminal protocol unit 130a transmits/receives messages for confirming that IPv6 data can be transmitted/received through the IPv6-(UDP)-IPv4 tunnel, and for renewing a lifetime of the configured tunnel. In operation 210, the configuration of the control tunnel and the following registration of the request terminal 3ffe::l 11 are completed. In operation 211, the first terminal protocol unit 130a informs the user group management unit 100 that an initialization process is completed.
[80] When informed that the control-tunnel configuration and the terminal registration are completed from the first terminal protocol unit 130a, the user group management unit 110 adds information of each counterpart terminal 110 in the case where there is user group information of a existing counterpart terminal or a new counterpart terminal is registered. Accordingly, the first terminal protocol unit 110 can manage an online/ offline status of each counterpart terminal. Thus, the user management unit 110 can obtain status information of a plurality of counterpart terminals, which is learned from the first terminal protocol unit 130a, and links the obtained status information to an application program, thereby enabling IPv6 data communication.
[81] Each terminal performs the above-described process at an initial stage, so that a control tunnel to a control server can be configured, and the terminal can be registered to the control server. Thus, in operations 211 through 227, the second terminal protocol unit 130b performs the same processes as those in operations 203 through 211 together with the control server protocol unit 140, so that a control tunnel of the counterpart terminal 3ffe::222 can be configured to the control server, and the counterpart terminal 3ffe::222 can be registered to the control server. Thus, in operation 230, IPv6 communication between the registered request terminal and the registered counterpart terminal is enabled through the control tunnel.
[82] An operation of the terminal protocol unit 130 in each terminal for configuring a control tunnel in a control tunnel configuring process will now be described in more detail with reference to FIG. 5.
[83] In operation 301, the terminal protocol unit 130 sends a tunnel request message to a control server, and receives a corresponding tunnel response message from the control server. In operation 302, the terminal protocol unit 130 extracts information included in the tunnel response message in order to determine whether a terminal is on a private network or on a public network, and checks using the extracted information whether an NAT flag is set, whether a public IPv4 address and an allocated IPv4 address are the same, or whether a UDP source port number is changed. The allocated IPv4 address is an IPv4 address assigned to the terminal, and the public IPv4 address is a source address in an IP header that the NAT changes as it passes through the NAT, i.e., an interface IPv4 address of NAT equipment connected to a public network. The changed UDP port number is a source port number changed as a UDP source port number in the tunnel request message passes through the NAT.
[84] In operation 303, the terminal protocol unit 130 determines whether the terminal is attached to the NAT. In operation 304, when it is determined that the terminal is attached to the NAT, i.e., is on a private network, the terminal protocol unit 130 configures an IPv6-UDP-IPv4 tunnel. In operation 305, the terminal protocol unit 130 periodically sends an NAT Keep-Alive message, and then completes the operation. In contrast, in operation 306, when it is determined that the terminal is on a public network, the terminal protocol unit 130 configures an IPv6-IPv4 tunnel for data efficiency, and then completes the operation.
[85] An operation of the control server protocol unit 140 for configuring a control tunnel with each terminal will now be described in more detail with reference to FIG. 6.
[86] In operation 401, the control server protocol unit 140 receives a tunnel request message from the terminal protocol unit 130. In operation 402, the control server protocol unit 140 extracts an IPv4 address of the terminal included in an IPv4 header of the received message, i.e., a public IPv4 address of an NAT in the case where the message passes through the NAT, and also extracts an IPv4 address included in the message, i.e., an allocated IPv4 address of the terminal. In operation 430, the control server protocol unit 140 determines whether the two extracted addresses are identical or not. In operation 404, when the extracted addresses are different, the control server protocol unit determines that the terminal having sent the tunnel request message is attached to the NAT on a private network, and thus configures an IPv6-UDP-IPv4 control tunnel with the terminal.
[87] In operation 405, after configuring the IPv6-UDP-IPv4, the control server protocol unit 140 generates a tunnel response message including information that the terminal is attached to the NAT. Here, the tunnel response message includes an "NAT Present Flag" indicating that the terminal is on the private network, or an allocated IPv4 address, a public IPv4 address and a changed UDP port number of the corresponding terminal. The allocated IPv4 address is an IPv4 address allocated to the terminal, and the public IPv4 address is a source address in an IP header that the NAT changes as it passes through the NAT, that is, an interface IPv4 address of NAT equipment connected to a public network. The changed UDP port number is a source port number changed as a UDP source port number in the tunnel request message passes through the NAT.
[88] In operation 406, if the allocated IPv4 address and the public IPv4 address are identical, the control server protocol unit 140 determines that the terminal is on a public network, and configures an IPv6-IPv4 control tunnel with the terminal. Here, although the control server protocol unit 140 can configure both an IPv6-UDP-IPv4 control tunnel and an IPv6-IPv4 control tunnel, it configures the IPv6-IPv4 control tunnel in due consideration of data efficiency. In operation 407, the control server protocol unit 140 indicates False in the NAT Present Flag , or includes the identical value of allocated IPv4 address and the public IPv4 address, and the un-changed UDP port number in due consideration of the case where the request terminal 3ffe:: 111 is on a private network of an NAT.
[89] After performing operation 405 or 407, the control server protocol unit 140 sends the tunnel response message to the corresponding terminal, and completes an operation.
[90] The method for configuring a control tunnel when each application service requires
IPv6 communication according to the first embodiment of the present invention has been described. Thereafter, a method for configuring a direct tunnel when each application service requires IPv6 communication according to a second embodiment of the present invention will now be described.
[91] In FIG. 7, configurable tunnel types according to network positional relationships between terminals are shown. As shown in FIG. 2, there are four different network positional relationships between a request terminal and a counterpart terminal for configuring a P2P direct tunnel therebetween. [92] The first positional relationship is a relationship on a public network 63. In this case, a direct tunnel can be configured into both an IPv6-UDP-IPv type and an IPv6-IPv4 type, but the IPv6-IPv4 tunnel is configured for the data efficiency.
[93] The second positional relationship is a relationship between a public network and a private network 64. In this case, the direct tunnel is configured into an IPv6-UDP-IPv4 type.
[94] The third positional relationship is a relationship on a private network 61, i.e., on the same network. In this case, although the direct tunnel can be configured into both an IPv6-UDP-IPv4 type and an IPv6-IPv4 type, the IPv6-IPv4 tunnel is configured for the data efficiency.
[95] The fourth positional relationship is a relationship between private networks, i.e., different networks. In this case, a configurable P2P direct tunnel type is an IPv6-UDP-IPv4 type.
[96] In the case of the IPv6-UDP-IPv4 tunnel, if the request terminal is placed on the private network, an NAT Keep-Alive message is periodically sent to update a mapping table in NAT equipment. For the two cases in which the IPv6-UDP-IPv4 direct tunnel is configured, changes in a source IP address and a UDP source port number must be considered at the time of tunneling. Here the changes occur since the terminal is attached to the NAT equipment
[97] The two cases in which the IPv6-UDP-IPv4 direct tunnel is configured will now be described in detail with reference to FIGS. 8 and 9.
[98] An example of tunnel configuration between a terminal on a public network and a terminal on a private network will now be described.
[99] Referring to FIG. 8, a first terminal 10a is on a public network, and a second terminal
10b is on a private network. In this case, the second terminal 10b learns changed information such as a source IP address and a UDP source port from a control server 30 in an initial tunnel configuration and terminal registration process. Thereafter, like the user registration process described with reference to FIG. 4, the first terminal 10a learns the changed information such as a source IP address and a UDP source port from network position information of the second terminal 10b, and the second terminal 10b learns that the first terminal 10a is on the public network.
[100] Thereafter, when there is a direct tunnel request by a user group management unit or an application of the first terminal 10a or the second terminal 10b, a protocol unit of the first terminal 10a or the second terminal 10b sends a direct tunnel request message to the counterpart terminal, and receives a direct tunnel response message from the counterpart terminal. Thus, the first terminal 10a configures a tunnel as "Src IP(20.20.20.20) Src UDP Port(50000) Dst IP(IO.IO.IO.IO) UDP Dst Port(1024)" on the basis of the learned information. Here, it is assumed that the learned information is a UDP source port == 50000, and UDP destination Port == 50000. Also, "Dst IP(IO.10.10.10)" is an IP address changed as it passes through an NAT of the second terminal 10b, and "UDP Dst Port(1024)" is a changed UDP source port number. Also, the second terminal 10b configures a tunnel as "Src IP(192.168.1.10) Src UDP Port(50000) Dst IP(20.20.20.20) UDP Dst Port(50000)" After the tunnel configuration, the two terminals 10a and 10b can freely perform IPv6 communication in an IPv6 NAT environment.
[101] An example of tunnel configuration between terminals on different private networks will now be described.
[102] Referring to FIG. 9, a first terminal 10a is on a private network. The first terminal
10a learns that a changed source IP address is 30.30.30.30, and a changed UDP source port number is 2048 from the control server during an initial control-tunnel configuration and terminal registration process. A second terminal 10b is also on a private network, and thus learns that a changed source IP address is 10.10.10.10 and a changed source UDP port number is 1024 during an initial control-tunnel configuration and terminal registration process.
[103] Thereafter, the first terminal 10a learns the changed source IP address and UDP source port number of the second terminal 10b from network position information of the second terminal 10b, and the second terminal 10b learns the changed source IP address and UDP source port number of the first terminal 10a from network position information of the first terminal 10a. Thus, the terminals 10a and 10b learn that they are placed on the different private networks. Each of the terminals 10a and 10b sends a direct tunnel request message and receives a direct tunnel response message with each other to configure a tunnel. Then, the first terminal 10a configures a tunnel as "Src IP(192.168.1.11) Src UDP Port(50000) Dst IP(IO.IO.IO.IO) UDPDst Port(1024)" on the basis of the IP address and UDP source port number changed in an NAT 40b to which the second terminal 10b is attached. The second terminal 10b configures a terminal as "Src IP(192.168.1.10) Src UDP Port(50000) Dst IP(30.30.30.30) UDP Dst Port(2048)" on the basis of the IP address and UDP source port number changed in an NAT 40a to which the first terminal 10a is attached. The two terminals 10a and 10b can freely perform IPv6 communication in different NAT environments from each other.
[104] A process for dominantly finding a plurality of counterpart terminals and learning an ON/OFF status thereof by each terminal protocol unit to configure the direct tunnel will now be described in detail with reference to the accompanying drawings.
[105] FIG. 10 is a flow diagram of a process of finding a plurality of counterpart terminals and learning their statuses before configuration of a direct tunnel according to the second embodiment of the present invention. [106] Referring to FIG. 10, to configure a direct tunnel, the IPv4 network-based IPv6 service providing system according to the second embodiment of the present invention may include a tunnel configuring system including a user group management unit 110, first to third terminal protocol units 130a, 130b and 130c, and a control server protocol unit 140 of a control server. The first terminal protocol unit 130a is a protocol unit of a first terminal 3ffe:: 111, i.e., a request terminal. The second terminal protocol unit 130b is a protocol unit of a second terminal 3ffe:: 112, i.e., a counterpart terminal, and the third terminal protocol unit 130c is a protocol unit of a third terminal 3ffe:: 113, i.e., another counterpart terminal.
[107] The user group management unit 110 is a module that manages a counterpart terminal list for terminal-to-terminal communication. For example, the user group management unit manages (e.g., adds/deletes) list information of counterpart terminals such as a service group or a buddy list of, e.g., Microsoft Network (MSN) or Sky-pe. Also, the user group management unit 110 serves to provide status information such as an online/offline status of a counterpart terminal when each IPv6 application service requires data communication with a counterpart terminal. Also, the user group management unit serves to request configuration/deletion of a tunnel when a tunnel to be used is a direct tunnel.
[108] When the list information of the counterpart terminal is added to a counterpart terminal list of the first terminal protocol unit 130a, the first terminal protocol unit 130a sends/receives a status management message with the second and third protocol units 130b and 130c of the respective second and third terminals 3ffe:: 112 and 3ffe::l 13, i.e., the counterpart terminals, so that the status management can be performed in real-time. Also, when the user group management unit 100 or an application requests a direct tunnel with an online counterpart terminal, the first terminal protocol unit 130a sends a direct tunnel request message to a counterpart terminal and receives a direct tunnel response message therefrom to provide the direct tunnel.
[109] This procedure may be divided into a counterpart terminal adding process of registering a counterpart terminal to obtain network position information and an online/ offline status of the counterpart terminal in real-time, a status managing process of periodically checking status information in case where real-time transmission/reception of status information to/from the counterpart terminal fails due to a message loss or other reasons, and a completion process of informing a counterpart terminal in the list of an offline status when an abnormal situation occurs.
[110] In operation 600, control- tunnel configuration and terminal registration performed between the terminal protocol unit 130 of each terminal and the control server protocol are previously performed.
[I l l] In operation 601, the user group management unit 110 registers a counterpart terminal, and sets a status to an offline status. In operation 602, the user group management unit 110 reports information of the counterpart terminal to the first terminal protocol unit 130a. In operation 603, the first terminal protocol unit 130a adds the information of the counterpart terminal to be registered on a list of an internal material structure. In operation 604, the first terminal protocol unit 130a sends a terminal information request message to the second terminal protocol unit 130b in order to check network positional information of the counterpart terminal and an online/offline status thereof. In operation 605, the first terminal protocol unit 130a sets a timer, and resends the terminal information request message at every specific time interval.
[112] In operation 606, the second terminal protocol unit 130b updates network position information of the request terminal 3ffe:: 111 as soon as the terminal information request message is received, and reports an online status to the user group management unit 110. In operation 607, the second terminal protocol unit 130b sends a terminal information response message including network position information of the counterpart terminal 3ffe:: 112 to the request terminal 3ffe:: 111, i.e., the first terminal protocol unit 130a.
[113] In operation 608, when the request terminal 3ffe:: 111 receives the terminal information request message, the first terminal protocol unit 13a updates the network position information of the counterpart terminal 3ffe::l 12, and confirms its online status to set the status of the counterpart terminal 3ffe:: 112 to an online status. In operation 609, the first terminal protocol unit 130a reports the online status to the user group management unit 110. Every message used herein has an IPv6 packet format using a control tunnel. Particularly, if each terminal is on a private network using an NAT, the terminal information request message must include a public IPv4 address and a changed UDP source port number that the request terminal 3ffe:: 111 has learned during its initial control-tunnel configuration and terminal registration process, and the terminal information response message must include a public IPv4 address and a changed UDP source port number that the response terminal, i.e., the counterpart terminal 3ffe:: 112 learns during its initial control-tunnel configuration and terminal registration process. The information is needed to pass through the respective NATs when a direct tunnel is configured.
[114] The operations 602 through 609 are performed in the same manner for the third terminal protocol unit, such that a counterpart terminal adding process can be performed.
[115] If the terminal protocol unit 130a cannot determines an abnormal situation occurs in the registration and deletion of a counterpart terminal and step for processing of an abnormal situation occurs, the terminal protocol unit 130a periodically exchange status information with a plurality of counterpart terminals to perform a status management process. The status management process will now be described in detail with reference to FIG. 7.
[116] In operation 610, the first terminal protocol unit 130a starts a processor at a specific time interval. In operation 611, the first terminal protocol unit 130a checks for timeout, and the first terminal protocol unit determines a status of a counterpart terminal as an offline if there is no received response message within the timeout time. In operation 612, the first terminal protocol unit 130a reports the offline status to the user group management unit 110.
[117] In operation 613, the first terminal protocol unit 130a sends a terminal information request message initially sent in counterpart-terminal registration to a plurality of counterpart terminals at a specific time interval. In operation 614, the second terminal protocol unit 130b sets a status of the request terminal 3ffe:: 111 to an online status.
[118] In operation 615, the first terminal protocol unit 130a starts a timer. In operation 616, the first terminal protocol unit 130a receives a terminal information response message from the second terminal protocol unit 130b. In operation 617, the first terminal protocol unit 130a updates network position information, determines whether the counterpart terminal 3ffe:: 112 is in an online status to set the status of the counterpart terminal 3ffe:: 112 to an online status, and changes a timeout value. Here, if the response message is not received during a specific period of time, i.e., until the timer expires, the first terminal protocol unit 130a determines that the counterpart terminal is in an offline status.
[119] In operation 618, the first terminal protocol unit 130a reports the online status to the user group management unit 110.
[120] Also, when an abnormal situation occurs, a process is performed, in which a terminal reports its offline status to counterpart terminals on the list. In detail, when the status of the terminal 3ffe:: 111 is changed to an offline status due to system or process termination by a user of the terminal, the first terminal protocol unit 130a detects the change in advance, and immediately sends a terminal status change message including NOTIFY_OFF_LINE_STATUS to counterpart terminals 3ffe::112 and 3ffe::113 on the list in operation 620. Then, in operation 620, each of the second and third terminal protocol units 130b and 130c of the respective counterpart terminals 3ffe:: 112 and 3ffe::l 13 sets the counterpart node status to an offline status, and reports the offline status to a user group management module, so that each of the corresponding terminals can be immediately informed of the change to the offline status. At this point, the first terminal protocol unit 130a terminates a system or process.
[121] A process for configuring a direct tunnel between terminals according to the second embodiment of the present invention will now be described in detail with reference to FIG. 11.
[122] In operation 710, configuration of a control tunnel between terminals, and terminal registration are performed in advance at the time of terminal initialization. Also, a request terminal 3ffe:: 111 and a counterpart terminal 3ffe::222 are in a state where data communication therebetween can be made through the control tunnel.
[123] In operation 720, since a user group management unit 110 must be previously informed of network positional information and an online/offline status of a counterpart terminal through registration of a counterpart terminal, the user group management unit 110 sends a counterpart node addition request message to a first terminal protocol unit 130a of the request terminal 3ffe:: 111. Thus, the first terminal protocol unit 130a sends a terminal information request message to a second protocol unit 130b of the counterpart terminal 3ffe::222, and receives a response message thereto.
[124] In operation 730, the user group management unit 110 or an IPv6 application program makes a direct tunnel request, i.e., a counterpart-node addition request from the first terminal protocol unit 130a. Then, the first terminal protocol unit 130a sends a direct tunnel request message to the second terminal protocol unit 130b. Then, the second terminal protocol unit 130b sends a direct tunnel response message to the first terminal protocol unit 130a, and thereafter configures a direct tunnel. Here, the first terminal protocol unit 130a receives the response message to configure the direct tunnel, so that configuration of the direct tunnel between the two terminals 3ffe:: 111 and 3ffe::222 is completed. The direct tunnel request message and the direct tunnel response message are transmitted/received through the control tunnel that has been previously configured to ensure data transmission/reception.
[125] In operation 740, in order to check whether IPv6 data transmission is available in the configured tunnel after the direct tunnel is configured, the first terminal protocol unit 130a sends a direct tunnel check request message as an iPv6 packet format to the second terminal protocol unit 130b of the counterpart terminal 3ffe::222, and receives a direct tunnel check response message, thereby confirming the usability of the direct tunnel. If the check messages are not transmitted/received, it means that the configured direct tunnel has a problem. In this case, the two terminals 3ffe:: 111 and 3ffe::222 respectively eliminate the direct tunnel, and thereafter performs IPv6 communication through the control tunnel.
[126] A process will now be described with reference to FIG. 12, in which a proper type of a direct tunnel is determined on the basis of a determined network positional relationship with a counterpart terminal during the process of learning status information and network position information of the counterpart terminal of FIG. 10.
[127] In operation 801, a request terminal receives a terminal information response message, or a response terminal, i.e., a counterpart terminal receives a terminal information request message. Here, each of the terminals has already learned its network position information during an initial control-tunnel configuration and terminal registration process with respect to the control server. The learned information includes, e.g., a source IP address and a UDP source port number translated as it passes through an NAT, and is included in the corresponding message at the time of message transmission/reception.
[128] In operation 802, when the request terminal receives the corresponding message, it checks whether it is attached to an NAT. In operation 803, if the request terminal is not attached to the NAT, the request terminal checks whether the counterpart terminal is attached to an NAT. In operation 804, if the counterpart terminal is not attached to the NAT, the request terminal determines that a positional relationship with the counterpart terminal is a relationship on a public network 63 of FIG. 7, and thus the request terminal determines a type of a direct tunnel as an IPv6-IPv4 type. Thereafter, operation 811 is performed. In contrast, in operation 805, if the counterpart terminal is attached to the NAT, the request terminal determines that a positional relationship with the counterpart terminal is a relationship between a public network and a private network 64 of FIG. 7, and thus the request terminal determines a type of a direct tunnel as an IPv6-UDP-IPv4 type. Thereafter, the operation 811 is performed.
[129] Also, in operation 806, if the request terminal is not attached to the NAT, the request terminal determines whether the counterpart terminal is attached to an NAT. In operation 807, if the counterpart terminal is not attached to the NAT, the request terminal determines that a positional relationship with the counterpart terminal is a relationship between a public network and a private network 64 of FIG. 7, and thus the request terminal determines a tunnel type as an IPv6-UDP-IPv4 type. In contrast, in operation 808, if the counterpart terminal is attached to the NAT, the request terminal compares its public IPv4 address with its allocated IPv4 address thereof. In operation 809, if the two addresses are identical, the request terminal determines a positional relationship with the counterpart terminal is a relationship on the same private network 61 of FIG. 7, and thus the request terminal determines a tunnel type as an IPv6-IPv4 type. Thereafter, the operation 811 is performed. In contrast, in operation 810, if the two addresses are different, the request terminal determines that a positional relationship with the counterpart terminal is a relationship between different private networks 62 of FIG. 7, and thus determines a tunnel type as an IPvV6-UDP-IPv4 type. Thereafter, in operation 811, the tunnel is configured into the type determined in the aforementioned manner.
[130] An operation of the request terminal that requests a direct tunnel at the time of direct- tunnel configuration shown in FIG. 11 will now be described sequentially with reference to FIG. 13.
[131] In operation 901, the first terminal protocol unit 130 receives a direct tunnel request from the user group management unit 110 or an application. In operation 902, the first terminal protocol unit 130 checks network position information and online status information that has already been obtained during a counterpart terminal registration process.
[132] In operation 903, the first terminal protocol unit 130a checks whether the counterpart terminal can configure a direct tunnel. In operation 904, if the counterpart part terminal cannot configure a direct tunnel, the first terminal protocol unit informs the user group management unit 110 or the application that the direct tunnel cannot be configured.
[133] In contrast, in operation 905, if the direct tunnel can be configured, the first terminal protocol unit 130a generates a direct tunnel request message, and sends the direct tunnel request message to the counterpart terminal, i.e., the second terminal protocol unit 130b. Here, the first terminal protocol unit 130a includes network position of the request terminal in the message. In operation 906, the first terminal protocol unit 130a receives a direct tunnel response message from the second protocol unit 130b. In operation 907, the first terminal protocol unit 130a checks whether the received direct tunnel response message is a valid response message from a counterpart terminal list. If the direct tunnel response message is a valid message, the next operation is performed, and if not the message is neglected.
[134] In operation 908, the first terminal protocol unit 130a determines a network positional relationship with the counterpart terminal on the basis of the received message, stored network position information of the counterpart terminal, and position information of the request terminal. That is, in operation 908, the first terminal protocol unit 130a determines whether a tunnel type is an IPv6-IPv4 type. In operation 909, if the tunnel type is not the IPv6-IPv4 type, the first terminal protocol unit 130 configures a tunnel into an IPv6-UDP-IPv4 type. In operation 910, the first terminal protocol unit 130a periodically sends an NAT Keep- Alive message to update a mapping table in NAT equipment. In contrast, in operation 911, if the tunnel type is the IPv6-IPv4 type, the first terminal protocol unit 130a configures the tunnel into the IPv6-IPv4 type.
[135] An operation of the counterpart terminal at the time of the direct tunnel configuration process shown in FIG. 11 will now be described in detail with reference to FIG. 14.
[136] In operation 1001, the counterpart terminal, i.e., the second terminal protocol unit 130b receives a direct tunnel request message. In operation 1002, the second terminal protocol unit 130b searches counterpart node information to check whether the request terminal is a terminal registered by the user group management unit 110.
[137] In operation 1003, the second terminal protocol unit 130b checks whether a direct tunnel can be configured. In operation 1004, if the direct tunnel cannot be configured, the second terminal protocol unit 130b sends a direct tunnel error message, and informs the request terminal that the direct tunnel cannot be configured.
[138] In contrast, in operation 1005, if the direct tunnel can be configured, the second terminal protocol unit 130b checks a network positional relationship between the two terminals on the basis of counterpart terminal information or information of the received message. In operation 1006, the second terminal protocol unit 130b checks whether the checked network positional relationship is an IPv6-IPv4 type. In operation 1007, if the network positional relationship is not the IPv6-IPv4 type, the second terminal protocol unit 130b sends a direct tunnel response message to the request terminal. In operation 1008, the second terminal protocol unit 130b configures a direct tunnel into an IPv6-UDP-IPv4 type. Then, in operation 1009, the second terminal protocol unit 130b periodically sends an NAT Keep- Alive message to update a mapping table set in NAT equipment.
[139] In contrast, in operation 1010, if the network positional relationship checked in operation 1006 is the IPv6-IPv4 type, the second terminal protocol unit 130b sends a direct tunnel response message to the request terminal. In operation 1011, the second terminal protocol unit 130b configures a direct tunnel into an IPv6-IPv4 type.
[140] A process of determining a possibility of configuring/using a direct tunnel according to a network positional relationship of terminals will now be described with reference to FIG. 15.
[141] If a positional relationship between two terminals is a relationship on a public network 63 of FIG. 7, or a relationship on the same private network 61 of FIG. 7, an IPv6-IPv4 tunnel is used so that a direct tunnel can be configured and used all the time. However, if the positional relationship between the two terminals is a relationship between a public network and a private network 64 of FIG. 7, or a relationship on different private networks 62 of FIG. 7, an IPv6-UPD-IPv4 tunnel must be configured and used. In this case, a direct tunnel may not be configured and used depending on a kind of NAT equipment.
[142] The two terminals that cannot use a direct tunnel perform data communication by using a control tunnel. Thus, each terminal learns that NAT equipment of a private network works as a source NAT during a process of configuring a control tunnel and registering a terminal to a control server, if the terminal is on the private network. If the NAT equipment does not act as a source NAT, a request terminal must not request a direct tunnel from a counterpart terminal. If the counterpart terminal requests a direct tunnel from the request terminal, the request terminal informs the counterpart terminal that the direct tunnel cannot be used. In this case, the two terminals that cannot use a direct tunnel use a control tunnel for data communication.
[143] As shown in Fig. 15, a control server according to the second embodiment of the present invention includes a main control server 31 and an auxiliary control server 32 to determine whether the direct tunnel can be configured and used.
[144] The main control server 31 performs configuration of a control tunnel, registration of each terminal 10, and forwarding of an IPv6 packet.
[145] The auxiliary control server 32 receives an NAT check request message that each terminal 10 sends to check whether its NAT equipment acts as a source NAT, and transmits an NAT check response message to each request terminal. Here, the auxiliary control server 32 checks a source port number of a UDP message received from each request terminal, and includes the source port number in the NAT check response message.
[146] Referring to FIG. 15, in the aforementioned process of control tunnel configuration and terminal registration, the terminal 10 sends a tunnel request message in an IPv4 UDP packet to the main control server 13 in operation 1101. Here, the same port is used for a source port and a destination port of a UDP port being used. Thus, in operation 1102, the main control server 31 checks a changed source port number, includes this changed source port number in the tunnel response message, and then sends the message to the terminal 10 via an NAT 40.
[147] In operation 1103, if the terminal 10 is attached to the NAT 40, the terminal 10 sends an NAT check request message to the auxiliary control server 32. A source port number and a destination port number of a UDP port being used must be the same number that was used for the tunnel request message. In operation 1104, the auxiliary control server 32 having received the NAT check request message checks a changed UDP source port number, and sends an NAT check response message including the changed UDP source port number to the terminal 10.
[148] An operation for determining whether the NAT equipment acts as a source NAT in the process of FIG. 15 will now be described with reference to FIG. 16.
[149] Referring to FIG. 16, in operation 1201, the terminal 10 sends a tunnel request message in an IPv4 packet to the main control server 31 at the time of initialization, and then receives IPv4 tunnel response message in an IPv4 packet.
[150] In operation 1202, the terminal 10 determines whether it is on a private network or a public network by using information included in the tunnel response message. If the terminal 10 is on the public network, a process shown in FIG. 2 is performed.
[151] However, if the terminal is on the private network, in operation 1203, the terminal sends an NAT checks request message in an IPv4 UDP packet using the same source port to the auxiliary control server 32, and receives an NAT check response message from the auxiliary control server 32. Here, the NAT check request message must include a UDP source port number and a destination port number that are the same as those used in the tunnel request message. [152] In operation 1204, the terminal compares a changed source port number included in the tunnel response message received from the main control server 31 with a changed source port number in the NAT checks response message received from the auxiliary control server 32.
[153] In operation 1205, if the two changed source port numbers are identical, the terminal determines that the corresponding NAT acts as a source NAT, and thus a direct tunnel can be configured and used. However, in operation 1206, if the two changed source port numbers are not the same, the terminal determines that the corresponding NAT does not act as a source NAT, and thus the direct tunnel cannot be used.
[154] According to above-described embodiments of the present invention, configuration of a control tunnel and a direct tunnel when IPv6 terminal-to-terminal communication is provided. However, according to a third embodiment of the present invention, terminal-to-network communication can be provided. An IPv4 network configuration according to a third embodiment of the present invention will now be described with reference to FIG. 17.
[155] FIG. 17 is a network configuration for terminal-to-network IPv6 communication, and an operation thereof according to a third embodiment of the present invention.
[156] Referring to FIG. 17, an IPv4 network-based IPv6 service providing system according to the third embodiment of the present invention further includes an IPv6 gateway 80. The IPv6 gateway 80 serves to perform IPv4 communication and IPv6 tunneling to an IPv4 network 40, and serves as a gateway of an IPv6 network. Thus, the IPv6 gateway 80 is linked to each terminal on the IPv4 network, thereby enabling communication with terminals on the IPv6 network.
[157] A terminal 10 and the IPv6 gateway 80 subscribe to a portal server 20 for service, and performs a control-tunnel configuration and terminal registration process through message transmission and reception in operations 1301 and 1302, respectively. Here, the terminal 10 and the IPv6 gateway 80 can transmit/receive an IPv6 message through a control tunnel.
[158] In operation 1303, when the terminal 10 receives a terminal addition request from a user group management unit, the terminal 10 performs a process of registering the IPv6 gateway 80 as a counterpart terminal on a counterpart terminal list. Thus, the IPv6 gateway 80 is registered so as to allow the corresponding terminal to access the IPv6 network 3ffe:200::/64. Here, the terminal 10 respectively transmits and receives a terminal information request message and a terminal information response message with the IPv6 gateway 80, so as to confirm that the IPv6 gateway 80 is a gateway node connected to the IPv6 network. The terminal information request message and the terminal information response message each include information about a request terminal type. For example, a general terminal serves as a mobile node , and a node connecting the IPv6 network serves as a gateway . In the case of the gateway, the terminal information request message and the terminal information response message include an address of a network connected to the gateway at the time of message transmission/reception with the terminal.
[159] In operation 1304, when a user group management unit or an application wants communication with the IPv6 network, a terminal protocol unit of the terminal 10 sends a direct tunnel request message to the IPv6 gateway 3ffe::200 80 by using a network address. In operation 1305, the IPv6 gateway 80 configures a direct tunnel with respect to the corresponding terminal 10 and sends a direct tunnel response message to the terminal 10. Here, the direct tunnel response message includes an IPv6 network address 3ffe:200::/64 that the IPv6 gateway connects.
[160] the terminal 10 receives the direct tunnel response message to configure a direct tunnel 3ffe::200 up to the IPv6 gateway 80, and adds information included in the message to IPv6 router information 3ffe:200::/64 in the configured direct tunnel.
[161] Thereafter, the terminal 10 is able to communicate with every IPv6 terminal on the IPv6 network via the IPv6 gateway 80.
[162] As described so far, according to the present invention, an IPv6 tunneling is provided on an IPv4 network base, which is being widely used, to provide an IPv6 service. Thus, the efficient and cheap IPv6 service can be provided by just changing a control server and terminal software, without changing or modifying any other equipment within a network zone.
[163] For IPv6 P2P communication between two terminals, a direct tunnel according to embodiments of the present invention is directly connected between two terminals without going by way of a server, so that data transmission/reception can be very efficiently performed, and a tunnel can be provided even between terminals on various networks.
[164] Although embodiments have been described with reference to a number of illustrative embodiments thereof, it should be understood that numerous other modifications and embodiments can be devised by those skilled in the art that will fall of within the spirit and scope of the principles of this disclosure. More particularly, various variations and modifications are possible in the component parts and/or arrangements of the subject combination arrangement within the scope of the disclosure, the drawings and the appended claims. In addition to variations and modifications in the component parts and/or arrangements, alternative uses will also be apparent to those skilled in the art.

Claims

Claims
[1] A method for configuring a control tunnel in an Internet Protocol version 4
(IPv4) network-based Internet Protocol version 6 (IPv6) service providing system having at least two terminals, and a portal server and a control server in- terworking with the terminals over an IPv4 network, the control tunnel being configured at each of the terminals for a terminal-to-terminal IPv6 communication service, the method comprising: configuring a control tunnel with the control server when a tunnel response message is received from the control server by using service information downloaded from the portal server at the time of initialization; sending a registration request message to the control server through the configured control tunnel; and reporting completion of control-tunnel configuration and terminal registration when a registration response message is received from the control server.
[2] The method of claim 1, further comprising: periodically checking whether IPv6 data can be transmitted/received on the control tunnel configured with the control server; and periodically transmission/receiving an update message to/from the control server to renew a lifetime of the terminal, so that each of the terminals provide terminal-to-terminal IPv6 communication service.
[3] The method of claim 1, wherein the configuring of the control tunnel with the control server comprises: extracting information included in the received tunnel response message; determining whether the terminal is attached to a network address translator of a private network by using the extracted information; and configuring the control tunnel into an IPv6-user datagram protocol (UDP)-IPv4 type if the terminal is attached to the network address translator.
[4] The method of claim 3, wherein the configuring of the control tunnel with the control server comprises: periodically transmitting/receiving a keep-alive message of the network address translator through the control tunnel configured into the IPv6-UDP-IPv4; and updating a mapping table in the network address translator.
[5] The method of claim 3, wherein the configuring of the control tunnel with the control server further comprises configuring the control tunnel into an IPv6-IPv4 type when the terminal is on a public network, not attached to the network address translator.
[6] The method of claim 3, wherein the determining of whether the terminal is attached to the network address translator of the private network by using the extracted information comprises: determining from the extracted information that the terminal is attached to the network address translator when a network address translator flag is set, when a UDP source port number is changed, or when a public IPv4 address and a private IPv4 address are identical.
[7] The method of claim 1, wherein the service information comprises an IPv6 address and a user name of the terminal for protocol performance with the control server, an IPv4 address of the control server used in configuring the control tunnel, and an IPv6 address of the control server used in registering the terminal to the control server after the configuring of the control tunnel.
[8] A method for configuring a control tunnel in an Internet Protocol version 4
(IPv4) network-based Internet Protocol version 6 (IPv6) service providing system having at least two terminals, and a portal server and a control server in- terworking with the terminals over an IPv4 network, the control tunnel being configured at the control server for a terminal-to-terminal IPv6 communication service, the method comprising: receiving a tunnel request message from each of the terminals; checking a public IPv4 address set on an IPv4 header of the tunnel request message, and an allocated IPv4 address of each of the terminals included in the tunnel request message; configuring a control tunnel with each of the terminals by using the public IPv4 address and the allocated IPv4 address; and registering each of the terminals when a registration request message is received from each of the terminals through the configured control tunnel.
[9] The method of claim 8, further comprising: periodically checking whether IPv6 data can be transmitted/received on the control tunnel configured with each of the terminals; and periodically transmitting/receiving an update message to renew a lifetime of each of the terminals, so that the control server provides terminal-to-terminal IPv6 communication service.
[10] The method of claim 8, wherein the configuring of the control tunnel with each of the terminals comprises: determining that each of the terminals is on a private network on which the terminal is attached to a network address translator, if the public IPv4 address and the allocated IPv4 address are not identical; configuring the control runnel with each of the terminals into an IPv6-user datagram protocol (UDP) -IPv4 type; and generating a tunnel response message and sending the runnel response message to the terminal through the configured control tunnel.
[11] The method of claim 10, wherein the generated tunnel response message includes a network address translator flag, and terminal information including a changed public IPv4 address and changed UDP source port information.
[12] The method of claim 8, wherein the configuring of the control tunnel with each of the terminals comprises: determining that the corresponding terminal is on a public network if the public
IPv4 address and the allocated IPv4 address are identical; configuring the control tunnel with each of the terminals into an IPv6-UDP-IPv4 type; and generating a tunnel response message, and sending the tunnel response message to the terminal through the configured control tunnel.
[13] The method of claim 12, wherein the generated tunnel response message includes a public IPv4 address and UDP source port information that are not changed, without including a network address translator flag.
[14] A method for configuring a direct tunnel in an Internet Protocol version 4 (IPv4) network-based Internet Protocol version 6 (IPv6) service providing system having at least two terminals, and a control server interworking with the terminals over an IPv4 network, the direct tunnel being configured at a random request terminal for IPv6 communication service with a counterpart terminal, the method comprising: configuring a control tunnel with the control server and registering the request terminal to the control server; registering the counterpart terminal and learning a status of the counterpart terminal in real-time; sending a direct tunnel request message to the counterpart terminal by using terminal information obtained through the learning; configuring a direct tunnel with the counterpart terminal when a direct tunnel response message is received from the counterpart terminal; and checking whether IPv6 data transmission is available through the configured direct tunnel.
[15] The method of claim 14, wherein the terminal information obtained through the learning comprises position information and status information of the request terminal, and position information and status information of the counterpart terminal.
[16] The method of claim 14, wherein the registering of the counterpart terminal and the learning of the status of the counterpart terminal in real-time comprises: adding the counterpart terminal to a counterpart terminal list when the counterpart terminal is found; periodically checking and managing statuses of counterpart terminals existing on the counterpart terminal list; and reporting a status change of the request terminal to the counterpart terminals on the counterpart terminal list when an abnormal situation occurs.
[17] The method of claim 16, wherein the adding of the counterpart terminal to the counterpart terminal list comprises: setting a status of the counterpart terminal added to the counterpart terminal list to an offline status; sending a terminal information request message to the counterpart terminal; setting a timer at a preset time interval and sending the terminal information request message at the preset time interval; setting a status of the request terminal to an online status in the counterpart terminal, and receiving a terminal information response message in response to the sent terminal information request message; and updating position information of the counterpart terminal by using information included in the terminal information response message, and setting a status of the counterpart terminal to an online status.
[18] The method of claim 16, wherein the periodically checking and managing of the statuses of the counterpart terminals existing on the counterpart terminal list comprises: starting a processor at a preset time interval; determining the status of the counterpart terminal as an offline status when there is no response from the counterpart terminal within timeout of the preset time; sending a terminal information request message to the counterpart terminal; setting a status of the request terminal to an online status in the counterpart terminal, and receiving a terminal information response message in response to the sent terminal information request message; updating position information of the counterpart terminal by using information included in the terminal information response message, and setting a status of the counterpart terminal to an online status; and changing a value of the timeout.
[19] The method of claim 17 or 18, wherein the terminal information request message uses an IPv6 packet format using the control tunnel,
Wherein when each terminal is on a private network where the request terminal is attached to a network address translator, the terminal information request message includes a public IPv4 address and a changed UDP source port number that the request terminal learns at the time of the control-tunnel configuration and terminal registration.
[20] The method of claim 17 or 18, wherein the terminal information response message uses an IPv6 packet format using the control tunnel, Wherein when each terminal is on a private network where the counterpart terminal is attached to a network address translator, the terminal information response message includes a changed UDP source port number and a public IPv4 address that the counterpart terminal learns at the time of the control-tunnel configuration and terminal registration.
[21] The method of claim 16, wherein the reporting of the status change of the request terminal to the counterpart terminals on the counterpart terminal list when the abnormal situation occurs comprises: detecting whether a status of the request terminal is changed to an offline status due to the abnormal situation occurring therein; sending a terminal status change message to the counterpart terminals on the counterpart terminal list when the status is changed to the offline status; and completing a system or a processor of the request terminal.
[22] The method of claim 14, further comprising determining a tunnel type for direct tunnel configuration with the counterpart terminal by using terminal information obtained through the learning.
[23] The method of claim 22, wherein the determining of the tunnel type for the direct tunnel configuration with the counterpart terminal comprises: checking whether the request terminal is attached to a network address translator by using the terminal information obtained through the learning; checking whether the counterpart terminal is attached to a network address translator if the request terminal is not attached to the network address translator; determining that the direct tunnel configuration is made on a public network if the counterpart terminal is attached to the network address translator, and determining the tunnel type as an IPv6-IPv4 type; and determining that the direct tunnel configuration is made between a public network and a private network if the counterpart terminal is not attached to a network address translator, and determining the tunnel type as an IPv4-UDP-IPv4 type.
[24] The method of claim 23, wherein the determining the tunnel type for the direct tunnel configuration with the counterpart terminal further comprises: checking whether the counterpart terminal is attached to a network address translator if the request terminal is attached to the network address translator; and determining that the direct tunnel configuration is made between a public network and a private network if the counterpart terminal is not attached to the network address translator, and determining the tunnel type as an IPv6-UDP-IPv4 type.
[25] The method of claim 22, wherein the determining of the tunnel type for the direct tunnel configuration with the counterpart terminal comprises: checking whether the request terminal is attached to a network address translator by using terminal information exchanged with the counterpart terminal; determining whether the counterpart terminal is attached to a network address translator if the request terminal is attached to the network address translator; comparing a public IPv4 address of the request terminal with a public IPv4 address of the counterpart terminal from the exchanged terminal information if the counterpart terminal is attached to the network address translator; and determining that the direct tunnel configuration is made between different private networks if the public IPv4 address of the request terminal and the public IPv4 address of the counterpart terminal are identical, and determining the tunnel type as an IPv6-UDP-IPv4 type.
[26] The method of claim 25, wherein the determining of the tunnel type for the direct tunnel configuration with the counterpart terminal further comprises determining that the direct tunnel configuration is made on the same private network if the public IPv4 address of the request terminal and the public IPv4 address of the counterpart terminal are not identical, and determining the tunnel type as an IPv6-IPv4 type.
[27] The method of claim 14, wherein the sending of the direct tunnel request message to the counterpart terminal comprises: checking terminal information of the counterpart terminal comprising network position information and status information of the counterpart terminal, when a request for a direct tunnel with the counterpart terminal is received; checking whether the counterpart terminal can configure a direct tunnel by using the checked network position information and status information; generating the direct tunnel request message if the counterpart terminal can configure the direct tunnel; and sending the generated direct tunnel request message to the counterpart terminal.
[28] The method of claim 14, wherein the configuring of the direct tunnel with the counterpart terminal when the direct tunnel response message is received from the counterpart terminal comprises: receiving the direct tunnel response message from the counterpart terminal; checking whether the direct tunnel response message is a valid message by using a counterpart terminal list in the request terminal; determining a network positional relationship with the counterpart terminal according to position information of the request terminal and position information of the counterpart terminal obtained through the direct tunnel response message, if the direct tunnel response message is a valid message; and configuring the direct tunnel into a tunnel type corresponding to the determined network positional relationship.
[29] The method of claim 28, wherein the configuring of the direct tunnel with the counterpart terminal when the direct tunnel response message is received from the counterpart terminal further comprises: periodically sending a network address translator Keep-Alive message if the request terminal is on a private network; and updating a mapping table within the network address translator.
[30] The method of claim 14, further comprising determining whether a network address translator of a private network acts as a source network address translator if the request terminal or the counterpart terminal is on the private network in configuring the control tunnel.
[31] The method of claim 30, wherein the determining of whether the network address translator in the private network acts as a source network address translator comprises: sending a tunnel request message to a main control server within the control server; receiving a tunnel response message including changed first source port information from the main control server; checking information included in the tunnel response message, and sending a network address translator check request message to an auxiliary control server within the control server; receiving a network address translator check response message including changed second source port information from the auxiliary control server; and checking whether the first source port information and the second source port information are identical, and determining that the network address translator on the private network is the source network address translator that allows the direct tunnel if the first source port information and the second source port information are identical; and determining that the network address translator in the private network is a network address translator that does not allow the direct tunnel if the first source port information and the second source port information are not identical.
[32] A method for configuring a direct tunnel in an Internet Protocol version 4 (IPv4) network-based Internet Protocol version 6 (IPv6) service providing system having at least two terminals and a control server interworking with the terminals through an IPv4 network, the direct tunnel being configured for IPv6 communication service at a random counterpart terminal receiving a direct tunnel request, the method comprising: receiving a message for the direct tunnel request from a request terminal; searching terminal information of the request terminal included in the message; checking whether the direct tunnel can be configured with the request terminal by using the searched terminal information; determining a network positional relationship with the request terminal by using the searched terminal information if the direct tunnel can be configured; generating a direct tunnel response message according to the determined network positional relationship, and sending the generated direct tunnel response message to the request terminal; and configuring the direct tunnel according to the determined network positional relationship.
[33] The method of claim 32, further comprising sending a direct tunnel error message to the request terminal if the direct tunnel cannot be configured, so that the random counterpart terminal receiving the direct tunnel request provides IPv6 communication service.
[34] The method of claim 32, wherein the determining of the network positional relationship by using the searched terminal information comprises: checking position information of the counterpart terminal and position information of the request terminal included in the searched terminal information, and configuring the direct tunnel into an IPv6-user datagram protocol (UDP)-IPv4 type if the counterpart terminal is on a private network; and configuring the direct tunnel into an IPv6-IPv4 type if the request terminal and the counterpart terminal are on the same private network.
[35] The method of claim 32, wherein the determining of the network positional relationship by using the searched terminal information comprises: checking position information of the counterpart terminal and position information of the request terminal included in the searched terminal information, and configuring the direct tunnel into an IPv6-UDP-IPv4 type if the counterpart terminal is on a public network and the request terminal is on a private network; and configuring the direct tunnel into an IPv6-IPv4 type if both the counterpart terminal and the request terminal are on the public network.
[36] The method of claim 35, further comprising: periodically sending a network address translator Keep-Alive message if the request terminal is on the private network; and updating a mapping table within the network address translator.
[37] A method for configuring a control tunnel and a direct tunnel in an Internet
Protocol version 4 (IPv4) network-based Internet Protocol version 6 (IPv6) service providing system having at least two terminals, and a portal server, a control server and an IPv6 gateway interworking with the terminal through an IPv4 network, the control tunnel and the direct tunnel being configured at each of the terminals for terminal-to-network IPv6 communication service, the method comprising: configuring a control tunnel with the control server when a tunnel response message is received from the control server by using service information downloaded from the portal server at the time of initialization; registering the terminal and the IPv6 gateway to the control server through the configured control tunnel; registering the IPv6 gateway as a counterpart terminal on a counterpart terminal list in the terminal; transmitting a terminal information request message to the IPv6 gateway and receiving a terminal information response message from the IPv6 gateway to check a network address of a network connected to the IPv6 gateway; configuring a direct tunnel to the IPv6 gateway by using the network address; and performing communication with IPv6 terminals on an IPv6 network connected to the IPv6 gateway through the configured direct tunnel.
[38] The method of claim 37, wherein the service information comprises an IPv6 address and a user name of the terminal for protocol performance with the control server, an IPv4 address of the control server used in configuring the control tunnel, and an IPv6 address of the control server used in registering the terminal to the control server after the configuring of the control tunnel.
PCT/KR2007/006151 2006-12-04 2007-11-30 Method for configuring control tunnel and direct tunnel in ipv4 network-based ipv6 service providing system Ceased WO2008069504A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/517,550 US8457014B2 (en) 2006-12-04 2007-11-30 Method for configuring control tunnel and direct tunnel in IPv4 network-based IPv6 service providing system
JP2009540139A JP4819953B2 (en) 2006-12-04 2007-11-30 Control tunnel and direct tunnel setting method in IPv4 network-based IPv6 service providing system

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR20060121831 2006-12-04
KR10-2006-0121831 2006-12-04
KR20070077503A KR100901790B1 (en) 2006-12-04 2007-08-01 CONTROL TUNNEL AND DIRECT TUNNEL CONFIGURATION METHOD IN IPv6 SERVICE PROVIDE SYSTEM BASED IPv4 NETWORK
KR10-2007-0077503 2007-08-01

Publications (1)

Publication Number Publication Date
WO2008069504A1 true WO2008069504A1 (en) 2008-06-12

Family

ID=39492326

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2007/006151 Ceased WO2008069504A1 (en) 2006-12-04 2007-11-30 Method for configuring control tunnel and direct tunnel in ipv4 network-based ipv6 service providing system

Country Status (1)

Country Link
WO (1) WO2008069504A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8699466B2 (en) 2007-12-14 2014-04-15 Electronics And Telecommunications Research Institute Apparatus and method of controlling seamless handover between heterogeneous networks based on IPv6 over IPv4 tunneling mechanism
CN110839046A (en) * 2019-12-03 2020-02-25 睿哲科技股份有限公司 Multi-protocol intercommunication method and system
CN115412533A (en) * 2021-05-27 2022-11-29 北京小米移动软件有限公司 Terminal device, control method and device thereof, and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050057886A (en) * 2003-12-11 2005-06-16 한국전자통신연구원 Ipv4/ipv6 tunnel broker system
US7031328B2 (en) * 2003-03-10 2006-04-18 Cisco Technology, Inc. Arrangement for traversing an IPv4 network by IPv6 mobile routers
US7072339B2 (en) * 1996-11-01 2006-07-04 Hitachi, Ltd. Communicating method between IPv4 terminal and IPv6 terminal and IPv4-IPv6 converting apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7072339B2 (en) * 1996-11-01 2006-07-04 Hitachi, Ltd. Communicating method between IPv4 terminal and IPv6 terminal and IPv4-IPv6 converting apparatus
US7031328B2 (en) * 2003-03-10 2006-04-18 Cisco Technology, Inc. Arrangement for traversing an IPv4 network by IPv6 mobile routers
KR20050057886A (en) * 2003-12-11 2005-06-16 한국전자통신연구원 Ipv4/ipv6 tunnel broker system

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8699466B2 (en) 2007-12-14 2014-04-15 Electronics And Telecommunications Research Institute Apparatus and method of controlling seamless handover between heterogeneous networks based on IPv6 over IPv4 tunneling mechanism
CN110839046A (en) * 2019-12-03 2020-02-25 睿哲科技股份有限公司 Multi-protocol intercommunication method and system
CN110839046B (en) * 2019-12-03 2022-04-22 睿哲科技股份有限公司 Multi-protocol intercommunication method and system
CN115412533A (en) * 2021-05-27 2022-11-29 北京小米移动软件有限公司 Terminal device, control method and device thereof, and storage medium
CN115412533B (en) * 2021-05-27 2024-01-16 北京小米移动软件有限公司 Terminal device, control method and device thereof, and storage medium

Similar Documents

Publication Publication Date Title
US8457014B2 (en) Method for configuring control tunnel and direct tunnel in IPv4 network-based IPv6 service providing system
US9137027B2 (en) Bootstrapping in peer-to-peer networks with network address translators
US9705844B2 (en) Address management in a connectivity platform
US7639686B2 (en) Access network clusterhead for providing local mobility management of a roaming IPv4 node
US8458303B2 (en) Utilizing a gateway for the assignment of internet protocol addresses to client devices in a shared subset
US20060056420A1 (en) Communication apparatus selecting a source address
JP4010830B2 (en) Communication apparatus and network system
US8891551B2 (en) IPv6 over IPv4 transition method and apparatus for improving performance of control server
CA2884683C (en) Split network address translation
EP2351334A1 (en) Nat traversal method and apparatus
KR20130052240A (en) Method and apparatus for provisioning network address translator traversal methods
US8873569B2 (en) User centric virtual network and method of establishing the same
JP4292897B2 (en) Relay device and port forward setting method
KR100231705B1 (en) Structure and method of the hybrid gateway to support public and private IP address
US9509659B2 (en) Connectivity platform
WO2009005212A1 (en) Ipv6 over ipv4 transition method and apparatus for improving performance of control server
WO2008069504A1 (en) Method for configuring control tunnel and direct tunnel in ipv4 network-based ipv6 service providing system
KR101124635B1 (en) Connecting gateway with ipv4/ipv6
JP5054666B2 (en) VPN connection device, packet control method, and program
CN101485179A (en) Method for managing communication connections by network address translating (NAT) network nodes
CN105099928A (en) Dual-stack router and method for realizing bandwidth sharing
JP5904965B2 (en) Communication apparatus and communication system
Kang et al. IPv6 anycast routing aware of a service flow

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: 07834424

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 12517550

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2009540139

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: 07834424

Country of ref document: EP

Kind code of ref document: A1