具有分布式S/PGW架构的通信网络中的分布式IP分配和解分配机制的制作方法

文档序号:12515501阅读:694来源:国知局
具有分布式S/PGW架构的通信网络中的分布式IP分配和解分配机制的制作方法与工艺

交叉引用与本申请同一日提交且共同拥有的题为“Routing in a Communications Network Having a Distributed S/PGW Architecture”(代理人案卷号4906P44030WO1)的共同未决申请。该交叉引用的申请通过引用并入本文。

技术领域

本公开涉及通信网络中的IP地址分配。更具体地,本公开涉及具有分布式S/PGW架构的通信网络中的分布式IP分配机制。



背景技术:

演进分组核心(EPC)是用于长期演进(LTE)无线通信标准的全IP移动核心网络。第三代合作伙伴项目(3GPP)已经从版本8开始对EPC进行标准化。大多数4G移动宽带(MBB)无线电接入网络(RAN)和一些3G RAN由EPC核心网络支持,以提供端到端MBB服务。

典型的EPC网络在几个集中定位的数据中心处部署分组数据网络网关(PDN-GW或PGW)。通常,运营商在运营商访问其因特网对等点的相同物理站点中、或者在具有可靠访问具有因特网对等点的站点的位置中部署PGW。该部署模型对于今天的网络流量非常有效,其中绝对大多数分组通过因特网访问,并且因此通过因特网对等点。关于EPC和PGW功能的更多细节,参见3GPP TS 23.401和23.402。

越来越多的网络流量的共享与企业和自动化工业部门相关。企业和工业部门的用户可能想要部署如下网络:其中数据被本地终止并且仅在本地(例如,在传感器和服务器之间)发送,而不访问因特网对等点。本地终止的数据可以提供更多的安全性并且增加延迟性能(即,减少延迟)。因此,特别是对于诸如实时游戏应用的延迟敏感应用,本地终止的数据还可以改善人到人的通信。构建服务网关(SGW)和PGW的分层的当前EPC网络架构可能不适合于有效地处理本地终止的数据。EPC网络架构中用于处理对本地终止的数据的日益增长的需求的转变可能需要改变传统上由SGW和/或PGW提供的特征,包括IP地址分配。



技术实现要素:

非暂态计算机可读介质具有存储在其中的指令,指令由通信网络中的分组处理单元(PPU)执行,以允许通信网络中的多个PPU从IP地址的共享池独立地分配IP地址。通信网络中的多个PPU共同维持分布式哈希表(DHT)。DHT存储分布式块分配表(DBAT)和多个分布式地址分配表(DAAT)。DBAT包括用于多个IP地址块中的每一个的条目,以指示多个块中的哪些块被分配给多个PPU中的哪些PPU。多个DAAT中的每一个对应于DBAT中的块之一,并且包括用于该块中的每个IP地址的条目,以指示该块中的哪些IP地址被分配给哪些用户实体(UE)。该执行使得PPU执行操作集合,操作包括:由PPU接收向UE分配IP地址的请求;从当前被分配给PPU的IP地址块中的一个或多个的集合中的一个IP地址块选择块中的、与该块对应的DAAT的本地高速缓存版本指示为可用的IP地址之一;使用DHT算法,查找多个PPU中的哪个PPU负责存储DHT中针对所选择的IP地址、的DAAT条目;使得负责存储DHT中针对所选择的IP地址的DAAT条目的PPU更新该DAAT条目,以指示所选择的IP地址被分配给UE;更新对应于该块的DAAT的本地高速缓存版本,以指示所选择的IP地址被分配给UE;以及将所选择的IP地址分配给UE。

由通信网络中的分组处理单元(PPU)执行的方法,用于允许通信网络中的多个PPU从IP地址的共享池独立地分配IP地址。通信网络中的多个PPU共同维持分布式哈希表(DHT)。DHT存储分布式块分配表(DBAT)和多个分布式地址分配表(DAAT)。DBAT包括用于多个IP地址块中的每一个的条目,以指示多个块中的哪些块被分配给多个PPU中的哪些PPU。多个DAAT中的每一个对应于DBAT中的块之一,并且包括用于该块中的每个IP地址的条目,以指示该块中的哪些IP地址被分配给哪些用户实体(UE)。该方法接收向UE分配IP地址的请求。该方法从当前分配给PPU的IP地址块中的一个或多个的集合中的一个IP地址块选择块中的、与该块对应的DAAT本地高速缓存版本指示为可用的IP地址之一。该方法使用DHT算法查找多个PPU中的哪个PPU负责存储DHT中针对所选择的IP地址的DAAT条目。该方法使得负责存储DHT中针对所选择的IP地址的DAAT条目的PPU更新该DAAT条目,以指示所选择的IP地址被分配给UE,更新对应于该块的DAAT的本地高速缓存版本,以指示所选择的IP地址被分配给UE,并且将所选择的IP地址分配给UE。

网络设备被配置为用作通信网络中的分组处理单元(PPU),以允许通信网络中的多个PPU从IP地址的共享池独立地分配IP地址。通信网络中的多个PPU共同维持分布式哈希表(DHT)。DHT存储分布式块分配表(DBAT)和多个分布式地址分配表(DAAT)。DBAT包括用于多个IP地址块中的每一个的条目,以指示多个块中的哪些块被分配给多个PPU中的哪些PPU。多个DAAT中的每一个对应于DBAT中的块之一,并且包括用于该块中的每个IP地址的条目,以指示该块中的哪些IP地址被分配给哪些用户实体(UE)。网络设备包括处理器和存储器。存储器包含由处理器可执行的指令,由此网络设备可操作以接收向UE分配IP地址的请求。存储器包含由处理器可执行的另外的指令,以从当前被分配给PPU的IP地址块中的一个或多个的集合中的一个IP地址块选择该块中的、与该块对应的DAAT的本地高速缓存版本指示为可用IP地址之一。存储器包含由处理器可执行的另外的指令,以使用DHT算法查找多个PPU中的哪个PPU负责存储DHT中针对所选择的IP地址的DAAT条目。存储器包含由处理器可执行以进行以下操作的另外的指令:使得负责存储DHT中针对所选择的IP地址的DAAT条目的PPU更新该DAAT条目,以指示所选择的IP地址被分配给UE;更新对应于该块的DAAT的本地高速缓存版本,以指示所选择的IP地址被分配给UE;以及将所选择的IP地址分配给UE。

附图说明

本公开的各方面通过示例的方式示出并且不受附图的限制。在附图中:

图1是具有分布式S/PGW架构的EPC网络的一个实施例的图;

图2是示出将IP地址空间划分为N个块的布局方案的一个实施例的图;

图3是将条目存储为密钥值对的示例性BAT;

图4是将条目存储为密钥值对的示例性AAT;

图5是用于向UE分配IP地址的过程的一个实施例的流程图;

