The present invention relates to controlling transmission of data from a wireless device to a receiver.
In an attempt to try and improve data flow, minimise congestion and for efficiency's sake, rate control is widely used in such transmissions. That is, the rate at which data is transmitted from the sending side (transmitter) is controlled based on information relating to the available bandwidth over which it is to be transmitted. One approach to rate control is end-to-end rate control. End-to-end rate control can be implemented in a number of different forms, but in principle, relies on information about the channel which exists from end-to-end between the sending side (transmitters) and the receiving side (receiver). In any implementation of end-to-end rate control, a message from the transmitter has to reach the receiver, and information relating to the message (or the message itself) returned from the receiver to the transmitter in a round trip. End-to-end rate control has the advantage that no assumptions are made as to where the smallest bottleneck on the communication channel sits. On the other hand, as congestion starts building up at the bottleneck, this has to be detected at the receiver and a message returned to the sender. Thus, reacting to congestion takes at least a round-trip time (RTT), during which the congestion becomes worse, potentially harming a real time communication experience.
It is an aim of the present invention to provide a technique for controlling transmission of data which retains the end-to-end rate control advantages, but which improves reaction times.
According to an aspect of the present invention there is provided a method of controlling transmission of data from a wireless device to a receiver connected via a communication channel, the method comprising:
an application executing on the wireless device providing an estimate of end-to-end bandwidth of the communication channel;
supplying to the application from wireless access circuitry in the wireless device at least on communication-related parameter;
modifying in the application the estimate of end-to-end bandwidth using the at least one communication-related parameter.
A computer program product comprising code embodied on a non-transient computer-readable medium which when executed implement the above-defined method is also provided.
The term “end-to-end bandwidth” used herein is not intended to be restricted to a situation where the bandwidth is estimated between a source and a final destination. In the present context, end-to-end bandwidth relates to the situation where so called intelligent operations occur at the end points of a communication system, in contrast with a model of intelligent operations being carried out in the communication network itself. The end-to-end principle is one of the central design principles of the current internet, and applies to many other network communication systems. A benefit of the end-to-end principle is that the network does not have to maintain the state of each traffic flow through it, and so network design becomes more simple and robust.
In particular, end-to-end bandwidth can encompass end points which include sender, receiver or overlay/relay nodes which may be situated between the sender and an ultimate receiver.
Another aspect of the invention provides a processor for use in a wireless device for transmitting data over a wireless channel to a receiver, a computer program product comprising program code means which when executed on a processor configure an application to carry out the following steps: providing estimate of end-to-end bandwidth of a communication channel; receive at least one communication related parameter from wireless access circuitry; and modify the estimate of end-to-end bandwidth using the at least one communication related parameter.
The following described embodiments of the present invention combine the advantages of end-to-end rate control with local monitoring at the wireless access level. That is, the local queue assisted rate control described herein allows end points to do the rate control instead of requiring the network to make decisions. The inventors have appreciated that in many cases, the wireless access technology, and particularly the uplink, is the weakest link on a communication channel and thus the most likely source of congestion. By monitoring communication-related parameters at the wireless access level, in particular buffer status indicators, and notifying the application layer, the advantages of end-to-end rate control can be combined with a fast reaction based on information at the wireless access level. Thus, in the following described embodiments, it is possible to react immediately to changes in the local buffer, while maintaining end-to-end rate control should the bottleneck in fact sit elsewhere than in the local wireless uplink.
End-to-end bandwidth estimation can be then at the sender side or the receiver side. That is, the application can be considered to generate the estimate of end-to-end bandwidth at the wireless device (on the send side), for example based on feedback from a remote device such as the sender, perhaps in the form of measuring and low pass filtering the rate of return acknowledgements from the remote device or receiver.
Alternatively, the estimate of end-to-end bandwidth can be carried out on the receive side, and the application can be configured to receive an estimate of end-to-end bandwidth from a remote device or the receiver.
Thus, it is possible to monitor a local buffer provided at the wireless access circuitry constantly, and to immediately react to congestion by notifying the application as soon as congestion is detected. Because the feedback from the wireless access level can be direct measurements of the buffer queue status at that level, they are much more reliable than queuing estimates underlying end-to-end delay-based rate control, because the latter can be contaminated by clock-offset problems and network artefacts, such as a Wifi beacon search.
For a better understanding of the present invention to show how the same may be carried into effect, reference will now be made to the following drawings.
In the following described embodiments of the invention, in a wireless packet switch communication system (GPRS, UMTS, HSDPA, Wimax, LTE, Wifi etc) the sending side constantly monitors the amount of traffic awaiting transmission in a physical (network) layer. Information pertaining to this buffered data at the physical layer is fed to an application layer to facilitate improved rate control. Specifically, in one embodiment, it is shown how to combine such information with end-to-end rate control to achieve a more agile rate controller.
A schematic version of the context of the invention is described with reference to
The transmitter is a wireless device which includes a microprocessor 8 which executes programs in the form of code which can be held locally in the microprocessor 8 or in a memory connected to it. The wireless device 4 has a radio access chip 10 for transmitting and receiving radio frequency (RF) communications between the wireless device 4 and the network 2.
RF communications between the wireless device 4 and the network 2 take place by transmitting and receiving RF signals over radio channels by the radio access chip 10.
The wireless device can be any piece of user equipment (UE) which supports at least one radio access technology, for example, GPRS, UMTS, HSDPA, Wimax, LTE or Wifi. Software for execution by the processor is organised in a protocol stack of the type illustrated in
The link layer is responsible for organising communication technologies for the device 4. The media access control layer 22 within the link layer 18 is responsible for addressing, assigning multiple channels to different users and avoiding collisions, amongst other things. In particular, it is responsible for controlling the operational mode of the radio. It contains a buffer for queuing data to be transmitted and monitoring circuitry, discussed more fully later. Each layer can communicate with its equivalent layer in a different wireless device—the link layer 18 communicates with a corresponding link layer in a different device at the level of RF data in the form of frames.
The Internet layer provides Internet communications in the form of packets carrying IP (Internet Protocol) data with IP headers, and is responsible for IP addressing.
The transport layer 14 runs host to host communications according to the transmission control protocol (TCP) or a user datagram protocol (UDP), for example. In this context, a host is any kind of user equipment seeking to communicate wirelessly.
The application layer 12 handles application-based interactions on a process-to-process level between communicating hosts. It is this layer that runs user applications which may generate data to be transmitted over the channel. Thus, embodiments of the invention are described in the context that a user equipment runs at least one application that connects to the Internet 2 through at least one of the radio access technologies through the media access control layer 22.
The invention can be used with a number of different applications, but one particular context concerns social communications, such as VoIP (Voice over Internet Protocol) calls between UE's, instant messaging (IM) chat or live meetings run over a conference framework. Alongside these kind of services, applications can be responsible for data transfer, such as file transfer, updating presence information for contacts in a social network, or control data such as “keep-alive” data.
Preferably, the application sending the real-time data over the Internet has an end-to-end rate control scheme implemented to determine the coding rates of the real-time data. This end-to-end scheme can be any method known in the art, such as described in Jacobson, V., Congestion Avoidance and Control, ACM Computer Communications Review, 18(4):314-329, August 1988. Such schemes generally fall into two categories:
Receiver based, where the receiving side estimates the proper bandwidth to use over the end-2-end connection based on reception of the data.
Transmitter based, where the transmitting side decides on the bandwidth to use based on special feedback fed back from the receiver.
In either case, the estimate of end-to-end bandwidth provided by the application is referred to as BW_e2e. Information on which the end-to-end rate control is based must traverse the network from the receiver to the transmitter; thus it will be subject to delay. Thus, in case of congestion somewhere on the network path, the transmitter reaction to it will be delayed accordingly, and the congestion problems become worse.
In an alternative, but not preferred, embodiment the end-to-end estimate may simply equal the recent sending rate but such an approach can be problematic if the bottleneck sits elsewhere.
The inventors have appreciated that in many cases, the wireless access technology, and especially its uplink, is the weakest link on a communication path, and thus the most likely source of congestion. This congestion will manifest as a build-up of a packet queue in the same device or computer as is running the real-time application, however, at a different network layer. In the described embodiments of this invention, the lower network layers 20, 22 continuously inform the application layer about the state of their internal buffer or other communication-related parameter monitored at the wireless level. This information may comprise one or more of the following parameters:
A time average of above-mentioned parameters can also be utilised.
An example implementation of c(k) is to set c(k)=1 when d(k) exceeds a pre-specified threshold, and back to 0 when it goes below another lower threshold.
The information fed from the lower network layers is used to modify the end-to-end bandwidth estimate. For example, we can use the parameters to find a correction term to the end-to-end bandwidth:
BW(k)=BW_e2e(k)+f(p(k)) (1)
Where p(k) is the aggregation of present and past values of d(k), c(k) and s(k).
In a preferred embodiment we use for f( ):
f(p(k))=min(beta*BW_e2e(k),alpha(k)*BW_e2e(k)*(d_target−d_aggr(k)) (2)
Where d_target is a constant, alpha(k) is a stepsize factor and d_aggr is an aggregated delay value, calculated from the generalized parameter set p(k) of current and past values. Limiting f(p(k)) is necessary should the bottleneck sit elsewhere in the network; suggested value is in range beta=0.0-0.05.
As for the calculation of d_aggr(k) there are many options. Generally, the values should be smoothed to avoid rapid variation, but still allow for quick reaction to congestion. This can be obtained through adaptive smoothing.
The combined observation, d_inst(k) can be generated by combining the instantaneous values of some or all of d(k), c(k) and s(k). Examples are:
In some cases, not all of the parameters d(k), c(k) and s(k) are available; in this case, the equations listed above can be used directly if setting the missing parameters to 0. However, to provide a significant improvement, at least one of d(k) or c(k) must be available: these can be termed buffer status indicators, because they relate to traffic congestion at the link layer 18.
A potential problem of the method described above is that another application running in the same environment may not be listening to the feedback, thus not reacting to congestion. Such an application could gradually steal all available bandwidth from applications reacting properly. Therefore, in a preferred embodiment, we take Xtr(k) into account also. One way of doing this is to let alpha(k) in Equation (2) depend on Xtr(k). For example, if Xtr(k)=tr_0(k)/tr_tot(k) as suggested above:
alpha(k)=alpha0*max(0,Xtr(k)−Xtr0)/(1−Xtr0).
With 0<Xtr0<1, e.g. Xtr0=0.5. This way, the back-off steps taken will be smaller as the application's share of the total traffic reduces.
The bandwidth adaptation function 44 processes the estimate of e2e_BW with the local link information to provide the modified estimate of bandwidth for the application to use in setting the data transmission rate.
It will be appreciated that the equations above are only example embodiments, and many variations are possible. Similarly, it is possible to interchange the parameter smoothing and combinations steps as shown in
Number | Date | Country | Kind |
---|---|---|---|
1117867.0 | Oct 2011 | GB | national |
This application is a continuation of and claims priority under 35 U.S.C. §120 to U.S. patent application Ser. No. 13/341,287, filed on Dec. 30, 2011, Ser. No. 13/341,287 claims priority under 35 USC §119 or §365 to Great Britain Patent Application No. 1117867.0, filed Oct. 17, 2011. The disclosures of which are incorporated by reference herein in their entirety.
Number | Name | Date | Kind |
---|---|---|---|
6961334 | Kaczmarczyk | Nov 2005 | B1 |
7688788 | Gefflaut | Mar 2010 | B2 |
7830920 | Cole | Nov 2010 | B2 |
1502393 | Liu et al. | Jan 2011 | A1 |
8184656 | Chandra | May 2012 | B2 |
8259570 | Rodbro et al. | Sep 2012 | B2 |
8270312 | Wakuda | Sep 2012 | B2 |
8300542 | Peisa et al. | Oct 2012 | B2 |
8320385 | Bali | Nov 2012 | B1 |
8358580 | Ray et al. | Jan 2013 | B2 |
8467330 | Gopalakrishnan | Jun 2013 | B2 |
8520603 | Kozisek et al. | Aug 2013 | B2 |
8531954 | McNaughton et al. | Sep 2013 | B2 |
8537695 | Wiley et al. | Sep 2013 | B2 |
8868003 | Rodbro | Oct 2014 | B2 |
8885467 | Godfrey | Nov 2014 | B2 |
8953442 | Kaplan | Feb 2015 | B2 |
9191840 | Laroia | Nov 2015 | B2 |
9246642 | Fontaine | Jan 2016 | B2 |
9338767 | Parizhsky | May 2016 | B2 |
20060133276 | Cole | Jun 2006 | A1 |
20080125133 | Chmaytelli | May 2008 | A1 |
20090103450 | Pelsa et al. | Apr 2009 | A1 |
20120083264 | Ramasamy et al. | Apr 2012 | A1 |
20130095764 | Rödbro | Apr 2013 | A1 |
20130135995 | Wu et al. | May 2013 | A1 |
Number | Date | Country |
---|---|---|
101065946 | Oct 2007 | CN |
1981212 | Oct 2008 | EP |
2466208 | Jun 2010 | GB |
2002111688 | Apr 2002 | JP |
2004266330 | Sep 2004 | JP |
2007514364 | May 2007 | JP |
2008524921 | Jul 2008 | JP |
2009526432 | Jul 2009 | JP |
2011050042 | Mar 2011 | JP |
WO-2007044179 | Apr 2007 | WO |
WO-2008064324 | May 2008 | WO |
Entry |
---|
“Foreign Office Action”, CN Application No. 201210394444.9, Jul. 28, 2015, 12 pages. |
“Foreign Office Action”, CN Application No. 201210394444.9, Dec. 9, 2014, 15 pages. |
“International Search Report and Written Opinion”, Application No. PCT/US2012/060691, Feb. 8, 2013, 11 pages. |
“Non-Final Office Action”, U.S. Appl. No. 13/341,287, Sep. 27, 2013, 10 pages. |
“Notice of Allowance”, U.S. Appl. No. 13/341,287, Feb. 26, 2014, 6 pages. |
“Notice of Allowance”, U.S. Appl. No. 13/341,287, Jun. 6, 2014, 6 pages. |
“Search Report”, GB Application No. 1117867.0, Feb. 15, 2013, 7 pages. |
“Foreign Office Action”, JP Application No. 2014-536000, Jun. 7, 2016, 6 pages. |
“Foreign Office Action”, JP Application No. 2014-536000, Mar. 7, 2017, 8 pages. |
Number | Date | Country | |
---|---|---|---|
20150055465 A1 | Feb 2015 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13341287 | Dec 2011 | US |
Child | 14505158 | US |