Firewalls and network address translators (NAT) provide many advantages
for client and the Internet itself, however, these devices break many
existing transmission control protocol (TCP)/Internet Protocol (IP)
applications, since they conceal the identity of IP clients (i.e., peers)
and block transmission control protocol (TCP) call setup requests.
Firewalls and NATs make it impossible for one TCP peer to discover
another and establish a connection. Embodiments of this invention
provides a system and a protocol to enable two TCP peers that exist
behind one or more firewalls and NATs to automatically setup a true
peer-to-peer TCP connection and exchange data without making changes to
the firewall or NAT devices or existing TCP-based applications. In
embodiments of this invention, the synchronization between the blind TCP
peers is achieved using a system that consists of a registration server,
an agent application, and a virtual network interface that together relay
and replicate the control signals between the two TCP peers. In addition,
embodiments of this invention are also used to traverse the NAT and
establish a bi-directional peer-to-peer TCP connection in the firewall.