当前位置:文档之家› 自组网的组播技术

自组网的组播技术

自组网的组播技术组播(Multicast)远程教学、视频会议、Internet电视、网络游戏只有少数的发送源存在大量的信息接收者传统的单播通信一个发送方只能向一个接收方传输分组自组网的组播技术传统解决方法组播单播化在基于IPv4的基础上建立的虚拟组播网络 隧道具有组播功能的节点组自组网的组播技术13.1 组播传送基础1.组播的概念什么是组播?点对点的分组传播方式当有多台主机同时成为一个分组的接收者,为减少带宽和CPU负担,组播是最佳选择组播如何工作源主机发出的报文以组播地址作为目的地址网络中的其他主机需要该报文,则申请加入该组,以接受报文组播的优势如用单播发送一个相同报文到多个目的主机,则将串行的逐项发送,有的实时数据则无法等待自组网的组播技术13.1 组播传送基础1.组播的概念组播的优势如用单播发送一个相同报文到多个目的主机,则将串行的逐项发送,有的实时数据则无法等待组播和广播的区别当有多台主机需要接收相同报文时广播是把报文传送到网内每个主机上,不管这个主机是否需要该报文,浪费资源组播则利用组员和组之间关系维护机制,可明确某个子网内,是否有对该报文有需要的主机,没有则不转发自组网的组播技术13.1 组播传送基础2.组播协议组播协议的要素组的管理和维护网络设备及其子网有一套协议或机制保证网络设备知道子网中,以保证网络设备知道哪些主机属于一个特定组 组播报文的路由发现上游接口(离源最近的接口,与源最短路径的路由器)决定真正的下游接口路由器知道其上下游接口,则将会完成组播树根是源主机直连的路由器数枝是通过协议发现有组员的子网直连的路由器管理组播树自组网的组播技术13.1 组播传送基础2.组播协议稀疏和密集模式稀疏模式:参与组播的主机较少的一种拓扑结构,主要在广域网中密集模式:参与组播的主机较多的一种拓扑结构,主要在局域网中隐式加入和显式加入组员可在组播会话存活期加入或退出一个组自组网的组播技术13.1 组播传送基础2.组播协议隐式加入和显式加入组员可在组播会话存活期加入或退出一个组根据直连子网内组员的存在或退出,与该子网相连的路由器决定是否加入或剪除组播树的树枝上述操作可通过隐式或显式加入方式隐式加入:适于密集模式,通过广播/剪除模式来去除组播树上没有组播成员的树枝。

即先把网上所有路由器都加入到组播树上,然后每个路由器通过协议查询是否有成员在直连子网上,若没有则发“剪除”消息,剪除多余树枝显式加入:适于稀疏模式,每个路由查询子网内有无成员,然后决定是否给上游路由器加入信息自组网的组播技术13.1 组播传送基础2.组播协议基于源的树基于源的树:为每个源维护一棵组播树,适于密集模式,产生组播报文的源主机数目等于组播树棵数,组播表中有“组数×每组成员数”条目自组网的组播技术13.1 组播传送基础2.组播协议共享树:整个网中选一个“集中点”RP (Rendezvous Point),所有组播报文从该RP传送RP是预设定的一个路由器,转发所有组播报文所有要发送组播报文的源主机发送前,到RP注册然后通过直连路由器确定到目的地的最短路径RP即为组播树的根节点共享树的组播表比基于源的树更精简缺点是RP上的选择会导致从源主机到各组地址的路由并非最优路径若局域网同时有多条占用带宽较多的组播链路,则RP会成为整个网络的瓶颈还可能使RP成为单点故障点自组网的组播技术13.1 组播传送基础2.组播协议组成员的维护为加入跨越物理网络的组播传送,主机事先通知本地组播路由“自己加入某组播组”的信息该信息称为组员身份信息各组播路由器互相交换各自的组播组信息,以建立组播传送路径自组网的组播技术13.1 组播传送基础3. IGMP协议IGMP (internet group management protocol)网组管理协议IGMP用于组播路由器与主播主机间交换组员信息的协议IGMP工作过程如下:IGMP工作过程按“全主机”组播地址将组员身份广播出去自组网的组播技术13.1 组播传送基础4. IGMP的实现IGMP的实现:主机部分和路由器部分主机部分的实现:Member report 消息一个主机第一次加入组时发出Member report 消息或响应三层设备发出Membership Query时回答Member reportMembership Query消息的目的地址是组地址除路由器外,组内其他组成员主机都会收到Membership Query报文路由器只需知道网内有一个组员就行了但其他主机收到Member report 消息,则会抑制自己的Membership Query,减少开销Leave Group 消息,主机发出,目的地址为所有路由器,告知“主机已离开一个组”自组网的组播技术13.1 组播传送基础4. IGMP的实现路由器部分的实现:主要是查询功能,查询报文:General Query(总查询)每隔一段时间就向局域网内发送目的地址是网内所有主机子网中每个主机都会收到这个报文都会以member report报文回应在一定时间间隔内设备没收到member report,则会认为子网内没有成员Group_Specific Query(分组特定查询)当路由收到一个leave Group报文时,它会发出一个报文查询这个组是否有成员存在这个报文具体包含有组地址自组网的组播技术13.1 组播传送基础4. IGMP的实现路由器部分的实现查询路由器选举若一个子网上同时有两个组播路由器,则进行查询路由器的选举一开始都认为自己负责查询组播成员当它们发送General Query报文,通过比较从对方收到的报文源IP地址的大小来决定谁是查询者IP地址大的成为查询者若在一段时间内没有收到查询报文,则认为被选中的查询者已关机,则自己充当查询者自组网的组播技术13.1 组播传送基础5.组播报文的路由目前,常用组播协议主要有:DVMRP,MOSPF,CBT,PIM-DM,PIM-SM等,用得最多的是PIM-SMPIM-SM 稀疏模式协议无关组播运行PIM-SM协议的路由器周期性的发送hello消息,以发现邻接的PIM路由器(PIM协议独立的组播)同时在多路访问网络中进行指定路由器DR的选举DR负责为其直连组成员朝着组播分发树根节点的方向发送”加入/剪枝“消息或是将直连组播源的数据发向组播的分发树自组网的组播技术13.1 组播传送基础5.组播报文的路由PIM-SM组播数据包的转发PIM-SM通过建立组播分发树来进行组播数据包的转发组播分发树:以组G的RP为根的共享树(shared tree)以组播源为根的最短路径树(shortest path tree)PIM-SM通过显式的加入/剪枝机制来完成组播的分发树的建立和维护当DR收到一个接收者的加入分组(join)时,它会向着组G的RP方向逐跳组播发出一个(*,G)加入信息,以加入共享树自组网的组播技术13.1 组播传送基础5.组播报文的路由源主机向组发送组播数据时,源的数据被封装在注册消息内 由其DR单播至RPRP朝着源方向向第一条路由器发送(S,G)加入信息,以加入此源的最短路径树。

这样的源数据包将沿着其最短路径树不加封装的发送到RP。

当第一个组播数据沿此树到达时,RP向源的DR发送注册一停止消息,以使DR停止注册封装。

然后这个源的组播数据不再注册封装,而是先沿着源的最短路径树发送到RP再由RP将沿着共享树转发到各个组成员当不再需要组播数据时,DR向着组G的RP逐跳组播剪枝消息用以剪枝共享树。

自组网的组播技术13.2 无线自组网络的组播传送1.概述组播的主要作用主机按组工作以共同完成一个特定的任务如军事上的人员,装备的指控,在线游戏,交通管理等。

组播起着重要作用。

固定网的组播路由协议,不适合于无线自组网中运行如DVMRP距离矢量组播路由协议;MOSPF开放的最短路径组播协议;CBT基于核心的树;PIM协议独立的组播。

自组网的组播技术13.2 无线自组网络的组播传送1.概述无线自组网的特殊性网络拓扑的动态变化导致频繁的组成员发现与维护过程导致频繁的路由更新过程增大系统开销无固定的基础设施需要所有的结点参与路由信息的存储、更新无线自组网的组播路由解决如下问题。

包括:新成员加入,成员退出,成员移动,组播路由参与结点的移动性无线自组网络组播路由的主要问题非组播用户组播组成员组播路由单播连接组播树连接BE-G ,E-C ,C-G 来维持树来维持树))A 非组播用户加入组播组(增加组播连接F 改变位置(去除组播连接E-F 并增加组播连接C-F )自组网的组播技术13.2 无线自组网络的组播传送无线自组网中提供组播路由的简单方法--泛洪法,网中每个节点都能收到发送分组泛洪法的缺点是需要传送大量的重复分组,使MAC层过多的分组冲突,会增加系统开销。

按参与组播传送的节点拓扑结构,无线自组网的组播路由协议主要有三种:基于树的组播路由基于网格的组播路由混合的组播路由自组网的组播技术13.2 无线自组网络的组播传送2.基于树的组播路由参与组播路由的节点拓扑结构为树。

基于树的组播路由数据:独立树组播路由,共享树组播路由。

独立树组播路由为各个组播发送者分别建立组播路由利用独立树寻径相关节点为每个组的不同组播发送者维护一个组播表可扩展性不好共享树组播路由所有组播发送节点建立一个共享的路由树使用共享树寻径,扩展性好分组传送路径大于发送节点到接收节点间的最短路径自组网的组播技术13.2 无线自组网络的组播传送2.基于树的组播路由基于树的组播路由具有如下优点有效性高:组播路由树中,两节点间提供一条路径,组播发送者能以最少拷贝把分组分发至各个组接收者N个节点的网络,只需N-1条链路,传送相同的分组到所有节点节点的路由决策简单,只需将分组转发到能到达的树接口上自组网的组播技术13.2 无线自组网络的组播传送2.基于树的组播路由基于树的组播路由主要缺点是健壮性不好 路由树任一段链路有故障或因移动而不可用,将导致路由树的重构,从而也增加开销主要的基于树的组播路由协议AMRIS 递增标志号的组播路由协议MAODV 按需距离矢量的组播路由协议LAM 轻量的自适应组播路由协议LGT 位置引导的树结构算法ABAM 按需的基于关联的组播路由等自组网的组播技术13.3 AMRIS路由协议AMRIS (Ad hoc multicast utiliying increaging ID numbers)是一个按需的共享树组播路由协议AMRIS每次组播会话时,为每个节点动态分配一个标识ID组播发送者具有最小ID(SID)组播发送者初始化一次组播会话AMRIS以SID为根,基于标识号来创建组播传送树自组网的组播技术13.3 AMRIS路由协议组播树的初始化一对多的组播会话,SID分配给发送者对于多发送者多接收者的一次组播会话,先选举一个发送者并获得SID自组网的组播技术13.3 AMRIS路由协议 各节点ID号的计算计算过程如下图各结点标识号的计算(a)自组网的组播技术13.3 AMRIS路由协议各节点ID号的计算SID节点向其邻居广播一个NEW-SESSION消息NEW-SESSION消息至少包括节点ID值,组播ID号,路由变量 收到NEW-SESSION消息的邻居节点根据SID递增地产生自己的ID号(称MID)发送者与接收者的ID号不连续(保留一定间隔)用于组播传送树的快速本地修改接收邻节点修改NEW-SESSION消息以自己的MID号代替NEW-SESSION消息中的ID修改路由变量重新广播新的NEW-SESSION消息重复上述过程,使所有节点快速获得各自的ID号自组网的组播技术13.3 AMRIS路由协议组播成员的加入依上述过程,节点x可获得比自己ID号小的邻居节点这些小的ID邻节点是组播成员加入的请求对象,称为“父亲节点”X向某一“父亲节点”y单播JOIN-REQ消息若y已经是一个组播成员,则y向x发JOIN-ACK消息,x加入成功若y还不是组播成员y试图寻找自己的父亲节点并且单播一个JOIN-ACK消息该过程重复,直到找到父亲节点并且它沿JOIN-REQ的反向路径向x发JOIN-ACK消息 若上述过程失败,x将进行一次本地广播寻父亲节点若x不能发现任何父亲节点,则执行支路重构BR过程(见“维护”一节)成员邻居结点加入过程Y JOIN-REQ JOIN-ACK自组网的组播技术13.3 AMRIS路由协议组播树的维护组播树的维护过程保证组播传送过程节点的连续性“非成员邻节点加入过程”如下图所示非成员邻节点加入过程SIDSID(a)(c)(e)自组网的组播技术13.3 AMRIS路由协议组播树的维护当两节点链路不可用时,ID号较大的节点执行支路重构BR (Branch Routing)使节点重新加入BR包括:BR1和BR2当节点具有潜在邻父亲节点时,执行BR1过程当节点没有潜在邻父亲节点时,执行BR2过程BR1工作过程同于节点成员的加入过程BR2工作过程不同于节点成员加入过程节点x广播一个JOIN-REQ消息,该消息指定一个范围字段R,使广播成为一个受限的广播y接收到x的广播JOIN-REQ消息,如果y是成员父亲节点,则沿反向路径单播JOIN-ACK到xx可能收到多个JOIN-ACK,它选择一个,并发出JOIN-CONF消息到选择的父亲节点zz节点收到JOIN-CONF时,就建立了一个到x的树分支自组网的组播技术13.4 MAODV协议MAODV协议是AODV组播路由扩展,修改了RREQ和RREP分组,增加了“激活分组”MACT(activationmessage)路由建立与维护过程不同寻径表维护两个寻径表,一个组播请求表路由表用于单播转发路由的下一跳表项包括:目的地址发目的包序列号到目的的跳数下一跳生存时间自组网的组播技术13.4 MAODV协议寻径表组播路由表用于组播转发表项包括:组播地址组播首领地址组播序列号到组播首领的跳数下一跳生存时间组播请求表无论是否为组播成员,网络中的每一节点都维护组播请求表请求加入组播组的第一个节点将成为首领成员,当某节点要加入组播组时,可查询该表获取组播组的首领成员如果它有到首领节点的单播路由,可向首领成员单播RREQ分组来加入该组播组自组网的组播技术13.4 MAODV协议分组格式RREQ的分组格式<J-flag R-flag 广播ID 信源地址信源序列号目的地址发目的包序列号跳数>其中J-flag 加入标志R-flag路由修复标志,用于组播RREQRREP的分组格式<R-flag U-flag 目的地址发目的包序列号跳数生存时间>其中R-flag和U-flag两标志用于组播维护MACT分组格式MACT为新增分组,格式为:<P-flag GL-flag 信源地址信源序列号目的地址>其中P-flag GL-flag 用于组播路由树的维护自组网的组播技术13.4 MAODV协议组播成员的加入RREQ分组的产生及处理节点发送RREQ分组加入组播组RREQ的目的地址设置为组播地址发目的包序列号设为该组的最大序列号J-flag设为“1”RREQ有两种发送方式如果通过查询其“组播请求表”可获得其首领节点,且有到首领的路由,则单播RREQ到首领节点否则,广播RREQ分组RRR(c )组播树分支加入自组网的组播技术13.4 MAODV协议组播成员的加入只有组播组成员才能响应J-flag=1的RREQ,否则加入者重新广播RREQ如果加入节点在定时内未收到RREP,则重发一个序列号增1的RREQ若尝试一定次数后,仍未收到RREP,则该节点认为已建的组播树不可达,或网络出现分割,则节点以首领成员身份进行组播树的创建,序列号=“1”当J-flag=1的RREQ发送时,收到的节点维护一个组播路由表项,并设“路由使能”无效反向路经的建立过程同于AODV协议自组网的组播技术13.4 MAODV协议组播成员的加入RREP的产生及处理(如图b)组播成员(含首领)发RREP响应加入RREQRREP沿反向路径单播到加入节点RREP分组包括组播序列号首领地址组播跳数反向路径上的节点添加一个组播路由表表项,用于建立前向路径自组网的组播技术13.4 MAODV协议组播成员的加入组播路由的激活(如图c)当加入节点广播RREQ时,它可能收到多个RREP每个RREP都建立一个组播路由加入节点选择一个具有最大序列号和最小跳数的路由,并向该路由的下一跳单播MACT分组(ActivationMessage,激活消息分组)收到MACT分组的下一跳把上述创建的组播路由表项“路由使能”=有效如果下一跳是组播树成员,则不传播MACT否则,选择下一跳,单播MACT其下一跳的组播路由表项“路由使能”=有效重复该过程,直至到达一个组播树的成员节点自组网的组播技术13.4 MAODV协议组播路由的维护组播组的维护首领成员通过周期性地广播“Group Hello”消息来维护组播组的序列号“Group Hello”消息是AODV的“Hello”消息的扩展“Group Hello”包括组播地址,组播序列号,跳数(初值=0,每广播一次增1),TTL(大于网络直径)每广播一个“Group Hello”消息,其序列号增1节点使用“Group Hello”消息更新其组播请求表,以及到首领成员距离自组网的组播技术自组网的组播技术13.4 MAODV协议组播路由的维护成员的剪除组播成员x自己决定退出某组播组如果x不是一个叶节点(非端点,是中间节点)x改变自己的成员状态但保持为组播树的中间节点,保持路径如果x是一个叶节点,单播一个MACT消息(P-flag=1)到下一跳y从自己的组播路由表中删除相应表项y接到MACT消息时,检测到P-flag为1,以此删除其组播路由表的x相关项(下一跳字段)x的剪除造成组播树的改变y必须继续同上的处理过程,直至到达一个成员节点或非叶节点自组网的组播技术13.4 MAODV协议组播路由的维护组播树不可用链路的修复“链路不可用”的检测:在一定时间内未收到邻居的任何分组当链路不可用时,由链路的下游节点负责修复下游节点X广播一个RREQ分组,并设置RREQ分组的J-flag第一RREQ分组的TTL设为最小值,而从RREQ的传播不会太远(本地化)如果在定时内不能收到RREP,则后续的RREQ分组TTL大于网络的直径,使其广播到全网对RREP响应的控制可设置RREQ分组的“组播跳数”为下游节点x到首领节点的距离任何属于组播树、组播路由的序列号大于RREQ的序列号,组播跳数小于RREQ的“组播跳数”的节点才能响应响应后,发RREP到x,从而使x重新加入到组播树中自组网的组播技术13.4 MAODV协议组播路由的维护如果x尝试加入失败,则认为组播树出现分割,x所在的子树失去首领成员,必须重新选择一个首领成员,按下述两种情况处理:第一种情况,若x是成员节点,选择x作为新的首领节点若x不是成员节点并且到组播路由表项的下一跳只有一跳,则x 执行“剪除过程”,直接到一个成员节点y则y成为新的首领节点第二种情况,若x不是成员且其组播路由表项的下一跳不止一个,则x选择第一个下一跳N1向N1发MACT(设置GL-flag)如果N1是一个成员节点,则N1成为新的首领节点,否则,N1重复x的处理上述过程重复直至选中一个新的首领节点或尝试完所有节点新的首领节点通过广播“Group Hello”消息(设置U-flag)使子树中的成员更新其组播路由表和组播请求表的相关表项自组网的组播技术13.4 MAODV协议组播路由的维护不可用链路的上游节点在满足下列情况之一时,执行“剪除过程”不是一个成员节点成为一个叶节点,在定时内未收到下游节点的MACT 消息自组网的组播技术13.4 MAODV协议组播路由的维护分离树的合并当组播树分割为两个子树时,两个子树会各有一个首领节点,那么子树在重新恢复连接时,一个节点会收到两个不同首领节点发出的“Group Hello”消息,必须执行合并操作设节点x首先检测到上述现象若x是一个成员节点,则所在的子树的首领节点的单播地址小,由x发起组播树的重构X单播RREQ(设置R-flag)到它的首领节点L1,R-flag标志表明RREQ 需要特殊的处理首领节点接收到RREQ后,发RREP到x,授权x节点进行组播树的重构,该过程保证只有一个节点负责重构,以避免冲突x收到RREP时,以收到的另一个子树“Group Hello”消息的发送节点作为下一跳,单播RREQ(设置R-flag)到另一个子树的首领节点L2L2收到RREQ后,检测到R-flag,认识到这是一次合并操作,同意L1作为新的首领节点,并单播RREP到x节点接收到R-flag的L1节点,在广播“Group Hello”消息时,设置U-flag,则树中的所有节点将认识到新的首领节点,更新各自的相应表项。

相关主题