IP组播简介

IP多播的基本定义是将消息从单个源发送到一个数据流中的第3层网络中的选定多个目标。

如果要将消息从一个源发送到一个目的地,则可以发送单播消息。如果要将消息从一个源发送到本地网络上的所有目的地,则可以发送广播消息。但是,如果要将消息从一个源发送到在一个数据流中跨路由网络分布的选定多个目标,则最有效的方法是IP多播。

组播如何提供可扩展的解决方案

支持跨路由网络的组播的六个基本要求如下:

必须存在只能由多播应用程序使用的指定范围的第3层地址。网络管理员需要使用指定范围内的第3层组播地址在组播服务器上安装组播应用程序。

多播地址只能用作目标IP地址,而不能用作源IP地址。与单播IP数据包不同,多播数据包中的目标IP地址没有指定接收者的地址,而是表示该数据包正在承载特定多播应用程序的多播流量。

多播应用程序必须安装在网络中需要接收该应用程序的多播流量的所有主机上。必须使用多播服务器上使用的相同第3层多播地址来安装该应用程序。这称为启动应用程序或加入组。

连接到LAN的所有主机必须使用标准方法从第3层多播地址计算第2层多播地址,并将其分配给其 网络接口卡 (NIC)。 

必须有一种机制,主机可以通过该机制向连接的路由器动态指示是否要接收已安装的多播应用程序的流量。Internet组管理协议(IGMP)提供主机与连接到同一子网的路由器之间的通信。

必须有一个组播路由协议,该协议允许路由器将组播流量从组播服务器转发到主机,而不会增加网络资源的负担。一些多播路由协议是距离矢量多播路由协议(DVMRP),多播开放最短路径优先(MOSPF)和协议独立多播密集模式(PIM-DM)和稀疏模式(PIM-SM)。

组播如何向选定的用户传递流量

下图显示了如何在第3层网络中转发多播流量。本插图的目的是向您概述所选主机如何转发和接收多播流量。

多播

假定使用特殊的第3层多播地址225.5.5.5在视频服务器上安装了视频多播应用程序。在R1和R2上配置了多播路由协议,以便它们可以转发多播流量。R2知道它在两条以太网链路上都有主机,它们希望接收组225.5.5.5的多播流量,因为这些主机已表明他们希望使用IGMP接收该组的流量。

多播数据包通过以太网链路从视频服务器传输到R1,R1通过WAN链路将多播数据包的单个副本转发到R2。当R2在WAN链路上接收到具有目标地址225.5.5.5的多播数据包时,它将复制该数据包,并在每个以太网链路上转发一个副本。因为它是组(应用程序)225.5.5.5的多播数据包,所以R2计算第2层目标多播地址0x0100.5e05.0505,并将其用作转发到两个交换机的每个数据包的目标MAC地址。

当交换机收到这些数据包时,它们会在适当的端口上将其转发给主机。当主机接收到数据包时,它们的NIC将目标MAC地址与它们正在侦听的多播MAC地址进行比较,并且由于它们匹配,因此通知高层处理数据包。

组播IP地址

互联网号码分配机构(IANA)已为多播应用程序分配了D类IP地址。D类地址的第一个八位位组的前4位始终为1110。IP多播地址的范围为224.0.0.0至239.255.255.255。由于这些地址用于表示多播组(应用程序)而不是主机,因此多播地址不需要子网掩码,因为它们不是分层的。换句话说,对多播地址只有一个要求:第一个八位位组的前4位必须为1110。后28位是非结构化的。

保留的多播地址

IANA保留了两个范围的永久多播IP地址。这两个地址范围之间的主要区别在于,第一个范围用于不应由路由器转发的数据包,而第二组用于应由路由器转发的数据包。

用于本地(未路由)目的的地址范围是224.0.0.0到224.0.0.255。应路由数据包时使用的永久组地址的范围是224.0.1.0到224.0.1.255。

下表显示了永久地址范围内的一些知名地址。

特定于源的组播应用(SSM)的地址

IANA已为SSM应用程序和协议分配了232.0.0.0到232.255.255.255的范围。这些应用程序的目的是允许主机选择多播组的源。SSM使多播路由有效,允许主机选择质量更好的源,并帮助网络管理员最大程度地减少多播拒绝服务(DoS)攻击。

GLOP寻址的多播地址

IANA在实验基础上保留了233.0.0.0到233.255.255.255(RFC 3180)的范围,称为GLOP寻址。拥有已注册的自治系统编号(ASN)的任何人都可以使用它来创建256个全局多播地址,该地址可以由实体拥有和使用。IANA保留地址以确保地址的全球唯一性;由于类似的原因,每个自治系统都应使用分配的唯一ASN。

通过为第一个八位位组使用233的值,并为第二个和第三个八位位组使用ASN,单个自治系统可以创建GLOP寻址RFC中定义的全局唯一多播地址。

例如,使用注册的ASN 5663的自治系统可以将ASN 5663转换为二进制(0001011000011111)。前8位00010110以十进制表示等于22,后8位00011111以十进制表示等于31。将233个范围地址中的前8位映射到第二个八位位组,将最后8位映射到第三个八位位组,拥有ASN 5663的实体会自动分配地址范围233.22.31.0至233.22.31.255。

专用组播域的组播地址

这里提到的最后一个保留的多播地址范围是管理范围内的地址范围。IANA已将范围239.0.0.0到239.255.255.255(RFC 2365)分配给专用多播域使用,

将IP组播地址映射到MAC地址

为组播组(应用程序)分配第3层组播地址会自动生成第2层组播地址。下图显示了如何从第3层组播地址计算出组播MAC地址。MAC地址是使用IEEE注册的01005E的OUI,然后是二进制0,然后是多播IP地址的最后23位形成的。

计算组播目标MAC

要了解此过程的机制,请使用以下六个步骤,在上图中按数字引用:

步骤1:将IP地址转换为二进制。注意前4位;对于任何多播IP地址,它们始终为1110。

步骤2:将IP地址的前4位1110替换为6个十六进制数字(或24位)01-00-5E作为多播OUI,在多播MAC地址的12个十六进制数字(或48位)的总空间中。

步骤3:在组播MAC地址空间中,将二进制IP地址的后5位替换为一个二进制0。

步骤4:将二进制IP地址的后23位复制到多播MAC地址的后23位空间中。

步骤5:将多播MAC地址的最后24位从二进制转换为6个十六进制数字。

步骤6:将在步骤5中计算出的前6个十六进制数字01-00-5E与后6个十六进制数字合并,以形成12个十六进制数字的完整组播MAC地址。

觉得文章有用?

点个广告表达一下你的爱意吧 !😁