基于互联网的计算机网络实验体系的研究与实现*
2014-03-21吕书波葛洪芳
吕书波,葛洪芳
(河南机电高等专科学校 计算机科学与技术系,河南 新乡 453000)
1 引言
计算机网络的实验大致以两种形式开展,一种是用模拟器完成虚拟的网络实验,另一种是在实验室使用真实设备完成。
用模拟器来完成网络实验可以节省大量网络设备的购置费用和实验的准备,学生也可以随时进行实验。但是模拟器的功能和真实的网络设备有一定的出入。同时,学生缺乏对真实设备操作的感受。所以在有条件的情况下,学生最好能使用真实设备完成实验内容,模拟器可以作为辅助手段帮助学生理解相关命令的使用。
由于课程设置、实验室管理和实验准备的原因,造成了学生感觉实验时间不够,而实验室又长时间空置的矛盾。将实验室改造为24小时运转的自动实验平台,学生通过互联网使用实验室资源,可以很好地化解这种矛盾,使学生和教师都可以通过远程实验的手段利用真实设备完成学习或教学内容。
2 相关研究工作
随着网络技术的发展和现代科学研究的需要,突破传统的实验和科研模式,创建分布式网络实验平台是必然趋势。国内外的研究人员已经对网络实验室进行了大量的研究,比较著名的是麻省理工学院(MIT)的iLab[1]项目和欧盟有法国、西班牙、德国、挪威、希腊等8个国家的9所高校参加的eMerge[2]项目。这些项目旨在建立一个通用的实验平台,以此为相关研究人员提供相应的实验服务,并且实现资源和数据的共享和交互。
同时,对虚拟技术在实验中的应用,也进行了大量的研究。文章3中就提出了使用NS实现计算机网络虚拟环境架构的方法。文章4和文章5中对借助Web实现对网络实验的远程监控的方法进行了解释。
3 计算机网络实验管理的分析
计算机网络实验有自身的特点,同时要考虑实验室网络设备的公用属性。所以计算机网络实验有以下特性:
1)独占性。为了避免混乱,通常的网络设备配置是不允许两个人同时进行的。因此在任何情况下进行的计算机网络实验,一个设备只能由一个用户在特定时间进行配置。
2)关联性。通常的计算机网络实验都需要使用多个网络设备搭建模拟的网络环境,因此,在实验中需要对多个网络设备进行相关联的特定配置,才可以使计算机网络按照要求运转。
3)限制性。由于实验设备公用的性质,通常一个实验需要在一定的时间内完成,这样才不会影响其他人的实验需求。
在将实验延伸到互联网的过程中,首先要将原有实验室改造为适合互联网使用的平台,设计合适的拓扑连接,满足日常实验所需,如图1所示。同时设计能够满足自动管理的实验管理平台,该平台必须考虑上文所述计算机网络实验的三个特性。远程计算机网络实验管理平台需要实现以下功能,以满足上述计算机网络实验特性的要求。
图1 改造后的计算机网络实验室结构
1)实验预约功能:该功能是针对独占性和关联性设置的。用户在实验前需要在网站上进行预约。预约包括实验时间、实验项目和实验人员。
2)定时功能:为了保证大量用户都有机会进行实验,需要对每次实验的时间进行限定,这项功能满足的是限制性要求。
3)配置文件存取功能:在存在预约和定时的情况下,可能存在用户的实验没有完成,但时间已经用完的情况,这时用户可以将自己所做的配置保存起来。考虑到用户数量比较大,而网络设备的存储器容量较小的情况,用户的配置文件不宜保存在设备上,而是要将其从设备上下载到服务器上。当用户再次登录进行配置时,可以将该配置文件上传到网络设备上,并设置网络设备按照该配置文件启动,从而使用户可以分多次完成一个实验。
4)远程配置功能:远程配置是远程网络实验管理平台的核心功能,该功能主要完成命令和反馈的转送。首先对客户端发出的命令进行解析,然后将该命令转送到对应的设备;对于从设备发送来的响应,则要转送到相应的客户。
5)日志功能:出于安全的考虑,需要将用户的实验情况用日志的方式记录下来,便于日后的管理。
6)管理实验内容:提供灵活的实验内容定制功能,包括定义每个网络实验所使用的实验设备,每个实验设备在实验开始时的初始配置,在实验完成后应有的正确配置,并可以对这些已定义的网络实验进行分类,组成不同的实验集,便于管理。
7)管理实验课程:提供管理学员信息和实验课程的功能,包括录入学员信息,定义实验课程,为学员指定应完成的所有实验,查看和管理学员的实验结果和成绩等。
4 远程实验管理平台的体系结构
为完成上述的相关功能,计算机网络远程实验管理平台由客户端的浏览器、服务端的Web Server和应用程序服务器三个部分组成。其构成如图2所示。各部分的功能如下:
图2 管理平台体系结构
Web Server:Web Server负责客户端的预约、登录和JAVA Applet程序的下载。
Client:客户端的浏览器负责登录 Web Server服务器,并从该服务器下载JAVA Applet程序,客户端通过该程序与应用程序服务器进行通信。
Application Server:应用程序服务器在接到客户端的请求之后,负责完成用户的登录,以及从数据库中提取该用户的配置文件,并导入对应的网络设备。然后从客户端接收配置命令,再用Telnet的方式与网络设备进行通信,并将反馈的结果转发给客户端。当客户端退出或实验时间用完时,将用户配置文件存入服务器,并将设备恢复到出厂设置,为下一用户的使用做好准备。
5 系统的详细设计
以上功能用C/S模式可以很容易实现,但是在管理方面比较困难,比如客户端的更新。为此,本文使用B/S与C/S结合的混合通信模式,简化客户端的软件,使客户端只要有浏览器即可,所有的应用逻辑都在服务端。
服务端的程序分为两个部分,一个部分是面向用户的Web Server程序,另一部分是面向设备的JAVA Application程序,主要利用Telnet进行配置。
用户和服务器之间使用JAVA Applet和Application进行通信。Application和网络设备之间使用Telnet进行通信。整个系统应该明确的是Application虽然起到了配置代理的作用,但是它的功能不仅仅是代理,还要负责完成客户登录、计时、配置文件存取和日志记录等相关的管理工作。
5.1 客户端登录
客户端要完成实验,首先需要获取能够与Application通信的Applet,因此首先要登录 Web Server,获取需要的Applet,然后通过Applet登录Application服务器,实现远程配置网络设备的目的。其流程如图3所示。下载后的Applet包括三个主要部分,如图4所示,分别是拓扑图区域,实验实况区域和按钮控制区域。
图3 客户端登录流程
图4 客户端界面布局
拓扑图的用途有两个,一个是显示实验的拓扑,另一个是作为实验设备切换的途径,用户可以通过点击不同的设备,从而切换不同的设备,相当于将配置线在各设备之间进行切换。
实验实况区域同样有两个作用,一个是显示网络设备对命令的响应,另一个是将用户的命令传递到服务端的Application。
按钮控制区域布置有相应的按钮,主要完成配置文件的存储和提取。
这三个部分所实现的功能都需要和服务端的Application程序进行通信,由Application对相应的设备进行操作。
5.2 服务端与网络设备通信
在接受客户端请求之后,Application需要与网络设备进行通信,完成用户的配置,并将配置情况反馈到客户端。考虑到服务端需要与多个网络设备进行通信,同时要面对多个用户,因此,Application采用多线程的方式分别完成与设备和用户的通信。
受客户端影响,与网络设备通信存在三种情况:
1)客户端初次登录后。服务端应该按照预约情况,与主网络设备进行通信,将其反馈发送给客户端,同时赋予客户端完全的权限。
2)客户端在拓扑图上进行设备切换。切换时客户端会将所选择的网络设备的地址信息发送到服务端,服务端则根据预约情况来决定是否提供给客户端完全的权限。如果在预约中没有说明要配置该设备,则只有查看的权限。
3)客户端点击保存或提取按钮后。这种情况的处理与上一种情况类似,要看预约情况来决定是否完成客户要求。如果没有相应权限,则向客户发出提示,不能进行相应操作。
5.3 设备配置文件的存取
由于网络设备的公用性质,每个用户在使用这些网络设备时,都应该获得一个与出厂配置完全相同的设备状态。为此,需要将每个用户在自己所获得的时间段内完成的配置保存起来。这样做可以达到两个目的,一个是为刚开始配置的用户提供一个纯净的配置环境,另一个是,用户可以在另一个时间接着完成自己上次没有完成的实验。而不用担心在未完成配置的情况下,由于时间不足而造成已配置内容的丢失。
由上述情况可知,每个用户的配置都需要保存起来,当该用户再次登录,要完成上次未完成的配置时,服务端需要将该用户上次所做的配置环境恢复。为此,需要服务端完成网络设备配置文件的保存和装入。这个保存和装入是与用户相联系的。
保存功能要求服务端完成Save,Download,Save to disk,Delete saved cfg file,网络设备重启等五个过程。
装入功能要求服务端将配置文件从计算机上传到网络设备,配置网络设备按照该配置文件启动,重启网络设备等三个过程。这些过程中要使用两个协议,一个是用来向网络设备发布命令的Telnet,另一个是设备从数据库下载配置文件所用的TFTP协议。
通过以上功能的配合,可以实现远程网络实验的自动管理。
6 结束语
更加有效的实验平台建设应该是以真实设备为基础,同时结合大量的虚拟设备来构成。随着云计算技术的成熟,很多主流厂商提出了云实验平台的概念,借助于云计算虚拟化及资源集中管理的能力,可以为大量用户提供虚拟化实验环境,这是计算机网络实验发展的一个新方向。但是计算机网络实验的目的是让学生掌握实际设备的连接、配置和管理,因此适当的真实环境使用在学习中是必需的。
[1]王毅,张文科,程书红.网络互联实验室的建设设计[J].实验室研究与探索,2009,(8):77-80.
[2]何超,俞立,张丹.远程控制实验 Web系统设计和开发[J].浙江工业大学学报,2009,(10)473-476.
[3]陆炜妮,庞竣.基于Internet的计算机网络虚拟实验环境架构[J].计算机工程,2007,(13):283-285.
[4]马林,霍大勇,薛丁簘.基于 Web的网络实验远程监控系统的设计[J].计算机工程,2007,(9):246-247.
[5]姜坤,孙德辉,史运涛.基于.NET的远程实验室客户端的设计与实现[J].系统仿真学报,2009,(10):262-264.