三层交换机处理器收发包问题综合讲解_第1页
三层交换机处理器收发包问题综合讲解_第2页
三层交换机处理器收发包问题综合讲解_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、三层交换机处理器收发包问题综合讲解交换芯片和网络处理器完成, CPUS 本上不参与交换和路由过程, 主要完成管理和控制交换芯片的功能。在这种情况下,CPU 勺负载主要来自以下几个方面:协议的定时驱动、用户的配置驱动、外部事件的驱动。其中,外部事件的驱动最为随机,无法预料。典型的外部事件包括端口的连接/断开(Up/Down),媒体访问控制(MAC 地址消息的上报(包括学习、老化、迁移等),CPU!过直接辿器存取(DMA)攵到包,CPU 通过 DMAS 包等。在以上所列的外部事件中,又以 CPU!过 DMA 攵到包之后的处理最为复杂。因为数据包由低层上送到上层软件时,各协议的处理动作千差万别,可能

2、会涉及到发包、端口操作、批量的表操作等。所以,只有处理好 CPU 勺收发包的相关问题,才能使相关的上层协议正常交互,从而使第三层交换机稳定、高效地运行。可能涉及到的问题以下就 CPU攵发包可能涉及的各个方面分别说明, 下面的分析都基于典型的 CPUt发包机制:CPU口分队歹 1,通过 DM 底收,采用环形队列等。CPU 勺负载与收包节奏控制根据第三层交换机处理数据包的能力,决定单位时间上送到 CPU 的包的个数;决定了单位时间上送多少个包给 CPUt,再考虑上送数据包的节奏,假设通过评估,确定了单位时间上送 CPLK 据包的上限,例如每秒 x 个数据包。(1)匀速上报 CPU数据包匀速上报 C

3、PUW,对 CPUJI 列的冲击较小,而且对 CPLR 列的缓冲能力要求不高,CPl列不必做得很大。(2)突发(Burst)方式上报 CPU交换芯片(采用 ASIC)一侧的硬件接收队列和 DM 咕存空间中的环形队列,一起赋予了第三层交换机一定的缓冲能力(针对上送 CPU 勺数据包)。利用这个缓冲能力,我们可以把控制周期适当放长,并设定控制的粒度(单位控制周期内 CPU 收报个数的上限),采用类似于电路中负反馈的机制动态地使能和关闭 CPU 攵包功能。这样就在宏观上实现了对数据包上送 CPU率的控制。另外,如果交换芯片(采用 ASIC)支持基于令牌桶算法的 CPUS 口出方向流量监管或整形功能2

4、-3,且监管或整形的最小阈值可以满足CPU艮速的需要, 则可以利用这个功能控制数据包上送CPUB节奏,减小 CPUB 负载。这样软件的处理就简化了很多。CPU口队列的长度规划如果仅考虑第三层交换机 CP 闻口的缓冲能力,CPU口队列当然是越长越好,但是必须兼顾对其他功能以及性能的影响。针对不同的 ASIC 芯片,需要具体问题具体分析。零拷贝零拷贝是指在整个数据包的处理过程中, 使用指针做参数, 不进行整个数据包的拷贝。这样可以大大提高 CPU 勺处理效率。使用零拷贝后,会一定程度上降低软件处理的灵活性,我们会面临到这样的问题:如果协议栈需要更改一个数据包的内容,会直接在接收缓存(buffer)

5、上修改,但是如果需要在数据包中删除或添加字段(例如添加或删除一层标签(tag),即数据包的长度需要变化时,应该如何处理。添加或删除字段,必然会导致数据包头一侧或包尾一侧的位置发生移动,如果包尾一侧移动,问题比较简单,只要数据包总长度不超过 buffer 边界即可。由于通常此类操作都靠近包头的位置,如果包头一侧移动,效率会比较高,所以协议栈在处理时可能更倾向于在包头一侧移动, 这时就需要驱动在分配 buffer 时做一些处理:(1)接收数据包时,头指针不能指向 buffer 边界,需要向后偏移一定裕量,同时单个 buffer 的大小也必须兼顾到最大传送单元(MTU 刘该裕量。(2)释放数据包时

6、buffer 首指针需要作归一化处理目前第三层交换机涉及到的外部中断主要由交换芯片产生,交换芯片主要的外部中断包括 DMA!作(如收到包、发包结束、新地址消息等等)和一些出错消息。如果中断请求过于频繁,中断服务程序(ISR)和其他进程之间频繁地上下文切换会消耗大量 CPU 时间。如果有持续大量的中断请求,CPU始终处于繁忙状态,各种协议得不到足够的调度时间,从而导致协议状态机超时等严重故障。为了避免事件触发频率不可控的问题, 可以使用轮询机制, 通常的做法是用 CPUS 时器触发原先由外部中断触发的ISR,由于定时器触发的间隔是固定的,所以 ISR 执行的频率得到了控制,避免了上述的问题。轮询

7、和外部中断相比, 只是节奏可控 (外部中断的节奏取决于外部事件发生的频率,CPU可控)。但是,轮询也有其不可避免的缺点响应慢。不能满足某些实时性要求较高的功能。另外,人们会发现用 ping 命令检测第三层交换机 3 层接口大包时,使用轮询方式的第三层交换机比使用中断方式的第三层交换机的时延明显要大。如果能通过某种机制,避免持续、大量的中断请求,则既可以保证 CPU会过于繁忙,又保留了中断实时处理的优点。典型的会产生大量中断事件的行为是 CPU收数据包和 MAC*址消息上报。 以收包为例,在前面“CPU 负载与收包节奏控制”部分提到的 Burst 方式就是根据实时的流量,控制接收 DMA 勺开关,这样就达到了使中断源受控的目的,这种类似负反馈的机制可以很好的避免持续的中断事件上报 CPU总之,轮询控制简单,但实时性较差;中断实时性好,但是使所有的中断源受控有一定难度。在系统初始设计阶段,我们需要综合考虑需求以及芯片对外部事件的处理方式,来决定采用中断或者轮询方式,或者两者兼用。随着以太网相关技术的发展,交换芯片和网络处理器的处理能力不断被提升;相比之下,数据交换设备中 CP3 理性能的提升程度远远不及交换芯片和网络处理器;同时数据交换设备支持的业务种类也在不断增加,对 CPIB 载的业务量也有了更高的要求。 在这种情况下, 交换设备容量以及支持业

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论