Giải thuật này dựa vào giải thuật tìm đƣờng đi ngắn nhất dựa trên các nút mạng của Bellman-Ford. Theo Ion Stoica [4 ] mạng máy tính đƣợc xem là một đồ thị G, các router trên mạng đƣợc mô tả là các nút đỉnh trên đồ thị, các liên kết giữa
các router đƣợc mô tả là các cạnh đồ thị, trọng số các cạnh là chi phí trên các đƣờng liên kết.
Định tuyến theo DV sử dụng giải thuật Bellman-Ford để tính toán các chi phí (cost) của một vector khoảng cách. Sao cho, chi phí luôn là tốt nhất (best). Ion Stoica [4] mô tả hoạt động của giao thức DV theo giải thuật Bellman-Ford qua nhiều bƣớc:
- Khởi tạo - Initialization: Mỗi nút xác định khoảng cách với các nút lân cận và tạo ra bảng định tuyến ban đầu. Mỗi tuyến (hay entry) bao gồm các thông tin {Dest, Cost, Next}. Trong đó: Dest là đích đến, cost là chi phí đến đích, next: Bƣớc đi kế tiếp để xác định hƣớng đi của gói dữ liệu. Sơ đồ ví dụ nhƣ sau:
Hình 2.2: Sơ đồ các nút mạng
Thuật toán mô tả đoạn khởi tạo 1 Initialization:
2 for allneighbors V do
3 ifVadjacent to A 4 D(A, V) = c(A,V); 5 else 6 D(A, V) = ∞; … Hình 2.2: Sơ đồ các nút mạng
Thuật toán mô tả đoạn khởi tạo 1 Initialization:
2 for allneighbors V do
3 ifVadjacent to A
4 D(A, V) = c(A,V); 5 else
6 D(A, V) = ∞; …
Quá trình cập nhật: Các nút trên mạng gửi bản sao thông tin các bảng định tuyến cho các nút lân cận.
Các nút gửi định kỳ toàn bộ các danh mục bảng định tuyến của nó cho các nút lân cận. Thông tin gửi đi bao gồm các trƣờng: Dest, Cost.
Mỗi nút khi nhận đƣợc bảng định tuyến từ nút lân cận thì cập nhật bảng định tuyến theo qui định:
Chỉ cập nhật danh mục có chi phí thấp hơn.
Nếu danh mục có chi phí cao hơn, thì cũng đƣợc cập nhật nếu danh mục xuất phát từ nguồn mới.
Thao tác cập nhật: Tăng giá trị của trƣờng cost lên 1: cost + 1.
Nút A cập nhật bảng định tuyến sau khi nhận đƣợc thông báo cập nhật của B, C :
Hình 2.2 Sơ đồ nút mạng định tuyến vector khoảng cách
- C gửi cho A thông báo cập nhật:D(C,A)=5, D(C,B)=1, D(C,D)=2. - A nhận và cập nhật bảng lại bảng định tuyến. A thao tác nhƣ sau:
Tính toán: D(A,D) = min{D(A,D) ; D(A,C) + D(C,D)} = min {∞ , 7} = 7.
Cập nhật danh mục D(A,D) vào trong bảng định tuyến của A. Hình sau mô tả trạng thái sau khi cập nhật.
Bảng 2.2: trạng thái bảngđịnh tuyến các nút mạng sau khi nút A cập nhật từ D
Nút A
Dest Cost Next
B 2 B
C 5 C
D 7 C
Nút B
Dest Cost Next
A 2 A
C 1 C
D 3 D
Nút C
Dest Cost Next
A 5 A
B 1 B
D 2 D
Nút D
Dest Cost Next
A ∞ -
B 3 B
C 2 C
B cũng gửi thông báo cập nhật cho nút A: D(B,A) = 2, D(B,C) = 1, D(B,D) = 3. Nút A sẽ nhận và cập nhật bảng định tuyến của nó nhƣ sau:
- D(A,D) = min{D(A,D); D(A,B) + D(B,D) = min{7,5} = 5. - D(A,C) = min{D(A,C); D(A,B) + D(B,C) = min{5,3) = 3.
Hình 2.3: Sơ đồ các nút mạng sau khi A cập nhật B D A C 5 2 3 1 2 thuật toán đoạn cập nhật
7. loop:
8. else if (update D(V, Y) received from V) 9. for all destinations Y do
10. if (destination Y through V) 11. D(A,Y) = D(A,V) + D(V, Y); 12. else
13. D(A, Y) = min(D(A, Y),
14. D(A, V) + D(V, Y)); 15. if (there is a new minimum for dest. Y) 16. send D(A, Y) to all neighbors 17. forever
Nút A
Dest Cost Next
B 2 B
C 3 B
D 5 B
Nút B
Dest Cost Next
A 2 A
C 1 C
D 3 D
Nút C
Dest Cost Next
A 5 A
B 1 B
D 2 D
Nút D
Dest Cost Next
A ∞ -
B 3 B
C 2 C
Kết quả sau quá trình cập nhật xảy ra ở tất cả các nút hệ thống bảng định tuyến của các nút sẽ đƣợc cập nhập lại nhƣ sau.
Bảng 2.3 Các bảng định tuyến sau khi cố định
Nút A
Dest Cost Next
B 2 B
C 3 B
D 5 B
Nút B
Dest Cost Next
A 2 A
C 1 C
D 3 D
Nút C
Dest Cost Next
A 3 B
B 1 B
D 2 D
Nút D
Dest Cost Next
A 5 B
B 3 B
C 2 C