用于传输基于媒体的文件的系统和方法转让专利

申请号 : CN200480007923.4

文献号 : CN1764897B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 托马斯·P·纽伯里克里·W·卡尔弗特

申请人 : 汤姆森特许公司

摘要 :

公开了一种通过网络(170)传输所请求的媒体文件的方法和系统。服务器(115)的主控制器(120)将媒体对象分区。然后服务器的主控制器(120)将所述分区的媒体对象的片段分派给文件分区处理器(130),以通过网络(170)传输给请求该媒体对象的客户(140)。文件分区处理器(130)通过网络在用户数据报协议(UDP)端口上将片段传输给客户。然后当将原始的片段成功地传输给客户(140)时,主控制器(120)将所述分区的媒体对象的第二片段分派给文件分区处理器(130)。响应于文件分区处理器(130,160)的可获得性和客户(140)指定的条件,来确定媒体对象的分段。

权利要求 :

1.一种将媒体对象进行分段以在网络(170)上传输的方法,包括步骤:将媒体对象分区为第一和第二片段,其中所述分区是基于在请求媒体对象的客户端的、影响媒体文件分段和这种传输的分段的错误恢复两者的资源的可获得性而进行的;

将所述第一片段分派给一组文件分区处理器(130,160);和将所述第一片段传输给用户数据报协议UDP端口。

2.根据权利要求1所述的方法,包括步骤:

向控制器通知所述一组文件分区处理器已经传输了所述第一片段;和将所述第二片段分派给所述一组文件分区处理器以进行传输,

其中,所述一组文件分区处理器包括至少两个文件分区处理器。

3.根据权利要求2所述的方法,其中所述控制器操作所述至少两个文件分区处理器,其中所述第一片段是主片段,并且被分割为第一和第二次片段,其中每个次片段被所述控制器分派给所述至少两个文件分区处理器中的一个文件分区处理器。

4.根据权利要求3所述的方法,其中在将作为主片段的所述第二片段分割为第三和第四次片段并且被所述至少两个文件分区处理器传输之前,由所述至少两个文件分区处理器成功地传输所述第一和第二次片段。

5.根据权利要求2所述的方法,其中所述控制器和所述至少两个文件分区处理器是用于传输所述媒体对象的服务器的部分。

6.根据权利要求2所述的方法,其中所述控制器使用基于传输控制协议和因特网协议TCP/IP的传输与位于接收所述媒体对象的客户侧的第二控制器进行通讯,并且所述至少两个文件分区处理器使用UDP端口与服务器通讯。

7.根据权利要求2所述的方法,其中所述控制器跟踪在链接列表中没有被成功传输的丢失片段,其中所述控制器使得负责所述丢失片段的文件分区处理器重新传输所述丢失的片段。

8.根据权利要求3所述的方法,其中,当所述至少两个文件分区处理器中的第一文件分区处理器没能发送所述第一次片段时,所述控制器将所述分区的媒体对象的第一次片段重新分派给所述至少两个文件分区处理器中的第二文件分区处理器。

9.根据权利要求1所述的方法,其中使用符合多播的传输方案将所述第一片段传输以由多个客户接收。

10.一种经过网络接收用于传输的分段的媒体对象的方法,包括步骤:请求经过网络(170)传输的媒体对象;

接收指示用于接收所述媒体对象的片段的用户数据报协议UDP端口的指令,其中将所述媒体对象分区为至少两个片段,其中所述分区是基于在请求媒体对象的客户端的、影响媒体文件分段和这种传输的分段的错误恢复两者的资源的可获得性而进行的;和在所述UDP端口上接收所述片段。

11.根据权利要求10所述的方法,其中由客户的主控制器来提出对所述媒体对象的所述请求,并且由所述主控制器来协调接收片段的所述步骤,其中所述主控制器操作所述客户的文件分区处理器。

12.根据权利要求11所述的方法,其中在接收所述媒体对象的片段的所述步骤期间,所述主控制器指示接收所述媒体对象的期望速率和在所述客户处的资源可获得性。

