Định tuyến theo véctơ khoảng cách [12] được biết đến trước đây với những cái tên như “Định tuyến ARPANET cũ” gắn liền với lịch sử nó được áp dụng đầu tiên trong mạng ARPANET, hay “Giải thuật Bellman-Ford” với ý nghĩa ghi nhớ công của hai tác giả là Bellman và Ford là những người đã đề xuất một giải thuật mà phương pháp định tuyến theo véctơ khoảng cách dựa rất nhiều vào nó.
Theo phương pháp định tuyến này, mỗi bộ xử lý lưu giữ thông tin về khoảng cách từ nó đến mỗi bộ xử lý đích trong một véctơ được gọi là véctơ khoảng cách. Các khoảng cách được tính toán sử dụng thông tin trong các véctơ khoảng cách của láng giềng. Thủ tục định tuyến có thể được mô tả như Hình 3.1.
Giải thuật trên có vẻ khó hiểu vì bộ xử lý này tính véctơ khoảng cách dựa trên véctơ khoảng cách nhận được từ những bộ xử lý khác, và ngược lại. Tuy nhiên, một cách trực quan, ta có thể giải thích hoạt động của giải thuật này như sau: Xét bộ xử lý đích D, D chứa thông tin chính xác khoảng cách tới D là 0. Khi D gửi véctơ khoảng cách của nó đến các láng giềng, chúng biết chắc khoảng cách đến D. Nếu đường đi tối ưu từ A đến D là A-B-C-D thì A sẽ biết đường đi này sau khi D gửi véctơ khoảng cách cho C, tiếp đó C gửi véctơ khoảng cách đến B, rồi B gửi véctơ khoảng cách đến A. Mỗi bộ xử lý đích được tính toán một cách độc lập. Nếu SA là giải thuật tính đường đi tối ưu từ mỗi bộ xử
khoảng cách là nhiều phiên bản đồng thời của giải thuật SA. Mỗi bộ xử lý:
1. Khởi tạo véctơ khoảng cách với thành phần ứng với nó bằng 0 còn tất cả các thành phần ứng với các bộ xử lý khác bằng +.
2. Gửi véctơ khoảng cách đến tất cả các láng giềng khi nội dung véctơ này thay đổi hay khi phát hiện liên kết liền kề thay đổi.
3. Lưu véctơ khoảng cách nhận được gần nhất từ mỗi láng giềng.
4. Tính lại véctơ khoảng cách với chi phí nhỏ nhất đến mỗi bộ xử lý đích dựa trên thông tin về khoảng cách từ mỗi láng giềng đến điểm đích đó cộng với giá của liên kết đến láng giềng.
5. Các sự kiện sau dẫn đến việc tính lại véctơ khoảng cách:
a) Nhận được véctơ khoảng cách từ một láng giềng khác với véctơ khoảng cách nhận được trước đó từ chính láng giềng ấy.
b) Phát hiện một liên kết đến một láng giềng đã thay đổi.
Hình 3.1. Định tuyến theo véctơ khoảng cách.
Định tuyến theo véctơ khoảng cách có một nhược điểm lớn là hội tụ chậm: Một liên kết thay đổi có thể dẫn đến việc tính lại véctơ khoảng cách của rất nhiều bộ xử lý. Xét một ví dụ điển hình với mạng được cho trong Hình 3.2, giải thuật hội tụ rất chậm khi tôpô mạng thay đổi.
Để đơn giản, ta xét định tuyến với số chặng ít nhất và chỉ xét đích C. C tính số chặng đến C là 0. B tính số chặng đến C là 1. A tính số chặng đến C là 2.
Bây giờ, giả sử C mất chức năng hay liên kết B-C bị gãy. B, nhận biết liên kết B-C bị gãy, phải bỏ véctơ khoảng cách nhận được từ C, tính lại véctơ khoảng cách của mình chỉ
A B C
dựa trên véctơ khoảng cách nhận được từ A và tính số chặng đến C là 3. Vì véctơ khoảng cách của B thay đổi nên nó gửi đến các láng giềng, lúc này chỉ còn A. Đến lượt mình, A tính số chặng đến C là 4 rồi lại gửi véctơ khoảng cách mới tính đến B. Quá trình này cứ lặp lại và ước lượng số chặng từ cả A và B đến C tăng đến vô hạn. Đây là hiện tượng đếm đến vô hạn -ước lượng chi phí đến một nút tăng mãi đến vô hạn. Một số nút, với quan hệ cha-con trên đường đến một nút nào đó, tạo nên một vòng hoàn chỉnh. Hiện tượng này được gọi là vòng lặp định tuyến (looping).
Trong thực hành, người ta khắc phục hiện tượng đếm đến vô hạn và vòng lặp định tuyến bằng cách đặt ngưỡng trên chi phí của các đường đi. Khi ước lượng chi phí đến một nút vượt qua ngưỡng thì xem như nút đó đã mất liên lạc. Một cách giải quyết khác cho vấn đề đếm đến vô hạn là lưu đường đi từ nguồn đến đích. Tuy nhiên cách này rất đắt vì kích thước các thông báo lớn. Một cách khắc phục hay được sử dụng nhất là mỗi nút lưu các con của mình trên đường định tuyến, không thay đổi cha cho đến khi nhận được hồi báo của tất cả các nút con [7, 8].