移动终端网络传输方法

申请号 CN201510824312.9 申请日 2015-11-24 公开(公告)号 CN105246172A 公开(公告)日 2016-01-13
申请人 成都微讯云通科技有限公司; 发明人 王天宇; 宋雷; 刘爽;
摘要 本 发明 提供了一种移动终端网络传输方法,该方法包括:将移动终端采集的图像进行编码,将地理 位置 数据按照预定义格式进行组织,建立移动终端之间的通信连接,将图像数据和地理位置数据封装RTCP包中以进行网络传输。本发明提出了一种移动终端网络传输方法,实现了多媒体与位置信息的并行传输,同时采用安全架构进行加密传输并减少了终端的处理压 力 ,提高了用户体验。
权利要求

1.一种移动终端网络传输方法,其特征在于,包括:
将移动终端采集的图像进行编码,将地理位置数据按照预定义格式进行组织,建立移动终端之间的通信连接,将图像数据和地理位置数据封装RTCP包中以进行网络传输。
2.根据权利要求1所述的方法,其特征在于,在所述连接建立过程中,移动终端采用会话发起协议,协议消息通过服务器进行传递,而图像传输在终端之间直接通信,发送端请求连接接收端之后,服务器帮助发送端定位接收端的位置,服务器将请求连接信息传递到接收端,接收端响应消息,以此建立发送端和接收端的连接;在图像解码过程中,将FFmpeg解码库移植到移动终端上,通过Linux配置文件编译的形式,在所述移植之前对FFmpeg进行剪裁,剪裁之后只留下H.263的解码部分,然后根据移动终端的JAVA本地接口进行设计解码,移动终端在JAVA层采用MediaRecorder来采集图像数据,通过Java本地接口的方式来调用;所述移动终端的导航模利用移动终端提供的API,获取设备当前位置并封装在导航数据结构中供传输使用,根据系统的API,监听地理位置信息的变化,注册监听器到位置管理器中;当导航变化时,监听器中的函数获取到最新的导航信息,传送导航信息以更新界面定位信息显示。
3.根据权利要求2所述的方法,其特征在于,该方法还包括:在移动终端使用SIM卡作为移动终端的加密模块,写入所需加密算法和认证过程,并,且写入以下数据:SIM卡的标识Bi、作为密钥种子的矩阵Ti和E,i=l-n,n为全体移动终端的数量,每个移动终端SIM卡都有唯一的标识Bi;密钥交换服务器将移动终端SIM卡中的密钥种子组成的矩阵Ti的元素,以密文形式存储在密钥交换服务器密钥库中,该密钥库中包含①移动终端SIM卡的标识Bi、②由标识Bi和随机数Si的HASH信息组成的矩阵Gi,③矩阵Ti元素的密文即:
Ti’、④矩阵Ti元素的数字签名,其中:由标识Bi和随机数Si的HASH信息组成的矩阵Gi,与矩阵Ti,生成存储密钥Ki,用存储密钥Ki将各个移动终端SIM卡的标识Bi,对应的矩阵Ti的元素,分别进行加密和签名。

说明书全文

移动终端网络传输方法

技术领域

[0001] 本发明涉及移动互联网,特别涉及一种移动终端网络传输方法。

背景技术

[0002] 随着移动互联网的不断发展,移动终端的智能化程度越来越高,智能操作系统的出现为各类应用提供好的平台和支撑,3G无线网络的提速,给移动终端多媒体应用提供了更快的传输通道,借助摄像头可以实现远程的实时会话和可视交流。目前,基于智能操作系统的无线图像传输已经取得了很多成熟的技术,但是仅仅处在只能提供简单的图像传输,对于同时需要确定导航信息的移动指挥和移动监控等应用来说是无法满足需求的,通过图像可以了解现场情况,却无法获取终端的导航信息,很难快速决策和调度资源。因此,如何在实时传输图像数据同时,也能够实时地传输导航数据是相关领域的一个实际迫切需求。

发明内容

[0003] 为解决上述现有技术所存在的问题,本发明提出了一种移动终端网络传输方法,包括:
[0004] 将移动终端采集的图像进行编码,将地理位置数据按照预定义格式进行组织,建立移动终端之间的通信连接,将图像数据和地理位置数据封装RTCP包中以进行网络传输。
[0005] 优选地,在所述连接建立过程中,移动终端采用会话发起协议,协议消息通过服务器进行传递,而图像传输在终端之间直接通信,发送端请求连接接收端之后,服务器帮助发送端定位接收端的位置,服务器将请求连接信息传递到接收端,接收端响应消息,以此建立发送端和接收端的连接;在图像解码过程中,将FFmpeg解码库移植到移动终端上,通过Linux配置文件编译的形式,在所述移植之前对FFmpeg进行剪裁,剪裁之后只留下H.263的解码部分,然后根据移动终端的JAVA本地接口进行设计解码,移动终端在JAVA层采用MediaRecorder来采集图像数据,通过Java本地接口的方式来调用;所述移动终端的导航模利用移动终端提供的API,获取设备当前位置并封装在导航数据结构中供传输使用,根据系统的API,监听地理位置信息的变化,注册监听器到位置管理器中;当导航变化时,监听器中的函数获取到最新的导航信息,传送导航信息以更新界面定位信息显示。
[0006] 优选地,该方法还包括:在移动终端使用SIM卡作为移动终端的加密模块,写入所需加密算法和认证过程,并,且写入以下数据:SIM卡的标识Bi、作为密钥种子的矩阵Ti和E,i=l-n,n为全体移动终端的数量,每个移动终端SIM卡都有唯一的标识Bi;密钥交换服务器将移动终端SIM卡中的密钥种子组成的矩阵Ti的元素,以密文形式存储在密钥交换服务器密钥库中,该密钥库中包含①移动终端SIM卡的标识Bi、②由标识Bi和随机数Si的HASH信息组成的矩阵Gi,③矩阵Ti元素的密文即:Ti’、④矩阵Ti元素的数字签名,其中:由标识Bi和随机数Si的HASH信息组成的矩阵Gi,与矩阵Ti,生成存储密钥Ki,用存储密钥Ki将各个移动终端SIM卡的标识Bi,对应的矩阵Ti的元素,分别进行加密和签名。
[0007] 本发明相比现有技术,具有以下优点:
[0008] 本发明提出了一种移动终端网络传输方法,实现了多媒体与位置信息的并行传输,同时采用安全架构进行加密传输并减少了终端的处理压,提高了用户体验。附图说明
[0009] 图1是根据本发明实施例的移动终端网络传输方法的流程图

具体实施方式

[0010] 下文与图示本发明原理的附图一起提供对本发明一个或者多个实施例的详细描述。结合这样的实施例描述本发明,但是本发明不限于任何实施例。本发明的范围仅由权利要求书限定,并且本发明涵盖诸多替代、修改和等同物。在下文描述中阐述诸多具体细节以便提供对本发明的透彻理解。出于示例的目的而提供这些细节,并且无这些具体细节中的一些或者所有细节也可以根据权利要求书实现本发明。
[0011] 本发明的一方面提供了一种移动终端网络传输方法。图1是根据本发明实施例的移动终端网络传输方法流程图。
[0012] 本发明根据实时定位和图像监控的应用需求,结合导航、多媒体传输RTCP协议等技术,在移动终端平台上提出了一种集成了空间导航数据的无线网络传输方案,利用RTCP数据包自定义扩展数据区域设计和集成导航信息,实现了在统一的数据通道内实时混合传输图像和导航数据的业务。终端框架分为连接建立模块、图像传输模块、导航模块、RTCP模块等主要部分。
[0013] 连接建立模块采用会话发起协议建立会话连接,获取双方的IP地址,协商媒体协议后,建立RTCP会话。图像传输模块包括采集模块、编码模块、解码模块部分。采集模块用于图像的采集。设置图像的编码模式,图像的参数控制,如率,码率的控制。编码模块将采集模块获取到的图像数据进行编码,图像采用具有高压缩率的H.263编码。解码模块将接收到的图像数据进行解码,图像传送至图像解码线程。。导航模块用于地理位置的获取,建立数据结构将导航数据按照适合网络传输的格式组织起来。RTCP模块:发送端根据RTCP的封装规则,将编码模块的数据进行封装。图像数据和导航数据合并成一个RTCP数据包,将RTCP载入缓冲区等待发送。接收端接收RTCP数据包进行分解,获取有用信息和有效载荷数据,并将载荷数据载入缓冲区等待解码播放。
[0014] 连接建立过程中,系统两个移动终端建立会话采用的是会话发起协议。两个移动终端通信包括两个部分:信令控制和图像传输。协议消息通过服务器进行传递,图像传输进行终端直接通信,不经过服务器。简单地描述通信的建立过程为:终端A请求连接终端B,由于A并不知道B的地址,服务器就可以起到帮助A定位B的位置,服务器将请求连接信息传递到B,B响应消息,终端A和终端B的连接就建立起来了。
[0015] 图像编码采用具有高压缩率的H.263编码。解码方面,由于移动终端并不支持H.263解码,因此系统移植了FFmpeg解码库到移动终端上。根据移动终端多媒体底层框架,移动终端在JAVA层采用MediaRecorder来采集图像数据。需要移植编码库到移动终端上,通过Java本地接口的方式来调用。图像的采集采用MediaRecorder录制。通过MediaRecorder设置好编码格式,采集到的图像就已经是编码好的数据,只需要根据录制的图像的格式对数据进行分析,就可以每一帧数据进行实时传输。
[0016] 移动终端占用系统资源,本系统只需要用到图像的解码部分,为了节省资源,可通过Linux配置文件编译的形式,在移植前对FFmpeg进行剪裁,剪裁之后只留下H.263的解码部分。然后根据移动终端NDK的JAVA本地接口编程步骤进行设计解码流程[0017] 导航模块是利用移动终端提供的API,获取设备当前位置并封装在导航数据结构中供传输使用。导航模块导航数据的采集,根据系统的API,监听地理位置信息的变化。注册监听器到位置管理器中。当导航变化时,监听器中的函数获取到最新的导航信息进行处理,导航信息被传输以更新界面定位信息显示。
[0018] 整个数据的流程包括数据的采集、图像的编码、RTCP传输、RTCP解包、图像解码、图像播放和导航显示。在实际系统中,终端数据流是双向传输的。
[0019] 单个图像数据较大,往往需要进行切分以满足RTCP传输的控制,不能大于网络最大传输单元,而单个图像数据经过RTCP封装后,载荷数据很小,一个RTCP数据包要经过装载RTCP包头、UDP头、IP头之后,载荷数据占IP包总数不到一半,那么传输的带宽利用率不大于50%。因此考虑图像数据和导航数据集成封装的形式进行传输。
[0020] 本发明还提供扩展机制以允许实现个性化的数据定义和管理。可以把获取到的导航数据以及其他格式的数据通过附加信息在RTCP数据包头中进行封装和传输,可以使其他不能识别扩展的交互操作忽略此包头扩展不至于产生错误。RTCP包头只需将扩展位设置为1,那么RTCP包头后面就可以接RTCP包包头扩展。扩展项的前16位用以识别标识符或参数。扩展项的后16位表示扩展长度,指示包头扩展中32位字的个数,不包括扩展项的四字节(因此长度可以为0)。扩展数据表示包头扩展传输的数据,必须是32位的整数倍。在图像数据中可以采用包头扩展的形式传输导航数据(也可以扩展到图片和文字等其他混合流数据)。图像的RTCP包头依旧使用图像RTCP封装设置,负载部分为图像数据。设置图像RTCP包包头扩展位为1,那么在RTCP包头后面的包头扩展则可以用来传输导航数据。
因为导航数据较小,不会超过IP传输的最大传输单元MTU字节数,因此只需要采用单片封装的方式进行传输。接收端接收到图像RTCP数据包后,解析出导航信息,通知显示模块进行显示,图像数据传送至图像缓存区等待播放。图像RTCP数据包分解图像数据传送至图像缓存区等待播放。
[0021] 系统展示模块实现导航信息展示和图像播放。图像接收线程从数据流里面获取到RTCP数据包之后,图像数据包需要根据RTCP包头将发送端分包的包进行组帧操作。然后图像数据被传送至图像解码播放线程。
[0022] 优选地,为减少移动终端处理大量图像数据的负载,图像编码过程可以由服务器端来完成。具体而言,服务器负责保存移动终端提交的原始图像,对原始图像进行切分,将切分后的图像分段提交到集群服务器,对之后整个编码过程进行监控和管理。对原始图像切分完毕后,服务器将切分后的图像分段提交到集群服务器中,然后启动图像编码和组合任务。在图像组合结束后,服务器负责清除编码过程中产生的中间文件,包括编码前和编码后的分段图像等,然后将移动终端提交的原始图像删除,并且将编码后的图像信息返回给移动终端。
[0023] 集群负责对服务器切分后的分段图像进行编码,然后对编码后的图像进行组合。当服务器将切分好的图像分段提交到集群服务器后,服务器会启动编码和组合过程。
[0024] 在完成各段图像的编码之后,进行编码后分段图像的组合工作。然后将最终的图像信息(包括图像名、图像位置、图像大小等)返回给服务器。
[0025] 系统按如下流程处理一个移动终端的编码请求:
[0026] (1)移动终端提交编码请求,服务器检查移动终端权限和提交的图像信息,若移动终端有权限为此图像编码,则回复允许请求,否则回复拒绝请求。(2)若移动终端收到拒绝信息,则编码过程结束。若收到允许请求,则移动终端为图像添加基本信息,开始提交图像。(3)提交结束后,服务器回复移动终端提交完毕确认信息,此时移动终端可以自己设置编码参数,若不设置则服务器使用默认参数。(4)系统开始进行编码,编码结束后,名字节点向服务器返回编码完成后的图像的信息(包括图像名称、图像位置、图像大小等)。(5)服务器将编码完成后的图像信息返回给移动终端,移动终端可以根据返回的信息读取图像。
[0027] 整个编码过程可分为3个阶段:图像切分,分段图像编码和图像组合。在图像编码的3个阶段中,所有图像处理类都是基于FFmpeg软件实现。Java只能对FFmpeg的可执行文件进行功能的封装。
[0028] 为了减小图像的体积,需要使用图像压缩技术来减少冗余数据。由于要验证分段大小对编码时间的影响,因此需要按固定的块大小来切割图像。FFmpeg只能根据时间跨度来切割图像,需要根据图像码率和块大小计算分段图像的时间跨度,从而估算切割点的大致位置,然后在时间点周围找到关键帧,在关键帧之前切割图像。
[0029] 当服务器将分段图像提交到集群服务器后,启动分段图像的编码工作。将任务均匀地分布到各个数据节点上。作业跟踪器会为各个任务跟踪器分配任务,每个任务跟踪器分到一个或几个分段的编码任务。任务跟踪器会将分配到的需要编码的分段复制到本地文件系统,然后对每一个分段使用FFmpeg工具,根据设定的编码参数进行编码。同时,任务跟踪器可以监控FFmpeg的编码过程,记录编码日志,若编码失败可以重启编码任务。待分配到的全部分段图像编码结束后,任务跟踪器会将其进行图像组合。使用FFmpeg工具,可以顺序地对图像进行组合操作,组合后将会生成一个本地的图像文件。最后,将这个图像文件提交到集群服务器,然后将其信息(是位置信息)发送给服务器,此时分段图像编码和组合过程完成。
[0030] 为实现低成本的安全网络通信,本发明进一步采用如下安全架构。在移动终端使用SIM卡作为移动终端的加密模块,在SIM卡,建立移动终端,写入HASH算法、组合密钥实时生成算法、本地认证过程、远程认证过程、本地文件签名和加密协议、远程文件签名和加密协议,且写入数据:SIM卡的标识Bi、一组密钥种子组成的矩阵Ti和一组密钥种子组成的矩阵E,i=l-n,n为全体移动终端的数量总和。每个移动终端SIM卡都有唯一的标识Bi。同一“群组”内用户移动终端SIM卡,存储Ej的元素两两相同,j=l-m,m
[0031] 在网络上建立密钥交换服务器,密钥交换服务器由服务器和加密模块组成,在加密模块的芯片里,建立密钥交换服务器,写入HASH算法、组合密钥实时生成算法、一组密钥种子组成的矩阵Ti、密钥的交换协议,将移动终端的移动终端SIM卡中的密钥种子组成的矩阵Ti的元素,以密文形式存储在密钥交换服务器密钥库中,该密钥库中的每条记录包含字段内容为①移动终端SIM卡的标识Bi、②由标识Bi和随机数Si的HASH信息组成的矩阵Gi,③矩阵Ti元素的密文即:Ti’、④矩阵Ti元素的数字签名,其中:由标识Bi和随机数Si的HASH信息组成的矩阵Gi,与矩阵Ti,生成存储密钥Ki,用存储密钥Ki将各个移动终端SIM卡的标识Bi,对应的矩阵Ti的元素,分别进行加密和签名,i=l-n,n为移动终端数量总和。
[0032] 用户密钥为YK由移动终端SIM卡的组合密钥实时生成算法产生,用户之间处于远程环境下,用户密钥YK用于加密随机数GK;用户之间处于本地环境下,用户密钥用户对文件进行签名和加密,同时,在本地认证过程中,用户密钥用于加密验证码,来生成签名码。用户密钥采取集中生成,并通过硬件设备集中分发。
[0033] 当用户1和用户2之间进行本地认证时,两端都采用芯片里存储的相同的矩阵E,来生成用户密钥。首先,用户1的移动终端,在SIM卡,产生一组随机数S,由标识B1和随机数S的HASH信息即:验证码L1,组成的矩阵GG,与矩阵E生成用户密钥YK1,来加密验证码L1,得到验证码L1的密文——签名码Lr,用户1的移动终端将标识B1、验证码L1和签名码Lr,一并发送给用户2的移动终端,用户2移动终端的加密模块,在SIM卡,由矩阵GG与矩阵E,生成对称密钥YK2,来解密签名码Lr,得到验证码L2,通过对比验证码L1和验证码L2是否相同来确认用户1的身份是否真实、可信,若L1≠L2,则用户A1的身份为假,若L1=L2,则用户1的身份为真,同理,用相同的协议,来验证用户2的身份是否真实、可信,从而,实现用户A1与用户A2之间的本地认证。
[0034] 用户1在SIM卡,产生一组随机数S,由标识B1和随机数S的HASH信息即:验证码L1,组成矩阵GG与矩阵E生成用户密钥YK1。用用户密钥YK1,加密文件1和文件1的HASH信息M1,得到文件1的密文和文件1的数字签名。用户1的移动终端将标识B1、矩阵GG、文件1的密文、文件1的HASH信息Ml和文件1的数字签名,一并发送给用户2的移动终端。用户2移动终端,在SIM卡,由矩阵GG与矩阵E,生成用户密钥YK2,来解密文件1的密文和文件1的数字签名,得到文件1的明文和文件1的HASH信息M2,通过对两端的HASH信息Ml和M2是否相同来判断文件1是否完整、可信,若M1≠M2,则用户文件1已经被篡改,若Ml=M2,则文件1完整、可信。从而,完成用户1与用户2两移动终端之间,文件1的本地加密传输和完整性验证。
[0035] 当用户1和用户2之间进行远程认证时,两端采用各自SIM卡存储的不同矩阵T1和T2,来生成用户密钥,需要通过密钥交换服务器进行用户密钥交换。
[0036] 首先,用户1的移动终端,在SIM卡,产生一组随机数S1和S2,用S2作为随机数GK1,由标识B1和随机数S1的HASH信息即:验证码L1,组成矩阵G,与T1生成用户密钥YK1,用GK1加密L1,得到L1的密文——签名码Lr,用YK1加密GK1,得到GK1的密文GK1、用户1的移动终端将标识B1、标识B2、验证码L1和签名码Lr,以及GKT,一并发送给密钥交换服务器。
[0037] 密钥交换服务器,根据标识B1生成存储密钥K1,来对T1元素的密文进行解密和完整性验证,由矩阵G与T1生成用户密钥YK1,来解密过程密钥的密文GKr。再根据标识B2生成存储密钥K2,来对T2元素的密文进行解密和完整性验证,由标识B2和随机数S1的HASH信息即:验证码LL,组成矩阵GL与T2生成用户密钥YK2,来加密随机数GK1。密钥交换服务器,将标识B1、标识B2、矩阵GL、验证码L1和签名码L1、以及随机数GK1的密文,一并发送用户2移动终端。
[0038] 用户2移动终端由矩阵GL与矩阵T2,生成用户密钥YK-2,来解密签名码Lr,得到验证码L2,在用户2移动终端SIM卡,来对比验证码L1,与验证码L2,若L1≠L2,则用户A1的身份为假,若L1=L2,则用户1的身份为真,用相同的协议,来验证用户2的身份是否真实、可信,从而,实现用户A1与用户A2之间的远程认证。
[0039] 用户1的移动终端,在SIM卡,产生一组随机数S1和S2,用S2作为随机数GK1,由标识B1和随机数S1的HASH信息即:验证码L1,组成矩阵G与T1生成用户密钥YK1,用随机数GK1,将文件1和文件1的HASH信息Ml加密成密文,得到文件1的密文和文件1的数字签名。用YK1加密GK1,得到过程密钥的密文GK1。用户1的移动终端将标识B1、标识B2、矩阵G、文件1的密文和数字签名,以及GKlf,一并发送给密钥交换服务器。
[0040] 密钥交换服务器,根据标识B1生成存储密钥K1,来对T1元素的密文解密和完整性验证,再由矩阵G,与T1生成用户密钥YK1,来解密GKl’。根据标识B2生成存储密钥K2,来对T2元素的密文进行解密和完整性验证。由标识B2和随机数S1的HASH信息即:验证码LL,组成矩阵GL与T2生成用户密钥YK2,来加密随机数GK1。密钥交换服务器,将标识B1、标识B2、矩阵GL、文件1密文和数字签名,以及随机数GK1的密文,一并发送用户2移动终端。
[0041] 用户2移动终端在SIM卡由矩阵GL与矩阵T2,生成用户密钥YK-2,来解密文件1的密文和文件1的数字签名,得到文件1的明文和文件1的HASH信息L2,在用户2移动终端SIM卡,来对比HASH信息L1,与HASH信息L2,若L1≠L2,则文件1已被篡改,若L1=L2,则文件1的完整、可信。从而,完成用户1与用户2两移动终端之间,文件1的远程加密传输和完整性验证。
[0042] 综上所述,本发明提出了一种移动终端网络传输方法,实现了多媒体与位置信息的并行传输,同时采用安全架构进行加密传输并减少了终端的处理压力,提高了用户体验。
[0043] 显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
[0044] 应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。
QQ群二维码
意见反馈