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

来源 :中兴通讯技术 | 被引量 : 0次 | 上传用户:hnkfxwj
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:三层以太网交换机发展迅速,一方面网络设备的带宽及交换容量大幅提升,另一方面设备所支持的协议种类也随着用户的需求不断增加。如何在大业务量的网络环境下确保各设备之间协议包的正常交互,是以太网交换机设计面临的重要问题。文章以基于ASIC的三层以太网交换机为例,从CPU负载、软硬件队列配置、CPU和交换芯片的通信机制等方面入手,讨论并分析在多进程环境中与CPU收发包功能相关的一些典型问题,得到解决办法。解决方法对于网络处理器(NP)同样适用。
  关键词:三层以太网交换机;CPU;中断;轮询;直接存储器存取;队列调度
  Abstract: The L3 Ethernet switch has developed rapidly. On one hand, it has greatly improved bandwidth and exchange capability of network equipment. On the other hand, network equipment is required to support more protocol types with the increasing of user demands. For design of an Ethernet switch, it is important to ensure normal interaction of protocol packets between different devices under a network environment of massive traffic. Taking the L3 Ethernet switch that uses Application Specific Integrated Circuits (ASIC) chip as an example, this article analyzes several typical issues about packet receiving and sending by CPU under a multi-progress environment, including CPU load, software and hardware queue settings, and communication mechanism between CPU and the switching chip. It then gives solutions to these issues, which may also work for the Network Processor (NP).
  Key words: L3 Ethernet switch; CPU; interrupt; polling; DMA; queue and schedule
  
  在当前的三层以太网交换设备中,报文的二层交换和三层路由主要由交换芯片和网络处理器完成,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给出了两种典型的处理手段:匀速上报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.2 CPU端口队列的长度规划
  如果仅考虑交换机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资源,是保证数据交换设备安全、稳定运行的前提,也是目前及将来数据交换设备开发的重要课题。
  
  3 参考文献
  [1] 陈晓, 范成法, 过仕好. 数据交换网络设备的CPU负载分析 [J]. 电信技术, 2004 (8):55-57.
  [2] ITEF RFC 2697. A single rate three color marker [S]. 1999.
  [3] ITEF RFC 2698. A two rate three color marker [S]. 1999
  [4] Stevens W R. TCP/IP illustrated: Vol 1 [M]. Reading, MA,USA:Addison-Wesley,1994: Chapter3,6,11,13,17.
  收稿日期: 2006-12-20
  
  赵振宁,重庆大学通信工程专业毕业。中兴通讯股份有限公司南京研究所软件工程师,从事ZXR10以太网交换机产品的研发。
  范力涵,中南大学控制理论与控制工程专业硕士毕业。中兴通讯股份有限公司南京研究所软件高级工程师,从事高端以太网交换机研发、设计和管理。先后参与国家“863”项目和国家自然科学基金项目多项,曾获得湖南省科技进步一等奖和三等奖。
  陈晓,南京航空航天大学毕业。中兴通讯股份有限公司南京研究所系统工程师,曾参与ZXB10 ATM交换机研发,ZXR10 以太网交换机的研发、设计和管理,现负责城域以太网业务交换机的预研工作。
