CN112313918A - 直播流连接器 - Google Patents
直播流连接器 Download PDFInfo
- Publication number
- CN112313918A CN112313918A CN201980038381.3A CN201980038381A CN112313918A CN 112313918 A CN112313918 A CN 112313918A CN 201980038381 A CN201980038381 A CN 201980038381A CN 112313918 A CN112313918 A CN 112313918A
- Authority
- CN
- China
- Prior art keywords
- packet
- buffer
- data
- transmitter
- input
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1874—Buffer management
- H04L1/1877—Buffer management for semi-reliable protocols, e.g. for less sensitive applications like streaming video
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1867—Arrangements specially adapted for the transmitter end
- H04L1/1874—Buffer management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/004—Arrangements for detecting or preventing errors in the information received by using forward error control
- H04L1/0041—Arrangements at the transmitter end
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
- H04L43/0864—Round trip delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/611—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/75—Media network packet handling
- H04L65/762—Media network packet handling at the source
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/21—Server components or server architectures
- H04N21/218—Source of audio or video content, e.g. local disk arrays
- H04N21/2187—Live feed
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/238—Interfacing 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/2381—Adapting the multiplex stream to a specific network, e.g. an Internet Protocol [IP] network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/633—Control signals issued by server directed to the network components or client
- H04N21/6338—Control signals issued by server directed to the network components or client directed to network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network 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/63—Control 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/637—Control signals issued by the client directed to the server or network components
- H04N21/6375—Control signals issued by the client directed to the server or network components for requesting retransmission, e.g. of data packets lost or corrupted during transmission from server
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/1607—Details of the supervisory signal
- H04L1/1614—Details of the supervisory signal using bitmaps
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Databases & Information Systems (AREA)
- Environmental & Geological Engineering (AREA)
- Communication Control (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种用于直播流连接器的方法,包括:接收具有输入参数的数据的输入媒体流,和将输入媒体流作为具有指示输入参数的报头的分组的数据传送到接收节点。接收节点基于报头的输入参数被配置有接收缓冲区,并且被配置成当自分组的数据的接收以来的延迟量满足输入参数的时延输入时,将分组的数据发射到目的地。该方法进一步包括从反馈节点接收识别传输内的丢失分组的控制分组。该方法还包括识别重传缓冲区包括丢失分组;和确定发送器缓冲区是否包括所识别的丢失分组。当发送器缓冲区包括所识别的丢失分组时,该方法包括将所识别的丢失分组重传到接收节点。
Description
相关申请的交叉引用
本申请要求2018年10月2日提交的美国专利申请No.16/149,835的权益,其全部内容通过引用合并于此。
技术领域
本公开涉及直播流连接器。
背景技术
随着与网络通信有关的技术已经发展为在近距离和远距离上传输信息,电信系统跨这些距离传输数据分组。取决于数据分组传输所涉及的技术,数据分组可能会丢失或失真,从而导致数据传输不完善。这些不完善的数据传输通常会对媒体流服务产生不利影响。在直播媒体流的情况下,这可能尤其成问题,因为直播媒体流要求低丢失和低时延。更特别地,直播媒体流的消费者很容易认识到由时延和丢失引起的质量问题。因此,这些质量问题通常使直播媒体流对于消费者而言是不可取的。随着人们越来越多地使用实时和直播连接进行通信,可以实施改进的数据传输系统来递送具有可容许的数据丢失和时延水平的媒体流。
发明内容
本公开的一个方面提供一种用于数据传输系统的方法。该方法包括:在发送器设备的数据处理硬件处,接收数据的输入媒体流、比特率输入和时延输入。比特率输入和时延输入与传送数据的输入媒体流相关联。该方法也包括:通过数据处理硬件,将输入媒体流的数据分组,分组的数据包括指示比特率输入和时延输入的报头。该方法进一步包括:通过数据处理硬件,将分组的数据传达到控制层的重传缓冲区和发送器层的发送器缓冲区。控制层和发送器层对应于数据处理硬件的分级层。该方法也包括:通过数据处理硬件,将分组的数据从发送器层的发送器缓冲区传送到接收节点。分组的数据被接收节点接收时使该接收节点:基于报头的时延输入和比特率输入来初始化接收缓冲区,并当自接收到分组的数据起的延迟量满足时延输入时,将分组的数据发射到目的地。该方法进一步包括:在数据处理硬件的控制层处,从反馈节点接收控制分组,该控制分组识别分组的数据的传输中的丢失分组。附加地,该方法包括:通过数据处理硬件,识别控制层的重传缓冲区包括丢失分组;以及通过数据处理硬件,确定发送器层的发送器缓冲区是否包括所识别的丢失分组。当发送器缓冲区包括所识别的丢失分组时,该方法包括:通过数据处理硬件的发送器层,将所识别的丢失分组重传到接收节点。
本公开的实施方式可以包括以下可选特征中的一个或多个。在一些实施方式中,基于比特率输入和时延输入来动态地构造重传缓冲区、发送器缓冲区和接收缓冲区中的每一个。重传缓冲区、发送器缓冲区和接收缓冲区中的至少一个可以包括循环缓冲区。当发送器缓冲区未能包括所识别的丢失分组时,该方法可以包括:通过数据处理硬件的控制层,将所识别的丢失分组写入到发送器缓冲区,并且通过数据处理硬件的发送器层,将所识别的丢失分组从发送器缓冲区重传到接收节点。
在一些配置中,传送分组的数据包括将分组的数据分发到多个接收节点。接收节点可以被配置成从目的地处的终端客户端接收对于分组的数据的查询,并基于查询来从每个节点到终端客户端发射分组的数据。发送设备的数据处理硬件的控制层和发送器层可以位于本地广播器处。接收节点和反馈节点可以位于远离本地广播器的远程系统处。
在一些示例中,控制层被配置成执行以下操作:管理重传缓冲区;接收控制分组;将控制分组的所识别的丢失分组与重传缓冲区的分组进行比较;将所识别的丢失分组写入到发送器缓冲区;以及存储分组信息,包括分组应答、分组发送时间戳和分组重传时间戳。在其他示例中,该方法包括:通过数据处理硬件的发送器层,将往返时间(RTT)ping分组发送到接收节点;在数据处理硬件的控制层处,接收所发送的RTT ping分组;以及通过数据处理硬件的控制层,基于接收到的RTT ping分组来生成往返时间。这里,将所识别的丢失分组重传到接收节点可以包括:通过控制层,将所识别的丢失分组到接收节点的重传延迟往返时间。
在一些实施方式中,控制分组包括指示相应的接收分组和相应的丢失分组的位图结构。在对应于时延输入的延迟窗口内,位图结构从最早的丢失分组到最新的丢失分组被组织。发送器层可以被配置成以等于输入比特率的发送率发送分组的数据。附加地或替选地,发送器层可以被配置成基于发送器缓冲区的容量因数,以输入比特率的约1.5倍至2.0倍的发送率来发送分组的数据。
在一些示例中,传达分组的数据包括生成奇偶校验分组,以发送接收节点来进行前向纠错。在本示例中,将分组的数据从发送器层的发送器缓冲区传送到接收节点包括传送奇偶校验分组以进行前向纠错。
本公开的另一方面提供一种用于数据传输系统的方法。该方法包括:在接收节点的数据处理硬件处,在数据处理硬件的接收缓冲区处接收分组的数据。分组的数据对应于媒体流,并包括指示与媒体流相关联的比特率输入和时延输入的报头。该方法也包括:通过数据处理硬件,在接收器设备的反馈节点处生成控制分组。控制分组是基于接收到的分组的数据,并从接收到的分组的数据中识别丢失分组。该方法进一步包括:通过数据处理硬件,将控制分组从反馈节点传达到发送器设备的控制层。控制层包括重传缓冲区,并被配置成执行操作。这些操作包括:识别重传缓冲区包括由控制分组识别的丢失分组;以及确定发送器设备的发送器层的发送器缓冲区是否包括所识别的丢失分组。当发送器缓冲区包括所识别的丢失分组时,该操作包括指令发送器层重传所识别的丢失分组。该方法进一步包括:在数据处理硬件处,在接收缓冲区处接收所重传的丢失分组。当自接收到分组的数据起的延迟量满足时延输入时,该方法包括:通过数据处理硬件,将分组的数据发射到目的地。
该方面可以包括以下可选特征中的一个或多个。在一些配置中,基于比特率输入和时延输入,动态地构造重传缓冲区、发送器缓冲区和接收缓冲区中的每一个。重传缓冲区、发送器缓冲区或接收缓冲区中的至少一个可以包括循环缓冲区。当发送器缓冲区未能包括所识别的丢失分组时,控制层的操作可以包括:将所识别的丢失分组写入到发送器缓冲区;以及指令将所识别的丢失分组从发送器缓冲区重传到接收节点。
在一些示例中,接收分组的数据包括在多个接收节点处接收分组的数据。该方法还可以包括:在接收节点的数据处理硬件处,从目的地处的终端客户端接收对于分组的数据的查询;以及通过接收节点的数据处理硬件,基于查询来从每个节点到终端客户端发射分组的数据。发送设备的控制层和发送器层可以位于本地广播器处,并且接收节点和反馈节点可以位于远离本地广播器并对应于接收设备的远程系统处。
在一些实施方式中,控制层的操作包括:管理重传缓冲区;将控制分组的所识别的丢失分组与重传缓冲区的分组进行比较;将所识别的丢失分组写入到发送器缓冲区;以及存储分组信息。分组信息包括分组应答、分组发送时间戳和分组重传时间戳。该方法可以包括:在数据处理硬件处,在接收节点处从发送器层接收往返时间(RTT)ping分组,以及通过数据处理硬件,将RTT ping分组从接收节点发送到控制层。RTT ping分组被配置成确定分组的往返时间。这里,控制层的操作可以包括:将所识别的丢失分组到接收节点的重传延迟往返时间。
在一些配置中,控制分组包括指示相应的接收分组和相应的丢失分组的位图结构。在对应于时延输入的延迟窗口内,位图结构从最早的丢失分组到最新的丢失分组被组织。发送器层可以被配置成以等于输入比特率的发送率发送分组的数据。任选地,发送器层可以被配置成基于发送器缓冲区的容量因数,以输入比特率的约1.5倍至2.0倍的发送率来发送分组的数据。接收分组的数据可以包括接收奇偶校验分组以进行前向纠错。
本公开的另一方面提供一种用于数据传输系统的方法。该方法包括:在数据处理硬件处,接收数据的输入媒体流、比特率输入和时延输入。比特率输入和时延输入与传送数据的输入媒体流相关联。该方法也包括:通过数据处理硬件,将输入媒体流作为分组的数据传送到接收节点。分组的数据包括指示比特率输入和时延输入的报头。接收节点被配置有基于报头的时延输入和比特率输入的接收缓冲区,并且接收节点被配置成当自接收到分组的数据起的延迟量满足时延输入时,将分组的数据发射到目的地。该方法进一步包括:在数据处理硬件处,从反馈节点接收控制分组。控制分组在分组的数据的传输中识别丢失分组。该方法也包括:通过数据处理硬件,识别重传缓冲区包括丢失分组;以及通过数据处理硬件,确定被配置成发送分组的数据的发送器缓冲区是否包括所识别的丢失分组。当发送器缓冲区包括所识别的丢失分组时,该方法包括:通过数据处理硬件,将所识别的丢失分组重传到接收节点。
本公开的另一方面提供了一种用于数据传输系统的分布式系统。该系统包括:包括控制层和发送器层的发送器设备以及与发送器架构通信的接收器设备。接收器架构包括多个节点和接收缓冲区。多个节点包括至少一个反馈节点,并且接收缓冲区由输入比特率和输入时延来限定。发送器架构和接收器架构中的至少一个包括数据处理硬件以及与数据处理硬件通信的存储器硬件。存储器硬件存储指令,这些指令在数据处理硬件上执行时使数据处理硬件执行操作。这些操作包括:在发送器设备处,接收数据的输入媒体流、比特率输入和时延输入。比特率输入和时延输入与传送数据的输入媒体流相关联。这些操作也包括将输入媒体流的数据分组。分组的数据包括指示比特率输入和时延输入的报头。这些操作进一步包括将分组的数据传达到控制层的重传缓冲区和发送器层的发送器缓冲区。控制层和发送器层对应于数据处理硬件的分级层。这些操作也包括:将分组的数据从发送器层的发送器缓冲区传送到接收节点。分组的数据被接收器设备的接收节点接收时使该接收节点:基于报头的时延输入和比特率输入来初始化接收缓冲区,并当自接收到分组的数据起的延迟量满足时延输入时将分组的数据发射到目的地。这些操作进一步包括:在控制层处,从接收器设备的至少一个反馈节点接收控制分组,该控制分组识别分组的数据的传输中的丢失分组。这些操作也包括:识别控制层的重传缓冲区包括丢失分组;以及确定发送器层的发送器缓冲区是否包括所识别的丢失分组。当发送器缓冲区包括所识别的丢失分组时,这些操作包括:通过发送器层,将所识别的丢失分组重传到接收节点。
本公开的实施方式可以包括以下可选特征中的一个或多个。在一些实施方式中,基于比特率输入和时延输入,动态地构造重传缓冲区、发送器缓冲区和接收缓冲区中的每一个。重传缓冲区、发送器缓冲区或接收缓冲区中的至少一个可以包括循环缓冲区。当发送器缓冲区未能包括所识别的丢失分组时,这些操作可以包括:通过发送器设备的控制层,将所识别的丢失分组写入到发送器缓冲区,以及通过发送器设备的发送器层,将所识别的丢失分组从发送器缓冲区重传到接收节点。传送分组的数据可以包括将分组的数据分发到多个接收节点。
在一些示例中,接收节点被配置成从目的地处的终端客户端接收关于分组的数据的查询,并基于查询来从每个节点到终端客户端发射分组的数据。发送设备的数据处理硬件的控制层和发送器层可以位于本地广播器处,并且接收节点和反馈节点可以位于远离本地广播器的远程系统处。可选地,控制层可以被配置成执行以下操作:管理重传缓冲区;接收控制分组;将控制分组所识别的丢失分组与重传缓冲区的分组进行比较;将所识别的丢失分组写入到发送器缓冲区;以及存储分组信息,包括分组应答、分组发送时间戳和分组重传时间戳。
在一些配置中,这些操作包括:通过发送器层,将往返时间(RTT)ping分组发送到接收节点;在控制层处,接收所发送的RTT ping分组,以及通过控制层,基于接收到的RTTping分组来生成往返时间。这里,将所识别的丢失分组重传到接收节点的操作也可以包括:通过控制层,将所识别的丢失分组到接收节点的重传延迟往返时间。控制分组可以包括指示相应的接收分组和相应的丢失分组的位图结构,该位图结构在对应于时延输入的延迟窗口内从最早的丢失分组到最新的丢失分组被组织。
在一些实施方式中,发送器层被配置成以等于输入比特率的发送率发送分组的数据。附加地或替选地,发送器层可以被配置成基于发送器缓冲区的容量因数,以输入比特率的约1.5倍至2.0倍的发送率来发送分组的数据。传达分组的数据的操作可以包括生成奇偶校验分组,以发送接收节点来进行前向纠错。可选地,将分组的数据从发送器层的发送器缓冲区传送到接收节点的操作也可以包括传送奇偶校验分组以进行前向纠错。
本公开的另一方面包括一种用于数据传输系统的分布式系统。该系统包括:包括控制层和发送器层的发送器设备以及与发送器架构通信的接收器设备。接收器架构包括多个节点和接收缓冲区。多个节点包括至少一个反馈节点和至少一个接收节点。接收缓冲区由输入比特率和输入时延来限定。发送器架构和接收器架构中的至少一个包括数据处理硬件以及与数据处理硬件通信的存储器硬件。存储器硬件存储指令,这些指令在数据处理硬件上执行时使数据处理硬件执行操作。这些操作包括:在接收器设备的至少一个接收节点处,在数据处理硬件的接收缓冲区处接收分组的数据。分组的数据对应于媒体流,并包括指示与媒体流相关联的比特率输入和时延输入的报头。这些操作进一步包括:在接收器设备的至少一个反馈节点处,基于接收到的分组的数据来生成控制分组;以及从接收到的分组的数据中识别丢失分组。这些操作也包括:将控制分组从反馈节点传达到发送器设备的控制层。控制层包括重传缓冲区,并被配置成执行以下操作:识别重传缓冲区包括由控制分组所识别的丢失分组;确定发送器设备的发送器层的发送器缓冲区是否包括所识别的丢失分组;并且当发送器缓冲区包括所识别的丢失分组时,指令发送器层重传所识别的丢失分组。这些操作进一步包括:在至少一个接收节点处,在接收缓冲区处接收所重传的丢失分组。当自接收到分组的数据起的延迟量满足时延输入时,这些操作包括:将分组的数据从至少一个接收节点发射到目的地。
本公开的实施方式可以包括以下可选特征中的一个或多个。在一些示例中,基于比特率输入和时延输入,动态地构造重传缓冲区、发送器缓冲区和接收缓冲区中的每一个。附加地或替选地,重传缓冲区、发送器缓冲区或接收缓冲区中的至少一个可以包括循环缓冲区。当发送器缓冲区未能包括所识别的丢失分组时,控制层的操作可以包括:将所识别的丢失分组写入到发送器缓冲区;以及指令将所识别的丢失分组从发送器缓冲区重传到接收节点。接收分组的数据的操作可以包括在多个接收节点处接收分组的数据。
在一些配置中,这些操作包括:在至少一个接收节点处,从目的地处的终端客户端接收对于分组的数据的查询;以及从至少一个接收节点基于查询来从每个节点到终端客户端发射分组的数据。发送设备的控制层和发送器层可以位于本地广播器处。可选地,接收节点和反馈节点可以位于远离本地广播器的远程系统处。控制层的操作可以包括:管理重传缓冲区;将控制分组所识别的丢失分组与重传缓冲区的分组进行比较;将所识别的丢失分组写入到发送器缓冲区;以及存储分组信息,包括分组应答、分组发送时间戳和分组重传时间戳。
在一些实施方式中,这些操作包括:在接收节点处,从发送器层接收被配置成确定分组的往返时间的往返时间(RTT)ping分组;以及从接收节点向控制层发送RTT ping分组。这里,控制层的操作也可以包括:将所识别的丢失分组到接收节点的重传延迟往返时间。
在一些示例中,控制分组包括指示相应的接收分组和相应的丢失分组的位图结构。在对应于时延输入的延迟窗口内,位图结构可以从最早的丢失分组到最新的丢失分组被组织。发送器层可以被配置成基于发送器缓冲区的容量因素,以等于输入比特率的发送率发送分组的数据,或者以输入比特率的约1.5倍至2.0倍的发送率发送分组的数据。接收分组的数据的操作也可以包括接收奇偶校验分组以进行前向纠错。
本公开的另一方面提供一种用于数据传输系统的系统。该系统包括数据处理硬件以及与数据处理硬件通信的存储器硬件。存储器硬件存储指令,这些指令在数据处理硬件上执行时使数据处理硬件执行操作。这些操作包括:接收数据的输入数据流、比特率输入和时延输入,比特率输入和时延输入与传送数据的输入媒体流相关联。这些操作也包括将输入媒体流作为分组的数据传送到接收节点。分组的数据包括指示比特率输入和时延输入的报头。接收节点基于报头的时延输入和比特率输入而被配置有接收缓冲区。接收节点也被配置成当自接收到分组的数据起的延迟量满足时延输入时,将分组的数据发射到目的地。这些操作进一步包括:从反馈节点接收控制分组,该控制分组识别分组的数据传输中的丢失分组。附加地,这些操作包括:识别重传缓冲区包括丢失分组;以及确定被配置成发送分组的数据的发送器缓冲区是否包括所识别的丢失分组。当发送器缓冲区包括所识别的丢失分组时,这些操作包括将所识别的丢失分组重传到接收节点。
本公开的另一方面包括一种用于直播流连接器的方法,该方法包括:接收具有输入参数的数据的输入媒体流,并将其传送到接收节点,该输入媒体流作为分组的数据具有指示输入参数的报头。接收节点被配置有基于报头的输入参数的接收缓冲区,并被配置成当自接收到分组的数据起的延迟量满足时延输入时,将分组的数据发射到目的地。该方法进一步包括:从反馈节点接收控制分组,该控制分组识别传输中的丢失分组。该方法也包括:识别重传缓冲区包括丢失分组;以及确定发送器缓冲区是否包括所识别的丢失分组。当发送器缓冲区包括所识别的丢失分组时,该方法包括将所识别的丢失分组重传到接收节点。
在附图和以下描述中阐述了本公开的一种或多种实施方式的细节。根据说明书和附图以及根据权利要求书,其他方面、特征和优点将是显而易见的。
附图说明
图1是示例数据传输系统的示意图。
图2是图1的数据传输系统的示例发送器设备的示意图。
图3A-3C是图1的数据传输系统的示例接收设备的示意图。
图4–6是用于数据传输系统的发送器设备和接收器设备的示例操作布置的流程图。
图7是可用于实现本文描述的系统和方法的示例计算设备的示意图。
在各种附图中,相同的附图标记指示相同的元件。
具体实施方式
通常通过计算机网络在两个端点(例如,源/主机和目的地)之间传输数据。计算机网络通常具有分层架构,使得该分层架构的传输层负责数据传递。遗憾的是,随着日常应用对数据的需求增加,现有的传输层协议时常无法满足这些数据需求。这样一种日渐盛行的数据类型是媒体流服务(例如,直播媒体流)。随着媒体流服务的可用性增加,媒体流的问题愈加突出。例如,消费者(即,终端用户)可能很容易注意到直播媒体流的质量变化。现代显示设备(例如,电视机、监视器、设备屏幕等)提供了更高的分辨率(例如,1080p、2K、4K、UHD等)时,则问题会尤为明显。另外,分辨率增大常常使消费者对正在消费的媒体流(例如,直播媒体流)相关的数据丢失和/或时延丧失耐心。当现有协议(例如,用户数据报协议(UDP)和传输控制协议(TCP))无法解决高质量和低时延相关的挑战时,这些问题会更为复杂。
传输层大体上确保网络(例如,网络120)上的消息或数据的端到端通信。传输层可以经由连接模式或无连接模式发送传输。传输控制协议(TCP)为常见的面向连接的传输协议。面向连接的传输传送需要在目的地进行重构的分组,并利用应答作为传输的保证。反之,面向无连接的传输,无需在分组传输之前建立虚拟电路,也无需数据接收的应答。尽管TCP因其对大数据集进行分组、检查并重发丢失分组以及正确地重构分组的能力而成为因特网连接的常用协议,但是TCP所执行的功能可能会耗费额外的数据资源并导致传输延迟。另一方面,用户数据报协议(UDP)为轻量级(即,以相对较窄的带宽运行)、鲁棒且无连接的协议,因为UDP发送分组时无需额外的服务(例如,重构或应答)。UDP的另一缺陷在于,分组可能在源与目的地之间采用不同的路径,从而导致诸如分组丢失或分组无序等问题。
图1是能够使用基于分布式UDP的传输系统来改善用于媒体流服务(例如,直播媒体流)的数据传输的数据传输系统100的示例。数据传输系统100包括广播器10,其使用服务器20来将数据的媒体流(例如,输入媒体流110)跨网络120传达到远程系统130,诸如云环境中的分布式系统。具有显示设备40(例如,计算机或移动设备)的终端用户30(即,消费者)可以访问媒体流110或接收来自与远程系统130相关的流服务的媒体流110。例如,终端用户30(如图所示,经由接收器300)向远程系统130发送查询140,请求媒体流110。在其他示例中,终端用户30使用由远程系统130托管的应用来访问媒体流110。在一些示例中,在接收到媒体流110之后,远程系统130进一步处理媒体流110和/或将媒体流110与远程系统10的资源132相关联。
广播器10可能为能够跨网络120生成和/或分发媒体流110的任何内容提供方或内容创建者。例如,广播器10为远离远程系统130的本地广播器,其经由媒体流提供待分发给终端用户30的内容。诸如云环境的一个或多个远程系统130可以摄取本地广播信道直播流,以获取用于终端用户30的媒体内容和/或分发用于客户端(例如,本地广播器10)的媒体内容。广播器10与远程系统130之间的这种关系使广播器10能够提供比广播器10通过常规广播(例如,空中广播)所能达到的更大的终端用户30市场。附加地,这种关系可以使远程系统130能够经由资源132(例如,数据处理硬件134、存储器硬件136或软件资源138)获取并提供更大量的内容。例如,终端用户30访问由远程系统130托管或与之通信的媒体流应用形式的软件资源138,以消费媒体内容。这里,广播器10使用(一个或多个)服务器20,其具有数据处理硬件和存储器硬件,并被配置成在网络120上与远程系统130进行通信。
为了广播器10与远程系统130之间进行通信,数据传输系统100包括两件式系统,该系统具有发送器200(又称为“发送器设备”)和接收器300(又称为“接收设备”)。发送器200和接收器300的两件式系统可以统称为直播流连接器。这里,发送器200位于远程系统130的客户端(例如,广播器10)处。譬如,发送器200被安装在广播器10的(一个或多个)服务器20上。发送器200接收由广播器10提供(例如,生成)的数据的输入媒体流110,并将输入媒体流110作为数据的传输202传送到接收器300。如图1所示,发送器200被配置成经由网络120与位于远程系统130处的接收器300进行通信。
为了传送输入媒体流110,发送器200将输入媒体流110转换成数据的分组P1-i(即,进行分组)。分组数i取决于媒体流110的大小和质量。例如,当媒体流110为连续直播流时,除非连续直播流结束,否则由发送器200转换的分组数i将为无限个。接收器300接收分组的数据作为传输202。接收器300被配置成检查接收到的传输202,并请求302重传204部分或全部分组的数据。接收器300请求重传204发送器200发送给接收器300但在传输202期间丢失或损坏的数据分组P1-i(即,丢失分组PM)。
当广播器10将输入媒体流110传达到发送器200时,附加地,广播器10传达与输入媒体流110的传输202和/或重传204相关联的输入参数112。输入参数112可以由直播流连接器的用户(例如,广播器10)输入,并被配置用于该用户的应用。换而言之,诸如广播器10的用户可能受到本地资源(例如,网络120或服务器处理)或正在传输的媒体流的约束。由于这些约束,不同的广播器10或不同的媒体流可以用不同的输入参数112来配置。输入参数112至少包括比特率输入112、112a(图2)和时延输入112、112b(图2)。比特率输入112a是指输入媒体流110到发送器200的数据传送率。时延输入112b为输入参数112,其是指定义应用的容错的延迟窗口持续时间(例如,通常以秒为单位)。时延输入112b允许在可配置的延迟窗口持续时间内纠正分组丢失。例如,当时延输入112b被配置为两秒时,发送器200可以在这两秒内重传丢失分组PM(1-i)以纠正丢失分组PM的损失。通过选择时延输入112b,直播流连接器能够相对于可靠性优先处理时延。
继续参照图1,发送器200向接收器300发送传输202,该传输202在发送器200处初始地包括五个(数据111的)分组P1-5。由于网络可靠性或其他问题,接收器300仅接收五个分组P1-5中的三个分组P1、P3、P4。在由时延输入112b配置的延迟窗口持续时间内,接收器300识别丢失分组PM、P2、P5,并将请求302传达到发送器200以进行第二分组P2和第五分组P5的重传204。发送器200从接收器300接收请求302,并传达丢失分组PM、P2、P5的重传204。这里,一旦延迟窗口持续时间期满,接收器300便可以将接收的分组P1-5传达到目的地(例如,请求方,诸如终端用户30,或者用于存储或集中分发的远程系统130)。当延迟窗口持续时间在接收到重传204之后期满时,接收器300能够将全部五个分组P1-5传达到目的地30、130。另一方面,当延迟窗口持续时间在接收到重传204之前期满时,接收器300将可用的分组P1、P3、P4传达到目的地30、130。
图2是数据传输系统100的发送器200的示例。发送器设备200被配置成接收输入媒体流110,将输入媒体流110的数据111分组为分组P1-i,并将分组的数据(即,分组P1-i)作为传输202和/或重传204传达到接收器300。当发送器200将输入媒体流110的数据111分组时,发送器200为分组P1-i生成报头206,该报头206包括有关输入参数112的信息,诸如比特率输入112a和时延输入112b。通过经由报头206包括输入参数112,分组P1-i的每个接收者(例如,控制层210、发送器层220或接收器300)可以通过比特率输入112a识别比特率并通过时延输入112b识别延迟窗口持续时间,以进一步处理分组P1-i。
这里,发送器200具有包括控制层210和发送器层220的分级结构或架构。控制层210与发送器层220之间的关系是分级的,使得控制层210为管理发送器层220的智能层。例如,因为控制层210为智能层,发送器层220不会跟踪分组信息。而是,发送器层220基于比特率输入112a和/或发送器层220的条件以发送率RS而不考虑顺序或类型地发送分组P1-i。
在一些配置中,发送器200通过应用编程接口(API)230接收输入媒体流110。API230可以接收数据的输入媒体流110,并通过向数据添加报头206来分组该数据。利用分组的数据,API 230可以将分组的数据传达到控制层210和发送器层220。在一些示例中,API 230还将分组的数据传达到奇偶校验生成器240以生成与分组的数据有关的奇偶校验分组PP。
在一些实施方式中,控制层210包括重传缓冲区212(例如,循环缓冲区)。基于输入比特率112a和时延输入112b的输入参数112来动态地初始化重传缓冲区212。例如,基于这些输入参数112来配置重传缓冲区212的大小和/或容量。换而言之,重传缓冲区212可以具有n个分组P1-n的容量,以对应于由时延输入112b以输入比特率112a配置的期望延迟窗口持续时间。控制层210被配置成从报头206确定这些输入参数112,并基于这些输入参数112来配置重传缓冲区212。为了简明起见,重传缓冲区212被示为具有九个分组P1-9(即,n=9)。当重传缓冲区212已满时,最早的分组被新的分组PN覆写。因为最早的分组将被覆写,当接收器300请求已经被新的分组PN覆写的分组P时,接收器300关于重传204的请求302可能超时(例如,图2描绘出第九分组P9被新的分组PN覆写的情况)。发生这种情况时,即使可能丢失了某些分组P1-i,直播流连接器也将无法纠正丢失分组PM,并且接收器300会将接收分组P1-i传达到目的地。通过存储已在延迟窗口持续时间指定的窗口中传送的分组P1-n,直播流连接器在可靠性与时延之间达成折衷(即,用户、诸如广播器10能够将直播流连接器设置为它相信媒体流能够承受的延迟)。
除了管理重传缓冲区212之外,控制层210还接收控制分组PC,并将待重传的分组P1-i写入到发送器层220(即,重传分组PRT以替换丢失分组PM)。如图2所示,为了接收控制分组PC,控制层210包括检查器214。控制分组PC为包括有关在接收器300处接收到的分组P1-i的信息(例如,应答)或反馈的分组。为了提供有关在接收器300处接收到的分组P1-i的反馈,控制分组PC具有用于识别分组P1-i的起始序列号。控制分组PC可以是接收器关于重传204的部分或全部请求302。在一些示例中,控制分组PC包括描述丢失分组PM的信息。在其他示例中,控制分组PC包括描述接收分组P1-i和丢失分组PM的信息。例如,控制分组PC为指示接收分组P1-i(例如,为1)和丢失分组PM(例如,为0)的位图。在一些示例中,位图在延迟窗口中从最早的分组持续时间到最近的分组被组织。附加地或替选地,可以经由ACK/NACK应答来识别接收分组P和丢失分组PM。
当控制层210经由检查器214接收到控制分组PC时,检查器214在重传缓冲区212中检查丢失分组PM。例如,检查器214遍历控制分组PC的位图以将丢失分组PM的序列号与重传缓冲区212相匹配。这里,结合图1,图2描绘出检查器214,其接收控制分组PC,并将控制分组PC的丢失分组PM识别为对应于第五分组P5。附加地或替选地,检查器214可以被配置成对匹配的分组(示为重传缓冲区212内的第五分组P5)执行重传检查。
当找到由控制分组PC识别的丢失分组PM并在某些情况下通过重传检查时,检查器214将分组传达到写入器216。写入器216被配置成将所识别的重传缓冲区212内的丢失分组PM作为重传分组PRT写入到发送器层220。在一些实施方式中,在写入重传分组PRT之前,写入器216在发送器层220的队列中检查所识别的丢失分组PM。这里,该队列检查避免了以下情况:当所识别的丢失分组PM在发送器层220处已被调度为待发送到接收器300时,写入器216冗余地写入待发送到接收器300的所识别的丢失分组PM的另一副本。
在一些配置中,控制层210包括管理器218。管理器218可以存储关于在控制层210处接收到的分组P1-i的附加信息。由管理器218存储的附加信息的一些示例包括:分组P是否早先已被应答(例如,通过控制分组PC),初始地发送分组P时的初始时间戳,以及关于分组P是否已被预先传送/重传的信息(例如,最后传输时间)。为了说明控制层210可以存储这种附加信息,图2描绘出具有数据存储(诸如数据库DB)的管理器218。尽管图示为单个数据库DB,但附加地,信息可以被划分为任意数目的数据库。
管理器218被进一步配置成管理分组P1-i的往返时间(RTT)。RTT是指分组P去往接收器300并返回到发送器200所花费的时间。管理器218可以生成并可以处理RTT分组PRTT以识别直播流连接器的RTT值。譬如,发送器200(例如,经由管理器218)使用与RTT分组PRTT从发送器200发送到接收器300的时间相对应的时间戳来标记RTT分组PRTT。当接收器300接收到RTT分组PRTT时,接收器300将RTT分组PRTT发送回到发送器200。管理器218接收RTT分组PRTT,并基于接收时间来更新RTT值。如图2所示,管理器218可以周期性地与发送器层220协调以发送RTT分组PRTT。因为管理器218周期性地确定和/或更新RTT值,管理器218可以将RTT值报告为所确定的RTT值的中值。即使图2将不同的分组图示为RTT分组PRTT,但由发送器200所发送的任何分组P可以被配置为RTT分组PRTT。
在一些配置中,接收器300具有多个接收节点310(图3A和图3B)。在这些配置中,管理器218单独为每个接收节点310确定RTT值,因为每个节点310可以基于与每个单独节点310相关联的网络链路而表现不同。通过确定每个节点310的RTT值,发送器200可以基于RTT值来判定接收器300的接收节点310与发送器200之间的链路存在不良的网络连接,并至少暂时性关闭该链路。类似于关闭链路的过程,基于更新的RTT值,管理器218可以激活(或恢复)经由已关闭的接收节点的链路的传输。
在一些示例中,控制层210将RTT值用于重传204。譬如,控制层210在延迟时间量之后重传重传分组PRT。延迟时间量可以被设定为从对应于重传分组PRT的分组P的初始发送时间(即,传输204)开始的RTT值的n倍。换而言之,图2中的重传分组对应于第五分组P5。因此,控制层210可以在发送对应于第五分组P5的重传分组PRT之前从初始将第五分组P5发送到接收器300时开始等待RTT值的两倍(即,n=2)。通过延迟重传分组PRT,发送器200可以解决网络延迟和/或防止增加带宽使用。
在一些实施方式中,管理器218包括奇偶校验生成器240。奇偶校验生成器240使用分组的数据P1-i来生成奇偶校验分组PP。这里,奇偶校验分组PP被使用于直播流连接器内的纠错(例如,前向纠错(FEC))。奇偶校验分组PP包括奇偶校验位,以指示分组P是否经历任何问题,诸如损失。控制层210的管理器218可以将奇偶校验分组PP写入到发送器层220,以便传输到接收器300。
继续参照图2,发送器200包括具有发送器缓冲区222的发送器层220。发送器层220可以在发送器缓冲区222处从不同的源接收不同的分组PN、PRT、PP、PRTT,以发送到接收器300。这些分组P1-i包括新的分组PN(例如,来自API 230)、重传分组PRT(例如,来自写入器216)、奇偶校验分组PP(例如,来自奇偶校验生成器240)和RTT分组PRTT(例如,来自管理器218)。正如控制层210的重传缓冲区212,发送器缓冲区222可以基于输入参数112来动态地配置(例如,包括n个分组P1-n,其中n对应于发送器缓冲区222的容量)。在一些示例中,发送器缓冲区222为循环缓冲区。发送器缓冲区222可以是先进先出(FIFO)缓冲区,其中发送器缓冲区222将分组P1-n写入到顺序时隙,而不根据每个相应分组P的序列号对分组P1-n进行排序。FIFO缓冲区是指最早的分组首先被发送器层220发送而最新的分组被置于队列中以待最后发送的缓冲区。
发送器层220以发送器速率RS发送发送器缓冲区222内的分组P1-n。发送器速率RS通常配置成使得发送器层220可以发送分组P1-n以匹配输入媒体流110的输入比特率112a。在一些实施方式中,发送器层220被配置成动态地调整发送器速率RS。发送器层220可以通过两个因数来调整发送器速率RS:(1)输入比特率112a;(2)发送器缓冲区222的发送队列的充满度。当输入比特率112a改变或输入媒体流110的实际输入率大于所配置的输入比特率112a时,发送器缓冲区222将开始填充。为了缓解发送器速率RS与输入媒体流110的填充率之间的失衡,发送器层220可以增高发送器速率RS。譬如,发送器层220基于发送器缓冲区充满度的因数将发送器速率RS增高1.5至2.0倍。换而言之,可以动态地更改发送器速率RS,以防发送器缓冲区222充满而无法容纳需要发送到接收器300的分组P1-i。在一些示例中,输入参数112包括最大比特率,以便即使发送器层220动态地调整发送器速率RS,发送器层220也被配置成不超过最大比特率。
图3A至图3C是数据传输系统100的接收器300的示例。接收器300被配置成在接收节点310处接收由发送器200所发送的分组P1-i,并生成针对发送器200的请求302(例如,控制分组PC)。附加地或替选地,接收器300对残留误差实施前向纠错(FEC)。在一些示例中,如图3A和图3B所示,接收器300为具有多个接收节点310、310a-310n和反馈节点320的多节点接收器300a-300b。在其他示例中,如图3C所示,接收器300为具有单个接收节点310的单节点接收器300c,该单个接收节点310也充当反馈节点320。在其他示例中,接收节点310、310a-310n的数目n取决于直播流连接器的应用和/或发送器200与接收器300之间的网络条件。通过对网络条件可动态地配置的接收节点310的数目n,直播流连接器可以使其最大限度地利用网络120。例如,可以基于网络120的网络连接来(例如,暂时性)关闭发送器200与对应接收节点310之间的网络链路。对于多节点接收器300a-300b,媒体流110的分组的数据可以被动态地分布到其余的活跃接收节点310(即,未关闭的接收节点310)。虽然图3A至图3C的示例描绘出具有多个接收节点310或单个接收节点310的接收器300,但接收器300a也可以缩放成任意数目的节点,使得接收器300可以从图3A和图3B中的多节点接收器300a-300b动态变化为图3C中的单节点接收器300c,反之亦然。譬如,在具有更低约束和可靠网络链路的更简单的应用中,接收器300可以使用单个接收节点310以减少冗余。
对于诸如图3A和图3B的多节点接收器300a-300b,每个接收节点310接收一部分媒体流110作为分组的数据(例如,示为P1-3)的传输202。这里,第一接收节点310a接收第二分组P2。第二接收节点310b接收第一分组P1,而第三接收节点310c接收第三分组P3。相比之下,图3C描绘出单个节点作为接收节点310,其接收所有这三个分组P1-3。在任一设计中,接收器300包括接收缓冲区330。恰如重传缓冲区212和发送器缓冲区222,可以基于包括在分组P1-i的报头206中的输入参数112来动态地配置接收缓冲区330。在一些示例中,接收器缓冲区330为循环缓冲区。这里,每当接收节点310接收到分组P时,基于报头206内的分组P的序列号,将接收分组P写入到接收缓冲区330中的对应位置。基于这种方法,当存在丢失分组PM时(例如,图3A至图3C中通过接收缓冲区330中的虚线轮廓显示),接收器300跳过对应于丢失分组PM的接收缓冲区时隙。在一些示例中,在丢失分组PM的接收缓冲区时隙处设置指示符(例如,标志),以将分组P标记为丢失。当接收缓冲区330已满时,接收器300从接收缓冲区330发射最早的分组,以允许接收缓冲区330继续接收新的分组PN。
对于诸如图3A和图3B的多节点接收器配置,根据应用,接收缓冲区330可以呈分布式(图3A)或集中式(图3B)。在分布式接收缓冲区330、330a-330c中,可以通过至少两种方法来发射分组的数据P1-i。在一些示例中,终端用户30将查询140、140a-140c传达到每个接收节点310a-310c,并直接从接收节点310a-310c接收分组P1-i。在其他示例中,接收节点310a-310c获取终端用户30的目的地地址,并将来自每个接收缓冲区330a-330c的分组P1-i发射到该目的地地址(例如,示为终端用户30)。为了说明这些方法,图3A描绘出从接收节点310a-310c到目的地的双向箭头。类似地,当接收缓冲区330呈集中式时,如图3B或图3C所示,目的地(即,终端用户30)可以发送查询140以发射分组P1-i,或者接收器300可以将分组P1-i发送到目的地。在接收器300的任何配置中,当延迟量满足时延输入112b时,接收器300可以发射分组P1-i(例如,针对查询140),以允许直播流连接器有时间纠正丢失分组PM。
为了生成针对发送器200的应答和/或请求302,接收器300包括反馈节点320。反馈节点320可以是用于反馈312的专用节点(例如,图3A和图3B),或可以是充当反馈节点320的接收节点310(例如,图3C)。反馈节点320被配置成生成控制分组PC,并将控制分组PC发送到发送器200。根据延迟窗口持续时间,反馈节点320可以生成单个控制分组PC或多于一个的控制分组PC。在一些示例中,诸如图3A,反馈节点320基于从至少一个接收节点310(图3A和图3B中示为三个接收节点310a-310c)收集和/或接收的反馈312来生成控制分组PC。反馈312为关于在至少一个接收节点310处接收分组P1-i的信息。
在一些示例中,(一个或多个)接收节点310写入和/或传达关于接收分组P1-i的反馈312、312a-312c,使得反馈节点320能够从传输202中推断出丢失分组PM(例如,通过分组P1-i的序列号)。在其他示例中,(一个或多个)接收节点310识别(一个或多个)丢失分组PM以及(一个或多个)接收分组P1-i,使得反馈节点320不必推断丢失分组PM。在一些配置中,设计直播流连接器的接收器300的实体设计/指定反馈节点320,使得初始化接收器300时不必确定反馈节点320。在其他配置中,接收器300包括首领选择器340,以从接收器300的节点中选择反馈节点320。例如,首领选择器340通过执行首领选择算法来确定反馈节点320。当直播流连接器和/或接收器300被激活时,或当接收器300动态地变化时,首领选择器340可以执行首领选择算法。接收器300动态地变化的示例包括:当接收器300联合先前确定的反馈节点320时,或当接收器300将先前确定的反馈节点320转换成接收节点310以解决应用和/或网络120的变更时(例如,首领节点可能在缺少特定网络条件的情况下发生变更,首领节点可能因网络中断而发生变更,首领节点可能在与首领节点相关联的链路不再工作时发生变更,首领节点可能因当前首领节点发生任何适时故障而发生变更,等等)。
可选地,数据传输系统100的直播流连接器提供纠错。尽管图3C通过虚线框将纠错描述为可选,但直播流连接器的任何实施方式可以包括纠错。纠错为直播流连接器启用额外的可靠性选项,使得直播流连接器可以修复因数据损失而引起的错误。在一些示例中,在接收器300的初始化期间,接收器300生成纠错缓冲区350(例如,FEC缓冲区350)。这里,直播连接器所利用的纠错为前向纠错(FEC)。前向纠错泛指在传输期间引入冗余数据(即,冗余位的纠错码)。冗余数据是指可以被接收器300辨识的初始信息的复函数。接收器300在FEC缓冲区350处接收奇偶校验分组PP,并检查该奇偶校验分组PP是否符合纠错码。这里,当出现丢失比特时,可以基于FEC码设计来纠正丢失比特。通常有两大类FEC码:使用硬判定算法的经典块码和使用软判定算法的卷积码。块码适用于固定大小的数据块,而卷积码适用于任意长度的数据。在一些示例中,接收器300使用一种称为Reed-Solomon(里德-所罗门)纠错的块码。通过使用Reed-Solomon纠错,接收器300可以经由FEC缓冲区350来检测错误(例如,在操作352处),并纠正多个符号错误以及误删(例如,在操作354处)。在接收器300处,处理奇偶校验分组PP以纠正呈现窗口中的误删。这种纠错可有助于纠正直播媒体流中经常遇到的突发错误。可使用的FEC块码和卷积码的其他一些示例包括Golay、Bose-Chaudhuri-Hocquenghemhem、Hamming、Viterbi、最大后验概率(MAP)或Bahl-Cocke-Jelinek-Raviv。
图4至图6是用于实施数据传输系统100的直播流连接器的示例方法400、500和600的流程图。参照图4,在操作402处,方法400接收数据的输入媒体流110、比特率输入112a和时延输入112b。比特率输入112a和时延输入112b与数据的输入媒体流110的传输相关联。在操作404处,方法400将输入媒体流110的数据分组。这里,分组的数据P1-i包括指示比特率输入112a和时延输入112b的报头206。在操作406处,方法400将分组的数据P1-i传达到控制层210的重传缓冲区212和发送器层220的发送器缓冲区222。控制层210和发送器层220对应于分级层,例如利用数据处理硬件的软件分级层。在操作408处,方法400将分组的数据P1-i从发送器层220的发送器缓冲区222发送到接收节点310。在操作408处,当分组的数据P1-i被接收节点310接收时,其接收使接收节点310:基于报头206的时延输入112b和比特率输入112a来初始化接收缓冲区330,并当自接收到分组的数据P1-i起的延迟量满足时延输入112b时,将分组的数据P1-i发射到目的地。在操作410处,方法400从反馈节点320接收控制分组PC。控制分组PC识别分组的数据P1-i的传输202内的丢失分组PM。在操作412处,方法400识别控制层210的重传缓冲区212包括丢失分组PM。在操作414处,方法400确定发送器层220的发送器缓冲区222是否包括所识别的丢失分组PM。当发送器缓冲区222包括所识别的丢失分组PM时,在操作416处,方法400将所识别的丢失分组PM重传到接收节点310。
参照图5,在操作502处,方法500在接收缓冲区330处接收分组的数据P1-i。分组的数据P1-i对应于媒体流110,并包括指示与媒体流110相关联的比特率输入112a和时延输入112b的报头206。在操作504处,方法500在接收器设备300的反馈节点320处生成控制分组PC。这里,控制分组PC是基于接收到的分组的数据P1-i,并且控制分组PC识别接收到的分组的数据P1-i中的丢失分组PM。在操作506处,方法500将控制分组PC从反馈节点320传达到发送器设备200的控制层210。控制层210包括重传缓冲区212,并且控制层210被配置成执行以下操作:识别重传缓冲区212包括由控制分组PC所识别的丢失分组PM;确定发送器设备200的发送器层220的发送器缓冲区222是否包括所识别的丢失分组PM;以及当发送器缓冲区222包括所识别的丢失分组PM时,指令发送器层220重传所识别的丢失分组PM。应当指出,在一些实施例中,当重传缓冲区212包括所识别的丢失分组PM而发送器缓冲区222不包括所识别的丢失分组PM时,写入器216可以被配置成将所识别的丢失分组写入到发送器层220的队列中。在操作508处,方法500在接收缓冲区330处接收所重传的丢失分组PM。当自接收到分组的数据P1-i起的延迟量满足时延输入112b时,在操作510处,方法500将分组的数据P1-i发射到目的地。
参照图6,在操作602处,方法600接收数据的输入媒体流110、比特率输入112a和时延输入112b。这里,比特率输入112a和时延输入112b与数据的输入媒体流110的传输相关联。在操作604处,方法600将输入媒体流110作为分组的数据P1-i传送到接收节点310。这里,分组的数据P1-i包括指示比特率输入112a和时延输入112b的报头206。接收节点310基于报头206的时延输入112b和比特率输入112a而配置有接收缓冲区330。接收节点310也被配置成当自接收到分组的数据P1-i起的延迟量满足时延输入112b时,将分组的数据P1-i发射到目的地。在操作606处,方法600从反馈节点320接收控制分组PC。控制分组PC识别分组的数据P1-i的传输202内的丢失分组PM。在操作608处,方法600识别重传缓冲区212包括丢失分组PM。在操作610处,方法600确定配置成发送分组的数据P1-i的发送器缓冲区222是否包括所识别的丢失分组PM。当发送器缓冲区222包括所识别的丢失分组PM时,在操作612处,方法600将所识别的丢失分组PM重传到接收节点310。
图7是示例计算设备700的示意图,该示例计算设备可以用于实现本文档中描述的系统(例如,直播流连接器的发送器200和接收器300)和方法(例如,方法400、500以及600)。计算设备700旨在表示各种形式的数字计算机,诸如膝上型电脑、台式机、工作站、个人数字助理、服务器、刀片服务器、大型机和其它适当的计算机。在这里示出的组件、其连接和关系以及其功能仅意在为示例性的,而不意在限制本文档中描述和/或要求保护的发明的实现方式。
计算设备700包括处理器710(例如,数据处理硬件)、存储器720(例如,存储器硬件)、存储设备730、连接到存储器720和高速扩展端口750的高速接口/控制器740以及连接到低速总线770和存储设备730的低速接口/控制器760。组件710、720、730、740、750和760中的每一个均使用各种总线来互连,并且可以被安装在公共母板上或者酌情以其它方式安装。处理器710能够处理用于在计算设备700内执行的指令,包括存储在存储器720中或存储在存储设备730上以在诸如耦合到高速接口740的显示器780的外部输入/输出设备上显示用于图形用户界面(GUI)的图形信息的指令。在其它实现方式中,可以酌情使用多个处理器和/或多个总线以及多个存储器和多种类型的存储器。另外,可以连接多个计算设备700,其中每个设备提供必要操作的部分(例如,作为服务器组、一组刀片服务器或多处理器系统)。
存储器720非暂时性地存储计算设备700内的信息。存储器720可以是计算机可读介质、易失性存储单元或非易失性存储单元。非暂时性存储器720可以是用于在暂时或永久基础上存储程序(例如,指令序列)或数据(例如,程序状态信息)以供由计算设备700使用的物理设备。非易失性存储器的示例包括但不限于闪速存储器和只读存储器(ROM)/可编程只读存储器(PROM)/可擦除可编程只读存储器(EPROM)/电子可擦除可编程只读存储器(EEPROM)(例如,通常用于固件,诸如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、相变存储器(PCM)以及磁盘或磁带。
存储设备730能够为计算设备700提供大容量存储。在一些实现方式中,存储设备730是计算机可读介质。在各种不同的实现方式中,存储设备730可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪速存储器或其它类似的固态存储设备或设备的阵列,包括存储区域网络或其它配置中的设备。在附加实现方式中,计算机程序产品被有形地体现在信息载体中。计算机程序产品包含指令,这些指令当被执行时,执行一种或多种方法,诸如上述方法。信息载体是计算机或机器可读介质,诸如存储器720、存储设备730或处理器710上的存储器。
高速控制器740管理计算设备700的带宽密集操作,然而低速控制器760管理较低带宽密集操作。职责的这种分配仅是示例性的。在一些实现方式中,高速控制器740被耦合到存储器720、显示器780(例如,通过图形处理器或加速器),并且被耦合到高速扩展端口750,该高速扩展端口可以接受各种扩展卡(未示出)。在一些实现方式中,低速控制器760被耦合到存储设备730和低速扩展端口790。可以包括各种通信端口(例如,USB、蓝牙、以太网、无线以太网)的低速扩展端口790可以例如通过网络适配器被耦合到一个或多个输入/输出设备,诸如键盘、指点设备、扫描仪或诸如交换机或路由器的联网设备。
如图中所示,可以以许多不同的形式实现计算设备700。例如,它可以作为标准服务器700a被实现或在一组此类服务器700a中被多次实现,作为膝上型计算机700b或者作为机架服务器系统700c的一部分被实现。
能够在数字电子和/或光学电路、集成电路、专门地设计的ASIC(专用集成电路)、计算机硬件、固件、软件和/或它们的组合中实现本文描述的系统和技术的各种实现方式。这些各种实现方式能够包括一个或多个计算机程序中的实现方式,这些程序在包括至少一个可编程处理器的可编程系统上可执行和/或可解释,该至少一个可编程处理器可以是专用的或通用的,被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并且向存储系统、至少一个输入设备和至少一个输出设备传送数据和指令。
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且能够用高级过程和/或面向对象编程语言和/或用汇编/机器语言加以实现。如本文所使用的,术语“机器可读介质”和“计算机可读介质”是指用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如,磁盘、光盘、存储器、可编程逻辑器件(PLD)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
本说明书中描述的过程和逻辑流程能够通过一个或多个可编程处理器执行一个或多个计算机程序以通过对输入数据进行操作并生成输出来执行功能而被执行。过程和逻辑流程也能够由例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)的专用逻辑电路执行。例如,适合于执行计算机程序的处理器包括通用微处理器和专用微处理器两者以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的必要元件是用于执行指令的处理器以及用于存储指令和数据的一个或多个存储设备。通常,计算机也将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者在操作上耦合以从该一个或多个大容量存储设备接收数据或者将数据转移到该一个或多个大容量存储设备,或者兼而有之。然而,计算机不必具有此类设备。适合于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储器设备,作为示例包括半导体存储器设备,例如EPROM、EEPROM和闪速存储器设备;磁盘,例如,内部硬盘或可移动盘;磁光盘;以及CD ROM和DVD-ROM盘。处理器和存储器能够由专用逻辑电路补充,或者并入在专用逻辑电路中。
为了提供与用户的交互,能够在计算机上实现本公开的一个或多个方面,该计算机具有显示设备,例如,用于向用户显示信息的CRT(阴极射线管)、LCD(液晶显示器)监视器或触摸屏,以及可选地用户能够用来向该计算机提供输入的键盘和指点设备,例如鼠标或轨迹球。其它种类的设备也能够用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感觉反馈,例如视觉反馈、听觉反馈或触觉反馈;并且能够以任何形式接收来自用户的输入,包括声学、语音或触觉输入。此外,计算机能够通过向由用户使用的设备发送文档或者从由用户使用的设备接收文档来与用户交互;例如,通过响应于从web浏览器接收到的请求而向用户的客户端设备上的web浏览器发送web页面。
已经描述了许多实现方式。然而,应理解,可以在不脱离本公开的精神和范围的情况下做出各种修改。因此,其它实现方式在以下权利要求的范围内。
Claims (29)
1.一种方法,包括:
在发送器设备的数据处理硬件处接收数据的输入媒体流、比特率输入和时延输入,所述比特率输入和所述时延输入与传送所述数据的输入媒体流相关联;
通过所述数据处理硬件将所述输入媒体流的数据分组,所分组的数据包括指示所述比特率输入和所述时延输入的报头;
通过所述数据处理硬件将所分组的数据传达到控制层的重传缓冲区和发送器层的发送器缓冲区,所述控制层和所述发送器层对应于所述数据处理硬件的分级层;
通过所述数据处理硬件将所分组的数据从所述发送器层的发送器缓冲区传送到接收节点,所分组的数据在被所述接收节点接收时使所述接收节点:
基于所述报头的所述时延输入和所述比特率输入来初始化接收缓冲区;并且
当自接收到所分组的数据起的延迟量满足所述时延输入时,将所分组的数据发射到目的地;
在所述数据处理硬件的所述控制层处从反馈节点接收控制分组,所述控制分组识别所分组的数据的传输中的丢失分组;
通过所述数据处理硬件识别所述控制层的所述重传缓冲区包括所述丢失分组;以及
通过所述数据处理硬件确定所述发送器层的所述发送器缓冲区是否包括所识别的丢失分组;以及
当所述发送器缓冲区包括所识别的丢失分组时,通过所述数据处理硬件的所述发送器层将所识别的丢失分组重传到所述接收节点。
2.根据权利要求1所述的方法,其中,基于所述比特率输入和所述时延输入,动态地构造所述重传缓冲区、所述发送器缓冲区和所述接收缓冲区中的每一个。
3.根据权利要求1所述的方法,其中,所述重传缓冲区、所述发送器缓冲区或所述接收缓冲区中的至少一个包括循环缓冲区。
4.根据权利要求1所述的方法,进一步包括当所述发送器缓冲区未能包括所识别的丢失分组时:
通过所述数据处理硬件的所述控制层将所识别的丢失分组写入到所述发送器缓冲区;以及
通过所述数据处理硬件的所述发送器层将所识别的丢失分组从所述发送器缓冲区重传到所述接收节点。
5.根据权利要求1所述的方法,其中,传送所分组的数据包括将所分组的数据分布到多个接收节点。
6.根据权利要求1所述的方法,其中,所述接收节点进一步被配置成:
从所述目的地处的终端客户端接收对于所分组的数据的查询;和
基于查询从每个节点到所述终端客户端发射所分组的数据。
7.根据权利要求1所述的方法,其中:
所述发送设备的所述数据处理硬件的所述控制层和所述发送器层位于本地广播器处,并且
所述接收节点和所述反馈节点位于远离所述本地广播器的远程系统处。
8.根据权利要求1所述的方法,其中,所述控制层被配置成执行下述操作:
管理所述重传缓冲区;
接收所述控制分组;
将所述控制分组的所识别的丢失分组与所述重传缓冲区的分组进行比较;
将所识别的丢失分组写入到所述发送器缓冲区;以及
存储分组信息,所述分组信息包括分组应答、分组发送时间戳和分组重传时间戳。
9.根据权利要求1所述的方法,进一步包括:
通过所述数据处理硬件的所述发送器层将往返时间(RTT)ping分组发送到所述接收节点;
在所述数据处理硬件的所述控制层处接收所发送的RTT ping分组;以及
通过所述数据处理硬件的所述控制层基于所接收的RTT ping分组来生成往返时间。
10.根据权利要求9所述的方法,其中,将所识别的丢失分组重传到所述接收节点进一步包括:通过所述控制层将所识别的丢失分组到所述接收节点的重传延迟所述往返时间。
11.根据权利要求1所述的方法,其中,所述控制分组包括指示相应的接收分组和相应的丢失分组的位图结构,在对应于所述时延输入的延迟窗口内,所述位图结构从最早的丢失分组到最新的丢失分组进行组织。
12.根据权利要求1所述的方法,其中,所述发送器层被配置成以等于所述输入比特率的发送率发送所分组的数据。
13.根据权利要求1所述的方法,其中,所述发送器层被配置成基于所述发送器缓冲区的容量因数以所述输入比特率的约1.5倍至2.0倍的发送率来发送所分组的数据。
14.根据权利要求1所述的方法,其中,传达所分组的数据进一步包括:生成奇偶校验分组以发送所述接收节点来进行前向纠错。
15.根据权利要求14所述的方法,其中,将所分组的数据从所述发送器层的所述发送器缓冲区传送到所述接收节点进一步包括传送所述奇偶校验分组以进行前向纠错。
16.一种方法,包括:
在接收节点的数据处理硬件处,在所述数据处理硬件的接收缓冲区处接收分组的数据,所述分组的数据对应于媒体流,并且包括指示与所述媒体流相关联的比特率输入和时延输入的报头;
通过所述数据处理硬件在所述接收器设备的反馈节点处生成控制分组,所述控制分组基于所接收的分组的数据,并且从所接收的分组的数据中识别丢失分组;
通过所述数据处理硬件将所述控制分组从所述反馈节点传达到发送器设备的控制层,所述控制层包括重传缓冲区,并且被配置成执行下述操作:
识别所述重传缓冲区包括由所述控制分组识别的所述丢失分组;
确定所述发送器设备的发送器层的发送器缓冲区是否包括所识别的丢失分组;以及
当所述发送器缓冲区包括所识别的丢失分组时,指令所述发送器层重传所识别的丢失分组;
在所述数据处理硬件处,在所述接收缓冲区处接收所重传的识别的丢失分组;以及
当自接收到所述分组的数据起的延迟量满足所述时延输入时,通过所述数据处理硬件将所述分组的数据发射到目的地。
17.根据权利要求16所述的方法,其中,基于所述比特率输入和所述时延输入,动态地构造所述重传缓冲区、所述发送器缓冲区和所述接收缓冲区中的每一个。
18.根据权利要求16所述的方法,其中,所述重传缓冲区、所述发送器缓冲区或所述接收缓冲区中的至少一个包括循环缓冲区。
19.根据权利要求16所述的方法,其中,所述控制层的操作进一步包括当所述发送器缓冲区未能包括所识别的丢失分组时:
将所识别的丢失分组写入到所述发送器缓冲区;和
指示将所识别的丢失分组从所述发送器缓冲区重传到所述接收节点。
20.根据权利要求16所述的方法,其中,接收所述分组的数据进一步包括在多个接收节点处接收所述分组的数据。
21.根据权利要求16所述的方法,进一步包括:
在所述接收节点的所述数据处理硬件处从所述目的地处的终端客户端接收对于所述分组的数据的查询;和
通过所述接收节点的所述数据处理硬件基于查询来从每个节点到所述终端客户端发射所述分组的数据。
22.根据权利要求16所述的方法,其中:
所述发送设备的所述控制层和所述发送器层位于本地广播器处,并且
所述接收节点和所述反馈节点位于远离所述本地广播器的远程系统处并且对应于接收设备。
23.根据权利要求16所述的方法,其中,所述控制层的操作进一步包括:
管理所述重传缓冲区;
将所述控制分组的所识别的丢失分组与所述重传缓冲区的分组进行比较;
将所识别的丢失分组写入到所述发送器缓冲区;以及
存储分组信息,所述分组信息包括分组应答、分组发送时间戳和分组重传时间戳。
24.根据权利要求16所述的方法,进一步包括:
在所述数据处理硬件处从所述接收节点处的所述发送器层接收往返时间(RTT)ping分组,所述RTT ping分组被配置成确定分组的往返时间;和
通过所述数据处理硬件将所述RTT ping分组从所述接收节点发送到所述控制层。
25.根据权利要求24所述的方法,其中,所述控制层的操作进一步包括:将所识别的丢失分组到所述接收节点的重传延迟所述往返时间。
26.根据权利要求16所述的方法,其中,所述控制分组包括指示相应的接收分组和相应的丢失分组的位图结构,在对应于所述时延输入的延迟窗口内,所述位图结构从最早的丢失分组到最新的丢失分组进行组织。
27.根据权利要求16所述的方法,其中,所述发送器层被配置成以等于所述输入比特率的发送率发送所述分组的数据。
28.根据权利要求16所述的方法,其中,所述发送器层被配置成基于所述发送器缓冲区的容量因数以所述输入比特率的约1.5倍至2.0倍的发送率来发送所述分组的数据。
29.根据权利要求16所述的方法,其中,接收所述分组的数据进一步包括接收奇偶校验分组以进行前向纠错。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/149,835 US10686861B2 (en) | 2018-10-02 | 2018-10-02 | Live stream connector |
US16/149,835 | 2018-10-02 | ||
PCT/US2019/054237 WO2020072603A1 (en) | 2018-10-02 | 2019-10-02 | Live stream connector |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112313918A true CN112313918A (zh) | 2021-02-02 |
CN112313918B CN112313918B (zh) | 2023-09-05 |
Family
ID=68296764
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980038381.3A Active CN112313918B (zh) | 2018-10-02 | 2019-10-02 | 直播流连接器 |
Country Status (5)
Country | Link |
---|---|
US (1) | US10686861B2 (zh) |
EP (1) | EP3861697B1 (zh) |
KR (1) | KR102562258B1 (zh) |
CN (1) | CN112313918B (zh) |
WO (1) | WO2020072603A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11012378B2 (en) * | 2016-08-02 | 2021-05-18 | Telefonaktiebolaget Lm Ericsson (Publ) | Methods and apparatus for shared buffer allocation in a transport node |
US11582638B2 (en) * | 2019-01-03 | 2023-02-14 | Qualcomm Incorporated | Selective relay of data packets |
US12063574B2 (en) | 2021-07-21 | 2024-08-13 | Qualcomm Incorporated | Enhanced broadcast services (EBCS) downlink broadcasts |
WO2023003663A1 (en) * | 2021-07-21 | 2023-01-26 | Qualcomm Incorporated | Enhanced broadcast services (ebcs) downlink broadcasts |
US11863317B2 (en) * | 2021-08-25 | 2024-01-02 | BitRipple, Inc. | Methods for reliable low latency data delivery using erasure codes and feedback |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020120942A1 (en) * | 2001-02-27 | 2002-08-29 | Pace Micro Technology Plc. | Apparatus for the decoding of video data in first and second formats |
US20060291468A1 (en) * | 2005-06-22 | 2006-12-28 | Rajendra Bopardikar | Selective re-transmission of lost multi-media data packets |
CN101584157A (zh) * | 2006-09-26 | 2009-11-18 | 利弗有限公司 | 远程传输系统 |
CN102118653A (zh) * | 2009-12-31 | 2011-07-06 | 华为技术有限公司 | 保障网络电视直播业务的业务服务质量的方法和设备 |
US20120281562A1 (en) * | 2011-05-06 | 2012-11-08 | Google Inc. | Apparatus and method for rendering video with retransmission delay |
CN102804714A (zh) * | 2010-02-25 | 2012-11-28 | 斯凯普公司 | 控制分组传输 |
CN102835058A (zh) * | 2010-04-09 | 2012-12-19 | 阿尔卡特朗讯公司 | 多媒体内容广播过程 |
US20150180785A1 (en) * | 2013-12-20 | 2015-06-25 | Imagination Technologies Limited | Packet Loss Mitigation |
US20170041238A1 (en) * | 2014-04-03 | 2017-02-09 | Orbital Multi Media Holdings Corporation | Data flow control method |
CN106664440A (zh) * | 2014-07-03 | 2017-05-10 | 三星电子株式会社 | 用于在多媒体系统中接收和发送信息的方法和设备 |
US20180063011A1 (en) * | 2016-08-24 | 2018-03-01 | Microsoft Technology Licensing, Llc | Media Buffering |
WO2018109500A1 (en) * | 2016-12-16 | 2018-06-21 | In Aria! Ltd | Low delay, error resilient video transport protocol over public ip transit |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010093875A (ko) * | 2000-04-01 | 2001-10-31 | 이승룡 | 멀티미디어 스트리밍 환경에서 클라이언트 측에서 통합된푸시/풀 버퍼 관리 방법 |
US6850488B1 (en) | 2000-04-14 | 2005-02-01 | Sun Microsystems, Inc. | Method and apparatus for facilitating efficient flow control for multicast transmissions |
US7032153B1 (en) * | 2000-11-28 | 2006-04-18 | Nortel Networks Limited | Dynamic automatic retransmission request in wireless access networks |
US7218610B2 (en) * | 2001-09-27 | 2007-05-15 | Eg Technology, Inc. | Communication system and techniques for transmission from source to destination |
KR100592412B1 (ko) * | 2004-01-05 | 2006-06-22 | 삼성전자주식회사 | 실시간 트래픽 특성을 고려하여 큐를 관리하는 액세스네트워크 장치 및 그 큐 관리 방법 |
US8238287B1 (en) * | 2004-10-06 | 2012-08-07 | Marvell International Ltd. | Method and apparatus for providing quality of service (QoS) in a wireless local area network |
BRPI0709871B1 (pt) * | 2006-04-12 | 2019-10-15 | Tq Delta, Llc. | Retransmissão de pacote e compartilhamento de memória |
US7787367B2 (en) * | 2006-05-23 | 2010-08-31 | International Business Machines Corporation | Method and a system for flow control in a communication network |
WO2008090980A1 (ja) | 2007-01-25 | 2008-07-31 | Panasonic Corporation | パケット往復時間測定方法 |
US20110206022A1 (en) | 2007-12-28 | 2011-08-25 | Agere Systems Inc. | QoS WIRELESS NETWORKING FOR HOME ENTERTAINMENT |
US8223641B2 (en) * | 2008-07-28 | 2012-07-17 | Cellco Partnership | Dynamic setting of optimal buffer sizes in IP networks |
WO2011040850A1 (en) | 2009-10-02 | 2011-04-07 | Telefonaktiebolaget Lm Ericsson (Publ) | Method for retransmission using checksums for identifying lost data packets |
US9699519B2 (en) | 2012-10-17 | 2017-07-04 | Netflix, Inc. | Partitioning streaming media files on multiple content distribution networks |
US9769043B2 (en) * | 2014-09-22 | 2017-09-19 | Avaya Inc. | Adaptive management of a media buffer |
-
2018
- 2018-10-02 US US16/149,835 patent/US10686861B2/en active Active
-
2019
- 2019-10-02 CN CN201980038381.3A patent/CN112313918B/zh active Active
- 2019-10-02 WO PCT/US2019/054237 patent/WO2020072603A1/en unknown
- 2019-10-02 KR KR1020207035495A patent/KR102562258B1/ko active IP Right Grant
- 2019-10-02 EP EP19791037.5A patent/EP3861697B1/en active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20020120942A1 (en) * | 2001-02-27 | 2002-08-29 | Pace Micro Technology Plc. | Apparatus for the decoding of video data in first and second formats |
US20060291468A1 (en) * | 2005-06-22 | 2006-12-28 | Rajendra Bopardikar | Selective re-transmission of lost multi-media data packets |
CN101584157A (zh) * | 2006-09-26 | 2009-11-18 | 利弗有限公司 | 远程传输系统 |
CN102118653A (zh) * | 2009-12-31 | 2011-07-06 | 华为技术有限公司 | 保障网络电视直播业务的业务服务质量的方法和设备 |
CN102804714A (zh) * | 2010-02-25 | 2012-11-28 | 斯凯普公司 | 控制分组传输 |
CN102835058A (zh) * | 2010-04-09 | 2012-12-19 | 阿尔卡特朗讯公司 | 多媒体内容广播过程 |
US20120281562A1 (en) * | 2011-05-06 | 2012-11-08 | Google Inc. | Apparatus and method for rendering video with retransmission delay |
US20150180785A1 (en) * | 2013-12-20 | 2015-06-25 | Imagination Technologies Limited | Packet Loss Mitigation |
US20170041238A1 (en) * | 2014-04-03 | 2017-02-09 | Orbital Multi Media Holdings Corporation | Data flow control method |
CN106664440A (zh) * | 2014-07-03 | 2017-05-10 | 三星电子株式会社 | 用于在多媒体系统中接收和发送信息的方法和设备 |
US20180063011A1 (en) * | 2016-08-24 | 2018-03-01 | Microsoft Technology Licensing, Llc | Media Buffering |
WO2018109500A1 (en) * | 2016-12-16 | 2018-06-21 | In Aria! Ltd | Low delay, error resilient video transport protocol over public ip transit |
Non-Patent Citations (1)
Title |
---|
郝力;戴青;王晓燕;: "一种基于UDP的终端缓冲区自适应调整方法的研究", 广东通信技术, no. 01 * |
Also Published As
Publication number | Publication date |
---|---|
EP3861697B1 (en) | 2023-12-27 |
EP3861697A1 (en) | 2021-08-11 |
CN112313918B (zh) | 2023-09-05 |
WO2020072603A1 (en) | 2020-04-09 |
KR20210006983A (ko) | 2021-01-19 |
KR102562258B1 (ko) | 2023-07-31 |
US10686861B2 (en) | 2020-06-16 |
US20200106824A1 (en) | 2020-04-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112313918B (zh) | 直播流连接器 | |
JP6284549B2 (ja) | マルチパスストリーミングのためのfecベースの信頼性のある転送制御プロトコル | |
JP6476197B2 (ja) | 輻輳制御ビットレート・アルゴリズム | |
CN106416179A (zh) | 实现扩展传输控制功能的传输加速器 | |
US20090138574A1 (en) | Information processing and transportation architecture for data storage | |
Rubenstein et al. | A study of proactive hybrid FEC/ARQ and scalable feedback techniques for reliable, real-time multicast | |
CN102239658B (zh) | 按需差错控制 | |
JP6147939B1 (ja) | 冗長符号化コンテンツデータ機能の選択的な利用を実施するトランスポートアクセラレータ | |
US9294227B2 (en) | LT staircase FEC code | |
US20240056224A1 (en) | Dynamic management of packet loss | |
US9673936B2 (en) | Method and system for providing error correction to low-latency streaming video | |
US9973215B1 (en) | Controlled multipath data packet delivery with forward error correction | |
JP5998923B2 (ja) | プログラム、情報処理装置、及び通信方法 | |
US7506036B1 (en) | Proxy device and method of operation for a windowing internet protocol data network | |
Sinha et al. | An adaptive multiple retransmission technique for continuous media streams | |
US20150089017A1 (en) | Rapid recovery method for incomplete file transfer from sender to recipient | |
WO2024022243A1 (zh) | 数据传输方法、网络设备、计算机设备及存储介质 | |
US20230060948A1 (en) | Methods for Reliable Low Latency Data Delivery Using Erasure Codes and Feedback |
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 |