CN110557304B - 一种地址探测方法、设备及计算机可读存储介质 - Google Patents
一种地址探测方法、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN110557304B CN110557304B CN201910897575.0A CN201910897575A CN110557304B CN 110557304 B CN110557304 B CN 110557304B CN 201910897575 A CN201910897575 A CN 201910897575A CN 110557304 B CN110557304 B CN 110557304B
- Authority
- CN
- China
- Prior art keywords
- node
- address
- record table
- addresses
- network
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/12—Network monitoring probes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2101/00—Indexing scheme associated with group H04L61/00
- H04L2101/60—Types of network addresses
Abstract
本申请实施例公开了一种地址探测方法、设备及计算机可读存储介质,其中方法包括:获取所述网络中的第二节点的地址,将所述第二节点的地址存储至第一记录表中,探测所述第一记录表中的节点地址是否连通,将探测连通的所述第一记录表中的节点地址加入第二记录表中,通过所述第二记录表中的节点地址与对应的节点进行通信。本实施例通过对获取地址的预探测,避免了通信时直接将信息发送给许多第一记录表中不能连通的节点,从而提高了网络中节点之间信息传输的成功率。
Description
技术领域
本申请涉及计算机网络领域,尤其涉及一种地址探测方法、一种地址探测设备及一种计算机可读存储介质。
背景技术
计算机网络自出现以来,为人们的生活提供了巨大的便利,使得人们可以足不出户就可以看遍大千世界,及时了解各地的时事新闻。它是将地理位置不同的具有独立功能的多台计算机及其外部设备,通过通信线路连接起来,来实现资源共享和信息传递的。
网络中的节点之间需要互相通信来同步信息。例如,一个节点在获取信息后,会向100个其他节点同步信息。但可能由于链路故障等原因,实际只有20个节点能够成功接收到区块头。可见,在现有网络中节点之间信息传输的成功率较低。
发明内容
本申请实施例公开了一种地址探测方法、设备及计算机可读存储介质,能够提高网络中节点之间信息传输的成功率。
第一方面,本申请实施例提供了一种地址探测方法,应用于网络中的第一节点,该方法包括:
获取所述网络中的第二节点的地址;
将所述第二节点的地址存储至第一记录表中;
探测所述第一记录表中的节点地址是否连通;
将探测连通的所述第一记录表中的节点地址加入第二记录表中;
通过所述第二记录表中的节点地址与对应的节点进行通信。
第二方面,本申请实施例提供了一种地址探测装置,所述地址探测装置运行于节点中,所述地址探测装置包括:
处理单元,用于获取所述网络中的第二节点的地址;
所述处理单元,还用于将所述第二节点的地址存储至第一记录表中;
通信单元,用于探测所述第一记录表中的所述节点地址是否连通;
所述处理单元,还用于将探测连通的所述第一记录表中的节点地址加入第二记录表中;
所述通信单元,还用于通过所述第二记录表中的节点地址与对应的节点进行通信;若第二记录表为空,则选取第一记录表中的节点地址与对应的节点进行通信。
第三方面,本申请实施例提供了一种地址探测设备,包括处理器、存储器和通信接口,所述处理器、所述存储器和所述通信接口相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述通信接口用于与除自身外的其他节点进行通信,所述处理器被配置用于调用所述程序指令,执行上述第一方面所述的地址探测方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如上述第一方面所述的地址探测方法。
在本申请实施例中,第一节点首先将获取的第二节点的地址存储至第一记录表中,然后预先探测所述第一记录表中的节点地址是否连通。第一节点筛选出探测连通的节点地址加入第二记录表中,在对外进行通信时,第一节点与所述第二记录表中的节点地址与对应的节点进行通信。可见,通过实施本申请实施例,避免了通信时直接将信息发送给许多第一记录表中不能连通的节点,从而提高了通信时网络中节点之间信息传输的成功率。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种网络的架构图;
图2是本申请实施例提供的一种节点的结构图;
图3是本申请实施例提供的一种地址探测方法的流程示意图;
图4是本申请实施例提供的又一种地址探测方法的流程示意图;
图5是本申请实施例提供的又一种地址探测方法的流程示意图;
图6是本申请实施例提供的一种地址探测装置的结构示意图;
图7是本申请实施例提供的一种地址探测设备的结构示意图;
图8是本申请实施例提供的一种地址探测方法的应用示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行描述。
本申请实施例提供了一种地址探测方法及设备,有利于提高网络中节点之间信息传输的成功率。
为了能够更好地理解本申请实施例,下面对本申请实施例可应用的网络架构进行说明。
图1是本申请实施例提供的一种网络的架构图。如图1所示,该网络包括了网络节点1~网络节点10和种子节点。图1以网络包括10个网络节点和1个种子节点为例。当然,网络还可包括10个以上或10个以下的网络节点。网络还可包括2个以上的种子节点,或者网络中可以不包括种子节点,本申请实施例不做限定。
其中,网络节点1~网络节点10可以是简单支付验证(SPV,simplified paymentverification)节点或者为网络中的其他类型的节点。其中,SPV节点也可称为轻型节点。SPV节点是指只保存了区块链的一部分的节点。例如,SPV节点只存储了区块链中所有的区块头信息以及与自身信息相关的区块信息,并不存储完整的区块链。SPV节点多为移动终端,例如为智能手机、平板电脑或移动计算机等。
其中,种子节点存储了大量网络中其他节点的地址。例如,如图1所示,网络节点1~网络节点10在成功启动之后,会从自身的配置文件中获取种子节点的地址,然后与种子节点建立连接。种子节点与网络节点1~网络节点10建立连接之后,会记录网络节点1~网络节点10的地址。
其中,网络节点1~网络节点10中的任意一个节点均包括第一记录表、第二记录表、通信模块和探测模块。如图2所示,图2是本申请实施例提供的一种网络节点的结构示意图。其中,网络节点可从本地配置文件中获取第二节点的地址,或从历史记录中获取第二节点的地址,或从种子节点获取第二节点的地址,或从其他节点获取第二节点的地址,或通过其他方式获取节点地址,并将获取的地址存放于第一记录表中。如何通过上述四种方式来获取地址请参见下文中的具体描述。探测模块用于按照预设时间周期对第一记录表中的地址进行探测。网络节点会将探测连通的地址存入第二记录表中。第二记录表用于存储第一记录表中探测连通的节点地址。通信模块用于从第二记录表中获取节点地址来进行通信。若第二记录表为空,则通信模块还可从第一记录表中获取节点地址来进行通信。
本申请实施例的技术方案可以应用于各种现有网络或者其他未来的新型网络。
为了提高网络节点1~网络节点10中各个节点之间通信的成功率,本申请实施例提供了一种地址探测方法,下面进行详细地介绍。
请参见图3,图3是本申请实施例提供的一种地址探测方法的流程示意图。如图3所示,地址探测方法包括但不限于如下步骤301~步骤305。步骤301~步骤305的执行主体为第一节点。其中:
301、第一节点获取网络中第二节点的地址。
其中,第一节点可以为网络中任意一个节点。例如,第一节点可以为图1中网络节点1~网络节点10中的任意一个节点。第二节点为网络中除第一节点之外的节点。例如,第一节点为图1中的网络节点1时,第二节点为种子节点、网络节点2~网络节点10中的任意一个。
其中,第一节点具体可以获取一个或多个第二节点的地址,并将获取的地址加入第一记录表中。例如,第一节点为网络节点1,网络节点1可获取网络节点2~网络节点10的地址,并将网络节点2~网络节点10的地址存储到第一记录表中。
其中,第二节点的地址可以是网络节点的互联网协议(internet protocol,IP)地址或者介质访问控制地址(media access control address,MAC)等,本申请实例不做限定。
其中,第一节点可通过以下四种方式中的任意一种来获取第二节点的地址。或者,第一节点还可通过其他方式来获取第二节点的地址,本申请实施例不做限定。
方式一:第一节点从配置文件中获取第二节点的地址。
在方式一中,配置文件存储于第一节点的硬盘等外存中。配置文件中包括多个节点的地址。第一节点具体可从配置文件中获取一个或多个第二节点的地址。例如,配置文件中包括种子节点的地址以及网络节点1~网络节点100的地址。第一节点可获取配置文件中的一个地址。或者,第一节点可获取配置文件中所有的地址。或者,第一节点可获取配置文件中网络节点1~网络节点100的地址。或者,第一节点可获取配置文件中网络节点1~网络节点100中的部分节点的地址。
其中,第一节点的第一记录表存储于第一节点的内存中。第一节点每次关机之后,第一节点的第一记录表中的地址均会丢失。因此,第一节点每次重新启动之后,需要重新获取节点地址加入第一记录表中。因此,第一节点具体可以在每次启动之后,从配置文件中获取第二节点的地址,并将获取的地址存储至第一节点的第一记录表中。
方式二:第一节点获取历史记录的第二节点的地址。
其中,第一节点的硬盘等外存中可记录第一节点连接过的或者获取过的节点地址。第一节点具体可从历史记录的地址中获取一个或多个第二节点的地址。例如,第一节点可获取历史记录的所有地址。或者,第一节点可获取历史记录的部分地址。可选的,第一节点具体可以在每次启动之后,获取历史记录的第二节点的地址,并将获取的地址存储至第一节点的第一记录表中。
方式三:第一节点从网络中的种子节点获取第二节点地址。
其中,第一节点的配置文件中可记录种子节点的地址。第一节点启动之后,可以从配置文件中获取一个或多个种子节点的地址,然后向种子节点地址对应的种子节点请求获取种子节点记录的第二节点的地址。种子节点在收到请求后会向第一节点发送预设数量的第二节点地址。
方式四:第一节点从网络中的其他节点获取第二节点地址,该其他节点为网络中除本节点和种子节点之外的节点。
例如,网络节点1已经从历史记录或者种子节点获取了网络节点2的地址。网络节点1可通过网络节点2的地址与网络节点2进行通信。网络节点2会将自身存储的地址发送给网络节点1。网络节点1也可将自身存储的地址发送给网络节点2。
302、第一节点将获取的第二节点地址存储到第一记录表中。
其中,第一节点在获取到第二节点的地址后,可以通过预设的算法计算出第二节点地址在第一记录表中存储的位置,将第二节点地址存入该位置。
可选的,预设的算法可以是任何能够根据节点地址计算对应存储位置的算法。例如,哈希算法及其相关衍生算法等。
303、第一节点探测第一记录表中的节点地址是否连通。
可选的,第一节点可以以预设时间为周期探测第一记录表中的节点地址是否连通。
可选的,第一节点向第一记录表中的节点地址对应的节点发送信息回复请求。在预设时间内,若第一节点未收到该节点回复的信息,则确定该节点地址无法连通。在预设时间内,若第一节点收到该节点回复的信息,则确定该节点地址连通,将该节点地址加入第二记录表中。第一节点继续向第一记录表中记录的下一个节点地址对应的节点发送信息回复请求。
可选的,第一节点可以记录节点连通失败的次数,优先探测连通失败次数相比其他节点连通失败次数少的节点,或者,记录节点上一次探测失败的时间,优先探测上一次探测失败时间与当前时间间隔相比其他节点时间间隔大的节点。可见,通过本实施方式,可以避免第一节点在短时间内对同一个节点进行重复探测,从而提高探测时的效率。
例如,如图8所示,网络节点1的第一记录表中包括网络节点2~网络节点10的地址,并记录了网络节点2~网络节点10探测失败的次数。首先,网络节点1筛选器探测失败次数相比网络节点2~网络节点10中最小的网络节点5;然后,通过网络节点5的地址向网络节点5发送信息回复请求。若在预设的时间内,未收到网络节点5回复的信息,则确定网络节点5的地址无法连通。若在预设的时间内,收到网络节点5回复的信息,则确定网络节点5的地址连通,将网络节点5的地址加入第二记录表中。探测完网络节点5之后,网络节点1继续筛选网络节点2~网络节点4和网络节点6~网络节点10中探测失败次数最小的网络节点的地址进行探测,探测的方式和网络节点5同理,在此不再赘述。
304、第一节点将第一记录表中探测连通的节点地址加入第二记录表中。
可选的,在判定第二节点地址可以进行通信,将第二节点地址存入第二记录表中后,第一节点可以在第一记录表中删除已经存储到第二记录表中的第二节点地址,避免出现对同一节点地址进行重复探测的情况。
例如,网络节点1在对网络节点8进行探测时,在预设时间内收到了网络节点8回复的信息,则判断网络节点8的地址可以进行通信,将网络节点8的地址存入第二记录表中,然后删除第一记录表中网络节点8的地址。
305、第一节点通过第二记录表中的节点地址与对应的节点进行通信。
其中,第一节点选择第二记录表中的一个或多个节点地址,通过节点地址向对应的节点进行通信。例如,进行通信可以交互区块头信息或区块信息等。可选的,第一节点在选择第二记录表中的一个或多个节点地址时,可以是随机选择;可以是第一节点记录第二记录表中节点连通失败的次数,优先选择第二记录表中连通失败次数相比其他节点连通失败次数少的节点地址;可以是第一节点记录节点连通失败的时间,优先选择第一记录表中上一次探测失败时间与当前时间间隔相比其他节点时间间隔大的节点地址。
例如,第二记录表中记录了网络节点2~网络节点5的地址,且网络节点3连通失败的次数相比网络节点2、网络节点4和网络节点5连通失败的次数小,则网络节点1选择网络节点3的地址进行通信。
在一实施例中,如果第一节点需要与指定数量的其他节点进行通信,且此时第二记录表中节点地址数量小于指定数量,则第一节点选择第一记录表中的一个或多个节点地址将指定数量补足,通过第二记录表和第一记录表中选中的节点地址向对应的节点进行通信。
可见,通过实施图3所描述的方法,第一节点首先将获取的第二节点地址存储至第一记录表中,然后预先探测第一记录表中的节点地址能否连通。筛选出探测连通的节点地址加入第二记录表中。在对外进行通信时,第一节点与所述第二记录表中的节点地址与对应的节点进行通信。可见,通过实施本申请实施例,避免了通信时直接将信息发送给许多第一记录表中不能连通的节点,从而提高了通信时网络中节点之间信息传输的成功率。
请参见图4,图4是本申请实施例提供的又一种地址探测方法的流程示意图。如图4所示,地址探测方法包括但不限于如下步骤401~步骤406。步骤401~步骤406的执行主体为第一节点。其中:
401、第一节点获取网络中第二节点的地址。
402、第一节点将获取的第二节点地址存储到第一记录表中。
403、第一节点探测第一记录表中的节点地址是否连通。
404、第一节点将第一记录表中探测连通的节点地址加入第二记录表中。
步骤401~步骤404的具体实现方式与图3中步骤301~步骤304的具体实现方式相同,在此不再赘述。
405、第一节点根据目标参数从第二记录表中确定目标地址。
其中,目标参数可以是节点地址的连接失败次数、上一次与节点地址连接失败的时间与当前时间的时间间隔、与节点地址对应的节点进行通信的通信质量、与节点地址对应的节点进行通信的次数中的一个或多个。目标地址可以为一个地址或者多个地址。
其中,根据目标参数从第二记录表中确定目标地址的具体实现方式可包括以下两种方式。或者,还可以通过其他方式来确定目标地址,本申请实施例不做限定。
方式一:根据目标参数对第二记录表中的节点地址进行排序。将第二记录表中排列在预设位置之前的节点地址确定为目标地址。其中,预设的位置可以是排列在前N位的地址,N可以是任意正整数。
下面以排列在前三位的地址为目标地址为例来举例说明。第二记录表中包括网络节点地址2~网络节点地址10。网络节点1按照连接失败次数从小到大的顺序对网络节点地址2~网络节点地址10进行排序。其中,网络节点3、网络节点5和网络节点10排在前三位,则网络节点1将这三个节点的地址确定为目标地址。通过本实施方式,可以保证网络节点1优先与通信成功率最高的节点进行通信,能够进一步提高了网络中节点之间信息传输的成功率。
又例如,网络节点1按照上一次与网络节点地址连接失败的时间与当前时间的时间间隔从大到小的顺序对网络节点地址2~网络节点地址10进行排序。其中网络节点3、网络节点6和网络节点9排在前三位,则网络节点1将这三个节点的地址确定为目标地址。通过本实施方式,可以保证网络节点1优先与长时间未通信的节点进行通信,可以避免网络节点1在短时间内与同一个无法连通的节点进行通信,从而提高了网络中节点之间信息传输的成功率。
又例如,网络节点1按照通信质量从高到低的顺序对网络节点地址2~网络节点地址10进行排序,其中网络节点4~网络节点6排在前三位,则网络节点1将这三个节点的地址确定为目标地址。通过本实施方式,可以保证网络节点1优先与通信质量高的节点进行通信。
又例如,网络节点1按照与节点地址对应的节点进行通信的次数从小到大的顺序对网络节点地址2~网络节点地址10进行排序,其中网络节点2、网络节点5和网络节点8排在前三位,则网络节点1将网络节点2、网络节点5和网络节点8的地址确定为目标地址。通过本实施方式,可以保证网络节点1优先与新加入第二记录表的节点进行通信,避免了网络节点1在短时间内重复与同一个节点通信。
又例如,网络节点1选取多个目标参数,并为它们分配对应的权重,计算网络节点地址2~网络节点地址10的权值,按照从大到小的顺序对计算出来的权值进行排序,其中网络节点6~网络节点8排在前三位,则网络节点1将网络节点6~网络节点8的地址确定为目标地址。通过本实施方式,网络节点1可以筛选出综合条件最满足的节点进行通信。
方式二:根据目标参数采用预设算法进行计算,以从第二记录表中确定目标地址。其中,目标参数包括节点地址的连接失败次数时,节点地址的连接失败次数越大,该地址确定为目标地址的概率越小。
其中,目标参数包括节点地址的连接失败的时间与当前时间的时间间隔时,节点地址的连接失败的时间间隔越大,该地址确定为目标地址的概率越大。
其中,目标参数包括节点地址的通信质量时,节点地址的通信质量越高,该地址确定为目标地址的概率越大。
其中,目标参数包括节点地址的通信次数时,节点地址的通信越大,该地址确定为目标地址的概率越小。
406、第一节点通过第二记录表中的节点地址与对应的节点进行通信。
步骤406的具体实现方式与图3中步骤305的具体实现方式相同,在此不再赘述。
可见,通过实施图4所描述的方法,第一节点首先将获取节点地址存储至第一记录表中,然后预先探测所述第一记录表中的节点地址是否连通。第一节点筛选出探测连通的节点地址加入第二记录表中,根据目标参数对所述第二记录表中的节点地址进行排序,将第二记录表中排列在预设位置之前的节点地址确定为目标地址。在对外进行通信时,第一节点与第二记录表中的目标地址与对应的节点进行通信。通过目标对第二记录表中的地址进行排序,可以进一步提高网络中节点之间信息传输的成功率。
请参见图5,图5是本申请实施例提供的又一种地址探测方法的流程示意图。如图5所示,地址探测方法包括但不限于如下步骤501~步骤512。步骤501~步骤512的执行主体为第一节点。其中:
501、第一节点获取网络中第二节点的地址。
步骤501的具体实现方式与图3中步骤301的具体实现方式相同,在此不再赘述。
502、第一节点判断第一记录表和第二记录表中是否已存在第二节点地址。
具体地,第一节点在第一记录表和第二记录表中查看获取的第二节点地址是否已存在,若获取的第二节点地址已存在于第一记录表中,且未存在于第二记录表中,则执行步骤503,可选的判定获取的第二节点地址已存在于第一记录表中,且未存在于第二记录表中之后,也可以直接执行步骤507。
若第一记录表和第二记录表中都不存在第二节点地址,则执行步骤507。
若第一记录表和第二记录表中都存在第二节点地址,则结束本次流程操作,从头开始,继续对下一个获取的节点地址进行判断。
若第一记录表不存在第二节点地址,且第二记录存在第二节点地址,则结束本次流程操作,从头开始,继续对下一个获取的节点地址进行判断。
503、第一节点判断获取的第二节点地址在第一记录表中的副本数量是否小于第一阈值。
具体地,第一节点统计获取的节点地址在第一记录表中存储的副本数量,判断统计出来的副本数量是否小于第一阈值,若副本数量小于第一阈值,则执行步骤504;可选的,判定副本数量小于第一阈值之后,也可以直接执行步骤507。
若副本数量大于或等于第一阈值,则结束本次流程操作,从头开始,继续对下一个获取的节点地址进行判断。
504、第一节点判断获取的第二节点地址在第一记录表中的存储位置是否被占用。
具体地,第一节点通过预设的算法计算出获取的节点在第一记录表中对应的存储区域,查看该存储区域是否已经被占用,若该存储区域未被占用,则执行步骤507;若存储区域已被占用,则执行步骤505。
可选的,判定存储区域已被占用之后,也可以直接执行步骤506。
505、第一节点判断占用地址是否满足删除条件。
具体地,第一节点根据删除条件判断占用地址是否可以删除,若满足删除条件,则执行步骤506;若不满足删除条件,则结束本次流程操作,从头开始,继续对下一个获取的节点地址进行判断。
可选的,删除条件可以是:占用地址通信成功次数小于第二阈值或者占用地址在第一记录表中的副本数超过第三阈值。
506、第一节点删除占用地址。
具体地,第一节点将占用地址从存储区域中删除,清空该存储区域。
507、第一节点将获取的第二节点地址存储到第一记录表中。
508、第一节点探测第一记录表中的节点地址是否连通。
509、第一节点将第一记录表中探测连通的节点地址加入第二记录表中。
510、第一节点根据目标参数从第二记录表中确定目标地址。
511、第一节点通过第二记录表中的节点地址与对应的节点进行通信。
步骤507~步骤511的具体实现方式与图4中步骤402~步骤406的具体实现方式相同,在此不再赘述。
可见,通过实施图5所描述的方法,第一节点对获取节点地址进行一系列的判断筛选,将满足条件的存储至第一记录表中,不是盲目将获取的区块直接存入第一记录表中,从而减少了第一节点在探测第一记录表中节点地址能否连通时的工作量,避免了无意义的探测,提高了探测的效率。
上述详细阐述了本申请实施例的方法,为了便于更好地实施本申请实施例的上述方案,相应地,下面提供了本申请实施例的装置。
请参见图6,图6是本申请实施例提供的一种地址探测装置的结构示意图,该地址探测装置可以搭载在上述方法实施例中的第一节点上。图6所示的地址探测装置可以用于执行上述图3至图5所描述的方法实施例中的部分或全部功能。其中,各个单元的详细描述如下:
处理单元601,用于获取所述网络中的第二节点的地址;
所述处理单元601,还用于将所述第二节点地址存储至第一记录表中;
通信单元602,用于探测所述第一记录表中的所述节点地址是否连通;
所述处理单元601,还用于将探测连通的所述第一记录表中的节点地址加入第二记录表中;
所述通信单元602,还用于通过所述第二记录表中的节点地址与对应的节点进行通信;若第二记录表为空,则选取第一记录表中的节点地址与对应的节点进行通信。
在一实施方式中,在将探测连通的所述第一记录表中的节点地址加入第二记录表中之后,所述处理单元601还用于:
根据目标参数从所述第二记录表中确定目标地址;所述目标参数包括节点地址的连接失败次数、上一次与节点地址连接失败的时间与当前时间的时间间隔、与节点地址对应的节点进行通信的通信质量、与节点地址对应的节点进行通信的次数中的至少一个;
所述通过第二记录表中的节点地址与对应的节点进行通信,包括:
通过所述第二记录表中的所述目标地址与对应的节点进行通信。
在一实施方式中,所述处理单元601还用于,根据目标参数从所述第二记录表中确定目标地址,具体用于:
根据所述目标参数对所述第二记录表中的节点地址进行排序;
将所述第二记录表中排列在预设位置之前的节点地址确定为目标地址。
在一实施方式中,所述处理单元601还用于:
按照连接失败次数从小到大的顺序对所述第二记录表中的节点地址进行排序;
或者,所述目标参数包括上一次与节点地址连接失败的时间与当前时间的时间间隔,所述根据目标参数对所述第二记录表中的节点地址进行排序,包括:
按照时间间隔从大到小的顺序对所述第二记录表中的节点地址进行排序;
或者,所述目标参数包括与节点地址对应的节点进行通信的通信质量,所述根据目标参数对所述第二记录表中的节点地址进行排序,包括:
按照通信质量从高到低的顺序对所述第二记录表中的节点地址进行排序;
或者,与节点地址对应的节点进行通信的次数,所述根据目标参数对所述第二记录表中的节点地址进行排序,包括:
按照通信次数从小到大的顺序对所述第二记录表中的节点地址进行排序。
在一实施方式中,所述处理单元601还用于,获取所述网络中的第二节点地址,具体用于:
从配置文件中获取所述第二节点的地址;或者,
获取历史记录的所述第二节点的地址;或者,
从网络中的种子节点获取所述第二节点的地址;或者,
从所述网络中的其他节点获取所述第二节点的地址,所述其他节点为所述网络中除本节点和所述种子节点之外的节点。
在一实施方式中,在所述将所述第二节点的地址存储至第一记录表中之前,所述处理单元601还用于:
判断所述第一记录表和所述第二记录表中是否已存在所述第二节点的地址;
若所述第一记录表和所述第二记录表中不存在所述第二节点的地址,则将所述第二节点的地址存储到所述第一记录表中;
若所述第一记录表中存在所述的第二节点的地址,且所述第二记录表中不存在所述第二节点的地址,则将所述第二节点地址存储到所述第一记录表中。
在一实施方式中,在判定所述第一记录表中存在所述第二节点的地址,且所述第二记录表中不存在所述第二节点的地址之后,所述处理单元601还用于:
判断所述第一记录表中所述第二节点的地址的副本数量是否小于第一阈值;
若所述第二节点的地址在所述第一记录表中的副本数量小于所述第一阈值,则执行将所述第二节点的地址存储到所述第一记录表中的步骤。
在一实施方式中,在判定所述第二节点的地址在所述第一记录表中的副本数量小于第一阈值之后,所述处理单元601还用于:
确定所述第二节点的地址在所述第一记录表中的存储位置;
确定所述存储位置是否被占用;
若所述存储位置未被占用,则执行所述将所述第二节点的地址存储到所述第一记录表中的步骤。
根据本申请的一个实施例,图3至图5所示的地址探测方法所涉及的部分步骤可由图6所示的地址探测装置中的各个单元来执行。例如,图3中所示的步骤301、步骤302和步骤304可由图6所示的处理单元601执行,步骤303和步骤305可由图6所示的通信单元602执行;又如,图5中所示的步骤501~步骤508、步骤510和步骤511可由图6所示的处理单元601执行,步骤509和步骤512可由图6所示的通信单元602执行。图6所示的地址探测装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,地址探测装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算装置上运行能够执行如图3至图5中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图6中所示的地址探测装置,以及来实现本申请实施例的地址探测方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算装置中,并在其中运行。
基于同一发明构思,本申请实施例中提供的地址探测装置解决问题的原理与有益效果与本申请方法实施例中第一节点解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
请参阅图7,图7为本申请实施例提供的一种地址探测设备的结构示意图,所述地址探测设备包括处理器701、通信接口702和存储器703。其中,处理器701、通信接口702和存储器703可通过总线或其他方式连接,本申请实施例以通过总线连接为例。其中,处理器701(或称中央处理器(Central Processing Unit,CPU))是终端的计算核心以及控制核心,其可以解析终端内的各类指令以及处理终端的各类数据,例如:CPU可以用于解析用户向终端所发送的开关机指令,并控制终端进行开关机操作;再如:CPU可以在终端内部结构之间传输各类交互数据,等等。通信接口702可选的可以包括标准的有线接口、无线接口(如WI-FI、移动通信接口等),受处理器701的控制可以用于收发数据;通信接口702还可以用于终端内部信令或者指令的传输以及交互。存储器703(Memory)是终端中的记忆设备,用于存放程序和数据。可以理解的是,此处的存储器703既可以包括终端的内置存储器,当然也可以包括终端所支持的扩展存储器。存储器703提供存储空间,该存储空间存储了终端的操作系统,可包括但不限于:Android系统、iOS系统、Windows Phone系统等等,本申请对此并不作限定。
在本申请实施例中,处理器701通过运行存储器703中的可执行程序代码,执行如下操作:
获取所述网络中的第二节点的地址;
将所述第二节点的地址存储至第一记录表中;
通过通信接口702探测所述第一记录表中的节点地址是否连通;
将探测连通的所述第一记录表中的节点地址加入第二记录表中;
通过通信接口702通过所述第二记录表中的节点地址与对应的节点进行通信。
作为一种可选的实施方式,所述将探测连通的所述第一记录表中的节点地址加入第二记录表中之后,处理器701通过运行存储器703中的可执行程序代码,还执行如下操作:
根据目标参数从所述第二记录表中确定目标地址;所述目标参数包括节点地址的连接失败次数、上一次与节点地址连接失败的时间与当前时间的时间间隔、与节点地址对应的节点进行通信的通信质量、与节点地址对应的节点进行通信的次数中的至少一个;
处理器701通过通信接口702通过第二记录表中的节点地址与对应的节点进行通信的具体实施方式为:
通过通信接口702通过所述第二记录表中的所述目标地址与对应的节点进行通信。
作为一种可选的实施方式,处理器701根据目标参数从所述第二记录表中确定目标地址的具体实施方式为:
所述目标参数包括节点地址的连接失败次数,所述根据目标参数对所述第二记录表中的节点地址进行排序,包括:
按照连接失败次数从小到大的顺序对所述第二记录表中的节点地址进行排序;
或者,所述目标参数包括上一次与节点地址连接失败的时间与当前时间的时间间隔,所述根据目标参数对所述第二记录表中的节点地址进行排序,包括:
按照时间间隔从大到小的顺序对所述第二记录表中的节点地址进行排序;
或者,所述目标参数包括与节点地址对应的节点进行通信的通信质量,所述根据目标参数对所述第二记录表中的节点地址进行排序,包括:
按照通信质量从高到低的顺序对所述第二记录表中的节点地址进行排序;
或者,与节点地址对应的节点进行通信的次数,所述根据目标参数对所述第二记录表中的节点地址进行排序,包括:
按照通信次数从小到大的顺序对所述第二记录表中的节点地址进行排序。
作为一种可选的实施方式,处理器701通过通信接口702获取所述网络中的第二节点的地址的具体实施方式为:
通过通信接口702从配置文件中获取所述第二节点的地址;或者,
通过通信接口702获取历史记录的所述第二节点的地址;或者,
通过通信接口702从网络中的种子节点获取所述第二节点的地址;或者,
通过通信接口702从所述网络中的其他节点获取所述第二节点的地址,所述其他节点为所述网络中除本节点和所述种子节点之外的节点。
作为一种可选的实施方式,所述将所述第二节点的地址存储至第一记录表中之前,所述处理器701通过运行存储器703中的可执行程序代码,还执行如下操作:
判断所述第一记录表和所述第二记录表中是否已存在所述第二节点的地址;
若所述第一记录表和所述第二记录表中不存在所述第二节点的地址,则将所述第二节点的地址存储到所述第一记录表中;
若所述第一记录表中存在所述第二节点的地址,且所述第二记录表中不存在所述第二节点的地址,则将所述第二节点的地址存储到所述第一记录表中。
作为一种可选的实施方式,在判定所述第一记录表中存在所述第二节点的地址,且所述第二记录表中不存在所述第二节点的地址之后,所述处理器701通过运行存储器703中的可执行程序代码,还执行如下操作:
判断所述第一记录表中所述第二节点的地址的副本数量是否小于第一阈值;
若所述第二节点的地址在所述第一记录表中的副本数量小于所述第一阈值,则执行将所述第二节点的地址存储到所述第一记录表中的步骤。
作为一种可选的实施方式,在判定所述第二节点的地址在所述第一记录表中的副本数量小于第一阈值之后,所述处理器701通过运行存储器703中的可执行程序代码,还执行如下操作:
确定所述第二节点的地址在所述第一记录表中的存储位置;
确定所述存储位置是否被占用;
若所述存储位置未被占用,则执行所述将所述第二节点的地址存储到所述第一记录表中的步骤。
基于同一发明构思,本申请实施例中提供的地址探测设备解决问题的原理与有益效果与本申请方法实施例中第一节点解决问题的原理和有益效果相似,可以参见方法的实施的原理和有益效果,为简洁描述,在这里不再赘述。
本申请实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行上述方法实施例所述的地址探测方法。
本申请实施例还提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述方法实施例所述的地址探测方法。
需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例装置中的模块可以根据实际需要进行合并、划分和删减。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,可读存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
以上所揭露的仅为本申请一种较佳实施例而已,当然不能以此来限定本申请之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本申请权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (10)
1.一种地址探测方法,其特征在于,应用于网络中的第一节点,所述方法包括:
获取所述网络中的第二节点的地址;
判断第一记录表和第二记录表中是否已存在所述第二节点的地址;
若所述第一记录表中存在所述第二节点的地址且所述第二记录表中不存在所述第二节点的地址,则判断所述第一记录表中所述第二节点的地址的副本数量是否小于第一阈值;
若所述第二节点的地址在所述第一记录表中的副本数量小于所述第一阈值,则将所述第二节点的地址存储至第一记录表中;
探测所述第一记录表中的节点地址是否连通;
将探测连通的所述第一记录表中的节点地址加入第二记录表中;
通过所述第二记录表中的节点地址与对应的节点进行通信。
2.根据权利要求1所述的方法,其特征在于,所述将探测连通的所述第一记录表中的节点地址加入第二记录表中之后,所述方法还包括:
根据目标参数从所述第二记录表中确定目标地址;所述目标参数包括节点地址的连接失败次数、上一次与节点地址连接失败的时间与当前时间的时间间隔、与节点地址对应的节点进行通信的通信质量、与节点地址对应的节点进行通信的次数中的至少一个;
所述通过第二记录表中的节点地址与对应的节点进行通信,包括:
通过所述第二记录表中的所述目标地址与对应的节点进行通信。
3.根据权利要求2所述的方法,其特征在于,所述根据目标参数从所述第二记录表中确定目标地址,包括:
根据所述目标参数对所述第二记录表中的节点地址进行排序;
将所述第二记录表中排列在预设位置之前的节点地址确定为目标地址。
4.根据权利要求3所述的方法,其特征在于,
所述目标参数包括节点地址的连接失败次数,所述根据目标参数对所述第二记录表中的节点地址进行排序,包括:
按照连接失败次数从小到大的顺序对所述第二记录表中的节点地址进行排序;
或者,所述目标参数包括上一次与节点地址连接失败的时间与当前时间的时间间隔,所述根据目标参数对所述第二记录表中的节点地址进行排序,包括:
按照时间间隔从大到小的顺序对所述第二记录表中的节点地址进行排序;
或者,所述目标参数包括与节点地址对应的节点进行通信的通信质量,所述根据目标参数对所述第二记录表中的节点地址进行排序,包括:
按照通信质量从高到低的顺序对所述第二记录表中的节点地址进行排序;
或者,与节点地址对应的节点进行通信的次数,所述根据目标参数对所述第二记录表中的节点地址进行排序,包括:
按照通信次数从小到大的顺序对所述第二记录表中的节点地址进行排序。
5.根据权利要求1~4中任意一项所述的方法,其特征在于,所述获取所述网络中的第二节点的地址,包括:
从配置文件中获取所述第二节点的地址;或者,
获取历史记录的所述第二节点的地址;或者,
从网络中的种子节点获取所述第二节点的地址;或者,
从所述网络中的其他节点获取所述第二节点的地址,所述其他节点为所述网络中除本节点和所述种子节点之外的节点。
6.根据权利要求1~4中任意一项所述的方法,其特征在于,所述将所述第二节点的地址存储至第一记录表中之前,所述方法还包括:
若所述第一记录表和所述第二记录表中不存在所述第二节点的地址,则将所述第二节点的地址存储到所述第一记录表中。
7.根据权利要求1所述的方法,其特征在于,在判定所述第二节点的地址在所述第一记录表中的副本数量小于第一阈值之后,所述方法还包括:
确定所述第二节点的地址在所述第一记录表中的存储位置;
确定所述存储位置是否被占用;
若所述存储位置未被占用,则执行所述将所述第二节点的地址存储到所述第一记录表中的步骤。
8.一种地址探测装置,搭载于网络中的第一节点,所述地址探测装置包括:
处理单元,用于获取所述网络中的第二节点的地址;以及用于判断第一记录表和第二记录表中是否已存在所述第二节点的地址;若所述第一记录表中存在所述第二节点的地址且所述第二记录表中不存在所述第二节点的地址,则判断所述第一记录表中所述第二节点的地址的副本数量是否小于第一阈值;若所述第二节点的地址在所述第一记录表中的副本数量小于所述第一阈值,则将所述第二节点的地址存储至第一记录表中;
通信单元,用于探测所述第一记录表中的节点地址是否连通;
所述处理单元,还用于将探测连通的所述第一记录表中的节点地址加入第二记录表中;
所述通信单元,还用于通过所述第二记录表中的节点地址与对应的节点进行通信。
9.一种地址探测设备,其特征在于,包括:处理器、存储器和通信接口,所述处理器、所述存储器和所述通信接口相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述通信接口用于与除自身外的其他节点进行通信,所述处理器被配置用于调用所述程序指令,执行如权利要求1至7中任一项所述的地址探测方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一条或多条指令,所述一条或多条指令适于由处理器加载并执行如权利要求1至7任一项所述的地址探测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910897575.0A CN110557304B (zh) | 2019-09-20 | 2019-09-20 | 一种地址探测方法、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910897575.0A CN110557304B (zh) | 2019-09-20 | 2019-09-20 | 一种地址探测方法、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110557304A CN110557304A (zh) | 2019-12-10 |
CN110557304B true CN110557304B (zh) | 2022-10-14 |
Family
ID=68741053
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910897575.0A Active CN110557304B (zh) | 2019-09-20 | 2019-09-20 | 一种地址探测方法、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110557304B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111064624A (zh) * | 2019-12-29 | 2020-04-24 | 苏州浪潮智能科技有限公司 | 一种整机柜节点定位方法、装置、设备及可读存储介质 |
CN112055077B (zh) * | 2020-09-02 | 2023-04-18 | 杭州复杂美科技有限公司 | 区块链接入方法、设备和存储介质 |
CN112583897A (zh) * | 2020-11-30 | 2021-03-30 | 北京百度网讯科技有限公司 | 规则引擎的数据目的地创建方法、装置、电子设备和存储介质 |
CN112804299B (zh) * | 2020-12-30 | 2023-02-28 | 成都知道创宇信息技术有限公司 | 节点测绘方法、装置、测绘设备及可读存储介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105635331B (zh) * | 2014-11-18 | 2019-10-18 | 阿里巴巴集团控股有限公司 | 一种分布式环境下的服务寻址方法及装置 |
CN106533722B (zh) * | 2015-09-11 | 2019-06-21 | 北京国双科技有限公司 | 网络监测方法和装置 |
CN110162424B (zh) * | 2019-05-23 | 2022-03-22 | 腾讯科技(深圳)有限公司 | 故障处理方法、系统、装置及存储介质 |
-
2019
- 2019-09-20 CN CN201910897575.0A patent/CN110557304B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN110557304A (zh) | 2019-12-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110557304B (zh) | 一种地址探测方法、设备及计算机可读存储介质 | |
CN111641583B (zh) | 一种物联网资源接入系统及资源接入方法 | |
JP5902355B2 (ja) | コンピューティング装置の無線の再接続所要時間を削減するための混合範囲外/範囲内予測計算 | |
CN108696581B (zh) | 分布式信息的缓存方法、装置、计算机设备以及存储介质 | |
CN109660639B (zh) | 一种数据上传方法、设备、系统及介质 | |
CN107070752B (zh) | 一种长连接容量的测试方法及测试系统 | |
US9641595B2 (en) | System management apparatus, system management method, and storage medium | |
CN111580959B (zh) | 一种数据写入方法、数据写入装置、服务器及存储介质 | |
CN108960378B (zh) | 一种数据下载方法、系统、装置和存储介质 | |
CN115004650A (zh) | 节点配置方法、装置、分布式系统及计算机可读介质 | |
CN111507695A (zh) | 数据处理方法、装置、节点设备及存储介质 | |
CN114173396B (zh) | 终端联网时间的确定方法和装置、电子设备和存储介质 | |
CN111935029B (zh) | 网关负载均衡方法和装置、存储介质及电子设备 | |
CN111935337B (zh) | 聚合链路的mac地址保活方法、设备和存储介质 | |
CN110650135B (zh) | 一种节点处理方法、相关设备及计算机可读存储介质 | |
CN111064636B (zh) | 前置机连接的控制方法、装置、系统、计算机设备 | |
CN113259449A (zh) | 分布式存储方法、装置、设备及存储介质 | |
CN110572473B (zh) | 一种区块头同步方法、设备及计算机可读存储介质 | |
CN111431951A (zh) | 一种数据处理方法、节点设备、系统及存储介质 | |
CN112801769B (zh) | 账务数据处理方法、装置及系统 | |
CN111125255B (zh) | 区块数据的处理方法、装置、终端及可读存储介质 | |
EP4319254A1 (en) | Load query processing method and apparatus, storage medium, and electronic apparatus | |
CN110196836B (zh) | 一种数据存储方法及装置 | |
CN111866041B (zh) | 业务设备选取、云存储集群更新的方法、装置及存储介质 | |
CN110995463B (zh) | Ap自恢复的方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |