Rendezvous protocol

A rendezvous protocol is a computer network protocol that enables resources or P2P network peers to find each other. A rendezvous protocol uses a handshaking model, unlike an eager protocol which directly copies the data. In a rendezvous protocol the data is sent when the destination says it is ready, but in an eager protocol the data is sent assuming the destination can store the data.
Examples of rendezvous protocols include JXTA, SIP, Freenet Project, I2P, and such protocols generally involve hole punching.
Because of firewall network address translation (NAT) issues, rendezvous protocols generally require that there be at least one unblocked and un-NATed server that lets the peers locate each other and initiate concurrent packets at each other.