2025年udp广播和组播区别(udp广播和单播)

udp广播和组播区别(udp广播和单播)p strong 日常的网络编程中 不管是 TCP 还是 UDP 应用程序主要是基于单播 即点对点通信 对组播和广播涉及的相对少 这里先用通俗的例子解析一下这三者的区别 strong p 单播

大家好,我是讯享网,很高兴认识大家。



 <p><strong>日常的网络编程中&#xff0c;不管是TCP还是UDP&#xff0c;应用程序主要是基于单播&#xff0c;即点对点通信&#xff0c;对组播和广播涉及的相对少。这里先用通俗的例子解析一下这三者的区别&#xff1a;</strong></p> 

讯享网

单播:有具体目标地址的帧从源到达目标地址的过程。比如你对张三喊“张三”,哪么只有张三答应你.
多播(组播):帧送往定义在一组内的地址。比如你喊:姓张的请举手,那么只有姓张才会举手回应你,其他不姓张的人,就不会举手。
广播:把帧发往所有能到达的地址。比如你在学校的广播中喊“今天放假”。哪么全校的同学都能听到,然后欢呼。 

特别注意:组播和广播是通过UDP实现的,TCP不支持组播和广播


组播地址范围
组播通信必须依赖于IP多播地址,在IPv4中它是一个D类IP地址,范围从 224.0.0.0到239.255.255.255,并被划分为局部链接多播地址、预留多播地址和管理权限多播地址三类:

局部链接多播地址范围在 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,可限制多播范围。

我们一般使用224.0.0.0~224.0.0.255范围作为组播地址,比如mDNS协议,就使用224.0.0.251固定地址。

单播
每次只有两个实体相互通信,发送端和接收端都是唯一确定的。

广播

  • 主机之间的一对多的通信
  • 所有的主机都可以接收到广播消息(不管你是否需要)
  • 广播禁止穿过路由器(只能做局域网通信)
  • 只有UDP可以广播
  • 广播地址 有效网络号+全是1的主机号
  • 192.168.50.123 —–》 192.168.50.255
  • 255.255.255.255    给所有的网段中的所有主机发送广播,也是只能做局域网通信
  • 需要相同端口

一.广播  (UDP协议)
广播地址:  主机号最大的地址;

以192.168.1.0 (255.255.255.0) 网段为例,最大的主机地址192.168.1.255代表该网段的广播地址 

前面介绍的数据包发送方式只有一个接受方,称为单播
如果同时发给局域网中的所有主机,称为广播
     (同一局域网内的主机都会接收到,如果其他主机没有加入广播站,就会将消息丢弃)

只有用户数据报(使用UDP协议)套接字才能广播
一般被设计为局域网搜索协议   


讯享网

广播的发送者:
广播发送端创建流程
1)广播的发送端流程  —》类似于UDP的客户端

socket                创建套接字
setsockopt         设置允许广播,默认是不允许的
填充接收方的结构体,给sendto使用,指定发送给谁
a。IP    (192.168.50.255255.255.255.255)

b。端口号

sendto               发送数据

 

 

广播的接收者:(不需要设置为广播态)
广播接收端创建流程
2)广播的接收端流程  —–》类似于UDP服务器

socket                创建套接字
填充结构体,
ip:广播ip;
0.0.0.0(将本机所有可用的IP都绑定到套接字上:192.168.50.58,127.0.0.1(本地回环))(本地回环地址给自己发送,本地自测,不走网卡)
端口号,一台主机只能打开一个服务器只用同一个端口号
bind
recv

广播的缺点: 
广播方式发给所有的主机,过多的广播会大量的占用网络带宽,造成广播风暴,影响正常的通信;

组播
广播是给网段内的所有机器发消息     占用网络带宽,影响正常通信
单播是一对一的 
主机之间一对一组的通信模式,也就是说只要加入了同一个小组,那就可以收到发送端的消息
组播地址:D类的224.0.0.1239.255.255.255
224.10.10.10(相当于组名)

。单播方式只能发给一个接收方

。 组播是一个人发送,加入到多播组的主机接收数据

。 多播方式既可以发给多个主机,又能避免像广播一样造成过多的负载:

  第一字节的前四位固定为 1110  

         D类IP  :    224.0.0.1  -  239.255.255.255

                        224.10.10.10

 

socket    创建套接字
填充结构体,给sendto函数使用,指定接收方
IP:组播ip(224.0.0.0239.255.255.255)
PORT:与接收方绑定的一致
sendto 发送数据

代码 

广播接收端

讯享网

广播发送端

 

组播发送端

讯享网

组播接收端

 

小讯
上一篇 2025-04-30 23:19
下一篇 2025-04-25 09:48

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/192192.html