一种确定用户上线时长的方法及装置与流程

文档序号:17586000发布日期:2019-05-03 21:19阅读:349来源:国知局
一种确定用户上线时长的方法及装置与流程

本申请涉及通信技术领域,特别是涉及一种确定用户上线时长的方法及装置。



背景技术:

目前,基于虚拟业务冗余协议(virtualserviceredundancyprotocol,vsrp)的多机备份功能的应用越来越广泛。应用多机备份功能的多机备份组中,通常包括两台设备,即主用设备和备用设备。主用设备可以为业务提供支持,转发业务流量,并可以向备用设备发送备份信息;备用设备可以接收主用设备发送的备份信息,并在主用设备发生故障后,转换成主用设备,继续转发业务流量,使业务不会中断。

其中,用户计费是网络中的常见业务之一。针对该业务,当用户上线成功后,主用设备会向验证、授权和记账(authentication、authorization、accounting,aaa)服务器发送计费开始通知,并记录用户上线时自身的系统时间(即上线时间)。之后,主用设备记录该用户的在线时长,并在该在线时长达到预设时长时,向aaa服务器发送计费更新报文,计费更新报文中携带用户的在线时长。

同时,主设备还会把该用户的上线时间同步至备用设备中。相应的,网络中还设置有网络时间协议(networktimeprotocol,ntp)服务器,主用设备和备用设备均从ntp服务器中获取自身的系统时间,以保证主用设备和备用设备中的系统时间相同。当备用设备替代主用设备工作时,备用设备根据该用户的上线时间和本地的系统时间,继续记录该用户的在线时长,以便继续发送计费更新报文,对该用户进行计费。这样,由于主用设备和备用设备中的系统时间相同,主设备把用户备份到备用设备后,备用设备上计算的在线时长和在主设备上计算的在线时长也是相同的,保证了计费统计的准确性。

然而,基于现有技术,网络中需要设置ntp服务器,以保证主用设备和备用设备的系统时间相同,如果ntp服务器发生故障,则主用设备和备用设备中的系统时间可能无法同步,这样,在进行主备转换后,备份设备根据主设备发送的上线时间和本地的系统时间计算该用户的上线时长,会导致用户的在线时长计算不准确。



技术实现要素:

有鉴于此,本申请提供一种确定用户上线时长的方法及装置,以提高计算用户的在线时长的准确度,并且,基于本方案,第一设备和第二设备的系统时间不需要相同,网络中无需设置ntp服务器,降低了布网成本。具体技术方案如下:

第一方面,提供了一种确定用户上线时长的方法,所述方法应用于多机备份组中的第一设备,所述多机备份组还包括第二设备,所述方法包括:

向所述第二设备发送第一通告报文,所述第一通告报文携带所述第一设备当前的第一运行时长;

接收所述第二设备发送的第一响应报文,所述第一响应报文携带所述第二设备发送所述第一响应报文时所述第二设备的第二运行时长;

根据所述第一运行时长、所述第二运行时长、及所述第一设备接收到所述第一响应报文时的第三运行时长,确定所述第一设备与所述第二设备之间的运行时长差值,所述运行时长差值用于计算用户的上线时长。

可选的,所述方法还包括:

接收所述第二设备发送的第一同步消息,所述第一同步消息携带第一用户的用户信息、以及所述第一用户在所述第二设备中上线时所述第二设备的运行时长,所述第一用户的用户信息用于表示所述第一用户是在所述第二设备中上线的用户;

根据所述第一用户在所述第二设备中上线时所述第二设备的运行时长和所述运行时长差值,获取所述第一用户在所述第二设备中上线时所述第一设备的第四运行时长;

当所述第一设备由备用设备切换为主用设备时,根据所述第四运行时长和所述第一设备的当前运行时长,确定所述第一用户的上线时长。

可选的,所述方法还包括:

接收所述第二设备发送的第二同步消息,所述第二同步消息携带第一用户的用户信息、以及所述第二设备确定出的所述第一用户在所述第二设备中上线时所述第一设备的第四运行时长,所述第一用户的用户信息用于表示所述第一用户是在所述第二设备中上线的用户;

当所述第一设备由备用设备切换为主用设备时,根据所述第四运行时长和所述第一设备的当前运行时长,确定所述第一用户的上线时长。

可选的,当所述第一设备为主用设备时,所述方法还包括:

向所述第二设备发送第三同步消息,所述第三同步消息携带第二用户的用户信息、以及所述第二用户在所述第一设备中上线时所述第一设备的第五运行时长,所述第二用户的用户信息用于表示所述第二用户是在所述第一设备中上线的用户;

所述第五运行时长用于使所述第二设备获取所述第二用户在所述第一设备中上线时所述第二设备的第六运行时长,并在所述第二设备作为主用设备时,利用所述第六运行时长确定所述第二用户的上线时长。

可选的,当所述第一设备为主用设备时,所述方法还包括:

根据第二用户在所述第一设备中上线时所述第一设备的运行时长和所述运行时长差值,确定所述第二用户在所述第一设备中上线时所述第二设备的运行时长;

向所述第二设备发送第四同步消息,所述第四同步消息携带所述第二用户的用户信息、以及所述第二用户在所述第一设备中上线时所述第二设备的运行时长,以使所述第二设备由备用设备切换为主用设备时,根据所述第二用户在所述第一设备中上线时所述第二设备的运行时长和所述第二设备的当前运行时长,确定所述第二用户的上线时长。

可选的,所述根据所述第一运行时长、所述第二运行时长、及所述第一设备接收到所述第一响应报文时的第三运行时长,确定所述第一设备与所述第二设备之间的运行时长差值,包括:

根据所述第一设备接收到所述第一响应报文时的第三运行时长和所述第一运行时长,计算所述第一设备与所述第二设备之间的网络时延;

获取所述网络时延与所述第一运行时长的和值,并确定所述和值与所述第二运行时长的差值;

将所述差值作为所述第一设备与所述第二设备之间的第一初始运行时长差值;

根据所述第一初始运行时长差值,确定所述第一设备与所述第二设备之间的运行时长差值。

可选的,所述根据所述第一初始运行时长差值,确定所述第一设备与所述第二设备之间的运行时长差值,包括:

将所述第一初始运行时长差值作为所述第一设备与所述第二设备之间的运行时长差值。

可选的,所述根据所述第一初始运行时长差值,确定所述第一设备与所述第二设备之间的运行时长差值,包括:

接收所述第二设备发送的确认报文,所述确认报文携带所述第二设备确定出的所述第二设备与所述第一设备之间的第二初始运行时长差值;

将所述第一初始运行时长差值的绝对值与所述第二初始运行时长差值的绝对值的平均值,作为所述第一设备与所述第二设备之间的运行时长差值。

可选的,所述方法还包括:

当接收到所述第二设备发送的第二通告报文时,向所述第二设备发送第二响应报文,所述第二响应报文携带所述第一设备发送所述第二响应报文时的第七运行时长,以使所述第二设备根据所述第七运行时长计算所述第二设备与所述第一设备之间的运行时长差值。

第二方面,提供了一种确定用户上线时长的装置,所述装置应用于多机备份组中的第一设备,所述多机备份组还包括第二设备,所述装置包括:

第一发送模块,用于向所述第二设备发送第一通告报文,所述第一通告报文携带所述第一设备当前的第一运行时长;

第一接收模块,用于接收所述第二设备发送的第一响应报文,所述第一响应报文携带所述第二设备发送所述第一响应报文时所述第二设备的第二运行时长;

第一确定模块,用于根据所述第一运行时长、所述第二运行时长、及所述第一设备接收到所述第一响应报文时的第三运行时长,确定所述第一设备与所述第二设备之间的运行时长差值,所述运行时长差值用于计算用户的上线时长。

可选的,所述装置还包括:

第二接收模块,用于接收所述第二设备发送的第一同步消息,所述第一同步消息携带第一用户的用户信息、以及所述第一用户在所述第二设备中上线时所述第二设备的运行时长,所述第一用户的用户信息用于表示所述第一用户是在所述第二设备中上线的用户;

获取模块,用于根据所述第一用户在所述第二设备中上线时所述第二设备的运行时长和所述运行时长差值,获取所述第一用户在所述第二设备中上线时所述第一设备的第四运行时长;

第二确定模块,用于当所述第一设备由备用设备切换为主用设备时,根据所述第四运行时长和所述第一设备的当前运行时长,确定所述第一用户的上线时长。

可选的,所述装置还包括:

第三接收模块,用于接收所述第二设备发送的第二同步消息,所述第二同步消息携带第一用户的用户信息、以及所述第二设备确定出的所述第一用户在所述第二设备中上线时所述第一设备的第四运行时长,所述第一用户的用户信息用于表示所述第一用户是在所述第二设备中上线的用户;

第三确定模块,用于当所述第一设备由备用设备切换为主用设备时,根据所述第四运行时长和所述第一设备的当前运行时长,确定所述第一用户的上线时长。

可选的,所述第一确定模块,具体用于:

根据所述第一设备接收到所述第一响应报文时的第三运行时长和所述第一运行时长,计算所述第一设备与所述第二设备之间的网络时延;

获取所述网络时延与所述第一运行时长的和值,并确定所述和值与所述第二运行时长的差值;

将所述差值作为所述第一设备与所述第二设备之间的第一初始运行时长差值;

根据所述第一初始运行时长差值,确定所述第一设备与所述第二设备之间的运行时长差值。

可选的,所述第一确定模块,具体用于:

将所述第一初始运行时长差值作为所述第一设备与所述第二设备之间的运行时长差值。

可选的,所述第一确定模块,具体用于:

接收所述第二设备发送的确认报文,所述确认报文携带所述第二设备确定出的所述第二设备与所述第一设备之间的第二初始运行时长差值;

将所述第一初始运行时长差值的绝对值与所述第二初始运行时长差值的绝对值的平均值,作为所述第一设备与所述第二设备之间的运行时长差值。

可选的,当所述第一设备为主用设备时,所述装置还包括:

第二发送模块,用于向所述第二设备发送第三同步消息,所述第三同步消息携带第二用户的用户信息、以及所述第二用户在所述第一设备中上线时所述第一设备的第五运行时长,所述第二用户的用户信息用于表示所述第二用户是在所述第一设备中上线的用户;

