版权归原作者所有,如有侵权,请联系我们

[科普中国]-组播地址

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

组播报文的目的地址使用D类IP地址, D类地址不能出现在IP报文的源IP地址字段。单播数据传输过程中,一个数据包传输的路径是从源地址路由到目的地址,利用“逐跳”的原理在IP网络中传输。然而在ip组播环中,数据包的目的地址不是一个,而是一组,形成组地址。所有的信息接收者都加入到一个组内,并且一旦加入之后,流向组地址的数据立即开始向接收者传输,组中的所有成员都能接收到数据包。组播组中的成员是动态的,主机可以在任何时刻加入和离开组播组。

详细内容分类组播组可以是永久的也可以是临时的。组播组地址中,有一部分由官方分配的,称为永久组播组。永久组播组保持不变的是它的ip地址,组中的成员构成可以发生变化。永久组播组中成员的数量都可以是任意的,甚至可以为零。那些没有保留下来供永久组播组使用的ip组播地址,可以被临时组播组利用。

224.0.0.0~224.0.0.255为预留的组播地址(永久组地址),地址224.0.0.0保留不做分配,其它地址供路由协议使用;

224.0.1.0~224.0.1.255是公用组播地址,可以用于Internet;

224.0.2.0~238.255.255.255为用户可用的组播地址(临时组地址),全网范围内有效;

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

组播地址列表列表如下:

224.0.0.0 基准地址(保留)

224.0.0.1 所有主机的地址 (包括所有路由器地址)

224.0.0.2 所有组播路由器的地址

224.0.0.3 不分配

224.0.0.4 dvmrp路由器

224.0.0.5 所有ospf路由器

224.0.0.6 ospf DR/BDR

224.0.0.7 st路由器

224.0.0.8 st主机

224.0.0.9 rip-2路由器

224.0.0.10 Eigrp路由器

224.0.0.11 活动代理

224.0.0.12 dhcp 服务器/中继代理

224.0.0.13 所有pim路由器

224.0.0.14 rsvp封装

224.0.0.15 所有cbt路由器

224.0.0.16 指定sbm

224.0.0.17 所有sbms

224.0.0.18 vrrp

以太网传输单播ip报文的时候,目的mac地址使用的是接收者的mac地址。但是在传输组播报文时,传输目的不再是一个具体的接收者,而是一个成员不确定的组,所以使用的是组播mac地址。组播mac地址是和组播ip地址对应的。iana(internet assigned number authority)规定,组播mac地址的高24bit为0x01005e,mac 地址的低23bit为组播ip地址的低23bit。

由于ip组播地址的后28位中只有23位被映射到mac地址,这样就会有32个ip组播地址映射到同一mac地址上。1

组播MAC地址组播MAC地址的高24bit为0x01005e,第25bit为0,即高25bit为固定值。MAC地址的低23bit为组播IP地址的低23bit。由于 IP组播地址的前4bit 是1110,代表组播标识,而后28bit 中只有23bit 被映射到MAC 地址,这样IP 地址中就有5bit 信息丢失,导致的结果是出现了32 个IP 组播地址映射到同一MAC 地址上。

FAQ用IP-以太网说明组播和以太网组播的关系,及以太网组播的细节过程。

1) 什么是IP组播?

协议层常需要和组群打交道,进行发现、通知、查询等工作。IP用组播IP地址在第三层组播,一个multicast IP address 可以有多个成员,组播数据包会被IP层路由器转发到组群成员所在的路由器,然后用以太网的组播功能把数据包送到组播成员的网卡接口。例,OSPF 用Hello来发现局域网中的OSPF邻居,HSRP发送Hello组播包把自己的状态通知其它的HSRP路由器。

2) 以太网怎么组播的 (multicast)?

以太网具有广播属性,一个节点发送的数据包会被以太网泛洪,导致每一个以太网网卡接口都会收到这个数据包。接口收到数据包后,并不马上交给节点CPU处理,而是进行MAC地址比较,如果数据包的目的MAC地址和接口的MAC地址一样,它才接受,把数据包交给计算机,否则就把数据包丢弃。组群成员的网卡接口除了硬件MAC地址 (unicast MAC),还有组播MAC地址 (multicast MAC)。接口收到组播包,会把此包的目的MAC地址 (是个组播MAC)和自己的MAC地址比较,如果组播地址相同,就会接受此包。这样,局网内这个组群的所有成员,都会收到送往该组群的组播包。

3) IP-Ethernet 的组播地址和组播MAC地址有什么关系?

许多MAC组播地址是从IP组播地址转换而来。例,OSPF IP组播地址是224.0.0.5, 转换为相应的MAC组播地址如下:

(1) 把IP地址(32位)用二进制表现 11100000: 00000000: 00000000: 00000101

(2) 然后抽出最右边的23叫做A: 0000000: 00000000: 00000101

(3) 把IEEE定义的组播01:00:5e作为B. B有24位 (二进制是 00000001:00000000:01011110)

(4) 合成相应的MAC组播地址如下:连接 B,0,A。 B有24位,在左边; 0是一位,在中间;A有23位,在右边。共48位。 二进制是 00000001:00000000:01011110:00000000: 00000000: 00000101 十六进制是 01:00:5e:00:00:05

