组播基础
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、什么是组播
1.什么是组播?
组播是一种数据包传输方式,当有多台主机同时成为一个数据包的接受者时,出于对带宽和CPU负担的考虑,组播成为了一种最佳选择。
2.组播如何进行工作?
组播通过把224.0.0.0-239.255.255.255的D类地址作为目的地址,有一台源主机发出目的地址是以上范围组播地址的报文,在网络中,如果有其他主机对于这个组的报文有兴趣的,可以申请加入这个组,并可以接受这个组,而其他不是这个组的成员是无法接受到这个组的报文的。
3.组播和单播的区别?
为了让网络中的多个主机可以同时接受到相同的报文,如果采用单播的方式,那么源主机必须不停的产生多个相同的报文来进行发送,对于一些对时延很敏感的数据,在源主机要产生多个相同的数据报文后,在产生第二个数据报文,这通常是无法容忍的。而且对于一台主机来说,同时不停的产生一个报文来说也是一个很大的负担。
如果采用组播的方式,源主机可以只需要发送一个报文就可以到达每个需要接受的主机上,这中间还要取决于路由器对组员和组关系的维护和选择。
4.组播和广播的区别?
如同上个例子,当有多台主机想要接收相同的报文,广播采用的方式是把报文传送到局域网内每个主机上,不管这个主机是否对报文感兴趣。这样做就会造成了带宽的浪费和主机的资源浪费。而组播有一套对组员和组之间关系维护的机制,可以明确的知道在某个子网中,是否有主机对这类组播报文感兴趣,如果没有就不会把报文进行转发,并会通知上游路由器不要再转发这类报文到下游路由器上。
众所周知的D类IP地址
D类地址用途
224.0.0.1 在一个子网上的所有主机
224.0.0.2 在一个子网上的所有路由器
224.0.0.4 所有DVMRP协议的路由器
224.0.0.5 所有开放最短路径优先(OSPF)路由器
224.0.0.6 所有OSPF指定路由器
224.0.0.9 所有RIPv2路由器
224.0.0.13 所有PIM协议路由器
224.0.0.0-224.0.0.255 保留作本地使用,做管理和维护任务
239.0.0.0-239.255.255.255 留用做管理使用
二、组播协议的要素
通过和广播,单播的数据传输方式的比较,我们可以发现组播中最关键的两个部分:1.组的管理和维护
在组播这套协议中,在网络设备和所连接的子网需要有一套协议或机制来保证网络设备知道所连接的子网中,有多少台主机属于一个特定的组。
组播地址的分配
组播地址的动态分配:
SDR (Session Directory Tool)技术允许应用程序在建立新的会话时随意选用组播地址,通过冲突检测技术避免地址的重复使用,这种方法适用于初期应用较少的MBONE
MASC(Multicast Address Set-Claim)是 IETF 设计的新的组播分配方案,首先将组播地址段静态分配到不同的地区,在每个地区内仍然采用动态租用的方案使用组播地址,想法是好的,实现起来的难度较大,周期较长。
MADCAP(Multicast Address Dyna)与DHCP相似
组播地址的静态分配
目前的解决方案多采用静态组地址分配技术
SGAA(Static Group Address Assignment)是在 MASC 方案得以实现之前的应急之道。采
用 233/8 地址段用于静态地址分配,中间两节包含网络自治系统号,最后一节用于组分配。
2.组播报文的路由
*指定源组播地址
可以用于跨域组播应用,简化源组播地址维护,接收者需要指明要接收的源(S,G)加入
*不指定源组播地址
支持(*,G)加入方式
主播分发树:
最短路径树(基于源的分发树):是发现上游接口,离源最近的接口。因为组播路由协议只关心到源的最短路径。
通过(S,G)对来决定真正的下游接口,当所有的路由器都知道了他们的上下游接口,那么一颗多播树就已经建立完成。根是源主机直连的路由器,而树枝是通过IGMP发现有组员的子网直连的路由器
(3)管理多播树
单播路由只需要知道下一跳的地址,就可以进行报文得转发。而组播,是把从一个由源产生得报文发送给一组目的。在一个特定的路由器上,一个包要多个备份可能从多个接口上发出。如果有环路得存在,那么一个或多个包会返回到其输入的接口,而且这个包也会经复制发到其他的端口上。这一结果可能导致多播风暴,这个包不断在路由器与交换机间复制,直到TTL减为0。由于这是个复制过程,它的危害会比单播环路严重的多,所以所有的多播路由器必须知道多播包的源,并且需要保证多播包不能从源接口发出。所以他必须知道哪些是上游接口和下游接口,可以分辨出数据包的流向。如果在不是在源的上游接口收到数据包,就会把它丢弃掉。而多播路由协议必须关心到源的最短路径,或者说它关心到源的上游接口。同时,除了关心上游接口,但是在转发的时候,不能把数据包从除了上游接口的其他接口发送出去。所以,另外,他还要关心(S,G)下游接口。当关于一个(S,G)的上下游接口都被判断出来了,那么一颗多播树就形成了。
共享分发树(*,G):
组员可以在多播会话存活的时候,加入或退出一个组,而其相连的路由器必须动态的根据直连子网内组员的存在或退出来决定要加入或剪除多播树的树枝。这就是通过显式或隐式加入两种方式来完成。
隐式加入试用于密集模式,它是采用广播/剪除模式来去除多播树上的没有组播成员的树枝,也就是说,它是通过先把网际网络上的所有路由器都加入到多播树上,然后由每个路由器通过IGMP来查询是否有组员在直连的子网上,如果没有,就发出一条剪除消息,来剪除多余的树枝
而显示加入适用于稀疏模式,它是由每个路由器先查询子网内有无组员,然后才看是否