680 likes | 876 Views
高级计算机网络. 内容提要. 6.1 概述 6.2 IP 多播协议 6.3 多播路由 6.4 扩散技术 6.5 跨越树的多播路由算法 6.6 约束 Steiner 树 6.7 反向路径广播 6.8 截断的反向路径广播 6.9 反向路径多播 . 内容提要. 6.10核心树 6.11路由多播选择算法 KMB 6.12 动态多播路由选择算法 VTDM 6.13 限界最短多播算法 BSMA 6.14 适用于光纤网络的多播的 MZQ 算法 6.15 多播的应用 . 6.1 概述.
E N D
高级计算机网络 史忠植 高级计算机网络
内容提要 6.1 概述 6.2 IP 多播协议 6.3 多播路由 6.4 扩散技术 6.5 跨越树的多播路由算法 6.6 约束Steiner 树 6.7 反向路径广播 6.8 截断的反向路径广播 6.9 反向路径多播 史忠植 高级计算机网络
内容提要 6.10核心树 6.11路由多播选择算法KMB 6.12 动态多播路由选择算法VTDM 6.13 限界最短多播算法BSMA 6.14 适用于光纤网络的多播的MZQ算法 6.15 多播的应用 史忠植 高级计算机网络
6.1 概述 将分组同时发往所有目的地称做广播(broadcasting)。 单源,多目的的通信方式称之为多点通信(multipoint communication),通常只在分叉的时候复制信息,又称为多播(multicast)。 在单播的环境下,每个结点一次只能给另一个结点发出信息。在多播的环境下,每个结点一次可以有效的把一个打包的信息同时发往多个目标。必须有支持IP多播的结点处理系统和TCP/IP栈,网络中的结点才能顺利的进行多播。 史忠植 高级计算机网络
6.1 概述 多信道IP包和单信道IP包的主要在于头部目标地址域的“组地址”,多播使用D类地址,也就是在244.0.0.0-239.255.255.255之间的地址。多播的特性: 1. 可靠性:对不同类型的应用是否有不同的可靠性模型? 2. 允许动态加入和离开:每个对话过程必须是接受者可控制的。 3. 地址: •在每层上如何对各组编址 •在IP层以上的各层是否需要标识组,如果需要,怎样标识? 4. 方向性: •一对多或者多对多 •转送者是否是接受者的一个子集? 史忠植 高级计算机网络
6.1 概述 史忠植 高级计算机网络
6.1 概述 史忠植 高级计算机网络
6.2 IP 多播协议 80年代开始研究,1988年Stanford大学实施了第一次多目通话,1992年Internet 程特别小组(IETF)定义和发布了一个多播的网络标准,用于建立多播主干网(MBONE),即在Internet上运行的单路广播和多播综合网络。MBONE于1993年刹那间名声远扬。1995年,Cisco公司和Lucent公司开始销售支持多播的路由器和交换机,一年后依赖多播的应用产品开始上市。 IP多播的最早实施方案依赖于传统的竭尽全力方法和User Datagran Protoco1,但它们不能保证多播数据流的可靠传输。 史忠植 高级计算机网络
6.2 IP 多播协议 HP的Internet群管JF协议(LGMP) Protocol Independent Mu1ticast、 Mu1ticast Border Gateway Protocol Hierarchical DVMRP(Distance Vector Multicast Routing Protocol) 史忠植 高级计算机网络
6.3多播路由 共享树(shared tree) 源根结点的最短路径树(SRSPT: source rooted shortest path tree)。 史忠植 高级计算机网络
共享树(shared tree) 共享树方法中使用一个中央多播路由器,有时候又称为核心路由器。需要进行多播的源结点将他们所要传递的信息包都传给这个核心路由器,然后由这个核心路由器通过一棵共享树将信息包一个一个的传给组中的每一个接收结点。每个组中只要建立一棵共享树就可以了,而不是象在SRSPT中需要为组中的每个源结点建立一棵树。与SRSPT算法相比,共享树对路由器和网络带宽(bandwidth)的需求更小。在CBT和PIM协议中使用共享树的思想来传递信息包。 史忠植 高级计算机网络
源根结点的最短路径树 这种源根结点的最短路径树只能建立在具有多播功能的路由器上。它为每个组中的每个源结点建立一棵树,这棵树以该传送结点为根,使其与所有的接收结点相连。一般而言,该组中有多少个源结点,就需建立多少棵这样的树。 一棵这种基于源结点的树将一个特定的源结点与所有的接收结点相连,并被称为“源根结点的最短路径树”。这些路径并不需要通过一个特定的中央多播路由器。等到由协议将一棵这样的树建成后,这棵树的源结点就可以沿着这棵树上的路径将所要传递的信息传到它的每一个接收结点。 史忠植 高级计算机网络
SRSPT树的优点 (1)使用经典的单信道路由表很容易计算SRSPT树; (2)可以有效的实现分布式处理不需要整个网络的拓扑结构; (3)返回的路径中不会存在回路。 史忠植 高级计算机网络
SRSPT树的缺点 (1)没有最小化整个分布式处理的代价; (2)可伸缩性不好; (3)在每个路由器上都要保存每个组中每个源结点的SRSPT树的信息; (4)如果下层的单信道路由是非对称的则可能会导致失败。 史忠植 高级计算机网络
性能指标 (1) 低延迟。将源结点到目的结点的端到端的延迟与点到点的单信道最短路径的延迟相比较; (2)低代价。全部的带宽消耗以及保存树状态信息所需的代价; (3)轻的网络拥塞 史忠植 高级计算机网络
多点路由算法的需求 (1)支持可靠的传输。连接失败不应该增加延迟或者减少可用的资源 (2)对于得到最佳路由所需要的一些考虑。 1:所需付出的代价(对带宽的消耗) 2:端到端的延迟(所需跨越的结点数) (3)最小化对网络的负担。 1:避免回路 2:避免在一些连接或子网上出现网络拥塞 (4)最小化在路由器中所需存储的状态数量。 史忠植 高级计算机网络
密集模式 密集模式假设多播组的成员密集分布在网络中,每个子网至少含一个成员。密集模式还需要充足的带宽。DVMRP, MOSPF和PIM-DM都是密集模式路由选择协议。密集模式路由选择协议依靠扩散(flooding)技术把信息传播到整个网络的路由器上。 史忠植 高级计算机网络
稀疏模式 假设多播组的成员稀疏分布在网络中,而且网络可以提供的带宽不是很宽裕。在稀疏模式下,用户可能分散在Intent的各个部分,也可能是被ISDN专线连接起来的。这种模式下用户不一定很少,只是它们分散的范围很广。 史忠植 高级计算机网络
6.4 扩散技术 1 .路由器接收到要发往多播组的一个报文。 2 .路由器用协议机制决定这是不是第一次收到该报文。 3 .如果它是第一次收到该报文,路由器将该报文发往Internet上除了它的来源的所有接口。这保证了多播报文将到达所有的路由器。 . 如果路由器以前曾收到该报文,就把它丢弃。 史忠植 高级计算机网络
扩散技术局限性 1.扩散技术不适用于大规模网络,如Internet。 2.同样不适用于广域网,因为它产生大量复制包。 3.扩散技术使用Internet网上的所有可用路径,网络上所有路径的流量容易引起拥塞。 4.因为每个路由器必须为最近接收的包维护一张表,所以并不是很有效的使用路由器的内存。 史忠植 高级计算机网络
建立生成树的步骤 1.选择一转送设备作为根:刚开始所有的转送设备先假设自身为根,告诉其他设备它作为根连接。 总的来说,优先级低的设备设为根。如果优先级相同,MAC地址低的设备设为根。 2.估计路径成本:如果一转送设备接到另一设备的包,认为存在更好的路径,就不再告诉别的设备自身是根,而是告诉别的设备更优的根。 3.选择根端口,并且在每个局域网制定一个转送设备:最终,每个设备都认同了最佳转送设备,该设备就成为根。 设备的根端口提供了指向根转送设备的最低成本路径。路径成本相同时,端口接头优先级低的成为根端口。如果接口优先级再相同,具低优先级的设备上的断口为根端口。 4. 每个子网指定一个端口(路由器):生成树算法设指定连接转送设备和局域网的端口位置顶端口。尤其当子网上的设备靠近根时。 史忠植 高级计算机网络
建立生成树的步骤 史忠植 高级计算机网络
建立生成树的步骤 史忠植 高级计算机网络
6.7 反向路径广播 无论是子网上哪一个源,反向路径广播(reverse path broadcasting, RPB)算法针对每一个组建立一棵生成树,提供了源和组的成员之间的有效路径。这样的生成树根植于直接和源连接的子网上,意味着每个活跃的源-组队都有一棵生成树。路由器利用逆向路径广播算法建立根植于源的树 史忠植 高级计算机网络
反向路径广播转送算法 史忠植 高级计算机网络
反向路径广播转送算法 链接状态路由选择协议使用拓扑数据库来确认相邻的路由器是否在子链接上,也就是考虑该路由器是否在相邻路由器回溯到源的最短路径上。 距离向量路由选择协议使用邻居发布的源-组对的前一站距,或者翻转该路由来决定下一相邻路由认为该路由在到源的最短路径上。 史忠植 高级计算机网络
反向路径广播的例子 史忠植 高级计算机网络
反向路径广播的例子 •从路由器A收到报文,确认连接1是源-组对的父母链。 •把报文发往任何含有小组成员的叶子子网,如发往连接4、连接5。 •从路由选择信息交换中得知路由器C认为连接2是源-组对的父母链,于是不再将报文发往连接3。 • 路由器C将丢弃从连接3来的报文,因为是从源-组对的非父母链上来的。 史忠植 高级计算机网络
6.8 截断的反向路径广播 截断的反向路径广播(truncated reverse path broadcasting, TRPB)改进了上一个算法中不考虑多播组的成员限制的问题。它使用了IGMP来决定某个子网上是否存在该广播组的成员,并以此为依据截断原来构造的跨越树上的一些枝叶。一旦弄清楚这一点,TRPB不再往不含组成员的叶子网上发送报文。路由器从扩展传送树上剪除不含组成员的叶子网,这一排除不在最短路径上的接口的过程称为“截断”。 史忠植 高级计算机网络
截断的反向路径广播算法的例子 史忠植 高级计算机网络
TRPB 源通过父路由器连接入路由器,多播组的成员第一组用G1表示、第二组G2、第三组G3与路由器下属的转送装置相连。 当路由器接收了源-G1对的一多播报文,它将: 因为接口2至少含有第一组的一个成员,路由器把报文发往接口2。 Ø当且仅当该路由器的一个下属路由器认为接口3是它的源-G1对的父母链的一部分,该路由器才把报文发往接口3。 Ø 接口4没有目标组的成员,报文不发往接口4。 TRPB虽然避免了叶子网中的不必要的流量,但是在建立分配树的枝干的时候没有考虑是否含组成员的问题。 史忠植 高级计算机网络
6.9 反向路径多播 反向路径多播(reverse path multicasting,RPM)是对于RPB和TRPB的改进。具体而言,如果一个接收接口可以用于向多播报文的源发送单信道广播报文,路由器向除了接收接口以外的所有接口发送多播报文。 换句话说,RPM建立的传送树只覆盖了广播组成员和到含广播组成员子网最短路径沿途径过的路由器和子网。RPM截断了根植于源的生成树,路由选择协议只向通往目标组成员的枝干发送报文。 史忠植 高级计算机网络
RPM 史忠植 高级计算机网络
工作原理 上级路由器收到截断信息后储存起来。如果从所有的子链收到截断信息,该路由器也往它的上级路由器发送截断信息。这个过程产生的多播树只含有通向活跃组成员的枝干。 协议不时的更新多播树,更新后每个路由器清除内存中的所有剪除信息,并且将受到的下一个多播报文送往所有的子链。这样又重新开始了定义多播树的新一轮过程。 史忠植 高级计算机网络
工作原理 组成员的动态特征意味着树需要定期的更新。也就是说,多播报文必须定期的发往Internet网络中的每个路由器。这就使得在大规模传送服务如在Internet上的传送问题不容忽视,而且,每个路由器必须保留关于源和组的所有状态信息。尽管这对于小网络来说不构成威胁,但是当源的数目和多播组成员大幅增加时就是一个严重的问题。 史忠植 高级计算机网络
6.10 核心树 核心树(core-based tree, CBT)算法将建立一棵被小组中所有的发送者和接收者共享的传送树(图6.10),而不是为每一个源-组对建立一棵树。使用CBT算法时,无论报文是从那个源发出的,路由器将多信道信息沿着相同的传送树来传递。 共享树途径最显著的优势是能够很好的适应大规模网络。然而,CBT可能导致在核心路由器附近的流量集中和瓶颈问题。这是因为从任意源结点发出的信息在接近核心时,都沿着相同的连接。 史忠植 高级计算机网络
CBT 史忠植 高级计算机网络
设计目的 (1) CBT是用于大规模网络,处理过程中只需要少量的内存和带宽资源。因为CBT不针对于源,尤其适合于多发送者的应用程序。 (2) CBT时健壮的多播路由选择算法。为了获得健壮的多播传送树,核心将放置在最佳位置。 (3)和其他多播路由选择协议比较而言,CBT协议比较简单。简单性能导致性能的提高。 (4)CBT路由选择算法适度利于协议的。任何地方都可以安装,并且支持域间多信道路由选择。CBT与CBMRP有着良好的协同工作的机制,CBMRP是一种能够普遍连接不同种类的多播域的协议。 史忠植 高级计算机网络
当一主机成为多播组的成员将执行以下步骤 (1)主机向所有连接广播一IGMP主机成员报告。 (2)附近的一个具CBT算法的路由器唤醒加入树的过程: •产生JOIN_REQUEST信息 •将信息发往沿着导向组的核心路由器的路径的下一个站点。 (3)核心路由或发送路由和核心路由之间的另一路由器确认该信息。 史忠植 高级计算机网络
当一主机成为多播组的成员将执行以下步骤 (4)请求加入的信息在它穿过的路由器暂时建立加入状态,包括组、进入的接口和连出的接口。所有中间路由器处理加入请求: •确认加入请求是从那个接口接收的。 •告知信加入的主机CBT传送树。 (5)临时状态如果没有接到从上游传来的确认信息,将最终超时。因为有临时加入状态,加入确认可以沿着加入请求来的路径返回。 (6)一旦加入确认到达产生加入请求的路由器,发向这个组的信息将同时发往这个新的接收者。 史忠植 高级计算机网络
CBT (4)请求加入的信息在它穿过的路由器暂时建立加入状态,包括组、进入的接口和连出的接口。所有中间路由器处理加入请求: •确认加入请求是从那个接口接收的。 •告知信加入的主机CBT传送树。 (5)临时状态如果没有接到从上游传来的确认信息,将最终超时。因为有临时加入状态,加入确认可以沿着加入请求来的路径返回。 (6)一旦加入确认到达产生加入请求的路由器,发向这个组的信息将同时发往这个新的接收者。 史忠植 高级计算机网络
6.11路由多播选择算法KMB 理想化的多播路由选择算法应该是: 构建树时具有所想要的成本和延迟特征。 算法可以适用于广播组的成员增加的情况(如CBT),而不是每次成员增加都需要更新(如SMT)。 维护原始路由的特性。 不干扰正在进行的数据传送。 是由接收者驱动的。 史忠植 高级计算机网络
问题的形式化定义 给定图 G = (V, E, c) V= 顶点集 E= 边集 c= 成本函数 c: E Z0+ ( 边 非负整数) Z-顶点集: 终结集合(有时用M表示) S-点集: 非终结集合 TO: 初始树 = {s}. Q : 树上顶点的优先级队列 Vt: 树上顶点 At: 树上边 史忠植 高级计算机网络
Dijkstra最短路径算法 • Begin. • vV, • 将v加到集合U, • Distance(v) = cost(s, v) • Distance(s) = 0; 从U中删除s. • while U 不为空 do • 具有最小距离的任何G的成员v. • U=U-{v}. • For 每个v的近邻 w , do • if member(w, U) • distance(w) = min(distance(w), cost(w, v) + distance(v) ); • Stop. 史忠植 高级计算机网络
Matsuyama最短成本路径启发式算法 • Begin • T1 : 包含任选的i∈Z的G的子树 . • k = 1; • Zk={i}. • 找到离 Tk最近的i Z - Zk • 在Tk的基础上加入从Tk 到 I的最短路径建树Tk+1 • k = k+1. • If k < p, 转T1. • If k = p, 输出结论 Tp • Stop. 史忠植 高级计算机网络
KMB 算法 输入:图G和顶点集Z 输出:Steiner树Th 步骤: 1.由G和Z建立完全有向带权图G1=(V1,E1,c1)。 2.找到G1的最小生成树。 3.用G中相应的最短路径替换T1中的一边,建立G的子图Gs。 4.找到Gs的最小生成树Ts。 5. 如必要的话删去Ts中的边,构建Steiner树Th,使得Th中所有的叶子为Steiner点。 史忠植 高级计算机网络
KMB算法 KMB算法最坏时间复杂度O(|S||V|2)。成本不大于2(1-1/l)×最优成本,其中 l = Steiner树的叶结点数。 史忠植 高级计算机网络
KMB算法的工作过程 史忠植 高级计算机网络
KMB算法的工作过程 史忠植 高级计算机网络
成本建模 W (e, i ): 边e上波长为i的成本。 如果边e上i值不确定w值为无穷。 cv(p , q ): v结点上波长从p变为q的代价。 如果v结点上波长不能从p变为q cv值为无穷。 If p = q, cv(p , q ) =0。 C(T) = v T w(p(v), v), (v)) +v T-{s} C p(v) ( (p(v)), (v)), 其中p(v) 是树中v点的父母。 史忠植 高级计算机网络