[Network] Topology
네트워크란?
네트워크란 노드와 링크가 연결되어 있으며 리소스를 공유하는 집합니다. 여기서 노드는 스위치, 리피터 , 라우터 등의 네트워크 장비를 말하고, 링크는 노드를 연결하는 무선, 유선을 의미한다.
성능 측정의 지표: 처리량과 지연시간
네트워크 처리량(Throughput)은 링크를 통해서 보낼 수 있는 단위 시간당 데이터 양을 말한다. 단위는 bps(bits per second)로 초당 전달되는 비트수 라는 의미이다. 이 비트 수는 사용자 수에 따라 증가하는 트래픽, 네트워크 장치 스펙 및 네트워크 장비 간 대역폭 등에 따라 다르다.
대역폭은 주어진 시간당 네트워크 연결을 통해 흐를 수 있는 최대 비트의 수를 의미힌다.
지연시간(Latency)은 노드와 노드 간의 요청을 처리하는 데에 걸리는 시간을 의미하고, 두 장치 사이를 왕복(RTT)하는 데에 걸리는 시간이다. 지연시간은 패킷 크키, 라우터의 패킷 처리 시간 및 성능에 따라 다르다.
네트워크 토폴로지 (Network Topology)
네트워크 토폴로지는 네트워크를 설계할 때 노드와 링크가 어떻게 배치되어 있는지에 대한 네크워크 구성 형태를 의미한다. 병목 현상(Bottleneck)의 원인을 찾을 때, 토폴로지가 중요한 기준이 된다.
트리 토폴로지(Tree Topology) | “무한한 확장, 편리한 네트워크 관리”

트리 모양의 계층 구조로 되어 있어서 계층형이라고도 한다. 새로운 노드를 추가할 때, 기존 노드에 링크만 하나 연결하면 되기 때문에 확장하기 쉽다. 같은 맥락에서 하나의 노드가 문제가 생기면, 같은 계층의 노드에는 영향이 가지 않는다.
하지만, 하위 노드에는 영향을 미칠 수 있다. 특히, 최상위 노드(Root Node)에 문제가 생기면, 전체 네트워크 회선이 통신 불능 상태가 되어 대규모 통신 장애를 야기할 수 있다. 또한 케이블링이 링형이나 버스형에 비해 복잡해 초기 설치 비용이 많이 든다.
버스 토폴로지(Bus Topology) | “단순한 구조, 치명적 단점”

버스형은 하나의 중앙 통신 회선 하나에 여러 개의 노드를 연결하여 사용하는 네트워크 구성을 말하고, 근거리 통신망(LAN, Local Area Network)에 사용한다. 버스구조에서 패킷이 전송되는 방식은 브로드캐스트(Broadcast)방식이다. 과정을 살펴보면 |
- 어떤 노드가 패킷을 보내면, 해당 노드를 기준으로 왼쪽, 오른쪽으로 중앙 회선을 타고 퍼져 전체 노드에 전달된다.
- 각 노드는 패킷의 수신 주소를 확인해, 자신의 주소가 적힌 패킷만 받아들인다.
- 회선 양 끝에 있는 종단 장치(Terminator)가 전달이 끝난 신호가 반사되어 돌아오는 것을 흡수해 소멸시킨다.
버스형의 가장 큰 단점은 중앙 회선이 문제가 생기면, 네트워크 전체에 영향을 준다. 데이터가 흐르는 회선이 1개이므로 한 번에 1개의 데이터만 보낼 수 있다. 따라서 두 개 이상의 노드에서 동시에 데이터를 보내면 충돌이 발생해 성능이 떨어진다.
이때, CSMA/CD 방식을 적용한다. 회선이 사용중인지 먼저 살피고, 비어 있을 때 패킷을 보낸다. 만약 동시에 보내 충돌이 발생하면, 이를 감지하고 일정시간 대기후에 다시 전송하는 방식으로 흐름을 제어한다.
또한 모든 노드가 전송하고 있는 패킷을 볼 수 있기 때문에 스푸핑이 가능하다는 문제점이 있다. 스푸핑을 통해 올바른 수신부에 가야할 패킷이 정상 노드가 아닌 노드로 전달되도록 하여 데이터가 유출될 수 있다.
스푸핑은 패킷을 송신과 관련이 없는 호스트에게 가지 않도록 하는 스위칭 기능을 마비시키거나 속여서 악의적인 노드에 해당 패킷이 오도록 만드는 것을 말한다.
성형 토폴로지(Star Topology) | ”중앙 집중형”

