欢迎来到长城宽带!请[]
内容页横幅
第三层交换机处理器收发包问题综合讲解
发布时间:2017-06-30 15:50:03    来源:长城宽带    点击:

    在当前的三层以太网交换设备中,报文的二层交换和三层路由主要由交换芯片和网络处理器完成,CPU基本上不参与交换和路由过程,主要完成管理和控制交换芯片的功能。在这种情况下,CPU的负载主要来自以下几个方面:协议的定时驱动、用户的配置驱动、外部事件的驱动。

    其中,外部事件的驱动最为随机,无法预料。典型的外部事件包括端口的连接/断开(Up/Down),媒体访问控制(MAC)地址消息的上报(包括学习、老化、迁移等),CPU通过直接存储器存取(DMA)收到包,CPU通过DMA发包等。在以上所列的外部事件中,又以CPU通过DMA收到包之后的处理最为复杂。因为数据包由低层上送到上层软件时,各协议的处理动作千差万别,可能会涉及到发包、端口操作、批量的表操作等。所以,只有处理好CPU的收发包的相关问题,才能使相关的上层协议正常交互,从而使第三层交换机稳定、高效地运行。可能涉及到的问题以下就CPU收发包可能涉及的各个方面分别说明,下面的分析都基于典型的CPU收发包机制:CPU端口分队列,通过DMA接收,采用环形队列等。CPU的负载与收包节奏控制根据第三层交换机处理数据包的能力,决定单位时间上送到CPU的包的个数;决定了单位时间上送多少个包给CPU后,再考虑上送数据包的节奏,假设通过评估,确定了单位时间上送CPU数据包的上限,例如每秒x个数据包。(1)匀速上报CPU数据包匀速上报CPU时,对CPU队列的冲击较小,而且对CPU队列的缓冲能力要求不高,CPU队列不必做得很大。(2)突发(Burst)方式上报CPU交换芯片(采用ASIC)一侧的硬件接收队列和DMA内存空间中的环形队列,一起赋予了第三层交换机一定的缓冲能力(针对上送CPU的数据包)。利用这个缓冲能力,我们可以把控制周期适当放长,并设定控制的粒度(单位控制周期内CPU收报个数的上限),采用类似于电路中负反馈的机制动态地使能和关闭CPU收包功能。这样就在宏观上实现了对数据包上送CPU速率的控制。另外,如果交换芯片(采用ASIC)支持基于令牌桶算法的CPU端口出方向流量监管或整形功能[2-3],且监管或整形的最小阈值可以满足CPU限速的需要,则可以利用这个功能控制数据包上送CPU的节奏,减小CPU的负载。这样软件的处理就简化了很多。CPU端口队列的长度规划如果仅考虑第三层交换机CPU端口的缓冲能力,CPU端口队列当然是越长越好,但是必须兼顾对其他功能以及性能的影响。针对不同的ASIC芯片,需要具体问题具体分析。零拷贝零拷贝是指在整个数据包的处理过程中,使用指针做参数,不进行整个数据包的拷贝。这样可以大大提高CPU的处理效率。使用零拷贝后,会一定程度上降低软件处理的灵活性,我们会面临到这样的问题:如果协议栈需要更改一个数据包的内容,会直接在接收缓存(buffer)上修改,但是如果需要在数据包中删除或添加字段(例如添加或删除一层标签(tag)),即数据包的长度需要变化时,应该如何处理。添加或删除字段,必然会导致数据包头一侧或包尾一侧的位置发生移动,如果包尾一侧移动,问题比较简单,只要数据包总长度不超过buffer边界即可。由于通常此类操作都靠近包头的位置,如果包头一侧移动,效率会比较高,所以协议栈在处理时可能更倾向于在包头一侧移动,这时就需要驱动在分配buffer时做一些处理:(1)接收数据包时,头指针不能指向buffer边界,需要向后偏移一定裕量,同时单个buffer的大小也必须兼顾到最大传送单元(MTU)和该裕量。(2)释放数据包时buffer首指针需要作归一化处理目前第三层交换机涉及到的外部中断主要由交换芯片产生,交换芯片主要的外部中断包括DMA操作(如收到包、发包结束、新地址消息等等)和一些出错消息。如果中断请求过于频繁,中断服务程序(ISR)和其他进程之间频繁地上下文切换会消耗大量CPU时间。如果有持续大量的中断请求,CPU会始终处于繁忙状态,各种协议得不到足够的调度时间,从而导致协议状态机超时等严重故障。为了避免事件触发频率不可控的问题,可以使用轮询机制,通常的做法是用CPU定时器触发原先由外部中断触发的ISR,由于定时器触发的间隔是固定的,所以ISR执行的频率得到了控制,避免了上述的问题。

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

    因此,做好CPU和交换芯片以及网络处理器接口的缓冲管理、队列调度以及流量监管,合理利用CPU资源,是保证数据交换设备安全、稳定运行的前提,也是目前及将来数据交换设备开发的重要课题。

QQ浏览器相关设置 QQ浏览器相关设置
QQ浏览器相关设置
QQ浏览器是腾讯官方出品,基于chromium内核开发,可以安装Chrome的扩展,还有微信等众多优质...
光纤宽带 光纤宽带
光纤宽带
光纤的特点是:1.传输容量大2.传输质量好3.损耗小4.中继距离长。光纤传输所使用的方式是把小...
windows7系统局域网 windows7系统局域网
windows7系统局域网
Win7系统的网络功能比XP有了进一步的增强,使用起来也相对清晰。但是由于做了很多表面优化的...
无线局域网 无线局域网
无线局域网
在无线局域网WLAN发明之前,人们要想通过网络进行联络和通信,必须先用物理线缆-铜绞线组建一...
长城宽带业务 长城宽带业务
长城宽带业务
长城宽带是现如今新生的一种网络宽带模式,在10年的发展历程中,长城宽带已经逐渐走向人们的...
无线网络IP地址 无线网络IP地址
无线网络IP地址
IP地址被用来给Internet上的电脑一个编号。大家日常见到的情况是每台联网的PC上都需要有IP地...
网络信息技术介绍 网络信息技术介绍
网络信息技术介绍
网络信息技术是通信技术与计算机技术相结合的产物。网络信息技术的进步对人与社会的发展产生...
上海长城宽带官网 上海长城宽带官网
上海长城宽带官网
长城宽带官网为www.gwbnsh.net.cn/长城宽带作为国内首家自主成立的非国家统一管理的民营宽带...
笔记本电脑无线上网 笔记本电脑无线上网
笔记本电脑无线上网
笔记本无线上网其实非常简单,只要是打开笔记本的无线网络,搜索笔记本所在区域的无线网络信...
6m宽带下载速度 6m宽带下载速度
6m宽带下载速度
电信是国内知名的宽带营业商,有着丰富多彩的宽带套餐业务,除了6m套餐外,还有10m、20m、30m...