Valamennyi forgalomirányító protokoll hasonló részekből épül fel. Mindegyik forgalomirányító protokoll üzenetek formájában osztja meg a forgalomirányítási információkat. Ezekből az üzenetekből aztán a forgalomirányító algoritmus által feldolgozható adatstruktúrákat építenek.
Az OSPF forgalomirányító protokoll három fő összetevője:
Adatstruktúrák
Az OSPF három adatbázist hoz létre és tart karban (lásd 1. ábra):
- Szomszédsági adatbázis (Adjacency database) – ez alkotja a szomszédsági táblát (neighbor table).
- Kapcsolatállapot adatbázis (Link-state database, LSDB) - ez alkotja topológia táblát (topology table).
- Továbbítási adatbázis (Forwarding database) – ez pedig az irányítótábla (routing table).
Ezek a táblázatok tartalmazzák azon szomszéd forgalomirányítók listáját, melyekkel forgalomirányítási adatokat kell cserélnie. A táblázatokat RAM-ban tárolják és ott is tartják karban.
Forgalomirányító protokoll üzenetek
Az OSPF öt csomagtípust használ a forgalomirányítási adatok megosztásánál. Ezen csomagok, ahogy azt a 2. ábra is mutatja, az alábbiak:
- Hello csomag
- Adatbázis-leíró csomag
- Kapcsolatállapot kérés csomag
- Kapcsolatállapot frissítés csomag
- Kapcsolatállapot nyugtázás csomag
Ezen csomagok szolgálnak a szomszédos forgalomirányítók felderítésére, valamint az aktuális hálózati információk karbantartása okán a forgalomirányítási adatok cseréjére.
Az algoritmus
A CPU a szomszédsági és topológiai táblákat Dijkstra SPF-algoritmusával dolgozza fel. Az SPF-algoritmus meghatározza az egyes célok elérésének teljes költségét.
Az SPF-algoritmus felépít egy SPF-fát (Shortest Path First, "legrövidebb utat először"), amely a forgalomirányítótól - mint a fa gyökerétől - kiindulva minden más csomópontohz kiszámítja a hozzá vezető legrövidebb útvonalat. Ezek után az SPF-fa szolgál a legjobb útvonalak meghatározására. Az OSPF a legjobb utakat behelyezi a forgalomirányító adatbázisba, amelyet az irányítótábla felépítéséhez használ.