Data transfer from a host server via a tunnel server to a wireless device, and associating a temporary IPV6 address with a temporary IPV4 address for communicating in an IPV4 wireless network with the device

A front end of an IPv6 communication network includes a network entry point device and a plurality of tunnel servers which facilitate the communication of user information between a host computer of an IPv4 communication network and an IPv6 wireless communication device. The network entry point device is configured to direct a tunnel request from the host computer to a selected tunnel server, which establishes a tunnel connection with the host computer. The tunnel server facilitates the communication of user information between the host and the wireless device through the tunnel connection. The tunnel server also performs a dynamic routing protocol (DRP). In accordance with the DRP, the tunnel server updates a local routing table to reflect the newly established tunnel connection and broadcasts updated routing table information to the other tunnel servers. In another related technical aspect, a back end of the IPv6 communication network facilitates communication with the IPv6 wireless device when it operates in an IPv4 wireless communication network.

BACKGROUND

1. Field of the Technology

The present application relates generally to IPv4-to-IPv6 address transitioning methods and apparatus for systems that “push” information to wireless communication devices.

2. Description of Related Technology

There are presently several proposals for pushing information to a wireless communication device in an Internet Protocol (IP) based wireless network. In these networks, wireless devices are not provided with permanent identifiers, but instead are dynamically assigned an IP address from a pool of available addresses. Each time the wireless device makes a network connection, a different IP address is typically assigned to the wireless device.

Thus, for services attempting to push information to the particular wireless device, it is difficult to address the information since the IP address is not permanent. These proposals do not adequately deal with the problems of how to address the wireless device when pushing information to it, and how to bridge the solution to future third-generation (3G) wireless networks, such as a General Packet Radio Service (GPRS) network. The solutions provided by these proposals involve either creating a proprietary Personal Identification Number (PIN) for each wireless device, or trying to use a phone number (or similar permanent identifier) of the wireless device to contact it over an alternative communication network (e.g. a short messaging service (SMS) over a circuit-switched channel).

What makes the situation more difficult is the desire to implement such systems using IPv6 addressing. Many networks and devices still use IPv4 addresses and do not support IPv6 addressing. Such networks and devices may be outside the control of a service provider. Although ideally all networks and devices involved are simultaneously upgraded to support IPv6 addressing, this is highly unlikely to occur in actual practice. In the meantime, solutions are needed for the transition from IPv4 to IPv6 addressing in systems that push information to wireless communication devices having permanent IPv6 addresses.

SUMMARY

In the present application, two related IPv4-to-IPv6 address transitioning methodologies for systems that push information to wireless communication devices are described. In general, an IPv6 serving network is used to facilitate the communication of user information between a plurality of host computers and a plurality of wireless communication devices. The first technical aspect relates to a “front end” of the serving network; that is, a host computer's entry point and connection to the serving network. The second technical aspect relates to a “back end” of the serving network; that is, the exit point from the serving network to a wireless communication device.

According to the first technical aspect, the IPv6 serving network includes a network entry point device and a plurality of tunnel servers for facilitating the communication of user information between host computers in IPv4 communication networks and the wireless devices. The network entry point device is operative to direct a plurality of tunnel requests from the host computers to the tunnel servers in a distributed manner. Each tunnel server is operative to establish and maintain tunnel connections with host computers and to facilitate the communication of user information between them and their associated wireless devices. Each tunnel server is also operative to perform a dynamic routing protocol (DRP). The DRP is utilized for updating a local routing table to reflect newly established tunnel connections and for broadcasting updated routing table information to other tunnel servers.

When a host computer detects a connection failure with the serving network, it initiates a new connection with it by sending a new tunnel request through the network entry point device, which directs it to a newly selected and available tunnel server. In accordance with the DRP, the new tunnel server then updates its local routing table and broadcasts updated routing table information to the other tunnel servers. In this way, routes between devices are quickly and easily reestablished after a failure occurs. Preferably, the DRP utilizes “link state advertisements” (LSAs) and is based on an Open Shortest Path First (OSPF) standard. As apparent, the front end of the network is suitably configured to provide for scalability and fault tolerance as well as to serve as an effective IPv4-to-IPv6 address transitioning mechanism.

According to the second technical aspect, the IPv6 serving network facilitates communications between a host computer and an IPv6 wireless device operating in an IPv4 wireless network. When the wireless device enters the IPv4 wireless network, the IPv4 wireless network identifies a temporary IPv4 address for the wireless device. In addition, a router between the IPv6 serving network and the IPv4 wireless network identifies a temporary IPv6 address for the wireless device. Preferably, the temporary IPv6 address assigned to the wireless device has the temporary IPv4 address embedded within it.

In one particular implementation, a request for the temporary IPv6 address is made by the wireless device after it receives the temporary IPv4 address through the network; this temporary IPv4 address is sent along with the request and subsequently used for determining the temporary IPv6 address. The router may operate in accordance with an Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) standard for determining the temporary IPv6 address and facilitating communications between the IPv6 serving network and the IPv4 wireless network.

