• Introduction to cross-layer design in WSN
• Motivation for cross-layer design
• Cross-layer key distribution
Recently, there has been a flurry of cross-layer design schemes being proposed in WSN. As the fusion of secure networking and wireless communication occupies the center stage in sensor networks, the traditional layered protocol architecture upon which most of the networks form their basis is under scrutiny. Although, the layered approach has been repeatedly used in wired networks, it has been argued that the same approach cannot be directly applied in resource-constraint, wireless ad-hoc networks such as WSN. Hence, to combat this approach, security researchers have proposed several cross-layer design schemes in an ad-hoc environment (Shakkottai et al. 2003). Unlike the layering approach, where protocols at each layer are designed independently, cross-layer designs aim at exploiting the dependence between different protocol layers to achieve maximum performance gains. In the current state of the art in the paradigm of cross-layer design schemes in ad-hoc wireless networks, several diverse interpretations exist. One of the main reasons for such varied explanations is that the design effort is largely dominated by researchers who have made independent contributions in designing different layers of the stack. Many of the cross-layer designs depend on other cross-layer designs and hence raise the fundamental question of the coexistence of different cross-layer design proposals. In addition, the question of time synchronization between various cross-layer schemes and the roles each layer of the stack plays is an active area of research. In addition, the wireless medium allows richer modalities of communication than wired networks. For example, nodes can make use of the inherent broadcast nature of the wireless medium and cooperate with each other. Employing modalities such as node cooperation in protocol design also calls for cross-layer design. The goal of designing security solutions with a cross-layer design approach takes us to a new paradigm of security research. The main objective of security solutions in a network is to provide security services such as authentication, integrity, confidentiality, and availability to the users. In wireless ad-hoc networks, due to the unreliable nature of the shared radio medium, attackers can launch varying attacks, ranging from passive reconnaissance attacks to active man-in-the-middle attacks (Chapter 2). Routing in WSN is hop by hop and assumes a trusted, cooperative environment as intermediate nodes act as relays. However, compromised intermediate nodes can launch varying routing attacks, such as blackhole, wormhole, flood rushing, and selective-forwarding attacks (Chapter 2). In this chapter, we review the existing state of the art in the cross-layer design from a security perspective. In addition, as an example, we look at a cross-layer key-distribution mechanism.
As in an Open Systems Interconnect (OSI) model, a layered architecture divides the overall networking task into specific layers, where each layer specifies defined services and direct communication between nonadjacent layers is forbidden. Subsequently, communication between adjacent layers is limited to procedure calls and responses. Such layered architecture facilitates the framework for inter- and intracommunication and sets the ground rules on which protocols can be designed. As a result, a higher layer protocol will only avail the services offered by lower layers and not be concerned about the details involved in implementation of such services. Second, the architecture also implies that the protocol would aim to have standard Application Program Interfaces (API). On the other hand, protocols can be designed by defying the reference layered architecture that could facilitate direct communication between nonadjacent layers. Such violation of layered architecture forms the basis for the cross-layer design architecture. For example, violation of a layered architecture could include creating new interfaces between layers, redefining the layered boundaries, and joint tuning of parameters across different layers. In certain cases, where the violation is too drastic, the original architecture could be replaced completely by the newer cross-layer design. Although, caution should be taken in designing cross-layer design schemes in WSN, there are many incentives to adapting to such schemes that have motivated cross-layer designers to violate the layered architecture. One of the main motivations is the prospect of leveraging on opportunistic communication in wireless links. In the past, protocol designers have faced several challenges in incorporating the legacy layered architecture in the context of wireless communication—for instance, the classic case of misconstruing a Transmission Control Protocol (TCP) packet error on a wireless channel as an indicator of network congestion in the communication channel by the sender of the packet.
TCP is considered to be a reliable, connection-oriented, end-to-end data-transfer protocol. It achieves reliability by error or loss detection and retransmission and is responsible for congestion control in an IP network. In current deployments of IP networks, TCP assumes packet losses and unusual delays in the network as a direct implication of congestion in the network. The receiver on the other end promptly sends cumulative acknowledgments (ACKs) for successfully received segments, which then assist the sender in determining the number of segments that have been received successfully. The sender determines the number of lost packets, either by the arrival of several duplicate cumulative ACKs or by the absence of an ACK for a timeout interval equal to the sum of the smoothed round-trip delay and four times its mean deviation. To reduce congestion in the network, TCP reacts to packet losses, either by retransmitting missing data and simultaneously invoking congestion control by reducing its transmission (congestion) window size or by backing off its repeated retransmissions. However, when packets are lost for reasons other than congestion, the transmission-rate adaptive behavior of TCP would result in reduced throughput and eventually lead to suboptimal performance of the network. In general, communication over wireless links is often characterized by high bit-error rates due to channel fading, noise, or interference. In such situations, TCP over wireless channels endure considerable throughput degradation and very high interactive delays because the sender misinterprets corruption for congestion. Hence, to alleviate the effects of non–congestion-related losses on TCP over wireless channels, several schemes have been proposed; one of these schemes is Explicit Congestion Notification (ECN) (Floyd 1994).
Whenever the sender generates a TCP packet, it sets the ECN bit to zero. Upon receiving this TCP packet, if the intermediate router detects congestion, it will set the ECN bit to one. Such a TCP packet is said to be marked. This marked packet eventually reaches the destination, and the receiver learns about the new state of the ECN bit in the received TCP packet. Consequently, the receiver informs the sender about the new state of this marked packet to the appropriate sender, which, in turn, adapts its transmission rate depending on the value of the ECN bit. In the current state of the art in TCP deployment, the TCP sender interprets any packet loss to be the end result of congestion. As a result, whenever packet losses occur over a wireless channel, the TCP sender reacts immediately by reducing its packet transmission rate, which results in reduced network throughput.
However, once ECN-enabled TCP is deployed, where the ECN bit can be used to mark packets to indicate congestion, there is a means of differentiating between congestion-related loss and wireless channel–related loss. Thus, the channel need not be smoothed because the ECN mechanism provides a means of explicitly indicating congestion. In Raisinghani and Iyer (2004), it has been analytically shown that in a single-user environment, if packets are marked based solely on congestion information, there is no significant degradation of TCP performance due to the time-varying nature of the wireless channel. A similar idea based on explicit loss notification has been discussed in Zhengrong et al. (n.d.), where simulations indicate improved throughput performance. Such an approach is an example in which a cross-layer view of physical layer information (channel conditions) is used at the network layer to significantly improve network-layer throughput performance. Additionally, the wireless medium offers some new modalities of communication that the layered architectures do not accommodate. For instance, the physical layer can be made capable of receiving multiple packets at the same time. The nodes can also make use of the broadcast nature of the channel and cooperate with one another in involved ways. Making use of such “novel” modes of communication in protocol design also requires violating the layered architectures.
In recent times, several cross-layer design schemes have been proposed. Cross-layer feedback optimization could be implemented on the sink node or the sensor nodes. The cross-layer interactions among the layers can be categorized in different ways. For example, Lower to Upper (violation in the flow control from bottom to top), Upper to Lower (violation in the flow control from top to bottom), and Lower and Upper (Figure 8.1). In all these cases, new interfaces will be created between layers. In addition, cross-layer designs can be categorized by the integration of adjacent layers, design coupling without interfaces, and horizontal calibrations (Figure 8.2 and 8.3).
• Lower to Upper. The requirement of information from the lower layer to the upper layer at runtime results in the creation of a new interface between these two layers. In this case, the lower layers update necessary information to the appropriate upper layers via the interface. For example, the data-link layer is made aware of the transmit power and the bit error rate information by the physical layer so that it can adjust its error-correction mechanism. Subsequently, the transport layer can inform the application layer about the TCP packet loss as it would help the upper layer in the stack (application layer) to adjust its transmitting rate. In addition, it should be noted that self-adaptation loops should not be part of a cross-layer design approach, as they do not require new interfaces to be created between the necessary lower and upper layers. For example, in an auto-rate fall-back mechanism for rate selection in a wireless networking environment with multirate physical layers, the Medium Authentication Code (MAC) layer rate selection is dependent on the received acknowledgment that is observable at the MAC layer. Hence, this mechanism would not qualify as a cross-layer design approach as there is no need for creating new interfaces for rate adaption.
Figure 8.1. Cross-Layer Architecture—Vertical Violation
Figure 8.2. Cross-Layer Architecture—Integration, Coupling, and Horizontal Calibration
Figure 8.3. Horizontal Calibration
• Upper to Lower. The upper layers provide updated information to the necessary lower layers via an interface. For example, if the application layer senses a delay or loss of data, a direct notification to the data-link layer by the application layer would help adapt its error correction mechanism. In addition, delay sensitive packets could be treated with priority. As proposed in Larzon et al. (2002) lower-to-upper information flow is treated as notifications (the lower layer notifies the upper layer about the underlying network condition), whereas the upper-to-lower information flow is treated as hints (upper layers provide hints to the lower layers on the means to process application data).
• Lower and Upper. In this case, both the upper and lower layers are at liberty to transmit notifications about their current state and send queries to the other layers. During runtime, layers executing different tasks can collaborate with each other on an iterative loop basis, resulting in a back and forth communication between them. For example, a back and forth information flow between layers is seen in a proposal to solve the multiple access problem for contention-based wireless ad-hoc networks using joint scheduling and suggesting a distributed power-control algorithm for such networks (ElBatt and Ephremides 2004). In addition, direct communication between layers at runtime could indicate the advantage of making the variables at each layer visible to the other layers of the stack. However, one of the disadvantages of this approach would be in managing the shared memory spaces between the layers when variables and internal states are shared between different layers.
• Integration of Adjacent Layers. The formation of a super-layer by combining two or more adjacent layers would result in a new cross-layer design scheme. The resulting layer would simply provide the union of the services that were provided by the individual layers. For example, a collaborative design of the data-link and physical layer would suffice to produce a super-layer. From a network security perspective, a super-layer that combines network and data-link layer would help prevent advanced Address Resolution Protocol (ARP) poisoning attacks.
• Design Coupling without Interfaces. Coupling two or more layers during the design phase would avoid creating extra interfaces at runtime that could result in a new cross-layer design approach. However, in deployed networks, one of the architectural challenges would be to integrate the coupled layer with already-existing fixed layers.
• Vertical and Horizontal Calibration Across Layers:
Vertical calibration. Vertical calibration refers to the efficient utilization of parameters across different layers of the vertical stack. The parameters set at the application level could dictate terms to the lower layers and vice versa. For example, the transport protocol (TCP or UDP) chosen at the transport layer would assert reliable or unreliable communication and would directly affect the layers below it. Consequently, the joint adjustment at different layers of the vertical stack would result in a more holistic performance of the system than the adjustment of individual parameters.
Figure 8.4. Shared Database Approach Across Cross Layers
Horizontal calibration. Horizontal calibration could be very useful in a resource-constraint environment such WSN. In this case, not only individual parameters pertaining to that layer are taken into consideration, but parameters pertaining to other compatriot layers are also considered. For example, while routing packets, if the network level state of intermediate nodes is taken into consideration, it would be easy to detect nonactive nodes and could subsequently produce an energy-efficient routing protocol. However, challenges do exist in case the participating nodes do not adhere to the same cross-layer approach as the initiating node.
• Shared Database Across Layers (Figure 8.4). The use of a common database which emulates a new layer that provides services such as storage/retrieval of information to all the layers is particularly well suited to vertical calibrations across layers. An optimization program can interface with the different layers at once through the shared database. Similarly, new interfaces between the layers can also be realized through the shared database. However, the main challenge to this approach is with the design of the interactions between the different layers and the shared database.
• New Abstractions. In this case, cross-layer designs are presented in a completely new way, and each design follows its own set of rules or protocols. For example, using heaps instead of stacks could facilitate rich interactions between protocols and offer greater facility in design and during the run-time environment. On the contrary, such protocols may not interact with the traditional protocols and hence are restricted to closed, proprietary networks.
In Section 6.5, we briefly introduced cross-layer key management in WSN. In this section, we look at a cross-layer approach to key establishment that could result in reduced computational cost. We review a cross-layer key establishment protocol using a cluster protocol proposed for WSN (Saglam and Dalkılıç 2009a). This clustering protocol is reviewed in the next section.
The clustering protocol proposed in Saglam and Dalkılıç (2009a) is a low-node density (around 7), self-organizing hop-by-hop protocol based on a spanning-tree protocol growing in parallel with an iterative heuristic. The protocol is based on local decisions, and cluster formation is dependent on border members selecting new initiators for the organization of new clusters. During the configuration phase, every node in the network runs the same protocol state machine. There are five states for a sensor node that also define the node types, namely, initiator, node, gateway candidate, floating, and gateway. At the beginning, all the nodes are in floating state and waiting to be configured. A simplified state machine of this clustering protocol is provided in Figure 8.5.
In the floating state, a node may receive a configuration message from one of its neighbors; it then takes corresponding action. When the purpose of this message is to start a new cluster, the state of the receiving node is then changed to initiator, and this initiator shares the maximum available budget (e.g., in terms of energy expenditure) with its floating neighbors. If the intent of the configuration message is for inner cluster extension, then the state is changed to node and it shares the received budget with its floating neighbors. If the available budget with the inner cluster extension message is 1, then the unit changes its state to gateway candidate and starts the gateway decision algorithm defined in Saglam and Dalkılıç (2009a). If this unit finds itself as the best candidate among the other gateway candidates then it changes its state to gateway and tries to select one of its floating neighbors as the initiator of the next cluster to be extended. Otherwise, the state is changed to node and this unit stops its configuration process. This iteration continues until there is no possible way for this spanning tree to extend.
Figure 8.5. State Machine for Clustering
In this section, we provide the implementation details of the key-establishment protocols embedded within the clustering protocol Saglam and Dalkılıç (2009b). Here, the physical-node density of the network has been selected as 8, which is the minimum node density requirement of the clustering protocol to achieve a network connectivity performance higher than 99%. We first detail the implementation of the basic scheme, and then provide the ECDH-based key establishment.
The cross-layer implementation of the basic scheme includes a clustering protocol that would require additional communication messages in the neighbor-discovery phase. In the clustering protocol discussed in Section 8.4.1, as soon as a configuration message is received by a floating sensor node, the neighbor-discovery operation is initiated. During this phase, states of sensor nodes in the neighborhood are registered and the budgets for cluster extension are distributed to the floating neighbors. Predistributed key rings are checked during this phase, and the neighbors sharing common key(s) in their key rings are used to establish a secure connection (Sections 6.3.4 and 6.3.5).
Key pool size Q and key ring size m of the basic scheme define the probability p of establishing a secure link between two sensor nodes. Hence, the number of neighbors to be securely connected is determined by these parameters. However, it should be noted that changing these parameters affects the cost of storage and transmission of messages.
Transactions for basic scheme implementation in the neighbor-discovery phase of the clustering protocol are depicted in Figure 8.5.
Phase I. In this scheme, any configured sensor node (Alice) starts neighbor discovery by broadcasting a list of key indexes, kA, included in its key ring (Figure 8.6—Phase I).
Phase II. This polling message is received by its neighbors ni (i = 1, 2, …, d, where d is the expected node density) and compare kA with their key rings ki. If there is at least one key index match, then the corresponding neighbors reply to Alice with the matching index number idxi (Phase II). Hence, the expected number of neighbors finding a common key after the shared key discovery is pd. As a result, there exist (1–p)d neighbors that cannot find a shared key with kA. These neighbors who do not share a key reply with a list of their key indexes ki (i = 1, 2, …, (1–p)d), which are subsequently used in the path key discovery phase.
Phase III. In this phase, Alice is aware of the nodes that share a key, and depending on the probability p, if there are neighbors that cannot establish a link key, Alice initiates the path key discovery process via its pd secure neighbors. Alice broadcasts the list of key indexes ki (i = 1, 2, …, (1–p)d) received in the shared key-discovery phase together with the corresponding node identities idi.
Figure 8.6. Message Exchange for the Basic Scheme
Phase IV. In Phase IV, each of the pd secure neighbors compare their key indexes with the list provided by Alice to find a common path key. Each discovered path key (KPK) is sent to Alice by encrypting it with the link key. As a result, there could be multiple path keys KPK for the distant neighbor ni.
Phase V. In Phase V, upon receiving the path key, Alice selects only one of them (Ki), and the path key is sent to the corresponding neighbor with its key index number idxi, where i ≤ (1-p)d). After this phase, if there are neighbors that still cannot establish a path key then Alice starts a new path key discovery iteration starting from Phase III. New iteration also includes the last added neighbors in the previous path key discovery as the shared key members. This loop terminates when there is no new neighbor added after the last path key discovery process.
In this scheme, the links to be secured are defined by the clustering protocol discussed in Section 8.4.1. Securing all the physical neighbors for each sensor node would give the highest network configuration performance. However, the communication and computation costs are higher in this case. Therefore, only the required neighbors that are in a floating state can be selected for establishing secure links while extending the clusters. This reduction can improve the communication costs and hence the computation costs because of the reduced MAC computation. In this case, three different methods for the selection of links to be secured have been proposed—proactive, reactive, and straight. With the proactive selection, attempts are made to secure the links with all the physical neighbors in the shared key and path key discovery phases. With the reactive selection, attempts are made to secure only the links with floating neighbors in shared key discovery. If all of them cannot be secured, then the path key discovery process is applied for the remaining floating neighbors, just one time. Straight selection only considers the neighbors having shared keys discovered in the shared key discovery phase, and path key discovery does not run in this mode.
The cross-layer implementation of ECDH key exchange with the clustering protocol does not require additional messaging for the clustering protocol. The implementation is simple since for a pair of sensor nodes the transaction only requires the exchange of public keys Pu (identity in case of ID-based cryptography) to calculate the shared key for that link. A first broadcasts the polling message for neighbor discovery, which also includes its public key PuA. Then all the receiving neighbors ni (i = 1, 2, …, d) include their public keys Pui in their reply messages. The bulk of the cost of this operation is the point multiplication of the neighbor public key with the private key to calculate the link key for each neighbor sensor node.
We assume that the public keys are calculated offline and loaded to sensor nodes before deployment. This operation saves the one-point multiplication operation in each sensor node needed for calculating the public key from the private key. Because the links to be secured are controlled by the clustering protocol, there may be no need for A to establish a secure link with all of its neighbors for acceptable network connectivity performance. Here, we can apply reactive and proactive link selection methods for ECDH, as well. For the proactive selection, attempt is made to secure all the possible links among the neighbors, which will provide the same connectivity performance of the clustering protocol without security implementation. With the reactive selection, attempt is only made to secure the links with floating neighbors. Because the link key probability is 1 for the ECDH, if the network density is selected as low as possible then the computational cost could be reduced accordingly.
In recent times, we have seen the emergence of cross-layer proposals in WSN. However, open challenges exist in the smooth functioning of a few cross-layer design schemes. Since cross-layer schemes are designed by individuals with specialized skills, the coexistence of different cross-layer proposals with one another in a real-time environment is considered to be an open challenge. In addition, care should be taken that a given cross-layer design scheme won’t stifle innovation in the future. In the following sections, we discuss some of the challenges in detail.
Although many cross-layer proposals exist that are disparate in nature, identifying proposals that are pertinent to a particular task has been a challenge. For example, the design of a cross-layer scheme between a network and the MAC layers of a WSN protocol stack should involve a cost-benefit analysis of different cross-layer design proposals with reference to complexity versus performance. In addition, adequate security should be considered while selecting a cross-layer proposal. Furthermore, design proposals should incorporate explicit notifications by new interfaces to the transport layer so that they improve end-to-end performance and make use of channel knowledge at the MAC layer that would allow opportunistic usage of the channel and improve performance. In addition, energy-, delay-, and security-related issues need to be handled across the layers in a holistic manner. This would require comparative, quantitative study of the different cross-layer design proposals and is currently an open challenge for the cross-layer community.
One of the prime challenges with cross-layer security is with the coexistence of different cross-layer security schemes. For example, the MAC layer in the WSN stack responds to variations in the channel by adjusting the data rate. Is it then possible to adjust the frame length at the link layer to provide further help? How will an overriding control from the transport layer, attempting to control the link-layer parameters, interact with these adaptation loops?
The question of the coexistence of cross-layer design ideas is pertinent when it comes to determining whether some cross-layer design proposals can stifle further innovation. Let us say that the physical and link layers are optimized for a certain performance metric in a cross-layer design scheme. If this scheme is deployed first, can other schemes that also rely on some (other) cross-layer couplings, or those that assume no coupling between the link and physical layers, be deployed, as well, at a later time? Apart from presenting new cross-layer design proposals, designers need to start establishing which other cross-layer design interactions may or may not be employed together with their proposal.
The network conditions in a wireless network are usually time-varying. In such a situation, one of the stated motivations behind cross-layer design is to achieve the network equivalent of impedance matching. The idea is to make the protocol stack responsive to variations in the underlying network conditions so that an optimal operating point is always maintained. The pursuit of achieving such optimal operation presents two complementary challenges. First, designers need to establish the network conditions under which the proposed cross-layer designs will result in performance improvements. Therefore, research should be conducted to illustrate how a cross-layer design involving an iterative optimization of throughput and power leads to a loss in performance under a certain uncontrolled network condition. Second, efficient mechanisms to make a timely and accurate assessment of the state of the network needs to be built into the stack, and the corresponding overheads must be taken into account.
The one thing layering achieved was to present standardized boundaries and interfaces between modules of the system—the protocol layers. Now that the layered architecture is being violated in different ways, finding the new reference architecture becomes a challenge. As a result, the question to ask is, What should the boundaries be between modules? In addition, Should we stick to traditional layer boundaries and determine the new interfaces from there, or should we look at completely new boundaries, or a combination thereof? What should the interfaces between modules look like? Addressing this challenge requires greater synergy between the performance viewpoint and implementation concerns than is seen in the literature today. In general, organization of the modules (layers or otherwise) and the interfaces between them determines how efficiently information can be shared between them and what kinds of overheads and delays occur? This, in turn, determines how effective cross-layer design proposals, which rely on sharing dynamic information between the modules, can be. Hence, proposers of cross-layer design relying on back-and-forth information flow between layers or dynamic vertical calibrations need to consider the impact of delays in the retrieval/updating of information on protocol performance. They also need to quantify the overheads associated with their cross-layer design proposals.
In wired networks, the role of the physical layer has been rather small: sending and receiving packets as initiated by the higher layers. Advances in signal processing at the physical layer can allow it to play a bigger role in wireless networks. Hence, the question of how much of a role the physical layer should play. This is relevant to the cross-layer design effort because first, layered architectures like the OSI reference model do not allow much of a role for the physical layer besides providing a bit pipe, and second, enhancements in the physical layer will have to be balanced by corresponding changes to the higher layers. Hence, figuring out the role to be played by the physical layer is an important question. Cross-layer designs relying on advanced signal processing at the physical layer can be an interesting research framework for the future.
The last open challenge relates to the communication model assumed. Wired networks, by their very nature, are essentially a collection of well-defined point-to-point communication links. The same cannot be said about wireless networks because the wireless medium is inherently broadcast, and there is no clear-cut concept of a communication link in wireless networks. This gives rise to a fundamental question of whether it still makes sense to “create” links in a wireless network. Some recent work has made use of the inherent broadcast nature of the wireless medium to come up with innovative communication schemes for wireless networks. For example, exploiting the broadcast nature of the wireless medium can allow transmission schemes that rely on cooperation between the communication nodes.
These new modalities that the wireless medium offers cannot be accommodated in layered architectures and, hence, inevitably require some degree of architecture violation—in other words, cross-layer design. They represent new opportunities for the cross-layer design effort. Hence, we believe that while proposing cross-layer design proposals to address the issues raised by wireless links, the designers should also keep an eye out for new opportunities created by wireless communication networks.
In this chapter we reviewed the cross-layer design approach in WSN, as well as different interpretations of the cross-layer design schemes and their representative cross-layer design proposals. In addition, we looked at initial ideas on how cross-layer interactions may be implemented and, as an example, looked at a cross-layer key-distribution scheme in WSN.
ElBatt, T., and A. Ephremides. Joint scheduling and power control for wireless ad hoc networks. IEEE Transactions on Wireless Communications 3, no. 1 (2004): 74–85.
Floyd, S. TCP and explicit congestion notification. SIGCOMM Computer Communication Review 24, no. 5 (1994): 8–23.
Larzon, L.-A., U. Bodin, and O. Schelen. Hints and notifications. Wireless Communications and Networking Conference. IEEE, 2002, 635–641.
Raisinghani, V. T., and S. Iyer. Cross-layer design optimizations in wireless protocol stacks. Computer Communication 27 (2004): 720–724.
Saglam, O., and M. E. Dalkılıç. A self organizing multihop clustering protocol for wireless sensor networks. Fifth International Conference on Mobile Ad-hoc and Sensor Networks. IEEE, 2009a, 33–40.
Saglam, O., and M. E. Dalkılıç. Cross layer implementation of key establishment protocols in wireless sensor networks. International Symposium on Computer and Information Sciences. IEEE, 2009b, 346–351.
Shakkottai, S., T. S. Rappaport, and P. C. Karlsson. Cross-layer design for wireless networks. Communications Magazine. IEEE, 41, no. 10 (2003): 74–80.
Zhengrong, Ji, Y. Yang, Z. Junlan, T. Mineo, and R. Bagrodia. Exploiting medium access diversity in rate adaptive wireless LANs. MobiCom ‘04. ACM, n.d., 345–359.