CN107704606B - 基于自定义标签语言的即时聊天协议要素通用抽取方法 - Google Patents
基于自定义标签语言的即时聊天协议要素通用抽取方法 Download PDFInfo
- Publication number
- CN107704606B CN107704606B CN201710963242.4A CN201710963242A CN107704606B CN 107704606 B CN107704606 B CN 107704606B CN 201710963242 A CN201710963242 A CN 201710963242A CN 107704606 B CN107704606 B CN 107704606B
- Authority
- CN
- China
- Prior art keywords
- type
- stage
- extraction
- protocol
- keyword
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/2866—Architectures; Arrangements
- H04L67/30—Profiles
-
- 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/26—Special purpose or proprietary protocols or architectures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Communication Control (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种基于自定义标签语言的即时聊天协议要素通用抽取方法,通过通用平台实现应用层数据重组阶段、消息类型识别阶段、协议要素抽取阶段和格式化输出阶段,各阶段如下:应用层数据重组阶段:对应用层数据进行重组,形成完整的数据单元供后续阶段进行分析抽取;消息类型识别阶段:对应用层数据重组阶段重组得到的数据单元进行消息类型识别;协议要素抽取阶段:根据消息类型识别阶段识别出的消息类型,对各协议要素进行抽取;格式化输出阶段:对协议要素抽取阶段抽取到的协议要素进行格式化输出。本发明大大减少了开发和维护工作量,大大节省了时间,同时也能够降低客户的现场使用的影响。
Description
技术领域
本发明涉及即时聊天协议要素通用抽取方法,特别是基于自定义标签语言的即时聊天协议要素通用抽取方法。
背景技术
伴随互联网的发展,即时聊天协议越来越多,且更新频率越来越快,这给网络空间安全监控带来巨大的挑战。传统的即时聊天协议要素抽取方法,根据每种即时聊天协议的消息类型及消息格式定制一套包括应用层数据重组、消息类型识别、协议要素抽取和话单输出的代码,这需要大量的开发及维护工作量;每新支持一种即时聊天协议都需要重新编译和启动版本,对客户的现场使用有很大影响;同时各即时聊天协议抽取模块之间也会互相影响对方的稳定性,对整个协议要素抽取平台形成巨大影响。究其原因,主要是因为传统的即时聊天协议要素抽取方法都是根据各协议特点定制整套代码,并没有从宏观出发将协议要素抽取的各个阶段抽象成一个通用处理平台,没有将各阶段规则抽象成一套自定义标签语言,对即时聊天协议要素抽取进行通用处理和平台化管理。
发明内容
发明目的:本发明的目的是提供一种能够解决现有技术中存在的缺陷的基于自定义标签语言的即时聊天协议要素通用抽取方法。
技术方案:本发明所述的基于自定义标签语言的即时聊天协议要素通用抽取方法,通过通用平台实现应用层数据重组阶段、消息类型识别阶段、协议要素抽取阶段和格式化输出阶段,各阶段如下:
应用层数据重组阶段:对应用层数据进行重组,形成完整的数据单元供后续阶段进行分析抽取;
消息类型识别阶段:对应用层数据重组阶段重组得到的数据单元进行消息类型识别;
协议要素抽取阶段:根据消息类型识别阶段识别出的消息类型,对各协议要素进行抽取;
格式化输出阶段:对协议要素抽取阶段抽取到的协议要素进行格式化输出。
进一步,所述应用层数据重组阶段中,根据重组规则将应用层数据进行重组,所述重组规则包括数据开始规则和数据结束规则。
进一步,所述数据开始规则包括关键字类型和协议头类型,其中:
关键字类型:以固定位置的关键字作为数据开始部分;
协议头类型:以一个协议头作为数据开始部分,该协议头无固定关键字但符合固定模式。
进一步,所述数据结束规则包括不拼包类型、长度固定类型、长度由值决定类型、长度由键值对决定类型和关键字类型,其中:
不拼包类型:不需要进行拼包;
长度固定类型:数据单元的长度固定;
长度由值决定类型:数据单元的长度由数据的某个位置的值确定;
长度由键值对决定类型:数据单元的长度由数据的某个键值对来确定;
关键字类型:数据单元的长度不固定,但以某个关键字作为数据单元的结束。
进一步,所述消息类型识别阶段中,根据识别规则进行消息类型识别。
进一步,所述识别规则包括固定值类型、关键字类型和状态机类型,其中:
固定值类型:消息类型为某字节开始的固定值;
关键字类型:消息类型为字符串类型的关键字;
状态机类型:消息类型识别依赖于状态机的切换。
进一步,所述协议要素抽取阶段中,根据消息类型识别阶段识别出的消息类型选择对应的抽取规则,对各协议要素进行抽取。
进一步,所述抽取规则包括位置偏移类型、关键字类型、偏移结合关键字类型和依赖类型,其中:
位置偏移类型:抽取的内容基于位置偏移;
关键字类型:抽取的内容基于关键字;
偏移结合关键字类型:抽取时,开始部分由关键字确定,结束部分由所述关键字向后偏移部分位置;
依赖类型:依赖于其他抽取规则中抽取的要素。
进一步,所述格式化输出阶段中,根据输出规则将抽取出来的协议要素进行格式化输出。
进一步,所述输出规则包括条件具备类型和hash提取类型,其中:
条件具备类型:确定是否已经具备输出条件;
hash提取类型:将需要从hash表中提取出来的字段进行提取。
有益效果:本发明公开了一种基于自定义标签语言的即时聊天协议要素通用抽取方法,与现有技术相比,具有如下的有益效果:
(1)本发明使用自定义的标签语言描述即时聊天协议要素抽取各阶段的规则,需要新支持一个协议或者更新协议时,只需要修改配置文件,大大减少了开发和维护工作量;版本升级时,只需要替换修改的配置文件,无需重新编译和启动版本,能够大大节省时间,同时也能够降低客户的现场使用的影响;
(2)本发明使用即时聊天协议要素的通用抽取平台,解耦了各协议的影响,一个协议的稳定性不会对其他协议的处理产生影响。
附图说明
图1为本发明具体实施方式中方法的示意图。
具体实施方式
本具体实施方式公开了基于自定义标签语言的即时聊天协议要素通用抽取方法,通过通用平台实现应用层数据重组阶段、消息类型识别阶段、协议要素抽取阶段和格式化输出阶段,各阶段如下:
应用层数据重组阶段:对应用层数据进行重组,形成完整的数据单元供后续阶段进行分析抽取;
消息类型识别阶段:对应用层数据重组阶段重组得到的数据单元进行消息类型识别;
协议要素抽取阶段:根据消息类型识别阶段识别出的消息类型,对各协议要素进行抽取;
格式化输出阶段:对协议要素抽取阶段抽取到的协议要素进行格式化输出。
应用层数据重组阶段中,根据重组规则将应用层数据进行重组,所述重组规则包括数据开始规则和数据结束规则。
数据开始规则包括关键字类型和协议头类型,其中:
关键字类型:以固定位置的关键字作为数据开始部分;
协议头类型:以一个协议头作为数据开始部分,该协议头无固定关键字但符合固定模式。
数据结束规则包括不拼包类型、长度固定类型、长度由值决定类型、长度由键值对决定类型和关键字类型,其中:
不拼包类型:不需要进行拼包;
长度固定类型:数据单元的长度固定;
长度由值决定类型:数据单元的长度由数据的某个位置的值确定;
长度由键值对决定类型:数据单元的长度由数据的某个键值对来确定;
关键字类型:数据单元的长度不固定,但以某个关键字作为数据单元的结束。
消息类型识别阶段中,根据识别规则进行消息类型识别。识别规则包括固定值类型、关键字类型和状态机类型,其中:
固定值类型:消息类型为某字节开始的固定值;
关键字类型:消息类型为字符串类型的关键字;
状态机类型:消息类型识别依赖于状态机的切换。
协议要素抽取阶段中,根据消息类型识别阶段识别出的消息类型选择对应的抽取规则,对各协议要素进行抽取。抽取规则包括位置偏移类型、关键字类型、偏移结合关键字类型和依赖类型,其中:
位置偏移类型:抽取的内容基于位置偏移;
关键字类型:抽取的内容基于关键字;
偏移结合关键字类型:抽取时,开始部分由关键字确定,结束部分由所述关键字向后偏移部分位置;
依赖类型:依赖于其他抽取规则中抽取的要素。例如ICQ-FTP传输文件时,文件名的编码由之前的某个要素提取出来,这样当前文件名就具有依赖性。
格式化输出阶段中,根据输出规则将抽取出来的协议要素进行格式化输出。输出规则包括条件具备类型和hash提取类型,其中:
条件具备类型:确定是否已经具备输出条件;
hash提取类型:将需要从hash表中提取出来的字段进行提取。
下面通过一个实施例,来对本具体实施方式进行进一步的介绍。
实施例1:
当前系统有一个需求,为了支持即时聊天协议YahooIM的内容还原,需要对YahooIM协议要素进行抽取。使用本方法只需要对YahooIM协议的重组规则、识别规则、抽取规则和输出规则进行配置,经过通用抽取平台的应用层数据重组阶段、消息类型识别阶段、协议要素抽取阶段和格式化输出阶段的处理即可得到由关心的协议要素组成的话单。各个阶段的配置如下:
1、应用层数据重组阶段:根据重组规则对应用层数据进行重组。配置规则如下:
(1)数据开始规则
类型:关键字类型
值:"YMSG"
操作:查找
处理:第一次匹配
返回:位置
(2)数据结束规则
类型:长度由值决定类型
值:偏移8字节的2个字节
操作:获取
处理:无
返回:整数
2、消息类型识别阶段:根据识别规则,对经过应用层数据重组阶段的数据单元进行消息类型识别。配置规则如下:
(1)发送
类型:固定值类型
值:偏移10字节的2个字节&&偏移12字节的4个字节
操作:比较
处理:值为6&&值为1515563606
返回:成功失败
(2)接收
类型:固定值类型
值:偏移10字节的2个字节&&偏移12字节的4个字节
操作:比较
处理:值为6&&值为1
返回:成功失败
(3)组发送
类型:固定值类型
值:偏移10字节的2个字节&&偏移12字节的4个字节
操作:比较
处理:值为29&&值为0
返回:成功失败
(4)组接收
类型:固定值类型
值:偏移10字节的2个字节&&偏移12字节的4个字节
操作:比较
处理:值为29&&值为1
返回:成功失败
3、协议要素抽取阶段:根据消息类型选择对应的抽取规则,对关心的协议要素进行抽取。配置规则如下:
(1)发送
字段from:
类型:关键字类型
值:0x31c080开始,0xc080结束
操作:获取
处理:无
返回:字符串类型值
字段to:
类型:关键字类型
值:0xc08035c080开始,0xc080结束
操作:获取
处理:无
返回:字符串类型值
字段content:
类型:关键字类型
值:0xc0803134c080开始,0xc080结束
操作:获取
处理:无
返回:字符串类型值
(2)接收
字段from:
类型:关键字类型
值:0x34c080开始,0xc080结束
操作:获取
处理:无
返回:字符串类型值
字段to:
类型:关键字类型
值:0xc08035c080开始,0xc080结束
操作:获取
处理:无
返回:字符串类型值
字段content:
类型:关键字类型
值:0xc0803134c080开始,0xc080结束
操作:获取
处理:无
返回:字符串类型值
(3)组发送
字段from:
类型:关键字类型
值:0x31c080开始,0xc080结束
操作:获取
处理:无
返回:字符串类型值
字段to:
类型:关键字类型
值:0xc0803537c080开始,0xc080结束
操作:获取
处理:无
返回:字符串类型值
字段content:
类型:关键字类型
值:0xc0803134c080开始,0xc080结束
操作:获取
处理:无
返回:字符串类型值
(4)组接收
字段from:
类型:关键字类型
值:0x31c080开始,0xc080结束
操作:获取
处理:无
返回:字符串类型值
字段to:
类型:关键字类型
值:0xc08033c080开始,0xc080结束
操作:获取
处理:无
返回:字符串类型值
字段content:
类型:关键字类型
值:0xc0803134c080开始,0xc080结束
操作:获取
处理:无
返回:字符串类型值
4、格式化输出阶段:根据输出规则,将关心的协议要素格式化输出为话单。配置规则如下:
类型:条件具备类型
要素:form&&to&&content。
Claims (8)
1.基于自定义标签语言的即时聊天协议要素通用抽取方法,其特征在于:通过通用平台实现应用层数据重组阶段、消息类型识别阶段、协议要素抽取阶段和格式化输出阶段,各阶段如下:
应用层数据重组阶段:对应用层数据进行重组,形成完整的数据单元供后续阶段进行分析抽取;
消息类型识别阶段:根据识别规则对应用层数据重组阶段重组得到的数据单元进行消息类型识别,所述识别规则包括固定值类型、关键字类型和状态机类型,其中:
固定值类型:消息类型为某字节开始的固定值;
关键字类型:消息类型为字符串类型的关键字;
状态机类型:消息类型识别依赖于状态机的切换;
协议要素抽取阶段:根据消息类型识别阶段识别出的消息类型,对各协议要素进行抽取;
格式化输出阶段:对协议要素抽取阶段抽取到的协议要素进行格式化输出。
2.根据权利要求1所述的基于自定义标签语言的即时聊天协议要素通用抽取方法,其特征在于:所述应用层数据重组阶段中,根据重组规则将应用层数据进行重组,所述重组规则包括数据开始规则和数据结束规则。
3.根据权利要求2所述的基于自定义标签语言的即时聊天协议要素通用抽取方法,其特征在于:所述数据开始规则包括关键字类型和协议头类型,其中:
关键字类型:以固定位置的关键字作为数据开始部分;
协议头类型:以一个协议头作为数据开始部分,该协议头无固定关键字但符合固定模式。
4.根据权利要求2所述的基于自定义标签语言的即时聊天协议要素通用抽取方法,其特征在于:所述数据结束规则包括不拼包类型、长度固定类型、长度由值决定类型、长度由键值对决定类型和关键字类型,其中:
不拼包类型:不需要进行拼包;
长度固定类型:数据单元的长度固定;
长度由值决定类型:数据单元的长度由数据的某个位置的值确定;
长度由键值对决定类型:数据单元的长度由数据的某个键值对来确定;
关键字类型:数据单元的长度不固定,但以某个关键字作为数据单元的结束。
5.根据权利要求1所述的基于自定义标签语言的即时聊天协议要素通用抽取方法,其特征在于:所述协议要素抽取阶段中,根据消息类型识别阶段识别出的消息类型选择对应的抽取规则,对各协议要素进行抽取。
6.根据权利要求5所述的基于自定义标签语言的即时聊天协议要素通用抽取方法,其特征在于:所述抽取规则包括位置偏移类型、关键字类型、偏移结合关键字类型和依赖类型,其中:
位置偏移类型:抽取的内容基于位置偏移;
关键字类型:抽取的内容基于关键字;
偏移结合关键字类型:抽取时,开始部分由关键字确定,结束部分由所述关键字向后偏移部分位置;
依赖类型:依赖于其他抽取规则中抽取的要素。
7.根据权利要求1所述的基于自定义标签语言的即时聊天协议要素通用抽取方法,其特征在于:所述格式化输出阶段中,根据输出规则将抽取出来的协议要素进行格式化输出。
8.根据权利要求7所述的基于自定义标签语言的即时聊天协议要素通用抽取方法,其特征在于:所述输出规则包括条件具备类型和hash提取类型,其中:
条件具备类型:确定是否已经具备输出条件;
hash提取类型:将需要从hash表中提取出来的字段进行提取。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710963242.4A CN107704606B (zh) | 2017-10-17 | 2017-10-17 | 基于自定义标签语言的即时聊天协议要素通用抽取方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710963242.4A CN107704606B (zh) | 2017-10-17 | 2017-10-17 | 基于自定义标签语言的即时聊天协议要素通用抽取方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107704606A CN107704606A (zh) | 2018-02-16 |
CN107704606B true CN107704606B (zh) | 2021-01-08 |
Family
ID=61183858
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710963242.4A Active CN107704606B (zh) | 2017-10-17 | 2017-10-17 | 基于自定义标签语言的即时聊天协议要素通用抽取方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107704606B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1585379A (zh) * | 2004-05-25 | 2005-02-23 | 华中科技大学 | 一种数据包的快速解析方法 |
CN103475653A (zh) * | 2013-09-05 | 2013-12-25 | 北京科能腾达信息技术股份有限公司 | 网络数据包的检测方法 |
CN103729189A (zh) * | 2013-12-31 | 2014-04-16 | 福建星网视易信息系统有限公司 | 基于lua的播放协议转换方法、系统、终端 |
CN106059892A (zh) * | 2016-05-17 | 2016-10-26 | 中国科学院沈阳计算技术研究所有限公司 | 一种用于融合通信系统的消息引擎 |
CN106713357A (zh) * | 2017-01-24 | 2017-05-24 | 南京仁谷系统集成有限公司 | 一种通用的网络协议解析方法 |
-
2017
- 2017-10-17 CN CN201710963242.4A patent/CN107704606B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1585379A (zh) * | 2004-05-25 | 2005-02-23 | 华中科技大学 | 一种数据包的快速解析方法 |
CN103475653A (zh) * | 2013-09-05 | 2013-12-25 | 北京科能腾达信息技术股份有限公司 | 网络数据包的检测方法 |
CN103729189A (zh) * | 2013-12-31 | 2014-04-16 | 福建星网视易信息系统有限公司 | 基于lua的播放协议转换方法、系统、终端 |
CN106059892A (zh) * | 2016-05-17 | 2016-10-26 | 中国科学院沈阳计算技术研究所有限公司 | 一种用于融合通信系统的消息引擎 |
CN106713357A (zh) * | 2017-01-24 | 2017-05-24 | 南京仁谷系统集成有限公司 | 一种通用的网络协议解析方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107704606A (zh) | 2018-02-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111209004B (zh) | 代码转换方法及装置 | |
CN105993010B (zh) | 用以提供扩展对象符号数据的方法及设备 | |
RU2608464C2 (ru) | Устройство, способ и сетевой сервер для обнаружения структур данных в потоке данных | |
US20110219357A1 (en) | Compressing source code written in a scripting language | |
CN109104405B (zh) | 二进制协议编码、解码方法和装置 | |
CN111683066A (zh) | 异构系统集成方法、装置、计算机设备和存储介质 | |
CN101794318A (zh) | Url解析方法及设备 | |
CN114760369A (zh) | 一种协议元数据提取方法、装置、设备及存储介质 | |
US9292266B2 (en) | Preprocessor for file updating | |
CN107704606B (zh) | 基于自定义标签语言的即时聊天协议要素通用抽取方法 | |
CN105740298A (zh) | 文件处理方法、装置及服务端设备 | |
CN104317847A (zh) | 一种识别网络文字信息的语种的方法及系统 | |
CN109086064B (zh) | 基于自定义标签语言的http协议要素通用抽取方法 | |
CN103647763A (zh) | 一种移动终端广告调用方法和系统 | |
CN109379083A (zh) | 基于教育系统的base64编码转换方法及电子设备 | |
CN108460044B (zh) | 数据的处理方法和装置 | |
CN109241498A (zh) | Xml文件处理方法、设备和存储介质 | |
CN107968798A (zh) | 一种网管资源标签获取方法、缓存同步方法、装置及系统 | |
CN113204683B (zh) | 信息重构方法和装置、存储介质及电子设备 | |
CN114637554A (zh) | 接口调用方法、装置、设备及存储介质 | |
CN115276889A (zh) | 解码处理方法、装置、计算机设备及存储介质 | |
CN108243172B (zh) | 一种发送验证信息的方法及系统 | |
CN104363279B (zh) | 提供服务的方法和系统 | |
CN115421996B (zh) | 一种高效半自动化异常数据处理方法及系统 | |
CN109995784A (zh) | 一种基于udp的数据提取加速方法 |
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 |