(计算机系统结构专业论文)交换机cpu流量控制设计与实现.pdf_第1页
(计算机系统结构专业论文)交换机cpu流量控制设计与实现.pdf_第2页
(计算机系统结构专业论文)交换机cpu流量控制设计与实现.pdf_第3页
(计算机系统结构专业论文)交换机cpu流量控制设计与实现.pdf_第4页
(计算机系统结构专业论文)交换机cpu流量控制设计与实现.pdf_第5页
已阅读5页,还剩102页未读 继续免费阅读

下载本文档

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

文档简介

摘要 摘要 本文首先介绍交换和c p u 流量控制的基本概念及国内外研究现状,并在随后 的三个章节中详细分析了它们各自的功能特性和发展概况。 为了更好地设计出全新的交换机c p u 流量控制,本文特地举出了两个实际系 统即l i n u x 2 6 网络系统和b h 6 8 交换机系统的c p u 流量控制机制,并对它们各自 性能上的优缺点进行了详细地分析和比较。通过对这两种系统c p u 流量控制的分 析和比较,一个完整c p u 流量控制模块的组成以及各个组成部分应具有的功能清 晰地展现在我们面前。同时,对本文即将设计和实现的c p u 流量控制的运行软硬 件平台给出了一个简单介绍,这也使得我们对交换机内部的软硬件组成有了一个 清晰的认识。 定时器,流控器,收包器,发包器和命令行子模块构成了x h 7 0 0 0 系列交换 机c p u 流量控制主模块。所有这些流控组件均在本文的第五章中给出了详细的设 计方案与实现过程。其中定时器实现c p u 流量控制所需的各种定时操作;流控制 器完成流控操作,但其实现与底层硬件芯片密切相关:收包器和发包器实现了 x h 7 0 0 0 系统c p u 流量控制的核心功能,即三色队列管理,基于负载的多级丢弃 率流控算法,基于w r r 负反馈队列调度算法;而命令行子模块为用户提供了配置 c p u 流量控制各个模块的功能。 本文的最后两章分别对x h 7 0 0 0 系列交换机c p u 流量控制的主要功能做出了 测试和结果分析,以及对全文做出了全面的总结。 队列 关键词:交换机,c p u 流量控制,多级丢弃率负载流控,负反馈w r r ,三色 a b s t r a c t a b s t r a c t t h ep a p e ri n t r o d u c e s t h ec o n c e p t i o no fc p uf l o wc o n t r o l l i n ga n ds w i t c h i n g f r s t l ya sw e l la st h e i rc u r r e n td e v e l o p m e n ts i t u a t i o n s ,a n dt h e na n a l y z e st h eg e n e r a l f u n c t i o n a l i t ya n dd e v e l o p m e n ts i t u a t i o no f b o t hi nt h es u b s e q u e n tt h r e ec h a p t e r s f o rt h ep u r p o s eo fd e s i g n i n gac o m p l e t e l yb r a n dn e wc p uf l o wc o n t r o l l i n go f s w i t c h ,t h i sp a p e r , e s p e c i a l l yi n t r o d u c e st w ot y p e so fc p uf l o wc o n t r o l l i n go fl i n u x 2 6 n e t w o r ks y s t e ma n db h 6 8s w i t c hs y s t e mr e s p e c t i v e l y , a tt h es a r n et i m e ,a n a l y z e sa n d c o m p a r e st h ea d v a n t a g e sa n dd i s a d v a n t a g e so fc p uf l o wc o n t r o l l i n go ft h et w o s y s t e m si n t e r m so fd i v e r s ea s p e c t s b ya n a l y z i n gt h et w os y s t e m si nc p uf l o w c o n t r o l l i n g ,t h e w h o l ec o m p o n e n t so fc p uf l o w c o n t r o l l i n g m o d u l ea n dt h e f u n c t i o n a l i t yo fe a c hc o m p o n e n ti sr e v e a l e dt ou s f u r t h e r m o r e ,t h i sp a p e rg i v e sa p a r t i c u l a ri n t r o d u c t i o no ft h es o f t w a r ea n dh a r d w a r ea r c h i t e c t u r e so fx h 7 0 0 0s w i t c h w h i c hi st h ep l a n t f o r mo ft h ec p uf l o wc o n t o r l l i n gt h i sp a p e rc o v e r e dt o ,a sg i v e sa c l e a ru n d e r s t a n d i n go f t h es o f t w a r ea n dh a r d w a r ea r c h i t e c t u r eo f e t h e m e ts w i t c h t i m e r , f l o wc o n t r o l l e r , r e c e i v e r , s e n d e ra n dc o m m a n dl i n es u b m o d u l em a k eu p t h ec p uf l o wc o n t r o l l i n gm a s t e rm o d u l eo ft h ex h 7 0 0 0s w i t c h a l ld e t a i l so f d e s i g n i n ga n di m p l e m e n t i n go f t h e a b o v ec o m p o n e n t so fc p uf l o wc o n t r o l l i n gw i l lb e c o v e r di nc h a p t e r5 t i m e ri m p l e m e n t sd i v e r s eo ft i m i n go p e r a t i o n sw h i c hc p uf l o w c o n t r o l l i n g n e e d r e l a t e dt oh a r d w a r e c h i p s o fl o w e r l e v e l ,f l o w c o n t r o l l e r a c c o m p l i s h e so p e r a t i o n sa s s o c i a t e d t ot h ef l o wc o n t r o l l i n g r e v e i v e ra n ds e n d e r i m p l e m e n tt h ek e yf u n c t i o n so fc p uf l o wc o n t r o l l i n g ,t h a t st h em a n a g e m e n to ft h r e e c o l o rq u e u e ,t h ea l g o r i t h mo fm u l t i l e v e ld i s c a r dr a t ef l o wc o n t r o lb a s e do nl o a d a n dt h ea l g o r i t h mo ff e e d b a c kw r r t h ec o m m a n dl i n es u b m o d u l ep r o v i d e st h e p o s s i b i l i t yo f c o n f i g n r i n gv a r i o u sp a r a m e t e r so f c p u f l o wc o n t r o l l i n gt ou s e r s i nt h el a s tt w oc h a p t e r s ,w et e s t e dt h ep e r f o r m a n c eo ff u n c t i o no fc p uf l o w c o n t r o l l i n ga n da n a l y z e dt h er e s u l to f t e s t ,a n dg i v e dag e n e r a lc o n c l u s i o nt ot h i sp a p e r k e y w o r d s :s w i t c h ,c p uf l o wc o n t r o l l i n g ,m u l t i l e v e ld i s c a r dr a t ef l o wc o n t r o l b a s e do nl o a d ,f e e d b a c kw r r ,t h r e e - c o l o r sq u e u e i i 独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。 躲耻吼哆渺日 关于论文使用授权的说明 本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后应遵守此规定) 签名:址 第一章引言 1 1 课题背景 1 1 1 问题的提出 第一章引言 本人在h a r b o u r n e t w o r k s 公司实习期间正好赶上该公司新产品x h 系列三层交 换机研发开局。x h 7 0 0 0 系列三层交换机支持1 2 v p n l 3 v p n v p l s 、i p v 6 、线速1 2 1 3 m p l s 转发、线速a e l q o s 、高密度的千兆网口和高密度的p o e 网口,是一款能实用于电 子政务网核心层、校园网及教育城域网核心层、园区网以及运营商i p 城域网汇聚 层,企业网核心、数据中心、高密度高性能科学计算的汇聚环境的高性能三层交 换机,而本人在该系列的交换机的研发中从事f d b 、q o s 和c p u 流量控制模块的 设计与实现。 在设计c p u 流量控制模块之初,本想直接移植该公司b h 6 8 系列交换机中相 应模块到x h 7 0 0 0 系列上,但深入研究后发现b h 6 8 系列交换机中c p u 流量控制 模块存在诸多问题,于是向上级主管提出重新设计该模块的请求。在充分指出不 足并提出了性能优越的新方案情况下,最终通过了审核并同意重新设计。 本课题就是在x h 7 0 0 0 系列产品c p u 流量控制模块新方案的研发过程中产生 的。 1 1 2 本人的主要工作 本人在全面分析b h 6 8 和l i n u x 系统中c p u 流量控制机制的基础上,提出一 个完整的c p u 流量控制所应具有的功能特性以及对应流控组件,其中就包括全新 的c p u 流量控制机制和实现算法。同时,结合x h 7 0 0 0 系列交换的软硬件平台把 这种全新的c p u 流量控制机制给予实现。 1 2 基本概念简介 1 2 1 交换的概念 什么是交换机? 单从字面了解就是用于交换数据的设备机器。那么什么又是 电子科技大学硕士学位论文 交换呢? 关于“交换”这两个字历来都有着不同的解释,这里个人认为交换确切 的含义应该是一个转发过程,即把进入交换设备某个物理端口的数据按照某种事 先预定好的规则从该交换设备另一个或者多个物理端口发送出去的过程。 有了这个定义也就好理解为什么在本文的第二章介绍以太网交换机的发展历 程时会把中继器,集线器,网桥和路由器包括进来了,因为它们均属于“交换机”, 都是用来交换数据的设备,区别仅仅在于交换规则不同而已。例如,中继器的交 换规则是物理电信号放大和广播;传统集线器与中继器的交换规则相同,它的诞 生只不过是为了组网的方便而已;网桥的交换规则较前面两者的复杂度大大提升, 硬件设计也复杂了,但根本的区别就在于两点:1 、根据待转发数据的字段信息进 行有限制的转发;2 、为组网的方便实现s t p 功能( 这两个问题将在第二章详细说 明) ;网桥读取数据的字段信息来源于链路层,而路由器则根据数据网络层字段信 息进行转发。 中继器,集线器,网桥和路由器应该说是交换设备的最小划分,而第二章中 介绍的所谓的二层和三层交换机只不过是这些最小划分的功能组合而己。例如二 层交换机通常就是多端口的网桥加上一些特殊协议和功能,这些特殊的协议和功 能是由这种多端口特性而产生的,如v l a n ,端口聚合和端口镜相等等,而对于 通常只有两个端口的网桥来讲实现这些功能没有太大的现实意义;而三层交换机 则是二层交换机加上部分或者全部路由器功能的实体。除了二层、三层交换机外, 在交换设备家族中新近又诞生了四层到七层的交换机( o i s r m 七层模型) 。很明 显,根据前面的分析这些新近产生的交换机不是交换规则改变就是不同交换规则 的叠加。 通常二、三层交换机交换功能的实现可以由软件完成也可以由专用芯片 ( a s i c ) 硬件来完成,通过前者实现交换功能的交换机称为软交换机而通过或者 实现交换功能的交换机则被称为硬交换机。所谓软件实现交换功能其实就是由 c p u 执行软件代码来完成转发的过程,这种交换机可以看作是多网卡的p c 系统; 如果由硬件实现交换功能则交换机的c p u 在大部分时间里不会干预数据的交换过 程,因为交换功能由专用的硬件芯片来完成。 总之,不同的交换设备无论其是软交换还是硬交换根本的区别在于其运行的 交换规则,也正是因为这些不同的交换规则使得它们运行在网络的不同层次上和 不同环境里,使得不同网络的互连最终成为可能。 2 第一章引言 1 2 2c p u 流量控制简介 1 2 2 1c p u 流量控制的概念 在给出c p u 流量控制概念之前,我们先简单描述一下一个网络报文被站点接 收的过程,以便我们后面对c p u 流量控制的理解。为了简单起见,我们以运行l i n u x 系统且n i c ( n e t w o r k si n t e r f a c ec a r d ,网络接1 2 1 卡) 不支持n a p i ( n e w a p p l i c a t i o n p r o g r a m m i n gi n t e r f a c e ,新应用编程接口) 技术的p c 为例,而网络环境为以太网。 至于支持n a p i 技术的n i c 的情况,我们将在后面章节涉及。 底半都机割 幽卜1l i n u x 系统中的报文接收过程 一个报文a 到达n i c 的时候,如果目的物理地址( d m a c ) 符合条件,例如 a 的d m a c 为n i c 的d m a c ,该d m a c 为广播地址0 x 筋掰或者为该p c 在该 n i c 加入的多播( 组播) 地址等等情况,则a 将会被该p c 的n i c 接收,这个接 收过程由硬件完成不需要c p u 的干预;一旦接收完成后( 整个报文被存放在该网 络接口硬件的缓冲中) ,通常n i c 会发送一个i n t 中断信号通知c p u 有报文收到 ( 这里我们跳过了中断控制器,为了简单起见) ;c p u 收到该中断信号在当前指令 结束后立即调用事先编写好并注册的该n i c 的中断处理程序以响应该中断:在中 断处理程序中,通常会启动d m a 把报文从n i c 的缓冲区中取出并传送到指定的 内存区域,接着中断处理程序把该报文组织到一个队列中并启动一个称为底半部 电子科技丈学硕士学位论文 的机制,该机制在适当的时候会从队列中读取报文并投递到上层协议栈。 至于底半部机制的实现以及它如何把报文投递到上层协议栈,后面章节将会 详细介绍,在这里我们仅仅说明这个接收过程,其可用图1 - 1 表示。 有了报文接收的基本概念,我们接着再来讨论整个过程对系统的影响。 显然当一个报文到达n i c 并被存放在硬件缓冲这一过程是不需要c p u 干预 的,即这一过程不会消耗c p u 资源;接着网络中断响应对系统有影响,因为它中 断了系统中正在执行的任务,这个子过程用p 1 表示;中断处理程序中把收到的报 文插入队列中,然后启动底半部机制记为p 2 ;最后是底半部的处理过程,这里我 们先不分析,因为在后面的章节会单独说明这个问题,用p 3 表示。 那么这些子过程对系统又有怎样的影响呢? p l 对应中断响应过程。由中断的特性可以知道,它会中断系统当前运行的任 务,如果中断发生得太过频繁,将会对系统将会造成致命的影响。例如这里n i c 每收到一个报文会产生一次中断给c p u ,虽然在中断处理过程中通常会关掉硬件 中断,但如果中断处理程序结束时又产生一个n i c 接收中断,那么c p u 又将调用 中断处理程序。于是问题就产生了,反复的中断响应使得系统根本无法做其它事 情,除了不断地调用中断处理程序,我们把这种现象称为中断活锁,如图1 2 所示。 任务t 旦【一 ! ! l 一: 坠生一。: ! 生一= 二: ! 生一:二: 坠 :? i 一。 图卜2 中断活锁的产生 p 2 本质上就是一个队列管理的前半部即报文的入队。很明显,从一个n i c 接 收的报文类型是多种多样的,而报文队列的长度又是有限的,如果队列被组织成 单一的f i f o ( f i r s ti nf i r s to u t ,先进先出) 队列,那么下面的问题就会发生:a 类 4 一一一一一 第一章;i 言 报文很快充满了整个队列,而随后的达到的b 类报文很可能将被丢弃。于是,从 外界看该系统似乎对b 类报文不响应,从内部看就是b 类协议栈始终收不到b 报 文。 那么,如果我们把报文队列组织成多个f i f o 队列是否就能很好的解决这个问 题呢? 我们再看看这样的一种情况:假设a i 表示来自n i c l 的a 类报文,a 2 表 示来自n i c 2 的a 类报文,为了避免单一的f i f o 队列的负面问题,我们对每类报 文单独构成一个f i f o 队列,例如a 类报文所对应的队列称为q a 。但是,一旦n i c i 的a 类报文流量很大使得q a 很快被a l 充满,后来的n i c 2 的a 类报文a 2 将会 被丢弃,从而得不到上层协议栈的服务。这样看来,多f i f o 队列虽然能够解决不 同类型报文的竞争情况,但却不能处理来自不同n i c 同类报文的竞争问题。关于 上述的两种队列组织情况如图1 3 所示。 毒猛= r q 巫工三二耍工四i ( j j j j j 二j j j j j j j j j j j j j j j j j j j j j j :j j j j j , 图卜3 单、多队列竞争 报文进入队列后,就开始等待调度并被送上上层协议栈处理,p 3 对应着报文 队列后半部的调度问题。p 3 与p 2 联系比较强,即p 2 对报文怎样组织,那么p 3 就 将会按照不同的熊略进行调度。除了如何调度以外,p 3 它还要处理另外一个问题: 如果上层协议栈的处理能力有限,那还需要继续投递报文到上层协议栈吗? 对于 这些问题,我们都将在后面章节中详细分析。 无论采用那种队列组织方式报文的丢弃是无法避免的,因为它是由报文的入 队速率大于出队速率引起的。当有报文开始丢弃的时候,它实际上反映了两种速 率的不匹配,我们必须采取某种方法来解决这个问题,不然将会浪费大量的系统 资源,在这里主要是增加系统负载。第一种解决方法是不作任何控制。显然这会 加重系统的负载,特别是当系统本身负载就很高时,这种做法有可能使得系统瘫 痪:第二种解决方式是禁止n i c 接收报文。很明显如果系统负载很轻,这样做会 电子科技大学硕士学位论文 降低报文吞吐率:第三种方法是限制n i c 的接收速率。该种方法对n i c 硬件所支 持的功能要求非常高,因为它要求硬件提供速率控制。即使n i c 硬件有速率控制 功能,这里仍然还有一个问题需要解决即到底应该设置多大的速率限制。关于丢 弃所产生的系统负载与报文吞吐率的问题我们在后面章节中将会详细讨论。 有了上面对整个报文接收过程的理解以及在简单得分析了整个过程对系统的 影响后,现在我们就可以给出c p u 流量控制的概念了:c p u 流量控制就是在接收 网络报文的过程中平衡系统负载和系统报文吞吐率的机制。 在继续后面的讨论之前我们需要强调两点:第一,c p u 流量控制实际上还包 括发送报文过程中系统负载与报文吞吐率之问平衡的问题,但本文的着力点不在 发送方向而在接收方向,因为发送实际上是接收的逆向过程,两者基本的思路是 一致的:第二,c p u 流量控制与服务质量( q o s ) 是两个不同的概念。q o s 的重 点是报文在网络中获得的包括带宽,延迟,抖动,丢弃等问题,而c p u 流量控制 的重点则在于报文吞吐率与系统负载之间的关系。 1 2 2 2c p u 流量控制的位置 从上面的分析可以看出,c p u 流量控制处在网络接口硬件驱动和上层协议栈之 间如图1 4 所示。 孛武压 ,渐 i :釜 早 盯吣傍 磊i ! 删潍控箭q t 产中l 圈卜4c p u 流量控制在系统中的位置 从图1 4 可以看出一个报文首先进入n i c 硬件,接着被n i c 驱动读取。然后 第一章引言 n i c 驱动把报文送入到c p u 流量控制,在c p u 流量控制中报文根据制定的规则被 排队和调度。最后c p u 流量控制把从报文队列中调度出来的报文送入相应的上层 协议栈。 这里还需要注意两个问题,即第一,c p u 流量控制和n i c 驱动在实际的实现 中被当成一个整体,其中c p u 流量控制可能仅仅是n i c 驱动的一个部分;第二, 在c p u 流量控制和上层协议之间可能还存在其它网络功能组件例如防火墙模块, q o s 模块,s n i f f e r 模块,桥路由模块等等,为了简单起见图1 4 中并没有标注,因 为它们并不是本文所关心的。 1 2 2 3c p u 流量控制的功能 在前面对网络报文接受过程的分析中,我们知道了该过程各个阶段对系统性 能的影响同时也指出c p u 流量控制的作用就是尽量销减该过程对系统的影响。为 了使得c p u 流量控制到达我们预期的目的,它必须具有如下功能。 防止中断活锁 该功能是c p u 流量控制必须解决的,如果中断活锁不能解决那么接下来的这 些功能是没有任何意义的。 基于同一端口报文流量控制 该功能保证报文不会因为来自同一端口其它报文对报文队列竞争而得不到服 务( 入队和后续调度) ,这也就是我们前面所说的避免单队列竞争。 基于不同端口同一报文流量控制 多队列使同一端口的不同报文避免了单队列竞争,但是问题仍然存在即如何 保证报文不会因为来自其它端口同类报文对报文队列竞争而得不到服务( 入队和 后续调度) 。 平衡系统负载 提高网络报文的吞吐率,必然使得系统负载提高,从而导致系统中其它任务 的执行受到影响。很显然,这不是我们希望的,那么c p u 流量控带4 必须提供平衡 系统负载的功能以保证系统的稳定运行。 提供与上层协议栈之间的访问接口 报文通过c p u 流量控制后最终需要被送到上层协议栈进行处理,那么这就要 求协议栈提供自己的接收接口( 函数) 给c p u 流量控制,使得报文的投递成为可 能。为了达到这一目的c p u 流量控制需要提供统一的注册接口给上层协议栈,同 时有些协议栈如s t p 可能需要控制网络报文的接受( 如s t p 状态机状态为b l o c k 电子科技大学硕士学位论文 时) ,那么这种对报文的访问控制接口也应该提供给上层协议栈。 1 3c p u 流量控制国内外发展研究及现状 本论是在详细分析和讨论两种不同应用领域网络系统的基础上提出全新的 c p u 流量控制机制和算法的。这两种系统分别是l i n u x 2 6 网络系统以及b h 6 8 交换 机系统。 在l i n u x 2 6 网络系统中c p i j 流量控制没有明显的模块分类化,但是c p u 流量 控制功能还是比较明显的。一个网络报文被n i c 接收以后通过中断通知网络驱动 程序来读取报文,由于中断的频繁产生会导致系统性能的降低,严重时会导致系 统瘫痪也就是我们所说的“中断活锁”。为了克服这个问题l i n u x 2 6 系统中提出 了两种主要的解决方法:l 、在一次中断处理中接收多个报文;2 、把接收报文的 工作放在软中断中执行,并且在这个过程中n i c 接收报文的通知中断被关闭。第 一种方法对于网络流量低中的系统是非常合适的,但对具有大网络流量的系统不 合适;而第二种方法则非常适合于大网络流量系统。但是,第二种方法需要n i c 底层硬件的支持,因而在l i n u x 2 6 系统种称这种收包方式为n a p i 技术。 报文经过网络中断收包或者软中断收包后需要进行排队即队列管理,这也是 c p u 流量控制机制中的核心部分。在l i n u x 2 6 中所有的n i c 报文被送入同一个报 文队列,这里所有报文的意思是既有来自相同n i c 的报文,也有自不同n i c 的报 文。这里问题就出现了,一旦某个n i c 处于高网络负载的情况时其它正常网络流 量n i c 的报文可能得不到队列资源,于是仅仅依靠单队列是不能满足要求的。同 时l i n u x 2 6 系统对拥塞控制的处理也存在一些不足之处。l i n u x 2 6 系统把报文队 列分成多个拥塞级别,达到某种级别后会做相应的处理,但是这个处理是依靠底 层硬件的支持的。如果没有支持通常是一旦达到最高拥塞级别则对于后续来的报 文将不再入队而是丢弃。如果不仔细分析会觉得这样的做法很合理,其实这里忽 略了两个问题:l 、如果系统负载很轻时真的在队列仍然有空间的时候有必要把那 些报文丢弃吗? 2 、如果队列并没有到达丢弃拥塞级别,但是这个时候系统整体的 负载非常高,而还有必要接收后续的网络报文吗? 然后在l i n u x 2 6 中,其c p u 流 量控制机制无法保证和实现这些。 报文如果l l 颐, n 进入队列,那么其将等待调度并被送往上层协议栈。报文的调 度是c p u 流量控制中的最后一个环节。在l i n u x 2 6 中由于其队列组织方式仅仅是 一个f i f 0 队列,那么在调度一方f i f o 方式也就是比较合适的了。 第一章引言 与l i n u x 2 6 网络系统的通用性不同,b h 6 8 系统是专为交换机系统而设计的。 在b h 6 8 中,由于底层交换芯片不能支持n a p i 技术,因而使用的网络收包技 术为在一次中断处理中接收多个报文的方式。由于b h 6 8 系统中没有软中断机制的 概念,因而队列管理被放在一个内核线程( 收包器) 中完成,而报文是由中断处 理程序通过消息队列传递给收包器的。 在介绍l i n u x 2 6 系统网络队列管理时我们提出的问题,在b h 6 8 中得到了处 理,但是效果并不是很好。其方法为:把系统需要接收的报文分类,给每一类报 文单独分别报文队列,即不同的报文类型拥有不同的报文队列。于是,不同报文 之间的队列空间竞争解决了。但是这种方法却不能克服来自不同端口对同一队列 空间的竞争,而且有时候这种情况却常常发生。而在拥塞管理方面,b h 6 8 引入了 c p u 利用率和单位时间队列允许接收报文数这两个参数,即每单位时间例如一分钟 内,如果某个队列接收的报文数目超过某个值,则在一段时间内例如两分钟不再 接收该类报文,至于怎样达到不接收依赖于底层硬件。这里不超过某个值中的这 个值的计算方法是:对每个报文队列设置两个参数m i n ( 接收报文最小值) ,m a x ( 接 收报文最大值) ,而实际队列允许接收的报文值等于m i n + ( m a x m i n ) * c p u _ u s a g e , 其中c p uu s a g e 为当前系统c p u 的利用率。很明显,在b h 6 8 中报文队列的接收数 目是依据c p u 利用率动态变化的,这较l i n u x 2 6 是非常大的进步。但这样做是否 真的能达到目的呢? 仔细分析我们发现该公式有两个不足之处:l 、人为地限制了 报文接收的最大值和最小值,不论系统负载如何队列接收报文数目只能为这两者 中间的一个值。这样,即使系统负载很轻,队列接收最大值不会超过m a x 而我们 在设置m a x 的时候可能没有完全利用起系统的能力,同样的道理,如果系统负载 很高,但是这个时候仍然会有m i n 个报文可以被接收。2 、某类报文的流量会影响 其它报文的接收数量。由于c p uu s a g e 这个参数是作用于所有报文队列的,如果 某个报文流量非常大使得c p u _ u s a g e 很高,那么这会影响到其它报文队列的接收 数量。同样的道理,如果c p uu s a g e 很低,那么所有的报文队列会同时允许接收 更多的报文,于是很可能导致系统非常不稳定。 对于以上两种系统的这些问题,我们希望能够提出全新的c p u 流量控制机制来 克服。 1 4 论文结构安排 这里从总体上简要介绍一下本论文的章节安排与主要内容: 9 电子科技大学硕士学位论文 第一章介绍了交换机的基本概念,同时通过对网络报文在p c 系统中接收过 程的分析引出c p u 流量控制的概念,并对c p u 流量控制在系统中的位置和功能进 行了介绍。此外,还对c p u 流量控制国内外发展及研究现状给出了简单说明和分 析。最后,对本文的研究工作和重点以及本文的章节安排给出了简单说明。 第二章详细介绍了以太网交换设备的发展历程并分析了发展的原因,同时对 在网络中广泛使用的二、三层交换机的工作原理和具有的典型功能给出了简单的 介绍。 第三章详细介绍了x h 7 0 0 0 系列以太网交换机硬件及软件的体系结构。其中 对于硬件部分中的芯片特性及其中的数据流处理过程给出了着重说明,而在软件 方面主要分析了其层次结构和硬件访问接口层规范。 第四章深入分析了l i n u x 2 6 和b h 6 8 两种系统中c p u 流量控制组成部件的 核心功能和实现方法,并分别对其进行了优缺点比较。 第五章本章是本文的核心章节,完成对x h 7 0 0 0 上c p u 流量控制的设计和实 现。本章首先提出了x h 7 0 0 0 上c p u 流量控制的核心算法;接着对c p u 流量控制 中与硬件相关部分的实现给出了论述即n a p i 网络驱动和基于交换芯片硬件a c l 的流量控制;最后全面论述x h 7 0 0 0 上c p u 流量控制个组成部件的实现,并给出 了数掘结构,函数接口以关键函数流程图。 第六章简单介绍交换机c p u 流量控制的测试内容、方法和结果。 第七章简单总结全文。 o 第二章以太网交换设备 第二章以太网交换设备 本文论述的是交换机上的c p u 流量控制,因而理解交换机是我们继续详细研 讨c p u 流量控制的先决条件。 交换机的出现不是偶然的,它的形成建立在前驱互连设备基础上,为了对交 换机有一个全面的理解和清晰的认识,我们首先以互连设备为载体简单介绍转发 技术的发展历程以及推动其不断发展的关键因数,最后再对二、三层交换机的主 要功能特点进行详细的介绍。 2 1 转发技术的发展历程 2 1 1 中继器 在早期局域网中,1 0 b a s e 5 和1 0 b a s e 2 被作为主要的网络布线,其中1 0 b a s e 5 限制一个网络段在5 0 0 m 之内,而1 0 b a s e 2 限制在1 8 5 m 之内,这种限制对于在一 段中连接所有的结点来说就太严格了。中继器为拓展老式的基于同轴电缆的总线 拓扑结构的网络提供了一个廉价的方法。 1 0 b a s e s 电缆段 1 0 b a e 5 电缆段 a b dce 图2 一i 中继器组建的网络 中继器运作在o s i 模型物理层,其转发技术是最原始的也是最简单的。它通 过放大输入的信号,调整信号时间,在所有电缆敷设路线上重新产生信号,这样 使得网络的到达距离可以超出i e e e 规范要求的一条电缆敷设路线的长度。图2 1 显示的是1 0 b a s e 2 电缆段通过中继器与1 0 b a s e 5 主干连接的一种老式的网络。 电子科技大学硕士学位论文 很明显,中继器的转发技术是一种广播式的转发即它把从一个端口进来的信 号转发传送到除信号进入端外的所有其它端口。这样在本己很繁忙的网络上又增 加了过度的信息流量,因为向那些根本不包含目的结点的网络段重新传输数据毫 无效率可言,大部分信息流量或者说网络带宽都被浪费了。 2 1 2 集线器 以太网开始时被设计为总线结构( 有分接头的长线) ,但在为某个建筑物布 线时,这种结构被证明不是很方便。而且,某些类型的错误可能引发整个网络的 崩溃。更方便的布线策略是星型结构,特别是建筑物的电话线已经采用了这种布 线策略时。为了布线更加便利,不同的以太网都被标准化为采用普通的电话线( 即 双绞线) 来操作。 星型结构的中心是集线器,它像中继器一样连接网段,图2 2 显示的是用集线 器连接的网络。虽然集线器也可能有令人担忧的问题如单点故障,但它比总线安 全得多,因为它可以被锁在安全的地方,从而不会因为人为的原因而破坏;而且 总线结构也会有很多的单点故障,例如移开一个终结点电阻器或者某个站点产生 噪声都可能使整个网络崩溃。集线器它实际上相当于个多端口的中继器。 图2 - 2 集线器组建的网络 由于集线器也是一种广播转发,与中继器比较并没有减小冲突以及网络带宽 利用率的提高,它仅仅使得组网更加方便。同时在用它组网的时候还得避免回路 问题,一旦回路形成对于这样的网络来说可能是致命的。 1 2 第二章以太网交换设备 2 1 3 网桥 网桥的出现解决了集线器的不足,从各个方面提高了网络性能。前面中继器 和集线器采用的是广播转发即从某一端口接收到的数据会被转发到其它所有端 口。这样不仅网络冲突增加,而且带宽被无用数据占用使得网络性能降低。网桥 采用了一种称为源地址学习的方法很好的解决了这一问题。 所谓源地址学习就是在网桥收到一个数据报文的时候它会读取该报文的源 m a c 地址。如果m a c 学习表里面没有该地址端口对则把该地址一端口对写入学习表。 那么这个学习过程有什么用呢? 很简单,网桥会利用这个学习表来进行有选择的 而不是广播式的转发。转发的过程很简单:用该报文的目的m a c 查找学习表中的 m a c 项,如果有匹配的则取出该地址端口对则把该报文从匹配的端口转发出去; 如果找不到匹配项就使用广播方式把该报文从除接收端口外的其它所有端口转发 出去。图2 - 3 描述了用网桥和集线器连接的网络,我们也结合这个实例来说明网 桥的学习和转发过程。 图2 3 网桥组建的网络 假设网桥的学习表为空,最初a 发送一个报文p 给g 。集线器i 收到p 后广 播即向b 、c 和网桥l 转发,网桥1 收到p 后读取p 的源m a c 并拿该m a c 去学 习表中匹配m a c 项,由于此时学习表为空即没有该m a c 项,因而( a _ m a c , p 1 ) 地址端口对被写入学习表( am a c 表示a 的, m a c 地址) 。接着网桥l 再读 取p 的目的m a c ,用该m a c 去学习表查找匹配项,很明显这个时候没有匹配项, 电子科技大学硕士学位论文 因而网桥1 采用广播方式向p 2 和p 3 端口转发报文p 。 如果g 不发送报文给a 、b 或者c ,那么网桥1 将会不停地通过广播方式把a 到g 的报文转发给g ,这种情况下网桥1 就相当于一个集线器,但通常会有g 到 a 方向的报文。这时对于g 到a 方向的第一个报文p ,网桥1 会学习到( gm a c ,p 3 ) 地址端口对到学习表中,至于p 是否通过广播到a 方向取决于这个时候学习表中 有无匹配的m a c 项。在这以后,a 与g 的通信将只通过a 一集线器1 网桥1 集线 器3 g 这条路径,集线器2 所在的网段不会收到a g 之问的报文,于是网络带宽 被提高了。 仔细观察我们就会发现图2 3 所示的网络是不可靠的,因为一旦网桥1 出现故 障那么不同集线器所连接的站点相互间将不能通信。这个时候常常需要冗余链路, 例如如果我们认为集线器3 和集线器2 之间的通信很重要,我们就在集线器3 和 集线器2 之间再连接一个备用网桥2 以增加可靠性,使得即使网桥1 出现故障, 集线器3 和集线器2 之间的站点仍然可以通过网桥2 通信,图2 - 4 展示了这种冗余 网络。 图2 4i 习桥组建的冗余网络 对于上图所示的网络,我们考虑这样一种情况,即最初网桥l 和网桥2 的学 习表均为空,此时i 发送一个报文p 给f 。集线器3 收到p 后广播给网桥1 ,接着 网桥l 广播给集线器2 ,然后集线器2 广播给网桥2 ,最后网桥2 又把该报文p 广 播返回到了集线器3 ,这样一个无限循环可能会产生,因为集线器3 又会广播该报 文p ,最后p 又通过网桥2 返回来。网络中这种回路的出现严重时会导致整个网络 1 4 第二章以太网交换设备 瘫痪,因为这样的报文不停地在网络传播占用了大量带宽。 回路成了网桥需要解决的另一个问题,而这是通过生成树协议( s t p , i e e e 8 0 2 i d ) 来实现的。由于生成树协议超过了本文论述的范围,这里就不详细说 明,但基本原理是很简单,即如果网桥之问在网络中有一条通路,则它们之间就 存在一条边,这样把所有的网桥和边组合起来就构成了一张图,而生成树协议就 是根据这张图得到一棵最小生成树,使得所有的数据都沿这棵树进行传播,这样 就成功地解决了回路问题。 网桥的学习功能虽然很好地限制了广播问题,但并没真正完全控制因为它毕 竟是一个二层设备即工作在o s i 模型的第二层,同时随着网络的规模和人们在安 全、性能上的要求不断提高,仅仅依靠网桥是不能满足的,这时三层设备的出现 就成为必然了。 2 1 4 路由器 网络连接设备的最主要也是最基本的功能就是转发,不同设备转发的差异仅 仅在于转发的能力和依据不同而已,中继器仅仅放大信号,集线器是一个星型的 多端口中继器,网桥通过学习有选择地转发。这几种设备虽然逐次提高了网络性 能,但它们都只能用在物理层及链路层,而整个网络不可能只由一个大的物理链 路构成,支持网络层网络连接的路由器的出现就成为必然了。 图2 5 路由器组建的网络 电子科技大学硕士学位论文 路由器是工作在o s i 模型的第三层即网络层的互连设备,实现跨子网的通信。 整个网络可以不再仅由一个单一的网络构成,而是可以被分割实现分域管理,使 得不能被二层设备完全解决的广播、安全和性能问题得到解决。图2 - 5 是一个由路 由器组建的网络。 对于图2 5 所示网络,我们来看看路由器是怎么转发数据报文的。 首先要注意的是,路由器是一个三层设备,它所连接的网络属于不同的网段 即p 1 、p 2 、p 3 和p 4 端口的网络地址不同。那么现在假如同样是a 希望与g 通信, 则首先a 会把报文p 发送到路由器的端口p 3 ,这是通过在a 上的一条默认路由决 定的。当然中间会经过集线器3 ,但对于a 来说集线器3 是透明的。一旦路由器 接收到报文p 就根据p 的目的i p 去查找路由表,这样会得到下一条信息,其中包 括出接口信息和下一条i p 地址。很明显,通过查找后路由器发现g 在p 1 端口, 因而把p 从端口p 1 转发出去。从这个过程可以看出,路由器完全避免了广播问题, 非转发路径上的网络是不会收到被转发报文的,这样相对与网桥来讲极大地提高 了带宽利用率和安全性。 那么路由器能否解决回路问题呢? 答案是显然的,这主要是通过i p 首部字段 的t t l 来保证的。每当报文经过一个路由器或者转发接点时,路由器会对t t l 进行判断即如果该报文的t t l 小于等于1 且该报文不是发送到本路由器,则丢弃 该报文,否则对t t l 做减l 操作,这样即使出现回路那么经过t t l 后该报文会被 自动丢弃从而使回路消失。 2 2 二层交换机 二层交换机是一种特殊的网桥,它支持更多的端口且在每个端口允许同时多 个以太网c s m a c d 协议进行工作,因而可以减少潜在的冲突,与共享介质网络 相比性能极大地提高。除此之外,二层交换机还引入了一些新的概念使得其与网 桥相比较功能有了质的飞跃,首先引入的便是虚拟局域网的概念。 2 2 1 虚拟局域网( v ir t u a il a n ) 什么是虚拟局域网( v l a n ) ? 这很难给它下定义。其实,一个虚拟局域网跟局 域网并没有什么不同,它覆盖了一个广播( 或组播) 包能够达到的范围( 这称为 一个广播域) 。v l a n 与l a n 之间的区别,如果有的话就是报文封装上的不同, 关于这点将在后面介绍。v l a n 允许在同一个交换机上有多个分离的l a n 。例如, 第二章以太网交换设备 已知某个交换机上端口1 - 6 位于v l a n a 上,而端口7 1 2 则位于v l a n b 上。这 个交换机可以当作两个分离的网桥使用:一部分负责端口1 - 6 之间的转发,另一部 分负责端口7 。1 2 之间的转发。 关于v l a

温馨提示

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

评论

0/150

提交评论