【博客426】单播 组播 广播

article/2025/4/28 21:09:22

单播 && 组播 && 广播

单播(unicast)

是指封包在计算机网络的传输中,目的地址为单一目标的一种传输方式。
它是现今网络应用最为广泛,通常所使用的网络协议或服务大多采用单播传输,例如一切基于TCP的协议。

下面来看看图1。发送方正在向接收方A发送一个消息,这个消息的传输过程中需要用到二层和三层服务。发送方会通过ARP(地址解析协议)学习到网关的MAC地址,然后把去往除本地子网之外的所有其他网络的IP流量都发给网关/路由器。路由器会查看数据包的目的IP地址,然后根据路由表(第 3 层)中的信息,将数据包转发给下一跳路由器。最终目的路由器收到数据包后,会把它转发给接收方(在本例中也就是接收方 A)。从这个过程中可以看出,发送方从来不会学到接收方A的MAC地址,因为接收方A与发送方并不处于同一个子网中。

在这里插入图片描述
单播示意图:

如果使用单播的话,就需要网络上所有有兴趣收听广播电台的设备上都建立一条独立的会话。如图1-2所示的单播会话,这里有1个发送方和3个接收方。发送方是生成信息的设备,并且把信息通告到一个组中,接收方是收听这个信息的设备。
由于每条数据流都是复制来的,因此发送方必须为每个客户端复制同样的信息,这些网络连接也会占用3倍的带宽。如果只建立低带宽音频会话,并且只有3个用户的话,这倒不是什么大问题;但想想建立上万条或者数百万条会话的情况。为每个客户端复制信息的行为会大大消耗网络资源。
在这里插入图片描述

广播(broadcast)

是指封包在计算机网络中传输时,目的地址为网络中所有设备的一种传输方式。
实际上,这里所说的“所有设备”也是限定在一个范围之中,称为“广播域”。“广播”在网络中的应用较多,如客户机通过DHCP自动获得IP地址的过程就是通过广播来实现的。
但是同单播和多播相比,广播几乎占用了子网内网络的所有带宽。

以太网广播和IP广播的差别非常大。还记得IP数据包(第3层)是封装在以太网数据帧(第2层)中的。每一层都有各自的源地址和目的地址,网络设备对每一层的处理方式也都不同。在IP数据包中,第3层广播目的地址指的是这个地址主机位中的所有主机。也就是说,所有主机可以表示为255.255.255.255。在第2层,表示所有主机的广播地址是ffff.ffff.ffff,交换机在转发这种数据帧时,必须将其复制给所有潜在的接收方,而忽略目的设备的物理以太网段(这一行为被称为泛洪)。如果设备希望与某个IP主机进行通信,但却不知道这个IP主机的目的MAC地址,它就会将IP单播消息封装在表示全部主机的以太网广播数据帧中,并发送出去。同一个以太网段中的所有设备都会收到这个数据包,但只有指定的 IP 主机会对这个数据包进行完全处理并发回响应。事实上,这也正是最初ARP请求看起来的样子。

广播示意图:

如果使用广播的话,广播电台作为发送方必须要连接的会话数量会大大减少,这也就减少了发送方占用的网络带宽;但是在这种情况中,广播电台又面临了另一个难题。参考图1-3,复制数量庞大的数据流所带来的问题消除了,带宽利用率问题解决了,但现在所有设备都会收到广播电台发送的消息,无论这些设备是否有兴趣收听。当广播电台的数量增加时,网络中的每台设备都会收到越来多的可能并不希望收到的信息。所有接收方必须对广播音频流量进行处理,来判断这是不是与自己相关的信息。

“多播” 也可以称为 “组播”

指把信息同时传递给一组目的地址。它使用策略是最高效的,因为消息在每条网络链路上只需传递一次,
而且只有在链路分叉的时候,消息才会被复制。在网络技术的应用并不是很多,网上视频会议、网上视频点播特别适合采用多播方式。因为如果采用单播方式,逐个节点传输,
有多少个目标节点,就会有多少次传送过程,这种方式显然效率极低,是不可取的;如果采用不区分目标、全部发送的广播方式,
虽然一次可以传送完数据,但是显然达不到区分特定数据接收对象的目的。采用多播方式,既可以实现一次传送所有目标节点的数据,
也可以达到只对特定对象传送数据的目的。IP网络的多播一般通过多播IP地址来实现。
多播IP地址就是D类IP地址,即224.0.0.0239.255.255.255之间的IP地址。

多播示意图:

使用组播可以同时解决这两个问题,既能够将发送方需要发送的会话数量降到最低,也能够降低网络负载,从发送诸多条数据流,到只发送一条数据流。同时我们也能保留单播提供的优势,就是只把广播电台数据包发送给想要收听的设备。图1-4描绘了使用组播的环境,发送方只发送一条数据流,并且这条数据流只会被复制给感兴趣的接收方。
在这里插入图片描述
IP组播消息可以跨越三层边界,从一台设备发给多台设备、从多台设备发给多台设备和/或从多台设备发给一台设备。目的节点(接收方)通过发送加入和离开消息,创建出一个按需接收组播流的设备团体。即使需要接收消息的接收方数量庞大,组播也要求发送方只发送一条数据包流,从而优化了网络资源。网络节点或三层设备负责复制消息,并将其引导给接收方。很多应用层程序都利用了组播对于消息流的优化。这些应用层程序也是推动组播在网络架构中发展的主要动力。

一些依赖于组播的常见应用如下所示:

证券交易应用;计算机成像应用;音乐保持(Music on Hold)服务;传感器更新;视频分布;企业网络广播。

总结

IP网络中的3种通信方式为单播、广播和组播。对于不同的应用来说,每种方式都有各自的优点和缺点。组播提供了一种高效的通信机制,能够向位于不同位置的多个接收方发送消息。同时它也支持多对多和多对一的通信。

组播应用通常使用IP上的UDP(用户数据报)协议。源设备(称为发送方)负责发送消息,即使网络中没有其他设备对接受这个信息感兴趣,源也会发送消息(术语称为数据流)。接收方必须向某个组播流进行注册,才能让网络中的设备向它转发这些信息。

用于组播的IP编址也具有唯一性。有很多公有地址和私有地址被分配给不同的应用和服务。在建立组播网络之前,工程师必须先知道计划使用哪些组播地址。


http://chatgpt.dhexx.cn/article/BSavD745.shtml

相关文章

组播广播+数据库操作

广播和组播 数据包在以太网物理介质上传播之前必须封装头部和尾部信息。封装后的数据包称为称为数据帧 ,数据帧中封装的信息决定了数据如何传输。 MAC OUI(24bit) 供应厂商提供(24bit) 单播详细: 在局域网中,所有主机…

组播数据包丢失故障排除指南

介绍 本文档的目的是帮助找出丢失组播数据包的原因并进行一些调整以尽量减少此类丢失。 组播数据包丢失的原因有多种。 UDP 协议本身牺牲了性能的可靠性,并且不保证数据报的传递。 因此,数据包在网络传输过程中可能会丢失。 即使数据包到达网络节点&…

vlc发送组播数据

vlc既是一个播放器,又可以成为一个流媒体服务器。最近需要做udp组播播放相关的东西,需要先在本地搭建一个udp组播服务器,因为机器上本来就装有vlc,所以就用它了。 第一步,设置一个视频源,点击媒体->流&…

组播源不一定属于组播组,它向组播组发送数据,自己不一定是接收者。可以同时有多个...

组播方式传输信息 综上所述,单播方式适合用户稀少的网络,而广播方式适合用户稠密的网络,当网络中需要某信息的用户量不确定时,单播和广播方式效率很低。 IP组播技术的出现及时解决了这个问题。当网络中的某些用户需要特定信息时&a…

组播的网络结构是怎样的?如果没有组成员,组播源会发送数据吗?

一、组播的网络结构是怎样的? 首先,组播传输的特点是单点发送,多点接收。那么我们的组播网络的成员角色是有些,各自有什么分工和作用呢?我们简单参考下图解释: 组播组:用IP组播地址进行标识的一…

委托中的单播以及多播

目录 1.委托的多播 2.编写程序,实现委托的多播。 代码 如下: 单播: 多播: 1.委托的多播 委托对象可使用 “” 运算符进行合并。一个合并委托调用它所合并的两个委托。只有相同类型的委 托可被合并。 “-” 运算符可用于从合并…

单播+组播业务

配置单播业务 组网图 业务规划 业务虚端口1023单播4001(vlan)组播3888gpon0/12/9 2 业务配置 配置DBA模板 MA5800(config)#dba-profile add profile-id 103 type3 assure 102400 max 1024000 配置线路模板 MA5800(config)#ont-lineprofile gpon prof…

4.34、组播(多播)

4.34、多播 1.组播(多播)的介绍①组播地址②如何设置组播(组播的使用) 2.代码编写①服务端②客户端 1.组播(多播)的介绍 单播地址标识单个 IP 接口,广播地址标识某个子网的所有 IP 接口,多播地址标识一组 IP 接口。单播和广播是寻…

组播收发数据

