掌桥专利:专业的专利平台
掌桥专利
首页

一种基于服务器的本地地址分配协议的方法和装置

文献发布时间:2023-06-19 09:30:39


一种基于服务器的本地地址分配协议的方法和装置

相关申请案交叉申请

本发明要求Donald E.Eastlake III等人2015年3月6日递交的发明名称为“基于服务器的本地地址分配协议(Server-Based Local Address Assignment Protocol)”的第62/129,251号美国临时申请案的在先申请优先权,该在先申请的内容以引入的方式并入。

关于由联邦政府赞助研究或开发的声明

不适用

参考缩微胶片附录

不适用

技术领域

背景技术

服务器、代理和客户端等传统硬件网络组件的制造商请求媒体接入控制(mediaaccess control,MAC)地址且从证书注册中心(registration authority,RA)接收所述MAC地址,RA例如是电气和电子工程师学会(Institute for Electrical and ElectronicsEngineers,IEEE)标准协会证书注册中心。MAC地址也被称作物理地址。MAC地址通常意在提供局域网(local area network,LAN)中每个节点的唯一地址,但MAC地址也是全局唯一标识符(identifier,ID)。原始IEEEMAC地址标准提供超过281万亿个唯一MAC地址。

虚拟机(virtual machine,VM)是硬件机器的软件实施方案,其如同硬件机器般执行程序。VM由于其是虚拟的而并不具有物理MAC地址,但可能需要为VM分配MAC地址。物联网(Internet of Things,IoT)是物理设备的网络,其具有嵌入式传感器和使得那些设备能够交换数据的网络连接性。也可能需要为IoT设备分配MAC地址。然而,IoT组件迅速增多,因此将并不存在足够数目的唯一MAC地址以适应预期数目的IoT设备。因此,仍需要以可持续的方式为VM以及IoT设备提供MAC地址。

发明内容

在一个实施例中,本发明包含一种装置,其包括:存储器;和处理器,所述处理器耦合到所述存储器并用于:执行随机数生成;基于所述随机数生成生成主机标识符(hostidentifier,HID),其中所述HID在本地网内大体上唯一;以及使用所述HID生成请求本地地址的初始消息。在一些实施例中,其中所述装置是本地网中的端点客户端;所述HID包括多个位,其中所述个数保证在所述HID在所述本地网内为唯一的概率内;所述HID至少为48个位;所述初始消息包括目标媒体接入控制(destination media access control,DMAC)字段、源媒体接入控制(source media access control,SMAC)字段、EtherType字段、服务器本地地址分配协议(server local address assignment protocol,S-LAAP)类型字段和HID字段;其中所述DMAC字段包括组播地址,所述SMAC字段包括指示本地地址为未知的第一值,所述EtherType字段包括指示S-LAAP协议的两个八位位组,所述S-LAAP类型字段包括指示初始消息为初始消息类型的第二值,且所述HID字段包括所述HID;其中所述处理器进一步用于从响应于初始消息源自服务器的多个响应消息当中选择包括本地地址部分和基于所述本地地址部分的媒体接入控制(MAC)地址的第一响应消息;其中所述处理器进一步用于响应于所述第一响应消息生成确认消息,且其中所述确认消息包括目标媒体接入控制(DMAC)字段、源媒体接入控制(SMAC)字段、EtherType字段、服务器本地地址分配协议(S-LAAP)类型字段和HID字段;其中所述DMAC字段包括组播地址,所述SMAC字段包括MAC地址,所述EtherType字段包括指示S-LAAP协议的两个八位位组,所述S-LAAP类型字段包括指示确认消息为确认消息类型的值,且所述HID字段包括所述HID;所述装置进一步包括耦合到所述处理器并用于将初始消息和确认消息传输到代理的发射器;所述装置进一步包括耦合到所述处理器并用于将初始消息和确认消息传输到中间节点的发射器。

