本节书摘来自异步社区《IP路由协议疑难解析》一书中的第2章,第2.5节,作者 【美】Zaheer Aziz, CCIE #4127 , Johnson Liu, CCIE #2637 , Abe Martey, CCIE #2373 , Faraz Shamim, CCIE #4131,更多章节内容可以访问云栖社区“异步社区”公众号查看
2.5 RIP-1数据包格式
IP路由协议疑难解析
RIP数据报最长为512字节。第一个字节为命令字段,所谓的“命令”,既可以是rip update request(请求rip路由更新),也可以是rip update response(响应rip路由更新)。第二个字节是版本字段,值为1时,表示(路由更新消息)是RIP-1消息。其后的两个字节必须为0。第五和第六个字节为地址家族标识符字段,接下来的14个字节用作网络地址字段,如图2-2所示。如网络层协议为IP1,这14字节中只会用上其中的4字节,以表示IP地址,其余10字节保留。在RIP-2数据包中,这10个字节则有其他用途。随后的4字节为RIP度量值字段,最大值为16。在一个RIP数据报中,从“地址家族标识符”字段到“度量值”字段可以重复出现25次,也就是说,RIP数据报的最大长度为512字节2。
1RIP路由协议与EIGRP和IS-IS协议一样,可用来路由非IP数据包。—译者注
2作者似乎不会算算术。如图2-2所示,从“地址家族标识符”字段到“度量值”字段为20字节,20×25=500,再加上最开始的4字节,应该是504字节。作者所说的512字节应该是指RIP UDP数据报的长度,即504字节加上8字节的UDP报头。此外,作者的表述极不严谨。本段第一句的原文是“The maximum datagram size in RIP is 512 octets.”,最后一句的原文是“The next 4 bytes are used for the RIP metric, which can be up to 16..The portion from the address family identifier up to the Metric field can be repeated 25times, to yield the maximum RIP packet size of 512 bytes.”前面说“RIP数据报最长为512字节”,后面却说“RIP路由协议数据包最长为512字节”,如果是RIP路由协议数据包的话,其长度应该为512字节+20字节的IP包头=532字节。—译者注