首页/网络/协议速查/UDP 组播与广播
TCP 与 UDP54 条

UDP 组播与广播

一台主机向多台发送:组播(224.0.0.0/4、ff00::/8)靠 IGMP/MLD 加入组,广播只在本地网段有效;常用于服务发现与流媒体。

协议速查网络更新于 2026-10-13

组播与广播是什么

它们都是一台主机向多台主机发送 UDP 数据的方式。组播把数据发到一个特定组地址,只有通过 IGMP(IPv4)或 MLD(IPv6)声明加入该组的主机才收;广播把数据发到本网段的广播地址,同网段所有主机都会收到,且不能被路由器转发到其他网段。需要发现邻居、推送同一份数据的场景常走组播,广播则多用于老协议的地址发现。

基本信息

IPv4 组播范围224.0.0.0/4
IPv6 组播范围ff00::/8
常见组地址224.0.0.251 是 mDNS,239.255.255.250 是 SSDP
广播地址255.255.255.255 与子网广播地址
加入组的方式应用调用 setsockopt 的 IP_ADD_MEMBERSHIP
二层要求交换机通常需开启 IGMP snooping 才会定向转发

观察与测试组播

观察与测试组播
ip maddr show                          # 本机加入的组地址
ss -uanp | head -20                    # 看 UDP 套接字与进程
socat -u UDP4-RECV:1900,ip-add-membership=239.255.255.250:0.0.0.0 -   # 加入组并接收
ip -4 route show 224.0.0.0/4           # 查组播路由(跨网段需要 PIM)

三种发送方式对照

方式目标能否跨网段
单播单个目标地址可以,按路由转发
组播组地址,需加入组可以,但需组播路由协议支持
广播网段广播地址不可以,路由器默认不转发

典型使用场景

  • 零配置服务发现:mDNS、SSDP 让同一网段的设备彼此发现
  • 局域网音视频分发与直播:一份流量送达多台接收者,省带宽
  • 集群心跳与状态同步:同网段节点用组播广播自身存活
  • PXE 与老协议引导:依赖广播发现引导服务器
  • 监控与遥测推送:向一组采集节点同时下发同一份数据
排查顺序建议从二层往上:先确认交换机是否开启 IGMP snooping、是否配了合适的组播 VLAN,再看三层有没有组播路由(PIM),最后才怀疑接收端代码。云环境通常不提供组播与广播能力,服务发现类协议往往无法跨子网使用,需要改用单播方案。

易错点

  • 组播应用收不到包就先怀疑接收端代码,而实际原因在交换机 IGMP snooping 或缺少组播路由
  • 把公网或跨云当成本地网段来用广播:路由器不转发,链路一通一断都会出现
  • 组播地址选到 224.0.0.0/24 这类本地链路范围却期望跨网段传播
  • 防火墙只放行单播规则,忘了组播是独立的目的地址与控制协议(IGMP、MLD)
  • 组播不可靠且无重传,把关键业务数据直接压在上面而不加应用层确认

数据来源与参考

  • RFC 1112(IP 组播)
  • RFC 4604(IGMP/MLD 使用)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