CN104780182A - HTTP chunked编码和IP包封装、解析方法 - Google Patents
HTTP chunked编码和IP包封装、解析方法 Download PDFInfo
- Publication number
- CN104780182A CN104780182A CN201410010554.XA CN201410010554A CN104780182A CN 104780182 A CN104780182 A CN 104780182A CN 201410010554 A CN201410010554 A CN 201410010554A CN 104780182 A CN104780182 A CN 104780182A
- Authority
- CN
- China
- Prior art keywords
- packet
- crlf
- data
- chunk
- encapsulated
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000004806 packaging method and process Methods 0.000 title abstract 2
- 230000004044 response Effects 0.000 claims abstract description 9
- 230000005540 biological transmission Effects 0.000 claims description 8
- 238000012856 packing Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000007405 data analysis Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
Classifications
-
- 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/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- 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/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/166—IP fragmentation; TCP segmentation
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Communication Control (AREA)
Abstract
本发明涉及一种HTTP chunked编码和IP包封装、解析方法,包括:发送端将HTTP响应头部封装到第一个IP数据包中;将所要传输的TS数据按照188字节的整数倍封装到若干编码块中,对任一所述编码块,将所述编码块的“CRLF chunk-size CRLF”封装到IP数据包中,将所述编码块的“chunk-data”根据需要按照188字节的整数倍进行切分并将切分后的结果分别封装到若干个IP数据包中。
Description
技术领域
本发明涉及网络传输领域,特别涉及一种HTTP chunked编码和IP包封装、解析方法。
背景技术
HTTP协议的消息格式包含消息首部和消息体。消息首部部分定义了一些属性字段,向报文接收者提供了重要的信息。其中,Content-Length属性字段表示消息体的长度,便于数据接收过程的编程实现。然而,对于某些动态生成的数据,消息生成者可能无法立即知悉消息体的总长度,从而不能及时计算Content-Length字段值。使用chunked编码可以回避这一问题。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编码进行分发和传输,HTTP chunked编码数据接收端需要按照chunked编码格式进行解析。由于视频媒体具有数据量大、传输时间长的特点,chunked数据解析过程的效率对于媒体处理的整体性能至关重要。现有技术中,对chunked数据的解析通常采用字符串匹配的方式,即通过匹配“CRLF”字符串依次解析出HTTP头部、chunk-size,但采用字符串匹配的方式解析chunked数据具有效率低下等缺陷。
发明内容
本发明的目的在于克服现有技术中的HTTP chunked数据解析方法效率低下的缺陷,从而提供一种高效的编码和封装、解析方法。
为了实现上述目的,本发明提供了一种HTTP chunked编码和IP包封装方法, 包括:
发送端将HTTP响应头部封装到第一个IP数据包中;
将所要传输的TS数据按照188字节的整数倍封装到若干编码块中,对任一所述编码块,将所述编码块的“CRLF chunk-size CRLF”封装到IP数据包中,将所述编码块的“chunk-data”根据需要按照188字节的整数倍进行切分并将切分后的结果分别封装到若干个IP数据包中。
上述技术方案中,所述将所述编码块的“CRLF chunk-size CRLF”封装到IP数据包中包括:将所述编码块的“CRLF chunk-size CRLF”封装到一独立IP数据包中。
上述技术方案中,所述将所述编码块的“CRLF chunk-size CRLF”封装到IP数据包中包括:将所述编码块的“CRLF chunk-size CRLF”封装到前一个IP数据包中。
上述技术方案中,所述IP数据包长度不大于最大传输单元。
本发明还提供了一种HTTP chunked编码和IP包解析方法,包括:
接收端接收采用所述HTTP chunked编码和IP包封装方法得到的IP数据包;
将所得到的第一个IP数据包的载荷解析为HTTP响应头部,对于后续IP数据包,将载荷大于188字节的IP数据包解析为所要传输的TS数据,将载荷不大于188字节而且以字符串“CRLF0CRLF”开头的IP数据包解析为传输结束。
本发明的优点在于:
采用本发明的方法能够提高采用HTTP chunked编码传输数据的解析效率,提高媒体处理相关设备的整体性能。
附图说明
图1是本发明的IP包封装过程的交互流程图;
图2是本发明的IP包解析方法的流程图。
具体实施方式
现结合附图对本发明作进一步的描述。
对TS数据的传输包括IP包封装与IP包解析两个阶段,下面分别予以说明。
对TS数据的IP包封装在发送端完成,在IP包封装过程中,采用了特定的HTTP chunked编码方式,参考图1,包括以下步骤:
步骤101)、接收端向发送端发送HTTP请求;
步骤102)、发送端将HTTP响应头部封装到第一个IP数据包中,并发送到接收 端,然后将所要传输的TS数据按照188字节的整数倍封装到若干编码块(chunk)中;所述IP数据包指TCP载荷不为空的IP包;
步骤103)、发送端将字符串“CRLF chunk-size CRLF”封装到独立IP数据包中,并发送到接收端;
步骤104)、发送端将传输数据块(chunk-data)按照188字节的整数倍进行切分,将切分后的结果分别封装到若干个IP数据包中,然后依次发送出去;所述IP数据包长度不大于MTU(最大传输单元);
例如,9400字节的chunk-data被封装到8个IP数据包中,前7个IP数据包载荷分配为1316(7*188)字节,第8个IP数据包载荷为188字节。
步骤105)、发送端重复执行步骤103)和步骤104),直到步骤102)中封装得到的编码块都发送完毕,最后将字符串“CRLF0CRLF”封装到一IP数据包中,并发送。
在上述描述的步骤103)中,所述字符串“CRLF chunk-size CRLF”封装到一独立IP数据包中。作为一种优选方式,为了减少发送端发送IP数据包的个数,上一个IP数据包可捎带下一个“CRLF chunk-size CRLF”。例如,2632字节的TS数据封装为两个chunk-data,第一个chunk-data为1316字节,第二个chunk-data为1316字节,至少存在2种捎带方案:
第一种方案:发送端第1个IP数据包载荷为HTTP响应头部,第2个IP数据包载荷为“CRLF524CRLF”,第3个IP数据包为1316字节TS数据捎带“CRLF524CRLF”,第4个IP数据包为1316字节TS数据捎带“CRLF0CRLF CRLF”;
第二种方案:发送端第1个IP数据包载荷为HTTP响应头部捎带“CRLF524CRLF”,第2个IP数据包为1316字节TS数据捎带“CRLF524CRLF”,第3个IP数据包为1316字节TS数据捎带“CRLF0CRLF CRLF”。
对IP包封装解析在接收端完成,参考图2,包括以下步骤:
步骤201)、接收端接收IP数据包;
步骤202)、判断所接收的IP数据包是否为第一个IP数据包,若是,将该IP数据包解析为HTTP响应的头部,然后重新执行步骤201),否则,执行下一步;
步骤203)、判断所接收IP数据包的载荷是否大于188字节,若是,将该IP数据包解析为TS数据,然后重新执行步骤201),否则,执行下一步;
步骤204)、判断所接收IP数据包是否以字符串“CRLF0CRLF”开头,若是,解析为数据传输结束,否则,丢弃该IP数据包,然后重新执行步骤201)。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。尽管参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。
Claims (5)
1.一种HTTP chunked编码和IP包封装方法,包括:
发送端将HTTP响应头部封装到第一个IP数据包中;
将所要传输的TS数据按照188字节的整数倍封装到若干编码块中,对任一所述编码块,将所述编码块的“CRLF chunk-size CRLF”封装到IP数据包中,将所述编码块的“chunk-data”根据需要按照188字节的整数倍进行切分并将切分后的结果分别封装到若干个IP数据包中。
2.根据权利要求1所述的HTTP chunked编码和IP包封装方法,其特征在于,所述将所述编码块的“CRLF chunk-size CRLF”封装到IP数据包中包括:将所述编码块的“CRLF chunk-size CRLF”封装到一独立IP数据包中。
3.根据权利要求1所述的HTTP chunked编码和IP包封装方法,其特征在于,所述将所述编码块的“CRLF chunk-size CRLF”封装到IP数据包中包括:将所述编码块的“CRLF chunk-size CRLF”封装到前一个IP数据包中。
4.根据权利要求1所述的HTTP chunked编码和IP包封装方法,其特征在于,所述IP数据包长度不大于最大传输单元。
5.一种HTTP chunked编码和IP包解析方法,包括:
接收端接收采用权利要求1-4之一所述方法得到的IP数据包;
将所得到的第一个IP数据包的载荷解析为HTTP响应头部,对于后续IP数据包,将载荷大于188字节的IP数据包解析为所要传输的TS数据,将载荷不大于188字节而且以字符串“CRLF0CRLF”开头的IP数据包解析为传输结束。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410010554.XA CN104780182B (zh) | 2014-01-09 | 2014-01-09 | HTTP chunked编码和IP包封装、解析方法 |
PCT/CN2014/081425 WO2015103856A1 (zh) | 2014-01-09 | 2014-07-01 | HTTP chunked编码和IP包封装、解析方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410010554.XA CN104780182B (zh) | 2014-01-09 | 2014-01-09 | HTTP chunked编码和IP包封装、解析方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104780182A true CN104780182A (zh) | 2015-07-15 |
CN104780182B CN104780182B (zh) | 2018-05-22 |
Family
ID=53523510
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410010554.XA Expired - Fee Related CN104780182B (zh) | 2014-01-09 | 2014-01-09 | HTTP chunked编码和IP包封装、解析方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN104780182B (zh) |
WO (1) | WO2015103856A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108270740A (zh) * | 2016-12-30 | 2018-07-10 | 上海华讯网络系统有限公司 | 对含有多路视频流的视频会议的直播系统和方法 |
CN112187858A (zh) * | 2020-08-24 | 2021-01-05 | 浙江百应科技有限公司 | 一种匹配管线式http请求与响应的方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101345595A (zh) * | 2008-08-26 | 2009-01-14 | 国家广播电影电视总局广播科学研究院 | 一种基于广播信道传输内容标引的系统及方法 |
CN102752320A (zh) * | 2012-08-03 | 2012-10-24 | 北京光泽时代通信技术有限公司 | 一种代理服务器主动压缩方法及代理服务器 |
CN102821311A (zh) * | 2012-05-30 | 2012-12-12 | 浙江宇视科技有限公司 | 一种视频数据包优先级设置方法和装置 |
-
2014
- 2014-01-09 CN CN201410010554.XA patent/CN104780182B/zh not_active Expired - Fee Related
- 2014-07-01 WO PCT/CN2014/081425 patent/WO2015103856A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101345595A (zh) * | 2008-08-26 | 2009-01-14 | 国家广播电影电视总局广播科学研究院 | 一种基于广播信道传输内容标引的系统及方法 |
CN102821311A (zh) * | 2012-05-30 | 2012-12-12 | 浙江宇视科技有限公司 | 一种视频数据包优先级设置方法和装置 |
CN102752320A (zh) * | 2012-08-03 | 2012-10-24 | 北京光泽时代通信技术有限公司 | 一种代理服务器主动压缩方法及代理服务器 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108270740A (zh) * | 2016-12-30 | 2018-07-10 | 上海华讯网络系统有限公司 | 对含有多路视频流的视频会议的直播系统和方法 |
CN112187858A (zh) * | 2020-08-24 | 2021-01-05 | 浙江百应科技有限公司 | 一种匹配管线式http请求与响应的方法 |
CN112187858B (zh) * | 2020-08-24 | 2023-04-18 | 浙江百应科技有限公司 | 一种匹配管线式http请求与响应的方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2015103856A1 (zh) | 2015-07-16 |
CN104780182B (zh) | 2018-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11553066B2 (en) | Apparatus for transmitting broadcast signal, apparatus for receiving broadcast signal, method for transmitting broadcast signal and method for receiving broadcast signal | |
CN101674315B (zh) | 一种时间戳压缩、解压缩的方法及装置 | |
CN101350812B (zh) | 一种数据的传输方法、通信设备及通信系统 | |
FI123499B (fi) | Menetelmä ja laite viestien prosessoimiseksi | |
TW202002712A (zh) | 待配網設備存取網路熱點設備的方法和裝置 | |
CN105656774B (zh) | 一种网络实时视频会话媒体数据多径混合冗余传输方法 | |
CN103973645A (zh) | 一种数据传输方法和相关装置 | |
CN102882879A (zh) | 一种适用于卫星信道的ip数据压缩传输方法 | |
CN101459654A (zh) | 一种多协议业务数据封装解析方法、接收端和发送端 | |
CN102523119A (zh) | 基于snmp协议的epon网管系统数据传输方法 | |
CN104270594B (zh) | 数据包发送与接收的方法及设备 | |
US20150071307A1 (en) | Communication interface and method for robust header compression of data flows | |
CN104320416A (zh) | 对实时传输协议数据进行打包的方法及装置 | |
CN101814973B (zh) | 一种基于amr音频帧的rtp快速聚包方法 | |
CN101534291A (zh) | Ip报文的发送、接收的方法及装置 | |
CN104780182A (zh) | HTTP chunked编码和IP包封装、解析方法 | |
CN104811265A (zh) | 基带帧的封装方法及解封装方法 | |
CN104216958A (zh) | 基于结构化数据的传输方法及装置 | |
CN109391605B (zh) | 数据传输方法、装置及系统 | |
CN101505420B (zh) | 一种视频压缩数据的封装方法 | |
CN102118791A (zh) | 一种传输数据包的方法及装置 | |
WO2015101152A1 (zh) | 基于dfa的http分块传输编码的传输载荷提取方法 | |
CN105262970B (zh) | 一种基于图像数据的封装方法及系统 | |
CN107517202B (zh) | 一种sip信令的二进制化发送和接收方法 | |
WO2010009652A1 (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20180522 |