供给网络路径的经转化的会话信息的制作方法

文档序号:7994770阅读:174来源:国知局
供给网络路径的经转化的会话信息的制作方法
【专利摘要】一种系统和方法,用以接收对应于与服务器相关联的会话的会话信息,以及把会话信息转化成包括拓扑参数和数据参数在内的经转化的会话信息。经转化的会话信息用以指引控制器依据经转化的会话信息而供给网络路径。所述网络路径将顺从拓扑参数和数据参数。
【专利说明】供给网络路径的经转化的会话信息

【背景技术】
[0001] 网络资源可以被分配以处置各种形式的业务。然而,供给网络来处置特定网络业 务负荷可能使网络总体上过度供给和/或利用不足。端到端服务质量(QoS)机制可以被用 于配置,但网络路径上的网络设备需要利用适当QoS参数的手动配置。OpenFlow控制器提 供了网络配置的途径,但未被设置成从试图使用网络的服务器/应用接收配置指令。因此, 应用和/或服务器可能需要使用其自身内建的网络补偿机制来持续地应对次优化的网络 效应/状况(分组丢失、等待时间、跳动(jitter)以及其它网络效应),特别当网络要承载其 它业务(诸如,语音、数据、视频等)时。这样的网络效应可能不利地影响网络的使用并且冲 击应用性能和用户体验,以及使应用开发者负担有开发各种网络补偿机制的需要。

【专利附图】

【附图说明】
[0002] 图1是依据示例的包括转化引擎的系统的框图。
[0003] 图2是依据示例的包括转化引擎的系统的时序图。
[0004] 图3是依据示例的包括转化引擎的系统的框图。
[0005] 图4是依据示例的包括转化引擎的系统的框图。
[0006] 图5是依据示例的基于转化信息的流程图。

