




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
本 科 毕 业 设 计(论文)题 目:基于SDN的网络带宽保障系统流量分析学生姓名:学 号:专业班级:计算机科学与技术11-1班指导教师:2015年6月14日中国石油大学(华东)本科毕业设计(论文)基于SDN的网络带宽保障系统流量分析摘 要为解决传统网络在发展过程中出现的一系列问题,SDN技术应运而生。由于数据中心数据流量巨大,设备管理复杂,对服务器和虚拟机的快速配置和数据迁移都有较高的要求,SDN的应用可以提高数据交换的效率,增加数据中心可控性。但数据中心一般只尽力转发多种业务,并不为某一业务提供额外的带宽保障。为确保某些关键业务的服务质量得到保障,需要为其进行带宽预留与保障。本课题旨在研究通过SDN控制器利用REST API获取网络信息,并经过处理转化为直观的图形用户界面显示。通过流量监控客户端,用户可直接观察全网拓扑和实时的流量状态,为下达保障策略提供支持。关键词:SDN;流量监控;带宽保障;图形显示Network Bandwidth Guarantee System Based on SDNTraffic AnalysisAbstractIn order to solve a set of problems arising during the process of the traditional network development, SDN technology emerges as the time requires. As data flows are so overwhelming, devices management could be very complicated, and rapid configurations for servers and virtual machines as well as data transfer are all highly required. The application of SDN can improve the efficiency of the data exchange and enhance the controllability of the data center. But generally, data center can only try its best to forward varieties of services, instead of providing additional bandwidth guarantee for a certain one. In order to ensure that the quality of service for some essential businesses can be guaranteed, it needs to reserve bandwidth and guarantee it for them. This thesis is designed to study how to acquire network information through SDN controller using REST API, and transform the information to be displayed in the graphic user interface intuitively after being processed. Users can observe the whole network topology and real-time traffic status directly from the traffic monitoring client, which can offer support to the decision of how to schedule guarantee policy.Key Words:SDN;Traffic Monitoring;Bandwidth Guarantee;Graphic Display目 录第1章 引言11.1 课题背景及研究意义11.1.1 课题背景11.1.2 课题研究意义21.2 课题研究任务与主要内容21.3 论文组织结构2第2章 SDN基本理论知识42.1 软件定义网络(SDN)简介42.2 Floodlight控制器简介52.3 OpenFlow1.3协议简介62.4 Mininet环境简介7第3章 系统需求分析83.1 系统功能性需求分析83.1.1 获取网络信息83.1.2 网络信息的分析与格式化83.1.3 全网拓扑显示83.1.4 流量分析与显示83.2 系统非功能性需求分析93.2.1 实用性93.2.2 可扩展性93.2.3 界面需求93.3 系统开发环境9第4章 系统设计及实现104.1 系统概要设计104.2 系统模块划分114.3 系统工作过程114.4 系统详细设计与实现124.4.1 流量监控分析类图124.4.2 向控制器发出REST请求134.4.3 JSON格式数据的转换144.4.4 显示网络拓扑154.4.5 显示端口流量状态16第5章 系统运行测试175.1 系统测试准备175.1.1 启动Mininet仿真软件175.1.2 启动Floodlight控制器175.1.3 使用putty远程登录Mininet185.2 用户自定义网络拓扑测试195.2.1 自定义拓扑脚本195.2.2 搭建网络拓扑205.2.3 流量监控系统监控情况215.2.4 流量状态真实性检验225.3 Mininet树状网络拓扑测试24第6章 总结与展望266.1 课题研究总结266.2 系统不足之处266.3 收获与体会266.4 课题研究展望27致 谢28参考文献29第1章 引言第1章 引言1.1 课题背景及研究意义1.1.1 课题背景始于1969年的互联网至今已有40多年的历史。它的出现,为来自世界各地的人们进行信息通信、资源共享和实时交流搭建了一个全新的开放平台,对人们的学习、工作、生活等方方面面都产生了深刻的影响。然而,随着互联网应用的日益广泛,网络需要服务的业务类型不断增长,网络的规模也不断扩大,日益变得臃肿。互联网结构和功能的日趋复杂,导致网络的管理难度不断增加,新功能难以被部署到现有网络框架中,即便部署速度也相当缓慢。新需求的不断涌现促使人们开始考虑重新设计网络体系结构。此时SDN的出现为解决传统网络问题点燃了希望1。SDN作为一种新型的网络架构,打破了传统的网络设计理念。SDN具有两个重要的属性:一是实现了数据平面和控制平面的分离,从而实现了逻辑集中式控制;二是开放了网络可编程能力,从而实现了网络的灵活可定义,便于管控2。尽管作为一种全新的网络理念,SDN在实际部署与运营中因缺乏经验而面临种种挑战,但它却为解决传统网络运营中出现的问题提供了新的解决思路。包括网络安全、流量管控、性能优化及QoS在内的多个网络热点问题已成为SDN研究领域的焦点3。数据中心通常会为租户提供多种业务服务。但数据中心一般只尽力转发,并不为某一业务所需的额外带宽提供保障。由于人们在观看网络视频资源、浏览静态网页或收看收听网络直播的过程中,相同的资源内容在网络中重复传输,造成了多媒体流量严重冗余,严重消耗了大量网络带宽资源。当用户对某一特定业务有较高的带宽需求时,其需要不能得到较好的保证,影响所需服务的正常运转4。比如,在召开视频会议时,人们希望对与视频会议相关的流量优先保证其带宽需求,以确保视频会议流畅进行。利用SDN强大的集中管控能力,可以实现对网络中多种类型流量的灵活调度,实现不同优先级的带宽保障,从而有效降低网络中不必要的冗余流量,实现人性化、个性定制的用户体验。1.1.2 课题研究意义在本次毕业设计课题研究中,通过对SDN的理念及其相关技术的学习和应用,对数据中心多种流量中的某种特定业务(如视频会议)的流量提供适当的带宽预留,为良好的服务体验提供保障。通过课题研究,了解SDN的网络架构理念,比较SDN新型网络架构与传统网络架构之间的不同。在具体的系统设计与实现过程中,掌握Floodlight控制器的相关理论知识和模块添加的方式,熟悉Mininet网络仿真环境的使用;学习并熟悉OpenFlow1.3协议,掌握通过RestAPI实现交互的方式;掌握利用JSON处理数据的方法。通过监控网络中各业务流量的实时状态,对网络流量数据的收集和处理,并以图形化的方式将网络拓扑和流量速率直观展现出来,为提高指定业务带宽或限制其他业务流量提供参考,为带宽保障的实现做好准备。1.2 课题研究任务与主要内容本课题将通过设计出一种流量监控与分析系统,对网络中的流量速率情况进行实时的捕捉和分析,以监测其是否达到预设的阈值。当网络中的总体流量超过承载能力,同时又存在某些业务需要优先保障其服务质量的情况时,控制器需要下达某种策略从而优先保证指定业务所需的带宽。这种策略可以是对指定业务的带宽予以提高,亦或者是限制其他类型业务的流量。由此,即可实现对数据中心某一指定业务的带宽予以保障,从而实现网络QoS的实时管控。为顺利完成流量监控分析系统的设计与实现,需要熟悉SDN的基本原理、Floodlight开源控制器的模块架构和使用、OpenFlow1.3协议的传输机制,学会利用Mininet仿真软件搭建网络实验拓扑和模拟环境。通过控制器利用OpenFlow1.3协议收集到的网络信息,分析并计算出交换机的端口速率,将网络拓扑通过图形直观展现出来,同时将端口速率情况通过折线图向用户呈现。图形界面方便后期判断链路占用是否超过阈值,以便下一步流量调度和带宽保障策略的实施。1.3 论文组织结构本篇论文共分为6章。各章节按以下内容组织编排:第1章:引言。本章主要介绍毕业设计课题的研究背景、研究意义、课题研究任务与主要内容并介绍论文的组织结构。第2章:SDN基本理论知识。本章主要介绍毕业设计课题所涉及的SDN基本理论知识,包括SDN基本概念、Floodlight开源控制器、OpenFlow1.3协议、Mininet仿真系统、轻量级数据交换格式JSON等,以及系统实现所需的TWaver开发工具包等相关技术和开发工具。第3章:系统需求分析。本章主要对系统预期的功能需求进行分析,对系统进行概要性设计,并详细介绍各个模块的设计思想。第4章:系统设计及实现。本章主要针对系统的具体设计与实现,对系统的各个功能模块的实现方法进行了详细的阐述与解释。第5章:系统测试。本章主要通过不同的网络拓扑演示系统已有的流量监控和分析功能。第6章:总结与展望。本章主要对毕业设计课题的研究工作进行总结,分析现有系统的优点和不足之处,为后续的完善和优化提供参考。31第2章 SDN基本理论知识第2章 SDN基本理论知识2.1 软件定义网络(SDN)简介SDN全称为Software Defined Networks,即软件定义网络,最初是由美国斯坦福大学提出的一种新式的网络范型。这种新式网络体系结构方式简化了网络操作,将应用与网络服务、设备之间的交互更紧密地结合在一起。SDN通常采用逻辑上的集中式网络控制(通常认为由SDN控制器来实现)。SDN控制器组织并协调应用程序与网络设备之间的交互,促进网络设备间的通信。同时,SDN控制器提供界面友好、双向交互的现代化编程接口,抽象并展现网络操作,实现人性化网络管控5。SDN并不是某种具体的技术。它只是一种网络设计理念,打破传统网络的思维模式,重新规划了网络的各个组成部分。SDN有两个重要的属性:一是通过将数据平面和控制平面的分离,实现逻辑上的集中管控;二是提供开放的可编程接口(通常也称作“北向接口”)实现网络功能的灵活可定义。此外,SDN还具有硬件转发面配置的标准化(通常指南向接口)、集中化的网络控制以及网络业务的自动化应用程序控制等特点6。SDN的基本架构如图2-1所示:图2-1 SDN架构图在SDN架构中有五个主要组成部分:控制器、网络设备、北向接口、南向接口和应用服务。控制器处于架构的核心地位,可控制多台网络设备,一般运行在一台单独的服务器上。网络设备与传统的交换机根据转发表转发数据包不同。传统交换机根据一定的策略生成自身的转发表,当收到数据包时可自行决定如何处理数据包7。而SDN架构中的交换机则是一种“傻瓜式”的交换机,不能自行生成转发表来确定如何转发数据包,必须由控制器通过OpenFlow协议下达一个名为“流表”的表项给交换机,交换机根据流表内容确定处理收到的数据包的方式。南向接口就是控制器与网络设备进行通信的接口。北向接口是控制平面与上层应用服务之间的接口。应用层面的服务不再依赖任何路由协议,用户可自行定义服务类型和方法,以满足特定需求。SDN技术起源于校园网,目前广泛研究并应用于数据中心和企业网络。在安全领域,SDN也日益发挥着重要的作用。2.2 Floodlight控制器简介Floodlight是一款开源控制器,基于Java语言,支持OpenFlow协议。它使用“层次化”架构来实现控制器的功能,并提供了种类繁多的应用,可直接将数据转发、拓扑发现等功能部署到网络中。Floodlight的Web管理界面方便用户查看实时的网络拓扑信息、交换机和主机信息。Floodlight通过向OpenFlow交换机下发流表的方式实现对交换设备的集中控制和管理,从而实现了SDN的数据控制分离的理念。Floodlight整体架构如图2-2所示。图2-2 Floodlight整体架构图Floodlight整体架构由控制器核心功能以及运行在控制器上的应用组成。应用和控制器之间可以通过Java接口或REST API (Representational State Transfer API)交互。从功能的角度看,Floodlight可以视为由控制器核心服务模块、普通应用模块和REST应用模块三部分组成8。开发人员可以根据系统提供的API创建应用,也可以自行添加所需的模块。这种模块化、分层次的部署方式有效实现了控制器的可扩展性。2.3 OpenFlow1.3协议简介OpenFlow是一种新型的网络协议,目前用作控制器和交换机之间的标准协议。支持OpenFlow1.3协议的交换机的组成要素如图2-3所示:图2-3 OpenFlow1.3协议的架构OpenFlow交换机使用基于安全连接的OpenFlow协议与控制器进行通信。OpenFlow引入了“流”的概念。“流”是通过提取每次通信产生的数据分组的共同特征,从而将本次通信的大量数据分组抽象成一个“流”。使用OpenFlow协议,控制器就可以根据某次通信中“流”的第一个数据分组的特征通过协议提供的接口对数据平面设备(即OpenFlow交换机)部署相关策略。这种策略被称为“流表”。本次通信的后续数据分组按照下发到OpenFlow交换机中的相应流表进行匹配、转发,从而实现了软件和硬件的“解耦”,网络设备不再受某种特定网络协议的约束9。这也体现了SDN数据平面与控制平面分离的核心思想。OpenFlow协议支持三种类型的消息:controller-to-switch、asynchronous、symmetric。其中,controller-to-switch消息由控制器发起,用于管理或检查交换机的状态;asynchronous消息由OpenFlow交换机发起,用于将网络事件的更新和交换机状态的改变告知控制器;symmetric消息可由控制器或OpenFlow交换机中的任何一方发起10。OpenFlow1.3协议是OpenFlow1.0协议的演进版本。与OpenFlow1.0不同的是,OpenFlow1.3协议增加了多级流表和组表的概念,还增加了基于流的计量(Meter)和数据包处理的动作类型,同时修改了数据包特征匹配的描述方法(match方法)11。相比之下,OpenFlow1.3协议内容更为复杂,功能也更为强大。2.4 Mininet环境简介Mininet是一种轻量级的进程虚拟化网络仿真工具。通过Mininet,只需要一行简单的命令就能够创建任意一个支持SDN的网络拓扑结构,并进行相关测试,方便灵活12。更为重要的是,通过Mininet验证的网络设计可以轻松迁移至真实的设备环境中,使得为网络添加新功能并予以测试的过程更为便捷,真正实现了理论与实践的无缝衔接13。Mininet主要包括以下几个特性:(1) 灵活性:可通过软件方式快速创建各种复杂的、用户自定义网络拓扑,缩短开发及测试周期,并支持系统级的还原测试。提供Python API,简化使用。(2) 可移植性:Mininet支持OpenFlow、OpenvSwitch等软件定义的网络部件,经Mininet测试过的设计可轻松移植到支持OpenFlow的硬件设备上。(3) 可扩展性:可支持成百上千个节点的网络结构。(4) 真实性:Mininet模拟真实网络环境,运行的协议栈也与实际使用的相同,可运行真实的程序。第3章 系统需求分析第3章 系统需求分析本系统通过向SDN控制器发送REST请求得到网络中与设备、交换机、端口等的相关信息,将得到的JSON格式的网络信息数据格式化,转化成相应的模式,将全网拓扑信息通过图形直观展现出来。同时,通过得到的信息进行流量分析,并将实时的流量状态以图表的形式直观展现给用户。3.1 系统功能性需求分析3.1.1 获取网络信息启动SDN控制器并搭建网络拓扑之后,通过向SDN控制器发送REST请求,得到网络中与设备、交换机、端口、链路等相关的JSON格式的数据,为进一步分析做好准备。所有的请求和接收都是通过HTTP包完成的。3.1.2 网络信息的分析与格式化使用Jackson将通过REST请求得到的JSON格式的数据格式化,转化为相应的模式。转化后的数据被存放在统一的数据结构中,供接下来流量分析和拓扑显示所使用。3.1.3 全网拓扑显示使用TWaver图形界面开发工具包,根据已转换的网络信息数据绘制全网拓扑,以显示网络中的设备和设备间的链路连接信息,并在客户端以直观的图形界面形式展现给用户。3.1.4 流量分析与显示利用格式化后的JSON数据,采用一定的算法计算网络中的交换机每个端口的流量情况。同时设计一个线程作为定时器,每隔5秒向SDN控制器发送REST请求,以便动态获取交换机端口信息,从而实现实时的流量监控。将交换机的端口信息存放在一一映射的数据结构中。当选定某一交换机时,该交换机所有端口的相关信息就会显示在表格中;选定表格中的某一端口,即可在折线图中实时显示并更新交换机端口的流量状态情况。3.2 系统非功能性需求分析3.2.1 实用性数据中心中的多种业务产生的巨大流量极易造成网络的拥塞,使得网络中某些关键业务的带宽需求得不到很好的保障。当某些服务需要额外的带宽时,就要求采取一些限流与优先提供带宽的保障策略,确保服务质量。为了实现业务流带宽实时保障,需要对网络中的流量状态进行实时监控。当网络中出现拥塞,流量达到某一指定阈值时,就可及时采取调度策略,确保网络中的指定业务正常运行。流量监控系统可以为带宽保障策略提供调度依据。3.2.2 可扩展性本系统可以显示全网拓扑和交换机各端口的基本信息及实时流量情况。其信息均是通过向SDN控制器发送REST请求获得的。事实上,REST请求得到的信息有很多,在此只是显示了与流量相关的一些基本内容,系统处于研发的初级阶段。随着学习和优化的不断深入,该系统可扩展成依据不同的需求显示所需信息。3.2.3 界面需求本系统可显示SDN控制器的基本状态信息、全网拓扑和流量实时变化情况,界面简洁明了,用户能够清晰获取所需的各端口的实时流量状态情况。3.3 系统开发环境本系统主要使用Java语言作为主要开发语言。由于该系统并非适用于某一个或某几种特定的拓扑结构,而是适用于任何拓扑架构,为了通过Mininet仿真软件模拟网络环境,需要使用Python语言编写拓扑脚本。Mininet 2.2.0不能够在Windows平台下运行,需要安装在Linux系统中才能支持网络拓扑的搭建。SDN开源控制器Floodlight 1.0支持跨平台运行,在本系统开发中为加快运行效率,将在Windows平台下运行SDN控制器。使用Eclipse 4.4.2软件作为流量监控系统的主要开发平台,在Eclipse中安装swt开发包用作编辑图形用户界面的框架。使用Jackson转换请求到的JSON数据包。使用TWaver图形界面工具包显示全网拓扑。第4章 系统设计及实现第4章 系统设计及实现4.1 系统概要设计SCRAT-Floodlight带宽保障系统中的流量监控模块是前台的客户端,可供用户查看控制器的状态、全网拓扑结构以及各端口的实时流量状态等信息。该客户端采用MVC设计模式进行开发,分为模型(Model)、视图(View)和控制器(Controller)三部分。整个流量监控分析系统分为REST请求模块、JSON转换模块以及用户界面模块这三大主要功能模块。该系统的模块功能图如图4-1所示。模型(Model)控制器(Controller)REST请求模块JSON转换模块视图(View)用户界面模块响应请求人机交互图4-1 SCRAT-Floodlight带宽保障系统模块功能图(1) REST请求模块:主要提供HTTP服务。该模块主要包括GET、POST、DELETE三大请求方式。用户可以在客户端通过该模块向Floodlight控制器发送REST请求,以便从控制器获得JSON格式的数据。这些数据中包含与控制器有关的信息(如控制器状态、控制器模块、控制器中的策略等)以及与设备相关的信息(如交换机、链路、设备、端口等相关信息)。(2) JSON转换模块:该模块用于将通过REST请求从控制器得到的JSON格式的数据转化为响应的模型(包括控制器、交换机、设备、链路、端口等模型),以便在视图中予以显示。(3) 用户界面模块:即MVC设计模式中的视图部分,可通过图形用户界面将控制器状态信息、网络拓扑结构以及交换机端口流量信息向用户直观展现。4.2 系统模块划分通过对系统分析,流量监控分析系统主要分为两大模块:请求与转化模块、图形界面显示模块。进一步进行划分,可分为4个小模块:REST请求、JSON数据转化、显示网络拓扑、显示端口流量。系统的功能模块划分如图4-2所示。流量监控系统请求与转化模块图形界面显示模块REST请求显示端口流量显示网络拓扑JSON数据转化图4-2 流量监控系统模块划分图4.3 系统工作过程流量监控系统的工作过程如图4-3所示。Floodlight控制器启动后,可监控当前网络状态。客户端向Floodlight控制器发送REST请求,以从控制器获得当前网络中的相关信息。这些信息主要是交换机、设备、链路、端口等与设备相关的信息,以JSON格式的数据形式返回至客户端。随后,JSON格式的数据(即JSON模块)将会通过使用Jackson工具进行分析并格式化,转化为相应的控制器、交换机、设备、链路、端口等一系列模型。这些模型将传给相应的视图,用于显示网络拓扑。在进行流量分析时,客户端通过线程,每隔5秒获取交换机的端口信息,将信息转化为图表的形式,这样端口的流量状态就可以显示在图形界面上。客户端向Floodlight控制器发送REST请求用Jackson将得到的JSON格式的数据转换为相应的模式将转换后的数据模型传给相应的视图对端口流量状态进行分析显示网络拓扑设定线程每隔5秒获取交换机端口信息将流量状态显示在图表中图4-3 系统工作流程4.4 系统详细设计与实现4.4.1 流量监控分析类图根据系统预期功能及工作流程分析,本流量监控分析系统的类以及类之间的相互关系如图4-4所示。图4-4 流量监控系统类图4.4.2 向控制器发出REST请求客户端向控制器发出REST请求,以获取JSON格式的全网信息。这种请求事实上是一种HTTP请求,因此在发送和接收过程中,用到了HTTP相应的包。HTTP服务包括GET、POST、DELETE三种主要的请求方式。public static Future getJsonFromURL(final String surl)final Future future = executor.submit(new Callable() Overridepublic Object call() throws Exception try URL url = new URL(surl);HttpURLConnection connection = (HttpURLConnection)url.openConnection();connection.setRequestMethod(GET);connection.setRequestProperty(Accept, application/json);connection.setDoOutput(true);connection.setDoInput(true);/send requestInputStream inputStream = connection.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream,Charset.forName(UTF-8);String json = readAll(reader);inputStream.close();return json; catch (IOException e) / TODO: handle exceptionSystem.out.println(Failed to deserialize data from URL: + surl);e.printStackTrace();return null;);return future;InputStream inputStream = connection.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream,Charset.forName(UTF-8);String json = readAll(reader);inputStream.close();return json; catch (IOException e) / TODO: handle exceptionSystem.out.println(Failed to deserialize data from URL: + surl);e.printStackTrace();return null;);return future;4.4.3 JSON格式数据的转换JSON格式的数据转换为相应的模型主要是利用Jackson框架实现的。controller.util包中包含JSON的格式化工具Jackson。controller.json包通过调用controller.util中的Jackson工具,将从控制器中得到的JSON格式的数据进行格式化,转化为model(模型)中对应的数据结构。定时器将控制每隔5秒向控制器请求交换机信息以便及时更新。public static List getLinks()throws IOExceptionif (floodlightProvider.getController().getIP()=null|floodlightProvider.getController().getOpenFlowPort()=-1) System.out.println(Error,Controller IP or Port not Set!);return null;String url = http:/ + floodlightProvider.getController().getIP()+ : + floodlightProvider.getController().getOpenFlowPort()+ /wm/topology/links/json;future = HTTPUtil.getJsonFromURL(url);List links = new ArrayList();try String jsonlink = (String)future.get(5, TimeUnit.SECONDS);以将JSON数据转化为链路模型为例:jsonArray = new JSONArray(jsonlink);for(int i = 0;i jsonArray.length();i+)jsonObject = jsonArray.getJSONObject(i);Link link = new Link();link.setSrcSwitch(jsonObject.getString(src-switch);link.setSrcPort(Integer.parseInt(jsonObject.getString(src-port);link.setDstSwtich(jsonObject.getString(dst-switch);link.setDstPort(Integer.parseInt(jsonObject.getString(dst-port);link.setType(jsonObject.getString(type);link.setDirection(jsonObject.getString(direction);links.add(link); catch (InterruptedException e) / TODO: handle exceptione.printStackTrace(); catch (TimeoutException e) / TODO: handle exceptione.printStackTrace(); catch (ExecutionException e) / TODO: handle exceptione.printStackTrace(); catch (JSONException e) / TODO Auto-generated catch blocke.printStackTrace();return links;4.4.4 显示网络拓扑转化后的数据模型将存储在一个映射的数据结构中。显示网络拓扑采用的是TWaver图形界面开发工具包,以及swt编程框架。以显示交换机为例:switchs = floodlightProvider.getSwitches(true);Map switchmap = new HashMap();for (int i = 0; i switchs.size(); i+) Node sw = new Node(switchs.get(i).getDpid();sw.setName(switchs.get(i).getDpid();sw.setImage(/switch1.png);double x = 30+Math.random()*400;double y = 30+Math.random()*400;sw.setLocation(x, y);switchmap.put(switchs.get(i).getDpid(), sw);switchsMap.put(switchs.get(i).getDpid(), switchs.get(i);topologybox.addElement(sw);4.4.5 显示端口流量状态当显示出网络拓扑时,端口统计表和折线图中不会显示任何有关交换机端口和流量速率的信息。而当点击拓扑中的某个交换机时,系统将在端口统计表中显示该交换机所有端口的信息(包括端口号、端口状态、发送和接收流量情况、丢包数以及错误信息等),并在折线图中默认显示该交换机的1号端口的实时流量速率状态;同时,系统将会得到该交换机的Dpid(OpenFlow交换机与控制器交互所产生的ID号,如00:00:00:00:00:00:00:01)。由于在格式化为相应模型时创建了一个链表,此时就可以根据交换机的Dpid从链表中找到相应的交换机端口及对应的端口信息,并将相关信息显示在表格的相应位置中。与此同时,系统还会将得到的相关数据进行处理。由于客户端每隔5秒便向控制器请求交换机端口信息,因此,系统将会用当前得到的字节数减去上一次得到的字节数,乘以8再除以1024,再除以时间,即可得到单位为Kb/s的端口速率信息。当选择表格中的某一端口时,将根据该端口的流量速率信息相应显示在折线图中。第5章 系统运行测试第5章 系统运行测试本课题所设计的基于SDN的网络带宽保障系统,其流量监控分析部分可获取全网拓扑信息并通过图形界面予以显示。同时,针对网络中交换机各个端口的流量状态信息也会进行实时的监控和显示。该系统并非针对某一或某些特定拓扑而设计。它适用于任何类型的拓扑,包括Mininet自定义拓扑以及其他各种或简单或复杂的用户自定义拓扑。下面将分别针对用户自定义拓扑和Mininet内置树形拓扑进行系统测试。5.1 系统测试准备5.1.1 启动Mininet仿真软件首先在VMware Workstation中启动Mininet仿真软件(Mininet只能在Linux平台下运行)为搭建网络拓扑做好模拟网络环境的准备。登录用户名和密码均为mininet。登录成功的界面如图5-1所示。图5-1 Mininet启动成功界面如果需要清除之前的配置操作,或Mininet在运行过程中出现故障需要恢复,可使用sudo mn c命令完成。5.1.2 启动Floodlight控制器Floodlight开源控制器可以跨平台运行。本课题中为加快运行速度,选择在Windows平台下运行Floodlight控制器。在命令提示符(cmd)中,进入floodlight文件夹中,运行java -jar target/floodlight.jar命令,启动floodlight控制器。如图5-2所示。图5-2 Floodlight控制器启动界面Floodlight控制器启动之后,可以监控当前网络的状态。用户就可以通过客户端向控制器请求获得网络信息。控制器会将监控到的网络中的各种信息,包括设备、链路以及自身的状态信息返回给客户端。5.1.3 使用putty远程登录Mininet使用putty远程登录Mininet,就可以利用Mininet仿真软件模拟网络环境,搭建网络拓扑。首先需要在Mininet中使用ifconfig命令获取Mininet的IP地址。然后启动putty,远程登录到Mininet,如图5-3所示。进入Mininet登录界面后,用户名和密码均为mininet,由此便可远程登录至Mininet进行后续操作,如图5-4所示。图5-3 通过putty远程登录Mininet图5-4 成功实现远程登录Mininet5.2 用户自定义网络拓扑测试5.2.1 自定义拓扑脚本class MyTopo( Topo ): Simple topology example. def _init_( self ): Create custom topo. # Initialize topology Topo._init_( self )此处将使用Python语言自定义一个由两个交换机互连,每个交换机各连一台主机的网络拓扑(文件名为topo-2sw-2host.py)。网络拓扑脚本为: # Add hosts and switches leftHost = self.addHost( h1 ) rightHost = self.addHost( h2 ) leftSwitch = self.addSwitch( s3 ) rightSwitch = self.addSwitch( s4 ) # Add links self.addLink( leftHost, leftSwitch ) self.addLink( leftSwitch, rightSwitch ) self.addLink( rightSwitch, rightHost )topos = mytopo: ( lambda: MyTopo() ) 将该拓扑脚本文件通过WinSCP复制到远程Mininet中。5.2.2 搭建网络拓扑在从putty远程登录到Mininet的终端中,进入到存放自定义拓扑的目录文件夹下,使用sudo mn -custom topo-2sw-2host.py topo mytopo -controller=remote, ip=2, port=6653 switch ovs, protocols=OpenFlow13命令生成自定义网络。其中IP地址为Windows系统主机的IP地址。成功创建网络且网络畅通的运行结果如图5-5所示。图5-5 创建自定义网络5.2.3 流量监控系统监控情况启动Scrat-Floodlight网络带宽保障平台,观察控制器的状态、网络拓扑情况及端口流量状态。平台启动界面如图5-6所示:图5-6 Scrat-Floodlight启动界面Floodlight控制器的IP地址可以是Windows主机的IP地址,也可以是本地环回地址。进入系统之后,在“控制器”标签,可以看到控制器的主机名、QoS状态、加载的模块等控制器状态信息,如图5-7所示。图5-7 控制器状态信息在“网络拓扑”标签中,可以看到用户自定义的网络拓扑结构。单击拓扑中的交换机,右侧将显示交换机各端口的相关信息,包括连接状态、发送和接收流量、丢包数及错误信息等。选定某个端口,折线图中将显示实时流量状态,每隔5秒更新一次。默认情况下将显示选定交换机端口1的流量状态。如图5-8所示。图5-8 网络拓扑与流量状态显示5.2.4 流量状态真实性检验为了验证该系统显示的流量状态信息是实时可信的,我们将采用iperf网络性能测试工具测试系统的真实性。iperf可以测试带宽的最大性能,可根据需要进行调整14。首先在Mininet端使用XTerm启动两个独立的主机终端h1和h2,如图5-9所示。图5-9 xterm启动主机终端启动后将出现两个主机节点的终端,用来输入输出。如图5-10所示。图5-10 主机终端然后在主机1中使用iperf语句向主机2发送测试流量。测试语句为iperf u c i 1 t 120 b 10M p 9000。该命令可使主机作为客户端连接到的服务器端,并在120秒的时间内向服务器端发送UDP测试数据包(使用UDP端口9000)。测试使用的带宽为10Mbit/s,且每隔1秒输出测试报告。产生运行界面如图5-11所示。图5-11 iperf网络性能测试此时观察流量监控状况,将会发现流量保持在10M左右。这可以说明该流量监控系统的检测结果是实时的,并且是真实可信的。监测结果如图5-12所示。其中绿色为端口1发送流量的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- IL4I1-IN-1-生命科学试剂-MCE
- 安全培训效果评审办法课件
- Hsp90-IN-41-生命科学试剂-MCE
- Herniarin-Standard-Methylumbelliferone-Standard-生命科学试剂-MCE
- HBeAg-ligand-1-生命科学试剂-MCE
- 小学医疗安全知识培训课件
- Glycocholic-acid-13C2-d4-生命科学试剂-MCE
- 2025年HED-系列厚膜阴极电泳涂料项目建议书
- 2025年宁波市鄞州区面向社会公开招聘社区专职工作者55人考前自测高频考点模拟试题及答案详解(网校专用)
- 快乐野营周记作文(14篇)
- 【精品】2020年职业病诊断医师资格培训考试题
- 五年级《欧洲民间故事》知识考试题库(含答案)
- 派车单(标准样本)
- 少先队大队委申请表
- 浦东机场手册
- 柴油机负荷特性曲线比较课件
- JGJ保温防火复合板应用技术
- 《认识液体》-完整版PPT
- 《跳长绳绕“8”字跳绳》教学设计-小学《体育与健康》(水平二)四年级上册-人教版
- 幼儿园绘本:《闪闪的红星》 红色故事
- 小学生符号意识与模型思想的发展与培养
评论
0/150
提交评论