CN114531497A - 一种tcp保活方法、装置及系统 - Google Patents

一种tcp保活方法、装置及系统 Download PDF

Info

Publication number
CN114531497A
CN114531497A CN202011194476.5A CN202011194476A CN114531497A CN 114531497 A CN114531497 A CN 114531497A CN 202011194476 A CN202011194476 A CN 202011194476A CN 114531497 A CN114531497 A CN 114531497A
Authority
CN
China
Prior art keywords
tcp connection
service
identifier
keep
alive
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
Application number
CN202011194476.5A
Other languages
English (en)
Inventor
乐超
蒋钟寅
李�荣
王洋
凌波
李丽
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202011194476.5A priority Critical patent/CN114531497A/zh
Publication of CN114531497A publication Critical patent/CN114531497A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/20Manipulation of established connections
    • H04W76/25Maintenance of established connections
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W76/00Connection management
    • H04W76/10Connection setup
    • H04W76/11Allocation or use of connection identifiers
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/70Reducing energy consumption in communication networks in wireless communication networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Telephone Function (AREA)

Abstract

本申请实施例提供一种TCP保活方法、装置及系统。该方法应用于第一设备,第一设备包括协处理器和应用处理器,该方法包括:应用处理器确定第一业务是白名单业务,向协处理器发送第一请求,第一请求用于请求对第一业务对应的第一TCP连接进行保活;协处理器接收来自应用处理器的第一请求,根据第一业务的标识和第一TCP连接的标识得到第一TCP连接保活消息;协处理器通过蓝牙方式广播发送第一TCP连接保活消息。该方案可以实现对白名单进行TCP连接保活,无需对业务的TCP连接频繁执行销毁及重建操作,可以减少设备开销。并且是通过蓝牙方式广播发送TCP连接保活消息,功耗比较低,从而实现了低功耗TCP连接保活。

Description

