基于BS的网络设备模拟器设计和开发
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于BS的网络设备模拟器设计和开发
基于B/S的网络设备模拟器设计和开发
张展1 引言
随着计算机网络的高速发展,对各类网络人才的需求使得各类网络培训蓬勃发展。其中的网络设备操作培训需要使用昂贵的网络设备,这无论对培训机构还是对培训学员都是沉重的经济负担。用软件来模拟网络设备的工作过程是解决问题的途径之一。目前已经有了很多网络设备模拟器,其中比较好的有针对Cisco 的网络设备模拟器(如:NetSim) 和针对华为的网络设备模拟器( 如: Rou2teSim) ,前者的功能齐全,针对性强,而后者只能限于网络初学者,功能较为简单。这些网络设备模拟器多数是单机版的形式,并只针对一种类型的设备,常用于指定企业上岗培训。本设计根据高校计算机网络实践教学和培训的实际,设计开发一种基于B/ S 结构的网络设备模拟器,以实现多用户的同时使用和协作学习。模拟器还能实现同种类型设备的不同型号(CISCO ,华为等) 的互连和指令支持,实现通用设备,有利于培训学员全面掌握网络设备操作技能。
2 模拟器系统分析与设计
2. 1 模拟器概述
网络设备模拟器的是一种通过计算机软件技术模拟现实中的各类网络设备及其操作。利用软件进行模拟可以让学员在计算
机终端上完成模拟多台路由器、交换机的工作,而不用像在真实实验环境中那样不断地往返于不同设备间,频繁地切换端口接线,方便了网络实践课程的教学。另外用软件进行模拟,省去昂贵的设备采购和维护费用,节约了教学成本。
目前市场上的网络设备模拟器种类繁多,制作技术和难度也繁简不一。如华为的网络设备模拟器,他可支持的技术从以太网接入、各种路由协议的配置到安全认证非常全面,而模拟出的设备可以是一台,也可以是几十台,有时所模拟出的网络拓扑结构还可以达到电信级的规模。但他们同时存在着一些问题:首先不同厂商所开发的网络设备模拟器都是针对本产品的模拟,通用性上存在不足;其次都采用单机版结构,在一定程度上降低了可控制性,不利于分散培训;最后就是现有模拟器的可扩展和自配置性差,像华为模拟器就不允许用户自添加一些命令规则。
因此,针对网络培训需求,设计开发了基于B/ S模式的、能通用设备的、可扩展的网络设备模拟器。
2. 2 系统结构
模拟器系统采用浏览器/ 服务器(Browser/ Server) 架构(如图1) 。整合Web 210 技术,体现富互联网应用(RichInternet Application ,RIA) 思想,运用前台的Flash 应用程序与用户交互,丰富用户体验,增强系统可用性。后台从逻辑功能上分为Web 服务器和J ava 应用服务器:Web 服务器主要响应用户的Web 请求,包括注册、登录等;J ava应用服务器主
要响应前台Flash 播放器的XML Socket 通讯请求、通过调用专家知识实现指令解析、生成连通信息并返还给前台客户端。专家知识库系统是建立的针对特定网络设备的指令知识库,通过XML 技术和正则表达式技术对指令格式和领域知识进行形式化,同时建立知识库维护子系统,主要负责知识的维护和更新。
2. 3 主要问题和流程
网络设备模拟器的设计和开发需要解决以下问题:
(1) 网络设备指令格式和领域知识的形式化和正则表示,形成指令库,并能实现指令的动态增删。
(2) 后台仿真引擎各功能组件的形式化描述、建模,引擎的设计开发;
(3) 前台设备隐性连接信息的提取,信息描述的传递,相应XML 文件的自动生成等;
(4) 基于XMLSocket 的前后台通讯协议和功能实现。相应的功能实现流程如图2 所示。
3 模拟器开发
3. 1 技术路线
从系统结构图和功能实现流程图中可以看出,模拟器开发中最重要的部分在于前台用户交互界面的设计和实现、后台知识库的建立、命令解析和处理功能的实现以及前台和后台的实时通讯。为此,我们采用了Flash + XML+ Application 的系统架构,利用RIA 技术提高用户的操作体验;利用跨平台的J ava 语言来编写仿真引擎,检索设备指令知识库;利用Flash 的ActionScript 提取设备连接信息,自动转换成XML 文件来进行信息的传递。
(1) 基于Flash 的前端表现技术
网络模拟器前端主要展现命令的输入,相关信息的提示,模拟各个网络组件的拖动、组合等操作,并且要具有与后台通信的能力。本着美观易用的目标, 我们选择了Flash 来展现人机交互。引入RIA 技术,提高用户的网络操作体验。(2) 基于J ava 的后台实现技术网络模拟器的核心功能由后台处理程序完成,主要完
成命令解析、命令处理、与前端通信等功能,因此选择一种易使用、开发效率高、网络处理能力强、XML 处理能力强的语言是有必要的,最终我们选择了J ava 。J ava 应用程序运行在异质的机器、异质的操作系统之上,通过TCP/ IP进行信息的交流;J ava 应用程序之间既可以交换消息,也可以交换程序(如一个applet ) ;J ava 的开源特性又为组件带来更多的可选择性, 在对XML 处理上, 既可以选择JDK自带的处理包,也可以采用开源包,因此在一定程度上具有比较多的可选择性。
(3) 基于XML 的信息通信技术
在网络设备模拟器的实现过程中,涉及到后端服务器和前端Flash 通信的要求,也就是要求基于J ava 的应用要和基于Flash 的应用通信,如何表示通信信息的约定是一个重要的问题,这个通信约定必须是被双方认可并能识别,XML 正是这样一种信息表示载体。XML ( Extensible Markup Language ,可扩展的标记语言) 是一套定义语义标记的规则,这些标记将文档分成许多部件并对这些部件加以标识。在网络设备模拟器的通信约定中首先定义一系列通信协议,这些协议以XML 形式表示,接受端在接收完通信协议后用XML 解析器解析XML 协议,这样就能很好的识别各种情况。因此,XML在这里作为连通前端和后端的桥梁。
3. 2 RIA 技术
考虑到C/ S 架构在部署和更新方面的缺点,我们使用了B/