首页> 中国专利> 一种WiFi保活方法、WiFi保活装置及WiFi芯片

一种WiFi保活方法、WiFi保活装置及WiFi芯片

摘要

本申请涉及一种WiFi保活方法、WiFi保活装置及WiFi芯片。该方法包括由WiFi芯片交替执行唤醒阶段和睡眠阶段,在WiFi芯片唤醒阶段的情况下,获取主机的状态;在主机进入休眠状态的情况下,执行对目标TCP连接的WiFi保活过程,WiFi保活过程包括:获取伪TCP报文,所述伪TCP报文是通过对主机先前下发的业务数据基于主机与WiFi保活过程相关联的配置信息进行解析而得到的;基于所获取的伪TCP报文生成WiFi保活数据;按照第一预定时间间隔更新WiFi保活数据并向所述目标TCP连接对应的TCP服务器发送基于更新后的WiFi保活数据生成的伪TCP报文;接收来自TCP服务器的数据并滤除响应数据,再发送到主机。能够有效防止该TCP连接被服务器关闭,主机由休眠状态唤醒后,应用软件可以马上恢复使用。

著录项

  • 公开/公告号CN114980365A

    专利类型发明专利

  • 公开/公告日2022-08-30

    原文格式PDF

  • 申请/专利权人 恒玄科技(北京)有限公司;

    申请/专利号CN202210556358.7

  • 发明设计人 陈俊;

    申请日2022-05-20

  • 分类号H04W76/25(2018.01);H04W52/02(2009.01);

  • 代理机构北京金信知识产权代理有限公司 11225;

  • 代理人夏东栋

  • 地址 100080 北京市海淀区彩和坊路11号3层301

  • 入库时间 2023-06-19 16:36:32

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-09-16

    实质审查的生效 IPC(主分类):H04W76/25 专利申请号:2022105563587 申请日:20220520

    实质审查的生效

说明书

技术领域

本申请涉及移动电子设备领域,更具体地,涉及一种WiFi保活方法、WiFi保活装置及WiFi芯片。

背景技术

智能手机,平板电脑等诸多移动电子设备都有电池续航能力的要求,因此设备的功耗管理是非常重要的环节,绝大部分电池供电的移动电子设备都会支持不同程度的待机模式。

目前的移动电子设备在待机模式下会让主CPU系统进入睡眠状态,保留少部分外围设备处于工作状态用于唤醒主CPU系统,例如:按键,RTC闹钟,WiFi模块等。其中WiFi模块由于耗电量大,一般会工作于周期性唤醒的低功耗模式,其睡眠周期由WiFi协议规定的DTIM参数来指定。WiFi模块在协议规定的DTIM时刻唤醒后接收AP缓存的广播数据,例如ARPRequest。此外,WiFi模块也会间隔一定时间向所连接的AP发送Null Data用于告知对方自己仍然处于在线状态,从而避免被AP断开,该过程通常被称为WiFi保活。

然而当前的WiFi保活方案仅仅针对的是WiFi模块与AP之间的连接保活,对于由于主CPU系统长时间睡眠,建立于主CPU上的网络连接尤其是TCP连接会因为长时间没有与服务端通信而被对方当成非有效连接而强制关闭,以及位于AP上ARP信息也会被老化掉,进而引发一系列对整体网络性能不利的操作这些问题并不能有效解决。

发明内容

提供了本申请以解决现有技术中存在的上述问题。

需要一种WiFi保活方法、WiFi保活装置及WiFi芯片,能够有效防止该TCP连接被服务器关闭,使主机长时间休眠唤醒后,应用软件建立多个TCP连接可以马上恢复使用;使得本主机的IP和MAC地址信息不会被老化删除,从而保证了本主机IP地址对于整个网络链路可达,主机长时间休眠时可以通过网络数据随时唤醒主机,并且在保活过程能够避免对主机进行唤醒,能够有效降低主机的功耗。

根据本申请的第一方面,提供了一种WiFi保活方法,应用于彼此通信的WiFi芯片和主机。所述WiFi保活方法包括由所述WiFi芯片交替执行唤醒阶段和睡眠阶段;在所述WiFi芯片由睡眠阶段切换到唤醒阶段的情况下,获取所述主机的状态,在所述WiFi芯片由睡眠阶段切换到唤醒阶段并且所述主机进入休眠状态的情况下,执行对目标TCP连接的WiFi保活过程,所述WiFi保活过程包括:获取伪TCP报文,所述伪TCP报文是通过对所述主机先前下发的业务数据基于所述主机与所述WiFi保活过程相关联的配置信息进行解析而得到的;基于所获取的伪TCP报文生成WiFi保活数据;按照第一预定时间间隔更新WiFi保活数据并向所述目标TCP连接对应的TCP服务器发送基于更新后的WiFi保活数据生成的伪TCP报文;接收来自所述TCP服务器的数据;在所接收的来自所述TCP服务器的数据中滤除所述TCP服务器对于所述WiFi保活数据的响应数据,再发送到所述主机,使得所述主机不被所述响应数据唤醒。

