1. Device listens to communication channel to check if it is idle
2. If idle, data is transmitted
3. If busy, device waits for a random period of time before checking the channel again
4. Exponential backoff algorithm can be used to increase the time period for waiting