13.根据权利要求10所述的方法,其中客户接收所述片段作为由多个客户接收的、符合多播的传输方案的部分。

14.根据权利要求11所述的方法,其中所述主控制器使用基于传输控制协议和因特网协议TCP/IP的传输方案与处于传输所述媒体对象的服务器侧的第二主控制器进行通讯,并且所述文件分区处理器使用UDP端口与服务器通讯。

15.一种用于传输媒体对象的设备,包括:

主控制器(120,150),用于分区所述媒体对象,其中所述分区是基于在请求媒体对象的客户端的、影响媒体文件分段和这种传输的分段的错误恢复两者的资源的可获得性而进行的;

多个文件分区处理器(130,160),用于传输所述分区的媒体对象的片段,其中所述主控制器(120,150)还根据可获得的文件分区处理器(130,160)来确定如何将所述媒体对象分区,并且所述主控制器(120,150)将所述分区的媒体对象的片段分派给从多个文件分区处理器中选择的文件分区处理器(130,160)。

16.根据权利要求15所述的设备,其中所述文件分区处理器经由用户数据报协议UDP端口来传输所述片段。

17.一种用于接收媒体对象的设备,包括:

主控制器(120,150);和

多个文件分区处理器(130,160),用于接收分区的媒体对象的片段,其中所述分区是基于在请求媒体对象的客户端的、影响媒体文件分段和这种传输的分段的错误恢复两者的资源的可获得性而进行的,其中所述主控制器(120,150)确定如何重新构建所述分区的媒体对象的所述片段。

18.根据权利要求17所述的设备,其中所述文件分区处理器经由用户数据报协议UDP端口来接收所述片段。

说明书 :

技术领域

本发明涉及一种数字音频和视频文件的传输,具体的涉及通过网络传输媒体对象。

背景技术

随着在卫星和有线产业中的增长,已经有明显的需求来开发用于将完整长度的电影输送到家庭多媒体用户的架构。一种所谓视频点播(VOD)的输送概念根据用户所做的选择来将电影提供给用户。用户可以经由电子节目向导(EPG)来选择节目,EPG列出了可以经过广播服务接收的可获得的媒体。一旦选择了电影,广播系统会将电影传输给家庭用户,该传输可以经过有线装置(诸如MPEG 2数字有线传输)、卫星广播(如DBS,DIRECTVTM,DISHNETWORKTM等)、地面广播(UHF,VHF,或用于接收标准清晰度/高清晰度节目的广播频道,等)、或双绞线连接(诸如DSL等)而发生。
传输数字视频(音频)文件,之前称为媒体对象,的复杂性需要传输架构能够处理大尺寸的数字视频文件。例如,作为显示格式,要求将媒体对象以“接近于运动图像质量”(如高清晰度电视)来进行显示就需要传输架构要求网络支持大约20Mbit/sec的吞吐量。传输架构还必须具有低传输错误率,以便不破坏视频/音频传输的要求。例如,DBS卫星系统必须具有从10^-9到10^-11比特范围内的误码率以提供可以接受的服务质量(QOS)。
如果将媒体对象分成分立的片段,则可以降低破坏媒体对象传输的错误的概率。被称为数据包的这种片段将媒体对象分成可以在传输架构的接收端被重建的独立部分。用于打包数据文件的一种已用技术符合MPEG-2数据编码标准以创建数据流(见MPEG-2规定ISO-13818-1)从而编码和传输分离的数据包。
但是用于传输媒体对象的这种技术没有有效的使用带宽。诸如文件传输协议(FTP)的用于传输媒体对象的其他已知技术也受限于物理限制条件,其中不论基础连接的可获得链路速度是多少,每秒只可以传输300千字节。此外,一些媒体对象传输技术能够利用连接的可获得带宽。尽管这样的技术在媒体对象的传输中使用冗余数据包,其可能要求编码开销是原始媒体对象的大小的两倍。因此,这种媒体对象传输低效地使用一半的可获得带宽用于错误修正。

