Routing Information Protocol
From Wikipedia, the free encyclopedia
This article is in need of attention from an expert on the subject. WikiProject Telecommunications may be able to help recruit one. (March 2009) |
The Routing Information Protocol (RIP) is a dynamic routing protocol used in local and wide 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 Internet Protocol Suite | |
Application Layer | |
---|---|
BGP · DHCP · DNS · FTP · GTP · HTTP · IMAP · IRC · Megaco · MGCP · NNTP · NTP · POP · RIP · RPC · RTP · RTSP · SDP · SIP · SMTP · SNMP · SOAP · SSH · Telnet · TLS/SSL · XMPP · (more) | |
Transport Layer | |
TCP · UDP · DCCP · SCTP · RSVP · ECN · (more) | |
Internet Layer | |
IP (IPv4, IPv6) · ICMP · ICMPv6 · IGMP · IPsec · (more) | |
Link Layer | |
ARP · RARP · NDP · OSPF · Tunnels (L2TP) · Media Access Control (Ethernet, MPLS, DSL, ISDN, FDDI) · Device Drivers · (more) | |
Contents |
[edit] History
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 create their own implementations of the routing protocol. Eventually RFC 1058 was issued to unify the various implementations under a single standard.
[edit] Technical details
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 [1] 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 preferred 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-base breaks the often defended encapsulation hierarchy of OSI.
RIP is assigned the reserved UDP port 520.[2]
[edit] Versions
There are three versions of the Routing Information Protocol: RIP, RIPv2, and RIPng.
[edit] RIP
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.
[edit] RIPv2
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 224.0.0.9, as opposed to RIP which uses broadcast.
RIPv2 is specified in RFC 2453 or STD 56.
[edit] RIPng
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.
[edit] Similar protocols
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 the same name and routing metrics.
[edit] Implementations
- routed, included in most BSD Unix systems
- 6WINDGate - 6WIND, commercial embedded open-source routing modules
- Quagga, a fork of GNU Zebra for Unix-like systems
[edit] Limitations
- Hop count can not exceed 15, in case if it exceeds it will be considered invalid
- Most RIP networks are flat. There is no concept of areas or boundaries in RIP networks.
- Variable Length Subnet Masks are not supported by RIP 1.
- RIP has slow convergence or count to infinity problem
- RIP does not have mechanisms to detect Routing Loops
[edit] Humour
RIP 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.
[edit] See also
- Border Gateway Protocol (BGP)
- Open Shortest Path First (OSPF) protocol
[edit] References
- ^ The Synchronization of Periodic Routing Messages, S. Floyd & V. Jacobson,April 1994
- ^ "Port Numbers" (plain text). The Internet Assigned Numbers Authority (IANA). 2008-05-22. http://www.iana.org/assignments/port-numbers. Retrieved on 2008-05-25.
[edit] Further reading
- 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"
- Route Poisoning