- Top of Page
This invention relates in general to wireless networking and more particularly, to a system and method for reducing overhead in a wireless network.
Wireless radio frequency spectrum is a precious and scarce resource for wireless operators in any wireless system. Accordingly, efficient usage of the spectrum is always desired for wireless operators. In particular, Medium Access Control (MAC) overhead efficiency is a key factor to achieve spectrum efficiency. MAC overhead in wireless systems includes packet headers, control and management packets, security context, message authentication code, etc. Reducing MAC overheads as much as possible can significantly improve MAC efficiency and thus conserve wireless resources.
- Top of Page
In accordance with particular embodiments, a method for reducing overhead includes concatenating a plurality of packets into a single jumbo packet. Each packet of the plurality of packets comprises a header. The method also includes identifying a base header from among the plurality of headers. The method further includes determining a plurality of hamming distances. Each hamming distance is associated with a respective packet of the plurality of packets other than the base header. The hamming distance is indicative of a number of differences between the respective header and another header of the plurality of headers. The method further includes determining a plurality of encoded values. Each encoded value is associated with a respective packet of the plurality of packets other than the base header and determined based on a difference between the respective header and at least one other header. The method additionally includes generating a jumbo header comprising the base header, the plurality of hamming distances, and the plurality of encoded values. The method also includes transmitting the jumbo packet with the jumbo header via a wireless connection.
In accordance with some embodiments, a method for reducing overhead includes receiving, via a wireless connection, a jumbo packet comprising a jumbo header and a plurality of concatenated packets. The method also includes identifying within the jumbo header, a base header associated with one packet of the plurality of packets and at least one hamming distance and at least one encoded value associated with each packet of the plurality of packets other than the identified packet. The method additionally includes recreating a plurality of headers associated with the plurality of packets based on the base header and the respective hamming distance and encoded value.
Technical advantages of particular embodiments may include providing a reduction in the amount of header overhead involved in communicating packets in a wireless network. The reduction may be achieved while still allowing the recipient to receive all of the information in the original header. Accordingly, the wireless network's resources are more efficiently used.
Other technical advantages will be readily apparent to one skilled in the art from the following figures, descriptions and claims. Moreover, while specific advantages have been enumerated above, various embodiments may include all, some or none of the enumerated advantages.
BRIEF DESCRIPTION OF THE DRAWINGS
- Top of Page
For a more complete understanding of particular embodiments and their advantages, reference is now made to the following description, taken in conjunction with the accompanying drawings, in which:
FIG. 1 illustrates a communication system comprising various communication networks, in accordance with particular embodiments;
FIG. 2 illustrates a wireless network comprising a more detailed view of an endpoint and a base station, in accordance with particular embodiments;
FIG. 3 illustrates the concatenation of several packets into a single jumbo packet having less overhead than the original packets, in accordance with particular embodiments; and
FIG. 4 illustrates a method for reducing overhead in a wireless network, in accordance with a particular embodiment.
- Top of Page
FIG. 1 illustrates a communication system comprising various communication networks, in accordance with particular embodiments. Communication system 100 may be comprised of multiple interconnected networks 110. Each network 110 may be any of a variety of communication networks designed to facilitate one or more different services either independently or in conjunction with other networks. For example, networks 110 may facilitate internet access, online gaming, file sharing, peer-to-peer file sharing (P2P), voice over internet protocol (VoIP) calls, video over IP calls, or any other type of functionality typically provided by a network. Networks 110 may provide their respective services using any of a variety of protocols for either wired or wireless communication. For example, network 110a may comprise an 802.16 wireless network (e.g., 802.16j or 802.16m), popularly known as WiMAX, which may include base stations, such as base station 120, and relay stations, such as relay stations 130. Network 110a may provide for the use of relay stations 130 by implementing 802.16j. A WiMAX network that uses relay stations may be referred to as a mobile multi-hop relay (MMR) network.
Within a network using a wireless protocol (e.g., 802.16m), such as network 110a, communications between components may be done with packets. Besides the data to be communicated, these packets may include MAC overhead. The overhead may include headers containing information related to the packet (e.g., the source, the destination, the size of the payload, etc.) as well as security information (e.g., message authentication code, security context, etc.). This information can create significant overhead because it is contained in each packet but does not directly contribute to the communication of actual desired data or information. While the information may cause overhead, it may be needed to provide the packets with integrity protection and encryption from potential security attacks and eavesdropping. In particular embodiments, the overhead may be reduced by concatenating two or more packets into a single jumbo packet and then compressing the header and/or reducing the amount of security information used for the concatenated packets.
The packets (and jumbo packets) may be communicated between components of wireless network 110a via wireless links. More specifically, between each endpoint, relay station and/or base station there may be a wireless connection or link, such as wireless connections 150. Wireless connections 150 may each comprise their own various wireless resources such as, for example, a combination of a particular center frequency, a particular bandwidth, a particular time slot, and/or a particular subchannel (for example, as described in a downlink or uplink map). The actual properties of a particular wireless connection 150 may depend on the communication standard used (e.g., WiMAX).
In wireless network 110a, MAC overhead may include packet headers, control and management packets, security information, etc. For simplicity, the term security information may be used as a general term for the mechanism or mechanisms that may be employed to protect (e.g., authentication) a packet payload. For example, in 802.16 systems, Ciphertext message authentication code (CMAC) values for data packets or CMAC tuples/CMAC digests for MAC management messages may be considered as security information. Another example of the security information is the authentication header in IPSec.
Although communication system 100 includes four different networks, networks 110a-110d, the term “network” should be interpreted as generally defining any network or combination of networks capable of transmitting signals, data, and/or messages, including signals, data or messages transmitted through WebPages, e-mail, text chat, voice over IP (VoIP), and instant messaging. Depending on the scope, size and/or configuration of the network, any one of networks 110a-110d may be implemented as a LAN, WAN, MAN, PSTN, WiMAX network, globally distributed network such as the Internet, Intranet, Extranet, or any other form of wireless or wired networking. For purposes of illustration and simplicity, network 110a is a MAN that may be implemented, at least in part, via WiMAX, network 110b is a PSTN, network 110c is a LAN, and network 110d is a WAN.
In the depicted embodiment, networks 110a, 110c and 110d may be IP networks. IP networks transmit data by placing the data in packets and sending each packet individually to the selected destination, along one or more communication paths. Network 110b may, for example, be a PSTN that may include switching stations, central offices, mobile telephone switching offices, pager switching offices, remote terminals, and other related telecommunications equipment that are located throughout the world. Network 110d may be coupled to network 110b through a gateway. Depending on the embodiment, the gateway may be a part of network 110b or 110d (e.g., nodes 170e or 170c may comprise a gateway). The gateway may allow PSTN 110b to be able to communicate with non-PSTN networks such as networks 110a, 110c and 110d.
Networks 110 may be connected to each other and with other networks via a plurality of wired links 160, wireless connections 150, and nodes 170. Not only do the wired links 160, wireless connections 150, and nodes 170 connect various networks but they also interconnect endpoints 140 with one another and with any other components coupled to or a part of any of networks 110. The interconnection of networks 110a-110d may enable endpoints 140 to communicate data and control signaling between each other as well as allowing any intermediary components or devices to communicate data and control signals. Accordingly, users of endpoints 140, may be able to send and receive data and control signals between and among each network component coupled to one or more of networks 110a-110d.
Nodes 170 may include any combination of network components, session border controllers, gatekeepers, base stations, conference bridges, routers, hubs, switches, gateways, endpoints, or any other hardware, software, or embedded logic implementing any number of communication protocols that allow for the exchange of packets in communication system 100. For example, node 170e may comprise a gateway. Node 170e, as a gateway, may translate communications between the various protocols used by different networks.
Endpoints 140 and/or nodes 170 may provide data or network services to a user through any combination of hardware, software embedded in a computer readable medium, and/or encoded logic incorporated in hardware or otherwise stored (e.g., firmware). For example, endpoints 140a-140d may include a cell phone, an IP telephone, a computer, a video monitor, a camera, a personal data assistant or any other hardware, embedded software and/or encoded logic that supports the communication of packets (or frames) using networks 110. Endpoints 140 may also include unattended or automated systems, gateways, other intermediate components or other devices that can send or receive data and/or signals.
Although FIG. 1 illustrates a particular number and configuration of endpoints, connections, links, and nodes, communication system 100 contemplates any number or arrangement of such components for communicating data. In addition, elements of communication system 100 may include components centrally located (local) with respect to one another or distributed throughout communication system 100.
FIG. 2 illustrates a wireless network comprising a more detailed view of an endpoint and a base station, in accordance with particular embodiments. The depicted embodiment is a simplified network comprising IP network 205, base station 210, and endpoint 270. In different embodiments network 200 may comprise any number of wired or wireless networks, base stations, endpoints, and/or any other components (e.g., relay stations) that may facilitate or participate in the communication of data and/or signals whether via wired or wireless connections.
In the depicted embodiment, base station 210 comprises processor 212, memory 214, interface 216, radio 217 and antenna 218. Similarly, endpoint 270 comprises processor 272, memory module 274, radio 277, and antenna 278. These components may work together in order to provide wireless networking functionality, such as communicating packets using less overhead than a traditional wireless network.
Looking at the various components of network 200 in more detail, IP network 205 may comprise one or more of the networks 110 described above with respect to FIG. 1. For example, IP network 205 may comprise the Internet, a LAN, WAN, MAN, PSTN or some combination of the above.
For convenience, similar components of base station 210 and endpoint 270 will be discussed together where appropriate. Processors 212 and 272 may be microprocessors, controllers, or any other suitable computing devices, resources, or combinations of hardware, embedded software and/or encoded logic operable to provide, either alone or in conjunction with other components (e.g., memory 214 and/or 274), wireless networking functionality. Such functionality may include providing various wireless features discussed herein. For example, processors 212 and 272 may be able to determine which packets to concatenate, and how to compress the headers and reduce the amount of security information. Additional examples and functionality provided, at least in part, by processors 212 and 272 will be discussed below.
Memory modules 214 and 274 may be any form of volatile or non-volatile memory including, without limitation, magnetic media, optical media, random access memory (RAM), read-only memory (ROM), flash memory, removable media, or any other suitable local or remote memory component or components. Memory modules 214 and 274 may store any suitable data or information utilized by base station 210 and endpoint 270, respectively, including software embedded in a computer readable medium, and/or encoded logic incorporated in hardware or otherwise stored (e.g., firmware). For example, in particular embodiments memory modules 214 and 274 may store information regarding the cipher used as security for packets communicated between base station 210 and endpoint 270. Memory modules 214 and 274 may also maintain a list, database, or other organization of data useful for determining how to route data to the proper component.
Radios 217 and 277 may be coupled to or a part of antennas 218 and 278, respectively. Radios 217 and 277 may receive digital data that is to be sent out to other base stations, relay stations and/or endpoints via a wireless connection. Radios 217 and 277 may convert the digital data into a radio signal having the appropriate center frequency and bandwidth parameters. These parameters may have been determined ahead of time, for example by a combination of processor 212 and memory 214 of base station 210. The radio signal may then be transmitted via antennas 218 and 278 to the appropriate recipient. Similarly, radios 217 and 277 may convert radio signals received via antennas 218 and 278, respectively, into digital data to be processed by processors 212 or 272, as appropriate. Together, radio 217 and antenna 218, and radio 277 and antenna 278 may each form a wireless interface.
Base station 210 also comprises interface 216 which may be used for the wired communication of signaling and/or data between base station 210 and network 205. For example, interface 216 may perform any formatting or translating that may be needed to allow base station 210 to send and receive data from network 205 over a wired connection. While not depicted, endpoint 270 may also include wired interfaces.
Endpoint 270 may be any type of wireless endpoint able to send and receive data and/or signals to and from base station 210. Some possible types of endpoints 270 may include desktop computers, PDAs, cell phones, laptops, and/or VoIP phones.
As alluded to above, the components of base station 210 and endpoint 270 may work to reduce the amount of overhead within network 200. More specifically, base station 210 and endpoint 270 may communicate using jumbo packets that include two or more concatenated packets, a compressed header and/or reduced security information. The use of jumbo packets may reduce the amount of overhead compared to using individual, non-concatenated packets.
It may be assumed that communications between base station 210 and endpoint 270 are transmitted via packets. Initially, each packet may include one MAC header. In addition, it may be desired that the packets include security information (e.g., the packet is protected with a security algorithm). The inclusion of both a header and security information with each packet may occur even when the packet is disseminated through a security tunnel or over a single link. For convenience, it will be assumed that base station 210 is the transmitter and endpoint 270 is the receiver. In practice, any endpoint, base station or relay station (not depicted), may be a transmitter or receiver, as the case may be. Accordingly, with respect to creating, encoding, encrypting, transmitting, receiving, decrypting and decoding jumbo packets, the functionality and/or components described below may be applied to any base station, relay station or endpoint. The amount of overhead associated with the transmission of packets may be reduced by processor 212 applying header compression and sharing the security information with a set of concatenated packets before transmitting them via radio 210 and antennae 218.
Depending on the scenario, jumbo packets may, for example, be used to transmit multiple packets to the same component over a single link. As another example, jumbo packets may be transmitted via a secure tunnel spanning one or more links. Regardless of the situation, processor 212 may concatenate the two or more packets and then perform header compression and/or reduce the amount of security information. More specifically, with respect to header compression, each packet may start with its own header. Processor 212 may then search for and remove redundancies in the headers of the concatenated packets. With respect to security information reduction, those packets of the concatenated packets that would have had the same or similar security information had they been sent separately, may share the same security information from the jumbo packet. Both of these reduction techniques will be described in more detail below.
In order for the recipient of a jumbo packet to be able to decipher the contents it may need to know how the information is organized within the concatenated packet. Accordingly, before processor 212 applies any header compression methods or shares any security information from the jumbo packet, base station 210 and endpoint 270 (e.g., the transmitter and the receiver) may exchange information and agree on the settings and details of the compression algorithms. This may include selecting among different types of compression algorithms, rules of exclusions, etc. In the context of 802.16, this information may be communicated in the format of type-length-values (TLVs) in the dynamic service addition request/response (DSA-REQ/RSP) messages exchange. In some instance, a dynamic service change request/response (DSC-REQ/RSP) message exchange may be used to change compression settings.
The use of both header compression and security information reduction can be seen in FIG. 3. More specifically, packets 310 may represent multiple packets to be sent to endpoint 270. Packets 310 may then be concatenated into a single packet 320. Next, header compression may be applied to remove redundancy in the headers of the multiple packets as shown in jumbo packet 330. Then, any encryption, authentication, or other security measures that would be applied the individual packets (if sent alone) may be applied to jumbo packet 340 such that only one set of security information (e.g., CMAC value shown in FIG. 3) may be used for all the concatenated packets.
Particular embodiments may generate a new set of headers for each of the concatenated packets in the single packet 320 that uses fewer bits than were used by the original set of headers. In particular embodiments, this may be achieved by using one header as a base header and encoding the rest of the headers by the respective differences with respect to the base header or a previous header. For example, the first header may be the base header, the second header may be represented by a delta header (e.g., dhdr2) comprising differences between the first header and the second header, the third header may be represented by its own delta header (e.g., dhdr3) comprising differences between the third header and the second header, or between the third header and the first header.
In particular embodiments, the differences between two headers may be determined by processor 212 using an ‘exclusive or’ (XOR, ⊕) operation on each bit of the bit strings for the two headers. Using this operation, a new bit string may be created that comprises a ‘0’ each time the two bits are the same, and a ‘1’ each time the two bits are different. For convenience, the resulting string of the ⊕ operation may be referred to as a delta header. The number of different bits between the two binary strings (e.g., those that result in a ‘1’) may be called the hamming distance.
Using the known hamming distance between two original headers along with the length of the respective headers (e.g., the number of bits per header), it may be possible to determine the number of possible delta headers. More specifically, if the hamming distance between header one (Hdr1) and header 2 (Hdr2) is equal to ‘m’, and the two headers each comprise ‘n’ bits, then it may be determined that ‘m’ out of ‘n’ bits of Hdr2 are different from those in Hdr1. It may further be determined that there are C(n;m) combinations to select which ‘m’ bits are different. Then, if Hdr1 is used as the base header, then there are C(n;m) possibilities for Hdr2. The differences between Hdr1 and Hdr2 may be encoded using k bits, wherein k=ceil(log2 C(n;m)), wherein ‘ceil’ is a ceiling function which maps a real number to the next higher integer.
This may best be seen by an example. Assume the two original headers Hdr1 and Hdr2, each have a length of 4 bits, wherein Hdr1=(1, 0, 0, 0) and Hdr2=(1, 0, 1, 1). The difference between the two headers, delta header 2, denoted as dhdr2, would be dhdr2=(0, 0, 1, 1) because the first two bits of Hdr1 and Hdr2 are the same and the second two bits are different. From dhdr2, processor 212 may determine the hamming distance is two because there are two different bits. Because two of the four bits of Hdr2 are different than Hdr1, there are six possible arrangements for the bits of dhdr2 (0: (0, 0, 1, 1), 1: (0, 1, 0, 1), 2: (1, 0, 0, 1), 3: (0, 1, 1, 0), 4: (1, 0, 1, 0), 5: (1, 1, 0, 0)). Processor 212 may be able to encode these six possibilities using three bits. Thus, for our example because dhdr2=(0, 0, 1, 1) processor 212 would use the first option (0) and the encoded value of dhdr2 would be ‘000’. Hdr1, the hamming distance value, two, and the encoded value ‘000’ may then be used by processor 272 to reconstruct Hdr2.
While the previous example resulted in using 5 bits (2 bits for the hamming distance value and 3 bits for the encoding of dhdr2) to compress Hdr2 (which is larger than the original 4 bits of Hdr2), headers comprising increased length may experience increased benefits from the compression. For example, when the length of the headers' bit string equals 40 and the hamming distance value is 8, then only 27 bits would be needed to encode the possible combinations of dhdr2 and 6 bits to represent the hamming distance value. Thus, Hdr2 may be compressed from 40 bits to 33 (27+6) bits. In particular embodiments, processor 212 may determine whether compressing the headers actually lowers the number of bits required before it actually performs the compression.
As mentioned above, part of the compression relies on encoding the delta header (e.g., dhdr2) using one of several possible combinations. In some embodiments, all the possible combinations may be stored in memory of each component of the network (e.g., memory 214 and memory 274). In particular embodiments, an algorithm may be used to allow both processor 212 to encode the delta header, and processor 272 to decode the delta header.
The encoding algorithm may use the delta header, and the hamming distance of the two original headers to determine the encoding. In particular embodiments, the bits in the delta header may be numbered from the least significant bit (LSB) starting from 0 to the most significant bit (MSB) ending at n−1. In certain embodiments, the encoding algorithm may use the following formula related to Binomial coefficients: C(n;m)=C(n−1;m−1)+C(n−1;m). In other words, the left hand side represents the total number of possible combinations of ‘m’ bits out of ‘n’ bits being ‘1’. The right hand side includes two sub-cases: the first term represents the number of combinations with a first bit equal to ‘1’ while the second term is the number of combinations with the first bit equal to ‘0’. In particular embodiments, the encoding may begin by encoding as ‘0’ the delta header with ‘m’ LSBs equal to ‘1’. Then, the most significant bit of ‘1’ may be moved to the left, each move left increases the encoded value by one until the MSB reaches the left end. Then, two of the MSBs are moved to the left from their original position (all at the right side). The operations continue iteratively until all ‘m’ MSBs are equal to ‘1’ (e.g., all the ‘1s’ are at the left side). The case when n=5 and m=3 is shown in the table below: