学习笔记——IP组播——IP组播基本概述

二、IP组播基本概述

IP组播技术有效地解决了单播和广播在点到多点应用中的问题。组播源只发送一份数据,数据在网络节点间被复制、分发(PIM),且只发送给需要该信息的接收者。

1、前言

网络中存在各种各样的业务,流量模型看一般可以将业务分为两类

1)点到点业务:比如FTP,WEB业务,

特点不同的用户有不同的需求,比如用户A需要下载资料A,用户B需要下载资料B。

此类业务一般由单播承载,服务器对于不同用户发送不同的点到点数据流

2)点到多点业务:比如IPTV,视频会议等,

特点用户对于业务有相同的需求,比如用户A,B,C,D都需要收看视频X,此类业务可以使用单播,组播,广播承载使用单播或广播承载点到多点业务时存在一定问题

组播技术能够较好的解决单播或广播,在承载点到多点业务时存在的问题

2、点到多点业务的困境

点到多点业务可以由单播,组播,广播进行承载,现网中也有各种各样的实现方式。但使用单播或者广播承载点到多点业务时存在一些固有的问题。

单播承载点到多点业务(IPTV场景)            

广播承载点到多点业务(IPTV场景)

             

在单播通信中每一个数据包都有确切的目的IP地址;(上左图)

对于同一份数据,如果存在多个接收者,Server需发送与接收者数目相同的单播数据包;当接收者增加到成百上干时,将极大加重Server创建相同数据和发送多份相同拷贝后所产生的消耗,网络中的设备性能及链路带宽都会面临一定程度的浪费;

单播方式较适合用户稀少的网络,当用户量较大时很难保证网络传输质量

广播数据包被限制在广播域中;(上右图)

一旦有设备发送广播数据,则广播域内所有设备都会收到这个数据包,并且不得不耗费资源去处理,大量的广播数据包将消耗网络的带宽及设备资源;

广播方式只适合共享网段,且信息安全性和有偿服务得不到保障

使用组播承载点到多点业务

组播方式下,单一的信息流沿组播分发树被同时发送给一组用户,相同的组播数据流在每一条链路上最多仅有一份。

相比单播和广播,使用组播的好处如下:

相比单播,用户的增加不会导致信息源负载的加重,不会导致网络资源消耗的显著增加。

相比广播,不会造成网络资源的浪费,并能提高信息传输的安全性,而且组播可以实现跨网段的传输。

3、组播介绍

(1)组播定义

是指接收者的数量和位置,在源端主机不知道的情况下,仅由源发出一份组播报文,向目标组播IP地址发送数据的过程。

组播方式解决了单播情况下,数据的重复拷贝及带宽的重复占用,也解决了广播方式下带宽资源的浪费。

IP组播技术实现了IP网络中点到多点的高效数据传送,能够有效的节约网络带宽、降低网络负载,在实时数据传送、多媒体会议、数据拷贝、游戏和仿真等诸多方面都有广泛的应用。

(2)组播特点

1、组播实现点到多点的高效数据传输。(通常基于UDP)

2、提高效率优化性能:组播可以有效节约带宽、降低网络负载。(按需发送,不会和广播一样只会泛洪,减少了对链路带宽的浪费)

3、分布式应用:组播广泛应用于IPTV、实时数据传送和多媒体会议等。(常用于直播,视频会议,电视网络等处)

4、组播报文

(1)组播数据报文结构

组播数据报文的结构与单播报文类似,但组播数据报文的目的MAC地址与目的IP地址与单播报文有很大差异

组播目的IP地址:目的IP地址为组播IP地址,地址范围:224.0.0.0 - 239.255.255.255

组播目的MAC地址:目的MAC地址为组播MAC地址,组播MAC地址由组播IP地址映射而来。

5、组播地址

        为了使组播源和组播组成员进行通信,需要提供网络层组播,使用IP组播地址。同时,为了在本地物理网络上实现组播信息的正确传输,需要提供链路层组播,使用组播MAC地址。

(1) 组播IP地址

组播IP地址:一个组播IP地址就是一个IP地址,并不是表示具体的某台主机。而表示一组主机的集合,主机声明加入某组播组,即声明自己需要接收目的地址为该组播地址的数据。

IP组播常见模型分为ASM模型和SSM模型

组播地址:

组播MAC地址:01-00-5E-XX-XX-XX

组播地址的范围:224.0.0.0-239.255.255.255(D类地址空间,第一个字节的高四位1110)

本地协议预留组播地址:224.0.0.0-224.0.1.255 (永久组地址)地址224.0.0.0保留不做分配,其他地址供路由协议使用。

本地管理组地址:239.0.0.0-239.255.255.255 仅仅在特定的本地范围内有效

用户组播地址:224.0.2.0-238.255.255.255 (临时组地址),全网范围有效。

公用组播地址:224.0.1.0-224.0.1.255  可以用于INternet;

(2)组播IP地址分类

永久组地址:IANA为路由协议预留的组播地址,用于标识一组特定的网络设备(也称保留组播组)。永久组地址保持不变,组成员的数量可以是任意的,甚至可以为零。

临时组地址:为用户组播组临时分配的IP地址,组成员的数量一旦为零,即取消。

IANA(Internet Assigned Numbers Authority,互联网编号分配委员会)将D类地址空间分配给IPv4组播使用,地址范围为224.0.0.0-239.255.255.255。

D类地址范围

含义

224.0.0.0-224.0.0.255

为路由协议预留的永久组地址。用于标识一组特定的网络设备,供路由协议、拓扑查找等使用,不用于组播转发

该类组播地址只能在本地链路工作,IANA将这些地址保留用于特殊用途。几个典型的例子:

224.0.0.0 //保留不做分配        224.0.0.1  //所有组播主机

224.0.0.2  //所有组播路由器     224.0.0.9  //RIPV2路由器

224.0.0.5 //OSPF路由器组播地址  224.0.0.6  //OSPF DR组播地址

该范围内的地址属于局部范畴,不论生存时间字段(TTL)值是多少,都不会被路由器转发(只能在一个广播传递),当起开了这个协议的设备就会接受对应的永久广播地址,否则不会接收,所以也是做到了精确的接收。

224.0.1.0~231.255.255.255

233.0.0.0~238.255.255.255

ASM(Any-Source)临时组地址。这种类型的组播地址全局有效。

IANA还做了进一步的范围细化,其中两类值得关注的地址范围:

SSM组地址及GLOP组地址。

232.0.0.0-232.255.255.255

SSM(Source-Specific-Multicast)临时组地址。缺省情况下的SSM组播地址,全网范围内有效。

    总的来说SSM地址的范围比ASM要小很多,第二和第三这两种地址的服务是通过相应机构监督完成的。

239.0.0.0-239.255.255.255

(Any-Source)本地管理组播地址,仅在特定的本地管理域内有效。

本地管理组播地址属于私有地址,在不同的管理域内使用相同的本地管理组播地址不会导致冲突。(可以定义为ASM服务或者SSM服务)

1)IPv4组播地址

IPv4地址空间分为五类,即A类、B类、C类、D类和E类。在IPv4地址空间中,D类地址被用于组播(224.0.0.0-239.255.255.255),且仅能作为组播报文的目的地址使用不能作为源地址使用

高4bit固定为1110。使用D类地址(224.0.0.0-239.255.255.255),又分为永久组地址临时组地址(见下表)。

永久组播组(224.0.0.X)

说明

224.0.0.1

所有设备(主机与路由器)的地址

224.0.0.2

所有路由器的地址

224.0.0.4

DVMRP路由器

224.0.0.5

所有OSPF路由器

224.0.0.6

OSPF指定路由器

224.0.0.9

Rip-2路由器

224.0.0.9

EIGP路由器

224.0.0.13

PIM路由器

一个组播地址就表示一个点到多点的数据流。比如IPTV数据流,语音会议数据流。

IPv4组播报文的源地址字段为IPv4单播地址,可使用A、B或C类地址,不能是D类、E类地址。

在网络层上,加入同一组播组的所有用户主机能够识别同一个IPv4组播组地址。一旦网络中某用户加入该组播组,则此用户就能接收以该组地址为目的地址的IP组播报文。

大多数情况下,同一个组播网络里不同的业务(比如:IPTV、语音会议)就需要使用不同的组播IP地址。

临时组播组

说明

224.0.1.0~231.255.255.255 233.0.0.0~238.255.255.255

ASM/SFM 组播地址,全网范围内有效

232.0.0.0~232.255.255.255

SSM 组播地址,全网范围内有效

239.0.0.0~239.255.255.255

本地管理组播地址,仅在特定的本地范围内有效。

2)IPv6组播地址

FF00:0000:0000:0000:0000:0000:0000:0000 ~ FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF

IPv6地址长度是128位,组播地址的定义如下图所示。

高8bit固定为FF,标识此地址为组播地址。即IPv6组播地址总是以FF开头。

往后4bit为flag,用来标识组播地址的状态。(高3位取0做保留,最低位为0时表永久组播地址,为1时表非永久组播地址),其含义如下:

取值

含义

0

表示是IANA指定的常用组播地址,也叫保留组地址

1

表示是ASM范围的组播地址

2

表示是ASM范围的组播地址

3

表示是SSM范围的组播地址

其他

未分配

再往后4bit为scope标识组播组的应用范围(见下表)。

取值

含义

0、3、F

保留

1

节点(或接口)本地范围(node/interface-local scope)

2

链路本地范围(link-local scope)

4

管理本地范围(admin-local scope)

5

站点本地范围(site-local scope)

8

机构本地范围(organization-local scope)

E

全球范围(global scope)

其他

未分配

