云计算系统和在云计算系统中实现演进分组核心(EPC)的控制平面的方法与流程

文档序号:17923448发布日期:2019-06-15 00:15阅读:406来源:国知局
本发明的实施例涉及用于在云计算机系统中实现演进分组核心的控制平面的方法和系统。具体地,本发明的实施例涉及使用openflow协议以通过在云计算机系统中执行控制平面来实现控制数据平面。
背景技术
::通用分组无线电系统(gprs)是用于在例如蜂窝电话等用户设备与互联网之间传送互联网协议分组的系统。该gprs系统包括gprs核心网络,其是全球移动通信系统(gsm)的集成部分。这些系统广泛地被蜂窝电话网络提供商使用来实现大区域上的蜂窝电话服务。gprs隧道协议(gtp)是在gprs核心网络中使用的重要通信协议。gtp使gsm网络中的最终用户设备(例如,蜂窝电话)能够到处移动同时持续连接到互联网。这些最终用户设备通过网关gprs支持节点(ggsn)连接到其它设备。ggsn跟踪来自最终用户设备的服务gprs支持节点(ggsn)的最终用户设备数据,该服务gprs支持节点处理起源于最终用户设备的会话。gprs核心网络使用三个形式的gtp。gtp-u用于对于每个分组数据协议(pdp)上下文在独立隧道中传输用户数据。gtp-c用于控制,其包括pdp上下文的设置和删除、ggsn和sgsn可达性的证实以及更新。在最终用户设备从一个sgsn移动到另一个时,gtp-c用影响该传输。gtp'用于将计费数据从gsm传输到计费网关功能(cgf),其向收费系统提供必要的最终用户设备使用信息。技术实现要素:方法在云计算系统中实现第三代合作伙伴计划(3gpp)长期演进(lte)网络的演进分组核心(epc)的控制平面。该云计算系统包括云管理器和控制器。该控制器执行多个控制平面模块。控制平面通过控制协议与在3gpplte网络的多个网络元件中实现的epc的数据平面通信。具有在云计算系统中实现的控制平面的epc比具有在3gpplte网络的多个网络元件中实现的控制平面的架构更高效地使用资源。方法包括使控制器内的epc的多个控制平面模块初始化的步骤。多个控制平面模块中的每个控制平面模块作为独立虚拟机被云管理器初始化。每个控制平面模块提供用于管理数据平面的一组控制平面功能。云管理器监视由每个控制平面模块处理的控制平面业务和每个控制平面模块的资源使用。云管理器检测对于epc的多个控制平面模块中的一个控制平面模块的资源使用或业务负载的阈值水平。新的控制平面模块作为独立虚拟机由云管理器响应于检测到阈值水平而初始化。该新的控制平面模块共享多个控制平面模块中的一个控制平面模块的负载并且使用控制协议对数据平面中的多个网络元件传递信号来建立流规则和动作以在数据平面中建立差分流路由选择,其中控制协议是openflow协议,并且其中流匹配使用可扩展匹配结构(其中流匹配编码为类型-长度-值(tlv))来编码。云计算机系统实现第三代合作伙伴计划(3gpp)长期演进(lte)网络的演进分组核心(epc)的控制平面。该控制平面通过控制协议与在3gpplte网络的多个网络元件中实现的epc的数据平面通信。具有在云计算系统中实现的控制平面的epc比具有在3gpplte网络的多个网络元件中实现的控制平面的架构更高效地使用资源。云计算系统包括:控制器,其配置成执行epc的多个控制平面模块,每个控制平面模块配置成提供用于管理数据平面的一组控制平面功能并且使用控制协议对数据平面中的多个网络元件传递信号来建立流规则和动作以在数据平面中建立差分流路由选择,其中控制协议是openflow协议,并且其中流匹配使用可扩展匹配结构(其中流匹配编码为类型-长度-值(tlv))来编码;和云管理器,其通信地耦合于控制器。云管理器配置成使控制器内的多个控制平面模块中的每个作为独立虚拟机而初始化、监视由每个控制平面模块处理的控制平面业务和每个控制平面模块的资源使用、检测epc的多个控制平面模块中的任一个是否已经达到资源使用或业务负载的阈值水平以及响应于检测到阈值水平使新的控制平面模块作为独立虚拟机而初始化,该新的控制平面模块共享超出阈值水平的多个控制平面模块中的一个控制平面模块的负载。附图说明本发明通过示例而不是限制的方式在附图(其中类似的引用指示相似的元件)的图中图示。应注意在该公开中对“一个”实施例的不同引用不一定指相同的实施例,并且这样的引用意指至少一个。此外,在连同实施例描述特定特征、结构或特性时,认为连同其它无论是否明确描述的实施例实现这样的特征、结构或特性,这在本领域内技术人员的知识范围内。图1是具有openflow交换机的示例网络的一个实施例的图。图2是图示流表条目的内容的一个实施例的图。图3图示实现openflow的另一个示例架构。图4图示通过openflow交换机分组处理流水线来处理分组的一个实施例。图5是openflow规则匹配过程的一个实施例的流程图。图6是匹配过程可以使用以用于识别应用于分组的规则的字段的图。图7是对于openflow报头处理的过程的一个实施例的流程图。图8是演进分组核心(epc)的一个实施例的图。图9是epc中的承载的高级设置的一个实施例的图。图10是主要gtp-u封装报头中的报头字段的一个实施例的图。图11是服务于一组客户端的云计算系统的一个实施例的图。图12是示出向客户端的vpc添加新的服务实例的过程的云计算系统的另一个实施例的图。图13是在云计算系统中实现的epc的一个实施例的图。图14是云计算系统中的epc如何使管理的服务公司能够管理单个数据中心外的多个运营商网络的一个实施例的图。图15是云计算系统中的epc如何使管理服务公司能够管理单个数据中心外的多个运营商网络的一个实施例的图。图16是epc对等和对于专门服务对待的差分路由选择的过程的一个实施例的图。图17是对于gtpteid路由选择的openflow流表修改的一个实施例的图。图18是流表行的结构的图。图19是可扩展匹配结构的一个实施例的图。图20是用于创建会话请求规程的openflow消息流的一个实施例的图。图21是用于修改承载请求规程的openflow消息序列的一个实施例的图。图22是用于删除会话请求规程的openflow消息序列的一个实施例的图。具体实施方式在下面的描述中,阐述许多具体细节。然而,理解本发明的实施例可在没有这些具体细节的情况下实践。在其它实例中,未详细地示出众所周知的电路、结构和技术以便不使该描述难以理解。然而,本领域内技术人员将意识到本发明可在没有这样的具体细节的情况下实践。本领域内普通技术人员利用包括的描述将能够实现适当的功能性而没有过度实验。流程图的操作将参考图7、14、20和22的示范性实施例描述。然而,应理解流程图的操作可以由除参考图1-6、8-13、15-19和21论述的那些以外的本发明的实施例执行,并且参考图1-6、8-13、15-19和21论述的实施例可以执行与参考图7、14、20和22的流程图论述的那些不同的操作。在图中示出的技术可以使用在一个或多个电子设备(例如,终端站、网络元件,等)上存储和执行的代码和数据来实现。这样的电子设备使用例如非暂时性机器可读或计算机可读存储介质(例如,磁盘;光盘;随机存取存储器;只读存储器;闪速存储器设备;和相变存储器)等非暂时性机器可读或计算机可读介质来存储和传送(在内部和/或与网络上的其它电子设备一起)代码和数据。另外,这样的电子设备典型地包括一个或多个处理器的集,其耦合于一个或多个其它部件,例如一个或多个存储设备、用户输入/输出设备(例如,键盘、触摸屏,和/或显示器)和网络连接。该处理器集和其它部件的耦合典型地通过一个或多个总线和网桥(也称为总线控制器)。存储设备代表一个或多个非暂时性机器可读或计算机可读存储介质和非暂时性机器可读或计算机可读通信介质。从而,指定电子设备的存储设备典型地存储代码和/或数据用于在该电子设备的一个或多个处理器集上执行。当然,本发明的实施例的一个或多个部分可使用软件、固件和/或硬件的不同组合来实现。如本文使用的,网络元件(例如,路由器、交换机、网桥,等)是包括硬件和软件的联网设备件,其通信地使网络上的其它设备(例如,其它网络元件、终端站,等)互连。一些网络元件是“多个服务网络元件”,其提供对于多个联网功能(例如,路由选择、桥接、交换、层2聚合、会话边界控制、多播和/或订户管理)的支持,并且/或提供对于多个应用服务(例如,数据、语音和视频)的支持。订户终端站(例如,服务器、工作站、便携式电脑、掌上电脑、移动电话、智能电话、多媒体电话、互联网协议语言(voip)电话、便携式媒体播放器、gps单元、游戏系统、机顶盒(stb),等)访问通过互联网提供的内容/服务和/或通过互联网上覆盖的虚拟专用网(vpn)提供的内容/服务。内容和/或服务典型地由属于服务或内容提供商一个或多个终端站(例如,服务器终端站)或参与对等服务的终端站提供,并且可包括公共web页面(免费内容、店面、搜索服务,等)、私有web页面(例如,提供电子邮件服务的用户名/密码访问的web页面,等)、通过vpn、iptv等的企业网络。典型地,订户终端站耦合于(例如,通过耦合于接入网络(有线或无线)的客户端设备)边缘网络元件,其耦合于(例如,通过一个或多个核心网络元件耦合于其它边缘网络元件)其它终端站(例如,服务器终端站)。本发明的实施例提供用于避免现有技术的缺点的方法和系统。现有技术的缺点是之前的演进分组核心的实现使用专用于特定网络实体的服务器池,例如专用于托管移动性管理实体(mme)的服务器池。在额外的信令需求要求附加容量时,则在服务器池中例示新的mme实例。然而,当需求对于策略和计费规则功能(pcrf)是高的并且对于mme是低的时,专用于pcrf服务器的服务器池将被大量使用,但对于mme的服务器却未充分使用。这些未充分使用的服务器池继续要求维护并且招致运营费用,但未对网络运营商提供最佳性能。在一些情形中,管理服务公司建立并且运行移动运营商网络,但移动运营商自己处理营销、收费和客户关系。对于每个移动运营商网络的信令和数据业务保持私密并且与他们的竞争者的业务隔离,即使他们的网络和他们的竞争者的网络可由相同的管理服务公司所管理也如此。管理服务公司必须对它所支持的每个移动运营商维持完全独立的服务器池和物理信令网络。因此,存在大的资源复制和服务器容量的未充分使用。这由于额外的设备、功率和冷却要求而使管理服务公司和移动运营商网络的运营费用增加。epc架构如它当前被限定的那样在移动运营商的固定核心/互联网与移动聚合网络之间仅允许一个存在点(pop),即,存在单个分组数据网络(pdn)网关。移动网络运营商无法在聚合网络内的相邻运营商之间设置多个对等点和pop。这将使流入移动运营商的核心网络的业务的量减少,由此减少对昂贵且耗时的核心网络升级的需要。另外,对等点通常未对运营商造成成本,只要观察服务级协定(sla)即可。然而,部署的该灵活性由于需要在单个移动网关处将它们的pop与核心/互联网锚定而不可用于移动运营商。epc架构还几乎不包含对于用户流专门对待的灵活性。尽管架构确实提供用于建立服务质量(qos)的支持,其它种类的数据管理不可用。例如,牵涉中间盒的服务(例如专门深度分组检查或与可用于转换编码或增强现实应用的本地数据高速缓存和处理资源的交互)难以用当前epc架构来支持。几乎所有这样的应用要求分组流通过pdn网关退出,由此从gtp解隧穿,并且在有线网络内处理。在云计算设施中实现epc的控制平面和使用一组openflow交换机来实现epc的数据平面以及使用openflow协议(例如,openflow1.1)管理控制平面与数据平面之间的通信产生这样的问题:openflow协议不支持gtp或gtp隧道端点标识符(teid)路由选择,其对于实现epc的数据平面是必需的。本发明的实施例克服现有技术的这些缺点。现有技术的确定通过使拆分epc于架构的控制平面和数据平面并且通过在云计算设施中部署epc控制平面实体来实现控制平面而数据平面通过分布式openflow交换机集合来实现以避免。openflow协议用于连接这两个,从而增强支持gtp路由选择。尽管epc架构已经在控制平面与数据平面之间具有拆分,在服务网关(s-gw)和pdn网关(p-gw)是数据平面实体的意义上,尽管mme、pcrf和归属订户服务器(hss)是控制平面实体,该拆分在移动性管理协议级gtp处进行。标准epc架构假设了标准路由ip网络(在其顶部上实现移动网络实体和协议)用于传输。本文描述的增强epc架构相反在ip路由选择和媒体访问控制(mac)交换级处。代替使用l2路由选择和l3内部网关协议来分配ip路由选择和将以太网和ip路由选择作为分布式控制实体的集合来管理,l2和l3路由管理集中在云设施中并且使用openflow协议从云设施控制路由选择。如本文描述的,“openflow协议”指在由斯坦福大学托管的网站www.openflowswitch.org处的openflow交换规范中限定的openflow网络协议和交换规范。如本文描述的,“openflow交换机”指实现openflow协议的网络元件。标准epc控制平面实体-mme、pcrf和hss-连同s-gw和p-gw的控制平面部分(即s-gw-c和p-gw-c)一起同样部署在云中。数据平面根据路由选择gtp分组的需要由具有增强的标准openflow交换机组成,而不是ip路由器和以太网交换机。在最低限度,s-gw和p-gw的数据平面部分(即s-gw-d和p-gw-d)和e-utran中的e-nodeb的分组路由选择部分需要openflow增强用于gtp路由选择。根据运营商对路由选择需要多少细粒度控制,在epc架构内的其它交换机上可需要额外的增强用于gtp路由选择。epc的控制平面与数据平面部分之间的拆分可以与虚拟私有云(vpc)技术一起用于在单个epc内实现多个pop、为专门应用提供gtp流特定路由选择以及从单个云计算设施运行多个运营商网络。在一个实施例中,基于云的epc系统可以实现为硬件设备集。在另一个实施例中,系统部件在软件(例如微代码、汇编语言或更高级语音)中实现。这些软件实现可以存储在非暂时性计算机可读介质上。非暂时性“计算机可读”介质可以包括可以存储信息的任何介质。非暂时性计算机可读介质的示例包括只读存储器(rom)、软盘、cdrom、dvd、闪速存储器、硬驱动、光盘或相似的介质。openflow1.0网络图1是具有符合openflow1.0规范的openflow交换机的示例网络的一个实施例的图。openflow1.0协议使控制器101能够使用安全信道103连接到支持openflow1.0的交换机109并且控制该交换机109中的单转发表107。控制器101是由远程计算设备执行的外部软件部件,该远程计算设备使用户能够配置openflow1.0交换机109。安全信道103可以由任何类型的网络提供,其包括局域网(lan)或广域网(wan)(例如互联网)。图2是图示流表条目的内容的一个实施例的图。转发表107用由以下组成的条目填充:规则201,其限定对于分组报头中的字段的匹配;动作203,其与流匹配关联;和关于流的统计205的集合。在接收进入分组时,对于匹配规则的查找在流表107中进行。如果进入分组与特定规则匹配,在该流表中限定的关联动作在分组执行。规则201包含来自协议栈中的若干报头的关键字段,例如源和目的地以太网mac地址、源和目的地ip地址、ip协议类型数、进入和外出tcp或udp端口号。为了限定流,可使用所有可用匹配字段。但通过对不希望的字段使用通配符来将匹配规则限制在可用字段的子集,这也是可能的。由openflow1.0的规范限定的动作是:drop,其丢弃匹配分组;forward,其经由安全信道或本地联网栈(如它存在的话)将分组转发到一个或所有外出端口、进入物理端口本身、控制器。openflow1.0协议数据单元(pdu)用使用c编程语言规定的一组结构来限定。更常用的消息中的一些是:报告交换配置消息;修改状态消息(其包括修改流条目消息和端口修改消息);读取状态消息,其中尽管系统在运行,可使用该消息询问数据路径关于它的当前状态;以及发送分组消息,其在控制器希望通过数据路径将分组发送出时使用。openflow1.0支持“供应商扩展”,其允许扩展某些协议元素。协议消息和表动作可以扩展,但流匹配规则却不能。这些扩展连同基于云的epc架构的使用在下文进一步论述。openflow1.1网络图3图示实现符合openflow1.1规范的openflow的另一个示例架构。在该实施例中,存在对于多个流表301的明确预备。这允许分组处理流水线混合并且与特定规则和动作匹配而不引起表大小中的组合爆炸。例如,一个流表可以执行qos处理,而第二流表进行路由选择。图4图示通过openflow1.1交换分组处理流水线来处理分组的一个实施例。接收的分组与流表401中的每个相比较。在每个流表匹配后,动作累积为动作集。如果处理需要与另一个流表相匹配,匹配规则中的动作包括将处理引导到流水线中的下一个表的动作。在集中没有包括立即执行所有累积动作的动作的情况下,动作在分组处理流水线的末端403处执行。动作允许将数据写入元数据寄存器,在分组处理流水线中携带该数据,像分组报头。图5是openflow1.1规则匹配过程的一个实施例的流程图。openflow1.1包含对分组标记的支持。openflow1.1允许基于报头字段和多协议标签交换(mpls)标签的匹配。每表一个虚拟lan(vlan)标签和一个mpls标签可以匹配。规程匹配过程随着要处理的分组的到达而发起(框501)。在第一表0处开始执行查找来确定与接收的分组的匹配(框503)。如果在该表中没有匹配,则采取默认动作集中的一个(即,向控制器发送分组、丢弃分组或继续下一个表)(框509)。如存在匹配,则对动作集连同计数器、分组或匹配集字段和元数据进行更新(框505)。进行检查来确定要处理的下一个表,其可以是按顺序的下一个表或由匹配规则的动作规定的那个(框507)。一旦表中的全部已经被处理,则执行所得的动作(框511)。图6是匹配过程可以使用以用于识别应用于分组的规则的字段的图。动作允许通过推入和弹出标签来操纵标记栈。与多个表结合,vlan或mpls标签栈可以通过每表匹配一个标签而处理。图7是报头解析过程的一个实施例的流程图。解析过程通过使匹配字段集初始化(框701)并且检查一组不同报头类型的存在来匹配分组报头。过程检查vlan标记(框703)。如果存在vlan标记,则对于vlan标记存在一系列处理步骤(框705-707)。如果交换机支持mpls(框709),则存在用于检测并且处理mpls报头信息的一系列步骤(框711-715)。如果交换机支持地址分辨协议(arp),则存在用于处理arp报头的一系列步骤(框719和721)。如果分组具有ip报头(框723),则存在用于处理ip报头的一系列步骤(框725-733)。对每个接收的分组执行该过程。在一个实施例中,可以支持群表连同openflow1.1协议。群表实现用于允许单个流匹配在多个端口上触发转发的方法。群表条目由四个字段组成:群标识符,其是识别群的32位无符号整数;群类型,其确定群的语义;计数器,其维持关于群的统计;和动作桶表,其是有序的动作桶的列表,其中每个桶包含要执行的动作集连同它们的参数。存在四个不同类型的群:all,其执行桶表中的所有动作,这用于广播或多播转发;select,其基于由在openflow协议外部的交换确定的算法执行每分组一个桶,这用于实现多路径转发;indirect,其在所有分组执行单个桶,这允许多个流或群指向单个动作集合而不是使动作在多个转发表条目中限定;fastfailover,其执行第一活动桶,其中每个桶与控制它的活跃度的端口关联,这使交换能够故障转移到另一个端口而不牵涉控制器。openflow1.1可以用于支持虚拟端口。如本文使用的虚拟端口是“动作块”,其执行除简单地转发出分组、到网络连接(像物理端口所做的)外的某种处理动作。几个内置虚拟端口的示例包括:all,其将端口转发出所有端口,但入站端口和标记“donotforward”的任何端口除外;controller,其封装分组并且将它发送到控制器;table,其通过将分组提交给第一流表而将它插入分组处理流水线,该动作仅在分组发出消息的动作集中有效;和in_port,其将分组发送出入站端口。在其它实施例中,还可以存在交换-限定的虚拟端口。epc架构图8是演进分组核心(epc)的一个实施例的图。epc是对于第三代合作伙伴计划(3gpp)的下一代分组聚合网络(其包括3gpp长期演进(lte)和非3gpp移动无线系统),其还将支持固定、宽带系统。图8示出对于3gpp接入网络的epc的基本架构。额外的功能性支持漫游终端、非3gpp移动系统和固定、宽带接入。图示的实施例具有独立服务网关(s-gw)803和pdn网关(p-gw)805。在其它实施例中,s5接口是内部接口并且s-gw803和p-gw805合并。epc关于移动无线联网的主要功能是移动性管理和qos。这些功能典型地未在固定宽带网络中提供,但它们对于无线网络是至关重要的。移动性管理对于在无线终端从一个基站移动到另一个时确保分组网络连接性是必需的。qos是必需的,因为与固定网络不同,无线链路在它可以向终端提供多少带宽方面受到严格限制,因此需要比在固定网络中更严密地管理带宽以便对用户提供可接受的服务质量。用于实现移动性管理和qos功能的信令由gprs隧道协议(gtp)提供。gtp具有两个组成:gtp-c,其是支持建立隧道用于移动性管理并且建立承载用于qos管理(其使有线回程和分组核心qos与无线电链路qos匹配)的控制平面协议;和gtp-u,其是用于在充当路由器的网络元件之间实现隧道的数据平面协议。epc还在s5接口上支持代理移动ip(p-mip)隧道协议用于移动性管理。在epc中,承载是通过epc分组网络的传送信道,其具有限定的数据传送特性集(服务质量数据速率和流控制)。epc承载典型地在网络层处实现为diffserv代码点(dscp)或在mac层处实现为具有802.1p(并入802.1d标准)业务类优先级的ieee802.1qvlan。pcrf(策略和计费资源功能)801识别来自用户设备(ue)807的分组流,其基于来自例如ip多媒体子系统(ims)等子系统的服务请求而需要承载。要包括在承载中的分组流由5元组对网关和无线电基站(e-nodeb)识别,该5元组由ip源和目的地地址、ip源和目的地端口以及协议标识符组成。该五元组连同对于qos类的dscp一起识别上行链路和下行链路分组滤波器。每终端ip地址和qos业务类设置一个承载。pcrf供应描述承载的四个qos参数的集合,其包括:规定对于无线电的qos的质量类标识符(qci);分配保留优先级(arp),其是控制平面在进行修改请求并且出现资源冲突时应如何对承载定优先级的指示符;以及保证位速率和最大位速率(mbr,可选),其中这些规定承载可以接收的保证和最大位速率。这些仅对于保证-即,非尽力而为-承载而限定。网关和无线电基站将qci映射到特定dscp。如果e-nodeb与s-gw803之间或s-gw803与p-gw805之间的传输网络没有ip路由器并且严格地由层2(以太网)路由,这然后可随后映射到特定vlan和802.1p类。dscp与qci指示符之间的映射典型地使用网络管理系统用手配置到分组网关和无线电基站。除具有按需设置的规定qos的承载外,每个终端接收“默认”承载,具有未规定qos的所有分组流分类到该“默认”承载,典型地是与尽力而为数据应用(像web浏览)关联的流。图9是epc中的承载的高级设置的一个实施例的图。除qos参数外,每个承载具有关联的gtp隧道。gtp隧道由隧道端点节点(无线电基站、s-gw803和p-gw805)的ip地址、源和目的地udp端口以及隧道端点标识符(teid)组成。gtp隧道是单向的,因此每个承载与两个teid关联,一个对于上行链路并且一个对于下行链路隧道。一组gtp隧道(上行链路和下行链路)在无线电基站与s-gw803之间延伸并且一组在s-gw803于p-gw805之间延伸。对于gtp-u的udp目的地端口号是2152,而对于gtp-c的目的地端口号是2123。源端口号由发送节点动态分配。图10是主要gtp-u封装报头中的报头字段的一个实施例的图。云计算数据中心向外部客户提供计算、存储和网络通信资源。提供的服务可以由弹性、按需处理存储组成,该存储由于最实用目的仅受到客户支付能力和进入互联网内的网络带宽的限制。由数据中心提供的该组服务在本文称为云计算。服务器虚拟化技术允许将服务器池作为基本上一个大的计算资源来管理。叫作管理程序的软件层介于操作系统与硬件之间。管理程序调度虚拟机(vm)的执行。vm是与一些应用封装的操作系统图像。管理程序允许vm暂停并且再服务器之间移动以负载均衡。用于捕捉崩溃的vm执行的负载均衡和监视对以高得多的成本利用专门技术方案来实现的企业应用提供相同种类的容错和可扩展性服务。云管理器系统监督vm的执行、满足vm需求的执行的调度以及服务器使用的优化和功耗的最小化。云管理器或云操作系统是这样的软件程序,其可以调度执行来允许硬件和软件的服务中升级而不影响对云计算系统中的vm和它们的应用的持续服务预备。为了支持vm在机器之间的任意移动,数据中心内的联网也必须虚拟化。云计算系统可以通过使虚拟交换机并入管理程序来使网络虚拟化。虚拟交换机向在管理程序的控制下执行的vm提供虚拟网络端口。虚拟交换机软件还允许网络资源采用与服务器资源如何被管理程序虚拟化相似的方式虚拟化。管理程序和虚拟交换机由此可以协作以允许vm在服务器之间移动。在管理程序使vm移动时,它与虚拟交换机关于新的位置而通信,并且虚拟交换机确保对于vm的地址(l2mac地址,可能也是ip地址)的网络路由选择表被更新,因此分组路由到新的位置。云计算系统可以由具有任何范围的能力(例如,处理能力或存储容量)的任何数量的计算设备组成。云计算系统可以是私密或公共系统。计算设备可以跨任何通信系统或网络而彼此通信。云计算系统可以支持单个云或服务或任何数量的离散云或服务。服务、应用和相似的程序可以作为标准代码而虚拟化或执行。在一个实施例中,云计算系统可以支持web服务应用。web服务应用由将请求发往web服务器池的负载均衡前端组成。这些请求起源于互联网上的远程机器上的应用并且因此安全性和私密性要求比对于私密企业网络中的应用要宽松得多。云计算机系统还可以支持安全多租赁,其中云计算机系统在云外部的客户端的分布办公室网络与云计算系统内的vpn之间提供像虚拟私密网(vpn)的连接。这允许云计算系统内的客户端的应用在与企业wan相像的网络环境中操作。对于私密数据中心(其中服务仅提供给拥有数据中心的公司内的客户),对于多租赁的安全性和私密性要求放宽。但对于公共数据中心,云运营商必须确保来自多个租户的业务被隔离并且业务不可能从一个客户端到达另一个客户端网络。图11是服务于一组客户端的云计算系统的一个实施例的图。如本文使用的‘组’指任何正整数的项目。在实施例(图11中示出)中,对两个不同的外部企业客户设置两个虚拟私有云(vpc)。vpc由vm、存储和向租赁云中的空间的企业提供安全多租赁的联网资源的集合。企业客户通过在公共运营商网络上运行的互联网经由vpn连接到vpc内。图12是示出向客户端的vpc添加新的服务实例的过程的云计算系统的另一个实施例的图。在该情况下,云中vpn使用mac层虚拟lan(vlan)来实现。vm在对于请求新的服务实例的企业的vpc内在管理程序管理的服务器上创建(步骤1)。虚拟交换机vlan配置成将新的vm包括到企业云中vpn内,由此在云内建立服务连接性(步骤2)。对于新的服务更新虚拟客户边缘路由器(ce)(步骤3)。企业vpn运行所在的运营商网络中的提供商边缘路由器用新的服务来更新(步骤4)。云计算系统中的epc实现图13是在云计算系统中实现的epc的一个实施例的图。epc控制平面实体(mme、pcrf、hss)1307和网关的控制平面部分(s-gw-c、p-gw-c)1307(即,处理gtp信令的部分)在云计算系统1301中实现为openflow控制器1305的部分。控制平面实体1307和openflow控制器1305封装为vm。openflow控制器1305与控制平面实体1307之间的应用编程接口(api)可以是远程规程调用(rpc)接口或相似的接口。该实现技术对于云内的控制平面实体的可扩展管理是有利的,因为它允许控制平面实体1307和控制器1305的执行根据需求来独立管理。云管理器1303可以是vm或在云计算系统1301内执行的应用。云管理器1303监视epc控制平面实体1307的中央处理器单元(cpu)使用以及云内的epc控制平面实体1307之间的控制平面业务。它还监视最终用户设备(ue)与e-nodeb之间的控制平面业务,这些e-nodeb不具有云计算系统1301中的控制平面实体,和epc控制平面实体1307。如果epc控制平面实体1307开始展现过载迹象,例如使用太多的cpu时间或排队等候太多要处理的业务,过载控制平面实体1307请求云管理器1303起动新的vm来处理负载。另外,如果epc控制平面实体1307在内部检测到它们开始经历过载,则它们自己可以向云管理器1303发出事件通知。如果epc控制平面实体1307中的任一个应崩溃的话,云管理器1303通过重启对于特定控制平面实体1307的vm或功能而还提供可靠性和故障转移。在该重启过程期间,云管理器可以收集诊断数据、保存故障epc控制平面实体的任何核心文件以及通知系统管理员出现故障。控制平面实体1307在它们自己之间维持与在图8中示出的3gppepc架构相同的协议接口。openflow控制平面1321(在这里示出为点线)管理网络中的路由选择和交换配置。openflow控制平面1321使云计算系统1303连接到s-gw-d1315、标准openflow交换机1313和p-gw-d131。openflow控制平面1321的物理实现可以是完全独立的物理网络,或它可以是在于数据平面相同的物理网络上运行、用优先的vlan或用mpls标签交换路径或甚至用通用路由选择封装(gre)或其它ip隧道来实现的虚拟网络。openflow控制平面1321原则上可以使用与gtp-c相同的物理控制平面路径和其它移动网络信令。s-gw-d1315和p-gw-d1311充当openflowgtp扩展的网关,其使用在下文进一步描述的openflowgtp交换机扩展来封装和解封分组。因为在mme与e-nodeb之间需要的无线电接入网络(ran)信令包括无线电参数而不仅仅是ip路由选择参数,e-nodeb1315不具有云中的控制平面实体。因此,在云计算系统1301中的openflow控制器1305与e-nodeb1315之间没有openflow控制平面1321连接。然而e-nodeb1315可以通过实现对使用openflow的数据平面连接的本地控制而充当openflowgtp扩展网关。这允许e-nodeb1315的分组交换侧使用与分组网关相同的openflowgtp交换扩展。epc云计算机系统的操作如下。ue1317、e-nodeb1317、s-gw-c和p-gw-c1307使用标准epc协议向mme、pcrf和hss1307传递信号来建立、修改和删除承载和gtp隧道。该信令用openflow控制器触发规程调用来修改如请求的epc中的路由选择。openflow控制器用流规则和动作配置标准openflow交换机、openflows-gw-d1315和p-gw-d1311以实现控制平面实体所请求的路由选择。该配置的细节在下文进一步详细描述。图14是epc的基本操作的一个实施例的流程图。在一个实施例中,过程以使云计算系统中的openflow控制器内的epc的控制平面模块的初始化开始(框1401)。多个控制平面模块中的每个控制平面模块作为独立vm由云管理器初始化。云管理器然后监视每个控制平面模块的资源使用以及每个控制平面模块所处理的控制平面业务的量和类型(框1403)。云管理器可以直接监视该数据、从控制平面模块接收报告或其任何组合。如果云管理器检测到对于被监视的多个控制平面模块中的任一个的阈值水平的资源使用或业务负载(框1405),云管理器可以采取措施来自动对该情景作出响应。云管理器可以将新的控制平面模块或这样的控制平面模块的实例初始化未独立虚拟机(框1407)。该新的控制平面模块或实例然后可以共享相同类型的现有控制平面模块或实例的负载,由此动态减轻这些模块上的负载。相似地,云管理器可以检测多个控制平面模块中的一个的故障或未充分使用(框1409)。云管理器然后可以重启故障的控制平面模块或终止未充分使用的控制平面模块(框1411)。重启控制平面模块确保对于控制平面模块池的负载共享水平。使控制平面模块无效释放资源并且减少控制平面模块引起的开销。云管理器可以使用云计算系统资源跨vpc和移动运营商执行这些功能,由此使可用资源的使用最大化并且减少运营成本同时维持移动运营商之间的数据和业务的严格分离。图15是云计算系统中的epc如何使管理服务公司能够管理单个数据中心外的多个运营商网络的一个实施例的图。管理服务云计算设施1501对于管理服务公司与之有合约的每个移动运营商运行独立的epc控制平面实例。每个epc实例是在vpc1503a、b中,其使移动运营商的业务与数据中心的云计算设施1501中的其它租户隔离。对于移动运营商的epc控制平面实例通过虚拟边缘路由器1509a、b连接到移动运营商的地理分布epcopenflow数据平面交换结构1507a、b和移动运营商的基站。虚拟边缘路由器1509a、b将业务从数据中心路由到合适的移动运营商epc数据平面交换结构1507a、b以及从合适的移动运营商epc数据平面交换结构1507a、b路由到数据中心。在一些情况下,移动运营商甚至可共享基站和epc交换结构,但图15中的示例实施例示出两个移动运营商具有独立交换结构的情况。云计算系统中的epc对等和差分路由选择图16是epc对等和对于专门服务对待的差分路由选择的过程的一个实施例的图。由实线和箭头1601指示的openflow信令为了差分路由选择在epc内的交换机和网关上设置流规则和动作。这些流规则将gtp流引导到特定位置。在该示例中,运营商在该情况下使它的epc与两个其它固定运营商对等。通过每个对等点的路由选择由相应的p-gw-d1和p-gw-d21603a、b处理。虚线和箭头1605示出来自ue1607的业务,其需要路由到另一个对等运营商。用于区分业务应穿越哪个对等点的流规则和动作由openflow控制器1611安装在openflow交换机1609和网关1603a、b中。openflow控制器1611基于它对于外部业务所维持的路由选择表和分组的源和目的地以及通过dscp标记分组所需要的任何专门转发对待来计算这些流规则和动作。长点划线和箭头1615示出从外部源获得内容的ue1617的示例。该内容起初并不是为ue1617的屏幕定制,因此openflow控制器1611使流规则和动作安装在p-gw-d11603b、s-gw-d1619和openflow交换机1609上以通过云计算设施中的转换编码应用1621来路由流。转换编码应用1621将内容重新格式化使得它将适合ue1617的屏幕。pcrf在ue经由ip多媒体子系统(ims)或另一个信令协议设置它与外部内容源的会话时请求专门对待。gtpteid路由选择在一个实施例中,修改openflow来提供对于gtpteid路由选择的规则。图17是对于gtpteid路由选择的openflow流表修改的一个实施例的图。在至少一个流表(例如,第一流表)中,除其它openflow报头字段外,支持teid路由选择的openflow交换机还在报头字段的2字节(16位)集合和4字节(32位)gtpteid上匹配。gtpteid标志可以通配(即,匹配是“don'tcare”)。在一个实施例中,像标准udp/tcp传输协议中的端口一样,除作为隧道的端点标识符之外,epc协议未对teid指定任何意思。在其它实施例中,teid可以具有相关意思或语义。gtp报头标志字段也可以通配,这可以通过使下列位掩码组合而部分匹配:0xff00-匹配消息类型字段;0xe0-匹配版本字段;0x10-匹配pt字段;0x04-匹配e字段;0x02-匹配s字段;以及0x01-匹配pn字段。在一个实施例中,可以修改openflow来支持对于快速gtpteid封装和解封的虚拟端口。openflow移动网关可以用于支持与虚拟端口的gtp封装和解封。gpt封装和解封虚拟端口可以用于gtp-u隧道内的用户数据分组的快速封装和解封,并且可以足够简单地设计使得它们可以在硬件或固件中实现。由于该原因,gtp虚拟端口可对它们将处理的业务具有下列限制:协议类型(pt)字段=1,其中gtp封装端口仅支持gtp,而不是gtp'(pt字段=0);扩展报头标志(e)=0,其中不支持扩展报头;序列号标志(s)=0,其中不支持序列号;n-pdu标志(pn)=0;并且消息类型=255,其中在快速路径中仅支持g-pdu消息(即,隧穿的用户数据)。如果分组需要封装或达成与非零报头标志、报头扩展一起封装,并且/或gtp-u分组不是g-pdu分组(即,它是gtp-u控制分组),处理必须经由网关的慢速路径(软件)控制平面来进行。引导到网关的ip地址的gtp-c和gtp'分组是错误配置的结果并且是错误的。它们必须发送到openflow控制器(因为这些分组由云计算系统中的s-gw-c和p-gw-c控制平面实体处理)或到处理gtp'的收费实体而不是s-gw-d和p-gw-d数据平面交换机。gtp虚拟端口使用配置协议从openflow控制器配置。配置协议的细节取决于交换机。配置协议必须支持这样的消息,其执行下列功能:允许控制器询问并且返回交换机是否支持gtp快速路径虚拟端口以及什么虚拟端口号用于快速路径和慢速路径gtp-u处理的指示;和允许控制器例示交换机数据路径中的gtp-u快速路径虚拟端口以供在openflow表设置-输出-端口动作中使用。配置命令必须在事务中运送使得当动作的结构汇报给控制器时,对于请求的数据路径的gtp-u快速路径虚拟端口已经被例示或已经返回指示请求为什么不被承兑的错误。命令还允许openflow控制器将gtp-u虚拟端口绑定到物理端口。对于解封虚拟端口,物理端口是输入端口。对于封装虚拟端口,物理端口是输出端口。openflow控制器例示对于在用于gtpteid路由选择的交换机中安装任何规则之前可通过gtp隧道传送或接收分组的每个物理端口的虚拟端口。在一个实施例中,openflowgtp网关维持将gtpteid映射到对于它们的承载的隧道报头字段内的哈希表。图18是流表行的结构的图。teid哈希密钥使用具有低碰撞频率的合适哈希算法(例如,sha-1)来计算。网关对于每个gtpteid/承载维持一个这样的流表行。teid字段包含对于隧道的gtpteid。vlan标记和mpls标签字段分组含有序vlan标记和/或mpls标签列表,其限定包需要路由到的隧道。vlan优先级位和mpls业务类位包括在标签中。可需要或可不需要这样的隧道。如果不需要它们,则这些字段是空的。隧道起始源ip地址包含牵涉隧道的任何控制业务(例如,错误指示)应被引导到的封装网关上的地址。隧道末端目的地ip地址字段包含隧穿分组应路由到的网关的ip地址,在其处分组将被解封并且从gtp隧道去除。对于在专用承载情况下的承载,qosdscp字段包含diffserve代码点(如有的话)。如果承载是具有尽力而为qos的默认承载,该字段可是空的,但如果承载qos超出尽力而为则将包含非零值。在一个实施例中,对于gtp的慢速路径支持用openflow网关交换机来实现。openflow移动网关交换机还包含在软件控制平面上对慢速路径分组处理的支持。该路径由具有非零报头字段或扩展报头的g-pdu(消息类型255)分组和需要与这样的字段封装或添加扩展报头的用户数据平面分组采用并且被gtp-u控制分组采取。由于该目的,交换机在软件控制平面中支持三个本地端口:local_gtp_control-交换机快速路径转发引导到网关ip地址(其包含gtp-u控制消息)的gtp封装分组并且本地交换机软件控制平面根据gtp-u控制消息发起本地控制平面动作;local_gtp_u_decap-交换机快速路径将g-pdu分组转发到该端口,其具有非零报头字段或扩展报头(即e!=0,s!=0,或pn!=0)。这些分组需要专门处理。本地交换机软件慢速路径处理分组并且执行专门处理;和local_gtp_u_encap-交换机快速路径将用户数据平面分组转发到该端口,其需要在gtp隧道中与非零报头字段或扩展报头(即e!=0,s!=0,或pn!=0)封装。这些分组需要专门处理。本地交换机软件慢速路径封装分组并且执行专门处理。除转发分组外,交换机快速路径使openflow元数据字段可用于慢速路径软件。为了支持慢速路径封装,交换机上的软件控制平面使哈希表维持有从gtp-uteid计算的密钥。teid哈希密钥使用具有低碰撞频率的合适哈希算法(例如sha-1)来计算。流表条目包含应如何配置分组报头(其包括gtp封装报头)的记录。这包括:与对于图18中的硬件或固件封装表相同的报头字段;对于gtp报头标志(pt、e、s和pn)的值;序列号和/或n-pdu号(如有的话);如果e标志是1,则流表包含扩展报头列表,其包括慢速路径应插入gtp报头内的它们的类型。在一个实施例中,系统实现gtp快速路径封装虚拟端口。在由在云计算系统中运行的s-gw-c和p-gw-c控制平面软件请求时,openflow控制器对网关交换机编程来安装规则、动作和teid哈希表条目以经由快速路径gtp封装虚拟端口将分组路由到gtp隧道内。规则与对于gtp隧道的承载的输入侧的分组滤波匹配。典型地,这将是具有以下的4元组:ip源地址;ip目的地地址;udp/tcp/sctp源端口;和udp/tcp/sctp目的地端口。ip源地址和目的地地址典型地是对于用户数据平面业务(即ue与之交易的ue或互联网服务,并且相似地具有端口号)的地址。对于与gtp-u隧道输入侧匹配的规则,关联的指令是以下:写-元数据(gtp-teid,0xffffffff)应用-动作(设置-输出-端口gtp-encap-vp)交换机还在包含对于分组的隧道报头字段的teid哈希表中写条目。gtp-teid是gtp隧道端点标识符。gtp-encap-vp是绑定到物理端口(封装的分组最终将路由到其外)的gtp快速路径封装虚拟端口。当分组报头匹配与虚拟端口关联的规则时,gtpteid写入源数据的低32位并且分组被引导到虚拟端口。虚拟端口计算teid的哈希并且在隧道报头表中查找隧道报头信息。如果不存在这样的隧道信息,分组以错误指示转发到控制器。否则,虚拟端口构造gtp隧道报头并且封装分组。任何dscp位或vlan优先级位另外在ip或mac隧道报头中设置,并且任何vlan标记或mpls标签被推到分组。封装的分组转发到虚拟端口所绑定的物理端口外。在一个实施例中,系统实现gtp快速路径解封虚拟端口。在由在云计算系统中运行的s-gw和p-gw控制平面软件请求时,网关交换机安装规则和动作用于将gtp封装分组路由到gtp隧道外。在图17中示出的修改openflow流表中,规则与对于分组的gtp报头标志和gtpteid匹配如下:ip目的地地址是网关预期gtp业务所在的ip地址;ip协议类型是udp(17);udp目的地端口是gtp-u目的地端口(2152);并且报头字段和消息类型字段用标志0xfff0来通配并且字段的高两位字节与g-pdu消息类型(255)匹配,而低两位字节与0x30匹配,即分组是gtp分组而不是gtp'分组并且版本号是1。虚拟端口简单地去除gtp隧道报头并且将封闭的用户数据平面分组转发到绑定的物理端口外。在一个实施例中,系统实现gtp-u控制分组的处理。openflow控制器对用对于每个网关交换机ip地址(用于gtp业务)的5个规则来对网关交换机流表编程。这些规则包含对于下列字段的规定值:ip目的地地址是网关预期gtp业务所在的ip地址;ip协议类型是udp(17);udp目的地端口是gtp-u目的地端口(2152);并且gtp报头标志和消息类型字段用0xfff0来通配;报头标志字段的值是0x30,即版本号是1并且pt字段是1;并且消息类型字段的值是1(回显请求)、2(回显响应)、26(错误指示)、31(对扩展报头通知的支持)或254(结束标记)中的一个。与对这些规则中的一个的匹配关联的指令是:应用-动作(设置-输出-端口local_gtp_control)这促使分组转发到网关交换机的本地gtp-u控制端口以供本地软件控制平面处理。起源于交换机的gtp-u控制分组在软件控制平面上生成并且由控制平面路由。在一个实施例中,系统实现具有扩展报头、序列号和n-pdu号的g-pdu分组的处理。具有扩展报头、序列号和n-pdu号的g-pdu分组需要转发到本地交换机软件控制平面用于处理。openflow控制器为了该目的对3个规则编程。它们具有下列公共报头字段:ip目的地地址是网关预期gtp业务所在的ip地址;并且ip协议类型是udp(17);udp目的地端口是gtp-u目的地端口(2152)。对于三个规则的报头标志和消息类型字段用下列位掩码通配并且匹配如下:位掩码0xfff4和高两位字节与g-pdu消息类型(255)匹配,而低两个字节是0x34,其指示版本号是1、分组是gtp分组并且存在扩展报头;位掩码0xfff2和高两个字节与g-pdu消息类型(255)匹配,而低两个字节是0x32,其指示版本号是1、分组是gtp分组并且存在序列号;并且位掩码0xff01和高两个字节与g-pdu消息类型(255)匹配,而低两个字节是0x31,其指示版本号是1、分组是gtp分组并且存在n-pdu。对于这三个规则的指令是以下:应用-动作(设置-输出-端口local_gtp_u_decap)这将分组发送到软件慢速路径gtp-u解封路径用于特殊处理。在一个实施例中,系统实现需要gtp-u与扩展报头、序列号和n-pdu号封装的用户数据平面分组的处理。在gtp封装期间需要扩展报头、序列号或n-pdu号的用户数据平面分组需要由软件慢速路径的特殊处理。对于这些分组,openflow控制器对匹配4元组的规则编程:ip源地址;ip目的地地址;udp/tcp/sctp源端口;和udp/tcp/sctp目的地端口。对于匹配分组的指令是:写-元数据(gtp-teid,0xffffffff)应用-动作(设置-输出-端口local_gtp_u_encap)这将分组发送到软件慢速路径gtp封装端口,并且另外,使teid可用于慢速路径。对规则插入编程的openflow消息还包括关于序列号、n-pdu号的值或扩展报头的类型和内容以及指定解封网关和承载传输的分组报头字段和gtpteid的信息。该信息由交换机的控制平面软件插入软件封装表(由teid键控)内。在一个实施例中,系统实现gtp-c和gtp'控制分组的处理。被引导到网关交换机上的ip地址任何gtp-c和gtp'控制分组是错误的。这些分组需要由云计算系统中的s-gw-c、p-gw-c和gtp'协议实体而不是交换机中的s-gw-d和p-gw-d实体来处理。为了捕捉这样的分组,openflow控制器必须用下列两个规则对交换机编程:ip目的地地址是网关预期gtp业务所在的ip地址;ip协议类型是udp(17);对于一个规则,udp目的地端口是gtp-u目的地端口(2152),对于另一个,udp目的地端口是gtp-c目的地端口(2123);gtp报头标志和消息类型字段通配。这些规则必须是网关交换机的流表中的所有gtp规则中的最低优先级。它们将与不匹配其它更特定规则的任何gtp分组匹配。对于这些规则的指令是以下:应用-动作(设置-输出-端口controller)这封装分组并且将它发送到openflow控制器。在一个实施例中,系统实现非网关gtp路由选择。gtp扩展openflow交换机也可以完成gtp路由选择而不执行封装和解封的网关功能。可以由网关交换机除它的网关功能外还执行gtp路由选择功能,或gtp路由选择功能可以在分布式epc交换结构内由缺乏网关功能的另一个交换机执行。gtp扩展openflow交换机包含至少一个流表,其处理与如在图17中的gtp报头字段匹配的规则。openflow控制器除其它字段外还对gtp报头字段规则编程来执行gtp路由选择并且如果规则匹配的话则添加合适的动作。例如,下列规则与引导到云计算系统中的控制平面实体(mme、s-gw-c、p-gw-c)的gtp-c控制分组匹配,该控制平面实体不在控制平面vlan中:vlan标记未设置成控制平面vlan,目的地ip地址字段设置成目标控制平面实体的ip地址,ip协议类型是udp(17),udp目的地端口是gtp-c目的地端口(2123),gtp报头标记和消息类型用0xf0通配并且匹配的版本和协议类型字段是2和1,其指示分组是gtpv2控制平面分组而不是gtp'。下列动作将控制平面vlan标记推到分组并且将它转发到云以供相关控制平面实体处理。在没有任何l3处理(即,未修改ipttl)的情况下转发分组:写-动作(设置-vlan-idcp_vlan_tag)写-动作(设置-源-mac-地址switch_mac_addr)写-动作(设置-dest-mac-地址next_hop_mac_addr)设置-输出-端口next_hop_port对于openflow的gtp扩展可以修改openflow协议来对gtp提供扩展,其实现epc的管理。openflow使用称为流匹配结构的数据结构,其使协议能够限定用于使规则与特定流匹配的准则。这可以用对于gtpteid的非标准化或标准化可扩展匹配来实现。第一实施例在一个实施例中,ofp_match的openflow流匹配结构包含两个字段:类型和长度,其允许流匹配结构扩展。类型字段可以设置成扩展类型并且长度字段可以设置成扩展ofp_match结构的长度。在一个实施例中,限定基于gtp流匹配的随机数的新的类型:enumofp_match_type_ext{ersmt_gtp=48696,};类型可以随机生成以便不干预其它扩展类型。当前没有在openflow中注册类型标识符的组织机构。ersmt_gtp结构将对于gtp流路由选择的流表限定为:gtp_type_n_flags字段包含高8位中的gtp消息类型和低8位中的gtp报头标志。gtp_teid字段包含gtpteid。gtp_wildcard字段指示gtp类型和标志是否应与teid匹配。如果低四位是1,应忽略类型和标志字段,而如果高四位是1,应忽略teid。如果低位是0,受制于gtp_flag_mask字段中的标志,类型和字段标志匹配,而如果高位是0,teid应匹配。掩码使用逻辑and而与分组的消息类型和报头字段结合;结果变成匹配的值。仅其中掩码具有1值的字段的那些部分匹配。第二实施例在另一个实施例中,openflow1.2支持可扩展匹配结构oxm(在图22中示出),其中流匹配编码为类型-长度-值。为开放网络基金会成员预留oxm_class字段值0x0000至0x7fff,为未来标准化预留0x8000至0xffff,并且0xffff指定用于实验。oxm_field标识类内的子类型,hm字段规定值是否包含位掩码(yes=1,no=0),并且oxm_length包含值有效载荷的长度。对于gtpteid路由选择,我们通过ersmt_gtp_match结构限定值有效载荷:gtp_type_n_flags字段包含高8位中的gtp消息类型和低8位中的gtp报头标志。gtp_teid字段包含grpteid。当oxm_type(oxm_class+oxm_field)的值是gtp_match并且hm位是零时,流的gtp报头必须完全与这些值匹配。如果hm标志是一,值包含ersmt_gtp_match字段和ersmt_gtp_mask字段,如由openflow1.2规范规定的。我们限定ersmt_gtp_mask字段用于基于标志位的设置来选择流:gtp_wildcard字段指示teid是否应匹配。如果值是0xffffffff,teid应匹配而不是标志,如果值是0x00000000,标志应匹配而不是teid。如果gtp_wildcard指示标志应匹配,gtp_flag_mask使用逻辑and而与分组的消息类型和报头字段结合,结果变成匹配的值。仅其中掩码具有1值的字段的那些部分匹配。除流表字段外,需要对象对虚拟端口teid哈希表条目的封装编码。ersmt_gtp_tuninfo结构可以用于限定该信息:ersmt_mpls_lbl结构提供24位数据结构用于对mpls标签编码。ersmt_gtp_tuninfo结构包含描述gtp隧道的字段。这些插入封装虚拟端口内。结构因为它可包含可变数量的vlan标记和/或mpls标签而是可变长度。gtp_tuninfo_length字段包含结构的长度。gtp_tuninfo_saddr、gtp_tuninfo_daddr和gtp_tuninfo_dscp字段包含隧道的源地址(执行封装的交换机上的接口的地址)、隧道(隧穿分组将路由到并且将解封分组的交换机)的目的地地址和指派给隧道承载的diffserv代码点(如有的话)。如果承载是专用承载并且它不是尽力而为承载,承载dscp将是非零。gtp_tuninfo_vlan_len和gtp_tuninfo_mpls_len分别包含vlan标记字段和mpls标签字段的长度。gtp_tuninfo_vlan_tags[0]和gtp_tuninfo_mpls_labels[0]包含实际vlan标记和/或mpls标签,其需要推到分组的隧道报头上。如果没有vlan或mpls标签交换路径(lsp)用于隧道,将缺乏这些字段(并且对应的长度字段将是零)。在一个实施例中,修改openflow来添加扩展消息用于添加、删除或修改epc承载或gtp隧道。用于添加、修改或删除epc承载或gtp隧道的openflow信令由一个openflow消息、ofp_flow_mod消息(其包含ersmt_gtpgtp流定义)组成。可以使用标准openflowofp_flow_mod消息,只要openflow协议解析器可以处理扩展流即可。如果流修改需要改变封装虚拟端口teid哈希表,openflow控制器必须发出gtpopenflow扩展消息,其包含teid哈希表条目。openflow控制器必须相继发出两个消息:首先是ofp_flow_mod消息,然后是teid哈希表修改消息,然后openflow控制器必须发出ofpt_barrier_request来迫使两个消息由openflow交换机处理。openflow消息扩展报头结构ofp_experimenter_header包含实验者id字段,叫作实验者。在一个实施例中,该字段可以设置成ericssonieeeoui、0x01ec或相似的制造商或提供商oui。结构的剩余部分包含gtp扩展消息。这些消息可以由下列消息代码识别:gtpopenflow扩展包含用于添加和用于删除teid哈希表条目的消息。通过首先删除对于teid的条目、然后对于相同teid添加新的条目来修改条目。用于在封装虚拟端口哈希表中输入新的teid条目的gtpopenflow扩展消息是:tied_table_add_type字段设置成gtp_add_teid_table_entry,而tied_table_add_teid字段包含teid并且tied_table_add_entry包含要添加的表条目。用于从封装虚拟端口哈希表删除teid条目的gtpopenflow扩展消息是:tied_table_del_type字段设置成gtp_del_teid_table_entry,而tied_table_del_teid字段包含对于要删除的条目的teid。在一个实施例中,对gtp的openflow扩展还包含openflow交换机配置。在接受来自epc云控制平面实体的任何gtp路由选择更新rpc之前,openflow控制器必须在gtp扩展openflow网关交换机上配置gtp封装和/或解封虚拟端口。配置使用交换机特定配置协议来实现,并且在上文描述。除gtp扩展openflow网关上的虚拟端口配置外,在将比尽力而为gtp承载业务更好地转发的任何openflow交换机上可需要qos队列配置。openflow协议未包含用于配置队列的消息,该配置由配置协议作决定,虚拟端口是同样的情况。在安装任何流路由之前,openflow控制器必须配置任何队列来与将比尽力而为gtp承载更好地路由的交换机中的物理和/或虚拟端口。该配置步骤必须对gtp扩展openflow交换机和标准openflow交换机两者都进行。在一个实施例中,修改对于gtp操作的openflow消息流。如上文描述的,epc控制平面实体(其包括sgw和pgw的epc控制平面部分sgw-c和pgw-c)在数据中心处驻存在云计算系统设施中。在由gtp信令触发路由选择改变时,sgw-c和pgw-c经由远程规程调用(rpc)或相似的机制而与云内的openflow控制器通信。通过使云连接到网关和交换机的控制平面网络上的openflow信令,openflow控制器向支持gtp扩展openflow的数据平面网关sgw-c和pgw-c以及向为了gtp路由选择而扩展的openflow交换机(在本文称为‘gxofs’)颁布数据平面上的改变。一般,如果对于gtp流不需要特殊路由选择对待,gxofs不需要信令。可能需要这样的对待的情况是例如:建立的gtp承载比尽力而为承载更好并且业务类在中间交换机(即,不仅仅是在网关上)上需要承载业务的专门qos对待的情况;运营商的epc在超过一个点处具有与互联网对等的点并且因此具有超过一个网关、到最佳网关的路由选择可需要在中间交换机处操纵epc内的业务的情况;和gtp流必须在运营商网络内(例如,在云内)的某处从应用接收特殊对待的情况。这样的特殊对待的示例是转换编码。中间交换机可需要编程来将用户平面分组路由到转换编码应用。该列表不是详尽的,在中间交换机上的gtp路由的许多其它应用是可能的。承载和gtp隧道可以使用gtp-c创建会话请求消息来设置。该规程在多种消息序列中(例如,在e-utran初始附着规则中)使用。在图20中,示出对于创建会话请求规程的openflow消息流的示例。在图示的示例中,mme向云计算系统中的sgw-c发送创建会话请求,该sgw-c然后将请求发送到pgw-c。pgw-c通过gtp路由选择更新rpc调用来调用openflow控制器,从而请求openflow控制器在sgw-d和pgw-c处建立新的gtp隧道端点以及为中间交换机上的新的gtp承载或隧道安装路由(如必需的话)。在将来自gtp路由选择更新rpc的结果返回pgw-c之前,openflow控制器向合适的数据平面网关实体发出openflow消息序列。在示例实施例中,序列以ofp_barrier_request开始来确保没有可能影响下列消息处理的挂起消息。然后发出ofpt_flow_mod消息,其包括作为匹配字段的具有gtp扩展的ofp_match结构和作为命令字段的ofpfc_add。消息规定动作和指令(如上文描述的),以对于通过合适的虚拟端口封装和解封分组的gtp隧道建立流路由。另外,紧接着ofpt_flow_mod消息,openflow控制器向网关发出gtp_add_teid_table_entry消息,其包含对于封装虚拟端口的teid哈希表条目。如上文描述的,两个openflow消息后跟ofp_barrier_request消息以在进行之前迫使网关处理流路由和teid哈希表更新。在从gtp路由选择更新rpc返回之前,openflow控制器还向在定制gtp流路由选择中需要牵涉的任何gtp扩展openflow交换机(gxofs)发出任何gtp流路由选择更新。这些更新中的消息由ofp_barrier_request、后跟ofpt_flow_mod消息组成,该ofpt_flow_mod消息包含对于新的gtp流作为匹配字段的具有gtp扩展的ofp_match结构和作为命令字段的ofpfc_add,以及上文描述的对于定制gtp流路由选择的动作和指令。最后的ofp_barrier_request迫使交换机在作出响应之前处理改变。任何gxofs上的流路由在sgw-d上安装gtp隧道端点路由之后并且在pgw-d上安装gtp隧道端点路由之前安装,如在图19中图示的。openflow控制器直到已经实现所有流路由选择更新才对pgw-crpc作出响应。一旦返回rpc,pgw-c和sgw-c返回创建会话响应消息。在mme接收这样的响应时,它可以用指示ue自由地开始使用承载或隧道的初始上下文设置请求或附着接受消息来向enodeb传递信号。gtp承载的特性使用修改承载请求规程来改变。这样的改变可例如包括指派给ip分组的qos。该规程在多种epc消息序列(例如,ue触发的服务请求)中使用。图21是对于修改承载请求规程的openflow消息序列的一个实施例的图。如与会话创建一样,epc云控制平面mme向sgw-c发出修改承载请求消息并且sgw-c向pgw-c发出修改承载请求消息。pgw-c然后可选地开始具有pcrf的策略和计费增强功能(pcef)发起的互联网协议连接性接入网络(ip-can)会话修改过程。在完成该过程时,pgw-c向openflow控制器发出gtp路由选择更新rpc,其包括新的承载更新信息。openflow控制器然后向sgw-d、gxofs和pgw-d发出gtp扩展openflow消息。在将来自gtp路由选择更新rpc的结果返回pgw-c之前,openflow控制器向合适的数据平面网关实体发出openflow消息序列。序列以ofp_barrier_request开始来确保没有可能影响下列消息处理的挂起消息。然后发出ofpt_flow_mod消息,其包括作为匹配字段的具有gtp扩展的ofp_match结构和作为命令字段的ofpfc_modify或ofpfc_modify_strict。如必需的话,消息规定动作和指令(如上文描述的),以对于通过合适的虚拟端口封装和解封分组的gtp隧道建立新的流路由。另外,如果在teid哈希表中需要改变,紧接着ofpt_flow_mod消息,openflow控制器发出tp_del_teid_table_entry来删除后跟tp_add_teid_table_entry消息的条目以安装新的条目。如上文描述的,两个openflow消息后跟ofpt_barrier_request消息以在进行之前迫使网关处理流路由和teid哈希表更新。在从gtp路由选择更新rpc返回之前,openflow控制器还向在定制gtp流路由选择中需要牵涉的任何gtp扩展openflow交换机(gxofs)发出必需的gtp流路由选择更新。这些更新中的消息由ofp_barrier_request、后跟ofpt_flow_mod消息组成,该ofpt_flow_mod消息包含对于新的gtp流作为匹配字段的具有gtp扩展的ofp_match结构和作为命令字段的ofpfc_modify或ofpfc_modify_strict,以及如上文描述的对于定制gtp流路由选择的动作和指令(如必需的话)。最后的ofp_barrier_request迫使交换机在作出响应之前处理改变。任何gxofs上的流路由在sgw-d上安装gtp隧道端点路由之后并且在pgw-d上安装gtp隧道端点路由之前安装,如在图21中图示的。openflow控制器直到已经实现所有流路由选择更新才对pgw-crpc作出响应。一旦已经返回rpc,pgw-c和sgw-c返回修改承载响应消息。使用删除会话请求规程来删除gtp承载。该规程可以在多种epc消息序列(例如,ue触发的分离请求)中使用。图22是对于删除会话请求规程的openflow消息序列的一个实施例的图。在图22中,示出两个不同的消息序列。如果空闲模式信令减少(isr)打开,sgw-c用对openflow控制器的gtp路由选择更新rpc来调用openflow控制器。在该情况下,在信令中未牵涉pgw-c。如果isr未打开,则sgw-c向pgw-c发送删除会话请求。pgw-c可选地实施具有pcrf的pcef发起的ip-can会话终止过程,然后向openflow控制器发出gtp路由选择更新rpc。在gtp路由选择更新rpc返回时,pgw-c向sgw-c发出删除会话答复。该序列在图22中在盒2201中示出。在任一情况下,在向调用方返回gtp路由选择更新rpc之前实施openflow信令。由openflow控制器发出的删除会话的openflow消息序列如下。序列以ofp_barrier_request开始来确保没有可能影响下列消息处理的挂起消息。然后发出ofpt_flow_mod消息,其包括作为匹配字段的具有gtp扩展的ofp_match结构和作为命令字段的ofpfc_delete或ofpfc_delete_strict。另外,紧接着ofpt_flow_mod消息,openflow控制器发出gtp_del_teid_table_entry来删除teid哈希表条目。如上文描述的,两个openflow消息后跟ofpt_barrier_request消息以在进行之前迫使网关处理流路由和teid哈希表更新。在从gtp路由选择更新rpc返回之前,openflow控制器还向在定制gtp流路由选择中需要牵涉的任何gtp扩展openflow交换机发出必需的gtp流路由选择更新。这些更新中的消息由ofp_barrier_request、后跟ofpt_flow_mod消息组成,该ofpt_flow_mod消息包含对于新的gtp流作为匹配字段的具有gtp扩展的ofp_match结构和作为命令字段的ofpfc_delete或ofpfc_delete_strict。最后的ofp_barrier_request迫使交换机在作出响应之前处理改变。任何gxofs上的流路由在sgw-d上安装gtp隧道端点路由之后并且在pgw-d上安装gtp隧道端点路由之前安装,如在图21中图示的。openflow控制器直到已经实现所有流路由选择更新才对调用实体作出响应。备选实现在其它实施例中,拆分的epc架构可以在非云和非虚拟化系统中实现。epc架构的控制平面实体可以在单个服务器上存储和执行或跨任何数量的服务器或相似的计算设备分布。相似地,控制平面实体可以在没有虚拟化或相似系统的情况下作为标准软件代码和模块来执行。这些控制平面实体可以通过本地系统或规程调用、远程规程调用或相似的机制而彼此通信。在另外的实施例中,控制平面实体的子集可以在云计算系统中虚拟化或执行,而控制平面实体的另一个子集可以在服务器、分布式服务器系统或相似的系统中执行。控制平面实体可以通过使用如上文描述的openflow协议或通过如下文描述的其它控制协议而与数据平面通信。上文描述的云计算系统通过示例而非限制的方式提供。本领域内技术人员将理解上文描述的与云计算系统有关的原理和特征也可以在例如单个服务器或分布式服务器系统等其它配置中实现。与上文描述的那些相似的原理和特征可以在单个服务器系统、分布式服务器系统和相似的计算环境中实现。这些原理和特征也可以使用非虚拟化的环境(其包括在云计算系统、单个服务器、分布式服务器系统和相似系统的任何组合中执行的非虚拟化控制平面实体)来实现。在其它实施例中,其它控制协议可以代替本文描述的openflow来使用。openflow的使用通过示例而非限制的方式呈现。其它控制协议也可以用于管理控制平面与数据平面之间的通信以及拆分的epc架构的数据平面的配置。这样的协议的示例是forces:用于拆分控制平面并且在网络中转发平面的ietf标准协议。forces协议规范在rfc5810中描述。rfc5812描述forces转发元件(openflow交换机的等同物)的架构。forces协议自身不直接支持到将路由编程到转发元件内,它相反是用于处理forces控制器与forces转发元件之间的交互的框架。转发元件架构描述如何设计实际上允许forces控制器对forces转发元件编程的协议。本领域内技术人员将理解基于forces的系统可以包括上文描述的关于openflow实施例的特征(例如gtpopenflow扩展),以允许控制器对gtpteid路由选择的交换机编程。forces和openflow通过示例而非限制的方式提供。本领域内技术人员将理解上文描述的与forces和openflow协议有关的原理和特征也可以在其它相似的控制协议中实现。mtu分段如果分组大小大于最大传送单元(mtu),一些ipv4网络将分组分段。因为这样的分组的分段将不包含gtp报头,分段的分组需要在通过转发表处理之前由openflowgtp交换机重组。该分段和重组可以使用任何分段过程或技术。从而,已经描述用于在云计算系统中实现epc的方法、系统和装置。要理解上文的描述意在为说明性而非限制性的。许多其它实施例在阅读并且理解上文的描述时将对本领域内技术人员变得明显。本发明的范围因此应参考附图连同这样的权利要求享有的等同物的全范围而确定。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1