网络知识平面简介(上)

简介: 网络知识平面简介(上)

摘要


本文提出了新的网络研究目标,即建立一种完全不同的、可以在高级指令下自行构建、在需求变化是主动重构、自动发现并修复问题的网络,并且当问题无法修复时,可以给出解释。


想要实现这一目标,仅仅对今天所知的技术和算法进行渐进式改进是远远不够的。相反,我们提出了新的结构,即知识平面(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 支持对每个应用的流量进行控制,而不需要在整个网络中构建每个应用的基础设施。


知识增强的入侵检测: 有许多项目(和许多产品)执行某种类型的分析来检测网络入侵。一般来说,他们观测网络某处的数据并寻找模式。当前这一代工具会触发误报和误报。据推测,下一代入侵检测工具要求网络中几个点的观测必须相互关联,以便获得更稳健和有用的信号。知识平面的开发为实现数据的收集和关联提供了基础。

目录
相关文章
|
7月前
|
监控 安全 网络安全
|
7月前
|
SQL 机器学习/深度学习 分布式计算
Spark【基础知识 01】【简介】(部分图片来源于网络)
【2月更文挑战第12天】Spark【基础知识 01】【简介】(部分图片来源于网络)
79 2
|
7月前
|
消息中间件 Kubernetes 网络协议
Cilium 系列 -15-7 层网络 CiliumNetworkPolicy 简介
Cilium 系列 -15-7 层网络 CiliumNetworkPolicy 简介
|
6月前
|
机器学习/深度学习
【从零开始学习深度学习】33.语言模型的计算方式及循环神经网络RNN简介
【从零开始学习深度学习】33.语言模型的计算方式及循环神经网络RNN简介
【从零开始学习深度学习】33.语言模型的计算方式及循环神经网络RNN简介
|
7月前
|
数据可视化 数据挖掘
【视频】复杂网络分析CNA简介与R语言对婚礼数据聚类社区检测和可视化|数据分享
【视频】复杂网络分析CNA简介与R语言对婚礼数据聚类社区检测和可视化|数据分享
|
1月前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
|
6月前
|
机器学习/深度学习
【从零开始学习深度学习】37. 深度循环神经网络与双向循环神经网络简介
【从零开始学习深度学习】37. 深度循环神经网络与双向循环神经网络简介
|
1月前
|
网络协议 安全 算法
网络空间安全之一个WH的超前沿全栈技术深入学习之路(9-2):WireShark 简介和抓包原理及实战过程一条龙全线分析——就怕你学成黑客啦!
实战:WireShark 抓包及快速定位数据包技巧、使用 WireShark 对常用协议抓包并分析原理 、WireShark 抓包解决服务器被黑上不了网等具体操作详解步骤;精典图示举例说明、注意点及常见报错问题所对应的解决方法IKUN和I原们你这要是学不会我直接退出江湖;好吧!!!
|
4月前
|
网络协议 安全 网络安全
网络术语、接口和协议简介
网络术语、接口和协议简介
57 1
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
深度学习中的卷积神经网络(CNN)简介
【8月更文挑战第30天】在人工智能的浪潮中,深度学习以其强大的数据处理能力成为时代的宠儿。本文将深入浅出地介绍深度学习的一个重要分支——卷积神经网络(CNN),并探讨其如何在图像识别等领域大放异彩。通过实例,我们将一窥CNN的神秘面纱,理解其背后的原理,并探索如何利用这一工具解锁数据的深层价值。