IP传输方式——组播

news2024/11/18 1:38:20

组播作为IP传输三种方式之一,指的是报文从一个源发出,被转发到一组特定的接收者,相同的报文在每条链路上最多有一份。相较于传统的单播和广播,组播可以有效地节约网络带宽、降低网络负载,所以被广泛应用于IPTV、实时数据传送和多媒体会议等网络业务中。

组播和单播的区别是什么?

组播和单播都是报文传输的一种方式。

单播是主机间一对一的通讯模式,网络中的设备根据网络报文中包含的目的地址选择传输路径,将单播报文传送到指定的目的地,只对接收到的数据进行转发,不会进行复制。它能够针对每台主机及时的响应,现在的网页浏览全部都是采用单播模式。

组播是主机间一对多的通讯模式, 组播是一种允许一个或多个组播源发送同一报文到多个接收者的技术。组播源将一份报文发送到特定的组播地址,组播地址不同于单播地址,它并不属于特定某个主机,而是属于一组主机。一个组播地址表示一个群组,需要接收组播报文的接收者都加入这个群组。

一份数据报文如图所示,通过单播传输需要使用一个单播地址作为目的地址。数据源向每个接收者发送一份独立的报文。如果网络中存在N个接收者,则数据源需要发送N份报文;通过组播传输时使用一个组播地址作为目的地址,数据源向组播组发送且仅发送一份报文。如果网络中存在N个接收者,数据源也仅需要发送一份数据报文。

图片


组播传输和单播传输方式对比

单播传输适用于用户稀少的网络,如果用户量较大时,网络将会出现多份相同的流量,会大量占用处理器资源而且非常浪费网络的带宽,而通过组播方式传输,网络中每条链路中仅有一条数据流。组播相比于单播的优势在于相同的报文在每条链路上最多有一份。

组播和广播的区别是什么?

组播和广播都是报文传输的一种方式。

广播是主机间一对所有的通讯模式,设备会将报文发送到网络中的所有可能接收者。设备简单地将它收到的任何广播报文都复制并转发到除该报文到达的接口外的每个接口。广播处理流程简单,不用选择路径。

组播是主机间一对多的通讯模式, 组播是一种允许一个或多个组播源发送同一报文到多个接收者的技术。

一份数据报文如图所示,通过广播传输需要使用一个广播地址作为目的地址。数据源向本网段对应的广播地址发送且仅发送一份报文。广播传输会把数据报文发送给本网段中的所有用户,而不管用户是否有需求;通过组播传输时仅把数据报文发送给有数据需求的用户,不会发送给所有用户。

图片


组播传输和广播传输方式对比

广播传输数据源必须与用户在同一个网段,组播可以跨网段传输。广播传输该网段内所有主机都能收到数据报文,会导致无信息需求的主机也收到该信息,网络中存在流量冗余,组播传输只将数据流传输到有接收者的地方,网络中不存在流量冗余。组播相比于广播的优势在于组播的报文是按需发送。

IP组播地址的范围

为了使组播源和组播组成员进行通信,需要提供网络层组播使用的IP组播地址。

IPv4组播地址

IANA将D类地址空间分配给IPv4组播使用。IPv4地址一共32位,D类地址最高4位为1110,地址范围从224.0.0.0到239.255.255.255,具体分类及含义见下图。

图片


IPv4组播地址的范围及含义

IPv6组播地址

IPv6地址长度是128位,IPv6组播地址格式如图所示。

图片


IPv6组播地址格式

  • IPv6组播地址总是以FF开头,高8位取值为11111111。

  • Flags字段(4位)用来标识组播地址的状态。例如取值为0表示保留组地址,取值为1或2表示ASM范围内的组播地址,取值为3表示SSM范围内的组播地址。

  • Scope字段(4位)用来标识组播组的应用范围,指示组播组应用范围是只包含同一本地网络、同一站点、同一机构中的节点,还是包含全球地址空间内的任何节点。

  • Group ID(112位)组播组标识符,用在由Scope字段所指定的范围内标识组播组。

固定的IPv6组播地址的范围及含义如图所示。

图片


IPv6组播地址的范围及含义

组播MAC地址的范围

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

IPv4组播MAC地址

以太网传输IPv4单播报文的时候,目的MAC地址使用的是接收者的MAC地址。但是在传输组播数据时,其目的地不再是一个具体的接收者,而是一个成员不确定的组,所以要使用IPv4组播MAC地址,即IPv4组播地址映射到链路层中的地址。

IANA规定,IPv4组播MAC地址的高24位为0x01005e,第25位为0,低23位为IPv4组播地址的低23位,映射关系如图所示。例如组播组地址224.0.1.1对应的组播MAC地址为01-00-5e-00-01-01。

图片


IPv4组播地址与IPv4组播MAC地址的映射关系

IPv4组播地址的前4位是固定的1110,对应组播MAC地址的高25位,后28位中只有23位被映射到MAC地址,因此丢失了5位的地址信息,直接结果是有32个IPv4组播地址映射到同一MAC地址上。例如IP地址为224.0.1.1、224.128.1.1、225.0.1.1、239.128.1.1等组播组的组播MAC地址都为01-00-5e-00-01-01。

IPv6组播MAC地址

IPv6组播MAC地址的高16位为0x3333,低32位为IPv6组播地址的低32位。如图所示,是IPv6组播地址的MAC地址映射关系。

图片


IPv6组播地址与IPv6组播MAC地址的映射关系

可见IPv6中会有更多的组地址使用同一个MAC地址。

有哪些组播协议?

在IP组播传输模型中,发送者不关心接收者所处的位置,只要将数据发送到约定的目的地址,剩下的工作就交给网络去完成。网络中的组播设备必须收集接收者的信息,并按照正确的路径实现组播报文的转发和复制。在组播的发展过程中,形成了一套完整的协议来完成此任务。

IPv4网络中使用的组播协议

  • 组播组管理协议IGMP(Internet Group Management Protocol)IGMP是负责IPv4组播成员管理的协议,运行在组播网络中的最后一段,即三层网络设备与用户主机相连的网段内。IGMP协议在主机端实现组播组成员加入与离开,在上游的三层设备中实现组成员关系的维护与管理,同时支持与上层组播路由协议的信息交互。

  • 协议无关组播PIM(Protocol Independent Multicast)PIM作为一种IPv4网络中的组播路由协议,主要用于将网络中的组播数据流发送到有组播数据请求的组成员所连接的组播设备上,从而实现组播数据的路由查找与转发。PIM协议包括PIM-SM(Protocol Independent Multicast Sparse Mode)协议无关组播-稀疏模式和PIM-DM(Protocol Independent Multicast Dense Mode)协议无关组播-密集模式。PIM-SM适合规模较大、组成员相对比较分散的网络;PIM-DM适合规模较小、组播组成员相对比较集中的网络。

  • 组播源发现协议MSDP(Multicast Source Discovery Protocol)MSDP是为了解决多个PIM-SM域之间的互连的一种域间组播协议,用来发现其他PIM-SM域内的组播源信息,将远端域内的活动信源信息传递给本地域内的接收者,从而实现组播报文的跨域转发。

  • 组播边界网关协议MBGP(MultiProtocol Border Gateway Protocol)MBGP实现了跨AS域的组播转发。适用于组播源与组播接收者在不同AS域的场景。

  • IGMP SnoopingIGMP Snooping功能可以使设备工作在二层时,通过侦听上游的三层设备和用户主机之间发送的IGMP报文来建立组播数据报文的二层转发表,管理和控制组播数据报文的转发,进而有效抑制组播数据在二层网络中扩散。

  • BIERBIER是基于比特索引的显式复制技术,通过将组播报文目的节点的集合以比特串的方式封装在报文头部进行发送,从而使网络中间节点无需为每一个组播流(Per-flow)建立组播树及保存组播流状态,仅需根据报文头部的目的节点的集合进行复制转发。

