路由器如何知道它收到了 OLSR 消息?

网络工程 路由 ip 协议论 联网
2022-02-11 05:36:45

因此,我正在研究自己的路由协议,该协议基于 IP 的替代方案,称为 ILNP,但我无法理解路由器如何区分 OLSR 的控制包和数据包。

IP 标头包含一个“next_header”字段,它可以通知路由器此数据包是例如 ICMP 数据包。

但是对于 OLSR 等路由协议,该字段将设置为什么,以便路由器了解如何解析它?

目前我只是在使用 ICMP 代码,但显然这在现实中是行不通的,因为它可能与真正的 ICMP 类型和代码值冲突。

我觉得我找不到答案的事实表明我正在考虑这个错误,因此提出了错误的问题。所以,请给点建议!

2个回答

IP 标头有一个协议字段,指示有效负载的类型。

有效负载可以是传输层协议,如 TCP 或 UDP,也可以是直接位于 IP 之上的协议,如 OSPF。

使用 TCP 或 UDP 的协议通常使用端口号来标识它们的类型(如 RIP 的 UDP 端口 520)。

OLSR 使用UDP作为传输层协议,默认端口为 698 - 检查RFC 3626 Clause 3.1

具有路由协议支持的路由器需要有一个完整的 IP 堆栈(通常无论如何都会被管理)。它侦听它理解并处理传入数据报的那些 UDP 端口或 IP 协议。根据协议及其选项,数据报被寻址到路由器的 IP 地址和 MAC、专用的多播地址或有时只是广播。

路由协议不关心这些事情。路由器使用路由协议来交换路由信息,但它们不路由数据包,这是由路由器使用路由表完成的。路由协议是填充路由表的一种方式。

具有路由器上目标地址的数据包将被路由到路由器的控制平面。数据包按目的网络地址进行路由,如果目的是路由器本身,数据包将被发送到路由器软件。