사용자(A) -> 서버(B)에 데이터를 보낸다고 생각해보자.
데이터가 생성되면 이 데이터를 서버로 보내기 위해 0과 1 전기적 신호로 바꿔야 한다.
하지만 데이터가 그대로 0과 1로 바뀌는 것이 아닌 순수 데이터에 계층별로 헤더들이 붙어 여러 정보를 포함한 데이터의 0과 1로 이루어진다.
데이터가 생성되는 7계층부터 3계층까지는 PC에서 소프트웨어 적으로 처리된다 이후 NIC카드로 전달되며 NIC카드가 2계층 1계층을 처리하고 랜케이블을 통해 데이터를 전달한다.
L3스위치나 라우터에 직접 랜을 받아서 내 PC에 꼽지 않았다면 내 PC는 같은 네트워크 영역을 포함하고 있는 스위치를 먼저 거치게 될 것이다.
이때 스위치는 어떤 기능을 하는 것일까?
위의 말을 다시 돌아보면 L2스위치란 End Device의 물리적 연결을 담당하는 스위치다.

L2계층의 처리 단위인 프레임이 들어오면 포워딩하는 기능을가지고 있다.
세부 내용은 다음과 같다
프레임을 받는다.프레임에 기재된출발지MAC을MAC Table에 기록하며 테이블을 업데이트한다.목적지MAC을 보고MAC Table에 경로가 있는지 확인한다.- 내가 모르고 있는
MAC이라면 들어온 포트를 제외한 나머지 포트로 포워딩한다.(이를Flooding) 이라고 한다.목적지MAC주소가FFFF:FFFF:FFFF:FFFF이라도Flooding한다.
이런 스위치의 Flooding 특성은 Loop를 발생시킨다.
서로 들어오는 포트를 제외한 나머지포트로 데이터를 흘릴경우 끔찍한 루프가 발생해 CPU자원을 고갈시키고 장비가 제 동작을 못하게 할 것이다.
이거에 대한 해결방안으로 STP가 등장했다.
루프를 방지하기 위해 소프트웨어적으로 선을 Block 시키는 기술이다.
Block할 포트를 정하는 과정은 다음과 같다.
BPDU를 교환한다.Lowest BID가진 브릿지를루트브릿지선정한다루트브릿지의 포트를DP(Designated Port)로 설정한다.루트브릿지로 향하는 가장 낮은 비용의 포트를 선정한다.- 남아있는 각각의 이어진 포트들에서 어디를
Block시킬지 결정한다.- 한 라인에 대한
Block이외의 포트는 자동으로DP로 지정된다.