IP组播基础
admin
2024-03-22 08:19:20
0

IP组播基础

背景

  • 单播承载点到多点业务,会造成源端负担过大,大量重复的单播数据流占用链路带宽等问题
  • 广播承载点到多点业务,能减轻源端负担,但是会带来新的问题
    1. 广播数据无法跨网段传递,传播范围受地域限制
    2. 数据的安全性无法保障,接入该二层网络中的终端都可以接收到该数据
    3. 无法计费
  • 组播:组播数据会沿着组播分发树发送给同一组的用户,相同的数据流在每一条转发路径上只会存在一份
    • 相对于单播:减轻了源端负担,和对链路带宽资源的占用
    • 相对于广播:组播数据可以跨网段传递,能提高数据传输的安全性,且能实现计费

IP组播地址

  • 范围224.0.0.0~239.255.255.255
  • IANA对组播地址进行了进一步的细分
    • 224.0.0.0~224.0.0.255:为其他协议预定的永久地址
      • 224.0.0.1:代表所有节点(路由器和PC)
      • 224.0.0.2:代表所有路由器
      • 224.0.0.5:所有OSPF路由器都侦听
      • 224.0.0.6:OSPF中的DR和BDR侦听
      • 224.0.0.9:RIPv2路由器
      • 224.0.0.13:PIM路由器(协议无关组播)
      • 224.0.0.18:VRRP路由器
      • 224.0.0.22:IGMPv3组播地址
    • 公网的IP组播地址:全局有效
      • 224.0.1.0~231.255.255.255
      • 233.0.0.0~238.255.255.255
        • ASM服务模型下的临时组播地址(任意源)
      • 232.0.0.0~232.255.255.255
        • SSM服务模型下的临时组播组地址(特定源)
    • 私网IP组播地址:本地有效
      • 239.0.0.0~239.255.255.255

组播报文的格式

  • 组播报文格式与单播报文格式基本类似
    • SMAC+DMAC+SIP+DIP+载荷+FCS
      • SMAC+SIP必须是单播地址
      • DMAC+DIP必须是组播地址
      • 目的组播IP地址通常已知
      • 目的MAC地址通过目的IP地址映射得到
        • IP组播MAC地址:
          • MAC地址48bit,前24bit由OUI提供,后24bit厂商任意分配
          • 单播MAC:第一字节第八比特位为0
          • 组播MAC:第一字节第八比特位为1
          • IPV4组播MAC地址
            • IANA规定:
              1. 前24bit固定为02-00-5e
              2. 第25bit固定为0
              3. 后23bit从IVP4组播地址后23bit映射过来
          • 问题:
            • 因为ipv4组播地址前4bit固定1110,后23bit映射给IP组播MAC地址,中间5bit丢失,造成2^5(32)个IP组播地址映射成同一个IP组播MAC地址
        • 预留给协议使用的组播MAC地址:前24bit固定为01-80-c2
          • 01-80-c2-00-00-00:RSTP
          • 01-80-c2-00-00-14:ISIS
          • 01-80-c2-00-00-15:ISIS
        • 预留给IP组播MAC地址:前24bit固定为01-00-5e

IP组播网络架构

  • 源端网络:组播源到第一跳组播路由器之间的网络,将组播流量发送到组播转发网络
  • 组播转发网络:第一跳路由器到最后一跳路由器之间的网络,将组播流量从源端转发到相对应的接收者,运行了组播路由器协议(如:PIM、MSDP)的路由器的集合
  • 接收者端网络:最后一跳路由器到组播接收者之间的网络,运行IGMP

两种组播服务模型

  • ASM:组成员加入组播组后,接收任意源朝该组播组发送的组播数据
  • SSM:组成员加入组播组后,只接受指定源朝该组播组发送的组播数据

RPF:反向路径转发

  • 作用:解决组播转发发出的环路、次优、重复报文的问题
  • 工作原理:
    1. 接收到组播数据流后,根据组播数据流的源IP地址查找单播路由表(RPF路由)
    2. 根据查找到的单播路由的而出接口和接收到该组播数据流的入接口进行比较
    3. 一致,则将该接口认定为RPF接口,添加到组播路由表的上游接口中,后续对于该组播流量,只会接收从该RPF接口接收到的组播流;如果不一致,则丢弃该组播数据

