已阅读5页,还剩66页未读, 继续免费阅读
(通信与信息系统专业论文)ipv6网络流量监测研究与实现.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
北京交通大学硕j :学位论文 l p v 6 网络流量监测研究与实现摘要 随着intemet和lpv6网络技术的发展,如何全面准确的监测网络流 量数据越来越受到人们的关注。网络流量监测设备能够以实时和非实时方式分析t c p ,i p 四层模型的各层流量,便于帮助网管人员及时发现网 络攻击,从而保证网络高效安全的运行。然而,目前国内外对于i p v 6网络流量监测的研究仍处于起步阶段,还没有支持f p v 6 网络流量监测 的商用系统。因此,通过w e b 远程控制管理实现面向i p v 6 的网络流量监测,具有较高的实际意义和应用价值。 本论文是国家教育部2 0 0 5 年1 2 月鉴定的科技成果- “b j t u i p v 6 网络性能分析报告系统”的重要组成部分。本文首先综述了网络流量监测技术的国内外现状,其次概述了l p v 6 网络流量监测的体系结构 和主要功能模块,介绍了主要开发工具和依托的操作系统平台。接着,论文从l p v 6 数据捕获及协议解析模块的工作模式出发,介绍了多线程、 双向链表以及模块化的设计思想,给出了数据捕获和协议解析的具体实现。论文介绍了数据库规划和设计的基本原理,描述了数据库模块的关 键函数,给出了数据库的设计实现方案。论文的第五章详细阐述了数据链路层、网络层、传输层和应用层流量分析的设计实现方案。最后,论 文通过组建i p v 6 测试环境,对流量监测的一些重要的和有代表性的功能进行了测试,并给出测试结论。目前,该系统已经应用在国内几家知 名企业,效果反映良好。关键词:i p v 6 网络流量监测数据库 北京交通大学顾上学位论文 l p v 6 网络流量监测研究与实现 独创性说明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及 取得的研究成果。尽我所知,除了文中特别加以标注和致谢的地方外, 论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得北 京交通大学或其他教育机构的学位或证书而使用过的材料。与我一同工 作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表 示了谢意。 签名: 壶i ;驻 日期: 2 翌磊兰 关于论文使用授权的说明 本人完全了解北京交通大学有关保留、使用学位论文的规定,即: 学校有权保留送交论文的复印件,允许论文被查阅和借阅;学校可以公 布论文的全部或部分内容,可以采用影印、缩印或其他复制手段保存论 文。论文中所有创新和成果归北京交通大学电信学院l p 网络实验室“ 所有。未经许可,任何单位和个人不得拷贝。版 权所有,违者必究。 签名:趣导师签名京雄日期:q 生幽一 北京交通大学硕士学位论文 i p v 6 网络流量监测研究与实现 第一章绪论 本章介绍了论文的选题背景和意义,概述了网络流量监测技术的国 内外研究现状。最后指出了本论文所做的主要工作。 1 1 研究背景 随着i n t e m e t 在全球的普及、i p v 6 【1 】网络技术的高速发展,网络中 的安全问题引起了人们的极大重视。如何能适应下一代网络的需求,在 保证网络高效工作的同时全面准确的分析监测网络流量数据是目前的 研究热点。 目前,一般的网络都配备有防火墙,它处于企业或网络群体计算机 与外界通道之间,限制外界用户对内部网络访问及管理内部用户访问外 界网络的权限,可以被看成是网络安全的第一级防护。但是,虽然防火 墙技术每天都在发展,但黑客的攻击手段也日新月异,光利用防火墙这 样的传统的第一层防护措施远远不够。它缺少一个对网络运行情况的整 体监控。值得注意的是很多机密失窃是由公司网络内部的人员引起的, 防火墙技术只能防范外部的攻击,在这种情况下,防火墙显然就无能为 力了。 入侵检测系统1 2 】( 1 d s ) 可以被看做是防火墙之后的第二道安全闸 门。它能自动检测和响应可疑行为,使用户在系统受到危害之前截取并 防范非法入侵和内部网络误用,在一定程度上保护网络系统安全。但是 i d s 的工作原理是拿网络上的数据和已知的攻击模式相比对,发现到一 致的特征即表示网络受到了攻击。所以只能发现己知的入侵模式,而且 一般的l d s 设备仅有非常有限的流量数据储存能力。 北京交通大学硕士学位论文l p v 6 网络流量监测研究与实现 因此,一个完整的网络流量监测应该具备对包括内外网在内的整个 网络的监控和强大完整的数据分析能力。正常运作时能够准确、全面的 了解网络数据各方面的传输情况,防患于未然;安全漏洞发生时也能收 集必要的网络数据信息,监控分析网络传输和系统事件以分析漏洞的起 因,从而修补安全漏洞。 1 2 国内外研究现状 一个好的流量监测【3 j 系统应该具有准确、全面、可读性强等优点。 目前已经有很多投入使用的软件。国内外众多组织也在致力于网络流量 益测系统的研究与开发。 e t h e r e a l 是当前较为流行的一种计算机网络调试和数据包嗅探软 件。它是一种开放源代码的许可软件,实时从网络连接处捕获数据或从 被捕获文件处读取数据:它还具有设计完美的众多分类信息及过滤选 项。但e t h e r ea l 的英文操作界面对给国内用户的使用带来不便,只能提 供概要性的数据库整体统计和简单的图形曲线显示网络的各种流量情 况,达不到完整全方位的统计数据库和可读性强的图形化显示需要。 s n i f f e r 是一种著名窃听工具,它可以监听到网上传输的所有信息。 s n 阱e r 的统计功能能详细的显示出网络数据包的各种信息,但是仅有英 文操作界面,且对于一般用户来说使用操作比较复杂,流量统计时报表 类别、过滤条件、图形参数设置有待进一步人性化。 下面再介绍一款有代表性的流量监测系统。 美国的n i k s u n 公司1 4 】,成立于1 9 9 7 年,致力于研发先进的l p 网 络管理系统,用以帮助使用者建立和管理一个强壮安全的网络,更加有 效地发挥网络的作用。n e l d e t e c t o r 系统是它的一个重要产品。它的数 北京交通大学硕士学位论文i p v 6 网络流量隘测研究与实现 据来源是系统所抓取的网络流量信息,其核心技术是比特级的网络流量 记录和流量分析:它可以以流量生成的速度,捕捉并记录链路上每一个 比特的流量,实时对记录到的大量数据进行分析和检测,发现网路流量 的异常变化。网管人员可以从流量分析结果中掌握网络运行情况,还可 以根据流量的异常变化发现正在进行的网络攻击,并及时发送告警。但 是这款产品只支持i p v 4 ,不支持i p v 6 。 随着l p v 6 为核心技术的下一代网络在中国正越来越受到重视1 5 】, 国内外许多著名的网络设备制造商开始将网络数据分析和流量监测系 统的研究方向转移到对i p v 6 路由协议的支持上,但其在分析的准确性 和协议一致性方面无法同l p v 4 路由协议软件相比。在这样的形势下, 实现一种支持i p v 6 的,能全面准确的进行数据分析统计,更有效地进 行网络管理的网络流量监测系统,具有一定的学术意义和应用价值。 1 3 选题意义 “i p v 6 网络流量监测”是针对以太网络所研制的一个以f r e e b s d 操作系统为平台的实现数据包解析存储分析功能的w e b 数据库应用程 序。此系统将负责抓取数据包并加以解析,然后储存于数据库中,同时 用户可以通过w e b 访问的方式在页面上显示出实时和非实时流量分析 结果和流量分析图。流量监测还可以帮助用户及时发现网络中的某些不 安全因素,比如流量异常等。 尽管国内外存在很多种网络流量监测的技术和设备,但它们几乎都 是针对传统l p v 4 网络的,很少有支持i p v 6 的。但i p 、,6 技术在中国的 高速发展已经成为必然趋势,在这种情况下,如何实现面向i p v 6 的网 络性能分析成为当前的一个大问题,也是科研人员需要解决的一个重点 北京交通大学硕士学位论文 l p v 6 网络流量监测研究与实现 难题。 因此,当网络发展进入l p v 6 时代后,以i p 、,6 为核心技术的下一代 网络在中国正越来越受到重视。在这样一种形势下,设计一种集网络数 据捕获,数据存储,流量分析等功能干一体的l p v 6 网络流量监测系统 对构建i p v 6 网络安全体系嘲具有重要的作用和意义。除了以上所述的 功能外,l p v 6 网络流量监测系统还可以为追踪、调查、控告网络犯罪 分子提供详细的原始数据和证据。 1 4 本文所做工作 本论文“l p v 6 网络流量监测研究与实现”是课题“i p v 6 网络性能 分析系统”的重要组成部分。课题“i p v 6 网络性能分析系统”的目标 是要完成基于f r e e b s d 操作系统的、能够在i p v 6 网络环境下实现网络 性能分析的w e b 数据库应用程序【7 。论文“l p v 6 网络流量监测研究与 。 : 实现”主要研究面向下一代i p v 6 网络的数据捕获与协议解析,数据库 存储和流量分析技术,如何监测l p v 6 网络中的实时和非实时信息。 论文的主要工作是完成了i p v 6 数据捕获及协议解析模块,数据库 模块,i p 、,6 流量分析模块的设计与实现,使之能够在i p v 6 网络环境下 监测网络流量。 论文章节安排如下: 第一章绪论 综述选题背景和意义,全面介绍了l p v 6 技术【8 l 和网络流量监测技术 的国内外研究现状及发展趋势,以及本论文的主要工作。 第二章l p v 6 网络流量监测概述 本章对i p 、,6 网络流量监测系统进行了概要性的说明。本章描述 北京交通大学硕士学位论文 i p v 6 网络流量监测研究与实现 系统的体系结构图示了系统的主要功能模块,介绍了i p v 6 网络流量 监测的操作系统平台和主要开发工具。 第三章l p v 6 数据捕获及协议解析模块设计实现方案 本章从i p v 6 数据捕获及协议解析模块的工作模式出发,介绍了该 模块采用的多线程、双向链表以及模块化三大设计思想。最后给出了数 据捕获和协议解析的具体实现。 第四章i p v 6 数据库模块设计实现方案 数据库模块共分为两个库,即用户信息库和数据包信息库。本章首 先概述了数据库规划和数据库设计的基本原理;接着给出了数据库模块 的关键函数。最后,本章给出了用户信息库和数据包信息库的具体实现, 详细描述了两个库中的数据表的各字段含义和作用。 第五章l p v 6 流量分析模块设计实现方案 。 本章描述了i p v 6 流量分析模块依据t c p i p 分层体系【9 】结构逐层进 行流量分析的基本原理。给出了i p v 6 流量分析模块的整体设计思想;阐 述了数据链路层,i p 层,传输层,应用层流量分析的实现方案。 第六章i p v 6 环境下的测试 在i p v 6 环境下对一些重要的和有代表性的功能进行测试。 第七章总结与展望 对所做工作进行总结,提出下一步工作计划。 北京交通大学硕士学位论文 i p v 6 网络流量监测研究与实现 第二章l p v 6 网络流量监测概述 本章对i p v 6 网络流量监测系统进行了概要性的说明。本章描述了 系统的体系结构,图示了系统的主要功能模块,介绍了i p v 6 网络流量 监测的操作系统平台和主要开发工具。 2 1 体系结构 i p v 6 网络流量监测系统是一个w e b 数据库应用程序。图2 1 代表 了一般w e b 数据库应用程序的架构。该模型由三层体系结构组成,底 层是数据库层,该层由管理数据库的d b m s 组成,数据库中包含用户 创建、删除、修改、查询的数据。中间层包含大部分应用逻辑并在其他 两层之间进行数据通信。顶层是客户层,通常是与应用程序交互的w e b 浏览器软件。 图幺1w e b 数据库应用程序的三层体系结构模型 当我们使用术语“w e b ”时是指3 个主要标准和基于这三个标准的 工具:h t m l ( h y p e r t e ) c 【m a r k u pl a n g u a g e ,超文本标记语言) 、 北京交通大学硕士学位论文 i p v 6 网络流量监测研究与实现 h 丌p ( h y p e 阳斌t 协n s f e fp 瞅o c o l ,超文本传输协议) 和t c p ,j p 互联网 协议套件。h t m l 能够使用w 曲浏览器应用程序很好的结构化和表示 信息。t c p i p 是一个有效的互联网协议,它通过i n t e m e t 在应用程序 之间传递数据,并且对w e b 数据库应用程序的开发者几乎没有影响。 建立w e b 数据库应用程序过程中解决的主要问题就是使用h t t p 将传 统的数据库应用程序与w e b 连接,因此需要复杂的应用逻辑。 如图2 1 所示,三层体系结构模型中的客户层通常是w 曲浏览器。 浏览器软件处理并显示h t m l 资源,发布对资源的h t t p 请求,并处 理h t t p 响应。可用的浏览器产品有很多,每种浏览器产品都有各自不 同的特洼。两种最流行的基于窗口化的浏览器是n e l s c a p e 和i n t e m e t e x p i o r e r 。本系统使用的是现在最流行的基于窗口化的浏览器i n t e m e t e x p i o r e r ,除了前述的功能外,它具有能够解释有h t m l 标记的页面( 向 用户展示标题、图像、超文本链接等) 、运行嵌入在h t m l 页面中的 j a v a s c r i p t 【10 】等强大功能。 数据库层是w e b 数据库应用程序的基础。在w e b 数据库应用程序 中,数据库层管理数据。数据管理通常包括数据的存储、检索以及管理 更新、允许多个中间层进程的同步或并行访问、提供安全性、数据的完 整性等的支持服务。这些服务通常是由r d b m s ( 关系型数据库管理系 统) 提供的,并且数据存储在关系型数据库中。在本项目中我们使用 m y s ql 【1 1 】管理数据,m y s q l 【1 2 】在速度方面有很好的口碑,且它被特别 设计为数据检索比数据更新更常见。另外,与p h p 、a d a c h e 一样, m y s o l 也是开放源代码的软件。这些优点使它非常适合于l p v 6 网络流 量监测系统的开发。 在多数三层w e b 数据库系统【1 铆中,大部分应用逻辑都在中间层。 客户层向用户展示数据,并收集来自用户的数据。数据库层保存并获取 北京交通大学硕士学位论文i p v 6 网络流量监涮研究与实现 数据。中间层完成剩下的大多数功能,将另外两层整合在一起:它驱动 显示给用户的数据的结构和内容,并且将来自用户的输入处理为数据库 上的查询,以读取或写入数据。中间层应用逻辑将w e b 和d 8 m s 两层 整合在一起。中间层组件包含w e b 服务器、w e b 脚本编程语言和脚本 编程语言引擎。本系统使用的w e b 服务器是a d a c h es o f m a r e f 0 u n d a t i o n 的a p a c h eh r r p 服务器,用于处理h t t p 请求并表述为响 应:我们使用p h p 脚本编程语言作为中间层脚本编程语言,它是 a p a c h es o f t w a r ef o u n d 酬o n 的一个开放源代码的项目,也是最流行的 h t t p 服务器附加模块。p h p 因为有用于e b 和数据库环境的整合工 具,所以特别适合于w e b 数据库应用程序。尤其是,在h t m l 页面中 嵌入脚本的灵活性后可以与客户层更容易地整合。数据库层的整合支持 也是相当优秀的。 2 2 功能模块 l p v 6 网络流量监测系统在运行时,捕包软件捕获流经它所监控的 网络的交换机的所有以太网格式韵数据包,然后解析各个数据包,进行 分层处理,通过各层的包头信息,判断各层的具体协议,取出特征字段, 接着按规定好的字段格式存入数据库中,最后当用户向服务器提交流量 分析请求时,根据要求从数据库中取出相应的数据,进行统计整理,最 后传输到用户终端,显示在终端的w e b 浏览器上。图2 2 显示了i p v 6 网络流量监测系统的主要功能模块。 北京交通大学硕士学位论文i p v 6 网络流量监测研究与实现 l 一j 虚线框内为i p v 6 网络流量监测服务器端主机部分 图2 2l p v 6 网络流量监测功能模块 j2 3 操作系统平台 “i p v 6 网络流量监测”的开发是基于f r e e b s d 【15 】操作系统平台 的。f r e e b s d 具备极其优异的性能,f r e e b s d 是u n - 众多分支中 相当优秀的一支,它得到了许多计算机研究人员和网络专业人士的 认可。在高档工作站和i n t e m e t 服务器领域,f r e e b s d 【1 q 的高稳定 性、高可靠性、高安全性以及高度可扩展的能力不是其他操作系统 所能够代替的。因此,不但专业科研人员把f r e e b s d 用作个人使用 的u n i 工作站,很多企业,特别是i s p ( i n t e m e t 服务提供商) 都 使用运行f r e e b s d 的高档p c 服务器来为他们的众多用户提供网络 服务。 我们选用f r e e b s d 系统作为系统开发平台,是由于f r e e b s d 提 北京交通大学硕上学位论文 i p v 6 网络流量监测研究与实现 供了丰富的网络功能和优越的线程管理机制。这是一个可靠安全的操作 系统【17 】,完全能够保证系统的安全要求。 2 4 主要开发工具简介 2 4 1a p a c h e 简介 a d a c h e l l 4 l 是一个开放源代码的w e b 服务器,它由n c s a 的服务 器发展而来的,n c s a 是最早出现的w e b 服务器程序之一,由伊利诺 斯大学u r b a n a - c h a m p a i g n 分校的美国国家超级计算应用中心开发。 在发展初期,a p a c h e 主要是一个基于u n i x 系统的服务器,它的宗旨 就是建成一个基于u n l x 系统的、功能更强、效率更高并且速度更快的 w w w 服务器,这就决定了它是从其他的服务器演变而来的,并且添加 了大量补丁来增强它在某一方面的性能。发展到今天,a p a c h e 已经被 移植到很多平台上了。 我们使用了a p a c h e 服务器,主要是看中了“a p a c h e + p h p + m y sq j ” 这个黄金组合,非常适用于整个系统“客户端w e b 服务器数 据库”三层结构的实现。而且已经有很多的网站使用了 “a p a c h e + p h p + m y s q j ”套件架构起较为成功的服务系统。再者, “a p a c h e + p h p + m y s q r 套件是完全免费的。 2 4 2m y s q l 简介 m y s q l 是一个多线程多用户的关系型数据库管理系统( r d b m s ) 。 它可以快速韵组织和管理大量的数据。脚s q l 支持正规的s q l 查询语 北京交通大学硕士学位论文 l p v 6 网络流量监测研究与实现 p h p 支持几乎所有流行的数据库( p h p 所支持的数据库种类繁多, 包括o r a c l e ,s y b a s e ,s q l ,m y s q l ,i n f o r m i x ,s o | d b a s e ,0 d b c 等) 以及操作系统。 2 4 4j a v a s c r l p t 简介 j a v a s c r i p t 是一种基于对象( o b j 鳅) 和事件驱动( e v e n td r j v e n ) 并具有安全性能的脚本语言。使用它的目的是与h t m l 超文本标记语 言、j a v a 【1 8 】脚本语言( j a v a 小程序) 一起实现在一个w e b 页面中链 接多个对象,与w e b 客户交互作用,从而可以开发客户端的应用程序 等。它是通过嵌入在标准的h t m l 语言中实现的。它的出现弥补了 h t m l 语言的缺陷,它是j a v a 与h t m l 折衷的选择。 北京空通大学硕士学位论文 l p v 6 网络流量监测研究与实现 第三章l p v 6 数据捕获及协议解析模块设计实现方案 本章从l p v 6 数据捕获及协议解析模块的工作模式出发,介绍了该模 块采用的多线程、双向链表以及模块化三大设计思想。最后给出了数据 捕获和协议解析的具体实现。 3 1 工作模式 在i p v 6 网络流量监测系统的设计中,j p v e v 4 数据捕获及协议解析 模块是其他模块赖以工作的基础。该模块主要用于高速捕捉链路上的网 络数据流,并对i p v 4 v 6 数据进行源,目的地址、源目的端口、协议类 型等的快速分解并载入数据库。 l p v 6 4 数据捕获设各工作在并联模式下。在这样的模式下,负责 数据捕获的设备并联在网络中,在以a 删巾,可以监听一个网段内的通 信。如图3 1 所示。 图3 1l p v 4 ,v 6 数据捕获设各图( 并联模式) 图3 1 l p v 4 6 数据捕获设各圈( 井联模式) 北京交通大学硕士学位论文 i p v 6 网络流量监测研究与实现 3 2 设计思想 我们在l p v 6 数据捕获与协议解析部分的设计中,采用了多线程【19 】、 双向链表【2 1 】以及模块化三大设计思想。 3 2 1 多线程设计思想 为了提高捕包速度和效率,我们采用多线程【2 0 】来实现i p v 6 数据捕 获及协议解析模块。首先初始化捕包设备和包链,将监听口设置为混杂 模式、初始化数据库并清空缓存器、定义双向链表等。然后进入i p v 6 数据包捕获主线程。被捕获的i p v 6 v 4 数据包存放在内存队列中,由i p v 6 数据包协议解析子线程进行解析,最后存储到数据库中。值得注意的是, 如果i p v 6 数据包协议解析的速度过慢,内存队列中的数据包会不断增 加。然而内存的容量是有限的,存放的数据过多,会导致内存溢出,无 法再写入新的数据,最终会中断捕包线程。为此,我们在捕包的同时启 动i p v 6 数据包协议解析子线程解析数据包并写入数据库。 3 2 2 双向链表设计实现思想 网络上的数据包截获之后存放在内存的队列中,但内存的容量是一 定的,存放的太多,将最终导致内存的溢出,数据将不能再写入,直接 导致不能再捕获数据包了。如果包分解的速度过慢的话,也会出现包数 在内存队列中不断增加。因此,需要在捕包的同时,将包及时分解并写 入数据库,而这两步的同时完成,就需要利用双向链表【2 2 】来实现。 所谓双向链表,就是在双向链表的结点中有两个指标域,其一指向 直接后继,另个指向直接前趋,双向链表的节点结构如图3 2 所示: 北京交通大学硕士学位论文 l p v 6 网络流量监测研究与实现 对l p v 6 l p v 4 数据进行源目的地址,源目的断口,协议类型快速分解 并载入数据库。i p v 6 数据捕获与数据库实现的基本框架分为四个子模 块,即初始化、l p v 6 数据包捕获、i p v 6 数据包协议解析和数据库子模 块。这种模块化的设计方案将系统的功能需求以模块方式进行划分。图 3 4 显示了这四个子模块。 图3 4 数据捕获及协议解析模块实现框架 3 3 具体实现 数据捕获及协议解析模块是l p v 6 网络流量监测赖以工作的基础。该 模块的实现流程是:利用捕包函数从网卡捕获过滤网络数据包,然后将 捕获的原始数据包按照i p v 6 ,i p v 4 协议分别进行协议解析,最后将协议 解析的结果存储到数据结构体中,为数据库存储模块提供数据支持。 3 3 1 数据捕获的实现 网络流量监测功能的实现需要一个强大的网络数据捕获及协议解 北京交通大学硕士学位论文 l p v 6 网络流量监测研究与实现 析模块,它以实时记录的网络中的数据和流量,作为统计分析的基本材 料。网络数据捕获依赖于一套捕捉网络数据包的函数库。这套函数库工 作在在网络流量监测模块的最底层。作用是从网卡取得数据包或者根据 过滤规则取出数据包的子集,再转交给上层分析模块。从协议土说,这 套函数库将一个个数据包从链路层接收,至少将其还原至传输层以上。 这里,l p v 6 4 数据捕获是基于l l b p c a p 库实现的。l b p c a p ,即 p a c k e tc a p t u r en b r a r y 是数据包捕获函数库,工作于数据链路层,用于 实现对i p 分组的捕获。我们利用b p c a p 库从网卡捕获网络数据包,然 后将协议解析结果存储到数据结构体中,为数据库模块提供数据支持。 正常的数据包捕获过滤流程如图3 5 所示。网卡驱动程序判断所收 到包的目标以太网地址,如果不为自己网卡的m a c 地址,又不为广播 地址和组播地址,将直接丢弃,不向上层提交。网络层判断目标l p 地 址是否为本机所绑定的l p 地址,如果不是本机所绑定i p 地址,将不向 土层提交。传输层( 如t c p 层) 判断目标端口是否在本机已经打开,如果 没有打开,将不作处理,不向应用层提交。 图3 5 正常的数据包捕获过滤流程 北京交通大学硕士学位论文i p v 6 网络流量监测研究与宴现 在u d p 首部中则没有。 协议解析是通过函数完成的。图3 7 显示了协议解析函数结构关系 图。 图3 7 协议解析函数结构关系图 协议解析函数负责为捕获的数据包进行解码分析,并把分析的结果 放置到一个设计好的数据结构中。为了能够全面完善地描述捕获的数据 包,设计了一些对数据包进行表述的数据结构,具体包括 t c p h d l u d p h d i p hd r ,i p 6 h d l i c m p h d i c m p 6 h d r 等包头数据结构。 这些数据结构设计的主要依据是各协议的包头结构。 数据结构的设计为协议解析模块提供了较完备的存储体系,协议解 析如下所描述:首先利用l i b p c a p 的p c a p - j o o p 函数循环抓取网络数据 包,调用d e c o d e e t h p n 函数,对抓取的以太帧进行解析。在 d e c o d e e t h p i ( f 函数中,d e d e i p v 4 实现对i p v 4 协议数据包的解析, d e c o d e i p v 6 实现对i p v 6 协议数据包的解析。根据层层解析的原则,l p 北京交通大学硕士学位论文 i p v 6 期络流量监测研究与实现 层解析完成后,根据上一层协议类型, 调用 d e c o d e t cp ,d e c o d e u dp d e c o d e l c m p i d e c o d e i c m p v 6 等函数分别实 现对t c p ,u d p ,i c m p 嘲,i c m p v 6 【2 6 】包的解析,最后将解析的结果 存储到相应的数据结构中。 北京交通大学硕士学位论文i p v 6 网络流量监测研究与实现 第四章数据库模块设计实现方案 数据库模块共分为两个库,即用户信息库和数据包信息库。本章首 先概述了数据库规划和数据库设计的基本原理;接着给出了数据库模块 的关键函数。最后,本章给出了用户信息库和数据包信息库的具体实现, 详细描述了两个库中的数据表的各字段含义和作用。 4 1 数据库模块概述 数据库模块的主要功能是接收l p v 6 数据捕获及协议解析模块传递 的数据包,将己解析完成的数据包按照功能需求,存储到相应的m v s q l 数据库。数据库模块还可以为用户远程访问提供帐号及密码支持,便于 系统管理员对用户的权限进行管理,提高系统使用安全性。通过合理规 划和设计数据库,可以大大提高系统性能。数据库模块共分为两个库, 即用户信息库和数据包信息库。 用户信息库( u s er n f o ) 主要用来存储用户名、密码和用户权限, 供用户管理配置管理模块用。数据包信息库( p | a b p k 【c a p ) 存储捕获并 解析后的数据包信息,是i p v 6 流量分析模块的主要数据来源。 4 2 数据库规划和设计的基本原理 l p v 6 数据存储为i p v 6 流量分析提供强大的研究数据,是系统主导 功能的基石。i p v 6 数据存储技术依赖于合理的数据库规划和数据库设 计。数据库规划基于对用户需求的收集和分析:首先考虑用户的需求, 为每个主要的用户视图( 即:业务应用领域) 收集信息;然后将每个用 北京交通大学硕士学位论文 i p v 6 网络流量监测研究与实现 户视图的需求列出独立的需求表,比较不同视图的需求,最终融合成一 个需求列表或几个需求列表,为系统提供高效存储。 数据库设计包含两个阶段,即逻辑设计和物理设计:逻辑设计阶段 的主要任务是根据已收集和分析的用户要求建宴e r 模型,创建数据 库模式;物理设计阶段,确定逻辑设计如何在目标d b m s 中作为物理 的实现,即实现对数据内部物理调整,并选择合理的存取路径以提高数 据库访问速度。 一数据库规划 一般来说,数据库系统的生命期可以分为五个阶段,依次是分析、 设计、编码、测试、运行。数据库规划必须基于用户需求收集和分析来 实现。用户需求收集和分析是指在设计数据库时,要充分考虑用户的需 求,为每个功能需求收集信息。收集和分析用户需求是按以下四步进行: ( 1 ) 分析用户活动 ( 2 ) 确定系统范围 ( 3 ) 分析用户活动所涉及的数据 ( 4 ) 分析系统数据。 数据库设计 数据库逻辑设计分两步进行:第一步初步设计,把e r 图转换为 关系模型;第二步优化设计,对模式进行调整和改善。优化是在性能预 测的基础上进行的,通常用以下三方面指标来衡量:( 1 ) 单位时间内所 访问的逻辑记录个数要少;( 2 ) 单位时间内数据传送量要少;( 3 ) 系统占 用的存储空间尽量要少。 数据库的物理设计主要目标是对数据内部物理结构作调整,选择合 理的存取路径,以提高数据库访问速度有效利用存储空间。一般 r d b m s ( 只e l a t i o n a ld a t a b a s em a n a g e m e n ts y s t e m ) 中留给用户参 北京交通大学硕士学位论文l p v 6 网络流量监测研究与实现 与物理设计的内容大致有索引设计、集成簇设计和分区设计。 4 3 数据库模块关键函数 我们在数据库模块中采用m y s q l 作为网络数据存储数据库,通过 p h p 语言和m y s q l 相结合对数据库的信息进行查询、莓计、分析、排 序等,我们使用的一些关键的函数如表4 1 所示。 基本函数( 参数)函数功能 m y s q l _ c o n n e c t ( ”i o c a i h o s t ”。n a m e ”,“p a s s w o r d “)建立与m y s q l 的连接 m y s o l _ s e i e c l d b ( ”d 蛐a s e n a m e “) 在一个连接上选择数据库 m y s o l q u e r y ( s q i c o m m o n d ,【c o n n e c t i o n 】) 运行s q l 查询语句 m y s o l f e t c n r o w ( r e s u i t ) 返回数组将查询结果句柄r e s u l t 作参数使 m y s q l u f e t c h a r r a y ( 怕s u i l ,时p 翻) 用,一次取一行结果集数据 m y s o l _ n u m e l d s ( r e s u n ) 返回与r e s u i t 相关的属性个数 m y s o l _ _ c l o s 甙【c o n n e c l i o n 】)关闭用m y s o l c o n n e c t 打开的 连接 m y s o l _ d a t a - s e e k ( r e s u 佳,r o w )从1 州行开始检索r e s u i t 结果集 m y s q l _ 1 目c h _ _ ob j e c t ( r e s u i t ,时p e 】)按值的表属性访问查询结果 m y s o l j r e e r e s u i t ( r e s u l l ) 释放与r e s u l t 句柄相关的资源 m y s q l n u m j o w s ( r e s u 哟返回r e s u i t 查询结果资源句柄关 联的行数 m y s o l p c o n n e t ( m o s t :p o r q ,【u s e 门,i p a s s 】) 打开一个持久的d b m s 连接,脚 本终止后仍保持 m y s q l c r e a t e _ _ d b ( d b 【c o n n e c t j o n 】)利用最后c o n n e c t i o n 打开的连接 建立数据库d b m y s o l d r o p - d b ( 曲【c o n n e c l i o n 】)删除数据库d b m y s o l f e i :i c h e i d ( r e s 吣【a 删b u t e _ n u m b e 日)返回查询结果r e s u i t 关联的每个 属性的元数据作为一个对象返回 m y s q l s 1 一t a b i e s ( d a t a b a s e ,o n n e c t i o n 】) 列出连接访问的数据库中的表名 m y s q l t a b i e n ( r e s u 陡,t a b i e n u m b e f )生成数据库中表的列表 m y s q l - - e r m o ( 【c o n n e c t i o n l )返回连接的最后一个错误的编号 m y s q l - _ e r r o r ( 【c o n n e c l i o n 】)返回连接的晟后一个错误字符串 表4 1 利用p h p 访问m y s q l 的主要函数 北京交通大学硕士学位论文i p v 6 网络流量监测研究与实现 4 4 设计概述 4 4 。1 用户信息库的设计 用户信息库( u s e r i n f o ) 所涉及的数据主要是用户帐号信息,包括 用户名、用户密码、用户权限等。目前,用户信息库所要管理的数据信 息较少,为了便于日后功能的扩展为用户信息管理单独创建了用户信息 库1 j s er j n f o 。用户信息库中只包含一个用户信息表,用来存储用户 名、密码和用户权限。 4 4 - 2 数据包信息库的设计 数据包信息库( _ p i a b p i ( t c a p ) 存储的数据是网卡捕获的未经过滤丢 弃的解析后的数据包信息,按数据包字段,源,目的i p 地址、源目的端 口等字段进行存储。数据包信息库存储的数据信息是i p v 6 流量分析模 块的主要信息来源,主要包含6 个表( 表4 2 显示了这6 个数据表) 。 其中t r 甜i c 表记录了数据包各协议类型、源,目的l p 地址、包长度等重 要信息,是l p v 6 流量分析模块的操作基础。 表名 功能 t r a 秆i c 存储i p v 6 数据捕获及协议解析模块解析的数据信息。 d a 钆r e c o r d 捕包进程的记录( 捕包时间,数量等信息) 。 s t a t i c a g 存放静态库的信息以满足用户查询静态库的需求。 t r a f f i u h 曙s h o i d用来记录流量报警信息( 包括更新事件,报警闽值) 。 n s h i j a b l e用户根据需要从数据库中读取数据存入该表。不用都从 表t r a 币c 中查询。可以加快查询速度。减少对原始数据的 破坏, s e r v i c e 存放端口和服务类型信息。 北京交通大学硕士学位论文 i p v 6 网络流量髓测研究与实现 表4 2 数据包信息库包含的主要数据表 4 5 具体实现 4 5 。1 用户信息库的实现 用户信息库( u s er i n f 0 ) 包含一个用户信息表( u s e r s ) ,用来存储 用户名、密码和用户权限。用户信息表各字段信息如表4 3 所示。 字段名 u s e rn a m ed a s s w o r da u t hi e v e i 字段类型v a r c h a r ( 2 0 ) v a r c h a r ( 2 0 ) e n u m ( 1 0 1 ,1 。) 默认值 n 0 t n u n 0 t n u i in u 含义 用户名密码权限 表4 3 用户信息表( u s e r s ) 字段信息 初始化的时候系统中只有一个a d m l n ( 管理员) 用户,其权限值为 、 1 ;普通用户在配置页面中增加,可以有多个,权限均为o 。a d m i n 用 户可以部分增加、删除和修改普通用户。没有权限的普通用户没有此功 能。 4 5 。2 数据包信息库的实现 数据包信息库( p | a b p l ( 【c a p ) 包含的表的数量比较多,这里给出该 库中“d a t a r e c o r d ”,“s t a t c _ a g ”,“t r a 仟i _ t h r e s h o l d ”,s e r v i c e 这 四个数据表的详细信息,我们将在第五章结合i p v 6 流量分析的步骤详 细描述数据包信息库中“t r a 廿i c ”和“i n s h lt a b l e ”这两个数据表 ( 1 ) d a 托l - r e r d 表 北京变通大学硕士学位论文 i p v 6 网络流量监测研究与实现 d a 协一r e c o r d 表用于记录捕包进程的时间及捕获数据包的数量等信 息,其字段信息如表4 4 所示。 字段名字段类型 默认值功能说明 r c d i di n tu n s l g n e dn o t n u l l 记录捕包的次数 s t a r t p k t i d l l n tu n s l g n e d n o t n u l l 捕包初始i d l 蛐l n _ - p k t i d 2 l n tu n s i g n e d n o 下n u l l 捕包初始i d 2 s t o p _ p k 醢d 1 i n tu n s g n e dn o t n u l l 捕包结束i d l s t o p _ p d 2 i n tu n s i g n e d n o t n u l l 捕包结束i d 2 s t a r tt i m e d a t e t l m e n o t n u l l 捕包开始时间 s t o p i m e d 卢汀e t i m e n o t n u l l 捕包结束时间 s l z ei n tu n s i g n e d n o t n u l l 捕获数据包大小( 字节数) r c d n u mi n tu n s l g n e d n o t n u l l 捕获数据包个数 i m e r f a c e 、 a r c h a r ( 10 )正在捕包的接口 s t a t e c h a r ( 1 ) 状态( 1 :正在捕包0 :停止) p r i m a r yk e y ( s t a r i p k t i d l 。;t a r t p k 稿d 2 ) ) : 主键 表4 4d a t ar e c o r d 表字段信息 为了方便用户查询在特定时期内的数据记录,需要记录该系统数据 包捕获的次数,开始时间和结束时间,包大小和个数等。通过捕包状态 字段,可以知道数据包是否正在捕获。在流量分析中,当捕包状态为1 时,不进行流量报警。 ( 2 ) s t a t i g 表 s t a t i c - a g 表用于存放静态库的信息,以满足用户查询静态库的需 求,其字段信息如表4 5 所示。 字段名 字段类型默认值 功能说明 s t a t t c d i m 订0 u n s i g n e d n o tn u i d 号 s t a t i c - - n a m e v a r c h a r ( 2 0 ) n o tn u u 静态表的名称 s l a t i cd e s ct e ) c t s i a t i t - s t a r n i m e d a t 酬m e 静态表时间范围开始时间 s f a t i c 鼻o p 妇m e d a t e 茁m e 静态表时间范围结束时阔 s t a t i c - _ p r o t o c 0 i 垤r c h a r ( 5 ) n o t n u 创建静态表过滤的协议类型 北京交通犬学硕士学位论文 l p v 6 网络流量监测研究与实现 等各种传输层协议的链接,比如传输层的分析结果中包含 n n f 、f t p 、 t e l n e t 等各种应用层协议的链接。 i p v 6 流量分析模块应具有实时和非实时分析网络数据的功能。开 启系统的捕包程序后,调用l p v 6 协议解析模块,对所捕获的数据进行 分析并存储至数据库中。具体的分析内容包括:数据帧的基本信息( 大 小、到达时间等) 、数据帧的链路层信息( 源m a c 地址、目的m a c 地 址、网络层协议类型等) 、数据帧的网络层信息( i p 报头各字段的信息 如源i p 地址、目的i p 地址等) 、数据帧的传输层信息( 源端口、目的 端口等) 以及应用层的信息等。具体的流量分析过程为:开启系统捕包 程序,同时开启默认设置的网络流量告警模块,根据选项确定流量分析 的方式为实时或非实时二凳酷 酸;瑚百骜的冀地址等赫;轮矧。掣函驾 蛩争现渤淄羹荫戮婴:争矗嗡怠借堰涵攮啮。i 嵩i 耋拿弼i 攀誊爆 蓦萎靼lt析过程友夏警影器鲥黝邕妻:骱甜赢氧酗r拼薹。墓薪。缡滞鎏孽秘辨豁 啦鞲裂筘譬套季鐾毒专睾 ;垂i l i i ;罩毒耄蜊啦耄。 i 董:售,囊;誊;:i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 大学医药专业考试试题及参考答案
- 粤人版七年级下册地理教案
- 保育员(初级)理论知识考试题及答案(完整版)
- 2026年装饰装修工中级技能鉴定试卷
- 施工质量检验规范
- 2026年中小学劳动实践基地教研员笔试题及答案
- 四年级品德与社会下册 第五单元 祖国真大 活动主题二 我们的大中国教案 教科版
- 风电项目并网前质量验收评估报告
- 市政排水管网隐患排查评估报告
- 风电工程高处作业安全技术规范
- 贲门癌护理查房
- PCB多层压合工艺流程解析
- 二零二五年度锅炉运行数据分析及优化合同
- FIDIC 银皮书英文版
- 广告咨询服务合同样本
- 民建入会申请书
- (完整版)学习动机策略问卷(MSLQ)
- 2023版中国近现代史纲要课件第一专题历史是最好的教科书PPT
- ISO9000程序文件大全
- 中医学课件气血津液
- 宝钢高炉炼铁工艺介绍201607
评论
0/150
提交评论