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 地址ÿ…...
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特点 高可靠:Hadoop底层维护多个数…...
【ONE·基础算法 || 分治·快排并归】
总言 主要内容:编程题举例,理解分治的思想(主要是对快排、并归的应用)。 文章目录 总言1、基本介绍2、颜色分类(medium)2.1、题解 3、快速排序(medium)3.1、题解ÿ…...
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日起施行的《非居民金融账户涉税信息尽职调查管理办法》。 一、《管理办法》出台的背景是什么? 受二十国集团&…...
土壤有机质空间分布数据
土壤有机质(soil organic matter)是土壤中含碳有机化合物的总称,包括土壤固有的和外部加入的所有动植物残体及其分解产物和合成产物。主要来源于动植物及微生物残体,可分为腐殖质和非腐殖物质。一般占土壤固相总重的10%以下&#…...
Unity图集编辑器
图集编辑器 欢迎使用图集编辑器新的改变编辑器图片 欢迎使用图集编辑器 Unity图集操作很是费劲 无法批量删除和添加图集中的图片 新的改变 自己写了一个图集编辑器 客: 支持批量删除 左键点击图片代表选中 右键点击图标定位到资产支持批量添加 选中图片拖拽到编…...
【JS笔记】JavaScript语法 《基础+重点》 知识内容,快速上手(六)
面向对象OOP 首先,我们要明确,面向对象不是语法,是一个思想,是一种 编程模式面向: 面(脸),向(朝着)面向过程: 脸朝着过程 》 关注着过程的编程模…...
hbase启动错误-local host is“master:XXXX“ destination is:master
博主的安装前提: zookeeper安装完成,且启动成功 hdfs高可用安装,yarn高可用安装,且启动成功 报错原因:端口配置不对 解决方案: 输入:hdfs getconf -confKey fs.default.name 然后把相应的…...
基于SpringBoot的“招生管理系统”的设计与实现(源码+数据库+文档+PPT)
基于SpringBoot的“招生管理系统”的设计与实现(源码数据库文档PPT) 开发语言:Java 数据库:MySQL 技术:SpringBoot 工具: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 中,如果你想要在打包成 Web 应用后通过 URL 跳转页面,你可以利用 Flutter 提供的路由导航系统和 URL 策略。以下是具体步骤: 1. 配置路由 在 Flutter 应用中定义路由,一种简单的方式是使用 MaterialApp 构造器的 rou…...
【设计模式】中介者模式的应用
文章目录 1.概述2.中介者模式的适用场景2.1.用户界面事件2.2.分布式架构多模块通信 3.总结 1.概述 中介者模式(Mediator Pattern)是一种行为型设计模式,它用于解决对象间复杂、过度耦合的问题。当多个对象(一般是两个以上的对象&…...
李慕婉-仙逆-造相Z-Turbo跨平台GUI开发:使用Qt构建模型调参与预览桌面应用
李慕婉-仙逆-造相Z-Turbo跨平台GUI开发:使用Qt构建模型调参与预览桌面应用 每次看到那些功能强大的AI模型,你是不是也心动过?但一打开命令行,面对密密麻麻的参数和代码,瞬间就觉得头大,只想关掉窗口。对于…...
B站视频资源管理利器:DownKyi智能下载与高效处理全方案
B站视频资源管理利器:DownKyi智能下载与高效处理全方案 【免费下载链接】downkyi 哔哩下载姬downkyi,哔哩哔哩网站视频下载工具,支持批量下载,支持8K、HDR、杜比视界,提供工具箱(音视频提取、去水印等&…...
3步搞定浏览器脚本:Greasy Fork小白也能懂的终极指南
3步搞定浏览器脚本:Greasy Fork小白也能懂的终极指南 【免费下载链接】greasyfork An online repository of user scripts. 项目地址: https://gitcode.com/gh_mirrors/gr/greasyfork 你是否厌倦了网页上烦人的广告?想要自动填充表单、一键下载视…...
Janus-Pro-7B开源大模型教程:HuggingFace模型路径本地加载实操
Janus-Pro-7B开源大模型教程:HuggingFace模型路径本地加载实操 1. 引言 如果你正在寻找一个既能看懂图片,又能根据文字生成图片的AI模型,那么Janus-Pro-7B绝对值得你花时间了解一下。这个模型最近在开源社区里挺火的,因为它把“…...
AI辅助web开发新体验:让快马智能生成实时Markdown编辑器应用
今天想和大家分享一个特别实用的开发体验——用AI辅助快速构建一个实时Markdown编辑器。作为一个经常需要写技术文档的开发者,我一直希望能有个简洁高效的编辑器工具,这次尝试用InsCode(快马)平台的AI能力来实现这个需求,整个过程出乎意料的顺…...
30%重复率的论文如何快速合格?爱毕业aibye的AI改写工具提供五条建议
嘿,大家好!我是AI菌。今天咱们来聊聊一个让无数学生头疼的问题:论文重复率飙到30%以上怎么办?别慌,我这就分享5个实用降重技巧,帮你一次搞定,轻松压到合格线以下。这些方法都是我亲身试验过的&a…...
AI破壁者:OpenClaw+nanobot镜像跨软件自动化方案
AI破壁者:OpenClawnanobot镜像跨软件自动化方案 1. 为什么我们需要跨软件自动化 作为一名经常需要处理设计数据的分析师,我每天都要在Photoshop、Excel和PowerPoint之间来回切换。上周五下午,当我第17次手动复制粘贴数据时,终于…...
深入解析HRPWM中的MEP技术:实现微秒级PWM精度控制
1. HRPWM与MEP技术基础概念 PWM(脉宽调制)技术就像是用开关控制灯泡亮度的原理。想象你快速开关电灯,开关时间比例不同,灯泡亮度就会变化——这就是PWM最基础的工作原理。但在工业控制、电源管理这些对精度要求极高的场景里&#…...
5个HTTP请求配置技巧:让你的Dify工作流开发效率提升300%
5个HTTP请求配置技巧:让你的Dify工作流开发效率提升300% 【免费下载链接】Awesome-Dify-Workflow 分享一些好用的 Dify DSL 工作流程,自用、学习两相宜。 Sharing some Dify workflows. 项目地址: https://gitcode.com/GitHub_Trending/aw/Awesome-Dif…...
非支配排序蜣螂优化算法(NSDBO)——多目标优化问题的有效解决方法
非支配排序的蜣螂优化算法(Non-dominated Sorting Dung Beetle Optimization, NSDBO)是一种结合了非支配排序机制和蜣螂优化算法(Dung Beetle Optimization, DBO)的进化计算方法,专门用于解决多目标优化问题。 在多目标…...
