一种数据传输方法、系统、电子设备及存储介质与流程

文档序号:31341607发布日期:2022-08-31 10:25阅读:65来源:国知局
一种数据传输方法、系统、电子设备及存储介质与流程

1.本技术涉及网络传输技术领域,特别是涉及一种数据传输方法、系统、电子设备及存储介质。


背景技术:

2.随着无线网络技术的日渐成熟和普及,人们对无线网络下的流媒体要求越来越高,在实时性要求较高的场合中,如视频聊天,会因为无线网络的拥塞情况而导致声音出现断续,图像卡顿等问题。
3.对现有技术的研究和实践过程中,本技术的发明人发现,随着无线网络的流行,对实时性的要求也越来越高,现有技术中对于提高无线流媒体传输质量的技术方案主要有:一、根据无线网络带宽情况进行音视频传输码流的自适应调整;二、在应用层将流媒体数据分为音频队列和视频队列,进行依次发送;但第一种方案没有解决音频有限优先传输,而第二种方案从缓冲读取数据发送时,音频数据没有优先,都会在无线网络波动的情况下,出现声音延时,甚至出现声音断续等问题。


技术实现要素:

4.本技术主要解决的技术问题是提供一种数据传输方法、系统、电子设备及存储介质,能够通过数据类型设定数据优先级标识,并依据数据优先级标识对数据缓存至对应的缓冲队列,进而通过数据优先级标识将缓冲队列中的不同优先级数据依次进行发送,实现待传输数据在网络拥塞情况下,依据数据优先级标识进行依次传输,解决声音断续等问题。
5.为解决上述技术问题,本技术采用的一个技术方案是:提供一种数据传输方法,应用于发送端,所述方法包括:获取待传输数据并依据数据类型设定数据优先级标识,以划分为不同优先级数据;将所述不同优先级数据缓存至对应的缓冲队列;基于所述数据优先级标识将所述缓冲队列中的不同优先级数据依次进行发送。
6.在本技术的一实施例中,所述获取待传输数据并依据数据类型设定数据优先级标识,以划分为不同优先级数据,包括:获取待传输数据中的信令数据、音频数据和视频数据,设定信令数据的数据优先级标识为第一优先级,设定音频数据的数据优先级标识为第二优先级,设定视频数据的数据优先级标识为第三优先级;其中,第一优先级到第三优先级的优先级等级依次递减。
7.在本技术的一实施例中,所述将所述不同优先级数据缓存至对应的缓冲队列,包括:依据所述数据优先级标识将所述不同优先级数据分别缓存至对应的缓冲队列,其中,将第一优先级的信令数据缓存至信令缓冲队列,将第二优先级的音频数据缓存至音频缓冲队列,将第三优先级的视频数据缓存至视频缓冲队列。
8.在本技术的一实施例中,在获取待传输数据并依据数据类型设定数据优先级标识,以划分为不同优先级数据之后,所述数据传输方法还包括:获取待传输数据的数据长度;以及获取所述数据优先级标识对应缓冲队列的剩余空间;若所述剩余空间小于0,则返
回,若剩余空间大于0,则根据所述数据长度和所述剩余空间之间最小值将所述待传输数据缓存至对应的缓冲队列中。
9.在本技术的一实施例中,所述基于所述数据优先级标识将所述缓冲队列中的不同优先级数据依次进行发送,包括:根据所述数据优先级标识依次查询发送缓冲队列中是否有数据待发送,若有数据待发送,则获取该发送缓冲队列中的数据;若没有数据待发送,则查询下一个发送缓冲队列中是否有数据待发送,完成所有发送缓冲队列查询;对查询获取的数据增加对应于数据优先级标识的头部信息组成数据包,并基于所述头部信息依次发送。
10.在本技术的一实施例中,所述对查询获取的数据增加对应于数据优先级标识的头部信息,并基于所述头部信息依次发送,包括:对查询获取的数据添加头部信息,并封装为数据包;其中,所述头部信息包括数据包序号和数据优先级标识;获取拥塞窗口大小和已发送未被对端确认的数据大小并进行比较;若拥塞窗口小于或等于已发送未被对端确认的数据大小,则不能发送数据;若拥塞窗口大于已发送未被对端确认的数据大小,则依据所述数据包序号、数据优先级标识以及拥塞窗口大小依次发送各缓冲队列中的数据包。
11.在本技术的一实施例中,在查询发送缓冲队列前,还包括:获取发送丢包列表并判断发送丢包列表是否为空;若发送丢包列表为空,则进入发送缓冲队列查询;若发送丢包列表不为空,则获取当前发送丢包列表中优先级最高的数据包,进而封装该数据包进行发送。
12.为解决上述技术问题,本技术采用的另一个技术方案是:提供一种数据传输方法,应用于接收端,所述方法包括:接收传输数据并进行解析,获取所述传输数据的数据优先级标识、数据类型;依据所述传输数据的数据优先级标识和数据类型对接收的传输数据分别进行缓存;对缓存的所述传输数据解码并播放。
13.在本技术的一实施例中,所述接收传输数据并进行解析,获取所述传输数据的数据优先级标识、数据类型,包括:接收传输数据中的数据包,对所述数据包进行解析,获取所述数据包的数据优先级标识、数据包序号、数据类型和数据完整性;其中,对于解析出来的控制报文,读取控制报文的内容,若所述控制报文的内容为nack,则设置发送丢包列表,否则设置拥塞控制信息;对于解析出来的数据报文,获取数据报文的优先级标识和报文序号;其中,所述报文序号对应所述数据包序号。
14.在本技术的一实施例中,所述依据所述传输数据的数据优先级标识和数据类型对接收的传输数据分别进行缓存,包括:基于所述传输数据的优先级标识、所述数据类型、所述数据包序号和数据完整性,判断传输数据中的数据包是否连续,若数据包连续则存入缓存,若数据包不连续则存入接收丢包列表。
15.在本技术的一实施例中,所述基于所述传输数据的优先级标识、所述数据类型、所述数据包序号和数据完整性,判断传输数据中的数据包是否连续,若数据包连续则存入缓存,若数据包不连续则存入接收丢包列表,包括:若报文序号连续,则将数据报文存入数据优先级标识对应缓冲队列中,并更新缓冲可读位置,若报文序号不连续,则根据报文序号判断该数据报文是否为重传包,若该数据包为重传包,则从接收丢包列表中删除该报文序号,若该数据包不是重传包,则将不连续报文序号添加到接收丢包列表,并周期性将接收丢包列表返回发送端。
16.在本技术的一实施例中,所述判断该数据报文是否为重传包的步骤完成之后,还
包括:判断接收丢包列表中的反馈周期是否到期,到期则置位第一通知事件标识;所述更新缓冲可读位置的步骤完成之后,还包括:判断接收速率信息的反馈周期是否到期,到期则置位第二通知事件标识;判断所述第一通知事件标识和所述第二通知事件标识是否有置位,若有置位,根据置位标识,对反馈数据进行封装,并调用udp接口发送,若无置位,则结束。
17.为解决上述技术问题,本技术采用的再一个技术方案是:提供一种数据传输系统,所述数据传输系统包括第一数据传输装置和第二数据传输装置;其中,所述第一数据传输装置通过如上述应用于发送端的数据传输方法发送数据,所述第二数据传输装置通过如上述应用于接收端的数据传输方法接收数据。
18.为解决上述技术问题,本技术采用的又一个技术方案是:提供一种电子设备,所述电子设备包括存储器以及与所述存储器耦接的处理器,所述存储器存储有至少一计算机程序,所述至少一计算机程序被所述处理器加载并执行时,用于实现上述的数据传输方法。
19.为解决上述技术问题,本技术采用的又一个技术方案是:提供一种计算机可读存储介质,所述存储介质存储有至少一段程序,所述至少一段程序被处理器加载并执行时,用于实现上述的数据传输方法。
20.区别于现有技术,本技术提供的数据传输方法,包括:应用于发送端,该方法包括:获取待传输数据并依据数据类型设定数据优先级标识,以划分为不同优先级数据;将不同优先级数据缓存至对应的缓冲队列;基于数据优先级标识将缓冲队列中的不同优先级数据依次进行发送。以及应用于接收端,该方法包括:接收传输数据并进行解析,获取传输数据的数据优先级标识、数据类型;依据传输数据的数据优先级标识和数据类型对接收的传输数据分别进行缓存;对缓存的传输数据解码并播放。通过对待传输数据依据数据类型设定数据优先级标识并缓存至缓冲队列,基于数据优先级标识将缓冲队列中的不同优先级数据依次发送,解决网络拥塞情况下,音频延时或声音断续的问题,提升数据传输效率。
附图说明
21.图1是本发明应用于发送端的数据传输方法一实施例的流程示意图;图2是本发明步骤s1一实施例的流程示意图;图3是本发明步骤s1后一实施例的流程示意图;图4是本发明进行发送缓冲队列查询前一实施例的流程示意图;图5是本发明步骤s3一实施例的流程示意图;图6是本发明步骤s33一实施例的流程示意图;图7是本发明应用于接收端的数据传输方法一实施例的流程示意图;图8是本发明步骤t1一实施例的流程示意图;图9是本发明步骤t2一实施例的流程示意图;图10是本发明数据传输系统一实施例的结构示意图;图11是本发明电子设备一实施例的结构示意图;图12是本发明计算机可读存储介质一实施例的结构示意图。
具体实施方式
22.下面结合附图和实施例,对本发明作进一步的详细描述。特别指出的是,以下实施
例仅用于说明本发明,但不对本发明的范围进行限定。同样的,以下实施例仅为本发明的部分实施例而非全部实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
23.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本发明的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
24.传统的流媒体数据传输方法,主要有三种,一是采用tcp协议,其缺点是当出现网络波动丢包时,tcp协议的窗口降低,而导致发送速率降低,从而使得数据都积累在tcp的发送缓冲中,增加实时音视频延时,甚至出现音视频卡顿的情况。二是采用udp协议,其缺点是当网络波动出现丢包时,就会导致实时音视频卡顿,因此该方法只适合无丢包的局域网环境。三是在采用udp协议上增加重传、拥塞控制等,实现可靠传输,但其技术方案较为复杂。因此,流媒体传输方法目前存在的技术问题为:当网络波动、丢包、拥塞等导致流媒体数据在传输缓存队列积累时,因视频数据包在音频数据包前面,故先发送视频数据包再发送音频数据包;从而增加音频延时,严重时出现声音断续问题。
25.申请人在研究中发现,对于出现网络波动等导致流媒体数据传输在缓存队列累积时,出现音频延时甚至出现声音断续的情况,若是设定缓存队列中的数据依据设定的优先级标识进行传输,则可以避免视频数据的先发送而导致的音频延时甚至声音断续问题。
26.因此,提出一种新的数据传输方法,痛感获取待传输数据并依据数据类型设定数据优先级标识,以划分为不同优先级数据;将不同优先级数据缓存至对应的缓冲队列;基于数据优先级标识将缓冲队列中的不同优先级数据依次进行发送,以实现缓冲队列数据依据优先级标识依次进行传输。
27.请参阅图1,图1是本发明应用于发送端的数据传输方法一实施例的流程示意图;需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限,如图1所示,该方法应用于发送端,包括如下步骤:s1、获取待传输数据并依据数据类型设定数据优先级标识,以划分为不同优先级数据;其中,待传输数据为等待发送出去的数据,即为需要从一个地方传输到另外一个地方的数据;数据类型为一个值的集合以及定义这个集合的属性,以便告知人们如何使用该数据;优先级标识为排队等级的一个标识符号,其是设定一种约定,优先级高的先处理,优先级低的后处理;参阅图2,图2是本发明步骤s1一实施例的流程示意图,步骤s1包括:s11、获取待传输数据中的信令数据、音频数据和视频数据;其中,信令数据为通信系统中控制指令的相关数据,用于指导终端、交换系统及传输系统协同运行,在指定的终端之间建立通信信道,并维护网络本身正常运行;音频数据为数字化的声音数据,通过一定的频率对连续的模拟音频信号进行模数转换(adc)得到,其播放则需要将音频数据进行数模转换(dac)模拟音频信号输出,数字化声音的重要指标为采样频率和采样大小;视频数据为连续的图像序列,其实质是由一组组连续的图像构成的,其数据量巨大;
具体地,获取需要被传输出去的数据,并获取该数据的传输过程中的控制指令相关数据组成的信令数据、数字化的声音组成的音频数据和连续图像序列组成的视频数据。
28.在一些实施例中,待传输数据可以是流媒体数据,因流媒体数据是将一连串的媒体数据压缩后,经过网上分段发送数据,在网上即时传输影音以供观赏的一种技术与过程,此技术使得数据包得以像流水一样发送,极大地方便人们实时观看各类资讯信息。
29.在一些实施例中,待传输数据可以是其他数字媒体,是指以二进制数的形式记录、处理、传播、获取过程的信息载体。这些载体包括数字化的文字、图形、图像、声音、视频影像和动画等感觉媒体,和表示这些感觉媒体的表示媒体(编码)等,通称为逻辑媒体,以及存储、传输、显示逻辑媒体的实物媒体;其中,如果按时间属性分,数字媒体可分成静止媒体(still media)和连续媒体(continues media)。静止媒体是指内容不会随着时间而变化的数字媒体,比如文本和图片。而连续媒体是指内容随着时间而变化的数字媒体,比如音频、视频、虚拟图像等。按来源属性分,则可分成自然媒体(natural media)和合成媒体(synthetic media)。其中自然媒体是指客观世界存在的景物,声音等,经过专门的设备进行数字化和编码处理之后得到的数字媒体,比如数码相机拍的照片,数字摄像机拍的影像,mp3数字音乐、数字电影电视等。合成媒体则是指的是以计算机为工具,采用特定符号,语言或算法表示的,由计算机生成(合成)的文本,音乐,语音,图象和动画等,比如用3d制作软件制作出来的动画角色。如果按组成元素来分,则又可以分成单一媒体(single media)和多媒体(multi media)。顾名思义,单一媒体就是指单一信息载体组成的载体;而多媒体(multimedia)则是指多种信息载体的表现形式和传递方式。
30.s12、设定信令数据的数据优先级标识为第一优先级,设定音频数据的数据优先级标识为第二优先级,设定视频数据的数据优先级标识为第三优先级;其中,第一优先级到第三优先级的优先级等级依次递减。
31.其中,优先级标识依据数据类型进行设定,因此设定为数据优先级标识。
32.在一些实施例中,依据数据类型将需要被传输出去的数据提取出对应的信令数据、音频数据和视频数据,并依据数量类型设定数据优先级标识,其中,信令数据为第一优先级,音频数据为第二优先级,视频数据为第三优先级,并设定信令数据、音频数据、视频数据的优先级等级依次递减。
33.参阅图3,图3是本发明步骤s1之后一实施例的流程示意图,该数据传输方法还包括:s13、获取待传输数据的数据长度l;其中,数据长度指的是在电脑中传输或存储的数据的长度,一般使用的单位为字节,如一个字母为一个字节,一个汉字为两个字节。
34.在一些实施例中,获取需要进行传输的数据,以及该数据的数据优先级标识和该数据的数据长度,例如,获取信令数据、音频数据、视频数据及其各自对应的数据优先级标识和各自数据的数据长度l。
35.s14、以及获取数据优先级标识对应缓冲队列的剩余空间m;其中,缓冲队列为缓冲区对应数据类型设定的缓冲队列,用于根据数据类型缓存对应的待传输数据,因每个缓冲队列都有对应的空间,因此需要获取缓冲队列的剩余空间m进行后续操作。
36.在一些实施例中,依次获取第一优先级的信令数据对应的缓冲队列剩余空间大小,获取第二优先级的音频数据对应的缓冲队列剩余空间的大小,获取第三优先级的视频数据对应的缓冲队列剩余空间的大小。
37.s15、若剩余空间m小于0,则返回,若剩余空间m大于0,则根据数据长度l和剩余空间m之间最小值n将待传输数据缓存至对应的缓冲队列中。
38.其中,数据长度和剩余空间之间最小值,即为数据长度和剩余空间进行比较,取两者中的最小值,依据该最小值进行缓存数据。
39.在一些实施例中,依次对缓冲队列的空间大小进行判断,若某个缓冲队列的剩余空间小于0,则说明该缓冲队列没有空间了,其数据直接返回,再判断下一缓冲队列;若某个缓冲队列的剩余空间大于0,则该缓冲队列还有空间,进而对比该缓冲队列对应数据类型的数据长度和该缓冲队列剩余空间,取数据长度和剩余空间两者中最小值n,则将该数据类型中n个字节缓存至对应的缓冲队列中。
40.s2、将不同优先级数据缓存至对应的缓冲队列;其中,不同优先级数据包含有第一优先级对应的信令数据,第二优先级对应的音频数据,第三优先级对应的视屏数据。
41.在一些实施例中,将第一优先级对应的信令数据缓存至信令缓冲队列,将第二优先级对应的音频数据缓存至音频缓冲队列,将第三优先级对应的视频数据缓存至视频缓冲队列。
42.在一些实施例中,信令缓冲队列依据信令数据的数据优先级标识,可以设定为第一缓冲队列,音频缓冲队列依据音频数据的数据优先级标识,可以设定为第二缓冲队列,视频缓冲队列依据视频数据的数据优先级标识,可以设定为第三缓冲队列,其中,第一缓冲队列到第三缓冲队列的优先级等级依次递减。
43.s3、基于数据优先级标识将缓冲队列中的不同优先级数据依次进行发送。
44.其中,数据优先级标识根据数据类型设置,包括第一优先级对应的信令数据,第二优先级对应的音频数据,第三优先级对应的视频数据,各优先级数据依据数据优先级标识缓存在对应的缓冲队列中,并依据数据优先级标识依次将不同优先级数据进行发送。
45.参阅图4,图4为本发明进行发送缓冲队列查询前一实施例的流程示意图,具体为:s311、获取发送丢包列表并判断发送丢包列表是否为空;其中,发送丢包列表为发送报文的速率超过发包速率,而导致发送缓冲队列没有剩余空间,而引起丢包,把这里的丢包设定一个发送丢包列表;在一些实施例中,在发送过程中,若缓冲队列的剩余空间m小于0,数据包返回,则形成发送丢包列表,获取该发送丢包列表并检查该发送丢包列表是否有数据包。
46.s312、若发送丢包列表为空,则进入发送缓冲队列查询;在一些实施例中,若发送丢包列表为空,即缓冲队列的剩余空间m大于0,没有发生丢包,则发送丢包列表为空,直接进入发送缓冲队列查询。
47.s313、若发送丢包列表不为空,则获取当前发送丢包列表中优先级最高的数据包,进而封装该数据包进行发送。
48.在一些实施例中,若发送丢包列表不为空,即缓冲队列的剩余空间m小于0,缓冲队列满了,没有剩余空间了,因此发生了丢包,丢包的数据包集合在发送丢包列表中,获取当
前发送丢包列表中优先级最高的数据包,直接封装该数据包进行发送。
49.参阅图5,图5是本发明步骤s3一实施例的流程示意图,步骤s3包括:s32、根据数据优先级标识依次查询发送缓冲队列中是否有数据待发送,若有数据待发送,则获取该发送缓冲队列中的数据;若没有数据待发送,则查询下一个发送缓冲队列中是否有数据待发送,完成所有发送缓冲队列查询;其中,缓冲队列查询是对缓冲队列中包含的数据进行查询,依据该查询结果对缓冲队列中数据进行后续处理;在一些实施例中,查询第一优先级的信令数据对应的缓冲队列是否有信令数据待发送,如果有,则获取该缓冲队列中的信令数据组成第一优先级数据包,进入下一步;若没有第一优先级数据包,则查询第二优先级的音频数据对应的缓冲队列是否有音频数据待发送,如果有,则获取该缓冲队列中的音频数据组成第二优先级数据包,进入下一步;若没有第二优先级数据包,则查询第三优先级的视频数据对应的缓冲队列是否有视频数据待发送,如果有,则获取该缓冲队列中的视频数据组成第三优先级数据包,进入下一步;若没有第三优先级数据包则该次发送调度过程结束。
50.在一些实施例中,第一优先级的信令数据对应的缓冲队列可以设定为第一优先级队列,第二优先级的音频数据对应的缓冲队列可以设定为第二优先级队列,第三优先级的视频数据对应的缓冲队列可以设定为第三优先级队列;则有,查询第一优先级队列是否有数据待发送,若有,则获取该数据为第一优先级数据包,进入下一步;若没有第一优先级数据包,则查询第二优先级队列是否有数据待发送,若有数据待发送,则获取该数据为第二优先级数据包,进入下一步;若没有第二优先级数据包,则查询第三优先级队列是否有数据待发送,若有数据待发送,则获取该数据为第三优先级数据包,进入下一步;若没有数据待发送则该次发送调度过程结束。
51.s33、对查询获取的数据增加对应于数据优先级标识的头部信息组成数据包,并基于所述头部信息依次发送;其中,查询获取的数据可以为第一优先级数据包或者第二优先级数据包或者第三优先级数据包,即每次查询只获取该次查询时最高优先级的数据包,并对该数据包增加对应数据优先级标识的头部信息。
52.具体地,对于添加了数据包序号和数据优先级标识等头部信息的数据包,通过调用udp接口发送封装后的数据包。
53.参阅图6,图6是本发明步骤s33一实施例的流程示意图,步骤s33包括:s331、对查询获取的数据添加头部信息,并封装为数据包;其中,头部信息包括数据包序号和数据优先级标识;在一些实施例中,对查询获取的数据封装为数据包,并在该数据包中添加数据包序号和数据优先级标识;例如,查询获取了音频数据,将该音频数据封装为音频数据包,并在该音频数据包中添加音频数据包的序号和音频数据对应的数据优先级标识。
54.可选地,数据包序号可根据获取数据的前后顺序进行标序号,例如,获取了五个音频数据包,按获取的先后顺序设定数据包序号,第一个获取的音频数据包的数据包序号为1,第五个获取的音频数据包的数据包序号为5,后续发送将基于数据优先级标识和数据包序号进行先后顺序发送。
55.s332、获取拥塞窗口大小和已发送未被对端确认的数据大小并进行比较;若拥塞窗口小于或等于已发送未被对端确认的数据大小,则不能发送数据;若拥塞窗口大于已发送未被对端确认的数据大小,则依据数据包序号、数据优先级标识以及拥塞窗口大小依次发送各缓冲队列中的数据包。
56.其中,拥塞窗口是卫星通信在因特网中防止通信拥塞的一种措施,它是在发端采用了一种“拥塞避免”算法和“慢速启动”算法相结合的机制。“拥塞窗口”就是“拥塞避免”的窗口,它是一个装在发送端的可滑动窗口,窗口的大小是不超过接收端确认通知的窗口。“慢速启动”是在连接建立后,每收到一个来自收端的确认,就控制窗口增加一个段值大小,当窗口值达到“慢速启动”的限值后,慢速启动便停止工作,避免了网络发生拥塞。
57.拥塞窗口的大小取决于网络的拥塞程度,并且动态地在变化。发送方让自己的发送窗口等于拥塞窗口。如果再考虑到接收方的接收能力,那么发送窗口还可能小于拥塞窗口。发送方控制拥塞窗口的原则是:只要网络没有出现拥塞,拥塞窗口就再增大一些,以便把更多的分组发送出去。但只要网络出现拥塞,拥塞窗口就减少一些,以减少注入到网络中的分组数。
58.请参阅图7,图7是本发明应用于接收端的数据传输方法一实施例的流程示意图;需注意的是,若有实质上相同的结果,本发明的方法并不以图1所示的流程顺序为限,如图7所示,该方法应用于接收端,包括如下步骤:t1、接收传输数据并进行解析,获取传输数据的数据优先级标识、数据类型;其中,传输数据为基于发送端传输的数据。
59.参阅图8,图8是本发明步骤t1一实施例的流程示意图,步骤t1包括:t11、接收传输数据中的数据包,对数据包进行解析;其中,传输数据为基于发送端传输的数据;其数据包为发送端传输的数据封装而成的数据包。
60.在一些实施例中,数据包可以包括信令数据包、音频数据包、视频数据包等,或者其他根据实际情况获取的数据包。
61.在一些实施例中,对数据包进行解析后得到控制报文和数据报文,其中,控制报文包含有信令数据,数据报文包含有音频数据、视频数据。
62.t12、获取数据包的数据优先级标识、数据包序号、数据类型和数据完整性;其中,数据包的数据优先级标识为待传输数据对应的数据优先级标识,数据包序号为待传输数据的头部信息中包含的数据包序号;数据完整性(data integrity)是指数据的精确性和可靠性,其分为四类:实体完整性(entity integrity)、域完整性(domain integrity)、参照完整性(referential integrity)、用户自定义完整性(user-definedintegrity),域完整性:是指一个列的输入有效性,是否允许为空值;实体完整性:是指保证表中所有的行唯一。实体完整性要求表中的所有行都有一个唯一标识符。这个唯一标识符可能是一列,也可能是几列的组合,称为主键。也就是说,表中的主键在所有行上必须取唯一值。参照完整性:是指保证主关键字(被引用表)和外部关键字(引用表)之间的参照关系。它涉及两个或两个以上表数据的一致性维护。
63.在一些实施例中,对于解析出来的控制报文,读取控制报文的内容,若所述控制报文的内容为nack,则设置发送丢包列表,否则设置拥塞控制信息;对于解析出来的数据报
文,获取数据报文的优先级标识和报文序号;其中,所述报文序号对应所述数据包序号。
64.其中,nack
‑ꢀ
negative acknowledgment,为否定应答。
65.t2、依据传输数据的数据优先级标识和数据类型对接收的传输数据分别进行缓存;其中,基于数据优先级标识和数据完整性进行缓存可以将各优先级数据分别进行缓存,并且缓存的数据都具备完整性。
66.参阅图9,图9是本发明步骤t2一实施例的流程示意图,步骤t2包括:t21、基于传输数据的数据优先级标识、数据类型、数据包序号和数据完整性,判断传输数据中的数据包是否连续;其中,数据包序号为待传输数据的头部信息中包含的数据包序号,例如,待传输数据中包含多个音频数据包,每个数据包按照先后顺序设定一个数据包序号,则可以根据数据包序号判断数据包是否连续。
67.在一些实施例中,基于数据优先级标识和数据类型可划分出各类数据判断先后,例如,传输数据包含有信令数据、音频数据、视频数据,则依次判断信令数据、音频数据和视频数据;基于数据包序号,判断传输数据中的数据包是否连续。
68.t22、若数据包连续则存入缓存;若数据包连续,则说明数据包没有发生丢包,可以存入接收缓冲区对应的缓冲队列中。
69.在一些实施例中,若报文序号连续,则将数据报文存入数据优先级标识对应的缓冲队列中,并更新缓冲可读位置。
70.t23、若数据包不连续则存入接收丢包列表。
71.若数据包不连续,则说明数据包发生了丢包,需要将不连续的数据包存入接收丢包列表中,以便后续处理。
72.在一些实施例中,若报文序号不连续,则根据报文序号判断该数据报文是否为重传包,若该数据包为重传包,则从接收丢包列表中删除该报文序号,若该数据包不是重传包,则将不连续报文序号添加到接收丢包列表,并周期性将接收丢包列表返回发送端。
73.在一些实施例中,判断该数据报文是否为重传包的步骤完成之后,还包括:判断接收丢包列表中的反馈周期是否到期,到期则置位第一通知事件标识。
74.在一些实施例中,判断接收速率信息的反馈周期是否到期,到期则置位第二通知事件标识,其中,接收速率信息在解析数据包时统计接收数据包速率而获取。
75.在一些实施例中,判断第一通知事件标识和第二通知事件标识是否有置位,若有置位,根据置位标识,对反馈数据进行封装,并调用udp接口发送,若无置位,则结束。
76.可选地,将周期性的将接收丢包列表中的丢包序号、接收包速率等信息返回给发送端。
77.t3、对缓存的传输数据解码并播放。
78.其中,应用层模块依据对于的协议读取对应的数据。
79.在一些实时例中,接收端会通知应用层模块对数据进行读取,并通过对应的协议解析出对应的数据,再通过解码模块将对应的数据进行解码播放,例如,流媒体模块根据流媒体协议解析出音频数据,将音频数据放入接收缓冲区,再通过音频解码模块将音频数据
解码并播放。
80.区别于现有技术,本实施例中,通过接收传输数据并进行解析,获取传输数据的数据优先级标识、数据类型;依据传输数据的数据优先级标识和数据类型对接收的传输数据分别进行缓存;对缓存的所述传输数据解码并播放,通过数据优先级标识对传输数据依次进行接收并解码,能有效避免在网络波动时音频数据延迟甚至声音断续的问题。
81.请参阅图10,图10是本发明数据传输系统一实施例的结构示意图,该系统200包括第一数据传输装置210和第二数据传输装置220;其中,第一数据传输装置210通过如上述应用于发送端的数据传输方法发送数据,第二数据传输装置220通过如上述应用于接收端的数据传输方法接收数据,相关内容请参见上述方法中的详细说明,在此不再赘叙。
82.请参阅图11,图11是本发明电子设备一实施例的结构示意图,该电子设备300包括存储器310以及与存储器耦接的处理器320,存储器310存储有至少一计算机程序,该至少一计算机程序被处理器320加载并执行时,用于实现上述的数据传输方法,相关内容请参见上述方法中的详细说明,在此不再赘叙。
83.请参阅图12,图12是本发明计算机可读存储介质一实施例的结构示意图,该存储介质400存储有至少一段程序410,至少一段程序410被处理器加载并执行时,用于实现上述的数据传输方法。相关内容请参见上述方法中的详细说明,在此不再赘叙。
84.以上方案,通过对待传输数据依据数据类型设定数据优先级标识,进而根据数据优先级标识依次对待传输数据进行发送和接收,在出现网络波动或网络拥塞时,能优先发送音频数据,进而避免音频数据延时甚至出现声音断续的问题。
85.在本发明所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
86.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
87.另外,在本发明各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
88.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘
等各种可以存储程序代码的介质。
89.以上所述仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1