CSMA/CD vs CSMA/CA 완전 정복
CSMA = Carrier Sense Multiple Access (반송파 감지 다중 접속)
여러 장치가 하나의 전송 매체를 공유할 때 충돌을 어떻게 처리하느냐에 따라 CD와 CA로 나뉨
CD = Collision Detection (충돌 감지) → 유선 이더넷 (802.3)
CA = Collision Avoidance (충돌 회피) → 무선 LAN (802.11)
여러 장치가 하나의 전송 매체를 공유할 때 충돌을 어떻게 처리하느냐에 따라 CD와 CA로 나뉨
CD = Collision Detection (충돌 감지) → 유선 이더넷 (802.3)
CA = Collision Avoidance (충돌 회피) → 무선 LAN (802.11)
핵심 비교
| 항목 | CSMA/CD | CSMA/CA |
|---|---|---|
| 풀네임 | Carrier Sense Multiple Access / Collision Detection | Carrier Sense Multiple Access / Collision Avoidance |
| 표준 | IEEE 802.3 이더넷 | IEEE 802.11 Wi-Fi |
| 전송 매체 | 유선 (UTP, 동축케이블) | 무선 (전파) |
| 충돌 처리 | 충돌 발생 후 감지 | 충돌 발생 전 회피 |
| 충돌 감지 가능? | 가능 (자신의 신호 vs 수신 신호 비교) | 불가능 (전송 중 수신 불가) |
| 동작 계층 | 2계층 (데이터링크) | 2계층 (데이터링크) |
| 효율 | 충돌 많을수록 저하 | 대기 시간으로 인한 저하 |
| 사용 환경 | 유선 LAN (허브 기반 구형) | 무선 LAN 전체 |
CSMA/CD 상세 동작
왜 유선에서만 CD가 가능한가?
유선: 자신이 보내는 신호 + 수신 신호를 동시에 비교 가능
→ 신호 차이가 생기면 "충돌 발생" 감지
무선: 전송 중에는 수신을 못 함 (반이중 통신)
→ 자신의 신호가 너무 강해서 충돌 신호를 감지할 수 없음
CSMA/CD 동작 순서:
1. CS (Carrier Sense) → 채널이 사용 중인지 먼저 확인
│
├─ 사용 중 → 대기 (채널이 빌 때까지)
│
└─ 비어있음 → 전송 시작
│
├─ 충돌 없음 → 전송 완료 ✓
│
└─ 충돌 감지 → JAM 신호 전송 (모두에게 충돌 알림)
│
└─ 랜덤 시간 대기 (백오프 알고리즘)
│
└─ 재전송 시도
| 단계 | 동작 | 설명 |
|---|---|---|
| 1. CS | 채널 감지 | 전송 전 채널이 사용 중인지 확인 |
| 2. MA | 다중 접속 | 채널 비어있으면 동시에 여러 장치가 접근 가능 |
| 3. CD | 충돌 감지 | 전송 중 충돌 발생 시 즉시 감지 |
| 4. JAM | 충돌 알림 | 모든 장치에 충돌 발생 알림 신호 전송 |
| 5. 백오프 | 랜덤 대기 | 이진 지수 백오프로 랜덤 시간 대기 후 재전송 |
이진 지수 백오프 (Binary Exponential Backoff):
충돌 횟수가 늘어날수록 대기 시간 범위가 2배씩 증가
1차 충돌: 0~1 중 랜덤 / 2차: 0~3 중 랜덤 / 3차: 0~7 중 랜덤...
→ 최대 16회 재시도 후 실패 처리
충돌 횟수가 늘어날수록 대기 시간 범위가 2배씩 증가
1차 충돌: 0~1 중 랜덤 / 2차: 0~3 중 랜덤 / 3차: 0~7 중 랜덤...
→ 최대 16회 재시도 후 실패 처리
CSMA/CA 상세 동작
왜 무선에서는 CA(회피)를 쓰는가?
무선은 충돌을 감지할 수 없기 때문에
충돌이 발생하기 전에 미리 회피해야 함
방법: 전송 전 채널 감지 + 랜덤 대기(IFS) + ACK 확인
→ 충돌 가능성을 최소화
CSMA/CA 동작 순서:
1. CS (Carrier Sense) → 채널이 사용 중인지 확인
│
├─ 사용 중 → 대기
│
└─ 비어있음 → IFS 대기 (Inter Frame Space, 일정 시간 대기)
│
└─ 백오프 카운터 시작 (랜덤 슬롯 대기)
│
└─ 전송 시작
│
├─ ACK 수신 → 성공 ✓
│
└─ ACK 없음 → 재전송
| 단계 | 동작 | 설명 |
|---|---|---|
| 1. CS | 채널 감지 | 전송 전 채널 사용 여부 확인 |
| 2. IFS | 프레임 간 공간 | 일정 시간 추가 대기 (충돌 회피) |
| 3. 백오프 | 랜덤 슬롯 대기 | 랜덤 시간 추가 대기 |
| 4. 전송 | 데이터 전송 | 채널 확보 후 전송 |
| 5. ACK | 수신 확인 | 수신측이 ACK 전송. 없으면 재전송 |
CSMA/CA 보조 메커니즘 — RTS/CTS
숨겨진 노드 문제 (Hidden Node Problem):
A와 C가 서로 못 보는 위치에 있을 때 둘 다 B에 동시 전송 → 충돌
→ 이 문제를 해결하기 위해 RTS/CTS 사용
A와 C가 서로 못 보는 위치에 있을 때 둘 다 B에 동시 전송 → 충돌
→ 이 문제를 해결하기 위해 RTS/CTS 사용
RTS/CTS 동작:
송신측 ──── RTS (Request To Send) ────▶ AP
"나 보내도 돼?"
AP ◀─── CTS (Clear To Send) ────── AP
"응, 보내도 돼. 다른 장치들은 대기"
송신측 ──── 데이터 전송 ──────────────▶ AP
AP ◀─── ACK ────────────────────── 수신측
동작 방식 핵심 차이 정리
CSMA/CD — "충돌 나면 다시"
감지 → 전송 → 충돌 감지
→ JAM 신호 → 랜덤 대기 → 재전송
충돌: 사후 처리
장점: 구현 간단
단점: 충돌 많을수록 효율 저하
현재: 스위치 보급으로 거의 사용 안 함
CSMA/CA — "충돌 안 나게 먼저"
감지 → IFS 대기 → 백오프
→ 전송 → ACK 확인
충돌: 사전 예방
장점: 충돌 최소화
단점: 대기 시간으로 오버헤드 발생
현재: 모든 Wi-Fi 환경에서 사용
⚠ 시험 단골 출제 포인트
· CD = 충돌 감지(Detection) = 유선(802.3) / CA = 충돌 회피(Avoidance) = 무선(802.11)
· 무선에서 CD 불가 이유: 반이중 통신이라 전송 중 수신 불가
· CSMA/CA에서 충돌 감지 대신 ACK로 수신 확인
· RTS/CTS: 숨겨진 노드 문제 해결용 보조 메커니즘
· 백오프 알고리즘: CD=이진지수백오프 / CA=랜덤슬롯백오프
· CD = 충돌 감지(Detection) = 유선(802.3) / CA = 충돌 회피(Avoidance) = 무선(802.11)
· 무선에서 CD 불가 이유: 반이중 통신이라 전송 중 수신 불가
· CSMA/CA에서 충돌 감지 대신 ACK로 수신 확인
· RTS/CTS: 숨겨진 노드 문제 해결용 보조 메커니즘
· 백오프 알고리즘: CD=이진지수백오프 / CA=랜덤슬롯백오프