DVB-S/S2信道中网页内容的盲提取方法研究

2017-06-05 15:01邸晨旭
无线电工程 2017年6期
关键词:码流基带计数器

邸晨旭

(中国电子科技集团公司第五十四研究所,河北 石家庄050081)

DVB-S/S2信道中网页内容的盲提取方法研究

邸晨旭

(中国电子科技集团公司第五十四研究所,河北 石家庄050081)

卫星宽带互联网业务中常用DVB-S/S2信道传输IP业务,基于卫星互联网的内容监管的需要,提出一种从DVB-S/S2信道中盲提取网页内容的方法。对解调后码流类型进行盲识别并完成传输流(TS)和通用流(GS)的同步,对其IP报文封装协议类型进行盲识别并提取IP数据,对IP数据中HTTP会话进行识别,并设计了容错算法通过会话的单向数据流提取其传输的网页内容。对实际卫星信号的测试结果表明,该方法能够有效地从DVB-S/S2信道中提取出网页内容。

卫星宽带互联网;DVB-S;DVB-S2;盲提取

0 引言

DVB-S[1]和DVB-S2[2]标准作为卫星数字视频广播标准,目前广泛应用于卫星广播通信系统中。基于DVB 标准的宽带卫星通信系统,系统的前向链路采用DVB-S/S2 标准、TDM[3]的工作方式;返向链路采用DVB-RCS[4]标准、MF-TDMA[5]的工作方式[6]。随着IP 技术的发展,地面通信网络几乎所有的网络设备和终端都支持TCP/IP 协议[7]。数字视频广播的因特网协议(Internet Protocol over Digital Video Broadcasting,IP over DVB)技术以其对数据广播、组播业务的良好支持,目前已广泛应用于远程教育、宽带数据广播等领域[8]。随着网络技术的发展,互联网已经深入到社会各个角落,内容安全已经成为当前互联网网络安全中最重要的议题之一[9]。文献[10-13]采用通过在局域网结点进行数据抓包方法对网内用户浏览的内容进行提取。卫星信号的非合作接收条件下,采用的IP封装的各层协议格式不同,并且通常只能接收到网络会话中一个方向的数据流,传统的网络内容提取方法并不适用。本文针对DVB-S/S2信道非合作接收条件,设计了一种能够自动识别并解析码流获得IP报文的方法,并设计了一种容错算法对IP报文中的HTTP会话的单向流进行重组提取网页内容的方法。

1 DVB-S/S2码流类型盲识别

1.1 DVB-S/S2码流分析

DVB码流主要分为传输流(TS)和通用流(GS)2种。TS流是帧长为188 Byte,且每帧第1个Byte为“0x47”。GS流没有固定的格式,按连续流处理。在DVB-S标准中,封装的数据流只能是TS流,而在DVB-S2标准中,扩充了GS流的支持。对于DVB-S信号,经过解调、纠错和解扰后的码流即为TS流。对于DVB-S2信号过解调、纠错和解扰后的码流是基带帧(BB-Frame)格式,如图1 所示[2]。

图1 DVB-S2标准中TS流与GS流的封装方法

基带帧由80 bit的头部和数据域组成。头部指示了数据域的封装格式,包括图1中5个域和1 Byte的CRC-8校验,CRC-8校验对头部前9个Byte进行校验。其中,MATYPE 域表示输入流的格式,调制类型以及传输的滚降系数。MATYPE 的首个Byte的前2个bit为用来指示数据域的流类型,即是TS流还是GS流。DFL表示基带帧数据域总长度,单位为bit。

当采用TS流传输时,UPL表示用户包长度,单位为bit,为1 504 bit(188 Byte)。TS流在封装成基带帧时,将同步字节“0x47”提取出来写入SYNC字段中,而原来同步字节的位置,被替换成该188 Byte的TS数据包的CRC-8校验。在解析的时候,应当采用相反的步骤,对每个数据包进行CRC-8校验,输出校验通过的数据包并将校验位替换成“0x47”。SYNCD表示基带帧数据域起始位置,即到该基带帧首个用户包的距离,SYNCD值为65 535时,表示基带帧数据域为空。

当采用GS流传输时,仅DFL有效,表示基带帧数据域总长度,单位为bit。

1.2 TS流盲识别与同步

TS流是由188 Byte的等长帧组成,且首位为同步字节,值为0x47,对TS流输出进行盲识别关键在于判断码流是否存在以188 Byte为间隔的值为0x47的Byte。在工程实践中,传输过程中存在Byte丢失、错误等情况,需要连续缓存多个帧才可以判断和同步TS流,这样需要较大的内存开销。由于码流通常是串行输入,提出了一种状态转移的TS流同步方法。该方法仅需要保留1个状态变量、1个计数器和1 Byte的输入缓存即可完成TS流盲识别与同步。