发明内容

一种通过网络根据这种网络的物理能力来分派传输媒体对象的系统和方法。将媒体对象解析为多个被分段的分区,并根据在客户端的资源和接入点的可获得性以及在这样的接入点与传输这样的媒体对象的服务器之间的网络连接,而将其传输到客户。

附图说明

根据结合附图而提供的、本发明的优选实施例的下面详细说明,本发明的上述和其他的优点和特点将能够被更好地理解。附图的各种特征可能不成比例。在所述附图中包括下面的图:
图1示出了根据本发明的示例实施例的系统示意图;
图2示出了根据本发明的示例实施例将被分区的媒体对象发送到单个客户的系统的示意图;
图3示出了根据本发明示例实施例将被分段的媒体对象经由多播操作进行传输的系统的示意图;
图4示出了根据本发明示例实施例将媒体对象分段为多个分区的传输处理的流程图;
图5示出了分区的媒体对象的文件片段的示例实施例;和
图6示出了根据本发明示例实施例,在分区的媒体对象的多播传输期间指示数据包丢失的两维阵列。

具体实施方式

虽然通过示例实施例来说明了本发明,但是其并不限于此。反而,应该从广义上理解所附的权利要求,以包括本发明的实施例和其他变形,只要它们是在不偏离本发明的等效物的范围而由本领域的技术人员做出的。
本发明是一种系统和方法,用于传输和接收音频、视频、或两种媒体类型的结合作为媒体文件或“媒体对象”。如在这里所使用的,术语“媒体对象”包括音频、视频、文本、多媒体数据文件、和流媒体文件。多媒体对象包括文字、图像、视频、和音频数据的任何组合。流媒体包括可以经由因特网、卫星或其他通讯网络环境被传送给用户并且在整个文件的发送完成之前就开始在用户的计算机/设备上播放的音频、视频、多媒体、文本、和互动数据文件。可以在包括经由因特网、卫星(DSS,DVB-S)、电缆、DSL、T1线路、无线网络、或其他能够发送媒体对象的发送系统的任何通讯网络上传输媒体对象。
媒体对象的内容的例子包括歌曲、政治演讲、新闻广播、电影预告片、电影、电视节目广播、无线电广播、金融电话会议、现场音乐会、网络摄像电影胶片(footage),和其他具体事件。可以以各种格式将媒体对象进行编码,包括REALAUDIO,REALVIDEO,REALMEDIA,APPLE QUICKTIME,MCIROSOFT WINDOWSMEDIA FORMAT,QUICKTIME,MPEG-2 VIDEOCOMPRESSION,MPEG-4 VIDEO AND/OR AUDIO COMPRESSION,JOINTVIDEO TEAM COMPRESSION FORMAT(MPEG-4 part 10 AVC,H.264),MPEG-2 LAYER III AUDIO,MP3。通常,用指示与具体格式的兼容性的扩展名(后缀)来指示媒体对象。例如,以扩展名.ram、.rm、.rpm之一结尾的媒体对象(例如视频和音频文件)与REALMEDIA格式兼容。在表一中列出了文件扩展名的和它们的兼容格式一些例子。在http://www.bower.cc/extentions2.htm处可以发现更加详尽的媒体类型、扩展名和兼容格式的列表。
  格式   扩展名   REALMEDIA   .ram,.rm,.rpm   APPLE QUICKTIME   .mov,.qif   MICROSOFT  WINDOWSMEDIA  PLAYER   .wma,.cmr,.avi   MACROMEDIA  FLASH   .swf,.swl   MPEG   .mpg,.mpa,.mp1,.mp2   MPEG-2 LAYER III音   .mp3,.m3a,.m3u   频
