Link-state routing protocols use Dijkstra's shortest path first algorithm to determine the optimal route between nodes. Each router uses hello packets to discover neighbors and then builds and floods link state packets (LSPs) throughout the network. All routers use the LSPs to construct a topological map and independently calculate the shortest path to every network using an SPF tree. Common link-state protocols are Open Shortest Path First (OSPF) and Intermediate System to Intermediate System (IS-IS).