The present invention relates to communication protocols, such as the wireless application protocol (WAP), and means for adjusting quality of service (QoS) levels so that users and/or service providers can control how transmission capacity is allocated to their transmissions.
The open systems interconnection (OSI) architecture has been developed by the International Organization for Standardization (ISO) to describe the operation and design of layered protocol architectures. The communication between the nodes in a packet data network must be somehow defined so that the receiving node can correctly handle packets. The packets exchanged between nodes are defined by a communication protocol or, in short, a protocol. Each protocol needs to perform several functions, such as addressing of the communication nodes, identification of interfaces, reliability functions, error reporting, synchronization, etc. In practice, there are so many necessary functions that a set of protocols is needed for communications. Each protocol in the set takes care of one specific aspect of the communication. The protocols are usually structured to form a layered architecture that is known as a protocol stack.
The precise functions of each layer vary. However, there is a distinction between the functions of the upper and lower network layers. The lower layers are intended to provide a connection, or path, between nodes and hide details of underlying communications facilities. The upper layers are intended to ensure that the data exchanged between nodes is in correct form. The upper layers can also be termed applications-oriented layers because they deal with applications. According to the known server-client-model, applications operate as servers and/or clients. The transport layer provides the connection between the upper, i.e. application-oriented layers, and the lower layers.
The wireless application protocol (WAP) is defined by an industry association that is called the WAP Forum. The WAP architecture provides a scaleable and extensible environment for application development for mobile communication devices. A WAP stack is software that handles data units/datagrams/packets in accordance with the WAP.
The WTP layer of the prior art WAP stack provides reliable transport for datagrams. WTP is similar to transmission control protocol (TCP) but compared to TCP, WTP saves the processing power and memory of clients. The additional advantages of WTP are that more clients can use WAP services because of the reduced bandwidth usage of a transmission network. For example: the need for 3-way handshakes between the client and server is reduced, and in addition, all packets belonging to a transmission can be used for carrying data.
The communication parties using WAP need WAP stacks to be able to communicate with each other. For example, one communication party may be a WAP server and another communication party may be a WAP phone.
The exact meaning of the term “quality of service” (QoS), varies in the prior art. Generally speaking, QoS relates to priorities of applications. GB2346303 describes a method for transmitting data with a certain error protection level. A user and/or service provider may specify on which error protection level their data, e.g. text, audio, or video, is transmitted. However, the purpose and implementation of QoS in GB2346303 is different than in the invention.
The main drawback of the prior art is that users, as well as service providers, are lacking adequate means for adjusting QoS. For example, a user should be able to choose which service/application obtains the most resources when he/she uses a number of services simultaneously and a network is congested.
The main objective of the invention is to implement quality of service (QoS) levels in transmissions, especially in WAP transmissions. A QoS level intended for a user determines how the network resources available for the said user are divided among the services that he/she currently uses. A QoS level intended for a service provider may determine, for example, how the network resources available for the server equipment of the service provider is divided among the users of the server equipment. A basic principle is that if a user has paid an extra charge to have the highest QoS level, he/she should get more data per a time unit compared to those who don't have the highest QoS level.
A user can specify QoS levels for the applications of his/her terminal equipment. A service provider can specify QoS levels for the applications and/or users of the server equipment of the service provider. QoS levels are taken into account when sending the data from terminal equipment to server equipment, or vice versa. Thus, the QoS levels prioritize data transmissions.
The invention comprises a method and apparatus for implementing QoS levels in data transmissions in communication networks. The apparatus is a terminal, e.g. a WAP phone, or server apparatus comprising a HTTP server and a WAP gateway, for example.
The method is based on certain modifications in a communication protocol stack. The modified stack uses a queue for prioritizing transmissions. At least the handling of the queue is located in the modified stack. The queue may or may not be located in the modified stack. The modified stack may determine the QoS level of a packet by itself, or a separated software performs the determination and transmits the QoS level of the packet to the modified stack by one way or another.
The method comprises the following steps. A packet is received and the QoS level of the packet is determined by using information transmitted with said packet and, in accordance with said quality of service level, the modified stack performs an operation belonging to a set which contains at least two of the following operations: removing of the packet, transmitting of the packet, or placing the packet with the QoS level in the queue.
When applying the method to WAP transmissions, QoS can be implemented in one layer of a WAP stack, for example, in the WTP layer, or the QoS feature can be implemented in two or more layers of the WAP stack. If the QoS feature is located in two or more layers, those layers may use an additional header in the packets to be handled. The additional header may transmit, for example, the QoS level of a packet from one layer to another. The modified WAP stack can handle normal packets and packets with an additional header. Thus the operation of the modified WAP stack is transparent for applications.
The apparatus, which is used for transmissions, has some fixed maximum transmission capacity in bytes. However, usable transmission capacity varies in time, especially, if sending and receiving data consume the same transmission capacity. Therefore the apparatus is adapted to calculate the usable transmission capacity by taking into account the number of bytes currently used for receiving data and the maximum transmission capacity.
If the usable transmission capacity is low and the QoS level of a packet is low, the packet may be removed from the queue. If the transmission network is congested, a packet may be replaced in the queue in accordance with its QoS level.
The above-mentioned operations and other packet handling operations are based on certain rule/rules. One of those rules may determine, for example, in which position the packet is placed in the queue. Another rule may determine, for example, whether a packet can be aborted or not. Rules are organized in rule sets, which are configurable through a user interface and/or a special network node.
The invention is described more closely with reference to the accompanying drawings, in which
The use of the method requires at least one modified communication protocol stack, or the corresponding functionality in an operating system.
Encapsulation means that a communication protocol adds a protocol control information (PCI) header to a packet that is termed a service data unit (SDU). The encapsulation results in a protocol data unit (PDU). The WTP layer encapsulates PDUs, i.e. adds a certain header to a PDU resulting in a datagram.
An additional encapsulation is not necessary in the modified WAP stack shown in
The prior art WTP layer performs the following functions: an abort function for unsuccessful requests, a concatenation of PDUs, a fragmentation of a PDU, a retransmission of lost datagrams, selective retransmission, port number addressing, flow control, etc. Because the WTP layer deals with the abort function and retransmission of datagrams, it is reasonable to implement the QoS feature in the WTP layer. For example, the abort function of the WTP layer can be used for datagrams having very low QoS level. The QoS feature can also be implemented in some other layer of the WAP stack than the WTP layer, or the QoS feature can be implemented in two or more layers of the WAP stack. If the QoS feature is implemented in two or more layers, those layers need to cooperate in some way.
In
However, if required, the additional encapsulation can be totally avoided and the cooperation of the WAP layers can be arranged in another way.
A QoS level can be transmitted from a WAP layer to another by placing the QoS level in an additional header, or the QoS level can be transmitted from a WAP layer to another as show in
The modified WAP stacks shown in
The queue used in the modified WAP stack should be understood as a logical queue. The said queue may or may not be implemented as a data structure that is termed a queue.
As well as the prior art WAP stack the modified WAP stack is adapted to receive a packet containing a retransmission request or a packet acknowledgement. The retransmission request or missing of the packet acknowledgement indicates that a certain transmission may be interrupted. Then the missing packet should be retransmitted as soon as possible to avoid the interruption of the said transmission. A great number of retransmission requests indicate that the communication network is congested.
The QoS level of a packet may be composed of two or more QoS level attributes.
When the QoS level is composed of several attributes, there must be some specification specifying which attribute should be obeyed. For example, the modified WAP stack may use the following specification: if a network is congested attribute 603 is obeyed, otherwise attribute 602 is obeyed.
When a packet is located in the queue, the following operations can be performed for the packet.
The packet may be replaced in the queue if either the number of packet retransmission requests or the number of missing packet acknowledgements reaches a predetermined threshold value, wherein the other place is determined by the quality of service level of the packet.
The packet may be removed from the queue on grounds of the quality of service level of the packet, if either the number of packet retransmission requests or the number of missing packet acknowledgements reaches a predetermined threshold value.
The apparatus may have some fixed maximum transmission capacity and the capacity used for receiving data and sending data cannot exceed the said maximum transmission capacity. By default, the usable transmission capacity is the maximum transmission capacity. The apparatus may be adapted to calculate the usable transmission capacity by subtracting the capacity used for receiving data from the maximum transmission capacity.
The packet may be removed from the queue by taking into account the quality of service level of the packet and the usable transmission capacity. In other words, if the usable transmission capacity decreases, it may cause that the queue is made shorter by removing packets having the lowest QoS level from it.
The packet may be transmitted to another application when it is located in the head of the queue. If the apparatus has been adapted to calculate the usable transmission capacity, a packet is sent from the head of the queue when the usable transmission capacity allows the sending of the packet. Therefore the rate of sending packets may change in accordance with the usable transmission capacity.
The information transmitted with a packet contains at least one of the following pieces of information: the identifier of an application that sent the packet, user data related to the application, a model of a terminal through which the packet was sent, a source IP address, a destination IP address, a calling number, an operator prefix, a called party, a site from which the packet was sent, a time when the packet was sent, or the packet payload. There may be even more pieces of information.
There may be a lot of rules concerning packet handling. The packet handing is based on information transmitted with a packet. The QoS level is obtained as a function of the information, wherein the function is composed of rule/rules.
Rules can be organized in sets, for example, so that one rule set is used for the data packets of a browser and another rule set is used for the data packets of a real audio player. Rules may be non-configurable or configurable. Users, service providers, a network operator etc. may have their own configurable rule sets.
Rules may also be configurable through a node, for example, a gateway GPRS support node (GGSN), a serving GPRS support node (SGSN), a base station, a remote access server (RAS), or another apparatus in accordance with the invention. The said node sends a packet that is not a standard WAP packet and thus the prior art WAP stack cannot handle it. Apparatus in accordance with the invention is adapted to handle a packet sent by the special network node and configure its rules, for example, by changing its default rule set to another rule set. The apparatus is further adapted to handle a packet if the packet is encrypted and/or the packet includes a digital signature for certifying the sender of the packet. The encryption of a packet and a digital signature are intended to prevent possible misuse of the apparatus. The apparatus is further adapted to send a packet to another node, wherein the said packet is intended for configuring the rules of the other node.
Typically a rule is composed of a condition and at least two alternative operations, but a rule may contain only one operation.
The following example concerns function F that results in the QoS level of a packet. The packet is transmitted with certain payload PL and source IP address IPS, and destination IP addresses IPD. Thus, the information used in the determination of the QoS level may be from the header of the packet and/or the payload of the packet. The QoS level is obtained as function F (PL, IPS, IPD, AP1, AP2 . . . , APn), wherein A11, A12, . . . , Aln are additional pieces of information which are sometimes transmitted with a packet, but which are not transmitted at this time.
Thus, one or more arguments of a function may contain a null value. The function results in a certain QoS level when the function, i.e. its executable code, is performed with a certain set of arguments.
Apparatus in accordance with the invention includes at least the modified communication protocol stack. The apparatus may or may not include rules. If the apparatus includes rules, it may include at least one user interface through which the rules are configurable. In addition, the apparatus may include interfaces through which it can communicate with external systems such as a billing system, a subscriber database, or a positioning system.
The billing system may be able to determine the price class for a packet on grounds of the QoS level of the packet. Then the apparatus sends the QoS level to the billing system. Alternatively, the apparatus determines the price class and sends it to the billing system.
When wanting to utilize the invention the modified WAP stack must to be installed in at least one device communicating with other devices. The communication may be unidirectional or bidirectional. A sending party and/or a receiving party may have the modified WAP stack.
Thus, the modified WAP stack can be installed in a terminal or in a WAP server with various options in the QoS implementation. In addition, or alternatively, the modified WAP stack can be installed in a WAP gateway.
The WAP gateway may be located on an HTTP server, or it is coupled to an HTTP server. The WAP gateway acts as an intermediary between a client and a service used by the client. It receives packets from the WAP stack of the client and converts them to packets that are in accordance with a WWW protocol stack. The WWW protocol stack may implement e.g. HTTP and TCP/IP. Because the WAP gateway performs the data conversions between WAP and WWW stacks, it at the same time reduces the processing needs of the client. Thus, the client can run services more efficiently. The WAP gateway can also be used as an interface to subscriber databases. Then the WAP gateway may fetch a calling number related to a packet, an operator prefix included in the said calling number, and/or a called number related to the packet, and use those pieces of information when determining the QoS level of the packet.
Besides the above examples of modified WAP stacks and apparatus using a modified WAP stack there are many other possibilities to utilize the invention. The invention can be particularly utilized in apparatus that is connected to a network with communication link/links allocated for the apparatus. Then the apparatus can best control how the transmission capacity of the communication link/links is used between applications/users.
Number | Date | Country | Kind |
---|---|---|---|
20021113 | Jun 2002 | FI | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/FI03/00455 | 6/10/2003 | WO | 7/13/2005 |