0

我有许多服务器在不同的机器上运行并监听它们众所周知的 IP 地址和端口。我想在服务器之间建立连接(第一次尝试获胜)并根据众所周知的 IPAddress/端口对对调用者进行身份验证。

我遇到的问题是,我不能重用侦听器端口来启动新连接 - 所以这种身份验证是不可能的(即使连接套接字稍后可以通过通信实例参数唯一标识)。

我想保持合作伙伴之间的对称性(没有什么像协调节点的“主”一样)。这个问题有解决方案吗?

[据我所知,SO_REUSEADDR 不是为此而设计的……]

更新:我刚刚定义了一些包含 IPAddress 和端口号对的配置。这个想法是使用这些对来建立连接。因此,具有配置的各方可以轻松检查传入连接。后来我想把所有东西都放在 xinetd 后面,让他验证传入的地址/端口组合。

总结:如果理论上可以通过使用机器特定(IPAddress,端口)对建立网络,则不可能通过等效的通信节点(其中“一半”必须是客户端,另一半是服务器)来实现它。我对吗?[我们也可以讨论问题背后的动机,但这不是问题]

4

1 回答 1

0

我必须说依赖 IP 地址并不是真正的安全。但是,如果您选择这样做,您可以执行以下操作之一

  • 使用 UDP 而不是 TCP。您可以轻松地从同一端口发送/接收消息。
  • 为 TCP 使用一对端口。一个用于发送,另一个用于接收。
于 2012-04-24T07:50:21.150 回答