II, CÁC GIAO THỨC ĐỊNH TUYẾN TRÊN IPV6 2.1 RIPng cho IP
2.1.3 Thuật toán Belman-Ford
Quá trình các router trao đổi thông tin định tuyến, khi nhận được 1 route trong gói tin RIPng truyền đến, router sẽ sử dụng thuật toán Belman-Ford để xét xem có cập nhật route này vào bảng định tuyến hay không. Thuật toán này khá đơn giản và có độ phức tạp không lớn, do vậy nên chạy nhanh và ít yêu cầu khả năng xử lý và tài nguyên của bộ xử lý và hệ thống. Sơ đồ khối của thuật toán này như sau:
Router A nhận được một thông điệp Update từ router B và nó cộng thêm ngay giá trị khoảng cách là 1 vào mỗi route được quảng bá bởi router B. Với mỗi route, router sẽ sử dụng thuật toán trên để xử lý, route sau đó sẽ được thêm vào hoặc hủy bỏ.
• Route Ri là 1 route mới và metric của nó nhỏ hơn 16 (reachable) : Route, metric và next-hop sẽ được đưa vào bảng định tuyến như 1 entry mới. Trường Time được đưa về giá trị 0 và trường Flag được thiết lập.
• Route Ri đã tồn tại trong bảng định tuyến và Nexthop cũng tương tự với 1 route đã có: Nếu giá trị metric đã bị thay đổi thì nó được cập nhật và trường Flag được thiết lập. Giá trị Time được đưa về 0.
• Nếu Route Ri đã có trong bảng định tuyến nhưng có giá trị Nexthop khác và metric nhỏ hơn 1 route đang tồn tại: Nexthop và metric sẽ được cập nhật. Time được đưa về 0 và cờ Flag được thiết lập.
• Nếu route Ri đã biết nhưng giá trị Nexthop khác và metric bằng với 1 route đang tồn tại trong bảng định tuyến thì : Nếu tiến trình routing chấp nhận nhiều tuyến đường với cùng 1 cost để tới cùng 1 đích thì route được thêm vào như là 1 route mới. Nếu không thì route Ri sẽ được bỏ qua.
Thông tin về Nexthop được lấy từ cả thông điệp Update và từ địa chỉ IPv6 nguồn của gói tin RIPng. Khi một router khởi động và cấu hình thì chúng chỉ biết được các route mà kết nối trực tiếp với chúng. Các thông tin này sau đó sẽ được chuyển đến các neighbor, sau đó được xử lý và được redistribute tới các neighbor của các neighbor này.