专利名称:一种使数据单元流入终端的备份交换机的制作方法
技术领域:
本申请一般涉及流式媒体。
背景技术:
术语多媒体流描述了允许从一个或多个数据源访问多媒体内容的过程。因特网使用的增长导致了多媒体流需求的增加。
发明内容
在一个通用方面,通过使用一个备份交换机来接收数据单元的第一数据流,从第一数据流中保存内容,生成包括所存储的内容的第二数据流,并使得第二数据流对终端来说是可获取的,这样就可以使数据单元流入终端。
具体实现方式可包括一个或多个下列特性。例如,使用备份交换机来存储内容可以包括存储暂时与被生成的数据单元相关的内容。可以使用一个位置标识符来指示内容的哪一部分正在被生成到第二数据流中。位置标识符可以用来以时间移位的方式读取内容,就像两个不同的流那样。使用备份交换机来存储内容还可以包括将内容的同一部分存储为多于一个的实例,并且当内容需求增加时存储数据流的额外实例。
使用备份交换机来存储内容可以包括存储内容以及相关的包头信息。使用备份交换机来存储内容还可以包括存储描述内容的校验和。
响应接收到的来自一个终端或一个服务提供商的请求,可以发送一个第二数据流。存储内容包括使用位置标识符来追踪对数据流的单个存储实例的同时发送,使数据流可获取可以包括将单个存储实例中的不同数据单元发送给多个请求者,这些请求者的终端接收的数据流是重叠的但有一个时间差。备份交换机可以是一个专门设备,此设备包括硬件,被设置用来执行接收数据单元的第一数据流,从第一数据流中存储内容,生成第二数据流,以及使第二数据可用的步骤中的一个或多个步骤。
在一个通用方面,网络系统的性能可以通过包括下列装置而提高一个包括通信接口的交换机,使用此通信接口来接收数据单元的流,每一个数据单元包括一个有效载荷部分和一个属性部分,一个缓存器被构造和设置以至少存储数据单元的有效载荷部分,一个复制器被构造和设置以至少复制一个或多个数据单元的有效载荷部分,以及一个第二通信接口被构造和设置以使得数据单元流可以被两个或更多的终端访问。
具体实现方式可以包括一个或多个下列特性。例如,数据单元的属性部分可以包括IP包信息和/或一个或多个第三层信息。交换机可以包括一个处理器,此处理器生成一个属性部分并且将其与复制器已经复制完成的一个有效载荷部分相结合。复制器可以被构造和设置以复制属性部分的有效载荷部分,处理器可以被构造和设置以改变被复制器复制的一个或多个属性部分中的IP包头。
处理器可以被构造和设置以改变IP目的地址,例如IP目的地址可以是对应于可以使用第二通信接口访问有效载荷部分的终端的IP地址。处理器可以被构造和设置以指定不同于所复制的有效载荷部分的目的信息。数据单元例如可以包括音频、视频和流媒体内容。
交换机可以被构造和设置以接收来自终端的要求接收数据单元流的请求。交换机然后就可以将数据单元流发送给请求终端。具体实现方式可以包括从将要接收数据单元流的终端以外的设备处接收请求,并且交换机可以将数据单元流发送给请求终端或设备。交换机可以允许在不同的时间偏移点访问相同的数据单元流。交换机还可以包括一个具有多于一个指针的缓冲器,以可以在两个不同的点和时间上访问数据单元流。缓冲区可以存储数据单元流的多个实例。
一个源系统可以连接于交换机。此源系统可具有复制数据单元的能力,并可以将数据单元流发送给交换机。同样,一个或多个终端可以与交换机联系,并且从交换机处接收复制的数据单元。
具体实现方式可以包括一个能够实现上述特性的系统,例如包括,源系统、交换机、终端和这些组件之间的网络。具体实现方式还可以包括一系列在交换机、源系统和/或终端上执行以实现这些特性的步骤。
其它特性和优点可以从下列描述(包括附图和权利要求)中得出。
图1是一个可以使用备份交换机来生成数据单元流的通信系统的方框图。
图2A是一个可以在如图1中所示的通信系统中传输的示例性数据单元的示意图。
图2B是一个说明图2A的数据单元的属性部分的结构的例子的示意图。
图3是一个适用于图1的通信系统中的备份交换机的示例性组件图。
图4A是一个使用内存(如RAM(随机存储器))来为随后的回放而存储媒体流的备份交换机的示例性方框图。
图4B是一个使用存储器来为随后的重放而存储媒体流的备份交换机的示例性方框图。
图5是一个在备份交换机中使用的预编码器的方框图。
图6是一个说明了在图1所示的通信系统中发送数据单元的方法的流程图。
图7是一个说明了在图1的通信系统中IP包的移动的流程图。
图8是一个在图1所示的通信系统中使用备份交换机来处理所接收的数据单元的过程的流程图。
图9是一个在图1所示的通信系统中提供数据单元流的过程的流程图。
图10A举例说明了一个被构造和设置以存储数据单元流的多个实例的备份交换机。
图10B举例说明了一个被构造和设置以存储多个位置标识符的备份交换机。
图11是一个在图1所示的通信系统中用于时间移位读取内容的过程的流程图。
不同附图中的相似附图标记表示相似的元件。
具体实施例方式
一般说来,备份交换机接收数据单元的源数据流,并存储数据流的内容以可以在随后生成包括此内容的一个或多个数据流。存储内容以允许为随后发送而对内容进行时间移位。例如,响应用户的请求,可以创建一个点播系统来从源数据流发送所存储的内容。备份交换机可以使用一个或多个指针来使得对来自相同源数据流的内容的不同部分的同时读取成为可能,这样可以从一个源数据中同时生成几个不同的偏移数据流。从一个源数据中生成几个不同的偏移数据流。备份交换机可以将源数据流中的内容存储为几个实例,以管理增加的需求。通过只存储源数据流中的内容的特定部分,备份交换机还可以减小整体的存储需求。
为了说明的目的,图1-11描述了一个使用备份交换机使数据单元流入终端的通信系统。为了简洁,下述图中的多个元件被表示为单块实体。但是,如本领域中的技术人员所理解的,这些元件中的每一个都可能包括大量互连的计算机和组件,被设计以执行一组特定的操作和/或用于特定的地理区域。
为了说明的目的,图1描述了一个通信系统100,此系统实现了使用备份交换机来使数据单元流入两个或多个终端的技术。通信系统100可以被构造和设置以包括一个源系统110,一个或多个终端150,以及完成源系统110和终端150之间的通信的通信软件和硬件。更具体地,典型的通信系统100包括源系统110、一个网络120、一个备份交换机130、一个网络140和终端150。在具体实现方式中,源系统110一般通过网络120将数据单元流中的一个或多个数据单元发送给一个或多个备份交换机130,在备份交换机130中数据单元的内容被存储、复制并以一种点播(on-demand)的方式通过网络140发送给一个或多个终端150。
源系统110通过网络120向备份交换机130提供一个或多个数据单元的数据流。典型情况下,源系统110被构造和设置以将媒体源(如音频或视频输入)转化成数据单元以通过网络120发送。源系统110可以包括一个具有中央处理器(CPU)的通用计算机,和一个存储数据和各种程序(如操作系统和一个或多个应用程序)的内存/存储器设备。源系统110的其它实现方式包括工作站、服务器、专用设备或组件、其它设备或能够以预定方式做出响应并且执行指令的其中的一些组合。典型的源系统110还包括输入/输出(I/O)设备(如音频和视频输入和转化能力),和外围设备,如用于与网络120交换数据的显示通信卡或设备(如调制解调器或网络适配器)。
源系统110的应用还可以包括一个通过网络120发送多个媒体内容中的一个的媒体系统。例如源系统110可以通过网络将欧洲电信标准协会(ETSI)、数字视频广播(DVB)、高级电视系统委员会(ATSC)或欧洲电缆通信协会(ECCA)格式的信号发送给电缆分线盒终端(cable head end)。在另一个应用中,电缆提供商可以将视频信号发送或引导到电缆分线盒终端(cable head end)以在电缆网中配送信号。
通信链路115用于在源系统110和网络120之间传输数据。通信链路115可以包括有线的或无线的通信模式,如电话线、无线网链路、电缆网或直接连接。
典型的网络120包括能够使源系统110和备份交换机130进行直接或间接通信的硬件和/或软件。网络120可以包括一个源系统110和备份交换机130之间的直接链路,或者可以包括它们之间的一个或多个网络或子网络(未明确的表示)。每一个网络或子网络,例如可以包括能够发送和接收数据的一条有线或无线数据通道。网络120的例子包括因特网、万维网、广域网(WAN)、局域网(LAN)、模拟或数字的有线和无线电话网(如公共电话交换网(PSTN))、综合业务数据网(ISDN)或xDSL(任何形式的数字用户环路)、无线电广播、电视、电缆、卫星、和/或其它承载数据的传输方法。
一般说来,备份交换机130被构造和设置以存储接收到的数据单元流,而以时间偏移的方式向一个以上的终端发送。备份交换机130的实现可以存储数据单元的一个或多个数据流。例如,备份交换机130可以接收一个IP(互联网协议)视频流,并且存储这个视频用于随后的发送。备份交换机130的实现还可以包括能够发送或接收与数据单元流不同的媒体输入的硬件或软件。例如,备份交换机可以包括一个电缆分线盒终端系统,它可以接收或发送欧洲电信标准协会(ETSI)、数字视频广播(DVB)、高级电视系统委员会(ATSC)或欧洲电缆通信协会(ECCA)格式的信号,以在电缆传输系统中发送。电缆分线盒终端系统可以接收卫星广播输入,将输入转化为适于存储的格式,然后将输入转化回不同格式以进行时间移位发送。
网络140通常包括备份交换机130和终端150之间的一个或多个链路。例如,网络140可以包括一个直接物理链路或由各种网络设备连接的一系列链路。例如,网络120和网络140可以共享一个或多个硬件或软件设备。在另一个例子中,网络120和140可以使用相同类型的电路和/或设备。
终端150可以包括一个或多个能够接收备份交换机130通过网络140发送的数据单元流的设备。终端150可以包括一个处理指令的控制器(未显示),所述指令是由软件应用程序、一个程序、一段代码、一个设备、一个计算机、一个计算机系统、或它们的组合接收或生成的,它们独立地或共同地指导终端150的操作。指令可以永久地或临时地包含在任何类型的机器、组件、设备、存储介质中、或者可以发送给终端150或驻留在终端150的控制器中的传输信号中。终端150可以包括能够以规定的方式响应或执行指令的通用计算机(如个人计算机)、工作站、膝上电脑、PDA(个人数字助理)、无线电话、组件、其它设备、或者可以响应或执行指令的这些设备的组合。
例如,在一个具体实现方式中,终端150包括一个或多个能够接收一个或多个数据单元的信息检索软件应用程序(如浏览器、邮件程序、即时消息客户端、互联网服务提供商客户端、或者AOL TV(美国在线电视)或其它的集成客户端)。信息检索程序可以运行在通用操作系统和包括通用处理器和专用图形硬件、通信和/或其它能力的硬件平台上。在另一个具体实现方式中,终端150可以包括在简化操作系统上运行了微浏览器程序、并具有能够在移动环境下工作的通用和专用硬件的无线电话。
在另一个具体实现方式中,终端150可以包括一个能够接收并不包含在传统数据单元中的视频信号。例如,备份交换机130可以发送根据下列组织提出的标准而格式化的纯视频输入,以实现向电缆调谐器或电视的直接发送,其中的组织包括欧洲电信标准协会(ETSI)、数字视频广播(DVB)、高级电视系统委员会(ATSC)或欧洲电缆通信协会(ECCA)。
参考图2A,数据单元200A的一个例子包括一个属性部分210A和有效载荷220A。典型的属性部分210A包括当数据单元200A在通信系统100中移动时修改的参数。例如,当数据单元在网络(如网络140)中移动时,IP数据单元可以改变第二层的地址信息。典型地有效载荷220包括的信息包括内容和/或参数,它们来自源系统,用于通信,并且在传输过程中保持不变以保证被传输数据的完整。例如,有效载荷220A可以包括发送给个人计算机(如终端150)的音频或视频内容。
参考图2B,数据单元200B的属性部分210B可以包括多个独立的或混合的字段,例如IP(互联网协议)包的字段。更具体地,例如属性部分210B可以包括一个目的地址213B、一个源地址215B、一个表示IP业务的类型的端口号217B(如UPD(用户数据协议)、TCP(传输控制协议)、ICMP(互联网控制消息协议))、和其它如由211B和219B所表示的各部分的参数。这些字段可以如图排列,或者适应于各种协议而排列。数据单元200B中的有效载荷表示为220B。
图3举例说明了一个备份交换机300,它被构造和设置以接收数据流,存储数据流中的内容,从数据流中生成数据单元,以及以数据流的形式发送生成的数据单元。备份交换机300一般说来对应于图1中的备份交换机130。备份交换机300一般包括一个用于存储数据单元流的存储系统310,备份交换机300中各种子系统之间的高速内部连线320,一个用于修改并且将数据单元流发送给两个或更多的客户端的交换引擎330,一个用于从源系统接收数据单元流的第一通信接口340,和一个用于将数据单元流发送给两个或更多的客户端的第二通信接口350。
存储系统310使得备份交换机300可以至少存储数据单元的内容部分。存储系统310可以是易失的或非易失的,并且可以包括内存(如RAM)和/或存储器(如HDDS)。存储系统310的具体实现方式可以包括一个硬盘驱动器或便携式介质,如高密度磁盘、磁带驱动器或光存储设备。具体实现方式还可以包括内存和存储器的组合。
高速内部连线320一般指连接备份交换机300的一个组件和备份交换机300的其它元件的设备。高速内部连线320的例子可以包括但并不仅限于SCSI(“Small Computer Serial Interfac”,(小型计算机串口))、光纤信道(Fibre Channel)、UTOPIA(用于ATM(异步传输模式)的通用测试和操作物理接口)、无限宽带(Infiniband)、和其它协议和连接方法。此类高速内部连线可以包括物理、逻辑、定时和电子连接与标准,以及可以使这些高速内部连线可以进行数据交换的协议。
一般说来,交换引擎330包括一个在硬件中执行网络操作的设备。在某些具体实现方式中,交换引擎330可以包括一个直接在一个芯片上实现了网络操作逻辑的ASIC(专用集成电路),如在晶片上制作逻辑门,然后制作到芯片上。例如,ASIC芯片可以包括一个在半导体上实现的逻辑门结构,被设置以接收数据包,并在审查IP地址的基础上进行过滤。
交换引擎330的具体实现方式还包括使用一个FPGA(现场可编程门阵列)。FPGA一般定义为一个制作成允许第三方在其上实现各种逻辑设计(如门的组合)的芯片。例如,设计者可以加载一个设计,将接收到的IP包的IP地址改为一个不同的地址。另一个例子可以包括一种设计,当IP包在不同网络中传输的过程中被改变时,执行IP包的分割和重组。
交换引擎330的具体实现方式还可以包括使用一个网络处理器。网络处理器一般定义为一个除了其它特性,还可允许软件指定应该执行的网络操作的芯片。网络处理器的一个例子可以包括制作在网络处理器芯片上的多个互连的RISC(精简指令集计算机)处理器。网络处理器芯片可以在RISC处理器中的一些上实现改变IP包的IP地址的软件。网络处理器中其它RISC处理器可以实现控制哪一个终端接收IP数据流的软件。
交换引擎330可以包括一个预编码器(未显示),它被构造和设置以接收数据单元,从数据单元的有效载荷部分中提取内容块,确定内容块要保存在何处,并且以结构化的方式存储内容块,这样检索(如回放)涉及到检索邻近的内容块,将数据单元放入各内容块中,并且将数据单元发送给一个或多个请求者。这个过程将参考图5进行详细描述。
第一通信接口340一般被构造和设置以从一个设备(如源系统110)处接收数据单元流。此通信接口的具体实现方式可以包括一个LAN或WAN接口,LAN或WAN接口要可以使用例如高速内部连线320,来将数据单元定向至备份交换机300中的一个或多个位置。具体实现方式还可以包括传输媒体信号的其它形式,包括ETSI、DVB、ATSC或ECCA。
第二通信接口350一般被构造和设置以将数据单元流从存储系统310传输到通常响应请求的一个或多个设备,如图1所述的终端150。第二通信接口350的具体实现方式可以包括一个LAN或WAN接口,LAN或WAN接口可以使用例如高速内部连线320,来将数据单元定向至备份交换机300中的一个或多个位置。具体实现方式还可以包括除IP网络之外的传输媒体信号的其它形式。另外,第二通信接口350并不限于与第一通信接口340相同的格式类型,尽管它们可能包括相同的格式甚至是相同的物理接口。例如,第一通信接口340可以包括一个POS(Packet-over-SONET)接口,而第二通信接口350可以包括以太网(如100-Base-T吉比特以太网)的某些形式。
图4A提供了具有内存的备份交换机(如图1中的备份交换机130)的一个示例性方框图。备份交换机400A包括一个RAM阵列420A、一个交换引擎430和一个网络接口440。
RAM阵列420A可以包括一个或多个RAM内存条,被构造和设置以存储多条内容。RAM阵列420A可以至存储数据单元流的一部分。例如,输出电影数据流的提供者可以存储电影的一部分,以使多个用户可以同时收看。RAM阵列420A可以存储电影的一个窗口(如一个十分钟长的窗口),这样用户可以在将正在广播的电影保持为当前值的情况下,对电影进行时间移位(如暂停、停止播放、或重放)。
在RAM阵列420A中可以有位置标识符,以跟踪或指示哪一个内容块要打包和/或发送给终端。例如一个OSP(在线服务提供商)可以在某个特定时刻安排数据单元流发送给终端的时间。在一个例子中,备份交换机将位置标识符指示的内容块的数据流加载到RAM阵列420中。在此例中,备份交换机可以使用一个或多个指针来指示哪一个内容块(如帧)应该发送给哪一个用户。在另一个例子中,一个点播系统可以加载内容块的大部分到内存中,并且可以同时或不同时使用第一指针发送数据单元的一个数据流,并使用第二指针发送数据单元的第二数据流。
交换引擎430A被构造和设置以管理存储到和取出于RAM阵列420A中的内容。交换引擎430的各方面一般对应于图3中的交换引擎330的各部分。交换引擎430A一般向交换引擎430中加载和从交换引擎430中提取内容。可以被交换引擎430加载和提取的内容的例子包括没有包装(如OSI包装)的内容块,如将MPEG(运动图象专家组)I、P和B帧去除的数据报、视频帧和描述帧到帧变化的差分校验和值,以及具有一个或多个增加的包装的帧(如第四层数据报)。在一个具体实现方式中,交换引擎430A可以实现一个指针系统,它被设计用来跟踪终端对应于存储的可用内容的即时或顺序号码的位置。交换引擎430A可以包括一个设备、一个程序、一个软件控制器、或与上述所结合的另一个系统或设备。在另一具体实现方式中,交换引擎430A可以管理整个系统的使用,并拒绝随后的服务请求或试图从一个数据单元流向一个以上的终端服务。
网络接口440A被设计用来发送和接收数据单元流,并且一般情况下对应于图3所述的网络接口440和第二通信接口350。
图4B提供了另一个具有存储器的备份交换机400B的示例性方框图。备份交换机400B包括一个流平台410B、一个交换引擎430B和一个网络接口440B。
流平台410B被构造和设置以从数据单元流中存储内容。流平台410B包括一个硬盘驱动器412B(或一个磁带驱动器或其它的磁性存储器)和光存储器416。一般说来,流平台410B包括具有低带宽性能但高容量的存储器组件。例如,存储器可以包括比其它程序中所使用的固态存储器要慢的固态存储器(未显示)。典型情况下,因为有低带宽较大存储器,流平台410B将存储数据流(如电影)的大部分,但因为没有RAM或其它缓存接口,会限制为同时读取较少的数据流。
流平台410B的具体实现方式可以包括磁盘存储器412B,它具有对交换引擎430B的RAM接口。例如,备份交换机可以包括一个RAM内存条和磁盘存储器。内容块可以被这样加载到磁盘存储器中,使得内容块按它们被传输时的顺序取出。当内容块被取出时,它们被加载到RAM内存条中。RAM内存条的高吞吐性能可以使得更多的终端同时访问相同的内容块。读取数据单元流的终端可以使用指向RAM内存条中的内容块的指针来追踪和加载它们在数据单元流中所需的数据单元。
交换引擎430B被构造和设置以管理向流平台410中存储和从其中取出的内容。交换引擎430B一般对应于图4A所述的交换引擎430A。网络接口440B被设计用来发送和接收数据单元流,并且一般对应于图3所述的第一通信接口340和第二通信接口350。
图4A和4B所描述的基于RAM和基于存储器的系统,举例说明了考虑到现有内存和存储器系统的一般限制(如固态RAM提供了高吞吐性能,但是存储量低,而硬盘驱动器和光存储器提供了高存储量,但是吞吐量小)而设计的实现。但是,具体实现方式并不仅限于所示的这些,并且所必需的内存和存储器也不受这些限制。例如,磁盘驱动器可以用来实现管理多个指针的系统,并可以提供更高的带宽,而固态存储器可以提供比磁盘驱动器更高的存储密度。
图5显示了一个具有预编码器功能的备份交换机500的例子。备份交换机500一般对应于图1的备份交换机130。备份交换机500包括一个数据单元接口510、一个内容提取系统520、一个内容排列系统540、和一个内容存储器550。
数据单元接口510一般被构造和设置以连接于一个网络,以发送和从内容排列系统540处接收数据。一般说来,数据单元接口510的功能对应于图3的第一通信接口340和第二通信接口350的功能。数据单元接口510还可以被设置以分割和重组传输过程中被分开的数据单元,或者处理非常规数据单元。例如,数据单元接口510可以被设置以发送/接收一个或多个媒体帧(如根据ETSI、DVB、ATSC或ECCA之一格式化的帧)。在一个实例中,如果备份交换机500接收到了一个模拟信号,数据单元接口510就可以将信号转化成可识别的帧或内容块可存储的格式。
内容提取系统520被构造和设置以去除为了传输加在内容两端的数据单元的包装。例如,内容提取系统520可以去除为了传输加在内容后面的与OSI(开放系统互连)信息相关的一个或多个比特。内容提取系统520还可以在为了随后的传输从内容存储器550中提取数据时加入包装。例如,内容提取系统520可以在向内容存储器550中存储数据流时去除包装信息,并且可以在从内容存储器550中发送数据流时加入不同包装。
内容排列系统540被构造和设置以指导内容信息的存储和检索,以使得可以被以确定的方式提取。例如,内容可以被安排而使得地址信息可以以可预测的增量被更新。在另一个例子中,内容可以被安排而使得内容的帧之间的差异可以通过分析一个相关的、然后被存储的校验和来计算。
确定将内容块存储在哪里以及存储内容块的步骤可以包括使用仅限于存储内容块的硬盘驱动器。例如,内容存储器550(如硬盘驱动器)可以这样存储内容块,相同的“读”或数据检索将恢复彼此邻近经常被传输的相关内容块(如电影中的相邻帧或相邻的MPEGI、P、B帧)。
确定将内容块存储在哪里以及存储内容块的步骤可以包括使用固态存储器(如各种形式的RAM)来存储内容块。例如,固态存储器可以在RAM内存阵列中存储数据流的全部或一部分。如果RAM内存的一部分用于存储内容块,RAM可以加载内容的一个特定窗口以向一个或多个终端发送。在一些具体实现方式中,备份交换机可以在RAM阵列中存储数据单元流的一个以上的实例。
内容存储器550被构造和设置以存储内容块或帧。如上面对内容排列系统540的描述,内容一般被构造和设置用于以相关内容块可以传输给一个或多个终端的方式来恢复。内容存储器550一般对应于图3的存储器系统310、图4A的RAM阵列420A和图4B的流平台410B。
图6举例说明了一种在通信系统600中传输数据单元流的方法。通信系统600一般包括一个源系统610、一个交换机620、和终端650和670。一般说来,源系统610对应于图1中的源系统110,交换机620对应于图1中的备份交换机130、终端650和670对应于图1中的终端150的组件。
开始,源系统610响应一个请求或其它事件,生成或允许对数据单元流的访问(步骤613)。当从一个模拟输入(如模拟音频或模拟视频)中取出数据流时,这可以包括将输入转化成数据单元流。即使输入已经是数字形式,允许对数据单元流进行访问的步骤可以包括将输入再格式化为一种适当格式的数据单元流。数据单元流可以包括各种媒体流(如音频、视频、图像、文本和聊天)。典型情况下,为了在因特网上传输,数据单元为IP(互连网协议)包。源系统610然后将生成的数据单元流发送给一个或多个交换机620(如通过网络120)(步骤616)。
当交换机620从源系统610处接收数据单元(步骤622)时,典型情况下它缓存并复制至少数据单元的有效载荷部分(步骤624)。在一些具体实现方式中,数据单元属性可以在缓存有效载荷之前被去除。例如,对于因特网上的通信,交换机620可以去除IP包头信息,并且只存储有效载荷和/或有效载荷表示的信息。当数据单元被发送给终端时,交换机620修改已有的包头,或向有效载荷中加入IP包头。交换机可以使用对应于目的终端(如终端650和670)的IP地址的目的信息,或者交换机620和目的终端之间的媒介物作为目的信息。通过新获得的目的信息,交换机620通过网络(如图1中的网络140)发送IP包给适当的终端,例如图6中的终端670(步骤626)。
终端670通过网络接收交换机620发送的数据单元流(步骤672),并将数据单元转化成可预知的输出,操作数据单元,或者将数据单元转发给另一个设备。例如,终端670可以接收并显示一个包括视频内容的IP数据单元,或者在个人计算机或其它设备上操作这个视频内容。
在一些具体实现方式中,终端可以具有请求数据流的能力。例如,在图6中,尽管终端670显示为自动接收数据单元流(步骤672),终端650可以具有生成一个接收数据单元流的请求的能力(步骤652)。当交换机620接收请求时(步骤628),它可以将一个或多个数据单元流发送给终端650(步骤630)。终端650然后接收发送来的数据单元流(步骤654)。
在一些具体实现方式中,交换机620和终端650和660可以被请求周期性的通信,以保持数据流。例如,终端650可以每10秒种发送一个“保持数据流活动”的消息,以表示终端650希望在它传输过程中接收数据流。
当接收数据流时(步骤654),终端650可以请求另一个数据流(步骤652),或者可以通过发送一个停止发生数据单元流的请求(步骤656)来结束传输。在接收到结束请求或检测到数据流结束(步骤632)时,交换机620停止传输数据单元流(步骤634)。
终端650可以选择恢复数据单元流的传输,并且可以将此选择发送给交换机620(步骤658)。当交换机620接收到恢复指令(步骤636)后,交换机恢复数据流的传输(步骤638),以使终端650接收(步骤660)。
在一些具体实现方式中,当交换机620从源系统610处接收到一个IP数据单元流后,交换机620可以复制数据单元的有效载荷部分,并且可以修改或将IP数据单元的IP目的地址替换为一个或多个参考终端的特定IP地址。
典型情况下,交换机620可以将任何特定有效载荷或所有有效载荷复制一遍以上,这样所接收到数据单元的有效载荷就可以作为交换机620所生成的多个或所有数据单元的有效载荷而传输。并且,交换机620可以接收一个数据单元,并以两个或多个数据单元的形式发送有效载荷。
相反地,交换机620可以接收并且合并一个以上的数据单元,然后在一个数据单元中发送由多个数据单元合并而成的有效载荷,或者交换机620可以将所收到数据单元的有效载荷进行分割,然后将所分割的部分与两个或多个其他接收的数据单元的有效载荷进行合并。
如图7所描述的那样,因为对有效载荷进行了缓存,交换机620就可以在有移位或没有移位的情况下,同时生成所缓存的有效载荷的多个实例,并且可以按需将这些不同的实例发送给相同或不同的终端。这些实例可以被数据流化为不同的时间移位,以使得终端650可以在与终端670不同的点上侦听数据单元流。例如,终端650可以像终端670一样接收因特网无线电台上的同一首歌,但是终端650可以接收在时间上落后30秒的歌曲的对应数据单元。
图7说明了IP数据单元从一个源系统710到终端770、780和790的流程的例子。具有IP地址X.1.1.1的源系统710向交换机730发送一个目的地址为Y.1.1.1的IP包720。IP包720包括作为目的地址724的交换机地址,和作为源地址726的源系统地址。IP包720还可以包括其它头信息722和一个有效载荷728。
源地址为Y.1.1.1的交换机730至少复制IP包720的有效载荷728,并且向终端770发送地址为Z.1.1.1的IP数据单元740。IP数据单元740包括交换机730的源IP地址746和终端770的目的地址744。IP数据单元740可以包括额外的包头信息742和一个有效载荷748。用同样的行为来为终端780和790生成IP数据单元750和760。
图8说明了使用备份交换机来存储和发送数据单元的过程800。一般说来,可以使用图1-7所描述的备份交换机中一个来执行过程800。
开始,备份交换机接收一个数据单元(步骤805),并且从数据单元中选出内容块(步骤810)。典型情况下,选出数据单元中的内容块的步骤涉及识别对应于内容的数据单元的字段或部分,以及去除与内容不相关的一些或所有部分。例如,备份交换机可以去除一层或多层OSI(开放系统互连)包头,并且将数据单元的剩余部分存储为内容块。在另一例子中,选出内容可以包括创建或修改位置标识符,以当数据单元被加载入内存时识别数据单元的哪个部分应该被存储。
选出内容的步骤还可以包括将数据单元其它方面的一个或多个部分保留在内容中。例如,OSI包头的一个或多个字段可以被保留并作为内容来存储。
具体实现方式可以包括为了存储而使用一个预编码器来修改或调整内容。例如,预编码器可以对内容进行压缩以减少传输过程中所占用的带宽。在另一个例子中,预编码器可以计算出一个校验和或者表示内容内部差异的捷径(shortcut)。这个校验和或捷径(shortcut)的存储可以代替某些内容块的存储。
备份交换机确定内存系统中存储内容块的位置(步骤820)。典型情况下,存储内存块的位置的选取要使得相关内容块可以在相关操作中被恢复。相关内容的例子可以包括一个视频中连续帧和/或一个时隙中的内容。备份交换机然后将内容块存储在预定的位置中(步骤830)。
在随后的某个时刻,备份交换机接收对内容块的请求(步骤840)。接收对内容块的请求的步骤可以包括有一个用户(如图1中的终端150)请求一个视频流,以显示在用户家中的计算机上。具体实现方式还可以包括有其它设备请求内容块。例如,作为机顶盒的电缆调制解调器可以请求一个内容块来显示在电视机上。
具体实现方式还可以包括有一个发起自一个源而不是预期的目的地的请求。例如,电缆系统的管理员可以以一个或多个用户的名义发起一个内容块的请求。
备份交换机130确定哪一个内容块被请求了(步骤850)。请求者可以指定一个要发送的内容块。例如,终端可以追踪已经接收下的内容,而可以发起对一个或多个内容块的请求(如编号为100的帧丢失了)。具体实现方式还可以包括有备份交换机追踪哪一个内容块被请求。例如,备份交换机可以试图发送相同的内容块给多个用户。
备份交换机130确定内容块位于什么地方(步骤860)。为此,备份交换机可以使用图3和4所描述的位置标识符。其它实现可以使用一个文件和/或一个存档系统,对之进行维护以管理对内容块的访问。
备份交换机130恢复内容块(步骤870)。备份交换机可以通过读取由位置指定的内存位置来进行该操作。其它实现还包括恢复多个内容块(如读取磁盘的一个扇区)。
备份交换机130将内容块打包进一个数据单元(步骤880)。例如,备份交换机可以加入一层或多层OSI信息(如寻址信息)。将数据单元的一个或多个方面而不是内容与内容块一起存储的具体实现方式的步骤可以包括修改这些字段中的一个或多个参数。例如,如果存储了一个互连网协议包,目的地址可以被修改为请求用户的地址。
最后,备份交换机将数据单元发送给一个或多个终端(步骤890)。数据单元被以IP寻址以外的格式来发送。例如,发送数据单元可以包括在网络上发送一个点播信道。
下面将参考图9描述通信系统900的功能。通信系统900一般包括一个源系统902、一个管理器904、一个交换机906,和终端908和910。一般说来,源系统902对应于图1的源系统110,交换机906对应于图1的备份交换机130,终端908和910对应于图1的终端150。管理器904可以包括一个电缆系统操作员、一个OSP、一个内容提供者、或一个能够向交换机906提供指令或指示的实体。
如图所示,源系统902生成一个数据单元流(步骤913)。源系统902将数据单元流发送给交换机906(步骤916)。
交换机906接收数据单元流(步骤925)。交换机906然后至少存储数据单元流中的内容块(步骤927)。
数据流可以以各种方式来发送。在一些实现方式中,管理器904等待一个条件的发生(步骤918)。例如,管理器可以是一个调度程序,它被编程以指导备份交换机“广播”。当条件发生时(步骤920),管理器904发送一个请求给交换机906以发送数据单元流(步骤923)。
或者,终端908可以生成一个数据流请求(步骤933)。例如,终端908可以生成一个请求以观看特定的视频流。交换机906接收这个请求(步骤930)。
在一个一般对应于图4A所描述的系统的具体实现方式中,交换机906可以将一个或多个内容块加载到高速内存(如RAM)中(步骤931)。例如,交换机906可以确定出对已有的存储内容来说没有足够的带宽,并且可以将经常访问的内容块加载到高速内存中以提高容量。
除了用于指示什么时候将数据单元流发送给一个终端的机制外,交换机906可以将数据单元流发送给两个或多个终端908、910(步骤936)。在一些具体实现方式中,终端接收广播数据流,或者其它的在没有请求数据单元流的情况下自动发送给流接收者的数据流。在任何一种情况下,终端908和910接收数据单元流(步骤940和940A)。根据具体实现方式,可以将内容块的不同“栈”加载入内容以支持终端910。
在一些具体实现方式中,终端908可以生成并发送一个暂停消息(步骤945)。例如,终端可能希望“暂停”一个视频点播流,并在随后返回到数据流。当交换机906接收到了暂停消息(步骤950)后,交换机906暂停向终端908发送(步骤955)。交换机906可以仍然向终端910发生数据单元流(未显示)。可以以多种方式来实现暂停消息。例如,终端908可以追踪接收到的数据单元并且通过生成和发送一个恢复消息,以从停止的地方重新开始(步骤960)。另一个例子可以包括终端908发送一个停止消息,以及交换机906追踪当收到恢复消息时从哪里重新开始(步骤960)。
如果当交换机906接收到恢复消息后,交换机906发送数据单元流970给终端(步骤970)。然后终端908接收数据单元流(步骤975)。
图10A描述了一个被构造和设置以存储数据单元流的多个实例的备份交换机1000A。备份交换机1000A发送两个数据单元流,流A和流A’。流A占用内存条中的内存存储器1010A,而流A’占用内存条中的内存存储器1020A。在一个具体实现方式中,一个指向内存存储器1010A的第一指针1015A指示出与其它内存块相关的哪一个内存块应该被封装成一个数据单元,并发送给请求流A的终端。如前面所描述的,具体实现方式可以包括将内容块的一部分存储到内存条中。例如,如果网络条件有问题而终端接收内容单元的某些数据流产生了阻碍,终端将可能接收不到某些内容块,并可能在接收数据流的过程中经历间断(如丢失了电影中的时间)。
一个指向内存存储器1020A的第二指针1025A指示了封装在数据单元流中的内存块的哪一部分正在发送给多个终端。希望接收一个或多个数据单元的一个或多个终端接收对应于第二指针1025A的内容块,第二指针1025A连续地前进到下一个内容块。在一些具体实现方式中,第二指针1025A可以前进几个内存块并且将一个以上的数据块封装入一个数据单元。
图10B描述了一个被构造和设置以存储多个内容标识符的备份交换机1000B。在这个例子中,备份交换机1000B指示了流A中的五个内存块A1 1010、A2 1020、A3 1030、A4 1040和A5 1050。备份交换机1000B还包括为预期内容块A6 1060所分配的内容区域。
在一个例子中,备份交换机1000B使得每一个终端T、U、V都可以接收它自己的数据单元流。每一个终端管理一个位置标识符(如指针)以指导备份交换机来选择适当的要发送的内容块。例如,终端T、U和V可以通过同时请求内容块A1 1010来开始。
在已经发送了一些内容块之后,如图10B所示,终端T的位置标识符1025可以指向内容块A2 1020,而终端U和V的位置标识符1042和位置标识符1044指向内容块A4 1040,对应于不同于内容块A2的一个不同时间移位。这个偏移可能已经发生,例如,因为终端T暂停了数据单元流的接收,并且正在接收显示与终端U和V所接收的那些相关的内容块。
在另一个例子中,备份交换机1000B包括流B中五个内容块B1 1070、B2 1071、B3 1072、B4 1073和B5 1080。备份交换机1000B还包括为预期内容块B6 1090所分配的内存区域。在一个具体实现方式中,流B可以与流A相同都是同一数据单元流的一部分,但是可以对应于数据单元流的一个不同部分。例如,流A可以是一个视频流中的一个40分钟的“视频”流,而流B是相同视频流中的一个五分钟的流。在另一个例子中,例如B可以与流A相同,被加入以实现更好的系统性能。在另外的一个例子中,流A和流B可以表示完全不同的视频流(如两个不同的电视频道)。
图11说明了用于在备份交换机上实现“暂停”功能的过程1100,例如是图1-10所描述的备份交换机。开始,备份交换机接收一个数据单元流(步骤1110),并且存储数据单元流中的内容(步骤1120)。具有了存储的内容块和准备好了发送,备份交换机等待接收一个播放这个数据单元流的请求(步骤1130)。尽管备份交换机可以等待一个请求播放消息,在一些具体实现方式中,备份交换机可以当接收到数据流后就开始发送(如播放)。在这种配置下,可能只有当用户请求数据流暂停时才存储内容。
在一个可选实现方式中,备份交换机可以将数据流(内容块)加载到快速内存中(步骤1140)。这一般对应于如图6所述的将数据流加载入快速内存的步骤。
备份交换机发送数据单元流(步骤1150)。在发送数据流时,备份交换机130可以接收暂停请求(步骤1160)。如果备份交换机130接收到了一个暂停请求,备份交换机就停止将数据单元流发送给终端(步骤1165)。在数据单元流是暂停时,备份交换机130可以等待接收播放请求(步骤1170)。
如果收到了播放请求,备份交换机130继续从终端停止的地方开始发送数据单元流(步骤1180)。如果没有,则备份交换机130等待恢复请求。当终端重新开始接收数据单元流时,备份交换机检查新的暂停请求(步骤1160)。
如果备份交换机130没有接收到暂停请求,备份交换机可以接收一个停止请求或到达了数据流的末尾(步骤1185)。如果收到了停止请求或者到了数据单元流的末尾,则备份交换机停止发送(步骤1190)。如果没有,备份交换机130继续发送并回到等待暂停请求的状态(步骤1160)。
停止发送可以包括自动选择另一个数据单元流来发送。例如,当一个视频结束后,备份交换机130可以选择另一个视频来发送。
可以使用类似的过程来创建“立即重放”或回放特性,但是不是从生成数据流的地方重新开始数据流的发送,而是时间移位到数据流的一个先前时刻来重传数据流(如30秒为商业事件,15秒为体育项目)。例如,备份交换机可以从内存中加载表示30秒以前的数据流,并且发送较早位置开始的那个内容(从那个点继续)。
其它的实现也包含在下列权利要求的范围内。特别是,在一些具体实现方式中,终端可以包括用于接收模拟信号的机顶调谐器。并且,图11中所描述的位置标识符可以在客户端维护,或在一个独立的服务器或设备上,以指示终端正在接收哪一个内容块。
具体实现方式还包括一个请求将数据流发送给终端的管理器。管理器可以包括一个网络操作员、一个管理服务器、一个工作站或一个调度代理。例如一个管理工作站可以请求在一个特定时刻开始向终端发送数据单元流。
具体实现方式还可以包括在缓冲区内存储数据单元流中的一个以上的实例。例如,备份交换机可以存储数据流的一个以上的拷贝,以适应大数量的请求。在另一个例子中,数据流可以将同一数据单元流存储在缓冲区的两个不同点上。
具体实现方式还包括交换机维护一个或多个请求用户的状态信息。例如,交换机可以建立或帮助其它设备建立接收数据单元流的设备的一个简介(profile)。以此方式,交换机使得信息可用于网络处理器和设备以建立简介(profile),这在通常情况下是服务器访问不到的。
还有,具体实现方式还包括监视交换机的访问和使用水平。例如,交换机可以判断出交换机正在运行在最大性能的85%的水平上,以某种标准(如处理器使用、内存使用、用户数量、带宽)来衡量。
具体实现方式可以包括在不同格式之间对内容进行翻译或代码转化。例如,交换机可以调整包的传输以使占用的带宽最小。在另一个例子中,交换机可以将专用视频编码格式转化成标准编码格式。
具体实现方式还可以包括在一个已有的数据单元流中插入一个或多个内容快。例如,交换机可以在视频内容的传输中插入视频广告流。插入的视频内容可以驻留在交换机上,或它可以从交换机以外的发送数据单元流的另一个设备中访问。插入内容的实现可以包括创建与被复制的特定内容块相关的标记(tag)。例如,交换机可以在复制电视节目时,周期性地加入商业标记。在接收到标记后,交换机可以停止发送电视节目,而读取一系列的广告。具体实现方式可以包括指定标记对应的读取广告。例如,标记可以指示出广告所在的设备。标记的具体实现方式还可以允许广告的多个选择。广告的选择可以由一个或多个变量来确定, 包括但并不仅限于终端信息和简介(profile),网络的状态和其它因素。
另外,具体实现方式可以包括根据所维护的用户简介(profile)和用户状态信息来插入内容。例如,交换机可以确定处于内容块的适当位置的终端应接收为具有特定简介(profile)的用户所插入的广告。
数据源、网络、点播系统和终端还可以分布在通信系统中的不同实体中,并且可以利用一个或多个中介和/或代理来执行特定的功能。
权利要求
1.一种使数据单元流入终端的方法,此方法包括使用一个备份交换机来接收数据单元的第一数据流;使用此备份交换机存储第一数据流中的内容;使用此备份交换机生成包含了所存储的内容的第二数据流,以供所具有的寻址信息不是第一数据流的一部分的多个终端来使用;使用此备份交换机来使第二数据流对终端是可获得的,其中此备份交换机被设置用来复制第一数据流的一个或多个部分。
2.如权利要求1所述的方法,其中使用备份交换机来存储内容包括存储与正在生成的数据单元暂时相关的内容。
3.如权利要求1所述的方法,还包括使用一个位置标识符来指示内容的哪一部分正在被生成到第二数据流中。
4.如权利要求3所述的方法,还包括使用位置标识符来以时间移位的方式读取内容,就像读取两个不同的数据流一样。
5.如权利要求5所述的方法,其中使用备份交换机来存储内容包括存储内容的相同部分的一个以上的实例。
6.如权利要求1所述的方法,其中使用备份交换机来存储内容包括当内容的需求增加时存储数据流的额外的实例。
7.如权利要求1所述的方法,其中使用备份交换机来存储内容包括存储内容及相关的包头信息。
8.如权利要求1所述的方法,其中使用备份交换机来存储内容包括存储描述内容的校验和。
9.如权利要求1所述的方法,其中第二数据流中的至少一个被发送出去,以响应接收到的来自终端的请求。
10.如权利要求1所述的方法,其中第二数据流被发送出去,以响应接收到的来自服务提供商的请求。
11.如权利要求1所述的方法,其中存储内容包括使用位置标识符来追踪数据流的单个存储实例的同步传输,发送包括将单个存储实例中的不同数据单元发送给多个请求者,请求者的终端接收重叠但有一个时间差的数据流。
12.如权利要求1所述的方法,其中备份交换机是一个专用设备,它包括被设置以执行接收数据单元的第一数据流,存储第一数据流中的内容,生成第二数据流,使得第二数据流可获得中的一个或多个操作的硬件。
13.一种备份交换机,包括用于接收数据单元的第一数据流的装置;用于存储第一数据流中的内容的装置;用于生成包含了所存储的内容的第二数据流,以供所具有的寻址信息不是第一数据流的一部分的多个终端来使用的生成装置,此生成装置被设置以复制第一数据流的一个或多个部分;以及用于使第二数据流在终端处可获得的装置。
14.如权利要求13所述的备份交换机,其中用于存储内容的装置包括用于存储与正在生成的数据单元暂时相关的内容的装置。
15.如权利要求14所述的备份交换机,还包括使用一个位置标识符来指示内容的哪一部分正在被生成到第二数据流中的装置。
16.如权利要求15所述的备份交换机,还包括使用位置标识符来以时间移位的方式读取内容,就像读取两个不同的数据流一样的装置。
17.如权利要求13所述的备份交换机,其中用于存储内容的装置包括用于存储内容的相同部分的一个以上的实例的装置。
18.如权利要求17所述的备份交换机,其中用于存储内容的装置包括用于当内容的需求增加时存储数据流的额外实例的装置。
19.如权利要求13所述的备份交换机,其中用于存储内容的装置包括用于存储内容及相关的包头信息的装置。
20.如权利要求13所述的备份交换机,其中用于存储内容的装置包括用于存储描述内容的校验和的装置。
21.如权利要求13所述的备份交换机,其中用于使第二数据流可获得的装置包括用于发送第二数据流中的至少一个、以响应接收到的来自终端的请求的装置。
22.如权利要求13所述的备份交换机,其中通过使第二数据流可获得的装置发送第二数据流,以响应接收到的来自服务提供商的请求。
23.如权利要求13所述的备份交换机,其中用于存储内容的方法包括使用位置标识符来追踪数据流的单个存储实例的同步传输的装置,用于发送的装置包括用于将单个存储实例中的不同数据单元发送给多个请求者的装置,请求者的终端接收重叠但有一个时间差的数据流。
24.如权利要求13所述的备份交换机,其中装置方法包括一个专用设备,该专用设备包括被设置以执行接收数据单元的第一数据流,存储第一数据流中的内容,生成第二数据流,使得第二数据流可获得中的一个或多个操作的硬件。
25.一种备份交换机,包括第一通信接口,被构造和设置以接收数据单元的第一数据流;存储处理器,被构造和设置以存储第一数据流中的内容;交换处理器,被构造和设置以生成包含了所存储的内容的第二数据流,以供所具有的寻址信息不是第一数据流的一部分的多个终端来使用,此交换处理器被设置以复制第一数据流的一个或多个部分;以及第二通信接口,被构造和设置以使第二数据流对终端是可获得的。
26.如权利要求25所述的备份交换机,其中的存储处理器被构造和设置以存储与正在生成的数据单元暂时相关的内容。
27.如权利要求26所述的备份交换机,还包括一个第一内存处理器,被构造和设置以使用一个位置标识符来指示内容的哪一部分正在被生成到第二数据流中。
28.如权利要求27所述的备份交换机,还包括一个第二内存处理器,被构造和设置以使用位置标识符来以时间移位的方式读取内容,就像读取两个不同的数据流一样。
29.如权利要求25所述的备份交换机,其中存储处理器被构造和设置以存储内容的相同部分的一个以上的实例。
30.如权利要求29所述的备份交换机,其中存储处理器被构造和设置以当内容的需求增加时存储数据流的额外实例。
31.如权利要求25所述的备份交换机,其中存储处理器被构造和设置以存储内容及相关的包头信息。
32.如权利要求31所述的备份交换机,其中存储处理器被构造和设置以存储描述内容的校验和。
33.如权利要求25所述的备份交换机,其中第二通信接口被构造和设置以使得第二数据流中的至少一个是可获取的,以响应接收到的来自终端的请求。
34.如权利要求25所述的备份交换机,其中通过第二通信接口发送第二数据流,以响应接收到的来自服务提供商的请求。
35.如权利要求25所述的备份交换机,其中存储处理器被构造和设置以使用位置标识符来追踪数据流的单个存储实例的同步传输,第二通信接口被构造和设置以用于将单个存储实例中的不同数据单元发送给多个请求者,请求者的终端接收重叠但有一个时间差的数据流。
36.如权利要求25所述的备份交换机,其中交换处理器是一个专用设备,它包括被设置以执行接收数据单元的第一数据流,存储第一数据流中的内容,生成第二数据流,使得第二数据流可获得中的一个或多个操作的硬件。
37.一种发送数据包的方法,此方法包括使用一个交换机来接收数据单元流,数据单元包括一个有效载荷部分和一个属性部分;使用一个交换机来至少复制数据单元流中的数据单元的有效载荷部分;使用一个交换机来使得复制的数据单元的有效载荷部分能够被两个或更多的终端读取。
38.如权利要求37所述的方法,其中数据单元包括一个互联网协议包。
39.如权利要求38所述的方法,其中数据单元的属性部分包括一个互联网协议包头。
40.如权利要求37所述的方法,其中数据单元的属性部分指定一条或多条第三层信息。
41.如权利要求37所述的方法,还包括使用交换机来生成不同的属性部分,并将不同的属性部分与由交换机生成的有效载荷部分的副本相关联。
42.如权利要求37所述的方法,其中使用交换机来至少复制有效载荷部分包括只复制数据单元的有效载荷部分。
43.如权利要求41所述的方法,其中使用交换机来将不同属性部分与数据单元和有效载荷部分的副本相关联,包括指定有效载荷部分的副本中各不相同的目的信息。
44.如权利要求37所述的方法,其中使用交换机来复制包括使用交换机复制有效载荷部分和属性部分。
45.如权利要求41所述的方法,其中使用交换机来生成不同的属性部分并关联不同属性部分包括改变IP目的地址。
46.如权利要求45所述的方法,其中改变IP目的地址包括将IP目的地址改变为与将能够读取有效载荷部分的一个或多个终端相对应的IP地址。
47.如权利要求37所述的方法,其中使用数据单元包括音频内容。
48.如权利要求37所述的方法,其中数据单元包括视频内容。
49.如权利要求37所述的方法,其中数据单元包括流媒体。
50.如权利要求37所述的方法,还包括从两个或更多的终端中的至少一个请求终端处接收一个接收数据单元流的请求。
51.如权利要求50所述的方法,其中使用交换机以使得可以读取数据单元流的有效载荷部分,包括响应请求使得所述至少一个请求终端可以读取。
52.如权利要求50所述的方法,其中请求是从终端之外的一个设备处接收的。
53.一种交换机,包括第一通信接口,被构造和设置以接收一个或多个数据单元的数据流,其中每一个数据单元都包括一个有效载荷部分和一个属性部分;缓冲器,被构造和设置以至少存储所接收的数据流所包括的数据单元的有效载荷部分;复制器,被构造和设置以至少复制一个或多个数据单元的有效载荷部分;以及第二通信接口,被构造和设置以可以被两个或更多的终端访问由复制器复制的有效载荷部分。
54.如权利要求53所述的交换机,其中数据单元包括一个互联网协议包。
55.如权利要求53所述的交换机,其中数据单元的属性部分指定了一条或多条第三层信息。
56.如权利要求53所述的交换机,还包括一个处理器,被构造和设置以生成不同的属性部分,并将不同的属性部分与复制器所复制的有效载荷部分相关联。
57.如权利要求56所述的交换机,其中所述处理器被构造和设置以指定有效载荷部分的复制版本中各不相同的目的信息。
58.如权利要求56所述的交换机,其中所述处理器被构造和设置以改变IP目的地址。
59.如权利要求56所述的交换机,其中所述处理器被构造和设置以将IP目的地址改变为与通过使用第二通信接口而可以访问有效载荷部分的终端相对应的IP地址。
60.如权利要求53所述的交换机,其中复制器被构造和设置以复制有效载荷部分和属性部分。
61.如权利要求53所述的交换机,其中数据单元包括音频内容。
62.如权利要求53所述的交换机,其中数据单元包括视频内容。
63.如权利要求53所述的交换机,其中数据单元包括流媒体。
64.如权利要求53所述的交换机,还包括一个第三通信接口,被构造和设置以从两个或多个终端中的至少一个请求终端处接收一个接收数据单元流的请求。
65.如权利要求64所述的交换机,其中第二通信接口被构造和设置以响应请求而使得至少一个请求终端可以访问有效载荷部分。
66.如权利要求64所述的交换机,其中所述请求者包括一个终端以外的设备。
67.如权利要求53所述的交换机,其中第二通信接口将复制的数据单元流发送给两个不同的终端。
68.如权利要求67所述的交换机,其中所述两个不同终端在两个不同的临时偏移点接收数据单元流。
69.如权利要求53所述的交换机,其中复制器包括指向缓冲器的内容的一个以上的指针,以使得第一终端可以在数据单元流中与第二终端不同的位置处接收数据单元流。
70.如权利要求53所述的交换机,其中缓冲器包括数据单元流的一个以上的实例。
71.如权利要求53所述的交换机,其中复制器被构造和设置以只复制数据单元的有效载荷部分。
72.一种接收数据单元的复制数据流的方法,此方法包括连接于一个网络,此网络包括一个能够复制数据单元流并使得复制的数据单元流可以被一个以上的终端所访问的交换机;从交换机处接收数据单元流,其中数据流中的每一个数据单元都包括一个被交换机复制的有效载荷部分和一个属性部分。
73.如权利要求72所述的方法,还包括基于数据单元流生成可预知的输出。
74.如权利要求72所述的方法,其中数据单元的属性部分包括IP包头。
75.如权利要求72所述的方法,其中数据单元的属性部分指定一条或多条第三层信息。
76.如权利要求72所述的方法,其中数据单元包括音频内容。
77.如权利要求72所述的方法,其中数据单元包括视频内容。
78.如权利要求72所述的方法,其中数据单元包括流媒体。
79.如权利要求72所述的方法,还包括生成一个接收数据单元流的请求。
80.如权利要求79所述的方法,其中响应请求而接收数据单元的有效载荷部分。
81.一种将数据单元发送给终端的方法,此方法包括连接于一个网络,此网络包括一个或多个能够至少复制数据单元流中的数据单元的有效载荷部分的交换机,其中数据单元包括一个属性部分和一个有效载荷部分;将数据单元流发送给交换机,以至少复制数据流中的数据单元的有效载荷部分,以发送给两个或更多的终端。
82.如权利要求81所述的方法,其中数据单元包括音频内容。
83.如权利要求81所述的方法,其中数据单元包括视频内容。
84.如权利要求81所述的方法,其中数据单元包括流媒体。
85.如权利要求81所述的方法,其中数据单元的属性部分包括一个IP包头。
86.如权利要求81所述的方法,其中数据单元的属性部分指定了一条或多条第三层信息。
87.一种交换机,包括用于接收一个或多个数据单元的数据流的第一通信接口装置,其中数据单元包括一个有效载荷部分和一个属性部分;用于至少存储接收到的数据流中所包括数据单元的有效载荷部分的缓冲器装置;用于至少复制一个或多个数据单元的有效载荷部分的复制器装置;用于使两个或多个终端可以访问复制器所复制的有效载荷部分的第二通信接口装置。
88.一种系统,包括一个源系统,被构造和设置以可以访问数据单元流;一个交换机,被构造和设置以从源系统接收数据单元流,以至少复制数据流中的数据单元的有效载荷部分,以将复制的有效载荷部分发送给两个或更多的终端;一个或多个终端,被构造和设置以接收交换机所复制的数据单元流。
全文摘要
通过使用备份交换机来接收数据单元流,使用备份交换机来存储数据流中的内容,使用备份交换机来生成包含了存储的内容以及对应于一个以上的终端(其寻址信息并不是第一数据流的一部分)的地址信息的第二数据流,使用备份交换机来使得第二数据单元流对两个或更多的终端是可获取的,以使数据单元流入终端。
文档编号H04N7/16GK1559037SQ02810728
公开日2004年12月29日 申请日期2002年4月30日 优先权日2001年4月30日
发明者吉尔·韦甘德, 吉尔 韦甘德, J 勒杜凯尔, 威廉·J·勒杜凯尔, K 布朗, 斯高特·K·布朗, 大卫·比尔, 比尔 申请人:美国在线服务公司