Nodes relay the operations (transfers, SC origination, ...) and blocks they receive (or sometimes create) from other nodes. Since the nodes can't be trusted, they also check every information they receive. They communicate only with a subset of all the nodes in the network that can vary over time.