其他文献
摘要:随着移动通信的不断发展,对频率资源的需求也不断增加。为此,文章对高级国际移动通信(IMT-Advanced)的频率需求进行了分析,比较了各个候选频段的优缺点,得到的结论是:现有分配给移动通信的频率资源远远达不到IMT-Advanced的需求,为了更好地提供移动通信服务,需要寻找更多的频率资源。因此必须在2007年的世界无线电大会上分配足够的频率给IMT-Advanced,才能为IMT-Adv
期刊
摘要:传统的无线网络站点搬迁,需要中断现网服务,而且只能串行逐片割接,组织工作复杂,资源投入巨大,因此亟需探讨一种低风险、快速建网的搬迁割接方案。中兴通讯股份有限公司的ZTE BBU+RRU 基站由于采用分布式结构,结合宽带码分多址(WCDMA)同频组网特性,可以方便地实现软搬迁软割接。该方案采用叠加建网然后一次性割接的方法,不影响现网运行,并可以及时回退,能极大地简化搬迁割接工作,降低网络风险。
期刊
摘要:随着无线局域网(WLAN)的迅速普及,有限的可用频谱资源日益紧张。认知无线电(CR)技术具有动态重用空闲频谱资源的能力,可以有效提高频谱利用率,得到了无线通信行业的关注。通过将CR技术与无线局域网相融合,可以为无线局域网提供更为灵活的通信,扩展无线局域网的工作频段。IEEE 802.11y无线局域网标准的制定进一步推动了CR技术的应用。CR技术与无线局域网融合的过程中,还需要完善包括频谱感知
期刊
摘要:令牌桶算法是目前IP QoS中最常采用的一种流量测量方法,广泛应用于约定访问速率技术、通用流量整形技术以及物理接口总速率限制等技术中。IETF RFC 建议规范了单速率三色标记和双速率三色标记两种令牌桶算法,在桶的构成、令牌添加和报文处理流程方面前者较后者简单,成为目前业界比较常用的流量标记方式。在实际应用中,应针对不同的流量特征选择恰当的标记方式。  关键词:令牌桶;单速率三色标记;双速率
期刊
摘要:局域网信道共享时,有限的信道只能允许有限的用户接入,而且由于存在多用户间的干扰,不能实现真正的随机接入,因此存在扩容限制。光码分多址(OCDMA)技术可提供宽带宽和实现多址。OCDMA采用单极性扩频正交编码对输入信息进行编码,使得低速率的数据信息复用为高速率的光脉冲序列进行传输或解复用,实现多用户的信道共享和随机异步接入以及高速透明的数据通信,有效消除多用户信道间的干扰。基于OCDMA技术组
期刊
摘要:时分同步码分多址(TD-SCDMA)上行增强技术的主要目的是改善上行性能,显著提高上行分组数据的峰值传输速率,以及提高上行分组数据的总体吞吐量,同时减少传输延迟。为了改善上行性能,高速上行分组接入(HSUPA)主要考虑的技术包括自适应调制编码(AMC)、混合自动重传(HARQ)、节点B(NodeB)快速调度,以及用户终端(UE)如何共享上行信道资源,同时包括增加增强的媒体访问控制(MAC-e
期刊
摘要:WiMAX系统中物理层多址方案采用了正交频分多址接入(OFDMA),并根据上、下行链路的不同特点,定义了多种导频图案。当OFDMA和多输入多输出(MIMO)技术结合时,导频图案也需要变化来支持多天线。WiMAX系统中MIMO-OFDMA有五种导频模式,包括下行部分使用子信道(DL-PUSC)、下行完全使用子信道(DL-FUSC)、下行可选完全使用子信道(DL-OFUSC)、上行部分使用子信道
期刊
2007年3月5日,中兴通讯全套TD-SCDMA设备顺利通过信息产业部组织的电信设备入网测试,率先获得电信设备进网许可证。  中兴通讯此次获得电信设备入网许可证的设备包括四大系列:核心网络设备、无线网络控制器设备、业内最成熟的系列化基站设备、业务平台设备。
期刊
摘要:为了保持在移动通信领域的技术及标准优势,3GPP启动其长期演进(LTE)的标准化工作。在物理层(层1)、空中接口协议结构层(层2)和网络结构方面,3GPP LTE采纳一系列先进技术和创新理念,IP语音(VoIP)业务和多媒体广播及多播业务(MBMS)的解决方案的优化正在进行中,目前已经实现高数据率、低时延和基于全分组的设计目标。  关键词:3GPP长期演进计划;标准;多媒体广播及多播业务  
期刊
摘要:在彩信网关(MMSG)系统双组网模式下,实现两套MMSG系统之间基于IP层容灾切换,达到运行正常的MMSG系统可以简单快速无缝地接管瘫痪MMSG系统上的所有业务。为实现彩信网关之间这种基于IP层互为备份的容灾切换,中国移动对MMSG系统按照双组网模式方案进行承建,为用户安全可靠,持续稳定的服务提供有力的保障。采用双组网模式方案,只需要在系统接入的防火墙与交换机上简单地进行子网掩码的收敛,即能
期刊