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机制与组播路由协议形成的无环无次优无重复的组播抓发路径

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

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

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

如有问题,谢谢指正

相关推荐
李李李勃谦2 分钟前
Flutter 框架跨平台鸿蒙开发 - 星空识别助手
flutter·华为·harmonyos
李李李勃谦7 分钟前
Flutter 框架跨平台鸿蒙开发 - 本地生活服务预约
flutter·华为·生活·harmonyos
我的世界洛天依22 分钟前
胡桃讲编程:早期华为手机(比如畅享等)可以升级鸿蒙吗?
华为·harmonyos
2301_8227032027 分钟前
开源鸿蒙跨平台Flutter开发:幼儿疫苗全生命周期追踪系统:基于 Flutter 的免疫接种档案与状态机设计
算法·flutter·华为·开源·harmonyos·鸿蒙
2301_822703201 小时前
鸿蒙flutter三方库实战——教育与学习平台:Flutter Markdown
学习·算法·flutter·华为·harmonyos·鸿蒙
humors2211 小时前
各厂商工具包网址
java·数据库·python·华为·sdk·苹果·工具包
雷工笔记2 小时前
MES / WMS / AGV 交互时序图及生产管理模块界面设计清单
人工智能·笔记
大邳草民2 小时前
Python 中 global 与 nonlocal 的语义与机制
开发语言·笔记·python
landuochong2002 小时前
claude-obsidian 再升级
人工智能·笔记·claudecode
CheerWWW3 小时前
C++学习笔记——线程、计时器、多维数组、排序
c++·笔记·学习