라디아 펄만을 만나보고 스패닝 트리 프로토콜이 어떻게 이더넷 루프를 방지하고 중복성을 제공하며 대규모 네트워크를 안정적이고 신뢰할 수 있게 만들었는지 알아보세요.

이더넷은 처음엔 같은 건물 안의 컴퓨터들을 연결하는 단순한 수단이었습니다. 사무실, 캠퍼스, 데이터센터로 확장되면서 기대치는 변했습니다: 로컬 네트워크는 단순한 ‘있으면 좋은 것’이 아니라 이메일, 파일 공유, 프린터, 전화, 궁극적으로는 비즈니스 워크플로의 배관이 되었습니다. 그 배관이 고장나면 위쪽의 모든 것이 함께 실패합니다.
네트워크 설계자들은 또한 중요한 신뢰성 교훈을 배웠습니다: 장치 사이에 경로가 하나뿐이라면 케이블 하나나 스위치 한 대의 고장이 전체 구역을 다운시킬 수 있습니다. 명백한 해결책은 중복성—여분의 링크와 여분의 스위치를 두는 것입니다.
그러나 이더넷의 레이어 2에서 중복성은 위험한 부작용을 동반합니다: 루프입니다.
라디아 펄만은 스패닝 트리 프로토콜(STP)을 설계했습니다. 이 메커니즘은 이더넷 네트워크가 루프로 인해 마비되지 않으면서 중복성을 가질 수 있게 합니다. 그녀의 기여는 ‘파이프를 더 크게 만든 것’이 아니라, 스위치들이 분산 방식으로 조정하고 안전한 포워딩 구조에 합의하며 토폴로지 변화에 자동으로 적응할 수 있게 한 실용적인 방법이었습니다.
STP는 없거나 잘못 구성되었을 때에만 눈에 띄는 종류의 시스템입니다. 제대로 작동할 때는 특별해 보이지 않습니다: 트래픽은 흐르고 링크는 유지되며 네트워크는 장애를 견딥니다. STP는 루프를 방지하기 위해 필요한 만큼의 경로만 조용히 차단하고, 활성 경로가 끊어지면 대안을 준비해둡니다.
우리는 문제를 실감나게 만들기 위해 이더넷 루프가 어떻게 보이고 왜 폭풍과 정전을 일으키는지 보여줄 것입니다. 그런 다음 STP의 핵심 아이디어—중복성은 유지하되 루프를 제거하는 방법—를 설명하고, 스위치들이 어떤 링크를 포워딩하고 어떤 링크를 대기시킬지 어떻게 결정하는지 쉬운 용어로 설명하겠습니다. 마지막에는 STP가 레이어 2 스위칭의 기초가 된 이유와 이더넷이 초기 사무실 환경을 훨씬 넘어 확장된 지금도 펄만의 설계가 왜 중요한지에 대한 직관적 모델을 가지게 될 것입니다.
초기 이더넷 네트워크는 종종 작고 단순했습니다: 공유 세그먼트에 연결된 몇 대의 기기, 또는 세그먼트를 연결하는 몇 대의 스위치(또는 옛 용어로 브리지)였습니다. 케이블 하나가 뽑히면 사람이 알아차렸지만 실패 원인은 이해하기 쉬웠습니다.
조직이 더 많은 방, 층, 건물을 추가하면서 네트워크는 깔끔한 청사진처럼 자라지 않았습니다. 살아있는 유기체처럼 자랐습니다: 새로운 스위치 여기 하나, ‘긴급’ 케이블 포설 저기 하나, 임시 해결책이 조용히 영구화되는 식이었습니다.
네트워크가 이런 식으로 확장되면 실용적 이유로 추가 링크가 생깁니다:
개별적으로는 각 변경이 무해해 보일 수 있습니다. 집합적으로는 같은 스위치 사이에 여러 경로가 생길 수 있습니다.
중복성은 가동 시간을 높여주기 때문에 바람직합니다. 하나의 링크가 실패하면 트래픽은 다른 경로를 택해 사용자는 계속 일할 수 있습니다.
하지만 레이어 2(스위칭)에서는 이더넷이 자동으로 한 경로를 선택하고 다른 경로를 무시하도록 설계되지 않았습니다. 스위치는 학습한 주소를 기반으로 프레임을 포워딩하고, 조정 제어가 없으면 여러 경로가 루프를 형성할 수 있습니다.
핵심 긴장점은 이겁니다: 더 많은 케이블이 네트워크를 우연히 망가뜨릴 수 있습니다. 안전을 위해 추가한 연결이 트래픽이 무한히 순환하는 조건을 만들 수 있습니다. 스패닝 트리는 이중의 이익—중복성 유지와 우발적인 전체 네트워크 정전 방지—을 동시에 달성하도록 고안되었습니다.
이더넷 스위칭 루프는 동일한 스위치들 사이에 두 개 이상의 활성 레이어 2 경로가 있을 때 발생합니다. 종종 누군가가 ‘백업’ 케이블을 추가했거나 두 업링크를 같은 네트워크에 꽂았거나 스위치들을 제어 메커니즘 없이 링으로 연결했을 때 생깁니다. 레이어 2에는 홉 제한이 없으므로 프레임은 무한히 순환할 수 있습니다.
일부 트래픽은 플러딩되어야 합니다: 브로드캐스트(예: ARP 요청)와 ‘목적지 모름’ 프레임(스위치가 아직 MAC 주소에 해당하는 포트를 모를 때). 루프가 있으면 플러딩된 프레임은 복사되어 루프를 돌아다니며 계속 복제됩니다.
간단한 예: PC가 ARP로 “10.0.0.5는 누구냐?”고 물어봅니다(브로드캐스트). 루프가 있으면 각 스위치는 브로드캐스트를 여러 포트로 반복 전송하고, 반복된 복사본이 다른 스위치들에 다시 도착합니다. 매우 빠르게 링크와 스위치 CPU는 중복 처리로 대부분의 시간을 소비하게 되어 실제 트래픽을 처리할 여력이 없어집니다.
스위치는 출발지 MAC 주소가 어떤 포트로 들어오는지를 보고 장치의 위치를 학습합니다. 루프에서는 동일 장치의 프레임이 몇 밀리초 차로 다른 포트에서 도착할 수 있습니다. 스위치는 MAC의 위치를 계속 ‘바꿔치기’하며 테이블을 반복 갱신합니다. 그 결과 트래픽이 잘못된 포트로 포워딩되었다가 플러딩되고 다시 잘못 학습되는 현상이 발생합니다.
이러한 효과는 사람들이 인지하는 증상으로 이어집니다: 갑작스러운 네트워크 전반의 느려짐, 간헐적 연결 끊김, 전화 통화 끊김, ‘작동하지만 사용할 수 없는’ Wi‑Fi, 때로는 스위치가 포화되어 응답을 멈추는 완전한 정전까지. 단 하나의 우연한 패치 케이블이 연결된 두 장치 이상을 다운시킬 수 있습니다.
이더넷의 복원력은 스위치들 사이에 ‘하나 이상의 가능한 경로’가 있다는 데서 옵니다. 케이블이 끊어지면 트래픽이 다른 경로를 타고 사용자들이 계속 작업할 수 있습니다. 문제는 여분의 경로가 우연히 원을 만들 수 있다는 점—그리고 이더넷 프레임에는 순환을 멈추게 하는 ‘TTL’(time to live) 필드가 없습니다.
스패닝 트리 프로토콜(STP)은 간단한 약속으로 이를 해결합니다: 중복 링크는 물리적으로 유지하되 일부를 논리적으로 비활성화해서 활성 네트워크가 루프 없는 트리를 이루도록 합니다.
도시에 구급차가 폐쇄 구간이 있어도 모든 지역에 도달할 수 있게 추가 도로를 만든다고 생각해 보세요. 도시가 규칙 없이 모든 도로를 열면 운전자들이 같은 블록을 계속 도는 혼란스러운 순환로가 생길 수 있습니다.
STP는 교통 통제와 같습니다:
펄만 설계의 핵심은 중앙 컨트롤러가 모든 스위치에 무엇을 할지 지시하지 않는다는 점입니다. 각 스위치가 참여하여 작은 메시지를 교환하고 독립적으로 어떤 링크가 포워딩하고 어떤 링크가 예비인지 같은 결론을 도출합니다.
이것이 STP를 실제 네트워크에서 실용적으로 만드는 이유입니다: 스위치를 추가하거나 링크를 제거하거나 장애가 발생해도 네트워크는 안전한 포워딩 패턴으로 수렴합니다.
올바르게 구현하면 STP는 보통 상충하는 두 가지 결과를 제공합니다:
스패닝 트리 프로토콜(STP)의 임무는 하나입니다: 중복성을 유지하면서 트래픽이 루프 없이 흐르도록 하는 것. 이를 위해 모든 스위치가 그 순간에 사용할 ‘최고의’ 링크 집합—스패닝 트리—에 합의하고 여분 링크를 대기 상태에 둡니다.
STP는 먼저 루트 브리지를 선출합니다. 루트 브리지는 전체 네트워크의 기준점입니다. 가장 낮은 우선순위 값(또는 기본값)과 고유 식별자를 합친 값이 가장 낮은 스위치가 선택됩니다.
각 스위치는 ‘루트로 가는 내 최적 경로는 무엇인가?’를 묻습니다. STP는 각 링크에 **경로 비용(path cost)**을 할당하고(더 빠른 링크가 보통 더 낮음) 스위치는 가능한 경로의 비용을 합산해 최저 총비용 경로를 선택합니다.
비루트 스위치가 루트로 가는 최적 경로에 사용하는 포트는 그 스위치의 루트 포트가 됩니다.
스위치 간의 각 공유 연결(세그먼트)에 대해 STP는 루트로 향하는 최선의 경로를 광고하는 쪽의 포트를 디자이네이티드 포트로 정해 해당 세그먼트에서 트래픽을 포워딩하도록 합니다.
루트 포트나 디자이네이티드 포트로 선택되지 않은 포트는 차단(blocking) 상태(또는 최신 변형에서는 포워딩 아님 상태)에 들어갑니다. 차단은 케이블을 제거하거나 중복성을 없애는 것이 아닙니다—단지 해당 포트가 일반 이더넷 프레임을 포워딩하지 못하게 해서 루프가 형성되지 않게 합니다. 활성 링크가 실패하면 STP는 백업 경로를 언블락해 네트워크 연결을 유지할 수 있습니다.
네 개의 스위치로 구성된 아주 작은 네트워크를 예로 들겠습니다:
STP는 먼저 단일 기준점을 선택합니다: 루트 브리지. 각 스위치는 브리지 ID를 광고하고 가장 낮은 ID가 승리합니다.
예를 들어 S1이 가장 낮은 브리지 ID를 가졌다고 가정하면 모두가 S1을 루트로 인정합니다.
비루트 스위치는 각각 루트로 가는 최적 경로를 제공하는 포트 하나를 루트 포트로 선택합니다.
각 링크 세그먼트마다 STP는 하나의 쪽을 디자이네이티드 포트로 선택합니다. 루프는 보통 S3–S4 링크에서 끊깁니다. S3가 이미 S2를 통해 루트에 도달한다면 STP는 S3의 S4 쪽 포트(또는 동률 규칙에 따라 S4의 S3 쪽 포트)를 차단 상태로 둘 수 있습니다.
결과: 모든 케이블은 그대로 꽂혀 있지만, 어떤 두 지점 사이에도 하나의 활성 경로만 존재해 루프가 사라집니다.
활성 경로가 끊기면(예: S2–S3가 다운) STP는 다시 평가를 수행합니다. 이전에 차단된 S3–S4 링크가 포워딩으로 전환되어 S3 → S4 → S1 경로로 연결을 복원할 수 있습니다.
이 변화는 즉시 일어나진 않습니다; STP는 안전하게 포워딩 상태를 업데이트하기 위해 시간(수렴 시간)이 필요합니다.
스패닝 트리는 네트워크의 모든 스위치가 같은 규칙을 따를 때만 잘 작동합니다. 현실 네트워크는 다중 벤더 환경인 경우가 많아 표준이 중요합니다: 한 브랜드의 루프 방지 기능이 다른 브랜드의 것과 통신할 수 없다면 중복성은 정전으로 바뀔 수 있습니다.
전통적인 STP는 IEEE 802.1D에 정의되어 있습니다. 조항을 모두 읽을 필요는 없고 핵심은 802.1D가 서로 다른 벤더들이 루트 브리지를 선출하고 경로 비용을 계산하며 어떤 포트를 포워딩/차단할지에 대해 공통 언어를 제공한다는 점입니다.
나중에 RSTP나 MSTP 같은 최신 변형으로 옮겨가더라도 업그레이드가 가능한 이유는 동작이 표준화되어 있어 장치들이 추측하지 않고 협조할 수 있기 때문입니다.
스위치들은 **BPDU(Bridge Protocol Data Unit)**라는 작은 제어 프레임을 통해 조정합니다. BPDU는 스위치들이 루트가 누구인지, 루트까지의 거리(비용), 타이밍 정보를 주고받는 STP의 ‘헬로’ 메시지입니다.
BPDU는 지속적으로 교환되기 때문에 STP는 변화에 반응할 수 있습니다. 링크가 끊기면 BPDU 대화도 바뀌고 스위치들은 재수렴해 이전에 차단된 경로를 열 수 있습니다.
실무에서 한 가지 골칫거리는 벤더들이 같은 설정을 서로 다른 이름으로 부르는 경우입니다. “포트 비용(port cost)”, “엣지/PortFast”, “bpdu guard” 같은 설정은 메뉴 상에서 다른 말로 나타날 수 있습니다. 기본 STP 개념은 일관되니, 인터페이스 어휘를 802.1D의 목적에 맞춰 번역해서 이해하는 것이 도움이 됩니다.
클래식 STP(IEEE 802.1D)는 루프 문제를 해결했지만 링크나 스위치 장애 후 ‘치유’되는 속도가 느릴 수 있었습니다. 이유는 간단합니다: STP는 조심스러웠습니다. 포트는 바로 포워딩을 시작하지 않고 시간 기반 상태(차단 → 리스닝 → 학습 → 포워딩)를 거쳤습니다. 기본 타이머 설정으로 재수렴에는 수십 초(보통 ~30–50초)가 걸렸고, 음성 통화가 끊기고 애플리케이션이 타임아웃 되는 등 문제가 발생하기에 충분한 시간입니다.
Rapid Spanning Tree Protocol(RSTP, IEEE 802.1w)은 동일한 목표—중복성은 유지하되 루프는 방지—를 유지하면서 스위치들이 합의에 도달하는 방식을 바꿉니다.
긴 고정 타이머를 기다리는 대신 RSTP는 스위치 간 더 빠른 핸드셰이크를 사용해 어떤 포트가 안전하게 포워딩할 수 있는지 확인합니다. 또한 일부 포트는 즉시 전환될 수 있음을 인식합니다:
쉽게 말해: RSTP는 여전히 올바른 링크를 차단하지만, 변화마다 최악의 경우로 가정하지 않음으로써 회복 속도를 높입니다.
네트워크가 커지면서 모든 VLAN에 대해 단일 트리를 사용하는 것은 한계가 생겼습니다. 특히 VLAN이 많고 토폴로지가 복잡할 때 그렇습니다. Multiple Spanning Tree Protocol(MSTP, IEEE 802.1s)은 여러 스패닝 트리 인스턴스를 만들고 VLAN 그룹을 각 인스턴스에 매핑할 수 있게 합니다.
이를 통해:
STP → RSTP → MSTP로의 흐름에서 핵심 개선점은 일관적입니다: 중복성 유지, 루프 방지, 더 빠르고 예측 가능한 포워딩 복원.
스패닝 트리의 가장 과소평가된 이점은 ‘여분의 케이블과 스위치’를 예측 가능하게 신뢰성으로 바꾸는 능력입니다. 엔터프라이즈 규모—많은 통신실, 많은 액세스 스위치, 끊임없는 이동/추가/변경—에서는 레이어 2 중복성이 선물이 될 수도, 함정이 될 수도 있습니다. STP는 그것이 전자일 가능성을 높여줍니다.
대규모 네트워크는 보통 단일 링크가 끊겨서 정지하지 않습니다; 복구 과정이 엉망이어서 실패합니다. STP는 변화가 있을 때 네트워크가 반응하는 통제된 방법을 제공함으로써 도움이 됩니다:
많은 조직은 토폴로지가 루프 프리라고 생각하더라도 STP를 활성화 상태로 유지합니다. 이유는 실용적입니다: 사람은 실수하고 문서는 흐려지며 예기치 않은 레이어 2 경로가 생깁니다. STP가 켜져 있으면 우연한 여분의 패치 케이블이 건물 전체 정전으로 이어질 가능성보다 포트 차단으로 끝날 가능성이 높아집니다.
현대 데이터센터는 활성/활성 대역폭을 얻기 위해 라우팅된 리프–스파인 구조(레이어 3)나 특정 레이어 2 멀티패스 기술을 선호합니다. 그렇더라도 STP(또는 RSTP/MSTP 같은 변형)는 캠퍼스 네트워크, 엣지 세그먼트, 순수 레이어 3가 실용적이지 않은 환경에서 여전히 널리 사용됩니다.
대규모에서 STP의 진정한 성과는 기술적 측면 못지않게 운영적입니다: 일반 팀이 관리 가능한 방식으로 중복성을 운영할 수 있게 만들었다는 점입니다.
스패닝 트리는 개념상 간단합니다—레이어 2 루프를 방지하면서 백업 경로를 유지—하지만 몇 가지 지속적인 오해로 인해 사람들이 STP를 비활성화하거나 잘못 구성하거나 ‘최적화’하다가 정전을 초래하곤 합니다.
현대 네트워크가 레이어 3 라우팅, MLAG, 오버레이 설계에 의존해 클래식 IEEE 802.1D의 필요성을 줄인 것은 사실입니다. 그러나 STP(혹은 RSTP/MSTP 같은 최신형)는 이더넷이 우연히 루프를 만들 수 있는 어디서든 안전망을 제공합니다: 액세스 스위치, 임시 이벤트 네트워크, 실험실, 소규모 지사 등 누군가가 두 포트를 서로 연결할 수 있는 환경에서 특히 유용합니다.
STP를 비활성화하면 사소한 배선 실수가 전체 VLAN을 다운시키는 브로드캐스트 스톰으로 이어질 수 있습니다.
차단된 포트는 ‘죽은’ 것이 아닙니다. 검증된 대기 경로입니다. STP는 안정성을 위해 일부 용량을 의도적으로 포기합니다: 포워딩 링크가 실패하면 차단된 링크가 사람 손을 빌리지 않고 새 경로가 될 수 있습니다.
팀들은 때때로 STP를 끄고 모든 링크를 포워딩하게 하거나 VLAN을 평탄화하거나 언매니지드 스위치를 추가해 모든 링크를 활성화하려 합니다. 이는 효율적으로 보일 수 있지만, 첫 번째 루프가 생기면 네트워크가 녹아버립니다.
중복성은 설계되어 있을 때만 도움이 됩니다. 스위치들 사이에 추가 횡단 링크를 계획 없이 추가하면 가능한 루프 시나리오가 늘어나 STP 동작이 예측하기 어려워집니다. 그 결과 예기치 않은 트래픽 경로, 차단된 업링크, 또는 장애 후 더 긴 재수렴 시간이 발생할 수 있습니다.
STP가 활성화되어 있어도 잘못된 설정은 심각한 문제를 일으킬 수 있습니다:
요점: STP는 단순히 체크박스가 아니라 제어 평면입니다. 의도를 문서화하고 변경을 광범위하게 적용하기 전에 검증하세요.
스패닝 트리 문제는 종종 ‘네트워크가 느리다’는 형태로 먼저 나타나고 누군가가 레이어 2 문제를 의심하기 전까지는 모르는 경우가 많습니다. 몇 가지 집중 점검으로 수시간의 추적 작업을 줄일 수 있습니다.
이더넷 루프나 STP 불안정이 나타나면 보통 다음을 보게 됩니다:
기본에 충실하세요:
좋은 STP 위생은 주로 프로세스의 문제입니다:
STP 외의 네트워크 문제 진단을 위한 광범위한 체크리스트는 /blog/network-troubleshooting-basics를 참조하세요.
STP는 ‘조용한 인프라’의 좋은 예이며 인간적 요인—불명확한 의도, 문서 없는 배선, 일관성 없는 구성, 애드혹 트러블슈팅—으로 인해 실패하는 경향이 있습니다. 위험을 줄이는 실용적 방법 중 하나는 STP 운영에 관한 가벼운 내부 도구와 런북을 구축하는 것입니다.
Koder.ai를 사용하면 팀이 간단한 채팅으로 스위치 출력물을 수집해 현재 루트 브리지를 하이라이트하거나 예상치 못한 차단 포트를 표시하거나 토폴로지 변경 이벤트를 추적하는 작은 웹 대시보드나 유틸리티를 빠르게 코딩할 수 있습니다. Koder.ai는 소스 코드 내보내기, 앱 배포/호스팅(롤백과 스냅샷 포함)을 지원하므로 일회성 스크립트를 개인 랩탑에 두는 대신 유지 관리되는 내부 서비스로 전환하기에 편리합니다.
라디아 펄만의 스패닝 트리 작업은 가장 중요한 인프라가 항상 화려하게 보이지는 않는다는 사실을 상기시킵니다—그저 혼란을 방지합니다. 스패닝 트리는 이더넷이 중복 링크를 안전하게 사용할 수 있게 해 ‘백업 경로 추가’를 안전한 기본값으로 만들었습니다. 이 전환은 기업, 캠퍼스, 데이터센터에서 더 크고 탄력적인 레이어 2 네트워크를 가능하게 했습니다.
STP는 케이블이 잘못 꽂히거나 스위치가 재부팅되거나 링크가 불안정해질 것을 전제로 설계되었습니다. 운영자가 실수를 하지 않기를 바라기보다 실수를 흡수하고 안전한 상태로 다시 수렴할 수 있는 시스템을 만든 것입니다. 이 교훈은 네트워킹을 넘어 넓게 적용됩니다: 실패 모드를 1순위 요구사항으로 다루세요.
스패닝 트리는 일부 링크를 의도적으로 차단해 전체 네트워크를 안정되게 유지합니다. 그 ‘낭비된 용량’은 예측 가능한 동작을 위한 트레이드오프입니다. 좋은 시스템은 종종 여유를 남기고—여분의 시간, 추가 검사, 가드레일—대규모 재앙을 피하는 것이 단 몇 퍼센트의 이용률을 더 뽑는 것보다 가치있습니다.
STP가 작동하는 이유는 모든 스위치가 같은 분산 규칙을 따르고 작은 제어 메시지를 교환해 루프 없는 토폴로지에 합의하기 때문입니다. 모든 변화마다 운영자가 수동으로 포트를 차단할 필요가 없습니다. 많은 구성요소가 협력해야 할 때, 안전한 동작을 가장 쉽게 만드는 프로토콜과 기본값에 투자하세요.
몇 가지 포인트만 기억한다면 이들을 기억하세요: 중복성을 구축하라, 인간 실수를 가정하라, 그리고 ‘안전한 선택’을 자동화하라. 이 사고방식이 스패닝 트리가 조용한 필수가 된 이유입니다.
더 쉬운 네트워킹 기초를 원하면 /blog를 둘러보세요.
레이어 2에서 스위치들이 동일 세그먼트 사이에 둘 이상의 활성 경로를 가질 때 발생하는 순환입니다. 이더넷 프레임에는 레이어 2에서 홉 제한이 없어 브로드캐스트와 목적지를 모르는 유니캐스트가 무한히 순환하며 증폭되어 링크와 스위치 CPU를 압도할 수 있습니다.
중복 링크는 대체 경로를 제공하지만, 조정이 없으면 스위치들이 모든 경로에서 포워딩을 시도합니다. 이로 인해 브로드캐스트 프레임이 반복적으로 복제되어 브로드캐스트 스톰과 MAC 학습 불안정이 발생하고, 종종 단 하나의 추가 패치 케이블로도 네트워크 전체가 다운될 수 있습니다.
STP는 중복 링크를 물리적으로 유지하되 일부 포트를 논리적으로 비활성화해서 활성 토폴로지는 루프가 없는 트리가 되도록 합니다. 활성 경로가 실패하면 STP는 이전에 차단된 포트를 포워딩으로 전환해 연결을 복원할 수 있습니다.
**루트 브리지(root bridge)**는 전체 레이어 2 도메인의 기준점 역할을 하는 스위치입니다. 가장 낮은 브리지 ID(우선순위 + 고유 식별자)를 가진 스위치가 루트가 됩니다. 의도한 코어/배포 스위치를 루트로 선정하면 트래픽 경로가 예측 가능해집니다.
각 비루트 스위치는 루트로 가는 최저 총 경로 비용을 제공하는 포트 하나를 **루트 포트(root port)**로 선택합니다. **경로 비용(path cost)**은 링크 속도에 따라 달라지며, 빠른 링크일수록 일반적으로 비용이 낮습니다. 동점 상황에서는 ID 기반의 규칙으로 결정됩니다.
스위치 간의 각 세그먼트마다 STP는 그 세그먼트에서 트래픽을 포워딩할 단 하나의 **디자이네이티드 포트(designated port)**를 선택합니다(루트로 가는 최적 경로를 광고하는 쪽). 루트 포트나 디자이네이티드 포트가 아닌 포트는 차단/폐기(blocking/discarding) 상태가 되어 루프를 끊습니다.
차단 상태의 포트는 일반 사용자 트래픽 프레임을 포워딩하지 않습니다. 따라서 해당 포트가 루프에 참여하지 못하게 됩니다. 케이블은 여전히 물리적으로 연결되어 있고 STP 제어 트래픽은 통과할 수 있으며, 토폴로지가 변경되면 그 포트가 포워딩으로 승격될 수 있습니다.
BPDUs(Bridge Protocol Data Units)는 스위치들이 루트, 루트까지의 비용, 타이밍 정보 등 토폴로지 정보를 교환하는 STP 제어 프레임입니다. BPDUs를 계속 주고받음으로써 스위치들은 장애나 변화에 대응해 안전한 루프 없는 토폴로지로 다시 수렴할 수 있습니다.
클래식 STP(IEEE 802.1D)는 보수적인 타이머와 포트 상태 전이를 사용해 재수렴에 수십 초가 걸릴 수 있었습니다. RSTP(IEEE 802.1w)는 더 빠른 핸드셰이크와 급속 전이를 도입해 특히 엣지/PortFast 포트에서 복구 시간을 크게 줄였습니다.
빠른 점검 목록: