Various example embodiments relate generally to wireless networks and, more specifically, relate to throughput and flow control adaptation in wireless networks.
Wireless networks must be designed to meet the growing demands of applications. Future wireless networks will need to support applications having specific QoS requirements, such as high-bit rates and low latencies for example, thus presenting the wireless networks with multiple QoS flows. For example, applications may present the network with multiple audio/video streams and real-time information from tactical sensors, for example. These wireless QoS requirements are difficult to achieve due to a number of reasons, including radio impairments, fading, multipath, shadowing, interference, measurement gaps, varying load, thermal conditions, processing power, and proportional sharing.
Abbreviations that may be found in the specification and/or the drawing figures are defined below, after the main part of the detailed description section.
This section is intended to include examples and is not intended to be limiting.
According to an example of an embodiment, a method is provided, the method including: inserting at least one link layer request message into a data stream to be transmitted by the apparatus, wherein the data stream corresponds to an application and comprises a plurality of data parts, and wherein the at least one link layer request message requests a status of a transmission of a first data part of the plurality of data parts from a first communication protocol of an apparatus; receiving a link layer response message indicative of the status of the transmission of the first data part from the first communication protocol; and controlling a flow of the data stream based on the link layer response message.
According to another example of an embodiment, an apparatus is provided comprising means for performing: inserting at least one link layer request message into a data stream to be transmitted by the apparatus, wherein the data stream corresponds to an application and comprises a plurality of data parts, and wherein the at least one link layer request message requests a status of a transmission of a first data part of the plurality of data parts from a first communication protocol of the apparatus; receiving a link layer response message indicative of the status of the transmission of the first data part from the first communication protocol; and controlling a flow of the data stream based on the link layer response message.
According to another example of an embodiment, a computer readable medium comprising program instructions is provided. The program instructions may cause the apparatus to perform at least the following: inserting at least one link layer request message into a data stream to be transmitted by an apparatus, wherein the data stream corresponds to an application and comprises a plurality of data parts, and wherein the at least one link layer request message requests a status of a transmission of a first data part of the plurality of data parts from a first communication protocol of the apparatus; receiving a link layer response message indicative of the status of the transmission of the first data part from the first communication protocol; and controlling a flow of the data stream based on the link layer response message.
Some example embodiments will now be described with reference to the accompanying drawings.
The exemplary embodiments herein describe techniques for application notifications from network for throughput and flow control adaptation. Additional description of these techniques is presented after a system into which the exemplary embodiments may be used is described.
Features as described herein generally refer to LTE terms, however, it should be noted that these features may be used in the future with other types of systems. For example, references to an eNB (i.e. an LTE base station) are equally applicable to future base stations of wireless networks (such as, for example, base stations in 5G wireless networks referred to as gNB) unless indicated otherwise.
Turning to
The eNB (evolved NodeB) 170 is a base station (e.g., for LTE, long term evolution) that provides access by wireless devices such as the UE 110 to the wireless network 100. The eNB 170 includes one or more processors 152, one or more memories 155, one or more network interfaces (N/W I/F(s)) 161, and one or more transceivers 160 interconnected through one or more buses 157. Each of the one or more transceivers 160 includes a receiver, Rx, 162 and a transmitter, Tx, 163. The one or more transceivers 160 are connected to one or more antennas 158. The one or more memories 155 include computer program code 153. The eNB 170 includes a protocol stack module, comprising one of or both parts 150-1 and/or 150-2, which may be implemented in a number of ways. The protocol stack module may be implemented in hardware as protocol stack module 150-1, such as being implemented as part of the one or more processors 152. The protocol stack module 150-1 may be implemented also as an integrated circuit or through other hardware such as a programmable gate array. In another example, the protocol stack module may be implemented as protocol stack module 150-2, which is implemented as computer program code 153 and is executed by the one or more processors 152. For instance, the one or more memories 155 and the computer program code 153 are configured to, with the one or more processors 152, cause the eNB 170 to perform one or more of the operations as described herein. The one or more network interfaces 161 communicate over a network such as via the links 176 and 131. Two or more eNBs 170 communicate using, e.g., link 176. The link 176 may be wired or wireless or both and may implement, e.g., an X2 interface.
The one or more buses 157 may be address, data, or control buses, and may include any interconnection mechanism, such as a series of lines on a motherboard or integrated circuit, fiber optics or other optical communication equipment, wireless channels, and the like. For example, the one or more transceivers 160 may be implemented as a remote radio head (RRH) 195, with the other elements of the eNB 170 being physically in a different location from the RRH, and the one or more buses 157 could be implemented in part as fiber optic cable to connect the other elements of the eNB 170 to the RRH 195.
It is noted that description herein indicates that “cells” perform functions, but it should be clear that the eNB that forms the cell will perform the functions. The cell makes up part of an eNB. That is, there can be multiple cells per eNB. The term “cell” may refer to the coverage area of a given set of transceivers associated with a eNB, or may refer to the logical part of the eNB that performs functions related to the transmission/reception within that coverage area. For instance, there could be three cells for a single eNB carrier frequency and associated bandwidth, each cell covering one-third of a 360 degree area so that the single eNB's coverage area covers an approximate oval or circle. Furthermore, each cell can correspond to a single carrier and an eNB may use multiple carriers. So if there are three 120 degree cells per carrier and two carriers, then the eNB has a total of 6 cells.
The wireless network 100 may include one or more network control elements (NCE) 190 that may include MME (Mobility Management Entity) and/or SGW (Serving Gateway) functionality, and which provides connectivity with a further network, such as a telephone network and/or a data communications network (e.g., the Internet). The eNB 170 is coupled via a link 131 to the NCE 190. The link 131 may be implemented as, e.g., an S1 interface. The NCE 190 includes one or more processors 175, one or more memories 171, and one or more network interfaces (N/W I/F(s)) 180, interconnected through one or more buses 185. The one or more memories 171 include computer program code 173. The one or more memories 171 and the computer program code 173 are configured to, with the one or more processors 175, cause the NCE 190 to perform one or more operations.
The wireless network 100 may implement network virtualization, which is the process of combining hardware and software network resources and network functionality into a single, software-based administrative entity, a virtual network. Network virtualization involves platform virtualization, often combined with resource virtualization. Network virtualization is categorized as either external, combining many networks, or parts of networks, into a virtual unit, or internal, providing network-like functionality to software containers on a single system. Note that the virtualized entities that result from the network virtualization are still implemented, at some level, using hardware such as processors 152 or 175 and memories 155 and 171, and also such virtualized entities create technical effects.
The computer readable memories 125, 155, and 171 may be of any type suitable to the local technical environment and may be implemented using any suitable data storage technology, such as semiconductor based memory devices, flash memory, magnetic memory devices and systems, optical memory devices and systems, fixed memory and removable memory. The computer readable memories 125, 155, and 171 may be means for performing storage functions. The processors 120, 152, and 175 may be of any type suitable to the local technical environment, and may include one or more of general purpose computers, special purpose computers, microprocessors, digital signal processors (DSPs) and processors based on a multi-core processor architecture, as non-limiting examples. The processors 120, 152, and 175 may be means for performing functions, such as controlling the UE 110, eNB 170, and other functions as described herein.
In general, the various embodiments of the user equipment 110 can include, but are not limited to, cellular telephones such as smart phones, tablets, personal digital assistants (PDAs) having wireless communication capabilities, portable computers having wireless communication capabilities, image capture devices such as digital cameras having wireless communication capabilities, gaming devices having wireless communication capabilities, music storage and playback appliances having wireless communication capabilities, Internet appliances permitting wireless Internet access and browsing, tablets with wireless communication capabilities, as well as portable units or terminals that incorporate combinations of such functions.
Having thus introduced one suitable but non-limiting technical context for the practice of the various exemplary embodiments, the exemplary embodiments will now be described with greater specificity.
In order to meet wireless QoS requirements, some real-time applications dynamically adapt themselves to network delay and bandwidth. Ideally applications would instantaneously adapt themselves; however, such adjustments are based on end to end measurements and thus take at least one round-trip-time (RTT) to adjust, and typically more than one RTT to smooth the responses. Thus, RTT adversely affects the quality of the adaptation. For example, in rate adaptation of real-time video (such as video conferencing) a video receiver may send back an estimate of the achievable rate end to end. Also, if there is congestion then the video receiver may send back a notification so that the sender will transmit dummy frames until the congestion event is over. For example, if the channel rate drops, the transmitter will not find this out until at least one RTT. Before receiving feedback (i.e. before one RTT), the transmitter may continue to send at a higher rate. If the radio link is the bottleneck, then packets will be buffered at the sender, and be transmitted at the link rate which is lower than the traffic input rate, and delivered late.
The approximate outage period of, for example in real-time video, may be calculated as follows:
The outage period for the above is approximately equal to:
This can be described even more simply as RTT*K, where K is
Some attempts to address these problems include using multiple radio bearer support and using intra-flow priority queue. However, each one of these attempts suffers from one or more of the following disadvantages: the network operator is required to allocate more resources, for example an additional GBR bearer, which reduces the resources of other users in the case multiple radio bearer support; intra-flow priority queues are overly complex, require classification and identification of traffic, and/or require a dynamic application-network interface.
Various example embodiments described herein recognize that a modem (such as an LTE modem for example) is often times the bottleneck when the modem is included in the path between the application and the server, and provide a general flow-control mechanism to assist the application in detecting and adapting to rate drops. In some examples, this flow-control mechanism relates to how communications are transmitted to the MAC layer, and up, to provide the application with a local throughput and congestion event notification.
Referring now to
According to example embodiments the link layer response may be generated based on at least one of the following three events:
For option (i), the timestamp ignores the over-the-air transmission delay, but is relatively easy to implement. For option (ii), additional communications between layers is required to obtain the HARQ process feedback, but this option also provides better indication of delivery as well as delay. Option (iii) provides the most accurate indication of delivery, but there is delay in receiving the RLC Status PDU, as the ACK/NACKs are aggregated and then delivered over-the-air.
Referring now to
It should be understood that the control message format 500 and the corresponding values are merely example, and other formats and/or values are also possible, such as control format messages with different lengths, different size fields, different values, and/or the like.
According to some example embodiments, an initial setup and/or configuration is performed so that the application knows certain information, such as an IP address and a UDP port of where to send the requests (e.g. LL-Ack-Req). For example, such information could be preconfigured in a user equipment and/or the information could be accessed on the internet if the application knows which cellular operator the user equipment is using. Another possibility is using a discovery protocol to discover such information. It is also noted that user equipments may be configured by the network (such as an MME for example) on a per user basis from the MME, in which case the UE and/or eNB would be configured to accept requests as described above (e.g. LL-Ack-Req), and the rate of such requests. Alternatively, a dynamic service is also possible where a wireless network (such as a 5G wireless network) may use an exposure function (NEF) to interface to the application, so that application can request this feature.
Although some of the example embodiments above describe a user equipment sending the requests and receiving the responses, this need not be the case. For example, in one example embodiment the requests (e.g. LL-Ack-Req) may be trapped and the responses (e.g. LL-ACK-Resp) may be generated by the network. In such examples, the process is completely network driven and the responses may be trapped at either the PDCP layer or IP layer at a network node (e.g. an eNB or PGW). It is noted in these network-driven examples, the LL-Ack-Resp would be sent over the air (downlink).
Referring now to
The rate and congestion algorithms that were used in the simulation were as follows:
End-to-End, Video Source to Video Sink:
LL-Ack Feedback:
Referring also to
According to an example of an embodiment, a method is provided, the method including: inserting at least one link layer request message into a data stream to be transmitted by an apparatus, wherein the data stream corresponds to an application and comprises a plurality of data parts, and wherein the at least one link layer request message requests a status of a transmission of a first data part of the plurality of data parts from a first communication protocol of the apparatus as indicated by block 800; receiving a link layer response message indicative of the status of the transmission of the first data part from the first communication protocol as indicated by block 802; and controlling a flow of the data stream based on the link layer response message as indicated by block 804.
The layer response message may include one of: a first value acknowledging the first data part has been transmitted by a modem of the apparatus; and a second value indicating the first data part was not transmitted and/or that the status of the transmission cannot be provided. Controlling the flow of the data stream may include: causing a next data part of the data stream be transmitted when the link layer response message acknowledges the transmission of the first data part, and causing the next part of the data stream to be skipped when the link layer response message fails to acknowledge transmission of the first data part of the application. The method may include: estimating a transmission delay of the data stream based on a first time value associated with the link layer response message wherein the link layer response message indicates that the first data part has been transmitted, and a second time value associated with a further link layer response message wherein the further link layer response message indicates that a next part of the data stream has been transmitted. The method may include: adjusting a transmission rate of the data stream based at least on the estimated transmission delay. The received link layer response message may be generated in response to determining by a second communication protocol of the apparatus a transmission opportunity for the first data part. The first communication protocol may be a packet data convergence protocol, and the second communication protocol may be a radio link control protocol. The at least one link layer request message and the received link layer response message may not be transmitted by the modem of the apparatus. The data stream may include a video stream such that each of the plurality of data parts of the data stream comprises a video frame. The video stream may be a real-time video stream. Inserting the at least one link layer request message may include: inserting a first link layer request message prior to each video frame in the data stream and a second link layer request message after each video frame in the data stream.
According to another example of an embodiment, an apparatus is provided comprising means for performing: inserting at least one link layer request message into a data stream to be transmitted by the apparatus, wherein the data stream corresponds to an application and comprises a plurality of data parts, and wherein the at least one link layer request message requests a status of a transmission of a first data part of the plurality of data parts from a first communication protocol of the apparatus; receiving a link layer response message indicative of the status of the transmission of the first data part from the first communication protocol; and controlling a flow of the data stream based on the link layer response message.
The layer response message may include one of: a first value acknowledging the first data part has been transmitted by a modem of the apparatus; and a second value indicating the first data part was not transmitted and/or that the status of the transmission cannot be provided. Controlling the flow of the data stream may include: causing a next data part of the data stream be transmitted when the link layer response message acknowledges the transmission of the first data part, and causing the next part of the data stream to be skipped when the link layer response message fails to acknowledge transmission of the first data part of the application. The means may be further configured to perform: estimating a transmission delay of the data stream based on a first time value associated with the link layer response message wherein the link layer response message indicates that the first data part has been transmitted, and a second time value associated with a further link layer response message wherein the further link layer response message indicates that a next part of the data stream has been transmitted. The means may be further configured to perform: adjusting a transmission rate of the data stream based at least on the estimated transmission delay. The received link layer response message may be generated in response to determining by a second communication protocol of the apparatus a transmission opportunity for the first data part. The first communication protocol may be a packet data convergence protocol, and the second communication protocol may be a radio link control protocol. The at least one link layer request message and the received link layer response message may not be transmitted by the modem of the apparatus. The data stream may include a video stream such that each of the plurality of data parts of the data stream comprises a video frame. The video stream may be a real-time video stream. Inserting the at least one link layer request message may include: inserting a first link layer request message prior to each video frame in the data stream and a second link layer request message after each video frame in the data stream. The means may include: at least one processor; and at least one memory including computer program code, the at least one memory and computer program code configured to, with the at least one processor, cause the performance of the apparatus.
According to another example of an embodiment, a computer readable medium may include program instructions for causing an apparatus to perform at least the following: inserting at least one link layer request message into a data stream to be transmitted by an apparatus, wherein the data stream corresponds to an application and comprises a plurality of data parts, and wherein the at least one link layer request message requests a status of a transmission of a first data part of the plurality of data parts from a first communication protocol of the apparatus; receiving a link layer response message indicative of the status of the transmission of the first data part from the first communication protocol; and controlling a flow of the data stream based on the link layer response message.
The layer response message may include one of: a first value acknowledging the first data part has been transmitted by a modem of the apparatus; and a second value indicating the first data part was not transmitted and/or that the status of the transmission cannot be provided. Controlling the flow of the data stream may include: causing a next data part of the data stream be transmitted when the link layer response message acknowledges the transmission of the first data part, and causing the next part of the data stream to be skipped when the link layer response message fails to acknowledge transmission of the first data part of the application. The program instructions may include: estimating a transmission delay of the data stream based on a first time value associated with the link layer response message wherein the link layer response message indicates that the first data part has been transmitted, and a second time value associated with a further link layer response message wherein the further link layer response message indicates that a next part of the data stream has been transmitted. The program instructions may include: adjusting a transmission rate of the data stream based at least on the estimated transmission delay. The received link layer response message may be generated in response to determining by a second communication protocol of the apparatus a transmission opportunity for the first data part. The first communication protocol may be a packet data convergence protocol, and the second communication protocol may be a radio link control protocol. The at least one link layer request message and the received link layer response message may not be transmitted by the modem of the apparatus. The data stream may include a video stream such that each of the plurality of data parts of the data stream comprises a video frame. The video stream may be a real-time video stream. Inserting the at least one link layer request message may include: inserting a first link layer request message prior to each video frame in the data stream and a second link layer request message after each video frame in the data stream.
Without in any way limiting the scope, interpretation, or application of the claims appearing below, a technical effect of one or more of the example embodiments disclosed herein is improving adaptation, namely, recovery from rate drop, on a non-GBR bearer. Another technical effect of one or more of the example embodiments disclosed herein is that it does not require classification/identification and thus there is no requirement to have a dynamic application-network interface. Another technical effect of one or more of the example embodiments disclosed herein is allowing a codec to tailor its adaptation strategy with knowledge of exactly which frame was transmitted.
Embodiments herein may be implemented in software (executed by one or more processors), hardware (e.g., an application specific integrated circuit), or a combination of software and hardware. In an example embodiment, the software (e.g., application logic, an instruction set) is maintained on any one of various conventional computer-readable media. In the context of this document, a “computer-readable medium” may be any media or means that can contain, store, communicate, propagate or transport the instructions for use by or in connection with an instruction execution system, apparatus, or device, such as a computer, with one example of a computer described and depicted, e.g., in
If desired, the different functions discussed herein may be performed in a different order and/or concurrently with each other. Furthermore, if desired, one or more of the above-described functions may be optional or may be combined.
Although various aspects of the invention are set out in the independent claims, other aspects of the invention comprise other combinations of features from the described embodiments and/or the dependent claims with the features of the independent claims, and not solely the combinations explicitly set out in the claims.
It is also noted herein that while the above describes example embodiments of the invention, these descriptions should not be viewed in a limiting sense. Rather, there are several variations and modifications which may be made without departing from the scope of the present invention as defined in the appended claims.
The following abbreviations that may be found in the specification and/or the drawing figures are defined as follows: