“思维实验”在网络体系结构教学中的应用
2014-07-05袁艺,薛质
袁 艺,薛 质
(1.山东财经大学 计算机科学与技术学院,山东 济南250014;2. 上海交通大学 信息安全工程学院,上海200240)
0 引言
网络体系结构是“计算机网络”课程教学中的重点和难点。其重要性在于为后续的学习提供理论基础和组织框架,但其涉及到的主要概念如分层、服务和接口等都非常抽象,给教师讲解及学生学习造成了一定的困难。
网络体系结构的教学通常采用经典网络教材中提供的生活实例来讲解。例如,文献[1]通过哲学家、翻译和秘书三层通信模型来讲解分层、接口和服务等概念;文献[2]则将乘飞机旅行分解为票务、行李存取、登机/下机、起飞/降落和空中路由五层来解释分层原理。传统教学法的优点在于实例生动,学生容易理解;缺点在于所选实例与计算机网络差别较大,难以帮助学生深入理解抽象概念。
20世纪初,文献[3]提出了“思维实验”的概念,认为思维实验就是将思维活动按照实验的格式展开,是一种可操作的特殊实验方法。本文把“思维实验”运用到网络体系结构的教学中,并探索应用“思维实验”进行教学的一般操作步骤。
1 “思维实验”的相关研究工作
有关“思维实验”国内外学者做了不少理论研究,例如:文献[4]对思维实验的概念、运作方式、优势与不足做了比较系统的论述;文献[5]阐述了对思维实验的看法与分类,并对建设性思维实验和破坏性思维实验进行了论述;文献[6]认为思维实验很好地体现了发现的逻辑,能让我们通过有效的重组以往的经验而获得新知识;文献[7]论述了思维实验的思想性、实验性和创新性三个特点。此外,也有一些应用型的教学实践研究将思维实验扩展到了数学、生物学、物理学和哲学等领域。例如:文献[8]认为“特例、猜想、证明”的数学思想方法是思维实验在数学教学中的有益尝试;文献[9]提出了适合生物课程的探究性思维实验的一般操作步骤。
我们也可通过将一些思维实验的实例应用到计算机类的专业课程教学上来。例如:计算机网络课程中的“三军问题”,就以形象生动的方式解释了发送和接收之间的协调难题[10];操作系统课程中的“哲学家就餐问题”则阐明了多线程同步的问题。本文将结合网络体系结构对“思维实验”教学法进行应用探索。
2 “思维实验”在教学中的应用
2.1 前期准备
在运用“思维实验”教学法讲解网络体系结构之前,学生需要做好充分的课前准备。例如,学生需要掌握计算机网络的定义以及分组交换原理,了解数据通信基本原理以及协议分层原理并且具备一定的编程经验等。
2.2 构建思维情景
本次“思维实验”的网络情景是:主机A 通过一个分组交换网络向主机B 请求传送一个文件,如图1所示。此时,学生可以将自己想象成网络情景中的一部分,如主机A。
图1 网络情景
2.3 思维实验引导过程
该过程是思维实验的重点,教师要从具体的网络情景出发,逐步引导学生理解层、服务、接口和通信协议等抽象概念。引导过程分为四个步骤,依次为:模块的设计、层间的服务、层间的接口和对等实体间的通信协议。
(1)模块的设计
在这一步骤中,教师将引导学生完成两个主要任务:①讨论在具体的情境中,计算机网络需要完成的主要功能;②将需要完成的功能分类放入不同的模块中,并为各个模块命名。
为完成第一个任务,教师需要设计一系列的启发性问题,引导学生在网络情景中思考。例如:主机A 发出来的数据包如何找到主机B?数据包如何可靠地到达主机B?主机B 能否理解主机A 发过来的消息?数据在物理信道上是如何传送的?
教师在黑板上列出学生经思考后得出的结果,如图2(a)所示。接下来,根据模块划分原则,引导学生将需要完成的功能归纳为四个模块:链路模块、网络模块、传输模块和应用模块。其中某些功能可以重复出现在不同的模块中,划归的结果如图2(b)所示。
图2 模块的设计
(2)层间的服务
教师引导学生依据各功能模块之间的依赖关系,调整它们的位置。将提供服务的模块放在下面,使用服务的模块放在上面。调整的结果自上而下依序为:应用模块、传输模块、网络模块和链路模块,如图3左侧的图示。在接下来的讨论中,模块也被称作层。
随后,教师将引导学生思考下层向上层提供的主要服务。引导的过程以链路层为例:①链路层的基础是不可靠的物理链路;②链路层主要功能是流量控制和差错控制;③链路层使得不可靠的物理链路变为可靠的数字链路。对其他各层的引导可以模仿这个过程进行。层间的服务关系如图3所示。
(3)层间的接口
图3 层间提供服务关系图
下层向上层提供的服务是通过接口完成的。可以选择传输层与应用层间的接口作为实例进行讲解。教师在引导过程中注意三个要点:①将传输层及其以下各层的功能总和想象成一条从端到端的可靠的传输管道;②发送数据好比向管道中放入货物,而接收数据好比从管道中取走货物,这样就需要两个传送数据的接口,即Send()和Recv();③服务器与客户机交互数据之前首先需要建立连接,所需的接口有bind()、listen()、accept()和connect()等。应用层与传输层间的接口如图4所示。
图4 应用层与传输层间的接口举例
(4)对等实体间的通信协议
在理解了服务与接口的基础上,需要进一步引导学生思考层的功能是如何实现的。层的功能需要通过对等实体的交互实现,这就需要建立对等实体之间的通信语言,即通信协议。在此以主机A 与主机B 之间传输文件的协议为例让学生理解协议的概念,该协议的主要命令如表1所示。
表1 文件传输协议使用的主要命令
接下来以主机A 向主机B 请求文件file2.txt 为例演示该协议的交互过程,如表2所示。
2.4 思维回顾与实践开发
为了巩固“思维实验”的效果,学生需要在课后观看课堂录像或查看教师提供的“思维实验指引”,同时完成教师布置的思考题。例如:请思考协议与服务的联系和区别;结合文献[1]思考因特网设计目标及其优先级。
表2 文件传输交互过程
此外,教师可以布置学生编写程序模拟网络体系结构工作流程。例如:编写一个程序模拟数据从协议栈的高层流动到底层的过程,在每一层中实现为上一层传递下来的数据添加一个头部的功能。每层的功能通过函数来实现,其参数包括传输的数据以及数据的大小。
2.5 实践结果
2013年笔者在山东财经大学讲授“计算机网络原理”课程时应用了此“思维实验”教学法,教学时长45 分钟。学生普遍认为“思维实验”能够锻炼思维能力,帮助学生掌握该课程的思维方法。
学期末的问卷调查也验证了学生的感受。89%的学生认为“思维实验”教学法有助于对抽象概念的理解,并希望能把这种教学方法运用到其他课程的教学中。
3 “思维实验”的一般操作步骤
经过对“思维实验”在网络体系结构教学中的应用总结,同时结合文献[9]介绍的探究性思维实验的一般操作步骤,本文概括出了“思维实验”在计算机网络课程教学中的如下操作步骤。
1)构建思维情景
思维情景的选择应能调动起学生的兴趣,同时能够让学生将自己内化为情景中的角色。
2)思维实验引导过程
首先教师从思维情景出发,设置几个学生感兴趣的问题,然后学生依据已有知识与实践经验对问题进行思考、讨论,随后学生将讨论的结果反馈给教师,教师根据学生的反馈再进一步引导。
经过若干轮讨论-反馈-引导的过程,最终总结讨论结果。在此引导过程前,要求教师先撰写好“思维实验指引”,并反复推敲其逻辑性和启发性,提供给学生使用。
3)思维回顾与实践开发
在课堂中,学生需要在“思维实验指引”上做记录,同时教师可以分配学生将思维实验过程录制下来,以方便学生课后学习。由于“计算机网络”是一门实践性很强的课程,对概念的理解要与实践相结合才能真正让学生体会到学习的乐趣,因此应该布置学生完成一个相关的程序开发作业。
4 结语
本文将“思维实验”应用到“计算机网络”课程的教学中。实践证明,此方法在讲解较为抽象复杂的概念时具有如下突出优点:①从某个应用情景出发,可将概念串联起来,使得内容组织的逻辑性强和生动有趣;②提高了课堂教学的效率,增大了教学信息量;③可以充分调动学生的学习积极性,实现以学生为中心的学习;④使学生能领会到重要概念的建立过程,锻炼抽象思维能力,有利于实现举一反三。
[1] AS. Tanenbaum,DJ. Wetherall. Computer Networks[M]. New York:Prentice Hall,2010:31-33.
[2] JF. Kurose,KW. Ross. Computer Networking A Top-Down Approach[M]. London:Pearson,2013,47-49.
[3] Mach,E. Knowledge and Error[M]. Dordrecht:Reidel,1976:134-147.
[4] Sorensen,R. Thought Experiments[M]. London:Oxford University Press,1992:205.
[5] Brown,J. The laboratory of the mind[M]. London:Routledge,1991:1.
[6] 王华平. 思想实验的认识论问题[J]. 北京:自然辩证法通讯,2009(4):25-30.
[7] 唐青利,王浩. 思想实验的特质及其认识论意义[J]. 成都:四川师范大学学报(社会科学版),1999(4):15-20.
[8] 邓集礼. 就数学归纳法的教学谈“思考实验”的运用[J]. 兰州:数学教学研究,1999(5):15 -16.
[9] 刘勇. 高中生物学“思想实验”开发研究[J].成都:四川师范大学,2007:18 -20.
[10] 薛质,袁艺. 计算机通信网原理与技术[M]. 北京:清华大学出版社,2012,27-28.
[11] David D. Clark. The design philosophy of the DARPA internet protocols[J]. proceedings SIGCOMM'88,Computer Communication Review,1988.18(4):106-114.