单播
单播的每个数据包都有特定的目的地址,对于同一份数据,有多个接收者,那么单播服务器就要创建多份相同的数据,会消耗网络资源,适用于用户稀少的网络。主要应用有电子邮件,网上银行业务。
网络视频用的是单播转发,而不是组播,因为不是每个人点开网络视频的时间都是一样的
广播(Broadcast)
是在一台源IP主机和网络中所有其它的IP主机之间进行,属于一对所有的通讯方式,所有主机都可以接收到(不管是否需要)。
广播数据包被限制在广播域中;一旦有设备发送广播数据,则广播域内所有设备都会收到这个数据包,并且不得不耗费资源去处理,大量的广播数据包将消耗网络的带宽及设备资源;广播方式只适合共享网段,且信息安全性和有偿服务得不到保障。
组播(Multicast)
是在一台源IP主机和多台(一组)IP主机之间进行,中间的网络设备根据接收者的需要,有选择性地对数据进行复制和转发。
组播技术有效地满足了单点发送、多点接收的需求,实现了IP网络中点到多点业务数据的高效传送,能够大量节约网络带宽、降低网络负载。
相比单播,用户的增加不会导致信息源负载的加重,不会导致网络资源消耗的显著增加。
相比广播,不会造成网络资源的浪费,并能提高信息传输的安全性,而且组播可以实现跨网段的传输。
组播数据报文结构
组播IP地址
范围 | 含意 |
224.0.0.0—224.0.0.255 | 为路由协议预留的永久组地址 |
224.0.1.0—231.255.255.255 233.0.0.0—238.255.255.255 | Any-Source临时组播组地址 |
232.0.0.0—232.255.255.255 | Source-Specific临时组播组地址 |
239.0.0.0—239.255.255.255 | 本地管理的Any-Source临时组播组地址 |
IPv4组播地址:
IPv4组播地址的前4位是固定的1110
IPv4地址空间分为五类,即A类、B类、C类、D类和E类。D类地址为IPv4组播地址,范围是从224.0.0.0到239.255.255.255,用于标识组播组,且仅能作为组播报文的目的地址使用,不能作为源地址使用。
IPv4组播报文的源地址字段为IPv4单播地址,可使用A、B或C类地址,不能是D类、E类地址。
组播MAC地址
目的MAC地址为组播MAC地址,组播MAC地址由组播IP地址映射来。
- 以太网传输IPv4单播报文的时候,目的MAC地址使用的是接收者的MAC地址。但是在传输组播数据时,其目的地不再是一个具体的接收者,而是一个成员不确定的组,所以要使用IPv4组播MAC地址。
- IANA规定,IPv4组播MAC地址的高24位为0x01005e,第25位为0,低23位为IPv4组播地址的低23位,例如组播组地址224.0.1.1对应的组播MAC地址为01-00-5e-00-01-01。
IPv4组播地址的前4位是固定的1110,对应组播MAC地址的高25位,后28位中只有23位被映射到MAC地址,因此丢失了5位的地址信息,直接结果是有32个IPv4组播地址映射到同一MAC地址上。例如IP地址为224.0.1.1、224.128.1.1、225.0.1.1、239.128.1.1等组播组的组播MAC地址都为01-00-5e-00-01-01。网络管理员在分配地址时必须考虑这种情况。
单播MAC地址第一个字节的最低为为0
组播MAC地址第一字节的最低一位为1
广播MAC地址全1
组播网络基本架构
组播网络大体可以分为三个部分:
- 源端网络:将组播源产生的组播数据发送至组播网络。
- 组播转发网络:形成无环的组播转发路径,该转发路径也被称为组播分发树(Multicast Distribution Tree)。
- 成员端网络:让组播网络感知组播组成员位置与加入的组播组。
组播源(Source):组播流量的发送者,例如多媒体服务器。组播源无需运行任何组播协议,只需简单 地将组播数据发送出来即可。
组播接收者(Receiver):也被称为组播组成员,是期望接收特定组播组流量的设备,例如运行多媒体 直播客户端软件的PC。
组播组(Multicast Group):用IP组播地址进行标识的一个集合。任何用户主机(或其他接收设备),加入一个组播组,就成为了该组成员,可以识别并接收发往该组播组的组播数据。
组播路由器(Multicast Router):支持组播、运行组播协议的网络设备,实际上不仅仅路由器能够支持 组播,交换机、防火墙等设备也能够支持组播(取决于设备型号),路由器仅是一个代表。
第一跳路由器(First-Hop Router):组播转发路径上,与组播源相连且负责转发该组播源发出的组播数据的PIM路由器。
最后一跳路由器(Last-Hop Router):组播转发路径上,与组播组成员相连且负责向该组成员转发组播数据的PIM路由器。
IGMP(Internet Group Management Protocol,因特网组管理协议),是TCP/IP协议族中负责IP组播成员管理的协议,它用来在接收者和与其直接相邻的组播路由器之间建立、维护组播组成员关系。
组播分发树:组播流量的转发路径。
组播服务模型
组播组成员在接收组播数据时可以对于组播数据源进行选择,因此产生了ASM(Any-Source Multicast,任意源组播)和SSM(Source-Specific Multicast,指定源组播)两种组播服务模型。
ASM:组成员加入组播组以后,组成员可以接收到任意源发送到该组的数据。
ASM特点:
- ASM为了提高安全性,可以在路由器上配置针对组播源的过滤策略,允许或禁止来自某些组播源的报文通过。最终从接收者角度看,数据是经过筛选的。
- ASM模型要求组地址必须整个组播网络中唯一。“唯一”指的是同一时刻一个ASM地址只能被一种组播应用使用。如果有两种不同的应用程序使用了同一个ASM组地址发送数据,它们的接收者会同时收到来自两个源的数据。这样一方面会导致网络流量拥塞,另一方面也会给接收者主机造成困扰。(多个应用使用相同地址,主机会收到两个应用的信息,不不能分辨造成困扰,同时收到多个应用数据,也会造成网络拥塞)
组成员只会收到指定源发送到该组的数据。
- SSM特点:
- SSM模型对组地址不再要求全网唯一,只需要每个组播源保持唯一。这里的“唯一”指的是同一个源上不同的组播应用必须使用不同的SSM地址来区分。不同的源之间可以使用相同的组地址,因为SSM模型中针对每一个(源,组)信息都会生成表项。这样一方面节省了组播组地址,另一方面也不会造成网络拥塞。