CN113454934B - 多服务器通信***中的下载控制 - Google Patents

多服务器通信***中的下载控制 Download PDF

Info

Publication number
CN113454934B
CN113454934B CN202080015055.3A CN202080015055A CN113454934B CN 113454934 B CN113454934 B CN 113454934B CN 202080015055 A CN202080015055 A CN 202080015055A CN 113454934 B CN113454934 B CN 113454934B
Authority
CN
China
Prior art keywords
server
servers
request
download
downloader
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.)
Active
Application number
CN202080015055.3A
Other languages
English (en)
Other versions
CN113454934A (zh
Inventor
余明超
O·奥内尔
T·F·安蒂奥克
V·纳格申
J·M·克劳德
M·C·里德
J·瑞德米勒
E·奥斯本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Dolby Laboratories Licensing Corp
Original Assignee
Dolby Laboratories Licensing Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Dolby Laboratories Licensing Corp filed Critical Dolby Laboratories Licensing Corp
Priority to CN202410232386.2A priority Critical patent/CN118118128A/zh
Publication of CN113454934A publication Critical patent/CN113454934A/zh
Application granted granted Critical
Publication of CN113454934B publication Critical patent/CN113454934B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0002Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0041Arrangements at the transmitter end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/231Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
    • H04N21/23116Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving data replication, e.g. over plural servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/23406Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving management of server-side video buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/238Interfacing the downstream path of the transmission network, e.g. adapting the transmission rate of a video stream to network bandwidth; Processing of multiplex streams
    • H04N21/23805Controlling the feeding rate to the network, e.g. by controlling the video pump
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/24Monitoring of processes or resources, e.g. monitoring of server load, available bandwidth, upstream requests
    • H04N21/2405Monitoring of the internal components or processes of the server, e.g. server load
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/44209Monitoring of downstream path of the transmission network originating from a server, e.g. bandwidth variations of a wireless network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4622Retrieving content or additional data from different sources, e.g. from a broadcast channel and the Internet

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Environmental & Geological Engineering (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Memory System (AREA)

Abstract

描述了用于多源内容传送中的数据流量管理的装置和方法。该装置包括下载器和控制器。下载器通过通信链路耦合到服务器。控制器被配置成基于关于链路质量的预定信息来确定对于服务器的初始下载请求。控制器还被配置为利用下载器向服务器发送初始下载请求。控制器还被配置为在下载器经由通信链路从服务器接收到与数据文件相关联的数据之后,更新关于通信链路质量的信息。控制器还被配置成基于更新的关于通信链路质量的信息来确定对于服务器的后续下载请求。控制器还被配置为经由下载器向服务器发送后续下载请求。控制器进一步还被配置为经由下载器将后续下载请求发送给服务器。对于每个服务器还提出了速率调整,并且当在装置处下载基本完成时,将下载终止请求传输至服务器。

Description

多服务器通信***中的下载控制
相关应用的交叉引用
本申请要求2019年3月6日提交的美国临时申请第62/814,697号和2020年3月3日提交的美国临时申请第62/984,484号的优先权,这两个申请的全部内容通过引用结合于此。
技术领域
本申请总体上涉及多源内容传送,尤其涉及在多源内容传送期间多余数据流量减少。
背景技术
冗余码将数据文件分割成K个等长的原始符号,并生成N>K个编码符号,每个编码符号是原始符号的混合(例如,线性组合)。冗余码允许使用任何K+δ编码符号来解码K个原始符号(从而恢复数据文件),其中δ≥0是一个小整数。一些示例冗余码包括里德-所罗门码、低密度奇偶校验码、喷泉码和网络码。
发明内容
本公开的各个方面涉及用于在多源内容传送***中管理多余数据流量的电路、***和方法。
本公开提供了一种装置,在一个实现中,该装置包括下载器和控制器。该下载器经由多个通信链路耦合到多个服务器。该控制器被配置为基于关于所述多个通信链路的质量的预定信息,确定对于所述多个服务器的初始下载请求。控制器还被配置为通过下载器向所述多个服务器发送初始下载请求。控制器还被配置为在下载器经由所述多个通信链路从所述多个服务器接收到与数据文件相关联的数据之后,更新关于所述多个通信链路的质量的信息。控制器还被配置为基于更新的关于所述多个通信链路的质量的信息,确定对于所述多个服务器的后续下载请求。控制器还被配置为经由下载器向所述多个服务器发送后续下载请求。
本公开还提供了一种方法,在一个实现中,该方法包括基于关于将多个服务器耦合到下载器的多个通信链路的质量的预定信息,确定对于所述多个服务器的初始下载请求。该方法还包括利用下载器向所述多个服务器发送初始下载请求。该方法还包括经由所述多个通信链路在下载器处从所述多个服务器接收与数据文件相关联的数据。该方法还包括在下载器经由所述多个通信链路从所述多个服务器接收数据之后,更新关于所述多个通信链路的质量的信息。该方法还包括基于更新的关于所述多个通信链路的质量的信息,确定对于所述多个服务器的后续下载请求。该方法还包括利用下载器向所述多个服务器发送后续下载请求。
本公开还提供了一种存储指令的非暂时性计算机可读介质,指令在被计算机的处理器执行时,使得计算机执行操作,在一个实现中,该操作包括基于关于将多个服务器耦合到下载器的多个通信链路的质量的预定信息,确定对于所述多个服务器的初始下载请求。该操作还包括利用下载器向所述多个服务器发送初始下载请求。该操作还包括经由所述多个通信链路在下载器处从所述多个服务器接收与数据文件相关联的数据。该操作还包括在下载器经由所述多个通信链路从所述多个服务器接收数据之后,更新关于所述多个通信链路的质量的信息。该操作还包括基于更新的关于所述多个通信链路的质量的信息,确定对于所述多个服务器的后续下载请求。该操作还包括利用下载器向所述多个服务器发送后续下载请求。
这样,本公开的各个方面提供了多余数据流量的减少,并且至少在多源内容传送的技术领域中实现了改进。
附图说明
在附图中,以示例的方式而非限制的方式示出了本公开,其中附图标记指代类似的元件,其中:
图1示出了根据本公开的实施例的用于多源内容传送的示例性***的框图;
图2示出了根据本公开的实施例的示例性控制器的框图;
图3A和3B示出了根据本公开的实现的用于通过渐进部分下载请求进行多源内容传送中数据流量管理的示例性方法的流程图;
图4示出了根据本公开的实现的用于通过软下载终止请求进行多源内容传送中数据流量管理的示例性方法的流程图;
图5示出了根据本公开的实现的通过下载速率适配生成的示例***器流速率;
图6示出了根据本公开的实现的用于通过下载速率适配进行多源内容传送中数据流量管理的示例性方法的流程图;
图7示出了根据本公开的实现的用于多源内容传送中数据流量管理的示例性方法的流程图;
图8示出了根据本公开的实现的与多源内容传送中的数据流量管理相关的神经网络的示例性训练过程的流程图;和
图9示出了根据本公开的实现的用于通过强化学习在多源内容传送中进行数据流量管理的控制器的示例性训练过程的流程图。
具体实施方式
冗余编码的多源内容传送***包括多个服务器和一个接收器。每个服务器存储同一数据文件的不同的编码符号集合。该***使得接收机能够享受所有服务器-接收机链路的聚合带宽,因为所有服务器将编码符号流式传输到接收机,并且一旦接收机从所有服务器下载了足够的编码符号以用于解码,接收机就终止所有流。使用这种方法,在整个下载过程中,每个链接都得到充分利用,从而使得吞吐量最大化。然而,这种下载策略可能会在服务器上产生比接收器请求的K+δ个编码符号多得多的多余流量。一个典型的原因是网络延迟。一旦服务器已发送了K+δ个编码符号,接收器将在延迟了一个单程时间后完成这些编码符号的接收,然后发送终止请求。该终止请求将在单程时间再次延迟后由服务器接收。这导致在发送足够的数据以供接收器解码与接收终止请求之间总共有一个往返时间延迟。在此期间,每台服务器将继续流式传输冗余的并且可能被标记为多余数据或开销的编码符号。这些冗余的编码符号存在于每条链路中,并且在某些实现方式中也可存在于服务器和接收器的下层通信缓冲器中。这些冗余的编码符号可能会增加服务器出口(从而增加成本),减少其他网络流可用的网络带宽,并可能导致对后续数据文件传送的线端阻塞。
图1是根据本公开的实现的用于多源内容传送的***100的示例的框图。图1所示的***100包括多个服务器102,每个服务器存储同一数据文件的编码符号104。在一些实现中,多个服务器102中的每一个存储同一数据文件的编码符号104的不同集合。在一些实现中,多个服务器102中的每一个存储同一数据文件的完全相同的编码符号104的集合。将在下面更详细描述的多个服务器102中的每一个都包括输出缓冲器106,并且此外,还被配置为向***100的其他部件以及***100外部的部件发送或流式传输编码符号104。实际上,多个服务器102可以包括额外的部件,诸如一个或多个电子处理器、存储器、接口、显示器、扬声器、电源等。为了便于解释,这里没有示出这些额外的部件。图1所示的***100包括三个服务器。实际上,***100可以包括少于三个的服务器或多于三个的服务器。
图1所示的***100还包括接收器108(例如,音频/视频接收器)。将在下面更详细描述的接收器108包括下载器110和控制器112。实际上,接收器108可以包括额外的部件,例如一个或多个显示器、扬声器、电源、存储器等。为了便于解释,这里没有示出这些额外的部件。
图1所示的下载器110包括输入缓冲器114,并且经由多个通信链路116可通信地耦合到多个服务器102。多个通信链路116包括有线链路、无线链路或其组合。如上所述,多个服务器102中的每一个存储数据文件的编码符号104的不同集合。为了解码数据文件,下载器110被配置为向多个服务器102发送下载请求,并且随后接收存储在多个服务器102的每一个中的编码符号104。下载器110经由多个通信链路116通过输入缓冲器114从多个服务器102接收编码符号104。在接收到足够数量的编码符号104以解码数据文件之后,下载器110被配置为向多个服务器102发送下载终止请求以终止来自服务器的数据传送。
控制器112可通信地耦合到下载器110,并且此外,还被配置成确定下载器110应该从多个服务器102中的每一个请求哪些数据,这将在下面更详细地描述。图2是根据本公开的实现的控制器112的一个示例的框图。图2所示的控制器112包括电子处理器202(例如,一个或多个微处理器、专用集成电路(ASICs)、片上***(SoCs)或其他电子控制器)、存储器204、输入/输出接口206、用户接口208和总线210。实际上,控制器112可以包括额外的部件,例如通信电路、一个或多个传感器、一个或多个电源等。为了便于解释,这里没有说明这些额外的部件。
总线210将包括例如存储器204的控制器112的各种部件连接到电子处理器202。存储器204例如包括只读存储器(ROM)、随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、其他非暂时性计算机可读介质或其组合。电子处理器202被配置为从存储器204中检索程序指令和数据,并且此外,还执行指令以实行这里描述的方法。在一些实现中,存储器204包括在电子处理器202中。
输入/输出接口206包括用于在控制器112内的部件和***100的其他部件以及***100外部的部件之间传输信息的例程。输入/输出接口206被配置成经由一个或多个有线耦合(例如,线缆、光纤等)、无线或其组合来发送和接收信号。信号可以包括例如下载请求、终止请求、编码符号或其组合。
用户接口208包括例如具有显示器和输入设备的计算机、触摸屏显示器、多个旋钮、拨号盘、开关、按钮、推子等。在一些实现中,用户接口208包括触敏接口(例如,触摸屏显示器),其显示由电子处理器202执行的软件应用程序生成的视觉输出。视觉输出包括例如图形指示器、灯、颜色、文本、图像、图形用户界面(GUI)、以及其组合等。触敏接口还使用检测到的物理接触(例如,检测到的电容或电阻)接收用户输入。在一些实现中,用户接口208与控制器112、接收器108或***100分离。
渐进部分下载请求
在一些实现中,下载器110通过顺序地向多个服务器102中的每一个发送一个或多个部分下载请求来渐进地下载数据文件。控制器112确定何时向多个服务器102中的每一个请求数据以及请求多少数据。一旦文件变得可解码,控制器112指示下载器110向多个服务器102中的每一个发送下载终止请求。在一些实现中,部分下载请求分为两个阶段:初始阶段和补充(refill)阶段。
在初始阶段期间,向多个服务器102中的每一个发出一个初始下载请求。在全部多个服务器102上请求的编码符号的总数K'小于K(1+p),其中K是为了解码文件而被请求的有用编码符号的数量,并且p≥0是多余数据的容许量。在某些实现中,K'的值可能取决于每个通信链路的带宽、延迟或两者的变化。通常,多个通信链路116越稳定,K'越接近K(1+p)。
在补充阶段期间,额外的下载请求(例如,后续下载请求)被发送到多个服务器102中的一些或全部,以:(i)保持每个服务器102和下载器110之间的相应通信链路116被充分利用;以及(ii)调整从服务器102请求的数据总量以使多余数据最小化。
图3A和3B示出了根据本公开的实施例的用于通过渐进部分下载请求进行多源内容传送中数据流量管理的方法300的示例的流程图。
图3A所示的方法300的步骤是上述初始阶段的一个例子。在框302,确定初始加载请求K'(例如,通过控制器112确定)。初始加载请求K'是在初始下载请求中请求的编码符号104的总量。在一些实现中,基于通信链路116的稳定性来确定初始请求负载K'。例如,初始加载请求K'可以基于通信链路116的带宽的归一化标准差来确定。归一化带宽标准差是根据先前信息(例如,观测值)的通信链路的带宽的标准差和平均值之间的比率。所有通信链路116的归一化带宽标准差被求平均,以产生由非负分数c(例如0.5)界定的方差因子ν。方差因子ν由下式给出:
其中N是通信链路116的总量,σi是通信链路i的观察到的标准差,并且wi是通信链路i的平均带宽。在一些实现中,通信链路i的带宽wi基于通信链路i的先前观察到的性能来确定(例如,通过对通信链路i的先前观察到的性能进行平均)。
初始加载请求K'由下式给出:
K′=(1-v)*K*(1+p)
其中,ν是上述的方差因子,K是解码数据文件所需的有用符号的数量,并且p是多余数据的容许量。在一些实现中,基于***100的***级要求来确定多余数据的容许量p。在一些实现中,多余数据的容许量p至少部分基于***100的特定部件来确定。
在框304,确定初始下载完成时间T(例如,由控制器112确定)。在一些实现中,控制器112被配置为当总共K'个编码符号104被接收到并且多个通信链路116中的每一个被完全利用时,基于由多个服务器102中的每一个提供的数据总量来确定初始下载完成时间T。例如,初始下载完成时间T可以通过求解下式来确定:
其中N是通信链路116的总量,di是通信链路i的往返时间,wi是通信链路i的平均带宽,s是编码符号的大小,并且K'是为了解码数据文件而仍被请求(即,初始加载请求)的编码符号104的数量。
在框306,确定多个服务器102中的每一个的初始服务器负载Li(例如,由控制器112确定)。在一些实现中,控制器112被配置成部分基于初始下载完成时间T来确定服务器i的初始服务器负载Li。例如,当初始下载完成时间T大于通信链路i的往返时间di时,服务器i的初始服务器负载Li可以由下式给出:
Li=(T-di)*wi*(1+p)
其中di是通信链路i的往返时间,wi是通信链路i的平均带宽,p是多余数据的容许量。
在服务器i被分配零负载的情况下(例如,由于高往返时间、小带宽或两者),控制器112被配置为向服务器i分配小于初始加载请求K'的初始服务器负载Li。例如,当初始下载完成时间T小于或等于通信链路i的往返时间di时,服务器i的初始服务器负载Li可以由下式给出:
Li=c*K*(p/N)
其中c是非负的小数(例如,0.5),K是为了解码数据文件而被请求的有用符号的数量,p是多余数据的容许量,并且N是通信链路116的总量。
在框308,确定最初向多个服务器102中的每一个请求的编码符号104的数量ni(例如,由控制器112确定)。在一些实现中,控制器112被配置为通过由编码符号104的大小s将多个服务器102中的每一个的初始服务器负载Li取整来确定编码符号104的数量ni。例如,要从服务器i请求的编码符号104的数量ni可以由下式给出:
ni=ceil(Li/s)
其中Li是服务器i的初始服务器负载,s是符号的大小。如这里所使用的,ceil(x)是返回大于x的最小整数的取顶函数。
在框310,初始下载请求被发送到多个服务器102中的每一个(例如,由下载器110)。例如,下载器110通过多个通信链路116中的每一个向多个服务器102中的每一个发送包括初始下载请求的信号。在一些实现中,此外,每个初始下载请求还包括要下载的数据文件的标识符和要从服务器102请求的编码符号104的数量ni。例如,下载器110经由通信链路i向服务器i发送初始下载请求,该请求包括要下载的数据文件的标识符和要从服务器i请求的编码符号104的数量ni
在一些实现中,初始加载请求K'被不均匀地分配给多个服务器102。例如,具有较高性能的服务器102比具有较低性能的服务器102被分配更多的初始加载请求K'。如上在方法300的框302中所述,基于多个通信链路116中的每一个的带宽和往返时间来分配初始加载请求K'。在一些实现中,初始加载请求K'在全部多个服务器102上被均匀地分配。
转到图3B,图3B所示的方法300的步骤是上述补充阶段的一个例子。在框312,通过多个通信链路116之一从多个服务器102之一接收编码符号104(例如,由下载器110接收)。例如,下载器110从多个服务器102之一接收包含一个或多个编码符号104的编码数据包。在框314,确定更新的关于多个通信链路116的质量的信息(例如,由控制器112确定)。在一些实现中,控制器112为多个通信链路116中的每一个确定更新的带宽和瞬时延迟τi。例如,控制器112基于在接收最近下载的编码数据包期间测量的下载速度来确定通信链路i的更新带宽wi。此外,控制器112基于下载器110是否已经通过通信链路i接收了任何数据来确定通信链路i的瞬时延迟τi。例如,当下载器110已经通过通信链路i接收了任何数据时,控制器112确定通信链路i的瞬时延迟τi为零。如果下载器110没有通过通信链路接收到任何数据,则通信链路i的往返时间di高于自发送初始下载请求以来经过的时间t,并且控制器112将通信链路i的瞬时延迟τi确定为di与t之间的差值。
在框316,确定更新的下载完成时间T'(例如,由控制器112确定)。在一些实现中,控制器112被配置为基于更新的关于多个通信链路116的质量的信息和为了解码数据文件而被请求的编码符号104的总量K”来确定更新的下载完成时间T'。例如,可以通过求解下式来确定更新的下载完成时间T':
其中,N是通信链路116的总量,τi是通信链路i的瞬时延迟,wi是通信链路i的更新带宽,s是符号的大小,以及K”是为了解码数据文件而仍被请求的编码符号104的数量。
在框318,确定多个服务器102中的每一个的更新的服务器负载Li(例如,由控制器112确定)。在一些实现中,控制器112被配置为基于通信链路i的更新的带宽wi和更新的下载完成时间T'来确定服务器i的更新的服务器负载Li。例如,服务器i的更新的服务器负载Li由下式给出:
Li=T′*wi
其中T'是更新的下载完成时间,wi是通信链路i的更新的带宽。
在一些实现中,仅当服务器102的更新的服务器负载高于其尚未接收的当前负载时,才向服务器102发送后续下载请求(也称为补充请求)。因此,在框320,确定多个服务器102中的每一个的负载差异δi(例如,通过控制器112确定)。例如,服务器i的负载差异δi是服务器i的更新的服务器负载Li和服务器i的当前未传送的负载Li'之间的差异。
在框322,控制器112确定多个服务器102中的任何一个是否欠负载。例如,当服务器i的负载差δi大于零时,控制器112确定服务器i欠负载。此外,当服务器i的负载差δi小于或等于零时,控制器112确定服务器i具有足够的负载。当多个服务器102都没有欠负载时,没有后续下载请求被发送到多个服务器102,并且方法300返回到框312以从多个服务器102接收额外的编码符号104。作为替代,当多个服务器102中的任何一个欠负载时,在框324确定从每个欠负载的服务器请求的编码符号104的更新数量ni(例如,由控制器112确定)。例如,从服务器i请求的编码符号104的更新数量ni可以由下式给出:
其中,δi是服务器i的负载差异,wi是通信链路i的更新的带宽,di是通信链路i的往返时间,s是符号的大小。
在框326,后续下载请求被发送到欠负载的服务器102(例如,由下载器110发送)。在一些实现中,此外,每个后续下载请求还包括要从欠负载的服务器102请求的编码符号104的更新数量ni。例如,下载器110经由通信链路i向服务器i发送后续下载请求,该请求包括要向服务器i请求的编码符号104的更新数量ni。在一些实现中,在发送后续下载请求之后,方法300返回到框312,以从多个服务器102接收额外的编码符号104。
软下载终止请求
在一些实现中,下载器110被配置为向多个服务器102中的每一个发送特定次数的下载终止请求,使得多个服务器102中的每一个在该服务器102将最后有用符号加载到其输出缓冲器106之后立即接收下载终止请求。在服务器102已经将最后有用符号加载到其输出缓冲器106之后,多个服务器102中的每一个立即接收并执行下载终止请求。这样,由多个服务器102中的每一个发送的多余数据的量被最小化,因为多个服务器102中的每一个向下载器110发送很少的多余符号或不发送多余符号。
图4示出了根据本公开的实施例的用于通过软下载终止请求进行多源内容传送中数据流量管理的方法400的示例的流程图。在框402,从多个服务器102的每一个请求编码符号(例如,由下载器110请求)。在一些实现中,使用上述方法300的任何部分(或部分的任何组合)从多个服务器102请求编码符号。在框404,通过多个通信链路116之一从多个服务器102之一接收编码符号104(例如,由下载器110接收)。例如,下载器110从多个服务器102之一接收包含一个或多个编码符号104的编码数据包。在框406,控制器112确定下载是否差不多完成。在一些实现中,当下载器110已经从多个服务器102接收到大部分编码符号104时,控制器112确定下载差不多完成。例如,当下载器110已经接收到数量大于最终阶段阈值Th'的编码符号104时,控制器112确定下载差不多完成。最终阶段阈值Th'可由下式给出:
其中,s是编码符号的大小,K是为了解码数据文件而请求的有用编码符号的数量,N是通信链路116的总量,wi是通信链路i的平均带宽,di是通信链路i的往返时间。当下载没有差不多完成时,方法400返回到框404,以从多个服务器102接收额外的编码符号104。
作为替代,当下载差不多完成时,在框408确定下载完成时间T(例如,由控制器112确定)。例如,下载完成时间T可以通过求解下式来确定:
其中N是通信链路116的总量,di是通信链路i的往返时间,wi是通信链路i的平均带宽,s是编码符号的大小,以及K是为了解码数据文件而请求的有用符号的数量。
在框410,确定多个服务器102中的每一个将最后有用的编码符号104加载到它们的输出缓冲器106时的服务器完成时间Ui(例如,由控制器112确定)。在一些实现中,控制器112基于关于多个通信链路116的质量和服务器输出缓冲器106的大小的信息来确定服务器完成时间Ui。例如,服务器i的服务器完成时间Ui由下式给出:
其中,di是通信链路i的往返时间,T是下载完成时间,bi是服务器i的输出缓冲器106的大小,wi是通信链路i的带宽。
在框412,下载终止请求被发送到多个服务器102(例如,由下载器110发送)。每个下载终止请求在特定服务器的服务器完成时间之前的设定时间段被发送到特定服务器。例如,下载终止请求在时间Ui(di/2)被发送到服务器i。在一些实现中,直到数据文件可下载之后,多个服务器102的特定子集才被发送下载终止请求。
下载速率适配
在一些实现中,当下载数据文件时,控制器112调整多个服务器102中的每一个的流传输速率,以:(i)保持最大流传输速率,直到数据文件是差不多可解码的,以及(ii)使用降低的流传输速率来下载最后几个编码符号。例如,如图5所示,服务器流传输速率被设置为其最大速率r1,直到总共下载了K-ε个编码符号,其中K是为了解码数据文件而被请求的有用编码符号的数量,并且ε是小的正整数。图5所示的服务器流传输速率被降低到小速率r2,直到数据文件可解码。此后,下载终止。
在一些实现中,控制器112通过调整多个服务器102的输出缓冲器106的大小来调整多个服务器102的流传输速率。例如,控制器112通过HTTP/2会话窗口大小适配来调整多个服务器102的输出缓冲器106的大小。通常,增加服务器102的输出缓冲器106的大小会增加相应通信链路116的流传输速率和带宽。
图6示出了根据本公开的实现的用于通过下载速率适配进行多源内容传送中数据流量管理的方法600的示例的流程图。在框602,从多个服务器102中的每一个请求编码符号(例如,由下载器110请求)。在一些实现中,使用上述方法300的任何部分(或部分的任何组合)从多个服务器102请求编码符号。
在框604,多个服务器102的输出缓冲器106被设置为大的值(“第一值”的例子)。例如,服务器i的输出缓冲器106的大的大小值L_Bufi由下式给出:
L_Bufi=wi*di=pi
其中wi是通信链路i的带宽,并且di是通信链路i的往返时间,并且pi是如下的最小正数:(i)允许服务器i的流传输速率达到带宽wi,并且(ii)是编码符号104的大小s的倍数。
在框606,通过多个通信链路116从多个服务器102接收编码符号104(例如,由下载器110接收)。例如,下载器110从多个服务器102接收包含编码符号104的编码数据包。在框608,控制器112确定下载是否差不多完成。在一些实现中,当下载器110已经从多个服务器102接收到大部分编码符号104时,控制器112确定下载差不多完成。例如,当下载器110已经从多个服务器102接收到总共K-ε个编码符号104时(“大数阈值(majority threshold)”的示例),控制器112确定下载差不多完成,其中K是为了解码数据文件而被请求的有用编码符号的数量,并且ε是小的正整数。当下载没有差不多完成时,方法600返回到框604,以从多个服务器102接收额外的编码符号。
作为替代,当下载差不多完成时,在框610,多个服务器102的输出缓冲器106被设置为小的值(“第二值”的例子)。例如,服务器i的输出缓冲器106的小的大小值S_Bufi由下式给出:
S_Bufi=wi*di*qi
其中,wi是通信链路i的带宽,di是通信链路i的往返时间,并且qi是如下的正数:(i)小于pi,以及(ii)是编码符号104的大小s的倍数。
在框612,通过多个通信链路116从多个服务器102接收额外的编码符号104(例如,由下载器110接收)。在框614,控制器112确定数据文件是否可解码。在一些实现中,当下载器110已经接收到为了解码数据文件而被请求的足够数量的编码符号104时,数据文件是可解码的。例如,当下载器110已经从多个服务器102接收到总共K+δ个编码符号104时,控制器112确定数据文件是可解码的,其中K是为了解码数据文件而被请求的有用编码符号的数量,并且δ是小的正整数。当数据文件不可解码时,方法600返回到框612,以从多个服务器102接收额外的编码符号。作为替代,当数据文件是可解码的时,在框616,将下载终止请求发送到多个服务器102(例如,由下载器110发送)。
图7示出了根据本公开的实现的用于多源内容传送中的数据流量管理的方法700的示例的流程图。在框702,确定对于多个服务器102的初始下载请求(例如,由控制器112确定)。在一些实现中,每个初始下载请求包括对特定服务器向下载器110发送特定数量(“第一数量”的示例)的数据的请求。例如,如上文关于图3A中的框308所述,每个初始下载请求可以包括对特定服务器向下载器110发送特定数量的编码符号104的请求。在一些实现中,每个初始下载请求包括对特定服务器将其输出缓冲器106的大小设置为大的值的请求,例如,如上文关于图6中的框604所述。
基于关于多个通信链路116的质量的预定信息(例如,带宽、延迟和包丢失率)来确定初始下载请求。在一些实现中,基于服务器信息(例如,服务器位置、高速缓存状态和输出缓冲器大小)来确定初始下载请求。在一些实现中,初始下载请求是基于关于正在下载的数据文件的信息(例如,数据文件大小和数据文件类型)被确定的。在一些实现中,基于先前下载的数据文件的下载性能来确定初始下载请求。在一些实现中,基于***预算(例如,多余数据的最大可接受量)来确定初始下载请求。
在框704,初始下载请求被发送到多个服务器102(例如,由下载器110发送)。例如,下载器110通过多个通信链路116中的每一个向多个服务器102中的每一个发送包括初始下载请求的信号。在框706,接收器108从多个服务器102(例如,利用下载器110)接收数据。例如,下载器110可以从多个服务器102接收编码符号104。
在框708,确定更新的关于多个通信链路116的质量的信息(例如,由控制器112确定)。在一些实现中,控制器112为多个通信链路116中的每一个确定更新的带宽和瞬时延时,例如,如上文关于图3B中的框314所描述的。
在框710,确定后续下载请求(例如,由控制器112确定)。在一些实现中,每个后续下载请求包括对特定服务器向下载器110发送特定数量(“第二数量”的示例)的数据的请求。例如,如上文关于图3B中的框324所述,每个后续下载请求可以包括对特定服务器向下载器110发送特定数量的编码符号104的请求。在一些实现中,每个后续下载请求包括对特定服务器停止向下载器110发送数据的下载终止请求。例如,如上文关于图4中的框412所述,每个后续下载请求可以包括对特定服务器停止向下载器110发送编码符号104的请求。在一些实现中,每个后续下载请求包括对特定服务器将其输出缓冲器106的大小设置为小的值的请求,例如,如上文关于图6中的框610所述。
基于更新的关于多个通信链路116的质量(例如,带宽、延迟和包丢失率)的信息来确定后续下载请求。在一些实现中,基于服务器信息(例如,服务器位置、高速缓存状态和输出缓冲区大小)来确定后续下载请求。在一些实现中,基于关于正在下载的数据文件的信息(例如,数据文件大小和数据文件类型)来确定后续下载请求。在一些实现中,基于先前下载的数据文件和正在下载的当前数据文件的下载性能来确定后续下载请求。在一些实现中,基于***预算(例如,多余数据的最大可接受量)来确定后续下载请求。
在框712,后续下载请求被发送到多个服务器102(例如,由下载器110发送)。例如,下载器110通过多个通信链路116中的每一个向多个服务器102中的每一个发送包括后续下载请求的信号。
机器学习
在一些实现中,机器学习技术用于训练和部署由控制器112使用的下载过程来做出控制决策。控制决策的示例包括但不限于:(i)应当使用上述数据流量管理过程中的哪一个;(ii)所选过程的参数是什么;和(iii)超出上述过程范围的决定。在一些实现中,训练初始化定义了以下四个设置:(i)输入空间;(ii)学习过程和模式;(iii)输出空间;和(iv)奖励/惩罚函数。关于输入空间,每个输入是一组***信息,包括(但不限于)服务器信息、网络信息、设备信息、下载进度等。全球地、区域地、本地地和/或在每个用户的基础上收集信息,然后相应地创建训练数据集和测试数据集。学习算法和模型的一个例子是使用卷积神经网络的分批随机梯度下降。输出空间包括例如哪些服务器102发出下载请求、请求多少数据、何时发出下载请求以及何时终止下载。奖励/惩罚函数为吞吐量和多余数据之间的更高比率生成更高的奖励。训练过程是迭代的,并且每次迭代可以例如包括:(i)一批训练输入被给予模型;(ii)对于每个样本输入,模型基于学习过程确定输出(即,控制决策);(iii)确定每个输出的多余数据和吞吐量性能;(iv)确定总的奖励/惩罚;以及(v)基于来自奖励/惩罚的反馈来调整模型。在一些实现中,使用测试数据集来跟踪模型的性能,使得当模型的性能变得稳定(即,模型收敛)时,训练将停止。
训练输出是模型,当被提供***信息时,该模型决定控制决策。该模型可以使用通用数据样本进行预训练并然后分发给控制器112,可以在控制器112处使用接收器108的实时数据进行训练,或者可以进行预训练并然后在控制器112处进行演化。图8示出了根据本公开的实现的训练过程800的示例的流程图。在框802,全球地、区域地、本地地和在每个用户的基础上收集数据。在框804,基于收集的数据确定训练数据集和测试数据集。在框806,选择训练输入的随机子集。在框808,使用当前神经网络确定控制决策。在框810,确定控制决策的***性能和多余数据。在框812,确定奖励和惩罚。在框814,根据奖励和惩罚,使用梯度下降来更新神经网络。在框816,使用测试数据集测试神经网络的性能。在框818,确定神经网络是否已经收敛。当神经网络没有收敛时,训练过程800返回到框806,以选择训练输入的新随机子集。作为替代,当神经网络已经收敛时,在框820,神经网络被发送到控制器112。
在一些实现中,利用了强化学习模型。图9示出了利用强化学习的训练过程900的示例。图9所示的训练过程900包括代理(broker)902、环境904和奖励计算器906。代理902可以被定义为由控制器112使用的下载过程。环境904可以被定义为一个或多个唯一标识的服务器102、输出缓冲器106、输入缓冲器114和通信链路116。奖励计算器906基于吞吐量、多余数据等来确定奖励。强化学习模型定义了代理902与环境904交互的使用。在训练期间的每个时间步骤,代理902观察环境904的更新状态(例如,下载完成时间),然后确定要执行的动作(例如,在特定时间向特定服务器发送下载终止请求)。在应用动作时,环境904转换到另一更新状态,并且代理902接收奖励。代理902使用奖励信息来改善其决策,目标是最大化预期的累积折扣奖励。
控制器112的训练和处理还可以使用全球、区域、本地、每个用户和每个设备的环境数据。环境数据可以实时地或者非实时地源自第三方平台以及源自***自己的数据收集过程。该能力信息表明,全球使用的优化控制器的单个实现在区域、本地、每个用户或每个设备的基础上可能是不同的,因为服务器特性和网络特性两者在地理位置内和地理位置之间可能有很大的不同。例如,控制器112可以被配置为针对在旧金山运行的客户端和在孟买运行的客户端采用不同解决方案。此外,模型和控制器112可以在训练和操作期间另外考虑时间差异和接入网络异构性。
实施机制-硬件概述
根据一种实现,这里描述的技术由一个或多个专用计算设备来实现。专用计算设备可以被硬连线以执行这些技术,或者可以包括数字电子设备,例如被持久编程以执行这些技术的一个或多个专用集成电路(ASICs)或现场可编程门阵列(FPGAs),或者可以包括被编程以根据固件、存储器、其他存储器或其组合中的程序指令执行这些技术的一个或多个通用硬件处理器。这种专用计算设备也可以将定制硬连线逻辑、ASIC或FPGA与定制编程相结合来实现这些技术。专用计算设备可以是台式计算机***、便携式计算机***、手持设备、网络设备或任何其他结合硬连线和/或程序逻辑来实现这些技术的设备。这些技术不限于硬件电路和软件的任何特定组合,也不限于由计算设备或数据处理***执行的指令的任何特定来源。
这里使用的术语“存储介质”指的是存储数据和/或指令的任何介质,这些数据和/或指令使得机器以特定的方式运行。其是非暂态的。这种存储介质可以包括非易失性介质和/或易失性介质。非易失性介质包括例如光盘或磁盘。易失性介质包括动态存储器。存储介质的常见形式包括,例如,软盘、柔性盘、硬盘、固态驱动器、磁带或任何其他磁性数据存储介质、CD-ROM、任何其他光学数据存储介质、任何具有孔图案的物理介质、RAM、PROM和EPROM、FLASH-EPROM、NVRAM、任何其他存储芯片或盒。
存储介质不同于传输介质,但可以与传输介质结合使用。传输介质参与存储介质之间的信息传输。例如,传输介质包括同轴线缆、铜线和光纤。传输介质也可以采用声波或光波的形式,例如在无线电波和红外数据通信过程中产生的声波或光波。
等同物、扩展、替代物和其他
在前述说明书中,已经参考许多具体细节描述了本公开的可能实现,这些细节可能因实现而异。本文对权利要求中包含的术语的任何明确定义应涵盖权利要求中使用的这些术语的含义。因此,权利要求中未明确陈述的任何限制、元素、属性、特征、优点或属性都不应以任何方式限制权利要求的范围。因此,说明书和附图被认为是说明性的,而不是限制性的。为了清楚起见,还应进一步理解,exempli gratia(例如)是指“为了举例”(并非详尽的),它不同于id est(即)或“也就是说”
另外,在前面的描述中,阐述了许多具体细节,例如具体组件、设备、方法等的示例,以便提供对本公开的实现的透彻理解。然而,对于本领域的技术人员来说,很明显,这些具体细节不需要用于实践本公开的实现。在其他情况下,没有详细描述公知的材料或方法,以避免不必要地模糊本公开的实现。
本公开的各方面可以采用以下示例性配置中的任何一个或多个:
EEE(1).一种装置,包括:下载器,经由多个通信链路耦合到多个服务器;和控制器,被配置为基于关于所述多个通信链路的质量的预定信息,确定对于所述多个服务器的初始下载请求,通过下载器向所述多个服务器发送初始下载请求,在下载器经由所述多个通信链路从所述多个服务器接收到与数据文件相关联的数据之后,更新关于所述多个通信链路的质量的信息,基于更新的关于所述多个通信链路的质量的信息,确定对于所述多个服务器的后续下载请求,以及经由下载器向所述多个服务器发送后续下载请求。
EEE(2).根据EEE(1)所述的设备,其中,所述初始下载请求包括对于所述多个服务器中的每一个的一个请求。
EEE(3).根据EEE(1)或EEE(2)所述的装置,其中所述初始下载请求包括对于所述多个服务器中包括的特定服务器的向所述下载器发送第一数量的数据的请求,其中所述后续下载请求包括对于所述特定服务器的向所述下载器发送第二数量的数据的请求,并且其中所述第二数量不同于所述第一数量。
EEE(4).根据EEE(3)所述的设备,其中,所述控制器还被配置为基于关于所述多个通信链路的质量的预定信息,确定所述特定服务器的初始服务器负载,基于初始服务器负载确定第一数量的数据,基于更新的关于所述多个通信链路的质量的信息,确定所述特定服务器的更新的服务器负载,以及基于更新的服务器负载确定第二数量的数据。
EEE(5).根据EEE(2)到EEE(4)中任一项所述的装置,其中,所述初始下载请求包括对于所述多个服务器中包括的特定服务器的向所述下载器发送一定量的数据的请求,其中,所述后续下载请求包括对于所述特定服务器的停止向所述下载器发送数据的下载终止请求,并且其中,所述控制器还被配置为确定所述特定服务器的服务器完成时间,以及在服务器完成时间之前向特定服务器发送下载终止请求。
EEE(6).根据EEE(1)到EEE(5)中任一项所述的设备,其中所述初始下载请求包括对于所述多个服务器中包括的特定服务器的将所述特定服务器的输出缓冲器的大小设置为第一值的请求,并且其中所述后续下载请求包括对于所述特定服务器的将所述输出缓冲器的大小设置为小于所述第一值的第二值的请求。
EEE(7).根据EEE(1)到EEE(6)中任一项所述的设备,其中,关于所述多个通信链路的质量的信息包括带宽和等待时间。
EEE(8).一种方法,包括:基于关于将多个服务器耦合到下载器的多个通信链路的质量的预定信息,确定对于所述多个服务器的初始下载请求;利用下载器向所述多个服务器发送初始下载请求;经由所述多个通信链路在下载器处从所述多个服务器接收与数据文件相关联的数据;在下载器经由所述多个通信链路从所述多个服务器接收数据之后,更新关于所述多个通信链路的质量的信息;基于更新的关于所述多个通信链路的质量的信息,确定对于所述多个服务器的后续下载请求;和利用下载器向所述多个服务器发送后续下载请求。
EEE(9).根据EEE(8)所述的方法,其中所述初始下载请求包括针对所述多个服务器中的每一个的一个请求。
EEE(10).根据EEE(8)或EEE(9)所述的方法,进一步包括:基于更新的关于所述多个通信链路的质量的信息,检测包括在多个服务器中的欠负载的服务器;和仅向包括在多个服务器中的欠负载的服务器发送后续下载请求。
EEE(11).根据EEE(8)到EEE(10)中任一项所述的方法,其中所述初始下载请求包括对于所述多个服务器中包括的特定服务器的向所述下载器发送第一数量的数据的请求,其中所述后续下载请求包括所述特定服务器向所述下载器发送第二数量的数据的请求,并且其中所述第二数量不同于所述第一数量。
EEE(12).根据EEE(11)所述的方法,进一步包括:基于关于所述多个通信链路的质量的预定信息,确定所述特定服务器的初始服务器负载,基于初始服务器负载确定第一数量的数据,基于更新的关于所述多个通信链路的质量的信息,确定所述特定服务器的更新的服务器负载,以及基于更新的服务器负载确定第二数量的数据。
EEE(13).根据EEE(11)所述的方法,进一步包括:确定初始加载请求;基于初始加载请求和关于多个通信链路质量的预定信息来确定初始下载完成时间;基于初始下载完成时间和关于多个通信链路质量的预定信息,确定特定服务器的初始服务器负载;和基于初始服务器负载确定第一数量的数据。
EEE(14).根据EEE(13)所述的方法,进一步包括:基于更新的关于多个通信链路的质量的信息来确定更新的下载完成时间;基于更新的下载完成时间和更新的关于多个通信链路的质量的信息,确定特定服务器的更新的服务器负载;和基于更新的服务器负载确定第二数量的数据。
EEE(15).根据EEE(8)到EEE(14)中任一项所述的方法,其中所述初始下载请求包括对于所述多个服务器中包括的特定服务器的向所述下载器发送一定量的数据的请求,其中,所述后续下载请求包括对于所述特定服务器的停止向所述下载器发送数据的下载终止请求,并且其中,所述方法还包括:确定所述特定服务器的服务器完成时间,以及在服务器完成时间之前向特定服务器发送下载终止请求。
EEE(16).根据EEE(15)所述的方法,进一步包括:确定特定服务器的往返时间;和在服务器完成时间之前少于往返时间的一次迭代的情况下向特定服务器发送下载终止请求。
EEE(17).根据EEE(8)到EEE(16)中任一项所述的方法,其中所述初始下载请求包括对于所述多个服务器中包括的特定服务器的将所述特定服务器的输出缓冲器的大小设置为第一值的请求,并且其中所述后续下载请求包括对于所述特定服务器的将所述输出缓冲器的大小设置为小于所述第一值的第二值的请求。
EEE(18).根据EEE(17)所述的方法,进一步包括:在下载器从多个服务器接收到大于大数阈值的数据量之后,向多个服务器发送后续下载请求。
EEE(19).根据EEE(8)到EEE(18)中任一项所述的方法,其中关于所述多个通信链路的质量的信息包括带宽和等待时间。
EEE(20).一种存储指令的非暂时性计算机可读介质,当指令被计算机的电子处理器执行时,使得计算机执行包括根据EEE(8)到EEE(19)中任一项的方法的操作。

Claims (23)

1.一种用于多服务器通信***中的下载控制的装置,包括:
下载器,经由多个通信链路耦合到多个服务器;和
控制器,被配置为基于关于所述多个通信链路的质量的预定信息,确定对于所述多个服务器的初始下载请求,
通过下载器向所述多个服务器发送初始下载请求,
在下载器经由所述多个通信链路从所述多个服务器接收到与数据文件相关联的数据之后,更新关于所述多个通信链路的质量的信息,
基于更新的关于所述多个通信链路的质量的信息,确定对于所述多个服务器的后续下载请求,以及
经由下载器向所述多个服务器发送后续下载请求,
其中,所述初始下载请求包括对于所述多个服务器中包括的特定服务器的将所述特定服务器的输出缓冲器的大小设置为第一值的请求,
其中所述控制器进一步配置为:
当下载器已经从所述多个服务器接收到比为了解码数据文件而请求的有用编码符号的数量减去小的正整数大的数据量时,确定下载几乎完成,
如果控制器确定下载几乎完成,则向所述多个服务器发送后续下载请求,其中所述后续下载请求包括对于所述特定服务器的将所述输出缓冲器的大小设置为小于所述第一值的第二值的请求。
2.根据权利要求1所述的装置,其中,所述初始下载请求包括对于所述多个服务器中的每一个的一个请求。
3.根据权利要求1所述的装置,其中所述初始下载请求包括对于所述多个服务器中包括的特定服务器的向所述下载器发送第一数量的数据的请求,其中所述后续下载请求包括对于所述特定服务器的向所述下载器发送第二数量的数据的请求,并且其中所述第二数量不同于所述第一数量。
4.根据权利要求3所述的装置,其中,所述控制器还被配置为
基于关于所述多个通信链路的质量的预定信息,确定所述特定服务器的初始服务器负载,
基于初始服务器负载确定所述第一数量的数据,
基于更新的关于所述多个通信链路的质量的信息,确定所述特定服务器的更新的服务器负载,以及
基于更新的服务器负载确定所述第二数量的数据。
5.根据权利要求1所述的装置,其中,所述初始下载请求包括对于所述多个服务器中包括的特定服务器的向所述下载器发送一定量的数据的请求,其中,所述后续下载请求包括对于所述特定服务器的停止向所述下载器发送数据的下载终止请求,并且其中,所述控制器还被配置为
确定所述特定服务器的服务器完成时间,以及
在服务器完成时间之前向特定服务器发送下载终止请求。
6.根据权利要求1-5中任一项所述的装置,其中,关于所述多个通信链路的质量的信息包括带宽和等待时间。
7.根据权利要求1所述的装置,其中所述控制器进一步配置为:
基于更新的关于所述多个通信链路的质量的信息,检测包括在所述多个服务器中的欠负载的服务器;和
仅向包括在所述多个服务器中的欠负载的服务器发送后续下载请求。
8.根据权利要求3所述的装置,其中所述控制器进一步配置为:
确定初始加载请求;
基于初始加载请求和关于所述多个通信链路的质量的预定信息来确定初始下载完成时间;
基于初始下载完成时间和关于所述多个通信链路的质量的预定信息,确定特定服务器的初始服务器负载;和
基于初始服务器负载确定所述第一数量的数据。
9.根据权利要求8所述的装置,其中所述控制器进一步配置为:
基于更新的关于所述多个通信链路的质量的信息来确定更新的下载完成时间;
基于更新的下载完成时间和更新的关于所述多个通信链路的质量的信息,确定特定服务器的更新的服务器负载;和
基于更新的服务器负载确定所述第二数量的数据。
10.根据权利要求5所述的装置,其中所述控制器进一步配置为:
确定特定服务器的往返时间;和
在服务器完成时间之前少于往返时间的一次迭代的情况下向特定服务器发送下载终止请求。
11.一种用于多服务器通信***中的下载控制的方法,包括:
基于关于将多个服务器耦合到下载器的多个通信链路的质量的预定信息,确定对于所述多个服务器的初始下载请求;
利用下载器向所述多个服务器发送初始下载请求;
经由所述多个通信链路在下载器处从所述多个服务器接收与数据文件相关联的数据;
在下载器经由所述多个通信链路从所述多个服务器接收数据之后,更新关于所述多个通信链路的质量的信息;
基于更新的关于所述多个通信链路的质量的信息,确定对于所述多个服务器的后续下载请求;和
利用下载器向所述多个服务器发送后续下载请求,
其中,所述初始下载请求包括对于所述多个服务器中包括的特定服务器的将所述特定服务器的输出缓冲器的大小设置为第一值的请求,
所述方法进一步包括:
当下载器已经从所述多个服务器接收到比为了解码数据文件而请求的有用编码符号的数量减去小的正整数大的数据量时,确定下载几乎完成,
如果确定下载几乎完成,则向所述多个服务器发送后续下载请求,其中所述后续下载请求包括对于所述特定服务器的将所述输出缓冲器的大小设置为小于所述第一值的第二值的请求。
12.根据权利要求11所述的方法,其中所述初始下载请求包括针对所述多个服务器中的每一个的一个请求。
13.根据权利要求11所述的方法,进一步包括:
基于更新的关于所述多个通信链路的质量的信息,检测包括在所述多个服务器中的欠负载的服务器;和
仅向包括在所述多个服务器中的欠负载的服务器发送后续下载请求。
14.根据权利要求11所述的方法,其中所述初始下载请求包括对于所述多个服务器中包括的特定服务器的向所述下载器发送第一数量的数据的请求,其中所述后续下载请求包括所述特定服务器向所述下载器发送第二数量的数据的请求,并且其中所述第二数量不同于所述第一数量。
15.根据权利要求14所述的方法,进一步包括:
基于关于所述多个通信链路的质量的预定信息,确定所述特定服务器的初始服务器负载,
基于初始服务器负载确定所述第一数量的数据,
基于更新的关于所述多个通信链路的质量的信息,确定所述特定服务器的更新的服务器负载,以及
基于更新的服务器负载确定所述第二数量的数据。
16.根据权利要求14所述的方法,进一步包括:
确定初始加载请求;
基于初始加载请求和关于所述多个通信链路的质量的预定信息来确定初始下载完成时间;
基于初始下载完成时间和关于所述多个通信链路的质量的预定信息,确定特定服务器的初始服务器负载;和
基于初始服务器负载确定所述第一数量的数据。
17.根据权利要求16所述的方法,进一步包括:
基于更新的关于所述多个通信链路的质量的信息来确定更新的下载完成时间;
基于更新的下载完成时间和更新的关于所述多个通信链路的质量的信息,确定特定服务器的更新的服务器负载;和
基于更新的服务器负载确定所述第二数量的数据。
18.根据权利要求11所述的方法,其中所述初始下载请求包括对于所述多个服务器中包括的特定服务器的向所述下载器发送一定量的数据的请求,其中,所述后续下载请求包括对于所述特定服务器的停止向所述下载器发送数据的下载终止请求,并且其中,所述方法还包括
确定所述特定服务器的服务器完成时间,以及
在服务器完成时间之前向特定服务器发送下载终止请求。
19.根据权利要求18所述的方法,进一步包括:
确定特定服务器的往返时间;和
在服务器完成时间之前少于往返时间的一次迭代的情况下向特定服务器发送下载终止请求。
20.根据权利要求11-19中任一项所述的方法,其中关于所述多个通信链路的质量的信息包括带宽和等待时间。
21.一种存储指令的非暂时性计算机可读介质,当指令被计算机的电子处理器执行时,使得计算机执行包括根据权利要求11-20中任一项的方法的操作。
22.一种用于多服务器通信***中的下载控制的装置,包括:
处理器,
非暂时性计算机可读介质,其存储指令,当指令被所述处理器执行时,使得所述装置执行包括根据权利要求11-20中任一项所述的方法的操作。
23.一种用于多服务器通信***中的下载控制的装置,包括用于执行根据权利要求11-20中任一项所述的方法的部件。
CN202080015055.3A 2019-03-06 2020-03-04 多服务器通信***中的下载控制 Active CN113454934B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410232386.2A CN118118128A (zh) 2019-03-06 2020-03-04 多服务器通信***中的下载控制

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201962814697P 2019-03-06 2019-03-06
US62/814,697 2019-03-06
US202062984484P 2020-03-03 2020-03-03
US62/984,484 2020-03-03
PCT/US2020/020990 WO2020180988A1 (en) 2019-03-06 2020-03-04 Download control in multi-server communication system

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202410232386.2A Division CN118118128A (zh) 2019-03-06 2020-03-04 多服务器通信***中的下载控制

Publications (2)

Publication Number Publication Date
CN113454934A CN113454934A (zh) 2021-09-28
CN113454934B true CN113454934B (zh) 2024-04-05

Family

ID=70058508

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202410232386.2A Pending CN118118128A (zh) 2019-03-06 2020-03-04 多服务器通信***中的下载控制
CN202080015055.3A Active CN113454934B (zh) 2019-03-06 2020-03-04 多服务器通信***中的下载控制

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202410232386.2A Pending CN118118128A (zh) 2019-03-06 2020-03-04 多服务器通信***中的下载控制

Country Status (5)

Country Link
US (2) US11671485B2 (zh)
EP (2) EP4221014A1 (zh)
JP (1) JP7163510B2 (zh)
CN (2) CN118118128A (zh)
WO (1) WO2020180988A1 (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011004219A1 (en) * 2009-07-07 2011-01-13 Nokia Corporation Method and apparatus for scheduling downloads
CN102090044A (zh) * 2008-07-10 2011-06-08 苹果公司 调节从服务器到客户端设备的数据文件的下载的***和方法
WO2013040594A1 (en) * 2011-09-16 2013-03-21 Qualcomm Incorporated Systems and methods for network quality estimation, connectivity detection, and load management
CN103891207A (zh) * 2011-09-16 2014-06-25 高通股份有限公司 用于网络质量估计、连接性检测以及负载管理的***和方法
CN105144738A (zh) * 2013-06-06 2015-12-09 英特尔公司 用于dash媒体流传输的管理器

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6985945B2 (en) * 2000-12-07 2006-01-10 Ipass, Inc. Service quality monitoring process
JP3676330B2 (ja) 2002-08-09 2005-07-27 エヌ・ティ・ティ・コムウェア株式会社 コンテンツ配信サーバ及びコンテンツ配信方法ならびにプログラム
US8272020B2 (en) 2002-08-17 2012-09-18 Disney Enterprises, Inc. System for the delivery and dynamic presentation of large media assets over bandwidth constrained networks
US7461319B2 (en) 2003-04-04 2008-12-02 Sun Microsystems, Inc. System and method for downloading files over a network with real time verification
US20100011093A1 (en) 2008-07-14 2010-01-14 Limelight Networks, Inc. Multiple identity download manager
US7631098B2 (en) 2004-06-08 2009-12-08 International Business Machines Corporation Method, system and program product for optimized concurrent data download within a grid computing environment
US8015491B2 (en) 2006-02-28 2011-09-06 Maven Networks, Inc. Systems and methods for a single development tool of unified online and offline content providing a similar viewing experience
JP2009164862A (ja) 2008-01-07 2009-07-23 Hitachi Ltd コンテンツ受信装置、コンテンツ送信装置、コンテンツ送受信装置
US20100057884A1 (en) 2008-05-30 2010-03-04 Jason Brownell Browser-based download manager
US8239495B2 (en) 2009-11-02 2012-08-07 Broadcom Corporation Media player with integrated parallel source download technology
US8897741B2 (en) * 2009-11-13 2014-11-25 William J. Johnson System and method for mobile device usability by locational conditions
US8589565B2 (en) 2010-05-24 2013-11-19 Microsoft Corporation Client-server session parallelism
US8719381B2 (en) 2010-10-05 2014-05-06 Edgecast Networks, Inc. Reconfigurable download manager
US20120143986A1 (en) 2010-11-30 2012-06-07 Rovi Technologies Corporation Systems and methods for downloading by different processes
US9118637B2 (en) 2011-03-09 2015-08-25 Arris Enterprises, Inc. Dual-mode download manager
JP5690224B2 (ja) 2011-06-10 2015-03-25 日本電信電話株式会社 コンテンツ優先転送方法、およびコンテンツ優先転送ゲートウェイ
US20130246575A1 (en) * 2011-09-16 2013-09-19 Qualcomm Incorporated Systems and methods for network quality estimation, connectivity detection, and load management
US9614907B2 (en) 2013-01-04 2017-04-04 Bittorrent, Inc. Expediting content retrieval using peer-to-peer networks
JP6305738B2 (ja) 2013-11-27 2018-04-04 エヌ・ティ・ティ・コミュニケーションズ株式会社 メディア再生制御装置、メディア再生制御方法、及びプログラム
US11076187B2 (en) * 2015-05-11 2021-07-27 Mediamelon, Inc. Systems and methods for performing quality based streaming
US10582266B2 (en) * 2015-10-07 2020-03-03 Vasona Networks Inc. Rating video-download quality
US9745154B1 (en) 2016-02-25 2017-08-29 Lexmark International Inc. Removable media tray having a high latching force and a low opening force
US20180116005A1 (en) * 2016-10-26 2018-04-26 Qualcomm Incorporated Data download handover from device to device

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102090044A (zh) * 2008-07-10 2011-06-08 苹果公司 调节从服务器到客户端设备的数据文件的下载的***和方法
WO2011004219A1 (en) * 2009-07-07 2011-01-13 Nokia Corporation Method and apparatus for scheduling downloads
WO2013040594A1 (en) * 2011-09-16 2013-03-21 Qualcomm Incorporated Systems and methods for network quality estimation, connectivity detection, and load management
CN103891207A (zh) * 2011-09-16 2014-06-25 高通股份有限公司 用于网络质量估计、连接性检测以及负载管理的***和方法
CN105144738A (zh) * 2013-06-06 2015-12-09 英特尔公司 用于dash媒体流传输的管理器

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A Control-Theoretic Approach to Rate Adaption for DASH Over Multiple Content Distribution Servers;Chao Zhou;《IEEE》;全文 *
MuIti-Server Content Distribution Scheme using Erasure Codes;Taichi FUJIE;《IEEE》;全文 *
TCP-ROME: A transport-layer parallel streaming protocol for real-time online multimedia environments;Ju-Won Park;《IEEE》;全文 *

Also Published As

Publication number Publication date
EP3935767B1 (en) 2023-04-12
CN118118128A (zh) 2024-05-31
JP2023052726A (ja) 2023-04-12
EP3935767A1 (en) 2022-01-12
US11671485B2 (en) 2023-06-06
JP7163510B2 (ja) 2022-10-31
WO2020180988A1 (en) 2020-09-10
JP2022524733A (ja) 2022-05-10
US20220201068A1 (en) 2022-06-23
EP4221014A1 (en) 2023-08-02
US20230328133A1 (en) 2023-10-12
CN113454934A (zh) 2021-09-28

Similar Documents

Publication Publication Date Title
US9060207B2 (en) Adaptive video streaming over a content delivery network
CN110087109B (zh) 视频码率自适应方法、装置、电子设备及存储介质
US12003797B2 (en) Method and system for adaptive data transmission
US20150127775A1 (en) Downstream Bandwidth Aware Adaptive Bit Rate Selection
EP2834746B1 (en) Pipelining for parallel network connections to transmit a digital content stream
CN104320424A (zh) 一种流媒体分片下载方法和装置
CN113315716A (zh) 拥塞控制模型的训练方法和设备及拥塞控制方法和设备
KR101698038B1 (ko) 중복 인코딩 컨텐츠 데이터 기능의 선택적 활용을 구현하는 전달 가속기
KR20150045346A (ko) 이동 통신 시스템에서 멀티미디어 데이터 송수신 방법 및 장치
CN104022845A (zh) 调整数据块比特率的方法、装置和***
US9414259B2 (en) Method and system for managing quality of service policies
CN113454934B (zh) 多服务器通信***中的下载控制
CA3168479C (en) Method for playing on a player of a client device a content streamed in a network
GB2603852A (en) Performing network congestion control utilizing reinforcement learning
JP7532471B2 (ja) マルチサーバ通信システムにおけるダウンロード制御
JP2022525217A (ja) 複数のコンテンツデリバリネットワークと通信可能なクライアント装置によるデータセグメントの取得方法
CN110710220B (zh) 用于流传输数据的方法和装置
JP7211845B2 (ja) 動画セグメントの画質及び経路を判定する判定サーバ及びプログラム
KR102531647B1 (ko) 환경인지 기반 abp 성능 개선을 위한 방법, 컴퓨터 시스템, 및 컴퓨터 프로그램
KR102341322B1 (ko) 실시간 라이브 스트리밍에서의 abp 동작 개선을 위한 방법, 시스템, 및 컴퓨터 판독가능한 기록 매체
US20230060948A1 (en) Methods for Reliable Low Latency Data Delivery Using Erasure Codes and Feedback
EP3142335A1 (en) Method and cache for caching multimedia content
JP6895354B2 (ja) 通信中継装置
JP6850618B2 (ja) 中継装置および中継方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Yu Mingchao

Inventor after: O. Onel

Inventor after: T. F. Antioch

Inventor after: 5. Nagshen

Inventor after: J.M. Claude

Inventor after: Reed Mark C.

Inventor after: J. Redmiller

Inventor after: E Osborn

Inventor before: Yu Mingchao

Inventor before: O. Onel

Inventor before: T. F. Antioch

Inventor before: 5. Nagshen

Inventor before: J.M. Claude

Inventor before: Reed Mark C.

Inventor before: J. Redmiller

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant