首页 理论教育 网卡地址传输顺序和MAC地址转换规则

网卡地址传输顺序和MAC地址转换规则

时间:2023-11-17 理论教育 版权反馈
【摘要】:图1-17以太网中网卡地址传送顺序单播MAC地址属于特定的网卡,地址烧录在EPROM存储器中。IP地址224.50.50.42转换为组MAC地址“01-00-5E-32-32-2A”依据下面的算法。通过计算能够发现IP地址225.50.50.42与224.50.50.42具有相同的转换MAC地址,原因是这两个IP的后23位是一样的。32位IP地址中如果23位固定,则只有9位可以发生变化,又因为D类IP地址固定以“1110”开始,所以只有5位能够发生变化。要避免在同一网络中使用的多个组播IP地址对应一个MAC地址。

网卡地址传输顺序和MAC地址转换规则

网卡地址也叫硬件地址或MAC(Media Access Control,介质访问控制)地址,它由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),是传输数据时真正赖以标识发送方和接收方的主机的地址。网卡地址由48比特长的十六进制数字组成,共6个字节,一般格式表示为“C8-9C-DC-21-5C-AE”。其中,前3个字节是由IEEE的注册管理委员会给不同厂家分配的代码(高位24位),也称为“编制上唯一的标识符”(Organizationally Unique Identifier,OUI),在网站http://standards-oui.ieee.org/oui/oui.txt可以进行查询,例如:“C8-9C-DC”分配给了Elitegroup计算机系统有限公司;后3个字节(低位24位)由各厂家自行指派给生产的适配器接口,称为扩展标识符。一个地址块可以生成224个不同的地址,MAC地址实际上就是适配器地址或适配器标识符EUI-48。

命令提示符窗口中使用“ipconfig/all”或者“getmac”命令可以查看网卡地址,通常情况下网卡地址不需要被修改,当由于某些特殊原因需要修改网卡地址时,鼠标右击要修改的网卡对应的图标,选择属性→配置→高级,找到“网络地址”或“Network Address”项,在右边的两个单选项中选择“值”,在框中输入要修改的网卡地址,点击“确定”后,网卡地址就修改成功了,如图1-16所示。如果需要将网卡地址还原为出厂值,则选择“不存在”选项,点击“确定”。

图1-16 修改网卡地址

网卡地址分为单播(Unicast)、多播(Multicast)和广播(Broadcast)地址3种,图1-16中查看的网卡地址“C8-9C-DC-21-5C-AA”是一个单播地址,单播地址标识唯一的网卡。例如,在以太网中传输的数据包中的目标地址字段如果填写的是一个单播地址,那么此数据包将只能被具有该地址的网卡接收。如果数据包中的目标地址字段填写的是一个广播地址,那么此数据包将能被该网络中所有网卡接收,广播地址的48位全为1,即“FF-FF-FF-FF-FF-FF”。介于单播和广播之间,多播地址可以被加入特定多播组的网卡接收。

广播地址是固定的,那么如何判定一个网卡地址是单播还是多播呢?关键在于网卡地址第1字节的最低位:如果此位为“0”,是单播地址;如果为“1”则是多播地址。仍然以地址“C8-9C-DC-21-5C-AA”为例,这个地址的第1个字节是“C8”,它的二进制表示为“1100 1000”,左边是高位,右边是低位,可以看出“11001000”的最右边的位即最低位为“0”,所以这个地址是单播网卡地址。用同样的方法,我们可以判断出地址“01-00-5E-32-32-2A”是一个多播网卡地址。多播网卡地址和广播网卡地址在数据帧中只能出现在目标地址字段,不能出现在源地址字段,否则没有意义。

以太网是按照“高字节先传送”“最低位先传送”的方式将数据包发送到物理传输介质上的。以地址“01-00-5E-32-32-2A”为例,“01”是最高字节,先于其他5个字节传送,十六进制字节“01”的二进制表示为“0000 0001”,最高位是“0”,最低位是“1”,在传送时遵循“最低位先传送”的方式,传送顺序是“1000 0000”,而不是“0000 0001”。同样,字节“5E” 传送顺序是“0111 1010”,而不是“0101 1110”,地址“01-00-5E-32-32-2A”的传送顺序如图1-17所示,从最左边开始传送。

(www.xing528.com)

图1-17 以太网中网卡地址传送顺序

单播MAC地址属于特定的网卡,地址烧录在EPROM存储器中。组播MAC地址与单播不同,不属于某一块网卡,最常见的应用是IP组播地址与组播MAC地址的转换。当某台计算机需要向同属于一个IP多播组的主机发送数据时,数据将从协议栈高层向下层交付,在数据链路层收到上层数据构造数据帧时,将根据IP组播地址计算需要使用的组播MAC地址,例如D类IP地址224.50.50.42将转换为“01-00-5E-32-32-2A”,数据链路层报文的目标地址字段将填充“01-00-5E-32-32-2A”,数据包构造完整并发出后,加入224.50.50.42多播组的主机的网卡都能够收到数据包。

IP地址224.50.50.42转换为组MAC地址“01-00-5E-32-32-2A”依据下面的算法

组播MAC地址=“01-00-5E 0”+组播IP地址的后23位

“01-00-5E 0”是25位的固定值,它的二进制表示就是“0000 0001 0000 0000 0101 1110 0”,因此,组播MAC地址的范围是01-00-5E-00-00-00到01-00-5E-7F-FF-FF。IP地址224.50.50.42的二进制表示为:“1110 0000 0011 0010 0011 0010 0010 1010”,后23位为“011 0010 0011 0010 0010 1010”,根据算法计算出组播MAC地址为“0000 0001 0000 0000 0101 1110 0011 0010 0011 0010 0010 1010”即“01-00-5E-32-32-2A”。

通过计算能够发现IP地址225.50.50.42与224.50.50.42具有相同的转换MAC地址,原因是这两个IP的后23位是一样的。32位IP地址中如果23位固定,则只有9位可以发生变化,又因为D类IP地址固定以“1110”开始,所以只有5位能够发生变化。因此具有相同后23位的D类IP共有25=32个。要避免在同一网络中使用的多个组播IP地址对应一个MAC地址。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