表1
本发明的优选实施例对包括用于代表“接近于运动图像质量”的视频表示的视频数据的媒体对象进行操作。可以用诸如MPEG-2(运动图像标准组标准ISO/IEC 13818-1:2000)和ITU-TH.264/MPEG AVC(ISO/IEC 14496-10)的各种格式将这种媒体对象进行编码,或将其解压缩。而且,还可以在诸如电影或电视节目的后期制作的应用、和需要大媒体对象的传输的应用的专业领域中使用本发明的所述实施例。
在图1中,示出了根据本发明的传输系统。系统100显示了用于将大媒体对象传输给客户140的传输系统的实施例。文件服务器110是诸如硬盘驱动器的矩阵的存储设备,其具有能够存储多个媒体对象的千兆字节容量和/或兆兆字节容量。通过局域网将文件服务器110耦合到容纳诸如主控制器120的控制元件的服务器115,并且耦合到文件分区处理器130。最好服务器115包括能够传输通过网络170传输的媒体对象的主机计算机或系列的计算机。注意根据本发明的原则,可以将任何公开的主控制器和文件分区处理器实现为硬件、软件、或硬件和软件的组合。
主控制器120对于将分区的媒体对象经过网络170向客户140的传输进行管理。主控制器120还谐调文件服务器110和文件分区处理器130的操作,以将媒体对象分段为多个分区。文件分段的根据是在请求媒体对象的客户端的、影响媒体文件分段和这种传输的分段的错误恢复两者的资源的可获得性。最好通过符合TCP/IP的网络连接来处理主控制器120和客户140之间的控制通讯。
文件分区处理器130负责根据从主控制器120发布的指令来检索和传输媒体对象的适当的片段。最好文件分区处理器130在如Postel,J.“UserDatagram Protocol”,Request for Comments 768,USC/Information ScienceInstitute,August 1980中所述的网络连接上,使用基于UDP的协议将其关联的文件片段传输给客户140。一组文件分区处理器130理想地以同时或平行的方式将它们的各个片段或数据包进行传输,所以以同时的方式在客户140处接收所传输的数据。
网络170可以是在现有技术中已知的任何类型的网络。最好,这种网络能够在服务器的服务器侧的资源和在客户的客户侧的资源之间提供多个连接,这种连接可以是基于UDP的、基于TCP/IP的、或两者的混合。由网络150提供的带宽最好是大带宽连接,如T1连接(1.5兆比特每秒,Mbps)、T3连接(45Mbps)、DS3连接(45Mbps)、OC3连接(155Mbps)、OC12(248000Mbps)等。
客户140最好包括能够接收通过网络170传输的媒体对象的系列计算机或主机计算机。最好,每个客户140都具有与IP地址和端口地址相关联的系列接入点或节点。示出这种接入点作为在客户侧的主控制器150和文件分区处理器160。
由文件分区处理器130将分区的媒体对象的片段经由UDP传输到客户140的接入点的端口和IP地址,如上所述。可以由与客户140关联的接入点所关联的对应的网络接口卡地址(NIC地址)或媒体访问控制地址(MAC)地址,来识别接入点,在这种情况中客户140可以是文件分区处理器160,虽然客户140可能没有这种元件。然后当完全接收时,将由客户140的接入点接收的媒体对象的片段重建为媒体对象。使用在本说明书的后面部分所描述的技术,代替媒体对象的丢失的片段。应该注意对于本发明的操作,主控制器120和文件分区处理器130可能占据相同的服务器115,或可能占据几个服务器115。因此,根据所需要的传输系统的要求,主控制器150和文件分区处理器160可以占据相同的客户140,或占据几个客户140。可以将本发明的原则应用于其他分布的网络环境,其中使用多个服务器115或客户140来传输和/或接收相同的媒体对象。
图2示出了用于将分段的媒体对象发送到单个客户240的本发明的实施例。在本发明的这个实施例中,系统200具有通过网络250向服务器215请求媒体对象的客户240,其中媒体对象存储在文件服务器210中。在这个实施例中,客户240具有主控制器220,用于发布对媒体对象的请求和用于配置可以获得来接收分段的媒体对象的文件分区处理器230。通过使用基于TCP/IP的传输,主控制器220向服务器215指示文件分区处理器230的哪个对应的UDP端口将接收对应的文件片段,并且将所请求的媒体对象进行分段。当通过网络250在它们对应的UPD连接上从文件分区处理器230成功地取回所有的片段时,主控制器220将所接收的片段进行连接。
图3示出了本本发明的实施例,用于使用在Thaler,D.,“InteroperabilityRules for Multicast Routing Protocols,”Request For Comments 2715,Microsoft,October,1999中所述的IP多播架构将分段的媒体对象传输到多个客户350。
在这个实施例中,存在至少两个客户340,其中每个客户340都具有对应的主控制器350用于发布对存储在文件服务器310中的媒体对象的请求。虽然每个主控制器350必须计算同步请求媒体对象的所有客户340所需的延迟。由每个主控制器350建立到服务器315的、对媒体对象的请求,服务器315然后将分段的媒体对象多播到客户340的对应的文件分区处理器360,或者单个主控制器360将IP地址指定给应该通过多播网络370经由IP多播将媒体对象的片段传输到的地方。将文件片段传输到文件分区处理器360和在客户340将这样接收的文件片段重建为媒体对象,与参照图1和2在本说明书中所描述的类似。
或者,主控制器350结合服务器315的主控制器320来操作以接收分区的媒体对象。主控制器320通知主控制器350将会使用那些多播地址来传输分区的媒体对象的片段。对应的主控制器350将命令它们对应的文件分区处理器来通过多播网络370接收这样的片段。
图4示出了根据本发明的实施例,用于传输媒体对象的方法400的流程图。参考图1表示了该流程图表示的步骤。在步骤405,客户140经由网络170连接到与服务器115关联的主控制器120。通过TCP/IP套接字建立连接,其中客户140识别将被传输的媒体对象。在这个步骤期间,客户140还指定用于媒体对象传输的通讯速率。
在步骤415,主控制器120确定为了满足由客户140所设置的需要的通讯速率而必须的文件分区处理器130的数量。这个步骤可能还包括参与分段的媒体对象的传输的多个服务器。步骤420使得主控制器120指令每个分区处理器130关于使用哪个UPD端口将媒体对象的哪个片段传输到客户140。
步骤425涉及主控制器120指令客户140关于下载将被最终传输的媒体对象的片段所需要的UDP端口。而且,控制信息由主控制器120传输到客户140,该控制信息指示对于分割的媒体对象的具体片段,将从UDP端口进入多少数据包。步骤430使得每个文件分区处理器130将头部块放在将在其指派的UDP端口上被传输的其上。最好,以数字顺序来顺序产生头部块。然后将数据包传输到客户140数据包。
然后客户140确定在步骤435中将使用哪些基于客户的文件分区处理器160,以及激活哪些服务器来接收所传输的文件。在步骤440,作为接入点,基于客户的文件分区处理器160在对应的UDP端口上,接收代表传输的媒体对象片段的数据包。在所接收的数据包的头块中的顺序识别符确定如何重建所接收的媒体对象片段。
如果对于具体的文件分区处理器160丢失了任何的数据包,则步骤445使得客户140通过TCP/IP连接通知主控制器120关于哪些数据包丢失了以及需要通过对应的文件分区处理器130进行重新传输。最好,客户140具有客户侧主处理器150,用于同在服务器侧的主控制器120进行通讯。在步骤450,客户140指示主控制器120关于已经完全接收的媒体对象的具体片段。如果没有完成媒体对象的完全下载,则客户140还指令主控制器120来使用新参数进行传输并且传输媒体对象的附加片段(如在步骤420至445中所做的)。
步骤460使得主控制器120通知客户140关于已经传输了分区的媒体对象的所有片段。然后客户140使用所接收的媒体对象的片段来重建媒体对象。
图5示出了分区的媒体对象的文件片段的示例实施例。如在图中所示,文件片段包括主片段510和次片段520。客户140和服务器115使用主片段510作为主片段边界,其中主片段510是用于发送文件片段的大“块”。次片段520是被用于构造主片段510的较小“块”。在本发明的优选实施例中,在传输第二主片段510之前客户140必须完全接收主片段510。如果没有完全接收主片段510,则客户140告诉主控制器将重新传输所述主片段510的哪个次片段520,其中每个次片段520对应于服务器115的具体文件分区处理器130。
在单播(unicast)传输中,主控制器120指定主片段510给一组文件分区处理器130。然后每个文件分区处理器130被分派主片段510的一部分作为要作为UDP数据包传输的次片段520。一旦将用于构建主片段510的次片段520成功传输,则每个文件分区处理器130通知主控制器120关于主片段的传输已经完成。然后主控制器将发布要被分割的、并且要被文件分区处理器130传输的第二主片段520给客户140,如上所述。
最好,可以配置主控制器120以建造主片段510的流水线(pipeline),从而消除在主控制器处理来自客户140的、指示网络情况变化的消息时对于空闲时间的需要。还可以响应于网络条件而改进主片段510的大小。例如,主片段510可以包括十个侧片段520。在数据包丢失较少的情况下,将主片段510的大小增加到12个次片段520。或者,在数据包丢失较多的情况下,将主片段510的大小减少到8个次片段520。可以根据本发明的原理来修改次片段的数量中的调整。
还可以设想如果在主片段510中的次片段520的数量保持相同;根据网络条件来修改主片段520的物理尺寸(千字节)。最好由客户140的主控制145做出这种确定。或者,主控制器120还可以消除主片段510的使用,并且依赖作为数据的连续块而产生的次片段520的使用。然后文件分区处理器130将这些次片段520传输给客户140,其中每个文件分区处理器130通知主控制器关于每个次片段520的成功传输。然后主控制器120将要被传输的新次片段520分派给文件分区处理器130,并且重复这个过程直到将分区的媒体对象的片段的所有次片段520都成功地传输为止。
在单播(或一个客户)传输的情况中,本发明提供在诸如传输期间丢失数据包的情况中的几种恢复方案。在一个实施例中,主控制器120能将附加的文件分区处理器130加到传输数据包中。或者,主控制器120将重新发送数据包的任务分派给预先存在的文件分区处理器130。
用于数据包丢失保护的第二方案使用主控制器120来保持丢失的数据包的链接的列表。在这个实施例中,服务器115的文件分区处理器130和主控制器120传输分区的媒体对象的所有主片段510和次片段520,这种传输被称为“第一发送”。由主控制器120使用链接的列表的内容,以指示在“第一发送”传输期间丢失的数据包。然后服务器主控制器120将“第二发送”传输与文件分区处理器130和客户140进行谐调,以在重新广播在“第一发送”传输期间没有被成功接收的主片段510和次片段520的数据包。重复这种过程直到达到由客户140成功接收数据包的阈值。
其他的数据包丢失技术包括服务器侧主控制器120或客户侧主控制器150在它们各自侧监测对应的资源。例如,如果在客户侧的具体文件分区处理器130继续超时或者如果客户140停止响应,则主控制器120可以取消分派给文件分区处理器130的工作,并且重新分派(传输数据的)工作给第二文件分区处理器130,或重新将主片段510分派给一组文件分区处理器130。主处理器120通知用户关于这种超时错误。
或者,通过跟踪在客户侧的统计,主控制器150可以发现UDP地址连续地丢失数据包。然后主控制器150通知服务器侧主控制器120关于UDP地址中有问题,指示在系统的服务器侧或客户侧有错误的文件分区处理器。然后主控制器120和150协调数据包的传输到新UDP地址,其可以涉及使用新文件分区处理器。这些实施例还考虑可以使用主控制器120或150来实现所述的超时或UDP错误数据包丢失方案,如上所述。
用于多播传输的数据包丢失技术要求服务器的主控制器准备利用不同的方法来防止传输的数据包的丢失。参照图3,服务器主控制器320保持在分段的媒体对象的主片段510和次片段520的传输期间所丢失的数据包的链接列表,其与用于单播传输的链接列表类似。如在图6中所示,对这种链接列表的改进占据两维的阵列,其中所丢失的数据包(次片段)是相对于所有客户340丢失的。当传输了媒体对象的所有主片段510时,完成了分区的媒体对象的“第一发送”传输。当传输每个主片段510完成时,主控制器320更新链接的列表。
然后主控制器320使用链接的列表的内容来重新广播在“第一发送”期间没有被客户340成功接收的数据包。这种“第二发送”传输具有与“丢失数据包”信息一同传输的主片段510和次片段520。重复这种过程直到所有客户340接收分区的媒体对象的所有片段为止。注意多播传输模型还允许主控制器320来利用结合上述的单播传输模型描述的超时和UDP数据包丢失方案。
可选地,本发明提供了另外的实施例,使用控制处理方案来使得用于传输分区的媒体对象的传输技术受益。具体地说,本发明提供了操作,其中根据为这种文件所做出的请求,可以改变用于传输媒体对象的传输技术。
例如,使用上述的单播技术,现在来传输媒体对象作为UDP传输。在这种传输过程期间,对于相同文件的第二请求进来到服务器。参照图3,客户340的客户侧文件分区处理器330完成接收分区的媒体对象的片段。然后文件分区处理器330等待关于如何进行接收分区的媒体对象的新片段的进一步指令。(接收片段的客户的)客户主控制器350向服务器主控制器320通知所述客户340已经成功地接收所述发送的片段。最好,在主片段510的边界发生这种通讯,虽然系统可能还具有对于次片段520发生的通讯。
主控制器320通知客户主控制器350关于将要从新地址,特别地是多播地址,来的媒体对象的下一个片段。然后客户主控制器350指令文件分区处理器330来从指定的多播地址接收媒体对象的下一个片段。在中间,主控制器320指定文件分区处理器330从指定的多播地址以多播数据包的形式开始传输媒体对象的这个下一个片段。将指令所有请求媒体对象的其他新增加的客户340来同样从这个多播地址接收媒体对象的片段。
主控制器320将分区的媒体对象的所有片段传输到客户340,直到已经接收了所有片段为止。可以使用如上所述的数据包丢失技术来支持数据的传输。
在客户340或一组客户340在正在进行多播传输的过程期间请求相同的媒体对象的情况下,主控制器320通知所有的新客户340在下一个主片段510的边界来加入在进行中的多播。通过使得主控制器320传输正在传输请求的媒体对象的片段的对应文件分区处理器330的多播地址来执行这个操作。最好在主控制器320和350之间通过TCP/IP套接字来发送所有的同步和控制通讯。此外,最好也通过TCP/IP接口来执行多播片段的重新广播。应该注意根据本发明的原理,可以使用其他控制通讯。
本发明的所述系统提供能够重新配置资源(具体是文件分区处理器)使用的客户侧或服务器侧主控制器。为了速率控制操作,客户可以请求服务器以所需要的通讯速率来传输分区的媒体对象。然后服务器的主控制器响应于这种请求,确定如何利用服务器的文件分区处理器。此外,客户可以请求使用优先级机制或诸如“从08:00到17:00使用20%的可获得带宽,否则使用90%的可获得带宽”的规则来传输媒体对象。服务器的主控制器会通知文件分区处理器的使用,而且响应于这种请求。类似地,服务器可以自己启动来指定用于传输分区的媒体对象的带宽限制。在本发明的优选实施例中,服务器和客户将试图利用所有可获得的传输资源来达到最高的可能传输速率。
将本发明配置为对于系统性能自我调节,从而可以为将来分区的媒体对象的传输做出关于资源分配的更好决定。对于中央处理单元(CPU)利用、NIC吞吐量、传输错误率、和端到端的传输速度收集统计数据。在经由操作系统和其他第三方监测工具在文件传输期间收集统计数据。在客户侧或服务器侧的主控制器通过测量客户使用多长时间来处理片段而得出网络吞吐量。
用关于系统性能的信息,客户和服务器的主控制器可能调整它们关于应该如何分区媒体对象、应该如何使用文件分区处理器、和应该如何考虑用于具体客户或服务器的网络等待时间和错误率的假设。
在下面的表2-8中说明了在服务器和客户之间发送的命令。表2公开了传输请求命令的示例实施例,客户发布该命令给服务器以启动所请求的媒体对象的传输。  元素  字节  使用  消息类型  1  识别符指示这是文件传输请求  文件名  100  这个片段所关联的文件的名称  Comm速率  1  关于传输应该在什么样的通讯速度上进行的指示符  多播  1  关于是否接受使用多播来满足请求的指示符  会话ID  4  是否将消息类型设置为重新开始工作
                           表2