1.流程图总结: 2. 代码: //运行起来一个Sender.exe,和多个Receiver.exe,可以看到组播的效果.//Sender.cpp也可称为服务端 #include <WINSOCK.H> #include <stdio.h> #define HELLO_PORT 7905 #define HELLO_GROUP "228.4.5.6" #pragma comment…

路由-单播、广播、组播

根据目标地址判断 类型 备注 单播 Unicast 发送给单个设备&#xff08;明确目标地址&#xff09; 广播 Broadcast 发送给所属广播域内的所有设备&#xff08;目标地址不明确&#xff09; MAC地址全F&#xff0c;IP地址全1 组播 Multicast 发送给一组目标 MA…

Alitum Designer 出现警告:[Warning] xxx.SchDoc Compiler Net xxx has no driving source

问题描述&#xff1a;Alitum Designer 在进行编译检查时&#xff0c;出现警告&#xff1a;Class Document Source Message Time Date No. [Warning] xxx.SchDoc Compiler Net xxx has no driving source (Pin J1-28,Pin U23-15,Pin U24-3) 20:01:18 2020/11/14 13。 问题分析&…

AD14.3绘制PCB教程

文档下载链接&#xff1a; 点此下载文档&#xff1a;AD14绘制PCB教程_V2.3_20200319.doc 或打开此链接下载&#xff1a; https://download.csdn.net/download/Ace_Shiyuan/12256474或通过如下方法逐步查找&#xff1a; 个人主页 -> 资源 -> AD14绘制PCB教程_V2.3_202…

学习AD常见错误(2)

1、在一个工程里新建多个原理图&#xff0c;会报元器件命名重复的问题 这种时候就要修改该元件的命名&#xff0c;该错误的报错就会消失。 2、问题描述&#xff1a;Alitum Designer 在进行编译检查时&#xff0c;出现警告&#xff1a;Class Document Source Message Time Date…

使用Altium Designer绘制STM32最小系统板及SD卡原理图

目录 一、前言二、AD工程的创建1、创建一个属于我们自己的工程2、元器件的封装 三、原理图绘制1、模块的绘制2、排版与分区3、SD模块的绘制 效果展示总结参考资料 一、前言 在学习了这么久的嵌入式&#xff0c;我们似乎还没有仔细了解过真正的嵌入式系统的原理图&#xff0c;咱…

如何将立创 EDA 的封装导入到 AD/PADS 软件中

立创 EDA,深受个人玩家和学生的喜爱,有现成的封装,再配合立创商城,很便捷。 在公司内部,用的很少,受限于性能、迭代维护等原因。 本文介绍如何将立创 EDA 里面的封装导入到 AD/PADS 中,为我们所用,立创封装一部分来自官方,另一部分来自个人,所以不能过分依赖,保不…

AD学习笔记(一)基础认识

文章目录 AD学习笔记第一讲 AD基础认识一、两库两图&#xff08;分别对应下图&#xff09;1、PCB图&#xff08;pcbdoc&#xff09;2、原理图&#xff08;schdoc&#xff09;3、原理图库&#xff08;schlib&#xff09;4、PCB库&#xff08;pcblib&#xff09; 二、封装1、DIP封…

PCB如何入门---一些经验与教训

从刚接触PCB打板到现在&#xff0c;磕磕碰碰的也是总结了一些经验&#xff0c;供大家参考借鉴一下。 首先&#xff0c;一开始接触PCB的入门&#xff0c;我是从b站上凡亿教育入门的 当然&#xff0c;这里没有打广告的嫌疑哈&#xff01;&#xff01;&#xff0c;这门课用的AD20…

protel dxp2004第三讲之仿真设计

今天给大家讲讲这款软件的仿真设计&#xff1a; Protel DXP 电路仿真概述 基于最新的Spice 3f5 模拟模型和XSPICE Simcode 数字模型仿真内核, Protel DXP 内嵌一个功能强大的A/D 混合信号仿真器,设计人员在进行原理图设计输入后,即可正确地仿真模拟和数字器件而无需通过A/D 转…

AD20安装、新建文件和一个小demo

一、软件的安装&#xff08;20&#xff09; AD20软件的安装包&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1naJ34qKRv0ZjTamTGAA0_w 提取码&#xff1a;dg68 安装步骤&#xff1a; https://mp.weixin.qq.com/s/Z81ajUtaGF149KN_Pe9qpw 二、文件新建过程 可以在电…

Altium Designer 18中的Violations Associated with Documents

Altium Designer 18中“工程选项”对话框“Error Reporting(错误报告)”选项卡第三项错误设置,是Violations Associated with Documents(与文件有关的错误),含有10条错误,如下图所示,软件官网https://www.altium.com/documentation只给出了8条错误说明。 Violations …