《IP多播网络的设计与部署(第1卷)》——2.2 多播MAC地址

本节书摘来异步社区《IP多播网络的设计与部署(第1卷)》一书中的第2章,第2.2节,作者:【美】Beau Williamson,更多章节内容可以访问云栖社区“异步社区”公众号查看

2.2 多播MAC地址

IP多播网络的设计与部署(第1卷)
最初的以太网规范(现在由IEEE进行标准化)对广播数据包和/或多播数据包的传输进行了规定。如图2-2所示,在IEEE MAC地址中,字节0中的比特0指明了目的地址是广播/多播地址还是单播地址。

b1c0b3d00c15ad76287fa048607da2170cb389a6

如果比特0被置位,那么MAC帧将发往一个任意的主机组或者网络中的所有主机(如果MAC目的地址是广播地址0xFFFF.FFFF.FFFF)。第2层上的IP多播利用这一性能将IP多播数据包传输到局域网网段的一组主机上。

以下几节将讲解第3层IP多播地址是如何映射成以太网、FDDI和令牌环网局域网中的IEEE MAC地址的。

2.2.1 以太网多播MAC地址映射

就以太网而言,IP多播帧使用的MAC地址均以0x0100.5Exx.xxxx的24位前缀开始。遗憾的是,这些MAC地址中,只有一半可以被IP多播所使用。这使得MAC地址空间中的23比特用来将第3层IP多播地址映射为第2层MAC地址。由于所有的第3层IP多播地址的前4比特(总共32比特)已经被设置为0x1110,这使得只有28比特可以表示IP多播地址信息。这28比特必须映射到可用MAC地址的23比特中去。该映射如图2-3所示。

9112cc2a85ed467725117989ce8ca5a2b2e63454

为什么只为IP多播分配了23比特有价值的MAC地址呢?这其中有一个有趣的故事。早在20世纪90年代早期,Steve Deering取得了IP多播研究工作的一些成果,因此,它希望IEEE能够分配16个连续的组织唯一标识符(OUI)作为IP多播MAC地址使用。由于一个OUI包含24比特有价值的地址空间,因此16个连续的OUI可以提供28比特有价值的MAC地址空间,这将允许第3层IP多播地址与MAC地址之间可以形成一对一的映射。不幸的是,当时一个OUI的价格是1000美元,Steve的经理Jon Postel不能证明花费16000美元来购买这28比特有价值的MAC地址是正确的,因此没有购买。相反,Jon愿意从预算里面拿出1000美元来购买一个OUT,并将其中的一半地址(23比特)拿给Steve,以供IP多播研究使用。

MAC地址映射的性能影响
因为第3层IP多播地址信息的全部28比特不能映射进入23比特可用的MAC地址空间,所以在映射过程中丢失了5比特地址信息。这导致当第3层IP多播地址映射到第2层IEEE MAC地址时,会有25或32:1的地址不明确。这意味着每一个IEEE IP多播MAC地址可以表示32个IP多播地址,如图2-4所示。

9f655e6cd9645a74f284221ddd025a1ef5ad9def

很明显,32:1的地址不明确性肯定会引发一些问题。例如,想接收多播组22####4.1.1.1信息的主机在接收到目的多播MAC地址是0x0100.5E00.0101的帧##时,将会指示网络接口卡(NIC)上的硬件寄存器中断CPU。遗憾的是,同一个多播MAC地址也可以用于其他31个IP多播组。如果其他31个多播组里面的任意一个在本地局域网上也处于活动状态,则无论在何时收到一个其他多播组的帧,主机CPU将会接收到中断。CPU将不得不检查每一个收到的帧的IP部分,以确定它是否来自于所期望的组,也即224.1.1.1。如果这种“欺骗的”组流量足够大,则会对主机CPU的性能产生影响。

除了对CPU性能产生负面影响外,在完全基于这些多播MAC地址进行第2层LAN交换机多播泛洪抑制时,这一不明确性也会引发问题。这一问题在第14章进行了详细介绍。

