라우팅 알고리즘(Routing Algorithm)이란 수신지까지의 최적 경로를 산출하며 라우팅 테이블을 만들고 유지, 관리하는 데 사용되는 법칙을 말한다.
거리벡터 알고리즘
거리벡터 알고리즘(Distance Vector Algorithm)은 각 라우터가 이웃 라우터와 경로설정 정보를 교환하여 네트워크 구성이나 장치 배치에 관한 네트워크 토폴로지 정보를 교환하는 구조이다.
경로설정의 기준인 라우팅 메트릭 값은 네트워크의 지연시간, 대역폭(Bandwidth), 신뢰성(Reliability), 부하율(Load) 등을 고려하여 결정된다. 메트릭 값은 링크 비용에 해당하므로 일반적으로 가장 작은 값이 되도록 한다.
- 네트워크 지연시간: 하나의 패킷이 네트워크를 통해 전송지에서 수신지까지 가는 데 걸리는 시간이다. 링크의 대역폭, 실제 거리, 포트의 큐, 네트워크 과부하 등에 의해 결정된다.
- 대역폭: 연결된 네트워크 구간에서 사용 가능한 트래픽 양이다.
- 신뢰성: 네트워크 연결 상태가 얼마나 신뢰성을 유지하는지 수치로 표현한다. 일반적으로 비트 오류율(Bit Error Rate, BER)을 사용한다.
- 부하율: 네트워크 트래픽이 분주한 정도를 말한다. 초당 패킷 처리율과 같은 다양한 방법으로 계산할 수 있다.
실제 네트워크 내부에서 라우터는 새로운 정보를 받을 때마다 이웃 라우터에게 정보를 알려주고, 이 과정이 반복되면 모든 라우터가 네트워크 전체 정보를 갖게 된다.
거리벡터 알고리즘은 네트워크 규모가 커지면 네트워크 정보에 대한 프로세스 처리나, 통신량이 많아져 네트워크에 부담이 커진다. 또한 지연시간 등의 문제에 대한 대처가 취약하다. 라우터 사이에 교환되는 정보는 거리정보이므로 단순하고 다루기 쉽지만 장애 원인을 알아내기 힘들다.
링크상태 알고리즘
링크상태 알고리즘(Link State Algorithm)은 라우팅 정보가 변경될 경우 바뀐 라우팅 정보만 전달하기 때문에 네트워크 트래픽을 현저히 줄일 수 있다. 따라서 규모가 큰 네트워크에서도 사용할 수 있다.
링크상태 알고리즘은 라우터가 먼저 각각의 독립된 네트워크 영역의 정보를 다른 모든 라우터에 전달한다. 각 라우터가 지역 네트워크 환경을 방송 형태로 전달하므로 모든 라우터는 네트워크 토폴로지의 완전한 정보를 알 수 있고, 다른 라우터가 어디에 존재하고 어디에 접속 중인지 알 수 있다.
각 라우터는 자신을 네트워크의 중심점으로 최단 경로 우선 트리를 구성한다. 최단 경로 우선 트리를 구성할 때는 최단 경로 알고리즘을 사용한다.
링크상태 알고리즘은 토폴로지가 변해도 한 번의 처리로 새 정보를 얻을 수 있다. 따라서 거리벡터 알고리즘과 같이 지연시간 문제는 적지만 경로설정이 아주 복잡한 구조로 구현되므로 주소 배분이나 장치 설정의 어려움과 같은 단점이 발생한다.
댓글