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:
Routing protocols, according to the OSI routing framework, 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.
Some network certification courses distinguish between routing protocols and routed protocols. A routed protocol is used to deliver application traffic. It provides appropriate addressing information in its "Internet layer ("network layer) to allow a packet to be forwarded from one network to another. Examples of routed protocols are the "Internet Protocol (IP) and "Internetwork Packet Exchange (IPX).