对于IP网络来说,多播是一种强大的工具,它允许一个信源同时向多个目的地分发节目。使用此技术时,产生信号多个副本的大量工作是在网络内部完成的,而不是在发送或接收装置中。总的来说它还比较节约带宽。多播是许多IPTV系统用来分配广播电视节目的其中一种关键技术。
“多个单播”
为理解多播,将它与单播处理相比较是有帮助的。在单播中,视频流作为一系列带一个IP目的地地址的包被发送给一个接受者。码流内的每个包在从信源到IP网络上的目的地的整个路径上流动,如图1所示。
在多播中,如果多个接受者想要同一视频,信源必须为每个接受者产生一个单独的单播码流。这有时被称为“多个单播”,并往往被用于如因特网这样的公共网络。为容纳将被分发码流的所有副本,从信源起的网络连接必须有足够的带宽。
在多播中,从信源发出的一个视频流被同时分发到如图2所示的多个目的地。为每个用户产生码流的负担从视频源转移到了网络。在网络内部,一个称为IGMP(因特网组管理协议)的专门协议允许网络识别正被多播的包,并将它们发送到多个目的地。这是通过给予多播包为多播而保留的专门IP地址而实现的。还有一个称为SAP(会话通告协议)的专门协议,它通知用户应用程序有关某一网络上当前可用的多播。
值得一提的是,就像开路广播一样,IP多播仅仅单向运行。没有集中节目要求或其它来自终点并发回信源的其它信息的内部机制(虽然有一个收集如丢包数等的网络性能统计数据的简单机制)。这意味着终点和视频源之间任何形式的用户交互必须被其它某种机制处理。
多播一个优点是它为用户应用提供它们何时加入和离开多播的控制能力。此控制在网络内部实现;用户添加或从多播离开时,多播源无须采取特别的动作。相比之下,距离用户最近的路由器参与此过程很深。下面我们考察它的工作方式。
加入和离开多播
在开始讨论用户加入和离开一个多播的方式前,首先谈谈他们需要这样做的原因。在多播中,所有用户都同时接收相同的视频流(记住只有一个码流从多播源发出),因此,当用户想看一个多播节目时,他们必须在节目刚好在里面的无论哪个点加入。这完全与电视广播相似,在给定的任何时间用户只能收看从电视台天线发射出来的节目。同样,如果某多播节目已在一个网络上流动,用户有加入或离开该多播的选择权,但他们不能启动它或停止它。在某些情况中,多播节目以连续的循环发送,因此漏过节目开始的那些用户可以只观看他们错过的内容。
当某路由器收到来自一个用户应用的加入多播的请求,它必须做若干工作。首先,此路由器必须决定它是否已在为另一个用户处理多播。如果是的话,该路由器只需做此多播码流的一个副本且将它发送到请求的装置。如果不是,该路由器必须从一个较靠近多播源的装置请求码流。它一开始接收此码流,就能向用户发送它。值得一提的是,在此方案中,请求是从路由器到路由器作出的;此技术可以按需要重复多次,以便找到一个从用户位置到多播源的完整路径。
在此过程中需注意的关键点是每个路由器必须知道在它请求一个来自网络其它地方的副本前,是否已在接收多播码流。如果它正在接收此码流,它必须为新用户产生一个副本。只有不在接收此码流时它才获允许请求来自靠近源的另一路由器的副本。这是多播的优点—多播码流只有一个副本需要被发送到网络上的每个路由器,而且然后仅发送给确使用此码流的用户的路由器(或其它下游路由器)。这意味着路由器之间的带宽得到高效使用。在图2中,码流复制发生于路由器2和路由器4中。将是容纳数百个用户的复杂网络的一个网关的路由器需接收多播码流仅一个副本。将此与单播环境中可能发生的情况相比较:一个支持数百个用户的网关路由器将需要足够容量以便为每个想观看的用户处理一个全视频流。
到现在为止,我们仅仅讨论了加入一个多播的有关问题,但为保持总系统效率不变,离开多播的过程也非常重要。当某个用户应用不再想从一个多播接收数据时,它必须发送一个离开信息到网络。路由器必须停止向用户装置发送码流,该装置的带宽因而可以为其它用户释放。同样地,当一个路由器不再有正在要求码流的用户(或其它路由器)时,它必须通知网络停止发送此码流。图2中,如果用户2停止接收码流,路由器5将不再需要传输此码流,而路由器4会不再需要复制此码流到两个输出端。此离开过程很重要:若用户没有离开多播并断开网络连接的能力,那么一个支持多播的网络可能轻易被无人在观看的码流阻塞。
收听通知
多播源负责周期性地向网络用户群宣布其数据流的可用性,这是靠来自源的被分配的SAP包实现的。SAP包包含关于网络上可用的多播码流的信息,以及为了连接到此多播用户应用所需的信息。
用于接收多播的用户装置收听这些通知,并收集此多播节目的有关信息供用户选择。概念上,SAP类似于许多有线电视系统上广播的电视指南服务。当前正在播放的每个节目及该节目的频道号码都被列出。往往在交互节目指南或媒体播放器内执行的此软件的设计对多播系统的全面成功可能非常重要。一旦用户作出了选择,应用程序就能发出一个加入多播的请求。
值得一提的是公共因特网并不支持多播,因此本文描述的技术主要用在像IPTV分发系统这样的专用网上。令人感兴趣的是,下一代互联网(Internet2)项目支持多播。作者:楼英 杭州电视台技术中心 (DVOL本文转自:中国DV传媒 http://www.dvol.cn)