Once the temporary IPv6 address is assigned and received, the wireless device sends the temporary IPv6 address to a home agent in a virtual home network. The home agent stores the temporary IPv6 address in association with the permanent IPv6 address of the wireless device as its Care-Of Address (COA). The message sent from the wireless device may be referred to as a “Binding Update” message. Thereafter, when the home agent subsequently receives data packets addressed to the permanent IPv6 address of the wireless device, it readdresses the data packets with the temporary IPv6 address of the wireless device for routing through the IPv6 serving network. When the router receives the data packets addressed to the temporary IPv6 address of the wireless device, it encapsulates these data packets with the temporary IPv4 address for routing to the wireless device through the IPv4 wireless network.

Accordingly, IPv4-to-IPv6 address transitioning mechanisms suitable for systems that push information to wireless communication devices are advantageously provided.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present application relates to two related methodologies for facilitating the communication of user information from a plurality of host computers to a plurality of wireless communication devices through a serving network. The first technical aspect relates to a front end of the serving network, i.e., a host computer's entry point and connection to the serving network. This first aspect is described below in detail in relation toFIGS. 1-3. The second technical aspect relates to a back end of the serving network, i.e., the exit point from the serving network to a wireless communication device. This second aspect is described below in detail in relation toFIGS. 4-7. Each technical aspect provides an IPv4-to-IPv6 address transitioning mechanism suited particularly for systems that push information to wireless communication devices. Although the first and the second methodologies need not be employed together in the same system, they are preferably utilized in combination in the serving network to exploit their advantages.

Referring now toFIG. 1, an illustration of a computer system100which highlights the components involved in the first technical aspect of the present application, which relates to the serving network's “front end”, is shown. Computer system100generally includes a host system102and a serving network106which communicate through a public network104to provide communications for at least one wireless communication device130.

Host system102includes a host computer108coupled within a host network110. In general, communications of user information between host computer108and wireless communication device130is facilitated through serving network106. Communications between host system102and serving network106may be routed through a conventional firewall112and public network104, which may be the Internet. In the present embodiment, host network110is an IPv4-addressed network. Public network104(e.g. the Internet) may also be an IPv4-addressed network or have components thereof (e.g. routers) that are not yet equipped to handle IPv6 addressing.

Host computer108has an application program for receiving user information, processing the user information, and displaying the processed information to the end-user. The user information may be received at host computer108by, for example, manual entry through a keyboard or other user suitable interface device in host system102. This information may be visually displayed in host system102on a computer monitor or the like. Preferably, the application program associated with host computer108is an e-mail receiving/sending program and/or a calendar/scheduling program. For example, the application program may include the Microsoft Exchange® program available from Microsoft Corporation, or the Lotus Notes® program available from the Lotus Development Corporation. Microsoft Exchange® is a registered trademark of the Microsoft Corporation, and the Lotus Notes® program is a registered trademark of the Lotus Development Corporation.

Host computer108operates to send such user information to wireless communication device130through serving network106. More particularly, when new and/or updated information is received by the application program, host computer108operates to “push” user information to wireless communication device130through serving network106. Conversely, host computer108operates to receive new and/or updated information from wireless communication device130and to accordingly update the application program for the end-user. Preferably, wireless communication device130operates an application program (e.g. e-mail and/or calendar application) similar to the program on host computer108and such that information is synchronized between the devices in real-time.

Preferably, host computer108is configured to act on behalf of a plurality of end-users, each of which is associated with a particular wireless communication device. For example, a plurality of personal computers (PC) may be connected to host network110and access a network server which may run the application program (e.g. the e-mail program or calendaring program). When new and/or updated information from these programs is received, host computer108operates to “push” this information to the appropriate wireless communication device through serving network106. Preferably, host computer108initiates the pushing of information substantially in real time, as the information is received or updated. Similarly, host computer108operates to receive user information from each one of the wireless communication devices and to update data for the appropriate end-user for the application program.

Although not shown inFIG. 1for simplicity and clarity, additional host systems like host system102communicate with other wireless communication devices through serving network106as well. Such a host system or host computer may be part of a private network or, alternatively, part of a public network.

Referring now to serving network106ofFIG. 1, a “front end” subnetwork124includes a network entry point device114, a plurality of tunnel servers116, and a router126. Front end subnetwork124is coupled to a “core” serving network128through router126. Network entry point device114and devices in front end subnetwork124(e.g. tunnel servers116) are part of what may be referred to as a “host access network”. Core network128, as its name suggests, is the central core of serving network106which helps facilitate the communication of user information to and from wireless communication device130through a wireless communication network (not shown inFIG. 1). The dividing point between the front end and the remaining part of serving network106is marked by router126, which routes communications between front end subnetwork126and core network128. In contrast to host network110and/or public network104, serving network106(which includes core network128) is an IPv6 addressed network.

Network entry point device114is any device which serves the front end of serving network106in order to at least receive and handle initial host requests. Network entry point device114appropriately directs communications between devices in public network104and tunnel servers116. In simplest form, network entry point device114may be viewed as a switch which helps to facilitate multiple connections between hosts and servers. Preferably, network entry point device114is a traffic directing device which receives requests from multiple hosts, distributes the requests amongst multiple servers in the network, and directs subsequent traffic to and from them appropriately.

More preferably, network entry point device114is a local director. A local director is a traffic directing device which distributes host requests amongst multiple servers of the network in a load balanced manner, taking into account the availability/unavailability of the servers, and thereafter directs traffic to and from them appropriately. Load balancing techniques evenly distribute connections across multiple servers, giving preference to those servers with the least amount of congestion or use. One local director which may be used is a LocalDirector device which is available from Cisco Systems, Inc., of San Jose, Calif., U.S.A.

In an alternate embodiment, network entry point device114is a domain name server (DNS) which uses a round-robin assignment technique. In general, round robin DNS also distributes connection loads across multiple servers. In contrast to a local director methodology, round robin works on a rotating basis such that one server IP address is handed out and placed at the back of the address list, the next server IP address is handed out and placed at the back end of the list, and so on depending on the number of servers being used. This is performed in a continuous loop fashion; the order of assignment is fairly rigid and does take into account the actual loading of each server or its availability.

Tunnel servers116, which may or may not be co-located, provide access points into serving network106for host computers and may be referred to as access servers. Tunnel servers116are shown inFIG. 1to include three (3) tunnel servers118,120, and122(denoted tunnel servers1,2, . . . , N, respectively), although any suitable number may be utilized in the system. Each tunnel server116is operative to establish and maintain a Transmission Control Protocol (TCP) connection with host computers when such a connection is requested through network entry point device114. Each tunnel server116is also operative to perform a tunneling protocol for establishing tunnel connections with host computers in response to tunnel requests received therefrom.

Tunneling is a method of communicating data between two networks that use different and oftentimes incompatible communication protocols. Tunneling typically involves encapsulating data packets at a source device in one network to provide compatibility when delivered through the other network to a destination device, where the packets are decapsulated to reveal the underlying data packets. In communication system100, a tunnel connection is established between one of tunnel servers116and host computer108for connecting the front end of serving network106(which is an IPv6 addressed network) to host network110(which is an IPv4 addressed network). Once a tunnel server is selected and a tunnel connection is established between a host and the selected tunnel server, network entry point device114(e.g. as a local director) performs a Network Address Translation (NAT) function between the host and the tunnel server to facilitate ongoing communications therebetween.

Preferably, each tunnel server116is operate to establish and maintain secure tunnel connections in accordance with a Secure Shell (SSH) standard. Such a security protocol may be based on a version of SSH1 or SSH2, or alternatively based on an open SSH standard called OpenSSH developed by the OpenBSD Project (Berkley Software Distribution) such as OpenSSH Version 3.4, Jun. 26, 2002. There are a number of references available on SSH, including the book entitled “SSH: The Secure Shell, The Definitive Guide” by Daniel J. Barrett, PhD., and Richard E. Silverman. In general, SSH is a software tool and protocol for secure remote login over networks. It provides an encrypted terminal session with strong authentication of both server and client using public-key cryptography. The features supported with SSH include a variety of user authentication methods; tunneling arbitrary TCP connections through the SSH session; protecting normally insecure protocols (such as Internet Mail Application Protocol or IMAP) and allowing secure passage through firewalls; automatic forwarding of X Windows connections; support for external authentication methods, (including Kerberos and SecurID); and secure file transfers.

In particular, a first level of SSH authentication allows any host to connect to a SSH server as long as the password of the account at the server is known. This procedure will encrypt traffic sent via SSH, but it does not in itself provide a strong mechanism to authenticate the host. A second level of SSH authentication relies on a security key mechanism: a key pair is created and the public key is provided to the server. When connecting to an SSH server, the host sends a request to the server for authentication with use of the security keys. The server looks up the public key in a remote home directory at the server and compares both keys. It then sends an encrypted “challenge” to the host, which is decrypted at the host with the private key and sent back to the server.

As an alternative to SSH, each tunnel server116may operate to establish and maintain secure tunnel connections in accordance with Virtual Private Network (VPN) techniques. Such techniques may include a Point-To-Point Tunneling Protocol (PPTP), a Layer2Tunneling Protocol (L2TP), and IP Secure Protocol (IPsec), as some examples.

Preferably, host computer108and tunnel servers116are also operative to encapsulate the datagram protocols based on a Point-to-Point Protocol (PPP) standard. For example, the PPP may be based on the methodology described in “The Point-to-Point Protocol(PPP)”, Request For Comments (RFC) 1661, issued in July 1994 by the Internet Engineering Task Force (IETF). In general, PPP provides a method for encapsulating datagrams over serial links so that, for example, a PC may connect to the Internet through a telephone line with use of a modem. PPP also provides a Link Control Protocol (LCP) for establishing, configuring, and testing the data-link connection, as well as a family of Network Control Protocols (NCPs) for establishing and configuring different network-layer protocols. PPP session establishment also utilizes three phases which include a link establishment phase, an (optional) authentication phase, and a network-layer protocol phase, which use known methodologies. Together, as apparent from the above-description, the preferable connection between host computer108and a tunnel server is a “tunneled PPP over SSH over TCP” connection.

Tunnel servers116and router126are also operative to perform dynamic routing functions for the front end of serving network106. Preferably, these routing functions include a dynamic routing protocol (DRP) utilized in front end subnetwork124. Conventionally, a “dynamic” routing of data through a network exploits the likelihood that the appropriate or best route for sending data packets between two devices through a network may change over time. A dynamic routing protocol is a protocol utilized in network routing devices for automatically and regularly determining, updating, and communicating within the network what the appropriate or best routes are between network devices, so that these routes may be used when data packets are sent through the network.