在另一实施例中,本发明包含一种代理,其包括:第一端口,其用于从客户端接收初始消息,其中所述初始消息包括大体上唯一地识别本地网内的客户端的主机标识符(HID);处理器,其耦合到所述第一端口,并用于修正所述初始消息以产生包括对应于所述第一端口的端口值的修正后初始消息;以及发射器,其耦合到所述处理器并用于将所述修正后初始消息传输到位于本地网外部的服务器。在一些实施例中,所述修正后初始消息包括目标媒体接入控制(DMAC)字段、源媒体接入控制(SMAC)字段、EtherType字段、服务器本地地址分配协议(S-LAAP)类型字段、HID字段和端口字段;所述DMAC字段包括组播地址,所述SMAC字段包括代理媒体接入控制(MAC)地址,所述EtherType字段包括指示S-LAAP协议的两个八位位组,所述S-LAAP类型字段包括指示所述初始消息为初始消息类型的值,所述HID字段包括所述HID,且所述端口字段包括所述端口值;所述代理进一步包括耦合到处理器并用于从服务器接收响应消息的第二端口,其中所述响应消息包括客户端的媒体接入控制(MAC)地址和所述端口值;所述代理用于经由第一端口且响应于从第一服务器接收响应消息而将响应消息传输到客户端。

在又一实施例中,本发明包含一种方法,其包括:执行随机数生成;基于所述随机数生成而生成主机标识符(HID),其中所述HID在本地网内大体上唯一;使用所述HID生成请求本地地址的初始消息;以及传输所述初始消息。在一些实施例中,生成所述初始消息包括:生成包括组播地址的目标媒体接入控制(DMAC)字段;生成包括指示本地地址为未知的第一值的源媒体接入控制(SMAC)字段;生成包括指示服务器本地地址分配协议(S-LAAP)协议的两个八位位组的EtherType字段;生成包括指示所述初始消息为初始消息类型的第二值的S-LAAP类型字段;以及生成包括所述HID的HID字段;所述方法进一步包括:接收响应于所述初始消息发端的响应消息;基于至少一个标准从所述响应消息当中选择第一响应消息;以及从所述第一响应消息提取媒体接入控制(MAC)地址;所述方法进一步包括:通过以下操作响应于第一响应消息生成确认消息:生成包括组播地址的目标媒体接入控制(DMAC)字段;生成包括MAC地址的源媒体接入控制(SMAC)字段;生成包括指示S-LAAP协议的两个八位位组的EtherType字段;生成包括指示所述确认消息为确认消息类型的值的服务器本地地址分配协议(S-LAAP)类型字段;以及生成包括所述HID的HID字段。

从结合附图和所附权利要求书进行的以下详细描述将更清楚地理解这些和其它特征。

附图说明

为了更透彻地理解本发明,现参考结合附图和具体实施方式而进行的以下简要描述,其中相同参考标号表示相同部分。

图1是根据本发明的实施例的网络系统的示意图。

图2是说明根据本发明的实施例的使用代理的地址分配协商的消息序列图。

图3是图2中的初始消息的示意图。

图4是更详细地说明图2中的步骤230的流程图。

图5是更详细地说明图2中的步骤240和250的流程图。

图6是图2中的响应消息的示意图。

图7是更详细地说明图2中的步骤260的流程图。

图8是图2中的确认消息的示意图。

图9是更详细地说明图2中的步骤280的流程图。

图10是更详细地说明图2中的步骤290的流程图。

图11是说明根据本发明的实施例的使用中间节点的地址分配协商的消息序列图。

图12是说明根据本发明的实施例的生成主机标识符(HID)和传输初始消息的方法的流程图。

图13是根据本发明的实施例的网络设备的示意图。

具体实施方式

首先应理解,尽管下文提供一项或多项实施例的说明性实施方案,但所公开的系统和/或方法可使用任何数目的技术来实施,无论该技术是当前已知的还是现有的。本发明决不应限于下文所说明的说明性实施方案、图式和技术,包含本文中所说明并描述的示例性设计和实施方案,而是可在所附权利要求书的范围以及其等效物的完整范围内修改。

以引用的方式并入的IEEE Std 802-2014,“局域网和城域网的IEEE标准:概述和架构(IEEE Standard for Local and Metropolitan Area Networks:Overview andArchitecture)”,2014年6月12日和IEEE P802c/D0.2,“局域网和城域网的标准:概述和架构-草案修正案:本地媒体接入控制地址使用(Standard for Local and MetropolitanArea Networks:Overview and Architecture-Draft Amendment:Local Medium AccessControl Address Usage)”,2016年2月(统称为“IEEE 802”)描述解决VM和IoT设备的MAC地址的问题的途径。具体地说,IEEE 802描述具有全局分配地址部分和本地地址部分这两个部分的MAC地址。RA仍将全局分配地址部分分配到服务器,但服务器可分配本地地址部分。举例来说,LAN中的服务器可根据其自身的协议使用和再使用本地地址。因此,此类协议允许VM和IoT组件获得本地地址而不必请求那些地址和从集中式RA接收那些地址。

一个此类协议描述于“动态主机配置协议(Dynamic Host ConfigurationProtocol)”,因特网工程任务组(Internet Engineering Task Force,IETF),1997年3月和“动态主机配置协议IPv6(DHCPv6)(Dynamic Host Configuration Protocol for IPv6(DHCPv6))”,IETF,2003年7月(统称为“DHCP”),其以引用的方式并入。DHCP是使用组播消息、支持冗余服务器且支持客户端与服务器之间的代理的成熟协议。然而,VM和IoT设备最初可并不具有MAC地址。因此,当其从服务器请求本地地址或本地ID时,服务器无法知道哪些设备起始请求且服务器无法通过包括所请求本地地址或本地ID的消息个别地寻址对请求设备的回复。

本文中公开基于服务器的本地地址分配协议的实施例。所述协议可被称为服务器本地地址分配协议(S-LAAP,读作“ess-lap”)。在S-LAAP中,客户端为自身生成HID。客户端可以是VM和IoT设备。HID具有极高概率为本地唯一ID。服务器和其它节点并不生成HID。使用HID,客户端请求来自服务器的本地地址。因此,客户端不需要MAC地址来请求来自服务器的本地地址。代理或服务器记录指示哪些端口接收请求的端口信息,接着使用相同端口对所述请求作出响应。代理可以任选地并不记录端口信息,而是实际上将所述端口信息添加到其转发到服务器的请求。服务器接着在其返回到代理的响应中添加所述端口信息。所述响应包括MAC地址且可包含请求设备在此期间可使用MAC地址的时长。本地地址在本地为唯一的。响应包含或服务器可同时传输层2MAC地址且还可包含层3因特网协议(InternetProtocol,IP)地址。S-LAAP可以是新的独立标准或可以是IEEE 802或DHCP等现有标准的扩展。

图1是根据本发明的实施例的网络系统100的示意图。系统100通常包括耦合本地网105、106和145的更广网络140。尽管系统100展示为仅包括耦合到更广网络140的本地网105、106和145,但可存在任何合适数目个本地网。

本地网105和106是S-LAAP网络,意味着其采用S-LAAP。本地网105和106各自可被称作LAN。本地网105和106通过层3交换机127连接。本地网105包括客户端110和115以及交换机127的一部分。本地网106包括客户端120和121、中间节点130;交换机127的一部分;以及服务器135。代理125可如所示处于本地网105中或可并入到交换机127中且作为交换机127的一部分。尽管本地网105和106展示为仅包括那些组件或节点,但可存在任何合适数目个此类节点。在此上下文中,术语“本地”指代本地网,其与更广网络140等更广网络形成对比。本地网可指代在层2处或在开放系统互连(Open Systems Interconnection,OSI)模型下方通信的一组节点,其与在层3处或在OSI模型上方通信的一组节点形成对比。替代地,本地网指代地理上接近于彼此的一组节点,例如在同一建筑物中的一组节点。在此上下文中,本地网可意味着广播消息到达所述本地网中的所有终端站点且组播消息到达所有受关注的终端站点。

客户端110、115、120和122是S-LAAP客户端且是硬件网络组件、VM或IoT设备。客户端110、115、120和122通常是系统100中的端点且特定地是本地网105和106中的端点。当客户端110、115、120和122是VM时,其自身可以是软件,但可在代理125等较大硬件设备中实施。当客户端110、115、120和122是IoT设备时,其可使用代理125等硬件网络组件在本地网105和106内通信。客户端110和115经由代理125与服务器135通信。客户端120和122经由中间节点130与服务器135通信。

代理125是硬件网络组件或硬件网络组件中的软件实施方案。如果客户端110、115是VM,那么代理125可包括客户端110、115。无论客户端110、115是VM还是IoT设备,代理125均提供用于客户端110、115在本地网105内通信的构件。具体地说,代理125充当客户端110、115的转发节点。

中间节点130可类似于客户端110且可表示一系列此类节点。代理125和中间节点130两者一方面充当客户端110、115、120和122之间的中间物且另一方面充当与服务器135之间的中间物。因此,代理125和中间节点130提供转发功能,从而一方面促进客户端110、115、120和122之间的通信且另一方面促进与服务器135之间的通信。如果S-LAAP服务器和所有客户端处于本地网106等同一本地网中,那么可不存在代理。

服务器135是S-LAAP服务器且是硬件网络组件或硬件网络组件的软件实施方案。对于本地网105和106中最初不具有MAC地址的其它组件,服务器135实现对更广网络140的接入。与代理125形成对比,服务器135维持包括MAC地址的资源的数据库以供分配。由于服务器135是硬件网络组件或托管在硬件网络组件内,因此其可具有通过RA分配的MAC地址。下文中进一步描述客户端110、115、120和122;代理125;中间节点130以及服务器135的功能。

更广网络140充当本地网105和106与本地网145之间的中间物。举例来说,更广网络140可以是因特网。在此上下文中,术语“更广”指代更广网络,其与本地网105、106和145等本地网形成对比。更广网络可指代在层3处或在OSI模型上方通信的一组节点,其与在层2处或在OSI模型下方通信的一组节点形成对比。替代地,更广网络指代地理上彼此远离的一组节点,例如跨越一个或多个国家的一组节点。

本地网145类似于本地网105和106。本地网145可以是或可以不是S-LAAP网络。客户端150类似于客户端110、115、120和122。客户端150可以是或可以不是S-LAAP客户端。

在图1中简化了系统100。因此,系统100可包括其它组件,例如网桥、路由器以及额外代理和服务器。另外,系统100的组件可以任何合适方式布置。举例来说,服务器135可与路由器协同定位。

图2是说明根据本发明的实施例的使用代理的地址分配协商的消息序列图200。代理125和服务器135实施所述协商。具体地说,图200展示在客户端110、代理125和服务器135之间的协商。当然,相同原理适用任何合适的组件之间。

在步骤210之前,客户端110希望与客户端150通信。为了这么做,客户端110必须具有MAC地址。如果客户端110是VM或IoT设备,那么客户端110最初可并不具有MAC地址。在所述状况下,客户端110必须从服务器135获得MAC地址。然而,如上文所提及,服务器135可并不具有辨识来自客户端110的消息或寻址到客户端110的消息的方式。

在步骤210处,客户端110生成HID。客户端110使用随机数生成器这么做以生成合适大小的HID,例如48或64个位的HID。在“安全性的随机性要求(Randomness Requirementsfor Security)”,IETF RFC 4086,2005年6月中提供了用于生成此类随机数的一些方法,所述文献以引用的方式并入。替代地,位数的选择保证在可接受概率内,即HID基于在本地网中可同时生成HID的节点的数目在本地为唯一的。在所述状况下,HID大体上唯一。所述概率为任何合适的概率,例如在100年的使用中约98百分比(%)或约99%。HID仅需要在例如一秒或若干秒的一部分的给定时间段内为唯一或大体上唯一,在此期间存在未解决的S-LAAP请求,对所述请求的响应待决。

在步骤220处,客户端110生成初始消息或包或帧,且将初始消息传输到代理125。初始消息是组播消息或广播消息,因此本地网也将初始消息递送到其它可用节点。在一个实施例中的初始消息展示于图3中。

图3是图2中的初始消息300的示意图。初始消息300是组播消息或广播消息,且包括目标MAC(DMAC)字段310、源MAC(SMAC)字段320、EtherType字段330、S-LAAP类型字段340和HID字段350。组播消息和广播消息可统称为群播消息。初始消息300中的字段呈任何合适的顺序且包括任何合适数目个位。所述字段可符合DHCP等现有标准以便扩展此类标准。

DMAC字段310包括目的地地址(destination address,DA)。然而,客户端110可并不知道代理125或任何其它节点的地址。因此,DA是特殊组播地址或广播地址,其中的后一个可全部为1。

SMAC字段320包括源地址(source address,SA)。然而,客户端110可并不具有或知道其客户端MAC地址。因此,SA是指示MAC未知且包括例如全部0或全部1的特殊值。所述特殊值指示客户端110并不具有或知道其客户端MAC地址。