表3公开了示例数据控制命令的格式,该命令被服务器的文件分区处理器使用来通知客户关于对于分区的媒体对象的特定片段的传输应该得到的数据包的数量。而且这种命令还用于识别所接收的片段(主或次)应该被放置在最后文件拷贝的那个位置。  元素  字节  使用  标记  7  文字的“CONTROL(控制)”  片段ID  4  片段的识别符  文件名  100  这个片段所关联的文件的名字  偏移  8  这个片段应该被放置的最后文件中的偏移  数量  4  在这个片段中将被接收的数据包的数量  CRC  4  之前121个字节的CRC检查以验证数据包的完整  性。
                      表3
表4公开了用于将数据从服务器传输到客户的示例数据包的格式。具体地说,使用这种数据包格式来形成分区的媒体对象的主和次片段。  元素  字节  使用  序列ID  4  对被传输的片段内的数据包排序  长度  4  在数据包中的字节数量  数据  NA  在长度元素中指定的长度的,用于数据包的数据字  节  CRC  4  数据的CRC检查以验证数据包的完整性
                      表4
表5公开了示例的重新传输命令的格式,客户使用该命令来请求没有被成功接收的识别的数据包的重新传输。将这种命令传输到负责传输丢失数据包的服务器。  元素  字节  使用  消息类型  1  指示这是数据包重新传输请求的识别符  片段ID  4  数据包所丢失的片段的ID  长度  4  在数据包元素中提供的数据包识别符的数量  数据包  可变  在这里填入每个丢失的数据包的身份
                        表5
