In the discussion that follows we stick to the communication model for which the communication range and the interfering range are the same. Figure 2.6(a) depicts the basic difficulty posed in carrier sensing in a multi-hop spectrum sharing setting, termed the hidden terminal problem. Zoya and Xia are not in range and thus they cannot sense each other's carriers. If Zoya starts a transmission to Yoshi, Xia thinks that the medium is still idle and starts transmission to Walt, collisions occur at Yoshi and Walt, and both packets are lost. Carrier sensing does not help here. Figure 2.6(b) depicts the standard defining scenario for a hidden terminal, where both Zoya and Xia try to send to the same receiver Yoshi, but they are hidden from each other. In Figure 2.6(c), Zoya and Xia are hidden from each other, and Yoshi is outside the range of Xia. Zoya and Xia cannot apply carrier sensing with respect to each other and can thus end in a situation where they transmit simultaneously. However, in that case only Walt experiences a collision, but not Yoshi.
One can extend the communication model by assuming that the carrier sensing range is larger than the communication range, as already mentioned before when the carrier sensing was introduced. In a model where the carrier sensing range is larger than the communication range, the hidden terminal problem can be mitigated. Furthermore, if the carrier sensing range is sufficiently larger than the communication range, then it can happen that even if the terminals are in a multi-hop setting with respect to the communication range, they are still in a single-hop setting with respect to carrier sensing.
Nevertheless, it is not only the absence of carrier sensing that can cause problems in a multi-hop setting. Figure 2.6(d) illustrates what is known as the exposed terminal problem. Zoya and Xia are in range, such that they can inhibit each other by using carrier sensing. Let us look at the example in Figure 2.4(b): when
Not all multi-hop settings exhibit problems with carrier sensing; the reader can verify that it works correctly for Figure 2.6(e), although Yoshi cannot be interfered by Xia.
The discussion so far leads to the observation that the gain that carrier sensing brings in a multi-hop setting is not straightforward. This is because collisions can still occur and each collision is expensive, as the medium is wasted for at least one packet duration. In order to see the worst case, consider the hidden terminal problem in Figure 2.6(a). Let Zoya start to send to Yoshi and, just before that transmission ends, Xia starts to send to Walt. According to the collision model, both packets are lost and the time for which the wireless medium has been wasted corresponds to a time that can go up to the sum of the duration of the two packets.
2.4.1 Use of Reservation Packets in Multi-Hop
In order to make the collisions less expensive, we can reuse the concept of a reservation packet from Section 1.4.2. The main idea is to constrain the collisions to occur only for packets that are short. First we look at the simplest setting for hidden terminals from Figure 2.6(b). If Zoya has a data packet for Yoshi, then she sends a short request-to-send (RTS) packet. The RTS packet should contain information about the originator (Zoya) and how long the transmission from Zoya will last. Assume that Xia does not transmit while Zoya transmits an RTS. Then Yoshi receives the RTS from Zoya correctly, and he acknowledges it by sending a short clear-to-send (CTS) packet to Zoya. The CTS should contain the address of Zoya, but it also repeats the information about how long Zoya will need to send her packet to Yoshi. The latter information from the CTS is intended for the terminals that are hidden from Zoya, such as Xia, and the CTS blocks their transmissions while Zoya transmits. If Zoya receives the CTS, then she starts to transmit her data and, at the end of the transmission, she receives an ACK from Yoshi. Note that Xia is in the range of Yoshi, such that she gets inhibited by the carrier sensing mechanism in the case when Yoshi has something to send to Zoya, be it a CTS or an ACK. Recalling from the previous section the use of idle slots for packet prioritization, both control packets CTS and ACK that are sent as responses to other packets can use an idle slot that is shorter compared to an RTS packet. With this, when Yoshi sends a CTS packet, Xia senses a busy medium and is thus prevented from sending an RTS packet.
To see the other effects of the RTS/CTS mechanism, consider the exposed terminal problem in Figure 2.6(d). Zoya sends an RTS, Yoshi sends a CTS; Xia receives the RTS, but not the corresponding CTS. This is an indication for Xia that the intended receiver of Zoya is outside Xia's range and Xia can freely initiate a transmission to Walt. The only problem is that, after Yoshi receives Zoya's packet and sends an ACK to Zoya, Xia may be still transmitting and Zoya will not receive the ACK. Therefore, in this simple form, an RTS/CTS does not completely solve the exposed terminal problem and the reader is encouraged to think what other amendments can be done to the protocol in order to address this problem. We should also note that the utility of an RTS/CTS decreases if the range for carrier sensing is larger than the communication range.
2.4.2 Multiple Hops and Full-Duplex
We look briefly into the changes required when full-duplex devices operate in a multi-hop setting. Recall from the previous section that the receiver, upon detecting collision, can send a busy tone to the transmitters, such that they can interrupt their transmissions and shorten the time wasted in a collision. Consider the hidden terminals Zoya and Xia from Figure