为什么有了IP地址,还需要MAC地址

文摘   科技   2023-04-17 16:15   江苏  

课堂上老师或者面试中面试官有时候可能会问到:为什么有了IP地址,还需要MAC地址呢?

更多时候,我们对于"IP地址+Mac地址"的组合会觉得习以为常,因为大学里面老师就是这样讲的,网络通信时候两个都会用到。但是其中的深层次原因可能从未思考过。这样,当我们被问到的时候,可能会手足无措或者一通乱讲。

假如我们瞎扯的话传到了“IP地址”和“MAC地址”的耳朵里,他俩想必会非常无奈,今天小编把话筒递给他们,看看他们怎么说?

MAC&IP的自白

MAC地址说:

我是MAC地址,工作在数据链路层,生活在物理网卡上。

我对感情极其专一,讲究从一而终,这一辈子我的“CP”都是同一块网卡。我们的感情十分稳定,每一块网卡都只有一个独一无二的MAC地址,不像IP地址那样朝秦暮楚。

IP地址说:

我是IP地址,工作在网络层,生活在IP协议簇中。

我已习惯了经常和不同的设备组“CP”,因此江湖中我的故事非常多,风言风语更是数不胜数,特别是MAC地址,经常说我朝三暮四。

也有人说,男人的心胸是被委屈撑大的,个中心酸也只有自己最清楚,我在同一时间也只有唯一的一个“CP”,和这个设备的CP组合结束了,没有任何休息时间,就要被安排去和另外一个设备“组CP”了,生产队的驴都没有我忙。

停停停!你们这说的都是什么乱七八糟的。

还是让小编来科普一下吧!

MAC地址前世今生

MAC地址,全称为Media Access Control Address,直译为媒体存取控制地址,又名物理地址、硬件地址。

每个网卡出厂时,厂家都会为其标记全球独一无二的序列号,类似于中华人民共和国的身份证号码

换一句话讲,即MAC地址并非针对设备而言的,而是针对网卡的。

一般来讲,PC机或者服务器上有几个网卡,就有几个MAC地址。比如笔记本电脑具有有线和无线两种联网方式,网卡也就分为有线网卡和无线网卡两种,即存在分别代表有线和无线的两个MAC地址。

IP地址

IP地址,全称为Internet Protocol Address,直译为互联网协议地址

主要用途是区分互联网中不同的联网网络设备。

IP地址为连入互联网(公网)内的每台网络设备提供一个独一无二的逻辑地址标识。通过IP地址,我们可以在互联网中准确找到目标设备,并与其建立通信。就如同现实生活中网购时填写的收件地址

IP地址与MAC地址不同的是,为保证网络高效运行,IP地址是可以动态分配的,也可以人为修改,好比孟母三迁,为了小孩读书你可以经常搬家。

但是MAC地址不可以随意改变,就如同你的身份证号,无论你走到哪里,身份证号都是证明“你是你”的最有效的凭证~

IP&MAC区别

下表整理了MAC地址和IP地址的区别,让我们一起来看一下。


MAC地址IP地址
格式
00:16:2E:00:F3:C0 6个16进制数,用“:”隔开其中前6位16进制数表示网络硬件制造商的编号192.168.10.10个8位二进制数,用“.”隔开(以应用最广泛的IPv4地址为例)
地址类型
物理地址逻辑地址
是否可变
正常情况,不可变更可以手动变更,或重新自动分配
分配方式
固定/静态分配动态/静态分配
用途
识别网络适配器和设备实现数据传输,确定数据包发送和接收
网络层级
数据链路层(二层)网络层(三层)

为何缺一不可?

一句话概括,IP地址和MAC地址产生的目的是为方便在网络中精准地找到不同的设备。

由上文可知,MAC地址类似于身份证号码,IP地址类似于收件地址。

假如有一封绝密文件,必须由小编本人签收。则如果只有身份证号码(MAC地址),在茫茫人海中肯定找不到小编,仿佛泥牛入海,大海捞针。

如果只有收件地址(IP地址),可以找到小编的家,但是家里具体哪个人是小编呢?还是无法分清。

但是如果把住址(IP地址)和身份证号(MAC地址)配合使用,就可以先找到xx省→xx市→xx区→xx街道→xx小区,再通过身份证号码(MAC地址)就可以很容易找到小编啦。

同样道理,在设备进行网络通信的时候,IP地址和MAC地址也是缺一不可。

在网络上,通信的双方在同一局域网(LAN)内的情况是比较少的,往往需要经过多台计算机和网络设备的中转才能连接到对方。虽然IP地址在一个LAN中是唯一的,但是不同的局域网中的IP地址却有可能是相同的;与此同时,IP地址也可以手动更改,这样就有可能出现重复的IP地址。但MAC地址是唯一的,不同的设备上的MAC地址是完全不同的,所以不同的局域网需要依靠MAC地址才能识别不同的网络设备,从而避免因IP地址相同导致无法区分网络设备。

综上可知,“IP地址+MAC地址”才是真正的“CP”,只有通过二者配合使用才能确定网络中唯一的一台设备,网络通信中的数据传输才不会出错。


Linux二进制
学习并分享Linux的相关技术,网络、内核、驱动、容器等。
 最新文章