所述第五运行时长用于使所述第二设备获取所述第二用户在所述第一设备中上线时所述第二设备的第六运行时长,并在所述第二设备作为主用设备时,利用所述第六运行时长确定所述第二用户的上线时长。

可选的,当所述第一设备为主用设备时,所述装置还包括:

第四确定模块,用于根据第二用户在所述第一设备中上线时所述第一设备的运行时长和所述运行时长差值,确定所述第二用户在所述第一设备中上线时所述第二设备的运行时长;

第三发送模块,用于向所述第二设备发送第四同步消息,所述第四同步消息携带所述第二用户的用户信息、以及所述第二用户在所述第一设备中上线时所述第二设备的运行时长,以使所述第二设备由备用设备切换为主用设备时,根据所述第二用户在所述第一设备中上线时所述第二设备的运行时长和所述第二设备的当前运行时长,确定所述第二用户的上线时长。

可选的,所述装置还包括:

第四发送模块,用于当接收到所述第二设备发送的第二通告报文时,向所述第二设备发送第二响应报文,所述第二响应报文携带所述第一设备发送所述第二响应报文时的第七运行时长,以使所述第二设备根据所述第七运行时长计算所述第二设备与所述第一设备之间的运行时长差值。

第三方面,提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;

存储器,用于存放计算机程序;

处理器,用于执行存储器上所存放的程序时,实现第一方面任一所述的方法步骤。

第四方面,提供了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现第一方面任一所述的方法步骤。

第五方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面任一所述的方法步骤。

因此,通过应用本申请提供的确定用户上线时长的方法中,多机备份组中的第一设备向第二设备发送第一通告报文,第一通告报文携带第一设备当前的第一运行时长,第一设备接收第二设备发送的第一响应报文,第一响应报文携带第二设备发送第一响应报文时第二设备的第二运行时长。然后,第一设备可以根据第一运行时长、第二运行时长、及第一设备接收到第一响应报文时的第三运行时长,确定第一设备与第二设备之间的运行时长差值,该运行时长差值用于计算用户的上线时长。这样,第一设备通过运行时长差值计算出在第二设备中上线的第一用户的上线时长,从而提高计算用户的在线时长的准确度,并且,基于本方案,第一设备和第二设备的系统时间不需要相同,网络中无需设置ntp服务器,节约布网成本。

当然,实施本申请的任一产品或方法并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种网络系统图;

图2为本发明实施例提供的一种确定用户上线时长的方法流程图;

图3为本发明实施例提供的一种确定用户上线时长的方法流程图;

图4为本发明实施例提供的一种确定用户上线时长的方法流程图;

图5为本发明实施例提供的一种确定用户上线时长的装置结构示意图;

图6为本发明实施例提供的一种确定用户上线时长的装置结构示意图;

图7为本发明实施例提供的一种确定用户上线时长的装置结构示意图;

图8为本发明实施例提供的一种确定用户上线时长的装置结构示意图;

图9为本发明实施例提供的一种确定用户上线时长的装置结构示意图;

图10为本发明实施例提供的一种确定用户上线时长的装置结构示意图;

图11为本发明实施例提供的一种电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请实施例保护的范围。

本申请实施例提供了一种确定用户上线时长的方法,该方法可以应用多机备份组中的设备。多机备份组通常包含两台或两台以上设备。以多机备份组包含两台设备为例,其中一台设备可作为主用设备,另一台设备可作为备用设备。多机备份组中的设备均支持基于vsrp的多机备份功能。通过多机备份组能够提供一种设备级别的网络可靠性解决方案,它可以在网络节点发生故障的情况下,保证用户业务数据的不间断传输。如图1所示,为本申请实施例提供的一种网络系统的示意图。其中,该网络系统包括多机备份组、多个用户设备和业务服务器。用户设备通过多机备份组中的设备访问业务服务器。

本申请实施例中,多机备份组中的任一设备(可称为第一设备)可以向多机备份组中的第二设备发送通告报文,该通告报文携带第一设备当前的第一运行时长。然后,第一设备会接收到第二设备发送的响应报文,该响应报文携带第二设备发送该响应报文时第二设备的第二运行时长。第一设备根据第一运行时长、第二运行时长、及接收到响应报文时第一设备的第三运行时长,确定第一设备与第二设备之间的运行时长差值。当第一设备由备用设备切换为主用设备时,第一设备可以根据第一用户上线时第一设备的第四运行时长计算第一用户的上线时长,该第四运行时长根据第一用户上线时第二设备的运行时长和运行时长差值计算得到。这样,第一设备可以根据第一用户上线时第一设备的第四运行时长,计算出第一用户的上线时长,提高了计算用户的在线时长的准确度,并且,基于本方案,第一设备和第二设备的系统时间不需要相同,网络中无需设置ntp服务器,节约布网成本。

如图2所示,以该方法应用于多机备份组中的第一设备为例,该方法的处理过程具体可以包括以下步骤。其中,第一设备可以为多机备份组中的主用设备,也可以为多机备份组中的备用设备。

步骤201,向第二设备发送第一通告报文。

其中,第一通告报文携带第一设备当前的第一运行时长。运行时长可以是以设备启动时的系统时间为起点,以当前的系统时间为终点,该起点至终点之间的时间长度为运行时长。

本申请实施例中,当第一设备启动后,第一设备可以启动计时器,以记录第一设备的运行时长。其中,该运行时长也可以称为第一设备的系统运行时长。当第一设备和第二设备均上线后,第一设备和第二设备之间会建立连接,然后,第一设备可以获取当前自身的运行时长,并向第二设备发送第一通告报文,第一通告报文中可以携带有该运行时长(即第一运行时长),第一运行时长即第一设备发送该第一通告报文时第一设备的运行时长。

可选的,本申请实施例中的通告报文/响应报文可以采用技术人员自定义的报文,也可以采用现有技术中的vsrp协商报文来实现,本申请实施例不做限定。

步骤202,接收第二设备发送的第一响应报文。

其中,第一响应报文携带第二设备发送第一响应报文时第二设备的第二运行时长。

本申请实施例中,第二设备接收到第一通告报文后,可以获取当前自身的运行时长(即第二运行时长),并向第一设备发送响应报文(即第一响应报文)。第一响应报文携带第二运行时长。第一设备接收到第一响应报文后,可以对第一响应报文进行解析,获取其中携带的第二运行时长。

另外,第一响应报文中还可以携带有上述第一运行时长。相应的,第一设备对第一响应报文进行解析,还可以获取到第一运行时长,从而确定该第一响应报文是针对第一通告报文的响应报文,以便后续能够准确的计算出网络时延。

步骤203,根据第一运行时长、第二运行时长、及第一设备接收到第一响应报文时的第三运行时长,确定第一设备与第二设备之间的运行时长差值。

其中,该运行时长差值用于计算用户的上线时长。

本申请实施例中,第一设备接收到第一响应报文时,还可以获取当前自身的运行时长(即第三运行时长),第三运行时长即第一设备接收到第一响应报文时第一设备的运行时长。第一设备可以根据第一运行时长、第二运行时长和第三运行时长,计算第一设备与第二设备之间的运行时长差值。

其中,如果第一设备的系统时间早于第二设备的系统时间,则第一设备计算出的运行时长差值为负,例如,如果第一设备的系统时间为8:00,第二设备的系统时间为8:15,则计算出的运行时长差值为-15;如果第一设备的系统时间晚于第二设备的系统时间,则第一设备计算出的运行时长差值为正,例如,如果第一设备的系统时间为8:30,第二设备的系统时间为8:15,则计算出的运行时长差值为15;如果第一设备的系统时间与第二设备的系统时间相同,则第一设备计算出的运行时长差值为零。

这样,多机备份组中的第一设备向第二设备发送第一通告报文,第一通告报文携带第一设备当前的第一运行时长,第一设备接收第二设备发送的第一响应报文,第一响应报文携带第二设备发送第一响应报文时第二设备的第二运行时长。然后,第一设备根据第一运行时长、第二运行时长、及第一设备接收到第一响应报文时的第三运行时长,确定第一设备与第二设备之间的运行时长差值,后续,第一设备可以通过该运行时长差值计算出在第二设备中上线的第一用户的上线时长,从而提高计算用户的在线时长的准确度,并且,基于本方案,第一设备和第二设备的系统时间不需要相同,网络中无需设置ntp服务器,节约布网成本。

可选的,第一设备计算第一设备与第二设备之间的运行时长差值的具体过程可以包括以下步骤。

步骤一、根据第一设备接收到第一响应报文时的第三运行时长和第一运行时长,计算第一设备与第二设备之间的网络时延。

本申请实施例中,第一设备可以计算第三运行时长与第一运行时长的差值,该差值即第一设备从发送第一通告报文到接收到第一响应报文所消耗的时长。第一设备将该差值除以二,即得到第一设备与第二设备之间的网络时延。

例如,第一设备发送第一通告报文时,获取到第一运行时长为10s,第一设备接收到第一响应报文,获取到第三运行时长14s,则可以确定出第一设备与第二设备之间的网络时延为(14-10)/2=2s。

步骤二、获取网络时延与第一运行时长的和值,并确定和值与第二运行时长的差值,将该差值作为第一设备与第二设备之间的第一初始运行时长差值。

本申请实施例中,第一设备计算出网络时延后,可以计算该网络时延与第一运行时长的和值,然后再计算该和值与第二运行时长的差值,将该差值作为第一设备与第二设备之间的第一初始运行时长差值。

例如,第一设备计算出网络时延为2s,第一运行时长为10s,第一响应报文携带的第二运行时长为8s,则可以计算出第一初始运行时长差值为2+10-8=4s。

步骤三、根据第一初始运行时长差值确定第一设备与第二设备的运行时长的运行时长差值。

本申请实施例中,第一设备根据第一初始运行时长差值确定第一设备与第二设备的运行时长的运行时长差值的方式可以是多种多样的,本申请实施例提供了两种可选的处理方式,具体如下。

方式一、第一设备直接将第一初始运行时长差值作为第一设备与第二设备的运行时长的运行时长差值。

例如,第一设备计算出第一初始运行时长差值为4s,则确定第一设备与第二设备的运行时长的运行时长差值为4s。

方式二、第一设备接收第二设备发送的确认报文,确认报文携带第二设备确定出的第二设备与第一设备之间的第二初始运行时长差值,将第一初始运行时长差值的绝对值与第二初始运行时长差值的绝对值的平均值,作为第一设备与第二设备之间的运行时长差值。

本申请实施例中,第二设备也可以计算自身与第一设备之间的初始运行时长差值(即第二初始运行时长差值)。其中,第二设备计算第二初始运行时长差值的过程与上述步骤201~步骤203的处理过程是类似,此处不再赘述。

第二设备可以向第一设备发送确认报文,该确认报文携带第二设备计算出的第二设备与第一设备的运行时长的第二初始运行时长差值。第一设备可以计算第一初始运行时长差值的绝对值与第二初始运行时长差值的绝对值的平均值,然后根据该平均值确定第一设备与第二设备的运行时长的运行时长差值。

其中,该平均值为正数,如果第一设备计算出的第一初始运行时长差值为正数,则将该平均值作为第一设备与第二设备的运行时长的运行时长差值;如果第一设备计算出的第一初始运行时长差值为负数,则将该平均值的相反数作为第一设备与第二设备的运行时长的运行时长差值。

或者,由于第一初始运行时长差值和第二初始运行时长差值中,必然有一个为正数、另一个为负数,因此,第一设备也可以用第一初始运行时长差值减去第二初始运行时长差值,然后将得到的结果除以二,得到第一设备与第二设备之间的运行时长差值。例如,第一初始运行时长差值为4s,第二初始运行时长差值为-5s,则可以计算出第一设备与第二设备之间的运行时长差值为(4-(-5))/2=4.5s。

这样,基于步骤201~步骤203的处理,第一设备可以计算出第一设备与第二设备的运行时长的运行时长差值,以便后续根据该运行时长差值,准确的计算出用户的上线时长,具体的处理过程后续会进行详细说明。

另外,本申请实施例中,第二设备也可以采用相同的方式,计算第二设备与第一设备之间的运行时长差值,也即,第二设备会向第一设备发送第二通告报文,第二通信报文携带第二设备发送第二通信报文时第二设备的运行时长(可称为第八运行时长),当第一设备接收到第二设备发送的第二通告报文时,第一设备会向第二设备发送第二响应报文,该第二响应报文携带第一设备发送第二响应报文时第一设备的第第七运行时长,以使第二设备计算出自身与第一设备之间的运行时长差值,具体的处理过程与步骤201~步骤203的处理类似,此处不再赘述。

其中,第一设备计算出的运行时长差值和第二设备计算出的运行时长差值可以互为相反数。例如,如果第一设备的系统时间为8:00,第二设备的系统时间为8:15,则第一设备计算出的运行时长差值为-15,第二设备计算出的运行时长差值为15;如果第一设备的系统时间为8:30,第二设备的系统时间为8:15,则计算出的运行时长差值为15,第二设备计算出的运行时长差值为-15;如果第一设备的系统时间与第二设备的系统时间相同,则第一设备和第二设备计算出的运行时长差值均为零。

本申请实施例中,第一设备和第二设备之间可以建立传输控制协议(transmissioncontrolprotocol,tcp)数据通道,以便进行备份数据的同步。在在多机备份组中,只有主用设备会接入用户设备,并通过tcp数据通道向备用设备发送同步消息。当主用设备故障时,备用设备会自动切换为主用设备为用户提供服务。也即,当第一设备由备用设备切换为主用设备时,第一设备需要记录当前网络中各用户设备的上线时长。对于在第二设备中上线的用户(即第一用户),第一设备需要先获知该第一用户上线时第一设备的第四运行时长,然后根据该第四运行时长和当前第一设备的运行时长,计算出第一用户当前的上线时长,以便于对第一用户进行计费。

可选的,第一设备可以先计算第一用户在第二设备中上线时第一设备的第四运行时长,然后再计算第一用户的上线时长,具体的处理过程可以包括以下步骤:

步骤一、接收第二设备发送的第一同步消息。

其中,第一同步消息携带第一用户的用户信息、以及第一用户在第二设备中上线时第二设备的运行时长,第一用户的用户信息用于表示第一用户是在第二设备中上线的用户。

本申请实施例中,当第二设备为主用设备、第一设备为备用设备时,第一用户的用户设备会接入第二设备,然后,第二设备可以记录该用户设备上线时第二设备的运行时长。第二设备可以基于预设的发送周期,通过tcp数据通道向备用设备发送第一同步消息,该第一同步消息中可以携带有第一用户的用户信息、以及第一用户上线时第二设备的运行时长。用户信息可以包括用户标识、用户终端的网络地址等。第一设备接收到第一同步消息后,可以根据该用户信息识别出第一用户是在第二设备中上线的用户,并获取第一用户在第二设备中上线时第二设备的运行时长。

步骤二、根据第一用户在第二设备中上线时第二设备的运行时长和运行时长差值,获取第一用户在第二设备中上线时第一设备的第四运行时长。

本申请实施例中,第一设备可以用该运行时长加上第一设备计算出的运行时长差值,得到的和值即该第一用户上线时第一设备的运行时长(即第四运行时长)。

