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

指示传输协议的方法、装置、电子设备及存储介质与流程

2022-03-31 08:51:12 来源:中国专利 TAG:


1.本技术涉及通信技术领域,并且更具体地涉及通信领域中指示传输协议的方法、装置及存储介质。


背景技术:

2.超文本传输协议(hyper text transfer protocol,http)是互联网上应用广泛的网络协议。http客户端是指采用http协议的客户端,例如web浏览器为http客户端,主要用来发起http请求或访问,实现从服务端下载数据或向服务端上传数据。
3.目前,客户端和服务端均可以支持多种http协议,例如基于传输控制协议(transmission control protocol,tcp)的http协议,和基于快速用户数据报协议(user datagram protocol,udp)网络连接(quick udp internet connections,quic)的http协议。其中,有些http协议的传输速度较慢,有些http协议的传输速度较快,例如,基于tcp的http协议由于在创建连接之前需要进行三次握手,导致数据传输速度低较慢;基于quic的http协议由于多路复用、往返传输时间短、灵活的拥塞控制等优势,使得数据传输速度较快。因此,通常在客户端与服务端进行数据传输时会自动优选传输速度较快的协议。
4.然而,客户端在通过传输速度较快的协议发送请求出现超时未响应时,客户端会被动切换采用其他协议连接,此时已影响到客户上网体验,比如用户此时可明显感知操作无响应、网络卡顿等。并且,传输速度较快的协议在连接超时未响应后,客户端通常会定时重试该传输速度较快的协议,这会增加客户端的资源消耗。由此可见,在客户端与服务端进行数据传输时如何合理切换传输协议是需要解决的问题。


技术实现要素:

5.本技术实施例提供了一种指示传输协议的方法、装置及存储介质,以解决客户端与服务端进行数据传输时如何合理切换传输协议的问题。
6.第一方面,本技术提供了一种指示传输协议的方法,包括:服务端获取第一传输协议的第一信息和第二传输协议的第二信息;所述服务端根据所述第一信息和所述第二信息确定目标传输协议,所述目标传输协议为所述第一传输协议或者所述第二传输协议;所述服务端向客户端发送第一指示信息,所述第一指示信息用于指示所述目标传输协议。
7.其中,所述第一信息用于指示所述第一传输协议对应的第一主机能力,所述第二信息用于指示所述第二传输协议对应的第二主机能力;和/或,所述第一信息用于指示所述第一传输协议对应的第一数据量,所述第二信息用于指示所述第二传输协议对应的第二数据量;和/或,所述第一信息用于指示所述第一传输协议对应的第一传输质量,所述第二信息用于指示所述第二传输协议对应的第二传输质量;和/或,所述第一信息用于指示所述第一传输协议对应的第一请求响应率,所述第二信息用于指示所述第二传输协议对应的第二请求响应率。
8.在上述技术方案中,由服务端基于网络质量、协议应用效果、服务端主机健康情况
等数据,综合判断当前场景下适合进行数据交互的传输协议,然后将确定好的传输协议告知给客户端,进而客户端可以选择与服务端通过该传输协议进行数据交互,实现传输协议的智能调度。即,本技术方案可以根据当前场景下系统环境中各种因素的变化自动选择适配的传输协议,以实时适应变化,提高通信效率。避免了相关技术中协议切换时出现的操作无响应、网络卡顿等现象,从而可提升用户的体验。
9.在一些可能的实现方式中,所述第一传输协议为基于quic的http协议,所述第二传输协议为基于传输控制协议tcp的http协议。
10.在一些可能的实现方式中,所述第一信息用于指示所述第一传输协议对应的第一主机能力,所述第二信息用于指示所述第二传输协议对应的第二主机能力。所述服务端根据所述第一信息和所述第二信息确定目标传输协议,包括:
11.若所述第一主机能力优于所述第二主机能力,则所述服务端确定所述第一传输协议为所述目标传输协议;或者,若所述第一主机能力劣于所述第二主机能力,则所述服务端确定所述第二传输协议为所述目标传输协议。
12.示例性的,第一信息可以包括中央处理器(central processing unit,cpu)负载大小、内存空间大小和服务进程数中的至少一项。同样,第二信息可以包括cpu负载大小、内存空间大小和服务进程数中的至少一项。可以理解,若服务端主机的cpu负载较小,内存空间较大,服务进程数较少,则说明主机能力较优。
13.在上述方案中,服务端可以将服务端和客户端均支持的多个协议中对应主机能力最高的协议,确定为适配当前场景的传输协议,进而可以指示客户端切换到适配当前场景的传输协议,实现传输协议的智能主动切换,以避免相关技术中由于传输协议被动切换导致用户操作无响应或网络卡顿等现象。
14.在一些可能的实现方式中,所述第一信息用于指示所述第一传输协议对应的第一数据量,所述第二信息用于指示所述第二传输协议对应的第二数据量。所述服务端根据所述第一信息和所述第二信息确定目标传输协议,包括:
15.若所述第一数据量小于预设数据量阈值,则所述服务端确定所述第一传输协议为所述目标传输协议;或者,若所述第一数据量大于或等于所述预设数据量阈值且所述第二数据量小于所述预设数据量阈值,则所述服务端确定所述第二传输协议为所述目标传输协议。
16.其中,第一数据量可以指quic协议的请求并发量。
17.通过上述方案,服务端可以将请求并发量未达到告警阈值的quic协议确定为适配当前场景的传输协议,或者若quic协议超过告警阈值则切换到tcp协议,进而可以指示客户端切换到适配当前场景的传输协议,实现传输协议的智能主动切换,以避免相关技术中由于传输协议被动切换导致用户操作无响应或网络卡顿等现象。
18.在一些可能的实现方式中,所述第一信息用于指示所述第一传输协议对应的第一传输质量,所述第二信息用于指示所述第二传输协议对应的第二传输质量,所述第一传输质量采用第一时延和/或第一丢包率表示,所述第二传输质量采用第二时延和/或第二丢包率表示。
19.所述服务端根据所述第一信息和所述第二信息确定目标传输协议,包括:
20.若所述第一时延小于所述第二时延,则所述服务端确定所述第一传输协议为所述
目标传输协议;或者,若所述第一时延大于或等于所述第二时延,则所述服务端确定所述第二传输协议为所述目标传输协议。
21.和/或,所述服务端根据所述第一信息和所述第二信息确定目标传输协议,包括:
22.若所述第一丢包率小于所述第二丢包率,则所述服务端确定所述第一传输协议为所述目标传输协议;或者,若所述第一丢包率大于或等于所述第二丢包率,则所述服务端确定所述第二传输协议为所述目标传输协议。
23.和/或,所述服务端根据所述第一信息和所述第二信息确定目标传输协议,包括:
24.若所述第一时延小于所述第二时延且所述第一丢包率小于所述第二丢包率,则所述服务端确定所述第一传输协议为所述目标传输协议;或者,若所述第一时延大于或等于所述第二时延且所述第一丢包率大于或等于所述第二丢包率,则所述服务端确定所述第二传输协议为所述目标传输协议。
25.通过上述方案,服务端可以将服务端和客户端均支持的多个协议中对应传输质量最高的协议,确定为适配当前场景的传输协议,进而可以指示客户端切换到适配当前场景的传输协议,实现传输协议的智能主动切换,以避免相关技术中由于传输协议被动切换导致用户操作无响应或网络卡顿等现象。
26.在一些可能的实现方式中,所述第一信息用于指示所述第一传输协议对应的第一请求响应率,所述第二信息用于指示所述第二传输协议对应的第二请求响应率。所述服务端根据所述第一信息和所述第二信息确定目标传输协议,包括:
27.若所述第一请求响应率大于或等于所述第二请求响应率,则所述服务端确定所述第一传输协议为所述目标传输协议;或者,若所述第一请求响应率小于所述第二请求响应率,则所述服务端确定所述第二传输协议为所述目标传输协议。
28.通过上述方案,服务端可以将服务端和客户端均支持的多个协议中对应请求响应率或成功率最高的协议,确定为适配当前场景的传输协议,进而可以指示客户端切换到适配当前场景的传输协议,实现传输协议的智能主动切换,以避免相关技术中由于传输协议被动切换导致用户操作无响应或网络卡顿等现象。
29.需要说明的是,上述“大于”可以替换为“大于或等于”,“小于或等于”可以替换为“小于”,或者,“大于或等于”可以替换为“大于”,“小于”可以替换为“小于或等于”。
30.当然,服务端还可以采用上述四种实现方式中的至少两种实现方式确定目标传输协议。服务端可以综合考虑服务端和客户端均支持的多个协议中对应主机能力、数据量、传输质量以及请求响应率,确定适配当前场景的传输协议,提升了判断适配协议的准确性,进而可以指示客户端切换到适配当前场景的传输协议,实现传输协议的智能主动切换,避免相关技术中由于传输协议被动切换导致用户操作无响应或网络卡顿等现象。即,根据当前场景下系统环境中各种因素的变化自动选择适配的传输协议,以实时适应变化,提高通信效率。
31.在一些可能的实现方式中,在所述服务端向客户端发送第一指示信息之前,所述方法还包括:所述服务端接收所述客户端发送的第一请求消息,所述第一请求消息用于指示所述服务端确定所述目标传输协议。所述服务端向客户端发送第一指示信息,包括:所述服务端向所述客户端发送所述第一请求消息的第一响应消息,所述第一响应消息包括所述第一指示信息。
32.在一些可能的实现方式中,在所述服务端向客户端发送第一指示信息之前,所述方法还包括:所述服务端接收所述客户端发送的第二请求消息,所述第二请求消息用于向所述服务端请求处理第一业务。所述服务端向客户端发送第一指示信息,包括:所述服务端向所述客户端发送所述第二请求消息的第二响应消息,所述第二响应消息包括所述第一业务的处理信息和所述第一指示信息。
33.通过上述方案,服务端在接收到客户端请求时,根据当前场景下与传输协议相关的信息确定适配当前场景的优选传输协议(例如tcp协议或者quic协议),并主动告知客户端优选的传输协议,实现客户端的传输协议智能调度,避免了用户体验受损时才能协议调度的情况,从而本技术方案可提升用户体验,并且避免了在传输协议不可用的情况下,客户端需要定时重试该传输协议的行为,从而本技术方案还可以减少客户端的资源开销。
34.在一些可能的实现方式中,所述第一响应消息或所述第二响应消息包括超文本传输协议http响应头信息;其中,所述第一指示信息承载于所述http响应头信息中的预留字段中。
35.本技术实施例中,服务端可以基于网络质量、协议应用效果、主机健康情况等数据,综合判断当前场景下适合进行数据交互的优选传输协议,在http响应头中alt-svc字段动态设置优选协议,主动告知给客户端优选传输协议,进而客户端可以选择与服务端通过该传输协议进行数据交互,从而可实现传输协议的智能调度。
36.在一些可能的实现方式中,在所述服务端向客户端发送第一指示信息之后,所述方法还包括:所述服务端接收所述客户端通过所述目标传输协议发送的第三请求消息,所述第三请求消息用于请求所述服务端处理第二业务;所述服务端通过所述目标传输协议向所述客户端发送所述第二业务的处理信息。
37.第二方面,本技术提供了一种指示传输协议的方法,所述方法包括:客户端接收服务端发送的第一指示信息,所述第一指示信息用于指示目标传输协议;所述目标传输协议为所述服务端根据第一传输协议的第一信息和第二传输协议的第二信息确定的,所述目标传输协议为所述第一传输协议或者所述第二传输协议;所述客户端根据所述第一指示信息,将所述目标传输协议确定为与所述服务端进行数据交互的传输协议。
38.其中,所述第一信息用于指示所述第一传输协议对应的第一主机能力,所述第二信息用于指示所述第二传输协议对应的第二主机能力;和/或,所述第一信息用于指示所述第一传输协议对应的第一数据量,所述第二信息用于指示所述第二传输协议对应的第二数据量;和/或,所述第一信息用于指示所述第一传输协议对应的第一传输质量,所述第二信息用于指示所述第二传输协议对应的第二传输质量;和/或,所述第一信息用于指示所述第一传输协议对应的第一请求响应率,所述第二信息用于指示所述第二传输协议对应的第二请求响应率。
39.在一些可能的实现方式中,所述第一传输协议为基于quic连接的超文本传输协议http协议,所述第二传输协议为基于tcp连接的http协议。
40.在一些可能的实现方式中,在所述客户端接收所述服务端发送的第一指示信息之前,所述方法还包括:
41.所述客户端向所述服务端发送第一请求消息,所述第一请求消息用于指示所述服务端确定所述目标传输协议;
42.所述客户端接收所述服务端发送的第一指示信息,包括:
43.所述客户端接收所述服务端发送的对所述第一请求消息的第一响应消息,所述第一响应消息包括所述第一指示信息。
44.在一些可能的实现方式中,在所述客户端接收所述服务端发送的第一指示信息之前,所述方法还包括:
45.所述客户端向所述服务端发送的第二请求消息,所述第二请求消息用于请求所述服务端处理第一业务;
46.所述客户端接收所述服务端发送的第一指示信息,包括:
47.所述客户端接收所述服务端发送的对所述第一请求消息的第二响应消息,所述第二响应消息包括所述第一业务的处理信息和所述第一指示信息。
48.在一些可能的实现方式中,所述第一响应消息或所述第二响应消息包括超文本传输协议http响应头信息;其中,所述第一指示信息承载于所述http响应头信息中的预留字段中。
49.在一些可能的实现方式中,在所述服务端向客户端发送第一指示信息之后,所述方法还包括:
50.所述客户端通过所述目标传输协议向所述服务端发送第三请求消息,所述第三请求消息用于请求所述服务端处理第二业务;
51.所述客户端接收所述服务端通过所述目标传输协议发送的所述第二业务的处理信息。
52.第三方面,本技术提供一种指示传输协议的装置,所述装置包括用于执行上述第一方面中的方法的单元。该装置可对应于执行上述第一方面中描述的方法,该装置中的单元的相关描述请参照上述第一方面的描述,为了简洁,在此不再赘述。
53.其中,上述第一方面描述的方法可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,获取模块或单元、处理模块或单元、收发模块或单元等。
54.第四方面,本技术提供一种指示传输协议的装置,所述装置包括用于执行上述第二方面中的方法的单元。该装置可对应于执行上述第二方面中描述的方法,该装置中的单元的相关描述请参照上述第二方面的描述,为了简洁,在此不再赘述。
55.其中,上述第二方面描述的方法可以通过硬件实现,也可以通过硬件执行相应的软件实现。硬件或软件包括一个或多个与上述功能相对应的模块或单元。例如,收发模块或单元、处理模块或单元等。
56.第五方面,本技术提供一种指示传输协议的方法,所述方法包括:
57.服务端获取第一传输协议的第一信息和第二传输协议的第二信息;并根据所述第一信息和所述第二信息确定目标传输协议;并向客户端发送第一指示信息,所述第一指示信息用于指示所述目标传输协议,所述目标传输协议为所述第一传输协议或者所述第二传输协议;
58.所述客户端接收所述服务端发送的所述第一指示信息;
59.其中,所述第一信息用于指示所述第一传输协议对应的第一主机能力,所述第二信息用于指示所述第二传输协议对应的第二主机能力;和/或,所述第一信息用于指示所述
第一传输协议对应的第一数据量,所述第二信息用于指示所述第二传输协议对应的第二数据量;和/或,所述第一信息用于指示所述第一传输协议对应的第一传输质量,所述第二信息用于指示所述第二传输协议对应的第二传输质量;和/或,所述第一信息用于指示所述第一传输协议对应的第一请求响应率,所述第二信息用于指示所述第二传输协议对应的第二请求响应率。
60.在一些可能的实现方式中,所述第一传输协议为基于quic连接的超文本传输协议http协议,所述第二传输协议为基于tcp连接的http协议。
61.在一些可能的实现方式中,所述第一信息用于指示所述第一传输协议对应的第一主机能力,所述第二信息用于指示所述第二传输协议对应的第二主机能力;
62.所述根据所述第一信息和所述第二信息确定目标传输协议,包括:
63.若所述第一主机能力优于所述第二主机能力,则所述服务端确定所述第一传输协议为所述目标传输协议;
64.若所述第一主机能力劣于所述第二主机能力,则所述服务端确定所述第二传输协议为所述目标传输协议。
65.在一些可能的实现方式中,所述第一信息用于指示所述第一传输协议对应的第一数据量,所述第二信息用于指示所述第二传输协议对应的第二数据量;
66.所述根据所述第一信息和所述第二信息确定目标传输协议,包括:
67.若所述第一数据量小于预设数据量阈值,则所述服务端确定所述第一传输协议为所述目标传输协议;
68.若所述第一数据量大于或等于所述预设数据量阈值且所述第二数据量小于所述预设数据量阈值,则所述服务端确定所述第二传输协议为所述目标传输协议。
69.在一些可能的实现方式中,所述第一信息用于指示所述第一传输协议对应的第一传输质量,所述第二信息用于指示所述第二传输协议对应的第二传输质量,所述第一传输质量采用第一时延和/或第一丢包率表示,所述第二传输质量采用第二时延和/或第二丢包率表示;
70.所述根据所述第一信息和所述第二信息确定目标传输协议,包括:
71.若所述第一时延小于所述第二时延,则所述服务端确定所述第一传输协议为所述目标传输协议;
72.若所述第一时延大于或等于所述第二时延,则所述服务端确定所述第二传输协议为所述目标传输协议;和/或包括:
73.若所述第一丢包率小于所述第二丢包率,则所述服务端确定所述第一传输协议为所述目标传输协议;
74.若所述第一丢包率大于或等于所述第二丢包率,则所述服务端确定所述第二传输协议为所述目标传输协议;和/或包括:
75.若所述第一时延小于所述第二时延且所述第一丢包率小于所述第二丢包率,则所述服务端确定所述第一传输协议为所述目标传输协议;
76.若所述第一时延大于或等于所述第二时延且所述第一丢包率大于或等于所述第二丢包率,则所述服务端确定所述第二传输协议为所述目标传输协议。
77.在一些可能的实现方式中,所述第一信息用于指示所述第一传输协议对应的第一
请求响应率,所述第二信息用于指示所述第二传输协议对应的第二请求响应率;
78.所述根据所述第一信息和所述第二信息确定目标传输协议,包括:
79.若所述第一请求响应率大于或等于所述第二请求响应率,则所述服务端确定所述第一传输协议为所述目标传输协议;
80.若所述第一请求响应率小于所述第二请求响应率,则所述服务端确定所述第二传输协议为所述目标传输协议。
81.在一些可能的实现方式中,所述方法还包括:
82.所述客户端向所述服务端发送第一请求消息,所述第一请求消息用于指示所述服务端确定所述目标传输协议;
83.所述服务端接收所述客户端发送的所述第一请求消息;
84.所述服务端向所述客户端发送第一指示信息,包括:
85.所述服务端向所述客户端发送所述第一请求消息的第一响应消息,所述第一响应消息包括所述第一指示信息。
86.在一些可能的实现方式中,所述方法还包括:
87.所述客户端向所述服务端发送第二请求消息,所述第二请求消息用于请求所述服务端处理第一业务;
88.所述服务端接收所述客户端发送的所述第二请求消息;
89.所述服务端向所述客户端发送第一指示信息,包括:
90.所述服务端向所述客户端发送所述第二请求消息的第二响应消息,所述第二响应消息包括所述第一业务的处理信息和所述第一指示信息。
91.在一些可能的实现方式中,第一响应消息或第二响应消息包括超文本传输协议http响应头信息;
92.其中,所述第一指示信息承载于所述http响应头信息中的预留字段中。
93.在一些可能的实现方式中,所述方法还包括:
94.所述客户端通过所述目标传输协议向所述服务端发送第三请求消息,所述第三请求消息用于请求所述服务端处理第二业务;
95.所述服务端接收所述客户端发送的所述第三请求消息,并通过所述目标传输协议向所述客户端发送所述第二业务的处理信息。
96.第六方面,本技术提供一种指示传输协议的电子设备,所述电子设备包括处理器,处理器与存储器耦合,存储器用于存储计算机程序或指令,处理器用于执行存储器存储的计算机程序或指令,使得上述第一方面及上述第一方面的可能实现方式中的方法被执行。
97.例如,处理器用于执行存储器存储的计算机程序或指令,使得该电子设备执行上述各方面及上述各方面的可能实现方式中的方法。
98.可选地,该电子设备包括的处理器为一个或多个。
99.可选地,该电子设备中还可以包括与处理器耦合的存储器。
100.可选地,该电子设备包括的存储器可以为一个或多个。
101.可选地,该存储器可以与该处理器集成在一起,或者分离设置。
102.可选地,该电子设备中还可以包括收发器。
103.第七方面,本技术提供一种指示传输协议的电子设备,所述电子设备包括处理器,
处理器与存储器耦合,存储器用于存储计算机程序或指令,处理器用于执行存储器存储的计算机程序或指令,使得第二方面及上述第二方面的可能实现方式中的方法被执行。
104.例如,处理器用于执行存储器存储的计算机程序或指令,使得该装置执行第二方面中的方法。
105.可选地,该电子设备包括的处理器为一个或多个。
106.可选地,该电子设备中还可以包括与处理器耦合的存储器。
107.可选地,该电子设备包括的存储器可以为一个或多个。
108.可选地,该存储器可以与该处理器集成在一起,或者分离设置。
109.可选地,该电子设备中还可以包括收发器。
110.第八方面,提供了一种指示传输协议的系统,包括:第三方面提供的装置和第四方面提供的装置;或者包括第六方面提供的电子设备和第七方面提供的电子设备。该系统的装置或电子设备对应执行上述第五方面提供的方法及上述第五方面的可能实现方式。
111.第九方面,提供一种计算机可读存储介质,其上存储有用于实现第一方面中的方法的计算机程序(也可称为指令或代码)。
112.例如,该计算机程序被计算机执行时,使得该计算机可以执行第一方面中的方法。
113.第十方面,提供一种计算机可读存储介质,其上存储有用于实现第二方面中的方法的计算机程序(也可称为指令或代码)。
114.例如,该计算机程序被计算机执行时,使得该计算机可以执行第二方面中的方法。
115.第十一方面,本技术提供一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第一方面及其任意可能的实现方式中的方法。
116.可选地,所述芯片还包括存储器,存储器与处理器通过电路或电线连接。
117.进一步可选地,所述芯片还包括通信接口。
118.第十二方面,本技术提供一种芯片,包括处理器。处理器用于读取并执行存储器中存储的计算机程序,以执行第二方面及其任意可能的实现方式中的方法。
119.可选地,所述芯片还包括存储器,存储器与处理器通过电路或电线连接。
120.进一步可选地,所述芯片还包括通信接口。
121.第十三方面,本技术提供一种计算机程序产品,所述计算机程序产品包括计算机程序(也可称为指令或代码),所述计算机程序被计算机执行时使得所述计算机实现第一方面中的方法。
122.第十四方面,本技术提供一种计算机程序产品,所述计算机程序产品包括计算机程序(也可称为指令或代码),所述计算机程序被计算机执行时使得所述计算机实现第二方面中的方法。
123.可以理解的是,上述第二方面至第十四方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
124.图1是本技术实施例提供的一种是指传输协议的方法中涉及的协议层示意图。
125.图2是本技术实施例提供的一种指示传输协议的方法的应用场景示意图。
126.图3是相关技术中在数据传输过程中切换传输协议的方法流程示意图。
127.图4是本技术实施例提供的一种指示传输协议的方法流程示意图。
128.图5是本技术实施例提供的另一种指示传输协议的方法流程示意图。
129.图6是本技术实施例提供的另一种指示传输协议的方法流程示意图。
130.图7是本技术实施例提供的又一种指示传输协议的方法流程示意图。
131.图8是本技术实施例提供的另一种指示传输协议的方法流程示意图。
132.图9是本技术实施例提供的再一种指示传输协议的方法流程示意图。
133.图10是本技术实施例提供的一种指示传输协议的方法中客户端和服务端的对应模块的示意性框图。
134.图11是本技术实施例提供的一种指示传输协议的装置的示意性框图。
135.图12是本技术实施例提供的另一种指示传输协议的装置的示意性框图。
136.图13是本技术实施例提供的电子设备的示意性框图。
具体实施方式
137.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
138.为便于理解本技术实施例,以下对本技术实施例的部分用语进行解释说明,以便于本领域技术人员理解。
139.1)tcp协议:传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议。在简化的计算机网络osi(open system interconnection,开放式系统互联)参考模型中,可完成传输层所指定的功能。
140.2)udp协议:用户数据报协议,是osi参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。udp为应用程序提供了一种无需建立连接就可以发送封装的ip数据包的方法。图1示出了osi参考模型中tcp和udp的分布示意图,如图1所示,在osi参考模型中,tcp协议和udp协议都位于传输层,处于网络层ip协议的上一层。在图1中,安全网络传输协议(transport layer security,tls)是建立在传输层tcp协议之上的协议,服务于应用层。需要说明的是,为了便于说明,图1仅示出了osi参考模型的一部分。
141.3)quic协议:快速udp网络连接,是基于udp协议的高效可靠协议。quic协议使用udp协议,可以在两个端点间创建连接,且支持多路复用连接。相比传统tcp协议,quic基于用户态实施,主要优势包括多路复用、往返传输时间(round trip time,rtt)短(实现快速连接)、连接迁移(实现连接不易中断)、灵活的拥塞控制(提升传输数据量)等。
142.图2示出了本技术的各个示例性实施例所涉及的系统架构示意图。如图2所示,该系统架构包括客户端10和服务端20,客户端10与服务端20之间可以建立无线网络连接并进行数据交互。其中,客户端10和服务端20可以采用http协议进行数据交互,传输http数据。
143.在本技术实施例中,如图2所示,假设客户端10和服务端20既可以支持基于tcp连接的http协议(也记为http over tcp协议),也可以支持基于quic连接的http协议(也记为http over quic协议),那么客户端10和服务端20之间可以建立tcp连接,也可以建立quic连接。
144.一方面,在客户端10和服务端20建立tcp连接的情况下,客户端10和服务端20之间可以通过基于tcp连接的http协议进行数据交互。另一方面,在客户端10和服务端20建立quic连接的情况下,客户端10和服务端20之间可以通过基于quic连接的http协议进行数据交互。
145.需要说明的是,本技术实施例对上述客户端10的具体形式不做特殊限制,例如客户端10可以是指手机、平板电脑、个人计算机、个人数字助理、智能手表、上网本、可穿戴电子设备等终端设备。并且,本技术实施例对上述服务端20的具体形式不做特殊限制,服务端20可以是指单个服务器(例如web服务器),也可以为由多个服务器组成的服务器集合(例如云服务器)。具体可以根据实际使用需求确定,本技术实施例不作限定。
146.目前,在互联网应用中,web平台(准确地说是基于http及其延伸协议的客户端/服务器应用)的数据传输通常都基于tcp协议。但tcp协议在创建连接之前需要进行三次握手,导致http客户端与服务端之间传输速度低。相比于tcp协议,quic协议只需要一次往返就能建立http连接,传输速度快,并且支持请求并发处理。因此,通常在客户端与服务端进行数据传输时会自动优选基于quic连接的http协议。
147.图3示出了相关技术中客户端与服务端之间切换采用tcp连接和quic连接进行数据交互的方法流程图。如图3所示,方法200包括下述的步骤s210-s280。
148.s210,客户端采用tcp协议向服务端发送http请求。
149.s220,服务端向客户端告知当前支持quic。
150.即,如果服务端支持quic协议,则服务端可以通过响应头alt-svc字段告知客户端,可采用quic协议向服务端发送http请求。
151.s230,客户端发起tcp连接和quic连接竞速。
152.示例性的,假设客户端采用tcp协议和quic协议分别向服务端发送http请求,若通过quic协议将http请求传输到服务端的传输时长小于通过tcp协议将http请求传输到服务端的传输时长,即通过quic协议传输的http请求先到达服务端,则quic连接竞速成功。
153.s240,在quic连接竞速成功的情况下,客户端通过tcp连接向服务端发送http请求。
154.即,若先建立quic连接,则客户端采用quic协议发送http请求,而暂不采用tcp协议。如此,客户端与服务端采用quic协议进行数据交互。
155.s250,若采用quic协议发送请求无响应或请求超时,则客户端标记quic连接不可用(例如标记broken)。
156.s260,客户端采用tcp协议向服务端重发http请求。
157.s270,客户端定时重试quic连接。
158.其中,客户端可以每隔预设时长(例如5分钟)重试quic连接。或者,客户端可以每隔递增时长(例如5分钟、10分钟等)重试quic连接;
159.s280,若客户端检查通过quic协议请求成功,则取消标记。
160.即,一旦quic重试成功,则客户端采用quic协议向服务端重发http请求,并将broken标记取消。
161.然而,通过上述方法200所述的方案,客户端在采用基于quic连接的http协议发送请求出现超时未响应时,即客户端与服务端无法建立quic连接,此时客户端会被动切换采
用基于tcp连接的http协议,此时已影响到客户上网体验,比如用户此时可明显感知操作无响应、网络卡顿等。而且,由于在客户端与服务端建立tcp连接时服务端并发处理能力较差,一旦从quic连接切换到tcp连接,在客户端发起超大流量请求时,会导致服务端无法及时处理大量请求,从而造成用户操作无响应、网络卡顿等现象。
162.并且,在从quic连接切换到tcp连接之后,客户端会定时重试quic连接,若重试quic连接成功,则采用基于quic连接的http协议发送请求,若重试quic连接不成功,则继续采用基于tcp连接的http协议发送请求,这会增加客户端的资源消耗。
163.鉴于上述问题,本技术提供一种指示传输协议的方法,由服务端基于网络质量、协议应用效果、服务端主机健康情况等数据,综合判断当前场景下适合进行数据交互的传输协议,然后将确定好的传输协议告知给客户端,进而客户端可以选择与服务端通过该传输协议进行数据交互,实现传输协议的智能调度。即,可以根据当前场景下系统环境中各种因素的变化自动选择适配的传输协议,以实时适应变化,提高通信效率。避免了相关技术中协议切换时出现的操作无响应、网络卡顿等现象,从而可提升用户的体验。
164.请参见图4,示出了本技术实施例提供的一种指示传输协议的方法的流程图,该方法应用于图2所示的系统中。如图4所示,该方法300可以包括以下步骤s310-s340。
165.s310,服务端获取第一传输协议的第一信息和第二传输协议的第二信息。
166.s320,服务端根据第一信息和第二信息确定目标传输协议。
167.s330,服务端向客户端发送第一指示信息,客户端接收服务端发送的第一指示信息。
168.其中,该第一指示信息用于指示目标传输协议。
169.s340,客户端根据第一指示信息,将目标传输协议确定为与服务端进行数据交互的传输协议。
170.在步骤s310中,服务端获取第一传输协议的第一信息和第二传输协议的第二信息。
171.可选的,上述第一传输协议可以为基于quic连接的http协议,第二传输协议可以为基于tcp连接的http协议。当然,第一传输协议和第二传输协议还可以为其他任意满足实际使用需求的协议,例如基于udp的数据传输协议(udp-based data transfer protocol,udt),本技术实施例对此不作限定。为了便于说明,以下以第一传输协议为基于quic连接的http协议(简称quic协议),第二传输协议为基于tcp连接的http协议(简称tcp协议)为例进行示例性地说明。
172.其中,上述第一传输协议的第一信息指的是,在服务端与客户端通过第一传输协议传输数据时,服务端获取到的与数据交互相关的信息。上述第二传输协议的第二信息指的是,在服务端与客户端通过第二传输协议传输数据时服务端获取到的与数据交互相关的信息。
173.可选的,第一信息可以用于指示第一传输协议对应的第一主机能力,换言之,第一信息用于指示在客户端与服务端通过第二传输协议进行数据交互时服务端主机的健康状况。第二信息可以用于指示第二传输协议对应的第二主机能力,换言之,第二信息用于指示在客户端与服务端通过第二传输协议进行数据交互时服务端主机的健康状况。为了便于描述,将这里所述的第一信息和第二信息统称为主机能力信息。
174.示例性的,第一信息可以包括cpu负载大小、内存空间大小和服务进程数中的至少一项。同样,第二信息可以包括cpu负载大小、内存空间大小和服务进程数中的至少一项。可以理解,若服务端主机的cpu负载较小,内存空间较大,服务进程数较少,则说明主机能力较优。
175.可选的,第一信息可以用于指示第一传输协议对应的第一数据量,换言之,第一信息用于指示在客户端与服务端通过第一传输协议进行数据交互时服务端同时接收到多个请求的数据量(也称为请求并发量)。第二信息可以用于指示第二传输协议对应的第二数据量,换言之,第二信息用于指示在客户端与服务端通过第二传输协议进行数据交互时服务端同时接收到多个请求的数据量(也称为请求并发量)。可以理解,若请求并发量较大,则对服务端主机的处理能力要求越高,服务端主机的处理能力通常是有限的,因此服务端能够处理的并发请求是有限的,若服务端接收到的请求并发量超过预设阈值范围,即超过服务端主机处理能力,则服务端主机可以指示客户端切换传输协议,以缓解服务端主机的处理压力。为了便于描述,将这里所述的第一信息和第二信息统称为数据量信息。
176.示例性的,由于客户端采用tcp协议发送请求(也可称为http over tcp请求)和采用quic协议发送请求(也可称为http over quic请求)的传输方式不同,http over tcp请求为串行传输,传输数据量较小,http over quic请求为并行传输,传输数据量较大。若服务端接收到客户端发送的http over quic请求,且请求并发量超过预设阈值范围,即超过主机处理能力,则服务端主机可以指示客户端将quic协议切换为tcp协议,即发送http over tcp请求,如此并行传输变更为串行传输,服务端侧需要处理的数据量降低,可缓解服务端主机的处理压力,避免了相关技术中协议切换时出现的操作无响应、网络卡顿等现象,从而可提升用户的体验。
177.可选的,第一信息可以用于指示第一传输协议对应的第一传输质量,换言之,第一信息用于指示在客户端与服务端通过第一传输协议进行数据交互时的数据传输效果。第二信息用于指示第二传输协议对应的第二传输质量,换言之,第二信息用于指示在客户端与服务端通过第二传输协议进行数据交互时的数据传输效果。为了便于描述,将这里所述的第一信息和第二信息可以统称为传输质量信息。
178.示例性的,第一信息可以包括在客户端与服务端通过第一传输协议进行数据交互时的丢包率和/或传输时长或时延。同样,第二信息可以包括在客户端与服务端通过第二传输协议进行数据交互时的丢包率和/或传输时长或时延值。可以理解,若丢包率较小,传输时长或时延值较小,则说明数据传输效果较优。
179.可选的,第一信息可以用于指示第一传输协议对应的第一请求响应率,换言之,第一信息用于指示在客户端与服务端通过第一传输协议进行数据交互时客户端发起请求的成功率。第二信息用于指示第二传输协议对应的第二请求响应率,换言之,第二信息用于指示在客户端与服务端通过第二传输协议进行数据交互时客户端发起请求的成功率。为了便于描述,将这里所述的第一信息和第二信息可以统称为请求响应率信息。
180.需要说明的是,以上为第一信息和第二信息的示例性列举,可以理解,在实际实现中,本技术实施例包括但不限于上述第一信息和第二信息的列举内容,第一信息和第二信息分别还可以为其他任意满足实际使用需求的可用于指示与传输协议相关参数的信息,具体可以根据实际使用需求确定,本技术实施例不作限定。
181.可选的,服务端可以实时或周期性地检测第一信息和第二信息,也可以将检测的第一信息和第二信息存储于服务端中,以便于服务端在需要时进行调用,以确定目标传输协议。
182.在步骤s320中,服务端根据第一信息和第二信息确定目标传输协议。
183.其中,服务端可以根据第一信息和第二信息,确定第一传输协议或者第二传输协议为目标传输协议。需要说明的是,服务端可以获取上述列举的第一信息和第二信息的全部或部分来确定目标传输协议,具体可以根据实际使用需求确定,本技术实施例不作限定。下面列举了服务端根据第一信息和第二信息确定目标传输协议的几种可能实现方式。
184.方式一:假设第一信息用于指示第一传输协议对应的第一主机能力,第二信息用于指示第二传输协议对应的第二主机能力。在此情况下,服务端可以将第一主机能力与第二主机能力进行比较,并根据比较结果来确定目标传输协议。示例性的,上述的步骤s320具体可以包括下述的步骤s320a和s320b。
185.s320a,若第一主机能力优于第二主机能力,则服务端确定第一传输协议为目标传输协议。
186.s320b,若第一主机能力劣于第二主机能力,则服务端确定第二传输协议为目标传输协议。
187.示例性的,服务端可以将采用quic协议发送请求时的cpu负载量与采用tcp协议发送请求时的cpu负载量进行比较。一方面,若服务端判断在采用quic协议发送请求时的cpu负载量小于在采用tcp协议发送请求时的cpu负载量,这说明与tcp协议相比,在采用quic协议发送请求时服务端主机能力或主机健康状况较优,则quic协议为当前推荐采用的传输协议,因此服务端确定quic协议为目标传输协议。另一方面,若服务端判断在采用quic协议发送请求时的cpu负载量大于在采用tcp协议发送请求时的cpu负载量,这说明与quic协议相比,在采用tcp协议发送请求时服务端主机能力或主机健康状况较优,则tcp协议为当前推荐采用的传输协议,因此服务端确定tcp协议为目标传输协议。
188.通过上述方式一,服务端可以将服务端和客户端均支持的多个协议中对应主机能力最高的协议,确定为适配当前场景的传输协议,进而可以指示客户端切换到适配当前场景的传输协议,实现传输协议的智能主动切换,以避免相关技术中由于传输协议被动切换导致用户操作无响应或网络卡顿等现象。
189.方式二:假设第一信息用于指示第一传输协议对应的第一数据量,第二信息用于指示第二传输协议对应的第二数据量。在此情况下,服务端可以将第一数据量或第二数据量与预设数据量阈值进行比较,并根据比较结果来确定目标传输协议。需要说明的是,由于http over quic请求可以出现请求并发现象,因此这里主要判断的是http over quic请求的请求并发量是否大于或等于预设数据量阈值,即是否超过告警阈值。示例性的,上述的步骤s320具体可以包括下述的步骤s320c和s320d。
190.s320c,若第一数据量小于预设数据量阈值,则服务端确定第一传输协议为目标传输协议。
191.s320d,若第一数据量大于或等于预设数据量阈值且第二数据量小于预设数据量阈值,则服务端确定第二传输协议为目标传输协议。
192.示例性的,假设第一数据量为http over quic请求的请求并发量,服务端可以将
该请求并发量与预设数据量阈值进行比较。一方面,若服务端判断http over quic请求的请求并发量小于预设数据量阈值,这说明此时服务端能够处理在采用quic协议发送请求时的并行多个请求,则quic协议为当前推荐采用的传输协议,因此服务端确定quic协议为目标传输协议。另一方面,若服务端判断http over quic请求的请求并发量大于或等于预设数据量阈值,这说明此时在采用quic协议发送请求时的请求并发量已超过服务端的处理限值,则此时不再适合采用quic协议,tcp协议为当前推荐采用的传输协议,因此服务端确定tcp协议为目标传输协议。
193.需要说明的是,上述预设数据量阈值(也称为告警阈值)可以根据服务端主机的处理能力等因素设置,具体可以根据实际使用需求确定,本技术实施例不作限定。
194.通过上述方式二,服务端可以将请求并发量未达到告警阈值的quic协议,确定为适配当前场景的传输协议,或者若quic协议超过告警阈值则切换到tcp协议,进而可以指示客户端切换到适配当前场景的传输协议,实现传输协议的智能主动切换,以避免相关技术中由于传输协议被动切换导致用户操作无响应或网络卡顿等现象。
195.方式三:假设第一信息用于指示第一传输协议对应的第一传输质量,第二信息用于指示第二传输协议对应的第二传输质量,其中第一传输质量采用第一时延和/或第一丢包率表示,第二传输质量采用第二时延和/或第二丢包率表示。在此情况下,服务端可以将第一传输质量与第二传输质量进行比较,并根据比较结果来确定目标传输协议。
196.在一种可能的实现方式中,以时延大小作为判断传输质量优劣的标准。示例性的,上述的步骤s320具体可以包括下述的步骤s320e和s320f。
197.s320e,若第一时延小于第二时延,则服务端确定第一传输协议为目标传输协议。
198.s320f,若第一时延大于或等于第二时延,则服务端确定第二传输协议为目标传输协议。
199.示例性的,服务端可以将采用quic协议发送请求时的第一时延与采用tcp协议发送请求时的第二时延进行比较。一方面,若服务端判断在采用quic协议发送请求时的第一时延小于在采用tcp协议发送请求时的第二时延,这说明与tcp协议相比,在采用quic协议发送请求时端到端数据传输速度较快,网络加速效果较好,即传输质量较优,则quic协议为当前推荐采用的传输协议,因此服务端确定quic协议为目标传输协议。由上述过程可知,利用该方法可实现客户端与服务端之间从tcp协议切换为通过quic协议进行数据传输,由于quic协议传输速度较快,因此可提高客户端与服务端之间的传输速度。
200.另一方面,若服务端判断在采用quic协议发送请求时的第一时延大于在采用tcp协议发送请求时的第二时延,这说明与quic协议相比,在采用tcp协议发送请求时端到端数据传输速度较快,网络加速效果较好,即传输质量较优,则tcp协议为当前推荐采用的传输协议,因此服务端确定tcp协议为目标传输协议。
201.在另一种可能的实现方式中,以丢包率大小作为判断传输质量优劣的标准。示例性的,上述的步骤s320具体可以包括下述的步骤s320g和s320h。
202.s320g,若第一丢包率小于第二丢包率,则服务端确定第一传输协议为目标传输协议。
203.s320h,若第一丢包率大于或等于第二丢包率,则服务端确定第二传输协议为目标传输协议。
204.示例性的,服务端可以将采用quic协议发送请求时的第一丢包率与采用tcp协议发送请求时的第二丢包率进行比较。一方面,若服务端判断在采用quic协议发送请求时的第一丢包率小于在采用tcp协议发送请求时的第二丢包率,这说明与tcp协议相比,在采用quic协议发送请求时端到端数据传输质量较优,则quic协议为当前推荐采用的传输协议,因此服务端确定quic协议为目标传输协议。
205.另一方面,若服务端判断在采用quic协议发送请求时的第一丢包率大于或等于在采用tcp协议发送请求时的第二丢包率,这说明与quic协议相比,在采用tcp协议发送请求时端到端数据传输质量较优,则tcp协议为当前推荐采用的传输协议,因此服务端确定tcp协议为目标传输协议。
206.在又一种可能的实现方式中,以时延大小和丢包率大小均作为判断传输质量优劣的标准。示例性的,上述的步骤s320具体可以包括下述的步骤s320i和s320j。
207.s320i,若第一时延小于第二时延且第一丢包率小于第二丢包率,则服务端确定第一传输协议为目标传输协议。
208.s320j,若第一时延大于或等于第二时延且第一丢包率大于或等于第二丢包率,则服务端确定第二传输协议为目标传输协议。
209.示例性的,服务端可以将采用quic协议发送请求时的第一时延与采用tcp协议发送请求时的第二时延进行比较,并将采用quic协议发送请求时的第一丢包率与采用tcp协议发送请求时的第二丢包率进行比较。
210.一方面,若服务端判断在采用quic协议发送请求时的第一时延小于在采用tcp协议发送请求时的第二时延,并且在采用quic协议发送请求时的第一丢包率小于在采用tcp协议发送请求时的第二丢包率,即quic协议的延时较小,丢包率较小,这说明与tcp协议相比,在采用quic协议发送请求时端到端数据传输质量较优,则quic协议为当前推荐采用的传输协议,因此服务端确定quic协议为目标传输协议。
211.另一方面,若服务端判断在采用quic协议发送请求时的第一时延大于在采用tcp协议发送请求时的第二时延,并且在采用quic协议发送请求时的第一丢包率大于在采用tcp协议发送请求时的第二丢包率,即tcp协议的延时较小,丢包率较小,这说明与quic协议相比,在采用tcp协议发送请求时端到端数据传输质量较优,则tcp协议为当前推荐采用的传输协议,因此服务端确定tcp协议为目标传输协议。
212.再一方面,若在采用quic协议发送请求时的第一时延等于在采用tcp协议发送请求时的第二时延,且在采用quic协议发送请求时的第一丢包率等于在采用tcp协议发送请求时的第二丢包率,这种情况下quic协议和tcp协议在传输质量上基本相同,则此时可以根据预设的协议优先级来确定目标传输协议,例如若预设quic协议的优先级高于tcp协议的优先级,则服务端可以确定quic协议为目标传输协议,具体可以根据实际使用需求确定,本技术实施例不作限定。
213.需要说明的是,在以时延大小和丢包率大小均作为判断传输质量优劣的标准的情况下,还存着其他可能的实现方式。例如,若第一时延小于第二时延且第一丢包率大于第二丢包率,此时若以时延为主要判断标准(更注重于传输速度),则服务端可以确定第一传输协议为目标传输协议;若以丢包率为主要判断标准(更注重于数据完整性),则服务端可以确定第二传输协议为目标传输协议。再例如,若第一时延大于第二时延且第一丢包率小于
第二丢包率,则服务端确定第二传输协议为目标传输协议,此时若以丢包率为主要判断标准(更注重于数据完整性),则服务端可以确定第一传输协议为目标传输协议;若以时延为主要判断标准(更注重于传输速度),则服务端可以确定第二传输协议为目标传输协议。
214.通过上述方式三,服务端可以将服务端和客户端均支持的多个协议中对应传输质量最高的协议,确定为适配当前场景的传输协议,进而可以指示客户端切换到适配当前场景的传输协议,实现传输协议的智能主动切换,以避免相关技术中由于传输协议被动切换导致用户操作无响应或网络卡顿等现象。
215.方式四:假设第一信息用于指示第一传输协议对应的第一请求响应率,第二信息用于指示第二传输协议对应的第二请求响应率。在此情况下,服务端可以将第一请求响应率与第二请求响应率进行比较,并根据比较结果来确定目标传输协议。示例性的,上述的步骤s320具体可以包括下述的步骤s320k和s320l。
216.s320k,若第一请求响应率大于或等于第二请求响应率,则服务端确定第一传输协议为目标传输协议,
217.s320l,若第一请求响应率小于第二请求响应率,则服务端确定第二传输协议为目标传输协议。
218.示例性的,服务端可以将采用quic协议发送请求时的第一请求响应率与采用tcp协议发送请求时的第二请求响应率进行比较。一方面,若服务端判断在采用quic协议发送请求时的第一请求响应率大于或等于在采用tcp协议发送请求时的第二请求响应率,这说明与tcp协议相比,在采用quic协议发送请求时请求成功率较高,则quic协议为当前推荐采用的传输协议,因此服务端确定quic协议为目标传输协议。另一方面,若服务端判断在采用quic协议发送请求时的第一请求响应率大于在采用tcp协议发送请求时的第二请求响应率,这说明与quic协议相比,在采用tcp协议发送请求时请求成功率较高,则tcp协议为当前推荐采用的传输协议,因此服务端确定tcp协议为目标传输协议。
219.通过上述方式四,服务端可以将服务端和客户端均支持的多个协议中对应请求响应率或成功率最高的协议,确定为适配当前场景的传输协议,进而可以指示客户端切换到适配当前场景的传输协议,实现传输协议的智能主动切换,以避免相关技术中由于传输协议被动切换导致用户操作无响应或网络卡顿等现象。
220.方式五:服务端可以采用上述方式一、方式二、方式三和方式四中的至少两种方式确定目标传输协议。具体的,服务端可以根据第一传输协议和第二传输协议分别对应的主机能力信息、数据量信息、传输质量信息和请求响应率信息中的至少两类信息,确定目标传输协议。
221.示例性的,以服务端采用上述任两种方式确定目标传输协议为例,例如服务端可以将采用quic协议发送请求时的第一主机能力和第一传输质量,分别与采用tcp协议发送请求时的第二主机能力和第二传输质量进行比较。一方面,若服务端判断第一主机能力优于第二主机能力,以及第一传输质量优于第二传输质量,这说明与tcp协议相比,在采用quic协议发送请求时端到端数据传输效果较好,则quic协议为当前推荐采用的传输协议,因此服务端确定quic协议为目标传输协议。另一方面,若服务端判断第一主机能力劣于第二主机能力,以及第一传输质量劣于第二传输质量,这说明与quic协议相比,在采用tcp协议发送请求时端到端数据传输效果较好,则tcp协议为当前推荐采用的传输协议,因此服务
端确定tcp协议为目标传输协议。此外,若服务端判断第一主机能力劣于第二主机能力,以及第一传输质量优于第二传输质量,则服务端确定quic协议为目标传输协议。此外,若服务端判断第一主机能力优于第二主机能力,以及第一传输质量劣于第二传输质量,则服务端确定tcp协议为目标传输协议。
222.需要说明的是,上述判定过程和下述判定过程仅为示例性的描述,本技术实施例包括但不限于上述服务端根据第一信息和第二信息确定目标传输协议的判定标准,例如在判定标准为优先考虑主机能力时,若服务端判断第一主机能力劣于第二主机能力,以及第一传输质量优于第二传输质量,则服务端可以根据预设的判定标准,确定tcp协议为目标传输协议。
223.示例性的,以服务端采用上述任三种方式确定目标传输协议为例,例如服务端可以将采用quic协议发送请求时的第一主机能力、第一传输质量和第一请求响应率,分别与采用tcp协议发送请求时的第二主机能力、第二传输质量和第二请求响应率进行比较。一方面,若服务端判断第一主机能力优于第二主机能力,以及第一传输质量优于第二传输质量,以及第一请求响应率大于第二请求响应率,这说明与tcp协议相比,在采用quic协议发送请求时端到端数据传输效果较好,则quic协议为当前推荐采用的传输协议,因此服务端确定quic协议为目标传输协议。另一方面,若服务端判断第一主机能力劣于第二主机能力,以及第一传输质量劣于第二传输质量,以及第一请求响应率小于第二请求响应率,这说明与quic协议相比,在采用tcp协议发送请求时端到端数据传输效果较好,则tcp协议为当前推荐采用的传输协议,因此服务端确定tcp协议为目标传输协议。其他可能的判定过程可以根据预设的判定标准来确定,此处不予赘述。
224.示例性的,以服务端采用上述四种方式确定目标传输协议为例,例如服务端可以将采用quic协议发送请求时的第一主机能力、第一传输质量和第一请求响应率,分别与采用tcp协议发送请求时的第二主机能力、第二传输质量和第二请求响应率进行比较,并且将采用quic协议发送请求时的第一数据量(请求并发量)与预设数据量阈值进行比较。一方面,若服务端判断第一主机能力优于第二主机能力,以及第一传输质量优于第二传输质量,以及第一请求响应率大于第二请求响应率,且第一数据量小于预设数据量阈值,这说明与tcp协议相比,在采用quic协议发送请求时端到端数据传输效果较好,则quic协议为当前推荐采用的传输协议,因此服务端确定quic协议为目标传输协议。另一方面,若服务端判断在采用quic协议发送请求时的第一数据量大于预设数据量阈值,表明当前请求并发量达到主机处理能力的告警阈值,此时不适合继续采用quic协议,因此服务端可以直接确定tcp协议为目标传输协议,而无需考虑主机能力信息、传输质量信息和请求响应率信息的比较结果。其他可能的判定过程可以根据预设的判定标准来确定,此处不予赘述。
225.通过上述方式五,服务端可以综合考虑服务端和客户端均支持的多个协议中对应主机能力、数据量、传输质量以及请求响应率,确定适配当前场景的传输协议,提升了判断适配协议的准确性,进而可以指示客户端切换到适配当前场景的传输协议,实现传输协议的智能主动切换,避免相关技术中由于传输协议被动切换导致用户操作无响应或网络卡顿等现象。即,根据当前场景下系统环境中各种因素的变化自动选择适配的传输协议,以实时适应变化,提高通信效率。
226.需要说明的是,在本技术实施例中,“大于”可以替换为“大于或等于”,“小于或等
于”可以替换为“小于”,或者,“大于或等于”可以替换为“大于”,“小于”可以替换为“小于或等于”。具体可以根据实际使用需求确定,本技术实施例不作限定。
227.在步骤s330中,服务端向客户端发送第一指示信息,客户端接收服务端发送的第一指示信息。
228.其中,该第一指示信息用于指示目标传输协议。
229.在本技术实施例中,服务端在确定目标传输协议之后,通过向客户端发送第一指示信息,向客户端告知目标传输协议为当前推荐的传输协议。
230.在步骤s340中,客户端根据第一指示信息,将目标传输协议确定为与服务端进行数据交互的传输协议。
231.在本技术实施例中,客户端在接收到第一指示信息之后,获知服务端推荐的传输协议,例如quic协议或tcp协议,进而可以在后续向服务端发送请求时采用该推荐的传输协议。本技术实施例综合考虑http over quic协议和http over tcp协议,通过获取相关信息并分析确定适配当前场景的优选传输协议,使得各个协议联动起来,实现协议智能主动切换。
232.本技术实施例提供的指示传输协议的方法,服务端获取第一传输协议的第一信息和第二传输协议的第二信息;服务端根据第一信息和第二信息确定目标传输协议,该目标传输协议为第一传输协议或者第二传输协议;服务端向客户端发送第一指示信息,该第一指示信息用于指示目标传输协议。通过该方案,由服务端基于网络质量、协议应用效果、服务端主机健康情况等数据,综合判断当前场景下适合进行数据交互的传输协议,然后将确定好的传输协议告知给客户端,进而客户端可以选择与服务端通过该传输协议进行数据交互,可实现传输协议的智能调度。即,可以根据当前场景下系统环境中各种因素的变化自动选择适配的传输协议,以实时适应变化,提高通信效率。避免了相关技术中协议切换时出现的操作无响应、网络卡顿等现象,从而可提升用户的体验。
233.可选的,在本技术实施例中,服务端可以主动地(例如周期性地)根据当然场景确定适配当前场景的传输协议并告知客户端切换为该传输协议,或者,客户端可以向服务端发送请求消息,触发服务端确定适配当前场景的传输协议。下面示例性的给出了两种可能的实现方式,第一实现方式为客户端请求服务端确定适配当前场景的传输协议,第二实现方式为客户端请求服务端处理业务,服务端在处理业务的同时确定适配当前场景的传输协议。
234.第一实现方式:结合图4,如图5所示,在上述的步骤s310之前,本技术实施例提供的指示传输协议的方法300还可以包括下述的步骤s350。
235.s350,客户端向服务端发送第一请求消息,服务端接收客户端发送的第一请求消息。
236.其中,第一请求消息用于指示服务端确定目标传输协议。
237.进一步的,如图5所示,在上述步骤s350之后,上述的步骤s310具体可以通过下述的步骤s310a实现,以及上述的步骤s330具体可以通过下述的步骤s330a和s330b实现。
238.s310a,服务端响应于第一请求消息,获取第一传输协议的第一信息和第二传输协议的第二信息。
239.s330a,服务端向客户端发送第一请求消息的第一响应消息,该第一响应消息包括
第一指示信息。
240.可选的,上述第一响应消息可以包括http响应头(headers)信息。其中,第一指示信息承载于http响应头信息中的预留字段中。也就是说,在http响应头信息中的预留字段中可以设置quic协议的指示信息,以指示当前优选协议为quic协议;当然,也可以设置tcp协议的指示信息,以指示当前优选协议为tcp协议。
241.示例性的,假设第一指示信息指示quic协议,则服务器在http响应头信息中的预留alt-svc字段中设置quic协议的指示信息。
242.例如,响应头信息:alt-svc'quic=":端口号";ma=《max-age》;v="quic版本号"';
243.其中,quic=":端口号"为必选项,用于指示当前优选协议为quic协议,及其提供给客户端访问的端口号。v="quic版本号"为必选项,用于指示当前服务端支持的quic版本号。
244.其中,ma=《max-age》为可选项,用于指示当前访问方式的有效期,超过该时间后,服务端将不保证该访问方式依旧可用,客户端应当重新获取更新后的alt-svc列表。例如有效期的单位为秒,默认值为24小时(即86400秒)。
245.下面通过列举两个示例来说明本技术实施例通过http响应头信息中的预留字段承载第一指示信息的具体实现方式。
246.示例1:alt-svc'quic=":443";v="43"';
247.根据上述响应头信息可知,当前优选协议为quic协议,客户端可访问的端口号为443,并且当前服务端支持的quic版本号为43。
248.示例2:alt-svc'quic=":443";ma=2592000;v="43"';
249.根据上述响应头信息可知,当前优选协议为quic协议,客户端可访问的端口号为443,并且当前访问方式的有效期为2592000秒,以及当前服务端支持的quic版本号为43。
250.又示例性的,假设第一指示信息指示tcp协议,则服务器在http响应头信息中的预留字段中设置tcp协议的指示信息。
251.例如,响应头信息:alt-svc'tcp=":端口号";ma=《max-age》';
252.其中,tcp=":端口号"为必选项,用于指示当前优选协议为tcp协议,及其提供给客户端访问的端口号。ma=《max-age》为可选项,用于指示当前访问方式的有效期,超过该时间后,服务端将不保证该访问方式依旧可用,客户端应当重新获取更新后的alt-svc列表。例如有效期的单位为秒,默认值为24小时(即86400秒)。
253.下面通过列举两个示例来说明本技术实施例通过http响应头信息中的预留字段承载第一指示信息的具体实现方式。
254.示例1:alt-svc'tcp=":443";
255.根据上述响应头信息可知,当前优选协议为tcp协议,客户端可访问的端口号为443。
256.示例2:alt-svc'tcp=":443";ma=86400;
257.根据上述响应头信息可知,当前优选协议为tcp协议,客户端可访问的端口号为443,并且当前访问方式的有效期为86400秒。
258.s330b,客户端接收第一响应消息,并从第一响应消息中获取第一指示信息。
259.其中,客户端接收到服务端发送的请求响应,解析http响应头中alt-svc字段,获取服务端推荐的优选协议(http over quic协议或http over tcp协议),决策后续请求的优选协议。
260.本技术实施例中,服务端在接收到客户端请求时,可以基于网络质量、协议应用效果、主机健康情况等数据,综合判断当前场景下适合进行数据交互的优选传输协议,在http响应头中alt-svc字段动态设置优选协议,主动告知给客户端优选传输协议,进而客户端可以选择与服务端通过该传输协议进行数据交互,从而可实现传输协议的智能调度。因此,本技术实施例可以动态调整传输层的通信协议来适应系统环境的变化,提高了网络的传输效率,提升用户的体验。
261.为了更好的说明本技术实施例第一实现方式提供的指示传输协议的方法,下面结合图6进一步描述本技术实施例第一实现方式提供的指示传输协议的方法。图6示出了本技术实施例第一实现方式提供的指示传输协议的方法流程示意图。如图6所示,该方法流程包括下述的步骤s401-s407。
262.s401,客户端向服务端定时发送优选协议探测请求(即上述第一请求消息)。
263.示例性的,客户端可以指定特殊的统一资源定位符(uniform resoure locator,url)作为协议优选探测请求。
264.s402,服务端(例如服务器集群)接收到该探测请求。
265.s403,服务端收集服务器集群数据,主要包括如下三个维度:
266.1)主机健康状况(cpu负载、内存空间、服务进程等数据);
267.2)请求健康状况(请求成功率、请求并发量等);
268.3)传输质量状况(请求端到端时延、丢包率等)。
269.s404,服务端根据以下a)至d)中的一项或多项确定优选协议(即上述目标传输协议):
270.a)是否quic协议比tcp协议主机能力差,即主机健康状况差;
271.b)是否quic协议比tcp协议传输质量低,通过比较请求时延和/或丢包率等来判断;
272.c)是否quic协议请求并发量达到告警阈值;
273.d)是否quic协议比tcp协议请求成功率低。
274.需要说明的是,这里quic协议是指基于quic连接的http协议,tcp协议是指基于tcp连接的http协议。
275.s405a,若上述a)至d)中的一项或多项不满足(对应图6中的否),则服务端优选基于quic连接的http协议。
276.s405b,若上述a)至d)中的一项或多项满足(对应图6中的是),则服务端优选基于tcp连接的http协议。
277.需要说明的是,对于上述的步骤s405a和s405b,服务端二者择一执行,然后继续执行下述的步骤s406。
278.s406,服务端通过http响应头中alt-svc字段承载优选协议,并向客户端发送第一响应消息。
279.s407,客户端接收第一响应消息,解析响应头中的alt-svc字段,选择优选协议为
与服务端进行数据交互的协议。
280.进一步的,客户端继续执行上述的步骤s401-s407。
281.第一实现方式:结合图4,如图7所示,在上述的步骤s310之前,本技术实施例提供的指示传输协议的方法300还可以包括下述的步骤s360。
282.s360,客户端向服务端发送第二请求消息,服务端接收客户端发送的第二请求消息。
283.其中,第二请求消息用于请求服务端处理第一业务。
284.可选的,客户端可以通过第一传输协议或者第二传输协议向服务端发送第二请求消息。具体的,客户端可能通过第一传输协议向服务端发送第二请求消息,也可能通过第二传输协议向服务端发送业务请求(即上述第二请求消息),服务端在接收客户端发送的业务请求的情况下,可以解析该业务请求,处理对应业务,并且根据业务请求确定当前采用的传输协议(例如当前采用quic协议),然后判断当前采用的传输协议是否适配当前的应用场景(例如判断quic协议的请求并发量是否超高告警阈值),即判断是否需要进行传输协议的切换,以实现传输协议的智能主动调度,并避免用户体验受损时才能协议调度的情况,以提升用户体验。
285.进一步的,如图7所示,在上述步骤s360之后,上述的步骤s310具体可以通过下述的步骤s310b和s310c实现。
286.s310b,服务端响应于第二请求消息,处理第一业务,得到第一业务的处理信息。
287.s310c,服务端响应于第二请求消息,获取第一传输协议的第一信息和第二传输协议的第二信息。
288.进一步的,在上述的步骤s330具体可以通过下述的步骤s330c和s330d实现。
289.s330c,服务端向客户端发送第二请求消息的第二响应消息,该第二响应消息包括第一指示信息以及第一业务的处理信息。
290.可选的,上述第二响应消息可以包括http响应头信息。其中,第一指示信息承载于http响应头信息中的预留字段中。对于http响应头信息以及预留字段的描述具体可以参见上述对http响应头信息以及预留字段的详细描述,此处不再赘述。
291.s330d,客户端接收第二响应消息,并从第二响应消息中获取第一指示信息。
292.其中,客户端接收到服务端发送的请求响应,解析http响应头中alt-svc字段,获取服务端推荐的优选协议(http over quic协议或http over tcp协议),决策后续请求的优选协议。
293.通过上述方案,服务端在接收到客户端请求时,根据当前场景下与传输协议相关的信息确定适配当前场景的优选传输协议(例如tcp协议或者quic协议),并主动告知客户端优选的传输协议,实现客户端的传输协议智能调度,避免了用户体验受损时才能协议调度的情况,从而本技术方案可提升用户体验,并且避免了在传输协议不可用的情况下,客户端需要定时重试该传输协议的行为,从而本技术方案还可以减少客户端的资源开销。即,本技术实施例可以根据当前场景下系统环境中各种因素的变化自动选择适配的传输协议,以实时适应变化,提高通信效率。
294.为了更好的说明本技术实施例第二实现方式提供的指示传输协议的方法,下面结合图8进一步描述本技术实施例第二实现方式提供的指示传输协议的方法。图8示出了本申
请实施例第二实现方式提供的指示传输协议的方法流程示意图。如图8所示,该方法流程包括下述的步骤s501-s507。
295.s501,客户端通过quic协议或tcp协议向服务端发送业务请求(即上述第二请求消息)。
296.s502,服务端(例如服务器集群)接收到该业务请求。
297.s503,服务端收集服务器集群数据,主要包括如下三个维度:
298.1)主机健康状况(cpu负载、内存空间、服务进程等数据);
299.2)请求健康状况(请求成功率、请求并发量等);
300.3)传输质量状况(请求端到端时延、丢包率等)。
301.s504,服务端根据以下a)至d)中的一项或多项确定优选协议(即上述目标传输协议):
302.a)是否quic协议比tcp协议主机能力差,即主机健康状况差;
303.b)是否quic协议比tcp协议传输质量低,通过比较请求时延和/或丢包率等来判断;
304.c)是否quic协议请求并发量达到告警阈值;
305.d)是否quic协议比tcp协议请求成功率低。
306.需要说明的是,这里提到的quic协议是指基于quic连接的http协议,通过quic协议发送的请求记为http over quic请求。这里提到的tcp协议是指基于tcp连接的http协议,通过tcp协议发送的请求记为http over tcp请求。
307.s505a,若上述a)至d)中的一项或多项不满足(对应图6中的否),则服务端优选基于quic连接的http协议。
308.s505b,若上述a)至d)中的一项或多项满足(对应图6中的是),则服务端优选基于tcp连接的http协议。
309.需要说明的是,对于上述的步骤s505a和s505b,服务端二者择一执行,然后继续执行下述的步骤s506。
310.s506,服务端通过http响应头中alt-svc字段承载优选协议,并向客户端发送第二响应消息。
311.s507,客户端接收第二响应消息,解析响应头中的alt-svc字段,选择优选协议为与服务端进行数据交互的协议。
312.进一步的,客户端继续执行上述的步骤s501-s507。
313.需要说明的是,上述图8与图6的区别在于,图6中客户端直接请求服务端确定目标传输协议,服务端响应于该探测请求,确定适配当前场景的并告知给客户端。图8中客户端请求服务端处理业务,服务端响应于该业务请求,处理业务的同时确定适配当前场景的传输协议,并在反馈业务处理数据时向客户端告知适配当前场景的传输协议。
314.在一些可能的实现方式中,在服务端通过向客户端发送第一指示信息,向客户端告知目标传输协议为当前推荐的传输协议之后,客户端采用适配当前场景的传输协议与服务端进行数据交互。
315.示例性的,结合图4,如图9所示,在上述的步骤s340之后,本技术实施例提供的指示传输协议的方法300还可以包括下述的步骤s370-s390。
316.s370,客户端通过目标传输协议向服务端发送第三请求消息,服务端接收客户端发送的第三请求消息。
317.其中,第三请求消息用于请求服务端处理第二业务。
318.s380,服务端响应于第三请求消息,处理第二业务,得到第二业务的处理信息。
319.在本技术实施例中,客户端发出http over quic或者http over tcp类型的正常业务处理请求,服务器接收到客户端发送的业务请求,并处理该业务请求,得到业务处理结果。
320.s390,服务端通过目标传输协议向客户端发送第二业务的处理信息。
321.在本技术实施例中,客户端可以根据服务端发送的第一指示信息,采用适配当前场景的传输协议,在向客户端发送请求时采用服务端当前推荐的传输协议,从而实现传输协议的智能主动切换,避免相关技术中由于传输协议被动切换导致用户操作无响应或网络卡顿等现象。
322.需要说明的是,本技术的上述实施例中的图9是结合上述图4示例说明的,在具体实现时,图9还可以结合其它任意可以结合的附图(例如图5和图7)实现。
323.本技术实施例提供的方案主要是针对客户端被动感知quic协议不可用,在已造成用户体验差的结果下,才进行协议切换的问题,以及客户端需要定时重试quic连接的问题。在本技术实施例中,服务端根据当前主机和协议健康状况,通过http响应headers中alt-svc字段主动告知客户端应该优选的协议,来实现主动预防,主动切换,减少客户端资源开销,提升用户体验。
324.为了更好的说明本技术实施例提供的指示传输协议的方法,下面结合图10进一步描述本技术实施例实现上述方法的核心模块。本技术实施例的主要核心模块展示如图10所示。下面对这些核心模块进行介绍。
325.(一)客户端10
326.应用(application,app)软件(software sevelopment kit,sdk)模块101负责http over quic请求和http over tcp请求的建连竞速、报文解析、发送和接收。
327.其中,建连竞速指的是采取quic和tcp竞争的方式与服务端建立连接,看哪个协议建立连接快,选择哪个协议。例如,客户端10向服务端20发送http over quic请求和http over tcp请求,若通过http over quic请求先建立连接,则客户端10选择quic协议与服务端20建立连接。
328.(二)服务端20
329.请求处理模块201:实现http over quic请求和http over tcp请求的报文处理及转发。
330.大数据模块202:收集服务端主机和协议应用状况,进行汇总分析。例如,大数据模块202采集的数据包括下述三方面的数据:
331.1)主机健康状况(cpu负载、内存空间、服务进程等数据);
332.2)请求健康状况(请求成功率、请求量等);
333.3)网络加速效果(http over quic请求与http over tcp请求端到端时延对比、丢包率)。
334.协议优选决策模块203:基于大数据汇总分析后的主机和协议状况,决策告知客户
端优选协议。
335.响应头处理模块204:通过http响应头信息中alt-svc字段承载或设置优选协议。
336.示例性的,在服务端20接收到客户端10发送的请求的情况下,服务端20通过请求处理模块201处理请求,并从大数据模块202获取当前服务器集群数据;然后协议优选决策模块203根据大数据模块202获取的数据,决策告知客户端优选协议;然后响应头处理模块204通过http响应头信息中alt-svc字段承载或设置该优选协议。
337.本文中描述的各个实施例可以为独立的方案,也可以根据内在逻辑进行组合,这些方案都落入本技术的保护范围中。
338.可以理解的是,上述各个方法实施例中由服务端实现的方法和操作,也可以由可用于服务端的部件(例如芯片或者电路)实现。上述各个方法实施例中由客户端实现的方法和操作,也可以由可用于客户端的部件(例如芯片或者电路)实现。
339.上文描述了本技术提供的方法实施例,下文将描述本技术提供的装置实施例。应理解,装置实施例的描述与方法实施例的描述相互对应,因此,未详细描述的内容可以参见上文方法实施例,为了简洁,这里不再赘述。
340.上文主要从设备与设备之间交互的角度对本技术实施例提供的方案进行了描述。可以理解的是,各个设备,例如发射端设备或者接收端设备,为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的保护范围。
341.本技术实施例可以根据上述方法示例,对发射端设备或者接收端设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有其它可行的划分方式。下面以采用对应各个功能划分各个功能模块为例进行说明。
342.图11为本技术实施例提供的指示传输协议的装置700的示意性框图。该装置700可以用于执行上文方法实施例中服务端所执行的动作。该装置700包括获取单元710、处理单元720和收发单元730。获取单元710用于采集数据,处理单元720用于执行上文方法实施例中服务端侧的处理相关的操作。收发单元730用于执行上文方法实施例中服务端侧的收发相关的操作。收发单元730还可以称为通信接口或通信单元。
343.其中,获取单元710用于获取第一传输协议的第一信息和第二传输协议的第二信息;处理单元720用于根据第一信息和第二信息确定目标传输协议,该目标传输协议为第一传输协议或者第二传输协议;收发单元730用于向客户端发送第一指示信息,该第一指示信息用于指示目标传输协议。
344.其中,上述第一信息用于指示第一传输协议对应的第一主机能力,上述第二信息用于指示第二传输协议对应的第二主机能力;和/或,上述第一信息用于指示第一传输协议对应的第一数据量,上述第二信息用于指示第二传输协议对应的第二数据量;和/或,上述
第一信息用于指示第一传输协议对应的第一传输质量,上述第二信息用于指示第二传输协议对应的第二传输质量;和/或,上述第一信息用于指示第一传输协议对应的第一请求响应率,上述第二信息用于指示第二传输协议对应的第二请求响应率。
345.本技术实施例提供的指示传输协议的装置,可以基于网络质量、协议应用效果、服务端主机健康情况等数据,综合判断当前场景下适合进行数据交互的传输协议,然后将确定好的传输协议告知给客户端,进而客户端可以选择通过该传输协议进行数据交互,实现传输协议的智能调度。即,该装置可以根据当前场景下系统环境中各种因素的变化自动选择适配的传输协议,以实时适应变化,提高通信效率。避免了相关技术中协议切换时出现的操作无响应、网络卡顿等现象,从而可提升用户的体验。
346.作为一个可选实施例,上述第一传输协议可以为基于quic连接的超文本传输协议http协议,上述第二传输协议可以为基于tcp连接的http协议。
347.作为一个可选实施例,上述第一信息可以用于指示第一传输协议对应的第一主机能力,上述第二信息可以用于指示第二传输协议对应的第二主机能力。在此情况下,处理单元720具体用于:若第一主机能力优于第二主机能力,则确定第一传输协议为目标传输协议;或者,若第一主机能力劣于第二主机能力,则确定第二传输协议为目标传输协议。
348.作为一个可选实施例,上述第一信息用于指示第一传输协议对应的第一数据量,上述第二信息用于指示第二传输协议对应的第二数据量。在此情况下,处理单元720具体用于:若第一数据量小于预设数据量阈值,则确定第一传输协议为目标传输协议;或者,若第一数据量大于或等于预设数据量阈值且第二数据量小于预设数据量阈值,则确定第二传输协议为目标传输协议。
349.作为一个可选实施例,上述第一信息用于指示第一传输协议对应的第一传输质量,上述第二信息用于指示第二传输协议对应的第二传输质量,示例性的,上述第一传输质量可以采用第一时延和/或第一丢包率表示,上述第二传输质量可以采用第二时延和/或第二丢包率表示。
350.在此情况下,处理单元720具体用于:若第一时延小于第二时延,则确定第一传输协议为目标传输协议;若第一时延大于或等于第二时延,则确定第二传输协议为目标传输协议。
351.和/或,处理单元720具体用于:若第一丢包率小于第二丢包率,则确定第一传输协议为目标传输协议;若第一丢包率大于或等于第二丢包率,则确定第二传输协议为目标传输协议。
352.和/或,处理单元720具体用于:若第一时延小于第二时延且第一丢包率小于第二丢包率,则确定第一传输协议为目标传输协议;若第一时延大于或等于第二时延且第一丢包率大于或等于第二丢包率,则确定第二传输协议为目标传输协议。
353.作为一个可选实施例,上述第一信息用于指示第一传输协议对应的第一请求响应率,上述第二信息用于指示第二传输协议对应的第二请求响应率。在此情况下,处理单元720具体用于:若第一请求响应率大于或等于第二请求响应率,则确定第一传输协议为目标传输协议;或者,若第一请求响应率小于第二请求响应率,则确定第二传输协议为目标传输协议。
354.在一些可能的实现方式中,收发单元730还用于在向客户端发送第一指示信息之
前,接收客户端发送的第一请求消息,该第一请求消息用于指示装置700确定目标传输协议。收发单元730具体用于向客户端发送第一请求消息的第一响应消息,该第一响应消息包括第一指示信息。
355.在另一些可能的实现方式中,收发单元730还用于在向客户端发送第一指示信息之前,接收客户端通过第一传输协议或第二传输协议发送的第二请求消息,该第二请求消息用于请求装置700处理第一业务。收发单元730具体用于向客户端发送第二请求消息的第二响应消息,该第二响应消息包括第一业务的处理信息和第一指示信息。
356.在一些可能的实现方式中,上述第一响应消息或者第二响应消息可以包括超文本传输协议http响应头信息。其中,上述第一指示信息可以承载于http响应头信息中的预留字段中。
357.在一些可能的实现方式中,收发单元730还用于在向客户端发送第一指示信息之后,接收客户端通过目标传输协议发送的第三请求消息,该第三请求消息用于请求处理第二业务;并且还用于通过目标传输协议向客户端发送第二业务的处理信息。
358.根据本技术实施例的装置700可对应于执行本技术实施例中描述的方法,并且装置700中的单元的上述和其它操作和/或功能分别为了实现方法的相应流程,为了简洁,在此不再赘述。需要说明的是,在实际实现时,图11中的获取单元710可以对应上述图10中的大数据模块202;图11中的处理单元720可以包括图10中的请求处理模块201、协议优选决策模块203和响应头处理模块204。
359.图8为本技术实施例提供的指示传输协议的装置800的示意性框图。该装置800可以用于执行上文方法实施例中客户端所执行的动作。该装置800包括收发单元810和处理单元820。收发单元810用于执行上文方法实施例中客户端侧的收发相关的操作。收发单元810还可以称为通信接口或通信单元。处理单元820用于进行数据处理,处理单元820用于执行上文方法实施例中客户端侧的处理相关的操作。
360.其中,收发单元810用于接收服务端发送的第一指示信息,该第一指示信息用于指示目标传输协议,该目标传输协议为服务端根据第一传输协议的第一信息和第二传输协议的第二信息确定的,该目标传输协议为第一传输协议或者第二传输协议。
361.处理单元820用于根据第一指示信息,将目标传输协议确定为与服务端进行数据交互的传输协议。
362.其中,上述第一信息用于指示第一传输协议对应的第一主机能力,上述第二信息用于指示第二传输协议对应的第二主机能力;和/或,上述第一信息用于指示第一传输协议对应的第一数据量,上述第二信息用于指示第二传输协议对应的第二数据量;和/或,上述第一信息用于指示第一传输协议对应的第一传输质量,上述第二信息用于指示第二传输协议对应的第二传输质量;和/或,上述第一信息用于指示第一传输协议对应的第一请求响应率,上述第二信息用于指示第二传输协议对应的第二请求响应率。
363.本技术实施例提供的指示传输协议的装置,可以接收到由服务端基于网络质量、协议应用效果、服务端主机健康情况等数据综合判断的当前场景下适合进行数据交互的传输协议,进而可以选择与服务端通过该传输协议进行数据交互,实现传输协议的智能调度。即,该装置可以根据当前场景下系统环境中各种因素的变化自动选择适配的传输协议,以实时适应变化,提高通信效率。避免了相关技术中协议切换时出现的操作无响应、网络卡顿
processing unit,cpu)。该处理器还可以是其它通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。或者该处理器810采用一个或多个集成电路,用于执行相关程序,以实现本技术实施例所提供的技术方案。
376.该存储器920可以包括只读存储器和随机存取存储器,并向处理器910提供指令和数据。处理器910的一部分还可以包括非易失性随机存取存储器。例如,处理器910还可以存储设备类型的信息。
377.在电子设备900运行时,所述处理器910执行所述存储器920中的计算机执行指令以执行上述方法的操作步骤。
378.应理解,根据本技术实施例的电子设备900可对应于本技术实施例中的装置700和装置800,并且装置700和装置800中的各个单元的上述和其它操作和/或功能分别为了实现方法的相应流程,为了简洁,在此不再赘述。
379.可选地,在一些实施例中,本技术实施例还提供了一种计算机可读介质,所述计算机可读介质存储有程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。
380.可选地,在一些实施例中,本技术实施例还提供了一种计算机程序产品,所述计算机程序产品包括:计算机程序代码,当所述计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。
381.在本技术实施例中,终端设备或网络设备包括硬件层、运行在硬件层之上的操作系统层,以及运行在操作系统层上的应用层。其中,硬件层可以包括中央处理器(central processing unit,cpu)、内存管理单元(memory management unit,mmu)和内存(也称为主存)等硬件。操作系统层的操作系统可以是任意一种或多种通过进程(process)实现业务处理的计算机操作系统,例如,linux操作系统、unix操作系统、android操作系统、ios操作系统或windows操作系统等。应用层可以包含浏览器、通讯录、文字处理软件、即时通信软件等应用。
382.本技术实施例并未对本技术实施例提供的方法的执行主体的具体结构进行特别限定,只要能够通过运行记录有本技术实施例提供的方法的代码的程序,以根据本技术实施例提供的方法进行通信即可。例如,本技术实施例提供的方法的执行主体可以是终端设备或网络设备,或者,是终端设备或网络设备中能够调用程序并执行程序的功能模块。
383.本技术的各个方面或特征可以实现成方法、装置或使用标准编程和/或工程技术的制品。本文中使用的术语“制品”可以涵盖可从任何计算机可读器件、载体或介质访问的计算机程序。例如,计算机可读介质可以包括但不限于:磁存储器件(例如,硬盘、软盘或磁带等),光盘(例如,压缩盘(compact disc,cd)、数字通用盘(digital versatile disc,dvd)等),智能卡和闪存器件(例如,可擦写可编程只读存储器(erasable programmable read-only memory,eprom)、卡、棒或钥匙驱动器等)。
384.本文描述的各种存储介质可代表用于存储信息的一个或多个设备和/或其它机器可读介质。术语“机器可读介质”可以包括但不限于:无线信道和能够存储、包含和/或承载
指令和/或数据的各种其它介质。
385.应理解,本技术实施例中提及的处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
386.还应理解,本技术实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,rom)、可编程只读存储器(programmable rom,prom)、可擦除可编程只读存储器(erasable prom,eprom)、电可擦除可编程只读存储器(electrically eprom,eeprom)或闪存。易失性存储器可以是随机存取存储器(random access memory,ram)。例如,ram可以用作外部高速缓存。作为示例而非限定,ram可以包括如下多种形式:静态随机存取存储器(static ram,sram)、动态随机存取存储器(dynamic ram,dram)、同步动态随机存取存储器(synchronous dram,sdram)、双倍数据速率同步动态随机存取存储器(double data rate sdram,ddr sdram)、增强型同步动态随机存取存储器(enhanced sdram,esdram)、同步连接动态随机存取存储器(synchlink dram,sldram)和直接内存总线随机存取存储器(direct rambus ram,dr ram)。
387.需要说明的是,当处理器为通用处理器、dsp、asic、fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件时,存储器(存储模块)可以集成在处理器中。
388.还需要说明的是,本文描述的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
389.本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的保护范围。
390.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
391.在本技术所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。此外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
392.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目
的。
393.另外,在本技术各个实施例中的各功能单元可以集成在一个单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
394.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上,或者说对现有技术做出贡献的部分,或者该技术方案的部分,可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,该计算机软件产品包括若干指令,该指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例所述方法的全部或部分步骤。前述的存储介质可以包括但不限于:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
395.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同。本文中在本技术的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术。
396.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
再多了解一些

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

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

相关文献