有IP地址为什么要MAC地址,或者说没有MAC地址可以吗?

文摘   2025-01-19 05:30   河北  

前言:

       首先明确一个问题:IP地址是IP协议的一个点标识,MAC地址也只是MAC子层的一个链路层标识。IP协议与MAC协议是分属两层的,功能是不冲突的,主要问题是IP地址和MAC地址是否可以统一使用一个标识。此文仅讨论在一般以太网中的场景。

       我们知道IP协议作为网络层协议,实现点到点的数据传输,主要的依赖就是利用IP地址进行路由转发。而MAC地址也是一个标识,其一般烧录在网卡中。一般情况下,大家认为MAC地址的作用是因为IPv4地址是不充足的,因此有子网,ARP等,需要MAC地址作为类似身份证号的唯一标识,以及MAC地址不方便进行路由,所以需要具有区域性质的IP地址作为网络层数据标识。我对于IP地址与MAC地址的关系,以及两者的功能重复性问题也很不解,因此在本文中对这两个地址的意义做一个全面的审查和思考,从实践和历史的角度来梳理一遍。

       正如常说的,一个问题要从理论指导,实践结合,以及历史性因素中去看待,去剖析。为了说明后面的结论,先引出一个历史和实践背景:MAC地址是先于IP地址出现的,(那时还没有分层协议)MAC子层只是数据链路层中的一个子层,且数据链路层不仅仅服务于IP协议。

在最开始的时候,人们发明了计算机,为了能实现计算机之间的通讯,自然的想到用一根线将两台计算机连接起来,若是有多个计算机么办呢?可以每个计算机都连接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地址标识,最大的问题就是无法高效的路由转发。    

外太空的金山
通信小白一枚,在学习中分享知识,还望多多指点
 最新文章