recently, I devoted myself to programming my Bitcoin client for academic purposes, and was analyzing the protocol specifications, paying particular attention to the known network node exchange system through the messages. getaddr and addr.
What I wanted to know is that, although the protocol says that with a getaddr message, you get a list of up to 1000 nodes, what is the relationship between all these nodes? Is there a criterion that a node maintains a list of known nodes that is not random? I'm trying to explain better: the nodes I get in response to a getaddr are actually the neighbors of this node (and so we can say that there is an arc between these two specific nodes in a random graph hypothetical), or not a particular link? Do we, as developers, have official information on such topics? Looking at the official website, the information I found is very general (https://en.bitcoin.it/wiki/Protocol_documentation).
Thank you very much for the attention