如果我的计算机有IP地址,为什么需要MAC地址?

评论

为了给您最好的答案,您是否可以扩大问题范围,以包括为什么您认为如果计算机具有IP地址就不需要MAC地址?

我建议阅读一本关于网络的良好基础书籍并阅读;将是值得的。它将回答这个问题以及更多内容:amazon.com/Computer-Networking-Top-Down-Approach-Edition/dp / ...

这听起来可能有些陈词滥调,但这是减少混乱的最简单方法。为什么在计算机中放入以太网NIC?回答该问题,它回答有关Mac地址必要性的问题。

@Reprovo,评论/答案真正发表此声明的唯一地方是当OP响应Teun Vink的答案并希望避免在答案中建立网络模型时。如果您不知道网络模型的原因和方式,您真的不了解您的网络,而“完成工作”将会更加痛苦,或者会带来其他问题。作为网络专业人员,您实际上并不需要了解很多事情(例如,如何将位放在线路上等等),但是网络模型并不是他们可以避免的,至少可以避免对它们的基本了解。 />
@ user1369975,我认为您错过了重点。我们并不是说这个问题是无效的,也不是说人们不需要学习。但是,这是网络工程师/专业人员的网站,要求在此处给出答案,而忽略网络的基本基础是不合理的。如果您想要的答案不是针对其他网络专业人员的,则应在其他网站之一(例如SuperUser)上提问。

#1 楼

无需进入OSI模型,TCP层等。

过去,创建了网络:有些计算机会相互通信以共享某些东西。要做到这一点,他们需要知道正在和谁聊天。因此,我们没有给每台计算机起一个名字,而是给他们一个ID。此ID称为MAC地址,应该唯一地标识每台计算机。
关于计算机之间的通讯方式没有唯一的规范:出现了许多协议:TCP / IP,IPX / SPX等。每个协议都会指定他们认为可以的事情。例如,IPX / SPX将使用MAC地址和更多信息对每台计算机进行寻址。

但是TCP / IP协议的设计略有不同:他们决定使用由4个字节(0.0.0.0到255.255.255.255)就足够了,甚至更易于管理:网卡是否都具有相似的MAC地址都没关系,我们将计算机分组,以便所有TCP /以10.0.xx开头的IP地址是工程组的成员,也是10.1.x.x的成员。是打印机,并且...

因此,如果一个TCP / IP地址需要与另一个通信,则仅使用该TCP / IP地址。但是网络设备需要知道该消息将发送到哪个网卡,因此它们将以某种方式将TCP / IP地址转换为MAC地址。只是TCP / IP?

一些原因:


易于分组TCP / IP地址,
所有设备都内置了照顾MAC地址的功能,因此级别的需求,并且需要更改
,尽管绝大多数(我认为:-P),但仍在使用某些其他协议,并且它们依赖于MAC地址


#2 楼

MAC地址和IP地址在Internet协议套件的不同层上运行。 MAC地址用于在第2层上的同一广播网络中标识计算机,而IP地址在第3层上用于标识整个不同网络中的计算机。即使您的计算机具有IP地址,它仍然由于每一层都在使用底层,因此需要一个MAC地址来查找同一网络上的其他机器(尤其是通往网络/互联网其余部分的路由器/网关)。在前面提到的页面上,您可以找到一些漂亮的图,详细解释了协议套件。

评论


,非常感谢您的回答,但是如果任何人都可以给出回答,而又不遵循O.S.I.的规格,那将更好。层或T.C.P.层

–user1369975
2013年9月22日在16:44



如果太难了,那真的不是您的网站。您可能会认为这个问题原样是题外话,因为这是网络工程师的常识。

– Teun Vink♦
2013年9月22日在17:04

@ user1369975,您引用的模型是用于设计网络(硬件和软件)运行方式的框架。没有这种基本了解,就不会对您的问题做出有意义的回答。这类似于询问(关于美国公民)“如果他们有名字为什么需要社会安全号码”,而在答案中没有提到政府。

– YLearn♦
2013年9月22日在18:45

可以将MAC地址视为街道上房屋的描述。对您的邻居来说,他们都会理解“温室”或“约翰逊先生的房子”或“拐角处的复式”-这些与MAC地址相当,仅在本地进行描述。 IP地址是可公开路由的,因此就像使用完整地址一样:123 Main St,Somewhere,CA92069。然后我想IP到MAC就像邮递员走上街头大喊“谁在123 MAIN? !?!?”约翰逊先生听见他说:“这是温室!”我猜?可怕的比喻。

–David Houde
2013年9月26日上午10:27

这就解释了为什么在当前架构下需要它。但是,为什么首先要以这种方式设计架构?我可以轻松想象一个只有本地IP地址和WAN IP地址的世界。从技术上讲这是可能的。

– Hello World
15年7月27日在10:34

#3 楼

当您了解IP到IP的通信实际上只是在每个路由器跃点上进行的一系列MAC到MAC的通信时,您将了解为什么两者都是必要的。

离开工作站的数据包的IP标头将发往另一个子网中的IP,它将保留源IP和目标IP,暂时不考虑NAT。 [稍后,我将讨论目标位于同一子网内时发生的情况。]以太网标头包含您的源MAC和默认网关的目标MAC。从您的角度来看,您不了解最终目标MAC。第一个路由器会将源MAC重写为自身,并将目标MAC重写为下一个路由器跃点,依此类推,直到数据包到达直接连接到目标子网的最后一个路由器为止。

要尝试简单说明一下,考虑当数据包从源IP(sIP)移到目标IP(dIP)时的L2 / L3标头,并且以这种方式重写源MAC和目标MAC: last-destination和r1-r3是路由器:

fsMAC-r1MAC / sIP-dIP 
r1MAC-r2MAC / sIP-dIP
r2MAC-r3MAC / sIP-dIP
r3MAC-ldMAC / sIP-dIP


任何涉及的L2交换机都不会修改MAC地址。到子网中的另一个IP,需要直接进行MAC通信,但是要获得该MAC地址,则需要使用子网中的广播进行查找的ARP协议。顺便说一句,这是您的工作站如何获取默认子网中必须存在的默认网关的MAC地址的方法。

评论


综上所述,MAC是将消息从一跳发送到另一跳的原因,而IP则跟踪原始源和目的地。这似乎类似于邮局,我在菲尼克斯给奶奶写信,但从邮箱中捡来的邮递员只关心将其送到邮局,而邮局只关心将其送到分类处。中心等...

–科迪·布格斯坦(CodyBugstein)
14年6月24日在17:17

但是我的问题是,为什么要为MAC使用单独的协议?为什么不仅仅确定要跳到的下一个IP地址,并将当前的源/目标IP与原始源/目标IP一起存储?

–科迪·布格斯坦(CodyBugstein)
14年6月24日在17:18

@Imray:消除MAC协议的第一个问题需要重新设计/重写以太网和TCP / IP标准。其次,IP不是L3处唯一使用L2处的MAC地址进行通信的协议。第三,MAC地址通常与NIC上的硬件(预烧)地址相关联,而更高级别的IP出于灵活性考虑允许任意使用。第四,MAC仅在本地相关,而IP在全球相关(不考虑不属于原始设计的NAT和私有地址的最新变化)。

–generalnetworkerror
14年6月28日在8:20



#4 楼

没有任何物理上阻止您设计仅具有L2和L3 IP地址的网络。然后“以太网交换机”将学习传入数据包的SIP地址,并将其泛洪或转发至DIP地址。

该网络仅支持IP,而下一代IPvX出现时,它将无法工作,因为“以太网交换机”不支持该协议。您也无法运行其他各种协议,例如IPX和AppleTalk,或者您正在家里开发和测试的某些新协议。无需重建整个房子来更改窗口。

现在您可以运行相同的以太网交换机,并且可以将网络从IPX迁移到IPv4到IPv6,而完全不接触LAN。 >

评论


除了这些组件以外,没有什么可以阻止您设计该网络,这些组件仅存在您的想象中:A)学习源IP地址的以太网交换机B)没有mac地址的以太网NIC

–迈克·彭宁顿
2013年9月23日在13:02



#5 楼

IP地址和MAC地址用于不同(但至关重要)的目的:

MAC地址从一个NIC到下一个NIC获取一个帧。 IP地址将数据包从一台计算机发送到服务器

,因此,给出以下信息:

IP地址是“目标”的“源”。但是,从源计算机到RouterA,然后从RouterA到RouterB,再从RouterB到目的地的数据包是MAC地址。 >


评论


当然,路由器到路由器的链接使用不具有MAC地址的协议是很常见的。

–罗恩·莫潘♦
18年4月12日在14:49

@RonMaupin是的。当然。但是...鉴于特定询问有关MAC地址=)的问题,这有什么关系?

–艾迪
18年4月12日在14:53

似乎您的回答暗示着在每个跃点上都会分配一个MAC地址,这可能会引起误解。如果您的图表仅在第一跳和最后一跳上显示MAC地址,它也将起作用。这有点不完整,这就是为什么我发表评论。

–罗恩·莫潘♦
18年4月12日在14:58

#6 楼

IP协议为支持子网和路由的概念提供了基础。这意味着IP不会假设您的目的地在同一个网络中-如果不是,则您的流量需要通过路由器等中介设备转发。 IP具有TTL /跳数限制字段,并且支持该字段。以太网最初是在网络中最常见的计算机连接方式是通过物理总线拓扑结构设计的。即使现在几乎交换了所有有线以太网流量,但从逻辑上讲,它仍然像总线拓扑一样工作。因此,以太网的基本假设是具有目标MAC的节点实际上在同一网络上。 IP没有这种假定。以太网,这就是我们拥有IP的原因。

#7 楼

尽可能简单:

Mac地址是NIC卡或网络接口的物理或虚拟地址。从网络上的计算机的角度来看,它是该计算机的NIC卡的物理地址。它用于在OSI模型的第2层上将信息带到该计算机。

第3层需要IP地址。您需要它与不同子网和设备上的计算机进行通信。IP地址验证设备在网络中的“位置”。

IP地址和Mac地址是同时使用的。地址解析协议用于通过将IP地址解析为单个网络中链路层内的Mac地址来将二者链接在一起。

评论


保持简单:如果您有名字,就可以在当地识别自己。您需要拥有一个SSN,以确保您在全球范围内得到认可

– Pulsearjune
2014年3月14日在11:57



#8 楼

首先,这是一个非常好的问题,涉及基本的网络基础。

问题的底线是,我们真的不需要MAC地址即可实现连接。从理论上讲,可以构建一个仅实现IP地址的网络!


但是,使用这种方案可能会带来一些实际困难。如果希望为每个网络设备手动分配IP地址,则可以避免主要的陷阱。但是,如果您需要自动分配IP地址(例如,当有太多的网络节点需要手动管理时),则无法确保为每个节点分配的都是单个IP​​地址或预定数目的IP地址,因为您不能互相区分,除非地址分配实体可以唯一且明确地标识请求设备,例如通过其MAC地址来确定,该地址被认为对于LAN中的任何设备都是唯一的。

这种无法识别的设备可能会反复请求其他IP地址,并最终破坏网络的生存能力。

返回主题,建立纯IP网络所需要做的就是让网络接口适配器的数据链路层通过接收到的任何数据帧直接传递到网络层,而不管任何MAC可比较的地址类型,可以根据其目标IP地址对其进行过滤,而不是在数据层进行过滤。

只是为了说明这个概念,假定通过互连RS-232 UART端口建立了一个网络:UART设备没有MAC地址或任何其他唯一标识符,但是您可以构造一个局域网,仅使用UART和IP地址,即可安装适当的UART驱动程序。

希望这篇文章为您提供有关该主题的一些见识。

#9 楼

MAC地址代表硬件,它是组装好的,是恒定的,不同供应商在我们网络中制成的不同系统的MAC地址范围也非常不同,因此它们很难作为网络来安排。范围为同步地址的网络。我们也无法将mac地址发送到外部网络