Allowing IPv4 clients to communicate over an IPv6 network when behind a network address translator with reduced server workload
First Claim
1. In a network environment that includes an IPv6 Internet in which a plurality of IPv6 clients may communicate using IPv6, an IPv4 Internet in which a plurality of IPv4 clients may communicate using IPv4 and including a server and a relay that are each capable of communicating over both the IPv4 Internet and the IPv6 Internet, the network environment further including a private network of one or more IPv4 clients that are separated from the other portions of the IPv4 Internet by a network address translator, a method for an IPv4 client within the private network establishing communication with an IPv6 client in the IPv6 Internet despite the IPv4 client being configured to communicate using IPv4, but not IPv6, despite the IPv4 client being behind the network address translator, and while reducing the workload of the server, the method comprising the following:
- an act of the IPv4 client obtaining an IPv6 address;
an act of the IPv4 client generating an IPv4 message that includes an IPv4 header that includes an IPv4 address and a port of the IPv4 client as a source IPv4 address and a source port, respectively, the IPv4 header further including an IPv4 address and a port of the server as a destination IPv4 address and destination port, respectively, the IPv4 message further including an IPv4 payload that includes the IPv6 address of the IPv4 client and the IPv6 address of the IPv6 client in the IPv6 Internet;
an act of the IPv4 client transmitting the IPv4 message to the server;
an act of the network address translator intercepting the IPv4 message and replacing the source IPv4 address and the source port with the IPv4 address and port, respectively, of the network address translator to thereby generate a first modified IPv4 message;
an act of the network address forwarding the first modified IPv4 message to the server;
an act of the server computer system receiving the first modified IPv4 message and generating an IPv6 message that is derived from the first modified IPv4 message, the IPv6 message including the IPv6 address of the IPv4 client that was in the IPv4 payload of the IPv4 message as a source IPv6 address, the IPv6 message further including the IPv6 address of the IPv6 client that was in the IPv4 payload of the IPv4 message as a destination IPv6 address of the IPv6 message;
an act of the server transmitting the IPv6 message to the IPv6 client;
an act of the IPv6 client receiving the IPv6 message and generating an IPv6 response to the IPv6 message using the source IPv6 address included in IPv6 message as the destination IPv6 address, and using the destination IPv6 address included in the IPv6 message as the source IPv6 address;
an act of the IPv6 client dispatching the IPv6 response to the IPv4 client;
an act of the relay intercepting the IPv6 response and determining that the destination IPv6 address included in the IPv6 response corresponds to an IPv4 client;
an act of the relay identifying the IPv4 address and the port of the server based on the destination IPv6 address in the IPv6 response;
an act of the relay constructing an IPv4 response based on the IPv6 response, the IPv4 response including an IPv4 address and a port of the relay as a source IPv4 address and a source port, respectively, an IPv4 address and a port of the server as a destination IPv4 address a destination port, respectively, and having an IPv4 payload that includes the lPv6 address of the lPv6 client and the IPv6 address of the IPv4 client;
an act of the relay transmitting the IPv4 response to the server;
an act of the server receiving the IPv4 response and replacing the source IPv4 address and the source port in the IPv4 response with the IPv4 address and the port, respectively, of the server, and replacing the destination IPv4 address and the destination port in the IPv4 response with the IPv4 address and the port, respectively, of the network address translator, and including in the payload of the IPv4 response an identification of the IPv4 address and port of the relay to generate a first modified IPv4 response; and
an act of the server transmitting the first modified IPv4 response to the network address translator;
an act of the network address translator receiving the first modified IPv4 response and replacing the destination IP address and destination port in the first modified IPv4 response with the IPv4 address and the port of the IPv4 client, respectively, to generate a second modified IPv4 response;
an act of the network address translator transmitting the second modified IPv4 response to the client; and
an act of the IPv4 client receiving the second modified IPv4 response.
2 Assignments
0 Petitions
Accused Products
Abstract
Mechanisms that allow IPv4 and IPv6 clients to communicate with reduced server workload. The IPv4 client initiates communication by routing an IPv4 message to a server. The server sends a similar IPv6 message to the lPv6 client. A relay intercepts the IPv6 response, generates an IPv4 response, and forwards that IPv4 response to the IPv4 client if the NAT is a cone NAT. Otherwise, the relay sends the IPv4 response to the server. The server includes the IPv4 address of the relay in the response and sends the response to the IPv4 client. The IPv4 client then communicates with the IPv6 client using the relay. The IPv6 client may also initiate communication with the IPv4 client by sending an IPv6 message to the relay where it is queued.
-
Citations
13 Claims
-
1. In a network environment that includes an IPv6 Internet in which a plurality of IPv6 clients may communicate using IPv6, an IPv4 Internet in which a plurality of IPv4 clients may communicate using IPv4 and including a server and a relay that are each capable of communicating over both the IPv4 Internet and the IPv6 Internet, the network environment further including a private network of one or more IPv4 clients that are separated from the other portions of the IPv4 Internet by a network address translator, a method for an IPv4 client within the private network establishing communication with an IPv6 client in the IPv6 Internet despite the IPv4 client being configured to communicate using IPv4, but not IPv6, despite the IPv4 client being behind the network address translator, and while reducing the workload of the server, the method comprising the following:
-
an act of the IPv4 client obtaining an IPv6 address;
an act of the IPv4 client generating an IPv4 message that includes an IPv4 header that includes an IPv4 address and a port of the IPv4 client as a source IPv4 address and a source port, respectively, the IPv4 header further including an IPv4 address and a port of the server as a destination IPv4 address and destination port, respectively, the IPv4 message further including an IPv4 payload that includes the IPv6 address of the IPv4 client and the IPv6 address of the IPv6 client in the IPv6 Internet;
an act of the IPv4 client transmitting the IPv4 message to the server;
an act of the network address translator intercepting the IPv4 message and replacing the source IPv4 address and the source port with the IPv4 address and port, respectively, of the network address translator to thereby generate a first modified IPv4 message;
an act of the network address forwarding the first modified IPv4 message to the server;
an act of the server computer system receiving the first modified IPv4 message and generating an IPv6 message that is derived from the first modified IPv4 message, the IPv6 message including the IPv6 address of the IPv4 client that was in the IPv4 payload of the IPv4 message as a source IPv6 address, the IPv6 message further including the IPv6 address of the IPv6 client that was in the IPv4 payload of the IPv4 message as a destination IPv6 address of the IPv6 message;
an act of the server transmitting the IPv6 message to the IPv6 client;
an act of the IPv6 client receiving the IPv6 message and generating an IPv6 response to the IPv6 message using the source IPv6 address included in IPv6 message as the destination IPv6 address, and using the destination IPv6 address included in the IPv6 message as the source IPv6 address;
an act of the IPv6 client dispatching the IPv6 response to the IPv4 client;
an act of the relay intercepting the IPv6 response and determining that the destination IPv6 address included in the IPv6 response corresponds to an IPv4 client;
an act of the relay identifying the IPv4 address and the port of the server based on the destination IPv6 address in the IPv6 response;
an act of the relay constructing an IPv4 response based on the IPv6 response, the IPv4 response including an IPv4 address and a port of the relay as a source IPv4 address and a source port, respectively, an IPv4 address and a port of the server as a destination IPv4 address a destination port, respectively, and having an IPv4 payload that includes the lPv6 address of the lPv6 client and the IPv6 address of the IPv4 client;
an act of the relay transmitting the IPv4 response to the server;
an act of the server receiving the IPv4 response and replacing the source IPv4 address and the source port in the IPv4 response with the IPv4 address and the port, respectively, of the server, and replacing the destination IPv4 address and the destination port in the IPv4 response with the IPv4 address and the port, respectively, of the network address translator, and including in the payload of the IPv4 response an identification of the IPv4 address and port of the relay to generate a first modified IPv4 response; and
an act of the server transmitting the first modified IPv4 response to the network address translator;
an act of the network address translator receiving the first modified IPv4 response and replacing the destination IP address and destination port in the first modified IPv4 response with the IPv4 address and the port of the IPv4 client, respectively, to generate a second modified IPv4 response;
an act of the network address translator transmitting the second modified IPv4 response to the client; and
an act of the IPv4 client receiving the second modified IPv4 response. - View Dependent Claims (2)
-
-
3. In a network environment that includes an IPv6 Internet in which a plurality of IPv6 clients may communicate using IPv6, an IPv4 Internet in which a plurality of IPv4 clients may communicate using IPv4 and including a server and a relay that are each capable of communicating over both the IPv4 Internet and the IPv6 Internet, the network environment further including a private network of one or more IPv4 clients that are separated from the other portions of the IPv4 Internet by a network address translator, a method for the server helping an IPv4 client within the private network establish communication with an IPv6 client in the IPv6 Internet despite the IPv4 client being configured to communicate using IPv4, but not IPv6, despite the IPv4 client being behind the network address translator, and while reducing the workload of the server, the method comprising the following:
-
an act of the server computer system receiving an IPv4 message that originated from the IPv4 client, and to which address mapping was performed by the network address translator, the IPv4 message including an IPv4 header that includes an IPv4 address and a port of the network address translator as a source IPv4 address and a source port, respectively, the IPv4 header further including an IPv4 address and a port of the server as a destination IPv4 address and destination port, respectively, the IPv4 message further including an IPv4 payload that includes an IPv6 address of the IPv4 client and an IPv6 address of the IPv6 client in the IPv6 Internet;
an act of the server generating an IPv6 message that is derived from the first modified IPv4 message, the IPv6 message including the IPv6 address of the IPv4 client that was in the IPv4 payload of the IPv4 message as a source IPv6 address, the IPv6 message further including the IPv6 address of the IPv6 client that was in the IPv4 payload of the IPv4 message as a destination IPv6 address of the lPv6 message;
an act of the server transmitting the IPv6 message to the IPv6 client;
an act of the server receiving an IPv4 response to the IPv6 message from the relay computer system, the IPv4 response including an IPv4 address and a port of the relay as a source IPv4 address and a source port, respectively, an IPv4 address and a port of the server as a destination IPv4 address and a destination port, respectively, and having an IPv4 payload that includes the IPv6 address of the IPv6 client and the IPv6 address of the IPv4 client;
an act of the server replacing the source IPv4 address and the source port in the IPv4 response with the IPv4 address and the port, respectively, of the server, and replacing the destination IPv4 address and the destination port in the IPv4 response with the IPv4 address and the port, respectively, of the network address translator, and including in the payload of the IPv4 response an identification of the IPv4 address and port of the relay to generate a first modified IPv4 response; and
an act of the server transmitting the first modified IPv4 response to the network address translator so that the network address translator can provide the IPv4 response along with an identification of the IPv4 address and port of the replay so that the IPv4 can communicate directly with the relay for future communications to the IPv6 client. - View Dependent Claims (4)
-
-
5. In a network environment that includes an IPv6 Internet in which a plurality of IPv6 clients may communicate using IPv6, an IPv4 Internet in which a plurality of IPv4 clients may communicate using IPv4 and including a server and a relay that are each capable of communicating over both the IPv4 Internet and the IPv6 Internet, the network environment further including a private network of one or more IPv4 clients that are separated from the other portions of the IPv4 Internet by a network address translator, a method for the relay helping an IPv4 client within the private network to establish communication with an IPv6 client in the IPv6 Internet despite the IPv4 client being configured to communicate using IPv4, but not IPv6, despite the IPv4 client being behind the network address translator, and while reducing the workload of the server, the method comprising the following:
-
an act of the relay intercepting an IPv6 response from an IPv6 client, the IPv6 response being in response to an IPv4 message that originated from an IPv4 client in the private network, wherein the IPv6 designates an IPv6 address of the IPv4 client as a destination IPv6 address, and an IPv6 address of the IPv6 client as a source IPv6 address;
an act of the relay determining that the destination IPv6 address included in the IPv6 response corresponds to an IPv4 client;
an act of the relay identifying the IPv4 address and the port of the server based on the destination IPv6 address in the IPv6 response;
an act of the relay constructing an IPv4 response based on the IPv6 response, the IPv4 response including an IPv4 address and a port of the relay as a source IPv4 address and a source port, respectively, an IPv4 address and a port of the server as a destination IPv4 address a destination port, respectively, and having an IPv4 payload that includes the IPv6 address of the IPv6 client and the IPv6 address of the IPv4 client; and
an act of the relay transmitting the IPv4 response to the server. - View Dependent Claims (6)
-
-
7. In a network environment that includes an IPv6 Internet in which a plurality of IPv6 clients may communicate using IPv6, an IPv4 Internet in which a plurality of IPv4 clients may communicate using IPv4 and including a server and a relay that are each capable of communicating over both the IPv4 Internet and the IPv6 Internet, the network environment further including a private network of one or more IPv4 clients that are separated from the other portions of the IPv4 Internet by a network address translator, a method for an IPv4 client within the private network establishing communication with an IPv6 client in the IPv6 Internet despite the IPv4 client being configured to communicate using IPv4, but not IPv6, despite the IPv4 client being behind the network address translator, and while reducing the workload of the server, the method comprising the following:
-
an act of the IPv4 client obtaining an IPv6 address;
an act of the IPv4 client generating an IPv4 message that includes an IPv4 header that includes an IPv4 address and a port of the IPv4 client as a source IPv4 address and a source port, respectively, the IPv4 header further including an IPv4 address and a port of the server as a destination IPv4 address and destination port, respectively, the IPv4 message further including an IPv4 payload that includes the IPv6 address of the IPv4 client and the IPv6 address of the IPv6 client in the IPv6 Internet;
an act of the IPv4 client transmitting the IPv4 message to the server;
an act of the network address translator intercepting the IPv4 message and replacing the source IPv4 address and the source port with the IPv4 address and port, respectively, of the network address translator to thereby generate a first modified IPv4 message;
an act of the network address forwarding the first modified IPv4 message to the server;
an act of the server computer system receiving the first modified IPv4 message and generating an IPv6 message that is derived from the first modified IPv4 message, the IPv6 message including the IPv6 address of the IPv4 client that was in the IPv4 payload of the IPv4 message as a source IPv6 address, the IPv6 message further including the IPv6 address of the IPv6 client that was in the IPv4 payload of the IPv4 message as a destination IPv6 address of the IPv6 message;
an act of the server transmitting the IPv6 message to the IPv6 client;
an act of the IPv6 client receiving the IPv6 message and generating an IPv6 response to the IPv6 message using the source IPv6 address included in IPv6 message as the destination IPv6 address, and using the destination IPv6 address included in the IPv6 message as the source IPv6 address;
an act of the IPv6 client dispatching the IPv6 response to the IPv4 client;
an act of the relay intercepting the IPv6 response and determining that the destination IPv6 address included in the IPv6 response corresponds to an IPv4 client;
an act of the relay determining that the network address translator behind which the IPv4 client resides is a cone NAT;
an act of the relay constructing an IPv4 response based on the IPv6 response, the IPv4 response including an IPv4 address and a port of the relay as a source IPv4 address and a source port, respectively, an IPv4 address and a port of the lPv4 client as a destination IPv4 address a destination port, respectively, and having an IPv4 payload that includes the IPv6 address of the lPv6 client and the IPv6 address of the IPv4 client; and
an act of the relay transmitting the IPv4 response to the IPv4 client. - View Dependent Claims (8, 9)
-
-
10. In a network environment that includes an IPv6 Internet in which a plurality of IPv6 clients may communicate using IPv6, an IPv4 Internet in which a plurality of IPv4 clients may communicate using IPv4 and including a server and a relay that are each capable of communicating over both the IPv4 Internet and the IPv6 Internet, the network environment further including a private network of one or more IPv4 clients that are separated from the other portions of the IPv4 Internet by a network address translator, a method for the relay helping an IPv4 client within the private network to establish communication with an IPv6 client in the IPv6 Internet despite the IPv4 client being configured to communicate using IPv4, but not IPv6, despite the IPv4 client being behind the network address translator, and while reducing the workload of the server, the method comprising the following:
-
an act of the relay intercepting an IPv6 response from an IPv6 client, the IPv6 response being in response to an IPv4 message that originated from an IPv4 client in the private network, wherein the IPv6 designates an IPv6 address of the IPv4 client as a destination IPv6 address, and an IPv6 address of the IPv6 client as a source IPv6 address;
an act of the relay determining that the destination IPv6 address included in the IPv6 response corresponds to an IPv4 client;
an act of the relay determining that the network address translator behind which the IPv4 client resides is a cone NAT;
an act of the relay constructing an IPv4 response based on the IPv6 response, the IPv4 response including an IPv4 address and a port of the relay as a source IPv4 address and a source port, respectively, an IPv4 address and a port of the IPv4 client as a destination IPv4 address a destination port, respectively, and having an IPv4 payload that includes the IPv6 address of the IPv6 client and the IPv6 address of the IPv4 client; and
an act of the relay transmitting the IPv4 response to the IPv4 client. - View Dependent Claims (11)
-
-
12. A computer-readable media having thereon a data structure for use in a network environment that includes an IPv6 Internet in which a plurality of IPv6 clients may communicate using IPv6, an IPv4 Internet in which a plurality of IPv4 clients may communicate using IPv4 and including a server and a relay that are each capable of communicating over both the IPv4 Internet and the IPv6 Internet, the network environment further including a private network of one or more IPv4 clients that are separated from the other portions of the IPv4 Internet by a network address translator, a data structure representing an IPv6 address of an IPv4 client within the private network, the data structure facilitating communication between the IPv4 client and an IPv6 client in the IPv6 Internet, the data structure comprising the following:
-
a first field that represents that the IPv6 address corresponds to the IPv4 client;
a second field that represents the IPv4 address of the server;
a third field that represents an IPv4 address of the IPv4 client;
a fourth field that represents a port of the IPv4 client; and
a fifth field that represents whether network address translator is a cone NAT.
-
-
13. In a network environment that includes an IPv6 Internet in which a plurality of IPv6 clients may communicate using IPv6, an IPv4 Internet in which a plurality of IPv4 clients may communicate using IPv4 and including a server and a relay that are each capable of communicating over both the IPv4 Internet and the IPv6 Internet, the network environment further including a private network of one or more IPv4 clients that are separated from the other portions of the IPv4 Internet by a network address translator, a method for an IPv6 client in the IPv6 Internet establishing communication with an IPv4 client within the private network despite the IPv4 client being configured to communicate using IPv4, but not IPv6, despite the IPv4 client being behind the network address translator, and while reducing the workload of the server, the method comprising the following:
-
an act of the IPv6 client dispatching a IPv6 message to the IPv4 client, the IPv6 message including an IPv6 address of the IPv6 client as the source IPv6 address, and including an IPv6 address of the IPv4 client as the destination IPv6 address;
an act of the relay intercepting the IPv6 message and determining that the destination IPv6 address included in the IPv6 message corresponds to an IPv4 client;
an act of the relay identifying an IPv4 address and the port of the server based on the destination IPv6 address in the IPv6 message;
an act of the relay queuing at least an IPv6 payload of the IPv6 message an act of the relay constructing an IPv4 message based on the IPv6 message, the IPv4 message including an IPv4 address and a port of the relay as a source IPv4 address and a source port, respectively, an IPv4 address and a port of the server as a destination IPv4 address a destination port, respectively, and having an IPv4 payload that includes the IPv6 address of the IPv6 client and the IPv6 address of the IPv4 client;
an act of the relay transmitting the IPv4 message to the server while the IPv6 payload remains queued at the relay;
an act of the server receiving the IPv4 message and replacing the source IPv4 address and the source port in the IPv4 message with the IPv4 address and the port, respectively, of the server, and replacing the destination IPv4 address and the destination port in the IPv4 message with the IPv4 address and the port, respectively, of the network address translator, and including in the payload of the IPv4 message an identification of the IPv4 address and port of the relay to generate a first modified IPv4 message; and
an act of the server transmitting the first modified IPv4 message to the network address translator;
an act of the network address translator receiving the first modified IPv4 message and replacing the destination IP address and destination port in the first modified IPv4 message with the IPv4 address and the port of the IPv4 client, respectively, to generate a second modified IPv4 message;
an act of the network address translator transmitting the second modified IPv4 message to the IPv4 client;
an act of the IPv4 client receiving the second modified IPv4 message;
an act of the IPv4 client generating an IPv4 response to the second modified IPv4 message, the IPv4 response including the IPv4 address and the port of the IPv4 client as a source address and port, and including the IPv4 address and the port of the relay as a destination address and port;
an act of the IPv4 client dispatching the IPv4 response to the relay;
an act of the network address translator intercepting the IPv4 response and replacing the source IPv4 address and the source port with the IPv4 address and port, respectively, of the network address translator to thereby generate a first modified IPv4 response;
an act of the network address forwarding the first modified IPv4 response to the relay;
an act of the relay dequeuing the IPv6 payload in response to having received the first modified IPv4 response;
an act of the relay constructing a second IPv4 message that includes the IPv4 address and the port of the relay as the source IPv4 address and port, and that includes the mapped IPv4 address and port of the IPv4 client as the destination IPv4 address and port, the second IPv4 message further including the IPv6 address of the IPv6 client, the IPv6 address of the IPv4 client, and the IPv6 payload;
an act of the relay dispatching the second IPv4 message to the IPv4 client;
an act of the network address translator receiving the second lPv4 message and replacing the destination IP address and destination port in the second IPv4 message with the IPv4 address and the port of the IPv4 client, respectively, to generate a modified version of the second IPv4 message; and
an act of the network address translator transmitting the modified version of the second IPv4 message to the IPv4 client.
-
Specification