我有一个从 FPGA 发送的视频流。
当我使用 Wireshark 分析此多播流时,我看到目标 MAC 地址:
01:00:5E:A9:A9:0A
。 FPGA 配置为发送到此多播 IP 地址:239:169:169:10
。
在互联网上的任何地方,我都看到多播 MAC 地址应该以
01:00:5E
开头,后跟一点 0
,然后是 IP 地址的最后 23 位。但在我收到的 MAC 地址中,第 25 位设置为 1
而不是 0
。我预计:01:00:5E:29:A9:0A
00000001:00000000:01011110:x yyyyyyy:yyyyyyyy:yyyyyyyy
( header 01:00:5E ) ^ (23 last bits of the IP)
|
25th bit
我无法在任何地方找到该位的作用的良好解释,但我知道这是一个特殊位,可将地址分为两个范围。
就我而言,它会导致以太网交换机中的多播 MAC 表过滤器出现问题,我将其第 25 位配置为
0
。 (因为当配置相同的 IP 地址时,任何其他流媒体都有一个带有 0
位的良好标头)
当我将多播 IP 地址设置为
239.64.169.10
时,现在 mac 为 01:00:5E:40:A9:0A
,因此我怀疑 FPGA 对第 25 位管理不善,不会强制为 0,而是从 IP 地址中获取 24 位。也许这只是他们这边的一个错误,但我想知道除了交换机上的 mac 表过滤器之外,1
是否会导致问题。
我在常态中找到了答案。 RFC 1112 - 6.4
IP主机组地址映射为以太网组播地址,是将IP地址的低23位放入以太网组播地址的低23位01-00-5E-00-00-00(十六进制)。
我联系了该公司并提供了这些信息,他们修复了他们的 IP。