当前位置: 首页 > news >正文

IP组播基础

原理概述

       IANA ( Internet Assigned Numbers Authority )将 IP 地址分成了 A 、 B 、 C 、 D 、 E5类,其中的 D 类为组播 IP 地址,范围是224.0.0.0~239.255.255.255
       一个 IP 报文,其目的地址如果是单播 IP 地址,则称为单播 IP 报文;如果是组播 IP 地址,则称为组播 IP 报文;如果是广播 IP 地址,则称为广播 IP 报文。发送 IP 报文时,如果发送的是单播 IP 报文,则这样的发送方式称为 IP 单播方式,简称 IP 单播;如果发送的是组播 IP 报文,则这样的发送方式称为 IP 组播方式,简称 IP 组播;如果发送的是广播 IP 报文,则这样的发送方式称为 IP 广播方式,简称 IP 广播。
        IP 单播是一种点到点的通信模式,而 IP 组播则是一种点到多点的通信模式。一个发送者需要同时向多个接收者发送完全相同的信息时,如果采用单播方式,则网络需要传输大量的报文,相比之下,采用组播方式可以大大减少需要传输的报文数量,从而可以节约大量的网络资源。随着 Internet 的不断发展,电子商务、网络会议、视频点播、远程教学等服务大量兴起,这些服务大多符合点到多点的模式,特别适合于 IP 组播的应用。
         在组播方式下,组播报文将沿着组播路由协议建立的树型路由从信息源传递到众多的终端用户。在这个过程中,只有该组播组的成员才能收到并处理该组播组的报文,而对于不是该组播组的成员,要么不能收到该组播组的报文,要么收到后直接丢弃。
          虽然 IP 广播也是一种点到多点的通信模式,但相比之下, IP 组播总的来说更具优势。例如, IP 组播是可以跨越网段的,而 IP 广播只能限制在一个网段内。另外, IP 组播也比 IP 广播具有更好的安全性。

实验目的

理解IP组播的基本原理和应用场景

观察IP单波、组播、广播现象

掌握组播源的配置方法

实验内容

实验拓扑如图所示,本实验模拟了一个简单的公司网络,R1为公司的一台网关设备,PC-4是网络管理员所使用的终端,直接连接到R1上,公司其它员工的终端通过交换机S1与R1相连。现在,公司需要通过在组播服务器Source-1上播放视频对员工进行内部培训,除了少数人事部门的员工(使用的终端是PC-3)不需要观看此视频外,其他员工均需要观看学习。管理员需要通过测试和比较,在单波,广播,组播中选择一种最为合适的方式传输该视频数据。

实验拓扑

1.基本配置

根据拓扑图,进行相应的基本配置,并使用ping命令检测R1与PC-1之间的连通性。

其余直连网段的连通性在此省略。

2.观察单播方式

 单播报文的目的IP地址只能标识一个唯一的接收者,只有该接收者才能收到并处理该IP报文;其它接收者要么不能收到此报文,要么收到后也不会处理,而是直接丢弃。

       在R1上使用PC-1的单播IP地址10.0.1.1作为目的地址进行ping操作,然后分别在PC-1,PC-2和PC-3的Ethernet0/0/1接口查看报文的接收情况,如下图所示。

                                                   PC-1的Ethernet 0/0/1接口的报文情况

                                                   PC-2的Ethernet 0/0/1接口的报文情况 

                                                 PC-3的Ethernet 0/0/1接口的报文情况

可以观察到,PC-2和PC-3没有收到ICMP消息,只有PC-1收到了。如果三个用户都需要接收到ping包。

如果多个用户需要获得相同的信息,那么在单播方式下,网络中需要传输的报文数量和用户数量成正比。用户数量越多,网络中包含相同信息的报文数量就越多,这样既浪费网络设备的CPU资源又浪费网络的带宽资源。

3.观察广播方式

一个广播IP地址标识了某确定网段内的所有网络设备,该网段内每个网络设备都会收到并处理该网段的广播报文。

在R1上配置RIPv1协议,使用R1通过广播方式发送RIP报文,然后在PC-1,PC-2和PC-3的Ethernet0/0/1接口查看报文接收情况

[r1]rip 1
[r1-rip-1]network 10.0.0.0

                                               PC-1的Ethernet 0/0/1接口的报文情况

                                               PC-2的Ethernet 0/0/1接口的报文情况

                                               PC-3的Ethernet 0/0/1接口的报文情况 

可以看到,PC-1,PC-2和PC-3都收到了R1通过广播方式发送的RIP报文。

广播方式只在同一个网段中才有效,不能跨越网段。另外,广播方式是无法区分接收者的,这对于信息的安全性和服务的有偿性而言都是一个问题。

4.观察组播方式

使用组播方式时,只有加入到该组播组的成员才能收到并处理该组播组的报文。对于不是该组播组的成员,要么不能收到该组播组的报文,要么收到后直接丢弃。
在R1上完成组播的基本配置,包括在全局模式下开启组播功能,在GE0/0/0接口下开启组播功能,在 GE 0/0/1和 GE 0/0/2接口下开启组播功能及 IGMP 功能。

[r1]multicast routing-enable
[r1]int g0/0/0
[r1-GigabitEthernet0/0/0]pim dm
[r1-GigabitEthernet0/0/0]int g0/0/1
[r1-GigabitEthernet0/0/1]pim dm
[r1-GigabitEthernet0/0/1]igmp enable
[r1-GigabitEthernet0/0/1]int g0/0/2
[r1-GigabitEthernet0/0/2]pim dm
[r1-GigabitEthernet0/0/2]igmp enable

组播服务器 Source -1需要使用 VLC 播放视频的方式来发送组播。首先,在网上下载并安装一个 VLC 软件,然后,在 eNSP 软件的主界面中点击右上方工具栏的设置按钮,在"工具设置"页面中设置 VLC 软件路径

打开组播服务器Source-1的配置界面,在“基础配置”页面中配置IP地址、掩码等,然后点击“应用”

 

接下来在“组播源”页面中配置组播组MAC地址01-00-5E-01-01-01和组播组IP地址224.1.1.1

 

在Source-1的设置界面中选择一个视频文件的路径后,点击“运行”播放视频。

在PC-4上使用IGMPv2加入224.1.1.1组播组,启动VLC,如下图所示

 

可以观察到,在 PC -4上已能播放组播源的视频了。另一方面,如果 PC -1和 PC -2不加入该组播组,则即使启动 VLC 也无视频播放出来,同时,在 PC -1和 PC -2的 Ethernet 0/0/1接口抓取不到任何 UDP 的视频数据。
当 PC -1和 PC -2加入组播组224.1.1.1后,重新启动 VLC ,则观察到可播放视频。此时,只有 PC -3没加入该组播组,在 PC -3上启动 VLC 也无视频播放。
至此,网络管理员应该可以得出结论了,即:应该选择 IP 组播的方式传输视频数据,以对公司的部分员工进行内部培训。
 

 

相关文章:

IP组播基础

原理概述 IANA ( Internet Assigned Numbers Authority )将 IP 地址分成了 A 、 B 、 C 、 D 、 E5类,其中的 D 类为组播 IP 地址,范围是224.0.0.0~239.255.255.255。 一个 IP 报文,其目的地址如果是单播 IP 地址&#xff…...

Pytorch的named_children, named_modules和named_children

在 PyTorch 中,named_children、named_modules 和 named_parameters 是用于获取神经网络模型组件和参数的三种不同的方法。下面是它们各自的作用和区别: named_parameters:递归地列出所有参数名称和tensornamed_modules:递归地列…...

3.28总结

1.java学习记录 1.方法的重载 重载换而言之其实就是函数名不变,但是其中的参数需要改变,可以三个方面改变(参数类型,参数顺序,参数个数这三个方面入手,这样可以运用的) 但是:注意…...

C# 命名空间的两种定义哦写法与区别

这两种写法在C#中都是有效的,但是它们代表了不同的语法风格和C#版本特性。 第一种写法: namespace Nebula.PDF; public class PdfDocument {}这是C# 9.0及更高版本中引入的顶级语句(top-level statements)特性。它允许你直接在文…...

