CN105493457A - 基于传输控制协议(tcp)的视频流传输 - Google Patents

基于传输控制协议(tcp)的视频流传输 Download PDF

Info

Publication number
CN105493457A
CN105493457A CN201480048089.7A CN201480048089A CN105493457A CN 105493457 A CN105493457 A CN 105493457A CN 201480048089 A CN201480048089 A CN 201480048089A CN 105493457 A CN105493457 A CN 105493457A
Authority
CN
China
Prior art keywords
tcp
fragment
contextual information
disappearance
receiver
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
CN201480048089.7A
Other languages
English (en)
Other versions
CN105493457B (zh
Inventor
瓦拉巴琼斯语拉·S·索马雅祖鲁
桑吉塔·M·西德高达
武-池·冯
哈斯纳·穆斯塔法
穆泰俄赫·M·温卡塔查拉姆
丹尼·摩西
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.)
Apple Inc
Original Assignee
Intel IP 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 Intel IP Corp filed Critical Intel IP Corp
Publication of CN105493457A publication Critical patent/CN105493457A/zh
Application granted granted Critical
Publication of CN105493457B publication Critical patent/CN105493457B/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/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/631Multimode Transmission, e.g. transmitting basic layers and enhancement layers of the content over different transmission paths or transmitting with different error corrections, different keys or with different transmission protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • 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/19Flow control; Congestion control at layers above the network layer
    • H04L47/193Flow control; Congestion control at layers above the network layer at the transport layer, e.g. TCP related
    • 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/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • 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/70Media network packetisation
    • 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
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4343Extraction or processing of packetized elementary streams [PES]
    • 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/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4347Demultiplexing of several video streams
    • 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/436Interfacing a local distribution network, e.g. communicating with another STB or one or more peripheral devices inside the home
    • H04N21/4363Adapting the video stream to a specific local network, e.g. a Bluetooth® network
    • H04N21/43637Adapting the video stream to a specific local network, e.g. a Bluetooth® network involving a wireless protocol, e.g. Bluetooth, RF or wireless LAN [IEEE 802.11]
    • 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/637Control signals issued by the client directed to the server or network components
    • H04N21/6375Control 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
    • 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/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/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64707Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless for transferring content from a first network to a second network, e.g. between IP and wireless
    • 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/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

用于无线设备处减少数据流传输中的延迟,同时改善重缓冲以及视频质量的技术被公开。缺失的数据片段可基于来自无线网络中的网络元件中的多个数据片段中接收的乱序数据片段而被检测。基于上下文信息,假确认(ACK)可被发送至无线网络中的网络元件,其确认缺失的数据片段在无线设备处被接收到。在没有缺失的数据片段的情况下,乱序数据片段被提供用于无线设备处的显示。

Description

