网卡MAC地址作为互联网设备在以太网中身份的唯一标识在以太网通讯中的作用比IP地址还要重要,MAC地址分成两部分,前24位是组织唯一标识符(OUI, Organizationally unique identifier),后24位由厂商自行分配。IP地址又称为逻辑地址而MAC地址就叫做物理地址,一台主机要给另一台主机发送数据只知道对方的IP地址是不可以的,比如路由器下的大部分设备的IP地址应该都是192.168.1.xxx的此时就可以看出MAC地址的作用,IP的的划分有一定的规则(A类,B类等)同样MAC地址也有对应的划分的规则不过相比IP地址的分类MAC地址的分类就很简单了。
规则:
- 发送的第一个字节的第一个比特如果为0则为单播地址,反之如果是1则可能会是广播或组播地址,他们的区别就是广播地址是每一个一个字节所有的BIT都是1,所以换句话说就是全为1的以太网地址为广播地址,第一个字节0xAB,的B如果为偶数则为单播地址反之如果为奇数则为组播地址。(2012-04-11)
- 第二个BIT表示MAC地址是全球唯一地址还是本地地址,0表示全球唯一地址,1表示本地唯一地址。这一位也叫G/L位。(2012-04-11)
举例:
如果MAC地址为00-50-BA-xx-xx-xx
第一个字节二进制表示为 0x00000000; 其中红色比特位的值就表示此MAC地址为单播地址。这里需要注意的是以太网上数据传输字节序是“Big Edian”的方式传输的,所以实际上 这里的00为MAC的6字节中最高字节,但是单字节的比特顺序是先传低位的所以在以太网上看到的数就是 0000 0000 ......;同理如果为组播或广播地址第一个bit就会是1。同时这还是一个全球唯一的MAC地址。
最后在别人博客看到这样一段话,记下来
2层的MAC地址是如何与3层的IP地址进行映射的呢?通过将MAC地址的前25位强行规定位0100.5E,而后23位对应IP地址的后23位,而组播IP地址的前4位均相同如:
IP地址:1110yyyy.yxxxxxxx.xxxxxxx.xxxxxxxx
MAC地址:00000001.00000000.01011110.0xxxxxxx.xxxxxxx.xxxxxxxx
例如:组播IP地址224.215.145.230应该映射到下列哪个组播MAC地址?( )
(A) 01-00-5e-57-91-e6 (B) 01-00-5e-d7-91-e6
(C) 01-00-5e-5b-91-e6 (D) 01-00-5e-55-91-e6
用二进制来换算,将215.145.230换算成1101,0111,1001,0001,1110,0110,取最后23位放到MAC地址中的23位可以计算得出答案是A。
显然有32个IP地址(有5个y可以不一样)对应一个MAC地址,所以要避免在同一网络中使用的多个组播IP地址对应一个MAC地址。