A
routing protocol specifies how
routers communicate with each other, distributing information that enables them to select routes between any two
nodes on a
computer network.
Routing algorithms determine the specific choice of route. Each router has
a priori knowledge only of networks attached to it directly. A routing protocol shares this information first among immediate neighbors, and then throughout the network. This way, routers gain knowledge of the topology of the network.
The specific characteristics of routing protocols include the manner in which they avoid routing loops, the manner in which they select preferred routes, using information about hop costs, the time they require to reach
routing convergence, their
scalability, and other factors.
Although there are many types of routing protocols, three major classes are in widespread use on
IP networks:
OSI layer designation
Routing protocols, according to the OSI routing fr
amework, are layer management protocols for the network layer, regardless of their transport mechanism:
Many software implementations exist for most of the common routing protocols. Examples of open-source applications are Bird Internet routing daemon, Quagga, GNU Zebra, OpenBGPD, OpenOSPFD, and XORP.