数据输入时,初始状态为状态1(失锁)。

状态1(失锁):如果输入Byte为0x47,设置计数器为N*188(N为判定TS流同步需要的连续同步帧数),转移到状态2,否则保持在状态1。

状态2(同步中):每输入1 Byte,计数器减1。如果计数器为188的整数倍,判断输入Byte是否为0x47,如果不是,转移到状态1,否则再判断计数器是否为0,如果是,计数器设置为188,转移到状态3,否则保持在状态2。

状态3(锁定):每输入1 Byte,计数器减1。如果计数器为0且输入Byte是不为0x47,转移到状态1,否则保持在状态3。该状态表示码流已经锁定。

算法所同步出的TS流,圈定的为同步字节0x47,如图2所示。

图2 TS流同步结果

1.3 GS流盲识别与同步

GS流的输出通常是保留了基带帧头的部分,方便数据的同步和解析。GS流是由不等长帧组成,在每个帧头的DFL域指示了帧长。识别与同步GS流首先要找到一个10 Byte的序列满足CRC-8校验,并认为其为BB-Header,并根据DFL的长度跳过数据域,然后判断下一个10 Byte是否满足CRC-8校验,连续同步N帧即为锁定。同样采用状态转移的GS流的同步方法来解决GS流的盲识别与同步。不同于TS流的处理方法,需要一个10 Byte的FIFO来作为CRC-8校验和解析DFL值。并且设置2个计数器,Byte计数器用于统计当前帧的位置,帧计数器用于统计连续同步的帧数量。

数据输入时,初始状态为状态1(失锁)。

状态1(失锁):每输入1 Byte,将该Byte写入FIFO,若FIFO中的10 Byte的CRC-8校验通过,设置Byte计数器为DFL/8,帧计数器为N(N为判定TS流同步需要的连续同步帧数),转移到状态2,否则保持在状态1。

状态2(同步中):每输入1 Byte,将该Byte写入FIFO,Byte计数器减1。如果Byte计数器为0,判断FIFO中的10 Byte CRC-8校验通过,如果不是,转移到状态1,否则帧计数器减1。再判断帧计数器是否为0,如果是,Byte计数器设置DFL/8,转移到状态3,否则保持在状态2。

状态3(锁定):每输入1 Byte,将该Byte写入FIFO,Byte计数器减1。如果Byte计数器为0,若FIFO中的10 Byte CRC-8校验不通过,转移到状态1,否则保持在状态3。该状态表示码流已经锁定。

该算法对GS流的同步效果示意如图3所示。被圈定的Byte为BB-Header。

图3 GS流同步结果

2 IP报文封装协议盲识别与提取

2.1 多协议封装(MPE)

MPE[14]是将IP报文封装在TS流中的一种协议,于1996年首次被提出,自此成为DVB-S中传输IP数据普遍接受并使用的标准。MPE封装方式将一个IP报文封装到TS流的程序特殊信息(PSI)表中。该PSI表的table_id通常为0x3e。采用MPE封装的PSI表,表头扩展为MPE头,并且在采用CRC-32校验。多协议封装示意如图4所示。

图4 多协议封装示意

判断DVB码流是否包含MPE封装的IP报文,主要利用PSI表头是否为0x3e以及CRC-32校验,和最后提取出来的IP报文的头部是否通过IP头校验算法来确认,如图5 所示。最后将通过校验的IP报文输出。

图5 MPE封装IP报文的识别与提取

2.2 轻量封装(ULE)

ULE[15]提供了一种简单的在TS流中封装IP数据包的机制,该方法于2005年12月被IETF采用为RFC标准。该封装方法对IP报文作为PDU仅增加一个很小的头部。最小ULE头部仅有4个Byte,包含目的地址缺省域、长度域和类型域。判断与解析采用ULE封装的IP数据时,仅需要解析ULE头并判断IP报头是否校验通过即可。目前卫星信号采用该协议的较少,尚未有实际数据。

2.3 通用流封装(GSE)

在GS流中,通常可见的是GSE封装[16]。GSE封装采用了不定长帧,协议规定了 IP数据可以封装在1个或多个GSE包中,一个基带帧又可以包含1个或者多个GSE包,如图6 所示。

图6 GSE封装示意

GSE包头包含了每个GSE包长度,以及该GSE包是否包含一个独立的IP报文,或者包含某个IP报文的起始段、中间段和结束段的标志。根据GSE头,或者拼接恢复由多个GSE包组成的IP报文。最后输出校验通过的IP报文。

3 网页内容的提取算法

3.1 TCP单向流重组算法

IP报文中网页内容通常是采用HTTP协议传输,而HTTP又是基于TCP协议。所以要恢复IP报文中网页内容,必须先对IP报文进行TCP流重组。要进行TCP流重组,首先要根据源地址、目的地址、源端口和目的端口对IP报文进行索引,将上述4个字段相同的IP报文放入相同的处理缓存中,再对不同的处理缓存进行TCP数据的重组,最终得到完整正确的TCP流。

由于TCP协议是面向连接的,计算机双方通信必须先建立连接,然后数据传送,最后将连续关闭。在建立和关闭连接时,采用3次握手方法,数据传送时采用传送与确认的方法进行对话。

DVB信道通常接收到的IP数据仅是TCP对话的一个方向的数据,仅能接收到发送的数据和发送确认ACK之一。对于仅接收到ACK的情况,因为没有实际数据接收到,所以可以跳过此类对话。所以仅需要考虑只收到发送数据而无法收到ACK的情况。

在TCP的数据传输过程中,会出现和重传与乱序的情况。如果在重传超时时间内没有收到接收方主机对某数据包的确认回复,发送方主机就认为此数据包丢失,并再次发送这个数据包给接收方,这称为TCP重传。数据包在网络中沿着不同的路径进行传输,先从发送端发出的数据包不一定先到达接收端,从而出现乱序的情况。在非合作接收DVB数据的情况下,会出现误码导致丢包的情况,这种情况下又会出现接收TCP报文丢失的情况。

为了解决接收TCP数据乱序、重传和丢包的问题,需要为每一个对话开辟接收缓存,采用类似于TCP协议中实现流量控制和拥塞控制的滑动窗口技术。可以先接收先收到的后续数据,而不必等待当前数据分组。这种机制提高了数据处理的吞吐量,无需对输入数据回溯。

类滑动窗口机制对数据流按Byte为单位编号。窗口的大小代表了接收缓存的大小。在接收端保留了2个指针分别指向了滑动窗口的两端,如图7 所示。最左边的指针是窗口左边界,是已接收到的数据分组,最右边的指针是窗口的右边界,指向允许接收的最大数据分组。随着数据的接收,窗口从左向右滑动。当接收到了大于窗口右边界的数据时,说明窗口左边界数据接收超时,窗口将右边界滑动到该位置,丢弃窗口左边界尚未接收到的数据。

图7 滑动窗口非合作接收TCP数据

3.2 HTTP网页内容盲识别与提取算法

在拼接好的TCP数据流之后,需要判断该TCP对话传输的内容是否为HTTP网页,并且将HTTP传输的网页内容进行存储。

一个完整的HTTP对话通常包含请求消息与应答消息,每个消息包含请求或应答行、头域和消息体3个部分。网页内容通常存在于应答消息中,一个典型的HTTP应答消息如图8 所示。

图8 HTTP应答消息

其中HTTP应答报文中的首行叫做状态行,其状态代码表示服务器对请求做出响应的状态是否成功。状态码由3位数字构成,3位数字的首位表示响应的类型,分别是:1(通知信息),2(成功),3(重定向),4(客户端错误)和5(服务器端错误)。HTTP网页内容通常在应答消息部分,而且包含网页内容的状态代码应该为2xx(成功),所以恢复网页内容首先要在TCP流中筛选出该部分,即符合“HTTP/X.X 2XX OK ”字串开头的部分,并将该消息的消息体保存为文件。

状态行之后是HTTP应答头域,其中比较重要的字段是Content-Length表示消息体长度,Content-Type表示消息体的内容类型,保存消息体内容为文件时,需要根据其设置文件扩展名。

若服务器对WEB信息进行了压缩,会在报文头部增加Content-Encoding字段,其值为gzip或者deflate(由于HTTP压缩特性为可选项,不使用HTTP编码时,报文头部不会加入该字段)[11]。这时HTTP消息的内容还未经过解压,是一段编码过的内容,无法呈现给用户。所以,需要对经过HTTP压缩的内容解压缩。HTTP压缩使用的是通用的压缩算法gzip和deflate,经过对数据的解压缩、校验,然后再转存成文件呈现给用户。

3.3 实验结果

从实际接收到卫星DVB-S/S2信道中恢复的IP报文和网页图片如图9和图10所示。实验说明该方法能够有效地从DVB-S/S2信道中提取网页内容。

图9 恢复的IP报文

图10 恢复的网页图片

4 结束语

