路由器了解传输协议吗?

网络工程 路由 交换 奥西
2022-02-08 15:45:15

我们学习了集线器、交换机和路由器之间的区别。集线器是第 1 层设备,它只知道第 1 层,不关心第 2 层及更高层。同理,交换机是二层设备,它只知道一二层,不关心三层及以上。同样,路由器是第 3 层设备,它只知道第 1-3 层,而不关心第 4 层及更高层(这是否正确?)。

但是等等……RIP和BGP是路由器使用的路由协议,封装在UDP和TCP这4层协议中。那么如果路由器是第 3 层设备,那么它们如何提取 RIP 或 BGP 数据包呢?除非他们了解 UDP/TCP。但这会使它们成为第 4 层。请赐教。

3个回答

路由器的核心功能是基于网络层(L3)的转发。这是在其转发平面上完成的。

路由器通常在其控制平面中具有一些更高层的功能:SSH/Telnet 控制台、Web 界面、RIP/OSPF/BGP 路由交换……所有这些都使用传输层 (L4) 和应用层 (L7)协议,但这并不能使路由器成为另一回事。

NAT/NAPT 路由器还使用L4(有时甚至是 L7)信息进行转发,技术上使其成为 L4(L7?)设备 - 如果您在吹毛求疵的话。

这里有两件事。

首先,虽然OSI 七层模型是学习协议的好工具,但它只是一个模型。在现实世界中,设备不会仅仅因为它是一个很好的理论而坚持特定的层;为了提供所需的功能,设备会在必要时愉快地违反层边界。例如:

  • 使用IGMP Snooping基于 DSCP 的 QoS 的交换机会查看第 3 层 (IP) 报头以做出决策。
  • 路由器可以使用应用程序识别(如NBAR)一直到第 7 层,以便能够优先处理 YouTube 上的 catvideo 的重要流量。

这是有用且理想的行为,因此没有理由“禁止”这样做。

其次,路由器需要许多不同的组件才能实现其作为第 3 层数据包转发设备的功能。

  • 它正在运行一个管理守护程序,您可以在其中登录以使用更高级别的协议(SSH、HTTPS、SNMP,甚至可能是 NETCONF 或 REST API 之类的东西)来管理设备。
  • 它正在运行一个路由守护进程,该守护进程使用某些协议(OSPF、BGP 等)与相邻路由器通信,以交换信息并填充用于转发流量的路由表。
  • 而且,事实上,许多其他服务于不同目的的守护进程。

使用所有这些守护程序,该设备与常规端点没有什么不同。如果您想坚持 OSI 模型,您可以将路由器视为运行(路由)应用程序(第 7 层)的服务器,用于编写第 3 层转发组件。

路由器是第 3 层设备,因为它们在第 3 层(主要是 IP)传输数据包。交换机被认为是第 2 层设备,因为它在第 2 层(主要是以太网)传输帧。这意味着它们必须分别读取第 3/2 层报头中的信息才能转发数据包/帧。

但是,交换机和路由器都了解它们各自传输层之上的协议。例如,您可以通过 SSH 连接到这些设备。这是否使它们在第 7 层工作?不,因为在这种情况下,它们不传输数据包,而是源或目标。这与 BGP、RIP 等相同。路由器可以使用这些协议来完成他的任务(转发数据包),但根本不是必需的。但是,如果没有 IP 协议(​​或其他第 3 层协议,如 IPX),路由器将无法工作。这同样适用于交换机。如果没有以太网(或帧中继、ATM 等),它就无法工作。当然最好使用生成树协议或 VTP 等其他技术,但它们不是强制性的。