在套接字关闭之前,会接收到指向自身 IP 子网以外的其他 IP 子网的定向广播 - 为什么?

在套接字关闭之前,会接收到指向自身 IP 子网以外的其他 IP 子网的定向广播 - 为什么?

我的两台主机位于同一以太网段。主机A10.1.0.1/16,主持人10.1.0.2/16A发送定向 UDP 广播,10.1.255.255并将 UDP 侦听套接字绑定INADDR_ANY接收他们。

在我更改 IP 配置后A使其10.0.0.1/16属于不同的 IP 子网并开始向10.0.255.255同一套接字广播 仍然收到這次監視。

如果我重新启动监听应用程序,这些广播到“错误”子网是套接字不再接收

问题:为什么不丢弃数据包,该数据包既不是单播数据包,也不是广播到子网,直到套接字关闭?

我知道 RFC1122

Hosts SHOULD use the Limited Broadcast address to broadcast to a connected network.

我理解A发送导演广播的目的是广播到自己的子网,这不符合“应该”条款。但我的问题是为什么只要 UDP 套接字还处于活动状态,就不会丢弃它们。

我在 Linux 内核 4.4 和 3.13 上观察到了这种行为。

相关内容