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