[go: up one dir, main page]

HK40048959B - Implementation of core cellular networking stack on cloud infrastructure - Google Patents

Implementation of core cellular networking stack on cloud infrastructure

Info

Publication number
HK40048959B
HK40048959B HK62021038222.7A HK62021038222A HK40048959B HK 40048959 B HK40048959 B HK 40048959B HK 62021038222 A HK62021038222 A HK 62021038222A HK 40048959 B HK40048959 B HK 40048959B
Authority
HK
Hong Kong
Prior art keywords
bearer
data plane
plane network
network
local cache
Prior art date
Application number
HK62021038222.7A
Other languages
Chinese (zh)
Other versions
HK40048959A (en
Inventor
N·A·拜恩布雷格
M·J·巴尔克威尔
B·拉杜诺维克
Original Assignee
微软技术许可有限责任公司
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by 微软技术许可有限责任公司 filed Critical 微软技术许可有限责任公司
Publication of HK40048959A publication Critical patent/HK40048959A/en
Publication of HK40048959B publication Critical patent/HK40048959B/en

Links

Description

核心蜂窝网络堆栈在云基础设施上的实现Implementation of the core cellular network stack on cloud infrastructure

背景技术Background Technology

蜂窝网络传统上已经通过电信供应商使用定制的硬件和软件解决方案来操作。虽然可以在云基础设施内(例如,使用公共云供应商)操作蜂窝网络的某些组件,但是某些组件和技术不能直接或有效地转换为云。例如,在LTE蜂窝网络中,控制平面网络和用户平面网络被认为是分开的网络。控制平面负责在用户平面中建立、配置和拆除连接。用户平面直接携带用户数据(来自用户设备的网络分组(network packet))。服务网关/分组网关(serving gateway/packet gatewany,缩写SPGW)是用户分组所流经的组件。为了处理大量流量,可能需要许多SPGW实例。在云实现方案中,每个SPGW实例可以在其自己的虚拟机上运行。这些SPGW实例需要接收控制平面消息,从而SPGW实例可以正确处理用户平面分组。Cellular networks have traditionally operated using custom hardware and software solutions by telecom providers. While some components of cellular networks can operate within cloud infrastructure (e.g., using public cloud providers), certain components and technologies cannot be directly or effectively transferred to the cloud. For example, in LTE cellular networks, the control plane network and the user plane network are considered separate networks. The control plane is responsible for establishing, configuring, and tearing down connections in the user plane. The user plane directly carries user data (network packets from user equipment). The Serving Gateway/Packet Gateway (SPGW) is the component through which user packets flow. To handle large volumes of traffic, many SPGW instances may be required. In cloud implementations, each SPGW instance can run on its own virtual machine. These SPGW instances need to receive control plane messages so that they can correctly process user plane packets.

云环境内的负载均衡器被设计为跨(例如,平均地跨)多个虚拟机分布分组。通常,除了尝试将具有相同源地址和目标地址的分组引导到同一虚拟机之外,负载均衡器几乎无法控制哪些分组到达哪个虚拟机。由于在云环境中在负载均衡器后面运行SPGW实例,因此可以将给定用户的控制平面和用户平面数据发送到不同的SPGW实例。在这种情况下,可能很难或不可能将控制平面信息发送到需要它的SPGW实例或由需要它的SPGW实例读取。Load balancers in cloud environments are designed to distribute packets across (e.g., evenly across) multiple virtual machines. Typically, a load balancer has little control over which packets reach which virtual machine, except for attempting to route packets with the same source and destination addresses to the same virtual machine. Because SPGW instances run behind the load balancer in a cloud environment, control plane and user plane data for a given user can be sent to different SPGW instances. In this scenario, it can be difficult or impossible to send control plane information to or have it read by the SPGW instance that needs it.

因此,存在大量的机会来改进与在云环境内实施蜂窝网络组件有关的技术。Therefore, there are numerous opportunities to improve technologies related to implementing cellular network components within cloud environments.

发明内容Summary of the Invention

提供本发明内容以简化形式介绍一些概念,这些概念将在下面的详细描述中进一步描述。本发明内容既不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。This summary provides a simplified overview of some concepts that will be further described in the detailed description below. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter.

描述了用于在云计算环境(例如,公共云基础设施)上操作核心蜂窝网络堆栈的技术。例如,虚拟化分组网关可以在云计算环境的虚拟机上运行,并且标准负载均衡器可以在虚拟化分组网关之间分配蜂窝网络的网络业务。虚拟化分组网关的数量可以按比例扩展(添加新的虚拟化分组网关)或按比例缩减(删除虚拟化分组网关),并且负载均衡器相应地分配网络业务。可以使用包含蜂窝网络的承载(bearer)的外部键值存储(key-valuestore,缩写KVS)的本地高速缓存来设置虚拟化的分组网关,并使用本地高速缓存来处理接收到的数据平面网络分组。可以使用外部键值存储在蜂窝网络内更新承载,并且虚拟化分组网关可以获取和使用更新的承载详细信息。This describes techniques for operating the core cellular network stack on cloud computing environments (e.g., public cloud infrastructure). For example, virtualized packet gateways can run on virtual machines in the cloud computing environment, and standard load balancers can distribute cellular network traffic among the virtualized packet gateways. The number of virtualized packet gateways can be scaled up (adding new virtualized packet gateways) or scaled down (removing virtualized packet gateways), and the load balancer distributes network traffic accordingly. Virtualized packet gateways can be set up using a local cache of an external key-value store (KVS) containing the cellular network's bearers, and the local cache can be used to process received data plane network packets. Bearers can be updated within the cellular network using the external key-value store, and virtualized packet gateways can retrieve and use updated bearer details.

例如,云计算环境内的虚拟化分组网关可以执行操作以处理用于蜂窝网络的数据平面网络分组。虚拟化分组网关可以接收外部键值存储的完整副本,其中外部键值存储包括蜂窝网络的所有当前承载的承载详细信息,其中承载详细信息使用蜂窝网络限定与用户设备相关联的网络流。虚拟化分组网关可以将外部键值存储的完整副本保存在本地高速缓存中。虚拟化分组网关可以从负载均衡器接收数据平面网络分组。虚拟化分组网关可以处理数据平面网络分组,其中所述处理包括识别与本地高速缓存中的数据平面网络分组相关联的承载。For example, a virtualized packet gateway within a cloud computing environment can perform operations to process data plane network packets for cellular networks. The virtualized packet gateway can receive a complete copy of an external key-value store, which includes bearer details for all current bearers of the cellular network, where the bearer details define the network flow associated with the user equipment using the cellular network. The virtualized packet gateway can maintain a complete copy of the external key-value store in a local cache. The virtualized packet gateway can receive data plane network packets from a load balancer. The virtualized packet gateway can process data plane network packets, wherein the processing includes identifying the bearers associated with the data plane network packets in the local cache.

作为另一示例,在云计算环境内操作的虚拟化分组网关可以接收与第一承载相关联的第一数据平面网络分组。在确定第一承载不在本地高速缓存中时,虚拟化分组网关可以从外部键值存储中取回针对第一承载的承载详细信息,并将针对第一承载的所取回的承载详细信息存储在本地高速缓存中。虚拟化分组网关可以至少部分地基于本地高速缓存中存储的针对第一承载的承载详细信息来处理第一数据平面网络分组。虚拟化分组网关可以接收指示第一承载已经被更新的网络通信。响应于接收网络通信,虚拟化分组网关可以从外部键值存储中取回第一承载的更新的承载详细信息,并将所取回的更新的承载详细信息存储在本地高速缓存中。虚拟化分组网关可以接收与第一承载相关联的第二数据平面网络分组,并且至少部分地基于存储在本地高速缓存中的第一承载的更新的承载详细信息来处理第二数据平面网络分组。As another example, a virtualized packet gateway operating within a cloud computing environment can receive a first data plane network packet associated with a first bearer. Upon determining that the first bearer is not in its local cache, the virtualized packet gateway can retrieve bearer details for the first bearer from an external key-value store and store the retrieved bearer details for the first bearer in its local cache. The virtualized packet gateway can process the first data plane network packet based at least in part on the bearer details for the first bearer stored in its local cache. The virtualized packet gateway can receive network communication indicating that the first bearer has been updated. In response to receiving network communication, the virtualized packet gateway can retrieve updated bearer details for the first bearer from an external key-value store and store the retrieved updated bearer details in its local cache. The virtualized packet gateway can receive a second data plane network packet associated with the first bearer and process the second data plane network packet based at least in part on the updated bearer details for the first bearer stored in its local cache.

如本文中所述的,可以根据需要将多种其他特征和优点并入技术中。As described in this article, a variety of other features and advantages can be incorporated into the technology as needed.

附图说明Attached Figure Description

图1是描绘示例云计算环境的图,其中在所述示例云计算环境内,实施蜂窝网络的包括虚拟化分组网关的组件。Figure 1 is a diagram depicting an example cloud computing environment in which a cellular network is implemented, including components such as a virtualized packet gateway.

图2是描绘示例云计算环境的图,其中在所述示例云计算环境内,实施蜂窝网络的包括SPGW-U的组件。Figure 2 is a diagram depicting an example cloud computing environment in which a cellular network including SPGW-U components is implemented.

图3是说明数据平面网络分组流和承载状态的示例状态机。Figure 3 is an example state machine illustrating the packet flow and bearer state of a data plane network.

图4是用于在云计算环境中操作虚拟化分组网关以处理用于蜂窝网络的数据平面网络分组的示例方法的流程图。Figure 4 is a flowchart of an example method for operating a virtualized packet gateway in a cloud computing environment to process data plane network packets for cellular networks.

图5是用于在云计算环境中操作虚拟化分组网关以处理用于蜂窝网络的数据平面网络分组的示例方法的流程图。Figure 5 is a flowchart of an example method for operating a virtualized packet gateway in a cloud computing environment to process data plane network packets for cellular networks.

图6是其中可以实施一些所描述的实施例的示例计算系统的图。Figure 6 is a diagram of an example computing system in which some of the described embodiments can be implemented.

图7是可以与本文中描述的技术结合使用的示例移动装置。Figure 7 shows an example mobile device that can be used in conjunction with the techniques described herein.

图8是可以与本文中描述的技术结合使用的示例云支持环境。Figure 8 shows an example cloud support environment that can be used in conjunction with the technologies described in this article.

具体实施方式Detailed Implementation

概述Overview

如本文中所述,可以将各种技术和解决方案应用于在云计算环境(例如,公共云基础设施)内操作核心蜂窝网络堆栈。例如,虚拟化分组网关可以在云计算环境的虚拟机上运行,并且标准负载均衡器可以在虚拟化分组网关之间分配蜂窝网络的网络业务。虚拟化分组网关的数量可以按比例扩展(添加新的虚拟化分组网关)或按比例缩减(删除虚拟化分组网关),并且负载均衡器相应地分配网络业务。As described in this article, various technologies and solutions can be applied to operate the core cellular network stack within a cloud computing environment (e.g., public cloud infrastructure). For example, virtualized packet gateways can run on virtual machines in a cloud computing environment, and standard load balancers can distribute cellular network traffic among virtualized packet gateways. The number of virtualized packet gateways can be scaled up (adding new virtualized packet gateways) or scaled down (removing virtualized packet gateways), and the load balancer distributes network traffic accordingly.

为了在云计算环境内提供蜂窝网络服务,对键值存储(例如,数据库、平面文件或另一类型的数据存储)进行维护。键值存储存储了蜂窝网络的当前承载的承载详细信息。承载详细信息限定与使用蜂窝网络的用户设备(例如,具有蜂窝网络连接性的移动电话或其他计算设备)相关联的网络流。键值存储是与蜂窝网络的诸如虚拟化分组网关的其他组件分离的数据存储。换句话说,键值存储在虚拟化分组网关的外部(也称为外部键值存储)。在一些实现方案中,键值存储保持蜂窝网络的所有当前承载的承载详细信息(例如,表示在云计算环境内运行的蜂窝网络内活动的所有当前网络流)。To provide cellular network services within a cloud computing environment, a key-value store (e.g., a database, flat file, or another type of data storage) is maintained. The key-value store stores bearer details for the current bearers of the cellular network. These bearer details define the network flows associated with user devices using the cellular network (e.g., mobile phones or other computing devices with cellular connectivity). The key-value store is a data storage separate from other components of the cellular network, such as virtualized packet gateways. In other words, the key-value store is external to the virtualized packet gateway (also known as an external key-value store). In some implementations, the key-value store maintains bearer details for all current bearers of the cellular network (e.g., representing all current network flows active within the cellular network operating within a cloud computing environment).

在本文中描述的技术中,数据平面网络分组通过虚拟化分组网关处理。例如,多个虚拟化分组网关可以在云计算环境的虚拟机上被实例化并且运行,以处理与用户设备通信和从用户设备通信的数据平面网络分组。在一些实现方案(例如,操作LTE蜂窝网络的实现方案)中,虚拟化分组网关是服务网关(SGW)、分组网关(PGW)或服务网关/分组网关(SPGW)。处理数据平面(也称为用户平面)网络分组的服务网关/分组网关也称为SPGW-U。处理控制平面网络分组的服务网关/分组网关也称为SPGW-C。In the techniques described herein, data plane network packets are processed by virtualized packet gateways. For example, multiple virtualized packet gateways can be instantiated and run on virtual machines in a cloud computing environment to process data plane network packets communicating with and from user equipment. In some implementations (e.g., implementations operating LTE cellular networks), the virtualized packet gateway is a Serving Gateway (SGW), a Packet Gateway (PGW), or a Serving Gateway/Packet Gateway (SPGW). A Serving Gateway/Packet Gateway that processes data plane (also known as user plane) network packets is also referred to as SPGW-U. A Serving Gateway/Packet Gateway that processes control plane network packets is also referred to as SPGW-C.

在传统的蜂窝网络中,电信供应商操作系统的组件。这些组件可以包括以下内容。In traditional cellular networks, components of the telecommunications provider's operating system can include the following.

-用户设备(UE)。连接到蜂窝网络的装置。例如,用户设备可以包括具有蜂窝通信能力的移动电话或其他计算设备。- User equipment (UE). A device connected to a cellular network. For example, a user equipment may include a mobile phone or other computing device with cellular communication capabilities.

-演进节点B(eNodeB——该组件是指用户设备经由无线通信连接(例如,蜂窝无线电)连接到的蜂窝网络基站。- Evolved Node B (eNodeB) - This component refers to a cellular network base station to which a user equipment connects via a wireless communication connection (e.g., cellular radio).

-移动管理实体(MME)。该组件控制用户设备对蜂窝网络的访问。-服务网关/分组网关(SPGW)。往返于用户设备的网络分组流经SPGW。SPGW提供单个锚定点,无论用户设备移动到何处(例如,当用户设备从小区塔移动到小区塔时),单一锚点都可以用于将分组中继到用户设备。- Mobility Management Entity (MME). This component controls user equipment's access to the cellular network. - Serving Gateway/Packet Gateway (SPGW). Network packets to and from user equipment flow through the SPGW. The SPGW provides a single anchor point that can be used to relay packets to user equipment regardless of where it moves (e.g., when user equipment moves from one cell tower to another).

在LTE蜂窝网络环境的范畴中,控制平面和数据平面(用户平面)被分离处理。控制平面负责在数据平面中建立、配置和拆除连接。数据平面携带去往/来自用户设备的网络分组。In an LTE cellular network environment, the control plane and data plane (user plane) are handled separately. The control plane is responsible for establishing, configuring, and tearing down connections in the data plane. The data plane carries network packets to/from user equipment.

在云计算环境实现方案中,可能需要许多SPGW实例来处理网络业务,并且每个SPGW实例在其自己的虚拟机(VM)中运行。这些虚拟机实例需要来自控制平面的信息,使得它们可以正确处理数据平面网络分组。In a cloud computing environment, many SPGW instances may be needed to handle network traffic, and each SPGW instance runs in its own virtual machine (VM). These VM instances require information from the control plane so that they can correctly process data plane network packets.

云计算环境中的负载均衡器被设计为在SPGW实例之间分配网络分组。典型的负载均衡器将基于分组报头信息(例如,来自IP报头的源IP地址和目标IP地址、来自用户数据报协议(UDP)或传输控制协议(TCP)报头信息、和/或来自其他分组报头信息)。然而,使用传统技术在云计算环境内运行SPGW实例存在问题。具体而言,当SPGW实例在负载均衡器后面运行时,给定用户的控制平面和数据平面通常将引导到不同的SPGW实例。在这种情况下,可能无法将控制平面信息发送到需要它的SPGW实例或由需要它的SPGW实例读取。一种可能的解决方案是使MME(例如,控制平面信息的源)将其控制数据广播到所有SPGW实例。然而,这种可能的解决方案效率低下(例如,需要大量的网络业务),并且可能无法扩展到小数量的SPGW。Load balancers in cloud computing environments are designed to distribute network packets among SPGW instances. A typical load balancer will base its operation on packet header information (e.g., source and destination IP addresses from IP headers, User Datagram Protocol (UDP) or Transmission Control Protocol (TCP) header information, and/or other packet header information). However, there are problems with running SPGW instances in cloud computing environments using traditional techniques. Specifically, when SPGW instances are running behind a load balancer, the control plane and data plane for a given user will often be routed to different SPGW instances. In this scenario, control plane information may not be able to be sent to or read by the SPGW instances that need it. One possible solution is to have the MME (e.g., the source of the control plane information) broadcast its control data to all SPGW instances. However, this possible solution is inefficient (e.g., requires a large amount of network traffic) and may not scale to a small number of SPGWs.

使用本文中描述的技术,可以更有效和可靠地操作云计算环境内的蜂窝网络。例如,可以通过将键值存储的内容(例如,键值存储的全部内容)预加载到新实例化的虚拟化分组网关上来执行向外扩展。然后,可以准备虚拟化分组网关,以处理在扩展事件期间负载均衡器引导到虚拟化分组网关的任何数据平面网络分组。作为另一示例,可以在虚拟化分组网关之间移动承载。例如,可以(例如,在键值存储中)存储所有权信息,所有权信息指示哪个虚拟化分组网关当前正在处理给定承载的数据平面网络分组。如果数据平面网络分组被引导到其他虚拟化分组网关(与当前所有者不同的虚拟化分组网关),则其他虚拟化分组网关可以取得所有权(例如,将其自身注册在键值存储中,以替换先前的所有者)。这样,承载的网络流可以在虚拟化分组网关之间移动(例如,由于缩减事件或由于诸如网络拥塞或故障的某些其他原因),而不必关闭连接并开始新的网络流。作为另一示例,可以更新承载(例如,当它们处于活动状态并且不必关闭承载并设置新的承载时)。例如,控制平面管理组件(例如,处理控制平面流量的MME和/或网关)可以更新键值存储中的承载详细信息。控制平面管理组件可以向拥有更新的承载的虚拟化分组网关发信号,并且虚拟化分组网关可以获得更新的承载详细信息,并在处理针对承载的数据平面网络分组期间使用更新的承载详细信息。Using the techniques described herein, cellular networks within a cloud computing environment can be operated more efficiently and reliably. For example, scaling out can be performed by preloading the contents of a key-value store (e.g., the entire contents of the key-value store) onto a newly instantiated virtualized packet gateway. The virtualized packet gateway can then be prepared to handle any data plane network packets that a load balancer routes to the virtualized packet gateway during a scaling event. As another example, bearers can be moved between virtualized packet gateways. For example, ownership information can be stored (e.g., in the key-value store) indicating which virtualized packet gateway is currently handling data plane network packets for a given bearer. If data plane network packets are routed to another virtualized packet gateway (with a different owner than the current one), the other virtualized packet gateway can acquire ownership (e.g., register itself in the key-value store to replace the previous owner). In this way, network traffic to bearers can move between virtualized packet gateways (e.g., due to a scaling-out event or some other reason such as network congestion or failure) without having to close the connection and start a new network traffic. As another example, bearers can be updated (e.g., when they are active and there is no need to close the bearers and set up new ones). For example, a control plane management component (e.g., an MME and/or gateway that processes control plane traffic) can update bearer details in a key-value store. The control plane management component can signal to a virtualized packet gateway that has the updated bearer, and the virtualized packet gateway can obtain the updated bearer details and use the updated bearer details during the processing of data plane network packets for the bearer.

在云计算环境中操作蜂窝网络Operating cellular networks in a cloud computing environment

在本文中描述的技术中,蜂窝网络的组件可以在云计算环境(例如,公共云环境和/或私有云环境)内实施。例如,可以使用云环境的标准负载均衡器来在虚拟化分组网关(例如,SPGW-U)的集合(例如,集群)之间分配蜂窝网络业务(例如,数据平面网络分组)。外部键值存储可以存储蜂窝网络内的当前网络流的承载详细信息。可以通过将外部键值存储的全部内容复制到新的虚拟化分组网关的本地高速缓存中来执行虚拟化分组网关的扩展,使得新的虚拟化分组网关可以准备好以处理由负载均衡器发送给它的任何网络流。该技术还使承载能够被更新(例如,用于虚拟化分组网关接收并应用更新的承载详细信息)和移动(例如,用于在虚拟化分组网关之间移动承载)。在承载保持活动状态且无需关闭承载和设置新的承载的情况下,可以移动和/或更新承载。In the techniques described herein, components of the cellular network can be implemented within a cloud computing environment (e.g., a public cloud environment and/or a private cloud environment). For example, a standard load balancer in a cloud environment can be used to distribute cellular network traffic (e.g., data plane network packets) across a collection (e.g., a cluster) of virtualized packet gateways (e.g., SPGW-U). An external key-value store can store bearer details of current network flows within the cellular network. Virtualized packet gateways can be extended by copying the entire contents of the external key-value store into a local cache of a new virtualized packet gateway, making the new virtualized packet gateway ready to handle any network flows sent to it by the load balancer. This technique also enables bearers to be updated (e.g., for the virtualized packet gateway to receive and apply updated bearer details) and moved (e.g., for moving bearers between virtualized packet gateways). Bearers can be moved and/or updated while remaining active without needing to shut down the bearer and set up a new bearer.

图1是描绘示例云计算环境110的图,在示例云计算环境110内实施蜂窝网络(例如,虚拟蜂窝网络)的组件。例如,云计算环境110可以是公共云环境或私有云环境。云计算环境110提供蜂窝网络的组件在其上运行的计算资源(例如,服务器、虚拟机、存储资源、网络服务等)。Figure 1 is a diagram depicting an example cloud computing environment 110, within which components of a cellular network (e.g., a virtual cellular network) are implemented. For example, the cloud computing environment 110 can be a public cloud environment or a private cloud environment. The cloud computing environment 110 provides computing resources (e.g., servers, virtual machines, storage resources, network services, etc.) on which the components of the cellular network run.

如图1中所示,用户设备120和122(例如,具有蜂窝网络连接性的移动电话或其他计算设备)经由蜂窝基站130(例如,蜂窝塔)连接到蜂窝网络。例如,如果蜂窝网络是长期演进(LTE)蜂窝网络,则蜂窝基站130可以是eNodeB。也可以使用诸如3G蜂窝网络或5G蜂窝网络的其他类型的蜂窝网络(例如,其可以具有不同类型的蜂窝基站130)。尽管仅示出了两个示例用户设备120和122装置,但是蜂窝网络通常可以支持更多的用户设备。类似地,蜂窝网络通常将支持位于不同地理位置的多个蜂窝基站。As shown in Figure 1, user equipment 120 and 122 (e.g., mobile phones or other computing devices with cellular network connectivity) connect to the cellular network via cellular base station 130 (e.g., a cell tower). For example, if the cellular network is a Long Term Evolution (LTE) cellular network, then cellular base station 130 can be an eNodeB. Other types of cellular networks, such as 3G or 5G cellular networks, can also be used (e.g., which may have different types of cellular base stations 130). Although only two example user equipment devices 120 and 122 are shown, cellular networks can typically support many more user equipment. Similarly, cellular networks will typically support multiple cellular base stations located in different geographical locations.

如图1中所示,在云计算环境110内实施多个蜂窝网络组件。控制平面管理140组件为蜂窝网络提供控制平面服务并处理控制平面网络业务。例如,控制平面管理140组件可以为用户设备120和122设置网络流(例如,承载),以访问服务180(例如,到诸如因特网或蜂窝数据网络的公共数据网络(PDN))。根据蜂窝网络的类型,控制平面管理140组件可以包括许多不同的服务。例如,对于LTE蜂窝网络,控制平面管理140组件可以包括移动管理实体(MME)、处理控制平面网络业务的服务和/或分组网关、负载均衡器等。As shown in Figure 1, multiple cellular network components are implemented within the cloud computing environment 110. The control plane management component 140 provides control plane services and handles control plane network traffic for the cellular network. For example, the control plane management component 140 can configure network flows (e.g., bearers) for user equipment 120 and 122 to access service 180 (e.g., to a public data network (PDN) such as the Internet or a cellular data network). Depending on the type of cellular network, the control plane management component 140 may include many different services. For example, for an LTE cellular network, the control plane management component 140 may include a Mobility Management Entity (MME), services that handle control plane network traffic, and/or packet gateways, load balancers, etc.

键值存储170是包含针对蜂窝网络的承载的承载详细信息的数据存储(例如,集中式数据存储或分布式数据存储)。例如,当控制平面管理140组件从用户设备120接收到访问因特网(服务180中的一者)上的网站或进行语音呼叫的请求时,控制平面管理140组件建立承载(例如,这可以包括确定用户设备120是否被授权访问服务,诸如检查数据计划、计费信息等)。作为设置承载的一部分,控制平面管理140组件在键值存储170中存储针对承载的承载详细信息(例如,TEID、QoS值、诸如下载速度的网络比特率等)。承载代表特定用户设备装置的网络业务(例如,网络流)的类型。可以为不同类型的网络业务和/或不同的应用程序创建不同的承载,其包括电话呼叫、网站浏览、特殊流量(例如,流视频、特定的VoIP应用程序等)和/或不同的服务质量(QoS)。给定的用户设备装置可以具有代表不同网络流的多个当前激活的承载。在一些实现方案中,为了使用户设备装置使用蜂窝网络,必须首先在蜂窝网络内为网络流建立承载。Key-value store 170 is a data store (e.g., a centralized or distributed data store) containing bearer details for a cellular network bearer. For example, when control plane management component 140 receives a request from user equipment 120 to access a website on the Internet (one of services 180) or to make a voice call, control plane management component 140 establishes a bearer (e.g., this may include determining whether user equipment 120 is authorized to access the service, such as checking data plans, billing information, etc.). As part of setting up the bearer, control plane management component 140 stores bearer details for the bearer (e.g., TEID, QoS value, network bitrate such as download speed, etc.) in key-value store 170. A bearer represents a type of network service (e.g., network flow) for a specific user equipment device. Different bearers can be created for different types of network services and/or different applications, including telephone calls, website browsing, special traffic (e.g., streaming video, specific VoIP applications, etc.), and/or different qualities of service (QoS). A given user equipment device may have multiple currently active bearers representing different network flows. In some implementations, in order for user equipment devices to use cellular networks, bearers for network flows must first be established within the cellular network.

虚拟化分组网关160(例如,在虚拟机上运行的集群中的多个虚拟化分组网关)处理用于用户设备120和122的数据平面网络分组。例如,虚拟化分组网关160处理在用户设备120和122与服务180(例如,因特网和/或其他外部网络)之间(“去往”和“来自”)传输的数据平面网络分组。Virtualized packet gateway 160 (e.g., multiple virtualized packet gateways in a cluster running on virtual machines) processes data plane network packets for user equipment 120 and 122. For example, virtualized packet gateway 160 processes data plane network packets transmitted between user equipment 120 and 122 and service 180 (e.g., the Internet and/or other external networks) (“to” and “from”).

当虚拟化分组网关160中的一个虚拟化分组网关从特定用户设备装置接收针对给定网络流(例如,语音呼叫、对特定网站的访问等)的第一数据平面网络分组时,虚拟化分组网关从键值存储170获得针对该承载的承载详细信息(例如,承载将已经通过控制平面管理140组件预先设置在键值存储中)。虚拟化分组网关可以将针对承载的承载详细信息存储在本地高速缓存中(例如,虚拟化分组网关的本地键值存储)。When one of the virtualized packet gateways 160 receives a first data plane network packet for a given network flow (e.g., a voice call, access to a specific website, etc.) from a particular user equipment device, the virtualized packet gateway obtains bearer details for that bearer from key-value store 170 (e.g., the bearer has been pre-configured in the key-value store by the control plane management component 140). The virtualized packet gateway may store the bearer details for the bearer in a local cache (e.g., the virtualized packet gateway's local key-value store).

在用户设备120和120与虚拟化分组网关160之间的数据平面网络分组(作为因特网协议(IP)网络分组)被封装。在一些实现方案中,根据诸如GTP-U的GPRS隧道协议(GTP)来执行封装。例如,封装提供一种管理给定用户设备装置的不同网络流的方式。隧道协议向为与给定网络流相关联的承载分配标识符(例如,隧道端点标识符(TEID)),并且单独的标识符可以用于上行链路数据(从用户设备装置流向服务180的数据)和下行链路数据(从服务180流到用户设备装置的数据)。例如,可以为其中有用户设备120正在访问特定网站的特定网络流,设置特定承载,其中承载详细信息包括两个标识符(例如,两个TEID)——一个标识符与网络流的上行链路流量相关联,一个标识符与网络流的下行链路流量相关联。Data plane network packets (as Internet Protocol (IP) network packets) between user equipment 120 and virtualized packet gateway 160 are encapsulated. In some implementations, encapsulation is performed according to a GPRS tunneling protocol (GTP) such as GTP-U. For example, encapsulation provides a way to manage different network flows for a given user equipment device. The tunneling protocol assigns identifiers (e.g., tunnel endpoint identifiers (TEIDs)) to bearers associated with a given network flow, and separate identifiers can be used for uplink data (data flowing from user equipment device to service 180) and downlink data (data flowing from service 180 to user equipment device). For example, a specific bearer can be set up for a specific network flow in which user equipment 120 is accessing a specific website, where the bearer details include two identifiers (e.g., two TEIDs)—one identifier associated with the uplink traffic of the network flow and one identifier associated with the downlink traffic of the network flow.

负载均衡器150在虚拟化分组网关160之间分配数据平面网络包。负载均衡器150是云计算环境110的标准负载均衡器(例如,由公共云服务供应商提供的标准负载均衡器),其根据IP报头信息来引导网络业务。由于负载均衡器150是标准负载均衡器,因此其不会基于封装的分组信息来引导网络分组(例如,其不是已配置为与诸如GTP-U协议的封装协议一起作用的专用负载均衡器)。尽管在附图中示出一个示例负载均衡器150,但是可以使用多个负载均衡器(例如,多个负载均衡器网络装置)。Load balancer 150 distributes data plane network packets among virtualized packet gateways 160. Load balancer 150 is a standard load balancer in the cloud computing environment 110 (e.g., a standard load balancer provided by a public cloud service provider), which directs network traffic based on IP header information. Because load balancer 150 is a standard load balancer, it does not direct network packets based on encapsulated packet information (e.g., it is not a dedicated load balancer configured to work with encapsulation protocols such as GTP-U). Although an example load balancer 150 is shown in the figures, multiple load balancers (e.g., multiple load balancer network devices) can be used.

因为负载均衡器150是标准负载均衡器,所以其通常将基于外部IP报头信息(例如,源IP地址和目标IP地址和/或端口编号)将给定网络流的网络分组引导到相同的虚拟化分组网关。然而,由于负载均衡器150不了解承载(例如,其不检查封装的分组或封装的报头),因此无法确定哪个虚拟化分组网关将接收给定承载的网络分组。一个可能的解决方案是,将所有承载详细信息传递给所有虚拟化分组网关。然而,这种可能的解决方案效率低下(例如,使用包括网络带宽、处理资源和存储在内的大量计算资源)。Because load balancer 150 is a standard load balancer, it typically routes network packets for a given network flow to the same virtualized packet gateway based on external IP header information (e.g., source IP address and destination IP address and/or port number). However, since load balancer 150 is not aware of the bearer (e.g., it does not inspect the encapsulated packets or the encapsulated header), it cannot determine which virtualized packet gateway will receive network packets for a given bearer. One possible solution is to pass all bearer details to all virtualized packet gateways. However, this possible solution is inefficient (e.g., using significant computing resources including network bandwidth, processing resources, and storage).

使用本文中描述的技术,可以提供更有效的解决方案。例如,通过将键值存储170用作蜂窝网络的承载的承载详细信息的存储库,虚拟化分组网关160可以在需要时获得承载详细信息。例如,当虚拟化分组网关160中的一个虚拟化分组网关接收到与未知承载(例如,不在虚拟化分组网关的本地高速缓存中的承载)相关联的数据平面网络分组时,虚拟化分组网关可以从外部键值存储170获得针对承载的承载详细信息,并将该承载详细信息存储在虚拟化分组网关的本地高速缓存中。相对于在虚拟化分组网关160中的每个处存储所有承载详细信息的解决方案,这在计算资源(例如,网络带宽、处理资源和存储)方面提供了改进。Using the techniques described herein, a more efficient solution can be provided. For example, by using key-value store 170 as a repository of bearer details for cellular network bearers, virtualized packet gateway 160 can obtain bearer details when needed. For instance, when one of the virtualized packet gateways 160 receives a data plane network packet associated with an unknown bearer (e.g., a bearer not in the virtualized packet gateway's local cache), the virtualized packet gateway can obtain the bearer details for the bearer from external key-value store 170 and store those details in the virtualized packet gateway's local cache. This provides an improvement in computational resources (e.g., network bandwidth, processing resources, and storage) compared to a solution that stores all bearer details at every location in virtualized packet gateway 160.

在虚拟化分组网关160的扩展期间,可能会发生在云计算环境内操作蜂窝网络组件的另一个潜在问题。例如,在将新的虚拟化分组网关添加到虚拟化分组网关160的扩展事件(例如,在虚拟机上实例化新的虚拟化分组网关实例的扩展事件)期间,负载均衡器150将开始按虚拟化分组网关160(例如,在虚拟化分组网关160之间均匀地划分数据平面网络流)的比例向新的虚拟网关发送数据平面网络分组。如果新的虚拟化分组网关开始接收尚未见到的承载的大量网络流,则新的虚拟化分组网关可能会过载(例如,导致网络分组被延迟或丢弃,这可能导致网络服务延迟或中断)。一个可能的解决方案是,使新的虚拟化分组网关在遇到每个新承载时(例如,在接收到与给定承载相关联的第一网络分组时)从键值存储170针对每个新承载获取承载详细信息。然而,当新的虚拟化分组网关开始操作并且负载均衡器150开始引导网络分组时,新的虚拟化分组网关在网络业务以及需要获得的相应的新承载详细信息的突然涌入的情况下,仍然会变为过载的。Another potential problem that may arise during the scaling up of virtualized packet gateway 160 is the operation of cellular network components within a cloud computing environment. For example, during a scaling up event where a new virtualized packet gateway is added to virtualized packet gateway 160 (e.g., a scaling up event where a new virtualized packet gateway instance is instantiated on a virtual machine), load balancer 150 will begin sending data plane network packets to the new virtual gateway in proportion to the virtualized packet gateway 160 (e.g., evenly distributing data plane network traffic among virtualized packet gateways 160). If the new virtualized packet gateway begins receiving a large volume of network traffic from bearers it has not yet encountered, the new virtualized packet gateway may become overloaded (e.g., causing network packets to be delayed or dropped, which could lead to network service delays or interruptions). One possible solution is to have the new virtualized packet gateway retrieve bearer details from key-value store 170 for each new bearer it encounters (e.g., upon receiving the first network packet associated with a given bearer). However, when the new virtualized packet gateway starts operating and the load balancer 150 begins boots up network packets, the new virtualized packet gateway can still become overloaded in the event of a sudden influx of network traffic and the need to obtain the corresponding new bearer details.

使用本文中描述的技术,可以减少或消除扩展事件的这样的问题。例如,在创建新的虚拟化分组网关之后以及在虚拟化分组网关开始从负载均衡器150接收数据平面网络分组之前,可以将承载详细信息从键值存储170复制到新的虚拟化分组网关的本地高速缓存。在一些实现方案中,键值存储170的完整副本被保存到新的虚拟化分组网关的本地高速缓存。一旦键值存储170的副本已经存储在新的虚拟化分组网关处,则负载均衡器150开始将数据平面网络分组引导到新的虚拟化分组网关。因为新的虚拟化分组网关的本地高速缓存已经被承载详细信息填充(例如,预先填充),所以其从负载均衡器150接收的任何数据平面网络分组将在本地高速缓存具有相关联的承载详细信息,新的虚拟化分组网关将能够有效地处理它们,而无需从键值存储170中获得承载详细信息。这将获得可靠性(例如,减少网络服务对用户设备破坏的机会)和在网络响应方面(例如,减少等待时间)的节省。Using the techniques described herein, problems such as cascading events can be reduced or eliminated. For example, after a new virtualized packet gateway is created and before it begins receiving data plane network packets from load balancer 150, bearer details can be copied from key-value store 170 to the new virtualized packet gateway's local cache. In some implementations, a complete copy of key-value store 170 is stored in the new virtualized packet gateway's local cache. Once the copy of key-value store 170 is stored at the new virtualized packet gateway, load balancer 150 begins routing data plane network packets to the new virtualized packet gateway. Because the new virtualized packet gateway's local cache is already populated (e.g., pre-populated) with bearer details, any data plane network packets it receives from load balancer 150 will have associated bearer details in the local cache, and the new virtualized packet gateway will be able to process them efficiently without retrieving the bearer details from key-value store 170. This results in reliability (e.g., reduced chance of network service disruption to user equipment) and savings in network responsiveness (e.g., reduced latency).

在虚拟化分组网关160的缩减期间可能会发生类似的问题。例如,其余的虚拟化分组网关160可以接收由断开服务的虚拟化分组网关先前所服务的一部分网络流。然而,在这种情况下,通过负载均衡器150引导到给定的其余虚拟化分组网关的附加网络流不应使其余虚拟化分组网关过载。因此,其余虚拟化分组网关可以在需要时从键值存储170获得用于额外的网络流的新的承载详细信息。A similar issue may arise during the scaling down of virtualized packet gateway 160. For example, the remaining virtualized packet gateways 160 may receive a portion of the network traffic previously served by the disconnected virtualized packet gateways. However, in this case, additional network traffic directed to the given remaining virtualized packet gateways via load balancer 150 should not overload them. Therefore, the remaining virtualized packet gateways can obtain new bearer details for the additional network traffic from key-value store 170 when needed.

当需要在虚拟化分组网关之间移动承载和/或当需要更新承载详细信息时,会出现在云计算环境内操作蜂窝网络组件的另一潜在问题。例如,在扩展事件、缩减事件期间或出于某些其他原因(例如,网络拥塞或过载的虚拟化分组网关),可能需要移动表示正在进行的网络流的承载。在一些解决方案中,承载被绑定到特定的虚拟化分组网关,并且不能被移动(例如,虚拟化分组网关的故障将导致由虚拟化分组网关服务的所有承载以及相关联的网络流的故障)。在本文中描述的技术中,承载和相关联的网络流可以在虚拟化分组网关之间移动。例如,如果负载均衡器150将承载的网络流引导到其他虚拟化分组网关,则其他虚拟化分组网关可以在接收到网络流的第一数据平面网络分组时从键值存储170获得承载详细信息,并且服务该承载。该解决方案可以在扩展事件、缩减事件期间执行,也可以在引起网络流移动至其他虚拟化分组网关的其他原因的情况下执行。Another potential challenge in operating cellular network components within a cloud computing environment arises when it's necessary to move bearers between virtualized packet gateways and/or when bearer details need to be updated. For example, during expansion events, contraction events, or for other reasons (e.g., network congestion or overloaded virtualized packet gateways), it may be necessary to move bearers representing ongoing network flows. In some solutions, bearers are bound to a specific virtualized packet gateway and cannot be moved (e.g., a failure of a virtualized packet gateway would cause the failure of all bearers served by that gateway and associated network flows). In the techniques described herein, bearers and associated network flows can be moved between virtualized packet gateways. For example, if load balancer 150 directs a network flow of a bearer to another virtualized packet gateway, that other virtualized packet gateway can obtain bearer details from key-value store 170 upon receiving the first data plane network packet of the network flow and serve that bearer. This solution can be implemented during expansion events, contraction events, or for other reasons that cause network flows to move to other virtualized packet gateways.

当需要更新承载时,可能会发生类似的问题。例如,由于账户状态的改变(例如,带宽限制、被访问的服务类型、计费问题等),可能需要更新承载。在一些解决方案中,承载不能在网络流期间被更新(例如,如果需要进行改变,则需要建立新的承载,这降低了效率并且需要额外的计算资源)。在本文中描述的技术中,可以更新承载。为了更新承载,键值存储170可以存储承载的所有权信息,所有权信息指示每个承载都被哪个虚拟化分组网关拥有(例如,当前负责处理承载的数据平面网络分组)。例如,当虚拟化分组网关接收到与特定承载相关联的第一数据平面网络分组时(例如,其中特定承载不在虚拟化分组网关的本地高速缓存中,和/或其中未针对特定承载的分组进行处理之前),虚拟化分组网关可以从键值存储170中获得特定承载的承载详细信息,并在键值存储170中将其自身注册为特定承载的所有者(例如,键值存储库170可以维护单独的表,并在承载和虚拟化分组网关之间建立关联)。当需要更新承载时,控制平面管理140组件可以更新键值存储170中的承载详细信息,确定哪个虚拟化分组网关是该承载的所有者,并警告虚拟化分组网关,使得虚拟化分组网关可以从键值存储170获取更新的承载详细信息。该解决方案允许在网络流期间更新承载,而无需停止并重新建立新的网络流,这节省了时间、计算资源,并且可以减少或消除网络中断。Similar issues may arise when bearers need to be updated. For example, a bearer update may be required due to changes in account status (e.g., bandwidth limitations, accessed service types, billing issues, etc.). In some solutions, bearers cannot be updated during network flows (e.g., if changes are needed, a new bearer needs to be established, which is inefficient and requires additional computational resources). In the techniques described herein, bearers can be updated. To update bearers, key-value store 170 can store bearer ownership information indicating which virtualization packet gateway owns each bearer (e.g., the data plane network packet currently responsible for processing the bearer). For example, when a virtualization packet gateway receives a first data plane network packet associated with a specific bearer (e.g., where the specific bearer is not in the virtualization packet gateway's local cache, and/or where no packet for the specific bearer has been processed), the virtualization packet gateway can obtain the bearer details for the specific bearer from key-value store 170 and register itself as the owner of the specific bearer in key-value store 170 (e.g., key-value store 170 can maintain a separate table and establish an association between the bearer and the virtualization packet gateway). When a bearer needs to be updated, the control plane management component 140 can update the bearer details in the key-value store 170, determine which virtualized packet gateway owns the bearer, and alert the virtualized packet gateway so that it can retrieve the updated bearer details from the key-value store 170. This solution allows bearers to be updated during network flows without stopping and re-establishing new network flows, saving time and computational resources and reducing or eliminating network outages.

图2是描绘示例云计算环境210的图,在示例云计算环境内实施LTE蜂窝网络(例如,虚拟LTE蜂窝网络)的包括SPGW-U在内的组件。例如,云计算环境210可以是公共云环境或私有云环境。云计算环境210提供蜂窝网络的组件在其上运行的计算资源(例如,服务器、虚拟机、存储资源、网络服务等)。关于图2描述的许多组件执行与以上关于图1描述的对应组件相同或相似的功能。Figure 2 is a diagram depicting an example cloud computing environment 210, within which components, including the SPGW-U, implement an LTE cellular network (e.g., a virtual LTE cellular network). For example, cloud computing environment 210 can be a public cloud environment or a private cloud environment. Cloud computing environment 210 provides computing resources (e.g., servers, virtual machines, storage resources, network services, etc.) on which the cellular network components run. Many of the components described in Figure 2 perform the same or similar functions as the corresponding components described above with respect to Figure 1.

如图2中所示,用户设备220和222(例如,具有蜂窝网络连接性的移动电话或其他计算设备)经由eNodeB 230(例如,LTE蜂窝网络内的蜂窝基站)连接到蜂窝网络。也可以使用诸如3G蜂窝网络或5G蜂窝网络的其他类型的蜂窝网络。虽然仅示出了两个示例用户设备220和222装置,但是蜂窝网络通常可以支持更多的用户设备装置。类似地,蜂窝网络通常将支持位于不同地理位置的多个蜂窝基站。As shown in Figure 2, user equipment 220 and 222 (e.g., mobile phones or other computing devices with cellular network connectivity) connect to the cellular network via eNodeB 230 (e.g., a cellular base station within an LTE cellular network). Other types of cellular networks, such as 3G or 5G cellular networks, can also be used. Although only two example user equipment devices 220 and 222 are shown, cellular networks can typically support many more user equipment devices. Similarly, cellular networks will typically support multiple cellular base stations located in different geographical locations.

如图2中所示,多个蜂窝网络组件在云计算环境210内实施。多个组件为蜂窝网络提供控制平面服务并处理控制平面网络业务,包括MME 240和服务分组网关(SPGW-C)262。例如,MME 240与SPGW-C262一起可以为用户设备220和222建立网络流(例如,承载),以访问服务290(例如,到诸如Internet或蜂窝数据网络的公共数据网络(PDN))。负载均衡器252(或在一些实现方案中的多个负载均衡器)可以在多个SPGW-C 262之间分配控制平面网络业务(例如,以处理蜂窝网络的控制平面网络业务负载)。As shown in Figure 2, multiple cellular network components are implemented within a cloud computing environment 210. These components provide control plane services and handle control plane network traffic for the cellular network, including an MME 240 and a Service Packet Gateway (SPGW-C) 262. For example, the MME 240, together with the SPGW-C 262, can establish network flows (e.g., bearers) for user equipment 220 and 222 to access services 290 (e.g., to a Public Data Network (PDN) such as the Internet or a cellular data network). A load balancer 252 (or multiple load balancers in some implementations) can distribute control plane network traffic (e.g., to handle the control plane network traffic load of the cellular network) among multiple SPGW-Cs 262.

键值存储270是包含用于蜂窝网络的承载的承载详细信息的数据存储(例如,集中式数据存储或分布式数据存储)。例如,当MME 240从用户设备220接收到访问因特网上的网站(服务290中的一者)或进行语音呼叫的请求时,MME 240建立承载(例如,其可以包括确定用户设备220是否被授权访问服务,例如,检查数据计划、计费信息等)。例如,MME 240可以指示SPGW-C 262配置承载并将该承载的承载详细信息存储在键值存储270中。承载表示特定用户设备装置的网络业务类型(例如,网络流)。可以为不同类型的网络业务和/或不同的应用程序创建不同的承载,其包括电话呼叫、网站浏览、特殊流量(例如,流视频、特定的VoIP应用程序等)、和/或不同的服务质量(QoS)。给定的用户设备装置可以具有代表不同网络流的多个当前活动的承载。在一些实施方式中,为了使用户设备装置使用蜂窝网络,必须首先在蜂窝网络内为网络流建立承载。Key-value store 270 is a data storage (e.g., centralized or distributed data storage) containing bearer details for use in the cellular network. For example, when MME 240 receives a request from user equipment 220 to access a website (one of services 290) on the Internet or to make a voice call, MME 240 establishes a bearer (e.g., this may include determining whether user equipment 220 is authorized to access the service, such as checking data plans, billing information, etc.). For example, MME 240 may instruct SPGW-C 262 to configure the bearer and store its bearer details in key-value store 270. A bearer represents a network service type (e.g., network flow) for a specific user equipment device. Different bearers can be created for different types of network services and/or different applications, including telephone calls, website browsing, special traffic (e.g., streaming video, specific VoIP applications, etc.), and/or different qualities of service (QoS). A given user equipment device may have multiple currently active bearers representing different network flows. In some implementations, for a user equipment device to use the cellular network, a bearer must first be established within the cellular network for the network flow.

SPGW-U 260(例如,在虚拟机上运行的集群中的多个SPGW-U)处理用于用户设备220和222的数据平面网络分组。例如,SPGW-U260处理数据平面网络分组,数据平面网络分组在用户设备220和222与服务290(例如,因特网和/或其他外部网络)之间(“去往”和“来自”)传输。在一些实现方案中,网络地址转换(NAT)服务280被用于SPGW-U 260和服务290(例如,因特网)之间的IP地址转换。The SPGW-U 260 (e.g., multiple SPGW-Us in a cluster running on virtual machines) processes data plane network packets for user equipment 220 and 222. For example, the SPGW-U 260 processes data plane network packets that are transmitted between user equipment 220 and 222 and service 290 (e.g., the Internet and/or other external networks) (“to” and “from”). In some implementations, a Network Address Translation (NAT) service 280 is used for IP address translation between the SPGW-U 260 and service 290 (e.g., the Internet).

当SPGW-U 260中的一个SPGW-U从特定用户设备装置接收用于给定网络流(例如,语音呼叫、对特定网站的访问等)的第一数据平面网络分组时,SPGW-U从键值存储270获得承载的承载详细信息(例如,承载将已经由MME 240和/或SPGW-C 262预先设置在键值存储中)。SPGW-U可以将承载的承载详细信息存储在本地高速缓存中(例如,SPGW-U的本地键值存储)。When one of the SPGW-Us 260 receives a first data plane network packet from a specific user equipment device for a given network flow (e.g., a voice call, access to a specific website, etc.), the SPGW-U obtains bearer details from the key-value store 270 (e.g., the bearer will have been pre-configured in the key-value store by the MME 240 and/or SPGW-C 262). The SPGW-U may store the bearer details in a local cache (e.g., the SPGW-U's local key-value store).

在用户设备220和220与SPGW-U 260之间的数据平面网络分组(作为因特网协议(IP)网络分组)被封装。在一些实现方案中,根据诸如GTP-U的GPRS隧道协议(GTP)来执行封装。例如,封装提供一种管理给定用户设备装置的不同网络流的方式。隧道协议向与给定网络流相关联的承载分配标识符(例如,隧道端点标识符(TEID)),并且单独的标识符可以用于上行链路数据(从用户设备装置流向服务290的数据)和下行链路数据(从服务290流到用户设备装置的数据)。例如,可以为其中用户设备220正在访问特定网站的特定网络流设置特定承载,其中承载详细信息包括两个标识符(例如,两个TEID),一个标识符与网络流的上行链路流量相关联,一个标识符与网络流的下行链路流量相关联。Data plane network packets (as Internet Protocol (IP) network packets) between User Equipment 220 and SPGW-U 260 are encapsulated. In some implementations, encapsulation is performed according to a GPRS tunneling protocol (GTP) such as GTP-U. For example, encapsulation provides a way to manage different network flows for a given User Equipment device. The tunneling protocol assigns an identifier (e.g., a tunnel endpoint identifier (TEID)) to the bearer associated with a given network flow, and separate identifiers can be used for uplink data (data flowing from the User Equipment device to Service 290) and downlink data (data flowing from Service 290 to the User Equipment device). For example, a specific bearer can be set up for a specific network flow in which User Equipment 220 is accessing a specific website, where the bearer details include two identifiers (e.g., two TEIDs), one associated with the uplink traffic of the network flow and one associated with the downlink traffic of the network flow.

负载均衡器250在SPGW-U 260之间分配数据平面网络分组。负载均衡器250是云计算环境210的标准负载均衡器(例如,由公共云服务供应商提供的标准负载均衡器),标准负载均衡器根据IP报头信息引导网络业务。由于负载均衡器250是标准负载均衡器,因此负载均衡器不会基于封装的分组信息来引导网络分组(例如,网络分组不是已被配置为与诸如GTP-U协议的封装协议一起作用的目标特定的负载均衡器)。尽管在附图中示出了一个示例负载均衡器250,但是可以使用多个负载均衡器(例如,多个负载均衡器网络装置)。Load balancer 250 distributes data plane network packets among SPGW-U 260. Load balancer 250 is a standard load balancer in the cloud computing environment 210 (e.g., a standard load balancer provided by a public cloud service provider), which directs network traffic based on IP header information. Because load balancer 250 is a standard load balancer, it does not direct network packets based on encapsulated packet information (e.g., network packets are not target-specific load balancers configured to work with encapsulation protocols such as GTP-U). Although an example load balancer 250 is shown in the figures, multiple load balancers (e.g., multiple load balancer network devices) can be used.

因为负载均衡器250是标准负载均衡器,所以其通常将基于外部IP报头信息(例如,源IP地址和目的IP地址和/或端口编号)将给定网络流的网络分组引导到相同的SPGW-U。然而,由于负载均衡器250不了解承载(例如,其不检查封装的分组或封装的报头),因此无法确定哪个SPGW-U将接收给定承载的网络分组。一个可能的解决方案是将所有承载详细信息传达给所有SPGW-U。然而,这种可能的解决方案效率低下(例如,使用包括网络带宽、处理资源和存储在内的大量计算资源)。Because load balancer 250 is a standard load balancer, it typically routes network packets for a given network flow to the same SPGW-U based on external IP header information (e.g., source and destination IP addresses and/or port numbers). However, since load balancer 250 is not aware of the bearer (e.g., it does not inspect the encapsulated packets or the encapsulated headers), it cannot determine which SPGW-U will receive network packets for a given bearer. One possible solution is to communicate all bearer details to all SPGW-Us. However, this possible solution is inefficient (e.g., using significant computing resources including network bandwidth, processing resources, and storage).

使用本文中描述的技术,可以提供更有效的解决方案。例如,通过使用键值存储270作为蜂窝网络的承载的承载详细信息的存储库,SPGW-U 260可以在需要时获得承载详细信息。例如,当SPGW-U 260中的一个接收与未知承载(例如,不在SPGW-U的本地高速缓存中的承载)相关联的数据平面网络分组时,SPGW-U可以从外部键值存储270获得承载的承载详细信息,并将其存储在其本地高速缓存中。与所有承载详细信息存储在SPGW-U 260中的每个SPGW-U处的解决方案相比,这在计算资源(例如,网络带宽、处理资源和存储)方面提供了改进。Using the techniques described herein, a more efficient solution can be provided. For example, by using key-value store 270 as a repository of bearer details for cellular network bearers, SPGW-U 260 can obtain bearer details when needed. For instance, when one of the SPGW-U 260 receives a data plane network packet associated with an unknown bearer (e.g., a bearer not in the SPGW-U's local cache), the SPGW-U can obtain the bearer details from the external key-value store 270 and store them in its local cache. This provides improvements in computational resources (e.g., network bandwidth, processing resources, and storage) compared to a solution where all bearer details are stored at each SPGW-U within the SPGW-U 260.

在SPGW-U 262的扩展期间,可能会发生在云计算环境内操作蜂窝网络组件的另一个潜在问题。例如,在将新的SPGW-U添加到SPGW-U 262的扩展事件(例如,在虚拟机上实例化新的SPGW-U实例的扩展事件)期间,负载均衡器250将开始按SPGW-U 262的数量成比例地向新的SPGW-U发送数据平面网络分组(例如,在SPGW-U262之间均匀地划分数据平面网络流)。如果新的SPGW-U开始接收尚未存在的承载的大量网络流,则新的SPGW-U可能会过载(例如,导致网络分组被延后或丢弃,这可能导致网络服务延迟或中断)。一种可能的解决方案是使新的SPGW-U在遇到每个新的承载时(例如,在接收到与给定承载相关联的第一网络分组时)从键值存储270针对每个新的承载获取承载详细信息。然而,当新的SPGW-U开始操作并且负载均衡器250开始引导网络分组时,新的SPGW-U在网络业务以及需要获得的相应的新的承载详细信息的突然涌入的情况下仍然可能变为过载的。Another potential problem that may occur during the scaling of SPGW-U 262 is operating cellular network components within a cloud computing environment. For example, during a scaling event where a new SPGW-U is added to SPGW-U 262 (e.g., a scaling event where a new SPGW-U instance is instantiated on a virtual machine), load balancer 250 will begin sending data plane network packets to the new SPGW-U in proportion to the number of SPGW-U 262 (e.g., evenly distributing data plane network traffic among SPGW-U 262). If the new SPGW-U begins receiving a large amount of network traffic from bearers that do not yet exist, the new SPGW-U may become overloaded (e.g., causing network packets to be delayed or dropped, which could lead to network service delays or interruptions). One possible solution is to have the new SPGW-U retrieve bearer details from key-value store 270 for each new bearer it encounters (e.g., upon receiving the first network packet associated with a given bearer). However, when the new SPGW-U starts operating and the load balancer 250 begins boots up network packets, the new SPGW-U may still become overloaded in the event of a sudden influx of network traffic and the need to obtain the corresponding new bearer details.

使用本文中描述的技术,可以减少或消除扩展事件的这样的问题。例如,在创建新的SPGW-U之后以及在其开始从负载均衡器250接收数据平面网络分组之前,可以将承载详细信息从键值存储270复制到新的SPGW-U的本地高速缓存中。在一些实现方案中,键值存储270的完整副本被保存到新的SPGW-U的本地高速缓存。一旦键值存储270的副本已经存储在新的SPGW-U处,则负载均衡器250开始将数据平面网络分组引导到新的SPGW-U。因为新的SPGW-U的本地高速缓存已经被承载详细信息填充(例如,预先填充),所以新的SPGW-U从负载均衡器250接收的任何数据平面网络分组将在本地高速缓存中具有相关联的承载详细信息,新的SPGW-U将能够有效地处理数据平面网络分组,而无需从键值存储270中获得承载详细信息。这将使得在网络响应(例如,减少等待时间)方面实现节约并获得可靠性(例如,减少网络服务对用户设备破坏的机会)。Using the techniques described herein, such problems as scaling events can be reduced or eliminated. For example, after a new SPGW-U is created and before it begins receiving data plane network packets from load balancer 250, bearer details can be copied from key-value store 270 to the new SPGW-U's local cache. In some implementations, a complete copy of key-value store 270 is stored in the new SPGW-U's local cache. Once the copy of key-value store 270 is stored at the new SPGW-U, load balancer 250 begins routing data plane network packets to the new SPGW-U. Because the new SPGW-U's local cache is already populated with bearer details (e.g., pre-populated), any data plane network packets received by the new SPGW-U from load balancer 250 will have associated bearer details in the local cache, and the new SPGW-U will be able to efficiently process data plane network packets without retrieving bearer details from key-value store 270. This results in savings in network response (e.g., reduced latency) and improved reliability (e.g., reduced chance of network service disruptions to user equipment).

在SPGW-U 262的按比例缩减期间可能会发生类似的问题。例如,其余SPGW-U 262可以接收通过断开服务的SPGW-U先前服务的一部分网络流。然而,在这种情况下,通过负载均衡器250引导到给定的其余SPGW-U的附加网络流不应使其余SPGW-U过载。因此,其余SPGW-U可以在需要时从键值存储270获得用于额外的网络流的新的承载详细信息。A similar issue may arise during the scaling down of SPGW-U 262. For example, the remaining SPGW-U 262 may receive a portion of the network traffic previously served by the disconnected SPGW-U. However, in this case, the additional network traffic directed to a given remaining SPGW-U via load balancer 250 should not overload the remaining SPGW-U. Therefore, the remaining SPGW-U can obtain new bearer details for the additional network traffic from key-value store 270 when needed.

当需要在SPGW-U之间移动承载时和/或当需要更新承载详细信息时,可能会出现在云计算环境内操作蜂窝网络组件的另一个潜在问题。例如,表示正在进行的网络流的承载可能在扩展事件、缩减事件期间或出于某些其他原因(例如,网络拥塞或SPGW-U过载)而需要移动。在一些解决方案中,承载绑定到特定的SPGW-U,并且无法移动(例如,SPGW-U的故障将导致由SPGW-U服务的所有承载以及相关联的网络流的故障)。在本文中描述的技术中,承载和相关联的网络流可以在SPGW-U之间移动。例如,如果负载均衡器250将承载的网络流引导到其他SPGW-U,则其他SPGW-U在接收到网络流的第一数据平面网络分组时可以从键值存储270获取承载详细信息,并且服务该承载。该解决方案可以在扩展事件、缩减事件期间执行,或者由于导致网络流移动到其他SPGW-U的一些其他原因而执行。Another potential problem that can arise when operating cellular network components within a cloud computing environment is the need to move bearers between SPGW-Us and/or when bearer details need to be updated. For example, a bearer representing an ongoing network flow may need to be moved during an expansion event, a contraction event, or for some other reason (e.g., network congestion or SPGW-U overload). In some solutions, bearers are bound to a specific SPGW-U and cannot be moved (e.g., a failure of an SPGW-U would cause the failure of all bearers served by that SPGW-U and associated network flows). In the techniques described herein, bearers and associated network flows can be moved between SPGW-Us. For example, if load balancer 250 directs a network flow of a bearer to another SPGW-U, that other SPGW-U can retrieve the bearer details from key-value store 270 upon receiving the first data plane network packet of the network flow and serve that bearer. This solution can be implemented during an expansion event, a contraction event, or for some other reason that causes a network flow to move to another SPGW-U.

当需要更新承载时,可能会发生类似的问题。例如,由于账户状态的改变(例如,带宽限制、被访问的服务类型、计费问题等),可能需要更新承载。在一些解决方案中,承载不能在网络流期间被更新(例如,如果需要进行改变,则需要建立新的承载,这降低了效率并且需要额外的计算资源)。在本文中描述的技术中,可以更新承载。为了更新承载,键值存储170可以存储承载的所有权信息,所有权信息指示哪个SPGW-U拥有每个承载(例如,当前负责处理承载的数据平面网络分组)。例如,当SPGW-U接收到与特定承载相关联的第一数据平面网络分组时(例如,其中特定承载不在SPGW-U的本地高速缓存中,和/或,其中未针对特定承载的分组进行处理之前),SPGW-U可以从键值存储270中获得特定承载的承载详细信息,并在键值存储170中将其自身注册为特定承载的所有者(例如,键值存储库270可以维护单独的表,并在承载和SPGW-U之间建立关联)。当需要更新承载时,MME 240和/或SPGW-C 262可以更新键值存储270中的承载详细信息,确定哪个SPGW-U是承载的所有者,并警告SPGW-U,使得SPGW-U可以从键值存储270获取更新的承载详细信息。该解决方案允许在网络流期间更新承载,而无需停止并重新建立新的网络流,这节省了时间、计算资源,并且可以减少或消除网络中断。Similar issues may arise when bearers need to be updated. For example, a bearer update may be required due to changes in account status (e.g., bandwidth limitations, accessed service types, billing issues, etc.). In some solutions, bearers cannot be updated during network flows (e.g., if changes are needed, a new bearer needs to be established, which is inefficient and requires additional computational resources). In the techniques described herein, bearers can be updated. To update bearers, key-value store 170 can store bearer ownership information indicating which SPGW-U owns each bearer (e.g., the data plane network packet currently handling the bearer). For example, when an SPGW-U receives a first data plane network packet associated with a specific bearer (e.g., where the specific bearer is not in the SPGW-U's local cache, and/or where a packet for the specific bearer has not yet been processed), the SPGW-U can obtain the bearer details for the specific bearer from key-value store 270 and register itself as the owner of the specific bearer in key-value store 170 (e.g., key-value store 270 can maintain a separate table and establish a relationship between the bearer and the SPGW-U). When a bearer needs to be updated, the MME 240 and/or SPGW-C 262 can update the bearer details in the key-value store 270, determine which SPGW-U is the owner of the bearer, and alert the SPGW-U so that the SPGW-U can retrieve the updated bearer details from the key-value store 270. This solution allows bearers to be updated during network flows without stopping and re-establishing new network flows, saving time and computational resources, and reducing or eliminating network outages.

在示例云计算环境210中,SPGW-U 260被描述为组合解决方案,其中用于数据平面流量的服务网关和分组网关被组合成集成的或位于同一位置的服务网关/分组网关组件。然而,在一些实施方式中,服务网关和分组网关是独立运行的分开的组件。例如,各个UE、SGW和PGW可位于不同的位置可能有多种原因。原因之一是域名服务(DNS)选择。当UE附接时,演进分组核心(EPC)可以使用DNS服务器来分别选择SGW和PGW。选择算法可以为每个算法使用不同的标准;SGW可以基于位置(通常选择最接近基站的SGW),而PGW可以基于接入点名称(APN)(实际上,限定UE需要连接到的服务和网络的类型)。另一个原因是漫游。可存在以下情况:PGW位于本地网络中,而SGW位于拜访网络中。例如,这对于移动虚拟网络运营商(MVNO)是典型的。In the example cloud computing environment 210, the SPGW-U 260 is described as a combined solution where the Serving Gateway and Packet Gateway for data plane traffic are combined into an integrated or co-located Serving Gateway/Packet Gateway component. However, in some implementations, the Serving Gateway and Packet Gateway are separate components that operate independently. For example, there may be several reasons why the individual UEs, SGWs, and PGWs may be located in different locations. One reason is Domain Name Service (DNS) selection. When a UE attaches, the Evolved Packet Core (EPC) can use a DNS server to select the SGW and PGW separately. The selection algorithm can use different criteria for each algorithm; the SGW can be based on location (typically selecting the SGW closest to the base station), while the PGW can be based on Access Point Name (APN) (effectively limiting the type of service and network the UE needs to connect to). Another reason is roaming. It is possible for the PGW to be located in the local network while the SGW is located in the visited network. This is typical for mobile virtual network operators (MVNOs), for example.

在SGW和PGW分开(例如,位置分开,例如在不同的计算设备上运行)的实施方式中,SGW和PGW可以经由S5/S8接口进行通信。可存在两个特点;一个基于GTP隧道,另一个基于代理移动IPv6(PMIPv6)(RFC 5213)。In implementations where the SGW and PGW are separate (e.g., geographically separated, such as running on different computing devices), the SGW and PGW can communicate via an S5/S8 interface. Two features may exist: one based on GTP tunneling, and the other based on Proxy Mobile IPv6 (PMIPv6) (RFC 5213).

在使用组合的SPGW的实现方案中,不需要S5/S8接口。SPGW-U将在下行链路中从IP映射到GTP TEID,在上行链路中将TEID映射到IP。然而,在SGW和PGW分开并使用S5/S8接口的实现方案中,可以使用以下映射:In implementations using a combined SPGW, the S5/S8 interface is not required. The SPGW-U maps IP to GTP TEID in the downlink and TEID to IP in the uplink. However, in implementations where the SGW and PGW are separate and use S5/S8 interfaces, the following mapping can be used:

-PGW-u(基于GTP):下行链路:IP到GTP TEID,上行链路:GTP TEID到IP-PGW-u (based on GTP): Downlink: IP to GTP TEID, Uplink: GTP TEID to IP

-SGW-u(基于GTP):下行链路:GTP TEID到GTP TEID,上行链路:GTP TEID到GTPTEID-SGW-u (based on GTP): Downlink: GTP TEID to GTP TEID, Uplink: GTP TEID to GTP TEID

-PGW-u(基于PMIPv6):下行链路:IP到通用路由封装(GRE)隧道,上行链路:GRE隧道到IP-PGW-u (based on PMIPv6): Downlink: IP to Generic Routing Encapsulation (GRE) tunnel; Uplink: GRE tunnel to IP.

-SGW-u(基于PMIPv6):下行链路:GRE隧道到GTP TEID,上行链路:GTP TEID到GRE隧道-SGW-u (based on PMIPv6): Downlink: GRE tunnel to GTP TEID, Uplink: GTP TEID to GRE tunnel

图3是示例状态机300,其示出了数据平面(用户平面)网络分组流和承载状态(例如,所有权、添加、删除和更新)。例如,示例状态机300可以通过虚拟化分组网关(例如,通过虚拟化分组网关160)和/或通过SPGW(例如,通过SPGW-U 260和/或通过SPGW-C262)来实现。在一些实现方案中,存在每个承载的状态机的实例。Figure 3 shows an example state machine 300, illustrating data plane (user plane) network packet flows and bearer states (e.g., ownership, addition, deletion, and update). For example, example state machine 300 can be implemented via a virtualized packet gateway (e.g., via virtualized packet gateway 160) and/or via an SPGW (e.g., via SPGW-U 260 and/or via SPGW-C262). In some implementations, there is an instance of a state machine for each bearer.

关于示例状态机300,存在多个可能发生的事件,包括:Regarding example state machine 300, there are several possible events, including:

1.上行链路分组到达用户平面,即分组从UE朝向PDN传输。1. Uplink packets arrive at the user plane, that is, packets are transmitted from the UE toward the PDN.

2.下行链路分组到达用户平面,即从PDN到UE。2. Downlink packets arrive at the user plane, i.e., from the PDN to the UE.

3.承载更新分组到达控制平面,可以来自MME或KVS。3. Bearer update packets arrive at the control plane, which can come from MME or KVS.

4.承载未知分组从KVS到达控制平面。4. Carry unknown packets from KVS to the control plane.

5.承载删除分组从MME到达控制平面。5. The bearer deletes the packet from the MME to the control plane.

6.所有者添加确认分组从KVS到达控制平面。6. The owner adds a confirmation group from KVS to the control plane.

7.所有者删除确认分组从KVS到达控制平面。7. The owner deletes the confirmation group from KVS to the control plane.

存在多个与示例状态机300相关的变量,变量定义如下。There are several variables associated with the example state machine 300, and the variables are defined as follows.

Am_owner.此变量表示我们(例如,虚拟化分组网关)是否已告知KVS所有者表我们是该承载的所有者。以下值是可能的。Am_owner. This variable indicates whether we (e.g., a virtualized packet gateway) have informed the KVS owner table that we are the owner of this bearer. The following values are possible.

00 尚未告知KVS我们是所有者。We have not yet informed KVS that we are the owners. 添加待定Add pending 已告知KVS,我们是所有者,但尚未收到确认。We have informed KVS that we are the owners, but have not yet received confirmation. 11 已告知KVS我们是所有者,并已收到KVS的确认。We have informed KVS that we are the owners and have received confirmation from KVS. 删除待定Deletion pending 已告诉KVS,我们不再是所有者,但尚未收到确认。We have informed KVS that we are no longer the owners, but have not yet received confirmation.

Read_route_pending.布尔值,记录SPGW是否已向KVS请求承载详细信息。该变量用于防止SPGW在等待从KVS读取承载更新时重复请求承载详细信息。`Read_route_pending` is a boolean value that records whether the SPGW has requested bearer details from the KVS. This variable is used to prevent the SPGW from repeatedly requesting bearer details while waiting to read bearer updates from the KVS.

00 没有发送承载详细信息读取请求。No request to read bearer details was sent. 11 请求已发送。The request has been sent.

Cached_route_seq.整数,记录当前存储在我们的本地高速缓存中的承载更新中存在的序列号。值-1表示本地高速缓存无效。`Cached_route_seq` is an integer that records the sequence number present in the bearer update currently stored in our local cache. A value of -1 indicates that the local cache is invalid.

所描绘的以下状态是示例状态机300。The following states are example state machine 300.

状态1:此状态表示承载是未知的,并且在本地高速缓存中不存在对应的条目。State 1: This state indicates that the bearer is unknown and there is no corresponding entry in the local cache.

状态2、3、4和5:这些都是在正确配置为处理用户平面时经过过的所有中间状态。States 2, 3, 4, and 5: These are all the intermediate states that are passed through when the system is correctly configured to handle the user plane.

状态6:在从本地高速缓存中移除承载的认知时的中间状态。State 6: An intermediate state when the carried cognition is removed from the local cache.

状态7:我们处于稳定状态,同时已正确配置为处理用户平面数据。Status 7: We are in a stable state and are correctly configured to process user plane data.

在云计算环境内操作蜂窝网络的方法Methods for operating cellular networks within a cloud computing environment

在本文中的任何示例中,可以提供用于在云计算环境内操作虚拟蜂窝网络的方法。例如,虚拟化分组网关(例如,服务和/或分组网关)可以在云计算环境内运行的虚拟机上实施,并处理用于蜂窝网络的数据平面网络分组。In any of the examples in this document, methods for operating virtual cellular networks within a cloud computing environment can be provided. For example, a virtualized packet gateway (e.g., a service and/or packet gateway) can be implemented on a virtual machine running within a cloud computing environment and process data plane network packets for cellular networks.

图4是用于在云计算环境中操作虚拟化分组网关以处理用于蜂窝网络的数据平面网络分组的示例方法400的流程图。例如,示例方法400可以通过虚拟化分组网关160中的一个虚拟化分组网关或通过SPGW-U 260中的一个SPGW-U执行。Figure 4 is a flowchart of an example method 400 for operating a virtualized packet gateway in a cloud computing environment to process data plane network packets for cellular networks. For example, example method 400 can be executed by one of the virtualized packet gateways 160 or by one of the SPGW-Us 260.

在410处,接收外部键值存储的完整副本。外部键值存储包括蜂窝网络的所有当前承载的承载详细信息(例如,使用在云计算环境内实施的蜂窝网络的所有当前承载)。承载详细信息限定与使用蜂窝网络的用户设备相关联的网络流。例如,外部键值存储可以是键值存储170或键值存储270。在420处,将在410接收到的外部键值存储的完整副本保存在本地高速缓存中。At 410, a complete copy of the external key-value store is received. The external key-value store includes bearer details for all current bearers of the cellular network (e.g., all current bearers of a cellular network implemented within a cloud computing environment). The bearer details define the network flows associated with user equipment using the cellular network. For example, the external key-value store could be key-value store 170 or key-value store 270. At 420, the complete copy of the external key-value store received at 410 is stored in a local cache.

在430处,从负载均衡器接收数据平面网络分组。例如,负载均衡器可以基于因特网协议(IP)报头信息而不是基于封装的分组信息(例如,不基于隧道标识符或TEID)来引导网络分组。At 430, data plane network packets are received from the load balancer. For example, the load balancer may guide network packets based on Internet Protocol (IP) header information rather than on encapsulated packet information (e.g., not based on tunnel identifiers or TEIDs).

在440处,由虚拟化分组网关处理数据平面网络分组。该处理包括识别与本地高速缓存中的数据平面网络分组相关联的承载。例如,虚拟化分组网关可以基于封装的网络分组报头信息(例如,TEID)从本地高速缓存中获取承载详细信息,以识别网络流(及其关联的数据平面网络分组)并根据其关联的承载进行管理(例如,设置网络比特率、QoS参数等)。At 440, data plane network packets are processed by a virtualized packet gateway. This processing includes identifying the bearers associated with the data plane network packets in the local cache. For example, the virtualized packet gateway can retrieve bearer details from the local cache based on the encapsulated network packet header information (e.g., TEID) to identify network flows (and their associated data plane network packets) and manage them according to their associated bearers (e.g., setting network bit rates, QoS parameters, etc.).

在一些实现方案中,在扩展事件期间执行示例方法400,在扩展事件中,在云计算环境内的虚拟机上实例化虚拟化分组网关。例如,在虚拟化分组网关启动并运行并且将键值存储的完整副本保存在其本地高速缓存中时,其可以指示负载均衡器(例如,从中发出信号或响应其通信)已准备好接收数据平面网络分组。作为响应,负载均衡器可以开始将网络业务引导到虚拟化分组网关。In some implementations, example method 400 is executed during an extended event, in which a virtualized packet gateway is instantiated on a virtual machine within the cloud computing environment. For example, when the virtualized packet gateway starts up and runs, and maintains a complete copy of the key-value store in its local cache, it can instruct the load balancer (e.g., from which it signals or responds to its communication) that it is ready to receive data plane network packets. In response, the load balancer can begin routing network traffic to the virtualized packet gateway.

在虚拟化分组网关启动并运行并处理数据平面网络分组之后(例如,如440所示),虚拟化分组网关可以接收与不在其本地高速缓存中的新的承载相关联的新数据平面网络分组。当发生这种情况时,虚拟化分组网关可以从外部键值存储中获取新的承载的承载详细信息,将承载详细信息存储在其本地高速缓存中,并至少部分基于新的承载的承载详细信息来处理新的数据平面网络分组。虚拟化分组网关还可以在外部键值存储中将其自身注册为新的承载的所有者。After the virtualized packet gateway starts up, runs, and processes data plane network packets (e.g., as shown in 440), it can receive new data plane network packets associated with new bearers not in its local cache. When this happens, the virtualized packet gateway can retrieve the bearer details of the new bearer from an external key-value store, store the bearer details in its local cache, and process the new data plane network packets based at least in part on the bearer details of the new bearer. The virtualized packet gateway can also register itself as the owner of the new bearer in the external key-value store.

在一些实现方案中,虚拟化分组网关跟踪它上次为虚拟化分组网关的本地高速缓存中的针对每个承载数据平面网络分组被处理的时间。例如,当虚拟化分组网关处理用于承载的分组时,其可以与承载相关联地在其本地高速缓存中记录定时信息(例如,时间戳或其他定时信息)。虚拟化分组网关可以使用记录的定时信息,以从虚拟化分组网关的本地高速缓存中清除承载。尽管示例方法400允许虚拟化分组网关利用外部键值存储的完整副本以有效方式开始操作,但是虚拟化分组网关将不使用键值存储中的许多承载(例如,负载均衡器将它们引导到其他虚拟化分组网关)。因此,如果数据平面网络分组在一段时间内未被虚拟化分组网关处理(例如,如果分组未在阈值时间段内得到处理),则虚拟化分组网关可以将分组从虚拟化分组网关的本地高速缓存中删除,这可以节省本地存储资源。In some implementations, the virtualized packet gateway tracks when it was last processed for each bearer data plane network packet in its local cache. For example, when the virtualized packet gateway processes a packet for a bearer, it may record timing information (e.g., timestamps or other timing information) associated with the bearer in its local cache. The virtualized packet gateway can use the recorded timing information to purge bearers from its local cache. Although example method 400 allows the virtualized packet gateway to start operations efficiently using a complete copy of an external key-value store, the virtualized packet gateway will not use many bearers in the key-value store (e.g., load balancers will route them to other virtualized packet gateways). Therefore, if a data plane network packet is not processed by the virtualized packet gateway for a period of time (e.g., if the packet is not processed within a threshold time period), the virtualized packet gateway can remove the packet from its local cache, which can save local storage resources.

图5是用于在云计算环境中操作虚拟化分组网关以处理用于蜂窝网络的数据平面网络分组的示例方法500的流程图。例如,示例方法500可以通过虚拟化分组网关160中的一个虚拟化分组网关或通过SPGW-U 260中的一个SPGW-U执行。Figure 5 is a flowchart of an example method 500 for operating a virtualized packet gateway in a cloud computing environment to process data plane network packets for cellular networks. For example, example method 500 can be executed by one of the virtualized packet gateways 160 or by one of the SPGW-Us 260.

在510处,通过虚拟化分组网关接收与第一承载相关联的第一数据平面网络分组。例如,可以在网络流开始时从负载均衡器接收第一数据平面网络分组。At point 510, a first data plane network packet associated with the first bearer is received via a virtualized packet gateway. For example, the first data plane network packet can be received from a load balancer at the start of a network flow.

在520处,响应于确定第一承载不在虚拟化分组网关的本地高速缓存中,从外部键值存储中取回第一承载的承载详细信息。取回的第一承载的承载详细信息被存储在虚拟化分组网关处的本地高速缓存中(例如,本地键值存储中)。例如,外部键值存储可以是键值存储170或键值存储270。At 520, in response to determining that the first bearer is not in the local cache of the virtualized packet gateway, the bearer details of the first bearer are retrieved from an external key-value store. The retrieved bearer details of the first bearer are stored in the local cache at the virtualized packet gateway (e.g., in a local key-value store). For example, the external key-value store could be key-value store 170 or key-value store 270.

在530处,至少部分地基于本地存储的第一承载详细信息(存储在本地高速缓存中)来处理第一数据平面网络分组。At point 530, the first data plane network packets are processed at least in part based on the first bearer details stored locally (stored in the local cache).

在540处,接收到指示第一承载已经被更新的通信。例如,可以从MME或从蜂窝网络的另一组件(例如,从管理控制平面的虚拟化分组网关)接收通信。该通信可以是网络控制消息。At point 540, communication indicating that the first bearer has been updated is received. This communication can be received, for example, from the MME or from another component of the cellular network (e.g., from a virtualized packet gateway in the management control plane). This communication can be a network control message.

在550处,响应于指示第一承载已经被更新的通信,第一承载的更新的承载详细信息从外部键值存储中获取,并存储在本地高速缓存中。例如,可以更新第一承载,以反映不同的下载比特率(例如,基于用户超过其每月限制)。At 550, in response to a communication indicating that the first bearer has been updated, the updated bearer details of the first bearer are retrieved from an external key-value store and stored in a local cache. For example, the first bearer can be updated to reflect a different download bit rate (e.g., based on a user exceeding their monthly limit).

在560处,通过虚拟化分组网关接收与第一承载相关联的第二数据平面网络分组。第二数据平面网络分组是从负载均衡器接收的后续网络分组,其作为与第一数据平面网络分组相同的网络流的一部分。At 560, a second data plane network packet associated with the first bearer is received via a virtualized packet gateway. The second data plane network packet is a subsequent network packet received from the load balancer, which is part of the same network flow as the first data plane network packet.

在570处,至少部分地基于本地存储的第一承载的更新承载详细信息来处理第二数据平面网络分组。At point 570, the second data plane network packets are processed at least in part based on the updated bearer details of the first bearer stored locally.

在一些实现方案中,可以在云计算环境内实施以下组件中的一个或多个,以处理数据平面网络分组。组件可以执行以下操作和/或其他操作中的一项或多项。例如,可以经由计算机可执行指令将虚拟化分组网关配置为将针对承载的承载详细信息存储在本地键值存储中,其中承载详细信息从外部键值存储中获取,对通过虚拟化分组网关在外部键值存储中服务的承载的所有权进行注册,并至少部分地基于存储在本地键值存储中的承载详细信息来处理网络分组。可以经由计算机可执行指令将移动管理实体配置为在外部键值存储中设置承载,为外部键值存储中的承载更新承载详细信息,并将更新的承载详细信息通知虚拟化分组网关。外部键值存储可以经由计算机可执行指令被配置为存储蜂窝网络的当前承载的承载详细信息,并存储指示虚拟化分组网关和承载之间的所有权关系的所有权信息。In some implementations, one or more of the following components can be implemented within a cloud computing environment to process data plane network packets. The components can perform one or more of the following operations: For example, a virtualized packet gateway can be configured via computer-executable instructions to store bearer details for a bearer in a local key-value store, wherein the bearer details are obtained from an external key-value store, to register ownership of bearers served by the virtualized packet gateway in the external key-value store, and to process network packets based at least in part on the bearer details stored in the local key-value store. A mobility management entity can be configured via computer-executable instructions to set up bearers in the external key-value store, update bearer details for bearers in the external key-value store, and notify the virtualized packet gateway of the updated bearer details. The external key-value store can be configured via computer-executable instructions to store bearer details of current bearers in the cellular network and to store ownership information indicating the ownership relationship between the virtualized packet gateway and the bearers.

示例承载建立Example Host Establishment

该部分示出了如何使用本文中描述的技术在LTE蜂窝网络的特定实现方案中建立承载。为了说明差异,首先针对传统的LTE系统描述承载建立顺序,然后针对本文中描述的技术进行描述。This section illustrates how to establish bearers in specific implementations of LTE cellular networks using the techniques described herein. To illustrate the differences, the bearer establishment sequence is first described for conventional LTE systems, followed by a description of the techniques described herein.

以下顺序说明了传统的承载建立(不使用云计算环境)和对第一用户平面数据业务的处理:The following sequence illustrates the traditional bearer setup (without using a cloud computing environment) and the processing of first-user plane data services:

-UE/eNodeB发送MME承载建立请求(控制平面消息)。- The UE/eNodeB sends an MME bearer establishment request (control plane message).

-MME将承载建立请求发送到SPGW。- The MME sends the bearer establishment request to the SPGW.

-SPGW存储来自建立请求的承载详细信息。-SPGW stores bearer details from the setup request.

-SPGW响应MME,表示承载建立完成。-The SPGW responds to the MME, indicating that the bearer establishment is complete.

-然后,如果首先是上行链路数据:- Then, if the first data is uplink data:

-SPGW从eNodeB接收用户平面分组。-SPGW receives user plane packets from eNodeB.

-SPGW解封装用户平面分组,并转发到目标公共数据网络(PDN)。-SPGW decapsulates user plane packets and forwards them to the target Public Data Network (PDN).

-SPGW从PDN接收用户平面分组。-SPGW receives user plane packets from PDN.

-SPGW查找目标IP地址,并从上面存储的承载详细信息中找到与UE IP地址匹配的地址。如果分组与来自承载详细信息的流量模板(TFT)相匹配,则使用来自承载详细信息的eNodeB TEID封装分组。The SPGW locates the target IP address and finds the address that matches the UE's IP address from the bearer details stored above. If the packet matches the traffic template (TFT) from the bearer details, the packet is encapsulated using the eNodeB TEID from the bearer details.

-SPGW将封装的分组转发到eNodeB。-SPGW forwards the encapsulated packets to the eNodeB.

-或者,如果首先是下行链路数据:- Alternatively, if the data is primarily downlink data:

-SPGW从目标PDN接收用户平面分组。-SPGW receives user plane packets from the target PDN.

-SPGW查找目标IP地址,找到匹配项,然后继续进行上行链路操作。-SPGW searches for the target IP address, finds a match, and then continues the uplink operation.

使用本文中的技术,其中使用外部键值存储(也称为共享键值存储)在云计算环境内实施虚拟化分组网关(例如,SPGW-C和/或SPGW-U),其顺序如下:Using the techniques described in this article, where an external key-value store (also known as a shared key-value store) is used to implement a virtualized packet gateway (e.g., SPGW-C and/or SPGW-U) within a cloud computing environment, the sequence is as follows:

-eNodeB发送MME承载建立请求(控制平面消息)。-eNodeB sends an MME bearer establishment request (control plane message).

-MME将承载建立请求发送到SPGW-C负载均衡器。-MME sends the bearer setup request to the SPGW-C load balancer.

-例如,负载均衡器将请求转发到SPGW-C1(实例1)。- For example, the load balancer forwards requests to SPGW-C1 (Instance 1).

-SPGW-C1在共享键值存储中存储UE IP地址、TEID(SPGW和eNodeB值两者)以及eNodeB的IP。The SPGW-C1 stores the UE IP address, TEID (both SPGW and eNodeB values), and eNodeB IP in a shared key-value store.

-SPGW-C1响应MME,表示承载建立已完成。The SPGW-C1 response to the MME indicates that the bearer establishment has been completed.

-eNodeB将用户平面分组发送到SPGW-U负载均衡器。-eNodeB sends user plane packets to the SPGW-U load balancer.

-例如,负载均衡器将用户平面分组转发到SPGW-U2(实例2)。- For example, the load balancer forwards user plane packets to SPGW-U2 (Instance 2).

-然后,如果首先是上行链路数据:- Then, if the first data is uplink data:

-SPGW-U2从eNodeB接收用户平面分组。-SPGW-U2 receives user plane packets from the eNodeB.

-SPGW-U2从共享键值存储中的分组中查找TEID。获取eNodeB的TEID作为响应。-SPGW-U2 looks up the TEID from the packets in the shared key-value store. It then retrieves the eNodeB's TEID as a response.

-SPGW-U2将其IP地址作为此网络流的“高速缓存所有者”写入共享的键值存储。The SPGW-U2 writes its IP address as the "cache owner" for this network flow to a shared key-value store.

-SPGW-U2将UE IP地址、TEID(SPGW和eNodeB值两者)以及eNodeB的IP写入本地高速缓存。The SPGW-U2 writes the UE IP address, TEID (both SPGW and eNodeB values), and eNodeB IP address into the local cache.

-SPGW-U2解封装用户平面分组并转发到目标PDN。-SPGW-U2 decapsulates user plane packets and forwards them to the target PDN.

-SPGW-U2从PDN接收用户平面分组。-SPGW-U2 receives user plane packets from the PDN.

-SPGW-U2在其本地高速缓存中查找目标IP地址,并从上面存储的承载详细信息中发现目标IP地址与UE IP地址匹配。如果分组与来自承载详细信息的TFT匹配,则使用来自承载详细信息的eNodeB TEID封装分组。The SPGW-U2 looks up the target IP address in its local cache and finds a match between the target IP address and the UE IP address from the bearer details stored above. If the packet matches the TFT from the bearer details, the packet is encapsulated using the eNodeB TEID from the bearer details.

-SPGW-U2将封装的分组转发到eNodeB。-SPGW-U2 forwards the encapsulated packets to the eNodeB.

-或者,如果首先是下行链路数据:- Alternatively, if the data is primarily downlink data:

-SPGW-U负载均衡器从目标PDN接收用户平面分组。The SPGW-U load balancer receives user plane packets from the target PDN.

-负载均衡器转发到SPGW-U2。- The load balancer forwards the data to SPGW-U2.

-SPGW-U2在本地高速缓存中查找承载详细信息的。未找到匹配项。-SPGW-U2 is searching for bearer details in its local cache. No match found.

-SPGW-U2在共享键值存储中查找UE IP地址。获取承载详细信息以作为响应。写入本地高速缓存。The SPGW-U2 looks up the UE IP address in the shared key-value store. It retrieves bearer details as a response and writes them to its local cache.

-SPGW-U2作为此流的“高速缓存所有者”写入共享的键值存储的IP地址。-SPGW-U2, acting as the "cache owner" of this stream, writes to the IP address of the shared key-value store.

-SPGW-U2将封装的分组转发到eNodeB。-SPGW-U2 forwards the encapsulated packets to the eNodeB.

-SPGW-U2从eNodeB接收用户平面分组,解封装并转发到目标PDN。The SPGW-U2 receives user plane packets from the eNodeB, decapsulates them, and forwards them to the target PDN.

计算系统Computing System

图6描绘了其中可以实施所描述的技术的适合的计算系统600的一般示例。由于可以在各种通用或专用计算系统中实施该技术,因此计算系统600无意于暗示对使用或功能范围的任何限制。Figure 6 depicts a general example of a suitable computing system 600 in which the described techniques can be implemented. Since the techniques can be implemented in a variety of general-purpose or special-purpose computing systems, computing system 600 is not intended to imply any limitation on its use or scope of function.

参考图6,计算系统600包括一个或多个处理单元610、615和存储器620、625。在图6中,该基本配置630包括在虚线内。处理单元610、615执行计算机可执行指令。处理单元可以是通用中央处理单元(CPU)、专用集成电路(ASIC)中的处理器或任何其他类型的处理器。处理单元还可以包括多个处理器。在多处理系统中,多个处理单元执行计算机可执行指令,以增加处理能力。例如,图6示出了中央处理单元610以及图形处理单元或协同处理单元615。有形存储器620、625可以是可由处理单元访问的易失性存储器(例如,寄存器、高速缓存、RAM)、非易失性存储器(例如ROM、EEPROM、闪存等)或两者的某种组合。存储器620、625以适于由处理单元执行的计算机可执行指令的形式存储实施本文中描述的一个或多个技术的软件680。Referring to Figure 6, computing system 600 includes one or more processing units 610, 615 and memories 620, 625. In Figure 6, this basic configuration 630 is included within the dashed lines. Processing units 610, 615 execute computer-executable instructions. The processing units may be general-purpose central processing units (CPUs), processors in application-specific integrated circuits (ASICs), or any other type of processor. Processing units may also include multiple processors. In a multiprocessing system, multiple processing units execute computer-executable instructions to increase processing power. For example, Figure 6 illustrates a central processing unit 610 and a graphics processing unit or coprocessor unit 615. Tangible memories 620, 625 may be volatile memories (e.g., registers, caches, RAM), non-volatile memories (e.g., ROM, EEPROM, flash memory, etc.) accessible by the processing units, or some combination of both. Memories 620, 625 store software 680 implementing one or more technologies described herein in the form of computer-executable instructions suitable for execution by the processing units.

计算系统可以具有附加特征。例如,计算系统600包括储存器640、一个或多个输入装置650、一个或多个输出装置660以及一个或多个通信连接670。诸如总线、控制器或网络的互连机制(未示出)互连计算系统600的组件。通常,操作系统软件(未示出)为在计算系统600中执行的其他软件提供操作环境,并协调计算系统600的组件的活动。The computing system may have additional features. For example, computing system 600 includes memory 640, one or more input devices 650, one or more output devices 660, and one or more communication connections 670. Interconnection mechanisms (not shown), such as buses, controllers, or networks, interconnect the components of computing system 600. Typically, operating system software (not shown) provides an operating environment for other software executing in computing system 600 and coordinates the activities of the components of computing system 600.

有形存储器640可以是可移动的或不可移动的,并且包括磁盘、磁带或盒带、CD-ROM、DVD或可用于存储信息并且可在计算系统600内访问的任何其他介质。存储器640存储用于实施本文中描述的一个或多个技术的软件680的指令。The physical memory 640 may be removable or non-removable and includes a magnetic disk, magnetic tape or cassette, CD-ROM, DVD, or any other medium that can be used to store information and is accessible within the computing system 600. The memory 640 stores instructions for implementing software 680 that carries out one or more of the technologies described herein.

输入装置650可以是诸如键盘、鼠标、笔或轨迹球的触摸输入装置、语音输入装置、扫描装置或向计算系统600提供输入的另一装置。对于视频编码,输入装置650可以是相机、视频卡、TV调谐器卡或接受模拟或数字形式的视频输入的类似装置,或者将视频样本读入计算系统600的CD-ROM或CD-RW。输出装置660可以是显示器、打印机、扬声器、CD刻录机或提供从计算系统600的输出的其他装置。Input device 650 may be a touch input device such as a keyboard, mouse, pen, or trackball, a voice input device, a scanning device, or another device that provides input to computing system 600. For video encoding, input device 650 may be a camera, video card, TV tuner card, or a similar device that accepts video input in analog or digital form, or reads video samples into the CD-ROM or CD-RW of computing system 600. Output device 660 may be a monitor, printer, speaker, CD burner, or other device that provides output from computing system 600.

通信连接670使得能够通过通信介质与另一计算实体进行通信。通信介质传送诸如计算机可执行指令、音频或视频输入或输出或调制数据信号中的其他数据的信息。调制数据信号是这样的信号:其特征的一个或多个以将信息编码在该信号中这样的方式设置或改变。作为示例而非限制,通信介质可以使用电、光、RF或其他载体。Communication connection 670 enables communication with another computing entity via a communication medium. The communication medium transmits information such as computer-executable instructions, audio or video input or output, or other data in modulated data signals. A modulated data signal is a signal whose characteristics are set or altered in such a way that information is encoded in that signal. By way of example and not limitation, the communication medium may be electrical, optical, RF, or other carriers.

可以在诸如包括在程序模块中的计算机可执行指令的一般上下文中描述该技术,计算机可执行指令在目标真实或虚拟处理器上的计算系统中执行。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、库、对象、类、组件、数据结构等。在各个实施例中,程序模块的功能可以在程序模块之间组合或分割。用于程序模块的计算机可执行指令可以在本地或分布式计算系统内执行。This technology can be described in the general context of computer-executable instructions included in a program module, which execute on a computing system on a target real or virtual processor. Typically, a program module includes routines, programs, libraries, objects, classes, components, data structures, etc., that perform a specific task or implement a specific abstract data type. In various embodiments, the functionality of a program module can be combined or divided among program modules. The computer-executable instructions for a program module can execute within a local or distributed computing system.

术语“系统”和“装置”在本文中可互换使用。除非上下文另外明确指出,否则两个术语均不暗示对计算系统或计算设备的类型的任何限制。通常,计算系统或计算设备可以是本地的或分布式的,并且可以包括专用硬件和/或通用硬件与实施本文中功能的软件的任意组合。The terms “system” and “device” are used interchangeably herein. Neither term implies any limitation on the type of computing system or computing device unless the context clearly indicates otherwise. Generally, a computing system or computing device can be local or distributed and can include any combination of dedicated hardware and/or general-purpose hardware with software that implements the functions described herein.

为了呈现方便,详细描述使用诸如“确定”和“使用”的术语来描述计算系统中的计算机操作。这些术语是通过计算机执行的操作的高级抽象,不应与人类执行的操作相混淆。与这些术语相对应的实际计算机操作取决于实现方案。For ease of presentation, detailed descriptions use terms such as "determine" and "use" to describe computer operations in a computing system. These terms are high-level abstractions of operations performed by a computer and should not be confused with operations performed by humans. The actual computer operations corresponding to these terms depend on the implementation scheme.

移动装置mobile devices

图7是描绘示例移动装置700的系统图,示例移动装置包括在702处总体示出的各种可选硬件和软件组件。尽管为了便于说明,未示出所有连接,但是移动装置中的任何组件702都可以与任何其他组件进行通信。移动装置可以是多种计算设备中的任何一种(例如,手机、智能手机、手持计算机、个人数字助理(PDA)等),并且可以允许与诸如蜂窝网络、卫星网络或其他网络的一个或多个移动通信网络704进行无线双向通信。Figure 7 is a system diagram depicting an example mobile device 700, which includes various optional hardware and software components generally shown at 702. Although not all connections are shown for ease of illustration, any component 702 of the mobile device can communicate with any other component. The mobile device can be any of a variety of computing devices (e.g., mobile phone, smartphone, handheld computer, personal digital assistant (PDA), etc.) and can allow for two-way wireless communication with one or more mobile communication networks 704, such as cellular networks, satellite networks, or other networks.

例如,示例移动装置700可以是使用蜂窝网络(例如,移动通信网络704)的用户设备装置(例如,用户设备120、122、220或222)。示例移动装置700可以经由无线调制解调器760与蜂窝网络通信。For example, the example mobile device 700 may be a user equipment device (e.g., user equipment 120, 122, 220, or 222) using a cellular network (e.g., mobile communication network 704). The example mobile device 700 may communicate with the cellular network via a wireless modem 760.

示出的移动装置700可以包括用于执行诸如信号编码、数据处理、输入/输出处理、电源控制和/或其他功能的任务的控制器或处理器710(例如,信号处理器、微处理器、ASIC或其他控制和处理逻辑电路)。操作系统712可以控制组件702的分配和使用并支持一个或多个应用程序714。应用程序可以包括常见的移动计算应用程序(例如,电子邮件应用程序、日历、联系人管理器、网站浏览器、消息传递应用程序)或任何其他计算应用程序。用于访问应用商店的功能713也可以用于获取和更新应用程序714。The illustrated mobile device 700 may include a controller or processor 710 (e.g., a signal processor, microprocessor, ASIC, or other control and processing logic circuitry) for performing tasks such as signal encoding, data processing, input/output processing, power control, and/or other functions. An operating system 712 may control the allocation and use of component 702 and support one or more applications 714. Applications may include common mobile computing applications (e.g., email applications, calendars, contact managers, web browsers, messaging applications) or any other computing application. A function 713 for accessing an app store may also be used to obtain and update applications 714.

所示的移动装置700可以包括存储器720。存储器720可以包括不可移除存储器722和/或可移除存储器724。不可移除存储器722可以包括RAM、ROM、闪存、硬盘或其他公知的内存存储技术。可移除存储器724可以包括在GSM通信系统中众所周知的闪存或订户身份模块(SIM)卡,或者包括诸如“智能卡”的其他公知的内存存储技术。存储器720可以用于存储用于运行操作系统712和应用程序714的数据和/或代码。示例数据可以包括网页、文本、图像、声音文件、视频数据或待经由一个或多个有线或无线网络发送给一个或多个网络服务器和/或从一个或多个网络服务器接收的其他数据集。存储器720可以用于存储诸如国际移动订户身份(IMSI)的订户标识符以及诸如国际移动设备标识符(IMEI)的设备标识符。这样的标识符可以被发送到网络服务器,以识别用户和设备。The illustrated mobile device 700 may include a memory 720. The memory 720 may include non-removable memory 722 and/or removable memory 724. Non-removable memory 722 may include RAM, ROM, flash memory, hard disk, or other known memory storage technologies. Removable memory 724 may include flash memory or a subscriber identity module (SIM) card, well-known in GSM communication systems, or other known memory storage technologies such as a "smart card." The memory 720 may be used to store data and/or code for running an operating system 712 and applications 714. Example data may include web pages, text, images, sound files, video data, or other datasets to be sent to or received from one or more network servers via one or more wired or wireless networks. The memory 720 may be used to store subscriber identifiers such as International Mobile Subscriber Identity (IMSI) and device identifiers such as International Mobile Equipment Identity (IMEI). Such identifiers may be sent to network servers to identify users and devices.

移动装置700可以支持诸如触摸屏732、麦克风734、相机736、物理键盘738和/或轨迹球740的一个或多个输入装置730以及诸如扬声器752和显示器754的一个或多个输出装置750。其他可能的输出装置(未示出)可以包括压电或其他触觉输出装置。某些装置可以提供多于一个的输入/输出功能。例如,触摸屏732和显示器754可以被组合在单个输入/输出装置中。Mobile device 700 may support one or more input devices 730 such as touchscreen 732, microphone 734, camera 736, physical keyboard 738 and/or trackball 740, and one or more output devices 750 such as speaker 752 and display 754. Other possible output devices (not shown) may include piezoelectric or other haptic output devices. Some devices may provide more than one input/output function. For example, touchscreen 732 and display 754 may be combined into a single input/output device.

输入装置730可以包括自然用户界面(NUI)。NUI是使用户能够以“自然”方式与装置进行交互而不受诸如鼠标、键盘、遥控器等输入装置施加的人为约束的任何界面技术。NUI方法的示例包括依赖于语音识别、触摸和手写笔识别、屏幕上以及与屏幕相邻的手势识别、空中手势、头部和眼睛跟踪、语音和语音、视觉、触摸、手势和机器智能的方法。NUI的其他示例包括使用加速度计/陀螺仪进行运动手势检测、面部识别、3D显示、头部、眼睛和凝视跟踪、沉浸式增强现实和虚拟现实系统,所有这些都提供更自然的界面以及用于使用电场感应电极(EEG和相关方法)感应大脑活动的技术。因此,在一个特定示例中,操作系统712或应用程序714可以包括语音识别软件,作为语音用户界面的一部分,语音用户界面允许用户经由语音命令来操作装置700。此外,装置700可以包括输入装置和软件,输入装置和软件允许经由用户的空间手势进行用户交互,诸如检测和解释手势以向游戏应用程序提供输入。Input device 730 may include a Natural User Interface (NUI). An NUI is any interface technology that enables a user to interact with a device in a “natural” manner, free from the artificial constraints imposed by input devices such as a mouse, keyboard, or remote control. Examples of NUI methods include those relying on speech recognition, touch and stylus recognition, on-screen and adjacent gesture recognition, air gestures, head and eye tracking, speech and voice, vision, touch, gestures, and machine intelligence. Other examples of NUIs include motion gesture detection using accelerometers/gyroscopes, facial recognition, 3D displays, head, eye, and gaze tracking, immersive augmented reality and virtual reality systems, all of which provide a more natural interface, as well as technologies for sensing brain activity using electric field-sensing electrodes (EEG and related methods). Thus, in a particular example, operating system 712 or application 714 may include speech recognition software as part of a voice user interface that allows the user to operate device 700 via voice commands. Furthermore, device 700 may include input devices and software that allow user interaction via spatial gestures, such as detecting and interpreting gestures to provide input to a game application.

如本领域中公知的,无线调制解调器760可以耦合到天线(未示出),并且可以支持处理器710与外部装置之间的双向通信。调制解调器760一般性地示出,并且可以包括用于与移动通信网络704和/或其他基于无线电的调制解调器(例如,蓝牙764或Wi-Fi 762)进行通信的蜂窝调制解调器。无线调制解调器760通常被配置为与诸如用于单个蜂窝网络内的蜂窝网络之间或者移动装置与公共交换电话网络(PSTN)之间的数据和语音通信的GSM网络的一个或多个蜂窝网络通信。As is known in the art, the wireless modem 760 may be coupled to an antenna (not shown) and may support bidirectional communication between the processor 710 and an external device. The modem 760 is generally shown and may include a cellular modem for communicating with a mobile communication network 704 and/or other radio-based modems (e.g., Bluetooth 764 or Wi-Fi 762). The wireless modem 760 is typically configured to communicate with one or more cellular networks, such as a GSM network for data and voice communication between cellular networks within a single cellular network or between a mobile device and the Public Switched Telephone Network (PSTN).

移动装置可以进一步包括至少一个输入/输出端口780、电源782、诸如全球定位系统(GPS)接收器的卫星导航系统接收器784、加速度计786和/或可以是USB端口的物理连接器790、IEEE 1394(FireWire)端口和/或RS-232端口。所示的组件702不是必需的或者是全部包含的,因此可以删除任何组件并且可以添加其他组件。The mobile device may further include at least one input/output port 780, a power supply 782, a satellite navigation system receiver 784 such as a Global Positioning System (GPS) receiver, an accelerometer 786, and/or a physical connector 790 that may be a USB port, an IEEE 1394 (FireWire) port, and/or an RS-232 port. The components 702 shown are not required or all included; therefore, any component can be removed and other components can be added.

云支持环境Cloud Support Environment

图8示出了可以在其中实施所描述的实施例、方法和技术的适合的云支持环境800的一般示例。在示例环境800中,通过云810提供各种类型的服务(例如,计算服务)。例如,云810可以包括计算设备的集合,计算设备可以位于中央或分布在其上,从而经由诸如因特网的网络为各种类型的用户和装置提供基于云的服务。实施环境800可以以不同的方式用于完成计算任务。例如,一些任务(例如,处理用户输入并呈现用户界面)可以在本地计算设备(例如,连接的装置830、840、850)上执行,而其他任务(例如,存储在后续处理中使用的数据)可以在云810中执行。Figure 8 illustrates a general example of a suitable cloud-supported environment 800 in which the described embodiments, methods, and techniques can be implemented. In the example environment 800, various types of services (e.g., computing services) are provided via a cloud 810. For example, the cloud 810 may include a collection of computing devices, which may be centrally located or distributed thereon, thereby providing cloud-based services to various types of users and devices via a network such as the Internet. The implementation environment 800 can be used in different ways to perform computing tasks. For example, some tasks (e.g., processing user input and presenting a user interface) may be performed on local computing devices (e.g., connected devices 830, 840, 850), while other tasks (e.g., storing data for use in subsequent processing) may be performed in the cloud 810.

在示例环境800中,云810为具有各种屏幕功能的连接的装置830、840、850提供服务。连接的装置830表示具有计算机屏幕835(例如,中型屏幕)的装置。例如,连接的装置830可以是诸如台式计算机、膝上型计算机、笔记本计算机、上网本等的个人计算机。连接的装置840表示具有移动装置屏幕845(例如,小尺寸屏幕)的装置。例如,连接的装置840可以是移动电话、智能电话、个人数字助理、平板计算机等。连接的装置850表示具有大屏幕855的装置。例如,连接的装置850可以是电视屏幕(例如,智能电视)或连接到电视的另一装置(例如,机顶盒或游戏机)或类似物。连接的装置830、840、850中的一个或多个可以包括触摸屏功能。触摸屏可以接受不同方式的输入。例如,当物体(例如,指尖或触控笔)扭曲或中断在表面上流动的电流时,电容式触摸屏会检测到触摸输入。作为另一示例,当来自光学传感器的光束被中断时,触摸屏可以使用光学传感器来检测触摸输入。对于某些触摸屏检测到的输入,不需要与屏幕表面进行物理接触。也可以在示例环境800中使用没有屏幕能力的装置。例如,云810可以为一个或多个没有显示器的计算机(例如,服务器计算机)提供服务。In example environment 800, cloud 810 provides services to connected devices 830, 840, and 850 with various screen functionalities. Connected device 830 represents a device with a computer screen 835 (e.g., a medium-sized screen). For example, connected device 830 can be a personal computer such as a desktop computer, laptop computer, notebook computer, netbook, etc. Connected device 840 represents a device with a mobile device screen 845 (e.g., a small-sized screen). For example, connected device 840 can be a mobile phone, smartphone, personal digital assistant, tablet computer, etc. Connected device 850 represents a device with a large screen 855. For example, connected device 850 can be a television screen (e.g., a smart TV) or another device connected to a television (e.g., a set-top box or game console) or the like. One or more of connected devices 830, 840, and 850 may include touchscreen functionality. Touchscreens can accept input in various ways. For example, a capacitive touchscreen detects touch input when an object (e.g., a fingertip or stylus) twists or interrupts the current flowing on its surface. As another example, a touchscreen can use an optical sensor to detect touch input when the light beam from the optical sensor is interrupted. For some inputs detected by a touchscreen, physical contact with the screen surface is not required. Devices without screen capabilities can also be used in example environment 800. For example, cloud 810 can provide services to one or more computers without displays (e.g., server computers).

服务可以由云810通过服务供应商820或通过其他在线服务供应商(未示出)提供。例如,可以针对特定连接的装置(例如,连接的装置830、840、850)的屏幕尺寸、显示能力和/或触摸屏能力来定制云服务。The service can be provided by the cloud 810 through service provider 820 or through other online service providers (not shown). For example, the cloud service can be customized for the screen size, display capabilities, and/or touchscreen capabilities of a specific connected device (e.g., connected devices 830, 840, 850).

在示例环境800中,云810至少部分地使用服务供应商820将本文中的技术和解决方案提供给各种连接的装置830、840、850。例如,服务供应商820可以提供用于各种基于云的服务的集中式解决方案。服务供应商820可以管理用户和/或装置(例如,连接的装置830、840、850和/或它们各自的用户)的服务订阅。In example environment 800, cloud 810 utilizes service provider 820 at least in part to provide the technologies and solutions described herein to various connected devices 830, 840, and 850. For example, service provider 820 may provide centralized solutions for various cloud-based services. Service provider 820 may manage service subscriptions for users and/or devices (e.g., connected devices 830, 840, 850 and/or their respective users).

示例实现方案Example Implementation

尽管为了方便呈现以特定的顺序描述了公开的方法中的一些的操作,但是应该理解,除非以下阐述的特定语言要求特定的顺序,否则这种描述方式包括重新布置。例如,在某些情况下,顺序描述的操作可以重新排列或同时执行。此外,为了简单起见,附图可能未示出可以将所公开的方法与其他方法结合使用的各种方式。Although some operations of the disclosed methods are described in a specific order for ease of presentation, it should be understood that this descriptive approach includes rearrangement unless the specific language used in the following description requires a particular order. For example, in some cases, the operations described in order may be rearranged or performed simultaneously. Furthermore, for simplicity, the accompanying drawings may not show various ways in which the disclosed methods can be combined with other methods.

任何公开的方法可以被实施为存储在一个或多个计算机可读存储介质上并在计算设备(即,包括智能电话或包含计算硬件的其他移动装置的任何可用的计算设备)上执行的计算机可执行指令或计算机程序产品。计算机可读存储介质是可以在计算环境内访问的有形介质(诸如DVD或CD、易失性存储器(诸如DRAM或SRAM)或非易失性存储器(诸如闪存或硬盘驱动器)的一个或多个光盘介质)。作为示例并且参考图6,计算机可读存储介质包括存储器620和625以及存储器640。作为示例并且参考图7,计算机可读存储介质包括内存和存储器720、722、724。术语“计算机可读存储介质”不包括信号和载波。另外,术语“计算机可读存储介质”不包括诸如670、760、762和764的通信连接。Any disclosed method can be implemented as computer-executable instructions or a computer program product stored on one or more computer-readable storage media and executed on a computing device (i.e., any available computing device, including smartphones or other mobile devices containing computing hardware). A computer-readable storage medium is one or more optical disc media (such as DVDs or CDs, volatile memory (such as DRAM or SRAM), or non-volatile memory (such as flash memory or hard disk drives) that can be accessed within a computing environment). As an example and referring to Figure 6, the computer-readable storage medium includes memories 620 and 625 and memory 640. As an example and referring to Figure 7, the computer-readable storage medium includes memory and memories 720, 722, and 724. The term "computer-readable storage medium" does not include signals and carrier waves. Furthermore, the term "computer-readable storage medium" does not include communication connections such as 670, 760, 762, and 764.

用于实施所公开的技术的任何计算机可执行指令以及在所公开的实施例的实施期间创建和使用的任何数据都可以存储在一个或多个计算机可读存储介质上。计算机可执行指令可以是例如专用软件应用程序或经由网站浏览器或其他软件应用程序(诸如远程计算应用程序)访问或下载的软件应用程序的一部分。这样的软件可以例如在单个本地计算机(例如,任何适合的商用计算机)上或在使用一个或多个网络计算机的网络环境中(例如,经由Internet、广域网、局域网、客户端服务器网络(诸如云计算网络)或其他这样的网络)。Any computer-executable instructions used to implement the disclosed technology, and any data created and used during the implementation of the disclosed embodiments, may be stored on one or more computer-readable storage media. The computer-executable instructions may be, for example, part of a dedicated software application or a software application accessed or downloaded via a web browser or other software application (such as a remote computing application). Such software may be, for example, on a single local computer (e.g., any suitable commercial computer) or in a network environment using one or more networked computers (e.g., via the Internet, a wide area network, a local area network, a client-server network (such as a cloud computing network), or other such networks).

为了清楚起见,仅描述了基于软件的实现方案的特定选择方面。省略了本领域公知的其他详细信息。例如,应当理解,所公开的技术不限于任何特定的计算机语言或程序。例如,所公开的技术可以通过用C++、Java、Perl或任何其他适合的编程语言编写的软件来实施。同样,所公开的技术不限于任何特定的计算机或硬件类型。适合的计算机和硬件的特定详细信息是公知的,并且不需要在本公开中详细阐述。For clarity, only specific aspects of the software-based implementation scheme are described. Other details well-known in the art are omitted. For example, it should be understood that the disclosed techniques are not limited to any particular computer language or program. For instance, the disclosed techniques can be implemented using software written in C++, Java, Perl, or any other suitable programming language. Similarly, the disclosed techniques are not limited to any particular computer or hardware type. Specific details regarding suitable computers and hardware are well-known and do not need to be elaborated in this disclosure.

此外,任何基于软件的实施例(例如,包括用于使计算机执行所公开的方法中的任何一个的计算机可执行指令)可以通过适合的通信手段上载、下载或远程访问。这样的适合的通信方式包括例如因特网、万维网、内联网、软件应用程序、电缆(包括光缆)、磁通信、电磁通信(包括RF、微波和红外通信)、电子通信或其他这样的通信方式。Furthermore, any software-based implementation (e.g., including computer-executable instructions for causing a computer to perform any of the disclosed methods) can be uploaded, downloaded, or remotely accessed via suitable communication means. Such suitable communication means include, for example, the Internet, the World Wide Web, intranets, software applications, cable (including optical fiber), magnetic communication, electromagnetic communication (including RF, microwave, and infrared communication), electronic communication, or other such communication means.

所公开的方法、设备和系统不应以任何方式限制解释。相反,本公开仅针对单独的并且以彼此的各种组合和子组合的形式针对各种公开的实施例的所有新颖的和非显而易见的特征和方面。所公开的方法、设备和系统不限于任何特定方面或特征或其组合,所公开的实施例也不要求存在任何一个或多个特定优点或解决问题。The disclosed methods, apparatus, and systems should not be interpreted in a limiting way. Rather, this disclosure is directed only to all novel and non-obvious features and aspects of the various disclosed embodiments, individually and in various combinations and sub-combinations of each other. The disclosed methods, apparatus, and systems are not limited to any particular aspect or feature or combination thereof, nor are the disclosed embodiments required to have any one or more particular advantages or problems solved.

来自任何示例的技术可以与在其他示例中的任何一个或多个中描述的技术结合。鉴于可以应用所公开技术的原理的许多可能的实施例,应当认识到,示出的实施例是所公开技术的示例,并且不应被视为对所公开技术的范围的限制。The techniques from any example can be combined with the techniques described in any one or more of the other examples. Given the many possible embodiments to which the principles of the disclosed techniques can be applied, it should be recognized that the illustrated embodiments are examples of the disclosed techniques and should not be considered as limiting the scope of the disclosed techniques.

Claims (20)

1.一个或多个计算设备,包括:1. One or more computing devices, including: 处理器;和processor; and 存储器;Memory; 所述一个或多个计算设备,经由计算机可执行指令被配置为执行用于在云计算环境中操作虚拟化分组网关以处理针对蜂窝网络的数据平面网络分组的操作,所述操作包括:The one or more computing devices are configured via computer-executable instructions to perform operations for operating a virtualized packet gateway in a cloud computing environment to process data plane network packets for a cellular network, the operations including: 接收外部键值存储的完整副本,其中所述外部键值存储包括针对所述蜂窝网络的所有当前承载的承载详细信息,其中所述承载详细信息限定与使用所述蜂窝网络的用户设备相关联的网络流;Receive a complete copy of an external key-value store, wherein the external key-value store includes bearer details for all current bearers of the cellular network, wherein the bearer details define network flows associated with user equipment using the cellular network; 将所述外部键值存储的所述完整副本保存在本地高速缓存中;The complete copy of the external key-value store is stored in the local cache; 从负载均衡器接收数据平面网络分组;以及Receive data plane network packets from the load balancer; and 由所述虚拟化分组网关处理所述数据平面网络分组,其中所述处理包括标识与所述本地高速缓存中的所述数据平面网络分组相关联的承载。The virtualized packet gateway processes the data plane network packets, wherein the processing includes identifying the bearer associated with the data plane network packets in the local cache. 2.根据权利要求1所述的一个或多个计算设备,其中所述操作在扩展事件期间被执行,在所述扩展事件中,所述虚拟化分组网关在所述云计算环境内被实例化。2. The one or more computing devices of claim 1, wherein the operation is performed during an extended event, in which the virtualized packet gateway is instantiated within the cloud computing environment. 3.根据权利要求1所述的一个或多个计算设备,其中所述虚拟化分组网关是用于数据平面网络分组的服务网关/分组网关SPGW-U,所述SPGW-U在运行于所述云计算环境中的虚拟机上进行操作。3. The computing device according to claim 1, wherein the virtualized packet gateway is a service gateway/packet gateway for data plane network packets, the SPGW-U operating on a virtual machine running in the cloud computing environment. 4.根据权利要求3所述的一个或多个计算设备,其中所述SPGW-U作为电信供应商的长期演进(LTE)蜂窝网络的一部分进行操作。4. The computing device of claim 3, wherein the SPGW-U operates as part of a telecommunications provider’s Long Term Evolution (LTE) cellular network. 5.根据权利要求1所述的一个或多个计算设备,所述操作还包括:5. The computing device of claim 1, further comprising: 从所述负载均衡器接收新的数据平面网络分组,所述新的数据平面网络分组与不存在于所述本地高速缓存中的新的承载相关联;Receive new data plane network packets from the load balancer, the new data plane network packets being associated with new bearers that do not exist in the local cache; 响应于接收到所述新的数据平面网络分组:In response to receiving the new data plane network packet: 从所述外部键值存储中获取针对所述新的承载的承载详细信息;Retrieve detailed bearer information for the new bearer from the external key-value store; 将针对所述新的承载的所述承载详细信息存储在所述本地高速缓存中;以及The detailed bearer information for the new bearer is stored in the local cache; and 至少部分地基于针对所述新的承载的所述承载详细信息来处理所述新的数据平面网络分组。The new data plane network packets are processed at least in part based on the bearer details for the new bearer. 6.根据权利要求5所述的一个或多个计算设备,所述操作还包括:6. The computing device of claim 5, further comprising: 响应于接收到所述新的数据平面网络分组:In response to receiving the new data plane network packet: 在所述外部键值存储中将所述虚拟化分组网关注册为所述新的承载的所有者。The virtualized packet gateway is registered as the owner of the new bearer in the external key-value store. 7.根据权利要求1所述的一个或多个计算设备,其中所述负载均衡器基于因特网协议(IP)报头和用户数据报协议(UDP)或传输控制协议(TCP)端口编号来引导网络分组,而不是基于封装的分组信息来引导网络分组。7. The one or more computing devices of claim 1, wherein the load balancer directs network packets based on Internet Protocol (IP) headers and User Datagram Protocol (UDP) or Transmission Control Protocol (TCP) port numbers, rather than based on encapsulated packet information. 8.根据权利要求1所述的一个或多个计算设备,针对所述本地高速缓存中的一个或多个承载中的每个承载,所述操作还包括:8. The one or more computing devices of claim 1, wherein for each of the one or more bearers in the local cache, the operation further comprises: 在所述本地高速缓存中为所述承载标记数据平面网络分组针对所述承载被最后处理的时间的指示。The local cache marks the data plane network packets for the bearer with an indication of the last time the bearer was processed. 9.根据权利要求8所述的一个或多个计算设备,所述操作还包括:9. The computing device of claim 8, further comprising: 基于数据平面网络分组被最后处理的时间的所述指示从所述本地高速缓存中清除承载。The bearer is cleared from the local cache based on the indication of the last time a data plane network packet was processed. 10.一种由计算设备实现的用于在云计算环境中操作虚拟化分组网关以处理针对蜂窝网络的数据平面网络分组的方法,所述方法包括:10. A method implemented by a computing device for operating a virtualized packet gateway in a cloud computing environment to process data plane network packets for a cellular network, the method comprising: 在所述虚拟化分组网关在所述云计算环境内被实例化的扩展事件期间,由所述虚拟化分组网关:During the extended event where the virtualized packet gateway is instantiated within the cloud computing environment, the virtualized packet gateway: 接收外部键值存储的完整副本,其中所述外部键值存储包括针对所述蜂窝网络的所有当前承载的承载详细信息,其中所述承载详细信息限定与使用所述蜂窝网络的用户设备相关联的网络流;Receive a complete copy of an external key-value store, wherein the external key-value store includes bearer details for all current bearers of the cellular network, wherein the bearer details define network flows associated with user equipment using the cellular network; 将所述外部键值存储的所述完整副本保存在本地高速缓存中;The complete copy of the external key-value store is stored in the local cache; 从负载均衡器接收数据平面网络分组;以及Receive data plane network packets from the load balancer; and 由所述虚拟化分组网关处理所述数据平面网络分组,其中所述处理包括标识与所述本地高速缓存中的所述数据平面网络分组相关联的承载。The virtualized packet gateway processes the data plane network packets, wherein the processing includes identifying the bearer associated with the data plane network packets in the local cache. 11.根据权利要求10所述的方法,还包括:11. The method of claim 10, further comprising: 从所述负载均衡器接收新的数据平面网络分组,所述新的数据平面网络分组与不存在于所述本地高速缓存中的新的承载相关联;Receive new data plane network packets from the load balancer, the new data plane network packets being associated with new bearers that do not exist in the local cache; 响应于接收到所述新的数据平面网络分组:In response to receiving the new data plane network packet: 从所述外部键值存储中获取针对所述新的承载的承载详细信息;Retrieve detailed bearer information for the new bearer from the external key-value store; 将针对所述新的承载的所述承载详细信息存储在所述本地高速缓存中;以及The detailed bearer information for the new bearer is stored in the local cache; and 至少部分地基于针对所述新的承载的所述承载详细信息来处理所述新的数据平面网络分组。The new data plane network packets are processed at least in part based on the bearer details for the new bearer. 12.根据权利要求11所述的方法,还包括:12. The method of claim 11, further comprising: 响应于接收到所述新的数据平面网络分组:In response to receiving the new data plane network packet: 在所述外部键值存储中将所述虚拟化分组网关注册为所述新的承载的所有者。The virtualized packet gateway is registered as the owner of the new bearer in the external key-value store. 13.根据权利要求10所述的方法,其中所述虚拟化分组网关是用于数据平面网络分组的服务网关/分组网关SPGW-U,所述SPGW-U在运行于所述云计算环境中的虚拟机上进行操作。13. The method of claim 10, wherein the virtualized packet gateway is a service gateway/packet gateway for data plane network packets, the SPGW-U operating on a virtual machine running in the cloud computing environment. 14.根据权利要求10所述的方法,其中所述负载均衡器基于因特网协议(IP)报头信息来定向引导网络业务,而不是基于封装的分组信息来定向引导网络业务。14. The method of claim 10, wherein the load balancer directs network services based on Internet Protocol (IP) header information, rather than on encapsulated packet information. 15.一种由计算设备实现的用于在云计算环境中操作虚拟化分组网关以处理针对蜂窝网络的数据平面网络分组的方法,所述方法包括:15. A method implemented by a computing device for operating a virtualized packet gateway in a cloud computing environment to process data plane network packets for a cellular network, the method comprising: 由所述虚拟化分组网关:By the virtualized packet gateway: 接收与第一承载相关联的第一数据平面网络分组;Receive a first data plane network packet associated with a first bearer; 在确定所述第一承载不在本地高速缓存中时,从外部键值存储中取回针对所述第一承载的承载详细信息,并且将所取回的针对所述第一承载的所述承载详细信息存储在所述本地高速缓存中;When it is determined that the first bearer is not in the local cache, the bearer details for the first bearer are retrieved from the external key-value store and stored in the local cache. 至少部分地基于存储在所述本地高速缓存中的针对所述第一承载的所述承载详细信息,处理所述第一数据平面网络分组;The first data plane network packets are processed based at least in part on the bearer details for the first bearer stored in the local cache; 接收网络通信,所述网络通信指示所述第一承载已被更新;Receive network communication indicating that the first bearer has been updated; 响应于接收到所述网络通信,从所述外部键值存储中取回针对所述第一承载的已更新的承载详细信息,并且将所取回的已更新的承载详细信息存储在所述本地高速缓存中;In response to receiving the network communication, the updated bearer details for the first bearer are retrieved from the external key-value store and stored in the local cache. 接收与所述第一承载相关联的第二数据平面网络分组;以及Receive a second data plane network packet associated with the first bearer; and 至少部分地基于存储在所述本地高速缓存中的针对所述第一承载的已更新的承载详细信息来处理所述第二数据平面网络分组。The second data plane network packets are processed at least in part based on the updated bearer details for the first bearer stored in the local cache. 16.根据权利要求15所述的方法,其中指示所述第一承载已被更新的所述网络通信是从移动管理实体(MME)或从处理控制平面网络业务的网关接收的。16. The method of claim 15, wherein the network communication indicating that the first bearer has been updated is received from a Mobility Management Entity (MME) or from a gateway that processes control plane network services. 17.根据权利要求15所述的方法,还包括:17. The method of claim 15, further comprising: 在所述外部键值存储中将所述虚拟化分组网关注册为所述第一承载的所有者。The virtualized packet gateway is registered as the owner of the first bearer in the external key-value store. 18.根据权利要求15所述的方法,其中所述虚拟化分组网关是用于数据平面网络分组的服务网关/分组网关SPGW-U,所述SPGW-U在运行于所述云计算环境中的虚拟机上进行操作。18. The method of claim 15, wherein the virtualized packet gateway is a Service Gateway/Packet Gateway for Data Plane Network Packets (SPGW-U), the SPGW-U operating on a virtual machine running in the cloud computing environment. 19.根据权利要求15所述的方法,其中所述第一数据平面网络分组和所述第二数据平面网络分组是从负载均衡器接收的,其中所述负载均衡器基于因特网协议(IP)报头和用户数据报协议(UDP)或传输控制协议(TCP)端口编号来引导网络分组,而不是基于封装的分组信息来引导网络分组。19. The method of claim 15, wherein the first data plane network packet and the second data plane network packet are received from a load balancer, wherein the load balancer guides the network packets based on Internet Protocol (IP) headers and User Datagram Protocol (UDP) or Transmission Control Protocol (TCP) port numbers, rather than based on encapsulated packet information. 20.根据权利要求15所述的方法,还包括:20. The method of claim 15, further comprising: 接收与第二承载相关联的第三数据平面网络分组;Receive third data plane network packets associated with the second bearer; 在确定所述第二承载不在本地高速缓存中时,从所述外部键值存储中取回针对所述第二承载的承载详细信息,并且将所取回的针对所述第二承载的所述承载详细信息存储在所述本地高速缓存中;When it is determined that the second bearer is not in the local cache, the bearer details for the second bearer are retrieved from the external key-value store and stored in the local cache. 在所述外部键值存储中将所述虚拟化分组网关注册为所述第二承载的所有者;以及Register the virtualized packet gateway as the owner of the second bearer in the external key-value store; and 至少部分地基于存储在所述本地高速缓存中的针对所述第二承载的所述承载详细信息来处理所述第三数据平面网络分组。The third data plane network packets are processed at least in part based on the bearer details for the second bearer stored in the local cache.
HK62021038222.7A 2018-11-05 2019-10-29 Implementation of core cellular networking stack on cloud infrastructure HK40048959B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US16/180,908 2018-11-05

Publications (2)

Publication Number Publication Date
HK40048959A HK40048959A (en) 2021-12-10
HK40048959B true HK40048959B (en) 2025-11-21

Family

ID=

Similar Documents

Publication Publication Date Title
JP6564934B2 (en) System and method for mobility management in a distributed software defined network packet core system
CN107637029B (en) Communication system and communication method for providing wireless terminal with access to IP network
US10587544B2 (en) Message processing method, processing server, terminal, and storage medium
WO2020259509A1 (en) Method and device for application migration
WO2012009619A2 (en) Hierarchical device type recognition, caching control and enhanced cdn communication in a wireless mobile network
WO2019228344A1 (en) Resource configuration method and apparatus, and terminal and storage medium
CN102811437A (en) Apparatus and method for controlling data transmission/reception path
CN103763754B (en) A kind of method of data processing, apparatus and system
JP6371004B2 (en) How to provide content between terminals
US11700568B2 (en) Dynamic mapping of nodes responsible for monitoring traffic of an evolved packet core
KR102719201B1 (en) Implementation of a core cellular networking stack on cloud infrastructure
JP2023502536A (en) Method, device and computer program for content preparation template for media streaming based on 5G common media application format
KR20210023194A (en) Mec(mobile edge computing) system and control method thereof
US20250227461A1 (en) Base station device and method for operating base station device
EP3364694A1 (en) Network element selection method and network element selector
JP2025020302A (en) Apparatus, method and program for data processing
HK40048959B (en) Implementation of core cellular networking stack on cloud infrastructure
RU2801634C2 (en) Implementation of basic cell networking stack in cloud infrastructure
HK40048959A (en) Implementation of core cellular networking stack on cloud infrastructure
CN112969199A (en) Data acquisition method and equipment
CN105812434A (en) Business chain control method and device after virtualization of user hand-held equipment
US20260012503A1 (en) Load balancing method based on containerized microservice architecture, storage medium and electronic device
US20140344396A1 (en) Transmission management device, system, and method
KR20130107902A (en) Mobile contents delivery service method and local cashing server