一种TCP保活方法、装置及系统
技术领域
本申请实施例涉及通信技术领域,尤其涉及一种TCP保活方法、装置及系统。
背景技术
随着智能设备的普及,各种智能设备走进千家万户,业务跨设备之间的数据交互也越来越常见,设备之间的传输控制协议(Transmission Control Protocol,TCP)连接数量大大增加。
当终端设备灭屏休眠或者无线局域网(Wireless Local Area Network,WLAN)物理层断开时,该终端设备上各种业务建立的TCP连接则会被销毁,当后续亮屏唤醒或者WLAN物理层连接恢复,则需要消耗大量的时间和资源来建立各种业务的TCP连接和服务连接,造成终端设备的开销较大。
发明内容
本申请实施例提供一种TCP保活方法、装置及系统,用以降低终端设备的能耗。
第一方面,本申请实施例提供一种TCP保活方法,应用于协处理器,包括:接收第一请求,该第一请求携带第一业务的标识和第一TCP连接的标识,该第一请求用于请求对该第一业务的该第一TCP连接进行保活,该第一TCP连接为第一设备与第二设备之间的连接;根据该第一业务的标识和该第一TCP连接的标识,得到第一TCP连接保活消息;通过蓝牙方式广播发送该第一TCP连接保活消息。
基于上述方案,当第一设备的WLAN物理层链路断开或灭屏休眠时,第一设备不销毁该第一设备内的白名单业务,而是生成白名单业务的TCP连接保活消息,然后通过蓝牙方式广播发送TCP连接保活消息,从而可以实现对业务进行TCP连接保活,无需对业务的TCP连接频繁执行销毁及重建操作,可以减少设备开销。并且是通过蓝牙方式广播发送TCP连接保活消息,功耗比较低,从而实现了低功耗TCP连接保活。
作为一种实现方法,该第一请求携带第一业务的标识和第一TCP连接的标识,包括:该第一请求携带第一业务的标识和所述第一TCP连接的保活信息,所述第一TCP连接的保活信息包含所述第一TCP连接的标识。该第一TCP连接的保活信息也可以称为第一TCP连接保活信息或称为保活信息(Keepalive information,KAInfo)。
作为一种可能的实现方法,通过蓝牙方式接收广播消息,该广播消息携带第二TCP连接保活消息;确定所述第二TCP连接保活消息携带的业务标识是所述第一业务的标识且携带的TCP连接的标识是所述第一TCP连接的标识,则保存该第一业务的标识与该第一TCP连接的标识之间的映射关系,并设定超时时间。
作为一种可能的实现方法,确定未在所述超时时间内再次收到所述第二TCP连接保活消息,则删除所述映射关系;或者,确定在所述超时时间内再次收到所述第二TCP连接保活消息,则不删除所述映射关系。
基于上述方案,设定超时时间,当在超时时间内收到TCP连接保活消息,则维持TCP连接,否则判定TCP连接超时,则不再维持TCP连接。如此,可以减少设备的能耗。
作为一种可能的实现方法,确定该第一设备的应用处理器处于休眠状态、且未在超时时间内接收到该第二TCP连接保活消息,则唤醒该应用处理器;向该应用处理器发送指示信息,该指示信息用于通知该第一设备与该第二设备之间的物理层链路断开。
基于上述方案,在第一设备与第二设备之间的物理层链路断开时才唤醒应用处理器,其它时间该应用处理器处于休眠状态,如此可以节约应用处理器的能耗。
作为一种可能的实现方法,通过蓝牙方式接收广播消息,该广播消息携带第三TCP连接保活消息,该第三TCP连接保活消息携带第二业务的标识和第二TCP连接的标识;确定该第二业务不是白名单业务,则丢弃该第三TCP连接保活消息。
基于该方案,不对非白名单业务进行TCP连接保活,如此可以减少能耗。
作为一种可能的实现方法,确定收到针对该第一TCP连接保活消息的应答消息,则不通知所述应用处理器释放所述第一TCP连接,也即确定该第一TCP连接保活成功;或者,确定连续发送的N个所述第一TCP连接保活消息均未收到对应的应答消息,则通知所述应用处理器释放所述第一TCP连接,也即确定该第一TCP连接保活失败,其中,N为正整数。
第二方面,本申请实施例提供一种TCP保活方法,应用于应用处理器,包括:获取第一TCP连接的标识和第一业务的标识,该第一TCP连接为第一设备与第二设备之间对应第一业务的连接;确定该第一TCP连接对应的第一业务是白名单业务,则向该第一设备的协处理器发送第一请求,该第一请求携带该第一业务的标识和该第一TCP连接的标识,该第一请求用于请求对该第一业务的该第一TCP连接进行保活。
基于上述方案,可以实现对白名单业务进行TCP连接保活,无需对业务的TCP连接频繁执行销毁及重建操作,可以减少设备开销。并且是通过蓝牙方式广播发送TCP连接保活消息,功耗比较低,从而实现了低功耗TCP连接保活。
作为一种可能的实现方法,所述第一请求还携带所述第一业务的文件描述信息,则保存该第一TCP连接的标识与该文件描述信息之间的映射关系;以及,保存该第一业务的标识与该文件描述信息之间的映射关系。
作为一种可能的实现方法,确定该第一设备与该第二设备之间的WLAN物理层链路断开,则向该协处理器发送第二请求,该第二请求携带该第一业务的标识,该第二请求用于请求获取该第一业务的标识对应的第一TCP连接的标识;从该协处理器接收通知信息,该通知信息用于通知未找到该第一业务的标识对应的第一TCP连接的标识;释放该第一TCP连接。
基于该方案,在第一设备与第二设备之间的WLAN物理层链路断开时释放TCP连接,如此可以减少设备能耗。
作为一种可能的实现方法,确定该第一设备与该第二设备之间的WLAN物理层链路断开,则向该协处理器发送第二请求,该第二请求携带该第一业务的标识,该第二请求用于请求获取该第一业务的标识对应的第一TCP连接的标识;从该协处理器接收该第一业务的标识对应的该第一TCP连接的标识;确定不释放该第一TCP连接。
作为一种可能的实现方法,从该协处理器接收指示信息,该指示信息用于通知该第一设备与该第二设备之间的物理层链路断开,该指示信息携带该第一TCP连接的标识;释放该第一TCP连接。
第三方面,本申请实施例提供一种TCP保活方法,应用于第一设备,包括:获取第一TCP连接的标识和第一业务的标识,该第一TCP连接为第一设备与第二设备之间对应第一业务的连接;确定该第一TCP连接对应的第一业务是白名单业务,则根据该第一业务的标识和该第一TCP连接的标识,得到第一TCP连接保活消息;通过蓝牙方式广播发送该第一TCP 连接保活消息。
基于上述方案,可以实现对白名单业务进行TCP连接保活,无需对业务的TCP连接频繁执行销毁及重建操作,可以减少设备开销。并且是通过蓝牙方式广播发送TCP连接保活消息,功耗比较低,从而实现了低功耗TCP连接保活。
作为一种可能的实现方法,保存该第一TCP连接的标识与第一TCP连接对应的文件描述信息之间的映射关系;以及,保存该第一业务的标识与该文件描述信息之间的映射关系。
作为一种可能的实现方法,确定该第一设备与该第二设备之间的WLAN物理层链路断开、且确定未在超时时间内从该第二设备收到第二TCP连接保活消息,则释放该第一业务的TCP 连接,该第二TCP连接保活消息携带该第一业务的标识和该第一TCP连接的标识。
基于该方案,在第一设备与第二设备之间的WLAN物理层链路断开时释放TCP连接,如此可以减少设备能耗。
作为一种可能的实现方法,确定该第一设备与该第二设备之间的WLAN物理层链路断开、且确定在超时时间内从该第二设备收到第二TCP连接保活消息,则确定不释放该第一TCP 连接,该第二TCP连接保活消息携带该第一业务的标识和该第一TCP连接的标识。
作为一种可能的实现方法,通过蓝牙方式接收广播消息,该广播消息携带第二TCP连接保活消息;确定第二TCP连接保活消息携带的业务标识是所述第一业务的标识且携带的 TCP连接的标识是所述第一TCP连接的标识,则保存该第一业务的标识与该第一TCP连接的标识之间的映射关系,并设定超时时间。
作为一种可能的实现方法,确定未在所述超时时间内再次收到所述第二TCP连接保活消息,则删除所述映射关系;或者,确定在所述超时时间内再次收到所述第二TCP连接保活消息,则不删除所述映射关系。
基于上述方案,设定超时时间,当在超时时间内收到TCP连接保活消息,则维持TCP连接,否则判定TCP连接超时,则不再维持TCP连接。如此,可以减少设备的能耗。
作为一种可能的实现方法,通过蓝牙方式接收广播消息,该广播消息携带第三TCP连接保活消息,该第三TCP连接保活消息携带第二业务的标识和第二TCP连接的标识;确定该第二业务不是白名单业务,则丢弃该第三TCP连接保活消息。
基于该方案,不对非白名单业务进行TCP连接保活,如此可以减少能耗。
作为一种可能的实现方法,确定收到针对该第一TCP连接保活消息的应答消息,则不通知所述应用处理器释放所述第一TCP连接,也即确定该第一TCP连接保活成功;或者,确定连续发送的N个所述第一TCP连接保活消息均未收到对应的应答消息,则通知所述应用处理器释放所述第一TCP连接,也即确定该第一TCP连接保活失败,其中,N为正整数。
第四方面,本申请实施例提供一种TCP保活方法,应用于第一设备,第一设备包括协处理器和应用处理器,该方法包括:所述应用处理器确定第一业务是白名单业务,向所述协处理器发送第一请求,所述第一请求携带所述第一业务的标识和第一TCP连接的标识,所述第一请求用于请求对所述第一业务对应的所述第一TCP连接进行保活,所述第一TCP 连接为所述第一设备与第二设备之间的对应所述第一业务的连接;所述协处理器接收来自所述应用处理器的所述第一请求,并根据所述第一业务的标识和所述第一TCP连接的标识,得到第一TCP连接保活消息;所述协处理器通过蓝牙方式广播发送所述第一TCP连接保活消息。该方案可以实现对白名单进行TCP连接保活,无需对业务的TCP连接频繁执行销毁及重建操作,可以减少设备开销。并且是通过蓝牙方式广播发送TCP连接保活消息,功耗比较低,从而实现了低功耗TCP连接保活。
作为一种可能的实现方法,所述第一请求还携带所述第一业务的文件描述信息;所述应用处理器保存所述第一TCP连接的标识与所述第一TCP连接对应的文件描述信息之间的映射关系;以及,所述应用处理器保存所述第一业务的标识与所述第一TCP连接对应的文件描述信息之间的映射关系。
作为一种可能的实现方法,所述应用处理器确定所述第一设备与所述第二设备之间的 WLAN物理层链路断开,则向所述协处理器发送第二请求,所述第二请求携带所述第一业务的标识,所述第二请求用于请求获取所述第一业务的标识对应的所述第一TCP连接的标识;所述协处理器向所述应用处理器发送通知信息,所述通知信息用于通知未找到所述第一业务的标识对应的所述第一TCP连接的标识;所述应用处理器释放所述第一TCP连接。基于该方案,在第一设备与第二设备之间的WLAN物理层链路断开时释放TCP连接,如此可以减少设备能耗。
作为一种可能的实现方法,所述协处理器通过蓝牙方式接收广播消息,所述广播消息携带第二TCP连接保活消息;所述协处理器确定所述第二TCP连接保活消息携带的业务标识是所述第一业务的标识且携带的TCP连接的标识是所述第一TCP连接的标识,则保存所述第一业务的标识与所述第一TCP连接的标识之间的映射关系,并设定超时时间。
作为一种可能的实现方法,所述协处理器确定未在所述超时时间内再次收到所述第二 TCP连接保活消息,删除所述映射关系;或者,确定在所述超时时间内再次收到所述第二 TCP连接保活消息,则不删除所述映射关系。
基于上述方案,设定超时时间,当在超时时间内收到TCP连接保活消息,则维持TCP连接,否则判定TCP连接超时,则不再维持TCP连接。如此,可以减少设备的能耗。
作为一种可能的实现方法,所述协处理器确定所述应用处理器处于休眠状态、且未在所述超时时间内接收到所述第二TCP连接保活消息,则唤醒所述应用处理器;所述协处理器向所述应用处理器发送指示信息,所述指示信息用于通知所述第一设备与所述第二设备之间的物理层链路断开;所述协处理器释放所述第一TCP连接。
作为一种可能的实现方法,所述应用处理器确定所述第一设备与所述第二设备之间的 WLAN物理层链路断开,则向所述协处理器发送第二请求,所述第二请求携带所述第一业务的标识,所述第二请求用于请求获取所述第一业务的标识对应的所述第一TCP连接的标识;所述协处理器向所述应用处理器发送所述第一业务的标识对应的所述第一TCP连接的标识;所述应用处理器确定收到所述第一TCP连接的标识,确定不释放所述第一TCP连接。
作为一种可能的实现方法,所述协处理器通过蓝牙方式接收广播消息,所述广播消息携带第三TCP连接保活消息,所述第三TCP连接保活消息携带第二业务的标识和第二TCP 连接的标识;所述协处理器确定所述第二业务不是白名单业务,则丢弃所述第三TCP连接保活消息。基于该方案,不对非白名单业务进行TCP连接保活,如此可以减少能耗。
作为一种可能的实现方法,所述协处理器确定收到针对所述第一TCP连接保活消息的应答消息,则不通知所述应用处理器释放所述第一TCP连接,也即确定所述第一TCP连接保活成功;或者,所述协处理器确定连续发送的N个所述第一TCP连接保活消息均未收到对应的应答消息,则通知所述应用处理器释放所述第一TCP连接,也即确定所述第一TCP 连接保活失败,其中,N为正整数。
作为一种可能的实现方法,所述应用处理器向所述协处理器发送第一请求之后,还包括:所述应用处理器进入休眠状态。
第五方面,本申请实施例提供一种通信装置,该装置可以是协处理器。该装置具有实现上述第一方面的各实现方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第六方面,本申请实施例提供一种通信装置,该装置可以是应用处理器。该装置具有实现上述第二方面的各实现方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第七方面,本申请实施例提供一种通信装置,该装置可以是第一设备或用于第一设备的芯片。该装置具有实现上述第三方面的各实现方法或第四方面的各实现方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第八方面,本申请实施例提供一种通信装置,包括处理器,处理器与存储器耦合,存储器用于存储程序或指令,当程序或指令被处理器执行时,使得该装置实现上述第一方面至第四方面的任意实现方法。该存储器可以位于该装置之内,也可以位于该装置之外。且该处理器包括一个或多个。
第九方面,本申请实施例提供一种通信装置,包括用于执行上述第一方面至第四方面的任意实现方法的各个步骤的单元或手段(means)。
第十方面,本申请实施例提供一种通信装置,包括处理器和接口电路,所述处理器用于控制接口电路与其它装置通信,并执行上述第一方面至第四方面的任意实现方法。该处理器包括一个或多个。
第十一方面,本申请实施例还提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述第一方面至第四方面的任意实现方法。
第十二方面,本申请实施例还提供一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面至第四方面的任意实现方法。
第十三方面,本申请实施例还提供一种芯片系统,包括处理器,处理器与存储器耦合,存储器用于存储程序或指令,当程序或指令被处理器执行时,使得该芯片系统实现上述第一方面至第四方面的任意实现方法。该存储器可以位于该芯片系统之内,也可以位于该芯片系统之外。且该处理器包括一个或多个。
第十四方面,本申请实施例还提供一种通信系统,包括用于执行上述第一方面的任意实现方法的协处理器,和用于执行上述第二方面的任意实现方法的应用处理器。
附图说明
图1为WLAN物理层断开场景下的TCP连接断开过程示意图;
图2为终端设备灭屏休眠场景下的TCP连接断开过程示意图;
图3为本申请实施例所适用的一种框架结构示意图;
图4为本申请实施例提供的保活服务模块的结构示意图;
图5为本申请实施例提供的保活应用模块的结构示意图;
图6为本申请实施例提供的白名单更新流程示意图;
图7为本申请实施例提供的非白名单业务发送保活流程示意图;
图8为本申请实施例提供的白名单业务发送保活流程示意图;
图9为本申请实施例提供的非白名单业务接收保活流程示意图;
图10为本申请实施例提供的白名单业务接收保活流程示意图;
图11为本申请实施例提供的WLAN物理层断开后业务不保活流程示意图;
图12为本申请实施例提供的WLAN物理层断开后业务保活流程示意图;
图13为本申请实施例提供的终端设备灭屏休眠后业务不保活流程示意图;
图14为本申请实施例提供的确定TCP连接保活成功流程示意图;
图15为本申请实施例提供的确定TCP连接保活失败流程示意图;
图16为本申请实施例提供的TCP连接保活消息或TCP连接保活Ack消息的结构的示例图;
图17为本申请实施例提供的一种TCP保活方法示意图;
图18为本申请实施例提供的又一种TCP保活方法示意图;
图19为手机的结构示意图;
图20为本申请实施例提供的一种通信装置示意图;
图21本申请实施例提供的一种终端设备的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述。方法实施例中的具体操作方法也可以应用于装置实施例或系统实施例中。其中,在本申请的描述中,除非另有说明,“多个”的含义是两个或两个以上。
为降低建立各种业务的TCP连接的开销,目前的方案是:Android系统在WLAN物理层断开或终端设备灭屏休眠后,会对某些TCP连接进行保活(keep alive)。下面分WLAN物理层断开和终端设备灭屏休眠两种场景分别进行说明。
场景1、WLAN物理层断开场景
如图1所示,为WLAN物理层断开场景下的TCP连接断开过程示意图。当终端设备与对端设备(如车机、音箱、耳机、手表/手环、平板、大屏、个人电脑、虚拟现实(VirtualReality, VR)/增强现实(Augmented Reality,AR))的WLAN物理层断开后,终端设备的应用处理器 (Application Processor,AP)中的WLAN驱动层(WLAN driver)会分别通知硬件抽象层 (Hardware Abstract Layer,HAL),框架层(Framework)和应用层(APP),应用层的用户态协议栈模块(InProcessNetworkStack)会通过网络管理守护进程(Netd)销毁掉该WLAN物理层上所有的TCP连接。
当WLAN物理层连接恢复后,之前所有的TCP连接都需要重新建立,业务的恢复时间比较久。
场景2、终端设备灭屏休眠场景
如图2所示,为终端设备灭屏休眠场景下的TCP连接断开过程示意图。当终端设备灭屏休眠后,电量管理服务系统(PowerManagerService)会通知应用层的省电模块(HAware), HAware最终会通过Netd销毁非白名单业务的TCP连接,白名单业务的TCP连接可以保活。
当终端设备亮屏唤醒后,白名单业务的TCP连接是保活的,可以直接进行TCP数据通信,非白名单业务则需要重新建立TCP连接和服务连接,业务的恢复时间比较久。
上述方案中,Android系统的用户态协议栈在WLAN物理层断开后会销毁该物理层上所有的TCP连接,Android系统的省电模块在终端设备灭屏休眠后会销毁非白名单业务的TCP 连接,这些被销毁的连接在WLAN物理层连接恢复或终端设备亮屏唤醒后,需要花费大量的时间来重新建立连接,造成开销较大。
为解决上述问题,本申请实施例提供一种TCP保活方法,该方法通过SensorHub中的低功耗蓝牙(Bluetooth Low Energy,BLE)扫描和BLE广播机制,在SensorHub侧实现TCP连接保活,无需唤醒应用处理器(AP),从而实现低功耗的TCP保活技术。需要说明的是,本申请实施例中的SensorHub是微处理器或协处理器,AP是应用处理器,SensorHub与AP 是两个独立的处理器,相互之间可以协同配合工作。
如图3所示,为本申请实施例所适用的一种框架结构示意图。该框架结构包含应用(APP) 层、框架(Framework)层、硬件抽象层(HAL)和内核(Kernel)层,各个层所包含的部分功能模块如图3所示。其中,图3所示的各功能模块的功能如下所述:
1)第三方APP模块(ThirdParty APP):当第三方APP模块创建好TCP连接后,调用KeepAliveService模块提供的保活接口对TCP连接进行保活。
2)省电模块(HAware):当终端设备灭屏休眠后,HAware调用KeepAliveService获取 TCP连接的保活结果,如果保活成功则不销毁该TCP连接,否则销毁对应的TCP连接。
3)用户态协议栈模块(InProcessNetworkStack):当WLAN物理层断开后,InProcessNetworkStack调用KeepAliveService获取TCP连接的保活结果,如果保活成功则不销毁该TCP连接,否则销毁对应的TCP连接。
4)推送服务模块(PushService):Framework的push服务功能模块,负责接收服务器推送更新的白名单,最终更新白名单数据到KeepAliveService和KeepAliveAPP。
5)接口控制器(InterfaceController):当WLAN物理层断开时,用户态协议栈模块通过该InterfaceController销毁WLAN物理层上所有的TCP连接。
6)网络管理服务模块(NetworkManagementService):当终端设备灭屏休眠时,省电模块通过NetworkManagementService消除非白名单业务的TCP连接。
7)网络管理守护进程(Netd):提供Framework控制内核TCP/IP栈的桥梁。
8)保活服务模块(KeepAliveService):TCP连接保活方案的AP实现部分,对上向第三方应用提供TCP连接保活的能力,向用户态协议栈模块和省电模块提供TCP连接保活结果查询等功能,对下向SensorHub提供保活失效回调,当TCP连接保活失效时销毁该TCP 的连接。以及,还能够接收服务器的白名单更新请求。
9)保活应用模块(KeepAliveAPP):TCP保活方案的SensorHub实现部分,向AP提供TCP连接保活、TCP连接保活结果查询及白名单更新等功能,并利用SensorHub的BLE广播机制发送TCP连接保活包以及利用SensorHub的BLE扫描机制接收TCP连接保活包。在SensorHub中实现保活包缓存,缓存有效说明该TCP连接保活成功,缓存失效说明该TCP连接保活失败,需要销毁对应的TCP连接。以及,能够在保活失效后唤醒AP,并且回调失效结果给AP的KeepAliveService。
10)SensorHAL:Sensor的硬件抽象层。
11)SensorDriver:Sensor的驱动层。
如图4所示,为本申请实施例提供的保活服务模块(KeepAliveService)的结构示意图。其中,保活服务模块包含以下功能模块:
1)封装模块(wrapper):该模块提供接口给第三方APP和Framework系统模块,用于开启TCP连接保活,查询TCP连接保活结果等功能。
2)白名单模块(WhiteList):该模块负责保存TCP连接保活白名单(可以简称为保活白名单或白名单),可以通过PushService接收服务器发送的更新的白名单,也可以向wrapper提供白名单查询的功能。白名单模块中保存有包名称(package name)及业务标识(service id),且package name与service id之间具有映射关系,package name用于唯一标识一个应用,service id用于唯一标识一个业务。
3)映射模块(KAMap):存储保活信息(Keepalive information,KAInfo)与文件描述信息(Socket file description,skfd)的映射的关系,以及保存业务标识(service id)与skfd的映射关系。其中,KAInfo包含由源端IP、源端端口、目的端IP和目的端端口构成的四元组信息,该四元组信息可以唯一标识一条TCP连接,一个KAInfo对应一个skfd。wrapper和Notify可以根据KAInfo查询到TCP连接对应的skfd。其中,service id用于唯一标识一个业务,一个service id可以对应一个或多个skfd。wrapper和Notify可以根据service id查询到整个业务所包含的所有TCP连接的skfd。
4)通知模块(Notify):当终端设备休眠时,SensorHub检测到对端设备长时间离开,则认为终端设备与该对端设备所建立的TCP连接无需保活,SensorHub通过该通知模块将无需保活的TCP连接的KAInfo发送给AP,AP根据KAInfo从KAMap中查询到KAMap对应的skfd,然后通过Netd模块销毁TCP连接。
如图5所示,为本申请实施例提供的保活应用模块(KeepAliveAPP)的结构示意图。
其中,保活应用模块包含以下功能模块:
1)封装模块(wrapper):该模块提供接口给AP侧的KeepAliveService,用于开启TCP 连接保活,查询TCP连接保活结果,更新SensorHub内的保活白名单,通知AP侧KeepAliveService某条TCP连接保活失效。
2)构建模块(Builder):用于封装AP侧KeepAliveService传递下来的TCP连接保活参数,比如TCP连接参数包括业务标识(service id)和KAInfo,封装后成为KAMsg。
3)第一解析模块(RecvCacheParser):用于解析BLE扫描模块扫描到的对端设备发送的TCP连接保活消息KAMsg,遍历解析KAMsg,通过WhiteListSH判定该KAMsg的业务是否在保活白名单内,如果不在保活白名单内则直接丢弃,如果在保活白名单内则加入到KACache,并且回复KAMsg Ack给对端设备,通知对端设备该TCP连接保活成功。
4)第二解析模块(RecvAckParser):用于解析BLE扫描模块扫描到的对端设备回复的针对TCP连接保活消息的应答消息(称为KAMsg Ack),如果能够持续收到该条TCP连接的KAMsg Ack,说明该KAMsg对应的TCP连接保活成功,后续定期发送该KAMsg进行保活即可。如果连续发送N个KAMsg都收不到对应的KAMsg Ack,表明该TCP连接保活失效,则从处理模块的KAMsg列表中清除该KAMsg,并且通过wrapper回调onDisconnect给AP层(如果 AP睡眠则需要先唤醒AP)。
5)处理模块(Processor):向下聚合AP侧KeepAliveService发送下来的TCP连接保活请求,通过定时任务周期性的发送TCP连接保活包,当有较多TCP连接需要保活时,TCP 连接保活包的长度会超过单个BLE广播能够承载的最大长度,该处理模块会对TCP连接保活包进行分片后再发送。向上接收BLE扫描模块扫描到的TCP连接保活包,如果该连接保活包是一系列TCP连接保活包的分片,则该处理模块负责对这一系列TCP连接保活包的分片进行重组,重组之后的将完整TCP连接保活包交给RecvCacheParser进行处理。
6)BLE扫描模块:用于扫描对端设备通过BLE广播发送的TCP连接保活包。
7)BLE广播模块:用于通过蓝牙芯片(BlueTooth Chip,BL Chip)向对端设备广播发送TCP连接保活包。
8)保活缓存模块(KACache):用于记录由BLE扫描模块周期性扫描到的业务标识和KAInfo,以及设定超时时间,当在超时时间到达后,没有接收到相同的业务标识和KAInfo,则判断该KAInfo对应的TCP连接超时,进而在KACache中清除记录的业务标识和KAInfo。
9)白名单模块(WhiteListSH):SensorHub中的白名单模块,负责保存TCP连接保活白名单(可以简称为保活白名单或白名单),可以通过Wrapper接收服务器发送的更新的白名单,也可以向wrapper和RecvCacheParser提供白名单查询的功能。白名单模块中保存有包名称(package name)及业务标识(service id),且package name与service id之间具有映射关系,package name用于唯一标识一个应用,service id用于唯一标识一个业务。
下面结合上述图3、图4及图5所示的结构,介绍本申请实施例提供的低功耗的TCP保活方法的具体实现。
如图6所示,为本申请实施例提供的白名单更新流程示意图,包括以下步骤:
步骤601,服务器向PushService发送白名单配置信息。相应地,PushService收到白名单配置信息。
白名单配置信息携带更新后的保活白名单,或者携带需要新增的保活白名单,或者携带需要删除的保活白名单,等等。
步骤602,PushService向WhiteList发送白名单配置信息。相应地,WhiteList收到白名单配置信息。
步骤603,WhiteList根据白名单配置信息,更新保活白名单。
通过上述步骤601至步骤603,实现了WhiteList中存储的保活白名单的更新。
步骤604,WhiteList向Wrapper发送白名单配置信息。相应地,Wrapper收到白名单配置信息。
白名单配置信息携带更新后的保活白名单,或者携带需要新增的保活白名单,或者携带需要删除的保活白名单,等等。
这里的白名单配置信息可以与步骤601的白名单配置信息相同,或者是根据步骤601 的白名单配置信息得到的。
步骤605,Wrapper向WhiteListSH发送白名单配置信息。相应地,WhiteListSH收到白名单配置信息。
步骤606,WhiteListSH根据白名单配置信息,更新保活白名单。
通过上述步骤604至步骤606,PushService从服务器接收白名单配置信息,然后向WhiteList发送白名单配置信息,实现了WhiteList中存储的白名单的更新,以及WhiteList通过Wrapper向WhiteListSH发送白名单配置信息,实现了WhiteListSH中存储的保活白名单的更新。
本申请实施例中,保活白名单具有以下作用:
1)SensorHub通过BLE广播模块广播TCP连接保活包(也称为TCP连接保活消息)之前,判定业务是否在保活白名单中,如果不在保活白名单中则不广播TCP连接保活包,如果在保活白名单中则广播TCP连接保活包。
2)SensorHub通过BLE扫描模块扫描到对端设备发送的TCP连接保活包之后,判断TCP 连接保活包中的service id是否在保活白名单中,如果在保活白名单中,表明终端设备与该对端设备的保活白名单是匹配的,该TCP连接需要保活,如果不在保活白名单中,表明终端设备与该对端设备的保活白名单是不匹配的,该TCP连接不需要保活。
3)TCP连接保活需要知道具体哪个业务的哪个TCP连接保活,业务的区分如果直接用包名称(package name),则会占用太多的BLE广播字节,因此保活白名单里面有一个package name到service id的映射关系,在广播时在TCP连接保活包携带service id,可以降低开销。
如图7所示,为本申请实施例提供的非白名单业务发送保活流程示意图,包括以下步骤:
步骤701,ThirdParty APP向AP的Wrapper发送KAInfo和skfd。相应地,Wrapper 收到KAInfo和skfd。
ThirdParty APP创建了业务的套接字(socket)之后,ThirdParty APP向Wrapper发送KAInfo和skfd,以请求对TCP连接进行保活。其中,一个socket对应一个TCP连接。KAInfo包含由源端IP、源端端口、目的端IP和目的端端口构成的四元组信息,该四元组信息可以唯一标识一条TCP连接,一个KAInfo对应一个skfd,skfd是文件描述信息。
步骤702,Wrapper获取到包名称(package name)。
比如,ThirdParty APP调用Wrapper,并向Wrapper发送KAInfo和skfd,从而触发Wrapper获取到与该KAInfo对应的包名称。
一个package name唯一标识一个应用,一个应用包含一个或多个业务,每个业务可以有一个业务标识(service id)。
该步骤702获取的包名称与上述步骤701中的KAInfo具有对应关系,具体的,包名称所指示的应用中的某个业务上建立有该KAInfo指示的TCP连接。
步骤703,Wrapper向WhiteList发送包名称。相应地,WhiteList收到包名称。
步骤704,WhiteList确定该包名称不在保活白名单内。
步骤705,WhiteList向Wrapper发送通知信息。相应地,Wrapper收到通知信息。
该通知信息用于通知该包名称不在保活白名单内。
由于该包名称不在保活白名单内,因此不对KAInfo指示的TCP连接进行保活。
基于上述方案,当WhiteList确定包名称不在保活白名单内,则通知Wrapper该包名称不在保活白名单内,从而触发不对KAInfo指示的TCP连接进行保活,也即不对非白名单业务进行保活,可以减少保活开销。
如图8所示,为本申请实施例提供的白名单业务发送保活流程示意图,包括以下步骤:
步骤801,ThirdParty APP向AP的Wrapper发送KAInfo和skfd。相应地,Wrapper 收到KAInfo和skfd。
ThirdParty APP创建了业务的套接字(socket)之后,ThirdParty APP向Wrapper发送KAInfo和skfd,以请求对TCP连接进行保活。其中,一个socket对应一个TCP连接。KAInfo包含由源端IP、源端端口、目的端IP和目的端端口构成的四元组信息,该四元组信息可以唯一标识一条TCP连接,一个KAInfo对应一个skfd,skfd是文件描述信息。
步骤802,Wrapper获取到包名称(package name)。
比如,ThirdParty APP调用Wrapper,并向Wrapper发送KAInfo和skfd,从而触发Wrapper获取到与该KAInfo对应的包名称。
一个package name唯一标识一个应用,一个应用包含一个或多个业务,每个业务可以有一个业务标识(service id)。
该步骤802获取的包名称与上述步骤801中的KAInfo具有对应关系,具体的,包名称所指示的应用中的某个业务上建立有该KAInfo指示的TCP连接。
步骤803,Wrapper向WhiteList发送包名称。相应地,WhiteList收到包名称。
步骤804,WhiteList确定该包名称在保活白名单内,获取到包名称对应的业务标识 (service id)。
步骤805,WhiteList向Wrapper发送业务标识。相应地,Wrapper收到业务标识。
由于该包名称在保活白名单内,因此对KAInfo指示的TCP连接进行保活。
步骤806,Wrapper向SensorHub的Builder发送业务标识,KAInfo和skfd。相应地,Builder收到业务标识,KAInfo和skfd。
步骤807,Builder保存业务标识与skfd的映射关系,以及KAInfo与skfd的映射关系。
步骤808,Wrapper向Builder发送registerKAConnection请求。相应地,Builder收到registerKAConnection请求。
该registerKAConnection请求用于请求对KAInfo指示的TCP连接进行保活。
registerKAConnection请求中携带业务标识和KAInfo。
步骤809,Builder向ThirdParty APP发送registerKAConnection响应。相应地,ThirdParty APP收到registerKAConnection响应。
该registerKAConnection响应用于指示在SensorHub上完成对TCP连接的心跳注册。
步骤810,Builder根据业务标识和KAInfo,封装得到KAMsg。
也即,KAMsg包含业务标识和KAInfo。
步骤811,Builder向SensorHub的Prosessor发送KAMsg。相应地,Prosessor收到KAMsg。
步骤812,Prosessor定期获取缓存的KAMsg,然后通过BLE广播模块广播发送。
本申请实施例中,Prosessor可以是周期性地通知BLE广播模块对外广播发送KAMsg,每次广播发送的可以是一个KAMsg列表,KAMsg列表包含一个或多个KAMsg。
基于上述方案,对白名单业务,通过终端设备的BLE广播模块,实现对白名单业务进行低功耗的TCP保活,可以减少释放和重建TCP连接带来的开销。
如图9所示,为本申请实施例提供的非白名单业务接收保活流程示意图,包括以下步骤:
步骤901,SensorHub的BLE扫描模块向处理模块(Processor)发送KAMsg。相应地,Processor收到KAMsg。
BLE扫描模块收到对端设备发送的一个或多个KAMsg后,向Processor发送扫描到的 KAMsg。作为一种实现方法,该对端设备是以KAMsg列表的形式进行发送的,则BLE扫描模块收到的是KAMsg列表。
步骤902,Processor向第一解析模块(RecvCacheParser)发送KAMsg。相应地,RecvCacheParser收到KAMsg。
步骤903,RecvCacheParser从KAMsg解析出业务标识和KAInfo。
步骤904,RecvCacheParser向WhiteListSH发送业务标识。相应地,WhiteListSH收到业务标识。
步骤905,WhiteListSH确定该业务标识不在保活白名单内。
步骤906,WhiteListSH向RecvCacheParser发送通知信息。相应地,RecvCacheParser 收到通知信息。
该通知信息用于通知该业务标识不在保活白名单内。RecvCacheParser可以丢弃解析得到的KAInfo。
由于该业务标识不在保活白名单内,因此不对KAInfo指示的TCP连接进行保活。
基于上述方案,当BLE扫描模块从对端设备收到KAMsg,且WhiteListSH确定KAMsg终端业务标识不在保活白名单内,则触发RecvCacheParser丢弃解析得到的KAInfo,也即不对非白名单业务进行保活,可以减少保活开销。
如图10所示,为本申请实施例提供的白名单业务接收保活流程示意图,包括以下步骤:
步骤1001,SensorHub的BLE扫描模块向处理模块(Processor)发送KAMsg。相应地,Processor收到KAMsg。
BLE扫描模块收到对端设备发送的一个或多个KAMsg后,向Processor发送扫描到的 KAMsg。作为一种实现方法,该对端设备是以KAMsg列表的形式进行发送的,则BLE扫描模块收到的是KAMsg列表。
步骤1002,Processor向第一解析模块(RecvCacheParser)发送KAMsg。相应地,RecvCacheParser收到KAMsg。
步骤1003,RecvCacheParser从KAMsg解析出业务标识和KAInfo。
步骤1004,RecvCacheParser向WhiteListSH发送业务标识。相应地,WhiteListSH收到业务标识。
步骤1005,WhiteListSH确定该业务标识在保活白名单内。
步骤1006,WhiteListSH向RecvCacheParser发送通知信息。相应地,RecvCacheParser 收到通知信息。
该通知信息用于通知该业务标识在保活白名单内。
由于该业务标识在保活白名单内,因此需要对KAInfo指示的TCP连接进行保活。
步骤1007,RecvCacheParser向KACache发送业务标识和KAInfo。相应地,KACache收到业务标识和KAInfo。
步骤1008,KACache保存业务标识和KAInfo的映射关系,并设定超时时间。
当终端设备与对端设备之间的TCP连接保持正常连接时,该终端设备的BLE扫描模块可以周期性地获取到该TCP连接对应的KAMsg,从而KACache可以周期性地获取到该TCP连接对应的业务标识和KAInfo,只要KACache本次获取到该TCP连接对应的业务标识和KAInfo与上次获取到该TCP连接对应的业务标识和KAInfo的时间间隔没有超过预设的超时时间,则表明该TCP连接有效,可以继续保活,不需要释放该TCP连接。如果KACache本次获取到该TCP连接对应的业务标识和KAInfo与上次获取到该TCP连接对应的业务标识和 KAInfo的时间间隔超过了预设的超时时间,或者是KAInfo在上次获取到业务标识和KAInfo 之后的设定时长内没有获取到业务标识和KAInfo,则表明该TCP连接失效,不需要继续保活,因而需要释放该TCP连接。
作为示例,针对TCP连接1,该TCP连接1对应业务标识-1和KAInfo-1。KACache在 T1时刻收到业务标识-1和KAInfo-1,然后在T2时刻收到业务标识-1和KAInfo-1,若T2 与T1的差值不大于预设的超时时长,则KACache不通知KeepAliveService释放该TCP连接1。接着,KACache在T3时刻收到业务标识-1和KAInfo-1,若T3与T2的差值大于预设的超时时长,则KACache通知KeepAliveService释放该TCP连接1。或者,KACache在T2 时刻之后的超时时长内始终没有收到业务标识-1和KAInfo-1,则KACache也通知 KeepAliveService释放该TCP连接1。
步骤1009,RecvCacheParser通过BLE广播模块发送KAMsg Ack。
具体的,KACache本次获取到该TCP连接对应的业务标识和KAInfo与上次获取到该TCP 连接对应的业务标识和KAInfo的时间间隔没有超过预设的超时时间,则RecvCacheParser 通过BLE广播模块发送KAMsg Ack,该KAMsg Ack用于通知对端设备:该KAMsg对应的TCP 连接保活成功。
基于上述方案,对白名单业务,通过终端设备的BLE扫描模块,实现对白名单业务进行低功耗的TCP保活,可以减少释放和重建TCP连接带来的开销。
如图11所示,为本申请实施例提供的WLAN物理层断开后业务不保活流程示意图,该方案所针对的场景是:与终端设备保持连接的对端设备离开了该终端设备,导致该终端设备与该对端设备之间的WLAN物理层的连接断开,且蓝牙连接也断开,从而该终端设备的BLE 扫描模块无法扫描到对端设备发送的KAMsg,进而触发释放该终端设备与该对端设备之间的所有TCP连接。
该方法包括以下步骤:
步骤1101,InProcessNetworkStack向AP的Wrapper发送通知信息。相应地,Wrapper 收到通知信息。
InProcessNetworkStack确定终端设备与对端设备之间的WLAN物理层连接已经断开,则向AP的Wrapper发送通知信息,该通知信息用于通知WLAN物理层连接已经断开。
步骤1102,Wrapper获取到包名称(package name)。
比如,InProcessNetworkStack调用Wrapper,从而触发Wrapper获取到所有的包名称。
一个package name唯一标识一个应用,一个应用包含一个或多个业务,每个业务可以有一个业务标识(service id)。
步骤1103,Wrapper向WhiteList发送包名称。相应地,WhiteList收到包名称。
步骤1104,WhiteList确定该包名称在保活白名单内,获取到包名称对应的业务标识 (service id)。
步骤1105,WhiteList向Wrapper发送业务标识。相应地,Wrapper收到业务标识。
由于该包名称在保活白名单内,因此对KAInfo指示的TCP连接进行保活。
其中,该业务标识对应的业务中的TCP连接是需要进行TCP连接保活的。但由于TCP连接保活是双向的,也即只有当该TCP连接的对端设备也需要对该TCP连接进行保活时,该终端设备才会该TCP连接进行保活。因此还需要执行以下步骤1106。
步骤1106,Wrapper向SensorHub的KACache发送getKAInfosById。相应地,KACache收到getKAInfosById。
该getKAInfosById携带业务标识,用于请求获取业务标识对应的KAInfo。
步骤1107,KACache确定KACache中没有业务标识对应的KAInfo。
该实施例针对的是对端设备离开了该终端设备的应用场景,因此终端设备与该对端设备之间的WLAN物理层连接断开且蓝牙连接也断开了,因此KACache将会接收业务标识和KAInfo超时,从而KACache会清除业务标识和KAInfo。
步骤1108,KACache向Wrapper发送通知信息。相应地,Wrapper收到通知信息。
该通知信息用于通知没有找到业务标识对应的KAInfo。
步骤1109,Wrapper向KAMap发送业务标识和指示信息。相应地,KAMap收到业务标识和指示信息。
Wrapper根据该业务标识,向KAMap请求获取该业务标识对应的skfd,以及,根据该通知信息生成该指示信息,该指示信息用于指示释放该skfd对应的TCP连接。
步骤1110,KAMap获取业务标识对应的skfd。
其中,获取到的skfd可以是该业务标识对应的所有skfd或者部分skfd。
步骤1111,KAMap向InProcessNetworkStack发送skfd和指示信息。相应地,InProcessNetworkStack收到skfd和指示信息。
该步骤1111的指示信息可以与上述步骤1109的指示信息相同,或者是根据步骤1109 的指示信息生成的。该指示信息用于指示释放该skfd对应的TCP连接。
步骤1112,InProcessNetworkStack根据指示信息,释放skfd对应的TCP连接。
基于上述方案,当与终端设备保持连接的对端设备远离了该终端设备,导致该终端设备与对端设备之间的WLAN物理层连接断开且蓝牙连接断开后,则触发终端设备释放所有TCP 连接,从而节约信令开销。
如图12所示,为本申请实施例提供的WLAN物理层断开后业务保活流程示意图,该方案所针对的场景是:终端设备与对端设备之间的WLAN物理层的连接断开,但蓝牙连接没有断开,该终端设备的BLE扫描模块能够扫描到该对端设备发送的KAMsg,因此不需要释放该终端设备与该对端设备之间的TCP连接,也即对TCP连接进行保活。
该方法包括以下步骤:
步骤1201,InProcessNetworkStack向AP的Wrapper发送通知信息。相应地,Wrapper 收到通知信息。
InProcessNetworkStack确定终端设备与对端设备之间的WLAN物理层连接已经断开,则向AP的Wrapper发送通知信息,该通知信息用于通知WLAN物理层连接已经断开。
步骤1202,Wrapper获取到包名称(package name)。
比如,InProcessNetworkStack调用Wrapper,从而触发Wrapper获取到所有的包名称。
一个package name唯一标识一个应用,一个应用包含一个或多个业务,每个业务可以有一个业务标识(service id)。
步骤1203,Wrapper向WhiteList发送包名称。相应地,WhiteList收到包名称。
步骤1204,WhiteList确定该包名称在保活白名单内,获取到包名称对应的业务标识 (service id)。
步骤1205,WhiteList向Wrapper发送业务标识。相应地,Wrapper收到业务标识。
由于该包名称在保活白名单内,因此对KAInfo指示的TCP连接进行保活。
其中,该业务标识对应的业务中的TCP连接是需要进行TCP连接保活的。但由于TCP连接保活是双向的,也即只有当该TCP连接的对端设备也需要对该TCP连接进行保活时,该终端设备才会该TCP连接进行保活。因此还需要执行以下步骤1206。
步骤1206,Wrapper向SensorHub的KACache发送getKAInfosById。相应地,KACache收到getKAInfosById。
该getKAInfosById携带业务标识,用于请求获取业务标识对应的KAInfo。
步骤1207,KACache获取业务标识对应的KAInfo。
该实施例针对的终端设备与该对端设备之间的WLAN物理层连接断开,但蓝牙连接没有断开,KACache可以接收到对端设备通过BLE广播发送的业务标识和KAInfo,也即KACache 对业务标识和KAInfo的接收不会超时,因而KACache不会清除业务标识和KAInfo,也即 KACache中存储有业务标识和KAInfo。
步骤1208,KACache向Wrapper发送KAInfo。相应地,Wrapper收到KAInfo。
其中,KACache向Wrapper发送的KAInfo,可以是业务标识对应的所有KAInfo或部分 KAInfo。
步骤1209,Wrapper向KAMap发送KAInfo和指示信息。相应地,KAMap收到KAInfo和指示信息。
Wrapper根据该KAInfo,向KAMap请求获取该KAInfo对应的skfd,以及,根据该KAInfo 生成指示信息,该指示信息用于指示不释放该skfd对应的TCP连接。
步骤1210,KAMap获取KAInfo对应的skfd。
步骤1211,KAMap向InProcessNetworkStack发送skfd和指示信息。相应地,InProcessNetworkStack收到skfd和指示信息。
该步骤1211的指示信息可以与上述步骤1209的指示信息相同,或者是根据步骤1209 的指示信息生成的。该指示信息用于指示不释放该skfd对应的TCP连接。步骤1212,InProcessNetworkStack根据指示信息,确定不释放skfd对应的TCP连接。
基于上述方案,当终端设备与对端设备之间的WLAN物理层连接断开但蓝牙连接未断开时,则终端设备与对端设备之间可以对白名单业务进行低功耗的TCP保活,可以减少释放和重建TCP连接带来的开销。
如图13所示,为本申请实施例提供的终端设备灭屏休眠后业务不保活流程示意图,该方案所针对的场景是:终端设备进入灭屏休眠状态后,与终端设备保持连接的对端设备离开了该终端设备,导致该终端设备与该对端设备之间的蓝牙连接断开,从而该终端设备的 BLE扫描模块无法扫描到对端设备发送的KAMsg,进而触发释放该终端设备与该对端设备之间的所有TCP连接。
该方法包括以下步骤:
步骤1301,KACache向Notify发送指示信息。相应地,Notify收到指示信息。
该指示信息用于指示BLE物理层链路不可用。这里的BLE物理层链路不可用,比如可以是该终端设备与对端设备之间的蓝牙连接断开。
该指示信息携带KAInfo,该KAInfo为接收超时的KAInfo。
需要说明的是,该实施例中,SensorHub的BLE扫描模块长时间无法扫描到对端设备广播发送的KAInfo,导致KACache接收KAInfo超时,从而KACache通过SensorHub的其它模块唤醒AP,然后SensorHub的KACache向AP的通知模块(Notify)发送指示信息,用于告知AP:终端设备与对端设备的BLE物理层链路不可用。
作为一种实现方法,该指示信息可以是BLE断链事件(onDisconnect)。
步骤1302,Notify向KAMap发送KAInfo。相应地,KAMap收到KAInfo。
步骤1303.KAMap获取KAInfo对应的skfd。
步骤1304,KAMap向Notify发送skfd。相应地,Notify收到skfd。
步骤1305,Notify向KAMap发送通知信息。相应地,KAMap收到通知信息。
该通知信息携带skfd,该通知信息用于指示释放该sdfd对应的TCP连接。
基于上述方案,当与终端设备保持连接的对端设备远离了该终端设备,导致该终端设备与对端设备之间的BLE物理层连接不可用后,则触发终端设备释放所有TCP连接,从而节约信令开销。
如图14所示,为本申请实施例提供的确定TCP连接保活成功流程示意图,包括以下步骤:
步骤1401,SensorHub的BLE扫描模块向处理模块(Processor)发送KAMsg Ack。相应地,Processor收到KAMsg Ack。
BLE扫描模块收到对端设备发送的KAMsg Ack后,向Processor发送扫描到的KAMsgAck。
步骤1402,Processor向第二解析模块(RecvAckParser)发送KAMsg Ack。相应地,RecvAckParser收到KAMsg Ack。
步骤1403,RecvAckParser确定KAMsg Ack对应的TCP连接保活成功。
由于收到对端设备发送的针对KAMsg的确认应答,因此确定TCP连接保活成功,则不需要删除Processor中存储的该KAMsg Ack对应的KAMsg。
基于上述方案,通过BLE广播扫描模块收到对端设备发送的KAMsg Ack,从而使得RecvAckParser可以确定TCP连接保活成功,实现低功耗的TCP连接保活功能。
如图15所示,为本申请实施例提供的确定TCP连接保活失败流程示意图,包括以下步骤:
步骤1501,第二解析模块(RecvAckParser)确定连续发送N个KAMsg都未收到对端设备回复的KAMsg Ack。
当RecvAckParser确定连续发送N个KAMsg都未收到对端设备回复的KAMsg Ack,则确定该KAMsg Ack对应的TCP连接保活失败。
步骤1502,RecvAckParser向处理模块(Processor)发送删除KAMsg指示。相应地,Processor收到删除KAMsg指示。
该删除KAMsg指示用于指示删除KAMsg。也即,删除KAMsg Ack对应的KAMsg。
步骤1503,Processor删除KAMsg。
后续,Processor不再通知BLE广播模块向对端设备广播发送该KAMsg。
步骤1504,Processor向Notify发送指示信息。相应地,Notify收到指示信息。
该指示信息用于指示TCP连接保活失败。后续,Notify可以通过通知AP删除或释放该 TCP连接。
作为一种实现方法,该指示信息可以是断链事件(onDisconnect)。
基于上述方案,通过BLE广播扫描模块可以确定TCP连接保活失败,则删除KAMsg,后续不再广播发送该KAMsg,有助于降低TCP连接保活的开销。
综上,本申请上述各实施例中,当WLAN物理层断开或终端设备灭屏休眠,但蓝牙连接没有断开时,则不直接销毁TCP连接,而是通过SensorHub的BLE广播模块和BLE扫描模块进行低功耗的TCP连接保活,在规定的超时时间内,如果WLAN物理层恢复建链或终端设备亮屏唤醒,则无需重新建立TCP连接和业务连接。通过SensorHub中的BLE扫描和BLE 广播机制,在SensorHub处缓存TCP保活包,在SensorHub侧实现TCP连接保活,无需唤醒AP,当设备离网时,TCP保活包失效,再唤醒AP并销毁对应的TCP连接。相对于现有技术,既满足了高性能(物理层连接恢复/终端设备亮屏唤醒后,无需花费大量时间建立TCP 连接和业务连接),又满足了低功耗(SensorHub发送TCP保活包,无需唤醒AP)。
如图16所示,为本申请实施例提供的TCP连接保活消息或TCP连接保活Ack消息的结构的示例图。一个TCP连接保活消息或TCP连接保活Ack消息中可以包含一个或多个业务的TCP连接保活信息。一个业务下可以包含一个或多个TCP连接。
BLE前导码(Preamble):BLE扫描模块的过滤器可以根据BLE前导码过滤掉不感兴趣的BLE广播信号。
设备标识(device id):每台终端设备的唯一标识。
消息类型(Type):比如,Type=0则是TCP连接保活消息,Type=1则是TCP连接保活Ack消息。
业务标识(service id):每个业务的唯一标识。
计数(count):指示一个业务下需要保活的TCP连接数量。
四元组信息:四元组信息用于唯一标识一个TCP连接,四元组信息包含源IP(Source IP),目的IP(Destination IP),源端口(Source Port)和目的端口(DestinationPort)。
如图17所示,为本申请实施例提供的一种TCP保活方法示意图,该方法由第一设备或第一设备的芯片执行,以下第一设备执行该方法为例进行说明。
该方法包括以下步骤:
步骤1701,第一设备获取第一TCP连接的标识和第一业务的标识。
可选的,还获取第一TCP连接对应的文件描述信息。
该第一TCP连接为第一设备与第二设备之间对应第一业务的连接。
步骤1702,第一设备确定第一TCP连接对应的第一业务是白名单业务,则根据第一业务的标识和第一TCP连接的标识,得到第一TCP连接保活消息。
可选的,第一设备还保存第一TCP连接的标识与文件描述信息之间的映射关系,以及保存第一业务的标识与文件描述信息之间的映射关系。
步骤1703,第一设备通过蓝牙方式广播发送第一TCP连接保活消息。
基于上述方案,当第一设备的WLAN物理层链路断开或灭屏休眠时,第一设备不销毁该第一设备内的白名单业务,而是生成白名单业务的TCP连接保活消息,然后通过蓝牙方式广播发送TCP连接保活消息,从而可以实现对白名单业务进行TCP连接保活,无需对业务的TCP连接频繁执行销毁及重建操作,可以减少设备开销。并且是通过蓝牙方式广播发送TCP连接保活消息,功耗比较低,从而实现了低功耗TCP连接保活。
作为一种实现方法,当第一设备确定第一设备与第二设备之间的WLAN物理层链路断开、且确定未在超时时间内从第二设备收到第二TCP连接保活消息,则释放第一业务的TCP连接,第二TCP连接保活消息携带第一业务的标识和第一TCP连接的标识。也即,TCP连接保活是双向的,针对第一业务,第一设备可以向第二设备广播发送第一TCP连接保活消息,同时第二设备也向第一设备广播发送第二TCP连接保活消息,当第一设备确定未在超时时间内从第二设备收到第二TCP连接保活消息,则确定该第一业务对应的TCP连接保活失败,因而释放第一业务的TCP连接。当第一设备确定第一设备与第二设备之间的WLAN物理层链路断开、且确定在超时时间内从第二设备收到第二TCP连接保活消息,则确定不释放第一TCP连接。如此,可以降低设备的开销。
可选的,第一设备可以通过蓝牙方式接收广播消息,该广播消息携带第二TCP连接保活消息。当第一设备确定第二TCP连接保活消息携带的业务标识是所述第一业务的标识且携带的TCP连接的标识是所述第一TCP连接的标识,则保存第一业务的标识与第一TCP连接的标识之间的映射关系,并设定超时时间;其中,当未在超时时间内再次收到第二TCP 连接保活消息,则删除映射关系,当在超时时间内再次收到第二TCP连接保活消息,则不删除映射关系。当第一设备确定第一业务不是白名单业务,则丢弃第二TCP连接保活消息。
可选的,第一设备可以通过蓝牙方式接收广播消息,广播消息携带第三TCP连接保活消息,第三TCP连接保活消息携带第二业务的标识和第二TCP连接的标识。当第一设备确定第二业务不是白名单业务,则丢弃第三TCP连接保活消息。
作为一种实现方法,第一设备确定收到针对第一TCP连接保活消息的应答消息,则不通知所述应用处理器释放所述第一TCP连接,也即确定第一TCP连接保活成功。或者第一设备确定连续发送的N个所述第一TCP连接保活消息均未收到对应的应答消息,则通知所述应用处理器释放所述第一TCP连接,也即确定第一TCP连接保活失败,其中,N为正整数。
如图18所示,为本申请实施例提供的一种TCP保活方法,该方法由第一设备的应用处理器AP和协处理器SensorHub执行。
该方法包括以下步骤:
步骤1801,应用处理器获取第一TCP连接的标识和第一业务的标识,该第一TCP连接为第一设备与第二设备之间的对应第一业务的连接。
步骤1802,应用处理器确定TCP连接对应的第一业务是白名单业务,则向协处理器发送第一请求。相应地,协处理器收到该第一请求。
该第一请求携带第一业务的标识和第一TCP连接的标识,第一请求用于请求对该第一业务的第一TCP连接进行保活。
可选的,应用处理器还确定第一TCP连接对应的文件描述信息。
可选的,应用处理器保存第一TCP连接的标识与文件描述信息之间的映射关系,以及,保存第一业务的标识与文件描述信息之间的映射关系。
步骤1803,协处理器根据第一业务的标识和第一TCP连接的标识,得到第一TCP连接保活消息。
其中,第一TCP连接保活消息携带第一业务的标识和第一TCP连接的标识。
步骤1804,协处理器通过蓝牙方式广播发送第一TCP连接保活消息。
基于上述方案,当第一设备的WLAN物理层链路断开或灭屏休眠时,第一设备不销毁该第一设备内的白名单业务,而是生成白名单业务的TCP连接保活消息,然后通过蓝牙方式广播发送TCP连接保活消息,从而可以实现对白名单业务进行TCP连接保活,无需对业务的TCP连接频繁执行销毁及重建操作,可以减少设备开销。并且是通过蓝牙方式广播发送TCP连接保活消息,功耗比较低,从而实现了低功耗TCP连接保活。
作为一种实现方法,当应用处理器确定第一设备与第二设备之间的WLAN物理层链路断开,则向协处理器发送第二请求,该第二请求携带第一业务的标识,第二请求用于请求获取第一业务的标识对应的第一TCP连接的标识。若协处理器向应用处理器发送通知信息,该通知信息用于通知未找到第一业务的标识对应的第一TCP连接的标识,则应用处理器释放第一业务的第一TCP连接。若协处理器向应用处理器发送第一业务的标识对应的第一TCP连接的标识,则应用处理器确定不释放第一业务的第一TCP连接。
作为一种实现方法,协处理器确定应用处理器处于休眠状态、且未在超时时间内接收到第二TCP连接保活消息,则唤醒该应用处理器,然后向应用处理器发送指示信息,该指示信息携带第一TCP连接的标识,该指示信息用于通知第一设备与第二设备之间的物理层链路断开。当应用处理器从协处理器收到指示信息,则应用处理器释放该第一TCP连接。
作为一种实现方法,协处理器可以通过蓝牙方式接收广播消息,该广播消息携带第二 TCP连接保活消息,若协处理器确定第二TCP连接保活消息携带的业务标识是所述第一业务的标识且携带的TCP连接的标识是所述第一TCP连接的标识,则保存第一业务的标识与第一TCP连接的标识之间的映射关系,并设定超时时间。其中,当未在超时时间内再次收到第二TCP连接保活消息,则删除该映射关系,当在超时时间内再次收到第二TCP连接保活消息,则不删除该映射关系。也即,协处理器可以判断该第一业务是否需要保活,若需要保活则保存该映射关系。
作为一种实现方法,协处理器可以通过蓝牙方式接收广播消息,该广播消息携带第三 TCP连接保活消息,该第三TCP连接保活消息携带第二业务的标识和第二TCP连接的标识,若协处理器确定第二业务不是白名单业务,则丢弃第三TCP连接保活消息。也即,协处理器只对白名单业务对应的TCP连接进行保活。
作为一种实现方法,协处理器确定收到针对第一TCP连接保活消息的应答消息,则不通知所述应用处理器释放所述第一TCP连接,也即确定第一TCP连接保活成功,或者确定连续发送的N个第一TCP连接保活消息均未收到对应的应答消息,则通知所述应用处理器释放所述第一TCP连接,也即确定第一TCP连接保活失败,其中,N为正整数。
本申请实施例中,终端设备是一种具有无线收发功能的设备,可以部署在陆地上,包括室内或室外、手持或车载;也可以部署在水面上(如轮船等);还可以部署在空中(例如飞机、气球和卫星上等)。终端设备还包括用户设备(user equipment,UE)。示例性地,终端设备可以是手机(mobile phone)、平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtual reality,VR)终端、增强现实(augmented reality,AR)终端、工业控制(industrial control)中的无线终端、无人驾驶(self driving)中的无线终端、远程医疗(remote medical)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等。
以终端设备是手机为例,图19示出了手机1900的结构示意图。手机1900可以包括处理器1910,外部存储器接口1920,内部存储器1921,USB接口1930,充电管理模块1940,电源管理模块1941,电池1942,天线1,天线2,移动通信模块1951,无线通信模块1952,音频模块1970,扬声器1970A,受话器1970B,麦克风1970C,耳机接口1970D,传感器模块1980,按键1990,马达1991,指示器1992,摄像头1993,显示屏1994,以及SIM卡接口1995等。其中传感器模块1980可以包括陀螺仪传感器1980A,加速度传感器1980B,接近光传感器1980G、指纹传感器1980H,触摸传感器1980K(当然,手机1900还可以包括其它传感器,比如温度传感器,压力传感器、距离传感器、磁传感器、环境光传感器、气压传感器、骨传导传感器等,图中未示出)。
可以理解的是,本发明实施例示意的结构并不构成对手机1900的具体限定。在本申请另一些实施例中,手机1900可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器1910可以包括一个或多个处理单元,例如:处理器1910可以包括应用处理器 (application processor,AP),调制解调处理器,图形处理器(graphics processingunit, GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(Neural-network Processing Unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。其中,控制器可以是手机1900的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器1910中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器1910 中的存储器为高速缓冲存储器。该存储器可以保存处理器1910刚用过或循环使用的指令或数据。如果处理器1910需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器1910的等待时间,因而提高了系统的效率。
处理器1910可以运行本申请实施例提供的音频输出方法,以便于降低用户的操作复杂度、提高终端设备的智能化程度,提升用户的体验。处理器1910可以包括不同的器件,比如集成CPU和GPU时,CPU和GPU可以配合执行本申请实施例提供的音频输出方法,比如音频输出方法中部分算法由CPU执行,另一部分算法由GPU执行,以得到较快的处理效率。
显示屏1994用于显示图像,视频等。显示屏1994包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode, FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,手机1900可以包括1个或N个显示屏1994,N为大于1的正整数。显示屏1994可用于显示由用户输入的信息或提供给用户的信息以及各种图形用户界面(graphical user interface,GUI)。例如,显示屏1994可以显示照片、视频、网页、或者文件等。再例如,显示屏1994可以显示图形用户界面。其中,图形用户界面上包括状态栏、可隐藏的导航栏、时间和天气小组件(widget)、以及应用的图标,例如浏览器图标等。状态栏中包括运营商名称(例如中国移动)、移动网络(例如4G)、时间和剩余电量。导航栏中包括后退(back)键图标、主屏幕(home)键图标和前进键图标。此外,可以理解的是,在一些实施例中,状态栏中还可以包括蓝牙图标、Wi-Fi图标、外接设备图标等。还可以理解的是,在另一些实施例中,图形用户界面中还可以包括Dock栏,Dock栏中可以包括常用的应用图标等。当处理器1910检测到用户的手指(或触控笔等)针对某一应用图标的触摸事件后,响应于该触摸事件,打开与该应用图标对应的应用的用户界面,并在显示屏1994上显示该应用的用户界面。
在本申请实施例中,显示屏1994可以是一个一体的柔性显示屏,也可以采用两个刚性屏以及位于两个刚性屏之间的一个柔性屏组成的拼接显示屏。当处理器1910运行本申请实施例提供的音频输出方法后,处理器1910可以控制外接的音频输出设备切换输出的音频信号。
摄像头1993(前置摄像头或者后置摄像头,或者一个摄像头既可作为前置摄像头,也可作为后置摄像头)用于捕获静态图像或视频。通常,摄像头1993可以包括感光元件比如镜头组和图像传感器,其中,镜头组包括多个透镜(凸透镜或凹透镜),用于采集待拍摄物体反射的光信号,并将采集的光信号传递给图像传感器。图像传感器根据所述光信号生成待拍摄物体的原始图像。
内部存储器1921可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器1910通过运行存储在内部存储器1921的指令,从而执行手机1900的各种功能应用以及数据处理。内部存储器1921可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,应用程序(比如相机应用,微信应用等)的代码等。存储数据区可存储手机1900使用过程中所创建的数据(比如相机应用采集的图像、视频等)等。
内部存储器1921还可以存储本申请实施例提供的音频输出算法对应的一个或多个计算机程序。该一个或多个计算机程序被存储在上述存储器1921中并被配置为被该一个或多个处理器1910执行,该一个或多个计算机程序包括指令,上述指令可以用于执行如图6至图 13相应实施例中的各个步骤,该计算机程序可以包括帐号验证模块19211、优先级比较模块19212。其中,帐号验证模块19211,用于对局域网内的其它终端设备的系统认证帐号进行认证;优先级比较模块19212,可用于比较音频输出请求业务的优先级和音频输出设备当前输出业务的优先级。状态同步模块19213,可用于将终端设备当前接入的音频输出设备的设备状态同步至其它终端设备,或者将对端设备当前接入的音频输出设备的设备状态同步至本地。当内部存储器1921中存储的音频输出算法的代码被处理器1910运行时,处理器1910可以控制音频输出设备切换输出的音频信号。
此外,内部存储器1921可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS) 等。
当然,本申请实施例提供的音频输出算法的代码还可以存储在外部存储器中。这种情况下,处理器1910可以通过外部存储器接口1920运行存储在外部存储器中的音频输出算法的代码,处理器1910可以控制音频输出设备切换输出的音频信号。
下面介绍传感器模块1980的功能。
陀螺仪传感器1980A,可以用于确定手机1900的运动姿态。在一些实施例中,可以通过陀螺仪传感器1980A确定手机1900围绕三个轴(即,x,y和z轴)的角速度。即陀螺仪传感器1980A可以用于检测手机1900当前的运动状态,比如抖动还是静止。
当本申请实施例中的显示屏为可折叠屏时,陀螺仪传感器1980A可用于检测作用于显示屏1994上的折叠或者展开操作。陀螺仪传感器1980A可以将检测到的折叠操作或者展开操作作为事件上报给处理器1910,以确定显示屏1994的折叠状态或展开状态。
加速度传感器1980B可检测手机1900在各个方向上(一般为三轴)加速度的大小。即陀螺仪传感器1980A可以用于检测手机1900当前的运动状态,比如抖动还是静止。当本申请实施例中的显示屏为可折叠屏时,加速度传感器1980B可用于检测作用于显示屏1994上的折叠或者展开操作。加速度传感器1980B可以将检测到的折叠操作或者展开操作作为事件上报给处理器1910,以确定显示屏1994的折叠状态或展开状态。
接近光传感器1980G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。手机通过发光二极管向外发射红外光。手机使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定手机附近有物体。当检测到不充分的反射光时,手机可以确定手机附近没有物体。当本申请实施例中的显示屏为可折叠屏时,接近光传感器1980G可以设置在可折叠的显示屏1994的第一屏上,接近光传感器1980G可根据红外信号的光程差来检测第一屏与第二屏的折叠角度或者展开角度的大小。
陀螺仪传感器1980A(或加速度传感器1980B)可以将检测到的运动状态信息(比如角速度)发送给处理器1910。处理器1910基于运动状态信息确定当前是手持状态还是脚架状态(比如,角速度不为0时,说明手机1900处于手持状态)。
指纹传感器1980H用于采集指纹。手机1900可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
触摸传感器1980K,也称“触控面板”。触摸传感器1980K可以设置于显示屏1994,由触摸传感器1980K与显示屏1994组成触摸屏,也称“触控屏”。触摸传感器1980K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏1994提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器1980K也可以设置于手机1900的表面,与显示屏1994所处的位置不同。
示例性的,手机1900的显示屏1994显示主界面,主界面中包括多个应用(比如相机应用、微信应用等)的图标。用户通过触摸传感器1980K点击主界面中相机应用的图标,触发处理器1910启动相机应用,打开摄像头1993。显示屏1994显示相机应用的界面,例如取景界面。
手机1900的无线通信功能可以通过天线1,天线2,移动通信模块1951,无线通信模块1952,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。手机1900中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块1951可以提供应用在手机1900上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块1951可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块1951可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块1951还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块1951的至少部分功能模块可以被设置于处理器1910中。在一些实施例中,移动通信模块1951的至少部分功能模块可以与处理器1910的至少部分模块被设置在同一个器件中。在本申请实施例中,移动通信模块1951还可以用于与其它终端设备进行信息交互,即向其它终端设备发送音频输出请求,或者移动通信模块1951可用于接收音频输出请求,并将接收的音频输出请求封装成指定格式的消息。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器1970A,受话器1970B等)输出声音信号,或通过显示屏1994显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器1910,与移动通信模块1951或其他功能模块设置在同一个器件中。
无线通信模块1952可以提供应用在手机1900上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth, BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术 (infrared,IR)等无线通信的解决方案。无线通信模块1952可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块1952经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器1910。无线通信模块1952还可以从处理器1910 接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。本申请实施例中,无线通信模块1952,用于与音频输出设备建立连接,通过音频输出设备输出语音信号。或者无线通信模块1952可以用于接入接入点设备,向其它终端设备发送音频输出请求对应的消息,或者接收来自其它终端设备发送的音频输出请求对应的消息。可选地,无线通信模块1952还可以用于接收来自其它终端设备的语音数据。
另外,手机1900可以通过音频模块1970,扬声器1970A,受话器1970B,麦克风1970C,耳机接口1970D,以及应用处理器等实现音频功能。例如音乐播放,录音等。手机1900可以接收按键1990输入,产生与手机1900的用户设置以及功能控制有关的键信号输入。手机1900可以利用马达1991产生振动提示(比如来电振动提示)。手机1900中的指示器1992可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。手机1900中的SIM卡接口1995用于连接SIM卡。SIM卡可以通过插入SIM卡接口 1995,或从SIM卡接口1995拔出,实现和手机1900的接触和分离。
应理解,在实际应用中,手机1900可以包括比图19所示的更多或更少的部件,本申请实施例不作限定。图示手机1900仅是一个范例,并且手机1900可以具有比图中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
参考图20,为本申请实施例提供的一种通信装置示意图。该通信装置用于实现上述各实施例中对应协处理器、或应用处理器、或第一设备的各个步骤,该通信装置2000包括收发单元2010和处理单元2020。
在第一个实施例中,该通信装置用于实现上述各实施例中对应协处理器的各个步骤:
收发单元2010,用于接收第一请求,该第一请求携带第一业务的标识和第一TCP连接的标识,该第一请求用于请求对该第一业务的该第一TCP连接进行保活,该第一TCP连接为第一设备与第二设备之间的连接;通过蓝牙方式广播发送第一TCP连接保活消息。处理单元2020,用于根据该第一业务的标识和该第一TCP连接的标识,得到第一TCP连接保活消息。
作为一种可能的实现方法,收发单元2010,还用于通过蓝牙方式接收广播消息,该广播消息携带第二TCP连接保活消息;处理单元2020,还用于确定该第二TCP连接保活消息携带的业务标识是所述第一业务的标识且携带的TCP连接的标识是所述第一TCP连接的标识,则保存该第一业务的标识与该第一TCP连接的标识之间的映射关系,并设定超时时间。
作为一种可能的实现方法,处理单元2020,还用于确定未在所述超时时间内再次收到所述第二TCP连接保活消息,则删除所述映射关系;或者,确定在所述超时时间内再次收到所述第二TCP连接保活消息,则不删除所述映射关系。
作为一种可能的实现方法,处理单元2020,还用于确定该第一设备的应用处理器处于休眠状态、且未在超时时间内接收到该第二TCP连接保活消息,则唤醒该应用处理器;收发单元2010,还用于向该应用处理器发送指示信息,该指示信息用于通知该第一设备与该第二设备之间的物理层链路断开。
作为一种可能的实现方法,收发单元2010,还用于通过蓝牙方式接收广播消息,该广播消息携带第三TCP连接保活消息,该第三TCP连接保活消息携带第二业务的标识和第二TCP连接的标识;处理单元2020,还用于确定该第二业务不是白名单业务,则丢弃该第三TCP连接保活消息。
作为一种可能的实现方法,处理单元2020,还用于确定收到针对该第一TCP连接保活消息的应答消息,则不通知所述应用处理器释放所述第一TCP连接;或者,确定连续发送的N个第一TCP连接保活消息均未收到对应的应答消息,则通知应用处理器释放所述第一TCP连接。
在第二个实施例中,该通信装置用于实现上述各实施例中对应应用处理器的各个步骤:
收发单元2010,用于获取第一TCP连接的标识和第一业务的标识,该第一TCP连接为第一设备与第二设备之间对应第一业务的连接;在处理单元2020确定该第一TCP连接对应的第一业务是白名单业务,则向该第一设备的协处理器发送第一请求,该第一请求携带该第一业务的标识和该第一TCP连接的标识,该第一请求用于请求对该第一业务的该第一TCP 连接进行保活。处理单元2020,用于确定该第一TCP连接对应的第一业务是白名单业务。
作为一种可能的实现方法,处理单元2020,用于保存该第一TCP连接的标识与该文件描述信息之间的映射关系;以及,保存该第一业务的标识与该文件描述信息之间的映射关系。
作为一种可能的实现方法,处理单元2020,用于确定该第一设备与该第二设备之间的 WLAN物理层链路断开。收发单元2010,用于在处理单元2020确定该第一设备与该第二设备之间的WLAN物理层链路断开,则向该协处理器发送第二请求,该第二请求携带该第一业务的标识,该第二请求用于请求获取该第一业务的标识对应的第一TCP连接的标识;从该协处理器接收通知信息,该通知信息用于通知未找到该第一业务的标识对应的第一TCP连接的标识;释放该第一TCP连接。
作为一种可能的实现方法,处理单元2020,用于确定该第一设备与该第二设备之间的 WLAN物理层链路断开,收发单元2010,用于在处理单元2020确定该第一设备与该第二设备之间的WLAN物理层链路断开,则向该协处理器发送第二请求,该第二请求携带该第一业务的标识,该第二请求用于请求获取该第一业务的标识对应的第一TCP连接的标识;从该协处理器接收该第一业务的标识对应的该第一TCP连接的标识;确定不释放该第一TCP连接。
作为一种可能的实现方法,收发单元2010,用于从该协处理器接收指示信息,该指示信息用于通知该第一设备与该第二设备之间的物理层链路断开,该指示信息携带该第一TCP 连接的标识;处理单元2020,用于释放该第一TCP连接。
在第三个实施例中,该通信装置用于实现上述各实施例中对应第一设备的各个步骤:
收发单元2010,用于获取第一TCP连接的标识和第一业务的标识,该第一TCP连接为第一设备与第二设备之间对应第一业务的连接;通过蓝牙方式广播发送该第一TCP连接保活消息。处理单元2020,用于确定该第一TCP连接对应的第一业务是白名单业务,则根据该第一业务的标识和该第一TCP连接的标识,得到第一TCP连接保活消息。
作为一种可能的实现方法,处理单元2020,用于保存该第一TCP连接的标识与第一业务对应的该文件描述信息之间的映射关系;以及,保存该第一业务的标识与该文件描述信息之间的映射关系。
作为一种可能的实现方法,处理单元2020,用于确定该第一设备与该第二设备之间的 WLAN物理层链路断开、且确定未在超时时间内从该第二设备收到第二TCP连接保活消息,则释放该第一业务的TCP连接,该第二TCP连接保活消息携带该第一业务的标识和该第一 TCP连接的标识。
作为一种可能的实现方法,处理单元2020,用于确定该第一设备与该第二设备之间的 WLAN物理层链路断开、且确定在超时时间内从该第二设备收到第二TCP连接保活消息,则确定不释放该第一TCP连接,该第二TCP连接保活消息携带该第一业务的标识和该第一TCP 连接的标识。
作为一种可能的实现方法,收发单元2010,用于通过蓝牙方式接收广播消息,该广播消息携带第二TCP连接保活消息;处理单元2020,用于确定第二TCP连接保活消息携带的业务标识是所述第一业务的标识且携带的TCP连接的标识是所述第一TCP连接的标识,则保存该第一业务的标识与该第一TCP连接的标识之间的映射关系,并设定超时时间。
作为一种可能的实现方法,处理单元2020,用于确定未在所述超时时间内再次收到所述第二TCP连接保活消息,则删除所述映射关系;或者,确定在所述超时时间内再次收到所述第二TCP连接保活消息,则不删除所述映射关系。
作为一种可能的实现方法,收发单元2010,用于通过蓝牙方式接收广播消息,该广播消息携带第三TCP连接保活消息,该第三TCP连接保活消息携带第二业务的标识和第二TCP 连接的标识;处理单元2020,用于确定该第二业务不是白名单业务,则丢弃该第三TCP连接保活消息。
作为一种可能的实现方法,处理单元2020,用于确定收到针对该第一TCP连接保活消息的应答消息,则不通知所述应用处理器释放所述第一TCP连接,也即确定该第一TCP连接保活成功;或者,确定连续发送的N个第一TCP连接保活消息均未收到对应的应答消息,则通知所述应用处理器释放所述第一TCP连接,也即确定该第一TCP连接保活失败,其中, N为正整数。
可选地,上述通信装置还可以包括存储单元,该存储单元用于存储数据或者指令(也可以称为代码或者程序),上述各个单元可以和存储单元交互或者耦合,以实现对应的方法或者功能。例如,处理单元2020可以读取存储单元中的数据或者指令,使得通信装置实现上述实施例中的方法。
应理解以上通信装置中单元的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且通信装置中的单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元以软件通过处理元件调用的形式实现,部分单元以硬件的形式实现。例如,各个单元可以为单独设立的处理元件,也可以集成在通信装置的某一个芯片中实现,此外,也可以以程序的形式存储于存储器中,由通信装置的某一个处理元件调用并执行该单元的功能。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件又可以成为处理器,可以是一种具有信号的处理能力的集成电路。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路实现或者以软件通过处理元件调用的形式实现。
在一个例子中,以上任一通信装置中的单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(application specific integratedcircuit, ASIC),或,一个或多个微处理器(digital singnal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA),或这些集成电路形式中至少两种的组合。再如,当通信装置中的单元可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如中央处理器(central processing unit,CPU)或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统(system-on-a-chip,SOC)的形式实现。
图21提供了一种终端设备的结构示意图。为了便于说明,图21仅示出了终端设备的主要部件。如图21所示,终端设备2100包括处理器、存储器、控制电路、天线以及输入输出装置。处理器主要用于对通信协议以及通信数据进行处理,以及对整个终端进行控制,执行软件程序,处理软件程序的数据。存储器主要用于存储软件程序和数据。控制电路主要用于基带信号与射频信号的转换以及对射频信号的处理。天线主要用于收发电磁波形式的射频信号。输入输出装置,例如触摸屏、显示屏,键盘等主要用于接收用户输入的数据以及对用户输出数据。
当终端设备开机后,处理器可以读取存储单元中的软件程序,解析并执行软件程序的指令,处理软件程序的数据。当需要通过无线发送数据时,处理器对待发送的数据进行基带处理后,输出基带信号至控制电路,控制电路将基带信号进行处理后得到射频信号并将射频信号通过天线以电磁波的形式向外发送。当有数据发送到终端设备时,控制电路通过天线接收到射频信号,该射频信号被进一步转换为基带信号,并将基带信号输出至处理器,处理器将基带信号转换为数据并对该数据进行处理。
为了便于说明,图21仅示出了一个存储器和处理器。在实际的终端设备中,可以存在多个处理器和存储器。存储器也可以称为存储介质或者存储设备等,本发明实施例对此不做限制。
作为一种可选的实现方式,处理器可以包括基带处理器和中央处理器,基带处理器主要用于对通信协议以及通信数据进行处理,中央处理器主要用于对整个终端设备进行控制,执行软件程序,处理软件程序的数据。图21中的处理器集成了基带处理器和中央处理器的功能,本领域技术人员可以理解,基带处理器和中央处理器也可以是各自独立的处理器,通过总线等技术互联。本领域技术人员可以理解,终端设备可以包括多个基带处理器以适应不同的网络制式,终端设备可以包括多个中央处理器以增强其处理能力,终端设备的各个部件可以通过各种总线连接。所述基带处理器也可以表述为基带处理电路或者基带处理芯片。所述中央处理器也可以表述为中央处理电路或者中央处理芯片。对通信协议以及通信数据进行处理的功能可以内置在处理器中,也可以以软件程序的形式存储在存储单元中,由处理器执行软件程序以实现基带处理功能。
在一个例子中,可以将具有收发功能的天线和控制电路视为终端设备2100的收发单元 2111,将具有处理功能的处理器视为终端设备2100的处理单元2112。如图21所示,终端设备2100包括收发单元2111和处理单元2112。收发单元也可以称为收发器、收发机、收发装置等。可选的,可以将收发单元2111中用于实现接收功能的器件视为接收单元,将收发单元2111中用于实现发送功能的器件视为发送单元,即收发单元2111包括接收单元和发送单元。示例性的,接收单元也可以称为接收机、接收器、接收电路等,发送单元可以称为发射机、发射器或者发射电路等。可选的,上述接收单元和发送单元可以是集成在一起的一个单元,也可以是各自独立的多个单元。上述接收单元和发送单元可以在一个地理位置,也可以分散在多个地理位置。
本领域普通技术人员可以理解:本申请中涉及的第一、第二等各种数字编号仅为描述方便进行的区分,并不用来限制本申请实施例的范围,也表示先后顺序。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。“至少一个”是指一个或者多个。至少两个是指两个或者多个。“至少一个”、“任意一个”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个、种),可以表示:a,b,c,a-b,a-c,b-c,或 a-b-c,其中a,b,c可以是单个,也可以是多个。“多个”是指两个或两个以上,其它量词与之类似。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质 (例如固态硬盘(solid state disk,SSD))等。
本申请实施例中所描述的各种说明性的逻辑单元和电路可以通过通用处理器,数字信号处理器,专用集成电路(ASIC),现场可编程门阵列(FPGA)或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
本申请实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件单元、或者这两者的结合。软件单元可以存储于随机存取存储器(Random AccessMemory, RAM)、闪存、只读存储器(Read-Only Memory,ROM)、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动磁盘、CD-ROM或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于ASIC 中。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个或多个示例性的设计中,本申请所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于RAM、 ROM、EEPROM、CD-ROM或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电脑、双绞线、数字用户线(DSL)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、数字通用光盘(英文:Digital Versatile Disc,简称:DVD)、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述的具体实施方式,对本申请的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本申请的具体实施方式而已,并不用于限定本申请的保护范围,凡在本申请的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本申请的保护范围之内。本申请说明书的上述描述可以使得本领域技术任何可以利用或实现本申请的内容,任何基于所公开内容的修改都应该被认为是本领域显而易见的,本申请所描述的基本原则可以应用到其它变形中而不偏离本申请的发明本质和范围。因此,本申请所公开的内容不仅仅局限于所描述的实施例和设计,还可以扩展到与本申请原则和所公开的新特征一致的最大范围。
尽管结合具体特征及其实施例对本申请进行了描述,显而易见的,在不脱离本申请的精神和范围的情况下,可对其进行各种修改和组合。相应地,本说明书和附图仅仅是所附权利要求所界定的本申请的示例性说明,且视为已覆盖本申请范围内的任意和所有修改、变化、组合或等同物。显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包括这些改动和变型在内。

