百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

IP组播基础53个知识点 ip组播的主要优点有哪些

wxin55 2024-12-26 17:13 11 浏览 0 评论

1. 随着Internet网络的不断发展,网络中交互的各种数据、语音和视频信息越来越多,同时新兴的电子商务、网上会议、网上拍卖、视频点播、远程教学等服务也在逐渐兴起。这些服务对信息安全性、有偿性、网络带宽提出了要求。

2. 现代网络传输技术对以下两项目标给予更高的关注:

a) 资源发现

b) 点对多点的IP传输

3. 实现这两项目标有三种解决方案:单播(Unicast)、广播(Broadcast)、组播(Multicast)

4. 组播方式更适合点对多点的IP传输。

5. 网络中存在信息发送者“源”,接收者A和C提出信息需求,网络采用单播方式传输信息。

6. 采用单播(Unicast)方式时,系统为每个需求该信息的用户单独建立一条数据传送通路,并为该用户发送一份独立的拷贝信息。由于网络中传输的信息量和需求该信息的用户量成正比,因此当需求该信息的用户量庞大时,网络中将出现多份相同信息流。此时,带宽将成为重要瓶颈,单播方式较适合用户稀少的网络,不利于信息规模化发送。

7. 网络中存在信息发送者“源”,接收者A和C提出信息需求,网络采用单播方式传输信息。

8. 采用单播(Unicast)方式时,系统为每个需求该信息的用户单独建立一条数据传送通路,并为该用户发送一份独立的拷贝信息。由于网络中传输的信息量和需求该信息的用户量成正比,因此当需求该信息的用户量庞大时,网络中将出现多份相同信息流。此时,带宽将成为重要瓶颈,单播方式较适合用户稀少的网络,不利于信息规模化发送。

9. 组播的优势主要在于:

a) 提高效率:降低网络流量、减轻服务器和CPU负荷。

b) 优化性能:减少冗余流量、节约网络带宽、降低网络负载。

c) 分布式应用:使多点应用成为可能。

10. 组播技术有效地解决了单点发送多点接收的问题,实现了IP网络中点到多点的高效数据传送。利用网络的组播特性可以方便地提供一些新的增值业务,包括在线直播、网络电视、远程教育、远程医疗、网络电台、实时视/音频会议等互联网的信息服务领域。

11. 组播技术有效地解决了单点发送多点接收的问题,实现了IP网络中点到多点的高效数据传送。但由于组播技术是基于UDP的,所以同时也存在着不足之处:

a) 尽力而为:报文丢失是不可避免的。因此组播应用程序不能依赖组播网络进行可靠性保证,必须针对组播网络的这个特点进行特别设计。“可靠组播”目前仍然处于研究阶段。

b) 没有拥塞避免机制:缺少TCP窗口机制和慢启动机制,组播可能会出现拥塞。如果可能的话,组播应用程序应该尝试检测避免拥塞。

c) 报文重复:某些组播协议的特殊机制(如Assert机制和SPT切换机制)可能会造成偶尔的数据包的重复。组播应用程序应该容忍这种现象。

d) 报文失序:同样组播协议有的时候会造成报文到达的次序错乱,组播应用程序必须自己采用某种手段进行纠正(比如缓冲池机制等)。

12. 单播数据传输过程中,一个数据包传输的路径是从源地址路由到目的地址,利用“逐跳”(hop-by-hop)的原理在IP网络中传输。然而在IP组播环境中,数据包的目的地址不是一个,而是一组,形成组地址。所有的信息接收者都加入到一个组内,并且一旦加入之后,流向该组地址的数据立即开始向接收者传输,组中的所有成员都能接收到数据包,这个组就是“组播组”。

13. 根据IANA(Internet Assigned Numbers Authority)规定,组播报文的目的地址使用D类IP地址,D类地址不能出现在IP报文的源IP地址字段。

14. D类组播地址范围是从224.0.0.0到239.255.255.255 。

15. ASM模型:ASM模型就是任意源组播模型。在该模型中,任意发送者都可以成为组播源,向某组播组地址发送信息。众多接收者通过加入由该地址标识的主机组,从而接收到发往该组播组的所有信息。在ASM模型中,接收者无法预先知道组播源的位置,接收者可以在任意时间加入或离开该主机组。

16. SFM模型:SFM模型继承了ASM模型,从发送者角度来看,组播组成员关系完全相同。SFM在功能上对ASM进行了扩展:上层软件对接收到的组播报文的源地址进行检查,允许或禁止来自某些组播源的报文通过。最终,接收者只能接收到来自部分组播源的数据。从接收者角度来看,只有部分组播源是有效的,组播源经过了筛选。

17. SSM模型:在现实生活中,用户可能仅对某些源发送的组播信息感兴趣,而不愿接收其它源发送的信息。SSM模型为用户提供了一种能够在客户端指定信源的传输服务。

18. SSM模型和ASM模型的根本区别是接收者已经通过其他手段预先知道了组播源的具体位置。SSM使用和ASM不同的组播地址范围,直接在接收者和其指定的组播源之间建立专用的组播转发路径。

19. 永久组地址:IANA为路由协议预留的组播地址,用于标识一组特定的网络设备(也称为保留组播组)。永久组地址保持不变,组成员的数量可以是任意的,甚至可以为零。如224.0.0.5是为OSPF路由协议中预留的组播地址。

20. 临时组地址:为用户组播组临时分配的IP地址,组成员的数量一旦为零,即取消。

21. 224.0.0.0 到 224.0.0.255 为 IANA 预留的永久组地址,地址 224.0.0.0 保留不做分配,其它地址供路由协议及拓扑查找和维护协议使用。该范围内的地址属于局部范畴,不论生存时间字段(TTL)值是多少,都不会被路由器转发;

22. 224.0.1.0到231.255.255.255,233.0.0.0到238.255.255.255为用户可用的ASM临时组地址,在全网范围内有效;

23. 232.0.0.0到232.255.255.255,为用户可用的SSM临时组地址,全网范围内有效。

24. 239.0.0.0到239.255.255.255,用户可用的ASM临时组地址,仅在特定的本地管理域内有效,称为本地管理组播地址。本地管理组播地址属于私有地址,在不同的管理域内使用相同的本地管理组播地址不会导致冲突。

25. 以太网传输单播IP报文的时候,目的MAC地址使用的是接收者的MAC地址。但是在传输组播报文时,传输目的不再是一个具体的接收者,而是一个成员不确定的组,所以使用的是组播MAC地址。

26. 组播MAC地址用于在链路层上标识属于同一组播组的接收者。

27. IANA规定,组播MAC地址的高24bit为0x01005e,第25bit固定为0,低23bit为组播IP地址的低23bit。

28. 组播协议包括用于主机注册的组播组管理协议,和用于组播选路转发的组播路由协议。

29. IGMP(Internet Group Management Protocol)在接收者主机和组播路由器之间运行,该协议定义了主机与路由器之间建立和维护组播成员关系的机制。

30. 组播路由器之间运行组播路由协议,组播路由协议用于建立和维护组播路由,并正确、高效地转发组播数据包。

31. 对于ASM模型,可以将组播路由分为域内和域间两大类。

32. 组播路由形成了一个从数据源到多个接收端的单向无环数据传输路径,即组播分发树。

33. 组播分发树的两个基本类型:源路径树和共享树。

34. 源路径树:以组播源作为树根,将组播源到每一个接收者的最短路径结合起来构成的转发树。由于源路径树使用的是从组播源到接收者的最短路径,因此也称为最短路径树(Shortest Path Tree,SPT)。对于某个组,网络要为任何一个向该组发送报文的组播源建立一棵树。

35. 共享树:以某个路由器作为路由树的树根,该路由器称为汇集点(Rendezvous Point,RP),将 RP 到所有接收者的最短路径结合起来构成转发树。

36. 使用共享树时,对应某个组,网络中只有一棵树。所有的组播源和接收者都使用这棵树来收发报文,组播源先向树根发送数据报文,之后报文又向下转发到达所有的接收者。

37. 源路径树以组播源作为树根,将组播源到每一个接收者的最短路径结合起来构成的转发树。

38. 源路径树使用的是从组播源到接收者的最短路径,也称为最短路径树(shortest path tree,SPT)。对于某个组,网络要为任何一个向该组发送报文的组播源建立一棵树。

39. 共享树以某个路由器作为路由树的树根,该路由器称为汇集点(Rendezvous Point,RP),将 RP 到所有接收者的最短路径结合起来构成转发树。使用共享树时,对应某个组,网络中只有一棵树。所有的组播源和接收者都使用这棵树来收发报文,组播源先向树根发送数据报文,之后报文又向下转发到达所有的接收者。

40. 源路径树的优点是能构造组播源和接收者之间的最短路径,使端到端的延迟达到最小;但是付出的代价是,在路由器中必须为每个组播源保存路由信息,这样会占用大量的系统资源,路由表的规模也比较大。

41. 共享树的最大优点是路由器中保留的状态可以很少,缺点是组播源发出的报文要先经过 RP,再到达接收者,经由的路径通常并非最短,而且对 RP 的可靠性和处理能力要求很高。

42. 单播报文的转发过程中,路由器并不关心源地址,只关心报文中的目的地址,通过目的地址决定向哪个接口转发。

43. 在组播中,报文是发送给一组接收者的,这些接收者用一个逻辑地址标识。路由器在接收到报文后,必须根据源和目的地址确定出上游(指向组播源)和下游方向,把报文沿着远离组播源的方向进行转发。这个过程称作 RPF(Reverse Path Forwarding,逆向路径转发)。

44. RPF 执行过程中会用到原有的单播路由表以确定上游和下游的邻接结点。只有当报文是从上游邻接结点对应的接口(称作 RPF 接口)到达时,才向下游转发。

45. RPF 的作用除了可以正确地按照组播路由的配置转发报文外,还能避免由于各种原因造成的环路,环路避免在组播路由中是一个非常重要的问题。

46. RPF 的主体是 RPF 检查,路由器收到组播报文后,先对报文进行 RPF 检查,只有检查通过才转发,否则丢弃。RPF 检查过程如下:

a) 路由器在单播路由表中查找组播源或 RP 对应的 RPF 接口(当使用信源树时,查找组播源对应的 RPF 接口,使用共享树时查找 RP 对应的 RPF 接口),某个地址对应的 RPF 接口是指从路由器向该地址发送报文时的出接口;

b) 如果组播报文是从 RPF 接口接收下来的,则 RPF 检查通过,报文向下游接口转发;

c) 否则,丢弃该报文。

47. RPF检查的过程实际上是查找单播路由表的过程。

48. 路由器接收到组播报文后,后查找单播路由表,检查到达组播源的出接口是否与接收到组播报文接口一致。如果一致则认为合法,如果不一致则认为从错误接口收到报文,RFP检查失败,丢弃报文。

49. 什么是组播?

组播组使用一个IP组播地址标识,接收者A和C两个信息接收者加入该组播组后从而可以接收发往该组播组的数据。组播源仅发送一次信息,借助组播路由协议为组播数据包建立树型路由,被传递的信息在尽可能远的分叉路口才开始复制和分发。相同的组播数据流在每一条链路上最多仅有一份。

50. 组播地址结构是怎样的?

D类组播地址范围是从224.0.0.0到239.255.255.255 。根据地址有效性分为:永久组地址和临时组地址。永久组地址 IANA为路由协议预留的组播地址,标识一组特定的网络设备。永久组地址保持不变,组成员的数量可以是任意的,甚至可以为零。临时组地址是为用户组播组临时分配的IP地址,组成员的数量一旦为零,即取消。

51. 组播相关协议有哪些?

组播协议包括用于主机注册的组播组管理协议(IGMP)和用于组播选路转发的组播路由协议。组播路由协议分为域内组播路由协议和域间组播路由协议。域内组播路由协议有PIM-SM、PIM-DM、DVMRP,域间组播路由协议有MSDP、MBGP。

52. 什么是组播分发树?组播分发树的类型有哪些?

组播路由形成了一个从数据源到多个接收端的单向无环数据传输路径,即组播分发树。组播分发树有两类:源路径树以组播源作为树根,将组播源到每一个接收者的最短路径结合起来构成的转发树,也称为最短路径树。共享树以某个路由器作为路由树的树根,RP 到所有接收者的最短路结合起来构成转发树。

53. 组播转发机制RPF原理是怎样的?

