天下网吧 >> 网吧方案 >> 方案分析 >> 正文

三层以太网交换机CPU收发包问题的分析

摘要:三层以太网交换机发展迅速,一方面网络设备的带宽及交换容量大幅提升,另一方面设备所支持的协议种类也随着用户的需求不断增加。如何在大业务量的网络环境下确保各设备之间协议包的正常交互,是以太网交换机设计面临的重要问题。文章以基于ASIC的三层以太网交换机为例,从CPU负载、软硬件队列配置、CPU和交换芯片的通信机制等方面入手,讨论并分析在多进程环境中与CPU收发包功能相关的一些典型问题,得到解决办法。解决方法对于网络处理器(NP)同样适用。

关键词:三层以太网交换机 CPU 中断 轮询 直接存储器存取 队列调度

在当前的三层以太网交换设备中,报文的二层交换和三层路由主要由交换芯片和网络处理器完成,CPU基本上不参与交换和路由过程,主要完成管理和控制交换芯片的功能[1]。

在这种情况下,CPU的负载主要来自以下几个方面:协议的定时驱动、用户的配置驱动、外部事件的驱动。其中,外部事件的驱动最为随机,无法预料。典型的外部事件包括端口的连接/断开(Up/Down),媒体访问控制(MAC)地址消息的上报(包括学习、老化、迁移等),CPU通过直接存储器存取(DMA)收到包,CPU通过DMA发包等。

在以上所列的外部事件中,又以CPU通过DMA收到包之后的处理最为复杂。因为数据包由低层上送到上层软件时,各协议的处理动作千差万别,可能会涉及到发包、端口操作、批量的表操作等。所以,只有处理好CPU的收发包的相关问题,才能使相关的上层协议正常交互,从而使交换机稳定、高效地运行。

1 可能涉及到的问题

以下就CPU收发包可能涉及的各个方面分别说明。

下面的分析都基于典型的CPU收发包机制:CPU端口分队列,通过DMA接收,采用环形队列等。

1.1 CPU的负载与收包节奏控制

根据交换机处理数据包的能力,决定单位时间上送到CPU的包的个数;决定了单位时间上送多少个包给CPU后,再考虑上送数据包的节奏。

假设通过评估,确定了单位时间上送CPU数据包的上限,例如每秒x个数据包。

图1

图1给出了两种典型的处理手段:匀

本文来源:天下网吧 作者:网吧方案

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系Email:support@txwb.com,系统开号,技术支持,服务联系QQ:1175525021本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下