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

数据传输方法、装置、终端及存储介质与流程

2022-03-23 01:29:54 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,特别涉及一种数据传输方法、装置、终端及存储介质。


背景技术:

2.目前,万物互融正逐渐成为未来的技术发展趋势,利用分布式架构可以助力快速实现万物互融。分布式架构可以实现不同的设备之间的快速连接、硬件能力共享,并进行跨设备数据同步管理以及任务调度。
3.在相关技术中,分布式架构中的各个设备之间可以通过基于udp(user datagram protocol,用户数据包协议)的可靠传输协议,比如,quic(quick udpinternet connection,快速udp网络连接)协议进行数据传输。
4.然而,基于quic协议进行设备之间的数据传输虽然具有较快的数据传输速度,但是无法满足延迟以及卡顿等方面的需求,导致数据传输效果较差。


技术实现要素:

5.本技术实施例提供了一种数据传输方法、装置、终端及存储介质,可以对不同类型的数据针对性地配置传输过程中的相关策略,从而满足不同业务下对数据传输的要求,进而提高了数据传输的效果。所述技术方案如下:
6.一方面,本技术实施例提供了一种数据传输方法,所述方法由数据发送设备执行,所述方法包括:
7.获取目标数据的数据类型;所述数据类型是基于所述目标数据所属业务的业务类型确定的;
8.基于所述目标数据的数据类型,确定目标传输策略;所述目标传输策略包括对所述目标数据的传输过程中的拥塞情况进行控制的相关信息;
9.基于所述目标传输策略,向数据接收设备发送所述目标数据。
10.一方面,本技术实施例提供了一种数据传输方法,所述方法由数据接收设备执行,所述方法包括:
11.接收数据发送设备发送的目标数据包;
12.获取目标传输策略;所述目标传输策略是基于所述目标数据包所属的目标数据的数据类型确定的;所述目标传输策略包括对所述目标数据的传输过程中的拥塞情况进行控制的相关信息;
13.基于所述目标传输策略,对所述目标数据包进行解析处理。
14.另一方面,本技术实施例提供了一种数据传输装置,所述装置用于数据发送设备中,所述装置包括:
15.类型获取模块,用于获取目标数据的数据类型;所述数据类型是基于所述目标数据所属业务的业务类型确定的;
16.策略确定模块,用于基于所述目标数据的数据类型,确定目标传输策略;所述目标传输策略包括对所述目标数据的传输过程中的拥塞情况进行控制的相关信息;
17.数据发送模块,用于基于所述目标传输策略,向数据接收设备发送所述目标数据。
18.另一方面,本技术实施例提供了一种数据传输装置,所述装置用于数据接收设备中,所述装置包括:
19.包接收模块,用于接收数据发送设备发送的目标数据包;
20.策略获取模块,用于获取目标传输策略;所述目标传输策略是基于所述目标数据包所属的目标数据的数据类型确定的;所述目标传输策略包括对所述目标数据的传输过程中的拥塞情况进行控制的相关信息;
21.包解析模块,用于基于所述目标传输策略,对所述目标数据包进行解析处理。
22.另一方面,本技术实施例提供了一种终端,所述终端包括处理器和存储器;所述存储器中存储有至少一条计算机指令,所述至少一条计算机指令由所述处理器加载并执行以实现如上述方面所述的数据传输方法。
23.另一方面,本技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一条计算机指令,所述计算机指令由处理器加载并执行以实现如上述方面所述的数据传输方法。
24.根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该终端执行上述方面的各种可选实现方式中提供的数据传输方法。
25.本技术实施例提供的技术方案的有益效果至少包括:
26.在进行某一项业务的过程中需要进行设备之间的数据传输时,数据发送侧可以基于该项业务中进行传输的目标数据的数据类型来确定目标数据的目标传输策略,以实现按照该目标传输策略对目标数据传输过程中的拥塞情况进行相应的控制,从而完成该项业务的目标数据的传输。由于不同业务过程中对数据传输的要求不同,因此,通过上述方案可以对不同业务的数据针对性地配置传输过程中的相关策略,有针对性地提高数据传输的性能,以满足不同业务下对数据传输的不同要求,进而提高了数据传输的效果。
附图说明
27.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
28.图1是根据一示例性实施例示出的一种应用场景示意图;
29.图2是根据一示例性实施例示出的一种数据传输方法的流程图;
30.图3是根据一示例性实施例示出的一种数据传输方法的流程图;
31.图4是根据另一示例性实施例示出的一种数据传输方法的流程图;
32.图5是图4所示实施例涉及的一种对目标数据进行处理并发送的流程图;
33.图6是图4所示实施例涉及的一种接收目标数据包进行处理的流程图;
34.图7是图4所示实施例涉及的一种数据传输过程的框架图;
35.图8是本技术一个示例性实施例提供的数据传输装置的结构框图;
36.图9是本技术一个示例性实施例提供的数据传输装置的结构框图;
37.图10示出了本技术一个示例性实施例提供的终端的结构方框图。
38.通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
39.为使本技术的目的、技术方案和优点更加清楚,下面将结合附图对本技术实施方式作进一步地详细描述。
40.在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
41.本技术后续实施例提供了一种数据传输的方案,可以在万物互融的应用场景下,实现设备之间的数据传输。
42.请参考图1,其示出了本技术各个实施例涉及的应用场景示意图。如图1所示,系统中包括至少两个终端100。比如,该终端100可以是智能手机、平板电脑、电子书阅读器、个人便携式计算机、智能家居设备等。
43.可选的,各个终端100之间在建立会话连接后可以进行数据传输。
44.在一种可能的情况下,各个终端100之间还可以通过有线网络或无线网络相连,可选地,无线网络或者有线网络使用标准通信技术和/或协议。网络通常为因特网、但也可以是任何网络,包括但不限于局域网(local areanetwork,lan)、城域网(metropolitan area network,man)、广域网(wide area network,wan)、移动、有线或者无线网络、专用网络或者虚拟专用网络的任何组合。在一些实施例中,使用包括超文本标记语言(hyper text mark-up language,html)、可扩展标记语言(extensible markup language,xml)等的技术和/或格式来代表通过网络交换的数据。此外还可以使用诸如安全套接字层(secure socket layer,ssl)、传输层安全(transport layer security,tls)、虚拟专用网络(virtual private network,vpn)、网际协议安全(internet protocol security,ipsec)等常规加密技术来加密所有或者一些链路。在另一些实施例中,还可以使用定制和/或专用数据通信技术取代或者补充上述数据通信技术。
45.图2示出了本技术一个示例性实施例提供的数据传输方法的流程图。其中,该数据传输方法可以由数据发送设备执行,该数据发送设备可以是终端,例如,该终端可以是上述图1所示应用场景中的终端100。该数据传输方法包括如下步骤:
46.步骤201,获取目标数据的数据类型;数据类型是基于目标数据所属业务的业务类型确定的。
47.在本技术实施例中,数据发送设备在处理业务的过程中,可以生成需要进行数据传输的目标数据,数据发送设备可以通过该目标数据所属的业务对应的业务类型获取该目标数据的数据类型。
48.其中,目标数据是数据发送设备中等待向数据接收设备发送的数据;目标数据可以是数据发送设备执行某一业务时,需要向数据接收设备发送的数据;数据发送设备在执
行某一业务时,生成的需要向数据接收设备传输的目标数据的数据类型可以与该业务的业务类型有关。
49.比如,在数据发送设备执行视频投屏业务时,需要向数据接收设备发送的目标数据可以是数据类型为音视频的数据;在数据发送设备执行文件传输业务时,需要向数据接收设备发送的目标数据可以是数据类型为文件的数据;在数据发送设备执行对投屏游戏内容的操作时,需要向显示游戏画面的数据接收设备发送的目标数据可以是数据类型为用于控制信道的消息的数据。
50.步骤202,基于目标数据的数据类型,确定目标传输策略;目标传输策略包括对目标数据的传输过程中的拥塞情况进行控制的相关信息。
51.在本技术实施例中,数据发送设备可以基于获取到的目标数据的数据类型,确定选择的目标传输策略。
52.在一种可能的实现方式中,数据发送设备中预先存储有至少一种传输策略,数据发送设备基于获取到的目标数据的数据类型从至少一种传输策略中选择与目标数据的数据类型相对应的目标传输策略。
53.其中,至少一种传输策略中包括的对数据的传输过程中的拥塞情况进行控制的相关信息可以是不同的。比如,至少一种传输策略中包括的相关信息的种类可以是相同的,各个种类的相关信息各自对应的参数可以是不同的。
54.在一种可能的实现方式中,上述目标传输策略包括缓冲区相关策略、组包相关策略以及丢包相关策略中的至少一种。上述缓冲区相关策略用于对数据传输过程所使用的缓冲区进行控制;上述组包相关策略用于对数据包生成和解析过程进行控制;上述丢包相关策略用于控制数据包是否丢弃。
55.比如,各个传输策略中均可以包括对数据进行传输过程中数据的数据包格式的定义,各个传输策略各自对应的数据包格式可以是不同的;各个传输策略中均可以包括对数据进行传输过程中数据的发送缓冲区大小的定义,各个传输策略各自对应的发送缓冲区大小的参数值可以是不同的。
56.或者,上述至少一种传输策略中包括的相关信息的种类也可以不同。
57.步骤203,基于目标传输策略,向数据接收设备发送目标数据。
58.在本技术实施例中,数据发送设备按照选择的目标传输策略中包括的相关信息向数据接收设备发送目标数据。
59.在一种可能的实现方式中,数据发送设备在与数据接收设备建立数据传输连接后,可以按照选择的目标传输策略中包括的相关信息通过建立的数据传输连接向数据接收设备发送目标数据。
60.综上所述,本技术实施例中,在进行某一项业务的过程中需要进行设备之间的数据传输时,数据发送侧可以基于该项业务中进行传输的目标数据的数据类型来确定目标数据的目标传输策略,以实现按照该目标传输策略对目标数据传输过程中的拥塞情况进行相应的控制,从而完成该项业务的目标数据的传输。由于不同业务过程中对数据传输的要求不同,因此,通过上述方案可以对不同业务的数据针对性地配置传输过程中的相关策略,有针对性地提高数据传输的性能,以满足不同业务下对数据传输的不同要求,进而提高了数据传输的效果。
61.图3示出了本技术一个示例性实施例提供的数据传输方法的流程图。其中,该数据传输方法可以由数据接收设备执行,该数据接收设备可以是终端,例如,该终端可以是上述图1所示应用场景中的终端100。该数据传输方法包括如下步骤:
62.步骤301,接收数据发送设备发送的目标数据包。
63.在本技术实施例中,数据接收设备从网络中接收到由数据发送设备发送的目标数据包。
64.在一种可能的实现方式中,数据接收设备依次接收由数据发送设备发送的多个目标数据包。
65.其中,目标数据包是由数据发送设备将目标数据按照确定的目标传输策略进行处理后生成的数据包,基于上述目标数据,数据发送设备可以对应生成多个目标数据包。数据接收设备通过接收数据发送设备发送的各个目标数据包,可以解析得到对应的目标数据。
66.步骤302,获取目标传输策略;目标传输策略是基于目标数据包所属的目标数据的数据类型确定的;目标传输策略包括对目标数据的传输过程中的拥塞情况进行控制的相关信息。
67.在本技术实施例中,数据接收设备根据目标数据包所属的目标数据的数据类型,可以确定该目标数据在传输过程中使用的目标传输策略。其中,不同的数据类型可以对应不同的传输策略。
68.在一种可能的实现方式中,数据接收设备在与数据发送设备建立会话连接后,通过接收到该目标数据的会话连接,可以获取到目标数据对应的数据类型,数据接收设备根据该数据类型确定目标传输策略。
69.其中,在数据接收设备中可以同样存在预先存储的传输策略,当数据接收设备接收到目标数据对应的数据包,且确定了对应的数据类型后,可以将预先存储的传输策略中,与该数据类型对应的传输策略作为解析该数据包的目标传输策略。
70.步骤303,基于目标传输策略,对目标数据包进行解析处理。
71.在本技术实施例中,数据接收设备根据确定的目标传输策略,按照目标传输策略中的相关信息对目标数据包进行解析处理,获取到各个目标数据包对应的目标数据。
72.在一种可能的实现方式中,数据接收设备根据确定的目标传输策略依次对目标数据包进行解析处理,得到各个目标数据包对应的目标数据。
73.综上所述,本技术实施例中,在进行某一项业务的过程中需要进行设备之间的数据传输时,数据发送侧可以基于该项业务中进行传输的目标数据的数据类型来确定目标数据的目标传输策略,以实现按照该目标传输策略对目标数据传输过程中的拥塞情况进行相应的控制,从而完成该项业务的目标数据的传输。由于不同业务过程中对数据传输的要求不同,因此,通过上述方案可以对不同业务的数据针对性地配置传输过程中的相关策略,有针对性地提高数据传输的性能,以满足不同业务下对数据传输的不同要求,进而提高了数据传输的效果。
74.示例性的,为了实现多个设备之间的协同运作,使得多个设备如同一个设备一样向用户提供服务,需要解决设备之间数据传输所带来的数据传输不稳定的情况、数据传输过程存在数据丢失的情况、数据传输过程中的传输延迟情况等问题,在执行不同业务时所需要着重解决的数据传输过程中的问题是不同的,比如,在业务a中需要数据传输完整无
误,但是对数据传输的时间没有严格的要求,此时可以针对性的提高数据传输的可靠性,从而提高设备业务a的执行效果。针对不同的业务场景,可以使用不同的数据传输方法,从而在存在缓存数据需要设备之间进行传输时最大限度的优化用户体验。
75.图4示出了本技术一个示例性实施例提供的数据传输方法的流程图。其中,该数据传输方法可以由数据发送设备和数据接收设备交互执行,该数据发送设备和数据接收设备可以是终端,例如,该终端可以是上述图1所示应用场景中的终端100。该数据传输方法包括如下步骤:
76.步骤401,数据发送设备获取目标数据的数据类型。
77.在本技术实施例中,当数据发送设备执行业务时,生成需要向数据接收设备发送的目标数据,在目标数据生成后,根据该目标数据所属的业务的业务类型,确定该目标数据的数据类型。
78.在一种可能的实现方式中,数据发送设备在执行业务时,通过指定的应用程序运行该业务,通过该应用程序生成对应的目标数据,通过初始化的用于数据发送的应用程序接口(application programming interface,api),传入业务类型,得到对应的有效负载类型参数(即上述数据类型)。
79.步骤402,数据发送设备基于目标数据的数据类型,与数据接收设备建立用于发送目标数据的会话连接。
80.在本技术实施例中,数据发送设备根据获取到的目标数据的数据类型,与数据接收设备建立用于发送目标数据的会话连接。
81.在一种可能的实现方式中,数据发送设备生成会话连接标识,基于会话连接标识,与数据接收设备建立会话连接。
82.其中,会话连接标识中可以包含类型指示信息,类型指示信息可以用于指示目标数据的数据类型。
83.也就是说,数据发送设备通过初始化api传入目标数据对应的有效负载类型参数,生成对应的会话连接标识,该会话连接标识可以包含用于指示目标数据的数据类型的类型指示信息,并且根据该会话连接标识可以与数据接收设备建立会话连接。
84.示例性的,通过数据发送设备的初始化api传入有效负载类型参数对应的代码内容为,
85.int initalize(payload_typepayloadtype);
86.其中,payload_type为有效负载类型参数,payloadtype为有效负载类型参数值。
87.示例性的,当数据接收设备建立会话连接时,可以通过传入的会话连接标识建立与数据发送设备之间的会话连接,该通过会话连接标识与数据发送设备建立会话连接的过程对应的伪代码可以是,
88.bool connect(intsessionid);
89.其中,sessionid可以是会话连接标识。
90.步骤403,数据发送设备基于目标数据的数据类型,确定目标传输策略。
91.在本技术实施例中,数据发送设备根据获取到的目标数据的数据类型,确定进行目标数据传输时使用的目标传输策略。
92.其中,数据类型可以是基于目标数据所属业务的业务类型确定的。目标传输策略
可以包括对目标数据的传输过程进行控制的相关信息。
93.在一种可能的实现方式中,数据发送设备中包含用于发送目标数据的api、用于暂时存放目标数据的发送缓冲区域、用于对目标数据进行处理以及对处理后的数据进行数据发送的发送组件。
94.其中,通过调用用于发送目标数据的api,可以得到目标数据对应的发送缓冲区域以及对应的会话连接标识。该用于发送目标数据的api对应的伪代码可以是,
95.int send(char*buffer,int bufferlen,sessionid);
96.其中,buffer为发送缓冲区域,bufferlen为发送缓冲区域长度,sessionid可以是int initalize(payload_type payloadtype)的返回值,即会话连接标识。
97.在一种可能的实现方式中,当目标数据在发送缓冲区域中时,根据获取到的会话连接标识得到指示的目标数据的数据类型,从拥塞控制器中选择与该数据类型对应的传输策略作为目标传输策略。
98.其中,拥塞控制器中包括至少一个预先存储的传输策略,以供数据发送设备需要进行目标数据传输时从中选择与目标数据的数据类型相匹配的传输策略作为目标传输策略。
99.示例性的,该数据传输方法可以预先定义了五个数据类型的枚举值,以供用户业务方从中选择传输策略。该数据类型定义的代码可以是如下内容:
100.enum{payload_message,
101.payload_file,
102.payload_audio_stream,
103.payload_videostream_only,
104.payload_videostream_withcontrol}payload_type;
105.其中,payload_message为消息传输数据类型,payload_file为文件传输数据类型,payload_audio_stream为音频传输数据类型,payload_videostream_only是单向视频传输数据类型,payload_videostream_withcontrol是反控视频传输数据类型。
106.其中,拥塞控制器中可以包含与各个数据类型各自相对应的传输策略。
107.比如,与消息传输数据类型相对应的目标传输策略可以是消息传输策略,与文件传输数据类型相对应的目标传输策略可以是文件传输策略,与音频传输数据类型相对应的目标传输策略可以是音频传输策略,与单向视频传输数据类型相对应的目标传输策略可以是单向视频传输策略,与反控视频传输数据类型相对应的目标传输策略可以是反控视频传输策略。
108.在一种可能的实现方式中,目标传输策略包括以下信息中的至少一种:发送缓冲区大小、接收缓冲区大小、数据包格式、分包策略、可靠性要求参数、发送端的丢包处理策略、以及接收端的丢包处理策略。
109.其中,丢包处理策略包括以下策略中的至少一种:是否启用数据包重传、是否启用数据包前向纠错编码、以及是否允许丢弃数据包。
110.也就是说,目标传输策略中包括的发送缓冲区大小可以用于从发送方一侧控制缓冲的数据量;目标传输策略中包括的接收缓冲区大小可以用于从接收方一侧控制接收缓冲的数据量。
111.步骤404,数据发送设备基于目标传输策略,向数据接收设备发送目标数据。
112.在本技术实施例中,数据发送设备基于确定的目标传输策略中包含的相关信息对目标数据进行处理后发送给数据接收设备。
113.在一种可能的实现方式中,目标传输策略中包括发送缓冲区大小、接收缓冲区大小、数据包格式、分包策略、可靠性要求参数、发送端的丢包处理策略、以及接收端的丢包处理策略中的一个或者多个信息,在目标传输策略中包括的信息不同的情况下,根据目标传输策略对目标数据进行处理以及向数据接收设备发送的步骤是不同的。
114.1)在目标传输策略中包括数据包格式以及分包策略的情况下。
115.获取目标传输策略中的分包策略包括的分包大小;将目标数据按照分包大小进行拆分,获得各个数据包的包体;按照目标传输策略中的数据包格式,生成各个数据包的包头;将各个数据包的包头与各个数据包的包体进行组合,生成各个数据包;向数据接收设备发送各个数据包。
116.其中,分包大小可以是对目标数据进行分包处理时各个包体对应的数据长度。
117.在一种可能的实现方式中,各个数据包对应的包头中包括基本信息以及自定义信息,该包头中包含的基本信息是各个传输策略中均进行定义的信息,自定义信息是目标传输策略中自定义配置的数据包信息。
118.比如,包头的基本信息可以包括数据包的包序号,包头的自定义信息可以包括该数据包是否包含关键帧的信息,也可以包括按照流媒体协议该数据包属于p帧或者i帧的信息。
119.2)在目标传输策略中包括发送端的丢包处理策略的情况下。
120.在发送端的丢包处理策略中包含启用数据包前向纠错编码的策略的情况下,对目标数据进行前向纠错编码,并基于目标传输策略,向数据接收设备发送前向纠错编码后的目标数据。在发送端的丢包处理策略中包含不启用数据包前向纠错编码的策略的情况下,跳过前向纠错编码的步骤,基于目标传输策略,向数据接收设备发送目标数据。
121.也就是说,根据目标传输策略中包括的是否启用数据包前向纠错编码的策略,可以确定是否对目标数据进行前向纠错编码。
122.在一种可能的实现方式中,根据业务需求数据包支持可靠传输以及直接丢弃。
123.比如,视频流的关键帧为支持可靠传输的数据包,视频流的非关键帧为直接丢弃的数据包。
124.示例性的,图5是本技术涉及的一种对目标数据进行处理并发送的流程图。如图5所示,当等待传输的目标数据传入发送缓冲区域时,可以基于目标数据对应的数据类型从各个传输策略中选取相对应的目标传输策略,根据该目标传输策略中包含的缓冲区域大小确定支持在发送缓冲区域中暂存的数据的数据量,在发送缓冲区中的数据可以是等待进行数据处理与发送的数据。根据该目标传输策略,确定该目标传输策略中是否包含前向纠错编码配置(s51),当确定目标传输策略中包含用于指示目标数据需要进行前向纠错编码的配置信息,则对接收到的目标数据进行前向纠错编码,根据该前向纠错编码的算法计算目标数据经过前向纠错编码后生成的编码数据(s52),当确定目标传输策略中包含用于指示目标数据不需要进行前向纠错编码的配置信息时,可以直接进行分包处理,或者对目标数据进行前向纠错编码后生成的前向纠错编码后的目标数据进行分包处理(s53),其中,目标
传输策略中包括定义的分包大小,根据分包大小对目标数据或者编码后的目标数据拆分成各个数据包的包体。然后按照目标传输策略中包括的数据包格式,生成各个包体对应的包头(s54),接着将包头与相对应的数据包的包体进行组合,生成包头与包体拼接得到的数据包(s55),将拼接得到的各个数据包添加到发送队列中,按照排队的顺序依次向数据接收设备发送各个数据包(s56)。
125.在一种可能的实现方式中,目标传输策略是消息传输策略、文件传输策略、音频传输策略、单向视频传输策略以及反控视频传输策略中一种。
126.其中,消息传输策略用于对控制信道的消息传输过程进行控制;文件传输策略用于对离线文件的传输过程进行控制;音频传输策略用于对实时的音频流数据的传输过程进行控制;单向视频传输策略用于对视频流数据的传输过程进行控制;反控视频传输策略用于对视频流数据以及基于视频流数据反馈的控制信息的传输过程进行控制。
127.示例性的,按照预先定义的五个数据类型的枚举值,配置对应的传输策略,各个传输策略中可以包括如下内容:
128.1)若确定目标传输策略是消息传输策略时,消息传输策略对应的目标数据的数据类型可以为控制消息,由于控制消息的带宽比较小,平均带宽可以是10kb/s,则在传输该种数据时需要满足实时性较高并且具有一定的可靠性的要求,所以配置的用来传输该种类型的目标数据的目标传输策略可以配置较小的发送缓冲区域以及接收缓冲区域,并且需要配置启动前向纠错编码。该消息传输策略的配置代码可以如下:
[0129][0130]
其中,“message_strategy”用于指示消息传输策略,“reliable”:“yes”用于指示该数据包配置有可靠性参数,“sendbuffersize”:“16kb”用于指示发送该数据包的发送缓冲区域的大小为16kb,“recvbuffersize”:“16kb”用于指示接收该数据包的接收缓冲区域的大小为16kb,“fec”:“on”用于指示该数据包进行传输时开启前向纠错编码的配置,“retry”:“no”用于指示该数据包不进行重传,“packetformat:“...”用于定义数据包的包格式。
[0131]
比如,在将游戏画面投屏到数据接收设备上显示,通过数据发送设备进行游戏控制数据发送的过程中,需要对控制数据进行传输,根据确定的消息传输策略传输该控制数据。
[0132]
2)若确定目标传输策略是文件传输策略时,文件传输策略对应的目标数据的数据类型可以为文件数据,由于进行离线文件传输的过程中要求的带宽比较大,并且对整体文件传输完成时间的要求比较高,即文件传输需要完整且快速,并且对传输过程中的稳定性不做要求,即可以在传输过程中时快时慢,所以配置的用来传输该种类型的目标数据的目
标传输策略可以配置较大的发送缓冲区域以及接收缓冲区域,并且需要配置关闭前向纠错编码。该文件传输策略的配置代码可以如下:
[0133][0134]
其中,“file_strategy”用于指示文件传输策略,“sendbuffersize”:“32mb”以及“recvbuffersize”:“32mb”分别指示了发送该数据包的发送缓冲区域的大小以及接收该数据包的接收缓冲区域的大小均为32mb,“fec”:“off”用于指示配置管理前向纠错编码,“retry”:“yes”用于指示若传输出现数据丢失的情况需要进行数据重传。
[0135]
3)若确定目标传输策略是音频传输策略时,音频传输策略对应的目标数据的数据类型可以为实时的音频数据,由于进行实时音频数据传输的过程中要求的带宽比较小,一般为10kbps左右,并且对音频数据传输的实时性要求比较高,同时也要求传输过程比较平稳,并且在网络不稳定的情况下,可以通过丢弃部分数据包实现音频传输的流畅性,由于进行前向纠错编码需要占用较多的cpu,所以配置的用来传输该种类型的目标数据的目标传输策略可以配置较小的发送缓冲区域以及接收缓冲区域,需要配置关闭前向纠错编码,并且配置丢包处理策略。该音频传输策略的配置代码可以如下:
[0136][0137]
比如,在进行语音对话的过程中,需要对实时的音频数据进行传输,为了满足通话过程的平稳,按照音频传输策略传输该音频数据。
[0138]
4)若确定目标传输策略是单向视频传输策略时,单向视频传输策略对应的目标数据的数据类型可以为视频流数据,在进行视频流数据传输的过程中带宽要求比较高,对视频流数据传输的实时性要求一般,但是要求传输过程比较平稳,由于该带宽较大需要配置关闭前向纠错编码,所以配置的用来传输该种类型的目标数据的目标传输策略可以配置较大的发送缓冲区域以及接收缓冲区域,需要配置关闭前向纠错编码。该单向视频传输策略的配置代码可以如下:
[0139][0140]
比如,该单向视频传输策略可以应用在包括进行直播以及视频点播在内的业务场景下进行数据传输的过程中。
[0141]
5)若确定目标传输策略是反控视频传输策略时,反控视频传输策略对应的目标数据的数据类型可以为控制信息数据,所属的业务场景是在接收实时视频流的同时对控制信息数据进行传输。在进行控制信息数据传输的过程中带宽要求和实时性要求均比较高,同时也要求传输过程比较平稳,但是可以进行数据帧的部分丢弃。所以配置的用来传输该种类型的目标数据的目标传输策略可以配置较大的发送缓冲区域以及接收缓冲区域,需要配置关闭前向纠错编码。该单向视频传输策略的配置代码可以如下:
[0142][0143]
其中,“retry”:“noinsendrecv”用于指示若数据接收设备或者数据发送设备检测到发送缓冲区域或者接收缓冲区域大小中暂存的数据包达到执行阈值时,使得数据发送设备丢弃该数据包,以保证该目标数据传输的实时性。
[0144]
比如,该反控视频传输策略可以应用在数据接收设备接收有实时视频流数据的同时,数据发送设备向接收端发送控制信息的过程。该反控视频传输策略可以应用在基于投屏的远程桌面应用,除了桌面的视频流要传输到接收端,接收端对图形的控制输入信息也要传回发送端的情况下。
[0145]
步骤405,数据接收设备接收数据发送设备发送的目标数据包。
[0146]
在本技术实施例中,数据接收设备可以从网络中接收到数据发送设备发送的各个数据包,该目标数据包可以是由数据发送设备发送的各个数据包中的任意一个。
[0147]
在一种可能的实现方式中,按照数据发送设备向数据接收设备传输的各个数据包的顺序,依次获取各个数据包。
[0148]
步骤406,数据接收设备根据目标数据包所属的目标数据的数据类型,确定目标传输策略。
[0149]
在本技术实施例中,数据接收设备在根据目标数据包所属的目标数据的数据类
型,确定目标传输策略之前,可以基于接收目标数据包的会话连接,获取目标数据的数据类型。
[0150]
例如,数据接收设备可以接收到目标数据包时,获取接收该目标数据包的会话连接的会话连接标识,然后基于该会话连接标识中的类型指示信息,获取该目标数据的数据类型。
[0151]
其中,在数据发送设备与数据接收设备建立会话连接时,数据接收设备可以获取到数据发送设备传入的会话连接标识,并根据该会话连接标识建立会话连接,后续通过该会话连接接收到目标数据包时,数据接收设备可以根据该会话连接标识,确定目标数据包所属的目标数据对应的数据类型,然后再基于数据类型确定目标传输策略。
[0152]
在一种可能的实现方式中,数据发送设备与数据接收设备在建立会话连接时,数据接收设备从接收到的会话连接标识中获取到目标数据的数据类型,并且根据获取到的该数据类型确定目标传输策略,然后建立目标传输策略与会话连接标识之间的对应关系,使得后续数据接收设备接收到目标数据包后,直接通过接收目标数据包的会话连接的会话连接标识,查询上述建立的对应关系,得到该会话连接标识对应的目标传输策略。
[0153]
也就是说,数据接收设备在接收目标数据包时,可以通过该会话连接的会话连接标识直接查询在会话连接建立后建立的会话连接标识与目标传输策略的对应关系,无需在接收到目标数据包后通过会话连接标识获取数据类型,再根据数据类型确定目标传输策略,使得在接收到目标数据包后确定目标传输策略的步骤更加简便,提高了目标数据包传输的流畅性。
[0154]
其中,目标传输策略包括以下信息中的至少一种:发送缓冲区大小、接收缓冲区大小、数据包格式、分包策略、可靠性要求参数、发送端的丢包处理策略、以及接收端的丢包处理策略。
[0155]
其中,丢包处理策略包括以下策略中的至少一种:是否启用数据包重传、是否启用数据包前向纠错编码、以及是否允许丢弃数据包。
[0156]
步骤407,基于目标传输策略,对目标数据包进行解析处理。
[0157]
在本技术实施例中,数据接收设备可以根据确定的目标传输策略对接收到的各个目标数据包进行解析处理。
[0158]
在一种可能的实现方式中,目标传输策略中包括发送缓冲区大小、接收缓冲区大小、数据包格式、分包策略、可靠性要求参数、发送端的丢包处理策略、以及接收端的丢包处理策略中的一个或者多个信息,在目标传输策略中包括的信息不同的情况下,根据目标传输策略对目标数据进行解析步骤以及后续步骤是不同的。
[0159]
1)在目标传输策略中包括数据包格式的情况下。
[0160]
其中,数据接收设备可以按照目标传输策略中的数据包格式,对目标数据包进行解析处理。
[0161]
2)在目标传输策略中包括接收端的丢包处理策略的情况下。
[0162]
若目标数据包的包序号与上一个接收到的,且属于目标数据的数据包的包序号不连续,则基于接收端的丢包处理策略对目标数据包进行处理。
[0163]
也就是说,目标数据包的包序号与上一个接收到的且属于目标数据的数据包的包序号不连续,可以指示目标数据的数据包传输过程中出现了数据传输丢失的情况,在这种
情况下可以按照目标传输策略中的丢包处理策略对目标数据包进行处理,以降低数据传输丢失对所属业务产生的影响。
[0164]
其中,在接收端的丢包处理策略中包含启用数据包重传的情况下,基于丢包序号向数据发送设备发送重传通知;丢包序号是目标数据包的包序号,与上一个接收到的且属于目标数据的数据包的包序号之间的其它序号。
[0165]
在接收端的丢包处理策略中包含启用前向纠错编码的情况下,对目标数据包进行前向纠错解码。
[0166]
在接收端的丢包处理策略中包含允许丢弃数据包的情况下,若目标数据包属于允许丢弃的数据包,则将目标数据包丢弃。
[0167]
示例性的,图6是本技术实施例涉及的一种接收目标数据包进行处理的流程图。如图6所示,数据接收设备可以从网络中接收到一个最大传输单元的数据包(s61),数据接收设备根据在会话连接建立时接收到的会话连接标识,当数据接收设备接收到目标数据包时,根据会话连接标识确定目标数据包所属目标数据的数据类型,并且根据数据类型确定该目标数据对应的目标传输策略(s62)。按照该目标传输策略中包含的数据包的包格式,对接收到的目标数据包进行解析,得到目标数据包对应的包体数据(s63),判断本次接收到的数据包的包头中的包序号与上一次获取到的数据包包头中的包序号是否为连续的(s64),若判断相邻数据包各自对应的包序号不连续,则可以确定存在数据包丢失的情况,因此需要根据目标传输策略中包含的丢包处理策略对数据包进行处理(s65),该丢包处理策略可以包括三种情况,一种情况下,若目标传输策略中配置有该数据包可丢弃,则直接丢弃该数据包,一种情况下,若目标传输策略中配置有启动了前向纠错编码,则可以将目标数据包基于前向纠错编码进行解码,从而尝试根据丢失数据包前后相邻的数据包恢复该数据包,还有一种情况下,若目标传输策略中包括重传配置,则可以通知数据发送设备重新传输丢失的数据包。在对数据包处理完成后或者相邻数据包的包序号为连续的时,将数据包的包体暂存在接收缓冲区域中(s66),该接收缓冲区域的大小可以根据目标传输策略进行配置。通过回调接收api通知业务方获取接收缓存区域中暂存的目标数据(s67)。
[0168]
示例性的,图7是本技术实施例涉及的一种数据传输过程的框架图。如图7所示,数据发送设备中可以包括发送应用接口71、发送缓冲区域72、发送组件73、前向纠错编码器74、拥塞控制器75以及发送方丢包记录器76。数据接收设备中可以包括接收应用接口79、接收缓冲区域78、接收组件77、前向纠错解码器710以及接受包丢包记录器711。数据发送设备以及数据接收设备之间通过用户数据包协议传输通道进行连接。拥塞控制器中包括各个传输策略。其中,虚线箭头对应为数据接收设备返回的接收状态的控制信息。目标数据通过发送应用接口71,发送到发送缓冲区域72中进行暂存,并且同时可以通过拥塞控制器75选择确认目标传输策略,然后通过发送组件73对目标数据按照目标传输策略进行处理,若按照目标传输策略需要启动前向纠错编码,则通过前向纠错编码器74对目标数据进行编码后再在发送组件73中进行其他处理,基于用户数据包协议传输通道,通过发送组件73向数据接收设备发送各个数据包,数据接收设备通过接收组件77对数据包进行解析处理,若按照目标传输策略需要启动前向纠错编码,则通过前向纠错解码器710对目标数据进行解码。将处理完成的数据暂存在接收缓冲区域78中,通过接收应用接口79通知业务方对应的客户端接收目标数据。
[0169]
综上所述,本技术实施例中,在进行某一项业务的过程中需要进行设备之间的数据传输时,数据发送侧可以基于该项业务中进行传输的目标数据的数据类型来确定目标数据的目标传输策略,以实现按照该目标传输策略对目标数据传输过程中的拥塞情况进行相应的控制,从而完成该项业务的目标数据的传输。由于不同业务过程中对数据传输的要求不同,因此,通过上述方案可以对不同业务的数据针对性地配置传输过程中的相关策略,有针对性地提高数据传输的性能,以满足不同业务下对数据传输的不同要求,进而提高了数据传输的效果。
[0170]
图8示出了本技术一个示例性实施例提供的数据传输装置的结构框图。该数据传输装置用于数据发送设备中,该数据传输装置包括:
[0171]
类型获取模块810,用于获取目标数据的数据类型;所述数据类型是基于所述目标数据所属业务的业务类型确定的;
[0172]
策略确定模块820,用于基于所述目标数据的数据类型,确定目标传输策略;所述目标传输策略包括对所述目标数据的传输过程进行控制的相关信息;
[0173]
数据发送模块830,用于基于所述目标传输策略,向数据接收设备发送所述目标数据。
[0174]
在一种可能的实现方式中,所述目标传输策略包括以下信息中的至少一种:
[0175]
发送缓冲区大小、接收缓冲区大小、数据包格式、分包策略、可靠性要求参数、发送端的丢包处理策略、以及接收端的丢包处理策略;
[0176]
其中,所述丢包处理策略包括以下策略中的至少一种:
[0177]
是否启用数据包重传、是否启用数据包前向纠错编码、以及是否允许丢弃数据包。
[0178]
在一种可能的实现方式中,在所述目标传输策略中包括所述数据包格式以及所述分包策略的情况下,所述数据发送模块830,包括:
[0179]
尺寸获取子模块,用于获取所述目标传输策略中的所述分包策略包括的分包大小;
[0180]
包体获取子模块,用于将所述目标数据按照所述分包大小进行拆分,获得各个数据包的包体;
[0181]
包头生成子模块,用于按照所述目标传输策略中的所述数据包格式,生成各个所述数据包的包头;
[0182]
数据包生成子模块,用于将各个所述数据包的包头与各个所述数据包的包体进行组合,生成各个所述数据包;
[0183]
数据包发送子模块,用于向所述数据接收设备发送各个所述数据包。
[0184]
在一种可能的实现方式中,在所述目标传输策略中包括所述发送端的丢包处理策略的情况下,所述数据发送模块830,包括:
[0185]
第一发送子模块,用于在所述发送端的丢包处理策略中包含启用数据包前向纠错编码的策略的情况下,对所述目标数据进行前向纠错编码,并基于所述目标传输策略,向所述数据接收设备发送前向纠错编码后的目标数据;
[0186]
第二发送子模块,用于在所述发送端的丢包处理策略中包含不启用数据包前向纠错编码的策略的情况下,跳过前向纠错编码的步骤,基于所述目标传输策略,向所述数据接收设备发送所述目标数据。
[0187]
在一种可能的实现方式中,所述装置还包括:
[0188]
会话建立模块,用于基于所述目标传输策略,向数据接收设备发送所述目标数据之前,基于所述目标数据的数据类型,与所述数据接收设备建立用于发送所述目标数据的会话连接。
[0189]
在一种可能的实现方式中,所述会话建立模块,包括:
[0190]
标识生成子模块,用于生成会话连接标识,所述会话连接标识中包含类型指示信息;所述类型指示信息用于指示所述目标数据的数据类型;
[0191]
会话建立子模块,用于基于所述会话连接标识,与所述数据接收设备建立所述会话连接。
[0192]
在一种可能的实现方式中,所述目标传输策略是消息传输策略、文件传输策略、音频传输策略、单向视频传输策略以及反控视频传输策略中一种;
[0193]
其中,所述消息传输策略用于对控制信道的消息传输过程进行控制;所述文件传输策略用于对离线文件的传输过程进行控制;所述音频传输策略用于对实时的音频流数据的传输过程进行控制;所述单向视频传输策略用于对视频流数据的传输过程进行控制;所述反控视频传输策略用于对视频流数据以及基于所述视频流数据反馈的控制信息的传输过程进行控制。
[0194]
综上所述,本技术实施例中,在进行某一项业务的过程中需要进行设备之间的数据传输时,数据发送侧可以基于该项业务中进行传输的目标数据的数据类型来确定目标数据的目标传输策略,以实现按照该目标传输策略对目标数据传输过程中的拥塞情况进行相应的控制,从而完成该项业务的目标数据的传输。由于不同业务过程中对数据传输的要求不同,因此,通过上述方案可以对不同业务的数据针对性地配置传输过程中的相关策略,有针对性地提高数据传输的性能,以满足不同业务下对数据传输的不同要求,进而提高了数据传输的效果。
[0195]
图9示出了本技术一个示例性实施例提供的数据传输装置的结构框图。该数据传输装置用于数据接收设备中,该数据传输装置包括:
[0196]
包接收模块910,用于接收数据发送设备发送的目标数据包;
[0197]
策略获取模块920,用于根据所述目标数据包所属的目标数据的数据类型,确定目标传输策略;所述目标传输策略包括对所述目标数据的传输过程进行控制的相关信息;
[0198]
包解析模块930,用于基于所述目标传输策略,对所述目标数据包进行解析处理。
[0199]
在一种可能的实现方式中,所述目标传输策略包括以下信息中的至少一种:
[0200]
发送缓冲区大小、接收缓冲区大小、数据包格式、分包策略、可靠性要求参数、发送端的丢包处理策略、以及接收端的丢包处理策略;
[0201]
其中,所述丢包处理策略包括以下策略中的至少一种:
[0202]
是否启用数据包重传、是否启用数据包前向纠错编码、以及是否允许丢弃数据包。
[0203]
在一种可能的实现方式中,在所述目标传输策略中包括所述数据包格式的情况下,所述包解析模块930,包括:
[0204]
包处理子模块,用于按照所述目标传输策略中的所述数据包格式,对所述目标数据包进行解析处理。
[0205]
在一种可能的实现方式中,在所述目标传输策略中包括所述接收端的丢包处理策
略的情况下,所述装置还包括:
[0206]
包处理模块,用于若所述目标数据包的包序号与上一个接收到的,且属于所述目标数据的数据包的包序号不连续,则基于所述接收端的丢包处理策略对所述目标数据包进行处理。
[0207]
在一种可能的实现方式中,所述包处理模块,包括:
[0208]
重传子模块,用于在所述接收端的丢包处理策略中包含启用数据包重传的情况下,基于丢包序号向所述数据发送设备发送重传通知;所述丢包序号是所述目标数据包的包序号,与上一个接收到的且属于所述目标数据的数据包的包序号之间的其它序号;
[0209]
解码子模块,用于在所述接收端的丢包处理策略中包含启用前向纠错编码的情况下,对所述目标数据包进行前向纠错解码;
[0210]
丢弃子模块,用于在所述接收端的丢包处理策略中包含允许丢弃数据包的情况下,若所述目标数据包属于允许丢弃的数据包,则将所述目标数据包丢弃。
[0211]
在一种可能的实现方式中,所述装置还包括:
[0212]
类型获取模块,用于根据所述目标数据包所属的目标数据的数据类型,确定目标传输策略之前,基于接收所述目标数据包的会话连接,获取所述目标数据的数据类型。
[0213]
在一种可能的实现方式中,所述类型获取模块,包括:
[0214]
标识获取子模块,用于获取所述会话连接的会话连接标识;
[0215]
类型获取子模块,用于基于所述会话连接标识中的类型指示信息,获取所述目标数据的数据类型。
[0216]
综上所述,本技术实施例中,在进行某一项业务的过程中需要进行设备之间的数据传输时,数据发送侧可以基于该项业务中进行传输的目标数据的数据类型来确定目标数据的目标传输策略,以实现按照该目标传输策略对目标数据传输过程中的拥塞情况进行相应的控制,从而完成该项业务的目标数据的传输。由于不同业务过程中对数据传输的要求不同,因此,通过上述方案可以对不同业务的数据针对性地配置传输过程中的相关策略,有针对性地提高数据传输的性能,以满足不同业务下对数据传输的不同要求,进而提高了数据传输的效果。
[0217]
图10示出了本技术一个示例性实施例提供的终端的结构方框图。该终端可以是智能手机、平板电脑、电子书、便携式个人计算机等安装并运行有应用程序的电子设备。本技术中的终端可以包括一个或多个如下部件:处理器1010、存储器1020和屏幕1030。
[0218]
处理器1010可以包括一个或者多个处理核心。处理器1010利用各种接口和线路连接整个终端内的各个部分,通过运行或执行存储在存储器1020内的指令、程序、代码集或指令集,以及调用存储在存储器1020内的数据,执行终端的各种功能和处理数据。可选地,处理器1010可以采用数字信号处理(digital signal processing,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器1010可集成中央处理器(central processing unit,cpu)、图像处理器(graphics processing unit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责屏幕1030所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器1010中,单独通过一块通信芯片进行实现。
[0219]
存储器1020可以包括随机存储器(random access memory,ram),也可以包括只读存储器(read-only memory,rom)。可选地,该存储器1020包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器1020可用于存储指令、程序、代码、代码集或指令集。存储器1020可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等,该操作系统可以是安卓(android)系统(包括基于android系统深度开发的系统)、苹果公司开发的ios系统(包括基于ios系统深度开发的系统)或其它系统。存储数据区还可以存储终端在使用中所创建的数据(比如电话本、音视频数据、聊天记录数据)等。
[0220]
屏幕1030可以为电容式触摸显示屏,该电容式触摸显示屏用于接收用户使用手指、触摸笔等任何适合的物体在其上或附近的触摸操作,以及显示各个应用程序的用户界面。触摸显示屏通常设置在终端的前面板。触摸显示屏可被设计成为全面屏、曲面屏或异型屏。触摸显示屏还可被设计成为全面屏与曲面屏的结合,异型屏与曲面屏的结合,本技术实施例对此不加以限定。
[0221]
除此之外,本领域技术人员可以理解,上述附图所示出的终端的结构并不构成对终端的限定,终端可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。比如,终端中还包括射频电路、拍摄组件、传感器、音频电路、无线保真(wireless fidelity,wifi)组件、电源、蓝牙组件等部件,在此不再赘述。
[0222]
本技术实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条计算机指令,该至少一条计算机指令由处理器加载并执行以实现如上各个实施例所述的数据传输方法。
[0223]
根据本技术的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。终端的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该终端执行上述方面的各种可选实现方式中提供的数据传输方法。
[0224]
本领域技术人员应该可以意识到,在上述一个或多个示例中,本技术实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读存储介质中或者作为计算机可读存储介质上的一个或多个指令或代码进行传输。计算机可读存储介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
[0225]
以上所述仅为本技术的可选实施例,并不用以限制本技术,凡在本技术的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本技术的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献