打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
网络中为什么 IP 地址 MAC 地址都要有了

每一个连接到因特网(Internet)的计算机,包括电脑、手机、iPad 等,它们都有两个地址,分别是 IP 地址和 MAC 地址。
IP 和 MAC 都是地址,都用来标识连接到网络中的计算机,看起来是两种类似的技术,这让读者感到非常困惑,搞不清它们之间的区别,更不理解“为什么一台计算机需要两个地址”。
关于这个问题,网络上也有各种各样的解释,但是都不太清楚,所以我决定自己写一篇文章,简明地谈一下 IP 地址和 Mac 地址的区别,以及它们在网络通信中扮演的不同角色。

IP地址

IP 地址是 Internet Protocol Address 的缩写,译为“网际协议地址”。目前有大部分软件使用 IPv4 地址,但 IPv6 也正在被人们接受,尤其是在教育网中,已经大量使用。


每一台计算机使用的 IP 地址,是由 ISP(指提供 Internet 服务的公司,比如电信、网通、移动等)负责分配的。通常情况下,计算机每次连接网络使用的 IP 地址都是不固定的,换句话说,ISP 会动态分配一个 IP 地址给它。
一台计算机可以拥有一个独立的 IP 地址,一个局域网也可以拥有一个独立的 IP 地址(对外就好像只有一台计算机)。对于目前广泛使用 IPv4 地址,它的资源是非常有限的,一台计算机一个 IP 地址是不现实的,往往一个局域网才拥有一个 IP 地址。
计算机之间进行通信,必须要知道对方的 IP 地址。实际上,计算机发出的数据包中已经附带了 IP 地址,把数据包发送给路由器以后,路由器会根据 IP 地址找到对方的地理位置,完成一次数据的传递。路由器有非常高效和智能的算法,很快就会找到目标计算机。

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

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

从上图的粗箭头所描述的路径便可达到目的地址,陕西省-西安市-xx县-xx街道-…。

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

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

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

MAC地址

通常情况下,一个局域网才能拥有一个独立的 IP,换句话说,IP 地址只能定位到一个局域网,无法定位到具体的某个设备。这可怎么办呀?这样也没法通信啊。
其实,真正能唯一标识设备的是 MAC 地址。MAC 地址是 Media Access Control Address 的缩写,直译为“媒体访问控制地址”,也称为局域网地址(LAN Address),以太网地址(Ethernet Address)或物理地址(Physical Address)。


计算机出厂时,MAC 地址已经被写死到网卡里面了(当然通过某些“奇巧淫技”也是可以修改的),每个网卡的 MAC 地址在全世界都是独一无二的。
局域网中的路由器/交换机会记录每台计算机的 MAC 地址。当一台计算机通过网络向另一台计算机发送数据时,数据包中除了会附带对方的 IP 地址,还会附带对方的 MAC 地址。当数据包达到局域网以后,路由器/交换机会根据数据包中的 MAC 地址找到对应的计算机,然后把数据包转交给它,这样就完成了数据的传递。

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

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

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

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

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

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

(———图来自网络,侵删)

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

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

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

这就像是我是2020届计算机科学专业1班学生xx(学号202015162,15代指专业计算机科学专业,62代指“我”在本班的学号),我现在想找2022届学弟yy(学号2022…)。我们之间不认识,但是我可以找一个中间人,帮我送信。

这个中间人是局域网网关,是路由器。他们的功能是,转述我的消息,并且按照目的ip地址将它发给下一个“中间人”,最后送到“yy”手中。

以下是关于mac地址与ip地址的爱恨纠缠… 以下内容有借鉴到文章:《闪客sun(低并发编程):如果让你来设计网络》

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

如果是这样的话,我们其实无需MAC地址,因为每个网卡明确对应一台主机。而实际是,一台计算机要配置这么多网卡的需要耗费更多的money,你也不想买一台计算机后还需要额外再买十几个网卡把。

因此我们可以采用集线器的方式将所有计算机通过网线聚集在一起会更加方便。

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

集线器只是无脑的做数据发送,因此我们认为它是数据链路层的设备。

集线器太笨了,它将每一通信都发给所有主机,在各主机之间交流频繁时会造成网络的拥堵乃至瘫痪,因此我们进行了升级,使用交换机设备。

交换机内部维护一张 MAC 地址表,记录MAC地址与交换机各端口之间的关系,这样就无需将所有数据发送的局域网中。通过思科的Cisco packet tracer仿真软件可以看到交换机的MAC地址表。

这样,当pc0(192.168.1)ping pc3(192.168.4)时,交换机查自己的mac表,发现自己的以太网fa0/4接口的出口对应的就是目的主机mac地址,则交换机将自己该数据报文转发从fa0/4接口转发出去。同时pc3收到了来自pc0的数据报文。

交换机相对集线器,拥有决定数据从交换机的哪个端口转发出去的功能,因此我们认为交换机在数据链路层(决定数据转发至哪一条链路上)。

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

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

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

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

连接在互联网上的具有ip的可以是一个单个的设备,比如某个服务器、某个网络摄像头等,也可以是某个局域网,如学校的校园网,公司内部网络等(局域网与公网通信使用NAT、PAT等方式,或内网穿透等技术)。

为了实现在网络中,跨网段的访问,因此诞生出新的设备叫路由器。它可以根据内置的路由条目决定将数据包转发到哪个网络中,最终可以到达目的网络。

需要注意的是,路由器是多个网络的中间人,它有很多端口分别处于不同的网络中(路由器的每一个端口,都有独立的 MAC 地址和IP地址),这样它就可以把“来自A网络的信息转发至B网络,因为路由器的接口同时连接这这几个网络”。

路由器可以让数据在网络中跨网络的通信,因此我们认为路由器是网络层的设备。

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

  • 各个设备之间传递数据时,需要使用到MAC地址以确定对方的身份(场景:两个路由器之间跳转,局域网内主机通信)。
  • 各个网路之间通行需要使用到IP地址,主要是为了定位目的地址所在的位置,通过IP的分段机制推演出从源IP到目的IP的一条路径,而后数据包通过这条路径将数据送达。
  • IP地址和MAC地址的区别

1、两者地址使用不同

IP地址是指Internet协议使用的地址,而MAC地址是Ethernet协议使用的地址。

当存在一个附加层的地址寻址时,设备更易于移动和维修。

2、分配依据不同

IP地址的分配是基于网络拓扑,MAC地址的分配是基于制造商。

IP地址是可以自动分配的,MAC地址在每个网卡出场的时候就有一个全球唯一的MAC地址,所以很多的验证软件就是验证MAC地址的。

IP地址用于表示网络中某设备或节点的身份(网络号、主机号)(本网段唯一)。

MAC地址用于表示某设备或节点在本以太网链路中的物理地址(全局唯一)。

3、地址能否更改不同

IP是可以更改的,可区别不同网段。

MAC地址虽然也可以更改,无法区分,但是一般用不上,除非要用来绕过一些验证软件的。网卡在通讯的时候通过MAC地址相互识别。

4、 长度不同

IP地址是由32位二进制组成,MAC地址是由48位二进制组成。

5、寻址协议层不同

IP地址应用于OSI第三层网络层逻辑地址,MAC地址应用在OSI第二层数据链路层物理地址。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何查看局域网内所有ip?
MAC地址克隆 破解共享限制让多机齐上网
有了 IP 地址,为什么还要用 MAC 地址?
局域网防范ARP攻击以及ARP命令的使用
谈谈ARP欺骗那点破事
路由器怎么设置MAC地址绑定?
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服