引言(有基础的同学可以不看):在复杂的网络通信中,有茫茫多的数据在中传输,它们是如何在相隔一步一步寻找到对方的呢?
网络通信的基本结构https://blog.csdn.net/qq_68140277/article/details/130937717?spm=1001.2014.3001.5501一片大佬的文章:
如果你来设计网络?https://mp.weixin.qq.com/s/jiPMUk6zUdOY6eKxAjNDbQ
前言:在读完上面2篇文章后(只读第二篇也行),想必大家已经解开了网络为啥有这么多的设计的战争迷雾,现在我们来讨论一个问题为啥我们有了唯一标识码的IP地址了,还要引用一个新的MAC地址,这不是多次一举吗?
一、MAC地址
1、mac地址定义与分配
mac地址是由网络设备制造商生产时烧录在网卡的EPROM(一种闪存芯片,通常可以通过程序擦写)。其中前 24 位(00-16-EA)代表网络硬件制造商的编号,后 24 位(AE-3C-40)是该厂家自己分配的,一般表示系列号。只要不更改自己的 MAC 地址,MAC 地址在世界是唯一的。形象地说,MAC地址就如同身份证上的身份证号码,具有唯一性。
2、mac地址的使用
首先我们知道(不知道的去引言看第二篇)mac地址是主要使用在数据链路层的标识符。
在一个局域网,一台主机向另一台主机发消息,将会先到数据链路层上的交换机,通过查表可知那个端口对应的那台主机。
二、IP地址
1、ip地址定义概念
在上个标题“mac地址的使用”中我们知道了mac地址是属于数据链路层(单个局域网)中处理原寻找目的主机的问题,但是我们使用的网络并不单是只有一个局域网,而是很多局域网公共组建的,而在不同的局域网之间,如何去跳转这个既是网络层的功能,而IP地址的也就在这里登场了!
疑问:我们在ip地址登场前不是已经有一个MAC地址可以作为主机的唯一标识符了吗?为啥还要弄一个IP地址??
答:由mac地址的分配可知,mac地址是直接由厂家烧制而成,厂家们自己为了区分其它厂家的产品,单个厂家的产品中分配的mac地址部分段落是一样的,如果我们直接使用mac地址充当ip地址的功能,会导致诸多问题,最大的问题:就是不同设备组网时,我们会将前缀的很多位(自己设置)是相同的地址组和在一起形成一个子网(可以理解成身份证前6位可以直接查到你是那个区的人),如果使用mac地址组子网,在这个子网中我们就只能全选该厂家的设备,这很明显是不现实的。
2、ip地址的使用
有定义可知ip地址是作用在网络层(不同局域网之间的跳转)中使用的,而所对应的常见设备就是路由器了
特别的:刚才说的都是 IP 地址,但发送数据包的数据链路层需要知道 MAC 地址,可是我只知道 IP 地址该怎么办呢?
答:电脑和路由器中都有 arp(用于ip和mac相互转化的协议) 缓存表用于缓存 IP 和 MAC 地址的映射关系。