Rustdesk客户端编译后固定密码不稳定时好时坏

环境: rustdesk1.19 问题描述: Rustdesk客户端编译后固定密码不稳定时好时坏 解决方案: 出现固定密码不稳定的问题可能有多种原因,下面是一些可能的解决方法: 密码强度:确保所设置的固定密码足够强大…...

小程序利用WebService跟asp.net交互过程发现的问题并处理

最近在研究一个项目,用到asp.net跟小程序交互,简单的说就是小程序端利用wx.request发起请求。获取asp.net 响应回来的数据。但经常会报错。点击下图的测试按钮 出现如下错误: 百思不得其解,试了若干方法,都不行。 因为…...

TitanIDE与传统 IDE 比较

与传统IDE的比较 TitanIDE 和传统 IDE 属于不同时代的产物,在手工作坊时代,一切都是那么的自然,开发者习惯 Windows 或 MacOS 原生 IDE。不过,随着时代的变迁,软件行业已经步入云原生时代,TitanIDE 是顺应…...

反序列化动态调用 [NPUCTF2020]ReadlezPHP1

在源代码上看到提示 访问一下看看 代码审计一下 <?php #error_reporting(0); class HelloPhp {public $a;public $b;public function __construct(){$this->a "Y-m-d h:i:s";$this->b "date";}public function __destruct(){$a $this->a;…...

Hadoop面试重点

文章目录 1. Hadoop 常用端口号2.Hadoop特点3.Hadoop1.x、2.x、3.x区别 1. Hadoop 常用端口号 hadoop2.xhadoop3.x访问HDFS 端口500709870访问 MR 执行情况端口80888088历史服务器1988819888客户端访问集群端口90008020 2.Hadoop特点 高可靠&#xff1a;Hadoop底层维护多个数…...

【ONE·基础算法 || 分治·快排并归】

总言 主要内容&#xff1a;编程题举例&#xff0c;理解分治的思想&#xff08;主要是对快排、并归的应用&#xff09;。       文章目录 总言1、基本介绍2、颜色分类&#xff08;medium&#xff09;2.1、题解 3、快速排序&#xff08;medium&#xff09;3.1、题解&#xff…...

Python 从0开始 一步步基于Django创建项目(11)注册新用户

1、修改C:\D\Python\Python310\study\snap_gram\users路径下的urls.py 添加‘注册新用户’URL。 #注册新用户 path(register/,views.register,nameregister), 2、修改C:\D\Python\Python310\study\snap_gram\users路径下的views.py 编写URL对应的视图函数register。 def r…...

银行监管报送系统介绍(十二):非居民金融账户涉税信息报送

国家税务总局、财政部、中国人民银行、中国银行业监督管理委员会、中国证券监督管理委员会、国家金融监督管理总局2017年5月9日发布、2017年7月1日起施行的《非居民金融账户涉税信息尽职调查管理办法》。 一、《管理办法》出台的背景是什么&#xff1f;   受二十国集团&…...

土壤有机质空间分布数据

土壤有机质&#xff08;soil organic matter&#xff09;是土壤中含碳有机化合物的总称&#xff0c;包括土壤固有的和外部加入的所有动植物残体及其分解产物和合成产物。主要来源于动植物及微生物残体&#xff0c;可分为腐殖质和非腐殖物质。一般占土壤固相总重的10%以下&#…...

Unity图集编辑器

图集编辑器 欢迎使用图集编辑器新的改变编辑器图片 欢迎使用图集编辑器 Unity图集操作很是费劲 无法批量删除和添加图集中的图片 新的改变 自己写了一个图集编辑器 客&#xff1a; 支持批量删除 左键点击图片代表选中 右键点击图标定位到资产支持批量添加 选中图片拖拽到编…...

【JS笔记】JavaScript语法 《基础+重点》 知识内容,快速上手(六)

面向对象OOP 首先&#xff0c;我们要明确&#xff0c;面向对象不是语法&#xff0c;是一个思想&#xff0c;是一种 编程模式面向&#xff1a; 面&#xff08;脸&#xff09;&#xff0c;向&#xff08;朝着&#xff09;面向过程&#xff1a; 脸朝着过程 》 关注着过程的编程模…...

hbase启动错误-local host is“master:XXXX“ destination is:master

博主的安装前提&#xff1a; zookeeper安装完成&#xff0c;且启动成功 hdfs高可用安装&#xff0c;yarn高可用安装&#xff0c;且启动成功 报错原因&#xff1a;端口配置不对 解决方案&#xff1a; 输入&#xff1a;hdfs getconf -confKey fs.default.name 然后把相应的…...

基于SpringBoot的“招生管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“招生管理系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 系统首页界面图 学生注册界面图 …...

Chinese-LLaMA-Alpaca-2模型量化部署测试

简介 Chinese-LLaMA-Alpaca-2基于Meta发布的可商用大模型Llama-2开发, 是中文LLaMA&Alpaca大模型的第二期项目. 量化 模型的下载还是应用脚本 bash hfd.sh hfl/chinese-alpaca-2-13b --tool aria2c -x 8应用llama.cpp进行量化, 主要参考该教程. 其中比较折腾的是与BLAS…...

flutter 打包成web应用后怎么通过url跳转页面

在 Flutter 中&#xff0c;如果你想要在打包成 Web 应用后通过 URL 跳转页面&#xff0c;你可以利用 Flutter 提供的路由导航系统和 URL 策略。以下是具体步骤&#xff1a; 1. 配置路由 在 Flutter 应用中定义路由&#xff0c;一种简单的方式是使用 MaterialApp 构造器的 rou…...

【设计模式】中介者模式的应用

文章目录 1.概述2.中介者模式的适用场景2.1.用户界面事件2.2.分布式架构多模块通信 3.总结 1.概述 中介者模式&#xff08;Mediator Pattern&#xff09;是一种行为型设计模式&#xff0c;它用于解决对象间复杂、过度耦合的问题。当多个对象&#xff08;一般是两个以上的对象&…...

深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录

ASP.NET Core 是一个跨平台的开源框架&#xff0c;用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录&#xff0c;以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...

Linux链表操作全解析

Linux C语言链表深度解析与实战技巧 一、链表基础概念与内核链表优势1.1 为什么使用链表&#xff1f;1.2 Linux 内核链表与用户态链表的区别 二、内核链表结构与宏解析常用宏/函数 三、内核链表的优点四、用户态链表示例五、双向循环链表在内核中的实现优势5.1 插入效率5.2 安全…...

【OSG学习笔记】Day 18: 碰撞检测与物理交互

物理引擎&#xff08;Physics Engine&#xff09; 物理引擎 是一种通过计算机模拟物理规律&#xff08;如力学、碰撞、重力、流体动力学等&#xff09;的软件工具或库。 它的核心目标是在虚拟环境中逼真地模拟物体的运动和交互&#xff0c;广泛应用于 游戏开发、动画制作、虚…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

三维GIS开发cesium智慧地铁教程(5)Cesium相机控制

一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点&#xff1a; 路径验证&#xff1a;确保相对路径.…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

Python爬虫实战:研究feedparser库相关技术

1. 引言 1.1 研究背景与意义 在当今信息爆炸的时代,互联网上存在着海量的信息资源。RSS(Really Simple Syndication)作为一种标准化的信息聚合技术,被广泛用于网站内容的发布和订阅。通过 RSS,用户可以方便地获取网站更新的内容,而无需频繁访问各个网站。 然而,互联网…...

系统设计 --- MongoDB亿级数据查询优化策略

系统设计 --- MongoDB亿级数据查询分表策略 背景Solution --- 分表 背景 使用audit log实现Audi Trail功能 Audit Trail范围: 六个月数据量: 每秒5-7条audi log&#xff0c;共计7千万 – 1亿条数据需要实现全文检索按照时间倒序因为license问题&#xff0c;不能使用ELK只能使用…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具

文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...