For use in connection with the DRP, each one of tunnel servers116and router126has a local routing table in its memory which associates an IP address of a destination device with an IP address of an appropriate or best adjacent routing device. Per the DRP, when connections change, updates are made to the local routing tables through broadcasts by the routing devices. If a new tunnel connection is established between tunnel server118and host computer108, for example, tunnel server118updates its local routing table to reflect the new relationship. It then broadcasts the updated routing table information to the other tunnel servers116and router126so that, for example, router126will direct user information destined to host computer108through tunnel server118.

Preferably, the DRP is based on an Open Shortest Path First (OSPF) standard developed by the IETF. OSPF is generally classified as an Internal Gateway Protocol (IGP) as it is designed to distribute routing information between routers of a single autonomous system. OSPF is a link-state algorithm which specifies a class of messages called link-state advertisements (LSAs) which are used by routers to update each other about the network links. Link-state updates are stored in a topology database which contains a representation of every link and router in the network. One current standard for OSPF is OSPF Version 2 developed by the IETF and documented in RFC 1247, July 1991, which is hereby incorporated by reference herein. Using such a DRP, updates to routing tables are made periodically (e.g. every 30 minutes) as well as when a link change is observed in the network.

Although use of OSPF is advantageous, any other suitable dynamic routing protocol may be utilized. A Routing Information Protocol (RIP) or a Border Gateway Protocol (BGP), as examples, may deemed suitable depending on the implementation. In contrast to OSPF, RIP utilizes a distance-vector algorithm where each router precomputes the best links and broadcasts its entire routing database periodically (e.g. every 30 seconds) to all other routers in the network. One current standard for RIP is RIP Version 2 developed by the IETF and documented in RFC 2453, November 1998, which is hereby incorporated by reference herein. One current standard for BGP, which is based on a most specific prefix and shortest Autonomous System (AS) path, is BGP Version 4 developed by the IETF and documented in RFC 1771.

FIGS. 2 and 3are flow diagrams which are used to describe a method of facilitating communication of user information between a host computer and a wireless communication device through a serving network. Such methods may be utilized in connection with host computer108, serving network106, and wireless communication device130ofFIG. 1. More particularly,FIG. 2relates to an initial connection setup between a host computer and a serving network;FIG. 3relates to communication of user information, detection of a communication failure, and a connection re-establishment between the host computer and the serving network. Such methods may be embodied in a computer program product which includes a computer storage medium and computer instructions stored on the computer storage medium, where the computer instructions can be executed to perform the methods.

In the following description of the flow diagram ofFIG. 2,FIGS. 1-2are referred to in combination. Host computer108initiates a connection to serving network106by sending a tunnel request to network entry point device114(step202ofFIG. 2). Network entry point device114receives this request from host computer108and, in response, selects one of the plurality of tunnel servers116to which to direct communications with host computer108(step204ofFIG. 2). In the present example, network entry point device114particularly selects tunnel server118to which to direct communications with host computer108. Tunnel server118receives this tunnel request from host computer108through network entry point device114(step206ofFIG. 2). In response to receiving the tunnel request, tunnel server118provides any necessary authentication (step207ofFIG. 2) and establishes a tunnel connection with host computer108(step208ofFIG. 2) assuming the authentication is successful.

Although described above as involving a single host computer108, steps202-208described in relation toFIG. 2are actually performed contemporaneously in connection with a plurality of host computers which, over some period of time, send a plurality of tunnel requests through network entry point device114. Accordingly, network entry point device114performs selection of a tunnel server in step204in a manner such that all tunnel connections are distributed amongst all tunnel servers116(using, for example, a round robin DNS or a local director). Preferably, the distribution is performed in a substantially evenly or equal manner amongst all tunnel servers116that are available (using, for example, the local director). This selection may be performed in network entry point device114utilizing conventional load balancing techniques.

The tunnel connection established in step208is a “long live” connection which is utilized to facilitate the communication of user information between host computer108and wireless communication device130, as well as between host computer108and any other wireless communication devices associated with the application program in host system102. In the present embodiment, the tunnel connection established in step208has connection points at host computer108and tunnel server118for connecting host network110(an IPv4-addressed network) to the front end of serving network106(an IPv6-addressed network). When sending data packets from host computer108to wireless communication device130through tunnel server118, the tunneling protocol at host computer108involves “wrapping” or encapsulating IPv6-addressed data packets (i.e. addressed to wireless communication device130) within IPv4-addressed data packets. When tunnel server118receives these data packets from host computer108, the tunneling protocol at tunnel server118involves “unwrapping” or decapsulating the IPv4-addressed data packets to reveal the underlying IPv6-addressed data packets. These IPv6-addressed data packets are subsequently sent to wireless communication device130through router126and core subnetwork128.

