浅谈WinPCap和计算机网络协议


对于一些协议分析,我们可以借助一些软件的力量。这里我们就将要为大家讲解一下WinPCap以及计算机网络协议等相关的内容。那么就让我们先来看看具体的WinPCap的工作原理:

系统的开发和应用WinPcap支持Win32平台上信息包的捕获和网络分析,它的主要思想来源于Unix系统中最着名的包截获架构,目前已在许多领域得到了应用,如网络监控、电子监考等㈡103.WinPcap的基本结构由3个模块所组成.

(1)内核级的网络组包过滤器(Netgroup PacketFilter,NPF).运行于操作系统内核中的驱动程序,直接与网卡驱动程序进行交互.它的主要功能是过滤数据包,在包上附加时间戳、数据包长度等信息.它直接从数据链路层取得数据包,不加修改地传给运行在用户层的应用程序,也允许用户发送原始数据包.

(2)低级动态链接库(Packet.d11).用于在Win32平台上为数据包驱动程序提供一个公共接口,把应用程序和数据包监听设备驱动程序隔离开来,使得程序可以不加修改地在不同Windows系统上运行.

(3)高级系统无关库(Wpcap.d11).工作在用户级,和应用程序编译在一起,并使用Packet.dll提供的模块,向应用程序提供完善的监听接口.Wpcap.dll模块与Unix系统下的BSD截获架构提供的Libpeap库完全兼容,提供了一组功能强大而且跨平台的函数,利用这些函数,可以不去关心适配器和操作系统类型.

系统的开发和应用

WinPCap向上层的应用程序提供了网络监听的接口,通过这些接口,应用程序可以捕获网络通信中发送或接收的数据包.因此,网络协议实验系统可以利用WinPCap捕获在实际的网络通信中产生的数据包,并以一定的方式展示出来.实验系统的主要目的是要方便对计算机网络协议的理解,因此针对计算机网络的原理和协议,系统在以下2方面着重进行表现.

(1)协议分层.目前实际应用的计算机网络都是基于TCPIP体系结构,整个网络协议分为4个层次,从下到上依次为接口层、网际层、传输层和应用层,每层又有若干协议.因此在捕获数据包后按协议进行拆分,把不同的协议数据归于相应的协议分层结构中,并把协议分层以层级的方式表示,从而把网络体系结构原理通过形象和具体的方式表示出来.

(2)协议格式.实验系统的主要任务是将数据包中每层协议的数据提取出来,准确界定每个协议的起始和结束,把每个协议的数据标示出来,系统可以根据通信数据,自动分析各协议中每个字段的含义,必须根据具体的通信数据,利用所学的相应网络协议知识进行分析.

为了了解协议分层结构的具体实现,本系统在开发时,采用整个数据包的数据完整连续显示,各协议的数据用突出颜色着重显示,通过观察不同协议的数据,可以了解计算机通信中,如何通过多层协议组装成完整的通信数据包.

系统对通信数据的处理过程如图2所示.首先利用WinPCap的pcap—findalldevs函数获取计算机的网卡,并把可用的网卡(有的计算机可能有多个网卡)列表显示出来供用户选择.系统提供操作界面让用户选择网卡并设置通信数据包的过滤条件,系统根据用户的设置用WinPCap的pcap—open—live函数打开相应网卡接口,利用pcap—setfilter函数设置过滤条件,然后用pcap—dispatch或pcap—next—ex函数捕获通信数据包,并把数据包列表显示供用户选择.若用户选择某一数据包,系统对该数据包进行拆分,按协议分层的层次,以及各层协议的格式,界定并显示不同协议的数据.

系统提供实验报告的一些辅助功能,如生成实验报告的模板,根据选择的计算机网络协议的数据,填人各字段的含义,生成并打印实验报告.实验系统的主界面如图3所示.界面主要包括:

①网卡(网络适配器)列表,在上部显示;②捕获的数据包列表,在界面的中间部分显示,列表中显示了数据包的部分关键信息;③各协议及其数据,在最下部显示,这又包括2部分,左边部分显示协议名称,按协议分层的要求进行显示,右部是以十六进制表示的数据包数据,当在左边部分选择协议名称时,右部相应协议的首部数据以红色突出显示.

该系统所占资源很少,因此可以在配置不高的计算机上正常运行,唯一的要求是计算机能够连入计算机网络,即使不连入Intemet,在局域网环境中也能方便地开展实验.实验时不需要专门的服务器'也不需要对计算机之间通信作特别设置,安装并运行该系统,只需要正常使用计算机进行适当的网络操作,例如用浏览器浏览学校主页,从而产生一定的网络通信数据包,系统自动捕获这些数据包并进行分析.系统的操作过程很简单,容易掌握,非常适于非计算机专业的使用,该系统已经在我校工业工程专业的"计算机网络技术"课程的实验中使用,效果良好.

结语

针对高校计算机网络课程的实验,开发了网络协议分析实验系统,以解决网络设备昂贵、更新换代快,教学单位无法拿出足够资金配置专门网络实验室,造成学生实验不足甚至无法实验,从而严重影响到教学质量的问题.利用该系统可以使学生了解计算机网络协议分层及其实现,并开展以太网帧格式分析、IP(目前主要是IPv4)数据包格式分析、IP控制管理协议一ICMP报文格式分析、TCP和UDP数据包分析、Hrll'P协议分析等实验教学内容.在计算机网络课程的教学和实验过程中使用网络协议实验软件系统,可以弥补网络原理教学过程抽象、枯燥的缺点,可以形象化地展示真实网络工作的过程,使学生更深入地理解计算机网络和互联网.

相关内容