| 網際網路套組 |
| --- |
| 應用層 |
| * BGP
* DHCP
* DNS
* FTP
* HTTP
* HTTPS
* IMAP
* LDAP
* MGCP（英语：）
* MQTT
* NNTP
* NTP
* POP
* ONC/RPC
* RTP
* RTSP
* SIP
* SMTP
* SNMP
* Telnet
* TLS／SSL
* SSH
* XMPP
* *更多...*
 |
| 傳輸層 |
| * TCP
* UDP
* DCCP
* SCTP
* RSVP
* *更多...*
 |
| 網路層 |
| * IP
	+ IPv4
	+ IPv6
* ICMP
* ICMPv6
* ECN
* IGMP
* OSPF
* IPsec
* RIP
* *更多...*
 |
| 連結層 |
| * ARP
* NDP
* Tunnels
	+ L2TP
* PPP
* MAC
	+ Ethernet
	+ DSL
	+ ISDN
	+ FDDI
* *更多...*
 |
| * 
* 论
* 编
 |

**路由信息协议**（英語：，缩写：**RIP**）是一种内部网关协议（IGP），為最早出現的距離向量路由協定。屬於網路層，其主要应用于规模较小的、可靠性要求较低的网络，可以通过不断的交换信息让路由器动态的适应网络连接的变化，这些信息包括每个路由器可以到达哪些网络，这些网络有多远等。 

虽然RIP仍然经常被使用，但是由于收敛速度较慢和支持的广播网络规模有限等缺点，许多人认为它将会而且正在被诸如OSPF和IS-IS这样的路由协议所取代。当然，我们也注意到EIGRP的存在，它属于与RIP相同的基本协议类别，但更能适应不同网络环境。

历史
--

RIP所使用的路由算法是Bellman-Ford算法.这种算法最早被用于一个计算机网络是在1969年，当时是作为ARPANET的初始路由算法。

RIP是由"网关信息协议"（Xerox Parc的用于互联网工作的PARC通用数据包协议簇的一部分）发展过来的，可以说网关信息协议是RIP的最早的版本。后来的一个版本才被命名为"路由信息协议"，是Xerox网络服务协议簇的一部分。

運作原理
----

每隔30秒会与相邻的路由器交换子訊息，以動態的建立路由表。

RIP封包格式
-------

```
0                   1                   2                   3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| command (1)   | version (1)   |      must be zero (2)         |
+---------------+---------------+-------------------------------+
| address family identifier (2) |      must be zero (2)         |
+-------------------------------+-------------------------------+
|                         IP address (4)                        |
+---------------------------------------------------------------+
|                        must be zero (4)                       |
+---------------------------------------------------------------+
|                        must be zero (4)                       |
+---------------------------------------------------------------+
|                          metric (4)                           |
+---------------------------------------------------------------+
```

RIP规定度量值取0~15之间的整数，大于或等于16的跳数被定义为无穷大。

版本
--

目前RIP共有三個版本，RIPv1、RIPv2、RIPng。

### RIPv1

RIPv1使用分类路由，定義在《RFC 1058》中。在它的路由更新（Routing Updates）中並不帶有子网的資訊，因此它無法支援可变长度子网掩码。這個限制造成在RIPv1的網路中，在同級網路下無法使用不同的子网掩码。換句話說，在同一個網路下所有的子網路數目都是相同的。另外，RIPv1的协议报文中没有验证字段，所以RIPv1不支持验证。

RIPv1是一个基于UDP的路由协议，并且RIPv1的数据包不能超过512字节（RIP报文头部占用4个字节,而每个路由条目占用20个八位组字节。因此,RIP消息最大为4+(25\*20)=504个字节,再加上8个字节的UDP头部,所以RIP数据报的大小(不含IP包的头部)最大可达512个字节。）。

### RIPv2

RIPv2在RIPv1的基础上改进如下几点：

* 支持外部路由标记（Route Tag），可以在路由策略中根据Tag对路由进行灵活的控制。实际上不同RIP进程间相互引入路由也可以使用Tag。
* 报文中携带掩码信息，支持路由聚合和CIDR。
* 支持指定下一跳，在广播网上可以选择到目的网段最优下一跳地址。
* 支持以组播方式发送更新报文，只有运行RIPv2的设备才能收到协议报文，减少资源消耗。
* 支持对协议报文进行验证，增强安全性。

### RIPng

RIPng（Routing Information Protocol next generation）在RFC 2080中被定义，主要是針對IPv6做一些延伸的規範。與RIPv2相比下其最主要的差異是：

* RIPv2 支援RIP更新認證, RIPng 則不支持，因为IPv6路由器理应会使用IPsec来进行身份验证;
* RIPv2 容許给路由器附上任何標籤， RIPng 則不容許；
* RIPv2 在每个路由表项中都保存下一跳的信息，RIPng 是对一组路由表项指定下一跳信息；
* RIPv2 使用UDP端口520和多播地址224.0.0.9通信，RIPng 则使用UDP端口521和多播地址FF02::9通信

RIP协议定时器
--------

RIP在更新和维护路由信息时主要使用以下4个定时器：

1. 更新定时器：当此超时器超时时，立即发送路由更新报文，缺省每30s发送一次。
2. 老化定时器：RIP设备如果在老化时间内没有收到邻居发来的路由更新报文，则认为该路由不可达。当学到一条路由并添加到RIP路由表中时，老化定时器启动，如果老化定时器超时，设备仍没有收到邻居发来的更新报文，则把该路由的度量值置为16，并启动垃圾收集定时器。
3. 垃圾收集定时器：如果在垃圾收集时间内仍没有收到原来不可达到路由的更新，该路由将被从RIP路由表彻底删除。
4. 抑制定时器：当RIP设备收到对端的路由更新，其度量值为16。则对应路由进入抑制状态，并启动抑制定时器，缺省值为180s。这时，为了防止路由震荡，在抑制定时器超时之前，即使再收到对端路由度量值小于16的更新，也不接受。当抑制超时器超时后，就重新接受对端发送的路由更新报文。

防止网络环路
------

由于路由器可能收到它自己发送的路由信息而造成网络环路，为了提高RIP协议性能而使用以下措施：

* 水平分割：水平分割指的是RIP从某个接口学到的路由，不会从该接口再发回给邻居设备。在帧中继和X.25等NBMA网络中，水平分割功能缺省为禁止状态。
* 毒性逆转：毒性逆转指的是RIP从某个接口学到路由后，将该路由的开销设置为16（即指明该路由不可达），并从原接口发回邻居设备。
* 滯留計時器(Hold-down timer):一但抑制計時器被觸發後，那麼將會引起該路由進入長達180秒（即6個路由更新周期）的抑制狀態階段。在抑制計時器超時前，路由器不再接收關於這條路由的更新信息。
* 触发更新：触发更新是指路由信息发生变化时，立即向邻居设备发送触发更新报文，通知变化的路由信息。（触发更新不会触发接收路由器重置自己的更新定时器）

相似協定
----

一個比RIP更強大，且同樣基於距離矢量路由協定的協定，是思科專有的IGRP。思科在其現時發行的軟件中已再沒有對IGRP提供支援，而且由EIGRP──一隻徹底地重新設計的路由通訊協定所取代。不過它與IGRP的關係就只有命名上的相似，亦純粹是因為EIGRP依然是基於距離矢量路由協定的緣故。

参见
--

* 王, 王达.. . 人民邮电出版社. 2017.  使用`|accessdate=`需要含有`|url=` (帮助)
* RFC 1058, "Routing Information Protocol"
* RFC 2453, "RIP Version 2"
* RFC 2080, "RIPng for IPv6"