对DVB多协议封装中的IP数据的分析

目前卫星传送的信号不仅有常用的音视频信号,有其他可能含有关键信息的信号,在这些信息的获取过程中对DVB传送的IP数据进行分析有着重要的意义。本文首先对DVB数据广播的方式进行了概述,然后对多协议封装的原理进行了说明,最后结合实例说明了这种封装模式的应用,说明了信息获取的方法。

1 引言

当前,DVB的应用已经十分普及,尤其是用于传送广播电视节目的设备几乎已经遍布各地,这为应用DVB标准传达其他格式的数据提供了硬件基础。而DVB标准地其传送的数据包载荷的具体内容并没有进行具体规定,这种开放性使得他成为多种格式数据的载体,除了广播和电视节目外,也可用来完成数据检索、邮件服务、视频会议、远程教育、电子商务、电子收费、远程医疗等业务。而军用信息的传送对信息获取有更大的价值。

2 DVB数据广播协议结构模型

DVB(Digital Video Broadcast)系统提供了在各种不同的传输媒介传送MPEG传输流的手段,这些传输流一般都包含MPEG-2音视频内容。这种传送音视频节目是应用得最多也最成熟的,在边远地区提供了方便的低成本的接入方式,尤其是在"村村通"工程中发挥了巨大的作用。而以IP数据为主的数据传送业务是对基于DVB传输标准MPEG-2的重要扩展。在IP数据包中又可以封装网页、邮件、语音等多种数据。针对不同的应用需求,DVB规定了6种业务模式:数据管道(data piping)、数据流(data streaming)、多协议封装(Multi-protocol encapsulation,MPE)、数据轮放(data carousels),对象轮放(data carousels)和用户定义服务(registered service)。而对应于这6种业务模式有相应的传输规范,构成了DVB数据广播协议结构模型。这些方式有不同的应用条件,其中的多协议封装一般被用来传送其他各式的数据,实际中用得较多的是传送IP数据。这些数据在传送时候被封装成封装成数据包。

DVB标准的数据包的格式分为基于TS包、基于PES包和基于MPEG-2数据片3种格式。其中基于TS包格式,其固定长度为188 B,基于么有数据机制,数据管道采用这种方式;基于PES包格式是MPEG-2提供的一种长度可变的打包方式,最大包长为64 kB,提供数据流精确同步机制,所以DVB多选择PES用于同步和被同步的码流传输。基于MPEG-2数据片也是长度可变的打包方式,最大包长为4 kB,多协议封装和轮放采用这种打包方式。

3 多协议封装

多协议封装规范支持在DVB信道上传输符合其他通信协议的数据,他针对IP包进行了优化,也可用于传输其他网络协议的数据。利用DVB多协议封装可以实现单点广播(数据包发给单一接收者)、多点广播(发给一组接收者)、广播(发给所有接收者)。 一个数据片可以包含许多具有同一个PID的MPEG包。在MPEG包的净荷中,报文依次紧凑排列。这就需要利用图1中NMP字节来指示下一个报文的起始位置。如果该字节的值不为零,净荷单元起始位将被后移,后移的位置由该字节的值说明,如果该字节的值为0,即十六进制的0x00,说明其后紧接着的就是MPE包。MPE包包括MPE包头和MPE负载,MPE包头为12个字节,一般以"3E"开始。MPE负载又包括IP包头和IP包负载,IP包头为20个字节。IP包负载一般由TCP/UDP包头和TCP/UDP包负载组成,IP包头中第十个字节指明了所用的传输层的协议是TCP还是UDP等,其他各字节含义将在后面说明。这种嵌套方式的数据封装格式如图1所示。

表1是MPE包头的部分字段,table_id的值一般为3E,说明MPE报的开始。section_syntax_indicator置"1"说明使用CRC校验,privator_indicator置"0",resetved置"11",section_length说明该MPE报的长度,包括CRC校验的4个字节。MAC_address_6是目的MAC地址的最低字节,目的MAC地址共六个字节,依次是MAC_address_1到MAC_address_6,分别对应于MAC的六个字节。payload_scrambhng_control和address_scrambling_control分别定义负载和MAC地址的加密模式,他们的值为"0X00"时说明负载没有加密,MAC地址也没有加密。

IP协议是网络层的协议,在网络层上的运输层中的协议有TCP、UDP等,如图2所示。具体的协议类型在IP包头的"协议"字段即第十个字节,该字段说明使用何种类型的传输层协议。当他的值为"0x06"时说明传输层使用的是TCP协议;当他的值为"0x11"时说明传输层使用的是UDP协议。而TCP协议和UDP协议又分别对应于具体的应用层协议,如TCP协议常对应于应用层的SMTP,HTTP,TELNET等协议,而UDP协议常对应于应用层的DNS,RIP等协议。该字段在对收到的卫星数据进行分类接收并还原的过程中非常重要。IP包和TCP包的解析按各自的封装格式进行,在他们的包头中指明了发送方和接收方的IP地址、段长度、包头长度、协议类型、发送方和接收方端口号、数据偏移等。具体字节含义可在相关协议中查看。

下面对一段多协议封装的IP数据进行分析。数据首先要从DVB信道中进行采集,由于目前常用的DVB信号的符码率可达到90 Mb/s,所以需要使用高速的数据采集设备才能采到完整的连续的数据包。采集下来的数据在保存的过程中数据也不能有丢失或错误,这样才能保证分析的正确。

下面结合实际数据进行分析。采集下来的数据需要使用能对二进制数据进行编辑的软件进行查看和分析。如图3所示,该图是数据分析软件的界面,他显示了MPE数据包的详细内容,其中第一行前面四个字节是MPE数据包的包头,从中可看出,该段数据的PID值为"0x195",第五个字节"0X08"说明该MPE数据片在8个字节后以"3E"开始,其后的"0X041"说明该MPE数据片长度为65。第二行的"47、14、00、76、06、00"是目的MAC从低到高依次排列的6个字节。MPE数据包包头共12个字节。紧接着MPE数据包包头的是20个字节的IP包头,以"0X45"开始,"4"说明是IPv4数据包,"5"说明5个单位共20个字节,"0X00 34"说明该IP包长度为52个字节。IP包头中的第十个字节"0X06"说明该IP包承载的是TCP协议,包头的后十个字节是源地址和目的地址,分别为"4524 FA 09"和"CA AE 9A CB",即69.36.250.09是源IP地址,而202.174.154.203是目的IP地址。紧接着IP包头的是20个字节的TCP包头。首先是各2个字节源端口和目的端口"00 50"和"CD F2",即源端口是80,目的端口是52722,可见源端口是常用的http协议的80端口。然后是各4个字节的发送序号和接收序号"A9 60 A2 48"和"1A C8 C9 60"。TCP包中的第十三个字节中的"8"说明数据偏移为32个字节,即头部结束后还有12个字节才是载荷数据。

图4是一份计数指示从0X14到0X1A的连续的IP数据片,每行设置为显示204个字节,正好为DVB的MPEG传送流的包长,所以每行开始的都是同步字节"7E"。各行第四个字节为连续计数字段,可见他们是同一数据包的不同分段。负载在第一行开始,由第二个字节中的"4"指示。该行第四个字节"00"说明从其后第一个字节开始就是MPE数据片,以"3E"开始的12个字节为MPE包头,其中"5E9"指示数据片长度为0x5E9,即1513。网卡地址为00D0D73003D7。紧接着的是IP包,以"45 00"开始。

图5是一段含有用户登录文本信息的IP数据片,负载字段记录有用户登录的日期、服务器名、数据长度等信息。在卫星DVB信号中承载的多种数据如邮件、图片等等业务都可以从负载中提取出来。

4 结 语

本文结合DVB多协议封装的EN300468协议对数据封装的格式进行了详细分析,并针对负载的具体类型结合IP协议、TCP协议、UDP协议对具体数据进行了逐字段的分析,最后得到了可用于提取关键信息的数据。这些数据在DVB的传送流中都是以二进制形式连续存在的,在实际工作中要想获取负载中的有用的信息必须采用逐层剥离的方法用软件来自动实现。这种方法在卫星DVB数据承载的多业务数据的自动接收和分类等工作中是非常重要的。

作者:高毫林,黄焱

(解放军信息工程大学 信息工程学院 河南 郑州 450002)

来源:《现代电子技术》


微信扫描分享本文到朋友圈
扫码关注5G通信官方公众号,免费领取以下5G精品资料

本周热点本月热点

 

  最热通信招聘

  最新招聘信息

最新技术文章

最新论坛贴子