952. 은닉 단말 (Hidden Terminal) 문제 (CSMA/CA RTS/CTS) - 무선 LAN 매체 접근 충돌 회피 알고리즘 노출 단말 통신 범위 간섭 회피 프레임 제어
핵심 인사이트: 951번 유선 랜선(CSMA/CD)은 부딪히면 멈출 수 있었다. 하지만 무선 와이파이(Wi-Fi)는 공기 중으로 쏘기 때문에, 쏘면서 동시에 남의 전파를 듣는 짓(충돌 감지, CD)이 물리적으로 불가능하다. 더 큰 문제는 '은닉 단말'이다. 왼쪽 방의 철수와 오른쪽 방의 영희는 서로 벽에 막혀 안 보이지만, 둘 다 가운데 거실의 공유기(AP)와는 통신이 된다. 철수와 영희가 서로 안 보인다고 동시에 공유기에 데이터를 쏘면 거실에서 와이파이가 폭발한다. "야! 쏘고 나서 충돌을 찾는 건(CD) 불가능해! 무조건 쏘기 전에 미리 손을 들고 허락을 받아라(충돌 회피, CA)! 공유기가 '철수만 쏴!'라고 소리쳐주면 영희는 찌그러져 있어라!" 무선 랜의 심장, CSMA/CA와 RTS/CTS 마법이다.
Ⅰ. 무선 와이파이(WLAN)의 2가지 뼈아픈 재앙 🌟
1. 충돌 감지(CD) 불가 현상
- 유선은 전압이 튀면 알지만, 무선 전파는 내가 쏘는 에너지(Tx)가 너무 강해서 남이 쏘는 에너지가 부딪혀 깨져도 내 귀(Rx)에는 아예 안 들립니다.
- 한 번 쏘면 돌이킬 수 없이 공중에서 패킷이 파괴됩니다. (사후 수습 불가)
2. 은닉 단말 (Hidden Terminal) 문제 🌟 핵심 🌟
- 상황:
[단말기 A]➜[공유기 AP]⟵[단말기 B] - A와 B는 멀리 떨어져 있거나 벽이 있어 서로의 전파가 안 닿습니다(서로 은닉됨).
- A가 공유기에 데이터를 쏘려 귀를 기울입니다(Carrier Sense). B 소리가 안 들리니 "아무도 안 쏘네!" 하고 쏩니다.
- 하필 B도 A 소리를 못 듣고 "아무도 없네!" 하고 공유기에 쏩니다.
- 공유기 입장에선 양쪽에서 전파가 동시에 날아와 쾅! 부딪혀(충돌) 100% 데이터가 깨지는 참사가 터집니다.
Ⅱ. CSMA/CA (충돌 회피, Collision Avoidance)의 등판 🌟
IEEE 802.11(와이파이) 표준은 사후 약방문(CD)을 버리고, **"쏘기 전에 미친 듯이 눈치 보고 기다려서 애초에 충돌을 피하자(CA)"**라는 방어 철학을 들고나왔습니다.
눈치 게임의 시작 (DIFS와 백오프)
- 전파가 조용해져도 951번(유선)처럼 즉시 쏘지 않습니다.
- DIFS (의무 휴식 시간): "조용해졌네? 그래도 혹시 모르니까 딱 0.05초만 더 숨 참고 기다려보자!" 강제 휴식(DIFS)을 취합니다.
- 백오프 (랜덤 대기): 그 후에도 바로 안 쏘고 주사위를 굴려 1~10초 사이의 랜덤 타임(백오프)을 마음속으로 또 센 뒤에야 조심스레 패킷을 밀어 넣습니다. (충돌 확률 극저하)
Ⅲ. 은닉 단말을 때려잡는 궁극기: RTS / CTS 제어 🌟
CSMA/CA의 눈치 게임만으로는 은닉 단말(A와 B가 서로 안 보이는 현상)을 100% 막을 수 없습니다. 그래서 **가상 반송파 감지(Virtual Carrier Sense)**라는 예약 시스템을 도입합니다.
- RTS (Request To Send) - "저 쏠게요!":
- A가 진짜 본문 데이터를 쏘기 전에, 아주 쪼그만 쪽지 패킷(RTS)을 공유기(AP)에 던집니다. "공유기님! 저 10초 동안 데이터 쏠 건데 허락 좀?"
- CTS (Clear To Send) - "A만 쏴! 나머지는 조용!" 🌟:
- 공유기(AP)가 RTS를 받으면, 주변의 모든 단말기(A, B, C)에게 들리도록 CTS(Clear To Send) 방송을 때립니다. "지금부터 10초 동안 A가 나한테 데이터 쏜다! 다른 놈들은 10초 동안 입 닥치고 대기해!"
- 이 CTS 방송은 거실 공유기에서 나가는 거라, A와 B가 서로 안 보여도 공유기의 소리는 둘 다 완벽하게 듣습니다.
- NAV (Network Allocation Vector) - 타이머 설정:
- B는 CTS 방송을 듣고 "아, 10초 동안은 건드리면 안 되네" 하고 자기 컴퓨터 시계(NAV 타이머)를 10초로 맞춰두고 강제 취침(대기)에 들어갑니다. 은닉 단말 문제가 완벽히 차단됩니다!
- DATA ➜ ACK: A가 10초 동안 편안하게 데이터를 쏘고, 공유기가 잘 받았다고 ACK를 날리면 락이 풀립니다.
📢 섹션 요약 비유: 은닉 단말(Hidden Terminal) 문제는 '가운데 선생님(공유기)을 두고, 왼쪽 짝꿍(A)과 오른쪽 짝꿍(B)이 서로 칸막이에 가려 안 보이는 교실'입니다. A가 짝꿍이 안 보이니 손도 안 들고 선생님께 질문을 외치고, B도 동시에 질문을 외쳐 선생님 귀에서 말이 섞여버립니다. 이를 해결하는 CSMA/CA의 RTS/CTS 룰은 철저한 '발언권 예약 시스템'입니다. A가 헛기침(RTS)을 살짝 하며 "선생님 저 10초만 말할게요"라고 예약증을 던집니다. 선생님이 칠판에 크게 적습니다. "지금부터 10초간 A만 말해!(CTS 방송)" 칸막이에 가려 A가 안 보이던 B도 선생님의 목소리와 칠판은 보입니다. B는 입을 꾹 다물고(NAV 타이머 10초) 기다려주어, 무선 전파라는 혼돈의 교실을 충돌 없는 평화로운 토론장으로 정리하는 와이파이의 절대 규칙입니다.