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 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, and wherein the NAT device blocks the first message protocol;
sending, by the first endpoint, a request for a first connection with a tunneling server, wherein the first connection is based on 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 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, a first message to the second endpoint via 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.
-
Citations
20 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 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, and wherein the NAT device blocks the first message protocol; sending, by the first endpoint, a request for a first connection with a tunneling server, wherein the first connection is based on 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 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, a first message to the second endpoint via the first tunnel. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A method for use by a tunneling server in a peer-to-peer hybrid network comprising:
-
establishing, by the tunneling server, a connection with a first endpoint in response to a connection request from the first endpoint; receiving, by the tunneling server, a request from the first endpoint for a plurality of shadow ports on the tunneling server; creating, by the tunneling server, the plurality of shadow ports; sending, by the tunneling server, a shadow network address and the shadow ports to the first endpoint; receiving, by the tunneling server, a message from the first endpoint; extracting, by the tunneling server, a destination network address and a destination port from the message; determining, by the tunneling server, whether the destination network address matches a network address of the tunneling server; and sending, by the tunneling server, the message out of the tunneling server to a second endpoint corresponding to the destination network address only if the destination network address does not match the network address of the tunneling server. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. 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; establishing a tunnel with a tunneling server that is located outside of the local network using a second message protocol only if the first message protocol is not available for use in sending the first message to the second endpoint; obtaining a shadow address and a plurality of shadow ports from the tunneling server; sending the first message to the second endpoint via the tunnel; and receiving a second message from the second endpoint via the tunnel. - View Dependent Claims (16, 17, 18, 19, 20)
-
Specification