IP组播概念

流量模型

网络中存在各种各样的业务,从流量模型看一般可以将业务分为两类:

点到点业务:比如FTP,WEB业务,此类业务主要特点是不同的用户有不同的需求,比如用户A需要下载资料A,用户B需要下载资料B。此类业务一般由单播承载,服务器对于不同用户发送不同的点到点数据流。

点到多点业务:比如IPTV,视频会议等,此类业务的特点是用户对于业务有相同的需求,比如用户A,B,C,D都需要收看视频X,此类业务可以使用单播,组播,广播承载。但使用单播或广播承载点到多点业务时存在一定问题。

组播技术能够较好的解决单播或广播在承载点到多点业务时存在的问题。

单播和广播的局限性

单播(Unicast)是在一台源IP主机和一台目的IP主机之间进行。网络上绝大部分的数据都是以单播的形式传输的,例如电子邮件收发、网上银行都是采用单播实现的。 在单播通信中每一个数据包都有确切的目的IP地址;对于同一份数据,如果存在多个接收者,Server需发送与接收者数目相同的单播数据包;当接收者增加到成百上千时,将极大加重Server创建相同数据和发送多份相同拷贝后所产生的消耗,网络中的设备性能及链路带宽都会面临一定程度的浪费;单播方式较适合用户稀少的网络,当用户量较大时很难保证网络传输质量。

广播(Broadcast)是在一台源IP主机和网络中所有其它的IP主机之间进行,属于一对所有的通讯方式,所有主机都可以接收到(不管是否需要)。 广播数据包被限制在广播域中;一旦有设备发送广播数据,则广播域内所有设备都会收到这个数据包,并且不得不耗费资源去处理,大量的广播数据包将消耗网络的带宽及设备资源;广播方式只适合共享网段,且信息安全性和有偿服务得不到保障。

使用组播承载点到多点业务

组播(Multicast)是在一台源IP主机和多台(一组)IP主机之间进行,中间的网络设备根据接收者的需要,有选择性地对数据进行复制和转发。

组播技术有效地满足了单点发送、多点接收的需求,实现了IP网络中点到多点业务数据的高效传送,能够大量节约网络带宽、降低网络负载。

组播分发树:组播流量的转发路径。

组播报文结构

组播数据报文的结构与单播报文类似,但组播数据报文的目的MAC地址与目的IP地址与单播报文有很大差异。

组播目的IP地址:目的IP地址为组播IP地址,地址范围从224.0.0.0到239.255.255.255

组播目的MAC地址:目的MAC地址为组播MAC地址,组播MAC地址由组播IP地址映射而来

组播地址分类

范围

含义

224.0.0.0—224.0.0.255

为路由协议预留的永久组地址

224.0.1.0—231.255.255.255

233.0.0.0—238.255.255.255

Any-Source临时组播组地址

232.0.0.0—232.255.255.255

Source-Specific临时组播组地址

239.0.0.0—239.255.255.255

本地管理的Any-Source临时组播组地址

组播MAC地址

IANA规定,IPv4组播MAC地址的高24位为0x01005e,第25位为0,低23位为IPv4组播地址的低23位,例如组播组地址224.0.1.1对应的组播MAC地址为01-00-5e-00-01-01。

IPv4组播地址的前4位是固定的1110,对应组播MAC地址的高25位,后28位中只有23位被映射到MAC地址,因此丢失了5位的地址信息,直接结果是有32个IPv4组播地址映射到同一MAC地址上。例如IP地址为224.0.1.1、224.128.1.1、225.0.1.1、239.128.1.1等组播组的组播MAC地址都为01-00-5e-00-01-01。网络管理员在分配地址时必须考虑这种情况。

一个组播MAC地址所标识的一组设备有着共同的特点,那就是它们都加入了相同的组播组,这些设备将会侦听目的MAC地址为该组播MAC地址的数据帧。只有单播MAC地址才能够被分配给一个以太网接口,组播或广播MAC地址是不能被分配给任何一个以太网接口的,换句话说,这两种类型的MAC地址不能作为数据帧的源MAC地址,而只能作为目的MAC地址。

组播网络基本架构

源端网络

将组播源产生的组播数据发送至组播网络。

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

组播转发网络

形成无环的组播转发路径,该转发路径也被称为组播分发树(Multicast Distribution Tree)。

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

第一跳路由器(First-Hop Router):组播转发路径上,与组播源相连且负责转发该组播源发出的组播数据的PIM路由器。

最后一跳路由器(Last-Hop Router):组播转发路径上,与组播组成员相连且负责向该组成员转发组播数据的PIM路由器。

成员端网络

让组播网络感知组播组成员位置与加入的组播组。

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

组播组(Multicast Group):用IP组播地址进行标识的一个集合。任何用户主机(或其他接收设备),加入一个组播组,就成为了该组成员,可以识别并接收发往该组播组的组播数据。

IGMP(Internet Group Management Protocol,因特网组管理协议),是TCP/IP协议族中负责IP组播成员管理的协议,它用来在接收者和与其直接相邻的组播路由器之间建立、维护组播组成员关系。

组播服务模型

组播组成员在接收组播数据时可以对于组播数据源进行选择,因此产生了ASM(Any-Source Multicast,任意源组播)SSM(Source-Specific Multicast,指定源组播)两种组播服务模型。

ASM(Any-Source Multicast,任意源组播)

组成员加入组播组以后,组成员可以接收到任意源发送到该组的数据。

ASM为了提高安全性,可以在路由器上配置针对组播源的过滤策略,允许或禁止来自某些组播源的报文通过。最终从接收者角度看,数据是经过筛选的。

ASM模型要求组地址必须整个组播网络中唯一。“唯一”指的是同一时刻一个ASM地址只能被一种组播应用使用。如果有两种不同的应用程序使用了同一个ASM组地址发送数据,它们的接收者会同时收到来自两个源的数据。这样一方面会导致网络流量拥塞,另一方面也会给接收者主机造成困扰。

SSM(Source-Specific Multicast,指定源组播)

组成员加入组播组以后,组成员只会收到指定源发送到该组的数据。

SSM模型对组地址不再要求全网唯一,只需要每个组播源保持唯一。这里的“唯一”指的是同一个源上不同的组播应用必须使用不同的SSM地址来区分。不同的源之间可以使用相同的组地址,因为SSM模型中针对每一个(源,组)信息都会生成表项。这样一方面节省了组播组地址,另一方面也不会造成网络拥塞。

总结:也就是无论ASM还是SSM,一个组播地址对应一个组播应用。 建议ASM不同源使用不同地址。

组播数据转发原理

组播数据转发的问题

组播数据转发需要依赖路由表项。但是基于目的网络的路由表在转发组播数据时存在环路、次优、重复报文等问题。

转发环路,重复报文

次优路径,重复报文

组播路由与RPF检查

由于组播转发容易产生环路,次优,重复报文,所以组播路由表项除了目的网络和出接口外还需要添加组播源入接口的信息。设备仅转发从特定唯一的入接口收到的组播数据,从而避免组播转发时产生环路,次优,重复报文(部分解决)等问题。

对于相同的组播源,设备通过RPF(Reverse Path Forwarding,反向路径转发)检查可以确定设备上唯一的组播流量入接口

组播路由表项出接口一般需要通过组播路由协议确定。

RPF检查工作原理

组播路由器根据报文的源地址通过路由表(单播路由表、MBGP路由表或组播静态路由表)查找到达“报文源”的路由,查看到“报文源”的路由表项的出接口是否与收到组播报文的入接口一致。如果一致,则认为该组播报文从正确的接口到达,从而保证了整个转发路径的正确性和唯一性。这个过程就被称为RPF检查。

RPF检查过程

RPF路由选举规则

