There is increasing demand for communications capacity in communications networks of all types with the need for higher end-to-end throughput and reduced data transfer times. However, it is expensive and time consuming to install additional communications network equipment in order to increase capacity. Thus there is a need to improve the efficiency with which existing bandwidth is used, for example, by improving the design of communications protocols used to communicate data over the network.
Communications protocols are typically provided in layers in the communications network; that is, a protocol stack approach is typically used. For example, at a high level these layers begin with a physical layer interfacing with the network infrastructure, usually followed by a data link layer, a transport layer, a network layer and an application layer. Within the data link layer a medium access control (MAC) layer is typically provided which may for example, control access to the physical transmission medium on a communications network such as a local area network (LAN) or other type of communications network.
In packet-based communications networks data is inserted into units referred to as packets which are transmitted across the network according to the communications protocols being used.
Most existing communications systems having a MAC layer typically use a single channel approach at this layer. However, more recently, the use of multi-channels at the MAC layer has been investigated. These multiple channels may be realised as either physical channels or orthogonal logical channels provided that they enable simultaneous data transmission.
The following presents a simplified summary of the disclosure in order to provide a basic understanding to the reader. This summary is not an extensive overview of the disclosure and it does not identify key/critical elements of the invention or delineate the scope of the invention. Its sole purpose is to present some concepts disclosed herein in a simplified form as a prelude to the more detailed description that is presented later.
There is a need to improve design of communications protocols in which two or more channels are provided and, optionally, in which collision avoidance is not available. An improved protocol is provided in which communications nodes pick a channel on which to transmit and collisions may occur where two nodes attempt to transmit on the same channel. The node currently occupying a channel is arranged to have a specified probability of holding onto that channel as compared to a newcomer. Other methods are described whereby a node is able to occupy more than one channel at the same time and whereby nodes each occupy approximately the same number of channels.
Many of the attendant features will be more readily appreciated as the same becomes better understood by reference to the following detailed description considered in connection with the accompanying drawings.
The present description will be better understood from the following detailed description read in light of the accompanying drawings, wherein:
Like reference numerals are used to designate like parts in the accompanying drawings.
The detailed description provided below in connection with the appended drawings is intended as a description of the present examples and is not intended to represent the only forms in which the present example may be constructed or utilized. The description sets forth the functions of the example and the sequence of steps for constructing and operating the example. However, the same or equivalent functions and sequences may be accomplished by different examples.
Although the present examples are described and illustrated herein as being implemented in a wireless access communications network, the methods described are provided as an example and not a limitation. As those skilled in the art will appreciate, the present examples are suitable for application in a variety of different types of communications network.
The methods described herein are intended to implemented as part of communications protocols in which two or more channels are provided (see below for more discussion about the term channel) and, optionally, in which collision avoidance is not available. Collision avoidance involves active sensing or probing to determine whether a particular channel is busy or is available for use. This process demands additional resources. In the methods described herein, such active sensing or probing for collision avoidance is unavailable. For example, collision avoidance is typically unavailable to communications protocols used at the MAC layer in wireless access communications networks. However, this is just one example. There are many communications protocols at different layers where collision avoidance is unavailable or not desired. For example, this is typically the case in optical wavelength division multiplexed networks. The methods described herein give good benefits when used with communications protocols which do not provide collision avoidance. Having said that, some benefits are also achieved when the methods are used with communications protocols which do provide collision avoidance.
Communication between the communications terminals 103 and the base stations 102 is achieved using any suitable communications protocols as known in the art together with particular protocols as described herein. For example, the protocols described herein may be implemented at one layer in a protocol stack where the stack comprises other protocols. Also, the protocols described herein may be implemented by taking an existing communications protocol and modifying it to meet the communications protocol requirements described herein. For example, the existing communications protocol may be the widely used IEEE 802.11 wireless MAC protocol. However, this is not essential, any suitable communications protocol may be used.
Various different example methods are now described for an improved multi-channel MAC protocol. Each of these methods involves providing a plurality of channels for communication in the MAC layer and each method is described with respect to an uplink scenario in which communications terminals 103 are attempting to transfer data to a base station 102. However, the invention is not limited to uplink situations; an example for a downlink situation is described later. Also, the invention is not limited to MAC layer communications protocols.
The number of channels provided may be greater than the number of communications terminals (also referred to herein as users) seeking to communicate with a given base station. For example the number of communications channels may be two or more times the number of communications terminals 103 associated with a particular base station. However, this is not essential. It is also possible to use fewer communications channels than there are communications terminals.
The communications channels may be provided in any suitable manner. For example, these may be provided using frequency division; that is by using different frequency bands that are available for simultaneous data transmission. Another option is to provide the channels using a slotted approach such as using time division multiplexing or code division multiplexing or combinations of time and code division multiplexing. Combinations of frequency division and time division and/or code division multiplexing may also be used, for example as in orthogonal-frequency division multiplexing (OFDM). OFDM is described in detail in Tse and Viswanath “Fundamentals of Wireless Communication” Cambridge University Press, 2005.
Under time division multiplexing, a larger time period called a frame is divided into a fixed number of mini-slots. Each communications terminal picks a particular mini-slot and transmits data only in that mini-slot. Thus the transmissions of these communications terminals may be separately identified and are effectively transmitted on different channels. Time division multiplexing is described in “Data Networks” second edition, 1991, Bertselkas and Gallager ISBN-10:0132009161.
Under code division multiplexing each communications terminal employs a unique pseudo-noise sequence (PN) and transmits data by spreading the signal (data) over a much larger bandwidth using the PN sequence. By knowing the spreading sequences, a receiver is able to decode data from all the communications terminals even when multiple communications terminals transmit at the same time. Each PN sequence or code can be thought of as a separate channel for data transmission. Code division multiplexing is described in more detail in Bertossi and Bonuccelli “Code assignment for hidden terminal interference avoidance in multihop packet radio networks.” IEEE Transactions on communications, 3(4):441449, August 1995. Code division multiplexing may also be deployed in ad hoc networks as described in Muqattash and Marwan “CDMA based mac protocol for wireless ad hoc networks.” In proceedings of the International Symposium on Mobile Ad Hoc Networking and Computing (MOBIHOC03), page 153163, June 2003.
A first example method for an improved multi-channel MAC protocol is now described with reference to
Previously, MAC protocols have been optimized for the transmission of single data packets rather than flows of data packets. That is, the notion of a flow or a collection of data packets does not typically exist in the MAC layer, but only at higher layers such as the transport, network or application layers. However, it is recognized here that most data transfers or exchanges of information are flow based and this is made use of in the methods described herein.
The method of
The communications terminal 103 attempts to transmit a packet on the selected channel (block 201) and makes an assessment as to whether a collision has occurred or not. If the communications terminal 103 receives an acknowledgement message (ACK message) associated with the transmitted packet within a specified time limit, then it is assumed that no collision has occurred. This type of ACK message is referred to herein as a first ACK message in order to distinguish it from other ACK messages received later in the process. In this case the communications terminal 103 moves to a channel owning state (block 204) in which it continues to transmit packets of its flow on the selected channel with a certain degree of persistence. This degree of persistence, or “stickiness” is adjustable by adjusting a parameter value as is described in more detail below.
The specified time limit for assessing whether a collision has taken place is referred to herein as a time slot. The length of a time slot is sufficient for a communication terminal to transmit a single packet to the base station and to receive an acknowledgement from the base station 102. In an example implementation, its length is the same at all communication terminals 103 and is specified depending on the intended application scenario. For example, in a wireless local area network (WLAN), it depends on the bandwidth per channel, the maximum packet size and the maximum transmission range (or maximum distance between nodes). In practice, these values are estimated or calculated in advance using test packets, or are continuously monitored during the method itself or obtained in any other suitable manner.
If no ACK message is received during the specified time, a collision is assumed to have occurred. For example, if the selected channel was already busy, both the attempted transmission packet and the packet on the already busy channel are likely to be dropped. In this situation, the communication terminal 103 waits (block 203) for a specified time before repeating the steps of selecting a channel (block 200) and attempting to transmit on that channel (block 201). The specified waiting time may be a random time such as a random (or pseudo random) integer multiple of time slots. If the waiting time were zero or fixed, then the communications terminal 103 may experience repeated collisions at block 202.
In one embodiment the random waiting time at block 203 comprises a process which decides, at the expiration of each time slot, to exit the waiting stage with probability α which may be adjustable. For lightly loaded networks with a load less than about 50% the value of the channel release probability P may be set at about p=0.1 and the channel selection attempt probability α set at about α=0.5. In the case of moderately loaded networks with a load of about 75% p may be set at p=0.05 and α at α=0.2. This probability α is referred to herein as a channel selection attempt probability.
As mentioned above, once the communications terminal 103 has entered a channel owning state 204 it continues to transmit packets of its flow on the selected channel with a certain degree of persistence. It monitors whether the transmission of the flow or collection of data packets is complete (block 205). For example, the packets of a flow may be marked with a flow identifier such that it is possible to detect when the transmission of that flow is complete. Alternatively, the point when transmission is complete may be detected by simply noting when there are no more packets to transmit over a specified time period. Any other suitable method for determining when transmission is complete may be used. Once transmission is complete the process ends (block 206) as the whole data file has been transmitted. Otherwise the communications terminal continues to transmit packets of its flow on the selected channel (block 207) until a collision is assumed to have occurred (block 208). For example, a collision might occur if another communications terminal 103 attempts to transmit on the same channel.
A collision is assumed to have occurred if no ACK is received in the specified time, in the same manner as at block 202. This type of ACK message is referred to herein as a second ACK message in order to distinguish it from the ACK messages received at block 202. If a collision is assumed to have occurred the communications channel gives up the selected channel (block 211) with probability p (block 209 and block 210). This probability p may be adjusted in order to adjust the degree of “stickiness” or persistence mentioned above. The term “channel release probability” is used to refer to this probability value p in order to distinguish it from the channel selection attempt probability α.
Any suitable value of probability p may be used. For example, if p=1, flows are persistent until they suffer a collision, at which point they always back off. In another example, if p=0 then channel capture occurs where a communications terminal 103, once it enters a channel owning state, remains in that state until it has completed its transmission. This may be a workable situation where the number of channels is typically larger than the number of communications terminals attempting to access the medium at a given time.
In some embodiments the value of the channel release probability p is arranged such that a communications station which has been transmitting successfully on a channel has a high probability of holding onto that channel whilst a newcomer is likely to give up and attempt on a new channel. For example, this is achieved by using a small positive value of the channel release probability p. This may also be expressed as saying that a current occupant of a channel has a much higher probability of holding onto that channel than a newcomer.
Following the method of
The method described above with reference to
In this way there is a breaking of symmetry between communications terminals, whereby terminals who have already acquired a channel behave differently from those who have not.
Using the method of
The method described above with reference to
In another example, a method similar to that of
In each time slot, each communications terminal attempts to acquire a new channel with probability α (the channel selection attempt probability), by transmitting a packet on a randomly chosen channel. If the transmission is successful, the communications terminal now “owns” the channel; otherwise it give it up. Moreover, for each channel owned by the communications terminal which suffers a collision, the channel is given up with a probability p (the channel release probability), independent of all other channels. An alternative method allows a communications terminal which suffers collisions on k channels to give up exactly kp channels if kp is an integer. Otherwise, the terminal gives up either [kp] or [kp]+1 channels with probabilities chosen to make the mean number of channels kp; here [kp] denotes the integer part of kp.
In this way the method of
An example of the method of
In the methods of
In the case that the methods described herein are implemented by modifying the standard IEEE 802.11 wireless MAC protocol, the optional RTS/CTS (request to send/clear to send) mechanism which precedes actual packet transmission may be switched off. This would be the preferred implementation if collision avoidance is not possible. However, this is not essential. If the communication nodes 103 are able to implement collision avoidance, the RTS/CTS mechanism can be employed. In this case, a difference with standard IEEE 802.11 is the asymmetry between the terminal that “owns” a channel and a “newcomer”. Whereas in IEEE 802.11, these would have equal probabilities of attempting to access the channel, in the method proposed herein, these probabilities are different in the manner already described.
It is also possible for the methods described herein to be used for downlink scenarios. For example, where the base stations A and B of
In the methods described herein the choice of the probability values α and p may involve a trade-off between communications link utilization and responsiveness. Responsiveness is an indication of how long it takes for a new flow entering the system to receive a channel. To maximize link utilization generally, α and p are selected as being small. To maximize responsiveness, α and p are generally selected as being large. By selecting non zero and small values of p and α it is possible to achieve both high utilization and satisfactory responsiveness. One aspect of the latter is good short term fairness (where fairness relates to distribution of channels between communications terminals). For example for lightly loaded networks with a load less than about 50% the value of the channel release probability p may be set at about p=0.1 and the channel selection attempt probability α set at about α=0.5. In the case of moderately loaded networks with a load of about 75% p may be set at p=0.05 and α at α=0.2.
The communications network node 600 also comprises a user interface 602 which may be a keypad and display screen or any other suitable type of user interface. A processor is provided 604 of any suitable type such as a microprocessor, computer or other processor. A data input 603 is provided to enable data files or other information to be transmitted to be input to the node 600. A protocol stack 605 is shown to indicate that the node is arranged to operate a communications protocol suite and a memory 606 of any suitable type is also provided.
The computing-based device 700 comprises one or more inputs 704 which are of any suitable type for receiving media content, Internet Protocol (IP) input, data files, images or other input. The device also comprises communication interface 708 for interfacing to a communications network of any suitable type. For example, a wireless access communications network, the Internet, or any packet based communications network.
Computing-based device 700 also comprises one or more processors 701 which may be microprocessors, controllers or any other suitable type of processors for processing computing executable instructions to control the operation of the device in order to select communications channels and transmit packets according to specified communications protocols. Platform software comprising an operating system 702 or any other suitable platform software may be provided at the computing-based device to enable application software 705 to be executed on the device.
The computer executable instructions may be provided using any computer-readable media, such as memory 703. The memory is of any suitable type such as random access memory (RAM), a disk storage device of any type such as a magnetic or optical storage device, a hard disk drive, or a CD, DVD or other disc drive. Flash memory, EPROM or EEPROM may also be used.
An output 707 is also provided such as an audio and/or video output to a display system integral with or in communication with the computing-based device. The display system may provide a graphical user interface, or other user interface 706 of any suitable type although this is not essential.
The term ‘computer’ is used herein to refer to any device with processing capability such that it can execute instructions. Those skilled in the art will realize that such processing capabilities are incorporated into many different devices and therefore the term ‘computer’ includes PCs, servers, mobile telephones, personal digital assistants and many other devices.
The methods described herein may be performed by software in machine readable form on a storage medium. The software can be suitable for execution on a parallel processor or a serial processor such that the method steps may be carried out in any suitable order, or simultaneously.
This acknowledges that software can be a valuable, separately tradable commodity. It is intended to encompass software, which runs on or controls “dumb” or standard hardware, to carry out the desired functions. It is also intended to encompass software which “describes” or defines the configuration of hardware, such as HDL (hardware description language) software, as is used for designing silicon chips, or for configuring universal programmable chips, to carry out desired functions.
Those skilled in the art will realize that storage devices utilized to store program instructions can be distributed across a network. For example, a remote computer may store an example of the process described as software. A local or terminal computer may access the remote computer and download a part or all of the software to run the program. Alternatively, the local computer may download pieces of the software as needed, or execute some software instructions at the local terminal and some at the remote computer (or computer network). Those skilled in the art will also realize that by utilizing conventional techniques known to those skilled in the art that all, or a portion of the software instructions may be carried out by a dedicated circuit, such as a DSP, programmable logic array, or the like.
Any range or device value given herein may be extended or altered without losing the effect sought, as will be apparent to the skilled person.
It will be understood that the benefits and advantages described above may relate to one embodiment or may relate to several embodiments. It will further be understood that reference to ‘an’ item refer to one or more of those items.
The steps of the methods described herein may be carried out in any suitable order, or simultaneously where appropriate. Additionally, individual blocks may be deleted from any of the methods without departing from the spirit and scope of the subject matter described herein.
It will be understood that the above description of a preferred embodiment is given by way of example only and that various modifications may be made by those skilled in the art. The above specification, examples and data provide a complete description of the structure and use of exemplary embodiments of the invention. Although various embodiments of the invention have been described above with a certain degree of particularity, or with reference to one or more individual embodiments, those skilled in the art could make numerous alterations to the disclosed embodiments without departing from the spirit or scope of this invention.