CN111641624B - 基于决策树的网络协议报头压缩方法 - Google Patents
基于决策树的网络协议报头压缩方法 Download PDFInfo
- Publication number
- CN111641624B CN111641624B CN202010447129.2A CN202010447129A CN111641624B CN 111641624 B CN111641624 B CN 111641624B CN 202010447129 A CN202010447129 A CN 202010447129A CN 111641624 B CN111641624 B CN 111641624B
- Authority
- CN
- China
- Prior art keywords
- field
- header
- change
- protocol
- compressed
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/04—Protocols for data compression, e.g. ROHC
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出了一种基于决策树的网络协议报头压缩方法,用于解决现有网络协议报头压缩方法适用范围窄的问题,实现步骤为:(1)获取训练样本集和测试样本集;(2)构建字段变化特征分类决策树;(3)发送方使用字段变化特征分类决策树S'对待压缩协议报头中字段的变化特征进行分类;(4)发送方与接收方进行压缩协商;(5)发送方对使用待压缩协议的未发送的数据包进行报头压缩并传输;(6)接收方接收数据包并获取解压缩结果。本发明采用字段变化特征分类决策树对网络协议报头中的字段变化特征进行分类,并根据分类结果对网络协议的报头进行压缩,本方法可以适用于大多数网络协议的报头压缩,具有广泛的适用性。
Description
技术领域
本发明属于通信技术领域,涉及一种网络协议报头压缩方法,具体涉及一种基于决策树的网络协议报头压缩方法,可用于无线通信网络中数据包的报头压缩。
背景技术
无线信道的带宽是整个无线通信中最为宝贵和稀少的资源。而网络协议报头中某些信息,对于终端用户来说是不需要了解的,传输过长的报头信息会降低无线网络的有效载荷利用率,从而浪费无线信道带宽资源。也就是说,在进行无线传输时,如果能对网络协议报头进行压缩后传输,这样就可以大幅提高传输效率。
网络协议报头压缩方法通常包括发送方确定报头中的可压缩内容、发送方与接收方确定压缩参数、发送方根据压缩参数对报头进行压缩并传输、接收方通过压缩参数对报头进行解压缩四个基本步骤。
现有的网络协议报头压缩方法主要针对某种特定网络协议进行压缩,通常是采用人为分析识别的方法来确定网络协议报头中的可压缩内容,这种压缩方法只适用于这种特定的协议报头,对其他协议报头不具有适用性。例如,申请公布号为CN101568144A,名称为“一种适用于无线自组织网络的报头压缩方法”的专利申请,提供一种适用于无线自组织网络的报头压缩方法,该方法包括源节点建立过程、目的节点建立过程、源节点压缩过程和目的节点解压缩过程,该方法存在的不足是,只适用于无线自组织网络的IP、TCP以及UDP报头的压缩,对其他网络协议的报头则不适用。
发明内容
本发明的目的在于针对现有的网络协议报头压缩方法的不足,提出了一种基于决策树的网络协议报头压缩方法,用于解决现有技术存在的适用范围窄的技术问题。
为实现上述目的,本发明采取的技术方案包括如下步骤:
(1)获取训练样本集和测试样本集:
(1a)采集无线通信网络数据流中连续的M个数据包,并提取每个数据包的报头信息,得到M个报头信息,然后对每个报头信息按所属协议的字段进行划分,并从划分得到的字段值中丢弃掉字段值类型为字符串的字段值,再将剩下的属于同一流的同一协议的同一字段的字段值划分到一个集合中,最后将每个集合作为一个样本,归入样本集X中,M≥100;
(1b)从样本集X中选取半数以上的样本,并以静态不变、递增变化、偶尔变化或无规律变化作为字段变化特征的类型标签对每个样本的字段变化特征进行标注,然后将标注好的样本归入训练样本集P中,其余样本归入测试样本集Q中;
(2)构建字段变化特征分类决策树:
(2a)以训练样本集P所含的样本中所有字段值的平均值T1、方差T2、取值个数T3、极差T4和一阶差分的方差T5分别作为样本的特征属性,构成特征属性集T,并计算训练样本集P中每个样本的特征属性Ti的值,i=1,2,3,4,5;
(2b)以特征属性集T作为C4.5算法进行学习的特征集,使用C4.5算法对训练样本集P进行学习,得到初始字段变化特征分类决策树S,并采用错误率降低剪枝法利用训练样本集Q对S进行剪枝,得到字段变化特征分类决策树S';
(3)发送方使用字段变化特征分类决策树S'对待压缩协议报头中字段的变化特征进行分类:
(3a)以字段在通信网络数据流中所用的协议中的起始比特位、结束比特位和字段值类型的三元组格式对所用的协议进行标识,并以标识好的协议为模板建立协议描述库;
(3b)发送方按照字段在待压缩协议中的起始比特位、结束比特位、字段值类型的三元组格式对待压缩协议进行标识,并将标识好的待压缩协议添加到步骤(3a)建立的协议描述库中;
(3c)发送方使用待压缩协议向接收方发送数据;
(3d)发送方从发送方到接收方之间的通信网络数据流中已发送的数据包中采集连续的L个使用待压缩协议的数据包,数据包按采集的先后顺序标记为Lj,并按照待压缩协议在协议描述库中标识的格式对这L个数据包的报头按字段进行划分,丢弃掉字段值类型为字符串的字段值,再将剩下的属于同一字段的字段值划分到一个集合中,然后分别计算每个集合中所有字段值的平均值、方差、取值个数、极差和一阶差分的方差,L≥20,j=1,2,3,...,L;
(3e)发送方分别将每个集合的字段值的平均值、方差、取值个数、极差和一阶差分的方差作为字段变化特征分类决策树S'的输入,对集合所属字段的变化特征进行分类,得到每个集合所属字段的变化特征;
(4)发送方与接收方进行压缩协商:
(4a)发送方将待压缩协议中字段值类型为字符串的字段的变化特征设定为无规律变化;
(4b)发送方将步骤(3d)采集到的第一个数据包L1作为基准数据包,并按照待压缩协议在协议描述库中的标识的格式从基准数据包的报头中提取每个字段的值,然后将变化特征属于静态不变、递增变化、偶尔变化的字段的值作为变化特征属于静态不变、递增变化、偶尔变化的字段的压缩参考值,将变化特征属于无规律变化的字段的压缩参考值设定为0;
(4c)发送方提取步骤(3d)采集到的第二个数据包L2的报头信息,然后将提取到的报头信息中变化特征属于静态不变的字段删掉,并用提取到的报头信息中变化特征属于递增变化和偶尔变化的字段的值与步骤(4b)中得到的变化特征属于递增变化、偶尔变化的字段的压缩参考值的差值代替提取到的报头信息中变化特征属于递增变化和偶尔变化的字段的值,得到一个经过压缩的报头;
(4d)发送方从步骤(4c)中得到的经过压缩的报头中获取待压缩协议的各字段在压缩后的报头中的起始比特位和结束比特位;
(4e)发送方将协商包的第一个字节作为协商包标志字节并将此标志字节的值设置为0,然后将发送方传输待压缩协议所用的IP地址、端口号和待压缩协议的各字段在基准数据包的报头中的起始比特位、在基准数据包的报头中的结束比特位、字段值类型、压缩参考值、在压缩后的报头中的起始比特位、在压缩后的报头中的结束比特位放入协商包中,然后将协商包发送给接收方;
(5)发送方对使用待压缩协议的未发送的数据包进行报头压缩并传输:
(5a)发送方将发送方与接收方之间的通信网络数据流中未发送的数据包中使用待压缩协议的数据包的报头中变化特征属于静态不变的字段删掉,并用数据包的报头中变化特征属于递增变化和偶尔变化的字段的值与步骤(5a)得到的变化特征属于递增变化和偶尔变化的字段的压缩参考值的差值来代替数据包报头中的变化特征属于递增变化和偶尔变化的字段的值,得到经过报头压缩后的数据包;
(5b)在步骤(5a)中得到的经过报头压缩后的数据包的报头前添加一个字节的压缩标志字节并将此字节的值设置为1,然后将添加了压缩标志字节的数据包发送给接收方;
(6)接收方接收数据包并获取解压缩结果:
(6a)接收方提取收到的数据包的第一个字节的信息,若为0,则提取协商包中的传输待压缩协议所用的IP地址、端口号和待压缩协议的各字段在原始报头的起始比特位、在原始报头的结束比特位、字段值类型、压缩参考值、在压缩后的报头的起始比特位、在压缩后的报头的结束比特位信息,并将这些信息记录下来作为解压缩参考信息,若为1,则执行步骤(6b);
(6b)接收方去掉接收到的数据包的第一个字节,再按照解压缩参考信息从数据包中提取报头的各字段信息,然后用解压缩参考信息中变化特征属于静态不变的字段的压缩参考值来代替提取到的报头的各字段信息中变化特征属于静态不变的字段的值;
(6c)接收方用解压缩参考信息中变化特征属于递增变化和偶尔变化的字段的值与步骤(6b)提取到的报头的各字段信息中变化特征属于递增变化和偶尔变化的字段的值的和来代替提取到的报头的各字段信息中变化特征属于递增变化和偶尔变化的字段的值,得到数据包经过报头压缩前的报头信息,最后将得到数据包经过报头压缩前的报头信息与步骤(6a)得到解压缩参考信息作为解压缩结果。
本发明与现有技术相比,具有如下优点:
本发明采用字段变化特征分类决策树对网络协议报头中字段的变化特征进行分类,无需考虑字段的具体含义,也无需人为的对网络协议报头中的字段的变化特征进行分析,只要将待压缩的网络协议按照规定的格式进行标识,然后再将标识好的待压缩的网络协议添加到协议描述库中,就可自动对待压缩的网络协议报头中字段的变化特征进行分类并根据分类结果对网络协议报头进行压缩。这种根据网络协议的字段变化特征对报头进行压缩的方法不限定于某种特定的网络协议,可以适应于大多数网络协议的报头压缩,具有广泛的适用性。
附图说明
图1为本发明的实现流程图;
图2为本发明构建的初始字段变化特征分类决策树的结构示意图。
具体实施方式
以下结合附图和具体实施例子,对本发明作进一步详细描述。
参照图1,本发明包括如下步骤:
步骤1)获取训练样本集和测试样本集:
步骤1a)采集无线通信网络数据流中连续的M个数据包,并提取每个数据包的报头信息,得到M个报头信息,然后对每个报头信息按所属协议的字段进行划分,并从划分得到的字段值中丢弃掉字段值类型为字符串的字段值,再将剩下的属于同一流的同一协议的同一字段的字段值划分到一个集合中,最后将每个集合作为一个样本,归入样本集X中,M≥100;
在本实施例中采用WireShark来采集数据包,因为报头中的冗余大量存在于同一流中使用同一协议的连续包的报头字段之间,所以对采集到的数据包需要按流和协议的字段进行划分。这里将包含完整语义的开始时刻和结束时刻的单条TCP流中的数据包或两个包时间间隔不超过30s的UDP流中的数据包为作为同一流的数据包,根据WireShark的封包详细信息面板中报头的信息将报头按协议的字段进行划分,将属于同一流的同一协议的同一字段的值划分到一个集合中。M若取值过小则不足训练出合适的模型,在本实施例中M=200;
因为无法计算字符串类型的数据在步骤2a)中提到的特征属性值,所以在采取样本时需要丢弃掉字段值类型为字符串的字段值;
步骤1b)从样本集X中选取半数以上的样本,并以静态不变、递增变化、偶尔变化或无规律变化作为字段变化特征的类型标签对每个样本的字段变化特征进行标注,然后将标注好的样本归入训练样本集P中,其余样本归入测试样本集Q中;
网络协议报头的字段变化特征分为静态不变、递增变化、偶尔变化和无规律变化,使用其中之一对采集到的样本的字段变化特征类型进行标注。其中,静态不变是指字段的值在数据流的生存期始终保持不变,递增变化是指字段的值在数据流的生存期中呈现递增的变化模式,偶尔变化是指字段的值在数据流的生存期大多数时间保持不变,只是偶尔发生变化,无规律变化是指字段的值在数据流的生存期中呈现无规律变化的模式。例如一个RTP数据包的报头中描述RTP版本的字段version取值固定为2,因此version字段的变化特征属于静态不变,在一个的RTP数据包流中,描述RTP包的序列号的字段sequence number,每发送一个RTP包,sequence number字段值就会加一,因此sequence number字段的变化特征属于递增变化,表示RTP数据包所传输的多媒体的类型的字段playload type,在一个的RTP数据包流中很少变化,因此playload type字段的变化特征属于偶尔变化,一个UDP数据包的报头中表示校验和的字段checksum的值取决于数据包的有效载荷,变化特征属于无规律变化;
对样本字段变化特征进行标注是为了进行监督学习,将样本分为训练样本集P和测试样本集Q是为了进行后续对分类决策树的训练和剪枝;
步骤2)构建字段变化特征分类决策树:
步骤2a)以训练样本集P所含的样本中所有字段值的平均值T1、方差T2、取值个数T3、极差T4和一阶差分的方差T5分别作为样本的特征属性,构成特征属性集T,并计算训练样本集P中每个样本的特征属性Ti的值,i=1,2,3,4,5;
测试样本集P={x1,...,xN},N为P所含样本的个数,xi为P中第i个样本,i∈{1,2,3...N},xi={xi1,...,xiNi},xij为xi中第j个字段值,j∈{1,2,3...Ni},Ni为样本xi中所含的字段值数,xi的平均值
xi的方差xi的取值个数T3i为xi中的字段值不同的取值数,xi的极差T4i为xi中的最大字段值与最小字段值的差,xi的一阶差分的方差T5i的计算方法是,先对xi做一阶差分,得到集合{xi2-xi1,...,xiJ-xi(J-1)},再计算此集合中所有值的方差;
步骤2b)以特征属性集T作为C4.5算法进行学习的特征集,使用C4.5算法对训练样本集P进行学习,得到初始字段变化特征分类决策树S,并采用错误率降低剪枝法利用训练样本集Q对S进行剪枝,得到字段变化特征分类决策树S';
C4.5是一种操作简单且准确率较高的决策树构造算法,构造过程中选择信息增益率最大的属性作为分裂属性,能够自动完成对连续属性的离散化处理。因此采用C4.5算法构造初始字段变化特征分类决策树S;
用C4.5算法构造初始字段变化特征分类决策树S的过程为:
(2b1)以训练样本集P作为初始字段变化特征分类决策树S的根节点,将根节点归入节点集G中;
(2b2)从节点集G中选取一个未进行分枝的节点K,节点K所含的样本构成集合D,并计算特征属性集T中每个特征属性Ti对集合D的二分阈值θ(D,Ti)和信息增益率gR(D,Ti),然后选取信息增益率最高的特征属性作为节点K的分裂属性Tp,用Tp对节点K进行标识,其中,p表示被选取的特征属性的下标,p∈{1,2,3,4,5};
(2b4)判断子集A中所包含的样本的字段变化特征类型是否均属于同一类型,或子集A中所包含的样本的特征属性是否均已被选取过,或子集A中所包含的样本的未被选取过的特征属性的值是否完全相同,若是,则将子集A作为原始分类决策树的叶节点,并采用子集A中多数样本的字段变化特征所属类别对子集A对应的叶节点进行标注,否则,将子集A作为初始分类决策树的枝节点;
(2b5)按照步骤(2b4)对子集B进行判断,将得到的枝节点与步骤(2b4)得到的枝节点放入节点集G中;
(2b6)重复执行步骤(2b2)至(2b5),直到训练样本集P中所有的样本都被划分到一个叶节点中,得到包含根节点、多个枝节点和多个叶节点的初始字段变化特征分类决策树S;
在本实施例中,构建如图2所示的初始决策树的结构示意图,首先以测试样本集P集作为根节点,将根节点放入节点集G中,从G中选取未分枝的节点作为节点K,此处选择根节点作为节点K,节点K所含的样本构成集合D,然后计算特征属性集T中每个特征属性Ti对集合D的二分阈值和信息增益率gR(D,Ti),选取信息增益率最高的特征属性作为节点K的分裂属性Tp,在本实施例中,计算得到T2对集合D的信息增益率最大,因此把T2作为节点K的分裂属性并用T2对节点K进行标注,将集合D中特征属性T2的值小于等于的样本划分到子集D1中,其余样本划分到子集D2中,得到子集D1和D2,再分别判断子集D1和D2是否满足构成叶节点的条件,其中,D1所含的样本的类别标签均为静态不变满足构成叶节点的条件,因此将D1作为叶节点,并用静态不变对此叶节点进行标注,D2不满足构成叶节点的条件,因此为D2作为枝节点,并将此枝节点加入到节点集G中,重复以上的步骤,便可得到图2所示的包含以T2标注的根节点,分别以T3和T5标注的枝节点,分别以静态不变、递增变化、偶尔变化和无规律变化标注的叶子节点的初始字段变化特征分类决策树的结构示意图;
错误率降低剪枝法是一种常用的剪枝法,使用独立的测试集对初始字段变化特征分类决策树进行修正,简化决策树模型,避免过拟合;
步骤3)发送方使用字段变化特征分类决策树S'对待压缩协议报头中字段的变化特征进行分类:
步骤3a)以字段在通信网络数据流中所用的协议中的起始比特位、结束比特位和字段值类型的三元组格式对所用的协议进行标识,并以标识好的协议为模板建立协议描述库;
建立协议描述库是为了存储协议字段的划分格式;
步骤3b)发送方按照字段在待压缩协议中的起始比特位、结束比特位、字段值类型的三元组格式对待压缩协议进行标识,并将标识好的待压缩协议添加到步骤3a)建立的协议描述库中;
因为后续的步骤中需要对待压缩协议报头的字段进行划分,所以此处需要将待压缩协议进行标识并添加到协议描述库中;
步骤3c)发送方使用待压缩协议向接收方发送数据;
步骤3d)发送方从发送方到接收方之间的通信网络数据流中已发送的数据包中采集连续的L个使用待压缩协议的数据包,数据包按采集的先后顺序标记为Lj,并按照待压缩协议在协议描述库中标识的格式对这L个数据包的报头按字段进行划分,丢弃掉字段值类型为字符串的字段值,再将剩下的属于同一字段的字段值划分到一个集合中,然后分别计算每个集合中所有字段值的平均值、方差、取值个数、极差和一阶差分的方差,L≥20,j=1,2,3,...,L;
因为此步骤需要对采集到的数据包的报头进行一些处理并且处理后不再发送这些数据包,所以这里采集发送方已发送给接收方的数据包,这样就不会影响到发送方与接收方正常的通信;
因为报头字段变化特征是指同一流中的连续的数据包的报头字段值的变化特征,所以此处需要连续采集L个包含待压缩协议报头的数据包,且L数量不能过少,否则可能会导致错误的分类,在本实施例中,L=30;
步骤3e)发送方分别将每个集合的字段值的平均值、方差、取值个数、极差和一阶差分的方差作为字段变化特征分类决策树S'的输入,对集合所属字段的变化特征进行分类,得到每个集合所属字段的变化特征;
步骤4)发送方与接收方进行压缩协商:
步骤4a)发送方将待压缩协议中字段值类型为字符串的字段的变化特征设定为无规律变化;
因为在步骤3d)中丢弃了字段值类型为字符串的字段值,所以从步骤3)中并没有得到字段值类型为字符串的字段的变化特征,所以此步骤将字段值类型为字符串的字段的变化特征设定为无规律变化;
步骤4b)发送方将步骤3d)采集到的第一个数据包L1作为基准数据包,并按照待压缩协议在协议描述库中的标识的格式从基准数据包的报头中提取每个字段的值,然后将变化特征属于静态不变、递增变化、偶尔变化的字段的值作为变化特征属于静态不变、递增变化、偶尔变化的字段的压缩参考值,将变化特征属于无规律变化的字段的压缩参考值设定为0;
在同一个数据包流中,待压缩协议报头中变化特征属于静态不变、递增变化和偶尔变化的字段在连续的数据包中含有大量的冗余,因此,这些字段属于可压缩的字段。这里选取采集到的数据包中的第一个数据包作为基准数据包,提取其可压缩的字段的信息作为对数据流中后续未发送的使用待压缩协议的数据包报头进行压缩的压缩参考值;
步骤4c)发送方提取步骤3d)采集到的第二个数据包L2的报头信息,然后将提取到的报头信息中变化特征属于静态不变的字段删掉,并用提取到的报头信息中变化特征属于递增变化和偶尔变化的字段的值与步骤4b)中得到的变化特征属于递增变化、偶尔变化的字段的压缩参考值的差值代替提取到的报头信息中变化特征属于递增变化和偶尔变化的字段的值,得到一个经过压缩的报头;
在数据包报头中,因为字段变化特征属于静态不变的字段在整个数据包流中是保持不变的,所以字段变化特征属于静态不变的字段只需要在数据包流中传输一次,从后续的数据包报头中直接删掉字段变化特征属于静态不变的字段,对于变化特征属于递增变化和偶尔变化的字段,无需在每个数据包中都完整发送这些字段的值,只需要发送这些字段与压缩参考值的差值,通过这种方法达到对报头进行压缩的目的;
这里对L2数据包的报头进行压缩的目的是获取待压缩协议的各字段在压缩后的报头中的起始比特位和结束比特位;
步骤4d)发送方从步骤4c)中得到的经过压缩的报头中获取待压缩协议的各字段在压缩后的报头中的起始比特位和结束比特位;
因为接收方在对经过报头压缩后的数据包进行解压缩时,需要知道各字段在压缩后的报头中的位置,所以此处需要获取待压缩协议的各字段在压缩后的报头中的起始比特位和结束比特位;
步骤4e)发送方将协商包的第一个字节作为协商包标志字节并将此标志字节的值设置为0,然后将发送方传输待压缩协议所用的IP地址、端口号和待压缩协议的各字段在基准数据包的报头中的起始比特位、在基准数据包的报头中的结束比特位、字段值类型、压缩参考值、在压缩后的报头中的起始比特位、在压缩后的报头中的结束比特位放入协商包中,然后将协商包发送给接收方;
设置协商包标志字节位是为了接收方能从接收到的数据包中识别出协商包;
将发送方传输待压缩协议所用的IP地址、端口号放入协商包中是为了告知接收方从这个IP地址、端口号发送来的数据包是使用待压缩协议的数据包;
将待压缩协议的各字段在基准数据包的报头中的起始比特位、在基准数据包的报头中的结束比特位、字段值类型、压缩参考值放入协商包是为了接收方根据这些信息对经过报头压缩后的数据包进行解压缩;
将待压缩协议报头的各字段在压缩后的报头中的起始比特位和结束比特位放入协商包中是为了接收方根据这些信息从经过报头压缩后的报头中提取各字段的值;
步骤5)发送方对使用待压缩协议的未发送的数据包进行报头压缩并传输:
步骤5a)发送方将发送方与接收方之间的通信网络数据流中未发送的数据包中使用待压缩协议的数据包的报头中变化特征属于静态不变的字段删掉,并用数据包的报头中变化特征属于递增变化和偶尔变化的字段的值与步骤(5a)得到的变化特征属于递增变化和偶尔变化的字段的压缩参考值的差值来代替数据包报头中的变化特征属于递增变化和偶尔变化的字段的值,得到经过报头压缩后的数据包;
发送方在与接收方经过压缩协商后,便可对使用待压缩协议的数据包进行报头压缩;
步骤5b)在步骤5a)中得到的经过报头压缩后的数据包的报头前添加一个字节的压缩标志字节并将此字节的值设置为1,然后将添加了压缩标志字节的数据包发送给接收方;
设置压缩标志字节是为了接收方能从接收到的数据包中识别出需要解压缩的数据包;
步骤6)接收方接收数据包并获取解压缩结果:
步骤6a)接收方提取收到的数据包的第一个字节的信息,若为0,则提取协商包中的传输待压缩协议所用的IP地址、端口号和待压缩协议的各字段在基准数据报头的起始比特位、在基准数据报头的结束比特位、字段值类型、压缩参考值、在压缩后的报头的起始比特位、在压缩后的报头的结束比特位信息,并将这些信息记录下来作为解压缩参考信息,若为1,则执行步骤(6b);
接收方由从协商包中提取的IP地址、端口号可知使用待压缩协议的数据包的源地址;
接收方从协商包中提取待压缩协议各字段在基准数据包的报头中的起始比特位、在基准数据包的报头中的结束比特位、字段值类型、压缩参考值是为了对经过报头压缩后的数据包进行解压缩;
接收方从协商包中提取将待压缩协议报头的各字段在压缩后的报头中的起始比特位和结束比特位是为了根据这些信息从经过报头压缩后的报头中提取各字段的值;
步骤6b)接收方去掉接收到的数据包的第一个字节,再按照解压缩参考信息从数据包中提取报头的各字段信息,然后用解压缩参考信息中变化特征属于静态不变的字段的压缩参考值来代替提取到的报头的各字段信息中变化特征属于静态不变的字段的值;
因为接收方接收到的数据包的第一个字节是压缩标志字节,不属于数据包未经过报头压缩前的内容,所以在对经过报头压缩后的数据包进行解压缩前需要去掉数据包的第一个字节。发送方在对数据包进行报头压缩的过程中删掉了变化特征属于静态不变的字段,因为被删掉的字段在数据包流中是固定不变的,所以接收方使用解压缩参考信息中变化特征属于静态不变的字段的压缩参考值来代替这些被删掉的字段的值;
步骤6c)接收方用解压缩参考信息中变化特征属于递增变化和偶尔变化的字段的值与步骤6b)提取到的报头的各字段信息中变化特征属于递增变化和偶尔变化的字段的值的和来代替提取到的报头的各字段信息中变化特征属于递增变化和偶尔变化的字段的值,得到数据包经过报头压缩前的报头信息,最后将得到数据包经过报头压缩前的报头信息与步骤6a)得到解压缩参考信息作为解压缩结果;
发送方在对数据包在进行报头压缩的过程中,对于报头中变化特征属于递增变化和偶尔变化的字段,只传递了这些字段的值与步骤5a)得到的压缩参考信息的差值,所以接收方将收到的经过报头压缩的数据包的报头中这些字段的值与提取到的解压缩参考信息中的这些字段压缩参考值相加,便可得到数据包未进行报头压缩前这些字段的值,通过步骤6a)和步骤6b)便得到了数据包未进行报头压缩的报头信息。
Claims (3)
1.一种基于决策树的网络协议报头压缩方法,其特征在于,包括如下步骤:
(1)获取训练样本集和测试样本集:
(1a)采集无线通信网络数据流中连续的M个数据包,并提取每个数据包的报头信息,得到M个报头信息,然后对每个报头信息按所属协议的字段进行划分,并从划分得到的字段值中丢弃掉字段值类型为字符串的字段值,再将剩下的属于同一流的同一协议的同一字段的字段值划分到一个集合中,最后将每个集合作为一个样本,归入样本集X中,M≥100;
(1b)从样本集X中选取半数以上的样本,并以静态不变、递增变化、偶尔变化或无规律变化作为字段变化特征的类型标签对每个样本的字段变化特征进行标注,然后将标注好的样本归入训练样本集P中,其余样本归入测试样本集Q中;
(2)构建字段变化特征分类决策树:
(2a)以训练样本集P所含的样本中所有字段值的平均值T1、方差T2、取值个数T3、极差T4和一阶差分的方差T5分别作为样本的特征属性,构成特征属性集T,并计算训练样本集P中每个样本的特征属性Ti的值,i=1,2,3,4,5;
(2b)以特征属性集T作为C4.5算法进行学习的特征集,使用C4.5算法对训练样本集P进行学习,得到初始字段变化特征分类决策树S,并采用错误率降低剪枝法利用训练样本集Q对S进行剪枝,得到字段变化特征分类决策树S';
(3)发送方使用字段变化特征分类决策树S'对待压缩协议报头中字段的变化特征进行分类:
(3a)以字段在通信网络数据流中所用的协议中的起始比特位、结束比特位和字段值类型的三元组格式对所用的协议进行标识,并以标识好的协议为模板建立协议描述库;
(3b)发送方按照字段在待压缩协议中的起始比特位、结束比特位、字段值类型的三元组格式对待压缩协议进行标识,并将标识好的待压缩协议添加到步骤(3a)建立的协议描述库中;
(3c)发送方使用待压缩协议向接收方发送数据;
(3d)发送方从发送方到接收方之间的通信网络数据流中已发送的数据包中采集连续的L个使用待压缩协议的数据包,数据包按采集的先后顺序标记为Lj,并按照待压缩协议在协议描述库中标识的格式对这L个数据包的报头按字段进行划分,丢弃掉字段值类型为字符串的字段值,再将剩下的属于同一字段的字段值划分到一个集合中,然后分别计算每个集合中所有字段值的平均值、方差、取值个数、极差和一阶差分的方差,L≥20,j=1,2,3,...,L;
(3e)发送方分别将每个集合的字段值的平均值、方差、取值个数、极差和一阶差分的方差作为字段变化特征分类决策树S'的输入,对集合所属字段的变化特征进行分类,得到每个集合所属字段的变化特征;
(4)发送方与接收方进行压缩协商:
(4a)发送方将待压缩协议中字段值类型为字符串的字段的变化特征设定为无规律变化;
(4b)发送方将步骤(3d)采集到的第一个数据包L1作为基准数据包,并按照待压缩协议在协议描述库中的标识的格式从基准数据包的报头中提取每个字段的值,然后将变化特征属于静态不变、递增变化、偶尔变化的字段的值作为变化特征属于静态不变、递增变化、偶尔变化的字段的压缩参考值,将变化特征属于无规律变化的字段的压缩参考值设定为0;
(4c)发送方提取步骤(3d)采集到的第二个数据包L2的报头信息,然后将提取到的报头信息中变化特征属于静态不变的字段删掉,并用提取到的报头信息中变化特征属于递增变化和偶尔变化的字段的值与步骤(4b)中得到的变化特征属于递增变化、偶尔变化的字段的压缩参考值的差值代替提取到的报头信息中变化特征属于递增变化和偶尔变化的字段的值,得到一个经过压缩的报头;
(4d)发送方从步骤(4c)中得到的经过压缩的报头中获取待压缩协议的各字段在压缩后的报头中的起始比特位和结束比特位;
(4e)发送方将协商包的第一个字节作为协商包标志字节并将此标志字节的值设置为0,然后将发送方传输待压缩协议所用的IP地址、端口号和待压缩协议的各字段在基准数据包的报头中的起始比特位、在基准数据包的报头中的结束比特位、字段值类型、压缩参考值、在压缩后的报头中的起始比特位、在压缩后的报头中的结束比特位放入协商包中,然后将协商包发送给接收方;
(5)发送方对使用待压缩协议的未发送的数据包进行报头压缩并传输:
(5a)发送方将发送方与接收方之间的通信网络数据流中未发送的数据包中使用待压缩协议的数据包的报头中变化特征属于静态不变的字段删掉,并用数据包的报头中变化特征属于递增变化和偶尔变化的字段的值与步骤(5a)得到的变化特征属于递增变化和偶尔变化的字段的压缩参考值的差值来代替数据包报头中的变化特征属于递增变化和偶尔变化的字段的值,得到经过报头压缩后的数据包;
(5b)在步骤(5a)中得到的经过报头压缩后的数据包的报头前添加一个字节的压缩标志字节并将此字节的值设置为1,然后将添加了压缩标志字节的数据包发送给接收方;
(6)接收方接收数据包并获取解压缩结果:
(6a)接收方提取收到的数据包的第一个字节的信息,若为0,则提取协商包中的传输待压缩协议所用的IP地址、端口号和待压缩协议的各字段在原始报头的起始比特位、在原始报头的结束比特位、字段值类型、压缩参考值、在压缩后的报头的起始比特位、在压缩后的报头的结束比特位信息,并将这些信息记录下来作为解压缩参考信息,若为1,则执行步骤(6b);
(6b)接收方去掉接收到的数据包的第一个字节,再按照解压缩参考信息从数据包中提取报头的各字段信息,然后用解压缩参考信息中变化特征属于静态不变的字段的压缩参考值来代替提取到的报头的各字段信息中变化特征属于静态不变的字段的值;
(6c)接收方用解压缩参考信息中变化特征属于递增变化和偶尔变化的字段的值与步骤(6b)提取到的报头的各字段信息中变化特征属于递增变化和偶尔变化的字段的值的和来代替提取到的报头的各字段信息中变化特征属于递增变化和偶尔变化的字段的值,得到数据包经过报头压缩前的报头信息,最后将得到数据包经过报头压缩前的报头信息与步骤(6a)得到解压缩参考信息作为解压缩结果。
2.根据权利要求1所述的基于决策树的网络协议报头压缩方法,其特征在于,(1a)所述字段值类型分为整数型、浮点型和字符串型。
3.根据权利要求1所述的基于决策树的网络协议报头压缩方法,其特征在于,步骤(2b)所述的以特征属性集T作为C4.5算法进行学习的特征集,使用C4.5算法对训练样本集P进行学习,学习后得到初始字段变化特征分类决策树S的步骤为:
(2b1)以训练样本集P作为初始字段变化特征分类决策树S的根节点,将根节点归入节点集G中;
(2b2)从节点集G中选取一个未进行分枝的节点K,节点K所含的样本构成集合D,并计算特征属性集T中每个特征属性Ti对集合D的二分阈值和信息增益率gR(D,Ti),然后选取信息增益率最高的特征属性作为节点K的分裂属性Tp,用Tp对节点K进行标识,其中,p表示被选取的特征属性的下标,p∈{1,2,3,4,5};
(2b4)判断子集A中所包含的样本的字段变化特征类型是否均属于同一类型,或子集A中所包含的样本的特征属性是否均已被选取过,或子集A中所包含的样本的未被选取过的特征属性的值是否完全相同,若是,则将子集A作为原始分类决策树的叶节点,并采用子集A中多数样本的字段变化特征所属类别对子集A对应的叶节点进行标注,否则,将子集A作为初始分类决策树的枝节点;
(2b5)按照步骤(2b4)对子集B进行判断,将得到的枝节点与步骤(2b4)得到的枝节点放入节点集G中;
(2b6)重复执行步骤(2b2)至(2b5),直到训练样本集P中所有的样本都被划分到一个叶节点中,得到包含根节点、多个枝节点和多个叶节点的初始字段变化特征分类决策树S。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010447129.2A CN111641624B (zh) | 2020-05-25 | 2020-05-25 | 基于决策树的网络协议报头压缩方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010447129.2A CN111641624B (zh) | 2020-05-25 | 2020-05-25 | 基于决策树的网络协议报头压缩方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111641624A CN111641624A (zh) | 2020-09-08 |
CN111641624B true CN111641624B (zh) | 2021-05-18 |
Family
ID=72330922
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010447129.2A Active CN111641624B (zh) | 2020-05-25 | 2020-05-25 | 基于决策树的网络协议报头压缩方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111641624B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1550271A1 (en) * | 2002-09-30 | 2005-07-06 | Nokia Corporation | Routing data packets in a compressed-header domain |
CN101400083A (zh) * | 2007-09-29 | 2009-04-01 | 华为技术有限公司 | 对报文进行头压缩和业务流分类发送的方法、系统及装置 |
CN107124276A (zh) * | 2017-04-07 | 2017-09-01 | 西安电子科技大学 | 一种安全的数据外包机器学习数据分析方法 |
CN110891092A (zh) * | 2019-12-09 | 2020-03-17 | 北京布袋森林科技有限责任公司 | 一种数据压缩传输方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6519636B2 (en) * | 1998-10-28 | 2003-02-11 | International Business Machines Corporation | Efficient classification, manipulation, and control of network transmissions by associating network flows with rule based functions |
US7389356B2 (en) * | 1999-12-15 | 2008-06-17 | Microsoft Corporation | Generalized differentiation methods and arrangements for adaptive multimedia communications |
CN102035698B (zh) * | 2011-01-06 | 2012-07-25 | 西北工业大学 | 基于决策树分类算法的http隧道检测方法 |
CN104537010A (zh) * | 2014-12-17 | 2015-04-22 | 温州大学 | 基于决策树的网构软件中的构件分类方法 |
US10122825B1 (en) * | 2017-07-27 | 2018-11-06 | Global Tel*Link Corporation | Systems and methods for providing a visual content gallery within a controlled environment |
US10735025B2 (en) * | 2018-03-02 | 2020-08-04 | Microsoft Technology Licensing, Llc | Use of data prefixes to increase compression ratios |
CN108881192B (zh) * | 2018-06-04 | 2021-10-22 | 上海交通大学 | 一种基于深度学习的加密型僵尸网络检测系统及方法 |
CN110891030B (zh) * | 2019-12-26 | 2021-03-16 | 南京烽火星空通信发展有限公司 | 一种基于机器学习的http流量特征识别与提取方法 |
-
2020
- 2020-05-25 CN CN202010447129.2A patent/CN111641624B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1550271A1 (en) * | 2002-09-30 | 2005-07-06 | Nokia Corporation | Routing data packets in a compressed-header domain |
CN101400083A (zh) * | 2007-09-29 | 2009-04-01 | 华为技术有限公司 | 对报文进行头压缩和业务流分类发送的方法、系统及装置 |
CN107124276A (zh) * | 2017-04-07 | 2017-09-01 | 西安电子科技大学 | 一种安全的数据外包机器学习数据分析方法 |
CN110891092A (zh) * | 2019-12-09 | 2020-03-17 | 北京布袋森林科技有限责任公司 | 一种数据压缩传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111641624A (zh) | 2020-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110290022B (zh) | 一种基于自适应聚类的未知应用层协议识别方法 | |
CN108462707B (zh) | 一种基于深度学习序列分析的移动应用识别方法 | |
US9197523B2 (en) | Systems and methods for extracting media from network traffic having unknown protocols | |
CN112949739A (zh) | 一种基于智能流量分类的信息传输调度方法及系统 | |
US8516157B1 (en) | System and method for network data compression | |
CN112511555A (zh) | 基于稀疏表示和卷积神经网络的私有加密协议报文分类法 | |
CN113037646A (zh) | 一种基于深度学习的列车通信网络流量识别方法 | |
AU2012200642A1 (en) | A method and apparatus for communications analysis | |
CN111222547B (zh) | 一种面向移动应用的流量特征提取方法及系统 | |
CN112887291A (zh) | 基于深度学习的i2p流量识别方法及系统 | |
CN109698798B (zh) | 一种应用的识别方法、装置、服务器和存储介质 | |
CN114157502A (zh) | 一种终端识别方法、装置、电子设备及存储介质 | |
CN102938764A (zh) | 应用识别处理方法及装置 | |
CN111641624B (zh) | 基于决策树的网络协议报头压缩方法 | |
KR100501080B1 (ko) | 인터넷상 트래픽의 상위 계층 프로토콜들을 구분하는 방법및 장치 | |
CN107689899A (zh) | 一种基于比特流的未知协议识别方法及系统 | |
CN108563795B (zh) | 一种加速压缩流量正则表达式匹配的Pairs方法 | |
CN112367312B (zh) | 一种研判dns隐蔽隧道的检测方法及装置 | |
CN104079450B (zh) | 特征模式集生成方法及装置 | |
CN115473850B (zh) | 一种基于ai的实时数据过滤方法、系统及存储介质 | |
CN114629963B (zh) | 基于层次聚类的网络协议报头压缩方法 | |
CN112017049A (zh) | 一种证券行情转发系统和方法 | |
CN114143301B (zh) | 一种移动流量应用识别特征提取方法及系统 | |
CN110674010B (zh) | 基于会话长度概率分布的智能设备应用程序识别方法 | |
CN116192997B (zh) | 一种基于网络流的事件检测方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |