首页> 中国专利> 利用OpenFlow数据和控制面在云计算机中实现3G分组核心

利用OpenFlow数据和控制面在云计算机中实现3G分组核心

摘要

一种用于在具有分离的体系结构的第三代(3G)网络的分组核心(PC)中实现通用分组无线电服务(GPRS)隧道协议(GTP)的方法,所述分离的体系结构中3G网络的PC的控制面位于云计算系统中,该云计算系统包括控制器,该控制器用于执行多个控制面模块,该控制面用于经由控制面协议与PC的数据面通信,通过如下操作在3G网络的多个网络元件中实现该数据面:配置实现SGSN和GGSN的数据面的交换机和中间交换机以建立第一和第二GTP隧道端点。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-10-05

    授权

    授权

  • 2014-08-27

    实质审查的生效 IPC(主分类):H04L12/911 申请日:20120731

    实质审查的生效

  • 2014-07-16

    公开

    公开

说明书

技术领域

本发明的实施例涉及一种用于实现云计算系统中的第三代分组核心的控制面的方法和系统。确切地来说,本发明的实施例涉及使用OpenFlow协议来通过控制面在云计算机系统中执行来实现数据面的控制。

背景技术

通用分组无线电系统(GPRS)是一种用于在如蜂窝电话的用户装置与因特网之间传送因特网协议分组的系统。GPRS系统包括GPRS核心网络,其是全球移动通信系统(GSM)的一个组成部分。这些系统广泛地被蜂窝电话网络提供商利用来在大区域上实现蜂窝电话服务。  

GPRS隧道传输协议(GTP)是GPRS核心网络内利用的一种重要通信协议。GTP使GSM网络中的最终用户装置(例如,蜂窝电话)能够从一个地方到另一个地方移动同时继续连接到因特网。最终用户装置经由网关GPRS支持节点(GGSN)连接到因特网。从最终用户装置的、正在处理始发于该最终用户装置的会话的服务GPRS支持节点(SGSN),GGSN跟踪该最终用户装置的数据。 

GPRS核心网络使用三种形式的GTP。GTP-U用于在对应于每个分组数据协议(PDP)上下文分离的隧道中的用户数据的传输。GTP-C用于GPRS核心网络内进行GGSN与SGSN之间的信令传送。GTP'用于将收费数据从GSM或UMTS网络的收费数据功能(CDF)载送到收费网关功能(CGF),这将必要的最终用户装置使用信息提供到计费系统。GTP’使用与GTP-C和GTP-U相同的消息结构。

发明内容

一种用于在具有分离的体系结构的第三代(3G)网络的分组核心(PC)中实现通用分组无线电服务(GPRS)隧道协议(GTP)的方法,该分离的体系结构中3G网络的PC的控制面位于云计算系统中,该云计算系统包括控制器,该控制器用于执行多个控制面模块,该控制面用于经由控制面协议与PC的数据面通信,该数据面在3G网络的多个网络元件中实现,所述方法包括如下步骤:由该控制器接收在3G网络的PC中服务GPRS支持节点(SGSN)与网关GPRS支持节点(GGSN)之间创建用于订户会话的GTP隧道的请求;经由该控制协议配置实现SGSN的数据面的交换机以封装和解封装该订户会话的分组,并建立第一GTP隧道端点;经由该控制面协议配置该GTP隧道的路由中的至少一个交换机以根据该GTP隧道转发订户会话的分组;以及经由该控制面协议配置实现GGSN的数据面的交换机以封装和解封装该订户会话的分组,并建立第二GTP隧道端点。

一种用于管理具有分离的体系结构的第三代(3G)网络的分组核心(PC)中的通用分组无线电服务(GPRS)隧道协议(GTP)的实现的云计算系统,该分离的体系结构中3G网络的PC的控制面位于云计算系统中,该控制面用于经由控制面协议与PC的数据面通信,该数据面在3G网络的多个网络元件中实现,该云计算系统包括:彼此通信且与实现PC的数据面的多个网络元件通信的多个服务器,这些多个服务器执行:控制器,所述控制器配置成执行实现PC的控制面的多个控制面模块,每个控制面模块用于提供用于管理数据面的一组控制面功能, 该控制器配置成接收在3G网络的PC中服务GPRS支持节点(SGSN)与网关GPRS支持节点(GGSN)之间创建用于订户会话的GTP隧道的请求, 该控制器配置成经由该控制面协议配置实现SGSN的数据面的交换机以封装和解封装该订户会话的分组,并建立第一GTP隧道端点,该控制器配置成经由该控制面协议配置该GTP隧道的路由中的至少一个交换机以根据该GTP隧道转发订户会话的分组,以及该控制器配置成经由该控制面协议配置实现SGSN的数据面的交换机以封装和解封装该订户会话的分组,并建立第二GTP隧道端点;以及通信上耦合到该控制器的云管理器,该云管理器配置成管理PC的多个控制面模块的执行。

附图说明

附图的图形中以举例而非限制的形式来说明本发明,在这些附图中相似的引用号指示相似的元件。应该注意,对本公开中“一个”或“一”实施例的不同引述不一定是针对相同的实施例,以及此类引述表示至少一个。再者,当结合实施例描述特定特征、结构或特点时,认为结合其他实施例来实现此类特征、结构或特点属于本领域技术人员的知识范围内,无论其是否明确地被描述。

图1是具有OpenFlow交换机的示例网络的一个实施例的示意图。 

图2是图示流表项的内容的一个实施例的示意图。

图3图示实现OpenFlow的另一个示范体系结构。 

图4图示经由OpenFlow交换机分组处理管线的分组处理的一个实施例。 

图5是OpenFlow规则匹配过程的一个实施例的流程图。

图6是匹配过程可以利用来识别要应用于分组的规则的字段的示意图。

图7A和图7B是OpenFlow报头处理的过程的一个实施例的流程图。

图8是第三代(3G)分组核心(PC)的一个实施例的示意图。

图9是主要GTP-U封装报头的报头字段的一个实施例的示意图。

图10是服务于一组客户端的云计算系统的一个实施例的示意图。 

图11是示出将新服务实例添加到客户端的VPC的过程的云计算系统的另一个实施例的示意图。

图12是云计算系统中实现的3G PC的一个实施例的示意图。

图13是3G PC网络的基本操作的过程的一个实施例的流程图。

图14是云计算系统中的3G PC如何使管理服务公司能够在单个数据中心外管理多个运营商网络的一个实施例的示意图。

图15是用于专门服务处理的3G PC对等和差异化路由选择的过程的一个实施例的流程图。

图16是用于GTP TEID路由选择的OpenFlow流表修改的一个实施例的示意图。

图17是流表行的结构的示意图。

图18A-C是3G PC中的会话创建、修改和删除的流程图。

图19是用于创建会话请求过程的OpenFlow消息流的一个实施例的示意图。

图20是用于修改会话请求过程的OpenFlow消息序列的一个实施例的示意图。

图21是用于删除会话请求过程的OpenFlow消息序列的一个实施例的示意图。

具体实施方式

在下文描述中,提出许多特定的细节。但是,要理解没有些特定细节的情况下,仍可以实施本发明的实施例。在其他情况中,未详细地图示公知的电路、结构和技术,以不致于妨碍对描述的理解。然而本领域人员将认识到,在没有这些特定细节的情况下,仍可以实施本发明。本领域技术人员利用所包含的描述将能够无需过多实验即可实现适当的功能性。

这些流示意图的操作将参考图8、图10-12、图14和图15的示范实施例来描述。但是,应该理解,这些流示意图的操作可以由参考图8、图10-12、图14和图15论述的那些实施例以外的本发明实施例来执行,并且参考图8、图10-12、图14和图15论述的实施例可以执行与参考图5、图7、图13、图18、图19、图20和图21的流示意图论述的操作不同的操作。

附图中示出的技术可以使用一个或多个电子装置(例如端站、网络单元等)上存储并执行的代码和数据来实现。此类电子装置使用非暂时机器可读或计算机可读介质来存储和(在内部和/或通过网络与其他电子装置)传送代码和数据,所述非暂时机器可读或计算机可读介质诸如非暂时机器可读或计算机可读存储介质(例如,磁盘、光盘、随机存取存储器、只读存储器、闪存存储器装置和相变存储器)。此外,此类电子装置通常包含一组一个或多个处理器,该组一个或多个处理器耦合到诸如一个或多个存储装置、用户输入/输出装置(例如,键盘、触摸屏和/或显示器)和网络连接的一个或多个其他组件。该组处理器与其他组件的耦合通常经由一个或多个总线和桥接(也称为总线控制器)。这些存储装置表示一个或多个非暂时机器可读或计算机可读存储介质或非暂时机器可读或计算机可读通信介质。因此,给定电子装置的存储装置通常存储用于在该电子装置的该组一个或多个处理器上执行的代码和/或数据。当然,本发明实施例的一个或多个部分可以使用软件、固件和/或硬件的不同组合来实现。

正如本文所使用的,网络单元(例如,路由器、交换机、网桥等)是通信上互连网络上的其他设备(例如,其他网络单元、端站等)的一件联网设备,其包括硬件和软件。一些网络单元是为多个联网功能(例如,路由选择、桥接、交换、第2层汇聚、会话边界控制、组播和/或订户管理)提供支持和/或为多个应用服务(例如,数据,语音和视频)提供支持的“多个服务网络单元”。订户端站(例如,服务器、工作站、膝上型计算机、掌上型计算机、移动电话、智能电话、多媒体电话、基于因特网的语音(VOIP)电话、便携式媒体播放器、GPS单元、游戏系统、机顶盒(STB)等)访问通过因特网提供的内容/服务和/或通过叠加在因特网上的虚拟专用网络(VPN)上提供的内容/服务。内容和/或服务通常由属于服务或内容提供商的一个或多个端站(例如,服务器端站)或参与对等服务的端站提供,并且可以包括公有Web页面(免费内容、店铺首页、搜索服务等)、专用Web页面(例如,提供电子邮件服务等的用户名/密码访问的Web页面)、基于VPN的企业网络,IPTV等。通常,订户端站耦合(例如,通过(有线或无线方式)耦合到接入网的客户住宅设备)到边缘网络单元,边缘网络单元耦合(例如通过一个或多个核心网络单元耦合到其他边缘网络单元)耦合到其他端站(例如,服务器端站)。  

本发明的实施例提供一种用于避免现有技术的缺点的方法和系统。现有技术的缺点在于,3G分组核心的现有技术实现使用专用于特定网络实体的服务器池,如专用于托管SGSN的服务器池。当附加的信令需求要求额外容量时,则在服务器池中实例化一个新的SGSN实例。但是,当对于归属订户服务器(HSS)的服务来说需求高时,专用于HSS的服务器池将高负荷地被利用,而用于SGSN的服务器池则利用不足。这些利用不足的服务器池仍继续需要维护且产生运营开支,但是并未给网络运营商提供最优性能。

在一些情况中,管理服务公司构建和运行移动运营商网络,同时移动运营商本身处理营销、计费和客户关系。每个移动运营商网络的信令和数据业务保持专用且与其竞争对手的业务隔离,即使它们的网络与竞争对手的网络可能由相同的管理服务公司管理。管理服务公司必须为它支持的每个移动运营商维护完全独立的服务器池和物理信令网络。因此,存在巨大的资源重叠和服务器容量的利用不足。由于此附加的设备、电力和散热需求,这增加了管理服务公司和移动运营商网络的运营开支。

3G分组核心体系结构,正如它目前所定义的,在移动运营商的固定核心/因特网与移动汇聚网络之间只允许有一个在场点(PoP),即,有一个网关GPRS支持节点(GGSN)。移动网络运营商无法在汇聚网络内的相邻运营商之间建立多个对等点和PoP。这样将减少流入移动运营商的核心网络的业务量,由此降低对昂贵且耗时的核心网络升级的需求。此外,对等点往往对于运营商是无成本,只要找到服务级协议(SLA)即可。但是,这种部署的灵活性对于移动运营商是不可用的,因为需要在单个移动网关处将它们的PoP与核心/因特网锚定(anchor)。 

3G PC体系结构对于用户流的专门处理,包含的灵活性也很少。虽然该体系结构提供对建立服务质量(QoS)的支持,但是其他类型的数据管理不可用。例如,涉及中间件(middleboxes)的服务,如可以利用来转码或用于增扩现实应用的与本地数据缓存和处理资源的专门的深度分组检查或交互,难以利用目前的3G PC结构体系予以支持。几乎所有此类应用都需要分组流经由GGSN离开,从而撤销从GTP的隧道,以及在有线网络内进行处理。

在云计算设施中实现3G PC的控制面以及使用一组OpenFlow交换机来实现3G PC的数据面,以及使用OpenFlow协议(例如,OpenFlow 1.1)来管理控制面与数据面之间的通信,这产生一个问题:OpenFlow协议不支持GTP或GTP隧道端点标识符(TEID)路由选择,而这对于实现3G PC的数据面是必不可少的。

本发明的实施例克服了现有技术的这些缺点。通过将3G PC体系结构的控制面与数据面分离并过在云计算设施中部署3G PC控制面实体来实现控制面,同时由分布式OpenFlow交换机集合来实现数据面,避免了现有技术的这些缺点。使用OpenFlow协议连接二者,其具有支持GTP路由选择的增强。虽然基于SSGN和GGSN主要是数据面实体,而归属位置寄存器(HLR)、归属订户服务器(HSS)和认证中心(AUC)主要是控制面实体而言,3G PC体系结构已经在控制面与数据面之间有分离,但是这种分离是在移动性管理协议GTP的级别上进行的。 

标准3G PC体系结构采用一种用于传输的标准路由的IP网络,在其之上实现移动网络实体和协议。而本文描述的增强式3G PC体系结构处于IP路由选择和媒体访问控制(MAC)交换的级别。取代作为分布式控制实体的集合,使用L2路由选择和L3内部网关协议来分发IP路由选择和管理以太网和IP路由,将L2和L3路由选择管理集中云设施中,并且使用OpenFlow协议从云设施控制路由选择。正如本文使用的,“OpenFlow协议”是指OpenFlow交换机规范中定义的OpenFlow 网络协议和交换规范,参见史丹佛大学托管的Web网址www.openflowswitch.org。正如本文所使用的,“OpenFlow交换机”是指实现OpenFlow协议的网络元件。

在云中部署SGSN和GGSN的标准3G PC控制面实体HSS、HLR、AUC、访问者位置寄存器(VLR)、设备标识寄存器(EIR)、短消息服务互通消息中心(SMS-GMSC)、SMS网关消息中心(SMS-GMSC)和订户位置功能(SLF)和多个控制面方面。该数据面由标准OpenFlow交换机而非IP路由器和以太网交换机组成,这些标准OpenFlow交换机具有按需用于路由选择GTP分组的增强。最少,SGSN和GGSN的数据面部分和E-UTRAN中的节点B的分组路由选择部分需要OpenFlow增强来用于GTP路由选择。在3G PC体系结构内的其他交换机上可能需要用于GTP路由选择的附加增强,具体取决于运营商需要对路由选择何种程度精细粒度的控制。用于GTP路由选择的增强包括用于3G PC体系结构的建立GTP隧道、修改GTP隧道和拆除GTP隧道的过程。

可以将3G PC的控制面部分和数据面部分之间的分离与虚拟专用云(VPC)技术一起使用以在单个3G PC内实现多个PoP,为专门的应用提供GTP流相关的路由选择,以及从单个云技术设施运行多个运营商网络。  

在一个实施例中,可以将基于云的3G PC系统实现为一组硬件装置。在另一个实施例中,这些系统组件以软件(例如,微代码、汇编语言或高级语言)来实现。这些软件实现可以被存储在非暂时计算机可读介质上。一种非暂时“计算机可读”介质可以包括能够存储信息的任何介质。非暂时计算机可读介质的示例包括只读存储器(ROM)、软盘、CD Rom、DVD、闪存存储器、硬盘驱动器、光盘或类似介质。

OpenFlow 1.0网络

图1是具有符合OpenFlow 1.0规范的OpenFlow交换机的示例网络的一个实施例的示意图。OpenFlow 1.0协议使控制器101能够 使用安全信道103连接到启用OpenFlow 1.0的交换机109并控制交换机109中的单个转发表107。控制器101是由远程计算装置执行的外部软件组件,其使得用户能够配置OpenFlow 1.0交换机109。安全信道103可以由任何类型的网络来提供,包括局域网(LAN)或广域网(WAN),如因特网。

