具体实施方式
现在将参考附图在下文中更完整地描述本发明的实施例,附图形成了本发明的一部分,并作为说明示出了用于实施本发明的具体示例性实施例。然而,本发明可以用许多不同的形式来实施,并且不应当被解释成限于此处所述的实施例;相反,提供这些实施例,使得本发明可以完备和完全,并可以充分地向本领域的技术人员传达本发明的范围。特别地,本发明可以被实施为方法或设备。因此,本发明可采用完全硬件实施例、完全软件实施例或组合软件和硬件方面的实施例的形式。因此,以下详细描述不应当在限制的意义上考虑。
说明性操作环境
参考图1,用于实现本发明的一个示例性系统包括诸如计算设备100的计算设备。在基本的配置中,计算设备100通常包括至少一个处理单元102和系统存储器104。根据计算设备的确切配置和类型,系统存储器104可以是易失性的(如RAM)、非易失性的(如ROM、闪存等)或两者的某一组合。系统存储器104通常包括操作系统105、一个或多个应用程序106,并且可包括程序数据107。这一基本配置在图1中由虚线108内的组件示出。
计算设备100可具有另外的特征或功能。例如,计算设备100也可包括另外的数据存储设备(可移动和/或不可移动),如磁盘、光盘或磁带。这类另外的存储在图1中由可移动存储109和不可移动存储110示出。计算机存储介质可包括以用于储存如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法和技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器104、可移动存储109和不可移动存储110都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、盒式磁带、磁带、磁盘存储或其它磁存储设备、或可以用来储存期望的信息并可由计算设备100访问的任一其它介质。任一这类计算机存储介质可以是设备100的一部分。计算设备100也可具有(多个)输入设备112,如键盘、鼠标、输入笔、语音输入设备、触摸输入设备等等。也可包括(多个)输出设备114,如显示器、扬声器、打印机等等。所有这些设备在本领域中是已知的,且无需在此详细讨论。
计算设备100也包含允许设备如通过网络或无线网状网络与其它计算设备118进行通信的通信连接116。通信连接116是通信介质的一个示例。通信介质通常可以实现为诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送介质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它无线介质。本发明使用的术语计算机可读介质包括存储介质和通信介质。
在一个实施例中,应用程序106还包括用于实现依照本发明的网状联网功能和/或分布式服务器的应用程序120。由应用程序120表示的功能可以由计算设备100中包括的附加输入设备112、输出设备114和通信连接116进一步支持,用于建立和维护网状网络。
图2示出了可在本发明的一个示例性实施例中使用的移动计算设备。参考图2,用于实现本发明的一个示例性系统包括诸如移动计算设备200等移动计算设备。移动计算设备200具有处理器260、存储器262、显示屏228和小键盘232。存储器262一般包括易失性存储器(如RAM)和非易失性存储器(如ROM、闪存等)。移动计算设备200包括操作系统264,如微软公司的Windows CE操作系统或其它操作系统,它驻留在存储器262中并在处理器260上执行。小键盘232可以是按钮数字拨号盘(如在典型的电话上的那样)、多键键盘(如常规的键盘)。显示屏228可以是液晶显示屏或通常在移动计算设备中使用的任一其它类型的显示屏。显示屏228可以是触敏的,并且因此可以用作输入设备。
一个或多个应用程序266被加载到存储器262中并在操作系统264上运行。应用程序的示例包括电话拨号器程序、电子邮件程序、时间安排程序、PIM(个人信息管理)程序、文字处理程序、电子表格程序、因特网浏览器程序等等。移动计算设备200也包括存储器262内的非易失性存储268。非易失性存储268可用于储存持久信息,即使移动计算设备200断电这样的信息也不会丢失。应用程序266可以使用并储存存储268中的信息,如由电子邮件应用程序使用的电子邮件或其它消息、由PIM使用的联系人信息、由时间安排程序使用的约会信息、由文字处理应用程序使用的文档等等。
移动计算设备200具有电源270,可以被实现为一个或多个电池。电源270还可包括外部电源,如对电池进行补充或重新充电的AC适配器或加电对接基座。
也示出移动计算设备200具有两种类型的外部通知机制:LED 240和音频接口274。这些设备可以直接耦合至电源270,使得当被激活时,即使处理器和其它组件可能被关闭以保存电池功率,它们也能保持由通知机制指定的一段持续时间。LED 240可以被编程为无限地保持直到用户采取行动来指示设备的通电状态。音频接口274用来向用户提供并从其接收可听见的信号。例如,音频接口274可以耦合至用于提供可听见输出的扬声器以及用于接收可听见输入的话筒,如方便电话会议。
移动计算设备200也包括无线电接口层272,它执行发送和接收诸如射频通信等通信的功能。无线电接口层272通过通信载波或服务供应商方便了移动计算设备200和外部世界之间的无线连接。来往于无线电接口层272的传输在操作系统264的控制下进行。换言之,由无线电接口层272接收的通信可以通过操作系统传播到应用程序266,反之亦然。
在一个实施例中,应用程序266还包括用于实现依照本发明的网状联网功能和/或分布式服务器的应用程序280。由应用程序280表示的功能可以由包括在移动计算设备200中的无线电接口层272中的结构进一步支持,用于建立和维护网状网络。
图3示出了可在本发明的一个实施例中使用的网状网络300。网状网络300可包括网孔节点、因特网服务供应商和通信介质的任何拓扑结构。同样,网状网络300可具有静态或动态的拓扑结构,而不脱离本发明的精神和范围。
网状网络300包括一个或多个因特网服务供应商310,它们为一个或多个网孔节点提供因特网接入点。每一网孔节点可包括连接到网状网络300的任何设备。网孔节点可发送和接收数据包,并也可依照网状网络300的路由协议将数据包传递到其它网孔节点。网孔节点可以是固定设备或移动设备。例如,网孔节点可以包括类似于上文结合图1所描述的计算设备100的计算设备312。网孔节点也可包括类似于上文结合图2所描述的移动计算设备200的移动计算设备314。其它实施例可包括网孔节点的其它配置。例如,网孔节点可包括仅将数据包从一个网孔节点路由到诸如网孔框316等另一网孔节点的专用计算机。
在本发明的一个示例性实施例中,网状网络300具有一种网络拓扑结构,其中网孔节点与网孔节点之间通过若干冗余连接相连接。网状网络300可包括完全网孔网络,其中每一网孔节点连接到网状网络中的每一其它网孔节点。网状网络300也可包括局部网孔拓扑结构,其中某些网孔节点以完全网孔网络组织,而其它网孔节点仅连接到一个或两个其它网孔节点。其它网孔拓扑结构可包括连接到网状网络的一个或多个客户机子网。这些客户机子网可具有连接到其上的多个客户机。例如,客户机子网可包括通过除网状网络之外的网络连接连接到特定的网孔框的一组计算设备。子网中的这些客户机经由网孔框将数据流量路由到网状网络而获得对其它资源的访问。通过网孔框访问网状网络允许客户机设备获得用管理数据路由的网孔框对因特网和其它资源的访问。网状网络300的各种拓扑结构是无穷的,并且不在此进一步陈述。
参考标号318指示网孔节点之间的通信介质。作为示例而非局限,通信介质318可以包括诸如有线网络或直接连线连接等有线介质,以及诸如声学、RF、红外和其它无线介质等无线介质。参考标号320指示因特网服务供应商310和一个或多个网孔节点之间的通信介质。通信介质320可包括诸如有线网络或直接连线连接等有线介质,以及诸如声学、RF、红外和其它无线介质等无线介质。
在网状网络300中,网孔节点可以发送和接收来自其它网孔节点和/或来自因特网的数据包。路由表通常确定了数据包通过网状网络的路径。数据包的路由通常是在源节点处确定的。换言之,发送数据包的节点可确定数据包通过网状网络所采取的路线。从一个网孔节点路由以到达另一网孔节点的数据包通常被称为“跳跃”。例如,如果网孔节点314希望向网孔节点316发送数据包,则网孔节点314可访问的路由表可指示路由将通过网孔节点322发生。因此,数据包将做出两次跳跃(从网孔节点314到网孔节点322,以及从网孔节点322到网孔节点316)。一般而言,延时与数据包到达网孔节点必须做出的跳跃的数量成正比地增长。路由表还可指示数据包到达目的地所用的若干可用路径。路由表也可指示由于跳跃数量过大,目的地节点是不可访问的。然而,对路由表的使用假定网络节点已被寻址用于通过网状网络300路由数据。
用于对等网络的分布式服务器的说明性实施例
本发明的实施例涉及在网络上包括的多个计算设备上特别网络的分发地址空间管理。例如,网络可包括一个或多个网孔框或网孔节点。这些网孔节点被配置成自形成一种无线网络,使得其它网孔框在特定的范围之内。许多这些网孔节点可向多个客户机计算设备提供到网状网络的连接。其它网孔节点可向连接到网状网络的计算设备提供因特网出口点。本发明提供了一种允许客户机计算设备将其因特网流量通过网状网络路由并到达特定的因特网出口点的寻址方案。该寻址方案提供了对网络地址的分配,使得可以实现数据的这一路由,而不需要路由中的多个网络地址解析(NAT)点。
在一个实施例中,使用一种消息通信方案来向网孔节点通知地址空间的状态及其改变。该消息通信方案允许网孔节点被协调来管理地址空间,而无需使用管理员或专用服务器。
每一网孔框实现监听(相对于网孔的)传入客户机连接的DHCP服务器。每一网孔框维护网孔框所理解的表示DHCP数据库的当前状态的数据结构。DHCP请求由网孔框字段化(field),并使用上述消息通信方案来向其它网孔框通知其动作,使得可以在所有的网孔框之间维护一致的地址空间。
图4示出了用于本发明的一个实施例的示例性对等拓扑结构。系统400包括对等(P2P)网络402、对等(P2P)计算设备(例如,网孔框)404、406、408、客户机子网410、420以及客户机计算设备412、414、416、420、422、426。
P2P设备(例如,406)被添加到P2P网络402,它们被配置成利用地址空间中所提供的一部分,或分配地址空间的一部分(见图5)。在自形成和自管理的P2P网络中,单个DHCP服务器的概念不是可行的。DHCP服务器要求个人(例如,管理员)设置它并管理它。在P2P网络402中,没有管理员,没有单个控制点,也没有DHCP服务所依赖的网络基础结构。本发明从P2P网络402上的多个位置和多个设备(例如,406)上提供DHCP地址。自形成以创建P2P网络的设备(例如,406)也向其客户机计算设备(例如,412)提供DHCP服务,同时从单个、分布式DHCP数据库中操作。作为示例,在自形成的网状网络(例如,网络402)中,网孔框(例如,406)彼此发现、彼此验证、并形成了P2P网络。P2P网络是依照本发明来配置的,以允许连接到网孔框(例如,406)的客户机(例如,412)与连接到网孔上别处的另一网孔框(例如,408)的客户机(例如,422)通信。每一网孔框(例如,406)向其客户机(例如,412)提供IP(网际协议)地址。客户机然后可与连接到其它网孔框的其它客户机通信,使其自己的IP地址由其各自的网孔框来提供。
在一个实施例中,网孔框基于类似于核心主干路由器协议的协议在它们之中创建单个逻辑DHCP服务器,由此这些网孔框作用于单个逻辑DHCP数据库。网孔框能够为它们自己以及连接到它们的客户机分配地址。地址是从专用网络10.B.C.D空间中选出的。当创建用于网状子网的数据库时,对第二位置随机地选择一个值。该网状子网中的所有节点在第二位置中使用该随机选择的值。例如,如果选择了值213,则网状子网中的所有节点具有以10.213开始的地址。该示例的子网掩码是255.255.0.0。可选择其它值和子网掩码值,而不脱离本发明的精神或范围。
在另一实施例中,每一网孔框及其客户机组共享一客户机地址子网。为客户机子网大小选择的位数(即,主机数)是具有用于正常出发点的足够地址和不浪费地址空间之间的折衷。例如,可对每一客户机子网使用4位空间,从而允许16个主机。然而,注意,这不限制网孔框能够为其附加的客户机网络分配多少客户机子网。如果网孔框在用于主存客户机计算设备的一个客户机子网上空间不够,则它可分配额外的客户机子网。采用4位空间示例,包括IP地址的剩余12位是随机选择的值。换言之,当分配子网时,网孔框能够在该范围内自由地选择一个随机值。例如,使用上述示例,其中213是对第二位置随机选择的值,则连接到网孔框的设备的客户机子网地址可以是10.218.1.16,其子网掩码为255.255.255.240。
在另一实施例中,使用本发明的寻址方案允许实现一种允许网孔框在可用因特网出口点之间选择的算法。当网孔框向对应的客户机计算设备分发地址时,该网孔框给出其自己的面向客户机的地址作为默认网关。由此,不要求客户机基于出口点的改变来改变任何其配置信息。
图5示出了依照本发明的通电过程的示例性逻辑流程图。过程500在框502开始,其中在网状网络(例如,图4所示的P2P网络402)上对网孔节点或网孔框通电。网孔节点可具有通过客户机子网(例如,客户机子网410)联网的一个或多个客户机计算设备。在网孔节点被通电并连接到网状网络之后,该过程在框504继续。
在框504,对网孔节点的IP地址(例如,10.X.C.D)的第二位置或第二字节选择一随机值(X)。一旦选择了随机值,该过程移至框506。
在框506,将发现消息广播到当前网孔节点范围内的任何其它网孔节点。在一个实施例中,该范围是使得当前网孔节点和其它网孔节点被认为是邻居,或直接彼此连接的范围。在一个实施例中,发现消息包括对应于IP地址的第二字节的X值。一旦广播了发现消息,该过程在框508继续。
在框508,网孔节点在初始状态中等待指定的事件。在一个实施例中,指定的事件是对应于超时属性的指定秒数的流逝。当网孔节点在初始状态中等待时,该过程继续到判别框510。
在判别框510,确定当前网孔框是否在初始状态中从其它网孔框接收到任何其它发现消息。如果从另一网孔框接收到另一发现消息,则该过程移至判别框512,以在两个分配的地址空间之间做出选择。然而,如果没有接收到任何发现消息,则该过程前进到判别框516。
在判别框512,确定接收的发现消息中包括的X值是否大于由当前网孔框随机生成的X值。如果接收到的X值大于当前X值,则该过程移至框514。然而,如果接收到的X值小于当前X值,则该过程返回到框508的初始状态。
在框514,设置当前值X以匹配接收到的X值。当两个网孔节点都在初始阶段,且一个网孔节点尚未存在时,改变当前X值求出相邻网孔节点之间的冲突地址空间。例如,第一网孔节点可以在网络上出现,并发送指示对应于10.15.C.D的面向网孔的地址的分配的发现消息。第二网孔节点可以同时在网络上出现,并发送指示对应于10.23.C.D的面向网孔的地址的分配的发现消息。为使两个网孔节点依照同一地址空间操作,第一网孔节点和第二网孔节点被配置成选择较高的字节等级来分解冲突。因此,第一网孔节点将其第二字节改为23,使得网状网络的地址分配可在分解冲突的情况下继续。如果任一网孔节点超出初始节点或任一网孔节点遇到初始节点之后的另一网孔节点,则不会出现该类型的冲突分解。对X的改变以对应于较高字节级别是为两个网孔节点同时广播其发现消息的时候所保留的。因此,一旦将当前X值改为对应于接收的X值,则该过程返回到框508的初始状态。
在判别框516,确定在初始状态中超时属性是否过期。如果超时属性尚未过期,则该过程返回到框508,并且网孔节点保留在初始状态中。然而,如果超时属性过期,则网孔节点退出初始状态,并且该过程移至判别框518。
在判别框518,确定响应于广播发现消息是否发现现有的网状网络。如果当前不存在任何网状网络,则该过程前进到判别框522。然而,如果发现了现有的网状网络,则该过程移至框520。
在框520,检索对应于相邻网孔节点的路由表。每一网孔节点的路由表提供了对网络上网孔节点的当前地址分配的描述。一旦检索到了路由表,该过程移至判别框522。
在判别框522,依照任何所检索的路由表,确定是否还留有自由决定的值用于分配。情况可以是其它网孔节点的IP地址的分配消耗了对应于第二位置的当前值(X)的地址空间。在一个实施例中,自由决定的值对应于从为上述客户机子网的4位空间分配剩下的12位随机生成的值。如果确定在当前分配的地址空间中还剩下分配空间,则该过程前进到框526。然而,如果确定没有剩下自由决定的值,则该过程前进到框524。
在框524,分配一个新的第二位置值(例如,Y)用于向网孔节点提供地址空间。该新的第二位置值(Y)可以与原始的第二位置值(X)来协调,以在单个地址空间中继续管理网状网络。一旦分配了该新的第二位置值,该过程在框526继续。
在框526,为网孔节点和任何附加的客户机计算设备分配客户机子网。例如,用于当前未如路由表所指示的分配的12个自由决定的比特的值可用于区分当前网孔节点的客户机子网。一旦分配了客户机子网,则该过程移至框528。
在框528,在网状网络的主干上分配地址。在一个实施例中,该面向网孔的地址被选为具有对应于10.X.B.C的值,其中X是先前定义的第二位置值。一旦为网孔节点分配了主干或面向网孔的地址,则该过程在框530继续。
在框530,设置对应于网孔节点的地址分配的定时器(T)。定时器(T)提供了用于确认该网孔节点的地址分配的时间限制。一旦定时器(T)被设置为选中的限制(例如,5分钟),则该过程前进到框532。
在框532,对于由客户机子网和主干地址定义的网孔节点的邻居,将分配消息广播到这些邻居。分配消息包括一指示符,它指示地址已被“分配”并且正在等待由定时器(T)设置的周期的过期来确认分配。在一个实施例中,分配消息包括一跳跃计数,它限制了分配消息通过网状网络传播的跳跃的数量。跳跃计数对应于防止数据在网络上被路由超出某一数量的跳跃之外的类似的跳跃限制。由于对受管地址空间的一致性的需求被限于数据的路由范围,因此在网状网络上足够分离的网孔节点可具有相同的地址分配而不会造成冲突。
在另一实施例中,分配消息也可包括表示当前网孔节点的路由表最后一次改变的时间的时间标记。该时间标记允许其它网孔节点在它们之前已看到分配消息时(即,自从最后一次发送该消息以来未发生改变)忽略该消息。
另外,分配消息还可包括唯一地标识始发该分配消息的网孔节点的序列号。该序列号提供了另一指示符,指示潜在冲突分配消息之间的分解来源。一旦广播了分配消息,该过程前进到框534。
在框534,起动为地址分配提供确认周期的定时器(T)。起动定时器(T)与分配消息的广播相一致。一旦起动了定时器(T),该过程移至框536。
在框536,网孔节点进入监听状态。在监听状态中,网孔节点可从客户机计算设备接收DHCP请求(见图6)、从其它网孔节点接收其它分配消息(见图7)、或者定时器(T)可以流逝。在每一网孔节点进入监听状态之后,该过程在判别框538继续。
在判别框538,确定是否已经过了定时器(T)周期。如果未过定时器(T)周期,则该过程返回到框536,其中网孔节点保留在监听状态中。然而,如果已经过了定时器(T)周期,则该过程移至框540。
在框540,将更新的分配消息广播到由客户机子网和主干地址定义的网孔节点的邻居。该分配消息包括一指示符,指示地址现在“在使用中”,并且被分配给当前网孔节点及其客户机子网(除非有任何额外的冲突)。
图6示出了依照本发明的DHCP请求处理过程的示例性逻辑流程图。过程600在网孔节点处于图5的讨论中所描述的监听状态536,并从连接的客户机设备接收到DHCP请求时开始。该过程在框602继续。
在框602,从分配的客户机子网范围中对未使用的值做出选择。例如,使用上述4位客户机子网分配,可向客户机计算设备分配可能的16个客户机地址中的任何一个。一旦对未使用的客户机子网地址做出选择,该过程在判别框604继续。
在判别框604,确定是否已经过了图5的讨论中所描述的定时器(T)周期。如果未过定时器(T)周期,则该过程移至框606。然而,如果已经过了定时器(T)周期,则该过程移至框608。
在框606,将网孔节点配置成用一设置好的比标准更新限制短的更新限制(例如,5分钟)来响应于DHCP请求。使用该较短的更新限制是因为网孔节点的客户机子网范围分配尚未被确认。因此,设置DHCP请求的更新限制,使得网孔节点在所设置的更新限制过期时确认客户机子网地址分配以减少冲突情况。该过程在判别框610继续。
在框608,由于已经过了定时器(T)周期,将网孔节点配置成用标准的更新限制来响应于DHCP请求。对应于客户机子网范围的地址分配已被确认。因此,可使用标准的更新限制,它担当“心跳”时间周期,使得网孔节点周期性地确认对网状网络的地址分配。该过程然后在判别框610继续。
在判别框610,确定客户机子网范围中剩余的地址数量是否在选中的阈值之上。例如,可确定一旦客户机子网范围的60%被分配给连接到网孔节点的客户机计算设备,就需要分配额外的范围。如果剩余的客户机子网地址数量超过该阈值,则该过程返回到如图5所描述的监听状态。然而,如果剩余的客户机子网地址数量未超过该阈值,则该过程移至框612。
在框612,分配一新的客户机子网地址范围,并且调用一通知过程以向网状网络上的其它网孔节点通知该分配。在一个实施例中,通知过程对应于图5的过程步骤526到540。在另一实施例中,跳过过程步骤528,因为可能不需要分配另一主干地址来分配额外的客户机子网地址。一旦分配了新的客户机子网地址,该过程返回到图5所描述的监听状态536。
图7示出了依照本发明的分配消息接收处理过程的示例性逻辑流程图。过程700在网孔节点处于图5的讨论中所描述的监听状态536,且从另一网孔节点接收到分配消息时开始。该过程在判别框702继续。
在判别框702,确定与分配消息的始发者相关联的时间标记是否比当前网孔节点关联于始发网孔节点的时间标记新。如果时间标记较新,则该过程移至框704。然而,如果时间标记不是较新的,则该过程移至框712。
在框704,当前网孔节点从分配消息的发送者获取始发网孔节点的路由表。在第一次跳跃之后,分配消息的发送者以及分配消息的始发者是不同的。在获取了路由表之后,该过程移至判别框706。
在判别框706,确定依照所接收的分配消息做出的任何分配是否与当前网孔节点的任何本地分配的子网冲突。如果没有冲突,则该过程前进至框710。然而,如果存在冲突,则该过程移至框708。
在框708,当前网孔节点用出错通知响应于分配消息的发送者。该出错通知将被传播回到分配消息的始发者处。分配消息的始发者然后可选择重新分配其主干和子网地址以分解冲突。在当前网孔节点用出错消息响应之后,该过程返回到图5所描述的监听状态536。
如果没有冲突,则在框710,更新始发者的时间标记的本地版本以反映始发网孔节点的当前地址分配。更新时间标记的本地版本确保与将来从同一始发网孔节点接收到的分配消息的区分。该过程在框714继续。
在判别框712,当始发者时间标记不比本地版本新时,确定该时间标记和对应于始发网孔节点的序列号是否先前已被当前网孔节点查看过。如果时间标记和序列号先前已被当前网孔节点查看过,则该过程前进到框718。然而,如果时间标记和序列号先前未被当前网孔节点查看过,则该过程移至框714。
在框714,递增与接收到的分配消息相关联的跳跃计数。递增跳跃计数指示当前网孔节点已准备好将该消息转发到任何其它的相邻网孔节点。在递增了跳跃计数之后,该过程移至判别框716。
在判别框716,确定跳跃计数是否超过跳跃限制。可设置跳跃限制以防止进一步转发分配消息。跳跃限制有助于允许在网络上使用一定水平的重复地址,而不会导致过多水平的地址冲突。如果跳跃计数未超过跳跃限制,则该过程前进至框720。然而,如果跳跃计数超过了跳跃限制,则该过程前进到框718。
在框718,分配消息被当前网孔节点丢弃。分配消息被丢弃是因为当前网孔节点确定该分配消息与其路由表的当前状态无关(即,时间标记不是新的、超出跳跃限制等等)。在丢弃了分配消息之后,该过程返回到图5所描述的监听状态536。
相反,在框720,当分配消息相关时,该分配消息由当前网孔节点转发给其相邻网孔节点。转发分配消息确保网状网络上网孔节点之中相对于地址空间的同步。在转发了分配消息之后,该过程返回到图5所描述的监听状态536。
在另一实施例中,图6和7所描述的过程可能不循环回到所描述的监听状态,而是相反,移至用于进一步处理的另一状态,诸如与最优路由确定、因特网出口确定相一致的状态或其它状态。
在又一实施例中,在两个建立的网状网络之间新节点可以上线,由此创建了包括两个网状网络的内容以及该新节点的新的逻辑网状网络。使用该更新,则本发明的转发过程允许从两个网孔节点之一的地址空间分配可以通过该新节点被传播到其它网状网络。在分配消息被转发到其对应的跳跃限制之后,依照用于逻辑网状网络的公用地址空间同步两个网状网络。
在再一实施例中,图5-7中所描述的本发明的步骤可以在必要时进行修改以容纳结合对等网络使用的网际协议的最新版本。例如,某些协议版本可绕过生成逻辑分布式DHCP服务器的必要性。该协议版本可提供用于发布子网ID的直接功能,使得子网可被分配和管理而无需DHCP服务器的支持。针对维护P2P网络上的一致地址空间的本发明的教导可同样适用于其它协议版本,而不脱离本发明的精神和范围。
以上说明书、示例和数据提供了对本发明的组成部分的制作和使用的完整描述。由于可以做出本发明的许多实施例而不脱离本发明的精神和范围,本发明归于所附权利要求书。