😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀
🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C++、数据结构、音视频🍭
🤣本文内容🤣:🍭介绍 🍭
😎金句分享😎:🍭你不能选择最好的,但最好的会来选择你——泰戈尔🍭
⏰发布时间⏰:
本文未经允许,不得转发!!!
目录
- 🎄一、多播概述
 - 🎄二、多播地址
 - ✨2.1、IPv4 多播地址
 - ✨2.2、IPv6 多播地址
 - ✨2.3、多播地址映射为MAC地址
 
- 🎄三、多播的过程
 - 🎄四、UDP实现多播的例子
 - 🎄五
 - 🎄六、
 
![]()
🎄一、多播概述
在网络编程中,有三种常见的通信方式:单播、广播、多播(组播),这三种方式对比如下表:
| 类型 | IPv4 | IPv6 | TCP | UDP | 所标识接口数 | 递送到的接口数 | 
|---|---|---|---|---|---|---|
| 单播 | 支持 | 支持 | 支持 | 支持 | 一个 | 一个 | 
| 广播 | 支持 | 支持 | 全体 | 全体 | ||
| 多播 | 可选 | 支持 | 支持 | 一组 | 整个组 | 
多播的概念
IP 多播(也称多址广播或组播)技术,是允许一台主机向多台主机发送消息的一种通信方式。单播只向单个IP接口发送数据,广播是向子网内所有IP接口发送数据,多播则介于两者之间,向一组IP接口发送数据。
多播支持IPv4,也支持IPv6。在IPv6中没有广播,认为广播只是特殊(把整个子网视为多播组)的多播。
多播支持UDP,不支持TCP。
多播既可用于局域网,也可用于广域网,而广播一般在局域网使用。
多播的优点
比起广播,多播数据报只会发送到加入多播组的主机,不会像广播那样发给所有主机。
![]()
🎄二、多播地址
多播地址用来标识多播组,IPv4使用D类地址的某一个来表示一个多播组地址,IPv6多播地址的高序字节值为ff。
✨2.1、IPv4 多播地址
IPv4的D类地址(从224.0.0.0到239.255.255.255)是IPv4多播地址,见下图:
 
 D类地址的低序28位构成多播组ID(group ID),整个32位地址则称为组地址(group address)。
IPv4的多播地址可分为三类:
- 链路局部多播地址:
224.0.0.0到224.0.0.255,这是为路由协议和其它用途保留的地址,路由器并不转发属于此范围的IP包; - 预留多播地址:
224.0.1.0到238.255.255.255,可用于全球范围(如Internet)或网络协议。 - 管理权限多播地址:
239.0.0.0到239.255.255.255,可供组织内部使用,类似于私有 IP 地址,不能用于 Internet,可限制多播范围。 
下面是若干个IPv4特殊多播地址,这些地址是由IANA确定的,作为永久主机组:
224.0.0.1    所有组播主机
224.0.0.2    所有组播路由器
224.0.0.4    DRMRP 路由器
224.0.0.5    所有 OSPF 的路由器
224.0.0.6    OSPF 指派路由器
224.0.0.9    RPIv2 路由器
224.0.0.10   EIGRP 路由器
224.0.0.13   PIM 路由器
224.0.0.22   IGMPv3
224.0.0.25   RGMP
224.0.1.1    NTP 网络时间协议
 
✨2.2、IPv6 多播地址
IPv6多播地址的结构如下图,分成4个部分:
- 高位8比特:全部为1,这是固定的,表示这是一个多播地址;
 - 标志4比特:分以下几种取值
0000:众所周知的多播组;
0001:临时的多播组;
0010:表示多播地址是基于某个单播前缀赋予的;
0011:表示基于单播的多播地址总是临时的。 - 范围4比特:可能有以下取值
0:保留。
1:接口本地范围(Interface-Local scope )。
2:链路本地范围(Link-Local scope )。
3:基于单播前缀的地址(Unicast-Prefix-based address )。
4:管理本地范围(Admin-Local scope )。
5:站点本地范围(Site-Local scope)。
6:未分配。
7:汇聚点标记(Rendezvous Point flag )。
8:组织本地范围(Organization-Local scope )。
9-D:未分配。
E:全局范围(Global scope。
F:保留。 - 组ID112比特:低序32位复制到以太网地址的低序32位
 

下面是若干特殊的IPv6多播地址。
ff01::1和ff02::1是所有节点(all-nodes)组。子网上所有具有多播能力的节点(主机、路由器和打印机等)必须在所有具有多播能力的接口上加入该组,类似于IPv4的224.0.0.1多播地址。但多播是IPv6的一个组成部分,这与IPv4是不同的。
尽管对应的IPv4组称为所有主机组,而IPv6组称为所有节点组,它们的含义是一致的。IPv6重新命名意在更为清晰地指出本组包括了子网上的主机、路由器、打印机,以及任何IP设备。ff01::2、ff02::2和ff05::2是所有路由器(all-routers)组。子网上所有多播路由器必须在所有具有多播能力的接口上加入该组,类似于IPv4的224.0.0.2多播地址。
✨2.3、多播地址映射为MAC地址
![]()
🎄三、多播的过程
![]()
🎄四、UDP实现多播的例子
![]()
🎄五
![]()
🎄六、

 如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁
![[OpenWrt 22.03] ttylogin添加登录密码与禁止登录的配置](https://img-blog.csdnimg.cn/direct/3329ac1ee3b44ae08fbbdb3c20f92974.png#pic_center)

















