CN110192394A - 管理内容传送期间的拥塞响应 - Google Patents

管理内容传送期间的拥塞响应 Download PDF

Info

Publication number
CN110192394A
CN110192394A CN201780084079.2A CN201780084079A CN110192394A CN 110192394 A CN110192394 A CN 110192394A CN 201780084079 A CN201780084079 A CN 201780084079A CN 110192394 A CN110192394 A CN 110192394A
Authority
CN
China
Prior art keywords
segment
congestion window
size
packet loss
initial size
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
Application number
CN201780084079.2A
Other languages
English (en)
Other versions
CN110192394B (zh
Inventor
M·尼尔森
S·阿普尔比
Y·胡梅达
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.)
British Telecommunications PLC
Original Assignee
British Telecommunications PLC
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 British Telecommunications PLC filed Critical British Telecommunications PLC
Publication of CN110192394A publication Critical patent/CN110192394A/zh
Application granted granted Critical
Publication of CN110192394B publication Critical patent/CN110192394B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/12Avoiding congestion; Recovering from congestion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/27Evaluation or update of window size, e.g. using information derived from acknowledged [ACK] packets
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/37Slow start
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/80Responding to QoS
    • 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/2402Monitoring of the downstream path of the transmission network, e.g. bandwidth available
    • 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/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/643Communication protocols
    • H04N21/64322IP
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6582Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/65Transmission of management data between client and server
    • H04N21/658Transmission by the client directed to the server
    • H04N21/6583Acknowledgement
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments

Abstract

一种通过网络传送媒体内容的方法,所述媒体内容包括多个时间片段,其中,各时间片段包括多个数据分组,所述方法包括以下步骤:选择第一拥塞窗口的初始大小;使用第一拥塞窗口传送第一片段的多个数据分组,第一拥塞窗口的初始大小用于在第一片段传送的持续时间内控制第一拥塞窗口的大小;测量传送第一片段期间的数据分组丢失;根据所测得的第一片段的分组丢失来确定第二拥塞窗口的初始大小;以及使用第二拥塞窗口传送第二片段,第二拥塞窗口的初始大小用于在第二片段传送的持续时间内控制第二拥塞窗口的大小。

Description

管理内容传送期间的拥塞响应
技术领域
本发明涉及一种用于管理通过网络传送内容数据序列期间对分组丢失的拥塞响应的方法和装置。
背景技术
对通过网络传送媒体内容(例如,音频和/或视频内容)的需求不断增加。
通过网络传送媒体内容流的一种方法是将媒体内容流分段为多个时间片段。然后,各片段可以以一系列数据分组的形式通过网络进行传送。将内容流分段为时间片段的一类技术是自适应比特率传送。
在自适应比特率传送中,媒体内容流以多个比特率分别进行编码以产生多个编码流。如果媒体内容包括音频和视频内容(使得媒体流包括音频流和视频流),则可以以多个比特率分别对音频和视频流中的每一个进行编码以产生多个编码视频流和多个编码音频流。各编码媒体流被分段为多个时间片段。例如,每个时间片段可以包含2到15秒的解码媒体内容。媒体内容的分段可以在对媒体流进行编码之前或之后发生。然后,媒体内容的片段作为一系列数据分组通过网络被传送到接收器设备。
传送到接收器的各媒体内容片段的比特率可以选自用来对内容进行编码的比特率的集合。因此,接收器设备可以接收到以不同的编码比特率编码的媒体内容片段。该比特率可以由接收器请求或由发送器选择。
与通过网络传送分段媒体内容相关联的问题是给定片段的传送时间可能是高度可变的。虽然自适应比特率传送可以操作以实时调整传送的内容流的质量(即,编码比特率)以考虑可用的网络资源,但是它仍经常遭受给定的内容片段的不可预测和可变的传送时间。这种可变性可能部分地源于用于传送媒体内容的通信协议的性质。
例如,通过如互联网的分布式计算机网络传送媒体内容通常实现使用TCP作为传输协议。
TCP被设计成通过网络实现可靠的数据传输,目的是避免对竞争TCP业务流的网络吞吐量产生不利影响。根据TCP协议,重传传输中丢失的分组以试图实现可靠传送。另外,TCP协议实现拥塞响应或拥塞避免方案。作为该方案的一部分,在假设分组丢失是由网络上的拥塞引起的情况下,在检测到分组丢失之后,通常降低通过网络从发送器到接收器的分组的传输速率。
可以通过称为拥塞窗口(该拥塞窗口在本文中被表示为CWND)的参数来控制分组到网络中的传输速率。拥塞窗口可以指示在任何给定时间已被传送到网络中但尚未被接收器确认的最大可允许分组数量。TCP发送器(例如,媒体内容服务器)可以针对各接收器(例如,内容客户端)连接维持拥塞窗口。在检测到给定连接上的分组丢失之后,TCP发送器通常采取快速动作以显著减小拥塞窗口的大小,以便降低该连接的传输速率。这转而导致在传送给定内容片段期间分组的传输速率是可变的,并且高度取决于在传送该片段期间遭受的分组丢失率。
如果一段内容的传送时间是可变且不可预测的,则接收器处的媒体播出的性能可能受到缓冲延迟和播出停顿(stalling)的不利影响。使这些性能缺陷的风险最小化的一种方法是在接收器内包括大量缓冲。然而,由于充分填充缓冲器所需的时间,这种方法可能转而引发高端到端延迟的性能损失(performance penalty)。
发明内容
根据本公开的一个方面,提供了一种通过网络传送媒体内容的方法,所述媒体内容包括多个时间片段,其中,各时间片段包括多个数据分组,所述方法包括以下步骤:
选择第一拥塞窗口的初始大小;
使用第一拥塞窗口传送第一片段的多个数据分组,第一拥塞窗口的初始大小用于在第一片段传送的持续时间内控制第一拥塞窗口的大小;
测量传送第一片段期间的数据分组丢失;
根据所测得的第一片段的分组丢失来确定第二拥塞窗口的初始大小;以及
使用第二拥塞窗口传送第二片段,第二拥塞窗口的初始大小用于在第二片段传送的持续时间内控制第二拥塞窗口的大小。
在第一片段传送的持续时间内,第一拥塞窗口的大小可以等于其初始大小。
第一拥塞窗口的大小可以在整个传送第一片段期间根据分组丢失而变化,并且在传送第一片段的持续时间内被控制为大于或等于其初始大小。
使用第一拥塞窗口传送第一片段的步骤可以包括在没有分组丢失的时段期间从第一拥塞窗口的初始大小开始增加第一拥塞窗口的大小,并且在传送第一片段期间响应于每次分组丢失将第一拥塞窗口的大小重置为其初始大小。
可以根据第一片段的大小和用于传送第一片段的指定时间间隔来选择第一拥塞窗口的初始大小。
第一拥塞窗口的初始大小CWND1可以大于或等于其中,RTT是往返时间,D是第一片段的数据大小,以及ΔT1是传送第一片段的指定时间间隔。
可以根据所测得的在第一片段之前传送的前面片段的分组丢失率来选择第一拥塞窗口的初始大小。
该方法还可以包括:根据所测得的分组丢失计算传送第一片段期间的分组丢失率;以及根据所计算出的第一片段的分组丢失率来确定第二拥塞窗口的初始大小。
可以根据所计算出的仅针对第一片段的分组丢失率来确定第二拥塞窗口的初始大小。
可以根据所计算出的第一片段和在第一片段之前传送的一个或更多个前面片段的分组丢失率来确定第二拥塞窗口的初始大小。
确定第二拥塞窗口的初始大小的步骤可以包括:根据所计算出的第一片段的分组丢失率,确定用于传送第二片段的目标比特率,以及根据目标比特率确定第二拥塞窗口的初始大小。
可以根据所计算出的第一片段的分组丢失率和在第一片段之前传送的一个或更多个前面片段的分组丢失率来确定目标比特率。
可以根据所计算出的第一片段和在第一片段之前传送的一个或更多个前面片段的分组丢失率的平均值来确定用于传送第二片段的目标比特率。
用于传送第二片段的目标比特率可以大于或等于在指定时间间隔ΔT2内传送第二片段所需的比特率。
根据本公开的第二方面,提供了一种用于通过网络传送媒体内容的服务器,所述媒体内容包括多个时间片段,其中,各时间片段包括多个数据分组,所述服务器包括:
拥塞窗口单元,该拥塞窗口单元被配置成选择第一拥塞窗口的初始大小;
分派单元,该分派单元被配置成使用第一拥塞窗口传送第一片段的多个数据分组,所述分派单元还被配置成在所述第一片段传送的持续时间内使用所述第一拥塞窗口的初始大小来控制所述第一拥塞窗口的大小;以及
分组丢失检测器,该分组丢失检测器被配置成测量传送第一片段期间的分组丢失;
其中,所述拥塞窗口单元还被配置成根据所测得的第一片段的分组丢失来确定第二拥塞窗口的初始大小;并且所述分派单元还被配置成使用第二拥塞窗口传送第二片段,并在第二片段传送的持续时间内使用第二拥塞窗口的初始大小来控制第二拥塞窗口的大小。
在第一片段的传送持续时间内,第一拥塞窗口的大小可以等于其初始大小。
分派单元可以被配置成在第一片段的整个传送过程中根据分组丢失来改变第一拥塞窗口的大小,并且在第一片段的传送持续时间内将第一拥塞窗口的大小保持为大于或等于其初始大小。
所述分派单元可以被配置成在没有分组丢失的时段期间从第一拥塞窗口的初始大小开始增加第一拥塞窗口的大小,并且在传送第一片段期间响应于每次分组丢失将第一拥塞窗口的大小重置为其初始大小。
拥塞窗口单元可以被配置成根据第一片段的大小和传送第一片段的指定时间间隔来选择第一拥塞窗口的初始大小。
第一拥塞窗口的初始大小CWND1可以大于或等于其中,RTT是往返时间,D是第一片段的数据大小,以及ΔT1是传送第一片段的指定时间间隔。
拥塞窗口单元可以被配置成根据所测得的在第一片段之前传送的前面片段的分组丢失率来选择第一拥塞窗口的初始大小。
分组丢失检测器还被配置成根据所测得的分组丢失计算传送第一片段期间的分组丢失率;并且拥塞窗口单元被配置成根据所计算出的第一片段的分组丢失率来确定第二拥塞窗口的初始大小。
拥塞窗口单元可以被配置成根据所计算出的仅针对第一片段的分组丢失率来确定第二拥塞窗口的初始大小。
拥塞窗口单元可以被配置成根据所计算出的第一片段和在第一片段之前传送的一个或更多个前面片段的分组丢失率来确定第二拥塞窗口的初始大小。
服务器还可以包括比特率计算器,该比特率计算器被配置成根据所计算出的第一片段的分组丢失率来确定用于传送第二片段的目标比特率;并且拥塞窗口被配置成根据目标比特率确定第二拥塞窗口的初始大小。
比特率计算器可以被配置成根据所计算出的第一片段的分组丢失率和在第一片段之前传送的一个或更多个前面片段的分组丢失率来确定目标比特率。
比特率计算器可以被配置成根据所计算出的第一片段和在第一片段之前传送的一个或更多个前面片段的分组丢失率的平均值来确定目标比特率。
比特率计算器可以被配置成将用于传送第二片段的目标比特率设置为大于或等于在指定时间间隔ΔT2内传送第二片段所需的比特率。
附图说明
下面将参照附图通过示例的方式描述本发明。在附图中:
图1示出了通信网络的示例;
图2示出了形成图1中的网络的一部分的服务器的示例;
图3示出了形成图1中的网络的一部分的客户端的示例;
图4是通过网络传送媒体内容的方法的步骤的流程图;以及
图5是针对传统TCP实现和根据本公开的示例的内容片段传送期间拥塞窗口的大小的示意图。
具体实施方式
本公开的示例涉及通过网络传送媒体内容的方法。媒体内容可以是视频内容(例如,以视频序列的形式)、音频内容(例如,以音频序列的形式)或者它可以包括音频和视频内容(即,媒体内容可以是多媒体内容)。媒体内容包括多个时间片段。各片段可以包含针对较短播出持续时间的数据(例如,2至15秒的数据)。每段媒体内容的数据分组的数量取决于时间片段的持续时间、编码比特率以及各数据分组的大小,并且可以在几十个数据分组到数千个数据分组的范围内变化。例如,对于持续时间10s的时间片段、1MBit/s的编码比特率和1500字节的数据分组大小,各媒体内容片段将包括833个数据分组(10×1000000/(1500×8))。
使用关联的第一拥塞窗口来传送媒体内容的第一片段(例如,从发送器设备传送到接收器设备)。为简洁起见,第一拥塞窗口在本文中可以被表示为CWND1。在传送内容的第一片段之前,选择第一拥塞窗口的初始大小。该初始大小用于在第一片段传送的持续时间内控制第一拥塞窗口的大小。也就是说,第一拥塞窗口的初始大小用于在整个第一片段的传送过程中控制第一拥塞窗口大小。例如,第一拥塞窗口的大小可以是恒定的并且等于传送第一片段的持续时间的初始大小(即,与任何分组丢失无关)。另选地,第一拥塞窗口的大小可以在没有检测到分组丢失的时段期间从其初始值增加,并且可以响应于在传送第一片段期间的每个检测到的分组丢失而被重置为其初始大小。
测量在传送第一片段期间承受的分组丢失。该所测得的分组丢失用于确定用于传送第二内容片段的第二拥塞窗口的初始大小。然后,使用关联的第二拥塞窗口通过网络传送第二内容片段,其中,类似于第一片段,第二拥塞窗口的初始大小用于确定第二片段传送的持续时间内第二拥塞窗口的后续大小。
第一片段和第二片段可以是时间上连续的片段,尽管它们不是必须的。例如,第一片段和第二片段可以是由一个或更多个时间中间片段分隔开的内容数据序列的非连续片段。此外,使用“第一”和“第二”来引用内容片段并不用于暗示序列中片段的时间顺序:第一片段在序列内可以在第二片段之前或之后。
通过使用拥塞窗口的初始大小来控制整个内容片段的传送过程中的窗口的后续大小,本文中描述的实施方式旨在使在给定内容片段的传送期间对分组丢失的全部拥塞响应与分组丢失事件本身分离。由于在传送片段期间承受的分组丢失量通常是不可预测和可变的,因此在传送给定内容片段期间将拥塞响应与分组丢失事件分离使得该片段的传送时间更可预测且变化更小。此外,因为所测得的在传送第一片段期间承受的分组丢失被用于确定用于传送第二片段的拥塞窗口的大小(以及因此传输速率),所以与所承受的分组丢失量相当的拥塞响应可以在比一个片段更长的时间范围内实现。这意味着,从长远来看,在支配网络的可用带宽而损害竞争业务的同时,媒体内容可以以更加可预测的片段传送时间通过网络进行传递,从而使得本文描述的示例实施方式适合与TCP一起使用。
现在将描述本公开的示例实施方式。为了清楚起见,在以下示例中,根据使用自适应比特率传送的HTTP和底层TCP协议通过网络传送媒体内容。HTTP协议可以是例如HTTP自适应流传输协议,诸如,HTTP实时流传输(HLS)协议、MPEG-DASH、SmoothStreaming、AdobeHTTP动态流传输等。TCP协议可以是任何合适的协议,诸如,TCP Reno、TCP New Reno、TCPCubic、TCP Tahoe、TCP Vegas等。
图1示出了通信系统100的示例。该系统包括内容发送器(以服务器的形式)104和由通信网络106分隔开的多个接收器(以内容客户端的形式)108、110和112。网络106可以是无线网络、有线网络或有线和无线网络的组合。网络106可以是分布式计算网络(诸如,互联网)(或可以形成分布式计算网络的一部分)。
内容服务器104被示为通信地连接到内容生成器102。内容生成器102可以被配置成对媒体内容进行编码并将媒体内容传达到内容服务器104。如上所述,媒体内容可以包括视频和/或音频流。内容生成器102可以被配置成以多个不同的比特率分别对视频流进行编码,以生成各自以不同的比特率进行编码的多个编码视频流。视频内容可以例如根据ITU-TH.264标准进行编码,但是当然也可以使用其它标准。如果媒体内容另外还包括音频内容,则可以仅以单个比特率(以生成单个编码音频流)或以多个比特率对其进行编码以生成相应的编码音频流。用于编码音频流的标准的一个示例是MPEG-4HE AAC,但是当然可以另选地使用其它标准。内容生成器102还可以被配置成将媒体内容分段为多个离散的时间片段。如果媒体内容以多个比特率被编码,则可以对每个编码流进行分段。可以在编码之前或之后对该内容流或每个内容流进行分段。也就是说,可以对内容流进行分段,其中,以不同的比特率对每个得到的片段进行编码;或者可以对每个编码内容流进行分段来生成多个编码片段。
内容服务器104被配置成从内容生成器102接收媒体内容并且可以存储所接收到的内容。如上所述,可以对内容生成器102接收到的媒体内容进行编码和分段。内容服务器可以经由网络106将媒体内容传达或传送到客户端108、110和112中的一个或更多个。内容服务器104可以是视频流服务器,并且可以根据请求向客户端传送视频(和/或音频)内容。因此,客户端设备108、110和112可以用于从服务器104请求媒体内容。例如,客户端设备可以是适当配置的机顶盒、PC、膝上型电脑、智能电话、平板电脑、智能电视等。
在图2中更详细地示出了服务器104的示例。服务器包括输入接口202;数据存储器204和输出接口210。服务器还包括拥塞窗口单元212、连接到输出接口的分派单元214、分组丢失检测器216和比特率计算器218。分组丢失检测器可以连接到输出接口210,如该示例中所示。内容服务器104可以被配置成在输入接口202处从内容生成器接收编码内容片段并且将接收到的编码片段206存储在数据存储器204中。各内容片段可以与清单文件208相关联,清单文件208可以包含关于用来对相关联的内容片段进行编码的比特率的信息,以及关联的内容片段在服务器的存储器204中的存储位置的指示。各清单文件还可以可选地存储在关联的内容片段中编码的媒体内容的持续时间的指示。清单文件也可以存储在存储器204中。各内容片段作为一系列数据分组从服务器经由输出接口210进行发送。也就是说,各内容数据片段由多个数据分组组成。内容服务器104还可以经由输出接口210从服务器已向其发送数据分组的一个或更多个内容客户端接收确认分组。通信系统可以被布置成使得内容服务器接收针对通过网络成功传送到客户端的各数据分组的确认分组。下面将参照图4描述拥塞窗口单元212、分派单元214、分组丢失检测器216和比特率计算器218的操作。
在图3中更详细地示出了内容客户端(在这种情况下,客户端108)的示例。在该示例中,客户端108包括:输入接口302;状态处理和状态信息存储器304;客户端决策模块308;内容片段和清单存储器306以及媒体内容解码器,在该示例中是视频解码器310和音频解码器312的形式。
客户端108通过经由接口302向服务器104传送与所需内容片段相关联的清单文件的请求来发起对内容传送的请求。响应于从服务器104接收到所请求的清单文件,客户端108将该文件存储在内容片段和清单存储器306中。决策模块308对清单文件进行分析,并且作为响应,从服务器104以指定的编码比特率发出对内容片段的请求。该请求经由接口302从客户端108传达到服务器104。响应于接收到请求,服务器104通过网络106将所请求的内容片段传送到客户端108。客户端108通过其接口302接收(以一系列数据分组的形式的)内容片段并将其传递到内容片段和数据存储器306。接收到的内容片段被传递到媒体解码器310和312。解码器310和312对内容片段执行解码操作,并输出解码的媒体内容(即,解码的音频和/或视频内容),以呈现给用户。一旦内容片段已被解码,就可以将其从片段存储器306中移除。针对接收到的各数据分组,客户端108还可以通过网络106将确认分组发送回服务器。该确认分组可以经由客户端的接口302来发送。
状态处理和信息存储器304可以监视指示来自服务器104的媒体内容的传送的状态的一个或更多个状态参数。这些参数可以包括以下中的一项或更多项:在接口302处接收内容数据的速率;内容通过媒体解码器被解码并呈现给用户的速率;以及存储在片段和清单存储器306中的(尚未解码的)内容片段数据的量。
客户端决策模块308可以确定下一个请求的内容片段,并且根据对该片段的关联的清单文件的分析和由状态处理存储器304确定的状态参数来确定该片段的编码比特率。
由客户端108发出到服务器104的媒体内容请求可以是HTTP请求(例如,HTTPGET请求)。可以针对每个媒体数据片段发出请求。
尽管上面仅更详细地描述了客户端108,但是应当理解,客户端110和112可以具有与客户端108相同并且以类似的方式操作的组件。
现在将参照图4的流程图来描述根据本发明在通过通信网络106传送媒体数据的片段时服务器104的操作。在该示例中,服务器通过网络将媒体内容传送到客户端108。
将参照被称为‘第一片段’的一段内容来描述以下步骤。该第一片段不必是服务器与客户端之间的流传输会话中的第一个片段,并且可以指作为流传输会话的一部分传达的任何片段。第一片段可以是在实现的TCP协议已经完成其慢启动过程时或者在从服务器到客户端的流传输会话开始时发起的一些其它类似过程的情况下被调度用于传送到客户端的任何片段。该片段可能已经作为服务器与客户端之间的流传输会话的一部分被客户端中的一个(例如,客户端108)以上述方式请求传送。
在步骤400,将片段索引n设置为“1”以指代通过网络106传送到客户端的第一片段。
在步骤402,拥塞窗口单元212选择第一拥塞窗口的初始大小。第一拥塞窗口将用于通过网络106传送第一片段。片段n的拥塞窗口通常可以表示为CWND(n)。为清楚起见,将在该示例中提到的第一拥塞窗口表示为CWND1。如本文所使用的,拥塞窗口的大小可以根据分组的数量或根据字节来指定。
第一拥塞窗口的初始大小可以等于紧接在初始慢启动过程完成之后的拥塞窗口的大小。也就是说,拥塞窗口的初始大小可以等于TCP协议的拥塞避免阶段开始时的拥塞窗口的大小。
另选地,可以由拥塞窗口单元212根据第一片段的大小和用于传送第一片段的指定时间间隔来选择第一拥塞窗口的初始大小。第一片段的“大小”可以指第一片段中的数据量(例如,以比特、字节等为单位)。通过网络106将内容片段传送到客户端108的时间间隔可以由客户端指定。例如,客户端可以向内容片段的服务器请求添加期望传送该片段的时间的指示。另选地,可以由服务器104指定传送的时间间隔。服务器可以基于以最小延迟及时地将媒体内容作为整体传送到客户端108的考虑来指定用于传送的时间间隔。这种类型的内容传送(其中,服务器指定用于传送内容片段的时间间隔)可以被称为HTTP推送,其中,服务器104被称为实现HTTP推送机制。
为了了解如何基于用于传送第一片段的指定时间段来选择第一拥塞窗口的初始大小,考虑以下模型,在该模型中,可以通过网络106使用TCP协议实现的数据分组传送速率RTCP被近似为:
其中,CWND是拥塞窗口大小(以分组的数量或以字节为单位),RTT是往返时间(即,从分组的服务器到网络的发送的时刻与在该服务器处从客户端接收到该数据分组的确认的时刻的时间间隔)。因此,取决于用于定义拥塞窗口大小的单位,RTCP可以以每秒分组或每秒字节为单位。
如果D表示片段的大小(再次,就形成片段的字节或分组的数量而言),并且用于传送片段的时间间隔是ΔT1,则用于及时传送该片段的最小数据分组传送速率Rreq通过下式给出:
通过使等式(1)和(2)中的数据分组传送速率相等并且根据拥塞窗口大小重新安排,我们可以得出对拥塞窗口的大小的以下要求,以确保第一内容片段的及时传送:
因此,如果存在用于传送第一内容片段的指定时间间隔(由服务器或客户端),则可以根据等式(3)来选择第一拥塞窗口的初始大小。
一旦已经选择了第一拥塞窗口的初始大小,则在步骤404,服务器104使用第一拥塞窗口通过网络106将第一片段传送到客户端108。内容片段的传送受分派单元214控制,这可以使得内容片段的数据分组经由服务器的输出接口210通过网络进行传送。分派单元214还被配置成在第一片段传送的持续时间内(即,直到已经完成第一片段的传送为止)使用步骤402确定的第一拥塞窗口的初始大小来控制第一拥塞窗口的大小。
换句话说,在根据本公开的实施方式中,在传送第一内容片段期间的每个点处,根据在步骤402选择的第一拥塞窗口的初始大小的值来控制第一拥塞窗口的大小。即使在传送第一片段期间发生分组丢失也是如此,所述第一片段可能包括数百或数千个数据分组。分派单元214可以控制第一拥塞窗口的大小,使得在传送第一片段期间的分组丢失之后或响应于在传送第一片段期间的分组丢失,第一拥塞窗口的大小仅取决于第一拥塞窗口的初始大小。这与使用传统TCP实现的内容传送形成对比,在传统TCP实现中,在分组丢失之后,拥塞窗口的大小(或拥塞窗口的阈值大小)根据称为加性增乘性减的拥塞避免机制通常从其紧接在分组丢失之前的值大约减半。
相反,通过在整个第一片段的传送过程中使用拥塞窗口的初始大小来控制拥塞窗口的大小,并且在组成该片段的多个分组中的一个分组丢失之后不立即调整拥塞窗口,对TCP协议所需的数据分组丢失的拥塞响应可能会延迟,直到已经完成第一片段的传送为止。换句话说,可以避免(对于传统TCP实现来说是典型的)对分组丢失的快速响应-以及内容片段的传送时间的不可预测性的原因。
分派单元212可以在工作上以多种方式在传送第一片段期间控制第一拥塞窗口的大小。
在一个示例中,第一拥塞窗口的大小在第一片段传送的持续时间内是恒定的并且等于其初始大小。也就是说,分派单元212使得第一拥塞窗口的大小在传送第一片段的整个过程中保持恒定,而与在传送该片段的数据分组期间发生的任何分组丢失无关。如果根据等式(3)选择第一窗口大小的初始值,则该方法使得第一内容片段能够在指定的时间间隔内被传送到客户端108,而不管在传送该片段期间承受的分组丢失量。
在其它示例中,第一拥塞窗口的大小在第一片段的整个传送过程中可以根据在传送期间承受的分组丢失而变化。例如,第一拥塞窗口的大小可以在没有分组丢失的情况下在传送的时间段期间从其初始值增加,并且可以在每次检测到分组丢失之后由分派单元212进行重置。然而,不是将拥塞窗口的大小重置为紧接在分组丢失之前的值的一半(如在典型的TCP实现中通常所做的那样),而是在传送第一片段期间每次检测到分组丢失之后,分派单元212可以将第一拥塞窗口的大小重置为其初始大小(如在步骤402中所确定的)。因此,在传送第一片段期间的分组丢失之后,第一拥塞窗口的大小仅受第一拥塞窗口的初始大小控制。这避免了在通常在一些TCP拥塞控制方案中实现的加性增乘性减算法可能遇到的分组丢失之后拥塞窗口的大小的大幅减小。
分派单元212可以在无分组丢失的时段期间以加性方式增加拥塞窗口的大小,例如通过每个往返时间(即,在每个时间间隔等于在没有分组丢失的情况下经过的往返时间)将拥塞窗口的大小增加m个片段大小。m的值可以是任何合适的整数(例如,1、2、3等)。拥塞窗口的大小可以以其它方式增加。例如,每当在服务器104处从客户端108接收到确认消息时,拥塞窗口的大小可以增加m个片段大小。这将导致在没有检测到分组丢失的时段期间拥塞窗口的大小相对快速地增加。
图5中示出了在传送第一片段期间拥塞窗口的大小以及它与传统TCP实现相比较如何的图示。图表500的x轴是时间,并且y轴是第一拥塞窗口的大小。时间间隔ΔT表示传送第一片段的时间。时间T1、T2和T3表示在传送片段期间相应的分组丢失的时间。用于传送片段的拥塞窗口的初始大小被表示为S0
线502表示遵循诸如TCP New Reno的传统TCP实现的拥塞窗口的大小。在分组丢失之间的时段中,拥塞窗口的大小增加(例如,根据拥塞避免阶段)。在每次分组丢失之后,拥塞窗口的大小相对于紧接在分组丢失之前的大小减半。因此,紧接在时间T1处的分组丢失之前,拥塞窗口的大小是S1,并且紧接在分组丢失之后,大小减小到S1/2。在时间T2和T3处的分组丢失之后,拥塞窗口的大小分别从S2减小到S2/2以及从S3减小到S3/2。
线504表示在整个第一片段的传送过程中大小保持恒定的情况下的拥塞窗口的大小。线506表示在没有分组丢失的时段期间拥塞窗口的大小增加的情况下的拥塞窗口的大小,并且响应于每次分组丢失而被重置为其初始大小。可以看出,在每次分组丢失之后将拥塞窗口的大小重置为其初始大小限制了与传统TCP实现相比减小窗口的大小的量。另外,可以看出,根据本文描述的示例控制拥塞窗口的大小使得拥塞窗口的大小能够在第一段片传送的持续时间内保持在其初始大小或高于其初始大小。如果适当地选择初始大小,则这使得能够在预测时间或在预测时间之前传送完片段,而不管在传送片段期间经历的分组丢失。
在步骤404之后,完成将第一内容片段传送到客户端108。当服务器已经从客户端108接收到针对形成第一内容片段的各数据分组的确认消息时,服务器可以确定已经完成第一片段的传送。
在步骤406,测量在传送第一片段期间的分组丢失。分组丢失的测量由分组丢失检测器216执行,分组丢失检测器216可以被配置成检测每次分组丢失。分组丢失检测器216可以响应于观察到特定指示性事件而检测到已经发生分组丢失。这种指示性事件的一个示例是从客户端108接收到重复确认分组(即,包含相同序列号的确认消息)。如图2所示,分组丢失检测器216可以连接到接口210,以使检测器216能够检查在服务器104处接收的每个确认分组。检测器216可以检查每个接收到的确认分组的序列号,并且响应于检测到具有相同序列号的多个确认消息(例如,两个、三个或更多个),检测到已经发生分组丢失。分组丢失的指示性事件的另一示例是分组重传计时器的期满(称为‘超时’)。分组重传计时器可以被存储在服务器104中(图2中未示出),并且响应于发送分组而启动。分组重传计时器可以指定服务器在认为丢失和重新发送分组之前从客户端接收到分组确认的时间。可以响应于确认分组的接收而重置计时器。分组丢失检测器216可以连接到计时器,以使其能够检测计时器何时期满。
分组丢失检测器216可以被配置成存储指示何时发生片段传送期间的各分组丢失的记录。例如,对于每次检测到分组丢失,记录可以包括指示何时发生该丢失的参数。该参数可以是时间值、分组号或一些其它参数。分组丢失检测器可以被配置成在传送第一片段期间每次检测到分组丢失时填充记录。
为清楚起见,应当注意,步骤406可由分组丢失检测器216在整个第一片段的传送过程中执行。也就是说,步骤406可以在时间上至少部分地与步骤404重叠,使得服务器104可以同时执行步骤404和406。
在步骤408,服务器确定当前流传输会话的所有片段是否已被传送到客户端。如果确定已经传送了所有片段,则认为流传输会话已完成并且该过程结束。如果确定并非所有片段都已被传送,则在步骤410,片段索引n增加1,使得n被设置为n+1的值。继续本示例,在步骤410,片段索引增加为‘2’。
在步骤412,拥塞窗口单元212根据所测得的第一片段的分组丢失确定第二拥塞窗口的初始大小。第二拥塞窗口将用于传送具有片段索引n=2的片段(其将被称为第二片段),并且为了清楚起见,可以被表示为CWND2
通过在传送第一片段期间使用所测得的分组丢失来确定第二片段的初始拥塞窗口大小,可以在更长的时间尺度(即,长于一个片段的时间范围)上实现对所承受的分组丢失的合适的拥塞响应。这使得服务器104与客户端108之间的连接能够通过实现与所测得的分组丢失相称的拥塞响应而对竞争的TCP业务来说是公平的。然而,与传统的TCP实现相比,通过在更长的时间范围上实现拥塞响应,可以避免高度可变和不可预测的片段传送时间。
拥塞窗口单元212可以使用仅针对第一片段的所测得的分组丢失来确定第二拥塞窗口的初始大小(即,不考虑针对任何其它前面传送的片段的所测得的分组丢失)。另选地,拥塞窗口单元212可以根据所测得的第一片段的分组丢失并且还根据所测得的在第一片段之前传送的一个或更多个前面片段的分组丢失来确定第二拥塞窗口的初始大小(可以回想一下,为了本示例的目的,术语‘第一片段’用于标识片段,而不是暗示该片段是作为服务器和客户端之间的流传输会话的一部分而被传送的第一片段)。
拥塞窗口单元212可以使用所测得的针对多个前面传送的片段的分组丢失,通过对所测得的针对这些片段的分组丢失取平均值并且使用所计算出的平均分组丢失,来确定第二拥塞窗口的初始大小。平均值可以是未加权平均值,也可以是加权平均值。加权平均值可以赋予与最近接收到的片段相关联的所测得的分组丢失较高的权重。
可以使用所测得的分组丢失来选择第二拥塞窗口的初始大小的一种方式是通过计算分组丢失率并使用该分组丢失率来确定第二拥塞窗口的初始大小。例如,分组丢失检测器216可以使用所测得的针对第一片段的分组丢失来计算分组丢失率,并且拥塞窗口单元212可以根据所计算出的分组丢失率来确定第二拥塞窗口的初始大小。拥塞窗口单元212可以根据仅针对第一片段的分组丢失率或者根据第一片段和一个或更多个前面片段的分组丢失率来确定第二拥塞窗口的初始大小。如果使用多个分组丢失率,则分组丢失检测器216可以计算多个前面接收到的片段的平均分组丢失率(即,第一片段和一个或更多个前面片段的平均分组丢失率)。可以根据平均测量的分组丢失计算平均分组丢失率。如上所述,对于所测量的分组丢失,平均分组丢失率可以是加权或未加权的平均值。然后,拥塞窗口单元212可以根据该平均分组丢失率来计算第二拥塞窗口的初始大小。
可以使用分组丢失率来确定第二拥塞窗口的初始大小的一种方式是使用分组丢失率来计算用于传送第二片段的目标比特率,并且然后根据目标比特率计算第二拥塞窗口的初始大小。用于计算目标比特率的分组丢失率可以是仅针对第一片段的分组丢失率或者针对第一片段和一个或更多个前面片段的平均分组丢失率。目标比特率可以由比特率计算器218来计算。比特率计算器218接收由分组丢失检测器216计算出的分组丢失率,并根据该值计算目标比特率。比特率计算器被配置成将所计算出的目标比特率传达到拥塞窗口单元212,该拥塞窗口单元212可以使用该目标比特率来计算第二拥塞窗口的初始大小。
比特率计算器218可以将用于传送第二片段的目标比特率计算为典型的TCP实现可能已经实现在与由分组丢失检测器216计算的分组丢失率类似的分组丢失率下传送片段的比特率。例如,比特率计算器可以根据以下等式计算目标比特率:
其中,s是片段的大小,RTT是往返时间,并且P是分组丢失率(再次,仅用于传送第一片段的分组丢失率,或者用于传送第一片段和第一片段之前传送的一个或更多个前面片段的平均分组丢失率)。等式(4)估计对于如由分组丢失率P指定的给定分组丢失条件的典型TCP实现可以实现的比特率。
不是使用从等式(4)计算出的比特率作为目标比特率,比特率计算器218可以根据等式(4)计算出的比特率和一个或更多个其它因子(诸如,已对第二片段进行编码的比特率,以及先前已经传送到客户端108的一个或更多个前面片段到第二片段被编码的比特率)来计算目标比特率RT。比特率计算器218使用从等式(4)计算出的比特率来确定目标比特率的程度可以是应用特定的。例如,对于某些应用,可以更加重视以竞争业务友好速率来传送片段,在这种情况下,比特率计算器可以更加强调在计算目标比特率时使用等式(4)来计算的比特率。在其它应用中,可以更加强调实现一致的传送质量,代价是考虑短时间到中等时间范围的竞争业务。在这种情况下,比特率计算器218可以在计算目标比特率时减少对根据等式(4)计算的比特率的强调。
除了上述考虑之外,比特率计算器218可以被布置成将目标比特率RT设置为大于或等于在指定时间间隔ΔT2内传送第二片段所需的速率。如上所述,用于传送的指定时间间隔可以由客户端108请求或由服务器104确定。
一旦比特率计算器218已经计算出目标比特率RT,则拥塞窗口单元212可以根据如下重新排列的等式(1)来计算第二拥塞窗口的初始大小CWND2
CWND2=RTT×RT (5)
在步骤414,服务器104使用第二拥塞窗口通过网络106将第二片段传送到客户端。第二片段的传送受分派单元214控制,这可以使得第二片段的数据分组经由服务器的输出接口210通过网络进行传送。分派单元214还被配置成在第二片段传送的持续时间内(即,直到已经完成第二片段的传送为止)使用步骤402确定的第二拥塞窗口的初始大小来控制第二拥塞窗口的大小。
根据上面参照步骤404描述的用于传送第一片段的任何示例,分派单元214可以在整个第二片段的传送过程中使用第二拥塞窗口的初始大小来控制第二拥塞窗口的大小。例如,第二拥塞窗口在整个第二片段的传送过程中可以是恒定大小并且等于其初始大小。另选地,分派单元可以在没有检测到分组丢失的时段在传送第二片段期间增加第二拥塞窗口的大小,并且可以在传送第二片段期间每次检测到的分组丢失之后将第二拥塞窗口的大小重置为等于其初始大小。
在步骤416,分组丢失检测器216测量传送第二片段期间的分组丢失。分组丢失检测器216可以以与上面参照针对第一片段的步骤406描述的那些方式中的任何一个相同的方式确定第二片段的分组丢失。
然后,图4的过程返回到步骤408,并且服务器104判定是否已经为当前流传输会话传送了所有片段。如果确定已经传送了所有片段,则认为流传输会话已完成并且该过程结束。如果确定并非所有片段都已被传送,则在步骤410,片段索引n再次递增1,使得n被设置为n+1的值(继续本示例,n=3)。然后将重复步骤412到416以便将第三片段传送到客户端。具体地,在步骤412,拥塞窗口单元212根据传送第二片段期间的所测得的分组丢失确定用于传送第三片段的第三拥塞窗口的初始大小。在步骤414,服务器104使用第三拥塞窗口传送第三片段,其中,在传送第三片段的持续时间内使用第三拥塞窗口的初始大小来控制第三拥塞窗口的大小。在步骤416,分组丢失检测器216将测量在传送第三片段期间的分组丢失。然后,该过程返回到步骤408并重复直到当前流传输会话中的所有片段都已被传送。
以上示例说明了通过在片段传送的持续时间内使用拥塞窗口的初始大小来控制拥塞窗口的大小,如何在传送片段期间将对分组丢失的拥塞响应与分组丢失事件本身分离开。这使得能够在可预测且变化较小的时间内完成一段数据的传送。这转而使通信系统中的客户端能够减少他们所需的缓冲量,以使内容播出停顿的风险最小化,从而减少流传输会话的启动与客户端处内容播出的启动之间的端到端延迟。
已经在使用自适应比特率传送和底层TCP协议通过网络传送媒体内容的上下文中描述了以上示例。然而,应当理解,本发明不限于自适应比特率协议,而是可以在内容以片段的形式传送并且实现用于网络上的业务的拥塞控制的形式的各种通信系统中实现。
已经在服务器通过网络向客户端传送媒体内容的片段的上下文中描述了以上示例。例如,服务器可以是源服务器、内容传递网络(CDN)节点或住宅网关设备。更一般地,本文描述的服务器的功能可以由用于通过网络传送媒体内容的适当配置的发送器实现。客户端可以是HTTP自适应比特率流传输客户端。客户端可以被配置成支持MPEG DASH、HLS、SmoothStreaming或一些其它自适应比特率流传输协议。更一般地,客户端可以是用于通过网络接收媒体内容的任何合适配置的接收器。
已经参照“第一片段”和“第二片段”描述了上面的示例。出于清楚和说明的目的,术语“第一”和“第二”被用作标签,但这不暗示内容流内的片段的相对时间顺序或内容流内的片段的时间位置。例如,“第一片段”不必是在流传输会话中传送的第一个片段,而是可以指作为内容流的一部分传送的任何非最终片段。一旦底层TCP协议在流传输会话开始时已完成快速启动过程(例如,如果底层TCP协议是TCP New Reno或TCP Cubic),它就可以指的是正在传送的片段。第一片段可以另选地指代在快速启动过程或一些其它类似过程期间传送的片段。因此,从上述内容可以理解,如步骤402所述的第一拥塞窗口的初始大小可以由拥塞窗口单元212根据所测量的在第一片段之前传送的前面片段的分组丢失来选择。该前面片段可以是紧接在第一片段之前传送的片段或者内容流中通过一个或更多个中间片段与第一片段分离开的一些其它前面片段。
本文所描述并在图2和图3中示出的服务器和客户端被描述和示出为包括输入接口和输出接口中的一个或更多个。术语“输入”和“输出”不用于限制接口单独接收或发送数据,而是可以指接口与网络交换数据的方向。例如,服务器的输入接口可以是内容生成器的接口;并且服务器的输出接口可以是到下游网络(例如,网络106)的接口。客户端的输入接口(可以是服务器的下游)可以是到上游网络(例如,网络106)的接口。更一般地,输入接口和输出接口可以称为“第一”接口和“第二”接口。在一些实现中,服务器和/或客户端可以具有输入/输出接口形式的单个接口。
通常,上面针对通信系统的组件描述的任何功能、方法、技术或组件可以用软件、固件、硬件(例如,固定逻辑电路)或其任何组合来实现。本文使用的术语“单元”、“检测器”和“计算器”通常可以表示软件、固件、硬件或其任何组合。在软件实现的情况下,单元、检测器和计算器表示在处理器上执行时执行指定任务的计算机程序代码或计算机可读指令。本文描述的算法和方法可以由执行使处理器执行算法/方法的代码的一个或更多个处理器来执行。计算机程序代码可以被存储在非暂时性计算机可读存储介质上。计算机可读存储介质的示例包括随机存取存储器(RAM)、只读存储器(ROM)、光盘、闪存、硬盘存储器以及可以使用磁性、光学和其它技术来存储指令或可由机器访问的其它数据以及其它存储器设备。
申请人在此独立地公开了本文所述的各个单独的特征以及两个或更多个这样的特征的任何组合,只要这些特征或组合能够基于本说明书作为整体根据本领域技术人员的共同一般知识被执行,而不管这些特征或特征的组合是否解决了本文公开的任何问题,并且不限制权利要求的范围。申请人指出,本发明的各方面可以包括任何这样的单独特征或特征组合。鉴于前面的描述,对于本领域技术人员显而易见的是,可以在本发明的范围内进行各种修改。

Claims (15)

1.一种通过网络传送媒体内容的方法,所述媒体内容包括多个时间片段,其中,各时间片段包括多个数据分组,所述方法包括:
选择第一拥塞窗口的初始大小;
使用所述第一拥塞窗口传送第一片段的多个数据分组,所述第一拥塞窗口的所述初始大小用于在第一片段传送的持续时间内控制所述第一拥塞窗口的大小;
测量传送所述第一片段期间的分组丢失;
根据针对所述第一片段测得的分组丢失确定第二拥塞窗口的初始大小;以及
使用所述第二拥塞窗口传送第二片段,所述第二拥塞窗口的所述初始大小用于在第二片段传送的持续时间内控制所述第二拥塞窗口的大小。
2.根据权利要求1所述的方法,其中,在所述第一片段传送的持续时间内,所述第一拥塞窗口的大小等于所述第一拥塞窗口的初始大小。
3.根据权利要求1所述的方法,其中,所述第一拥塞窗口的大小在整个所述第一片段的传送过程中可根据分组丢失而变化,并且在所述第一片段的传送持续时间内被控制为大于或等于所述第一拥塞窗口的初始大小。
4.根据权利要求3所述的方法,使用所述第一拥塞窗口传送所述第一片段的步骤包括在没有分组丢失的时段期间从所述第一拥塞窗口的初始大小开始增加所述第一拥塞窗口的大小,并且在传送所述第一片段期间响应于每次分组丢失将所述第一拥塞窗口的大小重置为所述第一拥塞窗口的初始大小。
5.根据前述权利要求中任一项所述的方法,其中,根据所述第一片段的大小和用于传送所述第一片段的指定时间间隔来选择所述第一拥塞窗口的所述初始大小。
6.根据权利要求5所述的方法,其中,所述第一拥塞窗口的所述初始大小其中,RTT是往返时间,D是所述第一片段的数据大小,并且ΔT1是用于传送所述第一片段的所述指定时间间隔。
7.根据前述权利要求中任一项所述的方法,其中,根据针对在所述第一片段之前传送的前面片段测得的分组丢失率来选择所述第一拥塞窗口的所述初始大小。
8.根据前述权利要求中任一项所述的方法,所述方法还包括:根据所测得的分组丢失计算传送所述第一片段期间的所述分组丢失率;以及根据针对所述第一片段计算出的分组丢失率确定所述第二拥塞窗口的所述初始大小。
9.根据权利要求8所述的方法,其中,根据仅针对所述第一片段计算出的分组丢失率来确定所述第二拥塞窗口的所述初始大小。
10.根据权利要求8所述的方法,其中,根据针对所述第一片段和在所述第一片段之前传送的一个或更多个前面片段计算出的分组丢失率来确定所述第二拥塞窗口的所述初始大小。
11.根据权利要求8至10中任一项所述的方法,其中,确定所述第二拥塞窗口的所述初始大小的步骤包括:根据针对所述第一片段计算出的分组丢失率确定用于传送所述第二片段的目标比特率;以及根据所述目标比特率确定所述第二拥塞窗口的所述初始大小。
12.根据权利要求11从属于权利要求10时所述的方法,其中,根据针对所述第一片段计算出的分组丢失率和针对在所述第一片段之前传送的所述一个或更多个前面片段的分组丢失率来确定所述目标比特率。
13.根据权利要求12所述的方法,其中,根据针对所述第一片段以及在所述第一片段之前传送的所述一个或更多个前面片段的分组丢失率的平均值来确定用于传送所述第二片段的所述目标比特率。
14.根据权利要求11至13中任一项所述的方法,其中,用于传送所述第二片段的所述目标比特率大于或等于在指定时间间隔ΔT2内传送所述第二片段所需的比特率。
15.一种用于通过网络传送媒体内容的服务器,所述媒体内容包括多个时间片段,其中,各时间片段包括多个数据分组,所述服务器包括:
拥塞窗口单元,所述拥塞窗口单元被配置成选择第一拥塞窗口的初始大小;
分派单元,所述分派单元被配置成使用所述第一拥塞窗口传送第一片段的多个数据分组,所述分派单元还被配置成在第一片段传送的持续时间内使用所述第一拥塞窗口的所述初始大小来控制所述第一拥塞窗口的大小;以及
分组丢失检测器,所述分组丢失检测器被配置成测量传送所述第一片段期间的分组丢失;
其中,所述拥塞窗口单元还被配置成根据针对所述第一片段测得的分组丢失来确定第二拥塞窗口的初始大小;并且所述分派单元还被配置成使用所述第二拥塞窗口传送第二片段,并且在第二片段传送的持续时间内使用所述第二拥塞窗口的所述初始大小来控制所述第二拥塞窗口的大小。
CN201780084079.2A 2016-12-21 2017-12-13 通过网络传送媒体内容的方法和服务器 Active CN110192394B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP16205772 2016-12-21
EP16205772.3 2016-12-21
PCT/EP2017/082589 WO2018114519A1 (en) 2016-12-21 2017-12-13 Managing congestion response during content delivery

Publications (2)

Publication Number Publication Date
CN110192394A true CN110192394A (zh) 2019-08-30
CN110192394B CN110192394B (zh) 2023-10-20

Family

ID=57755006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780084079.2A Active CN110192394B (zh) 2016-12-21 2017-12-13 通过网络传送媒体内容的方法和服务器

Country Status (4)

Country Link
US (1) US11159834B2 (zh)
EP (1) EP3560207A1 (zh)
CN (1) CN110192394B (zh)
WO (1) WO2018114519A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110620638A (zh) * 2019-09-27 2019-12-27 北京奇艺世纪科技有限公司 数据传输控制方法及相关设备、存储介质

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018114520A1 (en) 2016-12-21 2018-06-28 British Telecommunications Public Limited Company Determining the bandwidth of a communication link
EP3560207A1 (en) 2016-12-21 2019-10-30 British Telecommunications Public Limited Company Managing congestion response during content delivery
EP3563575B1 (en) 2016-12-29 2024-04-10 British Telecommunications public limited company Transmission parameter control for segment delivery
US10397286B2 (en) * 2017-05-05 2019-08-27 At&T Intellectual Property I, L.P. Estimating network data streaming rate
CN111212279B (zh) * 2018-11-21 2021-06-29 华为技术有限公司 一种视频质量的评估方法及装置
GB2593696B (en) * 2020-03-30 2022-07-13 British Telecomm Low latency content delivery
US20220043823A1 (en) * 2020-08-10 2022-02-10 Twitter, Inc. Value-aligned recommendations
GB202015327D0 (en) * 2020-09-28 2020-11-11 British Telecomm Adaptive bit rate streaming
US11646957B1 (en) * 2020-12-04 2023-05-09 Amazon Technologies, Inc. Network packet loss period expansion

Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020097722A1 (en) * 2000-11-16 2002-07-25 Liao Hong Bin Robust, inferentially synchronized transmission of compressed transport-layer-protocol headers
CN1557072A (zh) * 2001-09-21 2004-12-22 ���˹���Ѷ��� 使用缓冲器大小计算用于拥塞控制的传输速率的数据通信方法和系统
US20050105604A1 (en) * 2002-04-23 2005-05-19 Hironori Ito Bit rate contol method and device
CN1937454A (zh) * 2005-09-23 2007-03-28 三星电子株式会社 控制传输速率的方法以及使用该方法的通信装置
US20100182905A1 (en) * 2006-10-17 2010-07-22 Yosuke Matsushita Communication apparatus and communication method
CN101854738A (zh) * 2010-05-21 2010-10-06 南京邮电大学 一种用于卫星网络的传输控制协议方法
CN101977151A (zh) * 2010-11-09 2011-02-16 中南大学 一种用于高丢包率广域网环境下的拥塞控制方法
CN102088640A (zh) * 2011-01-10 2011-06-08 西安电子科技大学 基于视频内容的自适应选择重传方法
US20120106342A1 (en) * 2010-11-02 2012-05-03 Qualcomm Incorporated Systems and methods for communicating in a network
CN103929370A (zh) * 2013-01-11 2014-07-16 中国科学院声学研究所 一种用于带宽预留网络的tcp拥塞控制方法
CN104125159A (zh) * 2014-07-29 2014-10-29 福建星网锐捷网络有限公司 一种拥塞带宽检测方法、拥塞控制方法、装置及系统
US9014264B1 (en) * 2011-11-10 2015-04-21 Google Inc. Dynamic media transmission rate control using congestion window size
CN104683259A (zh) * 2015-02-15 2015-06-03 上海帝联信息科技股份有限公司 Tcp拥塞控制方法及装置
US20150236966A1 (en) * 2014-02-18 2015-08-20 Alcatel-Lucent Usa Inc. Control of congestion window size of an information transmission connection
CN105227484A (zh) * 2015-10-16 2016-01-06 中国人民解放军国防科学技术大学 一种面向卫星网络的数据传输控制方法
US20160094465A1 (en) * 2014-09-26 2016-03-31 Samsung Electronics Co., Ltd. Apparatus and Method for Controlling Data Flow in Communication System

Family Cites Families (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030179719A1 (en) 1998-05-22 2003-09-25 Takashi Kobayashi Method and apparatus for transmitting packets at a transfer rate that depends on a response from a destination
US7260826B2 (en) 2000-05-31 2007-08-21 Microsoft Corporation Resource allocation in multi-stream IP network for optimized quality of service
US6925502B1 (en) 2000-06-20 2005-08-02 At&T Corp. Methods and systems for improving data transmission rates having adaptive protocols
US6744730B2 (en) * 2001-11-30 2004-06-01 Nokia Corporation Throughput enhancement after interruption
US7305464B2 (en) 2002-09-03 2007-12-04 End Ii End Communications, Inc. Systems and methods for broadband network optimization
US8069225B2 (en) * 2003-04-14 2011-11-29 Riverbed Technology, Inc. Transparent client-server transaction accelerator
JP4283589B2 (ja) 2003-03-25 2009-06-24 株式会社エヌ・ティ・ティ・ドコモ 通信装置、通信制御方法及びプログラム
US7397759B2 (en) 2004-03-15 2008-07-08 Microsoft Corporation Response for spurious timeout
KR100533686B1 (ko) 2004-05-21 2005-12-05 삼성전자주식회사 모바일 애드 혹 네트워크에서의 데이터 전송 방법 및 이를이용한 네트워크 장치
US8150995B2 (en) * 2005-09-30 2012-04-03 Microsoft Corporation Receive window auto-tuning
US8582647B2 (en) 2007-04-23 2013-11-12 Qualcomm Incorporated Methods and systems for quality controlled encoding
JP5029125B2 (ja) 2007-04-27 2012-09-19 日本電気株式会社 可用帯域幅推定システム、ストリームデータ配信システム、方法、及び、プログラム
WO2010073671A1 (ja) * 2008-12-25 2010-07-01 パナソニック株式会社 Tcp送信制御装置及びtcp送信制御方法
US8553540B2 (en) * 2010-03-05 2013-10-08 Microsoft Corporation Congestion control for delay sensitive applications
US8514715B2 (en) 2010-04-22 2013-08-20 Akamai Technologies, Inc. Congestion window control based on queuing delay and packet loss
EP2426923A1 (en) 2010-09-02 2012-03-07 British Telecommunications Public Limited Company Adaptive streaming of video at different quality levels
WO2013030852A2 (en) 2011-08-29 2013-03-07 Sling Media Pvt Ltd. Systems and methods for controlling the encoding of a segmented media stream using segment transmit times
US10389780B2 (en) 2012-02-08 2019-08-20 Arris Enterprises Llc Managed adaptive streaming
US9276967B2 (en) 2012-07-27 2016-03-01 Centurylink Intellectual Property Llc System and method for determining optimal bandwidth for streaming to a client device in an adjustable bit rate video system
JP6051832B2 (ja) * 2012-12-17 2016-12-27 富士通株式会社 通信装置,通信方法,及び通信プログラム
US20140282792A1 (en) * 2013-03-15 2014-09-18 Cygnus Broadband, Inc. Video streaming with buffer occupancy prediction based quality adaptation
US10375192B1 (en) * 2013-03-15 2019-08-06 Viasat, Inc. Faster web browsing using HTTP over an aggregated TCP transport
PT2979514T (pt) * 2013-03-25 2019-12-03 Altiostar Networks Inc Protocolo de controlo de transmissão numa rede de acesso por rádio de evolução a longo termo
GB2516112B (en) 2013-07-12 2016-10-26 Canon Kk Methods for providing media data, method for receiving media data and corresponding devices
US9385959B2 (en) * 2013-09-26 2016-07-05 Acelio, Inc. System and method for improving TCP performance in virtualized environments
US10341245B2 (en) * 2014-03-24 2019-07-02 Vmware, Inc. Bursty data transmission in a congestion controlled network
EP2928145A1 (en) 2014-04-02 2015-10-07 Thomson Licensing Method for estimating a bandwidth associated with a connection between a client terminal and at least one server, corresponding client terminal
EP3135009B1 (en) * 2014-04-23 2018-03-14 Bequant S.L. Method and apparatus for network congestion control based on transmission rate gradients
US10397131B2 (en) * 2014-09-09 2019-08-27 Vmware, Inc. Method and system for determining bandwidth demand
US9973345B2 (en) 2014-09-10 2018-05-15 Qualcomm Incorporated Calculating and signaling segment availability times for segments of media data
US20160080241A1 (en) 2014-09-17 2016-03-17 Broadcom Corporation Gigabit Determination of Available Bandwidth Between Peers
US10382591B2 (en) * 2014-10-13 2019-08-13 International Business Machines Corporation Transparent inline content inspection and modification in a TCP session
US10320526B1 (en) * 2014-11-07 2019-06-11 Strong Force Iot Portfolio 2016, Llc Packet coding based network communication
US10601721B2 (en) * 2015-10-29 2020-03-24 Altiostar Networks, Inc. Maintenance of downlink throughput
US20170149666A1 (en) * 2015-11-23 2017-05-25 Titan Photonics, Inc. Data traffic optimization system
US10404603B2 (en) * 2016-01-22 2019-09-03 Citrix Systems, Inc. System and method of providing increased data optimization based on traffic priority on connection
US10361963B2 (en) * 2016-05-10 2019-07-23 Verizon Patent And Licensing Inc. Controlling a congestion window size
US10257097B1 (en) * 2016-10-04 2019-04-09 EMC IP Holding Company LLC Connection based selection of a network congestion control process
WO2018114520A1 (en) 2016-12-21 2018-06-28 British Telecommunications Public Limited Company Determining the bandwidth of a communication link
EP3560207A1 (en) * 2016-12-21 2019-10-30 British Telecommunications Public Limited Company Managing congestion response during content delivery
EP3563575B1 (en) 2016-12-29 2024-04-10 British Telecommunications public limited company Transmission parameter control for segment delivery
WO2019185372A1 (en) * 2018-03-27 2019-10-03 British Telecommunications Public Limited Company Congestion response for timely media delivery

Patent Citations (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020097722A1 (en) * 2000-11-16 2002-07-25 Liao Hong Bin Robust, inferentially synchronized transmission of compressed transport-layer-protocol headers
CN1557072A (zh) * 2001-09-21 2004-12-22 ���˹���Ѷ��� 使用缓冲器大小计算用于拥塞控制的传输速率的数据通信方法和系统
US20050105604A1 (en) * 2002-04-23 2005-05-19 Hironori Ito Bit rate contol method and device
CN1937454A (zh) * 2005-09-23 2007-03-28 三星电子株式会社 控制传输速率的方法以及使用该方法的通信装置
US20100182905A1 (en) * 2006-10-17 2010-07-22 Yosuke Matsushita Communication apparatus and communication method
CN101854738A (zh) * 2010-05-21 2010-10-06 南京邮电大学 一种用于卫星网络的传输控制协议方法
US20120106342A1 (en) * 2010-11-02 2012-05-03 Qualcomm Incorporated Systems and methods for communicating in a network
CN101977151A (zh) * 2010-11-09 2011-02-16 中南大学 一种用于高丢包率广域网环境下的拥塞控制方法
CN102088640A (zh) * 2011-01-10 2011-06-08 西安电子科技大学 基于视频内容的自适应选择重传方法
US9014264B1 (en) * 2011-11-10 2015-04-21 Google Inc. Dynamic media transmission rate control using congestion window size
CN103929370A (zh) * 2013-01-11 2014-07-16 中国科学院声学研究所 一种用于带宽预留网络的tcp拥塞控制方法
US20150236966A1 (en) * 2014-02-18 2015-08-20 Alcatel-Lucent Usa Inc. Control of congestion window size of an information transmission connection
CN104125159A (zh) * 2014-07-29 2014-10-29 福建星网锐捷网络有限公司 一种拥塞带宽检测方法、拥塞控制方法、装置及系统
US20160094465A1 (en) * 2014-09-26 2016-03-31 Samsung Electronics Co., Ltd. Apparatus and Method for Controlling Data Flow in Communication System
CN104683259A (zh) * 2015-02-15 2015-06-03 上海帝联信息科技股份有限公司 Tcp拥塞控制方法及装置
CN105227484A (zh) * 2015-10-16 2016-01-06 中国人民解放军国防科学技术大学 一种面向卫星网络的数据传输控制方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
陈琳;双雪芹;: "TCP网络拥塞控制算法比较研究", 长江大学学报(自然科学版)理工卷, no. 01 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110620638A (zh) * 2019-09-27 2019-12-27 北京奇艺世纪科技有限公司 数据传输控制方法及相关设备、存储介质
CN110620638B (zh) * 2019-09-27 2022-03-22 北京奇艺世纪科技有限公司 数据传输控制方法及相关设备、存储介质

Also Published As

Publication number Publication date
WO2018114519A1 (en) 2018-06-28
US20190364311A1 (en) 2019-11-28
CN110192394B (zh) 2023-10-20
US11159834B2 (en) 2021-10-26
EP3560207A1 (en) 2019-10-30

Similar Documents

Publication Publication Date Title
CN110192394A (zh) 管理内容传送期间的拥塞响应
US11032343B2 (en) Methods and devices for efficient adaptive bitrate streaming
KR101638223B1 (ko) 적응적 스트리밍 서비스를 제공하기 위한 방법
US9781474B2 (en) Content playback information estimation apparatus and method and program
US10164893B2 (en) Data transfer apparatus, data transfer controlling method and data stream
JP2017516336A (ja) 拡張された伝送制御機能性を実施するトランスポートアクセラレータ
JP7011941B2 (ja) クライアント及び受信方法
JP6436772B2 (ja) 受信ビットレートの動的適応方法および関連する受信機
EP3777218B1 (en) Congestion response for timely media delivery
GB2559271A (en) Managing congestion response during content delivery
EP3560152B1 (en) Determining the bandwidth of a communication link
US20130308454A1 (en) Method and apparatus for improving http adaptive streaming performance using tcp modifications at content source
GB2577610A (en) Improved congestion response
CN110545492B (zh) 媒体流的实时递送方法及服务器
GB2572357A (en) Congestion response for timely media delivery
WO2018152753A1 (zh) 一种网络能力指标和用户体验指标的映射方法及装置
CN114726730A (zh) 应用于cdn的拥塞控制方法、电子设备、介质及产品
JP2015216414A (ja) 送信装置、送信制御方法及びプログラム
CN117834544A (zh) 数据传输状态的确定方法和装置、存储介质及电子设备
GB2588930A (en) Multimedia system & method
CN112640373A (zh) 改善的拥塞响应

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
GR01 Patent grant
GR01 Patent grant