노드 1이 데이터를 전송하고, 그 후에 노드 2가 데이터를 전송한다.
노드 3도 데이터를 전송하고, 노드 4는 채널을 감지하여 데이터를 전송하려고 한다.
노드 4는 채널이 사용 중임을 감지하고 대기한다.
이후 노드 4가 채널을 감지하여 비어 있음을 확인하고 데이터를 전송하려고 하지만, 노드 5도 같은 시점에 채널을 감지하고 데이터를 전송하려고 한다.
이로 인해 노드 4와 노드 5의 데이터가 충돌하게 된다.
충돌이 발생하면 충돌한 노드들은 랜덤한 시간 동안 대기한 후 다시 데이터를 전송하려고 시도한다.
이 과정을 통해 충돌이 반복되는 것을 피하고, 데이터 전송의 성공 확률을 높인다.
충돌 감지 다중 접속: CSMA/CD (Carrier Sense Multiple Access with Collision Detection) 🔗
CSMA/CD는 CSMA 프로토콜에 충돌 감지 기능을 추가한 프로토콜이다.
작동 원리:
매체가 비어 있는 경우, 즉 채널이 사용 중이지 않으면 데이터를 전송한다.
매체가 사용 중이면, 채널이 비어 있을 때까지 계속 감지하고 대기한 후 전송을 시도한다.
전송 중에 충돌이 감지되면, 즉시 전송을 중지하고 충돌을 처리한다.
충돌 후 랜덤한 시간 동안 대기한 후, 동일한 알고리즘을 반복하여 다시 전송을 시도한다.
충돌 회피 다중 접속: CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) 🔗
CSMA/CA는 CSMA 프로토콜에 충돌 회피 기능을 추가한 프로토콜이다.
작동 원리:
모든 단말기는 CSMA/CD와 동일하게 매체를 청취한다.
전송 준비가 된 단말기는 매체를 감지한다.
매체가 사용 중이면 현재 전송이 끝날 때까지 기다린다.
그 후 추가로 미리 정해진 시간 동안 DIFS(Distributed Inter Frame Space)를 기다린다.
그 후 경쟁 윈도우 내에서 슬롯의 무작위 개수(백오프 카운터의 초기 값)를 선택하여 프레임을 전송하기 전에 대기한다.
이 시간 동안(백오프 시간)에 다른 단말기에서 전송이 발생하면 해당 단말기는 카운터를 멈춘다.
다른 단말기의 전송이 끝나고 DIFS가 지나면 카운트다운을 재개한다. 단말기는 카운터가 0에 도달하면 전송을 시작할 수 있다.
CSMA/CD와의
차이점
:
CSMA/CD(Carrier Sense Multiple Access with Collision Detection)는 유선 네트워크에서 주로 사용되며, 충돌이 발생한 후 이를 감지하고 처리하는 반면, CSMA/CA는 무선 네트워크에서 충돌이 발생하기 전에 이를 피하기 위해 설계되었다.
무선 네트워크에서는 충돌을 감지하는 것이 어렵기 때문에 CSMA/CA 방식이 더 효과적이다.
DIFS
(Distributed Inter Frame Space):
DIFS는 데이터 프레임 간의 간격을 의미하며, CSMA/CA에서 사용된다.
전송이 끝난 후 새로운 전송을 시작하기 전에 일정 시간 동안 기다리는 역할을 한다.
백오프 카운터
:
백오프 카운터는 단말기가 전송을 시도하기 전에 기다려야 하는 시간을 결정한다.
이 카운터는 무작위로 선택되며, 이는 충돌 가능성을 줄이는 데 도움을 준다.
경쟁 윈도우
:
경쟁 윈도우는 백오프 카운터가 선택될 수 있는 시간 슬롯의 범위를 말한다.
초기 값은 작지만 충돌이 발생할 때마다 윈도우 크기가 증가한다.
백오프 시간
:
단말기가 전송을 시도할 때 다른 단말기의 전송으로 인해 충돌이 발생할 경우, 단말기는 백오프 시간 동안 대기해야 한다.
이 대기 시간 동안 다른 단말기가 전송을 완료할 때까지 기다린 후, 다시 전송을 시도한다.
큰 cw를 선택하면 백오프 간격이 커지고 오버헤드가 증가할 수 있다.
작은 cw를 선택하면 충돌이 더 많이 발생할 수 있다 (두 노드가 동시에 0까지 카운트다운할 때).
동시에 전송을 시도하는 노드 수는 시간에 따라 달라질 수 있으므로, 경쟁을 관리할 수 있는 메커니즘이 필요하다.
IEEE 802.11 DCF: 경쟁 윈도우 cw는 충돌 발생에 따라 동적으로 선택된다.