一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种数据传输方法、装置、发送器及接收器与流程

2022-11-16 16:05:43 来源:中国专利 TAG:


1.本发明涉及通信技术领域,尤其涉及一种数据传输方法、数据传输装置、发送器及接收器。


背景技术:

2.云终端是一种运行在云端的终端设备,通过特定的通信协议(如vdi(virtual desktop infrastructure,虚拟桌面架构)、rds(remote desktop services,远程桌面服务)等云桌面技术通信协议)连接云端的系统桌面并将其显示到前端,且将云终端的输出输入数据重定向到云服务器上。由于云终端将主要运算资源(如cpu、内存、硬盘、网络等)集中在云服务器上,从而使得管理集中,部署方便,维护量少,使用成本低,本地设备硬件配置的购置成本低。
3.srt(secure reliable transport,安全可靠传输)协议保留了udt(udp-based data transfer protocol,数据传输协议)的核心思想和机制,抗丢包能力强,适用于复杂的网络,主要用于视频的传输。srt的防丢包主要通过在缓存和丢包重传机制来解决,在目前srt丢包重传机制下,如果报文在网络传输中丢失,则发送端会重新发送。
4.虽然srt协议基于udt实现了低时延的传输,但是设置了丢包重传机制,该机制会减少因丢帧导致的花屏现象,但也会造成视频流的延迟。而云终端的文档共享、云pc(personal computer,个人计算机)等分业务对于视频输出部分的时延有较高要求,但对丢帧不敏感,因此,若将现有srt协议应用于云终端场景中将无法满足云终端的时延需求。
5.因此,提出一种使srt自适应云终端场景的数据传输方案是目前亟待解决的问题。


技术实现要素:

