我想了解思科的数据包转发机制

网络工程 思科 路由
2021-07-04 08:38:13

我想了解 Cisco 的 CEF 和 Fast Forward 缓存数据包交换如何比进程交换更好,而且我想我可能无法理解 Cisco 的语言。

当他们说 FIB(转发信息库)或 Fast Forward Cache 存储下一跳信息并且这有助于减少路由数据包的时间时,我想知道相比之下进程切换有多慢?查找封装方法和出口接口是 CPU 的真正负担吗?

所有三种数据包转发机制都在使用时间(CPU 周期?)来解封装数据包并了解其目标地址。到目前为止,我认为他们正在使用相同的时间。然后比较FF缓存或FIB或出口接口和封装方法的路由表(进程交换)。这个阶段必须存在时差。

我不明白你是从缓存还是从 RAM 中查找下一跳信息有什么区别?效率问题?有人可以帮我理解吗?

2个回答

Cisco Learning Network 上有答案。我直接从帖子中复制了答案。致谢 Keith Barker - CCIE RS/安全,CISSP

它涵盖了您的许多问题。

进程切换需要 CPU 亲自参与每个转发决策。

快速交换仍然使用 CPU,但在转发数据包后,有关如何到达目的地的信息存储在快速交换缓存中。这样,当看到另一个去往同一目的地的数据包时,可以重新使用缓存中的下一跳信息,因此处理器不必再次查找和组合所有信息。如果信息没有被缓存(例如给定目标网络的第一个数据包),对于该数据包,CPU 将具有类似的工作负载,就好像没有使用快速交换一样。

Cisco Express Forwarding (CEF) 是对路由器进行优化以使其能够更快地转发更多数据包的演进。CEF 通过构建转发信息库 (FIB) 和邻接表来作弊。FIB 的访问速度基于他们的构建方式(它是 Cisco 专有的),并且包含预先计算的反向查找、路由的下一跳信息,包括要使用的接口和 L2 信息。(路由器在转发数据包时必须考虑的所有内容)。

简而言之:
进程切换就像做数学,长手。

快速切换,使用缓存,就像做一道题一次手,后面的题你记住答案,(从内存,或者缓存)。

CEF 就像编写了一个 Excel 电子表格,当数字到达单元格时,答案就已经计算出来了。

来源:https : //learningnetwork.cisco.com/thread/12668

它更多是关于需要查找的“所有其他事情”。

路由表将告诉您下一跳 IP(以及送出接口)。

但随后路由器将不得不查看 ARP 表以了解 L2 封装将具有什么。

然后路由器将不得不查看接口 MTU,以确保不需要对数据包进行分段。

然后路由器将需要查看媒体类型以正确封装数据包(它是 Ethernet2?它是 HDLC?它是 PPP?等)。

还有很多其他人。(我相信这个 SE 的其他海报会填写详细信息)。

但是考虑到每个“查找”可能花费相同的大致时间,如果这样的话,更少的查找总是比更多的查找更快。CEF 等只是将所有表合并为一个,因此只需要查找一次。