네트워크 토폴로지 — 컴퓨터를 어떤 모양으로 잇는가
별 모양, 줄 모양, 고리 모양, 그물 모양. 네트워크를 잇는 대표적인 방식들을 집 공유기 같은 익숙한 예로 풀고, 도커·쿠버네티스의 가상 네트워크까지 연결한다.
네트워크 토폴로지
난이도 — 입문
앞 글에서 토폴로지를 지하철 노선도에 비유했다. 실제 거리나 모양은 버리고 "무엇이 무엇과 이어졌나"만 보는 관점이다.
그 관점을 컴퓨터 네트워크에 적용한 것이 네트워크 토폴로지다. 한 문장으로 하면 이렇다.
컴퓨터와 장비들을 어떤 모양으로 연결했는가.
먼저 용어 하나만 정리하고 가자. 앞으로 노드(node)라는 말이 계속 나오는데, 어려운 뜻이 아니다. 네트워크에 연결된 것 하나를 가리킨다. 내 노트북, 회사 서버, 공유기 전부 노드다.
연결 모양은 왜 중요할까. 이 선택 하나가 속도·안정성·비용을 전부 바꾸기 때문이다. 대표적인 네 가지를 먼저 눈으로 보자.
별 모양 (성형)
좋은 점 — 기기 하나가 고장 나도 나머지는 멀쩡하다.
나쁜 점 — 가운데가 죽으면 전부 끊긴다. 집 공유기와 같다.
위 그림에서 탭을 옮겨 가며, 아래 설명과 나란히 보면 좋다.
별 모양 (성형, Star)
모든 노드가 가운데 장비 하나에 연결된다.
가장 익숙한 형태다. 집을 떠올려 보자. 노트북, 휴대폰, TV가 전부 공유기 하나에 연결돼 있다. 기기끼리 직접 이어져 있지는 않다. 이게 별 모양이다.
- 좋은 점 — 노트북 하나가 고장 나도 나머지는 멀쩡하다. 기기를 새로 붙이기도 쉽다.
- 나쁜 점 — 가운데 장비가 죽으면 전부 끊긴다. 공유기 전원을 뽑으면 집 안 인터넷이 전부 멈추는 것과 같다.
이렇게 "여기 하나가 무너지면 전체가 무너지는 지점"을 단일 장애점(SPOF, Single Point of Failure)이라고 부른다. 네트워크 이야기에서 자주 나오는 말이니 기억해 두면 좋다.
줄 모양 (버스형, Bus)
긴 케이블 하나에 모든 노드가 매달린다.
복도 하나에 방들이 쭉 늘어선 모습을 떠올리면 된다. 모두가 같은 복도를 쓴다.
- 좋은 점 — 케이블이 적게 들어 싸고 단순하다.
- 나쁜 점 — 모두가 같은 길을 쓰니 한 번에 하나만 말할 수 있다. 여럿이 동시에 보내면 부딪힌다. 게다가 케이블이 한 군데만 끊겨도 전체가 멈춘다.
초기 인터넷(이더넷)이 이 방식이었지만 지금은 거의 쓰지 않는다. 다만 "하나의 통로를 모두가 나눠 쓴다"는 발상 자체는 지금도 소프트웨어 곳곳에 남아 있다.
고리 모양 (링형, Ring)
각 노드가 양옆하고만 이어져 동그란 고리를 이룬다.
원탁에 둘러앉아 옆 사람에게 쪽지를 넘기는 장면을 떠올리면 된다. 쪽지는 한 방향으로 돌다가 주인에게 도착한다.
- 좋은 점 — 순서대로 도니 부딪힐 일이 적다.
- 나쁜 점 — 한 군데만 끊겨도 고리가 깨진다. 그래서 실제로는 고리를 두 겹으로 만들어 보완한다.
그물 모양 (메시형, Mesh)
노드들이 서로 직접 이어진다.
친구 넷이 서로 모두의 연락처를 알고 있어서, 누구든 바로 연락할 수 있는 상태다.
- 좋은 점 — 길이 여러 개다. 하나가 끊겨도 돌아가면 된다. 그래서 아주 튼튼하다.
- 나쁜 점 — 연결이 너무 많이 필요하다. 노드가 늘어날수록 선이 폭발적으로 늘어난다. 4대면 6개면 되지만, 10대가 되면 45개가 필요하다.
인터넷의 중심 뼈대나 대규모 분산 시스템이 이 모양에 가깝다. 비싸지만 잘 끊기지 않아야 하는 곳에 쓴다.
네 가지 비교
| 모양 | 튼튼함 | 비용 | 약점 |
|---|---|---|---|
| 별(Star) | 보통 | 낮음 | 가운데 장비가 죽으면 전멸 |
| 줄(Bus) | 낮음 | 가장 낮음 | 케이블 끊기면 전멸, 충돌 잦음 |
| 고리(Ring) | 보통 | 보통 | 한 군데 끊기면 고리 깨짐 |
| 그물(Mesh) | 높음 | 높음 | 선이 너무 많이 필요 |
현실의 큰 네트워크는 하나만 쓰지 않는다. 별 모양을 여러 층으로 쌓거나(트리 모양), 여러 방식을 섞어서 쓴다.
눈에 보이는 연결과 실제 흐름은 다를 수 있다
조금 헷갈리는 이야기를 하나 덧붙인다. 토폴로지에는 두 가지 층이 있다.
- 물리 토폴로지(physical topology) — 케이블이 실제로 어떻게 꽂혀 있나
- 논리 토폴로지(logical topology) — 데이터가 실제로 어떤 길로 흐르나
이 둘은 다를 수 있다. 겉보기에는 모두가 공유기 하나에 꽂혀 있는 별 모양인데(물리), 데이터가 도는 규칙은 고리 모양일 수 있다(논리).
지하철로 비유하면, 물리는 실제로 깔린 선로이고 논리는 열차 운행 방식이다. 선로가 같아도 급행과 완행은 다른 길을 간다.
소프트웨어에도 토폴로지가 있다
케이블만의 이야기가 아니다. 요즘은 소프트웨어로 만든 가상 네트워크가 더 흔한데, 여기에도 똑같은 모양이 나타난다.
- 도커(Docker) — 컨테이너들이 가상의 공유기 하나에 붙는다. 사실상 별 모양이다. 집 공유기와 구조가 같고, 다만 소프트웨어로 만들었을 뿐이다.
- 쿠버네티스(Kubernetes) — 모든 컨테이너가 서로 직접 통신할 수 있어야 한다는 원칙을 둔다. 즉 그물 모양을 지향한다. 실제로는 소프트웨어가 그렇게 보이도록 만들어 준다.
- 서비스 메시(Service Mesh) — 이름부터 메시, 곧 그물이다.
이 블로그의 도커 네트워크나 쿠버네티스 서비스 글을 "이건 무슨 모양이지?"라는 눈으로 다시 읽으면 훨씬 잘 들어온다.
정리
- 네트워크 토폴로지는 장비들을 어떤 모양으로 잇느냐의 선택이다.
- 별 모양은 관리하기 쉽지만 가운데가 약하고, 그물 모양은 튼튼하지만 비싸다. 정답은 없고 트레이드오프다.
- 케이블이 꽂힌 모양(물리)과 데이터가 흐르는 길(논리)은 다를 수 있다.
- 도커·쿠버네티스 같은 소프트웨어 네트워크도 결국 이 익숙한 모양들을 다시 만든 것이다.
Related Posts
같이 읽으면 좋은 글
인증과 인가 — 세션-쿠키 방식과 JWT 토큰 방식
HTTP는 무상태인데 어떻게 로그인 상태를 유지하는가. 인증과 인가의 차이, 서버가 상태를 갖는 세션-쿠키 방식과 토큰에 정보를 담는 JWT 방식의 트레이드오프, 그리고 토큰을 어디에 둘지를 정리했다.
DNS 레코드와 CDN — A 레코드 한 줄 뒤에 숨은 것들
DNS는 도메인을 IP로 바꾸기만 하는 게 아니다. A·AAAA·CNAME·MX·TXT 같은 레코드의 역할과 TTL, 그리고 같은 도메인이 사용자마다 다른 서버로 연결되는 CDN·GeoDNS의 원리를 정리했다.