CN106789440A - 一种ip包包头检测方法及装置 - Google Patents

一种ip包包头检测方法及装置 Download PDF

Info

Publication number
CN106789440A
CN106789440A CN201710001005.XA CN201710001005A CN106789440A CN 106789440 A CN106789440 A CN 106789440A CN 201710001005 A CN201710001005 A CN 201710001005A CN 106789440 A CN106789440 A CN 106789440A
Authority
CN
China
Prior art keywords
packet header
bags
byte
label information
packet
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.)
Granted
Application number
CN201710001005.XA
Other languages
English (en)
Other versions
CN106789440B (zh
Inventor
黄越平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Pan Information Technology Co Ltd
Original Assignee
Beijing Pan Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Pan Information Technology Co Ltd filed Critical Beijing Pan Information Technology Co Ltd
Priority to CN201710001005.XA priority Critical patent/CN106789440B/zh
Publication of CN106789440A publication Critical patent/CN106789440A/zh
Application granted granted Critical
Publication of CN106789440B publication Critical patent/CN106789440B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Environmental & Geological Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

本发明公开了一种IP包包头检测方法及装置,属于无线通信技术领域,用于解决现有IP包包头检测仅适用于对单一通信协议进行包头检测的问题。本发明方法流程包括:S1、确定通信设备的全部通信协议的IP包包头标记信息;S2、基于IP包包头标记信息生成包头检测列表;S3、当接收IP包数据流时,循环读取包头检测列表中的任一IP包包头标记信息,并将所读取的IP包包头标记信息以字节为单位,依次与IP包数据流进行相似度计算;S4、当计算到当前包头标记信息的末字节,且所述计算结果达到预设值时,确定所述IP包数据流的用于相似度计算的数据段为IP包包头。本发明能够对多种通信协议下的IP包数据流进行IP包包头检测,灵活性好且资源占用少。

Description

一种IP包包头检测方法及装置
技术领域
本发明涉及无线通信技术领域,尤其涉及一种IP包包头检测方法及装置。
背景技术
目前,无论采用OSI通信模型还是TCP/IP通信模型进行通信,应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装;相对的,在接收数据时,网络上的数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。在数据接收过程中,准确地抓取数据报文(如IP包),是必不可少的关键步骤。
另一方面,为了适应不同的通信需求,通信设备之间所采用的通信协议也是多种多样,甚至随着通信技术的发展,同一通信设备兼容多种通信协议已不足为奇。通信协议是指通信双方实体完成通信或服务所必须遵循的规则和约定。协议定义了数据单元使用的格式,信息单元应该包含的信息与含义,连接方式,信息发送和接收的时序,从而确保网络中数据顺利地传送到确定的地方。
如何针对不同的通信协议,准确抓取与之对应的数据报文,具体如IP包,是目前网络通信的研究热点。在现有技术中,通常在已知当前通信协议类型的前提下,确定与该通信协议对应的IP包结构,进一步确定其包头信息,并在通信设备的抓包模块中,预先存储该包头信息作为包头检测的基准信息,将输入的IP包数据流与该基准信息进行比对,如若相同,则确定输入IP包数据流的当前位置为IP包包头。
由于对于不同的通信协议,IP包包头信息均不相同,因此,在现有技术中,针对不同的通信协议,需要对应设置不同的抓包模块。依照现有的这种方法, 当一通信设备兼容多种通信协议时,则需要在该通信设备中设置多个针对不同通信协议的抓包模块,检测灵活性差且内存占用量大。
可见,现有技术中存在的技术问题为:IP包包头检测方案适用于对单一通信协议进行包头检测,无法满足兼容多种通信协议的通信方的通信需求。
发明内容
本发明针对现有技术中存在的,IP包包头检测方案适用于对单一通信协议进行包头检测,无法满足兼容多种通信协议的通信方的通信需求的技术问题。提供了一种IP包包头检测方法及装置,能够对多种通信协议下的IP包数据流进行包头检测,灵活性好且资源占用少,进而能够满足兼容多种通信协议的通信方的通信需求。
一方面,本发明提供了一种IP包包头检测方法,应用于无线通信设备中,所述IP包包头检测方法包括以下步骤:
S1、基于所述无线通信设备所兼容的全部通信协议,确定所述全部通信协议的IP包包头标记信息;
S2、基于所述IP包包头标记信息生成包头检测列表;
S3、当所述无线通信设备接收IP包数据流时,循环读取所述包头检测列表中的任一IP包包头标记信息作为当前包头标记信息,并将所述当前IP包包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,以获得计算结果;
S4、当计算到所述当前包头标记信息的末字节,且所述计算结果达到预设值时,确定所述IP包数据流的用于相似度计算的数据段为IP包包头。
可选的,任一所述IP包包头标记信息包括包头字节数和包头字节内容,所述步骤S2具体包括子步骤:
S21、基于所述全部通信协议类型的包头字节数,定义相应深度的临时列表;
S22、将所述包头字节内容存储至所述临时列表中,以生成包头检测列表。
可选的,所述包头检测列表包括标记信息子列表和掩码子列表;
其中,所述标记信息子列表用于存储所述包头字节内容,所述掩码子列表用于存储与所述包头字节内容一一对应的掩码数据。
可选的,所述步骤S3具体包括子步骤:
S31、当所述无线通信设备接收IP包数据流时,循环读取所述标记信息子列表中的任一所述包头字节内容作为当前包头字节内容,以及从所述掩码子列表中读取与当前包头字节内容对应的掩码数据;
S32、基于所述当前包头字节内容和对应的掩码数据,将所述当前包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,以获得计算结果。
可选的,所述步骤S3中:将所述当前IP包包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,具体为:
依次读取所述当前IP包包头标记信息中的每一字节,并将所读取的字节中的各比特位对应与IP包数据流进行并行比对,以进行相似度计算。
另一方面,本发明还提供了一种IP包包头检测装置,包括:
IP包包头标记信息确定模块,用于基于无线通信设备所兼容的全部通信协议,确定所述全部通信协议的IP包包头标记信息;
包头检测列表生成模块,用于基于所述IP包包头标记信息生成包头检测列表;
相似度计算模块,用于当所述无线通信设备接收IP包数据流时,循环读取所述包头检测列表中的任一IP包包头标记信息作为当前包头标记信息,并将所述当前IP包包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,以获得计算结果;
IP包包头确定模块,用于当计算到所述当前包头标记信息的末字节,且所述计算结果达到预设值时,确定所述IP包数据流的用于相似度计算的数据段 为IP包包头。
可选的,所述包头检测列表生成模块具体包括:
临时列表定义单元,用于基于所述全部通信协议类型的包头字节数,定义相应深度的临时列表;
包头检测列表生成单元,用于将所述包头字节内容存储至所述临时列表中,以生成包头检测列表;
其中,任一所述IP包包头标记信息包括包头字节数和包头字节内容。
可选的,所述包头检测列表包括标记信息子列表和掩码子列表;
其中,所述标记信息子列表用于存储所述包头字节内容,所述掩码子列表用于存储与所述包头字节内容一一对应的掩码数据。
可选的,所述相似度计算模块具体包括:
数据读取单元,用于当所述无线通信设备接收IP包数据流时,循环读取所述标记信息子列表中的任一所述包头字节内容作为当前包头字节内容,以及从所述掩码子列表中读取与当前包头字节内容对应的掩码数据;
相似度计算单元,用于基于所述当前包头字节内容和对应的掩码数据,将所述当前包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,以获得计算结果。
可选的,所述IP包包头确定模块用于将所述当前IP包包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,具体为用于:
依次读取所述当前IP包包头标记信息中的每一字节,并将所读取的字节中的各比特位对应与IP包数据流进行并行比对,以进行相似度计算。
本发明中提供的一个或多个技术方案,至少具有如下技术效果或优点:
在本发明申请中,适用于无线通信设备的IP包包头检测方法在实现的过程中,首先,基于所述无线通信设备所兼容的全部通信协议,确定所述全部通信协议的IP包包头标记信息;接着,基于所述IP包包头标记信息生成包头检测列表;当所述无线通信设备接收IP包数据流时,循环读取所述包头检测列 表中的任一IP包包头标记信息作为当前包头标记信息,并将所述当前IP包包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,以获得计算结果;进一步,当计算到所述当前包头标记信息的末字节,且所述计算结果达到预设值时,确定所述IP包数据流的用于相似度计算的数据段为IP包包头。也就是说,通过根据通信设备所兼容的全部的通信协议,确定与各通信协议对应的IP包数据流的包头,并根据所确定的包头生成包头检测列表,通过循环读取包头检测列表中的IP包包头标记信息与接收的IP包数据流进行对比来确定包头。其中,包头检测列表灵活可配置,一个检测列表适用于对多种通信协议的IP包包头进行检测,结构简单且资源占用少,有效地解决了现有技术中IP包包头检测方案适用于对单一通信协议进行包头检测,无法满足兼容多种通信协议的通信方的通信需求的技术问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其它的附图。
图1为本发明实施例提供的第一种IP包包头检测方法流程图;
图2为本发明实施例提供的第二种IP包包头检测方法流程图;
图3A为本发明实施例提供的第一种包头检测列表示意图;
图3B为本发明实施例提供的第二种包头检测列表示意图;
图3C为本发明实施例提供的第三种包头检测列表示意图;
图4为本发明实施例提供的第三种IP包包头检测方法流程图;
图5为本发明实施例提供的一种IP包接收处理模块的结构框图;
图6A为本发明实施例提供的第一种IP包包头检测装置的结构框图;
图6B为本发明实施例提供的第二种IP包包头检测装置的结构框图。
具体实施方式
本发明实施例通过提供一种IP包包头检测方法,解决了现有技术中IP包包头检测方案适用于对单一通信协议进行包头检测,无法满足兼容多种通信协议的通信方的通信需求的技术问题,包头检测列表灵活可配置,一个检测列表适用于对多种通信协议的IP包包头进行检测,结构简单且资源占用少,进而能够满足兼容多种通信协议的通信方的通信需求。
本发明实施例的技术方案为解决上述技术问题,总体思路如下:
本发明实施例提供了一种IP包包头检测方法,应用于无线通信设备中,所述IP包包头检测方法包括以下步骤:S1、基于所述无线通信设备所兼容的全部通信协议,确定所述全部通信协议的IP包包头标记信息;S2、基于所述IP包包头标记信息生成包头检测列表;S3、当所述无线通信设备接收IP包数据流时,循环读取所述包头检测列表中的任一IP包包头标记信息作为当前包头标记信息,并将所述当前IP包包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,以获得计算结果;S4、当计算到所述当前包头标记信息的末字节,且所述计算结果达到预设值时,确定所述IP包数据流的用于相似度计算的数据段为IP包包头。
可见,在本发明方案中,通过根据通信设备所兼容的全部的通信协议,确定与各通信协议对应的IP包数据流的包头,并根据所确定的包头生成包头检测列表,通过循环读取包头检测列表中的IP包包头标记信息与接收的IP包数据流进行对比来确定包头。其中,包头检测列表灵活可配置,一个检测列表适用于对多种通信协议的IP包包头进行检测,结构简单且资源占用少,有效地解决了现有技术中IP包包头检测方案适用于对单一通信协议进行包头检测,无法满足兼容多种通信协议的通信方的通信需求的技术问题。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明,应当理解本发明实施例以及实施例中的具 体特征是对本申请技术方案的详细的说明,而不是对本申请技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互组合。
实施例一
请参考图1,本发明实施例提供了一种IP包包头检测方法,应用于无线通信设备中,所述IP包包头检测方法包括以下步骤:
S1、基于所述无线通信设备所兼容的全部通信协议,确定所述全部通信协议的IP包包头标记信息;
S2、基于所述IP包包头标记信息生成包头检测列表;
S3、当所述无线通信设备接收IP包数据流时,循环读取所述包头检测列表中的任一IP包包头标记信息作为当前包头标记信息,并将所述当前IP包包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,以获得计算结果;
S4、当计算到所述当前包头标记信息的末字节,且所述计算结果达到预设值时,确定所述IP包数据流的用于相似度计算的数据段为IP包包头。
在本申请实施例中IP包包头检测方法适用于具有一种通信协议或兼容多种通信协议的通信设备,请参考图2,用于确定IP包包头标记信息的步骤S1具体包括以下子步骤:
S11、确定所述无线通信设备所兼容的全部通信协议;
S12、确定所述全部通信协议中每一通信协议定义的IP包包头;
S13、基于所述全部通信协议的IP包包头,确定所述全部通信协议的IP包包头标记信息。
可理解为,通信设备用于何种通信需求、设置何种通信协议,均由用户设定,例如,通信设备兼容M个协议,M为大于等于1的整数,由用户接口可获知该通信设备所兼容的全部通信协议;进一步,对于每一种通信协议均可按照实际应用需求定义其IP数据流的IP包包头,例如:在通信协议1下,约定好在发送方发送IP包数据流时插入的IP包包头为“0x55”,在通信协议2下, 约定好在发送方发送IP包数据流时插入的IP包包头为“0x4ADD”,...,在通信协议M下,约定好在发送方发送IP包数据流时插入的IP包包头为“0x8A352B”,等等。进一步,基于这些IP包包头生成IP包包头标记信息,具体的,可以直接令所述IP包包头标记信息等同于IP包包头,或者经过一定的转换规则(如求非、乘以一个系数或加上一个参数等等)来获得IP包包头标记信息。
进一步,在具体实施过程中,由于对于不同的通信协议,IP包包头的字节长度和字节内容也不同,为了能够满足所述全部通信协议的IP包包头标记信息的存储需求,且合理利用硬件存储资源,仍请参考图2,所述步骤S2具体包括子步骤:
S21、基于所述全部通信协议类型的包头字节数,定义相应深度的临时列表;
S22、将所述包头字节内容存储至所述临时列表中,以生成包头检测列表;
其中,任一所述IP包包头标记信息包括包头字节数和包头字节内容。
具体的,请参考图3A,为本申请实施例提供的一种包头检测列表示意图,针对通信设备所兼容的M个通信协议,该列表被划分为M段(行),每一段分别对应一种通信协议的IP包包头标记信息,用于存储该IP包包头标记信息的比特值,例如:第一段对应通信协议1,存储的IP包包头标记信息为“0x55”,长度为1byte(即8bit),第二段对应通信协议2,存储的IP包包头标记信息为“0x4ADD”,长度为2byte(即16bit),...,第M段对应通信协议M,存储的IP包包头标记信息为“0x8A352B”,长度为3byte(即24bit)。在具体实施过程中,可通过控制指针依次指向不同的表段,循环选择不同协议的IP包包头标记信息与当前输入的IP包数据流进行相似度计算,以分别确定与不同协议对应的IP包包头。
更具体的,可结合链表来实现,链表是一种常见的重要的数据结构。它是动态地进行存储分配的一种结构。它可以根据需要开辟内存单元。链表有一个 “头指针”变量,它存放一个地址。该地址指向一个元素。链表中每一个元素称为“结点”,每个结点都应包括两个部分:一为用户需要用的实际数据,二为下一个结点的地址。因此,“头指针”变量指向第一个元素;第一个元素又指向第二个元素;……,直到最后一个元素,该元素不再指向其它元素,它称为“表尾”,它的地址部分放一个“NULL”(表示“空地址”),链表到此结束;当然,根据具体应用需要,最后一个元素还可指向第一个元素,以形成循环工作模式。如图3B所示,包头检测列表为地址链表,每一地址对应一存储有IP包包头标记信息的存储单元。当地址指针循环指向不同的链表地址时,对应循环读取与不同地址对应的IP包包头标记信息。
进一步,在具体实施过程中,请参考图3C,所述包头检测列表包括标记信息子列表和掩码子列表;其中,所述标记信息子列表用于存储所述包头字节内容,所述掩码子列表用于存储与所述包头字节内容一一对应的掩码数据。相应地,请参考图4,所述步骤S3具体包括子步骤:
S31、当所述无线通信设备接收IP包数据流时,循环读取所述标记信息子列表中的任一所述包头字节内容作为当前包头字节内容,以及从所述掩码子列表中读取与当前包头字节内容对应的掩码数据;
S32、基于所述当前包头字节内容和对应的掩码数据,将所述当前包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,以获得计算结果。
可理解为,本实施例方案的相似度计算涉及位级运算,这里的掩码是一个位模式,表示从一个字节中选出的位的集合。例如,掩码0xff(最低的8位为1)表示一个字的低位字节。位级运算x&0xff生成一个由x的最低有效字节组成的值,而其他的字节就被置为0。比如,对于x=0x89ABCDEF,其表达式将得到0x000000EF。再结合本方案,当某一通信协议的IP包包头标记信息为0x89ABCDEF(4byte、32bit)、掩码数据为0xff时,即只对输入IP包数据流中与IP包包头标记信息为0x89ABCDEF低8位(即最末一个字节EF)对应 的IP包数据流进行相似度计算,其它置0的位不予计算或计算结果不予考虑。
其中,所述步骤S3中:将所述当前IP包包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,具体为:依次读取所述当前IP包包头标记信息中的每一字节,并将所读取的字节中的各比特位对应与IP包数据流进行并行比对,以进行相似度计算。例如,所述当前IP包包头标记信息有4字节,逐次读取四个字节,将每一字节中的8个信息比特位并行与IP包数据流进行相似度计算。具体的,在此过程中,首先分别考虑每一字节的相似度计算子结果,如若该相似度计算子结果达到预设值(如8位中有7位相同),则确定该字节为IP包包头中的组成字节,并接着对所述当前IP包包头标记信息中的下一字节进行相似度计算,直至所述当前IP包包头标记信息中所有字节计算完成之后,综合所有计算结果,以确定IP包包头;相对的,如果有一个字节的相似度计算结果不满足要求,则确定IP包数据流的当前数据段不是IP包包头。
需要指出的是,在进行相似度计算时,也可将所述当前IP包包头标记信息依次按两个字节的长度与IP包数据流进行相似度计算,计算过程同上述单个字节的情况,这里不再一一赘述。
接着,请参考图5,为通信设备IP包接收模块的结构示意图,该IP包接收模块500包括IP包缓存器51、IP包包头检测器52和IP包处理器53。该IP包缓存器51在时钟信号CLK1的控制下接收发送方的IP包数据流DATA_in,并分别传送至IP包包头检测器52和IP包处理器53中,其中,IP包包头检测器52用于在时钟信号CLK2的控制下,循环读取所述包头检测列表中的任一IP包包头标记信息作为当前IP包包头标记信息,并将所述当前IP包包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,以获得计算结果,并将计算结果输出至IP包处理器53,当计算到所述当前IP包包头标记信息的末字节,且所述计算结果达到预设值时,确定所述IP包数据流的用于相似度计算的数据段为IP包包头,进一步通过IP包处理器53进行抓包处理,并 输出处理后的数据DATA_out。其中,时钟信号CLK1与CLK2可为异步时钟信号。
进一步,对于本实施方案中“将所述当前IP包包头标记信息以比字节为单位,依次与所述IP包数据流进行相似度计算,以获得计算结果”,具体可理解为:当某一通信协议IP包包头标记信息的字节数为N时,则将N字节的IP包包头标记信息从第一字节开始,逐次与输入的IP包数据流进行比较,获得相似度计算子结果,当该相似度计算子结果达到预设值(如8位中有7位相同)则输出1,否则输出0,结合图5,在IP包包头检测器52中还设置有累加器,用于对输出结果中的“1”进行累加。进一步,当比较到IP包包头标记信息的第N字节、且累加器的累加结果P所占N的比例K=P/N达到预设值(如0.85)时,则确定输入IP包数据流中当前参与相似度计算的N字节的数据段为IP包包头,相反,则舍弃当前结果,重新进行比较。其中,N为大于等于1的整数,P为整数。当然,在具体实施过程中,还可通过能量计算或者其他方式来进行相似度计算。
更具体的,以IP包数据流为“......byte4byte3byte2byte1byte0”、且帧头部头为两字节为例,首先对先输入的两字节数据(即byte1和byte0)进行相似度计算,当计算结果均达到要求,确定其为IP包包头,否则,左移一字节,以下一个两字节(即byte2和byte1)为对象进行相似度计算,其它情况依此类推,这里不再一一赘述。
另外,在具体实施过程中,对于自定义的通信协议,其IP包包头也可是自定义的。根据开放系统互连参考模型(OSI,Open System Interconnect),网络架构分为:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层;根据TCP/IP四层模型,网络架构分为:网络接口层、互联网络层、传输层和应用层。在从应用层将IP包数据流发送到网络上时,每一层都需对应用数据进行加封装,在从网络上接收IP数据流时,每一层都需要对IP数据流进行解封装以获得应用数据。可见,在同一通信协议下,IP包数据流针对不同的 层,具有多个不同的IP包包头,在具体实施过程中,可在不同的层分别实施本方案的IP包包头检测方法进行本层包头检测,也可在底层(如物理层),针对所有层的IP包包头进行检测。
总而言之,在本发明方案中,通过根据通信设备所兼容的全部的通信协议,确定与各通信协议对应的IP包数据流的包头,并根据所确定的包头生成包头检测列表,通过循环读取包头检测列表中的IP包包头标记信息与接收的IP包数据流进行对比来确定包头。其中,包头检测列表灵活可配置,一个检测列表适用于对多种通信协议的IP包包头进行检测,结构简单且资源占用少,有效地解决了现有技术中IP包包头检测方案适用于对单一通信协议进行包头检测,无法满足兼容多种通信协议的通信方的通信需求的技术问题。
实施例二
基于同一发明构思,请参考图6A,本申请实施例还提供了一种IP包包头检测装置,包括:
IP包包头标记信息确定模块61,用于基于无线通信设备所兼容的全部通信协议,确定所述全部通信协议的IP包包头标记信息;
包头检测列表生成模块62,用于基于所述IP包包头标记信息生成包头检测列表;
相似度计算模块63,用于当所述无线通信设备接收IP包数据流时,循环读取所述包头检测列表中的任一IP包包头标记信息作为当前包头标记信息,并将所述当前IP包包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,以获得计算结果;
IP包包头确定模块64,用于当计算到所述当前包头标记信息的末字节,且所述计算结果达到预设值时,确定所述IP包数据流的用于相似度计算的数据段为IP包包头。进一步,为了能够确定通信设备所兼容的全部通信协议的IP包包头标记信息,请参考图6B,所述IP包包头标记信息确定模块61包括:
通信协议确定单元611,用于确定所述无线通信设备所兼容的全部通信协 议;
包头确定单元612,用于确定所述全部通信协议中每一通信协议定义的IP包包头;
IP包包头标记信息确定单元613,用于基于所述全部通信协议的IP包包头,确定所述全部通信协议的IP包包头标记信息。
在具体实施过程中,由于对于不同的通信协议,IP包包头的长度和字节内容也不同,为了能够满足所述全部通信协议的IP包包头标记信息存储需求,且合理利用硬件存储资源,仍请参考图6B,所述包头检测列表生成模块62具体包括:
临时列表定义单元621,用于基于所述全部通信协议类型的包头字节数,定义相应深度的临时列表;
包头检测列表生成单元622,用于将所述包头字节内容存储至所述临时列表中,以生成包头检测列表;
其中,任一所述IP包包头标记信息包括包头字节数和包头字节内容。
具体的,本实施例方案的相似度计算涉及位级运算,为了利用掩码从一个字节中选出的位的集合,所述包头检测列表包括标记信息子列表和掩码子列表;
其中,所述标记信息子列表用于存储所述包头字节内容,所述掩码子列表用于存储与所述包头字节内容一一对应的掩码数据。
进一步,还请参考图6B,所述相似度计算模块63具体包括:
数据读取单元631,用于当所述无线通信设备接收IP包数据流时,循环读取所述标记信息子列表中的任一所述包头字节内容作为当前包头字节内容,以及从所述掩码子列表中读取与当前包头字节内容对应的掩码数据;
相似度计算单元632,用于基于所述当前包头字节内容和对应的掩码数据,将所述当前包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,以获得计算结果。
其中,所述IP包包头确定模块64用于将所述当前IP包包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,具体为用于:依次读取所述当前IP包包头标记信息中的每一字节,并将所读取的字节中的各比特位对应与IP包数据流进行并行比对,以进行相似度计算。
根据上面的描述,上述IP包包头检测装置用于实现上述IP包包头检测方法,所以,该IP包包头检测装置与上述IP包包头检测方法的一个或多个实施例一致,在此就不再一一赘述了。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种IP包包头检测方法,应用于无线通信设备中,其特征在于,所述IP包包头检测方法包括以下步骤:
S1、基于所述无线通信设备所兼容的全部通信协议,确定所述全部通信协议的IP包包头标记信息;
S2、基于所述IP包包头标记信息生成包头检测列表;
S3、当所述无线通信设备接收IP包数据流时,循环读取所述包头检测列表中的任一IP包包头标记信息作为当前包头标记信息,并将所述当前IP包包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,以获得计算结果;
S4、当计算到所述当前包头标记信息的末字节,且所述计算结果达到预设值时,确定所述IP包数据流的用于相似度计算的数据段为IP包包头。
2.如权利要求1所述的IP包包头检测方法,其特征在于,任一所述IP包包头标记信息包括包头字节数和包头字节内容,所述步骤S2具体包括子步骤:
S21、基于所述全部通信协议类型的包头字节数,定义相应深度的临时列表;
S22、将所述包头字节内容存储至所述临时列表中,以生成包头检测列表。
3.如权利要求2所述的IP包包头检测方法,其特征在于,所述包头检测列表包括标记信息子列表和掩码子列表;
其中,所述标记信息子列表用于存储所述包头字节内容,所述掩码子列表用于存储与所述包头字节内容一一对应的掩码数据。
4.如权利要求3所述的IP包包头检测方法,其特征在于,所述步骤S3具体包括子步骤:
S31、当所述无线通信设备接收IP包数据流时,循环读取所述标记信息子列表中的任一所述包头字节内容作为当前包头字节内容,以及从所述掩码子列表中读取与当前包头字节内容对应的掩码数据;
S32、基于所述当前包头字节内容和对应的掩码数据,将所述当前包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,以获得计算结果。
5.如权利要求1~4任一权项所述的IP包包头检测方法,其特征在于,所述步骤S3中:将所述当前IP包包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,具体为:
依次读取所述当前IP包包头标记信息中的每一字节,并将所读取的字节中的各比特位对应与IP包数据流进行并行比对,以进行相似度计算。
6.一种IP包包头检测装置,其特征在于,包括:
IP包包头标记信息确定模块,用于基于无线通信设备所兼容的全部通信协议,确定所述全部通信协议的IP包包头标记信息;
包头检测列表生成模块,用于基于所述IP包包头标记信息生成包头检测列表;
相似度计算模块,用于当所述无线通信设备接收IP包数据流时,循环读取所述包头检测列表中的任一IP包包头标记信息作为当前包头标记信息,并将所述当前IP包包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,以获得计算结果;
IP包包头确定模块,用于当计算到所述当前包头标记信息的末字节,且所述计算结果达到预设值时,确定所述IP包数据流的用于相似度计算的数据段为IP包包头。
7.如权利要求6所述的IP包包头检测装置,其特征在于,所述包头检测列表生成模块具体包括:
临时列表定义单元,用于基于所述全部通信协议类型的包头字节数,定义相应深度的临时列表;
包头检测列表生成单元,用于将所述包头字节内容存储至所述临时列表中,以生成包头检测列表;
其中,任一所述IP包包头标记信息包括包头字节数和包头字节内容。
8.如权利要求7所述的IP包包头检测装置,其特征在于,所述包头检测列表包括标记信息子列表和掩码子列表;
其中,所述标记信息子列表用于存储所述包头字节内容,所述掩码子列表用于存储与所述包头字节内容一一对应的掩码数据。
9.如权利要求8所述的IP包包头检测装置,其特征在于,所述相似度计算模块具体包括:
数据读取单元,用于当所述无线通信设备接收IP包数据流时,循环读取所述标记信息子列表中的任一所述包头字节内容作为当前包头字节内容,以及从所述掩码子列表中读取与当前包头字节内容对应的掩码数据;
相似度计算单元,用于基于所述当前包头字节内容和对应的掩码数据,将所述当前包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,以获得计算结果。
10.如权利要求6~9任一权项所述的IP包包头检测装置,其特征在于,所述IP包包头确定模块用于将所述当前IP包包头标记信息以字节为单位,依次与所述IP包数据流进行相似度计算,具体为用于:
依次读取所述当前IP包包头标记信息中的每一字节,并将所读取的字节中的各比特位对应与IP包数据流进行并行比对,以进行相似度计算。
CN201710001005.XA 2017-01-03 2017-01-03 一种ip包包头检测方法及装置 Active CN106789440B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710001005.XA CN106789440B (zh) 2017-01-03 2017-01-03 一种ip包包头检测方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710001005.XA CN106789440B (zh) 2017-01-03 2017-01-03 一种ip包包头检测方法及装置

Publications (2)

Publication Number Publication Date
CN106789440A true CN106789440A (zh) 2017-05-31
CN106789440B CN106789440B (zh) 2020-11-03

Family

ID=58952872

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710001005.XA Active CN106789440B (zh) 2017-01-03 2017-01-03 一种ip包包头检测方法及装置

Country Status (1)

Country Link
CN (1) CN106789440B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110278177A (zh) * 2018-03-15 2019-09-24 武汉芯泰科技有限公司 一种ip包包头检测方法及装置
CN110278171A (zh) * 2018-03-15 2019-09-24 武汉芯泰科技有限公司 一种帧同步头检测方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101958902A (zh) * 2010-09-30 2011-01-26 北京锐安科技有限公司 一种网络数据包的解析方法与装置
CN102014065A (zh) * 2010-12-10 2011-04-13 中兴通讯股份有限公司 报文包头的解析方法、包头解析预处理装置和网络处理器
CN102195977A (zh) * 2011-04-13 2011-09-21 北京恒光创新科技股份有限公司 一种网络协议识别方法及装置
WO2016107180A1 (zh) * 2015-01-04 2016-07-07 华为技术有限公司 网络数据流类型检测方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101958902A (zh) * 2010-09-30 2011-01-26 北京锐安科技有限公司 一种网络数据包的解析方法与装置
CN102014065A (zh) * 2010-12-10 2011-04-13 中兴通讯股份有限公司 报文包头的解析方法、包头解析预处理装置和网络处理器
CN102195977A (zh) * 2011-04-13 2011-09-21 北京恒光创新科技股份有限公司 一种网络协议识别方法及装置
WO2016107180A1 (zh) * 2015-01-04 2016-07-07 华为技术有限公司 网络数据流类型检测方法及装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110278177A (zh) * 2018-03-15 2019-09-24 武汉芯泰科技有限公司 一种ip包包头检测方法及装置
CN110278171A (zh) * 2018-03-15 2019-09-24 武汉芯泰科技有限公司 一种帧同步头检测方法及装置
CN110278177B (zh) * 2018-03-15 2022-04-12 武汉芯泰科技有限公司 一种ip包包头检测方法及装置
CN110278171B (zh) * 2018-03-15 2022-06-21 武汉芯泰科技有限公司 一种帧同步头检测方法及装置

Also Published As

Publication number Publication date
CN106789440B (zh) 2020-11-03

Similar Documents

Publication Publication Date Title
CN104982013B (zh) 一种业务路由的方法、设备及系统
CN110535782A (zh) 一种实现QoS保障的报文处理方法、设备和系统
CN103763154B (zh) 一种网络流量检测方法
CN104219145B (zh) 网络系统及路由方法
CN105337881B (zh) 一种数据报文的处理方法、业务节点以及引流点
CN109474642A (zh) 基于以太网udp协议数据传输方法、装置、设备及介质
CA2469169A1 (en) Method and apparatus for determination of network topology
CN105556916B (zh) 网络流的信息统计方法和装置
CN106254256A (zh) 基于三层vxlan网关的数据报文转发方法和设备
CN101222426B (zh) 用于网络数据传输的方法以及系统
CN109587112A (zh) 一种发送数据的方法、接收数据的方法、设备及系统
CN103248540A (zh) 基于多分形小波模型的fpga网络流量发生系统及方法
CN105634977A (zh) 发现路径最大传输单元的方法和装置
CN104506460B (zh) 一种实现napt端口资源分配的方法
CN106789440A (zh) 一种ip包包头检测方法及装置
CN105207858B (zh) 接入装置及其执行的将用户设备接入网络的方法
CN107666467A (zh) 资源分配方法、设备和系统
CN106911740A (zh) 一种缓存管理的方法和装置
CN103746945B (zh) 一种数据传输装置及方法
CN106851814A (zh) 一种帧同步检测方法及装置
CN114793210B (zh) 一种数据报文多发选收发送、接收方法、装置及系统
CN108011801A (zh) 数据传输的方法、设备、装置及系统
CN107809387A (zh) 一种报文传输的方法、设备及网络系统
CN110351394A (zh) 网络数据的处理方法及装置、计算机装置及可读存储介质
CN108848202A (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