The Hidden Node Problem
RTS CTS to the Rescue:
Even with CSMA/CA, the collision can be tried to avoid but not be guaranteed. Let us look at the below scenario to understand the Problem:
Node A sees that there is no active transmission going on and has data to send to Node B. At the same time Node C also sees that there is no active transmission and has to send data to Node B. Both Node A and Node C sees a clear channel and sends data to Node B.
Node B will receive corrupted data from Node A and Node C and will not send ACK to either.
Node B will receive corrupted data from Node A and Node C and will not send ACK to either.
Since Node A and Node C cannot listen each others transmission they find that the Channel to be free. This kind of problem is called as Hidden Node Problem where in the Nodes which aren't able to identify Channel utilisation at the receivers side, tend to assume that the channel is free and start Transmitting. This results in data corruption at the receivers end.
Node B will receive corrupted data from Node A and Node C and will not send ACK to either. If after multiple retries Node A and Node C does not receive ACK from Node B, they start using RTS CTS mechanism to overcome this problem.
Solution:
Node A after seeing multiple failures will resort to RTS CTS mechanism. Now Node A, before transmitting the actual data packet, sends a Ready To Send packet which indicates that Node A has data to send to Node B. Node B, on recieving RTS, senses the medium and replies with Clear To Send packet if the channel is free. If the channel is not free then CTS is not sent thus stopping Node A to send any data packets. Node A now knows that the channel is being utilized at Node B's end and defers its transmission for random interval of time and tries again with RTS.
Once Channel at Node B is also free, Node B replies to RTS with a CTS and Node A starts its data transmission.
In this way using RTS CTS solves the Hidden node problem.
Please feel to ask questions if you need more clarity. I am also open to constructive feedback.
Hi Pavan,
ReplyDeleteGood explanation very easy to understand. It will be very helpful if you share sniffer capture as well.
Thanks,
Khaja