RIP协议报文采用UDP封装,源、目的端口为UDP 520。    //传输层

RIP共定义了两种报文:一种是请求报文(Request),另一种是响应报文(Response)。Request请求报文用于向邻居请求全部或部分RIP路由信息,Response响应报文用于发送RIP卤藕更新,Response响应报文中携带了路由以及该路由的度量值等信息。    //Response报文最多可携带25个路由条目,当待发送的路由数量大于25时,需使用多个Response报文。

一、RIPv1报文结构:

1、命令字段:Command,用于表示RIP报文的类型,长度为8bit。值为1时,该报文为Request报文;值为2时,该报文为Response报文。

2、版本字段:Version,占用8bit,RIPv1中,该字段值为1。

3、地址族标识符:Address Family Identifier,AFI,长度为16bit。字段值为2时,表示ip协议;字段值为0时,表示该报文为Request报文且用于向直连路由器请求其整张路由表,同时该Request报文中包含且值包含一个路由条目,该路由的目的网络地址为0.0.0.0,度量值为16。

备注:AFI字段值为0,主要用于路由器初始学习阶段,用于向直连路由器请求其整张路由表。

4、IP地址:IP Address,路由的目的网络地址,占用32位。
5、度量值:Metric,路由的度量值,占用32位。
注意:RIPv1的目的网络地址是基于传统网络地址分类,即A、B、C、D、E类地址,所以协议报文中没有网络掩码信息。从而可以得出,RIPv1是不支持CIDR无类域间路由和VLSM可变长子网掩码,即RIPv1上配置192.168.1.0/22是不生效的,RIPv1会将192.168.1.0当做C类地址/24处理。

二、RIPv2报文结构:

1、命令字段:和RIPv1类似。

2、版本字段:Version,RIPv2中该字段值为2。

3、地址族标识符:AFI,和RIPv1类似。

4、路由标记:Route Tag,用于给路由设置标记信息,默认为0.当一条外部路由被引入RIP时,RIP可以给该路由设置路由标记,该标记在整个RIP域中都不会丢失,占用16bit。

5、IP地址:路由的目的网络地址,占用32bit。

6、网络掩码:Netmask,占用32bit。    //RIPv2报文携带了32位网络掩码,所以RIPv2支持CIDR和VLSM

7、下一跳地址:Next Hop,占用32bit。RIPv2中定义了该字段,在MA网络中可以避免次优路径现象。在路由器发送路由更新时,路有条目中的下一跳字段会被设置为0.0.0.0,收到的路由器加载该路由条目到路由表时,会将路由的更新源(报文源IP地址)设置目的网段的下一跳地址。

8、度量值:Metric,路由的度量值,占用32bit。