软件测试性定义研究

2024-07-21

软件测试性定义研究(精选9篇)

软件测试性定义研究 篇1

0 引言

随着软件规模和复杂度的增大, 软件测试面临的问题也日益突出, 如要求测试的类型和数量越来越多、执行测试的难度越来越大、对测试充分性的要求越来越高等。这些问题不但会增加测试费用、影响测试效果, 还会影响用户对测试结果的信任程度。

软件测试性研究能在一定程度上解决上述问题。测试性设计能在不增加或少增加软件复杂性的基础上将易于测试的原则融合到软件设计或编码中去, 从而提高软件测试性。软件测试性越高, 软件越易进行测试, 软件中的缺陷越易暴露, 只需进行较少的测试就能发现更多的问题。测试性分析能在软件测试之前得到软件测试性的大小, 测试人员可据此分配测试资源以进行更充分的软件测试, 由此提高测试结果的可信性[1]。

良好的软件测试性定义是测试性研究的基础, 是顺利进行软件测试性分析和设计的保证, 因此有必要对软件测试性定义进行深入研究。

1 软件测试性定义现状

IEEE在1990年出版的软件工程技术术语中提出软件测试性是:1) 为一个系统或构件建立测试标准并通过执行测试来确定该标准被满足的难易程度;2) 对每一个声明的需求建立一个测试标准并通过执行测试来确定该标准被满足的难易程度[2]。该定义比较抽象和难以理解, 文献[3]在对通信软件的测试性定义时进行了简化, 认为软件测试性是软件为易于应用测试方法、发现存在的软件错误和更快地纠正错误而提供便利的一种属性。文献[3]将错误纠正也纳入了软件测试性范畴, 软件测试性是与软件测试相关的软件特性, 而错误纠正并不属于软件测试活动, 在软件测试性中进行讨论不太合适。

文献[4]认为软件测试性是使用传统的程序测试方法论证程序正确性的难易程度;文献[5]对软件测试性的定义是测试软件设计的难易程度;文献[6]将面向对象系统的软件测试性定义为暴露软件缺陷的相对难度和费用;文献[7]将软件测试性定义为测试软件所需的费用。上述定义都是将测试性与测试难易程度结合起来进行考虑。软件测试性与测试难易程度的确存在密切关系:测试性能够预计测试的难易程度, 测试难易程度同样能反映测试性好坏。但两者还是存在区别:软件测试性是软件本身的属性, 理论上只要软件不发生变化, 软件测试性也不会发生变化;而测试难易程度不仅与软件相关还与测试的过程、方法、工具等外部条件相关, 使用不同的测试方法、运用不同的测试工具都会影响测试难易程度。因此使用测试难易程度定义软件测试性并不恰当。

文献[8]认为软件测试性是在某一特定的输入分布下, 软件中包含的一个缺陷在下一次测试执行过程中失效的概率;文献[9]认为软件测试性不但与软件的输入分布和缺陷有关还与测试预言存在很大的关系, 因此将软件测试性定义为在程序有错并且给定了明确预言的条件下, 从一个特定的输入分布中抽取一个输入进行测试时被拒绝的概率。如果说以往的研究者是从测试过程的角度研究软件测试性对测试费用、测试进度的影响, 文献[8, 9]定义的软件测试性就是从测试结果的角度讨论软件暴露自身缺陷的能力。然而这些定义都是基于软件的故障/失效模型, 它们只反映了软件实现 (代码) 的测试性而不能表示软件整体的测试性, 因为它们未能考虑软件的其他方面如需求、设计等。

还有部分研究者通过将软件测试性分解为其他软件特性的方式定义软件测试性, 其中比较典型的文献[10]就将构件测试性定义为可理解性、可观测性、可控性、可跟踪性和测试支持能力的综合, 这种定义虽然有助于人们全面地了解软件测试性, 但也只是列出了软件测试性内容而没有揭示软件测试性本质。

总结上述软件测试性定义发现:当前软件测试性定义众多但还存在不足, 没有形成统一的认识;各定义在表达形式、表述内容、适用范围上还存在差异, 不利于后续的软件测试性分析设计。因此目前还需要对软件测试性定义进行更深入地研究以帮助人们更好地理解软件测试性。

2 软件测试性定义

上述软件测试性定义都是从软件测试角度提出, 考虑了软件测试的不同方面。文献[2, 4]把软件测试性与测试过程联系起来, 将软件测试性定义为与测试过程相关的软件属性, 无论定义为便利的程度还是测试的难度与费用都是为了描述软件测试性对测试过程的影响。软件在开发过程中不可避免地要引入缺陷, 软件测试的目标就是要将这些内在缺陷暴露为软件失效。从软件缺陷到软件失效需要经历一系列过程, 这个过程不仅与软件的自身结构相关还与软件的一些外在条件如施加的输入、确定的预言有关, 文献[8, 9]将软件的内外条件结合起来定义软件测试性、揭示了软件测试性对测试结果的影响。

考虑软件测试性对软件测试的不同影响, 综合上述各软件测试性定义, 本文认为软件测试性是软件易于测试和暴露缺陷的能力, 该定义可从以下几个方面进行理解:

1) 软件综合后的软件测试性定义不是针对构件或软件设计提出, 而是针对宏观意义上的软件提出。此处的软件可以是软件的需求、设计, 也可以是软件的实现;可以是软件的程序, 也可以是软件的文档;语句、函数、模块、构件, 软件各个设计层次的产品都在此范围之内;系统软件、应用软件、嵌入式软件, 各种类型的软件也都包含其中。

2) 能力软件测试性是软件的一种设计特性, 软件一旦开发出来就具备一定的测试性, 理论上与软件的外部条件无关。为了体现软件测试性的这一特点, 本文使用“软件测试性是软件…的能力”的方式进行表述, 指出软件测试性是软件的一种能力、是软件的一个内部特性。

3) 易于测试参考文献[2-4, 6]的定义, 综合后的软件测试性定义提出软件测试性包含软件易于测试的能力。该能力主要由软件的需求和设计决定, 能够影响软件测试过程。软件易于测试的能力越高, 测试越易进行, 测试所需的时间或费用越低;反之, 软件易于测试的能力越低, 测试越难进行, 测试所需的时间或费用越高。

4) 易于暴露缺陷文献[8, 9]的软件测试性定义结合了软件的内外条件, 本文去除其中的外在条件、只考虑软件将内在缺陷表现为外在失效的能力, 并将之重新描述为软件易于暴露缺陷的能力。该能力主要由软件的实现决定, 受软件的编程语言、内部结构影响, 能够影响软件测试结果。

综合后的软件测试性定义考虑的软件范围更广;指出了软件测试性是软件的一个内在特性;反映了软件对测试过程和测试结果的影响;定义的形式简单、易于理解。与其他软件测试性定义相比, 该定义具有明显的优势。

3 测试性特性分析

从文献[10]的测试性定义可以看到软件测试性不是单一的软件特性, 而是众多与软件测试相关的软件特性集合, 本文将这些软件特性统称为测试性特性。由于每个测试性特性代表了软件测试性的一个方面, 了解测试性特性有助于更全面地理解软件测试性。总结当前的研究工作, 可以得到如下测试性特性:

可理解性是为更好地理解软件, 软件提供信息的表达程度。测试准备过程中需要根据软件信息生成测试用例, 包括确定测试输入和预期输出、确定软件的执行条件等。为了完成这些工作, 就要求软件文档必须详细、准确、无二义、易于理解, 软件代码的结构必须清晰、模块化程度高、可读性好。

可控性是软件易于施加外部输入和控制内部状态的能力。测试执行的一项主要工作就是向被测软件施加输入, 输入越多、输入间的关系越复杂、输入接口的通用性越差就越难施加输入, 可控性也就越差。另一方面, 为了验证软件的某些特殊功能或测试软件在某些特殊情况下的反应, 可能需要软件处于一些非正常状态, 此时就需要能够控制软件内部状态。

可观测性是软件易于观测外部输出、监控内部状态的能力。测试执行过程中的另一项主要工作就是观测和收集测试结果, 软件的输出是否明显、是否易于观察、输出数据是否易于收集都将影响软件的测试效果。对于外部输出不明显、不易于观测或输出数据过少等情况, 就要求软件能方便地监控内部状态、辅助判断测试结果。

测试支持能力是软件对测试工具的支持能力。人工测试的效率低下, 使用测试自动化工具能极大地缩短测试时间、减少测试费用;对于某些输入输出过于复杂或者时序要求比较高的软件, 可能根本就无法进行人工测试, 只能使用测试工具。因此当条件具备时, 软件能否方便地支持测试工具将极大地影响测试过程。

简单性是软件在满足需求的基础上尽量简单、无冗余的特性。从软件本身角度:软件越简单、功能越少, 软件的规模就越小、复杂度越低, 软件出错的可能性也越低。从测试的角度:软件的功能越少, 需要测试的数量就越少, 测试费用也越低;软件操作越简单, 越容易施加测试输入, 测试的难度就越低。

可分解性是软件能被分解为独立的模块进行单独测试的能力。将软件分解为几个独立部分, 测试时只需考虑与该部分有关的输入和输出, 常常可以简化测试, 因此文献[11]指出如果能单独对模块进行测试将极大地提高系统的测试性。

适用性是软件适应各种使用环境的能力。主要从两方面进行考虑:一方面是软件运行时的环境要求, 要求越低, 表明软件对外部环境的依赖越低、越易搭建测试环境;另一方面为软件是否足够灵活、能否根据环境的变化自动改变自身配置, 如根据显示器分辨率自动调节窗口大小等。

可跟踪性是软件能跟踪自身功能操作、属性和行为的能力。程序调试过程中可能需要跟踪代码的执行情况, 观察此过程中使用的不同变量的取值, 从而判断程序是否正确;测试过程也是如此, 有时也需要跟踪功能在执行过程中经历的操作、属性或行为, 根据它们的情况判断软件是否正确。

敏感性是软件易于暴露自身缺陷的能力。开发过程中的人为错误可能会在程序中留下缺陷, 这些缺陷不会主动暴露, 只有当隐含缺陷的代码被执行、造成某些状态错误、软件将这些错误的状态传递到外部后才能发现。敏感性就是对软件将缺陷转化为错误状态、再将错误状态传递到软件外部的能力的描述, 敏感性高的软件在测试过程中更易发现软件缺陷。

软件测试性与测试性特性的关系如图1所示:软件测试性可划分为软件易于测试能力和软件易于暴露缺陷能力两部分, 其中软件易于测试能力又可细分为可理解性、可控性、可观测性、测试支持能力、简单性、可分解性、适用性和可跟踪性, 软件易于暴露缺陷能力则能用敏感性表示。

简单的分析可以发现, 上述测试性特性中除了可观测性与可跟踪性, 其它测试性特性分别代表了软件测试性的一个不同方面、相互独立。可跟踪性可看作可观测性的一种扩展, 要求能根据功能的执行观察相应的操作、属性或行为的输出。如果将可观测性限定为对固定的外部输出或内部状态的观测, 可跟踪性就是对变化的输出的观察, 两者将代表软件测试性两个互不交叉的领域。

至此, 软件测试性可用测试性特性集合表示, 对软件测试性的分析也可分解为对各测试性特性的分析。软件测试性的集合表示如下:

4 测试性与其它质量因素

软件质量模型中, 软件测试性不是作为一个独立的因素就是包含在其它质量因素中, 了解软件测试性与其它质量因素的关系有助于更深入地理解软件测试性。

Perry总结了Boehm模型中各质量因素的相互关系并将它们分为三类:反相关、中立和正相关, 其中测试性与正确性、可靠性、可用性、可维护性、灵活性、可移植性和重用性正相关, 与效率反相关[12];同样是分析Boehm模型中的质量因素, Glass使用关系矩阵表示因素间的相互关系, 指出测试性与效率、人素工程、易理解性和可修改性之间存在相互关系[13];Shumskas主要考虑系统在开发过程中与性能、设计和适用性相关的质量因素如可靠性、可维护性、测试性等, 指出效率对测试性产生消极影响, 可维护性和重用性对测试性产生积极影响, 反过来测试性对效率、可靠性产生消极影响, 对可用性、正确性和可维护性产生积极影响[14]。

Perry给出的质量因素相互关系是从经验或直觉出发, 不够准确;Glass的分析过程相对客观而准确, 但只是指出因素间的关系而没有给出关系类型;Shumskas从测试性对其它质量因素的影响和其它质量因素对测试性的影响两方面分析软件测试性与其它质量因素的关系, 比其它方法更为全面和准确。无论上述哪种分析, 其分析对象都是Boehm等人在1976年确定的软件质量因素, 时至今日, 随着软件质量概念的发展软件质量因素也都发生了改变, 因此有必要对软件测试性与其它质量因素的关系进行重新分析。

当前比较通用的ISO9126质量模型[15]将软件质量属性划分为六大特性 (功能性、可靠性、易用性、效率、维护性和可移植性) , 每个特性又进一步细分为若干子特性, 测试性是维护性的一个子特性。本文选择了维护性中与测试性同级的质量因素 (易分析性、易改变性、稳定性) 以及上述六大特性, 应用Shumskas方法分析了它们与软件测试性的关系, 最后得到的结果如表1所示, 其中“+”表示积极影响、“-”表示消极影响, “A”表示要根据具体的软件分析。

5 结论

本文从软件测试的角度对现有软件测试性定义进行了比较和分析, 综合不同方面得到一个较为完整的软件测试性定义。介绍了软件测试性包含的各测试性特性, 简要分析了测试性特性与软件测试性以及测试性特性之间的关系。最后介绍了软件测试性与Boehm模型中其它质量因素的关系, 同时应用Shumskas方法分析了软件测试性与ISO9126模型中部分软件质量因素的关系。从测试性定义、测试性特性到测试性与其它质量因素的关系, 本文研究了软件测试性定义的各个方面, 从而帮助人们建立起一个完整的软件测试性概念。

软件测试性定义研究 篇2

管理者风格测试

说明:在以下40组的词语中,找出每组最适合你性格的用词,并在该词前 “√”在做记号。要做完40题,不要漏掉任何一题。若你不能肯定哪个是“最适合”,请想想你的配偶和朋友平时是怎么评价你的,并考虑:当你还是小孩时,哪个该是答案。

富于冒险:愿意面对新事物并敢于下定决心掌握的人;

适应力强:轻松自如适应任何环境;

生动:充满活力,表情生动,多手势;

善于分析:喜欢研究各部分之间的逻辑和正确的关系。

坚持不懈:要完成一事才接着做新事;

喜好娱乐:开心,充满乐趣和幽默感;

善于说服:用逻辑与事实而不用威胁和权力服人;

平和:在任何冲突中,不受干扰,保持平静。

顺服:易接受他人的观点或喜好,不坚持己见;

自我牺牲:为他人利益愿意放弃个人意见;

善于社交:认为与人相处是好玩,是参与的机会,而不是挑战和商业机会; 意志坚定:决心依自己的方式做事的人。

体贴:关心别人的感觉与需要;

自控性:控制自己的情感,极少流露;

竞争性:把一切当成竞赛,总是有强烈的赢的欲望;

使人认同:因个人魅力或性格使人认同。

使人振作:给他人清新振奋的刺激;

受尊重:对人诚实尊重;

含蓄:自我约束情绪与热忱;

善于应变:对任何情况都能很快做出有效的反应。

满足:容易接受任何情况和环境的人;

敏感:对周围的人事过分关心;

自立:独立性强,只依靠自己的能力、判断与才智;

生机勃勃:充满生命力与兴奋。

计划者:为完成工程和目标事前做详尽的计划,宁愿依计划进行工作,而不愿执行任务; 耐性:不因延误而懊恼,冷静且能容忍;

积极:相信自己有转危为安的能力;

推动者:动用性格魅力或鼓励或逼迫别人参与或投资。

肯定:自信极少犹豫或动摇;

无拘无束:不喜预先计划,或受计划牵制;

有时间性:生活与处事都按时间表,不喜欢计划被人干扰;

羞涩:安静、不善于交谈的人。

井井有条:有系统有条理安排事情的人;

迁就:改变自己,使自己与他人协调,短时间内按他人的方式行事;

坦率:毫无保留,坦率发言;

乐观:愉快的性情令自己和他人相信任何事都会好转的人。

友善:不主动交谈,经常是被动的回答者;

忠诚:一贯可靠,忠心不移,有时甚至毫无理由的奉献;

有趣:风趣,很强的幽默感,使任何事情都能变成精彩的故事;

强迫性:发号施令者,别人从不反对。

勇敢:敢于冒险,勇敢,无所畏惧;

可爱:开心,与他相处充满乐趣的人;

外交手腕:待人得体有耐性;

注意细节:对事情记忆清晰,做事有条不紊。

令人高兴:一向充满活力,并将快乐感染他人;

贯彻始终:情绪平稳,容易反应,如人所料;

文化修养:对学术,艺术特别爱好,如戏剧、交响乐、芭蕾舞等;

自信:确信自己个人能力与成功。

理想主义:以自己完美的标准来设想衡量事情;

独立:自给自足,自己生活,自信,无需他人帮忙;

无攻击性:从不说或做引起别人不满和反对的事;

富激励性:鼓励别人参与、加入并能将每件事变得有趣。

感情外露:从不掩饰自己的情感、喜好,与人交谈时常身不由己地接触他人; 果断:有很快做出判断与结论的能力;

尖刻幽默:近乎讽刺的幽默;

深沉:深刻并常常内省,对肤浅的交谈、消遣的厌恶。

调解者:经常居中调解不同的意见,以避免双方的冲突;

音乐性:爱好参与并有较深的鉴赏力,因音乐的艺术性,而不单是为表演的乐趣; 发起者:被高效率的需要所推动,是别人跟随的领导者,闲不住;

喜交朋友:喜好周旋于宴会中,喜好结交新朋友,不把任何人当陌生人。

考虑周到:善解人意,能记住特别的日子,不吝于帮助别人;

执着:不达到目的誓不休者;

多言:不断的说话、讲笑话来娱乐周围的人,觉得应避免沉默而使人尴尬;

容忍:易接受别人的想法或方法,不需要反对或改变他人。

聆听者:愿意听别人倾诉;

忠心:对自己的理想、朋友、工作都绝对忠实,有时甚至无需任何理由;

领导者:天生的带领者,不相信别人的工作能力比得上自己;

活力充沛:充满活力,精力充沛。

知足:满足自己拥有的,甚少羡慕别人;

首领:要求领导地位及别人跟随;

制图者:用图表、数字来组织生活,解决问题;

惹人喜爱:人们注意的中心,令人爱羡。

完美主义者:对别人、对自己订高标准,一切事情都有秩序;

和气:易相处型,易说话,易让人接受;

勤劳:不停的工作,完成任务,不愿休息;

受欢迎:是聚会时的灵魂人物,受欢迎的宾客。

跳跃型:充满活力和生气的性格;

无畏:大无畏,大胆前进,不怕冒险;

规范型:时时坚持自己举止合乎认同的道德规范;

平衡:稳定,中间路线。

乏味:面上极少流露表情或情绪;

忸怩:躲避别人的注意力;

露骨:好表现,华而不实,声音大;

专横:喜命令支配,有时略傲慢。

散漫:生活任性无秩序;

无同情心:不易理解别人的问题与麻烦;

缺乏热情:不易兴奋,经常感到喜事难陈;

不宽恕:不易宽恕或忘记别人对自己的伤害,易妒忌。

保留:不愿意参与,尤其当事物复杂时;

怨恨:把实际或自己想象的别人的冒犯经常放在心中;

逆反:抗拒、犹豫或拒不接受别人的方法,固执己见;

叨唠:重负讲同一件或故事,忘记自己已经重复多次,总是不断的找话题说话。

挑剔:坚持琐事细节,要求注意细节;

胆小:经常感到强烈的担心、焦虑、悲戚;

健忘:由于缺乏自我约束,导致健忘,不愿意记无趣的事;

率直:直言不讳,不介意把自己的看法直接表露出来。

没耐性:难以忍受等待别人;

无安全感:感到担心或无自信;

优柔寡断:很难下定决心;

好插嘴:是一个滔滔不绝的发言者,不是好听众,不留意别人也在讲话。

不受欢迎:由于强烈要求完美,而拒人于千里之外;

不参与:不愿倾听,也不愿意参与或加入任何团体活动,对别人的生活不感兴趣; 难预测:时而兴奋、时而低落,或总是不能兑现其诺言;

缺同情心:很难用语言或动作当众表达感情。

固执:坚持依自己的意见行事;

即兴:做事从无一贯性;

难于取悦:因要求太高而使别人很难取悦;

犹豫不决:迟迟才有行动,不易参与。

平淡:中间性格,无高低之分,很少表露感情;

悲观:尽管期待最好的但往往首先看到事情的不利之处;

自负:自我评价高,认为自己是最好的人选;

放任:允许别人(包括孩子)做他喜欢做的事,为的是讨好别人,令别人鼓吹自己。

易怒:善变,有小孩似的情绪,易激动,过后马上又忘了;

无目标:不喜欢订目标,也无意订目标;

好争吵:易于别人争吵,不管怎样对任何事情都感到自己是对的;

