Methods and Systems for Establishing Communications Through Firewalls and Network Address Translators
Abstract
Disclosed are methods that enable communications to be established regardless of the presence of communications blockers, e.g., firewalls and NATs, in the path between two computing devices. Two devices each establish communications with a rendezvous service. Through the service, the devices signal each other to set up direct, peer-to-peer communications between themselves. If the devices fail to establish direct communications, then they invoke a relay service that provides the illusion of direct communications. In another aspect, an originating device attempts to establish communications with a recipient, using an address and port number associated with the recipient. If that attempts fails, possibly because a firewall is blocking communications, then the originating device retries using a port normally held open by firewalls. If this attempt also fails, then the originating device invokes the services of a proxy to negotiate a port acceptable for use by the recipient and by any intervening firewalls.
Claims
exact text as granted — not AI-modified1 . A method for a first computing device to establish communications with a second computing device, the method comprising:
sending a first invitation for the second computing device to a rendezvous service; receiving a failure message from the rendezvous service indicating a failed attempt to establish communications by the second computing device with the first computing device, the failed attempt responsive to the first invitation; and sending a second invitation for the second computing device to the second computing device.
2 . The method of claim 1 further comprising accepting an attempt to establish communications by the second computing device.
3 . The method of claim 1 wherein the second invitation is sent to the second computing device using an address, the address including a port number wherein the port number is 443 or 80 .
4 . The method of claim 1 wherein the second computing device is behind a communications blocker.
5 . The method of claim 1 further comprising:
sending a third invitation for the second computing device to a rendezvous service, the third invitation specifying a relay service; and accepting an attempt to establish communications by the second computing device via the relay service.
6 . The method of claim 5 wherein the first computing device is behind a communications blocker and the second computing device is behind a communications blocker.
7 . The method of claim 5 wherein the communications passes through a port 80 or a port 443 .
8 . The method of claim 5 wherein the communications passes through at least a portion of the public Internet.
9 . A computer-readable medium whereon is stored computer-executable instructions sufficient to perform a method for a first computing device to establish communications with a second computing device, the method comprising:
sending a first invitation for the second computing device to a rendezvous service; receiving a failure message from the rendezvous service indicating a failed attempt to establish communications by the second computing device with the first computing device, the failed attempt responsive to the first invitation; and sending a second invitation for the second computing device to the second computing device.
10 . The computer-readable medium of claim 9 , the method further comprising accepting an attempt to establish communications by the second computing device.
11 . The computer-readable medium of claim 9 , the method wherein the second invitation is sent to the second computing device using an address, the address including a port number wherein the port number is 443 or 80 .
12 . The computer-readable medium of claim 9 wherein the second computing device is behind a communications blocker.
13 . The computer-readable medium of claim 9 , the method further comprising:
sending a third invitation for the second computing device to a rendezvous service, the third invitation specifying a relay service; and accepting an attempt to establish communications by the second computing device via the relay service.
14 . The computer-readable medium of claim 13 wherein the first computing device is behind a communications blocker and the second computing device is behind a communications blocker.
15 . The computer-readable medium of claim 13 wherein the communications passes through a port 80 or a port 443 .
16 . The computer-readable medium of claim 13 wherein the communications passes through at least a portion of the public Internet.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.