一种在QQ网络电话上搭载多数据流的方法及系统与流程

文档序号:17817411发布日期:2019-06-05 21:55
一种在QQ网络电话上搭载多数据流的方法及系统与流程

本发明属于计算机网络领域,具体涉及一种在网络电话多媒体流上搭载多数据流的方法及系统。



背景技术:

随着计算机网络技术的不断发展和互联网的普及,网络电话凭借着稳定、廉价、方便等特性逐渐取代了原有的手机打电话的功能。借着移动社交媒体的东风,QQ网络语音在网络多媒体市场获得了极大的成功。而伴随着这种移动即时通讯的兴起,关于网络多媒体提供业务种类的局限性问题也无法回避的呈现在人们的面前。

QQ的音频引擎经过多年的实验和打磨,对语音通话中的数据传输处理已经非常成熟,具有很强的网络能力。而对于QQ网络语音通讯的研究目前主要集中在协议分析层面上,这给在多媒体数据流中搭载多数据流带来了极大的障碍,限制了QQ语音业务种类的扩展,浪费了QQ网络能力资源。



技术实现要素:

为了能够借助QQ的网络能力扩展业务种类,本发明提供了一种在QQ语音电话中搭载多数据流的方法及系统。

本发明的技术方案提供一种在QQ网络电话上搭载多数据流的方法,通过对QQ网络语音流中UDP数据包内容的识别和分析,提取出关键属性,并基于关键属性构建特征模板,根据特征模板生成能够通过QQ验证的构造数据包,构造数据包中的内容包括扩展业务的信息,从而在QQ语音流中搭载多数据流。

而且,发送端发送搭载有多数据流的QQ语音流,接收方识别多数据流中的构造数据包后,得到扩展业务信息。

而且,为了成功搭载多数据流,在发送端和接收端协定通过水印以区分正常数据流和搭载的多数据流。

而且,所述基于关键属性构建特征模板,根据特征模板生成能够通过QQ验证的构造数据包,包括将UDP数据包的内容根据特征分为以下类型,生成能够通过QQ验证的构造数据包时,按照类型进行相应填充,

类型一,在QQ语音数据流中的所有包中都不变的数据位;

类型二,在QQ语音数据流中不变,但是数据流变化后就会改变的数据位,即数据流间会改变,且不同数据流间此数据位彼此无关联;

类型三,在QQ语音数据流中不变,但是数据流变化后就会改变的数据位,即数据流间会改变,且不同数据流间此数据位彼此有关联;

类型四,在QQ语音数据流中每个数据包内会改变,但只是在一个数据包内有关联的数据位;

类型五,在QQ语音数据流中每个数据包内会改变,但数据包之间有联系的数据位;

类型六,在QQ语音数据流中每个数据包内会改变,数据之间无任何联系的数据位。

而且,对于以0x5b开头的长数据包,测定包括类型一、类型二、类型四、类型五和类型六的数据位,按照类型进行相应填充的实现方式如下,

对于类型一的数据位,只需记录相应位置的值,填充到构造数据包中,包括数据包内容第1、4-5、18-20、22位、29位、32位以及数据包末两位;

对于类型二的数据位,在每次获取到QQ语音数据流之后,记录下正常数据流中数据包的11-14位的值,然后填充到构造数据包的11-14位中;

对于类型四的数据位,计算出构造数据包内容部分的长度,填充到构造数据包的2-3位中;

对于类型五的数据位,在填充序列号时,生成两个序列数,分别为0x00000000和0x0000,每次将两序列数分别填充完构造数据包的6-9位和23-24位,分别自加一后再填充下一个构造数据包;在填充时间号时,获取正常数据流中数据包14-16位的时间号,然后每过256/60秒钟,时间号自加一,填充到构造数据包的14-16位;

对于类型六的数据位,在填充网络类型号时,确定通讯双方的网络环境,进行相应填充;数据包第17位、25-28位、30-31位和第33位使用随机数进行填充。

之后,再将代表不同扩展业务的信息填充到第33位以后除去末两位的非特征位中。

而且,将隐蔽信息填充到非特征位中,通过多数据流实现安全隐蔽的文件传输。

本发明还提出保护一种在QQ网络电话上搭载多数据流的系统,用于实现以上方法。

本发明通过对QQ语音数据流中UDP(User Datagram Protocol,用户数据报协议)数据包内容的研究,具体得到了数据包内容的特征模板,并以此提供了在QQ语音电话中搭载多数据流的方法。由于本发明首次提出通过确定UDP数据包内容特征模板来构造数据包,以搭载多数据流,因此本发明具有以下优点:

1)此方法适用于一切以QQ语音为信道的情况,只要有QQ语音数据流就可以实现多数据流的搭载,是一种通用性较强的方法。

2)特征模板归纳出了QQ语音通讯流的所有关键要素,由此构造的数据包可以通过QQ语音服务器的检测,达到正常传输的效果。

3)多数据流搭载在正常的语音通话流中,多数据流的建立没有产生新的通讯连接,且没有篡改正常的语音数据包,对语音通讯质量的影响较小,简单实用、可靠性强。

4)借助QQ强大的网络能力,搭载多数据流可以方便、灵活的扩展业务种类。

附图说明

图1为本发明实施例的qq以0x5b开头的长数据包结构图;

图2为本发明实施例的多数据流搭载与接收流程图。

具体实施方式

以下结合附图和实施例详细说明本发明技术方案。

实施例提出一种在QQ网络电话上搭载多数据流的方法,通过对QQ网络语音流中UDP数据包内容的识别和分析,提取出关键属性,并基于这些属性,构建特征模板来生成可以通过QQ验证的构造数据包,从而在QQ语音流中搭载多数据流。构造数据包中的内容包括扩展业务的信息。

传统的研究主要集中在通讯协议头和协议规则上,而本方法对UDP数据包内容进行了具体的分析,由此可以在QQ网络电话上搭载多数据流,充分利用QQ的网络能力。具有简单实用、可靠性强、对正常通讯质量影响小、方便扩展业务种类等优点。

实施例的实现可认为包含以下阶段:

(1)QQ语音数据包内容分析阶段:提取出QQ语音数据包的关键特征,得出特征模板。

基于数据包内容识别的方法,提取出QQ语音流的关键属性,如标识位、session值、包长度值、回文位、序列号、时间号、网络类型号等,并基于这些属性,构造一个用于构造多数据流中构造数据包的特征模板。

(2)搭载多数据流阶段:根据特征模板,填充构造数据包中相应的数据位,再将构造数据包添加水印后搭载在正常的数据流中,得到多数据流。

得到QQ语音数据包特征模板后,按照特征模板的规则对特征位进行填充,再用扩展业务信息对非特征位进行填充,得到符合QQ语音通讯协议的数据包,并为构造数据包添加水印,将其搭载在正常语音数据流中。

(3)接收方识别接收构造数据包阶段:识别多数据流中的构造数据包后,得到扩展业务信息。

接收方通过水印校验算法识别出构造数据包的水印。即通过水印检验算法对数据包进行校验值计算,识别出多数据流中的构造数据包后得到扩展业务信息。

为便于实施参考期间,以下提供实施例的具体设计说明:

一.获取QQ语音数据流

为了得到QQ语音数据包内容特征模板,本发明需要在通讯的各个数据流中找到QQ语音通讯包的数据流作为研究对象。由于一个网络通讯流的源ip,目的ip,源端口和目的端口往往是固定的,在本发明中称一个包含了特定源ip,目的ip,源端口和目的端口的集合为流标识,即流标识={srcIp,desIp,srcPort,desPort}。其中,srcIp为特定源ip,desIp为目的ip,srcPort为源端口,desPort为目的端口。

故只需截取有相同的流标识且流量较大的数据包作为研究对象即可。

同样,在发送方搭载多数据流以及接收方识别接收多数据流阶段,也通过上述方法得到QQ语音数据流的存在,从而在正常通讯流中搭载和识别接收多数据流。

二.得到QQ语音数据包内容特征模板

1.数据包内容的分类

在获取了QQ语音数据流之后,需要对数据流进行数据包内容的识别,以两个数据流为例进行对比和分析,可以将数据包的内容根据特征分为不同的类型,针对不同的类型,按照相应的规则进行填充可以得到用于搭载多数据流的构造数据包。数据包内容具体可以分为如下几种类型:

类型一,在QQ语音数据流中的所有包中都不变的数据位。

类型二,在QQ语音数据流中不变,但是数据流变化后就会改变的数据位,即数据流间会改变,且不同数据流间此数据位彼此无关联。

类型三,在QQ语音数据流中不变,但是数据流变化后就会改变的数据位,即数据流间会改变,且不同数据流间此数据位彼此有关联。

类型四,在QQ语音数据流中每个数据包内会改变,但只是在一个数据包内有关联的数据位。

类型五,在QQ语音数据流中每个数据包内会改变,但数据包之间有联系的数据位。

类型六,在QQ语音数据流中每个数据包内会改变,数据之间无任何联系的数据位。

根据数据包中内容的不同规则特点总结出六种规则,实际填充特征位时按照不同种类有相应的填充规则。

2.数据包特征模板

参见图1,实施例得到以0x5b开头的长数据包特征模板:

(1)测定类型一的数据位

标识位是类型一的数据位,位于第一字节,标识这是一个QQ语音数据流,数据包的标识位为0x5b。

数据包内容第4-5位、第18-20位、第22位、第29位、第32位以及数据包末两位也是类型一的数据位,在QQ语音流数据包中从未发生改变。其中第4-5位为0x0101、18-20位为0x50033e、第22位为0x25、第29位为0x00、第32位为0x00、数据包末两位为0x0000。

(2)测定类型二的数据位

session值是类型二的数据位,session是那些在同一次QQ语音通讯过程中数值不变,但是在重新建立QQ语音通讯连接后数值会改变的部分,标识了一次会话,位于数据包的11-14位,每次通讯session数据位内容不固定。

(3)测定类型三的数据位

数据包中无类型三的数据位。

(4)测定类型四的数据位

长度值是类型四的数据位,长度值代表了数据包内容的长度,即udp包中payload的长度。长度值位于数据包的第2-3位。

(5)测定类型五的数据位

序列号是类型五的数据位,序列号代表数据包之间的顺序,通常情况下相邻数据包之间的数值是顺序的,也就是说在网络稳定的情况下得到的一系列数据包的序列号位应大致是顺序排列的。序列号位于数据包的6-9位和23-24位。

时间号是类型五的数据位,时间号与当前时间有关,位于数据包的14-16位。通常情况下,每过一分钟,第15位会加一。

(6)测定类型六的数据位

网络类型号是类型六的数据位,网络类型号与通讯双方的网络环境有关,位于数据包的第21位,实验中当通讯双方都使用wifi作为网络接入时,该位为0x01;当其中一方使用4G作为网络接入时,该位为0x03。

数据包第17位、25-28位、30-31位、第33位为类型六的数据位,内容随机。

数据包33位以后除去末两位的数据位也是类型六的数据位。数据包中的特征位的部分通常在数据包的前面,且长度固定。其余的称之为非特征位。数据包33位以后除去末两位的数据位都是非特征位,根据扩展功能的不同可以作相应的填充。

三.搭载和接收多数据流

在测得了qq数据包的模板后,作为对其的应用之一,本发明按照特征模板在QQ网络电话上搭载多数据流。为了成功搭载多数据流,需要在发送端和接收端协定接收方式以区分正常数据流和本发明提出搭载的多数据流。具体实施时,可以通过水印区分数据流。

参见图2,实施例中发送方检测到QQ语言数据流时,依照特征模板填充构造数据包的特征位,包括按照以0x5b开头的长数据包特征模板对特征位进行填充,即对数据包33位及以前的数据位和末两位进行填充。具体填充方式为:

对于类型一的数据位,由于这种类型的数据位在QQ语音中从不发生改变,因此只需记录相应位置的值,填充到构造数据包中。即第一位为0x5b、第4-5位为0x0101、第18-20位为0x50033e、第22位为0x25、第29位为0x00、第32位为0x00、数据包末两位为0x0000。

对于类型二的数据位,在每次获取到QQ语音数据流之后,记录下正常语音数据流中数据包的11-14位的session值,然后填充到构造数据包的11-14位中。

对于类型四的数据位,计算出构造数据包内容部分的长度,填充到构造数据包的2-3位中。

对于类型五的数据位,在填充序列号时,需要生成两个序列数,分别为0x00000000和0x0000,每次将两序列数分别填充完构造数据包的6-9位和23-24位,分别自加一后再填充下一个构造数据包。在填充时间号时,需要获取正常语音流中数据包14-16位的时间号,然后每过256/60秒钟,时间号自加一,填充到构造数据包的14-16位。

对于类型六的数据位,在填充网络类型号时,需要确定通讯双方的网络环境,当通讯双方使用WIFI作为网络接入时,构造数据包第21位填充0x01;当有通讯一方使用4G作为网络接入时,构造数据包第21位填充0x03。数据包第17位、25-28位、30-31位和第33位使用随机数进行填充。

之后,再将代表不同扩展业务的信息填充到33位以后除去末两位的非特征位中。最后为数据包添加水印,将其搭载在正常QQ语音数据流中,顺利送达接收方。

接收方检测到QQ语音数据流后,通过水印校验算法识别出正常流的数据包和多数据流的构造数据包。对正常流的数据包不作处理,提取多数据流的构造数据包中非特征位部分,得到相应扩展业务信息。例如,将隐蔽信息填充到非特征位中,通过多数据流实现安全隐蔽的文件传输。优选地,水印算法可采用CRC(Cyclic Redundancy Check,循环冗余校验)方法。

具体实施时,发送和接受处理过程可以采用软件技术实现自动运行流程。也可以采用模块化方式提供一种在QQ网络电话上搭载多数据流的系统,例如,系统包括发送端模块和接收段模块。发送端模块用于通过对QQ网络语音流中UDP数据包内容的识别和分析,提取出关键属性,并基于关键属性构建特征模板,根据特征模板生成能够通过QQ验证的构造数据包,构造数据包中的内容包括扩展业务的信息,从而在QQ语音流中搭载多数据流,并发送搭载有多数据流的QQ语音流。接收方模块用于识别多数据流中的构造数据包后,得到扩展业务信息。

本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。

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