所以,在今后的工作中还需多向领导、同事虚心请教学习,要多与大家进行协调、沟通,从大趋势去思考、去谋划、取长补短,提高自身的工作水平;在每一件事情做完以后,要进行思考、总结,真正使本职工作有计划、有落实。尤其是要善于自我反省;要爱岗敬业,勤劳奉献,进取主动开展工作,摈弃浮躁等待的心态,善谋实干,肯干事,敢干事,能干事,会干事;平时需多注意锻炼自我的听知本事。在日常工作、会议、领导讲话等场合,做到有集中的注意力、灵敏的反应力、深刻的理解力、牢固的记忆力、机智的综合力和精湛的品评力;在办事过程中,做到没有根据的话不说,没有把握的事不做,不轻易许愿,言必行,行必果。一个半月的实习期,一晃眼就过去了,最深刻的体会就是现实跟书本的巨大差异,一件简单的看似事情,真正做起来,需要的却是很多的时间和精力。原先的我们,几乎都视书本上的资料为真理,很多东西都未曾付诸实践过,仅有真正去做这件事情的时候,才会亲身体验到实际的难度有多大,也才会从中意识到自我本事的欠缺和知识的匮乏。经过这次实习,也使我从另一个视角开阔了视野,增长了见识,同时也在实践中积累了各方面的工作经验,为不久之后正式步入社会的自我,做好一个万全的充足准备。
此外,我还结交了许多朋友、教师,我们在一齐相互交流,相互促进。因为我明白仅有和他们深入接触你才会更加了解会计工作的实质、经验、方法。为我们以后进一步走向社会打下坚实的基础。在这次的社会实践中,让我学到了很多在课堂上根本就学不到的知识,打开了视野,增长了见识,也改掉了很多毛病。明白挣钱的不容易,工作的辛苦,与社会的复杂多变。而为了适应社会,我们要不断的学习,不断的提高自我,在实践中锻炼自我,使自我在激烈的竞争中立于不败之地!
篇五:实习报告 篇五
一、概述
2015年10月份我偶然参加了在南京江宁无线谷举办的一次SDN交流研讨会,使我对软件定义网络(SDN)这种新型网络架构有了初步了解,它有望提高网络性能、灵活性和可管理性,实现网络革命并带来新一波应用服务创新,尤其是在网络安全方面,SDN也有新的尝试,例如在对抗DDoS攻击上已经有了实际的案例。浙江大学新一代网络技术实验室,主要研究方向是下一代网络体系架构,可重构网络,拟态计算与网络安全,网络主动防御技术,其中就有关于SDN的项目在进行,我参加过他们的夏令营,于是决定申请为期3周的实习,进一步学习SDN的应用和开发,这将对我的专业技能有所帮助,使我对网络和安全的了解突破现有观念的限制。
传统网络效率低,难以扩展,耗费大量时间和资源并且不能支持灵活的运营。在多数情况下,所有网络情报遍布在采用标准化协议的物理交换机和路由器上。网络设备的配置主要是对每个交换机进行独立的配置,结果造成网络架构极其复杂。为了实施某个变化,网络操作员必须对每个交换机或路由器重新配置路由协议,需要耗费大量时间,特别是对于大型网络和数据中心来说,这个过程非常类似于利用凿子在石板上写书,如果出现任何错误,就必须在另外一个石板上重新开始写,非常繁琐。
SDN能够高效地把网络数据流处理从控制数据流的逻辑和规则中分离出来。这让运营商和企业能够控制管理自己的数据,从而实现能够实施不同规则和路由的能力,包括决定哪些类型的数据在本地而哪些类型的数据在远程处理。通过集中地查看整个网络架构,客户能够相应地调整网络以满足业务需求。更重要的是,它让网络运营商和厂商能够在实际网络环境中对网络优化的想法和战略进行实验,而不影响当前的数据流。
二、实习内容及过程
1、软件定义网络(SDN)的初步学习
SDN核心思想是通过管控软件化、集中化,使网络变得更加开放、灵活、高效。具体表现为将网络的控制平面与转发平面(即数据平面)相分离:在控制平面为用户提供标准的编程接口,便于集中部署网络管控应用;转发平面仍保留在硬件中,通过标准协议接口(如OpenFlow)接收并执行转发策略。如果将网络中所有的网络设备视为被管理的资源,那么参考操作系统的原理,可以抽象出一个网络操作系统的概念,这个网络操作系统(即控制层)一方面抽象了底层网络设备(即数据层)的具体细节,同时还为上层应用(应用层)提供了统一的管理视图和编程接口,如图1所示。这样,基于网络操作系统这个平台,用户可以开发各种应用程序,通过软件来定义逻辑上的网络拓扑,以满足对网络资源的不同需求,而无需关心底层网络的物理拓扑结构。
转发层:底层网络设备的工作就是单纯的数据、业务物理转发,以及与控制层的安全通信。
控制层:控制器(即Controller),旨在集中管理网络中所有设备,虚拟整个网络为资源池,并根据用户不同的需求以及全局网络拓扑,灵活动态的分配资源。
应用层:通过控制器提供的编程接口对底层设备进行编程,把网络的控制权开放给用户,开发各种业务应用,实现丰富多彩的业务创新。
控制层和转发层之间的接口界面被称为“南向接口”,网络设备状态、数据流表项和控制指令都需要经由通信协议传达,实现控制器对对网络设备的管控;而目前业界比较看好的是ONF主张的Openflow协议。应用层和控制层之间的接口协议称作北向接口北向接口的目标是使应用层的网络应用具备顺利调用技术设施层的网络视图抽象和网络技术能力。当前北向接口还处于百家争鸣的阶段,不同厂商和科研机构设计提供的北向接口都不尽相同,没有一个业界公认的统一标准。
2、实验平台搭建
对应SDN的三层架构,实验平台也主要包括三部分:控制器(opendaylight,以下简称odl),数据转发层(mininet),应用开发(eclipse)。
(1)odl controller
环境需求:Ubuntu 14.04虚拟机, JVM 1.7+,Maven 3.04+具体步骤:
安装Java环境:
sudo apt-get install openjdk-7-jre
sudo apt-get install openjdk-7-jdk
安装maven:sudo apt-get install maven
用mvn -version查看版本信息:
运行controller:
下载opendaylight helium版本的源码,进入opendaylight文件夹,修改run.sh权限:chmod 777 。/run.sh
执行。/run.sh
直到出现initialized successfully才算运行成功,结果应该出现osgi命令:
每次开机都要执行。/run.sh启动控制器。
打开浏览器,输入:http://controller ip:8080,进入opendaylight的登陆页面,用户名和密码都是admin。
(2)mininet
环境要求:ubuntu14.04虚拟机
具体步骤:
下载源码:git clone gi
进入mininet文件夹,安装mininet:。/util/install.sh [options]这里典型的[options]主要有下面几种:
? “-a”:完整安装包括Mininet VM,还包括如Open vSwitch的
依赖关系,以及像的OpenFlow Wireshark分离器和POX。默认情况下,这些工具将被安装在你的home目录中。
? “-nfv”:安装Mininet、基于OpenFlow的交换机和Open
“-s mydir”:在其他选项使用前使用此选项可将源代码建立vSwitch。
在一个指定的目录中,而不是在你的home目录。
这里选择完全安装:。/util/install.sh -a
安装完成后进行简单的测试:sudo mn
成功的结果应该是这样的界面:
(3)Eclipse配置
ODL不能使用默认jre(eclipse/jre),应该手动添加JDK-7:
主菜单Window——Preferences: Java——Installed JREs——Search Standard VM——JRE name: JavaSE-1.7 (搜索到后手动双击修改名称,以便适配)。JRE home必须要在jdk子目录下,如E:Toolsjdk7u25jre,最后添加这个jre.
还要导入opendaylight源码中主要的模块:file——imporrt——existing maven projects,需要导入的主要模块有:forwarding,hosttracker,switchmanager,topologymanager等,根据你编写的程序功能而定。
3、 SDN控制器OpenDaylight的开发学习
总体来说,OpenDaylight的二次开发可以分为以下三个层面:
基于OpenDaylight REST APIs的上层网络应用开发基于SAL内核相关服务的控制器组件与上层网络应用开发基于SAL内核相关服务的南向协议插件开发与上层服务接口开发
当然,如果进行更具体的划分,每个层面还可以划分出更多的开发方向,但是就大的开发方向来说,主要使用以上三种开发模式。
我主要学习了第2种方式,基于SAL内核相关服务的控制器组件与上层网络应用开发方式一般的应用场景是上层网络应用程序需要借助已有的SAL相关服务及南向插件/协议实现某些特定的功能,而该功能并未由OpenDaylight控制器给出REST API。这种方式相对来说更可以称的上是OpenDaylight的二次开发。在介绍具体内容之前,首先需要了解以下储备知识:
OSGi与OSGi组件:OpenDaylight平台的后台。为整个工程项目提供了模块化管理的方式,即OSGi组件。每个组件可以实现某些特定的功能,并加载到工程的运行环境中。
Maven工具:Maven工具是用来实现对于OpenDaylight整个工程项目进行管理控制的工具。可以用Maven生成不同的项目,不同的组件。每一个Maven项目包含一个项目控制文件pom.xml,一个src文件夹,一个test文件夹。通常pom.xml文件使用结构化的文档来对整个项目的属性配置、外部依赖、编译进程与外部输出等进行设置,实现了工程的自动化管理。在src文件夹内包含项目或组件相关的源程序,test文件夹中包含相关测试程序。Maven是该小节所述的开发方式的基础,读者可以参考官方网站的文档进行学习。
Apache Karaf:Karaf工具是基于OSGi的OpenDaylight特性容器,用于实现OpenDaylight各功能组件的热插拔。
基于SAL内核相关服务的控制器组件与上层网络应用开发需要借助于OpenDaylight开发平台已经实现的模块与组件,调用其Java APIs以帮助实现我们所需要的功能。
4、基于OpenDaylight进行模块开发
这部分我做了很多分析和实验,例如使用odl horizon运行云主机,mininet创建自定义拓扑、wireshark抓包实验分析openflow协议中控制器与交换机的通信过程等等,对网络架构、数据结构、开发方法流程有较为全面的掌握之后,我和小组其他成员合作,编写了一个控制器组件(bundle),主要是完成SDN中IP地址跳变和路径跳变的功能。

