1

enter image description here

Here

B is within the range of A. C and D are outside the range of A.

A and C are within the range of B. D is outside the range of B.

B and D are within the range of C. A is outside the range of C.

C is within the range of D. A and B are outside the range of D.

So if B wants to send data to A and C wants to send data to D, can both of these happen simultaneously? As far as I know, MACA works on RTS-CTS-DATA sequence, and there is no ACK.

Suppose, at first, B sends a RTS to A. C hears this and remains silent until B receives CTS from A. After the CTS comes from A, C immediately sends RTS to D. B hears this and remains silent until C receives CTS from D. Eventually C receives CTS from D. Now can both B and C transmit data simultaneously?

And what will happen if both B and C send RTS simultaneously to A and D respectively? I think receiving CTS won't be a problem, but can both B and C transmit data simultaneously then?

  • Did any answer help you? If so, you should accept the answer so that the question doesn't keep popping up forever, looking for an answer. Alternatively, you can provide and accept your own answer. – Ron Maupin Feb 19 '18 at 20:44
2

If you are referring to something like 802.11 wireless, your example actually makes use of two separate mechanisms: CSMA/CA (MACA based) and 802.11 RTS/CTS (MACAW based).

I am also inferring from the context of the question that all devices are operating on the same channel/frequency.

So if B wants to send data to A and C wants to send data to D, can both of these happen simultaneously? As far as I know, MACA works on RTS-CTS-DATA sequence, and there is no ACK.

B and C will be utilizing CSMA/CA. If one starts transmitting first, the other will back off. If both do happen to transmit at the same time, there should still be no problem in this case.

A cannot see the transmission from C (the signal is so weak as to be background noise), and as such should only see the RTS from B. The same is true for D.

If A could see C as well, then a collision would likely occur (the interference from C would likely cause the SNR of the signal from B to drop below a usable level). Since CSMA/CA doesn't use ACKs for management traffic such as a RTS, B would send a new RTS to A when it receives no CTS from A.

Suppose, at first, B sends a RTS to A. C hears this and remains silent until B receives CTS from A. After the CTS comes from A, C immediately sends RTS to D. B hears this and remains silent until C receives CTS from D. Eventually C receives CTS from D. Now can both B and C transmit data simultaneously?

Small problem in your question and two possible scenarios since you didn't provide enough details. The problem with your question is that as you laid out what can see what, C will never see a CTS from A nor will B see a CTS from D.

This is the core of the exposed node problem as C will not be able to immediately send an RTS immediately after A sends it's CTS. Instead, C should wait the period of time requested in the RTS plus some before it sends its own RTS. This is the operation of some older 802.11 implementations of RTS/CTS.

Newer 802.11 RTS/CTS implementations will allow C to transmit simultaneous to B if it doesn't hear A (or the CTS from A) as long as B and C are using the same timing and data rates. This helps to alleviate the exposed node problem.

And what will happen if both B and C send RTS simultaneously to A and D respectively? I think receiving CTS won't be a problem, but can both B and C transmit data simultaneously then?

These questions are already answered if you read my answers above.

1

In real life, 802.11 is the ubiquitous wireless protocol. Unless you're using ad-hoc networking, each station always communicates with the access point, so you really can't have two simultaneous communication, regardless of collision protocol.

In your example, MACA would not allow both A and D to respond with CTS. If everything's happening simultanously (both RTS and both CTS) you'd get a collision. Note that even though both transmissions wouldn't really hurt each other, the nodes don't know that and won't allow it.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.