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 组播的方式传输视频数据,以对公司的部分员工进行内部培训。
 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/289710.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unity3d使用Jenkins自动化打包(Windows)(二)

文章目录 前言一、Unity工程准备二、Unity调取命令行实战一实战二实战三实战四实战五 总结 前言 自动化打包的价值在于让程序员更轻松地创建和管理构建工具链,提高编程效率,将繁杂的工作碎片化,变成人人(游戏行业特指策划&#x…

混合编程:在Go中与Python共舞

1. 引言 在软件开发领域,Go语言和Python都是备受推崇的高级编程语言,它们各自具有独特的优势和适用场景。Go语言以其简洁、高效的特性而闻名,而Python则因其简单易学、灵活多样的语法而备受青睐。本文将探讨Go语言与Python的优势&#xff0c…

VsCode的json文件不允许注释的解决办法

右下角找到注释点进去 输入Files: Associations搜索出此项 改为项为*.json值为jsonc保存即可 然后会发现VsCode的json文件就允许注释了

黑苹果睡眠(电源设置参考),英特尔 NUC9 黑苹果 Sonoma 14.1.1

机型:英特尔 NUC9 i9-9980HK处理器 之前电源配置没设置好,导致经常睡眠被无故唤醒,处理好之后是这样子的设置,我是台式机,其它的不太清楚,可以提供一个参考给大家。 EFI 暂时没时间上传共享,到时…

uni-app(自定义题色变量)

1.安装sass npm i sass -D 2.安装sass-loader npm i sass-loader10.1.1 -D 3.创建自定义文件 在根目录static目录下,创建scss->_them.scss,目录名称及文件名称自定义即可。 4.定义颜色变量 在_them.scss中,自定义颜色变量&#xff0…

Flink系列之:Flink SQL Gateway

Flink系列之:Flink SQL Gateway 一、Flink SQL Gateway二、部署三、启动SQL Gateway四、运行 SQL 查询五、SQL 网关启动选项六、SQL网关配置七、支持的端点 一、Flink SQL Gateway SQL 网关是一项允许多个客户端从远程并发执行 SQL 的服务。它提供了一种简单的方法…

面试算法-122-翻转二叉树

题目 给你一棵二叉树的根节点 root ,翻转这棵二叉树,并返回其根节点。 示例 1: 输入:root [4,2,7,1,3,6,9] 输出:[4,7,2,9,6,3,1] 解 class Solution {public TreeNode invertTree(TreeNode root) {return dfs(…

实战 | 微调训练TrOCR识别弯曲文本

导 读 本文主要介绍如何通过微调训练TrOCR实现弯曲文本识别。 背景介绍 TrOCR(基于 Transformer 的光学字符识别)模型是性能最佳的 OCR 模型之一。在我们之前的文章中,我们分析了它们在单行打印和手写文本上的表现。 TrOCR—基于Transforme…

Starrocks基于主机和容器的读写测试

背景介绍 在云原生时代,存算分离架构显然已经是当下大数据架构的必备选型,但是在不同的虚拟化计算资源(主机、容器)之上,是否能有差异点以及对于不同服务的性能损耗程度如何?来判断应该在什么样的场景下选…

设计模式之原型模式讲解

原型模式本身就是一种很简单的模式,在Java当中,由于内置了Cloneable 接口,就使得原型模式在Java中的实现变得非常简单。UML图如下: 我们来举一个生成新员工的例子来帮助大家理解。 import java.util.Date; public class Employee…

macOS Sonoma如何查看隐藏文件

在使用Git进行项目版本控制时,我们可能会遇到一些隐藏文件,比如.gitkeep文件。它通常出现在Git项目的子目录中,主要作用是确保空目录也可以被跟踪。 终端命令 在尝试查看.gitkeep文件时,使用Terminal命令来显示隐藏文件 default…

win11蓝牙图标点击变灰,修复过程

问题发现 有一天突然心血来潮想着连接蓝牙音响放歌来听,才发现win11系统右下角菜单里的蓝牙开关有问题。 打开蓝牙设置,可以正常直接连上并播放声音,点击右下角菜单里的蓝牙开关按钮后,蓝牙设备也能正常断开,但是按钮直接变深灰色,无法再点击打开。 重启电脑,蓝牙开关显…

企微侧边栏开发(内部应用内嵌H5)

一、背景 公司的业务需要用企业微信和客户进行沟通,而客户的个人信息基本都存储在内部CRM系统中,对于销售来说需要一边看企微,一边去内部CRM系统查询,比较麻烦,希望能在企微增加一个侧边栏展示客户的详细信息&#xf…

GNU Radio之OFDM Carrier Allocator底层C++实现

文章目录 前言一、OFDM Carrier Allocator 简介二、底层 C 实现1、make 函数2、ofdm_carrier_allocator_cvc_impl 函数3、calculate_output_stream_length 函数4、work 函数5、~ofdm_carrier_allocator_cvc_impl 函数 三、OFDM 数据格式 前言 OFDM Carrier Allocator 是 OFDM …

(免费分享)基于springboot,vue超市管理系统

开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 项目采用前后端分离 前端技术:vueelementUI 服务端技术:springbootmybatis-plusredis 本项目分为系统管理员、…

24. UE5 RPG制作属性面板(二)

在上一篇中,我们创建属性面板的大部分样式,这一篇里面接着制作。 在这一篇里我们需要有以下几个方面: 在界面增加一个属性按钮。属性按钮增加事件,点击时可以打开属性面板,属性面板打开时无法再次点击按钮。点击属性面…

iPhone用GPT替代Siri

shigen坚持更新文章的博客写手,擅长Java、python、vue、shell等编程语言和各种应用程序、脚本的开发。记录成长,分享认知,留住感动。 个人IP:shigen 前一段时间,因为iCloud协议的更新,我的云盘空间无法正常…

什么是RISC-V?开源 ISA 如何重塑未来的处理器设计

RISC-V代表了处理器架构的范式转变,特点是其开源模型简化了设计理念并促进了全球community-driven的开发。RISC-V导致了处理器技术发展前进方式的重大转变,提供了一个不受传统复杂性阻碍的全新视角。 RISC-V起源于加州大学伯克利分校的学术起点&#xff…

HarmonyOS 应用开发之UIAbility组件间交互(设备内)

UIAbility是系统调度的最小单元。在设备内的功能模块之间跳转时,会涉及到启动特定的UIAbility,该UIAbility可以是应用内的其他UIAbility,也可以是其他应用的UIAbility(例如启动三方支付UIAbility)。 本文将从如下场景…

深入Spark与LDA:大规模文本主题分析实战

使用LDA模型和Spark进行文本主题分析 本篇博客介绍了如何使用LDA(潜在狄利克雷分配)模型和Spark进行文本主题分析。我们的目标是从大量的用户评论中提取出主题。 1. 环境设置 首先,我们需要导入所需的库,包括jieba(…