一种显示设备在线时长的控制方法及系统与流程

文档序号:14178930阅读:1223来源:国知局
一种显示设备在线时长的控制方法及系统与流程

本发明涉及通信领域,具体为一种显示设备在线时长的控制方法及系统。



背景技术:

fdb:forwarddatabase,转发表。

ap:accesspoint,无线接入点。

bridge:桥设备。

现有技术的许多主流路由器都具备显示接入终端设备列表的功能,无论是用户还是运营维护,需要在接入终端设备列表中能够看到在线设备的接入时长。

另一方面,现有技术为了解决物联网的大量终端设备在同一时间段内接入网络的情况,需要对终端设备的通信时间进行控制,在预定义的接入时间段内才允许物联网的终端设备接入网络。实际应用中,物联网的终端设备需要5~10分钟的时间就可以完成传输数据的操作,但是接入时间段均较长,例如1小时,这样仍不可避免的会出现大量物联网的终端设备在同一时间占用网络的情况,会造成网络瘫痪。

因此,有必要提供一种可显示接入设备在线时长的方案。



技术实现要素:

为了解决上述技术问题,本发明的目的是提供一种简单高效的显示接入设备在线时长的方法和系统。

本发明所采用的技术方案是:

本发明提供一种显示设备在线时长的控制方法,包括以下步骤:

系统检测到设备接入后,输出指令至linux内核并确立相应的转发表;

所述转发表记录所述设备上线时间;

系统接收到应用层输出的请求查询所述设备在线时长;

所述linux内核进行处理将结果发送至所述应用层,并显示所述设备的在线时长。

作为该技术方案的改进,所述方法还包括:所述linux内核根据所述设备上线时所发报文的mac地址更新桥转发表。

作为该技术方案的改进,所述更新桥转发表根据所述设备上线时所发报文的mac地址查找对应的转发表表项。

作为该技术方案的改进,当系统检测到所述mac地址对应的转发表表项不存在,则创建新的转发表表项。

进一步地,所述转发表记录所述设备上线时间,并将其存放至转发表的成员变量used中。

进一步地,所述方法还包括:所述应用层采用brctl工具,通过ioctl系统调用的方式查询所述设备的在线时长。

进一步地,所述linux内核将系统采集到的当前时间减去所述设备上线时间即得到所述设备的在线时长。

进一步地,所述linux内核将处理结果返回至brctl,所述brctl得到执行结果,显示所述设备的在线时长。

另一方面,本发明还提供一种显示设备在线时长的控制系统,包括:

设备上线处理模块,用于执行步骤系统检测到设备接入后,输出指令至linux内核并确立相应的转发表;所述转发表记录所述设备上线时间;

在线时长计算模块,用于执行步骤系统接收到应用层输出的请求查询所述设备在线时长;所述linux内核进行处理将结果发送至所述应用层,并显示所述设备的在线时长。

本发明的有益效果是:本发明提供的显示设备在线时长的控制方法及系统,通过建立对应的转发表记录设备接入时间,当接收到应用层的在线时长请求时,利用当前时间减去接入时间,即得所述设备的接入时长。本方案基于标准linux内核实现的二层桥转发表即fdb表的基础上,配合开源brctl工具,增加设备的在线时长显示,十分方便、高效且准确。本方案可应用在路由器上基于标准linux内核简单高效的实现显示接入终端设备的在线时长,其也可用于如交换机等系统,可广泛应用于通信领域。

附图说明

下面结合附图对本发明的具体实施方式作进一步说明:

图1是本发明第一实施例的流程控制示意图;

图2是本发明第二实施例的系统示意图。

具体实施方式

需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

参照图1,是本发明第一实施例的流程控制示意图。本发明提供一种显示设备在线时长的控制方法,包括以下步骤:

系统检测到设备接入后,输出指令至linux内核并确立相应的转发表;

所述转发表记录所述设备上线时间;

系统接收到应用层输出的请求查询所述设备在线时长;

所述linux内核进行处理将结果发送至所述应用层,并显示所述设备的在线时长。

作为该技术方案的改进,所述方法还包括:所述linux内核根据所述设备上线时所发报文的mac地址更新桥转发表。

所述方法还包括:所述更新桥转发表根据所述设备上线时所发报文的mac地址查找对应的转发表表项。

作为该技术方案的改进,当系统检测到所述mac地址对应的转发表表项不存在,则创建一新的转发表表项。

进一步地,所述转发表记录所述设备上线时间,并将其存放至转发表的成员变量used中。

进一步地,所述方法还包括:所述应用层采用brctl工具,通过ioctl系统调用的方式查询所述设备的在线时长。

进一步地,所述linux内核将系统采集到的当前时间减去所述设备上线时间即得到所述设备的在线时长。

进一步地,所述linux内核将处理结果返回至brctl,所述brctl得到执行结果,显示所述设备的在线时长。

作为一实施例,本方案可在路由器上基于标准linux内核简单高效的实现显示接入终端设备的在线时长。基于标准linux内核实现二层bridge转发表即fdb表的基础上,配合开源brctl工具,增加设备的在线时长显示。其主要流程如下:

