多路广播,MULTICAST BROADCAST,是指网络中一个节点发出的信息被多个节点收到。
定义与此相对的有Unicast和Broadcast,前者是指一个节点发出的信息只被一个节点收到,后者是指一个节点发出的信息被子网内所有节点收到。实际上,在数据链路层和网络层都有Multicast,通常所说的Multicast大多是针对IP的。这种技术用于多媒体应用、多用户交互(如聊天室)、软件分发等,相比与传统的Unicast可以大大提高效率。在子网内实现Multicast较为简单,跨越子网时需要路由器、网关等设备的支持。
概念辨析多路广播(multicast)是一个网络上的概念。虽然它不那么好解释明白。但请相信,把它弄明白还是很值得的。
在网络上的主机之间进行通信有三种类型:
1、unicast: 单播,一个计算机与另一计算机通信。
2、broadcast: 广播,一个计算机与本地子网内的所有计算机通信。
3、multicast: 一个计算机可以有选择地与其他计算机进行通信,广域网和局域网都可。
unicast在传统的以太网上,每一个计算机有一个以太网卡,它用作传送器。当计算机要发送数据时,计算机将数据交给网卡,网卡再将数据传到网络上。同时,网卡还接收其他计算机发来的数据,寻找发往本网卡地址的任何东西。当找到发给自己的东西时,就将其进行翻译并提交给操作系统进行处理。这就是unicasting,或称主机对主机的通信。这种通信方式的问题是,如果一个计算机与多个计算机通信,它必须一次一次地进行,每一次只能与一个地址通信。这样占用很多带宽,特别是对于音频、视频等要求高带宽的数据。
broadcast以太网还允许使用一个叫做“广播”的特殊地址进行广播。当数据包冠以该地址时,每一个网卡都接收数据包。翻译数据并提交操作系统进行处理。这对于将一个数据包发往所有的机器或几乎所有的机器来说是成功的。其不好的一面是,通常并不是所有的人都感兴趣。
multicast发送信息的计算机将数据流发往multicast地址。接收计算机将它们的网卡设置成可以接收multicast的地址。这样作可以使一个计算机一次将数据发往多个计算机,而且还可以避免干扰对该数据不感兴趣的计算机。
广域网上的多路广播在Internet上,不用广播通信(broadcast)。随着网络上的主机越来越多,很少有所有人都感兴趣的东西。干扰所有计算机的权利也是一种非常危险的东西。在IP地址中,可以进行广播的能力一半是在子网或局域网上。
虽然大规模不太有用,但广域网上的多路广播(multicast)还是有用的。那就是:它可以将数据发送到一组订户。数据只发送一次,而且只到需要他的地址去。我所喜欢的是,如果没有人订信息,则数据根本不上Internet,而是留在局域网上。
IP多路广播1的实现是通过一组特殊的地址实现的叫做D类地址(224.0.0.0-239.255.255.255)。这些IP地址是特殊的因为它们不对应具体的主机,它们对应groups(组)或称channels(频道)。其中有些地址有特殊的目的。很象人们熟知的TCP和UDP中的端口。其他地址是由用户定义的。常见的IP地址举例如下:
所有IP系统:224.0.0.1
所有IP路由:224.0.0.2
网络时间协议:224.0.1.1
SGI的DogFight游戏:224.0.1.2
Session Directory:224.2.127.254
其中特别有意思的是Session Directory。它是Mbone电视节目预告。该地址用于多路广播发送将要或正在发生于Mbone的时间的信息。其信息每过15分钟重播一次。用户使用Session Directory工具软件接收并显示它播送的信息。
Mbone是multicast backbone(多路广播骨干网)的简称。它是指一个构建于Internet之上的虚拟网。该网是由专门化多路广播路由之间的unicast频道组成的。多路广播信息通过该网传播。该网开始于1988年,作为一个临时措施,直到Internet核心路由可以支持多路广播。
Internet上的多路广播IP仍然有值得研究的地方。其速度很慢。而且Mbone试图将核心路由的核心带宽限制在300 kbps。因此,发布消息必须安排时间表。视频信息很不好。即使是在公司局域网上也还不尽人意,至少需要有一个T1连接。为在Internet上的多路广播提供路由的协议方面还需要作很多工作。
但是事情正在改进。骨干网速度正变得越来越快。随着ASDL、cable modem以及无线接入的采用,进入家庭的速度将有很大的提高。
IP多一路广播协议及应用IP多路广播的产生在Internet应用2中,常常会遇到这样的需求:网上的许多用户,由于某种原因(例如网上国际会议)形成一个群体(一个用户组),群体中的成员为数众多,且地域分布很广,可能不属于同一个物理网络,甚至不属于同一个自治系统.群体中的成员之间交换数据,希望其中某一个用户送出的数据,能够被同“组”的所有其他用户收到。在这种应用中,传统的TCP/IP数据传送方式:单路传送(mmicast delivery)和广播传送( broadcastdelivery)有非常明显的局限性。
单路传送采用端到端的数据传送方式,拥有N个成员的“组”传送一次数据需要N-1次端到端的传送,而且即使有多个成员处于同一个物理子网(注:他们接收的是完全相同的数据)也无法减少传送的次数,而采用广播传送方式则会造成有大量主机收到与自己无关的数据,造成主机资源与网络资源的浪费。
解决的办法就是使网络具备多路广播的能力,允许路由器有选择地将属于某“组”的数据包,一次复制到多个通道上(这些通道连接的网络上,拥有属于该“组”的成员主机),并且当数据包到达该“组”成员主机所属的某个网络时,路由器“广播”该数据包,使得处于该网络上的所有的“组”成员都可以接收到数据包。
IP多路广播的发展IP多路广播的潜力是不容忽视的,随着多媒体技术的飞速发展,实时视(音)频点播、网络推送技术、高带宽分布式数据库、大规模用户软件升级及网上培训等应用的兴起,IP多路广播进入了一个加速发展的新时期。
不断发展的应用不断提出的新的用户需求。新的应用(例如视频点播)需要IP多路广播提供一些新的功能,主要包括:
1)组地址分配
其中包括两个基本点。一是如何“准确”地给一个应用分配唯一的组地址,以避免潜在的组地址冲突;二是如果组地址是动态分配的,那么如何向地域分散的“接收者”们通告这一地址?
IP多路广播不具备地址分配机制,也没有一个明确的建
组(setup)过程.其地址的分配要么依赖于外在的干预(outsideauthority ),要么依赖于应用程序动态的随机产生。因此“接收者”们为了了解地址情况,至少需要从服务器到接收者的一个来回的时间:发送“地址请求”并得到响应。
2)网络间差异的适应能力
在Internet环境中,网络的带宽、速率各不相同,因此同组的主机可能对同一数据流有不同的QoS要求。解决这个间题有两种方法:一是用不同的组传送有不同QOS的数据流,二是对同一数据流中的数据包打上不同的QoS的标记,要求多路广播网关能选取其中合适的部分.这对于象实时视(音)频、图象传送等应用尤其重要。
3)可靠(Reliable)的IP多路广播
网络传箱过程中差错是不可避免的。IP多路广播不保证数据包完整地到达所有的组用户,以及数据包到达的顺序对所有的用户都相同。
有许多应用,包括实时的和非实时的应用,都要求保证从发送者到接收者的可靠传输,如web服务、大规模软件分发等。多路广播的差错检测和恢复机制与单路传翰(unicast)相比有着显著的差别,它与具体的应用要求和网络特性密切相关,包括实时要求、单(多)个发送者、组成员数量及变化尺度、时延要求、平均带宽要求、突发(或持续)带宽使用、网络设备及特性等诸多因素.对可靠IP多路广播的研究已经产生了许多Internet草案(draft),但还没有标准出台。
4)流量控制
对于大数据量多路广播的应用来说,流量控制机制也是必须具备的.流量控制着眼于单位时间间隔内传输的数据量的控制,根据数据包丢失的情况动态地调整传输速度,避免过多的重传,以提高网络效率。
根据不同的应用需求,研究人员作了大量的工作,遵循基本的IP多路广播协议思想,制定一系列的相关标准和协议,以支持多媒体传送和不同服务质量QoS要求,如Real-timeTransport协议(RTP ) 、Real-time Control协议(RTCP ) 、Re-source Reservation协议(RSVP)等,Reliable IP Multicast Protocol和Group Setup Protocol也在讨论之中。
典型应用及模型如何构筑多路广播网络以及多路广播应用的模型是多路广播讨论的热门话题。研究人员提出了各种方案,让我们看看其中一个模型和一个最典型的应用MBONE。
Reliable Adaptive Multicast Model
RFC1458中提出了一个模型,描述了实现可靠多路广播服务的三个基本部分:the Multicast Group Authority (MGA)the Reliable Adaptive Multicast Protocol (RAMP)和经过修改的路由算法。
Multicast Group Authority
MGA提供三个功能:组地址空间管理、服务注册、组成员维护。MGA类似于DNS,是一个树型的结构,由根root管理整个组地址空间。下一级的MGA节点可向上一级申请可用组地址。在每个本地网工作站(树叶)上有一个MGA代理,MGA代理发出的组地址请求将沿着树干一级级传递,直到某一个拥有空闲组地址的MGA节点(也可能是root)为止。上级节点根据分配算法每次分配多个空闲组地址给下级节点,使得下级节点能拥有一定数量的空闲组地址分配给更下一级节点,提高整个分配算法的效率。当root耗尽了所有的空闲组地址,它将发一个请求,请求归还所有未被分配的空闲组地址。
同时,MGA还负责维护所有注册服务的状态和组成员情况。服务提供者必须注册服务,客户端通过MGA了解服务和申请服务,并由MGA负责启动 PATH的建立和撤消。
Reliable Adaptive Multicast Protocol
RAMP是一个传输层协议,用来实现可靠的多路广播传输。RAMP中使用序列号来确定数据包的顺序,并使用一个NAK-based的选择重传方案。就是说,接收者不对正确的传输发送ACK,代之以对错误的传输发送NAK。发送者统计对每一个数据包的NAK,以选择重传方案。当统计数超过某一阈值时,RAMP选择多路广播的方式重传,否则选择对每一个发送NAK的接收者进行单路重传(unicast) 。
同时,这一统计数还被用作流量控制。当NAK统计数持续上升时,将导致发送者降低发送的速率;反之,提升速率。
路由支持
路由算法在原来的IP/Multicast基础上扩充了四个功能:Path Setup, Path Tear-down, Qos-based Routing, QoS-basedPacket Loss。这些扩充可以建立在象RSVP这样的资源预留协议上。路由状态表中既要包含组地址项,又要包含每个发送网络接口上每个组的QoS要求。路由状态表随着组内成员的变化(包括QoS要求的变化)而改变。
路由器根据MGA的请求进行路径的建立和撤消;对某一条路径上的数据包的转发是根据包中QoS域值和路由状态表中QoS设定的比较来决定;当网络拥塞时,路由器根据包中QoS值和优先级决定丢弃数据包的顺序先后,优先级较高的包总是较晚被丢弃,而具有最高QoS值的包总是最先被丢弃。
本词条内容贡献者为:
李宗秀 - 副教授 - 黑龙江财经学院