IPv6网络中使用的组播协议

  • 组播侦听者发现协议MLD(Multicast Listener Discovery)MLD是负责IPv6组播成员管理的协议,运行在组播网络中的最后一段,即三层组播设备与用户主机相连的网段内。MLD协议在主机端实现组播组成员加入与离开,在三层设备上实现组成员关系的维护与管理,同时支持与组播路由协议的信息交互。

  • PIM(IPv6)PIM(IPv6)作为一种IPv6网络中的组播路由协议,主要用于将网络中的组播数据流引入到有组播数据请求的组成员所连接的路由器上,从而实现组播数据流的路由查找与转发。PIM(IPv6)协议包括PIM-SM(IPv6)和PIM-DM(IPv6)两种模式。PIM-SM(IPv6)适合规模较大、组成员相对比较分散的网络;PIM-DM(IPv6)适合规模较小、组播组成员相对比较集中的网络。

  • MLD SnoopingMLD Snooping功能可以使设备工作在二层时,通过侦听上游的三层设备和用户主机之间发送的MLD报文来建立组播数据报文的IPv6二层转发表,管理和控制组播数据报文的转发,进而有效抑制组播数据在二层网络中扩散

  • BIERv6BIERv6技术保留了BIER技术的优势,利用IPv6可扩展的能力,实现了组播路由技术在IPv6网络场景下的新应用。具有易部署、智能化、高可靠性三大特点。

 

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

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

相关文章

mysql如何开启远程访问?

MySQL是一种常见的关系型数据库管理系统,广泛应用于各行各业。默认情况下,MySQL仅允许本地访问,即只能在本地主机上进行数据库操作。有时候我们需要通过远程连接访问MySQL数据库,以便实现更灵活的管理和操作。本文将介绍如何在MyS…

HTML静态网页成品作业(HTML+CSS)——原神介绍设计制作(4个页面)

🎉不定期分享源码,关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 🏷️本套采用HTMLCSS,未使用Javacsript代码,共有4个页面。 二、作品演示 三、代…

如何恢复未保存的Word文档

Microsoft Word 是世界上最流行的软件之一。它不仅是各行业提高生产力的利器,而且广泛应用于我们的日常生活中。因此,当您发现自己工作了数小时和数天的word doc文档被意外未保存、删除或丢失时,大多数人可能都知道恐慌和绝望。 今天我们将向…

HelpLook VS GitBook:知识库优劣详解

在信息爆炸的时代,企业要保持竞争优势,就必须善于管理和利用内部的知识资产。企业知识库作为一种集中存储和共享知识的工具,正在成为现代企业不可或缺的一部分。 HelpLook和Gitbook是提供专业知识库的两个平台,也被大众熟知。它们…

Spring Boot 配置热部署

前言 对于 Spring Boot 项目之中, 在刚开始学习的时候, 每当代码进行变动的时候, 想要生效那就必须要手动重启. 为什么要重启呢 ? 原因在于写的代码是依靠运行之后的 class 文件运行的, 当我们的代码更新以后, 如果不去手动重启, 那么就无法生成新的 class 文件, 执行的就是旧…

Python与FPGA——图像锐化

文章目录 前言一、图像锐化二、Python robert锐化三、Python sobel锐化四、Python laplacian锐化五、FPGA sobel锐化总结 前言 在增强图像之前一般会先对图像进行平滑处理以减少或消除噪声,图像的能量主要集中在低频部分,而噪声和图像边缘信息的能量主要…

结构体:位段(C语言进阶)(二)

目录 前言 2、位段 2.1 什么是位段 2.2 位段的内存分配 2.3 位段的跨平台问题 2.4 位段的应用 总结 前言 C语言除了有其内置类型,还有自定义类型。因为在实际运用中,我们可能会遇到一类数据,它的内容是由多种数据组成的,例如&…

27.基于springboot + vue实现的前后端分离-网上租赁交易系统(项目 + 论文)

项目介绍 本课题是根据用户的需要以及网络的优势建立的一个基于Spring Boot的网上租贸系统,来满足用户网络商品租赁的需求。本网上租贸系统应用Java技术,MYSQL数据库存储数据,基于Spring Boot框架开发。在网站的整个开发过程中,首…

