CN1656749A - 数字内容分发系统、方法、程序及服务器和客户机 - Google Patents
数字内容分发系统、方法、程序及服务器和客户机 Download PDFInfo
- Publication number
- CN1656749A CN1656749A CNA038114313A CN03811431A CN1656749A CN 1656749 A CN1656749 A CN 1656749A CN A038114313 A CNA038114313 A CN A038114313A CN 03811431 A CN03811431 A CN 03811431A CN 1656749 A CN1656749 A CN 1656749A
- Authority
- CN
- China
- Prior art keywords
- client computer
- network
- packet
- digital content
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000009826 distribution Methods 0.000 title claims abstract description 108
- 238000000034 method Methods 0.000 title claims description 132
- 230000005540 biological transmission Effects 0.000 claims description 64
- 238000004891 communication Methods 0.000 claims description 43
- 230000008569 process Effects 0.000 claims description 29
- 230000004044 response Effects 0.000 claims description 29
- 230000015572 biosynthetic process Effects 0.000 claims description 16
- 238000004321 preservation Methods 0.000 claims description 13
- 238000003860 storage Methods 0.000 claims description 13
- 230000008859 change Effects 0.000 claims description 9
- 238000012217 deletion Methods 0.000 claims description 5
- 230000037430 deletion Effects 0.000 claims description 5
- 241001269238 Data Species 0.000 claims description 3
- 239000004744 fabric Substances 0.000 description 57
- 238000010586 diagram Methods 0.000 description 48
- 238000012545 processing Methods 0.000 description 35
- 239000000872 buffer Substances 0.000 description 23
- 230000006870 function Effects 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 11
- 238000012544 monitoring process Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 239000000203 mixture Substances 0.000 description 5
- 230000003068 static effect Effects 0.000 description 5
- 101150012579 ADSL gene Proteins 0.000 description 4
- 102100020775 Adenylosuccinate lyase Human genes 0.000 description 4
- 108700040193 Adenylosuccinate lyases Proteins 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000005641 tunneling Effects 0.000 description 4
- 238000007796 conventional method Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000010076 replication Effects 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 2
- 238000005304 joining Methods 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 206010021703 Indifference Diseases 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000009931 harmful effect Effects 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 239000003550 marker Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000004513 sizing Methods 0.000 description 1
- GOLXNESZZPUPJE-UHFFFAOYSA-N spiromesifen Chemical compound CC1=CC(C)=CC(C)=C1C(C(O1)=O)=C(OC(=O)CC(C)(C)C)C11CCCC1 GOLXNESZZPUPJE-UHFFFAOYSA-N 0.000 description 1
- 230000000087 stabilizing effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
- G06F16/48—Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/40—Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1854—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/04—Interdomain routing, e.g. hierarchical routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/12—Shortest path evaluation
- H04L45/121—Shortest path evaluation by minimising delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/16—Multipoint routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1836—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with heterogeneous network architecture
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/54—Store-and-forward switching systems
- H04L12/56—Packet switching systems
- H04L12/5601—Transfer mode dependent, e.g. ATM
- H04L2012/5603—Access techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Library & Information Science (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明的数字内容分发系统通过第一和第二网络12和22分发数字内容。服务器14与第一网络12连接,而用于接收和显示或复制数字内容的客户机20与第二网络22连接。服务器14将保存在其内部的数字内容分为多个数据包,并向第二网络22发送用于构成数字内容的最小单元数据包。客户机20包括,通过使用接收自服务器14的最小单元数据包和接收自构成第二网络的其它客户机的数据包,将数字内容保存在其内部的装置。
Description
技术领域
本发明涉及数字内容的分发。具体而言,本发明涉及数字内容分发系统和数字内容分发方法,该系统和方法通过网络从数字内容分发站点分发数字内容,并使许多客户机在其内部存储数字内容,从而能够通过网络有效地分发数字内容。此外,本发明还涉及执行该方法的程序、存有该程序的计算机可读记录介质,以及所用的服务器和客户机。
此外,本发明还涉及数字内容分发系统,该系统在减少服务器通信业务开销的同时,可以将数字内容分发到预定广域组,该广域组包括许多用网络互相连接的组,每个组包括多个客户机。此外,本发明还涉及所述系统的服务器和客户机、使计算机作为上述服务器和客户机而工作的控制方法、用于该控制方法的程序以及用于记录该程序的计算机可读记录介质。
背景技术
近年来,像因特网那样包括计算机、公共电话线、ISDN、光学通信、无线通信、ADSL和CATV等系统的网络越来越普及。可以设想,将来的服务也将越来越普及,即不仅可提供电子邮件等数字内容,而且还可把来自数字内容提供站点服务器的文本数据、音频数据、图像数据和多媒体数据通过网络合成并分发给计算机或移动终端等客户机。
与此同时,除了上述因特网等能够在很宽的范围内管理或分发数字内容的第一网络外,诸如局域网(LAN)和广域网(WAN)等第二网络也迅速得到普及,与因特网相比,这些网络在较窄的范围内共享、管理和分发数字内容。上述第二网络可以使计算机资源在公共组中,例如政府单位、行政机构、教育机构、图书馆和广播通信组织中,得到有效的使用。特别是,可以说在不少情况下,当前公共组中服务器之间的连接是通过许多属于多个组的网络实现的。一般说来,多个客户,例如计算机(以下统称为“客户机”),都互相连接,以便在上述各个第二网络中形成预定组,这样就能使各个组保存特定的数字内容。
在上述网络环境中,有时可能需要将服务器中所保存的数字内容分发给属于其它网络的多个客户机。迄今为止,已提出了各种用于将数字内容从服务器分发到多个客户机的传输方法或系统。
例如,Deering,S等人在“互联网和扩展局域网上的多播路由选择(斯坦福大学,计算机科学技术系报告:STAN-CS-88-1214,1988年7月)”中提出了一种叫做IP多播的方法,目的是为了避免数据包在网络路由上的重叠。图31是一幅示意图,所展示的就是Deering等人所提出的IP多播方法。如图31所示,Deering等人所提出的IP多播方法的缺点是使网络资源复杂化,包括需要放置含有客户接收服务“状态”的专用路由器,而不是采用进行IP传输的简单路由器通过消除网络100上数据包重叠的方法来实现良好的通信。另一个缺点是,网络可扩展性受到限制,包括必须扩展网络设备,并且在与上述网络资源的复杂化有关的客户机撤离所造成的突然干扰等状况下,不具备复制能力。
此外,由于IP多播具有从任意数据源向任意组分发数据的结构,所以,IP多播的缺点是弱化了对付恶意攻击的能力,并且需要为组进行全球地址加密。但是,IP多播的优点是,分发数字内容服务的管理成本较低,因为IP多播基本上提供的是尽力而为服务。然而,IP多播不适于在企业中枢线路内使用,因为在企业中枢线路内很小的线路中断都会导致很大的损失,而且在用于移动图像的分发时,始终需要固定的保密频带。如上所述,与单播相比,IP多播的缺点是在保证可靠性、避免拥堵和保证保密性方面的难度较大。此外,IP多播需要大幅度改变网络的基础结构。鉴于上述理由,现在还不能说IP多播是实用的。
而且,为了解决上述IP多播的问题,提出了一种“应用层多播系统”,在以下文件中对该系统进行了描述:Dimitrios Pendarakis、Sherlia shi、Dinesh Verma和Marcel Waldvogel.Almi:应用层多播基础结构,第三届USENIX因特网技术与系统(USITS)研讨会论文集,第49-60页,2001年;Y.Chu,S.Rao和H.Zhang:终端系统多播的案例,国际计算机组织测量与估评专业组织(ACM Sigmatrics)论文集,2000年6月;P.Francis,“Yoid:扩展互联网多播结构”,预印件可从网址
http://www.isis.edu/div7/,2000年4月获得。
在上述背景技术中,使用了一种系统,在该系统中客户机也用作数据包传输的中继点,而且数据包被传送到下游客户机。图32是一幅示意图,用于描述利用应用层多播系统进行的数字内容分发。图32所示应用层多播系统被配置为赋予了客户机106一个等级,而且客户机106可以按照单个路径树的结构来传送数据包。在图32中所示的应用层多播系统中,Pendarakis等人计算了可使所有加入的客户机互相有效连接的最小网络。此外,Chu等人还试图向客户机分配数据包流量。
最小网络构成了,例如,最小跨越树(MST)的形式,其中树枝用来往传输时间(RTT)加权。由于MST是静态确定的,所以如果发生联结的客户机离开的现象,就应重建网络。由于服务器108进行这种重建的计算,所以就存在使服务器108的开销增加的缺点。此外,还提出了一种用于减少服务器108开销的方法,根据该方法,由客户机的加入P6和离开分别导致的重建计算在本地进行,并对最小网络的整个重建进行检查,等等。但是,如果处于路径树结构中间点位置上传送数据包的客户机离开,而且如果客户机106的中央处理器(CPU)因被分配到另一项处理而无法进行数据包的中继,则最小网络将受到某种因素的影响,例如,其下游客户机的数据包接收就会突然中止。为克服这种缺点,必须采取措施,例如,给予最小网络(树结构)冗余度以及准备备用树结构等。这就导致最小网络的结构越来越复杂,因此,服务器108的附加开销就进一步增加。这是因为每个客户机都被赋予静态中继任务,而且,因为包括网络构成信息在内的路径树的生成和重建都仅由服务器进行。
同时,还提出了通过利用分散的客户机协调地进行所传输数据包的高速缓冲存储的系统。在这种对传输数据包进行高速缓存的系统内,数据不从服务器108采集,而是从客户机106的高速缓冲存储器采集(具体参见编号为Hei 11(1999)-282332的日本专利申请说明书,发明名称:“基于分散客户机的数据高速缓存系统”)。编号为Hei 11(1999)-282332的日本专利申请说明书公开了从客户机采集数据的方法,其中各个客户机通过使用数据高速缓冲存储器与客户机之间的对应关系表搜索客户机及所要高速缓存的数据。
虽然编号为Hei 11(1999)-282332的日本专利申请说明书所公开的方法可以在客户机内进行良好的高速缓冲存储,但在数据被采集时,会出现一个至少相当于所要高速缓存的数据长度的延迟。因此,在数据流需要具有延迟时间很短的实时特性情况下,此方法在实时性方面是不足的。此外,编号为Hei 11(1999)-282332的日本专利申请说明书从未公开长数据的高速缓存方法。而且,如果上述数据高速缓存系统通过将数据分成较小的数据包来管理流动数据,以便缩短由于高速缓存所造成的时间延迟,则数据包单元内的高速缓存对应关系表就必须频繁地更新,客户机的开销就将增加。这样,不仅使客户机包含对应关系表的优点受损,而且使客户机的开销大大增加。因此该方法是不实用的。
同时,Aramaki等人提出了将客户机连接到边缘服务器的结构(
http://www.akamai.com)。图33是一幅示意图,展示了Aramaki等人所提出的系统。图33所示的系统通过网络100使用放置在远端的服务器108和放置在客户机106附近的边缘服务器110。处在远端服务器108和边缘服务器110之间的网络100构成了尽力而为式网络,其中数字内容的传输充分利用其带宽,而且所传输的数字内容一次高速缓冲存入边缘服务器110。被高速缓存的数字内容重新从边缘服务器流向附近的客户机,这样向客户机分发数字内容的过程即结束。具体而言,Aramaki等人的方法提供了一种限制在服务器108和边缘服务器110之间数据包重叠的解决方案,以避免网络的拥堵。然而,即便是在使用边缘服务器110的情况下,边缘服务器110的开销也可能会成为问题,而且有必要在从边缘服务器110向各个客户机传送数据包时,减少传送数据包的重叠。
即使是在因特网未用于连接服务器108与边缘服务器110的情况下,如果服务器108与边缘服务器110之间的基干网是带宽共享型内联网,则可采用与上述类似的、使用了服务器108和边缘服务器110的结构,以避免由于在基干网上数据包的重叠而形成的拥堵。但是,有必要将边缘服务器110置于所有由基干路由器连接的终端路由器之下。因此,建造LAN和WAN等第二网络的费用就将增加,从而导致诸如进一步增加边缘服务器110的维护成本以及增加网络管理员的负担等不利情况。此外,还带来了增加复杂性的状况,因为从网络和自动计算的角度看,系统存在着问题。为此,就必须提供许多拥有简单而耐用的操作系统的客户机,这些客户机的功能包括诸如在不使用任何专用辅助服务器(边缘服务器等)的情况下实现自配置和自优化等,并且在保证数字内容实时性的同时赋予网络自主性。
此外,在上述IP多播中,播送源指定一个包含一个特定范围的数值的IP地址作为目的地,并向该目的地发送数据包。该IP地址代表一个多播组。接收侧的主机向路径上的各个路由器发送加入该组的请求,而路由器接收到该请求后即识别发送该加入请求的组,并执行向该组分发数据包的处理。通过选择适当的路由,也通过利用多播,可以在没有数据包重叠的情况下,在同一时间将相同的数据包发送给接收侧的众多主机。
在与上述路由器和有限网络无差异的单个网络中,数字内容的多播分发进行情况良好,不会导致很大的设备/仪器的投资负担,或者,尤其不会造成对通信业务的不利条件。然而,作为整体在当前因特网中使用的通信协议(IPv4)一般不给多播功能以合法性。一般说来,为了在因特网上实际进行多播,需要更多的仪器/设备。
图34表明可以按照上述多播之外的另一种多播方法,例如众所周知的伪多播方法,进行内容分发的网络系统。在此情况下,内容被分发到可以应用上述多播的组。图34所示的网络系统通过在服务器和多个组之间形成多条隧道而使数字内容分发成为可能。图34所示服务器112通过诸如因特网的第一网络116将数字内容分发到由114a至114c组组成的广域组G。图34所示广域组G通过包括组114a至114c而构成。例如,可以列举的组有业务企业、公共机构、政府部门以及教育机构等。
具体而言,如果所作说明以一个业务企业为例子,则组114a就可被定义为北海道销售办公室,而组114c被定义为隶属于同一个企业的九州销售办公室,等等。图34所示服务器112通过利用称作隧道118a至118c的结构,以多播方式将数字内容分别分发到组114a至114c。具体而言,隧道118a至118c在同一时间向网络上的接收机分发多播数据包,其分发方式使两个不同网络之间的隧道的输入端口和输出端口被分别提供,而且数据包通过输入端口和输出端口进行传输。如图34所示,多条隧道必须按照组的数量来准备,以便向多个组进行多播分发。
上述隧道技术已经为公众所了解。而且人们亦了解到,利用隧道技术的多播分发在组的数量很大时往往不能充分发挥作用。图35更具体地说明了上述问题。在图35中,数字内容的发射机(在下文中统称为“提供者”)和大量的组通过因特网互相连接。组114a至114c通过组所使用的不同通信容量的线路,例如ISDN、ADSL、CATV和光学通信线路等,连接到第一网络。此外,114a至114c各个组内的客户机通过一种在通信容量上有别于其它的通信基础结构而互相连接,例如通过利用以太网(注册商标)构建的局域网(LAN)和无线通信网等第二网络进行连接。多个客户机122在第二网络上互相连接,然后通过路由器124等与第一网络116连接。服务器112在这样的状况下将数据包发送给所有客户机122。
在图35所示的状况下,在用常规的隧道技术进行多播分发时,即出现了以下所述的不利情况。
(1)组内的操作和管理问题将出现在接收侧:
为了向第二网络提供隧道端口,需要专用主机设备,其结构方式应使其能通过多播接收数据包,并将数据包用多播方式发送给客户机122。当然,与用于互联各组客户机的LAN的通信取决于专用主机设备的工作情况。因此,当专用主机因某种原因不能使用时,在第二网络上由专用主机设备管理的所有客户机就都要受到影响。
(2)内容分发服务器的网络带宽问题:
由于在服务器112和各个组之间的通信是单播方式,所以,如果组的数量为M,则由服务器发送的数据包总量和通信业务量就要乘以M。因此,随着组的数量不断增加,除非在服务器112一侧使用高容量通信基础结构,否则不可能在不损害实时性的情况下进行同时通信。这会导致使用多播技术的价格优势的吸引力的降低。
具体而言,在一对多的数字内容分发中,尤其是在要求具有实时性的数字内容分发中,迄今为止都必须使数字内容分发的实时性得到提高,在分发中避免网络路径数据包传输的重叠,从而避免通信传输的拥堵,不会造成各个路由器的复杂性,而且不需要做涉及大规模投资的变动,例如不需要为更换路径上的所有路由器做工作和投入经费。此外,在分发数字内容时,还必须不破坏网络系统的稳定性,在该系统内诸如路由器和交换集线器等网络层都不变动,而且,还不必根据客户机在静态最小网络频繁的进出而进行重建,从而可减少服务器的开销。
具体而言,需要分发实时性得到保障的数字内容,该实时性是在不增加网络资源的复杂性和服务器的重建开销的情况下得到保障的,其做法是,构建具有冗余度的网络,以保障下游客户机的稳定性,并使数字内容安全地分发给用户,例如在位于上游中继点的客户机因异常结束而离开的情况下保证数字内容安全分发。
此外,在使用隧道技术的情况下,虽然可以随着组的数量增加而增加构建的隧道数量,但这将进一步随着隧道数量的增加而将通信业务压缩到服务器一侧。此外,为防止出现上述服务器一侧的不利情况,也设想了用于避免服务器一侧拥堵的方法,即在组之间构建隧道,使数据包逐级在组之间中继。然而又出现了需要增加仪器/设备的新问题,由于在组之间也构建了隧道端口,一个组内的一条隧道受到干扰就会对其它组产生致命影响,因为在组之间形成了分级结构。此外,还设想,直接从服务器发出的数据包和从其它组逐级发出的数据包会互相重叠。这样,就会在复制数字内容时出现不利情况,从而有必要以软件的方式消除数据包的重叠。如上所述,背景技术未能完全解决在复制质量、软件和成本方面的常规问题。
发明内容
本发明是在考虑了上述不利情况的基础上做出的。本发明在不依赖组的数量的情况下,将数字内容从服务器实时地提供给许多数字处理设备。在提供数字内容时,服务器将数字内容分为信息包,并通过第一网络将被分的信息包发送给属于第二网络的至少一个客户机。被发送的信息包被定义为重建数字内容所需要的最小单元。须指出,在本发明中,最小单元数据包意味着能够在没有数据包重叠的情况下重建原始数据内容的最小数据包。在本发明中,最小单元数据包在下文中被统称为“源数据包”。接收到源数据包的客户机通过第二网络将所接收的源数据包的拷贝发送给与第二网络连接的客户机。发送了拷贝数据包的客户机接收其它客户机所接收到的源数据包的拷贝。
分为多个数据包并在预定时间周期内发送的数字内容被融入要重建的客户机,然后实时地提供给客户机中的用户。本发明中提供内容的模式可以包括任何迄今为止已知的模式,例如显示活动画面图像数据、复制音频数据、显示构建多媒体数据的图像数据以及复制同步音频数据等。以下将本发明中的模式定义为包括上述提供模式的显示或复制。在允许提供已重建数字内容的同时,客户机接收后续数据包,并在允许提供已重建数字内容的同时完成后续数据流的重建,从而可以连续地提供数字内容。
通过重复上述处理,本发明在避免所传输的数据包重叠的同时保持数字内容分发的稳定性,从而可以灵活地应付构成网络的客户机频繁离开和新加入网络的问题。此外,本发明实现了稳定的系统,该系统不允许客户机内有大的环境变化,例如CPU分配状态的变化,不会影响数字内容分发的效率。此外,本发明不使用专门构建的路由器、交换集线器和辅助服务器。因此,本发明数字内容分发还可以在不增加不必要的网络系统费用的情况下进行,因为网络用户不会被迫进行诸如维护等工作。
此外,本发明还提供伪隧道分发技术,无论进行分发的隧道是否存在,都可以从服务器向预定广域组进行有效的分发。本发明的伪隧道分发意味着一种分发系统和分发方法,即通过在没有任何重叠的情况下从服务器向广域组分发重建数字内容所需的最小源数据包,使相同的数字内容平稳地从服务器提供给广域组内的客户机,而不导致严重的时间滞后。在本发明的伪隧道分发中,服务器在没有任何重叠的情况下将数据包分发到属于多个组的客户机。在本发明中,许多客户机构成组,而许多组则构成广域组。此外,服务器的结构使其能够向整个广域组分发数据包,并且每当服务器发送数据包时,选择将要从广域组向其发送数据包的客户机。至少一个客户机从服务器接收构成数字内容的源数据包。服务器和客户机都保存一份构成广域组的客户机的列表。接收到源数据包的客户机查阅源数据包分发数据,即预先分配的拷贝目的地列表,该列表与源数据包一起接收。然后,客户机向其它客户机分发源数据包的拷贝。通过执行上述处理过程,所有客户机非常充分地重建了数字内容。
此外,在本发明中,在组内的LAN被有效使用,以便有效利用属于广域组的客户机的网络特征。例如,每个组可以通过将属于该组的客户机连接到一个交换集线器而构成,这样就可使通信在互不影响的情况下利用交换器的功能。此外,在本发明中,相应于多播的第三网络在应用计算机和连接在一个路由器下的多个客户机之间建成。所以数字内容在组内共享,而且可以减少客户机和硬件资源的开销。
具体而言,本发明提供了用于通过第一和第二网络分发数字内容的数字内容分发系统。该系统包括:
与第一网络连接的服务器,用于在其内部保存数字内容和发送数字内容;以及
构成与第一网络连接的第二网络并用于接收和提供数字内容的客户机,
其中服务器包括用于将所保存的数字内容分为多个数据包,并向第二网络发送构成数字内容的最小单元数据包的装置,而且
其中构成第二网络的每个客户机包括,通过使用最小单元数据包、已由客户机从服务器接收的数据包,以及使用从构成第二网络的其它客户机接收到的数据包,使所有与第二网络连接的客户机在其内部保存数字内容的装置。
在本发明中,服务器可包括用于动态地向第二网络的多个客户机分配最小单元数据包的装置。在本发明中,用于向第二网络的多个客户分配最小单元数据包的装置可以包括:
用于确定客户机开销的装置;以及
用于结合开销情况动态地选择客户机中至少一个作为中间节点并向该中间节点分配数据包的装置。在本发明中,用于确定客户机开销的装置可包括用于确定服务器向预定客户机发送最小单元数据包的时间和该预定客户机发出最小单元数据包已收到通知的时间之间的时间差的装置。
本发明提供了数字内容分发方法,用于通过第一和第二网络向客户机分发数字内容,其中,系统包括与第一网络连接、用于发送数字内容的服务器,以及构成与第一网络连接的第二网络并用于接收和提供数字内容的客户机,该方法包括以下步骤:
将数字内容分为多个数据包,并从服务器向客户机发送用于构成数字内容的最小单元数据包;
由构成第二网络的客户机从服务器接收数据包;
从构成第二网络的其它客户机接收数据包,以便重建数字内容;以及
通过使用最小单元数据包、已经从服务器发出的数据包,以及使用从其它客户机接收的数据包,使所有与第二网络连接的客户机在其内部保存数字内容。
本发明提供了用于执行服务器处理的程序,以便执行将数字内容通过第一和第二网络分发到目的地的方法,其中,系统包括与第一网络连接、用于发送数字内容的服务器,以及构成与第一网络连接的第二网络、有被指定用于接收和提供数字内容目的地的客户机,该程序使系统执行以下步骤:
将数字内容分为多个数据包;
动态地从服务器向第二网络的多个目的地分配最小单元数据包:以及
通过第一网络从服务器向第二网络发送用于构成数字内容的最小单元数据包,
其中分配最小单元数据包的步骤包括以下步骤:
从目的地接收已收到通知;
使服务器在其内部保存已收到通知;
结合使用所保存的已收到通知,选择一个目的地作为中间节点;以及
向选作中间节点的目的地分配最小单元数据包。
本发明提供了计算机可读记录介质,用于在其内部记录程序,该程序用于执行服务器处理过程,以便执行将数字内容通过第一和第二网络分发到目的地的方法,其中,系统包括与第一网络连接、用于发送数字内容的服务器,以及构成与第一网络连接的第二网络、有被指定用于接收和提供数字内容目的地的客户机,其中该程序使系统执行以下步骤:
将数字内容分为多个数据包;
动态地从服务器向第二网络的多个目的地分配最小单元数据包:以及
通过第一网络从服务器向第二网络发送用于构成数字内容的最小单元数据包,而
其中分配最小单元数据包的步骤包括:
从目的地接收已收到通知;
使服务器在其内部保存已收到通知;
结合使用所保存的已收到通知,选择一个目的地作为中间节点;以及
向选作中间节点的目的地分配最小单元数据包。
本发明提供了用于执行客户机处理的程序,以便执行将数字内容通过第一和第二网络分发到客户机的方法,其中,系统包括与第一网络连接、用于发送数字内容的服务器,以及构成与第一网络连接的第二网络、用于接收和提供数字内容的客户机,该程序使客户机执行以下步骤:
通过第一网络接收最小单元数据包,该最小单元数据包构成被分为多个数据包的数字内容;
从构成第二网络的其它客户机接收用于重建数字内容的数据包,;以及
通过使用最小单元数据包、已通过第一网络接收的数据包,以及使用从其它客户机接收的数据包,使包含在第二网络中的客户机在其内部保存数字内容。
本发明提供了计算机可读记录介质,用于在其内部记录程序,该程序用于执行客户机处理,以便执行将数字内容通过第一和第二网络分发到客户机的方法,其中,系统包括与第一网络连接、用于发送数字内容的服务器以及构成与第一网络连接的第二网络、用于接收和提供数字内容的客户机,其中该程序使客户机执行以下步骤:
通过第一网络接收最小单元数据包,该最小单元数据包构成被分为多个数据包的数字内容;
从构成第二网络的其它客户机接收用于重建数字内容的数据包;以及
通过使用最小单元数据包、已通过第一网络接收的数据包,以及使用从其它客户机接收的数据包,使包含在第二网络中的客户机在其内部保存数字内容。
本发明提供了数字内容分发服务器,该服务器与第一网络连接并用于向与第一网络连接的第二网络提供数字内容,该服务器包括:
用于将数字内容分为多个数据包的装置;
用于存储具有包括在第二网络中的目的地的列表的装置;
用于通过第一网络从服务器向第二网络发送用于构成数字内容的最小单元数据包的装置;
通过使用列表,向最小单元数据包发往的第二网络动态地分配目的地的动态分配装置;
从目的地接收已收到通知的装置;
通过使用已收到通知选择目的地作为中间节点的的装置;
通过使用被选择作为中间节点的目的地发送最小单元数据包的装置。
本发明提供了用于接收通过第一网络分发的数字内容并构成与第一网络连接的第二网络的客户机,该客户机包括:
用于通过第一网络接收最小单元数据包的装置,该最小单元数据包构成数字内容,而数字内容被分为多个数据包;
通过第二网络接收用于重建数字内容的数据包的装置;
通过使用经由第一网络接收的最小单元数据包以及使用经由第二网络从其它客户机接收的数据包,使包含在第二网络中的客户机在其内部保存数字内容的装置。
本发明提供了用于通过第一和第二网络向预定广域组分发数字内容的分发系统,该系统包括:
与第一网络连接、用于在其内部保存数字内容并发送数字内容的服务器;以及
通过包括客户机而构成的多个组,这些客户机构成与第一网络连接的第二网络,这些组用于构建广域组以接收和提供数字内容,
其中服务器包括,用于将所保存的数据内容分为多个数据包,并在没有重叠的情况下向组内的客户机发送用于构成数字内容的最小单元数据包的装置,而且
其中每个接收到最小单元数据包的客户机包括,可把从服务器接收的最小单元数据包拷贝分发到构成子广域组的所有客户机的装置,该子广域组包括所述每个客户机和构成另一个组的另一个客户机。
本发明提供了与第一网络连接并用于在其内部保存数字内容和通过第一网络向广域组分发数字内容的服务器,该广域组包括通过第二网络连接的多个组,该服务器包括:
通过将所保存的数字内容分为多个数据包而创建最小单元数据包的装置;
用于选择最小单元数据包分发目的地,从而使预定组的相同的最小单元数据包不重叠的装置;以及
用于向组内所选择分发目的地的客户机发送用于构成数字内容的最小单元数据包的装置。
本发明提供了将计算机作为服务器进行控制的方法,以便使该计算机在其内部保存数字内容并通过第一网络向广域组分发数字内容,该广域组包括多个通过第二网络连接的组,该方法使该计算机执行以下步骤:
通过将保存的数字内容分为多个数据包而创建最小单元数据包;
选择并向其分发目的地注册最小单元数据包,从而使预定组的相同的最小单元数据包不重叠;
将所选择的分发目的地数据作为最小单元数据包而存储;以及
读取所存储的最小单元数据包并将其发送给组内所选择分发目的地的客户机,以构建数字内容。
本发明提供了将计算机作为服务器进行控制的程序,用于在该计算机内部保存数字内容并通过第一网络向广域组分发数字内容,该广域组包括多个通过第二网络连接的组,该程序使计算机执行以下步骤:
通过将保存的数字内容分为多个数据包而创建最小单元数据包;
选择并向其分发目的地注册最小单元数据包,从而使预定组的相同的最小单元数据包不重叠;
将所选择的分发目的地数据作为最小单元数据包而存储;以及
读取所存储的最小单元数据包并将其发送给组内所选择分发目的地的客户机,以构建数字内容。
本发明提供了计算机可读记录媒介,可在其内部记录将计算机作为服务器进行控制的程序,以在其内部保存数字内容并通过第一网络向广域组分发数字内容,该广域组包括多个通过第二网络连接的组,其中该程序使计算机执行以下步骤:
通过将保存的数字内容分为多个数据包而创建最小单元数据包;
选择并向其分发目的地注册最小单元数据包,从而使预定组的相同的最小单元数据包不重叠;
将所选择的分发目的地数据作为最小单元数据包而存储;以及
读取所存储的最小单元数据包并将其发送给组内所选择分发目的地的客户机,以构建数字内容。
本发明提供了与第二网络连接、用于通过第一和第二网络向预定广域组分发数字内容并构成广域组的组的客户机,该客户机包括:
用于通过第一和第二网络中的任何一个网络接收数据包,并用于判定所接收的数据包是否用于重建数字内容的最小单元数据包的装置;以及
用于对该判定作出响应,根据所接收的数据包创建拷贝数据包并将该拷贝数据包至少分发到另一个组的一个客户机的装置。
本发明提供了将计算机作为与第二网络连接的客户机进行控制的方法,以便使该计算机通过第一网络和第二网络向预定广域组分发数字内容,并构成广域组的组,该方法使计算机执行以下步骤:
通过第一和第二网络中的任何一个网络接收数据包,并将所接收的数据包存储在存储器中;
判定所接收的数据包是否用于重建数字内容的最小单元数据包;
当所接收的数据包被判定是最小单元数据包时,响应于该判定,根P29据所接收的数据包创建拷贝数据包并将该拷贝数据包至少分发到另一个组的一个客户机;以及
当所接收的数据包被判定不是最小单元数据包时,就将所接收的数据包存储在存储器中。
本发明提供了将计算机作为与第二网络连接的客户机进行控制的程序,以便使该计算机通过第一网络和第二网络向预定广域组分发数字内容,并构成广域组的组,该程序使该计算机执行以下步骤:
通过第一和第二网络中的任何一个网络接收数据包,并将所接收的数据包存储在存储器中;
判定所接收的数据包是否用于重建数字内容的最小单元数据包;
当所接收的数据包被判定是最小单元数据包时,响应于该判定,根据所接收的数据包创建拷贝数据包并将该拷贝数据包至少分发到另一个组的一个客户机;并且
当所接收的数据包被判定不是最小单元数据包时,就将所接收的数据包存储在存储器中。
本发明提供了计算机可读记录介质,可在其内部记录将计算机作为与第二网络连接的客户机进行控制的程序,以便使该计算机通过第一网络和第二网络向预定广域组分发数字内容,并构成广域组的组,其中该程序使计算机执行以下步骤:
通过第一和第二网络中的任何一个网络接收数据包,并将所接收的数据包存储在存储器中;
判定所接收的数据包是否用于重建数字内容的最小单元数据包;
当所接收的数据包被判定是最小单元数据包时,响应于该判定,根据所接收的数据包创建拷贝数据包并将该拷贝数据包至少分发到另一个组的一个客户机;并且
当所接收的数据包被判定不是最小单元数据包时,就将所接收的数据包存储在存储器中。
本发明提供了网上数字内容共享方法,用于共享通过多个网络连接的客户机内的预定数字内容,其中预定数字内容被转换成多个连续的流数据,而且重建预定数字内容所必需的最小单元数据包由服务器通过网络发送,该方法包括以下步骤:
通过阅读客户机列表选择需要分发预定数字内容的客户机;
向所选择的客户机发送最小单元数据包;
使接收到最小单元数据包的客户机将该最小单元数据包存储在其存储器中,创建拷贝数据包并将该拷贝数据包分发给除已经接收到数据包的客户机之外的其它客户机;
把从其它客户机接收到的拷贝数据包存储在存储器中;以及
通过重建存储器中的数据包,使用户共享所分发的预定数字内容。
附图说明
为了更全面地了解本发明及其优点,以下将参照附图进行说明。
图1是一幅示意图,说明本发明的数字内容分发系统。
图2是一幅示意图,说明在本发明中构建的路径树的结构。
图3是一幅示意图,说明从服务器发送源数据包和客户机发送拷贝数据包的处理过程。
图4是一幅示意图,说明在本发明中动态地选择作为中间节点的客户机的情况的实施例。
图5是一幅示意图,说明根据本发明向客户机发送或从客户机接收数据包的通信情况。
图6是一幅示意图,说明在本发明中动态地选择作为中间节点的客户机的情况。
图7是一幅示意图,说明在本发明中,在组#1内增添新的客户机的情况下,服务器的处理过程。
图8是一幅示意图,说明根据新创建的路径树结构对新加入的客户机所作的处理。
图9是一幅功能框图,说明在本发明中客户机的构造。
图10是一幅功能框图,说明在本发明中服务器的构造。
图11是一幅示意图,说明在本发明中可用的源数据包的实施例。
图12是说明在本发明中服务器所用的客户机列表的实施例的表格。
图13是一幅示意图,说明在本发明中服务器所选择的路径树结构的实施例。
图14是一幅示意图,说明本发明的数字内容分发系统的第二实施例。
图15是一幅框图,说明在图14中所显示的源服务器和客户机的构造。
图16是一幅示意图,说明在本发明的服务器和客户机之间源数据包按时间顺序的传输情况。
图17是一幅示意图,按时间顺序说明源数据包和拷贝数据包在服务器和本发明中被选作服务器与客户机之间中间节点的客户机之间的传输情况。
图18是一幅流程图,说明本发明的客户机的处理过程。
图19(a)是一幅流程图,说明在本发明中的拷贝过程,而图19(b)也是一幅流程图,说明在发生客户机意外离开的情况下或在有关客户机内检测到严重故障的情况下,服务器的处理过程。
图20是一幅示意图,说明本发明的数字内容分发系统的另一个实施例。
图21是一幅示意图,说明本发明的数字内容分发系统的又一个实施例。
图22是一幅示意图,说明本发明的数字内容分发系统的另外又一个实施例,该实施例使减轻无线网络上的服务器负载成为可能。
图23是一幅框图,说明本发明的数字内容分发系统的构成。
图24是一幅示意图,说明在本发明中可使用的源数据包的其它实施例。
图25是一幅流程图,说明本发明执行内容分发的过程。
图26是一幅流程图,说明服务器和客户机在执行本发明的内容分发的情况下的处理过程。
图27是一幅示意图,说明根据本发明的内容分发方法而分发的源数据包和拷贝数据包的流程。
图28是一幅示意图,说明本发明的内容分发系统的另一个实施例。
图29是一幅示意图,说明本发明的内容分发系统的又一个实施例。
图30是一幅示意图,说明本发明的内容分发系统的另外又一个实施例。
图31是一幅示意图,说明常规的IP多播方法。
图32是一幅示意图,说明说明利用常规应用层多播方法的数字内容分发。
图33是一幅示意图,说明用于将客户机连接到边缘服务器的常规结构数字内容分发系统。
图34是一幅示意图,说明利用常规多播隧道技术的数字内容分发。
图35是一幅示意图,说明利用常规多播隧道技术的数字内容分发中的通信业务环境。
具体实施方式
虽然下面将根据具体的实施例对本发明进行说明,但下面将要说明的实施例并不对本发明构成限制。
A:数字内容分发系统
图1是一幅说明本发明的数字内容分发系统10的示意图。本发明的数字内容分发系统10是通过包括服务器14和多个客户机20而构成的,服务器14与网络12连接,而多个客户机20分别地通过路由器16和交换集线器18等网络装置与网络12连接。因特网、WAN和LAN等网络可以假设为如图1所示的网络12。可以使用公共电话线、IDSN、ADSL、光学通信、地波无线通信、卫星通信等,作为用于构成网络的媒介。根据本发明,服务器14通过网络12和22向客户机20分发数字内容。作为在本发明中分发的数字内容,可列举的有符合MPEG2标准、MPEG4标准及高级标准的活动画面图像数据等,都包含在必须以实时特征同时提供给多个客户机的内容之中。此外,除活动画面图像数据以外,还可以使用多媒体数据作为本发明中的数字内容,这些多媒体数据由多种数字数据构成,例如有活动画面图像数据、音频数据和文本数据等。
此外,客户机20通过路由器16和交换集线器18等与网络12连接,并被服务器14以标识符标识为预定的组#1等,例如,就像为每个路由器16分配的IP地址。此外,在本发明的优选实施例中,在预定组内的客户机构成了设置为对等连接的网络22,这样,就能够在组内客户机之间进行互相通信。
可以用个人计算机或工作站构成可在本发明中使用的服务器14。作为这种个人计算机或工作站,可以列举的个人计算机或工作站可以安装诸如PENTIUM(注册商标)CPU或与PENTIUM兼容的CPU,并能运行诸如WINDOWS(注册商标)、WINDOWS(注册商标)NT(微软公司)、OS/2(商标:国际商用机器公司)、AIX(商标:国际商用机器公司)、UNIX和LUNIX操作系统的个人计算机或工作站。但是,服务器14不只限于这些个人计算机或工作站。
而且,可应用于上述服务器14的个人计算机和工作站可以被假设为可在本发明中使用的客户机20。此外,如果笔记本型个人计算机和个人数字助理的处理速度足以在本发明中应用,则客户机的构成也可包括通过无线连接的笔记本型个人计算机和个人数字助理等。
图1所示的本发明的数字内容分发系统10的构建方式,使活动画面图像数据被分解成多个数据流,一个数据流又被分为多个数据包,每个数据包作为源数据包从服务器14发送到预定客户机20。在本发明中,构成数据流的源数据包被发送到包含在特定的组内的至少一个客户机。接收到源数据包的客户机将所接收数据包的拷贝(以下统称为“拷贝数据包”)发送给包含在该特定组内的其它客户机。接收到拷贝数据包的下游客户机在预定时间周期内累积拷贝数据包,并在该预定时间周期消逝后通过使用作为诸如系列号附加在数据包上的数据包标识符重建数据流。然后数字内容就在客户机内显示或复制。具体而言,在本发明中,服务器14在不向客户机发送在一个组内重叠的数据包的情况下,使相同的数字内容能够提供给属于预定组的客户机。
B:数字内容分发方法
以下将对用于执行本发明的数字内容分发的方法作进一步的详细说明。
<B-1>基于在静态路径树结构的数据包单元内的瞬时选择进行动态路由选择
如上所述,在本发明中,例如,为包含在一个组内的m个客户机构建了路径树结构,其中服务器14被设置为树根,而一个客户机20a被服务器14指定为中间节点。图2(a)以示意图的方式说明了本发明中的所构建的路径树结构。如图2(a)所示,在已构建树结构中的1∶1∶(m-1)树结构构成了一条数据包传输路径。为便于描述,在本说明书中,假设所组成的路径为两级结构,包括服务器与中间节点之间的第一级路径,以及中间节点与客户机之间的第二级路径,而且没有超出这两级的中继。
如图2(a)所示,服务器14选择组内一个客户机20a作为中间节点,并首先向被选为中间节点的客户机20a发送源数据包。收到源数据包并作为中间节点而工作的客户机20a将所接收到的源数据包分发到组内的客户机20b至20e,从而使组内共享数据包成为可能。此外,在本发明中,被设置为中间节点的客户机20a并不只限于图2(a)所示的设置。服务器14按照TCP/IP等面向连接的协议,通过网络12监控各个客户机的有效吞吐量,从而可以从一个或多个客户机中动态地选择客户机20。后面将对本发明的这种中间节点的选择进行详细描述。
如果图2(a)所显示的(树结构中)从服务器分别至各个客户机20a至20e的所有路径互相重叠,就能够描述服务器14与各个客户机20a至20e的连接以及在预定组内每两个客户机之间进一步互动连接的完整连线图。图2(b)说明的是图2(a)所显示的具体实施例中服务器14和各个客户机20a至20e之间所形成的完整连线图的实施例。如图2(b)所示,可以认为按数据包单元进行的选择是从完整图中选择(路径树结构内)部分的树结构。根据本发明,可以根据客户机的吞吐量灵活选择路径。因此,在路径树结构中,各个客户机将动态地转移到其它客户机的上游或下游。
将参照图2(b)所示的本发明具体实施例中的完整图对本发明加以说明。首先,一个数据流的源数据包在没有数据包重叠的情况下被从服务器发送到包含客户机20a至20e的组。各个客户机20a至20e在没有任何重迭的情况下接收构成部分数据流的源数据包。此后,属于同一个组的客户机就互相复制作为拷贝数据包的短数据包,从而补偿了为重建一个数据流的数据包总量不足,以便恢复这一个数据流。在本发明中,客户机的上述功能被称作端对组式(peer-to-group type)分发。须指出,根据流式传输协议,系列号已经在先前作为数据包标识符附加到各个数据包上。因此,结构被采用,在该结构中的短数据包和数据流内的数据包顺序可以在各个客户机内恢复。迄今为止已知的任何方法都能作为以上所述的方法使用。具体而言,例如,可以采纳Schulzrinne等人所公开的方法(H.Schulzrinne,S.Casner,R.Fredrick以及V.Jacobson.RFC 1889:RTP:实时应用传输协议,1996年1月)。
图3是一幅示意图,说明了上述从服务器14发送源数据包的过程以及在组#1内客户机之间传输拷贝数据包的过程。如图3所示,从服务器14所采集的活动画面图像数据形成数据流并被分为多个数据包。例如,数据包标识符P1至P5被分别附加在源数据包上。在本发明中,对图3所示的源数据包没有特别的大小限制,而且源数据包可以做成任何大小。被分为源数据包P1至P5的数据流24通过第一网络,例如因特网或属于不同领域的LAN和WAN,传输到组#1。
在图3所示的具体实施例中,正如后面所要描述的,规定了各个客户机20a至20e具有互相大致相同的吞吐量。在所描述的实施例中,客户机20a至20e分别被选为中间节点,而且源数据包P1至P5分别发送到客户机20a至20e。
此处将对接收到数据包P1的客户机20a的功能加以详细描述。分别对应于属于组#1的客户机的成员列表包含在客户机20a至20e内。根据TCP/IP、UDP等任何已知协议以及将要出现的播送模式,参照成员列表,通过执行例如广播通信,拷贝数据包被传送到组内其它客户机20b至20e。此外,在本发明中,一旦发送拷贝数据包,该拷贝数据包也可以在源数据包刚刚到达后或在固定的时间间隔内,更为安全地发送到引起注意的其它客户机的各个IP地址。在本发明中可用的传输方法可以在考虑了构成预定组的客户机的数量、成本以及可靠性等因素后进行恰当的选择。其它客户机20b至20e从客户机20a接拷贝数据包并将拷贝数据包累积在接收缓冲器中。除客户机20a外,其它客户机20b至20e也执行类似的拷贝数据包的传输。各个客户机在预定时间周期内,例如大约1秒钟或更短的时间内,将拷贝数据包累积在接收缓冲器中,以便保证随后的数据流不受影响。
在实施例中,客户机20a在接收缓冲器中的地址被指定,以使其与数据包标识符相对应,在预定时间周期消逝后,一个数据流的源数据包就按照,例如,“P1P2P3P4P5”的顺序累积在其中。这就使客户机20a能够通过使用FEC解码器,源解码器等重建数据包以及在时间周期内累积的、作为一个数据流的活动画面图像数据,即“P1P2P3P4P5”,的数据包和拷贝数据包。此外,只要没有特别的不利情况出现,也可以不必按系列号,而是按接收顺序记录数据包,然后进行图像数据的分类和重建。
图4是一幅示意图,说明在本发明中客户机用作中间节点并被动态地选择的一个实施例。在本发明中,服务器14和客户机20通过使用TCP等面向连接的协议而构成网络。如图4(a)所示,虽然后面还要进行详细描述,服务器14监控各个客户机的吞吐量,并根据吞吐量随机地选择客户机。所选择的未必总是吞吐量最大的客户机。然后,被选择的客户机20b被设置为第一中间节点,第一个源数据包P1就被分发到该客户机。此外,服务器14连续地每隔一段时间,例如大约几秒钟或更短,连续监控客户机吞吐量的变化,并且动态地在各个时间点从开销小的客户机中选择中间节点。例如,图4(b)所示的实施例表明,在该时间点上,客户机20d的开销最小,所以,客户机20d就被服务器14选作中间节点,并接收源数据包,例如源数据包P3。
根据本发明,利用上述被采纳的结构,只要服务器14在不向构成组#1的客户机发送重叠的数据包的情况下发送一个数据流的源数据包,就可以使组#1内的所有客户机保存数字内容。具体而言,本发明能够把迄今为止在向组#1所包含的客户机发送数据包时集中于服务器14的负载分散到整个网络。这样,本发明就可以使包含服务器14的网络的效率得到提高。同时,本发明还能使网络内的通信可扩展性得到改善。
<B-2>网络的可扩展性
以下将对本发明结构中的服务器14与客户机20之间的传输量进行分析。图5说明根据本发明向客户机20a发送的和从客户机20a接收的数据包的量。假设有n个数据包在单位时间里从服务器14均匀地分发到各个客户机。有n/m个源数据包从服务器14分发到客户机20a,而客户机20a则从服务器14接收源数据包。接收到源数据包的客户机将所接收的数据包中继到m-1客户机(拷贝数据包的分发)。同时,客户机20a从其它客户机接收拷贝数据包。从网络的观点看,这些拷贝数据包与从其它客户机发出的数据包是相同的。因此,每个客户机在单位时间里所产生的传输量为(n/m+n/m×(m-1)=n)个数据包。与采用常规边缘服务器结构的常规实例的情况相比,在该传输量中,数据包的数量是不变的。即使是在客户机未被均匀选择的情况下,上述数据包的传输量也是确定的。
其次,就数量而言,需要在单位时间内由各个客户机进行输入/输出处理的数据包数量为,接受输入处理的总共为n个数据包,该数量是将来自服务器14的n/m个数据包和来自其它客户机的{n/m×(m-1)}个数据包相加而得到的,而需要进行输出处理的是{n/m×(m-1)}个数据包,该数量是在n/m个源数据包被中继到均匀选择的客户机时得到的。因此,接受输入/输出处理的数据包数量即为{n×(2m-1)/m}(数据包)。为此,数据包的最小数量为n个数据包(m=1),最大不超过2n个数据包(m→∞)。具体而言,即使客户机的数量增加,每个客户机的负载只是逐渐接近2n个数据包,并不会超过这一数量。因此不会导致在各个客户机内的负载溢出问题。同时,服务器14必须为每个数据包从m个客户机中选出一个客户机。这一客户机选择处理的次数与客户机的数量m成正比,而数据包的传输从不依赖客户机的数量。因此,无论何时如果客户机的数量增加,在本发明的数字内容分发中不会在网络可扩展性方面发生不利的情况。
因而,在本发明中也对均匀选择的相反情况作了假设。具体而言,也假设了只有一个客户机从服务器14接收到所有源数据包的情况。而且在该情况中,输入客户机的数据包数量与常规情况相比没有变化,因为,所输入的数据包是用于一个数据流的,并且有n个源数据包输入了被选择的客户机。此外,已经接收到源数据包的客户机所输出的拷贝数据包仅在该客户机内与n×m个数据包相加。在此情况下,虽然只在被选择的客户机内增加了负载,但从服务器14向组分发数字内容不会发生严重问题,因为在组内只增加了广播通信量。此外,在本发明中,优选采用路径树结构的动态选择,从而可使该情况下的选择尽可能接近均匀选择,从而不致偏向于只将源数据包发送给上述一个客户机。同时,也可以通过动态地选择路径树结构进行重建以保持网络系统的稳定。后面将对上述路径树结构的动态选择进行详细说明。须指出,为了防止因选择的不均匀性导致所发送数据包数量在局部上的增加,必须对拷贝数据包的传输速度和传输处理的时间进行限制,而且超过限制的数据包会破裂。
<B-3>动态选择(动态最佳化)
在本发明的路径树结构中,一个或多个客户机不是固定的和静态使用的,而是从客户机中动态地选择出来的。在路径树结构的选择中,传输数据包的路径树结构是在以下条件下动态地构建的:
(a)有关客户机已做好接收数据包的准备;
(b)作为中间节点、从服务器的角度看来往传输时间(RTT)短的客户机的路径选择被赋予优先权,即路径所选择的是处理开销小的客户机;
(c)包含作为中间节点、数据包拷贝率高的客户机的路径被赋予优先权。
通过TCP等面向连接的协议可以实现上述条件(a)的验证处理。此外,将通过利用,例如,在服务器14发送源数据包情况下的Ipv4格式,对条件(b)中所述的RTT测量进行描述。为进行该项测量,时间可以预先记录在源传输数据包IP的头部,而接收到源数据包的客户机可将IP的头部按原样将其返回服务器。作为选择,也可以通过使用在应用层单独生成的原始头部并将时间记录在原始头部内,该原始头部可以按原样返回服务器。如上所述,可以使用利用时间差的方法,该时间差即记录在IP头部等处的时间和返回到服务器14的时间之间的差异。此外,服务器14发送源数据包的时间可以预先存储,而且来自客户机的响应数据包可以被接收,这样就可以读取并验证响应数据包IP头部的时间。
在利用TCP的情况下,结合RTT,可以观察到包含在有关层级进行再发送处理所用时间的时间,即吞吐量。须指出,为进行RTT的测量,也可利用多项观察结果的平均值,以便吸收测量值的波动。
此外,被描述为条件(c)的拷贝率利用了从中间客户机到下游客户机的数据包传输成功率。在使用诸如TCP的面向连接协议的网络中,拷贝率变化的原因包括中间客户机由于时间的限制而打破数据包的情况等。当客户机按照UDP协议互相连接时,拷贝率根据数据包到达下游客户机的速率而计算。
在本发明的具体实施例中,为了满足上述条件,符合条件(a)的客户机被选择,从而使源数据包以预定速率分发到该客户机。图6是一幅示意图,说明在本发明中动态地选择作为中间节点的客户机的情况。如图6所示,服务器14选择客户机20e作为中间节点,并向其发送源数据包。例如,响应于服务器14开始的数字内容分发,客户机20e可被选作在该时间点首先返回响应的客户机。例如,除客户机20e之外的客户机未被选择,其原因是这些其它客户机因执行其它处理而未能在预定阈值时间内对服务器14作出响应,而且,与客户机20e相比,它们的RTT,例如,比设定的阈值更慢。在图6中所示的实施例中,服务器14判定客户机20e具有足够的处理能力,并将客户机20e设置为接收源数据包的中间节点。接收到源数据包的客户机20e使用,例如,广播通信将拷贝数据包分发到组#1内的其它客户机。
在本发明中,具有最小RTT的客户机被选作中间节点。而且,除此以外,如下所述,分配权值也可结合RTT在客户机之间授予。例如,在本发明的最优选实施例中,可采纳的权值可根据以下关系式给定。
公式1
tk:吞吐量∝1/RTT
rk:拷贝率
在以上关系表达式内,tkrk与真实吞吐量,即客户机在单位时间内可处理的数据包数量,成正比。因此,在这种分配方法中,实现有效吞吐量最大化,即实现稳定性最大化,被设置为目标函数。须指出,在本发明中,上述条件可适用于各个源数据包。此外,在本发明中,源数据包的权值分配可以按预定时间间隔定期地更新。不能在每个时间点接收数据包的客户机被排除在路径选择候选者之外。这样,即使在权值分配中有错误,也不会发生像丢失数据包那样的严重情况。此外,在本发明的另一个实施例中,可以仅仅通过使用RTT来判定有效吞吐量。
<B-4>动态重建
此外,在新的客户机被添加到服务器所认可的组内时,本发明即随着新客户机的增加而自动地拷贝,这样就可以灵活应对网络结构的变化。
图7说明在有新的客户机加入本发明中的组#1时,服务器14的处理过程。如图7所示,当客户机20f加入组#1时,客户机20f通过使用,例如,从另一个客户机采集到的服务器14的IP地址,向服务器14发出加入请求。加入请求可以包括客户机的标识符,例如新加入客户机20f所采集到的或分配到的IP地址。
一旦接收到加入请求,服务器14将客户机20f的标识符添加到保存在服务器14内、被用作目的地列表的组#1客户机列表上。在图7所示的实施例中,服务器14通过利用,例如,向组#1的引起注意的IP地址所进行的广播,发出新成员通知,以便通报包含客户机20a至20e的组#1内添加了新客户机的情况。
随后,服务器14向新加入的客户机20f发送连接请求,表明其连接已经完成。在图7所示的实施例中,保存在服务器14内、与构成组#1的客户机成员相对应的标识符可以包含在连接请求内。客户机20f接收连接请求并更新成员列表。须指出,为进行此项操作,可以使用,例如,属于同一申请人的编号为No.2002-088702的日本专利申请中所描述的IP地址自动采集方法。在可以使用编号为No.2002-088702的日本专利申请所公开的IP地址自动采集方法的情况下,就可以不必从服务器向各个客户机20a至20e发送新成员通知,因为它们已经保存了成员列表。
在上述处理过程以后,服务器14就变成能够在路径树结构中判定包含新加入客户机20f的路径,以进行数字内容分发。在本发明的具体实施例中,可以采用一种结构,其中,客户机20f在其加入组后立即被添加到已准备好的路径树结构中的最低数据流,而且客户机20f从其它客户机20a至20e采集拷贝数据包。包含客户机20f的新路径树结构是在RTT监控中的预定时间周期消逝后的路径选择中构成的。
须指出,在本发明中,客户机20f的性能在初期阶段是未知的,所以,例如,如以下公式所示,可以预先赋予客户机20f很大的RTT,作为初始值(大数值),并且可以预先降低源数据包的接收频率。为进行以上判定,可以使用包含所谓遗忘系数的平衡,以逐渐降低过去实际结果的权值。在本发明中,在新加入的客户机的所谓“实际结果”变得明显可以保证网络安全的时间点之后,在优选情况下应用本发明的动态结构方法。这样,本发明的效率就可进一步得到提高。
图8表明,根据新建立的路径树结构,源数据包被从服务器14发送到新加入的客户机20f,而拷贝数据包则从其它客户机20a至20c发送到20f。
此外,在本发明中,当联接的客户机离开时,服务器14可通过面向连接的网络了解到该客户机的离开。须指出,尽管即便是在客户机异常结束的情况下也可检测到客户机的离开,但出现了直到客户机超时也无法检测到网络电缆断开的情况时,即发生了偶然事件。在本发明中,即使发生超时,按照动态选择的规则(确认接收启用/禁用),源数据包也不会发送给该客户机。所以,就不会发生将由其它客户机接收的数据包一次全部丢失的不利情况。
认识到联接客户机离开的服务器14立即打破以该相关客户机为中间节点的路径树结构,并防止源数据包的丢失。留在组#1内的客户机可以根据成员列表分发所接收的源数据包。在留下的客户机在广播通信的基础上传送拷贝数据包的情况下,这些客户机可以向组#1内的所有可以接收拷贝数据包的客户机发送拷贝数据包。此外,留下的客户机取消了各个客户机与离开的客户机之间的连接,从而可以将离开的客户机从所有路径树结构的最低数据流中删除。
此外,一些分发到离开客户机的源数据包有时可能不被中继,而是在客户机离开的同时破裂。为了避免伴随客户机离开的这种数据包丢失现象,服务器14对一些不断地发送到各个客户机的新数据包进行预先记录处理,并在监测到客户机离开的时间点上将发送给离开客户机的数据包重新发送到其它客户机。
在本发明中,随着上述结构的采纳,服务器和客户机自动局部地增加、删减和改变路径树结构,从而通过客户机的加入和离开而重建组。此外,最近发送的数据包被记录并根据需要重新发送,这样就能够防止客户机突然离开而导致数据包丢失。
图9是一幅功能框图,说明本发明所述客户机20的构造。客户机20通过网络接口卡(NIC)30与第二网络连接。此外,客户机20通过包括接收缓冲器32、存储器34和诸如RAM的存储器36而构成。接收缓冲器32在重建活动画面图像数据的数据流之前的时间周期内保存所接收的源数据包和拷贝数据包。
在本发明中,接收缓冲器32可被构建成环形缓冲器,该缓冲器在每次接收数据包时,将所接收的数据包写到对应于数据包标识符的地址。此外,客户机20通过包括中央处理器(CPU)36、源解码器38和FEC解码器40而构成。然而,FEC解码器40在本发明中并不总是必需的。CPU 36与时钟同时驱动,读取在各个预定时间周期内累积在接收缓冲器32内的数据包,将数据包发送到源解码器38和FEC解码器40,并且重建一个数据流的活动画面图像数据。一个数据流的重建活动画面图像数据被显示或复制在显示器42上,以提供给客户机的用户。
为用户显示或复制的活动画面图像数据可以从客户机20上删除。作为选择,从数字内容的开头至结尾的整个数据流可以保存在存储器34内,并可存储在存储装置44,例如硬盘、磁性光盘和磁带内。在存储装置44内可以存储,例如,成员列表,该成员列表是通过包括用于识别构成组#1的客户的客户标识符而构成的。客户列表在客户机启动时从存储装置44读入客户机的存储器36内,并作为常驻文件而保存。当图9所示的客户机接收源数据包时,客户机20参照成员列表并指定拷贝数据包的分发目的地。此外,当客户机20按照TCP/IP协议向,例如,设置为Ipv4格式的目的地的abc,def.ghi.255广播发送拷贝数据包,就没有必要直接参照上述成员列表。
图10是一幅功能框图,说明在本发明中服务器14的构造。图10所示服务器14通过调制解调器、DSU或网络接口卡等通信装置46与网络12连接,并向客户机(图中未标出)分发数字内容。在下文中,将从采集数字内容开始,说明本发明服务器14的功能。
诸如数字电视摄像机等成像装置48,与图10所示的服务器14连接,其中想要作为数字内容而分发的数字数据,例如,节目、讲演会、祝贺和教学大纲等都被记录在记录介质中。记录的数字数据通过适当的接口采集到服务器14中,并保存在,例如,存储装置50中。在优选情况下,在本发明中将数字数据构建为包含上述活动画面图像数据的多媒体数据。在向客户机发送数字内容时,CPU 52首先从存储装置50中读取数字内容,并将读取的数字内容发送到源解码器54和FEC解码器56。接收到数字数据的源解码器54和FEC解码器56进行数字数据的流式处理,并将数据流进一步分为预定大小的数据包,例如数据包P1至P5。所创建的数据包P1至P5通过通信装置46向,例如,组#1分发数字内容。
由于在服务器14和客户机20之间确立了面向连接的协议,所以响应于所分配的RTT,RTT已经在最小权值上被监控,而且根据分配权值选择了作为中间节点的客户机。服务器14将源数据包发送到被选为中间节点的客户机,并向其分发数字内容。图11解释了通过使用IP头部可在本发明中使用的源数据包58的结构实施例。如图11(a)所示,从服务器14发出的源数据包58通过包括,例如,IP头部58a而构成,而IP头部58a通过包括发送地址和目的地地址58b而构成。此外,源数据包58还包括将要分发的数字内容58c、作为系列号P1等附加的数据包标识符58d以及源数据包被发送时的发送时间58e等。在本发明中,上述数据包58c、数据包标识符58d和发送时间58e可以作为创建在应用层的原始数据包而构成。此外,IP头部58a包括IP版本信息和发送源的IP地址等,其结构可以使服务器14能够根据客户机的答复判定RTT。在发送图11(a)所示的源数据包58时,服务器14也可通过定时器等监控源数据包,例如数据包P1,的发送时间。
由接收到源数据包P1的客户机发出的响应数据包通过网络12返回到服务器14,并一次累积在服务器14的适当存储单元内,并在客户机从所记录的时间,例如附加在响应数据包上的发送时间,发送相应数据包的时候读取时间。图11(b)说明从客户机发出的响应数据包60的构成实施例。如图11(b)所示,响应数据包60包括IP头部60a。如上所述,IP头部60a包括发送源地址和目的地地址60(b)。此外,响应数据包60通过包括所接收数字数据的数据包标识符60c、客户机发出响应数据包60时的时间60d以及源数据包P1被发送时的发送时间58e而构成。在IP头部60a内,客户机发送响应数据包60时的时间以及发送源客户机的发送源IP地址等都被记录。
在本发明中,一旦接收到响应数据包60,服务器14即通过利用共同存在于源数据包58和响应数据包60中的标识符,即在图11所示的实施例中的数据包标识符P1,判定响应数据包60是相应于接收源数据包54的响应数据包。在本发明的具体实施例中,服务器14通过使用源数据包的发送时间58e和响应数据包的发出时间60d计算RTT,并通过使用1/RTT和拷贝率判定客户机有效吞吐量。所判定的有效吞吐量是,例如,对于固定的时间周期是平衡的,而且随后被用于更新图12所示的客户机列表。此外,在本发明的另一个实施例中,在时间已被记录在IP头部的情况下,可以直接使用记录在IP头部的时间。
图12是说明在本发明中服务器14所用的客户机列表62的实施例的表格。图12所示的客户机列表62通过包括在服务器14分发数字内容时注册的组标识符62a、包含在特定组内的客户机地址62b以及在预定时间周期内平衡的有效吞吐量而构成的。例如,在分发数字内容时,内容提供者,例如电视台、卫星广播站以及事件提供者都可以通过由用户等进行注册来准备组标识符62a。此外,当服务器14通过事务企业、司法机构、立法机构、图书馆等的内联网分发数字内容,而不特别受限于内容提供者时,则分配给各个事务企业或机构的地址,例如IP地址,即可被使用。
此外,分配到特定组的客户机地址62b和IP地址等,可以在本发明的具体实施例中使用。图12所示的有效吞吐量62c是本发明中的基本参数,该参数用于上述分配加权。在本发明中,上述加权,例如,在大约一秒钟的时间间隔内平衡,以便防止不必要的变化并稳定路径树的结构,以保证网络的稳定性/可靠性和响应于客户的离开和接入或处理状态而灵活应付开销的变化。这种加权作为有效吞吐量而定期更新。图12所示有效吞吐量62c按相应于,例如,组#1内客户机20a至20e的数值标示为#1Ta至#1Te。
此处假设客户机20b和20c被选为中间节点而且分配给它们的权值比为3∶2,则图13所示的路径树结构即在服务器14中形成。服务器14根据权值,例如,将源数据包P1至P3发送到客户机20b,将源数据包P4至P5发送到客户机20c。所发送的源数据包作为拷贝数据包Cp1至Cp5从被选作中间节点的客户机20b和20c发送到包含在组#1内的其它客户机。然后,拷贝数据包Cp1至Cp5被累积在各个客户机的接收缓冲器中,然后,在累积了一个预定时间周期后,即被用于重建一个数据流。须指出,在本发明的另一个实施例中,所发送的源数据包可以按任何数值比划分,并发送给中间节点。
C:数字内容分发系统的另一个实施例
图14是一幅示意图,说明本发明的数字内容分发系统的第二实施例。图14所示数字内容分发系统是通过包括以下部分而构成的:用于创建数字内容的源服务器64、保存在源服务器64内用于提取和保存接受流式处理的数字数据的排空服务器66,以及通过网络12连接的组#1、#2和#3。采纳了一种结构,在该结构中各个组内有客户机被选为中间节点并在组内按照本发明发送数字内容。
图15是一幅框图,说明在图14中所显示的源服务器64和一个客户机的构造。如图15(a)所示,源服务器通过使用源解码器64a和FEC编码器64b根据已创建的数字数据创建流式数据内容。所创建的数据包被发送到排空服务器66,在排空服务器66内被编辑成本发明所需的n个源数据包,并通过网络12发送到客户机。此外,图15(b)说明了客户机的结构和处理过程。客户机20接收拷贝数据包,并在一个预定时间周期内累积了拷贝数据包后,通过使用FEC解码器38和源解码器40为一个数据流重建数字内容。然后客户机20向用户提供数字内容。同时,被选作中间节点的客户机20a拷贝所接收的源数据包,并将该数据包作为拷贝数据包分发到其它客户机。
D:在数字内容分发中的源数据包传输协议
图16是一幅示意图,说明在本发明的服务器和客户机之间源数据包按时间顺序的传输情况。源数据包按固定的时间间隔从服务器分发到任何客户机。接收到数据包的客户机向服务器发回响应数据包确认信息。客户机被构建成可向服务器定期报告(例如每秒1次)拷贝的成功率(拷贝率)。如上所述,从每当数据包发出直至每当服务器收到响应数据包确认信息之间的时间周期被用作RTT(来往传输时间),用于确定中间节点在路径树结构中的分配权值。
图17是一幅示意图,按时间说明在本发明中源数据包和拷贝数据包在服务器和被选作中间节点的客户机之间按时间顺序传输的情况。已从服务器接收到源数据包P1和P2的客户机将源数据包P1和P2的拷贝数据包#1和#2分发到本组的客户机b。在该情况下的成功率(复制率)被定期地报告给服务器。此外,服务器向客户机b发送数据包P3,而客户机b则向客户机a发送拷贝数据包#3。在该时间点上,客户机a在接收缓冲器中保存有数据包P1至P3。上述过程依次重复,从而为一个数据流累积了数据包。
图18是一幅流程图,说明本发明的客户机的处理过程。被选作中间节点的客户机始终被设置在等待接收源数据包的状态,并在步骤S100监控数据包的到达。一旦接收到数据包,该客户机即在步骤S102根据所接收数据包的标识符计算在接收缓冲器中的存储位置。在步骤104,判定缓冲器中的位置是否空的。如果是空的(是),则编号与该位置相对应的数据包还未被接收。因此,在步骤S112,所接收的数据包被写入接收缓冲器中的相应位置。随后,在步骤S114,判定所接收的数据包是否源数据包,例如,通过使用包含在IP头部的发送源地址判定接收的是否源数据包。如果接收的是源数据包(是),处理过程即转入步骤S116,其中拷贝过程被保留,以便将拷贝数据包发送给本组内的其它客户机。拷贝过程的保留可以通过,例如,利用适当的FIFO缓冲器对所接收数据包注册而进行。在拷贝过程的保留结束后,处理过程就返回步骤S100,客户机处于等待接收数据包的状态。
另一方面,如果在步骤104判定相应的缓冲器地址不是空的(否),则具有相应数据包标识符的数据包已经被接收。因此,在步骤S106就判定,有相应标识符的数据包是否已经被保留,以便接受拷贝处理。如果该改保留已经注册(是),则该保留就在步骤S108被删除,因为重写将导致源数据包被擦除。然后,拷贝失败计数器在步骤S110递增计数。在步骤S112,在该时间点上被接收的数据包被重写到相应的缓冲器位置。这相当于后续的数据包在客户机发送源数据包拷贝之前就到达。这也相当于数据包的熄灭。如果未注册数据包的保留以接受拷贝处理(否),处理过程即转到步骤S112,其中数据包被重写到相应的缓冲器地址,因为该数据包是拷贝数据包。然后,重复从S114至S110的过程。
图19(a)是一幅流程图,说明在本发明中的拷贝过程。在如图19所示的拷贝过程的步骤S120,客户机处于等待状态,直至需要进行拷贝处理的源数据包进行了注册。在源数据包注册时,如果注册已经完成,例如,像所述实施例中利用FIFO缓冲器进行的注册,则以前注册的数据包即在步骤S122被选择。在步骤S124,客户机拷贝所选择的数据包,以制作拷贝数据包,并进行广播传输,将拷贝数据包发往其它客户机,或参照目的地IP地址将拷贝数据包分别发送给其它客户机。此后,拷贝成功计数器在步骤S128递增计数,过程返回到步骤S120,客户机处于等待状态。上述拷贝成功计数器的计数与拷贝成功计数器和拷贝失败计数器的总计数之比,作为拷贝率发送给服务器。采纳了一种可以防止对数字内容分发不利情况的结构,例如,如果拷贝率过低,可通过为一个数据流重新发送数据包的处理方法来防止出现因数据包丢失而导致的不利情况。
图19(b)是一幅流程图,说明在发生客户机意外离开的情况下或在有关客户机内检测到严重故障的情况下,服务器的处理过程。在步骤S130,服务器通过RTT和拷贝率始终监控着客户机的有效吞吐量。例如,如果服务器在预定阈值的时间周期内没有接收到响应数据包,服务器即判定客户机已离开或发生了故障。此后,处理过程转入步骤S132,服务器从发送到有关客户机的源数据包中选出在相应于预定阈值的时间周期内发送的源数据包。然后,服务器利用服务器的已发出源数据包列表的表头进行所选择的源数据包的注册,并将经过注册的源数据包发往其它客户机。这样,就采纳了可以防止源信息包熄灭的结构。
图20是一幅示意图,说明本发明的数字内容分发系统的另一个更为具体的实施例。具体而言,在图20中所说明的实施例是本发明应用于利用内联网进行演讲会等内部广播的实施例。在图20中所说明的实施例中,内部内联网的结构可以使位于各个部门的终端路由器70利用基干路由器74通过网络72而互相连接,网络72可以是以太网(注册商标)或光纤信道等。在每个终端路由器70之下,客户机由,例如,大约100部个人计算机构成,这些个人计算机通过对等连接组成第二网络76。在参照图20说明的实施例中,构建了拥有大约3000个客户机20的网络。例如,如果服务器78在图20所描述的结构下向所有客户机发送数据包,即使拥有,例如,1Gbps带宽的基干路由器被用作基干路由器74,服务器78也无法顺利地发送需要8Mbps传输速度的活动画面图像数据。例如,利用常规方法不能进行数字多功能光碟(DVD)大小的数字内容分发。如果不使用本发明的数据包重叠避免技术,即使网络只有100个客户机,用户也不能实时地接收数字内容的分发。
本发明被应用于该系统。因此,如果客户机利用,例如,100Mbps的以太网(注册商标)通过同一个交换集线器组成第二网络,则预计作为客户机之间对等连接传输速度的吞吐量为40至50Mbps。因此,在发送/接收,例如,MPEG4标准的8Mbps数据时不会出现问题。另一方面,如果客户机连接到不同的终端路由器,将客户机分为不同的组就更为有效。然而,在此情况下,服务器78按组的数量发送数据流。如果有30个终端路由器,每个终端路由器下面连接100部个人计算机,从而可以为每个终端路由器分配组。
在此情况下,30个数据流的数据将在消耗240Mbps吞吐量的同时,从直接连接基干路由器74的服务器78发送。在图20所说明的实施例中,在终端路由器70之下、作为客户机20的个人计算机组,可以随时加入或离开包含演讲会议视频和音频数据的网络。此外,性能相对较低的客户机在数据包传输中始终处于路径树结构的下游,这样就可避免对其它客户机的不良影响。须指出,虽然在此情况下服务器管理着300个客户机作为路径选择对象,一台服务器已足够进行实时数字内容分发。
图21是一幅示意图,说明本发明的又一个更为具体的实施例。根据本发明,在该实施例中,许多客户机20同时从位于因特网的服务器14接收数字内容。在图21所说明的实施例中,因特网组成第一网络12,而第二网络22相当于,例如,通过路由器16与因特网连接的内联网。从因特网的角度看,内部内联网是管理良好、频带宽和吞吐量波动小的网络。当服务器14位于因特网时,如果组由属于同一个内联网的客户机构成,客户机就可同时接收,例如,1Mbps的活动画面图像/数据视频信号,同时在没有任何专用边缘服务器的情况下防止数据包的重叠。在图21所说明的实施例中,确认了2Mbps的传输速度可以满足客户机对传输速度的要求。
图22是一幅示意图,说明本发明的数字内容分发系统的另外又一个实施例,该实施例使减轻无线网络上的服务器负载成为可能。在图22所说明的本发明实施例中,服务器14所进行的处理仅仅是根据组的数量发送数据流和进行动态路径选择。因此,与常规情况相比,服务器的开销可以减少。例如,客户机20的负载有时可能比服务器14更大,因为复制MPEG2或MPEG4图像数据需要极大的CPU资源。此外,服务器14仅向由客户机20构成的组分发一个数据流。这样,即使位于无线网络上的服务器14只有很少的CPU资源,服务器14也能够,例如,以384kbps的速率向内联网上通过无线网络连接的许多客户机同时分发MPEG4标准的数据流。
E:执行伪隧道分发的数字内容分发系统所进行的数字内容分发
图23说明本发明中启用了伪隧道分发技术的数字内容分发系统。在图23中所说明的数字内容分发系统80通过包括服务器82和客户机86而构成,服务器82用于从发射机接收数字内容并在其内部保存该数字内容,而客户机86属于由许多客户机86构成的组84a至84c。服务器82和组84a至84c利用路由器88通过诸如因特网的第一网络相互连接。此外,属于各组的客户机86通过由其组成的LAN互相连接,从而能够共享数据和进行信息传输。须指出,图23所展示的组的数量并不具体受限于本发明所说明的数量,即客户机的数量也不具体受限于本发明所说明的数量。此外,正如本领域技术人员所公知的,像打印机服务器和邮件服务器等各种服务器都可以与组连接。各个组构成更大的广域组G1,而结构类似的广域组G2和G3与第一网络12连接。须指出,尽管数字内容也可从服务器82分发到广域组G2和G3,但各个组也可使用不同的服务器。
将对图23所示数字内容分发系统80的功能进行详细说明。首先,服务器82从由提供者管理的发射器服务器接收将要分发的数字内容。作为选择,提供者以活动画面或文本格式向服务器输入数字内容。这样,数字内容就被保存在诸如硬盘等存储装置90内。此外,当多媒体数据直接从电视摄像机输入服务器82时,数字内容就保存在服务器82内适当的缓冲存储器(图中未标出)等处。
被保存的数字内容在服务器82中接受流式处理,被分为多个区段并被创建为源数据包。所创建的源数据包被发送到客户机86,该客户机86是根据本发明的方法,通过使用执行吞吐量等选出的。如图23所示,一旦接收到源数据包,客户机86即执行在组内或在组之间的源数据包拷贝,从而能够在整个广域组共享数字内容。
此外,各个客户机86都包括用于复制数字内容的应用程序,例如Windows多媒体播放器(商标),并对累积在客户机的缓冲存储器中的数字内容执行复制处理,从而能够向用户提供数字内容。在图23所说明的实施例中,应用程序包含在每个客户机内,而数字内容累积在各个客户机86内。在本发明中,通过向源数据包说明在组内或在组之间执行数据包拷贝的数据,就可以在服务器82内执行伪隧道分发。此外,在又一个实施例中,也可制成一种结构,在其中预先将从客户列表中选出的拷贝目的地列表存储在客户机内,对源数据包的接收进行判定,查阅拷贝目的地列表并发送拷贝数据包。
图24说明在本发明中为执行伪隧道分发而创建的源数据包的实施例。图24(a)所示的源数据包92包括以下组成部分:发送时间说明区92a、附加在源数据包上的数据包标识符说明区92b、用于指示在组内和在组之间分别执行数据包拷贝的拷贝指令标志区92c和92d以及由数字内容的实际数据组成的数据包说明区92e。
发送时间说明区92a可以把服务器第一次发出数据包的时间转换成服务器和客户机可辨认的任意格式。发送时间说明区92a在服务器82测量各个客户机的响应时间,即执行吞吐量,的情况下使用,以便确定将各个数据包发送给哪个客户机。此外,数据包标识符说明区92b是用于在其内部记录附加在服务器82所发出的源数据包上的系列号的区域,在客户机重建源数据包时序的情况下使用。
拷贝指令标志区92c是对用于指示是否将在组内进行拷贝的真/伪标志加以说明的区域。客户机执行发送处理,把所接收到的、在这些区域的标志为真的数据包拷贝发送给组内所有客户机。拷贝指令标志区92d是对用于指示是否将在组之间进行拷贝的真/伪标志加以说明的区域。客户机执行发送处理,把所接收到的、在这些区域的标志为真的数据包拷贝发送给广域组内其它各个组的客户机之一。
数据包说明区92d是对服务器82将要发送的和将被客户机86复制的数字内容的真实数据加以说明的区域。须指出,在本发明中,可以在这些成分之前、之后或之间添加其它额外的成分,也可改变这些成分的顺序。此外,根据情况,一部分成分可以被省略。此外,如图11所示,源数据包92通过包括发送源IP地址和目的地IP地址而构成,目的地IP地址用于指定发送源数据包92的目的地,尽管图中未标出。
图24(b)说明在本发明的内容分发服务器82中所创建的源数据包的第二实施例。在图24(b)所说明的实施例中,所制成的源数据包本身就包含数据包拷贝将发往的客户机列表,这样,对分发目的地的指定就更为详细。在此情况下,服务器82参照服务器本身所保存的客户机列表,在源数据包92中对数据包拷贝将发往的目的地列表加以说明。此外,图24(b)所示的源数据包包含发送时间说明区92a和数据包标识符说明区92b,具有允许客户机执行类似于参照图24(a)所说明功能的功能。此外,图24(b)所示的源数据包被提供有拷贝指令数据区92f,拷贝指令数据区92f指定由服务器82所指定的拷贝目的地。当客户机判定已接收到源数据包,客户机即阅读拷贝指令数据区92f,并执行如下所述的处理。
在拷贝指令数据区92f中所描述的数值N_dest指定拷贝将发往的目的地列表的长度。从数值Dest1至DestN,可以使用用于指定拷贝将发往的客户机IP地址等客户机标识符。例如,如果客户机本身所属的组在拷贝指令数据区92f被指定,则客户机只将源数据包发送给本组内的客户机。同时。如果一个指定将拷贝数据包发送到其它组的数值,例如对应于其它组的IP地址等,在拷贝指令数据区92f被指定,则客户机就将源数据包发送给被指定组内的客户机。数据包说明区92e与参照图24(a)所描述的相似。
图24(c)说明的是在本发明的内所使用的源数据包92的第三实施例。在图24(c)中说明的实施例是在拷贝数据包的地址最初就很明显的情况下建立的,所以不必再做说明。在此情况下,客户机预先从存储在存储器和硬盘等存储装置内的客户机列表中选择拷贝目的地,并选择其它组内所分配的地址范围与其它客户机不重叠的客户机,从而可以进行拷贝目的地列表的准备。此外,在图24(c)的实施例中的组内进行拷贝数据包分发时,该数据包分发可以通过执行组内的广播而进行。此外,在另一个实施例中,可以预先采纳一种结构,其中,客户机向组内其它客户机发送拷贝数据包,并向广域组内属于其它各个组的一部客户机发送所接收源数据包的每份拷贝。在图24中加以说明并可用于本实施例的源数据包的组成部分包括发送时间说明区92a、数据包标识符说明区92b、数据包说明区92e,但不包括拷贝数据包分发目的地。如上所述,客户机向列在拷贝目的地列表上的客户机,即预先指定的客户机分发拷贝数据包。
图25是一幅流程图,说明服务器执行本发明伪隧道分发的过程。在本发明的伪隧道分发中,在步骤S130,服务器通过对客户机发送的通知(加入请求)的监控,判定是否有新的客户机与组加入。如果服务器发现了新加入的客户机(是),在步骤S132,服务器就预先为新加入客户机的执行吞吐量分配一个较小数值,并从当时和以后的实际结果考虑,防止大量的源数据包突然发往新加入的客户机。随后,在步骤S134,服务器将有关客户机添加到客户机列表,从而可以向该客户机分发数字内容。此处,可以通过分配给客户机的标识符,例如IP地址和任意附加到客户机上的名称等,对客户机进行识别。在步骤S136,服务器向包含新加入的客户机的广域组内的所有客户机发出新客户机加入广域组的通知,并通报新客户机的标识符,例如其IP地址等。接收到通知的客户机将新的列表存储在硬盘或适当的存储器中。在此情况下,传输可通过使用本发明的伪隧道分发而执行。作为选择,可以通过使用任何已知的方法进行,因为与多媒体数据和图像数据等相比,所传输的数据量相对较小。通过上述步骤,服务器和客户机就可以拥有相同的最新客户机列表。
图26是一幅流程图,说明在服务器和客户机之间进行本发明的数字内容分发过程。如果提供者在步骤S140指示服务器进行数字内容分发,服务器就参照客户机列表选择一个执行吞吐量最大或来往传输时间(RTT)最短的客户机,并参照其IP地址等向有关客户机发送第一个源数据包。在此情况下,在本发明最简单的伪隧道分发方法的实施例中,同一个源数据包只分发给属于广域组的客户机中的一个客户机。
客户机在步骤S142接收数据包,并在步骤S144判定所接收的数据包是否来自服务器的源数据包。可以根据,例如,所接收的数据包是否包含发送源地址、拷贝指令标志和拷贝指令数据区等源数据包所包含的内容,来判定所接收的数据包是否来自服务器的源数据包。此外,在本发明中,只要数据包被判定为拷贝数据包,源数据包的拷贝就可以按任何格式准备。此外,由于分配给服务器的IP地址一般被设置为固定的IP地址,所以,可以最普遍使用的源数据包判定方法是通过使用数据包中的发送源IP地址来进行判定。如果在步骤S144的判定中,数据包被判定为源数据包(是),客户机就在步骤S146参照源数据包内所说明的分发目的地,或在图24(c)所说明的源数据包实施例的情况下参照拷贝目的地列表,将源数据包的拷贝发送到预先注册的分发目的地。在此情况下,拷贝数据包的传输包括两个过程。具体而言,(i)客户机向隶属于已接收源数据包的客户机所属组的所有客户机发送拷贝数据包;(ii)客户机向各个组的被选择的一个客户机发送拷贝数据包,已接收源数据包的客户机不属于这些组。至于将选择哪个客户机可以预先进行设置。作为选择,拷贝数据包将要发往的客户机的RTT被预先按适当的标准和技术监控,以类似的方式为内容分发服务器动态性地选择响应时间短的客户机,拷贝数据包可以发送给该客户机。
如果在步骤S144的判定中,数据包被判定为不是源数据包(否),则该数据包是接收客户机将要存储的数据包。因此,在步骤S148,客户机将所接收的拷贝数据包累积在环形缓冲器等处,并开始复制数字内容的处理过程。然后,处理过程转到步骤S142,并为下一个数据包重复进行。
图27是一幅示意图,说明上述在服务器和客户机之间的数据包发送/接收过程。如图27所示,客户机a属于组SGi,SGi构成广域组,广域组用参考码G表示,而组SGi至SGm(1≤i≤m)存在于广域组G内。客户机把从服务器82接收的源数据包拷贝发送给属于组SGi的所有客户机以及各个其它(m-1)组的一个客户机b。
在图26和27中所说明的方法使包含在广域组G内的客户机能够从服务器82、其它组内的客户机以及同一组内的客户机接收数据包。其结果是,服务器可以向所有客户机发送所有数据包,以便在不像常规方法那样发送重叠的数字内容的情况下重建数字内容,常规方法通过为各组构建隧道,将源数据包作为重建数字内容的最小单元来传输。此外,在本发明的伪隧道分发中,源数据包不是按重叠的方式传输的。所以,就能够完全避免数据包在客户机中的重叠。因此,不会出现数据包在客户机内重叠的问题和与此相伴的重叠数据包的处理问题,因而能够使数字内容顺利分发。
此外,在环形缓冲器中累积了预定数量的源数据包和拷贝数据包后,客户机将这些数据包提供给应用程序,并将数据包提供给用户。
在本发明的伪隧道分发中,可以使数字内容的分发在不压缩所有服务器、组和客户机的带宽的情况下进行。从服务器发往广域组的数据包属于一个集。从各组看,所接收数据包都属于包含源数据包和拷贝数据包的一个集,而所发送的数据包按组为单位平均为一个或不足一个集。即使从客户机看,同样,所接收的数据包也属于一个集,而所发送的数据包平均为一个或不足一个集。此处,包含在广域组内的所有客户机的精确数量为m,而构成广域组的组的精确数量为M。在此情况下,如果组内连接的客户机数量彼此大致相等,则各个客户机随机接收一个集1/m的源数据包,将所接收的数据包拷贝给组内(m/M-1)个客户机,还将拷贝数据包分发给其它(M-1)个组。此处,如果概略地计算一个客户机的数据包发送/接收数量,就得到以下公式。
[公式3]
((m/M-1)+(M-1)/m=(m+M^2+2M)/mM
在上述公式中,mM-(m+M^2+2M)=(m-M)(M-2)+m>0。因此,建立了以下关系式。
[公式4]
(m+M^2+2M)/mM<1
此外,根据本发明,即使发生了部分客户机加入和离开的情况,而且部分客户机由于某些理由而异常结束,剩下的客户机可以继续正常地接收数字内容。在本发明中,在服务器和客户机之间并没有提供许多隧道,但在服务器和大量分散的客户机之间提供了端对组式隧道,从而使整个系统具有坚固耐用性。
须指出,在上述实施例中,各个客户机的说明都是在该客户机中保存有一对数字内容和数字内容复制应用程序的前提下进行的。在本发明中,虽然客户机和应用程序可以在同一部计算机上运行,但如后面将要作出的更详细说明,应用程序可以共享不只限于上述实施例的数字内容。此外,创建数字内容的服务器和对数字内容进行流式处理并发送源数据包的服务器可以在一部计算机上运行,或者可以构建成分开的服务器。如果被构建成彼此分开的计算机,则提供者和服务器之间的通信可以是利用UDP和TCP等协议的多播或单播。在这一点上,和所谓的多播隧道不同,即使从未使用IP多播,本发明也可以在服务器和客户机之间提供类似于多播的效果。
图28说明在服务器和客户机之间数据包发送/接收的时间安排。如图28所示,服务器在时间t1将源数据包#1发送到客户机#1。接收到源数据包#1的客户机#1向服务器发送通知源数据包已收到的“Ack”信号。服务器在时间t2接收“Ack”信号,计算两个时间之间的差(t2-t1),并在对应于客户机#1的列表中更新客户机的执行吞吐量。
一旦接收到源数据包,客户机#1就立即创建拷贝数据包。然后,在时间t3,客户机#1向客户机#1所属的组内的客户机,即图28所示实施例中的客户机#2,发送拷贝数据包。与此同时,客户机#1向属于另一组的客户机#3发送拷贝数据包#1。客户机#2在时间t4接收拷贝数据包#1,而客户机#3在时间t5接收拷贝数据包#1。客户机#3向客户机#1发送“Ack2”信号,通知拷贝数据包#1已经收到。在时间t6,客户机#1收到“Ack2”信号。客户机#1按照,例如,时间差(t6-t4),计算组内的执行吞吐量,并更新相应的客户机列表。此处,未计算组内来往传输时间的理由是,拷贝数据包#1必须在不选择客户机的情况下在组内传输。此外,如本发明后面所要描述的,当各组之间的传输带宽有很大差异时,服务器发送源数据包的时间就被存储,从目的地客户机接收Ack信号的时间就被测量,然后这些时间就可被用作判定执行吞吐量的标准。
图29说明本发明伪隧道分发系统的另一个实施例。在使用诸如ADSL和CATV等通信基础结构的网络中,接收/发射(下行链路/上行链路)带宽就变得不对称。在网络中客户机一侧的上行链路带宽被设计成窄带宽的情况下,图29所示实施例是有效的实施例。在图29所示实施例中,当服务器发送源数据包时,服务器向多个客户机发送至少一个单元的源数据包。在图29所示的情况下,可以从属于别的组的客户机开始依次对客户机个别地筛选,例如,从来往传输时间(RTT)较短的客户机开始筛选。此外,至于发送到多个客户机的源数据包,可以使用图24(b)所示源数据包结构,并且可以制定关于源数据包将拷贝到哪个组的哪个客户机的直接指令。下面将对图29所示客户机所执行的处理过程加以描述。一部接收到源数据包#1的客户机向还没有相同的源数据包#1分发到的另一个组发送拷贝数据包。按照上述方式,可以避免由于向同一个组分发相当于同一个源数据包的拷贝数据包而导致的不利情况。此外,相同的源数据包#1已发往的组的地址可以在源数据包#1内说明,所以拷贝数据包可以发往除地址已被说明的组以外的组。此外,通过使用图29所示伪隧道分发,组和组之间的传输量可以减少,而且上行链路数据包传输量也可以减少。同时,从服务器的角度看,服务器的负载增加了,因为出现了将同一个源数据包发往多个客户机的必要性。在本发明中,从上述权衡因素和使用的通信基础结构的特性考虑,可以从上述方法中选出最佳方法。此外,可以按照时间区域,综合使用多种方法进行数字内容的分发。
图30说明本发明的伪隧道分发系统的另外又一个实施例。在图30所示实施例中,拷贝数据包不在组内客户机之间发送接收。在图30所示实施例中,数据包不直接从客户机发送到应用程序,但客户机通过称作第三网络的广播或LAN多播而发送所接收到的数据包。在图30所示实施例中,用于复制数字内容的应用程序存储在另一部计算机94中,存储了应用程序的计算机94通过第三网络96连接客户机86,以采集必要的数据包。然后,计算机94复制数字内容。任何无线网络和以太网(注册商标)都允许作为第二网络22而连接组内的客户机。然而,作为图30所示本发明实施例内的第三网络使用时,具有不同于第二网络用途的网络,例如使用以太网(注册商标)的网络,可以被设置。在图30所示实施例中,存储有应用程序的计算机94可以接收在第三网络上的组内所有客户机86每次所更新的数据包,并可复制数据流。因此,数字内容可以在没有任何过量和不足的情况下顺利地复制。
此外,图30所说明的实施例意味着,应用程序即使在未与客户机建立一对一关系的情况下也能接收数据包。然而,必须有一个或多个客户机工作在第三网络96上。在此情况下,客户机86即使没有采集到所有数据包和在客户机86内存储这些数据包,也能构建伪隧道,这样,就能在客户机一侧减少通信传输量和节省硬件资源的同时,进行数字内容的分发。
如上所述,根据本发明,在一对多的数字媒介分发中,在客户机单元中路径动态性地最佳化,这样,网络就变得难以受到客户机加入和离开的影响,客户机就可随时加入和离开网络。此外,系统也很难受到客户机因异常结束和电缆断开而离开网络的影响,从而可以提高系统的稳定性。而且,客户机的负载基本上均匀分散,接收则作为整个广域组的功能而工作(分散协同性),因此,就不再需要专用的辅助服务器。这样,就可以避免因强调自主性而带来的网络系统复杂性,从而可以实现易于维护的简单系统结构。
此外,反映客户机加入和离开的更新过程实现了局部化,所以开销始终很小。以这种方式,大幅度降低了服务器的负载,而且甚至计算机只装备等于或少于客户机的资源,就可以作为服务器而工作。
此外,根据本发明,对于包括多个彼此以网络相连接的组、各组又由多个客户机构成的预定广域组而言,可以在减少服务器传输的开销的同时,提供能顺利而有效地分发数字内容的数字内容分发系统。而且,可以为系统提供服务器和客户机、可以使计算机像上述服务器和客户机那样工作的控制方法、用于该方法的程序以及用于记录程序的计算机可读的记录介质。
须指出,对于本发明来说,在IP多播和应用层多播中的常规优势,例如,通过有效利用以非重叠方式分发数据包的网络以避免拥堵的特性,以及在网络层无须进行成本较高的置换工作等,都得到了充分的成功体现。这样,就能进行极好的数字内容分发。此外,在本发明中,各个第二网络可以通过包括,例如,打印机服务器、邮件服务器和设备服务器等服务器而构成。
实现上述功能的装置或部件可以构建为用计算机可执行程序语言描述的软件或一组软件模块,并不一定总是必须构建成如图中所示的功能块。
上述本发明的用于执行数字内容分发的程序可以使用各种编程语言来描述,例如,C语言、C++语言、Java(注册商标)语言等。描述本发明程序的代码可以保存在计算机可读记录介质内,例如磁带、软盘、硬盘、光碟(CD)、磁光盘和数字多功能光碟(DVD)等。
以上,参照附图通过具体的实施例对本发明进行了说明。然而本发明并不仅限于上述具体实施例,而且,甚至对于各种修改实例和其它实施例来说,在发挥本发明效果的范围内,可使用任何已知的构成组件。
尽管对本发明的优选实施例进行了详细说明,但应该理解,在不违背所附权利要求书所定义的本发明的实质和范围的前提下,可以对上述内容进行各种修改、替换和变更。
Claims (41)
1.一种通过第一和第二网络分发数字内容的数字内容分发系统,该系统包括:
与第一网络连接的服务器,用于在该服务器中保存数字内容和发送数字内容;以及
构成与第一网络连接的第二网络并用于接收和提供数字内容的客户机,
其中服务器包括用于将所保存的数字内容分为多个数据包并向第二网络发送用于构成数字内容的最小单元数据包的装置,而且,
其中构成第二网络的各个客户机包括,用于通过使用最小单元数据包、客户机已从服务器接收的数据包,以及使用从构成第二网络的其它客户机接收的数据包,使连接到第二网络的客户机在其内部保存数字内容的装置。
2.根据权利要求1的数字内容分发系统,
其中服务器包括用于向第二网络的多个客户机动态分配最小单元数据包的装置。
3.根据权利要求2的数字内容分发系统,
其中用于向第二网络的多个客户机动态分配最小单元数据包的装置包括:
用于确定客户机开销的装置;以及
用于结合开销动态地选择至少一个客户机作为中间节点并向中间节点分配数据包的装置。
4.根据权利要求3的数字内容分发系统,
其中用于确定客户机开销的装置包括,用于确定服务器向预定客户机发送最小单元数据包的时间和该预定客户机发出最小单元数据包已收到通知的时间之间的时间差的装置。
5.一种通过第一和第二网络向客户机分发数字内容的数字内容分发方法,其中的系统包括与第一网络连接、用于发送数字内容的服务器,以及用于构成与第一网络连接的第二网络并接收和提供数字内容的客户机,该方法包括以下步骤:
将数字内容分为多个数据包并从服务器向客户机发送用于构成数字内容的最小单元数据包;
由构成第二网络的客户机从服务器接收最小单元数据包;
从构成第二网络的其它客户机接收用于重建数字内容的数据包;以及
通过使用最小单元数据包、服务器已发送的数据包,以及使用从其它客户机接收的数据包,使连接到第二网络的客户机在其内部保存数字内容。
6.根据权利要求5的数字内容分发方法,
其中发送最小单元数据包的步骤包括从服务器向第二网络的多个客户机动态地分配最小单元数据包的步骤。
7.根据权利要求6的数字内容分发方法,
其中向第二网络的多个客户机动态地分配最小单元数据包的步骤包括以下步骤:
确定客户机的开销;
使服务器在其内部保存所述开销;
结合所保存的开销选择客户机作为中间节点;以及
向选作中间节点的客户机分配最小单元数据包。
8.根据权利要求7的数字内容分发方法,
其中确定客户机开销的步骤包括以下步骤:
将服务器向预定客户机发送最小单元数据包的时间在服务器中注册;
将预定客户机发出最小单元数据包已收到通知的时间在服务器中注册;
计算所述发送时间和所述发出时间之间的时间差。
9.一种用于执行服务器处理过程,以执行通过第一和第二网络向目的地分发数字内容的方法的程序,其中的系统包括与第一网络连接、用于发送数字内容的服务器,以及用于构成与第一网络连接的第二网络并具有被指定用于接收和提供数字内容的目的地的客户机,该程序使系统执行以下步骤:
将数字内容分为多个数据包;
从服务器向第二网络的多个目的地动态地分配最小单元数据包;以及
通过第一网络从服务器向第二网络发送用于构成数字内容的最小单元数据包,
其中分配最小单元数据包的步骤包括以下步骤:
从目的地接收已收到通知;
使服务器在其内部保存所述已收到通知;
结合使用所保存的已收到通知,选择目的地作为中间节点;以及
向选作中间节点的目的地分配最小单元数据包。
10.根据权利要求9的程序,
其中选择目的地的步骤包括:
将服务器向预定目的地发送最小单元数据包的时间在服务器中注册;
将发出最小单元数据包已收到通知的时间在服务器中注册;以及
计算所述发送时间和所述发出时间之间的时间差。
11.一种用于在其内部记录程序的计算机可读记录介质,该程序用于执行服务器处理过程,以执行通过第一和第二网络向目的地分发数字内容的方法,其中的系统包括与第一网络连接、用于发送数字内容的服务器,以及用于构成与第一网络连接的第二网络并具有被指定用于接收和提供数字内容的目的地的客户机,
其中程序使系统执行以下步骤:
将数字内容分为多个数据包;
从服务器向第二网络的多个目的地动态地分配最小单元数据包;以及
通过第一网络从服务器向第二网络发送用于构成数字内容的最小单元数据包,
其中分配最小单元数据包的步骤包括以下步骤:
从目的地接收已收到通知;
使服务器在其内部保存所述已收到通知;
结合使用所保存的已收到通知,选择目的地作为中间节点;以及
向选作中间节点的目的地分配最小单元数据包。
12.根据权利要求11的用于在其内部记录程序的计算机可读记录介质,
其中选择目的地的步骤包括以下步骤:
将服务器向预定目的地发送最小单元数据包的时间在服务器中注册;
将发出最小单元数据包已收到通知的时间在服务器中注册;以及
计算所述发送时间和所述发出时间之间的时间差。
13.根据权利要求12的用于在其内部记录程序的计算机可读记录介质,
其中选择目的地的步骤还包括以下步骤:
使服务器在其内部保存目的地列表;
通过使用目的地列表和发出已收到通知的时间选择目的地;以及
定期更新目的地列表。
14.一种程序,用于执行客户机处理过程,以执行通过第一和第二网络向客户机分发数字内容的方法,其中的系统包括与第一网络连接、用于发送数字内容的服务器,以及用于构成与第一网络连接的第二网络并用于接收和提供数字内容的客户机,该程序使客户机执行以下步骤:
通过第一网络接收最小单元数据包,该最小单元数据包构成被分为多个数据包的数字内容;
从构成第二网络的其它客户机接收用于重建数字内容的数据包;以及
通过使用最小单元数据包、已通过第一网络接收的数据包,以及使用从其它客户机接收的数据包,使包含在第二网络中的客户机在其内部保存数字内容。
15.根据权利要求14的程序,其中还使接收到最小单元数据包的客户机执行准备已收到通知的步骤,该通知包括接收最小单元数据包的时间。
16.根据权利要求14的程序,其中还使客户机执行从接收自其它客户机的数据包中识别最小单元数据包的步骤。
17.根据权利要求14的程序,
其中还使客户机执行以下步骤:
准备构成第二网络的成员的列表;以及
在客户机加入第二网络或从第二网络删除的任何情况下,更新该列表。
18.一种用于在其内部记录程序的计算机可读记录介质,该程序用于执行客户机处理过程,以执行通过第一和第二网络向客户机分发数字内容的方法,其中的系统包括与第一网络连接、用于发送数字内容的服务器,以及用于构成与第一网络连接的第二网络并用于接收和提供数字内容的客户机,
其中该程序使客户机执行以下步骤:
通过第一网络接收最小单元数据包,这些最小单元数据包构成被分为多个数据包的数字内容;
从构成第二网络的其它客户机接收用于重建数字内容的数据包;以及
通过使用最小单元数据包、已通过第一网络接收的数据包,以及使用从其它客户机接收的数据包,使包含在第二网络中的客户机在其内部保存数字内容。
19.根据权利要求18的记录媒介,其中还使接收到最小单元数据包的客户机执行准备已收到通知的步骤,该通知包括接收最小单元数据包的时间。
20.根据权利要求18的记录媒介,其中还使客户机执行从接收自其它客户机的数据包中识别最小单元数据包的步骤。
21.根据权利要求18的记录媒介,
其中还使客户机执行以下步骤:
准备构成第二网络的成员的列表;以及
在客户机加入第二网络或从第二网络删除的任何情况下,更新该列表。
22.一种与第一网络连接、用于向与第一网络连接的第二网络提供数字内容的数字内容分发服务器,该服务器包括:
用于将数字内容分为多个数据包的装置;
用于存储具有包括在第二网络中的目的地的列表的装置;
用于通过第一网络从服务器向第二网络发送用于构成数字内容的最小单元数据包的装置;
用于通过使用列表,向最小单元数据包发往的第二网络动态地分配目的地的动态分配装置;
从目的地接收已收到通知的装置;
通过使用已收到通知选择目的地作为中间节点的装置;以及
通过使用被选择作为中间节点的目的地发送最小单元数据包的装置。
23.根据权利要求22的服务器,
其中动态分配装置包括:
将服务器向预定目的地发送最小单元数据包的时间向服务器注册的装置;
将有预定目的地的客户机发出最小单元数据包已收到通知的时间向服务器注册的装置;以及
计算所述发送时间和所述发出时间之间的时间差的装置。
24.根据权利要求22的服务器,还包括:
目的地列表;以及
结合第二网络的结构的变化动态地更新目的地列表的装置。
25.一种用于接收通过第一网络分发的数字内容并构成与第一网络连接的第二网络的客户机,该客户机包括:
用于通过第一网络接收最小单元数据包的装置,该最小单元数据包构成被分为多个数据包的数字内容;
通过第二网络接收用于重建数字内容的数据包的装置;
使用通过第一网络接收的最小单元数据包以及通过第二网络从其它客户机接收的数据包,使包含在第二网络中的客户机在其内部保存数字内容的装置。
26.根据权利要求25的客户机,还包括:
用于准备已收到通知的装置,所述已收到通知包括最小单元数据包接收时间。
27.根据权利要求25的客户机,还包括:
从接收自其它客户机的数据包中识别最小单元数据包的装置。
28.根据权利要求25的客户机,还包括:
构成第二网络的成员的列表;以及
在客户机加入第二网络或从第二网络删除的任何情况下,更新该列表的装置。
29.一种用于通过第一和第二网络向预定广域组分发数字内容的数字内容分发系统,该系统包括:
与第一网络连接、用于在其内部保存数字内容和发送数字内容的服务器;以及
通过包括客户机而构成的多个组,所述客户机构成与第一网络连接的第二网络,所述多个组用于构成广域组以接收和提供数字内容,
其中服务器包括用于将所保存的数据内容分为多个数据包,并在没有重叠的情况下向组内的客户机发送用于构成数字内容的最小单元数据包的装置,而且
其中每个接收到最小单元数据包的客户机包括,可把从服务器接收的最小单元数据包的拷贝分发到构成组的所有客户机的装置,所述组包括所述每个客户机和构成另一个组的另一个客户机。
30.一种与第一网络连接、用于在其内部保存数字内容,并通过第一网络向广域组分发数字内容的服务器,该广域组包括多个通过第二网络连接的组,该服务器包括:
通过将所保存的数字内容分为多个数据包而创建最小单元数据包的装置;
用于选择最小单元数据包分发目的地,从而使预定组的相同的最小单元数据包不重叠的装置;以及
用于向组内所选择分发目的地的客户机发送用于构成数字内容的最小单元数据包的装置。
31.根据权利要求30的服务器,其中创建最小单元数据包的装置包括,用于创建包含这样的最小单元数据包的装置,所述最小单元数据包包括用于向至少另一个组分发最小单元数据包的拷贝的数据。
32.一种将计算机作为服务器进行控制的方法,以便使该计算机在其内部保存数字内容并通过第一网络向广域组分发数字内容,该广域组包括多个通过第二网络连接的组,该方法使计算机执行以下步骤:
通过将保存的数字内容分为多个数据包而创建最小单元数据包;
选择并向其分发目的地注册最小单元数据包,从而使预定组的相同的最小单元数据包不重叠;
将所选择的分发目的地数据作为最小单元数据包而存储;以及
读取所存储的最小单元数据包并将其发送给组内所选择分发目的地的客户机,以构建数字内容。
33.一种将计算机作为服务器进行控制的程序,用于在其内部保存数字内容并通过第一网络向广域组分发数字内容,该广域组包括多个通过第二网络连接的组,该程序使计算机执行以下步骤:
通过将保存的数字内容分为多个数据包而创建最小单元数据包;
选择并向其分发目的地注册最小单元数据包,从而使预定组的相同的最小单元数据包不重叠;
将所选择的分发目的地数据作为最小单元数据包而存储;以及
读取所存储的最小单元数据包并将其发送给组内所选择分发目的地的客户机,以构建数字内容。
34.一种计算机可读记录媒介,可在其内部记录将计算机作为服务器进行控制的程序,以在其内部保存数字内容并通过第一网络向广域组分发数字内容,该广域组包括多个通过第二网络连接的组,
其中该程序使计算机执行以下步骤:
通过将保存的数字内容分为多个数据包而创建最小单元数据包;
选择并向其分发目的地注册最小单元数据包,从而使预定组的相同的最小单元数据包不重叠;
将所选择的分发目的地数据作为最小单元数据包而存储;以及
读取所存储的最小单元数据包并将其发送给组内所选择分发目的地的客户机,以构建数字内容。
35.一种与第二网络连接、用于通过第一和第二网络向预定广域组分发数字内容并构成广域组的组的客户机,该客户机包括:
用于通过第一和第二网络中的任何一个网络接收数据包,并用于判定所接收的数据包是否用于重建数字内容的最小单元数据包的装置;以及
用于对该判定作出响应,根据所接收的数据包创建拷贝数据包并将该拷贝数据包至少分发到另一个组的一个客户机的装置。
36.根据权利要求35的客户机,其中用于分发拷贝数据包的装置包括,用于从所接收数据包中至少读取另一个组中的一个拷贝目的地,并在所接收数据包被判定为最小单元数据包时,将所创建的拷贝数据包分发到所读取目的地的装置。
37.根据权利要求36的客户机,还包括:用于在其内部存储拷贝目的地列表的存储装置。
38.一种将计算机作为客户机控制的方法,该客户机与第二网络连接,用于通过第一网络和第二网络向预定广域组分发数字内容并构成广域组的组,该方法使该计算机执行以下步骤:
通过第一和第二网络中的任何一个网络接收数据包,并将所接收的数据包存储在存储器中;
判定所接收的数据包是否是用于重建数字内容的最小单元数据包;
当所接收的数据包被判定是最小单元数据包时,响应于该判定,根据所接收的数据包创建拷贝数据包,并将该拷贝数据包至少分发到另一个组的一个客户机;并且
当所接收的数据包被判定不是最小单元数据包时,就将所接收的数据包存储在存储器中。
39.一种将计算机作为与第二网络连接的客户机进行控制的程序,用于使该计算机通过第一网络和第二网络向预定广域组分发数字内容,并构成广域组的组,该程序使该计算机执行以下步骤:
通过第一和第二网络中的任何一个网络接收数据包,并将所接收的数据包存储在存储器中;
判定所接收的数据包是否用于重建数字内容的最小单元数据包;
当所接收的数据包被判定是最小单元数据包时,响应于该判定,根据所接收的数据包创建拷贝数据包,并将该拷贝数据包至少分发到另一个组的一个客户机;并且
当所接收的数据包被判定不是最小单元数据包时,就将所接收的数据包存储在存储器中。
40.一种计算机可读记录介质,用于在其内部记录将计算机作为与第二网络连接的客户机进行控制的程序,以便使该计算机通过第一网络和第二网络向预定广域组分发数字内容,并构成广域组的组,其中该程序使计算机执行以下步骤:
通过第一和第二网络中的任何一个网络接收数据包,并将所接收的数据包存储在存储器中;
判定所接收的数据包是否是用于重建数字内容的最小单元数据包;
当所接收的数据包被判定是最小单元数据包时,响应于该判定,根据所接收的数据包创建拷贝数据包,并将该拷贝数据包至少分发到另一个组的一个客户机;并且
当所接收的数据包被判定不是最小单元数据包时,就将所接收的数据包存储在存储器中。
41.一种网上数字内容共享方法,用于共享通过多个网络连接的客户机内的预定数字内容,其中预定数字内容被转换成多个连续的流数据,而且重建预定数字内容所必需的最小单元数据包从服务器通过网络发送,该方法包括以下步骤:
通过阅读客户机列表选择需要分发预定数字内容的客户机;
向所选择的客户机发送最小单元数据包;
使接收到最小单元数据包的客户机将该最小单元数据包存储在其存储器中,创建拷贝数据包并将该拷贝数据包分发给除已经接收到数据包的客户机之外的其它客户机;
把从其它客户机接收到的拷贝数据包存储在存储器中;以及
通过重建存储器中的数据包,使用户共享所分发的预定数字内容。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002165014 | 2002-06-06 | ||
JP165014/2002 | 2002-06-06 | ||
JP2002303850 | 2002-10-18 | ||
JP303850/2002 | 2002-10-18 | ||
PCT/JP2003/007093 WO2003105421A1 (ja) | 2002-06-06 | 2003-06-04 | ディジタル・コンテンツ配信システム、ディジタル・コンテンツ配信方法、該方法を実行するためのプログラム、該プログラムを記憶したコンピュータ可読な記録媒体、およびそのためのサーバおよびクライアント |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1656749A true CN1656749A (zh) | 2005-08-17 |
CN1656749B CN1656749B (zh) | 2011-01-12 |
Family
ID=29738332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN038114313A Expired - Fee Related CN1656749B (zh) | 2002-06-06 | 2003-06-04 | 数字内容分发系统、方法、程序及服务器和客户机 |
Country Status (8)
Country | Link |
---|---|
US (2) | US7809850B2 (zh) |
EP (1) | EP1533952A4 (zh) |
JP (1) | JP4034780B2 (zh) |
KR (1) | KR100754293B1 (zh) |
CN (1) | CN1656749B (zh) |
AU (1) | AU2003242053A1 (zh) |
TW (1) | TWI265697B (zh) |
WO (1) | WO2003105421A1 (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101291300B (zh) * | 2008-06-12 | 2011-04-20 | 华为技术有限公司 | 消息业务中文件传输的实现方法、装置和用户设备 |
US8059561B2 (en) | 2005-08-19 | 2011-11-15 | Brother Kogyo Kabushiki Kaisha | Information communication system, information communication method, node device included in information communication system, and recording medium having information processing program recorded on it |
CN102412928A (zh) * | 2010-09-17 | 2012-04-11 | 株式会社Ntt都科摩 | 一种基于网络编码的数据传输方法及装置 |
CN102685171A (zh) * | 2011-03-14 | 2012-09-19 | 纬创资通股份有限公司 | 通信系统及点对点传输方法 |
CN104054319A (zh) * | 2012-01-11 | 2014-09-17 | 阿尔卡特朗讯公司 | 在弹性云文件系统中减少延迟和成本 |
CN101406006B (zh) * | 2006-03-30 | 2014-10-08 | 兄弟工业株式会社 | 信息通信系统,信息通信方法,包括在信息通信系统中的节点装置 |
WO2015096444A1 (zh) * | 2013-12-27 | 2015-07-02 | 中兴通讯股份有限公司 | 一种数据传输方法和系统 |
CN105549992A (zh) * | 2015-12-08 | 2016-05-04 | 北京奇虎科技有限公司 | 一种代码发布方法、装置和系统 |
CN105656794A (zh) * | 2014-11-14 | 2016-06-08 | 腾讯科技(深圳)有限公司 | 数据分发方法及装置 |
CN105656978A (zh) * | 2014-12-04 | 2016-06-08 | 中国移动通信集团公司 | 一种资源共享方法及装置 |
Families Citing this family (81)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7260602B2 (en) * | 2003-03-31 | 2007-08-21 | Microsoft Corporation | System and method of network content location for roaming clients |
KR100651566B1 (ko) * | 2003-08-26 | 2006-11-28 | 삼성전자주식회사 | 이동통신 단말기에서 출력 버퍼링을 이용한 멀티미디어재생 장치 및 그 제어 방법 |
US7295525B2 (en) * | 2003-09-11 | 2007-11-13 | Sun Microsystems, Inc. | System and method for managing multicast group membership |
ES2371468T3 (es) | 2003-11-26 | 2012-01-03 | MAX-PLANCK-Gesellschaft zur Förderung der Wissenschaften e.V. | SUSTANCIA QUE SE UNE AL RECEPTOR HUMANO llb MEDIANTE Fc DE IgG (Fc? Rllb). |
US20050122973A1 (en) * | 2003-12-09 | 2005-06-09 | Samsung Electronics Co., Ltd. | Network node capable of restricting a packet receiving activity during packet congestion and method thereof |
US7593333B2 (en) * | 2004-07-07 | 2009-09-22 | Microsoft Corporation | Efficient one-to-many content distribution in a peer-to-peer computer network |
US7174385B2 (en) * | 2004-09-03 | 2007-02-06 | Microsoft Corporation | System and method for receiver-driven streaming in a peer-to-peer network |
EP1635504A1 (en) | 2004-09-10 | 2006-03-15 | Nederlandse Organisatie voor toegepast-natuurwetenschappelijk Onderzoek TNO | Method and device for inverse multiplexing of multicast transmission |
JP4555042B2 (ja) * | 2004-09-30 | 2010-09-29 | Necパーソナルプロダクツ株式会社 | コンテンツ配信管理サーバ、コンテンツ配信管理方法並びにプログラム |
JP4129449B2 (ja) | 2004-10-19 | 2008-08-06 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ストリームデータ配信方法とそのシステム |
US20060098664A1 (en) * | 2004-11-09 | 2006-05-11 | Tvblob S.R.I. | Intelligent application level multicast module for multimedia transmission |
US20060176895A1 (en) * | 2005-02-07 | 2006-08-10 | Yakov Kamen | Data delivery pipeline optimized by cell-based data cascade technology |
WO2006085377A1 (ja) * | 2005-02-10 | 2006-08-17 | Fujitsu Limited | データ配信方法及び端末 |
EP1701486A1 (en) * | 2005-03-07 | 2006-09-13 | BRITISH TELECOMMUNICATIONS public limited company | Route selection in multi-hop cellular network |
US8730985B2 (en) | 2005-03-15 | 2014-05-20 | Time Warner Cable Enterprises Llc | Technique for providing on a program channel composite programming content attributed to different sources |
JP2006319909A (ja) * | 2005-05-16 | 2006-11-24 | Konica Minolta Holdings Inc | データ通信の方法、ピアツーピア型のネットワーク、および情報処理装置 |
US8423728B1 (en) * | 2005-06-16 | 2013-04-16 | Emc Corporation | Physical based scheduler using run count and skip count values |
US7468952B2 (en) * | 2005-11-29 | 2008-12-23 | Sony Computer Entertainment Inc. | Broadcast messaging in peer to peer overlay network |
US7719988B1 (en) * | 2005-11-30 | 2010-05-18 | University Of Murcia | Mobility-aware mesh construction algorithm for low data-overhead multicast ad hoc routing |
BRPI0706409B1 (pt) * | 2006-01-09 | 2022-04-19 | Interdigital Ce Patent Holdings | Método e sistema de distribuição de conteúdo multimídia |
US7647405B2 (en) * | 2006-02-06 | 2010-01-12 | International Business Machines Corporation | Method for reducing variability and oscillations in load balancing recommendations using historical values and workload metrics |
US9198084B2 (en) | 2006-05-26 | 2015-11-24 | Qualcomm Incorporated | Wireless architecture for a traditional wire-based protocol |
CN100421433C (zh) * | 2006-05-29 | 2008-09-24 | 中国移动通信集团公司 | 内容信息的分发方法 |
JP2007336182A (ja) * | 2006-06-14 | 2007-12-27 | Funai Electric Co Ltd | コンテンツ配信システム、及びネットワークサーバ |
JP4287448B2 (ja) * | 2006-06-16 | 2009-07-01 | 株式会社東芝 | 通信装置、通信端末装置、通信システム、方法およびプログラム |
TW200816707A (en) * | 2006-07-31 | 2008-04-01 | Ibm | System, method and computer program for transferring information on network |
JP4981412B2 (ja) * | 2006-11-02 | 2012-07-18 | 日本放送協会 | ファイル転送システムおよびその方法、管理装置ならびにサーバ |
KR101145848B1 (ko) * | 2006-11-29 | 2012-05-17 | 삼성전자주식회사 | 콘텐츠 전송을 위한 접근 제어 방법 및 상기 접근 제어방법을 이용하는 네트워크의 노드 |
KR100748229B1 (ko) * | 2006-12-12 | 2007-08-10 | (주)지티앤에스 | 서버/클라이언트 시스템에서 업로드 데이터들의 우선순위결정방법 및 이를 이용한 경매 시스템 |
JP4809256B2 (ja) * | 2007-01-31 | 2011-11-09 | ヒューレット−パッカード デベロップメント カンパニー エル.ピー. | データストリーミング方法 |
US7630370B2 (en) * | 2007-02-28 | 2009-12-08 | Sharp Laboratories Of America, Inc. | Overlay join latency reduction using preferred peer list |
JP5390413B2 (ja) * | 2007-03-20 | 2014-01-15 | トムソン ライセンシング | 階層的にクラスタ化されたp2pストリーミング・システム |
KR101409991B1 (ko) | 2007-04-16 | 2014-06-20 | 삼성전자주식회사 | P2p 통신 환경에서의 데이터 전송 방법 및 장치 |
JP2008294626A (ja) * | 2007-05-23 | 2008-12-04 | Brother Ind Ltd | コンテンツ分散保存システム、コンテンツ保存方法、ノード装置、及びノード処理プログラム |
WO2009036461A2 (en) * | 2007-09-13 | 2009-03-19 | Lightspeed Audio Labs, Inc. | System and method for streamed-media distribution using a multicast, peer-to-peer network |
JP5430885B2 (ja) * | 2007-10-30 | 2014-03-05 | 京セラ株式会社 | Ip放送受信装置 |
US8904022B1 (en) * | 2007-11-05 | 2014-12-02 | Ignite Technologies, Inc. | Split streaming system and method |
JP4840334B2 (ja) * | 2007-11-14 | 2011-12-21 | ブラザー工業株式会社 | 端末装置、通信システム、プログラム及び方法 |
US7441135B1 (en) | 2008-01-14 | 2008-10-21 | International Business Machines Corporation | Adaptive dynamic buffering system for power management in server clusters |
US8379851B2 (en) * | 2008-05-12 | 2013-02-19 | Microsoft Corporation | Optimized client side rate control and indexed file layout for streaming media |
TWI395428B (zh) * | 2008-05-13 | 2013-05-01 | Tien Ming Wang | 對等式網路控制系統 |
US8102865B2 (en) * | 2008-05-16 | 2012-01-24 | Microsoft Corporation | Group based allocation of network bandwidth |
US20100153578A1 (en) * | 2008-07-16 | 2010-06-17 | Nokia Corporation | Method and Apparatus for Peer to Peer Streaming |
US9398089B2 (en) * | 2008-12-11 | 2016-07-19 | Qualcomm Incorporated | Dynamic resource sharing among multiple wireless devices |
US9264248B2 (en) | 2009-07-02 | 2016-02-16 | Qualcomm Incorporated | System and method for avoiding and resolving conflicts in a wireless mobile display digital interface multicast environment |
JP5471146B2 (ja) * | 2009-08-11 | 2014-04-16 | 富士ゼロックス株式会社 | 装置管理システム、管理対象装置、およびプログラム |
US20110229104A1 (en) * | 2009-10-22 | 2011-09-22 | Hundemer Hank J | System And Method For Recording and Playback Of Multimedia Content |
US9582238B2 (en) | 2009-12-14 | 2017-02-28 | Qualcomm Incorporated | Decomposed multi-stream (DMS) techniques for video display systems |
JP5060572B2 (ja) * | 2010-03-09 | 2012-10-31 | 株式会社東芝 | データ通信装置及び方法 |
TW201209614A (en) | 2010-08-31 | 2012-03-01 | Ibm | Method for efficient response of Common Information Model (CIM) server |
JP5675234B2 (ja) * | 2010-09-10 | 2015-02-25 | 任天堂株式会社 | 情報処理システム、情報処理プログラムおよび情報処理方法 |
US8516284B2 (en) | 2010-11-04 | 2013-08-20 | International Business Machines Corporation | Saving power by placing inactive computing devices in optimized configuration corresponding to a specific constraint |
US20130013318A1 (en) | 2011-01-21 | 2013-01-10 | Qualcomm Incorporated | User input back channel for wireless displays |
US10135900B2 (en) | 2011-01-21 | 2018-11-20 | Qualcomm Incorporated | User input back channel for wireless displays |
US9413803B2 (en) | 2011-01-21 | 2016-08-09 | Qualcomm Incorporated | User input back channel for wireless displays |
US8964783B2 (en) | 2011-01-21 | 2015-02-24 | Qualcomm Incorporated | User input back channel for wireless displays |
US9065876B2 (en) | 2011-01-21 | 2015-06-23 | Qualcomm Incorporated | User input back channel from a wireless sink device to a wireless source device for multi-touch gesture wireless displays |
US9787725B2 (en) | 2011-01-21 | 2017-10-10 | Qualcomm Incorporated | User input back channel for wireless displays |
US9503771B2 (en) | 2011-02-04 | 2016-11-22 | Qualcomm Incorporated | Low latency wireless display for graphics |
US10108386B2 (en) | 2011-02-04 | 2018-10-23 | Qualcomm Incorporated | Content provisioning for wireless back channel |
FR2978003B1 (fr) * | 2011-07-11 | 2014-07-04 | Commissariat Energie Atomique | Procede de routage d'un flux en mode non-stockage |
US8792486B2 (en) * | 2011-08-31 | 2014-07-29 | Hewlett-Packard Development Company, L.P. | Packet routing within server device enclosure |
US9002931B2 (en) * | 2011-09-23 | 2015-04-07 | Real-Scan, Inc. | High-speed low-latency method for streaming real-time interactive images |
CN103299580B (zh) * | 2011-12-30 | 2016-08-24 | 华为技术有限公司 | 业务分发方法、设备和系统 |
US9525998B2 (en) | 2012-01-06 | 2016-12-20 | Qualcomm Incorporated | Wireless display with multiscreen service |
CN103209164A (zh) * | 2012-01-17 | 2013-07-17 | 上海狂龙数码科技有限公司 | 公共信息服务平台网络架构及数据传输方法 |
US9253124B2 (en) * | 2012-05-15 | 2016-02-02 | TV Band Service, LLC | Techniques for sending and relaying information over broadcast and non-broadcast communications media |
US9628373B2 (en) * | 2012-12-19 | 2017-04-18 | Comcast Cable Communications, Llc | Multipath communication in a network |
JP6001474B2 (ja) * | 2013-02-26 | 2016-10-05 | 日本電信電話株式会社 | ブートイメージ配信方法及びブートイメージ配信システム |
JP5724154B2 (ja) * | 2013-05-16 | 2015-05-27 | 株式会社Skeed | データ配信システム、データ配信のためのデータ通信装置およびプログラム |
MX358670B (es) | 2013-07-17 | 2018-08-31 | Sony Corp | Dispositivo de provisión de contenido, método de provisión de contenido, programa, dispositivo de terminal, y sistema de provisión de contenido. |
JP6426901B2 (ja) * | 2014-03-14 | 2018-11-21 | 富士通クライアントコンピューティング株式会社 | 配信方法、再生装置、配信装置、転送制御プログラムおよび配信制御プログラム |
US10306021B1 (en) * | 2014-08-21 | 2019-05-28 | Amazon Technologies, Inc. | Streaming content to multiple clients |
US10893266B2 (en) * | 2014-10-07 | 2021-01-12 | Disney Enterprises, Inc. | Method and system for optimizing bitrate selection |
US10756997B2 (en) | 2015-09-28 | 2020-08-25 | Cybrook Inc. | Bandwidth adjustment for real-time video transmission |
US10506257B2 (en) | 2015-09-28 | 2019-12-10 | Cybrook Inc. | Method and system of video processing with back channel message management |
US10516892B2 (en) | 2015-09-28 | 2019-12-24 | Cybrook Inc. | Initial bandwidth estimation for real-time video transmission |
US10506245B2 (en) | 2015-11-18 | 2019-12-10 | Cybrook Inc. | Video data processing using a ring buffer |
US10506283B2 (en) * | 2015-11-18 | 2019-12-10 | Cybrook Inc. | Video decoding and rendering using combined jitter and frame buffer |
TWI586156B (zh) * | 2015-12-04 | 2017-06-01 | 鴻海精密工業股份有限公司 | 流媒體資料傳輸系統、傳輸方法及資料分佈伺服器 |
KR102283635B1 (ko) * | 2020-11-11 | 2021-07-30 | (주)소셜인프라테크 | 복수 개의 노드 간 트랜잭션 정보의 상호 공유를 통한 디지털 콘텐츠 거래 중개 시스템 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5095444A (en) * | 1989-12-21 | 1992-03-10 | Legent Corporation | System and method for measuring inter-nodal transmission delays in a communications network |
DE69228423T2 (de) * | 1992-11-27 | 1999-09-30 | International Business Machines Corp., Armonk | Mehrfachsende-Leitweglenkung zwischen Bereichen |
US5864854A (en) * | 1996-01-05 | 1999-01-26 | Lsi Logic Corporation | System and method for maintaining a shared cache look-up table |
US5790541A (en) * | 1996-04-01 | 1998-08-04 | Motorola, Inc. | Apparatus, method, system and system method for distributed routing in a multipoint communication system |
US5778187A (en) * | 1996-05-09 | 1998-07-07 | Netcast Communications Corp. | Multicasting method and apparatus |
US5946316A (en) * | 1997-01-17 | 1999-08-31 | Lucent Technologies, Inc. | Dynamic distributed multicast routing protocol |
US6622157B1 (en) * | 1998-09-28 | 2003-09-16 | Certeon, Inc. | Extending network services using mobile agents |
US6850965B2 (en) * | 1998-11-17 | 2005-02-01 | Arthur Douglas Allen | Method for connection acceptance and rapid determination of optimal multi-media content delivery over network |
US6502140B1 (en) * | 1999-01-29 | 2002-12-31 | International Business Machines Corporation | Multicast support for small groups |
KR20020009591A (ko) * | 1999-04-15 | 2002-02-01 | 스카이스트림 네트워크스 인코포레이티드 | 데이터 방송 시스템 |
EP1063814A1 (en) * | 1999-06-24 | 2000-12-27 | Alcatel | A method to forward a multicast packet |
JP2001036549A (ja) * | 1999-07-15 | 2001-02-09 | Toshiba Corp | データ処理システムおよびタイムスタンプ生成方法 |
JP3878373B2 (ja) * | 1999-11-30 | 2007-02-07 | 富士通株式会社 | 動的情報バス生成方法及びサブネット管理装置 |
JP3793941B2 (ja) * | 2000-02-24 | 2006-07-05 | 株式会社日立製作所 | 映像配送システムにおけるビデオサーバ装置およびその映像配送方法。 |
JP3478259B2 (ja) * | 2000-10-23 | 2003-12-15 | 日本電信電話株式会社 | ストリーム中継制御装置、ストリーム中継制御システム、ストリーム中継制御方法,ならびに該方法を記録した記録媒体 |
JP3904885B2 (ja) * | 2000-11-30 | 2007-04-11 | 富士通株式会社 | データの配布経路を生成する装置および方法 |
US20030115351A1 (en) * | 2001-12-14 | 2003-06-19 | Giobbi John J. | Digital content distribution system and method |
JP2003069639A (ja) * | 2001-08-27 | 2003-03-07 | Nec Corp | xDSL収容装置、マルチキャスト配信システム及びデータ配信方法 |
KR100391016B1 (ko) * | 2001-08-29 | 2003-07-12 | 한국전자통신연구원 | 엑스캐스트를 이용한 멀티캐스트 데이터 전송 방법 |
US20040030929A1 (en) * | 2001-11-06 | 2004-02-12 | Depeng Bi | Digital audio and video distribution transmission and playback |
US7304955B2 (en) * | 2002-03-28 | 2007-12-04 | Motorola, Inc. | Scalable IP multicast with efficient forwarding cache |
US7317721B1 (en) * | 2002-04-12 | 2008-01-08 | Juniper Networks, Inc. | Systems and methods for memory utilization during packet forwarding |
US7305483B2 (en) * | 2002-04-25 | 2007-12-04 | Yahoo! Inc. | Method for the real-time distribution of streaming data on a network |
US20030204602A1 (en) * | 2002-04-26 | 2003-10-30 | Hudson Michael D. | Mediated multi-source peer content delivery network architecture |
US7289503B1 (en) * | 2002-07-10 | 2007-10-30 | Juniper Networks, Inc. | Systems and methods for efficient multicast handling |
US7263099B1 (en) * | 2002-08-14 | 2007-08-28 | Juniper Networks, Inc. | Multicast packet replication |
US7519054B2 (en) * | 2005-01-27 | 2009-04-14 | Intel Corporation | Replication of multicast data packets in a multi-stage switching system |
-
2003
- 2003-06-02 TW TW92114899A patent/TWI265697B/zh not_active IP Right Cessation
- 2003-06-04 CN CN038114313A patent/CN1656749B/zh not_active Expired - Fee Related
- 2003-06-04 WO PCT/JP2003/007093 patent/WO2003105421A1/ja active Application Filing
- 2003-06-04 KR KR20047018062A patent/KR100754293B1/ko not_active IP Right Cessation
- 2003-06-04 AU AU2003242053A patent/AU2003242053A1/en not_active Abandoned
- 2003-06-04 EP EP03736036A patent/EP1533952A4/en not_active Withdrawn
- 2003-06-04 US US10/523,347 patent/US7809850B2/en active Active
- 2003-06-04 JP JP2004512360A patent/JP4034780B2/ja not_active Expired - Fee Related
-
2009
- 2009-08-09 US US12/538,145 patent/US8130757B2/en active Active
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8059561B2 (en) | 2005-08-19 | 2011-11-15 | Brother Kogyo Kabushiki Kaisha | Information communication system, information communication method, node device included in information communication system, and recording medium having information processing program recorded on it |
CN101243653B (zh) * | 2005-08-19 | 2012-11-28 | 兄弟工业株式会社 | 信息通信系统,信息通信方法,包含在信息通信系统中的节点装置 |
CN101406006B (zh) * | 2006-03-30 | 2014-10-08 | 兄弟工业株式会社 | 信息通信系统,信息通信方法,包括在信息通信系统中的节点装置 |
CN101291300B (zh) * | 2008-06-12 | 2011-04-20 | 华为技术有限公司 | 消息业务中文件传输的实现方法、装置和用户设备 |
CN102412928A (zh) * | 2010-09-17 | 2012-04-11 | 株式会社Ntt都科摩 | 一种基于网络编码的数据传输方法及装置 |
CN102685171A (zh) * | 2011-03-14 | 2012-09-19 | 纬创资通股份有限公司 | 通信系统及点对点传输方法 |
CN104054319A (zh) * | 2012-01-11 | 2014-09-17 | 阿尔卡特朗讯公司 | 在弹性云文件系统中减少延迟和成本 |
WO2015096444A1 (zh) * | 2013-12-27 | 2015-07-02 | 中兴通讯股份有限公司 | 一种数据传输方法和系统 |
US9854458B2 (en) | 2013-12-27 | 2017-12-26 | Zte Corporation | Data transmission method and system, and a non-transitory computer-readable storage medium |
CN105656794A (zh) * | 2014-11-14 | 2016-06-08 | 腾讯科技(深圳)有限公司 | 数据分发方法及装置 |
CN105656794B (zh) * | 2014-11-14 | 2019-03-08 | 腾讯科技(深圳)有限公司 | 数据分发方法、装置及计算机可读存储介质 |
CN105656978A (zh) * | 2014-12-04 | 2016-06-08 | 中国移动通信集团公司 | 一种资源共享方法及装置 |
CN105656978B (zh) * | 2014-12-04 | 2019-06-25 | 中国移动通信集团公司 | 一种资源共享方法及装置 |
CN105549992A (zh) * | 2015-12-08 | 2016-05-04 | 北京奇虎科技有限公司 | 一种代码发布方法、装置和系统 |
Also Published As
Publication number | Publication date |
---|---|
TW200402217A (en) | 2004-02-01 |
JPWO2003105421A1 (ja) | 2005-10-13 |
JP4034780B2 (ja) | 2008-01-16 |
AU2003242053A1 (en) | 2003-12-22 |
US7809850B2 (en) | 2010-10-05 |
KR20050007533A (ko) | 2005-01-19 |
CN1656749B (zh) | 2011-01-12 |
EP1533952A1 (en) | 2005-05-25 |
US20100067534A1 (en) | 2010-03-18 |
KR100754293B1 (ko) | 2007-09-03 |
EP1533952A4 (en) | 2009-01-14 |
US20060168104A1 (en) | 2006-07-27 |
WO2003105421A1 (ja) | 2003-12-18 |
TWI265697B (en) | 2006-11-01 |
US8130757B2 (en) | 2012-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1656749A (zh) | 数字内容分发系统、方法、程序及服务器和客户机 | |
CN1222902C (zh) | 通信网中的方法和设备 | |
CN1685675A (zh) | 内部bgp下载器 | |
CN1450765A (zh) | 服务器负载平衡系统、装置以及内容管理装置 | |
CN1852431A (zh) | 实现实时视频信息共享的系统及方法 | |
CN1805447A (zh) | 为网络中的数据传送分配优先级的方法及使用该方法的网络节点 | |
CN1242593C (zh) | 源地址选择系统、路由器装置、通信节点和源地址选择方法 | |
CN1649341A (zh) | 应用路由选择协议的堆叠式路由器 | |
CN1914861A (zh) | 基于群集的网络供应 | |
CN1579070A (zh) | 一种多媒体通信的方法、系统和数据结构 | |
CN1701304A (zh) | 在发布 -订购网络中通过有效载荷检测针对告警服务、数字内容交付和服务质量管理的分组路由以及具有选择多播的高速缓存 | |
CN1720692A (zh) | 基于多个fe、ge和10ge的n-子环结构的多业务环 | |
CN1630259A (zh) | 内部代理装置、移动路由器、通信系统以及通信方法 | |
CN1412973A (zh) | 虚拟个人网络服务管理系统及其服务管理器和服务代理器 | |
CN1496063A (zh) | 互联网协议安全性协议设置服务器设备和处理设备 | |
CN1774890A (zh) | 用于网络中速率控制服务的系统和方法 | |
CN1607781A (zh) | 利用连接操作进行网络负载平衡 | |
CN1956424A (zh) | 基于分布式网关的通信方法及应用 | |
CN1713617A (zh) | 通信统计收集装置 | |
CN1305289A (zh) | 按规定的策略在多服务器实施ip数据报发送的方法和系统 | |
CN1592259A (zh) | 网络用交换装置、路径管理服务器、网络接口装置及其控制方法 | |
CN1841989A (zh) | 实现有线网络内的高吞吐量带宽分配的方法和系统 | |
CN2686218Y (zh) | 设备管理系统、探测设备、设备及程序 | |
CN1720693A (zh) | 用于弹性包环上的多业务支路的传输装置和方法 | |
CN101053239A (zh) | 与安全通信有关的改进 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20110112 |