一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

应用特定的分组处理卸载服务的制作方法

2022-03-19 16:32:07 来源:中国专利 TAG:


1.本发明的实施例涉及分组处理领域;并且更具体地,涉及代表应用将分组处理分配给网络资源的集合的卸载服务。


背景技术:

2.若干种技术可用于提高应用的性能,这取决于那些应用的预期目的。例如,对于提供分组交换和路由能力的联网应用,可使用诸如单根输入/输出虚拟化(sr-iov)和网络接口卡(nic)的技术来提高此类应用的处理性能。尽管那些技术旨在加速联网性能,但是它们通常也只提供通用的联网加速能力,而不是应用特定的分组处理逻辑加速。
3.可直接受益于应用特定的卸载能力的应用通常以专有的方式实现,并与为那些特定应用提供所需的加速技术的专门的软件或硬件组件紧密集成。与提供期望的加速能力的组件的此类紧密集成可能会使应用完全依赖于那些技术,这在涉及广泛的应用的云计算和虚拟化的上下文中不可取。并且,此类解决方案通常难以缩放(scale),并且限于单个应用,从而不允许其它应用共享(一个或多个)相同的加速组件。


技术实现要素:

4.描述一种用于将第一应用的网络操作卸载到网络系统中的网络资源的方法。该方法包括:由卸载服务从第一应用接收卸载服务能力请求消息,其中,卸载服务能力请求消息向卸载服务请求关于卸载服务的满足由第一应用提供的要求的集合的能力的信息;由卸载服务向第一应用传送卸载服务能力请求消息响应,其中,卸载服务能力请求消息响应包括卸载服务模板的集合,卸载服务模板:(1)是由卸载服务基于第一应用的要求的集合选择的以及(2)是将被修改用于执行第一应用的网络操作的可能模板,其中,卸载服务模板的集合中的每个模板包括以下各项中的一项或多项:将被修改用于执行第一应用的网络操作的参数列表,用于生成用于执行第一应用的网络操作的程序代码的代码存根的集合,以及用于生成程序代码的库的集合;由卸载服务为第一应用的程序代码评估网络资源,以选择网络资源的集合用于安装程序并将第一应用的操作卸载到网络资源的集合;以及由卸载服务在网络资源的集合上安装基于卸载服务模板的集合生成的第一应用的程序代码,以使得网络资源的集合处理以下各项中的一项或多项:(1)来自第二应用的寻址到第一应用的分组以及(2)来自第一应用的寻址到第二应用的分组。
5.还描述一种提供指令的非暂时性机器可读存储介质,指令在由网络系统中的装置的处理器执行时将使所述处理器执行操作。这些操作包括:从第一应用接收卸载服务能力请求消息,其中,卸载服务能力请求消息向卸载服务请求关于卸载服务的满足由第一应用提供的要求的集合的能力的信息;向第一应用传送卸载服务能力请求消息响应,其中,卸载服务能力请求消息响应包括卸载服务模板的集合,卸载服务模板:(1)是由卸载服务基于第一应用的要求的集合选择的以及(2)是将被修改用于执行第一应用的网络操作的可能模板,其中,卸载服务模板的集合中的每个模板包括以下各项中的一项或多项:将被修改用于
执行第一应用的网络操作的参数列表,用于生成用于执行第一应用的网络操作的程序代码的代码存根的集合,以及用于生成程序代码的库的集合;为第一应用的程序代码评估网络资源,以选择网络资源的集合用于安装程序并将第一应用的操作卸载到网络资源的集合;以及在网络资源的集合上安装基于卸载服务模板的集合生成的第一应用的程序代码,以使得网络资源的集合处理以下各项中的一项或多项:(1)来自第二应用的寻址到第一应用的分组以及(2)来自第一应用的寻址到第二应用的分组。
6.还描述一种用于将第一应用的网络操作卸载到网络系统中的网络资源的装置,该装置用于:从第一应用接收卸载服务能力请求消息,其中,卸载服务能力请求消息向卸载服务请求关于卸载服务的满足由第一应用提供的要求的集合的能力的信息;向第一应用传送卸载服务能力请求消息响应,其中,卸载服务能力请求消息响应包括卸载服务模板的集合,卸载服务模板:(1)是由卸载服务基于第一应用的要求的集合选择的以及(2)是将被修改用于执行第一应用的网络操作的可能模板,其中,卸载服务模板的集合中的每个模板包括以下各项中的一项或多项:将被修改用于执行第一应用的网络操作的参数列表,用于生成用于执行第一应用的网络操作的程序代码的代码存根的集合,以及用于生成程序代码的库的集合;为第一应用的程序代码评估网络资源,以选择网络资源的集合用于安装程序并将第一应用的操作卸载到网络资源的集合;以及在网络资源的集合上安装基于卸载服务模板的集合生成的第一应用的程序代码,以使得网络资源的集合处理以下各项中的一项或多项:(1)来自第二应用的寻址到第一应用的分组以及(2)来自第一应用的寻址到第二应用的分组。
7.如本文中所描述的,应用可使用卸载服务来动态地请求将某些应用特定的分组处理逻辑实现卸载到在相关联的网络基础设施域上可用的p4网络资源。卸载服务具有系统范围的p4网络资源的整体系统视图,这允许卸载服务得知相关联的网络拓扑以及关于在该网络基础设施上可用的所有p4网络资源的详细信息,如它们的位置、它们支持的p4体系结构、它们的特性等。该整体系统视图使得卸载服务能够找到可用于部署应用特定的分组处理卸载逻辑实现的(一个或多个)最合适的p4网络资源,从而确保最有效的分组处理卸载性能。
附图说明
8.通过参考以下描述和用于示出本发明的实施例的附图,可以最好地理解本发明。图中:图1示出根据一个示例性实施例的可用于管理以下方面的部署和实施的卸载服务的功能块的集合的逻辑表示:应用特定的分组处理卸载要求和对应的应用特定的分组处理卸载逻辑。
9.图2示出根据一个示例性实施例的在一对应用之间经由p4网络资源的集合和卸载服务的数据流。
10.图3示出根据一个示例性实施例的卸载服务评估单元。
11.图4a示出根据一个示例性实施例的在卸载服务模板、p4目标体系结构、应用特定的卸载服务参数和应用特定的p4代码模板之间的关系。
12.图4b示出根据一个示例性实施例的在应用特定的卸载服务参数、应用特定的p4代码模板和应用特定的p4代码之间的关系。
13.图5示出根据一个示例性实施例的用于验证和测试应用特定的p4代码的方法。
14.图6示出根据一个示例性实施例的在p4网络资源、应用特定的卸载服务数据模型、应用特定的分组处理卸载逻辑和卸载服务模板之间的关系。
15.图7示出根据一个示例性实施例的在应用、非p4网络资源和p4网络资源之间的数据业务流。
16.图8示出根据另一个示例性实施例的在应用、非p4网络资源和p4网络资源之间的数据业务流。
17.图9a示出根据一个示例性实施例的用于p4网络资源向卸载服务注册的方法。
18.图9b示出根据一个示例性实施例的用于p4网络资源向卸载服务注册的数据流程图。
19.图10a示出根据一个示例性实施例的用于应用向卸载服务注册的方法。
20.图10b示出根据一个示例性实施例的用于应用向卸载服务注册的数据流程图。
21.图11a示出根据一个示例性实施例的用于应用终止卸载服务/向卸载服务注销的方法。
22.图11b示出根据一个示例性实施例的用于应用终止卸载服务/向卸载服务注销的数据流程图。
23.图12a示出根据一个示例性实施例的用于p4网络资源终止卸载服务/向卸载服务注销的方法。
24.图12b示出根据一个示例性实施例的用于p4网络资源终止卸载服务/向卸载服务注销的数据流程图。
25.图13示出根据一个示例性实施例的其中应用利用p4网络资源的集合来进行分组解析和报头验证的示例。
26.图14示出根据一个示例性实施例的其中应用利用p4网络资源的集合来进行分组解析和报头验证的另一个示例。
27.图15示出根据一个示例性实施例的其中应用利用p4网络资源的集合来进行分组解析和报头验证的又一个示例。
28.图16a-16e示出根据一个示例性实施例的用于将第一应用的网络操作卸载到网络系统中的网络资源的方法。
29.图17a示出根据本发明的一些实施例的在示范性网络内的网络装置(nd)之间的连接性以及nd的三个示范性实现。
30.图17b示出根据本发明的一些实施例的用于实现专用网络装置的示范性方式。
31.图17c示出根据本发明的一些实施例的可耦合虚拟网络元件(vne)的各种示范性方式。
32.图17d示出根据本发明的一些实施例的在nd中的每个nd上具有单个网络元件(ne)的网络,并在这种直接的方法内将用于维持可达性和转发信息(又称为网络控制)的传统的分布式方法(通常由传统的路由器使用)与用于维持可达性和转发信息的集中式方法进行对比。
33.图17e示出根据本发明的一些实施例的以下简单情况:其中,nd中的每个nd实现单个ne,但是集中式控制平面已经将不同nd中的ne中的多个ne抽象为(抽象以表示)(一个或
多个)虚拟网络之一中的单个ne。
34.图17f示出根据本发明的一些实施例的以下情况:其中在不同nd上实现多个vne并且这些vne彼此耦合,并且其中集中式控制平面已经将这些多个vne抽象以使得它们表现为虚拟网络之一内的单个vne。
35.图18示出根据本发明的一些实施例的具有集中式控制平面(ccp)软件的通用控制平面装置。
具体实施方式
36.以下描述描述用于卸载服务的方法和设备,卸载服务代表应用将分组处理分配给网络资源的集合。在以下描述中,阐述众多具体细节,如逻辑实现、操作码、用于指定操作数的手段、资源分区/共享/复制实现、系统组件的类型和相互关系以及逻辑分区/集成选择,以便提供对本发明的更透彻的理解。然而,本领域技术人员将认识到,没有此类具体细节也可实践本发明。在其它实例中,没有详细示出控制结构、门级电路和完整的软件指令序列,以免使本发明晦涩难懂。利用包括的描述,本领域普通技术人员将能够在无需过度实验的情况下实现合适的功能性。
37.本说明书中对“一个实施例”、“实施例”、“示例性实施例”等的提及指示:描述的实施例可包括特定特征、结构或特性,但每个实施例可能不一定包括该特定特征、结构或特性。而且,此类短语不一定指相同的实施例。此外,当结合实施例描述特定特征、结构或特性时,认为,本领域技术人员知道结合其它实施例来实现此类特征、结构或特性,而不管这是否被明确描述。
38.加括号的文本和带虚线边框(例如,大破折号、小破折号、点划线和点)的方框可在本文中用于说明向本发明的实施例增加额外特征的可选操作。然而,此类符号不应视为意味着:这些是唯一的选项或可选操作,和/或在本发明的某些实施例中具有实线边框的方框不是可选的。
39.在以下描述和权利要求书中,可使用术语“耦合”和“连接”及其衍生词。应当理解,不打算将这些术语作为彼此的同义词。“耦合”用于指示:两个或更多个元件彼此协作或交互,它们可以或者可以不彼此直接物理或电接触。“连接”用于指示:在彼此耦合的两个或更多个元件之间建立通信。
40.如本文中将更详细地描述的,提出p4分组处理卸载服务(有时简称为卸载服务),应用可使用p4分组处理卸载服务来动态地指定它们自己的应用特定的分组处理卸载要求以用于给p4网络资源的分配。应用特定的分组处理卸载要求(有时称为卸载要求)由利用p4技术的应用指定。如本文中所使用的,p4是设计成对网络装置/资源的数据平面功能性进行编程并部分地定义控制平面和数据平面之间的接口的技术。p4装置/资源在软件虚拟设备中和在硬件装置(例如,网络接口卡(nic)和以太网交换机)中可用。尽管关于p4技术和对应的p4网络装置进行描述,但是本文中描述的技术可类似地应用于其它技术,其它技术提供用于表示以下方面的语言:如何由诸如硬件或软件交换机、网络接口卡、路由器或网络设备的可编程转发元件的数据平面来处理分组。因此,p4技术的使用是为了说明性的目的。
41.本文中描述的卸载服务通过以下方面来满足应用的卸载要求:将可以用p4程序/代码实施的对应的应用特定的分组处理卸载逻辑部署到相关联的网络基础设施域的可用
p4网络资源。如本文中所使用的,术语“卸载”旨在反映:可由应用本身执行的某些操作改为由其它系统组件(例如,p4网络资源)代表该应用执行,其目的是增加整体系统效率。
42.图1示出根据一个示例性实施例的可用于管理以下方面的部署和实施的卸载服务100的功能块的集合的逻辑表示:应用特定的分组处理卸载要求和对应的应用特定的分组处理卸载逻辑。如图1中所示,卸载服务100可包括资源域102,资源域102包括网络拓扑信息104和p4资源信息106。网络拓扑信息104(有时称为网络模型)包括与网络拓扑相关联的信息,其包括关于以下方面的信息:相关联的网络基础设施的联网元件(例如,p4网络资源和非p4网络资源)之间的互连以及这些联网元件与其中部署应用的计算/存储资源的互连。网络拓扑信息104可直接提供给卸载服务100,或者可由卸载服务100动态地发现。在一些实施例中,网络拓扑信息104对卸载服务100的可见性可能在范围方面受到限制。例如,提供给卸载服务100的网络拓扑信息104可能仅限于服务器的集合与服务器的集合直接连接的联网资源之间的互连。卸载服务100可使用网络拓扑信息104来帮助确定用于部署应用特定的分组处理卸载逻辑实现的最合适的位置。
43.p4资源信息106(有时称为网络资源信息模型)包括关于以下方面的信息:在相关联的网络基础设施域上可用的所有p4网络资源以及在网络拓扑内卸载服务100的可见性(例如,如由网络拓扑信息104规定的)。关于每个p4网络资源的详细信息对于以下方面是有用的:卸载服务100做出关于应用特定的分组处理逻辑实现的部署和监测的合适的决定。例如,会预期p4网络资源最低限度地提供它们的唯一身份、它们的能力(例如,处理和存储器可用性)、它们的系统特性(例如,与特定编译器对应的相关联的体系结构)以及它们在网络基础设施域内的位置。如果需要,还可请求每个p4网络资源提供必需的开发环境和其它p4网络资源特定的信息。
44.在一些实施例中,可持续监测每个p4网络资源,以报告可用的以及已经分配的资源的量以及所有相关的分析信息。例如,卸载服务100可使用该信息来确定应用特定的分组处理卸载逻辑实现是否正在按照预期工作(例如,是否满足所有应用特定的分组处理卸载要求)。
45.如图1中所示,卸载服务100可包括开发域108,开发域108包括卸载服务模板110。卸载服务模板110允许应用配置它们的特定的卸载服务规范。卸载服务模板110还包括或表示:p4体系结构、p4库和允许应用开发者将他们自己的应用特定的分组处理卸载逻辑实现编写为p4程序/代码的开发工具。在一些实施例中,相关联的网络基础设施域的所有p4网络资源共享相同的p4体系结构,以允许在任何可用的p4网络资源上部署任何应用特定的分组处理卸载逻辑实现,而无需重新编译或特定的程序改变(program adaptation)。还如图1中所示,卸载服务100可包括应用域112,应用域112包括应用卸载服务信息114、应用卸载服务使能器116和应用卸载服务代理118。应用卸载服务信息114包括关于向卸载服务100请求卸载服务的每个应用的信息,其包括关于所有提交的应用特定的分组处理卸载要求的信息。例如,由于每个应用提供它们的应用特定的分组处理卸载要求以及它们的应用特定的分组卸载逻辑实现,所以卸载服务100可使用该信息来评估每个应用的最佳分组处理卸载机会。在该配置中,可经由卸载服务100的应用卸载服务代理118来执行应用202之间的交互,应用卸载服务代理118用于允许应用202管理、配置、供应卸载服务100以及与卸载服务100通信。在一些实施例中,寻址到应用202的分组:要么(1)由对应的网络资源204处理并且此后转发
到应用卸载服务代理118,然后到达目标应用202;要么(2)传送到应用卸载服务代理118并转发到网络资源204的集合以用于处理,然后到达目标应用202。
46.应用卸载服务使能器116向应用提供信息和软件实用工具以用于与卸载服务100集成。特别地,可为每个应用提供对应的使能器116,以充分利用卸载服务100。例如,使能器116可包括自动生成的应用编程接口(api)和客户端-服务器存根,以及潜在地提供特定的管理和监测工具。
47.在一些实施例中,卸载服务100为应用开发者提供他们的应用特定的卸载服务逻辑实现的测试实现,其可用于验证他们的(一个或多个)应用与卸载服务100的适当集成。此类测试实现可反映初始验证阶段期间的应用特定的分组处理卸载逻辑实现,或者它可反映部署阶段期间的更加集成的测试实现。此类集成的测试实现可旨在更真实地反映在分配用于卸载逻辑部署的(一个或多个)p4网络资源上运行的真实p4实现。
48.应用卸载服务代理118提供用于在应用和请求的应用特定的分组处理卸载逻辑实现之间的服务管理和供应请求的代理。假设会需要动态地供应应用特定的分组处理卸载逻辑实现,则卸载服务100可出于该目的而充当代理服务。例如,图2示出在一对应用2021和2022之间经由p4网络资源204
1-204n的集合和卸载服务100的数据流。特别地,应用2021向卸载服务100传送应用卸载服务管理/供应请求。该请求可通过应用卸载服务代理118,应用卸载服务代理118可:要么在卸载服务100内提供,要么正在p4网络资源204本身上运行。在该配置中,卸载服务100可充当代理,并向p4网络资源204
1-204n的集合传送提交的(committed)应用2021的卸载服务表。此后,p4网络资源204
1-204n的集合可代表应用2021处理可能从应用2022经由非p4网络资源206
1-206m的集合路由到p4网络资源204
1-204n的集合的分组。如所描述的,管理和供应请求与在应用202之间交换的分组分开且独立。此外,只允许拥有应用卸载程序的应用202为在应用202之间交换的分组管理/供应它。
49.从安全的角度来看,上文描述的配置可允许卸载服务100指定它自己的安全要求等级以用于保护应用特定的分组处理卸载逻辑实现以及隔离p4网络资源204以免被应用202直接访问。然而,对于可信的应用和服务,卸载服务100可以可选地允许应用202与它们的应用特定的分组处理卸载逻辑实现直接通过接口连接。
50.在应用特定的分组处理卸载逻辑实现的验证阶段期间,可向应用开发者提供测试供应代理以用于验证他们的应用202与卸载服务100的集成。在部署阶段期间,并且一旦已经完全部署应用特定的分组处理卸载逻辑实现,就可向应用202提供完全集成的供应代理,以管理它自己的应用特定的分组处理卸载逻辑实现。
51.还如图1中所示,卸载服务100可包括核心服务逻辑120,核心服务逻辑120包括卸载服务评估单元122和卸载服务部署单元124。如图3中所示,卸载服务评估单元122可为卸载服务100验证应用202请求,并允许应用开发者将他们的应用202与卸载服务100集成并验证,然后可在相关联的网络基础设施域上正式部署整个应用特定的分组处理卸载逻辑实现。特别地,卸载服务评估单元122包括基本验证302,其提供应用证书验证302a、应用卸载服务请求验证302b和应用服务水平协议(sla)验证302c。此外,卸载服务评估单元122包括基本集成304,其提供应用卸载服务使能器304a(例如,应用卸载服务基本测试服务306)和应用卸载服务基本测试供应代理304b。
52.在为卸载服务100评估应用请求中包括对由应用202在向卸载服务100注册时提供
的信息进行分析。在应用卸载服务请求过程期间,假设:除了实现应用202预期的应用特定的分组处理卸载逻辑的p4程序之外,应用202还会经由卸载服务模板110向卸载服务100最低限度地提供关于它请求的sla规范的信息。卸载服务100验证在应用202向卸载服务100注册期间接收的信息。验证准则可能基于:(1)使用指定的卸载服务参数编译应用202的p4程序的结果;和/或(2)启用应用特定的分组处理卸载逻辑实现所需的p4网络资源204的量。那些验证检查可由卸载服务100自动执行。
53.一旦基本验证检查完成,便向应用开发者提供应用卸载服务使能器304a以用于访问和测试他们请求的应用特定的分组处理卸载逻辑实现。开发者可使用那些应用卸载服务使能器304a来开发和验证他们的应用202与卸载服务100的适当集成。
54.如之前所论述的,对于应用202(应用202需要动态地供应它们的应用特定的分组处理卸载逻辑实现),还可提供应用卸载服务基本测试供应代理304b。一旦评估过程完成,卸载服务100便证明:应用202对卸载服务100的请求符合所有它的评估准则以用于潜在地由卸载服务100部署在p4网络资源204上。
55.卸载服务部署单元124标识适合于实施应用特定的分组处理卸载实现的p4网络资源204。在一些实施例中,最适合的p4网络资源204是最接近于请求应用202的p4网络资源204。这可以是位于与应用202相同的服务器上的p4网络资源204(例如,p4网络资源204是nic)或直接连接到其中部署应用202的服务器的p4网络资源204(例如,p4网络资源204是以太网交换机)。应用特定的卸载服务逻辑实现的最适合的p4网络资源204可最低限度地取决于与网络拓扑和接近性、p4网络资源204的可用性和p4网络资源204的能力相关联的信息,以及潜在地取决于应用特定的部署要求。
56.当卸载服务100分配至少一个p4网络资源204来运行应用特定的分组处理卸载逻辑实现时,卸载服务100可通过安装在分配的p4网络资源204上而在分配的p4网络资源204上实施该应用特定的卸载服务逻辑实现。在其中将应用202部署在多个p4网络资源204上的情况下,卸载服务100支持跨越所述多个p4网络资源204评估和部署应用特定的分组处理卸载逻辑实现。
57.为了使用p4技术来开发应用,必须有p4目标以及该特定目标的p4体系结构和开发环境。更具体地,p4目标是p4网络资源204,它可以是软件设备或硬件装置。考虑到每个p4网络资源204可能具有它自己的特定的能力和特性,要求每个p4目标提供至少一个p4体系结构来描述它支持的分组管道和分组路径以及详细说明支持的额外功能块和数据类型的所有所需的p4库。
58.通常,并不预期p4程序/代码是跨越不同的p4体系结构可移植的。然而,如果有足够的资源,那么为给定的体系结构编写的p4程序就应当是跨越如实地实现对应的模型/体系结构的所有p4目标可移植的。p4体系结构可视为p4程序和p4目标之间的契约。
59.尽管p4可移植交换机体系结构(psa)代表p4目标的标准p4体系结构,但是每个p4目标也可具有它自己的特定的p4体系结构。假设卸载服务100会必须管理许多不同类型的p4网络资源204,那么网络中的p4网络资源204的集合应当使用最少数量的p4体系结构,并且理想情况下应当使用相同的标准p4体系结构。还应注意,即使所有p4目标都会支持相同的psa,它们也可有不同量的资源(例如,处理能力和存储器)来提供,这也会必须由卸载服务100专门管理。
60.卸载服务100向应用开发者提供卸载服务模板110,以使他们指定他们关于由卸载服务100提供的服务的预期要求。如图4a中所示,每个卸载服务模板110指定p4目标体系结构402以及卸载服务特定的卸载服务参数404。应用特定的卸载服务参数404可用于确定应用202会需要的表条目的量、预期的分发方案和容错性等。应用开发者可选择并填充会满足他们的需求的最合适的卸载服务模板110,并且卸载服务100生成应用特定的p4代码模板406,以使应用开发者开始编写他们自己的应用特定的p4代码408(即,应用特定的卸载服务逻辑实现),如图4b中所示。
61.一旦应用开发者已经完成他们的应用特定的p4代码408的实现,应用开发者便使用由卸载服务100提供的工具来验证和测试他们的实现。例如,如图5的方法500中所示,在操作502,可首先对照提供的卸载服务体系结构(例如,p4目标体系结构402)和指定的卸载服务参数(例如,应用特定的卸载服务参数404)检查填写的应用特定的p4代码模板406(包括应用特定的p4代码408)。如果填写的应用特定的p4代码模板406无效,则在操作504,拒绝填写的应用特定的p4代码模板406。相反,如果填写的应用特定的p4代码模板406有效,则在操作506-520,可适当地测试填写的应用特定的p4代码模板406,然后在操作522,将其部署在(一个或多个)p4目标上。
62.特别地,方法500可首先确定是否已经成功测试填写的应用特定的p4代码模板406(例如,应用特定的p4代码408通过所有测试)。响应于确定尚未测试填写的应用特定的p4代码模板406,方法500移动到操作508以生成和部署应用特定的p4代码408的测试实现。特别地,为了测试应用特定的p4代码408,为应用开发者提供用于以下方面所需的能力:在将他们的应用特定的p4代码408部署在实时网络基础设施上之前对其进行测试。提议第一测试实现来在操作508使用指定的卸载服务参数在选择的卸载服务体系结构上测试应用特定的p4代码408。该第一测试设置(setup)将应用特定的p4代码408作为独立的应用进行测试。
63.假设填写的应用特定的p4代码模板406有效并且在操作508正在按照预期工作,并且在操作506确定已经成功测试填写的应用特定的p4代码模板406之后,在操作510卸载服务100标识其中应当部署填写的应用特定的p4代码模板406的特定的p4网络资源204。取决于提供的卸载服务参数和网络基础设施,可能需要在多个不同的p4网络资源204上部署填写的应用特定的p4代码模板406。当多个应用特定的p4代码模板406共享单个p4网络资源204(如在操作512确定的)时,提议第二测试实现来在与分配的p4网络资源204类似的系统上测试多个应用特定的p4代码模板406。特别地,在操作514,卸载服务100确定多个应用特定的p4代码模板406的操作之间的合并是否成功。当合并不成功时,在操作516卸载服务确定拒绝来自应用202的请求。如果(1)在操作512没有选择共享的p4网络资源204或(2)在操作514证实一切都正在按照预期工作,那么在操作518卸载服务确定是否在与选择的(一个或多个)p4网络网络204类似的系统上已经执行测试。如果尚未执行测试,则方法500移动到操作520,以在与选择的p4网络资源204类似的系统上生成和部署测试实现。相反,如果已经执行测试,则方法500移动到操作522,以将新生成的p4实现部署到分配的p4资源。
64.如图6中所示,为应用202提供卸载服务模板110,以向卸载服务100指定它们应用特定的分组处理卸载要求。在一个实施例中,可将应用特定的分组处理卸载逻辑602和数据模型604的部署参数化,以指定某些部署和服务水平期望,其包括应用p4卸载服务实现606和应用卸载服务参数608。例如,此类部署参数可专门用于性能、弹性和尺寸设计方面或所
需的能力和部署约束方面的要求。
65.在与开发环境相关的方面,合适的开发环境会可用于允许应用202向卸载服务100指定它们自己的应用特定的分组处理卸载逻辑602和数据模型604。设想:此类开发环境会最低限度地提议卸载服务p4体系结构610和卸载服务p4库612以及由卸载服务100支持的对应的卸载服务参数614。然后,应用会使用那些卸载服务p4体系结构610和卸载服务p4库612来编写用于实现它们的应用特定的分组处理卸载逻辑602和数据模型604的p4程序。
66.如图7中所示,应用202可能通过若干个不同的联网元件(例如,非p4网络资源206和p4网络资源204)互连在一起,当将应用202部署在公共云网络基础设施的不同计算资源上时这是事实。尽管那些联网元件中的一些联网元件可能具p4能力(例如,p4网络资源204
1-204n),但是一些其它联网元件可能不具p4能力(例如,非p4网络资源206
1-206y)。在图7中所示的示例中,在应用2021和应用2022之间交换数据业务,其中数据业务潜在地经过几个p4网络资源204和非p4网络资源206。
67.在一个实施例中,至少一个p4网络资源204在应用202之间的预期业务路径上可用,而可能有或者可能没有任何非p4网络资源206。相关联的网络基础设施域内的至少一个p4网络资源204的可用性使得卸载服务100能够向相关联的系统域内的应用202提供服务。以下事实强加具有至少一个p4网络资源204的要求:卸载服务100预计应用202使用只可部署在p4网络资源204上的p4技术来提供它们的应用特定的卸载服务逻辑实现。
68.考虑到应用2021和应用2022之间的业务会始终必须经过至少一个或多个p4网络资源204,应用2021和应用2022可利用那些p4网络资源204中的任何p4网络资源204来代表应用202本身执行任务。例如,如图8中所示,在将分组从应用2021发送到应用2022的情况下,应用2022可能潜在地受益于将某些分组处理任务卸载到p4网络资源204,从而在它的前往目的地的(destined)分组到达应用2022本身之前可对它的去往目的地的分组执行它的预处理操作。然而,在一个实施例中,在可能的情况下,最适合的位置应当尽可能保持最接近于应用2022的位置。
69.在一些实施例中,卸载服务100可允许应用202管理、供应分配给它的应用特定的卸载服务逻辑实现的特定p4网络资源204并与之通信。在部署应用特定的卸载服务逻辑实现时,卸载服务100可生成新的api来管理和供应该特定的逻辑实现。例如,可生成api以填充由应用的逻辑使用的表条目。p4技术假设,p4程序的编译产生两个主要产物(artifact):(1)实现p4程序的转发逻辑的数据平面配置;以及(2)用于从控制平面管理数据平面对象的状态的api。
70.由于预计卸载服务100在每个p4目标上提供访问每个应用特定的卸载服务逻辑实现所需的逻辑实现,所以卸载服务100可提供所需的代理功能,以允许每个应用202远程访问那些分配的p4网络资源204。p4管道和卸载服务100之间的接口可使用专有的解决方案实现,或者可选地可由卸载服务100使用p4运行时技术自动生成。如上文所论述的,到代理服务的接口可以是应用特定的卸载服务使能器116的一部分。
71.在一些实施例中,假设每个卸载服务100会管理不同的p4网络资源204或管理网络基础设施的至少不同切片,那么卸载服务100的多个实例可在网络基础设施上可用。例如,每个卸载服务100可具有它自己的对网络基础设施的可见性,在这种情况下,可能请求不同的应用202使用卸载服务100的不同实例。
72.考虑其中卸载服务100不会在部署的系统上可用的情况或其中卸载服务100不能向应用202分配任何p4网络资源204的情况,应用202可假设,卸载服务100不能提供它们的应用特定的分组处理卸载逻辑实现。那假设,应用202应当始终保持能够完全处理它们的整个分组处理逻辑以应对(account for)其中卸载服务100不能实施它们的请求的情况。
73.因此,应用202可实现可在分组到达应用202本身时确认分组是否已经通过它们的预期的应用特定的分组卸载逻辑实现(即,工作证明)的一些手段。例如,在其中应用特定的分组卸载逻辑实现会添加前置报头的情况下,工作证明可以是前置报头本身的存在。
74.现在转到图9a,将描述根据一个示例性实施例的用于p4网络资源204向卸载服务100注册的方法900a。将参考其它图的示范性实施例来描述流程图中的操作。然而,应当理解,流程图的操作可通过除了参考其它图论述的实施例以外的本发明的实施例来执行,并且参考这些其它图论述的本发明的实施例可执行与参考流程图论述的操作不同的操作。将关于图9b的数据流程图900b描述方法900a,在图9b中,p4网络资源2041向卸载服务100注册。在其它实施例中,其它p4网络资源204也可使用方法900a向卸载服务100注册。
75.如图9a中所示,方法900a可在操作902a开始,其中p4网络资源2041传送用于发现卸载服务100的卸载服务发现消息902b。特别地,卸载服务发现消息902b可以是多播或广播消息,或者p4网络资源2041可能已经静态地配置成向与卸载服务100相关联的特定的地址和/或端口传送卸载服务发现消息902b。因此,卸载服务100可检测/接收卸载服务发现消息902b。
76.在操作904a,响应于卸载服务发现消息902b,卸载服务100向p4网络资源2041传送卸载服务发现消息确认904b。因此,p4网络资源2041可接收卸载服务发现消息确认904b,卸载服务发现消息确认904b用于指示:接收到卸载服务发现消息902b并且因此存在卸载服务100。
77.在操作906a,p4网络资源2041向基于操作902a和904a发现的卸载服务100传送p4网络资源注册请求906b。p4网络资源注册请求906b可指示与p4网络资源2041相关联的各种特性,其包括p4网络资源2041的体系结构、p4网络资源2041的可用资源(例如,处理和存储器资源)、和/或与p4网络资源2041的体系结构相关联的用于编译将由应用202卸载在p4网络资源2041上的p4代码的编译器。
78.在操作908a,卸载服务100基于从p4网络资源2041接收的p4网络资源注册请求906b设置/更新p4网络资源信息模型908b。特别地,卸载服务100基于p4网络资源注册请求906b在p4资源信息106中指示p4网络资源2041的特性。
79.在操作910a,卸载服务基于从p4网络资源2041接收的p4网络资源注册请求906b来设置/更新网络模型910b。特别地,卸载服务100基于p4网络资源注册请求906b更新网络拓扑信息/模型104以包括p4网络资源2041和网络基础设施的其它元件之间的链路。
80.在操作912a,卸载服务100向p4网络资源2041传送p4网络资源注册请求确认912b,p4网络资源注册请求确认912b用于指示:p4网络资源2041已经向卸载服务100注册。因此,在接收到p4网络资源注册请求确认912b时,p4网络资源2041现在可预计潜在地接收用于代表远程应用202处理网络数据的卸载请求。
81.图10a示出根据一个示例性实施例的用于应用202向卸载服务100注册的方法1000a。将参考其它图的示范性实施例来描述流程图中的操作。然而,应当理解,流程图的操
作可通过除了参考其它图论述的实施例以外的本发明的实施例来执行,并且参考这些其它图论述的本发明的实施例可执行与参考流程图论述的操作不同的操作。将关于图10b的数据流程图1000b来描述方法1000a,在图10b中,应用2021向卸载服务100注册。在其它实施例中,其它应用202也可向卸载服务100注册。
82.如图10a中所示,方法1000a可在操作1002a开始,其中应用2021传送用于发现卸载服务100的卸载服务发现消息1002b。特别地,卸载服务发现消息1002b可以是多播或广播消息,或者应用2021可能已经静态地配置成向与卸载服务100相关联的特定的地址和/或端口传送卸载服务发现消息1002b。因此,卸载服务100可检测/接收卸载服务发现消息1002b。
83.在操作1004a,响应于卸载服务发现消息1002b,卸载服务100向应用2021传送卸载服务发现消息确认1004b。因此,应用2021可接收卸载服务发现消息确认1004b,卸载服务发现消息确认1004b用于指示:接收到卸载服务发现消息1002b并且因此存在卸载服务100。
84.在操作1006a,应用2021向卸载服务100传送卸载服务能力请求消息1006b。卸载服务能力请求消息1006b可向卸载服务100请求关于卸载服务100的能力的信息。特别地,应用2021请求可用于卸载服务100的p4网络资源204的能力,以使得卸载服务100可使这些p4网络资源204可用于应用2021。
85.在操作1008a,卸载服务100向应用2021传送卸载服务能力请求消息响应/确认1008b。卸载服务能力请求消息响应/确认1008b指示卸载服务100的能力,其包括向卸载服务100注册的各种p4网络资源204的处理能力、存储器容量和/或体系结构。例如,卸载服务100可向应用2021的开发者指示一个或多个p4体系结构,从而使得开发者能够编写指定他们的在分组处理卸载方面的需求的他们自己的p4程序。在一些实施例中,卸载服务100还可向应用2021建议应用特定的卸载实现或卸载服务模板110。更具体地,经由卸载服务能力请求消息响应/确认1008b,卸载服务100可提供可视为满足许多不同应用202的共同需求的多个应用特定的实现/模板。在这种情况下,可基于应用2021的需求和由开发者提供的输入/参数来为应用2021实例化应用特定的实现/模板,以产生履行应用2021的卸载逻辑的p4程序代码。
86.在操作1010a,应用2021向卸载服务100传送应用卸载服务请求1010b。应用卸载服务请求1010b指示将卸载到p4网络资源204的期望的操作/服务。例如,应用卸载服务请求1010b可包括参数的集合和处理/存储器要求的集合和/或将由卸载服务100代表应用2021实例化的应用特定的实现/模板的指示。
87.在操作1012a,卸载服务100评估1012b应用卸载服务请求1010b。特别地,当接收到卸载服务100时,卸载服务100执行分析,以验证应用卸载服务请求1010b并确定可为请求的应用特定的实现/模板分配的最适合的(一个或多个)p4网络资源204。
88.在操作1014a,卸载服务100向应用2021传送应用卸载服务请求确认1014b。特别地,卸载服务100经由应用卸载服务请求确认1014b向应用2021指示:是否查找到用于托管应用2021的相关联的逻辑的p4网络资源204的集合并且提交的p4程序代码是否被适当地改变以适合分配的p4网络资源204的要求。
89.在操作1016a,应用2021向卸载服务100传送应用卸载部署请求1016b。特别地,响应于应用2021接收到应用卸载服务请求确认1014b(应用卸载服务请求确认1014b指示:卸载服务100已经查找到用于托管应用2021的相关联的逻辑的适当位置并且提交的p4程序代
码被适当地改变以适合分配的p4网络资源204的要求),然后应用2021向卸载服务100提交应用卸载部署请求1016b,应用卸载部署请求1016b用于开始卸载操作。
90.在操作1018a,卸载服务100向分配的p4网络资源204的集合传送卸载服务部署请求1018b。特别地,响应于应用卸载部署请求1016b,卸载服务100向分配的p4网络资源204的集合传送卸载服务部署请求1018b,其包括应用特定的实现,它实现相关联的p4程序代码的逻辑以用于由分配的p4网络资源204的集合处理,从而使得分配的p4网络资源204的集合可在操作1020a处理/部署1020b相关联的p4代码的逻辑。
91.在操作1022a,分配的p4网络资源204的集合向卸载服务100传送卸载服务部署请求确认1022b,卸载服务部署请求确认1022b用于确认应用特定的实现/模板的部署。
92.在操作1024a,卸载服务100向应用2021传送应用卸载部署请求确认1024b,应用卸载部署请求确认1024b用于确认应用特定的实现/模板的部署。
93.图11a示出根据一个示例性实施例的用于应用202终止卸载服务100/向卸载服务100注销的方法1100a。将参考其它图的示范性实施例来描述流程图中的操作。然而,应当理解,流程图的操作可通过除了参考其它图论述的实施例以外的本发明的实施例来执行,并且参考这些其它图论述的本发明的实施例可执行与参考流程图论述的操作不同的操作。将关于图11b的数据流程图1100b来描述方法1100a,在图11b中,应用2021向卸载服务100注销。在其它实施例中,其它应用202也可向卸载服务100注销,以使得卸载服务100从其中部署它们的对应的p4网络资源204中移除应用特定的卸载服务逻辑实现(如果有的话)。
94.如图11a和图11b中所示,方法1100a可在操作1102a开始,其中应用2021向卸载服务100传送应用卸载服务终止请求1102b。应用卸载服务终止请求1102b请求卸载服务100注销应用2021,以使得卸载服务100从对应的p4网络资源204中移除应用特定的卸载服务逻辑实现。
95.在操作1104a,卸载服务100评估1104b应用卸载服务终止请求1102b。特别地,卸载服务100确定哪些p4网络资源204关联到/分配给应用2021。出于说明的目的,将关于卸载服务100在操作1104a确定p4网络资源2041关联到/分配给应用2021来描述方法1100a。
96.在操作1106a,卸载服务100向在操作1104a确定的p4网络资源204传送卸载服务终止请求1106b。即,卸载服务100在操作1106a向p4网络资源2041传送卸载服务终止请求1106b。
97.在操作1108a,p4网络资源2041处理1108b卸载服务终止请求1106b。特别地,p4网络资源2041在操作1108a查找并移除与应用2021相关联的应用特定的卸载服务逻辑实现。
98.在操作1110a,p4网络资源2041向卸载服务100传送卸载服务终止请求确认1110b。卸载服务终止请求确认1110b指示:p4网络资源2041接收并且成功处理卸载服务终止请求1106b,以移除与应用2021相关联的应用特定的卸载服务逻辑实现。
99.在操作1112a,卸载服务100基于卸载服务终止请求1106b设置/更新1112b网络资源信息模型。即,响应于卸载服务终止请求确认1110b并基于卸载服务终止请求1106b,卸载服务100移除应用2021和p4网络资源2041之间的关联。
100.在操作1114a,响应于接收到卸载服务终止请求确认1110b,卸载服务100向应用2021传送应用卸载服务终止请求确认1114b。应用卸载服务终止请求确认1114b指示:卸载服务100和p4网络资源2041接收并且成功处理应用卸载服务终止请求1102b,以移除与应用
2021相关联的应用特定的卸载服务逻辑实现。
101.图12a示出根据一个示例性实施例的用于p4网络资源204终止卸载服务100/向卸载服务100注销的方法1200a。将参考其它图的示范性实施例来描述流程图中的操作。然而,应当理解,流程图的操作可通过除了参考其它图论述的实施例以外的本发明的实施例来执行,并且参考这些其它图论述的本发明的实施例可执行与参考流程图论述的操作不同的操作。将关于图12b的数据流程图1200b来描述方法1200a,在图12b中,p4网络资源2041向卸载服务100注销。在其它实施例中,其它p4网络资源204也可向卸载服务100注销,以使得卸载服务100从其中部署它们的对应的p4网络资源204中移除应用特定的卸载服务逻辑实现。
102.如图12a和图12b中所示,方法1200a可在操作1202a开始,其中p4网络资源2041向卸载服务100传送p4网络资源注销请求1202b。p4网络资源注销请求1202b请求卸载服务100注销p4网络资源2041,以使得卸载服务100从p4网络资源2041中移除应用特定的卸载服务逻辑实现。
103.在操作1204a,卸载服务100向与p4网络资源2041相关联的应用202传送未经请求的应用卸载服务终止请求1204b。特别地,卸载服务100向p4网络资源2041正在运行应用特定的卸载服务逻辑实现的任何应用202传送未经请求的应用卸载服务终止请求1204b。出于解释的目的,卸载服务100在操作1204a向应用2021传送未经请求的应用卸载服务终止请求1204b。
104.在操作1206a,应用2021处理1206b未经请求的应用卸载服务终止请求1204b。即,应用2021执行补偿/切换过程以应对p4网络资源2041不再处理应用2021的应用特定的卸载服务逻辑实现。
105.在操作1208a,应用2021向卸载服务100传送未经请求的应用卸载服务终止请求确认1208b。未经请求的应用卸载服务终止请求确认1208b指示:应用2021接收并且成功处理未经请求的应用卸载服务终止请求1204b。
106.在操作1210a,响应于接收到未经请求的应用卸载服务终止请求1204b,卸载服务100更新网络资源信息模型1210b。即,卸载服务100更新网络模型,以指示p4网络资源2041不再可用。
107.在操作1212a,卸载服务100向p4网络资源2041传送p4网络资源注销请求确认1212b。p4网络资源注销请求确认1212b指示:接收并处理p4网络资源注销请求1202b,以使得从网络资源信息模型1210b中移除p4网络资源2041,并且它不再可用于由卸载服务100进行的卸载分配。
108.现在转到图13,将描述这样的示例,其中应用202利用p4网络资源204的集合来进行分组解析和报头验证。特别地,分组解析和报头验证可视为经常性的处理开销,它仍然是必要的,但是对于应用202可能代表相对沉重的负担。此类任务可潜在地由其它系统组件(例如,p4网络资源204)代表应用202来更有效地执行。
109.在该用例中,假设,应用202利用p4技术来指定它们的分组解析和报头验证处理要求,从而向卸载服务100提交它们的卸载服务规范和基于p4的服务逻辑实现。卸载服务100会负责验证和评估来自应用202的卸载服务请求以及精心策划请求的卸载能力的部署和适当实施。
110.根据到卸载服务100的应用请求(其用于卸载它的特定的分组处理逻辑的部分),
可由卸载服务100确定:委托的任务会在系统基础设施域内的某个(或某些)战略性位置更有效地执行,潜在地由专门的软件和/或硬件组件执行以增加性能。
111.如图13中所示,一旦应用开发者已经开发和测试他们的应用特定的分组处理卸载逻辑实现,对应的应用202便向卸载服务100做出请求以将它部署在相关联的网络基础设施的最合适的p4网络资源204上。在该示例中,应用2021向卸载服务100发送请求。与请求一起,应用2021发送利用应用特定的卸载服务配置参数实现它请求的应用特定的卸载服务逻辑的对应的p4程序代码。当接收到应用卸载服务请求时,卸载服务100验证和评估请求。假设提供的p4程序代码视为有效,并且请求满足与卸载服务100的对应sla的条款,那么卸载服务100确定:可将应用特定的分组处理卸载逻辑实现部署在p4网络资源2041和2042上,p4网络资源2041和2042直接连接到来自计算/存储资源1302
1-1302
p
的集合中的其中应用2021正在运行的计算/存储资源13021。在图13中,应用特定的卸载服务实施对应于卸载服务100将应用特定的分组处理卸载逻辑实现安装在p4网络资源2041和2042上。
112.转到图14,如该图中所示,应用2021已经请求对前往它的分组进行预处理。当从客户端应用1402发送分组时,分组横穿网络基础设施,直到它们到达直接连接到其中应用2021正在运行的计算/存储资源13021的p4网络资源204之一。在这种情况下,它是p4网络资源2041。
113.如之前所提及的,应用2021已经请求卸载它的一些分组解析和报头验证任务中的一些。例如,在前往应用2021的所有分组到达应用2021本身之前会根据一些应用特定的规则对前往应用2021的所有分组进行正确性验证和/或过滤。那意味着,会或多或少深入地检验每个分组,这假设,会至少解析和验证一定数量的分组报头。
114.尽管应用特定的分组处理卸载逻辑实现可能仍然局限于分组报头验证,但是图14中所示的示例建议还向应用2021提供额外的信息。例如,可通过会由应用特定的卸载服务实现添加的前置分组报头来提供额外的信息。应用2021可认为包含在该前置报头中的信息是已经由它的卸载功能解析的信息,其意图是在应用2021本身内做出更有效的决定。该信息还可表示从与应用特定的卸载服务实现相关联的数据模型获得的并且基于分组报头信息、基于现有服务流或基于网络数据分析的信息。该示例假设:应用2021会使用该前置报头信息来更快速地跳转到应用2021的核心逻辑中,而不是必须执行更深入的分组解析操作并进行多个报头验证和表查找,然后开始执行应用2021的核心逻辑。
115.尽管用于分组解析和报头验证的这种类型的卸载功能可视为对于虚拟网络功能(vnf)应用使它们的经常性的分组报头开销最小化非常有用,但是可设想多个其它卸载功能,如会提供应用特定的负载均衡功能性的功能、或提供应用特定的路由、交换、服务链接或许多其它类型的分组处理的功能。
116.现在转到图15,将描述这样的用例,其中应用202可动态地管理部署在p4网络资源204上的它的应用特定的卸载服务实现的表条目。如图15中所示,将分组从客户端应用1502发送到应用2021。假设将应用特定的卸载服务实现部署在直接连接到计算/存储资源13021的左侧p4网络资源2041上,对前往应用2021的分组专门进行预处理,以标识现有的服务流。当发送到应用2021的分组没有关联到任何现有的服务流时,将分组发送到在计算/存储资源13021上的应用2021。此外,可向前往应用2021的每个分组添加前置报头。
117.当应用2021接收到分组时,可从前置报头中提取信息,其可用于标识当前没有服
务流与该分组相关联。还可在前置报头中提供额外的信息,由此潜在地帮助应用2021就创建新的服务流做出适当的决定。在该示例中,应用2021可使用来自p4网络资源2041的网络分析信息来将新创建的服务流分配给新的服务器。在一些实施例中,应用2021更新它的应用特定的卸载服务实现的表条目,以在p4网络资源2041上创建服务流。如之前所提及的,应用202可以可选地为它们自己供应与它们的应用特定的卸载服务实现相关的表。
118.在一个实施例中,考虑到应用2021已经在部署在分配的p4网络资源2041上的应用特定的卸载服务实现中为新的服务流创建表条目,最初前往在计算/存储资源13021上的应用2021的分组现在可改为被重定向朝向计算/存储资源13022(即,当新的服务流会需要这样时,与新创建的服务流匹配的分组现在会被重定向到计算/存储资源13022,而不是计算/存储资源13021)。还可假设,可通过由p4网络资源2041上的应用特定的卸载服务实现添加的分组前置报头来提供服务流信息。
119.如本文中所描述的,应用202可使用卸载服务100来动态地请求将某些应用特定的分组处理逻辑实现卸载到在相关联的网络基础设施域上可用的p4网络资源204。卸载服务100具有系统范围的p4网络资源204的整体系统视图,这允许卸载服务100得知相关联的网络拓扑以及关于在该网络基础设施上可用的所有p4网络资源204的详细信息,如它们的位置、它们支持的p4体系结构、它们的特性等。该整体系统视图使得卸载服务100能够找到可用于部署应用特定的分组处理卸载逻辑实现的(一个或多个)最合适的p4网络资源204,从而确保最有效的分组处理卸载性能。
120.卸载服务204为应用开发者提供卸载服务模板110,应用202可使用卸载服务模板110来指定它们的分组处理卸载要求,其包括卸载服务特定的部署规范。并且,作为选择的卸载服务模板110的一部分,为应用202提供p4体系结构、p4库和p4程序存根,应用开发者可使用它们来实现他们自己的应用特定的分组处理卸载逻辑实现。一旦完成,便将应用特定的分组处理卸载逻辑实现作为p4程序提供给卸载服务100,卸载服务100可对该p4程序进行编译并将其部署到最合适的p4网络资源204。
121.对于应用特定的分组处理卸载逻辑实现(其定义用于供应它们的分组卸载逻辑的数据模型),卸载服务100允许应用202使用由卸载服务100提供的供应代理来管理和供应它们自己的卸载服务逻辑实现。在p4目标上部署应用特定的分组处理卸载逻辑实现之前,卸载服务100允许应用202在测试环境中测试它们的分组处理卸载实现,这旨在验证应用202与卸载服务100的适当集成。
122.图16a-16e示出根据一个示例性实施例的用于将第一应用2021的网络操作卸载到网络系统1300中的网络资源204的方法1600。将参考其它图的示范性实施例来描述流程图中的操作。然而,应当理解,流程图的操作可通过除了参考其它图论述的实施例以外的本发明的实施例来执行,并且参考这些其它图论述的本发明的实施例可执行与参考流程图所论述的操作不同的操作。
123.如图16a中所示,方法1600可在操作1602开始,其中卸载服务100从第一应用2021接收卸载服务发现消息1002b。
124.在操作1604,响应于卸载服务发现消息1002b,卸载服务100向第一应用2021传送卸载服务发现消息确认1004b,其中,卸载服务发现消息确认1004b指示:接收到卸载服务发现消息1002b并且在网络系统1300中存在卸载服务100。
125.备选地,方法1600可在操作1606开始,其中卸载服务100从网络资源2041和2042的集合中的每个网络资源204接收卸载服务发现消息902b。
126.在操作1608,响应于卸载服务发现消息1002b,卸载服务100向网络资源2041和2042的集合中的每个网络资源204传送卸载服务发现消息确认904b。
127.在操作1610,卸载服务100从网络资源2041和2042的集合中的每个网络资源204接收网络资源注册请求906b。
128.在操作1612,卸载服务100基于来自网络资源2041和2042的集合中的每个网络资源204的网络资源注册请求906b更新网络资源信息模型908b和网络模型910b。在一些实施例中,网络资源信息模型908b描述网络资源2041和2042的集合中的网络资源204中的每个网络资源的特性,并且网络模型910b描述包括网络资源2041和2042的集合以及第一应用2021正在其上操作的计算节点13021在内的网络系统1300中的元件之间的互连。
129.在操作1614,卸载服务100向网络资源2041和2042的集合中的每个网络资源204传送网络资源注册请求确认912b,网络资源注册请求确认912b用于指示:成功注册网络资源2041和2042的集合中的每个相应的网络资源204。
130.在操作1616,卸载服务100从第一应用2021接收卸载服务能力请求消息1006b。在一些实施例中,卸载服务能力请求消息1006b向卸载服务100请求关于卸载服务100的满足由第一应用2021提供的要求的集合的能力的信息。
131.在操作1618,卸载服务100向第一应用2021传送卸载服务能力请求消息响应1008b,其中,卸载服务能力请求消息响应1008b包括卸载服务模板110的集合,卸载服务模板110:(1)是由卸载服务100基于第一应用2021的要求的集合选择的以及(2)是将被修改用于执行第一应用2021的网络操作的可能模板。在一些实施例中,卸载服务模板110的集合中的每个模板包括以下各项中的一项或多项:将被修改用于执行第一应用2021的网络操作的参数列表、用于生成用于执行第一应用2021的网络操作的程序代码的代码存根的集合、以及用于生成程序代码的库的集合。在一个实施例中,网络资源204是p4网络资源204,并且程序代码是p4程序代码。
132.在操作1620,卸载服务100从第一应用2021接收应用卸载服务请求1010b,其包括来自模板110的集合中的被填充用于执行第一应用2021的网络操作的模板。
133.在操作1622,卸载服务100为第一应用2021的程序代码评估1012b网络资源204,以选择网络资源2041和2042的集合用于安装程序代码并将第一应用2021的操作卸载到网络资源2041和2042的集合。
134.在操作1624,卸载服务100传送应用卸载服务请求确认1014b,应用卸载服务请求确认1014b用于指示:查找到用于托管第一应用2021的程序代码的网络资源204的集合并且该程序代码被适当地改变以适合网络资源2041和2042的集合。
135.在操作1626,卸载服务100从第一应用2021接收应用卸载部署请求1016b,应用卸载部署请求1016b用于开始卸载操作。
136.在操作1628,卸载服务100在网络资源2041和2042的集合上安装基于卸载服务模板110的集合生成的第一应用2021的程序代码,以使得网络资源2041和2042的集合处理以下各项中的一项或多项:(1)来自第二应用2022的寻址到第一应用2021的分组以及(2)来自第一应用2021的寻址到第二应用2022的分组。特别地,在网络资源2041和2042的集合上安装程序
代码可包括由卸载服务100:(1)在子操作1628a,向网络资源2041和2042的集合传送包括程序代码的卸载服务部署请求1018b,以使得网络资源2041和2042的集合中的每个网络资源204安装程序代码;以及(2)在子操作1628b,在由网络资源2041和2042的集合成功安装程序代码之后,从网络资源2041和2042的集合中的每个网络资源204接收卸载服务部署请求确认1022b。
137.在操作1630,卸载服务100向第一应用2021传送应用卸载部署请求确认1024b,应用卸载部署请求确认1024b用于确认程序代码的部署。在一个实施例中,经由卸载服务100的应用卸载服务代理118来执行与第一应用2021和第二应用2022的交互,应用卸载服务代理118允许第一应用2021管理、配置、供应卸载服务100并与卸载服务100通信。在一些实施例中,寻址到第一应用2021的分组:要么(1)由网络资源2041和2042的集合处理,并且此后转发到应用卸载服务代理118,然后到达第一应用2021;要么(2)传送到应用卸载服务代理118并转发到网络资源2041和2042的集合以用于处理,然后到达第一应用2021。
138.在操作1632,卸载服务100从第一应用2021接收用于以下各项中的一项或多项的控制分组的集合:管理、配置和供应安装在网络资源2041和2042的集合上的程序代码。
139.在操作1634,卸载服务100从第一应用2021接收应用卸载服务终止请求1102b。
140.在操作1636,卸载服务100确定网络资源2041和2042的集合被分配给第一应用2021。
141.在操作1638,卸载服务100向网络资源2041和2042的集合中的每个网络资源204传送卸载服务终止请求1106b。
142.在操作1640,卸载服务100接收卸载服务终止请求确认1110b,卸载服务终止请求确认1110b用于指示:网络资源2041和2042的集合不再处理程序代码。
143.在操作1642,卸载服务100更新网络资源信息模型,以指示网络资源2041和2042的集合的终止。
144.在操作1644,卸载服务100向第一应用传送应用卸载服务终止请求1112b,应用卸载服务终止请求1112b用于指示:已经终止由卸载服务100卸载第一应用2021的操作。
145.在操作1646,卸载服务100从网络资源2041和2042的集合中的网络资源2041接收网络资源注销请求1202b。
146.在操作1648,卸载服务100向第一应用2021传送未经请求的应用卸载服务终止请求1204b。
147.在操作1650,卸载服务100接收未经请求的应用卸载服务终止请求确认1208b,未经请求的应用卸载服务终止请求确认1208b用于指示:第一应用2021已经执行切换过程以应对网络资源2041不再处理程序代码。
148.在操作1652,卸载服务100更新网络系统1300的网络模型,以应对网络资源2041不再可用于卸载操作。
149.在操作1654,卸载服务100向网络资源2041传送网络资源注销请求确认1212b。
150.电子装置使用诸如机器可读存储介质(例如,磁盘、光盘、固态驱动器、只读存储器(rom)、闪速存储器装置、相变存储器)和机器可读传输介质(又称为载波)(例如,电、光、无线电、声或其它形式的传播信号,如载波、红外信号)的机器可读介质(又称为计算机可读介质)存储和(在内部和/或通过网络与其它电子装置)传送代码(由软件指令组成,并且有时
称为计算机程序代码或计算机程序)和/或数据。因此,电子装置(例如,计算机)包括硬件和软件,如耦合到一个或多个机器可读存储介质的一个或多个处理器的集合(例如,其中处理器是微处理器、控制器、微控制器、中央处理单元、数字信号处理器、专用集成电路、现场可编程门阵列、其它电子电路、前述各项中的一项或多项的组合),一个或多个机器可读存储介质用于存储用于在处理器的集合上执行的代码和/或用于存储数据。例如,电子装置可包括包含代码的非易失性存储器,这是因为甚至在电子装置关闭时(当断电时),非易失性存储器仍可保存代码/数据,而当电子装置打开时,通常将该代码的将由该电子装置的(一个或多个)处理器执行的那部分从较慢的非易失性存储器复制到该电子装置的易失性存储器(例如,动态随机存取存储器(dram)、静态随机存取存储器(sram))中。典型的电子装置还包括用于与其它电子装置建立网络连接(以使用传播信号传送和/或接收代码和/或数据)的一个或多个物理网络接口(ni)的集合。例如,物理ni的集合(或(一个或多个)物理ni的集合与执行代码的处理器的集合相结合)可执行任何格式化、编码或转换(translate),以允许电子装置发送和接收数据,无论是通过有线和/或无线连接。在一些实施例中,物理ni可包括能够通过无线连接从其它电子装置接收数据和/或经由无线连接将数据向外发送到其它装置的无线电电路。这种无线电电路可包括适合射频通信的(一个或多个)传送器、(一个或多个)接收器和/或(一个或多个)收发器。无线电电路可将数字数据变换成具有合适参数(例如,频率、定时、信道、带宽等)的无线电信号。然后,可经由天线向(一个或多个)合适的接收方传送无线电信号。在一些实施例中,(一个或多个)物理ni的集合可包括(一个或多个)网络接口控制器(nic)(又称为网络接口卡、网络适配器或局域网(lan)适配器)。(一个或多个)nic可便于将电子装置连接到其它电子装置,从而通过将电缆插入到连接至nic的物理端口而允许它们经由电线通信。本发明的实施例的一个或多个部分可使用软件、固件和/或硬件的不同组合来实现。
151.网络装置(nd)是与网络上的其它电子装置(例如,其它网络装置、最终用户装置)在通信上互连的电子装置。一些网络装置是“多服务网络装置”,“多服务网络装置”对多个联网功能(例如,路由、桥接、交换、第2层聚合、会话边界控制、服务质量和/或订户管理)提供支持和/或对多个应用服务(例如,数据、语音和视频)提供支持。
152.图17a示出根据本发明的一些实施例的在示范性网络内的网络装置(nd)之间的连接性以及nd的三个示范性实现。图17a示出nd 1700a-h,并借助于1700a-1700b、1700b-1700c、1700c-1700d、1700d-1700e、1700e-1700f、1700f-1700g和1700a-1700g之间的线以及1700h与1700a、1700c、1700d和1700g中的每一个之间的线示出它们的连接性。这些nd是物理装置,并且这些nd之间的连接性可以是无线的或有线的(经常称为链路)。从nd 1700a、1700e和1700f延伸的额外的线说明,这些nd充当网络的入口点和出口点(并且因此,这些nd有时称为边缘nd;而其它nd可称为核心nd)。
153.图17a中的示范性nd实现中的两个示范性nd实现是:1)使用定制专用集成电路(asic)和专用操作系统(os)的专用网络装置1702;以及2)使用通用现货(cots)处理器和标准os的通用网络装置1704。
154.专用网络装置1702包括联网硬件1710,联网硬件1710包括:一个或多个处理器1712的集合、(一个或多个)转发资源1714(通常包括一个或多个asic和/或网络处理器)和(一个或多个)物理网络接口(ni)1716(通过其建立网络连接,如通过nd 1700a-h之间的连
接性示出的连接)以及在其中存储有联网软件1720的非暂时性机器可读存储介质1718。在操作期间,可由联网硬件1710执行联网软件1720,以实例化一个或多个联网软件实例1722的集合。(一个或多个)联网软件实例1722中的每个联网软件实例以及联网硬件1710的执行该网络软件实例的那部分(无论它是专用于该联网软件实例的硬件和/或由该联网软件实例与(一个或多个)联网软件实例1722中的其它联网软件实例在时间上共享的硬件的时间切片)形成分开的虚拟网络元件1730a-r。(一个或多个)虚拟网络元件(vne)1730a-r中的每个虚拟网络元件包括控制通信和配置模块1732a-r(有时称为本地控制模块或控制通信模块)以及(一个或多个)转发表1734a-r,以使得给定的虚拟网络元件(例如,1730a)包括:控制通信和配置模块(例如,1732a)、一个或多个转发表(例如,1734a)的集合以及联网硬件1710的执行虚拟网络元件(例如,1730a)的那部分。
155.专用网络装置1702经常在物理上和/或在逻辑上视为包括:1)nd控制平面1724(有时称为控制平面),它包括执行(一个或多个)控制通信和配置模块1732a-r的(一个或多个)处理器1712;以及2)nd转发平面1726(有时称为转发平面、数据平面或媒体平面),它包括利用(一个或多个)转发表1734a-r的(一个或多个)转发资源1714和物理ni 1716。举例来说,在nd是路由器(或正在实现路由功能性)的情况下,nd控制平面1724(执行(一个或多个)控制通信和配置模块1732a-r的(一个或多个)处理器1712)通常负责参与控制将如何路由数据(例如,分组)(例如,数据的下一跳和该数据的外出物理ni)并将该路由信息存储在(一个或多个)转发表1734a-r中,并且nd转发平面1726负责在物理ni 1716上接收该数据并基于(一个或多个)转发表1734a-r将该数据向外转发到物理ni 1716中的合适的物理ni。
156.图17b示出根据本发明的一些实施例的用于实现专用网络装置1702的示范性方式。图17b示出包括卡1738(通常可热插拔)的专用网络装置。尽管在一些实施例中,卡1738有两种类型(作为nd转发平面1726操作的一个或多个卡(有时称为线卡)以及进行操作以实现nd控制平面1724的一个或多个卡(有时称为控制卡)),但是备选实施例可将功能性组合到单个卡上和/或包括额外的卡类型(例如,一种额外类型的卡称为服务卡、资源卡或多应用卡)。服务卡可提供专门的处理(例如,第4层到第7层服务(例如,防火墙、互联网协议安全(ipsec)、安全套接层(ssl)/传输层安全(tls)、入侵检测系统(ids)、对等网络(p2p)、ip语音(voip)会话边界控制器、移动无线网关(网关通用分组无线电服务(gprs)支持节点(ggsn)、演进分组核心(epc)网关))。举例来说,服务卡可用于终止ipsec隧道并执行伴随的认证和加密算法。这些卡通过作为背板1736示出的一个或多个互连机构耦合在一起(例如,第一全网格耦合线卡,并且第二全网格耦合所有卡)。
157.返回到图17a,通用网络装置1704包括硬件1740,硬件1740包括:一个或多个处理器1742(经常是cots处理器)的集合和物理ni 1746以及在其中存储有软件1750和/或卸载服务100的非暂时性机器可读存储介质1748。在操作期间,(一个或多个)处理器1742执行软件1750以实例化一个或多个应用1764a-r的一个或多个集合。尽管一个实施例没有实现虚拟化,但是备选实施例可使用不同形式的虚拟化。例如,在一个此类备选实施例中,虚拟化层1754表示操作系统的内核(或在基本操作系统上执行的垫片),它允许创建称为软件容器的多个实例1762a-r,它们可各自用于执行应用1764a-r的集合中的一个(或多个)集合;其中多个软件容器(又称为虚拟化引擎、虚拟私有服务器或监狱)是彼此分开并且与在其中运行操作系统的内核空间分开的用户空间(通常是虚拟存储器空间);并且其中,除非明确允
许,否则在给定的用户空间中运行的应用的集合不能访问其它进程的存储器。在另一个此类备选实施例中,虚拟化层1754表示管理程序(有时称为虚拟机监视器(vmm))或在主人(host)操作系统之上执行的管理程序,并且应用1764a-r的集合中的每个集合在称为虚拟机(在一些情况下,它可视为严格隔离形式的软件容器)的实例1762a-r内的客人(guest)操作系统之上运行—与在“裸金属”主机电子装置上运行相比,客人操作系统和应用可能不知道它们正在虚拟机上运行,或者通过半虚拟化,操作系统和/或应用可能知道出于优化的目的而存在虚拟化。在还有的其它备选的实施例中,一个、一些或所有的应用作为(一个或多个)单一内核(unikernel)实现,(一个或多个)单一内核可通过利用应用只直接编译(例如,来自包括os服务的驱动程序/库的库操作系统(libos)的)提供应用所需的特定os服务的库的有限集合来生成。由于单一内核可实现成直接在硬件1740上运行、直接在管理程序上运行(在这种情况下,有时将单一内核描述为在libos虚拟机内运行)或在软件容器中运行,所以实施例可完全利用直接在由虚拟化层1754表示的管理程序上运行的单一内核、在由实例1762a-r表示的软件容器内运行的单一内核、或作为单一内核和上述技术的组合(例如,均直接在管理程序上运行的单一内核和虚拟机、在不同的软件容器中运行的单一内核和应用的集合)来实现。
158.一个或多个应用1764a-r的一个或多个集合的实例化以及虚拟化(如果实现的话)统称为(一个或多个)软件实例1752。应用1764a-r的每个集合、对应的虚拟化构造(例如,实例1762a-r)(如果实现的话)以及硬件1740的执行它们的那部分(无论它是专用于该执行的硬件和/或在时间上共享的硬件的时间切片)形成(一个或多个)单独的虚拟网络元件1760a-r。
159.(一个或多个)虚拟网络元件1760a-r执行与(一个或多个)虚拟网络元件1730a-r类似(例如,与(一个或多个)控制通信和配置模块1732a和(一个或多个)转发表1734a类似)的功能性(硬件1740的这种虚拟化有时称为网络功能虚拟化(nfv))。因此,nfv可用于将许多网络设备类型整合到行业标准的高容量服务器硬件、物理交换机和物理存储设备上,这些设备可位于数据中心、nd和客户驻地设备(cpe)中。尽管用与一个vne 1760a-r对应的每个实例1762a-r示出本发明的实施例,但是备选实施例可以用更细等级的粒度来实现该对应关系(例如,线卡虚拟机虚拟化线卡、控制卡虚拟机虚拟化控制卡等);应当理解,本文中参考实例1762a-r与vne的对应关系描述的技术也适用于其中使用此类更细等级的粒度和/或单一内核的实施例。
160.在某些实施例中,虚拟化层1754包括提供与物理以太网交换机类似的转发服务的虚拟交换机。具体地,该虚拟交换机在实例1762a-r和(一个或多个)物理ni 1746之间以及可选地在实例1762a-r之间转发业务;另外,该虚拟交换机可在vne 1760a-r之间实施网络隔离,按照策略(by policy)不允许这些vne 1760a-r彼此通信(例如,通过遵守(honor)虚拟局域网(vlan))。
161.图17a中的第三示范性nd实现是混合网络装置1706,其包括在单个nd或nd内的单个卡中的定制asic/专用os和cots处理器/标准os。在此类混合网络装置的某些实施例中,平台vm(即,实现专用网络装置1702的功能性的vm)可向存在于混合网络装置1706中的联网硬件提供半虚拟化。
162.不管nd的以上示范性实现,当正在考虑由nd实现的多个vne中的单个vne(例如,
vne中只有一个vne是给定的虚拟网络的一部分)时,或者在nd当前正在实现仅单个vne的情况下,有时使用缩短术语网络元件(ne)来指该vne。并且在所有以上示范性实现中,vne(例如,(一个或多个)vne 1730a-r、vne 1760a-r和混合网络装置1706中的vne)中的每个vne在物理ni(例如,1716、1746)上接收数据,并将该数据向外转发到物理ni(例如,1716、1746)中的合适的物理ni。例如,实现ip路由器功能性的vne在ip分组中的ip报头信息的部分的基础上转发ip分组;其中,ip报头信息包括源ip地址、目的地ip地址、源端口、目的地端口(其中,“源端口”和“目的地端口”在本文中指协议端口,而不是nd的物理端口)、传输协议(例如,用户数据报协议(udp)、传输控制协议(tcp))和差分服务码点(dscp)值。
163.图17c示出根据本发明的一些实施例的可耦合vne的各种示范性方式。图17c示出在nd 1700a中实现的vne 1770a.1-1770a.p(以及可选的vne 1770a.q-1770a.r)和在nd 1700h中实现的vne 1700h.1。在图17c中,从vne 1770a.1-p可从nd 1700a外部接收分组并向nd 1700a的外部转发分组的意义来说,它们彼此分开;vne 1770a.1与vne 1770h.1耦合,并且因此,它们在它们各自的nd之间传递分组;vne 1770a.2-1770a.3可以可选地在它们自己之间转发分组,而无需向nd 1700a的外部转发它们;并且vne 1770a.p可以可选地是vne链(这有时称为动态服务链接,其中这一系列vne中的vne中的每个vne提供不同的服务,例如一个或多个第4-7层网络服务)中的第一vne,vne链包括:vne 1770a.q,后面是vne 1770a.r。尽管图17c示出vne之间的各种示范性关系,但是备选实施例可支持其它关系(例如,更多/更少的vne、更多/更少的动态服务链、具有一些共同vne和一些不同vne的多个不同的动态服务链)。
164.图17a的nd可例如形成互联网或私有网络的一部分;并且其它电子装置(未示出;如最终用户装置,包括工作站、膝上型计算机、上网本、平板计算机、掌上型计算机、移动电话、智能电话、平板手机、多媒体电话、互联网协议语音(voip)电话、终端、便携式媒体播放器、gps单元、可穿戴装置、游戏系统、机顶盒、互联网使能的家用设备)可耦合到该网络(直接或通过其它网络,如接入网络),以通过网络(例如,互联网或敷设在互联网上(例如,隧穿互联网)的虚拟私有网络(vpn))彼此通信(直接或通过服务器)和/或访问内容和/或服务。此类内容和/或服务通常由属于服务/内容提供商的一个或多个服务器(未示出)或参与对等(p2p)服务的一个或多个最终用户装置(未示出)提供,并且可包括例如公共网页(例如,免费内容、店面、搜索服务)、私人网页(例如,提供电子邮件服务的用户名/密码访问的网页)、和/或通过vpn的公司网络。例如,最终用户装置可耦合(例如,通过(有线或无线地)耦合到接入网络的客户驻地设备)到边缘nd,这些边缘nd耦合(例如,通过一个或多个核心nd)到其它边缘nd,这些其它边缘nd耦合到充当服务器的电子装置。然而,通过计算和存储虚拟化,作为图17a中的nd进行操作的电子装置中的一个或多个电子装置也可托管一个或多个此类服务器(例如,在通用网络装置1704的情况下,软件实例1762a-r中的一个或多个软件实例可作为服务器进行操作;对于混合网络装置1706也会是如此;在专用网络装置1702的情况下,一个或多个此类服务器也可在由(一个或多个)处理器1712执行的虚拟化层上运行);在这种情况下,服务器据称与该nd的vne位于同一位置。
165.虚拟网络是提供网络服务(例如,l2和/或l3服务)的物理网络(诸如在图17a中的物理网络)的逻辑抽象。虚拟网络可作为覆盖网络(有时称为网络虚拟化覆盖)实现,覆盖网络通过底层网络(例如,l3网络,如使用隧道(例如,通用路由封装(gre)、第2层隧道协议
(l2tp)、ipsec)来创建覆盖网络的互联网协议(ip)网络)提供网络服务(例如,第2层(l2,数据链路层)和/或第3层(l3,网络层)服务)。
166.网络虚拟化边缘(nve)位于底层网络的边缘,并且参与实现网络虚拟化;nve的面向网络侧使用底层网络来向其它nve以及从其它nve通过隧道传送帧;nve的向外侧向网络外部的系统发送数据和从网络外部的系统接收数据。虚拟网络实例(vni)是nve上的虚拟网络的特定实例(例如,nd上的ne/vne、nd上的ne/vne的一部分,其中通过仿真将该ne/vne划分成多个vne);一个或多个vni可在nve上实例化(例如,作为nd上的不同vne)。虚拟接入点(vap)是nve上用于将外部系统连接到虚拟网络的逻辑连接点;vap可以是通过逻辑接口标识符(例如,vlan id)标识的物理端口或虚拟端口。
167.网络服务的示例包括:1)以太网lan仿真服务(与互联网工程任务组(ietf)多协议标签交换(mpls)或以太网vpn(evpn)服务类似的基于以太网的多点服务),其中外部系统通过底层网络上的lan环境跨越该网络互连(例如,nve为不同的此类虚拟网络提供单独的l2 vni(虚拟交换实例),并跨越底层网络提供l3(例如,ip/mpls)隧道封装);以及2)虚拟化的ip转发服务(从服务定义的角度来看,这类似于ietf ip vpn(例如,边界网关协议(bgp)/mpls ipvpn)),其中外部系统通过底层网络上的l3环境跨越该网络互连(例如,nve为不同的此类虚拟网络提供单独的l3 vni(转发和路由实例),并跨越底层网络提供l3(例如,ip/mpls)隧道封装)。网络服务还可包括服务质量能力(例如,业务分类标记、业务调节和调度)、安全能力(例如,用于保护客户驻地免受网络发起的攻击的过滤器,用于避免畸形的路由公告)和管理能力(例如,全面检测和处理)。
168.图17d示出根据本发明的一些实施例的在图17a的nd中的每个nd上具有单个网络元件的网络,并且在这种直接的方法内将用于维持可达性和转发信息(又称为网络控制)的传统的分布式方法(通常由传统的路由器使用)与用于维持可达性和转发信息的集中式方法进行对比。具体地,图17d示出具有与17a的nd 1700a-h相同的连接性的网络元件(ne)1770a-h。
169.图17d示出,分布式方法1772跨越ne 1770a-h来分布用于生成可达性和转发信息的职责;换句话说,邻居发现和拓扑发现的过程是分布式的。
170.例如,在使用专用网络装置1702的情况下,nd控制平面1724的(一个或多个)控制通信和配置模块1732a-r通常包括可达性和转发信息模块,它用于实现一个或多个路由协议(例如,诸如边界网关协议(bgp)的外部网关协议、(一个或多个)内部网关协议(igp)(例如,开放最短路径优先(ospf)、中间系统到中间系统(is-is)、路由信息协议(rip)、标签分布协议(ldp)、资源预留协议(rsvp)(包括rsvp-业务工程(te):对lsp隧道的rsvp的扩展以及通用多协议标签交换(gmpls)信令rsvp-te)),一个或多个路由协议与其它ne通信以交换路线,然后基于一个或多个路由度量选择那些路线。因此,ne 1770a-h(例如,执行(一个或多个)控制通信和配置模块1732a-r的(一个或多个)处理器1712)通过分布式地确定网络内的可达性并计算它们各自的转发信息来执行它们的用于参与控制将如何路由数据(例如,分组)(例如,数据的下一跳和该数据的外出物理ni)的职责。将路线和邻接关系存储在nd控制平面1724上的一个或多个路由结构(例如,路由信息库(rib)、标签信息库(lib)、一个或多个邻接关系结构)中。nd控制平面1724利用基于(一个或多个)路由结构的信息(例如,邻接关系和路线信息)对nd转发平面1726进行编程。例如,nd控制平面1724将邻接关系和路线
信息编程到nd转发平面1726上的一个或多个转发表1734a-r(例如,转发信息库(fib)、标签转发信息库(lfib)和一个或多个邻接关系结构)中。对于第2层转发,nd可存储用于基于数据中的第2层信息转发该数据的一个或多个桥接表。尽管以上示例使用专用网络装置1702,但是相同的分布式方法1772也可在通用网络装置1704和混合网络装置1706上实现。
171.图17d示出集中式方法1774(又称为软件定义的联网(sdn)),它将关于在哪里发送业务做出决定的系统与将业务转发到选择的目的地的底层系统解耦。示出的集中式方法1774具有这样的职责:在集中式控制平面1776(有时称为sdn控制模块、控制器、网络控制器、openflow控制器、sdn控制器、控制平面节点、网络虚拟化权威机构、或管理控制实体)中生成可达性和转发信息,并且因此,邻居发现和拓扑发现的过程是集中式的。集中式控制平面1776具有与数据平面1780(有时称为基础设施层、网络转发平面或转发平面(其不应与nd转发平面混淆))的南向接口1782,数据平面1780包括ne 1770a-h(有时称为交换机、转发元件、数据平面元件或节点)。集中式控制平面1776包括网络控制器1778,网络控制器1778包括集中式可达性和转发信息模块1779和/或卸载服务100,集中式可达性和转发信息模块1779确定网络内的可达性并通过南向接口1782(它可使用openflow协议)将转发信息分发到数据平面1780的ne 1770a-h。因此,网络智能集中在集中式控制平面1776中,集中式控制平面1776在通常与nd分开的电子装置上执行。
172.例如,在数据平面1780中使用专用网络装置1702的情况下,nd控制平面1724的(一个或多个)控制通信和配置模块1732a-r中的每个控制通信和配置模块通常包括控制代理,控制代理提供南向接口1782的vne侧。在这种情况下,nd控制平面1724(执行(一个或多个)控制通信和配置模块1732a-r的(一个或多个)处理器1712)通过控制代理与集中式控制平面1776通信以从集中式可达性和转发信息模块1779接收转发信息(并且在一些情况下,接收可达性信息)来执行它的用于参与控制将如何路由数据(例如,分组)(例如,数据的下一跳以及该数据的外出物理ni)的职责(应当理解,在本发明的一些实施例中,除了与集中式控制平面1776通信之外,(一个或多个)控制通信和配置模块1732a-r也可在确定可达性和/或计算转发信息方面发挥一定的作用—尽管不如分布式方法的情况;此类实施例一般视为属于集中式方法1774,但是它们也可视为混合方法)。
173.尽管以上示例使用专用网络装置1702,但是相同的集中式方法1774可利用通用网络装置1704(例如,vne 1760a-r中的每个vne通过与集中式控制平面1776通信以从集中式可达性和转发信息模块1779接收转发信息(并且在一些情况下,接收可达性信息)来执行它的用于控制将如何路由数据(例如,分组)(例如,数据的下一跳以及该数据的外出物理ni)的职责;应当理解,在本发明的一些实施例中,除了与集中式控制平面1776通信之外,vne 1760a-r也可在确定可达性和/或计算转发信息方面发挥一定的作用—尽管不如分布式方法的情况)和混合网络装置1706实现。实际上,sdn技术的使用可增强通常在通用网络装置1704或混合网络装置1706实现中所使用的nfv技术,这是因为nfv能够通过提供可在其上运行sdn软件的基础设施来支持sdn,并且nfv和sdn均旨在利用商用服务器硬件和物理交换机。
174.图17d还示出,集中式控制平面1776具有到其中驻留(一个或多个)应用1788的应用层1786的北向接口1784。集中式控制平面1776具有这样的能力:为(一个或多个)应用1788形成虚拟网络1792(有时称为逻辑转发平面、网络服务或覆盖网络(其中数据平面1780
的ne 1770a-h是底层网络)。因此,集中式控制平面1776维持所有nd和配置的ne/vne的全局视图,并且它将虚拟网络有效地映射到底层nd(包括在物理网络由于硬件(nd、链路或nd组件)故障、添加或移除而发生变化时维持这些映射)。
175.尽管图17d示出分布式方法1772与集中式方法1774分开,但是在本发明的某些实施例中,可以不同地分布网络控制的努力,或者将这两者组合。例如:1)实施例一般可使用集中式方法(sdn)1774,但是将某些功能委托给ne(例如,分布式方法可用于实现以下各项中的一项或多项:故障监测、性能监测、保护切换(protection switching)、以及邻居和/或拓扑发现的原语(primitive));或2)本发明的实施例可经由集中式控制平面和分布式协议来执行邻居发现和拓扑发现,并对结果进行比较以在它们不一致的情况下引发异常。此类实施例一般视为属于集中式方法1774,但是它们也可视为混合方法。
176.尽管图17d示出其中nd 1700a-h中的每个nd实现单个ne 1770a-h的简单情况,但是应当理解,参考图17d描述的网络控制方法对于其中nd 1700a-h中的一个或多个nd实现多个vne(例如,vne 1730a-r、vne 1760a-r、混合网络装置1706中的vne)的网络也奏效。备选地或另外地,网络控制器1778还可仿真在单个nd中的多个vne的实现。具体地,取代(或补充)在单个nd中实现多个vne,网络控制器1778可将单个nd中的vne/ne的实现呈现为虚拟网络1792中的多个vne(所有vne在(一个或多个)虚拟网络1792中的同一个虚拟网络中、每个vne在(一个或多个)虚拟网络1792中的不同的虚拟网络中、或某种组合)。例如,网络控制器1778可使nd在底层网络中实现单个vne(ne),然后在逻辑上划分在集中式控制平面1776内的该ne的资源,以在(一个或多个)虚拟网络1792中呈现不同的vne(其中,覆盖网络中的这些不同的vne正在共享在底层网络中的nd上的单个vne/ne实现的资源)。
177.另一方面,图17e和图17f分别示出网络控制器1778可作为虚拟网络1792中的不同虚拟网络的一部分呈现的ne和vne的示范性抽象。图17e示出根据本发明的一些实施例的以下简单情况:其中,nd 1700a-h中的每个nd实现单个ne 1770a-h(参见图17d),但是集中式控制平面1776已经将不同nd中的ne中的多个ne(ne 1770a-c和g-h)抽象为(抽象以表示)图17d的(一个或多个)虚拟网络1792之一中的单个ne 1770i。图17e示出,在该虚拟网络中,ne 1770i耦合到ne 1770d和1770f,ne 1770d和1770f均依然耦合到ne 1770e。
178.图17f示出根据本发明的一些实施例的以下情况:其中在不同的nd(nd 1700a和nd 1700h)上实现多个vne(vne 1770a.1和vne 1770h.1)并且这些vne彼此耦合,并且其中集中式控制平面1776已经将这些多个vne抽象以使得它们表现为图17d的虚拟网络1792之一内的单个vne 1770t。因此,ne或vne的抽象可横跨多个nd。
179.尽管本发明的一些实施例将集中式控制平面1776实现为单个实体(例如,在单个电子装置上运行的单个软件实例),但是出于冗余性和/或可缩放性的目的,备选实施例可跨越多个实体分散该功能性(例如,在不同的电子装置上运行的多个软件实例)。
180.与网络装置实现类似,运行集中式控制平面1776的(一个或多个)电子装置以及因此包括集中式可达性和转发信息模块1779的网络控制器1778可以用各种各样的方式实现(例如,专用装置、通用(例如,cots)装置或混合装置)。这些电子装置会类似地包括(一个或多个)处理器、一个或多个物理ni的集合、以及在其上存储有集中式控制平面软件的非暂时性机器可读存储介质。例如,图18示出包括硬件1840的通用控制平面装置1804,硬件1840包括:一个或多个处理器1842(其经常是cots处理器)的集合和物理ni 1846以及在其中存储
有集中式控制平面(ccp)软件1850和/或卸载服务100的非暂时性机器可读存储介质1848。
181.在使用计算虚拟化的实施例中,(一个或多个)处理器1842通常执行软件以实例化虚拟化层1854(例如,在一个实施例中,虚拟化层1854表示操作系统的内核(或在基本操作系统上执行的垫片),它允许创建称为软件容器(表示单独的用户空间,并且又称为虚拟化引擎、虚拟私有服务器或监狱)的多个实例1862a-r,它们可各自用于执行一个或多个应用的集合;在另一个实施例中,虚拟化层1854表示管理程序(有时称为虚拟机监视器(vmm))或在主人操作系统之上执行的管理程序,并且应用在由管理程序运行的称为虚拟机(在一些情况下,它可视为严格隔离形式的软件容器)的实例1862a-r内的客人操作系统之上运行;在另一个实施例中,应用作为单一内核实现,单一内核可通过利用应用只直接编译(例如,来自包括os服务的驱动程序/库的库操作系统(libos)的)提供应用所需的特定os服务的库的有限集合来生成,并且单一内核可直接在硬件1840上运行、直接在由虚拟化层1854表示的管理程序上运行(在这种情况下,有时将单一内核描述为在libos虚拟机内运行)或在由实例1862a-r之一表示的软件容器中运行。同样地,在其中使用计算虚拟化的实施例中,在操作期间,在虚拟化层1854上(例如,在实例1862a内)执行ccp软件1850的实例(作为ccp实例1876a示出)。在其中不使用计算虚拟化的实施例中,在“裸金属”通用控制平面装置1804上、作为单一内核或在主人操作系统之上执行ccp实例1876a。ccp实例1876a的实例化以及虚拟化层1854和实例1862a-r(如果实现的话)统称为(一个或多个)软件实例1852。
182.在一些实施例中,ccp实例1876a包括网络控制器实例1878。网络控制器实例1878包括集中式可达性和转发信息模块实例1879(它是向操作系统提供网络控制器1778的上下文并与各种ne通信的中间件层)和在该中间件层上方的ccp应用层1880(有时称为应用层)(提供各种网络操作所需的智能,如协议、网络态势感知和用户界面)。在更抽象的等级,集中式控制平面1776内的该ccp应用层1880与(一个或多个)虚拟网络视图(网络的(一个或多个)逻辑视图)一起工作,并且中间件层提供从虚拟网络到物理视图的变换。
183.集中式控制平面1776基于每个流的ccp应用层1880计算和中间件层映射向数据平面1780传送相关消息。流可定义为其报头与给定的位模式匹配的分组的集合;从这个意义来说,传统的ip转发也是基于流的转发,其中流由例如目的地ip地址定义;然而,在其它实现中,用于流定义的给定的位模式可在分组报头中包括更多的字段(例如,10个或更多个)。数据平面1780的不同nd/ne/vne可接收不同的消息,并且因此接收不同的转发信息。数据平面1780处理这些消息,并将合适的流信息和对应的动作编程在合适的ne/vne的转发表(有时称为流表)中,然后ne/vne将传入分组映射到在转发表中表示的流,并基于转发表中的匹配转发分组。
184.诸如openflow的标准定义用于这些消息的协议以及用于处理这些分组的模型。用于处理分组的模型包括报头解析、分组分类和做出转发决定。报头解析描述如何基于众所周知的协议的集合来解释分组。一些协议字段用于构建将用于分组分类的匹配结构(或关键字)(例如,第一关键字字段可以是源媒体接入控制(mac)地址,并且第二关键字字段可以是目的地mac地址)。
185.分组分类涉及在存储器中执行查找以通过基于转发表条目的匹配结构或关键字确定转发表中的哪个条目(又称为转发表条目或流条目)与分组最匹配来将分组分类。可能的是,在转发表条目中表示的许多流可与分组对应/匹配;在这种情况下,系统通常配置成
根据定义的方案(例如,选择匹配的第一转发表条目)来从众多转发表条目中确定一个转发表条目。转发表条目包括特定的匹配准则的集合(值或通配符的集合、或应当将分组的什么部分与一个/多个特定值/通配符进行比较的指示,如由匹配能力定义的—对于分组报头中的特定字段或对于一些其它分组内容)和数据平面在接收到匹配分组时采取的一个或多个动作的集合。例如,动作可以是:将报头推送到分组上、使用特定的端口转发分组、淹没(flood)分组、或简单地丢弃分组。因此,具有特定传输控制协议(tcp)目的地端口的ipv4/ipv6分组的转发表条目可包含指定应当丢弃这些分组的动作。
186.做出转发决定和执行动作基于在分组分类期间标识的转发表条目通过在分组上执行在匹配的转发表条目中标识的动作的集合来进行。
187.然而,当未知的分组(例如,如在openflow用语中所使用的“未中的分组”或“匹配未中”)到达数据平面1780时,通常将分组(或分组报头和内容的子集)转发到集中式控制平面1776。然后,集中式控制平面1776将把转发表条目编程到数据平面1780中,以容纳属于未知分组的流的分组。一旦已经由集中式控制平面1776将特定的转发表条目编程到数据平面1780中,具有匹配证书的下一个分组便将与该转发表条目匹配,并将采取与该匹配的条目相关联的动作的集合。
188.网络接口(ni)可以是物理的或虚拟的;并且在ip的上下文中,接口地址是指派给ni的ip地址,而不管它是物理ni还是虚拟ni。虚拟ni可以与物理ni相关联,可以与另一个虚拟接口相关联,或者可以独立存在(例如,环回接口、点对点协议接口)。ni(物理或虚拟)可以被编号(具有ip地址的ni)或不被编号(没有ip地址的ni)。环回接口(及其环回地址)是经常用于管理目的的ne/vne(物理或虚拟)的特定类型的虚拟ni(和ip地址);其中此类ip地址称为节点环回地址。指派给nd的(一个或多个)ni的(一个或多个)ip地址称为该nd的ip地址;在更细粒度的等级,为指派给在nd上实现的ne/vne的(一个或多个)ni指派的(一个或多个)ip地址可称为该ne/vne的ip地址。
189.路由系统对于给定目的地的下一跳选择可解析为一条路径(即,路由协议可在最短路径上生成一个下一跳);但是,如果路由系统确定有多个可行的下一跳(即,路由协议生成的转发解决方案在最短路径上提供多于一个下一跳—多个等成本的下一跳),则使用一些额外的准则—例如,在无连接网络中,可使用等成本多路径(ecmp)(又称为等成本多重路径(equal cost multi pathing)、多路径转发和ip多路径)(例如,典型的实现使用特定的报头字段作为准则以确保特定的分组流的分组始终在相同的下一跳上转发,从而保持分组流排序)。出于多路径转发的目的,将分组流定义为共享排序约束的分组的集合。作为示例,特定的tcp传输序列中的分组的集合需要按顺序到达,否则tcp逻辑将把无序递送解释为拥塞,并且放慢tcp传输速率。
190.第3层(l3)链路聚合(lag)链路是将两个nd与多条ip寻址的链路路径(为每条链路路径指派不同的ip地址)直接连接的链路,并且在nd转发平面执行跨越这些不同链路路径的负载分布决定;在这种情况下,在链路路径之间做出负载分布决定。
191.一些nd包括用于认证、授权和计费(aaa)协议(例如,radius(远程认证拨号用户服务)、diameter和/或tacacs (终端接入控制器接入控制系统 )的功能性。aaa可通过客户端/服务器模型提供,其中aaa客户端在nd上实现,并且aaa服务器可在nd上本地实现或在与nd耦合的远程电子装置上实现。认证是标识和验证订户的过程。例如,订户可能通过用户名
和密码的组合或通过唯一的密钥来标识。授权确定订户在被认证之后可以做什么,如获得对某些电子装置信息资源的访问权(例如,通过使用访问控制策略)。计费是记录用户活动。举一个简单的示例(summary example),最终用户装置可通过耦合到核心nd的边缘nd(支持aaa处理)耦合(例如,通过接入网络),核心nd耦合到实现服务/内容提供商的服务器的电子装置。执行aaa处理以为订户标识存储在aaa服务器中的该订户的订户记录。订户记录包括在处理该订户的业务期间使用的属性(例如,订户名称、密码、认证信息、访问控制信息、速率限制信息、监管信息)的集合。
192.某些nd(例如,某些边缘nd)使用订户电路在内部表示最终用户装置(或有时为客户驻地设备(cpe),如住宅网关(例如,路由器、调制解调器))。订户电路在nd内唯一地标识订户会话,并且通常在会话的生命周期存在。因此,当订户连接到nd时,该nd通常分配订户电路,并且当该订户断开连接时,该nd对应地取消分配该订户电路。每个订户会话表示在nd和最终用户装置(或有时为cpe,如住宅网关或调制解调器)之间使用诸如基于另一个协议的点对点协议(pppox)(例如,其中x是以太网或异步传输模式(atm))、以太网、802.1q虚拟lan(vlan)、互联网协议或atm的协议传递的可区别的分组流。订户会话可使用各种机制(例如,手动供应动态主机配置协议(dhcp)、dhcp/无客户端互联网协议服务(clips)或媒体接入控制(mac)地址跟踪)发起。例如,点对点协议(ppp)通常用于数字订户线(dsl)服务,并且需要安装ppp客户端,其使得订户能够输入用户名和密码,而用户名和密码又可用于选择订户记录。当使用dhcp(例如,对于电缆调制解调器服务)时,通常不提供用户名;但是在此类情况下,提供其它信息(例如,包括最终用户装置(或cpe)中的硬件的mac地址的信息)。nd上的dhcp和clips的使用捕获mac地址,并使用这些地址来区分订户并访问它们的订户记录。
193.虚拟电路(vc)与虚拟连接和虚拟通道同义,它是借助于分组模式通信递送的面向连接的通信服务。虚拟电路通信类似于电路交换,这是因为两者都是面向连接的,这意味着,在这两种情况下,按照正确的顺序递送数据,并且在连接建立阶段期间需要信令开销。虚拟电路可存在于不同的层。例如,在第4层,诸如传输控制协议(tcp)的面向连接的传输层数据链路协议可依赖于诸如ip的无连接的分组交换网络层协议,其中可在不同的路径上路由不同的分组,并且因此可无序地递送不同的分组。在底层的不可靠且无连接的ip协议之上利用tcp建立可靠的虚拟电路的情况下,通过源和目的地网络套接字地址对(即,发送方和接收方ip地址和端口号)来标识虚拟电路。然而,虚拟电路之所以可能是因为,tcp在接收器侧包括段编号和重新排序,以防止无序递送。虚拟电路也可能在第3层(网络层)和第2层(数据链路层);此类虚拟电路协议基于面向连接的分组交换,这意味着,始终沿相同的网络路径(即,通过相同的ne/vne)递送数据。在此类协议中,不单独路由分组,并且在每个数据分组的报头中不提供完整的寻址信息;每个分组中只需小的虚拟通道标识符(vci);并且在连接建立阶段期间向ne/vne传送路由信息;交换只涉及在表中查找虚拟通道标识符,而不是分析完整地址。其中始终在相同路径上递送数据的网络层和数据链路层虚拟电路协议的示例:x.25,其中通过虚拟通道标识符(vci)来标识vc;帧中继,其中通过vci来标识vc;异步传输模式(atm),其中通过虚拟路径标识符(vpi)和虚拟通道标识符(vci)对来标识电路;通用分组无线电服务(gprs);以及多协议标签交换(mpls),它可用于基于虚拟电路的ip(通过标签来标识每个电路)。
194.某些nd(例如,某些边缘nd)使用电路的层次结构。电路的层次结构的叶节点是订
户电路。订户电路在层次结构中具有通常表示多个订户电路的聚合的父电路,并且因此具有用于提供那些最终用户装置到nd的接入网络连接性的网络段和元件。这些父电路可表示订户电路的物理或逻辑聚合(例如,虚拟局域网(vlan)、永久虚拟电路(pvc)(例如,对于异步传输模式(atm))、电路组、通道、伪线、nd的物理ni和链路聚合组)。电路组是允许将电路的各种集合分组在一起以用于配置目的(例如,聚合速率控制)的虚拟构造。伪线是第2层的点对点的面向连接的服务的仿真。链路聚合组是合并多个物理ni以用于带宽聚合和冗余目的的虚拟构造。因此,父电路在物理上或在逻辑上封装订户电路。
195.每个vne(例如,虚拟路由器、虚拟桥接器(它可在虚拟私有lan服务(vpls)中充当虚拟交换机实例))通常可独立管理。例如,在多个虚拟路由器的情况下,虚拟路由器中的每个虚拟路由器可共享系统资源,但是在它的管理域、aaa(认证、授权和计费)名称空间、ip地址和(一个或多个)路由数据库方面与其它虚拟路由器分开。可在边缘nd中采用多个vne以为服务提供商和/或内容提供商的订户提供直接网络访问和/或不同类别的服务。
196.在某些nd内,独立于物理ni的“接口”可作为vne的一部分配置成提供较高层协议和服务信息(例如,第3层寻址)。除了其它订户配置要求之外,aaa服务器中的订户记录还标识在nd内应当将对应的订户绑定到哪个上下文(例如,vne/ne中的哪个vne/ne)。如本文中所使用的,绑定在物理实体(例如,物理ni、通道)或逻辑实体(例如,电路,如订户电路或逻辑电路(一个或多个订户电路的集合))和在其上为该上下文配置网络协议(例如,路由协议、桥接协议)的上下文的接口之间形成关联。当配置某个较高层协议接口并且它与物理实体相关联时,订户数据在该物理实体上流动。
197.一些nd为实现vpn(虚拟私有网络)(例如,第2层vpn和/或第3层vpn)提供支持。例如,其中耦合提供商的网络和客户的网络的nd分别称为pe(提供商边缘)和ce(客户边缘)。在第2层vpn中,通常在vpn的任一端的(一个或多个)ce上执行转发,并且跨越网络(例如,通过由其它nd耦合的一个或多个pe)发送业务。在ce和pe之间配置第2层电路(例如,以太网端口、atm永久虚拟电路(pvc)、帧中继pvc)。在第3层vpn中,通常由pe执行路由。举例来说,支持多个vne的边缘nd可作为pe部署;并且vne可配置有vpn协议,并且因此将该vne称为vpn vne。
198.一些nd为vpls(虚拟私有lan服务)提供支持。例如,在vpls网络中,最终用户装置通过耦合到ce来访问通过vpls网络提供的内容/服务,ce通过由其它nd耦合的pe耦合。vpls网络可用于实现三重播放网络应用(例如,数据应用(例如,高速互联网接入)、视频应用(例如,电视服务(如iptv(互联网协议电视)、vod(视频点播)服务)和语音应用(例如,voip(互联网协议语音)服务))、vpn服务等。vpls是可用于多点连接性的一种类型的第2层vpn。vpls网络还允许与在分开的地理位置的ce耦合的最终用户装置跨越广域网(wan)彼此通信,就像它们在局域网(lan)中直接附连到彼此一样(称为仿真lan)。
199.在vpls网络中,每个ce通常可能通过接入网络(有线和/或无线)经由附连电路(例如,ce和pe之间的虚拟链路或连接)附连到pe的桥接器模块。pe的桥接器模块通过仿真lan接口附连到仿真lan。每个桥接器模块通过维持将mac地址映射到伪线和附连电路的转发表而充当“虚拟交换机实例”(vsi)。pe基于(从ce接收的)帧中包括的mac目的地地址字段而将那些帧转发到目的地(例如,其它ce、其它pe)。
200.尽管已经依据若干个实施例描述本发明,但是本领域技术人员将认识到,本发明
不限于描述的实施例,而是可在随附权利要求书的精神和范围内通过修改和变更来实践。因此,本描述将视为说明性而不是限制性的。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献