Claims (28)

1.一种传输控制协议TCP保活方法,应用于第一设备,所述第一设备包括协处理器和应用处理器,其特征在于,包括:
所述应用处理器确定第一业务是白名单业务,向所述协处理器发送第一请求,所述第一请求携带所述第一业务的标识和第一TCP连接的标识,所述第一请求用于请求对所述第一业务对应的所述第一TCP连接进行保活,所述第一TCP连接为所述第一设备与第二设备之间的对应所述第一业务的连接;
所述协处理器接收来自所述应用处理器的所述第一请求,并根据所述第一业务的标识和所述第一TCP连接的标识,得到第一TCP连接保活消息;
所述协处理器通过蓝牙方式广播发送所述第一TCP连接保活消息。
2.如权利要求1所述的方法,其特征在于,所述第一请求还携带所述第一业务的文件描述信息;所述方法还包括:
所述应用处理器保存所述第一TCP连接的标识与所述第一TCP连接对应的文件描述信息之间的映射关系;以及,
所述应用处理器保存所述第一业务的标识与所述第一TCP连接对应的文件描述信息之间的映射关系。
3.如权利要求1或2所述的方法,其特征在于,还包括:
所述应用处理器确定所述第一设备与所述第二设备之间的WLAN物理层链路断开,则向所述协处理器发送第二请求,所述第二请求携带所述第一业务的标识,所述第二请求用于请求获取所述第一业务的标识对应的所述第一TCP连接的标识;
所述协处理器向所述应用处理器发送通知信息,所述通知信息用于通知未找到所述第一业务的标识对应的所述第一TCP连接的标识;
所述应用处理器释放所述第一TCP连接。
4.如权利要求3所述的方法,其特征在于,还包括:
所述协处理器通过蓝牙方式接收广播消息,所述广播消息携带第二TCP连接保活消息;
所述协处理器确定所述第二TCP连接保活消息携带的业务标识是所述第一业务的标识且携带的TCP连接的标识是所述第一TCP连接的标识,则保存所述第一业务的标识与所述第一TCP连接的标识之间的映射关系,并设定超时时间。
5.如权利要求4所述的方法,其特征在于,还包括:
所述协处理器确定未在所述超时时间内再次收到所述第二TCP连接保活消息,删除所述映射关系;或者,
确定在所述超时时间内再次收到所述第二TCP连接保活消息,则不删除所述映射关系。
6.如权利要求4或5所述的方法,其特征在于,还包括:
所述协处理器确定所述应用处理器处于休眠状态、且未在所述超时时间内接收到所述第二TCP连接保活消息,则唤醒所述应用处理器;
所述协处理器向所述应用处理器发送指示信息,所述指示信息用于通知所述第一设备与所述第二设备之间的物理层链路断开;
所述协处理器释放所述第一TCP连接。
7.如权利要求1或2所述的方法,其特征在于,还包括:
所述应用处理器确定所述第一设备与所述第二设备之间的WLAN物理层链路断开,则向所述协处理器发送第二请求,所述第二请求携带所述第一业务的标识,所述第二请求用于请求获取所述第一业务的标识对应的所述第一TCP连接的标识;
所述协处理器向所述应用处理器发送所述第一业务的标识对应的所述第一TCP连接的标识;
所述应用处理器确定收到所述第一TCP连接的标识,确定不释放所述第一TCP连接。
8.如权利要求1或2所述的方法,其特征在于,还包括:
所述协处理器通过蓝牙方式接收广播消息,所述广播消息携带第三TCP连接保活消息,所述第三TCP连接保活消息携带第二业务的标识和第二TCP连接的标识;
所述协处理器确定所述第二业务不是白名单业务,则丢弃所述第三TCP连接保活消息。
9.如权利要求1-8任一所述的方法,其特征在于,还包括:
所述协处理器确定收到针对所述第一TCP连接保活消息的应答消息,则不通知所述应用处理器释放所述第一TCP连接;或者,
所述协处理器确定连续发送的N个所述第一TCP连接保活消息均未收到对应的应答消息,则通知所述应用处理器释放所述第一TCP连接,其中,N为正整数。
10.如权利要求1-9任一所述的方法,其特征在于,所述应用处理器向所述协处理器发送第一请求之后,还包括:
所述应用处理器进入休眠状态。
11.一种传输控制协议TCP保活方法,应用于第一设备的协处理器,所述协处理器与所述第一设备的应用处理器连接,其特征在于,包括:
接收来自所述应用处理器的第一请求,所述第一请求携带第一业务的标识和第一TCP连接的标识,所述第一请求用于请求对所述第一业务的所述第一TCP连接进行保活,所述第一TCP连接为所述第一设备与第二设备之间的连接;
根据所述第一业务的标识和所述第一TCP连接的标识,得到第一TCP连接保活消息;
通过蓝牙方式广播发送所述第一TCP连接保活消息。
12.如权利要求11所述的方法,其特征在于,还包括:
通过蓝牙方式接收广播消息,所述广播消息携带第二TCP连接保活消息;
确定所述第二TCP连接保活消息携带的业务标识是所述第一业务的标识且携带的TCP连接的标识是所述第一TCP连接的标识,则保存所述第一业务的标识与所述第一TCP连接的标识之间的映射关系,并设定超时时间。
13.如权利要求12所述的方法,其特征在于,还包括:
确定未在所述超时时间内再次收到所述第二TCP连接保活消息,则删除所述映射关系;或者,
确定在所述超时时间内再次收到所述第二TCP连接保活消息,则不删除所述映射关系。
14.如权利要求12或13所述的方法,其特征在于,还包括:
确定所述应用处理器处于休眠状态、且未在超时时间内接收到所述第二TCP连接保活消息,则唤醒所述应用处理器;
向所述应用处理器发送指示信息,所述指示信息用于通知所述第一设备与所述第二设备之间的物理层链路断开。
15.如权利要求11所述的方法,其特征在于,还包括:
通过蓝牙方式接收广播消息,所述广播消息携带第三TCP连接保活消息,所述第三TCP连接保活消息携带第二业务的标识和第二TCP连接的标识;
确定所述第二业务不是白名单业务,则丢弃所述第三TCP连接保活消息。
16.如权利要求11所述的方法,其特征在于,还包括:
确定收到针对所述第一TCP连接保活消息的应答消息,则不通知所述应用处理器释放所述第一TCP连接;或者,
确定连续发送的N个所述第一TCP连接保活消息均未收到对应的应答消息,则通知所述应用处理器释放所述第一TCP连接,其中,N为正整数。
17.一种传输控制协议TCP保活方法,应用于第一设备的应用处理器,所述应用处理器与所述第一设备的协处理器连接,其特征在于,包括:
获取第一TCP连接的标识和第一业务的标识,所述第一TCP连接为所述第一设备与第二设备之间的对应所述第一业务的连接;
确定所述第一业务是白名单业务,则向所述协处理器发送第一请求,所述第一请求携带所述第一业务的标识和所述第一TCP连接的标识,所述第一请求用于请求对所述第一业务的所述第一TCP连接进行保活。
18.如权利要求17所述的方法,其特征在于,所述第一请求还携带所述第一业务的文件描述信息;所述方法还包括:
保存所述第一TCP连接的标识与所述文件描述信息之间的映射关系;以及,
保存所述第一业务的标识与所述文件描述信息之间的映射关系。
19.如权利要求17或18所述的方法,其特征在于,还包括:
确定所述第一设备与所述第二设备之间的WLAN物理层链路断开,则向所述协处理器发送第二请求,所述第二请求携带所述第一业务的标识,所述第二请求用于请求获取所述第一业务的标识对应的第一TCP连接的标识;
从所述协处理器接收通知信息,所述通知信息用于通知未找到所述第一业务的标识对应的第一TCP连接的标识;
释放所述第一TCP连接。
20.如权利要求17或18所述的方法,其特征在于,还包括:
确定所述第一设备与所述第二设备之间的WLAN物理层链路断开,则向所述协处理器发送第二请求,所述第二请求携带所述第一业务的标识,所述第二请求用于请求获取所述第一业务的标识对应的第一TCP连接的标识;
从所述协处理器接收所述第一业务的标识对应的所述第一TCP连接的标识;
确定不释放所述第一TCP连接。
21.如权利要求17或18所述的方法,其特征在于,还包括:
从所述协处理器接收指示信息,所述指示信息用于通知所述第一设备与所述第二设备之间的物理层链路断开,所述指示信息携带所述第一TCP连接的标识;
释放所述第一TCP连接。
22.如权利要求17-21任一所述的方法,其特征在于,所述向所述协处理器发送第一请求之后,还包括:
进入休眠状态。
23.一种通信装置,其特征在于,包括处理器,所述处理器用于执行权利要求1-10任一所述的方法。
24.一种协处理器,其特征在于,用于执行权利要求11-16任一所述的方法。
25.一种应用处理器,其特征在于,用于执行权利要求17-22任一所述的方法。
26.一种通信系统,其特征在于,包括用于执行权利要求11-16任一所述方法的协处理器,和用于执行权利要求17-22任一所述方法的应用处理器。
27.一种包含指令的计算机程序产品,其特征在于,当其在计算机上运行时,使权利要求1-22任一所述的方法被执行。
28.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当所述指令在计算机上运行时,使权利要求1-22任一所述的方法被执行。
CN202011194476.5A 2020-10-30 2020-10-30 一种tcp保活方法、装置及系统 Pending CN114531497A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011194476.5A CN114531497A (zh) 2020-10-30 2020-10-30 一种tcp保活方法、装置及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011194476.5A CN114531497A (zh) 2020-10-30 2020-10-30 一种tcp保活方法、装置及系统

