
组播-了解IP组播的工作方式
要了解我们将要讨论的内容,您必须熟悉MAC地址的结构及其工作方式。的 MAC地址 页面可帮助您了解更多有关它们的信息。
从某种意义上说,多播类似于广播,其目标是网络上的许多机器,但不是全部。如果广播定向到网络上的所有主机,则多播定向到一组主机。主机可以选择是否希望加入多播组(通常通过Internet组管理协议来完成),而在广播中,无论是否喜欢,所有主机都是广播组的一部分!
如您所知,以太网上的每个主机都有一个唯一的MAC地址,所以这是百万美元的问题:如何与一组主机(我们的多播组)通信,每个主机都有一个不同的MAC地址,并且在同时确保不属于多播组的其他主机不处理该信息?您很快就会确切地知道所有这些工作原理。
为了使事物更直观并易于理解,我们将仅专注于使用IP协议的以太网,这是80-90%的家庭网络和办公室所使用的协议。
分解...
为了尽我所能地解释多播并使其更容易理解,我决定将其细分为3个部分:
1) 硬件/以太网多播
2) IP多播
3) 将IP组播映射到以太网组播
以太网上使用TCP / IP协议的典型多播由两部分组成:硬件/以太网多播和IP多播。稍后,我将讨论将IP多播映射到以太网多播,这实际上是使用TCP / IP协议在我们的以太网上进行多播的过程。
下面的简图向您展示了3和它们如何完成多播模型之间的关系:
硬件/以太网多播
当计算机加入多播组时,它必须能够区分普通单播(定向到一台计算机或一个MAC地址的数据包)和多播。使用硬件多播,可以将网卡配置成通过其驱动程序来监视特定的MAC地址(在本例中为多播MAC地址),而不是其自身。当网卡拾取具有与任何多播MAC地址匹配的目标MAC的数据包时,它将把它传递到上层进行进一步处理。
他们是这样做的:
以太网使用高位八位位组的低位来区分常规单播地址和多播地址。单播会将此位设置为 零 (0),而将多播设置为 一 (1)
要了解这一点,我们需要分析单播和多播数据包的目标MAC地址,因此您可以看到我们在说什么:
当计算机将普通(单播)数据包放在网络上时,它包含在OSI模型的第二层中找到的源和目标MAC地址。下图是我的工作站(192.168.0.6)向网络网关(192.168.0.5)发送数据包的示例:
现在让我们分析目标MAC地址:
当我的网关接收到数据包时,它就知道它是一个单播数据包,如上图所示。
现在让我们看一下组播数据包的MAC地址。请记住,多播数据包不是定向到一个主机,而是定向到多个主机,因此目标MAC地址将与任何计算机的唯一MAC地址都不匹配,但是属于多播组的计算机将识别目标MAC。地址并接受处理。
从我的NetWare服务器发送了以下多播数据包。注意目标MAC地址(这是一个多播):
分析组播目的MAC地址:
因此,现在您应该能够理解计算机如何区分普通或单播数据包与多播数据包。同样,目标MAC地址01-00-5E-00-00-05不是特定主机的MAC地址,而是可以由属于多播组的计算机识别的MAC地址。我还应注意,您永远找不到一个源地址,即组播MAC地址,该源地址将始终是真实地址,以标识数据包来自哪台计算机。
IEEE小组使用了特殊的 规则 确定将考虑用于多播的各种MAC地址。此规则在本页面的最后一部分中介绍,但是您现在不需要了解它即可了解硬件多播。使用此特殊规则,确定将MAC地址01:00:5E:00:00:05用于OSPF协议(碰巧是路由协议),然后该MAC地址也映射到IP地址为在IP多播中进行了分析。
IP多播
IP组播是组播的第二部分,结合硬件组播,为我们提供了适用于以太网的组播模型。如果硬件多播无法正常工作,则数据包将永远不会到达IP多播所基于的网络层,因此整个模型将失败。
使用IP多播时,硬件多播MAC地址将映射到IP地址。一旦第2层(数据链路)从网络中选择了多播数据包(因为它识别出它,因为目标MAC地址是多播),它将剥离MAC地址并将其余的地址发送到上一层,即网络层。那时,网络层需要能够了解它正在处理多播,因此设置IP地址的方式应使计算机将其视为多播数据报。主机可以不成为成员就可以向多播组发送多播数据报。
路由器之间经常使用多播,因此它们可以在IP网络上相互发现。例如,开放式最短路径优先(OSPF)路由器向网络上的其他OSPF路由器发送“ hello”数据包。 OSPF路由器必须将此“ hello”数据包发送到分配的多播地址,即 224.0.0.5,其他路由器将响应。
IP组播使用D类IP地址:
让我们看一个示例,以便我们可以更好地理解它:
下图是我的数据包嗅探器的屏幕截图,它显示了从NetWare服务器发送的多播数据包,请注意目标IP地址:
上面的屏幕截图显示了被捕获的数据包,它只是简单显示了捕获的内容。但是,当我们向左看时,我们会更详细地看到上述数据包。
您可以清楚地看到我在底部放置的标记,这些标记向您显示此数据包的目标IP是IP地址224.0.0.5。这对应于多播IP,因此是多播数据包。
MAC标头还显示了目标MAC地址01-00-5E-00-00-05,我们在上一节中进行了分析,以向您显示如何将其标识为第2层(数据链路层)上的多播数据包。
IP多播地址的一些示例:
224.0.0.0基地址(保留)[RFC1112,JBP]
224.0.0.1此子网上的所有系统[RFC1112,JBP]
224.0.0.2此子网上的所有路由器[JBP]
224.0.0.3未分配[JBP]
224.0.0.4 DVMRP路由器[RFC1075,JBP]
224.0.0.5 OSPFIGP OSPFIGP所有路由器[RFC2328,JXM1]
请记住,这些IP地址已由IEEE分配!
现在剩下的就是解释IP多播和MAC多播如何相互映射...
将IP组播映射到以太网组播
将硬件多播和IP多播结合在一起的多播的最后一部分是它们之间的映射。映射有一个规则,就是这样:
要将IP组播地址映射到相应的Hardward /以太网组播地址,请将IP组播地址的低23位放入特殊以太网组播地址的低23位。其余的高阶位由IEEE定义(示例中为黄色)
以上规则基本上确定了硬件MAC地址。让我们看一个真实的例子来理解这一点。
我们将使用多播IP地址224.0.0.5-OSPF路由协议的多播。下图为我们显示了二进制IP地址的分析,因此我们可以清楚地看到所有位:
乍一看似乎有点令人困惑,但让我们对其进行分解:
我们的IP地址为224.0.0.5,然后将其转换为二进制,因此我们可以清楚地看到23位到计算机MAC地址的映射。 IEEE组已定义黄色的MAC地址部分。所以 黄色 和 粉 行以二进制模式显示一个MAC地址,然后将其从二进制转换为十六进制,就是这样!
您应该记住,在以下情况中,多播路由器不应转发任何具有目标地址的多播数据报 224.0.0.0 和 224.0.0.255。下一页(多播列表)对此提供了更多信息。