专利名称:一种在通信设备中实现消息流控的方法
技术领域:
本发明涉及消息流控技术,具体涉及一种在通信设备中实现对消息进行流量控制的方法。
背景技术:
现有的第三代移动通信系统中,在移动终端中保存国际移动用户标识IMSI、鉴权密钥KI和序列号SQNMS,网络侧的HLR/AUC中针对该移动终端对应保存IMSI、KI和序列号SQNHE,以用于移动终端和网络相互鉴权。
3G通信系统的现有鉴权流程主要为HLR/AUC产生随机数RAND,根据随机数RAND和KI产生期望响应XRES、加密密钥CK、完整性密钥IK;根据随机数RAND、序列号SQNHE、鉴权密钥KI和鉴权管理域AMF产生出MAC-A,根据MAC-A,SQNHE、AK和AMF得到鉴权标记AUTN(Authentication Token)。由RAND和XRES、CK、IK和AUTN组成鉴权五元组,将该五元组发送给MSC/VLR保存。当然,实际当中,HLR/AUC是应MSC/VLR的请求才将产生的相应的一个或多个五元组发送给MSC/VLR的。鉴权时,MSC/VLR将对应五元组中RAND和AUTN发送给终端,终端根据自己保存的KI验证AUTN的一致性,如果一致性验证不通过,则向MSC/VLR返回鉴权失败信息;若一致性验证通过,则判断SQNHE是否属于可接受的范围若属于,则终端判断出对网络鉴权通过,终端向MSC/VLR返回终端自己产生的鉴权响应,并根据AUTN中的SQNHE更新SQNMS,MSC/VLR比较终端返回的鉴权响应和对应五元组中的XRES是否一致来判断终端的合法性;若判断出SQNHE不属于可接受范围,则根据SQNMS产生再同步标记AUTS(Resynchronisation Token),对网络侧MSC/VLR返回再同步请求或同步失败(Synchronisation failure)消息,同时附上产生的再同步标记AUTS,也即消息中包含AUTS。网络侧MSC/VLR接收到再同步标记AUTS时,将AUTS和对应五元组中的RAND发送给HLR/AUC,HLR/AUC根据对应保存的KI和接收到的RAND,判断AUTS的合法性,如果不合法,则HLR/AUC向MSC/VLR返回AUTS不合法信息;如果判断出AUTS合法,则HLR/AUC根据AUTS中的SQNMS更新SQNHE,并产生新的鉴权五元组发送给MSC/VLR,MSC/VLR接收到新的五元组后,删除对应的旧的五元组。关于鉴权流程,可以参照3GPP规范。
由上可见,第三代移动通信系统中,鉴权流程可以充分保障终端和网络不会受到恶意欺骗,从而保障终端和网络的安全性。
上述鉴权流程可以通过网络对终端的鉴权防止假冒的用户终端欺骗网络,也可以通过终端对网络的鉴权防止假冒网络例如假冒基站欺骗用户终端,却无法防止非法用户终端利用同步SQN流程攻击HLR/AUC,例如,1.非法用户利用一个假的IMSI向网络发起位置更新;2.MSC/VLR将鉴权元组中RAND和AUTN发送给非法用户;3.非法用户产生一个随机数代替AUTS,向网络MSC/VLR发起同步SQNMS的请求;4.MSC/VLR将对应五元组中随机数RAND和接收自终端的AUTS发送给HLR/AUC;5.HLR/AUC执行同步流程。
上述攻击流程中,虽然,在第5步中HLR/AUC可以识别出同步是不合法的,但是识别过程本身就消耗了HLR/AUC的资源,况且还包括MSC/VLR和HLR/AUC之间的协议交互所消耗的资源。如果攻击者不断变换用户身份来制造假同步,那么,就有可能导致HLR/AUC忙于处理同步流程,而无暇顾及其它的业务请求,从而会导致HLR/AUC假吊死现象发生。
另外,现有的处理方式中,HLR/AUC在处理MSC/VLR请求鉴权元组的请求时,在将相应的鉴权元组发送给HLR/AUC后,会将这些发送给MSC/VLR的鉴权元组删去。这里就存在一个安全漏洞给攻击者。实际当中,当一个新用户登录网络时,如果终端上传的位置区编号非法,或者没有上传位置区编号,MSC/VLR会向HLR/AUC请求鉴权元组,例如非法用户A和B分别在两个位置区登录网络,并且上传的位置区编号非法,或者干脆就不上传位置区编号,这样,这两个位置区的MSC/VLR就会从HLR/AUC获取新的鉴权元组,并在该非法用户登录失败后,删除从HLR/AUC获取的相应鉴权元组。攻击者可以不断重复上述登陆网络的操作,这样不仅导致HLR/AUC频繁计算新的鉴权元组,从而增加HLR/AUC负荷,也会给攻击者获取大量的鉴权元组数据用于攻击鉴权密钥提供机会。当然,单独的一个非法用户C也可以在同一个地方不断地通过向网络侧发起位置更新请求来达到上述攻击网络的目的。
如果MSC/VLR在登录失败时不删除鉴权元组,则攻击者不断变换用户身份来登录网络将使得MSC/VLR数据库数据迅速膨胀,从而影响网络正常运行。实际当中,攻击者最有效的攻击手段也是通过不断变换用户身份登录网络来攻击网络的。
同样,所有的应用服务器的登陆消息都可以被非法攻击者用来对该应用服务器进行DOS攻击。
综上所述,如何防止非法攻击者通过同步请求对网络进行攻击从而导致网络瘫痪,如何防止非法攻击者不断地通过向网络侧发起位置更新请求来达到上述攻击网络的目的,以及如何防止应用服务器因非法攻击者进行的DOS攻击而不能正常工作,也就是,如何进行这类消息的流量控制,是一个值得解决的问题。
发明内容
有鉴于此,本发明要解决技术问题是防止非法攻击者利用同步请求消息攻击网络HLR/AUC使其瘫痪不能有效工作。
为了解决上述问题本发明提供的技术方案为一种在通信设备中实现消息流控的方法,其特征在于,所述方法至少包括以下步骤a.在所述通信设备中设置被监测的消息数量的最大值;b.所述通信设备接收到被监测的消息时,判断当前已收到的被监测的消息的数量是否大于所述最大值,如果是,则执行步骤c,否则,执行步骤d;c.所述通信设备丢弃所述被监测的消息;d.所述通信设备处理所述被监测的消息。
优选地,所述通信设备是MSC/VLR,所述被监测的消息是同步请求消息。
优选地,所述步骤a进一步包括在MSC/VLR中指定监测时间段并设置该监测时间段内同步请求消息数量的最大值;相应地,步骤b进一步指MSC/VLR在所述监测时间段内接收到同步请求消息时,判断在该监测时间段内收到的同步请求消息数量是否大于所述最大值。
优选地,所述步骤a进一步是在MSC/VLR中设置单位监测时间段长度以及在该单位监测时间段内同步请求消息数量的最大值;相应地,步骤b进一步指,MSC/VLR在接收到同步请求消息时,记录收到同步请求消息的时间,根据当前时间和设置的监测时间段长度确定监测时间段,并判断在该监测时间段内收到的同步请求消息数量是否大于所述最大值。
优选地,所述根据当前时间和设置的监测时间段长度确定监测时间段可以是将当前时间作为监测时间段的结束时间,将当前时间减去监测时间段长度得到的时间作为监测时间段的起始时间。
本发明提供的第二技术方案为一种在通信设备中实现消息流控的方法,其特征在于,所述方法至少包括以下步骤a.在所述通信设备中设置允许处理的被监测的消息数量的最大值;b.所述通信设备接收到被监测的消息时,判断当前已处理的被监测的消息的数量否达到所述最大值,如果是,则执行步骤c,否则,执行步骤d;c.所述通信设备丢弃该被监测的消息;d.所述通信设备处理该被监测的消息。
优选地,所述通信设备是MSC/VLR,所述被监测的消息是同步请求消息。
优选地,所述方法是在一个指定的监测时间段内执行;所述步骤a进一步包括在MSC/VLR指定监测时间段,并设置在该监测时间段内允许处理的同步请求消息数量的最大值;相应地,步骤b中,MSC/VLR在所述监测时间段内接收到同步请求消息时,判断在该监测时间段内处理的同步请求消息数量是否达到所述最大值。
优选地,所述方法是在一个动态的监测时间段内执行;所述步骤a进一步是在MSC/VLR设置单位监测时间段长度,以及设置在单位监测时间段内允许处理的同步请求消息数量的最大值;相应地,步骤b中,MSC/VLR在接收到同步请求消息时,根据当前时间和设置的监测时间段长度确定监测时间段,并判断在该监测时间段内处理的同步请求消息数量是否达到所述的最大值。
优选地,所述根据当前时间和设置的监测时间段长度确定监测时间段可以是将当前时间作为监测时间段的结束时间,将当前时间减去监测时间段长度得到的时间作为监测时间段的起始时间。
本发明提供的第三技术方案为一种在通信设备中实现消息流控的方法,其特征在于,所述方法至少包括以下步骤a.设置两个被监测的消息间最短时间值,设置一个时间单元,用于记录上一次收到被监测的消息的时间;b.所述通信设备在接收到被监测的消息时,判断收到该被监测的消息的时间与所述时间单元中记录的上次收到被监测的消息的时间的差值是否小于所述的最短时间值,如果是,则执行步骤c,否则,执行步骤d;c.所述通信设备丢弃该被监测的消息;d.所述通信设备处理该被监测的消息。
优选地,所述通信设备是MSC/VLR,所述被监测的消息是同步请求消息。
本发明提供的第四技术方案为一种在通信设备中实现消息流控的方法,其特征在于,所述方法至少包括以下步骤a.设置正常处理两个被监测的消息的操作间最短时间值,设置一个时间单元,用于记录上一次处理被监测的消息的时间;b.所述通信设备在接收到被监测的消息时,判断收到该被监测的消息的时间与所述时间单元中记录的上次正常处理被监测的消息的操作的时间的差值是否小于所述的最短时间值,如果是,则执行步骤c,否则,执行步骤d;c.所述通信设备丢弃该被监测的消息;d.所述通信设备将时间单元的值设置为本次正常处理被监测的消息的操作的时间,然后处理该被监测的消息。
优选地,所述通信设备是MSC/VLR,所述被监测的消息是同步请求消息。
本发明提供的第五技术方案为一种在通信设备中实现消息流控的方法,其特征在于,所述方法至少包括以下步骤a.在所述通信设备中设置被监测的消息中允许的非法消息数量的最大值;b.所述通信设备接收到被监测的消息时,判断所述非法消息的数量是否达到所述最大值,如果是,则执行步骤c,否则,执行步骤d;c.所述通信设备丢弃所述被监测的消息;d.所述通信设备按处理所述被监测的消息。
优选地,所述通信设备是MSC/VLR,所述被监测的消息是同步请求消息。
优选地,所述方法是在一个指定的监测时间段内执行所述步骤a进一步是在MSC/VLR指定监测时间段,以及设置在该监测时间段内非法同步请求消息数量的最大值;相应地,在步骤b中,在该监测时间段内MSC/VLR接收到同步请求消息时,判断非法同步请求消息的数量是否达到所述最大值;相应地,步骤d进一步是MSC/VLR向HLR/AUC发送请求鉴权元组的请求消息,并带上终端上报的AUTS和对应鉴权元组中的RAND,并且在收到HLR/AUC返回的同步请求消息非法信息后,更新非法同步请求消息的数量。
优选地,所述方法是在一个动态的监测时间段内执行;所述步骤a进一步是在MSC/VLR设置单位监测时间段长度,以及设置在单位监测时间段内非法同步请求消息数量的最大值;相应地,在步骤b中,MSC/VLR在接收到同步请求消息时,根据当前时间和设置的监测时间段长度确定监测时间段,并判断在该监测时间段内收到的非法同步请求消息数量是否达到所述的最大值;相应地,步骤d进一步是MSC/VLR向HLR/AUC发送请求鉴权元组的请求消息,并带上终端上报的AUTS和对应鉴权元组中的RAND;并且在接收到HLR/AUC返回的同步请求消息非法信息后,记录收到该非法同步请求消息的时间。
优选地,所述根据当前时间和设置的监测时间段长度确定监测时间段可以是将当前时间作为监测时间段的结束时间,将当前时间减去监测时间段长度得到的时间作为监测时间段的起始时间。
本发明提供的第六技术方案为一种在通信设备中实现消息流控的方法,所述方法至少包括以下步骤a.在所述通信设备设置单位监测时间段长度,以及设置在单位监测时间段内被监测的消息数量的最大值,设置循环队列用于记录收到被监测的消息的时间,该队列的元素数量为所述最大值加1;设置指针指向队列中将要记录所述时间值的元素;b.所述通信设备在接收到被监测的消息时,将收到被监测的消息的时间记录于所述指针指向的队列元素,并将指针向后移动一位,使其指向当前写入元素的下一个队列元素,并判断收到被监测的消息的时间和指针所指队列元素中记录的时间的差值是否大于所述的单位监测时间段长度,如果是,则执行步骤d,否则,执行步骤c;c.所述通信设备丢弃该被监测的消息;d.所述通信设备按照现有正常的处理流程处理该被监测的消息。
本发明提供的第七技术方案为一种在通信设备中实现消息流控的方法,其特征在于,所述方法至少包括以下步骤a.在所述通信设备设置单位监测时间段长度,以及设置在单位监测时间段内允许处理的被监测的消息数量的最大值,设置循环队列用于记录收到被监测的消息的时间,该队列的元素数量为所述最大值;设置指针指向队列中将要记录所述时间值的元素;b.所述通信设备在接收到被监测的消息时,判断收到被监测的消息的时间和指针所指队列元素中记录的时间的差值是否大于所述的单位监测时间段长度,如果是,则执行步骤d,否则,执行步骤c;c.所述通信设备丢弃该被监测的消息;d.所述通信设备按照现有正常的同步处理流程处理该被监测的消息,将处理被监测的消息的时间记录于所述指针指向的队列元素,并将指针向后移动一位,使其指向当前写入元素的下一个队列元素。
本发明提供的第八技术方案为一种在通信设备中实现消息流控的方法,其特征在于,所述方法至少包括以下步骤a.在所述通信设备设置单位监测时间段长度,以及设置在单位监测时间段内允许的被监测的消息中允许的非法消息数量的最大值,设置循环队列用于记录得知被监测的消息为非法的时间,该队列的元素数量为所述最大值;设置指针指向队列中将要记录所述时间值的元素;b.所述通信设备在接收到被监测的消息时,判断收到被监测的消息的时间和指针所指队列元素中记录的时间的差值是否大于所述的单位监测时间段长度,如果是,则执行步骤d,否则,执行步骤c;c.所述通信设备丢弃该被监测的消息;d.所述通信设备按照现有正常的同步处理流程处理该同步请求消息,并在得知被监测的消息非法后,将当前时间记录于所述指针指向的队列元素,并将指针向后移动一位,使其指向当前写入元素的下一个队列元素。
图1是本发明具体实施方式
一的流程图。
图2是本发明具体实施方式
一的第一具体实施例的流程图。
图3是本发明具体实施方式
一的第二具体实施例的流程图。
图4是本发明具体实施方式
一的第三具体实施例的流程图。
图5是本发明具体实施方式
一的第四具体实施例的流程图。
图6是本发明具体实施方式
一的第五具体实施例的流程图。
图7是本发明具体实施方式
一的第六具体实施例的流程图。
图8是本发明具体实施方式
一的第七具体实施例的流程图。
图9为本发明具体实施方式
一的第八具体实施例的流程图。
图10是为本发明具体实施方式
二的流程图。
图11为本发明具体实施方式
二的第一具体实施例的流程图。
图12为本发明具体实施方式
二的第二具体实施例的流程图。
图13为本发明具体实施方式
二的第三具体实施例的流程图。
图14是本发明具体实施方式
三的流程图。
具体实施例方式
移动通信网络中,在移动终端中保存国际移动用户标识IMSI、鉴权密钥KI和序列号SQNMS,网络侧的HLR/AUC中针对该移动终端对应保存IMSI、KI和序列号SQNHE,以用于移动终端和网络相互鉴权。
在本发明提供的流量控制中,网络侧MSC/VLR或HLR/AUC通过对同步消息进行流量控制,从而,使得HLR/AUC不至于一直忙于处理同步请求消息的状态,使得HLR/AUC在处理合法或非法的同步请求消息的同时,仍然可以处理其它的业务请求。
所述监测可以是对通过对所有同步请求消息进行统计来对同步请求消息进行控制,也可以是根据对非法同步请求消息进行统计来对同步请求消息进行控制,也可以是根据对正常处理的同步请求消息进行统计来对同步请求消息进行控制,当然,可以是按照丢弃的同步请求消息进行统计来对同步请求消息进行控制。所述统计可以是在一个指定的时间段内进行,也可以是在一个动态确定的时间段内进行。也可以是通过确定两个同步请求消息间的时间最短值来对同步请求消息进行控制,也可以通过确定处理两个同步请求消息的操作间的最短时间值来对同步请求消息进行控制。
MSC/VLR在对同步请求消息进行监测时,可以是针对整个MSC/VLR收到的同步请求消息来进行,也可以是分别针对每一个RNC来进行,也可以是针对一个NodeB来进行,也可以是针对一个位置区来进行,也可以是针对一个小区来进行,当然,也可以是针对一个终端用户来进行。对于HLR/AUC来说,监测可以是针对整个HLR/AUC收到的同步请求消息来进行,也可以是针对每一个MSC/VLR来进行,当然,也可以进一步细化监测的范围。
下面结合附图对本发明的具体实施方式
进行详细的说明请参阅图1,图1为本发明具体实施方式
一的流程图。
首先,在步骤101,在MSC/VLR设置同步请求消息数量的最大值。
步骤103,MSC/VLR接收到同步请求消息时,判断同步请求消息的数量否大于所述设置的同步请求消息数量的最大值,如果是,则执行步骤105,否则,执行步骤107。
步骤105,MSC/VLR丢弃该同步请求消息。
步骤107,MSC/VLR按照现有正常的同步处理流程处理。也即,MSC/VLR将同步消息上传给HLR/AUC,也即MSC/VLR向HLR/AUC发送再同步请求消息,或请求新鉴权元组的请求,并附上对应鉴权元组中的RAND和接收自终端的AUTS,HLR/AUC执行后续的同步处理操作。
上述具体实施方式
一可以是在一个指定的监测时间段内执行。请参阅图2,图2所示为本发明具体实施方式
一的第一具体实施例。在该实施例中,在MSC/VLR指定一个流量监测时间段以及设置在该监测时间段内同步请求消息数量的最大值,MSC/VLR在该时间段内对同步请求消息进行监控,并根据监控结果来决定是否丢弃接收到的同步请求消息。
步骤201,在MSC/VLR指定监测时间段,以及设置在该监测时间段内同步请求消息数量的最大值,将同步请求消息数量值初始化为0。
步骤202,MSC/VLR在所述监测时间段内接收到同步请求消息时,将同步请求消息数量值加1。
步骤203,判断在该监测时间段内收到的同步请求消息数量是否大于所述最大值,如果是,则执行步骤205,否则,执行步骤207。
步骤205,MSC/VLR丢弃该同步请求消息。
步骤207,MSC/VLR按照现有正常的同步处理流程处理。
当然,将同步请求消息数量值加1的操作也可以不在步骤202执行,而是分别在步骤205和步骤207来执行,对应地,步骤203中所述判断在该监测时间段内收到的同步请求消息数量是否大于所述最大值应为判断在该监测时间段内收到的同步请求消息数量值是否达到所述最大值。
MSC/VLR还可以在该监测时间段内收到的同步请求消息数量值大于或等于设置的同步请求消息数量的最大值时,进一步设置同步请求消息超量标志,这样,MSC/VLR下一次在该监测时间段内接收到同步请求消息时,首先判断是否设置了同步请求消息超量标志,如果设置了,则认为MSC/VLR在该监测时间段内不再处理同步请求消息了,于是,MSC/VLR执行丢弃该同步请求消息的操作,且这种情况下,即设置了同步请求消息超量标志时,步骤202或者205或者207不需要再执行将同步请求消息数量值加1的操作。本领域技术人员根据结合具体实施方式
的第一实施例可以很容易地实现结合了所述超量标志的实施例,因此,本发明不对该结合了超量标志的具体实施例作赘述。
实际当中,在一个监测时间段结束后,可以指定一个新监测时间段,并设置新监测时间段内同步请求消息数量的最大值,同时将同步请求消息数量值初始化为0。特别地,重新指定一个监测时间段的操作可以是采取消息驱动的方式来实现。也即,MSC/VLR在接收到一个同步请求消息时,如果判断当前时间不在当前指定的监测时间段内时,说明当前指定的监测时间段已经过去,这时,MSC/VLR可以重新指定监测时间段,例如将收到该同步请求消息的时间设置为新监测时间段的起始时间。MSC/VLR指定新监测时间段时,还设置该新监测时间段内同步请求消息数量的最大值,并将同步请求消息数量值初始化为1。
一般地,MSC/VLR在指定新监测时间段时,设置的同步请求消息数量的最大值应该大于或者等于1,不然,就是要MSC/VLR在该新监测时间段内将所有收到的同步请求消息作丢弃处理。
为了便于实现,可以将每个监测时间段设置为等长的时间段,相应的,每个等长的监测时间段内同步请求消息数量的最大值可以设置为相同,这样就不需要为每一个新指定的监测时间段单独设置同步请求消息数量的最大值。
实际上,指定监测时间段内同步请求消息数量最大值的两倍即为动态监测时间段内同步请求消息数量最大值,因为,在两个相邻的动态监测时间段中相邻时间点为中点确定的一个监测时间段内,可以集中该两个相邻监测时间段内的同步请求消息总量。
如果在步骤201中所述设置在该监测时间段内同步请求消息数量的最大值为设置在该监测时间段内允许处理的同步请求消息数量的最大值,那么,在步骤203中所述判断为判断在该监测时间段内处理的同步请求消息数量是否达到设置的允许处理的同步请求消息数量的最大值。请参阅图3,图3所示为本发明具体实施方式
一的第二具体实施例。
步骤301,在MSC/VLR指定监测时间段,以及设置在该监测时间段内允许处理的同步请求消息数量的最大值,将处理的同步请求消息数量值初始化为0。
步骤303,MSC/VLR在所述监测时间段内接收到同步请求消息时,判断在该监测时间段内处理的同步请求消息数量是否达到所述最大值,如果是,则执行步骤305,否则,执行步骤307。
步骤305,MSC/VLR丢弃该同步请求消息。
步骤307,MSC/VLR按照现有正常的同步处理流程处理,将处理的同步请求消息数量值加1。
上述具体实施方式
一可以是在一个动态的监测时间段内执行,该动态监测时间段将根据MSC/VLR收到同步请求消息的当前时间来确定。请参阅图4,图4所示为本发明具体实施方式
一的第三具体实施例。在该实施例中,MSC/VLR收到一个同步请求消息时,记录收到该同步请求消息的时间,并在收到一个同步请求消息时,根据当前时间来确定流量监测时间段,而后统计该监测时间段内收到的同步请求消息数量,并根据统计结果来决定是否丢弃该收到的同步请求消息。
在步骤401,在MSC/VLR设置单位监测时间段长度,以及设置在单位监测时间段内同步请求消息数量的最大值。
步骤402,MSC/VLR在接收到同步请求消息时,记录收到同步请求消息的时间,根据当前时间和设置的监测时间段长度确定监测时间段。
所述根据当前时间和设置的监测时间段长度确定监测时间段可以是将当前时间作为监测时间段的结束时间,将当前时间减去监测时间段长度得到的时间作为监测时间段的起始时间。
步骤403,判断在该监测时间段内收到的同步请求消息数量是否大于所述的最大值,如果是,则执行步骤405,否则,执行步骤407。
步骤405,MSC/VLR丢弃该同步请求消息。
步骤407,MSC/VLR按照现有正常的同步处理流程处理该同步请求消息。
步骤403中判断在该监测时间段内收到的同步请求消息数量是否大于设置的同步请求消息数量的最大值是指根据所有记录的收到同步请求消息的时间记录数据统计该监测时间段内收到的同步请求消息数量,然后比较统计得到的数量值是否大于设置的同步请求消息数量的最大值。根据记录的收到同步请求消息的时间记录数据统计该监测时间段内收到的同步请求消息数量是指,统计那些时间记录中时间值在该监测时间段内的记录的数量。
当然,也可以不在步骤402中记录收到同步请求消息的时间,而是分别在步骤405和步骤407来完成记录收到同步请求消息的时间的操作,对应地,步骤403中所述判断在该监测时间段内收到的同步请求消息数量是否大于所述的最大值应为判断在该监测时间段内收到的同步请求消息数量是否达到所述的最大值。
本实施例中,还可以包括将那些时间记录中时间值在该监测时间段以外,也即早于或小于该监测时间段起始时间值的记录删去的操作。
为了节省存储空间,在步骤405还可以包括将数量超出了所述最大值的哪些时间较早的记录删除。也就是说,从最早的记录开始删除,直到所记录的时间记录的数量不超过所述最大值为止。较好的做法是在步骤401设置一个循环队列,队列的长度为所述最大值。当记录时间时,直接将所述时间记录循环写入该循环队列即可。保留一个指向该循环队列的最新写入元素的指针,以便于计算所述监测时间段内的时间记录总数。实际当中,也可以不用统计队列中的元素来得计算所述监测时间段内的时间记录总数,而是直接比较队列的首元素和尾元组的时间差值是否大于所述设置的监测时间段长度来确定在该监测时间段内收到的同步请求消息数量是否达到所述的最大值。请参阅图5,图5所示为本发明具体实施方式
一的第四具体实施例。
在步骤501,在MSC/VLR设置单位监测时间段长度,以及设置在单位监测时间段内同步请求消息数量的最大值,设置一个循环队列用于记录收到同步请求消息的时间,该队列的元素数量为所述最大值加1,初始化时,将队列的所有元素对应的时间值初始化为0,当然也可以初始化为一个较早的时间值;设置一个指针指向队列中将要在收到同步请求消息时写入所述时间值的元素。
步骤502,MSC/VLR在接收到同步请求消息时,将收到同步请求消息的时间记录于所述指针指向的队列元素,并将指针向后移动一位,使其指向当前写入元素的下一个队列元素。
对于循环队列来说,队列的最后一个元素的下一个元素是队列的第一个元素。
步骤503,判断收到同步请求消息的时间和指针所指队列元素中记录的时间的差值是否大于所述的单位监测时间段长度,如果是,则执行步骤507,否则,执行步骤505。
显然,如果所述差值大于所述的单位监测时间段长度,说明根据收到同步请求消息的时间所确定的监测时间段内收到的同步请求消息的数量没有超过所述设置的最大值。
步骤505,MSC/VLR丢弃该同步请求消息。
步骤507,MSC/VLR按照现有正常的同步处理流程处理该同步请求消息。
如果在步骤401中所述设置在单位监测时间段内同步请求消息数量的最大值为设置在单位监测时间段内允许处理的同步请求消息数量的最大值,那么,在步骤403中所述判断为判断在该监测时间段内处理的同步请求消息数量是否达到设置的允许处理的同步请求消息数量的最大值。请参阅图6,图6所示为本发明具体实施方式
一的第五具体实施例。
在步骤601,在MSC/VLR设置单位监测时间段长度,以及设置在单位监测时间段内允许处理的同步请求消息数量的最大值。
步骤602,MSC/VLR在接收到同步请求消息时,根据当前时间和设置的监测时间段长度确定监测时间段。
所述根据当前时间和设置的监测时间段长度确定监测时间段可以是将当前时间作为监测时间段的结束时间,将当前时间减去监测时间段长度得到的时间作为监测时间段的起始时间。
步骤603,判断在该监测时间段内处理的同步请求消息数量是否达到所述的最大值,如果是,则执行步骤605,否则,执行步骤607。
步骤605,MSC/VLR丢弃该同步请求消息。
步骤607,MSC/VLR按照现有正常的同步处理流程处理该同步请求消息,并记录处理同步请求消息的时间。
步骤603中判断在该监测时间段内处理的同步请求消息数量是否大于设置的允许处理的同步请求消息数量的最大值是指根据所有记录的处理同步请求消息的时间记录数据统计该监测时间段内处理的同步请求消息数量,然后比较统计得到的数量值是否大于设置的允许处理的同步请求消息数量的最大值。根据记录的处理同步请求消息的时间记录数据统计该监测时间段内处理的同步请求消息数量是指,统计那些时间记录中时间值在该监测时间段内的记录的数量。
本实施例中,还可以包括将那些时间记录中时间值在该监测时间段以外,也即早于或小于该监测时间段起始时间值的记录删去的操作。
为了节省存储空间,在步骤605还可以包括将数量超出了所述最大值的哪些时间较早的记录删除。也就是说,从最早的记录开始删除,直到所记录的时间记录的数量不超过所述最大值为止。较好的做法是在步骤601设置一个循环队列,队列的长度为所述最大值。当记录时间时,直接将所述时间记录循环写入该循环队列即可。保留一个指向该循环队列的最新写入元素的指针,以便于计算所述监测时间段内的时间记录总数。实际当中,也可以不用统计队列中的元素来得计算所述监测时间段内的时间记录总数,而是直接比较队列的首元素和尾元组的时间差值是否大于所述设置的监测时间段长度来确定在该监测时间段内处理的同步请求消息数量是否达到所述的最大值。请参阅图7,图7所示为本发明具体实施方式
一的第六具体实施例。
在步骤701,在MSC/VLR设置单位监测时间段长度,以及设置在单位监测时间段内允许处理的同步请求消息数量的最大值,设置一个循环队列用于记录处理同步请求消息的时间,该队列的元素数量为所述最大值,初始化时,将队列的所有元素对应的时间值初始化为0,当然也可以初始化为一个较早的时间值。设置一个指针指向队列中将要在处理同步请求消息时写入所述时间值的元素。
步骤703,MSC/VLR在接收到同步请求消息时,判断收到同步请求消息的时间和指针所指队列元素中记录的时间的差值是否大于所述的单位监测时间段长度,如果是,则执行步骤707,否则,执行步骤705。
显然,如果所述差值大于所述的单位监测时间段长度,说明根据收到同步请求消息的时间所确定的监测时间段内处理的同步请求消息的数量没有超过所述设置的最大值。
步骤705,MSC/VLR丢弃该同步请求消息。
步骤707,MSC/VLR按照现有正常的同步处理流程处理该同步请求消息,将处理同步请求消息的时间记录于所述指针指向的队列元素,并将指针向后移动一位,使其指向当前写入元素的下一个队列元素。
对于循环队列来说,队列的最后一个元素的下一个元素是队列的第一个元素。
作为实施方式一的第四实施例的简化,在步骤501中,设置在单位监测时间段内同步请求消息数量的最大值为1,这样,就达到了设置两个同步请求消息间最短时间的效果。请参阅图8,图8所示为本发明具体实施方式
一的第七具体实施例。在该实施例中,在MSC/VLR设置一个时间单元,用于记录上一次收到同步请求消息的时间,该时间单元的初始值可以设置为0;MSC/VLR收到一个同步请求消息时,判断收到同步请求消息的时间和记录的上一次收到同步请求消息的时间的差值是否小于设置的所述最短时间,并根据判断结果来决定是否丢弃该同步请求消息,同时将所述时间单元的值设置为本次收到同步请求消息的时间。
在步骤801,设置两个同步请求消息间最短时间值,设置一个时间单元,用于记录上一次收到同步请求消息的时间。
该时间单元的初始值可以设置为0。
步骤803,MSC/VLR在接收到同步请求消息时,判断收到该同步请求消息的时间与所述时间单元中记录的上次收到同步请求消息的时间的差值是否小于所述的最短时间值,如果是,则执行步骤805,否则,执行步骤807。
步骤805,MSC/VLR丢弃该同步请求消息。
步骤807,MSC/VLR按照现有正常的同步处理流程处理该同步请求消息。
在步骤803中还包括将时间单元的值设置为本次收到同步请求消息的时间。当然,将时间单元的值设置为本次收到同步请求消息的时间的操作也可以分别在步骤805和步骤807来完成。
作为实施方式一的第六实施例的简化,在步骤701中,设置在单位监测时间段内允许处理的同步请求消息数量的最大值为1,这样,就达到了设置处理两个同步请求消息间最短时间的效果。请参阅图9,图9所示为本发明具体实施方式
一的第八具体实施例在步骤901,设置正常处理两个同步请求消息的操作间最短时间值,设置一个时间单元,用于记录上一次处理同步请求消息的时间。
该时间单元的初始值可以设置为0。
步骤903,MSC/VLR在接收到同步请求消息时,判断收到该同步请求消息的时间与所述时间单元中记录的上次正常处理同步请求消息的操作的时间的差值是否小于所述的最短时间值,如果是,则执行步骤905,否则,执行步骤907。
步骤905,MSC/VLR丢弃该同步请求消息。
步骤907,MSC/VLR将时间单元的值设置为本次正常处理同步请求消息的操作的时间,然后按照现有正常的同步处理流程处理该同步请求消息。
本发明还可以通过统计非法同步请求消息来决定收到的同步请求信息是否被作丢弃处理。
请参阅图10,图10为本发明具体实施方式
二的流程图。
首先,在步骤2101,在MSC/VLR设置非法同步请求消息数量的最大值,将非法同步请求消息的数量值初始化为0。
步骤2103,MSC/VLR接收到同步请求消息时,判断非法同步请求消息的数量是否达到所述的数量最大值,如果是,则执行步骤2105,否则,执行步骤2107。
步骤2105,MSC/VLR丢弃该同步请求消息。
步骤2107,MSC/VLR按照现有正常的同步处理流程处理,即向HLR/AUC发送请求鉴权元组的请求消息,并带上终端上报的AUTS和对应鉴权元组中的RAND。
步骤2109,HLR/AUC按照正常同步处理流程对该同步请求消息进行处理,并在判断同步请求消息非法时,向MSC/VLR返回同步请求消息非法信息。关于HLR处理同步请求消息的流程,请参阅3GPP相关协议规定。
步骤2111,MSC/VLR接收到HLR/AUC返回的同步请求消息非法信息后,将非法同步请求消息的数量值加1。
上述具体实施方式
二可以是在一个指定的监测时间段内执行。请参阅图11,图11所示为本发明具体实施方式
二的第一具体实施例。在该实施例中,MSC/VLR指定一个非法同步请求消息流控时间段,在该时间段内对非法同步请求消息进行监控,并根据监控结果来决定是否丢弃接收到的同步请求消息。
首先,在步骤2201,在MSC/VLR指定监测时间段,以及设置在该监测时间段内非法同步请求消息数量的最大值,将非法同步请求消息的数量值初始化为0。
步骤2203,在该监测时间段内MSC/VLR接收到同步请求消息时,判断非法同步请求消息的数量是否达到所述的数量最大值,如果是,则执行步骤2205,否则,执行步骤2207。
步骤2205,MSC/VLR丢弃该同步请求消息。
步骤2207,MSC/VLR按照现有正常的同步处理流程处理,即向HLR/AUC发送请求鉴权元组的请求消息,并带上终端上报的AUTS和对应鉴权元组中的RAND。
步骤2209,HLAR/UC按照正常同步处理流程对该同步请求消息进行处理,并在判断同步请求消息非法时,向MSC/VLR返回同步请求消息非法信息。关于HLR处理同步请求消息的流程,请参阅3GPP相关协议规定。
步骤2211,MSC/VLR接收到HLR/AUC返回的同步请求消息非法信息后,将非法同步请求消息的数量值加1。
实际当中,在一个监测时间段结束后,可以指定一个新监测时间段,并设置新监测时间段内非法同步请求消息数量的最大值,同时将非法同步请求消息数量值初始化为0。特别地,重新指定一个监测时间段的操作可以是采取消息驱动的方式来实现。也即,MSC/VLR在接收到一个非法同步请求消息时,如果判断当前时间不在当前指定的监测时间段内时,说明当前指定的监测时间段已经过去,这时,MSC/VLR可以重新指定监测时间段,例如将收到该非法同步请求消息的时间设置为新监测时间段的起始时间。MSC/VLR指定新监测时间段时,还设置该新监测时间段内非法同步请求消息数量的最大值,并将非法同步请求消息数量值初始化为1。
需要说明的是,MSC/VLR不能直接判断一个同步请求消息是否非法,MSC/VLR是根据HLR/AUC对同步请求消息的处理结果才知道同步请求消息是否非法的。关于这一点,可以参阅3GPP相关协议规定。一般来说,MSC/VLR收到所述非法同步请求消息的时间实际上可以用MSC/VLR收到HLR/AUC返回的同步请求消息非法信息的时间来替代。当然,MSC/VLR也可以在收到同步请求消息时,记录收到该同步请求消息的时间,并在得到HLR/AUC返回的同步请求消息非法信息时,将所述记录的时间作为收到所述非法同步请求消息的时间。MSC/VLR具体如何确定收到所述非法同步请求消息的时间,可以根据实际应用来定。
一般地,MSC/VLR在指定新监测时间段时,设置的非法同步请求消息数量的最大值应该大于或者等于1,不然,就是要MSC/VLR在该新监测时间段内将所有收到的同步请求消息作丢弃处理。
为了便于实现,可以将每个监测时间段设置为等长的时间段,相应的,每个等长的监测时间段内非法同步请求消息数量的最大值可以设置为相同,这样就不需要为每一个新指定的监测时间段单独设置非法同步请求消息数量的最大值。
上述具体实施方式
二可以是在一个动态的监测时间段内执行。请参阅图12,图12所示为本发明具体实施方式
二的第二具体实施例。在该实施例中,MSC/VLR收到一个非法同步请求消息时,记录收到该非法同步请求消息的时间,并在收到一个同步请求消息时,根据当前时间来确定流量监测时间段,而后统计该监测时间段内收到的非法同步请求消息数量,并根据统计结果来决定是否丢弃该同步请求消息。
在步骤2301,在MSC/VLR设置单位监测时间段长度,以及设置在单位监测时间段内非法同步请求消息数量的最大值。
步骤2302,MSC/VLR在接收到同步请求消息时,根据当前时间和设置的监测时间段长度确定监测时间段。
步骤2303,判断在该监测时间段内收到的非法同步请求消息数量是否达到所述的最大值,如果是,则执行步骤2305,否则,执行步骤2307。
所述根据当前时间和设置的监测时间段长度确定监测时间段可以是将当前时间作为监测时间段的结束时间,将当前时间减去监测时间段长度得到的时间作为监测时间段的起始时间。
步骤2305,MSC/VLR丢弃该同步请求消息。
步骤2307,MSC/VLR按照现有正常的同步处理流程处理该同步请求消息。即向HLR/AUC发送请求鉴权元组的请求消息,并带上终端上报的AUTS和对应鉴权元组中的RAND。
步骤2309,HLR/AUC按照正常同步处理流程对该同步请求消息进行处理,并在判断同步请求消息非法时,向MSC/VLR返回同步请求消息非法信息。关于HLR处理同步请求消息的流程,请参阅3GPP相关协议规定。
步骤2311,MSC/VLR接收到HLR/AUC返回的同步请求消息非法信息后,记录收到该非法同步请求消息的时间。
步骤2303中判断在该监测时间段内收到的非法同步请求消息数量是否大于设置的非法同步请求消息数量的最大值是指根据所有记录的收到非法同步请求消息的时间记录数据统计该监测时间段内收到的非法同步请求消息数量,然后比较统计得到的数量值是否大于设置的非法同步请求消息数量的最大值。根据记录的收到非法同步请求消息的时间记录数据统计该监测时间段内收到的非法同步请求消息数量是指,统计那些时间记录中时间值在该监测时间段内的记录的数量。
本实施例中,还可以包括将那些时间记录中时间值在该监测时间段以外,也即早于或小于该监测时间段起始时间值的记录删去的操作。
为了节省存储空间,在步骤2305还可以包括将数量超出了所述最大值的哪些时间较早的记录删除。也就是说,从最早的记录开始删除,直到所记录的时间记录的数量不超过所述最大值为止。较好的做法是在步骤2301设置一个循环队列,队列的长度为所述最大值。当记录时间时,直接将所述时间记录循环写入该循环队列即可。保留一个指向该循环队列的最新写入元素的指针,以便于计算所述监测时间段内的时间记录总数。实际当中,也可以不用统计队列中的元素来得计算所述监测时间段内的时间记录总数,而是直接比较队列的首元素和尾元组的时间差值是否大于所述设置的监测时间段长度来确定在该监测时间段内非法的同步请求消息数量是否达到所述的最大值。请参阅图13,图13所示为本发明具体实施方式
一的第三具体实施例。
在步骤2401,在MSC/VLR设置单位监测时间段长度,以及设置在单位监测时间段内允许的非法同步请求消息数量的最大值,设置一个循环队列用于记录得知同步请求消息非法时的时间,该队列的元素数量为所述最大值,初始化时,将队列的所有元素对应的时间值初始化为0,当然也可以初始化为一个较早的时间值。设置一个指针指向队列中将要在得知同步请求消息非法时写入所述时间值的元素。
步骤2403,MSC/VLR在接收到同步请求消息时,判断收到同步请求消息的时间和指针所指队列元素中记录的时间的差值是否大于所述的单位监测时间段长度,如果是,则执行步骤2407,否则,执行步骤2405。
显然,如果所述差值大于所述的单位监测时间段长度,说明根据收到同步请求消息的时间所确定的监测时间段内非法的同步请求消息的数量没有超过所述设置的最大值。
步骤2405,MSC/VLR丢弃该同步请求消息。
步骤2407,MSC/VLR按照现有正常的同步处理流程处理该同步请求消息。即向HLR/AUC发送请求鉴权元组的请求消息,并带上终端上报的AUTS和对应鉴权元组中的RAND。
步骤2409,HLR/AUC按照正常同步处理流程对该同步请求消息进行处理,并在判断同步请求消息非法时,向MSC/VLR返回同步请求消息非法信息。关于HLR处理同步请求消息的流程,请参阅3GPP相关协议规定。
步骤2411,MSC/VLR接收到HLR/AUC返回的同步请求消息非法信息后,将当前时间记录于所述指针指向的队列元素,并将指针向后移动一位,使其指向当前写入元素的下一个队列元素。
对于循环队列来说,队列的最后一个元素的下一个元素是队列的第一个元素。
仿照具体实施方式
一的第四具体实施例,作为实施方式二的第二实施例的简化,在步骤2301中,设置在单位监测时间段内非法同步请求消息数量的最大值为1,这样,就达到了设置一个非法同步请求消息和之后要按照正常处理流程处理的同步请求消息间最短时间的效果。这种情况下的具体实施例请参照实施方式一的第四具体实施例和实施方式二的第二具体实施例来实施。由于对本领域技术人员来说不存在技术难度,因此,本发明不在就这种简化方式的具体实施例进行阐述。
本发明还可以通过统计丢弃的同步请求消息来决定下一个同步请求信息是否被作丢弃处理。
请参阅图14,图14为本发明具体实施方式
三的流程图。
首先,在步骤3101,在MSC/VLR设置丢弃同步请求消息数量的最大值,将丢弃的同步处理消息的数量值初始化为0。
步骤3103,MSC/VLR接收到同步请求消息时,判断已经丢弃的同步请求消息的数量是否达到所述的数量最大值,如果是,则执行步骤3105,否则,执行步骤3107。
步骤3105,MSC/VLR按照现有正常的同步处理流程处理。
步骤3107,MSC/VLR丢弃该同步请求消息,并将丢弃的同步请求消息的数量值加1。
步骤3105还可以进一步包括将丢弃的同步请求消息的数量值初始化为0的操作。
本领域技术人员应该能够很容易仿照实施方式一的第一实施例来实现实施方式三在一个指定的监测时间段内执行的具体实施例,以及仿照实施方式一的第二实施里实现实施方式三在一个动态的监测时间段内执行的具体实施例,因此,本发明不在就实施方式三的这两种具体实现过程进行描述。
上述所有具体实施方式
或具体实施例中,MSC/VLR在对同步请求消息进行监测时,可以是针对整个MSC/VLR收到的同步请求消息来进行,也可以是分别针对每一个RNC来进行,也可以是针对一个NodeB来进行,也可以是针对一个位置区来进行,也可以是针对一个小区来进行,当然,也可以是针对一个终端用户来进行。
上述所有具体实施方式
或具体实施例中,流量控制是在MSC/VLR中执行的,实际上,也可以在HLR/AUC中来执行。相应的,对于HLR/AUC来说,监测可以是针对整个HLR/AUC收到的同步请求消息来进行,也可以是针对每一个MSC/VLR来进行,也可以是针对某一个关口局设备来执行。当然,在HLR/AUC中来进行流量控制时,也可以进一步细化监测的范围到每一个RNC,等等。显然,本领域技术人员可以很容易将在MSC/VLR进行监测的实施例通过简单的修改遗址到HLR/AUC中来实现,因此,本发明不在对在HLR/AUC中进行监测的实施例进行赘述。
本发明不局限于对同步请求消息进行监测,实际上,对于任何消息,例如,对于位置更新,登陆网络的注册请求消息等等,都可以按照本发明方法来进行监测。显然,本发明也不局限与第三代移动通信领域,也可以广泛应用于其它通信技术领域。
可以理解,以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种在通信设备中实现消息流控的方法,其特征在于,所述方法至少包括以下步骤a.在所述通信设备中设置被监测的消息数量的最大值;b.所述通信设备接收到被监测的消息时,判断当前已收到的被监测的消息的数量是否大于所述最大值,如果是,则执行步骤c,否则,执行步骤d;c.所述通信设备丢弃所述被监测的消息;d.所述通信设备处理所述被监测的消息。
2.根据权利要求1所述的方法,其特征在于,所述通信设备是MSC/VLR,所述被监测的消息是同步请求消息。
3.根据权利要求2所述的方法,其特征在于,所述步骤a进一步包括在MSC/VLR中指定监测时间段并设置该监测时间段内同步请求消息数量的最大值;相应地,步骤b进一步指MSC/VLR在所述监测时间段内接收到同步请求消息时,判断在该监测时间段内收到的同步请求消息数量是否大于所述最大值。
4.根据权利要求2所述的方法,其特征在于,所述步骤a进一步是在MSC/VLR中设置单位监测时间段长度以及在该单位监测时间段内同步请求消息数量的最大值;相应地,步骤b进一步指,MSC/VLR在接收到同步请求消息时,记录收到同步请求消息的时间,根据当前时间和设置的监测时间段长度确定监测时间段,并判断在该监测时间段内收到的同步请求消息数量是否大于所述最大值。
5.一种在通信设备中实现消息流控的方法,其特征在于,所述方法至少包括以下步骤a.在所述通信设备中设置允许处理的被监测的消息数量的最大值;b.所述通信设备接收到被监测的消息时,判断当前已处理的被监测的消息的数量否达到所述最大值,如果是,则执行步骤c,否则,执行步骤d;c.所述通信设备丢弃该被监测的消息;d.所述通信设备处理该被监测的消息。
6.根据权利要求5所述的方法,其特征在于,所述通信设备是MSC/VLR,所述被监测的消息是同步请求消息。
7.根据权利要求6所述的方法,其特征在于,所述方法是在一个指定的监测时间段内执行;所述步骤a进一步包括在MSC/VLR指定监测时间段,并设置在该监测时间段内允许处理的同步请求消息数量的最大值;相应地,步骤b中,MSC/VLR在所述监测时间段内接收到同步请求消息时,判断在该监测时间段内处理的同步请求消息数量是否达到所述最大值。
8.根据权利要求6所述的方法,其特征在于,所述方法是在一个动态的监测时间段内执行;所述步骤a进一步是在MSC/VLR设置单位监测时间段长度,以及设置在单位监测时间段内允许处理的同步请求消息数量的最大值;相应地,步骤b中,MSC/VLR在接收到同步请求消息时,根据当前时间和设置的监测时间段长度确定监测时间段,并判断在该监测时间段内处理的同步请求消息数量是否达到所述的最大值。
9.一种在通信设备中实现消息流控的方法,其特征在于,所述方法至少包括以下步骤a.设置两个被监测的消息间最短时间值,设置一个时间单元,用于记录上一次收到被监测的消息的时间;b.所述通信设备在接收到被监测的消息时,判断收到该被监测的消息的时间与所述时间单元中记录的上次收到被监测的消息的时间的差值是否小于所述的最短时间值,如果是,则执行步骤c,否则,执行步骤d;c.所述通信设备丢弃该被监测的消息;d.所述通信设备处理该被监测的消息。
10.根据权利要求9所述的方法,其特征在于,所述通信设备是MSC/VLR,所述被监测的消息是同步请求消息。
11.一种在通信设备中实现消息流控的方法,其特征在于,所述方法至少包括以下步骤a.设置正常处理两个被监测的消息的操作间最短时间值,设置一个时间单元,用于记录上一次处理被监测的消息的时间;b.所述通信设备在接收到被监测的消息时,判断收到该被监测的消息的时间与所述时间单元中记录的上次正常处理被监测的消息的操作的时间的差值是否小于所述的最短时间值,如果是,则执行步骤c,否则,执行步骤d;c.所述通信设备丢弃该被监测的消息;d.所述通信设备将时间单元的值设置为本次正常处理被监测的消息的操作的时间,然后处理该被监测的消息。
12.根据权利要求12所述的方法,其特征在于,所述通信设备是MSC/VLR,所述被监测的消息是同步请求消息。
13.一种在通信设备中实现消息流控的方法,其特征在于,所述方法至少包括以下步骤a.在所述通信设备中设置被监测的消息中允许的非法消息数量的最大值;b.所述通信设备接收到被监测的消息时,判断所述非法消息的数量是否达到所述最大值,如果是,则执行步骤c,否则,执行步骤d;c.所述通信设备丢弃所述被监测的消息;d.所述通信设备按处理所述被监测的消息。
14.根据权利要求13所述的方法,其特征在于,所述通信设备是MSC/VLR,所述被监测的消息是同步请求消息。
15.根据权利要求14所述的方法,其特征在于,所述方法是在一个指定的监测时间段内执行所述步骤a进一步是在MSC/VLR指定监测时间段,以及设置在该监测时间段内非法同步请求消息数量的最大值;相应地,在步骤b中,在该监测时间段内MSC/VLR接收到同步请求消息时,判断非法同步请求消息的数量是否达到所述最大值;相应地,步骤d进一步是MSC/VLR向HLR/AUC发送请求鉴权元组的请求消息,并带上终端上报的AUTS和对应鉴权元组中的RAND,并且在收到HLR/AUC返回的同步请求消息非法信息后,更新非法同步请求消息的数量。
16.根据权利要求14所述的方法,其特征在于,所述方法是在一个动态的监测时间段内执行;所述步骤a进一步是在MSC/VLR设置单位监测时间段长度,以及设置在单位监测时间段内非法同步请求消息数量的最大值;相应地,在步骤b中,MSC/VLR在接收到同步请求消息时,根据当前时间和设置的监测时间段长度确定监测时间段,并判断在该监测时间段内收到的非法同步请求消息数量是否达到所述的最大值;相应地,步骤d进一步是MSC/VLR向HLR/AUC发送请求鉴权元组的请求消息,并带上终端上报的AUTS和对应鉴权元组中的RAND;并且在接收到HLR/AUC返回的同步请求消息非法信息后,记录收到该非法同步请求消息的时间。
17.一种在通信设备中实现消息流控的方法,其特征在于,所述方法至少包括以下步骤a.在所述通信设备设置单位监测时间段长度,以及设置在单位监测时间段内被监测的消息数量的最大值,设置循环队列用于记录收到被监测的消息的时间,该队列的元素数量为所述最大值加1;设置指针指向队列中将要记录所述时间值的元素;b.所述通信设备在接收到被监测的消息时,将收到被监测的消息的时间记录于所述指针指向的队列元素,并将指针向后移动一位,使其指向当前写入元素的下一个队列元素,并判断收到被监测的消息的时间和指针所指队列元素中记录的时间的差值是否大于所述的单位监测时间段长度,如果是,则执行步骤d,否则,执行步骤c;c.所述通信设备丢弃该被监测的消息;d.所述通信设备按照现有正常的处理流程处理该被监测的消息。
18.一种在通信设备中实现消息流控的方法,其特征在于,所述方法至少包括以下步骤a.在所述通信设备设置单位监测时间段长度,以及设置在单位监测时间段内允许处理的被监测的消息数量的最大值,设置循环队列用于记录收到被监测的消息的时间,该队列的元素数量为所述最大值;设置指针指向队列中将要记录所述时间值的元素;b.所述通信设备在接收到被监测的消息时,判断收到被监测的消息的时间和指针所指队列元素中记录的时间的差值是否大于所述的单位监测时间段长度,如果是,则执行步骤d,否则,执行步骤c;c.所述通信设备丢弃该被监测的消息;d.所述通信设备按照现有正常的同步处理流程处理该被监测的消息,将处理被监测的消息的时间记录于所述指针指向的队列元素,并将指针向后移动一位,使其指向当前写入元素的下一个队列元素。
19.一种在通信设备中实现消息流控的方法,其特征在于,所述方法至少包括以下步骤a.在所述通信设备设置单位监测时间段长度,以及设置在单位监测时间段内允许的被监测的消息中允许的非法消息数量的最大值,设置循环队列用于记录得知被监测的消息为非法的时间,该队列的元素数量为所述最大值;设置指针指向队列中将要记录所述时间值的元素;b.所述通信设备在接收到被监测的消息时,判断收到被监测的消息的时间和指针所指队列元素中记录的时间的差值是否大于所述的单位监测时间段长度,如果是,则执行步骤d,否则,执行步骤c;c.所述通信设备丢弃该被监测的消息;d.所述通信设备按照现有正常的同步处理流程处理该同步请求消息,并在得知被监测的消息非法后,将当前时间记录于所述指针指向的队列元素,并将指针向后移动一位,使其指向当前写入元素的下一个队列元素。
全文摘要
本发明公开了一种在通信设备中实现消息流控的方法,应用于通信领域,所述方法至少包括以下步骤a.在所述通信设备中设置被监测的消息数量的最大值;b.所述通信设备接收到被监测的消息时,判断当前已收到的被监测的消息的数量是否大于所述最大值,如果是,则执行步骤c,否则,执行步骤d;c.所述通信设备丢弃所述被监测的消息;d.所述通信设备处理所述被监测的消息。从而防止非法攻击者利用同步请求消息攻击网络HLR/AUC使其瘫痪不能有效工作。
文档编号H04W12/00GK1859717SQ200510037188
公开日2006年11月8日 申请日期2005年9月8日 优先权日2005年9月8日
发明者王正伟 申请人:华为技术有限公司