I am researching Bitcoin; what I can't find much information on though is how the P2P network itself operates. For example, BitTorrent uses a DHT protocol that allows for node discovery and calculating distances between nodes etc.
So if a Bitcoin client wants to do a transaction, how does it know which IP address to connect to in order to announce it?
And how does the node that the transaction gets sent to know which other nodes it needs to connect to, and so on?