2009-7-20 1
Multicasting-组播西部大学校园网培训教材编写组
2003年 01月
1、组播的基本概念
2,LAN内的组播
3、组播路由算法
4,WAN上组播路由协议
5、组播的发展与问题
2009-7-20 2
1、组播的基本概念
1.1 IP组播的基本定义:
在 LAN/WAN上能使 IP数据报 从一个源同时到多个目 的传输过程
接收组成员参加组播会议,应用只需发送一份拷贝到需要接收的组
组播技术让包只寻址到组,而不是单个接收者
开放组播的结点要运行一套能接收组播报文的 TCP/IP协议
由 IETF推荐的 1112RFC定义的对 IP的扩展
2009-7-20 3
1.2 初步了解组播
组播时,成千用户并发使用,并基本不影响主干带宽
ISP
Push
接收者发送者
2009-7-20 4
先进的组播技术
Router
Router
Internet
Router
D1
D2
D3
D1
D2
D3 D1
D2
D3
D1
D2
D3
Sender
Receivers
Multicast
-在 IP 网上一对多的传输
-支持视频会议,
-e-learning,培训等
Unicasting
Router
Router
Internet
Router
D D
D
D
D
D
Sender
ReceiversMulticasting
5
单播流
Video
Server
Receiver Receiver Receiver Not AReceiver
单播应用对每个单播地址包都发出一份拷贝
6
1.5 Mb x 3 = 4.5 Mb
1.5 Mb x 2 = 3 Mb 1.5 Mb x 1 = 1.5 Mb
1.5 Mb x 1 = 1.5 Mb
1.5 Mb x 1 = 1.5 Mb1.5 Mb x 1 = 1.5 Mb
单播流 -考虑 3个 1.5 Mb流
Video
Server
Receiver Receiver Receiver Not AReceiver
7
单播流 -考虑 100个 1.5 Mb流
.,,
1.5 Mb x 100 = 150 Mb
1.5 Mb x 100 = 150 Mb
1.5 Mb x 100 = 150 Mb
Receiver 1 Receiver 100
1.5 Mb x 100 = 150
Mb
Video
Server
如果用 组播,则主干只有一个流,流量是单播的 1/n
8
广播流我不希望接收这个视频流,但我的 CPU仍要处理这个 1.5 Mb流
1.5 Mb
1.5 Mb 1.5 Mb
1.5 Mb 1.5 Mb 1.5 Mb 1.5 Mb
Video
Server
Receiver Receiver Receiver Not AReceiver
9
组播流
1.5 Mb
1.5 Mb 1.5 Mb
1.5 Mb 1.5 Mb 1.5 Mb
Video
Server
组播服务器用组播地址 (特别的广播 )把单个数据流发送到多个客户端组播主干流量是单播主干流量的 1/n
Receiver Receiver Receiver Not AReceiver
2009-7-20 10
一对多的组播
One-to-many
Sender
Receivers
2009-7-20 11
多对多的组播
Many-to-many
Sender
Receivers
Sender
2009-7-20 12
多对一的组播
Many-to-one
Sender
Receiver
Sender
2009-7-20 13
不同层次的组播
组播可在数据链路层次实现
数据链路层可用 Ethernet,FDDI 和 Token
Ring实现
但该多播仅限于在 LAN内
组播可在网络层实现
把多播从单一 LAN扩展到不同媒体和网络技术构成的因特网
故需要完成 ISO/OSI的 L3到 L2的地址转换
2009-7-20 14
主机要向路由器动态注册,以指明它是该组的成员
RFC1112定义 IGMP,IGMP说明主机怎样通告网络,它是某多播组的成员
多播路由器之间通信的几个标准或协议
RFC1075定义距离矢量多播路由协议 — DVMRP
RFC1584定义开放最短路径优先多播路由协议 — MOSPF,
是扩充 OSPF以支持多播
RFC2117定义协议独立多播路由协议 — PIM-SM稀疏模式
PIM-DM:密集模式:是最近的因特网标准草案
2009-7-20 15
1.3 播放机制比较及特点
LAN上的实现
单播,把 IP 地址映射成 MAC 地址
广播,特别的 MAC 地址 ;全,1… 1”
组播,把组地址映射成特别的 MAC 地址
跨子网的单播,单播包有源 /目 IP 地址
– 路由器接收单播 IP 包
– 路由器基于目 IP地址只把该包转发到单个目地址
– 可能在同一接口上交付
2009-7-20 16
各种播放机制的比较
跨子网的组播,组播包有源 IP 地址和组播目的组地址 (Class D)
路由器接收组播 IP 包
路由器转发到所有输出接口,除开刚流入包的上游接口外
只有组成员接收这个流
跨子网的广播
对网络影响很大 — 类似 DOS攻击
在路由器上要关闭广播路由机制
2009-7-20 17
IP 组播的特点
是把一份数据分发到有多个成员组的有效手段
支持 one to many and many to many
服务
只需传送一份数据拷贝
支持动态成员组的建立
传输服务是用不可靠的 UDP
2009-7-20 18
组播的应用
今天
金融领域应用
股票和商品交易
流媒体
电子教学
企业通信
企业资源应用
数据仓库和内容同步
任何 1— Many数据库
Push应用
明天
宽带接入
视频会议
数字 TV
数字视频
娱乐
网上游戏
PDAs和家用电器
电子商务 /政务 /…
2009-7-20 19
组播的网络结构组播路由器接收者子网发送者子网组播发 送应用
TCP UDP
网卡
IP/IGMP/ICMP
组播接收 应用
TCP UDP
网卡
IP/IGMP/ICMP
组播 应用协议寻址:
源和目的端口寻址发送者地址和接收者 组 地址
2009-7-20 20
组播组主机中的 TCP/IP协议栈应用主机 -主机传输网卡 (多物理实现 )
网络互连
FTP
SMTP
Telnet…
ARP/RARP/SNAP
广播组播单播
NetBIOS
DNS SNMP
LLC Ethernet,FDDI
TCP
IPICMP
IGMP
UDPRAMP
2009-7-20 21
2,LAN内的组播
组播报文传输的主要问题
哪些计算机或设备准备接收组播报文?
怎样建立从组播源到组播目之路径?
组播环境下的寻址
– IP 组播地址结构
– IP 组播地址到 MAC 地址的映射
组播组的形成
22
2.1 IPv4组播地址的结构
Class D address consists of 1110 as the higher order
bits in the first octet,followed by a 28-bit group
address.
Class D addresses range from 224.0.0.0 through
239.255.255.255,The high-order bits in the first octet
identify this 224-base address
1110 0000---1110 1111 = 128+64+32=224—239(224+15).
Multicast Group ID1 1 01Class D
28 bits
2009-7-20 23
组播用的 D类地址
D类地址是组播地址,以指明组播组内的主机或接口
D类地址从 224.0.0.0---239.255.255.255
最低 256个地址为管理和系统级路由杂用保留
中间地址为组内、内联和因特网上终端用户使用
高端地址为本地管理或特别站点的组播使用系统保留组播地址 用户组播地址 本地管理用组播地址
224.0.0.0—
224.0.0.255
因本地用故 TTL = 1
239.0.0.0—
239.255.255.255
224.0.1.0—
238.255.255.255
非本地用故 TTL > 1
2009-7-20 24
IP组播保留地址表地址 用途 保留类别
224.0.0.0— 224.0.0.18 网络协议 本地链路
224.0.0.1 所有主机 本地链路
224.0.0.2 所有路由器 本地链路
224.0.0.19— 224.0.0.255 未分配 本地链路
224.0.1.0— 224.0.1.255 组播应用 应用
224.0.1.1 NTP 应用
224.0.1.8 NIS+ 应用
224.0.1.39 Cisco RP 通告 应用
224.0.1.40 Cisco RP 发现 应用
224.0.1.80— 224.0.1.255 未分配 应用
239.0.0.0— 239.255.255.255 私用组播域 管理用
2009-7-20 25
常用 D类地址分配
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---OSPFIGP所有路由器
224.0.0.6---OSPFIGP指定路由器
224.0.0.7---ST路由器
224.0.0.8---ST主机
224.0.0.9---RIP2路由器
224.0.0.10— IGRP路由器
224.0.0.11— 移动代理
224.0.0.12— 224.0.0.255— 未分配
224.0.1.0---VMTP管理组
224.0.1.1---NTP网络时间协议
224.0.1.2---SGI-Dogfight
224.0.1.3---rwHOD
224.0.1.4---VNP
224.0.1.6— NSS名字服务服务器
224.0.1.9---MTP组播传输协议
224.0.1.11— IETF-1声频
224.0.1.12--- IETF-1视频
224.0.1.21---MOSPF上的 DVMRP
224.0.1.10— IGRP路由器
224.0.1.32— Mtrace路由器
224.0.1.78— Tbico路由器
2009-7-20 26
一个管理域内可使用的地址
地址范围 239.0.0.0---239.255.255.255
专用地址空间
与 RFC1918单播发送 地址相似
不用于全球 Internet业务流
用于限制组播业务流的范围
相同地址可在不同管理域,用于不同的组播会话
站点 —— 本地范围,239.255.0.0/16
组织 —— 本地范围,239.192.0.0/14
SSM(源特定的组播 )范围
232.0.0.0----232.255.255.255
主要针对基于 Internet的组播
2009-7-20 27
2.2 组播地址的转换
子网上的本地 R收到 L3层的组播包,它能映射该组播地址成 L2层的多播地址
接收主机的网卡硬件能能有效读出 L2层地址
L2层协议给组播和广播空间保留有地址空间
从 L3到 L2立刻直接转换成 MAC地址:通过把 IP组播地址的低 23位落入到 Ethernet
组播地址的低 23位即可
2009-7-20 28
数据链路层组播 /广播的处理
第二层可把组播 MAC帧转发到二层交换机的所有端口,网上任何主机都可接收到它想接收的报文上层信息第二层组播
/广播目的地址第二层组播 /广播流第二层交换把流转发到所有端口点
2009-7-20 29
Ethernet的 MAC 组播地址
单播模式下的接收
网络上每一帧可被网卡接收,并与自己的 MAC地址比较,仅向主机提交发给自己的帧
对网卡编程,可设置成杂收模式,则向主机交所有收到的帧
广播模式下的接收
全 ‘ 1’( 48 Bits)构成的广播地址,所有网卡都向自己的主机提交该有广播地址的帧
组播模式下的接收
01:00:5E:xx:xx:xx开头的任何地址(第一位是 1的非广播地址? )
主机对网卡编程,使其接收组播地址的某个集合
网卡的 4种编址模式
编址成自己的 单播地址 /广播地址 /组播地址 /混杂模式
30
IP组播到以太网地址的映射
0000000100000000 011011110
Class D IP Address
48-Bit Ethernet MAC Address
1110
0 7 8 15 16 23 24 31
Not
Used
Low-Order 23 Bits of Multi-cast
Group ID Copied to Ethernet Address
01 00 5E
224
因为存在 2 5= 32个冲突映射,故接收主机的设备驱动程序或 IP模块必须过滤掉它不在组的组播帧
31
映射,Example 1
0 0 0 0 1 0 10 0 0 0 0 1 0 00 0 0 0 0 0 1 01
224 10 8 5- - -
1 1 1 0 0 0 0 0
01 00- -
Multicast Address:224.10.8.5 = (E0:0A:08:05)
Ethernet Address,01:00:5E:0A:08:05
5E 0A- 08- 05-
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1
32
映射,Example 2
1 0 0 0 1 0 10 0 0 0 0 1 0 00 0 0 0 0 0 1 01
224 10 8 5- - -
1 1 1 0 1 0 1 0
01 00- -
Multicast Address:
Ethernet Address:
5E 0A- 08- 05-
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 1 0 1 1 1 1 0 0 0 0 0 1 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 1
2009-7-20 33
IPv6的组播地址结构
112 Bit4 Bit4 Bit8 Bit
11111111 Group IDScopFlags
FF:组播地址的标志 0 0 0 T
T=0:永久分配
T=1:临时分配
0:保留
1:本地结点
2:本地链路
5:本地站点
8:本地组织
E:全球
F:保留其它:未分配
2009-7-20 34
组播地址映射的若干提示
IANA认可 IEEE-802 MAC层的保留空间是以
01,00,5E开头的地址块
其中一半用于 IP组播到 MAC层组播的地址空间是
01:00:5E:00:00:00------ 01:00:5E:7F:FF:FF
接收主机的 TCP/IP栈必须能解释组播,理解 IP组播地址的有效范围,并对网卡编程,使得网卡能接收所需要的组播地址
因为存在 25 = 32个冲突映射,故端用户接收主机需使其网卡能有效过滤掉从网络层 IP组播地址映射过来的 MAC地址
源地址可以永远不是 D类组播地址
2009-7-20 35
组播地址的分配
动态地址分配
会话目录工具( SDR)
以前用于通知关于组播组的会话 /组信息
扩展上存在问题
组播地址客户机分配协议( MADCAP)
与 DHCP相同
服务器和客户机 API在 W2K中销售
应用需要支持 MADCAP
组播地址请求( MASC)
分级、动态的地址分配
分级体的顶端是 Internet exchenge
孩子从父亲处申请地址
复杂的垃圾收集问题 /分级体很长
2009-7-20 36
组播地址的分配(续)
静态全球组地址分配
满足紧急需求的临时方法
组范围,233.0.0.0— 233.255,
255.255
把你的 AS号插入到中间 2个 8位中
将低 8位用于组分配
定义在 RFC 2770
管理员进行人工地址分配
仍然是企业最常用的方法
2009-7-20 37
2.3 IGMP组播组的形成
IGMP协议
主机怎样告诉指派组播路由器 (DR)它的身份
DR了解与其直连主机中是否有组成员存在
RFC1112定义 IGMPV1,Win95上获得支持
RFC2236定义 IGMPV2,Windows和大部分 Unix系统的最新设备中支持
IGMPV3在 IETF草案中有规定
draft— ietf— igmp— v3-07.txt
IGMP同 ICMP一样,是 IP(TCP/IP协议栈 )整体中的一部分,用 IP数据报来传输自己的数据
2009-7-20 38
有关组播的 3类主机
Level 0— 该类主机不能实现组播,组播活动对它无影响
Level 1— 该类主机能发送组播报文,但不能接收组播报文
它可参加某些基于组播的服务 — 资源或状态报告
不允许该类主机参加任何组播接收主机组
Level 2— 该类主机既能发送也能接收组播报文,实现了 IGMP在本地网卡上的 IP
扩充
2009-7-20 39
IGMP的基本操作
IGMP在 Level 2主机上实现
IGMP报文被封装在 IP数据报的数据部分
IGMP是定长的报文
IP头中的协议类型 = 2
IP Header IGMP Message
20 Bytes
IP数据报
8 Bytes
IGMPv1—Packet Format
版本号 = 1
Type:
1 = Host Membership Query,由 MR发出
2 = Host Membership Report,由主机发出
Group Address:
Multicast Group Address
7 15 23 31
Ver Unused ChecksumType
4
Group Address
IGMPv2—Packet Format
Multiple message types
组成员询问 /成员报告 /成员离开 3类 message
Max,Resp,Time
Max,time before sending a responding
report in 1/10 secs (default = 10 secs)
Group Address:
Multicast Group Address
(0.0.0.0 for General Queries)
Max,Resp,Time Checksum
Group Address
Type
7 15 31
2009-7-20 42
支持 IP数据报所需的扩展
IP服务接口的扩展
JoinHostGroup(group address,interface)
请求使自己 成为 给定网络接口上组地址标识组的成员
LeaveHostGroup(group address,interface)
请求使自己 放弃 给定网络接口上组地址标识组的成员
LAN服务接口的扩展
JoinHostGroup(group address)
请求 LAN模块接收并顺序递交依给定组地址到达的包
LeaveHostGroup(group address)
请求 LAN模块接收停止递交依给定组地址到达的包
2009-7-20 43
主机 IP组播的 扩展 实现模式
Upper-Layer Protocol Modules
IP
Module IGMPICMP
Local
Network
Module
IP-to-Local Address Mapping
ARP/RARP
IP Service Interface
Local Network
Service Interface
2009-7-20 44
IGMP协议的实现
IP主机用 IGMP向直接相连的组播路由器
(MR)报告它的组播组的 D类组地址
MR收到有此后,用 IGMP学到与其物理直连网上的组播成员
Router
Router
Router
IGMP
报文接收主机有组播的路由器
2009-7-20 45
组播路由器的查询操作
MR定期用 224.0.0.1组地址(作为 IP头中的目的地址)发组成员查询包
MR只关心本网上到底有哪些组,并不关心哪台主机属于哪个组
一般查询( IGMP包中的组地址 =0.0.0.0)
:哪些组有成员在本网上?
特别查询( IGMP包中的组地址 =特别组地址),一特别组是否有成员在本网上
2009-7-20 46
组播主机的应答操作
识别组号
为每个组设置一个延迟时钟
大小 = 0--Max,Response Time随机数,缺省 = 10秒
如果某个超时,则为相应组生成报告包,并发送出去
如果该主机同时又收到其它主机发出的包,则停止相应组的时钟,故本网的一个组仅产生一个报告包
在时钟等待期,若又收到另一个询问包,并不刷新原时钟的时限,而是在原时钟超时后发出报告
当一主机新加入某组时,应马上发出组报告,不用等待
MR的询问
2009-7-20 47
MR收到报告后的操作
把被报告组加入到网上组播组成员表中
为该成员设置一个组成员时间间隔
,在该间隔时间过去之前,MR要决定本网上再没有组成员
2009-7-20 48
主机离开组播组
主机静静地离开组播组,依据实现的不同,会有差别
如果某离开组的主机是最近才回答 MR询问的主机,该主机发 LeaveHostGroup
有些实现是任何主机离开都发
LeaveHostGroup
2009-7-20 49
IGMP Example (1)
Host 1,as resource; Host 3:want to be a
membership of this group
Host 1 begins sending packets
No IGMP messages sent
Packets remain on Network 1
Router periodically sends IGMP
Membership Query
Network 1 Network 2
Router
1
2 4
3
2009-7-20 50
IGMP Example (2)
Network 1
Host 3 joins conference
Sends IGMP Membership Report message
Router begins forwarding packets onto Network 2
Host 3 leaves conference
Sends IGMP Leave Group message
Only sent if it was the last host to send an IGMP
Membership Report message
Network 2
Router
1
2 4
3
Membership ReportLeave Group
51
Group Membership
Host A Host B Host C
Host D I’m not a member so I
won’t respond.
I’m a member
so I will
respond.
I’m a member
so I will
respond.
I’m a member
so I will
respond.
Are there any
members for
Group XYZ?
Multicast uses query and report messages to
establish and maintain group membership
IGMPv1—Joining a Group
Joining member sends report to 224.1.1.1
immediately upon joining
H3
224.1.1.1
Report
IGMPv1
H1 H2
IGMPv1—General Queries
The router periodically sends general queries to
224.0.0.1 to determine memberships
General Query
to 224.0.0.1
IGMPv1 Multicast
Router
H3H1 H2
IGMPv1—Maintaining a Group
IGMPv1
#1 Router sends periodic queries
#2 One member per group per subnet report
224.1.1.1
#2
#3 Other members suppress reports
224.1.1.1
X
#3
H3H1 H2
Query to
224.0.0.1 #1
Report Suppressed
Router sends periodic queries
Hosts silently leave group
Router continues sending periodic queries
Query to
224.0.0.1
IGMPv1—Leaving a Group
IGMPv1
No reports for group received by router
Group times out
H3H1 H2
IGMPv2—Joining a Group
Joining member sends report to 224.1.1.1
immediately upon joining (same as IGMPv1)
224.1.1.1
Report
172.16.41.141
H1
172.16.41.1 172.16.41.2 172.16.41.3
RTR141
H3H2
IGMPv2—Joining a Group
(cont.)
172.16.41.141
H1
172.16.41.1 172.16.41.2 172.16.41.3
RTR141
E0
H2 H3
RTR141>show ip igmp group
IGMP Connected Group Membership
Group Address Interface Uptime Expires Last Reporter
224.1.1.1 Ethernet0 6d17h 00:02:31 172.16.41.2
IGMPv2—DR的遴选
Intially all routers send out a query
Router with lowest IP address,elected” querier(DR)
Other routers become non-queriers
IGMPv2
H1 H2 H3
Query Query
IGMP Querier
IGMP
Non-Querier
172.16.41.141
172.16.41.1 172.16.41.2 172.16.41.3
172.16.41.143
IGMPv2—Querier Election
Locating the designated querier router--DR
RTR141>show ip igmp interface e0
Ethernet0 is up,line protocol is up
Internet address is 172.16.41.141,subnet mask is 255.255.255.0
IGMP is enabled on interface
Current IGMP version is 2
CGMP is disabled on interface
IGMP query interval is 60 seconds
IGMP querier timeout is 120 seconds
IGMP max query response time is 10 seconds
Inbound IGMP access group is not set
Multicast routing is enabled on interface
Multicast TTL threshold is 0
Multicast designated router (DR) is 172.16.41.141 (this system)
IGMP querying router is 172.16.41.141 (this system)
Multicast groups joined,224.0.1.40 224.2.127.254
IGMPv2—Maintaining a Group
Router sends periodic queries
Query
IGMPv2
One member per group per subnet report
224.1.1.1
Report
Other members suppress reports
224.1.1.1
Suppressed
X
H2 H3
172.16.41.141
172.16.41.1 172.16.41.2 172.16.41.3
H1
IGMPv2—Leaving a Group
H1 H2 H3
RTR141
IGMP state in RTR141 before leave
172.16.41.1 172.16.41.2 172.16.41.3
172.16.41.141
RTR141>sh ip igmp group
IGMP Connected Group Membership
Group Address Interface Uptime Expires Last Reporter
224.1.1.1 Ethernet0 6d17h 00:02:31 172.16.41.2
IGMPv2—Leaving a Group
H2 leaves group; sends leave message
H1 H2 H3
Leave to
224.0.0.2
224.1.1.1
#1
Router sends group-specific query
Group Specific
Query to 224.1.1.1
#2
A remaining member host sends report;
Report to
224.1.1.1
224.1.1.1
#3
group remains active
RTR141
172.16.41.1 172.16.41.2 172.16.41.3
IP=172.16.41.141
D = 224.0.0.2
#1
#2
#3
IGMPv2—Leaving a Group
(cont.)
H1 H2 H3
RTR141
IGMP state in RTR141 after H2 leaves
172.16.41.1 172.16.41.2 172.16.41.3
172.16.41.141
RTR141>sh ip igmp group
IGMP Connected Group Membership
Group Address Interface Uptime Expires Last Reporter
224.1.1.1 Ethernet0 6d17h 00:01:47 172.16.41.3
IGMPv2—Leaving a Group
(Cont.)
Last host leaves group; sends Leave message
H1 H3
Leave to
224.0.0.2
224.1.1.1
#1
Router sends group-specific query;
Group-specific
Query to 224.1.1.1
#2
no report is received,group times out
H2
#1
#2
RTR141
172.16.41.1 172.16.41.2 172.16.41.3
172.16.41.141
IGMPv2—Leaving a Group
(cont.)
RTR141>sh ip igmp group
IGMP Connected Group Membership
Group Address Interface Uptime Expires Last Reporter
H1 H2
RTR141
IGMP state in RTR141 after H3 leaves
Records are deleted
172.16.41.1 172.16.41.2 172.16.41.3
172.16.41.141
H3
2009-7-20 66
3、组播路由算法
网络路由器和主机的主要不同是 R需用转发算法,而主机则不需要
组播路由协议中使用的算法主要有
Flooding
Spanning tree
Reverse-Path Broadcasting(RPB)
Truncated Reverse-Path
Broadcasting(TRPB)
Reverse-Path Multicasting(MPB)
Core-based tree
2009-7-20 67
3.1 IP组播路由的基本方法
组播协议的基本任务是:
在连通所有组主机的支撑树上为源到目对( pair)传输 IP组播流
组播支撑树的构造方法随组播协议的不同而变化
一旦支撑树构造好,就沿着该树分发组播流
2009-7-20 68
组播路由的特点
组播地址用以区别网上播发的会议
( session),而不是特别的物理目的地,源不需知道所有相关的地址
对不同的接收,许多会议数据流是相同的
接收主机必须通过 IGMP让其子网路由器 DR知道它们加入了某个会议组
2009-7-20 69
两类组播路由协议 — 密集模式
密集模式组播路由协议
假设组播组成员密集分布于网络上的许多子网
,并至少包含一个组成员
都需要大量的带宽
密集模式的组播路由协议包括
DVMRP
MOSPF
PIM-DM
依靠洪泛技术传播信息到所有组播路由器
2009-7-20 70
组播路由的稀疏模式
稀疏模式组播路由协议
假设组播组成员稀疏分布于网络上,并至少包含一个组成员
不需要大量的带宽,组成员可能由 ISDN连通
稀疏模式的组播路由协议包括
CBT:Core-Based Tree
PIM-SM
不用洪泛方式,因组成员稀疏分布,否则会浪费带宽并引发严重性能下降
2009-7-20 71
3.2 Flooding 算法
Step 1,MR接收一个组播数据报
Step 2,MR决定该报文是否是第一次
若是,MR转发该报文到除其刚进入的接口以外的所有接口,从而保障它能转发到所有其它 MR
否则(即这之前发送过该报文),
丢弃它
MR仅需跟踪最近转发的报文,不需维护路由表
2009-7-20 72
组播报文的洪泛
X A
C B D C
X A
B D
X A
BC D
X
C
A
B D
A:报文到达 X B,X洪泛报文到 A和 C
D:洪泛完成C,A和 C洪泛报文到 B
2009-7-20 73
洪泛算法的缺点
不适应在因特网上扩展规模
生成大量重复包,故不能在 WAN上工作
洪泛使用了因特网上的所有通道,而不是仅需要的有限通道,导致拥塞
降低了路由器内存的有效利用率,因为每个 MR要维护最近进入包的表
2009-7-20 74
3.3 Spanning Tree 算法
Spanning Tree路由解成为 IEEE 802
LAN 数据链路层的标准
Spanning Tree定义因特网或内联网上的树结构:连通树
每个树枝是任何两个 R的单通路连接
Spanning Tree能消除网络拓扑的环路
2009-7-20 75
实现 Spanning Tree 算法
选择一转发设备作为根,根通常具 y
有最低优先权的设备,优先权相等时选最低 MAC地址
决定通路代价
选择根端口,选定每个 LAN上的指定转发设备
为每个子网选定指定端口
2009-7-20 76
消除环路
B
3
B
5
B
2
B
1
B
6
B
4
B
7
I
K
AG
FE
D
C
B
A
J
产生环路的 LAN
带环的图支撑树
2009-7-20 77
Spanning Tree 算法的特点
优点:
算法很有用并容易实现
缺点:
把流量集中在少数链路上
未给从源子网到目的组成员之间提供有效的通路
受限 Steiner Trees(CST)
组播报文沿树不并行转发到路由器
最小平均通道延迟和组播树代价优化
2009-7-20 78
3.4 Reverse-Path Broadcasting算法
RPB:逆向路径广播算法基本内容:
对子网上的 每个可能源,都 建立其组支撑树
,该源子网是根,以区别于后面的 TRPB
即每个活动的源 — 组对 (S,G)都存在一支撑树
路由器用逆向路径广播( RPB)算法构造以源为根的树,以减少重复包
RPB为每个活动的源 — 组对都构造出不同的支撑树,并容易实现
单播转发路由关心包发往哪里,组播路由关心包来自哪里。故称 — 逆向 路径?
2009-7-20 79
RPB的实现
接收来自路由器 A的报文,且 Link 1是 源
— 组对 的父链路
转发报文到 Link 4,
Link 5及任何有组成员的本地叶子网
通过路由报文交换知道 Link 2是路由器 C
的父链路,故不转发到 Link 3
路由器 C将丢弃来自
Link 3的报文,因它是来自非父链路 路由器,A.B..F;最短路径,1,2,4,5,6
A
C
D E F
B 3
2
6
98
54
1
7

2009-7-20 80
3.5 Truncated RPB
缩短(剪枝) RPB
改进了 RPB的限制,RPB在建立源 — 组支撑树时未考虑组成员
这意味着组播报文可能会转发到没有组成员的子网去
TRPB用 IGMP决定每个叶子网上的组成员
于是 TRPB避免转发报文到无组成员的叶子网
2009-7-20 81
3.6 Reverse Path Multicasting
RPM是在 RPB和 TRPB上的改进
RPM建立仅支撑由组成员子网、路由器及沿最短路径到有组成员子网路径上子网构成的转发树
如果叶路由器在其子网上
有组成员:则用 IGMP通告父 R,并基于它转发报文
否则:用剪枝报文通告父
R,故它不再向下转发
如果父 R从其所有子链路上收到剪枝报文,则向自己的父 R
送剪枝报文 …
协议会一次又一次刷新组播树 …

A
C
D E F
B
G
G
G
G
组播组成员非组播组成员被剪枝活动枝
2009-7-20 82
3.7 Shortest-Path Tree
SPT:无限制组播路由算法
建立从源到所有目的组成员的支撑树
不考虑 QoS请求而最小化给定代价
可最小化端到端延迟或跳数
SPT用 Dijkstra的最短路径算法或
Bellman-Ford算法最小化代价函数
2009-7-20 83
3.8 Core-based Trees 算法
CBT算法:
建立一个由所有组的发送者和接收者 共享的转发树,不是每个源 — 组对建立一个树
CBT实现时,所有路由器在相同的转发树上发送组播流,不考虑不同的源
CBT根据网络规模可有一个或多个 核,它是发送者和接收者之间的一个会议点角色,RFC2189中又称为汇聚点 RP
共享树比其它组播算法更容易扩展规模
当然,共享树也更容易造成核心路由器附近的流量集中和 瓶颈效应
2009-7-20 84
CBT组播转发树
可扩展,低存储,
低带宽,适应多发送源的应用
健壮算法,可多核
比其它算法简单
协议独立,可安装在任何地方
允许域间组播路由
与 DVMRP定义了交互操作机制
Core
源主机流先给核心 RP
2009-7-20 85
4、组播路由协议
4.1 组播路由的基本分类及其特点
Source Rooted Trees,(多棵树 )
树把组内每个源连接到其组的每个成员
DVMRP和 MOSPF协议使用 SRT
因特网 Mbone使用 DVMRP
Share Trees:(一棵树 )
用于稀疏组播,可能有大规模网络连接
依赖中心核心路由器或组播源和目的站间的汇聚点
PIM-SM和 CBT使用
86
单播的路由
Host A
172.13.107.5
Network
172.13.0.0
Network
172.45.0.0
Server B
172.45.37.10
172.13.107.5 172.45.37.10
Destination
Address
Source
Address
87
组播的路由
Host A
172.13.107.5
Host B
172.45.37.10
Network
172.45.0.0
Network
172.45.0.0
Network
172.6.0.0
B
I don’t have any
clients in group
234.10.8.5 but
Router B has,A
01-00-5e-10-8-5234.10.8.5Multimedia Stream for Group XYZ
88
报文分发树
I am a
member of
Group XYZ.
I am a
member of
Group XYZ.
I am NOT
member of
Group XYZ.
Packet Duplication
at This Point Only
89
源树分发的路由
Server 1
Group ABC
Host 1
Group ABC
A B C D
E F G
Source-specific trees use the shortest path from
the sender to each receiver
Host 2
Group ABC
Host 3
Group ABC
90
源树分发的路由
Server 1
Group ABC
Host 1
Group ABC
A B C D
E F G
Host 2
Group ABC
If the link between the local router and the neighboring
router is not the shortest path,the packet is not
forwarded on that link
91
共享树分发的路由
Source 1
A B C D
E F G
Source 2
Multicast traffic for each group is sent and received over
the same delivery tree,regardless of the source
共享链路
2009-7-20 92
源根树和共享树的对比
B
A
C
D
B
A
C
D
Source
Rooted Trees
Shared Tree
Traffic is heavily
concentrated on
some links while
others get little
utilization.
Routers maintain
state for each sender
in a group.
Often does not use
optimal path from
source to destination.
2009-7-20 93
4.2 协议独立组播 — 稀疏模式
Protocol Independent Multicast (PIM)
组播报文转发协议
建立(发现拓扑)和维护组播树的所有机制可依赖域中任何单播路由协议
树的构成完全由 Join报文 所走的路径决定,而该路径是由单播路由选择的最短路径所决定的
PIM 路由器经过 报文 传输来通信
与从距离向量或链路状态路由导出的其它组播协议相比,PIM是,与单播路由协议无关的,,但 PIM与 IP(网络层)密切相关 —
故有 协议独立组播协议 -PIM
2009-7-20 94
协议独立多播
PIM:解决现有多播路由协议的规模问题
PIM把问题空间分成稀疏模式和密集模式
现存路由协议很不适应于稀疏模式,本节重点讨论 PIM-SM( Sparse Mode)
PIM-SM
R用 PIM协议的加入( Join)或脱离 (Prune)
报文,明确表示加入或离开多播组,问题是报文发到哪儿
2009-7-20 95
PIM-SM路由器中的路由表
PIM路由器根据如下的 源 — 组路由表项建立构建 Short-Path Spanning Tree 并维护其组播路由表
当 Short-Path Tree 的根邻近于组播源的 DR时
,就是特级源树上游接口
RP的
IP地址
DR注册与本项源 /
组地址同的 RP
组播组 D
类地址源主机
IP地址下游接口源 — 组路由表项
2009-7-20 96
汇聚点 -RP
RP,Rendezvous Point,每组一个,域中许多
R被配置成侯选 RP,定义一组进程使域内 R能同一某个 R作为该组的 RP
以下假设域内所有 R都知道给定组的 RP的单播 IP
地址
R发 Join报文到 RP,结果形成多播转发树
PIM-SM允许构造 2类多播树,
共享树,为所有发送者使用
特源树,仅为特别发送主机所使用
2009-7-20 97
多播树的形成
常规操作是首先建立共享树,然后
如果有足够的通信量,则可建立一或多个特源树
建立树时,沿树设置路由器的状态
,故每个组只有一个缺省多播树,而不是对每个发送者建立一个树
2009-7-20 98
Join报文的发送
R用常规 IP单播传输发送 Join报文到 G组的
RP,如 R4发报文到某组的 RP
初始 Join报文是所有发送者都可使用的通配报文,到达 RP前要经过一些 R,如 R2
沿路每个 R查看 Join并创建共享树的转发表项( *,G),*--指所有发送者,
记下报文到达的接口,以作为转发数据包到组成员的接口,并决定到 RP的接口
2009-7-20 99
PIM建立共享树的操作
RP
R3 R4
R5R1
R2
Join
RP
R3 R4
R5R1
R2
Join
A,R4发 Join到 RP
并加入共享树
B,R5发 Join到 RP并加入共享树仅加 R5-R2 分 枝即可,最终建成以 RP为根的树树根
2009-7-20 100
沿共享树组播传输包
R1是本次子网的指派路由器 DR,假设 R1与 RP间无组播路由
HOST要发组播包到组 G,先发包到 R1,R1用 IP隧道方式 装包到根节点 RP,RP解隧道包头,沿共享树组播发包到 R4和 R5
RP
R3 R4
R5R1
R2
G
G
G
G
RP G
RP G
HOST
2009-7-20 101
PIM建立特源树的操作
C,RP通过发 Join到 R1
建立到 R1的特源树
D,R4和 R5通过 发 Join到
R1建立到 R1的特源树
RP
R3 R4
R5R1
R2
Join RP
R3 R4
R5R1
R2
Join
Join
问题:封解隧道带来额外开销,
RP可将组信息通知相关 R避免使用隧道,当源数据率很大时可这样做
经过 C,D后,特源树代替共享树,路径更短,但共享树仍存,为新源用
2009-7-20 102
PIM-SM Shared Tree Join
2009-7-20 103
PIM-SM Sender Registration
2009-7-20 104
PIM-SM Sender Registration
2009-7-20 105
PIM-SM Sender Registration
2009-7-20 106
CBT组播路由协议
上述两方法可为没一个 (源址,组播址) 找到最佳发送路径,但其扩展性不好因每台 R要维护 mn条路由
Core-Based Tree则只为每个组播组计算一棵最段路径树。树根( core)处于网络中心。发送者把组播包先发给树根,
后由根沿树枝发送到各成员处
这种方式不是最佳路径但只存 m条路由
107
Core-Based Tree
Core
Router
I have a member
who wants to join
Group XYZ.
A B
C D E
Join
Message
Source 1
Join
Message
Source 2
CBT protocol constructs a single tree shared by all members
of the group
A CBT shared tree has a core router that is used to construct the tree
I am already a
branch of that tree.
I will acknowledge
the join message.
2009-7-20 108
PIM-SM评估
业务流只沿“加入的”分支向下流
可以切换到特源树,动态获得最高流量源
独立于单播路由协议
可成为域间组播路由的基础
2009-7-20 109
4.3 距离向量组播路由协议
Distance Vector Multicast Routing Protocol
在 AS内部使用的内部网关协议
基于公用域路由程序 /很多厂商在其设备中实现
使用时间最长,现在还广泛使用
是典型的通过因特网转发组播报文的协议
由 RIP而来:限制 32跳
使用 TRPB算法,某些实现用 RPM算法(洪泛

最近的实现可能同早先的 RFC有很大不同
常用隧道方式使用
Being phased out (read,legacy)
110
距离向量组播路由协议
This is a
multicast packet
for Group XYZ.
Reverse path flooding floods a packet on all paths
except the path leading back to the source.
2009-7-20 111
组播的隧道
Problem
Not all routers are multicast capable
Want to connect domains with non-multicast
routers between them
Solution
Encapsulate multicast packets in unicast packet
Tunnel multicast traffic across non-multicast
routers
Internet MBONE
Multicast capable virtual subnet of Internet
Native multicast regions connection with tunnels
2009-7-20 112
组播隧道之例
UR1 UR2
Multicast
Router 1
Multicast
Router 2
Sender 1
Encapsulated
Data Packet
Unicast Routers
Multicast Router 1
encapsulates multicast
packets for groups
that have receivers
outside of network 1,
It encapsulates them
as unicast IP-in-IP
packets,
Network 1
Receiver
Network 2
Multicast Router 2
decapsulates IP-in-IP
packets,It then
forwards them using
Reverse Path
Multicast,
2009-7-20 113
组播隧道之例
MR1 MR2
Virtual
Interfaces
Virtual Network Topology
2009-7-20 114
DVMRP 的问题
Problems of distance vector routing
State maintained for unwanted groups
Bandwidth intensive
Periodic data flooding per group
No explicit joins,and prune state times out
Not suitable for heterogeneous networks
Poorly handles large number of senders
Scaling = O(Senders,Groups)
115
4.4 开放最短路径优先组播路由协议 (MOSPF)
I have a new
member for
Group XYZ.
Source 1
Group XYZ
A B C D
E F G
Group XYZ
Designated
Router
Router F has
a new member
for Group XYZ.
Uses OSPF link-state advertisements to construct distribution trees
Trees must be recomputed when a link-state change occurs
2009-7-20 116
5 组播的发展与问题
组播是基于 UDP/IP的
尽力传送( Best effort)
会产生丢包
不可能有很可靠的数据传输,应有针对性设计
,可靠组播有待进一步研究
不能避免拥塞
缺乏 TCP滑动窗口,且“慢启动”会导致拥塞,可尝试检测和避免机制
复制:某些协议会导致偶尔生成重复的包
无序发送:一些协议机制会导致无序发送
2009-7-20 117
组播的挑战
没有更多的 ISPs和 OEM厂商开发有用的组播应用,缺乏组播工具和平台
与防火墙的交互作用,UDP能有效防止组成员 ACKs的内爆,但 Firewall对其失去控制作用,解决办 --应用网关?
QoS:探讨用 ATM,RSVP等
2009-7-20 118
安全问题
组管理和访问控制
真实性(授权与认证)、机密性和完整性
组密钥的分发
成员的加入
成员的脱离
组密钥的更新
允许外部审计
2009-7-20 119
组播的发展
支持组播的主要高层应用协议,支持可靠数据传输
RTP:Real Time Transport Protocol
RTCP:Real Time Control Protocol
RTP:Real Time Streaming Protocol
RSVP:Resource Reservation Protocol
RMP,Reliable Multicast Protocol
RMF,Reliable Multicast Framework Protocol
RAMP,Reliable Adaptive Multicast Framework
Protocol
Reliable Multicast Transport Protocol
Lucent 在其 e-cast 用 RMTP处理文件传输
2009-7-20 120
IP组播应用软件 /客户端
EMULive Image Corp.’s Active Theater
ICAST Corp.’s ICAST Viewer
IVS(INRIA Videoconference System)
Fantaswtic Corp.’s MeadiaSurfer
Microsoft’s NetShow Theater Sever
Live Networks Inc.’s Multikit
Precept IP/TV
Intel’s Proshare
RealNetworks RealSyStems G2
… … …