CN102292963A - 网络中的地址分配 - Google Patents
网络中的地址分配 Download PDFInfo
- Publication number
- CN102292963A CN102292963A CN200980155204XA CN200980155204A CN102292963A CN 102292963 A CN102292963 A CN 102292963A CN 200980155204X A CN200980155204X A CN 200980155204XA CN 200980155204 A CN200980155204 A CN 200980155204A CN 102292963 A CN102292963 A CN 102292963A
- Authority
- CN
- China
- Prior art keywords
- node
- server
- network
- client
- address
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5061—Pools of addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/40—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5007—Internet protocol [IP] addresses
- H04L61/5014—Internet protocol [IP] addresses using dynamic host configuration protocol [DHCP] or bootstrap protocol [BOOTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1012—Server selection for load balancing based on compliance of requirements or conditions with available server resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Small-Scale Networks (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
一种网络中的地址分配的方法,包括:根据节点之间的协商,确定第一节点是否应承担负责将网络地址分发给客户端并管理所述网络地址的服务器角色。如果进行了该确定,则向第一节点提供网络地址池。本发明提供了一种根据例如网络需求或业务负载在网络的服务器之间动态重新分配地址池的方法。
Description
技术领域
本发明涉及网络中的地址分配,具体涉及将网络地址池动态分配给具有负责将网络地址分发给具有客户端角色的节点并管理网络地址的服务器角色的网络节点。
背景技术
创建自主计算机***的思想主要依赖于计算机网络中的自动配置的概念。在没有用户干预的情况下在动态网络中建立通信是下一代计算机网络的最重要议题之一。与动态网络中的自动配置有关的最大挑战之一是寻址——网络中对地址的自动分发和管理是自主通信环境的关键部分,由于诸如移动性、策略控制和间断性连接的存在,使其变得进一步复杂。
在未来的网络中所期望的是,无需用户手动改变设备配置,节点就会连接至网络和从网络断开。通过用于自举的鲁棒机制,节点可以通过联系该节点希望加入的网络的现有节点来对自身进行配置,并发起通信。提出了多种方案来实现自配置。这些方案的示例包括自组织网络的动态寻址、寻址管理和动态配置的机制。
已知定义动态环境中的节点的地址的方法,但是这些方法通常依赖于固定和结构化网络的存在和帮助,在该固定和结构化网络中,DHCP(动态主机配置协议)或另一种机制可用。其他解决方案描述了一种机制,其中,节点参考其硬件地址(例如,物理地址,如MAC(媒体接入控制)地址)并使用该信息来计算其自身的网络地址。然而,当地址是专属的时,需要一种防止节点使用已分配给其他节点的地址的机制。类似地,其他提议建议了节点可以通过将来自其物理地址的信息和预定义网络相关信息进行组合来创建其自身的网络地址,以避免寻址冲突,如在例如美国专利申请US 2003/0081578、美国专利申请US 2004/0240474A1或美国专利US 6,728,232B2中所述。
其他解决方案考虑了一种机制,其中,节点从服务器所发送的通告消息中取得信息并将其与关于其自身接口类型的信息或其他预定义信息进行组合,创建其自身的有效物理地址——参见美国专利申请US2007/01600514。然而,这同样需要提供固定服务器。
针对使用特定地址连接至归属域的节点,提出了其他策略。当移动至其他区域并与其他域进行接口连接时,节点接收或计算要在其保持远离其归属域期间使用的临时地址——参见例如美国专利:5,708,655或者Charles Perkins,“IP Mobility Support for IPv4”,RFC3344,August 2002。
试错法(“试探方法”)是许多域问题中的常用方法。在寻址的上下文中,节点仅产生其自身的地址。然后,该节点验证该地址是否已被网络中的另一节点使用。如果未被使用,则该节点将所产生的地址专属于自身。
还提出了提供一个或多个承载可用地址量的服务器。这些服务器负责管理节点的有效地址所取自的地址池——参见例如美国专利US6,993,583。
发明内容
本发明的第一方面提供了一种网络中的地址分配的方法。所述方法包括:根据节点之间的协商,确定第一节点是否应承担负责将网络地址分发给客户端并管理网络地址的服务器角色。如果进行了该确定,则向第一节点提供网络地址池。
应当注意,在说明书中,使用术语“第一节点”来允许特定节点的一致标识。术语“第一节点”不要求该节点是在网络启动之后请求与网络的关联的在时间顺序上的第一节点。在以下所述的实施例中,第一节点已经与网络相关联,而在其他实施例中,第一节点是请求与网络的关联的节点。
服务器节点可以向第一节点提供网络地址池。(提供网络地址池的服务器节点可能已经确定了该节点应当承担服务器角色,但本发明不要求这一点。仅可以向承担服务器角色的节点分配网络地址池。)因此,本发明根据网络需求来提供地址池在网络的服务器之间的动态重新分配。作为网络中的节点之间的协商的结果,进行地址池的重新分配,因此,可以称为,在网络不需要用于将地址池集中式分配给服务器的组件的意义上,可以认为自动进行地址池的重新分配。(所述方法要求最初向网络分配网络地址池。这可以以任何合适的方式进行:例如,最初,网络管理器可以将网络中的一个节点配置为服务器并提供网络地址池。然后,该已存在的服务器将向进入网络的下一个节点提供有效地址——本发明涉及随后在网络的节点之间分配向网络指派的网络地址的方式。)
所述确定可以在以下时刻之一处执行:
在网络启动时;
在第一节点请求与网络的关联时;
在网络的服务器节点变为过载时;或者
在网络的服务器节点离开网络的时刻。
本发明不限于在这些时刻之一处执行所述确定,也可以在其他时刻处执行所述确定。例如,如果网络节点被视为充当桥接节点(即,所述网络节点将业务从客户端节点中继至服务器节点),则可以提议将所述网络节点变为服务器。
当在第一节点请求与网络的关联时执行所述确定时,如果所述确定是第一节点不承担服务器角色,则可以代之以向第一节点供应网络中的客户端角色。
在其他实施例中,第一节点是网络中存在的客户端节点。
如果第一节点承担服务器角色,则所述方法可以包括:随后向第一节点提供另一网络地址池。如果第一节点需要比其原始地址池中的更多的地址以分配给其客户端,则第一节点可以与网络中的其他服务器进行协商以获得更多地址。该另一地址池可以来自提供了原始地址池的相同服务器,或者,该另一地址池可以来自网络中的另一服务器。
在接收到第一节点不再执行服务器角色的指示时,服务器节点可以随后收回对在第一节点承担服务器角色时分配给第一节点的网络地址池(可以包括第一节点已进而分配给后续服务器的地址)的责任。例如,所述指示可以是与第一节点的通信的故障,这可能是由于例如第一节点离开网络或者第一节点发生故障而引起的。
在接收到第一节点不再执行服务器角色的指示之后,在重新承担对地址池的责任之前,服务器节点可以等待预定时间段。如果由于通信链路的故障,暂时丢失与第一节点的通信,那么在重新建立通信链路时允许第一节点保持其原始地址池,从而不需要第一节点向其客户端指派新地址。
服务器节点可以避免收回对第一节点已分配给一个或多个其他服务器的第一地址池中的地址的责任。第一节点已分配给任何其他服务器的地址可以保留在这些其他服务器处,从而不需要向这些其他服务器提供新的网络地址池。
当所述确定是第一节点应承担服务器角色时,第一节点随后可以将网络的至少一个节点选为备份服务器。第一节点可以将其客户端节点中的至少一个选为备份服务器。如果第一节点发生故障,则其角色可以由备份服务器承担。
本发明的第二方面提供了一种将节点与网络相关联的方法。所述方法包括:从所述节点向所述网络发送关联请求。在所述节点处接收到来自所述网络的节点的响应时,所述节点确定所接收的响应是来自所述网络的客户端节点还是来自所述网络的服务器节点。然后,所述节点可以根据所接收的响应,作为客户端或作为服务器关联于所述网络。
如果所述节点接收到来自所述网络的服务器节点的响应,则根据所述节点与所述服务器节点之间的协商确定所述节点可以作为客户端或作为服务器关联于所述网络。
如果所述节点未接收到来自所述网络的服务器节点的响应但接收到来自所述网络的客户端节点的响应,则所述节点可以作为n跳客户端(n>1)关联于所述网络。“n跳客户端”是不直接关联于(即,通过一个网络链路)服务器的客户端,而是经由至少一个中间客户端(称为“桥接节点”)关联于服务器。
如果所述节点作为服务器关联于所述网络,则所述方法还可以包括:所述节点在所述节点处接收要分发给客户端的网络地址池。
本发明的第三方面提供了一种网络节点,适于:根据节点之间的协商,确定第一节点是否应承担负责将网络地址分发给客户端并管理网络地址的服务器角色;以及如果应承担,则配置为向第一节点提供网络地址池。
网络节点可以是直接或远程关联于网络的服务器,其自身将在所述确定是第一节点应承担服务器角色的情况下向第一节点提供网络地址池。
本发明的第四方面提供了一种网络节点,该网络节点适于:向网络发送关联请求;接收来自网络的节点的响应;确定所接收的响应是来自网络的客户端节点还是来自网络的服务器节点;以及根据所接收的响应,作为客户端或作为服务器关联于网络。
本发明的第五方面提供了一种包含指令的计算机可读介质,所述指令在处理器上执行时使网络节点执行第一或第二方面中限定的方法。
本发明提供了一种网络中的“地址自组织”(“SooA”)的方法。SooA是实现网络中地址的分发和管理的机制,允许以动态的方式将网络地址池分配给网络中的服务器,即,分配给特定服务器的网络地址池不是固定的,而是可以根据例如网络中的网络需求和/或业务状况而随时间改变。与上述在先方法相比,SooA是完全自主的,而一些在先解决方案使用DHCP或其他机制来管理地址分发,SooA定义了一种自配置环境,其中,不需要其他支持机制。使用动态指派的地址池的思想,所提出的策略实现了鲁棒的、分布式的、可扩缩的且可自动管理的地址分配机制。
用于在动态网络中提供动态寻址的现有解决方案一般适用于结构化网络,其中,提供了负责寻址的中央机制(如DHCP)。即使在如动态网络的解决方案所述的情况下,在先解决方案一般也无法适用,即,不是对于定义了动态网络的所有情形都适用。在不可能有与结构化网络的关联的情形下,DHCP等可能不可用于管理地址分发。特别地,动态网络的启动是主要在必须支持自寻址时的关键阶段。
许多在先解决方案假定在网络中不存在DHCP并通常依赖于地址池的概念。然而,仅将网络地址划分为池并在服务器之间分发这些网络地址是不够的。尤其是在高度动态和结构化的网络中,需要对该地址分发的鲁棒管理。对所分发的地址的管理需要附加协议。
本发明定义了一种用于在自配置网络中分配地址(或自举寻址)的机制。地址分配对于保持网络功能来说是关键的。在动态网络中寻址的当前解决方案一般依赖于使用DHCP或另一固定机制来提供有效地址并管理它们。本发明在不支持预定义和/或固定外部实体的情况下分发地址。此外,寻址的当前解决方案通常需要大的协议栈来管理分发。本发明的机制仅使用一个集成所有必需功能的协议来保证高效寻址。
总体上,自举是第一步以及自配置网络的基本功能。自配置网络直接依赖于高效自寻址分配,以在与网络相关联的节点之间提供关联。
本发明的SooA方法提供了一种在动态网络中对网络地址进行自分发和自管理的机制。
本发明的SooA方法是一种在例如由承担服务器角色的节点(“服务器”)和承担客户端角色的节点(“客户端”)构成的层级结构中对网络内的一些或所有节点进行组织的机构。服务器的目的是接管地址分配过程,服务器负责分发和管理地址。向每个服务器提供至少一个网络地址池。通过服务器之间的交互,可用地址分布在网络中并专属于想要与一些其他服务器相关联的节点和用建立通信信道的节点。优选地,在本发明的SooA方法中使用一个或多个安全机制,以保证对网络资源(如认证、密码术等)的正确接入和利用。负责地址分配的服务器自身可以排列在层级中,如例如图1或图21所示。(应当注意,在网络中可能存在不作为该服务器层级的一部分的另外的服务器。)
当节点(可以是新节点或网络的现有客户端节点)在网络中承担服务器角色时,已充当服务器的另一节点向该新服务器节点提供可用地址池。这允许在服务器之间分发地址,然后,服务器可以将这些地址分配给客户端和其他服务器。这种分发创建了遵循如图1所示的树形结构的地址分配层级。在图1的结构中,在层级中,服务器10.2.0.0和服务器10.3.0.0均在服务器10.0.0.0以下,服务器10.3.2.0、服务器10.3.3.0和服务器10.3.4.0均在服务器10.3.0.0以下。该结构与例如DNS结构类似地进行操作,但控制名称至地址的转换,本发明的解决方案存储与所委派的地址相关的信息并存储哪个节点正在管理该信息。使用该结构,节点能够以非常高效和可扩缩的方式查阅和应答其他服务器,这是由于以动态但结构化的方式分发信息库。
具有客户端角色的节点(或“客户端”)不对寻址进行任何控制。然而,这些节点在实现其他客户端和服务器之间的关联时扮演重要角色。当节点想要与网络相关联时,其发起服务器查找过程。已与服务器相关联的客户端可以在新节点与服务器之间桥接通信。因此,如果节点与服务器不足够近以直接与其相关联,则节点可以使用现有客户端来到达这样的服务器。(如以下更详细描述的,服务器节点还可以承担桥接角色。)
如果服务器知道客户端已经经常用作桥,则该服务器可以根据例如请求的可配置阈值或其当前工作负载,选择这样的客户端作为比其低的级别的服务器。
仍具有未分配的地址的过载服务器也可以选择通过将其客户端中的一个或多个(甚至全部)移至新服务器来划分其工作负载。服务器通过向现有客户端发送消息来邀请现有客户端变为新服务器,并且,如果可能的话,客户端变为来自其“父服务器”的工作负载的新服务器收集部分。
为了保持对地址分发的更好控制,每个服务器保存分配给其客户端的所有地址和分配给其他服务器的所有池的历史。利用这种追踪,本发明避免了地址丢失。这是重要的,因为利用这种控制,本发明不需要针对地址管理的任何附加协议。
“第一级别”的服务器的创建(例如,图1中的服务器10.0.0.0的创建)提出了自动化环境中的挑战。本发明不解决这种可以以任何合适方式执行的初始产生。本发明的描述假定初始节点已接收用于指示将由这些初始节点管理网络地址池的一些信息。例如,可以使用静态配置或策略来指定该分配。可以将这些初始服务器与DNS根服务器进行比较,DNS根服务器呈现了更低的动态和更强的计算能力。
附图说明
参照附图,作为示例,进一步描述本发明的实施例,在附图中:
图1是示意了服务器层级的示意图;
图2是具有客户端和服务器的网络的示意图;
图3是根据本发明实施例的方法的示意流程图;
图4是根据本发明实施例的方法的示意流程图;
图5是根据本发明实施例的方法的示意流程图;
图6是根据本发明实施例的方法的示意流程图;
图7是根据本发明实施例的方法的示意流程图;
图8是根据本发明实施例的方法的示意流程图;
图9是根据本发明实施例的方法的示意流程图;
图10是根据本发明实施例的方法的示意流程图;
图11是根据本发明实施例的方法的示意流程图;
图12是根据本发明实施例的方法的示意流程图;
图13是根据本发明实施例的方法的示意流程图;
图14是根据本发明实施例的方法的示意流程图;
图15是根据本发明实施例的方法的示意流程图;
图16是根据本发明实施例的方法的示意流程图;
图17是服务器与其备份服务器之间的消息交换的示意图;
图18是服务器与其备份服务器之间的消息交换的示意图;
图19是服务器与其备份服务器之间的消息交换的示意图;
图20是根据本发明实施例的方法的示意流程图;
图21是服务器层级的示意图;
图22是服务器层级的示意图;
图23示意了服务器层级内的地址池;
图24是根据本发明实施例的方法的示意流程图;
图25是本发明的网络节点的示意图。
具体实施方式
图2示意了地址分发由分布在网络上的服务器(黑圆圈)处理的基本情形。服务器向其客户端中的每一个提供有效地址。客户端(白圆圈)不一定需要直接关联于服务器(即,通过1跳关联)。当新客户端通过另一客户端与服务器建立链接时,可以说,该新客户端与服务器相距至少2跳。在图2中,客户端A与服务器B相距2跳,所有其他客户端直接关联于(即,通过1跳关联)其相应服务器。
在图2中,服务器与其相应客户端之间的链路由双向箭头表示。不表示服务器-客户端层级的链路被画作点线。在第一种情况下,在节点之间建立“寻址关系”,指示在这些链路中将发送用于保持节点和服务器知道地址分配和可用性的所有管理信息。另一方面,点线表示将仅用于在节点之间交换数据的链路。(应当注意,一般将存在图2所示的服务器之间的寻址关系(可能涉及向图2所示的服务器提供其地址池的一个或多个更高级别服务器);图2中省略了该寻址关系。)
本发明由用于在自配置网络中分发和管理地址的自主机制构成。三个元素表示节点可在网络中承担的状态:新节点、服务器和客户端。在网络启动时或之后作为新节点首先与网络相关联的节点将在验证网络中不存在其他节点(验证不存在的过程超出了本发明的范围,可以使用任何合适的过程)之后开始对服务器状态的协商。作为另一新节点随后与网络相关联的节点将是协商的主体,该协商用于确定其是作为客户端还是作为服务器与网络相邻。参照一般自组织网络(可以是或可以不是移动网络)来描述本发明的实施例,这是由于这些网络呈现更高的动态,但是,本发明不限于此。
服务器单元
由于服务器负责地址分发和管理,因此其与寻址相关的功能比客户端的更复杂。具有充足的处理能力和存储容量的节点是服务器的自然候选。节点稳定性可以被视为对处理能力、节点处可用的存储空间以及节点离开网络的风险的组合进行反映的属性。(所期望的是,充当服务器的节点离开网络的风险较低,这是由于如果节点要离开网络,那么服务器的客户端将必须得到新的地址。)当节点进入网络时,可以使这种属性被现有服务器所知。尽管这种信息可以是高度动态的,但是可以凭借级别来定义这种信息,例如定义为:非常稳定、稳定、不稳定。
节点可以以多种方式承担服务器的角色。例如,由于以下各项,可能需要创建新服务器:
(a)现有服务器尝试卸载其一些工作;
(b)节点代表许多其他节点充当桥;
(c)在服务器关闭或离开网络之前/时;
(d)创建一个或多个子网络。
当网络中的现有服务器察觉到需要创建新服务器时,服务器就可以在检查与网络具有现有关联的节点的合适性(例如,通过检查该节点的稳定性信息级别)之后请求该节点变为服务器。注意,可以允许候选节点拒绝这种请求。这是这种请求需要确认的原因。
服务器执行的第一动作是其利用广播消息的自通告。接下来,服务器进入初始状态,在该初始状态中,服务器监听并等待来自其客户端或来自新节点的任意消息。
在接收到网络地址之前,可以利用例如MAC地址、通信信道类型或技术来标识节点。可选地,节点还可以使用临时标识,例如,每个节点在开始操作时计算出的自指派地址。这允许所有节点使用路由功能,然后一直与网络中的所有单元进行通信,即便网络不连接至互联网也是如此。可以使用用于在节点加入网络之前向该节点提供临时标识或地址以供使用的任何合适机制,本发明不限于任何这种具体方法。除了上述MAC地址以外,备选地,可以使用其他形式的节点标识(例如,基于密码特性)。
图3示意了服务器接收来自节点的请求时的活动序列。
当接收(步骤1)到来自新节点的请求时,服务器检查其高速缓存表以确定是否已经拒绝新节点。如果已经拒绝,则服务器不进行应答,其更新其高速缓存表信息并返回至初始状态。否则,服务器基于一些预定义策略来决定(步骤2)其是否接受新节点。注意,可以在服务器本地或者通过远程节点的帮助来进行这种决定。高速缓存表用于将与近期的拒绝和这样做的原因有关的信息保存在可能类似于节点的“黑名单”这样的位置。通过查阅该高速缓存表,服务器可以省时省力。
如果服务器决定拒绝新节点的请求(但该节点先前尚未被拒绝),则服务器向该节点发送拒绝消息(步骤3),并利用该节点的标识符或临时/自指派标识以及拒绝该请求的原因来更新高速缓存表。为了避免(D)DoS攻击的问题,可以对请求进行认证,并可以在服务器之间交换黑名单。
如果服务器决定接受新节点的请求,则其发送(步骤4a、4b)包含所供应的寻址配置在内的供应消息,并等待节点确认其对由服务器作出的供应的接受。在该时刻,服务器将所供应的地址的状态标记为“预留”。在从客户端接收到确认时,服务器发送最终确认(步骤5),并假定与新节点建立关联以及正确完成配置过程。此后,服务器将地址的状态改变为“已分配”,并返回至其初始状态。如果节点未响应供应消息,则服务器在所确定的时间段之后重传供应消息。如果达到重传的预置的最大数目并且未从新节点接收到确认,则服务器释放所预留的地址(步骤6)并返回至初始状态。
根据本发明的一个实施例,当服务器从希望与网络相关联的节点接收到消息时,服务器可以邀请该节点作为服务器或作为客户端而关联。在本实施例中,当服务器决定新节点应当变为服务器时,该服务器发送(步骤4a)包含允许新节点建立服务器配置的信息和地址池在内的消息(“服务器供应”)。然后,服务器等待响应。如果新节点拒绝“服务器供应”,则服务器发送(步骤4b)包含仅允许新节点变为客户端的信息在内的另一消息,并执行上述相同过程(即,等待确认,并在其后发送最终确认消息之后)。如果新节点接受变为新客户端,则服务器发送最终确认并返回至初始状态。当服务器邀请现有节点变为新服务器时,可以使用类似过程,但是在节点拒绝的情况下,服务器就不采取动作。
充当客户端的现有网络节点还可以向其服务器发送消息。图4示出了在这种情况下在服务器处执行的步骤。在步骤1处,服务器从其客户端之一接收取消消息。这允许服务器更新其地址表(步骤2)以释放该客户端使用的地址(步骤3),并返回至初始状态(参见图4)。
服务器还可以接收对先前进行的通告的答复。图5示出了在这种情况下在服务器处执行的步骤。这里,服务器接收对先前进行的通告的答复(步骤1),更新其地址表(步骤2)并返回至初始状态。这提供了供服务器检查客户端的状态的方法,并可以以间隔执行以便向服务器提供更新后的状态信息。
此外,服务器可以接收客户端错误报告。图6示出了在这种情况下在服务器处执行的步骤。当服务器接收到客户端错误报告(步骤1)时,服务器确定(步骤2)是否应当重新配置地址。如果服务器决定必须改变地址,则服务器释放当前分配的地址并启动向客户端发送供应消息(步骤3)的新配置过程。如果拒绝供应,则释放在新供应中分配的地址(步骤4)。如果接受供应,则如上所述服务器发送最终确认消息(步骤5)。
还可能的是,服务器接收来自另一服务器的请求。例如,当服务器X需要向其池添加更多地址时,服务器X向服务器Y(通常是服务器X的父服务器)发送请求这些地址的消息。图7中示出了这一点。在步骤1,服务器Y从服务器X接收请求将地址添加至其池的消息。服务器Y检查(步骤2)其是否具有可用的地址。如果服务器Y具有可用的地址,则服务器Y向服务器X发送供应消息(步骤3)并等待答复。当从服务器X接收到确认答复时,服务器Y发送最终确认(步骤4)并回到初始状态。否则,服务器Y释放所分配的地址(未示出)并返回至初始状态。
如果服务器Y不具有可用地址,则服务器Y可以进而从其父服务器请求另外的地址,而不是简单地拒绝请求。可以重复该过程(即,可以将请求传递至更高的服务器),直到服务器Y以上的所涉及的服务器之一供应新的地址池为止,然后转发该池,直到其到达服务器Y为止。在接收到地址池时,服务器Y就可以向服务器X发送供应。
如果服务器Y不具有可用地址并且不能从更高服务器获得地址,则服务器Y仅可以忽视来自服务器X的请求并返回至初始状态,或者服务器Y可以向服务器X发送拒绝响应。如果服务器X未从服务器Y接收到答复,则服务器X仅假定服务器Y不具有要供应的地址池。
当服务器发送服务器错误报告时,类似的过程可以适用。
服务器需要周期性地向网络通告其自身。当要这样做时,服务器检查是否存在任何n跳客户端(n>1)以确保它们还接收其通告和更新。服务器是在客户端通过一系列桥接节点进行注册时开始知道这些客户端的。
图8示出了服务器向网络通告其自身的过程。如果不存在n跳客户端,则服务器向其紧邻节点广播(步骤1)通告消息。否则,如果存在至少一个n跳客户端,则步骤1包括:服务器发送多播消息以确保该通告达到每个客户端。在发送通告消息之后,服务器检查客户端的答复(步骤2)以检测(步骤3)哪些仍是活动的(假定无法答复的客户端不再是活动的),从而通过删除被判断为不活动的客户端来重建其地址表(步骤4)。未答复特定数目的连续通告的那些客户端被视为死客户端(不活动的节点),并且,释放分配给这些客户端的地址(步骤5)。然后,服务器返回至初始状态。(当然,如果所有客户端都答复通告消息,则服务器不需要更新其地址表。)
最后,服务器检查其工作负载的过程可以运行于接受新客户端的过程结束之后。如果服务器估计出其已变为过载,则服务器可以开始与网络中的客户端进行协商,并请求该客户端变为新服务器,并承担其当前工作负载的一部分。
新节点单元
图9示意了新节点与现有网络相关联的过程。每当新节点想要与现有网络相关联并尝试与服务器建立链路时都执行该过程。首先,新节点广播(步骤1)被称作“服务器消息”的查找请求。如果节点确定(步骤2)其在所确定的最大时间段内未接收到答复,则该节点假定不可能存在关联(步骤3)。
如果新节点接收到对其通告的答复,则这种消息可以具有两个不同的来源:这种消息可以来自另一客户端或者来自服务器。因此,如果新节点在步骤2确定接收到答复,则在步骤4,新节点确定答复是来自另一客户端还是来自服务器。如果答复来自客户端,则节点决定其是否有兴趣与服务器建立n跳关联(n>1)。如果由于某些预定的策略或原因,节点不希望建立n跳关联,则该节点可以在不存在来自服务器的答复的情况下假定不可能存在关联,或者可以重新启动广播针对服务器的请求的过程。可以多次重复这一过程。如果节点决定与服务器的n跳关联对于其工作来说足够,则该节点建立这种n跳关联(步骤5)。
备选地,如果节点在步骤4确定答复来自服务器,则该节点协商与该服务器的关联(步骤6)。
图10更详细地示意了在节点接收到来自客户端的答复时执行的步骤(步骤1)。在步骤2,节点决定是否接受经由已作出答复的客户端至网络的n跳关联。如果节点决定其不希望建立n跳关联,则该节点假定不可能存在关联(步骤3)。(然后,节点可以重复发送针对服务器的请求的过程。)
如果节点在步骤2决定接受至网络的n跳关联,则该节点通过“桥客户端”来发送针对“服务器消息”的请求,并等待来自服务器的响应(步骤5)。如果节点未在预定时间段内接收到响应,则节点假定不可能存在关联(步骤3)(并可以通过广播针对服务器的另一请求来重新启动该过程)。如果节点未经由客户端接收到来自服务器的答复,则新节点经由客户端启动与服务器的地址协商过程(步骤6)。
如果当新节点在图9的步骤1广播其服务器请求时,新节点接收到来自服务器的响应,则节点可以接受或拒绝供应。新节点可以从服务器或客户端接收多于一个供应消息。然而,新节点必须应答这些供应消息中的仅一个。如上所述,在本发明中,这种供应可以是变为新服务器或者是变为新客户端。
图11示意了与服务器的协商的过程。在步骤1,新节点接收来自服务器的答复(响应于在图9的步骤1发送的服务器请求)。在步骤2,节点确定服务器是否供应了关联;如果服务器尚未供应关联,则该过程结束。如果供应了关联,则节点在步骤3确定该供应是客户端供应还是服务器供应。如果该供应是变为新服务器,则节点在步骤4决定是否接受该供应。如果新节点不想要接受服务器供应,则节点拒绝服务器供应(步骤5);然后,新节点可以等待来自该服务器(或另一服务器)的供应变为新客户端的地址的响应。
如果新节点决定接受变为新服务器的供应,则该新节点在步骤6确认供应,并等待查看是否从服务器接收到最终确认,在确定接收到最终确认(步骤7)时,新节点将其状态移至服务器,并假定其与网络相关联(步骤8)。然而,如果新节点在步骤7确定未接收到最终确认,则该新节点假定对与网络相关联的尝试已经失败(步骤9)。
如果新节点在步骤3确定该供应是变为新客户端,则节点通过发送确认(步骤6)来确认其兴趣,并等待来自服务器的最终确认。当节点确定接收到来自服务器的最终确认时,节点将其状态移至客户端,并假定其与网络相关联(步骤8)。然而,如果新节点未接收到来自服务器的最终确认,则该新节点假定对与网络相关联的尝试已经失败(步骤9)。
客户端单元
当新节点想要与现有网络相关联时,该新节点遵循上述过程。如果新节点与服务器建立关联,则新节点作为客户端关联于网络,并开始利用以下过程进行操作。
客户端开始监听单播、多播或广播消息。存在三种可能类型的可涉及客户端的通信。
当已配置的客户端接收到由新节点发送的服务器请求时,进行第一种类型的通信。当客户端接收到由新节点发送的针对服务器的请求(图12的步骤1)时,客户端分析变为新节点与网络中的现有服务器之间的桥的可能性。如果这是可能的并且客户端决定(图12的步骤2)变为桥,则客户端向新节点发送(图12的步骤3)在与服务器建立通信时提供帮助的消息。否则,客户端仅忽视请求并返回至初始状态。这是客户端与新节点之间的通信。
第二种类型的通信可以源自新节点,并且,需要经由“桥接客户端”将其转发至服务器。该消息与由与服务器的直接关联定义的消息相同。区别在于:该消息需要由客户端路由(转发)至服务器,这是由于新节点不能直接到达服务器。在这种情况下,桥接客户端在接收到该消息(图13的步骤1)之后仅转发该消息(图13的步骤2)并返回至初始状态。这是服务器与n跳新节点之间经由桥接客户端的通信。
客户端很可能在监听时接收的第三种通信类型来自服务器。该通信是通过通告或供应来使用的,去往变为新服务器的客户端。图14示出了消息是通告时的步骤。在接收到服务器通告(图14的步骤1)的情况下,客户端仅答复通告(图14的步骤3)并返回至初始状态。如果客户端未在特定时限内接收到服务器通告,则客户端将假定服务器是死的,并将强制取消其地址租用,然后还完全取消其在网络中的客户端角色。客户端还将确定其是否在另一客户端与服务器之间桥接通信(图14的步骤3),如果桥接,则客户端还将服务器的通告转发至其充当桥而桥接至的客户端(图14的步骤4)。这是服务器与客户端之间的通信。
如果在客户端处接收到的消息是变为服务器的供应,则客户端可以拒绝或接受这种供应。图15示意了这种情况下的过程。在接收到服务器供应(图15的步骤1)的情况下,客户端确定是否接受供应(图15的步骤2)。如果由于某些特定原因而不可能变为新服务器,则客户端发送(图15的步骤3)拒绝供应的消息并返回至初始状态。然而,如果客户端决定接受供应,则该客户端向服务器发送确认消息(图15的步骤4)并等待最终确认。在确定接收到最终确认(图15的步骤5)时,客户端将其状态设置为服务器(图15的步骤6)。然而,如果客户端在步骤5确定未在预置时间段内接收到最终确认,则其对供应的接受失效。
客户端还可以决定取消与其服务器的地址租用。在这种情况下,客户端向服务器发送断言其从这时起将不使用地址的消息,并在没有任何另外的协商或警告的情况下停止网络中的客户端角色(参见图16)。
备份
在网络中,服务器通常具有可在例如服务器发生故障的情况下接管的至少一个备份服务器。对于完全有效的自主网络,必须具有一种机制,用于向网络中的服务器提供备份服务器并使备份服务器能够在服务器发生故障的情况下自动接管(有时被称作“自愈”)。备份和自愈机制的目的是保证寻址管理的完整性。两者在经历诸如服务器或链路通信故障之类的关键情形之后均尝试恢复网络。本发明的另一特征涉及提供针对服务器的备份。
优选地,网络中的每个服务器缺省具有两个备份服务器。即使服务器及其备份发生故障,该冗余也确保恢复。与传统网络中相比,故障更可能发生在高度动态的网络中。两个备份服务器被分为第一级别备份和第二级别备份。仅第一级别备份服务器与服务器具有直接通信。第二级别备份服务器与第一级别备份服务器交换消息,以知道包括故障在内的网络状态。
备份的选择
备份服务器的选择由服务器执行。由于服务器具有与其客户端有关的状态和稳定性信息,因此该服务器能够适当地从客户端当中选择其备份。作为示例,与客户端有关的信息可以由处理网络的配置参数的更高级别协议来收集——但服务器可以适当地选择其备份服务器,
本发明不限于任何特定方式。
服务器与备份之间的交互
在优选实施例中,服务器具有选择其备份服务器的责任。选择备份服务器的过程一般与服务器邀请现有客户端变为服务器时的过程类似——服务器向客户端发送邀请客户端变为备份服务器的消息,以及,如果客户端接受该供应,则客户端变为备份服务器。在进行了服务器选择之后,备份服务器必须管理其与服务器之间的关系。图17示出了服务器与其备份服务器之间的基本关系。
第一级别备份服务器周期性地向服务器发送请求消息(步骤1)并等待服务器的答复。当其接收到来自服务器的答复(步骤2)时,第一备份节点还向第二级别备份服务器发送报告消息(步骤3)。这样,第二备份还知道新结构(例如,由服务器进行的新地址分配)。在发送报告之后,第一级别备份服务器期望来自第二备份服务器的答复(步骤4),以确认第二备份服务器仍然是活动的。
特别考虑对备份2的通信的可能故障。发起故障过程以指定新备份。由于第一级别备份服务器使用周期性消息交换来与第二级别备份服务器保持联系,因此其负责识别第二备份是否仍然是活动的。当第二级别备份服务器未在所确定的时间段内向第一备份服务器发送答复消息时,第一备份服务器假定第二备份服务器已发生故障或不再可达,并向服务器报告该情形。然后,服务器选择另一客户端作为第二备份服务器位置,并向第一级别备份服务器发送消息,以向其通知承担新第二级别备份服务器的角色的客户端的标识(地址)。这样,重新开始报告消息的交换。
另一方面,如果第二级别备份服务器停止从第一级别备份服务器接收周期性消息,则其假定第一级别备份服务器已发生故障。然后,第二级别备份服务器承担第一级别备份服务器的角色并向服务器通告这一点。然后,服务器选择另一第二级别备份服务器。
图18示出了服务器发生故障的情形。
图18的步骤1-4与图17的步骤1-4相对应,并与正确操作的服务器、第一备份服务器和第二备份服务器相对应。当服务器未答复来自第一级别备份服务器的消息或向第一备份服务器报告时,第一级别备份服务器注意到服务器可能已经发生故障。因此,在步骤5,第一级别备份服务器向服务器发送请求消息,但是,由于服务器已经发生故障,因此第一级别备份服务器未接收到来自服务器的答复。在所设置的时间段内未接收到响应(包括不存在服务器通告)之后,第一级别备份服务器推断出服务器已经发生故障(尽管对于缺少答复来说存在其他可能解释,例如通信链路的故障而不是服务器的故障),并可以联系层级中紧接着更高一级别的服务器,以通知其已经承担服务器的位置(步骤8),同时还报告给第二备份服务器(步骤6),第二备份服务器在步骤7作出肯定应答。更高级别服务器应当确认接收到新服务器通知,并在其答复中发送指示这一点且报告前一服务器的故障的消息(步骤9)。然后,第一备份服务器向第二备份服务器通知其承担服务器的位置(步骤10),第二备份服务器在步骤11确认接收到通知。相同的简单过程适用于任何级别的故障。在不存在更高级别服务器的情况下,如上执行过程,只是省略与同更高级别服务器的通信相关的所有步骤。
如果更高服务器未在步骤9在其答复中确认服务器的故障,则可能是如下情况:服务器与第一备份服务器之间的通信链路已经发生故障。在这种情况下,服务器自身还可以检测与其备份服务器进行通信的这种故障,并触发对新备份服务器的选择。此外,如果更高服务器未在步骤9在其答复中确认服务器故障,则第一级别备份服务器假定其自身与其服务器之间的通信链路已经发生故障。然后,第一级别备份服务器停止其备份角色,并假定服务器已经选择新客户端作为其备份。这防止服务器和第一级别备份服务器同时开始恢复操作。
图19示出了服务器及其第一级别备份均发生故障的情形下的消息流。
图19的步骤1-4与图17的步骤1-4相对应,并与正确操作的服务器、第一备份服务器和第二备份服务器相对应。然后,假定服务器和第一备份服务器均发生故障。
第二级别备份服务器具有以下任务:周期性地从第一级别备份服务器接收报告,假定网络正在适当地工作,并答复第一备份。如果在所确定的时间段之后第二备份服务器未从第一备份服务器接收到报告,则其假定存在网络问题的可能性。在图19的步骤5,为了确认是否是这种情况,第二备份服务器联系层级中紧接着更高一级的服务器,以获得网络情形的确认。如果更高服务器在步骤6在其答复中确认服务器和第一备份服务器已经发生故障,则第二级别备份承担服务器的位置,在步骤7通告更高服务器,并选择两个新备份服务器(图19中未示出)。否则,如果更高服务器未在步骤6在其答复中确认故障情形,即,服务器和/或第一级别备份服务器仍然在工作,则第二备份服务器假定其不再是备份服务器。
除了图18和19所示的故障模式以外,其他故障模式也是可能的。例如,可能的情况是:服务器继续操作,但一个或两个备份服务器发生故障。在这种情形下,服务器负责选择新备份服务器来代替发生故障的服务器。
如果仅第一级别备份服务器发生故障,则服务器将与第二级别备份服务器失去联系,因此,第一级别备份服务器假定两个备份服务器均已经发生故障,并开始选择两个新备份服务器的过程。可以再次选择第二备份,在这种情况下,第二备份在网络中仍是活动的。
在第二级别备份服务器发生故障的情况下,如上所述,第一级别备份向服务器发送报告,服务器选择另一节点来接替第二级别备份服务器的位置。
当第一和第二级别备份服务器均发生故障时,服务器基于其已具有的与其客户端有关的信息来选择两个节点以承担备份服务器角色。
图20示出了发生服务器故障(步骤1)时的状态图。如上所述,第一级别备份服务器是变为替换服务器的优选,如果第一级别备份服务器在步骤2承担服务器角色,则第二级别备份服务器在步骤3承担第一级别备份服务器角色,新服务器(即,先前的第一级别备份服务器)在步骤4选择新的第二级别备份服务器。(如果“旧的”服务器再次“复活”,则其将被视为新节点。)
如果第一级别备份服务器由于也已发生故障而未在步骤2承担服务器角色,则第二级别备份服务器可以在步骤5承担服务器角色。仅当第一备份服务器不能承担服务器角色时,第二级别备份才将接替服务器的位置。新服务器(即,先前的第二级别备份服务器)在步骤6选择新第一级别备份服务器,并在步骤4选择新第二级别备份服务器。
此外,如果第二级别备份服务器未在步骤5承担服务器角色(即,如果备份服务器不可以承担发生故障的服务器的角色),则更高级别服务器(如果存在的话)可以在步骤7接管对寻址的责任,并管理发生故障的服务器所控制的池。然后,更高服务器等待作为与其联系的网络的故障部分的一部分的子网络,同时保持其地址分配在指定的时间段内预留。如果子网络在该时间段内不联系更高服务器,则可以将其地址池设置为“空闲”状态。
如果更高级别备份服务器未在步骤7承担服务器角色,则这可以指示在网络中存在严重问题,可能导致网络崩溃(步骤9)。
图24示意了节点接收变为备份服务器的供应的过程。最初,在步骤1,节点(从网络的服务器)接收变为备份服务器(例如,第一级别备份服务器或第二级别备份服务器)的供应。
在步骤2,节点决定是否接受变为备份服务器的供应。如果其决定不接受该供应,则其通过拒绝该供应来作出答复(步骤3)。
如果节点在步骤2决定接受该供应,则其在步骤4通过向服务器发送对其乐于充当备份服务器的确认来作出答复。
在步骤5,节点确定其是否从服务器接收对变为备份服务器的供应的最终确认。如果接收到这种最终确认,则节点承担(步骤6)备份服务器的角色。然而,如果节点未(例如,在预置的时间段内)从服务器接收到对供应的最终确认,则该节点假定服务器不再希望其变为备份服务器,过程结束。
网络自愈
这种情况下的自愈与以下情形相关:服务器与其更高级别服务器之间的通信链路发生故障,从而由服务器控制的子网络与寻址控制隔离,但保持寻址控制下服务器和任何子服务器的层级,因此该层级可用于重新关联于受控制的网络。优选地,必须处理该情形,以保持网络结构内寻址信息的完整性。
图21示出了网络中的服务器层级的示例。箭号表示父服务器关系,箭头表示相关服务器,那么,服务器A是服务器B和服务器C的父服务器。考虑图21所示的服务器层级,作为示例,在服务器C与其父服务器A之间可能发生链路故障。当服务器A释放了与服务器C的通信时,由于服务器C不能与其父服务器进行通信,因此威胁到服务器C下的整个子网络结构。在优选实施例中,服务器A不立即放弃服务器C回到网络的可能性。因此,服务器A以特殊的方式处理先前分配给服务器C的地址池。如果重新分配地址池不是必须的,则服务器不重新分配地址池。如果在一些时间之后通信链路再次开始在服务器A和C之间工作,则由于地址池仍然被分配给服务器C,因此服务器A可以仅告知C以保持相同的寻址配置。
然而,当重新建立服务器A与服务器C之间的通信链路时,可能是如下情况:服务器A已经重新分配先前由服务器C使用的地址池(例如,如果服务器A与服务器C之间的链路存在延长的故障的情况下)。在这种情况下,服务器A向服务器C发送新配置信息(即,新地址池)。服务器C需要重新配置其自身的接口并向其所指向的子网络重新分配新地址池的地址。该结构恢复过程是逐级别完成的,即,在配置服务器C之后,服务器C向其紧接着的相关服务器(图21的网络中的服务器D、E和F)发送新配置。类似地,在配置其接口之后,服务器D和F向其紧接着的相关服务器(服务器H和K)发送新配置。最后,服务器H在配置其自身之后向其紧接着的相关服务器(服务器I和J)发送新配置信息,从而完成网络的恢复过程。
服务器自愈
优选地,地址分配机制应当能够恢复来自故障服务器的地址池,以允许重新使用地址。实现这一点的优选方式是通过在所有服务器之间创建基本通信机制。通过该通信,服务器交换与它们已分配地址或仍可用的地址池有关的信息上述地址池分发的机制对于该功能来说是重要的。必须利用来自每一个“子服务器”的信息来更新每个“父服务器”。参照图22来解释服务器(父与子)之间的关系。
在图22中,以如下方式组织服务器的层级:服务器A是服务器AA和服务器AB的父亲;服务器AA是服务器AAA和服务器AAB的父亲。所有其他节点(C1……C20)是这些服务器之一的客户端节点。图22中的实线表示服务器与其客户端之间的关联。
通过保持与其“子服务器”有关的信息,“父服务器”在检测到子服务器已经发生故障时,可以重新承担先前分配给子服务器的地址池。例如,在图22中,如果服务器AAB发生故障,则服务器AA(服务器AAB的父服务器)重新承担先前分配给服务器AAB的地址池。
然而,当父服务器重新承担“子服务器”的地址池时,父服务器优选地知道子服务器的地址池中的一些地址可能已经进而被分配给其他服务器,并优选地不完全重新承担这些地址。本实施例需要父服务器接收与子服务器将哪些地址分配给其他服务器有关的信息,同时,子服务器被使用并与父服务器进行通信。这样,网络的两个划分后的部分将不在相等的地址池上传播。例如,在图22中,如果服务器AA发生故障,则服务器A收回先前分配给服务器AA的地址池。然而,在本实施例中,该地址池的分配给服务器AA的子服务器(服务器AAA和服务器AAB)的组分(即,更小的地址池)不应当是重新分配给服务器A的地址池的一部分。即,仅应当收回被分配给服务器AA的、且被服务器AA分配给子服务器的那些地址——服务器A知道的已被服务器AA分配给服务器AAA或服务器AAB的地址继续被视为预留地址并且不会被服务器A收回。这样,本发明确保网络的两个划分后的部分不会重叠。遵照图22所示的网络结构,图23示出了服务器A、AA和AAA的地址池之间的交互。
在图23的示例中,将服务器A的地址池划分为子池(参见图23的左部),其中,将子池1A中的地址直接分配给服务器A的客户端,将子池2A中的地址分配给服务器AA,将子池3A中的地址分配给服务器AB等等。考虑图23所示的关系以及服务器AA发生故障的情形,服务器A必须收回对先前分配给服务器AA的其地址池2A的责任。
然而,服务器A必须知道在服务器AA的责任之下,所分配给的地址池的一部分进一步分配给服务器AAA。图23的中心部分示出了这一点——将服务器AA的地址池划分为子池,其中,将子池1AA中地址直接分配给服务器AA的客户端,将子池2AA中的地址分配给服务器AAA、将子池3AA中的地址分配给服务器AAB等等。因此,当收回对其第二地址子池2A的控制的责任时,服务器A仅可以管理未重新分配给其他服务器的地址子池2A的部分,因此,服务器A不应当管理地址子池2AA(分配给服务器AAA)或地址池2AB(分配给服务器AAB)。在图23中,如果服务器AA发生故障,则服务器A的重获池(RP)的地址的集合将是:
RP=(池#2A)∩(服务器AA分配的池)
或者
RP=(池#2A)-(服务器AA分配的池)
图22的方法是图21的方法的备选。在图21的方法中,服务器A重新分配在服务器C发生故障或与服务器C的通信丢失时分配给服务器C的所有地址,包括服务器C已细分给服务器D、E和F的地址。
服务器桥接通信
服务器还可以像桥那样工作(尽管客户端通常可以在服务器与多于1跳距离的客户端之间桥接通信。)例如,当新节点与服务器A具有1跳关联但该服务器不能承担更多客户端(由于例如缺少地址),并且服务器A还与另一服务器(服务器B)具有1跳关联时,其可以在新节点与服务器B之间桥接通信。在这种情形下,服务器A仅将由新节点发送的消息中继至服务器B,反之亦然。
如果服务器A恢复承担更多客户端的能力,则服务器A可以供应至桥接客户端以与其相关联,从而减小客户端到达服务器的必要跳数。如果客户端接受该供应,则在服务器A与客户端之间协商关联,并且在建立之后,客户端向服务器B发送取消租用的消息。
服务器改变
当已与服务器A相关联的客户端从第二服务器(服务器B)接收到广播通告并识别出服务器B比服务器A更近(即,与服务器A相比,以更少的跳数可达服务器B)时,客户端可以选择改变其服务器。可能发生这种情况的情形是当过载服务器决定与其客户端(优选地,多于1跳距离的客户端)之一划分其工作负载时。当所选客户端变为服务器时,其采取的第一动作是将其自身通告给网络。与同其当前服务器的距离相比同该新服务器的距离更近的节点可以选择通过对新关联进行协商将其服务器改变为服务器B。
本发明的方法可以适用于任何动态网络(节点随时间加入和离开的网络)。
图25示意了本发明的网络节点。示出了网络节点10,网络节点10充当服务器并经由网络14与一个或多个客户端11-13相关联。网络节点10具有地址表15,地址表15包含当前分配给网络节点10的所有网络地址,并指示地址的状态:例如,地址是“空闲的”、“已分配的”、还是“预留的”(其中,“预留的”指示网络节点10当前处于将该地址供应给另一节点的过程中)。
网络节点10还具有黑名单16,例如具有高速缓存表的形式。其列出了例如网络10先前已拒绝请求的节点(例如图3的步骤3)。
网络节点还包括池表17。例如,这可以用于保存与网络节点已进一步分配给其他服务器的地址池有关的信息,包括例如与网络节点已分配给子服务器且子服务器已进而分配给其子服务器中的一个或多个(例如,如图23所示)的地址池有关的信息。如果子服务器发生故障或者与子服务器的通信丢失,并且网络节点0需要收回分配给子服务器的地址,则其可以使用池表17中的信息来执行图22的方法,其中,其仅收回分配给子服务器且子服务器尚未进一步分配给其子服务器之一的地址。
网络节点10被适当地编程为执行本发明的方法。例如,网络节点可以是使用包含指令的计算机可读介质来编程的,所述指令在网络节点的处理器(未示出)上执行时使处理器执行本发明的方法。备选地,网络节点可以是经由网络11或在制造时编程的。
Claims (25)
1.一种网络中的地址分配的方法,所述方法包括:
根据节点之间的协商,确定第一节点是否应承担负责将网络地址分发给客户端并管理网络地址的服务器角色;以及
如果应承担,则向第一节点提供网络地址池。
2.根据权利要求1所述的方法,其中,如果确定了第一节点应承担服务器角色,则网络的服务器节点向第一节点提供网络地址池。
3.根据权利要求1或2所述的方法,其中,所述确定是在以下时刻之一处执行的:
在网络启动时;
在第一节点请求与网络的关联时;
在网络的服务器节点变为过载时;或者
在网络的服务器节点离开网络的时刻。
4.根据权利要求1或2所述的方法,其中,所述确定是在第一节点关联于网络时执行的,所述方法还包括:如果确定了第一节点不承担服务器角色,则向第一节点供应网络中的客户端角色。
5.根据权利要求1或2所述的方法,其中,第一节点是网络的客户端节点。
6.根据权利要求1、2、3或5所述的方法,其中,确定了第一节点应承担服务器角色,所述方法包括:随后向第一节点提供另一网络地址池。
7.根据权利要求2或者直接或间接从属于权利要求2的权利要求3、5或6中任一项所述的方法,包括:在接收到第一节点不再执行服务器角色的指示时,服务器节点随后重新承担对在第一节点承担服务器角色时提供给第一节点的网络地址池的责任。
8.根据权利要求7所述的方法,其中,在接收到第一节点不再执行服务器角色的指示之后,在重新承担对地址池的责任之前,服务器节点等待预定时间段。
9.根据权利要求7或8所述的方法,其中,服务器节点不重新承担对第一节点已分配给一个或多个另外的服务器的第一地址池中的地址的责任。
10.根据权利要求1、2、3、5、6、7、8或9所述的方法,其中,确定了第一节点应承担服务器角色,所述方法包括:第一节点随后将网络的至少一个节点选为备份服务器。
11.根据权利要求9所述的方法,其中,第一节点将其客户端节点中的至少一个选为备份服务器。
12.一种将节点与网络相关联的方法,所述方法包括:
从所述节点向所述网络发送关联请求;
在所述节点处接收到来自所述网络的节点的响应;
在所述节点处确定所接收的响应是来自所述网络的客户端节点还是来自所述网络的服务器节点;以及
根据所接收的响应,作为客户端或作为服务器关联于所述网络。
13.根据权利要求12所述的方法,包括:如果所述节点接收到来自所述网络的服务器节点的响应,则根据所述节点与所述服务器节点之间的协商确定所述节点作为客户端或作为服务器关联于所述网络。
14.根据权利要求12所述的方法,包括:如果所述节点未接收到来自所述网络的服务器节点的响应,但接收到来自所述网络的客户端节点的响应,则所述节点作为n跳客户端关联于所述网络。
15.根据权利要求13所述的方法,其中,所述节点作为服务器关联于所述网络,所述方法还包括:在所述节点处接收用于配置客户端的网络地址池。
16.一种网络节点,所述网络节点适于:
根据节点之间的协商,确定第一节点是否应承担负责将网络地址分发给客户端并管理网络地址的服务器角色;以及
如果应承担,则配置为向第一节点提供网络地址池。
17.根据权利要求16所述的网络节点,其中,如果确定了第一节点应承担服务器角色,则所述网络节点适于向第一节点提供网络地址池。
18.根据权利要求16或17所述的网络节点,还适于在以下时刻执行所述确定:
在网络启动时;
在第一节点请求与网络的关联时;
在网络的服务器节点变为过载时;或者
在网络的服务器节点离开网络的时刻。
19.根据权利要求16或17所述的网络节点,还适于在第一节点关联于网络时执行所述确定,还适于在确定了第一节点不承担服务器角色的情况下,向第一节点供应网络中的客户端角色。
20.根据权利要求16、17或18所述的网络节点,其中,所述网络节点还适于:在确定了第一节点应承担服务器角色时,随后向第一节点提供另一网络地址池。
21.一种网络节点,所述网络节点适于:
向网络发送关联请求;
接收来自网络的节点的响应;
确定所接收的响应是来自网络的客户端节点还是来自网络的服务器节点;以及
根据所接收的响应,作为客户端或作为服务器关联于网络。
22.根据权利要求21所述的网络节点,还适于:在接收到来自网络的服务器节点的响应时,如根据所述节点与所述服务器节点之间的协商所确定的,作为客户端或作为服务器关联于所述网络。
23.根据权利要求21或22所述的网络节点,还适于:在所述节点未接收到来自所述网络的服务器节点的响应,但接收到来自所述网络的客户端节点的响应的情况下,作为n跳客户端关联于所述网络。
24.根据权利要求22所述的网络节点,还适于:在所述节点作为服务器关联于所述网络时,接收用于配置客户端的网络地址池。
25.一种包含指令的计算机可读介质,所述指令在处理器上执行时使网络节点执行根据权利要求1至15中任一项所述的方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2009/050732 WO2010083887A1 (en) | 2009-01-22 | 2009-01-22 | Address allocation in a network |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102292963A true CN102292963A (zh) | 2011-12-21 |
CN102292963B CN102292963B (zh) | 2015-07-01 |
Family
ID=41438416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980155204.XA Expired - Fee Related CN102292963B (zh) | 2009-01-22 | 2009-01-22 | 网络中的地址分配方法及装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9577870B2 (zh) |
EP (1) | EP2389751A1 (zh) |
JP (1) | JP5414807B2 (zh) |
CN (1) | CN102292963B (zh) |
BR (1) | BRPI0924228A2 (zh) |
WO (1) | WO2010083887A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102769934A (zh) * | 2012-04-12 | 2012-11-07 | 中兴通讯股份有限公司 | 基于ppp协议保障传输层链路的方法及*** |
WO2013152718A1 (zh) * | 2012-04-10 | 2013-10-17 | 中兴通讯股份有限公司 | 一种路径计算单元通信协议会话建立方法及装置 |
CN109120729A (zh) * | 2017-06-23 | 2019-01-01 | 中国电信股份有限公司 | 地址分配管理方法、6LoWPAN网关和*** |
CN109917742A (zh) * | 2019-03-25 | 2019-06-21 | 北京龙鼎源科技股份有限公司 | 可编程逻辑控制器plc***、数据上传方法 |
CN112165735A (zh) * | 2020-09-26 | 2021-01-01 | 杭州雅观科技有限公司 | 一种云端一体的Wi-Fi设备自组网方法 |
CN114827017A (zh) * | 2022-03-31 | 2022-07-29 | 北京声智科技有限公司 | Kafka集群的通信方法、装置、电子设备和存储介质 |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102025790B (zh) * | 2009-09-23 | 2013-12-18 | 中兴通讯股份有限公司 | 地址分配方法、装置和*** |
WO2012051078A1 (en) * | 2010-10-15 | 2012-04-19 | Marvell World Trade Ltd. | Assignment of network addresses |
JP2013545151A (ja) * | 2010-12-10 | 2013-12-19 | 日本電気株式会社 | サーバ管理装置、サーバ管理方法およびプログラム |
CN102118319B (zh) * | 2011-04-06 | 2013-09-18 | 杭州华三通信技术有限公司 | 流量负载均衡方法和装置 |
US8572231B2 (en) | 2011-07-14 | 2013-10-29 | Google Inc. | Variable-length nonce generation |
EP2637386A1 (en) * | 2012-03-05 | 2013-09-11 | Alcatel Lucent | Method and device for improving subscribers privacy in ip communications networks |
US9678801B2 (en) * | 2012-08-09 | 2017-06-13 | International Business Machines Corporation | Service management modes of operation in distributed node service management |
US9071631B2 (en) | 2012-08-09 | 2015-06-30 | International Business Machines Corporation | Service management roles of processor nodes in distributed node service management |
US20140280800A1 (en) * | 2013-03-14 | 2014-09-18 | Alcatel-Lucent Bell Labs France | Apparatus and method to maintain consistent operational states in in cloud-based infrastructures |
US9772855B1 (en) * | 2013-12-23 | 2017-09-26 | EMC IP Holding Company LLC | Discovering new backup clients |
US10148559B2 (en) * | 2014-04-24 | 2018-12-04 | Hewlett Packard Enterprise Development Lp | Method and system for handling failure in a coordinated multicast streaming system |
US10075410B2 (en) | 2015-05-18 | 2018-09-11 | Marvell World Trade Ltd. | Apparatus and methods for assigning internetwork addresses |
US10051688B1 (en) | 2015-05-28 | 2018-08-14 | Marvell International Ltd. | Bridging wireless network traffic |
US20180013618A1 (en) * | 2016-07-11 | 2018-01-11 | Aruba Networks, Inc. | Domain name system servers for dynamic host configuration protocol clients |
CN107787022B (zh) | 2016-08-26 | 2023-07-07 | 马维尔亚洲私人有限公司 | 无线节点的远程配置和管理的方法与装置 |
CN112352208A (zh) * | 2018-04-16 | 2021-02-09 | 利盟国际有限公司 | 用于改变一个或更多个部件的地址的***和方法 |
US11637808B2 (en) * | 2021-04-22 | 2023-04-25 | Centurylink Intellectual Property Llc | Generation and use of micro-pools to assign an IP address to a requesting computing device |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1466341A (zh) * | 2002-06-22 | 2004-01-07 | ��Ϊ��������˾ | 一种动态地址分配中防止ip地址欺骗的方法 |
CN1512374A (zh) * | 2002-12-31 | 2004-07-14 | 联想(北京)有限公司 | 机群中节点负载信息传递及节点存活检测的方法 |
US20070121617A1 (en) * | 2005-11-29 | 2007-05-31 | Cisco Technology, Inc. | Extending sso for DHCP snooping to two box redundancy |
WO2007113442A1 (fr) * | 2006-03-31 | 2007-10-11 | France Telecom | Procede pour organiser un reseau d'objets communicants et objet communicant pour la mise en oeuvre du procede |
CN101090309A (zh) * | 2007-07-18 | 2007-12-19 | 杭州华三通信技术有限公司 | 一种实现dhcp服务冗余的方法及dhcp服务器 |
CN101141489A (zh) * | 2007-05-18 | 2008-03-12 | 中兴通讯股份有限公司 | 一种终端地址自动分配方法、终端和网络侧服务器 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3967110B2 (ja) * | 2001-11-05 | 2007-08-29 | 東芝キヤリア株式会社 | 通信システム、マスタ及び通信方法 |
US7231220B2 (en) | 2002-10-01 | 2007-06-12 | Interdigital Technology Corporation | Location based method and system for wireless mobile unit communication |
JP2004146988A (ja) * | 2002-10-23 | 2004-05-20 | Sony Corp | 通信処理装置、およびアドレス設定方法、並びにコンピュータ・プログラム |
GB2398704B (en) * | 2003-02-21 | 2005-07-06 | Toshiba Res Europ Ltd | Address autoconfiguration in ad hoc networks |
US20070274240A1 (en) | 2003-05-28 | 2007-11-29 | Klaus Weidenhaupt | Upnp Terminal for Ad Hoc Wireless Networks |
KR100667333B1 (ko) * | 2004-12-16 | 2007-01-12 | 삼성전자주식회사 | 홈 네트워크에서 디바이스 및 사용자 인증 시스템 및 방법 |
US7961724B2 (en) * | 2005-03-18 | 2011-06-14 | Qualcomm Incorporated | Dynamic media access control (MAC) address assignment |
JP2008017279A (ja) | 2006-07-07 | 2008-01-24 | Fujitsu Ltd | アドホックネットワークの通信制御方式 |
KR101410619B1 (ko) * | 2007-09-28 | 2014-06-23 | 삼성전자주식회사 | 지그비 네트워크 시스템 및 지그비 네트워크 시스템에서아이피 어드레스를 할당하는 방법 |
US8295204B2 (en) * | 2008-02-22 | 2012-10-23 | Fujitsu Limited | Method and system for dynamic assignment of network addresses in a communications network |
US20090276520A1 (en) * | 2008-05-05 | 2009-11-05 | Lockheed Martin Corporation | Method and apparatus for server election, discovery and selection in mobile ad hoc networks |
US20100091684A1 (en) * | 2008-10-10 | 2010-04-15 | Robert Lee Winter | System and Method for Discovery of Dynamically Assigned Information Handling System IP Addresses |
-
2009
- 2009-01-22 CN CN200980155204.XA patent/CN102292963B/zh not_active Expired - Fee Related
- 2009-01-22 WO PCT/EP2009/050732 patent/WO2010083887A1/en active Application Filing
- 2009-01-22 US US13/145,856 patent/US9577870B2/en active Active
- 2009-01-22 JP JP2011546619A patent/JP5414807B2/ja not_active Expired - Fee Related
- 2009-01-22 BR BRPI0924228A patent/BRPI0924228A2/pt not_active IP Right Cessation
- 2009-01-22 EP EP09778976A patent/EP2389751A1/en not_active Withdrawn
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1466341A (zh) * | 2002-06-22 | 2004-01-07 | ��Ϊ��������˾ | 一种动态地址分配中防止ip地址欺骗的方法 |
CN1512374A (zh) * | 2002-12-31 | 2004-07-14 | 联想(北京)有限公司 | 机群中节点负载信息传递及节点存活检测的方法 |
US20070121617A1 (en) * | 2005-11-29 | 2007-05-31 | Cisco Technology, Inc. | Extending sso for DHCP snooping to two box redundancy |
WO2007113442A1 (fr) * | 2006-03-31 | 2007-10-11 | France Telecom | Procede pour organiser un reseau d'objets communicants et objet communicant pour la mise en oeuvre du procede |
CN101141489A (zh) * | 2007-05-18 | 2008-03-12 | 中兴通讯股份有限公司 | 一种终端地址自动分配方法、终端和网络侧服务器 |
CN101090309A (zh) * | 2007-07-18 | 2007-12-19 | 杭州华三通信技术有限公司 | 一种实现dhcp服务冗余的方法及dhcp服务器 |
Non-Patent Citations (1)
Title |
---|
RALPH DROMS等: "《DHCP Failover Protocol:draft-ietf-dhc-failover-11.txt》", 《IETF STANDARD-WORKING-DRAFT, INTERNET ENGINEERING TASK FORCE, IETF, CH》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013152718A1 (zh) * | 2012-04-10 | 2013-10-17 | 中兴通讯股份有限公司 | 一种路径计算单元通信协议会话建立方法及装置 |
US9948722B2 (en) | 2012-04-10 | 2018-04-17 | Zte Corporation | Path computation element communication protocol session establishment method and device |
CN102769934A (zh) * | 2012-04-12 | 2012-11-07 | 中兴通讯股份有限公司 | 基于ppp协议保障传输层链路的方法及*** |
CN102769934B (zh) * | 2012-04-12 | 2015-05-20 | 中兴通讯股份有限公司 | 基于ppp协议保障传输层链路的方法及*** |
CN109120729A (zh) * | 2017-06-23 | 2019-01-01 | 中国电信股份有限公司 | 地址分配管理方法、6LoWPAN网关和*** |
CN109917742A (zh) * | 2019-03-25 | 2019-06-21 | 北京龙鼎源科技股份有限公司 | 可编程逻辑控制器plc***、数据上传方法 |
CN112165735A (zh) * | 2020-09-26 | 2021-01-01 | 杭州雅观科技有限公司 | 一种云端一体的Wi-Fi设备自组网方法 |
CN112165735B (zh) * | 2020-09-26 | 2021-06-11 | 杭州雅观科技有限公司 | 一种云端一体的Wi-Fi设备自组网方法 |
CN114827017A (zh) * | 2022-03-31 | 2022-07-29 | 北京声智科技有限公司 | Kafka集群的通信方法、装置、电子设备和存储介质 |
CN114827017B (zh) * | 2022-03-31 | 2024-01-30 | 北京声智科技有限公司 | Kafka集群的通信方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP2012516087A (ja) | 2012-07-12 |
US9577870B2 (en) | 2017-02-21 |
BRPI0924228A2 (pt) | 2016-01-26 |
WO2010083887A1 (en) | 2010-07-29 |
CN102292963B (zh) | 2015-07-01 |
JP5414807B2 (ja) | 2014-02-12 |
US20110282998A1 (en) | 2011-11-17 |
EP2389751A1 (en) | 2011-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102292963B (zh) | 网络中的地址分配方法及装置 | |
JP5048684B2 (ja) | 通信ネットワークに対する選択的なサービス更新方法 | |
CN108521656B (zh) | 一种Lora通信方法及*** | |
US8248915B2 (en) | Redundant session information for a distributed network | |
US8248916B2 (en) | Recovery methods for restoring service in a distributed radio access network | |
US20070153750A1 (en) | Reactivating a communication session for a dormant mobile station | |
US8351349B2 (en) | Method and system for realizing location management of multihomed terminals in universal network | |
US8315172B2 (en) | Monitoring access nodes in a distributed radio access network | |
WO2019184285A1 (zh) | 通信设备、节点的连接方法、存储介质、电子装置 | |
KR102013816B1 (ko) | 분산 네트워크 구조에서 기지국 자가설정 방법 및 장치 | |
US20030126262A1 (en) | Method for assigning setting information for conection to external network | |
CN105743996A (zh) | Smb2扩展 | |
CN103813340B (zh) | 基于资源池的网络负荷分担方法、ap及*** | |
US7239643B2 (en) | Method for assigning setting information for connection to external network | |
US6980534B1 (en) | System and method for efficient selection of a packet data servicing node | |
US8706845B2 (en) | Method, apparatus, and system for maintaining status of bootstrap peer | |
CN101567908B (zh) | 地址分配方法及其装置 | |
CN1745541A (zh) | 基于网际协议的通信***的资源共享 | |
US8799434B2 (en) | System and method for establishment of a client/server type relationship in a peer-to-peer network | |
CN102843255B (zh) | 基于点对点的网络管理方法及代理选择服务器 | |
CN101557335A (zh) | 控制节点加入对等网络的方法和装置 | |
KR101099083B1 (ko) | 네트워크 자원 관리 시스템 및 그 관리 방법 | |
US7788347B2 (en) | Method and apparatus for configuring a network node using multiple peer-to-peer layers | |
CN114885444A (zh) | 一种多无线接入点自组网管理方法及*** | |
Kim et al. | An integrated scheme for address assignment and service location in pervasive environments |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150701 Termination date: 20200122 |
|
CF01 | Termination of patent right due to non-payment of annual fee |