当前位置: 首页 > news >正文

【Linux C | 网络编程】多播的概念、多播地址、UDP实现广播的C语言例子

😁博客主页😁:🚀https://blog.csdn.net/wkd_007🚀
🤑博客内容🤑:🍭嵌入式开发、Linux、C语言、C++、数据结构、音视频🍭
🤣本文内容🤣:🍭介绍 🍭
😎金句分享😎:🍭你不能选择最好的,但最好的会来选择你——泰戈尔🍭
⏰发布时间⏰:

本文未经允许,不得转发!!!

目录

  • 🎄一、多播概述
  • 🎄二、多播地址
    • ✨2.1、IPv4 多播地址
    • ✨2.2、IPv6 多播地址
  • 🎄三、多播的过程
  • 🎄四、UDP实现多播的例子
  • 🎄五
  • 🎄六、


在这里插入图片描述

🎄一、多播概述

在网络编程中,有三种常见的通信方式:单播、广播、多播(组播),这三种方式对比如下表:

类型IPv4IPv6TCPUDP所标识接口数递送到的接口数
单播支持支持支持支持一个一个
广播支持支持全体全体
多播可选支持支持一组整个组

多播的概念
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)。


✨2.2、IPv6 多播地址

IPv6多播地址的高序字节值为ff
下面是若干特殊的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多播地址。

在这里插入图片描述

🎄三、多播的过程

在这里插入图片描述

🎄四、UDP实现多播的例子

在这里插入图片描述

🎄五

在这里插入图片描述

🎄六、

在这里插入图片描述
如果文章有帮助的话,点赞👍、收藏⭐,支持一波,谢谢 😁😁😁

http://www.lryc.cn/news/312621.html

相关文章:

  • HarmonyOS NEXT应用开发案例——滑动页面信息隐藏与组件位移效果
  • ffmpeg 转码过程中参数含义
  • 探索c++——了解c++的魅力
  • Oracle常用语句语法
  • 时隔n年再度会看Vue,Git
  • SpringCloud-Zuul网关的使用
  • mysql 中的一些重要函数
  • windows11配置电脑IP
  • 【JavaEE】_前端POST请求使用json向后端传参
  • 大语言模型系列-GPT-2
  • 30m二级分类土地利用数据Arcgis预处理及获取
  • LeetCode-22题:括号生成(原创)
  • 如何应对IT服务交付中的问题?看了本文DevOps就懂了
  • Ubuntu23.10禁用Wayland
  • Sora: 大型视觉模型背景、技术、局限性和机遇的综述
  • 比较 2 名无人机驾驶员:借助分析飞得更高
  • Vue开发实例(六)实现左侧菜单导航
  • [嵌入式系统-37]:龙芯1B 开发学习套件 -6-协处理器CP0之CPU异常处理与外部中断控制器的中断处理
  • 前端实现一个绕圆心转动的功能
  • 【vue.js】文档解读【day 2】 | 响应式基础
  • element-ui radio 组件源码分享
  • 1-安装rabbitmq
  • C/C++编程-理论学习-通信协议理论
  • 【Apache Camel】基础知识
  • Python之访问集合的迭代器
  • 【Spring连载】使用Spring Data访问 MongoDB----对象映射之基于类型的转换器
  • 在ubuntu上安装hadoop完分布式
  • Python 语句(二)【循环语句】
  • (3)(3.3) MAVLink高延迟协议
  • 【异常处理】Vue报错 Component template should contain exactly one root element.