RPF路由的优选规则:

  • ​ 在依据组播源IP地址查找单播路由表时,该路由可能从IP单播路由、MBGP、组播静态路由表都学习到,选举成RPF路由的规则如下:
    1. 优选掩码最长的
    2. 优选优先级最高的(prefernce值);
    3. 组播静态路由>MBGP>单播路由

RPF接口

  • 指的是接收到组播流的如接口与优选出的RPF路由的出接口一致的接口

组播路由表相的组成

  • 用于指定组播数据流的转发
    1. 组表项
      • (*,G):任意源组播路由表项
      • (S,G):特定源组播路由表项
    2. 上游接口:每一个组播路由表项中有且只有一个,其实就是RPF接口,去往组播源最近的接口,用来接收组播流量
    3. 下游接口:连接存在组播接收者的接口,用来转发组播流量可以存在多个

组播分发树:MDT

  • 是一棵无环、无次优且无重复保温的单向最短路径树
  • 是通过RPF和组播路由协议计算生成的,以组播源为树根,组播组成员为叶子,组播路由器为节点的组播流量转发路径树

组播路由协议介绍

  • PIM:协议无关组播,用于AS内生成组播分发树
  • MBGP:组播BGP协议,用于AS间进行RPF检查
  • MSDP:组播源发现协议,用于帮助生成AS间组播分发树

相关内容

热门资讯

【MySQL】锁 锁 文章目录锁全局锁表级锁表锁元数据锁(MDL)意向锁AUTO-INC锁...
【内网安全】 隧道搭建穿透上线... 文章目录内网穿透-Ngrok-入门-上线1、服务端配置:2、客户端连接服务端ÿ...
GCN的几种模型复现笔记 引言 本篇笔记紧接上文,主要是上一篇看写了快2w字,再去接入代码感觉有点...
数据分页展示逻辑 import java.util.Arrays;import java.util.List;impo...
Redis为什么选择单线程?R... 目录专栏导读一、Redis版本迭代二、Redis4.0之前为什么一直采用单线程?三、R...
【已解决】ERROR: Cou... 正确指令: pip install pyyaml
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
Lock 接口解读 前置知识点Synchronized synchronized 是 Java 中的关键字,...
Win7 专业版安装中文包、汉... 参考资料:http://www.metsky.com/archives/350.htm...
3 ROS1通讯编程提高(1) 3 ROS1通讯编程提高3.1 使用VS Code编译ROS13.1.1 VS Code的安装和配置...
大模型未来趋势 大模型是人工智能领域的重要发展趋势之一,未来有着广阔的应用前景和发展空间。以下是大模型未来的趋势和展...
python实战应用讲解-【n... 目录 如何在Python中计算残余的平方和 方法1:使用其Base公式 方法2:使用statsmod...
学习u-boot 需要了解的m... 一、常用函数 1. origin 函数 origin 函数的返回值就是变量来源。使用格式如下...
常用python爬虫库介绍与简... 通用 urllib -网络库(stdlib)。 requests -网络库。 grab – 网络库&...
药品批准文号查询|药融云-中国... 药品批文是国家食品药品监督管理局(NMPA)对药品的审评和批准的证明文件...
【2023-03-22】SRS... 【2023-03-22】SRS推流搭配FFmpeg实现目标检测 说明: 外侧测试使用SRS播放器测...
有限元三角形单元的等效节点力 文章目录前言一、重新复习一下有限元三角形单元的理论1、三角形单元的形函数(Nÿ...
初级算法-哈希表 主要记录算法和数据结构学习笔记,新的一年更上一层楼! 初级算法-哈希表...
进程间通信【Linux】 1. 进程间通信 1.1 什么是进程间通信 在 Linux 系统中,进程间通信...
【Docker】P3 Dock... Docker数据卷、宿主机与挂载数据卷的概念及作用挂载宿主机配置数据卷挂载操作示例一个容器挂载多个目...