网络-单播、多播(组播)和广播的区别

转载声明

本文大量内容系转载自以下文章,有删改,并参考其他文档资料加入了一些内容:

  • 单播、多播(组播)和广播的区别

    • 作者:Roger Luo
    • cnblogs
  • 带你走进网络世界:广播风暴
    • 作者:网络技术栈
    • 出处:百家号

1 概述

单播(Unicast)、“多播/组播”(Multicast)和“广播”(Broadcast)这三个术语都是用来描述网络节点之间通讯方式的术语。那么这些术语究竟是什么意思?区别何在?

2 单播

2.1 概念

网络节点之间的通信就好像是人们之间的对话一样。如果一个人对另外一个人说话,那么用网络技术的术语来描述就是“单播”,此时信息的接收和传递只在两个节点之间进行。

主机之间一对一的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制。如果10个客户机需要相同的数据,则服务器需要逐一传送,重复10次相同的工作。但由于其能够针对每个客户的及时响应,所以现在的网页浏览全部都是采用单播模式,具体的说就是IP单播协议。网络中的路由器和交换机根据其目标地址选择传输路径,将IP单播数据传送到其指定的目的地。

2.2 优点

  • 服务器及时响应客户机的请求
  • 服务器针对每个客户不同的请求发送不同的数据,容易实现个性化服务。

2.3 缺点

  • 服务器针对每个客户机发送数据流,服务器流量=客户机数量×客户机流量;在客户数量大、每个客户机流量大的流媒体应用中服务器不堪重负。
  • 现有的网络带宽是金字塔结构,城际省际主干带宽仅仅相当于其所有用户带宽之和的5%。如果全部使用单播协议,将造成网络主干不堪重负。现在的P2P应用就已经使主干经常阻塞。而将主干扩展20倍几乎是不可能。

2.4 应用

单播在网络中得到了广泛的应用,网络上绝大部分的数据都是以单播的形式传输的,只是一般网络用户不知道而已。例如,你在收发电子邮件、浏览网页时,必须与邮件服务器、Web服务器建立连接,此时使用的就是单播数据传输方式。但是通常使用“点对点通信”(Point to Point)代替“单播”,因为“单播”一般与“多播”和“广播”相对应使用。

3 多播

3.1 概念

“多播”也可以称为“组播”,在网络技术的应用并不是很多,但多播出现时间最晚但同时具备单播和广播的优点,最具有发展前景。

主机之间一对一组的通讯模式,也就是加入了同一个组的主机可以接受到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。

主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。这样既能一次将数据传输给多个有需要(加入组)的主机,又能保证不影响其他不需要(未加入组)的主机的其他通讯。

3.2 优点

  • 需要相同数据流的客户端加入相同的组共享一条数据流,节省了服务器的负载。具备广播所具备的优点。
  • 由于组播协议是根据接受者的需要对数据流进行复制转发,所以服务端的服务总带宽不受客户接入端带宽的限制。IP协议允许有2亿6千多万个组播,所以其提供的服务可以非常丰富。
  • 此协议和单播协议一样允许在Internet宽带网上传输。

3.3 缺点

  • 与单播协议相比没有纠错机制,发生丢包错包后难以弥补,但可以通过一定的容错机制和QOS加以弥补。
  • 现行网络虽然都支持组播的传输,但在客户认证、QOS等方面还需要完善,这些缺点在理论上都有成熟的解决方案,只是需要逐步推广应用到现存网络当中。

3.4 应用

网上视频会议、网上视频点播特别适合采用多播方式。因为如果采用单播方式,逐个节点传输,有多少个目标节点,就会有多少次传送过程,这种方式显然效率极低,是不可取的;

如果采用不区分目标、全部发送的广播方式,虽然一次可以传送完数据,但是显然达不到区分特定数据接收对象的目的。

采用多播方式,既可以实现一次传送所有目标节点的数据,也可以达到只对特定对象传送数据的目的。

IP网络的多播一般通过多播IP地址来实现。多播IP地址就是D类IP地址,即224.0.0.0至239.255.255.255之间的IP地址。Windows 2000中的DHCP管理器支持多播IP地址的自动分配。

4 广播

4.1 概念

“广播”在网络中的应用较多,如客户机通过DHCP自动获得IP地址的过程就是通过广播来实现的。

主机之间一对所有的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号,但只将一个频道的信号还原成画面。

在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机。

4.2 优点

  • 网络设备简单,维护简单,布网成本低廉
  • 由于服务器不用向每个客户机单独发送数据,所以服务器流量负载极低。

4.3 缺点

  • 无法针对每个客户的要求和时间及时提供个性化服务。

  • 网络允许服务器提供数据的带宽有限,客户端的最大带宽=服务总带宽。

    例如有线电视的客户端的线路支持100个频道(如果采用数字压缩技术,理论上可以提供500个频道),即使服务商有更大的财力配置更多的发送设备、改成光纤主干,也无法超过此极限。也就是说无法向众多客户提供更多样化、更加个性化的服务。

  • 广播禁止允许在Internet宽带网上传输。

4.4 应用

但是同单播和多播相比,广播几乎占用了子网内网络的所有带宽,可能形成广播风暴。拿开会打一个比方吧,在会场上只能有一个人发言。想象一下如果所有的人同时都用麦克风发言,那会场上就会乱成一锅粥。

集线器由于其工作原理决定了不可能过滤广播风暴,一般的交换机也没有这一功能,不过现在有的网络交换机(如全向的QS系列交换机)也有过滤广播风暴功能了,路由器本身就有隔离广播风暴的作用。

广播风暴不能完全杜绝,但是只能在同一子网内传播,就好像喇叭的声音只能在同一会场内传播一样,因此在由几百台甚至上千台电脑构成的大中型局域网中,一般进行子网划分,就像将一个大厅用墙壁隔离成许多小厅一样,以达到隔离广播风暴的目的。

在IP网络中,广播地址用IP地址“255.255.255.255”来表示,这个IP地址代表同一子网内所有的IP地址。

4.5 广播风暴

4.5.1 概念

广播风暴(broadcast storm)简单的说就是指整个广播域充斥着大量广播包,同时还不断产生新的广播包(这些广播包被交换机大量复制),这些广播包无法被网络设备处理,并且占用了网络设备的大量网络带宽、系统资源,导致业务不能正常运行,甚至彻底瘫痪,这就是"广播风暴"。

4.5.2 形成原因

4.5.2.1 网络环路

广播风暴的成因就是因为网路中出现了"环路"。

曾经在一次的网络故障排除中,发现一个很可笑的错误,一条双绞线,两端插在同一个交换机的不同端口上,导致了网络性能急骤下降,打开网页都非常困难。这种故障,就是典型的网络环路。网络环路的产生,一般是由于一条物理网络线路的两端,同时接在了一台网络设备中。

那么什么是"环路"?其实这个很好理解,用一根网线连接同一台交换机的两个端口(前提是同一广播域下)这样就形成了环路了,当然也可以用两根网线,分别连接两台交换机上的两个端口,就像下面这个图,这样就形成了环路了。

环路的结构有很多种,但是都有一个共同点,交换机发送一个广播包出去,然后通过某种形式从同一台交换机的另一个接口又接收到,然后该交换机又把这个广播包发送出去,就这样一直死循环下去,这就是环路,也是广播风暴。

另一个A、B、C、D四台交换机形成广播风暴的例子:

  1. 当A接收到一个广播包之后,A会把这个广播包以泛洪(广播)的形式发送出去,意思就是B、D都会接收到这个广播包
  2. B和D又会以泛洪的形式再发送出去给C
  3. C接收到这个广播包之后,会把从D哪里接收到的广播包发送给B,再把B接收到的广播包发送给D,那么B和D就接收到了对方的广播包。
  4. B和D又会把从C那里接收到的广播包发送给A,A又会把广播包发送出去,就这样一直死循环。
  5. 而且交换机每接收发送一次就会产生一个新的广播包。因交换机在广播域内复制交换特性,同一个数据包指数级增加,最终从一个分子形成了破坏一个广播网络的风暴。

4.5.2.2 网络设备原因

我们经常会有这样一个误区,交换机是点对点转发,不会产生广播风暴。我们购买的交换机通常是智能型的Hub,却被奸商当做交换机来卖。这样,在网络稍微繁忙的时候,肯定会产生广播风暴了。

4.5.2.3 网卡损坏

如果网络机器的网卡损坏,也同样会产生广播风暴。

损坏的网卡,不停向交换机发送大量的数据包,产生了大量无用的数据包,产生了广播风暴。

由于网卡物理损坏引起的广播风暴,故障比较难排除,由于损坏的网卡一般还能上网,我们一般借用Sniffer局域网管理软件,查看网络数据流量,来判断故障点的位置。

4.5.2.4 网络病毒

目前,一些比较流行的网络病毒,Funlove、震荡波、RPC等病毒,一旦有机器中毒后,会立即通过网络进行传播。网络病毒的传播,就会损耗大量的网络带宽,引起网络堵塞,引起广播风暴。

4.5.2.5 黑客软件的使用

目前,一些上网者,经常利用网络执法官、网络剪刀手等黑客软件,对网吧的内部网络进行攻击,由于这些软件的使用,网络也可能会引起广播风暴。

4.5.3 网络风暴的解决

4.5.3.1 STP协议

网络协议的出现其实很大一部分原因是修补某些技术所出现的一些缺陷,例如IPv6就是为了弥补IPv4地址数量不足而研发的,RIPv2就是因为RIPv1功能太多限制而研发的。

而STP或RSTP协议也是其中之一,STP或RSTP协议就是为了广播风暴而生的,该协议要求只能有一定量的内容被放出,否者就被限制。

STP协议以网络中一台交换机为节点生成一棵转发树,而树是没有环路的,这样所有的数据都只在这棵树所指示的路径上传输,就不会产生广播风暴(CISCO的路由器中就可以做).

4.5.3.2 VLAN

由于广播包是不能跨网段的,所以一般采用划分VLAN的方式来缩小广播域、抑制广播风暴的产生。

一般来说,推荐一个vlan一个c类网段,也就是254台主机。

