解析:单播、广播和组播的区别

举报
SUNSKY 发表于 2020/02/13 15:57:03 2020/02/13
【摘要】 IP网络中有3种数据通信方式:单播、广播和组播。单播单播通信位于OSI(开放式系统互联)模型的第3层,基于目的设备的IP地址进行转发。路由器会通过静态或动态的方式学到路由,然后通过查看目的IP地址来转发数据包。OSI第2层使用MAC(媒体访问控制)地址,以另一种机制在设备之间建立通信。下面来看看图1。发送方正在向接收方A发送一个消息,这个消息的传输过程中需要用到二层和三层服务。发送方会通过A...

IP网络中有3种数据通信方式:单播、广播和组播。

单播

单播通信位于OSI(开放式系统互联)模型的第3层,基于目的设备的IP地址进行转发。路由器会通过静态或动态的方式学到路由,然后通过查看目的IP地址来转发数据包。OSI第2层使用MAC(媒体访问控制)地址,以另一种机制在设备之间建立通信。

下面来看看图1。发送方正在向接收方A发送一个消息,这个消息的传输过程中需要用到二层和三层服务。发送方会通过ARP(地址解析协议)学习到网关的MAC地址,然后把去往除本地子网之外的所有其他网络的IP流量都发给网关/路由器。路由器会查看数据包的目的IP地址,然后根据路由表(第 3 层)中的信息,将数据包转发给下一跳路由器。最终目的路由器收到数据包后,会把它转发给接收方(在本例中也就是接收方 A)。从这个过程中可以看出,发送方从来不会学到接收方A的MAC地址,因为接收方A与发送方并不处于同一个子网中。

1581580456185948.png

图1 单播数据包转发案例

广播

大多数不懂技术的人也都知道广播。在这个生活环境中,广播(broadcast)指的是在空中通过电磁波传输的信号。这个信号充斥着整个广播区域,要想收到这个信号,唯一的方法就是调试到正确的频率。在网络领域中,广播是指将一个消息发送给一个子网或二层域中的所有设备,每台设备都有义务查看这个消息,以此来确定这个消息是否是发送给自己的。

注释

 

以太网广播和IP广播的差别非常大。还记得IP数据包(第3层)是封装在以太网数据帧(第2层)中的。每一层都有各自的源地址和目的地址,网络设备对每一层的处理方式也都不同。在IP数据包中,第3层广播目的地址指的是这个地址主机位中的所有主机。也就是说,所有主机可以表示为255.255.255.255。在第2层,表示所有主机的广播地址是ffff.ffff.ffff,交换机在转发这种数据帧时,必须将其复制给所有潜在的接收方,而忽略目的设备的物理以太网段(这一行为被称为泛洪)。如果设备希望与某个IP主机进行通信,但却不知道这个IP主机的目的MAC地址,它就会将IP单播消息封装在表示全部主机的以太网广播数据帧中,并发送出去。同一个以太网段中的所有设备都会收到这个数据包,但只有指定的 IP 主机会对这个数据包进行完全处理并发回响应。事实上,这也正是最初ARP请求看起来的样子。

我们曾经使用路由器或具有三层功能的交换机来分隔广播域,同时保护设备免受多余流量的侵扰。这意味着路由器或三层交换机必须检查以太网头部和IP头部来识别广播消息。如果数据包是一个广播数据包,路由器仍然必须根据目的地址做出转发决策。如果目的地址是本地广播(目标是本地主机),路由器就应该丢弃这个数据包,因为这种地址的格式通常是代表所有主机的广播地址(255.255.255.255)。如果目的地址是定向广播(目标是特定网段或子网中的主机,比如10.1.1.255),路由器可能会将这个广播数据包转发到目标网段,如果路由器本地接口连接这个目标子网,路由器也可能直接做出响应。

组播

组播消息与广播有些类似,是一种效率更高的广播,它是发给一组主机的复制数据包。组播消息与广播消息最主要的区别在于,组播数据流的潜在接收方可以位于不同的网段中,而不用非得位于相同的网段中。网络设备在接收到一个数据包后将其复制,然后把复制数据包从更多个网络接口发送出去,这个过程是理解组播工作原理的关键。路由器和交换机必须复制从源接口收到的数据包,然后把它转发给多个接收方。组播(multicast)中包含一个概念,就是网络设备会根据二层或三层域中的多个接收方,有选择性地学习数据流。组播的数据分发方法优化了带宽利用率,建立了一种高效的数据分发方式。

组播解决了什么问题

组播的目的是把信息发送给一组设备,同时避免发送重复的数据流,因此它节省了宝贵的网络资源,比如带宽利用率。

考虑使用另外两种机制在网络中传输信息——单播和广播。以Internet广播电台传输的信息为例,如果使用单播的话,就需要网络上所有有兴趣收听广播电台的设备上都建立一条独立的会话。如图1-2所示的单播会话,这里有1个发送方和3个接收方。发送方是生成信息的设备,并且把信息通告到一个组中,接收方是收听这个信息的设备。

1581580467610711.png

图2 单播使用多条数据流

由于每条数据流都是复制来的,因此发送方必须为每个客户端复制同样的信息,这些网络连接也会占用3倍的带宽。如果只建立低带宽音频会话,并且只有3个用户的话,这倒不是什么大问题;但想想建立上万条或者数百万条会话的情况。为每个客户端复制信息的行为会大大消耗网络资源。

如果使用广播的话,广播电台作为发送方必须要连接的会话数量会大大减少,这也就减少了发送方占用的网络带宽;但是在这种情况中,广播电台又面临了另一个难题。参考图1-3,复制数量庞大的数据流所带来的问题消除了,带宽利用率问题解决了,但现在所有设备都会收到广播电台发送的消息,无论这些设备是否有兴趣收听。当广播电台的数量增加时,网络中的每台设备都会收到越来多的可能并不希望收到的信息。所有接收方必须对广播音频流量进行处理,来判断这是不是与自己相关的信息。欢迎来到20世纪80和90年代,那时经常会发生广播风暴。

1581580485198321.png

图3 广播

组播来救场了!使用组播可以同时解决这两个问题,既能够将发送方需要发送的会话数量降到最低,也能够降低网络负载,从发送诸多条数据流,到只发送一条数据流。同时我们也能保留单播提供的优势,就是只把广播电台数据包发送给想要收听的设备。图1-4描绘了使用组播的环境,发送方只发送一条数据流,并且这条数据流只会被复制给感兴趣的接收方。

1581580494529396.png

图4 组播

IP组播消息可以跨越三层边界,从一台设备发给多台设备、从多台设备发给多台设备和/或从多台设备发给一台设备。目的节点(接收方)通过发送加入和离开消息,创建出一个按需接收组播流的设备团体。即使需要接收消息的接收方数量庞大,组播也要求发送方只发送一条数据包流,从而优化了网络资源。网络节点或三层设备负责复制消息,并将其引导给接收方。很多应用层程序都利用了组播对于消息流的优化。这些应用层程序也是推动组播在网络架构中发展的主要动力。一些依赖于组播的常见应用如下所示:

  • 证券交易应用;

  • 计算机成像应用;

  • 音乐保持(Music on Hold)服务;

  • 传感器更新;

  • 视频分布;

  • 企业网络广播。

对组播技术细微差别的理解能够让你有效地部署那些将组播作为传输机制的应用和服务。

总结

IP网络中的3种通信方式为单播、广播和组播。对于不同的应用来说,每种方式都有各自的优点和缺点。组播提供了一种高效的通信机制,能够向位于不同位置的多个接收方发送消息。同时它也支持多对多和多对一的通信。

组播应用通常使用IP上的UDP(用户数据报)协议。源设备(称为发送方)负责发送消息,即使网络中没有其他设备对接受这个信息感兴趣,源也会发送消息(术语称为数据流)。接收方必须向某个组播流进行注册,才能让网络中的设备向它转发这些信息。

用于组播的IP编址也具有唯一性。有很多公有地址和私有地址被分配给不同的应用和服务。在建立组播网络之前,工程师必须先知道计划使用哪些组播地址。

在20世纪80年代早期,组播诞生于斯坦福大学的一个研究项目。随着新应用和新服务的开发,以及对安全问题的关注,改进工作持续进行着。


本文节选自《IP组播(第1卷)》


内容简介


本书全面介绍了用于设计、部署和运维当代IP组播网络所需的原理和路由技术。本书分为7章,讲解了组播的概念以及与单播和广播的区别,在网络访问层上的组播概念,在第3层上的组播概念,协议无关组播的工作原理和配置方法,设计IP组播网络时要考虑的问题以及组播网络的适用范围,IPv6组播的概念,IP组播网络的运维和排错等内容。

本书适合网络工程师和架构师、网络顾问以及网络管理人员阅读,本书也是相关专业的读者了解IP组播技术的有益读物。

本文转载自异步社区。

原文链接:https://www.epubit.com/articleDetails?id=NC7E3EF930820000150681090A7001763




【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。