【具体实施方式】
[0007] 网络体系结构框架可以被提供,其中与服务器相关联的会话可以通过转化引擎 (TE)把与会话的不同阶段相关联的网络需求直接传到控制器。转化引擎可以在服务器和控 制器之间提供抽象层,指引控制器基于来自转化引擎的输入、以每会话和/或每阶段的粒 度而配置(例如,供给和/或去供给(cbprovision))网络和/或网络路径以供客户端和/或 服务器使用。底层网络可以承载用于特定服务器/应用的业务(例如,游戏业务),连同语音、 视频、数据、电子邮件和其它形式的网络业务。典型地,网络是可扩张的,使得供给整个网络 用于一个特定的专用使用是不切实际的,因此,网络可以起到表现为可察觉的网络效应(诸 如,分组丢失和等待时间)的性能瓶颈的作用。通过使用在此描述的各种示例转化引擎,用 户可以享受由跨网络连接各种元件的底层网络所承载的丰富沉浸式体验,甚至当网络可扩 张并且包括其它业务源时。
[0008] 在示例中,转化引擎用以接收对应于与服务器相关联的会话的会话信息,并且把 所述会话信息转化成经转化的会话信息。经转化的会话信息可以包括拓扑参数和数据参 数。经转化的会话信息用以指引控制器依据经转化的会话信息来供给与所述拓扑参数和数 据参数相顺从的网络路径。
[0009] 图1是依据示例的包括转化引擎102的系统100的框图。转化引擎102可以与服 务器104和控制器106相关联以提供网络路径130。转化引擎102可以接收对应于与服务 器104相关联的会话111的会话信息110。转化引擎102可以提供经转化的会话信息120, 包括拓扑参数122和数据参数124。经转化的会话信息120通过控制器106可用于影响网 络路径130。
[0010] 服务器104可以与各种应用相关联,所述应用诸如是云存储、虚拟联网、数据中 心、具有各种各样的数据使用和协议的应用(例如,酒店处置多媒体娱乐的基础设施、通过 互联网协议的电话/语音(V0IP)以及其它数据)、游戏等。在酒店基础设施示例中,每个房 间可以提供IP电话、对于繁重数据的互联网访问(诸如,Skype?和视频电话会议),以及一 般web浏览和包括用以支持的各种可能协议和数据需求的其它使用。使用场景可以包括音 频/视频会议、观看实况流视频娱乐、以及浏览互联网并且使用各种不同的网络需求,其跨 由酒店基础设施所支持的房间/办公室/等的总数而倍增。不同的网络使用(例如,阶段和 /或需求)可以同时发生并且一个使用可以中断另一个。语音聊天可能优选低的等待时间, 但流视频可能优选高的吞吐量,其可以容许丢失分组和等待时间/跳动/分组丢失。系统 1〇〇提供的益处在如下情形中可以特别有利:其中可用的网络基础设施和/或体系结构可 能不能够提供网络路径130以同时满足可以与服务器104的各种会话111相关联的全部不 同的网络需求。
[0011] 由服务器104和/或与服务器104交互的客户端(在图1中未示出)进行的网络使 用可以基于至少一个会话111。会话111可以分解成阶段。网络需求可以根据阶段和/或 会话111而不同,使得第一网络路径可能满足第一阶段和/或会话111的需要,但可能不一 定满足第二阶段和/或会话111的需要。
[0012] 控制器106可以是OpenFlow控制器(参见例如OpenFlow规范1.0.0或另外的修 订版)。示例系统100可以与OpenFlow控制器交互而无需对基于标准的OpenFlow协议的 任何扩展,使得示例系统100可以与各种异类、多供应商网络兼容。尽管服务器104、转化引 擎102和控制器106被示出为分离的设备,但两个或多个设备可以共同位于相同的设备内。 例如,一个物理设备可以基于通过使用可编程软件和/或硬件以及基于一个或多个处理器 (例如,一个或多个中央处理单元(CPU))的处理模块来提供功能性而提供服务器104、转化 引擎102和控制器106的功能性。
[0013] 转化引擎102用以把各种不同会话111的会话信息110转化成经转化的会话信息 120,其可以包括拓扑参数122、数据参数124和/或包括当供给网络路径130时要考虑的网 络需求的其它信息。在示例中,拓扑参数122与要被连接的网络地址端点相关联,例如,月艮 务器和(一个或多个)客户端的网络地址。数据参数124可以是所请求的性能度量,诸如,对 于等待时间、数据吞吐量、跳动、滞后等的阈值容许。转化引擎1〇2(服务器104和/或控制 器106)可以被提供为软件程序、函数调用、或提供功能性的各种其它实现。转化引擎102 用以把经转化的会话信息120发送到控制器106。
[0014] 控制器106可以访问与网络及其网络设备(例如,其路由器、交换机等)相关联的信 息,使得控制器106可以基于经转化的会话信息120来确定如何连接用于网络设备的路径, 诸如,把客户端连接到服务器104,把第一主机(例如服务器104)连接到第二主机等。此外, 经转化的会话信息120给控制器106提供用以确定进行连接的适合和/或最佳网络路径的 机会,例如供给网络路径130(和/或去供给或以其它方式影响网络路径130)。控制器106 可以基于各种技术来影响网络路径130。例如,基于OpenFlow控制器106,控制器106可以 对给定网络设备进行编程以使该设备成为网络路径的部分,这基于由控制器106发送到该 网络设备的规则。因此,控制器106可以基于由转化引擎102提供的经转化的会话信息120 来影响与网络设备相关联的数据平面。
[0015] 会话信息110可以随着时间而改变。例如,会话111可以与多个阶段相关联,具有 与每个阶段相关联的会话信息110。因此,会话信息110可以针对不同的阶段和/或会话 111而变化,并且不同的信息(例如,对于给定网络路径130的数据需求)可以被传送到转化 引擎102。转化引擎102可以将会话信息110转化和/或格式化成通过控制器106可使用, 使得控制器106可以确定如何实现经转化的会话信息120(例如,通过基于供给、更新、去供 给、或以其它方式影响网络路径130)。当会话信息110改变时,转化引擎102提供经转化的 会话信息120以使控制器106能够改变(如果适当的话)与经转化的会话信息120相关联的 网络路径130的实现。会话信息110可以改变(例如,当会话111在与会话111相关联的不 同阶段之间改变时),从而使服务器104能够经由转化引擎102与控制器106通信,使得控 制器106可以做出决定来改善网络可用性。
[0016] 转化引擎102可以从而使网络需求能够与服务器应用需要分离地被处置,使得服 务器应用不需要补偿网络效应或其它折衷。转化引擎102使得网络能够由服务器104 (例 如,由与服务器104相关联的应用)用作应用编程接口(API),使得网络组件可以与控制器 106容易地通信。对于软件组件而言无需使用专有的扩展或技术,因为系统100可以基于标 准。例如,系统100可以使用OpenFlow控制器106并且网络(包括网络路径130)可以基于 与OpenFlow代理兼容并且由所述OpenFlow代理可编程的网络设备(路由器、交换机等)其。 因此,系统100 (包括转化引擎102)可以在与这样的标准相顺从的现有网络基础设施上被 展开(roll out)。这允许应用开发者聚焦于其写程序和应用逻辑的核心能力上,无需聚焦 于内建至那些程序/应用以应对各种网络效应的网络补偿技术。
[0017] 给定网络路径130可以基于网络的分布性质。每个网络设备(诸如,交换机/路由 器/等)可以运行其自身的控制逻辑来实现与该网络设备及其对网络业务的处置相关联的 数据平面。分布性质可能违反如下的想法:对于整个网络可以有一个视点以便容易地供给 端对端路径。因此,分布式网络及其协议可以受益于鉴于期望的网络路径130和经转化的 会话信息120 (或对于网络路径130的其它网络需求)而提供适合于每个网络设备的配置 信息。不管给定的配置是否可以应用到网络设备,供给和测试每个网络设备的需要提供了 可以不提供关于如何配置整个网络的总体视图的网络分布性质的挑战。包括转化引擎102 的系统100可以避免需要针对每个服务器104的每个会话的每个阶段来手动配置(例如,通 过使用命令行接口(CLI)来配置服务的质量(QoS)需求)每个网络设备的不切实际性。因 此,系统100可以使得能够实现在每阶段/会话/服务器的基础上手动编整(tailor)的网 络路径130的益处,而没有需要手动配置每个网络设备的缺点。因此,系统100可以克服由 与手动配置相关联的缩放限制所强加的障碍。例如,手动配置具有带有多个阶段的多个会 话的多个服务器可能是极其复杂的,同时标识和维护哪些客户端与哪些服务器/会话/阶 段相关联,使得通过使用手动CLI编程进行缩放来实现每个设备的QoS参数实际上将是不 可能的。系统100的示例可以避免这样的缩放限制,这例如通过基于转化引擎102提供数 据抽象,其避免了如下的需要:采用关于如何与每个网络设备(交换机/路由器/控制器/ 节点等)进行"对话"的特点的知识对与服务器104相关联的每个应用/程序进行编程,以 对网络设备进行编程,从而支持各种会话111。
[0018] 另一个优点是关于应用、网络设备、客户端等的智能位于系统100的服务器侧。由 于服务器具有关于什么信息需要通过网络与客户端交换的可见性,所以服务器104可以是 用以捕获与应用相关联的信息以及从网络需要什么的最佳位置。因此,系统100可以基于 对服务器侧上的信息做出改变而改变(例如,从一个应用改变到另一个)。因此,当改变被做 出时,系统100不需要改变客户端侧,例如,不需要向每个客户端/网络设备/等推出补丁。 改变可以在不使客户端负担(诸如,需要客户端响应于改变而升级或在事物的网络侧在客 户端/服务器之间交换消息)的情形下被做出,从而改善了总体效率。
[0019] 在游戏示例中,服务器104可以与游戏应用相关联,所述游戏应用具有可以包括 多个阶段的游戏会话111。不同的阶段对于游戏服务器(诸如,网络感知(network aware) 服务器/应用)可以是已知的。阶段可以与网络需求的不同集合相关联,并且可以包括设 置阶段、同步阶段、游戏进行阶段、和/或过渡阶段。阶段可以被传送到转化引擎102,并且 所述转化引擎102可以把所述阶段转化成一个或多个网络参数和/或需求。多个客户端/ 用户可以在具有玩游戏意向的情况下加入会话111,从而在设置阶段期间形成客户端的列 表。玩家可以在设置阶段期间选择要玩的地图、加入/形成团队、和/或选择游戏选项,诸 如武器等。设置阶段可以与用于设置的提高的吞吐量需求相关联。同步阶段可以发生在设 置阶段之后以及游戏进行阶段之前,从而在各种玩家/客户端以及游戏服务器104之中同 步游戏状态和各种游戏参数。同步阶段可以与高数据吞吐量相关联,所述吞吐量可能将随 着签约参加到游戏会话111中的客户端的数量而增加。例如,考虑所有玩家将在其上导航 /游戏的定制地图的交换,或玩家/客户端的特定团队的选择,其来自服务器104、在玩家/ 客户端之中发送。因此,对于同步阶段,转化引擎102可以提供包括数据参数124的经转化 的会话信息120,所述数据参数124指示对于网络路径130能够支持高数据吞吐量的需要。 同步阶段转化的会话信息120可以指示其它考虑(诸如,等待时间)对于该阶段而言不是优 先。在游戏进行阶段,游戏者玩游戏。与同步阶段形成对比,游戏进行阶段可以相关联于若 干用户/客户端在游戏的过程期间与彼此进行交互。在游戏进行阶段,低的等待时间可以 被给予在数据吞吐量之上的优先级,使得用户感觉不到将不利地影响其游戏性能的网络效 应(诸如,跳动/等待时间/滞后)的影响。因此,与游戏进行阶段相关联的数据参数124可 以相应地指示这样的数据需求。在游戏之后在过渡阶段期间,所有的统计被共享,并且会话 可以继续或可以经历拆解。过渡阶段可以指明终止阶段、加入和/或离开现有会话的阶段、 和/或被包括在术语"过渡阶段"内的其它各种阶段。过渡阶段期间的网络需求可以是正 常的吞吐量/等待时间。过渡可以或可以不导致终止。在游戏上下文中的过渡可以是游戏 会话将被再次实行,使得会话将被维持在游戏的实例中。会话可以基于过渡阶段而终止,诸 如,当至少一个玩家退出并且不再玩时。这样的过渡可以在完成当前游戏之后发生。过渡 可以或可以不导致终止。终止可以相关联于不需要先前供给的网络资源,使得能够放弃已 被供给用于网络路径130的资源。
[0020] 与会话111相关联的阶段、和/或会话111可以基于各种考虑而改变。事件可以 触发一个阶段/会话的结束和不同阶段/会话的开始。然而,相同事件可以被用于触发给 定阶段/会话的修改。因此,系统100的示例可以相关联于不同阶段/会话111,以及对应 的会话信息110,这基于事件的处置。继续游戏示例,如果有8个玩家并且一个玩家断开,则 断开事件可以被用于修改和/或结束现有会话/阶段,和/或开始不同的会话/阶段。会 话信息110可以被改变以反映不同的需求集合,转化引擎102将把其转化成对应的经转化 的会话信息120。在示例中,服务器104可以为剩余7个玩家创建新的阶段/会话,包括对 应于新的阶段/会话111的新的会话信息110。服务器104可以维持现有的游戏会话111 并且修改会话信息110以反映7个玩家/客户端而不是8个。因此,除了服务器侧的改变 之外,服务器104还可以反应于客户端侧的改变。给定阶段/会话111可以响应于事件(诸 如,玩家退出)而被重新评估。在示例中,系统100可以周期性地重新评估阶段/会话及其 相关联的条件(例如,客户端/玩家和游戏/服务器状态),并且可以针对可以与更新阶段/ 会话111的会话信息110相关联的任何改变(包括客户端侧的改变)而进行轮询。与会话 111相关联的过渡阶段可以指示改变/更新是更有可能的。阶段/会话111还可以被视为 持久的,不管多少客户端/玩家加入和/或离开会话,无需重新评估。因此,示例系统100 包括处置阶段/会话111的许多不同方式,包括如何处置会话持久性中的变化。阶段/会 话111可以在成组基础上(例如,与给定游戏、服务器和/或客户端等相关联的所有阶段)或 在个体基础上被处置,这取决于期望的粒度和/或控制水平。会话111可以是网络感知的, 使得其可以基于经由转化引擎102的通信、依据其需要而供给网络路径130。会话111可以 相关联于各种业务流(例如,游戏流),其还可以与控制器106及其与网络路径130 -起工作 并且组织/影响所述网络路径130的能力相关联。
[0021] 因此,转化引擎102将会话111的需要(如表达在例如会话信息110中)转化成可 由控制器106使用来影响适合于会话的网络路径130(例如,包括用于会话111的各种阶段 的多个不同网络路径130)的信息。服务器104及其相关联的应用/程序免于需要应对各 种网络效应。应用开发者不需要关心网络性能/容量或如何处置可用的网络资源。例如, 转化引擎102可以提供在服务器104和控制器106之间的抽象层以使得能够实现通过服务 器104对可用网络资源的增强的使用,而对于服务器而言无需配置与网络路径130相关联 的每个节点和/或对于应用而言无需使用网络补偿机制。
[0022] 再次参考游戏示例,游戏应用可以被编程以包括内建的补偿机制以处置网络效 应,诸如等待时间/跳动。例如,当游戏遭遇过度等待时间时,玩家/客户端可能经历被施 加于他/她的移动以及与游戏的交互的橡皮带(rubber-banding)效应。这样的橡皮带是 等待时间均衡的示例,所述等待时间均衡由游戏应用执行使得每个用户可以甚至以玩家之 间变化的等待时间程度来参加(例如,从而将等待时间处置效应分布到所有玩家)。对这样 的补偿机制的下侧是:取决于补偿的类型,那些具有较低等待时间的玩家可能在一个补偿 机制下具有优势,但在另一个补偿机制下可能不具有优势。因此,示例系统100可以提供网 络路径130,其用以减少任何等待时间的冲击(或对数据参数124的其它影响),使得每个客 户端的连接类型并非不公平地影响游戏进行,并且玩家/客户端可以避免与不公平分布的 网络效应相关联的受挫。
[0023] 在示例中,网络补偿机制仍然可以被使用,诸如当控制器106确定了可用(例如, 可供给)的网络路径130不满足由经转化的会话信息120所指示的每个参数时,触发所述机 制(例如,在服务器104和/或与服务器104通信的客户端(未示出)处)。在可替代的示例 中,网络补偿机制可以被用于增强性能,即使由阶段/会话111请求的所有参数能够由至少 一个网络路径130满足。
[0024] 示例系统100使网络资源能够像访问API -样被访问和使用。例如,与服务器104 相关联的程序可以仅仅请求网络需求,诸如,在指定网络设备之间需要第一水平的数据吞 吐量以及第二水平的等待时间。程序可以请求关于控制器106是否能够满足所述请求的确 认。如果请求能够被满足(例如,控制器106已标识了可以被供给/影响的、与经转化的会 话信息120 -致的网络路径130),则所述程序(例如,会话111)可以继续进行。如果控制 器106不能够提供网络路径130以满足经转化的会话信息120(例如,网络冲突或网络数据 拥塞/过负荷),则控制器106可以告知转化引擎102和/或服务器104,使得应用可以确定 是否使用补偿机制和/或使用并不满足与经转化的会话信息120相关联的所有参数的网络 路径130。因此,补偿机制可以在按需的基础上被提供。从而,示例系统100可以把网络感 知提供给与服务器104和/或转化引擎102相关联的应用。可以在转化引擎102、服务器 104、控制器106、客户端或系统100的其它部分之间监控/交换通信以标识何时将使用补偿 机制。因此,系统100为应用/游戏设计者提供了自由以考虑游戏并且不聚焦于将支持应 用/游戏的底层网络。示例系统100可以给游戏产业以及其中各种网络需要将被满足的其 它产业提供益处。
[0025] 服务器104将把会话信息110发送到转化引擎102。会话信息110可以包括客户 端列表和会话状态。网络感知的应用/服务器104将知道什么程序正在运行以及如何传送 与那些程序相关联的信息以及网络可以如何满足那些资源需要。转化引擎102基于会话/ 阶段而知道什么网络参数/需求可以对应于给定需要。例如,转化引擎102可以标识:游戏 进行阶段将对应于低等待时间数据参数124。因此,应用可以提供仅仅标识了游戏进行状态 的会话信息110,并且转化引擎102可以知道把经转化的会话信息120传到控制器106,其 对应于低等待时间数据参数124。
[0026] 转化引擎102可以提供各种形式的转化,S卩,可以不同地响应于给定的会话信息 110,这取决于服务器104或特定应用的上下文。例如,转化引擎102可以把对于第一应用 的游戏进行阶段转化成第一阈值数据参数124,而同时把来自第二应用的相同游戏进行阶 段转化成第二阈值数据参数124。每个应用可以具有如由转化引擎102所标识的不同设置, 其可以被定制以编整用于每个服务器104和/或应用/会话111/状态的转化。相似地,转 化引擎102可以标识用于要与服务器104交互和/或连接到服务器104的客户端的特定定 制,从而使得能够实现对网络客户端以及甚至其它设备的定制响应。
[0027] 转化引擎102可以是控制器106的部分,诸如OpenFlow控制器106,其使得能够 实现位于控制器106的逻辑的顶部的外加模块。转化引擎102可以被提供为分离/独立的 应用,其可以通过使用某种API而被调用,从而把由控制器106可使用的特定消息推送到控 制器106。转化引擎102可以通过使用不同的技术而被提供,其可以取决于控制器106正 在提供什么机制。例如,转化引擎102可以是软件映射功能、程序、和/或API。转化引擎 102可以与控制器106位于同处、可以被提供为分离的程序,并且可以作为插件被提供到控 制器106的API。转化引擎102可以被提供为软件映射功能。系统100的其它部分(例如, 服务器104、控制器106)可以被相似地提供和/或组合。
[0028] 因此,服务器104和相关联的应用不需要知道如何与网络中的每个网络设备/控 制器对话(例如,沿着网络路径130),因为转化引擎102提供智能抽象层以促进服务器104 如何可以与网络兼容以及对要被用于设置每个特定控制器/节点/网络设备的会话信息 110进行格式化/转化。转化引擎102可以取得由服务器104(例如,由网络感知应用)表达 的需要,把它们转化成网络需求,以及以控制器106能够理解并且应用向供给网络路径130 的格式而把所述网络需求传送到控制器106。转化引擎102知道如何应对不同类型的服务 器104、如何理解把自身定制于不同服务器以及把不同会话111和/或阶段转化成控制器 106能够理解并且实现以获得所需网络资源的网络需求的一种方式。控制器106知道所述 网络以及如何在网络客户端和/或服务器104之间建立网络路径130,以支持给定的数据速 率。控制器106可以使用其自身的技术(例如,基于与包括与控制器106交互的机制的开源 网络设备/交换机/控制器相兼容的OpenFlow标准)来供给所请求的网络路径130。
[0029] 图2是依据示例的包括转化引擎202的系统200的时序图。系统200还可以包括 在至少一个服务器204、控制器206、网络208和/或客户端209之间的交互。服务器204 可以基于服务器等待状态241而等待接收会话信息。客户端209可以把客户端通信242发 送到服务器204。转化引擎202和/或控制器206可以基于等待状态243而等待从服务器 204接收输入。
[0030] 系统200可以提供体系结构框架,其中服务器204上的会话可以把会话的不同阶 段的网络需求通过转化引擎202直接传到控制器206。转化引擎202用以在服务器204和 控制器206之间提供抽象层。
[0031] 在示例中,服务器204可以在会话的开始时把会话信息(例如,{:会话ID (SessionID)、客户端列表(ClientList)、会话状态(SessionState) })发送到转化引擎 202。例如,服务器通信244可以涉及发送会话信息。客户端列表(哪些客户端是该会话的 部分的列表)可以被初始发送,并且可以从在如下用于该会话的稍后传输中被发送中省略 掉。转化引擎202可以存储会话ID到客户端列表的映射。因此,服务器204知道被传到转 化引擎202的会话信息,所述转化引擎202转化会话信息以用于与给定网络路径相关联的 每个网络设备/客户端。服务器204然后可以在到转化引擎202的随后通信中使用会话 ID,从而从随后的通信中省略客户端列表。服务器204可以包括逻辑用以标识客户端列表 是否在该会话的第一时间已经被发送到转化引擎202,从而使得能够在随后的通信中使用 会话ID,不必每次将客户端列表发送到转化引擎202。转化引擎202可以把会话ID转化成 客户端列表,并且使用它来标识对于每个客户端的网络端点(例如,客户端互联网协议(IP) 地址)。转化引擎202还可以从会话状态确定网络需求,并且然后把网络需求(例如,拓扑参 数和数据参数)传到控制器206。
[0032] 因此,服务器204可以提供客户端的列表以及与会话相关联的IP地址。转化引擎 202可以把所提供的会话信息转化成由控制器206可使用的信息,诸如拓扑信息,其包括至 少两个网络地址端点的群组,每对与质量/数据参数相关联。转化引擎202可以响应于来 自服务器的API调用而转化会话信息,并且转化引擎202可以使用API层以把经转化的会 话信息传到控制器206。转化引擎202可以把从服务器204接收的会话信息映射到将被传 到控制器的参数,从而用作映射引擎。转化引擎202可以响应于函数调用以及操作为函数 调用。在这样的示例中,如果服务器204调用作为函数的转化引擎202并且把参数(例如, 会话信息)传到转化引擎202,则转化引擎202将返回由控制器206可使用的经转化的会话 信息。由转化引擎函数调用所返回的值可以基于对控制器206的另一 API调用而被传到控 制器206。在另一示例中,转化引擎202可以被提供为联网接口。来自服务器204的会话信 息可以绑定到网络分组中,并且通过网络发送到转化引擎,其可以是完整的软件程序以接 收这样的分组。示例转化引擎202可以解绑定所述分组,对其进行转化以用于控制器206, 并且把经转化的分组发送到控制器206。因此,示例转化引擎202可以被提供为全面丰满 (full-fledged)的软件包以接收和操控信息。转化引擎202可以被提供为纯API,或被提 供为具有到它的软件组件的API组件。示例可以以不同的方式实现。
[0033] 当转化引擎202接收客户端列表和IP地址时,其可以为所述群组提供拓扑参数 (端点地址)和数据参数。控制器206然后将理解,对于从第一客户端到服务器的示例网络 路径,需要第一阈值的数据速率。相似地,控制器206可以理解用于(一个或多个)附加客 户端以及(一个或多个)服务器的参数,如适当的话。转化引擎202可以把多个信息集合提 供到控制器206,从而使控制器206能够映射出复杂的网络路径同时遵守所请求的用于所 述路径的网络资源/性能。在多个客户端连接到单个服务器204以用于会话的情形下,月艮 务器204可以提供的是具有其相应的IP地址的客户端的列表,连同服务器自身的IP地址。 在多个客户端经由多个服务器204被连接的情形下,每个服务器204可以提供连接到正运 行在该服务器204上的会话的客户端的列表,连同服务器自身的IP地址。
[0034] 因此,服务器204可以把服务器通信244发送到转化引擎202,诸如会话信息,其包 括会话标识、客户端列表、会话状态、以及其它信息。转化引擎202可以执行转化245,诸如 把会话状态映射到数据和/或拓扑参数。转化引擎202可以把转化引擎通信246 (诸如,客 户端列表和其它参数)传到控制器206。
[0035] 控制器206 (例如,OpenFlow控制器)可以通过把规则{规则:匹配,动作}沿着网 络路径向下推送到各种网络设备(例如,网络路由器/交换机)而供给需要的网络路径。尽 管服务器204、转化引擎202、和控制器206 (以及其它元件)被示出为分离的设备,但它们 可以共同位于相同的设备内(例如,被实现为由处理器可执行的软件程序)。
[0036] 控制器206可以执行控制器活动247,诸如,标识用于与会话相关联的客户端列表 中的每个客户端的(一个或多个)网络节点。控制器206可以把控制器通信248 (诸如,用 于网络节点的配置参数)发送到网络208。例如,控制器通信248可以被发送到网络路径上 的每个网络节点(如由转化引擎202所标识的),所述网络路径与至少一个网络208的至少 一个客户端209和/或服务器204相关联。
[0037] 图3是依据示例的包括转化引擎302的系统300的框图。转化引擎302可以与服 务器304和/或控制器306相关联,以管理由第一客户端309a、第二客户端309b和/或服 务器304对网络308的使用。客户端可以与至少一个阶段相关联,诸如,第一阶段312a(例 如,同步)和第二阶段312b (例如,游戏进行)。转化引擎302可以基于拓扑参数322和数据 参数324而与服务器304和/或控制器306交互。除那些具体所示的之外,系统300可以 包括附加网络节点332和/或网络路径330。
[0038] 控制器306可以基于至少一个流(诸如,第一流334a (例如,高吞吐量)和/或第二 流334b (例如,低等待时间))而与网络308交互。至少一个流可以与至少一个阶段312和 /或会话相关联。网络308可以包括至少一个网络节点332和网络路径,诸如,第一网络路 径330a和第二网络路径330b。
[0039] 如所图示的,转化引擎302可以提供对应于第一阶段312a的第一拓扑参数322和 数据参数324。控制器306基于对应的网络节点而建立第一路径330a以提供与第一阶段 312a (同步)相关联的高吞吐量,所述网络节点如由控制器306响应于由转化引擎302所提 供的经转化的会话信息(第一拓扑参数322和数据参数324)所配置。相似地,转化引擎302 可以提供第二经转化的会话信息(第二拓扑参数322和数据参数324)以用于控制器建立对 应于第二阶段312b (游戏进行)的低等待时间的第二网络路径330b。因此,当在利用高吞 吐量的阶段(同步)中时,第一客户端309a可以利用高吞吐量路径,以及当在利用低等待时 间的阶段(游戏进行)中时,第二客户端309b可以利用低等待时间路径。多个不同的客户端 可以贯穿给定会话而使用不同的阶段/路径。
[0040] 图4是依据示例的包括转化引擎402的系统400的框图。转化引擎402可以与服 务器404和/或控制器406相关联。通信可以从转化引擎402、服务器404和/或控制器 406通过网络而传到第一客户端409a、第二客户端409b和/或第三客户端409c。网络通信 可以基于至少一个网络节点(诸如,第一网络节点432a、第二网络节点432b、第三网络节点 432c和/或第四网络节点432d)以及至少一个网络路径(诸如,第一网络路径430a、第二网 络路径430b和/或第三网络路径430c)。通信可以鉴于其它业务405 (诸如,电话、视频/ 多媒体以及与网络相关联的其它业务源/目的地)而被提供。除那些具体所示的之外,可以 提供附加的节点/路径以及其它元件。
[0041] 端点之间的每个路径可以涉及各种网络设备,诸如节点432a_432d。在示例中,网 络节点是网络交换机,诸如路由器,其可以关于通过该网络节点的联网业务而做出转发决 定。路由器用以知道在分组(即网络业务)已在路由器处被接收后如何发送所述分组。把分 组发送到哪的决定逻辑可以在特定的网络节点432a-432d内,并且网络节点432a-432d可 以运行与控制标准(诸如,OpenFlow协议)兼容的协议。网络节点可以接收分组,并且依据 由控制器406向下推送到网络节点的规则来把它发送出去。如何在每网络节点的基础上路 由分组的逻辑可以被远程容纳在控制器406 (和/或转化引擎402或服务器404)处。
[0042] 体系结构可以承载数据,同时也承载语音、视频、一般数据、和其它网络业务405。 三个客户端409a、409b和409c被示出为连接到服务器404 (例如,以在网络上玩游戏)。由 网络承载的语音、视频和数据业务405还要被传递通过网络节点432a-432d中的至少一个。 因此,各种网络节点432a-432d必须应对由附加业务405所致的负担,而不消极地影响由客 户端409a-409c和服务器404共享的连接。
[0043] 随着客户端409a_409c连接以及会话进展通过各个阶段,服务器404和控制器406 可以彼此通信以经由转化引擎402传递网络需求和其它信息。在游戏示例中,在游戏进行 阶段中,游戏服务器404可以在客户端409a-409c的列表上传递该游戏进行阶段的最大允 许等待时间要求和游戏服务器ID。知晓网络拓扑的OpenFlow控制器406可以通过在把游戏 客户端409a-409c连接到游戏服务器404的各个网络设备/节点432a-432d上对OpenFlow 规则进行编程而开拓用于游戏进行阶段的网络路径(例如,与低等待时间相关联的网络路 径430c)。规则由OpenFlow控制器404向下发送,并且存储在交换机/节点432a-432d上(例 如,把规则从服务器侧/控制器406上的控制平面传到数据平面元件/节点432a-432d)。 控制器406可以实现影响少于全部的节点432a-432d的控制技术,例如,控制器406可以基 于一个节点432创建路径。
[0044] 节点432可以基于在每个节点432上所实现的规则(诸如,匹配/动作对)而被编 程。表格1示出了用于节点1 (例如,节点432a)的示例。可以依据第一行的匹配准则、针 对目的地IP地址来检查节点432a处所接收的分组。如果目的地IP匹配,则将采取的行动 是把所接收的分组从节点432a的端口 8发送出去。依据第二行匹配,如果分组是从节点 432a的端口 3内传接收的,则该分组从节点432a的端口 4被外传发送出去。因此,基于规 则的匹配/动作可以被编程到每个交换机/节点432中,这基于OpenFlow标准如何定义每 个规则,所述规则如由控制器406推送出去以用于来自转化引擎402的经转化的会话信息。 表格1。

