- Trending Categories
- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP

- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who

# Back-off Algorithm for CSMA/CD

**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

T_{slot} is the discrete-time slot of length equal to 2t, where t is the maximum propagation delay in the network.

K = [0, 2^{n} -1]. n is the collision number.

- Related Questions & Answers
- CSMA with Collision Detection (CSMA/CD)
- Difference between CSMA/CA and CSMA/CD
- CSMA/CD with the Binary Exponential Backoff
- CSMA with Collision Avoidance (CSMA/CA)
- Difference between CD and DVD
- Non-persistent CSMA protocol
- P-persistent CSMA protocol
- Rate Anomaly in CSMA/CA
- C Program for Naive algorithm for Pattern Searching
- C Program for Reversal algorithm for array rotation
- Java Program for Reversal algorithm for array rotation
- C Program for KMP Algorithm for Pattern Searching
- Python Program for Reversal algorithm for array rotation
- Algorithm for implementing Distributed Shared Memory
- Algorithm for matrix multiplication in JavaScript