网络--广播与组播

四种IP广播地址
一、受限的广播
  受限的广播地址是255.255.255.255。该地址用于主机配置过程中IP数据报的目的地址,此时,主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址也不知道。在任何情况下,路由器都不转发目的地址为受限的广播地址的数据报,这样的数据报仅出现在本地网络中。
  一个未解的问题是:如果一个主机是多接口的,当一个进程向本网广播地址发送数据报时,为实现广播,是否应该将数据报发送到每个相连的接口上?如果不是这样,想对主机所有接口广播的应用必须确定主机中支持广播的所有接口,然后向每个接口发送一个数据报复制。
  大多数BSD系统将255.255.255.255看作是配置后第一个接口的广播地址,并且不提供向所属具备广播能力的接口传送数据报的功能。不过,routed rwhod(BSDrwho客户的服务器)是向每个接口发送UDP数据报的两个应用程序。这两个应用程序均用相似的启动过程来确定主机中的所有接口,并了解哪些接口具备广播能力。同时,将对应于那种接口的指向网络的广播地址作为发往该接口的数据报的目的地址。HostRequirementsRFC没有进一步涉及多接口主机是否应当向其所有的接口发送受限的广播。
二、指向网络的广播
  指向网络的广播地址是主机号为全1的地址。A类网络广播地址为netid.255.255.255,其中netid为A类网络的网络号。一个路由器必须转发指向网络的广播,但它也必须有一个不进行转发的选择。
三、指向子网的广播
  指向子网的广播地址为主机号为全1且有特定子网号的地址。作为子网直接广播地址的IP地址需要了解子网的掩码。例如,如果路由器收到发往128.1.2.255的数据报,当B类网络128.1的子网掩码为255.255.255.0时,该地址就是指向子网的广播地址;但如果该子网的掩码为255.255.254.0,该地址就不是指向子网的广播地址。
四、指向所有子网的广播
  指向所有子网的广播也需要了解目的网络的子网掩码,以便与指向网络的广播地址区分开。指向所有子网的广播地址的子网号及主机号为全1。例如,如果目的子网掩码为255.255.255.0,那么IP地址128.1.255.255是一个指向所有子网的广播地址。然而,如果网络没有划分子网,这就是一个指向网络的广播。
 
网络广播 (Broadcast on Network)
  网络广播是指一个节点同时向相同域中的其它所有节点传输数据包的过程。组播是一种特殊的广播,其中一组请求收听的选定用户将收到广播。广播传输通常在局域网(如以太网)中进行,但有时也发生在虚拟局域网(VLAN)中。IPv6 支持单播(Unicast)、组播(Multicast)以及任意播(Anycast)三种类型,IPv6 中没有关于广播(Broadcast)的具体划分,而是作为组播的一个典型。
 
网络广播中涉及以下以下重要概念:
广播域(Broadcast Domain):这是一个限定区域,其中的所有设备都可以共享信息。换句话说,与网络相连,且负责接收广播的所有设备都是同一广播域的一部分。在一个共享以太网中,工作站通过共享媒体将帧广播到其它所有节点。其它节点收听广播,只接收寻址到它们的帧。因此,共享以太网中的所有节点都属于同一广播域。此外通过虚拟局域网技术可以创建一个虚拟广播域。
 
广播地址(Broadcast Address):这是一个特殊地址,当数据包可以寻址到该地址时,可以帮助所有设备打开和处理信息。例如,MAC 地址,格式为 1xFFFFFFFF 是一种广播地址;IP 地址255.255.255.255是通用广播地址。任何设备都将打开寻址到广播地址的信息,并将它们传送到下一个工作站。
 
广播风暴(Broadcast Storm):当主机系统响应一个在网上不断循环的广播数据包或者试图响应一个没有应答的系统时就会发生广播风暴。随着网络数据包数量的增加,广播风暴可能会引起网络拥塞问题。为防止广播风暴的发生,需要细心配置网络以阻止非法广播信息的进入。
 
生成广播信息的应用程序包括地址解析协议(ARP)。通过该协议,主机发送一个地址解析查询到局域网中的所有计算机上,以实现网络 IP 地址的分配。有些路由选择协议,如RIP,主要用于支持网络设备“Advertise”网络服务。

组播地址
为了让组播源和组播组成员进行通信,需要提供网络层组播地址,即IP组播地址。同时必须存在一种技术将IP组播地址映射为链路层的组播MAC地址。
1. IP组播地址
(1) IPv4组播地址
IANA(Internet Assigned Numbers Authority,互联网编号分配委员会)将D类地址空间分配给IPv4组播使用,范围从224.0.0.0到239.255.255.255,具体分类及其含义如表2所示。
表2 IPv4组播地址的范围及含义
地址范围 含义
224.0.0.0~224.0.0.255 永久组地址。除224.0.0.0保留不做分配外,其它地址供路由协议、拓扑查找和协议维护等使用,常用的永久组地址及其含义如表3所示。对于以该范围内组播地址为目的地址的数据包来说,不论其TTL(Time to Live,生存时间)值为多少,都不会被转发出本地网段
224.0.1.0~238.255.255.255 用户组地址,全网范围内有效。包含两种特定的组地址:
l 232.0.0.0/8:SSM组地址
l 233.0.0.0/8:GLOP组地址
239.0.0.0~239.255.255.255 本地管理组地址,仅在本地管理域内有效。使用本地管理组地址可以灵活定义组播域的范围,以实现不同组播域之间的地址隔离,从而有助于在不同组播域内重复使用相同组播地址而不会引起冲突。详情请参见RFC 2365
 
说明:
1、组播组中的成员是动态的,主机可以在任何时刻加入或离开组播组。
2、GLOP是一种AS(Autonomous System,自治系统)之间的组播地址分配机制,将AS号填入该范围内组播地址的中间两个字节中,每个AS都可以得到255个组播地址。有关GLOP的详细介绍请参见RFC 2770。
 
 常用永久组地址及其含义
永久组地址 含义
224.0.0.1 所有系统,包括主机与路由器
224.0.0.2 所有组播路由器
224.0.0.3 未分配
224.0.0.4 DVMRP(Distance Vector Multicast Routing Protocol,距离矢量组播路由协议)路由器
224.0.0.5 OSPF(Open Shortest Path First,开放最短路径优先)路由器
224.0.0.6 OSPF指定路由器/备用指定路由器
224.0.0.7 ST(Shared Tree,共享树)路由器
224.0.0.8 ST主机
224.0.0.9 RIP-2(Routing Information Protocol version 2,路由信息协议版本2)路由器
224.0.0.11 移动代理
224.0.0.12 DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)服务器/中继代理
224.0.0.13 所有PIM(Protocol Independent Multicast,协议无关组播)路由器
224.0.0.14 RSVP(Resource Reservation Protocol,资源预留协议)封装
224.0.0.15 所有CBT(Core-Based Tree,有核树)路由器
224.0.0.16 指定SBM(Subnetwork Bandwidth Management,子网带宽管理)
224.0.0.17 所有SBM
224.0.0.18 VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)
 
(2)IPv6组播地址
IPv6组播地址中各字段的含义如下:
0xFF:最高8比特为11111111,标识此地址为IPv6组播地址。
Flags:4比特该字段中各位的取值及含义如表下。
Flags字段各位的取值及含义
取值及含义
0位 保留位,必须取0
R位 l 取0表示非内嵌RP的IPv6组播地址
l 取1则表示内嵌RP的IPv6组播地址(此时P、T位也必须置1)
P位 l 取0表示非基于单播前缀的IPv6组播地址
l 取1则表示基于单播前缀的IPv6组播地址(此时T位也必须置1)
T位 l 取0表示由IANA永久分配的IPv6组播地址
l 取1则表示非永久分配的IPv6组播地址

Scope:4比特,标识该IPv6组播组的应用范围,其可能的取值及其含义如下。
Scope字段的取值及其含义

 
取值 含义
0、3、F 保留(reserved)
1 接口本地范围(interface-local scope)
2 链路本地范围(link-local scope)
4 管理本地范围(admin-local scope)
5 站点本地范围(site-local scope)
6、7、9~D 未分配(unassigned)
8 机构本地范围(organization-local scope)
E 全球范围(global scope)
 Group ID:112比特,IPv6组播组的标识号,用来在由Scope字段所指定的范围内唯一标识IPv6组播组

2. 以太网组播MAC地址
以太网传输单播IP报文的时候,目的MAC地址使用的是接收者的MAC地址。但是在传输组播数据包时,其目的地不再是一个具体的接收者,而是一个成员不确定的组,所以要使用组播MAC地址。
(1) IPv4组播MAC地址
IANA规定,IPv4组播MAC地址的高24位为0x01005E,第25位为0,低23位为IPv4组播地址的低23位。IPv4组播地址与MAC地址的映射关系如

由于IPv4组播地址的高4位是1110,代表组播标识,而低28位中只有23位被映射到IPv4组播MAC地址,这样IPv4组播地址中就有5位信息丢失。于是,就有32个IPv4组播地址映射到了同一个IPv4组播MAC地址上,因此在二层处理过程中,设备可能要接收一些本IPv4组播组以外的组播数据,而这些多余的组播数据就需要设备的上层进行过滤了。
(2)IPv6组播MAC地址
IPv6组播MAC地址的高16位为0x3333,低32位为IPv6组播地址的低32位。如图7所示,是IPv6组播地址FF1E::F30E:101的MAC地址映射举例。

 

组播协议
说明:
l 通常,我们把工作在网络层的IP组播称为“三层组播”,相应的组播协议称为“三层组播协议”,包括IGMP/MLD、PIM/IPv6 PIM、MSDP、MBGP/IPv6 MBGP等;把工作在数据链路层的IP组播称为“二层组播”,相应的组播协议称为“二层组播协议”,包括IGMP Snooping/MLD Snooping、组播VLAN/IPv6组播VLAN等。
l IGMP Snooping、组播VLAN、IGMP、PIM、MSDP和MBGP应用于IPv4;MLD Snooping、IPv6组播VLAN、MLD、IPv6 PIM和IPv6 MBGP应用于IPv6。

1. 三层组播协议
三层组播协议包括组播组管理协议和组播路由协议两种类型,它们在网络中的应用位置如

(1) 组播组管理协议
  在主机和与其直接相连的三层组播设备之间通常采用组播组的管理协议IGMP(Internet Group Management Protocol,互联网组管理协议)或MLD(Multicast Listener Discovery Protocol,组播侦听者发现协议),该协议规定了主机与三层组播设备之间建立和维护组播组成员关系的机制。
(2) 组播路由协议
  组播路由协议运行在三层组播设备之间,用于建立和维护组播路由,并正确、高效地转发组播数据包。组播路由建立了从一个数据源端到多个接收端的无环(loop-free)数据传输路径,即组播分发树。
对于ASM模型,可以将组播路由分为域内和域间两大类:
1. 域内组播路由用来在AS内部发现组播源并构建组播分发树,从而将组播信息传递到接收者。在众多域内组播路由协议中,PIM(Protocol Independent Multicast,协议无关组播)是目前较为典型的一个。按照转发机制的不同,PIM可以分为DM(Dense Mode,密集模式)和SM(Sparse Mode,稀疏模式)两种模式。
2. 域间组播路由用来实现组播信息在AS之间的传递,目前比较成型的解决方案有:MSDP(Multicast Source Discovery Protocol,组播源发现协议)能够跨越AS传播组播源的信息;而MP-BGP(MultiProtocol Border Gateway Protocol,多协议边界网关协议)的组播扩展MBGP(Multicast BGP)则能够跨越AS传播组播路由。
对于SSM模型,没有域内和域间的划分。由于接收者预先知道组播源的具体位置,因此只需要借助PIM-SM构建的通道即可实现组播信息的传输。
2. 二层组播协议
二层组播协议包括IGMP Snooping/MLD Snooping和组播VLAN/IPv6组播VLAN等,它们在网络中的应用位置如

(1)IGMP Snooping/MLD Snooping
IGMP Snooping(Internet Group Management Protocol Snooping,互联网组管理协议窥探)和MLD Snooping(Multicast Listener Discovery Snooping,组播侦听者发现协议窥探)是运行在二层设备上的组播约束机制,通过窥探和分析主机与三层组播设备之间交互的IGMP或MLD报文来管理和控制组播组,从而可以有效抑制组播数据在二层网络中的扩散。
(2)组播VLAN/IPv6组播VLAN
在传统的组播点播方式下,当连接在二层设备上、属于不同VLAN的用户分别进行组播点播时,三层组播设备需要向该二层设备的每个VLAN分别发送一份组播数据;而当二层设备运行了组播VLAN或IPv6组播VLAN之后,三层组播设备只需向该二层设备的组播VLAN或IPv6组播VLAN发送一份组播数据即可,从而既避免了带宽的浪费,也减轻了三层组播设备的负担。

组播报文的转发机制
  在组播模型中,IP报文的目的地址字段为组播组地址,组播源向以此目的地址所标识的主机群组传送信息。因此,转发路径上的组播路由器为了将组播报文传送到各个方位的接收站点,往往需要将从一个入接口收到的组播报文转发到多个出接口。与单播模型相比,组播模型的复杂性就在于此:
1. 为了保证组播报文在网络中的传输,必须依靠单播路由表或者单独提供给组播使用的路由表(如MBGP路由表)来指导转发;
2. 为了处理同一设备在不同接口上收到来自不同对端的相同组播信息,需要对组播报文的入接口进行RPF(Reverse Path Forwarding,逆向路径转发)检查,以决定转发还是丢弃该报文。RPF检查机制是大部分组播路由协议进行组播转发的基础。

 

原文地址:https://www.cnblogs.com/tla001/p/6498191.html