Conversely, data packets are also sent from wireless communication device130to host computer108through tunnel server118over the tunnel connection. In this case, tunnel server118receives IPv6-addressed data packets (i.e. addressed to host computer108) from wireless communication device130. The tunneling protocol at tunnel server118involves wrapping or encapsulating these IPv6-addressed data packets within IPv4-addressed data packets. When host computer108receives these data packets, the tunneling protocol at host computer108involves unwrapping or decapsulating the IPv4-addressed data packets to reveal the underlying IPv6-addressed data packets. User information in these underlying data packets are subsequently directed for storage with the appropriate end-user data associated with that address.

As described earlier above, tunnel server118is also configured to perform a dynamic routing protocol (DRP) in front end subnetwork124. Thus, after establishing the tunnel connection in step208ofFIG. 2, tunnel server118uses its DRP to update its local routing table to reflect the new tunnel connection (step210ofFIG. 2). The update to the local routing table at tunnel server118involves storing an IP address of tunnel server118in association with a destination IP address to host computer108. Tunnel server118also uses the DRP to broadcast this updated routing table information to all other tunnel servers116and router126. The broadcasting of updated routing table information may be performed in response to identifying a newly established connection, or it may be performed periodically over time, or both. When updated routing table information is broadcasted from tunnel server118and received at other tunnel servers116and router126, other tunnel servers116and router126update their own local routing tables to reflect the new tunnel connection.

In this way, when a communication of user information intended for host computer108is received at router126, for example, router126examines its local routing table to identify that tunnel server118is responsible for communications with host computer108. Thus, router126routes the user information to tunnel server118so that tunnel server118may communicate it to host computer108over the tunnel connection.

With the entry point connection now established, basic steady-state operation is now described in relation toFIG. 3. Host computer108initiates a “pushing” of new and/or updated user information (e.g. e-mail information) to wireless communication device130by sending this information to tunnel server118over the tunnel connection (step302ofFIG. 3). Tunnel server118receives this new and/or updated information over the tunnel connection through network entry point device114. Tunnel server118facilitates the communication of the new and/or updated user information to wireless communication device130over the tunnel connection (step304ofFIG. 3), executing its tunneling protocols and appropriately routing the information.

However, there are times when the connection between host computer108and tunnel server118may fail or otherwise become unavailable. For example, tunnel server118may be intentionally taken “off-line”, lose supply power, exhibit a technical failure, or become excessively loaded; or the communication channel or tunnel connection may itself be interrupted by interference or some other disruption. Thus, a communication failure or unavailable connection between host computer108and tunnel server118may exist, as is illustrated inFIG. 3at a point350.

Host computer108is configured to detect such a communication failure between it and tunnel server118(step306ofFIG. 3). This detection may be performed in any number of suitable ways. For example, after host computer108attempts to send data packets through serving network106, it may detect such a condition in response to failing to receive an acknowledgement or response, or receiving a “Destination Unreachable”, “Message Undeliverable”, or “Server Unavailable” message. As another example, host computer108may detect such a condition in response to failing to receive one or more “heartbeats” or “keep alive” messages from tunnel server118which are otherwise regularly or periodically sent.

In response to detecting the communication failure, host computer108attempts to reinitiate or reestablish a connection with serving network106. Host computer108does this by sending a tunnel request through network entry point device114(step308ofFIG. 3). In general, this step308uses the same process performed in step202ofFIG. 2. Network entry point device114receives this request from host computer108and, in response, selects one of the plurality of tunnel servers116to which to direct communications with host computer108(step310ofFIG. 3). In the present example, network entry point device114particularly selects tunnel server120(not tunnel server118where communication is no longer possible) to which to direct communications with host computer108.

Thus, tunnel server120receives this new tunnel request from host computer108through network entry point device114(step312ofFIG. 3). In response to receiving the tunnel request, tunnel server120establishes a tunnel connection with host computer108(step314ofFIG. 3) after performing a successful authentication procedure. The tunnel connection established in step314is a “long live” connection used to facilitate the communication of user information between host computer108and wireless communication device130, as well as between host computer108and any other wireless communication devices associated with the application program in host system102.

As with each one of tunnel servers116, tunnel server120is configured to perform the DRP in front end subnetwork124. Thus, tunnel server120uses its DRP to update its local routing table to reflect the newly established tunnel connection (step316ofFIG. 3). The update to the local routing table at tunnel server120involves storing an IP address of tunnel server120in association with a destination IP address to host computer108. Tunnel server120also uses the DRP to broadcast updated routing table information to all other tunnel servers116and router126(step318ofFIG. 3). The broadcasting of routing table information may be performed in response to identifying a newly established connection, or it may be performed periodically over time, or both. When updated routing table information is broadcasted from tunnel server120and received at other tunnel servers116and router126, the other tunnel servers116and router126update their own local routing tables to reflect the new tunnel connection. In general, steps312-318ofFIG. 3use the same processes as steps206-212ofFIG. 2, except that steps312-318are shown as being performed by tunnel server120rather than tunnel server118.

In this way, when a communication of user information from wireless communication device130for host computer108is received at router126, for example, router126examines its local routing table to identify that tunnel server120is now responsible for communications with host computer108. Thus, router126routes the user information to tunnel server120so that tunnel server120may communicate it to host computer108over the newly established tunnel connection. Also, host computer108may again initiate a “pushing” of new and/or updated user information (e.g. e-mail information) to wireless communication device130by sending such information now to tunnel server120over the tunnel connection. Tunnel server120receives this new and/or updated information over the tunnel connection through network entry point device114. Tunnel server120facilitates the communication of the new and/or updated user information to wireless communication device130over the tunnel connection, executing its tunneling protocols and appropriately routing the information.

