一种长连接服务器保活报文控制方法及系统与流程

文档序号:12491791阅读:301来源:国知局
一种长连接服务器保活报文控制方法及系统与流程

本发明涉及网络管理领域,尤其涉及一种长连接服务器保活报文控制方法及系统。



背景技术:

随着智能家居的发展,越来越多的设备需要接入到服务器,为了能和服务器保持实时通信,大多数设备都采用长连接的方式与服务器保持连接。设备与服务器之间一般会定时发送保活报文即KeepAlive报文来检测双方是否在线。监控KeepAlive报文的目的是为了能使得设备与服务器保持实时连接,一旦设备发生断线,则立马重新连接。

当接入到服务器设备的数量越来越大,服务器发送的KeepAlive报文的数量也会线性增长,设备在大多数情况下都是属于空闲状态,只有KeepAlive报文需要定期发送,这样,KeepAlive报文占据了网络资源的大部分的带宽。



技术实现要素:

为解决上述技术问题,本发明提供一种长连接服务器保活报文控制方法及系统,能够根据客户端的网络质量调整保活报文的时间间隔,从而降低整体的KeepAlive报文的数量,同时也降低了网络带宽消耗。

本发明提供的技术方案如下:

本发明公开了一种长连接服务器保活报文控制方法,包括步骤:S100、接收客户端发送的报文,并根据所述报文监测客户端的网络质量数据;S200、根据客户端的网络质量数据计算该客户端对应的保活报文的时间间隔;S300、按照所述客户端对应的保活报文的时间间隔向该客户端发送保活报文。

本发明通过监测客户端的网络质量数据来计算相应的保活报文的时间间隔,通过调节保活报文的时间间隔来减少保活报文对网络带宽的占用,从而节约网络带宽。

进一步优选的,所述步骤S100“根据所述报文监测客户端的网络质量数据”进一步包括步骤:S110、记录客户端发送报文失败的次数;S120、记录客户端报文的响应速度;S130、根据客户端发送报文失败的次数和客户端报文的响应速度确定客户端的网络质量数据。

本发明根据客户端发送报文失败次数以及客户端报文的响应速度来确定不同的客户端的网络质量数据,为不同网络质量等级的客户端分配不同保活报文的时间间隔提供计算依据,从而实现向网络质量较好的客户端发送保活报文的时间间隔比较长,向网络质量较差的客户端发送保活报文的时间间隔比较短,减少保活报文发送,实现合理利用网络带宽。

进一步优选的,所述步骤S200根据客户端的网络质量数据计算该客户端对应的保活报文的时间间隔进一步包括步骤:S210、对网络质量数据进行量化,将网络质量数据分为N个网络质量等级;S220、根据监测的客户端的网络质量数据判断该客户端的网络质量等级;S230、按照以下公式计算该客户端对应的保活报文的时间间隔T,T=Tmin+(Tmax-Tmin)*i/N;其中,Tmin为网络质量等级为最低等级时的保活报文的时间间隔,Tmax为网络质量等级为最高等级时的保活报文的时间间隔,i为当前客户端的网络质量等级,N为网络质量等级数量。

进一步优选的,还包括步骤:S400、当监测到客户端发送错误报文的数量在第一预设时长内增加预设个数,则将该客户端对应的网络质量等级下降至下一级;若当前客户端对应的网络质量等级为最低等级,则不作处理。

本发明根据监测实际客户端网络环境的变化动态地调整客户端的网络质量等级,根据网络等级的变化调整相应的保活报文的时间间隔,更加灵活适用于多变的网络环境。

进一步优选的,还包括步骤:S500、当第二预设时长内监测到服务器与客户端完成一次报文交互的时间超过预设消耗时间,则将该客户端对应的网络质量等级下降至下一级;若当前客户端对应的网络质量等级为最低等级,则不作处理。

本发明根据监测实际客户端网络环境的变化动态地调整客户端的网络质量等级,根据网络等级的变化调整相应的保活报文的时间间隔,更加灵活适用于多变的网络环境。

本发明还公开了一种长连接服务器保活报文控制系统,包括:报文接收模块,用于接收客户端发送的报文;网络质量数据监测模块,用于根据客户端发送的报文监测客户端的网络质量数据;保活报文管理模块,用于根据客户端的网络质量数据计算该客户端对应的保活报文的时间间隔;报文发送模块,用于按照所述客户端对应的保活报文的时间间隔向该客户端发送保活报文。

