在线工具 在线编程 在线白板 在线工具 在线编程 在线白板

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

兄弟姐妹帮我讲解下,有了IP地址,为什么还要用MAC地址?
最新回答
浅时光倾城

2024-11-22 11:27:10

世间万物存在即合理,有了IP地址,同时还需要MAC地址最大的原因不外乎MAC地址具有IP地址所不具备的特性,而这些特性是我们所必需的不可缺少。

01 MAC地址概述

明人不说暗语,在我回答这一问题前我是根本就不知道MAC地址是什么东西的,似乎在现实中我们听到比较多的是IP地址,那么MAC 地址到底是“何方妖孽”呢?

MAC 地址 是制造商为网络硬件 (如无线网卡或以太网网卡)分配的唯一代码,它是一个用来确认网络设备位置的位址,MAC地址用于在网络中唯一标示一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址,即网卡和MAC地址是一一对应的关系。MAC地址也叫物理地址、硬件地址或链路地址,由网络设备制造商生产时写在硬件内部。这个地址与网络无关,也即无论将带有这个地址的硬件(如网卡、集线器、路由器等)接入到网络的何处,它都有相同的MAC地址,MAC地址一般不可改变,不能由用户自己设定。

想必屏幕前的你与我一样,看了半天也没看懂,那么客观的来讲,IP地址和MAC 地址有什么区别吗,这种区别使我们足以在有了IP地址之后还在使用MAC 地址呢?

02 MAC与IP地址区别

1、MAC地址的长度为48位(6个字节);而IP地址为32位。

2、MAC地址应用在OSI第二层,即数据链路层;IP地址应用于OSI第三层,即网络层。3、MAC地址的分配是基于制造商;IP地址的分配是基于网络拓朴。简单地说:ip地址是服务商给你的,mac地址是你的网卡物理地址。

3、MAC地址的分配是基于制造商;IP地址的分配是基于网络拓朴。简单地说:ip地址是服务商给你的,mac地址是你的网卡物理地址。

03 MAC必需性

对于网络上的某一设备,如一台计算机或一台路由器,其IP地址可变(但必须唯一),而MAC地址不可变。我们可以根据需要给一台主机指定任意的IP地址,如我们可以给局域网上的某台计算机分配IP地址为192.168.0.112,也可以将它改成192.168.0.200。而任一网络设备(如网卡,路由器)一旦生产出来以后,其MAC地址永远唯一且不能由用户改变。

IP 地址是基于逻辑的,比较灵活,不受硬件的限制,也容易记忆。而 MAC地址在一定程度上与硬件一致,是基于物理的,能够标识具体的网络节点。这两种地址各有优点,使用时也因条件不同而采取不同的地址。

04 总结

一.   整体与局部

信息传递时候,需要知道的其实是两个地址:终点地址(Final destination address)下一跳的地址(Next hop address)IP地址本质上是终点地址,它在跳过路由器(hop)的时候不会改变,而MAC地址则是下一跳的地址,每跳过一次路由器都会改变。这就是为什么还要用MAC地址的原因之一,它起到了记录下一跳的信息的作用。

注:一般来说IP地址经过路由器是不变的,不过NAT(Network address translation)例外,这也是有些人反对NAT而支持IPV6的原因之一。

二.   分层实现


如果在IP包头(header)中增加了”下一跳IP地址“这个字段,在逻辑上来说,如果IP地址够用,交换机也支持根据IP地址转发(现在的二层交换机不支持这样做),其实MAC地址并不是必要的。但用MAC地址和IP地址两个地址,用于分别表示物理地址和逻辑地址是有好处的。这样分层可以使网络层与链路层的协议更灵活地替换,网络层不一定非要用『IP』协议,链路层也不一定非用『以太网』协议。这就像OSI七层模型,TCP/IP五层模型其实也不是必要的,用双层模型甚至单层模型实现网络也不是不可以的,只是那样做很蛋疼罢了。

龇牙咧嘴你干哈

2024-11-22 12:43:59

我认为,IP地址和MAC地址可以类比生活中寄快递的过程。

        在整个网络中数据被封装成数据报文进行发送,就像我们生活中寄快递时将物品放进包裹中。而数据在路由器之间的跳转也可以看作是不同地区快递小哥对物流的交接。

IP地址

ip地址等价于快递包裹上的 收件人地址。

快递员通过收件人地址将包裹在出发地到目的地之间连出一条线,然后通过不同地区之间的物流中转最后将包裹送到收件人的手中。

        同理 ,ip地址也具备此功能 ,通过IP地址的网络位可以确定某个主机所在网络的位置,从而明确一条数据传送的路径。例如目的地址为192.168.10.110/26,则该地址所在的网络为192.168.10.64

