Back Off Algorithm is an algorithm used for collision resolution. It works as,
When this collision occurs, both the devices wait for a random amount of time before retransmitting the signal again, they keep on trying until the data is transferred successfully. This is called back off, since the nodes ‘back-off’ for a certain amount of time, before they try to re-access it again. This random amount of time is directly proportional to the number of attempts it has made to transmit the signal.
Algorithm
Below is a simple flowchart to explain the Back Off Algorithm in brief.
As can be seen, that after each iteration value of N increases and so does the range [0,2^n-1], this way the probability of collisions decreases!
Moreover, it can be a drawback in some cases because continuous back-off can cause some nodes to discard packets. After all, maximum attempt limits have been reached.
So, after the collision, each node has to wait for a certain amount of time which is given by the formula,
Waiting time = K * Tslot
Tslot is the discrete-time slot of length equal to 2t, where t is the maximum propagation delay in the network.
K = [0, 2n -1]. n is the collision number.