表6公开了从服务器传输到客户的、指示文件传输的开始的示例配置命令的格式。这种命令具体指示给客户使用什么样的IP地址或端口来从服务器接收数据。  元素  字节  使用  消息类型  1  指示这是配置消息的识别符  会话ID  4  用于工作的识别器,用于重新开始  协议  1  指示使用UDP还是基于多播的协议  流  1  要连接到的流的数量  流地址  可变  要连接到的、用于接收文件片段的IP地址/端口号  码的数组
                        表6
表7公开了示例的分区命令的格式,服务器的主控制器使用该命令并且将该命令发送到用于传输主/次片段的文件分区处理器。这种命令指示在文件分区处理器之间如何将媒体对象进行分区。  元素  字节  使用  消息类型  1  指示这是分区消息的识别符  协议  1  指示是使用UDP还是多播  文件名  255  要打开以进行传输的文件的路径名称  偏移  8  在用于从其读数据的文件中的偏移  字节  4  在片段中传输的字节数量
                        表6
表8公开了片段完成命令的格式,当文件分区处理器指示其已经完成处理片段时,客户侧的主控制器将该命令发送到服务器。将要处理的分区的媒体对象的下一个片段通知给处理完成的片段的服务器的文件分区处理器。然后根据在表3中所示的命令,文件分区处理器将发布数据控制命令给客户。  元素  字节  使用  消息类型  1  指示这是片段完成消息的识别符  会话ID  4  处理完成的片段的识别符
                        表8