孤芳自赏:容易感到被人疏离,经常无安全感或担心别人不喜欢与自己相处。

天真:孩子般的单纯,不理解生命的真谛;

消极:往往只看到事物的消极面、黑暗面,而少有积极的态度;

鲁莽:充满自信、坚忍不拔与胆识,但总不恰当;

冷漠:漠不关心,得过且过。

担忧:时时感到不确定、焦虑、心烦;

不善交际:感到需要大量时间独处;

工作狂:为了回报或成就感,而不是为了完满,设立雄伟目标,不断工作,耻于休息; 喜获认同:喜欢旁人认同、赞赏,就如同演艺家,需要观众的掌声、笑声与接受。

过分敏感:对事情过分反应,别人误解时感觉被冒犯;

不圆滑老练:经常用冒犯或没考虑周到的方式表达自己;

胆怯:遇到困难退缩;

喋喋不休:难以自控,滔滔不绝,不能倾听别人。

腼腆:事事不确定,又对所做之事缺乏信心;

生活紊乱:缺乏安排生活的能力;

跋扈:冲动地控制事情或别人,指挥他人;

抑郁:常情绪低落的人。

缺乏毅力:反复无常,互相矛盾,情绪与行动不合逻辑;

内向:思想和兴趣放在心里,活在自己的世界里;

不容忍:不能忍受他人的态度、观点、做事的方式;

无异议:对多数事情均漠不关心的人。

杂乱无章:生活环境无秩序,经常找不到东西;

情绪化:情绪不易高涨,当感到不被欣赏时很容易低落;

喃喃自语:低声说话,不在乎说不清楚;

喜操纵:精明处事,操纵事情,使自己得利。

缓慢:行动思想均比较慢,过分麻烦;

顽固:决心依自己的意愿行事,不易被说服;

好表现:要吸引人,需要自己成为别人注意中的中心;

有戒心:不易相信别人,对所有语言背后真正的动机存有疑问。

37

孤僻:需要大量时间独处,避开人群;

统治欲:毫不犹豫地表示自己的正确或控制能力;

懒惰:总是先估量做每一件事要耗费多少精力;

大嗓门:说话声与笑声总是盖过他人。

拖延:凡事起步慢,需要推动力;

多疑:凡事怀疑,不相信别人;

易怒:当别人行动不够快,不能完成指定的工作时,易感到不耐烦或发怒; 不专注:无法专心或集中注意力。

报复型:妒恨并惩罚冒犯自己的人;

烦躁:喜新厌旧,不喜欢长期做相同的事;

勉强:不愿参与或投入;

轻率:因没耐性,不经思考,草率行动。

妥协:为避免矛盾,即使自己是对的也不惜放弃自己的立场;

好批评:不断地衡量和下判断,经常考虑提出反面的意见;

狡猾:精明,总是有办法达到目的;

软件定义工作场所 篇3

这是比以往任何时代都更需要“智造”的中国——全球已经形成了出奇一致的认知:世界发展的下一个阶段,将会是从“做”到“造”的转变——“做”的价格正在日渐萎缩,而创新的收益正与日俱增。创新能力将是未来赢家所有禀赋中最重要的因素。

要使企业真正转型为一种以服务客户为中心的运营模式,是一场涉及各个部门、各项流程的大工程,企业必须在这个过程中脱胎换骨,而过去10年中新技术应用的采用和发展,为这种蜕变提供了重要的推动和支持力量。在这个过程中,掌握技术工具的CIO在其中发挥了重要的作用,他们通过创新的IT 应用,帮助企业改进业务模式,提升管理效率,促进客户关系,并利用IT搭建公共平台,重组资源,变革架构模式,帮助企业更好地响应客户与市场需求。

多年来,《数字商业时代》一直致力于积极寻找、大力推崇有着自主创新精神的智力密集型企业。从2012年开始,在《数字商业时代》创刊十二周年之际,与思杰公司联合,隆重推出思杰“智·活”榜,“智”代表智慧、科技,寓意思杰在云计算、虚拟化领域的领军作用;“活”代表活力和生活,思杰倡导的移动办公是一种企业活力的表现,而对于每个人来说又寓意新生活的开始。活动旨在寻找一种新办公文明,以期倡导企业通过科技手段让员工高效工作。

如今,我们已经开始了第三届的评选。第一届我们在寻找敢于尝试新商业变革的企业;第二届我们在寻找敢于创新商业模式的企业;第三届,我们是要推举出敢于智造颠覆商业的企业。

随着云计算、移动互联、社交网络风起云涌,一个技术驱动商业变革的时代正在向我们走来,今天的CIO不再是幕后的“无名英雄”,而是走向前台,在现代企业管理和具体商业运作中扮演更加积极、主动的重要角色,他们甚至会带给企业颠覆性的改变。他们的身影和作用贯穿商业运作流程的全生命周期,在商业模式创新、产品研发、生产制造、供应链、市场营销、服务等各个关键领域,运用科技手段为企业带来创新与变革,他们是引领创新与变革的实力派。

而今,思杰“智·活”榜将持续关注并发现在技术驱动商业变革的时代,能够真正把握这个时代脉搏,真正拥抱这一时代的英雄们。

软件定义网络测试方法研究 篇4

1 SDN测试技术研究意义

SDN技术的出现打破了传统网络设备制造商独立而封闭的控制面结构体系, 改变了网络设备形态和运营模式, 对网络的应用和发展产生了直接影响。但是, 随着各种SDN设备与系统的大量涌现, 相应的测试评估技术也必须同时进行研究与发展。以SDN为基础的军用数据链可以为未来军事科技提供灵活、统一的视图:为战争资源的统一配置、管理和优化提供了很好的技术支持。而SDN测试评估能够为SDN技术的具体实施提供保障。特别是为各种设备间、新旧协议间、不同战区和兵种网络间的相互间的一致性、安全性提供保障。科学、完备的SDN测试评估体系和方法将成为未来军用网络设备研发和部署的必备技术基础。

目前, 我国自主知识产权的SDN标准尚处于研究阶段, 缺乏完整的协议文档或者成熟的研究成果, 所以相关测试评估技术上也尚属空白。而一旦具有自主知识产权的SDN具体化标准诞生, 进一步推广乃至产业化就必须依赖强有力的测试评估技术, 以保证自主协议标准的科学性和一致性。所以, 对我国具有自主知识产权的SDN技术的测试研究显得尤为迫切。总之, SDN相关研究对我国网络强国强军战略意义重大, 提出科学完备的SDN测试体系和方法将构成这一研究中的重要一环。

2 总体研究思路

首先, 本文调研已有测试技术和SDN的发展现状。在此基础上, 拟从协议一致性、互操作性、安全性和性能测试4个方面, 提炼和整理测试评估参数, 以建立测试评估体系。然后, 设计获取这些参数实测值的具体测试方法以及结果判决方法。最后, 设计和研制测试原型系统以验证建立的体系和方法。

3 测试评估体系研究

如前所述, SDN存在3个逻辑层面:基础设施层、控制层和应用层。SDN被测对象 (例如交换机、控制中心等) 即是工作在某个或者某几个层面上的设备或者系统。建立众多的SDN设备或系统的测试评估体系, 可以概括为对其包含的逻辑层面的测试评估体系。从协议一致性、互操作性、性能测试和安全性4个方面, 对特定的SDN逻辑层面进行测试评估, 即从协议一致性、互操作性、性能测试和安全性测试方面来研究SDN各逻辑层面测试的总体拟测参数体系。而每个逻辑层面的每种测试参数又可以包含若干细化的拟测参数集。

以SDN交换机为例 (通常假设它只负责数据转发, 即工作在基础设施层) , 如图1所示, 测试评估在协议一致性、互操作性、性能测试和安全性4个大的方面进行。由于基础设施层的协议接口只有南向接口, 而其主要功能是数据转发, 所以其南向接口协议一致性、互操作性和数据接口性能测试是其测试评估体系的重点。进一步来看, 以南向接口互操作性为例, 又可以细化为控制通道建立、拓扑管理等测试。同样, 数据接口性能测试也可以细化为吞吐量和丢包率等测试。

不同逻辑层面考察的侧重面即主要的拟测参数集可能各不相同。但总的来说, 各个层面的被测对象都可以建立类似的体系结构。图1只是整个测试评估体系的部分例子, 更完整、科学的测试评估谱系需要进一步细化和研究。

4 测试评估方法研究

测试评估体系拟从协议一致性、互操作性、安全性和性能测试4个方面对SDN设备或系统进行评估。这4个方面涵盖了SDN设备或系统最主要的测试指标和参数, 构成了完备的SDN测试评估体系。下面分别给出这4个方面的测试方法。

4.1 协议一致性测试

协议一致性测试是检验开放系统互连设备或系统的协议实现与协议标准一致性程度的测试。协议一致性测试是一种黑盒测试, 测试依据协议标准来控制、观察被测试协议实现的外部行为, 而后对被测协议实现进行测试。协议一致性测试实质上是在一定的网络环境下, 利用一组测试序列, 对被测协议实现 (Implementation Under Test, IUT) 进行测试, 通过比较IUT的实际输出与预期输出的异同, 判定待测协议在多大程度上与标准描述相一致。

4.2 互操作性测试

互操作性测试是对2个或2个以上的协议实现能否互连互通互操作进行的测试, 所以它至少涉及2个或2个以上的协议实现。在互操作性测试中, 通常把其中公认的已经通过权威的互操作性测试的协议实现称为认可设备 (Qualified Equipment, QE) 。互操作性测试和协议一致性测试的最大不同, 是在测试拓扑中认可设备替代了测试仪表。认可设备就是与被测设备连接互通、由其他设备提供商提供且已经被认为是合格的设备。同时, 把另外一个协议实现称为被测设备 (Implementation Under Test, IUT) , 被测设备在互操作性测试中作为被测试对象。由测试方和被测方所组成的整体称为被测系统 (System Under Test, SUT) 。

4.3 安全性测试

传统的网络安全问题, 如洪泛攻击、访问权限突破、溢出或注入攻击、数据信息泄漏等安全问题在SDN环境下同样存在。而SDN提供对网络设备的集中式、自动化管理、统一的策略执行, 又有其独特的安全特性, 需要重点提炼和测试。特别是SDN中的控制层, 对下操作硬件行为, 对上提供API接口, 可能成为安全问题的焦点。

4.4 性能测试

性能测试用于表征设备或系统的物理属性和能力, 是设备或系统本身特性的体现。它由一系列的性能参数来度量和描述。性能测试采用一定的软件和硬件工具, 遵照一定的方法和技术, 测试或验证表征设备或系统的性能指标, 对设备或系统设计具有重要意义, 测试结果可用于改善设备或系统设计、配置、操作和维护。为了反映SDN设备或系统的实际状况, 性能测试参数的选取拟遵循以下准则:首先, 参数必须是具体而明确的;其次, 参数能够且比较足够用于反映SDN设备或系统的基本性能特征;再次, 参数的定义不依赖于具体的SDN实现标准, 并用于具体SDN实现标准无关的术语进行描述;最后, 参数应具有可重复测试性, 即在相同条件下测试多次应得到近似的测试结果, 以避免人为因素和随机因素的影响。

5 测试系统设计

目前, Open Flow南向接口已相对成熟, 具有具体可实现的协议标准, 所以设计的测试原型系统以此为基础, 用于测试运行于基础设施层的SDN交换机。如图2所示, 原型系统依据测试评估体系中的4个方面:协议一致性、互操作性、安全性和性能测试, 分为4个物理平面。其中, 协议一致性测试平面底层实现南向接口, 通过一定的测试规范模块 (包含测试用例、测试判定、报告生成等内容和功能) , 测试设备控制层和基础设施层之间的南向接口协议与标准协议的一致性;安全性测试平面和性能测试平面底层同样实现南向接口, 通过一定的测试规范模块, 测试设备南向接口的安全性和物理性能;互操作性测试平面不需要直接与南向接口打交道, 但作为外部监控, 通过一定的监控接口和测试规范模块, 对多个设备的互操作性进行测试和评估。

测试原型系统拟采用的物理硬件以集成众核处理器的高速网络板卡为基础, 以提高测试效率。软件上实现南向接口协议和测试规范模块, 以实现接口和测试要求。测试原型系统的4个测试平面在初期阶段, 拟设计为物理上分离的4个独立测试套件, 以方便开发和实验。后期拟将都基于南向接口的协议一致性测试、安全性测试和性能测试整合到同一块高速网络板卡之中, 并和互操作性测试一起整合到一个综合测试平台之上, 以满足SDN多层面综合性的测试场景和测试需求。

6 结语

本文介绍了SDN的概念以及对软件定义网络测试技术的当前研究情况, 对测试评估技术的概念和方法研究进行了综述, 并对SDN测试原型系统的设计作了介绍。总的来说, SDN测试相关研究正在蓬勃开展之中, 但以Open Flow为代表的相关标准仍不够成熟, 设备对标准的支持情况也还不够成熟, 不同设备厂商对标准理解不同, 设备实现也不尽相同, 所以一致性、互操作性等测试显得尤为重要。通过测试, 可以促进SDN理念和相关技术更快被接纳, 让设备的实现更加规范, 加快商业部署的步伐。目前, 测试工作还存在很多挑战, 测试方法还不够全面, 测试工具也不够完善, 相关文献文档非常匮乏甚至空白。现有的测试评估方案多为对以Open Flow为标准的设备的测试, SDN网络和系统的测试评估方案还存在很大的挑战。随着SDN技术的发展, 特别是随着我国自主知识产权的SDN技术的发展, SDN测试评估体系和方法还需要进一步研究和完善。

参考文献

[1]ISO/IEC.Information technology——Open Systems Interconnection——Conformance testing methodology and framework——Part1:General concepts[EB/OL].http://www.iso.org.

[2]ISO/IEC.Information technology——Open Systems Interconnection——Conformance testing methodology and framework——Part2:Abstract Test Suite specification[EB/OL].http://www.iso.org.

[3]ISO/IEC.Information technology——Open Systems Interconnection--Conformance testing methodology and framework——Part3:The Tree and Tabular Combined Notation (TTCN) [EB/OL].http://www.iso.org.

[4]ISO/IEC.Information technology——Open Systems Interconnection--Conformance testing methodology and framework——Part4:Test realization[EB/OL].http://www.iso.org.

[5]ISO/IEC.Information technology——Open Systems Interconnection--Conformance testing methodology and framework——Part5:Requirements on test laboratories and clients for the conformance assessment process[EB/OL].http://www.iso.org.

软件定义汽车 篇5

这一事件随后为美国媒体所披露,并引发了社会的强烈关注。官方的调查表示,这起事故纯粹只是一场意外。不过很多人却认为,Michael应该是被某些人杀害的。这种“阴谋论”的观点甚嚣尘上,并引发了多种猜测。前美国国家安全、基础设施保护及反恐协调员Richard Clarke认为,这起事件或许与黑客攻击有关。他表示:“有理由相信,一些大国的情报机构了解如何远程控制汽车。”

Richard的观点由何而来?这是因为,今天的汽车中充满了科技的味道。

软件,汽车的神经

美国空军的主力机型F-22“猛禽”战斗机,拥有170万行软件代码;而为F-35联合轰炸机编写系统,则需要约570万行;为了操作航空电子设备和机载系统,波音公司的787型客机的代码数量达到了650万行。

那么,猜一猜汽车身上有多少代码?来自慕尼黑大学的研究认为,今天一辆豪华车辆可能要由近100万行的代码做支撑。这些代码犹如中枢神经一般,密布在汽车体内。汽车内置的70~100块基于微处理器的电子控制单元(Electronic Control Unit,ECU)就是汽车的内脏,它们控制着代码。

在目前出售的奔驰S级别轿车中,单单只是无线电和导航系统,就用去了约20万行代码。而整车的ECU数量甚至与空中客车的旗舰产品——双层客机A380——一样多(不包含飞机的机载娱乐系统)。

哪怕是低端车,每辆车中都“跑”着几十万行代码,以及30~50个ECU。从车门、仪表台、收音机,到制动、动力系统,软件的影子无所不在。

国内某家汽车企业一位不愿透露姓名的技术负责人对记者表示:“与10年前相比,今天内置在车辆内的软件量级已经超过了千倍以上。软件在汽车内所占据的比重将会越来越高。

慕尼黑大学信息教授Manfred Broy表示,在今天的高档车中,软件和电子产品的成本占到了整车成本的35%~40%。他表示:“如果以一行代码10美元计算,这已经是很低的标准了。那么高档车中仅软件方面的投资就会达到10亿美元。”调研公司Frost&Sullivan早在2008年就做出过这样的预测:在不久的将来,一辆普通汽车内部的软件代码将达到200万~300万行。

汽车的未来更离不开软件

在汽车的发展历史上,其实很早就已经与软件牵扯上了联系。这是因为,工业的发展离不开各类软件、片上系统的支持。从最早的纯机械化起步后,汽车上慢慢加入了包括灯光控制、电子点火等部件,再到后来又逐步加入ECU、ABS等自动化、电子化器件,这些都与软件有关系。

到今天,汽车与软件的关系愈发紧密。软件不仅仅只是控制汽车底层硬件运行的封闭呆板的一行行代码,而成为了具有自学习能力、展现形式丰富多样的智能操作系统。在软件的推动下,汽车由一个用钢铁、玻璃铸成的、带有轮子的铁房子,成为了真真正正的科技类产物。在汽车的动力、控制、驾驶辅助等系统上,不仅有发动机、刹车盘等基础硬件,同时还包括了温度、空气流量、压力、位置与角度等传感器;同时,越来越多的消费电子产品和信息化也在进入汽车,比如车联网、智能移动操作系统等,控制这些硬件和传感器的是ECU和芯片,软件在其中扮演了操作系统的角色。

在未来,汽车软件的作用恐怕会更大。用钥匙打开车门、点火、挂档、踩油门、转动方向盘,对于经常开车的人来说,这套一气呵成的动作听起来再熟悉不过了。不过在不远的将来,你依然用这种方式在街上开车的话,恐怕会让路人侧目。

未来,我们的驾驶体验应该会是这样的:当驾驶员靠近汽车时,车辆会依托生物识别技术侦测到车辆驾驶员,自动打开车门并根据驾驶习惯调整好座椅;驾驶员进入车内后,只需要说出目的地,车辆即可在语义识别和导航软件的帮助下自动驶往;在行驶过程中,驾驶员可以随时通过车载系统与手机联系人通话,因为从一上车开始,汽车就已经自动与手机进行了连接;除此之外,汽车还会收集平均速度、轮胎压力、路况等信息,为驾驶员提供合理的建议。

除了这些我们可以见到、感知到的内容外,汽车还在默默地进行着一些其他工作。比如,其可以将收集到的车辆信息反馈给厂商,厂商会根据信息对产品进行调整;一旦发生事故,车辆会自动向救援机构告警,并反馈车辆位置和人员情况;车辆发生问题,车载电脑会向维修厂发送信号,维修厂可在车辆到达前获知故障信息并准备好备件。

依托智能车辆(Intelligent vehicle)和车辆自动化(Vehicular automation)技术,以上的这些场景描述并非是痴人说梦。而在这其中所涉及到的技术,包括机电一体化、人工智能、IT、通信等,无一不包含了软件和算法。

在采访中,有业内专家表示,一些汽车企业已经将车上的娱乐系统或者与舒适性相关的软件开放接口,将汽车打造成为一个科技平台。第三方开发者可以按照需求为汽车编写更有创意和针对性的应用。

通用汽车在这方面已经走在了前面。其近日宣布,明年年中开始将出售内置4G移动网络的汽车,车主可以为自己的爱车下载各种智能化应用程序。据统计,目前全球具备互联网连接功能的汽车已经达到10%。通用汽车首席执行官Dan Akerson近期在接受采访时表示,公司需要吸引成千上万的程序员为其汽车产品开发应用,希望通用汽车的应用商店GM App Shop未来会变得跟苹果App Store和谷歌Google Play一样流行。据悉,通用、福特等老牌车企正在大举招募软件工程师投入汽车应用程序的开发。

nlc202309012021

汽车软件,安全性不容忽略

软件在汽车上的作用愈发明显。那么,黑客真的能控制汽车软件吗?

Michael遇难事故的现场几乎已经被大火消耗殆尽。Clarke表示,这已经不可能追查汽车是否遭受了黑客攻击,“即使有些电路板没有被烧掉也是一样。”

在这种情况下,我们只有寄希望于揭示出“汽车是否会被黑客攻击”这一事实。2010年,华盛顿大学和加州大学的研究人员发表了一份名为“Experimental Security Analysis of a Modern Automobile”(《现代车辆的实验安全分析》)的报告,报告提到,“已经证实,我们可以对包括发动机、制动、空调、灯光、收音机等在内的系统进行控制。这意味着我们能够发动袭击并对人身安全造成威胁。”报告认为,“举例来说,我们可以在司机不知情的情况下强行让制动失效,或者猛踩刹车。”