EtherType字段330包括新的EtherType或现有EtherType的子类型。EtherType是两个八位位组的字段,其用于指示用于初始消息300的协议、指示初始消息300的大小或这两者。在此状况下,EtherType字段330可包括指示S-LAAP的分配值。S-LAAP类型字段340包括指示S-LAAP消息的类型的值。在此状况下,所述值指示初始消息300是初始消息。HID字段350包括在图2中客户端110在步骤210处所生成的HID。

初始消息300也可包括额外字段。举例来说,初始消息包括额外客户端信息,例如验证、授权、认证或其它信息。验证信息可以是日期和时间、配置字符串、安全性信息,或账户号码等计费信息。安全性信息可包括一个或多个消息验证代码或数字签名。

返回到图2,在步骤230处,代理125接收初始消息300;修正初始消息300以产生修正后初始消息300';且将修正后初始消息300'传输到服务器135。替代地,代理125并不修正所述初始消息300,而是实际上基于DMAC字段310中的DA转发初始消息300。换句话说,代理125由于所述DA是特殊组播地址或广播地址而将初始消息300转发到多个节点。由于作为组播消息或广播消息的初始消息300将必须以其它方式涌入含有服务器的本地网,因此使用代理125。代理的使用准许初始消息300的涌入被约束于本地网105且并不扩展到涌入本地网106,因此减小网络负载同时仍将服务提供到本地网105中的客户端。

图4是更详细地说明图2中的步骤230的流程图。在步骤410处,代理125接收初始消息300。在决策菱形420处,代理125确定来自SMAC字段320的SA是否为特殊值,例如均为0或均为1。如果不是,那么代理125前进到步骤460。如果是,那么代理125前进到步骤430。在步骤430处,代理125修正SMAC字段320以包括属于代理125的代理MAC地址。在步骤430之后,代理125基于设计选择确定前进到步骤440还是步骤450。替代地,代理125既不完成步骤440也不完成步骤450或完成步骤440和步骤450两者。虚线指示此设计选择。

在步骤440处,代理125在代理查找表中记录来自HID字段350的HID、指示代理125经由其接收初始消息300的端口的端口值和所述两者之间的HID-端口关联。在步骤450处,代理125修正或添加端口字段。最后,在步骤460处,代理125基于DMAC字段310中的DA传输修正后初始消息300'。具体地说,代理125由于所述DA是特殊组播地址而将修正后初始消息300'传输到多个节点,包含服务器135。如果代理125如图1中所示在本地网105中,那么其以单播方式将修正后初始消息300'传输到并不在本地网105中的一个或多个服务器。如果代理125呈连接本地网105与本地网106的节点,因此具有对两者的直接接入,那么其可使得DMAC作为特殊组播或广播地址且将修正后初始消息300'传输到本地网106。

可以看出,修正后初始消息300'与初始消息300相同,除了三个可能的差异之外。第一,SMAC字段320可包括代理MAC地址。第二,端口字段可包括端口值。第三,DMAC字段310可在针对于服务器135时改变为单播地址且可在针对于任何额外服务器时进一步改变。在端口字段中具有端口值允许代理125放弃存储端口值,因为代理125如下文中所描述在步骤250处同样可接收所述端口值。这使得代理125最小化存储器占用率或代理状态。存储端口值或随后接收端口值允许代理125缩少发送消息到的潜在客户端的数目。举例来说,如果两个客户端生成相同HID,但代理125使用客户端的不同端口,那么代理125仍可将所述两个客户端区分开。

返回到图2,在步骤240处,服务器135接收修正后初始消息300'且生成客户端110的客户端MAC地址。在步骤250处,服务器135生成响应消息且将所述响应消息传输到代理125。

图5是更详细地说明图2中的步骤240和250的流程图。在步骤510处,服务器135接收修正后初始消息300'。在步骤520处,服务器135从HID字段350提取HID。服务器135还可在其在修正后初始消息300'中可用的情况下提取额外客户端信息。

在决策菱形530处,服务器135扫描服务器查找表以确定HID是否已经分配有MAC地址。替代地,在决策菱形530处,服务器135扫描服务器查找表以确定HID是否已经分配有MAC地址。如果是,那么服务器135前进到步骤540。如果不是,那么服务器135前进到步骤550。

在步骤540处,服务器135从服务器查找表检索对应于HID的MAC地址。所述MAC地址是本地唯一的。在步骤550处,服务器135从服务器查找表选择未使用的MAC地址。所述MAC地址是本地唯一的。在步骤560处,服务器135在服务器查找表中记录HID、MAC地址、这两者之间的关联以及MAC地址的状态。MAC地址的状态是所述MAC地址暂时性地在使用中。服务器135基于用于续约的计时器等任何合适的触发器去除所述状态。

