为什么需要以太网/ MAC地址?


16

我不明白为什么需要以太网MAC地址。难道所有计算机都不能仅连接到统一网络并使用IP地址进行通信吗?

例如,以太网中有以下机制:

  1. 计算机与IP 192.168.1.1X.1)要发送一个数据包192.168.1.2X.2
  2. X.1 使用ARP获取的MAC X.2
  3. 为此,X.1需要将数据包发送到网络中的所有计算机。只有一个人会回答
  4. X.1 获取MAC并发送数据包

仅执行一个步骤就不会更简单:

  1. X.1向网络中的所有计算机发送数据包;仅X.2会处理它,其他人会忽略它

补充的问题是:如果所有设备都有唯一的MAC地址,为什么需要IP地址?


计算机如何知道应该忽略数据?如果没有MAC地址,他们将无法判断网络上的哪一个应该处理它……
Bakuriu 2014年

1
他们可以使用IP地址而不是MAC地址
user2449761 2014年

erm ...计算机<-> IP地址不是内射映射。我将重提我的问题:计算机如何知道它们应该忽略数据?如果没有MAC地址,他们将无法确定网络上应该处理哪一个…… 因为其中一个以上可能具有相同的IP
Bakuriu 2014年

4
他们不应该在同一子网中拥有相同的IP ...这是一个冲突
user2449761 2014年

Answers:


31

不同的网络层,在那里,让他们互换了不同的技术。

您在这里谈论的两层是第2层和第3层。在这种情况下,第2层是以太网-产生MAC地址的层,第3层是IP。

以太网仅在本地级别工作,在连接到广播网络“数据链路”的网络设备之间,而IP是可路由的协议,因此可以定位到远程网络上的设备。

这些要求各不相同。以太网指定了一系列技术,允许在网络设备之间发送和接收数据包,而IP定义了一种协议,该协议允许数据包穿越多个网络。

两者都不依赖对方,这就是赋予网络灵活性的原因。例如,您可以选择使用基于以太网的IP连接到Internet服务,但是在内部网络中,您可以选择使用基于IP的IP。有人写下每个数据包的内容,然后物理地将其传递到另一台机器上并输入。显然这不是特别快,但如果有人随身携带一些遵循IP路由规则的文件,那仍然是IP。

在现实世界中,您已经在使用两种不同的数据链路协议(尽管它们的寻址方案是相同的):802.3-以太网和802.11-wifi。

IP不在乎底层是什么。

同样,可以将IP换成不同的网络层协议(前提是所有参与者都可以使用)。如ATM

尽管没有什么可以直接阻止创建同时包含第2层和第3层的协议,但它的灵活性较差,因此吸引力较小,因此不太可能使用。


2
对于内部网络,您应该使用RFC1149。(技术描述较少)
Scott Chamberlain 2014年


1
@ScottChamberlain:我喜欢手势信号标记中的ASCII艺术!
Fred Larson 2014年

5
IPoAC是内部通信的不佳选择。鸽子在室外比在室内工作更好
cpast 2014年

2
@ user2449761人只列出了愚蠢的人。相反,以太网可以使用蓝牙,拨号,GPRS,LTE,USB,DSL,令牌环等
OrangeDog

8

处理或忽略数据包的决定将在哪里进行?没有答案真的令人满意:

1)在开关?好吧,这意味着交换机必须了解确定哪些计算机对哪些数据包感兴趣的每种协议。这不仅会增加交换机的成本并降低其速度,而且会使IP协议中的更改更难以实现。

2)在以太网接口的硬件中?嗯,这会使网络变慢,因为每个数据包都必须发送到每台计算机。WiFi和桥接速度较慢的桥接网络之类的技术将是不可能的。使以太网以不同的速度运行将是不可能的。诸如IPv6或IP多播之类的技术需要更改硬件才能部署在所有以太网终端站中。

3)在软件中?好吧,这将使计算机的运行速度大大降低,因为它们必须处理大量的网络接口中断。上面提到的所有桥接,VPN和Wifi问题也将成为问题。

所有这些都会使没有IP的以太网无法使用,这意味着需要更改以太网以更改IP。uck

关注点分离是好的。


另外,它会大大降低整体网络性能。对于选项3,我发送了一个饱和到1GBit网络的巨大文件,突然,网络上的其他所有人也都收到了该文件,因此不得不忽略该文件,并且没有足够的带宽将文件发送给其他人。当前文件传输。
PlasmaHH 2014年

第二种选择不描述以太网的工作原理吗?所有接口都收到相同的数据包,但只有一台计算机不会忽略它(混杂模式下的这些设备除外)。那里的开关可以加快速度……
user2449761 2014年

2
@ user2449761如果您使用的是具有集线器而不是交换机的古老网络硬件,则所有数据包只会发送到所有计算机。集线器最初是出于成本原因的一种选择;但是现在开关便宜了,没人再使用它们了。
Dan在Firelight抚摸下

@Dan这就是我在说的...
user2449761 2014年

2
选项1已经在发生。至少现在还没有取代MAC地址的使用。但是可以将某些交换硬件配置为使用目标MAC地址或使用目标IP地址来选择传出接口。可能会在10或20年后保留MAC地址用于历史目的,并且所有数据包路由将仅基于IP地址进行。一直以来,都无法避免有关IP更改的问题,因为骨干路由器多年来一直在硬件中基于目标IP地址进行路由。
kasperd 2014年

3

IP地址和MAC地址在Internet协议套件的不同层上运行。MAC地址用于在第2层的同一广播网络中标识机器,而IP地址在第3层用于在整个不同网络中标识机器。

即使您的计算机具有IP地址,由于每一层都在使用底层,因此它仍需要MAC地址才能找到同一网络上的其他计算机。在前面提到的页面上,您可以找到一些不错的图,详细解释了协议套件。


2

随着以太网网络规模的增大,它们将面临拥塞问题。这反过来会阻塞网络并引入延迟。这是引入子网概念的因素之一。但是,对于子网,我们需要一个称为路由器的附加实体,以使数据包能够从一个子网中的计算机传播到另一个子网中的计算机。

以太网电缆跨越的距离是另一个主要问题,因为如果超出一定的限制,它将限制传输的成功。这以集线器/转发器的形式引入了其他新实体。

请注意,所有通信机制都不使用MAC地址进行通信。PPP&HDLC不使用MAC地址进行识别。

另外,请注意,某些网络不使用以太网。令牌环网络需要不同的数据链路层。

如果通过网络B中设备的mac地址寻址而将数据包从网络A发送到网络B中的设备,它将被丢弃在网络A本身中。请注意,即使在网络A和网络B之间存在路由器,当路由器工作时,路由器也会通过接收发往其mac地址但针对不同IP地址的数据包来丢弃该数据包。

从以上情况很明显,由于各种本地/专用网络,互联网不是平面网络。源和目标之间还存在各种网络实体。

由于互联网不是平面网络,MAC地址并未用于所有类型的通信,并且某些网络需要除以太网以外的其他数据链路层,因此无论节点的位置如何,我们都需要IP地址将其路由到所需的节点是通过网络层实现的。

另外,请参阅/programming/26290069/arp-vs-ip-why-do-we-need-both中的类似讨论


除了备用第2层的“禽类运输工具”,“手势”和“纸和铅笔”示例之外,还有一些古怪但偶尔出现的示例 有用的。通过短信,Facebook甚至电子邮件获得IP。然后是旧的备用SLIP,PPP和PPPoE。这三者所代表的面貌与以太网或WIFI连接不同,但是所有这些人都能获得IP,并且完全可以路由。
Ross Presser 2014年

2

正如其他人所解释的那样,您需要第2层协议来在本地网络中进行拥塞控制。第3层用于网络之间的路由和寻址。

话虽如此,一个有效的问题可能是:为什么两层都不能使用相同的寻址方案?

第一个答案:正如其他人所提到的,这使您可以切换L2和/或L3技术,并且一切仍然有效。

第二个答案:即使每个人都同意让第2层协议使用IP地址,您仍将必须使用两个IP地址,一个用于第2层,一个用于第3层。为什么?NATting。如果您的计算机具有公用IP地址,则L2和L3地址可以相同。但是,如果使用NATting,则L2和L3地址将不同。

最后评论:当您说所有人都收到消息并且非收件人忽略它们时,您正在谈论WiFi。有线以太网不再像以前那样工作。当我们使用同轴电缆时,就像后来使用集线器时那样。交换机仅将消息/数据包发送到适当的端口(除非您对其进行攻击并使表饱和)。


我很高兴您添加了最后一条评论。如您所指出:拥塞可以由交换机管理。交换机只能使用IP寻址方案。我也不明白NATing的论点:我们总是在NAT的两端都需要两个IP地址。我认为有效的问题是:为什么在现代网络中我们需要单独的DataLink和Network层?我了解到70年代需要分离,当时使用了令牌环,鸽子和纸张。
user2449761 2014年

0

MAC地址和IP地址出于不同的目的在不同的网络层上运行。摆脱其中的一层可能会导致问题,造成混乱或阻止工作。

假设我有一些只讲IPX的古老硬件(例如,一百万美元的CNC车床)。在您的纯IP网络中,任何人都将如何与之交谈?或说我要将未配置的计算机连接到新网络。在没有MAC地址的情况下,DHCP服务器如何告诉我的计算机使用哪个IP地址?