本文提出了一种从DVB-S/S2信道提取出IP报文并且恢复其中网页内容的方法。该方法可以自动识别并同步TS流和GS流的输入,然后识别不同的封装协议格式并提取IP数据,并提出了一种适应卫星非合作接收情况下的TCP单向流重组算法,解决接收数据乱序、重传和丢包的情况,最后恢复其中网页的内容并保存成文件,并结合卫星实际信号进行了实验。结果表明该方法能够有效地从DVB-S/S2信道提取网页内容。

[1] ETSIEN 300 421 V1.1.2(1997-08).Digital Video Broadcasting(DVB):Framing Structure,Channel Coding and Modulation for 11/12 GHz Satellite Services[S].

[2] ETSI EN 302 307 V1.2.1(2009-08).Digital Video Broadcasting (DVB):Second Generation Framing Structure,Channel Coding and Modulation Systems for Broadcasting,Interactive Services,News Gathering and Other Broadband Satellite Applications[S].

[3] 刘 欣,潘亚汉,韩 超,等.DVB-RCS 技术及其在航空卫星宽带通信中的应用[J].电子质量,2012(5):18-20.[4] ETSI EN 301 790 V1.5.1(2009-05).Digital Video Broadcasting(DVB):Interaction Channel for Satellite Distribution Systems[S].

[5] 汪春霆,张俊祥,潘申富,等.卫星通信系统[M].北京:国防工业出版社,2012.

[6] 戈 静,潘申富.DVB-S2前向链路传输能力评估[J].无线电通信技术,2015,41(2):32-34.

[7] 郄绍辉,杨 佳.基于IP的卫星通信终端设计与实现[J].无线电通信技术,2013,39(3):93-96.

[8] 栗志意,赵建国,晏 坚.IP over DVB封装技术效率分析[J].清华大学学报(自然科学版),2009(8):1 126-1 130.

[9] 赵仲孟,陈 剑,张选平,等.网络内容安全分析与对策[J].计算机工程,2002(5):41-43.

[10] 谭敏生,汤 亮.基于HTTP的网络数据包还原技术研究[J].计算机技术与发展,2007(6):176-178.

[11] 王俊涵.高效网络内容还原系统的设计与实现[D].长沙:湖南大学,2010.

[12] 陈 淼.基于数据包分析的网页还原技术研究[J].中国科技信息,2011(16):77.

[13] 周林云.Web信息采集系统设计与实现[D].成都:西南交通大学,2013.

[14] ETSI EN 301 192V1.5.1(2009-11).Digital Video Broadcasting(DVB):Specification for Data Broadcasting[S].

[15] RFC 4326(2005).Unidirectional Lightweight Encapsulation (ULE)for Transmission of IP Datagram over an MPEG-2 Transport Stream[S].

[16] ETSI TS 102 606 V1.1.1(2007).Digital Video Broadcasting (DVB):Generic Stream Encapsulation(GSE)Protocol[S].

Research on Blind Extraction Method of Web Content inDVB-S/S2 Channel

DI Chen-xu

(The54thResearchInstituteofCETC,ShijiazhuangHebei050081,China)

In satellite broadband Internet service,DVB-S/S2 channel is used to transmit IP service.A method of blind extracting the content of the web page from the DVB-S/S2 channel is proposed based on the satellite Internet content supervision.Firstly,the type of the demodulated stream is blindly identified.And the Transport Stream(TS)and the Generic Stream(GS)are synchronized.Then,the IP packet encapsulation protocol type is blindly identified and IP data is extracted.Finally,a fault-tolerant algorithm is designed to extract the content of the web page from the single data stream of HTTP session.Test results of the real satellite signal show that the method can effectively extract the content of the web page from the DVB-S/S2 channel.

satellite broadband Internet service;DVB-S;DVB-S2;blind extraction

2017-03-06

通信网信息传输与分发技术重点实验室基金资助项目(2016YFB0800300)。

10.3969/j.issn.1003-3106.2017.06.01

邸晨旭.DVB-S/S2信道中网页内容的盲提取方法研究[J].无线电工程,2017,47(6):1-5.[DI Chenxu.Research on Blind Extraction Method of Web Content in DVB-S/S2 Channel[J]. Radio Engineering,2017,47(6):1-5.]

TN911

A

1003-3106(2017)06-0001-05

邸晨旭 男,(1986—),工程师。主要研究方向:通信信号分析。

猜你喜欢
码流基带计数器
采用虚拟计数器的电子式膜式燃气表
数字电视TS码流协议简要分析
Ag元素对Ni-7at.%W合金基带织构形成的影响
关于74LS90计数器的Multisim仿真分析
高清网络摄像机图像延迟分析及解决方案
苹果推出自研基带芯片要过几道坎?
苹果10亿美元为5G买“芯”
SR620型与53230A型计数器的性能测试
算盘是个“小气鬼”
一种比较ASN.1码流差异的方法