步骤三、当第一设备由备用设备切换为主用设备时,根据第四运行时长和第一设备的当前运行时长,确定第一用户的上线时长。

本申请实施例中,当第一设备由备用设备切换为主用设备时,第一设备可以用当前运行时长减去第四运行时长,得到第一用户的上线时长。

例如,a设备为主用设备,b设备为备用设备,a设备先启动,当a设备启动1000秒时用户设备user1上线,则a设备记录user1上线时a设备的运行时长为1000秒。当a设备启动3000秒后b设备启动,基于步骤201~步骤203,a设备可以计算出自身与b设备之间的运行时长差值为4000-1000=3000秒;b设备可以计算出自身与a设备之间的运行时长差值为1000–4000=-3000秒。a设备通过同步消息,将user1上线时a设备的运行时长(即1000秒)发生给b设备。b设备则会用该运行时长加上b设备计算出的运行时长差值,得到user1上线时b设备的运行时长,即:

user1上线时b设备的运行时长=user1上线时a设备的运行时长+b设备计算出的运行时长差值=1000+(-3000)=-2000秒。

假设a设备在启动5010秒时(即b设备启动2010秒时)发生故障,a设备和b设备进行主备切换,此时,b设备可以用b设备的当前运行时长,减去上述计算出的user1上线时b设备的运行时长,得到user1的上线时长,即:

user1的上线时长=b设备的当前运行时长-user1上线时b设备的运行时长=2010-(-2000)=4010秒。

对于a设备,user1的上线时长=a设备的当前运行时长-user1上线时a设备的运行时长=5010-1000=4010秒。

由此可见,通过本方案,备设备在切换为主设备后,能够准确的计算出用户上线时长。

可选的,也可以由第二设备计算第一用户在第二设备中上线时第一设备的第四运行时长,第一设备获取第二设备计算出的第四运行时长,然后再计算第一用户的上线时长,具体的处理过程可以包括以下步骤:

步骤一、接收第二设备发送的第二同步消息。

其中,第二同步消息携带第一用户的用户信息、以及第二设备确定出的第一用户在第二设备中上线时第一设备的第四运行时长,第一用户的用户信息用于表示第一用户是在第二设备中上线的用户。

本申请实施例中,也可以由主用设备计算第一用户上线时,备用设备的运行时长,然后通过第二同步消息发送给备用设备,具体的处理过程可以为:当第二设备为主用设备时,第一用户的用户设备接入第二设备后,第二设备可以记录该用户设备上线时第二设备的运行时长,然后,第二设备可以用该运行时长减去第二设备计算出的运行时长差值,得到该第一用户上线时第一设备的运行时长(即第四运行时长)。第二设备可以基于预设的发送周期,通过tcp数据通道向备用设备发送第二同步消息,该第二同步消息携带第一用户的用户信息、以及第二设备确定出的第一用户在第二设备中上线时第一设备的第四运行时长。第一设备接收到第二同步消息后,可以根据该用户信息识别出第一用户是在第二设备中上线的用户,并获取第四运行时长,然后对第四运行时长进行存储。

步骤二、当第一设备由备用设备切换为主用设备时,根据第四运行时长和第一设备的当前运行时长,确定第一用户的上线时长。

本申请实施例中,当第一设备由备用设备切换为主用设备时,第一设备可以用当前运行时长减去第四运行时长,得到第一用户的上线时长。

例如,a设备为主用设备,b设备为备用设备,a设备先启动,当a设备启动1000秒时用户设备user1上线,则a设备记录user1上线时a设备的运行时长为1000秒。当a设备启动3000秒后b设备启动,基于步骤201~步骤203,a设备可以计算出与b设备的运行时长的运行时长差值为4000-1000=3000秒。a设备可以计算user1上线时b设备的运行时长,即:

user1上线时b设备的运行时长=user1上线时a设备的运行时长-a设备计算出的与b设备的启动时差=1000-3000=-2000秒。

a设备可以通过同步消息,将user1上线时b设备的运行时长(即-2000秒)发送给b设备。b设备则会进行存储。

假设a设备在启动5010秒时(即b设备启动2010秒时)发生故障,a设备和b设备进行主备切换,此时,b设备可以用当前运行时长,减去预先存储的user1上线时b设备的运行时长,得到user1的上线时长,即:

user1的上线时长=b设备的当前运行时长-user1上线时b设备的运行时长=2010-(-2000)=4010秒。

对于a设备,user1的上线时长=a设备的当前运行时长-user1上线时a设备的运行时长=5010-1000=4010秒。

由此可见,通过本方案,备设备在切换为主设备后,能够准确的计算出用户上线时长。

可选的,与上述方式一对应,当第一设备为主用设备时,第一设备可以向第二设备发送第三同步消息,该第三同步消息携带第二用户的用户信息、以及第二用户在第一设备中上线时第一设备的第五运行时长,第二用户的用户信息用于表示第二用户是在第一设备中上线的用户,第二设备则会根据第五运行时长、以及第二设备计算出的第二设备与第一设备之间的运行时长差值,计算第二用户在第一设备中上线时第二设备的第六运行时长,以便在第二设备由备用设备切换为主用设备时,第二设备根据第六运行时长和第二设备的当前运行时长,确定第二用户的上线时长,从而对第二用户进行计费。