根据本申请的第二方面,提供了一种WiFi保活装置,所述WiFi保活装置与主机通信,且设置于交替执行唤醒阶段和睡眠阶段的WiFi芯片上。所述WiFi保活装置配置为:在所述WiFi芯片由睡眠阶段切换到唤醒阶段的情况下,获取所述主机的状态,在所述WiFi芯片由睡眠阶段切换到唤醒阶段并且所述主机进入休眠状态的情况下,执行对目标TCP连接的WiFi保活过程,所述WiFi保活过程包括:获取TCP报文,所述TCP报文是通过对所述主机先前下发的业务数据基于所述主机与所述WiFi保活过程相关联的配置信息进行解析而得到的;基于所获取的TCP报文生成WiFi保活数据;按照第一预定时间间隔更新WiFi保活数据并向所述目标TCP连接对应的TCP服务器发送基于更新后的WiFi保活数据生成的伪TCP报文;接收来自所述TCP服务器的数据;在所接收的来自所述TCP服务器的数据中滤除所述TCP服务器对于所述WiFi保活数据的响应数据,再发送到所述主机,使得所述主机不被所述响应数据唤醒。

根据本申请的第三方面,提供一种WiFi芯片,包括:主机接口,其配置为用于与主机进行通信;以及如上所述的WiFi保活装置,其配置为经由所述主机接口与主机通信。

根据本申请的WiFi保活方法、WiFi保活装置及WiFi芯片,其利用设置于WiFi芯片上的WiFi保活装置,使得WiFi芯片能够周期性向TCP服务器发送伪TCP报文,能够有效防止该TCP连接被服务器关闭,使主机长时间休眠唤醒后,应用软件建立多个TCP连接可以马上恢复使用;WiFi芯片周期向路由器网关发送ARP响应报文使得本主机的IP和MAC地址信息不会被老化删除,从而保证了本主机IP地址对于整个网络链路可达,主机长时间休眠时可以通过网络数据随时唤醒主机;保活过程避免对主机进行唤醒,能够有效降低主机的功耗。

附图说明

在不一定按比例绘制的附图中,相同的附图标记可以在不同的视图中描述相似的部件。具有字母后缀或不同字母后缀的相同附图标记可以表示相似部件的不同实例。附图大体上通过举例而不是限制的方式示出各种实施例,并且与说明书以及权利要求书一起用于对所公开的实施例进行说明。在适当的时候,在所有附图中使用相同的附图标记指代同一或相似的部分。这样的实施例是例证性的,而并非旨在作为本装置或方法的穷尽或排他实施例。

图1示出根据本申请第一实施例的WiFi保活方法的流程图;

图2示出根据本申请第二实施例的WiFi保活方法的流程图;

图3示出根据本申请实施例的生成和更新伪TCP报文的流程图;

图4示出根据本申请实施例的在不同情况下的WiFi保活方法的流程图;

图5示出根据本申请第一实施例的WiFi保活装置和WiFi保活原理图;以及

图6示出根据本申请第二实施例的WiFi保活装置和WiFi保活原理图。

具体实施方式

为使本领域技术人员更好的理解本申请的技术方案,下面结合附图和具体实施方式对本申请作详细说明。下面结合附图和具体实施例对本申请的实施例作进一步详细描述,但不作为对本申请的限定。在本申请中使用的“第一”、“第二”和“第三”的措辞,仅仅旨在区分相应的特征,并不代表需要这样的排序,也未必仅表示单数形式。

图1示出根据本申请第一实施例的WiFi保活方法的流程图。如图1所示,所述WiFi保活方法应用于彼此通信的WiFi芯片和主机,这里可以理解的是,所述主机包括CPU系统和应用软件等。主机与WiFi芯片之间互相能够发送信息,在一些实施例中,主机在唤醒状态下,可以利用应用软件与所述WiFi芯片之间进行通信。WiFi芯片和主机既相互独立又可以相互联系,在主机休眠状态下,WiFi芯片能够单独与TCP服务器端的TCP连接保活和与路由器端的AP连接保活,能够避免唤醒主机,降低主机的功耗。

WiFi保活方法包括由所述WiFi芯片交替执行WiFi芯片唤醒阶段101和WiFi芯片睡眠阶段109。在WiFi芯片唤醒阶段101,WiFi芯片正常运行,运行一段时间之后,WiFi芯片可能会进入到WiFi芯片睡眠阶段109,然后WiFi芯片经过被唤醒可以进入WiFi芯片唤醒阶段101,WiFi芯片的这两个阶段能够交替执行。在一些实施例中,WiFi芯片的唤醒方法包括但不限于以下几种:WiFi芯片周期唤醒方法,(由WiFi协议规定的DTIM参数来指定睡眠周期);被主机唤醒的方法,利用主机软件按照设定周期给WiFi芯片发送唤醒信息;被其它模块通过GPIO唤醒,在WiFi芯片上或者是在主机上设置唤醒模块,在设定周期与WiFi芯片进行通信。WiFi芯片还支持采用其它唤醒方法。

在所述WiFi芯片由睡眠阶段切换到唤醒阶段的情况下,接下来在步骤102,获取所述主机的状态。通过主机的状态信息,从而判断主机进入唤醒状态还是休眠状态。比如(通过psutil模块获取主机的运行进程或者在芯片上设置监控模块,监控主机的运行状态)。得到是否需要通过WiFi芯片来进行保活过程。

接着在所述WiFi芯片由睡眠阶段切换到唤醒阶段并且所述主机进入休眠状态的情况下,执行对目标TCP连接的WiFi保活过程。首先在步骤103,获取WiFi保活数据。所述WiFi保活数据是通过步骤104得到的,步骤104具体为:对主机先前下发的业务数据基于主机与WiFi保活过程相关联的配置信息进行解析。具体的,步骤104中主机先前下发的业务数据,是主机在唤醒状态下,WiFi芯片通过侦听得到的。步骤104中,主机发送给TCP连接的业务数据包括TCP包头信息、TCP序列号,校验和以及包的内容。所述包的内容中包括与主机相关联的配置信息。WiFi芯片利用配置信息可以识别业务数据,然后通过解析获得WiFi保活数据。