假设我有一台服务器,该服务器具有到骨干交换机的四个千兆位连接,并汇总到一个虚拟连接中。在仅MAC网络中,我的服务器地址是什么?或者说我有一个通过PPPoA调制解调器连接的计算机,但是没有MAC地址。谁能连接到它?


0

嗯,我认为这可以解决(我已经/ done /手动分配了MAC地址);但是,如果这样做,您将需要购买用于IPv6的新硬件,并且可能不会重叠。所以总的来说,我不喜欢后果。


0

IP中代表Internetworking协议。

这意味着IP应该在全世界所有网络中都是唯一的。

IP地址应该是全球通用的。如果将流量发送到9.9.9.9,则无论9.9.9.9实际位于何处或9.9.9.9物理位于哪个网络上,都应该到达9.9.9.9的任何地方。

(由于NAT,这被打破了一些。当发明TCP / IP时,NAT并不是最初计划的一部分,这是一个“黑客”,直到IPv6变得更普遍到不需要它的地方为止。假装NAT并不存在以了解这个答案。)

MAC地址仅在主机所在的本地网络中是唯一的。它不旨在允许不在同一本地网络上的任何事物之间进行通信。因此,MAC地址存在一个物理限制,而IP地址没有这种限制。

TCP / IP基于以下概念:

  • 在某些局域网中,系统可以直接相互通信,而无需使用路由器
  • 有时,一个网络上的计算机想要与另一个网络上的计算机通信,并且需要路由器来执行此操作。

如果存在不适用以上两个概念的另一种基本机制,那么就不需要IP和MAC。

如果您正在设计协议或绝对不需要与同一本地网络外部的计算机进行通信的其他协议,那么最好坚持使用MAC地址。我认为基于以太网的ATA协议就是这样,因为它旨在允许在同一网络上共享ATA驱动器,而不是出于安全目的而通过Internet共享。


0

我只是有类似的想法。但是我意识到您需要MAC层。甚至不用于切换目的!

不可避免的问题是,您不仅拥有IP协议,即使我们在谈论IP,也有IPv4和IPv6。网络设备如何知道它是哪一个?因此,您需要MAC作为引导层,在它的协议字段中是下一层,它告诉您MAC承载了什么。


-2

您仅考虑单个OSI层而陷入困境。IP仅在存在以太​​网(和其他以太网)的情况下起作用,就如同以太网仅在存在物理线路来承载流量的情况下一样存在。它不是“ IP MAC”,流量路由需要 MAC地址才能工作:IP技术(以及其他相关和不相关的技术)是最重要的。您不能简单地将一个交换另一个。


-6

动态IP,我的朋友!在您的本地环境(您的房屋,大学,工作场所)中,您具有网络设置。它不是直接连接到Internet(使用大写的“ I”),而是通过路由器连接。该路由器从ISP获得一个动态IP(在大多数情况下,除非您有一个静态IP),然后为所有连接的计算机分配动态(与上面相同的“但是”)地址。为什么这样做呢?总的来说,要为更多的用户提供服务,而不是您拥有的IP。问题是,您需要能够在所有其他计算机之间识别MacBook Pro(:D),因此您需要一个UNIQUE地址,而不是动态/共享地址。那就是你的Mac。这就是为什么您需要它。

您可以在这里进一步阅读


2
确实没有理由使用MAC地址。
Daniel B

1
关键是:并非所有计算机都具有唯一的IP地址,有时甚至不希望使用该IP地址,因此对于它们具有单独的LAN地址(这就是MAC地址)来说,这是一个很好的论据。
reinierpost 2014年

1
是的,他们愿意。根据定义,互联网上可路由的所有内容都是唯一可寻址的。否则,互联网将无法正常工作。诸如NAT之类的东西违反了这种所谓的端到端原则。如果是NAT,您还将有一个单独的LAN地址。
Daniel B

@DanielB我很确定那不是真的,但是也许我误会了你。例如:您能否告诉我您将如何唯一地寻址我正在键入的这台PC,该PC位于您所在的本地专用网络上,并且之前未建立连接?如果要代替这台计算机旁边的计算机呢?
SevenSidedDie

@DanielB当然不是原因。OP的问题:难道所有计算机都不能仅连接到统一网络并使用IP地址进行通信吗?我的答案提供的是有关问题的信息,而不是您的假设性问题,该信息将遵循以下路线:“为什么在以太网模型上使用MAC地址?”。由于他/她在问我们为什么不能仅仅使用IP,所以我有答案。请下次在
认真投票
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.