MAC地址规则
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
http://www.blogbus.com/herren0167-logs/221441607.html
MAC地址第二位数字必须是偶数。以下是详细介绍。
MAC地 址通常表示为12个16进制数,每2个16进制数之间用冒号隔开,如:08:00:20:0A:8C:6D就是一个MAC地址,其中前6位16进制数 08:00:20代表网络硬件制造商的编号,它由IEEE分配,而后3位16进制数0A:8C:6D代表该制造商所制造的某个网络产品(如网卡)的系列号。每个网络制造商必须确保它所制造的每个以太网设备都具有相同的前三字节以及不同的后三个字节。这样就可保证世界上每个以太网设备都具有唯一的MAC地 址。
我们需要注意的是以太网地址的第32位是组播地址的标志位:
位 47~33 制造厂商标识
32 组播标识位
31~24 制造厂商标识
23~0 系列号
当组播标识位为1时表示该MAC地址是一个组播地址。对于网卡MAC,这一位必须是0,表示一个单播MAC地址。以下:
X0:XX:XX:XX:XX:XX
X2:XX:XX:XX:XX:XX
X4:XX:XX:XX:XX:XX
X6:XX:XX:XX:XX:XX
X8:XX:XX:XX:XX:XX
XA:XX:XX:XX:XX:XX
XC:XX:XX:XX:XX:XX
XE:XX:XX:XX:XX:XX
为合法的以太网网卡地址。上面的X代表0-F中的任一个。如果你不是购买网卡,而是自己购买芯片制造,那么地址怎么办?可以自己使用一个还没有被ieee 分配的厂商编号就可以了。就算是使用已经分配的厂商编号也没有不可,只要你能保证在你使用的局域网内,任何两个网卡的地址不一样就可以了。地址 FF:FF:FF:FF:FF:FF为广播地址,只能用在目的地址段,不能作为源地址段。目的地址为广播地址的数据包,可以被一个局域网内的所有网卡接收到。
地址:
X1:XX:XX:XX:XX:XX
X3:XX:XX:XX:XX:XX
X5:XX:XX:XX:XX:XX
X7:XX:XX:XX:XX:XX
X9:XX:XX:XX:XX:XX
XB:XX:XX:XX:XX:XX
XD:XX:XX:XX:XX:XX
XF:XX:XX:XX:XX:XX
为组播地址,只能作为目的地址,不能作为源地址。组播地址可以被支持该组播地址的一组网卡接收到。组播地址主要用在视频广播,远程唤醒(通过发一个特殊的数据包使网卡产生一个中断信号,启动电脑),游戏(多个人在局域网里联机打游戏)里等。下面是一些具体的组播地址,其他组播地址跟TCP/IP无关,不做介绍:
地址 范围
01:00:5E:00:00:00 ~01:00:5E:7F:FF:FF 用于ip地址的组播
网卡可以接收以下3种地址的数据包:
1 目的地址跟自己的网卡地址是一样的数据包
2 目的地址为FF:FF:FF:FF:FF:FF广播地址的数据包
3 目的地址为跟自己的组播地址范围相同的数据包
那么在以太网的应用当中,如果你希望你的数据包只发给一个网卡,目的地址用对方的网卡地址;如果你想把数据包发给所有的网卡,目的地址用广播地址;如果你想把数据包发给一组网卡,目的地址用组播地址。
组播IP与组播MAC的映射
二层组播MAC定义为:01:00:5e:xx:xx:xx,其中 xx由三层的IP组播组确定。组播地址:组播流使用的 IP是D类IP地址(二进制1110开始),从224.0.0.0~239.255.255.255。由于组播MAC 地址是一个虚拟的地址,并不是真实网卡的MAC地址,那么网卡在发送报文时二层MAC 地址怎么确定呢?答案是采用地址映射的方法将三层IP地址映射到MAC地址。映射关系如下:
从上面的映射关系可以看出IP地址的五个bit 无法映射到MAC层,因为MAC层的这五个bit 已经确定。也就是说有32 个IP组播组会被映射为同一个MAC地址。