用之前图示地址的寻址方式,我们可以模拟这一过程

那么,还是那个问题,为什么还要MAC地址呢?

MAC地址

MAC地址等价于快递包裹上的 收件人姓名。

MAC地址更多是用于确认对方信息而存在的。就如同快递跨越几个城市来到你面前,快递员需要和你确认以下收件人是否正确,才会把包裹交给你一样。

这里我们模拟一个场景,比如在学校里同一个班级的学生大家互相都认识,互相交流就不需要借助学号(这里抽象成ip地址),直接喊名字即可。“喂,那个谁,把你作业让我抄一下”。

这个过程可对应网络中同一个交换机或集线器连接的局域网通信。在局域网中通信需要通过MAC地址进行通信。将数据封装成帧时会插入源mac地址和目的mac地址(如果不知到对方mac地址会发送arp广播报文获取对方mac地址)。以太网帧结构:


而后,帧结构再次添加IP头部信息。

        虽然这里有ip地址,但是它在局域网中不起作用,因为arp是用于网络中寻址的,而在局域网中所有主机互相可见。(除此之外,局域网中ip地址最多是在arp广播时,作为收到包的主机解包时判定的依据,判定自己是否为目的主机,从而选择是否回应arp应答)。

        而IP地址的使用条件,是在跨网络之后。两个网络之间想要进行通信需要通过一个媒介,因为在网络内部的主机定位不到网络外的某个主机,即使他们只隔了一个网段也是一样。(欢迎关注公众号:网络工程师阿龙)而跨网段的媒介就是路由器,只要把ip地址告诉它,他就能找到对方所在的网络。


终于,我们理清楚了整个IP与MAC的关系。总结一下:

  • 各个设备之间传递数据时,需要使用到MAC地址以确定对方的身份(场景:两个路由器之间跳转,局域网内主机通信)。

  • 各个网路之间通行需要使用到IP地址,主要是为了定位目的地址所在的位置,通过IP的分段机制推演出 从源IP到目的IP的一条路径,而后数据包通过这条路径将数据送达。

无限可能

2024-11-22 09:35:04

首先我们需要明确的是,MAC地址的诞生早于IP地址。在计算机设计之初,设备之间使用MAC地址互相确认身份,因为当时的网络拓扑并不大,我们完全可以让两台计算机之间两两互相发送数据。如果有5个主机需要互通的话,那么它的拓扑结构可能是这样,如图所示。

每台主机发送数据前需要携带自己和对方的目的MAC地址,因为hub集线器只是将所有数据从其他接口发送出去,它将数据的是否接收留给了主机自己判断。

各个设备之间传递数据时,需要使用到MAC地址以确定对方的身份(场景:两个路由器之间跳转,局域网内主机通信)。各个网路之间通行需要使用到IP地址,主要是为了定位目的地址所在的位置。

虽然这里有ip地址,但是它在局域网中不起作用,因为arp是用于网络中寻址的,而在局域网中所有主机互相可见。除此之外,局域网中ip地址最多是在arp广播时,作为收到包的主机解包时判定的依据,判定自己是否为目的主机,从而选择是否回应arp应答。

如果在学校网络内部向访问某个研究机构共享的资料,这就是跨网络访问了。此时IP地址才派上用场。ip地址给出一段段具备层级关系的数字地址,它就像思维导图一样可以通过给定地址高效的找出我们想要的那一项。

当有网络连接上互联网时,给它分配一个ip地址,这样就能通过这些ip地址确定对方网络(或设备)在互联网络中的位置,从而进行访问。

以上集线器和交换机都是局域网的通行,无需IP地址参与。而随着网络的扩大,局域网规则已经不再适合了。

许多个类似上述的局域网组成一个大的互联网。它们彼此相连互相通信。

简而言之,标识网络中的一台计算机,比较常用的就是IP地址和MAC地址。如果只用MAC地址的话,路由器则需要记住每个MAC地址在哪个子网,这需要路由器有极大的存储空间,是无法实现的。IP地址可以比作为地址,MAC地址为收件人,在一次通信过程中,两者是缺一不可的。

酷炸小仙女

2024-11-22 11:13:44

      ⭐作为一名

计算机科学与技术专业
大三学生,在经过计算机网络的学习,IP地址和
MAC地址
是标志在网络上每一个主机的一系列二进制数字地址,它们在互联网上一定是唯一的。但是它们还是有很大不同的,都有各自的功能,都是不可或缺的,不能说有了IP地址,MAC地址就不需要了。