IP组播简介

2024-04-17 02:20
文章标签 ip 简介 组播

本文主要是介绍IP组播简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

定义

作为IP传输三种方式之一,IP组播通信指的是IP报文从一个源发出,被转发到一组特定的接收者。相较于传统的单播和广播,IP组播可以有效地节约网络带宽、降低网络负载,避免广播堵塞带来的诸如摄像头花屏,视频马赛克等问题,所以被广泛应用于IPTV、实时数据传送和多媒体会议等网络业务中。

目的

传统的IP通信有两种方式:单播(Unicast)和广播(Broadcast)。

  • 对于单播通信,信息源为每个需要信息的主机都发送一份独立的报文。
  • 对于广播通信,信息源将信息发送给该网段中的所有主机,而不管其是否需要该信息。

如果要将数据从一台主机发送给多个主机而非所有主机,可以采用广播方式,也可以由源主机采用单播方式向网络中的多台目标主机发送多份数据,如图1所示。

图1 采用单播和广播方式进行点到多点传输数据示意图

  • 采用单播方式时,网络中传输的信息量与需要该信息的用户量成正比。当需要该信息的用户数量较大时,信息源需要将多份内容相同的信息发送给不同的用户,这对信息源以及网络带宽都将造成巨大的压力。因此,该传输方式不利于信息的批量发送,只适用于用户稀少的网络。
  • 采用广播方式时,不需要接收信息的主机也将收到该信息,这样不仅信息的安全性得不到保障,而且会造成同一网段中信息泛滥。因此,该传输方式不利于与特定对象进行数据交互,同时会浪费大量的带宽。

由上述可见,传统的单播和广播通信方式不能有效地解决单点发送、多点接收的问题。

组播(Multicast)可以很好的解决点到多点的数据传输,如图2所示,源只发送一份数据,网络中只有需要该数据的主机(目标主机HostA和HostC)可以接收该数据,其他主机(HostB)不能收到该数据。

图2 采用组播方式进行点到多点传输数据示意图

组播相对单播和广播有如下优势:

  • 相比单播,由于被传递的信息在距信息源尽可能远的网络节点才开始被复制和分发,所以用户的增加不会导致信息源负载的加重以及网络资源消耗的显著增加。
  • 相比广播,由于被传递的信息只会发送给需要该信息的接收者,所以不会造成网络资源的浪费,并能提高信息传输的安全性。

组播适用于任何“点到多点”的数据发布,主要包含以下几方面:

  • 多媒体、流媒体的应用。
  • 培训、联合作业场合的通信。
  • 数据仓库、金融应用(股票)。

IP组播技术在ISP提供的互联网信息服务中已经得到了应用。例如:在线直播、网络电视、远程教育、远程医疗、网络电台和实时视/音频会议等。

组播服务模型

组播服务模型的分类是针对接收者主机的,对组播源没有区别。组播源发出的组播数据中总是以组播源自己的IP地址为报文的源地址,组播组地址为目的地址。而接收者主机接收数据时可以对源进行选择,因此产生了ASM(Any-Source Multicast)和SSM(Source-Specific Multicast)两种服务模型。这两种服务模型使用不同的组播组地址范围。

ASM模型

ASM模型仅针对组地址提供组播分发。一个组播组地址作为一个网络服务的集合,任何源发布到该组地址的数据得到同样的服务。接收者主机加入组播组以后可以接收到任意源发送到该组的数据。

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

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

SSM模型

SSM模型针对特定源和组的绑定数据流提供服务,接收者主机在加入组播组时,可以指定只接收哪些源的数据。加入组播组以后,主机只会收到指定源发送到该组的数据。

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

组播地址

为了使组播源和组播组成员进行通信,需要提供网络层组播,使用IP组播地址。同时,为了在本地物理网络上实现组播信息的正确传输,需要提供链路层组播,使用组播MAC地址。组播数据传输时,其目的地不是一个具体的接收者,而是一个成员不确定的组,所以需要一种技术将IP组播地址映射为组播MAC地址。

IPv4组播地址

