一、组播概述
网络为了提供更高效的节点之间的通信,组播通信技术诞生了。正常两台主机之间的通信依赖广播和单播通信技术,广播通信负责解析广播域内的主机MAC地址以及网关MAC地址,单播通信负责后续的端到端的通信。尽管广播和单播通信能适用于所有的通信需求,但是对于单一主机到多个主机的通信需求,单播和广播通信显得并不是最优解。如果采用单播通信,那么源主机就需要向多个主机发送单播数据包,单播数据包数量根据目标主机数量决定,这就会造成极大的网络带宽资源浪费;如果采用广播通信,那么当目标主机不在同一个广播域中时则无法抵达,因为广播报文无法抵达跨越广播域。因此对于单一主机到多个主机的通信需求,组播通信则是最优解。总结组播通信优点就是降低网络链路带宽利用率、降低设备负载。
组播或多播流量是IP网络主要承载的三种流量(即BUM)中的一种。组播是主机间一对多的通信模式, 组播是一种允许一个或多个组播源发送同一报文到多个接收者的技术。组播源将一份报文发送到特定的组播地址,组播地址不同于单播地址,它并不属于特定某个主机,而是属于一组主机。一个组播地址表示一个群组,需要接收组播报文的接收者都加入这个群组。
组播通信会被用到各种场景,尤其是音频和视频等带宽密集型服务。常见的现场直播、视频会议、企业通信、远程学习、股票报价、新闻发布以及部分路由协议的邻居发现服务都会使用到组播通信技术。
二、组播通信架构
实现组播通信需要组播服务器、组播分发网络、组播客户端。组播服务器作为组播源,组播客户端作为组播组成员,组播路由器提供组播路由功能以及组播组成员管理功能。组播组代表了一个设备集合(组播组用组播IP地址唯一标识),任何一个客户端可以自由的加入或离开组播组,当加入到特定组播组时,客户端就成为了该组播组成员,组播组成员就可以接收和发送数据包到该组播组了(具体是封装目的地址为该组播组的组播IP地址)。
1、组播服务模型
组播客户端对组播源的处理方式的不同,分为两种组播服务模型:
ASM(Any-Source Multicast,任意源组播):组播客户端无法选择接收的组播源,如果组播源存在多个,那么就会全量接收;任意一个组播服务器都可以作为组播源向特定组播地址发送数据。为了提高安全性,可以在组播路由器上针对组播源配置过滤策略,允许或禁止特定组播源的报文通过,最终组播客户端收到的组播数据是经过筛选的。ASM模型要求组地址必须在整个组播网络中同一时刻一个ASM地址只能被一种组播应用使用。如果有两种不同的应用程序使用了同一个ASM组地址发送数据,那么组播客户端就会同时收到来自两个源的数据,这会导致网络流量拥塞以及组播客户端造成干扰。
SSM(Source-Specific Multicast,指定源组播):组播客户端可以选择接收指定的组播源发出的组播数据;组播客户端加入组播组后,可以指定只接收哪些源的数据。SSM模型对组播组地址要求每个组播源保持唯一,即同一个源上不同的组播应用必须使用不同的SSM地址来区分,不同源之间可以使用相同的组地址。
2、组播通信组件
组播编址:IANA为IPv4组播组预分配了D类地址空间。D类地址空间中的IP地址被用于组播通信,也就是组播组将采用这些地址。在组播通信中,特定组播组就代表了一组主机。这个特殊地址类似广播通信中的广播地址,广播地址就代表了整个网络中的所有主机。
组播路由协议:主要用于构建组播分发网络的协议。组播分发网络一旦构建,后续组播流量将从组播源按照最短路径树转发至组播组成员。
组播组成员管理协议:主要用于监听局域网中的主机想要加入到特定组播组的需求,对组播组成员进行管理的协议。
3、组播通信流程
以下是简单的组播通信流程:
组播分发网络通过组播路由协议构建完成;
组播源会持续的向组播IP地址发送组播数据包;
客户端加入到组播组,成为该组播组成员,准备接收数据包;
组播数据包被组播分发网络发送给所有的组播组成员;
客户端从组播组退出。
三、组播编址
1、IP组播地址
IANA(Internet Assigned Numbers Authority,互联网编号分配委员会)规定在IPv4编址的网络中,D类地址空间用于IPv4组播使用。D类地址空间范围从224.0.0.0~239.255.255.255,由于组播地址的数量并不多,因此规定了特定的用途和限制:
224.0.0.0:保留的组播地址,没有分配给任何组播组。
224.0.0.0~224.0.0.255:私用组播地址/永久组地址;主要在局域网中分配给特定的组播组。
224.0.1.0~238.255.255.255:公用组播地址;主要在公网中分配给特定的组播组。
239.0.0.0~239.255.255.255:本地管理组播地址,仅在特定的本地范围内有效。
公用组播地址分配明细:
224.0.1.0~231.255.255.255:ASM组地址;
232.0.0.0~232.255.255.255:SSM组地址;
233.0.0.0~238.255.255.255:ASM组地址;
常用的组播IPv4地址:
网络中的所有节点:224.0.0.1
网络中的所有路由器:224.0.0.2
网络中的所有运行OSPF的路由器:224.0.0.5
网络中的所有运行OSPF的路由器(DR):224.0.0.6
网络中的所有运行RIPv2的路由器:224.0.0.9
网络中的所有运行PIMv2的路由器:224.0.0.13
2、MAC组播地址
以太网中的通信编址主要是MAC,因此需要根据IPv4 D类地址空间中的组播IP地址需要映射成特定的MAC地址。IANA规定组播MAC地址的前24bits为0x01005E,25bit值为0,后23bits为IPv4的后23bits映射而来。例如224.0.1.1对应的组播MAC地址为0100:5e00:0101。但是由于IPv4组播地址的前4bits是固定的1110,对应组播MAC地址的前25bits,后28bits只有23bits被映射到MAC地址,丢失了5位地址信息,导致有32个组播IPv4地址被映射到同一个MAC地址上。
Note:分配地址时需要关注这32个组播IPv4地址。
评论