计算机网络-IP组播基础

news2024/11/19 0:26:39

一、概述

在前面的学习交换机和路由协议,二层通信是数据链路层间通信,在同一个广播域间通过源MAC地址和目的MAC地址进行通信,当两台主机第一次通信由于不清楚目的MAC地址需要进行广播泛洪,目的主机回复自身MAC地址,然后两台主机进行单播一对一通信,这里面其实就涉及到了单播和广播的概念。

还有之前学习OSPF路由协议所有路由器都会加入224.0.0.5这个组播地址,224.0.0.6组播地址主要用于选举OSPF网络中的DR(Designated Router)和BDR(Backup Designated Router),还有其它的一些常见组播地址如RIPV2使用组播224.0.0.9专门用于RIPv2协议的路由器之间进行组播通信,用于传递路由信息。

在计算机网络中,单播、组播和广播是三种不同的数据传输方式,它们各自适用于不同的场景。

1.1 单播(Unicast):

  • 单播是一种点对点的通信方式。
  • 在单播中,发送者向一个特定的接收者发送数据。
  • 每个数据包都包含一个单一的目的地地址,只有这个地址的接收者会接收和处理数据包。
  • 单播适用于一对一的通信,例如电子邮件或在线聊天。

1.2 组播(Multicast):

  • 组播是一种多点传输方式,数据包从发送者发送到一组特定的接收者。
  • 组播地址是一组接收者共享的,所有订阅了该组播组的接收者都会接收到发送的数据。
  • 组播适用于一对多的通信,例如视频会议或在线直播,其中数据包只需要发送一次,但所有订阅的接收者都能接收到。

1.3 广播(Broadcast):

  • 广播是一种将数据包发送到网络中的所有设备的方式。
  • 在广播中,发送者不指定特定的接收者,而是向所有设备发送数据。
  • 每个设备都会接收到广播数据包,但只有那些对数据包感兴趣的设备才会处理它。
  • 广播适用于需要通知网络中所有设备的情况,例如网络发现服务或某些类型的网络管理任务。

也可以从另外一个方面来解读网络中的业务流量。

网络中存在各种各样的业务,从流量模型看一般可以将业务分为两类:

  • 点到点业务:比如FTP,WEB业务,此类业务主要特点是不同的用户有不同的需求,比如用户A需要下载资料A,用户B需要下载资料B。此类业务一般由单播承载,服务器对于不同用户发送不同的点到点数据流。

  • 点到多点业务:比如IPTV,视频会议等,此类业务的特点是用户对于业务有相同的需求,比如用户A,B,C,D都需要收看视频X,此类业务可以使用单播,组播,广播承载。但使用单播或广播承载点到多点业务时存在一定问题。 组播技术能够较好的解决单播或广播在承载点到多点业务时存在的问题。

点到多点业务可以由单播,组播,广播进行承载,现网中也有各种各样的实现方式。但使用单播或者广播承载点到多点业务时存在一些固有的问题。

单播承载点到多点业务
单播承载点到多点业务
广播承载点到多点业务
广播承载点到多点业务

上述以IPTV业务示例,在只有特定客户端需要访问同一个视频源的时候,单播会出现占用大量带宽和建立大量一对一连接的情况,而广播会导致所有客户端都接收到该流量而无论客户是否需要,出现流量冗余和导致安全风险。

所以出现了组播方式进行点到多点业务传输。

组播承载点到多点业务
组播承载点到多点业务

组播方式下,单一的信息流沿组播分发树被同时发送给一组用户,相同的组播数据流在每一条链路上最多仅有一份。相比单播和广播,使用组播的好处如下:

  • 相比单播,用户的增加不会导致信息源负载的加重,不会导致网络资源消耗的显著增加。
  • 相比广播,不会造成网络资源的浪费,并能提高信息传输的安全性,而且组播可以实现跨网段的传输。

综上所述,单播适用于明确源目双方的业务,广播适用于进行无差别传输通信接收发送的业务,而组播可以根据需要传输到特定的点到多点的业务。从现在开始我们主要就是学习组播(Multicast)的相关知识,虽然在实际现网中接触的比较少,但是一些基本常识还是可以学习了解一下的。

二、组播通信的基本概念

组播(Multicast)是在一台源IP主机和多台(一组)IP主机之间进行,中间的网络设备根据接收者的需要,有选择性地对数据进行复制和转发。 组播技术有效地满足了单点发送、多点接收的需求,实现了IP网络中点到多点业务数据的高效传送,能够大量节约网络带宽、降低网络负载。

2.1 组播数据报文结构

组播数据报文的结构与单播报文类似,但组播数据报文的目的MAC地址与目的IP地址与单播报文有很大差异。

组播组成结构示例
组播组成结构示例
  • 组播目的IP地址:目的IP地址为组播IP地址,地址范围从224.0.0.0到239.255.255.255。
  • 组播目的MAC地址:目的MAC地址为组播MAC地址,组播MAC地址由组播IP地址映射而来。
  • 组播源MAC:点到多点业务中的那个"点",也就是那个要发送业务的源的MAC地址。
  • 组播源IP:点到多点业务中的那个"点"的IP地址。

顾名思义"组播",在一个组里面传播,需要接收特定业务的成员就加入这个组即可。而这个组需要有一个有一个唯一标识也就是组播目的IP(组播IP) ,然后在计算机网络中IP和MAC对应,因此会将组播IP通过一定规则映射出一个组播目的MAC地址(组播MAC) ,而发送信息的源头作为"组播源"也有自己的唯一组播源IP组播源MAC作为标识。

本文由 mdnice 多平台发布

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++:this指针到底是什么东西

一、this指针概述 在C中,this是一个隐含的指针,它指向当前正在被调用的函数的对象实例。当你在一个成员函数内部引用self, me, 或者是无名的"this"时,实际上是访问了这个特殊的变量。this通常用于区分函数参数和局部变量&#xff0…

linux驱动编程 - kfifo先进先出队列

简介: kfifo是Linux Kernel里面的一个 FIFO(先进先出)数据结构,它采用环形循环队列的数据结构来实现,提供一个无边界的字节流服务,并且使用并行无锁编程技术,即当它用于只有一个入队线程和一个出…

机器学习筑基篇,​Ubuntu 24.04 编译安装 Python 及多版本切换

[ 知识是人生的灯塔,只有不断学习,才能照亮前行的道路 ] Ubuntu 24.04 编译安装最新Python及多版本切换 描述:说到机器学习,人工智能,深度学习不免会提到Python这一门编程语言(人生苦短,及时Pyt…

Redis的zset的zrem命令可以做到O(1)吗?

事情是这样的,当我用zrem命令去移除value的时候,我知道他之前会做的几个步骤 1、查找这个value对应的score(通过zset中的dict)2、根据这个score查找到跳表中的节点3、删除这个节点 我就想了一下为什么dict为什么要保存score呢&a…

Caffeinated for Mac v2.0.6 Mac防休眠应用 兼容 M1/M2/M3

Caffeinated 可以防止您的 Mac 进入休眠状态、屏幕变暗或者启动屏幕保护。 应用介绍 您的屏幕是否总是在您不希望的时候变暗?那么Caffeinated就是您解决这个大麻烦的最好工具啦。Caffeinated是在Caffeine这个非常便捷、有用的工具的基础上开发而来的。Caffeinated…

insert阻塞了insert?

一、发现问题 在arms监控页面看到某条insert语句的执行时长达到了431毫秒。 数据库中存在,insert语句受到了行锁阻塞,而阻塞的源头也在执行同样的insert语句,同样都是对表USERSYS_TASK_USER_LOG_TEMP01的插入操作,很是费解。 二…

vue2-vue3响应式原理

我们先来看一下响应式意味着什么?我们来看一段代码: m有一个初始化的值,有一段代码使用了这个值;那么在m有一个新的值时,这段代码可以自动重新执行; let m 20 console.log(m) console.log(m * 2)m 40上…

深圳航空顶象验证码逆向,和百度验证码训练思路

声明(lianxi a15018601872) 本文章中所有内容仅供学习交流使用,不用于其他任何目的,抓包内容、敏感网址、数据接口等均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关! 前言(lianxi a…

你的 Mac 废纸篓都生苍蝇啦

今天给大家推荐个免费且有趣的小工具 BananaBin,它可以在你的废纸篓上“长”一些可爱的苍蝇🪰。 软件介绍 BananaBin 是 macOS 上的一款有趣实用工具,当你的垃圾桶满了时,它会提醒你清理。这个软件通过在垃圾桶上添加互动的苍蝇…

让ChatGPT干正事、说人话、会思考!借助ChatGPT润出优质论文的实操指南

大家好,感谢关注。我是七哥,一个在高校里不务正业,折腾学术科研AI实操的学术人。关于使用ChatGPT等AI学术科研的相关问题可以和作者七哥(yida985)交流,多多交流,相互成就,共同进步&a…

Linux笔记之一

Linux笔记之一 一、Linux基本概念1.1 概念1.2 为什么要学Linux 二、Linux基本目录三、Linux基本命令3.1 相对路径3.2 绝对路径3.3 Linux基本命令3.3.1 处理目录的命令3.3.2 创建文件的命令3.3.3 内容查看命令 总结 一、Linux基本概念 1.1 概念 Linux,全称GNU/Linu…

啥?你没听过SpringBoot的FatJar?

写在最前面: SpringBoot是目前企业里最流行的框架之一,SpringBoot的部署方式多数采用jar包形式。通常,我们使用java -jar便可以直接运行jar文件。普通的jar只包含当前 jar的信息,当内部依赖第三方jar时,直接运行则会报…

Python 空间和时间高效的二项式系数(Space and time efficient Binomial Coefficient)

这里函数采用两个参数n和k,并返回二项式系数 C(n, k) 的值。 例子: 输入: n 4 和 k 2 输出: 6 解释: 4 C 2 等于 4!/(2!*2!) 6 输入: n 5 和 k 2 输出: 10 解释: 5 C …

关于GIS的概念方面在前端编程中的理解

关于GIS的概念方面在前端编程中的理解 一. 什么是gis二. 关于地球的建模(了解)三. GIS坐标系表现形式四.GIS的数据4.1 矢量数据4.2 栅格数据4.3 矢量数据和栅格数据的不同 一. 什么是gis 地理坐标系统,其目的就是通过地理坐标系可以确定地球上任何一点的位置。 二. …

springboot网吧信息管理系统-计算机毕业设计源码31030

目录 摘要 1 绪论 1.1 选题背景与意义 1.2国内外研究现状 1.3 本课题主要工作 1.4论文结构与章节安排 2系统分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统流程分析 2.2.1 数据新增流程 2.2.2 数据删除流程 2.3 系统功能分析 2.…

YOLO之boxes小记

import cv2 from ultralytics import YOLO # 加载模型 model YOLO(modelyolov8n.pt) results model(sourceanimal.jpg)result results[0] img result.plot() from matplotlib import pyplot as plt # matplotlib :rgb模式 # cv:bgr模式 plt.imshow(Ximg[:,:,::-1])result.b…

海睿思问数(TableGPT):开创企业新一代指标应用模式

1 指标建设对企业经营管理数字化的价值分析 指标是将海量数据中关键信息提炼和挖掘出来,以数据为载体展示企业经营管理和分析中的统计量。它通过分析数据,形成一个具有度量值的汇总结果,使得业务状态可以被描述、量化和分解。指标通常由度量…

【记录】如何使用IDEA2023

前言: 记录IDEA2023的激活与安装 第一步:官网下载安装包: 下载地址:https://www.jetbrains.com/idea/download/other.html 这个最好选择2023版本,用着很nice。 安装步骤就不详解了,无脑下一步就可以了…

上位机图像处理和嵌入式模块部署(mcu项目1:用户手册)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 一个完整的产品,除了上位机软件、固件、硬件、包装之外,一般还需要一个用户手册。好的用户手册应该能够兼顾到大多数人的认…

Java数据结构-树的面试题

目录 一.谈谈树的种类 二.红黑树如何实现 三.二叉树的题目 1.求一个二叉树的高度,有两种方法。 2.寻找二叉搜索树当中第K大的值 3、查找与根节点距离K的节点 4.二叉树两个结点的公共最近公共祖先 本专栏全是博主自己收集的面试题,仅可参考&#xf…