VLAN的划分,可以在三层交换机上配置;也可以在网关设备/防火墙设备上进行配置。

4.5.3.3 网卡坏了时及时修复

4.5.3.4 应对病毒和网络攻击

  • 安装杀毒软件
  • 安装防火墙

参考文档

  • 广播风暴的成因以及解决办法有哪些?
  • 广播风暴形成的原因和解决方法

网络-单播、多播(组播)和广播的区别相关推荐

  1. 单播,组播,广播的区别

    单播,组播,广播的区别 单播"(Unicast)."多播"(Multicast)和"广播"(Broadcast)这三个术语都是用来描述网络节点之间通讯 ...

  2. MAC地址,单播、组播、广播的区别

    广播地址 FF:FF:FF:FF:FF:FF 单播地址 前24位为厂商地址:后24位是厂商位网卡制定的唯一编号: 单播地址的特征是头8位的最低位为0:(不需要组播时,通常用单播,注意MAC地址,第一字 ...

  3. IP网络通信的单播、组播和广播

    一.判断两台设备是否在同一局域网内 查看两台设备的ip4地址和子网掩码MASK. 若MASK不一样,则不在同一局域网内. 若MASK一样,分别计算IP&MASK.若二者相同,则在同一局域网,否 ...

  4. 单播、广播、多播(组播)的概念和区别

    单播.广播.多播(组播)的概念和区别 简单理解如下: 1.一台机器和一台机器通信这是单播. 2.一台机器发出的数据包能被多台机器收到这就叫组播. 一个机器发送,多台机器接收,但是又不同于广播, 发送端 ...

  5. Java实现单播,组播,广播

    单播.组播.广播介绍:https://blog.csdn.net/ahou2468/article/details/86526509 目录 1.单播.组播.广播关键类说明 2.单播和广播的具体实现 2 ...

  6. HCIA-RS自用笔记(9)数据转发过程、单播/多播/组播

    数据转发过程(7/13,29min) 网关(Gateway) 不同网络的主机需要通讯,首先要把数据转发给网关,网关代表一条缺省路由 查看Windows主机路由表: C:\Users\Admin> ...

  7. 单播、组播、广播三者之间的区别

    单播.组播.广播其实是IPv4定义的三种流量类型 - 单播流量:一个人发送

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

    单播:在同一网络内,两个设备点对点的通信就是单播通信. 组播:在同一网络可达范围内,一个网络设备与关心其数据的部分设备进行通信就是组播. 广播:在同一网络可达范围内,一个网络设备向本网络内所有设备进行 ...

  9. 【Socket网络编程】5.单播、多播(组播)、广播

    [单播].[多播(组播)].[广播] https://blog.csdn.net/daaikuaichuan/article/details/83474089 ####[单播] 用于两个主机之间的端对 ...

  10. Qt网络编程之搭建Udp通信【单播、组播、广播】

    由于项目的环境实在局域网内进行传输,所以采用了UDP通信.为此记录一下. UDP概念 UDP(用户数据报协议)是一个简单的面向数据报的传输层协议.提供的是非面向连接的.不可靠的数据流传输.UDP不提供 ...

最新文章

  1. 开源自动机器学习(AutoML)框架盘点
  2. vs code中使用Astyle排版C/C++代码
  3. 网卡故障会出现的错误代码_布袋除尘器压差过高就会导致出现故障
  4. ajax表单排序java,java如何区分是form表单请求,还是ajax请求
  5. 被3整除的子序列(简单dp)
  6. 计算机安全监控系统,关于计算机安全监控系统的关键技术
  7. awk按ip统计日志数
  8. 配置WINDOWS群集
  9. python django图书管理系统_Python框架:Django写图书管理系统(LMS)
  10. hashmap containsvalue时间复杂度_不看看HashMap源码,怎么和面试官谈薪资
  11. 【ElasticSearch】es Elasticsearch压测实战 II esrally 进阶实战 笔记
  12. 上传txt生成字典 java_文件上传漏洞fuzz字典生成脚本小工具分享
  13. linux 汇编语言ldreq,请教一个中断句柄的问题 - ARM技术论坛-ARM嵌入式论坛-人气最火爆ARM学习论坛 - 21ic电子技术开发论坛...
  14. java解惑--摘要
  15. 网页中人民币符号的正确输入姿势
  16. getch()功能与用法
  17. 计算机工作原理【操作系统和进程】
  18. Android智能电视焦点控制
  19. vscode连接远程服务器遇到Bad owner or permissions on C:\\Users\\XXX/.ssh/config的解决方法
  20. “2019世界计算机大会”新闻发布会在京召开

热门文章

  1. h5中的结构元素header、nav、article、aside、section、footer介绍
  2. STM32毕业设计项目
  3. 51单片机汇编学习笔记8——中断
  4. meson 交叉编译
  5. 缓和曲线回头曲线交点法坐标计算实例
  6. vmware Please make sure that the kernel module `vmmon? is loaded
  7. python learning note
  8. java选课系统代码_ssm+jsp开发java学生信息与选课系统(优化界面)
  9. DMZ区域的作用与原理
  10. 微信多开源码 android,微信(WeChat)电脑端多开分析+源码