6.本发明所要解决的技术问题是针对现有技术的上述不足,提供一种数据传输方法、数据传输装置、发送器及接收器,以至少解决相关技术中存在的现有srt协议应用于云终端场景中将无法满足云终端的时延需求问题。
7.第一方面,本发明提供一种数据传输方法,应用于发送器,所述方法包括:获取当前网络的发送时延和当前网络允许的最大发送时延;判断所述当前网络允许的最大发送时延是否小于业务时延阈值;响应于所述当前网络允许的最大发送时延小于所述业务时延阈值,将所述业务时延阈值与所述当前网络的发送时延之比,确定为当前缓存区的最大缓存数据包数量;根据所述最大缓存数据包数量在发送端的缓存区缓存相应数量的数据包;将缓存区的数据包发送至接收器。
8.优选地,在将缓存区的数据包发送至接收器之后,所述方法还包括:根据所述当前网络的发送时延的变化趋势调整所述缓存区的数据包数量。
9.优选地,根据所述当前网络的发送时延的变化趋势调整所述缓存区的数据包数量,具体包括:获取当前网络的相邻两次数据传输的发送时延之差,其中,所述当前网络的相邻两次数据传输的发送时延之差等于所述当前网络的发送时延减去前一次数据传输时
网络的发送时延;判断所述当前网络的相邻两次数据传输的发送时延之差是否大于第一阈值;响应于所述当前网络的相邻两次数据传输的发送时延之差大于第一阈值,随机删除缓存区中目标数量的数据包。
10.优选地,根据所述当前网络的发送时延的变化趋势调整所述缓存区的数据包数量,还包括:响应于所述当前网络的相邻两次数据传输的发送时延之差小于第一阈值,在缓存区中增加目标数量的数据包。
11.优选地,所述获取当前网络的发送时延,具体包括:向接收器发送流量数据包,以使所述接收器根据所述流量数据包向所述发送器返回往返时延rtt;同时,获取控制报文中两个相邻时间戳对应的第一时刻和第二时刻;根据所述rtt、所述第一时刻和所述第二时刻,计算出当前网络的发送时延。
12.优选地,根据所述rtt、所述第一时刻和所述第二时刻,计算出当前网络的发送时延,具体包括:计算所述rtt的半值,以得到单向时延;计算所述第二时刻与所述第一时刻的差值,以得到当前网络的相邻两次数据传输的数据包时间之差;计算所述单向时延与所述当前网络的相邻两次数据传输的数据包时间之差的和,以得到当前网络的发送时延。
13.优选地,所述获取当前网络允许的最大发送时延,具体包括:根据以下公式获取当前网络允许的最大发送时延:当前网络允许的最大发送时延=当前网络的发送时延*(1 第二阈值),其中,第二阈值为允许的最大阈值。
14.第二方面,本发明还提供一种数据传输方法,应用于接收器,所述方法包括:获取当前网络的发送时延和当前网络允许的最大发送时延;判断所述当前网络允许的最大发送时延是否小于业务时延阈值;响应于所述当前网络允许的最大发送时延小于所述业务时延阈值,将所述业务时延阈值与所述当前网络的发送时延之比,确定为当前缓存区的最大缓存数据包数量;接收发送器发送的数据包;根据所述最大缓存数据包数量在缓存区缓存相应数量的数据包。
15.第三方面,本发明还提供一种数据传输装置,应用于发送器,包括:第一获取模块,用于获取当前网络的发送时延和当前网络允许的最大发送时延。第一判断模块,与第一获取模块连接,用于判断所述当前网络允许的最大发送时延是否小于业务时延阈值。第一确定模块,与第一判断模块连接,用于响应于所述当前网络允许的最大发送时延小于所述业务时延阈值,将所述业务时延阈值与所述当前网络的发送时延之比,确定为当前缓存区的最大缓存数据包数量。第一缓存模块,与第一确定模块连接,用于根据所述最大缓存数据包数量在发送端的缓存区缓存相应数量的数据包。发送模块,与第一缓存模块连接,用于将缓存区的数据包发送至接收器。
16.第四方面,本发明还提供一种数据传输装置,应用于接收器,包括:第二获取模块,用于获取当前网络的发送时延和当前网络允许的最大发送时延。第二判断模块,与第二获取模块连接,用于判断所述当前网络允许的最大发送时延是否小于业务时延阈值。第二确定模块,与第二判断模块连接,用于响应于所述当前网络允许的最大发送时延小于所述业务时延阈值,将所述业务时延阈值与所述当前网络的发送时延之比,确定为当前缓存区的最大缓存数据包数量。接收模块,用于接收发送器发送的数据包。第二缓存模块,与接收模块和第二确定模块连接,用于根据所述最大缓存数据包数量在缓存区缓存相应数量的数据包。
17.第五方面,本发明还提供一种发送器,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以实现如权利要求第一方面中任一项所述的数据传输方法。
18.第六方面,本发明还提供一种接收器,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以实现如第二方面所述的数据传输方法。
19.本发明提供的数据传输方法、数据传输装置、发送器及接收器,通过判断当前网络所允许的最大发送时延是否满足云终端的业务时延阈值,若满足,则可在当前的发送器或当前的接收器缓存数据包,并确定当前网络可缓存的最大数据包数量,以使发送器/接收器在缓存区缓存最大数据包数量相应的数据包。本发明通过实时确定当前缓存区可缓存的数据包数量,以改善当前网络时延对业务的影响,从而使得srt在始终满足云终端的业务时延要求下,同时实现丢包重传机制,以保证数据传输质量,最终实现srt对于云终端业务的自适应性。
附图说明
20.图1为srt协议的缓存设置的示意图;
21.图2为srt ack丢包重传机制的示意图;
22.图3为本发明实施例1的一种数据传输方法的流程示意图;
23.图4为本发明实施例2的一种数据传输方法的流程示意图;
24.图5为本发明实施例4的一种数据传输方法的流程示意图;
25.图6为本发明实施例5的一种数据传输装置的结构示意图;
26.图7为本发明实施例6的一种数据传输装置的结构示意图;
27.图8为本发明实施例7的一种发送器的结构示意图。
具体实施方式
28.为使本领域技术人员更好地理解本发明的技术方案,下面将结合附图对本发明实施方式作进一步地详细描述。
29.可以理解的是,此处描述的具体实施例和附图仅仅用于解释本发明,而非对本发明的限定。
30.可以理解的是,在不冲突的情况下,本发明中的各实施例及实施例中的各特征可相互组合。
31.可以理解的是,为便于描述,本发明的附图中仅示出了与本发明相关的部分,而与本发明无关的部分未在附图中示出。
32.可以理解的是,本发明的实施例中所涉及的每个单元、模块可仅对应一个实体结构,也可由多个实体结构组成,或者,多个单元、模块也可集成为一个实体结构。
33.可以理解的是,在不冲突的情况下,本发明的流程图和框图中所标注的功能、步骤可按照不同于附图中所标注的顺序发生。
34.可以理解的是,本发明的流程图和框图中,示出了按照本发明各实施例的系统、装置、设备、方法的可能实现的体系架构、功能和操作。其中,流程图或框图中的每个方框可代
表一个单元、模块、程序段、代码,其包含用于实现规定的功能的可执行指令。而且,框图和流程图中的每个方框或方框的组合,可用实现规定的功能的基于硬件的系统实现,也可用硬件与计算机指令的组合来实现。
35.可以理解的是,本发明实施例中所涉及的单元、模块可通过软件的方式实现,也可通过硬件的方式来实现,例如单元、模块可位于处理器中。
36.实施例1:
37.srt的防丢包主要通过在缓存和丢包重传机制来解决。如图1所示,srt在接收端有接收端缓存区receive buffer,发送端有发送端缓存区send buffer,缓存区用于存放需要重传的数据包。此外,srt控制报文中的timestamp表示32位时间戳,可准确记录报文的时间。srt使用的丢包重传ack(acknowledgement,确认字符)机制,以图2为例,假设发送端缓存区发送五个数据包:1、2、3、4、5给接收端缓存区,接收端缓存区成功接收到这些数据包之后会向发送端缓存区发送ack——肯定应答已表示数据包被成功接收,发送端接收到ack——肯定应答之后回收空间,删除1、2、3、4、5这五个数据包并准备发送数据包6。如果报文在网络传输中丢失,则发送端会重新发送。此外,srt为计算网络延时还规定了ackack和rtt(round trip time,往返时延)。接收端在收到数据包后会向发送端反馈表示成功接收的ack,而发送端在收到来自接收端的ack之后会向对端再发送一个ackack用以表示收到ack。接收端的ack发送的时间与对应ackack收到的时间之差就是rtt,rtt是时间的度量,表示报文一个往返的耗时。由于srt不能测量单方向的耗时,故本实施采用rtt/2来表示单方向耗时。rtt由接收端计算出,计算得出的rtt会通过ack发送至发送端,发送端就可获知当前网络的传输质量。
38.本实施例通过获知srt在当前网络上传输的时延情况,结合云终端业务对于时延的要求,判断网络抖动对数据包的影响,并实时确定当前缓存区可缓存的数据包数量,从而实现srt对云终端业务的自适应性。为便于理解下述实施例,本实施例中涉及的参数有:
39.(1)input_delay,业务时延阈值,即业务端要求的最大时延;
40.(2)time_data,srt控制报文中timestamp32位时间戳记录的实际时间;
41.(3)rtt,往返时延,即报文一个往返的耗时;
42.(4)oneway_delay,单向时延,oneway_delay=rtt/2;
43.(5)send_bitrate_max,当前的最大缓存数据包数量;
44.(6)δtime_data,当前网络的相邻两次数据传输的数据包时间之差,即δtime_data=time_data
n 1-time_datan;
45.(7)send_delay,当前网络的发送时延,send_delay=oneway_delay δtime_data;
46.(8)δsend_delay,当前网络的相邻两次数据传输的发送时延之差,即δsend_delay=send_delay
n 1-send_delayn;
47.(9)threshold,第二阈值,即允许的最大阀值,如可以设置为0.2或其他大于0的数值。设置第二阀值的目的是防止因短暂的网络抖动造成数据包的丢失,从而降低视频质量。
48.如图3所示,本实施例提供一种数据传输方法,应用于发送器,或编码器,发送器或编码器设置于云终端上,所述方法包括:
49.步骤101,获取当前网络的发送时延和当前网络允许的最大发送时延。
50.具体地,获取当前网络的发送时延send_delay,包括:向接收器发送流量数据包,以使所述接收器根据所述流量数据包向所述发送器返回往返时延rtt;同时,获取控制报文中两个相邻时间戳对应的第一时刻time_data1和第二时刻time_data2;根据所述rtt、所述第一时刻time_data1和所述第二时刻time_data2,计算出当前网络的发送时延send_delay。
51.本实施例中,发送器接收到接收器返回的rtt,通过计算rtt的半值(即rtt/2),以得到单向时延oneway_delay;继而计算所述第二时刻time_data2与所述第一时刻time_data1的差值,以得到当前网络的相邻两次数据传输的数据包时间之差δtime_data;计算所述单向时延oneway_delay与所述当前网络的相邻两次数据传输的数据包时间之差δtime_data的和,以得到当前网络的发送时延,即send_delay=oneway_delay δtime_data。
52.具体地,获取当前网络允许的最大发送时延,包括:根据以下公式获取当前网络允许的最大发送时延:当前网络允许的最大发送时延=当前网络的发送时延*(1 第二阈值),其中,第二阈值threshold为允许的最大阈值。
53.本实施例中,第二阈值threshold大于0,优选地可设置为0.2。当前网络允许的最大发送时延可理解为在当前网络的发送时延基础上,可容忍因网络短时间发生小规模的抖动而丢包重传造成的时延。换言之,通过设置第二阈值(即允许的最大阀值),可防止因网络的短时间发生小规模抖动而实时调整缓存数据包数量,以影响视频流的不连续,降低业务质量的情况发生。
54.步骤102,判断所述当前网络允许的最大发送时延是否小于业务时延阈值。
55.本实施例中,发送器可从业务模块获取业务时延阈值input_delay,业务时延阈值与业务性质相关。例如,需要实时交互的远程操作,业务时延阈值应小于50ms;而对于视频会议的接收端,业务时延阈值可设为80ms。该阈值在业务开通前进行配置。
56.步骤103,响应于所述当前网络允许的最大发送时延小于所述业务时延阈值,将所述业务时延阈值与所述当前网络的发送时延之比,确定为当前缓存区的最大缓存数据包数量。
57.本实施例中,当input_delay》send_delay*(1 threshold),可在当前发送器的缓存区缓存数据包,当前缓存区可缓存的最大缓存数据包数量send_bitrate_max=input_delay/send_delay。需要说明的是,由于网络时延在整个数据传输过程中是动态变化的,故根据当前网络的发送时延所确定的缓存区的最大缓存数据包数量也是动态变化的,通过实时确定缓存区的数据包数量,故可实现srt自适应于云终端业务的时延要求。若当前网络允许的最大发送时延大于所述业务时延阈值,则结束流程,说明当前网络的srt丢包重传已无法满足业务的时延要求,故发送器的缓存区不能存储数据包。
58.步骤104,根据所述最大缓存数据包数量在发送端的缓存区缓存相应数量的数据包。
59.步骤105,将缓存区的数据包发送至接收器。
60.可选地,在将缓存区的数据包发送至接收器之后,数据传输方法还包括:
61.步骤106,根据所述当前网络的发送时延的变化趋势调整所述缓存区的数据包数量。
62.本实施例中,当前网络的发送时延的变化趋势可通过相邻两次数据传输的发送时
延之差或相邻两次数据传输的发送时延之比进行计算,例如,相邻两次数据传输的发送时延之比等于当前网络的发送时延与前一次数据传输时网络的发送时延之比,若相邻两次数据传输的发送时延之比大于第三阈值(如第三阈值为1),说明发送时延变大,随机删除缓存区中目标数量的数据包;若相邻两次数据传输的发送时延之比小于第三阈值,说明发送时延变小,在缓存区中增加目标数量的数据包。由于网络时延在整个数据传输过程中是动态变化的,在前一次数据传输时所确定的缓存数据包数量的基础上根据发送时延的变化趋势实时调整数据包数量,可快速实现网络的自适应调整效果,以快速改善网络时延对业务的影响。
63.可选地,步骤106:根据所述当前网络的发送时延的变化趋势调整所述缓存区的数据包数量,具体包括:
64.步骤1061,获取当前网络的相邻两次数据传输的发送时延之差,其中,所述当前网络的相邻两次数据传输的发送时延之差δsend_delay等于所述当前网络的发送时延send_delay
n 1
减去前一次数据传输时网络的发送时延send_delayn。
65.步骤1062,判断所述当前网络的相邻两次数据传输的发送时延之差δsend_delay是否大于第一阈值。
66.步骤1063,响应于所述当前网络的相邻两次数据传输的发送时延之差δsend_delay大于第一阈值,随机删除所述缓存区中目标数量的数据包。
67.本实施例中,第一阈值可设置为0,当δsend_delay》0,说明发送时延变大,随机删除缓存区中目标数量的数据包,以降低传输时延,改善当前网络时延对业务的影响。采用随机删除数据包的方式,可防止出现删除连续的数据包造成视频间断的情况。其中,目标数量等于当前缓存区的最大缓存数据包数量减去前一次数据传输时缓存区的最大缓存数据包数量,即目标数量=send_bitrate_max
n 1-send_bitrate_maxn。
68.可选地,步骤106还包括:
69.步骤1064,响应于所述当前网络的相邻两次数据传输的发送时延之差小于第一阈值,在所述缓存区中增加目标数量的数据包。
70.本实施例中,当δsend_delay《0,说明发送时延变小,可适当增加缓存区数据包的数量,目标数量等于当前缓存区的最大缓存数据包数量减去前一次数据传输时缓存区的最大缓存数据包数量,即目标数量=send_bitrate_max
n 1-send_bitrate_maxn。
71.实施例2:
72.如图4所示,本实施例提供一种数据传输方法,应用于系统,系统包括业务模块和云终端,云终端包括发送器、接收器。发送器内包括视频流缓存、数据处理模块、数据包调度等部分,其中数据处理模块为新增模块,其与srt原有的数据包调度模块进行数据交换,为描述方便,未单独列示数据包调度模块,将其并入数据处理模块。同样在接收器中也存在srt协议中设定的接收端缓存等模块,在本实施例中将接收器缓存设置为0,故不需要在方法流程中体现。
73.所述数据传输方法包括:
74.s1,发送器的数据处理模块从业务模块读取input_delay,该参数与业务性质相关,在业务开通前进行配置。
75.s2,数据处理模块向接收器发送视频数据包,并获取两个相邻的时间戳内记录的
发送时间time_data1、time_data2。
76.s3,数据处理模块计算δtime_data。
77.s4,接收器将第一个数据包的ack数据返回,即ack1。
78.s5,数据处理模块向接收器发送ackack1。
79.s6,接收器根据ackack1计算rtt1,并发送至数据处理模块。
80.s7,数据处理模块首先按照oneway_delay=rtt/2计算出oneway_delay1,之后按照send_delay=oneway_delay δtime_data计算出当前网络的发送时延send_delay1。
81.s8,数字处理模块判断当input_delay》send_delay1*(1 threshold)时,设置视频流缓存内的最大缓存数据包数量send_bitrate_max1=input_delay/send_delay1。
82.s9,系统按照srt正常的流程发送数据包,并进行数据缓存、进行akc、ackack、rtt等参数的交互。
83.s10,数据处理模块同步实时计算send_delay2。
84.s11,数据处理模块根据send_delay的变化计算δsend_delay,即δsend_delay=send_delay
n 1-send_delayn。
85.s12,若δsend_delay《0,则调整send_bitrate_max2为input_delay/send_delay2,并指示视频流缓存在原有缓存后增加(send_bitrate_max2-send_bitrate_max1)的缓存空间,新增的数据包按时间对其进行填充;若δsend_delay》0,则调整send_bitrate_max2为input_delay/send_delay2,并指示视频流缓存在send_bitrate_max1的缓存空间内随机删除(send_bitrate_max2-send_bitrate_max1)个数据包。
86.s13,视频流缓存根据数据处理模块给出的参数对缓存进行调整。
87.实施例1-实施例2提供的数据传输方法,通过判断当前网络所允许的最大发送时延是否满足云终端的业务时延阈值,若满足,则可在当前发送端缓存数据包,并确定当前网络可缓存的最大数据包数量,以使发送端在当前缓存区缓存最大数据包数量相应的数据包,并将缓存区数据包发送至接收器。通过实时确定当前缓存区可缓存的数据包数量,以改善当前网络时延对业务的影响,从而使得srt在始终满足云终端的业务时延要求下,同时实现丢包重传机制,以保证数据传输质量,最终实现srt对于云终端业务的自适应性。特别地,在当前网络所允许的最大发送时延中设置第二阈值,可防止因网络的短时间发生小规模抖动而实时调整缓存数据包数量,以影响视频流的不连续,降低业务质量的情况发生。此外,采用随机删除数据包的方式,可防止出现删除连续的数据包造成视频间断的情况。
88.实施例3:
89.本实施例提供一种数据传输方法,应用于接收器或解码器,接收器或解码器设置于云终端上,所述方法包括:
90.步骤301,获取当前网络的发送时延和当前网络允许的最大发送时延。
91.步骤302,判断所述当前网络允许的最大发送时延是否小于业务时延阈值。
92.步骤303,响应于所述当前网络允许的最大发送时延小于所述业务时延阈值,将所述业务时延阈值与所述当前网络的发送时延之比,确定为当前缓存区的最大缓存数据包数量。
93.步骤304,接收发送器发送的数据包。
94.步骤305,根据所述最大缓存数据包数量在缓存区缓存相应数量的数据包。
95.本实施例中,仅对接收器的缓存区进行调整以使srt适用于云终端业务。
96.可选地,在步骤305:根据所述最大缓存数据包数量在缓存区缓存相应数量的数据包之后,数据传输方法还包括:根据所述当前网络的发送时延的变化趋势调整所述缓存区的数据包数量。
97.可选地,根据所述当前网络的发送时延的变化趋势调整所述缓存区的数据包数量,具体包括:获取当前网络的相邻两次数据传输的发送时延之差,其中,所述当前网络的相邻两次数据传输的发送时延之差等于所述当前网络的发送时延减去前一次数据传输时网络的发送时延;判断所述当前网络的相邻两次数据传输的发送时延之差是否大于第一阈值;响应于所述当前网络的相邻两次数据传输的发送时延之差大于第一阈值,随机删除所述缓存区中目标数量的数据包。
98.可选地,根据所述当前网络的发送时延的变化趋势调整所述缓存区的数据包数量还包括:响应于所述当前网络的相邻两次数据传输的发送时延之差小于第一阈值,在所述缓存区中增加目标数量的数据包。
99.可选地,所述获取当前网络的发送时延,具体包括:接收发送器发送的流量数据包以计算往返时延rtt,并获取控制报文中两个相邻时间戳对应的第一时刻和第二时刻;根据所述rtt、所述第一时刻和所述第二时刻,计算出当前网络的发送时延。
100.本实施例中,由于接收器自行计算rtt,故与实施例1的区别在于无需向发送器返回rtt。
101.可选地,根据所述rtt、所述第一时刻和所述第二时刻,计算出当前网络的发送时延,具体包括:计算所述rtt的半值,以得到单向时延;计算所述第二时刻与所述第一时刻的差值,以得到当前网络的相邻两次数据传输的数据包时间之差;计算所述单向时延与所述当前网络的相邻两次数据传输的数据包时间之差的和,以得到当前网络的发送时延。
102.可选地,所述获取当前网络允许的最大发送时延,具体包括:根据以下公式获取当前网络允许的最大发送时延:当前网络允许的最大发送时延=当前网络的发送时延*(1 第二阈值),其中,第二阈值为允许的最大阈值。
103.实施例4:
104.如图5所示,本实施例提供一种数据传输方法,应用于系统,系统包括业务模块和云终端,云终端包括发送器、接收器。本实施例与实施例2的区别在于,将数据处理模块设置于接收器中,同时数据流缓存模块也位于接收器中。由于在接收器中可以接收到发送器发送的ackack,故rtt无需在数据传输方法流程中体现。同时为了便于描述,将发送器缓存设置为0。
105.所述数据传输方法包括:
106.s21,接收器的数据处理模块从业务模块读取input_delay,该参数与业务性质相关,在业务开通前进行配置。
107.s22,发送器向接收器的数据处理模块发送视频数据包,接收器的数据处理模块获取两个相邻的时间戳内记录的发送时间time_data1、time_data2。
108.s23,数据处理模块计算δtime_data。
109.s24,数据处理模块将第一个数据包的ack数据返回,即ack1。
110.s25,数据处理模块接收发送器发送的ackack1。
111.s26,数据处理模块根据ackack1计算rtt1。
112.s27,数据处理模块首先按照oneway_delay=rtt/2计算出oneway_delay1,之后按照send_delay=oneway_delay δtime_data计算出当前网络的发送时延send_delay1。
113.s28,数字处理模块判断当input_delay》send_delay1*(1 threshold)时,设置视频流缓存模块内的最大缓存数据包数量send_bitrate_max1=input_delay/send_delay1。
114.s29,系统按照srt正常的流程发送数据包,并进行数据缓存、进行akc、ackack、rtt等参数的交互。
115.s30,数据处理模块同步实时计算send_delay2。
116.s31,数据处理模块根据send_delay的变化计算δsend_delay,即δsend_delay=send_delay2-send_delay1。
117.s32,若δsend_delay《0,则调整send_bitrate_max2为input_delay/send_delay2,并指示视频流缓存在原有缓存后增加(send_bitrate_max2-send_bitrate_max1)的缓存空间,新增的数据包按时间对其进行填充;若δsend_delay》0,则调整send_bitrate_max2为input_delay/send_delay2,并指示视频流缓存在send_bitrate_max1的缓存空间内随机删除(send_bitrate_max2-send_bitrate_max1)个数据包。
118.s33,视频流缓存模块根据数据处理模块给出的参数对缓存进行调整。
119.实施例3-实施例4提供的数据传输方法,通过判断当前网络所允许的最大发送时延是否满足云终端的业务时延阈值,若满足,则可在当前接收端缓存数据包,并确定当前网络可缓存的最大数据包数量,以使接收端在缓存区缓存最大数据包数量相应的数据包。通过实时确定当前缓存区可缓存的数据包数量,以改善当前网络时延对业务的影响,从而使得srt在始终满足云终端的业务时延要求下,同时实现丢包重传机制,以保证数据传输质量,最终实现srt对于云终端业务的自适应性。特别地,在当前网络所允许的最大发送时延中设置第二阈值,可防止因网络的短时间发生小规模抖动而实时调整缓存数据包数量,以影响视频流的不连续,降低业务质量的情况发生。此外,采用随机删除数据包的方式,可防止出现删除连续的数据包造成视频间断的情况。
120.实施例5:
121.如图6所示,本实施例提供一种数据传输装置,应用于发送器,包括:
122.第一获取模块61,用于获取当前网络的发送时延和当前网络允许的最大发送时延。
123.第一判断模块62,与第一获取模块61连接,用于判断所述当前网络允许的最大发送时延是否小于业务时延阈值。
124.第一确定模块63,与第一判断模块62连接,用于响应于所述当前网络允许的最大发送时延小于所述业务时延阈值,将所述业务时延阈值与所述当前网络的发送时延之比,确定为当前缓存区的最大缓存数据包数量。
125.第一缓存模块64,与第一确定模块63连接,用于根据所述最大缓存数据包数量在发送端的缓存区缓存相应数量的数据包。
126.发送模块65,与第一缓存模块64连接,用于将缓存区的数据包发送至接收器。
127.可选地,数据传输装置还包括:第一调整模块,与第一缓存模块连接,用于根据所述当前网络的发送时延的变化趋势调整所述缓存区的数据包数量。
128.可选地,第一调整模块具体用于获取当前网络的相邻两次数据传输的发送时延之差,其中,所述当前网络的相邻两次数据传输的发送时延之差等于所述当前网络的发送时延减去前一次数据传输时网络的发送时延;还用于判断所述当前网络的相邻两次数据传输的发送时延之差是否大于第一阈值;以及,用于响应于所述当前网络的相邻两次数据传输的发送时延之差大于第一阈值,随机删除所述缓存区中目标数量的数据包。
129.可选地,第一调整模块还用于响应于所述当前网络的相邻两次数据传输的发送时延之差小于第一阈值,在所述缓存区中增加目标数量的数据包。
130.可选地,第一获取模块包括第一获取单元和第一计算单元。
131.第一获取单元,用于向接收器发送流量数据包,以使所述接收器根据所述流量数据包向所述发送器返回往返时延rtt;同时,获取控制报文中两个相邻时间戳对应的第一时刻和第二时刻。
132.第一计算单元,与第一获取单元连接,用于根据所述rtt、所述第一时刻和所述第二时刻,计算出当前网络的发送时延。
133.可选地,第一计算单元具体用于计算所述rtt的半值,以得到单向时延,并计算所述第二时刻与所述第一时刻的差值,以得到当前网络的相邻两次数据传输的数据包时间之差;以及,用于计算所述单向时延与所述当前网络的相邻两次数据传输的数据包时间之差的和,以得到当前网络的发送时延。
134.可选地,第一获取单元还用于根据以下公式获取当前网络允许的最大发送时延:当前网络允许的最大发送时延=当前网络的发送时延*(1 第二阈值),其中,第二阈值为允许的最大阈值。
135.实施例6:
136.如图7所示,本实施例提供一种数据传输装置,应用于接收器,包括:
137.第二获取模块71,用于获取当前网络的发送时延和当前网络允许的最大发送时延。
138.第二判断模块72,与第二获取模块71连接,用于判断所述当前网络允许的最大发送时延是否小于业务时延阈值。
139.第二确定模块73,与第二判断模块72连接,用于响应于所述当前网络允许的最大发送时延小于所述业务时延阈值,将所述业务时延阈值与所述当前网络的发送时延之比,确定为当前缓存区的最大缓存数据包数量。
140.接收模块74,用于接收发送器发送的数据包。
141.第二缓存模块75,与接收模块74和第二确定模块73连接,用于根据所述最大缓存数据包数量在缓存区缓存相应数量的数据包。
142.可选地,数据传输装置还包括:第二调整模块。
143.第二调整模块,与第二缓存模块连接,用于根据所述当前网络的发送时延的变化趋势调整所述缓存区的数据包数量。
144.可选地,第二调整模块具体用于获取当前网络的相邻两次数据传输的发送时延之差,其中,所述当前网络的相邻两次数据传输的发送时延之差等于所述当前网络的发送时延减去前一次数据传输时网络的发送时延;还用于判断所述当前网络的相邻两次数据传输的发送时延之差是否大于第一阈值;以及,用于响应于所述当前网络的相邻两次数据传输
的发送时延之差大于第一阈值,随机删除所述缓存区中目标数量的数据包。
145.可选地,第二调整模块还用于响应于所述当前网络的相邻两次数据传输的发送时延之差小于第一阈值,在所述缓存区中增加目标数量的数据包。
146.可选地,第二获取模块包括第二获取单元和第二计算单元。
147.第二获取单元,用于接收发送器发送的流量数据包并计算往返时延rtt;同时,用于获取控制报文中两个相邻时间戳对应的第一时刻和第二时刻。
148.第二计算单元,与第二获取单元连接,用于根据所述rtt、所述第一时刻和所述第二时刻,计算出当前网络的发送时延。
149.可选地,第二计算单元具体用于计算所述rtt的半值,以得到单向时延,并计算所述第二时刻与所述第一时刻的差值,以得到当前网络的相邻两次数据传输的数据包时间之差;以及,用于计算所述单向时延与所述当前网络的相邻两次数据传输的数据包时间之差的和,以得到当前网络的发送时延。
150.可选地,第二获取单元还用于根据以下公式获取当前网络允许的最大发送时延:当前网络允许的最大发送时延=当前网络的发送时延*(1 第二阈值),其中,第二阈值为允许的最大阈值。
151.实施例7:
152.如图8所示,本实施例提供一种发送器,包括存储器81和处理器82,所述存储器81中存储有计算机程序,所述处理器82被设置为运行所述计算机程序以实现如实施例1中所述的数据传输方法。
153.实施例8:
154.本实施例提供一种接收器,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以实现如实施例3所述的数据传输方法。
155.实施例5-实施例6提供的数据传输装置、实施例7提供的发送器、实施例8提供的接收器,通过在srt发送器或接收器增加数据处理模块以用于确认当前网络的实时时延与业务所需的时延是否匹配,以及,用于调整发送器或者接受器内的缓存来改善网络时延对业务的影响;通过对srt发送器/接收器内缓存的调整的算法增加了允许的最大阀值,可防止因网络的短时间发生小规模抖动而造成缓存的修改,影响视频流的不连续。此外,对于需要减少缓存的情况,采用随机删除数据包的方式,可防止出现删除连续的数据包造成的视频间断的情况。
156.可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献