来自福布斯的记者亲身坐上由两名黑客Charlie Miller和Chris Valasek控制的福特翼虎SUV,并切身体会到了黑客对车辆的掌控力。福布斯的记者Andy Greenberg写道,“当你踩下刹车时,这辆重达3500磅的大家伙却丝毫没有减速的意思,在那一刻,我有一种非常特殊的焦虑感。同时,汽车所产生的巨大呻吟声就像有只水牛躲在车下一般。我的刹车踏板踩得越深,呻吟声也就越大。伴随着呻吟的,是坐在后座两名黑客的大笑。”

Charlie和Chris不仅能够对翼虎做手脚,丰田的普瑞斯也是他们下手的目标。汽车厂商对黑客的做法做出了回应。丰田认为,汽车业界的整体安全规划是防止黑客通过远程方式控制汽车。换句话说,Charlie和Chris从内部攻破汽车的软件系统,并不在汽车厂商的安全考虑范围内。

然而,早就有大学研究人员发现,黑客可以透过通用汽车安吉星(OnStar)在蓝牙方面的漏洞侵入到车载音频系统。这其实恰恰就是汽车厂商所关注的远程攻击的范畴。如此看来,黑客通过攻击汽车上运行的软件,进而控制汽车并威胁到人身安全,是能够真实发生的事实而不是谎言。

尽管有着这样那样的弊端,软件定义下的汽车依然成为了一种必然的趋势。这是由于,软件所带来的巨大创新能力,使得汽车真正从运输工具变为了伙伴、助手。其将为我们的生活和工作带来极大的益处。

SDN软件定义网络技术发展研究 篇6

为了满足未来互联网业务的需要,互联网行业内已经形成了“当前是采取新的设计理念、创新网络体系构架的时候”的趋势,对以后网络的体系架构提出了本质上变革和多业务功能开发需。软件定义网络SDN的出现使得研究人员有了全新的研究理念。

从SDN的提出、发展、基本理论介绍入手,对SDN的技术特征、逻辑构架作了相应的分析,对SDN的国内外研究现状与标准化进行作了适当的阐述,提出了未来发展过程中SDN面临的机遇与挑战,并对可能的探索方向作了相应的总结。

2 SDN起源与概念

2006年,斯坦福大学开始实施“Clean-Slate Design fo the Internet”项目,该项目的目标是探索与传统网络技术不一样的全新的互联网思想,解决现在基础网络构架的局限性,以高效地推动创新科技与新型网络技术的发展。在这个项目中,斯坦福大学的Nick McKeown教授和他的学生Martin Casado等设计了一种Ethane网络技术架构,它是向以流为基础的以太网交换机经过集中控制器发送路由策略与控制信息,实现对流的控制和路由的统一。之后Nick McKeown教授与Martin Casado等研究人员提出OpenFlow的理念,其基本观点是将现有网络设备的路由控制平面与数据转发平面相分离,以标准化接口的形式采取一个集中控制器对各种网络设施作相应的管理与配置,而这些网络设施只执行接收控制器的命令和转发操作。这种网络架构为网络资源灵活性设计、高效集中的管理和分布式的使用提供了强有力的支持,有效推动网络技术的进一步革新与发展。因为OpenFLow具备开发的网络编程接口,所以Ethane被业界普遍认为是SDN技术的起源与雏形理念。

作为一种新兴互联网技术,SND经过对网络设施数据平面与控制平面的分离,将网络控制与资源调度能力抽象为应用程序接口(API:Application Programming Interface),并将其提供给应用层,从而构建了可编程的、具有开放性的互联网环境,在对各种底层网络资源虚拟化的前提下,能够对网络进行集中的管理与控制。与传统网络将控制系统嵌入到网络设施中相对比,SDN能够将网络设施的控制能力集中到中央控制器,经由互联网操作系统使得业务配置与网络控制更加自动化、更加灵活。

3 SDN体系架构与标准化进程

3.1 SDN体系架构

从现网数据通信路由交换设备设计上来看,它由控制、转发和管理三个平面组成,从功能逻辑上进行3个不同层次的划分,各负其责。其中控制层面需要支持的各种规范与协议,如IGP、BGP、Multi-Casting、QOS、TE、NAT、firewall、MPLS、VPN等,已经使得路由器的实现与设计流程都非常复杂。SDN目的就是把整个网络的控制平面功能从传统网络设备硬件中剥离出来,由单独的服务器对网络的集中控制和管理。

图1软件定义网络体系结构图,是ONF(Open Networking Foundation:开放基金会)提出的SDN的典型构架,从上到下,SDN网络体系构架包括应用层、控制层与基础设备层部分。其中应用层在上层,包含各种不同的应用与业务,控制层在中层,负责对网络资源的调度作相应的处理,对状态信息与网络拓补作适当的维护,基础设备层在下层,主要具有状态采集、数据转发与处理功能。SDN有两个关键的接口,分别是控制层与应用层之间的接口以及基础设备层与控制层之间的接口,这两个接口在SDN构架中占据十分重要的地位。其中,基础设备层中的经典互联网设施与控制层中控制软件之间的接口叫做控制数据面接口;应用层各个应用与控制层之间的接口叫做API接口;OpenFlow网络主要由3个部分组成,分别是:OpenFlow协议、安全通道与OpenFlow交换由流表。OpenFlow交换接到报文数据后,第一步是对流表作相应的查找,找到对应匹配的转发报文数据,并给出相关操作。如果没有找到表项匹配,就把报文数据转发到控制层中,让控制器负责其下一步的转发动作。控制器经过OpenFlow协议来操作,并对OpenFlow交换中的流表作相应的更新,从而能够集中对网络流量进行控制与管理。控制层对底层互联网基础资源作相应的抽象,为上层应用层提供全局的虚拟化视图,完全通过软件实现,脱离了网络控制功能与硬件网络设施之间的紧耦合捆绑。控制层为应用层提供了具备开放性的接口,能够对控制器执行编程操作,来实现对应用的网络流量以及各种流量模型的控制,从而方便网络对流量的感知,促进互联网智能化的实现。

3.2 SDN架构的特征

从上述介绍中能够看出,归纳总结起来,SDN应具备的3大特点:

(1)集中化控制:通过SDN的三层结构,控制器的集中控制可以获取互联网状态的所有信息,并可以按照业务的实际需要对资源进行全局的优化与配置,例如负载平衡、QOS、流量工程等。与此同时,整个互联网通过集中控制功能能够在逻辑层面被看做是由一台网络设施执行维护与运行功能,不用到现场对物理设施作相应的配置,促进了网络维护与控制方便性的全面提升。

(2)开放接口:通过北向与南向接口的开放,使得网络能够与各类业务需要无缝衔接,经过开放接口人为灵活地使用编程的方式通知网络怎样工作才更能符合业务的需要,比如延迟、带宽、服务类型、计费等对路由的影响等。同时,通过可编程接口,可以使得用户自主对资源进行调用,对网络业务进行开发,使得新业务的上线周期明显缩短。

(3)网络资源虚拟化:通过南向接口的开放,能够对底层物理转发设施间的差别进行屏蔽,使得底层网络对上层应用具备较强的透明性。当物理网络与逻辑网络分离开后,逻辑网络能够按照实际业务的要求,在不受到物理设施所处位置的约束条件下进行迁移与配置。而且,逻辑网络还能够满足用户的网络定制与多用户的共享需要。

SDN的转发平面与控制平面的分离,使得把控制器从传统互联网设施中抽离出来并集中控制有了可供参考的依据。南向接口理念(OpenFlow)的提出,使得底层网络转发设施的集中控制与管理成为了可能。对上层应用来说,物理网络具有透明化的特点。SDN的体系架构和多样化的标准接口,未来会促进网络能力更加方便地调用,互联网业务也更容易的被创新。

3.3 SDN标准化进程

ONF是推动SDN网络规范化工作的国际组织之一。ONF标准组织为SDN体系规范化的首个接口就是OpenFlow,当前有关规范的定义已经更新到了1.4版本。虽然ONF是制定SDN标准的主要组织,而牵涉到互联网虚拟化规范制定的则是ETSI NFV(Network Function Virtualization:网络功能虚拟化)。而且,许多有关的规范化组织也都在大力进行SDN标准的制定,例如IETF(Internet Engineering Task Force:互联网工程任务组)、ITU-T(ITU-T for ITU Telecommunication Stan dardization Sector:国际通信联盟电信规范化组织)等。NFV主要是部署大量服务器,通过服务器的容量堆叠和虚拟化实现存储容量的扩大,其目标是希望经过采取行业内标准的交换机、储存、服务器以及规范化互联网虚拟化技术所承载的软件功能,确保能够灵活地加载各种软件,从而可以在用户端、控制器以及数据中心实现灵活的配置与部署,使得各种业务部署的复杂度与难度都得以显著下降。IETF研究在传统网络各类协议的基础上,在网络层与应用层之间添加SDN插件来开展开放式能力的封装,以对已有的各种IP网络技术与路由协议进行重用与保留。ITU-T研究组是讨论SDN构架与信令需求的探索工作,对SDN协议兼容性、消息的实现协议与机制、消息参考架构、消息需求等标准的制定,并将确保能够与ONF制定的OF-CONFIG与OpenFlow协议具有较好的兼容性。总体来说,SDN目前虽然在市场上已经开始了应用,但是各研究机构对SDN的研究标准还有待统一和未来进一步的完善发展。

4 SDN技术在未来的发展

SDN将网络底层的各类实体资源虚拟化--软件可以实时地对SDN网络中的转发设备通过北向接口编程的方式进行重新定义和重写,这个网络只需要具备基本转发功能的硬件设备就可以了,大大降低了网络对设备各项功能的依赖程度;实现网络控制集中化,业务配置虚拟化,设备硬件商品化,使得网络的规模和性能迅速和灵活地扩充。

软件测试性定义研究 篇7

软件定义 网络(Software Defined Networks, SDN)是一种新型的计算机网络体系结构,其核心思想是简化底层网络的功能,屏蔽网络内部实现细节, 抽象出一个软件操作系统,为上层应用提供统一的控制接口。一个典型的SDN网络由SDN交换机、控制器及控制信道组成。其中控制器通过控制信道与SDN交换机交互控制信令,并为网络管理员提供标准的编程接口[1,2]。

从国际范围来看,SDN/Open Flow的发展势头迅猛,众多厂商的推进使SDN/Open Flow高速发展, 其商用化的可能性很大。2011年3月21日,由德国电信、Facebook、Google、微软、Verizon、Yahoo发起成立了开放网络基金会(Open Networking Foundation,ONF),旨在推进 实现基于Open Flow的开放网 络。该组织 的参与者 众多,包括Broadcom、Brocade、Cisco、Intel、IXIA、Sprint、Juniper、Ericsson、NEC、IBM、HP、VMWare、NTT、华为、中兴等主流网 络设备厂 商,其中Arista Networks、IBM、Juniper、HP、NEC、华为等已在其交换机中完全或部分支持了Open Flow协议。另外,Google在其内部全面部署了Open Flow,以对其数据中心间的流量进行更加灵活、有效的控制,这在学术界和工业界引起了很大反响。

