The Routing Information Protocol
(RIP) is a dynamic routing protocol
used in local area networks. As such it is classified as an interior gateway protocol
(IGP) using the distance-vector routing algorithm
. It was first defined in RFC 1058 (1988
). The protocol has since been extended several times, resulting in RIP Version 2 (RFC 2453). The original version is now known as RIP. Both versions are still in use today, however, they are considered technically obsoleted by more advanced techniques, such as Open Shortest Path First
(OSPF) and the OSI protocol IS-IS
. Since the advent of IPv6
, the next generation of the Internet Protocol
, RIP has been adapted, known as RIPng (RFC 2080, 1997
), for use with IPv6.
The routing algorithm
used in RIP, the Bellman-Ford algorithm
, was first deployed in a computer network in 1968, as the initial routing algorithm of the ARPANET
The earliest version of the specific protocol that became RIP was the Gateway Information Protocol, part of Xerox Parc's PARC Universal Packet internetworking protocol suite. A later version, named the Routing Information Protocol, was part of Xerox Network Services.
A version of RIP which supported the Internet Protocol (IP) was later included in the Berkeley Software Distribution (BSD) of the Unix operating system as the routed daemon, and various other vendors would implement their own implementations of the routing protocol. Eventually RFC 1058 was issued to unify the various implementations under a single standard.
RIP is a distance-vector routing protocol
, which employs the hop count
as a routing metric. The maximum number of hops allowed with RIP is 15, and the hold down time is 180 seconds. Originally each RIP router transmits full updates every 30 seconds by default. Originally, routing tables were small enough that the traffic was not significant.
As networks grew in size, however, it became evident there could be a massive burst every 30 seconds, even if the routers had been initialized at random times. It was thought, as a result of random initialization, the routing updates would spread out in time, but this was not true in practice. Sally Floyd and Van Jacobson published research in 1994 that showed having all routers use a fixed 30 second timer was a very bad idea. Without slight randomization of the update timer, this research showed that the timers weakly synchronized over time and sent their updates out at the same time. Modern RIP implementations introduce deliberate time variation into the update timer of each router.
RIP prevents routing loops from continuing indefinitely by implementing a limit on the number of hops allowed in a path from the source to a destination. This hop limit, however, limits the size of networks that RIP can support.
RIP implements the split horizon, route poisoning and holddown mechanisms to prevent incorrect routing information from being propagated. These are some of the stability features of RIP.
In many current networking environments RIP would not be the first choice for routing as its time to converge and scalability are poor compared to EIGRP, OSPF, or IS-IS (the latter two being link-state routing protocols), and the hop limit severely limits the size of network it can be used in. On the other hand, it is easier to configure because, using minimal settings for any routing protocols, RIP does not require any parameter on a router whereas all the other protocols require one or more parameters.
RIP is a UDP-based protocol (cf. User Datagram Protocol) running on top of the Transport Layer. As such it really is a protocol used by routing applications (such as routed) to exchange routing table information with other nodes and should be considered to operate in the Application Layer of the TCP/IP model. However, it is also often placed in the Network layer for the reason that it supports the network, a designation preferred by many authors using the OSI Reference Model; this despite the fact that this breaks the often discussed encapsulation hierarchy of OSI.
There are three versions of the Routing Information Protocol: RIP
, and RIPng
RIP, defined in RFC 1058, uses classful
routing. The periodic routing updates do not carry subnet
information, lacking support for variable length subnet masks
(VLSM). This limitation makes it impossible to have different-sized subnets
inside of the same network class
. In other words, all subnets in a network class must be the same size. There is also no support for router authentication, making RIP slightly vulnerable to various attacks.
Due to the above deficiencies of RIP, RIPv2 was developed in 1994 and included the ability to carry subnet information, thus supporting Classless Inter-Domain Routing
(CIDR). However to maintain backwards compatibility the 15 hop count limit remained. Rudimentary plain text authentication was added to secure routing updates; later, MD5
authentication was defined in RFC 2082. Also, in an effort to avoid waking up hosts that do not participate in the routing protocol, RIPv2 multicasts routing updates to 18.104.22.168, as opposed to RIP which uses broadcast.
RIPv2 is specified in RFC 2453 or STD 56.
RIPng, defined in RFC 2080, is an extension of RIPv2 for support of IPv6
. The main differences between RIPv2 and RIPng are:
- RIPv2 supports RIP updates authentication, RIPng does not (IPv6 routers were, at the time, supposed to use IPsec for authentication);
- RIPv2 allows attaching arbitrary tags to routes, RIPng does not;
- RIPv2 encodes the next-hop into each route entries, RIPng requires specific encoding of the nexthop for a set of route entries.
A somewhat more capable protocol than RIP, in the same basic family (distance-vector routing protocols
), was Cisco
's proprietary Interior Gateway Routing Protocol
(IGRP). Cisco does not support IGRP in current releases of its software. It was "replaced" by EIGRP
, the Enhanced Interior Gateway Routing Protocol, which is a completely new design. While EIGRP still uses a distance vector model, it relates to IGRP only in having a similar name.
is sometimes said to stand for Rest in Pieces
in reference to the reputation that RIP has for breaking unexpectedly, rendering a network unable to function.
- Edward A. Taft, Gateway Information Protocol (revised) (Xerox Parc, Palo Alto, May, 1979)
- Xerox System Integration Standard - Internet Transport Protocols (Xerox, Stamford, 1981)
- RFC 1058, "Routing Information Protocol"
- RFC 2453, "RIP Version 2"
- RFC 2080, "RIPng for IPv6"