什么是组播,与单播、广播有什么区别?

2024年 1月 15日 71.9k 0

什么是组播,与单播、广播有什么差别?

是初学者首先要搞清楚的问题。我们知道单播、组播和广播都是IP报文网络传输的三种模式,它们的定义如下:

  • 单播是主机间一对一的通讯模式,网络中的设备根据网络报文中包含的目的地址选择传输路径,将单播报文传送到指定的目的地,只对接收到的数据进行转发,不会进行复制。它能够针对每台主机及时的响应,现在的网页浏览全部都是采用单播模式。

图片[1]-什么是组播,与单播、广播有什么区别?-不念博客

  • 广播是主机间一对所有的通讯模式,设备会将报文发送到网络中的所有可能接收者。设备简单地将它收到的任何广播报文都复制并转发到除该报文到达的接口外的每个接口。广播处理流程简单,不用选择路径。

图片[2]-什么是组播,与单播、广播有什么区别?-不念博客

  • 组播是主机间一对多的通讯模式, 组播是一种允许一个或多个组播源发送同一报文到多个接收者的技术。组播源将一份报文发送到特定的组播地址,组播地址不同于单播地址,它并不属于特定某个主机,而是属于一组主机。一个组播地址表示一个群组,需要接收组播报文的接收者都加入这个群组。

图片[3]-什么是组播,与单播、广播有什么区别?-不念博客

组播IP地址:一个组播IP地址能够标识网络不同位置的多个用户主机,一台用户主机可以同时识别多个组播IP地址。一份使用组播IP地址为目的地址的IP报文,能够被网络不同位置的多个用户主机接收。

用户主机使用不同的类别的IP地址,就选用了不同的传输方式:

  • IP报文网络传输使用单播IP地址的,简称为单播。
  • IP报文网络传输使用广播IP地址的,简称为广播。
  • IP报文网络传输使用组播IP地址的,简称为组播。

组播封装方式

为了使组播源和组播组成员进行通信,需要提供网络层组播,使用IP组播地址。组播报文使用UDP进行封装。

常见组播应用

IPTV直播、课堂多媒体教学、楼宇对讲通信、新兴电子商务、网络拍卖和网络会议等服务大多符合点对多点的业务模式都会用到组播。

图片[4]-什么是组播,与单播、广播有什么区别?-不念博客

IPv4组播地址

IANA(Internet Assigned Numbers Authority,互联网编号分配委员会)将D类地址空间分配给IPv4组播使用。IPv4地址一共32位,D类地址最高4位为1110,因此地址范围从224.0.0.0到239.255.255.255,具体分类及含义见表1。

表1 IPv4组播地址的范围及含义

地址范围 含义
224.0.0.0~224.0.0.255 永久组地址。IANA为路由协议预留的IP地址(也称为保留组地址),用于标识一组特定的网络设备,供路由协议、拓扑查找等使用,不用于组播转发。常见的永久组地址如表2所示
224.0.1.0~231.255.255.255233.0.0.0~238.255.255.255 ASM(Any-Source Multicas,任意组播源模型)组播地址,全网范围内有效
232.0.0.0~232.255.255.255 缺省情况下的SSM(Source-Specific  Multicast,指定组播源模型)组播地址,全网范围内有效
239.0.0.0~239.255.255.255 本地管理组地址,仅在本地管理域内有效。在不同的管理域内重复使用相同的本地管理组地址不会导致冲突

表2 常见的永久组地址列表

永久组地址 映射MAC地址 含义
224.0.0.0 01-00-5E-00-00-00 不分配
224.0.0.1 01-00-5E-00-00-01 网段内所有主机和路由器(等效于广播地址)
224.0.0.2 01-00-5E-00-00-02 所有组播路由器
224.0.0.3 01-00-5E-00-00-03 不分配
224.0.0.4 01-00-5E-00-00-04 DVMRP(Distance Vector Multicast Routing Protocol,距离矢量组播路由协议)路由器
224.0.0.5 01-00-5E-00-00-05 OSPF(Open Shortest Path First,开放最短路径优先)路由器
224.0.0.6 01-00-5E-00-00-06 OSPF DR(Designated Router,指定路由器)
224.0.0.7 01-00-5E-00-00-07 ST(Shared Tree,共享树)路由器
224.0.0.8 01-00-5E-00-00-08 ST主机
224.0.0.9 01-00-5E-00-00-09 RIP-2(Routing Information Protocol version 2,路由信息协议版本2)路由器
224.0.0.11 01-00-5E-00-00-0B 移动代理(Mobile-Agents)
224.0.0.12 01-00-5E-00-00-0C DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)服务器/中继代理
224.0.0.13 01-00-5E-00-00-0D 所有PIM(Protocol Independent  Multicast,协议无关组播)路由器
224.0.0.14 01-00-5E-00-00-0E RSVP(Resource Reservation Protocol,资源预留协议)封装
224.0.0.15 01-00-5E-00-00-0F 所有CBT(Core-Based Tree,有核树)路由器
224.0.0.16 01-00-5E-00-00-10 指定SBM(Subnetwork Bandwidth Management,子网带宽管理)
224.0.0.17 01-00-5E-00-00-11 所有SBM
224.0.0.18 01-00-5E-00-00-12 VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)
224.0.0.22 01-00-5E-00-00-16 所有使能IGMPv3(Internet Group  Management Protocol, Version 3,因特网组管理协议)的路由器
224.0.0.19 ~ 224.0.0.21224.0.0.23 ~ 224.0.0.255 01-00-5E-00-00-13 ~ 01-00-5E-00-00-1501-00-5E-00-00-17 ~ 01-00-5E-00-00-FF 未指定

