Patent ID: 8572172

Claim:
A method of initiating a peer-to-peer network, comprising: sending an address-determination message from a first computer to an address-determination server located over a public network, wherein the first computer is located in a private network behind a network address translator (NAT) device, wherein the NAT device is a different device from the address-determination server; receiving at the first computer a reply to the address-determination message from the address determination server; determining, by the first computer based on the reply received from the address determination server, one or more first addresses that the first computer can be reached over the public network and the NAT device; composing and sending from the first computer to a Relay server a message comprising a request to initiate a peer-to-peer connection with a second computer that is not a member of the private network and the one or more first addresses corresponding to the first computer, wherein the Relay server is to forward the one or more first addresses to the second computer to enable the second computer to initiate the peer-to-peer connection with the first computer using the one or more first addresses, wherein the Relay server is different from the address-determination server and the NAT device; receiving from the Relay server a message, at the first computer, originating from the second computer, the message comprising one or more second addresses corresponding to the second computer at which the first computer can possibly reach the second computer through the NAT device; and sending a request, from the first computer, to initiate the peer-to-peer connection to the second computer using one or more of the second addresses corresponding to the second computer.