APP下载

穿插\\联系和系统

2010-12-31郑阿奇

计算机教育 2010年23期

  摘要:针对计算机网络教学存在知识点分块的问题,提出解决办法。在课程结束前,对计算机网络内容进行总结和综合,包括构建与配置网络系统、将IP地址及其相关问题联系在一起、理解两种服务和从数据传输过程理解系统,通过穿插、联系和系统方法,使学生计算机网络课程知识系统化。
  关键词:计算机网络;课程;知识;系统化
  
  
  计算机网络课知识很多,而且错综复杂,教材一般是将计算机网络内容按“块”组织并展开的,如计算机网络概述、物理层、数据链路层、局域网、广域网、网络层、运输层、应用层、网络安全、网络应用等。同样,授课一般也是依教材的内容和次序进行组织,一块一块内容、一堂课一堂课讲解,因此,学生积累的是点,最多也就是面的知识,而计算机网络是一个系统,学生仅仅掌握面的知识不是课程的目的,把面的知识变成立体的知识并形成系统,知识才能活起来、才能有用。
  目前,计算机网络课程教材均没有对计算机网络知识进行梳理、总结的内容。在计算机网络课程内容介绍完成后,对计算机网络课程内容进行梳理总结很重要。通过教学实践,我们发现采用穿插、联系和系统的方法能够让学生将学到的知识形成系统。
  1构建和配置网络系统
  1.1从简单网络及其配置说起
  两台计算机通过双绞线连接起来,说明双绞线4根线的作用、水晶头连线的做法、连通检测工具,交叉线和直通线用法。两台主机配置IP地址、子网掩码,用Ping检查网络是否连通,将文件夹作为共享资源。通过Ping命令的功能复习ICMP协议。
  通过共享集线器或者交换机连接主机组成小的
  局域网。结合本校网络实验室设备,配置交换机的IP地址,配置VLAN,检查VLAN配置是否正确。据此,介绍共享集线器工作原理、特点、工作的层、网络的拓扑结构。介绍交换机工作原理、特点、工作的层,区分半双工和全双工工作方式,由交换机组成的VLAN工作原理、应用场合。
  在这个基础上,系统介绍以太网的组成、以太网的扩展(包括中继器、网桥、集线器的级联)、高速以太网等。
  通过路由器连接两个局域网,结合本校网络实验室设备,配置路由器的IP地址、静态路由表,主机IP地址、子网掩码和网关。据此,介绍路由器的工作原理、路由表及其形成。进一步通过2个路由器连接3个网络,其中中间是广域网,并以此作为一个小的自治系统,配置路由器的内部网关协议RIP。在这个基础上,总结自治系统及其内部网关协议IGP和外部网关协议EGP。
  如果有可能,可以对几个典型的网络案例进行分析[1]。
  1.2从接入互联网谈起
  通过本地IP地址和全局IP地址,引入代理服务器、NAT和VPN。分别介绍它们的工作原理、应用场合、上网的特点。
  通过家庭上网,介绍ADSL工作原理、连接方法。介绍家庭无线路由器工作原理、连接方法、上网的特点。
  介绍一个单位网络的基本构成,包括拓扑结构、传输介质、设备配置、结构化布线方案和接入因特网方法。拓扑结构主要突出星型结构,传输介质主要突出双绞线和光纤。以自己熟悉的当前运行的单位或者政府(例如区)网络为例进行分析。通过碰撞域和信号不失真传输距离解析采用传输介质的最大长度。
  介绍工业现场典型网络构成、拓扑结构、设备配置。拓扑结构主要突出总线结构,同时介绍RS485和CAN总线等。设备包括PLC、工控机和嵌入式装置。
  介绍本校校园网的构成(包括校内无线网)、本城市内校园网的连接、如何连入中国教育与科研网[2]。
  2把IP地址及其相关问题联系在一起
  先提出下列问题:“如果学生宿舍两台计算机通过集线器连在一起,如果IP地址分别配置成192.168.1.1和192.168.2.1,这两台计算机是否无法打交道?”学生当然是能够回答的。但如果提出“计算机为什么要同时采用IP地址和硬件地址?”这个问题,有不少学生说不到位。课程总结时,通过第一个问题,复习IP地址的分类、子网掩码、网络号、主机号等。通过IP地址分类的缺限,介绍子网和超网(CIDR)原理、计算方法及其与它们有关路由器查找路由算法的变化。通过IP地址存在的问题,对IPV6主要特点作个介绍。
  通过第二个问题,介绍IP地址用于找到目的主机所在的网络,而在同一个网络中数据采用的是数据链路层的帧传输,而帧采用是硬件地址(封装在MAC 帧中称为MAC地址),通过ARP可以将目的主机的IP地址查到对应的硬件地址。
  关于计算机在广域网中的地址,将最简单的层次结构地址与EUI-48地址进行对比,说明它们的共同点和不同点。
  在由IP地址得到网络号和主机号基础上,引入单播、广播、多播。通过上面的介绍,单播就不需要更多说明,主要是广播和多播。关于广播,说明IP地址如何表达广播地址,硬件地址如何表达广播地址,通过ARP给广播举例。关于多播,介绍IP使用D类地址支持多播,以太网多播地址表达方法以及它们的映射关系。关于多播其他内容包括IGMP,因为内容多,应该专门梳理。
  在介绍硬件地址和IP地址的基础上,引入域名和DNS,域名需要说明域名树型结构,DNS需要说明它的作用、DNS服务器的分布、由域名查找对应的IP地址的过程。从而形成了域名——IP地址——硬件地址系统知识链。
  3为了提供更好的“服务”费尽心血
  3.1理解两种“连接”服务
  计算机网络从不同层面提供面向连接可靠的服务和无连接不可靠的服务,而且由此产生了很多相关问题,学生不易理解,认为交给目的主机的所有数据都应该是正确的和完整的。为了进一步理解这两种服务的特点,可以先大致介绍文件传输、IP电话等工作原理,让学生明白,有些应用到达目的主机的所有数据都必须是正确的和完整的,例如文件传输。有些应用(例如IP电话)实时性比可靠性更重要,个别数据包丢失或者不正确并不影响它的使用。在这个基础上进行总结,为了适应不同应用的需要,计算机网络需要同时提供面向连接服务和无连接服务。然后,从运输层、网络层和数据链路层分别展开说明。
  UDP和TCP是TCP/IP体系运输层提供的无连接服务和面向连接服务,在应用层,DNS、RIP、DHCP、SNMP、IP电话、流式多媒体通信等都采用UDP服务,而HTTP、FTP、SMTP、TELNET等都采用TCP服务。因为UDP是无连接服务,所以它报文格式首部比较简单。TCP是面向连接服务,所以它报文格式首部非常复杂。TCP为了实现可靠数据传输,传输前需要建立连接,连接成功才能进行数据传输,传输结束后需要释放连接。为了可靠建立连接,需要3次握手。数据传输时,通过“窗口”协调双方的传输节奏,通过检验和判断接收到的数据是否正确,通过确认报文通知发送方已经接收到的数据情况,等等。传输结束,需要双向释放连接。通过上面UDP和TCP数据传输穿插和比较,把许多概念联系起来,区分开来[3]。
  TCP/IP体系的网际层提供的是无连接的IP服务。
  在数据链路层,以前非常流行的连续的ARQ协议是面向连接的可靠的数据传输协议,所以,需要包含建立连接、数据传输、释放连接过程,帧头部包含序号字段,用于描述当前传输的帧的编号和接收方对收到的帧确认,用FCS字段表达数据检验,用确认帧告诉发送方接收的帧是否正确。而当前流行的PPP协议的帧格式中没有序号字段,因为它是无连接的传输协议。同样,以太网也是采用无连接传输协议,所以,以太网V2标准和IEEE的802.3标准的MAC帧格式都很简单。实际上,无连接的传输协议并不一定就是不可靠的数据传输,像以太网本身传输很少出错,由于协议简单,所以网络的传输效率非常高。
  
  3.2通过“校验”才能心中有数
  从某种程度说,计算机网络的功能就是数据传输,保证数据传输的正确是计算机网络要解决的问题。那么,如何知道接收到的数据是否正确?采用的方法就是对数据进行校验。在上课时,要反复提数据校验问题,并通过下列总结,对这方面内容进行梳理。
  计算机网络除了应用层外,每层都对数据进行校验。例如,数据链路层帧的FCS、IP数据报的首部检验和、TCP、UDP、ICMP、IGMP、OSPF等报文中的检验和。总结时,先分层,然后进行联系。先提出为什么“数据链路层的FCS在帧尾部,其他层的报文检验和在报文的头部?”如果学生不能正确回答,教师解析原因。因为FCS采用CRC方法通过硬件自动生成,其他的检验和是通过软件计算的[4]。然后,再提出“IP数据报中首部检验和为什么只针对头部?”。如果学生不能正确回答,教师解析,需要IP提供服务的TCP、UDP、ICMP、IGMP、OSPF等报文本身都包含检验和,判断IP交给它们的数据正确性由自己完成。
  另外,数据传输正确性对计算机网络非常重要,但网络数据安全同样重要。对于网络安全,先从一般数据加密模型介绍加密解密过程,然后复习常规密钥密码体制和公开密钥密码体制、数字签名、报文鉴别等,关注防火墙的工作原理和防火墙产品。最后介绍当前电子商务中数据安全保障方法。因为有些专业方向还有专门课程介绍这方面内容,所以这方面内容应该根据情况有所侧重。
  4从数据传输过程理解系统
  4.1穿透“层”看数据传输过程
  层是计算机网络中最重要的概念之一,在当时介绍TCP/IP体系结构时学生不易理解透彻,而在介绍每层协议时重点关注又是当前层的功能。在课程总结时,通过“层”穿透过程可以很好理清层及其横向关系、纵向关系。先对TCP/IP体系的层进行系统梳理,以一个网络应用(例如,网络聊天)的实际数据传输为例,说明数据(例如聊天内容)如何在应用层、运输层、网络层、数据链路层层层封装、每一层封装的数据是什么,如何调用下层为上层提供的服务。到达目的端,从数据链路层、网络层、运输层到应用层如何解封装,下层依据什么往上层递交等等。在这个基础上,说明层间SAP、数据传输效率等。通过解析Ping程序ICMP与IP之间打交道的方法,把层间交流具体化[5]。通过MFC Socket编程方法,说明用户编写的网络应用程序如何调用系统提供的层服务,进一步理解层间关系。同时,说明P2P实现原理。
  在此基础上,通过说明同一层协议运行方式,通过多个协议举例,说明网络协议的主要3个要素语法、语义和同步。
  4.2把TCP/IP体系分成两个部分
  学生上课时,容易误解TCP/IP 5层体系中的数据链路层,这样在理解以太网、ATM、接入网(包括以前的X.25、帧中继)时会出现误解。前面介绍某一部分时可能很难说清楚,复习总结时需要对这方面的内容进行梳理。梳理后,学生会感到原来局部介绍时的“乱麻”实际上是围绕一根线主线展开的。把TCP/IP 5层体系以数据链路层和网络层中间为界,分成上下两部分,下面部分就是实现在一个网络中数据传输。对于TCP/IP体系来说,需要传输的内容一般就是IP数据报。具体如何实现传输,不同的计算机网络采用不同的方法。这方面的内容,通过下列几条线可以把许多相关的内容联系起来。
  从信道类型讲,数据传输网络包括点对点信道和广播信道。点对点信道因为没有争用信道的问题,所以传输的方法和传输协议(例如PPP协议)比较简单。而广播信道因为大家共享,所以就产生争用的问题,争用的规则是CSMA/CD协议。在广播信道上传输的帧的格式中帧头部需要包含源MAC地址、目的MAC地址以确定帧的发送者和接收者。不管是IEEE的802.3标准帧还是以太网的V2标准帧都是如此。另外,无线局域网传输有它自己的特点,采用IEEE的802.11帧的帧头部地址多了一些。
  因为不同时期、不同类型网络实现数据传输有不同的特点,实现的方法是不同的,分层也不一样。以太网的V2标准数据链路层就是一层,IEEE的802.3标准把数据链路层的功能分成LLC子层和MAC子层。而以前的X.25网分成分组层、数据链路层。帧中继的数据链路层功能只有X.25的部分数据链路层的功能。
  总结到此,学生可以明白:不同的网络为了实现数据传输,自己分几层、层的名称叫什么,这是由它们本身确定的。但它们都能够实现TCP/IP体系中的数据链路层功能。而且不同的网络无论帧的格式有什么不同,它们都包括3个部分:帧头、数据部分和帧尾。帧尾用于数据校验。
  从信号角度讲,信道分数字信道和模拟信道,数字信道可以直接传输数字信号,但由于同步问题(可以复习同步的概念),传输的数据需要编码才能进入数字信道。而编码有多种(例如曼彻斯特编码、4B5B编码等),它们的编码效率不一样。模拟信道不能直接传输数字信号,所以需要进行调制,调制的方法有3种,实现这种方法的装置是Modem。目前,家庭上网用的ADSL就是一种Modem。
  4.3从TCP/IP体系结构的沙漏模型看应用层
  TCP/IP体系结构像沙漏模型,其中网络层主要是IP,运输层包含UDP和TCP,而应用层协议很多,包括HTTP、FTP、SMTP、TELNET、DNS、SNMP、RIP…。因为互联网不同应用需要描述的内容不同,所以一个应用就必须制定一个规则,形成一个协议。为了在运输层递交时能够区分它们,定义了端口号,称为熟知端口号,并且为今后更多的应用预留了足够的端口号。
  总结不同的应用不能面面俱到,应有所侧重,这
  利于学生掌握重点。
  总结HTTP时,先说明用户输入URL,系统通过DNS查找目的主机对应的IP地址,可以通过URL实例说明DNS过程。此后,突出从输入地址到网页出现在IE浏览器上的过程。通过这个过程,说明HTTP请求和应答报文,理清IE浏览器浏览网页过程的客户和服务器工作方式和无连接循环服务器工作方式特点。
  总结FTP,要突出为什么同时需要控制进程和数据传输进程,让学生理解一个FTP服务器是如何实现同时为多个客户提供服务的。说明用于下载文件的应用程序如何通过界面简单操作实现文件下载、断点续传的原理。通过FTP,说明面向连接并发服务器工作方式。
  总结SMTP,要突出UA、发送邮件服务器和接收邮件服务器,通过UA发送接收邮件过程,说明每一过程使用的协议。说明通过网页与通过UA发送接收邮件使用的协议有什么不同。还要说明,MIME与STMP的关系、对邮件内容的编码方法及其效率和应用场合。
  总结SNMP,要突出网络管理的概念和实现方法,可以通过一个熟悉的应用场合举例[6]。
  5结语
  抓住上述几个方面的问题,将每一条线上的主要知识梳理清楚、联系起来、构成系统,这样就可以比较清楚地展现计算机网络课程的主要内容,并使计算机网络内容简单化。总结综合需根据学时可能及确定相关知识展开的程度,举例不需要太详细。需要注意的是,复习总结不可面面俱到,必须抓住重点,相关知识展开不可偏离当前的线路。否则,复习总结不但没有起到预计的效果,还会让学生认为计算机网络太乱、太杂、太复杂。另外,计算机网络课总结的效果与此前已经掌握的网络课程知识有关,如果在学生自己进行初步梳理后进行,效果会更好。
  致谢:本文得到南京师范大学计算机软件技术基础教学团队的资助。
  
  参考文献:
  [1]