实现智能网关中下挂设备上下线状态快速侦测的方法

文档序号:7823728阅读:1108来源:国知局
实现智能网关中下挂设备上下线状态快速侦测的方法
【专利摘要】本发明涉及一种实现智能网关中下挂设备上下线状态快速侦测的方法,其中包括应用层守护进程启动后与基于内核的转发数据库相连接并监听链路层数据包;基于内核的转发数据库的条目发生改变时通知所述的应用层守护进程;所述的应用层守护进程修改条目信息并于在线列表数据库中修改条目对应的设备信息中;所述的应用层守护进程向对应的设备发起探测并根据是否接受到设备对应的链路层数据包判断设备是否在线。采用该种实现智能网关中下挂设备上下线状态快速侦测的方法,快速准确的识别上网设备当前状态,一方面可以提高应用层查询网关上网设备的效率,另一方面也解决了DHCP协议不能识别静态IP设备的问题,具有更广泛的应用范围。
【专利说明】实现智能网关中下挂设备上下线状态快速侦测的方法

【技术领域】
[0001]本发明涉及网络设备应用方法【技术领域】,尤其涉及智能网关应用方法【技术领域】,具体是指一种实现智能网关中下挂设备上下线状态快速侦测的方法。

【背景技术】
[0002]随着智能家居,智能网关等概念的逐步发展与成熟,相关产品也逐步进入人们的生活,传统网关一些功能无法满足智能化的需求,不能给用户带来方便,有效的体验。本专利涉及到的内容是对传统功能的改进,使之更加快速,有效与智能化。传统网关对LAN(Local Area Network,局域网)侧设备上下线的记录主要使用DHCP (DynamicHost Configurat1n Protocol,动态主机配置协议)协议各结合查询内核ARP (AddressResolut1n Protocol,地址解析协议)表项来实现,此方法的缺陷就是被动查询,每次需要获取相关信息时,才进行查询,效率比较低。且由于ARP表项有缓存时间,当设备离线后,会有几分钟的缓冲时间,导致网关对上网设备下线的探测不太灵敏。


【发明内容】

[0003]本发明的目的是克服了上述现有技术的缺点,提供了一种能够实现快速准确地识别上网设备当前状态、解决DHCP协议不能识别静态IP设备的问题、具有更广泛应用范围的实现智能网关中下挂设备上下线状态快速侦测的方法。
[0004]为了实现上述目的,本发明的实现智能网关中下挂设备上下线状态快速侦测的方法具有如下构成:
[0005]该实现智能网关中下挂设备上下线状态快速侦测的方法,其主要特点是,所述的方法包括以下步骤:
[0006]实现智能网关中下挂设备上下线状态快速侦测的方法,其特征在于,所述的方法包括以下步骤:
[0007](I)应用层守护进程启动后与基于内核的转发数据库相连接并监听链路层数据包;
[0008](2)基于内核的转发数据库的条目发生改变时通知所述的应用层守护进程;
[0009](3)所述的应用层守护进程修改条目信息并于在线列表数据库中修改条目对应的设备信息;
[0010](4)所述的应用层守护进程向对应的设备发起探测并根据是否接收到设备对应的链路层数据包判断设备是否在线。
[0011 ] 较佳地,所述的基于内核的转发数据库的条目发生改变时通知所述的应用层守护进程,具体为:
[0012]基于内核的转发数据库的条目发生改变时通过NETLINK套接字的方式通知所述的应用层守护进程。
[0013]较佳地,所述的应用层守护进程修改条目信息并于在线列表数据库中修改条目对应的设备信息,包括以下步骤:
[0014](3-1)所述的应用层守护进程判断转发数据库中条目改变状态,如果是添加条目,则继续步骤(3-2),如果是删除条目,则继续步骤(3-3);
[0015](3-2)所述的应用层守护进程添加条目信息并于在线列表数据库中添加对应的设备,然后继续步骤⑷;
[0016](3-3)所述的应用层守护进程删除条目信息并于在线列表数据库中去除对应的设备,然后继续步骤(4)。
[0017]较佳地,所述的应用层守护进程向对应的设备发起探测,具体为:
[0018]所述的应用层守护进程向对应的设备发起探测并设置定时器。
[0019]更佳地,所述的根据是否接收到设备对应的链路层数据包判断设备是否在线,包括以下步骤:
[0020](4-1)所述的应用层守护进程判断在定时器超时之前是否收到设备对应的链路层数据包,如果是,则继续步骤(4-2),否则继续步骤(4-3);
[0021](4-2)所述的应用层守护进程保持此设备状态为在线状态;
[0022](4-3)所述的应用层守护进程将此设备状态设置为离线状态。
[0023]更进一步地,所述的应用层守护进程保持此设备状态为在线状态,包括以下步骤:
[0024](4-2-1)所述的应用层守护进程将接收到的链路层数据包进行解析;
[0025](4-2-2)所述的应用层守护进程重置探测的定时器并设置探测信息发送间隔和次数。
[0026]较佳地,所述的步骤(4)之后,还包括以下步骤:
[0027](5)客户端通过所述的应用层守护进程查询智能网关中上网设备的效率。
[0028]采用了该发明中的实现智能网关中下挂设备上下线状态快速侦测的方法,提供了一种基于内核FDB主动通知与链路层定时在线探测技术的方法,快速准确的识别上网设备当前状态,内核FDB主动通知给应用层,一方面可以提高应用层(如手机客户端)查询网关上网设备的效率,另一方面也解决了 DHCP协议不能识别静态IP设备的问题,链路层在线探测技术则可以有效的侦测到设备是否已经离线,具有更广泛的应用范围。

