了解计算机网络的话,逃不过 IP 地址和 MAC 地址.
MAC ( Media Access Control ,介质访问控制 )地址,也叫硬件地址,长度是 48 比特( 6 字节),由 16 进制数字组成,分为前 24 位和后 24 位.前 24 位叫做组织唯一标志符( Organizationally Unique Identifier , OUI ),这是由 IEEE 的注册管理机构给不同厂家分配的代码,用来区分不同的厂家.后 24 位是厂家自己分配的,称为扩展标识符.对于同一个厂家来说,生产的网卡中 MAC 地址后 24 位是不一样的.
这样就保证了 MAC 地址的唯一性.
MAC 地址应用的场景有很多.
1 ,在一个局域网内, IP 地址应该都是动态分配的,假如我在公司局域网内的 IP 地址是: 192.168.1.156 ,现在我不在公司使用了,那么这个 IP 地址就给了别人,让别人使用.
也就是说, IP 地址和你正在使用的设备是不对应的,那我发出的请求,就没办法准确无误的到达我这里,在这种情况下,进行通信肯定会出现问题.
MAC 地址和设备在全球范围内都是唯一的,所以在局域网内使用 MAC 地址进行通信没什么问题.
2 ,在早期的以太网,只有交换机,没有路由器,以太网之间就是通过 MAC 地址来进行通信,后来有了互联网,为了兼容原来还是使用 MAC 地址的模式,采用了 IP+MAC 地址的方式.
估计看到这里你就有问题了,既然 MAC 地址在全球范围内都是唯一的,那我直接使用 MAC 地址来进行通信不就好了嘛?为什么还要有 IP 地址呢.
你想一想,全世界有那么多人,那么多人的 MAC 地址如果想要进行保存的话,是不是需要一张超级超级大 MAC 地址对应表?有了一张这样的对应表,为了寻找一个 MAC 地址,那个效率,想想就会很低.
而 IP 地址就可以很好的解决这个问题.
因为 IP 地址是网络提供商给你的,所以你在哪里整个网络都是知道的.
比如,你现在人在中国北京,那么 IP 地址就标识了你在中国.网络上有个请求需要到达你这里,对于别人来说,只需要将这个请求发送到中国就 OK 了,剩下的就是中国内部再进行处理.但是从全局来看,我只需要维护中国这个地址就够了.
还有一点,随着设备越来越多,而且还有虚拟化的设备和网卡,有很多工具还可以对 MAC 地址进行修改,就很难保证不冲突了,也就是说, MAC 地址也只是理论上是全球唯一,对于 MAC 地址,最低要求是在一个局域网内, MAC 地址是唯一的.
MAC 的设计方式,虽然不能保证绝对唯一(毕竟世界上没有非常绝对的事情),但是能够保证在一个局域网内出现冲突的概率很小.这样的设计,就能够让一台机器启动的时候,在没有 IP 地址的情况下,可以先用 MAC 地址进行通信,获得 IP 地址.
如果在局域网内,还能出现 MAC 地址冲突的话,那就让网络工程师采取一定的机制解决冲突就好了,这方面我就不擅长了.
以上.
接下来打算系统总结一下算法方面的知识.
最后,感谢您的阅读哇~