IPv4组播MAC地址映射关系

以太网传输IPv4单播报文的时候,目的MAC地址使用的是接收者的MAC地址。但是在传输组播数据时,其目的地不再是一个具体的接收者,而是一个成员不确定的组,所以要使用IPv4组播MAC地址,即IPv4组播地址映射到链路层中的地址。

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

图3 IPv4组播地址与IPv4组播MAC地址的映射关系

图片[5]-什么是组播,与单播、广播有什么区别?-不念博客

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

IPv6组播地址

IPv6地址长度是128位,在RFC4291中对组播地址的定义如图1所示。

图1 IPv6组播地址的格式

图片[6]-什么是组播,与单播、广播有什么区别?-不念博客

和IPv4组播地址相比,IPv6组播地址有了明确的Group ID字段用于标识组播组。

  • 0xFF:最高8位为11111111,标识此地址为组播地址。即IPv6组播地址总是以FF开头。
  • Flags字段(4位):用来标识组播地址的状态。格式如下:

图2 Flags字段格式

图片[7]-什么是组播,与单播、广播有什么区别?-不念博客

 表3 Flags字段各位取值及含义

取值说明
0位 最高位为保留位,必须为0
R位 取0表示非内嵌RP的组播地址取1表示内嵌RP的组播地址,此时P、T位也必须置1
P位 取0表示非基于单播前缀的组播地址取1则表示基于单播前缀的组播地址,此时T位也必须置1
T位 取0表示永久分配组播地址取1则表示非永久分配的组播地址
  • Scope字段(4位):用来标识组播组的应用范围,例如是只包含同一本地网络、同一站点、同一机构中的节点,还是包含全球地址空间内的任何节点。其含义如下:

 表4 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位):组播组标识号。用来在由Scope字段所指定的范围内唯一标识组播组,该标识可能是永久分配的或临时的,这由Flags字段的T位决定。固定的IPv6组播地址的范围及含义如表5。

  表5 IPv6组播地址的范围及含义

范围 含义
FF0x::/32 保留组地址,具体请参见表6
FF1x::/32(x不能是1或者2)FF2x::/32(x不能是1或者2) ASM组播地址,全网范围内有效
FF3x::/32(x不能是1或者2) 缺省的SSM组地址范围,全网范围内有效

  表6 IPv6常用组播地址范围及含义

范围 IPv6组播地址 IPv6组播MAC地址映射 含义
节点(或接口)本地范围 FF01::1 33-33-00-00-00-01 所有节点(接口)地址
FF01::2 33-33-00-00-00-02 所有路由器地址
链路本地范围 FF02::1 33-33-00-00-00-01 所有节点地址
FF02::2 33-33-00-00-00-02 所有路由器地址
FF02::3 33-33-00-00-00-03 未定义的地址
FF02::4 33-33-00-00-00-04 DVMRP路由器
FF02::5 33-33-00-00-00-05 OSPF IGP Routers
FF02::6 33-33-00-00-00-06 OSPF IGP DR
FF02::7 33-33-00-00-00-07 ST路由器
FF02::8 33-33-00-00-00-08 ST主机
FF02::9 33-33-00-00-00-09 RIP路由器
FF02::A 33-33-00-00-00-0A EIGRP路由器
FF02::B 33-33-00-00-00-0B 移动代理
FF02::D 33-33-00-00-00-0D 所有PIM路由器
FF02::E 33-33-00-00-00-0E RSVP封装
FF02::1:1 33-33-00-01-00-01 Link Name
FF02::1:2 33-33-00-01-00-02 所有DHCP代理
FF02::1:FFXX:XXXX 33-33-FF-XX-XX-XX Solicited-Node地址,XX:XXXX表示节点IPv6地址的后24位
站点本地范围 FF05::2 33-33-00-00-00-02 所有路由器地址
FF05::1:3 33-33-00-01-00-03 所有DHCP服务器
FF05::1:4 33-33-00-10-00-04 所有DHCP中继
FF05::1:1000~FF05::1:13FF 33-33-00-01-10-00~33-33-00-01-13-FF 服务位置

IPv6组播MAC地址映射关系

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

图4 IPv6组播地址的MAC地址映射举例

图片[8]-什么是组播,与单播、广播有什么区别?-不念博客

可见IPv6中会有更多的组地址使用同一个MAC地址。

相关文章

如何在 Linux 中使用 logname 命令?
为什么有 HTTPS?HTTPS 如何实现安全通信?
HTTPS的TSL握手流程是什么
华为无线网络射频调优及WLAN跨VLAN的三层漫游示例
502错误是什么、应该怎么排查?
HTTP3为什么抛弃了经典的TCP,而选择QUIC

发布评论