组播数据的传输处理方法及装置与流程

文档序号:20162664发布日期:2020-03-24 21:10阅读:337来源:国知局
组播数据的传输处理方法及装置与流程

本发明涉及组播技术领域,具体而言,涉及一种组播数据的传输处理方法及装置。



背景技术:

通常的酒店数字电视前端系统中的卫星接收转ip部分采用的都是卫星接收机或多媒体服务器形式的专用设备,价格不菲。为了能够有效的降低成本,引入组播技术能够很好的实现需求,将dth直播的节目ip化,并传输到酒店的各个客房,这个时候对组播数据的处理显得就尤为重要。

现有的组播数据传输采用原始的udp协议进行数据的收发,没有任何的传输控制附着在udp上边。在组播数据传输时,组播的服务器端会创建组播组,然后发送裸数据,客户端加入该组播组,接收数据进行相应的业务处理(本案中是对ts流的播放处理,将裸数据直接注入到播放器去播放),整个过程处理较为简单,安全性较低。



技术实现要素:

本发明为了解决背景技术中的上述技术问题中的至少一个,提出了一种组播数据的传输处理方法及装置。

为了实现上述目的,根据本发明的一个方面,提供了一种组播数据的传输处理方法,该方法包括:

获取对播放数据进行加密和封包生成的组播数据,其中,所述组播数据包括:加密后的播放数据、数据校验字段、秘钥id字段以及加密方案字段;

根据所述数据校验字段对所述组播数据进行验证;

在验证通过后,根据所述加密方案字段确定解密方案,以及根据所述秘钥id字段确定解密秘钥;

根据所述解密方案和所述解密秘钥对所述加密后的播放数据进行解密,得到播放数据。

可选的,该方法还包括:

将所述播放数据发送到本地虚拟网卡,以使播放器从所述本地虚拟网卡获取播放数据并进行播放。

可选的,所述组播数据还包括:秘钥变更字段;

在所述根据所述秘钥id字段确定解密秘钥之前,还包括:

根据所述秘钥变更字段判断解密秘钥是否发生变更;

若是,获取变更后的各秘钥id对应的解密秘钥。

可选的,所述组播数据还包括:秘钥变更字段和数据长度字段;所述数据长度字段记载了所述加密后的播放数据的长度;

所述根据所述数据校验字段对所述组播数据进行验证,具体包括:

根据所述加密后的播放数据、秘钥id字段、加密方案字段、秘钥变更字段和数据长度字段计算出校验码;

将计算出的校验码与所述数据校验字段中的校验码进行对比,以对所述组播数据进行验证。

可选的,所述数据校验字段为crc校验字段,所述crc校验字段中记载了crc校验码。

为了实现上述目的,根据本发明的另一方面,提供了一种组播数据的传输处理装置,该装置包括:

组播数据接收单元,用于获取对播放数据进行加密和封包生成的组播数据,其中,所述组播数据包括:加密后的播放数据、数据校验字段、秘钥id字段以及加密方案字段;

组播数据校验单元,用于根据所述数据校验字段对所述组播数据进行验证;

解密方案及秘钥确定单元,用于在验证通过后,根据所述加密方案字段确定解密方案,以及根据所述秘钥id字段确定解密秘钥;

解密单元,用于根据所述解密方案和所述解密秘钥对所述加密后的播放数据进行解密,得到播放数据。

可选的,该装置还包括:

虚拟播放代理单元,用于将所述播放数据发送到本地虚拟网卡,以使播放器从所述本地虚拟网卡获取播放数据并进行播放。

可选的,所述组播数据还包括:秘钥变更字段;

所述组播数据的传输处理装置,还包括:

秘钥更新单元,用于根据所述秘钥变更字段判断解密秘钥是否发生变更,并在发生变更时获取变更后的各秘钥id对应的解密秘钥。

可选的,所述组播数据还包括:秘钥变更字段和数据长度字段;所述数据长度字段记载了所述加密后的播放数据的长度;

所述组播数据校验单元包括:

校验码计算模块,用于根据所述加密后的播放数据、秘钥id字段、加密方案字段、秘钥变更字段和数据长度字段计算出校验码;

校验码验证模块,用于将计算出的校验码与所述数据校验字段中的校验码进行对比,以对所述组播数据进行验证。

可选的,所述数据校验字段为crc校验字段,所述crc校验字段中记载了crc校验码。

为了实现上述目的,根据本发明的另一方面,还提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述组播数据的传输处理方法中的步骤。

为了实现上述目的,根据本发明的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现上述组播数据的传输处理方法中的步骤。

本发明的有益效果为:本发明实施例通过在组播数据中设置数据校验字段,能够尽可能的确保在udp传输层收到的数据的正确性。此外,本发明通过在组播数据中设置秘钥id字段以及加密方案字段来对播放数据进行加密,防止了数据盗版,而加密方案字段的设置也使本发明的组播数据兼容不同的加解密方案,适用性较好。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:

图1是本发明实施例组播数据的传输处理方法的流程图;

图2是本发明实施例更新秘钥的流程图;

图3是本发明实施例对组播数据进行校验的流程图;

图4是本发明实施例组播数据的传输处理装置的结构框图;

图5是本发明实施例组播数据校验单元的组成结构框图;

图6是本发明可选实施例的组播数据示意图;

图7是本发明可选实施例组播数据传输的示意图;

图8是本发明实施例计算机设备示意图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。

本发明的组播数据的传输处理方法涉及到服务器、客户端以及播放器三者之间交互,如图7所示。服务器用于对播放数据(即图7中的清流)进行加密和封包,然后通过组播私有协议将密文数据(即组播数据)从eth0网卡组播出去。客户端通过eth0网卡接收组播数据,然后对组播数据解包,拿到秘钥之后进行解密,进而将解密出的播放数据转发到本地回环lo(即本地虚拟网卡)上,播放器从lo上拿数据进行播放。

本发明以下实施例将站在客户端的角度阐述本发明的组播数据的传输处理方法是如何实现的。

图1是本发明一可选实施例的组播数据的传输处理方法的流程图,如图1所示,本实施例的组播数据的传输处理方法包括步骤s101至步骤s105。

步骤s101,获取对播放数据进行加密和封包生成的组播数据,其中,所述组播数据包括:加密后的播放数据、数据校验字段、秘钥id字段以及加密方案字段。

在本发明实施例中,服务器用于对播放数据(清流数据)进行加密和封包,然后通过组播私有协议将组播数据从eth0网卡组播出去,客户端通过eth0网卡接收组播数据。在本发明实施例中,本发明对现有的udp协议进行扩展,在现有的udp协议的基础上建立了私有协议,本发明私有协议的格式可以如图6所示。服务器在对播放数据进行加密之后,可以按照如图6所示的私有协议的格式进行封包生成组播数据。

在本发明实施例中,组播数据包括:加密后的播放数据、数据校验字段、秘钥id字段以及加密方案字段。在本发明实施例中,数据校验字段用来校验该字段往后的所有的数据正确性,可选的,数据校验字段可以采用crc校验或者hash校验等方式。在本发明实施例中,秘钥id字段用于标识对加密后的播放数据进行解密的秘钥,每个秘钥id对应一个唯一的秘钥,在确定秘钥id之后就可以确定对应的解密秘钥。在本发明实施例中,加密方案字段用于标识加解密方案,由于现有技术存在多种加解密方案,每个公司采用的加解密方案也不同,通过加密方案字段可以确定出加密后的播放数据采用的是哪种加密方案,进而可以获得对应的解密方案。

步骤s102,根据所述数据校验字段对所述组播数据进行验证。

在本发明实施例中,客户端在接收组播数据后需要然后对组播数据进行解包和解密,以得到播放数据。客户端在进行解包和解密时,首先需要根据数据校验字段用来校验组播数据的数据正确性。在本发明可选实施例中,本步骤可以根据组播数据中数据校验字段(crc字段)往后的所有数据采用现有技术的方法计算出一个校验码,并将计算出的校验码与数据校验字段中记载的校验码进行对比,以此来对组播数据的正确性进行验证。

步骤s103,在验证通过后,根据所述加密方案字段确定解密方案,以及根据所述秘钥id字段确定解密秘钥。

步骤s104,根据所述解密方案和所述解密秘钥对所述加密后的播放数据进行解密,得到播放数据。

步骤s105,将所述播放数据发送到本地虚拟网卡,以使播放器从所述本地虚拟网卡获取播放数据并进行播放。

如图7所示,在本步骤中,客户端将解密出的播放数据转发到本地回环lo(即本地虚拟网卡)上,进而播放器可以从lo上拿播放数据进行播放。本发明通过客户端对组播数据进行解密并将解密出的播放数据转发到本地回环lo上实现了组播代理方案,即无需对播放器进行开发使播放器具有解密能力,播放器可以直接从本地回环lo上获取播放数据,避免了对播放器进行开发产生的高成本。

在本发明可选实施例中,本地回环lo(即本地虚拟网卡)的地址为127.0.0.1。播放器只需要输入udp://@127.0.0.1即可实现播放,播放器会从这个地址上去获取播放数据进行播放。由图7可以看出本发明将客户端解出来的播放数据转发到本地回环lo上,如果不进行转发的话,那么播放器是需要输入udp://@组播地址,这个时候播放器中拿到的数据是密文数据(加密后的播放数据),如果不对数据解密是无法播放的,而这就需要去对播放器进行一部分开发工作。采用本发明的组播代理方案不需要自行修改播放器源码,只需要将传入播放器的地址改为udp://@127.0.0.1即可实现播放。

由本实施例可以看出,本发明通过在组播数据中设置数据校验字段,能够尽可能的确保在udp传输层收到的数据的正确性。此外,本发明通过在组播数据中设置秘钥id字段以及加密方案字段来对播放数据进行加密,防止了数据盗版,而加密方案字段的设置也使本发明的组播数据兼容不同的加解密方案,适用性较好。

在本发明的另一实施例中,在上述实施例的基础上组播数据还包括:秘钥变更字段。秘钥变更字段用来标识解密的秘钥是否发生变化。在本发明的可选实施例中,秘钥变更字段占1个字节,取值范围为0和1,初值为0,当秘钥发生一次变化字段就相应的变为1或者0,以此来标识秘钥是否发生变化。在本发明实施例中,当秘钥发生变化时,需要先获取变更后的各秘钥id对应的解密秘钥。

图2是本发明实施例更新秘钥的流程图,在本发明实施例中,在上述步骤s103的根据所述秘钥id字段确定解密秘钥之前还需要更新秘钥,更新秘钥的流程包括步骤s201和步骤s202。

步骤s201,根据所述秘钥变更字段判断解密秘钥是否发生变更。

步骤s202,若发生变更,获取变更后的各秘钥id对应的解密秘钥。

在本发明的一可选实施例中,各秘钥id对应的解密秘钥可以为列表的形式,即秘钥列表。当秘钥变更字段发生变化时,表示秘钥列表发生了更新,此时需要获取最新的秘钥列表,进而根据本次组播数据中的秘钥id字段从秘钥列表中确定对应的秘钥。

如图6所示,在本发明的另一可选实施例中,本发明的组播数据具体包括:udp包头、数据校验字段(crc32)、秘钥变更字段(key-change)、秘钥id字段(key-id)、加密方案字段(system-id)、数据长度字段(data-length)和加密后的播放数据(data)。数据长度字段记载了加密后的播放数据的数据长度。

crc32(数据校验字段):该字段占4个字节,是用来校验该字段往后的所有的数据正确性的。

key-change(秘钥变更字段):该字段占1个字节,用来标志当前发送的组播数据的秘钥是否有变化,取值范围为0和1,初值为0,秘钥变一次这个字段就相应的变为1或者0。

key-id(秘钥id字段):该字段占用16个字节,用于解密使用,通过该key-id可以找到对应的秘钥去做解密。

system-id(加密方案字段):加密方案标识值,占用16字节,指的是采用哪种加解密方案,例如可以采用现有技术常用的一种加解密方案,该加解密方案的id值定义为0x7374617274696d6573656e6372797074。本发明也可以采用不同的加解密方案并可以灵活的对加解密方案进行更换。

data-length(数据长度字段):加密后的播放数据长度字段,占用2个字节,用来指出后续的加密后的播放数据的数据长度。

data(加密后的播放数据):该部分记载了加密后的播放数据,在本发明中可以采用ts流数据。加密后的播放数据的长度即是data-length。

图3是本发明实施例对组播数据进行校验的流程图,如图3所示,在本发明的可选实施例中,上述步骤s102的根据所述数据校验字段对所述组播数据进行验证,具体包括步骤s301和步骤s302。

步骤s301,根据所述加密后的播放数据、秘钥id字段、加密方案字段、秘钥变更字段和数据长度字段计算出校验码。

步骤s302,将计算出的校验码与所述数据校验字段中的校验码进行对比,以对所述组播数据进行验证。

在本发明可选实施例中,数据校验字段为crc校验字段,所述crc校验字段中记载了crc校验码。在进行crc校验时,上述步骤s301具体为:根据数据长度字段中记载的加密后的播放数据的数据长度、秘钥id字段的长度、加密方案字段的长度、秘钥变更字段的长度以及数据长度字段的长度计算出crc校验码,进而将计算出crc校验码与crc校验字段中的crc校验码进行对比,确对比一致,则验证数据正确。

