콘텐츠로 이동

CSMA/CA와 DCF

규격 · 개정판

802.11-2024 Clause 10.3 (DCF: IFS, 랜덤 백오프, 재전송) · CCA 요구 사항: 각 PHY 절 · 802.11 원본(1997)부터 존재

한눈에 보기

Wi-Fi 기기는 모두 같은 채널을 나눠 쓰기 때문에 **"말하기 전에 듣고, 조용하면 잠깐 더 기다렸다가 말한다"**는 규칙을 따릅니다. 이것이 CSMA/CA(충돌 회피형 반송파 감지 다중 접속)입니다.

  1. 듣기(반송파 감지): 채널이 바쁜지 확인
  2. 기다리기(IFS): 채널이 비면 정해진 시간(DIFS)만큼 더 기다림
  3. 주사위 굴리기(백오프): 0–15 같은 범위에서 무작위 수를 뽑아 그만큼 슬롯을 더 기다림. 그 사이 누가 말하면 카운트를 멈췄다가 다시 이어서
  4. 보내고 확인(ACK): 받은 쪽은 짧은 간격(SIFS) 뒤 ACK. ACK가 없으면 충돌로 보고, 주사위 범위를 2배로 늘려 다시 시도

유선 이더넷의 CSMA/CD는 보내면서 충돌을 감지하지만, 무선은 자기 신호가 너무 커서 보내는 중에 남의 신호를 들을 수 없습니다. 그래서 충돌을 피하는(Avoidance) 쪽으로 설계되었습니다.

DCF 타이밍

STA A와 B가 같은 순간에 경쟁. 백오프 값이 작은 A가 먼저 전송하고, B는 카운트를 동결했다가 다음 기회에 남은 카운트(2)부터 이어서 셉니다.

반송파 감지

종류 방법 기준 (20 MHz, 대표값)
물리적 CS — 프리앰블 검출 (PD) 802.11 프리앰블을 해독 −82 dBm 이상이면 busy (L-SIG 길이만큼)
물리적 CS — 에너지 검출 (ED) 신호 종류와 무관하게 에너지 측정 −62 dBm 이상이면 busy
가상 CS — NAV 다른 프레임의 Duration 필드로 예약된 시간 NAV > 0이면 busy

두 가지 중 하나라도 busy이면 매체는 busy입니다. NAV는 NAV·RTS/CTS에서 자세히 다룹니다.

IFS (Inter-Frame Space)

IFS가 짧을수록 우선순위가 높습니다. 응답 프레임(ACK, CTS)은 SIFS 뒤 즉시 나가므로 다른 STA가 끼어들 수 없습니다.

IFS 정의 5 GHz OFDM 2.4 GHz (ERP, short slot) 용도
Slot 기본 시간 단위 9 µs 9 µs (long slot 20 µs) 백오프 단위
SIFS 하드웨어 처리 시간 16 µs 10 µs (+6 µs 신호 확장) ACK, CTS, BA, 데이터 응답
PIFS SIFS + 1 slot 25 µs 19 µs AP의 우선 접근, 2차 채널 확인, 채널 전환
DIFS SIFS + 2 slot 34 µs 28 µs DCF 일반 전송
AIFS[AC] SIFS + AIFSN × slot 34–79 µs EDCA (EDCA와 QoS)
EIFS SIFS + ACK 시간 + DIFS 약 94 µs (6 Mbps ACK 기준) 오류 프레임 수신 후 대기

랜덤 백오프와 경쟁 윈도

항목 값 (OFDM PHY)
백오프 카운터 [0, CW] 범위의 균등 난수
CWmin / CWmax 15 / 1023 (DCF, AC_BE)
실패 시 CW ← 2 × (CW + 1) − 1 : 15 → 31 → 63 → … → 1023
성공 시 CW ← CWmin
카운트다운 매체가 1 slot 동안 비어 있을 때마다 1 감소, busy이면 동결
재시도 한도 짧은 프레임 7회, 긴 프레임 4회 (구현에 따라 다름)

백오프 동결이 공정성을 만듭니다. 오래 기다린 STA는 남은 카운트가 작아 다음 경쟁에서 이길 확률이 높습니다.

전송 흐름

flowchart TD
    A["보낼 프레임 도착"] --> B{"매체가 DIFS 동안 idle?"}
    B -- "예 + 백오프 0" --> T["전송"]
    B -- "아니오" --> C["백오프 카운터 선택<br/>(없으면 0..CW)"]
    C --> D{"슬롯 idle?"}
    D -- "예" --> E["카운터 −1"]
    D -- "아니오" --> F["동결 → 다시 DIFS 대기"]
    F --> D
    E --> G{"카운터 = 0?"}
    G -- "아니오" --> D
    G -- "예" --> T
    T --> H{"SIFS 후 ACK 수신?"}
    H -- "예" --> I["CW = CWmin, 완료"]
    H -- "아니오" --> J["CW 2배, 재시도 횟수 +1"]
    J --> C
전문가 노트 — 충돌 확률과 처리량 모델

Bianchi 모델. \(n\)개 STA가 항상 보낼 프레임이 있는 포화 상태에서, 한 STA가 임의 슬롯에 전송할 확률 \(\tau\)와 충돌 확률 \(p\)는

\[ \tau = \frac{2(1-2p)}{(1-2p)(W+1) + pW\left(1-(2p)^m\right)}, \qquad p = 1 - (1-\tau)^{n-1} \]

를 연립해서 풉니다(\(W\) = CWmin + 1, \(m\) = 최대 배가 횟수). CWmin = 15에서 STA가 10대면 충돌 확률이 30 % 안팎까지 올라갑니다. 이것이 사람이 많은 곳에서 Wi-Fi가 느려지는 근본 이유이고, 11ax가 OFDMA·트리거로 경쟁 자체를 줄이려 한 동기입니다.

DIFS 이후 즉시 전송. 매체가 DIFS 이상 비어 있던 상태에서 프레임이 도착하면 백오프 없이 바로 보낼 수 있다는 규칙(DCF)이 있지만, EDCA에서는 구현에 따라 항상 백오프를 거치기도 합니다. 유럽 LBT 규정(EN 301 893)에 맞추려면 백오프 처리 방식에 주의해야 합니다.

EIFS의 의미. FCS 오류 프레임을 받은 STA는 그 프레임에 대한 ACK가 나갈 시간을 보호하려고 DIFS 대신 EIFS를 기다립니다. 숨은 노드가 많은 환경에서 EIFS가 잦으면 처리량이 눈에 띄게 떨어집니다.

CCA 응답 시간. 표준은 프리앰블 시작 후 4 µs 안에 CCA busy를 판정하도록 요구합니다(OFDM PHY). 그래서 9 µs 슬롯 = CCA 시간 + Rx/Tx 전환 시간 + 전파 지연 + MAC 처리 시간으로 구성됩니다.