一种通过构建hash链表获取终端属性的方法及系统技术方案

技术编号:27692353 阅读:29 留言:0更新日期:2021-03-17 04:50
本发明专利技术涉及通信技术领域,尤其涉及一种通过构建hash链表获取终端属性的方法及系统。所述方法包括:服务端根据获取到的第一局端模块的MAC地址,查询预设的hash链表,所述hash链表存储有与MAC地址相关联的hash结点,所述hash结点包括局端模块及与其连接的终端模块属性信息;若所述hash链表的hash结点中存在所述第一局端模块的MAC地址相关联的第一hash结点,获取第一hash结点,解析得到第一hash结点对应的第一局端模块及与其连接的终端模块属性信息。通过设置hash链表,所述hash链表存储有与MAC地址相关联的hash结点,可支持批量获取,且提供毫秒级的快速查询服务,极大地提高用户的体验感。

【技术实现步骤摘要】
一种通过构建hash链表获取终端属性的方法及系统本案是以申请日为2017.02.15,申请号为201710080404.X,名称为《一种获取终端属性的方法及系统》的专利申请为母案的分案申请。
本专利技术涉及通信
,尤其涉及一种通过构建hash链表获取终端属性的方法及系统。
技术介绍
随着国家对三网融合与双向改造的大力推行,在用户对语音、数据与视频等多媒体综合业务需求的驱动下,PON(PassiveOpticalNetwork)+EOC(EthernetOverCoax)的网络架构被应用得越来越广泛。其中,位于用户侧的EOC网络主要由局端设备与终端设备构成,局端设备基于EOC技术协议栈通过EOC模块与终端设备中的EOC模块建立EOC网络通信,达到在同轴电缆上传输以太网数据的目的。每个局端设备可支持多个EOC模块,一般分为单模、双模以及四模局端,而每个局端EOC模块可下联最多64台终端设备。在多模块局端批量终端的应用场景下,用户对所有终端设备的配置信息进行实时查询是件巨大的耗时工程,每台终端设备的配置信息查询都需要通过局端设备作为中间代理进行实时查询,实测每次每台终端查询大约需要2秒,以四模块局端为例,最多满配256台终端,大致耗时8分多钟,耗费了大量的查询时间,降低了用户的体验感。因此,提供一种合理简单的多模块局端下实现批量终端快速获取属性的方法势在必行。现有技术中针对多模块局端下实现批量终端快速获取属性的方法,主要有以下几种方式:1、通过单线程查询,数据库缓存方式,具体是:用户触发查询请求,局端设备上以单线程方式搜索局端设备,同时依次把局端设备每个模块及其下联所有终端设备的配置信息一起获取,并存入数据库中,用户再从数据库中查询配置信息。此种技术方案最大的缺点是在终端设备数量较大的情况下,首次查询时搜索设备耗费时间长,用户体验差。同时,在新终端上线的情况下需要重新全局搜索并更新数据库。另外,数据库的引入增加了系统复杂度与开发管理成本。2、通过多线程查询,数据库缓存方式,具体是:与上述方案相比,此种技术方案引入多线程技术,在搜索局端设备的同时,针对每个局端模块及其下联终端设备的配置信息查询新建一个线程,在新线程中执行上述方案的操作。此种技术方案能够提高整体查询效率,但同时也存在相应的不足:首先,多线程的引入增加了系统的负载与线程间互斥引起的锁管理难度;其次,线程间的切换调度难以保证新终端上线能够及时被检索到并实时更新至数据库中,导致用户需要进行多次刷新才可以读取到完整的终端属性信息。3、基于简单网络管理协议的EOC网络管理系统,如图1所示,此种技术方案采取的办法是:在新的终端设备接入所述的EOC网络时,新的终端设备向局端设备发出一个基于简单网络管理协议的基本信息广播包,局端设备接收该广播包后,将新的终端设备的基本信息存入局端存储模块,并由网络拓扑图生成模块生成新的终端拓扑图,并将新的终端拓扑图通过显示模块显示。该技术方案能够很好的解决新终端上线引入的重新扫描问题,缩短EOC网络中终端设备配置信息的读取时间。但是,该技术方案最大的弊端在于需要修改现有终端的软件架构,增加了系统结构的复杂度,同时大大降低了系统的兼容性。
技术实现思路
本专利技术所要解决的技术问题是:提供一种快速获取终端属性的方法及系统。为了解决上述技术问题,本专利技术采用的技术方案为:一种通过构建hash链表获取终端属性的方法,包括:步骤1、服务端根据获取到的第一局端模块的MAC地址,查询预设的hash链表,所述hash链表存储有与MAC地址相关联的hash结点,所述hash结点包括局端模块及与其连接的终端模块属性信息;步骤2、若所述hash链表的hash结点中存在所述第一局端模块的MAC地址相关联的第一hash结点,获取第一hash结点,解析得到第一hash结点对应的第一局端模块及与其连接的终端模块属性信息。本专利技术采用的另一技术方案为:一种通过构建hash链表获取终端属性的系统,包括:获取模块和解析模块;所述获取模块,用于服务端根据获取到的第一局端模块的MAC地址,查询预设的hash链表,所述hash链表存储有与MAC地址相关联的hash结点,所述hash结点包括局端模块及与其连接的终端模块属性信息;所述解析模块,用于若所述hash链表的hash结点中存在所述第一局端模块的MAC地址相关联的第一hash结点,获取第一hash结点,解析得到第一hash结点对应的第一局端模块及与其连接的终端模块属性信息。本专利技术的有益效果在于:区别于现有技术,本专利技术提供了一种通过构建hash链表获取终端属性的方法及系统,通过设置hash链表,所述hash链表存储有与MAC地址相关联的hash结点,所述hash结点包括局端模块及与其连接的终端模块属性信息,通过判断hash链表是否存在局端模块的MAC地址对应的结点,可支持批量获取,其显著特点是提供毫秒级的快速查询服务,极大地提高用户的体验感。附图说明图1为本专利技术
技术介绍
的基于简单网络管理协议的EOC网络管理系统的结构框图;图2为本专利技术的一种通过构建hash链表获取终端属性的方法的步骤流程图;图3为本专利技术的一种通过构建hash链表获取终端属性的系统的结构示意图;图4是本专利技术具体实施方式的实施例一的获取终端属性的方法的流程图;图5是本专利技术具体实施方式的实施例一的获取终端属性的方法的hash链表图;图6为本专利技术的EOC网络管理系统的结构框图;标号说明:1、获取模块;2、解析模块。具体实施方式为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。本专利技术最关键的构思在于:通过设置hash链表,所述hash链表存储有与MAC地址相关联的hash结点,可支持批量获取,且提供毫秒级的快速查询服务,极大地提高用户的体验感。请参照图2,本专利技术提供的一种通过构建hash链表获取终端属性的方法,包括:步骤1、服务端根据获取到的第一局端模块的MAC地址,查询预设的hash链表,所述hash链表存储有与MAC地址相关联的hash结点,所述hash结点包括局端模块及与其连接的终端模块属性信息;步骤2、若所述hash链表的hash结点中存在所述第一局端模块的MAC地址相关联的第一hash结点,获取第一hash结点,解析得到第一hash结点对应的第一局端模块及与其连接的终端模块属性信息。从上述描述可知,本专利技术的有益效果在于:区别于现有技术,本专利技术提供的一种通过构建hash链表获取终端属性的方法,通过设置hash链表,所述hash链表存储有与MAC地址相关联的hash结点,所述hash结点包括局端模块及与其连接的终端模块属性信息,通过判断hash链表是否存在局端模块的MAC地址对应的结点,可支持批量获取,其显著特点是提供毫秒级的快速查询服务,极大地提高用户的体验感。系统不采用多模块多线程管理机制,本文档来自技高网
...

【技术保护点】
1.一种通过构建hash链表获取终端属性的方法,其特征在于,包括:/n步骤1、预设hash链表,具体包括以下步骤:/n步骤11、服务端判断是否接收到客户端发送的查询请求,若是,获取局端模块及与其连接的终端模块属性信息,记录局端模块的MAC地址;/n步骤12、根据所述局端模块的MAC地址计算得到hash链表中的hash结点的散列值;/n步骤13、根据步骤12的散列值查询hash链表,判断所述hash链表是否存在与散列值相同的hash结点,若否,则所述局端模块的MAC地址对应的hash结点为新的结点,记录新的结点的获取时间,将新的结点插入至hash链表中,更新hash链表的结点信息至缓存文件;/n所述hash链表为拉链式hash链表,所述拉链式hash链表由哈希函数计算hash值构建得到;/n所述哈希函数的公式为:(hmac[5]+(hmac[4]*256))%HASHTABLE_LEN,其中,hmac为局端模块的MAC地址构成的数组;HASHTABLE_LEN为hash链表的大小,其值为280;/n每个所述hash链表中的hash结点由模块属性信息、hash结点创建时间以及指向下一个hash结点的指针构成;所述模块属性信息由局端模块及其下联终端模块属性信息构成的链表;所述hash结点创建时间用于判断hash结点是否超时;/n步骤2、服务端根据获取到的第一局端模块的MAC地址,查询所述预设的hash链表,若所述hash链表的hash结点中存在所述第一局端模块的MAC地址相关联的第一hash结点,获取第一hash结点,解析得到第一hash结点对应的第一局端模块及与其连接的终端模块属性信息。/n...