基于传输控制协议(TCP)的视频流传输
相关申请
本申请要求于2013年9月30日递交的、案卷号为P56333的美国非临时专利申请No.14/041,446的优先权,其整个说明书被全部结合于此以用于所有目的。
背景技术
超文本传输协议(HTTP)流传输被广泛用于互联网视频的多媒体递送的形式。基于HTTP的多媒体递送由于广泛采用了HTTP和HTTP的底层协议(包括传输控制协议(TCP)/互联网协议(IP))而提供可靠性和部署简易性。此外,基于HTTP的多媒体递送通过避免网络地址转换(NAT)和防火墙穿越问题而使得能够进行简单和轻松的流传输服务。基于HTTP的流传输还提供使用标准HTTP服务器和高速缓存来代替专门的流传输服务器的能力,并且由于服务器侧上的最少状态信息而具有更好的可扩展性。在一个示例中,HTTP流传输可发生于节点(例如,传输站)和无线设备(例如,移动设备)之间。可替换地,HTTP流传输可发生于节点和有线设备(例如,台式计算机)之间。
无线移动通信技术使用各种标准和协议以在节点和无线设备之间发送数据。一些无线设备通过在下行链路(DL)传输中使用正交频分多址(OFDMA)、在上行链路(UL)传输中使用单载波频分多址(SC-FDMA)来进行通信。使用正交频分复用(OFDM)用于信号传输的标准和协议包括第三代合作伙伴计划(3GPP)长期演进(LTE)(例如,版本8、9、10、11或12)、电气和电子工程师协会(IEEE)802.16标准(例如,802.16e、802.16m)(行业团体通常将其称为WiMAX(全球微波互联接入)),以及IEEE802.11标准(行业团体通常将其称为WiFi,例如802.11-2012、802.11ac、或802.11ad)。
在3GPP无线接入网(RAN)LTE系统中,节点可以是演进型通用陆地无线接入网(E-UTRAN)节点B(通常也被表示为演进节点B、增强型节点B、eNodeB、或eNB)和无线网络控制器(RNC)的组合,其与被称为用户设备(UE)的无线设备通信。下行链路(DL)传输可以是从节点(例如,eNodeB)到无线设备(例如,UE)的通信,上行链路(UL)传输可以是从无线设备到节点的通信。
附图说明
通过下面的详细描述并结合附图,本公开的特征和优点将是显而易见的,附图通过示例的方式一起示出了本公开的特征;并且其中:
图1A根据示例示出了被传送到传输控制协议(TCP)缓冲器的多个TCP片段;
图1B根据示例示出了从传输控制协议(TCP)缓冲器传送出的多个TCP片段;
图1C根据示例示出了从传输控制协议(TCP)缓冲器传送出的、不存在缺失的TCP片段的多个TCP片段;
图1D根据示例示出了从传输控制协议(TCP)缓冲器传送出的、不存在缺失的TCP片段的多个TCP片段;
图2根据示例示出了使用上下文信息来传送传输控制协议(TCP)片段的系统;
图3根据示例示出了可操作以减少数据流传输中的延迟的传输控制协议(TCP)接收器的计算机电路的功能;
图4根据示例示出了无线设备处用于减少数据流传输中的延迟的方法的流程图;
图5根据示例示出了无线设备(例如,用户设备)的框图;以及
图6根据示例示出了无线设备(例如,用户设备)的图示。
下面将参考所示出的示例性实施例,并且这里将使用具体语言来描述这些示例性实施例。然而,应该理解的是此处不意图对本发明的范围进行任何限制。
具体实施方式
在本发明被公开和描述前,应该理解的是本发明不限于本文所公开的特定结构、处理步骤、或材料,而是被扩展至将被相关领域的普通技术人员认识到的其等同形式。还应该理解的是,本文所采用的术语仅被用于描述特定示例的目的并且不意图是限制性的。在不同图示中的相同参考标号表示相同元素。在流程图和处理中所提供的数字被提供用于清晰地说明步骤和操作,而不一定指示特定的次序或顺序。
示例实施例
下面提供了对技术实施例的初步概述,然后将在后面更详细地描述具体的技术实施例。该初步概述旨在帮助读者更快地理解技术,而并非意图标识技术的关键特征或必要特征,也不意图限制所要求保护的主题的范围。
超文本传输协议(HTTP)流传输是互联网视频(例如,直播视频或按需式视频)和音频内容(被称作多媒体内容、媒体内容、媒体服务等等)的多媒体递送的形式。在HTTP流传输中,多媒体文件可被划分为一个或多个片段(segment)并且使用HTTP协议被递送至客户端。基于HTTP的多媒体内容递送(流传输)由于HTTP和HTTP的底层协议(包括传输控制协议(TCP)/互联网协议(IP))二者的先前广泛采用而提供可靠性和简单的内容递送。基于HTTP的递送能够通过避免网络地址转换(NAT)和防火墙穿越问题而使得能够进行简单和轻松的流传输服务。基于HTTP的流式数据的传输还可提供使用标准HTTP服务器和高速缓存来代替专门的流传输服务器的能力。
此外,HTTP流传输能够提供若干益处,例如可靠的传输以及对网络条件的适应性以确保公正并避免拥塞。HTTP流传输由于服务器侧上的最少或被减少的状态信息而能够提供可扩展性。然而,因为拥塞控制和严格的流控制,HTTP流传输可导致延时和传输速率的波动。因此,基于HTTP的流传输系统包括缓冲器来缓解速率变动,但是作为结果,当视频被流传输时用户可经历高延时。
HTTP动态自适应流传输(DASH)是自适应多媒体流传输技术,其中多媒体文件可被划分为一个或多个片段并且使用HTTP被递送到客户端。DASH规定了媒体呈现描述(MPD)元数据文件的格式,该MPD元数据文件提供关于服务器中存储的媒体内容表示的结构和不同版本、以及片段格式的信息。例如,元数据文件包含关于媒体播放器的初始化和媒体片段的信息(媒体播放器可以查看初始化片段来理解容器格式和媒体定时信息),以确保片段到用于切换和与其他表示的同步呈现的媒体呈现时间轴的映射。DASH客户端可以通过经由一系列HTTP请求-响应处理下载片段,来接收多媒体内容。DASH可以提供在对于移动设备可用的带宽改变时在媒体内容的不同比特率表示之间动态切换的能力。因此,DASH可以允许对改变的网络和无线链路条件、用户偏好和设备性能(诸如显示器分辨率、所采用的计算机处理器的类型、存储器资源可用性等)的快速适应。DASH是能够用于解决基于实时协议(RTP)和RTSP的流传输以及基于HTTP的渐进式下载的缺点的一种示例技术。基于DASH的自适应流传输是基于RTSP自适应流传输的替代方法,其在第三代合作伙伴技术(3GPP)技术规范(TS)26.247各个版本(包括版本10和11)以及动态图像专家组(MPEG)ISO/IECDIS23009-1中被标准化。
HTTP的底层协议TCP是“连接导向的”数据递送服务,从而使得两个TCP配置的设备能够彼此建立TCP连接以使能这两个TCP设备之间的数据通信。一般地,“数据”可指代TCP片段或数据的字节。此外,TCP是全双工协议。因此,两个TCP设备中的每个设备可支持在相对方向上流送的一对数据流。因此,第一TCP设备可与第二TCP设备传送(即,发送或接收)TCP片段,并且第二TCP设备可与第一TCP设备传送(即,发送或接收)TCP片段。
TCP可向在第一TCP设备和第二TCP设备之间传送的每个TCP片段分配段号。发送TCP设备可在接收TCP设备接收TCP片段之后期待来自接收TCP设备的肯定确认(ACK)。换而言之,接收TCP设备可在接收到TCP片段之后向发送TCP设备传送ACK消息。如果未在超时区间内接收到ACK,则TCP片段可被重传。因此,如果发送TCP设备在超时区间内没有从接收TCP设备接收到ACK消息,则发送TCP设备可向接收TCP设备重新传送TCP片段。当TCP片段乱序地到达接收TCP设备处时,接收TCP设备可使用段号来重新安排TCP片段和/或使用段号来消除重合的TCP片段。
在接收TCP设备和发送TCP设备之间传送的ACK消息可包括接收TCP设备除了上次接收的TCP片段外能够从发送TCP设备接收的TCP片段的数目。换而言之,接收TCP设备可传送能够从发送TCP设备接收的最高片段数目,以使得接收到的TCP片段不产生接收TCP设备缓冲器中中的超载和溢出。一般地,TCP设备可在TCP片段被传送至显示器设备之前将从网络元件接收的TCP片段暂时存储在缓冲器中。可替换地,在TCP片段被提供给显示器设备之前,TCP片段可从TCP接收器缓冲器被传送至用户设备(UE)内的另一区域或模块进行处理。在一个示例中,乱序地到达的TCP片段可在TCP接收器缓冲器内被重新安排从而使得按序TCP片段可被递送至显示器设备。能够在TCP缓冲器中存储的TCP片段的数目可取决于TCP缓冲器大小。
此外,在接收TCP设备和发送TCP设备之间传送的ACK消息可包括下次期待的段号。下次期待的段号可以是接收TCP设备期待从发送TCP设备接收的下一段号。换而言之,下次期待的段号可在逻辑上跟随在接收TCP设备处成功接收的最后TCP片段。
在一个示例中,基于HTTP/TCP的视频流传输可通过使用视频数据和/或无线网络的特性来提升。结果,基于HTTP/TCP的视频流传输可经历减少的延迟和/或改善的视频质量。具体地,来自应用层和网络层的跨层信息可被并入以修改TCP接收器的功能。由于对TCP接收器的修改可被实现在客户端侧,对网络基础设施的修改可以是不必要的。对TCP接收器的修改可改善重缓冲、平均图片质量、速率切换数目等等。结果,用户的体验质量(QoE)也可被改善。
如将在下面更详细地论述的那样,TCP接收器可从网络元件(例如,TCP设备)接收多个TCP片段。TCP接收器可确定多个TCP片段中缺失了一TCP片段。换而言之,TCP接收器预期要接收该TCP片段,但该TCP片段未被传送至TCP接收器(即,缺失该TCP片段)。
一般地,缺失的TCP片段可从网络元件被重传至TCP接收器。当TCP接收器成功地接收到该缺失的TCP片段时,该缺失的TCP片段可被称为被延迟的TCP片段。TCP接收器了确定被延迟的TCP片段是否在预定时间阈值内被接收。在一个示例中,预定时间阈值可基于网络层信息和应用层信息被动态配置。
此外,TCP接收器可确定被延迟的TCP片段是否具有较低的优先级(与被传送至TCP接收器的其他TCP片段相比)。TCP接收器可使用应用层信息和网络层信息来确定被延迟的TCP片段具有较低的优先级。网络层上下文信息可包括以下各项中的至少一项:包括媒体访问控制(MAC)层分组丢失的明确丢失指示,由于经由TCP接收器缓冲器内容分析推断的拥塞的丢失,或者明确的网络拥塞信息。应用层上下文信息可包括以下各项中的至少一项:缓冲器状态、帧类型、视频帧的显著性(saliency)、视频内容的类型、以及诸如设备上下文信息或用户上下文信息之类的其他上下文。
如果被延迟的TCP片段(基于应用层和网络层信息)被确定为具有较低的优先级并且被延迟的TCP片段未在预定时间阈值内在TCP接收器处被接收到,则被延迟的TCP片段可被丢弃。换而言之,TCP接收器可向显示器设备递送具有缺失的TCP片段的多个TCP片段。此外,TCP接收器可向网络元件发送假确认(ACK)消息,该消息虚假地确认TCP接收器接收了先前缺失的TCP片段。此外,假ACK消息可包括接收TCP设备期待从发送TCP设备接收的下一TCP片段(即,逻辑上跟随被延迟的TCP片段的TCP片段)的段号。
图1A示出了被传送到TCP接收器的多个传输控制协议(TCP)片段110。具体地,TCP片段可在TCP接收器缓冲器中被接收。在一个示例中,TCP接收器缓冲器可从网络元件(例如,发送TCP设备)接收TCP片段。被传送至TCP接收器缓冲器的多个TCP片段可包括缺失的TCP片段。例如,片段1可在时间(TS_1)处被传送,片段2可能未被传送至TCP接收器缓冲器,片段3可在TS_3处被传送,片段4可在TS_4处被传送,并且片段5可在TS_5处被传送。因此,TCP接收器缓冲器可包括对应于缺失的片段2的空洞。
当TCP接收器缓冲器接收到片段3而没有接收片段2时,TCP接收器缓冲器检测到片段3是乱序片段。换而言之,片段3是在TCP接收器缓冲器处被乱序接收的,因为TCP接收器缓冲器应当在接收片段3之前已经接收到片段2。当TCP接收器接收乱序片段(例如,片段3)时,TCP接收器可向网络元件传送确认(ACK)消息,该消息证实该乱序片段在TCP接收器处被接收到。此外,ACK消息可包括下次期待的段号(即,TCP接收器期待从网络元件接收的下一TCP片段)。在一个示例中,下次期待的段号可指代被调度为要在该乱序片段(例如,片段3)前被接收的缺失TCP片段(例如,片段2)。因此,当TCP接收器从网络元件接收片段3时,TCP接收器可向网络元件传送片段2作为下次期待的段号的ACK消息。
网络设备可从TCP接收器接收指示了下次期待的段号(例如,片段2)的ACK消息。网络设备可重新发送该下次期待的段号(例如,片段2)到TCP接收器。由于片段2缺失,片段3、4和5可被暂时存储在TCP接收器缓冲器中直到片段2被成功重传到TCP接收器缓冲器。给定时间处可在TCP接收器缓冲器中被缓冲的片段的数目可由TCP接收器缓冲器大小限制。
在一个示例中,TCP接收器缓冲器可在片段3、4和5已经被成功递送至TCP接收器缓冲器之后的时间(TS_H)处接收片段2。TCP接收器缓冲器处的片段2的递送可填上由缺失的片段2造成的TCP接收器缓冲器中的空洞。因此,片段2可在被成功递送到TCP接收器缓冲器之后从缺失片段变为被延迟的片段。被缓冲的片段2-5可被例如传送至显示器设备。此外,在接收被延迟的片段2之后,TCP接收器可向网络元件发送ACK消息:(1)确认片段2在TCP接收器缓冲器处被接收以及(2)向网络元件通知下次期待的片段(例如,片段6)。
如前所述,被延迟的TCP片段可在TS_H处于TCP接收器缓冲器处被接收。TCP接收器缓冲器在向显示器设备传送被延迟的TCP片段(例如,片段2)以及乱序片段(例如,片段3-5)之前等待直到被延迟的TCP片段被接收到。因此,片段2-5可在TS_H(未在图1A中示出)处被传送至显示器设备。换而言之,片段2-5可在与片段2在TCP接收器缓冲器处被接收相对应的时间(即,TS_H)处被传送到显示器设备。被传送到显示器设备的片段2-5中的延迟(D)可等于TS_H-TS_1。结果,用户可在流传输视频时经历延时。
在一个示例中,TCP接收器可确定被延迟的TCP片段是否在时间阈值(Δ)内被接收。时间阈值(Δ)可被实现以减少被传送到显示器设备的片段的延迟。换而言之,可接受的延迟(D)的量可受限于时间阈值(Δ)。在一个示例中,时间阈值(Δ)可使用反馈机制、应用层信息、和/或网络层信息来确定。延迟可源自被乱序递送到TCP接收器缓冲器的一个或多个被延迟的TCP片段(即,被延迟的TCP片段被递送晚了),这进而影响了被延迟的TCP片段和/或乱序片段(例如,要在被延迟的TCP片段之后被递送的TCP片段)被递送给显示器设备的时间。
如图1B-1D所示,可存在描述与时间阈值(Δ)有关的、TCP片段被传送至显示器设备的延迟(D)的三种情形。在情形1中(如图1B所示),延迟(D)可少于或等于时间阈值(Δ)。在情形2中(如图1C所示),延迟(D)可大于时间阈值(Δ)。在情形3中(如图1D所示),时间阈值(Δ)可等于零。
图1B示出了多个TCP片段120(例如,片段1-5)从TCP接收器缓冲器到显示器设备的通信。片段1-5可从网络元件被传送至TCP接收器缓冲器。如图1A中所示,片段1可在TS_1处被传送,片段3在TS_3处,片段4在TS_4处,片段5在TS_5处,并且片段2在TS_H处。换而言之,片段2可以是被延迟的片段。
如图1B中所示,当片段2在时间阈值(Δ)内在TCP接收器缓冲器处被接收到(即,D≤Δ)时,则片段1-5可被按序传送至显示器设备。换而言之,被延迟的片段(例如,片段2)也可被传送至显示器设备。在此示例中,尽管片段2在TS_H处被接收,延迟(即,(TS_H-TS_1))是可接受的,因为它小于时间阈值Δ。片段1可在TS_1处从TCP接收器缓冲器被传送给显示器设备,并且片段2-5可在TS_H处被传送。此外,TCP接收器可向网络元件传送包括期待的段号(例如,期待的为6的段号)的确认(ACK)消息。
当被延迟的片段在时间阈值(Δ)内在TCP接收器缓冲器处被接收到时,TCP接收器可不确定与被延迟的片段相关联的优先级。一般地,被延迟的片段的优先级可使用应用层信息和/或网络层信息来确定。换而言之,在情形1中,TCP接收器可在被延迟的片段在时间阈值(Δ)内被传送至TCP接收器时向显示器设备递送TCP片段(没有使用被延迟的片段的优先级)。
图1C示出了多个TCP片段130(例如,片段1以及片段3-5)从TCP接收器缓冲器到显示器设备的通信。片段1-5可从网络元件被传送至TCP接收器缓冲器。如图1A中所示,片段1可在TS_1处被传送,片段3在TS_3处,片段4在TS_4处,片段5在TS_5处,并且片段2在TS_H处。换而言之,片段2可以是被延迟的片段。
如图1C中所示,当片段2未在时间阈值(Δ)内于TCP接收器缓冲器处被接收到(即,D>Δ)时,多个片段(除了被延迟的片段)可被传送至显示器设备。因此,被延迟的片段(例如,片段2)未被传送至显示器设备。在此示例中,当片段2未在时间阈值(Δ)内被接收到时,TCP接收器确定丢弃被延迟的片段。由于片段2未在时间阈值(Δ)内被接收到,延迟是不可接受的并且片段2被丢弃。
片段1可在TS_1处从TCP接收器缓冲器被传送给显示器设备,并且片段3-5可在TS_1+Δ处被传送,其中Δ表示TCP接收器等待片段2被递送的时间段。此外,TCP接收器可向网络元件传送包括期待的段号(例如,期待的为6的段号)的确认(ACK)消息。
如下文更详细地描述,当被延迟的片段未在时间阈值(Δ)内于TCP接收器缓冲器处被接收到时,TCP接收器缓冲器可确定与被延迟的片段相关联的优先级。例如,被延迟的片段的优先级可使用应用层信息和/或网络层信息来确定。在一种配置中,当被延迟的片段未在时间阈值(Δ)内被接收时,TCP接收器可基于被延迟的片段的优先级丢弃被延迟的片段(例如,片段2)。
图1D示出了多个TCP片段140(例如,片段1以及片段3-5)从TCP接收器缓冲器到显示器设备的通信。片段1-5可从网络元件被传送至TCP接收器缓冲器。如图1A中所示,片段1可在TS_1处被传送,片段3在TS_3处,片段4在TS_4处,片段5在TS_5处,并且片段2在TS_H处。换而言之,片段2可以是被延迟的片段。
如图1D中所示,当片段2在TCP接收器缓冲器处被较晚接收(即,D=0)时,多个片段(除了被延迟的片段)可被传送至显示器设备。换而言之,较晚的TCP片段可对应于当TCP接收器向显示器设备发送多个TCP片段时的空洞。因此,被延迟的片段(例如,片段2)未被传送至显示器设备。在此示例中,由于片段2被较晚接收,TCP接收器确定丢弃该被延迟的片段。
片段1可在TS_1处从TCP接收器缓冲器被传送给显示器设备,片段2在TS_3处,片段4在TS_4处,并且片段5在TS_5处。此外,TCP接收器可向网络元件传送包括期待的段号(例如,期待的为6的段号)的确认(ACK)消息。
当时间阈值(Δ)等于零时,TCP接收器可不确定与被延迟的片段相关联的优先级。换而言之吗,在情形3中,TCP接收器可将被延迟的TCP片段丢弃出被传送至显示器设备的多个TCP片段之外而无需使用被延迟的片段的优先级。
一般地,TCP接收器缓冲器中的TCP片段所经历的乱序延迟可以是:无序递送延迟(D=0)≤Δ≤有序递送延迟(D=TS_H-TS_1)。根据完全无序递送,所有较晚的乱序TCP片段可被看做空洞。换而言之,被延迟的片段可不被传送至显示器设备。根据有序递送,TCP片段可被无空洞地传送给显示器设备。因此,TCP分组丢失和延时之间的折中可根据应用层信息和网络层信息得出。
在一种配置中,TCP接收器可使用被延迟的片段(即,先前缺失但在后来的时间被递送的片段)的优先级来确定:当被延迟的片段未在时间阈值(Δ)内于TCP接收器处被接收时,是否丢弃被延迟的片段。可替换地,TCP接收器可使用被延迟的片段的优先级来确定:即使当被延迟的片段未在时间阈值(Δ)内于TCP接收器处被接收时,是否不丢弃被延迟的片段。一般地,应用层信息和/或网络层信息可指示视频质量的降低比源自被延迟的片段的视频延时重要。换而言之,相对于等待视频被加载,视频质量的降低是优选的。因此,与等待被延迟的片段被递送相反,TCP接收器可响应于对应用层和网络层信息的分析而完全丢弃被延迟的片段。
图2示出了使用上下文信息传送传输控制协议(TCP)片段的系统200。TCP接收器可接收TCP片段。上下文自适应判定块可确定接收到的TCP片段是否是乱序的。作为示例,当TCP接收器在没有接收片段2的情况下接收片段3时,TCP接收器可检测到该接收到的TCP片段(例如,片段3)是乱序的。TCP接收器然后可在接收该乱序片段之后接收被延迟的TCP片段(例如,片段2)。
在一个示例中,上下文自适应判定块202可确定被延迟的TCP片段是否包括应用上下文触发器。换而言之,应用上下文信息可使得TCP接收器能够确定被延迟的TCP片段是否应当被丢弃以使得多个TCP片段在没有被延迟的TCP片段的情况下被递送。关于多媒体信息的多种应用上下文信息可被识别,例如重放(playback)缓冲器状态、针对在重放缓冲器中期待的下一视频帧的帧类型或者其他显著性信息、关于由自适应流播放器执行的近期速率切换的历史信息等等。应用上下文信息可从对客户端上的DASH或其他HTTP自适应流播放器软件的客户端实现的修改中获得。
应用层上下文信息可包括缓冲器状态和历史、帧类型、显著性、内容类型、以及诸如设备上下文和/或用户上下文之类的其他上下文。例如,重放缓冲器和TCP接收器的缓冲器中的视频数据可针对数据流的不同部分具有不相等的优先级(例如,视频数据可具有取决于视频帧是I/P帧还是B帧的不相等优先级)。作为另一示例,当应用正在逼近播放缓冲器空乏(starvation)和/或从TCP接收器在重放缓冲器的末尾处期待的视频信息被确定为B帧时,上下文自适应判定块202可被提供此信息从而确定B帧是否应当被丢弃。
自适应流传输客户端可使用缓冲器状态和针对速率自适应判定的历史。除了当前的缓冲器状态之外,应用还可提供在刚刚过去的时间所做出的视频速率切换(例如,自适应)的历史。视频速率切换的历史可以是有用的,因为用户QoE还可受与速率切换相关联的频率的影响。
帧类型可影响是否可丢弃被延迟的TCP片段。I帧和P帧具有时间依赖性,其对后续的帧解码具有较大影响,而B帧不具有前面的时间依赖性并因此能够以更小的图片质量影响被丢弃。作为示例,I/P/B帧结构(“GOP”)可使得视频播放器能够确定序列中下一期待的P针对相对于下一I帧的位置。因此,潜在地丢弃此P帧的影响可被估计。帧类型信息可由视频播放器在帧头部明确可访问。
在一个示例中,就视觉影响方面的显著性(例如,给定帧的重要性)可被视频播放器使用。例如,如果H.264可扩展视频编码(SVC)被使用,则增强层数据可相比于基础层视频数据具有较低的重要性。关于显著性的应用层上下文信息可在帧头部明确可用或者可通过其他机制来提供。
此外,视频应用可依据内容是作为直播内容还是作为点播视频(VOD)被观看而不同地修改重缓冲与图片质量之间的折中。此外,视频应用可依据内容是否与体育、新闻等等相关来修改重缓冲与图片质量之间的折中。关于内容类型的应用上下文信息可被提供在内容元数据中。
在一个示例中,上下文信息可包括设备上下文信息。屏幕大小可在用户感知和期待中扮演角色。设备电池水平可被用作上下文输入,因为质量和吞吐量之间的折中可基于设备的剩余电池水平而不同。
作为附加示例,上下文信息可包括用户上下文信息。例如,与游动/固定用户相比,移动用户可面临相对于分组丢失、延迟和/或吞吐量的不同情况。此外,取决于内容是免费的还是基于订阅的,用户可具有不同的QoE期望。
在一个示例中,上下文自适应判定块202可确定被延迟的TCP片段是否包括网络层上下文触发器。换而言之,网络层上下文信息可确定被延迟的TCP片段是否应当被丢弃以使得多个TCP片段在没有被延迟的TCP片段的情况下被递送。网络层上下文信息可与TCP接收器处的TCP处理相合并。网络层上下文信息可包括来自网络接口的明确跨层信息(例如,MAC层重传失败指示)或者来自网络元件的明确拥塞通知。
此外,网络层上下文信息可基于对TCP接收器缓冲器内容的分析(例如,等待重传的缺失TCP片段的统计)来获得。网络拥塞相关的丢失可不同于由于上行链路/下行链路上的无线链路层误差的丢失。在一个示例中,网络层上下文信息可根据对网络接口卡(NIC)驱动器等待的修改而得出。此外,上下文自适应判定块202可分析网络上下文层信息(例如,分析TCP接收器缓冲器的片段空洞和相关联的统计信息,集成来自更低层的关于无线/拥塞丢失的反馈),并且调整针对可被释放的待定片段的阈值(Δ)。
因此,网络层上下文信息可使得TCP接收器能够确定被延迟的片段是否应当被丢弃。网络层上下文信息可包括对媒体访问控制(MAC)层分组丢失(例如,重传超时)的指示。该指示可来自指示缺失的IP分组的网络接口卡(NIC)或调制解调器。对MAC层分组缺失的指示对于TCP接收器可以是缺失的数据是由于无线链路误差而不是网络拥塞的明确信号。此外,网络层上下文信息可从TCP接收器缓冲器内容分析中获得。具体地,与TCP接收器缓冲器中的缺失片段相关联的统计可被检查以提供关于在TCP接收器缓冲器处正经历无线链路(例如,随机)丢失还是经历拥塞相关的(例如,大量突发的空洞)丢失的上下文信息。
在一个示例中,网络层上下文信息可包括在IP头部中标记的明确拥塞通知(ECN),从而向TCP接收器提供关于TCP片段空洞的网络层上下文信息。在一个示例中,网络层上下文信息可被用于丢弃被延迟的TCP片段并且当无线链路误差(而不是网络拥塞)导致视频播放器经历对QoE的影响时转发ACK。分组丢失的大量突发有可能是由网络拥塞造成的,因此不是进行ACK的可行候选,因为对图片质量潜在增加的影响。此外,分组丢失的较少的突发可能来自无线链路丢失并且可以是进行以下操作的可行候选:丢弃被延迟的TCP片段并发送ACK以继续进行除了与分组丢失相对应的空洞之外的TCP片段。
如果上下文自适应判定块202确定接收到的片段是有序的(即,不是乱序的),并且不存在应用上下文触发器或网络上下文触发器,则传统的TCP操作可被执行。如果上下文自适应判定块202确定了上下文触发器并且已经达到判定阈值(即,被延迟的TCP片段不满足延迟阈值),则乱序的片段可被递送至显示器设备,因而跳过了被延迟的TCP片段。
如前所述,超出延迟阈值(Δ)的、还基于应用或网络层上下文信息指示降低的优先级的被延迟的TCP片段可被丢弃。结果,多个TCP片段被具有空洞地递送,其中该空洞对应于被延迟的TCP片段。此外,确认(ACK)可被传送以除了空洞之外前进TCP片段。换而言之,ACK指示TCP接收器期待接收逻辑上跟随被延迟的TCP片段的TCP片段。因此,TCP接收器可通过允许针对定义的TCP片段的假ACK的选择性发放来放松关于信息的可靠递送的条件,该定义的TCP片段是基于应用层信息和网络层信息被确定为具有较低优先级的。因此,一旦达到延迟阈值(Δ),上下文自适应判定块202可释放待定的TCP片段并且TCP接收器可向前进行下一TCP片段的ACK。
另一示例提供了可操作以减少数据流传输中的延迟的传输控制协议(TCP)接收器的计算机电路的功能300,如图3中的流程图所示。该功能可以被实现为一种方法,或者该功能可以作为指令在机器上被执行,其中这些指令被包括在至少一个计算机可读介质或者一个非暂态机器可读存储介质上。计算机电路可以被配置为:在传输控制协议(TCP)接收器缓冲器处,从网络元件接收多个TCP片段(如在块310中)。计算机电路还可被配置为基于在多个TCP片段中接收的乱序TCP片段来检测缺失的TCP片段(如在块320中)。计算机电路还可被配置为:基于与数据流传输相关联的上下文信息,在TCP接收器处确定要在乱序TCP片段前被接收的缺失TCP片段可被丢弃(如在块330中)。此外,计算机电路可被配置为:在没有缺失的TCP片段的情况下,将乱序TCP片段从TCP接收器缓冲器提供至显示器设备(如在块340中)。
在一个示例中,计算机电路可被配置为:当缺失的TCP片段未在预定时间阈值内被接收时,基于上下文信息丢弃该缺失的TCP片段。在一种配置中,上下文信息包括网络层上下文信息和应用层上下文信息。在一个示例中,网络层上下文信息可包括以下各项中的至少一项:媒体访问控制(MAC)层分组丢失、TCP接收器缓冲器内容分析、或者网络拥塞信息。此外,应用层上下文信息可包括以下各项中的至少一项:缓冲器状态、视频帧的显著性、帧类型、视频内容的类型、或者诸如设备上下文信息或者用户上下文信息之类的其他上下文。
在一种配置中,计算机电路还可被配置为:基于上下文信息,向网络元件发送假确认(ACK)消息,该消息确认缺失的TCP片段在TCP接收器处被接收到。在一个示例中,假ACK消息包括针对逻辑上跟随乱序TCP片段的、要被传送至TCP接收器的TCP片段的请求。
在一种配置中,计算机电路还可被配置为向网络元件发送请求缺失的TCP片段被重新传送给TCP接收器的确认消息,其中基于上下文信息,该缺失的TCP片段不能够被丢弃。此外,计算机电路还可被配置为:当上下文信息指示无线链路误差导致乱序TCP片段被乱序地递送至TCP接收器缓冲器时,丢弃缺失的TCP片段。另外,计算机电路还可被配置为:当上下文信息指示网络拥塞导致乱序TCP片段被乱序地递送至TCP接收器缓冲器时,确定缺失的TCP片段不应该被丢弃。
在一种配置中,TCP接收器可操作于用户设备(UE)中。UE可包括天线、触摸显示器屏幕、扬声器、麦克风、图形处理器、应用处理器、内部存储器、或非易失性存储器端口。
另一示例提供了用于减少无线设备处的数据流传输中的延迟的方法400,如图4中的流程图所示。该方法可以作为指令在机器上被执行,其中这些指令被包括在至少一个计算机可读介质或者一个非暂态机器可读存储介质上。方法包括基于来自无线网络中的网络元件的多个数据片段中接收的乱序数据片段来检测缺失的数据片段(如在块410中)。方法可包括:基于与数据流传输相关联的上下文信息,确定要在乱序数据片段前被接收的缺失的数据片段可被丢弃(如在块420中)。方法的下一操作可包括:基于上下文信息,向无线网络中的网络元件发送假确认(ACK),其确认缺失的数据片段在无线设备处被接收到(如在块430中)。此外,方法可包括在没有缺失的数据片段的情况下提供乱序数据片段以用于无线设备处的显示(如在块440中)。
在一个示例中,上下文信息包括网络层上下文信息和应用层上下文信息。此外,数据片段可以是基于传输控制协议(TCP)的数据片段。
在一种配置中,方法可包括:当未在时间阈值内被接收时,丢弃缺失的数据片段。此外,方法可包括基于网络层上下文信息和应用层上下文信息来动态地配置时间阈值。另外,方法可包括识别所述无线设备处的上下文信息。在一种配置中,方法可包括识别无线网络中的无线元件处的上下文信息。此外,方法可包括:在传输控制协议(TCP)接收器处接收多个数据片段,其中TCP接收器被包括在无线设备中。在一个示例中,无线设备可从包括用户设备(UE)、移动站、蓝牙接收器、802.11接收器、以及它们的组合组成的集合中选择。
图5示出了被配置用于数据流传输的示例无线设备(例如,用户设备)500,如本发明的另一实施例所示。无线设备包括接收模块502,该模块被配置为在TCP接收器缓冲器512处从网络元件520接收多个传输控制协议(TCP)片段。检测模块504可被配置为基于在多个TCP片段中接收的乱序TCP片段,检测缺失的TCP片段。片段丢弃模块506可被配置为基于与数据流传输相关联的上下文信息,丢弃要在乱序数据片段前被接收的缺失的TCP片段。
在一种配置中,无线设备500可包括片段递送模块508,该模块可被配置为:在没有缺失的TCP片段的情况下,从TCP接收器缓冲器512向显示器设备530提供乱序TCP片段。此外,无线设备500可包括确认模块510,该模块被配置为基于上下文信息,向网络元件520发送假确认消息,该消息确认缺失的TCP片段在TCP接收器(例如,接收模块502)处被接收到。
在一种配置中,片段丢弃模块506还可被配置为基于上下文信息以及缺失的TCP片段未在时间阈值内被接收到来丢弃缺失的TCP片段。在一个示例中,上下文信息包括网络层上下文信息和应用层上下文信息。
图6提供了诸如用户设备(UE)、移动台(MS)、移动无线设备、移动通信设备、平板电脑、手持机、或者其他类型的无线设备之类的无线设备的示例图示。无线设备可以包括一个或多个天线,该一个或多个天线被配置为与诸如基站(BS)、演进节点B(eNB)、基带单元(BBU)、远程无线电头端(RRH)、远程无线电设备(RRE)、中继站(RS)、无线电设备(RE)、或者其他类型的无线广域网(WWAN)接入点之类的节点或传输站通信。无线设备可以被配置为使用包括3GPPLTE、WiMAX、高速分组接入(HSPA)、蓝牙、以及WiFi在内的至少一种无线通信标准进行通信。无线设备可以使用针对每个无线通信标准的不同天线、或者针对多个无线通信标准的共享天线进行通信。无线设备可以在无线局域网(WLAN)、无线个人域网(WPAN)、和/或WWAN中进行通信。
图6还提供了可以被用于无线设备的音频输入和输出的麦克风和一个或多个扬声器的图示。显示屏可以是液晶显示(LCD)屏或其他类型的显示屏,如有机发光二极管(OLED)显示器。显示屏可以被配置成触摸屏。触摸屏可使用电容、电阻或另一种类型的触摸屏技术。应用处理器和图形处理器可以被耦合到内部存储器以提供处理和显示能力。非易失性存储端口也可以被用于向用户提供数据输入/输出选项。非易失性存储端口还可以被用于扩展无线设备的存储能力。键盘可与无线设备相集成或无线地连接到无线设备以提供附加的用户输入。虚拟键盘也可使用触摸屏被提供。
各种技术或其某些方面或部分可采取诸如软盘、CD-ROM、硬驱动器、非暂态计算机可读存储介质或任何其他机器可读存储介质之类的有形介质中体现的程序代码的形式,其中当程序代码被加载到诸如计算机之类的机器中并由该机器运行时,所述机器成为用于实施各种技术的设备。电路可包括硬件、固件、程序代码、可执行代码、计算机指令、和/或软件。非暂态计算机可读存储介质可以是不包括信号的计算机可读存储介质。在程序代码运行在可编程计算机上的情况下,计算设备可包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备和至少一个输出设备。易失性和非易失性存储器和/或存储元件可以是RAM、EPROM、闪驱、光驱、磁硬驱或用于存储电子数据的其他介质。节点和无线设备还可包括收发器模块、计数器模块、处理模块和/或时钟模块或计时器模块。可实施或利用本文描述的各种技术的一个或多个程序可使用应用编程接口(API)、可重用控件等等。这种程序可用高级过程或面向对象编程语言实现以与计算机系统通信。然而,(一个或多个)程序可用汇编或机器语言实现,如果期望的话。任何情况下,语言可以是编译或解释型语言,并与硬件实现方式相结合。
应该理解,为了更具体地强调其实现方式独立性,本说明书中描述的很多功能单元已被标记为模块。例如,模块可被实现为包括定制VLSI电路或门阵列、诸如逻辑芯片、晶体管或其他离散组件之类的现成半导体的硬件电路。模块还可用诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等可编程硬件设备实现。
模块还可用由各种类型的处理器执行的软件来实现。可执行代码的被识别模块例如可包括例如可被组织成对象、过程或功能的计算机指令的一个或多个物理或逻辑块。然而,被识别模块的可执行体无需物理上在一起,而是可包括在不同位置存储的不同指令,这些指令当逻辑上结合在一起时,包括所述模块并实现该模块的宣称的目标。
实际上,可执行代码的模块可以是单个指令或多个指令,并且甚至可以分布在若干不同的代码段上、不同程序之间和若干存储设备上。简单地,操作数据可在本文中被识别并例示在模块内,并且可以提供任何适当的形式来体现并被组织在任何适当类型的数据结构内。操作数据可被收集为单个数据集,或者可分布在包括不同存储设备的不同位置上,并且可至少部分地仅作为系统或网络上的电子信号存在。模块可以是被动或主动的,包括可操作来执行期望的功能的代理。
本说明书各处对“示例”的引用意味着结合该示例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,本说明书各处出现的短语“在一个示例中”不一定全部指代同一实施例。
如本文所使用的,为了方便起见,多个项目、结构元素、组成元素和/或素材可被呈现在共同的列表中。然而,这些列表应被解释成仿佛该列表的每个成员各自被识别为分开且唯一的成员。因此,在没有相反指示的情况下,这种列表的任何一个成员不应仅基于它们与同一列表的任何其他呈现呈现在共同的群中而被解释成该其他成员的实际上的等同物。另外,本发明的各种实施例和示例在本文中可与它们的各种组件的替代物一起被指代。将理解,这种实施例、示例和替代物不被解释为彼此的实际上的等同物,而是被考虑成本发明的分开且自治的表示。
另外,所描述的特征、结构或特性可通过任何适当方式在一个或多个实施例中组合。在一些说明书中,提供了许多具体细节(如布局示例、距离、网络示例等)以提供对发明的实施例的完整理解。然而,本领域技术人员将认识到发明可以不用一个或多个具体细节或利用其他方法、组件、布局等等来实施。在其他实例中,已知的结构、素材或操作未被示出或详细描述以免模糊发明的方面。
虽然前述示例在一个或多个特定应用中例示了本发明的原理,但是本领域普通技术人员将明白,可以在不发挥发明能力并且不脱离发明的原理和概念的情况下进行形式、用法和实施细节的很多修改。因此,不打算对发明进行所附权利要求以外的限制。

