5.2 라우팅 알고리즘

라우팅 알고리즘의 목표는 송신자부터 수신자까지 라우터의 네트워크를 통과하는 좋은 경로를 결정하는 것인데, 일반적으로 ‘좋은’ 경로란 최소 비용 경로를 말한다.

네트워크 제어 평면이 라우터별 제어 방식을 채택하든 논리적 중앙 집중형 방식을 채택하든 상관없이 패킷이 전송 호스트에서 수신 호스트로 이동하기 위한 잘 정의된 일련의 라우터가 항상 존재해야 한다.

Untitled

라우팅 문제를 나타내는 데는 그래프가 사용되는데, 그래프는 G(N, E)로 나타낸다. N과 E는 각각 노드와 에지의 집합이고, 하나의 에지는 집합 N에 속하는 한 쌍의 노드로 표시된다.

그래프상의 노드는 패킷 전달 결정이 이루어지는 지점인 라우터를 나타내며, 이 노드들을 연결하는 에지는 라우터들 간의 물리 링크를 나타낸다.

에지는 그 비용을 나타내는 값을 갖는다. 이 비용은 해당 링크의 물리적인 거리, 링크 속도, 링크와 관련된 금전 비용 등을 반영한다.

집합 E에 포함된 어떤 에지 (x, y)에 대해 c(x, y)는 노드 x와 y간의 비용을 의미하는데, 만약 노드 쌍 (x, y)가 E에 포함되어 있지 않으면 c(x, y) = INF로 둔다. 모든 에지가 방향성을 갖지 않는 무방향성 그래프만을 고려한다. 에지(x, y)가 집합 E에 속하면, 노드 y는 노드 x의 이웃이라고 한다.

여러 에지들에 비용이 할당되고 나면 라우팅 알고리즘은 출발지와 목적지 간 최소 비용 경로를 찾는 것을 목표로 하게 된다. 만약 그래프의 모든 에지가 같은 비용을 갖는다면 최소 비용 경로가 바로 최단 경로가 된다.

라우팅 알고리즘을 분류하는 일반적인 방법 한 가지는 알고리즘이 중앙 집중형인지 분산형인지이다.

라우팅 알고리즘을 분류하는 두 번째 방식은 정적 알고리즘과 동적 알고리즘으로 분류하는 것이다.

<aside> 💡 토폴로지(영어: topology, 문화어: 망구성방식)는 컴퓨터 네트워크의 요소들(링크노드 등)을 물리적으로 연결해 놓은 것, 또는 그 연결 방식.

</aside>