【技术特征摘要】
1.一种通过构建hash链表获取终端属性的方法,其特征在于,包括:
步骤1、预设hash链表,具体包括以下步骤:
步骤11、服务端判断是否接收到客户端发送的查询请求,若是,获取局端模块及与其连接的终端模块属性信息,记录局端模块的MAC地址;
步骤12、根据所述局端模块的MAC地址计算得到hash链表中的hash结点的散列值;
步骤13、根据步骤12的散列值查询hash链表,判断所述hash链表是否存在与散列值相同的hash结点,若否,则所述局端模块的MAC地址对应的hash结点为新的结点,记录新的结点的获取时间,将新的结点插入至hash链表中,更新hash链表的结点信息至缓存文件;
所述hash链表为拉链式hash链表,所述拉链式hash链表由哈希函数计算hash值构建得到;
所述哈希函数的公式为:(hmac[5]+(hmac[4]*256))%HASHTABLE_LEN,其中,hmac为局端模块的MAC地址构成的数组;HASHTABLE_LEN为hash链表的大小,其值为280;
每个所述hash链表中的hash结点由模块属性信息、hash结点创建时间以及指向下一个hash结点的指针构成;所述模块属性信息由局端模块及其下联终端模块属性信息构成的链表;所述hash结点创建时间用于判断hash结点是否超时;
步骤2、服务端根据获取到的第一局端模块的MAC地址,查询所述预设的hash链表,若所述hash链表的hash结点中存在所述第一局端模块的MAC地址相关联的第一hash结点,获取第一hash结点,解析得到第一hash结点对应的第一局端模块及与其连接的终端模块属性信息。


2.根据权利要求1所述的一种通过构建hash链表获取终端属性的方法,其特征在于,所述步骤12还包括:根据每个结点的获取时间,判断结点是否超时,若是,删除已超时的结点。


3.根据权利要求1所述的一种通过构建hash链表获取终端属性的方法,其特征在于,所述步骤11具体为:
以阻塞方式等待模块管理客户端进程的模块属性信息查询请求;
判断是否有所述模块管理客户端进程的查询请求,若是,扫描局端模块基本信息并记录局端模块对应的MAC地址。


4.根据权利要求3所述的一种通过构建hash链表获取终端属性的方法,其特征在于,还包括:创建系统进程间socket服务,并开启端口监听,用于接收所述模块管理客户端进程的查询请求。


5.一...

【专利技术属性】
技术研发人员:曹宇凯林艳许锡顺
申请(专利权)人:金钱猫科技股份有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1