핵심 인사이트 (3줄 요약)
- 본질: 컨버전스(Convergence) 타임은 네트워크에 끊어짐(장애)이 생겼거나 새로운 선로가 추가되었을 때, 스패닝 트리 프로토콜이 이를 감지하고 **우회로를 다시 열어 통신을 100% 정상화하는 데 걸리는 '마비(단절) 시간'**이다.
- 50초 지연 (직접 장애 vs 간접 장애): 기존 오리지널 STP(802.1D)는 막혀있던(Blocking) 포트를 열어 통신을 복구할 때, 안전 확인을 위해 Max Age(20초) + Listening(15초) + Learning(15초)를 합쳐 최장 50초 동안 통신을 끊어버리는 치명적 단점이 있다.
- 현대 네트워크의 한계: 1990년대에는 50초 끊기는 것이 용인되었으나, 현대의 실시간 스트리밍, 금융 거래, 화상 회의 환경에서 50초 통신 마비는 회사 셧다운을 의미하므로, 이를 1~2초로 단축시킨 RSTP(802.1w)로 대체되는 결정적 계기가 되었다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
-
개념: 스위치들이 주고받는 BPDU 교환이 모두 끝나고, 트리의 모양(루프가 없는 상태)이 완전히 고정되어 안정을 찾은 상태를 '수렴(Convergence)'이라 하며, 장애가 나고 다시 수렴할 때까지 걸리는 갭(Gap)이 컨버전스 타임이다.
-
필요성: 메인 도로가 공사로 막혔을 때 우회 도로의 바리케이드를 치우고 다시 차를 달리게 해야 한다. 이 바리케이드를 치우는 타이밍이 컨버전스 타임인데, 만약 성급하게 1초 만에 치웠다가 아직 덜 막힌 곳 때문에 루프(충돌)가 생기면 전체가 전멸한다. 따라서 초창기 설계자들은 '안전제일'을 위해 무식할 정도로 긴 대기 시간(타이머)을 프로토콜에 박아 두었다.
-
💡 비유: 길을 가다 메인 고속도로 톨게이트가 고장 나서 차단기가 내려갔습니다. 관리자는 우회 국도를 열어줘야 하는데, "혹시 모르니 국도 반대편에서 차가 오는지 20초 지켜보고(Max Age), 안내 방송 15초 하고(Listening), 차선 정리 15초 하고(Learning) 문 열어줄게!"라며 운전자들을 50초 동안 멍하니 서 있게 만드는 융통성 없는 시스템입니다.
📢 섹션 요약 비유: STP의 50초 컨버전스는 수술실에서 심장이 멈춘 환자(장애)를 살릴 때, CPR(심폐소생술)을 바로 하지 않고 **"안전 규정 매뉴얼북을 50초 동안 정독한 뒤에야 제세동기를 켜는 지나치게 신중한 의사"**와 같습니다. 환자(데이터)는 이미 죽어버립니다.
Ⅱ. 타이머 계산법과 장애 시나리오별 지연 (Deep Dive)
1. STP의 3대 핵심 타이머
- Hello Time (2초): 대장(Root) 스위치가 "나 살아있다"라고 생존 엽서를 뿌리는 간격.
- Max Age (20초): "죽었나?" 판단하는 인내심의 한계. 20초 동안 엽서가 안 오면 대장이 죽었거나 선이 끊어졌다고 확정 짓는다.
- Forward Delay (15초): Listening에서 Learning으로, Learning에서 Forwarding으로 넘어갈 때 눈치 보며 기다리는 깐깐한 대기 시간. (총 30초 소요)
2. 시나리오 A: 직접 연결된 링크의 장애 (Direct Link Failure)
내 스위치에 꽂혀있던 메인 선이 내 눈앞에서 "툭" 하고 뽑혔다. 스위치는 센서가 꺼지는 것을 바로 감지하므로 20초(Max Age)를 멍청하게 기다릴 필요가 없다. 즉시 내가 막아두었던(Blocking) 예비 포트를 연다. 하지만 안전 확인을 위해 Listening(15초)과 Learning(15초)은 얄짤없이 거쳐야 한다. ▶ 총 복구 시간 = 30초 (15 + 15)
3. 시나리오 B: 간접 링크 장애 (Indirect Link Failure)
내 스위치에 꽂힌 선은 정상인데, 저 멀리 윗동네에 있는 스위치들 사이의 허브 선이 끊어졌다(내 센서엔 불이 들어와 있음). 이때는 윗동네에서 오던 BPDU 엽서가 멈춘다. 나는 내 선은 정상이니 "엽서가 밀리나?" 하며 무려 20초(Max Age)를 꼼짝 않고 기다린다. 20초가 지나서야 "아! 윗동네 선이 끊어졌구나!" 깨닫고 예비 포트를 열 준비(Listening 15초 + Learning 15초)를 시작한다. ▶ 총 복구 시간 = 50초 (20 + 15 + 15)
┌─────────────────────────────────────────────────────────────┐
│ 간접 장애 시 50초 컨버전스 타임라인 │
├─────────────────────────────────────────────────────────────┤
│ │
│ T=0초 : 윗동네 허브 선로 단절 (내 포트는 Link-up 상태) │
│ │ │
│ │ (Max Age 타이머 작동: BPDU 안 오나? 기다려보자) │
│ ▼ │
│ T=20초 : "20초 지났다! 윗동네 죽었네! 내 예비 포트 열어라!" │
│ [ Blocking ──▶ Listening 진입 ] │
│ │ │
│ │ (유세 및 눈치 보기 15초) │
│ ▼ │
│ T=35초 : [ Listening ──▶ Learning 진입 ] │
│ │ │
│ │ (지도 그리기 15초) │
│ ▼ │
│ T=50초 : [ Learning ──▶ Forwarding 진입 ] │
│ 통신 정상화 완료! 하지만 50초 동안 회사 인터넷은 끊김! │
│ │
└─────────────────────────────────────────────────────────────┘
📢 섹션 요약 비유: 직접 장애가 **"내 눈앞에서 차 사고가 나서 즉시 다른 길로 우회(30초)"**하는 것이라면, 간접 장애는 **"저 산 너머에서 사고가 나서 20초 동안 라디오(BPDU)를 듣고 나서야 우회(총 50초)"**를 결심하는 답답한 상황입니다.