首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

广播、组播、单播区别与联系

一、单播、组播、广播区别与联系

单播:在同一网络内,两个设备点对点的通信就是单播通信。

组播:在同一网络可达范围内,一个网络设备与关心其数据的部分设备进行通信就是组播。

广播:在同一网络可达范围内,一个网络设备向本网络内所有设备进行通信就是广播。

具体如下:

简单地说,单播->组播->广播,是通信数量不断增加的通信方式。当然,通信数量的增多,带来的是通信设备的资源消耗更大,整体网络环境的复杂度更高。

通常,我们使用组播、广播完成两件事:

1)将同一份数据交互到多个目的地。比如,视频会议、新闻分发,都需要将一份数据同时传输到多个设备上,供大家使用。

2)通过客户端请求或发现服务器。有时,我们并不知道服务器的具体信息(如IP地址),这时,我们可以采取“盲发”的方式去广播或组播信息,等待服务器收到消息盲发的消息后,返回数据,如此找到对应目标设备。

众所周知,TCP是可靠传输(先与另一个通信端点建立可靠连接,再传输数据),因此TCP一般只支持单播这种通信方式,而DUP通信不需要建立连接就可以发送数据,因此,通常我们说的广播、组播,都是在UDP下概念。

此外,广播又可以分为两类:本地广播、定向广播。

1)本地广播:广播地址为255.255.255.255.

2)定向广播:广播地址类似192.168.4.255.

二、组播实现介绍

组播的实现就略微复杂了,要实现组播,至少要经过以下步骤:

1)建立socket_fd

2)socket_fd和指定本地端口绑定

3)加入一个组播组

4)通过sendto / recvfrom进行数据的收发

5)离开组播组

6)关闭socket

注意:服务器和客户端必须都要加入相同的组播地址才可以。涉及到的socket属性主要是以下三个:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20230506A062RG00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券