一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种局域网自组网方法以及装置与流程

2023-01-06 03:02:42 来源:中国专利 TAG:


1.本发明涉及网络通信的一般数据处理领域,尤其是一种局域网自组网方法以及装置。


背景技术:

2.基于tcp/ip 与 udp的互联网协议能满足绝大多部分电子设备交互场景的需求,但是并不能覆盖所有应用场景。由于udp面向的是无链接状态的协议,数据包容易丢失并且安全性得不到保证,无法用于安全性较高的场景。而tcp协议虽然能保证数据安全,但是要求我们总是需要预先知道服务端的ip地址才能建立信息通道。某些固定场景环境中,例如智能家具、智能汽车、远程医疗、智能电网、智慧城市、智慧工厂等场景环境,我们无法在某一刻明确知道所有设备的ip地址,同时电子设备的位置以及局域网内电子设备的数量是高度动态的,使用以上两种协议中的任意一个都不能够满足控制场景中的所有设备的实际需求。
3.目前公开的技术中,已有结合两种协议实现组建家庭局域网的技术,此技术使用手机通过静态的固定服务器控制网内智能设备,同时,也有使用udp协议加速tcp协议网络实现局域网提速的技术。在这些技术背景中,每一台局域网内电子设备需要接入互联网并通过云端服务器控制,这不仅增加了每一台网络设备的功耗而且浪费网络资源。随着局域网场景中电子设备的不断增多和电子设备断链及重连常态化,同时网络场景的复杂度的不断提升,使用静态的固定服务器的网络架构时常发生网络设备无法连接至中央设备(或者连接状态不佳导致等待时间过长),甚至偶有出现中央设备断开局域网导致整体网络断链的现象。以上现象说明,此类局域网架构的实用性开始不能满足局域网设备动态变化的实际应用现状。


技术实现要素:

