今天想和你聊聊Mac地址。
到底啥是Mac地址?官方直译是媒体存取控制位址,是一个用来确认网络设备位置的位址。
在OSI模型中,第三层网络层负责IP地址,第二层数据链路层则负责MAC位址
MAC地址用于在网络中标识唯一一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。
那么,Mac地址真的不会有重复的吗,怎么做到全球唯一的?
01IP地址和Mac地址产生的目的是方便别人找到自己
Mac地址有点像身份证号码,而IP地址就像门牌号码。
MAC地址(物理地址、硬件地址)是实实在在的网络设备出身地址,它是由厂商写入网络设备的bios中。
网络设备厂商也并不能随意的使用Mac地址,需要向IEEE申请,当然厂商申请需要付费。
MAC地址的长度为48位(6个字节),通常表示为12个16进制数。
如:00-16-EA-AE-3C-40就是一个MAC地址,其中前3个字节,16进制数00-16-EA代表网络硬件制造商的编号。
它由IEEE(电气与电子工程师协会)分配,而后3个字节,16进制数AE-3C-40代表该制造商所制造的某个网络产品(如网卡)的系列号。
只要不更改自己的MAC地址,MAC地址在世界是唯一的。
形象地说,MAC地址就如同身份证上的身份证号码,具有唯一性,比如一台电脑的网卡坏掉了之后,更换一块网卡之后MAC地址就会变。
IP 地址是基于逻辑的,比较灵活,不受硬件的限制,也容易记忆。
而 MAC地址在一定程度上与硬件一致,是基于物理的,能够标识具体的网络节点。
这两种地址各有优点,使用时也因条件不同而采取不同的地址。
02聊聊网络的变迁
早期的以太网只有集线器(Hub)、没有交换机(Switch),所以发出去的包能被以太网内所有的机器监听到。
所以数据包就需要带上源mac地址和目的mac地址,每个机器只需要接受和自己的MAC地址相匹配的数据包。
局域网数据传输并不是通过网络层的IP地址进行路由和转发,想要在局域网中发送数据,还需要知道设备的mac地址。
比如我们的电脑向其他局域网中的其他电脑发送数据时,它会先通过ARP(地址解析协议)在局域网中获取目的IP地址所对应的MAC地址。
在局域网中如果采用集线器来连接不同的网络设备,相同的MAC地址一般不会出现太多的问题。
在集线器连接的局域网中所有的数据帧都会被广播给局域网内的全部主机,而通过交换机连接不同的网络设备就会受到影响,交换机需要学习局域网中不同设备的Mac地址并将数据帧转发给特定的主机。
所以Mac地址其实是可以重复使用的,只是不能在同一个局域网中使用相同的MAC地址。
03Mac地址会有重复
按照IEEE的协定每个网络设备出厂都会有全球唯一的Mac地址,并且使用过的也不会再重复使用。
但不意味着Mac地址就不会出现重复了,很多小伙伴们都改过Mac地址,有的直接可以通过系统进行修改。
在命令提示符下输入命令“ipconfig /all”回车之后就会显示当前计算机的一些网络信息,其中“Physical Address”字样的这一项就是当前计算机中网卡的 MAC地址。
当然,如果计算机中安装有多个网卡,则会有多个“Physical Address”字样。
有的网络设备允许你在管理后台手动的修改mac地址。
以上这些都是通过虚拟的方式覆盖原有的Mac地址,并没有更改掉设备出身时烙印的Mac地址。
出身时烙印的Mac地址也并不是不能修改,通过硬件写入的方式同样的可以修改Mac地址,本质上Mac地址就是一串二进制数,存放在了bios的某个存储区域内。