핵심 인사이트 (3줄 요약)
- 본질: RSTP (Rapid Spanning Tree Protocol, 802.1w)는 구형 STP(802.1D)의 최악의 단점인 '50초의 복구 지연'을 완벽하게 뜯어고쳐, 링크 장애가 발생했을 때 불과 1~2초 만에 통신을 복구(수렴)해 내는 현대 스위치의 표준 알고리즘이다.
- 사전 계산과 합의 (Sync): 50초씩 타이머를 세며 가만히 눈치만 보던 구식 방식과 달리, RSTP는 포트들끼리 "제안(Proposal)과 합의(Agreement)"라는 능동적인 악수를 통해 밀리초 단위로 길을 즉각 뚫어버린다.
- 대체 포트의 미리 준비 (Alternate Port): 구형 STP는 포트가 죽으면 그때서야 새 길을 찾기 시작했지만, RSTP는 대장(Root)으로 가는 메인 길(RP) 외에, 2순위 우회로를 미리 계산해 둔 **대체 포트(Alternate Port)**를 곁에 두고 있다가, 메인이 죽는 즉시 스페어 포트를 1초 만에 RP로 승격시켜 끊김을 막는다.
Ⅰ. 개요 및 필요성 (Context & Necessity)
-
개념: 기존의 거북이 같은 802.1D 스패닝 트리를 대체하기 위해 IEEE 802.1w로 발표된 "빠른(Rapid)" 스패닝 트리 규격. (현재는 802.1D 표준 자체가 802.1w로 흡수 통합됨)
-
필요성: 1990년대까진 50초 끊기는 건 커피 한 잔 마시고 오면 되는 일이었다. 하지만 VoIP(인터넷 전화), 실시간 온라인 게임, 화상 회의, 금융 트레이딩 서버 시대가 도래하며 단 3초의 끊김조차 회사 수억 원의 손실을 낳게 되었다. **"안전을 담보하면서도 타이머를 기다리지 않고 즉시 길을 열어야 한다"**는 강박증 수준의 고속 복구 니즈가 RSTP를 탄생시켰다.
-
💡 비유: 길을 막고 있던 톨게이트 차단기가 열리는 속도입니다. 구형 STP가 앞차가 지나간 뒤 무조건 **"속으로 50초를 센 뒤에야 수동으로 바리케이드를 올려주는 할아버지 요금소"**라면, RSTP는 차가 다가오는 즉시 센서로 인식하고 **"1초 만에 착! 하고 열리는 하이패스 요금소"**입니다.
📢 섹션 요약 비유: RSTP는 사고가 나면 그때서야 대책 회의를 여는 관료주의(STP)를 혁파하고, **"플랜 B(대체 포트)를 미리 결재받아 책상 서랍에 넣어뒀다가, 사고 즉시 서류를 꺼내 1초 만에 실행하는 초고속 결재 시스템"**입니다.
Ⅱ. RSTP의 초고속 수렴 비결 (Deep Dive)
1. 상태(State)의 축소와 통합
RSTP는 기존 STP의 쓸데없이 복잡했던 5가지 포트 상태를 3가지로 압축해 직관성을 높였다.
- Disabled, Blocking, Listening ──▶ Discarding (차단/버림): 데이터를 보내지도 않고, MAC도 안 배우는 그냥 차단 상태로 통폐합.
- Learning ──▶ Learning (학습): MAC 주소만 배우는 상태 (유지).
- Forwarding ──▶ Forwarding (전송): 데이터 정상 전송 (유지).
2. Proposal / Agreement (제안과 동의 메커니즘)
구형 STP는 포트를 열기 위해 Listening(15초), Learning(15초)의 '고정 타이머'를 하염없이 기다렸다. 하지만 RSTP는 스위치 양단이 서로 능동적으로 대화한다.
- 스위치 A: "야, 우리 사이 링크 방금 꽂혔네? 이거 내가 포워딩(DP)으로 열 테니까 동의해? (Proposal)"
- 스위치 B: (루프 안 생기는 거 바로 계산해 봄) "ㅇㅋ! 문제없어 동의함! (Agreement)"
- 결과: 이 대화가 끝나자마자 타이머 대기 없이 1~2초 내에 포트가 Forwarding으로 확 열린다(Sync).
┌─────────────────────────────────────────────────────────────┐
│ RSTP의 Proposal/Agreement 과정 │
├─────────────────────────────────────────────────────────────┤
│ │
│ [ 스위치 A ] [ 스위치 B ] │
│ │ 1. 야 나랑 문 열자! (Proposal BPDU 발송) │ │
│ ├────────────────────────────────────────▶ │ │
│ │ │ │
│ │ 2. (스위치 B는 자기 뒷문들을 싹 닫아서 루프를 막은 뒤) │ │
│ │ ㅇㅋ 좋아! 문 연다! (Agreement BPDU 발송) │ │
│ │ ◀────────────────────────────────────────┤ │
│ │ │ │
│ [ Forwarding 상태로 즉시 전환! (타이머 30초 대기 없음!) ] │
│ │
└─────────────────────────────────────────────────────────────┘
3. 플랜 B의 상시 준비: Alternate Port와 Backup Port
구형 STP의 Block 포트를 구체적으로 세분화하여 **역할(Role)**을 늘렸다.
- Alternate Port (대체 포트): 대장(Root)에게 가는 1순위 문(RP)이 죽었을 때, 곧바로 RP 자리를 승계하기 위해 곁에서 대기 중인 2순위 문. RP가 뽑히자마자 Alternate 포트는 1초 만에 차단을 풀고 Forwarding으로 바뀐다. (50초 대기 없음)
- Backup Port (백업 포트): 하위 네트워크로 내려보내는 1순위 문(DP)이 죽었을 때를 대비한 2순위 백업 문. (실무에선 잘 쓰이지 않음)
4. BPDU 주체 변경
기존에는 오직 대장(Root)만 2초마다 엽서(BPDU)를 만들고 나머지는 전달만 했다. RSTP에서는 모든 스위치가 각자 능동적으로 2초마다 엽서를 만들어 뿜어낸다. 상대가 3번(6초) 연속 엽서를 안 보내면 "죽었네!" 판단하고 즉시 플랜 B를 가동한다. (과거 20초 기다리던 답답함 해결).
📢 섹션 요약 비유: RSTP의 초고속 복구의 핵심은 **"스페어타이어(Alternate Port)"**입니다. 타이어에 펑크가 났을 때 긴급 출동을 부르고 정비소에 가서 고치는(50초) 것이 아니라, 트렁크에서 이미 빵빵하게 공기가 채워진 스페어타이어를 꺼내 1초 만에 갈아 끼우고 즉시 다시 달리는 혁신입니다.