Elementy składowe wszystkich protokołów routingu są podobne. Każdy z nich używa specjalnych komunikatów, w celu wymiany informacji o trasach. Komunikaty te pozwalają na zbudowanie odpowiednich struktur danych, które następnie są przetwarzane za pomocą algorytmu routingu.
Najważniejszymi komponentami protokołu routingu OSPF są:
Struktury danych
Zadaniem protokołu OSPF jest utworzenie i utrzymanie trzech baz danych: (spójrz na rysunek 1)
- Baza danych przyległości - tworzy tabelę sąsiadów.
- Baza danych stanu łącza (Link-state database, LSDB) - tworzy tabelę topologii.
- Baza danych przekazywania (forwardingu) - tworzy tablicę routingu.
Powyższe tabele przechowywane są w pamięci RAM i zawierają listę routerów sąsiadujących, z którymi wymieniane są informacje routingu.
Komunikaty protokołu routingu
W celu przekazywania informacji routingu, OSPF używa pięciu typów pakietów. Typy pakietów OSPF pokazano na rysunku 2:
- Pakiet Hello
- Pakiet opisu bazy danych (Database Description - DBD)
- Pakiet żądania stanu łącza (Link-State Request - LSR)
- Pakiet aktualizacji stanu łącza (Link State Update - LSU)
- Potwierdzenie stanu łącza (Link-state acknowledgment - LSAck)
Pakiety te wykorzystywane są do wykrywania sąsiadów oraz do wymiany informacji o trasach i mają za zadanie utrzymanie aktualnych i dokładnych informacji o sieci.
Algorytm
Zadaniem procesora jest przetwarzanie informacji zawartych w tabelach sąsiadów i topologii przy użyciu algorytmu Dijkstry (SPF). Podstawą, na której opiera się działanie algorytmu SPF, jest łączny koszt dotarcia do celu.
W tym celu algorytm SPF tworzy tzw. drzewo SPF, każdy router umieszczany jest w korzeniu drzewa, po czym obliczana jest najkrótsza ścieżka do każdego węzła. Następnie na podstawie utworzonego drzewa SPF obliczana jest najlepsza ścieżka. Ostatecznie OSPF wstawia najlepsze ścieżki do tablicy przekazywania, na podstawie której tworzona jest tablica routingu.