在国内,SDN的前景也非常广阔。在我国下一代移动通信网络的建设中,SDN可用来将核心网 (Evolved Packet Core,EPC)中的控制面和转发面进行分 离,实现4G-LTE(Long Term Evolution)系统各部件的松耦合,以简化各部件、提高性能。研究表明,SDN可通过集中式的软件控制使智能电网中的网络管理更加简单[3,4,5]。

本文针对SDN在电网企业应用的关键技术问题,基于现有研究基础和企业现实需求,分析其应用可行性,提出基于SDN技术的新型网络在电网企业的部署方案。

1 SDN 关键技术研究

1.1 传统网络协议的缺陷

传统网络的主要功能为将数据从源节点发送到目标节点,它由成千上万台交换机与路由器组成。在其中所运行的分布式控制与转发协议又是所有路由设备的核心部分。互联网的迅速发展与大规模应用更是得益于分布式协议良好的定义与实现。然而 随着网络的发展,传统网络已经无法满足研究者与用户的需求。

首先,传统网络将控制平面(决定数据流的转发策略)与数据平面(按照控制平面指定策略转发数据包)集中在同一个设备中,厂商在研发交换设备时必须同时兼顾数据平面的高性能以及控制平面的高度灵活性,这就导致开发一款设备的难度、周期以及成本大大增加。

其次,传统网络固有的分布式结构导致新协议、新应用的开发与部署难度进一步增加。

再次,传统网络 设备的灵 活性有限,仅向管理 员提供有 限的应用 程序编程 接口(Application Programming Interface,API),各生产商由于专利问题不可能向用户提供设备的实现细节,这导致用户很难通过软件的方式更改交换机行为,添加新功能。

当前传统网络呈现出一种僵化的结构,这使部署与研究新协议极为困难。以IPv4向IPv6演进为例,IPv6的推广在十几年前就已经开始,而直到现在,互联网中的主要协议仍然是IPv4。介于IP网络的巨大惯性,一款新协议的推广往往需要5到10年的设计、测试与部署,这严重阻碍了网络的创新。

1.2 SDN/Open Flow 的体系架构和基本原理

SDN[6,7]是指网络的控制平面与数据平面分离的一种网络体系结构(见图1)。数据平面负责数据包的转发、流量以及拓扑信息的收集;控制平面运行在单独的服务器上,管理员根据数据平面收集的数据,获取整个网络的完整视图,为每条数据流建立特定的处理策略,并下发到所有相关的交换机上。这种由一个核心层统一控制整个网络转发行为的思路早在早期的电话网络中就出现过[8],只是随着网络规模的不断增加,核心设备的处理能力显现不足,这使研究者开始致力于开发分布式运行的网络设备。随着计算机性能的不断增强,高性能服务器的普及使得这种由少数的核心服务器控制整个网络的数据转发策略成为可能。

概括来讲,SDN具有以下3个主要特性。

1)中心式的网络控制。在SDN中,硬件设备只负责依据流表进行简单的转发,而所有的控制功能 (如路由、网络隔离等)集中在控制器中进行。控制器通过标准接口协议和底层设备进行交互,集中对网络进行控制。

2)高效的数据转发。由于控制功能剥离,数据平面设备只负责依据控制器下发的规则对数据进行快速转发,这将使网络的吞吐量进一步提高。同时, 硬件由于不再需要实现复杂的控制功能,只需支持Open Flow协议即可。

3)灵活的编程接口。SDN控制器提供统一控制接口,编程人员可基于此设计编程语言。管理者可像高级语言编程一样通过编写代码对底层硬件网络进行配置和管理,而无需关心底层网络的硬件细节。

随着SDN的发展,SDN概念的外延被不断扩大,SDN的核心要素包括以下几方面的内容。

1)数据平面与控制平面解耦,控制平面从网络设备移到了单独的控制平面上。

2)与传统网络基于目标地址的转发不同,SDN转发数据包是以流为单位的。数据流由对应数据包的包头中一个或多个字段所标识,如常用经典的五元组表示(源IP、源端口、目标IP、目标端口以及传输层协议)数据包的包头中1个或多个字段。与数据流所对应的是针对该数据流的处理规则,如转发或丢弃。基于流的抽象表达可以使不同的网络设备拥有统一的行为,如防火墙、交换机、路由器等都可以以流作为模式来表达。这种抽象模型极大地增强了交换设备的灵活性,它只取决于交换设备流表所支持的报头字段。

3)控制逻辑被移到了交换设备的外部,即所谓的SDN控制器或网络操作系统(Network Operating System,NOS)。NOS的运行环境是高性能商用服务器而不是专门的硬件平台,它向管理员提供整个网络的统一视图,在逻辑上以集中式的方式实现。

4)网络可编程,即管理员可以在NOS上实现各种应用,指定转发策略,通过软件的方式改变底层设备对数据流的处理方式,而不必考虑设备的具体特性。

在传统网络中部署一项新的功能往往需要特殊的硬件。当网络搭建完成后,一旦网络拓扑发生变化,则需要对这些中间件重新进行配置。与此相反,使用SDN时,所有网络策略的添加只需在网络操作系统之上实现一个应用即可。采用这种方式的优势在于:首先,在网络操作系统所提供的统一视图上,更容易实现新的功能;其次,所有的网络应用共享相同的网络信息,而不需要自己去单独收集。全局一致的网络信息同时使一些网络策略达到最优结果,而不像分布式结构那样陷入局部最优解;再次,网络应用的具体实现可以在网络中的任何位置。由于控制器可以对网络中所有设备单独配置,因此某些功能甚至可以由全网协作完成,如访问控制列表(Access Control List,ACL)就分布在不同的交换机处;最后,不同的应用可以整合在一起完成,如负载平衡和路由可以结合在一起实现。

2 SDN 在电网企业的应用

2.1 电网企业对 SDN 的应用需求

传统的网络架构严重依赖网络设备实体,这种架构下创建的网络大多是静态的。网络软件一般被嵌入在网络设备中(如路由器、交换机、防火墙),移动主机位置后网络需要进行网元级别的重新配置。随着现代网络朝着动态化方向发展,移动主机和虚拟机大量增加。通过重新配置网络来适应这些移动设备会引发巨大的问题,其根本原因在于网元是基于自治而不是基于集中式管理而设计的。一些标准 (如VLANs)虽然能解决其中的某些问题,但仍然在可用性、易维护、扩展性、易管理、虚拟化、可移植性、标准化和互操作性等方面滞后于软件工业的平均水平。电网企业对SDN的需求归纳起来有以下2个主要原因。

1)企业网正在发生着一些显著的变化,这意味着网络中将有更多的设备、更复杂的布线和更多的网络流量。首先是服务器虚拟化,大量的虚拟服务器和用于访问它们的虚拟网络被广泛地集成到了物理网络基础架构中,其对现有网络带宽及网络交换能力的需求大幅增加,拓扑复杂性增加,管理工作复杂化。其次是新的应用架构出现,有数据表明超过60% 的组织正在大量部署基于服务和Web的应用, 不仅要创新大的服务器间的通信连接,而且要求不同应用间相互隔离。企业正在从传统的基于数据转发模式转换到基于服务的递交模式,数据中心变得更趋向于动态、复杂。

2)传统网络架构在应对网络发展时碰到了瓶颈。传统网络都是独立地去管理网络中不同厂家、不同功能的设备,缺乏一个统一的管理平台。网络里面涉及各种各样的协议,管理员掌握难度很大。若网络出现了问题,定位分析也非常困难。网络数据流的变化、转发路径的动态协议计算、拥塞与空闲路径的调整难以把控等问题所带来的直接影响就是,网络中要部署一个新业务时,通常要历时很长。企业为了部署新业务,不得不经常进行升级。管理员每天把大量的时间放在维护网络、升级设备、管理新的入网设备等网络运营维护上,根本没有时间来进行网络创新,长此以往,管理员工作易陷入恶性循环。

2.2 SDN 在电网企业的应用架构

本文以当今支持和使用最为广泛的Open Flow为例进行企业SDN网络设计。采用Open Flow协议构成一个控制转发分离的网络,用户可以使用控制器编程控制网络的转发行为,而转发面是完全按照Open Flow流表规则进行转发的简单硬件设备。SDN控制转发分离的可编程网络架构如图2所示。其中北向接口用于连接控制程序与虚拟化网络,提供系统应用程序编程接口(Application Programming Interface,API)或RESTful。RESTful是一种软件架构风格,只提供一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。南向接口采用Open Flow协议,实现对转发表的实时控制。NOS也称控制器,是网络的集中控制面,负责管理拓扑,并提供软件编程能力。

应用SDN技术的企业整体解决方案具有如下两方面的优势。

1)实现完全虚拟化,控制面、转发面分别演进。传统交换技术的控制面和转发面集成,无法详细对每层进行单独控制。而在SDN网络设计中,转发面不感知任何业务逻辑,只是机械地按照流表中的指令集进行转发,控制面则负责流表的规划与创建, 从而实现数据通信设备转发面与控制面的解耦,使网络摆脱硬件的束缚,只关注对网络的功能需求, 彻底解放软件的创造力。实际工作中,管理员可根据软件发布周期,迅速跟踪市场进展,并动态添加、扩展和配置业务,无需手动配置或者重新布线基础设施。

2)集中控制面。与分散地管理数十台乃至数百台交换机相比,一个集中的管理点大大降低了管理的复杂度。SDN的控制能力在更新转发规则、拓扑算法时,只需在控制器中添加1个软件模块或编写1段脚本即可,无需改动交换机硬件,这使得全局、动态转发策略容易实现。另外,控制器本身是基于商用服务器和操作系统的,安装、开发、部署网络应用模块易于实现。

3 结语

为了应对变化,电力企业需要不断利用技术创新来提高自己的竞争力,这些技术不仅包括服务器虚拟化、存储虚拟化、云计算,还包括与此相配套的一些自动化和业务流程化工具。IT技术只有不断创新、演进和转变,才能适应这种需求。应当看到,传统的网络架构已经很难适应这种变化和新的需求, 落后的网络架构阻碍了业务的发展。

软件测试性定义研究 篇8

所谓句群, 是两个或两个以上的句子组成的语法单位。句群是在意义和结构上有密切联系的各自独立的句子组成的语句集群, 使其成为一个有机的句子群体。句群中的句子从不同的角度围绕一个中心话题来陈述。句群的几个句子是依据某种内在联系, 有序组合起来的。

定义句是对于一种事物的本质特征或一个概念的内涵和外延所作的简要说明。由于单个句子的定义、属性所包含信息有限, 需要上下文句群作为支撑, 提供丰富完整的信息。因此需要以定义句为核心, 抽取上下文句群, 确保概念主题完整丰富。

目前关于句群的处理主要是基于概念层次网络 (Hierarchical Network of Concepts, HNC) 自然语言处理框架之下的。其中有基于规则的HNC句子语义形式化表示方法为基础, 但是句群切分规则的方法有其局限性。还有根据HNC理论建立语言概念空间, 根据领域概念符号, 确定领域关系从而得到句群, 但是需要有人工标注的句群的领域符号作为基础。本文提出的是基于规则和特征统计相结合的定义句句群自动抽取方法。

2定义句句群的抽取

由于单个句子的定义所包含的信息量有限, 因此需要以定义句为核心, 抽取上下文句群作为支撑, 提供更加丰富完整的信息。

(1) 句群抽取的输入:文献中的定义句。

(2) 句群抽取的输出:以定义句为核心, 抽取前后连贯、密切联系, 共同阐述一个概念或主题的若干句子, 组成表示一个中心意思的句群。如下例。

例1:

定义句:CBR是采用非月桂酸系油脂加工的, 如棕榈油、棉籽油、米糠油等经过氢化再分提出物理性质接近天然可可脂的部分。

定义句上下文:CBS主要是从……制成。这类产品……【CBR是采用非月桂酸系油脂加工的, 如棕榈油、棉籽油、米糠油等经过氢化再分提出物理性质接近天然可可脂的部分。】优点是……与天然脂的相容性优于CBS, 耐热性好。缺点是……结晶时收缩性小, 脆性较差。CBR与可可脂相容性非常有限, 因此……

抽取句群:CBR是采用非月桂酸系油脂加工的, 如棕榈油、棉籽油、米糠油等经过氢化再分提出物理性质接近天然可可脂的部分。优点是……与天然脂的相容性优于CBS, 耐热性好。缺点是……结晶时收缩性小, 脆性较差。

抽取的定义句句群共有三个句子, 后面两句是补充说明CBR的优缺点。

3定义句句群的特征

一个句群中的每个句子之间必须互相有联系。句群是由若干个句子组合并表达相对完整的一个中心思想, 通过某种顺序组合在一起, 有内在的联系, 几个句子在语义表达上有支撑中心的关系。句群的内部有并列、连贯、递进、选择、总分、因果、转折等关系。

3.1内容特征

我们在定义抽取过程中, 尽量要使我们抽出的定义完整, 这样才会有更高的参考利用价值, 定义的完整一般要求包括有以下几个方面的内容:包括术语的内涵、外延、特性 (特征) 、分类、结构组成、功用、成因、起源、方法、原理、特征、发展。

3.2上下文特征

选取150条定义句 (化学、医学、互联网每学科各50条) , 通过调研发现, 定义句句群有很多标志点。比如代词, 不少句群运用指代词语组合, 常见的有“它、这种、其、此、这里、那里、这些、那些”或者“前者、后者”等特征词出现。例句:普通香皂足含有76%~83%脂肪酸并带有香气的皂制品, 它具有优异的清洁脱脂能力, 原料来源较广。但由于它的主要成分为脂肪酸钠, 故其抗硬水性差。

定义句句群的内部结构可以分为下列七种。

(1) 并列关系句群。常用的关联词语是:“同时”, “同样”, “与此同时”, “另外”, “一方面”, “此外”, “除此以外”, “还有”, “相反”, “恰恰相反”, “一方面……一方面”, “先说……再说”, 等等。

(2) 连贯关系句群。常用的关联词有:“于是”, “然后”, “接着”, 等等;

(3) 递进关系句群。常用的关联词有:“而且”, “并且”, “甚至”, “况且”, 等等。

(4) 选择关系句群。常用的关联词有:“要么……要么”, “或者……或者”等等。

(5) 总分关系句群。如“分为”, 紧接着逐条介绍, 用序列号或标点符合隔开。

(6) 因果关系句群。常见的关联词有:“因为”, “目的是”, 等等。

(7) 转折关系句群。常见的关联词有:“但是”, “然而”, “尽管如此”, 等等。

4定义句句群的自动抽取策略

句群抽取要解决的核心问题包括两方面:一是句群的选取, 包括句群边界的界定;二是句群抽取的过程中, 如何实现自动抽取, 句群内部语义组合方式如何分类。

语义是划分句群的根本依据, 语义的转移标志着前、后两个句群的交替。句群的自动抽取是建立在词语和句子分析的基础上的。句群抽取可以采用规则与统计相结合的方法。规则方法就是总结各种组合的句式、关联词, 形式化的表示规则, 采用模式匹配方法将符合句式的句群筛选出来。特征统计方法是将句群抽取转化为文本分类问题。定义句句群抽取的问题就是识别一个句子是否属于以一个定义句为核心的句群。

4.1定义句句群抽取流程

(1) 获取语料。抽取“全文”和“中文摘要”字段, 截取以定义句中心的前后各十句话。

(2) 分句。对获取的语料进行分句。

(3) 模式匹配。对分句后得到的每个句子匹配模板。

(4) 匹配成功的句子再按照术语词抽取的模板进行术语词抽取和中心词抽取。

(5) 术语词、中心词构成词链, 计算相似相关度。例如在抽取过程中, 可以根据标志性词看该句是否与前面讲述的术语词有着紧密地联系。

(6) 实验测定阈值, 界定各句是否同一主题。

(7) 若是同一主题, 则归入中心定义句的句群。

4.2术语词、中心词自动抽取的流程

(1) 按照术语词、中心词抽取模板, 将特定位置的词串抽取出来。

(2) 依据句法成分标注结果判断术语词、中心词。

(3) 词串修正。

4.3模式匹配方法

句群各种类型的连词、同义词, 反义词等构成句群特征词表和非句群特征词表。借助使用同义词、相似词表进行扩充。基于规则的方法是通过模式匹配, 人工定义抽取的规则和模式, 侧重领域分析和匹配模式定义, 往往依赖于专业的领域背景知识。

模式匹配的规则较多, 不容易归纳完整, 所以基于规则的抽取存在着一些瓶颈, 规则的设计过程工作量较大, 难以涵盖所有的语言现象, 需要领域专家的协助完成, 同时规则系统的兼容性、灵活性和可移植性也较差。

4.4特征统计方法

基于特征的统计方法也是一种自动抽取的技术。作为定义句句群自动抽取的一元特征包括:连词、同义词、术语词、中心词的位置、词性、句法成分特征。二元特征:各特征组合。为各特征设置权重, 进行综合计算, 根据统计结果设定阈值, 据此判断是否句群。

5实验和结论

在实验中, 我们对文献中的1000句定义截取上下文, 进行定义句句群自动抽取, 准确率为81%。根据语料分析, 模式匹配的准确率较高, 句群中各语句的核心词语相关度高的情况频率高。

汉语定义句句群的自动抽取有助于对术语词、定义句的理解, 在文献检索方面具有重要意义。为了实现提高定义句句群自动抽取的准确率, 分析定义句句群的语言现象, 并提出基于规则和特征统计相结合的定义句句群自动抽取策略。但是通过分析自动抽取不准确的语料发现, 句群是从语义层面的组合是多样的, 由于句间的衔接有一定的主观倾向性, 一定程度影响了自动抽取结果, 对于此类的抽取方法有待改进。

参考文献

[1]吴为章, 田小琳.汉语句群[M].北京:商务印书馆, 2002.

[2]朱楚宏.关联词语的合用与句群的组造[J].四川理工学院 (社会科学版) , 2006, 21 (6) :84-89.

[3]杨立华.句群组合浅说[J].佳木斯大学社会科学学报, 2010, 28 (1) :65-67.

[4]黄曾阳.HNC (概念层次网络) 理论[M].北京:清华大学出版社, 1998.

[5]吴晨, 张全.自然语言处理中句群划分及其判定规则研究[J].计算机工程, 2010, 33 (4) :157-159.

[6]韦向峰, 缪建明, 张全.汉语句群领域的自动抽取研究[J].计算机工程与应用, 2009, 45 (4) :11-15.

软件测试性定义研究 篇9

关键词:流量管理,软件定义网络,OpenFlow,Floodlight

0 引言

随着互联网的逐步发展, 网络用户和业务流量不断增长, 网络资源相对不足造成数据交互速率下降, 网络拥塞问题日益凸显[1]。网络流量管理是基于网络的实时流量和流量管理策略, 对数据流识别分类, 实现流量控制、优化和保障关键应用的关键技术[1], 可以保障网络运行效率和服务质量Qo S (Quality of Service) 。

2006年, 斯坦福大学联合美国国家自然科学基金等启动了由Nick Mc Keown教授担任负责人的Clean-Slate Design for the Internet (简称Clean Slate) 项目, 旨在创建一个摆脱当今互联网基础架构限制的全新网络[2]。2008年, Nick Mc Keown教授提出了Openflow[3]技术, 将传统网络设备中的数据转发功能和控制功能分离, 网络设备仅进行数据转发, 而控制器上集成了网络设备的配置、维护等功能。随着Openflow技术的推广和研究, 软件定义网络SDN (Software Defined Networking) 架构被进一步提出, 用软件模式的控制面代替了嵌入式节点的控制面, 进行集中控制, 为未来网络的发展提供了一个新的研究方向和思路。

本文在SDN架构上研究和实现流量管理应用, 并进行实验环境搭建以及应用场景验证。

1 流量管理应用

1.1 SDN简介

SDN结构把传统网络设备紧耦合的网络架构分拆为应用、控制、数据转发3层分离的体系架构[4], 提供了一种可编程的网络管理模式, 改变了现有的网络架构。SDN结构[5]如图1所示。

1) 数据转发层由支持Open Flow技术的交换机所组成。Open Flow交换机区别于传统以太网交换机, 主要由流表、安全通道、Openflow协议组成。其中, 安全通道是连接Open Flow交换机和控制器的接口。控制器通过接口按照Open Flow协议规定的格式来配置和管理OpenFlow交换机[6]。Openflow协议规定交换机的处理单元由流表构成, 每个流表由多个流表项组成。流表项代表数据转发的规则, 主要包括匹配域、操作、计数器等。其中匹配域包括了数据链路层、网络层以及传输层的大部分标记, 操作表明对匹配成功的数据包执行的动作, 例如转发到某个端口、丢包、修改包头信息等, 计数器用于统计数据流的基本信息。进入交换机的数据包和流表项的匹配域规则匹配成功后, 执行相应的操作并更新计数器。

2) 控制层将传统交换设备中的控制部分抽离出来, 抽象为网络操作系统, 用于集中维护和管控数据转发层的网络设备。控制层通过南向接口 (openflow协议) 管理底层网络设备以及获取设备信息, 并向上层应用提供北向编程接口。

3) 应用层通过控制层的北向接口, 能够利用动态的应用程序配置和网络设备管理, 实现满足不同网络需求的应用程序, 例如, 负载均衡、防火墙等应用, 使网络管理和优化更加灵活、可控。

1.2 技术分析

流量管理可以通过基于SNMP协议的软件测试系统或者专用硬件设备实现[7,8,9]。但是, 利用SNMP协议提供网络运行情况的信息主要集中在2~3层, 无法区分隶属于不同协议的流量。同时, 利用测量设备检测网络状态需要在数据转发设备上添加额外的硬件设备或软件Agent系统, 会增加网络部署的成本。

本文中的流量管理应用是基于SDN的架构上, SDN控制器通过openflow协议采集交换机的流量信息, 并根据网络状态实现管理策略。该应用主要通过获取交换机中流表项计数器的值来得到网络流量情况, 不需要增加专用硬件设备, 可以降低流量管理成本。同时, Open Flow流表项的匹配域不仅包括进出端口、Ethernet源/目的地址、Ethernet类型、vlan号、vlan优先级、IP源/目的地址、IP协议、IP优先级To S位等涵盖2~3层的多数标记, 而且包括TCP/UDP源/目的端口, 因此控制器可以通过计数器得到网络协议栈不同层次的流量信息。

流量管理应用运行在控制器上, 并通过Openflow协议对底层设备进行集中管理, 因此流量管理应用可获得网络全局运行状态, 并依照决策策略通过统一接口管理网络中的节点, 从而可以制定更加合理的管理策略, 更加方便实现。

1.3 模块分析

从实现机制来看, 流量管理应用的主要功能模块有状态检测、流量检测、ACL管控、流量限速和自动决策, 具体设计如图2所示。

1) 状态检测模块

该模块用于检测交换机的连接状态并获取交换机的基本信息, 如版本号、端口状态等。若交换机连接正常, 该模块存储交换机的基本信息并触发流量检测模块, 而当交换机断开连接时, 控制器获取的连接信息为空。

2) 流量检测模块

该模块通过Openflow协议定期地读取交换机中每个流表项的计数器, 得到针对每个表、流、端口、队列的传输数据包数、错误包数、丢包数等, 分析并整理得到基于端口、IP、MAC的流信息并存储到控制器, 计算流量速率。

3) ACL管控模块

根据不同的需求, 在该模块中设置应用层协议相应的优先级以及网络中的总流量上限, 如FTP、HTTP、SMTP等。当网络中的流量突然增加时, 禁止或延缓低优先级业务的实现, 保障高优先级的业务的实现。当网络中的业务数目发生变化时, 可以重新设置优先级, 保证当前网络中优先级最高的业务获得足够的带宽。

4) 流量限速模块

该模块可以添加或者删除基于不同源目的端口、源目的IP、源目的MAC的流量速率上限 (默认上限为交换机端口最大速率) , 并设置对超过上限的数据流所要执行的动作, 如丢包、转发到特定设备处理、延缓发送等。

5) 自动决策模块

该模块可以自动生成合适的流表项, 并通过Openflow协议下发添加、修改或删除流表项的命令。

1.4 工作流程

流量管理应用的基本工作流程如图3所示。

1) 程序启动后, 进行初始化处理。首先控制器检测底层设备的连接情况, 若连接正常, 读取交换机设备信息, 若连接异常, 则删除控制器中有关该交换机可能存在的信息。然后根据读取的交换机设备信息, 下发动作为NORMAL (即正常转发) 的流表项给交换机, 使网络交换设备正常转发数据包。

2) 设置不同应用层服务的优先级、总流量上限、不同流的速率上限以及执行动作。

3) 定期读取交换机中流表项的计数器, 得到数据包统计, 并分类存储到控制器中。

4) 计算网络总流量, 若大于设置的总流量上限时, 禁止优先级较低的应用服务, 即删除交换机中相关的流表项。当网络总流量小于上限时, 恢复优先级较低的应用服务, 即生成相应的流表项并添加到交换机的流表中。

5) 当交换机端口/IP/MAC流的流量速率超过速率上限时, 根据设置的动作生成相应的流表项并下发, 若交换机低于流量上限时, 删除对应的流表项并下发动作为NORMAL的流表项。

2 实验验证

2.1 验证环境

本文主要采用SDN设备部署一个网络实验环境来验证流量管理应用的有效性, 验证环境的基本构造如下所述:

1) 数据转发层

在选择交换设备方面, 采用支持Openflow协议的物理交换机盛科V330[10]。该交换机采用成熟的ToR交换产品硬件平台, 整合开源的Openvswitch (虚拟交换机) , 并在此基础上优化和开放SDK源代码, 具有灵活的架构和强大的处理能力, 支持更为开放的网络环境。连接到交换机的主机设备有四台PC机和一台机顶盒, 其中两台PC机采用Ubuntu 12.04, 两台采用Window 7操作系统;机顶盒是一个连接电视机显示器与外部信号源的设备, 可通过网络进行交互式视频观看、游戏娱乐等。

2) 控制层

控制器对底层设备进行管控, 本文选择Floodlight。Floodlight是使用apache协议的开源控制器, 不仅支持不同协议版本的交换机, 而且可以向上提供rest api接口供应用程序调用控制器中的应用模块, 方便满足不同的网络应用需求。

3) 应用层

实现了流量管理应用的基础功能, 可方便地进行后期更新升级和添加其他功能。

综上所述, 网络实验环境部署如图4所示 (环境配置如下所述) 。

数据转发层

1) 将机顶盒、两台主机 (host1、host2) 、主机host3、主机host4分别连接到交换机S1的1~3号端口, 及交换机2和交换机3, 并将交换机5的端口与传统交换机相连, 使该实验环境中的设备均可以访问互联网。将交换机S1-S5按照图4中的网络结构连接。

2) 将Ixia仪表[12]的1、2号端口与S1的5、6端口相连, 并将Ixia仪表的3号端口与S3的3端口相连, 在主机上安装Ixnetwork软件。

3) 配置host1-host4的IP为10.1.1.6-10.1.1.9, 掩码为255.255.255.0, 网关为10.1.1.1。配置S1-S5交换机IP为10.1.1.15-10.1.1.19, 掩码为255.255.255.0, 网关为10.1.1.1。

控制层

1) 安装Floodlight控制器, 并设置IP为10.1.1.3, 掩码为255.255.255.0, 网关为10.1.1.1。

2) 配置交换机指向控制器的6633端口。

应用层

通过分析Floodlight的源码, 编写流量管理应用程序FlowManger并运行。

2.2 验证结果

场景1 ACL管控

预先设置应用FTP协议的文件传输业务的优先级高于应用HTTP协议的网页浏览业务, 并规定当交换机中的流量大于512 KB时, 禁止主机访问网页, 当交换机中的流量小于512 KB时, 允许主机访问网页。

测试host1可以通过浏览器访问网页, 并且机顶盒能正常观看视频, 然后通过FTP协议从host2下载大型文件, 查看交换机中的流表, 发现添加了一条流表项, 即对协议目的端口为80的数据包做丢包处理。检测host1无法访问网页, 同时机顶盒无法正常打开视频, 而文件下载仍在进行。当下载完成后, 查看流表, 有关流表项已经被删除, 此时host1可以访问网页, 并且机顶盒可以正常打开视频。

在ACL管控场景中, 传统的流量测量主要集中在2~3层的数据包分析, 而基于SDN网络架构的流量管理可以针对应用层端口的流量进行测量、状态分析以及管理, 有效地分配网络资源, 提高网络传输效率。

场景2流量限速

在Ixnetwork上设置从Ixia仪器的1号口发送数据包, 从2号口接收数据包。设置不同源/目的端口、IP、MAC的速率上限, 其中可选择的速率上限有512 kbps、1 Mbps、10 Mbps、100 Mbps、1 Gbps, 通过Ixia表接受端的数据包速率可以验证流量限速的实现。

设置源端口为交换机5号口, 目的端口为6号口的速率上限为1 Gbps, 从Ixia发送速率为150 Mbps的数据包, 并每隔一段时间变换速率上限, 可以从图5中观察到Ixia发送的数据包保持在150 Mbps, 而接收的数据包随着速率上限的不同发生变化。

图5中横坐标表示数据包发送的时间, 纵坐标表示数据包速率, 单位为Mbps, 其中虚线代表发送端速率, 实色线代表接收端速率。

同理, 设置源IP地址为Ixia的1号口IP 10.1.1.9, 目的端口为6号的速率上限为1G, 或是设置源MAC地址为Ixia的1号口MAC, 目的端口为6号的速率上限为1 Gbps。当从Ixia发送速率为150 Mbps的数据包, 并每隔一段时间变换速率上限, 可以观察到接收的数据包随着速率上限的不同发生变化。

在该场景中, 流量管理模块读取2~3层统计信息, 并根据管理策略向交换机下发流表项, 可以同时针对特定交换机端口、IP以及MAC地址的主机进行流量管理, 而传统方法需要下发命令到交换机、集线器、路由器等多个设备, 增加了管理复杂度, 降低了管理效率。

场景3资源分配

控制器根据获得的拓扑结构, 下发流表项到交换机, 使得host1到host3的数据包通过交换机2, 而非交换机3、4。同时设置策略为当交换机2的流量过载时, 限制host1的数据包通过交换机, 并同时允许交换机3、4传输host1发送的数据包。

设置交换机2的端口速率为10M, 观察host1、host2、host3、host4之间均可正常ping通。在交换机2上的host3上传送大量文件到host4, 观察主机发现host1可以ping通host4, 但无法ping通host3。

读取S2的流表项的统计信息, 观察到源IP为10.1.1.6的数据包数目不再发生变化并且丢包率增加, 而在S3和S4上可以观察到有源IP为10.1.1.6的数据包统计信息。

在资源分配场景中, 分布式流量管理是根据局部网络状态分配资源, 可能会产生非最佳分配。而本文的流量管理是基于全局网络状态的集中式管理, 可以根据管理策略寻求到更好的资源分配方式, 提高管理效率。

通过以上三个场景, 可以验证流量管理应用的实现, 同时体现了SDN架构下对底层设备集中管控的特点。

3 结语

基于软件定义网络的流量管理应用有其独特的优势, 一方面, SDN网络的可编程模式具有高度的可扩展性, 流量管理功能的升级更新无需在每个交换设备进行逐个配置, 只需要在控制器上更新策略便可以实现;另一方面, 通过Openflow协议可以获取到多种流的流量信息, 不需要添加额外的测量系统, 降低了系统开销。

上一篇:幸福就在你身边下一篇:社交网站