centos离线安装 k8s (实操可用)

全部安装包rpm下载(已整理好k8s和docker):链接:https://pan.baidu.com/s/1ATv8BPijhvIKWz4hMnkx6Q?pwdt5db 提取码:t5db 将文件下载以后,解压到服务器 #执行所有docker-rpm包 yum -y localinstall *.rpm…

【你也能从零基础学会网站开发】Web建站之HTML+CSS入门篇 CSS层叠样式表语法基础

🚀 个人主页 极客小俊 ✍🏻 作者简介:web开发者、设计师、技术分享 🐋 希望大家多多支持, 我们一起学习和进步! 🏅 欢迎评论 ❤️点赞💬评论 📂收藏 📂加关注 什么是CSS?…

【机器学习】详解正则化思想

我们的生活当中真正有意义或者有价值的部分可以概括为两句话:一句话是:弄清楚某个东西是怎么一回事,另一句话是,弄清楚某个东西是怎么一回事。头一句话,我们弄清楚的那个东西对于我们而言是未知的,但是已经…

(学习总结)如何使用ChatGPT API训练自定义知识库

第一步: 安装OpenAI、GPT Index、PyPDF2和Gradio库 pip install openai pip install gpt_index pip install PyPDF2 pip install gradio 第二步:用VScode代码编辑器写app.py代码 记得替换api密钥 from llama_index import SimpleDirectoryReader, …

企智汇:引领企业项目管理的数字智能化管理系统工具!

随着数字化时代的来临,企业对项目管理的要求也日益增高。面对日益复杂的业务流程和海量数据,如何有效地管理项目、整合资源、优化流程、提高管理效率,成为了摆在企业面前的重要课题。在这样的背景下,专业做了10年项目管理系统的&a…

提高数字化处理质量和效率:重视OCR软件的识别准确率

在当今数字化时代,纸质文件的数字化处理变得尤为重要。而作为纸质文件数字化的关键工具之一,OCR(Optical Character Recognition,光学字符识别)软件的识别准确率对于将大量纸质文件转为Excel具有至关重要的地位。本文将…

Uninty 鼠标点击(摄像机发出射线-检测位置)

平面来触发碰撞,胶囊用红色材质方便观察。 脚本挂载到胶囊上方便操作。 目前实现的功能,鼠标左键点击,胶囊就移动到那个位置上。 using System.Collections; using System.Collections.Generic; using UnityEngine;public class c6 : MonoBe…

2024年AI辅助研发的技术革新与应用展望

文章目录 每日一句正能量前言AI辅助研发的技术进展全球AI应用呈现出百家争鸣、百花齐放态势,加速向各行各业渗透AI应用显著促进效率提升,“劳动替代低创造性脑力替代”正在加速形成 面临的挑战与机遇未来趋势预测后记 每日一句正能量 要理解这样的自己。…

智能部署之巅:Amazon SageMaker 引领机器学习革新

本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 亚马逊云科技开发者社区, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道。 (全球 TMT 2023年12月6日讯)亚马逊云科技在 2023 re:Invent 全…

IEEE投稿无法上传文件问题(An error has occurred.Please try again......)

投稿上传手稿出现: An error has occurred. Please try again. If the problem persists, please contact the Support Team for more information and instructions. The Support Teams contact information can be obtained by clicking the ‘Help’ link in the…

24/03/07总结

esayx: 贪吃蛇: #include "iostream" #include "cmath" #include "conio.h" #include "easyx.h" #include "time.h" #define NODE_WIDTH 40 using namespace std; typedef struct {int x;int y; }node; enum direction /…

融资项目——通过OpenFeign在分布式微服务框架中实现微服务的远程调用

1.OpenFeign配置 首先&#xff0c;在需要调用其他的微服务的微服务中引入相关依赖。&#xff08;大多数项目中各微服务需要互相调用&#xff0c;可以直接在每个微服务中引入依赖&#xff09; <!--服务调用--><dependency><groupId>org.springframework.clou…