单播,广播和多播

2024-04-09 00:48
文章标签 广播 多播 单播

本文主要是介绍单播,广播和多播,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

单播,广播和多播 

 

一.引言

1.有三种IP地址:单播地址,广播地址和多播地址。

2.广播和多播仅应用于UDP;TCP是一个面向连接的协议,它意味着分别运行于两主机(由IP地址确定)内的两进程(由端口号确定)间存在一条连接.

3.网络中的一条报文是如何传送到主机中的某一个进程的

1>主机网卡仅接收那些目的地址为网卡物理地址或广播地址的报文。(目前大多数的网卡经过配置都能接收目的地址为多播地址或某些子网多播地址的报文)。

2>网卡接收到报文后交付给IP层,IP层通过判断目的IP是否是本地IP地址或多播地址;如果是,则接收,否则丢弃。

3>IP层把接收到的报文传给传输层,传输层通过端口号把报文传给应用层的某一个进程。

二.单播,多播,广播

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

1>单播的优点:

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

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

2>单播的缺点:

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

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

2.广播:有时一个主机要向网上的所有其他主机发送帧,这就是广播。(常见的ARP协议就是利用的广播)。多播的目的物理MAC地址是:0xff,0xff,0xff,0xff,0xff,0xff.

1>广播的优点:

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

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

2>广播的缺点:

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

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

Ø  广播禁止在Internet宽带网上传输(防止引起广播风暴)

4.多播(组播)(multicast)处于单播和广播之间:帧仅传送给属于多播组的多个主机。                       

1>主机之间“一对一组”的通讯模式,也就是加入了同一个组的主机可以接受到此组内的所有数据,网络中的交换机和路由器只向有需求者复制并转发其所需数据。主机可以向路由器请求加入或退出某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。这样既能一次将数据传输给多个有需要(加入组)的主机,又能保证不影响其他不需要(未加入组)的主机的其他通讯

2>组播的优点:

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

Ø  由于组播协议是根据接受者的需要对数据流进行复制转发,所以服务端的服务总带宽不受客户接入端带宽的限制。IP协议允许有2亿6千多万个(268435456)组播,所以其提供的服务可以非常丰富。  

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

3>组播的缺点:

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

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

这篇关于单播,广播和多播的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/886791

相关文章

网络层 VII(IP多播、移动IP)【★★★★★★】

一、IP 多播 1. 多播的概念 多播是让源主机一次发送的单个分组可以抵达用一个组地址标识的若干目的主机,即一对多的通信。在互联网上进行的多播,称为 IP 多播(multicast , 以前曾译为组播)。 与单播相比,在一对多的通信中,多播可大大节约网络资源。假设视频服务器向 90 台主机传送同样的视频节目,单播与多播的比较如下图所示。 下图(a)是视频服务器用单播方式向 90 台主机传

android面试:如何理解 Android 中的广播?

在 Android 中,广播是一种用于在应用程序之间传递消息的机制。它允许应用程序发送和接收全局消息,通常用于通知其他应用或组件某些事件的发生。广播可以是系统广播(由系统发送)或自定义广播(由应用程序发送)。 广播的主要特点: 异步通信:广播是一种异步的通信方式,发送广播的应用不需要等待接收应用的响应。 全局可见:广播可以被系统中的任何应用程序接收,适合用于跨应用的消息传递。 轻量级:广播

Android 接收系统广播,开机启动Service,SMS,Battery

本文内容摘自《疯狂Android讲义 第3版》李刚 著 自动开启的Service: package shortcut.song.com.myapplication;import android.app.Service;import android.content.Intent;import android.os.Binder;import android.os.IBinder;im

Android Ordered Broadcast 有序广播

代码设置IntentFilter: IntentFilter intentFilter = new IntentFilter();intentFilter.setPriority(15);intentFilter.addAction("shortcut.song.com.myapplication.MY_BROADCAST");intentFilter.addCategory

Android BroadcastRecevier广播消息

代码注册Receiver @Overrideprotected void onCreate(Bundle savedInstanceState) {IntentFilter intentFilter = new IntentFilter();intentFilter.addAction("");MyBroadcast myBroadcast = new MyBroadcast();regi

2024全球广播摄像机市场前景如何?IP网络化云端融合趋势加强

一、前言 当前,全球广播电视用户持续向流媒体迁移。大多数国家广播电视台推出独立流媒体平台,流媒体趋势日渐加强。与奈飞等非广电系流媒体平台只提供点播服务不同,广电系流媒体平台一般提供电视频道直播服务、电视回看服务、视频点播服务,与传统电视渠道形成互补,而这些流媒体平台与网络媒体平台所能提供的视频服务存在着非常重合的区域。 (1)流媒体时代加速广播摄像机专业影视化发展 全球广电系流媒体平台竞争力

单播、广播、多播

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

RocketMQ广播消费消息

1、 基础概念 RocketMQ 支持两种消息模式:集群消费( Clustering )和广播消费( Broadcasting )。 集群消费模式(Cluster): 在集群消费模式下,同一个消费者组(Consumer Group)中的每个消费者都会消费消息的一个副本。消息会被分发到不同的消费者实例上,但是同一个消息只会被同一个消费者组中的一个消费者消费。 广播消费模式(Broadcast)

IOS消息分发(广播)机制

在IOS中,提供了通知机制(Notification),可以在对象间传递和接受信息。传递和接受信息的对象间甚至不需要知道对方的存在。究其本质来说,其实是设计模式中的观察者模式的应用。 通知机制 设想这么一个场景:我开发了一款pdf阅读器,当手机上的另一个App打开pdf文件时,通过Open in,选择我的pdf阅读器打开。这时候我的pdf阅读器会被lanuch,同时在其App deleg

神奇的android广播

最近用了android的广播,个人感觉非常好用: 首先在你要接收的地方注册一个: context.registerReceiver(myReceiver, new IntentFilter("com.shic.action.d")); 然后就是定义注册的这个,在接收到广播后执行的操作: BroadcastReceiver myReceiver = new BroadcastRecei