1.系统检测到设备上线;

2.linux内核为设备添加一个fdb表条目;

3.记录设备的上线时间;

4.应用层使用brctl工具,通过ioctl的方式向linux内核查询设备的在线时长;

5.linux内核将当前时间减去设备的上线时间得到设备的在线时长,并将结果返回给brctl;

6.brctl得到执行结果,显示设备的在线时长。

本方案利用标准内核实现的桥转发表进行增量开发,扩展开源工具bridge-utils的brctl的showmacs命令,实现获取设备的在线时长的接口,应用层可以通过开源工具bridge-utils使用“brctlshowmacs[桥接口名]”指令的方式轻松获取设备的在线时长。

为实现本发明,在内核__fdb_entry结构体中添加成员变量up_time,用于记录设备的在线时长:

同样,需要修改应用层开源工具bridge-utils中的fdb_entry结构体,在结构体中添加成员变量up_time用于应用层显示在线时长:

内核收到设备上线的报文,首先会经过内核的桥br_handle_frame处理,首先根据mac地址更新桥转发表fdb,更新桥的fdb会先根据mac地址查找对应的fdb表项,若该mac地址对应的fdb表项不存在,则为该mac地址创建一个新的fdb表项,此时记录下该fdb表项的时间,将其存在fdb表项的成员变量used中;若该mac地址对应的fdb表项存在,则进行更新记录;

应用层通过bridge-utils的brctlshowmacsbr0指令的方式获取桥转发表项,每一项对应着一个在线设备:brctlshowmacs通过ioctl系统调用的方式向内核桥设备获取fdb表项,此时将当前时间减去fdb表项的成员变量used得到设备的在线时长,并存放在__fdb_entry结构体中的成员变量up_time中;应用层获取到内核fdb表的信息并转换成为应用层fdb_entry结构的信息,并将up_time保存在fdb_entry结构体中的成员变量up_time中;最后将设备在线时长up_time输出到标准输出,在终端将显示设备在线时长的结果。

本方案并不限于路由器,其他如交换机、ap等,其均在本方案的保护范围内。

参照图1,所述获取设备在线时长流程,其包括如下步骤:

步骤s1:设备上线发送第一个报文;

步骤s2:路由器接收到设备发送的报文;

步骤s3:路由器在内核二层桥转发表中根据报文的mac地址查找fdb表;

步骤s4:路由器在内核判断mac地址在fdb表是否存在,若找到对应的fdb表项,则进入步骤s7处理,否则进入步骤s5处理;

步骤s5:路由器在内核根据mac地址创建一个新的fdb表项;

步骤s6:路由器记录当前时间到设备mac地址对应的fdb表项目的成员变量used中;

步骤s7:路由器应用层通过开源工具bridge-utils的brctlshowmacsbr0指令的方式获取桥转发表项;

步骤s8:路由器应用层的brctlshowmacs指令通过ioctl系统调用的方式向内核桥设备获取fdb表项;

步骤s9:路由器在内核用当前时间减去fdb表项的成员变量used得到设备的在线时长;

步骤s10:路由器在内核将设备的在线时长保存在__fdb_entry结构体中的成员变量up_time中,并将结果返回至应用层;

步骤s11:路由器应用层获取到设备的在线时长,并保存在fdb_entry结构体中的成员变量up_time中;

步骤s12:路由器应用层将设备在线时长up_time输出到标准输出,在终端将显示设备在线时长的结果;

步骤s13:显示设备在线时长成功。

本方案提供的显示设备在线时长的控制方法,通过建立对应的转发表记录设备接入时间,当接收到应用层的在线时长请求时,利用当前时间减去接入时间,即得所述设备的接入时长。其基于标准linux内核实现的二层桥转发表即fdb表的基础上,配合开源brctl工具,增加设备的在线时长显示,十分方便、高效且准确。本方案可应用在路由器上基于标准linux内核简单高效的实现显示接入终端设备的在线时长,其也可用于如交换机等系统。

参照图2,本发明还提供一种显示设备在线时长的控制系统,包括:

设备上线处理模块,用于执行步骤系统检测到设备接入后,输出指令至linux内核并确立相应的转发表;所述转发表记录所述设备上线时间;

在线时长计算模块,用于执行步骤系统接收到应用层输出的请求查询所述设备在线时长;所述linux内核进行处理将结果发送至所述应用层,并显示所述设备的在线时长。

本发明提供的显示设备在线时长的控制方法及系统,通过建立对应的转发表记录设备接入时间,当接收到应用层的在线时长请求时,利用当前时间减去接入时间,即得所述设备的接入时长。本方案基于标准linux内核实现的二层桥转发表即fdb表的基础上,配合开源brctl工具,增加设备的在线时长显示,十分方便、高效且准确。本方案可应用在路由器上基于标准linux内核简单高效的实现显示接入终端设备的在线时长,其也可用于如交换机等系统,可广泛应用于通信领域。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

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