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 message header identifying the stateless reflector as the message destination and the first endpoint as the message source;
modifying the message header by the stateless reflector, wherein the modifying 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.
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.
96 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 message header identifying the stateless reflector as the message destination and the first endpoint as the message source; modifying the message header by the stateless reflector, wherein the modifying 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. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A stateless reflector for a communications system, the stateless reflector comprising:
-
a processor; a memory accessible to the processor; and a plurality of instructions stored on the memory for execution by the processor, the instructions including; instructions for receiving a message from a first endpoint, wherein the message has a first header portion identifying a first endpoint as the message source and the stateless reflector as the message destination, a second header portion identifying a server as the message source and a second endpoint as the message destination, and a payload portion; instructions for modifying the message source and destination of the first header portion to equal the message source and destination of the second header portion; and instructions for sending the modified message to the second endpoint. - View Dependent Claims (14)
-
-
15. A system for peer-to-peer communications, the system comprising:
-
a first endpoint coupled to a packet-based communications network and separated from the network by a network address translation (NAT) device having an internal address for communication with the first endpoint and an external address for communication with the network, wherein the NAT device includes a pinhole maintained with a server on the network; a second endpoint coupled to the network, the second endpoint configured to execute a plurality of instructions stored therein for establishing a communication session with the second endpoint, the instructions including; instructions for determining whether the NAT device is of a restricted type, port restricted type, or symmetric type, instructions for, if the NAT device is of a restricted type, port restricted type, or symmetric type, sending a first message to a stateless reflector for reflection to the first endpoint, wherein the first message includes a first header identifying the stateless reflector as the destination and the second endpoint as the source, and a second header identifying the first endpoint as the destination and the server as the source; instructions for receiving a second message directly from the first endpoint in response to the first message; and instructions for sending additional messages directly to the first endpoint after receiving the second message. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification