多媒体技术
-
Upload
butterfly-nguyen -
Category
Documents
-
view
50 -
download
0
description
Transcript of 多媒体技术
多媒体技术多媒体技术
中南大学信息科学与工程学院 黄东军
第十章 网络组播技术第十章 网络组播技术
1 1 组播的概念组播的概念
广播:将源端数据发送到一个网络中的所有主机的传播方式。广播使用广播地址。 单播:将源端数据发送到网络中的某个特定主机的传播方式。单播使用特定主机地址。 组播:将源端数据发送到网络中的一组主机的传播方式。组播使用组地址。
1 1 组播的概念组播的概念
Src Src
组播:一种有效节省网络带宽的传输方式。
2 2 组播的应用组播的应用 广泛应用于一对多(广泛应用于一对多( one-to-manyone-to-many )的传送需要)的传送需要 举例举例 ::
新闻新闻 // 体育消息体育消息 // 股票信息股票信息 // 天气信息的更新发布天气信息的更新发布 远程教育(远程教育( Distance learningDistance learning )) 网络路由信息更新(网络路由信息更新( routing updatesrouting updates )) 远程会议(远程会议( Teleconferencing Teleconferencing ,, audio, video, audio, video,
shared whiteboard, text editorshared whiteboard, text editor )) 分布式交互式游戏和仿真(分布式交互式游戏和仿真( Distributed Distributed
interactive gaming or simulationsinteractive gaming or simulations )) 内容发布(内容发布( Content distributionContent distribution )) ; ; 软件发布软件发布
(( Software distributionSoftware distribution )) WebWeb 缓存更新(缓存更新( Web-cache updates Web-cache updates )) 数据库应用(数据库应用( Database replicationDatabase replication ))
3 3 组播与广播、单播的比较组播与广播、单播的比较 广播(广播( BroadcastBroadcast )) ::
将一个数据拷贝发送到网络中的所有主机将一个数据拷贝发送到网络中的所有主机 实现简单(实现简单( SimpleSimple )) , , 但是效率不高(但是效率不高( inefficientinefficient )) 即使主机对该数据不感兴趣也必须处理它即使主机对该数据不感兴趣也必须处理它 因此占用了主机的因此占用了主机的 CPUCPU 资源资源 会产生广播风暴“会产生广播风暴“ broadcast stormsbroadcast storms””
多个重复的单播(多个重复的单播( Replicated UnicastReplicated Unicast )) 发送者依次向各接收主机发送相同的数据发送者依次向各接收主机发送相同的数据 发送者必须事先知道每个接收主机的地址发送者必须事先知道每个接收主机的地址 通讯量在发送方过于集中,通讯量在发送方过于集中, 但比较可靠(但比较可靠( ReliabilityReliability => per-receiver state, => per-receiver state,
separate sessions/processes at senderseparate sessions/processes at sender ))
4 IP4 IP 组播的体系结构组播的体系结构
Hosts
Routers
服务模型服务模型Service modelService model
主机与路由器关系协主机与路由器关系协议议 (IGMP)(IGMP)
组播路由协议组播路由协议Multicast routing protocolsMulticast routing protocols
5 IP 5 IP 组播模型组播模型 : RFC 1112: RFC 1112
发送者(源)不需要知道接收主机发送者(源)不需要知道接收主机 使用组地址“使用组地址“ group addressgroup address””标识一个群组标识一个群组
即即 IPIP 包的头部使用的是组地址而不是单播地址包的头部使用的是组地址而不是单播地址 群组所包含的主机数量是任意的群组所包含的主机数量是任意的(( any sizeany size )) ;; 群组成员可以位于互联网任何地方群组成员可以位于互联网任何地方 群组关系(群组关系( Group membershipGroup membership )是非显式知)是非显式知
道的(道的( not explicitly knownnot explicitly known )) 接收主机可以在任何时候加入或者退出群组通信接收主机可以在任何时候加入或者退出群组通信
(( ReceiversReceivers can can join/leave at willjoin/leave at will ))
网络负责构造分配树(网络负责构造分配树( Distribution treeDistribution tree ,,也叫组播树 )以实现组播传输也叫组播树 )以实现组播传输
在组播传输中,任何子网中不能出现同一在组播传输中,任何子网中不能出现同一数据的两个副本数据的两个副本
组播数据只能传送给群组成员(由于群组组播数据只能传送给群组成员(由于群组成员可以在任何时候加入或者退出群组,成员可以在任何时候加入或者退出群组,因此组播传送是一个非常动态化的问题因此组播传送是一个非常动态化的问题(( multicast delivery tree changes multicast delivery tree changes dynamicallydynamically ))
5 IP 5 IP 组播模型组播模型 : RFC 1112: RFC 1112
6 IP 6 IP 组播地址组播地址 IPIP 组播使用组播使用 DD 类类 IPIP 地址地址(( Class D IP addressesClass D IP addresses ))
224.0.0.0 – 239.255.255.255224.0.0.0 – 239.255.255.255
组地址的分配(组地址的分配( Address allocationAddress allocation )) :: IANAIANA 指定了一些永久地址指定了一些永久地址 ( ( Well-known : Well-known :
224.0.0.x and 224.0.1.x224.0.0.x and 224.0.1.x ););其他组地址是临时组其他组地址是临时组地址地址(( Transient multicast addressesTransient multicast addresses ),),需要动需要动态分配态分配
每一个组地址代表一个主机群组每一个组地址代表一个主机群组(( host grouphost group )) IPIP 组地址是非结构化的组地址是非结构化的(( flat address spaceflat address space ))
1 1 1 0 Group ID
IPIP 组播服务:组播数据的接收组播服务:组播数据的接收 提供两种操作提供两种操作
加入组播群组加入组播群组 :: Join-IP-Multicast- Join-IP-Multicast-Group(group-address, interface)Group(group-address, interface)
退出群组:退出群组: Leave-IP-Multicast-Leave-IP-Multicast-Group(group-address, interface)Group(group-address, interface)
加入群组后,主机通过常规加入群组后,主机通过常规 IPIP 接收操作接收操作(( normal IP-receive operationnormal IP-receive operation )接收组播)接收组播数据包数据包
7 IP7 IP 组播地址到链路层组地址的映射组播地址到链路层组地址的映射
以太网(以太网( EthernetEthernet )等局域网使用)等局域网使用 802802 地址地址 :: 采用直接映射采用直接映射(( Direct mapping! Direct mapping! 较较 unicastunicast 简单简单 ! ! 无需无需 ARPARP
等协议等协议 .. ))
LAN multicast address
0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 1 0 1 1 1 1 0 0
1 1 1 0 28 bits
23 bits
IP multicast address
Group bit
IP Multicast ArchitectureIP Multicast Architecture
Hosts
Routers
Service model
Host-to-router protocolHost-to-router protocol(IGMP)(IGMP)
Multicast routing protocols(various)
8 8 群组关系管理协议(群组关系管理协议( Internet Internet Group Management ProtocolGroup Management Protocol ))
IGMP: IGMP: 在子网中建立、维护和撤销群组的在子网中建立、维护和撤销群组的信号协议信号协议““ signaling protocolsignaling protocol”” 。。
目标目标 : : 保持路由器对整个局域网上群组关保持路由器对整个局域网上群组关系的更新系的更新(( keep router up-to-date with keep router up-to-date with group membership of entire LANgroup membership of entire LAN )) 但是,路由器不需要知道所有成员的存但是,路由器不需要知道所有成员的存
在,而只需要知道是否有成员主机存在在,而只需要知道是否有成员主机存在
IGMPIGMP 协议的工作原理协议的工作原理
一个网络选择一个路由器充当查询者一个网络选择一个路由器充当查询者““ querier”querier” 查询者周期性发送群组关系查询报文查询者周期性发送群组关系查询报文 IGMP IGMP
(( Membership Query messageMembership Query message )) 到一个特定 到一个特定地址地址(( all-systems group all-systems group ,, 224.0.0.1)224.0.0.1)
所有主机接收到该报文后,启动一个随机计时所有主机接收到该报文后,启动一个随机计时器器(( random timersrandom timers ,, 0~10 0~10 秒秒 ))
QRouters:
Hosts:
IGMPIGMP 协议的工作原理协议的工作原理 (cont.)(cont.)
一旦有一个主机超时,它就发送一个群组关系应答报文一旦有一个主机超时,它就发送一个群组关系应答报文(( Membership ReportMembership Report ))到组到组 GG
其他主机也接收到该报文,立即终止其定时器其他主机也接收到该报文,立即终止其定时器 路由器负责监听所有群组的应答报文,如果一个群组未给路由器负责监听所有群组的应答报文,如果一个群组未给
出应答(超时),路由器就终止对该群组报文的转发出应答(超时),路由器就终止对该群组报文的转发
Q
G G G G
Routers:
Hosts:
IP Multicast ArchitectureIP Multicast Architecture
Hosts
Routers
Service model
Host-to-router protocol(IGMP)
Multicast routing protocols
9 9 组播路由(组播路由( Multicast RoutinMulticast Routingg ))
组播路由的基本目标:在网络层为传送组组播路由的基本目标:在网络层为传送组播数据包而建立组播分配树播数据包而建立组播分配树
组播树的叶结点是指包含有群组成员主机组播树的叶结点是指包含有群组成员主机的子网 的子网 (detected by IGMP)(detected by IGMP)
组播路由是一个比较困难的课题组播路由是一个比较困难的课题(( Multicast service model makes it hardMulticast service model makes it hard )) 组播的匿名性组播的匿名性 动态加入和退出(动态加入和退出( Dynamic join/leaveDynamic join/leave ))
简单组播路由技术概览简单组播路由技术概览 基于泛播与剪枝技术的路由基于泛播与剪枝技术的路由
首先在整个网络泛播组播数据包首先在整个网络泛播组播数据包 然后剪除不含成员主机的网络分枝然后剪除不含成员主机的网络分枝 属于这类技术的协议属于这类技术的协议 : : DVMRP, PIM-DMDVMRP, PIM-DM
基于链路状态的组播路由协议基于链路状态的组播路由协议 一个路由器知道有成员主机加入群组时,它就一个路由器知道有成员主机加入群组时,它就
在整个网络广播该群组关系在整个网络广播该群组关系 一个路由器接收到组播数据时,它就利用一个路由器接收到组播数据时,它就利用
DijkstraDijkstra 算法计算到目标主机的最短路经,并算法计算到目标主机的最短路经,并转发组播数据转发组播数据
协议举例协议举例 : : MOSPFMOSPF
基于泛播的组播路由过程基于泛播的组播路由过程G G
S
G
泛播(泛播( FloodingFlooding ))G G
S
G
剪枝(剪枝( PruningPruning ))G G
S
Prune (s,g)
Prune (s,g)
G
Graft (s,g)
Graft (s,g)
嫁接(嫁接( GraftingGrafting ))G G
S
G
G
Report (g)
嫁接完成后嫁接完成后G G
S
G
G
距离向量组播路由(距离向量组播路由( Distance-Distance-Vector Multicast RoutingVector Multicast Routing ))
DVMRPDVMRP 由两部分组成由两部分组成 :: 常规距离向量协议 常规距离向量协议 (like RIP) (like RIP) 组播数据包转发协议组播数据包转发协议
DVMRP DVMRP 转发组播数据包 转发组播数据包 ifif The packet The packet arrived from the link used to reach the arrived from the link used to reach the
source of the packetsource of the packet 即反向路径转发 即反向路径转发 – – RPFRPF
仅在子链路上转发组播数据包仅在子链路上转发组播数据包 如果下游链路没有成员节点,则进行剪枝处理如果下游链路没有成员节点,则进行剪枝处理
DVMRP DVMRP 协议的缺点协议的缺点 像其他基于距离向量的协议一样像其他基于距离向量的协议一样 , , 受无穷受无穷计数(计数( count-to-infinitycount-to-infinity )和环路影响)和环路影响(( transient loopingtransient looping ))
伸缩性受到类伸缩性受到类 RIPRIP 协议的制约协议的制约 . . 也引入了也引入了新的伸缩性问题(新的伸缩性问题( scaling limitationsscaling limitations )) : : 路由器的路由器的 (S,G) (S,G) 状态,使路由器存储开状态,使路由器存储开
销比较大销比较大 !! 广播对网络冲击比较大广播对网络冲击比较大 ..
Multicast Backbone (MBone)Multicast Backbone (MBone) An An overlay networkoverlay network of IP multicast-capable routers of IP multicast-capable routers
using DVMRPusing DVMRP Tools: sdr (session directory), vic, vat, wbTools: sdr (session directory), vic, vat, wb
Host/router
MBone router
Physical linkTunnelPart of MBone
R R
R
H R
H
R
RH
Multicast OSPF (MOSPF)Multicast OSPF (MOSPF)
MOSPFMOSPF 是是 OSPFOSPF 的扩充,以便支持组播的扩充,以便支持组播 路由器(路由器( Multicast-capable routersMulticast-capable routers )广播链路状)广播链路状
态广告(态广告( link state routing advertisementslink state routing advertisements )) 链路状态报文中包含有组播地址(链路状态报文中包含有组播地址( Link-state Link-state
packets packets include multicast group addressesinclude multicast group addresses to to which local members have joinedwhich local members have joined ))
一个路由器接到组播数据包时就计算(应用一个路由器接到组播数据包时就计算(应用DijkstraDijkstra 算法)到目标节点的最短路径以便形成组算法)到目标节点的最短路径以便形成组播树播树
Source 1
Receiver 1
Receiver 2
MOSPF: Example
Z
W
Q
T
Source 1
Receiver 1
Receiver 2
Link Failure/Topology Change
Z
W
Q
T
X
Source 1
Receiver 1
Receiver 2
Group Membership Change
Z
W
Q
T
Receiver 3
共享树 共享树 vs. vs. 源基树源基树 源基树(源基树( Source-based treesSource-based trees ))
为每一个源端建立一个组播树为每一个源端建立一个组播树 每个路由器维护每个路由器维护 (S,G) (S,G) 状态(状态( statestate )的组播路由表 )的组播路由表 Eg: DVMRP, MOSPF, PIM-DM, PIM-SMEg: DVMRP, MOSPF, PIM-DM, PIM-SM
共享树(共享树( Shared treesShared trees )) 所有成员共享一个组播树所有成员共享一个组播树 无论哪个源端都是用同一个组播树传输数据无论哪个源端都是用同一个组播树传输数据 路由器只需要维护路由器只需要维护 (*,G) (*,G) 状态( 状态( (*,G) state at (*,G) state at
intermediate routersintermediate routers )) Eg: CBT, PIM-SMEg: CBT, PIM-SM
源基树(源基树( Source-based TreesSource-based Trees ))Router
Source
Receiver
S
R
R
R
R
R
S
S
共享树(共享树( Shared TreeShared Tree ))
RPRP
Router
Source
Receiver
S
S
S
R
R
R
R
R
Shared vs. Source-Based TreesShared vs. Source-Based Trees Source-based treesSource-based trees
Shortest path trees – low delay, better load distributionShortest path trees – low delay, better load distribution More state at routers (per-source state)More state at routers (per-source state) 在密集模式的网络环境下比较有效(在密集模式的网络环境下比较有效( Efficient in Efficient in dense-dense-
areaarea multicast multicast ))
Shared treesShared trees Higher delay (bounded by factor of 2), traffic Higher delay (bounded by factor of 2), traffic
concentrationconcentration Choice of core affects efficiencyChoice of core affects efficiency Per-group state at routersPer-group state at routers 比较适合稀疏模式的网络环境(比较适合稀疏模式的网络环境( Efficient for Efficient for sparse-sparse-
areaarea multicast multicast ))
Core-based Routing ProtocolsCore-based Routing Protocols
Specify “meeting place” aka “core” or Specify “meeting place” aka “core” or “rendezvous point (RP)”“rendezvous point (RP)”
Sources send initial packets to coreSources send initial packets to core Receivers join group at coreReceivers join group at core Requires mapping between multicast group Requires mapping between multicast group
address and “meeting place” address and “meeting place” Examples: Examples: CBT, PIM-SMCBT, PIM-SM
协议独立组播路由协议:协议独立组播路由协议:Protocol Independent Multicast Protocol Independent Multicast
(PIM)(PIM) Support for both shared and per-source Support for both shared and per-source
treestrees Dense mode (per-source tree)Dense mode (per-source tree)
Similar to DVMRPSimilar to DVMRP Sparse mode (shared tree)Sparse mode (shared tree)
Core = rendezvous point (RP)Core = rendezvous point (RP) Independent of unicast routing protocolIndependent of unicast routing protocol
Just uses unicast forwarding tableJust uses unicast forwarding table
PIM Protocol OverviewPIM Protocol Overview
Basic protocol stepsBasic protocol steps Routers with local members Join toward Routers with local members Join toward
Rendezvous Point (RP) to join shared treeRendezvous Point (RP) to join shared tree Routers with local sources encapsulate data in Routers with local sources encapsulate data in
Register messages to RP Register messages to RP Routers with local members may initiate data-Routers with local members may initiate data-
driven switch to source-specific shortest path driven switch to source-specific shortest path trees trees
PIM v.2 Specification (RFC2362)PIM v.2 Specification (RFC2362)
Source 1
Receiver 1
Receiver 2
PIM Example: Build Shared Tree
(*,G)
Receiver 3
(*,G)
(*,G)
(*,G)
(*,G)
(*,G)
Join messagetoward RP
Shared tree after R1,R2 join
RP
Source 1
Receiver 1
Receiver 2
Data Encapsulated in Register
(*,G)
Receiver 3
(*,G)
(*,G)
(*,G)
(*,G)
(*,G)
Unicast encapsulated data packet to RP in Register
RP
RP de-capsulates, forwards down shared tree
Source 1
Receiver 1
Receiver 2
RP Send Join to High Rate Source
Receiver 3
(S1,G)
RP
Join messagetoward S1
Shared tree
Source 1
Receiver 1
Receiver 2
Build Source-Specific Distribution Tree
Receiver 3
Join messages
Shared Tree
RP
Build source-specific tree for high data rate source
(S1,G),(*,G)
(S1, G)
(S1,G),(*,G)(S1,G),(*,G)
Thank you !Thank you !