CSMA/CA와 DCF¶
규격 · 개정판
802.11-2024 Clause 10.3 (DCF: IFS, 랜덤 백오프, 재전송) · CCA 요구 사항: 각 PHY 절 · 802.11 원본(1997)부터 존재
한눈에 보기
Wi-Fi 기기는 모두 같은 채널을 나눠 쓰기 때문에 **"말하기 전에 듣고, 조용하면 잠깐 더 기다렸다가 말한다"**는 규칙을 따릅니다. 이것이 CSMA/CA(충돌 회피형 반송파 감지 다중 접속)입니다.
- 듣기(반송파 감지): 채널이 바쁜지 확인
- 기다리기(IFS): 채널이 비면 정해진 시간(DIFS)만큼 더 기다림
- 주사위 굴리기(백오프): 0–15 같은 범위에서 무작위 수를 뽑아 그만큼 슬롯을 더 기다림. 그 사이 누가 말하면 카운트를 멈췄다가 다시 이어서
- 보내고 확인(ACK): 받은 쪽은 짧은 간격(SIFS) 뒤 ACK. ACK가 없으면 충돌로 보고, 주사위 범위를 2배로 늘려 다시 시도
유선 이더넷의 CSMA/CD는 보내면서 충돌을 감지하지만, 무선은 자기 신호가 너무 커서 보내는 중에 남의 신호를 들을 수 없습니다. 그래서 충돌을 피하는(Avoidance) 쪽으로 설계되었습니다.
반송파 감지¶
| 종류 | 방법 | 기준 (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\)는
를 연립해서 풉니다(\(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 처리 시간으로 구성됩니다.