네트워크_Routing/라우팅
[ROUTING]
[정의]
- Routing Protocol이란 네트워크 내의 여러 라우터들이 서로 정보를 교환하며, 데이터가 최적의 경로를 따라 전달될 수 있도록 경로를 결정하는 알고리즘 및 규칙들의 집합이다.
특징
- 분산적 동작: 각 라우터는 자신이 아는 정보(이웃 라우터 정보, 네트워크 topology 등)를 바탕으로 경로를 계산함.
- 동적 갱신: 네트워크 상황(링크 실패, 비용 변화 등)에 따라 경로를 실시간으로 재계산함.
- 목표는 최적 경로: "좋은 경로"란 일반적으로 지연이 적고, 대역폭이 크며, 신뢰성이 높은 경로를 말한다.
1. Static Routing (정적 라우팅)
[정의]
- 관리자가 라우터에 수동으로 경로를 직접 설정하는 방식. 네트워크 구조가 고정되어 있거나, 간단한 환경에서 주로 사용된다.
특징
- 사람이 직접 라우팅 테이블을 설정함
- 자동 업데이트 없음
- 단순 구조
동작 원리
- 운영자가 다음 목적지에 도달하기 위한 경로를 직접 지정하여 라우팅 테이블에 입력 → 라우터는 지정된 경로로만 패킷 전달
2. Dynamic Routing (동적 라우팅)
[정의]
- 라우터들끼리 서로 정보를 교환하며, 자동으로 최적의 경로를 계산하고 갱신하는 방식. 복잡하고 유동적인 네트워크에서 사용된다.
특징
- 라우터 간 자동 정보 교환
- 트래픽 변화나 장애 발생 시 경로 자동 변경
- 라우팅 프로토콜 사용 (예: RIP, OSPF, BGP)
동작 원리
- 라우터는 주기적으로 이웃 라우터들과 정보를 교환하여 네트워크 상태를 파악하고, 라우팅 알고리즘을 통해 최적 경로를 계산 → 라우팅 테이블 자동 갱신
Link-State Algorithm (링크 상태 알고리즘, Global View)
[정의]
- 모든 라우터가 네트워크 전체 토폴로지를 알고 있으며, 각 링크의 상태(예: 비용, 지연 등)를 기반으로 자신이 직접 최단 경로를 계산하는 방식이다.
[대표 프로토콜]
- OSPF (Open Shortest Path First)
[동작 원리]
- 각 라우터가 인접 라우터와의 링크 상태를 측정
- 링크 상태 정보를 모든 라우터에게 flooding으로 전달
- 모든 라우터가 동일한 전체 네트워크 맵을 소유
- 각 라우터는 Dijkstra 알고리즘을 통해 최단 경로 트리 계산
[특징]
- Global knowledge: 전체 네트워크를 기반으로 계산
- 경로 계산 정확도 높음
- 수렴 빠름
- 자원 사용 높음 (메모리, CPU, 대역폭)
Distance-Vector Algorithm (거리 벡터 알고리즘, Decentralized View)
[정의]
- 각 라우터는 목적지까지의 거리 정보를 이웃 라우터로부터 주기적으로 받아, 자신의 라우팅 테이블을 갱신하는 방식이다. 전체 구조는 알지 못하며, 이웃의 정보를 바탕으로 간접적으로 학습한다.
[대표 프로토콜]
- RIP (Routing Information Protocol)
- BGP (기본적으로 path-vector지만 distance vector 유사)
[동작 원리]
- 라우터는 목적지까지의 거리(=metric)를 저장
- 이 정보를 주기적으로 인접 라우터에 전달
- 받은 거리 정보를 바탕으로 Bellman-Ford 알고리즘으로 갱신
- 모든 라우터가 정보를 교환하면서 점차 최적 경로로 수렴
[특징]
- Decentralized: 각 라우터는 이웃의 정보만 알고 있음
- 구현 간단
- 자원 소모 적음
- 수렴 속도 느림, 루프 발생 가능성 있음 (→ split horizon, hold-down 등 해결 기법 필요)