System and method for signaling and data tunneling in a peer-to-peer environment
First Claim
Patent Images
1. A method for establishing a peer-to-peer communication session between first and second endpoints, the method comprising:
- determining, by a first endpoint, that a first message protocol is not available for use in sending a first message to the second endpoint, wherein the determining identifies that none of a private interface, a public interface, and a relay interface of the first endpoint are available in response to not receiving a response to the first message sent using the first message protocol via the private interface, the public interface, and the relay interface, wherein the private interface corresponds to a local address assigned to the first endpoint by a network address translation (NAT) device in a local network, the public interface corresponds to a public address of the NAT device that represents the first endpoint in networks outside of the local network, and the relay interface corresponds to a reflector located outside of the local network, and wherein the determining identifies that the NAT device blocks all messages transmitted using the first message protocol;
in response to the determining, sending, by the first endpoint, a request for a first connection with a tunneling server, wherein the first connection uses a second message protocol allowed by the NAT device and provides a first tunnel between the first endpoint and the tunneling server;
sending, by the first endpoint, a request to the tunneling server via the first tunnel, provided by the first connection, for at least first and second shadow ports on the tunneling server;
receiving, by the first endpoint, a shadow Internet Protocol (IP) address and the first and second shadow ports from the tunneling server via the first tunnel; and
sending, by the first endpoint via the public interface, the first message to the second endpoint via the shadow IP address and the first and second shadow ports of the first tunnel.
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 use a tunneling server to bypass a network address translation (NAT) device that is blocking messages to an endpoint on the other side of the NAT device.
241 Citations
14 Claims
-
1. A method for establishing a peer-to-peer communication session between first and second endpoints, the method comprising:
-
determining, by a first endpoint, that a first message protocol is not available for use in sending a first message to the second endpoint, wherein the determining identifies that none of a private interface, a public interface, and a relay interface of the first endpoint are available in response to not receiving a response to the first message sent using the first message protocol via the private interface, the public interface, and the relay interface, wherein the private interface corresponds to a local address assigned to the first endpoint by a network address translation (NAT) device in a local network, the public interface corresponds to a public address of the NAT device that represents the first endpoint in networks outside of the local network, and the relay interface corresponds to a reflector located outside of the local network, and wherein the determining identifies that the NAT device blocks all messages transmitted using the first message protocol; in response to the determining, sending, by the first endpoint, a request for a first connection with a tunneling server, wherein the first connection uses a second message protocol allowed by the NAT device and provides a first tunnel between the first endpoint and the tunneling server; sending, by the first endpoint, a request to the tunneling server via the first tunnel, provided by the first connection, for at least first and second shadow ports on the tunneling server; receiving, by the first endpoint, a shadow Internet Protocol (IP) address and the first and second shadow ports from the tunneling server via the first tunnel; and sending, by the first endpoint via the public interface, the first message to the second endpoint via the shadow IP address and the first and second shadow ports of the first tunnel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. An endpoint comprising:
-
a network interface; a controller coupled to the network interface; and a memory coupled to the controller, the memory having a plurality of instructions stored thereon for execution by the controller, the instructions including instructions for; determining whether a first message protocol is available for use in sending a first message to a second endpoint in a hybrid peer-to-peer network, wherein the determining identifies whether any of a private interface, a public interface, and a relay interface of the first endpoint are available when using the first message protocol, and wherein the private interface corresponds to a local address assigned to the first endpoint by a network address translation (NAT) device in a local network, the public interface corresponds to a public address of the NAT device that represents the first endpoint in networks outside of the local network, and the relay interface corresponds to a reflector located outside of the local network; in response to not receiving a response to the first message sent using the first message protocol via the private interface, the public interface, and the relay interface, determining that the NAT device blocks all messages transmitted using the first message protocol; establishing a tunnel with a tunneling server that is located outside of the local network using a second message protocol allowed by the NAT device when it is determined that the first message protocol is not available for use in sending the first message to the second endpoint; obtaining a shadow Internet Protocol (IP) address and a plurality of shadow ports from the tunneling server; sending, via the public interface, the first message to the second endpoint via the shadow IP address and the first and second shadow ports of the tunnel; and receiving a second message from the second endpoint via the tunnel. - View Dependent Claims (10, 11, 12, 13, 14)
-
Specification