How is NAT pointing accomplished in p2p networks?

Say that I have Peer A and Peer B. Peer B is part of a P2P network with a DHT used to locate the files. There are many other peers in the network.

Peer A and Peer B are behind NAT. Not the same NAT, two different. assume Peer B begins magically in the DHT and happily communicates with others pairs.

Say Peer B given Peer A his public IP address and his port that he found via another peer (in the network) telling him the address to which he was publicly.

How Peer A to connect to the DHT and is it possible without using any server to facilitate the transfer?