已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
! ! 蔓堕曼查堂堡主堂堡堡茎 第三层交换机软件的设计与实现 第三层交换机软件的设计与实现 摘要 第三层交换机能够在网络层按照i p 地址进行快速转发,同时具 备传统的第二层交换机的特点,使得组建快速、高效、大规模的局域 网成为可能。随着a s i c 技术的发展,第三层交换机具有越来越高的 性价比。目前第三层交换机已由网络的核心延伸至网络的边缘,占据 了相当大的市场份额。 基于北京万林克公司前期研制的第三层交换机的硬件,设计并实 现了第三层交换机的驱动程序。结合第三层交换机的应用环境,实现 了快速生成树协议。在对堆叠协议研究的基础上,提出了万林克私有 堆叠协议。 第三层交换机的驱动程序负责控制硬件提供的功能,如设备输入 输出,初始化,从物理层直到应用层的各种功能等。同时,第三层交 换机的驱动程序还要与上层软件交互,为上层软件提供服务。 。 生成树协议是交换网络中很重要的个协议,尤其在大规模交换 网络中更为重要。如果没有生成树协议,可能会给网络带来灾难性后 果。快速生成树协议在i e e e8 0 2 1 d 生成树协议的基础上对收敛速度 进行了改进,能够很好的满足目前网络的需求。 堆叠协议能够增加交换机端口密度,方便网络管理员对交换机进 行管理。但目前还没有统一的堆叠协议标准,一些大的网络设备供应 商设计了私有的堆叠协议。本论文提出的万林克私有堆叠协议还待进 一步实现。 关键词第三层交换驱动程序生成树堆叠 苎璺坚里查堂塑圭竺堡堡苎一塑三壁銮垒! ! 塑壁塑堡生皇壅銎 t h ed e s i g na n di m p l e m e n l a t i o no f l a y e r3s w i t c hs o f r w a r e a b s t r a c t l a y e r3s w i t c h ,w i t ht h ea uc h a r a c t e r i s t i c so fl a v t e r2s w i t c h ,c a n s w i t c hi pp a c k e c si nl i n es p e e da c c o r d i n gt od e s t i n a t i o ni pa d d r e s s i ti s p o s s i b l et oc o n s t m c th i g hs p e e d ,h i g hp e r f b n n a n c ea n dl a 曙es c a l ei ,an w i t h1 a y e r3s w i t c hn e t w o r kd e v i c e s w i t hc h ed e v e l o p m e n to fa s i c t e c h n 0 1 0 9 y l a y e r3s w i l c hh a st h eh i 曲e rp e r f o r m a n c ea n dt h el o w e r p r i c e c u r r e n t ly ,l a y e r3s w i t c hn e 觚o r kd e v i c e sh a v es p r e a df r o mt h e c o r eo fn e t w o r kt oc h ee 姑eo fn e t w or k i to c c u p y sa l a 唱ep a no fn e 柳o r k d e v i c e sm a r k e t b a s e do nt h eh a r d w a r ed e s i 狙a n di m p l e m e n t a t i o no ft h el a v e r3 s w i t c h ,ad e v i c ed r i v e rf o rt h el a y e r3s w i t c hh a s - b e e nd e v e l o d e d t h e r a p i ds p a n n i n gt r e ep r o t o c o lh a sb e e ni m p l e m e n t e di n 也ea p p l i c a t i o n e n v i r o n m e n to ft 1 1 el a y e r3s w i t c h b a s eo nt h es t i l d yo f s t a c k i n gp r o t o c o l , ap r i v a t es c a c k i n gp r o t o c o lf o r n l i n kh a sb e e ns u b m i t t e d t h ed e v i c ed r i v e ro fi a y e r3s w i t c hi sr e s p o n s i b l ef o rc o n t r 0 1 1 i n gt h e f u n c t i o n so ft h eh a r d w a r e ,s u c ha sd e v i c ei 0 ,i n i t i a l i z a t i o n ,a n df u n c t i o n s f r o mt h e p h y s i c a ll a y e rt oa p p l i c a t i o n1 a y e r ,e t c s i m u l t a n e o u s l y ,t h e d e v i c ed r i v e ri n i e r a c t sw i t ht h eu p1 a y e rs o f t w a f e ,a n dp r o v i d e ss e i c e s f b rt h e m s p a n n i n gt r e ep r o t o c 0 1i s av e r yi m p o r t a n t p r o t o c o li ns w i t c h i n g l 心,e s p e c i a l l yi n a1 a 唱es c a l es w i t c h i n gl a n t h e r em i g h tb ea d i s a s t e ri nal a 唱es c a l es w i t c h i n gl a nw i t h o u ts p a n n i n gf r e ep r o t o c 0 1 c o m p a r et oc h ei e e e8 0 2 1 ds p a n n i n gt r e ep r o t o c o l ,t h er a p i ds p a n n i n g f r e ep r o t o c o lh a sb e e ni m p r o v e di nc h ec o n s c r i n g e n c ys p e e d 1 1 h e r a p i d s p a n n i n gt r e ep r o t o c o lc a np e r f e c t l ys a t i s f yt h en e e do fc u r r e n tn e t w o r k s s t a c k i n gt e c h n 0 1 0 9 yc a ni n c r e a s et h ed e n s i t yo ft h es w i t c hp o r t sa n d r e d u c et h e d i f n c u l t yo fn e t w o r km a n a 2 e m e n t b u tt h e r ei sn os t a n d a r d s t a c k i n gp r o t o c 0 1 s o m ef a m o u sn e t w o r kd e v i c ep r o v i d e r sh a v ed e s i g n e d i i i 北京邮电火学硕卜学位论文第三层交换机软件的设汁与实现 p r i v a t es t a c k i n gp r o t o c 0 1 r h es t a c k i n gp r o t o c o ld i s c u s s e di n t h i sp a p e r , n e e d st ob ei m p l e m e n t e d k e yw o r d s l a y e r3s w i t c h d e v i c ed r i v e rs p a n n i n gt r e e s t a c k i n g l v 北京邮电夫学硕十学位论文第三甚交换机软件的设计与实现 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工怍及取得的研究成果。 尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,沦文中不包含其 他人已经发表或撰写过的研究成果,也不包含为获得北京邮电大学或其他教育机 构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献 均己在论文中作了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名: 裂珠 日期: 坦牟3 目2 丑 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规定,即: 研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大学。学校有权保 留并向国家有关部门或机构送交论文的复印件和磁盘,允许学位论文被查阅和借 阅;学校可以公布学位论文的全部或部分内容,可以允许采用影印、缩印或其它 复制手段保存、汇编学位论文。( 保密的学位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非保密论 文注释:本学位论文不属于保密范围,适用本授权书。 本人签名: 莲延坠 日期: 2 1 堕靠墨丑至旦 导师签名 族一 日期:渖,弓,厂 北京柏电大学硕士学位论文第三层交换机软件的设计与实现 1 1 第三层交换技术的引入 第一章绪论 以太网技术的物理层采用了c s m a c d ( c a r r i c rs e n s em u l t i p l ea c c e s sw i t hc o l l i s i 锄 d e t e c t i o n ) 机制。该机制在同一物理网段上只允许一个站点在某一时刻发送数据,其它站点 在该时刻只能进行监听。当同一物理网段上的两个站点或多个站点欲同时发送数据时,便 会产生冲突。所以同一物理网段上的站点越多,产生冲突的概率越大,网络带宽的利用率 也随之下降。 为了减少冲突的概率,可以利用网桥或第二层交换机将个较大的网络划分为若干个 较小的物理网段。第二层交换机具有m a c 地址学习能力,可以将站点的m a c 地址与该 站点所连接的端口等信息记录在m a c 地址表中。当第二层交换机收到数据包后对数据包 进行差错校验,然后从与其目的m a c 地址对应的端口发送出去。第二层交换机可以有效 的分割冲突域,大大提高了网络带宽的利用率。但第二层交换机无法分割网络的广播域。 当收到目的地址是广播地址的数据包时会向所有端口转发。当网络的规模较大时,大量的 广播包充斥着整个网络,使网络的性能下降,严重时可能引起广播风暴。 v l a n 技术能够分割网络的广播域,使得广播包被限制在v 乙气n 的内部,而不会扩散 到其它v u 蝌中去。同时v u 州技术还可以划分虚拟工作组,增加网络的安全性。但由 于v l a n 技术限制了广播包,这使得a n 间通信必须经过网络层进行路由。 在早期,网络层路由只能靠路由器来完成。路由器具有丰富的网络功能,价格昂贵。 同时,路由器由运行于c p u 上的协议栈来处理数据包,速度较慢。如果v 心间通信依 靠路由器的话,路由器会成为网络的瓶颈。 第三层交换机在传统的第二层交换机的基础上增加了路由功能。第三层交换机的路由 学习功能由软件实现,而i p 数据包转发功能则由硬件来实现。这样,一旦第三层交换机学 到路由以后就可以按照i p 地址由硬件直接转发数据包,大大提高了数据包的处理速度,解 决了路由器的瓶颈问题。 1 2 第三层交换技术的发展趋势 i p s i l o n 公司于1 9 9 6 年引入和定义了一种新的叫做i p 交换机的网络设备。稍后,i b m 和 a s c o 也推出了各自的解决方案,将交换交换功能和路由功能集成于一体,其它厂商后来 北京邮电大学硕士学位论文第三层交换机软件的设计与实现 也纷纷提出类似的方案。目前,按照报文的处理方式可以将第三层交换技术分为两个基本 类型:流交换和报文到报文交换。 流交换技术的设计目标是方便线速路由处理,采用的这种技术的有i d s i l o n 公司的i p 交换、a s c o 公司的标签交换、3 c o m 公司的f a s t i p ,c a b l e t r o n 公司的s e c u r e f a s t 虚拟网络 以及a t m 论坛的m p o a 等。在设计上,它们都把路由处理工作分解成路由计算和报文转 发两部分,并分别由软件和硬件来实现这两部分功能。这种实现手段克服了传统路由器的 高成本、低性能的缺陷。但是在上述技术中,除m p o a 外其它技术都是各设备制造商专有 的,它们都使用各个设备制造商专用的协议或硬件,难以与网络中现有的设备互操作,最 终在市场上都没有获得成功。m p o a 是唯一一个获得多厂商支持的流交换标准。它使用路 由服务器为子网间的i p 流进行路由计算,使用a t m 网络结构执行报文转发,可提供良好 的端到端的性能保证,但实现起来过于复杂和昂贵,它也仅限于包括筒r m 网络的用户环 境。 报文到报文的交换是传统路由功能的高性能实现,可以很好地与网络中已有的第二层 交换机和第三层路由器互操作。在以太网技术占很大优势的局域网领域,网络互连协议也 基本上是t c p 】 p 一统天下,对这种领域的应用,报文到报文的交换技术更为适合。可以 根据需要添加支持报文到报文交换的第三层交换机到网络中,既可以保护用户已有的投 资,又能提高网络的性能,实现已有网络的平滑升级,组建新的网络j 时,可以直接采用性 能价格比很高的第三层交换机。 随着应用的发展,目前出现了第四层交换技术和第七层交换技术。 第四层交换技术利用第三层和第四层数据包头中的信息来识别数据流会话,这些信息 包括t c p ,u d p 端口号、标记会话开始与结束的s y n ,兀n 标志位以及源或目的口地址。利 用这些信息,第四层交换机可以做出向何处转发会话传输流的智能决定。 第七层交换技术具有对应用层内容的认知功能。第七层交换机可以自由地完全打开传 输流的应用层,仔细分析其中的内容,因此可以根据应用的类型而非仅仅根据口地址和端 口号,做出更智能的负载均衡决定。 1 3 第三层交换技术的应用 随着第三层交抉技术的成熟,第三层交换机已从网络的骨干层延伸至网络的边缘层。 目前第三层交换机已大量应用于宽带网,校园网,企业的局域网等。在宽带网络建设中, 第三层交换机可以用于城域网的建设,也可放置在小区的中心作为汇聚层的交换机。在校 园网和大型企业网的建设中,第三层交换机一般应用于网络的核心层和汇聚层。对于中小 规模企业网络来,也可在其网络的核心应用第三层交换机来提升网络的性能。 北京邮电大学硕七学位论文第三层交换机软件的设计与实现 图1 1 给出第三层交换机在中小规模企业网络的一个典型应用。 服务器1 服务器2 服务器3 第二层交换机 闰1 1 第三层交换机应用案例 子网1 子网2 子网3 在图1 1 的应用中,第三层交换机被放置在网络的核心。各种应用服务器直接连接在 笫三层交换机上。整个网络网络被分成若干个子网,每个子网内的站点通过第二层交换机 或集线器进行汇聚,然后连接到第三层交换机上。第三层交换机通过路由器连接到广域网。 这样一个较大的网络被分割成若干个较小的子网,限制了广播域。同时子网之间相互通信 的速度仍然可以达到第二层交换机的速度。 1 4 本论文所完成的工作 本论文在北京万林克公司前期完成的第三层交换机硬件设计的基础上完成了驱动程 序的设计与实现。驱动程序的功能主要包括交换芯片的初始化、交换芯片与c p u 之间的 i o 、物理层功能的管理、数据链路层功能的管理、网络层功能的管理和数据包过滤等。 生成树技术是交换网络中一项很重要的技术。本论文在对生成树技术深入研究的基础 上,实现了i e e e8 0 2 1 w 快速生成树协议。 交换机堆叠也是交换网络中一项很重要的技术,堆叠的实现依赖于堆叠协议。本论文 在对b r o a d c o m 公司提供的堆叠协议研究的基础上,并结合万林克公司研制的第三层交 北京邮电大学硕士学位记文第三崖交换机软件的设计与实现 换机的应用环境,提出了一个私有的堆叠协议。 4 北京邮电大学硕士学位论文 第三层交换机软件的醴计与实现 2 1 硬件系统结构 第二章系统结构 第三层交换机的硬件设计已经由北京万林克公司的研发人员在前期完成。这一节简要 介绍一下硬件系统的组成。 第三层交换机的硬件系统主要由两部分组成,一个是控制模块,一个是交换模块。控 制模块主要负责系统的初始化、配置、管理以及运行上层协议等。交换模块主要负责二层 交换、三层交换和其它一些功能。 控制模块采用了北京万林克公司已研制成功的w 州l i n k - 3 6 主板。其c p u 采用了 m o t o r 0 1 a 公司的m p c8 2 4 5 ,其主频可达3 5 0 m h z ,完全满足系统需求。该款主板带有两 个以太网口,两个控制台口,方便系统调试。同时该款主板带有p c i 接口,可以通过背板 与交换模块连接。 图2 1 硬件系统结构 交换模块的核心交换芯片采用了b r o a d c o m 公司的b c m5 6 4 5 第三层交换芯片。该 芯片采用a s i c 技术将整个系统的功能集成于一块芯片上,具有较高的性价比。浚芯片主 要提供了以下功能: 交换罄一 北京邮电大学硕士学位论文 第三层交换机软件的设计与实现 1 ) 支持2 4 个1 0 1 0 0 m b 快速以太网端口,2 个1 0 n o o 1 0 0 0 m b 千兆以太网端口,其中 千兆以太网端口支持交换机堆叠; 2 ) 支持3 2 位宽,3 3 一m h z 到5 0 m h z 的p c l2 1 总线接口; 3 ) 能够完全支持i e e e8 0 2 3 ; 4 ) 支持二层交换,能够自动进行地址学习与老化,芯片内部集成了容量为8 k 的m a c 地址表: 5 ) 支持线速i p 交换,芯片内部集成了容量为2 k 的i p 地址表和容量为1 6 的缺省路 由表; 6 ) 支持i e e e 8 0 2 1qv u 州,支持v ia n 标签的插入与删除,支持动态v u 斟注册 协议; 7 ) 支持i p 组播和i g m ps n 0 0 p i n g ,芯片内部集成了容量为2 5 6 的组播i p 地址表和组 播m a c 地址表; 8 1 支持端口绑定和端口镜像; 9 ) 支持从数据链路层到应用层的数据包过滤与分类功能: 1 0 ) 支持4 个优先级队列的g d s 服务,能够将鹰e e8 0 2 1 p 的8 个优先级映射到4 个优 先级队列中,提供严格优先级调度和加权优先级调度两种服务; 1 1 ) 芯片内部集成了2 5 6 k b 的数据缓存,同时还支持总线宽度为6 4 位或1 2 8 位的外部 s d r a m ,用于缓存数据包; 1 2 ) 支持e e8 0 2 1 d 单生成树协议,同时支持每个v ia n 一个生成树; 1 3 1 支持差分服务; 1 钔支持p h y 编程接口; 1 5 ) 支持s n m p 和r m o n ,支持r f c1 2 1 3m i b i i 、r f c1 4 9 3 蹦d g cm i b 、r f c1 6 4 3 e t l l e r l i k cm i b 和r f c1 7 5 7r m o n l 等。 为了系统整体兼容性,p h y 芯片同样选用了b r o a d c o m 公司的产品。选用b c m5 2 3 9 作为1 0 1 0 0 m b 以太网端口的物理层芯片,每片可以支持8 个1 0 1 0 0 m b 以太网端口。选用 b c m5 4 2 1 作为千兆以太网端口的物理层芯片,每片可以支持一个千兆以太网端口,既可 以支持电接口又可以支持光纤接口。 交换芯片内部集成了2 5 6 k b 大小的数据包缓存,同时在交换芯片外部增加了3 2 m b 大小的s d r a m 作为数据包的缓存。 北京邮电大学硕上学位论文第三层交换机软件的设h 与实现 2 2 软件系统结构 22 1 软件系统总体结构 三层交换机的软件主要由三部分构成:操作系统、上层协议和驱动程序。 操作系统采用了北京万林克公司自行研制的实时多任务操作系统r m o s 。r m o s 是一 个高效、精炼的专用操作系统,可以提供进程、线程、信箱、信号量、事件和时钟等多种 资源的管理,以及进程间通信和差错告警等多种功能,非常适用于开发多任务、实时性强 的通信产品。 上层协议的一部分已经在北京万林克公司开发的路由器产品中实现了,只需移植过来 就行;另一部分协议是专门应用于交换机的协议,需要从零开始设计与实现。由于第三层 交换机的硬件没有路由学习的能力,移植的协议栈主要是为了实现软件辅助硬件进行路由 学习的功能,主要包括i p 、t c p 、u d p 、r i p 、o s p f 、s n m p 和m 1 、p 等。由于北京万林 克公司以前没有做过可配置的交换机产品,像生成树协议,g v r p 协议,i e e e8 0 2 1 x ,i g m p s n o o p i n g 等需要从零开始设计与实现,这部分工作量比较大。 驱动程序主要起到沟通上层协议与底层硬件的功能。由于硬件提供的网络功能非常丰 富,所以驱动程序涉及的内容也非常多,将在2 2 2 小节详细介绍。 s n m p ,h tr 口o s p f 【t p e t ce t c t c pu d p p 配置管理模块 z 、 v i n u a li n t e r 盘c e 8 0 2 1 w ,8 0 21 0 ,8 0 2 1 xi g m ps n o o p i o ge t c t 7 驱动程序 塑堡墨竺 图2 3 软件系统总体结构 2 2 2 驱动程序结构 驱动程序可分为两个层次,底层部分主要实现了设备的输入、输出,上层部分按照功 能又分成若干个模块。 交换芯片提供了多种输入、输出的方法。对于可以通过p c i 总线接口映射的寄存器, 采用了通过p c i 总线接口直接访问的方法。对于不能通过p c i 总线接口映射的寄存器,采 用了s c h a n n e l 消息机制间接访问。对于发送给c p u 的数据包,或c p u 发送给交换芯片 的数据包,采用了d m a 机制进行传输。对于大量的计数器数据,也采用了d m a 机制进 北京邮电大学碗土学位论文第三层交换机软件的世计i ,实墁 行传输。对于a r l 表( m a c 地表) ,采用了s c h a i l n e l 消息机制的访问方法。对于p h y 芯片内部的寄存器,则是通过m 总线接口进行访问的。 上层部分按照各个功能所处的网络层次又可分为4 个层次,分别是:物理层、数据链 路层、网络层和应用层。 物理层的功能主要由p h y 芯片来提供,实现了复位、本地回环、强制速速率模式选 择、双工模式、自动协商和低功耗等功能。 数据链路层主要实现了第二层交换、c o s 管理、h o l 阻塞、背压机制、数据包速率控 制、端口镜像、端口绑定、对基于端口的v 乙n 的支持和对生成树协议的支持等功能。 各个功能模块 设备输入,输出阿i 矗石= 磊订i 五i 畜磊i i :磊吾而i i i i 丽而习 图2 4 驱动程序结构 网络层主要实现了第三层交换和球组播等功能。 在应用层,可以对数据包的前8 0 个字节进行检查,还可以对数据流进行计量。在此 基础上能够实现q o s ,访问控制和区分服务等应用。 北京邮电大学碗上学位论文第三层交换机软件的设计与实现 第三章驱动程序的设计与实现 3 1 设备输入、输出及交换机初始化 3 1 1 p c i 接口 交换芯片内部包含有一部分寄存器,经过p a 总线映射到c p u 的内存地址空间,使 得c p u 可以通过访问内存的方法直接访问这些寄存器,这些寄存器在本论文称之为直接映 射寄存器。c p u 需要预留一段内存空间给直接映射寄存器。为了能够访问直接映射寄存器, 在交换机系统初始化时,驱动程序要负责配置p c i 配置寄存器。p c i 配置寄存器如图3 1 所示。 o x 0 0d e v i c ei dv e n d o ri d o x 0 4s t 8 t u sr e 9 1 s t e c o m m a n dr e g i s t e r o x 0 8 c l a s sc o d er e v i s i o ni d o x o cb i s th e a d e rt y p em r m e rl “ml i n es “ 0 x l ob a s ea d d r e s s o x l 4 r e s e r v e d 0 x 2 8 0 x 2 c s 曲s y s t 伽i d s 曲s y s t e v e n d o ri d u x 0 俨 r e s e r v e d 0 x 3 8 o x 3 ch zl 8 t e n c y 耻ng r 锄t i n t e ”u p tp i di n t ”l i 呶4 0r e s e r v e dt yt i 龇伽t r e t r yc o u n t 图3 1p c i 配置寄存器 首先,驱动程序通过v e n d o r i d 和d e v i c e i d 测到芯片的型号。其次通过配置c o m m a n d 寄存器的e n a b l em a s t e r i n g 位,使交换芯片成为p c i 总线的主设各;通过配置c o m m a l l d 寄 存器的m e m o r va c c e s se n a b l e 位,使得交换芯片能够响应c p u 的存储器访问命令。最后, 通过配置b a s e a d d r e s s 寄存器将直接映射寄存器映射到c p u 预留的内存地址空间。关于其 它寄存器的详细解释可参考文献【9 】。 3 1 2 消息机制 通过p c i 总线c p u 可以直接访问直接映射寄存器,但交换芯片内部还有一部分地址 空间无法通过p c i 总线直接访问,如间接映射寄存器,数据表,缓存的帧数据等。交换芯 片提供了一种消息机制来间接访问这些地址空间。 交换芯片提供了一组消息寄存器构成消息缓存,这些消息寄存器属于直接映射寄存 器,c p u 可以直接访问。c p u 构建一条消息,将其拷贝到消息缓存中,然后通知c m i c 模块,c m i c 模块将消息发送到内部消息总线上。交换芯片完成指定的操作后通过c m i c 9 北京邮电大学硕士学位论文第三层交换机软件的设计与实现 模块通知c p u 。交换芯片内部也用消息机制来同步寄存器的内容。 消息由消息头和消息体组成。消息头指明操作类型和操作对象,而消息体则携带参数 或返回数据。消息头的格式如图3 2 所示。 l l 四2 吕* ? s “z j2 22 1 冲】9j 8j ? 1 61 5 dl l zl 】1 09 87 e5d32 o p c o d e d e s tb 1 。c ks r cb l o c kd a t al e n e e c o d i c o s c j 图3 2 消息头的格式 0 p c o d e 指明消息类型,交换芯片所支持的消息类型有:读内存命令,读内存确认,写 内存命令,读寄存器命令,读寄存器确认,写寄存器命令,a r l 插入命令,a r l 插入完 成,a r l 删除命令,a r l 删除完成,a r l 查找命令等。 d e s tb 1 0 c k 和s r cb l o c k 分别表示发送消息的模块和接收消息的模块。交换芯片共分7 个模块,分别是:1 0 0 m b j tp o r t s1 - 8 ,1 0 0 m b i tp o r t s9 1 6 ,1 0 0 m b 川p o n s1 7 2 4 ,g 蟾a b j tp o r t 1 ,g i g a b i tp o n2 ,c m i c ( c p u ) ,m m u 。 交换芯片在完成消息后有两种方法通知c p u ,一种采用中断处理方法,一种采用软件 查询方法。本论文所设计的驱动程序采用了软件查询的方法。 3 1 3 然l 操作 a r l 表存贮了用于第二层交换的m a c 地址等信息,c p u 有时需要对a r l 表执行查 找,插入和删除等操作。交换芯片提供了两种机制用于c p u 对a r l 表进行操作。一种机 制是3 1 2 小节所述的消息机制,可以实现对a r l 表进行查找,插入和删除。另一种机制 是d m a 机制。通过d m a 机制可以周期性的将整个a r l 表的内容全部读取到指定的内存 中去,c p u 对按照a r l 表的格式对内存进行解析后可以获知a r l 表的内容。但d m a 机 制无法实现对a i 也表的插入和删除操作。 3 1 4 帧数据传输 交换芯片无法处理的数据包要通过p c i 总线发送给c p u 处理,c p u 也要通过p c i 总 线将数据包发送到交换芯片,进而由交换芯片将数据包发送到由c p u 指定的端口。数据包 的收发都是通过d m a 方式来完成的。交换芯片提供了4 个d m a 通道,每个d m a 通道 通过编程可以设置为接收通道或发送通道。d m a 控制器通过d c b ( d m ac o n t r o lb l o c k ) 来 控制数据包的传输。 d c b 的格式如图3 3 所示。上半部分由驱动程序来设置,d m a 控制器依照软件的设 置完成相应的操作。下半部分由d m a 控制器来设置,将其执行结果反馈给驱动程序。 在上半部分中,m e m o r va d d f e s s 表示内存地址,如果d c b 用于接收数据包,则该地 址表示c p u 为收到的数据包分配的缓冲区起始地址:如果d c b 用于发送数据包,则该地 址表示数据包在内存中的起始地址,同时由t r a l l s f c rb 、,t ec o u n t 来表示待发送的数据包长 1 0 北京邮电火学碗上学位论文第三层交换机软件的设汁与实现 度,由p o r tb i tm a p 和u n t a g g e dp o r tb i tm a p 来表示该数据包发送到哪些端口。 在f 半部分中,如果d c b 用于接收数据包,则t r a n s f e r r e db y t ec o u n t 表示收到的数 据包长度,s r cp o r t 表示该数据包从哪个端口接收到,c p u0 p c o d e s 表示该数据包缘何被 发送到c p u ,d 表示该数据包是否被成功接收;如果d c b 用于发送数据包,则d o n e 表示 该数据包是否被成功发送。 图3 3d c b 格式 为了提高传输效率,接收和发送各占一个d m a 通道,每个通道对应一组d c b ,每组 d c b 链接成一个环,d m a 控制器在完成最后一个d c b 后自动跳转到第一个d c b 。在发 送数据包时,c p u 事先将d c b 准备好,挂接在d c b 环上,这样d m a 控制器可以连续处 理多个d c b 。在接收数据包时也采用同样机制,d m a 控制器可以连续接收多个数据包。 这样可以避免频繁的中断处理,能够应对突发数据。 3 1 5 计数器数据传输 一 交换芯片内部包含大量的计数器,用于统计各类数据包。在b c m 5 6 4 5 芯片中,每个 快速以太网口包含4 9 个计数器,每个吉比特以太网口包含4 0 个计数器,总共1 2 5 6 个计 数器。上层应用程序要求周期性的读取所有的计数器,如果采用消息机制逐个计数器去读, 则c p u 需要花费很多时间去干涉。b c m 5 6 4 5 芯片采用了d m a 机制,c p u 只需干涉一次 便可读取所有的计数器。 c p u 需要事先分配2 6 6 4 4 总共6 6 5 6 字节大小的缓存空间,分配的缓存必须4 字 节对齐。c p u 将该缓存的起始地址告诉计数器d m a 控制器,然后设定端口集、读取周期 和中断标志位等。完成这些工作后即可启动计数器d m a 控制器。每次计数器数据传输完 毕后,会送给c p u 一个中断,c p u 响应该中断,调用相应的处理函数将计数器数据提交 给相应的应用程序。 3 1 6 交换机初始化 系统在加电之后,由c p u 负责交换主板的初始化。初始化任务主要包括:设置p c i 配置寄存器、系统复位、设置e n d i a n 模式、配置s d r a m 、s d r a m 测试、系统自检、设 北京邮电大学硕 :学位论文 第兰层交换机软件的设计与宴现 置中断位、向操作系统注册相应的中断服务程序等。 设置p c i 配置寄存器如前所述。完成该设置之后,c p u 就可以访问交换芯片内部的直 接映射寄存器了。 系统复位可以将交换芯片内所有的寄存器和表初始化为默认值。将c m i cc o n f i g 寄 存器的r e s e t c p s 位置1 即可将系统复位,但这之后需要等待1 0 毫秒方可访问交换芯片 内的寄存器。 c p u 通过p c i 总线访问交换芯片内部寄存器。p c i 总线的e n d i a i l 模式是l i t l l e e n d i a n 。 但c p u 的e n d i a n 模式就不一定了,i n t e l 的c p u 的e n d i a l l 模式是“t t l ee n d i a n ,其它厂家 的大都是b j ge n d i a n 。当c p u 的e n d i a n 模式是b 蟾e n d j a l l 时,c p u 在访问交换芯片内的 3 2 位数据时,需要交换字节序。通过配置c m i c n d h 悄- s e ie l 玎寄存器,交换芯片将 c p u 要访问的3 2 位数据交换字节序后再放到p a 总线上,这样c p u 无需再交换字节序了。 除了芯片内部集成的2 5 6 k b 的数据包缓存外,交换芯片还能支持4 m b 、8 m b 、1 6 m b 、 3 2 m b 或6 4 m b 的外部s d r a m 缓存。外部缓存由2 片或4 片存储芯片组成,与交换芯片 之间的数据总线宽度为6 4 位或1 2 8 位。c p u 可以通过一个探测程序获知这些参数,然后 再利用这些参数配置交换芯片中相应的寄存器。 s d r a m 自身无法完成测试,在系统初始化时需要由软件来完成测试。s d r a m 测试 主要由以下三步组成: 1 ) c h e c k e r b o a r d 测试1 :在g b p 的偶数行填入1 6 个字节的o x 5 5 ,奇数行填入1 6 字 节的o x a a ,读取并验证; 2 ) c h e c k e r b o a r d 测试2 :在g b p 的偶数行填入1 6 个字节的0 x a a ,奇数行填入1 6 字 节的0 x 5 5 ,读取并验证; 3 ) 地址测试:在g b p 中逐行填入递增的数,读取并验证。 在系统初始化时,交换芯片可以自我测试一些表,如a r l 表,l 3 表,c b p 等。 交换芯片利用p c ii 啪r a 中断线来产生中断。产生中断的原爵有很多种,c p u 可以通 过设置c m i ci r 0m a s k 来使能或屏蔽一些中断。当c p u 被通知有中断产生时,通过读 取c m i ci r qs 髓灯来判断是什么原因引起的中断。在系统初始化时,需要设定允许哪些 中断产生,并向操作系统注册相应的中断处理程序。 3 2 物理层 3 2 ,1 访问p h y 寄存器 交换芯片通过标准的疋e e8 0 2 3 um 接口与p h y 芯片相连。m i i 接口是一个两线的 串行总线。c p u 通过控制交换芯片内部相应的寄存器间接的访问p h y 寄存器。交换芯片 北京邮电人学硕卜学位论文 第三屡交换机软件的设计与实现 提供了两种访问机制,一种是中断机制,一种是软件查询机制。软件查询机制更为简单有 效,在这里采用了软件查询机制。该访问方法如f : 1 ) 将要凄或写的p f yi d ,p h y 寄存器地址,如果是写的话还有要写入的数据填入 c m i c l m i i m p a r a m 寄存器中; 2 ) 启动读或写命令; 3 ) 重复查询m n mo pd o n e 位直至为1 。 如果链路状态扫描采用m i i 自动扫描,在进行此操作之前需要先停止链路状态的自动 扫描。 p h y 芯片主要提供了如下寄存器:m i i 控制寄存器,m i i 状态寄存器,p h y 地址寄存 器,自动协商建议寄存器等。 3 2 2 物理层功能 c p u 通过控制p h y 寄存器可以控制p h y 芯片的功能。p h y 芯片所实现的功能主要有: 复位、本地回环、强制速速率模式选择、双工模式,自动协商和低功耗等。 p h y 芯片支持两种复位方式,一种是硬复位,一种是软复位。硬复位在系统加电后进 行,需要一个至少2 微秒的脉冲。软复位由软件向控制寄存器的复位b i t 写入1 来控制p h y 芯片复位。该复位b i t 是自清除位,无须软件等复位完成后写入o 来清除该位。 本地回环主要用于本地测试。数据包从t x d 引线发送出去,不经过外部电缆,又从 r x d 引线接收回来。同时,r x d 引线不从电缆上接收任何数据包。 p h y 芯片为每个端口提供了两种速率模式,一种是1 0 b a s e - t 模式,一种是 1 0 0 b a s e t 模式。当禁用自动协商功能后,可以通避设置p h y 芯片的控制寄存器强制芯 片工作于所选择的模式。 在全双工模式下,端口可以同时发送和接收数据包。而在半双工模式下,端口要么处 于接收状态,要么处于发送状态。当禁用自动协商功能后,通过设置控制寄存器可以选择 双工模式。 用电缆直接相连的两个端口可以通过自动协商来确定端口的速率模式和双工模式。默 认情况下,端口将建议全双工和1 0 0 b a s e - t 。也可以通过设置自动协商建议寄存器来设置 端口与对方协商时的默认模式。 当端口检测到对端掉电后将转入低功耗工作模式。当端口处于低功耗模式时,每隔2 5 秒到5 秒会进行一次检测,如果对端恢复正常,则进入正常工作模式。 北京邮电大学颤士学位论文 第三层交换机软件的设计与实现 3 3 数据链路层 3 3 】第二层交换 交换芯片内部有一个地址解析逻辑,负责进行第二层交换。地址解析逻辑主要负责完 成以下任务: 1 ) 对于目的m a c 地址是单播地址的数据包,为其找到相应的出端口: 2 ) 对于目的m a c 地址是广播或组播地址的数据包,或目的地址查找失败的数据包, 为其找到相应的出端口集; 3 ) 对于带v l 气n 标签的数据包,获取其v l a n 标签; 4 ) 获取v l a n 成员间关系: 5 ) 决定是加v l a n 标签还是去v l 埘标签; 6 ) 当数据包的源m a c 地址不在a r l 表中时,学习源m a c 地址: 7 ) 在c p u 的干预下学习组播m a c 地址和增加或删除静态单播m a c 地址: 研协助进行第三层交换。 收到数据包后,地址解析逻辑首先会进行源地址查找。地址解析逻辑从数据包中提取 源m a c 地址和a n i d ,如果该数据包是不带v ia n 标签的数据包;则地址解析逻辑会 依据收到的该数据包的端口号从咖l e 中获得对应的v l a n m 和优先级为其加上标签。 这样地址解析逻辑会按照s a + v ni d 去查找a r l 表。如果找不到,地址解析逻辑会进 行源地址学习;如果找到了,会按照相应的设置执行相应的动作。 随后地址解析逻辑进行目的地址查找。对于单播m a c 地址,地址解析逻辑查找a r l 表,对于组播m a c 地址,地址解析逻辑查找m a r l 表。如果找到了,则可以获得出端口; 如果找不到则出端口为该、,a i n i d 对应的v l a n 的所有成员端口。 地址解析逻辑可以在没有c p u 的干预下进行m a c 地址学习。地址解析逻辑有三种方 式学习m a c 地址: 1 ) 动态地址学习:当地址解析逻辑查找源地址失败后,地址解析逻辑会在a r l 表中 插入一条新的表项;如果源地址查找成功但对应的端口发生了变化,这时会将这 一表项的端口号更新一下。 2 ) 静态地址学习:c p u 可以向a r l 表中插入静态地址项。但静态地址项无法因超时 被交换芯片的老化进程删除,只能在c p u 的干预下被删除。 3 ) 组播地址学习:组播地址被保存在m a r l 表中。组播地址的学习是在上层组播协 议的协助下完成的,如i g m ps n o o p i n g 和g m r p 等。 对于设鬣了端口绑定的端口( 端口绑定的概念请参考3 3 7 节) ,如果还按照前述的方 北京邮电大学硕七学位论文第三层交换机软件的设i 十与实现 式进行地址学习就会出现一点小小的问题。端口绑定可以将多个物理端口组成一个逻辑端 口,这样同样一个m a c 地址可能出现在两个彳i 同的物理端口上。例如,站点a 与站点b 通过端口1 通信,同时站点a 与站点c 通过与端口1 同处于一个绑定组中的端口2 通信
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024杂志广告刊登广告合同
- 专题02成语、熟语辨析-2022-2023学年四年级语文上册期末复习知识点精讲精练(部编版)
- 2024河北劳动合同范本
- 深圳大学《音乐教学法》2023-2024学年第一学期期末试卷
- 采购订单终止合同模板(2篇)
- 香蕉转让合同范本(2篇)
- 养老院阿尔兹海默症协议书(2篇)
- 关于考试的检讨书
- 出纳人员年终工作总结
- 企业发生火灾应急预案(6篇)
- 2025年高考数学专项题型点拨训练之初等数论
- 上海市浦东新区2024-2025学年六年级上学期11月期中数学试题(无答案)
- 教科版三年级科学上册《第1单元第1课时 水到哪里去了》教学课件
- 通信技术工程师招聘笔试题与参考答案(某世界500强集团)2024年
- 国际贸易术语2020
- 国网新安规培训考试题及答案
- 2024至2030年中国节流孔板组数据监测研究报告
- 黑龙江省哈尔滨市师大附中2024-2025学年高一上学期10月阶段性考试英语试题含答案
- 第六单元测试卷-2024-2025学年统编版语文三年级上册
- 【课件】Unit4+Section+B+(Project)课件人教版(2024)七年级英语上册
- 青少年法治教育实践基地建设活动实施方案
评论
0/150
提交评论