在步骤570处,服务器135生成响应消息。服务器135可在响应消息中包含层2MAC地址或层3IP地址,或服务器135可同时传输层2MAC地址或层3IP地址。最后,在步骤580处,服务器135基于DMAC字段310中的DA将响应消息传输到代理125。如果代理125相较于服务器135处于不同本地网中,如图1所示,那么DA是单播地址且响应消息是单播消息。如果代理125在交换机127中且可被视为与服务器125处于同一本地网106中,那么DA可以是组播地址且响应消息是组播消息。所公开的实施例试图使用比组播消息和广播消息更多的单播消息,因为组播消息和广播消息这两种类型的消息更像是对本地网105和106的负担。

响应消息可以是至少三种类型的响应消息中的一种。第一类型的响应消息指示服务器135并不具有可用MAC资源。在所述状况下,步骤530可直接继续进行到步骤570。第二类型的响应消息指示客户端110并不有资格具有MAC地址。在所述状况下,步骤520可直接继续进行到步骤570。第三类型的响应消息指示客户端MAC地址。第三类型的响应消息展示于图6中。

图6是图2中响应消息600的示意图。响应消息600是单播消息且包括DMAC字段610、SMAC字段620、EtherType字段630、S-LAAP类型字段640、HID字段650、任选的端口字段660和分配MAC字段670。响应消息600中的所述字段呈任何合适的顺序且包括任何合适数目个位。所述字段可符合DHCP等现有标准以便扩展此类标准。响应消息600也可包括额外字段。

DMAC字段610包括与修正后初始消息300'中SMAC字段320中的代理MAC地址相同的DA或组播DA。如果修正后初始消息300'中的SMAC字段320并不包括代理MAC地址,那么DA是两个值中的一个。对于第一值,DA是单播DA。代理125因而辨识DA,因为所述DA并非特殊组播地址。对于第二值,DA是特殊组播地址或广播地址。SMAC字段620包括SA,其是属于服务器135的服务器MAC地址。

EtherType字段630通常与初始消息300中的EtherType字段330相同。S-LAAP类型字段640包括指示S-LAAP消息的类型的值。在此状况下,所述值指示响应消息600为响应消息。HID字段650与初始消息300中的HID字段350相同。端口字段660若存在则与修正后初始消息300'中的端口字段360相同。分配MAC字段670包括图5中在步骤560处服务器135针对客户端110所生成的客户端MAC地址。

返回到图2,在步骤260处,代理125接收响应消息600且将响应消息600传输到客户端110。代理125可修正响应消息600。举例来说,如果代理125接收作为单播消息的响应消息600,那么代理125可修正响应消息600以产生修正后响应消息600'。修正后响应消息600'修正DMAC字段610以包括特殊组播地址或广播地址,因为客户端仍不知道其MAC地址;修正SMAC字段620以包括代理125转发响应消息600所经由的端口的MAC地址;且任选地去除端口字段660,因为客户端110无需知道其内容。图7是更详细地说明图2中的步骤260的流程图。在步骤710处,代理125接收响应消息600。在决策菱形720处,代理125确定来自DMAC字段610的DA是否是代理MAC地址。如果是,那么代理125前进到步骤730。如果不是,那么代理125前进到决策菱形750。

在步骤730处,代理125扫描代理查找表且检索对应于HID的端口值。替代地,代理125在端口字段660可用的情况下确定来自端口字段660的端口值,而非扫描代理查找表。端口值指示代理125接收初始消息300所经由的端口。在步骤740处,代理125经由所述端口将响应消息600传输到客户端110。

在决策菱形750处,代理125确定来自DMAC字段610的DA是否为单播地址。代理125通过分析DMAC字段610中的群播位来这么做。如果群播位为0,那么DA为单播的。如果群播位为1,那么DA为群播的。如果群播位为0,那么代理125前进到步骤760。如果不是,那么DA为特殊组播地址且代理125前进到步骤770。在步骤760处,代理125基于所述DA传输响应消息600。具体地说,如果DA为客户端MAC地址,那么代理125将响应消息600传输到客户端110。在步骤770处,代理125基于所述DA传输响应消息600作为组播消息。具体地说,代理125将响应消息600传输到客户端110并且也传输到其它可用节点。

返回到图2,在步骤270处,客户端110接收响应消息600、生成确认消息,且将确认消息传输到代理125。由于初始消息300为组播消息或广播消息,因此客户端110可从多个服务器接收多个响应消息600。客户端110因此选择响应消息600中的一个,且选择对应服务器将确认消息传输到所述对应服务器。客户端110基于任何合适的一个或多个标准选择响应消息600。举例来说,客户端110选择其接收的第一响应消息600或与先前提供最佳服务的服务器相关联的响应消息600。在此状况下,客户端110选择的服务器是服务器135。

确认消息是组播消息或广播消息,因此客户端110也将确认消息传输到其它可用节点。由于确认消息是组播消息或广播消息,因此包含服务器135的所有服务器将直接知道或经由代理知道属于在使用中的客户端110的客户端MAC地址。另外,除服务器135之外的所有服务器将知道客户端110拒绝其响应消息600。确认消息展示于图8中。

图8是图2中的确认消息800的示意图。确认消息800是组播消息或广播消息,且包括DMAC字段810、SMAC字段820、EtherType字段830、S-LAAP类型字段840和HID字段850。确认消息800中的所述字段呈任何合适的顺序且包括任何合适数目个位。所述字段可符合DHCP等现有标准以便扩展此类标准。响应消息800也可包括额外字段。

DMAC字段810通常与初始消息300中的DMAC字段310相同。SMAC字段820与响应消息600中的所分配MAC字段670相同。EtherType字段830通常与初始消息300中的EtherType字段330和响应消息600中的EtherType字段630相同。S-LAAP类型字段840包括指示S-LAAP消息的类型的值。在此状况下,所述值指示确认消息800为确认消息。HID字段850与初始消息300中的HID字段350和响应消息600中的HID字段650相同。替代地,确认消息800包括来自响应消息300的在本地网内大体上唯一的另一字段。

返回到图2,在步骤280处,代理125接收确认消息800、处理确认消息800,且将确认消息800传输到服务器135。图9是更详细地说明图2中的步骤280的流程图。在步骤910处,代理125接收确认消息800。在步骤920处,代理125在HID在代理查找表中仍可用的情况下从代理查找表去除所述HID。最后,在步骤930处,代理125基于来自DMAC字段810的DA转发确认消息800。具体地说,代理125可将确认消息800转发到多个节点,包含服务器135,因为所述DA是特殊组播地址或广播地址。

返回到图2,最后,在步骤290处,服务器135接收并处理确认消息800。图10是更详细地说明图2中的步骤290的流程图。在步骤1010处,服务器135接收确认消息800。在步骤1020处,服务器135从HID字段850提取HID。在步骤1030处,服务器135在服务器查找表中记录所述HID与客户端MAC地址之间的关联有效。服务器135基于用于续约的计时器等任何合适的触发器而去除所述有效状态。最后,在步骤1040处,服务器135开始对于所述关联的计时器。如果存在将MAC地址提供到客户端110的任何其它服务器,那么一接收到客户端110选择由服务器135提供的MAC地址的客户端110的确认,其它服务器就将服务器提供的MAC地址标记为可用。

图11是说明根据本发明的实施例的使用中间节点的地址分配协商的消息序列图1100。本地网106实施所述协商。具体地说,图1100展示在客户端110、中间节点130和服务器135之间的协商。当然,相同原理适用任何合适的组件之间。

图1100包含步骤1110到1190,其分别类似于图2中的步骤210到290,除了至少两个差异之外。第一,中间节点130替代代理125。第二,在步骤1150处,服务器135传输响应消息600作为组播消息。因此,DMAC字段610中的DA是特殊组播地址或广播地址。类似地,中间节点130传输响应消息600作为组播消息。两个响应消息600的DA可相同或不同。不同于如消息序列图200中所展示的使用代理的地址分配协商,中间节点并不修正消息,包含初始消息300、响应消息600和确认消息800。

图12是说明根据本发明的实施例的生成HID和传输初始消息的方法1200的流程图。客户端110、115、120中的一个可在任何合适的时间实施方法1200,例如在希望与客户端150等另一节点通信之后。如下文关于图13所描述的客户端110、115、120包括通过硬件、中间件、固件和软件的任何合适的组合所实施的处理器。

在步骤1210处,执行随机数生成。在步骤1220处,基于随机数生成而生成HID。步骤1210和1220可对应于图2中的步骤210。具体地说,在步骤210处,客户端110生成HID。客户端110使用随机数生成器这么做以生成合适大小的HID,例如48或64个位的HID。在“安全性的随机性要求(Randomness Requirements for Security)”中提供了用于生成此类随机数的一些方法。替代地,位数的选择保证在可接受概率内,即所述HID基于在本地网中可同时生成HID的节点的数目而在本地为唯一的。在所述状况下,HID大体上唯一。所述概率为任何合适的概率,例如在100年的使用中约98%或约99%。HID仅需要在例如一秒或若干秒的一部分的给定时间段内为唯一或大体上唯一,在此期间存在未解决的S-LAAP请求,对所述请求的响应待决。

在步骤1230处,使用HID生成请求本地地址的初始消息。最后,在步骤1240处,传输初始消息。步骤1230和1240可对应于图2中的步骤220。具体地说,在步骤220处,客户端110生成初始消息或包或帧,且将初始消息传输到代理125。初始消息是组播消息或广播消息,因此本地网也将初始消息递送到其它可用节点。在一个实施例中的初始消息展示于图3中。

图13是根据本发明的实施例的网络设备1300的示意图。设备1300适合于实施上文所描述的所公开实施例。设备1300包括用于接收数据的入端口1310和接收器单元(Rx)1320;用以处理数据的处理器、逻辑单元或中央处理单元(central processing unit,CPU)1330;用于传输数据的发射器单元(Tx)1340和出端口1350;以及用于存储数据的存储器1360。设备1300还可包括耦合到入端口1310的光电(optical-to-electrical,OE)组件和电光(electrical-to-optical,EO)组件、接收器单元1320、发射器单元1340,以及用于光学或电信号的出入的出端口1350。

处理器1330通过硬件、中间件、固件和软件的任何合适的组合实施。处理器1330可实施为一个或多个CPU芯片、核心(例如,作为多核处理器)、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application specific integratedcircuit,ASIC)和数字信号处理器(digital signal processor,DSP)。处理器1330与入端口1310、接收器单元1320、发射器单元1340、出端口1350和存储器1360通信。处理器1330包括S-LAAP组件1370。S-LAAP组件1370实施上文所描述的所公开实施例。举例来说,S-LAAP组件1370实施如上文所描述的客户端110、115、120;代理125;中间节点130;服务器135;以及消息序列图200、1100。包含S-LAAP组件1370因此提供对设备1300的功能性的实质性改进且实现设备1300到不同状态的变换。替代地,S-LAAP组件1370实施为存储于存储器1360中且由处理器1330执行的指令。

存储器1360包括一个或多个磁盘、磁带机和固态驱动器,且可被用作溢流数据存储设备,从而在选择程序以供执行时存储此类程序且存储在程序执行期间读取的指令和数据。存储器1360可以是易失性的和非易失性的,且可以是只读存储器(read-only memory,ROM)、随机存取存储器(random-access memory,RAM)、三态内容寻址存储器(ternarycontent-addressable memory,TCAM)以及静态随机存取存储器(static random-accessmemory,SRAM)。

除非另外陈述,否则术语“约”的使用意味着包括后续数的±10%的范围。尽管本发明中已提供多个实施例,但应当理解,所公开的系统和方法也可通过其它多种具体形式体现,而不会脱离本发明的精神或范围。本发明的实例应被视为说明性而非限制性的,且本发明并不限于本文本中所给出的细节。例如,各种元件或组件可以在另一系统中组合或整合,或者某些特征可以省略或不实施。

另外,在各个实施例中描述和说明为离散或单独的技术、系统、子系统和方法可与其它系统、组件、技术或方法组合或整合而不会脱离本发明的范围。展示或论述为彼此耦合或直接耦合或通信的其它项也可以采用电方式、机械方式或其它方式经由某一接口、设备或中间组件间接地耦合或通信。其它变更、取代和更替的实例对本领域技术人员来说是显而易见的,且均可在不脱离本文中所公开的精神和范围的情况下进行。

相关技术
  • 一种基于服务器的本地地址分配协议的方法和装置
  • 一种基于服务器的本地地址分配协议的方法和装置
技术分类

06120112195908