RPF路由可以从单播路由MBGP路由组播静态路由中选举产生。

MBGP(Multicast BGP,组播BGP):用于传递组播源相关的路由条目。

组播静态路由表:手工配置组播源与出接口的对应关系。

选举规则

1 如果配置了按照最长匹配选择路由,则从这三条路由中选出最长匹配的那条路由;

2 如果这三条路由的掩码一样,则选择优先级最高的那条路由;

3 如果它们的优先级也相同,则按照组播静态路由、MBGP路由、单播路由的顺序进行选择。

检查过程

组播分发树

组播数据转发需要保证转发路径无环,无次优路径且无重复包。

通过RPF机制与组播路由协议,组播网络可以最终形成无环、无次优且无重复包的组播转发路径,该路径可以被称为组播分发树

组播分发树以组播源为根,以组成员为叶子形成转发路径,组播数据在转发时都基于组播分发树进行转发。

组播协议介绍

组播网络需要基于多种组播协议才能建立转发路径

工作在成员端网络的主要是IGMP(Internet Group Management Protocol,因特网组管理协议)协议,用于告知组播网络,组成员的位置与所加组播组

工作在组播转发网络的协议主要有PIM,MSDP,MBGP。

PIM(Protocol Independent Multicast,协议无关组播)协议主要作用是生成AS域内的组播分发树

MSDP(Multicast Source Discovery Protocol,组播源发现协议)主要作用是帮助生成AS域间的组播分发树

MBGP(Multicast BGP,组播BGP)主要作用是帮助跨域组播流进行RPF校验

2022-10-31 网工进阶(三十三) IP组播-流量模型、组播概念、组播报文结构、组播地址与MAC、组播网络架构、组播服务模型、组播数据转发原理(RPF检查、组播分发树、组播协议介绍)相关推荐

  1. 博文总集(三) 之网工进阶

    缓慢更新中 2022-04-03 网工进阶(一)认识网络设备_鹅一只的博客-CSDN博客_上行接口板 2022-04-04 网工进阶(二)IP路由基础.OSPF-基本概念.RID.区域_路由器rid是 ...

  2. 2022-11-01 网工进阶(三十四) IP组播协议(PIM)-模式概述、组播分发树的分类、PIM路由表项、PIM-DM工作原理(组播分发树的形成、配置举例)

    PIM协议介绍 PIM(Protocol Independent Multicast)协议无关组播.协议无关指的是与单播路由协议无关,即PIM不需要维护专门的单播路由信息.目前常用版本是PIMv2,P ...

  3. 信奥中的数学学习资料汇总(2022.10.31)

    信奥中的数学之入门组(面向小学四年级至六年级以及初一学生) 信奥中的数学之入门组(面向小学四年级至六年级以及初一学生)_dllglvzhenfeng的博客-CSDN博客 信奥中的数学学习:小学.初高中 ...

  4. 2022-11- 10 网工进阶(三十六)IP组播协议--IGMP(v1、v2、v3)、IGMP snooping、IGMP SSM Mapping、IGMP Proxy(代理)

    感知组播组成员 组播通信中,组播网络需要将组播数据发送给特定的组播组成员,因此组播网络需要知道组成员的位置与组成员所加的组播组. 组播网络感知组播组成员的方法有手工静态配置和动态感知. 手工静态配置 ...

  5. 2022-11-06 网工进阶(三十五)IP组播协议--PIM-SM工作原理(组播分发树的形成、ASM、SSM)

    PIM-DM的局限性 中大型组播网络中由于网络较大,如果依然使用PIM-DM会遇到诸多问题: 1 使用"扩散-剪枝"方式需要全网扩散组播报文,对于网络有一定冲击. 2 所有组播路由 ...

  6. 2022-09-07 网工进阶(三十)以太网交换安全-端口隔离、MAC地址表安全、端口安全、MAC地址漂移防止与检测、链路层安全、流量抑制、风暴控制、IPSG(IP Source Guard)

    概述 目前网络中以太网技术的应用非常广泛.然而,各种网络攻击的存在,不仅造成了网络合法用户无法正常访问网络资源,而且对网络信息安全构成严重威胁,因此以太网交换的安全性越来越重要. 端口隔离 大型网络中 ...

  7. 2023-01-20 网工进阶(三十九)MPLS 虚拟专用网络---概述、路由交互、CE接入PE方法、基本组网方案详解、团体属性、防环、MCE组网、伪连接方案、跨域组网详解、各种组网方案配置举例

    概述 VPN(Virtual Private Network,虚拟专用网络)指的是在一个公共网络中实现虚拟的专用网络,从而使得用户能够基于该专用网络实现通信的技术.MPLS VPN也是VPN技术中的一 ...

  8. 2022-12- 05 网工进阶(三十七)MPLS--基本概念、转发过程、基本配置、配置静态LSR

    MPLS概述 基本概念 MPLS(Multi-Protocol Label Switching,多协议标签交换)位于TCP/IP协议栈中的数据链路层和网络层之间,可以向所有网络层提供服务. 通过在数据 ...

  9. 2022-09-01 网工进阶(二十九) DHCP-概述、工作原理、报文格式、分配IP地址顺序、地址租期与续租、中继(relay)、Snooping

    概述 IETF于1993年发布了DHCP(Dynamic Host Configuration Protocol,动态主机配置协议).DHCP实现了网络参数配置的自动化,降低客户端的配置和维护成本. ...

最新文章

  1. node.js 验证路径有效性_怎样识别光伏谐波路径?试试这个算法
  2. Centos8 安装并使用Ansible(一)
  3. 【 MATLAB 】MATLAB 实现模拟信号采样后的重建(一)
  4. 傲笑九天志在必得,卧薪尝胆勇者无畏.
  5. java nashorn maven_使用mvn创建java工程的极简教程
  6. python高阶函数、map reduce 自己如何去定义_「python」高阶函数map、reduce的介绍
  7. Star Schema完全参考手册读书笔记四
  8. mysql必知必会的数据_MySQL必知必会---数据过滤
  9. qt unicode转gbk_Qt中文编码和QString类Unicode编码转换
  10. md5加密特征码java,讨论:加密算法特征码及其识别
  11. 银行业务光凭“刷脸”真的靠谱吗
  12. 使用bootstrap画登录页面并实现表单校验与“记住我”功能
  13. 对反游戏外挂技术的思考及实现
  14. PMP备考大全:经典题库(6月第1周)
  15. UEFI启动-GPT分区,Windows 7+ 系统引导修复
  16. 视频编解码 — DCT变换和量化
  17. 数据防泄露产品分析选型指南
  18. springboot 2.x升级后出现Spring Security – There is no PasswordEncoder mapped for the id “null”的解决方案
  19. 2019年市面上360全景相机大比拼 Insta360 Pro 2,得图Detu F4 Plus,理光Theta SC,GoPro Fusion,Nikon尼康KeyMission 360
  20. 《精彩网址大全——工商经济科学教育卷》内容简介

热门文章

  1. 电影里的超级计算机,宇宙终极答案“42”到底是什么意思?超级计算机为我们揭晓答案...
  2. 分数如何进行竖式计算机,分数列竖式计算怎么写
  3. vpp honeycomb 总结
  4. 魔兽服务器不显示pvp,魔兽世界pvp为何开启不了,从新安装了一下,还是开启不了pvp,请高手给指点一下吧。...
  5. 考研英语写作的高分,竟然是靠这些“套路”
  6. target is null for setProperty(null, name, [Ljava.lang.String;@ffc6ae)
  7. 艾永亮超级产品:企业家如何锻炼产品思维,这里有三个训练方法论
  8. faceswap使用过程
  9. 相敏检波电路matlab,侧向仪器中数字相敏检波算法的改进与实现
  10. 2D-时间罗盘(JavaScript)