Group ID(112位):组播组标识号。与Flags字段和Scope字段结合指定的范围内唯一标识组播组。

(3)组播MAC地址

以太网传输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。网络管理员在分配地址时必须考虑这种情况。

IETF认为同一个局域网中两个或多个组地址生成相同的MAC地址的几率非常低,不会造成太大的影响。

组播MAC地址标识了一组设备,这种MAC地址第1个字节的最低比特位为1,例如0100-5e00-00ab。一个组播MAC地址所标识的一组设备有着共同的特点,那就是它们都加入了相同的组播组,这些设备将会侦听目的MAC地址为该组播MAC地址的数据帧。只有单播MAC地址才能够被分配给一个以太网接口,组播或广播MAC地址是不能被分配给任何一个以太网接口的,换句话说,这两种类型的MAC地址不能作为数据帧的源MAC地址,而只能作为目的MAC地址。

对于组播MAC地址,例如STP协议的BPDU载荷便是被直接封装在以太网数据帧中的,并且数据帧的目的MAC地址为0180-c200-0000,这就是一个组播MAC地址,类似这样的例子还有很多,这些组播MAC地址并不与组播IP地址存在关联。

除此之外,还有一类组播MAC地址是我们需要格外关注的,那就是与组播IP地址存在映射关系的组播MAC地址。

1)组播MAC地址与单播MAC地址的区别

就以太网而言,IP组播帧都使用以0x0100.5Exxxxxx的24位前缀开始的MAC层地址。

1)组播IP与MAC的映射

组播IP地址和MAC地址的映射,需要组播IP地址与组播MAC地址的自动映射。

组播MAC地址的高24bit为0x01005e,MAC地址的低23bit为组播IP地址的低23bit。

1.组播MAC第一个8位组的最后一位为1

2.单播MAC第一个8位组的最后一位为0

3.组播IP地址有5位被丢弃,因此组播IP与MAC的对应关系是32:1。

MAC地址的低23bit为组播IP地址的低23bit。

映射导致的问题

组播IP地址映射成组播MAC地址时,会导致32个组播IP地址对应一个组播MAC的问题。

由于IP组播地址的前4bit是1110,代表组播标识,而后28bit中只有23bit被映射到MAC地址,这样IP地址中就有5bit信息丢失,直接的结果是出现了32个组播IP地址映射到同一组播MAC地址上。

IETF认为同一个局域网中两个或多个组地址生成相同的MAC地址的几率非常低,不会造成太大的影响。

存在当第3层IP地址映射成第2层MAC地址时导致32:1的地址不明确问题。

2)IPv4组播MAC地址

以太网传输IPv4单播报文的时候,目的MAC地址使用的是接收者的MAC地址。但是在传输组播数据时,其目的地不再是一个具体的接收者,而是一个成员不确定的组,所以要使用IPv4组播MAC地址,即IPv4组播地址映射到链路层中的地址。组播MAC地址标识了一组设备,这种MAC地址第一个字节的最低比特位为1。

IANA规定,IPv4组播MAC地址的高24位为0x01005e第25位为0,低23位为IPv4组播地址的低23位,映射关系如图5所示。例如:组播组IP地址224.0.1.1对应的组播MAC地址为01-00-5e-00-01-01。

注意:IPv4组播地址的前4位是固定的1110,对应组播MAC地址的高25位,后28位中只有23位被映射到MAC地址,因此丢失了5位的地址信息,直接结果是由32个IPv4组播地址映射到同一个MAC地址上。例如:224.0.1.1、224.128.1.1,225.0.1.1、239.128.1.1等组播组的组播MAC地址都为01-00-5e-00-01-01。网络管理员在分配地址时必须考虑这个情况。

组播MAC地址与单播MAC地址的区别:

IANA规定,IPv4组播MAC地址的高24位为0x01005e,第25位固定为0。

组播数据帧的传输目的不再是一个具体的接收者,而是一个成员不确定的组,所以使用的是组播MAC地址。IANA规定,组播MAC地址的高24bit为0x01005e,第25bit固定为0。

组播MAC地址用于在链路层标识属于同一组播组的接收者。

以太网传输单播数据帧的时候,目的MAC地址使用的是接收者的MAC地址或者下一跳路由器的MAC地址。这个MAC地址通过ARP获取。对于组播数据帧也需要有一个可预知的MAC地址。

2)IPv6组播MAC地址

IPv6组播MAC地址的高16位为0x3333,低32位为IPv6组播地址的低32位。(下图示)是IPv6组播地址FF01::1111:1的MAC地址映射举例。

IPv6地址高8位固定;128-8-32=88,有2^88个IPv6组播MAC地址重复


整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度,觉得这段文字更通俗易懂,融入了自己的学习笔记中。如有相关文字涉及到某个人的版权利益,可以直接联系我,我会把相关文字删除。【VX:czlingyun    暗号:CSDN】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

灵韵设计

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值