(计算机科学与技术专业论文)集群路由器软件结点平台的实现技术研究.pdf_第1页
(计算机科学与技术专业论文)集群路由器软件结点平台的实现技术研究.pdf_第2页
(计算机科学与技术专业论文)集群路由器软件结点平台的实现技术研究.pdf_第3页
(计算机科学与技术专业论文)集群路由器软件结点平台的实现技术研究.pdf_第4页
(计算机科学与技术专业论文)集群路由器软件结点平台的实现技术研究.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

(计算机科学与技术专业论文)集群路由器软件结点平台的实现技术研究.pdf.pdf 免费下载

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

文档简介

国防科学技术大学研究生院学位论文 摘要 随着网络规模和复杂性不断增加,互联网体系结构正面临着重大理论挑战。传统的 计算机网络理论和技术在经历了几十年的发展变化之后,已经越来越不能适应今天和未 来网络应用发展的要求,在面临网络流量的高突发性和自相似性、大规模网络系统的复 杂性和可控性、网络可信性等问题面前显得越来越无力。为此我们提出了0 p e i 氓o u t e r 体系结构。 本文首先介绍软件路由器的概念与意义,课题背景、任务及研究目标。接着介绍 o 口e n r o u t e r 体系结构,软件集群路由器的概念。 本文在0 p e n r o u t e r 体系结构下,主要负责转发结点的研究和设计。首先是研究国外 已有的转发服务功能的软件可扩展路由器p l u g i n s ,s c o u t 和c l i c k ,对他们进行分析、对 比。 在此基础上,根据o p e n r o u t e r 体系结构对转发结点的要求,研究和设计模块化软件 路由器m s r 。设计的主要方针是首先分类和提取出逻辑功能模块l f b ,接着选择m s r 使用的配置及l f b 开发语言。最后根据o p e n r o u t e r 体系结构要求,在扩展c l i c k 已有的 逻辑功能模块的同时,设计进行g r e 操作的l f b 和用于分发操作的l f b 。 在实现阶段,根据设计方针,首先选择r o s e 作为m s r 的语言使用,分析了使用 r o s e 的好处。接着我们对m s r 中的l f b 按照r o s e 语言规范进行分类,并在r d s e 语言 中详细定义这五类l f b 。使用r o s e 语言描述逻辑功能模块。在m s r 中我们总共设计了 4 0 个逻辑功能模块。最后我们特别列出几个重要l f b 的设计与实现方案:g r e 逻辑功 能模块c h e c k g r e h e a d e r ,g r e e n c 印,s 埘p g r e h e a d e r 以及用于分类操作的逻辑功能模 块s p l i t f i r s t 。 在设计m s r 的同时,为了整个项目的延续性,设计开发了一个试验系统。这个试 验系统为以后试验的开展提供了一个灵活,易扩展的平台。 关键字:集群路由器,转发结点,模块化软件路由器 第1 页 里堕型兰垫查盔望坚茎竺堕兰堡笙苎 图目录 图2 1s c r r m 物理结构6 图2 2c r o s s b o w 的“g a t e ”模型8 图2 3c l i c k 逻辑功能模块模型9 图2 。4 网络地址转换简单示意图1 2 图2 5s c o u t 软件路由器模型1 4 图2 6 简单的i p 路由器结构示意图”1 4 图2 7 软件路由器转发速率受输入速率的比较图。1 7 图3 1o p e n r o u t e r 物理形态图2 0 图3 2o p e n r o u t e r 体系结构模型图2 1 图3 3f e 模型对象关系示意2 7 图3 4 深度处理逻辑图2 9 图4 1 简单路由器示例图3 5 图4 2g r e 数据包3 9 图4 3g r e 数据包的头部格式4 0 图4 4 测试环境结构图4 3 图5 1 试验系统物理结构图4 4 图5 2 试验系统流水线结构图4 5 图5 3 试验系统结构图4 5 图5 4i n g r e s sn o d e 配置图4 6 图5 5r o u t e rn o d e 配置图4 7 图5 6e g r e s sn o d e 配置图4 8 图5 7 扩展后的试验系统结构图4 9 雪堕型兰垫查奎兰堕塞竺堕兰垡堡茎 表2 1 试验环境及配置说明 表2 2 性能测试数据 表4 1l f b 用法对照表, 表4 2l f b 用法对照表续 表目录 ,1 7 1 7 4 2 4 3 第i v 页 独创性声明 本人声明所呈交的学位论文是我本人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已 经发表和撰写过的研究成果,也不包含为获得国防科学技术大学或其它教育机构的学 位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文 中作了明确的说明并表示谢意。 学位论文题目: 篡叠竖由墨筮往壁壶垒数塞塑拄盛婴究 学位论文作者签名:互翌鲎 日期:莎够万年。月明日 学位论文版权使用授权书 本人完全了解国防科学技术大学有关保留、使用学位论文的规定。本人授权国 防科学技术大学可以保留并向国家有关部门或机构送交论文的复印件和电子文档,允 许论文被查阅和借阅;可以将学位论文的全部或部分内容编入有关数据库进行检索, 可以采用影印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密学位论文在解密后适用本授权书。) 学位论文题目: 学位论文作者签 作者指导教师签 旦堕型堂垫查查竺婴室竺! 茎兰垡笙苎 第一章绪论 1 1 软件扩展路由器介绍 早期的路由器( 如上世纪8 0 9 0 年代的c i s c o 路由器) 结构与计算机系统结构类 似,网络的控制和转发都由路由器中的c p u 上的软件执行,此时的路由器软件专门为 数据转发进行了优化。随着网络带宽的增加,早期的软件路由器逐渐不能适应,以a s i c 专用硬件完成数据转发的高性能路由器逐渐成为主流。 三个因素导致软件路由器研究的再次升温:( 1 ) 网络转发行为的多样性:网络转发 处理功能多样化,尤其是在网络的接入边缘,比如报文过滤( f i l t c r ) 、网络地址转换 ( n a t ) 、防火墙( f i r e w a l l ) 、测量采样( s a m p l e r ) 等,以硬件处理转发报文的路由器 很难满足功能的多样性和灵活性。( 2 ) 网络控制行为的复杂化:互联网规模的增大,网 络服务能力的增强,导致目前的网络控制协议复杂性增加,协议对处理速度和内存的需 求也随之增加,传统的嵌入式c p u 不能适应控制处理的需求变化。( 3 ) 通用计算机可 靠性和性价比提高:随着半导体技术的发展,通用计算机系统的可靠性和性能都得到了 极大提高,而价格却迅速下降,例如,现在的刀片式服务器的硬件可靠性已经可以与很 多网络设备相媲美。在主频2 g h z 的p c 机上,软件转发可获得l m p p s 的转发能力。 c i s c 0 7 6 0 9 的转发能力为3 0 m p p s ,相当于3 0 台p c 的软件转发能力,而3 0 台p c 机 的成本远低于c i s c 0 7 6 0 9 ,且可扩展的能力大大好于前者。 目前软件可扩展路由器的研究可以分为三个侧重面:转发服务功能的可扩展,如 s c o u t 【l 】、c l c k 【2 】、s m p c l i c k 【3 】、r o u t e rp l u g i n s 4 1 等;控制服务功能的可扩展,如z e b r a 【5 j 、 q u a g g a 【6 】、x 0 r p m ,卿等;路由器规模的可扩展,如v e r a f l 0 】、s u e z 【1 1 1 2 ,1 3 ,川、c l a r a f l 5 】 等。 本文将主要研究转发服务功能的可扩展路由器。 1 2 课题研究背景 目前i n t e m e t 的管理与控制需求:随着i n t e m e t 规模与服务的发展,网络控制交得越 来越复杂;路由协议处理对计算机处理能力得要求越来越高( o s p f 和b g p 计算密集型) : 新型控制协议不断涌现:光网络与数据网络进一步融合的趋势不可逆转;越来越复杂的 协议软件对可靠性与鲁棒性要求越来越高。然而,传统路由器的管理与控制存在以下的 一些问题:在路由器中嵌入控制软件系统;管理平面、控制平面与转发平面只是逻辑的; 管理控制本身没有分层次,不好控制优先;升级与功能扩展依赖设备生产厂商;路由器 设备的软件极其复杂,对可靠性带来一定影响。 第1 页 国防科学技术人学研究生院学位论文 面对传统互联网的这些问题以及互联网所具有的上述基本特征,导致了新一代互联 网概念的应运而生,“更大、更快、更及时、更安全、更方便、更可知、更可管理和更有 效益”是新一代互联网的基本特征。“更大”指的是新代互联网络将采用i p v 6 作为基 本的网络层协议,从而彻底解决目前的互联网地址空间严重缺乏的问题,为新一代互联 网络的进一步大规模发展奠定基础。“更快”指的是和目前的互联网相比,新一代互联网 络中用户的端到端性能必须得到很大的提高。“更及时”指的是新一代互联网络必须支持 组播和面向服务质量的传输控制等功能,从而可以更及时的为用户提供各种实时多媒体 信息。“更方便”指的是新一代互联网络必须能够支持更加方便快捷的接入方式,支持终 端的无线接入和移动通信等。“更安全”指的是新一代互联网络必须提供可信任的网络服 务,包括网络对象识别和网络攻击防范等等。“更可管理”指的是新一代互联网络必须提 供更方便灵活的管理手段,对网络运行的各个方面实施全面高效的管理。“更有效”指的 是新一代互联网络必须提供合理的盈利模型,提供方便的计费手段,使网络更加有效地 运行。新一代互联网应该能够处理在规模和复杂性发生量级变化时的网络信息交换问题 和网络安全问题,能够适应超大规模超高速信息网络的需要,满足更及时、更方便的服 务需求。新一代互联网体系结构理论研究中存在着若干关键问题:互联网体系结构的多 维可扩展性问题;网络动态行为及其可控性问题;脆弱复杂系统的可信性问题:稳定网 络体系结构的服务多样性问题。这些问题己成为制约互联网络发展的重要障碍。研究和 解决这些关键的科学问题,可以为新一代互联网络的发展和广泛应用奠定理论基础。为 了实现新一代互联网的上述特征,需要对新一代互联网的体系结构理论进行研究,提出 新的规模、性能、安全、服务可扩展体系结构。新一代互联网将朝着自适应、动态、智 能化的方向发展。 在计算机网络中,最重要的交换结点是交换机和路由器。其中,路由器是层次更高、 更复杂,并具有一定智能的网络交换设备,是i p 网络的核心系统,同时也是很多网络技 术的载体。路由器作为计算机网络的核心设备,在网络通信中完成路由和转发的重要任 务,此外,由于应用领域的多样性和应用环境的复杂性,在很多情况下,路由器还要完 成一些控制和管理的功能。因此路由器在互联网体系结构中占有举足轻重的地位,是影 响互联网的速度、性能、带宽等指标的重要因素。在路由器技术发展中,路由器的性能 与功能两个因素发挥着关键的作用,方面,网络带宽和规模的迅速增长推动了路由器 性能和容量的不断提升,另一方面,网络功能的多元化使得路由器更加智能化,并具有 更强的服务提供能力。在新一代互联网中,路由器技术面临着许多新的问题和挑战:路 由表不断增加,路由协议处理对计算机处理速度和容量的要求越来越商;计算机网络功 第2 页 国防科学技术人学岍究生院学位论文 能在不断扩展的同时,新型的控制协议不断涌现:对路由器的可扩展性和高可用性的需 求进一步增加;路由器的路由控制和管理功能需要更多的灵活性和开放性。 现代互联网由接入层、汇聚层和核心层构成【1 6 1 ,其主要特征是“边缘复杂,核心简 单,尽力服务”。新一代互联网仍然由这三层构成,不同的是,“尽力服务”的缺点将得 到改进,而“边缘复杂,核心简单”的设计思想将更加突出。核心网络的主要功能是高 速i p 信息传输,转发传输技术以简单、高效的i p 分组交换和标签交换为基础,为互联 网提供高速的i p 传输平台。而规模、性能、安全以及服务的可扩展性等方面的要求主要 是在汇聚层网络中进行实施。组成汇聚层的主要网络设备是边缘路由器,它虽然不要求 像核心路由器那样高的转发能力但要求其体系结构在控制平面上应该有很高的计算处 理能力,在转发平面上应该是高度可配置的。 1 3 课题研究内容及研究意义 在研究新一代网络单元体系结构模型的时候,我们首先对现有网络的分层体系结构 进行深入研究,解决分层体系结构由于层次功能固定而难以进行扩展的问题;然后,根 据多维可扩展的网络单元模型和新一代网络的路由模型与协议,同时吸收主动网络、应 用层网络的优点,借助虚拟结点的思想、并行和分布处理技术,提出并设计出可扩展的、 可管理的、高性能的、安全可靠的新一代网络单元体系结构模型旬p e n r o u t e r 模型, 在这个模型框架下,着力解决了一些关键问题;最后根据o p e n r o u t e r 模型,我们设计实 现了基于o d e n r o u t e r 模型的软件集群路由器( s c r ,s o f t w a r ec l u s t e r r o u t e r ) 系统,通 过该系统来验证模型的可行性、可用性和可扩展性,并为新代网络体系结构相关的研 究提供开发环境和试验平台。 本课题的研究工作得到国家8 6 3 计划重大课题“核心路由器”、8 6 3 计划重点课题“新 一代互联网综合实验环境”和国家9 7 3 “新一代互联网体系结构理论研究”一“新一代 互联网路由与交换理论”子课题的资助和支持。课题的理论和实践意义如下: 1 对新一代互联网体系结构的理论研究; 2 基于o p e n r 0 u t e r 模型的s c r 系统为更广泛的新一代网络技术的研究提供了开 发环境和试验平台; 3 对基于o p e i 汛o u t e r 模型的s c r 为进一步的集群路由器( c l u s t e r r o u t e r ) 或路由 器集群( r o u t e rc l u s t e r ) 系统的研究打下了基础。 4 基于o p e i l r o u t e r 模型的s c r 是一种很好的网络边缘路由器的解决方案,因为 对组成网络汇聚层的边缘路由器不仅要能够正常快速地转发i p 报文,还要能够 有效地支持由增值业务带来的各种的报文处理功能,并在规模、性能、安全、 国防科学技术大学研究生院学位论文 服务等方面都需要有较好的可扩展性。在其体系结构中,控制平面应该有很高 的计算处理能力,转发平面应该是高度可配置的。基于o p e n r o u t e r 模型的s c r 显然完全适应以上的要求; 本文将致力于s c r 转发平面的结点系统研究。并针对o p e n r o u t c r 模型提出自己的 结点系统。 1 4 论文组织 本文是对硕士课题研究结果的总结,全文共分为六部分: 第一部分,绪论。介绍了软件路由器的概念与意义,课题背景、任务及研究目标。 第二部分,介绍相关的研究工作。介绍了o p e i 浓o u t e r 体系结构,软件集群路由器, 以及转发服务功能的可扩展路由器p l u n g i i l s ,c l i c k 和s c o u t 。最后对这三种路由器通过 几方面进行对比分析。 第三部分,根据上述研究工作,配合o p e n r o u t e r 体系结构,提出自己的软件转发结 点平台。 第四部分,设计及实现这个结点平台。包括配置语言的设计和逻辑功能模块的设计。 第五部分,为了项目的延续性开发,给出一个简单的试验系统。 第六部分,总结。对研究课题做了简要的总结,并提出了下一步研究方向。 第4 页 国防科学技术大学研究生院学位论文 第二章相关研究工作 2 1 软件集群路由器简介 随着网络需求的增长,路由器的性能也不断得到升级提高,路由器的体系结构经历 了几次大的变化。路由器体系结构的变迁不仅仅是处理速度的提高和容量的增加,更根 本的是,每一次大的改进中路由器的体系结构都提出了新的方案,使路由器的整体性 能得到了大幅度的提升。路由器由使用通用功能器件过渡到使用专用器件,由系统的串 行操作过渡到并行操作。 路由器的体系结构经历了4 次大的变迁1 2 。】:单机集中式总线结构、单机分布式共享 总线结构、单机分布式c r o s s b a r 结构和多机互连的集群式结构四种类型。在早期的网络 互连中,没有专用的路由器设备,通常使用运行路由软件的通用计算机来完成路由功能, 系统中所有的通信线卡都通过一条共享总线和c p u 以及集中式内存相连,这种结构称为 单机集中式总线结构。由于总线在系统中共享,所以当线卡数目增多时或数据流量很大 时,访问冲突严重,效率较低。单机分布式总线结构主要是为了提高线卡的处理能力, 使每个线卡都拥有自己的处理器、内存和若干网卡,形成独立的子系统。此结构降低了 总线的争用程度,但共享总线仍然成为系统的瓶颈。单机分布式c r o s s b a r 结构使用交叉 开关来代替共享总线,解决了总线瓶颈问题,提高了路由器分布式结构的并发特征,从 而使得整体的交换容量得到了大幅度的提升。 如果路由器可以根据需求进行交换容量的自由扩展,则可以解决路由器速度和需求 之间的尖锐矛盾。可扩展的路由器结构应运而生。在这种路由器体系结构中,多个机柜 可以通过内部连接整合成一个新的大型路由器,或者称为路由器集群。每个机柜本身可 以独立的作为路由器,也可以和其他机柜进行组合。集群路由器由多个连接在起的常 规路由器组成,对外部呈现为一个单映像路由器,也就是说,整个路由器集群的管理控 制在外界看来,如同一台路由器一样,这种集群结构,在理论上可以进行无限制的扩展。 对集群式路由器的实现可以采用两种途径。第一是采用高速互连卡或高速互连网络 将多台常规路由器连接起来,在集群路由协议的支持下,形成一个单映像路由器。第二 是用使用专用网( s p e c i a l m e a n e t w o r k ,s a n ) 或者局域网( l o c a l a r e a n c t w o r k ,l a n ) 将多台常规计算机连接成计算机集群系统,每台计算机运行可重构的i p 转发软件,在集 群路由协议的支持下,形成一个单映像路由器。前者的应用对象是p o p 领域,后者可以 应用于边缘路由器,或者可以作为网络体系结构以及网络硬件的研究、开发、实验的平 台,我们将这样的集群路由器称为软件集群路由器( s o f n v a r e - b a s e d c l u s t e r r o u t e r ,s c r ) 。 第5 页 国防科学技术大学研究生院学位论文 组成互联网汇聚层的主要网络设备是边缘路由器。根据互联网汇聚层的功能分析可知, 边缘路由器基本要求是:实现规模、性能、安全、服务的可扩展。集群路由器中每个结 点既执行转发平面功能,也执行控制平面功能,其在转发和控制平面上均是分布的。它 具有动态可扩展性、信息共享、集中控制等优点,所以非常适合于作为边缘路由器。 对软件集群路由器的研究利用常规的计算机、常规的专用网或局域网、常规的操作系 统和软件平台开发出分布、并行、可扩展、低成本的路由器,它是“基于软件可扩展路由 器”技术的发展。物理上,一个s c r 由多个结点通过高速互连网络连接组成( 图2 3 ) 。 这些结点分为两大类:控制结点( c n :c o n t r o i i e r n o d e ) 和转发结点( f n :f o n 粗r d i n g n o d e ) 。 f n 为至少两个e m e m e t 接口的常规计算机或刀片服务器,c n 为至少一个e t h e m e t 接口的 常规计算机或刀片服务器,它们都运行常规操作系统( 如i j n l l 】( ) 。多个f n 和多个c n 通 过s a n 或l a n 连成一个集群路由器。它们之问通过有效的转发模型和控制模型形成一个 “单映像”的集群路由器。所谓“单映像”指:从网络工程的角度看,这样的集群路由器 的组网特性和常规路由器完全一样。 图2 1s c r r m 物理结构 采用软件集群路由器有如下几方面的优势: 1 性能扩展性好。通过增加集群的结点,用户很容易扩展路由器的转发和控制平 面的性能。 2 安全服务可扩展性好。由于路由器的转发功能也是用软件来实现的,所以很容 易在i p 信息处理过程中插入、删除、修改功能模块( 包括安全模块和服务模块) 。 3 开发成本低,开放性好。软件集群路由器是在常规计算机和操作系统上进行的, 所以可以降低开发成本,缩短开发周期。同时由于掌握通用操作系统和掌握软 件开发工具的难度较小,各种网络软件可以很容易地集成在一起,这本身也是 软件集群路由器可扩展性的表现。 第6 页 国防科学技术大学研究生院学位论文 4 并发度高,加速比大。在科学计算和数据处理应用中,计算机集群是否能够获 得较高的加速比,取决于科学计算和数据处理的并发潜力。在转发平面,不同 接入网或应用的i p 流量流基本上是相互独立的,相关性很小,并发潜力高,在 集群系统中可获得很高的加速比。在控制平面,协议和信令处理并发性也可在 不同并发粒度和层次上展开。 近几年来,集群路由器的研究在多个层面上展开。 在t 级路由器的研究方面,人们试图用高速互连网络将单机架路由器连接起来构造 性能可扩充的核心路由器,其中,最典型的代表是a v i c i 公司的t s r 路由器【2 ”。为了 降低p o p 组网的成本和管理复杂度以及提高p o p 的可扩充能力,一些网络生产厂商抛 弃单纯追求背板转发速率的做法而转向面向p o p 应用的可扩充路由器的研制,其中,最 典型的代表有p l 耐s 公司的m p r 路由器1 2 2 1 和c i s c o 公司的c r s 路由器【2 引。 在软件集群路由器的研究方面,人们试图用s a n 和l a n 将常规计算机连接起来构 造可扩展路由器。按照它们的工作方法,该类路由器分为两大类:基于主动网络技术的 软件集群路由器和基于软件模块化技术的软件集群路由器。前者的典型代表有普林斯顿 大学的v e r a 和n e c ( u s a ) c & c 实验室的c l a r a 。后者的典型代表有纽约州立大学 的s u e z 。软件集群路由器的前期研究实际是软件可扩展路由器( 单机环境) ,它们可成 为集群路由器结点操作系统。典型的软件可扩展路由器代表有亚利桑那大学和普林斯顿 大学的s c o u t ,m i t 的c l i c k 和华盛顿大学的p l u g i n s 。软件可扩展路由器的研究不但可 在计算机集群上展开,还可在网络处理机上展开。 目前,并行路由f 协议) 模型的研究还不多m 。2 酆,但关于b g p 协议及其实现技术的研 究比较多,其参考资料可通过互连网找到。 2 2p i u g i n s 系统简介 r o u t e rp 1 u g m s ( e t hz u r i c h ,w a s l l i n g t o nu n i v e r s i t ya n da s c o mu n d e r 廿1 ec r o s s b o w p r o j e c t ) ,软件路由器p l u g i n s 的结构设计允许对一个i p 路由器做有限的扩展。在n e t b s d 操作系统中执行的话,p l u g i n s 允许用户自行开发扩展,这些扩展可以被放置在路由器的 i p 扩展点上。这些扩展点被称作“g a t e ”。“g a t e ”可以适合多种应用程序,比如:路由, 报文调度,以及安全性处理。用户在运行时调用命令行工具来加载p l u g i n s 。p l u g i n s 可能 和各别的流相关联。因为并不是每个插件对每个报文都适合,c r o s s b o w ( p 1 u g i l l s 又被称 作c r o s s b o w ) 允许用户对每个插件指定固定的键。键可以指定i p 地址对,协议版本号, 端口,以及输入接口:键的任一个部分可以是一个通配符,这就意味着任意值都可以匹 配。在每个“g a t e ”,c r o s s b o w 试图将报文和那个“g a t e ”注册的键进行匹配。如果 国防科学技术大学研究生院学位论文 5 c p u 调度 c p u 中的每个任务表示一个行为逻辑功能模块执行数据报时对c p u 的占用。系统 为c p u 调度保持一个任务队列,任务的请求和执行由队列选取策略决定。c l i c k 系统的 c p u 调度采用单线程,这要求在某任务执行结束前其他任务不能开始。 6 基于流的上下文关系 基于流的上下文关系描述各逻辑功能模块之间的前递或后继属性,根据这种关系可 以方便的按照图结构周游方式获得数据包在逻辑功能模块之间的传递关系,并在实际数 据包到达时迅速的计算出该数据包的走向。c l i c k 采用这种方法对系统结构进行查错,防 止在配置过程中的逻辑功能模块顺序冲突。 7 逻辑功能模块实现 c l i c k 的系统设计采用的实现语言为c + + ,该语言的选择方便用户添加新的逻辑功 能模块类。c l i c k 的逻辑功能模块类提供若干行为,其中参与路由操作的行为动作只包括 下推、上拉和任务执行,其他行为方法作为类中的内部操作函数用来实现初始化逻辑功 能模块、描述修改逻辑功能模块状态等动作。 8 设备轮循方式 c l i c k 对设备的处理采用轮循方式而不采用中断方式。考虑路由器在网络通讯中的 位置,通过路由器的数据量大,采用中断方式将大量的产生中断去调用系统功能而大大 降低了性能。c l i c k 基于轮循处理设备的方法,需要绕开设备的原始驱动而产生c l i c k 自 身处理设备的驱动程序从而有效的实现轮循。 2 _ 3 2c i i c k 系统相关技术网络地址转换 网络地址转换( n e t 、v o r ka d d r c s st r a i l s l a t i o n ,简称n a t ) 是路由器的另一个主要功 能。该功能支持多主机公用同一互联网i p 地址,也可根据i p 包内容将i p 地址转换为正 确的硬件地址。网络地址转换还可以将内部主机隐蔽起来,使外界无法直接访问内部的 网络设备,达到保护内部主机的作用。 图2 6 显示了网络地址转换的基本过程。 c l i c k 路由器同样提供网络地址转换功能。因为c i i c k 路由器在性能规格上只能承担 边界路由的服务,网络地址转换功能在c l i c k 中就占据了更重要的地位,c l i c k 也对网络 地址转换逻辑功能模块做了仔细的设计。 一般的路由器提供三种n a t 实现控制:( 1 ) 选择需要进行地址转换的数据报( 2 ) 分析 地址转换类型( 3 ) 分配地址转换时占用的网络地址和端口号。除此之外,c l i c k 路由器还 提 x 国防科学技术火学研究生院学位论文 ,一= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = 墨= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = s = 1 0 1 d = 1 6 s 吉1 6 2 , 内i祁主:机 巡 l o 】o 5 l 1 5 2s = o 5d = 】 , n a t l o 1 0 1 0 1 l 8 0 s = d = 1 1 7 一 外郛主:机 巡 l o 2乡 图2 4 网络地址转换简单示意图 内部主机地址为l o 1 0 1 0 5 2 ,公用i p 为1 6 2 1 0 5 8 0 2 ,外部主机i p 为1 6 1 0 5 0 5 箭头中s 表示源地址,d 表示目的地址 2 3 3c 1 i c k 系统扩展技术多c p u 设计 硬件路由器很早就从单处理器结构发展到多处理器结构,形成了成熟的多处理器控 制技术。而软件路由器的多处理器设计一直没有成功的实现,这种现象方面与软件路 由器并不面向高端快速路由转发有关,一方面也因为软件控制多处理器处理相关并发事 件难度较高。 c l i c k 开发小组在多处理器设计研究上做出显著的研究,形成了s m pc l i c k 系统结 构。s m pc l i c k 系统是在原来的c l i c k 系统基础上发展起来的并行c p u 软件路由系统, 对单处理器c l i c k 系统向下兼容,即单处理器c l i c k 路由器的配置对于s m pc l i c k 同样适 用。 s m p c i i c k 对多处理器的并行设计主要解决了同步和冲突问题。网络中取到的每个 数据报使用尽量少的处理器进行路由和转发操作以避免各个处理器c a c h e 数据报内容的 冲突,每个处理器也尽量的能够同步处理不同的数据报。利用流水线技术,s m pc i i c k 将通路上的诸多逻辑功能模块拆分到多个通路中运行,当通路中只有一个逻辑功能模块 第1 2 页 里堕型鲎丝查盔堂婴壅生堕兰堡堡塞 且这个逻辑功能模块占据比较重要的位置时,系统将该逻辑功能模块复制到多个通路中 运行以提高并行效率。 s m pc l i c k 体系结构建立在单处理器c l i c k 体系结构之上,并对c p u 调度、设备操 作、缓冲区管理和队列进行了调整,增加了同步处理、批处理和预处理等功能。 单处理器c l i c k 对c p u 调度采用的单线程、单任务队列结构在多处理器结构中实现 低效。s m pc l i c k 为每个c p u 都运行独立的线程,每个线程保留各自独立的任务队列以 避免同步操作中的冲突。因为多处理器的动态均衡策略会产生较大的c a c h e 失效损失, s m pc l i c k 采用静态均衡调度策略,即在路由器的配置结构中指定负载均衡策略。 同步在并行设计中是重要的问题。s m pc l i c k 系统根据逻辑功能模块中易变数据结 构的性质对所有逻辑功能模块分类,对于在并行中存在易变私有数据结构的逻辑功能模 块,系统为每个逻辑功能模块加入了同步处理单元,保护每个逻辑功能模块最多只能同 时被一个处理器执行,也保护易变数据结构不被错误修改。 设备管理、缓冲区管理和队列的实现策略没有进行大的修改,但是根据并行的要求, 这三种管理在系统中的重要性提高,如队列的广泛应用在系统中实现流水作业的缓冲机 制。 2 4s c o u t 系统简介 s c o u t 系统由a r i z o n a 大学和p 血c e t o n 大学计算机系合作研究开发。s c o u t 是一个 面向高性能高扩展性网络应用的操作系统,目前在该操作系统上开发了网络电视、网络 电影、h 卸防火墙、w 曲服务器等网络应用,值得一提的是,在此之上还开发出了提供 0 0 s 支持的i p 软件路由应用。s c o u t 是一种模块化的,面向通信( c o m m u l l i c a t i o n o r i e n t c d ) 的操作系统,它的主要抽象概念“p a t h 是一种从接收功能部件开始至发送功能部件结束 的数据通过路径;p a l h s 由多个“s t a g e ”组成,s t a g e 是模块的实例。 s c o u t 的开发基于对网络信息通讯问题的处理,即处理网络i 0 事件,主机将从输 入端口得到的数据处理后由输出端口输出。s c o u t 系统将功能成分划分层次,相同层次 中的成分相互独立,相邻层次中的成分可以通过通道建立连接关系,该思路类似于各种 分层模型,不同之处为一般分层模型的一个任务过程建立在两台主机之间,而s c o u t 中 的一个任务过程建立在单主机系统中的两个网络设备端口之间。 根据分层策略,s c o u t 中一个完整的任务即为连接各层次功能成分的条通道。通 道就是s c o u t 系统的核心组成部分,通道在系统中的地位类似于c l i c k 中的逻辑功能模块, 不同在于通道是一个任务的完整过程描述,系统对通道进行资源的分配和调度,而c l i c k 中的逻辑功能模块是任务执行中的一个独立的模块,系统对逻辑功能模块中处理的数据 第1 3 页 国防科学技术大学研究生院学位论文 表2 1 试验环境及配黄说明 路由主讥一 c p uh 埘p 7 0 研m 电 i 源燕孵咱自:蛀i 机 n e l p 7 3 孙低骄哑曲e l p p r o2 0 0 m 主板h 劬d i 朋0 固( +l h 纠1 4 4 0 q ( + 网挂骛螺d 熙裂l 艘煦1 9 婵蚴一;啷删印吨1 q 嘤哆魄 网卡全双工1 0 0 m 姚以太网卡i 全双工1 0 0 删) 弧以太网卡 操作系统i j r 城2 2 _ 1 4 内核 网卡! 吲囊方式:点到点燃。 此环境下的性能测试数据: i l i | l u x 路 ;l i i i u x 路 l cu c k ( 。c k k ( j s m pc | s m pc l s m pc j s m pc l s c o u t h 1 2 2 1 4 内核 ! 艇4 燃 表2 2 性能测试数据 由器( 中断方式) 由器( 轮循方式) 优化前) 优化后) 1 i c k ( 1c p u 优化前) k ( 2c p u 优化前) n c k ( 3c p u 优化前) c k ( 4c p u 优化前) 最高数据撮转发速度 :5 0 mb n s :l5 0 mb n s l8 0 mb i t s 2 2 8 mb n s ,14 3 m b h ,s 2 4 7 mb “,s i 23 2 mb n s j 2 5 3 mb i t s 1 16 0 mb j t s 甚4 5 0 g4 0 0 艟: t一,一一,_ff_i_二_一一一,_,一一一,一,_ r t ; r t :l i n e a r i p l o o k u p ( 18 2 6 4 2 4 3 20 , 18 2 6 4 2 5 5 3 2o 18 2 6 4 0 3 20 1 8 2 6 4 2 41 o ,01 8 2 6 4 1 1 ) ; r t 【0 】_ t o h o s t ; n 【1 - t o d e v i c e ( e _ 【1 1 0 ) ; 这个例子传输广播报文并将发送到本地主机( 1 8 2 6 4 2 4 ) 的报文发给它自己。具体 就是将发往1 8 2 6 4 网段的报文发往本地接口,以及通过网关1 8 2 6 4 1 发送其他所有的 报文。 3 s c h e d u l e i n f 0 逻辑功能模块( s c h e d u l e i n f o ( e l e m e n tp a r a m ) ) : 第3 7 页 国防科学技术人学研究生院学位论文 这个逻辑功能模块为指定的逻辑功能模块提供调度参数。每一个配置参数具有这样 的格式e l e m e n tp a r a m ,表示名为e l e m e n t 的逻辑功能模块具有调度参数 p a r a m 。调度参数是真实的数值,这个数值是根据与其它逻辑功能模块相比,这个逻辑 功能模块多少时间应该被调度一次的原则来设置的。比如说,如果逻辑功能模块a 和b 分别具有调度参数2 和o 5 ,则a 将以2 0 5 = 4 倍于b 的频率进行调度。调度参数的默 认值是1 。 在一个复合逻辑功能模块中的s c h e d u l e i n f o 逻辑功能模块可以为这个复合逻辑功能 模块的分量指定调度参数。外部的s c h e d u l e i i 由逻辑功能模块可以为整个复合逻辑功能 模块指定调度参数。这个调度参数是一个影响复合逻辑功能模块分量的真实比例因子。 举例来说,有如下配置: e l e m e n t c l a s sc o m p o u n d i :i n 矗n i t e s o u r c e o u t p u t ; s c h e “l e i n f 0 ( io 5 ) ; ) c :c o m p o l h l d - d i s c a r d ; s c h e d m e i n f o ( c4 ) ; 在复合逻辑功能模块扩展之后,上面的配置就和下面的配置相等价了: c i :i n f i m t e s o u r c e 一 d i s c a r d 3 :d i s c a r d ; c s c h e d u l e i n f 0 2 :s c h e d u l e i n f o ( io 5 ) ; s c h e d u l e i n f o 4 :s c h e d u l e i n f 0 ( c4 ) ; 第一个s c h e d u l e i n f 0 逻辑功能模块的名字从c 开始,所以它被用来为名为 c w h a t e v e r 的逻辑功能模块查找调度参数。然而第二个s c h e d u l e m f o 逻辑功能模块在它 的名字里没有任何斜杠,所以它被用来查找所有的调度参数,包括复合逻辑功能模块的 比例因子。i 瓶n 主t e s o u r c e 逻辑功能模块的最后尺度参数将是2 :比例因子4 得到局部调度 参数0 5 。 一个外部的s c h e d u l e i n f 0 逻辑功能模块可以覆盖局部调度参数。举例来说,如果上 面的第二个s c h e d u l e i n f o 逻辑功能模块是: s c h e d u l e i n f b 4 :s c h e d u l e i n f o ( c4 ,c i1 0 5 ) 则i n f i n i t e s o u r c e 的最后尺度参数将是1 0 5 。 4 3g r e 相关模块的设计与实现 在第三章中我们提到了需要开发与g r e 相关的l f b 。在这里需要指出的一点是考 国防科学技术大学研究生院学位论文 虑到检测的方便和整个项目及试验开发的延续性。因此我们首先在c l i c k 系统中实现了 相关的逻辑功能模块。如上节提到的,r o s e 与c i i c k 语言有很好的兼容性,因此将这些 逻辑功能模块移植到m s r 中是一件很容易的事情。 c l i c k 的逻辑功能模块是一个个的报文处理器。因此,在路由配置里的每一个逻辑功 能模块可以被抽象成一个接收大量报文流并且返回大量报文流的函数。特别的,每一个 输入端口接收一个报文流并且每一个输出端口发出一个报文流。报文和数据流用下面的 方式来表示: t y p e p a c k e t 2 i n t 】 t y p es t r e 锄2 p a c k e t j 一个报文被看作是一系列字节( 有限的) ,当作整数来编码,而数据流是一组组报文 ( 可能是无限的) 。典型的,一个c l i c k 逻辑功能模块具有如下的类型: e l e m e m :( c o 胡- 【s t r e 锄】 【s t r e 帅】 也就是说它包含了一些配置参数( 如果有的话) ,一系列输入数据流( 如果逻辑功能 模块是一个报文源,这一项可以为空) ,并且返回一系列输出数据流( 如果逻辑功能模块 是一个报文接收器,这一项可以为空) 。配置参数包含了附加信息来定义特指的逻辑功能 模块行为。通常,他们下列一组数据类型中的一个:i p 地址,或者整数,或者i p 地址 列表。我们按照如下的格式定义这个数据类型: d a t ac o i l f = i i m 一一个整数( 已有的,比如在逻辑功能模块“s t r i p ”中) le t hi n t 一网络设备( 比如e m 0 ,e m l ) p a t 【i n t 】一模式( 已有的,比如在逻辑功能模块“c l a s s 墒e r ”中) f i p【i n t 】- - 一个i p 地址 封装后一个g r e 数据包的格式如下: d e l i v e r yh e a d e r g r eh e a d e r p a y l o a dp a c k e t 图4 2g r e 数据包 第3 9 页 国防科学技术大学研究生院学位论文 时,1 p v 4 净载报文头部的目的地址必须用来转发该数据报文,同时净载报文的t t l 必须 递减。在转发这样的数据报文时应该注意,因为如果净载报文的目的地址正好是该g r e 报文的拆封者时( 即,隧道的另一端) ,可能出现环路。这种情形下,数据报文必须丢弃。 考虑到g r e 与i p 封装的类似性,我们将g r e 数据包的头部格式和i p 报文的头部 格式进行对比分析,并利用c i i c k 中提供的c h e c k i p h e a d e r ,i p e n c a p ,以及s t r i p 【p h e a d e r 逻辑功能模块的源文件,使用c + + 语言开发出c h e c k g 褂! h e a d e r ,g 褂强n c a

温馨提示

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

评论

0/150

提交评论