IANA(Internet Assigned Numbers Authority,互联网编号分配委员会)将D类地址空间分配给IPv4组播使用。IPv4地址一共32位,D类地址最高4位为1110,因此地址范围从224.0.0.0到239.255.255.255,具体分类及含义见表1。

表1 IPv4组播地址的范围及含义

地址范围

含义

224.0.0.0~224.0.0.255

永久组地址。IANA为路由协议预留的IP地址(也称为保留组地址),用于标识一组特定的网络设备,供路由协议、拓扑查找等使用,不用于组播转发。常见的永久组地址表2所示。

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组播地址,全网范围内有效。

239.0.0.0~239.255.255.255

本地管理组地址,仅在本地管理域内有效。在不同的管理域内重复使用相同的本地管理组地址不会导致冲突。

表2 常见的永久组地址列表

永久组地址

含义

224.0.0.0

不分配

224.0.0.1

网段内所有主机和路由器(等效于广播地址)

224.0.0.2

所有组播路由器

224.0.0.3

不分配

224.0.0.4

DVMRP(Distance Vector Multicast Routing Protocol,距离矢量组播路由协议)路由器

224.0.0.5

OSPF(Open Shortest Path First,开放最短路径优先)路由器

224.0.0.6

OSPF DR(Designated Router,指定路由器)

224.0.0.7

ST(Shared Tree,共享树)路由器

224.0.0.8

ST主机

224.0.0.9

RIP-2(Routing Information Protocol version 2,路由信息协议版本2)路由器

224.0.0.11

移动代理(Mobile-Agents)

224.0.0.12

DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)服务器/中继代理

224.0.0.13

所有PIM(Protocol Independent Multicast,协议无关组播)路由器

224.0.0.14

RSVP(Resource Reservation Protocol,资源预留协议)封装

224.0.0.15

所有CBT(Core-Based Tree,有核树)路由器

224.0.0.16

指定SBM(Subnetwork Bandwidth Management,子网带宽管理)

224.0.0.17

所有SBM

224.0.0.18

VRRP(Virtual Router Redundancy Protocol,虚拟路由器冗余协议)

224.0.0.22

所有使能IGMPv3(Internet Group Management Protocol, Version 3,因特网组管理协议)的路由器

224.0.0.19 ~ 224.0.0.21

224.0.0.23 ~ 224.0.0.255

未指定

这篇关于IP组播简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/910547

相关文章

Spring Security简介、使用与最佳实践

《SpringSecurity简介、使用与最佳实践》SpringSecurity是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架,本文给大家介绍SpringSec... 目录一、如何理解 Spring Security?—— 核心思想二、如何在 Java 项目中使用?——

Java Stream 并行流简介、使用与注意事项小结

《JavaStream并行流简介、使用与注意事项小结》Java8并行流基于StreamAPI,利用多核CPU提升计算密集型任务效率,但需注意线程安全、顺序不确定及线程池管理,可通过自定义线程池与C... 目录1. 并行流简介​特点:​2. 并行流的简单使用​示例:并行流的基本使用​3. 配合自定义线程池​示

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

Python库 Django 的简介、安装、用法入门教程

《Python库Django的简介、安装、用法入门教程》Django是Python最流行的Web框架之一,它帮助开发者快速、高效地构建功能强大的Web应用程序,接下来我们将从简介、安装到用法详解,... 目录一、Django 简介 二、Django 的安装教程 1. 创建虚拟环境2. 安装Django三、创

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

MySQL 索引简介及常见的索引类型有哪些

《MySQL索引简介及常见的索引类型有哪些》MySQL索引是加速数据检索的特殊结构,用于存储列值与位置信息,常见的索引类型包括:主键索引、唯一索引、普通索引、复合索引、全文索引和空间索引等,本文介绍... 目录什么是 mysql 的索引?常见的索引类型有哪些?总结性回答详细解释1. MySQL 索引的概念2

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

rust 中的 EBNF简介举例

《rust中的EBNF简介举例》:本文主要介绍rust中的EBNF简介举例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. 什么是 EBNF?2. 核心概念3. EBNF 语法符号详解4. 如何阅读 EBNF 规则5. 示例示例 1:简单的电子邮件地址