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

摘自"百度知道",我不知道!

 

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

一、单播:

主机之间“一对一”的通讯模式,网络中的交换机和路由器对数据只进行转发不进行复制。

如果10个客户机需要相同的数据,则服务器需要逐一传送,重复10次相同的工作。

但由于其能够针对每个客户的及时响应,所以现在的网页浏览全部都是采用IP单播协议。

网络中的路由器和交换机根据其目标地址选择传输路径,将IP单播数据传送到其指定的目的地。

单播的优点:

1. 服务器及时响应客户机的请求

2. 服务器针对每个客户不通的请求发送不通的数据,容易实现个性化服务。

单播的缺点:

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

2. 现有的网络带宽是金字塔结构,城际省际主干带宽仅仅相当于其所有用户带宽之和的5%。如果全部使用单播协议,将造成网络主干不堪重负。

现在的P2P应用就已经使主干经常阻塞,只要有5%的客户在全速使用网络,其他人就不要玩了。而将主干扩展20倍几乎是不可能。

 

二、 广播:

主机之间“一对所有”的通讯模式,网络对其中每一台主机发出的信号都进行无条件复制并转发,所有主机都可以接收到所有信息(不管你是否需要),由于其不用路径选择,所以其网络成本可以很低廉。

有线电视网就是典型的广播型网络,我们的电视机实际上是接受到所有频道的信号,但只将一个频道的信号还原成画面。

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

广播的优点:

1. 网络设备简单,维护简单,布网成本低廉

2. 由于服务器不用向每个客户机单独发送数据,所以服务器流量负载极低。

广播的缺点:

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

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

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

也就是说无法向众多客户提供更多样化、更加个性化的服务。

3. 广播禁止在Internet宽带网上传输。(杨过注:这一点应该是针对有线电视而言的吧?)

 

三、组播:

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

主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。

这样既能一次将数据传输给多个有需要(加入组)的主机,又能保证不影响其他不需要(未加入组)的主机的其他通讯。

组播的优点:

1. 需要相同数据流的客户端加入相同的组共享一条数据流,节省了服务器的负载。具备广播所具备的优点。

2. 由于组播协议是根据接受者的需要对数据流进行复制转发,所以服务端的服务总带宽不受客户接入端带宽的限制。

IP协议允许有2亿6千多万个(268435456)组播,所以其提供的服务可以非常丰富。

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

组播的缺点:

1.与单播协议相比没有纠错机制,发生丢包错包后难以弥补,但可以通过一定的容错机制和QOS加以弥补。

2.现行网络虽然都支持组播的传输,但在客户认证、QOS等方面还需要完善,这些缺点在理论上都有成熟的解决方案,只是需要逐步推广应用到现存网络当中。

时间: 2025-01-21 11:02:38

“单播”、“组播”和“多播”的相关文章

UDP 外网组播 或多播 的问题

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

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

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

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

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

如何区分相同目的端口的单播与组播数据?

问题描述 建立组播接收socket时需要绑定一个本地端口,可是该socket在接收组播数据的时候还能接收到相同目的端口的单播数据,我该如何区分这两类数据?谢谢! 解决方案 解决方案二: 路过帮顶=============11月6日,论坛升级公告,积分已经做了调整!http://topic.csdn.net/u/20081107/11/b27dc75f-14b1-4594-9de3-5b18d9e36a11.html此次调整增加了两个新的可用分获取渠道:1:帖子被推荐(加精)后,帖主可以获得88分

Java数据报编程之组播

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

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

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

jrtplib 组播- 【愁的肝疼】jrtplib库不能接收组播数据

问题描述 [愁的肝疼]jrtplib库不能接收组播数据 已经憋了1个多月了吧使用jrtplib 无论如何都不能接收组播的数据 单播数据可首发 组播数据可发送 下载了最新版本的 jrtplib-3.9.1在linux下也成功编译了example 示例运行也没啥问题就是组播数据不能接收 我在example1.cpp里添加了 加入组播的代码 也还是不成功 /* Here's a small IPv4 example: it asks for a portbase and a destination a

网络组播视频的转发问题

问题描述 网络组播视频的转发问题 一台设备用组播向其他10台设备发送视频,发现接收的设备的视频都很卡.但用单播向一台设备发送,接收的那一台就不卡,视频清晰.是什么原因? 解决方案 是不是有丢包,网络环境不好

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

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