三层交换机处理器收发包相关问题分析

发布者:DreamySunset最新更新时间:2007-04-27 来源: 小熊在线关键字:定时  驱动  控制  存储 手机看文章 扫描二维码
随时随地手机看文章
在当前的三层以太网交换设备中,报文的二层交换和三层路由主要由交换芯片和网络处理器完成,CPU基本上不参与交换和路由过程,主要完成管理和控制交换芯片的功能[1]。

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

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

  1 可能涉及到的问题

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

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

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

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

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

图1给出了两种典型的处理手段:匀速上报CPU、突发(Burst)方式上报CPU,下面分别分析一下这两种方式的优劣:

  (1)匀速上报CPU

数据包匀速上报CPU时,对CPU队列的冲击较小,而且对CPU队列的缓冲能力要求不高,CPU队列不必做得很大。

  (2)突发(Burst)方式上报CPU

交换芯片(采用ASIC)一侧的硬件接收队列和DMA内存空间中的环形队列,一起赋予了交换机一定的缓冲能力(针对上送CPU的数据包)。利用这个缓冲能力,我们可以把控制周期适当放长,并设定控制的粒度(单位控制周期内CPU收报个数的上限),采用类似于电路中负反馈的机制动态地使能和关闭CPU收包功能。这样就在宏观上实现了对数据包上送CPU速率的控制。另外,如果交换芯片(采用ASIC)支持基于令牌桶算法的CPU端口出方向流量监管或整形功能[2-3],且监管或整形的最小阈值可以满足CPU限速的需要,则可以利用这个功能控制数据包上送CPU的节奏,减小CPU的负载。这样软件的处理就简化了很多。

  1.2CPU端口队列的长度规划

如果仅考虑交换机CPU端口的缓冲能力,CPU端口队列当然是越长越好,但是必须兼顾对其他功能以及性能的影响。针对不同的ASIC芯片,需要具体问题具体分析。

  1.3零拷贝

零拷贝是指在整个数据包的处理过程中,使用指针做参数,不进行整个数据包的拷贝。这样可以大大提高CPU的处理效率。

使用零拷贝后,会一定程度上降低软件处理的灵活性,我们会面临到这样的问题:如果协议栈需要更改一个数据包的内容,会直接在接收缓存(buffer)上修改,但是如果需要在数据包中删除或添加字段(例如添加或删除一层标签(tag)),即数据包的长度需要变化时,应该如何处理。

添加或删除字段,必然会导致数据包头一侧或包尾一侧的位置发生移动,如果包尾一侧移动,问题比较简单,只要数据包总长度不超过buffer边界即可。由于通常此类操作都靠近包头的位置,如果包头一侧移动,效率会比较高,所以协议栈在处理时可能更倾向于在包头一侧移动,这时就需要驱动在分配buffer时做一些处理:

(1)接收数据包时,头指针不能指向buffer边界,需要向后偏移一定裕量,同时单个buffer的大小也必须兼顾到最大传送单元(MTU)和该裕量。

(2)释放数据包时buffer首指针需要作归一化处理(如图2所示)。

  1.4中断/轮询

目前交换机涉及到的外部中断主要由交换芯片产生,交换芯片主要的外部中断包括DMA操作(如收到包、发包结束、新地址消息等等)和一些出错消息。如果中断请求过于频繁,中断服务程序(ISR)和其他进程之间频繁地上下文切换会消耗大量CPU时间。如果有持续大量的中断请求,CPU会始终处于繁忙状态,各种协议得不到足够的调度时间,从而导致协议状态机超时等严重故障。

为了避免事件触发频率不可控的问题,可以使用轮询机制,通常的做法是用CPU定时器触发原先由外部中断触发的ISR,由于定时器触发的间隔是固定的,所以ISR执行的频率得到了控制,避免了上述的问题。

轮询和外部中断相比,只是节奏可控(外部中断的节奏取决于外部事件发生的频率,CPU不可控)。但是,轮询也有其不可避免的缺点——响应慢。不能满足某些实时性要求 较高的功能。另外,人们会发现用ping命令检测交换机3层接口大包时,使用轮询方式的交换机比使用中断方式的交换机的时延明显要大。

如果能通过某种机制,避免持续、大量的中断请求,则既可以保证CPU不会过于繁忙,又保留了中断实时处理的优点。

典型的会产生大量中断事件的行为是CPU接收数据包和MAC地址消息上报。以收包为例,在前面“CPU负载与收包节奏控制”部分提到的Burst方式就是根据实时的流量,控制接收DMA的开关,这样就达到了使中断源受控的目的,这种类似负反馈的机制可以很好的避免持续的中断事件上报CPU。

总之,轮询控制简单,但实时性较差;中断实时性好,但是使所有的中断源受控有一定难度。在系统初始设计阶段,我们需要综合考虑需求以及芯片对外部事件的处理方式,来决定采用中断或者轮询方式,或者两者兼用。

  1.5多进程环境中外部事件的处理机制

常见的外部事件(中断事件)包括收到包、包发送完(这里指的都是CPU收发包),包括收到MAC地址消息、MAC表操作完成等。

如果把各类中断事件的处理放在一个进程里,就人为地造成了各个事件耦合性增强,增加了各种事件相互制约的机会。

在多任务操作系统中,为了能更灵活地处理各个事件,减少事件之间的子相互制约关系,各种事件应当尽可能地单独起进程,或者根据处理方式的不同划分为几个进程,至少用单个进程来处理是不合适的。

  1.6协议包保护和CPU保护

对于基于ASIC的交换机,协议包保护是指利用ASIC芯片的某些机制,把特定的协议包指定到特定的端口队列上去,保证其经DMA队列上送CPU的优先级;CPU保护是指尽量减少不必要的数据包对CPU的冲击。

实现协议包保护的必要条件:

  (1)CPU端口必需支持严格优先级(SP)或者带权重的罗宾环(WRR)的调度算法。

  (2)交换芯片必需具有较强的流分类能力,且可以给不同的流指定不同的端口队列。

  在系统方案设计时我们需要兼顾对协议报文的保护和对CPU的保护,应该尽量做到:

  (1)保证CPU收包通道和发包通道的畅通。

  (2)精确匹配,按需选取。充分利用ASIC芯片的访问控制列表(ACL)功能,尽量精确地匹配各类协议报文。必要时需要匹配到4层字段[4]。

  实现以上几点时,应兼顾其他功能及整机性能的限制。

  1.7效率降低的避免

在多任务操作系统中,各种事件需要用尽量短的时间片处理完成,以保证其他任务有足够的机会得到调度。所以我们在调用任何函数时都要考虑其执行效率。除了算法本身会影响执行效率之外,频繁地访问某些硬件也相当耗时,而这一点往往容易被忽略。

  2 结束语

随着以太网相关技术的发展,交换芯片和网络处理器的处理能力不断被提升;相比之下,数据交换设备中CPU处理性能的提升程度远远不及交换芯片和网络处理器;同时数据交换设备支持的业务种类也在不断增加,对CPU承载的业务量也有了更高的要求。在这种情况下,交换设备容量以及支持业务种类的大幅提升和有限的CPU资源之间的矛盾会日益凸显。因此,做好CPU和交换芯片以及网络处理器接口的缓冲管理、队列调度以及流量监管,合理利用CPU资源,是保证数据交换设备安全、稳定运行的前提,也是目前及将来数据交换设备开发的重要课题。

关键字:定时  驱动  控制  存储 引用地址:三层交换机处理器收发包相关问题分析

上一篇:基于GSM网络的远程自动抄表系统的设计与实现
下一篇:符合Rx阻塞模板和灵敏度要求的TD-SCDMA RD V2.1设计

推荐阅读最新更新时间:2024-05-13 18:35

高压看门狗定时器提高车载系统安全性
  汽车设计中,越来越多的电子系统正在逐步替代机械功能——从引擎定时控制到刹车、方向盘控制,而电子系统相对容易发生故障,这就需要谨慎考虑系统的安全性,确保系统具备较高的故障容限。不应该在发生单点故障时将司机或乘客至于危险处境,至少能够使汽车“跛行”到大路以外或最近的维修站。当电子设备发生故障时,为确保汽车的安全行驶需要利用监控电路开启备份电路,安全地接管系统操作。   在纯机械系统的汽车时代,引擎依照机械方式产生的信号点燃空气燃料混合器。机械分配器则选择适当的火花塞,沿线传递信号。刹车系统则将作用在踏板上的压力通过刹车轴、刹车总泵、液压管传送到制动钳。离合器和油门只是简单地受控于连接在踏板上的一条钢缆。方向盘通过一个金属舵轮、
