陈 黎, 饶 坚, 孙界平, 琚生根
(1. 四川大学 计算机学院, 四川 成都 610065; 2. 四川大学 外国语学院, 四川 成都 610064)
四川大学全面贯彻以创新创业为主导的教育理念,坚持“以人为本、德育为先、能力为重、全面发展”的教学要求,强化学生创新意识、更新能力和综合素养的培养,并把大学生创新创业和实践能力的培养融入人才培养全过程,落实到教育教学各环节。与此同时,四川大学还抓紧建立更新教学内容的机制,通过加强课程的综合性和实践性,并重视实验课教学,培养学生实际操作能力。而实践性课程综合实验的设计和教学对于培养“双创”人才更是教育的重点。其中,综合性实验是实验教学的重要环节,主要目的在于加深学生对理论知识和专业知识的理解,让学生能够用理论课所学习的知识来指导实验,培养学生独立分析问题和解决问题的能力[1]。
在“双创”和“互联网+”的时代背景下,计算机网络课程,尤其是实验课的教学改革显得尤为重要。计算机网络是计算机类专业的主干核心课程之一,是一门实践性很强的专业课程。我校计算机学院一直重视计算机网络实验的教学,近年来,为了提高实验课程的教学质量,把教学计划从原来理论课中抽出部分时间安排实验转变为将实验单独设置课程。目前计算机网络课程有48学时,配套的实验课程有20学时。特别是在计算机网络课程中,很多高校都把网络实验单独设置课程[2-4],并且开展了计算机网络实验的教学改革。这些改革涉及到网络实验的教学内容、教学方法等各个方面,虽然各高校的教学模式各有特色,但是都认为综合实验在计算机网络中的地位是非常重要的。然而,由于课时的限制,在教学改革中,很多计算机网络的综合实验主要都是在网络的设计、组网、配网等方面,市面上的网络教材也主要是针对基础实验进行教学。本文结合课程教学组多年教学经验,针对计算机网络课程的培养目标,对实验内容进行了重新的规划设计,提出了综合实验的实验大纲,并在学生中进行了教学实践,取得了较好的效果,对学生创新意识的培养和创新能力的锻炼起到了很好的作用。
计算机网络是一个复杂的选题,涉及了很多抽象的概念、协议,学生在学习过程中难于理解这些概念之间的关系、协议之间的关系以及协议之间的工作顺序。通过计算机网络实验能够让学生对于协议的工作过程做到“眼见为实”,有助于学生加深对理论知识的理解[5],提高分析问题和解决问题的能力。但是由于课时或者实验条件的限制,目前本学院的计算机网络实验课程存在以下一些问题:
(1) 注重基础实验,忽略综合实验。计算机网络的实验课程是根据教学内容配套相应的实验,这些实验主要是针对每一章的重要协议或者原理来进行设计的,其目的是为了辅助课堂的教学。这些基础实验,无论是协议分析实验,还是模拟器上的虚拟实验都只针对单个原理或者单个协议,例如,HTTP实验通过对HTTP报文的分析,让学生了解HTTP协议的工作原理,而HTTP的请求报文如何通过发送方发送到网络,网络如何把报文传送给接收方的过程在基础实验中是无法得到体现的。
(2) 依赖虚拟实验,忽略实物实验。由于交换机、路由器 、网络协议分析仪等实验设备昂贵,而且更新换代速度也很快,实验教学都难以更新和追踪最新网络技术,满足不了课程对学生知识、技术和研究能力方面的[6-7]需求。近年来,越来越多的高校逐渐将实验重点放在了如何利用模拟器来替代实物设备完成各项实验,如Packet Tracer[8-10]、NS2[6]。虚拟实验虽然可以避免设备老化、设备落后带来的一系列问题,确实能够让学生在模拟器中去模拟各种实验,但是,有的时候模拟器中的虚拟实验并不能真正模拟现实世界的网络,特别是协议分析实验或设备配置实验与真实环境仍然存在很大的差异。所以,导致学生在面对真实网络出现故障时,仍然不能发现问题、解决问题。
(3) 缺乏对知识的融会贯通。在协议分析实验中,基础实验主要针对各个协议进行分析,例如FTP实验一般只针对FTP协议的工作原理、报文格式、标题行的内容进行分析从而了解协议的工作过程。但FTP在完成传输过程中,并不是从发送主机就直接发送FTP报文,而是通过ARP、DNS等一系列报文的发送才可能发送出FTP的报文。再简单的网络传输过程,都需要很多的协议协同才能完成,单个基础实验,不能让学生领略网络中报文传输的真实过程。因此,当学生面对网络现象分析问题时往往无所适从,更谈不上去利用理论知识有效解决问题。
计算机网络实验课程,是培养计算机专业学生网络实践能力和创新能力的一个重要教学环节,其目的是为了加深理解计算机网络的理论知识以及利用理论知识解决现实世界中的网络问题,通过综合实验的训练使学生逐步提高计算机网络的实践能力,培养学生独立分析问题和解决问题的能力,提高学生学习的积极性。计算机网络综合实验的设计原则[8-10]如下。
(1) 理论和实践相结合。计算机网络理论课的教学核心是“协议”,但不是简单地了解协议,而是通过对各种协议的学习,最终让学生了解网络中数据的传送过程。因此,在综合实验设计过程中,要让学生知道对协议的学习不仅仅是对理论知识的学习,而是要通过它们来指导实践,能够具体解决网络中出现的问题。因此,教师设计综合实验的时候需要明确实验的目的是针对哪些知识点、要锻炼学生的什么能力,从而设计合理的综合实验。
(2) 虚实结合。虚拟实验有实物实验不可比拟的优势,但是也存在一些问题,所以设计综合实验可以采用虚拟和现实相结合的思路。一方面学生可以利用协议分析工具获取真实网络环境下各种应用传输过程中发送和接收的数据包,通过分析协议的工作原理加深对知识点的掌握,达到“眼见为实”的效果;另一方面学生还可以利用模拟器去设计、搭建网络及排除网络故障来锻炼动手能力,达到“身临其境”的效果。通过虚实相结合的综合性课程设计将各个基础实验的知识点融会贯通,以此来帮助学生循序渐进地逐步提高对计算机网络理论知识的认知能力和实践应用能力。
(3) 提高学生的创新能力。综合实验应该以项目形式分发给学生,并提出实验希望达到的目的,而实验的方法步骤应该交由学生自行进行设计,而不应该像基础实验那样学生照着教师给出的实验步骤按部就班地完成。学生应该根据实验的目的自行设计实验过程和实验步骤并完成实验。
(4) 实验过程“做”和“思”的有机结合。实验设计过程中,应该根据教师设计实验的目的设置一些问题,特别是Wireshark抓包实验,这些协议分析实验相比配置实验来说,操作步骤简单很多。这类实验的重要意义在于对捕获到的数据包进行分析,从捕获数据包中去分析协议的过程。为此,针对这样的综合实验,首先在设计中,需要从整个数据传送的过程来考虑,不能只分析单个实验,应该分析每一层所涉及协议的工作情况;同时应该根据实验考查的知识点为学生设计相应的题目,让学生根据这些题目有的放矢地去分析捕获的数据包。这样的综合实验对于学生把整个通信过程的知识点融会贯通是非常重要的。
基础实验要充分展现基础性、实践性,其主要任务就是打牢基础,让学生了解网络实验的基本方法及常规的实验项目。课程组设计的计算机网络各类基础实验主要包括:
(1) 应用层。Web服务的配置和HTTP协议分析、FTP服务器的配置和FTP协议分析、邮件协议的分析、DNS服务器的配置和DNS协议分析、基于TCP和UDP网络编程。
(2) 传输层。TCP协议分析和UDP协议分析。
(3) 网络层。DHCP服务器配置和协议分析、ICMP协议应用分析、路由器配置、路由协议配置。
(4) 链路层。ARP协议分析、VLAN配置。
综合性实验指对两个方面的综合:知识点上的综合和实验手段上的综合。为此,课程组设计了4个综合性实验,串联各个基础实验,从不同的角度去锻炼学生的综合能力。综合性实验采取项目方式,3、4个学生组成一个项目组,完成综合实验。综合实验的目的是锻炼学生解决问题的能力,因此不需要像基础实验那样给出明确的实验步骤,只给出要求学生需要完成的内容和达到的目的即可。小组的成员根据基础实验的学习或通过自学方式了解综合实验所涉及的各个基础部分的方法,自行设计方法步骤来达到实验目标。
在Packet Tracer中搭建校园网,熟悉DHCP、NAT、VLAN、DNS、Web等服务的配置方法。
实验工具:Packet Tracer。
实验要求:
(1) 在校园网内部搭建Web服务器、DNS服务器,校园网用户和校园网外部用户均可使用域名访问Web服务器;
(2) 校园网内部不同网络之间采用3层交换机连接,校园网和公网的连接使用路由器;
(3) 校园网内的寝室、图书馆、办公区等所有的主机使用私有地址,除了服务器以外,客户端主机要求通过DHCP自动分配地址;
(4) 校园网的网关路由器使用静态路由配置;
(5) 要求实现校园网外部的主机能够对校园网内部的Web服务器访问。
逻辑演算所面临的挑战是如何给程序一个语义解释。这不是为了使命题是真的或者是假的,而是为了说明计算的状态变化,或者任意的进程。一阶指派语义更加适合,允许基于程序执行和指派间的持续转换关系的组合定义:
实验课时:3课时。
实验意义:将网络层的协议和应用层协议的配置综合起来,锻炼学生设计网络、组网和网络配置的能力。学生需要根据实验要求,考虑校园网应该使用什么设备,设备需要配置什么协议来支持需求。学生在实验过程中,需要考虑内网IP和外网主机通信要使用NAT,3层交换机中需要配置VLAN。在进行网络层协议的学习过程中,可以安排这样的综合实验,把理论和实际问题综合起来。
这个实验的设计是受到James F. Kurose[11]中5.9 a day in the life of a web request的启发。通过利用Wireshark捕获从客户端主机发送HTTP请求到得到HTTP响应报文,获取Web页面的过程中进入和离开客户端主机的数据包,并对数据包进行分析,要求学生通过这个实验能够有效梳理网络通信过程的规律。该综合实验需要进行Web服务器配置、DNS服务器配置等实物实验,还要求捕获数据包并进行分析。
实验工具:Windows Server 2008,Wireshark。
实验要求:
(1) 通过Windows Server 2008中的IIS服务配置WEB服务;
(2) 通过Windows Server 2008配置DNS域名服务;
(3) 客户端主机通过域名访问Web服务器;
(4) 实验前,ARP、DNS以及Web的缓存必须全部清空;
(5) 列出整个过程所用到的协议以及协议使用的顺序,分析各个协议的工作情况。
课时:3课时。
实验意义:该综合实验完成了Web服务和DNS服务器的配置。重要的是捕获数据包及对数据包的分析。通过分析,可以帮助学生了解应用层、传输层、网络层、链路层如何工作。通过对数据包传送过程的分析,学生能够了解数据包发送之前需要有ARP协议进行IP和MAC的解析工作,在发送HTTP报文之前,需要通过DNS协议进行域名解析。通过解析得到服务器IP地址以后,使用TCP协议进行三次握手,才能发送HTTP报文。这样的综合实验对于学生了解协议的工作原理是非常重要的。单一分析HTTP报文不能让学生了解数据传送的整个过程。在实验的编排过程中,教师可以针对实验设置各种问题来帮助学生有的放矢地分析报文,以便能够深入了解协议的原理。
在局域网内部,以Windows为配置环境搭建SMTP和POP3服务器,完成电子邮件的发送和接收过程。在这个过程中,利用Wireshark捕获数据包,深入理解掌握SMTP、MIMIE以及POP协议的工作原理,同时了解邮件地址的域名解析过程。
实验工具:Windows Server 2008,Visendo SMTP Extender_x64,foxmail,Wireshark。
实验要求:
(1) 利用Windows Server提供的SMTP服务搭建SMTP服务器;
(2) 使用Visendo SMTP Extender Community工具,搭建POP3邮件服务器;
(3) 在Windows Server下配置DNS邮件域名;
(4) 在foxmail中完成邮件的发送和接收服务;
(5) 用Wireshark分别在客户端主机以及SMTP邮件服务器之间捕获数据包。
课时要求:3课时。
实验意义:该综合实验的目的是希望学生能够体会邮件服务的“三步曲”,邮件发送到发送者的邮件服务器,再发送到接收者的邮件服务器,最后接收者从自己邮件服务器中获取邮件。这个实验不仅需要进行相应服务的配置,还需要在不同地方获取数据包,来真实感受邮件发送的过程。在这个实验中采用了DNS来进行发送,主要目的是让学生了解在邮件服务器使用域名时,是通过MX记录进行域名解析,这和4.2中Web的域名解析使用A记录是不同的。
使用Python编写一个简单的爬虫,并学会如何解析Web页面。
实验工具:Python。
实验要求:
(1) 以http://finance.sina.com.cn/ 作为种子,爬取新浪财经版的网页信息;
(2) 对于获取的页面,提取URL,加入待爬取队列;
(3) 从捕获的页面中选择有表格的页面,学习如何从Web页面中提取结构化信息。
课时要求:3课时。
实验意义:网络爬虫是目前最重要的网络应用,通过设计和实现一个简单的爬虫,让学生了解爬虫的基本原理。包括如何能够从Web服务器中抓取页面,爬虫的抓取标准是什么?如果服务器拒绝抓取的原因是什么,如何解决?最后通过从Web页面抽取信息,让学生了解如何从Web页面中获取有用的信息。
综合实验的教学经过教学实践取得一定的成效。学生把每一个综合实验当作一个创新项目来做,自己动手、自己思考、自己设计,锻炼了学生的实践能力、提高了综合素质,特别是对于理论知识的深入理解起到了重要的作用。但是也遇到一些问题:如果基础实验和综合实验同时完成,需要更多的课时;实验课时的安排偏早,不利于综合实验的安排等。在实践教学中,舍弃了编程实验,将基础实验中协议分析内容放在理论课的作业部分完成,尽量将课时留给综合实验。在综合实验的实践过程中,学生逐渐学会了如何设计实验、如何利用网络工具对网络现象进行分析、如何利用RFC文档对捕获数据包进行分析、如何排除网络故障(如解决网络ping不通的情况)等。经过2届学生的教学实践,学生感觉在综合实验中受益匪浅,在双创实践中奠定了扎实的专业技术基础。