105. CSMA 지속 방식 (1-Persistent, Non-Persistent, p-Persistent) 심층 분석
핵심 인사이트 (3줄 요약)
- 본질: CSMA 환경에서 노드가 전송을 시도할 때 매체가 이미 사용 중(Busy)인 경우, 이후에 어떤 전략으로 다시 전송을 시도할지 결정하는 대기 알고리즘이다.
- 가치: 채널이 비었을 때 즉시 전송하여 지연을 줄일 것인지(1-Persistent), 아니면 양보하여 충돌을 막을 것인지(Non-Persistent)에 대한 네트워크 처리량과 지연 시간 간의 트레이드오프를 조율한다.
- 융합: 이 세 가지 방식의 장단점을 수학적으로 결합한 'p-Persistent' 모델은 현대 무선 랜(Wi-Fi)의 충돌 회피(CSMA/CA) 백오프(Backoff) 알고리즘의 근간이 되었다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
CSMA (Carrier Sense Multiple Access)는 데이터를 보내기 전 채널이 비어있는지 먼저 확인(Sense)하는 훌륭한 규칙이다. 만약 채널이 비어있다면(Idle) 바로 데이터를 보내면 된다. 하지만 실무 네트워크에서 가장 중요한 질문은 **"채널을 확인했는데 누군가 이미 사용 중(Busy)이라면, 그 다음엔 어떻게 행동해야 하는가?"**이다.
이때 취할 수 있는 전략은 크게 두 가지 극단으로 나뉜다. 첫째, 남이 끝날 때까지 끈질기게 기다렸다가 끝나는 즉시 내가 먼저 차지하는 '공격적 전략'이다. 둘째, 누군가 쓰고 있다면 쿨하게 포기하고 나중에 다시 와서 확인하는 '방어적 전략'이다. 전자는 네트워크 지연(Delay)을 최소화하지만 충돌 확률이 극도로 높아지고, 후자는 충돌은 피할 수 있지만 대기 시간이 너무 길어진다. CSMA의 **지속 방식 (Persistence Methods)**은 이 두 극단 사이에서 네트워크의 전체 처리량(Throughput)을 최적화하기 위해 고안된 수학적 확률 모델이다.
[CSMA 지속 방식의 기본 문제 의식 시각화] 이 도식은 채널이 사용 중일 때 대기 중인 노드들이 겪는 딜레마를 보여준다.
채널 상태: [==== 노드 A가 전송 중 (Busy) ====] (유휴 상태로 전환) ---> [ Idle ]
│
노드 B (대기 중): "빨리 보내고 싶다..." │ <충돌 위기!>
노드 C (대기 중): "나도 빨리 보내야 하는데..." │ B: "비었다! 지금 쏜다!"
노드 D (대기 중): "끝나기만 해봐라..." │ C: "비었다! 지금 쏜다!"
▼
[질문]: A가 끝나는 순간 B, C, D는 동시에 쏴야 할까?
- 다 같이 쏘면 (1-Persistent) -> 100% 충돌 (망함)
- 다 같이 포기하면 (Non-Persistent) -> 채널 낭비 (느림)
- 확률적으로 쏘면 (p-Persistent) -> 적절한 타협점
이 그림의 핵심은 채널이 Busy 상태에서 Idle 상태로 바뀌는 순간이 가장 위험한 '충돌 다발 구역'이라는 점이다. 여러 노드가 동시에 전송을 기다리고 있었다면, 매체가 비는 순간 모두가 동시에 전송을 시작하려 들 것이기 때문이다. 지속 방식은 이 병목 구간을 어떻게 영리하게 통과할 것인가에 대한 알고리즘적 해답이다.
📢 섹션 요약 비유: 인기 있는 식당에 줄을 섰을 때, 앞사람이 나오자마자 무조건 뛰어 들어갈 것인지(1-Persistent), 일단 집에 갔다가 내일 다시 올 것인지(Non-Persistent), 아니면 동전 던지기를 해서 들어갈지 말지 결정할 것인지(p-Persistent)의 전략 차이와 같습니다.
Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)
세 가지 지속 방식은 채널의 상태(Idle/Busy)에 따른 후속 행동(Action) 로직으로 명확히 구분된다.
| 방식 | 역할 및 동작 | 확률 로직 (p) | 프로토콜 적용 | 비유 |
|---|---|---|---|---|
| 1-Persistent | 끈질긴 대기 후 즉시 전송 | 채널이 비면 100% (p=1) 확률로 즉시 전송 | CSMA/CD (이더넷) | 빈자리 나자마자 짐 던지기 |
| Non-Persistent | 비지속적 임의 시간 대기 | Busy 시 감지 중단 후 랜덤(Random) 시간 대기 | 초기 패킷 라디오 | 자리 없으면 산책 다녀오기 |
| p-Persistent | 확률적 전송 대기 | Idle 시 p 확률로 전송, (1-p) 확률로 슬롯 대기 | CSMA/CA (Wi-Fi 기초) | 자리 나면 주사위 굴려 들어가기 |
[세 가지 CSMA 지속 방식의 상태 전이 및 로직 흐름도] 이 다이어그램은 각 방식이 Carrier Sense 이후에 어떤 판단 트리(Decision Tree)를 거치는지 비교한다.
[공통 시작]: Carrier Sense (채널 상태 감지)
│
├─▶ [1-Persistent]
│ - Idle인가? ──(Yes)──> 즉시 전송!
│ - Busy인가? ──(Yes)──> Idle이 될 때까지 계속 감시(지속) -> 비면 즉시 전송!
│
├─▶ [Non-Persistent]
│ - Idle인가? ──(Yes)──> 즉시 전송!
│ - Busy인가? ──(Yes)──> 감시 중단 -> [랜덤 시간(Random Time) 휴식] -> 처음부터 다시 감지
│
└─▶ [p-Persistent] (시간을 슬롯 단위로 나눔)
- Busy인가? ──(Yes)──> Idle이 될 때까지 계속 감시(지속)
- Idle인가? ──(Yes)──> [확률 판단]
├─ (확률 p) ───> 즉시 전송!
└─ (확률 1-p) ─> 다음 슬롯까지 1칸 대기 -> 다시 Idle인지 확인
이 로직의 핵심은 **Busy 상태일 때의 '집착도'와 Idle 상태가 되었을 때의 '확률'**이다. 1-Persistent는 집착도 최고조이며 확률이 100%다. 지연 시간(Delay)은 가장 짧지만 충돌 가능성도 가장 높다. Non-Persistent는 아예 집착을 버리고 랜덤 시간을 쉬러 가기 때문에, 채널이 비어 있음에도 아무도 쓰지 않는 공백(Idle Time)이 길어지는 단점이 있다. p-Persistent는 이 둘을 결합하여, 끝까지 기다리되 막상 자리가 났을 때는 확률(p)에 기대어 전송함으로써 충돌을 분산시킨다.
📢 섹션 요약 비유: 1-Persistent는 '무대포 돌격형', Non-Persistent는 '여유로운 산책형', p-Persistent는 '눈치 보는 주사위형' 행동 알고리즘입니다.
Ⅲ. 융합 비교 및 다각도 분석 (Comparison & Synergy)
네트워크를 설계할 때 어떤 지속 방식을 선택할 것인가는 철저히 해당 네트워크의 트래픽 부하(Load)와 매체의 특성에 따라 결정된다.
[네트워크 부하(G)에 따른 처리량(Throughput) 및 지연(Delay) 비교 매트릭스]
┌──────────────┬────────────────────────┬────────────────────────┬────────────────────────┐
│ 평가 지표 │ 1-Persistent CSMA │ Non-Persistent CSMA │ p-Persistent CSMA │
├──────────────┼────────────────────────┼────────────────────────┼────────────────────────┤
│ 충돌 확률 │ 매우 높음 (대기자 집중)│ 매우 낮음 (분산됨) │ 중간 (p값에 따라 가변) │
│ 전송 지연 │ 가장 짧음 (즉시 전송) │ 가장 긺 (랜덤 대기 누적│ p값에 따라 타협 가능 │
│ 채널 낭비 │ 낮음 (바로 채워짐) │ 높음 (비어있는 시간 발생│ 매우 낮음 (최적화 시) │
│ 고부하 시효율│ 급격히 붕괴됨 │ 상대적으로 잘 버팀 │ 최적의 p값에서 최고효율│
│ 저부하 시효율│ 최고 성능 발휘 │ 지연 오버헤드로 비효율 │ 우수한 성능 유지 │
└──────────────┴────────────────────────┴────────────────────────┴────────────────────────┘
이 매트릭스 해석의 핵심은 '네트워크 부하(Load)'에 따른 역전 현상이다. 밤시간대처럼 네트워크에 노드가 거의 없는 저부하(Low Load) 상황에서는 1-Persistent가 최고다. 굳이 양보하거나 랜덤 시간을 기다릴 필요 없이 바로 쏘는 것이 가장 빠르기 때문이다. 이 때문에 초창기 유선 이더넷(CSMA/CD)은 충돌이 나면 즉시 중단할 수 있다는 믿음을 바탕으로 1-Persistent 방식을 채택했다. 반면 트래픽이 꽉 차는 고부하(High Load) 상황에서는 Non-Persistent가 훨씬 낫다. 모두가 계속 덤벼들면 100% 충돌이 나기 때문에, 차라리 뿔뿔이 흩어져서 랜덤하게 들어오는 것이 시스템 붕괴를 막는다.
📢 섹션 요약 비유: 손님이 없는 식당(저부하)에서는 1-Persistent처럼 눈치 보지 않고 바로 앉는 것이 좋지만, 붐비는 식당(고부하)에서는 Non-Persistent처럼 번호표를 뽑고 흩어져서 각자 시간을 보내다 오는 것이 모두의 스트레스를 줄이는 길입니다.
Ⅳ. 실무 적용 및 기술사적 판단 (Strategy & Decision)
실무 네트워크 장비에서 p-Persistent 방식은 p값을 고정하는 대신, 충돌 횟수에 따라 확률(또는 대기 시간 범위)을 동적으로 조절하는 기술로 진화했다. 이것이 바로 이더넷과 와이파이에 적용된 이진 지수 백오프 (Binary Exponential Backoff, BEB) 알고리즘이다.
1. 실무 시나리오: Wi-Fi 환경에서 고밀도 접속자 제어 (CSMA/CA의 동적 p-Persistent)
- 상황: 스타벅스와 같은 공공장소에 수십 대의 스마트폰이 하나의 AP(공유기)에 몰려 데이터를 전송하려 한다.
- 판단: 고정된 1-Persistent를 쓰면 100% 충돌로 네트워크가 마비되고, 고정된 작은 p값(예: p=0.01)의 p-Persistent를 쓰면 한 명만 있을 때도 100번의 슬롯을 기다려야 하는 막대한 지연이 발생한다.
- 조치: 처음 전송할 때는 높은 확률(높은 p값)로 전송하게 하고, 만약 충돌이 발생하면 그 확률을 절반으로 낮추는(대기 창을 2배로 늘리는) 동적 백오프 전략을 사용한다.
[동적 백오프 알고리즘의 대기 창(Contention Window) 증가 구조] 이 도식은 충돌 횟수(n)가 늘어날수록 노드가 선택할 수 있는 랜덤 대기 시간의 범위가 어떻게 2배씩 늘어나는지 보여준다 (동적으로 p값이 작아지는 효과).
[ 충돌 횟수 n ] [ Contention Window (CW) 범위 ] [ 실무적 의미 (p값의 변화) ]
0 [0 ~ 15] 슬롯 중 랜덤 선택 -> 혼잡도 낮음. 1/16 확률로 전송 시도
│ (충돌 발생 시!)
▼
1 [0 ~ 31] 슬롯 중 랜덤 선택 -> 혼잡도 증가. 1/32 확률로 전송 시도
│ (또 충돌 발생 시!)
▼
2 [0 ~ 63] 슬롯 중 랜덤 선택 -> 매우 혼잡. 1/64 확률로 몸사리기 시작
│
... (최대 10회까지 2^n으로 증가, 이후 폐기) ...
이 구조의 핵심은 **혼잡도에 따른 자가 적응(Self-Adaptation)**이다. 충돌이 났다는 것은 현재 채널에 경쟁자가 많다는 의미이므로, 스스로 전송 확률을 낮춰(주사위의 면을 늘려) 뒤로 물러선다. 반대로 전송에 성공하면 다시 초기화하여 높은 전송 확률을 회복한다. 이는 순수한 p-Persistent 모델을 실무적으로 가장 완벽하게 구현한 사례이다.
📢 섹션 요약 비유: 처음 가위바위보에서 지면 1분을 쉬고, 두 번 연속 지면 2분, 세 번 지면 4분을 쉬게 만들어서, 사람이 많아 혼잡할수록 스스로 휴식 시간을 기하급수적으로 늘려 질서를 유지하는 지능형 대기 시스템입니다.
Ⅴ. 기대효과 및 결론 (Future & Standard)
| 구분 | CSMA 지속 방식의 역할 | 현대 네트워크 프로토콜로의 계승 |
|---|---|---|
| 1-Persistent | 대기 없는 신속한 접근 모델 | 초기 Ethernet (IEEE 802.3)의 CSMA/CD |
| Non-Persistent | 충돌 회피를 위한 랜덤 대기 모델 | 백오프 로직의 이론적 근간 |
| p-Persistent | 슬롯 기반 확률적 접근 타협 모델 | Wi-Fi (IEEE 802.11)의 CSMA/CA 및 BEB |
CSMA의 세 가지 지속 방식은 네트워크가 어떻게 이기적인 노드들 사이에서 공정한 기회를 분배하고 충돌을 최소화할 수 있는지를 수학적으로 규명한 선구적인 이론이다. 오늘날 순수한 형태의 p-Persistent 알고리즘이 그대로 쓰이지는 않지만, 이 개념은 CSMA/CA의 Contention Window 조절 메커니즘으로 계승되어 전 세계 수십억 대의 무선 기기들이 서로 충돌하지 않고 와이파이망을 공유할 수 있는 보이지 않는 질서가 되었다.
📢 섹션 요약 비유: 이 세 가지 방식은 교통 체증을 해결하기 위해 과거 학자들이 고민했던 '신호등 없는 교차로 통과 규칙'이었으며, 오늘날 이 규칙들이 결합되어 인공지능처럼 스스로 간격을 조절하는 현대의 무선 통신 자율주행 규칙으로 완성되었습니다.
📌 관련 개념 맵 (Knowledge Graph)
- CSMA/CD (Carrier Sense Multiple Access with Collision Detection) | 유선망에서 주로 쓰이며, 채널 유휴 시 즉각 전송을 시도하는 1-Persistent 방식을 채택한 MAC 프로토콜.
- CSMA/CA (Carrier Sense Multiple Access with Collision Avoidance) | 무선망에서 쓰이며, 충돌을 사전에 막기 위해 랜덤 시간 대기(Non-Persistent)와 확률적 시도(p-Persistent)의 철학을 융합한 MAC 프로토콜.
- BEB (Binary Exponential Backoff) | 충돌이 발생할 때마다 랜덤하게 대기하는 슬롯의 범위(Contention Window)를 2배씩 지수적으로 늘려 혼잡을 피하는 동적 제어 알고리즘.
- Contention Window (CW) | p-Persistent 기반 알고리즘에서 노드가 전송을 시도하기 전 선택할 수 있는 랜덤 대기 시간 슬롯의 전체 범위.
- Throughput-Delay Trade-off | 지속 방식에서 p값을 높이면 지연(Delay)은 줄어들지만 충돌로 인해 처리량(Throughput)이 하락하는 반비례적 상관관계.
👶 어린이를 위한 3줄 비유 설명
- 게임기에 자리가 났을 때, 무조건 내가 먼저 달려가서 게임기를 차지하려는 방식이 '1-Persistent(끈질긴 방식)'에요.
- 자리가 없으면 깔끔하게 포기하고 놀이터에서 한참 놀다가 나중에 다시 와보는 방식이 'Non-Persistent(포기하는 방식)'에요.
- 'p-Persistent(확률 방식)'는 자리가 나면 친구들과 주사위를 굴려서 짝수가 나온 사람만 게임을 하도록 룰을 정해, 서로 안 싸우고 공평하게 게임을 즐기는 아주 똑똑한 방법이랍니다!