성형은 중앙에 있는 노드에 모든 노드가 연결되어 있는 것을 말한다. 패킷을 주고 받을 때 중앙에 있는 노드를 거치도록 구성한다. 따라서 중앙에서 패킷 흐름을 제어할 수 있기 때문에 충돌 발생 가능성이 적고, 중앙 장치만 모니터링 한다면 네트워크 상태를 쉽게 파악할 수 있다. 하지만 중앙 노드가 고장나면 전체 회선이 통신 불능 상태가 된다는 문제점이 있다.
중앙 장치의 종류에 따라 성능이 달라지는데, 만약 중앙장치가 들어온 패킷을 연결된 모든 노드에 공유하는 허브의 경우에는 브로드캐스트 방식을 사용하기 때문에 충돌 위험이 있다. 만약 중앙장치가 목적지 주소에만 패킷을 보내는 스위치라면, 보안성이 훨씬 높고, 충돌도 적다.
성형을 계층적으로 쌓아올리면 트리 토폴로지가 된다.
링형 토폴로지(Ring Topology) | “순환 구조, 토큰 패싱”
링형에서는 각 노드가 양옆에 위치해 있고, 고리 모양의 길을 통해 패킷을 주고 받는다. 토큰을 가져야만 통신을 할 수 있으므로 충돌 발생 가능성이 적다. 다만, 노드를 추가/삭제하게 되면, 전체 네트워크를 중단해야 하기 때문에 추가/삭제가 번거롭다.
또한 링 중 하나라도 끊어지거나 노드 하나가 고장 나면 패킷을 전달해 줄 다음 노드가 없지기 때문에, 전체 네트워크가 마비된다. 이를 방지하기 위해서 이중 링(Dual Ring)구조를 많이 사용한다.

이중 링 토폴로지는 패킷이 흐르는 길을 2개로 만들어 하나의 링만 사용하다가 회선에 장애가 생기면, 반대 방향의 링으로 데이터를 우회시켜서 가용성을 확보한다.
망형(Full Mesh, Partial Mesh) “가장 빠른 길 혹은 우회로”

망형의 가장 큰 특징은 하나의 노드가 여러 개의 링크를 가지고 있는 것이다. 따라서 하나의 경로가 끊기더라도, 다른 노드를 우회해서 네트워크를 계속 사용할 수 있고 트래픽도 분산 처리가 가능하다. 하지만 새로운 노드를 추가할 때 마다 연결해야 할 선이 기하급수적으로 늘어나기에 대규모 네트워크를 구축하기에는 적합하지 않다.
노드가 $n$개일 때 필요한 회선 수 공식: $\frac{n(n-1)}{2}$
새로운 노드가 추가된 다고 했을 때, 새로운 노드는 자기 자신을 제외한 n-1개의 링크를 연결해야 한다. 전체 네트워크로 봤을 때 n개의 노드가 있다면, 각 노드는 n-1개의 링크가 필요하다. 하지만, 한 개의 선이 ‘두 개의 노드’를 동시에 연결하기 때문에 중복 계산을 빼주면 된다.
위의 그림은 모든 노드를 연결한 Full Mesh에 해당한다. Full Mesh는 비상망처럼 신뢰성이 극도로 중요한 곳에서만 사용하고, 일반적인 경우에는 중요한 노드 몇 개만 서로 연결하는 아래의 부분 메시(Partial Mesh) 구조를 사용한다.

하이브리드 토폴로지(Hybrid Topology)

하이브리드형은 2개 이상의 서로 다른 토폴로지를 조합해 하나의 네트워크를 구성하는 방식이다. 고정된 형태는 없지만 필요에 따라 성형+버스, 성형+링, 성형+망형 등 다양한 조합이 가능하다. 예를 들면, 서버실은 망형으로, 일반 사무실은 성형으로 조합한다.
정리를 해보면 트리형은 계층 분산으로 관리효율을 높였고, 버스형은 1개의 공유 회선으로 구조를 단순화했다. 성형은 노드 추가 삭제가 자유로우며, 링형은 충돌을 최소화 했다. 마지막 망형은 안전성을 극대화한 포톨로지이다.
마치며
완벽하게 외우기보다 각 구조가 왜 탄생했는지, 그리고 어떤 상황에서 ‘치명적인 한계’를 갖는지를 이해하면 네트워크 설계의 맥락을 쉽게 파악할 수 있다.
</div>