数据广播中协议的研究与数据广播的实现

引言 经过20多年的发展,因特网已成为世界上覆盖面最广、规模最大、信息资源最丰富的计算机信息网络。但是因特网在快速发展的同时,也带来了不少问题,如现有 的因特网主干速率较低,现有的因特网路由器工作方式和吞吐量无法满足因特网日益增长的需求;各ISP之间及其内部网络严重拥挤,忙时分组丢失非常严重,影 响网络传输的效率;现有因特网没有带宽控制和流量控制功能,QoS没有保证。绝大部分用户以电路交换方式经由PSTN低速接入因特网,由于对电路的长期占 用,造成交换机负荷增加,同时还影响普通电话用户的业务。 数据转盘(Data Carousel)协议可解决上述问题,它以DVB的标准形式直接面向应用层提供一个数据传输和控制协议,可以为各种增值业务提供统一的面向应用层的开放 的数据传输平台。通过在服务器端将需要广播的文件经Data Carousel协议转换成TS流并通过ASI板卡经CATV网进行广播的方法,可把有线电视网的广播收听与因特网的信息交互有机地结合起来,实现有线电 视网与因特网在客户端的无缝连接。本系统在实施上不需要对现有的有线电视网进行线路改造,电视用户仅需要购买机顶盒,个人电脑用户仅需要购买一张专用网卡 并安装相应软件即可。与传统的数据广播系统相比,智能系统会给用户带来更方便快捷的网络信息服务,给有线电视服务商提供更大的市场,并且能够在很大程度上 改善因特网上的交互服务质量。 2Data CarouselData Carousel(以下简称DC)通过周期性反复传送转盘的内容,允许服务器在没有回传信道的条件下向用户传送一些指定的数据模块。DVB DC协议的基础是DSM-CC DC。 2.1DSM-CC DC DSM-CC(Digital Storage Media Command and Control)是一个ISO/IEC标准的协议栈,用以提供宽带多媒体业务,它独立于网络传输层。DSM-CC Data Carousal 是DSMCC 用户—网络数据下载协议(DSMCC U-N Download)在广播(Broadcast)环境下的一种应用。它利用以下4条控制消息来实现数据传输: Download Server Initiate(DSI)控制消息:用以传送超组中的组信息。 Download Info Indication(DII)控制信息:用以传送组中的模块信息。 Download Data Block(DDB)数据信息:用以传送分配好的块信息。 Download Cancel 控制信息:用于指定数据传送的结束。 通过这4种消息和一些辅助的描述子,就可以完成文件系统的传送。以图1为例: 图1树型文件系统示例 图1是一个树型文件系统,共有5个文件。其中,一个目录节点对应一个DII消息,一个文件对应着一个模块(Module),一个模块可以划分为若干个 DDB消息发送出去。这样采用DC方式传输,按照递归方法生成的DSI,DII和DDB消息如图2所示。 图2用DC传送树型文件系统的消息结构 对于图1的树型文件系统,我们使用CfileFind递归遍历该目录下的所有文件及子目录,当找到一个数据文件,则将此数据文件作为一个模块 (Module),同时为其分配DII消息, 一个模块可以划分为若干个DDB消息发送出去。另外对于最上层的根目录节点信息,可以在DSI消息中反映出来,也就是说DSI将各DII链接起来。要传送 的数据分装在模块中,不同的模块可盛装不同的数据,不同的模块又可集合在一起,形成以组(Group)为单位的模块组。在Module 和Group 中,用户可根据实际需要传送有关模块或组的信息(通过ModuleInfoByte 和GroupInfoByte,或PrivateDataInfo),这些信息均是以描述符(Descriptor)的形式表现的。 每一个DDB消息的最大字节数为4 066,并且每个模块最多划分为256个DDB,因此一个模块最大容量为4 066×256字节。如果一个文件大于4 066×256字节,则需将一个文件划分成多个Module,用Module_link_descriptor描述子来连接几个Modules。 Group-link的用法与其类似。 Module_link_descriptor() { descriptor_tag; descriptor_length; /* 描述子的长度 */ position; /* 定义模块在链表中的位置 */ module_id;/* 模块id */ }; 下面是用CfileFind递归遍历该目录下的所有文件及子目录的片段程序: CFileFind filefind; BOOL FileNotEnd; while(FileNotEnd) //找到文件夹或文件,则条件为真 { FileNotEnd=filefind.FindNextFile(); CString filepath=filefind.GetFilePath(); CString filename=filefind.GetFileName(); CString fileTitle=filefind.GetFileTitle(); if(filefind.IsDirectory()) //如果是文件夹,则继续递归查找 if( filename!="." && filename!="..") { stack.push(filepath); continue; } else continue; else //找到文件,将文件进行三层封装, 最终封装为tp包,并通过asi卡发送 { PassCurFileName(filepath); …… …… } } 通过DC协议,文件系统就可以封装在这些DII,DSI,DDB消息中,通过传送这些消息,这些消息又被封装在DSM-CC Section中,最终打入MPEG-2 TS包中进行传输。 2.2DSM-CC数据轮的构造 在DVB DC中用到了大量的SI信息和少量的PSI信息,DC工作过程与这些服务信息是密切相关的。在此将其实现结构分为3个模块讨论,如图3所示。 图3数据转盘构造实现结构图 2.2.1消息层 消息层主要解决原始数据的分块、打包、解包和重组等问题,我们分别将文件目录、文件内容分块、打包成DSI,DII和DDB。 2.2.2Section层 这一模块建立在消息模块的基础上,以上一模块的输出作为其输入。它的主要任务是完成从DSM-CC消息结构到Section结构的打包。 Section,Section Producer根据给出的负载数据(DII,DSI,DDB)和通用头信息去构造一个系统或私有的Section,每个Section由Section 头和消息层的有效负载组成。 2.2.3TS流层 这一层包含与TS包生成有关的类,用以实现Section 再到TP包的转换,每个TP包有188个字节,同样是由TP包头和Section层的有效负载构成。 同时需要在发送流中插入一些附加说明信息,即DVB SI Table(PAT,PMT) 和MPEG-2 PSI Table (SDT),以便后续复用器的处理和客户端机顶盒的数据过滤。 将文件系统通过消息层→Section层→TS流层的封装,就可以把网站、文件系统、升级软件等通过广播网高速分发到所有广播用户,实现Web和广播网的 融合,具有创新性。 3结束语 数据转盘协议是一种新的数据广播协议,它直接提供面向应用的数据传输控制和数据传输协议,支持大数据量的应用,是完全开放的数据传输平台。Data Carousel的数据传输方式直接面向应用层,比数据广播标准所规定的其他任何传输方式提供从发送端到接收端的完整解决方案,它广泛应用于远程教育、电 子杂志、广告、Web网页浏览、电子邮件、游戏、远程软件自动升级等应用中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值