前言:
首先明确一个问题:IP地址是IP协议的一个点标识,MAC地址也只是MAC子层的一个链路层标识。IP协议与MAC协议是分属两层的,功能是不冲突的,主要问题是IP地址和MAC地址是否可以统一使用一个标识。此文仅讨论在一般以太网中的场景。
我们知道IP协议作为网络层协议,实现点到点的数据传输,主要的依赖就是利用IP地址进行路由转发。而mac地址也是一个标识,其一般烧录在网卡中。一般情况下,大家认为mac地址的作用是因为IPv4地址是不充足的,因此有子网,ARP等,需要mac地址作为类似身份证号的唯一标识,以及mac地址不方便进行路由,所以需要具有区域性质的IP地址作为网络层数据标识。我对于IP地址与MAC地址的关系,以及两者的功能重复性问题也很不解,因此在本文中对这两个地址的意义做一个全面的审查和思考,从实践和历史的角度来梳理一遍。
正如哲学上常说的,一个问题要从理论指导,实践结合,以及历史性因素中去看待,去剖析。为了说明后面的结论,先引出一个历史和实践背景:MAC地址是先于IP地址出现的,(那时还没有分层协议)MAC子层只是数据链路层中的一个子层,且数据链路层不仅仅服务于IP协议。
计算机之间的通信发展史可以查看低并发大佬的图文,并茂理解: https://mp.weixin.qq.com/s/jiPMUk6zUdOY6eKxAjNDbQ
循着历史发展,再看一遍MAC地址产生和发光发热的时刻:
在最开始的时候,人们发明了计算机,为了能实现计算机之间的通讯,自然的想到用一根线将两台计算机连接起来,若是有多个计算机怎么办呢?可以每个计算机都连接n-1根线,分别连接其他计算机,但是这样会需要很多线,很多物理端口。于是星型、总线、环形等拓扑结构被设计实现:
(图片来源:百度百科)
这个时候,MAC地址这个东西必不可少的出现了,因为涉及到两个地方:
1.在没有独立端口的情况下,需要一个标识识别网络中的数据来源于哪一个设备。
2.更前置的条件,为了避免数据冲突干扰,实现多路访问控制仲裁等,也需要一个标识。
随着网络发展,接入的主机越来越多,上图中的每一个拓扑结构都将大幅增大网络复杂度,和大幅降低网络质量。于是出现了三级结构互联网以及多层次的ISP互联网,计算机网络协议标准也随之产生与确立。在进入这一阶段后,建立了OSI开放式系统互联架构,确立了TCP/IP作为通用协议。此时没有使用"TCP/MAC"而使用单独的IP标识,主要原因应该就是MAC地址的区域无关性,使得若使用MAC地址做个IP标识,将会对路由转发造成很大的困难。
此外,ARP协议中用到了MAC地址,可以用来申请IP地址,作MAC映射等,其实此时使用IP地址代替MAC地址是可行的,虽然IP地址不是网卡本身具有的,但一般以太网交换机网络中,每一台主机分别接入一个独立的中间设备独立端口,是可以使用端口识别的。而在无线Wifi网络中,CSMA/CA协议时分复用的特性,实际上也可以没有固定的MAC地址,直接接入申请也是可以的。
总结下:
1.受历史以及复杂的网络环境影响,仅使用IP地址是不行的。
2.仅在以太网TCP/IP协议栈环境下,重新修改设计链路层,可以做到使用IP地址标识代替MAC地址。
3.若使用MAC地址代替网络层的IP地址标识,最大的问题就是无法高效的路由转发。
参考信息:
有了 IP 地址,为什么还要用 MAC 地址? - 知乎
有了IP地址,为什么还要用MAC地址?_百度知道
【计算机网络】有了ip地址,为什么还要mac地址 - 倒骑驴子 - 博客园文章来源:https://www.toymoban.com/news/detail-698604.html
有了IP地址为什么还需要MAC地址_莫名OS的博客-CSDN博客_为什么有了ip地址还要有mac地址文章来源地址https://www.toymoban.com/news/detail-698604.html
到了这里,关于有ip地址为什么要mac地址,或者说没有mac地址可以吗?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!