Claims (20)

1.一种传输控制协议(TCP)接收器,该TCP接收器具有用于减少数据流传输中的延迟的计算机电路,所述计算机电路被配置为:
在TCP接收器缓冲器处,从网络元件接收多个传输控制协议(TCP)片段;
基于多个TCP片段中接收的乱序TCP片段来检测缺失的TCP片段;
基于与所述数据流传输相关联的上下文信息,在所述TCP接收器处确定要在所述乱序TCP片段前被接收的所述缺失的TCP片段能够被丢弃,其中所述上下文信息包括网络层上下文信息和应用层上下文信息;以及
在没有所述缺失的TCP片段的情况下,将所述乱序TCP片段从所述TCP接收器缓冲器提供至显示器设备。
2.如权利要求1所述的计算机电路,还被配置为:当所述缺失的TCP片段未在预定时间阈值内被接收到时,基于所述上下文信息而丢弃所述缺失的TCP片段。
3.如权利要求1所述的计算机电路,其中所述网络层上下文信息包括以下各项中的至少一项:包括媒体访问控制(MAC)层分组丢失的明确丢失指示、与通过TCP接收器缓冲器内容分析的拥塞辨别有关的丢失、或者明确的网络拥塞信息。
4.如权利要求1所述的计算机电路,其中所述应用层上下文信息包括以下各项中的至少一项:缓冲器状态、帧类型、视频帧的显著性、视频内容的类型、以及诸如设备上下文信息或用户上下文信息之类的其他上下文。
5.如权利要求1所述的计算机电路,还被配置为:基于所述上下文信息,向所述网络元件发送假确认(ACK)消息,该消息确认所述缺失的TCP片段在所述TCP接收器处被接收到。
6.如权利要求5所述的计算机电路,其中该假ACK消息包括针对逻辑上跟随所述乱序TCP片段的、要被传送至所述TCP接收器的TCP片段的请求。
7.如权利要求1所述的计算机电路,还被配置为向所述网络元件发送请求所述缺失的TCP片段被重新传送给所述TCP接收器的确认消息,其中所述缺失的TCP片段不能够基于所述上下文信息被丢弃。
8.如权利要求1所述的计算机电路,还被配置为:当所述上下文信息指示无线链路误差导致所述乱序TCP片段被乱序地递送至所述TCP接收器缓冲器时,丢弃所述缺失的TCP片段。
9.如权利要求1所述的计算机电路,还被配置为:当所述上下文信息指示网络拥塞导致所述乱序TCP片段被乱序地递送至所述TCP接收器缓冲器时,确定所述缺失的TCP片段不应该被丢弃。
10.如权利要求1所述的计算机电路,其中所述TCP接收器在用户设备(UE)中操作。
11.一种用于无线设备处减少数据流传输中的延迟的方法,所述方法包括:
基于来自无线网络中的网络元件中的多个数据片段中接收的乱序数据片段,检测缺失的数据片段,其中所述数据片段是基于传输控制协议(TCP)的数据片段;
基于与所述数据流传输相关联的上下文信息,确定要在所述乱序数据片段前被接收的所述缺失的数据片段能够被丢弃,其中所述上下文信息包括网络层上下文信息和应用层上下文信息;
基于所述上下文信息,向所述无线网络中的所述网络元件发送假确认(ACK),该假确认(ACK)确认所述缺失的数据片段在所述无线设备处被接收到;以及
在没有所述缺失的数据片段的情况下,提供所述乱序数据片段用于所述无线设备处的显示。
12.如权利要求11所述的方法,还包括:当所述缺失的数据片段未在时间阈值内被接收到时,丢弃所述缺失的数据片段。
13.如权利要求12所述的方法,还包括:基于网络层上下文信息和应用层上下文信息来动态地配置所述时间阈值。
14.如权利要求11所述的方法,还包括:识别所述无线设备处的上下文信息。
15.如权利要求11所述的方法,还包括:识别所述无线网络中的网络元件处的上下文信息。
16.如权利要求11所述的方法,还包括在传输控制协议(TCP)接收器处接收所述多个数据片段,其中该TCP接收器被包括于所述无线设备中。
17.一种用于数据流传输的无线设备,该设备包括:
接收模块,该接收模块被配置为在TCP接收器缓冲器处从网络元件接收多个传输控制协议(TCP)片段;
检测模块,该检测模块被配置为基于在该多个TCP片段中接收的乱序TCP片段来检测缺失的TCP片段;以及
片段丢弃模块,该片段丢弃模块被配置为:基于与所述数据流传输相关联的上下文信息,丢弃要在乱序数据片段前被接收的缺失的TCP片段,其中所述上下文信息包括网络层上下文信息和应用层上下文信息。
18.如权利要求17所述的无线设备,还包括片段递送模块,该片段递送模块被配置为:在没有所述缺失的TCP片段的情况下,将所述乱序TCP片段从所述TCP接收器缓冲器提供给显示器设备。
19.如权利要求17所述的无线设备,还包括确认模块,该确认模块被配置为:基于所述上下文信息,向所述网络元件发送假确认消息,该消息确认所述缺失的TCP片段在所述TCP接收器处被接收到。
20.如权利要求17所述的无线设备,其中所述片段丢弃模块还被配置为:基于所述上下文信息以及所述缺失的TCP片段未在时间阈值内被接收而丢弃所述缺失的TCP片段。
CN201480048089.7A 2013-09-30 2014-09-18 基于传输控制协议(tcp)的视频流传输方法及设备 Active CN105493457B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/041,446 US9124673B2 (en) 2013-09-30 2013-09-30 Transmission control protocol (TCP) based video streaming
US14/041,446 2013-09-30
PCT/US2014/056212 WO2015047846A1 (en) 2013-09-30 2014-09-18 Transmission control protocol (tcp) based video streaming

