什么是组播-网工必会的组播基础概念详解

什么是组播?组播方式解决了单播情况下数据的重复拷贝及带宽的重复占用,也解决了广播方式下带宽资源的浪费,下面腾科教育小编给大家科普一些网工必会的组播基础概念详解。

单播一对多通信场景

1.在单播(Unicast)通信中每一个数据包都有确切的IP地址。

2.对于同一份数据,如果存在多个接收者,Server需发送和接收数目相同的单播数据包。

3.当接受者增加到成百上千时,将极大家中Server创建相同数据和发送多份相同数据拷贝后所产生的消耗,网络中的设备性能及链路带宽将会面临一定程度的浪费。

广播一对多通信场景

1.广播(Broadcast)数据包被限制在广播域中。

2.一旦有设备发送广播数据,则广播域内所有设备都会收到这个数据包,并且不得不耗费资源去处理,大量的广播数据包将消耗网络带宽及设备资源。

3.在IPV6中,利用广播进行报文传输的这种方式被取消。

组播一对多通信场景

1.组播(Multicast)非常适合一对多的通信模型,只有加入到特定组播组的成员,才会受到组播数据,当存在多个组播组成员时,源无需拷贝多个数据发送,仅需发送一份即可,组播网络设备(运行组播路由协议的网络设备)会根据实际需要转发或拷贝组播数据,实现按需拷贝,按需发送。

2.数据流只发送给加入该组播组的接收者(组成员),而不需要该数据的设备将不会接收到该组播流量。

3.相同的组播报文,在一段链路上仅有一份数据,大大提高了网络资源的利用率。

组播的优势:

1.提高效率:降低网络流量、减轻硬件负荷。

2.优化性能:减少冗余流量、节省网络带宽、降低网络负载。

3.分布式应用:是多点应用成为可能。

组播的应用:

1.组播使用于多接受者期望接受相同流量的场景。

2.组播适用于接受者地址(或位置)位置的场景。

3.多媒体直播(如IPTV)。

4.培训、联合作业场景的通信。

5.数据仓库、金融应用(股票)。

6.其他“单到多”数据发布应用。

组播的劣势:

1.组播是基于UDP的,采用尽力而为的传输方式。

2.没有拥塞避免机制。

3.可能出现报文重复的现象。

4.可能出现报文失序的现象。

组播服务模型

1.组播源向特定组播组发送组播数据,它并不关心组成员所处的位置。

2.组播路由器把数据拷贝并转发给需要该数据或存在组播接收者的网络分支。

3.主机加入自己感兴趣的组播组,以便接收发往这些组播组的数据包。

组播术语

组播源(Source):组播流量的发送者,例如多媒体播放器,组播源无需运行任何组播协议,只需简单的将组播数据发送出来即可。

组播接收者(Receiver):也被称作组播组成员,是期望接收特定组播组流量的设备,例如运行多媒体直播客户端软件的PC。

组播组(Multicast Group):一个使用组播IP地址标识的群组,例如224.1.1.1便是一个IPv4组播地址,该地址标识了一组接收者,组播源可以向这个地址发送组播数据,而需要该数据的设备组需加入组播组224.1.1.1,以便从组播网络中获得源发往该组播组的数据。

组播路由器(Multicast Router):支持组播、运行组播协议的网络设备。实际上不仅仅路由器能够支持组播,交换机、防火墙等设备也能够支持组播(取决于设备型号),路由器仅仅是一个代表。

第一跳路由器(First-Hop Router):直连Source的组播路由器。该路由器负责将Source发送出来的组播报文发送到组播网络中。

最后一跳路由器(Last-Hop Router):直连组成员的组播路由器。该路由器负责将组播流量转发到直连网络(给接收者),也负责管理及维护直连网段中的组播组的成员关系。

组播分发树

组播分发树(Multicast distribution tree),由组播路由协议构建,是组播流量的转发路径。

组播IP地址

1.在IPV4地址空间中,D类地址(224.0.0.0/4)被用于组播。组播IP地址代表一个接收者的集合。

2.IANA对D类地址做了进一步的定义,几种主要的组播地址如下表所示:

组播MAC地址

组播IP地址和MAC地址的映射

1.组播MAC,第一个8位组的最后一位恒为1。

2.单播MAC,第一个8位组的最后一位恒为0。

3.组播IP地址有5位被丢弃,因此组播IP与MAC的对应关系是32:1。

组播路由协议概述

1.单播数据包的转发,就是一个一对一的模型,路由器将IP数据包送到它的目的地,单播路由器并不关心数据包的源地址。

2.组播数据时由组播源产生,发向一组接收者,组播路由器将数据包自源向组播接收者分发下去,一直到组播的接收者。

--组播路由器怎么知道这些组播数据向何处分发?

--哪些地方需要组播流量?

--具体的分发路径?

这个时候就需要在组播路由器上运行组播路由协议了。

3.组播流量和单播流量不同,组播流量发往一组接收者,如果网络中有环路存在,那么情况要比单播环路严重,因此所有的组播路由器都需要实现知道组播源的位置,也必须把组播数据包自源(组播数据来的方向)向目标转发(组播接收者)。

4.为了保证组播数据从上游发送到下游,每一个组播路由器都需要维护一个组播路由转发表项。

5.单播路由协议确定去往某个目的地的最优(最短)路径,它不会关心数据的源;而组播路由协议必须去判断上游接口(距离组播源最近的接口)。

组播路由协议的主要功能

1.在接收组播报文时,判断该报文是否在正确的接口上到达,从而确保组播数据转发无环。

2.在组播中建立一棵组播分发树(组播流量转发的路径)。

3.组播分发树体现在每一台组播路由器上便是(S,G)或(*,G)的组播转发表项。

组播路由表项

PIM路由表项即通过PIM协议建立的组播路由表项,PIM中存在两种路由表项:(S,G)或(*,G)的路由表项,S代表组播源,G表示组播组,*表示任意。

1.(S,G)路由表项知道组播源S的位置,主要用于在PIM路由器上建立SPT,适用于PIM-DM和PIM-SM网络。

2.(*,G)路由表项由于只知道组播组G的存在,主要用于在PIM路由器上建立RPT,适用于PIM-SM网络和双向PIM网络。

PIM路由器上可能存在两种路由表项,当收到源地址为S,组地址为G的组播报文,且通过RPF检查的情况下,按照如下规则转发:

1.如果存在(S,G)路由表项,则由(S,G)路由表项指导报文转发。

2.如果不存在(S,G)路由表项,只存在(*,G)路由表项,则先依照(*,G)路由表项创建(S,G)路由表项,再由(S,G)路由表项指导报文转发。

组播分发树的分类

SPT(Shortest-Path Or Source Distribution Trees,最短路径树或源树)

1.源树是以组播源为根的组播分发树。

2.源树的分支形成了通过网络到达接收者所在路由器的分发树,因为源树使用最短的、从源其实贯穿网络到达组播接收者的路径,所以又叫做最短路径树。

3.SPT同时适用于PIM-DM网络和PIM-SM网络。

1.与源树使用组播源作为根不同,共享树使用RP(Rendezous Point)作为汇聚点。

2.多个组播组可以共用一个RP,期望接收组播流量的路由器通过组播协议在自己和RP之间建立一条RPT的分支,组播流量首先需要从源发送到RP,然后再由RP沿RPT将组播流量发送到各个组播接收者。

3.RPT适用于PIM-SM网络和双向PIM网络。

在组播网络中,如果组播流量出现转发环路,比起单播报文的转发环路的危害要大得多。路由器在转发一个组播报文时,出了会关注报文的目的地址,还会特别关心该报文的源地址。组播路由器通过一个被称为RPF(Reverse Path Forwarding,反向路径转发)的机制来实现组播数据转发的无环化。

RPF机制确保组播数据从正确的接口接收到,只有通过RPF检查的组播数据包才能被路由器沿着组播树进行转发,如果数据包从错误的接口被收到,路由器将丢弃这些报文。所谓正确的接口,就是RPF接口(通过RPF检查的接口),也就是我们常说的上游接口,比如常见的情况时借用单播路由表来实现RPF检查。

组播路由协议分类

密集模式:PIM-DM

PIM-DM使用“推(push)模式”转发组播报文,一般应用于组播组成员规模相对较小、相对密集的网络。Push方式假设网络中每个子网至少有一个(S,G)组播组的接收者,因此组播数据被推送到网络的各个角落,然后再进行剪枝操作,不需要组播流量的路由器将自己从组播分发树上修剪掉。

稀疏模式:PIM-SM

稀疏模式协议使用“拉(Pull)的方式”,而不是强推。这种方式假定网络中不存在接收者,除非有设备用join机制来申请。为什么组播使用UDP进行封装?

1.不需要进行TCP三次握手的建立。

2.如果使用TCP,在回包的时候,以哪一个地址作为报文发送源地址成为问题:

--如果以主机的单播地址作为报文发送源地址,那么从逻辑上说不通,因为发出去的是一个组播报文,收到的却是一个单播报文。

--如果以组播地址作为报文发送源地址,那么也不合逻辑,因为组播地址是代表一个组,而不是代表单一的设备,也就是说,组播地址不能作为报文的发送源地址。

综上所述,因此使用UDP来封装组播报文,因为UDP不需要进行三次握手。

注:UDP带来的问题就是没有流控机制,也没有重传和拥塞避免,但是这个缺陷并不是组播本身的问题,而是UDP这种封装方式带来的问题。

组播服务模型(面试题目):

ASM模型:任意源组播,组成员无法对组播源做出选择时,部署使用ASM模型。

SSM模型:指定源组播,组成员可以对组播源做出选择时,部署SSM服务模型。

如何区分使用的是SSM还是ASM?

--以接收者为参照物进行区分,依据接收者接收组播流量是否针对源进行了区分。

优缺点

ASM模型:

缺点:浪费组播地址。只通过组播地址来唯一的区分不同的组播业务,因为不知道组播源,无法对组播源做出选择,在这种情况下,如果要区分不同的业务,就需要使用不同的组播地址来对不同的组播业务进行区分,会造成组播地址浪费。

优点:对组成员的能力要求不高,容易部署和维护,接收者只需要实现知道自己要加入的组播组地址即可。

SSM模型:

缺点:组播接收者需要实现知道源和组地址的对应关系。优点:通过组播源和组播组地址来唯一的区分不同的组播业务,可以实现组播地址重复使用,也就是说,同一个组播地址可以针对不同的组播源来提供不同的组播业务。

(59条消息) 什么是组播-网工必会的组播基础概念详解_feifeiqier的专栏-CSDN博客

什么是组播-网工必会的组播基础概念详解相关推荐

  1. 思科ccna认证工程师NETCONF协议详解网工必看

    思科ccna认证工程师NETCONF协议详解网工必看,这些年随着SDN的热潮,一个诞生了十年之久的协议再一次引起了人们的重视,它就是NETCONF协议. 网络配置协议NETCONF(Network C ...

  2. nps内网穿透服务器搭建教程(阿里云)-小宇特详解

    nps内网穿透服务器搭建教程(阿里云)-小宇特详解 前期准备 1.一台云服务器 2.配置安全组 3.在自己的电脑上安装nps 云服务器的话自己买,我这里使用的是阿里云 讲一下配置安全组 打开阿里云的官 ...

  3. 数学奥赛用不用计算机,报考自招必看!五大学科竞赛利弊详解,到底哪科最适合你?...

    原标题:报考自招必看!五大学科竞赛利弊详解,到底哪科最适合你? 关注 学科竞赛的奖项越来越成为进入清北华五等名校最直接的敲门砖,同时参加学科竞赛对平时学习也有着很大的帮助,建议平时成绩中上游的学生都要 ...

  4. php判断参数_php检查函数必传参数是否存在的实例详解

    php检查函数必传参数是否存在的实例详解 在php实际编程中,接口经常会接收到前端传来的参数,其中有些参数不是必传的,有些参数是必传的,如何"检查函数必传参数是否存在"呢?为了解决 ...

  5. 计算机辅助测试普通话考试流程,必看!普通话考试全流程详解!

    原标题:必看!普通话考试全流程详解! 2019 普通话考试指南 现在距离11月9号普通话考试只有3天了,但是小伙伴们,你们知道考试流程和检测的方式吗?所以今天我就来为第一次参加普通话考试的同学来科普一 ...

  6. 一周刷爆LeetCode,算法da神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记

    一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解 笔记 教程与代码地址 P1 出圈了!讲课之外我们来聊聊 ...

  7. vue-cli脚手架配置基础文件详解/新手入门必看

    vue-cli 脚手架中webpack 配置基础文件详解 需要Word版本 的小伙伴可以发我邮件2445478193@qq.com 一.前言 vue-cli是构建vue单页应用的脚手架,输入一串指定的 ...

  8. 计算机科学报数学竞赛,报考自招必看!五大学科竞赛利弊详解,到底哪科最适合你?...

    原标题:报考自招必看!五大学科竞赛利弊详解,到底哪科最适合你? 学科竞赛的奖项越来越成为进入清北华五等名校最直接的敲门砖,同时参加学科竞赛对平时学习也有h着很大的帮助,建议平时成绩中上游的学生都要尝试 ...

  9. 网工必考:HCIP认证(华为认证ICT高级网络工程师)

    华为HCIP课程介绍 HCIP认证概述 HCIP-R&S认证定位于中小型网络的构建和管理. HCIP-R&S认证包括但不限于:网络基础知识,交换机和路由器原理,TCP/IP协议簇,路由 ...

  10. 【网工必看】交换机如何实现不同网段的互访?

    交换机如何实现不同网段的互访? 这个交换机完全可以实现,在实际项目中,交换机实现不同网段的互访用的也比较多,那么今天我们一起来看下. 同一个vlan中,不同网段的主机如何互通 同一个vlan,不同网段 ...

最新文章

  1. 吴恩达 coursera ML 第三课总结
  2. 如何在python官网下载pip_[Python]Pip的安装以及简单的使用
  3. java 循环stringbuffer_java常用类-----StringBuilder和StringBuffer的用法
  4. 【数据结构与算法】顺序表的Java实现
  5. glide 加载webp_如何使您的网站通过WebP图像快速加载闪电
  6. POJ - 2182 Lost Cows【线段树】
  7. Atitit 提取sfit特征点,并绘制到原图上
  8. Review Board了解
  9. ESP8266/ESP32 +1.3“ or 0.96“ IIC OLED指针式时钟
  10. 从张家界火车站如何去张家界玻璃桥游玩,最详细的张家界攻略
  11. 金融大数据分析平台Palantir Metropolis介绍
  12. 我的世界服务器rpg武器无限耐久,我的世界无限耐久指令_我的世界鞘翅无限耐久指令...
  13. jupyter notebook的安装与使用
  14. sql 修改时间正价 2天_“熬夜3天,修改17遍,我终于写出了1篇稿费2万的稿子”...
  15. uniapp项目H5端横屏问题-样式错乱+字体大小+video
  16. 基于nas的filerun私有网盘搭建(拒绝可道云)
  17. 【日拱一卒行而不辍20220926】自制操作系统
  18. 设计师必备的UI设计工具,工具包和资源
  19. 大数据未来产业的爆发,主要会集中在哪几个方面?
  20. Django部署uwsgi

热门文章

  1. estore简版商城问题总结
  2. Linux 在线词典
  3. 一行代码下载网页视频!
  4. golang test测试使用
  5. Android文件下载
  6. 使用 Visual Studio 创建 .NET 控制台应用程序
  7. python套用word模板_套用word模板
  8. 读《Redis入门指南》2
  9. 小程序组件库ColorUI教程
  10. oracle varchar2(n) 与 postgresql varchar(n) 的区别