可选的,与上述方式二对应,当第一设备为主用设备时,第一设备可以根据第二用户上线时第一设备的运行时长和运行时长差值,确定第二用户上线第二设备的运行时长,然后,可以向第二设备发送第四同步消息,第四同步消息携带第二用户的用户信息、以及第二用户在第一设备中上线时第二设备的运行时长,以便第二设备由备用设备切换为主用设备时,可以根据第二用户在第一设备中上线时第二设备的运行时长和第二设备的当前运行时长,确定第二用户的上线时长,从而对第二用户进行计费。

可选的,本申请实施例中,只要第一设备和第二设备的系统时间没有发生重置,比如,第一设备与第二设备之间的vsrp连接没有断开,或者,第一设备或第二设备没有重启,则第一设备与第二设备之间的运行时长差值就不会发生变化,不需要重新计算第一设备与第二设备之间的运行时长差值。例如,进行vsrp主备倒换后,不需要重新计算主用设备和备用设备之间的运行时长差值。如果第一设备和/或第二设备的系统时间发生重置,则需要执行步骤201~205的过程,重新计算第一设备与第二设备之间的运行时长差值。+

本申请实施例还提供了一种确定用户上线时长的方法示例,该示例用于对主用设备和备用设备之间的运行时长差值计算过程进行说明,如图3所示,具体包括以下步骤。

步骤301,主用设备向备用设备发送第一通告报文。

其中,第一通告报文携带主用设备当前的第一运行时长t1。

步骤302,备用设备向主用设备发送第一响应报文,

其中,第一响应报文携带备用设备发送第一响应报文时备用设备的第二运行时长t3。

步骤303,主用设备接收备用设备发送的第一响应报文。

步骤304,主用设备根据接收到第一响应报文时主用设备的第三运行时长t5和t1,计算主用设备与备用设备之间的网络时延t6。

步骤305,主用设备确定t6与t1的和值,并确定该和值与t3差值,得到主用设备与备用设备之间的第一初始运行时长差值t7。

步骤301’,备用设备设备向主用设备发送第二通告报文。

其中,第二通告报文携带备用设备发送第二通告报文时的运行时长t2。

步骤302’,备用设备向主用设备发送第二响应报文。

其中,第二响应报文携带主用设备发送第二响应报文时主用设备的运行时长t4。

步骤303’,备用设备接收主用设备发送的响应报文。

步骤304’,备用设备根据接收到第二响应报文时备用设备的运行时长t8和t2,确定备用设备与主用设备之间的网络时延t9。

步骤305’,备用设备确定t9与t2的和值,并确定该和值与t4的差值,得到备用设备与主用设备之间的第二初始运行时长差值t10。

步骤306,备用设备向主用设备发送第一确认报文。

其中,第一确认报文携带t10。

步骤307,主用设备接收备用设备发送的确认报文。

步骤308,主用设备计算t7与t10的差值,并将该差值除以二,得到主用设备与备用设备之间的运行时长差值t12。

步骤306’,主用设备向备用设备发送第二确认报文。

其中,第二确认报文携带t7。

步骤307’,备用设备接收主用设备发送的确认报文。

步骤308’,备用设备计算t10与t7的差值,并将该差值除以二,得到备用设备与主用设备之间的运行时长差值t11。

其中,步骤301~步骤305,与步骤301’~步骤305’的处理顺序可以不分先后。

本申请实施例还提供了一种确定用户上线时长的方法示例,该示例用于对主备倒换时用户上线时长的同步过程进行说明,如图4所示,具体包括以下步骤。

步骤401,第一用户在主设备中上线,主用设备记录第一用户上线时主用设备的运行时长。

步骤402,主用设备向备用设备发送同步消息。

其中,该同步消息携带第一用户的用户信息、以及第一用户在主用设备中上线时主用设备的运行时长。

步骤403,备用设备接收备用设备发送的同步消息。

步骤404,备用设备根据第一用户在主用设备中上线时主用设备的运行时长和备用设备与主用设备之间的运行时长差值,确定第一用户在主用设备中上线时备用设备的运行时长。

步骤405,当主用设备发生故障时,备用设备切换为主用设备。

步骤406,备用设备根据第一用户上线时备用设备的运行时长、以及备用设备的当前运行时长,确定第一用户的上线时长。

基于相同的技术构思,本发明施例还提供了一种确定用户上线时长的装置,该装置应用于多机备份组中的第一设备,该多机备份组还包括第二设备,如图5所示,所述装置包括:

第一发送模块510,用于向所述第二设备发送第一通告报文,所述第一通告报文携带所述第一设备当前的第一运行时长;

第一接收模块520,用于接收所述第二设备发送的第一响应报文,所述第一响应报文携带所述第二设备发送所述第一响应报文时所述第二设备的第二运行时长;

第一确定模块530,用于根据所述第一运行时长、所述第二运行时长、及所述第一设备接收到所述第一响应报文时的第三运行时长,确定所述第一设备与所述第二设备之间的运行时长差值,所述运行时长差值用于计算用户的上线时长。

可选的,如图6所示,所述装置还包括:

第二接收模块540,用于接收所述第二设备发送的第一同步消息,所述第一同步消息携带第一用户的用户信息、以及所述第一用户在所述第二设备中上线时所述第二设备的运行时长,所述第一用户的用户信息用于表示所述第一用户是在所述第二设备中上线的用户;

获取模块550,用于根据所述第一用户在所述第二设备中上线时所述第二设备的运行时长和所述运行时长差值,获取所述第一用户在所述第二设备中上线时所述第一设备的第四运行时长;

第二确定模块560,用于当所述第一设备由备用设备切换为主用设备时,根据所述第四运行时长和所述第一设备的当前运行时长,确定所述第一用户的上线时长。

可选的,如图7所示,所述装置还包括:

第三接收模块570,用于接收所述第二设备发送的第二同步消息,所述第二同步消息携带第一用户的用户信息、以及所述第二设备确定出的所述第一用户在所述第二设备中上线时所述第一设备的第四运行时长,所述第一用户的用户信息用于表示所述第一用户是在所述第二设备中上线的用户;

第三确定模块580,用于当所述第一设备由备用设备切换为主用设备时,根据所述第四运行时长和所述第一设备的当前运行时长,确定所述第一用户的上线时长。

可选的,所述第一确定模块530,具体用于:

根据所述第一设备接收到所述第一响应报文时的第三运行时长和所述第一运行时长,计算所述第一设备与所述第二设备之间的网络时延;

获取所述网络时延与所述第一运行时长的和值,并确定所述和值与所述第二运行时长的差值;

将所述差值作为所述第一设备与所述第二设备之间的第一初始运行时长差值;

根据所述第一初始运行时长差值,确定所述第一设备与所述第二设备之间的运行时长差值。

可选的,所述第一确定模块530,具体用于:

将所述第一初始运行时长差值作为所述第一设备与所述第二设备之间的运行时长差值。

可选的,所述第一确定模块530,具体用于:

接收所述第二设备发送的确认报文,所述确认报文携带所述第二设备确定出的所述第二设备与所述第一设备之间的第二初始运行时长差值;

将所述第一初始运行时长差值的绝对值与所述第二初始运行时长差值的绝对值的平均值,作为所述第一设备与所述第二设备之间的运行时长差值。

可选的,如图8所示,当所述第一设备为主用设备时,所述装置还包括:

第二发送模块590,用于向所述第二设备发送第三同步消息,所述第三同步消息携带第二用户的用户信息、以及所述第二用户在所述第一设备中上线时所述第一设备的第五运行时长,所述第二用户的用户信息用于表示所述第二用户是在所述第一设备中上线的用户;

所述第五运行时长用于使所述第二设备获取所述第二用户在所述第一设备中上线时所述第二设备的第六运行时长,并在所述第二设备作为主用设备时,利用所述第六运行时长确定所述第二用户的上线时长。

可选的,如图9所示,当所述第一设备为主用设备时,所述装置还包括:

第四确定模块5100,用于根据第二用户在所述第一设备中上线时所述第一设备的运行时长和所述运行时长差值,确定所述第二用户在所述第一设备中上线时所述第二设备的运行时长;

第三发送模块5110,用于向所述第二设备发送第四同步消息,所述第四同步消息携带所述第二用户的用户信息、以及所述第二用户在所述第一设备中上线时所述第二设备的运行时长,以使所述第二设备由备用设备切换为主用设备时,根据所述第二用户在所述第一设备中上线时所述第二设备的运行时长和所述第二设备的当前运行时长,确定所述第二用户的上线时长。

可选的,如图10所示,所述装置还包括:

第四发送模块5120,用于当接收到所述第二设备发送的第二通告报文时,向所述第二设备发送第二响应报文,所述第二响应报文携带所述第一设备发送所述第二响应报文时的第七运行时长,以使所述第二设备根据所述第七运行时长计算所述第二设备与所述第一设备之间的运行时长差值。

本申请实施例中,多机备份组中的第一设备向第二设备发送第一通告报文,第一通告报文携带第一设备当前的第一运行时长,第一设备接收第二设备发送的第一响应报文,第一响应报文携带第二设备发送第一响应报文时第二设备的第二运行时长。然后,第一设备可以根据第一运行时长、第二运行时长、及第一设备接收到第一响应报文时的第三运行时长,确定第一设备与第二设备之间的运行时长差值,该差值用于计算在第二设备中上线的第一用户的上线时长。这样,第一设备通过计算得到的差值计算出在第二设备中上线的第一用户的上线时长,从而提高计算用户的在线时长的准确度,并且,基于本方案,第一设备和第二设备的系统时间不需要相同,网络中无需设置ntp服务器,节约布网成本。

本申请实施例还提供了一种电子设备,如图11所示,包括处理器1101、通信接口1102、存储器1103和通信总线1104,其中,处理器1101,通信接口1102,存储器1103通过通信总线1104完成相互间的通信,

存储器1103,用于存放计算机程序;

处理器1101,用于执行存储器1103上所存放的程序时,实现上述确定用户上线时长的方法。

上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。

通信接口用于上述电子设备与其他设备之间的通信。

存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一确定用户上线时长的方法的步骤。

在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一确定用户上线时长的方法。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。

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