Publications (2)

Publication Number Publication Date
CN105493457A true CN105493457A (zh) 2016-04-13
CN105493457B CN105493457B (zh) 2019-06-18

Family

ID=52741266

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480048089.7A Active CN105493457B (zh) 2013-09-30 2014-09-18 基于传输控制协议(tcp)的视频流传输方法及设备

Country Status (5)

Country Link
US (1) US9124673B2 (zh)
EP (1) EP3053313B1 (zh)
CN (1) CN105493457B (zh)
HK (1) HK1223206A1 (zh)
WO (1) WO2015047846A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109412946A (zh) * 2018-11-14 2019-03-01 网宿科技股份有限公司 一种确定回源路径的方法、装置、服务器及可读存储介质

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8718445B1 (en) 2013-09-03 2014-05-06 Penthera Partners, Inc. Commercials on mobile devices
US9794311B2 (en) * 2014-03-18 2017-10-17 Qualcomm Incorporated Transport accelerator implementing extended transmission control functionality
US10374758B2 (en) * 2014-04-15 2019-08-06 Signify Holding B.V. Method and apparatus for controlling handshake in a packet transmission network
US20150373075A1 (en) * 2014-06-23 2015-12-24 Radia Perlman Multiple network transport sessions to provide context adaptive video streaming
KR102292050B1 (ko) 2015-07-21 2021-08-23 삼성전자주식회사 데이터 전송 방법 및 이를 수행하는 전자 장치
US10530825B2 (en) 2016-06-01 2020-01-07 Amazon Technologies, Inc. Catching up to the live playhead in live streaming
US10091265B2 (en) * 2016-06-01 2018-10-02 Amazon Technologies, Inc. Catching up to the live playhead in live streaming
US10389785B2 (en) * 2016-07-17 2019-08-20 Wei-Chung Chang Method for adaptively streaming an audio/visual material
US20190182885A1 (en) * 2016-08-19 2019-06-13 Roche Diabetes Care, Inc. Methods and systems for enhanced bluetooth® bonding
WO2018058420A1 (en) * 2016-09-29 2018-04-05 Qualcomm Incorporated Scell acknowledgement handling during tune-away gap
US11438673B2 (en) 2020-09-11 2022-09-06 Penthera Partners, Inc. Presenting media items on a playing device

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5918002A (en) * 1997-03-14 1999-06-29 Microsoft Corporation Selective retransmission for efficient and reliable streaming of multimedia packets in a computer network
CN101663590A (zh) * 2007-04-20 2010-03-03 思科技术公司 在网络的内容网关处对乱序数据分组的解析
US20120120805A1 (en) * 2010-11-16 2012-05-17 Canon Kabushiki Kaisha Client based congestion control mechanism
US20130132604A1 (en) * 2011-11-21 2013-05-23 Etan GUR COHEN Packet-Based Aggregation of Data Streams Across Disparate Networking Interfaces While Providing Robust Reaction to Dynamic Network Interference With Path Selection and Load Balancing

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5781598A (en) * 1996-08-14 1998-07-14 Hardy, Iii; Harmon S. System and method of asynchronous data transfer through a plurality of modems
US8135413B2 (en) * 1998-11-24 2012-03-13 Tracbeam Llc Platform and applications for wireless location and other complex services
DE60017356T2 (de) 2000-03-02 2005-06-02 Matsushita Electric Industrial Co., Ltd., Kadoma Datenübertragung über ein unzuverlässiges Netz
US6952407B2 (en) * 2001-02-22 2005-10-04 Snowshore Networks, Inc. Minimizing latency with content-based adaptive buffering
US7454527B2 (en) * 2001-05-02 2008-11-18 Microsoft Corporation Architecture and related methods for streaming media content through heterogeneous networks
AU2002343424A1 (en) * 2001-09-28 2003-04-14 Bluesocket, Inc. Method and system for managing data traffic in wireless networks
US7359979B2 (en) 2002-09-30 2008-04-15 Avaya Technology Corp. Packet prioritization and associated bandwidth and buffer management techniques for audio over IP
US7826457B2 (en) * 2004-05-11 2010-11-02 Broadcom Corp. Method and system for handling out-of-order segments in a wireless system via direct data placement
JP5065269B2 (ja) * 2005-07-26 2012-10-31 トムソン ライセンシング ローカル・エリア・ネットワーク管理
US8355452B2 (en) 2006-02-27 2013-01-15 Sharp Laboratories Of America, Inc. Selective frame dropping for initial buffer delay reduction
US20070276954A1 (en) 2006-05-19 2007-11-29 Hong Kong University Of Science And Technology Low-Delay High Quality Video Streaming Using TCP
EP1936880A1 (en) * 2006-12-18 2008-06-25 British Telecommunications Public Limited Company Method and system for congestion marking
US8752102B2 (en) 2008-01-03 2014-06-10 Microsoft Corporation Intelligent retransmission of data stream segments
US8824290B2 (en) * 2011-01-07 2014-09-02 Qualcomm Incorporated Downlink flow control using packet dropping to control transmission control protocol (TCP) layer throughput

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5918002A (en) * 1997-03-14 1999-06-29 Microsoft Corporation Selective retransmission for efficient and reliable streaming of multimedia packets in a computer network
CN101663590A (zh) * 2007-04-20 2010-03-03 思科技术公司 在网络的内容网关处对乱序数据分组的解析
US20100172356A1 (en) * 2007-04-20 2010-07-08 Cisco Technology, Inc. Parsing out of order data packets at a content gateway of a network
US20120120805A1 (en) * 2010-11-16 2012-05-17 Canon Kabushiki Kaisha Client based congestion control mechanism
US20130132604A1 (en) * 2011-11-21 2013-05-23 Etan GUR COHEN Packet-Based Aggregation of Data Streams Across Disparate Networking Interfaces While Providing Robust Reaction to Dynamic Network Interference With Path Selection and Load Balancing

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109412946A (zh) * 2018-11-14 2019-03-01 网宿科技股份有限公司 一种确定回源路径的方法、装置、服务器及可读存储介质

