Routing protocol

A routing protocol specifies how routers communicate with each other to distribute information that enables them to select paths between nodes on a computer network. Routers perform the traffic directing functions on the Internet; data packets are forwarded through the networks of the internet from router to router until they reach their destination computer. Routing algorithms determine the specific choice of route. Each router has a prior 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 ability of routing protocols to dynamically adjust to changing conditions such as disabled connections and components and route data around obstructions is what gives the Internet its fault tolerance and high availability.

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 such as relay multiplexing and cloud access framework parameters. Certain additional characteristics such as multilayer interfacing may also be employed as a means of distributing uncompromised networking gateways to authorized ports. This has the added benefit of preventing issues with routing protocol loops.

Many routing protocols are defined in technical standards documents called RFCs.

Types
Although there are many types of routing protocols, three major classes are in widespread use on IP networks:
 * Interior gateway protocols type 1, link-state routing protocols, such as OSPF and IS-IS
 * Interior gateway protocols type 2, distance-vector routing protocols, such as Routing Information Protocol, RIPv2, IGRP.
 * Exterior gateway protocols are routing protocols used on the Internet for exchanging routing information between Autonomous Systems, such as Border Gateway Protocol (BGP), a path-vector routing protocol. Exterior gateway protocols should not be confused with Exterior Gateway Protocol (EGP), an obsolete routing protocol.

OSI layer designation
Routing protocols, according to the OSI routing framework, are layer management protocols for the network layer, regardless of their transport mechanism:
 * IS-IS runs on the data link layer (Layer 2)
 * Open Shortest Path First (OSPF) is encapsulated in IP, but runs only on the IPv4 subnet, while the IPv6 version runs on the link using only link-local addressing.
 * IGRP, and EIGRP are directly encapsulated in IP. EIGRP uses its own reliable transmission mechanism, while IGRP assumed an unreliable transport.
 * Routing Information Protocol (RIP) runs over the User Datagram Protocol (UDP). Version 1 operates in broadcast mode, while version 2 uses multicast addressing.
 * BGP runs over the Transmission Control Protocol (TCP).

Interior gateway protocols
Interior gateway protocols (IGPs) exchange routing information within a single routing domain. Examples of IGPs include:
 * Open Shortest Path First (OSPF)
 * Routing Information Protocol (RIP)
 * Intermediate System to Intermediate System (IS-IS)
 * Enhanced Interior Gateway Routing Protocol (EIGRP)

Exterior gateway protocols
Exterior gateway protocols exchange routing information between autonomous systems. Examples include:
 * Exterior Gateway Protocol (EGP)
 * Border Gateway Protocol (BGP)

Routing software
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.

Routed protocols
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 or 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).