论文部分内容阅读
近年来,随着网络的普及和飞速发展,互联网已经是人们日常生活、工作中必不可少的一部分。那么,对于网络管理来说,最重要的就是可以准确识别并区分网络流量,通过协议识别来对网络进行流量控制、网络计费、内容过滤、以及流量管理。DPI (Deep Packet Inspection,深度包检测)技术是近几年出现的协议识别技术,DPI技术在分析协议包头的基础上增加了对应用层协议的分析,这是一种基于应用层协议的流量检测和控制技术,当TCP数据流、UDP数据流、IP数据包通过基于DPI技术的网络设备时,DPI引擎可以深入读取IP包载荷的内容,从而对应用层信息进行重组,识别出IP包的应用层协议。但是各种协议识别方法都存在优势,也存在弊端。由于传统的协议识别方法主要是采用端口识别来达到较高的识别效果,但是,现在大量的应用层协议为了避免识别,不再使用固定端口进行通信,使得端口识别方法已无能为力。随着网络协议的复杂化,P2P技术给我们提供了快速高效的文件共享,并且有低成本而又有高可用性的计算资源,所以很多用户使用P2P下载文件,在线观看电视娱乐节目,使得网络带宽不足,以致于严重影响了其他网络的正常应用,又因P2P应用使用动态端口和应用层数据加密等方法来躲避常规流量检测,从而对P2P流量的识别进入一个新的挑战,需采用先进的技术和算法高效地识别网络应用协议,本文设计一套方案来完成与实现一个协议识别系统。本文的主要内容是:首先对协议簇、协议识别技术和模式匹配算法介绍。其次是分析协议识别系统的功能和非功能需求,系统的设计目标。然后根据需求对系统的各个功能模块进行设计与实现,协议识别流程,协议的插件体系结构和系统升级功能的实现。系统首先要捕获网络数据包,以协议树的形式对协议进行逐层分析。采用由NFR提供的完善强大的N-Code脚本语言来对协议的特征规则进行编写,规则中也包括了源地址、目的地址、源端口、目的端口、协议号。在协议识别过程中使用模式匹配算法对流经网卡的流量与规则库进行快速匹配识别,进而对协议识别,并提高协议识别率,减少误报和漏报,最后对系统进行功能测试,根据测试结果对系统进行分析与评价。