Prawidłowa odpowiedź to OSPF, ponieważ jest to klasyczny przykład protokołu routingu typu link-state, który właśnie korzysta z algorytmu Dijkstry do wyznaczania najkrótszych ścieżek. W OSPF każdy router buduje pełną bazę wiedzy o topologii danej domeny routingu (LSDB – Link-State Database), na podstawie wymiany LSA (Link-State Advertisements) z innymi routerami. Mając taką „mapę” sieci, router uruchamia algorytm SPF (Shortest Path First), czyli praktycznie implementację algorytmu Dijkstry, i wylicza najlepsze trasy do wszystkich znanych sieci. To jest zupełnie inne podejście niż w protokołach distance-vector, gdzie router zna tylko swoich sąsiadów i odległość do sieci, a nie pełną topologię. W praktyce OSPF jest standardem w średnich i dużych sieciach firmowych, w sieciach operatorów, w kampusach uczelnianych. Stosuje się go, gdy zależy nam na szybkim zbieżaniu (konwergencji), dobrej skalowalności i zaawansowanych możliwościach typu podział na obszary (area 0, area stub, NSSA), różne typy LSA, wsparcie dla VLSM i CIDR. Z mojego doświadczenia OSPF jest też dużo wygodniejszy w utrzymaniu niż stare protokoły distance-vector – łatwiej kontrolować ruch, lepiej reaguje na awarie łączy, a konfiguracja oparta na area i cost pozwala świadomie sterować ruchem. W dobrych praktykach projektowania sieci przyjmuje się, że OSPF używamy tam, gdzie RIPv2 po prostu już nie daje rady: dużo routerów, wiele podsieci, redundantne łącza, wymaganie szybkiego przełączania po awarii. Warto też pamiętać, że OSPF jest otwartym standardem (opisanym w RFC 2328 i nowszych), więc działa między różnymi producentami – Cisco, Juniper, Mikrotik, HP i cała reszta. To jest typowy wybór w profesjonalnym środowisku, jeśli mówimy o link-state i algorytmie Dijkstry.
W tym pytaniu kluczowe są dwa słowa: „topologia sieci” i „algorytm Dijkstry”. To jest charakterystyczny opis protokołów routingu typu link-state. Wiele osób automatycznie kojarzy dynamiczny routing z RIP albo IGRP, bo to są stare, często omawiane w podręcznikach protokoły, ale one działają zupełnie inaczej. RIPv2 to klasyczny distance-vector. Router nie zna pełnej topologii, tylko dostaje od sąsiadów informację w stylu: „do tej sieci jest tyle i tyle skoków (hop count) przeze mnie”. Nie ma tam obliczania SPF, nie ma globalnej bazy topologii, nie ma LSA. Dodatkowo RIP ma mocne ograniczenia: maksymalnie 15 skoków, wolna konwergencja, brak zaawansowanego podziału na obszary. Używanie go w kontekście algorytmu Dijkstry to typowe pomieszanie pojęć: ktoś słyszał, że to „dynamiczny routing” i wrzuca wszystkie protokoły do jednego worka. IGRP z kolei to stary, zamknięty protokół Cisco, też distance-vector. On co prawda nie używa samego hop count, tylko złożoną metrykę (przepustowość, opóźnienie itd.), ale dalej nie buduje pełnej mapy topologii. Routery z IGRP nie wymieniają szczegółowych informacji o stanie łączy, tylko rozsyłają okresowo całe tablice routingu. To podejście jest prostsze, ale mniej skalowalne i wolniejsze przy zmianach w sieci. Mylenie IGRP z protokołem link-state wynika często z tego, że „brzmi bardziej profesjonalnie niż RIP” i że jest od Cisco, ale od strony algorytmicznej to nadal distance-vector. IS-IS jest tu ciekawym przypadkiem, bo to też jest protokół link-state i też korzysta z algorytmu Dijkstry. Technicznie więc spełnia warunek z pytania, ale w praktyce w podstawowych kursach administracji sieci przyjmuje się, że standardowym, najczęściej używanym i omawianym protokołem link-state w sieciach IP jest OSPF. IS-IS wywodzi się z ISO/CLNS, jest mocno popularny w sieciach operatorskich (ISP), ale w typowych sieciach firmowych, w materiałach szkolnych, w laboratoriach technikum czy CCNA, to OSPF jest tym „domyślnym” protokołem link-state. Dlatego, jeśli widzisz w pytaniu Dijkstrę, bazę topologii i klasyczne środowisko IP, dobrą praktyką jest skojarzenie tego przede wszystkim z OSPF. Warto zapamiętać: RIP i IGRP – distance-vector, brak pełnej topologii; OSPF i IS-IS – link-state, algorytm Dijkstry, ale w typowych zadaniach egzaminacyjnych odpowiedzią będzie OSPF.