图6是用于使得负责存储DHT中针对所选择的IP地址的DAAT条目的PPU更新该DAAT条目的过程的一个实施例的流程图;

图7是用于将IP地址解分配的过程的一个实施例的流程图;

图8是从分配块的PPU的角度来看,用于向PPU分配块的过程的一个实施例的流程图;

图9A是用于使得负责存储DHT中针对所选择的块的DBAT条目的PPU更新该DBAT条目的过程的一个实施例的流程图;

图9B是从负责存储DHT中针对正被分配的块的DBAT条目的PPU的角度来看,用于将块分配给PPU的过程的一个实施例的流程图;

图10是从负责存储DHT中针对正被解分配的块的DBAT条目的PPU的角度来看,用于解分配块的过程的一个实施例的流程图;

图11A-图11D示出了用于PPU的各种实现选项;

图12是可以实现IP地址分配和解分配过程以参与分布式IP地址分配和解分配机制的物理PPU的一个实施例的图;以及

图13是可以实现一个或多个虚拟PPU的网络设备的一个实施例的图,一个或多个虚拟PPU可以实现IP地址分配和解分配过程以参与分布式IP地址分配和解分配机制。

具体实施方式

以下描述描述了用于支持具有分布式服务和分组数据网络网关(S/PGW)架构的通信网络中的分布式IP分配和解分配机制的方法、系统和装置。虽然将在演进分组核心(EPC)网络的上下文中描述本发明,但是对于本领域普通技术人员显而易见的是,本发明可以部署在其他全IP移动核心通信网络中。在以下的描述中,阐述了很多具体细节(例如,逻辑实现、资源划分/共享/复制实现、系统部件的类型和相互关系、以及逻辑划分/集成选择),以提供对本发明的更透彻的理解。然而,本领域技术人员将理解,可以在没有这些具体细节的情况下实践本发明。在其他情况下,没有详细示出控制结构和完整软件指令序列,以免模糊本发明。利用所包括的描述,在无需过多的实验的情况下,本领域普通技术人员将能够实现适当的功能。

说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可以包括特定的特征、结构或特性,但是每个实施例可以不必包括特定的特征、结构或特性。此外,这样的短语不一定指代相同的实施例。此外,当结合实施例描述特定的特征、结构或特性时,无论是否明确描述,认为结合其他实施例影响这样的特征、结构或特性在本领域技术人员的知识范围内。

具有虚线边界(例如,大破折号、小破折号、点划线和点)的带括号的文本和框在本文中可以用于图示向本发明的实施例添加附加特征的可选操作。然而,这样的符号不应当被认为表示这些是唯一的选项或唯一的可选操作,和/或具有实线边界的框在本发明的某些实施例中不是可选的。

除非另有定义,否则本文中所使用的所有术语(包括技术术语和科学术语)具有与本公开所属领域的普通技术人员通常理解的相同的含义。另外应当理解,诸如在通常使用的字典中定义的那些术语应当被解释为具有与其在本说明书和相关技术的上下文中的含义一致的含义,并且不应当以本文中明确限定的理想化或过度正式意义来解释。

在下面的描述和权利要求中,可以使用术语“耦合”和“连接”以及它们的派生词。应当理解,这些术语不旨在作为彼此的同义词。“耦合”用于指示可以或可以不彼此直接物理或电接触的两个或多个元件彼此协作或交互。“连接”用于指示在彼此耦合的两个或多个元件之间的通信的建立。

如本文中所使用的,除非上下文另有明确说明,否则单数形式“一个(a)”、“一(an)”和“该/所述(the)”旨在也包括复数形式。术语“和/或”包括相关所列项目中的一个或多个中的任一个和所有组合。

如本文中所使用的,术语“包括(comprise、comprising、comprises)”、“包含(include、includes、including)”、“具有(have、has、having)”或其变体是开放式的,并且包括一个或多个所述特征、元件、步骤、部件或功能,但不排除一个或多个其他特征、元件、步骤、部件、功能或其组合的存在或添加。

在具有如图1所示的分布式S/PGW架构的示例EPC网络的上下文中公开了一些实施例。初始提供图1的EPC网络的概述,然后在图1的EPC网络的上下文中解释根据本文中所公开的实施例的操作的各种图。然而,应当理解,图的操作可以由本发明的、除参考图1讨论的那些实施例之外的实施例来执行,并且参考图1讨论的实施例可以执行与参考流程图讨论的那些操作不同的操作。

图1是具有分布式S/PGW架构的EPC网络的一个实施例的图。示例EPC网络100包括通过无线电接入通信与eNodeB(eNB)110A-E通信的用户实体(UE)105A-E的集合。UE 105可以是可以经由eNB连接到EPC网络的任何类型的固定或移动设备,包括蜂窝电话、平板计算机、膝上型计算机、台式计算机、控制台设备、传感器或类似的电子设备。为了清楚起见,示例网络示出了连接到eNB 110的单个UE 105。然而,在给定时间,多于一个UE 105可以连接到eNB 110。示例EPC网络100还包括形成分布式S/PGW 102的物理或虚拟分组处理单元(PPU)115A-E的集合。任何数目的PPU 115可以形成分布式S/PGW 102。分布式S/PGW 102可以执行传统上由服务网关(SGW)和/或分组数据网络网关(PGW)执行的分组路由、UE 105的移动性管理、IP地址分配和其他功能。分布式S/PGW的每个PPU 115可以与其他PPU 115通信,以通过控制平面140交换控制信息,并且通过数据平面130转发数据。eNB 110经由S1-U接口通信地耦合到一个或多个PPU 115,以向UE 105提供对分布式S/PGW 102的访问(参见3GPP TS 29.281)。UE 105当前正在使用以连接到EPC网络100的PPU 115在本文中将被称为用于UE 105的服务PPU。例如,在图1的EPC网络100中,PPU 115A当前是用于UE 105A的服务PPU,并且PPU 115B当前是用于UE 105B的服务PPU。诸如PPU 115D的一些PPU 115经由SGi接口连接到分组数据网络(PDN)125(例如,因特网)(参见3GPP TS 29.061)。PPU 115和eNB 110可以与移动性管理实体(MME)120通信。MME 120执行与订户和会话管理相关的控制功能。例如,MME 120可以管理网络资源的分配、UE 105到EPC网络100的附接、以及UE 105在PPU 115之间的切换。eNB 110构成网络的无线电接入网络(RAN)部分,而分布式S/PGW 102和MME 120构成网络的分组核心部分。

