网络知识平面简介
随着网络规模的扩大和结构越来越复杂,传统的网络管理模式遇到了严重挑战。本文提出知识平面作为下一代网络管理的核心组件,依赖人工智能和认知技术满足网络管理的不确定性和复杂性需求。原文: A Knowledge Plane for the Internet
摘要
本文提出了新的网络研究目标,即建立一种完全不同的、可以在高级指令下自行构建、在需求变化是主动重构、自动发现并修复问题的网络,并且当问题无法修复时,可以给出解释。
想要实现这一目标,仅仅对今天所知的技术和算法进行渐进式改进是远远不够的。相反,我们提出了新的结构,即知识平面(Knowledge Plane),作为网络中的通用系统,负责构建并维护网络的高级模型,以便向其他网络元素提供服务和建议。知识平面的新颖之处在于其依赖于人工智能和认知系统,我们认为,认知技术(而不是传统的算法方法)最适合用于满足我们目标的不确定性和复杂性。
1. 简介
互联网如今取得了巨大成功,但我们不能因为互联网的成功而对其局限性视而不见。互联网强调通用性和异构性,简单、透明的网络与丰富的终端系统通过类似"沙漏"这样的模式组合在一起,对于深入网络体系的去中心化、多头管理结构的假设是其关键优势,但当出现故障时,却需要大量手动配置、诊断和设计带来的高昂管理开销,使用户感到沮丧。
用户和运营商的挫败感都源于互联网的基本设计原则: 保持核心网络简单、透明,在边缘处理智能业务逻辑[1,2]。网络只负责传输数据,但不知道这些数据是什么,也不知道其目的是什么。如果发生了某些事件使数据无法通过,边缘可能会意识到有问题,但核心并不知道原本应该发生什么,因此无法判断哪里出了问题。边缘理解应用程序及其预期行为,核心只处理数据包。类似的,网络运维人员以非常低级的方式与核心交互,例如配置每个路由器的路由和策略。运维人员没有办法表达(网络也没有办法建模)高级目标,也没有办法将低级决策与高级目标相关联。
当我们设计新网络时,不能失去使互联网成功的特征,即对新应用的开放性、对协议的适应性,以及本质上的可塑性。然而,我们必须设计出一种技术,将这些优点与新的目标结合起来: 网络需要有能力知道要做什么,这样就能越来越多的自己照顾自己,而不用依赖别人的照顾。如果网络对其设计目标和可接受配置的约束有一个高级视图,那就可以自己做出许多低级决策。网络可以与网络设计人员沟通,以了解多大程度上已经满足了目标,而不用显示大量路由配置表,同时也可以通过重新配置自己来处理高层需求的变化。
我们认为,传统算法方法不太可能支持所需的复杂行为。我们采取的方法必须提供从低级行动中抽象和隔离高级目标的能力,对不完善和冲突的信息进行整合和采取行动,并从过去的行动中学习以提高未来的表现。这些特性正是在互联网环境中有效运作所需要的,互联网环境具有多样化和相互竞争的目标,控制分散,环境复杂且动态变化。
本文提出了一种基于人工智能和认知系统工具的网络设计方法,具体来说是提出了一种分布在网络中的认知系统架构,我们称之为知识平面(knowledge plane) 。
本文其余部分组织如下。第 2 节介绍了知识平面的概念,并将这一概念与其他选项进行对比,认为我们应该采用认知方法。第 3 节将讨论这个架构可能为我们做什么,例如如何使网络更好。第 4 节讨论了知识平面架构的一些重要设计约束和考虑事项。第 5 节概述了前进道路上的主要挑战。
2. 知识平面
以上讨论暗示了一种解决方案,在这种解决方案中,网络对其目的有一个高级视图,即网络设计者的目标、运行在上面的应用程序的目标以及用户的目标。在特定于应用程序的网络中,一种方法可能是在网络的核心设计中利用和嵌入特定领域知识,就像在电话网中所做的那样。但这违背了互联网的基本目标: 承载广泛且不断变化的应用程序的能力。与其通过向互联网的简单透明的数据传输平面添加"一点点"应用程序知识来取悦别人,还不如设计一个单独的构件来创建、协调和维护高级视图的各个方面,然后根据需要向网络的其他元素提供服务和建议。这就是知识平面(KP)。
理解实现这一目标的最佳精确路径是重要研究问题,本文既不能也没有提出知识平面的完整技术描述。然而,作为一个开始,我们将勾画出知识平面的某些潜在核心属性,并考虑与现在的实践有何不同。这些属性包括:
边缘相关(Edge involvement): 端到端原则表明,有关网络性能的许多有价值的信息不是来自网络,而是来自使用它的设备和应用程序。这是互联网通用数据平面的必然和可取的结果。然而,这意味着大多数知识平面中的"知识"可以在网络的"传统"边缘或者说外部产生、管理和消费。因此知识平面的范围比传统的网络管理更广。
全局视角(Global perspective): 大多数管理系统都是区域性的,运维人员管理他所负责的部分。但真正有用的问题识别可能取决于相关的网络不同部分的观察结果。要想完全理解事件,不仅需要结合边缘数据和来自网络"内部"的数据,还需要网络不同部分的数据。理想情况下,知识平面能够根据需要将其视角扩展到整个全局网络。
组合架构(Compositional structure): 如果 KP 的影响范围是全局性的,那么设计时必须考虑到我们可以粗略称之"组合"的架构。一个最基本的例子是两个未连接网络的 KP 应该能够在网络连接后合并它们的观点和活动。
组合问题的必然结果是需要在不完善和相互冲突的情况下操作,比如说某些区域希望保持数据的私密性。一些网络运营商和服务提供商之间的相互不信任(事实上,任何争夺经济优势的各方之间的相互不信任),直接导致了今天对高度熟练的人工判断的需求,用以推断和模拟网络行为。KP 面临着类似问题,即不能假设共享目标和共享信息的同质网络。
统一方法(Unified approach): 人们可能会猜测,我们旨在解决的各种问题最容易利用不同的机制来解决,通过自下而上的组合,也许在顶部松散的联系在一起。相比之下,我们设想的 KP 是一个单一、统一的系统,拥有共同的标准和"知识"框架。这种统一的方法是必要的,因为现实世界的知识并没有严格按照任务划分。我们建议知识平面的架构应该类似,基于知识,而不是任务。我们认为,虽然单点解决方案可能更容易制定,但从长远来看,综合方案将更有成效。
认知框架(Cognitive framework): 知识平面需要在局部或冲突信息存在的情况下做出判断,要认识到并调解政策和目标的冲突,在比人工更优的时间框架内应对问题和攻击,在人工或分析解决方案无法解决的复杂高维度环境中执行优化,自动化那些现在必须由少数高度熟练的网络技术人员来完成的工作。因此,我们期望认知技术作为知识平面的基础,通过表示、学习和推理,让知识平面"意识到"网络及其在网络中的行为。
接下来我们进一步讨论三个关键概念: 新架构的必要性,统一知识平面的可取性,以及认知工具的价值。
2.1. 为什么要有新架构?
大多数关于网络架构的讨论都承认两类架构划分(或平面): 数据平面(内容在其上转发)和控制或管理平面(用于指导、测量和修复数据平面)。通过谈论"知识平面",我们建议引入一个全新的架构,而不是将知识放入现有平面中(大概是管理平面)。为什么我们认为需要新的架构?
如果观察现有的两类平面,我们会发现两种完全不同的架构。数据平面(在几乎所有著名的数据传输体系架构中)使用某种形式的分层来隐藏复杂性,并支持可扩展性、互操作性和可伸缩性。相比之下,控制和管理系统的设计总是要跨越各个层次,使网络的所有方面都具备可观测性和访问权,从而对这些方面进行必要的监测和管理。事实上,由于管理平面是无所不知的,往往难以扩展,也难以改变。
知识平面显然处于不同的位置。它不是数据平面,不会直接移动数据,此外与管理平面不同,它倾向于打破边界以提供统一的视图,而不是将世界划分为受管理的飞地。它在功能上也不同于管理平面,很难想象 KP 管理统计记录(也许偶尔会读取它们,但不会收集、存储和处理它们)。
2.2. 为什么采用统一方法?
考虑这样一个例子: 用户试图安装一个新应用,但发现它不能工作。一个原因可能是用户的 ISP 阻止了这类流量。为了让 KP 给各方最有效的反馈,它需要访问 ISP 设置的配置约束,因此可以确定背后的规则,并告诉用户这意味着什么。因此,有必要将网络配置信息和用户看到的问题信息放在一个框架内。
一个相关的例子涉及 overlay 网络,如 CDN。很容易想象 KP 的一个组成部分是拓扑和性能信息,CDN 可以使用这些信息使它的交付节点"接近"用户。这些信息可能有多种来源,如"网络天气"服务、用户报告的体验和 ISP,因此不仅包括流量测量,还包括有关管理流量限制和本地防火墙限制的信息(可能"用户"无法接收某些类型的内容)。将这些信息集成并以统一的方式呈现,将使相关方(用户、CDN)都能受益。
在某些情况下,KP 可能能够自己解决问题。如果发现问题的原因是低级决策,而低级决策对运维人员的高级目标不重要,它可能会改变该决策。但是为了确定更改是否合适,KP 需要了解设置背后的原因。所以关于规划的知识需要和修复问题放在同一个背景下考虑。
当网络的一个组成部分对可能的异常进行低级观察时,并不知道实际的相关性是什么。这个观察结果可能会触发修复、重新配置、向网络其他部分的网络运维人员发出通知、安全警报或其他完全不同的东西。所以对网络条件的观察不能被认为是单一问题空间的一部分,而是 KP 的一部分。
我们认识到,特定问题的单点解决方案可能比这里假设的通用解决方案更快达到部分目的。但我们假设的核心是要达到最终目标: 网络可以配置、解释、修复自己,并且不让用户被神秘的东西所迷惑,因此基于单点解决方案组合的方法是不会成功的。
2.3. 为什么是认知系统?
知识平面的目标意味着需要迎接一系列重大挑战:
必须在不完整、不一致、可能具有误导性或恶意的信息存在时有效发挥作用。系统故障、出于隐私或竞争原因的信息过滤以及有限的网络资源都是造成这种需求的原因之一。
必须在互联网的不同利益相关者之间存在冲突或不一致的更高层次目标时执行适当的行为,这是[12]中讨论的角力困境的表现。
必须在保证通用性的同时有效运行,包括支持新技术和设计时没有设想的应用,以及面对高度动态的环境,包括架构和基础网络的复杂性的短期、长期的变化。
我们假设这些挑战不能用解析解来解决,因为解析解通常需要完整的信息、精确的问题公式和相对静态的操作环境。相反,我们建议采用"认知"技术,该技术的关键好处是在复杂、不一致、动态和演进的环境中有效执行的潜力,以及评估和改进自己性能的能力。接下来我们讨论认知知识平面的两个定义特征。
首先,KP 必须最终像普通控制系统那样在网络上"闭合回路"。当我们获得经验和信任时,知识平面将首先为许多管理任务启动识别-解释(recognize-explain) 回路,然后是识别-解释-建议(recognize-explain-suggest) 回路,最后是识别-行动(recognize-act) 回路。由于知识平面必须比标准控制系统更通用、更灵活,我们从其他地方寻找额外灵感。受到人类认知理论[18]启发的架构已经取得了一些成功,并暗示了一种方法。在知识平面环境下,认知架构当然会是分布式和去中心化的,并且会在一定程度上影响分区,以支持网络利益相关者的不同利益。
第二,KP 必须能够学习和推理。学习是有原则的知识积累,可以通过多种方式进行: 试错、指导、归纳、类比、解决问题和脑力搜索等等。有些学习方法需要人的参与,有些则不需要。在静态的问题环境中,有足够简单的解析解,因此学习是无关紧要的。但是从 IP 网络的设计和意图来看,各个方面都在不断发展,并且潜在配置是无限的。在可能情况下,当认识到新的情况或执行和评估新的行动时,知识平面应得到改进,其知识库应以有用的方式增长。学习的第一个和最直接的挑战是通过我们现有的透明数据平面的模糊面纱来建模应用程序的行为、依赖关系和需求。
推理是将现有知识组合起来,得出新推论和新理念的过程。推理过程可以将陈述性知识(无论是经验的还是学习的)转化为对观察结果的解释和对行动的决策。如果我们希望未来的网络支持高层次的目标和约束,将需要能够在这些抽象上操作的推理方法。
从长远来看,推理在知识平面的一个有趣而重要的功能将是支持在用户和运维人员之间进行调解,这些用户和运维人员的目标可能相互冲突,或与固定的设计约束相冲突。这种不可避免的冲突表明,必须开发新的技术来表示和推理约束和政策。最初,这些表示需要从低级配置和操作中推断出来,但最终目标是在高层次上表达目标和策略,并生成低级配置。
即使在短期内,也可以利用现有研究成果设计和构建知识平面。认知架构[18]的经验,最近在多智能体系统[22]的工作,以及新兴的算法博弈论领域可能能够直接拿过来用。然而,网络环境也提出了许多挑战,这将延伸当前的认知系统状态,并以新的和有趣的方式重新决定研究方向[19、20]。
3. 知识平面的好处是什么?
在较高的层次上,我们为 KP 提出了统一的目标: 通过让它了解自己应该是什么,以及应该做什么,来建立新一代的网络。为了实现这一目标,需要支持更多特定的问题域。这里我们将更详细讨论其中的部分内容。
故障诊断和缓解: 今天,如果互联网的一部分发生故障,终端用户几乎不可能知道发生了什么,也不可能找出应该通知谁,或者采取什么措施来纠正错误。如果我们以今天的互联网为起点,想象一下,当某些东西出现故障时,用户可以运行一条命令来要求解释,这是很有吸引力的。这就是 WHY(problem-x)命令: 为什么 x 坏了?例如,用户可能会问:"为什么我不能访问 www.acm.org 了?"
然而,WHY 的提法不够大胆。一个过于大胆的替代方案是,如果 KP 足够智能,网络应该永远不会失败。在这种情况下,就不需要 WHY 了。但这种雄心在根本上是有缺陷的。在某些情况下,只有人类才有足够的知识来确定正在发生的事情是否真的是一个错误。当 Dave 拔掉笔记本电脑的插头并把它放进公文包时,可能会有一些应用程序突然停止工作,但这不是故障。这就是 Dave 的意图,如果每次断开笔记本电脑的连接时,某个半智能的 KP 醒过来询问是否想重新连接,这会是一场噩梦,而不是成功。因此,有时只有人类可以给 KP 指导。这是 FIX(问题-x),而不是 WHY(问题-x)。用户是在表达有什么东西坏了,把它修好。
这是否足以指导 KP 纠正错误?事实上,有趣的例子是,"问题"是由来自不同人的相互冲突的规范或约束引起的。有人可能会说 FIX(我刚刚安装的游戏无法运行),失败的原因是 ISP 屏蔽了该游戏。你可能会说 FIX(糟糕的带宽),但问题是你已经超过了自己的使用限额,而 ISP 限制了速率。在这些情况下,KP 可能无法解决问题。然而,我们可能想要这么一个 KP,它既可以解决问题,也可以说明为什么无法解决问题。因此,FIX(问题-x)的答案可能是 CANNOT(理由-y)。如果系统确实修复了一些东西,它可能想要告诉别人发生了这种情况,因为也许只有人类可以采取进一步行动。
此示例表明,用户和 KP 需要双向沟通和表达。当然,KP 可能会就一个问题与许多实体进行沟通。来自用户的 FIX(游戏中断)的请求可能会触发一条消息,告诉用户游戏被阻止了,但也可能会触发一条消息,告诉 ISP 它有一个不满意的用户。
这个故事的进一步扩展是 KP 可以为用户和管理者提供一个助手、一个代理,观察人们在做什么,并随着时间的推移学习什么是正常的,什么是不正常的。所以 Dave 笔记本电脑上的 KP 代理可能会知道 Dave 总是拔掉它,而 Dave 桌面计算机上的代理可能会意识到他从来没有断开过,并冒着打扰 Dave 的风险问他是否有意这样做。这样,故障诊断和缓解问题就有了学习的成分。
一旦在 KP 中实现 FIX(问题-x)的功能,程序和人们都可以使用。随着用户代理的学习,它应该越来越频繁的发出自己的信号。而其他程序,比如应用程序代码,可能会检测并发出出错的信号。KP 将不得不根据信号的来源决定给予这些信号多大程度的信任。
FIX 命令将在幕后触发 KP 中的一系列活动,从运行在用户机器上的本地组件开始,然后与 KP 交换信息以找出问题所在。诊断功能可以检测出所有级别的功能,从报文转发到应用功能。目前有几个研究项目可以作为该应用的基础[13,14]。
一旦终端节点执行了所能进行的诊断,下一阶段是工具将其发现内容的断言添加到共享知识平面,并向 KP 询问相关信息。这种对知识平面的贡献允许网络上的所有用户共同构建网络和服务状态的全局视图。这些数据可以与来自互联网上正在进行的测量工作的信息结合起来,这些测量工作试图建立网络状态的整体模型[9,15]。如果失败影响到很多用户,那么这种聚合就很重要。
自动(重)配置: 原始互联网的动态路由配置没有考虑管理和策略约束,所以今天的路由越来越多的由静态策略表定义,这意味着路由器等设备越来越需要人工配置和管理。静态表和手动配置会使网络容易出错,难以更改,甚至更难进行全局推理。想象一下,作为 KP 的一部分,互联网一个区域的配置管理器接收关于网络组件如何安排自己的高级断言,并相应指导实际的详细配置。用例包括控制家庭用户网络的部署,支持快速部署的自组织网络,或用于小型企业的网络。该项目的成功完成可以大幅减少配置和操作网络所需的人力。
KP 配置管理器应该对底层架构有足够的了解,以检测网络是否根据高层约束正确配置,检测是否有更好的配置替代方案,以及检测系统是否出现损坏。推理必须是双向的。也就是说,管理者必须能够在给定高级目标、优先级和约束的情况下获得低级设置,并且必须能够查看现有低级设置,并通过高级术语描述结果行为。
此外,一个有趣的问题(一旦我们有了可工作的基础系统)是当系统遇到不同相关方提出的相互冲突的断言时。网络管理员可能会提出 ROUTING_PREFERENCE(低成本链接),而终端用户的机器可能会提出 FIX(低带宽)。同样,KP 可能能够解决其中的一些问题,并且随着时间推移,可能会知道什么时候可以安全的自己采取行动,什么时候必须以有意义的方式把问题退回给相关人员。(顺便说一下,这个例子说明了为什么 KP 必须被视为一个统一系统,而不是作为故障管理和配置的独立系统。)
配置任务不是在部署网络时才会发生的事情,而应该是不断发生的事情,关注不断变化的网络条件、应用程序需求和不断变化的约束,也是一个可以递归运行的任务。全球网络不是自上而下建立的,而是自下而上,一个区域接一个区域的建立。每个区域将首先使用其本地指定的目标和约束来配置自己,但当两个区域连接起来时,其中一个可能会对另一个施加进一步的限制。因此,供应商网络可能会对订户网络说: NO_MULTICAST,从而可能导致用户网络更改其内部组织,禁用某些最终用户应用程序,等等。
支持 overlay 网络: 如果 KP 有足够信息来配置网络,这些信息对正在配置自己的应用程序也很有用。例如,我们越来越多看到互联网上特定于应用程序的 overlay 网络的发展。每个 overlay 网络使用基于边缘的机制来评估互联网上不同可能路径的性能,并试图建立一组传输路径,这些路径可以将应用程序数据包有效的路由到看起来最适合应用需求的网络部分。目前,因为没有机制让应用了解网络核心的能力,因此应用网络必须探测互联网。KP 将能够聚合应用和网络衍生的关于网络性能的知识,为应用程序提供比通过探测了解到的更好的关于网络的信息,以及对控制点的访问和修改,以帮助更好的满足应用的需求。因此,KP 支持对每个应用的流量进行控制,而不需要在整个网络中构建每个应用的基础设施。
知识增强的入侵检测: 有许多项目(和许多产品)执行某种类型的分析来检测网络入侵。一般来说,他们观测网络某处的数据并寻找模式。当前这一代工具会触发误报和误报。据推测,下一代入侵检测工具要求网络中几个点的观测必须相互关联,以便获得更稳健和有用的信号。知识平面的开发为实现数据的收集和关联提供了基础。
4. 知识平面架构
本文已经概述了知识平面的目标,本节我们将考虑其系统架构的其他方面。我们的讨论是推测性的: 任何成功的 KP 架构都将受到许多要求和约束的影响,而这些要求和约束在今天并不都是显而易见的。在 KP 的最高层次上,两种广泛的力量将在很大程度上塑造 KP 的架构: 其分布式的组成架构,以及多尺度的、潜在的全局知识视角。
我们的最终目标是,网络系统应该在外部输入的约束和指导下组织起来,以满足其利益相关者的目标。即使在短期内,KP 也必须尊重并基于网络具有的内部架构和动态(大型网络由相互连接的小型网络组成,参与者来来去去,即使物理结构没有改变,不同网络的所有者、运营商和用户之间的关系也可能会发生变化)的事实。
这意味着服务于网络的知识平面不是全局工程实体,而是一个自主创建的结构,递归、动态、连续的从更小的子平面组成和分解自己。这一要求认为 KP:
是分布式的,KP 功能对于网络的不同区域在物理上和逻辑上是分散的。
是自下而上的,简单实体(如网络服务器)可以根据需要组成更大、更复杂的实体(如网络池),并根据需要从系统中分解自己。这是一个递归过程,可以在不同层次上进行。
是约束驱动的,基本原则是系统可以(也可能)采用(或不采用)任何没有特别约束的行为。
从简单到复杂。一般来说,将一组网络组成一个更大的网络的行为对每个网络的行为提出了更多的要求或约束。一个简单的例子是,一个独立的 IP 网络可以使用广泛的地址范围,但是将它连接到一个更大的网络会限制在这方面的选项范围。
我们对 KP 系统架构的第一个目标是支持这种分布式、组合的视角,提供必要的使能抽象和功能。
与 KP 的分布式组织相比,我们在前面章节中已经讨论过,KP 通常可以受益于采取全局视角,从网络中的许多单点综合观察并得出结论,其中关键含义是:
数据和知识整合是 KP 的核心功能。KP 必须能够从网络的不同部分收集、过滤、归纳和路由观察、断言并得出结论。
KP 必须在信息不完整的情况下成功运行。因为这个全局视角在物理上是巨大的,并且跨越多个管理实体,所以 KP 的认知算法必须准备好在有限和不确定的输入中操作。
KP 必须考虑信息权衡。有时候,全局视角可能很关键,其他时候,可能并不重要或只是有些有用。KP 必须准备好对使用不同范围的数据所涉及的权衡进行推理。例如,诊断可能的 web 服务器故障,或者更有可能的是,避免从很远的地方轮询用户体验。在这种情况下,KP 可能需要使用内省的元推理来做出最有效的行动。
我们对 KP 体系架构的第二个目标是,在对解决问题有利的任意可能范围内开发、利用和推理信息。
4.1. 功能和架构需求
上述目标,连同知识平面的核心目标,将我们引向几个顶级的功能和体系架构需求,下面讨论其中的四个。
4.4.1. 核心基础
知识平面的核心是将行为模型和推理过程集成到分布式网络环境中的能力,其第一个组成部分是支持各种信息的创建、存储、传播和发现,可能包括描述当前条件的观察(observations) ,捕捉网络运营高层目标、意图和约束的断言(assertions) ,还有关于知识本身如何具化的解释(explanations) ,解释的作用是将观察和断言映射到结论中。
为了了解和改变环境,知识平面必须访问和管理认知界所称的传感器(sensors) 和执行器(actuators) 。传感器是产生观测的实体,执行器是改变行为的实体(例如,变更路由表或打开/关闭链接)。例如,一个知识应用希望根据特定策略操作网络,它可能会使用传感器收集网络上的观测数据,使用断言来确定网络的行为是否符合策略,如果有必要,还可以使用执行器来改变网络的行为。
知识平面最核心的部分是其对认知计算的支持。这是一个很有挑战性的问题,因为动态和分布式 KP 环境不能很好的匹配经典知识算法和代理架构,而这些算法和架构支撑了当前大部分 AI。大多数 AI 算法都不是为在高度分布式环境下工作而设计的,而构建具有嵌入式认知能力的大型分布式数据管理系统的直接经验很有限<sup>[1]</sup>。对于高度动态、部分可观测、随机和容易出错的环境,我们需要的是高鲁棒性、可跟踪的在线算法。尽管迄今为止所解决的问题通常缺乏知识平面所需的动态性,但多代理系统(MultiAgent Systems)[22]领域在解决这些问题方面取得了一些初步进展。因此,知识平面架构的这一部分的细化,基础设施对一系列适合的认知算法的支持,很可能与认知系统本身的进一步研究相结合。
[1] 一个早期的相关尝试,DARPA 赞助的自动化网络管理(ANM, AutomatedNetwork Management)项目,寻求建立一个结合 AI 的全网络 MIB 收集器工具[7]。ANM 的经验是,收集数据相对容易,但将数据送到正确的地方却很困难,如果信息传播过于激烈,链接很容易被大量管理流量淹没。
4.1.2. 跨域和多域推理
KP 在哪里运行?其组成和区域结构也许表明,对于某个地区的推理可以由一个特定的服务器支持,类似互联网 AS。一种可能是 AS 的管理者将运行 KP,执行对 AS 的监控。在更抽象的层次上,人们可能会将这种结构化策略描述为"每个区域负责对自身进行推理"。
这不是个好主意,原因如下。如果 AS 宕机,可能导致出错时无法访问相关 KP 信息。AS 的管理者可能希望控制 KP 得出的结论,也许他们不想看到那些看起来不讨喜、但会被其他人所接受的知识和结论。这些例子表明关于 AS 的推理可能独立于 AS 发生,这一事实应该反映在系统架构中,即 KP 的不同部分可能独立的对 AS 进行推理,并比较答案,以检测该部分 KP 是否受损。这表明,网络的某个区域和与其相关的 KP 推理引擎之间不应该存在特定的物理关系。
一种更激进的可能性是,多个实体竞争提供关于给定 AS 的信息。每个实体都收集自己的数据,并出售自己的观察结果。KP 可以从它认为能提供最准确、最及时(或最具成本效益)的信息的一个或多个实体中寻求信息。这个"知识市场(knowledgemarketplace)"带来了一系列架构上的挑战,从如何推断来自多个供应商的信息(即使三个不同的公司告诉你关于 AS 的相同信息,结果也可能是他们都在转售来自同一个互联网天气服务的数据: 如果你真的想要第二个意见,怎么才能找到第二个天气服务?)到如何设计 KP 协议,以阻止不同的知识公司巧妙"增强"KP 协议或数据,使用户难以同时使用其他知识提供商的服务?
本讨论展示了 KP 信息流潜在的丰富性。消息需要流到多个位置,以便发生冗余推理,消息如何流动可能取决于提出请求的人。KP 的不同部分可能会得出不同的结论,协调这些结论与处理不完整的输入数据一样重要。
4.1.3. 数据和知识路由
我们认为,KP 将受益于获得其服务网络的全局视角。思考这种观点是如何产生的是很有用的。在一个很小的网络中,理论上有可能收集所有相关信息,并将这些信息发送到网络中的每个节点(更准确的说是在分布式 KP 中)。
这种想法在更大的网络中显然不切实际。首先,海量信息在技术上令人生畏,需要高度可扩展的解决方案。除此之外,竞争和隐私等因素也开始发挥作用。在任何规模的网络中,都需要限制和优化信息的收集和路由,因此需要更复杂的技术。
我们建议 KP 架构应该作为知识管理和路由这两个属性的框架,由知识驱动,路由系统本身整合关于不同知识在不同情况下最有用的信息,并使用可扩展的分布式技术过滤观察结果,获取与潜在客户最相关的观察结果。它能够做出取舍(可能包含质量概念),通过或多或少的努力、不同的时间、不同的带宽等来推理出质量不一的答案,而不仅仅是产生"一个答案"。
4.1.4. 关于信任和鲁棒性的推理
KP 的组成结构和全局视角的结合为实现稳健和值得信赖的设计带来了挑战。由于相关网络的组合在任何时候都可以形成有效的 KP,因此体系架构必须反映出这样的事实: KP 的某些部分可能损坏或被破坏,一些参与者可能撒谎或故意输出有缺陷的推理,系统操作不得不基于可能是局部的、过时的或错误的输入。
这表明,KP 可能需要建立、维护和推理其组成部分和参与者之间的信任关系。行为不端的 KP 部分可能被其他部分认为是不可信的,并且这个信息可能会在决定相互信任的部分之间传播。通过这种方式,可以建立一个信任网络,识别似乎值得信任的 KP 组件,避开不值得信任的组件。这种自省可能需要开发信任模型,并使用可伸缩技术(例如所谓的"小世界"模型[10])来搜索可信网络。
5. 创建知识平面
5.1. 可能的构建模块
大量基础研究可能与创建 KP 有关。示例包括用于分发数据的流行算法[5]、用于学习[4]的贝叶斯网络、启用信任网络[6]的秩聚合、约束满足算法[21]和基于策略的管理技术[23,24]。所有这些技术都已经在其他网络环境中开发出来了,并且可能与本文相关。
5.2. 挑战
如果要创建成功的知识平面,必须处理和解决一些挑战性问题。由于知识平面的目标之一是赋予应用程序学习和推理环境的能力,因此许多问题都处于网络和人工智能的边界上<sup>[2]</sup>,本节概述了贯穿这些问题的一些关键主题。
[2] 对于知识表示问题的一般概述,读者可能希望阅读[16]。
如何表示和利用知识? 我们希望知识平面支持推理(找出 John 无法访问 www.example.edu 的原因)和学习(上次 www.example.edu 无法访问是由于 DNS 问题,所以让我们检查 DNS 性能)。当前的推理和学习技术告诉我们,需要建立试图理解的实体的抽象模型,然后使用信息来推理,并可能更新这些模型。当前对表示方案的研究,如 DAML Project<sup>[3]</sup>,可能会让我们对如何表示可以推理的信息有一些见解。然而,还必须确定如何提取和处理所有有价值的信息,这些信息可能不在 DAML(或我们选择的任何形式)中,而是在 SNMP MIB、系统日志和其他地方。我们应该如何构建、表示和分布驱动推理的模型呢?
[3] DARPA 代理标记语言(DARPA Agent Markup Language)是对可扩展标记语言(XML)和资源描述框架的一组扩展,以支持 web 对象的本体(对象之间关系的声明)。参见 www.daml.org。
如何实现可扩展性? 知识平面是构建更可靠、更健壮的网络的基石。如果实施得当,应该能够持续改善网络,即使网络变得更大,知识平面本身也将变得更大。随着我们在知识平面上添加更多知识和新的应用程序,它应该会变得更有价值、更有用,这些都是硬目标。而随着数据量的增加,或者系统中组件数量的增加,我们经常会发现瓶颈并发现算法无法伸缩。例如,如果某个网络故障触发大量消息进入 KP,那么如何聚合和控制这些消息,从而使 KP 的某些部分不会过载?我们可能会发现自己面临抽象数据的挑战,并在知识平面的各个部分强行划分或层次结构,以允许其扩展,那么如何确保抽象和划分能够增加而不是减少价值?
如何传递知识? 假设知识平面学习到一个有价值的新事实,或有价值的认知。这个事实或认识是如何传播的?是否向所有相关方推送?如果是这样,我们如何知道谁对此有兴趣?事实是否被简单标记并放置在知识平面中,以供感兴趣的各方发现?如果是这样,感兴趣的人怎么才能知道去找它?有没有方法可以智能总结数据,让权衡变得更容易?
如何提供正确的经济激励? 网络社区已经认识到,分布式系统的成功在很大程度上取决于系统设计中嵌入的经济激励因素[11,12]。知识领域充斥着经济挑战,如何激励人们把信息放到知识平面?知识平面中的很多数据都是有价值的,是否应该为人们买卖信息(或者更好的说法是"知识")提供机制?如何避免使知识平面协议成为经济竞争点(例如,避免厂商绑定的 HTML 增强)?
如何处理恶意和不可信的组件? 我们不可能期望 KP 中的所有节点都是可信、称职、可靠的。被破坏的节点可能会注入错误的观察,某些节点可能会对自己的行为撒谎,某些参与者可能会试图破坏或混淆 KP,从而作为某种攻击整个网络的方式,或者获得某些优势。KP 算法如何保护自己,过滤不良信息,并在存在不确定性和错误的情况下得出有效结论?KP 系统将不得不依靠诸如共识、评级和交叉检查等方法来检测畸形或恶意行为。对于不一致的输入来说,一个健壮的设计是成功的必要条件。
如上所述,信任模型应该是 KP 的核心组成部分。建立可信任的模型,需要对身份有某种持久而有力的表达。不要求该身份与实际的人联系在一起(尽管在某些目的下这可能是最好的),但最基本要求是身份不能被伪造或窃取,这样人们就可以根据对该身份的事先观察建立一致的信任模型。
6. 总结
本文提出用知识平面来扩展网络,知识平面是一种新的更高层次的工件,用于解决网络中"知道正在发生什么"的问题。在抽象层次上,这是一个收集观察(observations) 、约束(constraints) 和断言(assertions) ,并对其应用规则以生成观察(observations) 和响应(responses) 的系统。在物理级别上,是由运行在网络中的主机和服务器上的部分构建的系统,是一个松散耦合的全局分布式系统。
更宏伟的目标是建立新一代网络,一个可以驱动自己的部署和配置的网络,可以诊断自己的问题,并就如何解决这些问题做出可靠的决策。
以前做"高层网络管理(“high-level network management)"的尝试都不是很成功,一个可能的原因是以前的项目没有能够找到正确的高层抽象。KP 背后的假设是,存在合适的方法来抽象详细的行为,并在高层次上讨论目标、计划、约束和方法。知识平面不仅仅是一个事实数据库,还是一个包含认知工具和学习的架构。
7. 致谢
这项研究由美国国防高级研究计划局(e U.S. Defense AdvancedResearch Projects Agency )部分支持,合同为 F30602-00-2-0553 和 F30602-00-C-0087(该文件被批准公开发布,不受限制的分发)。作者感谢 SIGCOMM 的审稿人和 DARPA 知识平面研究的众多参与者,他们的讨论和评论对我们的观点的发展做出了很大的贡献。
8. 参考文献
[1] D.D. Clark, “The Design Philosophy of the DARPA Internet Protocols,” Proc. ACM SIGCOMM ’88, pp. 102-111.
[2] D.S. Isenberg, “The Rise of the Stupid Network,” Computer Telephony, Aug 1997, pp. 16-26.
[3] J. Pearl, Probabilistic Reasoning in Intelligent Systems: Networks of Plausible Inference. Morgan Kaufmann, San Mateo, CA, 1988.
[4] T. Bayes, “An Essay towards solving a Problem in the Doctrine of Chances,” Philosophical Trans. Royal Society of London 53 (1763), pp. 370-418.
[5] A. Demers, D. Greene, C. Hauser, W. Irish, J. Larson, S. Shenker, H. Sturgis, D. Swinehart and D. Terry, “Epidemic Algorithms for Replicated Database Management,” Proc. ACM PODC ’87, pp. 1-12.
[6] C. Dwork, R. Kumar, M. Naor, and D. Sivakumar, “Rank aggregation methods for the Web,” Proc. 10th Intl. Conference on World Wide Web, pp. 613-622 (2001).
[7] J. Wescott, Automated Network Management, BBN Report No. 5641. BBN Technologies (1984).
[8] L. Page, S. Brin, R. Motwani, and T. Winograd, The PageRank Citation Ranking: Bringing Order to the Web. Stanford Digital Library Project (1998).
[9] V. Paxson, J. Mahdavi, A. Adams and M. Mathis, “An Architecture for Large Scale Internet Measurement,” IEEE Communications Magazine 36 (1998), pp. 48-54.
[10] J. Kleinberg, “The small-world phenomena: an algorithmic perspective,” Proc. 32nd ACM Symp. Theory of Computing (2000), pp. 163-170.
[11] L. McKnight and J. Bailey, ed. Internet Economics. MIT Press (1997).
[12] D.D. Clark, J. Wroclawski, K.R. Sollins, and R. Braden, “Tussle in Cyberspace: Defining Tomorrow’s Internet,” Proc. ACM SIGCOMM 2002, pp. 347-356.
[13] M. Mathis, “Diagnosing Internet Congestion with a Transport Layer Performance Tool,” Proc. INET ‘96.
[14] J. Padhye and S. Floyd, “Identifying the TCP Behavior ofWeb Servers,” Proc. ACM SIGCOMM 2001.
[15] V.N. Padmanabhan, L. Qiu and H.J. Wang, “Passive NetworkTomography Using Bayesian Inference”, Proc. Internet Measurement Workshop 2002.
[16] R. Davis, H. Shrobe, and P. Szolovits, “What is a Knowledge Representation?” AI Magazine, 14(1):17-33 (1993).
[17] S. Hangal and M. Lam, “Tracking down software bugs usingautomatic anomaly detection,” Proc. International Conference on Software Engineering ’02.
[18] P. Langley and J. E. Laird, “Cognitive Architectures: Research Issues and Challenges”. Draft of October 31, 2002.
[19] T. Dietterich and P. Langley, “Machine Learning for Cognitive Networks: Technology Assessment and Research Challenges”. Draft of May 11, 2003.
[20] T. Dietterich, “Learning and Reasoning”. Unpublished article of May 26, 2003.
[21] V. Kumar, “Algorithms for Constraint Satisfaction Problems: A Survey”. The AI Magazine, 13, pp. 32-44 (1992).
[22] P. Stone and M. Veloso, “Multiagent Systems: A Survey from a Machine Learning Perspective”, Autonomous Robots, 8(3):345-383 (2000).
[23] M. Sloman, “Policy Driven Management for Distributed Systems,” Jour. Network and Systems Management, vol 2, no 4, Dec 1994, pp. 333-360.
[24] R. Chadha, G. Lapiotis, S. Wright, guest eds., "Policy-Based Networking", IEEE Network special issue, March/April 2002, Vol. 16 Issue 2.
你好,我是俞凡,在 Motorola 做过研发,现在在 Mavenir 做技术工作,对通信、网络、后端架构、云原生、DevOps、CICD、区块链、AI 等技术始终保持着浓厚的兴趣,平时喜欢阅读、思考,相信持续学习、终身成长,欢迎一起交流学习。微信公众号:DeepNoMind
版权声明: 本文为 InfoQ 作者【俞凡】的原创文章。
原文链接:【http://xie.infoq.cn/article/c7babb762b7ef4dba43b6168c】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论