CN115529255A - 一种连接探测方法、客户端与服务器 - Google Patents
一种连接探测方法、客户端与服务器 Download PDFInfo
- Publication number
- CN115529255A CN115529255A CN202110713070.1A CN202110713070A CN115529255A CN 115529255 A CN115529255 A CN 115529255A CN 202110713070 A CN202110713070 A CN 202110713070A CN 115529255 A CN115529255 A CN 115529255A
- Authority
- CN
- China
- Prior art keywords
- connection
- server
- client
- period
- current
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 173
- 238000000034 method Methods 0.000 claims abstract description 77
- 230000002159 abnormal effect Effects 0.000 claims abstract description 54
- 239000000523 sample Substances 0.000 claims description 75
- 230000004044 response Effects 0.000 claims description 40
- 238000004891 communication Methods 0.000 claims description 39
- 230000005540 biological transmission Effects 0.000 claims description 32
- 230000015654 memory Effects 0.000 claims description 29
- 238000010295 mobile communication Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 15
- 238000003860 storage Methods 0.000 claims description 12
- 230000008859 change Effects 0.000 claims description 4
- 230000001419 dependent effect Effects 0.000 claims description 3
- 239000004973 liquid crystal related substance Substances 0.000 claims description 3
- 238000012545 processing Methods 0.000 description 20
- 238000013461 design Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 11
- 238000007726 management method Methods 0.000 description 8
- 230000005856 abnormality Effects 0.000 description 6
- 230000003287 optical effect Effects 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 101100011863 Arabidopsis thaliana ERD15 gene Proteins 0.000 description 1
- 101150021084 CID2 gene Proteins 0.000 description 1
- 101100191082 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) GLC7 gene Proteins 0.000 description 1
- 101100274406 Schizosaccharomyces pombe (strain 972 / ATCC 24843) cid1 gene Proteins 0.000 description 1
- 206010044565 Tremor Diseases 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/10—Active monitoring, e.g. heartbeat, ping or trace-route
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
一种连接探测方法、客户端与服务器。该方法适用于客户端时,客户端确定与服务端之间的连接异常;以第一周期向所述服务端发送探测信息,所述探测信息用于探测所述连接是否恢复;其中,所述第一周期与所述服务端当前业务量适配,和/或,与所述连接的当前连接状态相关。通过这种方式,客户端在向服务端发送探测信息时考虑到了服务端的业务压力,避免服务端压力过大导致崩溃。
Description
技术领域
本申请涉及终端技术领域,尤其涉及一种连接探测方法、客户端与服务器。
背景技术
客户端(比如移动终端)连接到服务端(比如应用服务器),进而访问服务端内容。示例性的,客户端与服务端之间建立TCP连接或QUIC连接,那么客户端上的电子邮件收发、文件传输、即时通信等依赖于TCP连接或QUIC连接。
目前,当客户端与服务端之间的连接异常时,为了尽快恢复连接,客户端会以本地配置的周期不断向服务端探测连接是否恢复。这种客户端以本地周期不断探测的方式,容易增大服务端处理压力导致服务器崩溃。
发明内容
本申请的目的在于提供了一种连接探测方法与装置,有助于缓解服务端的处理压力,避免服务端压力过大而崩溃。
第一方面,提供一种连接探测方法。该方法应用于客户端。所述客户端比如手机、平板电脑、笔记本电脑等等,本申请实施例不作限定。客户端确定与服务端之间的连接异常;客户端以第一周期向所述服务端发送探测信息,所述探测信息用于探测所述连接是否恢复;其中,所述第一周期与所述服务端当前业务量适配,和/或,与所述连接的当前连接状态相关。也就是说,本申请实施例中,客户端与服务端之间的连接异常时,客户端向服务端发送的探测信息的周期与服务端当前业务量适配。比如,服务端当前业务量较高时,客户端以较小的周期发送探测信息,避免频繁地向服务端发送探测信息导致服务端压力过大而崩溃;服务端当前业务量较少时,客户端以较大的周期发送探测信息,保证连接尽快恢复。
其中,客户端与服务端之间的连接可以是基于UDP的连接。比如,TCP连接、QUIC连接等等;或者,还可以是未来随着技术的演进出现的基于其它协议(与UDP、TCP、QUIC不同的协议)的连接,本申请实施例对此不作限定。
其中,探测信息用于探测连接是否恢复,可以包括:探测所述连接的拥塞情况、传输速率、丢包率等中的至少一项是否恢复正常。其中,拥塞情况恢复正常包括服务端在所述连接上接收的等待处理的报文数量小于预设数量。传输速率恢复正常包括服传输速率大于阈值1或处于预设范围内。丢包率恢复正常包括丢包率小于阈值2或处于预设范围内。
在一种可能的设计中,确定所述客户端与服务端之间的连接异常,包括:当所述连接满足如下条件中的至少一种时,确定所述连接异常;所述条件包括:所述服务端响应时延大于第一阈值、数据传输速率小于第二阈值、丢包率大于第三阈值。示例性的,当服务端响应时延较长或数据传输效率较低时,会影响用户体验。比如,用户使用手机(客户端)上网搜索内容,因为服务端响应时延长或数据传输效率低,一直未搜索到结果,或者手机播放在线视频,因为服务端响应时延长或数据传输效率低,视频比较卡顿等等。同理,丢包率较大也会影响用户体验,比如用户请求的网络资源(图片、视频等),但是因为丢包率较高,导致服务端返回的资源不准确或无法打开。本申请实施例中,当客户端检测到服务端的响应时延较大、数据传输速率较小、丢包率较大时,确定与服务端之间的连接异常,可以启动探测,以尽快恢复连接,保证用户的网络体验。
在一种可能的设计中,确定所述客户端与服务端之间的连接异常,包括:所述客户端的网络接入方式发生更改;其中,所述客户端的网络接入方式发生更改,包括如下至少一种:由无线局域网切换为移动通信网络;或者,
由移动通信网络的第一通信制式切换到第二通信制式;或者,
由第一局域网切换到第二局域网。
示例性的,用户携带客户端从家里出门之后,客户端的网络接入方式由WIFI网络切换到移动通信网络(4G网络、3G网络或5G网络),此时客户端检测到与服务端之间的连接异常,可以启动探测,以尽快恢复连接,保证用户网络体验。
在一种可能的设计中,所述第一周期与所述服务端当前业务量适配,包括如下至少一项:所述第一周期与所述服务端当前设备接入量相关;或者,
所述第一周期与所述服务端当前待处理报文数量相关;或者,
所述第一周期与所述服务端本地运行负载相关。
也就是说,客户端与服务端之间的连接异常时,客户端向服务端发送的探测信息的周期与服务端当前业务量适配,避免服务端当前业务量较高时,频繁的向服务端发送探测信息,导致服务端压力过大而崩溃。
在一种可能的设计中,所述第一周期与所述连接的当前连接状态相关,包括:所述连接的当前连接状态包括:所述连接发生过异常的次数、频率、时长、以及响应时延、传输速率、丢包率中的至少一项;所述第一周期与所述当前连接状态呈正比或反比。
也就是说,客户端与服务端之间的连接异常时,客户端向服务端发送的探测信息的周期与客户端与服务端之间的连接的当前连接状态适配。比如,客户端与服务端之间的连接的响应时长较长,则以较小的周期发送探测信息,避免频繁的向服务端发送探测信息导致服务端压力过大而崩溃;当连接的响应时间较短时,可以以较大的周期发送探测信息,以使连接尽快恢复。
在一种可能的设计中,所述方法还包括:所述客户端接收所述服务端发送的配置信息,所述配置信息中包括如下至少一项:
最小探测周期,用于指示所述客户端发送探测信息的最小周期;
第一指示信息,用于指示所述客户端是否启动退避;
退避参数,用于指示退避规则;
最大探测周期,用于指示所述客户端发送探测信息的最大周期;其中,所述最小周期和/或所述最大周期是所述服务端根据当前业务量确定的;
生效的连接,用于指示对所述配置信息生效的连接;
第二指示信息,用于指示所述客户端是否使用其它协议发起探测,所述其它协议与所述连接对应的协议不同;
第一协议,用于指示所述客户端基于所述第一协议发送探测信息,所述第一协议与所述连接对应的协议不同;
第一协议相关参数,用于指示所述第一协议所支持的探测周期。
也就是说,服务端可以向客户端配置探测周期,还可以配置是否启动退避模式、退避参数、最大探测周期、应用的连接、是否配置外置检测协议、外置检测协议参数等中的至少一项。这样的话,客户端无需自行计算探测周期,客户端压力较小。而且,服务端自行确定的探测周期是比较准确的。因为服务器清楚本机的业务量的具体情况,所以可以确定出准确的探测周期。
在一种可能的设计中,所述客户端与所述服务端之间包括多条连接,所述生效的连接包括指定连接、所有连接、当前连接中的至少一项;其中,所述当前连接是指所述客户端与所述服务端传输所述配置信息的连接。也就是说,服务端向客户端配置的探测周期可以适用于客户端与服务端之间的所有连接,或指定连接,或当前连接。换言之,对于客户端与服务端之间包括多条连接的场景,部分连接(如,指定连接或当前连接)可以使用本申请提供的连接探测方法进行探测,部分连接可以使用现有方案(即以客户端本地周期进行探测不考虑服务端业务量)进行探测,本申请实施例不作限定。
在一种可能的设计中,所述连接包括第一连接和第二连接;所述客户端通过所述第一连接接收所述服务端配置的所述第一周期;所述客户端确定所述第二连接发生异常时,以第二周期通过所述第二连接向所述服务端发送探测信号,所述探测信号用于探测所述第二连接是否恢复,所述第二周期等于所述第一周期,或所述第二周期是根据所述第一周期和退避参数计算出的。
示例性的,假设客户端与服务端之间包括第一TCP连接和第二TCP连接。服务端通过第一TCP连接向客户端配置探测周期(即第一周期)。客户端可以将第一周期应用到第二TCP连接。比如,当第二TCP连接异常时,可以根据第一周期在第二TCP连接上发送探测信息。这样,客户端与服务端具有多条连接时,服务端通过某一条连接(比如状态最好的一条或预先配置好的一条)指示探测周期即可,不需要通过每条连接指示一次,效率较高。其中,状态最好的一条连接可以是当前业务量最少的一条连接。
在一种可能的设计中,所述连接包括第一连接和第二连接,所述第一连接对应的第三周期与所述服务端在所述第一连接上的业务量适配,和/或与所述第一连接的当前连接状态相关;所述第二连接对应的第四周期与所述服务端在所述第二连接上的业务量适配,和/或与所述第二连接的当前连接状态相关。
示例性的,假设客户端与服务端之间包括第一TCP连接和第二TCP连接。第一TCP连接对应的探测周期与第一TCP连接上的业务量适配,和/或与第一TCP连接的当前连接状态相关。第二TCP连接对应的探测周期与第二TCP连接上的业务量适配,和/或与第二TCP连接的当前连接状态相关。也就是说,客户端与服务端具有多条连接时,每条连接对应的探测周期可以不同,具体的,每条连接的探测周期与该条连接上的业务量适配,和/或与该条连接的当前连接状态相关。这样的话,针对每条连接具有适配于该连接的探测信息,粒度较细。
第二方面,还提供一种连接探测方法。该方法可应用于服务端。服务端确定当前状态,所述当前状态包括所述服务端当前业务量,和/或,所述服务器与客户端之间的连接的当前连接状态;根据所述当前状态,确定第一周期,所述第一周期用于指示所述客户端向所述服务端发送探测信息的周期。
在一种可能的设计中,根据所述当前状态,确定第一周期,包括如下至少一项:
所述第一周期与所述服务端当前设备接入量相关;或者,
所述第一周期与所述服务端当前待处理报文数量相关;或者,
所述第一周期与所述服务端本地运行负载相关。
在一种可能的设计中,根据所述当前状态,确定第一周期,包括:
所述连接的当前连接状态包括:所述连接发生过异常的次数、频率、时长、以及响应时延、传输速率、丢包率中的至少一项;
所述第一周期与所述当前连接状态呈正比或反比。
在一种可能的设计中,所述方法还包括:
向所述客户端发送配置信息,所述配置信息中包括如下至少一项:
最小探测周期,用于指示所述客户端发送探测信息的最小周期;
第一指示信息,用于指示所述客户端是否启动退避;
退避参数,用于指示退避规则;
最大探测周期,用于指示所述客户端发送探测信息的最大周期;其中,所述最小周期和/或所述最大周期是所述服务端根据当前业务量确定的;
生效的连接,用于指示对所述配置信息生效的连接;
第二指示信息,用于指示所述客户端是否使用其它协议发起探测,所述其它协议与所述连接对应的协议不同;
第一协议,用于指示所述客户端基于所述第一协议发送探测信息,所述第一协议与所述连接对应的协议不同;
第一协议相关参数,用于指示所述第一协议所支持的探测周期。
在一种可能的设计中,所述网络设备与所述服务端之间包括多条连接,所述生效的连接包括指定连接、所有连接、当前连接中的至少一项;其中,所述当前连接是指所述客户端与所述服务端传输所述配置信息的连接。
在一种可能的设计中,所述连接包括第一连接和第二连接,所述第一连接对应的第三周期与所述服务端在所述第一连接上的业务量适配,和/或与所述第一连接的当前连接状态相关;
所述第二连接对应的第四周期与所述服务端在所述第二连接上的业务量适配,和/或与所述第二连接的当前连接状态相关。
第三方面,还提供一种客户端,包括存储器和一个或多个处理器;其中,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述计算机指令被所述处理器执行时,使得所述客户端执行如上述第一方面提供的方法。
第四方面,还提供一种客户端,包括执行上述第一方面或者第一方面的任意一种可能的设计的方法的模块/单元;这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。比如,包括处理单元,用于确定所述客户端与服务端之间的连接异常;收发单元,用于以第一周期向所述服务端发送探测信息,所述探测信息用于探测所述连接是否恢复;其中,所述第一周期与所述服务端当前业务量适配,和/或,与所述连接的当前连接状态相关。
第五方面,还提供一种服务器,包括存储器和一个或多个处理器;其中,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述计算机指令被所述处理器执行时,使得所述服务器执行如上述第二方面提供的方法。
第六方面,还提供一种服务器,包括:执行上述第二方面或者第二方面的任意一种可能的设计的方法的模块/单元;这些模块/单元可以通过硬件实现,也可以通过硬件执行相应的软件实现。比如,包括处理单元,用于确定所述服务器当前状态,所述当前状态包括所述服务端当前业务量,和/或,所述服务器与客户端之间的连接的当前连接状态;所述处理单元还用于根据所述当前状态,确定第一周期,所述第一周期用于指示所述客户端向所述服务端发送探测信息的周期。可选的,还可以包括收发单元,用于向客户端发送第一周期的指示信息。
第七方面,还提供一种通信系统,包括:
客户端,用于执行如上述第一方面提供的方法;
服务器,用于执行如上述第二方面提供的方法。
第八方面,还提供一种计算机可读存储介质,所述计算机可读存储介质包括程序指令,当所述程序指令在计算机上运行时,使得所述计算机执行如上述第一方面提供的方法。
第九方面,还提供一种计算机可读存储介质,所述计算机可读存储介质包括程序指令,当所述程序指令在计算机上运行时,使得所述计算机执行如上述第二方面提供的方法。
第十方面,还提供一种计算机程序产品,包括计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如上述第一方面所述的方法。
第十一方面,还提供一种计算机程序产品,包括计算机程序,当所述计算机程序在计算机上运行时,使得所述计算机执行如上述第二方面所述的方法。
以上第二方面至第十一方面的有益效果,请参见第一方面的有益效果,不重复赘述。
附图说明
图1为本申请一实施例提供的通信系统的示意图;
图2为本申请一实施例提供的客户端的结构示意图;
图3为本申请一实施例提供的连接探测方法的一种流程示意图;
图4为本申请一实施例提供的客户端与服务端不同网络入口连接的示意图;
图5为本申请一实施例提供的客户端的显示界面的示意图;
图6为本申请一实施例提供的连接探测方法的另一种流程示意图;
图7为本申请一实施例提供的MPTCP连接场景的示意图;
图8为本申请一实施例提供的MPTCP连接场景下连接探测方法的流程示意图;
图9为本申请一实施例提供的MPQUIC连接场景的示意图;
图10为本申请一实施例提供的MPQUIC连接场景下连接探测方法的流程示意图;
图11为本申请一实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。此外,在本申请实施例中,“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
图1为本申请实施例提供的通信系统的示意图。所述通信系统中包括客户端与服务端,客户端与服务端之间通过网络连接;或者说,客户端与服务端均接入网络,通过所述网络实现客户端与服务端之间的通信。
客户端可以是终端设备,诸如手机(mobile phone)、平板电脑(Pad)、带收发功能的电脑、虚拟现实(virtual reality,VR)终端设备、增强现实(augmented reality,AR)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程医疗(remote medical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端、可穿戴设备、车载设备;和网络设备,例如三层交换机、路由器、宽带网关、防火墙、负载均衡器等网络设备。
服务端,也可以称为服务器,服务端可以是为客户端服务,比如服务端可以向客户端提供资源,和/或保存客户端数据等,所述资源可以是文字、图像、视频中的至少一种。服务端可以是一个服务器,也可以是服务器集群,本申请实施例不作限定。服务端可以是应用服务器,即为客户端中不同应用提供服务的应用服务器。应理解,客户端中包括各种类型的应用(application),诸如,华为畅连、等即时通信应用;微博、论坛等社交网络;抖音、小红书等短视频应用;爱奇艺、腾讯等视频播放类应用,等等。当客户端使用不同应用时,客户端与各个应用所对应的应用服务器建立连接进行通信。比如,假设客户端运行华为畅连应用,那么服务端是华为畅连服务器。
示例性的,如图1所示,所述网络中包括无线接入网(Radio Access Network,RAN)和核心网(Core Network,CN)。客户端通过接入网接入到核心网,核心网与服务端连接,所以客户端与服务端建立连接。
其中,客户端与服务端之间的连接可以是传输控制协议(Transmission ControlProtocol,TCP)连接,或,快速UDP互联网连接(Quick UDP Internet Connection,QUIC)。下面分别对这两种连接进行简单的介绍。
一、TCP连接
传输层协议包括TCP和用户数据报协议(User Datagram Protocol,UDP),TCP连接作为其中一种,提供了网络可靠性。其中,客户端使用TCP连接访问服务端的过程包括:客户端向服务端发送TCP请求,服务器响应该TCP请求向客户端反馈TCP响应。最初的TCP协议中,TCP连接是一个一个处理TCP请求的,如果前一个请求或者响应没有处理完成,则不能进行下一个。这种方式容易造成队头阻塞(Head-of-line blocking),即,如果某个请求或响应迟迟无法完成,那么后续的请求或响应则堵塞无法进行。
为了解决这个问题,TCP协议支持在一个TCP连接上连续发送TCP请求,不用等到收取响应后再处理下一个请求,这种技术被称为TCP连接上的“流水线”(pipelining)。这种方式虽然它可以在一个TCP连接上连续请求,但是所有的响应必须按照请求发送的顺序来按序处理,因此某个响应处理较慢时,会阻塞其后的所有响应。
随着网络需求的增涨,需要传输的数据量增加,在单个TCP连接无法满足网络需求的情况下,通过对TCP协议扩展得到了多路径传输控制协议(multi path transmissioncontrol protocol,MPTCP),利用多条TCP连接的并行传输可以提高资源的利用率。例如,用户在观看视频时,客户端通过Wi-Fi网络和蜂窝网络分别对应的TCP连接同时传输数据,这样,下载速率也更高、卡顿变少、播放更流畅。
在本申请实施例中,客户端与服务端之间的连接可以是单TCP连接,也可以是MPTCP连接,对此不作限定。
二、QUIC连接
QUIC是基于UDP协议的一种传输层协议。与TCP协议相比,UDP更为轻量,但是错误校验也要少得多,这意味着UDP往往效率更高,但是可靠性比不上TCP。所以,通常游戏、流媒体等应用采用UDP协议,而网页、邮件、远程登录等应用采用TCP协议。
QUIC支持内容优先级设置。因为如果无差别地传输所有请求或响应,在带宽有限的情况下,一些关键或重要请求可能会被阻塞,因此,QUIC支持对网络内容的优先级进行设置,比如,QUIC可以提供对多个流的管理和资源分配功能,为不同流的优先级的划分提供了可能,其中不同流对应不同网络内容。
为了解决网络需求日益增大的问题,在QUIC的基础上提出的把传输时所使用的一条物理链路扩展到多条物理链路的协议,即多路径快速UDP互联网连接(multi path QuickUDP Internet Connection,MPQUIC),利用多条QUIC连接的并行传输可以提高资源的利用率。
目前,客户端与服务器之间的连接(TCP连接或QUIC连接)可能会存在异常,比如,连接超时。这种情况下,客户端会周期性的向服务端探测连接是否恢复,具体的,客户端以本地配置的周期,周期性的向服务端发送探测信息。但是,客户端周期性的发送探测信息时,并未考虑服务端当前业务量大小,所以,很有可能客户端以本地周期不断发送探测信息会导致服务端处理压力增大,导致服务端崩溃。比如,服务端当前因为后台服务进程异常导致大量待处理报文阻塞,这时如果客户端频繁发送探测信号,可能进一步加重服务端处理负担导致服务端崩溃。
鉴于此,本申请实施例提供一种连接探测方法,该方法可以适用于图1所示的通信系统。其中,客户端确定与服务端之间的连接异常时,客户端以第一周期向服务端发送探测信号。其中,第一周期是与服务端当前业务量适配的,和/或,第一周期是与所述连接的当前连接状态相关。比如,服务端当前业务量较大时,第一周期较长,避免以短周期频繁的向服务端发送探测信息加重服务端处理压力;或者,服务端当前业务量较小时,第一周期较短,以使尽快恢复连接。
下面介绍本申请实施例相关的设备。
图2示出了电子设备100的结构示意图。电子设备100可以是客户端或服务器。以客户端是手机为例,如图2所示,手机可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是手机的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为手机充电,也可以用于手机与外围设备之间传输数据。充电管理模块140用于从充电器接收充电输入。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。
手机的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。天线1和天线2用于发射和接收电磁波信号。手机中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在手机上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
无线通信模块160可以提供应用在手机上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得手机可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code division multipleaccess,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(longterm evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigationsatellite system,GLONASS),北斗卫星导航系统(beidou navigation satellitesystem,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
显示屏194用于显示应用的显示界面等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode的,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dotlight emitting diodes,QLED)等。在一些实施例中,手机可以包括1个或N个显示屏194,N为大于1的正整数。
手机可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,手机可以包括1个或N个摄像头193,N为大于1的正整数。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行手机的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,以及至少一个应用程序(例如爱奇艺应用,微信应用等)的软件代码等。存储数据区可存储手机使用过程中所产生的数据(例如图像、视频等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展手机的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将图片,视频等文件保存在外部存储卡中。
手机可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。手机可以接收按键输入,产生与手机的用户设置以及功能控制有关的键信号输入。马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和手机的接触和分离。
可以理解的是,图2所示的部件并不构成对手机的具体限定。本发明实施例中的手机可以包括比图2中更多或更少的部件。比如,手机中还可以包括传感器模块(图中未示出),所述传感器模块包括压力传感器、陀螺仪传感器、温度传感器等等。此外,图2中的部件之间的组合/连接关系也是可以调整修改的。
下面以客户端是手机为例,结合附图介绍本申请实施例提供的技术方案。
请参见图3,为本申请实施例提供的连接探测方法的流程示意图。该方法适用于图1所示的通信系统。如图3所示,该方法的流程包括:
S1,客户端与服务端建立连接。所述连接可以是TCP连接或QUIC连接。
示例性的,S1可以通过三次握手过程实现。一种可能的实现方式包括:第一次握手:客户端向服务端发送第一握手请求,第一握手请求中携带标志位SYN=1,初始序号seq=x。其中,标志位SYN设置为1,用于指示客户端进入SYN-sent状态。序号seq=x是客户端随机生成的,在后续握手过程中使用。第二次握手:服务端点接收到第一握手请求之后,从第一握手请求中的标志位SYN=1得知客户端请求建立连接。若服务端同意建立连接,则向客户端发送确认(acknowledge,ACK)信息,在ACK消息中标志位SYN=1,确认号ack=x+1,随机产生一个序号seq=y。其中,标志位SYN=1用于指示服务端进入SYN-received状态,确认号是服务端根据第一握手请求中的seq=x生成的,服务端随机产生一个值seq=y,在后续握手过程中使用。第三次握手,客户端接收到服务端发送的ACK信息之后,向服务端发送确认信息,所述确认信息中包括确认号ack=y+1,序号seq=x+1,客户端进入established(已建立连接)状态。当服务端点接收到确认信息后,也进入established(已建立连接)状态。三次握手完成后,客户端与服务端之间建立连接。需要说明的是,前面以三次握手为例进行介绍,还可以是四次、更多或更少次握手过程,本申请实施例对此不作限定。
S2,根据服务端当前业务量,和/或,所述连接的当前连接状态确定探测周期。
具体来说,包括两种方式:第一种方式,根据服务端当前业务量确定探测周期。第二种方式,根据所述连接的当前连接状态确定探测周期。下面分别介绍这两种实现方式。
第一种方式,根据服务端当前业务量确定探测周期。其中,所述服务端当前业务量包括服务端当前设备接入量、当前待处理报文数量、以及服务端本地运行负载中的至少一项。
方式一,根据服务端当前设备接入量,确定探测周期。
其中,连接到服务端的设备包括移动终端、网关设备、负载均衡设备(LoadBalance,LB)、网络地址转换(Network Address Translation,NAT)设备等中的至少一种设备。当连接到服务端的设备数量较高时,探测周期较长;当连接到服务端的设备数量较少时,探测周期较短。示例性的,服务端中可以存储服务端的设备接入量与探测周期之间的映射关系,当统计出服务端的设备接入量时,基于该映射关系,确定探测周期。
方式二,根据服务端当前待处理报文数量,确定探测周期。
其中,待处理报文包括握手报文、探测报文、网络资源请求报文等中的至少一种。其中,握手报文可以是第一次或第二次握手请求(请参见前文介绍),网络资源请求是指用于请求网络资源的请求,所述网络资源比如文字、图片、视频等等。当待处理报文数量较多时,确定较长的探测周期,以缓解阻塞情况。当待处理报文数量较少时,确定较短的探测周期,以及时恢复与客户端之间的连接。
方式三,根据服务端本地运行负载,确定探测周期。
其中,服务端本地运行负载可以包括服务端本地内存占用率、处理器运行速率、运行的进程量、进程运行速率、运行的线程量、线程运行速率等中的至少一项;其中,所述处理器可以是中央处理器(Central Processing Unit,CPU)或其他处理器。当本地运行负载较高时,确定的探测周期较长,当本地运行负载较低时,确定的探测周期较短。其中,服务端本地运行负载较高包括:服务端本地内存占用率大于阈值1、处理器运行速率小于阈值2、运行的进程量大于阈值3、进程运行速率小于阈值4、运行的线程量大于阈值5、线程运行速率小于阈值6等中的至少一项;其中,阈值1至阈值6的具体取值,本申请实施例不作限定。
进一步的,第一种方式还可以细化为,根据服务端的网络入口的当前业务量,确定所述网络入口对应的探测周期,所述网络入口对应的探测周期,适用于接入到所述网络入口的客户端。其中,网络入口的当前业务量包括网络入口当前设备接入量、网络入口当前待处理报文数量、以及网络入口所消耗的本地运行负载中的至少一项。示例性的,请参见图4,服务端包括网络入口A和网络入口B,客户端1和客户端2通过网络入口A接入服务端,客户端3通过网络入口B接入服务端。因此,服务端可以统计各个网络入口的当前业务量,根据网络入口A的当前业务量确定出探测周期1,根据网络入口B的当前业务量确定出探测周期2,那么接入到网络入口A的客户端(即客户端1和客户端2)以探测周期1向服务端发送探测信号,接入到网络入口B的客户端(即客户端3)以探测周期2向服务端发送探测信号。举例来说,当网络入口A出现异常(比如堵塞、服务升级等等)导致该网络入口A对应的连接异常时,客户端1和客户端2可以以探测周期1向网络入口A发送探测信号,该探测周期1是与网络入口A的当前业务量适配的,避免网络入口A的客户端(客户端1和/或客户端2)频繁地向网络入口A发送探测信号,进一步加剧网络入口A的堵塞情况。
第二种方式,根据所述连接的当前连接状态确定探测周期。其中,连接状态包括:连接发生过异常的次数、频率、时长、以及响应时延、传输速率、丢包率中的至少一项。示例性的,探测周期与所述连接的当前连接状态相关。比如,探测周期与所述连接的当前连接状态呈正比或反比。
作为一种示例,连接发生过异常的次数、频率或时长越小,探测周期越短;也就是说,连接刚发生异常或者很少发生异常时,以较短的周期探测,保证尽快恢复连接,尽可能不影响用户体验。或者,连接发生过异常的次数、频率或时长越大,探测周期越短;也就是说,对于经常发生异常或者异常很久的连接,以较短的周期探测,以尽快恢复连接。
作为另一种示例,连接的响应时延或丢包率越高,探测周期越短;一般,响应时延或丢包率越高网络卡顿越明显,以较短的周期探测,可以尽快恢复连接。或者,连接的响应时延或丢包率越低,探测周期越短;响应时延或丢包率越低网络卡顿越不明显,以较短的周期探测,可以保证用户体验不受影响。
在一些实施例中,客户端与服务端之间的连接包括多条,比如第一连接和第二连接。这种情况下,S2可以细化为,根据服务端在第一连接上的当前业务量,和/或,所述第一连接的当前连接状态确定第一探测周期,根据服务端在第二连接上的当前业务量,和/或,所述第二连接的当前连接状态确定第二探测周期,第一探测周期和第二探测周期可以相同或不同。也就是说,在客户端与服务端之间存在多条连接的情况下,可以确定每条连接对应的探测周期,粒度更细。
可选的,S2中确定的探测周期可以是一个值,也可以是一个周期范围,本申请实施例不作限定。
上述第一种方式和第二种方式可以单独使用,也可以结合使用,本申请实施例不作限定。比如,第一种方式和第二种方式结合时,先使用第一种方式确定一个周期范围,然后使用第二种方式在该范围内确定一个具体周期;或者,先使用第二种方式确定一个周期范围,然后使用第一种方式在该范围内确定一个具体周期。
可选的,S2之后,还可以包括步骤:确定是否启动探测退避功能。探测退避功能是指当客户端以某个周期发送探测信号之后如果未收到探测反馈则退避到一个更大的周期发送探测信号,以避免大量客户端以同样的周期集中发送探测信号导致服务端压力过大而崩溃。一种方式为,客户端本地已配置退避模式或非退避模式,比如客户端出厂之后默认配置了退避模式或非退避模式。另一种实现方式为,用户可以设置退避模式或非退避模式。比如,用户在客户端上进行设置。又一种实现方式为,服务端向客户端指示是否退避。比如,服务端向客户端发送用于指示是否启动退避模式的第一指示信息。示例性的,第一指示信息为1时,用于指示需要启动退避模式,第一指示信息为0时,用于指示不需要启动退避模式。可以理解的是,服务端可以主动向客户端发送第一指示信息,或者,服务端接收到客户端发送的查询信息之后向客户端发送第一指示信息,所述查询信息用于查询是否启动退避模式。
可选的,在确定需要退避后,还可以包括步骤:确定退避参数。退避参数包括退避规则,比如斐波那契数列退避规则、或者其他退避规则;或者,退避参数包括一系列的退避值,比如a,b,c,d,e五个参数。可以理解的是,退避参数可以是客户端本地配置好的,或者,服务端向客户端指示的,或者,用户设置的,比如用户在客户端上设置退避参数,具体方式本申请实施例不作限定。下面介绍两个退避示例。
示例1,退避参数包括斐波那契数列退避规则。其中,斐波那契数列退避规则是指每个数值是前两个数值之和。比如,斐波那契数列为:1、2、3、5、8、13…。其中,每个数值是前两个数值的和。因此,退避过程包括:以最小探测周期开始,按照斐波那契数列规则增大探测周期。比如最小探测周期是5s,那么按照斐波那契数列规则,探测周期包括:5s、6s、11s、17s、28s。那么客户端先以探测周期5s发送探测信号,如果未接收到反馈,以6s为探测周期发送探测信号,如果仍然未接收到反馈,以11s为探测周期发送探测周期,以此类推。其中,最小探测周期可以是S2中确定的探测周期,或者是S2中确定的周期范围中的最小值。
示例2,退避参数包括一系列的退避值,比如a,b,c,d,e五个参数(单位可以是秒或毫秒等)。那么,客户端以最小探测周期开始,按照a,b,c,d,e五个参数逐渐增大探测周期。比如,最小探测周期是5s,那么探测周期包括:5s、5+a s、5+b s、5+c s、5+d s、5+e s。因此客户端先以探测周期5s发送探测信号,如果未收到反馈,以5+a s为探测周期发送探测信号,以此类推。其中,最小探测周期可以是S2中确定的探测周期,或者是S2中确定的周期范围中的最小值。
在一些实施例中,客户端基于最小探测周期和退避参数,不断增大探测周期时,当增大后的探测周期超过最大探测周期时,停止退避。举例来说,根据最小探测周期和斐波那契数列规则确定出探测周期序列包括:5s、6s、11s、17s、28s,如果最大探测周期是30s,那么达到28s之后,后续使用30s的探测周期,不会继续增大探测周期,因为28s的下一个周期是45s,超过了30s。达到最大探测周期之后,客户端可以一直使用最大探测周期进行探测,比如达到28s之后,如果仍然未收到服务端的探测响应,则继续使用30s这一周期进行探测。上面的退避过程中提到的最小探测周期和最大探测周期。在一种实施例中,最小探测周期可以是S2中确定的探测周期,或者是S2中确定的周期范围中的最小值。如果S2确定的是周期范围,最大探测周期可以是S2中确定的周期范围中的最大值,或者,是用户指定或系统默认或服务端指示的、大于最小探测周期的一个周期。
可选的,S2之后,还可以包括步骤:确定探测周期的生效连接;或者说,确定探测周期应用到的连接。客户端与服务端之间可以包括一条或多条连接,如果有多条连接,那么上面S2中确定的探测周期应用到多条连接中的至少一条。一种方式为,探测周期的生效连接是所有连接。另一种方式为,探测周期的生效连接是当前连接。所述当前连接是指客户端与服务端之间当前处于激活(active)态的连接,或者,处于未激活(inactive)态的连接,或者,客户端当前向服务端发送数据使用的连接。又一种方式为,探测周期的生效连接是指定连接,所述指定连接可以是多条连接中的一条或多条。其中,指定连接可以是客户端本地默认指定好的,或者,用户指定的,或者,服务端向客户端指定的。
可以理解的是,在确定探测周期的生效连接之后,还可以进一步确定启动退避模式的连接。比如,生效连接有M条,其中的至少一条可以启动退避模式,然后以探测周期为最小探测周期进行退避。其中,启动退避模式的连接可以是所有生效连接,或者指定的生效连接,本申请实施例不作限定。
可选的,S2之后,还可以包括步骤:确定是否配置了外置检测协议用于探测连接,其中,所述外置检测协议是指与当前协议不同的协议。比如,当前客户端与服务端之间的连接是QUIC连接,那么外置检测协议是与QUIC协议不同的其它协议,比如互联网控制消息协议(Internet Control Message Protocal,ICMP)、第六版互联网控制信息协议(InternetControl Message Protocol Version 6,ICMPv6)协议、双向转发检测(BidirectionalForwarding Detection,BFD)协议等等。一种可实现方式为,客户端本地配置了外置检测协议,比如,客户端出厂之后默认配置了外置检测协议。另一种可实现方式为,用户可以配置外置检测协议,比如,用户可以在客户端侧配置外置检测协议。又一种实现方式为,服务端配置外置检测协议并通知客户端,比如服务端发送用于指示是否配置外置检测协议的第二指示信息。示例性的,第二指示信息为1时,用于指示配置外置检测协议,第二指示信息为0时,用于指示未配置外置检测协议。可以理解的是,服务端发送的第二指示信息是1时,服务端还可以向客户端指示外置检测协议的具体协议类型,比如是ICMP/ICMPv6协议、还是BFD协议。如果配置了外置检测协议,那么客户端可以使用外置检测协议探测连接。具体的,客户端创建与服务端之间的外置检测协议会话,以所述外置检测协议会话所支持的探测周期发送探测信号。以外置检测协议是BFD协议为例,客户端创建与服务端之间的BFD协议会话,以BFD协议所支持的探测周期发送探测信号。其中,外置检测协议所支持的探测周期可以是客户端默认配置好的,或者,用户指定的,或者,服务端指示的,或者,协议中规定的,本申请实施例不作限定。这种方式中,客户端可以使用与当前协议不同的其它协议进行连接探测,比较灵活。
S3,客户端确定与服务端之间的连接异常。
在本申请实施例中,客户端与服务端之间的连接异常包括多种场景。
场景一、确定客户端与服务端之间的连接异常,包括:当客户端与服务端之间的连接满足:服务端响应时延大于第一阈值、数据传输速率小于第二阈值、丢包率大于第三阈值中的至少一项时,确定连接异常。
服务端响应时延是指客户端发出网络资源请求的第一时刻到接收到服务端反馈的网络资源的第二时刻之间的时长。其中,网络资源请求用于请求网络资源,所述网络资源可以是文字、图片、视频中的至少一种。本申请实施例中,客户端发出网络资源请求之后,可以启动计时器,当计时器达到第一阈值时,确定客户端与服务端之间的连接异常。示例性的,请参见图5中的(a),用户使用手机(客户端)上网搜索内容,但是一直未搜索到结果(比如用于指示搜索进度的进度条501变化缓慢),影响用户体验。
数据传输速率影响服务端响应时延,比如,数据传输速率太低,数据需要较长时间才能发送至对端。因此,本申请实施例中,当客户端与服务端之间的数据传输速率小于第二阈值时,确定客户端与服务端之间的连接异常。示例性的,请参见图5中的(b),用户使用手机(客户端)上的视频播放类应用观看电影,比如,用户点击第7集,区域502中显示正在准备、以及传输速率(如100kb/s)等信息,视频播放比较卡顿。
丢包率是指客户端与服务端之间的连接上发送数据的正确率,如果丢包率较高,会影响用户请求的网络资源的准确性。因此,本申请实施例中,如果客户端与服务端之间的连接的丢包率大于第三阈值,则确定所述连接异常。
上面第一阈值、第二阈值和第三阈值的具体取值,可以是客户端设置的,服务端设置的,或协议中规定的,或者,用户设置的,等等,本申请实施例对此不作限定。
场景二、确定客户端与服务端之间的连接异常,包括:客户端的网络接入方式发生更改。其中,所述客户端的网络接入方式发生更改,包括如下至少一项:
(1)由无线局域网切换为移动通信网络。
无线局域网可以是WIFI,比如,家里或公司的WIFI。示例性的,用户携带客户端从家里出门之后,客户端的网络接入方式由WIFI网络切换到移动通信网络(4G网络、3G网络或5G网络),确定客户端与服务端之间的连接异常。
(2)由移动通信网络的第一通信制式切换到第二通信制式。
移动通信网络的通信制式(或称为网络制式)包括但不限定于:长期演进(longterm evolution,LTE)网络、全球移动通讯系统(global system of mobilecommunication,GSM)网络、码分多址(code division multiple access,CDMA)网络、宽带码分多址(wideband code division multiple access,WCDMA)网络、通用移动通信系统(universal mobile telecommunications system,UMTS)等。以LTE为例,通信制式还可以进一步包括:第二代移动通信技术(2nd-Generation wireless telephone technology,2G)网络、第三代移动通信技术(3rd-Generation wireless telephone technology,3G)网络、第四代移动通信技术(4th-Generation wireless telephone technology,4G)网络以及第五代移动通信技术(5th-Generation wireless telephone technology,5G)网络,或者,未来第N代移动通信技术,N大于5。
示例性的,客户端从4G切换到3G,或者,从5G切换到4G时,确定客户端与服务端之间的连接异常。
(3)由第一局域网切换到第二局域网。
示例性的,用户从房间1进入房间2,那么从房间1的WIFI切换为房间2的WIFI,确定客户端与服务端之间的连接异常。
需要说明的是,当客户端的网络接入方式发生更改而导致客户端与服务端之间的连接异常的现象被称为连接迁移(Connection Migration)。简单来说,客户端与服务端之间的连接具有客户端地址和服务端地址,客户端地址即客户端上使用该连接传输数据的地址,服务端地址即服务端上使用该连接传输数据的地址。当客户端的网络接入方式发生更改时,所述连接的客户端地址会发生变化,所以需要将该连接的原来的客户端地址更改为新的客户端地址,即连接从原客户端地址迁移到新客户端地址。以网络接入方式由WIFI更改为4G为例,客户端地址发生变化,对于客户端与服务端之间的连接来说,该连接原来的客户端地址无法继续使用,需要迁移到新的客户端地址上。其中,客户端地址包括但不限定于IP地址和端口多元组,所述多元组可以是二元组、四元组或更多元组等等。
需要说明的是,上述S2和S3之间的执行顺序本申请不作限定。如果先执行S2后执行S3,即客户端与服务端之间的连接发生异常之前,就开始实时的确定探测周期,比如以一定的周期、周期性的执行S2,当在某个时刻确定连接异常时,使用在该时刻之前最新确定出的探测周期进行探测。如果先执行S3后执行S2,即客户端与服务端之间的连接发生异常之后,再确定探测周期。一种可实现方式为,客户端实时的感知服务端的业务量,当连接异常时,客户端根据发生异常之前所感知到的服务端的业务量确定探测周期或根据当前连接状态确定探测周期。
S4,客户端以第一周期向服务端发送探测信号。
具体地,S4至少包括步骤S41和S42。其中,S41,客户端在第一时刻向服务端发送探测信号1,如果在第二时刻之前未收到探测反馈,在第二时刻向服务端发送探测信号2,第一时刻与第二时刻之间的时长为第一周期。其中,第一周期可以是S2中确定出的探测周期,或者是S2中确定出的周期范围内的任一周期(比如周期范围内的最小值)。应理解,如果在第三时刻之前仍然未收到服务端的探测反馈,在第三时刻向服务端发送探测信号3,第三时刻与第二时刻之间的时长为第二周期,第二周期与第一周期可以相同或不同,比如,如果启动退避规则,第二周期可以是根据第一周期和退避参数计算出的周期。第二周期与第一周期可以相同或不同。
可选的,探测信号用于探测所述连接是否恢复,或,所述连接的服务端地址是否可达。应理解,探测信号中可以携带所述连接的连接标识,所述连接标识可以是连接ID、子流标识等。比如,如果客户端与服务端之间的连接是TCP连接,那么所述连接标识可以是子流标识,所述子流标识可以是子流的地址标识,所述地址标识包括IP和端口二元组、双端IP和双端口四元组等或更多元组。如果客户端与服务端之间的连接是QUIC连接,所述连接标识可以是连接ID(connection ID)。
示例性的,探测信号可以是PATH_CHALLENGE帧、NEW_CONNECTION_ID帧、PADDING帧、Sync帧中的至少一种。
S5,服务端向客户段发送探测反馈。
可选的,所述探测反馈用于指示所述连接恢复;或者,所述连接的服务端地址可达。
示例性的,探测反馈可以是PATH_RESPONSE帧、ACK帧。
因此,上面的实施例中,在客户端与服务端之间的连接异常时,客户端以第一周期向服务端发送探测信号,第一周期与服务端当前的业务量适配,避免频繁发送探测信号导致服务端业务量过大而崩溃。
需要说明的是,图3中S2可以由服务端执行也可以由客户端执行。如果是客户端执行,可以包括客户端感知服务端当前业务量(可以实时的感知),然后根据服务端当前业务量和/或所述连接的当前连接状态确定探测周期。其中,客户端感知服务端当前业务量的方式有多种,比如,客户端实时的向服务端发送用于请求查询服务端当前业务量的查询请求,或者,客户端根据服务端的响应时延、传输速率、丢包率中的至少一项确定服务端当前业务量。示例性的,服务端的响应时延越长、传输速率越低、或丢包率越高、代表服务端的业务量越大。如果由服务端执行,就是服务端根据服务端当前业务量和/或所述连接的当前连接状态确定探测周期,然后下发给客户端,具体内容将在下文图6中介绍。
请参见图6,为本申请实施例提供的连接探测方法的另一种流程示意图。所述流程包括S1至S5。其中,S1、S3-S5的实现原理与图3中的S1、S3-S5的实现原理相同,所以此处不重复赘述。下面重点介绍S2。S2包括S21至S23。
S21,服务端根据当前业务量和/或连接的当前连接状态确定探测周期。
其中,服务端确定探测周期的方式与前面图3中S2中确定探测周期的方式的原理相同,具体地,包括第一种方式和第二种方式,第一种方式是根据服务端当前业务量确定探测周期,第二种方式是根据服务端与客户端当前连接状态确定探测周期,为了节省篇幅,不在此重复赘述。
S22,服务端根据探测周期,生成配置信息。
其中,配置信息包括如下信息一至信息七中的至少一种:
信息一、最小探测周期。最小探测周期可以是步骤S21确定出的探测周期。
信息二、用于指示是否启动退避模式的第一指示信息。示例性的,第一指示信息为1时,用于指示需要启动退避模式,第一指示信息为0时,用于指示不需要启动退避模式。
信息三、退避参数。退避参数包括退避规则,比如斐波那契数列退避规则或者其他退避规则;或者,退避参数包括一系列的退避值,比如a,b,c,d,e五个参数。可以理解的是,当第一指示信息为0时,配置信息中可以不包括退避参数,当第一指示信息为1时,配置信息中包括退避参数。
信息四、最大探测周期。最大探测周期用于指示客户端能够达到的最大周期,比如,客户端基于最小探测周期和退避参数,不断增大探测周期时,当增大后的探测周期达到最大探测周期时,停止退避。
信号五、应用的连接。应用的连接是指配置信息的生效连接。如果客户端与服务端之间有多条连接,信息五可以用于指示的所述多条连接中的至少一个连接可以应用配置信息。方式A,配置信息的生效连接是所有连接。方式B,配置信息的生效连接是当前连接,当前连接是指客户端与服务端之间当前处于激活(active)态的连接,或者,处于未激活(inactive)态的连接,或者,客户端当前向服务端发送数据使用的连接,或者,服务端向客户端发送配置信息时,用于承载所述配置信息的连接。方式C,配置信息的生效连接是指定连接。指定连接可以是客户端与服务端之间的多条连接中的至少一条。
示例性的,信息五是指示信息1(比如00)时,确定配置信息的生效连接是所有连接,信息五是指示信息2(比如01)时,确定配置信息的生效连接是当前连接,信息五是指示信息3(比如11)时,确定配置信息的生效连接是指定连接。当配置信息的生效连接是当前连接或指定连接时,信息五中还可以携带指定连接的连接标识。其中,连接标识可以是能够唯一标识连接的任何标识,比如连接ID,还可以是连接的端口地址,所述端口地址包括端口四元组或五元组等等。
信息六、用于指示是否配置外置检测协议的第二指示信息。示例性的,第二指示信息为1时,用于指示配置外置检测协议,第二指示信息为0时,用于指示未配置外置检测协议。在一些实施例中,信息六中还可以指示配置的外置检测协议的具体协议类型,比如,是ICMP/ICMPv6协议、还是BFD协议。
信息七,外置检测协议参数。信息七是指与信息六的相关参数。比如信息六指示配置了外置检测协议是ICMP协议,那么信息七中可以包括ICMP协议对应的探测周期。如果信息六指示配置了外置检测协议是BFD协议,那么信息七中可以包括BFD协议对应的探测周期。
S23,服务端向客户端发送配置信息。
示例性的,服务端可以主动向客户端发送配置信息,或者被动向客户端发送配置信息,比如,服务端接收到客户端发送的配置信息查询请求时,向客户端反馈配置信息。
可选的,S23可以在握手阶段执行,或者,握手之后进行数据传输时执行。以S23在握手阶段执行为例,例如服务端接收到第一次握手请求之后向客户端发送配置信息,所述配置信息可以携带在响应于第一次握手请求的ACK信息中。其中,握手阶段的过程请参见前文介绍。以S23在握手完成之后执行为例,客户端在检测到客户端与服务端之间的连接发生异常(比如首次异常)时,以本地配置周期(不考虑客户端业务量)向服务端发送探测信号,服务端响应于该探测信号向客户端发送探测反馈后,还可以向客户端发送配置信息,之后,客户端与服务端之间的连接再次发生异常时,可以使用第二种方案以配置信息所指示的探测周期进行探测。
可选的,如果使用客户端本地配置周期(不考虑客户端业务量)进行探测的方案称为第一种探测方案,将客户端使用根据客户端业务量确定出的探测周期进行探测的方案作为第二种探测方式。两种探测方案可以选择其中任意一种使用,或者,客户端上设置切换按键,通过该切换按键实现第一种探测方案和第二种探测方案的切换。
本申请实施例提供的连接探测方法(比如图3或图6的流程图)可以适用于多连接场景。所述多连接是指客户端与服务端之间包括多条连接,比如MPTCP连接和MPQUIC连接等等。下文以MPTCP连接场景和MPQUIC连接场景为例进行介绍。
一、MPTCP连接场景。
请参见图7,为本申请实施例提供的MPTCP连接场景的示意图。如图7,客户端与服务端之间包括两条TCP连接,即第一TCP连接和第二TCP连接。其中,第一TCP连接可以是客户端使用Wi-Fi网络资源与服务端进行数据传输,第二TCP连接可以是客户端使用LTE网络资源与服务端进行数据传输。在一些实施例中,第一TCP连接和第二TCP连接是同一个TCP连接下的不同TCP子流(subflow),或者,第一TCP连接和第二TCP连接是不同的TCP连接。下文以第一TCP连接和第二TCP连接是同一个TCP连接下的不同TCP子流为例介绍的。具体的,服务端的MPTCP层将TCP流分解成两个TCP子流后通过两个TCP连接分别独立传输至服务端,服务端接收到两个TCP子流之后,将这两个TCP子流合并发送给应用层。这种多个TCP子流并行传输的方式,提升数据传输效率。
请参见图8,为本申请实施例提供的MPTCP连接场景下的连接探测方法的流程示意图。该方法可以适用于图7所示的MPTCP连接场景。如图8所示,所述方法流程包括:
S801,客户端与服务端建立第一TCP连接。
S802,客户端与服务端建立第二TCP连接。
以第一TCP连接和第二TCP连接是同一个TCP连接下的不同TCP子流为例,第一TCP连接对应的连接标识可以是TCP子流标识1,TCP连接对应的连接标识可以是TCP子流标识2。TCP子流标识可以包括子流地址(Address)或子流地址ID(Address ID),其中,子流地址可以是端口地址,所述端口地址可以是端口二元组、四元组或更多元组。
S803,服务端根据当前业务量,和/或,当前连接状态确定探测周期。
其中,服务端确定探测周期的原理与图3中S2的实现原理相同,不重复赘述。
S804,服务端根据探测周期,生成配置信息。
其中,服务端生成配置信息的过程与图6中S2的原理相同,在此不重复赘述。配置信息包括最小探测周期、用于指示是否启动退避模式的第一指示信息、退避参数、最大探测周期、应用的连接、用于指示是否配置外置检测协议的第二指示信息、外置检测协议参数等中的至少一项。关于配置信息的介绍请参见图6中的S2的描述,不重复赘述。
S805,服务端通过第一TCP连接向客户端发送所述配置信息。
服务端生成配置信息之后,可以选择一条TCP连接向客户端下发配置信息,所述选择的一条TCP连接可以是多条TCP连接中任意一条,或者,是当前正在进行数据传输的TCP连接,或者,当前处于激活态的TCP连接,等等。
示例性的,所述配置信息可以参见下表1:
其中,kind字段用于指示MPTCP。Length用于指示配置信息的长度,即占用的字节数。Subtype字段用于指示该信息是配置信息,比如指示该信息是PATH_DETECT_CTRL帧。E字段为0,用于指示需要向发送端反馈,E=1,表示发送端已收到。F字段用于指示应用到连接,例如0用于指示所有子流;1用于指示当前子流;2用于指示指定子流。r:保留位,默认为0。当F字段为2时,子流标识字段中包括子流标识,所述子流标识可以是子流的端口地址或子流地址ID,子流的端口地址可以是端口和IP二元组、双端IP和双端端口四元组等等。ProbePeriod字段,用于指示最小探测周期。可以理解的是,上表1所示的配置信息中还可以包括更多或更少的信息,比如还可以包括是否启动退避的指示信息、退避规则、是否配置外置检测协议,外置检测协议参数等等。
S806,客户端确定第二TCP连接异常。
S807,客户端根据所述配置信息所指示的第一周期在第二TCP连接上向服务端发送探测信号。
示例性的,S807至少可以包括S807A和S807B。S807A,客户端在第一时刻向服务端发送探测信号1,如果在第二时刻之前未收到探测反馈,在第二时刻向服务端发送探测信号2,第一时刻与第二时刻之间的时长为第一周期。其中,第一周期可以是配置信息中所指示的探测周期,或者,配置信息所指示的周期范围内的任一周期。应理解,如果在第三时刻之前仍然未收到服务端的探测反馈,在第三时刻向服务端发送探测信号3,第三时刻与第二时刻之间的时长为第二周期,第二周期与第一周期可以相同或不同,比如,配置信息中指示启动退避模式的话,那么第一周期还可以是最小探测周期,第二周期可以是根据退避规则和第一周期计算出的周期。
示例性的,探测信号可以是Sync帧或其他帧,本申请实施例不作限定。
S808,客户端在第二TCP连接上接收到探测响应,恢复第二TCP连接状态,可以在第二TCP连接上重新发送业务数据。
示例性的,探测反馈可以是PATH_DETECT_CTRL帧。
也就是说,客户端从第一TCP连接接收到服务端发送的配置信息,当第二TCP连接异常时,可以使用所述配置信息所指示的探测周期进行探测。
二、MPQUIC连接场景。
请参见9,为本申请实施例提供的MPQUIC连接场景的示意图。如图9所示,客户端与服务端之间包括多条连接(Connection),每一条连接对应一个连接标识,所述连接标识为连接ID(Connection ID,CID)。示例性的,Connection1对应CID1,Connection2对应CID2,等等。在MPQUIC场景中CID可以唯一的标识一个连接。
请参见图10,为本申请实施例提供的MPQUIC连接场景下的连接探测方法的流程示意图。该方法可以适用于图9所示的MPQUIC连接场景。如图10所示,所述流程包括:
S1001,客户端与服务端建立第一QUIC连接。
S1002,客户端与服务端建立第二QUIC连接。
S1003,服务端根据当前业务量,和/或,当前连接状态确定探测周期。
其中,服务端确定探测周期的原理与图3中S2的实现原理相同,不重复赘述。
S1004,服务端根据探测周期,生成配置信息。
其中,服务端生成配置信息的过程,与图6中S2的原理相同,在此不重复赘述。配置信息包括最小探测周期、用于指示是否启动退避模式的第一指示信息、退避参数、最大探测周期、应用的连接、用于指示是否配置外置检测协议的第二指示信息、外置检测协议参数等中的至少一项。关于配置信息的介绍请参见图6中的S2的描述,不重复赘述。
示例性的,配置信息可以是PATH_DETECT_CTRL帧。所述PATH_DETECT_CTRL帧的定义可以参考如下:
PATH_DETECT_CTRL Frame{
Type(i)=TBD1(例如,0x3f)
minPP(i),//用于描述最小探测周期;
retreating Mode(i),//用于指示退避模式,例如0为不退避,1为斐波那契数列规则退避,可以理解的是,当为0时,可以不包含maxPP(i)参数。
[maxPP(i)],//用于描述最大探测周期;
applicated connection flag(i),//用于指示应用到的连接,例如0为当前会话的所有连接;1为当前连接;2为指定连接;
[applicated connection id list(…)],//用于指示指定连接的连接ID。当applicated connection flag(i)为2时,applicated connection id list中包含连接ID,该连接ID用于指示指定连接。
S1005,服务端通过第一QUIC连接向客户端发送配置信息。
S1006,客户端确定第二QUIC连接异常。
S1007,客户端所述配置信息所指示的探测周期在第二QUIC连接上向服务端发送探测信号。
示例性的,所述探测信号可以是PATH_CHALLENGE帧。
S1008,客户端通过第二QUIC连接接收探测响应。
示例性的,所述探测响应可以是PATH_RESPONSE帧。
需要说明的是,本申请实施例提供的技术方案还可以适用于单连接。单连接可以理解为客户端与服务端之间包括一条连接,比如,可以是单TCP连接或单QUIC连接。一般,客户端与服务端之间存在单连接时,如果连接异常,那么会话断开,应用层会感知到连接异常,那么,应用层可以决定是否启动探测。当客户端与服务端之间存在多连接时,如果多连接中某个连接异常,整个会话不会断开,所以应用层不会感知到该连接异常,所以,协议层可以自行启动探测功能。因此,当本申请实施例提供的技术方案适用于单连接时,应用层可以使用本申请实施例提供的技术方案启动探测,当本申请实施例提供的技术方案适用于多连接时,协议层可以使用本申请实施例提供的技术方案启动探测。
基于相同的构思,图11所示为本申请提供的一种电子设备1100。该电子设备1100可以是前文中的客户端或者服务器。如图11所示,电子设备1100可以包括:一个或多个处理器1101;一个或多个存储器1102;通信接口1103,以及一个或多个计算机程序1104,上述各器件可以通过一个或多个通信总线1105连接。其中该一个或多个计算机程序1104被存储在上述存储器1102中并被配置为被该一个或多个处理器1101执行,该一个或多个计算机程序1104包括指令。
示例性的,当电子设备1100是前文中的客户端时,所述一个或多个计算机程序1104中包括的指令用于执行如上面相应实施例中客户端的相关步骤。通信接口1103用于实现客户端与其他设备(比如服务端)的通信,比如通信接口可以是收发器。
示例性的,当电子设备1100是前文中的服务端时,所述一个或多个计算机程序1104中包括的指令用于执行如上面相应实施例中服务端的相关步骤。通信接口1103用于实现服务端与其他设备(比如客户端)的通信,比如通信接口可以是收发器。
上述本申请提供的实施例中,从电子设备(例如服务端或客户端)作为执行主体的角度对本申请实施例提供的方法进行了介绍。为了实现上述本申请实施例提供的方法中的各功能,电子设备可以包括硬件结构和/或软件模块,以硬件结构、软件模块、或硬件结构加软件模块的形式来实现上述各功能。上述各功能中的某个功能以硬件结构、软件模块、还是硬件结构加软件模块的方式来执行,取决于技术方案的特定应用和设计约束条件。
以上实施例中所用,根据上下文,术语“当…时”或“当…后”可以被解释为意思是“如果…”或“在…后”或“响应于确定…”或“响应于检测到…”。类似地,根据上下文,短语“在确定…时”或“如果检测到(所陈述的条件或事件)”可以被解释为意思是“如果确定…”或“响应于确定…”或“在检测到(所陈述的条件或事件)时”或“响应于检测到(所陈述的条件或事件)”。另外,在上述实施例中,使用诸如第一、第二之类的关系术语来区份一个实体和另一个实体,而并不限制这些实体之间的任何实际的关系和顺序。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。在不冲突的情况下,以上各实施例的方案都可以组合使用。
需要指出的是,本专利申请文件的一部分包含受著作权保护的内容。除了对专利局的专利文件或记录的专利文档内容制作副本以外,著作权人保留著作权。
Claims (20)
1.一种连接探测方法,其特征在于,应用于客户端,包括:
确定所述客户端与服务端之间的连接异常;
以第一周期向所述服务端发送探测信息,所述探测信息用于探测所述连接是否恢复;
其中,所述第一周期与所述服务端当前业务量适配,和/或,与所述连接的当前连接状态相关。
2.根据权利要求1所述的方法,其特征在于,确定所述客户端与服务端之间的连接异常,包括:
当所述连接满足如下条件中的至少一种时,确定所述连接异常;
所述条件包括:所述服务端响应时延大于第一阈值、数据传输速率小于第二阈值、丢包率大于第三阈值。
3.根据权利要求1所述的方法,其特征在于,确定所述客户端与服务端之间的连接异常,包括:所述客户端的网络接入方式发生更改;
其中,所述客户端的网络接入方式发生更改,包括如下至少一种:
由无线局域网切换为移动通信网络;或者,
由移动通信网络的第一通信制式切换到第二通信制式;或者,
由第一局域网切换到第二局域网。
4.根据权利要求1-3任一所述的方法,其特征在于,所述第一周期与所述服务端当前业务量适配,包括如下至少一项:
所述第一周期与所述服务端当前设备接入量相关;或者,
所述第一周期与所述服务端当前待处理报文数量相关;或者,
所述第一周期与所述服务端本地运行负载相关。
5.根据权利要求1-4任一所述的方法,其特征在于,所述第一周期与所述连接的当前连接状态相关,包括:
所述连接的当前连接状态包括:所述连接发生过异常的次数、频率、时长、以及响应时延、传输速率、丢包率中的至少一项;
所述第一周期与所述当前连接状态呈正比或反比。
6.根据权利要求1-5任一所述的方法,其特征在于,所述方法还包括:
所述客户端接收所述服务端发送的配置信息,所述配置信息中包括如下至少一项:
最小探测周期,用于指示所述客户端发送探测信息的最小周期;
第一指示信息,用于指示所述客户端是否启动退避;
退避参数,用于指示退避规则;
最大探测周期,用于指示所述客户端发送探测信息的最大周期;其中,所述最小周期和/或所述最大周期是所述服务端根据当前业务量确定的;
生效的连接,用于指示对所述配置信息生效的连接;
第二指示信息,用于指示所述客户端是否使用其它协议发起探测,所述其它协议与所述连接对应的协议不同;
第一协议,用于指示所述客户端基于所述第一协议发送探测信息,所述第一协议与所述连接对应的协议不同;
第一协议相关参数,用于指示所述第一协议所支持的探测周期。
7.根据权利要求6所述的方法,其特征在于,所述客户端与所述服务端之间包括多条连接,所述生效的连接包括指定连接、所有连接、当前连接中的至少一项;其中,所述当前连接是指所述客户端与所述服务端传输所述配置信息的连接。
8.根据权利要求1-7任一所述的方法,其特征在于,所述连接包括第一连接和第二连接;所述方法还包括:
所述客户端通过所述第一连接接收所述服务端配置的所述第一周期;
所述客户端确定所述第二连接发生异常时,以第二周期通过所述第二连接向所述服务端发送探测信号,所述探测信号用于探测所述第二连接是否恢复,所述第二周期等于所述第一周期,或所述第二周期是根据所述第一周期和退避参数计算出的。
9.根据权利要求1-8任一所述的方法,其特征在于,所述连接包括第一连接和第二连接,所述第一连接对应的第三周期与所述服务端在所述第一连接上的业务量适配,和/或与所述第一连接的当前连接状态相关;
所述第二连接对应的第四周期与所述服务端在所述第二连接上的业务量适配,和/或与所述第二连接的当前连接状态相关。
10.一种连接探测方法,其特征在于,应用于服务端,包括:
确定所述服务器当前状态,所述当前状态包括所述服务端当前业务量,和/或,所述服务器与客户端之间的连接的当前连接状态;
根据所述当前状态,确定第一周期,所述第一周期用于指示所述客户端向所述服务端发送探测信息的周期。
11.根据权利要求10所述的方法,其特征在于,根据所述当前状态,确定第一周期,包括如下至少一项:
所述第一周期与所述服务端当前设备接入量相关;或者,
所述第一周期与所述服务端当前待处理报文数量相关;或者,
所述第一周期与所述服务端本地运行负载相关。
12.根据权利要求11所述的方法,其特征在于,根据所述当前状态,确定第一周期,包括:
所述连接的当前连接状态包括:所述连接发生过异常的次数、频率、时长、以及响应时延、传输速率、丢包率中的至少一项;
所述第一周期与所述当前连接状态呈正比或反比。
13.根据权利要求10-12任一所述的方法,其特征在于,所述方法还包括:
向所述客户端发送配置信息,所述配置信息中包括如下至少一项:
最小探测周期,用于指示所述客户端发送探测信息的最小周期;
第一指示信息,用于指示所述客户端是否启动退避;
退避参数,用于指示退避规则;
最大探测周期,用于指示所述客户端发送探测信息的最大周期;其中,所述最小周期和/或所述最大周期是所述服务端根据当前业务量确定的;
生效的连接,用于指示对所述配置信息生效的连接;
第二指示信息,用于指示所述客户端是否使用其它协议发起探测,所述其它协议与所述连接对应的协议不同;
第一协议,用于指示所述客户端基于所述第一协议发送探测信息,所述第一协议与所述连接对应的协议不同;
第一协议相关参数,用于指示所述第一协议所支持的探测周期。
14.根据权利要求13所述的方法,其特征在于,所述客户端与所述服务端之间包括多条连接,所述生效的连接包括指定连接、所有连接、当前连接中的至少一项;其中,所述当前连接是指所述客户端与所述服务端传输所述配置信息的连接。
15.根据权利要求10-14任一所述的方法,其特征在于,所述连接包括第一连接和第二连接,所述第一连接对应的第三周期与所述服务端在所述第一连接上的业务量适配,和/或与所述第一连接的当前连接状态相关;
所述第二连接对应的第四周期与所述服务端在所述第二连接上的业务量适配,和/或与所述第二连接的当前连接状态相关。
16.一种客户端,其特征在于,包括存储器和一个或多个处理器;其中,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述计算机指令被所述处理器执行时,使得所述客户端执行如权利要求1至9中任一项所述的方法。
17.一种服务器,其特征在于,包括存储器和一个或多个处理器;其中,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述计算机指令被所述处理器执行时,使得所述服务器执行如权利要求10至15中任一项所述的方法。
18.一种通信系统,其特征在于,包括:
客户端,用于执行如权利要求1至9中任一项所述的方法;
服务器,用于执行如权利要求10至15任一项所述的方法。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括程序指令,当所述程序指令在计算机上运行时,使得所述计算机执行如权利要求1至9任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括程序指令,当所述程序指令在计算机上运行时,使得所述计算机执行如权利要求10至15任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110713070.1A CN115529255A (zh) | 2021-06-25 | 2021-06-25 | 一种连接探测方法、客户端与服务器 |
PCT/CN2022/092770 WO2022267739A1 (zh) | 2021-06-25 | 2022-05-13 | 一种连接探测方法、客户端与服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110713070.1A CN115529255A (zh) | 2021-06-25 | 2021-06-25 | 一种连接探测方法、客户端与服务器 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115529255A true CN115529255A (zh) | 2022-12-27 |
Family
ID=84544065
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110713070.1A Pending CN115529255A (zh) | 2021-06-25 | 2021-06-25 | 一种连接探测方法、客户端与服务器 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN115529255A (zh) |
WO (1) | WO2022267739A1 (zh) |
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07152706A (ja) * | 1993-11-30 | 1995-06-16 | Fuji Xerox Co Ltd | ネットワーク・コンピュータ |
JP2005236813A (ja) * | 2004-02-20 | 2005-09-02 | Ntt Docomo Inc | ネットワーク装置の制御装置及び通信システム並びに異常検出方法 |
CN103685241A (zh) * | 2013-11-26 | 2014-03-26 | 中国科学院计算技术研究所 | 一种维持tcp长连接的自适应心跳方法及其系统 |
CN106303702A (zh) * | 2015-06-11 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 连接状态检测方法、装置和智能电视系统 |
US20170091008A1 (en) * | 2015-09-29 | 2017-03-30 | International Business Machines Corporation | Detecting and analyzing performance anomalies of client-server based applications |
CN106817267A (zh) * | 2015-11-27 | 2017-06-09 | 华为技术有限公司 | 一种故障检测方法和设备 |
CN107079329A (zh) * | 2014-10-15 | 2017-08-18 | 英特尔Ip公司 | 在紧密集成的WiFi/LTE中的上行链路流量控制方法 |
CN107249136A (zh) * | 2017-06-07 | 2017-10-13 | 北京潘达互娱科技有限公司 | 网络连接方法及装置 |
CN107925954A (zh) * | 2015-02-03 | 2018-04-17 | 瑞典爱立信有限公司 | 用来支持实时业务定向网络的信令接口 |
CN110324202A (zh) * | 2019-05-31 | 2019-10-11 | 厦门网宿有限公司 | 一种探测线路质量的方法和装置 |
CN110351160A (zh) * | 2018-04-08 | 2019-10-18 | 华为技术有限公司 | 监测业务质量的方法和装置 |
CN110753198A (zh) * | 2018-07-24 | 2020-02-04 | 杭州海康威视数字技术股份有限公司 | 存储图像数据的方法和装置 |
CN111193769A (zh) * | 2019-11-25 | 2020-05-22 | 泰康保险集团股份有限公司 | 恢复长连接的方法、系统、装置、电子设备及存储介质 |
CN112235155A (zh) * | 2020-09-24 | 2021-01-15 | 交控科技股份有限公司 | 协同编队业务通信环境的性能测试方法及装置 |
CN112433908A (zh) * | 2020-10-29 | 2021-03-02 | 苏州浪潮智能科技有限公司 | 确定检测服务器的间隔时间的方法、系统、设备及介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104993951B (zh) * | 2015-06-12 | 2018-02-06 | 上海斐讯数据通信技术有限公司 | 一种网络设备信息传送方法 |
-
2021
- 2021-06-25 CN CN202110713070.1A patent/CN115529255A/zh active Pending
-
2022
- 2022-05-13 WO PCT/CN2022/092770 patent/WO2022267739A1/zh unknown
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH07152706A (ja) * | 1993-11-30 | 1995-06-16 | Fuji Xerox Co Ltd | ネットワーク・コンピュータ |
JP2005236813A (ja) * | 2004-02-20 | 2005-09-02 | Ntt Docomo Inc | ネットワーク装置の制御装置及び通信システム並びに異常検出方法 |
CN103685241A (zh) * | 2013-11-26 | 2014-03-26 | 中国科学院计算技术研究所 | 一种维持tcp长连接的自适应心跳方法及其系统 |
CN107079329A (zh) * | 2014-10-15 | 2017-08-18 | 英特尔Ip公司 | 在紧密集成的WiFi/LTE中的上行链路流量控制方法 |
CN107925954A (zh) * | 2015-02-03 | 2018-04-17 | 瑞典爱立信有限公司 | 用来支持实时业务定向网络的信令接口 |
CN106303702A (zh) * | 2015-06-11 | 2017-01-04 | 阿里巴巴集团控股有限公司 | 连接状态检测方法、装置和智能电视系统 |
US20170091008A1 (en) * | 2015-09-29 | 2017-03-30 | International Business Machines Corporation | Detecting and analyzing performance anomalies of client-server based applications |
CN106817267A (zh) * | 2015-11-27 | 2017-06-09 | 华为技术有限公司 | 一种故障检测方法和设备 |
CN107249136A (zh) * | 2017-06-07 | 2017-10-13 | 北京潘达互娱科技有限公司 | 网络连接方法及装置 |
CN110351160A (zh) * | 2018-04-08 | 2019-10-18 | 华为技术有限公司 | 监测业务质量的方法和装置 |
CN110753198A (zh) * | 2018-07-24 | 2020-02-04 | 杭州海康威视数字技术股份有限公司 | 存储图像数据的方法和装置 |
CN110324202A (zh) * | 2019-05-31 | 2019-10-11 | 厦门网宿有限公司 | 一种探测线路质量的方法和装置 |
CN111193769A (zh) * | 2019-11-25 | 2020-05-22 | 泰康保险集团股份有限公司 | 恢复长连接的方法、系统、装置、电子设备及存储介质 |
CN112235155A (zh) * | 2020-09-24 | 2021-01-15 | 交控科技股份有限公司 | 协同编队业务通信环境的性能测试方法及装置 |
CN112433908A (zh) * | 2020-10-29 | 2021-03-02 | 苏州浪潮智能科技有限公司 | 确定检测服务器的间隔时间的方法、系统、设备及介质 |
Non-Patent Citations (1)
Title |
---|
刘宁: "EPA工业以太网实时性分析及调度方法的研究", 中国博士学位论文全文数据库, no. 05, pages 140 - 48 * |
Also Published As
Publication number | Publication date |
---|---|
WO2022267739A1 (zh) | 2022-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10693969B2 (en) | Electronic device using logical channels for communication | |
WO2021057429A1 (zh) | 一种数据传输方法及电子设备 | |
WO2021098533A1 (zh) | 一种连接建立方法及终端设备 | |
EP4054133A1 (en) | Multipath transmission method and device | |
EP4135405A1 (en) | Channel switching method, and electronic device and storage medium | |
KR102274950B1 (ko) | 무선 통신 시스템에서 다중 망 접속을 위한 장치 및 방법 | |
WO2021218864A1 (zh) | 一种Wi-Fi点对点业务的实现方法以及相关设备 | |
WO2022083386A1 (zh) | 投屏方法、系统及电子设备 | |
WO2022143071A1 (zh) | 连接建立方法及电子设备 | |
WO2022068513A1 (zh) | 无线通信方法和终端设备 | |
WO2021179990A1 (zh) | 一种应用服务器的访问方法及终端 | |
EP4216501A1 (en) | Method for switching channels, electronic device, and storage medium | |
WO2022143155A1 (zh) | 资源访问方法和终端设备 | |
US20230198934A1 (en) | Reverse address resolution method and electronic device | |
WO2023050362A1 (zh) | 下行传输配置、接收方法及装置、通信设备及存储介质 | |
WO2022068646A1 (zh) | 一种数据传输方法及电子设备 | |
EP4102927A1 (en) | Dual wifi connection method and electronic device | |
WO2022267739A1 (zh) | 一种连接探测方法、客户端与服务器 | |
EP4185013A1 (en) | Networking method and networking system, and electronic device | |
CN113872862B (zh) | 通信方法、移动设备及路由设备 | |
WO2023273464A1 (zh) | 一种数据传输方法和电子设备 | |
WO2023051204A1 (zh) | 跨设备连接方法、电子设备及存储介质 | |
WO2023030386A1 (zh) | 一种数据传输方法、电子设备和装置 | |
EP4354917A1 (en) | Data processing method and electronic device | |
RU2802678C1 (ru) | Способ переключения каналов, электронное устройство и носитель хранения данных |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |