MAC地址和IP地址的区别与联系

618 阅读6分钟

在学习《图解HTTP》时,书本对于IP地址和MAC地址以及ARR协议略有提及,让我摸不着头脑。 首先IP地址为什么要依赖于MAC地址?他们各自的核心作用又是啥?为什么要同时有两个地址? 下面这篇博客可以有效解决我的问题

转载自MAC地址和IP地址的区别与联系

IP地址有何作用

如果两个节点处于不同的网络之间该怎么办?

路由选择、网络间通讯:

  • IP协议作用于网络层,自然负责网络之间的传输
  • IP地址由网络地址和主机地址两部分组成,分配给这两部分的位数随地址类(A类、B类、C类等)的不同而不同。
  • 网络地址用于路由选择,而主机地址用于在网络或子网内部寻找一个单独的主机。
  • 一个IP地址使得将来自源地址的数据通过路由而传送到目的地址变为可能。

MAC地址在数据传输中有何作用

怎样在一条物理链路上实现两个节点之间的通讯?

网络层分工:将数据从一个网络传递到另一个网络(两个大网络之间)

数据链路层分工:将数据从一个节点传递到另一个节点(单条线路而言)

IP地址和MAC地址联动

MAC地址作为物理地址唯一标识一个网卡地址在数据链路层自然是起到选址作用,IP地址需要映射自身作为MAC地址,来真正参加路由选择(链接网络的链路选择),即数据传输本身需要MAC地址,IP地址作为更高层抽象,只需关注网络与网络之间的通讯。

更通俗地说:由于考虑网际间传输参考实际的设备拓扑不实际(每次更换网络都要换地址),我们采用逻辑上的网络拓扑,IP地址的存在使得这个简单的思路得以实现(因为是从物理层面再进行抽象),IP地址是路由选择的实际决策依据,它可以保证从一个网络移动到另一个网络。但是在更小的层面上,一个路由怎么决定到另一个路由呢(问题缩小为具体的一条链路)?

为什么还要分配IP地址?

对于MAC地址,由于我们不直接和它接触,所以大家不一定很熟悉。在OSI(Open System nterconnection,开放系统连)7层网络协议(物理层,数据链路层,网络层,传输层,会话层,表示层,应用层)参考模型中,第二层为数据链路层(Data Link)。它包含两个子层,上一层是逻辑链路控制(LLC: Logical Link Control),下一层即是我们前面所提到的MAC (Media Access ontrol) 层,即介质访问控制层。

既然每个以太网设备在出厂时都有一个唯一的MAC地址了,那为什么还需要为每台主机再分配一个IP地址呢?或者说为什么每台主机都分配唯一的IP地址了,为什么还要在网络设备(如网卡,集线器,路由器等)生产时内嵌一个唯一的MAC地址呢?

主要原因有以下几点:

  1. iP地址的分配是根据网络的拓朴结构,而不是根据谁制造了网络设置。若将高效的路由选择方案建立在设备制造商的基础上而不是网络所处的拓朴位置基础上,这种方案是不可行的。
  2. 当存在一个附加层的地址寻址时,设备更易于移动和维修。例如,如果一个以太网卡坏了,可以被更换,而无须取得一个新的IP地址。如果一IP主机从一人网经移到另一个网络,可以给它一人新的IP地加,而无须换一人新的网卡。
  3. 无论是局域网,还是广域网中的计算机之间的通信,最终都表现为将数据包从某种形式的链路上的初始节点出发,从一个节点传递到另一个节点,最终传送到目的节点。数据包在这些节点之间的移动都是由ARP(Address Resolution Protool: 地解析协议)负责将P地址映射到MAC地址上来完成的。下面我们来通过一个例子看看IP地址和MAC地址是怎样结合来传送数据包的。
  4. 假设网络上要将一个数据包(名为PAC) 由北京的一台主机,(名称为A,IP地址为IP A,MAC地址为MAC A)发送到华感顿的一合主机(名称为B。IP地址为IP B,MAC地址为MAC B)。这两台主机之间不可能是直接连接起来的,因而数据包在传递时必然要经过许多中间节点(如路由器,服务器等等),我们假定在传输过程中要经过C1、C2、C3(其MAC地址分别为M1,M2,M3) 三节点。A在将PAC发出之前,先发送一个ARP请求,找到其要到达IP B所必须经历的第一个中间节点C1的MAC地加M1,然后在其数据包中封装 Encapsulation) 这些地址:P A、IP B,MAC A和M1。当PAC传到C1后,再由ARP根据其目的IP地址IP B,找到其要经历的第二个中间节点C2的MAC地M2,然后再将带有M2的数据包传送到C2。如此类推,直到最后找到带有IP地址为IP B的B主机的地址MAC B,最终传送给主机B。在传输过程中,IP A、IP B和MAC A不变,而中间节点的MAC地址通过ARP在不断改变 (M1,M2,M3).直至目的地址MAC B。

IP地址和MAC地址的区别是什么

  1. 对于网络上的某一设备,如一台计算机或一台路由器,其IP地址可变(但必须唯一),而MAC地址不可变。我们可以根据需要给一台主机指定任意的IP地址,如我们可以给局域网上的某合计算机分配IP地址为192.168.0.112 ,也可以将它改成192.168.0.200。而任一网络设备 (如网卡,路由器)旦生产出来以后,其MAC地址永远唯一且不能由用户改变。
  2. 长度不同。IP地址为32位,MAC地址为48位。
  3. 分配依据不同。IP地址的分配是基于网络拓扑,MAC地址的分配是基于制造商
  4. 寻址协议层不同。IP地址应用于OSI第三层,即网络层,而MAC地址应用在OSI第二层,即数据链路层。 数据链路层协议可以使数据从一个节点传入到相同链路的另一个节点上(通过MAC地址),而网络层协议使数据可以从一个网络传递到另一个网络上 (ARP根据目的IP地址,找到中间节点的MAC地址,通过中间节点传送,从而最终到达目的网络)。