IP组播基础

点到多点业务:比如IPTV、视频会议等,可以使用组播、广播、单播承载,比如A,B,C都要收看视频X

单播会占用大量带宽,导致服务器压力极大

广播会发送给所有的终端,存在安全隐患

组播会避免上面两个方式的问题

IP组播基本概念

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

组播数据报文结构

1, 组播目的mac地址

2, 组播源mac地址

3, 组播源IP地址

4, 组播目的IP地址

IPV4组播地址

在范围224.0.0.0到239.255.255.255,作为组播报文的目的地址使用,不能作为源地址使用

IPV4组播报文的源地址字段为IPV4单播地址,可使用A、B、C类地址

组播MAC地址

IANA规定,IPv4组播MAC地址的高24位为0x01005e,第25位为0,低23位为IPv4组播地址的低23位

组播MAC地址标识了一组设备,这种MAC地址第1个字节的最低比特位为1

一个组播MAC地址所标识的一组设备有着共同的特点,那就是它们都加入了相同的组播组,这些设备将会侦听目的MAC地址为该组播MAC地址的数据帧

组播网络基本架构:

源端网络:将组播源产生的组播数据发送到组播网络

组播转发网络:形成无环的组播转发路径,该转发路径也称为组播分发树

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

组播中的成员:

组播源:组播流量的发送者,无需运行任何组播协议

组播接收者:接收组播流量的设备

组播组:用IP组播地址进行标识的一个集合,加入组播组的成员才能识别接收发往该组播组的流量

组播路由器:支持组播、运行组播协议的网络设备,交换机、防火墙也行,路由器只是代表

第一跳路由器:与组播源相连并且复制转发该组播源发出的流量的PIM路由器

最后一跳路由器:与组播组成员相连且负责向该组成员转发组播数据的PIM路由器

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

组播服务模型

1,ASM模型:

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

ASM可以在路由上配置针对组播源的过滤策略,允许或禁止来自某些组播源的报文通过(数据经过筛选)

ASM模型要求组地址必须整个组播网络中唯一,即同一时刻一个ASM地址只能被一种组播应用使用

2,SSM模型:

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

SSM模型对组地址不再要求全网唯一,但是要求同一个源上不同的组播应用使用不同的SSM地址来区分

组播数据转发原理

由于组播转发容易产生环路,次优,重复报文,所以组播路由表项除了目的网络和出接口外还需要添加组播源和入接口的信息,使得设备只转发从特定的入接口收到的组播数据

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

组播转发设备中含有组播路由表,其中有入接口和出接口的信息

RPF检查工作原理:

检查过程:

1, 组播数据到达设备时,设备读取组播数据源IP,查找PRF路由表,寻找组播源对应的出接口

2, 如果出接口与组播报文如接口不一致,就丢弃组播报文

3, 如果出接口与组播报文入接口一直,才会接收报文

RPF路由选举规则:

RPF路由可以从单播路由,MBGP路由、组播静态路由中选举

选举原则:

复制代码
1. 掩码最长匹配
2. 如果三条路由的掩码一样,选择路由优先级最高的路由
3. 如果优先级也相同,组播静态路由>MBGP路由>单播路由
组播分发树:

是通过RPF机制与组播路由协议形成的无环无次优无重复的组播抓发路径

保证转发路径无环,无次优,无重复包

以组播源为根,组成员为叶子

以上均为个人学习笔记,总结于华为技术有限公司学习资料和网络平台资源

如有问题,谢谢指正

相关推荐
摇滚侠40 分钟前
Spring Boot 3零基础教程,WEB 开发 Thymeleaf 属性优先级 行内写法 变量选择 笔记42
java·spring boot·笔记
摇滚侠44 分钟前
Spring Boot 3零基础教程,WEB 开发 Thymeleaf 总结 热部署 常用配置 笔记44
java·spring boot·笔记
rechol1 小时前
汇编与底层编程笔记
汇编·arm开发·笔记
lzj_pxxw2 小时前
嵌入式开发技巧:舍弃标志位,用宏定义函数实现程序单次运行
笔记·stm32·单片机·嵌入式硬件·学习
润 下3 小时前
C语言——回调函数的典型示例(分析详解)
c语言·开发语言·人工智能·经验分享·笔记·程序人生
朝新_3 小时前
【EE初阶 - 网络原理】传输层协议
java·开发语言·网络·笔记·javaee
koo3643 小时前
李宏毅机器学习笔记27
人工智能·笔记·机器学习
峰顶听歌的鲸鱼3 小时前
1.云计算与服务器基础
运维·服务器·笔记·云计算·学习方法
Kay_Liang4 小时前
大语言模型如何精准调用函数—— Function Calling 系统笔记
java·大数据·spring boot·笔记·ai·langchain·tools
bnsarocket4 小时前
Verilog和FPGA的自学笔记7——流水灯与时序约束(XDC文件的编写)
笔记·fpga开发