RPF执行过程中会用到原有的单播路由表以确定上游和下游的邻接结点。只有当报文是从上游邻接结点对应的接口(称作 RPF 接口)到达时,才向下游转发。具体过程如下:路由器接收到组播报文后在单播路由表中查找到组播报文源地址的路由,如果该路由的出接口就是组播报文的入接口,RPF成功,否则RPF失败,报文丢弃。

相关推荐

ES6中 Promise的使用场景?(es6promise用法例子)

一、介绍Promise,译为承诺,是异步编程的一种解决方案,比传统的解决方案(回调函数)更加合理和更加强大在以往我们如果处理多层异步操作,我们往往会像下面那样编写我们的代码doSomething(f...

JavaScript 对 Promise 并发的处理方法

Promise对象代表一个未来的值,它有三种状态:pending待定,这是Promise的初始状态,它可能成功,也可能失败,前途未卜fulfilled已完成,这是一种成功的状态,此时可以获取...

Promise的九大方法(promise的实例方法)

1、promise.resolv静态方法Promise.resolve(value)可以认为是newPromise方法的语法糖,比如Promise.resolve(42)可以认为是以下代码的语...

360前端一面~面试题解析(360前端开发面试题)

1.组件库按需加载怎么做的,具体打包配了什么-按需加载实现:借助打包工具(如Webpack的require.context或ES模块动态导入),在使用组件时才引入对应的代码。例如在V...

前端面试-Promise 的 finally 怎么实现的?如何在工作中使用?

Promise的finally方法是一个非常有用的工具,它无论Promise是成功(fulfilled)还是失败(rejected)都会执行,且不改变Promise的最终结果。它的实现原...

最简单手写Promise,30行代码理解Promise核心原理和发布订阅模式

看了全网手写Promise的,大部分对于新手还是比较难理解的,其中几个比较难的点:状态还未改变时通过发布订阅模式去收集事件实例化的时候通过调用构造函数里传出来的方法去修改类里面的状态,这个叫Re...

前端分享-Promise可以中途取消啦(promise可以取消吗)

传统Promise就像一台需要手动组装的设备,每次使用都要重新接线。而Promise.withResolvers的出现,相当于给开发者发了一个智能遥控器,可以随时随地控制异步操作。它解决了三大...

手写 Promise(手写输入法 中文)

前言都2020年了,Promise大家肯定都在用了,但是估计很多人对其原理还是一知半解,今天就让我们一起实现一个符合PromiseA+规范的Promise。附PromiseA+规范地址...

什么是 Promise.allSettled()!新手老手都要会?

Promise.allSettled()方法返回一个在所有给定的promise都已经fulfilled或rejected后的promise,并带有一个对象数组,每个对象表示对应的pr...

前端面试-关于Promise解析与高频面试题示范

Promise是啥,直接上图:Promise就是处理异步函数的API,它可以包裹一个异步函数,在异步函数完成时抛出完成状态,让代码结束远古时无限回掉的窘境。配合async/await语法糖,可...

宇宙厂:为什么前端离不开 Promise.withResolvers() ?

大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发。1.为什么需要Promise.with...

Promise 新增了一个超实用的 API!

在JavaScript的世界里,Promise一直是处理异步操作的神器。而现在,随着ES2025的发布,Promise又迎来了一个超实用的新成员——Promise.try()!这个新方法简...

一次搞懂 Promise 异步处理(promise 异步顺序执行)

PromisePromise就像这个词的表面意识一样,表示一种承诺、许诺,会在后面给出一个结果,成功或者失败。现在已经成为了主流的异步编程的操作方式,写进了标准里面。状态Promise有且仅有...

Promise 核心机制详解(promise机制的实现原理)

一、Promise的核心状态机Promise本质上是一个状态机,其行为由内部状态严格管控。每个Promise实例在创建时处于Pending(等待)状态,此时异步操作尚未完成。当异步操作成功...

javascript——Promise(js实现promise)

1.PromiseES6开始支持,Promise对象用于一个异步操作的最终完成(包括成功和失败)及结果值的表示。简单说就是处理异步请求的。之所以叫Promise,就是我承诺,如果成功则怎么处理,失败怎...

取消回复欢迎 发表评论: