我应该模拟一个p2p协议(使用Java),其中每个节点最初与一个邻居建立连接。然后,使用发现算法,每个节点找到新的潜在邻居,并且可以连接其中的一些邻居。如何避免两个节点之间的双重连接?
假设覆盖网络的两个节点(如A和B)不是彼此相邻的:如果他们同时发现它们会发生什么? A发送连接请求给B,而B发送连接请求,以A,这样两个TCP连接建立,但两者之一将是无用的...
- 有没有办法来避免这个问题?
- 另外,如果最坏的情况发生这个问题,我怎么能发现它不必要放弃连接?
假设每个节点具有唯一的ID,这将是足以与两个邻居的ID每个连接相关联,以使该节点可以定位和消除一些重复的连接。这可能是一个解决方案,但是...有更好的解决方案来打破任何重复的连接?