Giao thức OSPFv3 được xây dựng trên nền tảng của thuật toán định tuyến Link State, mỗi router sẽ xây dựng và duy trì một cơ sở dữ liệu mô tả cấu trúc của toàn hệ thống (hệ thống các router chạy OSPFv3). Cơ sở dữ liệu này được gọi là link- state database (cơ sở dữ liệu về trạng thái các kết nối) và mỗi router có một cơ sở dữ liệu riêng tùy theo vị trí, vai trò của nó trong hệ thống.
Để xây dựng nên cơ sở dữ liệu này, mỗi router sẽ tự tạo ra các bản tin mô tả về trạng thái quanh mình (trạng thái các giao diện, các router khác trên cùng liên kết...). Các bản tin này sau đó được các router phát tán tới tất cả các router khác trong hệ thống, từ đó tính toán chính xác được tuyến đường ngắn nhất tới bất kỳ đích nào dựa vào thuật toán Dijkstra.
Giao thức OSPFv3 cho phép người quản trị hệ thống cấu hình trên mỗi giao diện một giá trị trọng số liên kết (link- cost). Trọng số này nói lên chi phí phải trả để một router đẩy gói qua giao diện này và có thể được tính toán từ một trong số các tham số mạng. Giá trị này chính là tiêu chuẩn để giao thức OSPFv3 tính toán và lựa chọn tuyến đường ngắn nhất tới đích. Tuyến ngắn nhất là tuyến có tổng trọng số liên kết nhỏ nhất.
Các router trong hệ thống sử dụng cùng một phương pháp tính toán trên cơ sở dữ liệu. Mỗi router sẽ coi mình là gốc và áp dụng thuật toán Dijkstra để xây dựng nên cây đường đi ngắn nhất (Shortest Path Tree) tới tất cả các đích trong hệ thống (bao gồm cả các router và cả các mạng). Sau đó, từ cây này router tạo nên bảng định tuyến chính xác.
OSPFv3 phân chia hệ thống thành nhiều vùng nhỏ. Cấu trúc của mỗi vùng được che kín với các vùng khác. Định tuyến OSPFv3 trở thành định tuyến phân cấp giúp cho giảm bớt nhiều giao thông mạng cho trao đổi các bản tin định tuyến. Quan trọng nhất trong OSPFv3 (và các giao thức dựa trên thuật toán định tuyến Link- state khác) là sự đồng bộ cơ sở dữ liệu giữa các router:
Việc tính toán cây đường đi ngắn nhất chỉ chính xác khi tất cả các router tính toán trên cùng một cơ sở dữ liệu về hệ thống. OSPFv3 sử dụng phương pháp phát tán (flooding) để các router trao đổi các bản tin định tuyến. Phương pháp này giúp các router nhanh chóng đồng bộ cơ sở dữ liệu, nhanh chóng đáp ứng lại sự biến động tình trạng của hệ thống.
* Thuận toán định tuyến Link-State
Theo thuật toán Link State, mỗi nút sẽ phải nắm được toàn bộ trong số của tất cả các liên kết trong mạng. Thông tin lưu trữ trong một cơ sở dữ liệu về liên kết (Link State Database), đây chính là bản đồ của toàn mạng. Dựa trên cơ sở dữ liệu này, mỗi nút sẽ lấy mình làm gốc và tính toán cây tuyến đường ngắn nhất (shortest path tree) từ nó tới tất cả các đích trong mạng. Như vậy, tất cả các nút trong toàn mạng phải sử dụng cùng một bản đồ mạng thống nhất.
Để làm được điều này, mỗi nút sẽ phải gửi đi thông tin về tất cả các liên kết của mình tới tất cả các nút trong mạng. Phương pháp mà các nút truyền đi thông tin liên kết được sử dụng là phương pháp phát tán thông tin định tuyến (flooding). Theo phương pháp này, mỗi nút khi nhận được thông tin từ nút hàng xóm (Neighbor) sẽ nhận và tiếp tục gửi thông tin này tới tất cả các nút Neighbor khác. Cách làm này sẽ cho các nút mạng nhanh chóng nhận được toàn bộ thông tin của các router khác.
Thuật toán Link State dựa trên thuật toán Dijstra. Thuật toán này sẽ tính toán đường đi có tổng trọng số nhỏ nhất từ một nút bất kỳ tới một nút khác trong mạng.
* Ưu điểm của link-state:
- Thời gian hội tụ ngắn, có khả năng dùng cho maṇg lớn và rất lớn.
* Nhược điểm của link-state:
- Phức tạp̣ và khó cấu hình: Phải đảm bảo chắc chắn rằng tất cả các nút trong mạng phải sử dụng cùng một cơ sở dữ liệu về mạng để tính toán cây đường đi ngắn nhất và xây dựng bảng định tuyến đúng đắn. Sự đồng bộ về cơ sở dữ liệu tại tất cả các nút đòi hỏi các giao thức định tuyến sử dụng thuật toán Link State phải có cơ chế tổ chức chặt chẽ, thiết kế hợp lý. Việc sử dụng cơ sở dữ liệu chung về mạng cũng khiến các nút phải sử dụng nhiều bộ nhớ, quá trình tính toán tập trung đòi hỏi máy tính tốc độ cao.
Nguyễn Hồng Khanh – VnPro