广播包在哪里过滤掉了

网络工程 ip IPv4 子网 IP地址 播送
2022-02-18 17:42:31

当我有一个带交换机的网络时。在那个网络中,我有 10 台 PC。其中一半配置在 192.168.1.0/24 范围内,另一半配置在 192.168.2.0/24 范围内。

这意味着我的网络中有两个彼此看不到的不同网络。现在当网络内的所有电脑都在相互广播时,在自己的范围内,所以到 192.168.1.255 和 192.168.2.255。我的假设是交换机只是将广播消息传递给所有其他 pc,但是从 192.168.2.0/24 范围内的 PC 的角度来看,发送到地址 192.168.1.255 的广播消息在哪里被过滤掉了? 这是在以太网卡的硬件中完成的,还是它甚至传递到内核并给您的处理器性能带来巨大的损失?

2个回答

每个主机中的网络堆栈都必须检查广播,以查看广播是否针对该主机。无论网络如何,每帧的第 2 层广播都是相同的,因此第 2 层将广播向上传递到网络堆栈中的第 3 层。第 3 层 (IP) 将查看目标地址并发现它不适合该主机,它将丢弃数据包。只有当第 3 层广播地址与主机地址位于同一网络中时,第 3 层才会将数据包有效负载向上传递到网络堆栈。

广播总是被每个 NIC 接收并传递到网络堆栈,在那里它们要么被丢弃,要么被进一步处理。

有不同类型的广播:

  • IP 受限广播 (255.255.255.255) - 这会传播到广播域内的所有节点,并由每个 NIC 和 IP 堆栈处理
  • IP 定向广播 (192.168.{1|2}.255) - 这由交换机传播到所有节点,由每个 NIC 处理,但在子网地址不匹配时被每个 IP 堆栈丢弃
  • 以太网广播 (ff-ff-ff-ff-ff-ff) - 这是 IP 广播被封装以通过广播域传播的内容以及交换机实际看到的内容;他们自己看不到封装的IP广播,也无法区分它们

如果您担心开销和性能损失(以及几乎所有其他情况),请改用多播广播对于 IPv4 来说几乎已经过时了,对于 IPv6 来说完全过时了。