CN104767710A - 基于dfa的http分块传输编码的传输载荷提取方法 - Google Patents

基于dfa的http分块传输编码的传输载荷提取方法 Download PDF

Info

Publication number
CN104767710A
CN104767710A CN201410001517.2A CN201410001517A CN104767710A CN 104767710 A CN104767710 A CN 104767710A CN 201410001517 A CN201410001517 A CN 201410001517A CN 104767710 A CN104767710 A CN 104767710A
Authority
CN
China
Prior art keywords
field
http
block transmission
coding mode
dfa
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
CN201410001517.2A
Other languages
English (en)
Other versions
CN104767710B (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.)
Zhengzhou Xinrand Network Technology Co ltd
Institute of Acoustics CAS
Original Assignee
Institute of Acoustics CAS
Beijing Intellix Technologies 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 Institute of Acoustics CAS, Beijing Intellix Technologies Co Ltd filed Critical Institute of Acoustics CAS
Priority to CN201410001517.2A priority Critical patent/CN104767710B/zh
Priority to PCT/CN2014/093477 priority patent/WO2015101152A1/zh
Publication of CN104767710A publication Critical patent/CN104767710A/zh
Application granted granted Critical
Publication of CN104767710B publication Critical patent/CN104767710B/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/52Network services specially adapted for the location of the user terminal

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明涉及一种基于DFA的HTTP分块传输编码的传输载荷提取方法,包括:在HTTP报文流中,利用用于实现正则表达式匹配的DFA引擎逐个匹配分块传输编码模式串,以定位所有分块传输编码模式串的起止位置;其中,所述分块传输编码模式串为正则表达式,包含IETF RFC2616中所描述的chunk-size字段及其之前与之后的回车换行符;提取全部的相邻两个分块传输编码模式串之间的数据,获得HTTP有效载荷数据。

Description

基于DFA的HTTP分块传输编码的传输载荷提取方法
技术领域
本发明涉及网络传输领域,特别涉及一种基于DFA的HTTP分块传输编码的传输载荷提取方法。
背景技术
协议用于描述各种计算机应用中及应用间的通信方式。在通讯过程中,通讯的两方将通信内容封装在协议中,再将协议字符串传递给对方,对方收到该协议字符串后,需要从协议字符串中解析出通信内容。从协议字符串解析出通信内容的过程被称为协议解析,协议解析已经成为网络应用中的一种不可或缺的技术。如何快速地实现协议解析,将会直接影响计算机系统的性能。
协议解析的本质为字符串中协议字段的查找。现有技术中实现协议解析的方法包括:纯软件的协议解析、基于字符串匹配算法的协议解析和基于硬件的协议解析。纯软件的协议解析方法使用操作系统中的字符串查找和比较函数来实现协议解析,其性能非常有限。基于字符串匹配算法的协议解析方法虽然比使用操作系统的字符串函数快很多,但还是受服务器芯片性能限制而越来越无法满足高并发、大数据量的网络应用需求。随着网络应用的快速发展,出现了基于硬件的协议解析方法,这种方法虽然性能很高但扩展性很差,只能适用于一些预设的固定场景。
HTTP协议的消息格式包含消息首部和消息体。在消息首部中定义了一些属性字段,这些字段向报文接收者提供了重要的信息。其中,Content-Length属性字段表示消息体的长度,该字段有利于数据接收过程的编程实现。然而,对于某些动态生成的数据,消息生成者可能无法立即知悉消息体的总长度,从而不能及时计算Content-Length字段值。使用分块传输编码(chunked编码)可以回避这一问题。分块传输编码是HTTP/1.1协议的一种传输编码方式,该传输编码方式将待传输数据切割为多个部分,报文只需提供每个部分的长度。编码后的消息体是一组连续的编码块(chunk),每个编码块包含了传输数据块(chunk-data)及其长度(chunk-size),其格式定义如下:
chunk=chunk-size[chunk-extension]CRLF chunk-data CRLF
其中,chunk-size是chunk-data的长度,为十六进制字符串。CRLF为双字节换行符,其ASCII码值为0x0d0x0a。可选的chunk-extension格式用一组“name=value”字段组成,但RFC2616未对这些字段进行定义,并规定接收者忽略不能识别的字段。
流媒体业务的分发和传输过程使用了HTTP协议,对节目内容进行chunked编码。流服务器通过TCP协议接收报文,将解码后的报文以UDP方式推送给IPQAM,进而发送给终端用户。由于流媒体具有数据量大、传输时间长的特点,流服务器将会对大量数据进行分块传输编码解析操作,该操作的效率对于流服务器的整体性能至关重要。现有技术中的协议解析方法效率不高,不太适合于数据量大、传输时间长的流媒体应用环境。
发明内容
本发明的目的在于克服现有技术中的协议解析方法效率不高的缺陷,从而提供一种高效的协议解析方法。
为了实现上述目的,本发明提供了一种基于DFA的HTTP分块传输编码的传输载荷提取方法,包括:
在HTTP报文流中,利用用于实现正则表达式匹配的DFA引擎逐个匹配分块传输编码模式串,以定位所有分块传输编码模式串的起止位置;其中,所述分块传输编码模式串为正则表达式,包含IETF RFC2616中所描述的chunk-size字段及其之前与之后的回车换行符;
提取全部的相邻两个分块传输编码模式串之间的数据,获得HTTP有效载荷数据。
上述技术方案中,所述分块传输编码模式串用正则表达式表达为:“\r\n[0-9A-Fa-f]+\r\n”。
上述技术方案中,该方法进一步包括:
步骤1)、输入HTTP报文流后,将当前位置设置为该输入HTTP报文流的第一个字节,或第一个chunk-size字段位置之前的某个位置;
步骤2)、在所输入的HTTP报文流中匹配当前位置之后的下一个符合正则表达式“\r\n[0-9A-Fa-f]+\r\n”的字段,将匹配字段记作“当前分块传输编码模式串字段”,获得该字段的结束位置的下一个字节的位置,将当前位置设置为该位置,同时将载荷起始位置也设置为该位置;
步骤3)、匹配当前位置之后的下一个符合正则表达式“\r\n[0-9A-Fa-f]+r\n”的字段,记作“下一个分块传输编码模式串字段”;如果匹配到了下一个分块传输编码模式串字段,则获得该字段起始位置的前一个字节所在位置,将载荷结束位置设置为该位置,并获得该字段结束位置之后的下一个字节所在位置,将当前位置设置为这一位置;若整个报文不存在下一个分块传输编码模式串字段,说明已经完成全部匹配,结束本次解析;
步骤4)、将载荷起始位置到载荷结束位置之间所包含的所有字节为chunk-data,为本分块的有效载荷,然后重新执行从步骤3)开始执行。
上述技术方案中,所述DFA引擎为提供正则表达式匹配功能的硬件模块或模块集,或者是实现正则表达式匹配的软件模块或模块集,或者是实现正则表达式匹配的软件模块和硬件模块的结合。
本发明的优点在于:
本发明的方法能够快速地从HTTP分块传输编码中提取出传输载荷,具有效率高、耗时少、可移植性好等优点。
附图说明
图1是本发明方法的流程图。
具体实施方式
在对本发明做详细说明之前,对本发明中所涉及的相关概念做统一描述。
分块传输编码模式串:与RFC2616中所描述的chunk-size字段相同,还包括该字段之前与之后的回车换行符(即CRLF)。如果忽略RFC2616中的chunk-extension字段,则分块传输编码模式串用正则表达式表达为:“\r\n[0-9A-Fa-f]+\r\n”。
chunk-data字段:与RFC2616中所描述的chunk-data字段相同,为HTTP报文流的有效载荷,在协议解析时需要对其进行提取。
DFA引擎:包括提供正则表达式匹配功能的硬件模块或模块集,或者是实现正则表达式匹配的软件模块或模块集,或者软件和硬件模块的结合。DFA引擎不仅要给出指定正则表达式是否存在于指定文本的信息,同时在发现匹配的情况下,给出该正则表达式在该文本中出现的起止位置。
现结合附图对本发明作进一步的描述。
本发明的方法能够实现对HTTP分块传输编码数据的快速解析,参考图1,本发明的方法包括以下步骤:
步骤1)、输入HTTP报文流后,将当前位置设置为该输入HTTP报文流的第一个字节,或第一个chunk-size字段位置之前的某个位置;
步骤2)、在所输入的HTTP报文流中匹配当前位置之后的下一个符合正则表达式“\r\n[0-9A-Fa-f]+\r\n”的字段,将匹配字段记作“当前分块传输编码模式串字段”,获得该字段的结束位置的下一个字节的位置,将当前位置设置为该位置,同时将载荷起始位置也设置为该位置;
步骤3)、匹配当前位置之后的下一个符合正则表达式“\r\n[0-9A-Fa-f]+\r\n”的字段,记作“下一个分块传输编码模式串字段”;如果匹配到了下一个分块传输编码模式串字段,则获得该字段起始位置的前一个字节所在位置,将载荷结束位置设置为该位置,并获得该字段结束位置之后的下一个字节所在位置,将当前位置设置为这一位置;若整个报文不存在下一个分块传输编码模式串字段,说明已经完成全部匹配,可结束本次解析过程。
步骤4)、将载荷起始位置到载荷结束位置之间所包含的所有字节为chunk-data,为本分块有效载荷,依具体应用所需做出适当处理,然后重新执行从步骤3)开始执行。
在上述实施例中,用于表示分块传输编码模式串的正则表达式为“\r\n[0-9A-Fa-f]+\r\n”,在其他实施例中,也可以用其他形式的正则表达式表示分块传输编码模式串,如“\r\n\h+\r\n”。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (4)

1.一种基于DFA的HTTP分块传输编码的传输载荷提取方法,包括:
在HTTP报文流中,利用用于实现正则表达式匹配的DFA引擎逐个匹配分块传输编码模式串,以定位所有分块传输编码模式串的起止位置;其中,所述分块传输编码模式串为正则表达式,包含IETF RFC2616中所描述的chunk-size字段及其之前与之后的回车换行符;
提取全部的相邻两个分块传输编码模式串之间的数据,获得HTTP有效载荷数据。
2.根据权利要求1所述的基于DFA的HTTP分块传输编码的传输载荷提取方法,其特征在于,所述分块传输编码模式串用正则表达式表达为:“\r\n[0-9A-Fa-f]+\r\n”。
3.根据权利要求2所述的基于DFA的HTTP分块传输编码的传输载荷提取方法,其特征在于,该方法进一步包括:
步骤1)、输入HTTP报文流后,将当前位置设置为该输入HTTP报文流的第一个字节,或第一个chunk-size字段位置之前的某个位置;
步骤2)、在所输入的HTTP报文流中匹配当前位置之后的下一个符合正则表达式“\r\n[0-9A-Fa-f]+\r\n”的字段,将匹配字段记作“当前分块传输编码模式串字段”,获得该字段的结束位置的下一个字节的位置,将当前位置设置为该位置,同时将载荷起始位置也设置为该位置;
步骤3)、匹配当前位置之后的下一个符合正则表达式“\r\n[0-9A-Fa-f]+r\n”的字段,记作“下一个分块传输编码模式串字段”;如果匹配到了下一个分块传输编码模式串字段,则获得该字段起始位置的前一个字节所在位置,将载荷结束位置设置为该位置,并获得该字段结束位置之后的下一个字节所在位置,将当前位置设置为这一位置;若整个报文不存在下一个分块传输编码模式串字段,说明已经完成全部匹配,结束本次解析;
步骤4)、将载荷起始位置到载荷结束位置之间所包含的所有字节为chunk-data,为本分块的有效载荷,然后重新执行从步骤3)开始执行。
4.根据权利要求1所述的基于DFA的HTTP分块传输编码的传输载荷提取方法,其特征在于,所述DFA引擎为提供正则表达式匹配功能的硬件模块或模块集,或者是实现正则表达式匹配的软件模块或模块集,或者是实现正则表达式匹配的软件模块和硬件模块的结合。
CN201410001517.2A 2014-01-02 2014-01-02 基于dfa的http分块传输编码的传输载荷提取方法 Active CN104767710B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201410001517.2A CN104767710B (zh) 2014-01-02 2014-01-02 基于dfa的http分块传输编码的传输载荷提取方法
PCT/CN2014/093477 WO2015101152A1 (zh) 2014-01-02 2014-12-10 基于dfa的http分块传输编码的传输载荷提取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410001517.2A CN104767710B (zh) 2014-01-02 2014-01-02 基于dfa的http分块传输编码的传输载荷提取方法

Publications (2)

Publication Number Publication Date
CN104767710A true CN104767710A (zh) 2015-07-08
CN104767710B CN104767710B (zh) 2018-08-07

Family

ID=53493173

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410001517.2A Active CN104767710B (zh) 2014-01-02 2014-01-02 基于dfa的http分块传输编码的传输载荷提取方法

Country Status (2)

Country Link
CN (1) CN104767710B (zh)
WO (1) WO2015101152A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109871502A (zh) * 2019-01-18 2019-06-11 北京赛思信安技术股份有限公司 一种基于Storm的流数据正则匹配方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105933420A (zh) * 2016-04-27 2016-09-07 江苏物联网研究发展中心 利用http协议实现客户端向服务端文件上传的方法及系统
CN113132416B (zh) * 2021-06-03 2022-06-21 新华三信息安全技术有限公司 一种数据包检测方法及装置
CN113612821A (zh) * 2021-07-14 2021-11-05 支付宝(杭州)信息技术有限公司 多方安全计算中的数据交互方法和装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252576A (zh) * 2008-03-13 2008-08-27 苏州爱迪比科技有限公司 利用dfa在网关处进行基于网络流的病毒检测方法
CN102004789A (zh) * 2010-12-07 2011-04-06 苏州迈科网络安全技术股份有限公司 Url过滤系统的应用方法
CN102143148A (zh) * 2010-11-29 2011-08-03 华为技术有限公司 用于通用协议解析的参数获取和通用协议解析方法及装置
CN103095644A (zh) * 2011-10-28 2013-05-08 中国移动通信集团公司 一种数据内容解析方法及装置
US20130254197A1 (en) * 2012-03-20 2013-09-26 Yissum Research Development Company Of The Hebrew University Of Jerusalem Ltd. Method and system for decompression-free inspection of shared dictionary compressed traffic over http

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252576A (zh) * 2008-03-13 2008-08-27 苏州爱迪比科技有限公司 利用dfa在网关处进行基于网络流的病毒检测方法
CN102143148A (zh) * 2010-11-29 2011-08-03 华为技术有限公司 用于通用协议解析的参数获取和通用协议解析方法及装置
CN102004789A (zh) * 2010-12-07 2011-04-06 苏州迈科网络安全技术股份有限公司 Url过滤系统的应用方法
CN103095644A (zh) * 2011-10-28 2013-05-08 中国移动通信集团公司 一种数据内容解析方法及装置
US20130254197A1 (en) * 2012-03-20 2013-09-26 Yissum Research Development Company Of The Hebrew University Of Jerusalem Ltd. Method and system for decompression-free inspection of shared dictionary compressed traffic over http

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109871502A (zh) * 2019-01-18 2019-06-11 北京赛思信安技术股份有限公司 一种基于Storm的流数据正则匹配方法
CN109871502B (zh) * 2019-01-18 2020-10-30 北京赛思信安技术股份有限公司 一种基于Storm的流数据正则匹配方法

Also Published As

Publication number Publication date
CN104767710B (zh) 2018-08-07
WO2015101152A1 (zh) 2015-07-09

Similar Documents

Publication Publication Date Title
CN109818930B (zh) 一种基于tcp协议的通讯文本数据传输方法
US8718098B2 (en) Method for compressing and decompressing time stamp and equipment thereof
CN104221315A (zh) 通用对象传递及基于模板的文件传递
CN111262876B (zh) 基于区块链的数据处理方法、装置、设备以及存储介质
CN104767710A (zh) 基于dfa的http分块传输编码的传输载荷提取方法
CN103957241A (zh) 一种基于报文数据的通信方法及装置
CN104123364A (zh) 一种移动终端发送和接收数据的方法及装置
CN101964722A (zh) 用于通信的方法和系统
CN106851733A (zh) 一种针对移动网络应用的自适应http消息压缩方法
CN105052040A (zh) 多流压缩与解压的方法与系统
WO2020088209A1 (zh) 会话控制方法及卫星地面站
US9294125B2 (en) Leveraging language structure to dynamically compress a short message service (SMS) message
WO2016074434A1 (zh) 数据提取方法及装置
CN108040041B (zh) 一种基于业务驱动的图像差异传输协议设计系统及方法
CN106850559A (zh) 一种可扩展的网络协议解析系统及方法
CN104079580B (zh) 教务教学图像语音识别系统及方法
CN106375177A (zh) 消息传输方法和装置
CN105635182B (zh) 一种数据压缩传输方法及系统
CN104021121A (zh) 一种文本数据压缩方法、装置及服务器
CN103929447B (zh) 一种基于PEEK操作的解析HTTP chunked编码数据的方法
CN112350986B (zh) 一种音视频网络传输碎片化的整形方法及系统
CN104780182B (zh) HTTP chunked编码和IP包封装、解析方法
CN103929404B (zh) 一种解析HTTP chunked编码数据的方法
CN103929445B (zh) 一种在线解析HTTP chunked编码数据的方法
CN102843345A (zh) 远程沟通方法及其计算机程序产品

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20210823

Address after: Room 1601, 16th floor, East Tower, Ximei building, No. 6, Changchun Road, high tech Industrial Development Zone, Zhengzhou, Henan 450001

Patentee after: Zhengzhou xinrand Network Technology Co.,Ltd.

Address before: 100190, No. 21 West Fourth Ring Road, Beijing, Haidian District

Patentee before: INSTITUTE OF ACOUSTICS, CHINESE ACADEMY OF SCIENCES

Effective date of registration: 20210823

Address after: 100190, No. 21 West Fourth Ring Road, Beijing, Haidian District

Patentee after: INSTITUTE OF ACOUSTICS, CHINESE ACADEMY OF SCIENCES

Address before: 100190, No. 21 West Fourth Ring Road, Beijing, Haidian District

Patentee before: INSTITUTE OF ACOUSTICS, CHINESE ACADEMY OF SCIENCES

Patentee before: BEIJING INTELLIX TECHNOLOGIES Co.,Ltd.

TR01 Transfer of patent right