네트워크를 구축한 후 데이터를 주고받으려 할 때, 목적지가 Broadcast라면, 데이터를 받은 스위치는 그 데이터를 받은 포트을 제외한 모든 포트로 데이터를 재전송합니다.
하지만, 한 스위치로 가는 경로가 두 개 이상이라면 어떤 일이 일어날까요?
위 그림과 같이 계속 모든 포트로 전송하다가 loop에 빠져버리게 됩니다. 그렇게 되면 쓸 데 없는 데이터가 통신 회선을 차지하기 때문에 네트워크 속도가 점점 낮아지다가 먹통까지 일어날 수 있습니다. 이러한 상황을 Broadcast Storm이라고 하는데, 이를 해결하기 위해 STP(Spanning Tree Protocol) 프로토콜을 사용합니다.
STP 사용 준비
STP를 사용하기 위해선 '우선순위와 MAC주소를 합친 값', 다시 말해 Bridge ID와 '1000Mbps를 대역폭으로 나눈 정수 값', 다시 말해 Path Cost를 알아야 합니다. 결과가 소수점으로 나오는 값은 컴퓨터에서 처리하기에 복잡하기 때문에 정수 값을 사용합니다.
STP 사용 규칙
1. 네트워크 당 하나의 루트 브릿지를 갖는다.
root bridge는 스위치 중에서 가장 낮은 Bridge ID 값을 가지는 스위치입니다. 루트 브릿지가 아닌 스위치는 비 루트 브릿지라고 부르며, 쉽게 브릿지가 스위치라고 생각하시면 됩니다.
2. 비 루트 브릿지는 하나의 루트 포트를 갖는다.
루트 포트는 해당 비 루트 브릿지에서 루트 브릿지로 가장 빨리 갈 수 있는 포트를 Path Cost로 구한 것입니다. 루트 브릿지로 가는 Path Cost가 가장 적게 드는 포트가 루트 포트가 됩니다.
3. 세그먼트 당 하나의 Designated Port를 갖는다.
세그먼트란 의도와 상관없이 회선에 의해 신호를 받는 범위, 쉽게 말해 회선 하나를 뜻합니다. Designated Port는 가장 작은 루트 Bridge ID, 루트 스위치로 가는 Path Cost, Bridge ID, 포트 ID를 가진 포트입니다. 만약 어떠한 포트로도 선택되지 않은 스위치의 포트가 있다면, 그 포트는 Non-Designated Port가 됩니다.
규칙이 모두 적용되었으면, 스위치들 장치 간의 최적 경로가 계산되기 때문에, 처음 계속 돌고 돌았던 루프 구조가 트리 구조로 변경이 됩니다. 따라서 Broadcast Strom같은 무한루프가 발생하지 않게 됩니다.
'Nefus' 카테고리의 다른 글
NEFUS_Network(4)_202031003 (0) | 2023.10.03 |
---|---|
NEFUS_Network(3)_20230830 (0) | 2023.08.30 |
NEFUS_Network(2)_20230813 (0) | 2023.08.13 |
NEFUS_Network(1)_20230724 (0) | 2023.07.24 |
Nefus_Arduino_MiNiProject (1) | 2023.06.10 |