接下来在步骤105中,基于获取的WiFi保活数据生成伪TCP报文。WiFi芯片通过WiFi保活数据生成用于在主机休眠状态下能够保持TCP连接的伪TCP报文,伪TCP报文与主机发送的业务数据的作用相同,进而代替主机的业务数据。

在步骤106中,WiFi芯片按照第一预定时间间隔更新WiFi保活数据并向所述目标TCP连接对应的TCP服务器发送基于更新后的WiFi保活数据生成的伪TCP报文。WiFi芯片按照预定好的时间间隔发送伪TCP报文到TCP服务器,同时WiFi芯片在发送伪TCP报文时,对WiFi保活数据进行更新来重新得到新伪TCP报文,避免发送给TCP服务器的伪TCP报文的重复,来保持TCP连接。WiFi芯片在主机休眠的过程中,保持与TCP服务器的连接,当主机在唤醒后,主机上的应用软件利用多个TCP连接可以马上恢复使用。同时,在主机休眠的状态下可以不必对TCP服务器发送业务数据,所以可以降低主机的功耗。

在步骤107,WiFi芯片接收来自所述TCP服务器的数据。TCP服务器在收到伪TCP报文后,TCP服务器向WiFi芯片进行回复,来做出响应,以此来保持TCP连接。

在步骤108,WiFi芯片将接收的来自所述TCP服务器的数据中滤除TCP服务器对于所述伪TCP报文的响应数据,再发送到主机,使得主机不被响应数据唤醒。TCP服务器给WiFi芯片的回复中的响应数据会唤醒主机,所以WiFi芯片将回复的内容进行过滤,去除响应数据,再发到主机,可以避免主机被唤醒,可以保持主机的休眠状态,有效降低主机的功耗。

WiFi芯片唤醒阶段101的情况下工作一段时间之后,WiFi芯片会进入到WiFi芯片睡眠阶段109,然后WiFi芯片被唤醒,WiFi芯片交替执行WiFi芯片唤醒阶段101和WiFi芯片睡眠阶段109。

在一些实施例中,WiFi芯片中集成TCP/IP协议。使得能够通过对所述主机先前下发的业务数据基于所述主机与所述WiFi保活过程相关联的配置信息进行解析,来提取所述业务数据中与所述目标TCP连接相关联的TCP报文信息;并且基于所述WiFi保活数据所生成的伪TCP报文符合TCP/IP协议并能够通过所述TCP服务器的校验。通过TCP/IP协议,能够识别主机先前下发的业务数据,基于配置信息解析业务数据,然后能够生成TCP服务器端能够识别的目标TCP连接的伪TCP报文,有利于WiFi芯片进行保活过程,避免TCP连接关闭。

图2示出根据本申请第二实施例的WiFi保活方法的流程图。如图2所示,WiFi保活方法包括由所述WiFi芯片交替执行WiFi芯片唤醒阶段201和WiFi芯片睡眠阶段205。在WiFi芯片唤醒阶段201,WiFi芯片正常运行,运行一段时间之后,WiFi芯片可能进入WiFi芯片睡眠阶段205,然后WiFi芯片经过被唤醒再进入WiFi芯片唤醒阶段201,WiFi芯片的这两个阶段交替执行。

在所述WiFi芯片由睡眠阶段切换到唤醒阶段的情况下,接下来在步骤202,获取所述主机的状态。判断主机进入唤醒状态还是休眠状态。

在所述WiFi保活过程中,且,所述主机进入唤醒状态的情况下,WiFi芯片将进行停止对所述TCP连接的WiFi保活过程203。在所述WiFi保活过程中,主机可能通过按键操作或者主机周期设置被唤醒,在这种情况下,接下来可能由主机主动与TCP服务器端建立TCP连接,所以WiFi芯片可以停止保活过程。

接下来在步骤204,获取并向主机发送当前的伪TCP报文的序列号,和/或所述WiFi保活过程所发送的数据的总长度,以供主机用于发送业务数据。WiFi芯片将伪TCP报文的信息同步发送给主机,使主机能够在已同步过的序列号开始发送新的业务数据,避免WiFi保活数据的重复。具体的,有两种过程,其一是:WiFi芯片将最新的发送序列号通知主机,由主机软件直接修改被保活的TCP连接的发送序列号。其二是:WiFi芯片将保活过程发送的伪TCP报文内容的总长通知主机,主机软件通过发送等长的无效数据来间接更新被保活TCP连接的发送序列号,WiFi芯片负责对此无效数据进行过滤,避免将数据发送到服务器端引起TCP断连,判断是否为无效数据的依据是TCP包头信息中的发送序列号是否等于WiFi芯片保活的最新发送序列号。

在步骤204中,WiFi芯片已经给主机同步了最新的发送序列号,之后WiFi芯片不进行保活过程,接下来WiFi芯片可以从事其他的业务,进行收发数据,比如收发音频数据等。也可以进入到WiFi芯片睡眠阶段205,然后WiFi芯片被唤醒,WiFi芯片交替执行WiFi芯片唤醒阶段201和WiFi芯片睡眠阶段205。

在一些实施例中,在所述主机与所述TCP服务器之间多个TCP连接的情况下,由所述主机生成定义要执行所述WiFi保活过程的至少一个目标TCP连接的所述配置信息,所述配置信息包括对应于各个目标TCP连接的主机IP地址、主机MAC地址、TCP服务器IP地址、TCP服务器端口号、路由器网关IP地址和路由器网关MAC地址;在所述WiFi芯片由睡眠阶段切换到唤醒阶段并且所述主机进入休眠状态的情况下,针对多个TCP连接分别地执行所述WiFi保活过程,使得对于多个目标TCP连接以各自的第一预定时间间隔更新WiFi保活数据并向所述目标TCP连接对应的TCP服务器发送基于更新后的WiFi保活数据生成的伪TCP报文。主机与所述TCP服务器之间的目标TCP连接可以为一个或多个,在WiFi芯片的WiFi保活过程对该一个TCP连接或多个目标TCP连接均可以进行保活过程,确保该一个或多个目标TCP连接都不会断开。并且主机分别对该一个或多个目标TCP连接均生成配置信息,所述配置信息包括主机建立TCP连接和ARP连接所需的报文内容,有利于WiFi芯片识别主机下发给各个目标连接的业务数据、以第一预定时间间隔对WiFi保活数据进行更新,利用更新后的WiFi保活数据来生成新的伪TCP报文。以维持所述主机的各个TCP连接。

在一些实施例中,配置信息包括对应于各个目标TCP连接的主机IP地址、主机MAC地址、TCP服务器IP地址、TCP服务器端口号、路由器网关IP地址和路由器网关MAC地址,可以通过主机上的应用软件设置到WiFi芯片中。

具体的,图3示出根据本申请实施例的生成和更新伪TCP报文的流程图。首先,步骤301,基于各个目标TCP连接的所述配置信息,侦听所述主机下发到所述WiFi芯片的各个目标TCP连接的业务数据。WiFi芯片中集成了TCP/IP协议,基于配置信息在主机唤醒状态下,捕获主机发送的与配置信息能够匹配的业务数据,所述配置信息包含在TCP报文的包的内容中。

其次,在步骤302,对所侦听的业务数据进行解析,以得到各个目标TCP连接的对应的TCP包头信息、TCP报文的最新序列号和对应的报文长度,作为与所述目标TCP连接相关联的TCP报文信息。其中对所侦听的业务数据进行解析的步骤,是通过WiFi芯片中集成的TCPIP协议部分来完成解析和提取。具体的,通过WiFi芯片配置信息中的TCP服务器IP地址(IP_server)和TCP服务器端口号(PORT_server),对主机下发的业务数据进行解析。过滤出服务器IP地址和服务器端口号都匹配的TCP报文,并记录该报文的TCP包头信息,以及最新的TCP报文序列号(SEQ_host_last)以及报文内容的长度(LEN_host_last)。

再其次,在步骤303,对所述TCP报文信息中的TCP报文的最新序列号进行递增处理,并根据预设规则,利用对应的目标TCP连接的所述配置信息填充TCP报文的内容,根据所填充的TCP报文的内容生成TCP校验和,并根据递增处理后的TCP报文的序列号对应地修改所述TCP包头信息,将修改后的TCP包头信息、所填充的TCP报文的内容、所述TCP校验和一并作为所述WiFi保活数据。通过对最新的序列号进行递增处理,可以得到连续的、不同的序列号,可以使下一个序列号区分上一个序列号,能够维持连接,保证不断开。具体的,所述对TCP报文的最新序列号进行递增处理的过程可以为:根据主机的业务数据解析后得到的最新的TCP报文序列号(SEQ_host_last)以及报文内容的长度(LEN_host_last)进行加和处理,得到WiFi芯片发送的第一个伪TCP报文的序列号。然后第二个伪TCP报文的序列号为第一个伪TCP报文的序列号和第一个伪TCP报文的序列号的长度的加和处理后的结果。可以表示为:第一个伪TCP报文的序列号为SEQ_wifi_1=第SEQ_host_last+LEN_host_last,报文内容长度记为LEN_wifi_1,第n个伪保活报文的序列号为SEQ_wifi_n=(第n-1个TCP保活报文序列号)SEQ_wifi_n-1+(第n-1个TCP保活报文内容的长度)LEN_wifi_n-1,包的内容按照与服务器端的设计约定进行填充,其长度LEN_wifi_n可以为0也可以不为0。通过加和处理可以区分连续的多个序列号,有利于保持TCP连接。

最后,基于修改后的TCP包头信息、所填充的TCP报文的内容、TCP校验和组成的所述WiFi保活数据来组装生成伪TCP报文,使得伪TCP报文能够通过TCP服务器的校验。WiFi芯片将组装后的TCP保活报文发送到TCP服务器,通过校验后完成与TCP服务器的连接。

在一些实施例中,所述WiFi保活过程还包括:按照第二预定时间间隔向路由器发送ARP保活报文,所述ARP保活报文至少包括主机的IP地址(IP_host)、主机的MAC地址(MAC_host)、路由器网关IP地址(IP_gw),以及路由器网关MAC地址(MAC_gw)。ARP保活报文的格式与由主机MAC地址发向路由器网关MAC地址的ARP响应报文格式相同。报文内容包含IP_host,MAC_host以及IP_gw,MAC_gw。路由器收到ARP保活报文,使得本主机的IP和MAC地址信息不会被老化删除,从而保证了本主机IP地址对于整个网络链路可达,在主机长时间休眠时可以通过网络数据随时唤醒主机。

在一些实施例中,主机的IP地址(IP_host),主机的MAC地址(MAC_host)以及路由器网关IP地址(IP_gw),路由器网关MAC地址由主机配置到所述WiFi芯片,或由所述WiFi芯片在WiFi连接过程中进行解析而得到。具体的,通过主机把信息通过应用软件直接配置到WiFi芯片中或通过WiFi芯片中集成的DHCP协议模块在WiFi连接过程中进行解析和提取得到。

在一些实施例中,在所述WiFi保活过程中且所述主机进入唤醒状态的情况下:停止向所述路由器发送所述ARP保活报文。当主机进入唤醒状态,可以由主机进行ARP报文的发送,停止通过WiFi芯片进行保活过程,。

在一些实施例中,所述目标TCP连接为加密TCP连接。所述一个或多个目标TCP连接可以为加密的TCP连接,对于TCP加密的连接,也就是TLS连接,需要由主机发送第一包业务数据,WiFi芯片会监听到该加密的业务数据,后续保活数据由WiFi芯片去发送,并自动更新序列号和TCP校验和。

图4示出根据本申请实施例的在不同情况下的WiFi保活方法的流程图。由图4可以看到,WiFi芯片唤醒阶段401和WiFi芯片睡眠阶段408交替执行,当在WiFi芯片唤醒阶段401,WiFi芯片进行步骤402,获取主机的状态,在主机进行休眠状态下,且WiFi保活过程没有开始,接下来WiFi芯片执行对目标TCP连接的WiFi保活过程,首先进行步骤403,获取WiFi保活数据。WiFi保活数据是通过对主机先前下发的业务数据基于主机与WiFi保活过程相关联的配置信息,进行解析而得到的,所述配置信息来自步骤415,主机在唤醒状态下对WiFi芯片发出配置信息。然后在步骤404,基于获取的WiFi保活数据生成伪TCP报文。这时WiFi芯片开始执行步骤405,按照第一预定时间间隔更新WiFi保活数据并向所述目标TCP连接对应的TCP服务器发送基于更新后的WiFi保活数据生成的伪TCP报文。然后进行步骤406,即WiFi芯片接收来自所述TCP服务器的数据。接着在步骤407,WiFi芯片将接收的来自所述TCP服务器的数据中滤除TCP服务器对于所述WiFi保活数据的响应数据,再发送到主机,使得主机不被响应数据唤醒。

WiFi芯片交替执行唤醒阶段和睡眠阶段,当WiFi芯片唤醒阶段401转入到WiFi芯片睡眠阶段408,然后WiFi芯片被唤醒,在进入到WiFi芯片唤醒阶段401后,WiFi芯片首先进行步骤402,获取主机的状态。如果在主机进行休眠状态下,且WiFi保活过程没有开始,则进行图4中所示的步骤403至步骤407。如果在主机进行休眠状态下,且WiFi保活过程已经开始,则进行步骤409,按照第一预定时间间隔更新WiFi保活数据并向所述目标TCP连接对应的TCP服务器发送基于更新后的WiFi保活数据生成的伪TCP报文。然后进行步骤410,即WiFi芯片接收来自所述TCP服务器的数据。接着在步骤411,WiFi芯片将接收的来自所述TCP服务器的数据中滤除TCP服务器对于所述伪TCP报文的响应数据,再发送到主机。之后进入WiFi芯片睡眠阶段408。

WiFi芯片交替执行唤醒阶段和睡眠阶段,当WiFi芯片唤醒阶段401转入到WiFi芯片睡眠阶段408,然后WiFi芯片被唤醒,在进入到WiFi芯片唤醒阶段401后,WiFi芯片首先进行步骤402,获取主机的状态。如果主机进入唤醒状态的情况下,而且此时WiFi保活过程已经开始,接下来,WiFi芯片进行步骤412,停止TCP连接的保活过程同时向主机发送当前伪TCP报文中的序列号。这时WiFi芯片不再执行保活过程,但是可以执行WiFi芯片具有的其他功能,比如收发音频数据、视频数据等。WiFi芯片运行一段时间之后,可能会进入到WiFi芯片睡眠阶段408。

WiFi芯片交替执行唤醒阶段和睡眠阶段,当WiFi芯片唤醒阶段401转入到WiFi芯片睡眠阶段408,然后WiFi芯片被唤醒,在进入到WiFi芯片唤醒阶段401后,WiFi芯片首先进行步骤402,获取主机的状态。如果主机进入唤醒状态的情况下,而且此时WiFi保活过程没有开始,接下来,WiFi芯片进行步骤413,主机请求保活并向WiFi芯片发送配置信息,WiFi芯片侦听主机发送的业务数据。主机在唤醒的状态下发送请求信息,表示主机接下来可能要进入睡眠状态,主机将配置信息关联给WiFi芯片,WiFi芯片在步骤403中可以获取WiFi保活数据,以便于进行保活过程,并且,WiFi芯片侦听主机发送的业务数据的过程中,WiFi芯片接收到了这个业务数据,WiFi芯片只是将这个业务数据进行解析和提取,同时WiFi芯片将侦听到的主机发送的完整的业务数据正常发送到TCP服务器端。

下面对根据本申请实施例的WiFi保活装置进行具体说明。

图5示出根据本申请实施例的WiFi保活装置和WiFi保活原理图。如图4所示,WiFi保活装置501设置于交替执行唤醒阶段和睡眠阶段的WiFi芯片上502,WiFi保活装置501经由主机接口与主机通信。所述WiFi保活装置501进一步配置为:在所述WiFi芯片502由睡眠阶段切换到唤醒阶段的情况下,获取所述主机503的状态;在所述WiFi芯片502由睡眠阶段切换到唤醒阶段并且所述主机503进入休眠状态的情况下,执行对目标TCP连接的WiFi保活过程,所述WiFi保活过程包括:获取WiFi保活数据,所述WiFi保活数据是通过对所述主机503先前下发的业务数据基于所述主机503与所述WiFi保活过程相关联的配置信息进行解析而得到的;基于所获取的TCP报文生成伪TCP报文;按照第一预定时间间隔更新WiFi保活数据并向所述目标TCP连接对应的TCP服务器504发送基于更新后的WiFi保活数据生成的伪TCP报文;接收来自所述TCP服务器504的数据;在所接收的来自所述TCP服务器504的数据中滤除所述TCP服务器504对于所述伪TCP报文的响应数据,再发送到所述主机503,,使得所述主机503不被所述响应数据唤醒。主机通过主机接口向WiFi芯片上的WiFi保活装置501关联配置信息,主机503先前下发的业务数据可以通过WiFi保活装置501通过侦听获得。WiFi保活装置501利用配置信息与业务数据进行匹配,匹配后得到与WiFi保活有关的信息WiFi保活数据。WiFi保活装置501利用WiFi保活数据生成伪TCP报文发送到TCP服务器504,并接收TCP服务器504的数据,数据经过WiFi保活装置501的过滤掉其中的响应数据后再发送到主机。

在主机503处于休眠状态(或称为待机模式)下,WiFi芯片在唤醒状态下,向TCP服务器504发送伪TCP报文,有效防止该TCP连接被服务器关闭,无需主机503主动维持该TCP连接,保持主机503的休眠状态,同时使得所述主机503不被所述响应数据唤醒,有效降低主机503的功耗。

在一些实施例中,WiFi保活装置可以是WiFi芯片上集成的软件实现也可以通过WiFi芯片上集成的硬件实现。可以是一种实现保活功能的应用软件。

图6示出根据本申请第二实施例的WiFi保活装置和WiFi保活原理图。如图6所示,所述WiFi芯片602中集成TCP/IP协议模块605,TCP/IP协议模块605被配置为对所述主机先前下发的业务数据基于所述主机与所述WiFi保活过程相关联的配置信息进行解析,来提取所述业务数据中与所述目标TCP连接相关联的TCP报文信息。以及,基于经由所述WiFi保活装置得到的WiFi保活数据,生成与所述目标TCP连接对应的伪TCP报文,所述伪TCP报文符合TCP/IP协议并能够通过所述TCP服务器的校验。具体的,TCP/IP协议模块605利用其中集成的TCP/IP协议,能够对主机603下发的业务数据进行侦听和解析,并通过提取主机下发的业务数据TCP报文中的包括但不限于TCP服务器IP地址、TCP服务器端口号等信息,并对应地与主机发送的WiFi保活过程相关联的配置信息中对应的目标TCP连接的TCP服务器IP地址、TCP服务器端口号进行比较,如果匹配,则认为该TCP报文是与目标TCP连接相关联的TCP报文。由此,TCP/IP协议模块605通过上述匹配过程,可以从主机603下发的业务数据中提取与各个目标TCP连接匹配的TCP报文,并从中得到各个目标TCP连接的对应的TCP包头信息、TCP报文的最新序列号和对应的报文长度等信息。具体的,TCP/IP协议模块605可以通过侦听获得主机603下发的业务数据。

在WiFi保活开始进行保活时,TCP/IP协议模块605将主机下发的最后的一个业务数据进行解析得到的最新的TCP报文信息发给WiFi保活装置601,WiFi保活装置601利用TCP报文信息生成WiFi保活数据。TCP/IP协议模块605基于经由所述WiFi保活装置601得到的WiFi保活数据,生成与所述目标TCP连接对应的伪TCP报文,所述伪TCP报文符合TCP/IP协议并能够通过所述TCP服务器的校验。通过向TCP服务器发送伪TCP报文,有利于进行对主机的TCP连接的保活过程,避免TCP连接关闭。

在本实施例中TCP/IP协议模块605与WiFi保活装置601分开设置,WiFi保活利用TCP/IP协议模块603对WiFi保活数据进行组装、打包,形成TCP服务器604端能够识别的被保活TCP连接的伪TCP报文,伪TCP报文可以通过TCP/IP协议模块605直接发出或者通过WiFi保活装置601发出,如果由TCP/IP协议模块605直接发出,则再下一轮进行伪TCP报文处理时,还需要将上一轮的伪TCP报文的信息发给WiFi保活装置601进行WiFi保活数据更新。TCP/IP协议模块605与WiFi保活装置601分开设置的情况下,TCP/IP协议模块605与WiFi保活装置601之间可以通过缓存器或者设置同一集成电路上等可以进行数据交互。WiFi保活装置601负责与主机进行通信,WiFi保活装置601利用TCP/IP协议模块605进行伪TCP报文的组装和打包还有对主机业务数据的侦听、解析和提取。在另一个实施例中,TCP/IP协议模块605可以集成在WiFi保活装置601中。这样可以在WiFi保活装置中可以完成一个整体的利用主机的配置信息和业务数据直接得到伪TCP报文的过程。

具体的,WiFi保活装置获取主机状态,比如通过psutil模块获取主机的运行进程或者在芯片上设置监控模块,监控主机的运行状态。

在一些实施例中,所述WiFi保活装置还被配置为,在所述WiFi保活过程中且所述主机进入唤醒状态的情况下:停止对所述TCP连接的所述WiFi保活过程;从所述TCP/IP协议模块获取并向所述主机发送与所述目标TCP连接对应的当前的伪TCP报文的序列号,和/或所述WiFi保活过程所发送的数据的总长度,以供所述主机用于发送业务数据。在所述WiFi保活过程中,主机可能通过按键操作或者主机周期设置被唤醒,在这种情况下,接下来可能由主机主动与TCP服务器端建立TCP连接,所以WiFi芯片可以停止保活过程。

以WiFi保活装置和TCP/IP协议模块分开设置为例说明,TCP/IP协议模块将当前的伪TCP报文的序列号,和/或所述WiFi保活过程所发送的数据的总长度发送给WiFi保活装置,WiFi保活装置发送给主机。或者,如果TCP/IP协议模块集成在WiFi保活装置中,则WiFi保活装置直接利用TCP/IP协议模块的输出信息发送给主机。

主机收到伪TCP报文的信息,使主机从已同步的最新的TCP报文序列号开始发送新的业务数据,而不重复使用WiFi保活数据已经使用过的旧的TCP报文序列号。具体的,有两种可选的方式,其一是:WiFi芯片将最新的发送序列号通知主机,由主机软件直接修改被保活的TCP连接的发送序列号。其二是:WiFi芯片将保活过程发送的伪TCP报文内容的总长通知主机,主机软件通过发送等长的无效数据来间接更新被保活TCP连接的发送序列号,WiFi芯片负责对此无效数据进行过滤,避免将数据发送到TCP服务器端而引起TCP断连,判断是否为无效数据的依据是TCP包头信息中的发送序列号是否等于WiFi芯片保活的最新发送序列号。之后WiFi芯片不进行保活过程。

在一些实施例中,在所述主机与所述TCP服务器之间具有多个TCP连接的情况下,由所述主机生成定义要执行所述WiFi保活过程的各个目标TCP连接的所述配置信息,所述配置信息包括对应于各个目标TCP连接的主机IP地址、主机MAC地址、TCP服务器IP地址、TCP服务器端口号、路由器网关IP地址和路由器网关MAC地址,所述WiFi保活装置进一步被配置为:在所述WiFi芯片由睡眠阶段切换到唤醒阶段并且所述主机进入休眠状态的情况下,针对各个TCP连接分别地执行所述WiFi保活过程,使得对于各个目标TCP连接以各自的第一预定时间间隔更新WiFi保活数据并向各个目标TCP连接对应的TCP服务器发送基于更新后的WiFi保活数据生成的伪TCP报文。主机与所述TCP服务器之间的目标TCP连接可以为一个或多个,在WiFi芯片的WiFi保活过程对该一个TCP连接或多个目标TCP连接均可以进行保活过程。以第一预定时间间隔对WiFi保活数据进行更新,利用更新后的WiFi保活数据来生成新的伪TCP报文,比如先对上一轮发送的伪TCP报文的信息进行更新得到新的WiFi保活数据,然后利用更新后的WiFi保活数据得到新的伪TCP报文。以维持所述主机的一个TCP连接或多个TCP连接。

在一些实施例中,所述TCP/IP协议模块进一步被配置为:基于各个目标TCP连接的所述配置信息,侦听所述主机下发到所述WiFi芯片的各个目标TCP连接的业务数据;对所侦听的业务数据进行解析,以得到各个目标TCP连接的对应的TCP包头信息、TCP报文的最新序列号和对应的报文长度,作为与所述目标TCP连接相关联的TCP报文信息;TCP/IP协议模块接收到WiFi保活装置的业务数据和配置信息后,开始对业务数据进行解析得到TCP报文信息。具体的,可以通过配置信息中的TCP服务器IP地址(IP_server)和TCP服务器端口号(PORT_server),对主机下发的业务数据进行解析。过滤出服务器IP地址和服务器端口号都匹配的TCP报文,并记录该报文的TCP包头信息,以及最新的TCP报文序列号(SEQ_host_last)以及报文内容的长度(LEN_host_last)。

在一些实施例中,可以基于来自所述WiFi保活装置的所述WiFi保活数据来组装生成遵循TCP报文格式和各层传输协议的所述伪TCP报文,使得所述伪TCP报文能够通过各个目标TCP连接对应的TCP服务器的校验。

所述WiFi保活装置进一步被配置为:对来自所述TCP/IP协议模块的所述TCP报文信息中的TCP报文的最新序列号进行递增处理,并根据预设规则,利用对应的目标TCP连接的所述配置信息填充TCP报文的内容,根据所填充的TCP报文的内容生成TCP校验和,并根据递增处理后的TCP报文的序列号对应地修改所述TCP包头信息,将修改后的TCP包头信息、所填充的TCP报文的内容、所述TCP校验和一并作为所述WiFi保活数据。以WiFi保活装置和TCP/IP协议模块分开设置为例说明,TCP/IP协议模块将TCP报文信息发送给WiFi保活装置,然后WiFi保活装置对报文信息中的TCP报文的最新序列号进行递增处理,并根据预设规则,利用对应的目标TCP连接的所述配置信息填充TCP报文的内容,根据所填充的TCP报文的内容生成TCP校验和,并根据递增处理后的TCP报文的序列号对应地修改所述TCP包头信息,将修改后的TCP包头信息、所填充的TCP报文的内容、所述TCP校验和一并作为所述WiFi保活数据。通过对最新的序列号进行递增处理,可以得到连续的、不同的序列号,可以使下一个序列号区分上一个序列号,能够维持连接,保证不断开。具体的,所述对TCP报文的最新序列号进行递增处理的过程可以为:根据主机的业务数据解析后得到的最新的TCP报文序列号(SEQ_host_last)以及报文内容的长度(LEN_host_last)进行加和处理,得到WiFi芯片发送的第一个伪TCP报文的序列号。然后第二个伪TCP报文的序列号为第一个伪TCP报文的序列号和第一个伪TCP报文的序列号的长度的加和处理后的结果。可以表示为:第一个伪TCP报文的序列号为SEQ_wifi_1=第SEQ_host_last+LEN_host_last,报文内容长度记为LEN_wifi_1,第n个伪保活报文的序列号为SEQ_wifi_n=(第n-1个TCP保活报文序列号)SEQ_wifi_n-1+(第n-1个TCP保活报文内容的长度)LEN_wifi_n-1,包的内容按照与服务器端的设计约定进行填充,其长度LEN_wifi_n可以为0也可以不为0。

在一些实施例中,WiFi保活装置进一步被配置为:按照第二预定时间间隔向路由器发送ARP保活报文,所述ARP保活报文至少包括主机的IP地址、主机的MAC地址、路由器网关IP地址,以及路由器网关MAC地址。WiFi保活装置还被配置与路由器端进行通信,主机的IP地址、主机的MAC地址、路由器网关IP地址以及路由器网关MAC地址构成ARP保活报文的信息要素。进一步,这些信息要素可以由主机配置到WiFi芯片,也可以由WiFi芯片中集成的DHCP协议在WiFi连接过程中进行解析和提取。WiFi保活装置集成在WiFi芯片中,可以通过WiFi芯片与路由器的连接发送和接收信息。

在一些实施例中,所述WiFi保活装置进一步被配置为:在所述WiFi保活过程中且所述主机进入唤醒状态的情况下:停止向所述路由器发送所述ARP保活报文。当主机进入唤醒状态,停止通过WiFi芯片进行保活过程,可以由主机进行ARP报文的发送。

在一些实施例中,所述目标TCP连接为加密TCP连接或非加密TCP连接。所述一个或多个目标TCP连接可以为加密的TCP连接,对于TCP加密的连接,也就是TLS连接,需要由主机发送第一包业务数据,WiFi芯片会监听到该加密的业务数据,后续保活数据由WiFi芯片去发送,并自动更新序列号和TCP校验和。

根据本申请的实施例还提供一种WiFi芯片,主机接口,其配置为用于与主机进行通信;以及如上所述的WiFi保活装置,其配置为经由所述主机接口与主机通信。根据本申请实施例的WiFi芯片还可以包括主机接口,所述WiFi保活装置可以被配置为经由所述主机接口与主机通信。上述WiFi芯片除了具有根据本申请各个实施例的功能之外,还可以具有现有的WiFi芯片所普遍具有的通用功能,在此不赘述。在具体实现时,上述WiFi芯片例如可以通过将本申请各个实施例中的WiFi保活装置中的各项功能与现有的WiFi芯片功能进行集成,并对各个装置和模块之间的接口、交互协议等进行适应性修改而得到的,在此不做限制。

此外,尽管已经在本文中描述了示例性实施例,其范围包括任何和所有基于本申请的具有等同元件、修改、省略、组合(例如,各种实施例交叉的方案)、改编或改变的实施例。虽然分别就无线通信方法和无线音频播放组件列举了若干实施例进行了说明,但须知无线音频播放组件说明中涉及的方法细节也可以结合到无线通信方法的各个实施例中,反之亦然。

权利要求书中的元件将被基于权利要求中采用的语言宽泛地解释,并不限于在本说明书中或本申请的实施期间所描述的示例,其示例将被解释为非排他性的。因此,本说明书和示例旨在仅被认为是示例,真正的范围和精神由以下权利要求以及其等同物的全部范围所指示。

在本申请中的各个步骤的顺序仅仅是示例性的,而非限制性的。在不影响本申请的实现的情况下(不破坏所需的步骤之间的逻辑关系的情况下),可以对步骤的执行顺序进行调整,调整后得到的各种实施例依然落在本申请的范围内。

以上描述旨在是说明性的而不是限制性的。例如,上述示例(或其一个或更多方案)可以彼此组合使用。例如本领域普通技术人员在阅读上述描述时可以使用其它实施例。另外,在上述具体实施方式中,各种特征可以被分组在一起以简单化本申请。这不应解释为一种不要求保护的公开的特征对于任一权利要求是必要的意图。相反,本发明的主题可以少于特定的公开的实施例的全部特征。从而,以下权利要求书作为示例或实施例在此并入具体实施方式中,其中每个权利要求独立地作为单独的实施例,并且考虑这些实施例可以以各种组合或排列彼此组合。本发明的范围应参照所附权利要求以及这些权利要求赋权的等同形式的全部范围来确定。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号