我正在阅读TCP / IP和其他相关协议和技术。 MAC地址被描述为(合理地:)唯一的,并且具有很大的可能性空间(几百万亿),同时也被分配给所有的networking接口。 互联networking通信使用IPv4或IPv6地址代替MAC地址的历史和技术原因是什么?
我错过了一些根本性的东西,还是只是一个愚蠢的理由(例如build立在传统技术之上)?
MAC地址可能是唯一的,但没有什么特别的数字可以指明它在哪里。 MAC 00-00-00-00-00-00可能来自00-00-00-00-00-01这个星球的另一边。
IP是在一组计算机上以分层方式施加的任意编号scheme,从逻辑上将它们区分为一个组(子网是这样)。 在这些组之间发送消息由路由表完成,路由表本身被分成多个级别,这样我们就不必跟踪每一个子网。 例如, 17.xxx在Applenetworking中。 从那里,苹果将知道数以千计的子网所在的位置以及如何到达它们(没有人需要知道这些信息,他们只需要知道17。
把这个与另一对系统联系起来也很容易。 你有一个国家颁发的身份证号码,为什么你需要一个邮寄地址,如果这个身份证号码已经是唯一的你? 您需要邮寄地址,因为它是一个任意的系统,描述了与您通信的唯一目的地应该到哪里。
因为路由表将变得不可能大。
IP地址是分层分配的,所以路由器可以通过地址前缀对路由进行分组。 目前networking上存在的自治系统的数量已经足够适合当今的硬件了。
另一方面,networking中MAC地址的分布是随机的,与拓扑完全无关。 路由分组是不可能的,每个路由器都需要跟踪每一台通过中继stream量的设备的路由。 这就是第2层交换机所做的,并且不能超过一定数量的主机。
这个世界并不是完全运行在以太网上(至less在历史上)。 IP层独立于其下面的硬件层。
PPP节点没有Mac地址。 arcnet,令牌环,fddi,hppi也不是。 那些其他的标准今天可能不是相关的,但是以太网将来可能会被其他技术所替代,并且对IP层来说是透明的。
关于我们如何不断发明新的硬件协议并将它们称为以太网,我们还有更长的讨论,但我离题了。
除IP的分层路由之外,将它们与MAC地址分开可以让您在保留相同的IP地址(以及逻辑networking拓扑)的同时更换网卡或整台计算机。
这种抽象允许更灵活和可维护的联网。
看一下OSI模型 : http : //en.wikipedia.org/wiki/OSI_model
这就解释了为什么做一个第3层概念的路由select是没有意义的,而是基于物理第二层机制的决策。
现代networking被分成许多不同的层面来完成你的端到端的沟通。 您的网卡(由MAC地址[物理地址]寻址的内容)只需要负责与其物理networking上的对等设备进行通信。
您可以使用您的MAC地址完成的通信仅限于与您的计算机进行实际联系的其他设备。 例如,在互联网上,你并没有连接到每台机器上。 这就是为什么我们要使用TCP / IP(第3层,逻辑地址)机制,当我们需要与我们没有物理连接的机器通信。
b0fh是正确的 – 但也因为MAC地址并不总是唯一的。
请参阅虚拟化场景中的示例。 这里多个主机可以为具有相同MAC地址的虚拟机提供服务。
MAC地址的路由表几乎需要列出MAC地址的每台设备。 路由到Internet的IP是一个单一的条目0.0.0.0/0。 对于networking类,它们分解为10.0.0.0/8 172.16.0.0/16和192.168.0.0/24。 其中许多可以像172.16.0.0/12和192.168.0.0/16那样进行聚合,进一步减less了路由表的大小。
以相反的顺序search路由到其掩码中一位的数量。 当192.168.0.0/16路由和0.0.0.0/0(默认路由)时,路由到192.168.100.0/24工作。
编辑:原来,IP范围被分成几个类别, A,B和C是最重要的。 A级构成地址范围的前半部分,下一个季度的B范围和下一个范围的C范围。 这些类别分别具有8位,16位和24位掩码。 后来,这些掩码的严格使用被放弃了,地址分配也以各种不同的大小完成。
分配的大小总是2的幂,并保留每个分配中的最低和最高地址。 每个分配也将有一个路由器的地址。 这通常是最低或最高的非保留地址。 最小的实际分配是一个/ 30地址。
IPv6使用相同forms的分配,而在Internet上可以使用/ 64的最小分配。 通常情况下,ISP会给予更大的分配,这是所有互联网路由器都需要知道的。 预期的分配在RFC中指定。 ISP需要知道如何路由自己的子网,以及路由到哪个互连路由器的地址。 这比知道如何路由每个mac地址要简单得多。
我认为他们试图解决的主要问题是MAC地址是由供应商决定的,所以在本地子网中不存在一致的寻址scheme,因为有大量的接口制造商。
当目的地址在本地子网(例如192.168.0.x)时使用MAC地址。 当stream量不匹配本地子网时,计算机引用路由表。 一般情况下,路由表将告诉任何不匹配本地子网(0.0.0.0)的通信stream向本地网关,此时任何与MAC地址的联系都将被完全剥离。 MAC地址在全球范围内使用的唯一方法就是拥有一个庞大而扁平的子网,这是完全不可行的。
目标IP地址的MAC地址仅在单个本地广播域内用于分组传送是有用的。
在同一台机器上的不同以太网适配器上,MAC地址可以相同。 SUN每台机器都有一个唯一的MAC地址。 所以SUN电脑的以太网卡没有任何唯一的MAC地址。
所以当你将机器连接到两个不同的networking时,它们在两个networking上都有相同的MAC地址。
MAC地址是ISO / OSI模型和TCP / IP模型中链路层(2n)的地址。 这意味着MAC地址用于连接本地networking内的节点(点对点)。 IP地址是Internet内部networking层(第三层)的地址(端到端)。
这两个地址仅用于其图层,并不打算在其外部使用。
这里的人们表示,使用MAC地址而不是IPv4地址的问题是路由,因为路由表会变大 – 不过,它假定IPv4路由器。 有可能有小的路由表,如果你有兴趣如何,寻找平面命名空间路由。 其中一篇描述这种技术的论文就是这样的: http : //www.cs.uiuc.edu/~caesar/papers/rofl.pdf
我记得MAC地址真的是以太网地址。 以太网地址分为两部分:供应商部分 – 标识以太网卡的供应商和供应商分配的地址部分。 由供应商决定是否独一无二。
因此,48位的MAC地址空间并没有被有效地使用,也没有像上面提到的那样多次使用。
该地址被devise成在本地CSMAnetworking上具有唯一的地址。
至less,我记得最好的。
IP地址被devise成可以更普遍地扩展和解决不同的问题。