2.2.2 FDDI多播MAC地址映射

由于FDDI MAC地址和IEEE MAC地址遵循相同的格式,所以IP多播地址到FDDI MAC地址的映射所使用的方式和以太网相同(见图2-3),但是有一个微小的差别。在FDDI字节中,是低位比特先传送;而在以太网字节中,是高位比特先传送。由于首先传送的分别是字节中的高位和低位,所以这两种比特排序分别称为大字节序排序(big-endian ordering)和小字节序排序(little- endian ordering)。大字节序的以太网格式也被称为IEEE MAC地址的规范(canonical)形式。

IP地址到FDDI MAC地址映射的其他方面和以太网情形相同。但是,如果使用网络嗅探器或类似设备来查看FDDI环上的多播帧,会发现比特顺序将会发生反转。因此,0x0100.5Exx.xxxx IP多播MAC前缀在FDDI环上变成0x8000.7axx.xxxx。

2.2.3 令牌环网多播MAC地址映射

IBM所描述的令牌环目的MAC地址的格式如图2-5所示。从图中可以看出,令牌环MAC地址不同于以太网MAC地址的规范格式。

d23381173664639639f33a6bc62aad78d1f8d3e0

与FDDI一样,令牌环网字节的低位比特先传送(以太网字节是高位比特先传送)。注意,字节0的比特0具有与以太网MAC地址相同的基本广播/多播定义,如图2-5所示,只不过IBM将这一比特称为组地址比特。同样,本地管理比特也就是字节0中的比特1也是Bit 1位,这与以太网MAC地址一致。令牌环比特是以与以太网比特相反的顺序来进行传送。

1.令牌环功能地址
与IEEE MAC地址不同,令牌环网使用特定比特功能地址的概念。这个概念说明的是令牌环上的一组节点。这些功能地址通过将字节2中的比特0清零来表示,如图2-6所示。

对一个组地址(字节0中的比特0被置1)来说,功能地址总是多播地址,并且总是本地管理的多播地址(字节0中的比特1被置1)。每一个功能地址比特(字节2中的比特1~7,以及字节3、4、5)表示一个特殊的MAC级功能,例如活动的监视器或者环差错监视器。令牌环上的节点使用掩码来识别这些功能。

..IP多播网络设计开发tu0206.tif

图2-6 令牌环网功能地址

例如,可以给令牌环上的一个节点指派活动监视器(0xC000.0000.0001)和环差错监视(0xC000.0000.0002)功能。该节点然后使用掩码0xC000.0000.0003对它的NIC下达指令,使得在接收到任意一组功能地址时,可以中断节点的CPU。

当收到一个任意的多播MAC地址时,许多令牌环网NIC不具有中断CPU的能力。因此,唯一的替代方案是使用全“1”的广播MAC地址(0xffff.ffff.ffff)或功能地址作为IP多播到MAC地址的映射,如图2-7所示。

2fd33305587331072800971bc4f748da4a5d7872

2.令牌环映射的性能影响
由于令牌环的多播地址映射方法极其差劲,因此对节点CPU的性能造成了相当大的影响。地址不明确性已从过去的25或32:1变成现在的228或268435456:1。这意味着令牌环上所有的多播流量都将导致令牌环节点的CPU被令牌环上的每一个多播数据包中断。

除了对CPU性能的影响之外,这个多到一(all-into-one)的映射方案使得令牌环交换机不能再MAC层对多播泛洪进行抑制。结果,独自运行在第2层的令牌环交换机无力阻止令牌环中已经加入到多播组中的节点,从令牌环上的其他受影响的节点接收多播流量。

注意

IS经理和网络管理员在面临着多媒体或其他基于多播的应用在其令牌环网络上迅速的增长时,应该仔细考虑在令牌环网络上使用多播的缺陷。如果可能的话,此时应该考虑将其转移到交换式以太网环境中工作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值