Giải thuật SPF của Dijkstra được sử dụng để tính toán cây đường đi ngắn nhất từ các LSA trong cơ sở dữ liệu trạng thái liên kết. Giải thuật SPF được chạy lần thứ nhất để xây dựng các cành của cây SPF. Giải thuật chạy lần thứ hai để thêm lá vào cây. Các lá chính là các mạng cụt gắn với mỗi Router.
OSPF xác định đường đi ngắn nhất dựa trên một độ đo (metric) tuỳ ý gọi là giá
gắn với mỗi giao diện. Giá của một tuyến là tổng các giá của tất cả các giao diện đầu ra tới đích. RFC 2328 không chỉ rõ giá trị cho giá.
Khi một Router OSPF kiểm tra địa chỉ đích của gói, nó sẽ thực hiện các bước sau để lựa chọn đường đi ngắn nhất:
1. Chọn tuyến phù hợp nhất với địa chỉ đích. Ví dụ nếu có các thực thể định tuyến ứng với địa chỉ 172.16.64.0/18; 172.16.64.0/24; và 172.16.64.192/27 và địa chỉ đích là 172.16.64.205 thì thực thể cuối cùng sẽ được chọn. Thực thể được chọn luôn là thực thể phù hợp dài nhất (tuyến với mặt nạ địa chỉ dài nhất). Nếu không tìm được tuyến phù hợp, một bản tin ICMP sẽ được gửi về địa chỉ nguồn và gói sẽ bị huỷ bỏ.
2. Bỏ bớt các thực thể đã chọn bằng cách loại bỏ các loại đường dẫn không phù hợp. Các loại đường dẫn được phân quyền ưu tiên theo thứ tự sau: (1 là mức ưu tiên cao nhất, 4 là mức ưu tiên thấp nhất).
1. Đường dẫn nội vùng. 2. Đường dẫn liên vùng. 3. Đường ngoài loại 1. 4. Đường ngoài loại 2.
Nếu có nhiều tuyến có cùng giá, cùng loại đường dẫn tồn tại trong tập cuối cùng, OSPF sẽ sử dụng tất cả các đường dẫn này. Lưu lượng được truyền trên các đường dẫn này theo phương pháp cân bằng tải.