4) 有多少个IP组播地址?

IP协议把224.0.0.0 ~ 239.255.255.255之间的IP地址都用做IP组播地址。以下列出前几个组播地址。 224.0.0.0 Base address (reserved)

224.0.0.1 The All Hosts multicast group that contains all systems on the same network segment 224.0.0.2 The All Routers multicast group that contains all routers on the same network segment 224.0.0.5 The Open Shortest Path First (OSPF) AllSPFRouters address. Used to send Hello packets to all OSPF routers on a network segment

224.0.0.6。The OSPF AllDRouters address. Used to send OSPF routing information to OSPF designated routers on a network segment

224.0.0.9 The RIP version 2 group address. Used to send routing information using the RIP protocol to all RIP v2-aware routers on a network segment

224.0.0.10 EIGRP group address. Used to send EIGRP routing information to all EIGRP routers 。

5) 有没有以太网专用的MAC组播地址?以下列出一些以太网专用的组播地址,

Ethernet multicast address Type Field Usage 01-00-0C-CC-CC-CC 0x0802 CDP (Cisco Discovery Protocol), VTP (VLAN Trunking ) 01-00-0C-CC-CC-CD 0x0802 Cisco Shared Spanning Tree Protocol Address 01-80-C2-00-00-00 0x0802 Spanning Tree Protocol (for bridges) IEEE 802.1D

组播应用组播应用大致可以分为三类: 点对多点应用,多点对多点应用和多点对点应用。

点对多点的应用点对多点应用是指一个发送者,多个接收者的应用形式,这是最常见的组播应用形式。

典型的应用包括:

媒体广播:如演讲、演示、会议等按日程进行的事件。其传统媒体分发手段通常采用电视和广播。这一类应用通常需要一个或多个恒定速率的数据流,当采用多个数据流(如语音和视频)时,往往它们之间需要同步,并且相互之间有不同的优先级。它们往往要求较高的带宽、较小的延时抖动,但是对绝对延时的要求不是很高。

媒体推送:如新闻标题、天气变化、运动比分等一些非商业关键性的动态变化的信息。它们要求的带宽较低、对延时也没有什么要求。

信息缓存: 如网站信息、执行代码和其他基于文件的分布式复制或缓存更新。它们对带宽的要求一般,对延时的要求也一般。

事件通知:如网络时间、组播会话日程、随机数字、密钥、配置更新、有效范围的网络警报或其他有用信息。它们对带宽的需求有所不同,但是一般都比较低,对延时的要求也一般。

状态监视:如股票价格、传感设备、安全系统、生产信息或其他实时信息。这类带宽要求根据采样周期和精度有所不同,可能会有恒定速率带宽或突发带宽要求,通常对带宽和延时的要求一般。

多点对多点的应用多点对多点应用是指多个发送者和多个接收者的应用形式。通常,每个接收者可以接收多个发送者发送的数据,同时,每个发送者可以把数据发送给多个接收者。

典型应用包括:

多点会议:通常音/视频和白板应用构成多点会议应用。在多点会议中,不同的数据流拥有不同的优先级。传统的多点会议采用专门的多点控制单元来协调和分配它们,采用组播可以直接由任何一个发送者向所有接收者发送,多点控制单元用来控制当前发言权。这类应用对带宽和延时要求都比较高。

资源同步:如日程、目录、信息等分布数据库的同步。它们对带宽和延时的要求一般。

并行处理:如分布式并行处理。它对带宽和延时的要求都比较高。

协同处理:如共享文档的编辑。它对带宽和延时的要求一般。

远程学习:这实际上是媒体广播应用加上对上行数据流(允许学生向老师提问)的支持。它对带宽和延时的要求一般。

讨论组:类似于基于文本的多点会议,还可以提供一些模拟的表达。

分布式交互模拟(DIS):它对带宽和时延的要求较高。

多人游戏:多人游戏是一种带讨论组能力的简单分布式交互模拟。它对带宽和时延的要求都比较高。

Jam Session:这是一种音频编码共享应用。它对带宽和时延的要求都比较高。

多点对点的应用多点对点应用是指多个发送者,一个接收者的应用形式。通常是双向请求响应应用,任何一端(多点或点)都有可能发起请求。典型应用包括:

资源查找:如服务定位,它要求的带宽较低,对时延的要求一般。

数据收集:它是点对多点应用中状态监视应用的反向过程。它可能由多个传感设备把数据发回给一个数据收集主机。带宽要求根据采样周期和精度有所不同,可能会有恒定速率带宽或突发带宽要求,通常这类应用对带宽和延时的要求一般。

网络竟拍:拍卖者拍卖产品,而多个竟拍者把标价发回给拍卖者。

信息询问: 询问者发送一个询问,所有被询问者返回应答。通常这对带宽的要求较低,对延时不太敏感。

Juke Box:如支持准点播(Near-On-Demand)的音视频倒放。通常接收者采用“带外的”协议机制(如HTTP、RTSP、SMTP,也可以采用组播方式)发送倒放请求给一个调度队列。它对带宽的要求较高,对延时的要求一般。2

本词条内容贡献者为:

孔祥杰 - 副教授 - 大连理工大学软件学院