面向新工科的网络协议教学实践

2018-12-27 10:53杨茂云王改革
计算机教育 2018年10期
关键词:网络协议计时器序号

杨茂云,王改革

(江苏师范大学 智慧教育学院,江苏 徐州221116)

0 引 言

大数据、云计算、物联网、人工智能、虚拟现实、基因工程等新技术和生物医药、新材料、新能源等新兴产业需要大量的具有创意、创新、创业的信息技术人才[1-2]。教育部正在实施的“新工科研究与实践项目”目标就是为了培养大量的创新型人才,其项目指南包括面向人工智能、大数据、云计算、物联网等新技术的课程体系建设,探索创新型工程人才的培养模式等选题[3]。一些教师探讨了多种培养创新型人才的教学模式[4-9],但是大多不符合新工科的要求。网络是物联网、大数据、人工智能、智能制造的基石,是一门理论与应用相结合的专业基础课程。结合计算机网络课程特点,对照新工科建设指南,借鉴探究教学模式,提出了问题导向的在线课堂学习、大学课堂教学、项目实践的三位一体的探究式教学模式,并在“协议可靠传输机理”的教学中进行了实践。

1 计算机网络教学现状

计算机网络涉及计算机组成原理、信号与系统、操作系统、算法与数据结构、软件、通信原理、电子电路、信息安全等诸多学科,主要涉及计算机网络技术和网络工程两门课程。计算机网络技术采用分层的方式建立计算机网络的知识体系,然后自下而上依次讲述各个协议;网络工程主要介绍网络规划与设计以及网络设备的配置,这两门课程很少涉及网络协议分析与设计的内容。实际上,物联网、大数据、人工智能、智能制造的工程场景千差万别,需要针对具体的工程场景设计专用的网络通信协议,另外网络空间安全要通过分析大量的网络数据来发现安全威胁,因而社会需要大量的具有协议设计和分析网络的工程思维和创新思维的人才。目前大学工科课程教学仍然采用教师教室讲授知识、学生课后做作业、实验室实验的传统教学模式,已经不能适应新工科的目标要求。

2 面向新工科的教学模式

1)在线课堂学习。

把教师和学生禁锢一处进行知识传授和学习,已经不适应教育的需求。随着网络技术的发展,MOOC、学堂在线等在线课堂层出不穷,但是大多数在线课堂只是把线下教学迁移到线上,通过客观测验题验证学生的学习效果,这样的在线课堂既没有吸引力也不能培养学生的创新思维。在线课堂可以通过一个个问题组织教学内容从而激发学生的好奇心和课堂黏度,可以通过探究性问题培养学生创新思维。在线课堂应该能够采集学生的学习过程数据,以便老师获知学生的认知过程和水平。

2)大学课堂教学。

学生基本能自主完成简单问题的探究,但是如果没有教师的参与引导,往往不能持续有效地进行复杂问题的探究。在线课堂虽然有讨论区,但是一方面文字描述往往词不达意,另一方面老师也不能够实时在线参与讨论,因而并不完全适合探究性教学。大学课堂提供了师生面对面的实时互动的场所,通过分析在线课堂的学生反馈,教师可以有针对性地设计课堂教学内容,重点讲授学生不懂的知识,可以有针对性地参与、引导学生进行问题探究,进一步培养学生的创新思维。

3)项目实践学习。

仅仅学习网络协议的原理性,不探究实现细节,学生既不可能真正领会原理性的知识,更不能设计满足需求的具体协议。由于网络协议比较复杂且具体实现时要考虑很多因素,大多数教材很少涉及协议实现这一环节。纸上得来终觉浅,项目实践不仅可以检验理论学习的不足,促使学生自我完善,也可以培养学生的工程思维能力。

3 面向新工科的教学实践

计算机网络采用分组交换技术,分组在传输时可能丢失、失序、出错,因而本质上网络只能提供不可靠的数据传输服务。在不可靠网络上实现可靠通信,必须实施保障可靠通信的机制。可靠通信机理是TCP协议和协议设计的基础,基于此提出的教学模式,在“协议可靠传输机理”的教学中进行了实践。

3.1 在线课堂教学

雨课堂是学堂在线和清华大学共同研发的基于PPT与微信的在线智慧教学工具,教师在雨课堂上发布教学内容和测试题目,学生借助它可以自主探索课程内容,能及时反馈学习难点和疑问,教师借助它可以分析学生的认知水平、学习难点,有针对性地设计课堂教学[10]。这里只阐述教学思路,具体的教学内容可以通过雨课堂微信公众号查阅。

3.1.1 停止等待协议

计算机网络采用分组交换技术,分组的首部携带源地址、目的地址、控制、校验和等信息,分组传输前不需要建立连接,每个分组可以自适应地独立选择路由,因而计算机网络的冗余性高。分组需要在路由节点存储转发,缓存耗尽必然产生分组丢失,分组独立选择路由可能会引起分组错序,分组在传输过程中也可能产生比特差错,因而计算机网络本质上是不可靠的,只能提供尽最大努力的数据传输服务。为了提供可靠的数据传输服务,必须采用保证可靠传输的机制,例如,停止等待(也叫ARQ)协议、连续ARQ协议。ARQ协议比较抽象,如果只采用知识讲授的教学方法,学生往往只是死记硬背,不能真正掌握ARQ协议的机理,因而不能在具体的工程应用中针对需求灵活应用ARQ协议的机理设计相应的协议。

(1)分组失序问题。提出网络发生分组失序问题,分析产生分组失序的内在原因。介绍保证分组有序的方案——停止等待协议。“停止等待”就是指发送端发送完一个分组就停止,等待对方的确认信息,只有对方确认正确,才能发送下一个分组,要求学生探究停止等待协议保证分组有序的机理。

(2)分组出错问题。提出网络发生分组出错的问题,剖析产生分组出错的内在原因。提出接收方为了向发送端确认消息,需要判断接收的分组是否正确。介绍判断分组是否正确的解决方案:发送方可以在分组中携带一个校验和信息,接收方接收分组时通过校验和就能验证接收的分组是否出错。进一步提出即使接收方验证分组出错,发送方也没有办法知道这个信息。教师启发解决这个问题可以有两个办法:第一种方法,发送方询问接收方分组是否正确;第二种方法,接收方向发送方通告分组出错的信息,要求学生通过比较探究哪种方法更好。再次提出问题,分组出错以后,接收方如何得到正确的分组,要求学生探究解决方案。

(3)分组丢失问题。提出网络产生分组丢失问题,剖析分组丢失的内在原因,引导学生探究发送分组丢失会产生什么结果?确认丢失会产生什么结果?启发学生回顾停止等待协议,探究得到分组丢失,发送端得不到确认消息就一直停止等待,产生协议死锁。教师启发学生在发送端设置超时计时器,要求学生探究超时计时器如何解决协议死锁。

3.1.2 连续ARQ协议

引导计算ARQ协议的利用率,启发学生分析ARQ利用率低的原因是停止等待。通过CPU的流水线技术,引入连续ARQ协议以及累积确认机制。介绍连续ARQ协议的接收方可以有3种不同的接收策略:①1≤接收缓存数<发送缓存数,采用累积确认;②接收缓存数=发送缓存数,采用累积确认;③接收缓存数=发送缓存数,采用选择性确认。要求学生从分组丢失的角度,探究3种接收策略的特点。

3.1.3 连续ARQ的实现机制

介绍滑动窗口机制和窗口滑动规律,演示连续ARQ基于策略2的滑动窗口实现,要求学生探究为什么发与接双方在发送数据前窗口的开始序号以及窗口长度必须一致。

3.2 探究式课堂教学

雨课堂可以采集学生学习了哪些知识点及其学习时长、探究完成情况、不懂的知识点等数据。通过分析这些数据,发现80%的学生反映分组丢失、连续ARQ、连续ARQ接收策略这3部分内容难度较大。借助雨课堂的互动功能,在课堂重点讲解、探究这3部分内容。

3.2.1 探究分组丢失

分组丢失或者确认丢失都会出现发送方死等接收方的确认信息的情况,发送方不会发送下一个分组—产生协议死锁。引入超时计时器后,发送方发送分组时启动超时计时器,当超时计时器超时,就重传分组,这样就可以解决协议死锁问题。教师引导学生进一步探究:①超时计时器设置过大;②超时计时器设置过小;③分组或者确认延迟到达3种情形下引发的问题。学生探究超时计时器设置过大造成网络利用率不高,超时计时器设置过小发送方会频繁超时重传会浪费网络带宽;分组或者确认延迟到达,发送方超时重传会产生分组重复的问题。汇总学生探究的结果得到:超时计时器应该比往返时延大一些,分组要通过序号机制解决重复问题。教师提出序号空间问题:由于序号空间有限,肯定会出现序号轮回,此时若出现序号一样的分组接收方无法判断是否是重复分组。学生探究序号空间问题得出结论:只要保证在分组传输的最大时延内不产生序号轮回就不会产生序号轮回问题。

3.2.2 探究连续ARQ接收策略

启发学生策略1的发送缓存大于接收缓存,接收方必须快速上交分组,否则会造成分组丢失,策略1在工程上很难实现。启发学生策略2的发送缓存等于接收缓存,工程上非常容易实现双方速率匹配,不会出现因为速率不匹配造成的分组丢失,当出现分组或确认丢失时,策略1、2都会产生go-back-n问题,策略3不会出现goback-n问题,但是实现比较麻烦。

3.3 项目实践

为了检验学生掌握所学知识的程度以及培养学生的工程思维和创新思维,目前,设计了网络数据分析和网络协议设计两个实践项目,这两个项目都需要学生掌握网络协议的相关机理。

(1)网络数据分析实践。项目描述:随着网络的普及,网络空间面临的安全威胁与日俱增,社会需要大量的网络空间安全管理与维护专业人才,分析网络数据、挖掘面临的安全隐患是维护网络空间安全的主要手段之一。TCP通过实现连续ARQ协议实现了在不可靠网络实现可靠通信,用网络分析软件WireShark捕获TCP流数据,结合连续ARQ协议和TCP连接管理对TCP流数据进行分析。

项目要求:找出TCP建立连接的3个报文段,找出TCP释放连接的4个报文段,分析这些报文段的序号、确认号、6个控制比特以及窗口值的变化规律,分析TCP流中传输的数据的内容,通过分析掌握连续ARQ网络协议的机理和TCP实现技巧。

(2)网络协议设计实践。项目描述:随着移动设备的普及各种网络应用层出不穷,相当多的应用需要设计专用的通信协议,例如网络支付类应用需要设计安全性高的协议,音乐播放器需要设计数据高速、有序、等时到达的协议等。企业为了保证设备能够正常运行,需要对设备进行维护管理。如果采用定期检修的维护办法,有可能到达检修期时,设备还完全正常;也有可能未到检修期,设备已经发生故障。设备状态健康管理系统通过网络把采集的振动、温度、压力、张力等设备运行状态数据传输到云平台,借助人工智能进行分析可以及时发出设备故障预警。

项目要求:企业的生产环境的差异、网络性能的差异,需要针对具体情况设计专用的网络协议。假定网络性能很好不会产生数据丢失,因而为了提高数据传输效率运输层可以采用UDP,UDP不能保障数据有序到达,基于数据可靠传输的机理设计一个保证监测数据有序传输的网络协议。

4 结 语

我们在两个班级进行了教学实践,有以下体会:

(1)在实施过程中发现有20%左右的学生不能及时完成在线课堂的学习,有6%左右的学生不进行学习,通过调研发现这些学生的自主学习意识和自我约束能力较弱,如何促使这些学生完成在线学习,还有待探讨。

(2)在项目实践环节,如果只对学生提交的项目实践报告进行评价,学生往往会应付了事。我们分两次实施项目实践,完成第一次项目实践后,学生要进行答辩,在答辩过程中,通过横向比较,会发现自己的不足和别人的优点,然后进行自我完善,进行第二次项目实践,最终的项目实践成绩要根据第二次的项目实践以及自我完善程度进行综合评价。

猜你喜欢
网络协议计时器序号
松鼠的计时器
一种蓝牙多跳网络协议的设计与研究
基于载波技术的多点温度测量系统设计
基于DPI技术的语音视频流量监控系统设计与实现
技术指标选股
技术指标选股
技术指标选股
技术指标选股
竖向固定电火花打点计时器的技巧
听过实时游戏吗?Chronos Conquest将发!