【专利附图】

【附图说明】
[0029]图1为本发明的实现智能网关中下挂设备上下线状态快速侦测的方法的流程图。
[0030]图2为本发明的实现智能网关中下挂设备上下线状态快速侦测的方法的

【具体实施方式】
[0031 ] 为了能够更清楚地描述本发明的技术内容,下面结合具体实施例来进行进一步的描述。
[0032]为了实现上述目的,需要设计应用层守护进程,用来与内核通信。使用NETLINK技术完成与内核通信,可以使FDB (Forwarding DataBase,转发数据库)变更消息通过NETLINK方式传递给应用层。应用层进程通过监听链路层Socket,判断设备是否还在线。
[0033]本发明的实现智能网关中下挂设备上下线状态快速侦测的方法包括以下步骤:
[0034](I)应用层守护进程启动后与基于内核的转发数据库相连接并监听链路层数据包;
[0035](2)基于内核的转发数据库的条目发生改变时通知所述的应用层守护进程;
[0036](3)所述的应用层守护进程修改条目信息并于在线列表数据库中修改条目对应的设备信息;
[0037](4)所述的应用层守护进程向对应的设备发起探测并根据是否接收到设备对应的链路层数据包判断设备是否在线。
[0038]在一种较佳的实施方式中,所述的基于内核的转发数据库的条目发生改变时通知所述的应用层守护进程,具体为:
[0039]基于内核的转发数据库的条目发生改变时通过NETLINK套接字的方式通知所述的应用层守护进程。
[0040]在一种较佳的实施方式中,所述的应用层守护进程修改条目信息并于在线列表数据库中修改条目对应的设备信息,包括以下步骤:
[0041 ] (3-1)所述的应用层守护进程判断转发数据库中条目改变状态,如果是添加条目,则继续步骤(3-2),如果是删除条目,则继续步骤(3-3);
[0042](3-2)所述的应用层守护进程添加条目信息并于在线列表数据库中添加对应的设备,然后继续步骤⑷;
[0043](3-3)所述的应用层守护进程删除条目信息并于在线列表数据库中去除对应的设备,然后继续步骤(4)。
[0044]在一种较佳的实施方式中,所述的应用层守护进程向对应的设备发起探测,具体为:
[0045]所述的应用层守护进程向对应的设备发起探测并设置定时器。
[0046]在一种更佳的实施方式中,所述的根据是否接收到设备对应的链路层数据包判断设备是否在线,包括以下步骤:
[0047](4-1)所述的应用层守护进程判断在定时器超时之前是否收到设备对应的链路层数据包,如果是,则继续步骤(4-2),否则继续步骤(4-3);
[0048](4-2)所述的应用层守护进程保持此设备状态为在线状态;
[0049](4-3)所述的应用层守护进程将此设备状态设置为离线状态。
[0050]在一种更进一步的实施方式中,所述的应用层守护进程保持此设备状态为在线状态,包括以下步骤:
[0051](4-2-1)所述的应用层守护进程将接收到的链路层数据包进行解析;
[0052](4-2-2)所述的应用层守护进程重置探测的定时器并设置探测信息发送间隔和次数。
[0053]在一种较佳的实施方式中,所述的步骤(4)之后,还包括以下步骤:
[0054](5)客户端通过所述的应用层守护进程查询智能网关中上网设备的效率。
[0055]下面,以一个具体实施例来进一步介绍本发明。如图1所示,具体步骤如下。
[0056](I)应用层守护进程启动后,建议与内核的NETLINK连接,并监听链路层Socket。然后进入select阻塞状态,等待接收消息。
[0057](2)内核FDB条目发生改变时(添加、删除),使用NETLINK通知应用层守护进程,守护进程,收到消息后处理添加条目消息,把设备加入在线列表数据库中。
[0058](3)守护进程接收到链路层数据包(arp,icmp_v6)后,解析数据包,根据MAC地址在数据库找到相关条目,并重置发送ARP或ICMP_V6的定时器。为了增加操作的可靠性,可以设置发送间隔和次数。
[0059](4)如果在定时器超时之前收到链路层数据包,则重置定时器,继续发起探测。如果在规定时间内,没有收到下挂设备的响应,即定时器超时,则将此设备状态设置为离线。
[0060](5)对于离线状态的设备,如果再次收到其链路层数据包,则认为其重新上线,守护进程更新此设备的在线状态。
[0061](6)FDB发送FDB条目删除消息后,则应用层守护进程也删除对应的条目。设备再次上线时会重复步骤(2)操作,进入新的探测。
[0062]图2中各个标号解释如下:
[0063]1:客户端查询信息通道;
[0064]2:应用层守护进程,用来完成设备上下线信息处理与数据保存的核心实现;
[0065]3:下挂设备信息数据库,用来保存所有设备的上下线基本信息,一方面为I查询通道提供信息,另一方面使用6中通道,定时发送探测包;
[0066]4:NETLINK通道-FDB通知,用于传输内核主动上报FDB条目变更信息;
[0067]5:链路层SOCKET监听通道,监听ARP或ICMP_V6信息用来更新3中查询定时器;
[0068]6:探测包定时发送通道,3中设备定时发送探测包的socket通道。
[0069]采用了该发明中的实现智能网关中下挂设备上下线状态快速侦测的方法,提供了一种基于内核FDB主动通知与链路层定时在线探测技术的方法,快速准确的识别上网设备当前状态,内核FDB主动通知给应用层,一方面可以提高应用层(如手机客户端)查询网关上网设备的效率,另一方面也解决了 DHCP协议不能识别静态IP设备的问题,链路层在线探测技术则可以有效的侦测到设备是否已经离线,具有更广泛的应用范围。
[0070]在此说明书中,本发明已参照其特定的实施例作了描述。但是,很显然仍可以作出各种修改和变换而不背离本发明的精神和范围。因此,说明书和附图应被认为是说明性的而非限制性的。
【权利要求】
1.一种实现智能网关中下挂设备上下线状态快速侦测的方法,其特征在于,所述的方法包括以下步骤: (1)应用层守护进程启动后与基于内核的转发数据库相连接并监听链路层数据包; (2)基于内核的转发数据库的条目发生改变时通知所述的应用层守护进程; (3)所述的应用层守护进程修改条目信息并于在线列表数据库中修改条目对应的设备信息; (4)所述的应用层守护进程向对应的设备发起探测并根据是否接收到设备对应的链路层数据包判断设备是否在线。
2.根据权利要求1所述的实现智能网关中下挂设备上下线状态快速侦测的方法,其特征在于,所述的基于内核的转发数据库的条目发生改变时通知所述的应用层守护进程,具体为: 基于内核的转发数据库的条目发生改变时通过NETLINK套接字的方式通知所述的应用层守护进程。
3.根据权利要求1所述的实现智能网关中下挂设备上下线状态快速侦测的方法,其特征在于,所述的应用层守护进程修改条目信息并于在线列表数据库中修改条目对应的设备信息,包括以下步骤: (3-1)所述的应用层守护进程判断转发数据库中条目改变状态,如果是添加条目,则继续步骤(3-2),如果是删除条目,则继续步骤(3-3); (3-2)所述的应用层守护进程添加条目信息并于在线列表数据库中添加对应的设备,然后继续步骤(4); (3-3)所述的应用层守护进程删除条目信息并于在线列表数据库中去除对应的设备,然后继续步骤(4)。
4.根据权利要求1所述的实现智能网关中下挂设备上下线状态快速侦测的方法,其特征在于,所述的应用层守护进程向对应的设备发起探测,具体为: 所述的应用层守护进程向对应的设备发起探测并设置定时器。
5.根据权利要求4所述的实现智能网关中下挂设备上下线状态快速侦测的方法,其特征在于,所述的根据是否接收到设备对应的链路层数据包判断设备是否在线,包括以下步骤: (4-1)所述的应用层守护进程判断在定时器超时之前是否收到设备对应的链路层数据包,如果是,则继续步骤(4-2),否则继续步骤(4-3); (4-2)所述的应用层守护进程保持此设备状态为在线状态; (4-3)所述的应用层守护进程将此设备状态设置为离线状态。
6.根据权利要求5所述的实现智能网关中下挂设备上下线状态快速侦测的方法,其特征在于,所述的应用层守护进程保持此设备状态为在线状态,包括以下步骤: (4-2-1)所述的应用层守护进程将接收到的链路层数据包进行解析; (4-2-2)所述的应用层守护进程重置探测的定时器并设置探测信息发送间隔和次数。
7.根据权利要求1所述的实现智能网关中下挂设备上下线状态快速侦测的方法,其特征在于,所述的步骤(4)之后,还包括以下步骤: (5)客户端通过所述的应用层守护进程查询智能网关中上网设备的效率。
【文档编号】H04L12/26GK104468280SQ201410809500
【公开日】2015年3月25日 申请日期:2014年12月19日 优先权日:2014年12月19日
【发明者】李庆洋, 张定理, 晏春平 申请人:上海市共进通信技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1