基于局域网的IP数据包监控软件的实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Network World •
网络天地Electronic Technology & Software Engineering 电子技术与软件工程• 17【关键词】局域网 IP 数据包 网络监控
1 基于局域网的IP数据包监控软件的实
现原理
本软件具有对IP 数据包的监控分析的基
本功能,主要采用嗅探器的基本原理抓取网络
有效信息,通过微软的系统网络编程,从中过
滤抓取有用的数据,从而完成对IP 数据包的
监控,并以此保证程序的安全性得到保障。
常见的捕包方式有三种,分别为NDIS ,
WinPcaP ,Raw Socket 三种技术。
本软件要完
成对IP 数据包的监控技术,大致需要五个步
骤才能完成。
首先是成功捕获IP 数据包,然
后分析捕获的IP 数据包,一般是根据用户提
供的条件对IP 数据包筛选从而确认数据包状
态,分类汇总流量,然后保存下来。
2 基于局域网的IP数据包监控软件的功
能介绍
2.1 数据监听功能
因特网是由无数的局域网连接形成的。
互联网的内部网络的连接方式是什么?它是基
于拓扑结构来完成基础网络的架构。
基础架构
规定一段信息的传输都是从一点到另外一点的
模式,这里有客户端和服务器端的区分,服务
器端却是基于它的特性分布在局域网当中。
但
互联网上的主机通常是在局域网中,局域网通
常都会连接到外网,局域网是一种广播网络,
在服务器端放上信息,像网站源码,应用程序
之类都可发布到IIS 服务器上,任何一个客户
端都可以在互联网上通过IP 地址或者具体域
名来进行访问。
如果以太网中计算机的网卡接
受模式设置为混合模式,则网卡将捕获所有数
据包并向上传递数据包。
通过这种方式,可以
窃听和拦截以太网内传输的信息,软件就是基
于此原理来完成对数据的监听。
2.2 网络流量监控功能
根据监听的原理,本监控软件主要完成
了监听局域网内数据包、对数据包进行拆分并
且以不同方式显示,对拦截的数据包的端口、
协议类型以及P 地址进行过滤。
为了实现这些基于局域网的IP 数据包监控软件的实现
文/王一军
功能,将其分为四个部分:数据包截获、分组分割、分组过滤和分组显示。
2.3 扫描程序功能该软件能够对局域网中的一切计算机信息和共享文件完成扫描,这其中又分为高速扫描模式和完全扫描模式。
扫描后可获得计算机名称、IP 地址、MAC 地址、共享资源等信息。
2.4 ping程序Ping 是网络中非常有用的TCP/IP 工具,能够经过Ping 查看连通性问题。
这个问题却是可以由于许多因素引发的,例如系统配置出错、网络协议故障,当然还可能是电脑或者服务器故障。
2.5 路由追踪功能路由跟踪可用于确定IP 数据包的最终目标的路径。
tracert 命令使用IP 生存期(TTL )字段和ICMP 错误消息来确定网络上从一个主机到另一个主机的路由,通过向目标发送不同IP 生存时间(TTL)值的“Internet 控制消息协议(ICMP)”回应数据包,Tracert 诊断程序确定到目标所采取的路由。
在转发数据包之前,对于路径也会有一定的规定,要求路径上的每个路由器的数据包里的TTL 属性最少要往下减1。
数据包的TTL 属性的波动幅度可能会不断减少,当其变为0时,路由器会发送超时的信息到客户端,当数据包的TTL 为1时,软件会发送相应的响应包,数据包发送一次,TTL 值就会增加1,目标会随着数据包的发送进行响应,路由就会得到确认,或者是TTL 增加到最大值,此时路由也会确定。
路由确定时,路由器会发送相应的超时消息来进行提醒。
有些路由器丢弃TTL 过期的数据包而不提出任何疑问,这在本程序中却是看不到的。
3 监控软件实现的关键技术3.1 NDIS技术NDIS 的主要目的就是为NIC 制定出标准的API 接口。
MAC 设备驱动封装了所有的NIC 硬件实现这一点,以便能够经过公共编程接口访问应用同一媒体的任意NIC 。
NDIS 同时也提供一个函数库(又时也称作wrapper ),这个库中的函数可以被MAC 驱动调用,它还能由高级协议(如TCP/IP )驱动程序来进行调用。
同时,这些包装器函数减少了驱动程序对工作台的依赖。
早期版本的NDIS 是由微软和3COM 开发的。
在Windows9x 和Windows NT 中,WFW (用于工作组的Windows )使用的当前NDIS 版本由Microsoft 开发。
3.2 winPcap技术Winpcap 是windows 平台下一个免费的公共的网络访问系统,通过Winpcap 技术可以完成对数据包的抓取和发送等操作。
可用通过对Winpcap 的int pcap_findalldevs_exAPI 的调用来获得所有本地的网络接口,然后通过pcap_t* pcap_open 对指定的网络设备进行抓包/发包,通过int pcap_next_ex()和int pcap_sendpacket()实现具体的抓包和发包操作。
3.3 Raw Socket技术要使用原始套接字,必须经过创建原始套接字、设置套接字选项(ioctlsocket 函数)和创建并填充相应协议头这三个步骤。
3.4 TCP/IP协议的分析技术分析IP 数据包格式、TCP 、UDP 等数据格式,如源IP 地址和目标IP 地址可以通过IP 分组获取,IP 数据包信息包标识可以计数IP 数据包流量。
而端口信息可从TCP ,UDP 获得。
3.5 IP数据包的构成IP 数据包主要由版本,头长,服务类型,包裹总长,重组标识,标志,段偏移量,生存时间,协议代码,头校验和32位源码地址已经32位目的地址组成。
3.6 网络数据包捕获技术网络数据抓包,有必要监控软件和服务器之间的网络节点,监控任何一个网络节点(网卡),获取通过网卡的所有数据,并根据网络协议解析数据。
这就是数据包捕获的基本原理。
4 总结本文主要是基于局域网的功能的基础上来对IP 数据包进行监控的技术软件进行了可行性分析,主要对IP 数据包的抓取和发送的原理进行分析,对数据监听,Ping 程序的使用以及路由追踪技术的分析,基于这些基本技术之上也就完成了一个IP 数据包监控软件的一个组成和架构。
参考文献[1]凌俊峰.TCP/IP 协议浅释[J].韶关学院学报,2001(09).作者简介王一军(1977-),男,湖南省衡阳市人。
硕士学位。
讲师。
研究方向为计算机科学与技术。
作者单位湖南财经工业职业技术学院 湖南省衡阳市 421002。