我有一个带有两个 IP 地址的客户端系统:10.172.12.13 和 58.53.12.15。
服务器还配置有两个 ipaddresses:10.172.12.18 & 58.53.12.17
现在,在客户端,我首先绑定到本地地址和端口(端口为 0),然后进行 TCP 非阻塞连接。
奇怪的行为是,如果我将 10.172.12.13 指定为要绑定的本地地址,然后在服务器中连接到 58.53.12.17,则连接失败,并给出错误为“主机无法访问”。
但是,如果我将客户端中的本地地址指定为 58.53.12.15,然后尝试在服务器中连接到 58.53.12.17,它会连接。
最有趣和令人惊讶的方面是,在上述执行之后,如果我再次将 10.172.12.13 作为本地地址绑定并连接到 58.53.12.15,它现在连接成功。但是,这只会发生几分钟。一段时间后,10.172.12.13 作为本地地址的连接再次失败。
请人解释发生了什么?绑定如何影响 TCP 连接?