图2是图示流表项的内容的一个实施例的示意图。转发表107被填充以如下组成的项:定义分组报头中的字段匹配的规则201;关联到流匹配的动作203;以及有关流的统计205的集合。当接收到入局分组时,在流表107中进行匹配规则的查询。如果入局分组与特定规则匹配,则对该分组执行该流表项中定义的关联的动作。 规则201包含来自协议栈中的若干报头的关键字段,例如,源和目的地以太网MAC地址、源和目的地IP地址、IP协议类型编号、入局和出局TCP或UDP端口号。为了定义流,可以使用所有可用匹配字段。但是还可能的是通过对不想要的字段使用通配符将匹配规则限制于可用字段的子集。 

OpenFlow 1.0的规范定义的动作是丢弃(Drop),这丢弃匹配分组;转发(Forward),这将该分组转发到一个或全部出局端口,入局物理端口本身,经由安全信道转发到控制器或转发到本地联网栈(如果存在的话)。OpenFlow 1.0协议数据单元(PDU)被定义有使用C编程语言指定的一组结构。一些更常用的消息是:报告交换机配置消息;修改状态消息(包括修改流项消息和端口修改消息);读状态消息,其中系统运行时,可以使用此消息就有关其当前状态查询数据路径;以及发送分组消息,其在控制器希望经由数据路径外发分组时使用。

OpenFlow 1.0支持“供应商扩展”,其允许扩展某些协议元件。可以扩展协议消息和表动作,但是不能扩展流匹配规则。下文进一步论述与基于云的EPC体系结构结合来使用这些扩展。

OpenFlow 1.1网络

图3图示符合OpenFlow 1.1规范的实现OpenFlow的另一个示例体系结构。在本实施例中,有多个流表301的显性提供。这允许分组处理管线混合以及匹配特定规则和动作而不会导致表大小中的组合爆炸。例如,一个流表可以执行QoS处理,而第二个流表执行路由选择。 

图4图示经由OpenFlow 1.1交换的分组处理管线的分组处理的一个实施例。对照每个流表401比较接收的分组。在每个流表匹配之后,将动作累积成动作集。如果处理需要对照另一个流表匹配,则匹配的规则中的动作包括将定向处理到管线中的下一个表的动作。没有动作包括在要即刻执行所有累积的动作的集中,在分组处理管线的结束403处执行这些动作。动作允许将数据写入到元数据寄存器,其沿着在分组处理管线中如分组报头运送。

图5是OpenFlow 1.1规则匹配过程的一个实施例的流程图。OpenFlow 1.1包含分组标记的支持。OpenFlow 1.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)。对于每个接收到的分组执行此过程。

在一个实施例中,可以与OpenFlow 1.1协议结合来支持群表。群表能够实现用于允许单个流匹配触发多个端口上的转发的方法。群表项由如下四个字段组成:群标识符,它是标识该群的32位无符号整数;确定群的语义的群类型;维持有关群的统计的计数器;以及动作桶(action bucket)列表,它是动作桶的有序列表,其中每个桶包含要利用其参数一起执行的一组动作。 

有四种不同类型的群:全部,其执行桶列表中的所有动作,这用于广播或组播转发;选择,其基于OpenFlow协议外的交换机所确定的算法对每个分组执行一个桶,这用于实现多路径转发;间接,其对所有分组执行单个桶,这允许将多个流或群指向单个动作集合,而非具有多个转发表项中定义的动作;快速故障转移(Fast Failover),其执行第一活跃(live)桶,其中每个桶与控制其活跃的端口关联,这使得交换机能够故障转移到另一个端口而不涉及到控制器。

可以利用OpenFlow 1.1来支持虚拟端口。正如本文所使用的,虚拟端口是执行某种处理动作而非如物理端口所执行的那样简单地将分组转发出去到网络连接的“动作块”。几个内置虚拟端口的示例包括:全部(ALL),其将转发所有端口中进入端口和标记“不转发”的任何端口以外的端口;控制器(CONTROLLER),其封装分组并将其发送到控制器;表(TABLE),其通过将分组提交到第一流表来将分组插入到分组处理管线中,此动作仅在packet-out消息的动作集中有效;以及IN_PORT,其将分组发送出进入端口。在其他实施例中,还可以有交换定义的虚拟端口。

3G PC体系结构

图8是3G分组核心(3G PC)网络的一个实施例的示意图。3G PC网络由三个交互域组成:核心网络(CN)801、无线电接入网(RAN)803和用户设备(UE)805。用户设备805可以是计算装置、蜂窝电话和类似装置。无线电接入网803可以是任何数量的网络或网络的组合,包括通用移动电信系统(UMTS)841或全球移动通信系统(GSM)网络843。这些网络能够经由无线电网络中心(RNC)831或分组控制单元(PCU)833与核心网络801实现接口。

核心网络801的主要功能是为来自用户设备805的用户业务提供交换、路由选择和运送。核心网络801还包括数据库和网络管理功能。它是用于GSM/GPRS的公共分组核心网络、宽带码分多址(WCDMA)/高速分组接入(HSPA)和非3GPP移动网。核心网络801用于传送因特网协议(IP)分组。核心网络801经由GGSN 819与因特网851和其他网络853接口连接。

核心网络801分成电路交换域和分组交换域。电路交换元件包括移动服务交换中心(MSC)811、访问者位置寄存器(VLR)813和网关MSC 815。分组交换的元件是SGSN 817和GGSN 819。其他网络元件,如EIR 821、HLR 823、VLR 813和AUC 825被这两个域共享。

在引入新服务和特征时,核心网络801的体系结构可以改变。在其他实施例中,可以使用号码便携性数据库(NPDB)以使用户能够在保持旧电话号码的同时更改网络。可以使用网关位置寄存器(GLR)来优化网络边界之间的订户处理。

核心网络801有关移动无线联网的主要功能是移动性管理和QoS。典型地,固定宽带网络中不提供这些功能,但是,它们对于无线网络是关键的。移动性管理对于无线终端从一个基站移动到另一个基站时确保分组网络连接性是必不可少的。QoS是必不可少的,因为不同于固定网络,无线链路在它能够向终端提供多少带宽上存在很大约束,所以需要比固定网络中更严格地管理带宽,以便向用户提供可接受的服务质量。 

用于实现移动性管理和QoS功能的信令由GPRS隧道传输协议(GTP)来提供。GTP具有两个组件: GTP-C – 一种控制面协议,其支持隧道的建立以用于移动性管理和用于将有线回程和分组核心QoS匹配到无线电链路QoS的QoS管理的载体;以及GTP-U – 一种数据面协议,其用于实现作为路由器的网络元件之间的隧道。有两个版本的GTP-C协议,即GTP版本1(GTPv1-C和GTPv1-U)和GTP版本2-C(为LTE设计的)。GTPv1主要与基于3G PC的系统结合来利用。 

网络服务被认为是端到端的,这意味着从终端设备(TE)到另一个TE。端到端服务可以具有为网络服务的用户提供的某个服务质量(QoS)。是由用户判断他是否满意所提供的QoS。为了实现某个网络QoS,要从服务的源到目的地建立具有明确定义的特征和功能性的服务。 

除了QoS参数外,每个载体具有关联的GTP隧道。GTP隧道由隧道端点节点(无线电基站、SGSN和GGSN)的IP地址、源和目的地UDP端口和隧道端点标识符(TEID)组成。GTP隧道是单向的,所以每个载体与两个TEID关联性,一个对应于上行链路以及一个对应于下行链路隧道。一组GTP隧道(上行链路和下行链路)在无线电基站与SGSN之间延伸,以及一组在SGSN与GGSN之间延伸。GTP-U的UDP目的地端口号是2152,而GTP-C的目的地端口号是2123。源端口号由发送节点动态地分配。图9是主要GTP-U封装报头的报头字段的一个实施例的示意图。 

云计算

数据中心向外部客户提供计算、存储和网络通信资源。这些提供的服务可以由出于最实用的目的仅由客户的支付能力限制的弹性按需处理、存储和进入因特网的网络带宽组成。数据中心提供的这组服务在本文中称为云计算。 

服务器虚拟化技术允许将服务器池作为基本上一个大计算资源来管理。称为管理程序的软件层位于操作系统与硬件之间。管理程序调度虚拟机(VM)的执行。VM是与一些应用封装的操作系统映像。管理程序允许VM暂挂以及在服务器之间移动以进行负载平衡。负载平衡和监视VM执行以捕获崩溃,对于以专门的解决方案而付出远远更高成本实现的企业应用提供相同类型的容错和可伸缩性服务。云管理器系统监视VM的执行,调度执行以满足VM的需求以及优化服务器利用以及将功耗降到最小。云管理器或云操作系统是一种软件程序,其能够调度执行以允许硬件和软件的服务中升级而不影响该云计算系统中对VM及其应用的进行中服务提供。

为了支持VM在机器之间的随意移动,还必须将数据中心内的联网虚拟化。云计算系统可以通过将虚拟交换机并入管理程序来将网络虚拟化。虚拟交换机向管理程序控制下执行的VM提供虚拟网络端口。虚拟交换机软件允许以与管理程序如何将服务器资源虚拟化相似的方式将网络资源虚拟化。管理程序和虚拟交换机由此能够协同工作以使VM能够在服务器之间移动。当管理程序移动VM时,它就有关新的位置与虚拟交换机通信,并且虚拟交换机确保更新VM的地址(L2 MAC地址、可能还有IP地址)的网络路由选择表,由此将分组路由到新位置。

云计算系统可以由任何数量的具有任何能力范围(例如,处理功率或存储容量)的计算装置组成。云计算系统可以是私用或公用系统。计算装置可以跨任何通信系统或网络彼此通信。云计算系统能够支持单个云或服务或任何数量的离散云或服务。可以将服务、应用和相似程序虚拟化或作为标准代码来执行。在一个实施例中,云计算系统能够支持Web服务应用。Web服务应用由将请求派发到Web服务器池的负载平衡前端组成。请求始发于因特网上的远程机器上的应用,因此安全性和私密性要求比私用企业网络中的应用的安全性和私密性要求远远松。 

云计算机系统还能够支持安全多租户,在其中云计算机系统提供商在云外的客户的分布式办公室网络与云计算系统内的VPN之间提供类似虚拟专用网络(VPN)的连接。这样允许云计算系统内的客户的应用能够在类似企业WAN的网络环境中工作。对于私用数据中心,其中仅向拥有该数据中心的企业内的客户提供服务,放松多租户的安全性和私密性要求。但是对于公有数据中心,云运营商必须确保来自多个租户的业务被隔离,并且没有可能来自一个客户的业务到达另一个客户网络。

图10是服务于一组客户端的云计算系统的一个实施例的示意图。正如本文所使用的“集”是指任何正整数个项。在该实施例中,如图10所示,为两个不同的外部企业客户建立了两个虚拟专用云(VPC)。VPC由向租用云中空间的企业提供安全多租户的VM、存储和联网资源的集合组成。企业客户经由在公有运营商网络上运行的因特网上的VPN连接到VPC中。

图11是示出将新服务实例添加到客户端的VPC的过程的云计算系统的另一个实施例的示意图。在此情况中,使用MAC层虚拟LAN(VLAN)来实现云内VPN。为请求新服务实例的企业,在VPC内的管理程序管理的服务器上创建VM(步骤1)。将虚拟交换机VLAN配置成将新VM包括到企业云内VPN中,由此在云内建立服务连接性(步骤2)。为新服务更新虚拟客户边缘路由器(CE)(步骤3)。以新服务更新运行企业VPN所在的运营商网络中的提供商边缘路由器(步骤4)。

云计算系统中的3G PC实现

图12是云计算系统中实现的EPC的一个实施例的示意图。3G PC控制面实体(AUC、HLR、HSS)1207和支持节点(SGSN、GGSN)1207的控制面部分,即,处理GTP信令的部分,在云计算系统1201中作为OpenFlow控制器1205的部分来实现。控制面实体1207和OpenFlow控制器1205被封装为VM。OpenFlow控制器1205与控制面实体1207之间的应用编程接口(API)可以是远程过程调用(RPC)接口或类似接口。此实现技术利于云内的控制面实体的可伸缩管理,因为它允许根据需求分离地管理控制面实体1207和控制器1205的执行。云管理器1203可以是云计算系统1201内执行的VM或应用。

云管理器1203监视3G PC控制面实体1207的中央处理器单元(CPU)利用和云内3G PC控制面实体1207之间的控制面业务。它还监视最终用户装置(UE)1225与云计算系统1201中没有控制面实体的NodeB 1217与3G PC控制面实体1207之间的控制面业务。如果3G PC控制面实体1207开始呈现过载的迹象,如利用太多个CPU时间或太多待处理业务排队、过载的控制面实体1207请求云管理器1203启动新的VM来处理负载。此外,3G PC控制面实体1207本身能够在它们内部检测到它们正在开始遭受过载的情况下向云管理器1203发出事件通知。

云管理器1203还通过在3G PC控制面实体1207中任何一个应该崩溃的情况下重启用于该特定控制面实体1207的VM或功能来提供可靠性和故障转移。在此重启过程期间,云管理器能够收集诊断数据、保存故障的3G PC控制面实体的任何核心文件,并通知系统管理员发生故障。控制面实体1207在它们自己之间保持相同协议接口,如图8所示的3GPP 3G PC体系结构中那样。

OpenFlow控制面12321,如此处点划线所示,管理网络中的路由选择和交换配置。OpenFlow控制面1221将云计算系统1203连接到SGSN-D 1215(即,SGSN的数据面)、标准OpenFlow交换机1213和GGSN-D 1211(即,GGSN的数据面)。OpenFlow控制面1221的物理实现可以作为完全分离的物理网络,或者它可以是与数据面相同的物理网络上运行的虚拟网络,其利用设定优先级的VLAN或利用MPLS标签交换路径或甚至利用通用路由选择封装(GRE)或其他IP隧道来实现。OpenFlow控制面1221在原理上能够使用与GTP-C和其他移动网络信令相同的物理控制面路径。SGSN-D 1215和GGSN-D 1211作为OpenFlow GTP扩展的网关,使用本文下面进一步描述的OpenFlow GTP交换机扩展来封装和解封装分组。

NodeB 1217在云中没有控制面实体,因为3G PC与NodeB之间需求的无线电接入网(RAN)信令包含无线电参数,而不仅仅包含IP路由选择参数。因此,云计算系统1201中的OpenFlow控制器1205与NodeB 1217之间没有OpenFlow控制面1221连接。但是,NodeB 1217可以通过使用OpenFlow实现对数据面连接的本地控制来作为OpenFlow GTP扩展的网关。这样允许NodeB 1217的分组交换侧利用相同的OpenFlow GTP交换扩展作为分组网关。

3G PC云计算机系统的操作按如下工作。UE 1225、NodeB 1217、SGSN 1207和GGSN使用标准3G PC协议用信号通知1207 HLR、HSS、AUC、SMS-GMSC 1207建立、修改和删除GTP隧道。此信令触发通过OpenFlow控制器的过程调用以按请求修改3G PC中的路由选择。OpenFlow控制器为标准OpenFlow交换机、Openflow SGSN 1215和GGSN 1211配置以流规则和动作,以便能够实现控制面实体请求的路由选择。本文下面进一步详细地描述此配置的细节。

图13是3G PC的基本操作的过程的一个实施例的流程图。在一个实施例中,该过程开始于初始化云计算系统中的OpenFlow控制器内的3G PC的控制面模块(框13401)。多个控制面模块中的每个控制面模块被云管理器初始化为分离的VM。云管理器然后监视每个控制面模块的资源利用以及每个控制面模块处理的控制面业务的数量和类型(框1303)。云管理器可以直接地监视此数据,从控制面模块接收报告或其任何组合。

如果云管理器检测到正在监视的多个控制面模块的任何一个的资源利用或业务负载的阈值水平(框1205),则云管理器可以采取步骤自动响应此情况。云管理器可以将新控制面模块或或此类控制面模块的示例初始化为分离的虚拟机(框1207)。此新控制面模块或实例则可以分摊相同类型的现有控制面模块或实例的负载,从而动态地缓解这些模块上的负载。

相似地,云管理器可以检测到多个控制面模块的其中之一的故障或利用不足(框1209)。云管理器然后可以重启故障的控制面模块或终止利用不足的控制面模块(框图1211)。重启控制面模块确保控制面模块池的一定程度的负载分摊。将控制面模块去激活释放资源,并减少控制面模块产生的开销。云管理器可以使用云计算系统资源来对VPC和移动运营商执行这些功能,从而在保持移动运营商之间的数据和业务的严格分离的同时,将可用资源的使用最大化,并降低运营成本。

图14是云计算系统中的3G PC如何使管理的服务公司能够从单个数据中心当中管理多个运营商网络的一个实施例的示意图。管理服务云计算设施1401运行管理服务公司与之有合同的每个移动运营商的3G PC控制面的分离的实例。每个3G PC实例位于VPC 1403A、B中,它们将移动运营商的业务与数据中心的云计算设施1401中的其他租户隔离。移动运营商的3G PC控制面实例经由虚拟边缘路由器1409A、B连接到移动运营商的地理上分布式的3G PC OpenFlow数据面交换结构1407A、B和移动运营商的基站。虚拟边缘路由器1409A、B将业务从数据中心路由到适合的移动运营商3G PC数据面交换结构1407A、B,以及从适合的移动运营商3G PC数据面交换结构1407A、B路由业务。在一些情况中,移动运营商可以平均地共享基站和3G PC交换结构,虽然图14中的示例实施例示出两个移动运营商具有分离的交换结构的情况。

云计算系统中的3G PC对等和差别化路由选择

图15是用于专门服务处理的3G PC对等和差异化路由选择的过程的一个实施例的流程图。实线和箭头1501指示的OpenFlow信令建立3G PC内交换机和网关上用于差异化路由选择的流规则和动作。这些流规则将GTP流定向到特定位置。在此示例中,此情况中运营商使其3G PC与两个其他固定运营商实现对等。经由每个对等点的路由选择由相应GGSN1和GGSN2 1503A、B来处理。虚线和箭头1505示出来自UE 1507需要路由到另一个对等运营商的业务。由OpenFlow控制器1511将用于区分业务应遍历哪个对等点的流规则和动作安装在OpenFlow交换机1509和网关1503A、B中。OpenFlow控制器1511基于为外部业务保持的路由选择表、分组的源和目的地以及通过DSCP标记的分组所需的任何专门转发处理来计算这些流规则和动作。

长虚线和点划线和箭头1515示出从外部源获取内容的UE 1517的示例。该内容最初不是为UE的1517屏幕制定的,所以OpenFlow控制器1511已在GGSN1 1503B、SGSN 1519和OpenFlow交换机1509上安装了流规则和动作以在云计算设施中经由转码应用1521路由流。转码应用1521将内容重新格式化,以使它将适合UE的1517屏幕。在UE经由IP多媒体子系统(IMS)或另一个信令协议与外部内容源建立其会话时,MSC请求专门的处理。

GTP TEID路由选择

在一个实施例中,将OpenFlow修改成提供用于GTP TEID路由选择的规则。图16是用于GTP TEID路由选择的OpenFlow流表修改的一个实施例的示意图。在至少一个流表(例如,第一流表)中,除了其他OpenFlow报头字段外,支持TEID路由选择的OpenFlow交换机在2字节(16位)报头字段集合和4字节(32位)GTP TEID上进行匹配。可以通配GTP TEID标志(即,匹配“不予考虑”)。在一个实施例中,3G PC协议未向TEID赋予作为隧道的端点标识符以外的任何含义,如标准UDP/TCP传输协议中的端口一样。在其他实施例中,TEID可能具有相关的含义或语义。GTP报头标志字段也可以通配,可以通过组合如下位掩码来与之部分匹配:0xFF00 – 匹配消息类型字段;0xe0 – 匹配版本字段;0x10 – 匹配PT字段;0x04 – 匹配E字段;0x02 – 匹配S字段;以及0x01 – 匹配PN字段。

在一个实施例中,可以修改OpenFlow以支持用于快速路径GTP TEID封装和解封装的虚拟端口。可以使用OpenFlow移动网关来支持利用虚拟端口的GTP封装和解封装。可以使用GTP封装和解封装虚拟端口来进行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控制器,因为这些分组由云计算系统中的SGSN和GGSN控制面实体来处理,或发送到处理GTP’的计费实体,不发送到SGSN和GGSN数据面交换机。

使用配置协议从OpenFlow控制器配置GTP虚拟端口。配置协议的细节是交换机相关的。该配置协议必须支持执行如下功能的消息:允许控制器查询并返回交换机是否支持GTP快速路径虚拟端口以及使用什么虚拟端口号来进行快速路径和慢速路径GTP-U处理的指示;以及允许控制器在交换机数据路径内将GTP-U快速路径虚拟端口实例化以在OpenFlow表set-output-port动作中使用。该配置命令必须在事务中运行,以便当动作的结果报告回控制器时,所请求的数据路径的GTP-U快速路径虚拟端口已被实例化或返回错误以指示请求可能为何未被兑现。该命令还允许OpenFlow控制器将GTP-U虚拟端口绑定到物理端口。对于解封装虚拟端口,物理端口是输入端口。对于封装虚拟端口,物理端口是输出端口。

在交换机中安装任何规则以用于GTP TEID路由选择之前,OpenFlow控制器对可以经由GTP信道路由传送或接收分组的每个物理端口实例化虚拟端口。 

在一个实施例中,OpenFlow GTP网关维护散列表,该散列表将GTP TEID映射到它们的载体的隧道报头字段中。图17是流表行的结构的示意图。使用具有低冲突频率的适合散列算法,例如SHA-1来计算TEID散列关键字。网关对应于每个GTP TEID/载体维护一个此类流表行。TEID字段包含隧道的GTP TEID。VLAN标记和MPLS标签字段包含定义分组需要路由进入的隧道的VLAN标记和/或MPLS标签的有序列表。标签中包含VLAN优先级位和MPLS业务类位。此类隧道可能是要求的或可能不是要求的。如果它们不是所要求的,则这些字段是空的。隧道始发源IP地址包含应该将涉及隧道的任何控制业务(例如,错误指示)定向到封装网关上的地址。隧道末端目的地IP地址字段包含应该将隧道传送的分组路由到的网关的IP地址,在此IP地址处,分组将被解封装并从GTP隧道移除。QoS DSCP字段包含专用载体的情况中载体的DiffServe码点(如果有的话)。如果载体是尽力而为QoS的缺省载体,则此字段可以是空的,但是如果载体QoS大于尽力而为,则将包含非零值。

在一个实施例中,利用OpenFlow网关交换机来实现GTP的慢速路径支持。OpenFlow移动网关交换机还包括软件控制面上用于慢速路径分组处理的支持。具有非零报头字段或扩展字段的G-PDU(消息类型255)分组,以及需要利用此类字段的封装或扩展报头的添加的用户数据面分组,以及GTP-U控制分组取道此路径。为此目的,交换机支持软件控制面中的三个本地端口:LOCAL_GTP_CONTROL – 交换机快速路径转发定向到网关IP地址且包含GTP-U控制消息的GTP封装的分组,以及本地交换机软件控制面根据GTP-U控制消息启动本地控制面动作;LOCAL_GTP_U_DECAP - 交换机快速路径将具有非零报头字段或扩展报头(即,E != 0, S != 0或PN != 0)的G-PDU分组转发到此端口。这些分组需要专门的处理。本地交换机软件慢速路径处理分组并执行专门的处理;以及LOCAL_GTP_U_ENCAP -      交换机快速路径将需要在GTP隧道中进行封装且具有非零报头字段或扩展报头(即,E != 0, S != 0或PN != 0)的用户数据面分组转发到此端口。这些分组需要专门的处理。本地交换机软件慢速路径将这些分组封装并执行专门的处理。除了转发分组外,交换机快速路径使得OpenFlow元数据字段可供慢速路径软件使用。

为了支持慢速路径封装,交换机上的软件控制面维护含有从GTP-U TEID计算的关键字的散列表。使用具有低冲突频率的适合散列算法,例如SHA-1来计算TEID散列关键字。流表项包含应该如何配置包含GTP封装报头的分组报头的记录。这包括:对于图18中的硬件或固件封装表为相同的报头字段;GTP报头标志(PT、E、S和PN)的值;序列号和/或N-PDU号(如果有的话);如果E标志是1,则流表包含扩展报头的列表,包括它们的类型,慢速路径应该将其插入到GTP报头中。

在一个实施例中,该系统实现GTP快速路径封装虚拟端口。当云计算系统中运行的SGSN和GGSN控制面软件请求时,OpenFlow控制器将网关交换机编程为安装用于将分组经由快速路径GTP封装虚拟端口路由到GTP隧道中的规则、动作和TEID散列表项。这些规则匹配GTP隧道的载体的输入侧的分组过滤器。典型地,这将是4元组的:IP源地址;IP目的地地址;UDP/TCP/SCTP源端口;以及UDP/TCP/SCTP目的地端口。IP源地址和目的地地址典型地是用户数据面业务,即,UE或UE正在与之进行事务的因特网服务的地址,并且类似地具有端口号。对于匹配GTP-U隧道输入侧的规则,关联的指令并且为如下:

Write-Metadata ( GTP-TEID, 0xFFFFFFFF )

Apply-Actions (Set-Output-Port GTP-Encap-VP )

交换机还在TEID离散表中写入包含分组的隧道报头字段的项。GTP-TEID是GTP隧道端点标识符。GTP-Enacap-VP是绑定到封装的分组最终将路由出的物理端口的GTP快速路径封装虚拟端口。

当分组报头匹配与虚拟端口关联的规则时,将GTP TEID写入到元数据的较低32位中,并将分组定向到虚拟端口。虚拟端口计算TEID的散列,并查询隧道报头表中的隧道报头信息。如果不存在此类隧道信息,则将分组与错误指示一起转发到控制器。否则,虚拟端口构造GTP隧道报头,并封装分组。在IP或MAC隧道报头中附加地设置任何DSCP位或VLAN优先级位,并将任何VLAN标记或MPLS标签推送到分组上。将封装的分组转发出该虚拟端口所绑定的物理端口。

在一个实施例中,该系统实现GTP快速路径解封装虚拟端口。当云计算系统中运行的SGSN和GGSN控制面软件请求时,网关交换机安装用于将GTP封装的分组路由出GTP隧道的规则和动作。在图16所示的如下修改的OpenFlow流表中,这些规则匹配分组的GTP报头标记和GTP TEID:IP目的地地址是网关等待GTP业务所在的IP地址;IP协议类型是UDP(17);UDP目的地端口是GTP-U目的地端口(2152);以及报头字段和消息类型字段是采用标志0XFFF0通配和该字段的较高两个字节匹配G-PDU消息类型(255),而较低两个字节匹配0x30,即,分组是GTP分组,不是GTP’分组,以及版本号是1。虚拟端口仅仅移除GTP隧道报头,并将编码的用户数据面分组转发出绑定的物理端口。

在一个实施例中,该系统实现GTP-U控制分组的处理。OpenFlow控制器以对应于用于GTP业务的每个网关交换机IP地址5个规则将网关交换机流表编程。这些规则包含如下字段的指定值:IP目的地地址是网关等待GTP业务所在的IP地址;IP协议类型是UDP(17);UDP目的地端口是GTP-U目的地端口(2152);GTP报头标志和消息类型字段采用0xFFF0通配;报头标志字段的值是0x30,即,版本号是1以及PT字段是1;以及消息类型字段的值是1(回应请求)、2(回应响应)、26(错误指示)、31(支持扩展报头通知)或254(结束标记)的其中之一。

与匹配这些规则之一关联的指令是:

Apply-Actions (Set-Output-Port 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。

这些规则的指令是如下:

Apply-Actions (Set-Output-Port LOCAL_GTP_U_DECAP)

这将分组发送到软件慢速路径GTP-U解封装路径以便进行特殊处理。

在一个实施例中,该系统实现需要含有扩展报头、序列号和N-PDU号的G-PDU封装的用户数据面分组的处理。GTP封装期间需要扩展报头、序列号或N-DPU号的用户数据面分组需要由软件慢速路径进行特殊处理。对于这些分组中,OpenFLow控制器编程匹配4元组的规则:IP源地址;IP目的地地址;UDP/TCP/SCTP源端口;以及UDP/TCP/SCTP目的地端口。用于匹配分组的指令是:

Write-Metadata ( GTP-TEID, 0xFFFFFFFF ) 

Apply-Actions (Set-Output-Port LOCAL_GTP_U_ENCAP )

这将分组发送到软件慢速路径GTP封装端口,以及此外,使TEID可用于慢速路径。

编程规则插入的OpenFlow消息还包括有关序列号、N-PDU号或扩展报头的类型和内容的值,以及指定解封装网关和载体传输和GTP TEID的分组报头字段的信息。此信息被交换机控制面软件插入到软件封装表中,由TEID键入。

在一个实施例中,该系统实现GTP-C和GTP’控制分组的处理。定向到网关交换机上的IP地址的任何GTP-C和GTP’控制分组处于错误中。这些分组需要由云计算系统中的SGSN、GGSN和GTP’协议实体而非交换机中的SGSN和GGSN实体来处理。为了捕获此类分组,OpenFlow控制器必须以如下两个规则将交换机编程:IP目的地地址是网关等待GTP业务所在的IP地址;IP协议类型是UDP(17);对于一个规则,UDP目的地端口是GTP-U目的地端口(2152),对于另一个规则,UDP目的地端口是GTP-C目的地端口(2123);通配GTP报头标志和消息类型字段。 

这些规则必须是网关交换机的流表中的所有GTP规则的最低优先级。它们将匹配不与其他更特定规则匹配的任何GTP分组。这些规则的指令是如下:

Apply-Actions (Set-Output-Port CONTROLLER )

这封装分组,并将其发送到OpenFlow控制器。

在一个实施例中,该系统实现非网关GTP路由选择。GTP扩展的Openflow交换机还能够实现GTP路由选择,而不执行封装和解封装的网关功能。除了其网关功能外,GTP路由选择功能也可以由网关交换机来执行,或GTP路由选择功能可以由分布式EPC交换结构内的没有网关功能的另一个交换机来执行。

GTP扩展的Openflow交换机包含处理匹配GTP报头字段的规则的至少一个流表,如图16中所示。除了其他字段外,Openflow控制器将GTP报头字段规则编程为执行GTP路由选择以及如果规则匹配,则添加适合的动作。例如,如下规则匹配定向到云计算系统中且不在控制面VLAN中的控制面实体(MSC、SGSN、GGSN)的GTP-C控制分组;VLAN标记未设为控制面VLAN,目的地IP地址字段设为目标控制面实体的IP地址,IP协议类型是UDP(17),UDP目的地端口是GTP-C目的地端口(2123),GTP报头标志和消息类型采用0xF0通配,且匹配的版本和协议类型字段是2和1,这指示该分组是GTPv1控制面分组而非GTP’。 

如下动作将控制面VLAN标记推送到分组上,并将其转发到云以便由相关的控制面实体来处理。该分组被转发而无需任何L3处理(即,不修改IP TTL);

Write-Action ( Set-VLAN-ID CP_VLAN_TAG ) 

Write-Action ( Set-Source-MAC-Address SWITCH_MAC_ADDR ) 

Write-Action ( Set-Dest-MAC-Address NEXT_HOP_MAC_ADDR ) 

Set-Output-Port NEXT_HOP_PORT

OpenFlow的GTP扩展

可以将OpenFlow协议修改为提供能够实现3G PC的管理的GTP的扩展。OpenFlow利用称为流匹配结构的数据结构,这些流匹配结构使得协议能够定义将规则与特定流匹配的准则。ofp_match的OpenFlow流匹配结构包含两个字段类型和长度,其允许扩展流匹配结构。类型字段可以设为扩展的类型,以及长度字段可以设为扩展的ofp_match结构的长度。在一个实施例中,定义一种用于GTP流匹配的基于随机数的新类型:

enum ofp_match_type_ext {             

ERSMT_GTP = 48696,

};

该类型可以随机地生成,以不致于与其他扩展的类型相干扰。目前没有组织性机制用于在OpenFlow中登记类型标识符。

ersmt_gtp结构将用于GTP流路由选择的流表字段定义为:

struct ersmt_gtp {    

unit8_t  gtp_wildcard;    

uint16_t gtp_type_n_flags;    

uint16_t gtp_flag_mask;    

uint32_t gtp_teid;

 };

gtp_type_n_flags字段在较高8位中包含GTP消息类型以及在较低8位中包含GTP报头标志。gtp_teid字段包含GTP TEID。gtp_wildcard字段指示是否应该匹配GTP类型和标志以及TEID。如果较低4位是1,则应该忽略类型和标志字段,而如果较高4位是1,则应该忽略TEID。如果较低位是0,则应该对照gtp_flag_mask字段中的标志匹配类型和字段标志,而如果较高位是0,则应该匹配TEID。使用逻辑AND将掩码与分组的消息类型和报头字段组合;其结果成为匹配的值。仅匹配掩码具有1值的字段的那些部分。

除了流表字段外,还需要对象以将虚拟端口TEID散列表项的封装编码。可以使用ersmt_gtp_tuninfo结构来定义此信息:

struct ermst_mpls_lbl {   

uint8_t mpls_lbl_low;   

uint8_t mpls_lbl_mid;   

uint8_t mpls_lbl_high; 

};

struct ersmt_gtp_tuninfo {    

uint16_t gtp_tuninfo_length;    

uint32_t gtp_tuninfo_saddr;    

uint32_t gtp_tuninfo_daddr;    

uint8_t  gtp_tuninfo_dscp;    

uint8_t  gtp_tuninfo_vlan_len;    

unit16_t gtp_tuninfo_vlan_tags[0];. /*可变长度*/    

uint8_t  gtp_tuninfo_mpls_len;    

struct mpls_lbl gtp_tuninfo_mpls_labels[0];. /*可变长度*/ 

};

ermst_mpls_lbl结构提供用于将MPLS标签编码的24位数据结构。ersmt_gtp_tunifo结构包含描述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),则这些字段将不存在(以及对应的长度字段将为0)。 

