Please Whitelist This Site?

I know everyone hates ads. But please understand that I am providing premium content for free that takes hundreds of hours of time to research and write. I don't want to go to a pay-only model like some sites, but when more and more people block ads, I end up working for free. And I have a family to support, just like you. :)

If you like The TCP/IP Guide, please consider the download version. It's priced very economically and you can read all of it in a convenient format without ads.

If you want to use this site for free, I'd be grateful if you could add the site to the whitelist for Adblock. To do so, just open the Adblock menu and select "Disable on tcpipguide.com". Or go to the Tools menu and select "Adblock Plus Preferences...". Then click "Add Filter..." at the bottom, and add this string: "@@||tcpipguide.com^$document". Then just click OK.

Thanks for your understanding!

Sincerely, Charles Kozierok
Author and Publisher, The TCP/IP Guide

NOTE: Using software to mass-download the site degrades the server and is prohibited.If you want to read The TCP/IP Guide offline, please consider licensing it. Thank you.

The key data structure maintained
by each router in an OSPF autonomous system (AS) is the link-state
database (LSDB). The LSDB contains a representation of the topology
of either the entire AS (in basic
topology) or a single area (in hierarchical
topology). As we have seen earlier in
this section, each router in the AS or area has the same LSDB, so it
represents a neutral view of the connections between routers and networks.

Of course, each router needs to participate
in keeping the LSDB up to date, but it also has its own selfish
concerns. It needs to be able to determine what routes it should use
for datagrams it receives from its connected networksthis is,
after all, the entire point of a routing protocol.

The SPF Tree

To find the best route from any router,
it must determine the shortest path between itself and each router or
network in the AS or area. For this, it needs not a neutral view of
the internetwork but a view of it from its own perspective.

The router creates this perspective
by taking the information in the LSDB and transforming it into a shortest
path first tree or SPF tree. The term tree refers
to a data structure with a root that has branches coming out that go
to other nodes, which in turn have branches. The structure as a whole
looks like an upside-down tree. In this case, the SPF tree shows the
topology information of the AS or area with the router constructing
the tree at the top. Each directly-connected router or network is one
step down in the tree; each router or network connected to these first-level
routers or networks is then connected, and so on, until the entire AS
or area has been represented.

Again, the router doesn't really
make the tree; it is just an algorithmic calculation performed
by the computer within the router. Once this is done, however, this
logical construct can be used to calculate the cost for that router
to reach any router or network in the AS (or area). In some cases, there
may be more than one way to reach a router or network, so the tree is
constructed to show only the shortest (lowest-cost) path to the network.

Of course, each router is only responsible
for sending a datagram on the next leg of its journey, and not for what
happens to the journey as a whole. After the SPF tree is done, the router
will create a routing table with an entry for each network, showing
the cost to reach it, and also the next hop router to use to reach it.

The SPF tree is created dynamically
based on the current state of the LSDB. If the LSDB ever changes, the
SPF tree and the routing information are recalculated.

Key Concept: To determine what routes it should use to reach networks in its autonomous system, a router generates a shortest path first tree (SPF tree) from its link-state database. This tree contains the same basic information as the LSDB but presents it from the point of view of the router doing the calculation so that router can see the costs of various paths to different networks.

If you find The TCP/IP Guide useful, please consider making a small Paypal donation to help the site, using one of the buttons below. You can also donate a custom amount using the far right button (not less than $1 please, or PayPal gets most/all of your money!) In lieu of a larger donation, you may wish to consider purchasing a download license of The TCP/IP Guide. Thanks for your support!