Publications (1)

Publication Number Publication Date
CN114531497A true CN114531497A (zh) 2022-05-24

Family

ID=81619505

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011194476.5A Pending CN114531497A (zh) 2020-10-30 2020-10-30 一种tcp保活方法、装置及系统

Country Status (1)

Country Link
CN (1) CN114531497A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115225690A (zh) * 2022-06-22 2022-10-21 中科驭数(北京)科技有限公司 基于硬件协议栈的tcp长连接保活方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160337333A1 (en) * 2014-03-07 2016-11-17 Mitsubishi Electric Corporation Method and device for classifying tcp connection carrying http traffic
CN107968881A (zh) * 2017-11-22 2018-04-27 珠海市魅族科技有限公司 终端设备广播处理方法及装置、终端设备及存储介质
CN109711152A (zh) * 2018-12-25 2019-05-03 北京潘达互娱科技有限公司 一种应用保活方法、计算设备及存储介质
WO2019119846A1 (zh) * 2017-12-21 2019-06-27 深圳市力科威尔智能科技有限公司 一种低功耗设备、保活服务器、消息推送方法及系统
CN109992310A (zh) * 2019-03-12 2019-07-09 中国平安财产保险股份有限公司 应用程序保活方法、装置、计算机设备和存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160337333A1 (en) * 2014-03-07 2016-11-17 Mitsubishi Electric Corporation Method and device for classifying tcp connection carrying http traffic
CN107968881A (zh) * 2017-11-22 2018-04-27 珠海市魅族科技有限公司 终端设备广播处理方法及装置、终端设备及存储介质
WO2019119846A1 (zh) * 2017-12-21 2019-06-27 深圳市力科威尔智能科技有限公司 一种低功耗设备、保活服务器、消息推送方法及系统
CN109711152A (zh) * 2018-12-25 2019-05-03 北京潘达互娱科技有限公司 一种应用保活方法、计算设备及存储介质
CN109992310A (zh) * 2019-03-12 2019-07-09 中国平安财产保险股份有限公司 应用程序保活方法、装置、计算机设备和存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115225690A (zh) * 2022-06-22 2022-10-21 中科驭数(北京)科技有限公司 基于硬件协议栈的tcp长连接保活方法及装置
CN115225690B (zh) * 2022-06-22 2024-04-19 中科驭数(北京)科技有限公司 基于硬件协议栈的tcp长连接保活方法及装置

Similar Documents

Publication Publication Date Title
WO2021036835A1 (zh) 一种蓝牙搜索方法、系统及相关装置
EP3026944B1 (en) Discovery method and an electronic device thereof
US20210153259A1 (en) Random access method and related device
CN109803347B (zh) 一种业务处理方法及移动通信终端
WO2021115007A1 (zh) 一种网络切换方法及电子设备
WO2021185141A1 (zh) Wi-Fi Aware的建链方法、系统、电子设备和存储介质
WO2021052245A1 (zh) 一种数据收发方法、电子设备与计算机可读存储介质
WO2021043198A1 (zh) 一种蓝牙配对方法及相关装置
WO2021098533A1 (zh) 一种连接建立方法及终端设备
WO2021244087A1 (zh) 长连接装置和网络系统
US20240022518A1 (en) Channel Switching Method, Electronic Device and Storage Medium
US20230209438A1 (en) Data Transmission Method and Electronic Device
CN111610874A (zh) 一种触摸屏的响应方法及电子设备
CN113676339B (zh) 组播方法、装置、终端设备及计算机可读存储介质
CN114531378A (zh) 通信方法、电子设备及计算机可读存储介质
CN114531497A (zh) 一种tcp保活方法、装置及系统
WO2021057503A1 (zh) 一种下载数据包的方法及装置
US20230016351A1 (en) Data transmission method and apparatus
WO2019154183A1 (zh) 注册网络的方法和移动终端
WO2022083546A1 (zh) 中继链路的复用方法、装置、中继设备、通信设备和介质
WO2020221125A1 (zh) 配置信息获取、发送方法、终端及网络侧设备
CN115412999A (zh) 一种设备唤醒方法及电子设备
CN115134404A (zh) 管理推送连接的方法和电子设备
CN110972212B (zh) 一种PC5接口的QoS参数配置方法、设备及系统
US20240244123A1 (en) Data Communication Method and Apparatus

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