Neither Node should send any data other than a [Version](/protocol/network/messages/version) message to the peer until it has also received a Version message.
Once a node has received (and sent) a Version message, it may send a [Verack](/protocol/network/messages/verack) message.
Once each Node has sent and received a Verack message, normal node operation may begin.
## Sequence Diagram
When a local Node initiates a connection to a remote Node, the remote Node will remain silent it receives a version message.
The Remote Node may send a `Verack` message before it sends its own `Version` messages.
A Node may only send a `Version` message once.
Although a Node may connect to itself, it is usually undesired. Nodes typically check for a connection to itself by checking if the `nonce` provided by a `Version` message is a nonce it has used recently.