System and method for traversing a NAT device for peer-to-peer hybrid communications
First Claim
Patent Images
1. A method for enabling a first endpoint to traverse a network address translation (NAT) device associated with a second endpoint in a peer-to-peer communications system, wherein the NAT device includes a pinhole maintained between the NAT device and a server, the method comprising:
- determining whether a message sent to the second endpoint from an external source will only pass through the NAT device if the second endpoint has first sent a message to the external source;
if the determining indicates that the second endpoint must first send a message, sending a first message to a stateless reflector for reflection to the second endpoint, wherein the first message includes a first message header identifying the stateless reflector as the message destination and the first endpoint as the message source and a second message header identifying the second endpoint as the message destination and the server as the message source;
modifying the first message header by the stateless reflector, wherein the modifying uses the second message header and inserts the second endpoint as the message destination and the server as the message source; and
sending the modified first message to the second endpoint via the pinhole in the NAT device, wherein the stateless reflector reflects the first message using only information from the first message header and the second message header contained in the first message.
1 Assignment
0 Petitions
Accused Products
Abstract
An improved system and method are disclosed for peer-to-peer communications. In one example, the method enables an endpoint to traverse a NAT device using a stateless reflector.
-
Citations
20 Claims
-
1. A method for enabling a first endpoint to traverse a network address translation (NAT) device associated with a second endpoint in a peer-to-peer communications system, wherein the NAT device includes a pinhole maintained between the NAT device and a server, the method comprising:
-
determining whether a message sent to the second endpoint from an external source will only pass through the NAT device if the second endpoint has first sent a message to the external source; if the determining indicates that the second endpoint must first send a message, sending a first message to a stateless reflector for reflection to the second endpoint, wherein the first message includes a first message header identifying the stateless reflector as the message destination and the first endpoint as the message source and a second message header identifying the second endpoint as the message destination and the server as the message source; modifying the first message header by the stateless reflector, wherein the modifying uses the second message header and inserts the second endpoint as the message destination and the server as the message source; and sending the modified first message to the second endpoint via the pinhole in the NAT device, wherein the stateless reflector reflects the first message using only information from the first message header and the second message header contained in the first message.
-
-
2. A method for enabling a peer-to-peer first endpoint to communicate with a peer-to-peer second endpoint, wherein the second endpoint is associated with a network address translation (NAT) device, the method comprising:
-
performing, by the first endpoint, a login process with an access server, wherein the login process sends an Internet Protocol (IP) address of the first endpoint and an external port number of the first endpoint to the access server; receiving, by the first endpoint, a profile directly from the access server in response to performing the login process, wherein the profile includes a status of the second endpoint, an IP address of the NAT device, an external port number of the NAT device, and a NAT type of the NAT device, wherein the NAT type of the second endpoint indicates that the second endpoint can only be contacted by the first endpoint via a stateless reflector; and sending, by the first endpoint, a notification message to the stateless reflector for reflection to the second endpoint, wherein the notification message includes a first header identifying the stateless reflector as the message destination and the first endpoint as the message source and a second header identifying the second endpoint as the message destination and the access server as the message source, wherein the stateless reflector replaces the first header with the second header before forwarding the notification message to the second endpoint. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19)
-
-
20. A first endpoint device comprising:
-
a hardware platform; and an architecture having a graphical user interface (GUI) configured to provide user access to an endpoint engine; an operating system configured to provide access to the hardware platform; and the endpoint engine coupled to the GUI and the operating system, the endpoint engine having a plurality of functional components configured for; performing a login process with an access server, wherein the login process sends an Internet Protocol (IP) address of the first endpoint device and an external port number of the first endpoint device to the access server; receiving a profile directly from the access server in response to the login process, wherein the profile includes a status of a second endpoint device associated with a network address translation (NAT) device, an IP address of the NAT device, an external port number of the NAT device, and a NAT type of the NAT device, wherein the NAT type of the second endpoint device indicates that the second endpoint device can only be contacted by the first endpoint device via a stateless reflector; and sending a notification message to the stateless reflector for reflection to the second endpoint device, wherein the notification message includes a first header identifying the stateless reflector as the message destination and the first endpoint device as the message source and a second header identifying the second endpoint device as the message destination and the access server as the message source, wherein the stateless reflector replaces the first header with the second header before forwarding the notification message to the second endpoint device.
-
Specification