rip报文解析
RIPv1
request:
command字段:占1个字节,取值为1时表示该报文是一个请求报文。当路由器宣告以后会从对应的接口发出请求报文,对端收到后会发出回应报文。
version字段:占1个字节,取值为1时表示RIPv1。之后的2个字节填充0。
address Family Identity字段:占2个字节,请求报文取值为0。之后的14个字节填充0。
metric字段:占4个字节,指度量值,在RIP中就是跳数。请求报文取值为16。
response:
command字段:占1个字节,取值为2时表示该报文是一个回应报文。其中包含路由信息。
address family 字段:占2个字节,ipv4取值为2。
ip address字段:占4个字节,表示路由的目的地址,该地址是网络地址。需要注意的是该地址本应是1.1.1.0/24,但是RIPv1是无类别且主类宣告,所以只能显示1.0.0.0。
metric字段:占4个字节,指度量值,在RIP中就是跳数。
通过以上的分析,可以发现RIPv1的报文有很多字节没有使用。1个RIPv1报文最少为24个字节,其中用到的只有12字节,这是极大的浪费。在RIPv2中这一点得到显著改善。
RIPv2
command字段:占1个字节,取值为2时表示该报文是一个回应报文。其中包含路由信息。
version字段:占1个字节,取值为2时表示RIPv2。
address Family字段:占2个字节,ipv4取值为2。
route tag字段:占2个字节,标记外部重分发进RIPv2中的路由
ip address字段:占4个字节,表示路由的目的地址,该地址是网络地址。
netmask字段:占4个字节,是子网掩码,RIPv2是有类别的,所以有这个字段。
next hop字段:占4个字节,它表示一个比通告路由器的地址更好的下一跳。如果这个字段设置为0.0.0.0说明通告路由器的地址就是最优的下一跳。
metric字段:占4个字节,指度量值,在RIP中就是跳数。