在一个实施例中,将OpenFlow修改为添加扩展消息以用于添加、删除或修改3G PC载体或GTP隧道。用于添加、修改或删除3G PC载体或GTP隧道的OpenFlow信令由一个OpenFlow消息ofp_flow_mod消息组成,其包含ersmt_gtp GTP流定义。可以使用标准OpenFlow ofp_flow_mod消息,只要OpenFlow协议解析器能够处理扩展的流即可。如果流修改需要对封装虚拟端口TEID散列表进行更改,OpenFlow控制器必须发出包含TEID散列表项的GTP OpenFlow扩展消息。OpenFlow控制器必须依序地发出这两个消息,首先ofp_flow_mod消息,然后是TEID散列表修改消息,然后OpenFlow控制器必须发出OFPT_BARRIER_REQUEST消息以强制OpenFlow交换机处理这两个消息。 

OpenFlow消息扩展报头结构ofp_experimenter_header包含称为实验者的实验者id字段。在一个实施例中,可以将此字段设为Ericsson IEEE OUI、0x01ec或类似制造商或提供商OUI。该结构的其余部分包含GTP扩展消息。这些消息可以由如下消息码来标识:

enum ermst_gtp_message_code {     

GTP_ADD_TEID_TABLE_ENTRY = 0,     

GTP_DEL_TEID_TABLE_ENTRY = 1, 

};

GTP OpenFlow扩展包含用于添加和用于删除TEID散列表项的消息。首先通过删除TEID的项,然后为相同TEID添加新的项来修改项。用于在封装虚拟端口散列表中输入新TEID项的GTP OpenFlow扩展消息是: 

struct ermst_teid_table_add {     

ermst_gtp_message_code teid_table_add_type;     

uint16_t teid_table_add_teid;     

struct ermst_gtp_tuninfo teid_table_add_entry; 

};

将teid_table_add_type字段设为GTP_ADD_TEID_TABLE_ENTRY,而teid_table_add_teid字段包含TEID,以及teid_table_add_entry包含要添加的表项。用于从封装虚拟端口散列表中删除TEID项的GTP OpenFlow扩展消息是:

struct ermst_teid_table_del {     

ermst_gtp_message_code teid_table_del_type;     

uint16_t teid_table_del_teid;

 };

将teid_table_del_type字段设为GTP_DEL_TEID_TABLE_ENTRY,而teid_table_del_teid字段包含要删除的项的TEID。 

在一个实施例中,用于GTP的OpenFlow扩展还包含OpenFlow交换机配置。在从3G PC云控制面实体接受任何GTP路由选择更新RPC之前,OpenFlow控制器必须在GTP扩展的OpenFlow网关交换机上配置GTP封装和/或解封装虚拟端口。该配置使用交换机相关的配置协议来实现,并且在下文进行了描述。

除了GTP扩展的OpenFlow网关上的虚拟端口配置外,可能在将转发好于尽力而为GTP载体业务的任何OpenFlow交换机上需要QoS队列配置。OpenFlow协议未包含用于配置队列的消息,此配置留给配置协议完成,正如虚拟端口的情况那样。在安装任何流路由之前,OpenFlow控制器必须配置用于与将路由比尽力而为GTP载体的更好的交换机中的物理和/或虚拟端口连接的任何队列。对于GTP扩展的OpenFlow交换机和标准OpenFlow交换机均必须执行此配置步骤。

在一个实施例中,修改GTP操作的OpenFlow消息流。如上文描述的,3G PC控制面实体(包括SGSN和SSSN的3G PC控制面部分)驻留在数据中心处的云计算设施中。当GTP信令触发路由选择改变时,SGSN和GGSN的控制面经由远程过程调用(RPC)或类似机制与云内的OpenFlow控制器通信。OpenFlow控制器通过将云连接到网关和交换机的控制面网络上的OpenFlow信令实施数据面上对GTP扩展的启用OpenFlow的数据面网关的更改,对SGSN和GGSN的控制面的更改,以及对为GTP路由选择扩展的OpenFlow交换机(本文称为“GxOFS”)的更改。

一般来说,如果对于GTP流无需特殊路由选择处理,则对GxOFS无需信令。可能需要此类处理的情况为,例如:其中运营商的3G PC在多于一个点处具有与因特网的对等点,并且由此具有多于一个网关,至最优网关的路由选择可能在中间交换机处需要3G PC内的操纵业务;以及其中GTP流必须从运营商网络内(例如云内)某处的应用接收特殊处理。此类特殊处理的示例是转码。这些中间交换机可需要编程来将用户面分组路由到转码应用。此列表并非穷举的,中间交换机上的GTP路由选择的多个其他应用是可能的。

可以使用GTP-C创建PDP上下文请求消息来建立GTP PDP上下文隧道。此过程用在多种消息序列中,例如用在E-UTRAN初始附接过程中。 

图18A-C是3G PC中的会话创建、修改和删除的流程图。图18A中图示了用于创建会话的过程。响应在SGSN与GGSN之间创建用于订户会话的GTP隧道的请求,启动该过程(框1801)。启动订户会话以将3G PC中的用户设备连接到订户会话的另一个端点,该另一个端点可以是另一个用户设备、服务器或类似端点。GTP隧道建立跨3G PC网络的核心网络至对等点、因特网或类似端点的订户会话的路由。控制器配置实现SGSN的交换机以封装和解封装该订户会话的数据分组,并建立第一GTP隧道端点(框1803)。控制器还配置GTP隧道的路由中的每个交换机以根据GTP隧道的路由在每个方向上转发分组(框1805)。控制器配置GGSN的数据面以封装和解封装该订户会话的分组以在GGSN处建立GTP隧道的第二端点(框1807)。

图18B中图示了用于修改会话的过程。响应修改SGSN与GGSN之间用于订户会话的GTP隧道的请求,启动该过程(框1811)。订户会话将3G PC中的用户设备连接到订户会话的另一个端点,该另一个端点可以是另一个用户设备、服务器或类似端点。GTP隧道是跨3G PC网络的核心网络至对等点、因特网或类似端点来建立的订户会话的路由。可以利用修改过程来跨3G PC网络将订户会话重新路由到相同的端点或不同的端点。可以使用此过程更改GTP隧道的端点和GTP的路径的任何组合。控制器修改实现SGSN的交换机的配置用以封装和解封装该订户会话的数据分组,并修改第一GTP隧道端点(框1813)。控制器还配置当前路由中的每个交换机和GTP隧道的新路由以根据GTP隧道的路由在每个方向上转发分组(框1815)。控制器修改GGSN的数据面的配置用以封装和解封装该订户会话的分组以在GGSN处建立GTP隧道的第二端点(框1817)。 

图18C中图示了用于删除会话的过程。响应删除SGSN与GGSN之间用于订户会话的GTP隧道的请求,启动该过程(框1821)。订户会话将3G PC中的用户设备连接到订户会话的另一个端点,该另一个端点可以是另一个用户设备、服务器或类似端点。GTP隧道是跨3G PC网络的核心网络至对等点、因特网或类似端点来建立的订户会话的路由。当用户设备上关联的应用或其他用户设备上的应用或订户会话的另一端上的服务器应用终止连接时,订户会话和关联的GTP隧道被删除。然后通过删除订户会话和GTP隧道,回收订户会话资源。控制器移除曾封装和解封装订户会话的数据分组的实现SGSN的交换机处的GTP隧道的配置,并由此移除第一GTP隧道端点(框1823)。控制器还从根据GTP隧道的路由在每个方向上曾转发分组的GTP隧道的路由中的每个交换机移除该GTP隧道的配置(框1815)。控制器从曾封装和解封装订户会话的分组的GGSN的数据面移除GTP隧道的配置,并由此移除GGSN处的GTP隧道的第二端点(框1827)。

在图19中,示出用于创建会话请求过程的OpenFlow消息流的示例。在图示的示例中,SSGN控制面组件向云计算系统中的GGSN控制面组件发送创建会话请求,然后GGSN控制面组件经由GTP路由选择更新RPC调用将该请求发送到控制器。RPC调用请求OpenFlow控制器在SGSN和GGSN处在数据面上建立新的GTP隧道端点,并如果必要的话,在中间交换机上安装用于新的GTP载体或隧道的路由。 

