欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种邻居表项管理方法、装置、电子设备及存储介质独创技术37446字

一种邻居表项管理方法、装置、电子设备及存储介质

2021-02-23 03:06:46

一种邻居表项管理方法、装置、电子设备及存储介质

  技术领域

  本申请涉及通信技术领域,尤其涉及一种邻居表项管理方法、装置、电子设备及存储介质。

  背景技术

  邻居发现协议(Neighbor Discovery Protocol,NDP)是互联网协议第6版(Internet Protocol version6,IPv6)的一个基本组成部分,实现了路由器和前缀发现、地址解析、下一跳地址确定、重定向、邻居不可达检测和重复地址检测等功能,可选实现链路层地址变化、输入负载均衡、泛播地址和代理通告等功能。IPv6网络设备使用邻居发现协议学习邻居的媒体接入控制(Media Access Control,MAC)地址。IPv6邻居表项就是维护邻居的IPv6地址和邻居的MAC地址映射关系的表项。

  IPv6地址的自动获取方式分为有状态IPv6地址的获取和无状态IPv6地址的获取。有状态IPv6地址是通过IPv6动态主机配置协议(Dynamic Host Configuration Protocolfor IPv6,DHCPV6)来获取的;无状态IPv6地址是通过路由器公告(Router Advertisement,RA)报文携带的全球单播地址前缀自动生成的。其中,对于需要对外提供服务的场景,通常采用有状态IPv6地址,因为业务IP的突然变化容易导致业务中断。对于不需要对外提供服务,且需要访问IPv6网络资源的场景,通常采用无状态IPv6地址。

  在使用无状态IPv6地址场景中,大部分终端操作系统,如WINDOWS、IOS、安卓等每次访问IPv6网络资源会生成一个无状态IPv6地址和一个临时无状态IPv6地址,其中,临时IPv6地址主要是为了安全性考虑,且是通过随机算法生成的。

  由于无状态IPv6地址的临时性和随机性特点,导致在很多场合下会随机变动,比如与网关设备之间的链路不稳定重复关联无线网络、无线用户接入网络切换、终端设备重启等都可能会导致终端获取到自身MAC地址对应的新的IPv6地址,且每次会获取至少2个无状态IPv6地址,也即网关设备需要为这个MAC地址维护不确定的多个邻居表项。

  从网关设备的IPv6邻居表项的状态机可见,IPv6邻居在陈旧状态STALE老化周期内,依然会保留着终端旧的IPv6地址的邻居,如果这种终端的数量较多,则很容易在短期内就把网关设备的IPv6邻居容量占满,进而导致网关设备无法学习其他邻居的IPv6邻居表项,导致无法向新邻居发送数据报文,造成网络资源浪费的同时,还影响了网络的正常通信,导致IPv6网络的可靠性下降。

  发明内容

  本申请实施例提供一种邻居表项管理方法、装置、电子设备及存储介质,解决了现有技术存在的资源浪费、甚至影响网络正常通信的问题。

  第一方面,提供了一种邻居表项管理方法,该方法可以包括:

  网关设备根据待管理终端所在目标网络的网络标识和所述待管理终端的媒体接入控制MAC地址,获取所述待管理终端在所述目标网络中的至少一个邻居表项和所述至少一个邻居表项的数量;其中,每个邻居表项包括所述待管理终端的MAC地址和所述所有待管理终端的一个互联网协议第6版IPv6地址;

  若所述邻居表项的数量不小于第一阈值,则在所述至少一个邻居表项中,对处于陈旧状态的邻居表项执行邻居不可达检测,并在检测出目标邻居表项为邻居不可达状态时,删除所述目标邻居表项,所述陈旧状态表示超出可达状态的持续时长后,未检测邻居是否可达的状态;所述可达状态表示邻居的MAC地址解析成功时,确定邻居可达的状态。

  在一个可能的实现中,所述方法还包括:

  若所述邻居表项的数量小于所述第一阈值,则获取当前存储的所有待管理终端的邻居表项的数量;

  在所述当前存储的所有待管理终端的邻居表项的数量与预设总存储数量的比值不小于第二阈值时,在所述当前存储的所有待管理终端的邻居表项中,对处于陈旧状态的邻居表项执行邻居不可达检测,并在检测出目标邻居表项为邻居不可达状态时,删除所述目标邻居表项。

  在一个可能的实现中,对处于陈旧状态的邻居表项执行邻居不可达检测,包括:

  对所述处于陈旧状态的邻居表项进行分组,得到N组邻居表项;其中,每组包括至少一个邻居表项,所述N为大于零的整数;

  依次将所述N组邻居表项的邻居表项状态由陈旧状态更新为延迟状态,所述延迟状态表示未确定邻居是否可达,且等待应用层协议确认邻居是否可达的状态;

  按照每组更新时间的先后顺序,对所述N组中的邻居表项执行邻居不可达检测。

  在一个可能的实现中,所述方法还包括:

  将删除所述目标邻居表项后的当前存储的所有待管理终端的邻居表项,确定为新的当前存储的所有待管理终端的邻居表项;

  若所述新的当前存储的所有待管理终端的邻居表项的数量与所述预设总存储数量的比值不小于所述第二阈值,则在预设时间段后,返回执行步骤:在所述当前存储的所有待管理终端的邻居表项中,对处于陈旧状态的邻居表项执行邻居不可达检测。

  第二方面,提供了一种邻居表项管理装置,该装置可以包括:获取单元、执行单元和删除单元;

  所述获取单元,用于根据待管理终端所在目标网络的网络标识和所述待管理终端的媒体接入控制MAC地址,获取所述待管理终端在所述目标网络中的至少一个邻居表项和所述至少一个邻居表项的数量;其中,每个邻居表项包括所述待管理终端的MAC地址和所述所有待管理终端的一个互联网协议第6版地址;

  所述执行单元,用于若所述邻居表项的数量不小于第一阈值,则在所述至少一个邻居表项中,对处于陈旧状态的邻居表项执行邻居不可达检测,所述陈旧状态表示超出可达状态的持续时长后,未检测邻居是否可达的状态;所述可达状态表示邻居的MAC地址解析成功时,确定邻居可达的状态;

  所述删除单元,用于在检测出目标邻居表项为邻居不可达状态时,删除所述目标邻居表项。

  在一个可能的实现中,所述获取单元,还用于若所述邻居表项的数量小于所述第一阈值,则获取当前存储的所有待管理终端的邻居表项的数量;

  所述执行单元,还用于在所述当前存储的所有待管理终端的邻居表项的数量与预设总存储数量的比值不小于第二阈值时,在所述当前存储的所有待管理终端的邻居表项中,对处于陈旧状态的邻居表项执行邻居不可达检测;

  所述删除单元,还用于在检测出目标邻居表项为邻居不可达状态时,删除所述目标邻居表项。

  在一个可能的实现中,所述装置还包括分组单元和更新单元;

  所述分组单元,用于对所述处于陈旧状态的邻居表项进行分组,得到N组邻居表项;其中,每组包括至少一个邻居表项,所述N为大于零的整数;

  所述更新单元,用于依次将所述N组邻居表项的邻居表项状态由陈旧状态更新为延迟状态,所述延迟状态表示未确定邻居是否可达,且等待应用层协议确认邻居是否可达的状态;

  所述执行单元,具体用于按照每组更新时间的先后顺序,对所述N组中的邻居表项执行邻居不可达检测。

  在一个可能的实现中,所述装置还包括触发单元;

  所述触发单元,用于将删除所述目标邻居表项后的当前存储的所有待管理终端的邻居表项,确定为新的当前存储的所有待管理终端的邻居表项;若所述新的当前存储的所有待管理终端的邻居表项的数量与所述预设总存储数量的比值不小于所述第二阈值,则在预设时间段后,触发所述执行单元。

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

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

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

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

  本发明实施例提供的邻居表项管理方法中网关设备根据待管理终端所在目标网络的网络标识和待管理终端的媒体接入控制MAC地址,获取待管理终端在目标网络中的至少一个邻居表项和至少一个邻居表项的数量,每个邻居表项包括待管理终端的媒体接入控制MAC地址和相应所有待管理终端的一个互联网协议第6版地址;若邻居表项的数量不小于第一阈值,则在至少一个邻居表项中,对处于陈旧状态的邻居表项执行邻居不可达检测,并在检测出目标邻居表项为邻居不可达状态时,删除目标邻居表项。该方法通过提高邻居不可达检测的频率,删除不可达状态的邻居表项,以解决网关设备存储过多邻居表项而造成的资源浪费,以及网络无法正常通信的问题。

  附图说明

  图1为一种邻居表项的邻居表项状态变迁图;

  图2为一种网络架构示意图;

  图3为本发明实施例提供的一种邻居表项管理方法的流程示意图;

  图4为本发明实施例提供的另一种邻居表项管理方法的流程示意图;

  图5为本发明实施例提供的一种邻居表项管理装置的结构示意图;

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

  具体实施方式

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

  在IPv6网络中,IPv6网络设备使用邻居发现协议来学习各终端的MAC地址,网络设备在通信前需要知道各终端的MAC地址。NDP协议通过在终端间交互邻居请求(NeighborSolicitationh,NS)报文和邻居公告(Neighbor Advertisement,NA)报文完成IPv6地址到链路层地址,即链路层地址,如MAC地址的解析,然后通过解析后得到的链路层地址和IPv6地址等信息来建立相应的邻居表项。故IPv6邻居表项就是维护各终端的IPv6地址和相应MAC地址映射关系的表项。每一个数据报文的转发都需要有相应的邻居表项。

  邻居表项包含了邻居的IPv6地址,链路层地址,指示邻居是路由器还是主机的标志,如IsRouter标志位,及邻居可达性状态需要的相关信息等。

  其中,邻居表项的邻居表项状态可以包括:

  (1)未完成INCOMPLETE状态:表示正在解析邻居的MAC地址,但邻居链路层地址尚未确定。

  (2)可达REACHABLE状态:表示邻居的MAC地址解析成功时,确定该邻居可达的状态。

  (3)陈旧STALE状态:表示可达状态的持续时间耗尽,即超出可达状态的持续时长后,未检测邻居是否可达的状态。

  (4)延迟DELAY状态:表示未确定邻居是否可达,且等待应用层协议确认邻居是否可达的状态。DELAY状态不是一个稳定的状态,而是一个延时等待状态。

  (5)探测PROBE状态:表示邻居可达性未知,正在持续发送邻居请求报文以确认可达性。

  (6)删除DELETED状态:表示邻居表项不存在或者被删除。

  图1为邻居表项的邻居表项状态变迁图,如图1所示邻居表项的状态变化如下:

  1、终端A要访问终端B,终端A首先发送组播NS报文给终端B,并在本地生成邻居终端B的邻居表项,并将该邻居表项的邻居表项状态设置为INCOMPLETE状态。

  2、如果预设时长(如3秒)内,终端A未收到终端B回复的NA报文,即组播NS超时,那么终端A将该邻居表项的邻居表项状态由INCOMPLETE状态变为DELETED状态,删除该邻居表项;

  如果终端A收到终端B回复的NA报文,则终端A将邻居表项的邻居表项状态由INCOMPLETE状态变为REACHABLE状态;

  3、在终端B中,终端B在收到NS报文后,若NS报文中包含了源链路层地址,则终端B将在本地创建关于终端A的邻居表项,并将终端A对应的邻居表项变为STALE状态;若在终端B本地中终端A对应的邻居表项已经存在,则将相应状态变为STALE状态。

  4、在终端A中,终端B对应的邻居表项的REACHABLE状态在超过可达时间(如缺省时的30s),或者,收到终端B的非请求NA报文,且链路层地址不同时,将变为STALE状态,并且一直保持该状态,直到有数据包发送为止。

  5、处于STALE状态的邻居表项,如果发送报文时命中这条邻居表项,那么迁移到DELAY;

  否则,等到STALE状态的持续时间(或称“老化时间”)到期时,进入DELAY状态。对于STALE状态的持续时间,大部分产商实现默认为3600s以上,可通过命令调整。

  6、处于DELAY状态的邻居表项,若上层协议,即应用层协议能提供邻居可到达的确认,如TCPv6三次握手,或者收到TCP确认,则直接更新为REACHABLE状态;否则,在经过一定的时间(如5s)后更新为PROBE状态。

  其中,DELAY状态下,终端A可以向终端B发送NS请求后,如果没有应答信息,则变为PROBE状态;如果有NA应答,则更新为REACHABLE状态。

  7、PROBE状态,用于对邻居表项执行邻居不可达检测(Neighbor UnreachabilityDetection,NUD),终端A向终端B发送发单播NS报文,每秒发一次,连发3次,直到收到应答为止。如果终端A收到邻居终端B的NA报文,则将PROBE状态更新为REACHABLE状态。如果连发3次仍然没有收到应答,就认为邻居不可达,删除邻居表项。

  其中,收到邻居请求,创建新的邻居表项,状态必须是STALE状态,因为收到邻居请求只能证明对方发送的报文可到达自己,而不能确定自己发送的报文能到达对方。

  在图2所示的网络架构中,第一终端通过网关设备与第二终端通信连接。由于第一终端所在无线网络的无线信号不稳定,多次重复关联无线网络,导致网关设备学习到第一终端的MAC地址对应的多个无状态IPv6地址(下面称为“IPv6地址”),从而建立多个邻居表项。

  对处于STALE状态的邻居表项,若第一终端没有报文命中第二终端,则要等到STALE状态的老化时间(如1小时)后才会开始做老化探测。其中,老化时间是指邻居表项的邻居表项状态由STALE状态进入DELAY状态,再由DELAY状态进入PROBE状态的总时间;老化探测是指对邻居表项执行邻居不可达检测。

  这种机制容易导致邻居表项老化不及时,出现邻居表项资源被占满的现象,使网关设备无法学习到第二终端的MAC地址对应的IPv6地址。

  现有的做法是:调整邻居表项的老化时间,如从1小时调整到20分钟,即将邻居表项由STALE状态进入DELAY状态,再由DELAY状态进入PROBE状态的时间由1小时调整为20分钟。

  这种做法会导致邻居表项频繁的处于老化探测过程中,对第一终端和无线网络都会造成性能上的压力。尤其是对于大型的IPv6网络,当第一终端上存在大量的邻居表项时,老化时间太短,会导致第一终端持续地处于老化探测过程中,降低了第一终端的工作性能。

  需要说明的是,上述终端可以是移动电话、智能电话、笔记本电脑、数字广播接收器、个人数字助理(PDA)、平板电脑(PAD)等用户设备(User Equipment,UE)、手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其它处理设备、移动台(Mobilestation,MS)、移动终端(Mobile Terminal)等。该终端具备经无线接入网(Radio AccessNetwork,RAN)与一个或多个核心网进行通信的能力。

  对此,本申请实施例提供了一种邻居表项管理方法,通过启动快速老化机制,快速回收处于不可达状态的邻居表项,以解决IPv6网络中网关设备存储的邻居表项过多的问题。

  以下结合说明书附图对本申请的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明,并且在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

  图3为本发明实施例提供了一种邻居表项管理方法的流程示意图。如图3所示,该方法的执行主体为网关设备,该方法可以包括:

  步骤S310、根据待管理终端所在目标网络的网络标识和待管理终端的媒体接入控制地址,获取待管理终端在目标网络中的至少一个邻居表项和至少一个邻居表项的数量。

  每个邻居表项可以包括待管理终端的媒体接入控制MAC地址和相应所有待管理终端的一个IPv6地址。

  由于不同虚拟局域网(Virtual Local Area Network,VLAN)的MAC地址可以相同,故以网络标识和同一个MAC地址作为索引可以获取待管理终端在同一网络中的邻居表项。其中,网络标识可以为网络的三层接口标识。

  步骤S320、对待管理终端对应的邻居表项的数量与第一阈值进行检测,确定是否执行邻居不可达检测。

  网关设备可以实时对待管理终端对应的邻居表项的数量与第一阈值进行检测。

  (1)若待管理终端对应的邻居表项的数量不小于第一阈值,则表明每个待管理终端的MAC地址对应的邻居表项的数量较多,故在至少一个邻居表项中,对处于陈旧状态的邻居表项执行邻居不可达检测;

  第一阈值为预设的一个MAC地址对应的IPv6地址数量的最大值,即同一个MAC地址的邻居表项阈值。

  其中,邻居不可达检测,具体包括:

  网关设备可以向每个处于陈旧状态的邻居表项对应的待管理终端发送单播NS报文,如每秒发一次,连发3次。

  若未收到目标邻居表项对应的NA报文,则确定该目标邻居表项为邻居不可达状态时,删除目标邻居表项。

  若收到目标邻居表项对应的NA报文,则确定该目标邻居表项为邻居可达状态。

  (2)若待管理终端对应的邻居表项的数量小于第一阈值,则表明每个待管理终端的MAC地址对应的邻居表项的数量在允许数量范围内,此时可以按照原邻居表项状态机制进行状态转换,也可以对网关设备进行整机容量检测,以实现进一步释放处于不可达状态的邻居表项。具体可以包括:

  获取当前存储的所有待管理终端的邻居表项的数量;

  对当前存储的所有待管理终端的邻居表项的数量与预设总存储数量的比值与第二阈值,如80%进行检测。其中,预设总存储数量为预设的网关设备整机的总容量。

  若在当前存储的所有待管理终端的邻居表项的数量与预设总存储数量的比值小于第二阈值,则结束本次邻居表项管理流程。

  若在当前存储的所有待管理终端的邻居表项的数量与预设总存储数量的比值不小于第二阈值,则表明网关设备当前存储的所有待管理终端的邻居表项的数量超过允许数量范围,此时在当前存储的所有待管理终端的邻居表项中,对处于陈旧状态的邻居表项执行邻居不可达检测;

  当检测出目标邻居表项为邻居不可达状态时,删除目标邻居表项;

  当检测出目标邻居表项为邻居可达状态时,结束本次邻居表项管理流程。

  其中,第二阈值为预设的网关设备存储邻居表项的最大容量百分比,即存储的邻居表项容量百分比阈值。

  可见,本申请的邻居表项管理方法通过第一阈值和第二阈值,可以提前触发对邻居表项的邻居不可达检测,也就是说,不必等待老化时间结束,即可实现邻居表项的快速删除,解决了网关设备存储邻居表项过多的问题。

  可以理解的是,第一阈值越小或第二阈值越小,触发邻居老化探测的频率就越高,对删除邻居不可达状态的邻居表项的实时性越好,故可以根据实际应用环境或当前网络性能,对第一阈值和第二阈值进行最小值配置。

  其中,通过调整第一阈值,可以优先解决单个MAC地址造成的邻居表项资源占用过多的问题。通过调整第二阈值,可以在邻居表项还没达到满容量前,提前探测出无用的邻居表项,以及时释放相应邻居表项。

  在一个可实现的实施例中,将删除目标邻居表项后的当前存储的所有待管理终端的邻居表项,确定为新的当前存储的所有待管理终端的邻居表项,并返回执行步骤:对当前存储的所有待管理终端的邻居表项的数量与预设总存储数量的比值与第二阈值进行检测;

  其中,若新的当前存储的所有待管理终端的邻居表项的数量与预设总存储数量的比值不小于第二阈值,则可以直接或在预设时间段后,在当前存储的所有待管理终端的邻居表项中,对处于STALE状态的邻居表项执行邻居不可达检测。

  在上述任一实施例中,由于执行邻居不可达检测时需要网关设备向每个处于陈旧状态的邻居表项对应的待管理终端发送单播NS报文,故为了防止网关设备同一时刻向目标网络中的同一MAC地址发送太多的NS报文,可以在预设更新时间段的随机时间内,将处于STALE状态的邻居表项的状态更新为DELAY状态,即避免处于STALE状态的邻居表项的状态同时迁移到DELAY状态。其中,预设更新时间段不大于STALE状态的老化时间。

  具体实施例中,对处于STALE状态的邻居表项执行邻居不可达检测可以包括:

  对处于STALE状态的邻居表项进行分组,得到N组邻居表项;其中,N为大于零的整数,每组包括至少一个邻居表项,并依次将N组邻居表项的邻居表项状态由STALE状态更新为DELAY状态,即此时不需要等待STALE状态的老化时间结束;

  之后,按照每组更新时间的先后顺序,对N组中的邻居表项执行邻居不可达检测。

  需要说明的是,上述对处于STALE状态的邻居表项的分组方式可以是随机分组,也可以是按照预设邻居表项数量进行分组等,本发明实施例在此不做限定。

  在一个例子中,如图4所示,另一种邻居表项管理方法可以包括:

  步骤S401、根据待管理终端所在目标网络的网络标识和待管理终端的MAC地址,获取待管理终端对应的至少一个邻居表项和其数量;

  步骤S402、检测待管理终端对应的邻居表项的数量是否不小于第一阈值;

  若是,则执行步骤S403;

  若否,则执行步骤S405;

  步骤S403、对至少一个邻居表项中处于陈旧状态的邻居表项执行邻居不可达检测;

  若检测出目标邻居表项为邻居不可达,则执行步骤S404;

  若检测出目标邻居表项为邻居可达,之后结束本流程;

  步骤S404、删除目标邻居表项,之后结束本流程。

  步骤S405、获取当前存储的所有待管理终端的邻居表项和相应数量;

  步骤S406、检测当前存储的所有待管理终端的邻居表项数量与预设总存储数量的比值是否不小于第二阈值;

  若是,则执行步骤S407;

  若否,则结束本流程。

  步骤S407、对当前存储的所有待管理终端的邻居表项中处于陈旧状态的邻居表项执行邻居不可达检测;

  若检测出目标邻居表项为邻居不可达,则执行步骤S408;

  若检测出目标邻居表项为邻居可达,则结束本流程;

  步骤S408、删除目标邻居表项;

  步骤S409、将删除目标邻居表项后的当前存储的所有待管理终端的邻居表项,确定为新的当前存储的所有待管理终端的邻居表项,并返回执行步骤S406。

  可以理解的是,为了更进一步释放网关设备中不可达状态的邻居表项,在步骤S404之后,也可以继续对网关设备进行整机容量检测,即执行步骤S405。

  本发明实施例提供的邻居表项管理方法中网络设备根据待管理终端所在目标网络的网络标识和待管理终端的MAC地址,获取待管理终端在目标网络中的至少一个邻居表项和至少一个邻居表项的数量,每个邻居表项包括待管理终端的媒体接入控制MAC地址和相应所有待管理终端的一个互联网协议第6版地址;若邻居表项的数量不小于第一阈值,则在至少一个邻居表项中,对处于陈旧状态的邻居表项执行邻居不可达检测,并在检测出目标邻居表项为邻居不可达状态时,删除目标邻居表项。该方法通过提高邻居不可达检测的频率,删除不可达状态的邻居表项,以解决网关设备存储过多邻居表项而造成的资源浪费,以及网络无法正常通信的问题。

  与上述方法对应的,本发明实施例还提供一种邻居表项管理装置,如图5所示,该邻居表项管理装置包括:获取单元510、执行单元520和删除单元530;

  获取单元510,用于根据待管理终端所在目标网络的网络标识和所述待管理终端的媒体接入控制MAC地址,获取所述待管理终端在所述目标网络中的至少一个邻居表项和所述至少一个邻居表项的数量;其中,每个邻居表项包括所述待管理终端的媒体接入控制MAC地址和相应所有待管理终端的一个互联网协议第6版地址;

  执行单元520,用于若所述邻居表项的数量不小于第一阈值,则在所述至少一个邻居表项中,对处于陈旧状态的邻居表项执行邻居不可达检测,所述陈旧状态表示超出可达状态的持续时长后,未检测邻居是否可达的状态;所述可达状态表示邻居的MAC地址解析成功时,确定邻居可达的状态;

  删除单元530,用于在检测出目标邻居表项为邻居不可达状态时,删除所述目标邻居表项。

  在一个可能的实现中,获取单元510,还用于若所述邻居表项的数量小于所述第一阈值,则获取当前存储的所有待管理终端的邻居表项的数量;

  执行单元520,还用于在所述当前存储的所有待管理终端的邻居表项的数量与预设总存储数量的比值不小于第二阈值时,在所述当前存储的所有待管理终端的邻居表项中,对处于陈旧状态的邻居表项执行邻居不可达检测;

  删除单元530,还用于在检测出目标邻居表项为邻居不可达状态时,删除所述目标邻居表项。

  在一个可能的实现中,所述装置还包括分组单元540和更新单元550;

  分组单元540,用于对所述处于陈旧状态的邻居表项进行分组,得到N组邻居表项;其中,每组包括至少一个邻居表项,所述N为大于零的整数;

  更新单元550,用于依次将所述N组邻居表项的邻居表项状态由陈旧状态更新为延迟状态,所述延迟状态表示未确定邻居是否可达,且等待应用层协议确认邻居是否可达的状态;

  执行单元520,具体用于按照每组更新时间的先后顺序,对所述N组中的邻居表项执行邻居不可达检测。

  在一个可能的实现中,所述装置还包括触发单元560;

  触发单元560,用于将删除所述目标邻居表项后的当前存储的所有待管理终端的邻居表项,确定为新的当前存储的所有待管理终端的邻居表项;若所述新的当前存储的所有待管理终端的邻居表项的数量与所述预设总存储数量的比值不小于所述第二阈值,则在预设时间段后,触发所述执行单元。

  本发明上述实施例提供的邻居表项管理装置的各功能单元的功能,可以通过上述各方法步骤来实现,因此,本发明实施例提供的邻居表项管理装置中的各个单元的具体工作过程和有益效果,在此不复赘述。

  本发明实施例还提供了一种电子设备,如图6所示,包括处理器610、通信接口620、存储器630和通信总线640,其中,处理器610,通信接口620,存储器630通过通信总线640完成相互间的通信。

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

  处理器610,用于执行存储器630上所存放的程序时,实现如下步骤:

  根据待管理终端所在目标网络的网络标识和所述待管理终端的媒体接入控制MAC地址,获取所述待管理终端在所述目标网络中的至少一个邻居表项和所述至少一个邻居表项的数量;其中,每个邻居表项包括所述待管理终端的媒体接入控制MAC地址和相应所有待管理终端的一个互联网协议第6版地址;

  若所述邻居表项的数量不小于第一阈值,则在所述至少一个邻居表项中,对处于陈旧状态的邻居表项执行邻居不可达检测,并在检测出目标邻居表项为邻居不可达状态时,删除所述目标邻居表项,所述陈旧状态表示超出可达状态的持续时长后,未检测邻居是否可达的状态;所述可达状态表示邻居的MAC地址解析成功时,确定邻居可达的状态。

  在一个可能的实现中,所述方法还包括:

  若所述邻居表项的数量小于所述第一阈值,则获取当前存储的所有待管理终端的邻居表项的数量;

  在所述当前存储的所有待管理终端的邻居表项的数量与预设总存储数量的比值不小于第二阈值时,在所述当前存储的所有待管理终端的邻居表项中,对处于陈旧状态的邻居表项执行邻居不可达检测,并在检测出目标邻居表项为邻居不可达状态时,删除所述目标邻居表项。

  在一个可能的实现中,对处于陈旧状态的邻居表项执行邻居不可达检测,包括:

  对所述处于陈旧状态的邻居表项进行分组,得到N组邻居表项;其中,每组包括至少一个邻居表项,所述N为大于零的整数;

  依次将所述N组邻居表项的邻居表项状态由陈旧状态更新为延迟状态,所述延迟状态表示未确定邻居是否可达,且等待应用层协议确认邻居是否可达的状态;

  按照每组更新时间的先后顺序,对所述N组中的邻居表项执行邻居不可达检测。

  在一个可能的实现中,所述方法还包括:

  将删除所述目标邻居表项后的当前存储的所有待管理终端的邻居表项,确定为新的当前存储的所有待管理终端的邻居表项;

  若所述新的当前存储的所有待管理终端的邻居表项的数量与所述预设总存储数量的比值不小于所述第二阈值,则在预设时间段后,返回执行步骤:在所述当前存储的所有待管理终端的邻居表项中,对处于陈旧状态的邻居表项执行邻居不可达检测。

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

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

  存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

  上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

  由于上述实施例中电子设备的各器件解决问题的实施方式以及有益效果可以参见图3所示的实施例中的各步骤来实现,因此,本发明实施例提供的电子设备的具体工作过程和有益效果,在此不复赘述。

  在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的邻居表项管理方法。

  在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的邻居表项管理方法。

  本领域内的技术人员应明白,本申请实施例中的实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例中可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例中可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。

  本申请实施例中是参照根据本申请实施例中实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

  这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

  这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

  尽管已描述了本申请实施例中的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请实施例中范围的所有变更和修改。

  显然,本领域的技术人员可以对本申请实施例中实施例进行各种改动和变型而不脱离本申请实施例中实施例的精神和范围。这样,倘若本申请实施例中实施例的这些修改和变型属于本申请实施例中权利要求及其等同技术的范围之内,则本申请实施例中也意图包含这些改动和变型在内。

《一种邻居表项管理方法、装置、电子设备及存储介质.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)