Zend certified PHP/Magento developer

How does the central server know how to send the message to the other client?

I have been learning as a hobbyist about NAT Traversal using the RFC and I am confused about how relaying would work. Let’s say I have a centralized server on DigitalOcean, hosted on a public address. And I have two machines I want to establish a p2p connection with. I understand that NATs would translate my private IP to a public IP and hence the central server would have my public IP via some kind of UDP state? The same connection can be done with the other NATed host I want to communicate to. So, in my understanding, the centralized server now has some kind of state about the two IPs of both hosts? Now, my questions are,

  1. If I want to communicate with the other NATed host, how would I send the first request because I still do not know the public IP?
  2. Does the relay server have to communicate the public IP of the other NATed host to me?
  3. Does the other party just have to write to the UDP connection established on the other side? Hence it has to know which port is opened to the other NATed host?