A routing "protocol specifies how "routers communicate with each other, disseminating 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.
Although there are many types of routing protocols, three major classes are in widespread use on "IP networks:
Exterior gateway protocols should not be confused with "Exterior Gateway Protocol (EGP), an obsolete routing protocol.
Many routing protocols are defined in documents called "RFCs.
Some versions of the "Open System Interconnection (OSI) networking model distinguish routing protocols in a special sublayer of the "Network Layer (Layer 3).
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.
"Routing protocols, according to the OSI routing framework, are layer management protocols for the network layer, regardless of their transport mechanism:
"Interior gateway protocols (IGPs) exchange routing information within a single "routing domain. Examples of IGPs include:
"Exterior gateway protocols exchange routing information between "autonomous systems. Examples include:
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) addressing 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).