与包括单个服务网络或构建服务网关(SGW)和分组数据网络网关(PGW)(子网络的网络)的分层的传统EPC网络不同,分布式S/PGW架构实现平面拓扑,其中分布式S/PGW 102中的每个PPU 115连接到相同的IP网络,但是PPU中的每一个仍然用作独立的路由器。为了实现完全分布式的S/PGW架构,期望每个PPU 115能够用作其自身的IP地址分配服务器(例如,动态主机配置协议(DHCP)服务器)。然而,由于PPU 115都连接到同一IP网络,因此优选地,PPU 115可以从IP地址的共享池向UE 105分配IP地址。在一个实施例中,这可以通过实现基于块的共享IP地址分配表来实现,共享IP地址分配表允许每个PPU 115从来自被分配给其的IP地址的共享池的IP地址块(一个或多个)中的那些向连接的UE 105独立地分配IP地址。具体地,根据预定义的布局方案,将属于EPC网络100的整个IP地址空间(例如,A类IPv4地址)划分为N个块,并且PPU 115可以保留其可以独立于其他PPU 115直接分配给UE 105的IP地址块。这允许PPU 115直接向UE 105分配IP地址,而不是如在传统EPC网络中通常所做的那样依赖于PGW或集中式DHCP服务器来分配IP地址。这可能是有用的,例如用于向希望发送和/或接收不经过PGW的本地终止数据的UE 105分配IP地址。

在一个实施例中,关于块和IP地址的分配的信息可以存储在由分布式S/PGW 102的PPU 115共享的一个或多个表175中。在一个实施例中,块分配表(BAT)180标识哪些块被分配给哪些PPU 115。在一个实施例中,对应于每个块的地址分配表(AAT)190标识特定块内的哪些IP地址被分配给哪些UE 105。因此,分布式S/PGW 102的PPU 105可以维持BAT 180和AAT 190,以指示(到PPU 115的)块的当前分配和(到UE 105的)IP地址的当前分配。

在一个实施例中,BAT 180和AAT 190可以由分布式S/PGW 102的PPU 115使用分布式哈希表(DHT)来分布式存储和维持。如本领域普通技术人员所公知的,DHT提供了提供查找服务的分散/分布式系统。密钥值对存储在DHT中,并且参与DHT的任何节点可以有效地检索与给定密钥相应的值。虽然在一个实施例中,使用Chord DHT协议建立和维持DHT(参见Stoica,Ion等人的Chord:A Scalable Peer-to-Peer Lookup Service for Internet Applications,ACM SIGCOMM Computer Communication Review,Vol.31.No.4.ACM,2001),但是本发明的备选实施例可以使用其他合适的DHT协议,例如Pastry、Tapestry和Kademlia(参见Rowstron、Antony等人的Pastry:Scalable,Decentralized Object Location and Routing for Large-scale Peer-to-peer Systems,18th IFIP/ACM International Conference on Distributed Systems Platforms(Middleware 2001)Heidelberg,Germany,November 2001;参见Zhao,Ben Y.等人的Tapestry:A Resilient Global-Scale Overlay for Service Deployment,IEEE Journal on Selected Areas in Communication,Vol.22.No.1.January 2004;参见Maymounkov、Petar等人的Kademlia:A Peer-to-peer Information System Based on the XOR Metric,IPTPS 2001Revised Papers from the First International Workshop on Peer-to-peer Systems.2001)。

在一个实施例中,形成分布式S/PGW 102的每个PPU 115可以作为节点参与DHT。因此,分布式S/PGW 102的PPU 115共同维持DHT。在一个实施例中,BAT条目中的每一个是根据DHT协议在PPU 115之间分布式存储的密钥值对(例如,参见图3A)。使用DHT分布式存储的BAT 180在本文中将被称为分布式块分配表(DBAT)。如本文中所使用的,DBAT条目是指DBAT的密钥到相应值的映射。在一个实施例中,AAT的每个条目是根据DHT协议在PPU 115之间分布式存储的密钥值对(例如,参见图3B)。使用DHT分布式存储的AAT 190在本文中将被称为分布式地址分配表(DAAT)。如本文中所使用的,DAAT条目是指DAAT之一的密钥到相应值的映射。在一个实施例中,相同的DHT结构存储BAT 180和AAT 190。在其他实施例中,BAT 180存储在与AAT 190分离的DHT结构上。如果BAT 180和AAT 190存储在相同的DHT结构中,则可以通过向密钥添加前缀来区分这些表的条目。例如,字符串“BAT”可以被添加到DBAT密钥,字符串“AAT”可以被添加到DAAT密钥。将BAT 180和AAT 190存储在相同的DHT结构上避免了需要部署多个DHT结构,因此减少了PPU 115和EPC网络100的开销量。

概念上,DHT将BAT 180和AAT 190分段成片,使得作为节点参与DHT的PPU 115负责存储表的一部分。例如,在示例性EPC网络100中,PPU 115E已经被分配了DBAT条目155E和DAAT条目157E。以这种方式,每次DBAT条目和DAAT条目中的每一个通常仅存储在一个PPU中(除了如下文所讨论的DBAT条目和DAAT条目的备份副本)。尽管图1示出了PPU 115中的每一个负责存储等量的条目,但是可能(并且很可能地)的是,不是所有的PPU 115都被分配相同数目的条目。在一个实施例中,PPU 115可以使用数据结构来存储分配给自己的DBAT条目和DAAT条目,该数据结构允许基于如下所述的密钥来快速和有效地查找。在一个实施例中,DHT协议基于密钥的哈希值来确定哪个PPU 115负责存储特定的密钥值对。这可以通过使用一致的散列并且向每个PPU 115分配在哈希空间(与用于计算密钥的哈希值的哈希空间相同)中的ID来完成。然后,每个PPU 115负责存储与参与DHT的其他PPU 115相比,具有最接近PPU的ID的密钥的哈希值的密钥值对(例如,参见上述的Chord DHT协议)。在一个实施例中,DHT协议定义了提供哈希值(和节点ID)之间的距离的抽象概念的距离度量,并且该距离度量用作确定哪个PPU 115负责存储特定的密钥值对的一部分。

在一个实施例中,PPU 115可以通过为自身生成在哈希空间(与用于计算密钥的哈希值的哈希空间相同)中的ID来加入DHT。PPU 115可以联系DHT网络中的任何其他DHT节点(即,PPU),并且请求它们成为DHT的一部分。在Chord DHT中,这是通过请求任何现有DHT节点查找新节点本身的ID来完成的,以找出新节点应在环中的哪里被添加(即,找到环中的新节点ID的后继)。在稳定时段期间,PPU 115将根据DHT协议(例如,参见上述的Chord DHT协议)接管一些密钥值对的责任。应当注意,DHT中的PPU 115的最近邻不一定是地理上最近的PPU 115。相反,DHT中的最近邻可以基于DHT覆盖网络中的PPU 115的位置(例如,基于PPU ID)来确定。

在一个实施例中,存储在PPU 115处的DBAT条目和DAAT条目在PPU 115的最近邻(即,备份副本)处被复制(未示出),以提供更好的鲁棒性并且防止条目在PPU 115离开DHT时被丢失。如果PPU 115意外地离开DHT,则其职责将由DHT中的一些其他PPU 115自动接管。DHT的这种自组织和自修复方面使得其可以以即插即用的方式动态地向核心网络添加或去除PPU 115。在容量或覆盖必须快速增加的情况下(例如,参见上述Chord DHT协议),该特征可以是有用的。当DBAT条目或DAAT条目被改变(即,添加、删除或更新)时,重要的是,在单个操作中原子地改变条目的所有备份副本。否则,备份副本可能与原始条目不一致。在一个实施例中,可以使用两阶段提交协议来确保所有备份副本被原子地改变。

在一些实施例中,每个PPU 115维持整个DBAT 165的本地高速缓存版本。这使得PPU 115能够以有效的方式扫描DBAT中的可用块。在一个实施例中,DBAT 165的本地高速缓存版本被实现为比特向量(例如,000010101010100111111...),其中1指示可用块,0指示分配的块,并且比特向量中的索引表示块索引。由于很多中央处理单元(CPU)架构包括用于计数前导零的硬件指令,因此可以通过对比特向量中的前导0进行计数来有效地找到可用块。在另一实施例中,DBAT 165的本地高速缓存版本可以实现为链表或空闲列表。在这些实施例中,对空闲块的索引被存储为链表。可以通过去除链表中的最后一个元素并且使用该元素中指示的块索引来找到可用块。通过将包含该块的索引的元素添加到链表或空闲列表中,可以将块解分配(即,使得其可用)。

在一些实施例中,类似于DBAT 165的本地高速缓存版本,每个PPU 115维持针对当前分配给该PPU 115的每个块的、DAAT 170的本地高速缓存版本。这使得PPU 115能够以有效的方式在块内扫描可用的IP地址。AAT 190通常比BAT 180小得多,因此可以使用诸如列表或向量数据结构的相当简单的数据结构来存储DAAT 170的本地高速缓存版本。也可以使用诸如上面关于DBAT 165的本地高速缓存版本描述的比特向量的其他数据结构。虽然参考使用如图1所示的高速缓存的实施例来描述以下流程图,但是备选实施例不实现用于DBAT条目和/或DAAT条目的高速缓存。

图2是示出将IP地址空间划分为N个块的布局方案的一个实施例的图。如上所述,整个IP地址空间被划分为N个块。如上所述,BAT 180标识哪些块被分配给哪些PPU 115。在一个实施例中,BAT 180被表示为具有两列和N行的表,其中每行对应于一个块。第一列示出了块号,并且第二列示出了分配给该块号(或块ID)的PPU 115的ID。在一个实施例中,PPU ID是PPU 115的IP地址。本领域普通技术人员将理解,可以唯一地标识PPU 115的任何值可以用作BAT 180中的PPU ID。在一个实施例中,PPU ID列中的空值指示块可用(即,未分配)。本领域普通技术人员将理解,除了空值之外的其他值可以用于指示块可用。如上所述,与每个块对应的地址分配表(AAT)190A-C标识特定块内的哪些IP地址被分配给哪些UE 105。因此,在该特定实施例中,存在单个BAT 180和多个AAT 190,每个AAT 190对应于一个块。例如,AAT 190A对应于块1,AAT 190B对应于块4,AAT 190C对应于块6。在一个实施例中,AAT 190被表示为具有两列的表,其中第一列存储IP地址,并且第二列存储分配给该IP地址的UE 105的ID。本领域普通技术人员将理解,可以唯一地标识UE 105的任何值可以用作AAT 190中的UE ID。在一个实施例中,UE ID列中的空值指示IP地址可用(即,未分配)。本领域普通技术人员将理解,除了空值之外的其他值可以用于指示IP地址可用。

图3是将条目存储为密钥值对用于基于密钥快速和有效搜索的示例性BAT。示例性BAT 330中的每个条目将密钥302映射到对应的值304。BAT 330的第一列示出了密钥302,并且第二列示出了对应的值304(其可以是与图2的第二列180中所示的值相同的值)。在其中BAT 330和不同的AAT存储在同一DHT中的一个实施例中,每个密钥具有前缀,以指示条目属于BAT 330或AAT。例如,字符串“BAT”可以被添加到块标识符的前面(如图2所示,如果IP地址空间被划分为N个连续的IP地址块,则可以利用诸如块1、块2、块3、...、块N的块标识符来标识这些块)。例如,表示块1(306)的条目的密钥是BAT+块1,表示块2(308)的条目的密钥是BAT+块2,等。

图4是将条目存储为密钥值对用于基于密钥快速和有效搜索的示例性AAT。示例性AAT 430对应于块1。示例性AAT 430中的每个条目将密钥402映射到对应的值404。示例性ATT 430的第一列示出了密钥402,并且第二列示出了对应的值404(其可以是与如图2所示的第二列190A中所示的值相同的值)。在BAT 330和不同的AAT 430存储在相同的数据结构中的实施例中,“AAT”前缀和AAT标识符(例如,如图4所示,由该AAT表示的块的块ID是AAT ID)被包括在具有IP地址的密钥中。例如,表示块1(406)中的第一IP地址的条目的密钥是AAT+块1+IP地址1,表示块1(408)中的第二IP地址的条目的密钥是AAT+块1+IP地址2,等。

尽管图2、图3和图4将BAT和AAT示为具有两列的表,但是应当理解,在一些实施例中,PPU可以使用不同类型的数据结构来存储它们负责的条目(例如,阵列、优先级排序列表、密钥排序阵列、自平衡二叉搜索树、哈希表);因此,语言密钥值对和映射到值的密钥可以指代存储在任何这样的数据结构中的映射,包括使用密钥来索引数据结构中的条目(即,密钥可以被生成并且其值用于定位条目)并且不需要存储密钥本身的数据结构。

本文中参考计算机实现的方法、装置(系统和/或设备)和/或计算机程序产品的框图和/或流程图来描述示例实施例。应当注意,在一些备选实现中,在框中标注的功能/动作可以不按照流程图中指出的顺序发生。例如,取决于所涉及的功能/动作,连续示出的两个框实际上可以基本上同时执行,或者框有时可以以相反的顺序执行。此外,流程图和/或框图的给定框的功能可以被分成多个框和/或流程图,和/或框图和/或流程图的两个或多个框的功能可以至少部分地集成。最后,可以在所示的框之间添加/插入其他框。此外,虽然一些图包括在通信路径上的箭头以示出通信的主要方向,但是应当理解,通信可以在与所描绘的箭头相反的方向上发生。

图5是用于向UE分配IP地址的过程的一个实施例的流程图。该流程图和以下流程图中的操作可以由物理或虚拟PPU的各个部件执行。

在一个实施例中,当PPU 115接收到向UE 105分配IP地址的请求时启动该过程(框505)。通信网络(例如,EPC网络100)中的多个PPU 115共同维持存储分布式块分配表(DBAT)和多个分布式地址分配表(DAAT)的DHT。DBAT包括用于多个IP地址块中的每一个的条目,以指示多个块中的哪些块当前被分配给多个PPU 115中的哪些PPU。并且多个DAAT中的每一个对应于DBAT中的块之一,并且包括用于该块中的每个IP地址的条目,以指示该块中的哪些IP地址当前被分配给哪些UE 105。在一个实施例中,PPU 115接收请求作为UE附接过程的一部分(参见3GPP TS 29.274)。

PPU 115从当前被分配给PPU 115的IP地址块中的一个或多个的集合中的一个IP地址块选择块中的、与块对应的DAAT 170的本地高速缓存版本指示为可用的IP地址之一(框510)。在一个实施例中,PPU 115访问DAAT 170的本地高速缓存版本,以找到并且选择被指示为可用的IP地址。DAAT 170的本地高速缓存版本可以通过不同的实施例以不同的方式实现,并且其实现可以影响其如何被访问(例如,线性扫描/检查、条目的随机检查、关联数据结构查找、经由硬件的并行查找,等)。在一个实施例中,作为框510的一部分,在框515中使用从其选择IP地址的块的块ID。

PPU 115使用DHT算法来查找多个PPU 115中的哪个负责存储DHT中用于所选择的IP地址的DAAT条目(框515)。在一个实施例中,PPU 115通过首先生成密钥来查找多个PPU 115中的哪个负责存储DHT中用于所选择的IP地址的DAAT条目。例如,对于在图3B中所示的前述实施例中使用的密钥,PPU 115使用前缀(例如,已知为常数的“AAT”)、AAT ID(其是包含所选择的IP地址的、并且基于框510已知的块的块ID)、和所选择的IP地址(其是已知的,因为它在框510中被选择)来生成密钥。然后,如参考图1所描述的,PPU 115计算该DAAT条目的密钥的哈希值,并且具有最接近密钥的哈希值的ID的PPU 115负责存储该DAAT条目。负责存储DHT中的DAAT条目的PPU可以是远程PPU或PPU本身。

PPU 115然后使得负责存储DHT中用于所选择的IP地址的DAAT条目的PPU更新该DAAT条目,以指示所选择的IP地址被分配给UE 105(框520)。对应于块的DAAT 170的本地高速缓存版本仅指示该块中的哪些IP地址可能是可用的。如果用于选择IP地址的DAAT 170的本地高速缓存版本与实际的DAAT(存储在DHT中)不同步(缺少一致性),则所选择的IP地址可能是不可用的。因此,在一些实施例中,PPU 115执行检查以确定所选择的IP地址是否确实可用(判定框525)。如果所选择的IP地址不可用(即,当前被分配给UE 115),则该过程返回到框510,其中PPU 115选择DAAT 170的其本地高速缓存版本指示为可用的不同的IP地址。如果所选择的IP地址确实可用,则PPU 115可以继续进行,而不选择不同的IP地址。本文中下面参照图6更详细地描述用于使得负责存储DHT中针对所选择的IP地址的DAAT条目的PPU更新该DAAT条目的过程的实施例。

图6是用于使得负责存储DHT中用于所选择的IP地址的DAAT条目的PPU更新该DAAT条目的过程的一个实施例的流程图。应当注意,负责存储用于所选择的IP地址的DAAT条目的PPU可以是远程PPU或甚至是PPU本身。因此,PPU 115检查用于所选择的IP地址的DAAT条目是否被分配给自己(判定框605)。如果是,则PPU 115可以直接检查该DAAT条目,以确定所选择的IP地址是否可用(判定框610),而不必向远程PPU 115传输请求。如果所选择的IP地址可用,则PPU 115可以更新该DAAT条目,以指示所选择的IP地址现在被分配给UE 105(框615),并且该过程继续进行到框530,以重新开始IP地址分配过程。另一方面,如果DAAT条目指示所选择的IP地址不可用(即,当前被分配给UE 115),则过程返回到框510,其中PPU 115选择DAAT 170的其本地高速缓存版本指示为可用的不同的IP地址。返回到判定框605,如果用于所选择的IP地址的DAAT条目没有被分配给该PPU 115(即,分配给远程PPU),则PPU 115向负责存储DHT中的DAAT条目的PPU传输请求,以更新该DAAT条目来指示所选择的IP地址被分配给UE(框620)。在一个实施例中,PPU 115接收指示更新是否成功的应答(框625)。PPU 115检查该应答是否指示DAAT条目被成功更新(判定框935)。如果应答指示更新不成功,则过程返回到框510,其中PPU 115选择DAAT 170的其本地高速缓存版本指示为可用的不同的IP地址。如果应答指示更新成功,则过程继续进行到框530,以重新开始IP地址分配过程。

返回图5,PPU 115还更新对应于块的DAAT 170的本地高速缓存版本,以指示所选择的IP地址被分配给UE 105(框530)。然后,PPU 115将所选择的IP地址分配给UE 105(方框535)。在一个实施例中,使用DHCP的版本(例如,DHCPv4或DHCPv6)将所选择的IP地址分配给UE 105。在一个实施例中,当UE 105经历切换(即,UE 105移动到另一PPU 115)时,UE的DHCP租约被传送到新的PPU 115。在另一实施例中,甚至在切换之后,UE 105的DHCP客户端可以继续向旧的PPU 115(即,最初向UE 105分配IP地址的PPU 115)发送DHCP请求/更新。在另一实施例中,UE 105可以在切换到另一PPU 115时请求新的IP地址。在一个实施例中,如果UE 105在预定的时间段内未更新其DHCP租约,则UE的IP地址被解分配。在一个实施例中,使用参考图7中的流程图描述的操作或类似操作来将UE的IP地址解分配。不同的实施例可以以不同的方式分配IP地址,并且本发明不限于使用DHCP。作为上述示例性IP分配过程的结果,DAAT 170的本地高速缓存版本和DAAT均已经被更新,以指示所选择的IP地址被分配给UE 105。

图7是用于将IP地址解分配的过程的一个实施例的流程图。

在一个实施例中,当PPU 115接收到将IP地址中一个或多个的集合中当前被分配给由PPU 115服务的UE 105的一个IP地址解分配的请求时,启动该过程(框705)。在一个实施例中,PPU 115接收请求作为UE分离过程的一部分(参见3GPP TS 29.274)。

PPU 115使用DHT算法来查找多个PPU 115中的哪个负责存储DHT中用于待解分配的IP地址的DAAT条目(框710)。在一个实施例中,以与参考框515所描述的类似的方式执行框710,但是对于待解分配的IP地址进行框710,并且基于块布局方案的知识来确定块ID。负责存储DHT中的DAAT条目的PPU可以是远程PPU或PPU本身。

PPU 115然后使得负责存储DHT中用于IP地址的DAAT条目的PPU被解分配,以更新该DAAT条目来指示待解分配的IP地址可用(框715)。

如果UE 105因为首先被分配了其IP地址而已经被切换到另一PPU 115,则PPU 115(当前服务UE)需要通知包含IP地址的块的所有者,IP地址正在被解分配。这允许包含IP地址的块的所有者更新对应于该块的其本地高速缓存的DAAT 170。PPU 115可以查阅DBAT,以确定哪个PPU 115被分配包含IP地址的块。为此,PPU 115使用DHT算法来查找多个PPU 115中的哪个负责存储DHT中用于包含待解分配的IP地址的块的DBAT条目(框720)。在一个实施例中,PPU 115可以基于块布局方案的知识来查找哪个块包含待解分配的IP地址。在一个实施例中,PPU 115基于计算DBAT条目的密钥的哈希值来查找多个PPU 115中的哪个负责存储DHT中用于包含待解分配的IP地址的块的DBAT条目。负责存储DHT中的DBAT条目的PPU可以是远程PPU或PPU本身。

然后,PPU 115从负责存储DHT中包含待解分配的IP地址的块的DBAT条目的PPU访问当前分配该块的多个PPU 115中的一个(框725)。在一个实施例中,PPU 115向负责存储DHT中的DBAT条目的PPU发送获取当前被分配块的PPU 115的IP地址(或PPU ID)的请求。

然后,PPU 115向当前被分配包含待解分配的IP地址的块的PPU 115通知该IP地址将被解分配(框730)。接收到通知的PPU 115然后可以更新对应于该块的DAAT 170的其本地高速缓存版本,以指示IP地址现在可用。作为上述示例性IP地址解分配过程的结果,DAAT已经被更新,以指示待解分配的IP地址现在可用。此外,当前被分配包含待解分配的IP地址的块的PPU 115已经被通知待解分配的IP地址将要被解分配。

图8是从分配块的PPU的角度来看,用于向PPU分配块的过程的一个实施例的流程图。

在一个实施例中,当PPU 115确定需要将另一块分配给它时,启动该过程(框805)。在一个实施例中,如果在当前分配给PPU 115的块中没有剩余可用的IP地址,则PPU 115可以确定其需要分配给它的另一块。在另一实施例中,如果在当前分配给PPU 115的块中可用的IP地址的数目低于最小阈值,则PPU 115可以确定需要另一块。

PPU 115选择DBAT 165的本地高速缓存版本指示为可用的块之一(框810)。在一个实施例中,PPU 115访问DBAT 165的本地高速缓存版本,以找到并且选择被指示为可用的块。DBAT 165的本地高速缓存版本可以由不同实施例以不同方式实现,并且其实现可以影响其如何被访问(例如,线性扫描/检查、条目的随机检查、关联数据结构查找、经由硬件的并行查找,等)。在一个实施例中,PPU 115可以跳过其找到的随机数目的第一可用块,以减少挑选与其他PPU 115精确相同的块的机会。在一个实施例中,作为框810的一部分,在框815中使用IP地址来自于其的块的块ID。在不使用本地高速缓存的DBAT 165的实现中,PPU 115可以通过重复查询DHT来线性搜索空闲块,直到找到可用块为止。在另一实施例中,PPU 115可以随机地选择块并且查询DHT,以检查该块是否可用(并且重复直到找到可用块)。

PPU 115使用DHT算法来查找多个PPU 115中的哪个负责存储DHT中用于所选择的块的DBAT条目(框815)。在一个实施例中,PPU 115通过首先生成密钥来查找多个PPU 115中的哪个负责存储DHT中用于所选择的块的DBAT条目。例如,对于在图3A中所示的前述实施例中使用的密钥,PPU 115使用前缀(例如,已知为常数的“BAT”)和块ID(由于它在框810中被选择而是已知的)来生成密钥。然后,如参考图1所描述的,PPU 115计算该DBAT条目的密钥的哈希值,并且具有最接近该密钥的哈希值的ID的PPU 115负责存储该DBAT条目。负责存储DHT中的DBAT条目的PPU可以是远程PPU或PPU本身。

PPU 115然后使得负责存储DHT中用于所选择的块的DBAT条目的PPU更新该DBAT条目,以指示所选择的块被分配给PPU 115(框820)。DBAT 165的本地高速缓存版本仅指示哪些块可能是可用的。如果用于选择块的DBAT 165的本地高速缓存版本与实际DBAT(存储在DHT中)不同步(缺少一致性),则所选择的块可能不可用(即,当前被分配给PPU 115中与请求的一个PPU不同的一个PPU 115)。因此,在一些实施例中,PPU 115执行检查,以确定所选择的块是否确实可用(判定框825)。如果所选择的块不可用,则过程返回到块810,其中PPU 115选择DBAT 165的其本地高速缓存版本指示为可用的不同块。如果所选择的块确实可用,则PPU 115可以继续进行,而不选择不同的块。本文中下面参考图9A更详细地描述用于使得负责存储DHT中针对所选择的块的DBAT条目的PPU更新该DBAT条目的过程的实施例。

图9A是用于使得负责存储DHT中针对所选择的块的DBAT条目的PPU更新该DBAT条目的过程的一个实施例的流程图。应当注意,负责存储用于所选择的块的DBAT条目的PPU可以是远程PPU或甚至PPU本身。因此,PPU 115检查用于所选择的块的DBAT条目是否被分配给自己(判定框905)。如果是,则PPU 115可以直接检查该DBAT条目,以确定所选择的块是否可用(判定框910),而不必向远程PPU 115传输请求。如果所选择的块可用,则PPU 115可以更新该DBAT条目,以指示所选择的块现在被分配给PPU 115(框915)。PPU 115然后启动用于所选择的块的释放定时器(框920),并且过程继续进行到框830以重新开始块分配过程。用于块的释放定时器设置块被自动解分配的时间长度。释放定时器的操作将在下文中关于图10所示的块解分配过程的实施例更详细地讨论。另一方面,如果DBAT条目指示所选择的IP地址不可用(即,当前被分配给PPU 115中不同于所请求的PPU的一个PPU),则处理返回到框810,其中PPU 115选择DAAT 170的其本地高速缓存版本指示为可用的不同的块。返回到判定框905,如果用于所选择的块的DBAT条目没有被分配给该PPU 115(即,分配给远程PPU),则PPU 115向负责存储DHT中的DBAT条目的PPU发送更新该DBAT条目以指示所选择的块被分配给PPU 115的请求(框925)。在一个实施例中,PPU 115接收指示更新是否成功的应答(框930)。PPU检查该应答是否指示DBAT条目被成功更新(判定框935)。如果应答指示更新不成功(框935),则过程返回到框810,其中PPU 115选择DAAT 170的其本地高速缓存版本指示为可用的不同的块。如果应答指示更新成功(框935),则过程继续进行到框830,以重新开始块分配过程。

返回图8,PPU 115还更新DBAT的本地高速缓存版本,以指示所选择的块被分配给PPU 115(框830)。在一个实施例中,PPU 115还使得多个PPU 115中的其他PPU更新其相应的DBAT 165的本地高速缓存版本,以指示所选择的块被分配给PPU 115(框835)。在一个实施例中,PPU 115使用epidemic协议或gossip协议使得其他PPU 115更新其相应的DBAT 165的本地高速缓存版本(参见Demers等人的Epidemic Algorithms for Replicated Database Maintenance,In Proceedings of the 6th Annual ACM Symposium on Principles of Distributed Computing)。如果epidemic协议或gossip协议无法更新PPU的DBAT 165的本地高速缓存版本,则该PPU的高速缓存可能变得与实际的DBAT(存储在DHT中)不同步(失去一致性),并且因此需要参考框825(和910)描述的检查,其中PPU 115检查用于块的DBAT条目,以在分配该块之前查看该块是否可用。

PPU 115然后可以创建对应于所选择的块的DAAT 170的本地高速缓存版本(框840)。如前所述,DAAT 170的本地高速缓存版本允许PPU 115快速地扫描块中的可用IP地址,而不必在DHT中执行查找。如果先前拥有块的PPU 115在不将块解分配的情况下不幸地崩溃,则在块中仍然存在仍在使用的IP地址(即,分配给UE)—这是DAAT 170的本地高速缓存版本可能变得与实际DAAT(存储在DHT中)不同步(失去一致性)的一种方式,并且因此需要参考框525(和610)描述的检查,其中PPU 115检查用于块中的IP地址的DAAT条目,以在分配该IP地址之前查看该IP地址是否可用。在另一实施例中,当PPU 115首先向自己分配块时,PPU 115通过查询该块中的每个IP地址的DAAT条目来检查该块中的每个IP地址是否可用,并且然后基于查询的结果(指示该块中的哪些IP地址可用)来更新DAAT 170的其本地高速缓存版本(这使得本地高速缓存版本与实际的DAAT(存储在DHT中)一致,在这种情况下,不需要执行框525和框610)。

作为上述块分配过程的结果,DBAT 165的本地高速缓存版本和DBAT都已经被更新,以指示所选择的块被分配给PPU 115。例如,通过使用上文参考图5所描述的IP地址分配过程的实施例,PPU 115现在可以从所选择的块(现在被分配给PPU 115)分配IP地址。

图9B是从负责存储DHT中用于正被分配的块的DBAT条目的PPU的角度来看,用于将块分配给PPU的过程的一个实施例的流程图。

在一个实施例中,当PPU 115接收到请求(更新DHT中用于块中的特定块的DBAT条目,以指示特定块被分配给PPU 115中的请求的PPU 115)时,启动该过程,其中接收PPU 115负责存储该DBAT条目(框940)。PPU 115检查用于特定块的DBAT条目是否可用(判定框945)。如果特定块不可用(即,当前被分配给PPU 115中的与请求PPU不同的PPU 115),则PPU 115向请求PPU 115传输指示更新不成功的应答(框950)。如果特定块可用,则PPU 115更新DHT中用于特定块的DBAT条目,以指示该特定块被分配给请求PPU 115(框955)。PPU 115启动用于特定块的释放定时器(框960),并且向请求PPU 115传输指示DHT中用于特定块的DBAT条目的更新成功的应答(框965)。释放定时器设置块被自动解分配之后的时间长度。因此,在一个实施例中,如果请求PPU 115希望保持分配给自己的块,则它需要定期向负责存储该块的DBAT条目的PPU发送保持活跃消息,以重置释放定时器。在另一实施例中,PPU 115可以通过周期性地将块重新分配给自己来保持分配给自己的块。

图10是从负责存储DHT中用于正被解分配的块的DBAT条目的PPU的角度来看,用于将块解分配的过程的一个实施例的流程图。

在一个实施例中,负责存储用于块的DBAT条目的PPU响应于接收到用于该块的保持活跃消息(或重新分配请求)来重置释放定时器(框1005)。如果已经分配了块的PPU 115在释放定时器期满之前未能重新分配该块,则假定PPU 115已经崩溃并且该块被解分配。因此,释放定时器机制允许PPU 115从EPC网络100拔出,而不必正常地将所分配的块解分配。

PPU 115确定应当解分配的特定块(框1010)。在一个实施例中,该确定是基于来自PPU 115的显式请求或基于释放定时器的期满而作出的。PPU 115然后更新DHT中用于特定块的DBAT条目,以指示特定块可用(框1015)。在一个实施例中,PPU 115还更新DBAT 165的其本地高速缓存版本,以指示特定块现在可用(框1020)。在一个实施例中,PPU 115使得多个PPU 115中的其他PPU更新其相应的DBAT165的本地高速缓存版本,以指示所选择的块可用(框1025)。在一个实施例中,PPU 115使用如上所述的epidemic协议或gossip协议来使得其他PPU 115更新其相应的DBAT 165的本地高速缓存版本。

图11A-图11D示出了PPU的各种实现选项。在图11A中,物理PPU 115在eNB 110中实现为例如处理片。eNB 110和物理PPU 115经由内部S1接口连接。如图11B所示,物理PPU 115被实现为经由外部S1接口连接到eNB 110的独立设备/盒。在图11C中,虚拟PPU 115被实现为在管理程序(或作为软件容器)上运行的虚拟机,管理程序在eNB 110内的处理器和存储器上运行。eNB 110和虚拟PPU 115经由内部S1接口连接。在图11D中,虚拟PPU 115在通用数据中心硬件上或在云平台中实现(即,虚拟PPU 115在运行在管理程序(或作为软件容器)上的虚拟机上实现,管理程序运行在处理器和存储器上),云平台经由外部S1接口连接到eNB 110。

电子设备使用机器可读介质(也称为计算机可读介质)(内部地和/或利用网络上的其他电子设备)存储和传输代码(其由软件指令组成,并且有时被称为计算机程序代码或计算机程序)和/或数据,机器可读介质诸如机器可读存储介质(例如,磁盘、光盘、只读存储器(ROM)、闪存设备、相变存储器)和机器可读传输介质(也称为载体)(例如,电、光学、无线电、声学或其他形式的传播信号—例如载波、红外信号)。因此,电子设备(例如,计算机)通常包括硬件和软件,诸如耦合到一个或多个机器可读存储介质的一个或多个处理器的集合,以存储用于在该处理器集合上执行的代码和/或存储数据。例如,电子设备可以包括含有代码的非易失性存储器,因为即使当电子设备关闭时(当电力被去除时),非易失性存储器也可以持续代码/数据,并且当电子设备开启时,将由该电子设备的处理器(一个或多个)执行的代码的一部分通常从较慢的非易失性存储器复制到易失性存储器(例如,该电子设备的动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM))。典型的电子设备还包括一个或多个物理网络接口,以与其他电子设备建立网络连接(以使用传播信号传输和/或接收代码和/或数据)。本发明的实施例的一个或多个部分可以使用软件、固件和/或硬件的不同组合来实现。

网络设备(ND)是通信地互连网络上的其他电子设备(例如,其他网络设备、终端用户设备)的电子设备。一些网络设备是为多个联网功能(例如,路由、桥接、切换、2层聚合、会话边界控制、服务质量和/或用户管理)提供支持的和/或为多个应用服务(例如,数据、语音和视频)提供支持的“多服务网络设备”。

图12是可以实现IP地址分配/解分配和块分配/解分配过程的PPU或网络设备的一个实施例的图。

物理(即,硬件)PPU 115是可以执行上述一个或多个实施例的一些或全部操作和方法的网络设备。物理PPU 115可以包括一个或多个网络接口控制器(NIC;也称为网络接口卡)1215、一个或多个处理器(“处理器电路”)1210、存储器1205、DHT模块1220,IP地址分配模块1225和块分配模块1230。

一个或多个处理器1210可以包括一个或多个数据处理电路,诸如通用和/或专用处理器(例如,微处理器和/或数字信号处理器)。处理器(一个或多个)被配置为执行DHT模块1220、IP地址分配模块1225和块分配模块1230,以执行上面针对一个或多个实施例(例如,图5-图10的实施例)描述的操作和方法中的一些或全部。DHT模块1220在由处理器1210执行时可以在存储器中创建DHT表1235,以存储分配给PPU 1245的DBAT条目和分配给PPU 1250的DAAT条目。IP地址分配模块1225和块分配模块1230在由处理器1210执行时,可以在存储器1205中创建本地高速缓存1240,以针对分配给PPU 1260的块,存储DBAT条目1255的本地高速缓存版本和DAAT条目的本地高速缓存版本。虽然图12的各种模块被示出为被包括作为处理器1210的一部分,但是本领域普通技术人员将理解,各种模块可以与处理器分开存储,例如,存储在非暂时性计算机可读存储介质中。处理器可以执行存储在非暂时性计算机可读介质中的各种模块,以执行上述操作和方法中的一些或全部。因此,可以通过执行各种模块来配置处理器,以执行本文中公开的一些或全部功能。

图13是可以实现一个或多个虚拟PPU的网络设备的一个实施例的图,一个或多个虚拟PPU可以实现IP地址分配/解分配和块分配/解分配过程。

网络设备1300包括硬件1301,硬件1301包括一个或多个处理器1305(其通常是商业现货的COTS处理器)和一个或多个NIC 1310(其包括物理NI 1315)的集合、以及非暂时性机器可读存储介质1320,非暂态机器可读存储介质1320中存储有DHT模块1325、IP地址分配模块1330、块分配模块1335和操作系统(OS)软件1322。物理NI 1315是网络设备1300中的硬件,通过其实现网络连接(例如,无线地通过无线网络接口控制器(WNIC)或通过将电缆插入到连接到NIC 1310的物理端口)。在操作期间,处理器(一个或多个)1305可以执行软件,以实例化管理程序1370(有时被称为虚拟机监视器(VMM))和由管理程序1370运行的一个或多个虚拟机1340A-1340Z,它们共同被称为软件实例(一个或多个)1302。虚拟机1340是运行程序的物理机器的软件实现,就好像它们在物理的、非虚拟化的机器上执行;并且尽管一些系统提供了半虚拟化(其允许操作系统或应用出于优化目的而意识到虚拟化的存在),但是与在“裸机”主机电子设备上运行相反,应用通常不知道它们在虚拟机上运行。虚拟机1340A-1340Z中的每一个以及执行该虚拟机的硬件1301的该部分(专用于该虚拟机的硬件和/或由该虚拟机与其他一个或多个虚拟机时间共享的硬件时间片)可以形成单独的虚拟PPU。

每个这样的虚拟PPU可以包括DHT模块实例1325X、IP地址分配模块实例1330X和块分配模块实例1335X。DHT模块实例1325X在被执行时,可以在虚拟机1340A的存储器中创建DHT表1342,以存储分配给虚拟PPU 1350的DBAT条目和分配给虚拟PPU 1355的DAAT条目。IP地址分配模块实例1330X和块分配模块实例1335X在被执行时,可以在虚拟机1340A的存储器中创建本地高速缓存1345,以存储分配给虚拟PPU 1365的块的DBAT条目1360的本地高速缓存版本和DAAT条目的本地高速缓存版本。

虚拟PPU执行与图12所示的PPU 115类似的功能。例如,管理程序1370可以向虚拟机1340呈现看起来像网络硬件的虚拟操作平台,并且虚拟机1340可以用于实现DHT模块1325、IP地址分配模块1330和块分配的功能模块1335的功能(硬件的这种虚拟化有时被称为网络功能虚拟化(NFV))。因此,NFV可以用于将很多网络设备类型合并到可以位于数据中心、网络设备和用户预订设备(CPE)中的工业标准高容量服务器硬件、物理交换机和物理存储器上。虽然一个实施例使用管理程序1370和虚拟机1340A-1340Z实现虚拟化,但是备选实施例可以使用可以执行虚拟化PPU的其他技术(例如,使用其中代替管理程序和虚拟机的操作系统级虚拟化,操作系统的内核允许多个用户空间实例(通常称为软件容器、虚拟化引擎、虚拟专用服务器或监视器))。

由上文所描述的过程提供的优点在于,其允许分布式S/PGW的PPU能够从IP地址的共享池独立地分配IP地址,而不依赖于单个IP地址分配服务器或服务器集群。作为节点参与DHT的PPU可以独立于其他PPU来分配IP地址。此外,如果PPU失败或以其他方式变得不可用,则另一PPU可以自动接管失败的PPU的责任(即,维持DHT中的DBAT条目和DAAT条目)。该自修复和自配置方面允许PPU以即插即用方式加入和离开分布式S/PGW。

因此,已经描述了用于支持具有分布式S/PGW架构的通信网络中的分布式IP分配机制的方法、系统和装置。尽管已经根据若干实施例描述了本发明,但是本领域技术人员将认识到,本发明不限于所描述的实施例,本发明可以在所附权利要求的精神和范围内进行修改和变化。因此,该描述被认为是示例性的而不是限制性的。在不实质上背离本发明的原理的情况下,可以对实施例进行很多变化和修改。所有这些变化和修改旨在被包括在本发明的范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1