A method for Peer-to-Peer link establishment over a network, the method comprising: creating a map for an intermediate peer, wherein the intermediate peer is network connected to a number of peers (104, 106), the map comprises a plurality of peer IDs, IP addresses and port numbers that each represent one of the number of peers on the network, the intermediate peer and the number of peers being part of a peer-to-peer, P2P, network; maintaining an active link between the intermediate peer and the number of peers; sending, by a prospective peer that seeks to join the P2P network, a request message to the intermediate peer, where the request message comprises a request for a number representing the number of peers in the P2P network; sending to the prospective peer by the intermediate peer in response to the request message the number of peers being part of the P2P network and the number of ports to be opened between peers; sending, by the prospective peer, a plurality of command map request messages to the intermediate peer to initiate link establishment processes with the peers in the P2P network, wherein the number of command map request messages sent is based on the number of peers being part of the P2P network multiplied by the number of ports to be opened between peers, wherein each command map request message is sent from the prospective peer from a unique port number and may be sent a number of times to account for network loss; receiving, by the intermediate peer, the plurality of command map request messages; building, by the intermediate peer, a command map using the map as well as the port number and IP address for each of the command map request messages received from the prospective peer; sending, by the intermediate peer, the command map to each peer listed in the command map including sending the command map to the prospective peer; establishing P2P links, in response to receiving the command map from the intermediate peer, between the prospective peer and already networked peers; sending, by each peer listed in the command map including the prospective peer, in response to receiving the command map from the intermediate peer, keepalive messages (518, 528, 558) to the intermediate peer, each keepalive message comprising a peer ID, an IP address, and a port number of the respective peer sending the keepalive message; receiving, by the intermediate peer, the keepalive messages; and updating, by the intermediate peer, the map with the port numbers received in the keepalive messages. creating a map for an intermediate peer, wherein the intermediate peer is network connected to a number of peers (104, 106), the map comprises a plurality of peer IDs, IP addresses and port numbers that each represent one of the number of peers on the network, the intermediate peer and the number of peers being part of a peer-to-peer, P2P, network; maintaining an active link between the intermediate peer and the number of peers; sending, by a prospective peer that seeks to join the P2P network, a request message to the intermediate peer, where the request message comprises a request for a number representing the number of peers in the P2P network; sending to the prospective peer by the intermediate peer in response to the request message the number of peers being part of the P2P network and the number of ports to be opened between peers; sending, by the prospective peer, a plurality of command map request messages to the intermediate peer to initiate link establishment processes with the peers in the P2P network, wherein the number of command map request messages sent is based on the number of peers being part of the P2P network multiplied by the number of ports to be opened between peers, wherein each command map request message is sent from the prospective peer from a unique port number and may be sent a number of times to account for network loss; receiving, by the intermediate peer, the plurality of command map request messages; building, by the intermediate peer, a command map using the map as well as the port number and IP address for each of the command map request messages received from the prospective peer; sending, by the intermediate peer, the command map to each peer listed in the command map including sending the command map to the prospective peer; establishing P2P links, in response to receiving the command map from the intermediate peer, between the prospective peer and already networked peers; sending, by each peer listed in the command map including the prospective peer, in response to receiving the command map from the intermediate peer, keepalive messages (518, 528, 558) to the intermediate peer, each keepalive message comprising a peer ID, an IP address, and a port number of the respective peer sending the keepalive message; receiving, by the intermediate peer, the keepalive messages; and updating, by the intermediate peer, the map with the port numbers received in the keepalive messages.