UDP套接字绑定到一个IP吗?

UDP套接字绑定到一个IP吗?

假设我有两个主机 - 本示例使用虚构 IP,假设主机 A 的 IP 为 1.1.1.1。主机 B 有两个 IP - 2.2.2.2 和 2.2.2.3。

如果主机 B 正在监听端口 8888,并且看到来自 1.1.1.1 的数据包,产生响应并将其发送到与原始连接不同的 IP,这是否表明主机 A(1.1.1.1)将不会看到响应数据包?

  1. 1.1.1.1:8888 -> 2.2.2.2:8888(请求)
  2. 2.2.2.3:8888 -> 1.1.1.1:8888(响应)

我对套接字的理解是,一个套接字由一个 IP 和一个端口组成,因此,如果服务器在客户端未用于建立连接的全新 IP 上响应客户端,则客户端将不会收到响应。

答案1

主持人 A 应该收到响应(它将被物理地传送到机器,假设路由配置正确),但主机 A 可能会也可能不会过程响应。由于 UDP 不是面向连接的,因此由实现者决定是否只接受来自原始目的地的响应,或者寻找来自任何地方的数据包。

相关内容