在从GTP路由选择更新RPC将结果返回到控制面GGSN之前,OpenFlow控制器向适合的数据面网关实体发出OpenFlow消息的序列。在该示例实施例中,该序列以OFP_BARRIER_REQUEST开始,以确保没有可能影响后续消息的处理的待处理消息。然后,发出OFPT_FLOW_MOD消息,其包含ofp_match结构,其中具有GTP扩展作为匹配字段和OFPFC_ADD作为命令字段。该消息指定用于建立经由适合的虚拟端口的封装和解封装分组的GTP隧道的流路由的动作和指令,如上文所描述的。此外,紧接着OFPT_FLOW_MOD消息之后,OpenFlow控制器向网关发出GTP_ADD_TEID_TABLE_ENTRY消息,其包含用于封装虚拟端口的TEID散列表项。正如上文描述的,这两个OpenFlow消息之后是OFPT_BARRIER_REQUEST消息,以便在继续操作之前强制网关处理流路由和TEID散列表更新。 

在从GTP路由选择更新RPC返回之前,OpenFlow控制器还向定制的GTP流路由选择中需要涉及到的任何GTP扩展的OpenFlow交换机(GxOFS)发出GTP流路由选择更新。这些更新中的消息由后跟OFPT_FLOW_MOD消息的OFP_BARRIER_REQUEST以及上文描述用于定制的GTP流路由选择的动作和指令组成,OFPT_FLOW_MOD消息包含ofp_match结构,其具有新GTP流的GTP扩展作为匹配字段和OFPFC_ADD作为命令字段。最后的OFP_BARRIER_REQUEST强制交换机在响应之前处理更改。在数据面中安装SGSN上的GTP隧道端点路由之后以及数据面中安装GGSN上的GTP隧道端点路由之前,安装任何GxOFS上的流路由,如图19所示。OpenFlow控制器不响应控制面GGSN RPC,直到所有流路由选择更新完成为止。 

一旦返回了RPC,则控制面GGSN和SGSN返回创建PDP上下文响应消息。使用更新PDP上下文请求过程来更改GTP载体的特征。此类更改可以例如包括对IP分组指派的QoS。此过程用在多种3G PC消息序列中,例如用在UE触发的服务请求中。 

图20是用于修改会话请求过程的OpenFlow消息序列的一个实施例的示意图。与会话创建的情况一样,3G PC云控制面SGSN向控制面GGSN发出更新PDP上下文请求消息,以及控制面GGSN向OpenFLow控制器发出包含新的隧道更新信息的GTP路由选择更新RPC。OpenFlow控制器然后向数据面SGSN、GxOFS和数据面GGSN发出GTP扩展的OpenFlow消息。

在从GTP路由选择更新RPC将结果返回到控制面GGSN之前,OpenFlow控制器向适合的数据面网关实体发送OpenFlow消息的序列。该序列以OFP_BARRIER_REQUEST开始,以确保没有待处理消息可能影响后续消息的处理。然后,发出OFPT_FLOW_MOD消息,其包含ofp_match结构,其中具有GTP扩展作为匹配字段和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流路由选择更新。这些更新中的消息由后跟OFPT_FLOW_MOD消息的OFP_BARRIER_REQUEST以及(如果必要的话)如上文描述用于定制的GTP流路由选择的动作和指令组成,OFPT_FLOW_MOD消息包含ofp_match结构,其具有新GTP流的GTP扩展作为匹配字段和OFPFC_MODIFY或OFPFC_MODIFY_STRICT作为命令字段。最后的OFP_BARRIER_REQUEST强制交换机在响应之前处理更改。在数据面SGSN上安装GTP隧道端点路由之后以及数据面GGSN上安装GTP隧道端点路由之前,安装任何GxOFS上的流路由,如图20所示。OpenFlow控制器不响应控制面GGSN RPC,直到所有流路由选择更新完成为止。一旦返回了RPC,则控制面GGSN和SGSN返回更新PDP上下文消息。 

使用删除会话请求过程来删除GTP隧道。此过程可以用在多种3G PC消息序列中,例如用在UE触发的离开请求中。图21是用于删除会话请求过程的OpenFlow消息序列的一个实施例的示意图。与会话创建和修改的情况一样,3G PC云控制面SGSN向控制面GGSN发出删除PDP上下文请求消息,以及控制面GGSN向OpenFLow控制器发出包含隧道删除信息的GTP路由选择更新RPC。OpenFlow控制器然后向数据面SGSN、GxOFS和数据面GGSN发出GTP扩展的OpenFlow消息。

在将GTP路由选择更新RPC返回到调用方之前,实施OpenFlow信令。该序列以OFP_BARRIER_REQUEST开始,以确保没有待处理消息可能影响后续消息的处理。然后,发出OFPT_FLOW_MOD消息,其包含ofp_match结构,其中具有GTP扩展作为匹配字段和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流路由选择更新。这些更新中的消息由后跟OFPT_FLOW_MOD消息的OFP_BARRIER_REQUEST组成,OFPT_FLOW_MOD消息包含ofp_match结构,其具有新GTP流的GTP扩展作为匹配字段和OFPFC_DELETE或OFPFC_DELETE_STRICT作为命令字段。最后的OFP_BARRIER_REQUEST强制交换机在响应之前处理更改。在数据面SGSN上安装GTP隧道端点路由之后以及数据面GGSN上安装GTP隧道端点路由之前,安装任何GxOFS上的流路由,如图21所示。OpenFlow控制器不响应主叫实体,直到所有流路由选择更新完成为止。 

备选实现

在其他实施例中,分离的3G PC体系结构可以在非云和非虚拟化系统中实现。该3G PC体系结构的控制面实体可以在单个服务器上存储和执行,或跨任何数量的服务器或相似计算装置分布。相似地,这些控制面实体能够作为标准软件代码和模块来执行而无需虚拟化或类似系统。这些控制面实体能够经由本地系统或过程调用、远程过程调用或类似机制彼此通信。在又一个实施例中,可以在云计算系统中虚拟化或执行这些控制面实体的子集,同时可以在服务器、分布式服务器系统或类似系统中执行这些控制面实体的另一个子集。这些控制面实体可以通过如本文上面描述的使用OpenFlow协议或经由如本文下面描述的其他控制协议与数据面通信。

本文上面描述的云计算系统通过举例而非限制的方式提出。本领域技术人员应理解,本文上面描述的与云计算系统相关的原理和特征还能够在如单个服务器或分布式服务器系统的其他配置中实现。与上文描述的那些相似的原理和特征可以在单个服务器系统、分布式服务器系统和类似的计算环境中实现。这些原理和特征还可以使用非虚拟化环境来实现,包括在云计算系统、单个服务器、分布式服务器系统和类似系统的任何组合中执行的非虚拟化控制面实体。

在其他实施例中,可以利用其他控制协议来替代正如本文描述的OpenFlow。OpenFlow的使用是通过举例而非限制的方式来给出的。还可以利用其他控制协议来管理分离的3G PC体系结构的控制面与数据面之间的通信以及数据面的配置。此类协议的一个示例是FORCES,这是一种用于网络中将控制面与转发面分离的IETF标准协议。FORCES协议规范在RFC 5810中予以描述。RFC 5812描述了FORCES转发元件(OpenFlow交换机的等效物)的体系结构。FORCES协议本身不直接支持将路由编程到转发元件中,而是它作为用于处理FORCES控制器与FORCES转发元件之间的交互的框架。转发元件体系结构描述了如何设计实际使FORCES控制器能够编程FORCES转发元件的协议。本领域技术人员应理解,基于FORCES的系统可以包括本文描述的与OpenFlow实施例(如GTP OpenFlow扩展)相关的特征,以便使控制器能够将交换机编程以用于GTP TEID路由选择。 

FORCES和OpenFlow是通过举例而非限制的方式来提出的。本领域技术人员应理解,上文描述的与FORCES和OpenFlow协议相关的原理和特征还可以在其他类似控制协议中实现。 

因此,描述了一种用于在云计算系统中实现3G PC的方法、系统和设备。要理解上文描述应旨在说明,而非限制。在阅读和理解上文描述时,本领域技术人员将显见到许多其他实施例。因此,应参考所附权利要求连同此类权利要求授权的等效物的完整范围来确定本发明的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号