This article's factual accuracy may be compromised due to out-of-date information. Please help update this article to reflect recent events or newly available information.(June 2020)
IP routing is the application of routing methodologies to IP networks. This involves not only protocols and technologies but includes the policies of the worldwide organization and configuration of Internet infrastructure. In each IP network node, IP routing involves the determination of a suitable path for a network packet from a source to its destination in an IP network. The process uses static configuration rules or dynamically obtained from routing protocols to select specific packet forwarding methods to direct traffic to the next available intermediate network node one hop closer to the desired final destination, a total path potentially spanning multiple computer networks.
Networks are separated from each other by specialized hosts, called gateways or routers with specialized software support optimized for routing. IP forwarding algorithms in most routing software determine a route through a shortest path algorithm. In routers, packets arriving at an interface are examined for source and destination addressing and queued to the appropriate outgoing interface according to their destination address and a set of rules and performance metrics. Rules are encoded in a routing table that contains entries for all interfaces and their connected networks. If no rule satisfies the requirements for a network packet, it is forwarded to a default route. Routing tables are maintained either manually by a network administrator, or updated dynamically by a routing protocol.
A routing protocol specifies how routers communicate and share information about the topology of the network, and the capabilities of each routing node. Different protocols are often used for different topologies or different application areas. For example, the Open Shortest Path First (OSPF) protocol is generally used within an enterprise and the Border Gateway Protocol (BGP) is used on a global scale.[1] BGP is the de facto standard for worldwide Internet routing.
The IP forwarding algorithm is a specific implementation of routing for IP networks. In order to achieve a successful transfer of data, the algorithm uses a routing table to select a next-hop router as the next destination for a datagram. The IP address of the selected router is known as the next-hop address.[1]
Given a destination IP address, D, and network prefix, N:
if ( N matches a directly connected network address )[3][a]
Deliver datagram to D over that network link;
else if ( The routing table contains a route for N )
Send datagram to the next-hop address listed in the routing table;
else if ( a default route exists )
Send datagram to the default route;
else
Send a forwarding error message to the originator;
When multiple route table entries match, the entry with the longest subnet mask is chosen as it is the most specific one.[2] If there are multiple routes with the same subnet mask, the route with the lowest metric is used. If there are multiple default routes, the metric is also used to determine which to use. If there are multiple routes with the same subnet mask and metric, the system may use equal-cost multi-path routing as a forwarding strategy.
When no route is available, an ICMP error message is sent to the originator of the packet,[2] to inform that host that the packet could not be delivered. To avoid unnecessary retransmission to avoid network congestion, the sending host should either stop transmitting or choose another address or route.
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 71.46.14.1 0.0.0.0 UG 0 0 0 ppp0
10.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 eth0
71.46.14.1 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
172.16.0.0 0.0.0.0 255.240.0.0 U 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
192.168.1.0 192.168.96.1 255.255.255.0 UG 0 0 0 eth0
192.168.96.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
The host has several network interfaces. eth0 is the interface name of the network interface card representing an Ethernet port. ppp0 is a PPPoE interface, which is configured as the default route in this example.
A default route is recognized by the destination 0.0.0.0 and the flag G. A network router is identified by the network mask255.255.255.255 and the flag H.
^Many implementations list these directly-connected networks as routing table entries, in which case, this condition is handled by the general route table lookup.
References
^ abComer, Douglas E. (2000). Internetworking with TCP/IP (4th ed.). Upper Saddle River, NJ: Prentice Hall.