计算机网络是计算机技术和通信技术紧密结合而形成的新技术领域,计算机网络基础课程是高等院校计算机相关专业重点课程,社会对于网络人才的需求更是呈显著增长的趋势。
目前计算机网络基础课程教学,都是以书本教学方式和多媒体课件方式为主,学生被动的接收较为抽象的网络知识。当前的大部分辅助教学系统仅仅提供观察和配置实验,无法让学生自己动手进行数据报文处理,约束了学生的创造性。
而我们设计的计算机网络实验系统充分利用了网络环境带来的便利,包括学生使用的客户端、教师管理使用的实验管理服务器和支持学生编程测试的测试服务器等软硬件设备。通过在网络环境中实际进行编程、实验和测试等环节,使学生深入地学习网络的工作原理,并使网络传送的数据清晰可见。该系统的研制,目的是使学生真正从理论和实践两方面提高网络知识水平和实际动手能力的,从而实现培养高素质专业人才的目标。
硬件体系结构
整个计算机网络实验系统由客户端、测试服务器和实验管理服务器等三个主要部分组成,总体构成如图1所示。在一般配置下,可以通过一台测试服务器和一台实验管理服务器服务几十台客户端,同时支持几十位同学进行上机实验。
客户端是学生进行计算机网络实验的平台,客户端软件实现了C++代码的集成编译环境和网络数据报文分析窗口。学生选择测试例后,系统自动生成相应的函数模板,使学生可以在本系统内完成网络协议处理函数代码的编辑、编译、调试和运行,以检验代码和逻辑的正确性。系统为学生提供了单步、观察变量等调试手段。在数据报文分析窗口中不仅能观察到一个测试例中报文的交互过程,还能以树状图的方式显示每个字段的内容,使学生了解到报文中每个字节的真实内容。当报文内容错误时还能显示出错误原因。通过观察报文的具体内容,在了解协议交互过程的基础上,使学生加深对课堂教学内容的理解。
图1 网络实验系统总体构成
测试服务器是专用的实验平台设备,客户端和测试服务器进行网络协议数据交互,完成相关的实验。所有的实验过程都以脚本的形式存储在测试服务器的硬盘中,测试脚本描述了所有实验过程客户机与服务器的行为。测试开始后,客户端从测试服务器获取测试脚本,同时在测试服务器中相应地生成一个独立的脚本运行环境,并与客户端进行协议报文和控制报文的交互,最后由测试服务器完成结果判定。
实验管理服务器基于Web界面设计,实现教学管理的功能,每个学生的测试结果将保留在实验管理服务器的数据库中,教师可以方便地统计每个学生的测试结果,并据此分析学生对知识点的掌握程度,可以相应调整授课重点,从而大大增进了教学效果。
软件体系结构
下面分别介绍客户端、测试服务器和实验管理服务器的总体设计思路。
客户端
客户端软件在Windows环境下用VC++编写,软件结构如图2所示。
图2 客户端软件结构
客户端软件主要实现代码编辑和协议报文分析两大功能。
代码编辑模块:主要完成所有与代码编辑相关的功能,包括代码文件的新建、打开与保存、编辑、管理等几个方面。编辑窗口中编辑功能包括:基本编辑功能(回车换行、Tab、退格、删除等等 ),粘贴板功能(能够完成Cut、Copy、Paste等操作),撤消和恢复(Undo和Redo)操作,查找和替换。
协议报文分析:网络实验平台中集成了报文的捕获功能,能够对报文进行显示和分析。包括报文的摘要列表、对报文每个协议域进行分析及其文字化显示、对数据报文的数据域以十六进制格式显示输出、将实验过程中报文的交互流程以图形化的形式表示等等。
测试服务器
测试服务器在采用C和C++语言编写,软件结构如图3。
图3 测试服务器的软件结构
测试服务器是一个嵌入式专用设备,基于Intel x86平台实现,我们自行设计实现了完整的TCP/IP协议栈,包括ARP、IP、TCP、 FTP 、 TELNET等等。支持用户进行配置管理,包括接口地址配置、管理服务器地址设置、实验信息显示、DEBUG调试。实验模块为每个客户端维护一个状态机,负责脚本解析、执行。
实验管理服务器
实验管理服务器在Windows环境下用Java和PHP编写,软件结构如图4所示。
图4 实验管理服务器软件结构
实验管理服务器由三部分组成:后台数据库、后台Web服务器和实验通信模块。在管理服务器的底层有监听tcp socket的程序,接收从客户机和测试服务器发送的实验控制消息及其发送控制消息给客户机或者测试服务器,同时实现访问后台数据库操作功能;Web服务器端通过与后台数据库的访问,将实验通信模块采集的实验相关数据显示在Web页面当中。
在计算机网络实验系统中设计了多个网络原理实验,随着系统的不断完善,还将进一步增加路由和组播等更深入的实验内容。
总之,针对网络原理课程教学的特点,清华大学计算机系设计和实现了计算机网络实验系统。通过在网络环境中实际进行编程、实验和测试等环节,使学生深入地学习网络原工作原理,达到从理论和实践两方面提高学生的网络知识水平和实际动手能力的目标。
目前本系统已经在清华大学计算机系网络原理课程教学中使用,取得了良好的效果。学生普遍反映采用该系统学习计算机网络原理知识,更直观,更容易理解,掌握的知识点也更牢固。
本系统在中国教育和科研计算机网DragonLab实验室上设立了网址,欢迎各位专家和同仁提出宝贵意见和建议。
特别声明:本站注明稿件来源为其他媒体的文/图等稿件均为转载稿,本站转载出于非商业性的教育和科研之目的,并不意味着赞同其观点或证实其内容的真实性。如转载稿涉及版权等问题,请作者在两周内速来电或来函联系。