我有七台计算机,它们远离路由器。我将它们用作渲染农场的一部分,因此它们都访问中央机器(渲染服务器)并从中读取文件、执行计算并将输出结果写回给它。它们使用 Python 脚本与渲染服务器通信,其中每台机器都使用 TCP 处理程序通过其私有 IP 直接寻址。过去几个月我一直通过 Wi-Fi 这样做,但读取/写入部分非常慢,因为它涉及大量数据传输,并且一旦路由器或 ISP 出现问题,一切都会崩溃,这种情况经常发生。
为了缓解这些问题,我决定使用以太网电缆和交换机将它们全部连接在一起。我使用了介绍的技术这里将它们全部直接连接起来,这样它们就不依赖于 Wi-Fi 连接了。所有渲染客户端的 Wi-Fi 都已关闭,因此它们只能通过电缆与渲染服务器通信,并且没有渲染客户端可以访问互联网。
为了进行此项设置,我为每台机器分配了 IP 地址 192.168.0.1、192.168.0.2、... 192.168.0.7,所有 IP 地址的子网掩码均为 255.255.255.0,“接口度量”为 20。目前,这似乎运行良好。
我不明白的是:如果我为这七台计算机分别分配了这些私有 IP 地址,并且它们与路由器完全隔离,那么是什么阻止路由器将其中一个私有 IP 地址分配给稍后加入网络的另一个 Wi-Fi 设备?我担心的原因是渲染服务器连接到路由器以及所有渲染客户端,并通过其 IP 地址直接向渲染客户端发送命令。如果另一台设备加入 Wi-Fi 网络并被分配渲染客户端的一个 IP,我不知道操作系统会如何处理(我的 Python 脚本会将命令发送到哪个设备?)。
我不知道这是否真的会是个问题,但我很好奇。路由器是否可以为新的 Wi-Fi 设备分配渲染客户端的 IP 地址之一?如果可以,那么在运行旨在直接向特定 IP 发送消息的程序时,Windows 操作系统将如何处理这个问题?如果不是,它如何知道要防止这种情况发生?
Python 脚本使用了本文提供的 MyTCPHandler 示例这里与渲染客户端进行沟通。
答案1
您分配的 IP 地址应该位于路由器选择分配 IP 的 DHCP 范围之外。
或者,您可以为渲染农场计算机分配不同子网上的 IP,以便它们位于自己的小型网络上。