Also Published As

Publication number Publication date
WO2015047846A1 (en) 2015-04-02
US20150095508A1 (en) 2015-04-02
HK1223206A1 (zh) 2017-07-21
US9124673B2 (en) 2015-09-01
CN105493457B (zh) 2019-06-18
EP3053313A4 (en) 2017-06-14
EP3053313B1 (en) 2021-01-20
EP3053313A1 (en) 2016-08-10

Similar Documents

Publication Publication Date Title
CN105493457A (zh) 基于传输控制协议(tcp)的视频流传输
KR102109021B1 (ko) 데이터 전송 방법, 전송 노드, 수신 노드 및 데이터 전송 시스템
US11153041B2 (en) Packet transmission method and user equipment
EP3075116B1 (en) Systems, methods, and devices for controlling transport of ratelessly coded messages
US20220014312A1 (en) Data transmission method and apparatus
US8473825B2 (en) Evolved universal terrestrial radio access acknowledged mode radio link control status report for segmented protocol data units
US20070064631A1 (en) Method and apparatus for transmitting signaling data messages in a wireless communications system
KR20160135200A (ko) 확장된 송신 제어 기능을 구현하는 송신 가속기
CN107210999B (zh) 链路感知流送自适应
KR20120082416A (ko) 네트워크에서 신뢰성 있는 실시간 데이터 스트리밍을 위한 효율적인 애플리케이션 계층의 자동 반복 요청 재송신 방법
US10439940B2 (en) Latency correction between transport layer host and deterministic interface circuit
US10524175B2 (en) Data transmission method and network device
US11133898B2 (en) Retransmission handling at TTI length switch
CN111131179B (zh) 业务处理方法、装置、网络设备及存储介质
US20180006764A1 (en) Method and System for Controlling the Forwarding of Error Correction Data
EP3672189B1 (en) Data transmission method, device and system
US9246638B2 (en) Method and apparatus for polling transmission status in a wireless communications system
US9307441B1 (en) Systems and methods of transferring information to a wireless device
US20220368765A1 (en) Universal Transport Framework For Heterogeneous Data Streams
CN108476428B (zh) 用于处置从无线装置传送的信号的方法和网络节点
WO2014002048A2 (en) Methods and apparatus for transmitting data
US11811877B2 (en) Universal transport framework for heterogeneous data streams
WO2024007572A1 (zh) 报文处理方法及其装置、存储介质、程序产品

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1223206

Country of ref document: HK

GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20200402

Address after: California, USA

Patentee after: INTEL Corp.

Address before: California, USA

Patentee before: INTEL IP Corp.

Effective date of registration: 20200402

Address after: California, USA

Patentee after: Apple Inc.

Address before: California, USA

Patentee before: INTEL Corp.