Although the methods described in relation toFIGS. 2 and 3are described as being performed in connection with a single host computer108and tunnel server118/120, each one of tunnel servers116is actually configured to contemporaneously maintain other tunnel connections with other host computers in the same manner and use, as well as perform the DRP. Also, the methods are contemporaneously performed between other host computers of other host systems and other tunnel servers116in serving network106.

As apparent from the description ofFIGS. 1-3, the front end of the network is advantageously configured to provide for scalability and fault tolerance, as well as for IPv4-to-IPv6 address transitioning, for push-based systems.

FIG. 4is an illustration of a communication system400which highlights the components involved for the second technical aspect of the present application, which relates to the serving network's “back end”. Communication system400generally includes a host computer402and at least one wireless communication device408which communicate user information through a serving network404. Host computer402may reside in and/or communicate through an IPv4 communication network. In addition, host computer402may communicate with serving network404through a public network, such as an Internet (not shown inFIG. 4). Preferably, host computer402has the same environment and functionality as described in relation toFIG. 1(host computer108).

Serving network404, which is an IPv6 communication network, includes a host access network412and a core serving network420. In simplest form, host access network412includes any means for providing a host computer with access and connectivity to serving network404. Preferably, host access network412includes a network entry point device and tunnel servers as described above in relation toFIGS. 1-3(network entry point device114and tunnel servers116ofFIG. 1). Core network420, as its name suggests, is the central core of serving network404which helps facilitate the communication of user information to and from wireless communication device408through one of a plurality of wireless communication networks414.

The plurality of wireless networks414shown inFIG. 4include two (2) wireless communication networks, namely, a wireless communication network406and a wireless communication network432are shown. Wireless network406may be the “home” network of wireless device408. Wireless network406has at least one base station410and a geographic coverage area414within which wireless device408may communicate with base station410. Similarly, wireless network432has at least one base station434and a geographic coverage area436within which wireless device408may communicate with base station434. Wireless network406and serving network404are able to communicate information to each other through a router426which is coupled to core network420. Similarly, wireless network432and serving network404are able to communicate information to each other through a router430which is also coupled to core network420.

In the embodiment described, wireless network406is an IPv6 wireless data communication network and wireless network432is an IPv4 wireless data communication network. Preferably, wireless networks414are packet-switched data communication networks. For example, wireless networks414may be General Packet Radio Service (GPRS) networks. Although only two wireless networks are shown inFIG. 4for clarity and simplicity, a large number of wireless networks exist in actual practice.

Also shown inFIG. 4is a home agent418of a virtual home network416in serving network404. Core network420and virtual home network416are able to communicate information to each other through a router428. In an alternative configuration, virtual home network416and home agent418are not part of serving network404, but rather are outside of serving network404or within IPv6 wireless network406. Home agent418is used and accessed when wireless device408is outside of its home network and information needs to be conveyed to wireless device408.

FIG. 5is a block diagram of relevant portions of wireless network406and wireless device408ofFIG. 4. Wireless network406is also representative of other wireless networks through which wireless device408may communicate. Wireless network406includes base station410(including antenna tower), a base station controller518, a network controller520, and a server522. Server522may be any component or system connected within or to network406. For example, server522may be a service provider system which provides wireless communication services to wireless device408and stores data required for routing a communication signal to wireless device408. Server522may also be a gateway to other networks, including but in no way limited to a telephone network, a local area network, or a wide area network, such as the Internet. Those skilled in the art to which the instant application pertains will appreciate that although only a single server522is shown inFIG. 5, a typical communication network may include further additional network storage, processing, routing and gateway components.

Network controller520normally handles routing of communication signals through network406to a destination device (such as wireless device408). In the context of a packet-switched communication network, such as a GPRS based network, network controller520must determine a location or address of the destination wireless device and route packets for the wireless device through one or more routers or switches (not shown) and eventually to a base station (such as base station410) serving a network coverage area in which the wireless device is currently located.

Base station410and its associated controller518provide wireless network coverage for a particular coverage area commonly referred to as a “cell”. Base station410transmits communication signals to and receives communication signals from wireless devices within its cell via the antenna. Base station410normally performs such functions as modulation and possibly encoding and/or encryption of signals to be transmitted to the mobile device in accordance with particular, usually predetermined, communication protocols and parameters, under the control of base station controller518. Base station410similarly demodulates and possibly decodes and decrypts, if necessary, any communication signals received from wireless device408within its cell. Communication protocols and parameters may vary between different networks. For example, one network may employ a different modulation scheme and operate at different frequencies than other networks.

Those skilled in the art will appreciate that, in actual practice, a wireless network may include hundreds of cells, each of which is served by a distinct base station controller518, base station410and transceiver, depending upon the desired overall expanse of network coverage. All base station controllers and base stations may be connected by multiple switches and routers (not shown), controlled by multiple network controllers, only one of which is shown inFIG. 5. Similarly, as described above, wireless network406may also include a plurality of servers522, including for example storage, routing, processing and gateway components.

Thus, the term “wireless network” is used herein to denote the fixed portions of the network, including RF transceivers, amplifiers, base station controllers, network servers, and servers connected to the network. Those skilled in the art will appreciate that a wireless network may be connected to other systems, possibly including other networks, not explicitly shown inFIG. 5. Such a wireless network will normally be transmitting at the very least some sort of paging and system information on an ongoing basis, even if there is no actual packet data exchanged. Although the wireless network consists of many parts, these parts all work together to result in a certain behavior at the wireless link.

Wireless communication device408preferably has a display508, a keyboard510, an possibly one or more auxiliary user interfaces (UI)512, each of which are coupled to a controller506, which in turn is connected to a modem504and an antenna502. Wireless device408sends communication signals to and receives communication signals through wireless network406over wireless link412via antenna502. Radio modem504performs functions similar to those of base station410, including for example modulation/demodulation and possibly encoding/decoding and encryption/decryption. It is also contemplated that modem504may perform certain functions in addition to those that are performed by base station410. Where the information in a communication signal or packet is confidential and can be decrypted only at a destination mobile device, for example, base station410may not encrypt a received packet which contains information that has been previously encrypted, whereas the radio modem may decrypt such encrypted information. It will be apparent to those skilled in the art that the radio modem will be adapted to the particular wireless network or networks in which the wireless device408is intended to operate.

In most modern communication devices, controller506will be embodied as a central processing unit or CPU running operating system software which is stored in a mobile device memory component (not shown). Controller506will normally control overall operation of the wireless device408, whereas signal processing operations associated with communication functions are typically performed in the modem504. Controller506interfaces with device display508to display received information, stored information, user inputs and the like. Keyboard510, which may be a telephone type keypad or full alphanumeric keyboard, possibly with auxiliary input components, is normally provided on wireless devices for entering data for storage on the wireless device, information for transmission from the wireless device to the network, a telephone number to place a call from the wireless device, commands to be executed on the wireless device, and possibly other or different user inputs.

Thus, the term “wireless device” is used herein in reference to a wireless mobile communication device. The wireless device may consist of a single unit, such as a data communication device, a cellular telephone, a multiple-function communication device with data and voice communication capabilities for example, a personal digital assistant (PDA) enabled for wireless communication, or a computer incorporating an internal modem, but may instead be a multiple-module unit, comprising a plurality of separate components, including but in no way limited to a computer or other device connected to a wireless modem. In the wireless device block diagram ofFIG. 5, for example, modem504and antenna502may be implemented as a radio modem unit that may be inserted into a port on a laptop computer, which would include display508, keyboard510, possibly one or more auxiliary UIs512, and controller506embodied as the computer's CPU. It is also contemplated that a computer or other equipment not normally capable of wireless communications may be adapted to connect to and effectively assume control of the radio modem504and antenna502of a single-unit device such as one of those described above. Although only a single device408is shown inFIG. 5, it will be obvious to those skilled in the art to which this application pertains that many devices, including different types of devices, may be active or operable within a wireless communication network at any time.

FIGS. 6 and 7are flow diagrams which are used to describe a method of facilitating communication of user information between a host computer and a wireless communication device through a serving network. Such methods may be utilized in connection with host computer402, serving network404, and wireless communication device408ofFIG. 4. More particularly,FIG. 6relates to an initial setup or establishment of communication between a wireless communication device and a serving network; andFIG. 7relates to the communication of user information between the host computer and the serving network. Such methods may be embodied in a computer program product which includes a computer storage medium and computer instructions stored on the computer storage medium, where the computer instructions can be executed to perform the methods.

In the following description of the flow diagram ofFIG. 6,FIGS. 4 and 6are referred to in combination. The method begins with wireless device408operating within and through IPv6 wireless network406ofFIG. 4. Since wireless device408is mobile, however, it is eventually moved to a different location outside coverage area414of IPv6 wireless network406. Wireless device408scans all compatible and available wireless networks within which to operate in its new location. Eventually, wireless device408determines that it should operate within coverage area436of IPv4 wireless network432and maintain communications with base station434. Thus, wireless device408“enters” IPv4 wireless network432for communications (step602ofFIG. 6). Wireless device408also detects that it has switched to this IPv4 wireless network (step604). Wireless device408may detect this change by signals available in the wireless network, for example, the device may determine that it has roamed to another provider. When roaming to another provider, the device can request IPv6 and IPv4 connectivity to determine which is supported.

When wireless device408enters IPv4 wireless network432, IPv4 wireless network432sees to assigning a temporary IPv4 address to wireless device408. Once assigned, wireless device408receives the temporary IPv4 address through IPv4 wireless network432(step606ofFIG. 6). The IPv4 address assignment may be performed using, for example, a Dynamic Host Configuration Protocol (DHCP) server. DHCP is a well-known protocol which uses a defined pool of IP addresses (i.e. a “scope”) which are temporarily assigned or “leased” to clients. Addresses are leased for limited periods of time such that an IP address that is not used lease duration is put back into the unallocated pool. Not only are IP addresses handed out, but all related configuration settings like the subnet mask, default router, DNS server, that are required to make TCP/IP work correctly.

Wireless device408then transmits a request for a temporary IPv6 address through IPv4 wireless network432(step608ofFIG. 6). This request is delivered to router430of serving network404which handles the request. In response, router430identifies or determines a temporary IPv6 address to assign to wireless device408(step610ofFIG. 6). Router430sends a response message to wireless device408which includes this newly assigned temporary IPv6 address (step612ofFIG. 6).

Preferably, router430identifies or determines a temporary IPv6 address for wireless device408based on the temporary IPv4 address of wireless device408. More particularly, router430determines a temporary IPv6 address by embedding the temporary IPv4 address within additional IPv6 address information. Thus, the new temporary IPv6 address for wireless device408preferably has the temporary IPv4 address embedded within it.

More preferably, router430operates in accordance with an Intra-Site Automatic Tunnel Addressing Protocol (ISATAP) standard and identifies a temporary IPv6 address in accordance with ISATAP. Referring toFIG. 8, the format of a temporary IPv6 address802using the ISATAP is shown. The format of temporary IPv6 address802includes a prefix data field804, a suffix data field808, and another data field806. Suffix data field808is for an IPv4 address, which in this embodiment is the temporary IPv4 address previously assigned to wireless device408through IPv4 wireless network432.

In general, ISATAP provides for the connection of IPv6 hosts and routers within IPv4 sites. More specifically, ISATAP provides a transition mechanism for enabling an incremental deployment of IPv6 by treating an IPv4 site's IPv4 infrastructure as a Non-Broadcast Multiple Access (NBMA) link layer. As described, ISATAP mechanisms use an IPv6 interface identifier format that embeds an IPv4 address (and tunneling an IPv6 payload in an IPv4 packet); this enables automatic IPv6-in-IPv4 tunneling within a site, whether that site uses globally-assigned or private IPv4 addresses. One document which explains the protocol in detail is the ISATAP Internet-Draft, draft-ietf-ngtrans-isatap-04.txt, of F. Templin, 18 Apr. 2002.

Referring back to the flow diagram ofFIG. 6, wireless device408receives the newly assigned temporary IPv6 address from router426(step614ofFIG. 6). After receiving it, wireless device408sends a message to notify the network of its new temporary IPv6 address (step616ofFIG. 6). This message may be what is referred to as a “Binding Update” (BU) message. The Binding Update message is sent through virtual home network416and received at home agent418. Home Agent418stores the temporary IPv6 address in association with the permanent IPv6 address of wireless device408(step618ofFIG. 6). Thus, the temporary IPv6 address of wireless device408becomes a Care-Of Address (COA) of the device at home agent418.

The method continues using the flow diagram ofFIG. 7, where the description makes reference toFIGS. 4 and 7in combination. The method continues where a communicating device, such as host computer402, has particular information (e.g. e-mail information) to be pushed to wireless device408. With its connection to serving network404already established, host computer408sends data packets addressed to the permanent IPv6 address of wireless device408(step702ofFIG. 7). The data packets addressed to the permanent IPv6 address of wireless device408are intercepted and received at home agent418in virtual home network416(step704ofFIG. 7). Home agent418readdresses these data packets with the Care-Of Address (COA) (step706ofFIG. 7), which is in this application the temporary IPv6 address generated from wireless device408operating in IPv4 wireless network432. Thus, the data packets are readdressed with the temporary IPv6 address of wireless device408and sent out for delivery to wireless device408.

Router430receives the data packets addressed to the temporary IPv6 address (step708ofFIG. 7). Router430encapsulates these data packets with the temporary IPv4 address of wireless device408previously assigned to wireless device408through wireless network432(step710ofFIG. 7). Router430sends these encapsulated data packets out through IPv4 wireless network432(step710). Preferably, this step is performed in accordance with the ISATAP. The wireless device408receives the data packets addressed to its temporary IPv4 address and processes the information (e.g. the e-mail information) contained therein.

When wireless device408leaves IPv4 wireless network432and returns to IPv6 wireless network406, for example, no longer needed are the temporary IPv4 address, the temporary IPv6 address, and Care-Of-Addressing. In IPv6 wireless network406, wireless device408typically receives data packets addressed directly with its permanent IPv6 address. Router426(which facilitates communication between serving network404and IPv6 wireless network406) performs conventional routing functions, and does not need to encapsulate data packets or operate in accordance with ISATAP.

As apparent, the “back end” of serving network404provides advantages as an IPv4-to-IPv6 transition mechanism. The inventive methodologies may be employed in connection with existing network components and methods. In the preferred implementation using Non-Broadcast Multiple Access (NBMA) techniques, the wireless link is not overburdened with overhead to accommodate for IPv4-to-IPv6 transition.

Finally, the front end (FIGS. 1-3) and the back end (FIGS. 4-8) of the serving network together provide a superior solution for IPv4-to-IPv6 address transitioning in systems that push information to wireless communication devices.

It is to be understood that the above is merely a description of preferred embodiments of the invention and that various changes, alterations, and variations may be made without departing from the true spirit and scope of the invention as set for in the appended claims. None of the terms or phrases in the specification and claims has been given any special particular meaning different from the plain language meaning to those skilled in the art, and therefore the specification is not to be used to define terms in an unduly narrow sense.