Nodes communicate by gossiping about new data to their peers.
For example, whenever a new block is found, a node that hears about it, will tell all its peers "Hey, I've got a new block with the identifier , you want it?". These announcement take the form of "Inventory messages". They consist of two elements: The type of data being offered (i.e. transaction, block, or filtered block), and the identifier (i.e. transaction id, or block hash).
The peer receiving the inventory announcement will then request either the block header, or the complete item if they haven't seen it before, or nothing if they know about it already. The same happens in transaction relay.
Naturally, every node checks the validity of the data they receive before using it. This way, every node ends up assembling their own verified complete copy of the blockchain. They don't trust other nodes to tell them about UTXOs or which chain is the longest, but rather they only expect that their set of peers together will tell them about any new data that floats about eventually, while only trusting the data that they have verified and collected themselves.
The chain tip and UTXO set are therefore derived information that the node has calculated themselves from verifying all available information gathered from peers.