多播、组播、广播优缺点分析

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

1.单播:网络节点之间的通信就好像是人们之间的对话一样。如果一个人对另外一个人说话,那么用网络技术的术语来描述就是“单播”,此时信息的接收和传递只在两个节点之间进行。单播在网络中得到了广泛的应用,网络上绝大部分的数据都是以单播的形式传输的,只是一般网络用户不知道而已。例如,你在收发电子邮件、浏览网页时,必须与邮件服务器、Web服务器建立连接,此时使用的就是单播数据传输方式。但是通常使用“点对点通信”(Point
to Point)代替“单播”,因为“单播”一般与“多播”和“广播”相对应使用。

2.多播:“多播”也可以称为“组播”,在网络技术的应用并不是很多,网上视频会议、网上视频点播特别适合采用多播方式。因为如果采用单播方式,逐个节点传输,有多少个目标节点,就会有多少次传送过程,这种方式显然效率极低,是不可取的;如果采用不区分目标、全部发送的广播方式,虽然一次可以传送完数据,但是显然达不到区分特定数据接收对象的目的。采用多播方式,既可以实现一次传送所有目标节点的数据,也可以达到只对特定对象传送数据的目的。
  IP网络的多播一般通过多播IP地址来实现。多播IP地址就是D类IP地址,即224.0.0.0至239.255.255.255之间的IP地址。Windows
2000中的DHCP管理器支持多播IP地址的自动分配。 

3.广播:“广播”在网络中的应用较多,如客户机通过DHCP自动获得IP地址的过程就是通过广播来实现的。但是同单播和多播相比,广播几乎占用了子网内网络的所有带宽。拿开会打一个比方吧,在会场上只能有一个人发言,想象一下如果所有的人同时都用麦克风发言,那会场上就会乱成一锅粥。集线器由于其工作原理决定了不可能过滤广播风暴,一般的交换机也没有这一功能,不过现在有的网络交换机(如全向的QS系列交换机)也有过滤广播风暴功能了,路由器本身就有隔离广播风暴的作用。
  广播风暴不能完全杜绝,但是只能在同一子网内传播,就好像喇叭的声音只能在同一会场内传播一样,因此在由几百台甚至上千台电脑构成的大中型局域网中,一般进行子网划分,就像将一个大厅用墙壁隔离成许多小厅一样,以达到隔离广播风暴的目的。
  在IP网络中,广播地址用IP地址“255.255.255.255”来表示,这个IP地址代表同一子网内所有的IP地址。

=================================================================

当前的网络中有三种通讯模式:单播、广播、组播,其中的组播出现时间最晚但同时具备单播和广播的优点,最具有发展前景。

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

单播的缺点:
1)服务器针对每个客户机发送数据流,服务器流量=客户机数量×客户机流量;在客户数量大、每个客户机流量大的流媒体应用中服务器不堪重负。

2)现有的网络带宽是金字塔结构,城际省际主干带宽仅仅相当于其所有用户带宽之和的5%。如果全部使用单播协议,将造成网络主干不堪重负。现在的P2P应用就已经使主干经常阻塞。而将主干扩展20倍几乎是不可能。

2.广播:
主机之间一对所有的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号,但只将一个频道的信号还原成画面。在数据网络中也允许广播的存在,但其被限制在二层交换机的局域网范围内,禁止广播数据穿过路由器,防止广播数据影响大面积的主机。
广播的优点:
1)网络设备简单,维护简单,布网成本低廉
2)由于服务器不用向每个客户机单独发送数据,所以服务器流量负载极低。

广播的缺点:
1)无法针对每个客户的要求和时间及时提供个性化服务。
2)网络允许服务器提供数据的带宽有限,客户端的最大带宽=服务总带宽。例如有线电视的客户端的线路支持100个频道(如果采用数字压缩技术,理论上可以提供500个频道),即使服务商有更大的财力配置更多的发送设备、改成光纤主干,也无法超过此极限。也就是说无法向众多客户提供更多样化、更加个性化的服务。

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

3.组播:
主机之间一对一组的通讯模式,也就是加入了同一个组的主机可以接受到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。这样既能一次将数据传输给多个有需要(加入组)的主机,又能保证不影响其他不需要(未加入组)的主机的其他通讯。
组播的优点:
1)需要相同数据流的客户端加入相同的组共享一条数据流,节省了服务器的负载。具备广播所具备的优点。
2)由于组播协议是根据接受者的需要对数据流进行复制转发,所以服务端的服务总带宽不受客户接入端带宽的限制。IP协议允许有2亿6千多万个组播,所以其提供的服务可以非常丰富。 

3)此协议和单播协议一样允许在Internet宽带网上传输。

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

时间: 2024-08-22 16:46:50

多播、组播、广播优缺点分析的相关文章

UDP 外网组播 或多播 的问题

问题描述 本人几个问题希望大家帮忙1.udp的外网组播可以吗?他的组播ip地址该咋写?咋获得外网组播ip地址?2.qq群发消息采用的是udp组播吗?网络游戏群发消息采用的是UDP组播吗?3.组播和多播有区别吗?没有积分望大家见谅 解决方案 解决方案二:开玩笑嘞."外网"是什么东西呢?互联网怎么可能出现路由器广播风暴呢?解决方案三:你不妨找一个"TCP/IP原理"的小文章看看,不是那种骗人的标题党式的文章,而是两三千文字的真正的技术的文章,你就会对什么是IP,什么是组

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

单播.多播和广播单播"(Unicast)."多播"(Multicast)和"广播"(Broadcast)这三个术语都是用来描述网络节点之间通讯方式的术语.那么这些术语究竟是什么意思?区别何在? 1.单播:网络节点之间的通信就好像是人们之间的对话一样.如果一个人对另外一个人说话,那么用网络技术的术语来描述就是"单播",此时信息的接收和传递只在两个节点之间进行.单播在网络中得到了广泛的应用,网络上绝大部分的数据都是以单播的形式传输的,只是一

“单播”、“组播”和“多播”

摘自"百度知道",我不知道!   当前的网络中有三种通讯模式:单播.广播.组播(多播),其中的组播出现时间最晚但同时具备单播和广播的优点,最具有发展前景. 一.单播: 主机之间"一对一"的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制. 如果10个客户机需要相同的数据,则服务器需要逐一传送,重复10次相同的工作. 但由于其能够针对每个客户的及时响应,所以现在的网页浏览全部都是采用IP单播协议. 网络中的路由器和交换机根据其目标地址选择传输路径,将IP单播

关于用java实现广播、组播的疑惑

问题描述 主机A和B同连一个无线路由,本人想写个局域网通信的程序.由于主机A和B的ip是由路由动态分配的,我试想通过A发广播,得到B(服务器)的ip.然后问题来了,A无论是广播还是组播,B都收不到数据包.求指点...代码如下packagebroadcast;importjava.io.BufferedReader;importjava.io.IOException;importjava.io.InputStreamReader;importjava.net.DatagramPacket;impo

C++UDP组播编程中,组播地址(组播号)与组播地址的关系是什么?和TCP中IP和端口的关系一样吗?

问题描述 C++UDP组播编程中,组播地址(组播号)与组播地址的关系是什么?和TCP中IP和端口的关系一样吗? C++UDP组播编程中,组播地址(组播号)与组播地址的关系是什么?和TCP中IP和端口的关系一样吗?另外,一台计算机上(不经过路由器或交换机)只能有一个组播吗?急求!!! 解决方案 组播地址和多播地支的关系与TCP中IP和端口的关系不太一样. 首先,网卡查看由信道传送过来的帧,确定是否接收该帧,若接收后就将它传往设备驱动程序.通常网卡仅接收那些目的地址为网卡物理地址或广播地址的帧. 使

Java数据报编程之组播

编程|数据   在信息时代,网络技术应用已经很普通.其中很多应用都依赖于从一个主机向多个主机或者从多个主机向多个主机发送同一信息的能力,在Internet上分发的数目可能达数十万台,这些都需要更高的带宽,并且大大超出了单播的能力.一种能最大限度地利用现有带宽的重要技术是IP组播. 1.IP组播技术的概念 IP组播技术,是一种允许一台或多台主机(组播源)发送单一数据包到多台主机(一次的,同时的)的TCP/IP网络技术,是一点对多点的通信.在网络多媒体广播的应用中,当需要将一个节点的信号传送到多个节

android-Android udp接收不到组播,请问如何解决?

问题描述 Android udp接收不到组播,请问如何解决? 50C 能接收到udp数据,但是接收不到udp组播数据,请各位大神帮帮忙,万分感谢!代码如下: package ncepu.wsy.udp_multicast_server; import java.net.DatagramPacket;import java.net.InetAddress;import java.net.MulticastSocket;import java.sql.Date;import java.text.Si

iOS UDP组播服务端收不到客户端发的数据

问题描述 iOS UDP组播服务端收不到客户端发的数据 客户端可以收到服务器发的数据,反过来不行.我想实现双向多播,理论上是可行的吧? 多播绑定的端口是别人向自己发数据的端口吧?加入的多播组应该是向别人发送数据的地址吧? 使用GCDAsyncUdpSocket,为什么只绑定一个端口就行?不是还要绑定IP吗? 本地Socket的IP.端口与发送的目的IP.端口,有点绕晕了,请高手指教 解决方案 bind绑定的是本地的ip地址和端口, 加入多播组的调用中使用对端向外发送的多播ip(通常是224.x.

udp-PC端用UDP组播文件,android上如何来接收到该文件

问题描述 PC端用UDP组播文件,android上如何来接收到该文件 如题所说,我在PC端用工具将.zip升级包通过命令的方式广播出来,我的android盒子端如何去接收到升级包文件,又如何判断包的完整性 解决方案 http://blog.csdn.net/cuiran/article/details/40558085