4.本技术提供了一种局域网自组网方法以及装置,能够动态调整局域网的组网方式,适应不同环境以及使用需求。
5.第一方面,提供了一种局域网自组网方法,包括:中央设备接收第一网络设备发送的第一网络协议报文,其中,所述第一网络协议报文包括第二网络设备的第一设备标识;根据所述第一设备标识以及设备标识与网络地址之间的映射关系,确定所述第二网络设备的网络地址;基于所述第二网络设备的网络地址将第二网络协议报文发送出去,其中,所述第二网络协议报文是根据所述第一网络协议报文中的数据生成的;其中,第一网络设备和所述第二网络设备之间至少经过一次网络协议转换,所述中央设备是通过竞选机制从多个采用同一网络协议的网络设备中竞选出来的,所述映射关系是在竞选完毕之后,所述中央设备通过向所述多个采用同一网络协议的网络设备中除中
央设备之外的网络设备获取的所述除中央设备之外的网络设备的设备标识以及所述除中央设备之外的网络设备的网络地址之间的映射关系生成的。
6.在一些可能的设计中,所述中央设备是通过竞选机制从多个采用同一网络协议的网络设备中竞选出来的,包括:所述中央设备是多个采用同一网络协议的网络设备中本地任期内获得跟随者的选票数超过预设阈值的竞选者,其中,所述竞选者为在满足所述竞选机制的触发条件的情况下,向所述跟随者发送投票请求的网络设备,所述跟随者为在收到所述投票请求且判断所述投票请求有效的情况下,将选票发送给最先收到的竞选者的网络设备。
7.在一些可能的设计中,所述中央设备是ip地址最短的设备、可用计算资源最多的设备、持续工作时间长的设备、网络连接设备最多的设备中的一种或多种。
8.在一些可能的设计中,所述竞选机制的触发条件包括定时触发、条件触发或指令触发中的一种或者多种,其中:所述定时触发包括:设置为预设时间触发;所述条件触发包括:设置为在当前所述中央设备下线时触发、在网络环境发生变化时触发、基于心跳机制以及睡眠机制触发中的一种或者多种,其中,所述网络环境包括所述多个采用同一网络协议的网络设备的在线数量以及所述多个采用同一网络协议的网络设备之间的网络设备连接数量;所述指令触发包括:设置为指示将多个所述采用同一网络协议的网络设备中的一个或者多个网络设备上线或关闭时触发、指示需要进行大流量数据传输时触发、指示强制开启下一轮竞选流程时触发中的一种或者多种。
9.在一些可能的设计中,所述中央设备作为所述多个采用同一网络协议的网络设备的领导者的一致性是通过所述中央设备和除中央设备之外的网络设备之间的心跳机制和睡眠机制保证的。
10.在一些可能的设计中,所述中央设备作为所述多个采用同一网络协议的网络设备的领导者的一致性是通过所述中央设备和除中央设备之外的网络设备之间的心跳机制和睡眠机制保证的,包括:所述中央设备作为所述多个采用同一网络协议的网络设备的领导者的一致性是通过按照固定的时间间隔向多个采用同一网络协议的网络设备中除中央设备之外的网络设备发送心跳信息维持的,在心跳信息有效的情况下,所述中央设备指示所述除中央设备之外的网络设备通过分别刷新选举睡眠以保持为跟随者的状态保证的。
11.在一些可能的设计中,在所述心跳信息失效并且在超过所述选举睡眠的情况下,所述跟随者中的至少一个转变为所述竞选者,在所述竞选者发起新一轮竞选流程并发出投票请求,当所述竞选者的再请求睡眠超时,但是未接收到超过所述预设阈值的选票数时,所述竞选者将再次发起下一轮竞选流程并发出投票请求。
12.在一些可能的设计中,中央设备接收第一网络设备发送的第一网络协议报文之后,所述方法还包括:根据所述第一网络协议报文的内容进行在线判断;在所述在线判断为所述第二网络设备已下线的情况下,则将所述第一网络协议报文反馈所述第一网络设备,在所述在线判断为所述第二网络设备在线的情况下,根据所述第一网络协议报文
的内容进行大流量数据包判断;所述根据所述第一设备标识以及设备标识与网络地址之间的映射关系,确定所述第二网络设备的网络地址包括:在所述大流量数据包判断为所述第一网络协议报文的内容为不是大流量数据包的情况下,根据所述第一设备标识以及设备标识与网络地址之间的映射关系,确定所述第二网络设备的网络地址。
13.在一些可能的设计中,所述方法还包括:在所述大流量数据包判断为所述第一网络协议报文的内容为大流量数据包的情况下,所述中央设备将所述第一网络设备的服务端的第一ip地址和第一端口号发送给所述第二网络设备,将所述第二网络设备的第二ip地址和第二端口号发送给所述第一网络设备,其中,所述第一网络设备和所述第二网络设备之间基于所述第一ip地址、所述第一端口号、所述第二ip地址、所述第二端口号建立p2p通信。
14.在一些可能的设计中,在所述同一网络协议中的网络设备的数量、设备发生变化时,所述中央设备中存储的设备标识和网络地址之间的映射关系也相应发生变化;或者,根据所述第一设备标识以及设备标识与网络地址之间的映射关系,确定所述第二网络设备的网络地址之前,所述方法还包括:所述中央设备接收所述同一个网络协议中的其它网络设备发送的设备标识和网络地址,并建立设备标识和网络设备之间的映射关系,其中,所述中央设备为新竞选上任的网络设备。
15.在一些可能的设计中,所述心跳信息的预设时间间隔的影响变量包括所述中央设备连接的网络设备数和可用计算资源中的一种或者多种;所述选举睡眠的间隔的影响变量包括除中央设备之外的网络设备连接的网络设备数和可用计算资源中的一种或者多种;所述再请求睡眠的影响变量包括处于所述竞选者连接的网络设备数和可用计算资源。
16.第二方面,提供了一种局域网自组网装置,其特征在于,接收模块、确定模块以及发送模块,所述接收模块用于接收第一网络设备发送的第一网络协议报文,其中,所述第一网络协议报文包括第二网络设备的第一设备标识;所述确定模块用于根据所述第一设备标识以及设备标识与网络地址之间的映射关系,确定所述第二网络设备的网络地址;所述发送模块用于基于所述第二网络设备的网络地址将第二网络协议报文发送出去,其中,所述第二网络协议报文是根据所述第一网络协议报文中的数据生成的;其中,第一网络设备和所述第二网络设备之间至少经过一次网络协议转换,所述中央设备是通过竞选机制从多个采用同一网络协议的网络设备中竞选出来的,所述映射关系是在竞选完毕之后,所述中央设备通过向所述多个采用同一网络协议的网络设备中除中央设备之外的网络设备获取的所述除中央设备之外的网络设备的设备标识以及所述除中央设备之外的网络设备的网络地址之间的一一映射关系生成的。
17.在一些可能的设计中,所述中央设备是通过竞选机制从多个采用同一网络协议的网络设备中竞选出来的,包括:所述中央设备是多个采用同一网络协议的网络设备中本地任期内获得跟随者的选票数超过预设阈值的竞选者,其中,所述竞选者为在满足所述竞选
机制的触发条件的情况下,向所述跟随者发送投票请求的网络设备,所述跟随者为在收到所述投票请求且判断所述投票请求有效的情况下,将选票发送给最先收到的竞选者的网络设备。
18.在一些可能的设计中,所述中央设备是ip地址最短的设备、可用计算资源最多的设备、持续工作时间长的设备、网络连接设备数量最多的设备中的一种或多种。
19.在一些可能的设计中,所述竞选机制的触发条件包括定时触发、条件触发或指令触发中的一种或者多种,其中:所述定时触发包括:设置为预设时间触发;所述条件触发包括:设置为在当前所述中央设备下线时触发、在网络环境发生变化时触发、基于心跳机制以及睡眠机制触发中的一种或者多种,其中,所述网络环境包括所述多个采用同一网络协议的网络设备的在线数量以及所述多个采用同一网络协议的网络设备之间的网络设备连接数量;所述指令触发包括:设置为指示将多个所述采用同一网络协议的网络设备中的一个或者多个网络设备上线或关闭时触发、指示需要进行大流量数据传输时触发、指示强制开启下一轮竞选流程时触发中的一种或者多种。
20.在一些可能的设计中,所述中央设备作为所述多个采用同一网络协议的网络设备的领导者的一致性是通过所述中央设备和除中央设备之外的网络设备之间的心跳机制和睡眠机制保证的。
21.在一些可能的设计中,所述中央设备作为所述多个采用同一网络协议的网络设备的领导者的一致性是通过所述中央设备和除中央设备之外的网络设备之间的心跳机制和睡眠机制保证的,包括:所述中央设备作为所述多个采用同一网络协议的网络设备的领导者的一致性是通过按照固定的时间间隔向多个采用同一网络协议的网络设备中除中央设备之外的网络设备发送心跳信息维持的,在心跳信息有效的情况下,所述中央设备指示所述除中央设备之外的网络设备通过分别刷新选举睡眠以保持为跟随者的状态保证的。
22.在一些可能的设计中,在所述心跳信息失效,并且在超过选举睡眠的情况下,所述跟随者中的至少一个用于转变为竞选者,在不超过再请求睡眠的情况下,发出投票请求。
23.在一些可能的设计中,所述装置还包括判断模块,所述判断模块用于根据所述第一网络协议报文的内容进行在线判断;在所述在线判断为所述第二网络设备已下线的情况下,则将所述第一网络协议报文反馈所述第一网络设备,在所述在线判断为所述第二网络设备在线的情况下,根据所述第一网络协议报文的内容进行大流量数据包判断;所述确定模块具体用于在所述大流量数据包判断为所述第一网络协议报文的内容为不是大流量数据包的情况下,根据所述第一设备标识以及设备标识与网络地址之间的映射关系,确定所述第二网络设备的网络地址。
24.在一些可能的设计中,所述方法还包括:在所述大流量数据包判断为所述第一网络协议报文的内容为大流量数据包的情况下,所述中央设备将所述第一网络设备的服务端的第一ip地址和第一端口号发送给所述第二网络设备,将所述第二网络设备的第二ip地址和第二端口号发送给所述第一网络设备,其中,所述第一网络设备和所述第二网络设备之间基于第一ip地址、第一端口号、第二ip地址、第二端口号建立p2p通信。
25.在一些可能的设计中,在所述同一网络协议中的网络设备的数量、设备发生变化
时,所述中央设备中存储的设备标识和网络地址之间的映射关系也相应发生变化;或者,所述接收模块还用于接收所述同一个网络协议中的其它网络设备发送的设备标识和网络地址,并建立设备标识和网络设备之间的映射关系,其中,所述中央设备为新竞选上任的网络设备。
26.在一些可能的设计中,所述心跳信息的预设时间间隔的影响变量包括所述中央设备连接的网络设备数和可用计算资源中的一种或者多种;所述选举睡眠的间隔的影响变量包括除中央设备之外的网络设备连接的网络设备数和可用计算资源中的一种或者多种;所述再请求睡眠的影响变量包括处于所述竞选者连接的网络设备数和可用计算资源。
27.上述方案中,通过竞选机制从多个同一网络协议中的网络设备中竞选出中央设备,并通过中央设备将第一网络设备发送的第一网络协议报文中的设备标识,确定第二网络设备的ip地址,并根据ip地址将第二网络协议报文发送给第二网络设备,从而能够适应各种不同环境以及使用需求。
附图说明
28.为了更清楚地说明本发明实施例或背景技术中的技术方案,下面将对本发明实施例或背景技术中所需要使用的附图进行说明。
29.图1是本技术提供的一种局域网自组网方法的场景示意图;图2是本技术提供的一种局域网网络的结构示意图;图3是本技术提供的一种局域网自组网方法时间流程示意图;图4是本技术提供的一种中央设备的竞选流程时间流程示意图;图5是本技术提供的一种局域网中央设备的竞选步骤s201的示意图;图6是本技术提供的一种局域网中央设备的竞选步骤s202的示意图;图7是本技术提供的一种局域网中央设备的竞选步骤s203的示意图;图8是本技术提供的一种局域网中央设备的竞选步骤s204的示意图;图9是本技术提供的一种局域网中央设备的竞选步骤s205的示意图;图10是本技术提供的一种局域网中央设备的竞选步骤s206的示意图;图11是本技术提供的一种局域网中央设备的竞选步骤s207的示意图;图12是本技术提供的一种局域网自组网装置的结构示意图;图13是本技术提供的一种计算设备的结构示意图。
具体实施方式
30.下面结合本发明实施例中的附图对本发明实施例进行描述。
31.请参见图1,图1是本发明实施例提供的一种局域网自组网方法的应用场景的示意图。如图1所示,以智能家居的使用场景为例,场景内有众多网络设备,例如,智能电视、智能空调、智能投影仪、智能电话、智能路由器、智能手机、平板电脑、智能电饭煲、笔记本电脑、智能洗衣机、智能冰箱、智能音箱、车载设备、智能穿戴设备等等。无论是室内的网络设备的情况,还是使用网络设备的情况都非常复杂。
32.室内的网络设备的情况非常复杂的原因在于,不同网络设备之间往往具有不同的特征。具体地,不同的网络设备的工作时间往往不同,例如,部分网络设备通常工作在特定的时间段,例如智能电饭煲、智能洗衣机等;部分网络设备要求其工作需要持续不能间断,例如智能冰箱、智能路由器、智能电话等;部分网络设备要求其在随机的时间进行工作或断链下线,例如智能电视、智能空调、智能投影仪、智能手机、平板电脑、笔记本电脑、智能音箱等;不同的网络设备的空间位置往往不同,例如智能空调以及智能投影设备通常位于房间的高处、智能洗衣机常放置于阳台或厕所等信号较弱的区域、智能车载设备处于室外车库里;同时,不容的网络设备的可用计算资源往往不同,比如具有数据运算需求的智能手机、平板电脑、笔记本电脑,其可用计算资源通常明显优于普通家用的智能音箱、智能冰箱、智能空调、智能灯具等设备;部分智能设备的空间位置通常是动态变化的、例如智能手表、智能手环、头戴式耳机等。
33.网络设备的使用情况非常复杂的原因在于,通信设备的连接情况复杂,进行通信的时间复杂,需要进行通信的数据量也复杂;通信的设备的连接情况的复杂原因在于,主人可能通过智能手表、平板电脑、移动手机或者笔记本、台式电脑等等中的任一种;通信时间的复杂原因在于,主人可能在任何一个时间段发起通信,通信的时间长度也是任意的;通信数据量的复杂原因在于,主人可能只是简单的发送一个指令,也可能发送一份文件,也可能发送一个电影,也可能传输硬盘的整体数据进行备份。
34.下面将结合一些具体的事例,说明网络设备的使用情况。
35.在图1展示的一种可能的应用场景中,为满足人的生活便捷及舒适的需要,当主人下班在回家的路上就可以通过多种设备,例如车载设备、智能穿戴设备、智能手机等,把家中的智能空调提前打开进行制冷,当主人回到家中时立刻进入凉爽舒适的环境,无需回到家后的一段时间等待才能改变屋内的环境。在另一种可能的应用场景中,主人由于工作需要让小孩独自留在家中,主人可以通过多种设备,例如车载设备、智能穿戴设备、智能手机等,对家电智能设备进行控制,例如智能电视、智能投影仪、笔记本、智能手机以及平板电脑等,避免小孩沉迷娱乐耽误功课学业。
36.应理解,上述应用场景仅仅作为一种具体的示例,在实际应用中,还可以应用在智能抄表、远程办公、智慧城市、车载设备系统、远程医疗、智慧工厂等应用场景中,此处不作具体限定。
37.随着电子设备的数量和类型的不断增多,当不同的网络设备加入局域网内并参与组网时,以上应用场景的网络需求及电子设备特征将导致局域网的网络环境变得复杂并高度动态。例如频繁的设备断线重连、固定服务器无法覆盖复杂场景的所有区域、偶有服务器断连后导致网络陷入瘫痪等现象发生。
38.为了解决上述问题,本技术提供了一种局域网自组网方法以及装置,能够动态调整局域网的组网方式,适应不同环境以及使用需求。
39.如图2所示,图2是本技术提供的一种局域网自组网系统的结构示意图。如图2所示,该局域网自组网系统包括:外部设备110以及多个网络设备120。
40.外部设备110通常是在地域上远离多个网络设备120的具有网络通讯功能的设备。例如,如图1所示,外部设备110在图1的应用场景中为智能手环和车载设备,用于向智能家居中的智能网络设备发送指令。在本技术提供的实施例中,外部设备110可以是采用第一网
络协议将第一网络协议报文报送给网络设备120的第一网络设备。
41.网络设备120可以分别是地域上相互比较靠近的具有网络通讯功能的设备。多个网络设备120可以是手机(mobile phone)、台式电脑(personal computer,pc)、平板电脑(pad)、笔记本电脑(laptop)、可穿戴电子设备(如智能手表、智能手环、计步器、耳机等)等。网络设备还可以是机器智能设备如无人驾驶(self-driving)设备、运输安全(transportation safety)设备、虚拟现实(virtual reality,vr)终端设备、增强现实(augmented reality,ar)终端设备、机器类型通信(machine type communication,mtc)设备、工业控制(industrial control)设备、远程医疗(remote medical)设备、智能电网(smart grid)设备、智慧城市(smart city)设备。此外,网络设备120还可以是汽车座舱(cockpit domain)设备,或者汽车座舱设备中的一个模块,例如,座舱域控制器(cockpit domain controller,cdc)、摄像头、屏幕、麦克风、音响、电子钥匙、无钥匙进入或启动系统控制器等模块中的一个或者多个。例如,如图1所示,网络设备120在图1的应用场景中为以笔记本电脑为中央设备的多个家庭智能设备,多个网络设备组成一个局域网。在本技术提供的实施例中,多个网络设备120之间可以采用同一网络协议,例如,第二网络协议。
42.可以理解,图2所示的局域网自组网系统仅仅是一个具体的示例,在其他的实施例中,局域网自组网系统可以包括更多或者更少的网络设备,并且,网络设备的数量也可以是一个或者多个,此处不作具体限定。同时,图2所示的网络系统仅包含一层的网络结构,在其他的实施例中,网络架构还可以是二层的网络结构,三层的网络结构等等,设备数量也可以更少或者更多,此处不作具体限定。
43.请参见图3,图3是本发明实施例提供的一种局域网自组网方法时间流程示意图。图3所示的局域网自组网方法可以应用于如图3所示的局域网自组网系统中。如图3所示,该方法包括但不限于如下步骤:s101:第一网络设备向中央设备发送第一网络协议报文,相应地,中央设备接收第一网络设备发送的第一网络协议报文。
44.其中,所述第一网络协议报文包括第二网络设备的第一设备标识以及待传输的数据。
45.在一些可能的实施例中,第一网络设备可以是图2所示的实施例中的外部设备110。中央设备是通过竞选机制从多个网络设备中竞选出来的网络设备。中央设备可以是ip地址最短的设备、可用计算资源最多的设备、持续工作时间长的设备、网络设备连接数量最多的设备等等中的一种或者多种,还可以是基于竞选机制的各个指标综合选出的网络设备。竞选机制使得通过上述指标所竞选出的中央设备尽可能为网络设备的聚集处并满足网络环境动态变化的需求。因此在开始竞选之前需要设定一段随机时间的睡眠区间,同时使用udp协议使参与组网网络设备获取的相互之间的网络设备连接数量,同时网络连接设备数越大、可用计算资源越多、持续工作时间长的设备即被认为越靠近网络设备聚集的中心,其睡眠区间设置的数值范围也越小,其发起投票成功当选领导者的概率也就越高。
46.在一些可能的实施例中,触发中央设备的竞选机制启动的条件可以是定时触发、条件触发或指令触发。例如,可以每数分钟触发一次竞选机制,也可以是当前工作的中央设备下线触发竞选机制的启动,也可以是当更适合作为中央设备的网络设备上线时触发竞选机制的启动,也可以是网络环境发生变化时触发竞选机制的启动。其中,所述网络环境是指
网络设备的在线数量以及各个网络设备之间的连通度;所述用户发送指令包括但不限于指示需要将多个网络设备关闭、指示需要将网络设备的数据进行备份、指示主动触发下一轮竞选等。
47.在一种可能的实施方式中,局域网自组网方法的竞选机制的实现可以是一种分布式竞选方法,该竞选方法包括以下要素:设备状态、设备计时、睡眠机制、任期机制、心跳机制、投票机制、设备标识、网络设备数等:1. 设备状态是网络设备在局域网内的角色状态,可以分别是跟随者、竞选者、领导者中的任意一种,其中:跟随者是网络设备的初始设备状态,所述网络设备在其设备计时到达选举睡眠之前将一直处于此状态,跟随者在接收来自竞选者的竞选信息和来自领导者的心跳信息后反馈给信息源设备(即,竞选者以及领导者)并刷新本地的设备计时;竞选者是当跟随者的设备计时到达再请求睡眠而转换的设备状态,成为竞选者的网络设备将开启一轮新的任期,在将投票对象设置为自身后向全网发出投票请求,处于竞选者的设备在收到来自领导者的心跳信息后将自动转换成跟随者状态并刷新本地的设备计时;领导者是当竞选者的选票数多于竞选阈值转变而来的设备状态,在一些可能的实施例中,竞选阈值可以设置为网络设备数的一半,在网络设备当选领导者后立刻发送心跳信息给局域网内其余网络设备已告知其成功竞选的信息,同时领导者会每隔固定的心跳睡眠对全网其他网络设备发送心跳信息。
48.2. 设备计时是存储于网络设备本地的时间变量,当于跟随者的设备计时到达选举睡眠则将设备状态切换为竞选者并刷新设备计时,当竞选者的设备计时到达再请求睡眠将启动下一轮任期竞选并刷新设备计时,当领导者的设备计时超过心跳睡眠时将再次向全网设备发送心跳信息并刷新设备计时,若网络设备收到来自其他竞选者的投票请求或来自领导者的心跳信息并刷新设备计时。
49.3. 睡眠机制在本示例的局域网自组网方法中,不仅用于触发设备的竞选流程也用于维持领导者与其余网络设备之间关系的一致性,此睡眠机制可以通过以下的选举睡眠、再请求睡眠、心跳睡眠、响应睡眠四种情形来体现:选举睡眠用于当网络设备处于跟随者状态时做设备计时,当跟随者的设备计时超过选举睡眠时,跟随者设备将醒来并切换为竞选者状态,为避免两个网络设备同时成为竞选者,选举睡眠通常设置为50ms~200ms的随机数,此随机数通常与当前网络设备能够连接到的网络设备数和设备可用计算资源有关,网络设备数越大并且设备可用计算资源越多,则此随机数值越小;再请求睡眠用于当网络设备处于竞选者时做设备计时,当竞选者的设备计时超过再请求睡眠同时未满足成为领导者的竞选阈值时,竞选者将会醒来并发起新的一轮竞选,为避免两个竞选者同时开启一轮竞选,再请求睡眠通常设置为50ms~200ms的随机数,此随机数通常与当前网络设备能够连接到的网络设备数和设备可用计算资源有关,网络设备数越大并且设备可用计算资源越多,则此随机数值越小;心跳睡眠用于当设备处于领导者状态时做设备计时,当领导者的设备计时超过心跳睡眠时,领导者会发送一次心跳信息通告全网其余设备,心跳睡眠的持续作用使得跟随
者和竞选者将持续处于“睡眠状态”以维持领导者与其余网络设备之间关系的一致性,心跳睡眠的间隔在每个任期内通常设置为10ms~30ms的固定值,与当前网络设备能够连接到的网络设备数和设备可用计算资源有关,网络设备数越大并且设备可用计算资源雨多,此数值越小;响应睡眠是领导者设备对于网内其余所有设备中的每一个都各做设备计时,用于使领导者可以维护网络设备的连接状态,当领导者在接收到来自其余网络设备的心跳信息的反馈信息时刷新对应于此网络设备的设备计时,当中央设备持续未接收到某一个网络设备的心跳反馈信息并超过响应睡眠,中央设备将判断此网络设备下线。
50.4. 任期机制使得局域网的竞选流程具有一种逻辑时间,任期作为一种无单位自然数变量表示网络设备正在进行的竞选轮次的计数,当网络设备由跟随者转变为竞选者时此设备的本地任期 1,当网络设备接收到投票请求中的任期高于本地任期时,则本地任期更换为数值更高的投票请求中的任期值,在将设备状态转换为跟随者后做出投票并刷新设备计时;任期时间是作为领导者的中央设备在任期内的持续时间,通常设置为1min~10min的随机数,任期时间与中央设备能够连接到的网络设备数和可用计算资源有关,网络设备数越大并且设备可用计算资源越多则此随机数值越大,在任期时间超时后中央设备将自动下线,在转换成跟随者状态之后开启选举睡眠的设备计时。特别地,任期时间也可以通过用户主动设置为任期为无限时间的模式,即一旦中央设备被选出之后,除非其主动或被动下线,不再自动退出领导者身份。
51.5. 心跳机制在本示例的局域网自组网方法中,不仅用于触发设备的竞选流程也用于维持领导者与其余网络设备之间关系的一致性;心跳信息是网络设备转换成领导者时向全网持续公告产生的信息,此信息包含领导者的本地任期值和设备标识。成为领导者的网络设备每隔固定的心跳睡眠向全网发出一次心跳信息以宣称自身的领导者身份,当本地任期值低于此心跳信息中任期值的竞选者、跟随者和领导者,在收到此心跳信息后将自动转换成跟随者状态已表明自己认可此心跳信息,同时向心跳信息发送方做出反馈以表明自身在线,并刷新自身的本地任期;在作为领导者的中央设备收到来自设备的反馈信息后将判断此设备上线并同步连接状态,当网络设备持续未接收到有效的心跳信息时,睡眠机制将会使得跟随者与竞选者不断醒来自动开启下一轮竞选,用以竞选出新一轮的领导者以维持领导者与其他网络设备关系的一致性。
52.6. 投票机制在本示例的局域网自组网方法中,可以包括以下三个要素:投票请求、投票对象、选票数;投票请求是网络设备转换成竞选者时向全网公告产生的信息,包含此公告所含竞选的任期、投票对象、网络设备数、本地设备标识,最快将投票请求传播至大于半数的网络设备将成为领导者状态,投票请求有效的条件,包括所述投票请求对应的竞选者是ip地址最短的设备、可用计算资源越多的设备、持续工作时间长的设备、网络设备连接数量高的设备的情况中的一种或多种;投票对象为字符串变量,此变量加入网络设备竞选时的公告信息,用于标识出本轮竞选中跟随者或竞选者意向的领导者,当跟随者或竞选者接收到的公告信息的任期数值
高于本地设备的数值时,会将所述网络设备的任期更换为数值更高的公告信息的任期数值,在将设备状态转变为跟随者后将此轮任期投票对象设置为公告方的设备标识并反馈会公告方,当竞选者接收到的公告信息的任期数值低于本地设备的数值时则会将投票对象设置为自身并将选票数 1,每个跟随者设备在每轮竞选的投票对象唯一;选票数是无单位自然数变量,该变量表示竞选者已收到的选票数,当竞选开始时竞选者将会投自身一票并将向全网发起投票请求,同样的,跟随者将会给第一个发送给自身同时大于自身任期数值的网络设备投票并反馈信息给投票请求方设备,若公告信息的任期小于本地记录的任期则不予理会,当竞选者接收到的选票数超过竞选阈值时,竞选者将通过竞选并将自身状态转换为领导者,通常,竞选阈值可以设置为网络设备数的一半。
53.7. 设备标识是用于识别局域网内各个网络设备的字符串变量,也是竞选机制结束后各个网络设备发送给中央设备的信息的重要组成部分之一,通常在组网前已存储设定好的设备标识于每个网络设备的设备标识存储器中,当有符合所述存储器记录的设备标识出现时此设备本地记录的网内的网络设备数 1。
54.8. 网络设备数是反映网络设备在局域网内的网络设备连接数量的重要指标,也是竞选者判定自身是否成为领导者的依据。当竞选者获得的选票数大于竞选阈值时,即局域网络设备数的一半,将自动转换设备状态为领导者。此数值的产生在竞选机制启动前由网络设备启用后即开始存在,在设备解码接收到的公告报文并与本地标识存储器的预设数据确认之后,此设备即纳入网络设备参与组网,通常情况下,设备的运算能力越强解密速度越快,同时接收到的公告报文量也越多。
55.s102:中央设备判断第二网络设备是否在线。如果第二网络设备已下线,进入步骤s103;如果在线,进入步骤s104。
56.如图3所示,中央设备根据第二网络设备的第一设备标识与中央设备维护的所述映射关系表,中央设备判断第二网络设备是否在线。当第二网络设备持续未发送心跳反馈信息并且中央设备的响应睡眠超时,中央设备将判断第二网络设备下线并将此设备的设备标识与ip地址信息在映射关系表中删除。所述第一网络协议报文中的包含的第二网络设备的设备标识不能从所述映射关系表查询到时,中央设备即判断第二网络设备已下线,反之,第二网络设备在线。
57.在一些可能的实施例中,由于第一网络设备采用第一网络协议,第二网络设备采用第二网络协议,因此,第一网络设备和第二网络设备之间至少经过一次网络协议转换,因此,第一网络设备无法获知第二网络设备的ip地址。因此,需要在中央设备中建立并维护设备标识与设备ip地址的映射关系表。具体地,中央设备在接收到来自其他网络设备的对心跳信息的反馈信息后,建立并维护设备标识与设备ip地址的映射关系表,所述映射关系表可以是如表1所示的一种方式,请见表1:表1 中央设备维护的映射关系表
栈序号12345

设备标识"2ecg863a""32as1df352""1a3dfty62bm""r46t5yjht""za3265sjne4"

ip地址192.168.1.1192.168.1.2192.168.1.3192.168.1.4192.168.1.5

58.s103:中央设备告知第一网络设备,第一网络协议报文通讯失败。
59.如图3所示,若第二网络设备响应超时,则判定第二网络设备已下线,同时中央设备告知第一网络设备此次通讯失败。
60.s104:中央设备判断第一网络协议报文的数据包是否为大流量数据包。如果是大流量数据包,进入步骤s105;如果不是大流量数据包,进入步骤s107。
61.在一些具体的实施例中,大流量数据包包括但不限于音频数据包、视频数据包、系统文件拷贝数据包等等。
62.s105:中央设备作为中介实现第一网络设备和第二网络设备之间的ip地址、端口号的交换。
63.如图3所示,当第二网络设备在线时,中央设备识别出第一网络协议报文所包含的待传输信息为大流量数据包,则由中央设备作为中介交互第一网络设备和第二网络设备各自作为服务端的ip地址和端口号,即,所述中央设备将所述第一网络设备的服务端的第一ip地址和第一端口号发送给所述第二网络设备,将所述第二网络设备的第二ip地址和第二端口号发送给所述第一网络设备,其中,所述第一网络设备和所述第二网络设备之间可以基于所述第一ip地址、所述第一端口号、所述第二ip地址、所述第二端口号建立p2p通信。
64.随后,进入步骤s106。
65.s106:第一网络设备作为网络主动创建与第二网络设备的tcp连接。
66.第一网络设备与第二网络设备通过局域网的p2p通信实现大流量数据传递,分摊中央设备的数据处理压力。
67.s107:中央设备根据所述第二设备标识以及所述映射关系,确定所述第二网络设备的网络地址。
68.如图3所示,若第二网络设备在线的同时第一网络协议报文中的数据包不是大流量数据包,中央设备则通过映射关系表找到第二网络端设备ip地址,并根据第一网络协议以及第二网络协议实现第一网络协议报文到第二网络协议报文之间的转换。
69.随后,进入步骤s108。
70.s108:中央设备基于第二网络设备的网络地址发送第二网络协议报文。
71.相应地,第二网络设备接收中央设备发送的第二网络协议报文。如图3所示,当第二网络设备在线同时第一网络协议报文的数据包不是大流量数据包,中央设备根据所述第一设备标识及设备标识与ip地址之间的映射关系,确定所述第一网络协议报文中的所述第二网络设备对应的ip地址,将第二网络协议报文发送给第二网络设备。
72.以网络设备在初始启用时为例,本发明实施例提供一种中央设备的分布式竞选流程,如图4所示,以3个设备为例,图4是一种中央设备的竞选流程时间流程示意图。在中央设备的竞选过程中,设备可依据状态划分为三个基本类型,分别是:领导者210、竞选者220、跟随者230。在所述竞选机制中时间被切分为独立的的任期,可看作为一种“逻辑时间”。每个任期时间内至多存在一个领导者210,每个设备在本地维护一个任期值,领导者210由跟随者230投票选出。一个更详细的分布式竞选流程的实施例可以是如图5至图11,图5至图11以7个设备为例,所示竞选步骤如下:s201:如图5所示,在竞选初始状态时,没有领导者210即所有网络设备均为跟随者230,跟随者230启动并通过udp协议将加密后的本地设备标识和端口号信息持续公告,在设备解码接收到的公告报文并与本地标识存储器的预设数据确认之后,此设备即纳入网络设备参与组网,通常情况下,网络设备的运算能力越强解密速度越快,同时网络设备越接近网络聚集处接收到的公告报文量也越多。
73.s202:如图6所示,跟随者230进入一段随机睡眠,睡眠的数值大小取决于竞选机制开始前各设备在本地确认到的网络设备数,同时设备可用计算资源越多则睡眠的随机值越小。如图5所示,设备标识为e的跟随者230设备由于较远离网内各设备或者通讯能力不佳,其本地的网络设备数量较少,因此睡眠偏长。
74.s203:如图7所示,最先醒来的设备将自增一个任期值并进入竞选者220,意味着开始一个新的竞选周期。竞选者220有权利发起投票,在首先将投票对象设置为自身并把本地选票数 1后,向其他所有设备发出投票请求240,请求其他设备给自己投票使之成为领导者设备,其中投票请求240包含竞选者220的本地任期值与竞选者220的设备标识。
75.s204:如图8所示,当其他跟随者230接收到投票请求240后,将做出判断,若本地任期值大于等于投票请求240包含的任期值,则不予理会;若本地任期值小于特别地投票请求240包含的任期值并满足投票请求有效的条件,则将自身在本任期仅有的一票投给最先发送投票请求给自己的竞选者220设备,在反馈信息250给投票竞选者220后刷新设备机制,其中,投票请求有效的条件,包括所述投票请求对应的竞选者是ip地址短的设备、可用计算资源越多的设备、持续工作时间长的设备、网络设备连接数量高的设备的情况中的一种或多种;特别地,当局域网内同时出现一个以上的竞选者220时,若其中一个竞选者220接收到任期更大的一方的投票请求,则自动转变状态为跟随者230,并更新自己的任期后刷新设备计时;若其中一个竞选者220接收到的任期小于等于另外一方的投票请求,则不予理会;同样地,当竞选者220在某一任期的再请求睡眠超时,但是本地选票数没有超过竞选阈值,同时也未收到任期值大于等于自身的其他领导者210发来的心跳信息,竞选者220则会开启下一轮竞选并再次发送投票请求240。
76.s205:如图9所示,最先收到得票数超过竞选阈值(通常设置为局域网网络设备数一半)的竞选者220则自动进入领导者状态,并发送心跳信息260通告全网。所有接收到此心跳信息260的竞选者220将自身转变为跟随者230,或者,本地任期值小于心跳信息260发出方的领导者210也将自动转变为跟随者230。竞选出的领导者210即为动态局域网的中央设备,作为领导者的设备将会在本地计时心跳睡眠,随后领导者设备将持续心跳信息260通告全网其余设备维持其中央设备的角色功能,领导者210能够连接到的网络设备数越多或可用计算资源越多,则此数值越小;特别地,由于网络拥堵问题,同一网络在同一时间内会临时存在多个作为中央设备的领导者210,当处于领导者210的设备接收到心跳信息中包含的任期值大于本地任期值,或者接收到来自ip地址更短、可用计算资源更多、持续工作时间更长、网络设备连接数量更高的领导者210的心跳信息260,将自动转换身份为跟随者230以表明自己认定任期值更大的一方为新的领导者210,随后更新本地任期值并反馈信息给心跳发送方。
77.s206:如图10所示,跟随者230在持续接收到领导者210所发出的心跳信息260时,根据本地任期值判断确实当前心跳信息是否有效,当本地任期值大于心跳信息260包含的任期值时,则此心跳信息260不被接收;若此心跳信息260有效,则向领导者210发出心跳反馈信息270表明自身在线并刷新本地设备计时,心跳反馈信息270包含本地的设备标识以及本地的ip地址,领导者210在持续收到其他设备的心跳反馈信息270后同步网络设备的连接
状态并建立设备标识与设备ip地址的映射关系。
78.s207:如图11所示,所有的跟随者230均接收到了心跳信息260并开始发出心跳反馈信息270,致此竞选流程结束。每次竞选出的领导者210作为中央设备存在一定的任期持续时间。当任期结束时。领导者210自动结束心跳信息的全网通告并转换自己的状态为跟随者230并开始设备计时。当领导者210下线时,其余设备在设备计时超过选举睡眠后将开启下一轮任期。
79.当作为领导者的中央设备被选出后,除中央设备之外的网络设备使用tcp协议连接至中央设备,由中央设备主导持续进行日志复制以维护网络设备的ip地址与设备标识的映射关系表,并且同步当前所有网络设备的连接状态。随后,第一网络设备向通过中央设备发送第一网络协议报文,所述第一网络协议报文包括第二网络设备的设备标识以及待传输数据。
80.由于局域网络中的环境常常发生变化,例如,中央设备下线、其它网络设备断开连接、新的网络设备加入等等,都会导致网络环境发生变化,此时,需要采用下面的方式进行处理。
81.1. 当中央设备下线时,其余的网络设备将持续无法接收来自中央设备的心跳信息,当选举睡眠超时后将自动开启下一轮任期以竞选新的中央设备,其中,中央设备下线的情况,包括本轮任期已满导致自动下线,收到指令指示导致主动下线、意外关闭或断开连接导致被动下线。相应地,新选举出的中央设备在接收到来自其他网络设备的对心跳信息的反馈信息后,将建立并维护设备标识与设备ip地址的新映射关系表;2. 当网络设备断开连接时,中央设备一直未收到网络设备的心跳反馈信息并且对于此网络设备的响应睡眠超时,中央设备判断此网络设备已断连下线,并且不再给此网络设备传输信息,同样地,此网络设备可尝试重新通过udp协议将本地信息公告并再次参与网络组网,当此网络设备再次被中央设备识别到则可恢复通信,其中,网络设备下线的情况,包括收到指令指示导致主动下线、意外关闭或断开连接导致被动下线。相应地,中央设备在持续未收到此设备的心跳反馈信息并且对于此网络设备的响应睡眠超时后,将存储的设备标识与设备ip地址的映射关系表中关于此网络设备的数据删除,以表示此网络设备已不在局域网内中;3. 当新网络设备上线时,新网络可仿照网络设备下线的情况,启动udp协议将本地信息公告并参与网络组网,当网络设备被中央设备识别即可参与组网。当中央设备在收到此设备烦人心跳反馈信息后,将添加此设备的设备标识与设备ip地址到映射关系表中,以表示此网络设备被中央设备纳入局域网中;4.由于网络拥堵问题,同一网络同一时间内会临时存在多个中央设备,当中央设备接收到心跳信息中包含的任期值大于本地任期值,或者接收到来自ip地址更短、可用计算资源更多、持续工作时间更长、网络设备连接数量更高的中央设备的心跳信息,将自动转换身份为跟随者以表明自己认定任期值更大的一方为中央设备,随后更新本地任期值并反馈信息给心跳发送方设备。
82.由上述四种情形可见,当局域网环境发生变化时,心跳机制和睡眠机制将持续运作以保证中央设备与其余网络设备关系的一致性,并且,本示例的方法通过以上策略动态调整中央设备的对象以适应新的网络环境。
83.参见图12,图12是本技术提供的一种局域网自组网装置的结构示意图。该装置可以用于实现前述的局域网自组网方法。如图12所示,包括,接收模块301、确定模块302以及发送模块303,其中:接收模块301用于确定第一数据包的目的出端口,其中,该目的出端口是局域网自组网装置300中基于该第一数据包中的第一目的互联网协议地址确定的出端口;确定模块302用于确定上述目的出端口中的是否存在非拥塞出端口,其中,该非拥塞出端口是由队列中等待转发的数据包的数量形成的队列长度小于上限阈值的出端口;若存在上述非拥塞出端口,发送模块303用于通过该非拥塞出端口将上述第一数据包进行转发。
84.在一些可能的实现方式中,确定模块302用于:生成与拥塞出端口对应的拥塞表项,其中,该拥塞出端口是由队列中等待转发的数据包的数量形成的队列长度大于或者等于上限阈值的出端口,该拥塞表项包括该拥塞出端口的拥塞信息,该拥塞信息基于该拥塞出端口的队列中数据包携带的信息计算得到,该数据包携带的信息是源互联网协议地址、目的互联网协议地址、与源互联网协议地址对应的源物理地址、与目的互联网协议地址对应的目的物理地址中的一项或多项;根据该拥塞表项确定上述目的出端口中的非拥塞出端口。
85.在一些可能的实现方式中,在确定模块302用于生成与拥塞出端口对应的拥塞表项之后,确定模块302用于:将该拥塞表项中拥塞信息为上述第一数据包携带的信息对应的拥塞出端口标记为第一类拥塞出端口,其中,该第一数据包携带的信息是第一源互联网协议地址、第一目的互联网协议地址、与第一源互联网协议地址对应的源物理地址、与第一目的互联网协议地址对应的目的物理地址中的一项或多项;根据上述第一类拥塞出端口确定上述目的出端口中的拥塞出端口;根据上述目的出端口中的拥塞出端口确定上述目的出端口中的非拥塞出端口。
86.在一些可能的实现方式中,发送模块303用于:若存在上述非拥塞出端口,发送模块303用于从上述非拥塞出端口中确定第二出端口;通过上述第二出端口将上述第一数据包进行转发。
87.在一些可能的实现方式中,发送模块303用于:若存在上述非拥塞出端口,发送模块303基于上述非拥塞出端口的信息、上述第一数据包携带的信息中的一项或两项从上述非拥塞出端口中计算得到上述第二出端口,其中,该非拥塞出端口的信息是队列长度、互联网协议地址、物理地址中的一项或多项。
88.其中,接收模块301、确定模块302、发送模块303均可以通过软件实现,或者可以通过硬件实现。示例性的,接下来以接收模块301为例,介绍接收模块301的实现方式。类似的,确定模块302、发送模块303的实现方式可以参考接收模块301的实现方式。
89.模块作为软件功能单元的一种举例,接收模块301可以包括运行在计算实例上的代码。其中,计算实例可以是物理主机(计算设备)、虚拟机、容器中的一种。例如,接收模块301可以包括运行在主机/虚拟机/容器上的代码。
90.模块作为硬件功能单元的一种举例,接收模块301可以是计算设备,如服务器等。或者,接收模块301也可以是利用专用集成电路(application-specific integrated circuit,asic)实现、或可编程逻辑器件(programmable logic device,pld)实现的设备
等。其中,上述pld可以是复杂程序逻辑器件(complex programmable logical device,cpld)、现场可编程门阵列(field-programmable gate array,fpga)、通用阵列逻辑(generic array logic,gal)或其任意组合实现。
91.需要说明的是,在其他实施例中,接收模块301可以用于执行局域网自组网方法中的任意步骤,确定模块302可以用于执行局域网自组网方法中的任意步骤, 发送模块303可以用于执行局域网自组网方法中的任意步骤。
92.参见图13,图13是本技术提供的一种计算设备的结构示意图。如图13所示,计算设备400包括:总线401、处理器402、存储器403和通信接口404。处理器402、存储器403和通信接口404之间通过总线401通信。计算设备400可以是服务器,例如是中心服务器、边缘服务器,或者是本地数据中心中的本地服务器。计算设备400也可以是台式机、笔记本电脑或者智能手机等终端设备。应理解,本技术不限定计算设备400中的处理器、存储器的个数。
93.总线401可以是外设部件互连标准(peripheral component interconnect,pci)总线或扩展工业标准结构(extended industry standard architecture,eisa)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。总线401可包括在计算设备400各个部件(例如,存储器403、处理器402、通信接口404)之间传送信息的通路。
94.处理器402可以包括中央处理器(central processing unit,cpu)、图形处理器(graphics processing unit,gpu)、微处理器(micro processor,mp)或者数字信号处理器(digital signal processor,dsp)等处理器中的任意一种或多种。
95.存储器403可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,ram)。存储器403还可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,rom),快闪存储器,机械硬盘(hard disk drive,hdd)或固态硬盘(solid state drive,ssd)。
96.存储器403中存储有可执行的程序代码,处理器402执行该可执行的程序代码以分别实现前述接收模块301、确定模块302和发送模块303的功能,从而实现局域网自组网方法。也即,存储器403上存储有用于执行局域网自组网方法的指令,处理器402执行该指令以分别实现前述步骤s101、s102、s103、s104、s105、s106、s107、s201、s202、s203、s204、s205、s206、s207,从而实现局域网自组网方法。
97.通信接口404使用例如但不限于网络接口卡、收发器一类的收发模块,来实现计算设备400与其他设备或通信网络之间的通信。
98.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的保护范围。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献