RIPng报文的格式、路由表条目结构以及报文处理流程

下面解析RIPng报文的格式、路由表条目结构以及报文处理流程。


一、RIPng报文结构概览

RIPng报文分为报文头路由表项两部分:

1. 报文头(固定8字节)

复制代码
0                   1                   2
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+---------------+---------------+---------------+
|   command     |    version    |   必须为零    |
|     (1)       |     (1)       |     (2)      |
+---------------+---------------+---------------+
|             路由表项1 (RTE) (20字节)           |
|               ...                            |
|             路由表项N (RTE) (20字节)           |
+-----------------------------------------------+
  • Command(报文类型,1字节)

    • 0x01:Request报文 → 请求路由信息

    • 0x02:Response报文 → 通告/回应路由信息

  • Version(版本号,1字节):对于RIPng,固定为1

  • 必须为零(2字节):保留字段,填充0

2. 路由表项(RTE,20字节)

这是RIPng的核心改进点,引入了两种类型的RTE

RTE类型 结构 作用
下一跳RTE 前16字节为下一跳的IPv6地址 后4字节的特殊值 紧随其后的一组前缀RTE指定下一跳地址
前缀RTE 前16字节为目的IPv6前缀 后4字节为路由标签+前缀长度+度量值 携带具体的路由信息

关键关系 (第3张图展示):一个"下一跳RTE"后面可以跟随多个"前缀RTE",这些前缀共享这个下一跳地址,直到出现下一个"下一跳RTE"为止。这能有效减少报文长度


二、路由表项RTE详解

RIPv2的RTE结构(20字节)

复制代码
Address Family Identifier (2) | Route Tag (2)
------------------------------|---------------
IP Address (4)                | Subnet Mask (4)
------------------------------|---------------
Next Hop (4)                  | Metric (4)
  • 地址族标识符:标识地址类型(如IPv4)

  • 路由标签:标记路由来源

  • IP地址:目标网络地址(IPv4)

  • 子网掩码:明确网络位长度

  • 下一跳:到达目标的下一跳IPv4地址

  • 度量值:到达目标的距离(跳数,1-15)

RIPng的RTE结构(20字节)

复制代码
IPv6 prefix (16)
-------------------------------------
route tag (2) | prefix len (1) | metric (1)
  • IPv6前缀(16字节):目标网络的IPv6前缀

  • 路由标签(2字节):同RIPv2

  • 前缀长度(1字节):0-128,替代了IPv4的"子网掩码"

  • 度量值(1字节):跳数,有效范围1-15,16表示不可达

核心差异总结

对比项 RIPv2 RIPng
目标地址 4字节 IPv4地址 16字节 IPv6前缀
网络位标识 4字节 子网掩码 1字节 前缀长度
下一跳 每个RTE都包含(4字节) 独立为"下一跳RTE",可被多个前缀共享
度量值 4字节 1字节

RIPng的设计更加紧凑,专门为IPv6的大地址空间优化,用"前缀长度"替代"掩码"更灵活,用"下一跳RTE"共享机制减少冗余。


三、RIPng报文处理流程

1. Request报文(请求报文)

触发时机

  • 路由器启动时

  • 收到特定指令手动更新时

报文类型

复制代码
| command=0x01 | version=1 | 必须为零=0 |

细分两种

  • 通用Request报文

    • 通常包含一项特殊的前缀RTE:IPv6前缀和前缀长度都为0,度量值=16

    • 含义:"请把你的整个路由表都发给我"

    • 目的:路由器启动时快速学习全网路由

  • 指定Request报文

    • 包含具体的前缀RTE,指定了要查询的IPv6网络

    • 含义:"请告诉我到达这个特定网络的路由信息"

    • 目的:用于网络故障诊断或按需查询

发送方式 :都以组播 形式发送到FF02::9(所有RIPng路由器)

2. Response报文(响应报文)

触发时机

  • 收到Request报文后

  • 路由信息发生变化时(触发更新)

  • 周期性(默认30秒)发送

报文内容

复制代码
| command=0x02 | version=1 | 必须为零=0 |
| 下一跳RTE1 (可选) | 前缀RTE1 | 前缀RTE2 | ... |

包含实际的、完整的路由信息。

发送方式

  • 响应Request时:可单播回复请求者,或组播

  • 触发/周期更新时:组播到FF02::9


四、完整处理流程示例

场景:一台RIPng路由器R1刚启动。

  1. 启动后立即

    • R1构建一个通用Request报文(一个RTE,前缀全0,度量16)

    • 组播(FF02::9)发送出去:"大家好,我是新来的,把你们知道的路由都告诉我"

  2. 邻居路由器R2收到

    • 识别为Request报文(command=0x01)

    • 检查RTE:发现是"通用请求"(前缀全0)

    • 准备一个Response报文,包含自己的全部路由表

    • 组播或单播回复给R1

  3. R1收到Response

    • 识别为Response报文(command=0x02)

    • 解析报文中的RTE序列

    • 遇到"下一跳RTE",记录其IPv6地址

    • 后续的"前缀RTE"都使用这个下一跳,直到遇到新的"下一跳RTE"

    • 将解析出的路由(目标网络+下一跳+度量)加入路由表

  4. 后续维护

    • 每30秒,R1也会组播自己的Response报文

    • 如果R1的路由发生变化,立即发送触发更新的Response

    • 如果收到对特定网络的Request,发送对应的指定Response


五、核心要点总结

  1. 报文结构:RIPng报文 = 8字节头部 + N×20字节RTE

  2. RTE创新 :引入"下一跳RTE"和"前缀RTE"两种类型,下一跳可被多个前缀共享,节省带宽

  3. IPv6适配:用"前缀长度"替代"子网掩码",用16字节字段存IPv6地址

  4. 处理机制:Request/Response模式,支持"通用请求"(要全部)和"指定请求"(要特定)

  5. 效率优化:组播发送,减少网络负担;触发更新,加快收敛

RIPng在继承了RIP简单易用优点的同时,通过重新设计RTE结构,完美适配了IPv6的地址特点和现代网络对效率的需求。

相关推荐
梁辰兴15 小时前
计算机网络基础:虚拟专用网
服务器·网络·计算机网络·vpn·虚拟专用网·计算机网络基础·梁辰兴
小李独爱秋1 天前
计算机网络经典问题透视:数据流的平均速率,峰值速率和突发长度各表达什么意思?
网络·网络协议·计算机网络·安全·信息与通信
蜂蜜黄油呀土豆1 天前
深入理解计算机网络中的应用层知识
计算机网络·http·tcp·网络通信·dns
YYYing.1 天前
【计算机网络 | 第九篇】计网之传输层(三)—— TCP的拥塞控制与连接管理
网络·网络协议·tcp/ip·计算机网络
填满你的记忆1 天前
【计算机网络·基础篇】TCP 的“三次握手”与“四次挥手”:后端面试的“生死线”
java·网络·网络协议·tcp/ip·计算机网络·面试
小李独爱秋1 天前
计算机网络经典问题透视:什么是服务质量QoS?为什么说“互联网根本没有服务质量可言?”
网络·计算机网络·安全·qos·服务质量
猫头虎1 天前
如何把家里 NAS 挂载到公司电脑当“本地盘”用?(Windows & Mac 通过SMB协议挂载NAS硬盘教程,节点小宝异地组网版)
windows·网络协议·计算机网络·macos·缓存·人机交互·信息与通信
CS创新实验室1 天前
《计算机网络》深入学:虚拟局域网(VLAN)技术与应用
开发语言·计算机网络·php·vlan·虚拟局域网
CS创新实验室2 天前
《计算机网络》深入学:轮询和令牌传递协议
开发语言·计算机网络·考研·php·408
CS创新实验室2 天前
《计算机网络》深入学:局域网与接入网技术
网络·计算机网络·考研·408·局域网