计算机网络原理实验课教学体系的设计与实践

作者: 尉哲明 常新功 王开选 梁敏

计算机网络原理实验课教学体系的设计与实践0

摘要:针对地方普通高校计算机类专业特点,在分析了设计计算机网络原理实验课程教学体系的基础条件和研究目标基础上,提出设计网络原理实验课程教学内容的方法;根据方法设计了具体实验项目,包括基础实验、拓展实验、综合课程设计、综合验证实验等;阐述上述实践教学实施过程中取得的教学效果。

关键词:计算机网络原理;实验教学体系;设计方法;实验项目;教学实施;教学效果

中图分类号:TP393        文献标识码:A

文章编号:1009-3044(2022)29-0143-04

计算机网络是高校计算机类专业必修的核心专业课程,计算机网络课的教学体系一般都围绕计算机网络的原理来设计和实施,教学内容的大体框架包括:计算机网络的基本概念、数据通信的基本原理、底层物理网络、Internet各层协议[3]。其中底层物理网络的教学内容需要根据网络技术的发展、教学计划分配的教学时数做出不断地调整、取舍。

在网络原理课程的教学中,实验教学的作用和地位举足轻重。因为原理课程的教学重点是理解协议,相比其他课程,较为枯燥难懂,单靠课堂教学是难以学会的,必须配合与理论教学相匹配的实验课程。对实验课教学体系的研究,多年来一直是重要的课题。

1研究的基础条件与研究目标

1)网络实验室只具备最基本的软硬件环境。

地方普通高校网络实验室可能只具备一些基础网络硬件设备(交换机、路由器、PC)和通用软件,不具备良好的网络硬件和完善的网络管理软件和虚拟仿真环境[7]。

2)专业教学计划中开设网络类课程只有一门“计算机网络原理”。

3)实验课程要与理论课程的教学内容相匹配。

计算机网络原理实验教学需要强化原理类实验,让学生通过实验理解具体的网络协议,而不是将重点放在网络技术的应用与实践上[1]。

通过完成实验项目,促使学生去验证、理解课堂上所学到的“数据通信”“网络体系结构”“分层”“协议”内容,看到实实在在的“帧”“分组”“段”“报文”“请求”“响应”,进而能设计出特定网络应用程序的专用“协议包”。

4)遇到疫情等突发情况时,实验教学需要保证。

5)培养学生具有较高专业技能的同时,具有较高的道德素养。

挖掘实验教学中蕴含的思政元素[4],以润物细无声的方式将思政教育贯穿于教学过程。

基于以上条件与目标,网络实验课程该如何设计能良好实施的教学体系和实验项目?

2计算机网络原理实验课程教学体系的设计方法

2.1从解决问题的角度出发,使学生有效理解协议

通过两个例子说明:

⑴ 数据通信过程中可能受到噪声干扰,导致所传输的二进制数据发生错误。为了使发送数据能被接收端正确接收,实现可靠传输,需要进行差错控制。

如何进行差错控制?通过发送端与接收端之间的差错控制协议,而差错控制需要先进行差错检测,看是否发生了数据传输错误。

设计的实验项目,可以让学生编写程序实现对传输数据进行错误检测[2],模拟发送端与接收端的操作;进一步拓展实现差错控制。

⑵ 为了测试网络节点之间是否互通,需要运行Ping程序。而Ping程序的工作原理运用了ICMP协议,同时涉及ARP协议。如果通过Internet去Ping一个用域名表示的主机,还涉及DNS协议。此外可以考虑协议包的封装,就此理解分层、接口、服务的概念。

设计的实验项目,可以让学生使用抓包程序,捕获运行Ping程序涉及的协议包并进行分析验证。

2.2从实验中验证、理解分层与协议(抓包与分析)

计算机网络原理课程的教学重点是“协议”。

网络的分层体系结构中存在大量的“协议包”[1],这些协议包的结构中包含着实现协议所完成功能的有效信息,只有充分理解了协议包中每一个字段的含义、协议的通信过程,才能掌握计算机网络的原理。要实现此教学目标,光靠理论课的讲解和学习是远远不够的,需要通过实验去验证、联系和巩固。

抓包程序是完成网络原理实验的重要而有效的工具。通过分析“抓”到的协议包,可以验证理论课堂学习到的协议内容,有效理解协议。如此可真正使实验教学与理论教学内容相匹配。

使用这种方法,可以设计出很多具体的实验项目。

2.3设计专用协议

在学习和实验了各层的多种多个协议、完全理解了“协议”概念的基础上,可以根据网络应用程序的需要,设计出专用的应用层协议。

通过编程,实现设计好的专用应用层协议:“请求”和“响应”;进而实现具体的C/S或P2P网络应用程序,有效提升学生的计算机专业素质。

2.4体会组网以及划分“虚拟组”的乐趣

在专业教学计划中开设网络课程只有一门“计算机网络原理”情况下,该门课程的实验教学需要兼顾组网。组网实验也是学生学习网络课所感兴趣的实验内容,只是由于计算机网络原理实验课的实验内容繁多,教学负担重,所以不能覆盖较多的组网实验项目。

结合理论课的局域网教学内容中有关交换机、VLAN的原理学习,可以精选一两个组网实验。通过实验,学生自行组建以太网,设计VLAN逻辑组并在交换机上完成配置。

2.5综合性、创新性课程设计[5]或验证实验

学生设计出网络应用中专用的应用协议,通过编程实现协议,进而设计并实现网络应用程序[3]。这些实验都是综合性课程设计,能有效提高专业素质。

也可以设计出综合性验证实验,让学生全面理解和掌握计算机网络的概念和原理。例如,捕获和分析Windows下的Tracert命令程序、ping命令程序涉及的各协议包结构、通信过程以及封装关系。

3计算机网络原理实验项目设计举例

3.1差错检测与差错控制

3.1.1 基础实验:差错检测

在Internet各层协议中,都需要进行差错检测,而完成差错检测需要发送端和接收端配合、共同遵守协议规则,利用相同的差错检测算法计算校验码,以此判断出接收的数据与发送的数据是否一致。若接收的数据与发送的数据不一致,说明接收的数据在传输过程中出现了差错,接收端会丢弃该数据包。

选择一种差错检测算法[2],编写程序,对模拟发送的数据计算出校验码,将校验码与数据一起发送;接收端对接收内容使用同一算法程序计算。在算法实现正确的基础上,分别模拟发送端和接收端的行为,以此实现差错检测功能,进而理解差错检测协议。

3.1.2 拓展实验:差错控制

在正确实现差错检测算法程序的基础上,进一步编写发送端和接收端程序,实现差错控制协议,完成消除差错功能,保证可靠性传输。

需要可靠性保证的协议,如无线局域网的MAC协议802.11、Internet的TCP传输协议、一些专用设计的应用层协议(选用了UDP不可靠的传输协议,自身又需要可靠性保障),使用定时器控制发送端在一定时间内未收到接收端发送的确认情况下,重新发送缓存的协议数据包,在差错检测基础上进行差错控制。

接收端收到无差错数据后,发送确认信息给发送端;发送端则需模拟未收到确认情况下重发数据包的情形。

3.2协议验证实验

使用抓包程序,捕获、分析协议数据单元的结构和通信过程[1],验证和理解、掌握理论课堂学到的协议知识;综合的协议验证实验可以实现对网络的分层体系结构、各层协议内容融会贯通。

常用的可免费下载使用的抓包分析软件有Ethereal、Wireshark、Microsoft Network Monitor。

3.2.1 基础实验设计举例:TCP协议验证

运行抓包程序,记录上网或者运行专用的C/S网络应用程序时抓取的TCP协议包。

⑴ 分析TCP协议包的数据结构

用抓取的TCP包,对照图1进行分析验证和理解。

⑵ 分析TCP协议的通信过程。

① 建立连接

通过抓包,学生可清晰地看到建立TCP连接时的三次握手机制[1],如图2所示。

② 全双工可靠传输数据、确认,如图3所示.

③ 断开连接

全双工的任何一端数据先发送完毕,即可向对方发送断开连接请求(FIN标记为1),对方收到断连请求后回送确认,这一方向的连接断开,反方向可以继续传输数据;反方向的断开连接过程相同。如图4所示。

⑶ 分析TCP的上下层协议

理解TCP协议是为上层协议提供服务的;同时理解TCP协议包需要传递给下层协议,后者为其完成发送。

如图5所示,TCP协议包中封装的上层协议是HTTP;而TCP协议包被封装在下层IP协议包中发送。

3.2.2 综合验证实验设计举例

ping命令运行时使用与涉及的协议分析

⑴ 实验目的:理解计算机网络体系结构中层与层之间的封装;掌握局域网的MAC协议,掌握ARP协议的工作机制,掌握ping命令使用的ICMP报文类型和发送方法;掌握对协议数据单元的分析方法。

⑵ 实验步骤:

① 利用实验室中现有以太网络(疫情期间可使用家中的Wi-Fi代替以太网完成实验),分别利用IPConfig命令查阅两台PC机的IP地址。

② 使用Wireshark(疫情期间家中可配合使用Microsoft Network Monitor)开始捕获。

③ 在一台PC机上,对另一台PC机执行ping命令。

④ 记录Wireshark(或Microsoft Network Monitor)捕获到的数据包,并加以分析。

⑤ 再次执行ping命令(配合使用arp -a命令)。

⑥ 再次记录Wireshark(或Microsoft Network Monitor)捕获到的数据包,并加以分析。

⑦ 完成实验报告。

⑶ 实验记录内容设计举例:

① 实验环境概述:以太网还是Wi-Fi无线局域网?使用了几台计算机?各自的IP地址?如果是WiFi,无线路由器的IP地址?使用的抓包软件?抓包软件在哪台计算机运行?

② 两次运行ping命令涉及到的协议数据内容捕获记录

⑷ 回答问题内容设计举例:

① 根据捕获到的记录,分析ping命令执行时,网络传送的各种协议包的类型和时序。

② 为什么会运行ARP协议?分析ARP请求包与应答包中各主要字段的含义,ARP协议包是被封装在什么协议中发送的?

③ 两次执行ping命令后,网络中传送的数据包有无区别?如有,说出是何区别?

④ 总结ARP协议的工作原理

⑤ 试说出ping命令执行时,发送的echo请求和echo应答的报文类型。解析报文中各字段的含义。回答报文发送时的底层封装协议各是什么。

⑥ 根据捕获到的记录,说明底层物理网络的类型和帧格式,以及在各条记录中底层网络的帧里所封装的上层协议类型。

⑸ 实验扩展:通过校园网(疫情期间通过Wi-Fi)测试本主机与因特网上知名服务器(ping参数为服务器域名)的连通性,说说捕获到的协议包与上述实验有何不同?解释其原因。

3.3专用协议设计

网络应用程序的设计与实现[3],此实验完成一个综合课程设计。

上一篇 点击页面呼出菜单 下一篇