进一步优选的,所述网络质量数据监测模块进一步包括:第一记录子模块,用于记录客户端发送报文失败的次数;第二记录子模块,用于记录客户端报文的响应速度;网络质量确定子模块,用于根据客户端发送报文失败的次数和客户端报文的响应速度确定客户端的网络质量数据。

进一步优选的,所述保活报文管理模块进一步包括:网络质量等级划分子模块,用于对网络质量数据进行量化,将网络质量数据分为N个网络质量等级;网络质量等级判断子模块,用于根据监测的客户端的网络质量数据判断该客户端对应的网络质量等级;时间间隔计算子模块,用于按照以下公式计算该客户端对应的保活报文的时间间隔T,T=Tmin+(Tmax-Tmin)*i/N;其中,Tmin为网络质量等级为最低等级时的保活报文的时间间隔,Tmax为网络质量等级为最高等级时的保活报文的时间间隔,i为当前客户端的网络质量等级,N为网络质量等级数量。

进一步优选的,还包括:报文监测模块,用于监测客户端发送错误报文的数量在第一预设时长内增加的个数是否达到预设个数;网络质量等级控制模块,用于当客户端发送错误报文的数量在预设时长内增加预设个数,则将该客户端对应的网络质量等级下降至下一级;若当前客户端对应的网络质量等级为最低等级,则不作处理。

进一步优选的,所述报文监测模块还用于监测服务器与客户端完成一次报文交互的时间是否超过预设消耗时间;所述网络质量等级控制模块还用于当第二预设时长内监测服务器与客户端完成一次报文交互的时间超过预设消耗时间,则将该客户端对应的网络质量等级下降至下一级;若当前客户端对应的网络质量等级为最低等级,则不作处理。

与现有技术相比,本发明通过监测客户端的网络质量数据来计算相应的保活报文的时间间隔,为不同网络质量等级的客户端分配不同保活报文的时间间隔提供计算依据,从而实现向网络质量较好的客户端发送保活报文的时间间隔比较长,向网络质量较差的客户端发送保活报文的时间间隔比较短,通过调节保活报文的时间间隔来减少保活报文对网络带宽的占用,从而节约网络带宽。

附图说明

下面将以明确易懂的方式,结合附图说明优选实施方式,对本发明予以进一步说明。

图1为本发明长连接服务器保活报文控制方法的主要步骤示意图;

图2为本发明长连接服务器保活报文控制方法的完整步骤示意图;

图3为本发明长连接服务器保活报文控制系统的主要组成示意图;

图4为本发明长连接服务器保活报文控制系统的完整组成示意图。

附图标号说明:

100、报文接收模块,200、网络质量数据监测模块,210、第一记录子模块,220、第二记录子模块,230、网络质量确定子模块,300、保活报文管理模块,310、网络质量等级划分子模块,320、网络质量等级判断子模块,330、时间间隔计算子模块,400、报文发送模块,500、报文监测模块,600、网络质量等级控制模块。

具体实施方式

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对照附图说明本发明的具体实施方式。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图,并获得其他的实施方式。

为使图面简洁,各图中只示意性地表示出了与本发明相关的部分,它们并不代表其作为产品的实际结构。另外,以使图面简洁便于理解,在有些图中具有相同结构或功能的部件,仅示意性地绘示了其中的一个,或仅标出了其中的一个。在本文中,“一个”不仅表示“仅此一个”,也可以表示“多于一个”的情形。

图1为本发明一种长连接服务器保活报文控制方法的主要步骤示意图,如图1所示,一种长连接服务器保活报文控制方法,包括步骤:S100、接收客户端发送的报文,并根据所述报文监测客户端的网络质量数据;S200、根据客户端的网络质量数据计算该客户端对应的保活报文的时间间隔;S300、按照所述客户端对应的保活报文的时间间隔向该客户端发送保活报文。

具体的,本发明监控每个客户端的网络质量,对于网络质量较好的客户端,不需要过于频繁地发送保活报文即KeepAlive报文,对于网络质量较差的客户端,由于其发生断线的概率较高,因此发送KeepAlive报文的频率也相应高些。本发明通过监测客户端的网络质量数据来计算相应的保活报文的时间间隔,通过调节保活报文的时间间隔来减少保活报文对网络带宽的占用,从而节约网络带宽。

图2为本发明长连接服务器保活报文控制方法的完整步骤示意图。优选的,如图2所示,所述步骤S100“根据所述报文监测客户端的网络质量数据”进一步包括步骤:S110、记录客户端发送报文失败的次数;S120、记录客户端报文的响应速度;S130、根据客户端发送报文失败的次数和客户端报文的响应速度确定客户端的网络质量数据。

具体的,本发明监控每个客户端的设备对保活报文的响应速度,一般而言,响应速度越快,网络质量越好,而响应速度慢,或者不响应,需要重传的设备,网络质量较差。本发明根据客户端发送报文失败次数以及客户端报文的响应速度来确定不同的客户端的网络质量数据,为不同网络质量等级的客户端分配不同保活报文的时间间隔提供计算依据,从而实现向网络质量较好的客户端发送保活报文的时间间隔比较长,向网络质量较差的客户端发送保活报文的时间间隔比较短,减少保活报文发送,实现合理利用网络带宽。

如图2所示,优选的,所述步骤S200根据客户端的网络质量数据计算该客户端对应的保活报文的时间间隔进一步包括步骤:S210、对网络质量数据进行量化,将网络质量数据分为N个网络质量等级;S220、根据监测的客户端的网络质量数据判断该客户端的网络质量等级;S230、按照以下公式计算该客户端对应的保活报文的时间间隔T,T=Tmin+(Tmax-Tmin)*i/N;其中,Tmin为网络质量等级为最低等级时的保活报文的时间间隔,Tmax为网络质量等级为最高等级时的保活报文的时间间隔,i为当前客户端的网络质量等级,N为网络质量等级数量。

具体的,下面详细讲述KeepAlive报文发送的时间间隔的计算方法。

设网络最佳情况下,KeepAlive报文的时间间隔也应该最长,设为Tmax,网络环境最差的情况下,KeepAlive报文的时间间隔最短,设为Tmin。为了得到确切的网络质量数据,必须对网络质量进行量化,将网络质量分为10个等级,最好的是L10,最差的是L1,L10的KeepAlive报文时间间隔为Tmax,L1的KeepAlive报文时间间隔则为Tmin,中间第i等级为Li,则KeepAlive时间间隔为Tmin+(Tmax-Tmin)*i/10。

优选的,还包括步骤:S400、当监测到客户端发送错误报文的数量在第一预设时长内增加预设个数,则将该客户端对应的网络质量等级下降至下一级;若当前客户端对应的网络质量等级为最低等级,则不作处理。

具体的,本实施例中根据实际客户端的网络环境来调整客户端的网络质量等级,比如,如果第一预设时长内(本实施例中以1小时为例)错误报文增加预设个数(本实施例中以1个为例),则等级下降一级,L1级为最低等级,达到最低等级后就不再下降。本发明根据监测实际客户端网络环境的变化动态地调整客户端的网络质量等级,根据网络等级的变化调整相应的保活报文的时间间隔,更加灵活适用于多变的网络环境。

优选的,还包括步骤:S500、当第二预设时长内监测到服务器与客户端完成一次报文交互的时间超过预设消耗时间,则将该客户端对应的网络质量等级下降至下一级;若当前客户端对应的网络质量等级为最低等级,则不作处理。

具体的,设正常的报文交互一次的预设消耗时间为Tkeepalive,如果第二预设时长(以1个小时为例)内有一次交互时间大于Tkeepalive则等级也下降一级。本发明根据监测实际客户端网络环境的变化动态地调整客户端的网络质量等级,根据网络等级的变化调整相应的保活报文的时间间隔,更加灵活适用于多变的网络环境。

图3为本发明长连接服务器保活报文控制系统的主要组成示意图。如图3所示,一种长连接服务器保活报文控制系统,包括:报文接收模块100,用于接收客户端发送的报文;网络质量数据监测模块200,用于根据客户端发送的报文监测客户端的网络质量数据;保活报文管理模块300,用于根据客户端的网络质量数据计算该客户端对应的保活报文的时间间隔;报文发送模块400,用于按照所述客户端对应的保活报文的时间间隔向该客户端发送保活报文。

具体的,本发明监控每个客户端的网络质量,对于网络质量较好的客户端,不需要过于频繁地发送保活报文即KeepAlive报文,对于网络质量较差的客户端,由于其发生断线的概率较高,因此发送KeepAlive报文的频率也相应高些。本发明通过监测客户端的网络质量数据来计算相应的保活报文的时间间隔,通过调节保活报文的时间间隔来减少保活报文对网络带宽的占用,从而节约网络带宽。

图4为本发明长连接服务器保活报文控制系统的完整组成示意图。如图4所示,优选的,所述网络质量数据监测模块200进一步包括:第一记录子模块210,用于记录客户端发送报文失败的次数;第二记录子模块220,用于记录客户端报文的响应速度;网络质量确定子模块230,用于根据客户端发送报文失败的次数和客户端报文的响应速度确定客户端的网络质量数据。

具体的,本实施例中客户端发送报文失败次数越高,说明该客户端的网络质量越差,客户端报文的响应速度的计算方法是根据发送出去的报文时间与响应的报文时间差,时间差越长说明网络质量越差,时间越短,说明网络质量越好。

优选的,所述保活报文管理模块300进一步包括:网络质量等级划分子模块310,用于对网络质量数据进行量化,将网络质量数据分为N个网络质量等级;网络质量等级判断子模块320,用于根据监测的客户端的网络质量数据判断该客户端对应的网络质量等级;时间间隔计算子模块330,用于按照以下公式计算该客户端对应的保活报文的时间间隔T,T=Tmin+(Tmax-Tmin)*i/N;其中,Tmin为网络质量等级为最低等级时的保活报文的时间间隔,Tmax为网络质量等级为最高等级时的保活报文的时间间隔,i为当前客户端的网络质量等级,N为网络质量等级数量。

具体的,下面详细讲述KeepAlive报文发送的时间间隔的计算方法。

设网络最佳情况下,KeepAlive报文的时间间隔也应该最长,设为Tmax,网络环境最差的情况下,KeepAlive报文的时间间隔最短,设为Tmin。为了得到确切的网络质量数据,必须对网络质量进行量化,将网络质量分为10个等级,最好的是L10,最差的是L1,L10的KeepAlive报文时间间隔为Tmax,L1的KeepAlive报文时间间隔则为Tmin,中间第i等级为Li,则KeepAlive时间间隔为Tmin+(Tmax-Tmin)*i/10。

优选的,还包括:报文监测模块500,用于监测客户端发送错误报文的数量在预设时长内增加的个数是否达到预设个数;网络质量等级控制模块600,用于当客户端发送错误报文的数量在预设时长内增加预设个数,则将该客户端对应的网络质量等级下降至下一级;若当前客户端对应的网络质量等级为最低等级,则不作处理。

具体的,本实施例中根据实际客户端的网络环境来调整客户端的网络质量等级,比如,如果第一预设时长内(本实施例中以1小时为例)错误报文增加预设个数(本实施例中以1个为例),则等级下降一级,L1级为最低等级,达到最低等级后就不再下降。本发明根据监测实际客户端网络环境的变化动态地调整客户端的网络质量等级,根据网络等级的变化调整相应的保活报文的时间间隔,更加灵活适用于多变的网络环境。

优选的,所述报文监测模块500还用于监测服务器与客户端完成一次报文交互的时间是否超过预设消耗时间;所述网络质量等级控制模块600还用于当监测服务器与客户端完成一次报文交互的时间超过预设消耗时间,则将该客户端对应的网络质量等级下降至下一级;若当前客户端对应的网络质量等级为最低等级,则不作处理。

具体的,设正常的报文交互一次的预设消耗时间为Tkeepalive,如果第二预设时长(以1个小时为例)内有一次交互时间大于Tkeepalive则等级也下降一级。本发明根据监测实际客户端网络环境的变化动态地调整客户端的网络质量等级,根据网络等级的变化调整相应的保活报文的时间间隔,更加灵活适用于多变的网络环境。

需要说明的是,本系统中各模块之间的信息交互、执行过程等内容与上述方法实施例基于同一构思,具体内容可参见本发明方法实施例中的叙述,此处不再赘述。

应当说明的是,上述实施例均可根据需要自由组合。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1