一种用于溯源的映射表的更新方法和装置
技术领域
本申请涉及通信技术领域,尤其涉及一种用于溯源的映射表的更新方法和装置。
背景技术
随着宽带和移动用户数量的激增,全球公网互联网协议(Internet Protocol,IP)地址资源已近枯竭,为解决公网IP地址资源枯竭的问题,运营商提出了网络地址转换(Network Address Translation,NAT)技术。运营商级NAT(Carrier-Grade NAT,CGN)设备接收来自于用户的携带有私网IP地址的公网访问请求,并将所述公网访问请求中携带的私网IP地址转换成公网IP地址,使用户能够正常访问外部公网,并且可以实现多个用户共用一个公网IP地址访问外网。
而随着网络安全意识的提高,企业对企业网内部用户(简称为内网用户)向以互联网为例的外部网络发布信息的监管需求,以及根据内网用户的外部网络访问记录对用户的网络访问行为进行数据分析的需求越来越大,因此亟需一种溯源方法,可以实现根据内网用户上网遗留下来的私网IP地址、公网IP地址和公网端口等信息溯源找到该内网用户的身份标识,或者根据用户身份标识查看用户的上网轨迹。
现有溯源系统包括日志服务器,验证、授权和记账(Authentication、Authorization、Accounting,AAA)服务器以及NAT设备。其中:
日志服务器采用以下方式维护一个映射表:在接收到AAA服务器发送的上线消息时,将所述上线消息包括的私网IP地址、上线时刻和用户身份标识作为一个表项插入预存的映射表内;并在接收到携带有与所述上线消息相同私网IP地址和相同用户身份标识的下线消息时,将上述插入的表项从所述映射表中删除。日志服务器在接收到NAT设备发送的NAT日志时,根据所述NAT日志包括的私网IP地址和访问时间段查询所述映射表。如果查询到私网IP地址与所述NAT日志包括的私网IP地址相同的表项,且该表项包括的上线时刻不晚于所述NAT日志包括的访问时间段中的开始时刻,则将该表项包括的用户身份标识与所述NAT日志关联生成一条NAT用户关联日志。其中NAT用户关联日志信息包括私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口、访问时间段和用户身份标识等信息。而如果日志服务器在所述映射表中未查询到私网IP地址与所述NAT日志包括的私网IP地址相同的表项,日志服务器仍会产生一条NAT用户关联日志,但该NAT用户关联日志包括的用户身份标识为空值。
然而在这种溯源系统中,如果因为网络延迟或AAA服务器故障等原因,使得日志服务器收到用户的上线消息或下线消息的时间晚于收到该用户的NAT日志的时间,或者日志服务器恰好没有收到AAA服务器发送的一条或多条用户的上线消息或下线消息,那么将导致日志服务器生成的NAT用户关联日志包括的用户身份标识为空值,或者NAT用户关联日志包括的是错误的用户身份标识。例如,日志服务器未收到用户A的上线消息,那么映射表内将不存在包括用户A的私网IP地址和用户身份标识的表项,后续日志服务器在收到携带用户A的私网IP地址的NAT日志时,由于在映射表中查找不到私网IP地址与用户A的私网IP地址相同的表项,生成的与用户A相关的NAT用户关联日志内包括的用户身份标识将为空值。又例如,用户A于10:00上线,于10:10下线,用户B使用与用户A相同的私网IP地址于10:10上线,于10:20下线,假设日志服务器恰好没有收到用户A的下线消息,以及没有收到用户B的上线消息与下线消息,那么日志服务器在收到用户B于10:15-10:16这个时间段内产生的NAT日志时,映射表内存在的是包括用户A的私网IP地址和用户身份标识的表项,日志服务器将把用户A的用户身份标识与用户B的NAT日志关联生成NAT用户关联日志。这样将导致后续溯源时日志服务器可能查询不到用户身份标识或查询到错误的用户身份标识,降低了溯源的准确率。
发明内容
本发明实施例提供一种用于溯源的映射表的更新方法和装置,用以解决现有技术中因接收的上线消息或下线消息因为延迟或缺失,造成溯源准确率不高的问题。
第一方面,本发明实施例提供了一种用于溯源的映射表的更新方法,包括:
日志服务器接收AAA服务器发送的第一用户的上线消息,所述上线消息携带第一私网IP地址、第一用户身份标识和上线时刻;
所述日志服务器根据所述上线消息在上线消息映射表中创建第一表项;所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值;所述第一表项包括所述第一私网IP地址、所述第一用户身份标识、所述上线时刻和预设下线时刻;
在所述日志服务器在上线消息映射表中创建第一表项之前,还包括:
如果所述上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同的第二表项,则
所述日志服务器根据所述上线消息中携带的上线时刻,为所述第二表项中包括的第二用户身份标识所表征的第二用户设置一个下线时刻,并生成第三表项添加到下线消息映射表中,所述第三表项包括为所述第二用户设置的下线时刻,以及所述第二表项包括的私网IP地址、第二用户身份标识和上线时刻;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值;
所述日志服务器在将所述第三表项添加到下线消息映射表之后,在所述上线消息映射表中删除所述第二表项。
结合第一方面,在第一方面的第一种可能的实现方式中,所述根据所述上线消息中携带的上线时刻为所述第二用户设置一个下线时刻,包括:
为所述第二用户设置的下线时刻满足下述条件:
offlineTimeB=max(exOfflineTimeB,onlineTimeA-IPReassignTime);或
offlineTimeB=onlineTimeA;
其中,offlineTimeB表示为所述第二用户设置的下线时刻,exOfflineTimeB表示所述第二表项包括的预设下线时刻,onlineTimeA表示所述上线消息中携带的上线时刻,IPReassignTime表示设置的私网IP地址再分配周期。
结合第一方面或第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述第一表项包括的预设下线时刻满足下述条件:
exOfflineTimeA=onlineTimeA+IPReassignTime;
其中,exOfflineTimeA表示所述第一表项包括的预设下线时刻,onlineTimeA表示所述上线消息携带的上线时刻,IPReassignTime表示设置的私网IP地址再分配周期。
结合第一方面和第一方面的第一种至第二种可能的实现方式中的任意一种,在第一方面的第三种可能的实现方式中,所述方法还包括:
所述日志服务器接收第一溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合;
如果所述第一溯源请求未携带用户身份标识,则所述日志服务器执行以下操作:
所述日志服务器查询与所述第一溯源请求携带的每个字段均匹配的第一NAT日志;所述第一NAT日志包括私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段;所述第一NAT日志包括的除访问时间段之外的其余字段与所述第一溯源请求携带的对应字段的取值相同,且所述第一NAT日志包括的访问时间段的取值范围包含所述第一溯源请求包括的访问时间段的取值范围;
所述日志服务器根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述上线消息映射表中查询第四表项,所述第四表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第四表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻;如果查询到所述第四表项,则返回所述第四表项和所述第一NAT日志;和/或,
所述日志服务器根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述下线消息映射表中查询第五表项,所述第五表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第五表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻,且所述第五表项包括的下线时刻晚于所述第一NAT日志包括的访问时间段中的结束时刻;如果查询到所述第五表项,则返回所述第五表项和所述第一NAT日志。
结合第一方面和第一方面的第一种至第三种可能的实现方式中的任意一种,在第一方面的第四种可能的实现方式中,所述方法还包括:
所述日志服务器接收第二溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合;
如果所述第二溯源请求携带用户身份标识,则所述日志服务器执行以下操作:
所述日志服务器在所述上线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第六表项;以及查询与所述第六表项包括的私网IP地址和访问时间段匹配的第二NAT日志,所述第六表项包括的私网IP地址与所述第二NAT日志包括的私网IP地址相同,且所述第六表项包括的上线时刻早于所述第二NAT日志包括的访问时间段中的开始时刻;如果查询到所述第二NAT日志,且所述第二NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则返回所述第六表项和所述第二NAT日志;和/或,
所述日志服务器在所述下线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第七表项;以及查询与所述第七表项包括的私网IP地址和访问时间段匹配的第三NAT日志,所述第七表项包括的私网IP地址与所述第三NAT日志包括的私网IP地址相同,且所述第七表项包括的上线时刻早于所述第三NAT日志包括的访问时间段中的开始时刻,且所述第七表项包括的下线时刻晚于所述第三NAT日志包括的访问时间段中的结束时刻;如果查询到所述第三NAT日志,且所述第三NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则返回所述第七表项和所述第三NAT日志。
第二方面,本发明实施例提供了一种用于溯源的映射表的更新方法,包括:
日志服务器接收AAA服务器发送的第一用户的下线消息,所述下线消息携带第一私网IP地址、第一用户身份标识和下线时刻;
如果上线消息映射表不存在包括的私网IP地址与所述第一私网IP地址相同的第一表项,所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值,则
所述日志服务器根据下线时刻映射表为所述第一用户设置一个上线时刻;所述下线时刻映射表以私网IP地址为键,以最近一次下线时刻为值;并生成第二表项添加到下线消息映射表中,所述第二表项包括所述下线消息中携带的第一私网IP地址、所述第一用户身份标识和下线时刻、以及为所述第一用户设置的上线时刻;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值。
结合第二方面,在第二方面的第一种可能的实现方式中,所述方法还包括:
如果所述上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同、且包括的第二用户身份标识与所述第一用户身份标识不同的第三表项,则
所述日志服务器根据所述下线消息中携带的下线时刻,为所述第一用户设置一个上线时刻;并生成第四表项添加到所述下线消息映射表中,所述第四表项包括所述下线消息中携带的第一私网IP地址、所述第一用户身份标识和下线时刻、以及为所述第一用户设置的上线时刻;
所述日志服务器根据所述下线消息中携带的下线时刻和所述第三表项包括的预设下线时刻,为所述第二用户身份标识所表征的第二用户设置一个下线时刻,并生成第五表项添加到所述下线消息映射表中,所述第五表项包括为所述第二用户设置的下线时刻、以及所述第三表项包括的私网IP地址、第二用户身份标识和上线时刻;
所述日志服务器在将所述第五表项添加到所述下线消息映射表之后,在所述上线消息映射表中删除所述第三表项。
结合第二方面,在第二方面的第二种可能的实现方式中,所述根据下线时刻映射表为所述第一用户设置一个上线时刻,包括:
如果所述下线时刻映射表存在包括的私网IP地址与所述第一私网IP地址相同的第六表项,则为所述第一用户设置的上线时刻满足下述条件:
onlineTimeA=lastOfflineTime+IPReassignTime;或
onlineTimeA=lastOfflineTime;
如果所述下线时刻映射表不存在所述第六表项,则为所述第一用户设置的上线时刻满足下述条件:
onlineTimeA=offlineTimeA-IPReassignTime;
其中,onlineTimeA表示为所述第一用户设置的上线时刻,lastOfflineTime表示所述第六表项包括的最近一次下线时刻,IPReassignTime表示设置的私网IP地址再分配周期,offlineTimeA表示所述下线消息中携带的下线时刻。
结合第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述根据所述下线消息中携带的下线时刻为所述第一用户设置一个上线时刻,包括:
为所述第一用户设置的上线时刻满足下述条件;
onlineTimeA=offlineTimeA-IPReassignTime;
其中,onlineTimeA表示为所述第一用户设置的上线时刻;offlineTimeA表示所述下线消息中携带的下线时刻,IPReassignTime表示设置的私网IP地址再分配周期;
所述根据所述下线消息中携带的下线时刻和所述第三表项包括的预设下线时刻为所述第二用户设置一个下线时刻,包括:
为所述第二用户设置的下线时刻满足下述条件:
offlineTimeB=min(exOfflineTimeB,offlineTimeA-IPReassignTime);
其中,offlineTimeB表示为所述第二用户设置的下线时刻,exOfflineTimeB表示所述第三表项包括的预设下线时刻。
结合第二方面的第一种可能的实现方式,在第二方面的第四种可能的实现方式中,所述方法还包括:
如果所述上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同、且包括的用户身份标识与所述第一用户身份标识相同的第七表项,则
所述日志服务器生成第八表项添加到所述下线消息映射表中,所述第八表项包括所述下线消息中携带的第一私网IP地址、所述第一用户身份标识和下线时刻,以及所述第七表项包括的上线时刻。
结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述方法还包括以下步骤中的至少一个:
如果所述上线消息映射表不存在所述第一表项,则在所述日志服务器根据下线时刻映射表为所述第一用户设置一个上线时刻之后,在确定所述下线时刻映射表存在包括的私网IP地址与所述第一私网IP地址相同的第六表项时,将所述第六表项包括的最近一次下线时刻的值,更新为所述下线消息中携带的下线时刻的值;在确定所述下线时刻映射表不存在所述第六表项时,生成第九表项添加到所述下线时刻映射表中,所述第九表项包括所述下线消息中携带的第一私网IP地址和下线时刻;
如果所述上线消息映射表存在所述第三表项,则在所述日志服务器接收第一用户的下线消息之后,在确定所述下线时刻映射表存在所述第六表项时,将所述第六表项包括的最近一次下线时刻的值,更新为所述下线消息中携带的下线时刻的值;在确定所述下线时刻映射表不存在所述第六表项时,生成所述第九表项添加到所述下线时刻映射表中;
如果所述上线消息映射表存在所述第七表项,则在所述日志服务器接收第一用户的下线消息之后,在确定所述下线时刻映射表存在所述第六表项时,将所述第六表项包括的最近一次下线时刻的值,更新为所述下线消息中携带的下线时刻的值;在确定所述下线时刻映射表不存在所述第六表项时,生成所述第九表项添加到所述下线时刻映射表中。
结合第二方面和第二方面的第一种至第五种可能的实现方式中的任意一种,在第二方面的第六种可能的实现方式中,所述方法还包括:
所述日志服务器接收第一溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合;
如果所述第一溯源请求未携带用户身份标识,则所述日志服务器执行以下操作:
所述日志服务器查询与所述第一溯源请求携带的每个字段均匹配的第一NAT日志;所述第一NAT日志包括私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段;所述第一NAT日志包括的除访问时间段之外的其余字段与所述第一溯源请求携带的对应字段的取值相同,且所述第一NAT日志包括的访问时间段的取值范围包含所述第一溯源请求携带的访问时间段的取值范围;
所述日志服务器根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述上线消息映射表中查询第十表项,所述第十表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第十表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻;如果查询到所述第十表项,则返回所述第十表项和所述第一NAT日志;和/或,
所述日志服务器根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述下线消息映射表查询第十一表项,所述第十一表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第十一表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻,且所述第十一表项包括的下线时刻晚于所述第一NAT日志包括的访问时间段中的结束时刻;如果查询到所述第十一表项,则返回所述第十一表项和所述第一NAT日志。
结合第二方面和第二方面的第一种至第六种可能的实现方式中的任意一种,在第二方面的第七种可能的实现方式中,所述方法还包括:
所述日志服务器接收第二溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合;
如果所述第二溯源请求携带用户身份标识,则所述日志服务器执行以下操作:
所述日志服务器在所述上线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十二表项;以及查询与所述第十二表项包括的私网IP地址和访问时间段匹配的第二NAT日志,所述第十二表项包括的私网IP地址与所述第二NAT日志包括的私网IP地址相同,且所述第十二表项包括的上线时刻早于所述第二NAT日志包括的访问时间段中的开始时刻;如果查询到所述第二NAT日志,且所述第二NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则返回所述第十二表项和所述第二NAT日志;和/或,
所述日志服务器在所述下线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十三表项;以及查询与所述第十三表项包括的私网IP地址和访问时间段匹配的第三NAT日志,所述第十三表项包括的私网IP地址与所述第三NAT日志包括的私网IP地址相同,且所述第十三表项包括的上线时刻早于所述第三NAT日志包括的访问时间段中的开始时刻,且所述第十三表项包括的下线时刻晚于所述第三NAT日志包括的访问时间段中的结束时刻;如果查询到所述第三NAT日志,且所述第三NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则返回所述第十三表项和所述第三NAT日志。
第三方面,本发明实施例提供了一种用于溯源的映射表的更新方法,包括:
日志服务器接收AAA服务器发送的第一用户的保活消息,所述保活消息携带第一私网IP地址、第一用户身份标识和保活时刻;所述保活时刻为所述AAA服务器发送所述保活消息的时刻;
如果上线消息映射表不存在包括的私网IP地址与所述第一私网IP地址相同的第一表项,所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值,则
所述日志服务器根据所述保活消息中携带的保活时刻为所述第一用户设置一个上线时刻和一个预设下线时刻;并生成第二表项添加到所述上线消息映射表中,所述第二表项包括为所述第一用户设置的上线时刻和预设下线时刻,以及所述保活消息中携带的所述第一私网IP地址和第一用户身份标识。
结合第三方面,在第三方面的第一种可能的实现方式中,所述方法还包括:
如果所述上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同、且包括的第二用户身份标识与所述第一用户身份标识不同的第三表项,则
所述日志服务器根据保活消息中携带的保活时刻和所述第三表项包括的预设下线时刻,为所述第二用户身份标识所表征的第二用户设置一个下线时刻,并生成第四表项添加到下线消息映射表中,所述第四表项包括为所述第二用户设置的下线时刻,以及所述第三表项包括的私网IP地址、第二用户身份标识和上线时刻;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值;
所述日志服务器在将所述第四表项添加到所述下线消息映射表之后,在所述上线消息映射表中删除所述第三表项;
所述日志服务器根据为所述第二用户设置的下线时刻,为所述第一用户设置一个上线时刻;以及根据所述保活消息中携带的保活时刻为所述第一用户设置一个预设下线时刻;并在删除所述第三表项之后,生成第五表项添加到所述上线消息映射表中,所述第五表项包括为所述第一用户设置的上线时刻和预设下线时刻,以及所述保活消息中携带的所述第一私网IP地址和第一用户身份标识。
结合第三方面,在第三方面的第二种可能的实现方式中,所述根据所述保活消息中携带的保活时刻为所述第一用户设置一个上线时刻,包括:
为所述第一用户设置的上线时刻满足下述条件:
onlineTimeA=activeTimeA-updateTime-IPReassignTime;
其中,onlineTimeA表示为所述第一用户设置的上线时刻,activeTimeA表示所述保活消息中携带的保活时刻,updateTime表示设置的保活周期,IPReassignTime表示设置的私网IP地址再分配周期;所述保活周期为所述AAA服务器发送保活消息的间隔。
结合第三方面的第一种可能的实现方式,在第三方面的第三种可能的实现方式中,所述根据保活消息中携带的保活时刻和所述第三表项包括的预设下线时刻,为所述第二用户身份标识所表征的第二用户设置一个下线时刻,包括:
为所述第二用户设置的下线时刻满足下述条件:
offlineTimeB=min(exOfflineTimeB,ativeTimeA-updateTime-IPReassignTime);
其中,offlineTimeB表示为所述第二用户设置的下线时刻,exOfflineTimeB表示所述第三表项包括的预设下线时刻,activeTimeA表示所述保活消息中携带的保活时刻,updateTime为设置的保活周期,IPReassignTime表示设置的私网IP地址再分配周期,所述保活周期为所述AAA服务器发送保活消息的间隔;
所述根据为所述第二用户设置的下线时刻,为所述第一用户设置一个上线时刻,包括:
为所述第一用户设置的上线时刻满足下述条件:
onlineTimeA=offlineTimeB;或
onlineTimeA=offlineTimeB+IPReassignTime;
其中,onlineTimeA表示为所述第一用户设置的上线时刻。
结合第三方面,在第三方面的第四种可能的实现方式中,所述方法还包括:
如果所述上线消息映射表存在包括的包括的私网IP地址与所述第一私网IP地址相同、且包括的用户身份标识与所述第一用户身份标识相同的第六表项,则
所述日志服务器根据所述保活消息中携带的保活时刻为所述第一用户设置一个预设下线时刻;并将所述第六表项包括的预设下线时刻的值,更新为为所述第一用户设置的预设下线时刻的值。
结合第三方面、第三方面的第一种可能的实现方式或第四种可能的实现方式,在第三方面的第五种可能的实现方式中,所述根据所述保活消息中携带的保活时刻为所述第一用户设置一个预设下线时刻,包括:
为所述第一用户设置的预设下线时刻满足下述条件:
exOfflineTimeA=activeTimeA+IPReassignTime;
其中,exOfflineTimeA表示为所述第一用户设置的预设下线时刻,activeTimeA表示所述保活消息中携带的保活时刻,IPReassignTime表示设置的私网IP地址再分配周期。
结合第三方面的第一种至第五种可能的实现方式中的任意一种,在第三方面的第六种可能的实现方式中,所述方法还包括:
所述日志服务器按照设定周期查询所述上线消息映射表是否存在超时表项,所述超时表项包括的预设下线时刻与所述超时表项包括的上线时刻的差值大于设定时长;
如果查询到所述超时表项,则所述日志服务器将所述超时表项包括的上线时刻与所述设定时长的和值作为所述超时表项包括的用户身份标识所表征的用户的下线时刻,并生成第七表项添加到所述下线消息映射表中,所述第七表项包括得到的下线时刻、以及所述超时表项包括的私网IP地址、用户身份标识和上线时刻;
所述日志服务器在将所述第七表项添加到所述下线消息映射表之后,将所述超时表项包括的上线时刻的值,更新为所述超时表项包括的上线时刻与所述设定时长的和值。
结合第三方面的第一种至第六种可能的实现方式中的任意一种,在第三方面的第七种可能的实现方式中,所述方法还包括:
所述日志服务器接收第一溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合;
如果所述第一溯源请求未携带用户身份标识,则所述日志服务器执行以下操作:
所述日志服务器查询与所述第一溯源请求携带的每个字段均匹配的第一NAT日志;所述第一NAT日志包括私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段;所述第一NAT日志包括的除访问时间段之外的其余字段与所述第一溯源请求携带的对应字段的取值相同,且所述第一NAT日志包括的访问时间段的取值范围包含所述第一溯源请求携带的访问时间段的取值范围;
所述日志服务器根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述上线消息映射表中查询第八表项,所述第八表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第八表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻;如果查询到所述第八表项,则返回所述第八表项和所述第一NAT日志;和/或,
所述日志服务器根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述下线消息映射表中查询第九表项,所述第九表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第九表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻,且所述第九表项包括的下线时刻晚于所述第一NAT日志包括的访问时间段中的结束时刻;如果查询到所述第九表项,则返回所述第九表项和所述第一NAT日志。
结合第三方面的第一种至第七种可能的实现方式中的任意一种,在第三方面的第八种可能的实现方式中,所述方法还包括:
所述日志服务器接收第二溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合;
如果所述第二溯源请求携带用户身份标识,则所述日志服务器执行以下操作:
所述日志服务器在所述上线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十表项;以及查询与所述第十表项包括的私网IP地址和访问时间段匹配的第二NAT日志,所述第十表项包括的私网IP地址与所述第二NAT日志包括的私网IP地址相同,且所述第十表项包括的上线时刻早于所述第二NAT日志包括的访问时间段中的开始时刻;如果查询到所述第二NAT日志,且所述第二NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则返回所述第十表项和所述第二NAT日志;和/或,
所述日志服务器在所述下线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十一表项;以及查询与所述第十一表项包括的私网IP地址和访问时间段匹配的第三NAT日志,所述第十一表项包括的私网IP地址与所述第三NAT日志包括的私网IP地址相同,且所述第十一表项包括的上线时刻早于所述第三NAT日志包括的访问时间段中的开始时刻,且所述第十一表项包括的下线时刻晚于所述第三NAT日志包括的访问时间段中的结束时刻;如果查询到所述第三NAT日志,且所述第三NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则返回所述第十一表项和所述第三NAT日志。
第四方面,本发明实施例提供了一种用于溯源的映射表的更新装置,包括:
收发单元,用于接收AAA服务器发送的第一用户的上线消息,所述上线消息携带第一私网IP地址、第一用户身份标识和上线时刻;
处理单元,用于根据所述上线消息在上线消息映射表中创建第一表项;所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值;所述第一表项包括所述第一私网IP地址、所述第一用户身份标识、所述上线时刻和预设下线时刻;
所述处理单元在上线消息映射表中创建第一表项之前,还用于:
如果所述上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同的第二表项,则根据所述上线消息中携带的上线时刻,为所述第二表项中包括的第二用户身份标识所表征的第二用户设置一个下线时刻,并生成第三表项添加到下线消息映射表中,所述第三表项包括为所述第二用户设置的下线时刻,以及所述第二表项包括的私网IP地址、第二用户身份标识和上线时刻;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值;在将所述第三表项添加到下线消息映射表之后,在所述上线消息映射表中删除所述第二表项。
结合第四方面,在第四方面的第一种可能的实现方式中,所述根据所述上线消息中携带的上线时刻为所述第二用户设置一个下线时刻,包括:
为所述第二用户设置的下线时刻满足下述条件:
offlineTimeB=max(exOfflineTimeB,onlineTimeA-IPReassignTime);或
offlineTimeB=onlineTimeA;
其中,offlineTimeB表示为所述第二用户设置的下线时刻,exOfflineTimeB表示所述第二表项包括的预设下线时刻,onlineTimeA表示所述上线消息中携带的上线时刻,IPReassignTime表示设置的私网IP地址再分配周期。
结合第四方面或第四方面的第一种可能的实现方式,在第四方面的第二种可能的实现方式中,所述第一表项包括的预设下线时刻满足下述条件:
exOfflineTimeA=onlineTimeA+IPReassignTime;
其中,exOfflineTimeA表示所述第一表项包括的预设下线时刻,onlineTimeA表示所述上线消息携带的上线时刻,IPReassignTime表示设置的私网IP地址再分配周期。
结合第四方面和第四方面的第一种至第二种可能的实现方式中的任意一种,在第四方面的第三种可能的实现方式中,
所述收发单元还用于,接收第一溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合;
如果所述第一溯源请求未携带用户身份标识,则所述处理单元还用于:
查询与所述第一溯源请求携带的每个字段均匹配的第一NAT日志;所述第一NAT日志包括私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段;所述第一NAT日志包括的除访问时间段之外的其余字段与所述第一溯源请求携带的对应字段的取值相同,且所述第一NAT日志包括的访问时间段的取值范围包含所述第一溯源请求包括的访问时间段的取值范围;
根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述上线消息映射表中查询第四表项,所述第四表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第四表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻;如果查询到所述第四表项,则指示所述收发单元返回所述第四表项和所述第一NAT日志;和/或,
根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述下线消息映射表中查询第五表项,所述第五表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第五表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻,且所述第五表项包括的下线时刻晚于所述第一NAT日志包括的访问时间段中的结束时刻;如果查询到所述第五表项,则指示所述收发单元返回所述第五表项和所述第一NAT日志。
结合第四方面和第四方面的第一种至第三种可能的实现方式中的任意一种,在第四方面的第四种可能的实现方式中,
所述收发单元还用于,接收第二溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合;
如果所述第二溯源请求携带用户身份标识,则所述处理单元还用于:
在所述上线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第六表项;以及查询与所述第六表项包括的私网IP地址和访问时间段匹配的第二NAT日志,所述第六表项包括的私网IP地址与所述第二NAT日志包括的私网IP地址相同,且所述第六表项包括的上线时刻早于所述第二NAT日志包括的访问时间段中的开始时刻;如果查询到所述第二NAT日志,且所述第二NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则指示所述收发单元返回所述第六表项和所述第二NAT日志;和/或,
在所述下线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第七表项;以及查询与所述第七表项包括的私网IP地址和访问时间段匹配的第三NAT日志,所述第七表项包括的私网IP地址与所述第三NAT日志包括的私网IP地址相同,且所述第七表项包括的上线时刻早于所述第三NAT日志包括的访问时间段中的开始时刻,且所述第七表项包括的下线时刻晚于所述第三NAT日志包括的访问时间段中的结束时刻;如果查询到所述第三NAT日志,且所述第三NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则指示所述收发单元返回所述第七表项和所述第三NAT日志。
第五方面,本发明实施例提供了一种用于溯源的映射表的更新装置,包括:
收发单元,用于接收AAA服务器发送的第一用户的下线消息,所述下线消息携带第一私网IP地址、第一用户身份标识和下线时刻;
如果上线消息映射表不存在包括的私网IP地址与所述第一私网IP地址相同的第一表项,所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值,则
处理单元,用于根据下线时刻映射表为所述第一用户设置一个上线时刻;所述下线时刻映射表以私网IP地址为键,以最近一次下线时刻为值;并生成第二表项添加到下线消息映射表中,所述第二表项包括所述下线消息中携带的第一私网IP地址、所述第一用户身份标识和下线时刻、以及为所述第一用户设置的上线时刻;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值。
结合第五方面,在第五方面的第一种可能的实现方式中,
如果所述上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同、且包括的第二用户身份标识与所述第一用户身份标识不同的第三表项,则
所述处理单元,用于根据所述下线消息中携带的下线时刻,为所述第一用户设置一个上线时刻;并生成第四表项添加到所述下线消息映射表中,所述第四表项包括所述下线消息中携带的第一私网IP地址、所述第一用户身份标识和下线时刻、以及为所述第一用户设置的上线时刻;
根据所述下线消息中携带的下线时刻和所述第三表项包括的预设下线时刻,为所述第二用户身份标识所表征的第二用户设置一个下线时刻,并生成第五表项添加到所述下线消息映射表中,所述第五表项包括为所述第二用户设置的下线时刻、以及所述第三表项包括的私网IP地址、第二用户身份标识和上线时刻;
在将所述第五表项添加到所述下线消息映射表之后,在所述上线消息映射表中删除所述第三表项。
结合第五方面,在第五方面的第二种可能的实现方式中,所述根据下线时刻映射表为所述第一用户设置一个上线时刻,包括:
如果所述下线时刻映射表存在包括的私网IP地址与所述第一私网IP地址相同的第六表项,则为所述第一用户设置的上线时刻满足下述条件:
onlineTimeA=lastOfflineTime+IPReassignTime;或
onlineTimeA=lastOfflineTime;
如果所述下线时刻映射表不存在所述第六表项,则为所述第一用户设置的上线时刻满足下述条件:
onlineTimeA=offlineTimeA-IPReassignTime;
其中,onlineTimeA表示为所述第一用户设置的上线时刻,lastOfflineTime表示所述第六表项包括的最近一次下线时刻,IPReassignTime表示设置的私网IP地址再分配周期,offlineTimeA表示所述下线消息中携带的下线时刻。
结合第五方面的第一种可能的实现方式,在第五方面的第三种可能的实现方式中,所述根据所述下线消息中携带的下线时刻为所述第一用户设置一个上线时刻,包括:
为所述第一用户设置的上线时刻满足下述条件;
onlineTimeA=offlineTimeA-IPReassignTime;
其中,onlineTimeA表示为所述第一用户设置的上线时刻;offlineTimeA表示所述下线消息中携带的下线时刻,IPReassignTime表示设置的私网IP地址再分配周期;
所述根据所述下线消息中携带的下线时刻和所述第三表项包括的预设下线时刻为所述第二用户设置一个下线时刻,包括:
为所述第二用户设置的下线时刻满足下述条件:
offlineTimeB=min(exOfflineTimeB,offlineTimeA-IPReassignTime);
其中,offlineTimeB表示为所述第二用户设置的下线时刻,exOfflineTimeB表示所述第三表项包括的预设下线时刻。
结合第五方面的第一种可能的实现方式,在第五方面的第四种可能的实现方式中,
如果所述上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同、且包括的用户身份标识与所述第一用户身份标识相同的第七表项,则
所述处理单元,用于生成第八表项添加到所述下线消息映射表中,所述第八表项包括所述下线消息中携带的第一私网IP地址、所述第一用户身份标识和下线时刻,以及所述第七表项包括的上线时刻。
结合第五方面的第四种可能的实现方式,在第五方面的第五种可能的实现方式中,
如果所述上线消息映射表不存在所述第一表项,则所述处理单元还用于:
在根据下线时刻映射表为所述第一用户设置一个上线时刻之后,在确定所述下线时刻映射表存在包括的私网IP地址与所述第一私网IP地址相同的第六表项时,将所述第六表项包括的最近一次下线时刻的值,更新为所述下线消息中携带的下线时刻的值;在确定所述下线时刻映射表不存在所述第六表项时,生成第九表项添加到所述下线时刻映射表中,所述第九表项包括所述下线消息中携带的第一私网IP地址和下线时刻;
如果所述上线消息映射表存在所述第三表项,则所述处理单元还用于:
在所述收发单元接收第一用户的下线消息之后,在确定所述下线时刻映射表存在所述第六表项时,将所述第六表项包括的最近一次下线时刻的值,更新为所述下线消息中携带的下线时刻的值;在确定所述下线时刻映射表不存在所述第六表项时,生成所述第九表项添加到所述下线时刻映射表中;
如果所述上线消息映射表存在所述第七表项,则所述处理单元还用于:
在所述收发单元接收第一用户的下线消息之后,在确定所述下线时刻映射表存在所述第六表项时,将所述第六表项包括的最近一次下线时刻的值,更新为所述下线消息中携带的下线时刻的值;在确定所述下线时刻映射表不存在所述第六表项时,生成所述第九表项添加到所述下线时刻映射表中。
结合第五方面和第五方面的第一种至第五种可能的实现方式中的任意一种,在第五方面的第六种可能的实现方式中,
所述收发单元还用于,接收第一溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合;
如果所述第一溯源请求未携带用户身份标识,则所述处理单元还用于:
查询与所述第一溯源请求携带的每个字段均匹配的第一NAT日志;所述第一NAT日志包括私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段;所述第一NAT日志包括的除访问时间段之外的其余字段与所述第一溯源请求携带的对应字段的取值相同,且所述第一NAT日志包括的访问时间段的取值范围包含所述第一溯源请求携带的访问时间段的取值范围;
根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述上线消息映射表中查询第十表项,所述第十表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第十表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻;如果查询到所述第十表项,则指示所述收发单元返回所述第十表项和所述第一NAT日志;和/或,
根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述下线消息映射表查询第十一表项,所述第十一表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第十一表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻,且所述第十一表项包括的下线时刻晚于所述第一NAT日志包括的访问时间段中的结束时刻;如果查询到所述第十一表项,则指示所述收发单元返回所述第十一表项和所述第一NAT日志。
结合第五方面和第五方面的第一种至第六种可能的实现方式中的任意一种,在第五方面的第七种可能的实现方式中,
所述收发单元还用于,接收第二溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合;
如果所述第二溯源请求携带用户身份标识,则所述处理单元还用于:
在所述上线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十二表项;以及查询与所述第十二表项包括的私网IP地址和访问时间段匹配的第二NAT日志,所述第十二表项包括的私网IP地址与所述第二NAT日志包括的私网IP地址相同,且所述第十二表项包括的上线时刻早于所述第二NAT日志包括的访问时间段中的开始时刻;如果查询到所述第二NAT日志,且所述第二NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则指示所述收发单元返回所述第十二表项和所述第二NAT日志;和/或,
在所述下线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十三表项;以及查询与所述第十三表项包括的私网IP地址和访问时间段匹配的第三NAT日志,所述第十三表项包括的私网IP地址与所述第三NAT日志包括的私网IP地址相同,且所述第十三表项包括的上线时刻早于所述第三NAT日志包括的访问时间段中的开始时刻,且所述第十三表项包括的下线时刻晚于所述第三NAT日志包括的访问时间段中的结束时刻;如果查询到所述第三NAT日志,且所述第三NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则指示所述收发单元返回所述第十三表项和所述第三NAT日志。
第六方面,本发明实施例提供了一种用于溯源的映射表的更新装置,包括:
收发单元,用于接收AAA服务器发送的第一用户的保活消息,所述保活消息携带第一私网IP地址、第一用户身份标识和保活时刻;所述保活时刻为所述AAA服务器发送所述保活消息的时刻;
如果上线消息映射表不存在包括的私网IP地址与所述第一私网IP地址相同的第一表项,所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值,则
处理单元,用于根据所述保活消息中携带的保活时刻为所述第一用户设置一个上线时刻和一个预设下线时刻;并生成第二表项添加到所述上线消息映射表中,所述第二表项包括为所述第一用户设置的上线时刻和预设下线时刻,以及所述保活消息中携带的所述第一私网IP地址和第一用户身份标识。
结合第六方面,在第六方面的第一种可能的实现方式中,
如果所述上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同、且包括的第二用户身份标识与所述第一用户身份标识不同的第三表项,则
所述处理单元,用于根据保活消息中携带的保活时刻和所述第三表项包括的预设下线时刻,为所述第二用户身份标识所表征的第二用户设置一个下线时刻,并生成第四表项添加到下线消息映射表中,所述第四表项包括为所述第二用户设置的下线时刻,以及所述第三表项包括的私网IP地址、第二用户身份标识和上线时刻;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值;
在将所述第四表项添加到所述下线消息映射表之后,在所述上线消息映射表中删除所述第三表项;
根据为所述第二用户设置的下线时刻,为所述第一用户设置一个上线时刻;以及根据所述保活消息中携带的保活时刻为所述第一用户设置一个预设下线时刻;并在删除所述第三表项之后,生成第五表项添加到所述上线消息映射表中,所述第五表项包括为所述第一用户设置的上线时刻和预设下线时刻,以及所述保活消息中携带的所述第一私网IP地址和第一用户身份标识。
结合第六方面,在第六方面的第二种可能的实现方式中,所述根据所述保活消息中携带的保活时刻为所述第一用户设置一个上线时刻,包括:
为所述第一用户设置的上线时刻满足下述条件:
onlineTimeA=activeTimeA-updateTime-IPReassignTime;
其中,onlineTimeA表示为所述第一用户设置的上线时刻,activeTimeA表示所述保活消息中携带的保活时刻,updateTime表示设置的保活周期,IPReassignTime表示设置的私网IP地址再分配周期;所述保活周期为所述AAA服务器发送保活消息的间隔。
结合第六方面的第一种可能的实现方式,在第六方面的第三种可能的实现方式中,所述根据保活消息中携带的保活时刻和所述第三表项包括的预设下线时刻,为所述第二用户身份标识所表征的第二用户设置一个下线时刻,包括:
为所述第二用户设置的下线时刻满足下述条件:
offlineTimeB=min(exOfflineTimeB,ativeTimeA-updateTime-IPReassignTime);
其中,offlineTimeB表示为所述第二用户设置的下线时刻,exOfflineTimeB表示所述第三表项包括的预设下线时刻,activeTimeA表示所述保活消息中携带的保活时刻,updateTime为设置的保活周期,IPReassignTime表示设置的私网IP地址再分配周期,所述保活周期为所述AAA服务器发送保活消息的间隔;
所述根据为所述第二用户设置的下线时刻,为所述第一用户设置一个上线时刻,包括:
为所述第一用户设置的上线时刻满足下述条件:
onlineTimeA=offlineTimeB;或
onlineTimeA=offlineTimeB+IPReassignTime;
其中,onlineTimeA表示为所述第一用户设置的上线时刻。
结合第六方面,在第六方面的第四种可能的实现方式中,
如果所述上线消息映射表存在包括的包括的私网IP地址与所述第一私网IP地址相同、且包括的用户身份标识与所述第一用户身份标识相同的第六表项,则
所述处理单元,用于根据所述保活消息中携带的保活时刻为所述第一用户设置一个预设下线时刻;并将所述第六表项包括的预设下线时刻的值,更新为为所述第一用户设置的预设下线时刻的值。
结合第六方面、第六方面的第一种可能的实现方式或第四种可能的实现方式,在第六方面的第五种可能的实现方式中,所述根据所述保活消息中携带的保活时刻为所述第一用户设置一个预设下线时刻,包括:
为所述第一用户设置的预设下线时刻满足下述条件:
exOfflineTimeA=activeTimeA+IPReassignTime;
其中,exOfflineTimeA表示为所述第一用户设置的预设下线时刻,activeTimeA表示所述保活消息中携带的保活时刻,IPReassignTime表示设置的私网IP地址再分配周期。
结合第六方面的第一种至第五种可能的实现方式中的任意一种,在第六方面的第六种可能的实现方式中,所述处理单元还用于:
按照设定周期查询所述上线消息映射表是否存在超时表项,所述超时表项包括的预设下线时刻与所述超时表项包括的上线时刻的差值大于设定时长;
如果查询到所述超时表项,则将所述超时表项包括的上线时刻与所述设定时长的和值作为所述超时表项包括的用户身份标识所表征的用户的下线时刻,并生成第七表项添加到所述下线消息映射表中,所述第七表项包括得到的下线时刻、以及所述超时表项包括的私网IP地址、用户身份标识和上线时刻;
在将所述第七表项添加到所述下线消息映射表之后,将所述超时表项包括的上线时刻的值,更新为所述超时表项包括的上线时刻与所述设定时长的和值。
结合第六方面的第一种至第六种可能的实现方式中的任意一种,在第六方面的第七种可能的实现方式中,
所述收发单元,还用于接收第一溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合;
如果所述第一溯源请求未携带用户身份标识,则所述处理单元还用于:
查询与所述第一溯源请求携带的每个字段均匹配的第一NAT日志;所述第一NAT日志包括私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段;所述第一NAT日志包括的除访问时间段之外的其余字段与所述第一溯源请求携带的对应字段的取值相同,且所述第一NAT日志包括的访问时间段的取值范围包含所述第一溯源请求携带的访问时间段的取值范围;
根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述上线消息映射表中查询第八表项,所述第八表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第八表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻;如果查询到所述第八表项,则指示所述收发单元返回所述第八表项和所述第一NAT日志;和/或,
根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述下线消息映射表中查询第九表项,所述第九表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第九表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻,且所述第九表项包括的下线时刻晚于所述第一NAT日志包括的访问时间段中的结束时刻;如果查询到所述第九表项,则指示所述收发单元返回所述第九表项和所述第一NAT日志。
结合第六方面的第一种至第七种可能的实现方式中的任意一种,在第六方面的第八种可能的实现方式中,
所述收发单元还用于,接收第二溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合;
如果所述第二溯源请求携带用户身份标识,则所述处理单元还用于:
在所述上线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十表项;以及查询与所述第十表项包括的私网IP地址和访问时间段匹配的第二NAT日志,所述第十表项包括的私网IP地址与所述第二NAT日志包括的私网IP地址相同,且所述第十表项包括的上线时刻早于所述第二NAT日志包括的访问时间段中的开始时刻;如果查询到所述第二NAT日志,且所述第二NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则指示所述收发单元返回所述第十表项和所述第二NAT日志;和/或,
在所述下线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十一表项;以及查询与所述第十一表项包括的私网IP地址和访问时间段匹配的第三NAT日志,所述第十一表项包括的私网IP地址与所述第三NAT日志包括的私网IP地址相同,且所述第十一表项包括的上线时刻早于所述第三NAT日志包括的访问时间段中的开始时刻,且所述第十一表项包括的下线时刻晚于所述第三NAT日志包括的访问时间段中的结束时刻;如果查询到所述第三NAT日志,且所述第三NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则指示所述收发单元返回所述第十一表项和所述第三NAT日志。
第七方面,本发明实施例提供了一种用于溯源的映射表的更新装置,包括:
收发器,用于接收AAA服务器发送的第一用户的上线消息,所述上线消息携带第一私网IP地址、第一用户身份标识和上线时刻;
处理器,用于根据所述上线消息在上线消息映射表中创建第一表项;所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值;所述第一表项包括所述第一私网IP地址、所述第一用户身份标识、所述上线时刻和预设下线时刻;
所述处理器在上线消息映射表中创建第一表项之前,还用于:
如果所述上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同的第二表项,则根据所述上线消息中携带的上线时刻,为所述第二表项中包括的第二用户身份标识所表征的第二用户设置一个下线时刻,并生成第三表项添加到下线消息映射表中,所述第三表项包括为所述第二用户设置的下线时刻,以及所述第二表项包括的私网IP地址、第二用户身份标识和上线时刻;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值;在将所述第三表项添加到下线消息映射表之后,在所述上线消息映射表中删除所述第二表项。
结合第七方面,在第七方面的第一种可能的实现方式中,所述根据所述上线消息中携带的上线时刻为所述第二用户设置一个下线时刻,包括:
为所述第二用户设置的下线时刻满足下述条件:
offlineTimeB=max(exOfflineTimeB,onlineTimeA-IPReassignTime);或
offlineTimeB=onlineTimeA;
其中,offlineTimeB表示为所述第二用户设置的下线时刻,exOfflineTimeB表示所述第二表项包括的预设下线时刻,onlineTimeA表示所述上线消息中携带的上线时刻,IPReassignTime表示设置的私网IP地址再分配周期。
结合第七方面或第七方面的第一种可能的实现方式,在第七方面的第二种可能的实现方式中,所述第一表项包括的预设下线时刻满足下述条件:
exOfflineTimeA=onlineTimeA+IPReassignTime;
其中,exOfflineTimeA表示所述第一表项包括的预设下线时刻,onlineTimeA表示所述上线消息携带的上线时刻,IPReassignTime表示设置的私网IP地址再分配周期。
结合第七方面和第七方面的第一种至第二种可能的实现方式中的任意一种,在第七方面的第三种可能的实现方式中,
所述收发器还用于,接收第一溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合;
如果所述第一溯源请求未携带用户身份标识,则所述处理器还用于:
查询与所述第一溯源请求携带的每个字段均匹配的第一NAT日志;所述第一NAT日志包括私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段;所述第一NAT日志包括的除访问时间段之外的其余字段与所述第一溯源请求携带的对应字段的取值相同,且所述第一NAT日志包括的访问时间段的取值范围包含所述第一溯源请求包括的访问时间段的取值范围;
根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述上线消息映射表中查询第四表项,所述第四表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第四表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻;如果查询到所述第四表项,则指示所述收发器返回所述第四表项和所述第一NAT日志;和/或,
根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述下线消息映射表中查询第五表项,所述第五表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第五表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻,且所述第五表项包括的下线时刻晚于所述第一NAT日志包括的访问时间段中的结束时刻;如果查询到所述第五表项,则指示所述收发器返回所述第五表项和所述第一NAT日志。
结合第七方面和第七方面的第一种至第三种可能的实现方式中的任意一种,在第七方面的第四种可能的实现方式中,
所述收发器还用于,接收第二溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合;
如果所述第二溯源请求携带用户身份标识,则所述处理器还用于:
在所述上线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第六表项;以及查询与所述第六表项包括的私网IP地址和访问时间段匹配的第二NAT日志,所述第六表项包括的私网IP地址与所述第二NAT日志包括的私网IP地址相同,且所述第六表项包括的上线时刻早于所述第二NAT日志包括的访问时间段中的开始时刻;如果查询到所述第二NAT日志,且所述第二NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则指示所述收发器返回所述第六表项和所述第二NAT日志;和/或,
在所述下线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第七表项;以及查询与所述第七表项包括的私网IP地址和访问时间段匹配的第三NAT日志,所述第七表项包括的私网IP地址与所述第三NAT日志包括的私网IP地址相同,且所述第七表项包括的上线时刻早于所述第三NAT日志包括的访问时间段中的开始时刻,且所述第七表项包括的下线时刻晚于所述第三NAT日志包括的访问时间段中的结束时刻;如果查询到所述第三NAT日志,且所述第三NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则指示所述收发器返回所述第七表项和所述第三NAT日志。
第八方面,本发明实施例提供了一种用于溯源的映射表的更新装置,包括:
收发器,用于接收AAA服务器发送的第一用户的下线消息,所述下线消息携带第一私网IP地址、第一用户身份标识和下线时刻;
如果上线消息映射表不存在包括的私网IP地址与所述第一私网IP地址相同的第一表项,所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值,则
处理器,用于根据下线时刻映射表为所述第一用户设置一个上线时刻;所述下线时刻映射表以私网IP地址为键,以最近一次下线时刻为值;并生成第二表项添加到下线消息映射表中,所述第二表项包括所述下线消息中携带的第一私网IP地址、所述第一用户身份标识和下线时刻、以及为所述第一用户设置的上线时刻;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值。
结合第八方面,在第八方面的第一种可能的实现方式中,
如果所述上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同、且包括的第二用户身份标识与所述第一用户身份标识不同的第三表项,则
所述处理器,用于根据所述下线消息中携带的下线时刻,为所述第一用户设置一个上线时刻;并生成第四表项添加到所述下线消息映射表中,所述第四表项包括所述下线消息中携带的第一私网IP地址、所述第一用户身份标识和下线时刻、以及为所述第一用户设置的上线时刻;
根据所述下线消息中携带的下线时刻和所述第三表项包括的预设下线时刻,为所述第二用户身份标识所表征的第二用户设置一个下线时刻,并生成第五表项添加到所述下线消息映射表中,所述第五表项包括为所述第二用户设置的下线时刻、以及所述第三表项包括的私网IP地址、第二用户身份标识和上线时刻;
在将所述第五表项添加到所述下线消息映射表之后,在所述上线消息映射表中删除所述第三表项。
结合第八方面,在第八方面的第二种可能的实现方式中,所述根据下线时刻映射表为所述第一用户设置一个上线时刻,包括:
如果所述下线时刻映射表存在包括的私网IP地址与所述第一私网IP地址相同的第六表项,则为所述第一用户设置的上线时刻满足下述条件:
onlineTimeA=lastOfflineTime+IPReassignTime;或
onlineTimeA=lastOfflineTime;
如果所述下线时刻映射表不存在所述第六表项,则为所述第一用户设置的上线时刻满足下述条件:
onlineTimeA=offlineTimeA-IPReassignTime;
其中,onlineTimeA表示为所述第一用户设置的上线时刻,lastOfflineTime表示所述第六表项包括的最近一次下线时刻,IPReassignTime表示设置的私网IP地址再分配周期,offlineTimeA表示所述下线消息中携带的下线时刻。
结合第八方面的第一种可能的实现方式,在第八方面的第三种可能的实现方式中,所述根据所述下线消息中携带的下线时刻为所述第一用户设置一个上线时刻,包括:
为所述第一用户设置的上线时刻满足下述条件;
onlineTimeA=offlineTimeA-IPReassignTime;
其中,onlineTimeA表示为所述第一用户设置的上线时刻;offlineTimeA表示所述下线消息中携带的下线时刻,IPReassignTime表示设置的私网IP地址再分配周期;
所述根据所述下线消息中携带的下线时刻和所述第三表项包括的预设下线时刻为所述第二用户设置一个下线时刻,包括:
为所述第二用户设置的下线时刻满足下述条件:
offlineTimeB=min(exOfflineTimeB,offlineTimeA-IPReassignTime);
其中,offlineTimeB表示为所述第二用户设置的下线时刻,exOfflineTimeB表示所述第三表项包括的预设下线时刻。
结合第八方面的第一种可能的实现方式,在第八方面的第四种可能的实现方式中,
如果所述上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同、且包括的用户身份标识与所述第一用户身份标识相同的第七表项,则
所述处理器,用于生成第八表项添加到所述下线消息映射表中,所述第八表项包括所述下线消息中携带的第一私网IP地址、所述第一用户身份标识和下线时刻,以及所述第七表项包括的上线时刻。
结合第八方面的第四种可能的实现方式,在第八方面的第五种可能的实现方式中,
如果所述上线消息映射表不存在所述第一表项,则所述处理器还用于:
在根据下线时刻映射表为所述第一用户设置一个上线时刻之后,在确定所述下线时刻映射表存在包括的私网IP地址与所述第一私网IP地址相同的第六表项时,将所述第六表项包括的最近一次下线时刻的值,更新为所述下线消息中携带的下线时刻的值;在确定所述下线时刻映射表不存在所述第六表项时,生成第九表项添加到所述下线时刻映射表中,所述第九表项包括所述下线消息中携带的第一私网IP地址和下线时刻;
如果所述上线消息映射表存在所述第三表项,则所述处理器还用于:
在所述收发器接收第一用户的下线消息之后,在确定所述下线时刻映射表存在所述第六表项时,将所述第六表项包括的最近一次下线时刻的值,更新为所述下线消息中携带的下线时刻的值;在确定所述下线时刻映射表不存在所述第六表项时,生成所述第九表项添加到所述下线时刻映射表中;
如果所述上线消息映射表存在所述第七表项,则所述处理器还用于:
在所述收发器接收第一用户的下线消息之后,在确定所述下线时刻映射表存在所述第六表项时,将所述第六表项包括的最近一次下线时刻的值,更新为所述下线消息中携带的下线时刻的值;在确定所述下线时刻映射表不存在所述第六表项时,生成所述第九表项添加到所述下线时刻映射表中。
结合第八方面和第八方面的第一种至第五种可能的实现方式中的任意一种,在第八方面的第六种可能的实现方式中,
所述收发器还用于,接收第一溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合;
如果所述第一溯源请求未携带用户身份标识,则所述处理器还用于:
查询与所述第一溯源请求携带的每个字段均匹配的第一NAT日志;所述第一NAT日志包括私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段;所述第一NAT日志包括的除访问时间段之外的其余字段与所述第一溯源请求携带的对应字段的取值相同,且所述第一NAT日志包括的访问时间段的取值范围包含所述第一溯源请求携带的访问时间段的取值范围;
根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述上线消息映射表中查询第十表项,所述第十表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第十表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻;如果查询到所述第十表项,则指示所述收发器返回所述第十表项和所述第一NAT日志;和/或,
根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述下线消息映射表查询第十一表项,所述第十一表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第十一表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻,且所述第十一表项包括的下线时刻晚于所述第一NAT日志包括的访问时间段中的结束时刻;如果查询到所述第十一表项,则指示所述收发器返回所述第十一表项和所述第一NAT日志。
结合第八方面和第八方面的第一种至第六种可能的实现方式中的任意一种,在第八方面的第七种可能的实现方式中,
所述收发器还用于,接收第二溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合;
如果所述第二溯源请求携带用户身份标识,则所述处理器还用于:
在所述上线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十二表项;以及查询与所述第十二表项包括的私网IP地址和访问时间段匹配的第二NAT日志,所述第十二表项包括的私网IP地址与所述第二NAT日志包括的私网IP地址相同,且所述第十二表项包括的上线时刻早于所述第二NAT日志包括的访问时间段中的开始时刻;如果查询到所述第二NAT日志,且所述第二NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则指示所述收发器返回所述第十二表项和所述第二NAT日志;和/或,
在所述下线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十三表项;以及查询与所述第十三表项包括的私网IP地址和访问时间段匹配的第三NAT日志,所述第十三表项包括的私网IP地址与所述第三NAT日志包括的私网IP地址相同,且所述第十三表项包括的上线时刻早于所述第三NAT日志包括的访问时间段中的开始时刻,且所述第十三表项包括的下线时刻晚于所述第三NAT日志包括的访问时间段中的结束时刻;如果查询到所述第三NAT日志,且所述第三NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则指示所述收发器返回所述第十三表项和所述第三NAT日志。
第九方面,本发明实施例提供了一种用于溯源的映射表的更新装置,包括:
收发器,用于接收AAA服务器发送的第一用户的保活消息,所述保活消息携带第一私网IP地址、第一用户身份标识和保活时刻;所述保活时刻为所述AAA服务器发送所述保活消息的时刻;
如果上线消息映射表不存在包括的私网IP地址与所述第一私网IP地址相同的第一表项,所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值,则
处理器,用于根据所述保活消息中携带的保活时刻为所述第一用户设置一个上线时刻和一个预设下线时刻;并生成第二表项添加到所述上线消息映射表中,所述第二表项包括为所述第一用户设置的上线时刻和预设下线时刻,以及所述保活消息中携带的所述第一私网IP地址和第一用户身份标识。
结合第九方面,在第九方面的第一种可能的实现方式中,
如果所述上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同、且包括的第二用户身份标识与所述第一用户身份标识不同的第三表项,则
所述处理器,用于根据保活消息中携带的保活时刻和所述第三表项包括的预设下线时刻,为所述第二用户身份标识所表征的第二用户设置一个下线时刻,并生成第四表项添加到下线消息映射表中,所述第四表项包括为所述第二用户设置的下线时刻,以及所述第三表项包括的私网IP地址、第二用户身份标识和上线时刻;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值;
在将所述第四表项添加到所述下线消息映射表之后,在所述上线消息映射表中删除所述第三表项;
根据为所述第二用户设置的下线时刻,为所述第一用户设置一个上线时刻;以及根据所述保活消息中携带的保活时刻为所述第一用户设置一个预设下线时刻;并在删除所述第三表项之后,生成第五表项添加到所述上线消息映射表中,所述第五表项包括为所述第一用户设置的上线时刻和预设下线时刻,以及所述保活消息中携带的所述第一私网IP地址和第一用户身份标识。
结合第九方面,在第九方面的第二种可能的实现方式中,所述根据所述保活消息中携带的保活时刻为所述第一用户设置一个上线时刻,包括:
为所述第一用户设置的上线时刻满足下述条件:
onlineTimeA=activeTimeA-updateTime-IPReassignTime;
其中,onlineTimeA表示为所述第一用户设置的上线时刻,activeTimeA表示所述保活消息中携带的保活时刻,updateTime表示设置的保活周期,IPReassignTime表示设置的私网IP地址再分配周期;所述保活周期为所述AAA服务器发送保活消息的间隔。
结合第九方面的第一种可能的实现方式,在第九方面的第三种可能的实现方式中,所述根据保活消息中携带的保活时刻和所述第三表项包括的预设下线时刻,为所述第二用户身份标识所表征的第二用户设置一个下线时刻,包括:
为所述第二用户设置的下线时刻满足下述条件:
offlineTimeB=min(exOfflineTimeB,ativeTimeA-updateTime-IPReassignTime);
其中,offlineTimeB表示为所述第二用户设置的下线时刻,exOfflineTimeB表示所述第三表项包括的预设下线时刻,activeTimeA表示所述保活消息中携带的保活时刻,updateTime为设置的保活周期,IPReassignTime表示设置的私网IP地址再分配周期,所述保活周期为所述AAA服务器发送保活消息的间隔;
所述根据为所述第二用户设置的下线时刻,为所述第一用户设置一个上线时刻,包括:
为所述第一用户设置的上线时刻满足下述条件:
onlineTimeA=offlineTimeB;或
onlineTimeA=offlineTimeB+IPReassignTime;
其中,onlineTimeA表示为所述第一用户设置的上线时刻。
结合第九方面,在第九方面的第四种可能的实现方式中,
如果所述上线消息映射表存在包括的包括的私网IP地址与所述第一私网IP地址相同、且包括的用户身份标识与所述第一用户身份标识相同的第六表项,则
所述处理器,用于根据所述保活消息中携带的保活时刻为所述第一用户设置一个预设下线时刻;并将所述第六表项包括的预设下线时刻的值,更新为为所述第一用户设置的预设下线时刻的值。
结合第九方面、第九方面的第一种可能的实现方式或第四种可能的实现方式,在第九方面的第五种可能的实现方式中,所述根据所述保活消息中携带的保活时刻为所述第一用户设置一个预设下线时刻,包括:
为所述第一用户设置的预设下线时刻满足下述条件:
exOfflineTimeA=activeTimeA+IPReassignTime;
其中,exOfflineTimeA表示为所述第一用户设置的预设下线时刻,activeTimeA表示所述保活消息中携带的保活时刻,IPReassignTime表示设置的私网IP地址再分配周期。
结合第九方面的第一种至第五种可能的实现方式中的任意一种,在第九方面的第六种可能的实现方式中,所述处理器还用于:
按照设定周期查询所述上线消息映射表是否存在超时表项,所述超时表项包括的预设下线时刻与所述超时表项包括的上线时刻的差值大于设定时长;
如果查询到所述超时表项,则将所述超时表项包括的上线时刻与所述设定时长的和值作为所述超时表项包括的用户身份标识所表征的用户的下线时刻,并生成第七表项添加到所述下线消息映射表中,所述第七表项包括得到的下线时刻、以及所述超时表项包括的私网IP地址、用户身份标识和上线时刻;
在将所述第七表项添加到所述下线消息映射表之后,将所述超时表项包括的上线时刻的值,更新为所述超时表项包括的上线时刻与所述设定时长的和值。
结合第九方面的第一种至第六种可能的实现方式中的任意一种,在第九方面的第七种可能的实现方式中,
所述收发器,还用于接收第一溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合;
如果所述第一溯源请求未携带用户身份标识,则所述处理器还用于:
查询与所述第一溯源请求携带的每个字段均匹配的第一NAT日志;所述第一NAT日志包括私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段;所述第一NAT日志包括的除访问时间段之外的其余字段与所述第一溯源请求携带的对应字段的取值相同,且所述第一NAT日志包括的访问时间段的取值范围包含所述第一溯源请求携带的访问时间段的取值范围;
根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述上线消息映射表中查询第八表项,所述第八表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第八表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻;如果查询到所述第八表项,则指示所述收发器返回所述第八表项和所述第一NAT日志;和/或,
根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述下线消息映射表中查询第九表项,所述第九表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第九表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻,且所述第九表项包括的下线时刻晚于所述第一NAT日志包括的访问时间段中的结束时刻;如果查询到所述第九表项,则指示所述收发器返回所述第九表项和所述第一NAT日志。
结合第九方面的第一种至第七种可能的实现方式中的任意一种,在第九方面的第八种可能的实现方式中,
所述收发器还用于,接收第二溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合;
如果所述第二溯源请求携带用户身份标识,则所述处理器还用于:
在所述上线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十表项;以及查询与所述第十表项包括的私网IP地址和访问时间段匹配的第二NAT日志,所述第十表项包括的私网IP地址与所述第二NAT日志包括的私网IP地址相同,且所述第十表项包括的上线时刻早于所述第二NAT日志包括的访问时间段中的开始时刻;如果查询到所述第二NAT日志,且所述第二NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则指示所述收发器返回所述第十表项和所述第二NAT日志;和/或,
在所述下线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十一表项;以及查询与所述第十一表项包括的私网IP地址和访问时间段匹配的第三NAT日志,所述第十一表项包括的私网IP地址与所述第三NAT日志包括的私网IP地址相同,且所述第十一表项包括的上线时刻早于所述第三NAT日志包括的访问时间段中的开始时刻,且所述第十一表项包括的下线时刻晚于所述第三NAT日志包括的访问时间段中的结束时刻;如果查询到所述第三NAT日志,且所述第三NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则指示所述收发器返回所述第十一表项和所述第三NAT日志。
利用本发明实施例提供的方案,通过对用户的上下线消息中携带的用户身份标识和NAT日志分开存储,后续溯源时再对NAT日志与用户身份标识进行关联,解决了因日志服务器收到用户的上线消息或下线消息的时间晚于收到该用户的NAT日志,导致的溯源准确率不高的问题;以及,根据AAA服务器发送的上线消息、下线消息和保活消息中的至少一个,结合上线消息映射表,确定是否缺失某用户的上线消息或下线消息,并对确定出的缺失的上线消息或下线消息进行补偿,解决了因接收的上线消息或下线消息缺失,造成的溯源准确率不高的问题。
附图说明
图1为本发明实施例提供的用于溯源的映射表的更新方法应用的系统架构的示意图;
图2A为本发明实施例提供的第一种用于溯源的映射表的更新方法在第一种情况下的流程图;
图2B为本发明实施例提供的第一种用于溯源的映射表的更新方法在第二种情况下的流程图;
图3A为本发明实施例提供的第二种用于溯源的映射表的更新方法在第一种情况下的流程图;
图3B为本发明实施例提供的第二种用于溯源的映射表的更新方法在第二种情况下的流程图;
图3C为本发明实施例提供的第二种用于溯源的映射表的更新方法在第三种情况下的流程图;
图4A为本发明实施例提供的第三种用于溯源的映射表的更新方法在第一种情况下的流程图;
图4B为本发明实施例提供的第三种用于溯源的映射表的更新方法在第二种情况下的流程图;
图4C为本发明实施例提供的第三种用于溯源的映射表的更新方法在第三种情况下的流程图;
图5A为本发明实施例提供的第一种用于溯源的映射表的更新装置的结构示意图;
图5B为本发明实施例提供的第一种用于溯源的映射表的更新装置的另一结构示意图;
图6A为本发明实施例提供的第二种用于溯源的映射表的更新装置的结构示意图;
图6B为本发明实施例提供的第二种用于溯源的映射表的更新装置的另一结构示意图;
图7A为本发明实施例提供的第三种用于溯源的映射表的更新装置的结构示意图;
图7B为本发明实施例提供的第三种用于溯源的映射表的更新装置的另一结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供了一种用于溯源的映射表的更新方法和装置,通过对用户的上下线消息中携带的用户身份标识和NAT日志分开存储,后续溯源时再对NAT日志与用户身份标识进行关联,解决了因日志服务器收到用户的上线消息或下线消息的时间晚于收到该用户的NAT日志,导致的溯源准确率不高的问题;以及,根据AAA服务器发送的上线消息、下线消息和保活消息中的至少一个,结合上线消息映射表,确定是否缺失某用户的上线消息或下线消息,并对确定出的缺失的上线消息或下线消息进行补偿,解决了因接收的上线消息或下线消息缺失,造成的溯源准确率不高的问题。
本发明实施例提供的用于溯源的映射表的更新方法和装置,可应用于图1所示的系统架构。图1所示的系统架构包括日志服务器、AAA服务器和NAT设备,其中,
AAA服务器,用于在认证通过用户通过网络接入服务器发送的上网认证请求时,记录一条radius格式的上线消息,并将上线消息发送给日志服务器,上线消息包括网络接入服务器中的网络附属存储(Network Attached Storage,NAS)设备为用户分配的私网IP地址、上线时刻和用户身份标识等信息,上线时刻即为AAA服务器通过用户的上网认证请求的时刻。同样,AAA服务器在接收到用户通过网络接入服务器发送的用户下线请求时,记录并向日志服务器发送一条radius格式的下线消息,下线消息包括用户的私网IP地址、下线时刻和用户身份标识等信息。下线时刻即为AAA服务器停止上网计费的时刻。用户下线后,其私网IP地址将被NAS设备收回。本发明实施例中的AAA服务器也可被称为Radius服务器。
NAT设备可以是插接在网络接入服务器上的一块板卡,也可以是与网络接入服务器相联接的独立设备,负责接收用户的网络访问请求,将用户的私网IP地址转换成公网IP地址,使用户能够正常访问外部公网。NAT设备可以将用户的私网IP地址与该用户的上网访问记录进行关联,生成文本(syslog)格式或二进制格式的NAT日志,并将生成的NAT日志发送到日志服务器,NAT日志包括源私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口、访问时间段等信息。访问时间段包括访问某一个网站的开始时刻和结束时刻。
日志服务器负责采集分析AAA服务器发送的用户的上线消息、下线消息和保活消息,并基于上述消息维护存储以下三个映射表:上线消息映射表、下线消息映射表和下线时刻映射表。以及,日志服务器还负责采集分析NAT设备发送的文本格式或二进制格式的NAT日志,从接收的NAT日志中分析并提取出私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段等NAT日志关键信息,然后直接将所述NAT日志关键信息以日志服务器能够直接识别的格式存储为新的NAT日志并保存,不需要在存储NAT日志前查询上线消息映射表,建立NAT日志和用户身份标识的关联关系。以及,日志服务器还负责在接收到外部用户的溯源请求时,分别查询当前存储的NAT日志和上线消息映射表和下线消息映射表,从中获取与溯源请求匹配的NAT日志和用户身份标识一同返回给发起溯源请求的外部用户。
图2A和图2B所示,为本发明实施例提供的第一种用于溯源的映射表的更新方法的实现流程图,该方法基于AAA服务器发送的上线消息实现,可分为两种情况。
如图2A所示,第一种情况下的方法实施流程如下:
步骤201A:日志服务器接收AAA服务器发送的第一用户的上线消息,所述上线消息携带第一私网IP地址、第一用户身份标识和上线时刻。
本发明实施例中所述第一私网IP地址即为NAS设备为第一用户分配的私网IP地址。
本发明实施例中所述用户身份标识可以是手机号、国际移动用户识别码(International Mobile Subscriber Identification Number,IMSI)和用户账号中的其中一个或组合。可选的,所述用户身份标识还可以包括媒体接入控制(Medium AccessControl,MAC)地址、用户位置信息(比如:小区标识、路由标识等)和用户名中的至少一个或组合。
步骤202A:如果上线消息映射表存在包括的私网IP与所述第一私网IP地址相同的第二表项,则所述日志服务器根据所述上线消息中携带的上线时刻,为所述第二表项中包括的第二用户身份标识所表征的第二用户设置一个下线时刻,并生成第三表项添加到下线消息映射表中,所述第三表项包括为所述第二用户设置的下线时刻,以及所述第二表项包括的私网IP地址、第二用户身份标识和上线时刻;所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值。
应理解,本发明实施例中如果所述上线消息映射表中存在所述第二表项,则表明所述日志服务器未接收到所述第二表项中包括的第二用户身份标识所表征的第二用户的下线消息。
需要说明的是,本发明实施例中所述第二表项中包括的第二用户身份标识与所述上线消息中携带的第一用户身份标识可以相同,也可以不同。
例如,假设接收到的上线消息携带的私网IP地址、上线时刻和用户身份标识分别为PrivateIP、onlineTimeA和UserIDA,在上线消息映射表中查询到的私网IP地址相同的表项如下表1所示,则表明缺失了UserIDB所表征的用户使用PrivateIP访问外部公网时的下线消息。其中,UserIDA和UserIDB可以相同,也可以不同。
表1
本发明实施例中所述上线消息映射表以键值表的形式存在,以私网IP地址作为键(Key),以节点对象作为值(Value),键和值对应成为映射记录,节点对象为上线消息中携带的用户身份标识和上线时刻、与设置的预设下线时刻的组合,所述预设下线时刻为根据预设的补偿原则预估的一个最早下线时刻,可以为补偿缺失的上线消息或下线消息提供一个参考依据。所述上线消息映射表中包括的每个私网IP地址都是唯一的,不会存在私网IP地址相同的两个表项。
实际应用中,为保证对所述上线消息映射表的处理速度,一般将所述上线消息映射表存储在内存中。进一步的,可以将所述上线消息映射表中包括的表项按照私网IP地址从大到小或从小到大的顺序排列,在查询某个特定的表项时可根据私网IP地址进行二叉树查询,可以提高查询速度。
可选的,本发明实施例中为所述第二用户设置的下线时刻满足下述条件:
offlineTimeB=max(exOfflineTimeB,onlineTimeA-IPReassignTime) 公式(1)
或
offlineTimeB=onlineTimeA 公式(2)
其中,offlineTimeB表示为所述第二用户设置的下线时刻,exOfflineTimeB表示所述第二表项包括的预设下线时刻,onlineTimeA表示所述上线消息中携带的上线时刻,IPReassignTime表示设置的私网IP地址再分配周期。
本发明实施例中所述私网IP地址再分配周期,指的是私网IP地址被NAS设备收回后,再分配给其他用户使用的时间间隔,通常可以在网络接入服务器上配置。本发明实施例通过设置私网IP地址再分配周期,在确保同一私网IP地址在任何时间段内都不会被多个用户占用的前提下,可以为缺失的上线消息或下线消息补偿一个尽可能接近的上线时刻或下线时刻提供一个参考依据。
本发明实施例中将同一用户基于相同私网IP地址的上线消息与下线消息合并为一个表项存储到下线消息映射表中,一方面相比将上线消息和下线消息分开存储可以减少多余的存储量,另一方面如果在溯源时间段内,如果恰好有一条或多条用户的上线消息或下线消息没有抄送给日志服务器,本发明实施例也不会溯源到其他用户,可以提高溯源的准确度。
实际应用中,考虑到所述下线消息映射表将占用较大的存储空间,一般将所述下线消息映射表保存在硬盘中。
步骤203A:所述日志服务器在将所述第三表项添加到下线消息映射表之后,在所述上线消息映射表中删除所述第二表项。
步骤204A:所述日志服务器根据所述上线消息在上线消息映射表中创建第一表项;所述第一表项包括所述第一私网IP地址、所述第一用户身份标识、所述上线时刻和预设下线时刻。
可选的,本发明实施例中所述第一表项包括的预设下线时刻满足下述条件:
exOfflineTimeA=onlineTimeA+IPReassignTime 公式(3)
其中,exOfflineTimeA表示所述第一表项包括的预设下线时刻,onlineTimeA表示所述上线消息携带的上线时刻,IPReassignTime表示设置的私网IP地址再分配周期。
如图2B所示,第二种情况下的方法实施流程如下:
步骤201B:日志服务器接收AAA服务器发送的第一用户的上线消息,所述上线消息携带第一私网IP地址、第一用户身份标识和上线时刻。
步骤202B:如果上线消息映射表不存在包括的私网IP地址与所述第一私网IP地址相同的第二表项,则所述日志服务器根据所述上线消息在上线消息映射表中创建第一表项;所述第一表项包括所述第一私网IP地址、所述第一用户身份标识、所述上线时刻和预设下线时刻;所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值。
应理解,本发明实施例中如果所述上线消息映射表不存在所述第二表项,则表明所述日志服务器正常接收到了所述第二表项中包括的第二用户身份标识所表征的第二用户的下线消息。
所述第一表项包括的预设下线时刻满足的条件可以参考公式(3)。
可选的,本发明实施例中所述日志服务器可以根据接收的溯源请求进行溯源;所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合。
如果所述日志服务器接收到第一溯源请求,所述第一溯源请求未携带用户身份标识,则所述日志服务器执行以下操作:
所述日志服务器查询与所述第一溯源请求携带的每个字段均匹配的第一NAT日志;所述第一NAT日志包括私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段;所述第一NAT日志包括的除访问时间段之外的其余字段与所述第一溯源请求携带的对应字段的取值相同,且所述第一NAT日志包括的访问时间段的取值范围包含所述第一溯源请求包括的访问时间段的取值范围。
所述日志服务器根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述上线消息映射表中查询第四表项,所述第四表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第四表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻;如果查询到所述第四表项,则返回所述第四表项和所述第一NAT日志。和/或,
所述日志服务器根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述下线消息映射表中查询第五表项,所述第五表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第五表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻,且所述第五表项包括的下线时刻晚于所述第一NAT日志包括的访问时间段中的结束时刻;如果查询到所述第五表项,则返回所述第五表项和所述第一NAT日志。
如果所述日志服务器接收到第二溯源请求,所述第二溯源请求携带用户身份标识,则所述日志服务器执行以下操作:
所述日志服务器在所述上线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第六表项;以及查询与所述第六表项包括的私网IP地址和访问时间段匹配的第二NAT日志,所述第六表项包括的私网IP地址与所述第二NAT日志包括的私网IP地址相同,且所述第六表项包括的上线时刻早于所述第二NAT日志包括的访问时间段中的开始时刻;如果查询到所述第二NAT日志,且所述第二NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则返回所述第六表项和所述第二NAT日志。和/或,
所述日志服务器在所述下线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第七表项;以及查询与所述第七表项包括的私网IP地址和访问时间段匹配的第三NAT日志,所述第七表项包括的私网IP地址与所述第三NAT日志包括的私网IP地址相同,且所述第七表项包括的上线时刻早于所述第三NAT日志包括的访问时间段中的开始时刻,且所述第七表项包括的下线时刻晚于所述第三NAT日志包括的访问时间段中的结束时刻;如果查询到所述第三NAT日志,且所述第三NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则返回所述第七表项和所述第三NAT日志。
较佳的,因为上线消息映射表和下线消息映射表是以私网IP地址为键存储的索引文件,所以可以根据私网IP地址进行二叉树查找,能够更快地获得匹配的表项。
本发明实施例中,新加入下线消息映射表的表项一般默认插入下线消息映射表中已保存的最后一个表项之后。一个下线消息映射表的存储量一般为200万多个表项,当超过一个下线消息映射表的存储量时,需要将新生成的表项存储到新的下线消息映射表中。由于日志服务器不确定符合溯源条件的表项在硬盘中的保存位置,因此在进行溯源时无法选择性地导入下线消息映射表,从而可能需要从最新的下线消息映射表开始往前遍历很多下线消息映射表才能查询到符合溯源条件的表项,造成溯源效率低下。为此,本发明实施例提出以下方法:
所述日志服务器接收AAA服务器发送的第一用户的保活消息,根据所述保活消息中携带的保活时刻为所述第一用户重新设置一个预设下线时刻,并将所述第一表项包括的预设下线时刻的值,更新为为该重新设置的预设下线时刻的值。
以及,所述日志服务器按照设定周期查询所述上线消息映射表是否存在超时表项,所述超时表项包括的预设下线时刻与所述超时表项包括的上线时刻的差值大于设定时长;
如果查询到所述超时表项,则所述日志服务器将所述超时表项包括的上线时刻与所述设定时长的和值作为所述超时表项包括的用户身份标识所表征的用户的下线时刻,并生成第八表项添加到所述下线消息映射表中,所述第八表项包括得到的下线时刻、以及所述超时表项包括的私网IP地址、用户身份标识和上线时刻;
所述日志服务器在将所述第八表项添加到所述下线消息映射表之后,将所述超时表项包括的上线时刻的值,更新为所述超时表项包括的上线时刻与所述设定时长的和值。以此类推,若更新后的上线时刻与所述超时表项包括的预设下线时刻的差值仍大于所述设定时长,则继续按照上述过程拆分,直至所述超时表项包括的预设下线时刻与再次更新后的上线时刻的差值小于所述设定时长。
例如,若所述设定时长为24小时,如下表2所示的上线消息映射表中存在一表项,该表项包括的预设下线时刻与上线时刻的差值为24小时15分钟,显然该表项为一超时表项。对该超时表项进行拆分时,可理解为让用户身份标识12345所表征的用户在线满24小时后先下线并立即上线,表2中的表项可以拆分为如下表3中所示的两个表项,其中,第一个表项的上线时刻为2015-5-19 10:00,其下线时刻的值为该上线时刻与设定时长的和值,即2015-5-20 10:00,第二个表项的预设下线时刻为2015-5-20 10:15,其上线时刻的值更新为2015-5-20 10:00。日志服务器将表3中的第一个表项作为一个表项添加到下线消息映射表中,并使用表3中的第二个表项替换表2所示的上线消息映射表中的表项。
表2
私网IP地址 |
上线时刻 |
预设下线时刻 |
用户身份标识 |
192.168.1.1 |
2015-5-19 10:00 |
2015-5-20 10:15 |
12345 |
表3
私网IP地址 |
上线时刻 |
预设/下线时刻 |
用户身份标识 |
192.168.1.1 |
2015-5-19 10:00 |
2015-5-20 10:00 |
12345 |
192.168.1.1 |
2015-5-20 10:00 |
2015-5-20 10:15 |
12345 |
可选的,可以使用时间段的形式命名下线消息映射表,并且令存储在该下线消息映射表内的所有表项记录的上线时刻或下线时刻均包括在该下线消息映射表的文件名显示的时间段内。例如,将某一下线消息映射表的文件名为“2015-05-01-00:00:00_2015-05-01-23:59:59”,用于表明该下线消息映射表内存储的表项的上线时刻均落在2015-05-01-00:00:00和2015-05-01-23:59:59这一时间范围内。这样,便于后续溯源时选择性地导入下线消息映射表,提高溯源效率。
图3A、图3B和图3C所示,为本发明另一实施例提供的第二种用于溯源的映射表的更新方法的实现流程图,该方法基于AAA服务器发送的下线消息实现,可分为三种情况。
如图3A所示,第一种情况下的方法实施流程如下:
步骤301A:日志服务器接收AAA服务器发送的第一用户的下线消息,所述下线消息携带第一私网IP地址、第一用户身份标识和下线时刻。
步骤302A:如果上线消息映射表不存在包括的私网IP地址与所述第一私网IP地址相同的第一表项,所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值,则所述日志服务器根据下线时刻映射表为所述第一用户设置一个上线时刻;所述下线时刻映射表以私网IP地址为键,以最近一次下线时刻为值;并生成第二表项添加到下线消息映射表中,所述第二表项包括所述下线消息中携带的第一私网IP地址、所述第一用户身份标识和下线时刻、以及为所述第一用户设置的上线时刻;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值。
应理解,本发明实施例中如果所述上线消息映射表不存在所述第一表项,则表明所述日志服务器未接收到所述第一用户的上线消息。
可选的,本发明实施例中如果所述下线时刻映射表存在包括的私网IP地址与所述第一私网IP地址相同的第六表项,则为所述第一用户设置的上线时刻可以满足下述条件:
onlineTimeA=lastOfflineTime+IPReassignTime 公式(4)
或
onlineTimeA=lastOfflineTime 公式(5)
如果所述下线时刻映射表不存在所述第六表项,则为所述第一用户设置的上线时刻可以满足下述条件:
onlineTimeA=offlineTimeA-IPReassignTime 公式(6)
其中,onlineTimeA表示为所述第一用户设置的上线时刻,lastOfflineTime表示所述第六表项包括的最近一次下线时刻,IPReassignTime表示设置的私网IP地址再分配周期,offlineTimeA表示所述下线消息中携带的下线时刻。
所述第六表项包括的最近一次下线时刻,即为在所述第一用户的前一个、同样使用第一私网IP地址的用户的下线时刻。
可选的,在所述日志服务器根据下线时刻映射表为所述第一用户设置一个上线时刻之后,如果确定所述下线时刻映射表存在包括的私网IP地址与所述第一私网IP地址相同的第六表项,则所述日志服务器可以将所述第六表项包括的最近一次下线时刻的值,更新为所述下线消息中携带的下线时刻的值;如果确定所述下线时刻映射表不存在所述第六表项,则所述日志服务器可以生成第九表项添加到所述下线时刻映射表中,所述第九表项包括所述下线消息中携带的第一私网IP地址和下线时刻。
本发明实施例中所述下线时刻映射表可以用于获取某个私网IP地址对应的最近一次的下线时刻,从而可以为后期对缺失的上线消息进行补偿时提供参考依据,提高溯源的准确率。
如图3B所示,第二种情况下的方法实施流程如下:
步骤301B:日志服务器接收AAA服务器发送的第一用户的下线消息,所述下线消息携带第一私网IP地址、第一用户身份标识和下线时刻。
步骤302B:如果上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同、且包括的第二用户身份标识与所述第一用户身份标识不同的第三表项,则所述日志服务器根据所述下线消息中携带的下线时刻,为所述第一用户设置一个上线时刻;并生成第四表项添加到下线消息映射表中,所述第四表项包括所述下线消息中携带的第一私网IP地址、所述第一用户身份标识和下线时刻、以及为所述第一用户设置的上线时刻;所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值。
应理解,本发明实施例中,如果所述上线消息映射表存在所述第三表项,则表明所述日志服务器未接收到所述第三表项中包括的第二用户身份标识所表征的第二用户的下线消息,以及未接收到所述第一用户的上线消息。
可选的,本发明实施例中为所述第一用户设置的上线时刻满足下述条件:
为所述第一用户设置的上线时刻满足下述条件;
onlineTimeA=offlineTimeA-IPReassignTime 公式(7)
其中,onlineTimeA表示为所述第一用户设置的上线时刻;offlineTimeA表示所述下线消息中携带的下线时刻,IPReassignTime表示设置的私网IP地址再分配周期。
步骤303B:所述所述日志服务器根据所述下线消息中携带的下线时刻和所述第三表项包括的预设下线时刻,为所述第二用户身份标识所表征的第二用户设置一个下线时刻,并生成第五表项添加到所述下线消息映射表中,所述第五表项包括为所述第二用户设置的下线时刻、以及所述第三表项包括的私网IP地址、第二用户身份标识和上线时刻。
可选的,本发明实施例中为所述第二用户设置的下线时刻满足下述条件:
offlineTimeB=min(exOfflineTimeB,offlineTimeA-IPReassignTime) 公式(8)
其中,offlineTimeB表示为所述第二用户设置的下线时刻,exOfflineTimeB表示所述第三表项包括的预设下线时刻,其余参数的定义可参见公式(7)。
需要说明的是,本发明实施例并不限定步骤302B和步骤303B的执行顺序,步骤302B可以在步骤303B之前执行,也可以在步骤303之后执行,或者步骤302B和步骤303B同时执行。
步骤304B:所述日志服务器在将所述第五表项添加到所述下线消息映射表之后,在所述上线消息映射表中删除所述第三表项。
可选的,在所述日志服务器接收第一用户的下线消息之后,如果确定所述下线时刻映射表存在所述包括的私网IP地址与所述第一私网IP地址相同的第六表项,则所述日志服务器将所述第六表项包括的最近一次下线时刻的值,更新为所述下线消息中携带的下线时刻的值;如果确定所述下线时刻映射表不存在所述第六表项,则所述日志服务器生成所述第九表项添加到所述下线时刻映射表中,所述第九表项包括所述下线消息中携带的第一私网IP地址和下线时刻。
如图3C所示,第三种情况下的方法实施流程如下:
步骤301C:日志服务器接收AAA服务器发送的第一用户的下线消息,所述下线消息携带第一私网IP地址、第一用户身份标识和下线时刻。
步骤302C:如果上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同、且包括的用户身份标识与所述第一用户身份标识相同的第七表项,则所述日志服务器生成第八表项添加到下线消息映射表中,所述第八表项包括所述下线消息中携带的第一私网IP地址、所述第一用户身份标识和下线时刻,以及所述第七表项包括的上线时刻;所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值。
应理解,本发明实施例中如果所述上线消息映射表存在所述第七表项,则表明所述日志服务器正常接收到了所述第一用户的上线消息,以及正常接收到了所述第三表项中包括的第二用户身份标识所表征的第二用户的下线消息。
可选的,在所述日志服务器接收第一用户的下线消息之后,如果确定所述下线时刻映射表存在所述包括的私网IP地址与所述第一私网IP地址相同的第六表项,则所述日志服务器将所述第六表项包括的最近一次下线时刻的值,更新为所述下线消息中携带的下线时刻的值;如果确定所述下线时刻映射表不存在所述第六表项,则所述日志服务器生成所述第九表项添加到所述下线时刻映射表中,所述第九表项包括所述下线消息中携带的第一私网IP地址和下线时刻。
可选的,本发明实施例中所述日志服务器可以根据接收的溯源请求进行溯源;所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合。
如果所述日志服务器接收到第一溯源请求,所述第一溯源请求未携带用户身份标识,则所述日志服务器执行以下操作:
所述日志服务器查询与所述第一溯源请求携带的每个字段均匹配的第一NAT日志;所述第一NAT日志包括私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段;所述第一NAT日志包括的除访问时间段之外的其余字段与所述第一溯源请求携带的对应字段的取值相同,且所述第一NAT日志包括的访问时间段的取值范围包含所述第一溯源请求携带的访问时间段的取值范围。
所述日志服务器根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述上线消息映射表中查询第十表项,所述第十表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第十表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻;如果查询到所述第十表项,则返回所述第十表项和所述第一NAT日志。和/或,
所述日志服务器根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述下线消息映射表查询第十一表项,所述第十一表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第十一表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻,且所述第十一表项包括的下线时刻晚于所述第一NAT日志包括的访问时间段中的结束时刻;如果查询到所述第十一表项,则返回所述第十一表项和所述第一NAT日志。
如果所述日志服务器接收到第二溯源请求,所述第二溯源请求携带用户身份标识,则所述日志服务器执行以下操作:
所述日志服务器在所述上线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十二表项;以及查询与所述第十二表项包括的私网IP地址和访问时间段匹配的第二NAT日志,所述第十二表项包括的私网IP地址与所述第二NAT日志包括的私网IP地址相同,且所述第十二表项包括的上线时刻早于所述第二NAT日志包括的访问时间段中的开始时刻;如果查询到所述第二NAT日志,且所述第二NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则返回所述第十二表项和所述第二NAT日志。和/或,
所述日志服务器在所述下线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十三表项;以及查询与所述第十三表项包括的私网IP地址和访问时间段匹配的第三NAT日志,所述第十三表项包括的私网IP地址与所述第三NAT日志包括的私网IP地址相同,且所述第十三表项包括的上线时刻早于所述第三NAT日志包括的访问时间段中的开始时刻,且所述第十三表项包括的下线时刻晚于所述第三NAT日志包括的访问时间段中的结束时刻;如果查询到所述第三NAT日志,且所述第三NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则返回所述第十三表项和所述第三NAT日志。
可选的,本发明实施例提出可以对上线消息映射表中的超时表项进行拆分,将拆分后的部分表项存入特定的下线消息映射表,以便于后续溯源时可以选择性地导入下线消息映射表。对超时表项进行拆分的具体实现过程如下:
所述日志服务器接收AAA服务器发送的第一用户的保活消息,根据所述保活消息中携带的保活时刻为所述第一用户重新设置一个预设下线时刻,并将所述第一表项包括的预设下线时刻的值,更新为为该重新设置的预设下线时刻的值。
以及,所述日志服务器按照设定周期查询所述上线消息映射表是否存在超时表项,所述超时表项包括的预设下线时刻与所述超时表项包括的上线时刻的差值大于设定时长;
如果查询到所述超时表项,则所述日志服务器将所述超时表项包括的上线时刻与所述设定时长的和值作为所述超时表项包括的用户身份标识所表征的用户的下线时刻,并生成第十四表项添加到所述下线消息映射表中,所述第十四表项包括得到的下线时刻、以及所述超时表项包括的私网IP地址、用户身份标识和上线时刻;
所述日志服务器在将所述第十四表项添加到所述下线消息映射表之后,将所述超时表项包括的上线时刻的值,更新为所述超时表项包括的上线时刻与所述设定时长的和值。
图4A、图4B和图4C所示,为本发明再一实施例提供的第三种用于溯源的映射表的更新方法的实现流程图,该方法基于AAA服务器发送的保活消息实现,可分为三种情况。
如图4A所示,第一种情况下的方法实施流程如下:
步骤401A:日志服务器接收AAA服务器发送的第一用户的保活消息,所述保活消息携带第一私网IP地址、第一用户身份标识和保活时刻;所述保活时刻为所述AAA服务器发送所述保活消息的时刻。
本发明实施例中所述日志服务器可以根据所述保活消息确定用户是否一直在线。
步骤402A:如果上线消息映射表不存在包括的私网IP地址与所述第一私网IP地址相同的第一表项,所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值,则所述日志服务器根据所述保活消息中携带的保活时刻为所述第一用户设置一个上线时刻和一个预设下线时刻;并生成第二表项添加到所述上线消息映射表中,所述第二表项包括为所述第一用户设置的上线时刻和预设下线时刻,以及所述保活消息中携带的所述第一私网IP地址和第一用户身份标识。
应理解,本发明实施例中如果所述上线消息映射表不存在所述第一表项,则表明所述日志服务器未接收到所述第一用户的上线消息。
可选的,本发明实施例中为所述第一用户设置的上线时刻满足下述条件:
onlineTimeA=activeTimeA-updateTime-IPReassignTime 公式(9)
其中,onlineTimeA表示为所述第一用户设置的上线时刻,activeTimeA表示所述保活消息中携带的保活时刻,updateTime表示设置的保活周期,IPReassignTime表示设置的私网IP地址再分配周期;所述保活周期为所述AAA服务器发送保活消息的间隔。
具体的,所述保活周期是指所述AAA服务器发送任一保活消息的时刻距离上一次发送携带相同私网IP地址和相同用户身份标识的保活消息的时间间隔,也是指任一用户的上线时刻距离所述AAA服务器第一次发送携带相同私网IP地址和相同用户身份标识的保活消息的时间间隔。
可选的,本发明实施例中为所述第一用户设置的预设下线时刻满足下述条件:
exOfflineTimeA=activeTimeA+IPReassignTime 公式(10)
其中,exOfflineTimeA表示为所述第一用户设置的预设下线时刻,activeTimeA表示所述保活消息中携带的保活时刻,IPReassignTime表示设置的私网IP地址再分配周期。
如图4B所示,第二种情况下的方法实施流程如下:
步骤401B:日志服务器接收AAA服务器发送的第一用户的保活消息,所述保活消息携带第一私网IP地址、第一用户身份标识和保活时刻;所述保活时刻为所述AAA服务器发送所述保活消息的时刻。
步骤402B:如果上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同、且包括的第二用户身份标识与所述第一用户身份标识不同的第三表项,则所述日志服务器根据保活消息中携带的保活时刻和所述第三表项包括的预设下线时刻,为所述第二用户身份标识所表征的第二用户设置一个下线时刻,并生成第四表项添加到下线消息映射表中,所述第四表项包括为所述第二用户设置的下线时刻,以及所述第三表项包括的私网IP地址、第二用户身份标识和上线时刻;所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值。
应理解,本发明实施例中如果所述上线消息映射表存在所述第三表项,则表明所述日志服务器未接收到所述第三表项包括的所述第二用户身份标识所表征的第二用户的下线消息,以及未接收到所述第一用户的上线消息。
可选的,本发明实施例中为所述第二用户设置的下线时刻满足下述条件:offlineTimeB=min(exOfflineTimeB,ativeTimeA-updateTime-IPReassignTime)
公式(11)
其中,offlineTimeB表示为所述第二用户设置的下线时刻,exOfflineTimeB表示所述第三表项包括的预设下线时刻,activeTimeA表示所述保活消息中携带的保活时刻,updateTime为设置的保活周期,IPReassignTime表示设置的私网IP地址再分配周期,所述保活周期为所述AAA服务器发送保活消息的间隔。
步骤403B:所述日志服务器在将所述第四表项添加到所述下线消息映射表之后,在所述上线消息映射表中删除所述第三表项。
步骤404B:所述日志服务器根据为所述第二用户设置的下线时刻,为所述第一用户设置一个上线时刻;以及根据所述保活消息中携带的保活时刻为所述第一用户设置一个预设下线时刻;并在删除所述第三表项之后,生成第五表项添加到所述上线消息映射表中,所述第五表项包括为所述第一用户设置的上线时刻和预设下线时刻,以及所述保活消息中携带的所述第一私网IP地址和第一用户身份标识。
可选的,本发明实施例中为所述第一用户设置的上线时刻满足下述条件:
onlineTimeA=offlineTimeB 公式(12)
或
onlineTimeA=offlineTimeB+IPReassignTime 公式(13)
其中,onlineTimeA表示为所述第一用户设置的上线时刻,其余参数定义可参见公式(11)。
本发明实施例中为所述第一用户设置的预设下线时刻满足的条件可以参考公式(10)。
需要说明的是,本发明实施例并不限定步骤402B和步骤403B中为所述第一用户设置上线时刻和预设下线时刻的执行顺序。
如图4C所示,第三种情况下的方法实施流程如下:
步骤401C:日志服务器接收AAA服务器发送的第一用户的保活消息,所述保活消息携带第一私网IP地址、第一用户身份标识和保活时刻;所述保活时刻为所述AAA服务器发送所述保活消息的时刻。
步骤402C:如果所述上线消息映射表存在包括的包括的私网IP地址与所述第一私网IP地址相同、且包括的用户身份标识与所述第一用户身份标识相同的第六表项,则所述日志服务器根据所述保活消息中携带的保活时刻为所述第一用户设置一个预设下线时刻;并将所述第六表项包括的预设下线时刻的值,更新为为所述第一用户设置的预设下线时刻的值。
应理解,本发明实施例中如果所述上线消息映射表存在所述第四表项,则表明所述日志服务器正常接收到了所述第一用户的上线消息,以及正常接收到了所述第三表项中包括的第二用户身份标识所表征的第二用户的下线消息。
可选的,为所述第一用户设置的预设下线时刻的条件可以参考公式(10)。
可选的,本发明实施例中所述日志服务器还可以按照设定周期查询所述上线消息映射表是否包括超时表项,所述超时表项包括的预设下线时刻与包括的上线时刻的差值大于设定时长;如果查询到所述超时表项,则所述日志服务器将所述超时表项包括的上线时刻与所述设定时长的和值作为所述超时表项包括的用户身份标识所表征的用户的下线时刻,并生成第七表项添加到所述下线消息映射表中,所述第七表项包括得到的下线时刻、以及所述超时表项包括的私网IP地址、用户身份标识和上线时刻;所述日志服务器在将所述第七表项添加到所述下线消息映射表之后,将所述超时表项包括的上线时刻的值,更新为所述超时表项包括的上线时刻与所述设定时长的和值。
可选的,本发明实施例中所述日志服务器可以根据接收的溯源请求进行溯源;所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合。
如果所述日志服务器接收第一溯源请求,所述第一溯源请求未携带用户身份标识,则所述日志服务器执行以下操作:
所述日志服务器查询与所述第一溯源请求携带的每个字段均匹配的第一NAT日志;所述第一NAT日志包括私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段;所述第一NAT日志包括的除访问时间段之外的其余字段与所述第一溯源请求携带的对应字段的取值相同,且所述第一NAT日志包括的访问时间段的取值范围包含所述第一溯源请求携带的访问时间段的取值范围。
所述日志服务器根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述上线消息映射表中查询第八表项,所述第八表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第八表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻;如果查询到所述第八表项,则返回所述第八表项和所述第一NAT日志。和/或,
所述日志服务器根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述下线消息映射表中查询第九表项,所述第九表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第九表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻,且所述第九表项包括的下线时刻晚于所述第一NAT日志包括的访问时间段中的结束时刻;如果查询到所述第九表项,则返回所述第九表项和所述第一NAT日志。
如果所述日志服务器接收第二溯源请求,所述第二溯源请求携带用户身份标识,则所述日志服务器执行以下操作:
所述日志服务器在所述上线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十表项;以及查询与所述第十表项包括的私网IP地址和访问时间段匹配的第二NAT日志,所述第十表项包括的私网IP地址与所述第二NAT日志包括的私网IP地址相同,且所述第十表项包括的上线时刻早于所述第二NAT日志包括的访问时间段中的开始时刻;如果查询到所述第二NAT日志,且所述第二NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则返回所述第十表项和所述第二NAT日志。和/或,
所述日志服务器在所述下线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十一表项;以及查询与所述第十一表项包括的私网IP地址和访问时间段匹配的第三NAT日志,所述第十一表项包括的私网IP地址与所述第三NAT日志包括的私网IP地址相同,且所述第十一表项包括的上线时刻早于所述第三NAT日志包括的访问时间段中的开始时刻,且所述第十一表项包括的下线时刻晚于所述第三NAT日志包括的访问时间段中的结束时刻;如果查询到所述第三NAT日志,且所述第三NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则返回所述第十一表项和所述第三NAT日志。
需要说明的是,本发明实施例各图示中的执行步骤标号,并不完全限定各步骤的执行先后顺序,图示仅是进行示意性说明。
基于本发明实施例上述提供的用于溯源的映射表的更新方法,本发明实施例提供一种用于溯源的映射表的更新装置500,用于实现图2A至图2B所示方法,如图5A所示,所述装置500包括收发单元501和处理单元502,其中:
收发单元501,用于接收AAA服务器发送的第一用户的上线消息,所述上线消息携带第一私网IP地址、第一用户身份标识和上线时刻。
处理单元502,用于根据所述上线消息在上线消息映射表中创建第一表项;所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值;所述第一表项包括所述第一私网IP地址、所述第一用户身份标识、所述上线时刻和预设下线时刻。
所述处理单元502在上线消息映射表中创建第一表项之前,还用于:
如果所述上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同的第二表项,则根据所述上线消息中携带的上线时刻,为所述第二表项中包括的第二用户身份标识所表征的第二用户设置一个下线时刻,并生成第三表项添加到下线消息映射表中,所述第三表项包括为所述第二用户设置的下线时刻,以及所述第二表项包括的私网IP地址、第二用户身份标识和上线时刻;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值;在将所述第三表项添加到下线消息映射表之后,在所述上线消息映射表中删除所述第二表项。
可选的,所述处理单元502在根据所述上线消息中携带的上线时刻为所述第二用户设置一个下线时刻时,为所述第二用户设置的下线时刻满足下述条件:
offlineTimeB=max(exOfflineTimeB,onlineTimeA-IPReassignTime);或
offlineTimeB=onlineTimeA;
其中,offlineTimeB表示为所述第二用户设置的下线时刻,exOfflineTimeB表示所述第二表项包括的预设下线时刻,onlineTimeA表示所述上线消息中携带的上线时刻,IPReassignTime表示设置的私网IP地址再分配周期。
可选的,所述第一表项包括的预设下线时刻满足下述条件:
exOfflineTimeA=onlineTimeA+IPReassignTime;
其中,exOfflineTimeA表示所述第一表项包括的预设下线时刻,onlineTimeA表示所述上线消息携带的上线时刻,IPReassignTime表示设置的私网IP地址再分配周期。
可选的,所述收发单元501还用于,接收第一溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合。
如果所述第一溯源请求未携带用户身份标识,则所述处理单元502还用于:
查询与所述第一溯源请求携带的每个字段均匹配的第一NAT日志;所述第一NAT日志包括私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段;所述第一NAT日志包括的除访问时间段之外的其余字段与所述第一溯源请求携带的对应字段的取值相同,且所述第一NAT日志包括的访问时间段的取值范围包含所述第一溯源请求包括的访问时间段的取值范围;
根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述上线消息映射表中查询第四表项,所述第四表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第四表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻;如果查询到所述第四表项,则指示所述收发单元501返回所述第四表项和所述第一NAT日志;和/或,
根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述下线消息映射表中查询第五表项,所述第五表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第五表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻,且所述第五表项包括的下线时刻晚于所述第一NAT日志包括的访问时间段中的结束时刻;如果查询到所述第五表项,则指示所述收发单501元返回所述第五表项和所述第一NAT日志。
可选的,所述收发单元501还用于,接收第二溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合。
如果所述第二溯源请求携带用户身份标识,则所述处理单元502还用于:
在所述上线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第六表项;以及查询与所述第六表项包括的私网IP地址和访问时间段匹配的第二NAT日志,所述第六表项包括的私网IP地址与所述第二NAT日志包括的私网IP地址相同,且所述第六表项包括的上线时刻早于所述第二NAT日志包括的访问时间段中的开始时刻;如果查询到所述第二NAT日志,且所述第二NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则指示所述收发单元501返回所述第六表项和所述第二NAT日志;和/或,
在所述下线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第七表项;以及查询与所述第七表项包括的私网IP地址和访问时间段匹配的第三NAT日志,所述第七表项包括的私网IP地址与所述第三NAT日志包括的私网IP地址相同,且所述第七表项包括的上线时刻早于所述第三NAT日志包括的访问时间段中的开始时刻,且所述第七表项包括的下线时刻晚于所述第三NAT日志包括的访问时间段中的结束时刻;如果查询到所述第三NAT日志,且所述第三NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则指示所述收发单元501返回所述第七表项和所述第三NAT日志。
可选的,所述收发单元501还用于,接收AAA服务器发送的第一用户的保活消息。
相应的,所述处理单元502还用于,根据所述保活消息中携带的保活时刻为所述第一用户重新设置一个预设下线时刻,并将所述第一表项包括的预设下线时刻的值,更新为为该重新设置的预设下线时刻的值。以及,按照设定周期查询所述上线消息映射表是否存在超时表项,所述超时表项包括的预设下线时刻与所述超时表项包括的上线时刻的差值大于设定时长;如果查询到所述超时表项,则将所述超时表项包括的上线时刻与所述设定时长的和值作为所述超时表项包括的用户身份标识所表征的用户的下线时刻,并生成第八表项添加到所述下线消息映射表中,所述第八表项包括得到的下线时刻、以及所述超时表项包括的私网IP地址、用户身份标识和上线时刻;并在将所述第八表项添加到所述下线消息映射表之后,将所述超时表项包括的上线时刻的值,更新为所述超时表项包括的上线时刻与所述设定时长的和值。
基于本发明实施例上述提供的用于溯源的映射表的更新方法和装置,本发明实施例还提供一种用于溯源的映射表的更新装置5000,用于实现图2A至图2B所示的方法,如图5B所示,所述装置5000包括:
总线5001;
与所述总线相连的处理器5002;
与所述总线相连的存储器5003;
与所述总线相连的收发器5004。
其中,所述收发器5004,用于接收AAA服务器发送的第一用户的上线消息,所述上线消息携带第一私网IP地址、第一用户身份标识和上线时刻。
所述处理器5002通过所述总线5001,调用所述存储器5003中存储的程序,以用于根据所述上线消息在上线消息映射表中创建第一表项;所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值;所述第一表项包括所述第一私网IP地址、所述第一用户身份标识、所述上线时刻和预设下线时刻。
所述处理器5002在上线消息映射表中创建第一表项之前,还用于:
如果所述上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同的第二表项,则根据所述上线消息中携带的上线时刻,为所述第二表项中包括的第二用户身份标识所表征的第二用户设置一个下线时刻,并生成第三表项添加到下线消息映射表中,所述第三表项包括为所述第二用户设置的下线时刻,以及所述第二表项包括的私网IP地址、第二用户身份标识和上线时刻;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值;在将所述第三表项添加到下线消息映射表之后,在所述上线消息映射表中删除所述第二表项。
需要说明的是,处理器5002还可以执行图5A中所示的处理单元502所执行的其他操作,收发器5004还可以执行图5A中所示的收发单元501所执行的其他操作。
基于本发明实施例上述提供的用于溯源的映射表的更新方法,本发明实施例提供一种用于溯源的映射表的更新装置600,用于实现图3A至图3C所示的方法,如图6A所示,装置600包括收发单元601和处理单元602,其中:
收发单元601,用于接收AAA服务器发送的第一用户的下线消息,所述下线消息携带第一私网IP地址、第一用户身份标识和下线时刻。
如果上线消息映射表不存在包括的私网IP地址与所述第一私网IP地址相同的第一表项,所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值,则处理单元602,用于根据下线时刻映射表为所述第一用户设置一个上线时刻;所述下线时刻映射表以私网IP地址为键,以最近一次下线时刻为值;并生成第二表项添加到下线消息映射表中,所述第二表项包括所述下线消息中携带的第一私网IP地址、所述第一用户身份标识和下线时刻、以及为所述第一用户设置的上线时刻;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值。
如果所述上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同、且包括的第二用户身份标识与所述第一用户身份标识不同的第三表项,则所述处理单元602,用于根据所述下线消息中携带的下线时刻,为所述第一用户设置一个上线时刻;并生成第四表项添加到所述下线消息映射表中,所述第四表项包括所述下线消息中携带的第一私网IP地址、所述第一用户身份标识和下线时刻、以及为所述第一用户设置的上线时刻;根据所述下线消息中携带的下线时刻和所述第三表项包括的预设下线时刻,为所述第二用户身份标识所表征的第二用户设置一个下线时刻,并生成第五表项添加到所述下线消息映射表中,所述第五表项包括为所述第二用户设置的下线时刻、以及所述第三表项包括的私网IP地址、第二用户身份标识和上线时刻;在将所述第五表项添加到所述下线消息映射表之后,在所述上线消息映射表中删除所述第三表项。
如果所述上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同、且包括的用户身份标识与所述第一用户身份标识相同的第七表项,则所述处理单元602,用于生成第八表项添加到所述下线消息映射表中,所述第八表项包括所述下线消息中携带的第一私网IP地址、所述第一用户身份标识和下线时刻,以及所述第七表项包括的上线时刻。
可选的,所述处理单元602在根据下线时刻映射表为所述第一用户设置一个上线时刻时,如果所述下线时刻映射表存在包括的私网IP地址与所述第一私网IP地址相同的第六表项,则为所述第一用户设置的上线时刻满足下述条件:
onlineTimeA=lastOfflineTime+IPReassignTime;或
onlineTimeA=lastOfflineTime;
如果所述下线时刻映射表不存在所述第六表项,则为所述第一用户设置的上线时刻满足下述条件:
onlineTimeA=offlineTimeA-IPReassignTime;
其中,onlineTimeA表示为所述第一用户设置的上线时刻,lastOfflineTime表示所述第六表项包括的最近一次下线时刻,IPReassignTime表示设置的私网IP地址再分配周期,offlineTimeA表示所述下线消息中携带的下线时刻。
可选的,所述处理单元602在根据所述下线消息中携带的下线时刻为所述第一用户设置一个上线时刻时,为所述第一用户设置的上线时刻满足下述条件;
onlineTimeA=offlineTimeA-IPReassignTime;
其中,onlineTimeA表示为所述第一用户设置的上线时刻;offlineTimeA表示所述下线消息中携带的下线时刻,IPReassignTime表示设置的私网IP地址再分配周期。
可选的,所述处理单元602在根据所述下线消息中携带的下线时刻和所述第三表项包括的预设下线时刻为所述第二用户设置一个下线时刻时,为所述第二用户设置的下线时刻满足下述条件:
offlineTimeB=min(exOfflineTimeB,offlineTimeA-IPReassignTime);
其中,offlineTimeB表示为所述第二用户设置的下线时刻,exOfflineTimeB表示所述第三表项包括的预设下线时刻。
可选的,如果所述上线消息映射表不存在所述第一表项,则所述处理单元602还用于:
在根据下线时刻映射表为所述第一用户设置一个上线时刻之后,在确定所述下线时刻映射表存在包括的私网IP地址与所述第一私网IP地址相同的第六表项时,将所述第六表项包括的最近一次下线时刻的值,更新为所述下线消息中携带的下线时刻的值;在确定所述下线时刻映射表不存在所述第六表项时,生成第九表项添加到所述下线时刻映射表中,所述第九表项包括所述下线消息中携带的第一私网IP地址和下线时刻。
如果所述上线消息映射表存在所述第三表项,则所述处理单元602还用于:
在所述收发单元接收第一用户的下线消息之后,在确定所述下线时刻映射表存在所述第六表项时,将所述第六表项包括的最近一次下线时刻的值,更新为所述下线消息中携带的下线时刻的值;在确定所述下线时刻映射表不存在所述第六表项时,生成所述第九表项添加到所述下线时刻映射表中。
如果所述上线消息映射表存在所述第七表项,则所述处理单元602还用于:
在所述收发单元接收第一用户的下线消息之后,在确定所述下线时刻映射表存在所述第六表项时,将所述第六表项包括的最近一次下线时刻的值,更新为所述下线消息中携带的下线时刻的值;在确定所述下线时刻映射表不存在所述第六表项时,生成所述第九表项添加到所述下线时刻映射表中。
可选的,所述收发单元601还用于,接收第一溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合。
如果所述第一溯源请求未携带用户身份标识,则所述处理单元602还用于:
查询与所述第一溯源请求携带的每个字段均匹配的第一NAT日志;所述第一NAT日志包括私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段;所述第一NAT日志包括的除访问时间段之外的其余字段与所述第一溯源请求携带的对应字段的取值相同,且所述第一NAT日志包括的访问时间段的取值范围包含所述第一溯源请求携带的访问时间段的取值范围;
根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述上线消息映射表中查询第十表项,所述第十表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第十表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻;如果查询到所述第十表项,则指示所述收发单元601返回所述第十表项和所述第一NAT日志;和/或,
根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述下线消息映射表查询第十一表项,所述第十一表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第十一表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻,且所述第十一表项包括的下线时刻晚于所述第一NAT日志包括的访问时间段中的结束时刻;如果查询到所述第十一表项,则指示所述收发单元601返回所述第十一表项和所述第一NAT日志。
可选的,所述收发单元601还用于,接收第二溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合。
如果所述第二溯源请求携带用户身份标识,则所述处理单元602还用于:
在所述上线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十二表项;以及查询与所述第十二表项包括的私网IP地址和访问时间段匹配的第二NAT日志,所述第十二表项包括的私网IP地址与所述第二NAT日志包括的私网IP地址相同,且所述第十二表项包括的上线时刻早于所述第二NAT日志包括的访问时间段中的开始时刻;如果查询到所述第二NAT日志,且所述第二NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则指示所述收发单元601返回所述第十二表项和所述第二NAT日志;和/或,
在所述下线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十三表项;以及查询与所述第十三表项包括的私网IP地址和访问时间段匹配的第三NAT日志,所述第十三表项包括的私网IP地址与所述第三NAT日志包括的私网IP地址相同,且所述第十三表项包括的上线时刻早于所述第三NAT日志包括的访问时间段中的开始时刻,且所述第十三表项包括的下线时刻晚于所述第三NAT日志包括的访问时间段中的结束时刻;如果查询到所述第三NAT日志,且所述第三NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则指示所述收发单元601返回所述第十三表项和所述第三NAT日志。
可选的,所述收发单元601还用于,接收AAA服务器发送的第一用户的保活消息。
相应的,所述处理单元602还用于,根据所述保活消息中携带的保活时刻为所述第一用户重新设置一个预设下线时刻,并将所述第一表项包括的预设下线时刻的值,更新为为该重新设置的预设下线时刻的值。以及,按照设定周期查询所述上线消息映射表是否存在超时表项,所述超时表项包括的预设下线时刻与所述超时表项包括的上线时刻的差值大于设定时长;如果查询到所述超时表项,则将所述超时表项包括的上线时刻与所述设定时长的和值作为所述超时表项包括的用户身份标识所表征的用户的下线时刻,并生成第十四表项添加到所述下线消息映射表中,所述第十四表项包括得到的下线时刻、以及所述超时表项包括的私网IP地址、用户身份标识和上线时刻;并在将所述第十四表项添加到所述下线消息映射表之后,将所述超时表项包括的上线时刻的值,更新为所述超时表项包括的上线时刻与所述设定时长的和值。
基于本发明实施例上述提供的用于溯源的映射表的更新方法和装置,本发明实施例还提供一种用于溯源的映射表的更新装置6000,用于实现图3A至图3C所示的方法,如图6B所示,所述装置6000包括:
总线6001;
与所述总线相连的处理器6002;
与所述总线相连的存储器6003;
与所述总线相连的收发器6004。
其中,所述收发器6004,用于接收AAA服务器发送的第一用户的下线消息,所述下线消息携带第一私网IP地址、第一用户身份标识和下线时刻。
所述处理器6002通过所述总线6001,调用所述存储器6003中存储的程序,以用于:如果上线消息映射表不存在包括的私网IP地址与所述第一私网IP地址相同的第一表项,所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值,则根据下线时刻映射表为所述第一用户设置一个上线时刻;所述下线时刻映射表以私网IP地址为键,以最近一次下线时刻为值;并生成第二表项添加到下线消息映射表中,所述第二表项包括所述下线消息中携带的第一私网IP地址、所述第一用户身份标识和下线时刻、以及为所述第一用户设置的上线时刻;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值。
需要说明的是,处理器6002还可以执行图6A中所示的处理单元602所执行的其他操作,收发器6004还可以执行图6A中所示的收发单元601所执行的其他操作。
基于本发明实施例上述提供的用于溯源的映射表的更新方法,本发明实施例提供一种用于溯源的映射表的更新装置700,用于实现图4A至图4C所示的方法,如图7A所示,装置700包括收发单元701和处理单元702,其中:
收发单元701,用于接收AAA服务器发送的第一用户的保活消息,所述保活消息携带第一私网IP地址、第一用户身份标识和保活时刻;所述保活时刻为所述AAA服务器发送所述保活消息的时刻。
如果上线消息映射表不存在包括的私网IP地址与所述第一私网IP地址相同的第一表项,所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值,则处理单元702,用于根据所述保活消息中携带的保活时刻为所述第一用户设置一个上线时刻和一个预设下线时刻;并生成第二表项添加到所述上线消息映射表中,所述第二表项包括为所述第一用户设置的上线时刻和预设下线时刻,以及所述保活消息中携带的所述第一私网IP地址和第一用户身份标识。
如果所述上线消息映射表存在包括的私网IP地址与所述第一私网IP地址相同、且包括的第二用户身份标识与所述第一用户身份标识不同的第三表项,则所述处理单元702,用于根据保活消息中携带的保活时刻和所述第三表项包括的预设下线时刻,为所述第二用户身份标识所表征的第二用户设置一个下线时刻,并生成第四表项添加到下线消息映射表中,所述第四表项包括为所述第二用户设置的下线时刻,以及所述第三表项包括的私网IP地址、第二用户身份标识和上线时刻;所述下线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和下线时刻为值;在将所述第四表项添加到所述下线消息映射表之后,在所述上线消息映射表中删除所述第三表项;根据为所述第二用户设置的下线时刻,为所述第一用户设置一个上线时刻;以及根据所述保活消息中携带的保活时刻为所述第一用户设置一个预设下线时刻;并在删除所述第三表项之后,生成第五表项添加到所述上线消息映射表中,所述第五表项包括为所述第一用户设置的上线时刻和预设下线时刻,以及所述保活消息中携带的所述第一私网IP地址和第一用户身份标识。
如果所述上线消息映射表存在包括的包括的私网IP地址与所述第一私网IP地址相同、且包括的用户身份标识与所述第一用户身份标识相同的第六表项,则所述处理单元702,用于根据所述保活消息中携带的保活时刻为所述第一用户设置一个预设下线时刻;并将所述第六表项包括的预设下线时刻的值,更新为为所述第一用户设置的预设下线时刻的值。
可选的,所述处理单元702在根据所述保活消息中携带的保活时刻为所述第一用户设置一个上线时刻时,为所述第一用户设置的上线时刻满足下述条件:
onlineTimeA=activeTimeA-updateTime-IPReassignTime;
其中,onlineTimeA表示为所述第一用户设置的上线时刻,activeTimeA表示所述保活消息中携带的保活时刻,updateTime表示设置的保活周期,IPReassignTime表示设置的私网IP地址再分配周期;所述保活周期为所述AAA服务器发送保活消息的间隔。
可选的,所述处理单元702在根据保活消息中携带的保活时刻和所述第三表项包括的预设下线时刻,为所述第二用户身份标识所表征的第二用户设置一个下线时刻时,为所述第二用户设置的下线时刻满足下述条件:
offlineTimeB=min(exOfflineTimeB,ativeTimeA-updateTime-IPReassignTime);
其中,offlineTimeB表示为所述第二用户设置的下线时刻,exOfflineTimeB表示所述第三表项包括的预设下线时刻,activeTimeA表示所述保活消息中携带的保活时刻,updateTime为设置的保活周期,IPReassignTime表示设置的私网IP地址再分配周期,所述保活周期为所述AAA服务器发送保活消息的间隔。
可选的,所述处理单元702在根据为所述第二用户设置的下线时刻,为所述第一用户设置一个上线时刻时,为所述第一用户设置的上线时刻满足下述条件:
onlineTimeA=offlineTimeB;或
onlineTimeA=offlineTimeB+IPReassignTime;
其中,onlineTimeA表示为所述第一用户设置的上线时刻。
可选的,所述处理单元702在根据所述保活消息中携带的保活时刻为所述第一用户设置一个预设下线时刻时,为所述第一用户设置的预设下线时刻满足下述条件:
exOfflineTimeA=activeTimeA+IPReassignTime;
其中,exOfflineTimeA表示为所述第一用户设置的预设下线时刻,activeTimeA表示所述保活消息中携带的保活时刻,IPReassignTime表示设置的私网IP地址再分配周期。
可选的,所述处理单元702还用于:
按照设定周期查询所述上线消息映射表是否存在超时表项,所述超时表项包括的预设下线时刻与所述超时表项包括的上线时刻的差值大于设定时长;如果查询到所述超时表项,则将所述超时表项包括的上线时刻与所述设定时长的和值作为所述超时表项包括的用户身份标识所表征的用户的下线时刻,并生成第七表项添加到所述下线消息映射表中,所述第七表项包括得到的下线时刻、以及所述超时表项包括的私网IP地址、用户身份标识和上线时刻;在将所述第七表项添加到所述下线消息映射表之后,将所述超时表项包括的上线时刻的值,更新为所述超时表项包括的上线时刻与所述设定时长的和值。
可选的,所述收发单元701,还用于接收第一溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合。
如果所述第一溯源请求未携带用户身份标识,则所述处理单元702还用于:
查询与所述第一溯源请求携带的每个字段均匹配的第一NAT日志;所述第一NAT日志包括私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段;所述第一NAT日志包括的除访问时间段之外的其余字段与所述第一溯源请求携带的对应字段的取值相同,且所述第一NAT日志包括的访问时间段的取值范围包含所述第一溯源请求携带的访问时间段的取值范围;
根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述上线消息映射表中查询第八表项,所述第八表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第八表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻;如果查询到所述第八表项,则指示所述收发单元701返回所述第八表项和所述第一NAT日志;和/或,
根据所述第一NAT日志包括的私网IP地址和访问时间段,在所述下线消息映射表中查询第九表项,所述第九表项包括的私网IP地址与所述第一NAT日志包括的私网IP地址相同,且所述第九表项包括的上线时刻早于所述第一NAT日志包括的访问时间段中的开始时刻,且所述第九表项包括的下线时刻晚于所述第一NAT日志包括的访问时间段中的结束时刻;如果查询到所述第九表项,则指示所述收发单元701返回所述第九表项和所述第一NAT日志。
可选的,所述收发单元701还用于,接收第二溯源请求,所述溯源请求携带用户身份标识、私网IP地址、源公网IP地址、目的IP地址、源公网端口、目的端口和访问时间段中的其中一个字段或至少两个字段的组合。
如果所述第二溯源请求携带用户身份标识,则所述处理单元702还用于:
在所述上线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十表项;以及查询与所述第十表项包括的私网IP地址和访问时间段匹配的第二NAT日志,所述第十表项包括的私网IP地址与所述第二NAT日志包括的私网IP地址相同,且所述第十表项包括的上线时刻早于所述第二NAT日志包括的访问时间段中的开始时刻;如果查询到所述第二NAT日志,且所述第二NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则指示所述收发单元701返回所述第十表项和所述第二NAT日志;和/或,
在所述下线消息映射表中查询包括的用户身份标识与所述第二溯源请求携带的用户身份标识相同的第十一表项;以及查询与所述第十一表项包括的私网IP地址和访问时间段匹配的第三NAT日志,所述第十一表项包括的私网IP地址与所述第三NAT日志包括的私网IP地址相同,且所述第十一表项包括的上线时刻早于所述第三NAT日志包括的访问时间段中的开始时刻,且所述第十一表项包括的下线时刻晚于所述第三NAT日志包括的访问时间段中的结束时刻;如果查询到所述第三NAT日志,且所述第三NAT日志与所述第二溯源请求携带的除用户身份标识之外的每个字段均匹配,则指示所述收发单元701返回所述第十一表项和所述第三NAT日志。
基于本发明实施例上述提供的用于溯源的映射表的更新方法和装置,本发明实施例还提供一种用于溯源的映射表的更新装置7000,用于实现图4A至图4C所示的方法,如图7B所示,所述装置7000包括:
总线7001;
与所述总线相连的处理器7002;
与所述总线相连的存储器7003;
与所述总线相连的收发器7004。
其中,所述收发器7004,用于接收AAA服务器发送的第一用户的保活消息,所述保活消息携带第一私网IP地址、第一用户身份标识和保活时刻;所述保活时刻为所述AAA服务器发送所述保活消息的时刻。
所述处理器7002通过所述总线7001,调用所述存储器7003中存储的程序,以用于:如果上线消息映射表不存在包括的私网IP地址与所述第一私网IP地址相同的第一表项,所述上线消息映射表以私网IP地址为键,以用户身份标识、上线时刻和预设下线时刻为值,则根据所述保活消息中携带的保活时刻为所述第一用户设置一个上线时刻和一个预设下线时刻;并生成第二表项添加到所述上线消息映射表中,所述第二表项包括为所述第一用户设置的上线时刻和预设下线时刻,以及所述保活消息中携带的所述第一私网IP地址和第一用户身份标识。
需要说明的是,处理器7002还可以执行图7A中所示的处理单元702所执行的其他操作,收发器7004还可以执行图7A中所示的收发单元701所执行的其他操作。
需要说明的是,本发明上述实施例中涉及的总线,除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线。
本发明上述实施例中涉及的收发器可以包括发射电路、接收电路、功率控制器、解码器及天线。
本发明上述实施例中涉及的存储器,可以是只读存储器(read-only memory,ROM),随机存取存储器(random access memory,RAM),也可以是电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此,例如存储器可以是上述存储器的组合。
本发明上述实施例涉及的处理器可以是中央处理单元(Central ProcessingUnit,CPU),还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者也可以是任何常规的处理器等。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
综上所述,利用本发明实施例提供的技术方案,通过对不完整的上网记录进行合理补偿,缓解了因为上线消息或下线消息丢失而导致的溯源匹配率和准确率低下的问题;尤其通过采集并处理保活消息,可以使补偿的上线时刻或下线时刻更接近用户真实的上线时刻或下线时刻,提高了溯源的准确度和匹配率。通过对接收到的用户上网记录和NAT日志分别存储,不需要在NAT日志存储前建立NAT日志和用户身份标识的关联关系,从而避免了因频繁查询上线消息映射表而造成的日志服务器的负担;同时,也因为NAT日志和用户上网记录是分别存储的,而用户上网记录的数量一般要比NAT日志的数量少几个数量级,并且将使用同一私网IP地址的同一用户的上线消息和下线消息合并为一条记录存储,使得日志服务器的整体存储量降低,进而大大提高了日志服务器的整体处理能力。通过对超长上网记录的拆分处理,在溯源时,可以避免遍历过多数据库文件而导致的溯源效率低下的问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包括有计算机可用程序代码的计算机非易失性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。