HK1223206B - Method and apparatus for transmission control protocol (tcp) based video streaming - Google Patents
Method and apparatus for transmission control protocol (tcp) based video streaming Download PDFInfo
- Publication number
- HK1223206B HK1223206B HK16111229.2A HK16111229A HK1223206B HK 1223206 B HK1223206 B HK 1223206B HK 16111229 A HK16111229 A HK 16111229A HK 1223206 B HK1223206 B HK 1223206B
- Authority
- HK
- Hong Kong
- Prior art keywords
- tcp
- segment
- context information
- receiver
- segments
- Prior art date
Links
Description
相关申请Related applications
本申请要求于2013年9月30日递交的、案卷号为P56333的美国非临时专利申请No.14/041,446的优先权,其整个说明书被全部结合于此以用于所有目的。This application claims priority to U.S. Non-Provisional Patent Application No. 14/041,446, filed September 30, 2013, docket number P56333, the entire specification of which is incorporated herein in its entirety for all purposes.
技术领域Technical Field
本申请涉及基于传输控制协议(TCP)的视频流传输。The present application relates to video streaming based on Transmission Control Protocol (TCP).
背景技术Background Art
超文本传输协议(HTTP)流传输被广泛用于互联网视频的多媒体递送的形式。基于HTTP的多媒体递送由于广泛采用了HTTP和HTTP的底层协议(包括传输控制协议(TCP)/互联网协议(IP))而提供可靠性和部署简易性。此外,基于HTTP的多媒体递送通过避免网络地址转换 (NAT)和防火墙穿越问题而使得能够进行简单和轻松的流传输服务。基于HTTP的流传输还提供使用标准HTTP服务器和高速缓存来代替专门的流传输服务器的能力,并且由于服务器侧上的最少状态信息而具有更好的可扩展性。在一个示例中,HTTP流传输可发生于节点(例如,传输站) 和无线设备(例如,移动设备)之间。可替换地,HTTP流传输可发生于节点和有线设备(例如,台式计算机)之间。Hypertext Transfer Protocol (HTTP) streaming is widely used in the form of multimedia delivery of Internet video. Multimedia delivery based on HTTP provides reliability and ease of deployment owing to the underlying protocol (comprising Transmission Control Protocol (TCP)/Internet Protocol (IP)) of HTTP and HTTP being widely adopted. In addition, multimedia delivery based on HTTP enables simple and easy streaming service by avoiding Network Address Translation (NAT) and firewall traversal problem. Streaming based on HTTP also provides the ability of using standard HTTP server and high-speed cache to replace special streaming server, and has better scalability due to the minimum state information on the server side. In one example, HTTP streaming can occur between node (e.g., transmission station) and wireless device (e.g., mobile device). Alternatively, HTTP streaming can occur between node and wired device (e.g., desktop computer).
无线移动通信技术使用各种标准和协议以在节点和无线设备之间发送数据。一些无线设备通过在下行链路(DL)传输中使用正交频分多址 (OFDMA)、在上行链路(UL)传输中使用单载波频分多址(SC- FDMA)来进行通信。使用正交频分复用(OFDM)用于信号传输的标准和协议包括第三代合作伙伴计划(3GPP)长期演进(LTE)(例如,版本 8、9、10、11或12)、电气和电子工程师协会(IEEE)802.16标准(例如,802.16e、802.16m)(行业团体通常将其称为WiMAX(全球微波互联接入)),以及IEEE 802.11标准(行业团体通常将其称为WiFi,例如802.11-2012、802.11ac、或802.11ad)。Wireless mobile communication technology uses various standards and protocols to send data between nodes and wireless devices. Some wireless devices communicate by using orthogonal frequency division multiple access (OFDMA) in downlink (DL) transmission and single carrier frequency division multiple access (SC-FDMA) in uplink (UL) transmission. Standards and protocols using orthogonal frequency division multiplexing (OFDM) for signal transmission include the third generation partnership project (3GPP) long term evolution (LTE) (e.g., release 8, 9, 10, 11 or 12), the Institute of Electrical and Electronics Engineers (IEEE) 802.16 standards (e.g., 802.16e, 802.16m) (commonly referred to by industry groups as WiMAX (Worldwide Interoperability for Microwave Access)), and the IEEE 802.11 standards (commonly referred to by industry groups as WiFi, such as 802.11-2012, 802.11ac, or 802.11ad).
在3GPP无线接入网(RAN)LTE系统中,节点可以是演进型通用陆地无线接入网(E-UTRAN)节点B(通常也被表示为演进节点B、增强型节点B、eNodeB、或eNB)和无线网络控制器(RNC)的组合,其与被称为用户设备(UE)的无线设备通信。下行链路(DL)传输可以是从节点(例如,eNodeB)到无线设备(例如,UE)的通信,上行链路(UL)传输可以是从无线设备到节点的通信。In a 3GPP radio access network (RAN) LTE system, a node may be a combination of an Evolved Universal Terrestrial Radio Access Network (E-UTRAN) Node B (often also referred to as an evolved Node B, enhanced Node B, eNodeB, or eNB) and a Radio Network Controller (RNC), which communicates with wireless devices known as user equipment (UE). Downlink (DL) transmissions may be communications from a node (e.g., an eNodeB) to a wireless device (e.g., a UE), and uplink (UL) transmissions may be communications from a wireless device to a node.
发明内容Summary of the Invention
在一个方面,提供了一种传输控制协议(TCP)接收器,该TCP接收器具有用于减少数据流传输中的延迟的计算机电路,所述计算机电路被配置为:在TCP接收器缓冲器处,从网络元件接收多个TCP片段;基于所述多个TCP片段中接收的乱序TCP片段来检测缺失的TCP片段;基于与所述数据流传输相关联的上下文信息,在所述TCP接收器处确定要在所述乱序TCP片段前被接收的所述缺失的TCP片段能够被丢弃,其中所述上下文信息包括网络层上下文信息和应用层上下文信息;基于所述上下文信息,向所述网络元件发送假确认(ACK)消息,该假ACK消息确认所述缺失的TCP片段在所述TCP接收器处被接收到,其中所述假ACK消息包括针对逻辑上跟随所述乱序TCP片段的、要被传送至所述TCP接收器的 TCP片段的请求;以及将不包含所述缺失的TCP片段的所述乱序TCP片段从所述TCP接收器缓冲器提供至显示器设备。In one aspect, a Transmission Control Protocol (TCP) receiver is provided, the TCP receiver having a computer circuit for reducing delays in data stream transmission, the computer circuit being configured to: receive a plurality of TCP segments from a network element at a TCP receiver buffer; detect a missing TCP segment based on out-of-order TCP segments received in the plurality of TCP segments; determine at the TCP receiver that the missing TCP segment to be received before the out-of-order TCP segment can be discarded based on context information associated with the data stream transmission, wherein the context information includes network layer context information and application layer context information; send a false acknowledgement (ACK) message to the network element based on the context information, the false ACK message confirming that the missing TCP segment is received at the TCP receiver, wherein the false ACK message includes a request for a TCP segment to be transmitted to the TCP receiver that logically follows the out-of-order TCP segment; and provide the out-of-order TCP segment that does not include the missing TCP segment from the TCP receiver buffer to a display device.
在另一个方面,一种用于在无线设备处减少数据流传输中的延迟的方法,所述方法包括:基于来自无线网络中的网络元件的多个数据片段中接收的乱序数据片段,检测缺失的数据片段,其中所述数据片段是基于传输控制协议(TCP)的数据片段;基于与所述数据流传输相关联的上下文信息,确定要在所述乱序数据片段前被接收的所述缺失的数据片段能够被丢弃,其中所述上下文信息包括网络层上下文信息和应用层上下文信息;基于所述上下文信息,向所述无线网络中的所述网络元件发送假确认 (ACK)消息,该假ACK消息确认所述缺失的数据片段在所述无线设备处被接收到,其中所述假ACK消息包括针对逻辑上跟随所述乱序数据片段的、要被传送至所述无线设备的数据片段的请求;以及提供不包含所述缺失的数据片段的所述乱序数据片段,用于所述无线设备处的显示。In another aspect, a method for reducing delay in data stream transmission at a wireless device includes: detecting a missing data segment based on out-of-sequence data segments received from a network element in a wireless network, wherein the data segment is a Transmission Control Protocol (TCP)-based data segment; determining that the missing data segment, which is to be received before the out-of-sequence data segment, can be discarded based on context information associated with the data stream transmission, wherein the context information includes network layer context information and application layer context information; sending a false acknowledgement (ACK) message to the network element in the wireless network based on the context information, the false ACK message acknowledging that the missing data segment is received at the wireless device, wherein the false ACK message includes a request for a data segment to be transmitted to the wireless device that logically follows the out-of-sequence data segment; and providing the out-of-sequence data segments without the missing data segment for display at the wireless device.
在另一个方面,一种用于数据流传输的无线设备,该设备包括:接收装置,该接收装置被配置为在传输控制协议(TCP)接收器缓冲器处从网络元件接收多个TCP片段;检测装置,该检测装置被配置为基于在所述多个TCP片段中接收的乱序TCP片段来检测缺失的TCP片段;片段丢弃装置,该片段丢弃装置被配置为:基于与所述数据流传输相关联的上下文信息,丢弃要在乱序数据片段前被接收的所述缺失的TCP片段,其中所述上下文信息包括网络层上下文信息和应用层上下文信息;确认装置,该确认装置被配置为:基于所述上下文信息,向所述网络元件发送假确认消息,该假确认消息确认所述缺失的TCP片段在所述TCP接收器处被接收到,其中所述假确认消息包括针对逻辑上跟随所述乱序TCP片段的、要被传送至所述TCP接收器的TCP片段的请求。In another aspect, a wireless device for data stream transmission includes: a receiving device, which is configured to receive multiple TCP segments from a transmission control protocol (TCP) receiver buffer from a network element; a detection device, which is configured to detect a missing TCP segment based on out-of-order TCP segments received in the multiple TCP segments; a segment discarding device, which is configured to: discard the missing TCP segment to be received before the out-of-order data segment based on context information associated with the data stream transmission, wherein the context information includes network layer context information and application layer context information; and a confirmation device, which is configured to: send a false confirmation message to the network element based on the context information, wherein the false confirmation message confirms that the missing TCP segment is received at the TCP receiver, wherein the false confirmation message includes a request for a TCP segment to be transmitted to the TCP receiver that logically follows the out-of-order TCP segment.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
通过下面的详细描述并结合附图,本公开的特征和优点将是显而易见的,附图通过示例的方式一起示出了本公开的特征;并且其中:Features and advantages of the present disclosure will be apparent from the following detailed description taken in conjunction with the accompanying drawings, which together illustrate features of the present disclosure by way of example; and wherein:
图1A根据示例示出了被传送到传输控制协议(TCP)缓冲器的多个TCP片段;FIG1A illustrates a plurality of Transmission Control Protocol (TCP) segments being transferred to a TCP buffer, according to an example;
图1B根据示例示出了从传输控制协议(TCP)缓冲器传送出的多个 TCP片段;FIG1B illustrates a plurality of Transmission Control Protocol (TCP) segments transmitted from a TCP buffer, according to an example;
图1C根据示例示出了从传输控制协议(TCP)缓冲器传送出的、不存在缺失的TCP片段的多个TCP片段;FIG1C illustrates a plurality of Transmission Control Protocol (TCP) segments transmitted from a TCP buffer without missing TCP segments, according to an example;
图1D根据示例示出了从传输控制协议(TCP)缓冲器传送出的、不存在缺失的TCP片段的多个TCP片段;FIG. 1D illustrates a plurality of Transmission Control Protocol (TCP) segments transmitted from a TCP buffer without missing TCP segments, according to an example;
图2根据示例示出了使用上下文信息来传送传输控制协议(TCP)片段的系统;FIG2 illustrates a system for transmitting a Transmission Control Protocol (TCP) segment using context information, according to an example;
图3根据示例示出了可操作以减少数据流传输中的延迟的传输控制协议(TCP)接收器的计算机电路的功能;3 illustrates the functionality of computer circuitry of a Transmission Control Protocol (TCP) receiver operable to reduce delays in data stream transmission, according to an example;
图4根据示例示出了无线设备处用于减少数据流传输中的延迟的方法的流程图;4 illustrates a flow chart of a method at a wireless device for reducing delay in data stream transmission, according to an example;
图5根据示例示出了无线设备(例如,用户设备)的框图;以及FIG5 illustrates a block diagram of a wireless device (eg, user equipment) according to an example; and
图6根据示例示出了无线设备(例如,用户设备)的图示。FIG6 shows a diagram of a wireless device (eg, user equipment), according to an example.
下面将参考所示出的示例性实施例,并且这里将使用具体语言来描述这些示例性实施例。然而,应该理解的是此处不意图对本发明的范围进行任何限制。Reference will now be made to the exemplary embodiments illustrated, and specific language will be used herein to describe the same. However, it will be understood that no limitation of the scope of the invention is intended herein.
具体实施方式DETAILED DESCRIPTION
在本发明被公开和描述前,应该理解的是本发明不限于本文所公开的特定结构、处理步骤、或材料,而是被扩展至将被相关领域的普通技术人员认识到的其等同形式。还应该理解的是,本文所采用的术语仅被用于描述特定示例的目的并且不意图是限制性的。在不同图示中的相同参考标号表示相同元素。在流程图和处理中所提供的数字被提供用于清晰地说明步骤和操作,而不一定指示特定的次序或顺序。Before the present invention is disclosed and described, it should be understood that the present invention is not limited to the specific structures, processing steps, or materials disclosed herein, but is extended to its equivalents that will be recognized by those of ordinary skill in the relevant art. It should also be understood that the terms employed herein are only used to describe the purpose of specific examples and are not intended to be restrictive. The same reference numerals in different diagrams represent the same elements. The numerals provided in the flow charts and the processing are provided to clearly illustrate steps and operations, and do not necessarily indicate a specific order or sequence.
示例实施例Example Embodiments
下面提供了对技术实施例的初步概述,然后将在后面更详细地描述具体的技术实施例。该初步概述旨在帮助读者更快地理解技术,而并非意图标识技术的关键特征或必要特征,也不意图限制所要求保护的主题的范围。The following provides a preliminary overview of the technology embodiments, and then specific technology embodiments are described in more detail later. This preliminary overview is intended to help readers understand the technology more quickly, but is not intended to identify key features or essential features of the technology, nor is it intended to limit the scope of the claimed subject matter.
超文本传输协议(HTTP)流传输是互联网视频(例如,直播视频或按需式视频)和音频内容(被称作多媒体内容、媒体内容、媒体服务等等)的多媒体递送的形式。在HTTP流传输中,多媒体文件可被划分为一个或多个片段(segment)并且使用HTTP协议被递送至客户端。基于 HTTP的多媒体内容递送(流传输)由于HTTP和HTTP的底层协议(包括传输控制协议(TCP)/互联网协议(IP))二者的先前广泛采用而提供可靠性和简单的内容递送。基于HTTP的递送能够通过避免网络地址转换 (NAT)和防火墙穿越问题而使得能够进行简单和轻松的流传输服务。基于HTTP的流式数据的传输还可提供使用标准HTTP服务器和高速缓存来代替专门的流传输服务器的能力。Hypertext Transfer Protocol (HTTP) streaming is a form of multimedia delivery of Internet video (e.g., live video or video on demand) and audio content (referred to as multimedia content, media content, media services, etc.). In HTTP streaming, multimedia files can be divided into one or more segments and delivered to a client using the HTTP protocol. Multimedia content delivery (streaming) based on HTTP provides reliability and simple content delivery due to the extensive use of HTTP and HTTP's underlying protocols (including Transmission Control Protocol (TCP)/Internet Protocol (IP)). Delivery based on HTTP can enable simple and easy streaming services by avoiding network address translation (NAT) and firewall traversal problems. The transmission of streaming data based on HTTP can also provide the ability to use a standard HTTP server and cache to replace a specialized streaming server.
此外,HTTP流传输能够提供若干益处,例如可靠的传输以及对网络条件的适应性以确保公正并避免拥塞。HTTP流传输由于服务器侧上的最少或被减少的状态信息而能够提供可扩展性。然而,因为拥塞控制和严格的流控制,HTTP流传输可导致延时和传输速率的波动。因此,基于 HTTP的流传输系统包括缓冲器来缓解速率变动,但是作为结果,当视频被流传输时用户可经历高延时。In addition, HTTP streaming can provide several benefits, such as reliable transmission and adaptability to network conditions to ensure fairness and avoid congestion. HTTP streaming can provide scalability due to minimal or reduced state information on the server side. However, due to congestion control and strict flow control, HTTP streaming can cause delays and fluctuations in transmission rate. Therefore, HTTP-based streaming systems include buffers to mitigate rate fluctuations, but as a result, users may experience high latency when the video is streamed.
HTTP动态自适应流传输(DASH)是自适应多媒体流传输技术,其中多媒体文件可被划分为一个或多个片段并且使用HTTP被递送到客户端。DASH规定了媒体呈现描述(MPD)元数据文件的格式,该MPD元数据文件提供关于服务器中存储的媒体内容表示的结构和不同版本、以及片段格式的信息。例如,元数据文件包含关于媒体播放器的初始化和媒体片段的信息(媒体播放器可以查看初始化片段来理解容器格式和媒体定时信息),以确保片段到用于切换和与其他表示的同步呈现的媒体呈现时间轴的映射。DASH客户端可以通过经由一系列HTTP请求-响应处理下载片段,来接收多媒体内容。DASH可以提供在对于移动设备可用的带宽改变时在媒体内容的不同比特率表示之间动态切换的能力。因此,DASH可以允许对改变的网络和无线链路条件、用户偏好和设备性能(诸如显示器分辨率、所采用的计算机处理器的类型、存储器资源可用性等)的快速适应。DASH是能够用于解决基于实时协议(RTP)和RTSP的流传输以及基于HTTP的渐进式下载的缺点的一种示例技术。基于DASH的自适应流传输是基于RTSP自适应流传输的替代方法,其在第三代合作伙伴技术 (3GPP)技术规范(TS)26.247各个版本(包括版本10和11)以及动态图像专家组(MPEG)ISO/IEC DIS 23009-1中被标准化。HTTP Dynamic Adaptive Streaming (DASH) is an adaptive multimedia streaming technology in which multimedia files can be divided into one or more segments and delivered to the client using HTTP. DASH specifies the format of a media presentation description (MPD) metadata file that provides information about the structure and different versions of media content representations stored in the server, as well as the segment format. For example, the metadata file contains information about the initialization of the media player and the media segments (the media player can view the initialization segment to understand the container format and media timing information) to ensure that the segments are mapped to the media presentation timeline for switching and synchronous presentation with other representations. A DASH client can receive multimedia content by downloading segments via a series of HTTP request-response processes. DASH can provide the ability to dynamically switch between different bit rate representations of media content when the bandwidth available to a mobile device changes. Therefore, DASH can allow for rapid adaptation to changing network and wireless link conditions, user preferences, and device performance (such as display resolution, the type of computer processor used, memory resource availability, etc.). DASH is an example technology that can be used to address the shortcomings of streaming based on the Real Time Protocol (RTP) and RTSP and progressive download based on HTTP. DASH-based adaptive streaming is an alternative to RTSP-based adaptive streaming, which is standardized in various versions of the 3rd Generation Partnership Project (3GPP) Technical Specification (TS) 26.247 (including versions 10 and 11) and the Moving Picture Experts Group (MPEG) ISO/IEC DIS 23009-1.
HTTP的底层协议TCP是“连接导向的”数据递送服务,从而使得两个TCP配置的设备能够彼此建立TCP连接以使能这两个TCP设备之间的数据通信。一般地,“数据”可指代TCP片段或数据的字节。此外,TCP 是全双工协议。因此,两个TCP设备中的每个设备可支持在相对方向上流送的一对数据流。因此,第一TCP设备可与第二TCP设备传送(即,发送或接收)TCP片段,并且第二TCP设备可与第一TCP设备传送(即,发送或接收)TCP片段。HTTP's underlying protocol, TCP, is a "connection-oriented" data delivery service, enabling two TCP-configured devices to establish a TCP connection with each other to enable data communication between the two TCP devices. Generally, "data" can refer to a TCP segment or bytes of data. Furthermore, TCP is a full-duplex protocol. Therefore, each of the two TCP devices can support a pair of data streams flowing in opposite directions. Thus, a first TCP device can transmit (i.e., send or receive) a TCP segment with a second TCP device, and the second TCP device can transmit (i.e., send or receive) a TCP segment with the first TCP device.
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 may assign a segment number to each TCP segment transmitted between a first TCP device and a second TCP device. The sending TCP device may expect a positive acknowledgment (ACK) from the receiving TCP device after the receiving TCP device receives the TCP segment. In other words, the receiving TCP device may transmit an ACK message to the sending TCP device after receiving the TCP segment. If the ACK is not received within a timeout interval, the TCP segment may be retransmitted. Therefore, if the sending TCP device does not receive an ACK message from the receiving TCP device within the timeout interval, the sending TCP device may retransmit the TCP segment to the receiving TCP device. If TCP segments arrive at the receiving TCP device out of order, the receiving TCP device may use the segment numbers to reorder the TCP segments and/or eliminate overlapping TCP segments.
在接收TCP设备和发送TCP设备之间传送的ACK消息可包括接收 TCP设备除了上次接收的TCP片段外能够从发送TCP设备接收的TCP片段的数目。换而言之,接收TCP设备可传送能够从发送TCP设备接收的最高片段数目,以使得接收到的TCP片段不产生接收TCP设备缓冲器中中的超载和溢出。一般地,TCP设备可在TCP片段被传送至显示器设备之前将从网络元件接收的TCP片段暂时存储在缓冲器中。可替换地,在TCP 片段被提供给显示器设备之前,TCP片段可从TCP接收器缓冲器被传送至用户设备(UE)内的另一区域或模块进行处理。在一个示例中,乱序地到达的TCP片段可在TCP接收器缓冲器内被重新安排从而使得按序TCP片段可被递送至显示器设备。能够在TCP缓冲器中存储的TCP片段的数目可取决于TCP缓冲器大小。The ACK message transmitted between the receiving TCP device and the sending TCP device may include the number of TCP segments that the receiving TCP device can receive from the sending TCP device in addition to the TCP segment received last time. In other words, the receiving TCP device may transmit the highest number of segments that can be received from the sending TCP device so that the received TCP segments do not cause overload and overflow in the receiving TCP device buffer. Generally, the TCP device may temporarily store the TCP segments received from the network element in a buffer before the TCP segments are transmitted to the display device. Alternatively, before the TCP segments are provided to the display device, the TCP segments may be transmitted from the TCP receiver buffer to another area or module within the user equipment (UE) for processing. In one example, TCP segments that arrive out of order may be rearranged within the TCP receiver buffer so that in-order TCP segments can be delivered to the display device. The number of TCP segments that can be stored in the TCP buffer may depend on the TCP buffer size.
此外,在接收TCP设备和发送TCP设备之间传送的ACK消息可包括下次期待的段号。下次期待的段号可以是接收TCP设备期待从发送TCP 设备接收的下一段号。换而言之,下次期待的段号可在逻辑上跟随在接收 TCP设备处成功接收的最后TCP片段。Furthermore, the ACK message transmitted between the receiving TCP device and the sending TCP device may include a next expected segment number. The next expected segment number may be the next segment number that the receiving TCP device expects to receive from the sending TCP device. In other words, the next expected segment number may logically follow the last TCP segment successfully received at the receiving TCP device.
在一个示例中,基于HTTP/TCP的视频流传输可通过使用视频数据和/ 或无线网络的特性来提升。结果,基于HTTP/TCP的视频流传输可经历减少的延迟和/或改善的视频质量。具体地,来自应用层和网络层的跨层信息可被并入以修改TCP接收器的功能。由于对TCP接收器的修改可被实现在客户端侧,对网络基础设施的修改可以是不必要的。对TCP接收器的修改可改善重缓冲、平均图片质量、速率切换数目等等。结果,用户的体验质量(QoE)也可被改善。In one example, HTTP/TCP-based video streaming can be enhanced by utilizing characteristics of video data and/or wireless networks. As a result, HTTP/TCP-based video streaming can experience reduced latency and/or improved video quality. Specifically, cross-layer information from the application layer and the network layer can be incorporated to modify the functionality of the TCP receiver. Since the modification of the TCP receiver can be implemented on the client side, modifications to the network infrastructure may be unnecessary. Modifications to the TCP receiver can improve rebuffering, average picture quality, the number of rate switches, and the like. As a result, the user's quality of experience (QoE) can also be improved.
如将在下面更详细地论述的那样,TCP接收器可从网络元件(例如, TCP设备)接收多个TCP片段。TCP接收器可确定多个TCP片段中缺失了一TCP片段。换而言之,TCP接收器预期要接收该TCP片段,但该 TCP片段未被传送至TCP接收器(即,缺失该TCP片段)。As will be discussed in greater detail below, a TCP receiver may receive multiple TCP segments from a network element (e.g., a TCP device). The TCP receiver may determine that a TCP segment is missing from the multiple TCP segments. In other words, the TCP receiver expected to receive the TCP segment, but the TCP segment was not transmitted to the TCP receiver (i.e., the TCP segment is missing).
一般地,缺失的TCP片段可从网络元件被重传至TCP接收器。当 TCP接收器成功地接收到该缺失的TCP片段时,该缺失的TCP片段可被称为被延迟的TCP片段。TCP接收器了确定被延迟的TCP片段是否在预定时间阈值内被接收。在一个示例中,预定时间阈值可基于网络层信息和应用层信息被动态配置。Generally, a missing TCP segment may be retransmitted from a network element to a TCP receiver. When the TCP receiver successfully receives the missing TCP segment, the missing TCP segment may be referred to as a delayed TCP segment. The TCP receiver determines whether the delayed TCP segment is received within a predetermined time threshold. In one example, the predetermined time threshold may be dynamically configured based on network layer information and application layer information.
此外,TCP接收器可确定被延迟的TCP片段是否具有较低的优先级 (与被传送至TCP接收器的其他TCP片段相比)。TCP接收器可使用应用层信息和网络层信息来确定被延迟的TCP片段具有较低的优先级。网络层上下文信息可包括以下各项中的至少一项:包括媒体访问控制(MAC) 层分组丢失的明确丢失指示,由于经由TCP接收器缓冲器内容分析推断的拥塞的丢失,或者明确的网络拥塞信息。应用层上下文信息可包括以下各项中的至少一项:缓冲器状态、帧类型、视频帧的显著性(saliency)、视频内容的类型、以及诸如设备上下文信息或用户上下文信息之类的其他上下文。In addition, the TCP receiver can determine whether the delayed TCP segment has a lower priority (compared to other TCP segments transmitted to the TCP receiver). The TCP receiver can use application layer information and network layer information to determine that the delayed TCP segment has a lower priority. The network layer context information can include at least one of the following: an explicit loss indication including media access control (MAC) layer packet loss, loss due to congestion inferred via analysis of TCP receiver buffer contents, or explicit network congestion information. The application layer context information can include at least one of the following: buffer status, frame type, saliency of the video frame, type of video content, and other context such as device context information or user context information.
如果被延迟的TCP片段(基于应用层和网络层信息)被确定为具有较低的优先级并且被延迟的TCP片段未在预定时间阈值内在TCP接收器处被接收到,则被延迟的TCP片段可被丢弃。换而言之,TCP接收器可向显示器设备递送具有缺失的TCP片段的多个TCP片段。此外,TCP接收器可向网络元件发送假确认(ACK)消息,该消息虚假地确认TCP接收器接收了先前缺失的TCP片段。此外,假ACK消息可包括接收TCP设备期待从发送TCP设备接收的下一TCP片段(即,逻辑上跟随被延迟的TCP片段的TCP片段)的段号。If the delayed TCP segment is determined to have a lower priority (based on application layer and network layer information) and the delayed TCP segment is not received at the TCP receiver within a predetermined time threshold, the delayed TCP segment may be discarded. In other words, the TCP receiver may deliver multiple TCP segments with the missing TCP segment to the display device. In addition, the TCP receiver may send a false acknowledgement (ACK) message to the network element, which falsely confirms that the TCP receiver received the previously missing TCP segment. In addition, the false ACK message may include the segment number of the next TCP segment that the receiving TCP device expects to receive from the sending TCP device (i.e., the TCP segment that logically follows the delayed TCP segment).
图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的空洞。FIG1A illustrates multiple Transmission Control Protocol (TCP) segments 110 transmitted to a TCP receiver. Specifically, the TCP segments may be received in a TCP receiver buffer. In one example, the TCP receiver buffer may receive TCP segments from a network element (e.g., a sending TCP device). The multiple TCP segments transmitted to the TCP receiver buffer may include missing TCP segments. For example, segment 1 may be transmitted at time (TS_1), segment 2 may not be transmitted to the TCP receiver buffer, segment 3 may be transmitted at TS_3, segment 4 may be transmitted at TS_4, and segment 5 may be transmitted at TS_5. Consequently, the TCP receiver buffer may include a hole corresponding to the missing segment 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消息。When the TCP receiver buffer receives segment 3 but not segment 2, the TCP receiver buffer detects that segment 3 is an out-of-order segment. In other words, segment 3 was received out-of-order at the TCP receiver buffer because the TCP receiver buffer should have received segment 2 before receiving segment 3. When the TCP receiver receives an out-of-order segment (e.g., segment 3), the TCP receiver may transmit an acknowledgment (ACK) message to the network element, confirming that the out-of-order segment was received at the TCP receiver. Furthermore, the ACK message may include a next expected segment number (i.e., the next TCP segment the TCP receiver expects to receive from the network element). In one example, the next expected segment number may refer to the missing TCP segment (e.g., segment 2) that was scheduled to be received before the out-of-order segment (e.g., segment 3). Therefore, when the TCP receiver receives segment 3 from the network element, the TCP receiver may transmit an ACK message to the network element with segment 2 as the next expected segment number.
网络设备可从TCP接收器接收指示了下次期待的段号(例如,片段 2)的ACK消息。网络设备可重新发送该下次期待的段号(例如,片段 2)到TCP接收器。由于片段2缺失,片段3、4和5可被暂时存储在TCP 接收器缓冲器中直到片段2被成功重传到TCP接收器缓冲器。给定时间处可在TCP接收器缓冲器中被缓冲的片段的数目可由TCP接收器缓冲器大小限制。The network device may receive an ACK message from the TCP receiver indicating the next expected segment number (e.g., segment 2). The network device may resend the next expected segment number (e.g., segment 2) to the TCP receiver. Because segment 2 is missing, segments 3, 4, and 5 may be temporarily stored in the TCP receiver buffer until segment 2 is successfully retransmitted to the TCP receiver buffer. The number of segments that can be buffered in the TCP receiver buffer at a given time may be limited by the TCP receiver buffer size.
在一个示例中,TCP接收器缓冲器可在片段3、4和5已经被成功递送至TCP接收器缓冲器之后的时间(TS_H)处接收片段2。TCP接收器缓冲器处的片段2的递送可填上由缺失的片段2造成的TCP接收器缓冲器中的空洞。因此,片段2可在被成功递送到TCP接收器缓冲器之后从缺失片段变为被延迟的片段。被缓冲的片段2-5可被例如传送至显示器设备。此外,在接收被延迟的片段2之后,TCP接收器可向网络元件发送ACK 消息:(1)确认片段2在TCP接收器缓冲器处被接收以及(2)向网络元件通知下次期待的片段(例如,片段6)。In one example, the TCP receiver buffer may receive segment 2 at a time (TS_H) after segments 3, 4, and 5 have been successfully delivered to the TCP receiver buffer. The delivery of segment 2 at the TCP receiver buffer may fill the hole in the TCP receiver buffer caused by the missing segment 2. Thus, segment 2 may change from a missing segment to a delayed segment after being successfully delivered to the TCP receiver buffer. The buffered segments 2-5 may be transmitted, for example, to a display device. Furthermore, after receiving delayed segment 2, the TCP receiver may send an ACK message to the network element: (1) acknowledging that segment 2 was received at the TCP receiver buffer and (2) notifying the network element of the next expected segment (e.g., segment 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。结果,用户可在流传输视频时经历延时。As previously described, delayed TCP segments may be received at TS_H at the TCP receiver buffer. The TCP receiver buffer waits until the delayed TCP segments are received before transmitting the delayed TCP segments (e.g., segment 2) and out-of-order segments (e.g., segments 3-5) to the display device. Therefore, segments 2-5 may be transmitted to the display device at TS_H (not shown in FIG. 1A ). In other words, segments 2-5 may be transmitted to the display device at a time corresponding to when segment 2 is received at the TCP receiver buffer (i.e., TS_H). The delay (D) in segment 2-5 transmitted to the display device may be equal to TS_H-TS_1. As a result, the user may experience a delay when streaming video.
在一个示例中,TCP接收器可确定被延迟的TCP片段是否在时间阈值 (Δ)内被接收。时间阈值(Δ)可被实现以减少被传送到显示器设备的片段的延迟。换而言之,可接受的延迟(D)的量可受限于时间阈值 (Δ)。在一个示例中,时间阈值(Δ)可使用反馈机制、应用层信息、和/或网络层信息来确定。延迟可源自被乱序递送到TCP接收器缓冲器的一个或多个被延迟的TCP片段(即,被延迟的TCP片段被递送晚了),这进而影响了被延迟的TCP片段和/或乱序片段(例如,要在被延迟的 TCP片段之后被递送的TCP片段)被递送给显示器设备的时间。In one example, a TCP receiver may determine whether a delayed TCP segment is received within a time threshold (Δ). The time threshold (Δ) may be implemented to reduce the delay of segments transmitted to a display device. In other words, the amount of acceptable delay (D) may be limited by the time threshold (Δ). In one example, the time threshold (Δ) may be determined using a feedback mechanism, application layer information, and/or network layer information. Delay may result from one or more delayed TCP segments being delivered to a TCP receiver buffer out of order (i.e., a delayed TCP segment is delivered late), which in turn affects the time at which delayed TCP segments and/or out-of-order segments (e.g., TCP segments to be delivered after the delayed TCP segment) are delivered to the display device.
如图1B-1D所示,可存在描述与时间阈值(Δ)有关的、TCP片段被传送至显示器设备的延迟(D)的三种情形。在情形1中(如图1B所示),延迟(D)可少于或等于时间阈值(Δ)。在情形2中(如图1C所示),延迟(D)可大于时间阈值(Δ)。在情形3中(如图1D所示),时间阈值(Δ)可等于零。As shown in Figures 1B-1D, there may be three scenarios describing the delay (D) of TCP segments being transmitted to the display device relative to a time threshold (Δ). In scenario 1 (as shown in Figure 1B), the delay (D) may be less than or equal to the time threshold (Δ). In scenario 2 (as shown in Figure 1C), the delay (D) may be greater than the time threshold (Δ). In scenario 3 (as shown in Figure 1D), the time threshold (Δ) may be equal to zero.
图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可以是被延迟的片段。FIG1B illustrates the communication of multiple TCP segments 120 (e.g., segments 1-5) from a TCP receiver buffer to a display device. Segments 1-5 may be transmitted from a network element to a TCP receiver buffer. As shown in FIG1A , segment 1 may be transmitted at TS_1, segment 3 at TS_3, segment 4 at TS_4, segment 5 at TS_5, and segment 2 at TS_H. In other words, segment 2 may be a delayed segment.
如图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)消息。As shown in Figure 1B, when segment 2 is received at the TCP receiver buffer within a time threshold (Δ) (i.e., D ≤ Δ), segments 1-5 can be transmitted to the display device in sequence. In other words, the delayed segment (e.g., segment 2) can also be transmitted to the display device. In this example, although segment 2 is received at TS_H, the delay (i.e., (TS_H-TS_1)) is acceptable because it is less than the time threshold Δ. Segment 1 can be transmitted from the TCP receiver buffer to the display device at TS_1, and segments 2-5 can be transmitted at TS_H. In addition, the TCP receiver can transmit an acknowledgment (ACK) message including the expected segment number (e.g., the expected segment number is 6) to the network element.
当被延迟的片段在时间阈值(Δ)内在TCP接收器缓冲器处被接收到时,TCP接收器可不确定与被延迟的片段相关联的优先级。一般地,被延迟的片段的优先级可使用应用层信息和/或网络层信息来确定。换而言之,在情形1中,TCP接收器可在被延迟的片段在时间阈值(Δ)内被传送至 TCP接收器时向显示器设备递送TCP片段(没有使用被延迟的片段的优先级)。When a delayed segment is received at the TCP receiver buffer within a time threshold (Δ), the TCP receiver may determine the priority associated with the delayed segment. Generally, the priority of the delayed segment may be determined using application layer information and/or network layer information. In other words, in scenario 1, the TCP receiver may deliver the TCP segment to the display device (without using the priority of the delayed segment) when the delayed segment is transmitted to the TCP receiver within the time threshold (Δ).
图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可以是被延迟的片段。FIG1C illustrates the communication of multiple TCP segments 130 (e.g., segment 1 and segments 3-5) from a TCP receiver buffer to a display device. Segments 1-5 may be transmitted from a network element to the TCP receiver buffer. As shown in FIG1A , segment 1 may be transmitted at TS_1, segment 3 at TS_3, segment 4 at TS_4, segment 5 at TS_5, and segment 2 at TS_H. In other words, segment 2 may be a delayed segment.
如图1C中所示,当片段2未在时间阈值(Δ)内于TCP接收器缓冲器处被接收到(即,D>Δ)时,多个片段(除了被延迟的片段)可被传送至显示器设备。因此,被延迟的片段(例如,片段2)未被传送至显示器设备。在此示例中,当片段2未在时间阈值(Δ)内被接收到时,TCP 接收器确定丢弃被延迟的片段。由于片段2未在时间阈值(Δ)内被接收到,延迟是不可接受的并且片段2被丢弃。As shown in FIG1C , when Segment 2 is not received at the TCP receiver buffer within a time threshold (Δ) (i.e., D>Δ), multiple segments (excluding the delayed segment) may be transmitted to the display device. Therefore, the delayed segment (e.g., Segment 2) is not transmitted to the display device. In this example, when Segment 2 is not received within the time threshold (Δ), the TCP receiver determines to discard the delayed segment. Since Segment 2 was not received within the time threshold (Δ), the delay is unacceptable and Segment 2 is discarded.
片段1可在TS_1处从TCP接收器缓冲器被传送给显示器设备,并且片段3-5可在TS_1+Δ处被传送,其中Δ表示TCP接收器等待片段2被递送的时间段。此外,TCP接收器可向网络元件传送包括期待的段号(例如,期待的为6的段号)的确认(ACK)消息。Segment 1 may be transmitted from the TCP receiver buffer to the display device at TS_1, and segments 3-5 may be transmitted at TS_1+Δ, where Δ represents the period of time the TCP receiver waits for delivery of segment 2. In addition, the TCP receiver may transmit an acknowledgment (ACK) message to the network element including the expected segment number (e.g., the expected segment number is 6).
如下文更详细地描述,当被延迟的片段未在时间阈值(Δ)内于TCP 接收器缓冲器处被接收到时,TCP接收器缓冲器可确定与被延迟的片段相关联的优先级。例如,被延迟的片段的优先级可使用应用层信息和/或网络层信息来确定。在一种配置中,当被延迟的片段未在时间阈值(Δ)内被接收时,TCP接收器可基于被延迟的片段的优先级丢弃被延迟的片段(例如,片段2)。As described in more detail below, when a delayed segment is not received at the TCP receiver buffer within a time threshold (Δ), the TCP receiver buffer may determine a priority associated with the delayed segment. For example, the priority of the delayed segment may be determined using application layer information and/or network layer information. In one configuration, when the delayed segment is not received within the time threshold (Δ), the TCP receiver may discard the delayed segment (e.g., segment 2) based on the priority of the delayed segment.
图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可以是被延迟的片段。FIG1D illustrates the communication of multiple TCP segments 140 (e.g., segment 1 and segments 3-5) from a TCP receiver buffer to a display device. Segments 1-5 may be transmitted from a network element to a TCP receiver buffer. As shown in FIG1A , segment 1 may be transmitted at TS_1, segment 3 at TS_3, segment 4 at TS_4, segment 5 at TS_5, and segment 2 at TS_H. In other words, segment 2 may be a delayed segment.
如图1D中所示,当片段2在TCP接收器缓冲器处被较晚接收(即, D=0)时,多个片段(除了被延迟的片段)可被传送至显示器设备。换而言之,较晚的TCP片段可对应于当TCP接收器向显示器设备发送多个 TCP片段时的空洞。因此,被延迟的片段(例如,片段2)未被传送至显示器设备。在此示例中,由于片段2被较晚接收,TCP接收器确定丢弃该被延迟的片段。As shown in FIG1D , when segment 2 is received late at the TCP receiver buffer (i.e., D = 0), multiple segments (excluding the delayed segment) may be transmitted to the display device. In other words, the late TCP segment may correspond to a hole when the TCP receiver sends multiple TCP segments to the display device. Therefore, the delayed segment (e.g., segment 2) is not transmitted to the display device. In this example, because segment 2 was received late, the TCP receiver determines to discard the delayed segment.
片段1可在TS_1处从TCP接收器缓冲器被传送给显示器设备,片段 2在TS_3处,片段4在TS_4处,并且片段5在TS_5处。此外,TCP接收器可向网络元件传送包括期待的段号(例如,期待的为6的段号)的确认(ACK)消息。Segment 1 may be transmitted from the TCP receiver buffer to the display device at TS_1, segment 2 at TS_3, segment 4 at TS_4, and segment 5 at TS_5. In addition, the TCP receiver may transmit an acknowledgment (ACK) message including the expected segment number (e.g., the expected segment number is 6) to the network element.
当时间阈值(Δ)等于零时,TCP接收器可不确定与被延迟的片段相关联的优先级。换而言之吗,在情形3中,TCP接收器可将被延迟的TCP 片段丢弃出被传送至显示器设备的多个TCP片段之外而无需使用被延迟的片段的优先级。When the time threshold (Δ) is equal to zero, the TCP receiver may not determine the priority associated with the delayed segment. In other words, in scenario 3, the TCP receiver may discard the delayed TCP segment from the multiple TCP segments transmitted to the display device without using the priority of the delayed segment.
一般地,TCP接收器缓冲器中的TCP片段所经历的乱序延迟可以是:无序递送延迟(D=0)≤Δ≤有序递送延迟(D=TS_H-TS_1)。根据完全无序递送,所有较晚的乱序TCP片段可被看做空洞。换而言之,被延迟的片段可不被传送至显示器设备。根据有序递送,TCP片段可被无空洞地传送给显示器设备。因此,TCP分组丢失和延时之间的折中可根据应用层信息和网络层信息得出。In general, the out-of-order delay experienced by TCP segments in a TCP receiver buffer can be: out-of-order delivery delay (D = 0) ≤ Δ ≤ in-order delivery delay (D = TS_H - TS_1). With fully out-of-order delivery, all late, out-of-order TCP segments can be considered holes. In other words, delayed segments may not be delivered to the display device. With in-order delivery, TCP segments can be delivered to the display device without holes. Therefore, the trade-off between TCP packet loss and latency can be derived based on application layer information and network layer information.
在一种配置中,TCP接收器可使用被延迟的片段(即,先前缺失但在后来的时间被递送的片段)的优先级来确定:当被延迟的片段未在时间阈值(Δ)内于TCP接收器处被接收时,是否丢弃被延迟的片段。可替换地,TCP接收器可使用被延迟的片段的优先级来确定:即使当被延迟的片段未在时间阈值(Δ)内于TCP接收器处被接收时,是否不丢弃被延迟的片段。一般地,应用层信息和/或网络层信息可指示视频质量的降低比源自被延迟的片段的视频延时重要。换而言之,相对于等待视频被加载,视频质量的降低是优选的。因此,与等待被延迟的片段被递送相反,TCP接收器可响应于对应用层和网络层信息的分析而完全丢弃被延迟的片段。In one configuration, a TCP receiver may use the priority of delayed segments (i.e., segments that were previously missing but were delivered at a later time) to determine whether to discard the delayed segments when the delayed segments are not received at the TCP receiver within a time threshold (Δ). Alternatively, the TCP receiver may use the priority of delayed segments to determine whether to not discard the delayed segments even when the delayed segments are not received at the TCP receiver within the time threshold (Δ). Generally, application layer information and/or network layer information may indicate that a reduction in video quality is more important than the video latency resulting from the delayed segments. In other words, a reduction in video quality is preferred over waiting for the video to be loaded. Therefore, as opposed to waiting for the delayed segments to be delivered, the TCP receiver may completely discard the delayed segments in response to analysis of the application layer and network layer information.
图2示出了使用上下文信息传送传输控制协议(TCP)片段的系统 200。TCP接收器可接收TCP片段。上下文自适应判定块可确定接收到的 TCP片段是否是乱序的。作为示例,当TCP接收器在没有接收片段2的情况下接收片段3时,TCP接收器可检测到该接收到的TCP片段(例如,片段3)是乱序的。TCP接收器然后可在接收该乱序片段之后接收被延迟的 TCP片段(例如,片段2)。FIG2 illustrates a system 200 for transmitting Transmission Control Protocol (TCP) segments using context information. A TCP receiver may receive TCP segments. A context-adaptive decision block may determine whether the received TCP segments are out of sequence. For example, if a TCP receiver receives segment 3 without receiving segment 2, the TCP receiver may detect that the received TCP segment (e.g., segment 3) is out of sequence. The TCP receiver may then receive a delayed TCP segment (e.g., segment 2) after receiving the out-of-sequence segment.
在一个示例中,上下文自适应判定块可确定被延迟的TCP片段是否包括应用上下文触发器。换而言之,应用上下文信息可使得TCP接收器能够确定被延迟的TCP片段是否应当被丢弃以使得多个TCP片段在没有被延迟的TCP片段的情况下被递送。关于多媒体信息的多种应用上下文信息可被识别,例如重放(playback)缓冲器状态、针对在重放缓冲器中期待的下一视频帧的帧类型或者其他显著性信息、关于由自适应流播放器执行的近期速率切换的历史信息等等。应用上下文信息可从对客户端上的DASH 或其他HTTP自适应流播放器软件的客户端实现的修改中获得。In one example, the context adaptation decision block can determine whether a delayed TCP segment includes an application context trigger. In other words, the application context information can enable the TCP receiver to determine whether the delayed TCP segment should be discarded so that multiple TCP segments can be delivered without the delayed TCP segment. Various application context information about the multimedia information can be identified, such as the playback buffer state, the frame type or other saliency information for the next video frame expected in the playback buffer, historical information about recent rate switches performed by the adaptive streaming player, and so on. The application context information can be obtained from modifications to the client implementation of DASH or other HTTP adaptive streaming player software on the client.
应用层上下文信息可包括缓冲器状态和历史、帧类型、显著性、内容类型、以及诸如设备上下文和/或用户上下文之类的其他上下文。例如,重放缓冲器和TCP接收器的缓冲器中的视频数据可针对数据流的不同部分具有不相等的优先级(例如,视频数据可具有取决于视频帧是I/P帧还是B 帧的不相等优先级)。作为另一示例,当应用正在逼近播放缓冲器空乏 (starvation)和/或从TCP接收器在重放缓冲器的末尾处期待的视频信息被确定为B帧时,上下文自适应判定块可被提供此信息从而确定B帧是否应当被丢弃。Application layer context information may include buffer status and history, frame type, saliency, content type, and other context such as device context and/or user context. For example, video data in the replay buffer and the TCP receiver's buffer may have unequal priorities for different parts of the data stream (e.g., video data may have unequal priorities depending on whether the video frame is an I/P frame or a B frame). As another example, when the application is approaching play buffer starvation and/or the video information expected from the TCP receiver at the end of the replay buffer is determined to be a B frame, the context adaptive decision block may be provided with this information to determine whether the B frame should be discarded.
自适应流传输客户端可使用缓冲器状态和针对速率自适应判定的历史。除了当前的缓冲器状态之外,应用还可提供在刚刚过去的时间所做出的视频速率切换(例如,自适应)的历史。视频速率切换的历史可以是有用的,因为用户QoE还可受与速率切换相关联的频率的影响。Adaptive streaming clients can use the buffer status and history of rate adaptation decisions. In addition to the current buffer status, the application can also provide a history of video rate switches (e.g., adaptations) made in the recent past. The history of video rate switches can be useful because user QoE can also be affected by the frequency associated with rate switches.
帧类型可影响是否可丢弃被延迟的TCP片段。I帧和P帧具有时间依赖性,其对后续的帧解码具有较大影响,而B帧不具有前面的时间依赖性并因此能够以更小的图片质量影响被丢弃。作为示例,I/P/B帧结构 (“GOP”)可使得视频播放器能够确定序列中下一期待的P针对相对于下一I帧的位置。因此,潜在地丢弃此P帧的影响可被估计。帧类型信息可由视频播放器在帧头部明确可访问。The frame type can influence whether delayed TCP segments can be discarded. I- and P-frames have temporal dependencies, which have a greater impact on the decoding of subsequent frames, whereas B-frames do not have temporal dependencies and can therefore be discarded with less impact on image quality. As an example, the I/P/B frame structure ("GOP") allows a video player to determine the position of the next expected P-frame in the sequence relative to the next I-frame. Therefore, the impact of potentially discarding this P-frame can be estimated. Frame type information is explicitly accessible to the video player in the frame header.
在一个示例中,就视觉影响方面的显著性(例如,给定帧的重要性) 可被视频播放器使用。例如,如果H.264可扩展视频编码(SVC)被使用,则增强层数据可相比于基础层视频数据具有较低的重要性。关于显著性的应用层上下文信息可在帧头部明确可用或者可通过其他机制来提供。In one example, saliency in terms of visual impact (e.g., the importance of a given frame) can be used by a video player. For example, if H.264 Scalable Video Coding (SVC) is used, enhancement layer data can have lower importance than base layer video data. Application layer context information regarding saliency can be explicitly available in the frame header or provided through other mechanisms.
此外,视频应用可依据内容是作为直播内容还是作为点播视频 (VOD)被观看而不同地修改重缓冲与图片质量之间的折中。此外,视频应用可依据内容是否与体育、新闻等等相关来修改重缓冲与图片质量之间的折中。关于内容类型的应用上下文信息可被提供在内容元数据中。Furthermore, video applications can modify the tradeoff between rebuffering and picture quality differently depending on whether the content is being viewed as live content or as video on demand (VOD). Furthermore, video applications can modify the tradeoff between rebuffering and picture quality depending on whether the content is related to sports, news, etc. Application context information about the content type can be provided in the content metadata.
在一个示例中,上下文信息可包括设备上下文信息。屏幕大小可在用户感知和期待中扮演角色。设备电池水平可被用作上下文输入,因为质量和吞吐量之间的折中可基于设备的剩余电池水平而不同。In one example, the context information may include device context information. Screen size may play a role in user perception and expectations. Device battery level may be used as context input, as the tradeoff between quality and throughput may differ based on the device's remaining battery level.
作为附加示例,上下文信息可包括用户上下文信息。例如,与游动/固定用户相比,移动用户可面临相对于分组丢失、延迟和/或吞吐量的不同情况。此外,取决于内容是免费的还是基于订阅的,用户可具有不同的QoE 期望。As an additional example, the context information may include user context information. For example, mobile users may face different conditions with respect to packet loss, latency, and/or throughput compared to nomadic/stationary users. Furthermore, users may have different QoE expectations depending on whether the content is free or subscription-based.
在一个示例中,上下文自适应判定块可确定被延迟的TCP片段是否包括网络层上下文触发器。换而言之,网络层上下文信息可确定被延迟的TCP片段是否应当被丢弃以使得多个TCP片段在没有被延迟的TCP片段的情况下被递送。网络层上下文信息可与TCP接收器处的TCP处理相合并。网络层上下文信息可包括来自网络接口的明确跨层信息(例如,MAC层重传失败指示)或者来自网络元件的明确拥塞通知。In one example, the context adaptation decision block can determine whether the delayed TCP segment includes a network layer context trigger. In other words, the network layer context information can determine whether the delayed TCP segment should be dropped so that multiple TCP segments can be delivered without the delayed TCP segment. The network layer context information can be merged with TCP processing at the TCP receiver. The network layer context information can include explicit cross-layer information from the network interface (e.g., a MAC layer retransmission failure indication) or explicit congestion notifications from the network element.
此外,网络层上下文信息可基于对TCP接收器缓冲器内容的分析(例如,等待重传的缺失TCP片段的统计)来获得。网络拥塞相关的丢失可不同于由于上行链路/下行链路上的无线链路层误差的丢失。在一个示例中,网络层上下文信息可根据对网络接口卡(NIC)驱动器等待的修改而得出。此外,上下文自适应判定块可分析网络上下文层信息(例如,分析TCP接收器缓冲器的片段空洞和相关联的统计信息,集成来自更低层的关于无线/拥塞丢失的反馈),并且调整针对可被释放的待定片段的阈值 (Δ)。Furthermore, network layer context information can be derived based on analysis of TCP receiver buffer contents (e.g., statistics of missing TCP segments awaiting retransmission). Losses related to network congestion can differ from losses due to radio link layer errors on the uplink/downlink. In one example, network layer context information can be derived based on modifications to network interface card (NIC) driver waits. Furthermore, the context adaptation decision block can analyze network context layer information (e.g., analyzing TCP receiver buffer segment holes and associated statistics, integrating feedback from lower layers regarding radio/congestion losses), and adjust a threshold (Δ) for pending segments that can be released.
因此,网络层上下文信息可使得TCP接收器能够确定被延迟的片段是否应当被丢弃。网络层上下文信息可包括对媒体访问控制(MAC)层分组丢失(例如,重传超时)的指示。该指示可来自指示缺失的IP分组的网络接口卡(NIC)或调制解调器。对MAC层分组缺失的指示对于TCP接收器可以是缺失的数据是由于无线链路误差而不是网络拥塞的明确信号。此外,网络层上下文信息可从TCP接收器缓冲器内容分析中获得。具体地,与TCP接收器缓冲器中的缺失片段相关联的统计可被检查以提供关于在 TCP接收器缓冲器处正经历无线链路(例如,随机)丢失还是经历拥塞相关的(例如,大量突发的空洞)丢失的上下文信息。Thus, network layer context information can enable a TCP receiver to determine whether delayed segments should be discarded. The network layer context information can include an indication of media access control (MAC) layer packet loss (e.g., retransmission timeout). This indication can come from a network interface card (NIC) or modem indicating missing IP packets. The indication of missing MAC layer packets can be a clear signal to the TCP receiver that the missing data is due to radio link errors rather than network congestion. In addition, network layer context information can be obtained from analysis of the TCP receiver buffer contents. Specifically, statistics associated with missing segments in the TCP receiver buffer can be examined to provide contextual information about whether the TCP receiver buffer is experiencing radio link (e.g., random) loss or congestion-related (e.g., large, bursty holes) loss.
在一个示例中,网络层上下文信息可包括在IP头部中标记的明确拥塞通知(ECN),从而向TCP接收器提供关于TCP片段空洞的网络层上下文信息。在一个示例中,网络层上下文信息可被用于丢弃被延迟的TCP片段并且当无线链路误差(而不是网络拥塞)导致视频播放器经历对QoE的影响时转发ACK。分组丢失的大量突发有可能是由网络拥塞造成的,因此不是进行ACK的可行候选,因为对图片质量潜在增加的影响。此外,分组丢失的较少的突发可能来自无线链路丢失并且可以是进行以下操作的可行候选:丢弃被延迟的TCP片段并发送ACK以继续进行除了与分组丢失相对应的空洞之外的TCP片段。In one example, the network layer context information may include an Explicit Congestion Notification (ECN) marked in the IP header, thereby providing the TCP receiver with network layer context information about TCP segment holes. In one example, the network layer context information may be used to drop delayed TCP segments and forward ACKs when wireless link errors (rather than network congestion) cause the video player to experience an impact on QoE. Large bursts of packet loss are likely caused by network congestion and are therefore not viable candidates for ACKing due to the potential increased impact on picture quality. Additionally, smaller bursts of packet loss may come from wireless link loss and may be viable candidates for dropping delayed TCP segments and sending ACKs to continue with TCP segments other than the holes corresponding to the packet losses.
如果上下文自适应判定块确定接收到的片段是有序的(即,不是乱序的),并且不存在应用上下文触发器或网络上下文触发器,则传统的TCP 操作可被执行。如果上下文自适应判定块确定了上下文触发器并且已经达到判定阈值(即,被延迟的TCP片段不满足延迟阈值),则乱序的片段可被递送至显示器设备,因而跳过了被延迟的TCP片段。If the context adaptation decision block determines that the received segments are in order (i.e., not out of order) and no application context trigger or network context trigger is present, conventional TCP operations may be performed. If the context adaptation decision block determines the context trigger and the decision threshold has been reached (i.e., the delayed TCP segments do not meet the delay threshold), the out of order segments may be delivered to the display device, thereby skipping the delayed TCP segments.
如前所述,超出延迟阈值(Δ)的、还基于应用或网络层上下文信息指示降低的优先级的被延迟的TCP片段可被丢弃。结果,多个TCP片段被具有空洞地递送,其中该空洞对应于被延迟的TCP片段。此外,确认 (ACK)可被传送以除了空洞之外前进TCP片段。换而言之,ACK指示 TCP接收器期待接收逻辑上跟随被延迟的TCP片段的TCP片段。因此, TCP接收器可通过允许针对定义的TCP片段的假ACK的选择性发放来放松关于信息的可靠递送的条件,该定义的TCP片段是基于应用层信息和网络层信息被确定为具有较低优先级的。因此,一旦达到延迟阈值(Δ),上下文自适应判定块可释放待定的TCP片段并且TCP接收器可向前进行下一TCP片段的ACK。As previously described, delayed TCP segments that exceed a delay threshold (Δ) and that also indicate a reduced priority based on application or network layer context information may be discarded. Consequently, multiple TCP segments are delivered with holes corresponding to the delayed TCP segments. Furthermore, acknowledgments (ACKs) may be transmitted to advance the TCP segments beyond the holes. In other words, an ACK indicates that the TCP receiver expects to receive the TCP segment that logically follows the delayed TCP segment. Therefore, the TCP receiver can relax the requirements for reliable information delivery by allowing the selective issuance of false ACKs for defined TCP segments that are determined to have lower priority based on application and network layer information. Therefore, once the delay threshold (Δ) is reached, the context-adaptive decision block can release the pending TCP segments, and the TCP receiver can proceed with the ACK for the next TCP segment.
另一示例提供了可操作以减少数据流传输中的延迟的传输控制协议 (TCP)接收器的计算机电路的功能300,如图3中的流程图所示。该功能可以被实现为一种方法,或者该功能可以作为指令在机器上被执行,其中这些指令被包括在至少一个计算机可读介质或者一个非暂态机器可读存储介质上。计算机电路可以被配置为:在传输控制协议(TCP)接收器缓冲器处,从网络元件接收多个TCP片段(如在块310中)。计算机电路还可被配置为基于在多个TCP片段中接收的乱序TCP片段来检测缺失的TCP片段(如在块320中)。计算机电路还可被配置为:基于与数据流传输相关联的上下文信息,在TCP接收器处确定要在乱序TCP片段前被接收的缺失TCP片段可被丢弃(如在块330中)。此外,计算机电路可被配置为:在没有缺失的TCP片段的情况下,将乱序TCP片段从TCP接收器缓冲器提供至显示器设备(如在块340中)。Another example provides functionality 300 of a computer circuit of a Transmission Control Protocol (TCP) receiver operable to reduce delay in data stream transmission, as shown in the flowchart of FIG3 . The functionality may be implemented as a method or as instructions executable on a machine, wherein the instructions are included on at least one computer-readable medium or a non-transitory machine-readable storage medium. The computer circuit may be configured to receive a plurality of TCP segments from a network element at a Transmission Control Protocol (TCP) receiver buffer (as in block 310 ). The computer circuit may be further configured to detect missing TCP segments based on out-of-order TCP segments received in the plurality of TCP segments (as in block 320 ). The computer circuit may be further configured to determine, based on context information associated with the data stream transmission, at the TCP receiver that missing TCP segments received before the out-of-order TCP segments should be discarded (as in block 330 ). Furthermore, the computer circuit may be configured to provide the out-of-order TCP segments from the TCP receiver buffer to a display device if there are no missing TCP segments (as in block 340 ).
在一个示例中,计算机电路可被配置为:当缺失的TCP片段未在预定时间阈值内被接收时,基于上下文信息丢弃该缺失的TCP片段。在一种配置中,上下文信息包括网络层上下文信息和应用层上下文信息。在一个示例中,网络层上下文信息可包括以下各项中的至少一项:媒体访问控制 (MAC)层分组丢失、TCP接收器缓冲器内容分析、或者网络拥塞信息。此外,应用层上下文信息可包括以下各项中的至少一项:缓冲器状态、视频帧的显著性、帧类型、视频内容的类型、或者诸如设备上下文信息或者用户上下文信息之类的其他上下文。In one example, the computer circuitry may be configured to discard a missing TCP segment based on context information when the missing TCP segment is not received within a predetermined time threshold. In one configuration, the context information includes network layer context information and application layer context information. In one example, the network layer context information may include at least one of: media access control (MAC) layer packet loss, TCP receiver buffer content analysis, or network congestion information. Additionally, the application layer context information may include at least one of: buffer status, video frame saliency, frame type, video content type, or other context such as device context information or user context information.
在一种配置中,计算机电路还可被配置为:基于上下文信息,向网络元件发送假确认(ACK)消息,该消息确认缺失的TCP片段在TCP接收器处被接收到。在一个示例中,假ACK消息包括针对逻辑上跟随乱序 TCP片段的、要被传送至TCP接收器的TCP片段的请求。In one configuration, the computer circuitry may be further configured to, based on the context information, send a false acknowledgement (ACK) message to the network element that acknowledges that the missing TCP segment was received at the TCP receiver. In one example, the false ACK message includes a request for a TCP segment to be transmitted to the TCP receiver that logically follows the out-of-order TCP segment.
在一种配置中,计算机电路还可被配置为向网络元件发送请求缺失的 TCP片段被重新传送给TCP接收器的确认消息,其中基于上下文信息,该缺失的TCP片段不能够被丢弃。此外,计算机电路还可被配置为:当上下文信息指示无线链路误差导致乱序TCP片段被乱序地递送至TCP接收器缓冲器时,丢弃缺失的TCP片段。另外,计算机电路还可被配置为:当上下文信息指示网络拥塞导致乱序TCP片段被乱序地递送至TCP接收器缓冲器时,确定缺失的TCP片段不应该被丢弃。In one configuration, the computer circuitry may be further configured to send an acknowledgment message to the network element requesting that missing TCP segments be retransmitted to the TCP receiver, wherein the missing TCP segments cannot be discarded based on the context information. Furthermore, the computer circuitry may be further configured to discard the missing TCP segments when the context information indicates that a radio link error caused out-of-order TCP segments to be delivered out-of-order to the TCP receiver buffer. Furthermore, the computer circuitry may be further configured to determine that the missing TCP segments should not be discarded when the context information indicates that network congestion caused out-of-order TCP segments to be delivered out-of-order to the TCP receiver buffer.
在一种配置中,TCP接收器可操作于用户设备(UE)中。UE可包括天线、触摸显示器屏幕、扬声器、麦克风、图形处理器、应用处理器、内部存储器、或非易失性存储器端口。In one configuration, the TCP receiver may operate in a user equipment (UE). The UE may include an antenna, a touch display screen, a speaker, a microphone, a graphics processor, an application processor, internal memory, or a non-volatile memory port.
另一示例提供了用于减少无线设备处的数据流传输中的延迟的方法 400,如图4中的流程图所示。该方法可以作为指令在机器上被执行,其中这些指令被包括在至少一个计算机可读介质或者一个非暂态机器可读存储介质上。方法包括基于来自无线网络中的网络元件的多个数据片段中接收的乱序数据片段来检测缺失的数据片段(如在块410中)。方法可包括:基于与数据流传输相关联的上下文信息,确定要在乱序数据片段前被接收的缺失的数据片段可被丢弃(如在块420中)。方法的下一操作可包括:基于上下文信息,向无线网络中的网络元件发送假确认(ACK),其确认缺失的数据片段在无线设备处被接收到(如在块430中)。此外,方法可包括在没有缺失的数据片段的情况下提供乱序数据片段以用于无线设备处的显示(如在块440中)。Another example provides a method 400 for reducing latency in data stream transmission at a wireless device, as shown in the flowchart of FIG4 . The method may be executed as instructions on a machine, wherein the instructions are included on at least one computer-readable medium or a non-transitory machine-readable storage medium. The method includes detecting missing data segments based on out-of-order data segments received from a network element in a wireless network (as in block 410 ). The method may include determining, based on context information associated with the data stream transmission, that the missing data segments received before the out-of-order data segments are discarded (as in block 420 ). A next operation of the method may include sending a false acknowledgement (ACK) to the network element in the wireless network based on the context information, confirming that the missing data segments were received at the wireless device (as in block 430 ). Furthermore, the method may include providing the out-of-order data segments for display at the wireless device in the absence of the missing data segments (as in block 440 ).
在一个示例中,上下文信息包括网络层上下文信息和应用层上下文信息。此外,数据片段可以是基于传输控制协议(TCP)的数据片段。In one example, the context information includes network layer context information and application layer context information.In addition, the data segment may be a data segment based on the Transmission Control Protocol (TCP).
在一种配置中,方法可包括:当未在时间阈值内被接收时,丢弃缺失的数据片段。此外,方法可包括基于网络层上下文信息和应用层上下文信息来动态地配置时间阈值。另外,方法可包括识别所述无线设备处的上下文信息。在一种配置中,方法可包括识别无线网络中的无线元件处的上下文信息。此外,方法可包括:在传输控制协议(TCP)接收器处接收多个数据片段,其中TCP接收器被包括在无线设备中。在一个示例中,无线设备可从包括用户设备(UE)、移动站、蓝牙接收器、802.11接收器、以及它们的组合组成的集合中选择。In one configuration, the method may include discarding a missing data segment when not received within a time threshold. Furthermore, the method may include dynamically configuring the time threshold based on network layer context information and application layer context information. Additionally, the method may include identifying context information at the wireless device. In one configuration, the method may include identifying context information at a wireless element in a wireless network. Furthermore, the method may include receiving a plurality of data segments at a Transmission Control Protocol (TCP) receiver, wherein the TCP receiver is included in the wireless device. In one example, the wireless device may be selected from the group consisting of a user equipment (UE), a mobile station, a Bluetooth receiver, an 802.11 receiver, and combinations thereof.
图5示出了被配置用于数据流传输的示例无线设备(例如,用户设备)500,如本发明的另一实施例所示。无线设备包括接收模块502,该模块被配置为在TCP接收器缓冲器512处从网络元件520接收多个传输控制协议(TCP)片段。检测模块504可被配置为基于在多个TCP片段中接收的乱序TCP片段,检测缺失的TCP片段。片段丢弃模块506可被配置为基于与数据流传输相关联的上下文信息,丢弃要在乱序数据片段前被接收的缺失的TCP片段。FIG5 illustrates an example wireless device (e.g., user equipment) 500 configured for data stream transmission, according to another embodiment of the present invention. The wireless device includes a receiving module 502 configured to receive a plurality of Transmission Control Protocol (TCP) segments from a network element 520 at a TCP receiver buffer 512. A detecting module 504 may be configured to detect missing TCP segments based on out-of-order TCP segments received in the plurality of TCP segments. A segment discarding module 506 may be configured to discard missing TCP segments that were received before the out-of-order data segments based on context information associated with the data stream transmission.
在一种配置中,无线设备500可包括片段递送模块508,该模块可被配置为:在没有缺失的TCP片段的情况下,从TCP接收器缓冲器512向显示器设备530提供乱序TCP片段。此外,无线设备500可包括确认模块510,该模块被配置为基于上下文信息,向网络元件520发送假确认消息,该消息确认缺失的TCP片段在TCP接收器(例如,接收模块502)处被接收到。In one configuration, the wireless device 500 may include a segment delivery module 508 that may be configured to, in the absence of missing TCP segments, provide out-of-order TCP segments from the TCP receiver buffer 512 to the display device 530. Additionally, the wireless device 500 may include an acknowledgement module 510 that may be configured to send a false acknowledgement message to the network element 520 based on the context information, the message acknowledging that the missing TCP segments were received at the TCP receiver (e.g., the receiving module 502).
在一种配置中,片段丢弃模块506还可被配置为基于上下文信息以及缺失的TCP片段未在时间阈值内被接收到来丢弃缺失的TCP片段。在一个示例中,上下文信息包括网络层上下文信息和应用层上下文信息。In one configuration, the segment discard module 506 may be further configured to discard the missing TCP segment based on the context information and that the missing TCP segment was not received within a time threshold. In one example, the context information includes network layer context information and application layer context information.
图6提供了诸如用户设备(UE)、移动台(MS)、移动无线设备、移动通信设备、平板电脑、手持机、或者其他类型的无线设备之类的无线设备的示例图示。无线设备可以包括一个或多个天线,该一个或多个天线被配置为与诸如基站(BS)、演进节点B(eNB)、基带单元(BBU)、远程无线电头端(RRH)、远程无线电设备(RRE)、中继站(RS)、无线电设备(RE)、或者其他类型的无线广域网(WWAN)接入点之类的节点或传输站通信。无线设备可以被配置为使用包括3GPP LTE、 WiMAX、高速分组接入(HSPA)、蓝牙、以及WiFi在内的至少一种无线通信标准进行通信。无线设备可以使用针对每个无线通信标准的不同天线、或者针对多个无线通信标准的共享天线进行通信。无线设备可以在无线局域网(WLAN)、无线个人域网(WPAN)、和/或WWAN中进行通信。Figure 6 provides an example diagram of a wireless device, such as a user equipment (UE), a mobile station (MS), a mobile wireless device, a mobile communication device, a tablet, a handset, or other type of wireless device. The wireless device may include one or more antennas configured to communicate with a node or transmission station, such as a base station (BS), an evolved Node B (eNB), a baseband unit (BBU), a remote radio head (RRH), a remote radio equipment (RRE), a relay station (RS), a radio equipment (RE), or other type of wireless wide area network (WWAN) access point. The wireless device may be configured to communicate using at least one wireless communication standard, including 3GPP LTE, WiMAX, High Speed Packet Access (HSPA), Bluetooth, and WiFi. The wireless device may communicate using a different antenna for each wireless communication standard, or a shared antenna for multiple wireless communication standards. The wireless device may communicate in a wireless local area network (WLAN), a wireless personal area network (WPAN), and/or a WWAN.
图6还提供了可以被用于无线设备的音频输入和输出的麦克风和一个或多个扬声器的图示。显示屏可以是液晶显示(LCD)屏或其他类型的显示屏,如有机发光二极管(OLED)显示器。显示屏可以被配置成触摸屏。触摸屏可使用电容、电阻或另一种类型的触摸屏技术。应用处理器和图形处理器可以被耦合到内部存储器以提供处理和显示能力。非易失性存储端口也可以被用于向用户提供数据输入/输出选项。非易失性存储端口还可以被用于扩展无线设备的存储能力。键盘可与无线设备相集成或无线地连接到无线设备以提供附加的用户输入。虚拟键盘也可使用触摸屏被提供。FIG6 also provides an illustration of a microphone and one or more speakers that can be used for audio input and output of the wireless device. The display screen can be a liquid crystal display (LCD) screen or other type of display screen, such as an organic light emitting diode (OLED) display. The display screen can be configured as a touch screen. The touch screen can use capacitive, resistive, or another type of touch screen technology. An application processor and a graphics processor can be coupled to internal memory to provide processing and display capabilities. A non-volatile storage port can also be used to provide data input/output options to the user. The non-volatile storage port can also be used to expand the storage capacity of the wireless device. A keyboard can be integrated with the wireless device or wirelessly connected to the wireless device to provide additional user input. A virtual keyboard can also be provided using the touch screen.
各种技术或其某些方面或部分可采取诸如软盘、CD-ROM、硬驱动器、非暂态计算机可读存储介质或任何其他机器可读存储介质之类的有形介质中体现的程序代码的形式,其中当程序代码被加载到诸如计算机之类的机器中并由该机器运行时,所述机器成为用于实施各种技术的设备。电路可包括硬件、固件、程序代码、可执行代码、计算机指令、和/或软件。非暂态计算机可读存储介质可以是不包括信号的计算机可读存储介质。在程序代码运行在可编程计算机上的情况下,计算设备可包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备和至少一个输出设备。易失性和非易失性存储器和/或存储元件可以是RAM、EPROM、闪驱、光驱、磁硬驱或用于存储电子数据的其他介质。节点和无线设备还可包括收发器模块、计数器模块、处理模块和/ 或时钟模块或计时器模块。可实施或利用本文描述的各种技术的一个或多个程序可使用应用编程接口(API)、可重用控件等等。这种程序可用高级过程或面向对象编程语言实现以与计算机系统通信。然而,(一个或多个)程序可用汇编或机器语言实现,如果期望的话。任何情况下,语言可以是编译或解释型语言,并与硬件实现方式相结合。Various techniques or aspects or portions thereof may take the form of program code embodied in a tangible medium such as a floppy disk, CD-ROM, hard drive, non-transitory computer-readable storage medium, or any other machine-readable storage medium, wherein when the program code is loaded into a machine such as a computer and executed by the machine, the machine becomes a device for implementing the various techniques. Circuitry may include hardware, firmware, program code, executable code, computer instructions, and/or software. A non-transitory computer-readable storage medium may be a computer-readable storage medium that does not include signals. In the case where the program code runs on a programmable computer, the computing device may include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and at least one output device. The volatile and non-volatile memory and/or storage elements may be RAM, EPROM, a flash drive, an optical drive, a magnetic hard drive, or other media for storing electronic data. Nodes and wireless devices may also include a transceiver module, a counter module, a processing module, and/or a clock module or timer module. One or more programs that may implement or utilize the various techniques described herein may use an application programming interface (API), reusable controls, and the like. Such programs can be implemented in a high-level procedural or object-oriented programming language to communicate with a computer system. However, the program(s) can be implemented in assembly or machine language, if desired. In any case, the language can be a compiled or interpreted language, combined with a hardware implementation.
应该理解,为了更具体地强调其实现方式独立性,本说明书中描述的很多功能单元已被标记为模块。例如,模块可被实现为包括定制VLSI电路或门阵列、诸如逻辑芯片、晶体管或其他离散组件之类的现成半导体的硬件电路。模块还可用诸如现场可编程门阵列、可编程阵列逻辑、可编程逻辑设备等可编程硬件设备实现。It should be understood that many of the functional units described in this specification have been labeled as modules in order to more specifically emphasize their implementation independence. For example, a module can be implemented as a hardware circuit comprising custom VLSI circuits or gate arrays, off-the-shelf semiconductors such as logic chips, transistors, or other discrete components. A module can also be implemented using programmable hardware devices such as field programmable gate arrays, programmable array logic, or programmable logic devices.
模块还可用由各种类型的处理器执行的软件来实现。可执行代码的被识别模块例如可包括例如可被组织成对象、过程或功能的计算机指令的一个或多个物理或逻辑块。然而,被识别模块的可执行体无需物理上在一起,而是可包括在不同位置存储的不同指令,这些指令当逻辑上结合在一起时,包括所述模块并实现该模块的宣称的目标。Modules can also be implemented using software executed by various types of processors. An identified module of executable code may, for example, include one or more physical or logical blocks of computer instructions, such as those organized into objects, procedures, or functions. However, the executables of an identified module need not be physically together, but may include different instructions stored in different locations that, when logically combined together, comprise the module and achieve the module's stated purpose.
实际上,可执行代码的模块可以是单个指令或多个指令,并且甚至可以分布在若干不同的代码段上、不同程序之间和若干存储设备上。简单地,操作数据可在本文中被识别并例示在模块内,并且可以提供任何适当的形式来体现并被组织在任何适当类型的数据结构内。操作数据可被收集为单个数据集,或者可分布在包括不同存储设备的不同位置上,并且可至少部分地仅作为系统或网络上的电子信号存在。模块可以是被动或主动的,包括可操作来执行期望的功能的代理。In fact, the module of executable code can be a single instruction or multiple instructions, and can even be distributed on several different code segments, between different programs and on several storage devices. Simply, operational data can be identified and illustrated in this article in the module, and any appropriate form can be provided to embody and be organized in the data structure of any appropriate type. Operational data can be collected as a single data set, or can be distributed on different locations including different storage devices, and can exist at least in part as only electronic signals on a system or network. Modules can be passive or active, including agents that can operate to perform desired functions.
本说明书各处对“示例”的引用意味着结合该示例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,本说明书各处出现的短语“在一个示例中”不一定全部指代同一实施例。References throughout this specification to "example" mean that a particular feature, structure, or characteristic described in conjunction with the example is included in at least one embodiment of the present invention. Therefore, the phrase "in one example" appearing throughout this specification is not necessarily all referring to the same embodiment.
如本文所使用的,为了方便起见,多个项目、结构元素、组成元素和/ 或素材可被呈现在共同的列表中。然而,这些列表应被解释成仿佛该列表的每个成员各自被识别为分开且唯一的成员。因此,在没有相反指示的情况下,这种列表的任何一个成员不应仅基于它们与同一列表的任何其他呈现呈现在共同的群中而被解释成该其他成员的实际上的等同物。另外,本发明的各种实施例和示例在本文中可与它们的各种组件的替代物一起被指代。将理解,这种实施例、示例和替代物不被解释为彼此的实际上的等同物,而是被考虑成本发明的分开且自治的表示。As used herein, for convenience, multiple items, structural elements, constituent elements and/or materials can be presented in a common list. However, these lists should be interpreted as if each member of the list is identified as a separate and unique member. Therefore, in the absence of contrary instructions, any one member of such a list should not be interpreted as the actual equivalent of the other members based solely on their presentation in a common group with any other presentation of the same list. In addition, various embodiments and examples of the present invention can be referred to together with the substitutes of their various components in this article. It will be understood that such embodiments, examples and substitutes are not interpreted as actual equivalents to each other, but are considered to be separate and autonomous representations of the present invention.
另外,所描述的特征、结构或特性可通过任何适当方式在一个或多个实施例中组合。在一些说明书中,提供了许多具体细节(如布局示例、距离、网络示例等)以提供对发明的实施例的完整理解。然而,本领域技术人员将认识到发明可以不用一个或多个具体细节或利用其他方法、组件、布局等等来实施。在其他实例中,已知的结构、素材或操作未被示出或详细描述以免模糊发明的方面。In addition, the described features, structures or characteristics can be combined in one or more embodiments by any appropriate means. In some specifications, many specific details (such as layout examples, distances, network examples, etc.) are provided to provide a complete understanding of the embodiments of the invention. However, those skilled in the art will recognize that the invention can be implemented without one or more specific details or by utilizing other methods, components, layouts, etc. In other examples, known structures, materials or operations are not shown or described in detail to avoid blurring the aspects of the invention.
虽然前述示例在一个或多个特定应用中例示了本发明的原理,但是本领域普通技术人员将明白,可以在不发挥发明能力并且不脱离发明的原理和概念的情况下进行形式、用法和实施细节的很多修改。因此,不打算对发明进行所附权利要求以外的限制。Although the foregoing examples illustrate the principles of the present invention in one or more specific applications, it will be apparent to those skilled in the art that many modifications in form, usage, and implementation details may be made without exercising the inventive power and without departing from the principles and concepts of the invention. Therefore, it is not intended that the invention be limited except as set forth in the appended claims.
Claims (17)
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US14/041,446 | 2013-09-30 | ||
| US14/041,446 US9124673B2 (en) | 2013-09-30 | 2013-09-30 | Transmission control protocol (TCP) based video streaming |
| PCT/US2014/056212 WO2015047846A1 (en) | 2013-09-30 | 2014-09-18 | Transmission control protocol (tcp) based video streaming |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| HK1223206A1 HK1223206A1 (en) | 2017-07-21 |
| HK1223206B true HK1223206B (en) | 2020-10-16 |
Family
ID=
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3053313B1 (en) | Transmission control protocol (tcp) based video streaming | |
| JP5588019B2 (en) | Method and apparatus for analyzing a network abstraction layer for reliable data communication | |
| JP6746582B2 (en) | Media content streaming | |
| JP6067378B2 (en) | Method and apparatus for determining retransmission | |
| CN109039495B (en) | QoE-aware radio access network architecture for HTTP-based video streaming | |
| Han et al. | On accelerating content delivery in mobile networks | |
| US20130346562A1 (en) | Data transmission method and apparatus for mobile terminal | |
| HK1258300A1 (en) | Link-aware streaming adaptation | |
| CN107210999B (en) | Link-aware streaming adaptation | |
| US12363043B2 (en) | Priority application and network bits for PDU handling | |
| KR20120082416A (en) | An efficient application-layer automatic repeat request retransmission method for reliable real-time data streaming in networks | |
| KR20140017662A (en) | Mobile transceiver, base station transceiver, data server, and related apparatuses, methods, and computer programs | |
| US10341047B2 (en) | Method and system for controlling the forwarding of error correction data | |
| US9307441B1 (en) | Systems and methods of transferring information to a wireless device | |
| CN103581137A (en) | ECN proxy equipment and ECN notification method | |
| HK1223206B (en) | Method and apparatus for transmission control protocol (tcp) based video streaming | |
| WO2026006938A1 (en) | Apparatus and method for latency-sensitive rtp packet recovery | |
| WO2026017753A1 (en) | Method for managing data transmission in a communication network | |
| GB2640370A (en) | Method for managing data transmission in a communication network | |
| WO2025210190A1 (en) | Method for managing data transmission in a communication network | |
| WO2025210182A1 (en) | Method for managing data transmission in a communication network | |
| Tirouvengadam et al. | Hybrid Mode Radio Link Control for Efficient Video Transmission over 4GLTE Network | |
| WO2020118203A2 (en) | Multicast flow control in rlnc-based data transmission | |
| HK1242878A1 (en) | Media content streaming | |
| HK1244121B (en) | Link-aware streaming adaptation |