由以上描述可以看出,本发明的组播数据的传输处理方法至少具有以下有益效果:

1、本发明在udp协议上扩展自己的私有头部,加入了crc校验,能够尽可能的确保在udp传输层收到的数据正确性,system-id的存在可以使该协议兼容不同的加解密方案。

2、本发明在整个传输的过程加入了数据加密来防盗版。

3、客户端只需要集成我们提供的组播代理库就可以实现不修改原生播放器直接播放加密数据流,工作量小,后期维护方便。

需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

基于同一发明构思,本发明实施例还提供了一种组播数据的传输处理装置,可以用于实现上述实施例所描述的组播数据的传输处理方法,如下面的实施例所述。由于组播数据的传输处理装置解决问题的原理与组播数据的传输处理方法相似,因此组播数据的传输处理装置的实施例可以参见组播数据的传输处理方法的实施例,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图4是本发明实施例组播数据的传输处理装置的结构框图,如图4所示,本发明实施例组播数据的传输处理装置包括:组播数据接收单元1、组播数据校验单元2、解密方案及秘钥确定单元3、解密单元4和虚拟播放代理单元5。

组播数据接收单元1,用于获取对播放数据进行加密和封包生成的组播数据,其中,所述组播数据包括:加密后的播放数据、数据校验字段、秘钥id字段以及加密方案字段。

组播数据校验单元2,用于根据所述数据校验字段对所述组播数据进行验证。

解密方案及秘钥确定单元3,用于在验证通过后,根据所述加密方案字段确定解密方案,以及根据所述秘钥id字段确定解密秘钥。

解密单元4,用于根据所述解密方案和所述解密秘钥对所述加密后的播放数据进行解密,得到播放数据。

虚拟播放代理单元5,用于将所述播放数据发送到本地虚拟网卡,以使播放器从所述本地虚拟网卡获取播放数据并进行播放。

在本发明实施例中,所述组播数据还包括:秘钥变更字段。所述组播数据的传输处理装置,还包括:秘钥更新单元,用于根据所述秘钥变更字段判断解密秘钥是否发生变更,并在发生变更时获取变更后的各秘钥id对应的解密秘钥。

在本发明可选实施例中,所述组播数据还包括:数据长度字段,所述数据长度字段记载了所述加密后的播放数据的长度。图5是本发明实施例组播数据校验单元的组成结构框图,如图5所示,在本发明的可选实施例中,组播数据校验单元2包括:校验码计算模块201和校验码验证模块202。

校验码计算模块201,用于根据所述加密后的播放数据、秘钥id字段、加密方案字段、秘钥变更字段和数据长度字段计算出校验码。

校验码验证模块202,用于将计算出的校验码与所述数据校验字段中的校验码进行对比,以对所述组播数据进行验证。

在本发明可选实施例中,所述数据校验字段为crc校验字段,所述crc校验字段中记载了crc校验码。

为了实现上述目的,根据本申请的另一方面,还提供了一种计算机设备。如图8所示,该计算机设备包括存储器、处理器、通信接口以及通信总线,在存储器上存储有可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例方法中的步骤。

处理器可以为中央处理器(centralprocessingunit,cpu)。处理器还可以为其他通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等芯片,或者上述各类芯片的组合。

存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序、非暂态计算机可执行程序以及单元,如本发明上述方法实施例中对应的程序单元。处理器通过运行存储在存储器中的非暂态软件程序、指令以及模块,从而执行处理器的各种功能应用以及作品数据处理,即实现上述方法实施例中的方法。

存储器可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储处理器所创建的数据等。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施例中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

所述一个或者多个单元存储在所述存储器中,当被所述处理器执行时,执行上述实施例中的方法。

上述计算机设备具体细节可以对应参阅上述实施例中对应的相关描述和效果进行理解,此处不再赘述。

为了实现上述目的,根据本申请的另一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序在计算机处理器中执行时实现上述组播数据的传输处理方法中的步骤。本领域技术人员可以理解,实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)、随机存储记忆体(randomaccessmemory,ram)、快闪存储器(flashmemory)、硬盘(harddiskdrive,缩写:hdd)或固态硬盘(solid-statedrive,ssd)等;所述存储介质还可以包括上述种类的存储器的组合。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1