lately I'm dedicating myself to programming my Bitcoin client for academic purposes, and I was analyzing protocol specifications, with particular attention to the system of exchange of known network nodes through the getaddr and addr messages. What I wanted to know is this: although the protocol indicates that with a message getaddr you get a list of up to 1000 nodes, what is the relationship between all these nodes? Is there a criterion by which a node keeps a list of known nodes that is not random? I try to explain better: the nodes that I receive in response to a getaddr, are actually the neighbors of that node (and therefore we can say that there is an arc between those two specific nodes in a hypothetical random graph), or there is not a link particular ? Have we, as developers, official information on such topics? Because 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