【权利要求】
1. 一种方法,包括: 在转化引擎处,接收对应于与服务器相关联的会话的会话信息; 把会话信息转化成包括拓扑参数和数据参数在内的经转化的会话信息;以及 对经转化的会话信息进行格式化以供控制器用于供给满足所述拓扑参数和数据参数 的网络路径。
2. 如权利要求1所述的方法,其中会话的第一阶段与包括高吞吐量数据参数的第一会 话信息相关联,并且会话的第二阶段与包括低等待时间数据参数的第二会话信息相关联。
3. 如权利要求1所述的方法,其中会话的第一阶段与满足拓扑参数的第一网络路径相 关联,并且会话的第二阶段与满足拓扑参数的第二网络路径相关联。
4. 如权利要求1所述的方法,此外包括:响应于会话的过渡阶段而对网络路径进行动 态去供给。
5. 如权利要求1所述的方法,其中会话信息包括会话ID、客户端列表、以及会话状态中 的至少一个。
6. 如权利要求1所述的方法,其中拓扑参数包括:对应于网络路径的第一端点的第一 网络地址,以及对应于网络路径的第二端点的第二网络地址。
7. 如权利要求1所述的方法,其中数据参数包括:与等待时间、吞吐量、跳动和分组丢 失中的至少一个相关联的数据需求。
8. -种转化引擎,用以: 接收对应于与服务器相关联的会话的会话信息; 把会话信息转化成包括拓扑参数和数据参数在内的经转化的会话信息;以及 指引控制器依据经转化的会话信息而供给与所述拓扑参数和数据参数相顺从的网络 路径。
9. 如权利要求8所述的转化引擎,其中所述转化引擎与应用编程接口(API)调用相关 联。
10. 如权利要求8所述的转化引擎,其中所述转化引擎包括映射信息,以将会话信息中 所包括的会话ID映射到客户端列表,所述客户端列表包括与会话相关联的网络客户端的 列表;以及所述转化引擎用以基于所述映射信息而标识用于每个网络客户端的至少一个网 络端点。
11. 如权利要求8所述的转化引擎,其中所述控制器是OpenFlow控制器,并且所述经转 化的会话信息用以指引OpenFlow控制器依据与OpenFlow控制器相关联的流而动态地供给 网络路径。
12. 如权利要求8所述的转化引擎,其中所述转化引擎用以指引所述控制器响应于网 络路径不顺从与数据参数相关联的服务水平而供给替代的网络路径。
13. 如权利要求8所述的转化引擎,其中所述转化引擎用以指引所述服务器响应于网 络路径不顺从与数据参数相关联的服务水平而在服务器处触发补偿机制。
14. 一种有形非临时性计算机可读介质,其存储指令集,所述指令当由处理器执行时, 执行方法以: 接收对应于与服务器相关联的会话的会话信息; 把会话信息转化成包括拓扑参数和数据参数在内的经转化的会话信息;以及 对经转化的会话信息进行格式化以供控制器用于供给满足拓扑参数和数据参数的网 络路径。
15.如权利要求14所述的计算机可读介质,此外包括用以基于与服务器对应的服务器 转化信息而对会话信息进行转化的指令。
【文档编号】H04L12/28GK104272661SQ201280072838
【公开日】2015年1月7日 申请日期:2012年6月25日 优先权日:2012年6月25日
【发明者】R.桑帕思, V.萨帕 申请人:惠普发展公司,有限责任合伙企业
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1