以太网错误帧在CANoe中的显示和实现的一些思考和实践

1、引子

网友在微信上问我,她使用CANoe给DUT发送以太网报文时,发现Trace窗口显示某些以太网数据包报错,报错的内容是:mac地址无效

听到这话,我首先想到的是:mac地址用来表示单播/组播&广播的bit位被设置为1,导致mac地址变成了组播&广播mac地址

她给我的截图也证实了我的猜想:

以太网错误帧在CANoe中的显示和实现的一些思考和实践_第1张图片

为什么mac地址要有单播/组播&广播之分?

当源主机发送以太网报文时,有单播、广播、组播三种方式。如果是单播,根据目的IP地址寻找目标主机的MAC地址。如果是广播,目的IP地址为全1,目的MAC地址为全1。如果是组播,目的IP地址为组播IP地址,目的MAC地址根据组播IP地址映射为组播MAC地址。

可以看出:除了单播的目的mac地址使用目标MAC地址,组播和广播使用的目的mac地址和某个主机的mac地址已经无关了。单播使用主机的mac地址,组播&广播使用的是目的IP地址映射的mac地址

单播的目的mac地址是单播mac地址,单播的目的mac地址又是某个主机的mac地址,所以主机的mac地址就是单播mac地址。一条以太网报文的源mac地址必须是主机的mac地址,所以源mac地址必须为单播mac地址,不能为组播/广播mac地址,否则就是无效的或错误的以太网报文

你可能感兴趣的:(CANoe)