
Distance Vector 알고리즘은 Bellman-Ford 알고리즘 즉, Dynamic Programming에 기반한다.
각 노드는 각자의 distance vector 측정치를 이웃에게 전달한다.
만약 x가 새로운 distance vector (이하 DV)를 이웃으로부터 전달받았다면, x는 B-F equation을 사용해서 자신의 DV를 업데이트한다.
B-F equation은 다음과 같다.
이렇게 구한 Dx(y)는 실제 최소 비용인 dx(y)에 수렴한다.
반복적이고 비동기적으로 발생한다.
각각의 local iteration은 로컬 경로 비용이 변경되었을 때 또는 이웃으로부터 업데이트된 DV를 받았을 때 발생한다.
각 노드들은 자신의 DV가 변경되었을 때 이웃 노드들에게 알려준다.
Distance Vector 알고리즘의 대표적인 문제점으로 Count-to-Infinity가 있다. 링크 비용이 증가하거나 링크가 끊어졌을 때 잘못된 경로 정보가 이웃 간에 순환하며 metric이 매우 느리게 infinity로 수렴한다. 이를 완화하기 위해 Poisoned Reverse 기법을 사용하지만, 3개 이상의 노드가 관련된 루프는 해결하지 못한다 (RFC 1058).
참고 네트워크 계층