数据包分类(精选5篇)
数据包分类 篇1
无论在计算机网络实验室, 还是在家中, 只要有网络的地方, 未成年人总是经受不住网络游戏的诱惑, 现在的网络游戏运营商虽然推出了网络游戏防沉溺系统, 但是并没能够杜绝该现象的存在。网游防沉溺系统只在服务器端根据客户端联机时间的长短限制用户, 但可以有各种方法逃避监管。如果能在客户端或者网络设备上判断包的类别, 然后采取相应的措施, 比如丢包。可以阻止用户沉溺于游戏, 但又不影响其正常上网。
1数据包的采集和划分
网卡有4种接收模式[1]。广播模式:网卡能接收网络中的广播包;组播模式:网卡能接收网络中的组播包;直接方模式:只有目的网卡才能接收到数据;混杂模式:能接收通过它的一切数据。采用混杂模式, 每隔一定时间接收通过它的所有数据包, 为包划分和分类做准备。
前面接收到的数据包是杂乱无规律的, 先进行初步划分。
过滤:去除原地址和目的地址都不包含本机地址的数据包。
划分规则:按照接收的先后顺序把接收到的原地址和发出去的目的地址相同的包划分到一起。
2样本特征向量——地址偶对和端口偶对
数据包分类正确与否在很大程度上取决于特征向量的选择。在没有其它先验知识的这种数据包模式识别中, 特征向量的选择是困难的。网络游戏的实质是互动, 而互动的控制则由服务器和客户端协同完成。网络游戏中角色的各种属性及重要资料都存放在服务器上, 在客户端只是显示角色的状态。客户端向服务器发出某些请求, 服务器会按照既定的程序把相关的信息反馈给客户端。服务器和客户端不断地互换数据包交换控制和状态信息, 使游戏得以持续进行。交换信息的数据包会成对地出现, 也即原地址为服务器地址 (目的地址为本机地址) 与原地址为本机地址 (目的地址为游戏服务器地址) 的数据包基本成对出现, 其它网络行为产生的包不明显具有该特点。把相邻两个原地址和目的地址交换的包称为一个地址偶对, 相等数量的包中, 网络游戏包的地址偶对数较大。这一特征能区分大多数不同类型的包, 但是当网速很慢的时候下载资料包和游戏包分类的正确率就比较低, 为此, 找到了另外一个特征:端口偶对。若相邻两个包的源端口或目的端口相等, 把这两个包叫做一个端口偶对, 相等数量的游戏包中的端口偶对数较大。统计这两类偶对的时候, 包都不能重复统计。
2.1地址偶对的线性拟合
令xi=50 (i+1) (i=0, 1, 2, …, m) 为收到的包个数, yi (i=0, 1, 2, …, m) 为收到的包的地址偶对数, 统计分析筛选后的数据, 得到若干数据点 (xi, yi) (i=0, 1, 2, …, m) , 求拟合函数P (x) , 使误差ri=P (xi) -yi的平方和最小, 即
设P (x) =
I=
式 (2) 是关于a0, a1, …, an的线性方程组, 用矩阵表示为
从式 (3) 中解出ak (k=0, 1, …, n) , 从而可得多项式P (x) 。从统计的角度来看, 客户端收到相等数量的包中, 相邻包的源和目的地址发生交换的数量大致相等, 所以上面的yi与xi成线性关系, yi=a1xi+a0。
2.2地址偶对仿真实验
下面是网络游戏以及文件下载和传输时, 经筛选后取前350个包中地址偶对数的线性拟合和偶对曲线图。分别取了10次包, 每个图中有10条拟合直线。
可以看到, 在该实验中, 网络游戏的10条拟合直线的斜率a1>0.4, 文件下载和传输的10条拟合直线的斜率都<0.4, 不同的网络环境该值有所不同, 但呈现明显的差别。
2.3端口偶对的线性拟合
与地址偶对的线性拟和类似, 令xi=50 (i+1) (i=0, 1, 2, …, m) 为收到的包个数, yi (i=0, 1, 2, …, m) 为收到的包的端口偶对数, 统计分析筛选后的数据, 得到若干数据点 (xi, yi) (i=0, 1, 2, …, m) , 求拟合函数P (x) , 使误差ri=P (xi) -yi的平方和最小, 即
设P (x) =
I=
与地址偶对的线性拟合类似, 解线性方程组 (5) , 我们依然对端口偶对做线性拟合, 得到直线yi=a1xi+a0。
2.4端口偶对的仿真实验
下面是网络游戏以及文件下载和传输时, 经筛选分类后取前350个包中端口偶对数的线性拟合和偶对曲线图。分别取了10次包, 每个图中有10条拟合直线。
可以看到, 在该实验中, 网络游戏的10条拟合直线的斜率a1>0.4, 文件下载和传输的10条拟合直线的斜率都<0.4, 不同的网络环境该值有所不同, 但呈现明显的差别。
根据实验得知:网络速度越慢, 不同类型的包地址偶对和端口偶对拟合后的斜率越大, 但网络游戏包的斜率更大, 用地址偶对和端口偶对拟合的斜率作为模式的特征, 可以实现网络数据包线性可分。
3两类线性分类器
假设有一个包含n个样本的集合, x1, x2, …, xn, 一些标记为ω1 (网络游戏包) , 另一些标记为ω2 (非网络游戏包) 。线性判别函数为
g (X) =wtxi+w0。
我们希望用这些样本来确定判别函数的权向量w, 也即寻找一个能将所有这些样本正确分类的权向量。对于一个样本xi, 如果有wtxi+w0>0就标记为w1, 如果wtxi+w0<0就标记为w2, 这样, 就用一种规范化操作来简化两类样本的训练过程, 也就是说对属于w2的样本, 用负号表示而不是标记w2。
3.1LMSE分类算法
LMSE以最小均方差作为准则, 均方误差为
E{[ri (X) -wTiX]2}, 准则函数为[5]
ri (X) -WTiX=0时得J (Wi, X) 的最小值。准则函数对Wi的偏导数为
Wi (K+1) =Wi (k) +αkX (k) {ri[X (k) -WTiX (k) ]}M
类问题应该有M个权函数方程, 对每一个权函数方程来说, X (k) ∈ωi, ri[X (k) ]=1, 否则
rj[X (k) ]=0 j=1, 2, …, M, j≠i。
3.2算法实现
(1) 设各个权矢量的初值为0。
(2) 输入第K次样品X (K) , 计算di (k) =WTiX (k) 。
(3) 若X (k) ∈ωi, 则ri[X (k) ]=1, 否则ri[X (k) ]=0。
(4) 计算Wi (K+1) =Wi (k) +αkX (k) {ri[X (k) -WTiX (k) ]}, 其中,
(5) 循环执行第 (2) 步, 直到属于ωi的所有样品都满足条件di (X) >dj (X) , ∀j≠i。
表5显示了用LMSE算法对网络数据流量很大的3类网络行为产生的包进行分类的实验结果。实验先取50次包作为训练样品, 每次取350个包, 每类随机取10次, 再对新包进行分类。
4结论
通过实际截获的网络包, 分析不同类别网络包地址偶对和端口偶对线性拟合系数的差别, 从而发现了代表网络游戏包的特征, 用这两个特征构造出一个线性分类器实现了网络游戏包和非网络游戏包的两类划分, 在复杂的环境中其正确率可以达到90%以上。该方法不需要游戏服务器的IP地址等任何先验知识, 完全根据客户端捕获的包进行分类, 能适应各种不同的网络环境, 还能根据不同的情况进行自我训练。下一步工作要提高包筛选的速度, 希望获得更多的特征分量, 提高识别率。
参考文献
[1]车绣梅.基于WINDOWS环境下数据包截获的设计与实现.电脑开发与应用, 2004;17 (12) :22—23
[2]余承健.基于神经网络的上网行为识别的研究.电脑知识与技术, 2005;36 (27) :65—66
[3]高黎, 卜淮原, 胡曙.一种医疗智能诊断推理机的设计与实现.计算机应用与软件, 2002;6 (11) :44—46
[4]李春艳.利用决策树实现包过滤的关键技术.计算机工程, 2004;30 (1) :45—47
[5]杨淑莹.图像模式识别-VC++技术实现.北京:清华大学出版社, 2005
[6]Duda R O, Hart P E, Stork D G.Pattern Classification, Beijing:China Machine Press, Second Edition.
基于类词包技术的图像分类算法 篇2
近年来,借鉴文本分类中的成熟技术,人们提出了基于词包BOW(Bag of Words)的有监督图像分类方法[3,4,5,6]。BOW的基本思想是将图像表示成一系列视觉关键字的统计直方图,然后通过SVM(Support Vector machine)或PLSA(Probabilistic Latent Semantic Analysis)进行图像分类。所谓视觉关键字就是由所有的训练图像局部特征(如关键点)经过聚类形成的聚类中心,视觉关键字的集合形成所谓词包。局部特征是通过某种采样方法(密集采样、稀疏采样)获得,局部特征的选取与描述应满足平移、旋转、尺度和仿射不变特性。关键点和关键区域是一种有效的用于图像识别与分类的图像特征,目前常用的关键点检测器有用于角点区域提取的Harris-Laplace检测器和用于斑点区域提取的Laplacian检测器[3]。文献[7]对各种特征描述子(shape context,differential invariants,steerable filters,SIFT,PCA-SIFT和spin images)做了比较,并证明SIFT的综合性能优于其他描述子。
BOW技术在图像分类领域取得了很大的成功,已成为广泛采用的方法之一,并已在PASCAL VOC贺TRECVID竞赛中成为一项主流技术。但同有着明确语义的文本关键字相比,BOW中的只是对图像局部特征的聚类中心,并没有明确的语义含义,所以使用文本分析的方法并没有取得满意的效果,如tf-idf、stop words等在文本分类中非常成熟的方法在BOW中却没有明显的效果[8]。笔者在研究商品图像分类的过程中,为了进一步提高分类性能,对视觉关键字的获取方法进行了改进,提出类词包(CSBOW,Class-Specific Bag of Wurds)的概念。与传统通用词包不同,类词包是在每个训练图像类分别形成的,方法是对每个训练图像类分别进行关键点特征提取和聚类,形成各个类专属的词包,即所谓“类词包”。具有类语义特征的类词包包含的聚类中心就是类关键字。这样每个类的视觉关键字就有了明确的类别特征。在测试阶段,通过计算测试图像各局部特征到各个类关键字的距离,确定测试图像与各图像类的相似度,从而确定图像的类别。
1 基于类词包图像分类算法
基于类词包的图像分类算法是在BOW基础上改进的有监督图像分类算法。在训练阶段,提取并描述各类图像的局部特征,依据一定原则和先验知识经过聚类后形成类词包;在测试阶段,首先提取并描述测试图像的局部特征,形成图像局部特征集合;然后根据各局部特征与关键字的距离大小,确定测试图像的类关键字集合,并最终确定图像的分类结果。
1.1 类词包的构建
1.1.1 特征提取与描述
概括来讲图像特征可以分为全局特征和局部特征。全局特征就是通过描述整个图像的某些统计特征来表示图像,而局部特征则将图像描述成若干局部区域特征的集合。全局特征包含一些冗余信息,鲁棒性不够。局部特征具有冗余性低,可以有效抵抗各种几何变换等优点。局部特征常采用特征点及周围区域进行表示。图像特征点是由于景物的物理与几何特性使图像中局部区域的灰度产生明显变化而形成的。通常理解为,如果某些点的邻域变化比较大,则称之为特征点,如角点及噪声点等。当然噪声点是不希望得到的,因此,特征点的本质问题可以归结为:在抵抗一定的图像畸变的情况下,保证特征点的正确提取和匹配[9]。
特征点提取的主要目的是确定特征点的位置及尺度等参数。Harris算子是一种应用非常广泛的特征点提取算法。它是在二阶混合偏导矩阵基础上,计算该矩阵特征值的一个函数反应值确定特征点。尺度自适应二阶矩阵定义如下:
式中Ix、Iy——在x、y方向计算的梯度;
σD——积分尺度;
σI——微分尺度。
矩阵MHarris(x,σ1,σD)描述了特征点局部邻域的梯度分布。矩阵M的两个特征值代表了特征点邻域两个主要信号方向的变化。当两个特征值都比较大时,可以看做是一个角点。实际中可以不计算特征值,而是通过计算cHarris是否大于某个阈值的方法来判定是否是一个角点。
特征尺度的选择采用Mikolajczyk K和Schmid C[10]提出的Laplacian方法来确定。
特征点的描述通常是在该点特定尺度周围取一个邻域,然后对该邻域进行合理的描述。根据文献[7]的结论,笔者采用SIFT作为特征描述子。SIFT描述子将特征点周围的16×16窗口分割成16个4×4的子窗口,然后统计每个子窗口的梯度直方图。将每个子窗口的方向分成8个方向计算。一共具有4×4个子窗口,每个窗口描述是8维,描述8个方向梯度的大小值,这样形成的描述符是4×4×8=128维,如图1所示[11]。
1.1.2类词包的形成
将每类训练图像提取的特征用SIFT描述后,运用K均值聚类方法进行聚类,形成多个聚类中心,即类词包。需要考虑两个参数的确定:每幅训练图像提取特征的个数;每类图像形成聚类中心的个数即每个类词包的大小。这两个值选得过小,会影响图像有效信息的提取和分类准确度,选得过大则会使计算量过大,并且会引起过匹配问题。实验中应根据图片分辨率的大小,合理选择参数。
1.1.3 视觉关键字权重的计算
由于在类词包中,每个视觉关键字的区分特性不同,有必要计算其类权重。具体方法是:计算所有训练图像特征点到所有类词包中各聚类中心的距离,对类词包的所有视觉关键字进行一次投票(每个特征点投票给距离最小的视觉关键字)。视觉关键字的类权重具体设定方法为:
式中Ni——本类图像特征点的投票数;
Nj——其他类图像特征点投票数;
Nmax——本类所有聚类中心中获得的最多的本类投票数目;
Wi——此聚类中心i的投票权重,正常情况下,Wi=1~2。
1.2 对测试图像进行分类
首先对测试图像进行底层特征提取,运用SIFT描述符形成128维特征矢量,方法同1.1。计算测试图像每一个特征点到聚类中心的距离,找出距离最小的聚类中心,依据权重对此聚类中心所属的类进行投票;最后计算每个类得票总数,得票多的就是该图像所属的分类类别。
2 实验结果
从网站上下载的十类鞋子图片,分辨率为120×100,每类12幅,每类随机选择6幅作为训练图像,其余6幅作为测试图像。所有程序都在Windows XP操作系统,2 G内存,matlab 7.0环境下运行,SVM分类器采用台湾大学林智仁开发的libsvm2.88。
图2给出了在不同词包大小(100、200、300)的情况下本文方法与传统SVM方法的平均测试错误率。从图中可以看出,基于类词包与加权投票的图像分类方法错误率明显低于基于词包和SVM的传统图像分类算法。其中,类词包大小为200时,错误率仅为8%。实验结果说明类词包能更好地体现训练类的特征。
3 结束语
笔者提出基于类词包(CSBOW)技术的有监督图像分类算法,将每类局部特征描述子进行K均值聚类,形成若干聚类中心即所谓类词包。在测试阶段,依次计算测试图像每个特征描述子与各聚类中心的欧氏距离,运用竞争投票机制决定图像的分类结果。实验结果表明,类词包能更好地体现训练类的特征,对类内特征比较稳定,背景干扰较少的商品图像,能有效提高分类正确率。今后的工作主要考虑以下几个问题:如何根据图像内容选择合适的类词包数量;如何根据每类图像的先验知识,选择更有效的图像-类距离计算方法;关于竞争投票机制的研究。
摘要:提出基于类词包(CSBOW,Class-Specific Bag of Words)技术的有监督图像分类算法。在训练阶段,首先在每一类训练图像库中提取特征点,运用SIFT描述符形成特征区域描述符,然后根据欧氏距离对特征矢量进行K均值聚类,每一类形成若干聚类中心即所谓类词包。在测试阶段,首先提取测试图像的特征点,运用SIFT描述符形成若干特征矢量,然后依次计算每个特征矢量与各聚类中心的欧式距离,运用竞争投票机制决定图像的分类结果。将CSBOW技术应用到商品图像分类,实验结果证明本算法分类正确率高于传统的基于词包和SVM的图像分类算法。
关键词:图像分类,类词包,竞争投票
参考文献
[1]Bosch A,Murioz X,Marti R.Which is the Best Way to Organize/Classify Images by Content[J].Image and Vision Computing,2007,25(6):778 -791.
[2]Datta R,Joshi D,Li J,et al.Image Retrieval:Ideas, Influences,and Trends of the New Age[J].ACM Comput Surv,2008,40(2):1 -60.
[3]Zhang J G,Marszatek M.Lazebnik S,et al.Local Features and Kernels for Classification of Texture and Object Categories;A Comprehensive Study[C].Computer Vision and Pattern Recognition Workshop.CVPRW, 2006:13.
[4]Marszaek M,Schmid C.Spatial Weighting for Bag-of-features [C].IEEE Conference on Computer Vision & Pattern Recognition.IEEE,2006:2118 -2125.
[5]Sivic J,Zisserman A.Video Google:A Text Retrieval Approach to Object Matching in Videos[C].Proceedings of the Ninth IEEE International Conference on Computer Vision.IEEE,2003:1470 - 1477.
[6]Lazebnik S,Schmid C,Ponce J.Beyond Bags of Features: Spatial Pyramid Matching for Recognizing Natural Scene Categories[C].IEEE Computer Society Conference on Computer Vision and Pattern Recognition. IEEE,2006:2169-2178.
[7]Mikolajczyk K,Schmid C.A Performance Evaluation of Local Descriptors[J].IEEE Trans Pattern Anal Mach Intell,2005,27(10):1615 -1630.
[8]Yang J,Jiang Y G,Hauptmann A G,et al.Evaluating Bag-of-visual-words Representations in Scene Classification [C].Proceedings of the International Workshop on Workshop on Multimedia Information Retrieval. ACM:New York,NY,USA,2007:197 -206.
[9]韩东峰.图像分类识别中特征及模型若干问题的研究[D].长春:吉林大学,2008.
[10]Mikolajczyk K.Schmid C.Scale&Affine Invariant Interest Point Detectors[J].Comput Vision,2004,60 (1):63-86.
网络数据包捕获及分析系统 篇3
一、 系统研究过程
1、 总体规划
根据系统需求确定系统的总体规划,因为此系统为网络数据包捕获及分析系统,系统主要是对网络上传输的数据包进行操作,主要包括数据包捕获,协议分析,数据存储,内容检索,实时响应等。根据系统需要完成的任务和角色划分系统用例图如图1所示。其中数据包捕获包括数据包的获取,存储,分类管理;协议分析包括对链路层协议、网络层协议、传输层协议和应用层协议分析;数据存储主要指的是文本内容存储;内容检索包括获取用户输入得敏感信息,数据库查询,返回查询结果;实时响应:包括报警,查找出敏感信息具体位置。
2、 设计流程
功能需求分析方面包括文本检索和及时响应,前者包括SMTP协议内容检索、FTP协议内容检索、HTTP协议内容检索,后者主要指的是由于硬件的限制,系统用弹出警告框来代替报警。在进行功能需求分析之后进行系统设计,本研究的总体设计流程如图2所示:
五个模块功能解析如下:
(1)网络数据包捕获模块:主要功能就是从以太网中捕获数据包。
(2)网络协议解析模块:网络协议解析模块对捕获到的数据包进行协议分析,检测出每个数据包的类型和特征。这是此系统的核心部分。
(3)存储模块:存储模块就是把协议分析后的结果存储起来,供事后分析。
(4)检测模块:检测模块就是根据规则来检测入侵特征。
(5)响应模块:响应模块是对检测的结果进行实时响应。
3、 系统总体结构图
根据系统的总体流程图,设计了系统的整体框架图,如图3所示。
4、处理流程设计
系统最终目的是为了让用户,输入自己认为敏感的信息来对应用层协议内容进行检索,如果发现敏感信息进行及时报警。此因下面给出了检索响应这两个模块的详细流程图,如图4所示:
二、 系统各功能模块的分析与设计
1、 数据包捕获模块
Libnids使用了Libpcap(数据包捕获开发包),所以它具有捕获数据包的功能,利用Libnids可以轻松的实现对数据包的捕获,并对其进行分析。因此该模块主要是利用Libpcap捕获数据包。在初始化完毕后,应用程序利用Libpcap的pcap_dispatch()或pcap_loop捕获数据链路层的数据包。
2、 协议分析模块
捕获数据包后,对所有数据包进行分析,从链路层开始分析,然后分析网络层,再分析传输层,最后分析应用层。系统主要是分析应用层协议中的HTTP协议、FTP协议和SMTP协议的内容,并且根据应用层协议的不同,把数据包保存到不同的文本文件中。该模块中利用Libnids提供的TCP数据流重组功能,非常方便的对基于TCP协议的应用层协议进行分析,对他们的操作过程以及传输的数据内容进行分析,获取敏感信息,如账号和密码等。
3、 存储模块
实现数据的存储,在协议分析模块中,已经根据应用层协议的类型把相关数据包保存到文本文件中,此模块就是实现把文本文件的内容保存到数据库中,以备响应模块查询用。
4、 检索模块
根据用户输入的敏感信息,对数据库的文本内容进行检索。该检索模块使用BMGJ算法进行文本内容的匹配。
5、 响应模块
根据用户输入的敏感信息,检索数据库,做出相应的响应。
6、 帮助模块
该模块主要以文档形式提供系统使用说明,应注意事项等。
三、 结束语
入侵检测作为一种积极主动地安全防护技术,受到人们的高度重视,迫切需要具有自主版权的入侵检测产品。网络数据包捕获及分析系统采用自顶向下的分析方法实现了网络安全检测,实时报警的目的,满足了在设计时网络安全管理者提出的内容检索,及时响应的要求。
参考文献
[1]刘文涛,网络安全开发包详解[M].北京:电子工业出版社,2005年1月.
[2]曹学武,易国良,六利军.基于协议分析的邮件安全监控系统实现[J].计算机工程,2005年1月.
SIP通信数据包捕获和研究 篇4
1.1数据包捕获的机制
数据包捕获就是对数据包的完整收集, 系统搜集某一网络设备所接收的数据包, 不论此数据包发送至哪个端口或地址。收集数据包以后, 再进行还原以及审计等处理, 发送到上一层进而对其实行应用处理。可以通过专用的数据采集卡对网络实行相应采集, 也可根据以太网卡的混杂模式通过其广播特性或者交换机监测口对数据报文进行监听。
数据包的捕获通常有3个阶段:首先, 设置网卡为“混杂”的工作模式;其次, 捕获链路层的数据帧;最后, 提取数据包的首部, 便于分析和处理。
1.2数据包捕获的意义
网络不仅仅为人们带来越来越多的方便与快捷, 也给人们带来诸如网络病毒、机密泄漏、黑客入侵等安全问题, 信息安全成为我们关注的一大焦点。数据包捕获是信息保护的一种重要方法, 因此对其技术的研究有着重要意义。
1.3特点
数据包捕获是关乎网络与财产安全的一项重要措施, 该技术有较高的要求, 因此有以下特点:1.响应快。对于许多安全应用, 在数据报文上需要很快的响应速度, 以便于迅速捕获以及即时反应, 同时不允许误判或丢包。2.适应能力强。数据包捕获针对流经此网络的所有数据报文, 其类型和源目的地址都不统一, 即数据包的种类繁多且来源复杂, 因此该技术对各种数据包应有较强的适应能力。3.直接由上层处理。数据包的处理能够不经操作系统协议栈, 直接通过上一层的应用实行处理。4.不需严格校验。大部分数据报的处理是通过应用程序操作的, 在该应用中能够实行部分校验;数据报在某些网卡中的硬件芯片上进行了固化的校验, 因此在捕获过程中可以略去一些严格校验。
二、SIP通信
2.1 SIP协议所支持的功能
SIP作为信令协议, 可提供多媒体通信的5项功能。
2.2 SIP网络系统
SIP协议的网络系统结构包括用户代理 (UA) 和网络服务器 (NS) 。应用代理是SIP的终端, 用于和用户之间的交互, 可发送呼叫请求和响应呼叫请求。
网络服务器主要解析地址以及定位用户, 分为3种:代理服务器, 用于路由选择, 将用户请求及响应发送至下一跳;重定向服务器, 用于地址解析, 类似于DNS, 把目的地址映射成为0个或者多个新地址;注册服务器, 接收来自终端的注册请求, 并记录其地址。因此, 基于SIP协议, 有直接呼叫、代理服务以及重定向服务等3种通信方式。
2.3 SIP协议的特点
SIP协议参照了其它的Internet标准, 有其简练、兼容以及可扩展的作风。SIP协议是基于文本, 其词法、语法都较为简单;SIP在会话请求时, 同时实行媒体协商, 因此建立呼叫所需时间大大缩短;SIP只要对头域做简单地扩展便可进行补充、智能等业务;SIP协议能够分布式多播。
三、SIP通信数据包捕获
数据包的捕获系统包含硬件与软件, 硬件主要是对数据包进行捕获以及过滤, 软件主要对数据包进行分析与处理。因此捕获系统需满足实时、灵活、扩展方便和数据包无遗漏等性能。
3.1 SIP通信捕获思想
SIP通信捕获包含通信消息及其媒体数据2个部分的捕获。通信消息的捕获能够获得呼叫方和被呼叫方的通信状态——通信步骤与通信状态, 通信媒体参数的信息;依据通信的状态判断获取数据的开始或停止, 依据参数信息筛选及还原双方数据。
1.捕获流程
一个完整SIP通信应包含的消息有INVITE, 180Ringing, 200OK, ACK, BYE, 200OK等, 双方的媒体参数信息能够在INVITE及其响应的200OK获得, 由此可设计以下捕获流程:INVITE消息获取, 从SDP的o字段获取源IP地址, 并将该SDP部分的媒体参数作为邀请端 (A) 的媒体信息;从INVITE的起始行获得被邀请端 (B) 的IP地址。等待180Ringing, 若B至A的180Ringing消息得以捕获, 系统会将该信息显现出。等待200OK响应消息的捕获, 若判断为B到A的INVITE响应, 将该SDP的通信媒体信息获取并作为B的媒体信息。等待A至B的ACK消息的捕获。ACK不经过代理、重定向服务器, 而是直接通过双方接收、发送, 因此能够通过ACK的源地址和目的地址判断会话双方是即将通信双方与否。根据ACK确定双方IP地址, 捕获双向数据, 同时筛选、还原双方通信媒体信息。BYE消息捕获, 一方发送至另一方时便停止捕获。200OK响应消息捕获, 判断为BYE的响应消息时终止通信。
2.捕获改进
上述流程是必备的, 因SIP的复杂性, 数据包捕获可能出现乱序, 所以需做改进:
SIP通信除了上述消息外, 还有其他请求、响应消息, 某会话的其他SIP消息, 可选用的处理方式为收到便显示。
因网络上的数据有着庞大的传输量, 需要建立合理、有效的筛选机制, 可依据IP地址对双方信令、数据进行筛选。
因数据在网络上传输不稳定, 捕获完整SIP通信较为困难, 所以可将捕获流程缩减为4步:处理INVITE消息;处理对INVITE响应的200OK消息;依据媒体参数信息, 对数据捕获、还原与确认;依据BYE或对BYE响应200OK消息终止。
3.2媒体数据还原
SIP通信通过RTP数据包进行媒体数据传输, 还原方案是基于RTP协议展开的。对实时通信与离线数据设计以下两种不同方案:
1.实时通信的还原。
根据请求消息进行分析, 获得媒体的源地址、目的地址和载荷、端口等信息, 然后经过滤器对数据实行捕捉。具体步骤如图1所示。将通信信令捕获, 同时对相关数据流的信息进行记录;依据发送、接收双方的通信信令对RTP数据包进行捕获;判断捕获是否结束, 可根据SIP通信中BYE或对BYE响应的200OK确认停止;重组RTP数据, 同时解压缩以获取原始数据。
2.离线数据的还原。
首先储存捕获到的所有数据包, 进而还原数据流, 再通过流信息获取媒体的参数信息, 后通过此信息将原始数据还原。具体流程如图2所示。打开网卡, 将IP数据包完整捕获并储存;依据RTP流判别的原则, 在上述所储存的数据中将所有的RTP流信息提取出来;根据RTP包中Sequence Number字段, 重组并还原RTP数据;依照双方IP地址获得通信消息, 并得知其编码信息, 若流的信令不全, 可以用RTP默认类型的方式进行处理;最后解压缩获取原始的数据。
四、总结与展望
数据包捕获是对数据包的完整收集, SIP是不断完善且应用广泛的信令协议, SIP通信的数据包捕获是双方通信信息的获取, 基于SIP协议做了数据包捕获及还原的流程设计, 在今后的工作中, 应不断改进与完善此机制, 使捕获能够更加清晰、有条理。
参考文献
[1]钟诚, 等.SIP通信数据包捕获与分析[J].电脑知识与技术, 2010, 6 (34) :9739-9740, 9743
数据包分类 篇5
在信息社会中, 信息是维持生产活动、经济活动以及社会活动的重要资源, 对政治、经济和文化都有着深远影响。不断探索网络信息监听与还原技术有助于建立可靠、高效的信息安全保障体系, 对于维护社会政治稳定和国家信息安全具有重要的现实意义。因此, 对因特网中一些重要数据信息进行还原和提取, 是保证网络应用的健康发展和打击网络犯罪的一个重要手段。
一、系统设计
基于数据包分析的网页还原系统主要分以下几个模块:
1、网络数据包捕获模块
2、网络数据包协议分析与数据包重组模块
3、HTTP协议信息还原模块
数据包捕获模块负责捕获流经用户所选网络设备的全部数据包, 并将捕获得到的数据按照相应的规则以文件格式存储起来, 以供后续模块进行分析、重组和还原。
数据重组模块首先读入数据包捕获得到的数据, 分析每一个捕获到的数据包, 将具有相同的源IP地址、源端口号、目的IP地址和目的端口号的数据包按照先后顺序存储在一起, 重组成一个完整的数据包。
HTTP协议信息还原模块通过一层层的数据包分解出来, 读取出应用层http的负载信息, 通过分析http请求头得到seq, 并为此创建一个临时文件, 保存数据包的简要信息, 然后分析http响应头, 得到contentencoding、conteng-type、content-length字段值, 再存入临时文件, 最后把http负载信息与具有相同seq、sport、dport的临时文件简要信息匹配, 若匹配成功, 则进行相应的数据插入, 还原出相关网页信息。总流程图如图1所示。
从降低系统设计复杂性和提高开发效率的角度考虑, 结合实际需求出发, 本系统没有采用数据库软件存储捕获到的网络数据包, 而是直接以某种自定义文件格式将其存放在硬盘中。HTTP协议信息还原模块既支持对于老版本HTTP/1.0协议网页信息的还原, 也支持针对新版本HTTP/1.1协议的网页信息还原。
二、网络数据包捕获
原始数据包捕获是进行数据挖掘研究的基础, 数据的可靠性决定了挖掘分析的准确度。在本次研究中我们利用winpcap提供的用户接口捕获校园网络拓扑中共享网络上主机的收/发数据包。经过测试, 我们结合winpcap接口开发的数据包捕获软件捕包效率可以达到99.63%以上, 见下表1[1], 可以忽略漏掉的少量数据包对实验结果的影响。
三、网络数据包重组
由于IP不能保证可靠、有序的包传输, 因此包有可能会被破坏或在到达时是无序的。另外, 在捕获过程中会将重复的包视为TCP重发的结果, 也可能会捕获那些不会到达到预定接收器的包。在这两种情况下, 捕获过程都可能会接收重复的包。更复杂的是, TCP不能保证重新传输的包会按照原始数据的同一方式再将这些数据分组。因此重构有序流就显得尤为重要。
如果一个流有起始、结束和两者间的所有东西, 它就是完整的流。根据S Y N可以确定包连接的TCP包所有字节流。
为了方便应用数据的恢复, 需要将无序的数据片流有序化, 使其表现为一个有序的数据片流 (或者说是数据流) 。在软件实现数据片有序化时, 本设计采用了一个带头结点的双向链表队列, 队列中的每个结点存储一个完整的TCP数据流的内容, 另外还有两个元素, 分别是指向前导和后续结点的结构体指针。
四、HTTP协议信息还原
根据消息体与消息头之间有两个连续的回车换行符 (ASCII码为rn) 作为分隔的特征, 利用匹配函数strstr () 找到两个连续的回车换行符出现的位置, 从此位置开始, 到服务器端数据文件结尾的全部数据均为H T T P消息体数据。
本模块首先使用find (ack, sport, dport) 获得该数据包的信息, 通过函数node_isempty () 判断该数据包的data有效长度是否为0, 如果不为0, 则通过函数have_inserted_first_data () 判断该数据包是否已经加入过http data内容, 如果没有, 则调用函数init_first_seq () 初始化seq, 然后使用函数insert_first_data插入数据包的第一条data内容;如果已经加入过data内容, 则继续加入当前分片的data内容。然后通过函数get_complete_percent () 判断当前数据包是否完整, 如果不完整则完成data内容的处理;如果是完整的, 则通过函数serialstream () 重组当前数据包, 最后把所有分片的内容整合在一起, 写入文件。
结语
本文结合应用层http协议为例, 进行了协议分析, 通过编写程序实现了对网络中的http数据包进行捕获、分析和提取有用信息, 得到了网络协议分析技术实际应用的结果。实现了一个融合解决HTTP/1.0和HTTP/1.1协议网页信息还原的通用HTTP协议信息还原系统。
摘要:本文结合应用环境和实际需求, 研究了网络数据包信息还原涉及的数据包捕获技术、数据包分析技术、数据包重组技术、http信息识别技术。
关键词:网络数据包捕获,数据包重组,http信息提取
参考文献
[1]Miao Chen, Shun-hua Tan, Guo-hai Yang, Yi-zhi Wang.Research on network business identification technology based on IP packets.IEEE ICACIA2010