尹友明
(衡阳技师学院 湖南衡阳 421001)
报文分析技术在计算机网络教学中的应用探讨
尹友明
(衡阳技师学院 湖南衡阳 421001)
计算机网络技术的快速发展,计算机网络广泛的应用,大多中职院校开始了计算机网络教学,不少学校顺应时代需要建设了校园网,并连入了互联网,开始了网络教学的尝试。所谓网络教学是指教师利用计算机网络向学生传递教学信息,或学生通过计算机网络获取知识。由于网络教学具有时效性、共享性、交互性和个别化等特点,教师在教学过程中如何根据网络教学不同的教学模式,发挥教师的主导作用和激发学生自主学习使学生成为认识的主体,这就要了解网上教学的教学模式、特点、问题以及应对办法,在教学工作中不断实践与创新。
报文分析技术 计算机网络教学
计算机网络是计算机科学与技术、网络工程专业的专业核心课程,它主要讲述计算机网络的发展历史、基本概念、体系结构、基本原理与技术。在计算机科学专业,特别是网络工程专业课程体系中起到重要的理论支撑作用。它涵盖了网络基础知识、数据通信基础知识、网络体系结构、局域网技术、广域网和internet应用等基础知识。教师讲授计算机网络基本原理时,通常辅以大量Wire Shark报文分析软件基本操作教学,让学生尽快从全局角度把握计算机网络体系结构。[1]
1. ARP协议工作原理介绍
为了让学生容易理解协议中的很多抽象概念,我们建立特定局域网场景。以主机A(192.168.1.5)向主机B(192.168.1.1)发送数据为例,当发送数据时,主机A会在自己的ARP缓存表(存放IP地址与MAC地址一一对应关系)中寻找是否有目的主机的IP地址。如果找到了,也就知道了目的主机的MAC地址,即可直接把目的主机的MAC地址写入Ethernet帧结构中发送;如果在ARP缓存表中没有找到相对应的IP地址,主机A就会在网络上发送一个ARP请求报文,目的MAC地址是“FF-FF-FF-FF-FF-FF”,这表示向同一网段内的所有主机发出这样的询问,即广播“192.168.1.1的MAC地址是什么”,网络上其他主机并不响应该ARP询问,只有主机B接收到这个帧时,才向主机A做出回应“192.168.1.1的MAC地址是00-0B-DB-47-70-24”。这样,主机A就知道了主机B的MAC地址,即可以向主机B发送数据报文了。同时,主机A还更新了自己的ARP缓存表,下次再向主机B发送数据时,就可以直接从ARP缓存表里查找。如果源主机没有发送ARP请求而收到其他主机的ARP响应数据帧,源主机也会在本地ARP缓存区中缓存该主机物理地址与IP地址的对应关系。ARP缓存表采用了老化机制,在一段时间内,如果表中的某一行没有使用,就会被删除,这样可以大大减少ARP缓存表的长度,加快查询速度。[2]
2.Wire Shark捕获
(1)运行Wire Shark,点击“Capture Options”,将网络适配器的监听模式设定为混杂模式(Promiscuous Mode),此种模式下,网卡将接受同一网络内所有主机所发送的数据包,达到对所有数据包进行捕获的目的。
(2)在主界面点击“Start”按钮,开始捕获网络报文。
(3)在Windows平台,以管理员身份运行“命令行提示符”,输入命令arp–d,清除机器ARP缓存表,后续使用ping命令,即可产生ARP请求报文和响应报文。
(4)切换到Wire Shark界面,在过滤器输入栏(“Filter”)输入ARP,即可过滤出所有捕获的ARP报文。通过以上操作可以有效地把ARP报文捕获。演示的过程中,教师可以对每一个步骤进行较为详细的讲解,让学生理解操作背后的意义。例如ping命令是如何基于ICMP协议实现,当中又在何时触发ARP协议工作。在Wire Shark界面的报文查看区,教师可以展开树形菜单,为同学们重点讲解每个字段的含义,并将捕获的信息与ARP数据报文格式进行对照分析。
3.学习使用Win Pcap开发框架
(1)程序流程
由于发送接收报文需要绑定在特定的网络适配器上,所以程序开始的时候,首先读取全部的网络适配器列表,由用户选择适当的适配器。在选择网络适配器后,系统开始检测用户选择是否正确,确认无误后,即获得指定适配器的IP地址和MAC地址,然后开启两个核心工作线程分别发送ARP请求数据帧及接收ARP数据帧。
(2)核心数据结构
教师还应重点指导学生构建3个核心数据结构,分别是Ethernet帧头部结构、ARP数据帧头部结构以及最后封装结构。
(3)程序核心函数说明
通过编程实现对ARP报文的捕获和分析主要涉及4个核心函数:填充ARP数据帧、发送ARP数据帧、接收局域网中活动主机发送的ARP响应帧、解析ARP数据帧内容。其中填充和发送ARP数据帧函数实现较为简单,一般依据前一小节谈到的3个数据结构,输入参数,构建对应结构体,在获取指定网卡句柄之后,调用Win Pcap提供的API来完成数据帧发送。较为复杂的核心函数是如何捕获ARP响应帧并进行相关解析,其算法思路是先打开指定的网络适配器,将其设定为混杂模式,然后针对ARP协议设置Win Pcap Fliter(过滤器),确保只接受ARP数据帧,降低额外的CPU占用率,最后在一个永真循环中介绍ARP响应帧,并根据响应的数据帧内容给主线程发送消息,通知其更新界面,输出分析结果。
在计算机网络相关课程教学中,笔者尝试将协议分析软件以及Win Pcap网络编程引入教学,使协议、层等概念变得直观而生动。将协议分析软件、Win Pcap编程开发引入教学可以规避教学的不足,解决了传统教学内容抽象和缺乏实践的问题,让学生有了更深入的理解,提高了学生的学习兴趣,同时也为后继课程打下良好基础。
[1]戟峰.教育技术进入信息化发展新阶段[M].中国电化教育。2000.3
[2]田屹.论信息时代的学校网络教学[J].教育技术中心2004-10-24