TCP星型网络对等连接的策略

时间:2010-09-03 14:04:14

标签: .net sockets tcp

我编写的网络应用程序与参与系统的机器列表(N)中的N-1(本身)其他机器进行TCP通信。

应用程序启动时,应用程序当前在尝试连接到每个对等系统之前选择随机延迟时间(1000-3000ms)

如果机器1尝试连接到机器2,同时机器2尝试连接到机器1.目前我只丢弃两个连接,再次重新选择随机时间(100-500毫秒)并重新尝试连接。 / p>

每台机器最终与其他所有机器建立连接,系统正在运行,但我认为有更好的方法可以解决这种情况吗?

1 个答案:

答案 0 :(得分:1)

你有很多选择。

打破关系的常用方法是使用IP。换句话说,如果A在B连接到A时连接到B,则具有较低IP的那个可以取消其客户端。

更一般地说,最好避免每台机器与其他机器通信,因为连接数量增长速度惊人。一个很好的折衷方案是使用树结构。例如,二叉树意味着每台机器仅负责连接到另外两台机器,并且只能由一台机器连接。其他拓扑结构提供了效率和冗余的不同平衡,因此请查看有关该主题的相关文献。