The present invention relates to real-time streaming data, such as audio/video (A/V) stream transmissions, in wireless networks. In particular, the invention relates to protecting such real-time data against interfering data traffic to ensure uninterrupted streaming.
Present wireless network access systems typically have a limited bandwidth in the wireless link between access point and clients. Although a single client may experience a broadband connection, data bursts from other users on the same access point will momentarily interfere with the connection. This does typically not pose a problem when the broadband connection is used for normal data traffic. But, when the broadband connection transfers real-time data such as A/V streaming, data drop-outs due to bursts from other users will interfere with the streaming and should be avoided. There exist a number of different standards for wireless networks, where IEEE 802.11b is presently the most common. Further, there exist a number of communication protocols which can be used in wireless networks, and which apply the different standards.
US 2002/0075806 A1 discloses a data communication system and a method for preserving Quality of Service (QoS) throughout the system. The system needs to ensure that latency sensitive services such as voice and video conferencing receive guaranteed bandwidth, at the expense of other data such as Internet, file transfer, etc. The bandwidth is guaranteed by reserving timing slots in successive links through cascading networks in the system. The timing slots are timed so that a first time slot begins a short time before the successive time slot to make preparations for a fluent streaming though cascading networks.
The prior art realizes the problem of allocating more bandwidth to real-time data in wireless networks where the accessible bandwidth is limited. However, the prior art fails to point out detailed solutions to how the bandwidth is allocated in practice.
Streaming of A/V media content in an IEEE 802.11b wireless network may be problematic. Because the 802.11b standard merely defines a wireless Ethernet, without proper support for isochronous channels, other network traffic may easily interfere with the real-time data. Although 802.11b includes a channel reservation mode (RTS/CTS), this mode does not solve the above problem and it is optional, so that few products implement it. New QoS features are implemented in 802.11e, but are lacking in 802.11b.
It is an object of the present invention to provide a system and a method for allocating bandwidth to real-time data transmissions in wireless network protocols.
In a first aspect, the present invention provides a system for transmitting real-time data between an access point and one or more first clients in a wireless network, the system comprising:
an access point operating with a Transmission Control Protocol/Internet Protocol (TCP/IP) suite including the User Datagram Protocol (UDP),
two or more clients associated with the access point to form a wireless network, and
a traffic shaper module held by the access point for delaying the transmission of at least some packets from the access point to other clients than the one or more first clients, at least when real-time data is transmitted between the access point and a first client.
Preferably, the traffic shaper module comprises an element adapted to examine headers of packets to be transmitted from the access point and, if the packet is recognized as a TCP Acknowledgement, to delay the transmission of said TCP Acknowledgement (TCP ACK).
In a preferred embodiment, the traffic shaper module introduces appropriate delays in downstream TCP ACKs, when the non real-time data transmission is upstream that is, from interfering clients (other than first client) to the access point. This technique exploits the self-clocking TCP flow control mechanism, which is based on TCP ACK packets.
In another preferred embodiment, the traffic shaper module introduces delays in all downstream IP packets, which are not real-time traffic packets (TCP ACKs and data payload packets). Possibly, delays are introduced only in bandwidth demanding downstream IP packets such as payload packets.
The traffic shaper module is preferably a piece of software that is implemented in the network driver of the residential gateway, such as in the access point. It runs at the link layer in the protocol stack. The traffic shaper does preferably not modify the existing protocols, it just provides an added functionality.
The system preferably comprises a memory buffer adapted to temporarily storing the delayed packets. The memory buffer may be any memory available to the residential gateway and which can be appointed as memory buffer by the traffic shaper module.
In a second aspect, the present invention provides a method for transmitting real-time data between an access point operating with a TCP/IP suite including the UDP and one or more first clients in a wireless network by exploiting bandwidth made available using the following process step:
controlling data transmission between other clients in the wireless network and the access point to allocate a greater bandwidth to the one or more first clients, the step of controlling said traffic comprising the step of delaying the transmission of at least some TCP Acknowledgements from the access point to clients,
transmitting real-time data between the access point and a first client.
Optionally, non real-time downstream traffic from the access point to all clients may also be delayed.
In a third aspect, the present invention provides a method for controlling data transmission from clients in a wireless network to an access point of said wireless network, the access point and the clients operating with a TCP/IP suite including the UDP, the method comprising the steps of:
receiving downstream data packets at the access point from an external network or from an application in the residential gateway itself,
examine the headers of said packets to determine if a data packet is a TCP Acknowledgement to a client in the wireless network,
determining whether the available bandwidth for said client will be exceeded by upstream data packets from the client, and, if it will, delaying the transmission of said TCP Acknowledgement from the access point to the client.
In a fourth aspect, the present invention provides a record carrier comprising information which when loaded into or executed by a computer, performs one or more of the steps according to the second or third aspects.
In the present application, the term real-time data refers to data which is processed at the moment it enters a computer, as opposed to BATCH processing, where the information enters the system, is stored, and is operated on at a later time. Real-time data is also referred to as streaming media. Real-time data are typically streams such as live video or live voice transmissions. However, real-time streaming is also used when a large amount of external data (such as a movie clip stored at another PC) has to be viewed by a client. Instead of waiting for all data to be downloaded, the client starts viewing the data gradually as it arrives. Thus the data itself need not be real-time, it may be recorded long time ago. Interruptions in the transmissions means interruptions in the execution of the data (if the interruption goes beyond the buffer size) and is undesirable. Streaming is typically used for data with Audio/Video content because of their strict chronology which allows for the running execution, however, streaming can be used for other types of data as well.
An access point is a network device that interconnects a wireless network to a wired network. The wired network may be interconnected to other wireless networks so that the access point serves to interconnect two wireless networks. The access point is typically a dedicated network access device or a server such as a PC or a Residential Gateway (RG) with a communication protocol such as TCP/IP using a wireless IEEE 802.11 standard.
In the present application, clients are devices (or software) that request wireless communication with the access point. A client may be another server, a PC, a cellular phone, a Personal Digital Assistant (PDA), or any other device using a wireless communication protocol and having means for wireless transmission and receiving of data.
It is an advantage of the invention that it exploits the knowledge of existing wireless network communication protocols and does not introduce changes in the normal operation mode of the protocols, both at the MAC and transport layers, i.e. IEEE802.11b and TCP/IP protocol implementations are unchanged.
It is an advantage of a preferred embodiment of the invention that it improves the delivery of real-time streaming so that there is no need to install any new component at the clients, the invention can be used with any wireless client with a protocol having the appropriate standard responses.
It is an advantage of a preferred embodiment of the invention that it improves the delivery of real-time streaming content without the applications at any of the clients being aware of it, they simply experience an increased Round Trip Time.
It is an advantage of a preferred embodiment of the invention that it improves the delivery of real-time streaming content in wireless Ethernet media networks like IEEE802.11b, without making use of the channel reservation mode, which only few products implement and without modifications in the MAC operation.
The problem of allocating more bandwidth to real-time data in wireless networks where the accessible bandwidth is limited, may be divided into downstream and upstream cases. For the downstream non real-time streaming case, downstream data transmission to other clients should be delayed. Traffic shaper module can be set to control the transmission of data to all clients, and thereby to delay data to specific clients when a certain bandwidth is needed to a specific client. The upstream case, however, is more complicated. Here, data transmissions from all other clients but the real-time streaming one has to be controlled centrally. However, these clients may be all kinds of standard devices which may not have a traffic shaper module installed. Hence, the data transmissions from other clients have to be controlled remotely from the access point.
It is the basic idea of the invention that it exploits the knowledge of existing network communication protocols like TCP/IP. By delaying packets, such as TCP ACKs, to ports (clients) which are not used for real-time streaming, the traffic shaper in the access point:
The protocol at the non-streaming client is a standard TCP protocol, which responds in a standard way to the delays created by the traffic shaper. Similarly, the delaying of packets and following reduction in transmission rate from an application at the non-streaming client happens without the application being aware of it. There is thus no need to install any component at the clients.
These and other aspects of the invention will be apparent from and elucidated with references to the embodiments described hereinafter.
In a preferred embodiment of the invention shown in
The present invention provides a method for controlling the upstream data transmissions from clients 105 and 106 to the access point 103 so as to reserve upstream bandwidth to ports with upstream real-time data. Thus, the invention controls upstream data transmissions by interfering with downstream data transmissions.
The present invention can also provide delay for downstream data packets without urgent streaming content to reserve downstream bandwidth to ports with downstream real-time data. The traffic shaper according to the invention can perform this function by looking at the available bandwidth (=the total bandwidth minus the required bandwidth for the streaming port minus MAC overhead bandwidth) and the size of incoming downstream data packets. If the rate of the downstream data packets exceeds the momentarily available bandwidth, the packets should be delayed or discarded. The controlling of downstream data to reserve downstream bandwidth is a simple task, which is performed by the traffic shaper without the need of dedicated signaling protocols.
In the present description, if a data packet is said not to be delayed, it is meant that it is not to be delayed with the purpose of controlling upstream data transmission from clients 105 and 106 to access point 103. The same data packet may, however, be delayed with the purpose of controlling downstream data transmission from access point 103 to clients 105 and 106.
The traffic shaper module is a pack of software that is stored on the network access server 102 also holding the network driver of the IEEE 802.11b card and the TCP/IP protocol.
A flow chart 300 for the packet-processing algorithm of the traffic shaper module is shown in
In order to sort packets, the protocol type of the IP packet is first checked. If the protocol type is UDP there is a good chance that it is a real time traffic packet. A further check of the source UDP port against well known real time streaming ports will reveal whether we are dealing with “urgent” packet or not. If the packet is recognized as urgent real-time data, another operation needs to be performed by the traffic shaper, it needs to track and store the bandwidth required by currently used streaming applications. This information is then used to know how much bandwidth is available for non real-time TCP applications and manage resources efficiently. If the IP packet is not UDP type, we check whether it is a TCP ACK. ACKs are easily recognized because usually they do not carry payload at all and have the “ACK” field set. If we are dealing with a TCP ACK, we have to identify the TCP connection it belongs to (similar to what we do with UDP traffic) in order to calculate the delay we are going to apply to the packet. Delays are computed according to the available bandwidth we have (i.e. link's bandwidth minus the bandwidth consumed by real-time data applications minus MAC overhead) and depend of course on the size of the upstream IP packets. Upstream packet sizes are known at the MAC layer and are made available by the wireless network driver.
If the traffic is encrypted the sorting operation can be more complicated. If the Secure Socket Layer (SSL) mechanism is used, which is a typical case for secure Internet transactions, the TCP/IP packet headers are sent in clear and the traffic shaper can easily recognize TCP ACKs. If network layer security is applied instead (for example when a Virtual Private Network is used), then the TCP header is encrypted. In this case, the traffic shaper can only examine the IP header to filter the packets that are directed to a certain slave. The traffic shaper may choose to delay all the packets with the exception of those belonging to the A/V stream, by an amount of time Δ(B), which depends on the bandwidth B reserved for streaming.
The queues are: a high priority queue 301 for real-time data, a normal priority queue 302 for downstream data packet, and a low priority queue 303 for TCP ACKs. Naturally, other queues can be made under the working principle of the present invention. A scheduler 304 empties the queues according to a policy that takes the queue priorities into account. An example of such a policy is Weighted Round Robin (WRR), but many other scheduling algorithms can be found in literature. With WRR, each queue gets polled by the scheduler 304 with a frequency that is proportional to the queue priority and, if at least one packet is buffered, it is dequeued for transmission. A possible alternative to WRR is the so-called Earliest Deadline First (EDF) scheduling policy. Using EDF, each packet to be transmitted is tagged with a timestamp when it is queued. When deciding which packet to transmit, the scheduler 304 searches each queue for the packet with the most urgent timestamp indication. In this case, the classification function of the traffic shaper module, that discriminates traffic flows, needs to assign such timestamps properly.
The time delay to be applied to TCP ACKs can be calculated according to several algorithms. Below we give an example of a simple algorithm that can be used for the purpose of the present invention. Assuming a wireless network which downstreams real-time data and with only a single interfering TCP connection, with constant packet size, TCP window saturated and a regular flow of ACK packets, we define:
It should be noted, however, that the new TCP ACK interarrival time should not exceed the TCP retransmission timeout timer (typical values are 200-250 ms), which would usually trigger packet retransmissions and wireless bandwidth waste.
TACK can be measured by the access point by calculating a running average of interarrival times between consecutive ACK packets. BTCP can be easily derived by the access point by measuring the traffic that the client is generating (such statistics are always collected by the WLAN hardware and made available by the wireless network driver). The target TCP bandwidth B′TCP should be calculated to free enough bandwidth for the real-time streaming connection. It should also be noted that this bandwidth corresponds to “goodput”, meaning that wireless channel conditions have to be taken into account. In fact, errors on transmitted packets generate retransmissions and therefore more bandwidth is wasted and this should be taken into account. The access point knows enough information about the wireless channel conditions, since it can measure the Signal to Noise Ratio for each connected client.
The proposed algorithm is stable because TCP ACK packets will accumulate in the access point buffer only initially. After a period of time equal to the round-trip time, TCP will automatically lower its transmission rate and TCP ACKs will be generated at a slower pace without the buffer eventually overflowing.
The above strategy is only one of several possible techniques to calculate the TCP ACK delay for the purpose of reducing the traffic generated by clients in the wireless network. For example, in the case of multiple interfering TCP connections, the above algorithm can be adapted so that the overall bandwidth dedicated to TCP connections is reduced. One could either run an instance of the above algorithm for each connection (which may be resource consuming) or aggregate all TCP flows as a single connection.
For bursty TCP traffic the algorithm is automatically activated whenever the TCP ACK arrival frequency exceeds a predetermined threshold. In other words, the delay calculated in (2) is applied only when TCP ACKs arrive at intervals less than T′ACK.
The algorithm can also be effective when clients in the same wireless network want to communicate with each other. For example in
In the present application, the term “comprising” does not exclude other elements or steps. Neither do the terms “a” or “an” exclude a plurality.
Number | Date | Country | Kind |
---|---|---|---|
02080374.8 | Dec 2002 | EP | regional |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/IB03/05345 | 11/20/2003 | WO | 6/15/2005 |