计算机网络体系结构整理-第八单元组播技术

第八单元-组播技术

一、组播的基本概念

组播的类型:ASM(基本的组播形式)、SSM(由特定源点S发往SSM宿地址G的一到多组播)、SFM(只允许某些指定的源点或只允许这些指定的源点之外的源点发送数据。)

一对多的组播应用:有一个源点和多个宿点(远程授课、新闻摘要、网络时钟)

多对多的组播应用:多个节点之间相互作为数据的源点和宿点(视频会议、合作编辑)

逆向路径转发RPF:组播路由器及其它的上行和下行节点构成源点树的通路。如果报文是从通往源点S的最短路径上来的,则将其向其它节点转发,否则将其丢弃。

组播报文的转发-生成树:每个与这个群相关的路由器都要计算这个群的一个最小生成树。每个节点对应的路由器均要保存每一棵生成树的信息

组播报文的转发-共享树:有一个路由器作为公共生成树的根,整个群共享一棵生成树。群内的所有广播均首先发给这个路由器,并由它向树中的各个节点广播

裁剪树技术:源点的第一个广播报文按生成树给定的路径发送给网络中的每一个点,当报文到达网络的边界路由器之后,它将检查本地是否有属于该组的成员。若没有,它要向发来报文的邻接点返回一个“裁剪信息”

这是一种用内存换带宽的方法,通过记住群的成员关系来减少无效的报文传输。

二、组播地址管理

组播地址的分配原则:避免组播地址的冲突、不能由少数甚至个别用户拿走所有可用的地址、地址分配的开销应尽可能小、扩展性使用效率尽可能高。

组播地址的获得:1、编码方式:将组播地址写入程序代码2、通告方式:组播服务随机挑选一个组播地址,然后通告 3、转换方式:算法为组播服务分配一个在全球范围内不与其它服务冲突的组播地址。

组播地址的静态分配:静态LANA分配,每年重新评估。Local Network Control段、Internetwork Control Block

IPv4组播地址的导出分配模型:GLOP和基于单播前缀的分配

IPv4组播地址的管理域分配模型:通常的组播报文根据TTL的值确定其传输范围,但Scope-relative报文根据管理边界确定其传输范围。

组播地址动态分配模型:第一层为主机-服务器机制(动态客户端组播地址分配协议)、第二层为域内服务器协作机制(组播地址分配协议(AAP))、第三层为域间机制(典型协议包括组播地址集申请协议)

三、IGMP(Internet组管理协议)

子网中的主机通过IGMP向组播路由器报告它所属的组,从而使路由器知道需要向这个子网转发有关的组播报文。组播路由器通过IGMP对子网内的主机进行定期探询,以了解这个组成员是否依然存在,如果子网附接有多个组播路由器,则选择一个探寻戴白哦即可。IGMP允许主机提出离群报告,这时组播路由器立即向指定的群进行探询,以判断这个主机是否是该群在本地的最后一个群员。

基本协议机制:查询、报告

Multicast Listener Discovery:IGMP在IPv6中的对等协议,组播报文的接收者被称为组播倾听者,MLD协议的目的就是使路由器可以发现附接在自己各个链路上的组播倾听者和它们感兴趣的组播地址,并将这些信息提供给相应的组播路由协议。倾听者必须在所有要求组播服务的端口上执行MLD

MLD的基本协议机制:探询(探测组成员的存在)、报告(组成员要周期性报告自己的存在)

四、内部组播路由协议

组播路由算法:最短路径树算法(从组播源到每个接收者的路径都是两者之间的最短路径组播树)、最小生成树算法(连接网络中所有节点并且树的全部链路权重之和最小)、Steiner树算法(Steiner树是网络中连接所有组成员的最小代价树)

如果组成员为2,则Steiner树为最短路径树,如果组成员为所有网络节点则Steiner树为最小生成树,一般情况下可以使用KMB近似算法。

DVMRP:距离向量组组播路由协议:是一种基于距离向量和剪裁树技术的群路由协议。类似RIP的路由协议来建立自己的正常路由表。

DVMRP路由器使用的链路可以是隧道也可以是单纯的。DVMRP使用裁剪树技术来生成源点树,并进行定期检查以维护源点树的正确结构。

PIM,分为稠密 (Dense)和稀疏 (Sparse)两种模式。对于稠密的群来说,泛洪加裁剪是合适的,如果存在多归路,PIM-DM要求使用IP地址最大者。广播网段中的其它路由器收到裁剪信息后要向R发一个"join"报文,从而取消裁剪动作

PIM-SM:以节约带宽为主要目标,要求组播路由器显式地加入一个共享树。PIM-SM的共享树技术基于会合点。每个 PIM-SM域都要选择一个或多个组播路由器作为会合点,构成一个RP集,每个群只能有一个RP。当这个RP出现故障时,需要将其从 RP集中删除。

RP的确定:静态配置、动态获取。路由器通过倾听Bootstrap信息来确定RP的位置,Bootstrap 路由器BSR负责发布,其中包含了所有可用的RP(C-RP),它们通常也是BSR的候选。每个C-RP定期向BSR报告(C-RP-Advs)它所支持的组播地址和自己的地址,,优先级最高或IP地址最大中当选当前的BSR。

转发表的生成:组播路由器在确定RP之后要产生一个形如(*, group)的组播报文转发表项,并将其沿上行链路转发给RP,* 表示报文可来自任一个源点。沿途的组播路由器要检查是否已有该群的转发表项存在,若无则也要建立相应的表项

PIM小结:密集模式适用于组播数据量大,稀疏模式适用于群组中接收者较少

CBT:另一种基于共享树的组播路由技术。使用核心 (core) 作为共享树的根,核心的定义与使用和PIM-SM中RP类似,每个群只有一个核心,而每个核心可同时为多个群服务,核心的分配可以是动态或是静态的。

CBT不允许接收方从共享树转移到源点树,从而控制网络中转发树的数量。

五、跨域的组播

BGP4的多协议扩展:MBGP对BGP-4进行了多协议扩展之后,不仅能携带IPV4单播路由信息,也能携带其它网络层协议(如组播、IPV6等)的路由信息。MBGP 可以说是增强版的携带 IP 组播路由的 BGP   

MBGP携带两组路由,一组提供单播路由,另一组提供组播路由 (供PIM使用)

单播和组播路由信息可以通过同一个进程交换,但是存放在不同的路由表里

RP跨域问题:(不能及时得知源点的存在:PIM是IGP、跨域的组播路由信息传递、成员关系报告的开销:RP在域外)

MSDP的基本思路:1、每个域都拥有自己的RP,通过合作实现跨域的组播数据传输2、支持MSDP的组播域彼此之间通过TCP连接建立对等关系,形成一个互联的拓扑,以发现各个域中存在的组播源点。3、MSDP通过 RP将多个PIMSM组播域连接起来这些RP相互不依赖

当RP发现一个新源点时,要构造一个SA(Source-Active)报文给其所有的MSDP对等者,为了控制组播会话的数量和流量,源点所在域的RP可以根据政策定义对SA通告进行过滤

MSDP使用TCP作为传输协议

每个MSDP对等节点以Peer-RPF泛洪方式转发这个SA报文

MSDP节点缓存收到的SA信息

RP若发现本域中有节点对收到的SA报文中报告的某个组播地址有兴趣,则要向SA报文来的方向发送一个加入请求,从而使本域成为这个组播地址的源点树的子树。

活跃源点探询:MSDP对等节点可发出SA请求,向其它对等者询问某个组播地址的信息;收到请求的对等者可以根据自己SA快表的内容作出SA响应

X从N收到由R发出的SA报文,如果N是X的对等RPF邻接点,则X接收此报文;否则X丢弃此报文。

计时器:

(Peer Hold Timer)如果RP在该计时器规定的时间内没有收到对等节点的MSDP报文,则要发送一个通知来通报这个情况,并关闭与这个对等节点的TCP连接(KeepAlive Timer)两个MSDP对等节点之间建立TCP连接之后,要相互发送KeepAlive报文,并建立对应的计时器、(ConnectRetry Timer)具有较小IP地址的MSDP对等节点使用此计时器来控制从INACTIVE到CONNECTING的状态转换。

MSDP连接的关闭:则MSDP节点可随时使用通知报文终止与对等者的MSDP连接。

IPv4源主动请求/响应TLV:用于从一个MSDP对等节点请求SA状态

KeepAlive TLV:用以在MSDP的对等节点之间维持TCP连接的存在

Notification TLV:当发现差错时,发送此报文。

IPv6组播的RP地址内嵌:IPv6跨域组播的源点发现使用RP地址嵌入技术,它还可以用于RP的自动发现

操作模型:接收者过程(接收者利用某种方式获得一个组播地址、接收者发出MLD Report以加入这个组、接收者的DR根据内含的RP地址向其发起一个PIM-SM Join过程)发送者过程(发送者利用某种方式获得一个组播地址;用这个地址开始发送数据;发送者的DR用单播封装方式向RP发出PIM-SM Register;)

特点:RP地址要手工配置,组播地址到RP地址的映射要考虑最长匹配,每个活跃的组播地址都会向RP发送数据,而接收者根据组播地址总能在对应的RP发现活跃的源点,因此不需要在不同的RP之间交换源点信息。

六、SSM

IGMP/PIM-SM/MSDP结构的问题:对周知资源的处理效率不高、缺乏访问控制、地址分配上缺乏冲突控制

SSM服务模型:频道的概念:用二元组(S,G)表示,其中S是源点单播地址,G为SSM的宿组播地址。由于指定了源点的单播地址,因此即使宿组播地址相同,不同的源点地址代表了不同的频道,它们的数据不会相互混淆,可解决地址冲突问题。在域间只需要MBGP

如果路由器不支持SSM功能,要使用相应的路由政策来防止数据被转发到无频道订阅用户的网络去。

SSM接收者在订阅频道前必须要知道频道的源点地址和宿组播地址,因此它要去发现频道,这可以通过访问指定主页或使用某种会话通告协议来实现。

PIM-SM协议允许直接加入特定的源点树

对主机的要求:SSM方式的组播由高层应用控制,特定的频道(S,G)将对应一个指定的socket,非这个频道的数据不能通过这个socket,IP模块与高层协议的接口使用下列的抽象API来访问特定的频道。IP模块要将SSM报文转发给所有订阅了这个频道的socket。

为减少冲突,建议各个主机在允许的地址范围内随机选取SSM地址,而不要顺序选取。多个应用可以从同一个接口I通过不同的socket订阅不同的频道。

对路由器的要求:路由器要按组播地址范围来确定是按SSM方式处理,还是按ASM方式处理。RP不能接受、发出或转发SSM地址范围内的MSDP SA报文

理想的组播服务:

服务的提供是可跨域和可扩展的,服务的安装和使用是简单透明的,对发送者和接收者都是可进行访问控制,服务是可管理、可计费的,组播数据传输是可靠的,服务质量是可验证的。

原文地址:https://www.cnblogs.com/chy8/p/10118828.html