거리 벡터 라우팅 알고리즘(Distance Vector Routing Algorithm)
거리 벡터 알고리즘은 동적 라우팅 프로토콜 중 하나로, 라우터가 이웃 라우터와 거리 정보를 교환하며 최적 경로를 찾아 라우팅 테이블을 업데이트하는 알고리즘입니다.
거리 벡터 알고리즘의 장/단점
아래의 장단점을 고려하여 거리 벡터 알고리즘은 주로 규모가 작고 변경이 덜 발생하는 네트워크에서 사용됩니다.
큰 네트워크에서는 링크 상태 알고리즘과 같은 더 복잡한 알고리즘이 사용되기도 합니다.
장점
- 간단한 구현: 거리 벡터 알고리즘은 상대적으로 간단한 구현으로 네트워크에서 동작하기 때문에 작은 네트워크에서는 효과적입니다.
- 자동화: 라우터들이 이웃 라우터와 거리 정보를 교환하고 라우팅 테이블을 자동으로 업데이트하므로 관리자의 수동 개입이 필요하지 않습니다.
- 분산 처리: 라우터들은 이웃 라우터의 정보만 알고 있으며, 네트워크 전체에 대한 정보를 공유하지 않기 때문에 전체 네트워크에 대한 정보를 한 곳에서 관리할 필요가 없습니다.
단점
- 느린 수렴 속도: 거리 벡터 알고리즘은 라우팅 정보가 전체 네트워크에 퍼져가는데 시간이 걸리므로 네트워크 상태의 변화에 느리게 반응할 수 있습니다.
- 라우팅 루프와 count-to-infinity 문제: 거리 벡터 알고리즘은 라우팅 루프와 count-to-infinity 문제가 발생할 가능성이 있습니다. 이 문제는 포이즌 리버스(Poison Reverse)와 같은 기법으로 완화할 수 있지만, 완전히 해결하지는 못합니다.
- 확장성 문제: 거리 벡터 알고리즘은 큰 네트워크에서는 라우팅 정보가 빠르게 업데이트되지 않아 수렴 속도가 느리고, 라우팅 테이블의 크기가 커지므로 확장성에 한계가 있습니다.
- 제한된 네트워크 지식: 라우터들은 이웃 라우터의 정보만 알고 있기 때문기 때문에 전체 네트워크에 대한 정보를 알 수 없으며, 이로 인해 비효율적인 경로를 선택할 수 있습니다.
- 리소스 소모: 라우터들은 주기적으로 거리 정보를 이웃 라우터들과 교환해야 하며, 이 과정에서 리소스(대역폭, CPU, 메모리)가 소모됩니다. 큰 네트워크에서는 이러한 리소스 소모가 상당히 커질 수 있습니다.
거리 벡터 알고리즘 전개 과정 예시
- 네트워크에 라우터 A, B, C, D가 있고, 각 라우터는 서로 인접하게 배치되어 있습니다. (A-B-C-D 순서로 연결)
- 각 라우터는 이웃 라우터까지의 거리를 알고 있으며, 초기 상태에서는 다음과 같습니다.
- A: B까지 거리 1
- B: A까지 거리 1, C까지 거리 1
- C: B까지 거리 1, D까지 거리 1
- D: C까지 거리 1
- 각 라우터는 정기적으로 이웃 라우터와 거리 정보를 교환합니다. ( 변화가 없어도 )
- 라우터는 받은 정보를 토대로 최단 경로를 계산하고 라우팅 테이블을 업데이트합니다.
- 이 과정이 반복되면서 네트워크의 최적 경로가 수렴됩니다.
링크 상태 알고리즘(Link State Algorithm) : 거리 벡터 알고리즘과 상반 되는 알고리즘
거리 벡터 알고리즘과 상반되는 알고리즘은 링크 상태 알고리즘입니다.
링크 상태 알고리즘은 네트워크의 모든 라우터가 전체 네트워크의 링크 상태 정보를 공유하고, 이를 기반으로 최단 경로 트리를 구축하여 최적 경로를 찾습니다.
링크 상태 알고리즘은 [[OSPF(Open Shortest Path First)|OSPF(Open Shortest Path First)]] 등에서 사용되며, 더 정확한 네트워크 지식을 가지고 작동합니다.
거리 벡터 알고리즘과의 차이점
- 거리 벡터 알고리즘은 이웃 라우터와만 거리 정보를 교환하지만, 링크 상태 알고리즘은 전체 네트워크의 링크 상태 정보를 공유합니다.
- 링크 상태 알고리즘은 네트워크의 최단 경로 트리를 구축하여 최적 경로를 찾으며, 거리 벡터 알고리즘은 라우터 간 거리 정보를 교환하며 최적 경로를 찾습니다.
- 링크 상태 알고리즘은 라우팅 테이블 업데이트에 대한 보다 정확한 네트워크 지식을 가지고 작동합니다.
- 링크 상태 알고리즘은 거리 벡터 알고리즘에 비해 더 빠른 수렴 속도를 보입니다.
- 링크 상태 알고리즘은 거리 벡터 알고리즘이 가진 count-to-infinity 문제와 라우팅 루프 취약점을 해결하는데 도움이 됩니다.
부족한 점이나 잘못 된 점을 알려주시면 시정하겠습니다 :>
728x90
'Computer Science > 네트워크' 카테고리의 다른 글
다익스트라 알고리즘(Dijkstra's Algorithm) (0) | 2023.04.24 |
---|---|
링크 상태 알고리즘(Link State Algorithm) (0) | 2023.04.24 |
포이즌 리버스(Poison Reverse) (0) | 2023.04.24 |
OSPF 프로토콜 (0) | 2023.04.06 |
서브넷 인터페이스 수와 프리픽스 계산하는 방법 (0) | 2023.04.03 |