具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。在本发明的一个附图或一种实施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。应当注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描述。基于本发明中的实施例,本领域普通技术人员在没有付出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例一提供的局域网内服务信息的自动获取方法的流程图。如图1所示,本实施例提供的局域网内服务信息的自动获取方法包括:
步骤11:在设备接入局域网时向所述局域网内广播其心跳信息。
步骤12:如果所述设备接收到所述局域网内任一其他设备单播的服务信息获取请求,则向所述其他设备单播所述设备的服务信息,以及向所述其他设备单播服务信息获取请求、接收并存储所述其他设备单播的所述其他设备的服务信息。
在设备通过有线或无线方式接入局域网时,该设备向局域网内广播该设备的心跳信息,该心跳信息可包括该设备的标识信息,如该设备的网卡物理地址(即媒体接入层上使用的地址,Media Access Control,简称MAC地址)等。局域网内各其他设备均可接收到该心跳信息。如果局域网内的任一其他设备需要获取该设备的服务信息,则会向该设备单播服务信息获取请求,此时,该设备和该其他设备之间采用单播交互的方式获取彼此的服务信息。
服务信息可包括但不限于:设备可提供的服务类型、每个服务绑定的端口、每个服务遵循的通讯协议等信息。服务信息的存储方式不受限制,例如服务信息可存储在设备本地缓存或者数据库上。在获取了服务信息之后,局域网内的各设备之间就可以基于服务信息访问相关设备对外提供的服务,以满足实际应用的需求。
由此可见,本实施例提供的技术方案通过上线广播和单播交互相结合的方式,实现了局域网内设备服务信息的自动获取,省去了服务信息手工查询和配置的繁琐操作,提高了服务信息获取的效率;此外,本实施例提供的技术方案可在设备接入局域网时就获取其服务信息,提高了服务信息获取的及时性。
进一步的,在所述设备接入所述局域网后,如果所述设备接收到所述局域网内的其他设备的心跳信息,则检查已存储的信息中是否存在与所述其他设备的心跳信息匹配的服务信息。如果有,则在已存储的信息中更新所述其他设备的在线时间戳;否则,向所述其他设备单播服务信息获取请求、接收并存储所述其他设备的服务信息,以及在接收到所述其他设备单播的服务信息获取请求时,向所述其他设备单播所述设备的服务信息。该方案可在保证设备和其他设备之间自动获取彼此服务信息的基础上,尽可能减少信息交互(如在已存储的信息中存在与所述其他设备的心跳信息匹配的服务信息时,仅更新所述其他设备的在线时间戳),由此减少了服务信息获取过程中的流量消耗。
可选的,局域网内的任一设备均可在接入所述局域网后,以一定时长为间隔向所述局域网内周期性广播其心跳信息。该方案中,局域网中的任一设备通过广播其心跳信息的方式,一方面可将该设备当前处于在线状态的信息通知局域网内的其他设备,另一方面也便于其他设备向该设备发起获取服务信息的交互流程。
可选的,局域网中任一的设备的心跳信息可包括该设备的标识,如该设备的MAC地址和/或IP(网络之间互连的协议,Internet Protocol)地址等信息。例如,如果该设备的IP地址发生变化,该设备广播的心跳信息可包括:所述设备的MAC地址和更新后的IP地址。该方案通过广播其心跳信息的方式,可向局域网内的其他设备通知自身IP地址的更新信息,以保证IP地址更新的及时性。
在某一设备接入所述局域网后,如果接收局域网内任一其他设备广播的心跳信息,则根据所述其他设备的心跳信息获取所述其他设备的MAC地址和IP地址。在已存储的信息中查找与所述其他设备的MAC地址对应的IP地址,比较查到的IP地址与从心跳信息获取的IP地址是否一致;如果二者不一致,则将查到的IP地址更新为从心跳信息获取的IP地址;如果一致,可不进行处理。该方案通过接收心跳信息中携带更新后的IP地址的方式,消耗较小能量即可获取局域网内的其他设备IP地址的更新信息,以保证IP地址更新的及时性。
可选的,局域网内的任一设备在接入所述局域网后,以一定时长为间隔周期性检查局域网内的其他设备的上下线状态;如果根据检查结果确定其他设备当前已经下线,则在已存储的信息中删除所述其他设备的服务信息,否则,在已存储的信息中更新其他设备的在线时间戳。访问某一设备提供的服务,需要获知该设备是否上线,采用该方案可及时更新局域网内各设备的上下线状态。
可选的,局域网内的任一设备每次所述检查局域网内的任一其他设备的上下线状态,包括:该设备计算当前检查时刻和已存储信息中所述其他设备的在线时间戳之间的时间间隔;如果所述时间间隔大于指定时长门限值,则向所述其他设备单播信息获取请求;如果接收到所述其他设备的信息获取响应,则确定所述其他设备当前在线,否则,重复执行本步骤直至已向所述其他设备单播N次信息获取请求且均未收到所述其他设备的信息获取响应,确定所述其他设备当前已经下线,N为大于1的整数。该方案在判断设备下线是经多次尝试再下结论,有利于提高设备上下线状态判断的准确性。
可选的,局域网内的任一设备在接入所述局域网后,如果所述设备的服务信息发生变化,则向所述局域网内广播所述设备的服务信息更新包。该方案通过广播其服务信息更新包的方式,可向局域网内的其他设备通知自身服务信息的更新信息,以保证服务信息更新的及时性。
在局域网内的任一设备接入所述局域网后,如果接收局域网内任一其他设备广播的服务信息更新包,则检查已存储所述其他设备的服务信息中是否存在已收到的服务信息更新包指向的服务信息;如果有,则对指向的服务信息进行更新;否则,在已存储的所述其他设备的服务信息中增加已收到的服务信息更新包的相关内容。该方案在设备已接入局域网后,消耗较小流量即可及时获取其他设备的服务信息的更新信息,且可保证服务信息更新的及时性。
下面从设备入网、保活、离线、更新服务、更新IP等五个基本交互流程,说明本发明实施例的可选应用场景。
图2为本发明实施例二提供的设备入网交互流程的示意图。本实施中,设备A为接入局域网的设备,设备B为已接入局域网的设备。可选的场景例如:设备A执行开机、插入网线或连接WiFi(无线高保真技术,Wireless Fidelity)等操作接入局域网时,局域网内的其他设备如设备B尚未发现设备A,此时可通过以下流程自动获取双方的服务信息。如图2所示,本实施例提供的设备入网交互流程包括:
步骤21:设备A向局域网内广播其心跳信息,该心跳信息包括设备A的MAC地址等标识信息。
步骤22:设备B通过MAC地址检查已存储的信息中是否存在与设备A的心跳信息匹配的服务信息,如果没有,则在本地缓存或数据库中新建设备A的节点(可包括但不限于设备A的MAC地址、IP地址、在线时间戳等项目)。
步骤23:设备B向设备A以单播方式向设备A发送服务信息获取请求。
步骤24:设备A向设备B以单播方式返回设备A的服务信息。
步骤25:设备B将收到的服务信息存储到其新建的设备A的节点的相关项目中。
步骤26:设备B以单播方式向设备A发送设备B的心跳信息。
步骤27:设备A在本地缓存或数据库中新建设备B的节点(可包括但不限于设备A的MAC地址、IP地址、在线时间戳等项目)。
步骤28:设备A以单播方式向设备B发送服务信息获取请求。
步骤29:设备B以单播方式向设备A返回设备B的服务信息。
步骤210:设备A将收到的服务信息存储到其新建的设备B的节点的相关项目中。
本实施例提供的技术方案通过设备A上线广播、以及设备A和设备B单播交互相结合的方式,实现了局域网内设备服务信息的自动获取,省去了服务信息手工查询和配置的繁琐操作,提高了服务信息获取的效率;此外,由于可在设备接入局域网时就获取其服务信息,提高了服务信息获取的及时性。
图3为本发明实施例三提供的设备保活交互流程的示意图。本实施中,设备A和设备B均为已接入局域网的设备。局域网的某一设备(如设备A)为了让局域网内的其他设备(如设备B)知道自己仍然在线,可执行以下保活交互流程。如图3所示,本实施例提供的设备入网交互流程包括:
步骤31:设备A每隔一定时间间隔周期性向局域网内广播其心跳信息,该心跳信息包括设备A的MAC地址等标识信息。
步骤32:设备B以MAC地址为索引在其已存储的信息中查找到设备A的节点。
步骤33:设备B更新查找到的节点中存储的设备A的在线时间戳,如将查找到的节点中存储的设备A的在线时间戳更新为当前时刻。
本实施例已接入局域网的设备通过微小的流量,即可将该设备当前处于在线状态的信息通知局域网内的其他设备,以便于其他设备获取该设备的在线状态。
图4为本发明实施例四提供的设备下线(或称为离线)判断交互流程的示意图。可能存在的应用场景例如,局域网的某一设备(如设备A)执行关机、拔出网线或断开WiFi连接等操作而断开局域网的连接时,局域网内的其他在线设备(如设备B)尚未发现设备A已经下线,此时可执行以下流程判断设备A的上下线状态。如图4所示,本实施例提供的设备下线判断交互流程包括:
步骤41:设备B计算当前检查时刻和已存储信息中设备A的在线时间戳之间的时间间隔。
步骤42:如果所述时间间隔大于指定时长门限值,则设备B以单播方式向设备A发送信息获取请求(如MAC地址请求包)。
步骤43:如果超时了仍然未收到设备A的信息获取响应,则设备B再次以单播方式向设备A发送信息获取请求(如MAC地址请求包)。
如果超时前收到设备A的信息获取响应,则更新设备B本地缓存或数据库中设备A的节点的在线时间戳(图中未示出)。
步骤44:如果超时了仍然未收到设备A的信息获取响应,则设备B在其本地缓存或数据库中删除设备A的节点。
如果超时前收到设备A的信息获取响应,则更新设备B本地缓存或数据库中设备A的节点的在线时间戳(图中未示出)。
本实施例在判断设备下线是经多次尝试再下结论,有利于提高设备上下线状态判断的准确性。
图5为本发明实施例五提供的设备更新服务交互流程的示意图。可能存在的应用场景例如,局域网的某一设备(如设备A)内有服务开启、关闭或内容变更等变化时,局域网内的其他在线设备(如设备B)尚未发现设备A内的服务发生了变化,此时可执行以下流程进行服务更新。如图5所示,本实施例提供的设备更新服务交互流程包括:
步骤51:设备A向局域网内广播其服务信息更新包,该服务信息更新包中可包括如MAC地址等设备A的标识信息。
步骤52:设备B以MAC地址为索引,在其本地缓存或数据库已存储的信息中找到设备A的节点。
步骤53:设备B检查本地缓存或数据库中设备A的节点已存储的信息中是否存在已收到的服务信息更新包指向的服务信息,如果是,则执行步骤54,否则,执行步骤55。
步骤54:设备B对指向的服务信息进行更新,如更新其本地缓存或数据库中设备A的节点的服务列表等。
步骤55:设备B在其本地缓存或数据库已建的设备A的节点已存储的服务信息中增加已收到的服务信息更新包的相关内容,如将已收到的服务信息更新包指向的服务信息插入到其本地缓存或数据库中设备A的节点的服务列表中等。
图6为本发明实施例流提供的设备更新IP地址的交互流程的示意图。可能存在的应用场景例如,局域网的某一设备(如设备A)的IP地址发生变化,局域网内的其他在线设备(如设备B)尚未发现设备A的IP地址发生了变化,此时可执行以下流程进行IP地址更新。如图6所示,本实施例提供的设备更新IP地址的交互流程包括:
步骤61:设备A每隔一定时间间隔周期性向局域网内广播其心跳信息,该心跳信息包括设备A的MAC地址和IP地址等信息。
步骤62:设备B根据设备A的心跳信息,获取设备A的MAC地址和IP地址,以MAC地址为索引在其已存储的信息中查找到设备A的节点。
步骤63:设备B比较查到的节点中的IP地址与从心跳信息获取的IP地址是否一致;如果二者不一致,则将查到的节点中的IP地址更新为从心跳信息获取的IP地址;如果二者一致,则不进行处理。
本实施例已接入局域网的设备通过微小的流量,即可将该设备当前的IP地址变更的信息通知局域网内的其他设备,以便于其他设备获取该设备更新后的IP地址。本实施例的流程可为一独立流程,或者,可与如图3所示的保活交互流程发生在同一时机,本发明对此并不限制。
图7为本发明实施例七提供的一种设备的可选结构示意图。如图7所示,本实施例提供的设备包括:入网广播模块71和服务信息交互模块72。
入网广播模块71用于在设备接入局域网时向所述局域网内广播其心跳信息。
服务信息交互模块72用于如果所述设备接收到所述局域网内任一其他设备单播的服务信息获取请求,则向所述其他设备单播所述设备的服务信息,以及向所述其他设备单播服务信息获取请求、接收并存储所述其他设备单播的所述其他设备的服务信息。
本实施例中设备通过上线广播和单播交互相结合的方式,实现了局域网内设备间服务信息的自动获取,省去了服务信息手工查询和配置的繁琐操作,提高了服务信息获取的效率;此外,本实施例提供的技术方案可在设备接入局域网时就获取其服务信息,提高了服务信息获取的及时性。
进一步的,所述服务信息交互模块72还用于在所述设备接入所述局域网后,如果所述设备接收到所述局域网内的其他设备的心跳信息,则检查已存储的信息中是否存在与所述其他设备的心跳信息匹配的服务信息;如果有,则在已存储的信息中更新所述其他设备的在线时间戳;否则,向所述其他设备单播服务信息获取请求、接收并存储所述其他设备的服务信息,以及在接收到所述其他设备单播的服务信息获取请求时,向所述其他设备单播所述设备的服务信息。该方案可在保证设备和其他设备之间自动获取彼此服务信息的基础上,尽可能减少信息交互(如在已存储的信息中存在与所述其他设备的心跳信息匹配的服务信息时,仅更新所述其他设备的在线时间戳),由此减少了服务信息获取过程中的流量消耗。
可选的,所述设备还包括:在线保活模块73。在线保活模块73用于在所述设备接入所述局域网后,以一定时长为间隔向所述局域网内周期性广播其心跳信息。该方案一方面可将该设备当前处于在线状态的信息通知局域网内的其他设备,另一方面也便于其他设备向该设备发起获取服务信息的交互流程。
可选的,局域网中任一的设备的心跳信息可包括该设备的标识,如该设备的MAC地址和/或IP地址等信息。例如,如果该设备的IP地址发生变化,该设备广播的心跳信息可包括:所述设备的MAC地址和更新后的IP地址。该方案通过广播其心跳信息的方式,可向局域网内的其他设备通知自身IP地址的更新信息,以保证IP地址更新的及时性。
可选的,所述设备还可包括:IP地址自动更新模块74。IP地址自动更新模块74用于在所述设备接入所述局域网后,如果接收所述其他设备广播的心跳信息,则根据所述其他设备的心跳信息获取所述其他设备的MAC地址和IP地址;在已存储的信息中查找与所述其他设备的MAC地址对应的IP地址,比较查到的IP地址与从心跳信息获取的IP地址是否一致,如果二者不一致,则将查到的IP地址更新为从心跳信息获取的IP地址;如果一致,可不进行处理。该方案通过接收心跳信息中携带更新后的IP地址的方式,消耗较小能量即可获取局域网内的其他设备IP地址的更新信息,以保证IP地址更新的及时性。
可选的,所述设备还可包括:上下线自动检查模块75。上下线自动检查模块75用于在所述设备接入所述局域网后,以一定时长为间隔周期性检查所述其他设备的上下线状态;如果根据检查结果确定其他设备当前已经下线,则在已存储的信息中删除所述其他设备的服务信息,否则,在已存储的信息中更新其他设备的在线时间戳。访问某一设备提供的服务,需要获知该设备是否上线,采用该方案可及时更新局域网内各设备的上下线状态。
所述上下线自动检查模块每次所述检查其他设备的上下线状态时,具体用于计算当前检查时刻和已存储信息中所述其他设备的在线时间戳之间的时间间隔;如果所述时间间隔大于指定时长门限值,则向所述其他设备单播信息获取请求;如果接收到所述其他设备的信息获取响应,则确定所述其他设备当前在线,否则,重复执行本步骤直至已向所述其他设备单播N次信息获取请求且均未收到所述其他设备的信息获取响应,确定所述其他设备当前已经下线,N为大于1的整数。该方案在判断设备下线是经多次尝试再下结论,有利于提高设备上下线状态判断的准确性。
可选的,所述设备还可包括:服务信息更新模块76。服务信息更新模块76用于在所述设备接入所述局域网后,如果所述设备的服务信息发生变化,则向所述局域网内广播所述设备的服务信息更新包。该方案通过广播其服务信息更新包的方式,可向局域网内的其他设备通知自身服务信息的更新信息,以保证服务信息更新的及时性。
和/或,服务信息更新模块76可用于在所述设备接入所述局域网后,如果所述设备接收到所述其他设备的服务信息更新包,则检查已存储所述其他设备的服务信息中是否存在已收到的服务信息更新包指向的服务信息;如果有,则对指向的服务信息进行更新;否则,在已存储的所述其他设备的服务信息中增加已收到的服务信息更新包的相关内容。该方案在设备已接入局域网后,消耗较小流量即可及时获取其他设备的服务信息的更新信息,且可保证服务信息更新的及时性。
图8为本发明实施例八提供的局域网内服务信息的自动获取系统的架构示意图,如图8所示,所述局域网内包括至少二个本发明实施例七任一技术方案提供的设备81,设备81间可采用本发明实施一至六任一实施例的任一技术方案提供的方法进行信息交互,其设备结构、设备工作机理、设备间交互流程及可实现的技术效果可参见上文记载,在此不再赘述。
通过以上描述可见,本发明提供的技术方案中,服务信息的主要数据是在设备接入局域网时获取的,其他如服务更新、IP地址更新、在线时间戳更新等仅需通过少量数据交互即可自动获取,需要消耗的流量很少,流程简洁且效率较高。
在本发明上述各实施例中,实施例的序号仅仅便于描述,不代表实施例的优劣。对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
在本发明的装置和方法等实施例中,显然,各部件或各步骤是可以分解、组合和/或分解后重新组合的。这些分解和/或重新组合应视为本发明的等效方案。同时,在上面对本发明具体实施例的描述中,针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其它特征、要素、步骤或组件的存在或附加。
最后应说明的是:虽然以上已经详细说明了本发明及其优点,但是应当理解在不超出由所附的权利要求所限定的本发明的精神和范围的情况下可以进行各种改变、替代和变换。而且,本发明的范围不仅限于说明书所描述的过程、设备、手段、方法和步骤的具体实施例。本领域内的普通技术人员从本发明的公开内容将容易理解,根据本发明可以使用执行与在此所述的相应实施例基本相同的功能或者获得与其基本相同的结果的、现有和将来要被开发的过程、设备、手段、方法或者步骤。因此,所附的权利要求旨在在它们的范围内包括这样的过程、设备、手段、方法或者步骤。