调度最佳计划数据流的方法和系统的制作方法

文档序号:7741221阅读:203来源:国知局
专利名称:调度最佳计划数据流的方法和系统的制作方法
技术领域
本发明涉及调度最佳-计划(best-effort)数据的文件的发送,用于从源传递到一个或多个目的地或接收者节点。在本发明的说明中,在广播网中使最佳-计划数据与音频-视频信号一起传送。然而,本发明可用应用于其它类型的网络。
背景技术
已知传送“最佳-计划”数据的许多网络,即,在任何给定时刻用系统的最佳调度来传送数据。这种最佳-计划数据不需要按任何给定速率严格地以块的方式来传送,而是可以按任意的、可变的、起伏的速率来传送。一般地说,在网络上传送最佳-计划数据所用的调度不会影响信息的实用性或效用。
通常,要求调度最佳-计划数据的通信,这些数据是可用的或可以检索的和能轻易地成为可用的。
已知可以传送视频或音频信号(下文中,“音频-视频信号“)的数种通信网,诸如地面广播网、电缆网和卫星网。这些网络中的每一个还可以传送数字音频-视频信号。此外,还有可能通过电话网来传送数字音频-视频信号,例如,使用T1(或更高容量的线路)以及所谓的DSL或数字订户环路线路。
在上述的每一种网络中,打算按实时,即,按实时消费量,来传送音频-视频信号。特别,按与信号的消费量(解码和显示)率相匹配的额定率传送数字音频-视频信号。因此,如果按每秒30帧的视频来显示音频-视频信号,则按每秒30帧的速率来额定地传送表示视频的数字信息。然而,在可变地压缩音频-视频信号或它的分量单元流(诸如视频信号、音频信号、闭合-标题文本信号(closed-caption text signal)等)的情况下,实际瞬时比特率实际上是起伏的。因此,在音频-视频信号的接收机/解码器端子处需要一些临时缓冲。这种缓冲器空间具有受限制的、预定的大小,并且严格地控制通过缓冲器的数字信息流(更具体地,控制输入缓冲器或从缓冲器取出每段数字信息的时刻)。因此,可以认为是按传送这些信号的相同速率(大体上)额定地进行消费的。
如上所述,对通过上述网络之一传送的数字音频-视频信号数据进行可变压缩。例如,可以根据下列标准中的任何一种来压缩视频MPEG-1、MPEG-2、MPEG-4、H.263、H.320、JPEG等。同样,可以根据根据下列标准中的任何一种来压缩音频“MP3”(MPEG-1层III)、MPEG-2、AC-3、AC-4、G.720、ATRAC、“MLP”(子午线无损封装(Meridian Lossless Packing))、Delta-Sigma等。如果对音频-视频信号进行可变压缩,则表示“显示单元”或回放时间的给定单元(例如,视频的一个帧或一场、音频帧等)所需要的信息量随显示单元不同而变化。可变地压缩的信号具有定时和调度限制,如在上述引用的申请中所描述。只要说在一个或多个音频-视频信号的多路复用的信号中,每个单元流具有严格的分段方式时间传送调度就够了,必须观察该分段方式时间传送调度而使给定音频-视频信号的正确的实时消费量成为可能。还有,必须小心地保证不会对在流中的给定音频-视频信号的时间戳的相对空间有太大的干扰,而且可以调节这种时间戳的值来反映任何相对运动。
上述网络中的某一些还可以传送最佳-计划(best-effort)数据以及实时数据。这里,最佳-计划数据实际上包括可以与上述限制不相关地传送的任何类型的数据。这种数据可以是,例如,包括可执行的码、电子邮件消息、音乐、视频邮件、“EPG”(电子节目指南)、网页等的一个文件。一般,不是按实时来消费上述类型的每个数据流的,即,大体上如传送那样,或如果按实时执行,则是容许数据流的传送或显示中的暂停的。
国际专利申请号PCT/IB00/00605教导在受让人的zBandTM产品中使用的一种系统。在该系统中,在宽带通信网的头一端处的“调度器”调度各个最佳-计划流的发送,并检索它们而根据调度插入音频-视频信号中。在也使用部分受让人的zBandTM产品的客户设备或节点处接收和存储最佳-计划数据流。客户节点可以使用存储在那里的最佳-计划数据。例如,如果数据是新的“核心图像”或用于操作客户节点的可执行的码,则客户节点执行该码。如果数据是视频文件,则使视频文件可得到而通过客户节点的操作员进行回放。
希望改进这种系统。例如,希望提供文件数据的多个协同操作、自行-配置的源。还希望使最佳-计划数据的可靠传送成为可能。还希望改进客户节点的特征以便于最佳-计划数据接收。
发明概要根据本发明达到这些和其它目标。本发明的应用的说明性环境是一个通信网,该通信网包括把通信信息传送到一个或多个接收者客户节点的多个控制节点。
根据一个实施例,选择控制节点之一为主要控制节点,并选择每个其它控制节点为辅助控制节点。在主要控制节点和每个辅助控制节点建立连接。调度在调度时刻执行的任务。每个任务规定要在特定时刻在特定信道上发送的一个或多个特定节目。节目包括接收者(客户)节点可以按相似方式使用的一个或多个文件的一个组,以及规定接收者(客户)节点使用文件可依据的方式的节目信息。信道是传递节目的特殊路径,并具有规定传递节目的方式的信道信息。可以按由不同信道信息规定的多种不同方式中的一种方式来传递节目。如果任务是通过辅助控制节点中之一来执行的,则主要控制节点发出一个或多个消息到一个辅助控制节点而使辅助控制节点执行该任务。在任务的所调度的时刻,指定的控制节点执行任务,把任务的至少一个节目经由任务的特定信道传递到一个或多个接收者节点。
可以提供具有图形用户接口的操作员控制台,例如,用于调度任务、确定节目和其它任务。根据一个实施例,图形用户接口包括显示屏幕,该显示屏幕具有描绘时间线的第一可显示区域以及邻近第一可显示区域的、描绘多个加标记的方格的第二可显示区域。每个加标记的方格对应于一条信道,并具有始终可见的和可选择而使其余的各个加标记的方格成为可见的一个部分。当一个加标记的方格成为可见时,它挡住其它加标记的方格的其它部分。当选择每个加标记的方格时,每个加标记的方格描绘某种标度的时间间隔。可见的加标记的方格把调度执行的一个或多个任务描绘成在各个方格的一个或多个时间间隔上延伸的实线,以表示执行该任务期间的时间。
解说性地,图形客户接口还可以具有第三和第四显示区域。第三可显示区域描绘可选择信道的分层列表。第四可显示区域描绘所选择的信道的特性,包括规定在相应信道上的通信数据的各个状态的信道信息。根据人工输入,列出在第三区域中的每条信道是可以个别地选择的。第四可显示区域显示当前选择的、第三可显示区域中列出的信道的中无论那一条的特性。另一方面,解说性地,第三可显示区域还可以描绘可选择的节目的分层列表。
根据另一个实施例的,能够使用所接收的节目信息的客户节点具有存储器、通信接口和处理器。通信接口是用于接收节目的,其中每个节目包括经由信道之一在客户节点处接收的一个或多个文件的一个组。信道使客户节点能够在存储器中独立地存储从每条信道接收到的节目信息作为可独立访问的目标。处理器用于处理多个过程,包括中介器(broker)过程和会话管理器过程。会话管理器从对应于信道中的一条特定信道的目标之一检索指定的服务信道、通告其它信道存在的信息以及在每条信道上接收节目的一个调度。会话管理器发出客户签约的每条信道的通告。根据来自会话管理器的通告,中介器对来自客户签约的每条信道的一个或多个(所通告的)节目进行去复用。中介器使用包含在每个经去复用的节目中的每个独立的文件,所述经去复用的节目是由与相应的文件一起携带在节目中的节目信息规定的。
例如,中介器过程可以在由各个节目的节目信息规定的目录中存储每个接收到的节目文件。
解说性地,会话管理器还维持指示了客户签约的每个节目的经签约的节目目标。中介器过程访问经签约的节目目标来确定是否要对来自客户签约的信道中之一的给定节目进行去复用。
解说性地,客户节点还包括显示器和人工输入设备。通告信息指示了客户节点可以签约的每条信道,以及在每条信道上发送每个节目的一个调度。处理器进一步执行引导服务器过程,该过程对客户节点的操作员显示通告信息。引导服务器还通过人工输入设备接收来自操作员的指令,用于对信道中的一些特定信道和可以从信道接收的节目中的一些特定节目进行签约或解除签约。
可以在确定格式的分组中携带节目文件数据。根据一个实施例,在一个或多个分组的序列中携带节目文件数据,其中在从源节点(诸如控制器节点)到接收者节点(诸如客户节点)的一个信号中完整地或以多个分段来传送序列的每个分组。分组序列的第一分组的标头包括节目识别符字段,该字段包括唯一地识别分组序列的节目的节目识别符。分组序列包括包含一个或多个数据三元组的有效负荷,每个数三元组包括标记字段、长度字段和值字段。在标记字段中的标记唯一地识别在值字段中的值,而长度字段中的长度指示了数据字到紧接在后面的数据三元组的偏移。为零的长度表示在该数据三元组后面没有数据三元组。数据三元组序列的值字段包含信息,所述信息用于对在序列的每个分组中的文件数据与最佳-计划节目中之一的相应文件唯一地相关。
解说性地,三元组的值可以指示下列之一(a)对应于文件数据的节目的文件号;(b)文件中的信息的总数量;(c)通过在包含这个三元组的分组中携带的文件数据表示的文件中的偏移;(d)文件的最后写入时间;(e)这个节目预期要传送的文件的总数;(f)文件的文件名或(g)这个文件的任务的识别符。
为了辅助可靠的分组通信,还可以在控制节点和接收者客户节点之间的返回路径上提供网络单元。根据一个实施例,客户节点准备从特定信道接收节目的一个或多个文件的原始数据。客户节点确定没有接收到原始数据的数据字的多个范围。客户节点产生单个分组,该单个分组表示没有接收到数据字的多个范围。然后客户节点在返回路径上把单个分组发送给能够使数据字的多个范围重新发送的另一个节点。
根据另一个实施例,网络单元接收ANAK分组,该分组否定地确认接收到节目的一个或多个文件的数据字的一个或多个范围。网络单元存储与所接收的分组相关的信息,并起动用于ANAK分组的一个定时器。如果在定时器期满之前接收到另一个ANAK分组(该分组否定地确认接收到与以前接收到的ANAK分组的数据字的范围相交的数据字的一个或多个范围),则网络单元统一(consolidate)ANAK分组的范围,并且选择地重置定时器。如果定时器期满,则网络单元导致经统一的范围中的原始数据的所有范围的重新发送。
根据另一个实施例,控制节点在从控制节点到客户节点的前向路径上把包含文件的原始数据的多个分组发送到一个或多个客户节点。控制节点接收一个或多个否定的确认分组,这些分组表示至少一个客户节点没有接收到数据字的一个或多个范围。控制节点以多播方式重新发送多个分组中的每一个分组,所述多个分组包含通过一个或多个分组指示的每个范围中的原始数据。
根据另一个实施例,为了辅助可靠的发送而提供多种类型的分组。每个分组包括源端口字段、目的端口字段以及类型字段。在任选项类型字段中的ANAK值表示分组是指示未能接收其它分组中的原始数据的范围列表的一个异步的否定确认列表分组。这些任选项类型字段中的ACK值表示分组是确认接收到其它分组中的原始数据的肯定确认分组。分组还包括序列号字段,该字段包括不表示任何特定原始数据分组的一个值。
附图简述连同附图,将较佳地理解作为例子给出的、而不打算以此来完全限制本发明而给出的下列详细说明

图1示出根据本发明的一个实施例的一般网络体系结构。
图2示出可以在其中使用本发明的说明性的广播网。
图3说明根据本发明的一个实施例把最佳-计划数据格式化为传输分组。
图4示出最佳-计划数据源210的功能方框图。
图5-8示出与创建服务信道有关的、通过与资源管理器340相关联的图形用户接口显示的不同屏幕的照相。
图9-11示出与创建或修改发送信道有关的、在与资源管理器340相关联的图形用户接口上描绘的一系列屏幕照相。
图12-14示出当创建或修改一条取数信道(fetch channel)时通过与资源管理器相关联的图形用户接口描绘的屏幕照相。
图15-16分别示出可以使用操作员控制台330的GUI显示的一个窗口的左侧和右侧。
图17示出可以在操作员控制台330的图形用户接口上显示的节目检查员方格。
图18示出任务检查员方格。
图19示出客户节点240的说明性功能方框图800。
图20示出用于携带节目的文件数据的分组910的格式。
图21示出通过ABC服务器执行的过程。
图22示出通过客户节点执行的过程。
图23A和图23B示出通过网络单元执行的过程。
图24示出ABC分组的格式。
图25示出ANAK分组的任选项扩展字段的格式。
图27示出ACK分组的任选项扩展字段的格式。
本发明的详细说明网络体系结构如在图1中所示,经由从最佳-计划数据的一个或多个源节点到一个或多个接收者节点3的前向路径2来传送携带分组的最佳-计划数据。接收者节点可以具有到源节点的返回路径4,该返回路径可以与前向路径2不同或相同。可以根据一个实施例提供要在下面详细描述的任选的网络单元节点5,这些节点能够经由路径6至少接收来自接收者节点的消息以及经由路径7把消息发送到源节点。在一个实施例中,网络单元节点5可以把消息直接发送到接收者节点或经由路径8发送给源节点和前向路径2。在另一个实施例中,源节点可以经由路径9把消息发送到网络单元节点5,例如,用于传送到接收者节点3。
图1是一般的网络体系结构。可以使用一台或多台计算机(例如,PC(个人)计算机或其它计算机)以及在源节点处的路由器1、作为前向2和返回路径4两者的广域网(WAN)以及作为接收者节点3的计算机来实际地实现这种网络。WAN可以是因特网的一部分。网络单元5也可以是计算机,而WAN也可以实现路径6、7、8和9。这里作为计算机而实现的节点具有处理器、存储器(诸如盘驱动器之类的持久性存储器,以及诸如RAM之类的易失性存储器)、监视器、人工输入设备(例如,键盘、鼠标、数字小键盘等)、通信设备(例如,电话调制解调器、电缆调制解调器、网络接口卡、数字电视调谐器卡等)以及互连这些设备的总线。
在另一个实施例中,使用适合于发送数字音频-视频信号的广播网来实现本发明。这种网络可以具有用来发送最佳-计划数据的盈余容量。
图2示出可以在其中使用本发明的说明性网络200。图2的网络是电缆、地面或卫星广播配线网(distribution network)。在图2中,广播网200包括头端站201、前向通信路径202、多个远程接收机站203以及WAN返回路径204。头端站解说性地包括最佳-计划数据流服务器210、最佳-计划数据流封装器/注入器节点214、WAN路由器节点216、多个网络单元节点205以及连接这些节点210-216和205的局域网(LAN)218。LAN 218可以是诸如100 BASE-T以太网之类的高速网。封装器/数据注入器节点214可以包括通过位于加利福尼亚的Sunnyvale的一个公司,SkyStream Network Inc.TM(SkyStream网络公司),分发的Source Media RouterTM(源媒体路由器)。这里描述的适用的最佳-计划数据流服务器210可以是除了其它程序之外还运行zBandTMDirectorTM软件的一台或多台PC兼容计算机,它也是由SkyStream Network Inc.TM分发的。下面将更详细地描述这些最佳-计划数据流服务器210。
WAN路由器节点216可以是任何可大批量得到的路由器,诸如通过位于加利福尼亚的San Jose的一个公司,Cisco System Inc.TM分发的7200TM系列路由器。WAN可以是一个能够公开访问的WAN,诸如因特网,或可以是能包括安全防火墙的一个专用WAN,诸如虚拟专用网(VPN)。还可以把返回路径204实施为无线信道,例如,卫星信道、地面信道等。
头端站201还包括连接成接收从封装器/注入器节点214输出的数字信号的调制器220。调制器220可以是用于产生携带由封装器/注入器节点214提供的输入数字信号的一个信号的任何合适的调制器。然后发送经调制的信号。
如在图2中所示,封装器/注入器节点214接收传输流。解说性地,传输流是根据MPEG-2标准形成的传输分组的一个序列。每个传输分组是包含特定单个流的数字信息的一个188字节分组。输入传输流解说性地携带构成一个或多个实时节目的单元流的数字数据。封装器/注入器节点214能够按符合上述严格的定时和调度要求的方式把最佳-计划数据插入如此的传输流。
按特定网络的配套需要,可以实施前向路径203作为空中、空间、同轴电缆、光纤、铜导线和用于在这种物理媒体上携带信号的合适的电子设备的任何组合。
可以使网络单元节点205位于头端站201处或任意地位于一个或多个其它位置处。如果位于其它位置处,则可以经由WAN把它们连接到头端站201。熟悉本技术领域普通技术的人员会理解如下面更详细地描述的使网络单元节点205能够进行通信和操作的网络单元节点205的多个其它位置和物理连接。
每个接收机站203具有一个或多个客户节点240,这些客户节点可以使用运行从SkyStream Network Inc.TM可得到的zBandTMClientTM软件的PC兼容计算机来实施,适用于如下所述。在某些情况中,客户站有一个或多个路由器节点230、260。例如,如果经由卫星接收信号,则路由器节点230可以是从SkyStream Network Inc.TM得到的Edge Media RouterTM。在另外的情况中,客户节点240可以具有安装在其中的数字电视接收卡,诸如可从位于加利福尼亚的Milpitas的一个公司,BroadLogicTM,得到的TerraCast DAT-100TM或Satellite ExpressTM,用于直接接收来自头端站201的经调制的信号。路由器260可以是用于连接返回路径204的WAN路由器。这个路由器260可以与路由器216具有相同的设计。在另外的实施例中,接收机站203具有不同种类的返回路径204,诸如无线返回路径。
在网络200中的通信概述下面描述网络200上的基本通信。使一个或多个数字音频-视频信号输入封装器/数据注入器214。解说性地,输入数字音频-视频信号作为符合MPEG-2的传输流,这是承载音频-视频信号的传输分组的一个交错的序列。每个传输分组是一个具有4字节标头的188字节分组。标头包括13比特长的分组识别符或PID。把每个PID唯一地分配给一个特定的流,例如,单元流或组合音频-视频信号的分量信号。具有给定PID的传输分组只包含特定流的数据。
封装器/数据注入器214找出把其它传输分组插入满足上述分段方式定时和调度约束的传输分组的输入序列的机会。这种传输分组包含通过其它设备提供的数据,诸如最佳-计划数据流源(streamer)210。
图3说明如何把最佳-计划数据格式化成传输分组。通过最佳-计划数据流源210中之一得到给定数据流102的一个X字节的单元。这个信息单元可以简单地是如下产生的所有或部分分组的字节流。然后最佳-计划数据流源210把传输层标头(TH)106和网络层标头(IPH)104附加到信息单元102。传输层标头106可以是UDP或TCP标头。在使用IP管道效应的再另一个变型中,除了网络层标头104之外,传输层标头106还包括第二嵌入网络层(例如IP)标头。示出8字节UDP传输层标头106。此外,网络层标头104是IP标头。IP标头包括源地址以及目的地址,源地址是发送分组的节点的IP地址,目的地址是分配给要接收分组的节点或多个节点的地址。目的地址可以是只分配给单个节点的单一地址,或分配给已经与多播组签约的多个节点的多播地址(multicastaddress)。
然后把包括信息单元102和标头104和106的如此形成的分组经由LAN 218传送到封装器/数据注入器214作为根据以太网物理和链路层协议格式化的一个或多个帧。当这些帧到达时,封装器/数据注入器214简单地提取这些帧中携带的信息。
此后,封装器/数据注入器214根据MPE协议附加12字节MPEG封装(MPE)协议标头112,还可以附加任选的(OPT)8字节长字段108。MPE是通过数字视频广播(DVB)标准团体在标准文件EN 301 192中公布的用于在传输分组中封装数据的一种标准。封装器/数据注入器214使信息单元分段,因此形成184字节长传输分组有效负荷112。封装器/数据注入器214把传输流标头114附加到每个184字节有效负荷上。封装器/数据注入器214把特定的PID插入每个传输流标头114来表示传输分组包含最佳-计划数据。然后封装器/数据注入器214在输出传输流中发送承载最佳-计划数据的传输分组。
调制器220把传输流调制到一条或多条频率信道上。解说性地,调制器220可以接收调制器220可以在其上调制数字信息的每条频率信道的独立的传输流(未示出)。在卫星前向路径的情况中,例如,调制器220可以对传输流进行QPSK调制而调制在范围为950MHz-2,150MHz中的22MHz宽的频率信道上。在地面前向路径203的情况中,例如,调制器220可以分别根据ATSC或DVB标准对信号进行8-VSB或OFDM调制而调制到6、7或8MHz频率信道上。在电缆地面前向路径的情况中,说明性的频率信道是6、7或8MHz,但是可以使用诸如64-QAM之类的其它调制技术。然后经由前向路径202把经调制的信号发送到远程站203。
在远程站203处,配置直接接收经调制的信号的每个路由器节点230或每个客户节点240以调谐到一条特定频率信道。解说性地,路由器节点230的每一个调谐到携带最佳-计划数据的频率信道。路由器节点230或客户节点240对从经调谐的频率信道来的传输流进行解调。然后路由器节点230或客户节点240只滤出已经配置它们来接收的具有特定PID或PID列表中之一的那些传输分组。丢弃或忽略所有其它传输分组。解说性地,配置路由器节点230和客户节点240,以选择具有相同PID(分配所述PID以携带最佳-计划数据)的那些传输分组。路由器节点230或客户节点240从每个有效负荷112再现包含标头和字段110、108、104、106和102的单元的一部分。
接着,路由器节点230或客户节点240检查网络层标头104中的IP目的地址。如果IP目的地址适合于经由LAN通过附加到路由器节点230的客户节点240中之一、或直接接收信号的特定客户节点240接收,则再现来自分组的信息。如果在不同情况下没有识别IP目的地址,则路由器节点230或客户节点240丢弃或忽略单元102-110。在路由器节点230的情况下,经由LAN传送经恢复的信息,用于在合适的附加客户节点处接收。然后处理经恢复的信息的每个客户节点240处理信息,如下所述。
解说性地,每个客户节点240执行操作系统,诸如可从位于华盛顿,Redmond的一个公司,Microsoft CorporationTM,得到的WindowsTM或Windows NTTM,或提供用于“打开”连接和用于接收在这种连接上的数据的软件的LINUX。换言之,为客户节点240提供的软件提供一种方式,用于接收指定到特定IP地址和UDP/IP和TCP/IP端口的信息。对于每个打开的连接,如果它包含合适的地址和端口组合,则数据被自动地接收,并且独立地缓冲每个唯一的连接的数据,并且使之可供由在客户节点上执行的利用其它过程。
当需要时,客户节点240还可以与特定网络单元205通信。客户节点240产生分组,或者是直接发送它们,或者经由附加的路由器260和WAN到适当的网络单元节点205。例如,如果WAN是因特网,则可以使用TCP/IP或UDP/IP来进行通信。网络单元节点205可以使用相似的过程直接与客户节点240通信。同样,如果网络单元节点205位于远离最佳-计划数据源210处,则网络单元可以使用相似的方式与最佳-计划数据源210进行通信。还有可能对于每个上述通信使用无线信道。
控制节点网络可以实施最佳-计划数据源作为合适地编程的服务器的组合、PC兼容计算机、盘驱动器、操作员终端和网络设备。图4示出最佳-计划数据源210的功能方框图,这对于理解它们所执行的功能是有用的。如图所示,通过控制器网301连接三个控制器,即,主要控制器350、第一辅助控制器360以及第二辅助控制器370。每个控制器解说性地具有两种类型的模块,即,“Web”模块352、362、372以及“队列”模块354、364和374。如下更详细的描述,Web模块352、362、372是“集合”模块,即,用于从特定的URL地址的Web网站检索信息进行存储以及可能在较后时间发送的模块。队列模块354、364、374是发送模块,即,用于发送信息的模块。连接到控制器网301的还有操作员控制台330、ABC服务器380以及资源管理器340。还提供数据网302,用于把主要控制器350、操作员控制台330和资源管理器连接到数据库310。熟悉本技术领域普通技术的人员将从这里的讨论迅速地理解,借助于实施为PC兼容计算机,最佳-计划数据流源210可以执行附加的过程和模块。
从下面的讨论将会明白,控制器网301和数据网302不需要,事实上通常不要,对物理网络与不同的链路和物理连接进行区分。而是,例如,把它们实施为在物理链路和物理连接的相同物理网络上的独立的虚拟网。控制器网301用于请求和确认任务、报告事件和登录事件。数据网302用于在需要直接对其访问的单元中间传递数据库信息。
在实施中,单元350、352和354中的每一个都是在单个PC兼容计算机上执行的过程。同样,单元360、362和364中的每一个都是在第二PC兼容计算机上执行的过程,以及单元370、372和374中的每一个都是在第三PC兼容计算机上执行的过程。总起来说,在单个PC兼容计算机上执行的控制器过程350以及与它相关联的Web和队列模块352和354形成部分控制节点。当起动每个控制节点时,起动了控制器过程350、360或370。这个控制器过程350引起Web模块352、362或372以及一个或多个各个队列模块354、364或374。控制过程,例如,控制器360,打开与它引起的、通过内部通信实施的每个过程362和364的通信连接。
一个经起动的控制过程,例如,控制过程350,还搜索已经执行的其它控制过程,例如,通过连接执行控制过程的PC计算机的LAN 218(图2)上的通信。如果没有检测到其它控制过程,则给定控制过程提名它自己为主要控制器。例如,假定首先起动控制器350。当不能检测到其它控制器时,控制器350将提名它自己为主要控制器。
另一方面,如果控制过程,例如,控制过程360,检测到已经执行另一个控制过程,例如,控制过程350,则新的控制过程360打开与其它控制过程350的连接。可以打开这种连接作为使用PC计算机上本地操作系统提供的服务的TCP/IP连接。还打开每个引起模块362和364到主要控制过程350的连接。此外,当添加每个控制过程时,把下一个较低排序的优先级级别分配给它。因此,如果首先起动控制器350,第二起动控制器360,以及第三起动控制器370,则它们的级别按下列排序第一-主要控制器350、第二-第一辅助控制器360、第三-第二辅助控制器370,等等。
一旦打开了主要控制器350和辅助控制器360或370之间的连接,主要控制器350将周期性地发送表示主要控制器350正在运行的“心搏”消息。如果下一个较高级别的控制器,例如,第一辅助控制器360,不能在预定时间间隔中接收到来自主要控制器350的心搏消息,则第一辅助控制器360假定主要控制器350被禁止了。然后第一辅助控制器360将担当主要控制器的作用和执行主要控制器的功能(下面描述)。因此,控制器350、360和370的级别排序定义了在失效情况中的控制器的替代次序。
操作员控制台模块330是在具有监视器和人工输入设备(例如,键盘和指针设备,诸如鼠标)的终端上执行的过程。例如,操作员控制台模块330可以在与主要控制器350相同的PC上执行。另一方面,操作员控制台模块330在地理上远离数据网302和主要控制器350的PC兼容计算机上执行。在这种情况中,操作员控制台330经由WAN与数据网302和主要控制器350进行通信。
还实施资源管理器模块340作为在具有监视器和人工输入设备的终端上执行的过程。为了方便起见,可以把资源管理器340和操作员控制台330安装在相同的PC兼容计算机上。
使用任何高容量存储器件来实施数据库310,诸如一个或多个盘的组以及合适的服务器硬件。再有,可以把数据库模块310结合到与其它单元(例如,操作员控制台330、资源管理器340和/或主要控制器350)的相同的PC兼容计算机中。
实施ABC服务器380作为在PC兼容计算机上执行的过程。例如,ABC服务器380可以在与主要控制器350相同的或不同的计算机上执行。ABC服务器380用于保证到客户节点240的信息传送,并在下面更详细地描述。ABC服务器380与它自己的队列模块384进行通信。
可以通过在LAN或其它网络上进行通信来实施与数据库310、操作员控制台330、主要控制器350和资源管理器340互连的数据网302,这些设备是经由连接附加到网络上的。解说性地,数据库310的所有变化都传递到数据网302上的其它单元330、340和350。因此,如果资源管理器340把变化输入数据库310(把该变化传递到主要控制器350,它把变化写入数据库310),则把变化传递到过程330。因此,操作员控制台330将得到变化的通告,并启动显示或使用到对据库310的变化。
资源管理器——定义信道可以使用资源管理器来设置通信信道。这里,信道是传递最佳-计划数据的一条虚拟路径,并规定传递最佳-计划数据的一种方式。每条信道提供最佳-计划数据的独立接收。实施信道的方便的方式是用不同的IP地址和/或传输层(TCP或UDP)端口。这是因为许多PC兼容计算机的操作系统支持基于这些参数的分组数据的接收和分离。作较少的修改或不作修改就可以容易地利用如此的通信服务。
解说性地,资源管理器340使三种类型的信道(即,传递最佳-计划数据的发送信道、检索和集合来自另一个节点的最佳-计划数据的取数信道、以及发送通告消息的服务信道)的创建成为可能。
图5-8示出通过图形用户接口显示的不同的屏幕照片,所述图形用户接口与同创建服务信道有关的资源管理器340相关联。首先,400是指表示迄今定义的服务、发送和取数信道的层次结构树。其次,401、402和403是指窗口的不同显示视图。特别,当操作员选择不同的标记时,每幅视图表示所显示的窗口。当选择“一般”标记时,在窗口中显示视图401。在视图401中,操作员可以输入服务信道的名称或识别符401-1、服务信道的说明401-2以及服务信道的最大带宽401-3。操作员还可以检查与每个控制器350、360或370相关联的“信道节点”框401-4。如所示,只激励了名称为“agimac”的一个控制器节点,所以只可以指定一个节点。这个较后的信息表示可以指派哪个控制器350、360或370在这个服务信道上发送信息。
当选择“发送”标记时,在窗口中显示视图402。在视图402中,操作员可以指定“信道端点”402-1、内容分组化器402-2、网络协议402-3、目标IP地址402-4、目标IP端口402-5、目标多播生存时间(target multicasttime to live)。信道端点402-1指定哪个节点接收信道上的信息。在视图402中,指定客户节点240。信道分组化器指定把程序文件格式化成分组的协议。分组形成可以在因特网上发送的其它分组的有效负荷,例如TCP/IP、UDP/IP等分组。解说性地,只可以指定这里定义的协议。网络协议402-4是网络层协议,用于发送最佳-计划数据,例如,具有前向纠错的IP多播。这指定了网络层封装,该封装用于携带承载如下所述地格式化的分组的文件数据。目标IP地址402-4和目标IP端口402-5是在用于在该信道上传递而创建的IP分组中指定的IP地址和IP端口。目标多播生存时间402-6用于指定在丢弃一个分组之前要把它保存多久。例如,根据定义“多播TTL”术语和使用这个参数的众知的标准,可以把这规定为跳跃计数。
视图403是用于选择这条服务信道将通告的节目和信道。如所示,提供添加“>”和删除“<”以及添加所有的“所有>”和删除所有的“所有<”按钮,用于选择要通告的特定节目和信道。服务信道是用于携带服务通告消息的特定信道。这种消息遵守服务通告协议(“SAP”)和会话说明协议(“SDP”)。见M.Handley,C.Perkins,E.Whelan的“Session Announcement Protocol”RFC2974(2000年10月);以及M.Handley,V.Jacobson的“SDPSessionDescription Protocol”RFC 2327(1998年4月)。可以通告其它信道以及在这种信道上携带的节目。这里,节目是包含一个或多个文件的组以及节目信息的一个信号,接收者客户节点240可以按相似方式使用所述文件。如下所述,节目信息是表示如何按相似方式使用文件组的元数据。
图9-11示出在图形用户接口上描绘的一系列视图501、502、503和504,所述图形用户接口与同创建或修改发送信道有关的资源管理器340相关联。标号501一般指信道的分层树,示出所选择的名称为“Transmit Channel#1(发送信道#1)”的发送信道。视图502示出当操作员选择标有“General(一般)”的标记时窗口中显示些什么。当选择“General”标记时,操作员可以输入发送信道的名称502-1、说明502-2、最大带宽502-3以及允许在这个发送信道上发送数据的每个控制器350、360或370的检查框502-4。
视图503示出当操作员选择“Transmit(发送)”标记时窗口中显示些什么。在视图503中,操作员可以输入信道端点503-1、内容分组化器503-2、网络协议503-3、信道是否是可靠的503-4、信道是否支持多路复用503-5、签约类型503-6、目标IP地址503-7、目标IP端口503-8以及目标多播生存时间503-9。可以选中多选框503-4,以导致通信使用对下述PGM协议扩展的异步反向信道(ABC)。可以选中多选框503-5,以使信道在相同信道上对两个或多个节目的数据进行多路复用成为可能。当选中时,可以为同时期的通信指定多个节目,其中指定节目的分组在信道上是时分多路复用的。在字段503-6中可以指定的订用签约类型包括“Public(公开的)”、“Private(专用的)”和“Mandatory(强制的)”。强制的签约要求所有客户节点240自动地对这条信道订用,以接收携带在其上的信息。公开的签约使所有客户节点240能接收表示这条信道的可供使用性的通告。然而,不是自动地对该信道订用-客户节点240必须有意地对它们订用,以便是接收携带在其上的最佳-计划数据。向所有客户节点240通告专用订用签约,但是只有某些作为目标的客户节点240可以向它们的操作员显示这条信道的可供使用性。同样,只有作为目标的客户节点240可以对这条信道订用。其它字段503-1、503-2、503-3、503-7、503-8和503-9与上面描述的类似字段相似,所以不再重复对它们的说明。
视图504示出当操作员选择“Advanced(高级的)”标记时窗口中显示些什么。在该视图中,操作员可以指定将包含用于纠错的一致校验信息的所发送组的百分数504-1以及发送一致校验信息的延迟504-2。此外,操作员可以根据表示一个或多个客户没有在这条信道上接收到数据的原始通信的消息来指定到用于重新发送的缓冲器的信息量。这是通过操作员把游标拖动到右边来增加一致校验的量以及拖动到左边以减少一致校验的量而得到的。这依次分别增加或减少“缓冲的时间”值。缓冲的时间值表示缓冲了多少秒的可发送数据,而缓冲的数据量等于这个时间值乘以带宽。
图12-14示出当创建或修改取数信道时通过与资源管理器340相关联的图形用户接口描绘的视图601-603。视图601一般指当操作员选择名称为“Fetch Channel #1(取数信道#1)”的取数信道时的信道的树形层次结构。当选择这条信道时,或当操作员选择而构成新的取数信道时,就显示在视图602或603中示出的窗口。视图602表示当操作员选择标有“General”的标记时窗口中显示些什么。在这个视图中,操作员可以选择或修改名称602-1、说明602-2、最大带宽602-3以及支持这条信道的模块602-4。字段603-4是用于选择特定类型的模块的,即,使用这条信道进行通信的Web模块352、362或372。解说性地,只有web模块352、362或372支持这种类型的信道。操作员还可以选中可以在这条取数信道上进行通信的控制器350、360或370的框602-5。
视图603表示当操作员选择标记“Fire Wall Options(防火墙选项)”时在窗口中显示些什么。操作员可以选中各个框603-1和603-4,并且将信息填入涉及防火墙的使用的字段603-2和603-3(当选中多选框603-1时)、字段603-5和603-6(当选中多选框603-4时)、以及字段603-7的信息。这些选项涉及其它众知的协议,这里不再进行更详细的描述。
当资源管理器340创建信道时,资源管理器340经由控制网301通知主要控制器350。主要控制器350把唯一的32-位信道识别符分配给信道,并经由数据网把与所创建的信道相关联的信息存储在数据库310中。从数据库310把消息传递到与它连接的操作员控制台330、资源管理器340和主要控制器350,表示这条新信道的可用性。
操作员控制台-定义节目和调度任务图15-16分别示出可以使用操作员控制台330的GUI显示的窗口的左侧和右侧。窗口的左侧具有菜单条701、用于显示所定义的信道和节目的分层树的左上侧区域702以及其上的显示变化的左下侧区域703。操作员控制台330的操作员可以选择区域702的分层树中的信道或节目,从而导致在左下侧区域703中显示与所选择的项目相关联的特性。在图15所示出的例子中,在区域702中选择信道“Fetch Channel #1(取数信道#1)”。这导致区域703显示区域703中的这条取数信道的特性。
通过在区域702中显示的分层树中的输入“Program(节目)”上进行选择(右击)可以创建新节目。显示弹出菜单,提示用户选择“New Standard ProgramFile(新标准节目文件)”或“New Web Site Program(新Web网站节目)”。解说性地,支持两类节目,即,标准文件节目(用于携带本地保存文件的节目)以及Web网站节目(必须首先检索然后再作为文件数据发送的Web网站信息的节目)。这导致在区域703中显示节目检查员方格715,如在图17中所示。当显示这个方格715时,操作员可以输入或修改下列节目信息参数节目的名称715-1、节目的说明715-2、通告节目的方式715-8,即,专用、公开或强制、在接收者节点(例如,以接收这个节目为目标、并与这个节目签约的客户节点240)处存储节目文件的目标文件夹715-9、表示是否保存这个节目的交易记录715-11的多选框715-10、期满日期715-12、开始(launch)命令715-13以及主要和次要图像715-14和715-15。节目检查员方格715还显示状态715-3、有效任务715-4(任务的数量,这个节目在所述任务中是当前有效的)、节目大小715-5(要为这个节目传送的所有文件的字节总数),文件计数715-6(要为这个节目传送的文件总数)以及类型信息715-7(标准文件或网站)。当把文件添加到节目中,或在任务中调度节目时,通过数据网302自动地更新这些参数。
通告字段715-8使操作员能够选择节目的订用签约和通告。向所有客户节点240通告强制节目,并且要求所有客户节点240接收节目的文件。向所有客户节点240通告公开节目,并且所有客户节点240可以对其签约。然而,只有与节目签约的客户节点240才能接收和使用该节目的文件。当通告专用节目时,只有特定的、作为目标的客户节点240才可以对其签约。再有,只有签约的客户节点240才能接收和使用这种节目的文件。
目标文件夹字段715-9指定在经签约的客户节点240处的、要把节目文件存储在其中的目录或文件夹。期满字段715-10指定接收节目文件的唯一的版本之后的一个时刻,在该时刻将处理文件作为期满(因此而擦除)。注意,如果在发送之间改变节目,则客户节点将根据经修改节目的接收而重置期满时间戳,从而重新起动期满定时器。
开始命令字段715-13启动节目文件的执行。例如,在Web网站节目的情况中,可以要求输入Web页中之一的URL,这将导致在客户节点240处装载和显示Web网页。主要和次要图像字段715-12和715-13使操作员能够指定表示节目的、要在客户节点240处显示的图标的文件名。
在Web网站节目的情况中,提供两个额外的加标记方格。可以选择这些来显示用于指定Web网站的统一资源定位器(URL)的字段,要对节目提取该Web网站的内容。操作员可以指定的其它特征包括多个URL、要检索的链接Web网页的深度、要具体地包括或排除的链接Web网页、检索Web网页的重试次数以及检索Web网站材料要等待的超时时间。
当操作员控制台330定义新节目或修改现有的节目时,它经由控制器网301把节目的定义或现有节目的修改传递到主要控制器350。主要控制器产生每个新定义的节目的唯一的32-位节目识别符,并经由数据网302把新节目或对于现有节目的修改存储在数据库310中。然后数据库310把节目或节目修改的可用性传递给操作员控制台330、资源管理器340和主要控制器350。
此后,在区域702的分层树中显示节目。操作员可以选择任何节目,例如,修改或显示它的参数。选择节目导致节目检查员方格715的重新显示,从而使操作员能够选择和修改各个可修改的字段715-1、715-2以及715-8到715-13。
还有,一旦定义了节目,操作员就可以选择节目和把文件添加到节目中。为了这样进行,操作员可以选择经定义的节目,然后从菜单条701的“Edit(编辑)”标题下的下拉菜单选择“Add contents(添加内容)”。这导致显示一个浏览窗口,在窗口的左侧具有所有文件夹的分层列表,在窗口的右侧具有当前要传送的节目的所有文件的列表。操作员然后可以在左侧选择所需要的文件,并把它们拖动到右侧,从而导致选择附加的文件使之与节目一起传送。
图16示出时间线区域704,右上侧显示区域705和右下侧显示区域706。在时间线区域中的时间线表示从左侧的较早时间点到右侧的较晚时间点的时间的增进。操作员可以点击左和右箭头706-1或706-2,使所显示的时间线的时间窗口移动到较早或较晚时间。当操作员选择的时间窗口包括当前时间时,可以显示或移动楔形的时间指示器706-3以示出当前时间。
时间线包括描绘时间上等间隔的时间间隔标志706-4。时间线显示的时间窗口的整个时间周期是所显示的时间间隔的、或其部分的时间的总和。操作员可以通过把时间线拖动到左边或右边来改变时间间隔空间。当操作员如此进行时,时间间隔标志706-4移动到较靠近中心处,并从窗口的左和右边缘出现另外的时间间隔标志706-4,或当时间间隔标志706-4远离时间线中心而某些时间间隔标志706-4将从时间窗口的左边缘或右边缘消失。当时间间隔标志变得太靠近在一起或离开得太远而向操作员提供了无意义的量度时,改变它们的标度,显示较少或更多的时间间隔标志706-4来反映标度的改变。例如,图18示出分钟的时间间隔标志706-4,每个时间间隔标志706-4对应于一分钟。时间窗口近似地示出五分钟时间。当操作员向左拖动时间线时,时间间隔标志706-4的长度扩大,并且在时间窗口中显示较少的个数的时间间隔标志706-4。如果只显示三个长的时间间隔,则所显示的总时间可能减少到三分钟。如果操作员向右拖动时间线,则时间间隔标志706-4移动而靠近在一起,并且出现更多的时间间隔标志。如果说,示出十个时间间隔标志706-4,则时间窗口描绘一个十分钟的周期。如果操作员继续向右拖动时间线,则它可能太麻烦而不能显示更多的标志。而是,在某些点处,改变了时间间隔的标度,例如,从一分钟到五分钟。这样减少了所示出的时间间隔标志706-4的总数,只示出描绘每五分钟时间间隔的那些时间间隔标志706-4。解说性地,甚至当标度改变时,平滑地增进的时间窗口的时间周期也描绘了增加的时间周期。当操作员继续压缩时间间隔标志706-4之间的空间时,例如,按十五分钟、按小时的、按天等的时间间隔,可以连续地改变标度。操作员同样可以向相反的反向拖动时间线,以再次扩大时间间隔标志706-4之间的空间,包括当在时间窗口中示出的时间间隔标志706-4太少时改变时间间隔的标度。
区域705示出加标记的方格707、708和709,其中方格707的一部分被方格708挡住。每个加标记的方格707-709对应于经定义的信道。加标记的方格707对应于名称为“Primary service(主要服务)”的服务信道。加标记的方格708对应于发送信道“Transmit Channel#1(发送信道#1)”。加标记的方格709对应于取数信道“Fetch Channel #1(取数信道#1)”。如所示,区域705是可以使用滚动条710来滚动的。一般,所示出的给定类型的信道是“堆叠的”。即,发送信道的所有方格相互重叠在另一个的顶部上,以致只可看到每个发送信道方格708的标记。只示出一条发送信道的方格708。同样,在独立的堆叠中堆叠取数信道的方格709,以致一次只显示全部方格中的一个方格。为了选择其它方格708或709中之一进行观看,操作员选择方格708或709的标记。这使所选择的方格处于前面或前台。显示所选择标记的整个方格708或709,并且挡住其它方格的其余部分。
当用区域705选择和可看到时,每个方格708或709显示一系列时间间隔标志711、以及对应于所调度的任务的水平条712。条712表示预期时间,在该预期时间上要相对于由时间间隔标志711表示的时间间隔来执行所调度的任务。任务是在特定信道上被调度的节目发送,下面会更详细地描述。时间条712的宽度对应于执行任务需要的时间。任务的左边缘(当可看到时)指示了任务的近似开始时间,而时间条712的右边缘(当可看到时)指示了任务的近似结束时间。
当通过选择方格的标记而选择方格707、708或709时,区域706显示对应于所选择的方格707、708或709的信道而被调度的所有任务的一个列表。如所示,区域706可以显示任务的各种特性,包括任务名称、状态、下次任务、任务停止、带宽、优先级、重复名称等等。在可供选择的方法中,当从区域702中示出的分层树选择信道时,使对应于信道的方格处于区域705中的前台,并且在区域706中显示该信道的任务列表。
调度任务的一种方法是把在区域702中显示的分层树中示出的节目拖动到特定的加标记的方格中,例如,在区域705中示出的708。如果加标记的方格不处于前台,则在选择时就使它处于前台。当操作员这样进行时,在区域703中显示任务检查员方格714,诸如在图18中所示出。当显示时,操作员可以指定或修改任务的下列特性任务的名称714-1、下次或下个执行日历日的任务714-2以及任务的时间714-3、任务的信道带宽百分数714-4、任务的优先级714-5(即,最高、较高、高、正常、低、较低或最低)、任务是否重复(即,是一次性任务还是要在某个时间间隔重复的任务)714-6以及表示是否要保存任务执行的记录的检查框714-10。如果选择重复,则操作员可以指定任务的重复时间间隔714-7、调度时间间隔714-8以及每次重复的名称714-9,以辅助操作员容易地理解任务的重复时间间隔是什么。可以理解,如通过参数714-6、714-7和714-8所指定,将自动地重新调度重复任务。可以任选地提供多选框714-11来表示任务是否要求传送的确认。如下更详细地描述,在对应于该任务的每个节目的服务通告中作为一个标志传递确认传送的要求,请求接收任务的节目的每个客户节点把肯定的确认消息发送回源站201(最值得注意地,ABC服务器380)。
一旦调度了一个任务,就可把它显示在信道方格707、708和709中,或当选择信道时,在区域706中列出列表。当在区域706中列出列表时,可以选择给定的任务以再显示具有特定任务的参数设置的任务检查员方格714。只要当前不是正在执行任务,操作员就可以修改任务的参数。
在操作员控制台330作出上述节目、任务等的任何改变的情况下,经由控制器网301把这种改变传递到主要控制器350。主要控制器350经由数据网302把改变存储在数据库310中,然后对于都经由数据网302连接到数据库的所有过程,即,操作员控制台330和资源管理器340,这种改变就可供利用。尤其,这使信道和节目信息可供用于装配成用于在服务信道上通信的服务通告。因此,当要经由服务信道通过负责如此进行的不管任何控制器350、360或370发送服务通告时,可以与可用信道和节目的通告一起发送当前信道和节目信息。
当对数据库310的改变通知主要控制器350时,主要控制器350检查该改变。如果该改变是新任务的调度,则主要控制器350确定应该把该任务分派到哪个控制节点。这可用通过确定在任务的信道的信道参数中指定了哪个控制节点而达到。主要控制器350把任务分派给所指出的最高级别的控制器350、360或370。如果辅助控制器360或370要执行任务,则主要控制器350把一个或多个消息发送给辅助控制器360或370,使辅助控制器360或370执行任务。
控制器350、360或370执行任务如下。如上所述,用操作员控制台330设置经调度的时间,按该调度的时间根据任务的开始时间、任务停止时间、重复、时间间隔和任务的调度时间间隔信息714-2、714-3、714-6、714-7和714-8来执行任务,并使任务在所要求的开始和停止时间处执行。例如控制器360和370等控制器根据主要控制器350的分派(如上所述)以及主要控制器发出的消息(也是如上所述)而执行任务。
在根据使用操作员控制台330如上所述地规定调度的合适的任务执行时间处,控制器350、360或370使它各自的队列模块354、364或374或Web模块352、362或372在各自的任务信道上实际传递所要求的节目文件。在要在取数信道上对Web网站文件进行取数的情况下,控制器350、360或370命令它的Web模块352、362或372检索每个Web网站的任务的节目。在要发送标准文件的情况下,控制器350、360或370命令它的队列模块354、364或374发送节目的文件。
Web模块352、362或372访问在URL处的Web网站,并检索Web网站,所述URL是通过任务的节目的节目参数指定的。这可以包括经由LAN 218和WAN到各个Web网站的信息传递。Web模块352、362或372把所检索的Web网站信息存储在文件中(可由另一个任务访问和发送所述文件)。
队列模块354、364或374检索与任务相关联的节目的文件。然后队列模块354、364或374对一个格式的分组进行装配,所述格式是在下面描述的、包含任务的节目的节目信息以及任务的节目的文件的,其中文件可能本地包含可检索的文件信息。队列模块354、364或374按通过中任务的信道参数指定的一种格式和方式对分组进行汇编。例如,按通过内容分组化器503-2指定的一种格式对分组进行分组化。把通过目标IP地址503-7和目标IP端口503-8参数指定的IP地址和IP端口提供给分组。通过网络层协议402-3(它依次规定附加的分组封装)规定的网络层协议发送分组。例如,然后经由LAN 218把分组发送到封装器/注入器节点214,用于经由前向路径202发送。
在规定一个以上的任务在同一信道上同时执行的情况下,对于每个各自的任务的每个节目,交替地传送每个节目,以达到由每个任务的参数714-4的为每一任务预留的带宽的百分数。
客户节点结构图19示出客户节点240的说明性的功能方框图800。如上所述,可以使用PC兼容(或其它类型的)计算机或机顶盒来实施客户节点240,所述PC兼容(或其它类型的)计算机或机顶盒具有处理器、存储器(例如,诸如盘驱动器之类的持久性存储器,以及诸如RAM IC之类的易失性存储器)、外部通信设备(例如,电话调制解调器、电缆调制解调器、网络接口卡等)、监视器、手动输入设备(鼠标、键盘、数字小键盘)、以及互连这些设备(如果不是全部,则是大多数)的总线。在每种情况中,假定客户节点240执行包括通信服务790的一个操作系统。如上所述,通信服务790能够打开信道和独立地接收来自每条信道的分组中的信息或在各条信道上分开地发送信息。把所接收的信息存储在存储器中,并且可以经由各条信道目标进行访问。通信服务790提供出现在客户节点240中的数据和分组信号之间的软件接口,所述分组信号是通过可以传递分组信号的、任何如此的外部通信设备发送或接收的。此外,操作系统通信服务790一般支持指定设备,每个发送和接收是通过指定设备(例如,通过指定设备的媒体访问控制地址)而发生的。如此,下述过程不需要已知得到通信所基于的细节。它们只需要使用用于操作系统通信服务790的适当的应用程序接口(API)。因为一般是通过客户节点的制造商提供这种业务以及API一般是已知的情况下,不再对此作进一步的描述。
解说性地,客户节点240包括中介器过程810、会话管理器820、插入管理器830、高速缓存管理器840、引导服务器850、信道目标805、节目文件815、服务信道目标825以及插入835。
服务信道目标825经由通信服务790接收来自服务信道的通告消息。通告消息根据SAP和SDP为了说明已被格式化。通告消息通告在这种信道上的信道和节目的可用性。如上所述,当定义信道或节目时,指定每一个的“强制的”、“公开的”或“专用的”的订用。由负责在服务信道上发送服务通告消息的控制器350、360或370检索有关现有信道的这个信息,并且根据SAP和SDP对这个信息格式化。然后把这些消息发送到客户节点240。服务信道目标825接收这种通告消息,并且再现适当的通告。
使这些服务通告消息可供会话管理器820利用。会话管理器820检索服务通告消息,并把它们存储在客户节点240处,例如,按SDP形式。
当客户节点的操作员希望观看可供利用的信道和节目时,引导服务器850请求会话管理器820提供服务通告。把适当的服务通告提供给引导服务器850。解说性地,引导服务器850根据用于在监视器上显示的可修改的XML规范对服务通告进行格式化。可以提供不同的视图,分别用于在监视器上显示所通告的信道和节目。强制的信道和节目作为被订用而被显示,并且操作员不能够对这种强制的信道和节目不签约。还可以显示目标针对各个客户节点240的公开的信道和节目以及专用的信道和节目。通过选中或不选中适当的多选框,允许客户节点240的操作员对这种公开的和专用的信道和节目签约或不签约。解说性地,操作员必须对于一条信道签约,以便接收该信道的节目,包括强制的节目。
会话管理器820把对于信道和节目的任何签约通知中介器810。会话管理器820可以从对应于每个经签约的信道和节目的信道通告中检索信道和节目信息,并把这种信道和节目提供给中介器810。作为响应,数据库810创建用于每个经签约的信道的信道目标805,并且对于每个未签约的信道拆消一个信道目标805。可以使用在各个接收到的信道服务通告中通过的信道信息来创建信道目标。每条信道目标805用于利用通信服务790接收或发送给定信道的信息。中介器810对来自信道目标805的所发送的每个节目进行去复用。通常,一次在一条信道上只发送一个节目。然而,如上所述,允许同时在一条信道上多路复用多个节目。中介器810还向各条信道目标805提供在各条返回信道上从客户节点发送的信息。可以使用这种返回信道用于确认以及否定地确认节目信息的接收,如下更详细地描述。
中介器810再现每个节目的文件数据,并把文件数据存储在通过节目的节目信息表示的文件夹或目录中。中介器810还使适当的图标与通过节目的主要和次要图像节目信息表示的节目相关联。假定当使用服务器引导850时操作员已经允许自动-开始各个节目,中介器810还自动地执行每个节目的节目信息指定的开始命令。
当接收到对应于给定插入的文件时,通过中介器810通知插入管理器830。插入是一些过程,设计成根据定义的API与其它经编译的过程一起操作。根据此,适当的插入可以执行使用作为处理的输入的文件。解说性地,InternetExplorerTM、ApacheTM以及用于使客户节点240的软件自动升级的自动-升级插入(最值得注意地,过程和目标800的软件)支持插入。
高速缓存管理器840执行数个内务处理任务。高速缓存管理器840在时间触发的基础上执行对于所接收文件信息的校验和,查看丢失的文件以及部分文件,以及确定是否有任何节目文件已经期满(即,参考各个节目的节目信息以及与每个节目文件相关联的时间戳信息)。如上所述,当接收文件时,它们是有时间戳的。如果按相同的方式再次发送节目,则时间戳没有改变。如果再次发送节目而至少有一部分是不同的,则重置文件的时间戳。如果文件的当前时间和时间戳之间的差异大于与文件相关联的期满节目的信息,则高速缓存管理器840删除该文件。高速缓存管理器840根据丢失文件信息确定成功地接收了每个节目文件的数字字(例如,字节)的哪些范围以及没有接收到哪些(或有差错的接收)。高速缓存管理器840通知中介器810,中介器810依次如下所述地发送表示给定节目文件的未接收到的数据的确定范围的消息,或另一方面,肯定地确认节目文件的接收。
节目通信分组格式图20示出用于携带节目的文件数据的分组910的格式。这个分组将形成图3中示出的信息102的全部单元或部分单元。分组910具有版本字段911,它表示可以用于分析分组的协议的版本。解说性地,开始时可以把版本设置为1。接在这个后面的是尚未定义其用途的保留字段912。接在保留字段912后面的是类型字段913。字段913可以包含第一值(例如,0),以表示分组包含文件数据的原始发送;或包含第二值(例如,1),以表示分组包含“修复”数据,即,原始数据的再发送。如下更详细地描述,一般只对于节目数据文件的数据字的有限数量的范围-不是对于整个文件,发送修复数据。即,为了节约带宽起见,只再发送未接收到的数据范围。
接在类型字段913后面的是加密字段914,它可以包含表示对有效负荷加密(当设置为1)还是没有加密(当设置为0)的一个值。接着,提供压缩字段915,它表示是否压缩有效负荷。例如,为1的值可以表示压缩了有效负荷,而为0的值可以表示没有压缩有效负荷。解说性地,例如,在发送之前,通过控制器350、360或370在源站处对有效负荷进行压缩和/或加密。如果对文件数据进行压缩和加密两者,则解说性地先对它进行压缩,然后再加密。使用P.Deutch和J.-L.Gailly的“Zlib Compressed Data Format Specification Version3.3”(IETF RFC 1950(1996年5月)(“http//www.ietf.org/rfc/rfc1950.txt?number=1950”))中描述的zlib技术可以得到压缩。
提供鉴定长度字段916,用于表示字段919中的鉴定值的大小。鉴定值是用于鉴定分组910的。如果鉴定长度设置为0,则无鉴定字段919出现。在字段919中的鉴定值可以是数字签名,诸如分组有效负荷的“MD5”散列(在经加密经压缩或两者的情况下)。见R.Rivest的“The MD5 Message DigestAlgorithm”(IETF RFC 1321(1992年4月)(“http//www.ietf.org/rfc/rfc1321.txt?number=1321”))。通过客户节点240提取通过节目识别符918和有效负荷920之间的鉴定长度字段916表示的字节数作为携带在分组910中的鉴定值而可以得到鉴定。接着,客户节点240使用公共密钥对在鉴定字段919中的值进行解密,对有效负荷内容进行散列,并且对经解密的鉴定值与散列值进行比较。
如果分组是经加密的,则在密钥索引字段917中提供索引。当这个索引与节目识别符字段918中的节目识别符组合时,可以用来索引客户节点处用于对有效负荷920进行解密的正确的密钥。节目识别符字段918包含32-位唯一的节目识别符,该识别符是由控制器350分配给通过分组910携带其内容的节目的。
有效负荷920包含一个或多个三元组的序列,每个三元组是按标记-长度-值格式产生的。每个标记识别三元组的数据的类型,而每个长度表示对于下一个三元组的字节的偏移。该值包含参数或数据本身。注意,一个值可以具有附加于它的填充,由此三元组的长度不必是值的确切长度的精确表示。下列表格概括了在有效负荷中使用的所定义的某些标记。
表1
解说性地,只在携带给定文件的文件数据的分组序列的第一分组中传送文件名。同样,解说性地,只在携带给定任务的数据的分组序列的第一分组中传送jobUUID。除非文件是极短的,并且可以在一个分组中携带该文件,最好,文件的第一分组不包括内容三元组(即,没有文件的实际内容数据,只是元数据文件号、文件大小、字节偏移、文件版本、预期文件等)。可以定义三元组的附加类型,总的三元组多达255个。由标记字段(一字节)的长度强加了这个限制。每个三元组可以具有多达总数为1020字节的长度,包括标记和长度字段。因为三元组的长度字段是一字节以及范围的量度长度为0到255(按4-字节的增量)所以强加了这个限制。注意,具有包含值0的长度字段的三元组表示分组序列中的最后的三元组。要求客户节点240能够跳过它不能识别的每个三元组,以及读出/分析它可以识别的分组的其余三元组。
异步否定确认解说性地,图2的系统200使用对PGM扩展的“异步返回-信道”(“ABC”),用于保证到客户节点240的数据传送。首先,为了启动ABC,必须在服务信道上传递ABC通告。解说性地,ABC通告是服务通告的特定形式,所述服务通告是为了每个经调度的任务(它具有一条信道,该信道具有所选择的可靠的信道信息503-4)而创建的。根据SAP/SDP对ABC通告进行格式化,而且ABC通告包括用于ABC服务器380的诸如IP多播组和端口之类的信息(所以当客户节点240与ABC服务器380通信时,客户节点240已知必须把分组发送到哪个地址),以及客户节点240向其发送它们的ABC请求的网络单元205的“域名服务器”(“DNS”)名称。
当发送各条信道的服务器通告时,每个服务器通告包括信道的唯一的信道识别符以及一个标志,该标志表示客户节点240是否可以发送信道的异步否定确认分组。同样,通告新节目的服务器通告包括一个节目识别符以及一个标志,该标志指示客户节点240是否可以发送各个节目的异步否定确认分组或肯定确认分组。下面将详细描述当发送这种分组时的这种分组。
图21说明ABC服务器380执行的一种方法。ABC服务器380为每个完成的任务执行这些步骤。在步骤S104中,ABC服务器首先确定是否接收到PGM分组。PGM分组具有易于识别的结构。ABC服务器380忽略和丢弃非-PGM分组。如果接收到非-PGM分组,则ABC服务器380将简单地进行到步骤S124-S126(下面描述)。如果接收到PGM分组,则在步骤S106中,ABC服务器380接着确定该分组是普通的PGM分组还是下面描述的ABC分组。如果分组是普通的PGM分组,则ABC服务器380根据众知的PGM协议执行普通的PGM处理。这种普通的处理包括创建具有所有原始节目数据的修补任务以及调度这种任务的执行。然后ABC服务器380执行步骤S124-S126,如下所述。
如果分组是ABC分组,则在步骤S110中,ABC服务器确定接收到什么类型的ABC分组。可以接收两类ABC分组,即,肯定确认分组或异步否定确认分组,将在下面更详细地描述它的结构和目的。如果ABC分组是肯定确认分组或“ACK”分组,则ABC服务器380执行步骤S112,其中创建一个记录(例如,计费记录)输入,标注发送ACK分组的各个客户节点240接收到节目的确认。(如上所述,使用操作员控制台330,可以选中确认传送框714-11(图18),这导致每个客户节点把肯定确认或ACK发送回ABC服务器380,ABC服务器380可以在其上执行的主要控制器350可访问该信息。)ABC服务器380然后执行步骤S124-S126,如下所述。
如果分组是ABC分组,则在步骤S110中,ABC服务器确定接收到什么类型的ABC分组。可以接收两类ABC分组,即,肯定确认分组或异步否定确认分组,将在下面更详细地描述它的结构和目的。如果ABC分组是肯定确认分组或“ACK”分组,则ABC服务器380执行步骤S112,其中创建一个记录(例如,计费记录)输入,标注发送ACK分组的各个客户节点240接收到节目的确认。(如上所述,使用操作员控制台330,可以选中确认传送框714-11(图18),这导致每个客户节点把肯定确认或ACK发送回ABC服务器380。可以使用计费信息保持针对已确认接收到节目的客户节点240的跟踪。)ABC服务器380然后执行步骤S124-S126,如下所述。
另一方面,如果可以使信道和节目生效,则ABC服务器380接着执行步骤S116,其中ABC服务器380确定所接收的ANAK分组是否具有一个请求,该请求与在另一个ANAK分组中的请求“相交”。如下更详细地描述,ANAK分组请求在范围列表中的数据的再发送。ANAK请求被说成是相交如果它们涉及相同的节目。它们可以是相同文件中的数据字的相同范围的请求、相同文件的顺序的邻近范围的请求、相同文件的数据的不一邻近范围的请求以及相同节目的不同文件中的数据范围的请求。如果ANAK分组请求不相交,则在步骤S118中,ABC服务器380缓冲ANAK分组的请求,并且可能起动一个递减定时器,然后进行到步骤S124-S126,如下所述。
如果ANAK分组包括与以前ANAK分组的请求相交的一个请求,则ABC服务器380执行步骤S120。在步骤S120中,ABC服务器把这个ANAK分组的请求集合到相交请求中。实际上,ABC服务器形成两个请求的范围的联合,并且缓冲这个合并的ANAK请求来代替以前接收到的ANAK请求。此外,可以把多个不连续ANAK请求,即,对于相同节目的相同或不同文件,统一为单个ANAK分组。然后,在步骤S122中,如果可能的话,ABC服务器可以重置递减计数器。解说性地,重置ANAK请求的递减计时器的次数有一个可定义的极限。如果超过,则不能重置定时器。
ABC服务器380可以经由步骤S104、步骤S108、步骤S112、步骤S118或步骤S122进行到步骤S124。在步骤S124中,ABC服务器确定递减计时器是否期满。如果没有,则ABC服务器380进行到步骤S104。如果递减计时器已经期满,则在步骤S126中ABC服务器产生ANAK请求的修补任务。解说性地,修补任务是如上所述的调度任务,用于在原先发送的相同信道上再发送节目。然而,只再发送在经缓冲的ANAK请求中的数据的范围。
注意,在步骤S120中统一ANAK请求,以及此外进一步通过网络单元统一,如下所述。例如,完全有可能,数个节点240请求再发送至少某些共同的范围。例如,在卫星系统中,有可能一个局部事件会影响相同地理区域中的许多客户节点,诸如“雨水冲洗(rain-out)”(降水使卫星信号降质以致破坏了数据)。这可以导致该区域中的所有客户节点240都发送请求,要求接收节目文件数据的相似丢失范围。但是,用数据范围的一次再发送就可以满足来自多个客户节点240的、对于相同数据范围的所有请求。这是因为数据的再发送(以及原始发送)是到所有客户节点240的多播发送。
图22示出客户节点240根据对PGM扩展的ABC执行的过程。作为说明,主要通过高速缓存管理器840、中介器810以及信道目标805中之一(对于到适当的网络单元205的返回信道上发送的返回消息为特定的)来执行这些步骤。如上所述,在通告节目的可用性的服务通告消息中指示应该向其发送消息的特定的网络单元205。
假定会话管理器820检测到关于特定信道上的节目的一个通告,该特定信道规定可靠传送和确认两者。还假定客户节点240对信道和节目签约(通过操作员交互作用或自动地)。会话管理器820把签约传递到中介器810。在步骤S202中,该信道的信道目标805接收到节目文件信息,并且中介器810对节目文件信息进行去复用和把它存储在客户节点240处。
高速缓存管理器840周期性地执行。尤其,在步骤S204中,高速缓存管理器840确定是否完成了每个特定任务。如果尚未完成给定的任务,则高速缓存管理器840不进行与保证该任务的可靠性相关联的另外步骤。如果已经完成任务,则在步骤S206中,高速缓存管理器840检查每个节目的文件,以确定是否有任何文件丢失。此外,在步骤S206中,高速缓存管理器840对文件的每个部分执行一致校验或其它差错检测。例如,高速缓存管理器840可以检查每个固定大小的数据块,例如,1024字节(文件数据的最终块除外,该块可能少于固定量)。在步骤S208中,高速缓存管理器840确定是否有任何任务的节目文件数据丢失。如果没有,则高速缓存管理器840把ACK请求消息添加在消息列表中,当建立返回信道时在返回信道上发送,并且进行到步骤S214。注意,如果在该任务的服务通告中没有按要求指示确认,则不执行步骤S210,并且ABC停止对该任务的处理。
另一方面,如果丢失了任何文件数据,则在步骤S212中产生每个丢失文件或其部分的ANAK请求。丢失文件部分一般是按数据字(字节)的范围的形式。例如,每个范围可以对应于给定的块。
中介器810等待,直到返回信道变成可供利用。注意,客户节点的类型可能是只在某些经调度的时刻打开返回信道的一种类型。例如,为了节约使用电话线的成本起见,许多卫星IRD(机顶盒)具有只在特定时刻激励的电话返回路径。另一方面,正常提供全天返回信道服务的通信设备可能临时发生故障或为了维修而暂时离线服务。因此,在步骤S214中,中介器810确定是否可得到返回信道。如果不能得到,则中介器810继续执行步骤S214。
如果返回信道是可得到的,则中介器810执行步骤S216。在步骤S216中,810对悬而未决的ANAK请求进行扫描,并且统一相同节目和信道的ANAK请求。例如,对要再请求发送的相邻数据字中可能构成一个范围的一些范围进行统一。此外,在ABC分组大小的限制中,把相同节目和信道的数据字的不相邻范围的多个请求的一个或多个列表组合成单个分组。在步骤S218中,中介器810发送未决的ACK和经统一的ANAK请求的ACK和ANAK分组。在适当的信道上把ACK和ANAK分组发送到ACK和ANAK分组涉及的各个节目和信道的正确的网络单元。在步骤S220中,中介器810对于对应于所发送的ACK或ANAK分组的每个请求递减发送计数器。
注意,ANAK请求的统一导致发送较少的分组。即,用单个ANAK分组来否定地确认未能按可用的形式被接收的数据字的一个以上的范围。
在步骤S222中,中介器810对于每个ACK和ANAK分组起动一个定时器。在步骤S224中,中介器810确定是否接收到以前在步骤S220中发送的ACK或ANAK分组中之一的确认。如果接收到,则在确认ANAK分组的情况中可能需要附加的步骤。例如,步骤S226中,中介器810可用等待在“修复”任务中接收到文件数据。使用服务信道上的服务通告来通告修复任务,并把所请求再发送的数据存储在节目文件的适当位置中。如此,再发送的节目文件数据修复或替代原始发送中丢失或有差错的节目文件数据。
如果没有接收到确认,则在步骤S228中,中介器810确定,对于在步骤S220中发送的、但是在步骤S224中未曾接收到确认分组的任何ACK或ANAK分组,定时器是否已经期满。如果没有期满,则中介器810返回而执行步骤S224。另一方面,如果中介器810确定定时器之一已经期满,则中介器810执行步骤S230。在步骤S230中,中介器810确定各个未确认的ACK或ANAK消息的发送计数器是否为零。如果是零,则中介器810在步骤S232中传递一个报警,这表示有可能没有完整地接收到某些节目文件数据。另一方面,如果计数器不是零,则中介器返回到步骤S218,从而把各个ACK或ANAK分组再发送到合适的网络单元,并且在步骤S220中再递减发送计数器。重复步骤S222-S230。
图23A和图23B说明网络单元205执行的过程。解说性地,网络单元205具有合适的操作系统,用于象客户节点240或控制节点350、360或370所进行的那样提供通信服务。
在步骤S302中,当接收到PGM分组时,网络单元205确定分组是普通PGM分组还是ABC分组。通过检查PGM分组的内容可用容易地作出这个确定,如下所述。如果分组是PGM分组,则在步骤S304中网络单元205执行普通PGM处理,并且返回步骤S302。如果分组是ABC分组,则在步骤S306中网络单元205接着确定分组是否有效。例如,网络单元205可以验证分组的校验和、专利的语法是正确的以及在分组中存在正确的网络层多播地址。如果分组是无效的,则在步骤S308中网络单元205丢弃该分组,并返回步骤S302。
如果ABC分组是有效的,则在步骤S310中网络单元205确定所接收的分组是ACK分组还是ANAK分组。如果分组是ACK分组,则网络单元执行步骤S312-S318。在步骤S312中,网络单元205向ACK分组的发送者发送回肯定确认的确认分组(“AACF”)。在步骤S314中,网络单元205把所接收的ACK分组传递给合适的接收者(即,把原始数据发送给ACK分组对应的网络单元或另外的网络单元的控制器350、360或370)。在步骤S316中,网络单元205递减ACK分组的发送计数器。在步骤S318中,网络单元205起动确认定时器。网络单元205然后执行下述步骤S338。
另一方面,如果分组是ANAK分组,则网络单元205在步骤S319中首先把异步否定确认列表确认(“ANCF”)发送回发送ANAK分组的节点。接着,在步骤S320中,网络单元确定在所接收的ANAK分组中的请求是否与所接收的相同任务的其它ANAK分组中的请求相交。如果不相交,则在步骤S322中,网络单元205缓冲ANAK请求,并在步骤S324中起动发送定时器。然后网络单元进行到步骤S334。
如果所接收的ANAK分组的一个或多个范围与另外的、经缓冲的ANAK请求的范围相交,则网络单元205执行步骤S326。在步骤S326中,网络单元205统一所接收的ANAK分组和相交的ANAK分组。如上所述,统一可以包括修改请求以指定数据字的较大的范围,特别,覆盖多个请求的范围的联合,或把多个ANAK请求累加到单个ANAK分组中。在步骤S328中,网络单元205递减经统一的ANAK请求的统一计数器。在步骤S330中,网络单元205确定统一计数器是否小于或等于零。如果是这样的,则网络单元205直接进行到步骤S334。如果不是这样,则网络单元205在步骤S332中重置经统一的ANAK请求的发送定时器,然后进行到步骤S334。
在步骤S334中,网络单元205确定发送定时器是否已经期满。如果没有期满,则网络单元205进行到步骤S338。如果发送定时器已经期满,则在步骤S336中,网络单元205对包含在对应于步骤S335中的期满的定时器的(经统一的)ANAK请求中的一个分组进行传送。在步骤S336中,网络单元205递减所发送的ANAK分组的发送计数器。然后在步骤S337中,网络单元205起动用于所发送的ANAK分组的确认定时器。然后网络单元205进行到步骤S338。
在步骤S338中,网络单元205确定是否接收到ANCF或AACF确认分组。如果没有接收到,则网络单元205执行步骤S342。如果接收到,则删除对应于所接收的确认的ACK或ANAK请求,并且在步骤S340中撤消分配与该请求相关联的所有定时器和计数器。然后执行步骤S342。在步骤S342中,网络单元205确定确认定时器是否已经期满。如果没有期满,则网络单元205进行到步骤S302。如果确认定时器已经期满,则网络单元205确定与期满确认定时器的请求相关联的发送计数器是否等于零。如果等于零,则这表示上游网络单元205或控制器350、360或370不能够确认所传送的请求。这样,在步骤S346中,网络单元205发出报警消息,并返回到步骤S320。如果发送计数器不等于零,则网络单元205在步骤S348中再次把不能确认接收到的ACK或ANAK分组的拷贝传送到下一个上游网络单元205或控制器350、360或370。接着,在步骤S350中,网络单元205递减网络单元205的发送计数器。
因此,统一了多个ANAK请求。特别,把多个ANAK请求合并到单个较大范围的块中,或把来自不同分组的多个ANAK请求放在同一个ANAK分组中,或两者。这减少了系统中的负载。
在上述例子中假定了网络单元205不能够发出用于通过客户节点240(它发出ANAK)请求的范围的修复数据。
ABC分组图24示出说明性的ABC分组950。象PGM分组那样,在图24中示出的ABC分组950是作为网络层分组的有效负荷的一种传输层分组。
源端口字段951包含源(在本情况中是ABC服务器380)产生的随机端口号。目的端口字段952包含分配给PGM分组的全球众知的识别符。类型字段953表示分组的类型。选项字段954表示某些选项。在本实施例中,当存在选项扩展(extensions)时,把选项位0设置成1。校验和字段955包含包括分组标头的整个分组的1的补数和的1的补数。注意,如果网络单元205或其它中间节点改变ABC分组的内容,则必须重新计算在校验和字段955中的校验和。全球源识别符字段956包含ABC服务器380的不改变的、唯一的识别符。TSDU长度字段949包含除了传输标头之外的这个传输层数据单元的长度。
对于ABC分组,请求序列号字段947包含0x00000000。使用这个序列号因为ABC分组不对应于单个特定的原始数据分组;它们或是对应于它们中所有的分组(在ACK的情况中),或是对应于分组的列表(在ANAK的情况中)。
源授权格式识别符字段948包含与源网络层地址字段957中的源网络层地址的格式有关的信息。解说性地,在源网络层地址字段957中包含用于与ABC发送者联系的网络层地址。同样,多播授权格式识别符字段958包含与多播网络层地址字段959中的多播网络层地址的格式有关的信息。在多播网络层地址字段959中包含用于在各自的信道上发送原始数据的多播地址。
根据本发明,提供选项扩展字段960以及使用如下。图25示出ANAK分组950的情况。选项扩展字段960包括设置成1的、表示这是分组中的最后的选项字段的选项结束字段961,或在其它情况则设置成0。选项类型字段962包含识别分组为ANAK分组的值OPT_ANAK。选项长度字段963包含表示该选项字段的长度的一个值。保留字段964没有当前定义的用途。接着,选项扩展处理字段965包含值“00”,以使不理解如何使用这个选项的网络单元205丢弃整个选项字段。版本字段966包含对应于选项所涉及的ABC的版本的一个值。可以把它设置成值1。信道识别符字段967包含信道的信道识别符,以及节目识别符字段包含节目(对于该节目,ANAK分组否定地确认分组接收)的节目识别符。上面描述了这些信道和节目识别符。
接在节目识别符字段968后面的是每个都具有相同格式的一个或多个ANAK请求。图26示出ANAK请求970的格式。每个ANAK请求970包括文件号字段971、字段版本字段972、开始块字段973以及块计数字段974。文件号字段971包含没有按有用的形式接收到某些数据的文件的文件号。文件版本字段972包含该文件的文件版本。开始块字段973包含没有按有用的形式接收到的数据的第一块以及块计数字段974包含从没有接收到的或接收到有差错的开始块开始的邻近块的号码。解说性地,在块中携带文件。评定文件数据是有用的还是有差错的范围的“粒度”是块。因此,发出ANAK请求的数据的范围是一个或多个邻近块的范围。当对给定文件的不同ANAK请求中的数据的两个范围进行统一时,作出两个范围的联合是否会形成块的相邻序列的确定。如果会的,则更新开始块和块计数字段使之包含指定从两个范围的联合形成的这种相邻范围的值,如果范围的联合不是一个单一的相邻系列,则可以简单地把ANAK请求添加到现有ANAK分组的选项扩展字段960中。
图27示出ACK分组的选项扩展字段980的格式。选项扩展字段包括结束字段981、类型字段982、选项长度字段983、保留字段984、选项扩展处理字段985以及版本字段986。类型字段包括对应于ACK请求的值OPT_ACK。其它字段981和983-986具有如ANAK分组的选项扩展字段960相似的值。ACK分组的选项扩展字段980还具有用户识别符字段987、节目识别符字段988以及节目版本字段989。用户识别符字段包含通过主要控制器350分配给始发这个ACK请求的客户节点240的唯一的32-位识别符。节目识别符字段988包含客户节点240肯定地确认接收到的节目的节目识别符。节目版本字段989包含客户节点240肯定地确认接收到的节目的版本。
这里已经参考说明性的实施例描述了本发明。熟悉本技术领域的人员可以设计许多另外的实施例而不偏离下列权利要求书的精神和范围。
权利要求
1.一种分组包括(a)源端口字段;(b)目的端口字段;(c)包含下列值中之一的选项类型字段(1)指示分组是一个异步否定确认列表分组的ANAK值,表示接收其它分组中的原始数据分段的列表的失败,或(2)指示分组是对其它分组中的原始数据的肯定确认分组的确认接收的ACK值;以及(d)序列号字段,它包含不表示任何特定原始数据分组的一个值。
2.如权利要求1所述的分组,其特征在于,所述选项类型字段包含一ANAK值,所述分组进一步包括(e)一个或多个输入项的序列,每个输入项指定没有接收到的原始数据的数据字的范围。
3.如权利要求2所述的分组,进一步包括(f)信道识别符,识别用于传送没有接收到的原始数据的信道;以及(g)节目识别符,识别在信道上发送的、意欲包含未接收到的原始数据的节目。
4.如权利要求3所述的分组,其特征在于,所述每个输入项进一步包括指定特定文件的信息,所述特定文件是携带在未接收到原始数据的数据字的范围的信道上的节目中的。
5.如权利要求1所述的分组,其特征在于,所述选项类型字段包含ACK值,所述分组进一步包括(d)信道识别符,识别用于传递所接收的原始数据的信道;(e)节目识别符,识别在信道上发送的、以及包含所接收的原始数据的节目;以及(f)表示节目的版本的节目版本值。
6.一种方法,用于确认客户节点从信道接收部分节目的失效,每个节目是一个或多个文件的一个组,以及有关的节目信息指定如何使用文件,每条信道是可以从其接收节目的一条有区分的路径,以致从每条信道接收到的节目是可区分地分开的,所述方法包括(a)准备从一条特定信道接收节目的一个或多个文件的原始数据;(b)确定没有接收到原始数据的数据字的多个范围;(c)产生指示没有接收到数据字的多个范围的单个分组;以及(d)在返回路径上把单个分组发送到能够使数据字的多个范围再发送的另一个节点。
7.如权利要求6所述的方法,其特征在于,在返回路径上把所述单个分组发送到包括至少一个节点不在源到客户节点的前向路径上的原始数据字的源。
8.如权利要求6所述的方法,进一步包括(e)在发送单个分组之前,等待直到返回路径变成可供用于发送单个分组;以及(f)在返回路径上发送单个分组。
9.如权利要求6所述的方法,进一步包括下列步骤(a)在发送所述单个分组之后,为确认单个分组的接收的确认分组而等待预定的时间周期;以及(b)如果没有接收到确认分组,则再发送所述单个分组。
10.如权利要求6所述的方法,进一步包括(c)重复步骤(f)-(g)直到接收到确认分组达最多预定次数。
11.从信道再发送部分节目的一种方法,每个节目是一个或多个文件的一个组,以及有关的节目信息指定如何使用文件,每条信道是可以从其接收节目的一条有区分的路径,以致从每条信道接收到的节目是可区分地分开的,所述方法包括(a)在一个或多个客户节点和源之间的返回路径上的网络单元处接收可在特定信道上发送的节目的一个或多个文件的原始数据,ANAK分组否定地确认节目的一个或多个文件的数据字的一个或多个范围的接收;(b)存储相关于所接收的分组的信息;(c)开始ANAK分组的定时器;(d)在定时器期满之前,如果接收到否定地确认数据字的一个或多个范围的接收的另一个ANAK分组,所述数据字的一个或多个范围是与以前接收到的ANAK分组的数据字的范围相交的,则网络单元统一另一个和以前接收到的ANAK分组的范围并且选择地重置定时器;以及(e)如果定时器期满,则网络单元导致经统一的范围中的原始数据的所有范围的再发送。
12.如权利要求11所述的方法,进一步包括如果网络单元是异步指定的本地修复器,则(f)网络单元把本地地存储网络单元处的在经统一的范围的子范围中的原始数据发送到一些节点,所述ANAK分组是从这些节点接收到的。
13.如权利要求12所述的方法,进一步包括对于不本地存储在网络单元处的经统一的范围的原始数据的每个子范围(g)网络单元形成一个ANAK分组,所述ANAK分组指示经统一的范围的原始数据的一个或多个子范围,但是不存储在网络单元处;以及(h)在到原始数据的源的路径上把ANAK分组发送到另一个节点。
14.如权利要求11所述的方法,进一步包括如果网络单元不是异步指定的本地修复器,则(f)网络单元形成一个ANAK分组,所述ANAK分组指示至少一个经统一的范围;以及(g)在到原始数据的源的路径上把ANAK分组发送到另一个节点。
15.如权利要求11所述的方法,进一步包括下列步骤(g)把确认各个ANAK分组的接收的ANCF分组发送到从其接收到ANAK分组的每个节点。
16.如权利要求11所述的方法,进一步包括下列步骤(g)重复步骤(d)达预定的最多次数。
17.可靠地发送原始数据的一种方法包括下列步骤(a)在从源节点到客户节点的前向路径上,把包含文件的原始数据的多个分组从源节点发送到一个或多个客户节点;(b)接收表示至少一个客户节点没有接收到数据字的一个或多个范围的一个或多个否定确认分组;以及(c)多播再发送多个分组中的每一个分组,所述分组包含由一个或多个分组指示的每个范围中的原始数据。
18.如权利要求17所述的方法,其特征在于,否定确认分组中之一指定不相邻的数据字的多个范围。
19.如权利要求17所述的方法,其特征在于,经由返回路径接收否定确认分组中的一个分组,所述返回路径包含不也在到发送一个否定确认分组的客户节点的前向路径上的至少一个节点。
20.如权利要求17所述的方法,进一步包括下列步骤(d)验证包含在每个接收到的否定确认分组中的节目识别符、信道识别符、文件号或文件版本值中的至少一个;以及(e)只多播发送在所接收的否定确认分组中经验证的一些分组中识别的范围的原始数据。
21.如权利要求17所述的方法,进一步包括(d)验证没有发生下列事件中之一已经删除了原始数据的一条信道;已经删除了原始数据的一个节目或已经再分配原始地携带原始数据的信道的信道识别符;以及(e)如果验证是成功的,则只多播再发送原始数据。
22.从源节点到一个或多个客户节点处传送信息的一种方法包括提供分组的步骤,所述分组包括(a)源端口字段;(b)目的端口字段;(c)一选项类型字段包括下列值之一(1)指示分组是异步否定确认列表分组的ANAK值,表示接收在其它分组中的原始数据分段列表的失败;或(2)ACK值,指示分组是确认接收在其它分组中的原始数据的肯定确认分组。
23.如权利要求22所述的方法,其特征在于,所述分组位于原始数据指定接收者之一的客户节点处。
24.如权利要求22所述的方法,其特征在于,所述分组位于要接收原始数据的客户节点和发送原始数据的源节点之间的网络单元节点处。
25.如权利要求22所述的方法,其特征在于,所述分组位于发送原始数据的源节点处。
全文摘要
提供系统(200),用于控制在从控制器(350、360、370)中之一到一个或多个客户节点(240)的信道(202)上的最佳—计划文件数据或节目的发送。节目是具有信息的一个组,所述信息指示客户节点(240)如何使用节目的文件。信道(202)是虚拟路径。客户节点(240)可以按独立的方式从不同信道(202)接收节目文件。信道(202)具有信道信息。客户节点(240)发送回接收到数据的肯定确认以及没有接收到数据的否定确认。可以统一否定确认以减少分组的数量。指定了携带节目文件以及确认/否定确认消息的分组的格式。
文档编号H04L12/56GK1554172SQ02817653
公开日2004年12月8日 申请日期2002年9月9日 优先权日2001年9月12日
发明者S·C·J·多加尔, S·L·伊普马, S C J 多加尔, 伊普马 申请人:天溪网络股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1