[汽车电子]
高压看门狗<font color='red'>定时</font>器提高车载系统安全性
基于ARM控制器和GPRS技术网络实现配变监控系统的设计
1、引言 配电变压器是联系电网和用户的基础,它的运行状况直接关系到用户能否可靠的使用电能,因此有必要对它进行数据采集和实时监控.目前国内已出现的配变数据采集通信主要有有线与无线两种方式.有线通信方式有电话线、电力线载波和光纤等,它们存在通信易受干扰、可靠性低等缺点,难以普及,而无线电台通信方式由于需要进行主站建设,费用较高.随着无线通信技术与通信网络的迅速发展,特别是基于GSM数字移动通信系统的GPRS技术的成熟,为配变监测系统提供了新的通信方式。 本文提出了一种基于GPRS网络的配变远程监控系统的设计方案,解决了配变参数远程传输问题,实现实时数据采集和实时负荷监测的功能.并基于ARM 控制器设计了一种先进的配变监测器,为电力
[单片机]
基于ARM<font color='red'>控制</font>器和GPRS技术网络实现配变监控系统的设计
要么控制人工智能,要么成为人工智能
2018年,是属于 人工智能 的一年,仅仅是在国内,就崛起了包括像 旷视科技 Face++、极链科技、 优必选 科技这样高速发展的人工智能企业, AI 正在开花结果,掀起一轮又一轮的技术高潮。 但与此同时,人工智能所带来的活力也向世人提出了一个命题,那就是,它会终结就业吗?针对这个命题,在近日普华永道发布的《人工智能和相关技术对中国就业的净影响》报告中,阐述了人工智能在未来20年会对中国就业产生的影响。 根据普华永道的分析,人工智能及相关技术在未来20年,将取代中国现有约26%的工作岗位,但与此同时也会通过提升生产率和实际收入水平,在中国创造出大量新工作机会。普华永道最终也根据中央估计值,预测人工智能对中国就业的净影响可能
[嵌入式]
要么<font color='red'>控制</font>人工智能,要么成为人工智能
中断触发定时器:99秒计时+99秒倒计时
___________________________________________ 功能:99秒计时 时间2010—7—18 _________________________________________ #include reg52.h code unsigned char tab ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned char Dis_Shiwei; unsigned char Dis_Gewei; void delay(unsigned int cnt) { while(--cnt); }
[单片机]
众多IC厂商LED照明驱动方案青睐原边反馈方式
LED 被称为第四代照明光源或绿色光源,具有节能、环保、寿命长、体积小等特点,可以广泛应用于各种指示、 显示 、装饰、背光源、普通照明和城市夜景等领域。随着 LED应用在照明、背光、 显示屏 等诸多市场的出色表现,众多 IC 厂商纷纷向LED领域拓展,从事 LED驱动 解决方案的开发。八仙过海,各显神通,不同IC 厂商根据自身情况选择各自的目标市场。不过,共性仍然存在,在面对体积、调光控制、成本、转换效率等挑战时,其应对策略值得讨论。 原边反馈方式成为共同选择 LED驱动器主要功能就是为 LED灯 提供稳定、精确的工作电流。传统的LED驱动器方案采用次级反馈来实现精确的输出电流控制,通过次级侧的电流
[电源管理]
用于访问控制的近场通信 (NFC)与射频识别 (RFID)
RFID 卡片或徽章通常用来实现非接触式访问控制。这在写字楼中很常见,主要用于提供楼宇门禁功能,并且限制对特定区域的访问。与13.56MHz RFID一样,近场通信 (NFC) 采用同样的ISO和IEC标准与协议,应用于很多智能手机中。这些设备可在住宅中实现全新的访问控制应用,并实现应用与电话及支持RFIC的徽章或卡片之间的通信。在设计此类访问控制系统时,其中需要考虑的一个主要因素就是低功耗。 NFC/RFID徽章或卡片并非由电池功能,而是通过与读卡器设备磁场的电感耦合来接收电能。随后,NFC/RFID读取器或写入器利用调制来发出一条指令,RFID卡片将通过对读取器提供的磁场进行负载调制来响应这条指令。在这个过程中,
[网络通信]
用于访问<font color='red'>控制</font>的近场通信 (NFC)与射频识别 (RFID)
AVR stdio写的ATMEGA16控制步进电机正反转和速度
AVR stdio写的ATMEGA16控制步进电机正反转和速度,供大家免费参阅和批评 适合初学者,总共七个按键 三个按键控制三个速度正转,三个按键控制三个速度反转,一个按键控制停止。 本程序控制步进电机是和步进电机驱动器相连接的,所以脉冲只有一路,如果想直接连步进电机只需要稍加改动即可。 主程序预览: #define F_CPU 800000UL #include avr/io.h #include util/delay.h #define INT8U unsigned int #define INT16U unsigned int const INT8U FFW ={0x01,0x00,0x01,0x00,0x01
[单片机]
AVR stdio写的ATMEGA16<font color='red'>控制</font>步进电机正反转和速度
Nordic助力蓝牙手柄为智能手机、平板等提供游戏机式控制
挪威奥斯陆– 2017年12月22日 – Nordic Semiconductor宣布手机游戏控制器开发商上海飞智电子科技有限公司发布的Apex游戏手柄采用了Nordic多次获奖的低功耗蓝牙(Bluetooth® Low Energy / Bluetooth LE) nRF51系列系统级芯片(SoC),把游戏手柄以无线方式连接至用户的智能手机、平板电脑、PC或智能电视。 在操作中,蓝牙4.0(及更高版本) iOS或安卓智能手机可以直接安装在Apex手柄上,使用户可以使用有如手持式游戏机的“翼式”游戏手柄设计来游玩手机游戏。一旦使用Nordic SoC提供的低功耗蓝牙无线连接同步到用户的智能手机,用户就可以使用传统游戏机控制器
[家用电子]
Nordic助力蓝牙手柄为智能手机、平板等提供游戏机式<font color='red'>控制</font>
小广播
最新应用文章
换一换 更多 相关热搜器件

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 医疗电子 工业控制

词云: 1 2 3 4 5 6 7 8 9 10

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved