跳转至

单播、广播、组播到底有什么区别?

在嵌入式领域中,也会遇到关于网络方面的知识,在做网络视频、音频流、物联网通信,甚至调试路由器、交换机时,我们经常会听到三个词:

单播、广播、组播,很多人“听过、用过”,但真要问它们的区别、适用场景、为什么有的能用有的不能用,反而说不清楚。

刚好最近又接触它们几个,今天就记录下这篇文章,我们就用尽量不抽象、不拗口的方式,一次把这三个概念讲明白。

1. 单播 (Unicast)

单播 = 点对点通信

你给“某一个确定的设备”发数据,只有它能收到。

就像你打电话给一个人,其他人听不到。

一个源 IP → 一个目标 IP

比如,打开的网页,SSH登录服务,RTSP单路视频拉流,手机访问云端等等,都是属于单播的例子。

单播优缺点:

优点:简单直观,几乎不会被网络拦截

缺点:一对多时候效率低,如果有100个客户要看同一个视频,那么服务器需要发送100份,占用带宽。

单播很明显适合这种私聊,不适合群发。

2. 广播 (Broadcast)

广播 = 一喊,所有人都能听见

你发一个包,整个局域网内的所有设备都会收到,不管它们想不想要。

一个源 IP → 广播地址(如 255.255.255.255 或网段广播)

比如:

在ARP请求过程中,这是谁的IP,这种非常常见看到的一种广播;

DHCP获取IP地址,

局域网发现设备,在嵌入式设备中,常常遇到私有协议进行设备扫描发现,一般都是采用广播方式;

广播优缺点:

优点:不需要知道对方是谁,所有人都能收到

缺点:所有设备都会被受到打扰,网络规模大,可能产生广播风暴;同时无法跨路由器传播;

广播只适合短时间,小范围的网络发现

3. 组播 (Multicast)

为什么需要组播?

在音视频中,视频的传输场景,如果一个视频源,需要多个设备看,并且内容完全一样,如果通过单播,需要发送10路,50路等这样的数据没这样非常浪费带宽,于是有了组播去解决这个问题。

组播 = 只发一份,想要的设备自己来加入

一个源 IP → 一个“组播地址” 接收端通过协议“声明自己要接收”

组播地址:

224.0.0.0 ~ 239.255.255.255

例如:

  • 239.1.1.1
  • 224.1.2.3

这些地址不是某一台设备,而是一个“组”。

关键问题:设备如何加入组播?

加入组播,就好比微信群聊如何我如何加入这个群聊。

交换机 / 路由器据此决定:

  • 哪些端口需要转发
  • 哪些端口可以丢弃

📌 没有 Join,就收不到组播数据

4. 单播,组播,广播对比

类型 通信关系 接收范围 是否跨网段 典型用途
单播 一对一 指定设备 ✅ 可以 Web、SSH、RTSP
广播 一对所有 整个局域网 ❌ 不行 ARP、DHCP
组播 一对多 只给加入者 ⚠️ 需配置 视频流、会议、数据分发

在现实过程中,往往遇到单播是可以,组播却不行,关于更多组播的内容将在下一章节细讲。