网络原型实现:从应急场景到信息网络集成
1. 网络虚拟化与原型概述
网络虚拟化是未来网络发展的一个重要趋势。通过原型实现,我们展示了提供和管理虚拟网络(VNets)所需的技术要素以及如何高效组合这些要素。当前,原型的主要构建模块,如节点虚拟化技术和用于虚拟链路设置的数据包封装/解封装技术,都已具备。这表明在不久的将来,向全网络虚拟化的转变是可行的。
2. 应急场景下的实时自适应原型
2.1 原型元素
2.1.1 分层架构(Strata)
分层架构从宏观角度看待网络架构框架,超越了 OSI 分层概念,支持采用模块化和灵活的“黑盒”方法设计网络架构。这意味着通过定义适当的外部接口,特定的网络功能可以在任何软件或硬件平台上实现。分层架构由一组通用层组成,每层在网络中发挥特定作用。例如,知识层和治理层在该架构中被实例化。引导层组件在网络节点启动时起着特殊作用,它首先协助机器层启动,然后再启动知识层和治理层。从那时起,各层以及整个网络域都可以实现自我管理。分层架构为原型提供了自我管理网络功能的整体框架和接口,以及网络域的自动创建和组合功能。
2.1.2 基于组件的架构(CBA)
为了支持将网络特征封装为独立部署的单元,网络组件需要与环境和其他组件明确分离。基于组件的架构(CBA)负责定义这些组件、它们之间的关系以及在架构框架设计库中的功能。在分层和网络单元的更高抽象层次上,CBA 提供了可在组合过程中使用的功能块(组件)和互操作性单元(契约)。CBA 原型开发并部署了一个完全模块化的 IPv4 网络栈。该栈的组件(ARP、RARP、IP、命名、TCP、UDP)用 Java 开发,源自 JNode OS。通过添加 SocketAPI、网络设备管理器和网络层管理器,该原型现在可以在 OSGi 环境中为每个组件提供服务功能,从而实现面向服务的网络栈。与大多数操作系统中传统的整体式配置不同,CBA 网络栈具有以下三个主要特点:
- 虚拟化网络接口硬件和操作系统支持。
- 通过套接字 API 实现与现有应用程序的透明集成。
- 提供简单的开发和部署环境。
此外,CBA 还提供了标准的设计、开发和部署流程,允许设计者选择所需的组件,分配现有组件或开发新组件,将这些组件分配给网络节点,然后根据需要将这些节点部署到虚拟网络中。
2.1.3 网络内管理(INM)
网络内管理(INM)是一种支持未来互联网大型网络有效管理的方法,它实现了去中心化、自组织和自治。其基本思想是将管理任务从网络外部的管理站委托给网络本身,从而将智能嵌入网络。这使得网络节点能够自主执行管理功能,实现自主重新配置或自我修复。为了在原型中实现这一愿景,创建了一个 INM 框架,每个网络元素或设备都具有相关的处理和通信功能。这些元素或设备与相邻的对等实体进行通信,并能够监控和配置本地参数。这些实体的集合形成了一个管理平面,这是网络内部的一层管理功能,在知识层执行监控任务,在治理层执行控制任务。INM 实体是治理层和知识层的元素,部署哪些 INM 实体是这些层设计阶段的一部分。
在这个原型实现中,INM 框架提供了支持自组织的 INM 算法的通用最小功能,包括 INM 算法的命名方案、发现机制、目标控制的组织接口和操作员的可视化接口。从功能角度来看,原型集成了对全网指标的实时监控和本地自我优化触发功能,这些功能可应用于网络动态流量波动管理和拥塞修复。通过“INM 监控”的闲聊协议,可以以低成本估计全网拥塞状态,同时节省资源消耗。当网络拥塞超过预配置的阈值时,“INM 监控”会自动调用基于涌现行为的“拥塞控制”INM 算法。此时,网络拥塞可以通过多条可能的路由进行有效分配和平衡,必要时还可以详细显示每个路由器的拥塞状态和可用路径。
INM 实现了具有可靠行为的分布式管理功能。为了实现这一重要特性,分布式系统的关键属性被纳入设计(如性能、及时性等),并成为管理接口的一部分(如通过组织接口的目标)。对这些属性的控制是将 INM 应用于未来互联网运营网络的重要要求,原型也对这一概念进行了验证。为了支持互操作性概念,原型还实现了一个服务级别协议(SLA)管理器,它提供了一个带有元数据和语义的契约机制,与网络组件接口和功能相关。这个组件契约是互操作性和组合的基础,允许在异构网络之间协商 SLA,并验证 SLA 是否被违反。在原型中,SLA 管理器模块控制域间 SLA 管理过程。它与发现的相邻域中的 SLA 管理器建立通信通道,负责与相邻域协商 SLA。它还处理从知识层接收到的测量数据,并在预编程的警报阈值被违反时通知治理层,例如通知拥塞控制模块。当预编程的不可接受级别阈值被违反时,它会根据预编程的策略自动与邻居重新协商 SLA。
2.2 实现场景
从应用角度来看,该原型能够实现大规模网络的实时管理。在未来互联网中,应急场景是一个重要的应用场景,其特点是动态性和及时适应性需求。例如,在自然灾害发生后,应急团队需要提供救援,但网络基础设施遭到严重破坏。此时,可以启动多个网络域,并进行 SLA 协商,以实现医疗团队节点流量在两个域之间的传输。
原型启动了四个不同的域:
- 固定运营商(FO)网络
- 应急医疗团队(EMT)网络
- 临时灾难恢复(AHDR)网络
- 应急响应指挥(ERC)网络
这个场景的挑战在于建立和维护良好的服务质量,以确保与应急团队的可靠连接。传统上,在紧急情况下会使用互联网作为可靠连接的工具,但会保留传统电话线。主要限制是网络中没有设置动态重新配置的机制。而这里提出的增强架构提高了此类网络的性能。知识层和治理层用于在网络的各个区域实施必要的控制循环。INM 实体中实现的监控算法确保了实时控制大规模网络所需的可扩展性。SLA 管理器负责不同域之间的协商。CBA 架构中集成的分布式管理功能保证了在紧急情况下的可靠性。
为了实现这一目标,“分层架构”支持动态域成员资格,“INM 框架”支持在域内发现管理功能,“SLA 管理器”支持在域之间协商具有特定 QoS 参数的服务。在 SLA 协商方面,“SLA 管理器”代表医疗团队的客户端节点在 EMT 网络和 FO 网络之间进行域间协商,创建 SLA。原型的“INM 监控”模块用于监控 SLA 合规性。
当网络处于稳定状态时,为了突出网络的动态性和及时适应性需求,对 FO 网络施加了模拟拥塞。“INM 监控”检测到 FO 网络中的拥塞增加,从而启动原型的“拥塞控制”模块,通过路由策略缓解拥塞。同时,EMT 域中的“SLA 管理器”通过与 AHDR 网络协商备用服务来制定应急计划。当 FO 网络中的拥塞急剧增加时,“INM 监控”模块将拥塞升级情况通知知识层。治理层根据知识层的信息通知“SLA 管理器”拥塞情况,由于 SLA 被违反,EMT 网络中的“SLA 管理器”决定将服务级别协议从 FO 域切换到 AHDR 域。
2.3 应急原型结论
应急场景下的实时自适应原型通过分层架构的整体和系统方法,展示了网络域的自组织和自部署能力。原型还展示了 CBA 如何提供基于面向服务架构的网络栈,从而实现更灵活和模块化的网络功能。这种方法为网络开发者(协议或功能)提供了以下优势:
- Java 环境,不依赖于任何操作系统。
- 缩短修订/测试周期(无需重启内核)。
- 更易于调试,可完全访问最新的 Java 应用工具集。
- 提高稳定性,用户级开发,不稳定的协议组件仅影响应用程序,而不影响整个系统。
INM 框架和用于监控和拥塞控制的算法提供了分布式域级拥塞检测功能,可选的自我修复能力,同时允许域所有者在目标级别管理其域。最后,原型突出了通过域级 SLA 协商实现的互操作性,通过分层架构对不同网络架构的封装实现了 SLA 切换网络。
3. 集成通用路径和信息网络(NetInf)原型
3.1 通用路径原型实现
通用路径(GP)架构采用面向对象的方法设计网络组件,同时保持其接口和基本结构的一致性。这使得网络可以由组件任意组合,并且在运行时可以根据任何跨层信息轻松调整网络功能的组合。该架构中修改或集成的数据传输方面的示例包括路由、移动性、协作和编码技术以及资源分配。
GP 架构的基本构建块包括实体(Entities)、端点(Endpoints)、钩子(Hooks)和核心(Core)。为了能够在各种环境(如 Linux、Windows 和嵌入式系统)中使用原型(即实体、端点和核心的实现),采用了 C++ 以提高效率,并严格将逻辑部分的实现与特定于环境的部分分离。具体来说,测试平台抽象了执行环境功能,例如将钩子映射到可用的 IPC 机制。专门的实体和核心实现(如点对点实体)只需使用这些抽象。这样,实体和核心实现(即其中包含的协议、路由策略、移动性方案、数据编码等)可以在不同环境中使用,而无需进行修改。
通过面向对象编程范式的继承机制实现了这种分离。具体做法是,在一个名为 AbstractTimeoutManager 的根类中实现所有执行环境的抽象功能(如超时和回调处理),在 AbstractCore 和 AbstractEntity 中实现所有 GP 架构功能(如钩子处理、端点创建和名称解析)。从 AbstractEntity 派生的包装类(如 PosixEntity 和 OmnetEntity)将这些抽象映射到适当的执行环境 API。然后,在编译时选择一个包装类派生一个实体类。新的、与环境无关的实体类从这个类继承,而特定于环境的实体则直接从包装类继承。
目前,已经有适用于 POSIX 兼容系统(如 Linux、BSD 和 Darwin(Mac OS X))、Windows 和 OMNeT++(一个开源离散事件模拟器)的可用包装类。OMNeT++ 的包装类在开发阶段特别有用,并且可以用于展示可扩展性,同时可以通过 POSIX/Windows 包装类在实际场景中使用该实现。未来的工作包括为 OpenFlow 实现一个包装类。
对于端点,也存在类似的继承关系。根类只包含所有可能的端点类型共有的基本 GP 功能。这意味着这些功能独立于任何通信范式(如发布/订阅与发送/接收),并且独立于最终派生端点实例化的任何分区。因此,端点根类主要包含所有端点类型共有的管理功能。除了专注于数据传输的基本 GP 架构元素外,原型实现还完全实现了名称解析框架,从而为构建复杂的网络系统提供了所有必要的功能。
3.2 信息网络(NetInf)原型实现
NetInf 原型主要关注两个方面:开发所谓的 NetInf 节点(NINs)和构建由 NetInf 节点组成的整体信息中心网络(ICN)架构。通常,每个 NetInf 节点既可以作为信息中心请求的服务器,也可以作为客户端。每个 NetInf 节点提供一个信息中心的应用程序编程接口(API),称为 NetInf API。其主要原语包括搜索信息和将信息标识符(IDs)解析为适当的内容定位器。因此,NetInf 节点可以构建自组织网络,并对相邻的 NetInf 节点执行信息中心请求。
此外,原型集成了专门的 NetInf 节点,这些节点可以提供全局规模的搜索和查找服务,从而为其他节点(客户端)提供一个基础设施,以便轻松实现各种信息中心应用程序。NetInf 原型基于接口设计模式,以确保灵活性。它用 Java 实现,以实现平台独立性和设备的灵活选择。特别注意选择库,以使框架也能在移动设备上使用。目前,代码可以在 FreeBSD、Linux、Windows 和 Android 上运行。插件概念基于 Google 的轻量级依赖注入框架 Guice。Guice 用于两个特定目的:一是用于从多个组件构建信息中心节点,使节点的构建更加灵活;二是用于实现组件之间的依赖注入,提高代码的可维护性和可测试性。
3.3 原型集成优势
将通用路径和信息网络原型集成在一起,可以创建一个强大的原型测试平台,同时涵盖信息中心网络和先进的数据传输机制。这种紧密集成的好处包括实现适应 NetInf 的数据传输机制,这些机制需要中间节点具备特定功能,例如数据和元数据的缓存功能。通过这种集成,可以展示信息中心网络和数据传输机制之间的协同工作,为未来网络的发展提供了一个有价值的参考。
综上所述,这些原型实现展示了网络技术在不同方面的创新和发展,从应急场景下的实时自适应到信息网络与通用路径的集成,为未来网络的设计和实现提供了重要的思路和方法。通过这些原型,我们可以看到网络虚拟化、模块化架构、分布式管理和信息中心网络等技术的潜力,以及它们如何共同推动网络技术向更加灵活、高效和智能的方向发展。
以下是应急场景下网络管理流程的 mermaid 流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px
A([网络稳定状态]):::startend --> B{模拟 FO 网络拥塞}:::decision
B -->|是| C(INM 监控检测拥塞):::process
C --> D(启动拥塞控制模块):::process
D --> E(拥塞控制模块缓解拥塞):::process
C --> F(SLA 管理器制定应急计划):::process
F --> G(SLA 管理器与 AHDR 网络协商备用服务):::process
B -->|否| A
E --> H{拥塞急剧增加}:::decision
H -->|是| I(INM 监控通知知识层):::process
I --> J(治理层通知 SLA 管理器):::process
J --> K(SLA 管理器切换 SLA 到 AHDR 域):::process
H -->|否| E
以下是 GP 架构实体继承关系的表格:
| 类名 | 继承关系 | 说明 |
| — | — | — |
| AbstractTimeoutManager | 根类 | 实现执行环境的抽象功能,如超时和回调处理 |
| AbstractCore | 从 AbstractTimeoutManager 继承 | 实现 GP 架构的核心功能,如钩子处理、端点创建和名称解析 |
| AbstractEntity | 从 AbstractCore 继承 | 提供实体的基本功能和接口 |
| PosixEntity | 从 AbstractEntity 继承 | 将抽象功能映射到 POSIX 环境的 API |
| OmnetEntity | 从 AbstractEntity 继承 | 将抽象功能映射到 OMNeT++ 环境的 API |
| 特定实体类 | 从 PosixEntity 或 OmnetEntity 继承 | 实现特定的协议和功能 |
| 与环境无关的实体类 | 从特定实体类继承 | 不依赖于特定环境,可在多种环境中使用 |
4. 原型技术对比与总结
4.1 不同原型技术特点对比
为了更清晰地了解应急场景实时自适应原型和集成通用路径与信息网络(NetInf)原型的特点,下面通过表格进行对比:
| 原型类型 | 核心技术 | 优势 | 适用场景 |
| — | — | — | — |
| 应急场景实时自适应原型 | 分层架构(Strata)、基于组件的架构(CBA)、网络内管理(INM)、服务级别协议(SLA)管理器 | 自组织和自部署网络域,提供灵活模块化网络功能,支持动态域成员资格和互操作性,分布式拥塞检测和自我修复能力 | 应急场景,如自然灾害后网络基础设施受损,需要实时管理和及时适应动态变化的大规模网络 |
| 集成通用路径和信息网络(NetInf)原型 | 通用路径(GP)架构、信息网络(NetInf)架构 | 实现信息中心网络和先进数据传输机制的紧密集成,支持数据和元数据缓存等中间节点功能 | 对信息中心网络和高效数据传输有需求的场景,可用于构建复杂网络系统 |
4.2 原型技术的发展趋势
从这些原型实现可以看出,未来网络技术的发展趋势包括:
-
模块化与灵活性
:如 CBA 和 GP 架构所展示的,模块化设计允许网络组件独立开发和部署,提高了网络的灵活性和可扩展性。开发者可以根据需求选择和组合不同的组件,快速适应不同的网络场景。
-
分布式管理
:INM 框架体现了分布式管理的重要性。将管理功能嵌入网络节点,实现去中心化和自组织,能够提高网络的自治能力和可靠性,减少对外部管理站的依赖。
-
信息中心网络
:NetInf 原型代表了信息中心网络的发展方向。以信息为中心的设计,使得网络更加关注信息的获取和传输,而不是传统的基于主机的通信模式,有助于提高信息检索和共享的效率。
-
跨环境兼容性
:无论是 GP 原型采用 C++ 实现逻辑与环境分离,还是 NetInf 原型使用 Java 实现平台独立,都强调了网络技术在不同环境(如不同操作系统和设备)中的兼容性和可移植性。
4.3 原型技术面临的挑战
尽管这些原型技术具有很大的潜力,但也面临一些挑战:
-
标准化问题
:不同的架构和协议需要统一的标准,以确保互操作性和兼容性。例如,在 SLA 协商和跨域通信中,需要制定通用的标准和规范。
-
性能优化
:在大规模网络中,如何保证分布式管理和信息中心网络的性能是一个关键问题。例如,INM 算法的性能和及时性需要进一步优化,以满足实时管理的需求。
-
安全与隐私
:随着网络功能的增强和数据的集中化,安全和隐私问题变得更加突出。需要设计有效的安全机制,保护网络和信息的安全。
5. 实际应用建议
5.1 应急场景应用建议
- 前期规划 :在应急场景发生前,提前规划网络架构,确定分层架构的层次和功能,以及各个域的角色和关系。例如,明确 FO 网络、EMT 网络、AHDR 网络和 ERC 网络的职责和通信方式。
- SLA 预配置 :预先设置合理的 SLA 阈值和协商策略。例如,确定不同网络拥塞程度下的 SLA 调整规则,以及备用服务的协商条件。
- 定期演练 :定期进行应急场景模拟演练,测试 INM 框架和 SLA 管理器的功能,确保在实际应急情况下能够快速响应和有效处理。
5.2 通用路径和 NetInf 集成应用建议
- 环境适配 :根据实际应用环境选择合适的 GP 原型包装类和 NetInf 原型运行环境。例如,在 POSIX 兼容系统中使用 PosixEntity 包装类,在移动设备上使用支持 Java 的 Android 环境。
- 功能定制 :根据具体需求定制 GP 架构的组件和 NetInf 节点的功能。例如,集成特定的路由策略或搜索算法,以满足不同的信息传输和检索需求。
- 测试与优化 :在实际部署前进行充分的测试,优化系统性能。例如,测试数据缓存和传输的效率,调整相关参数以提高系统的响应速度和吞吐量。
以下是实际应用中应急场景网络管理步骤的列表:
1. 网络初始化:启动各个网络域,包括 FO 网络、EMT 网络、AHDR 网络和 ERC 网络。
2. SLA 协商:在不同域之间进行 SLA 协商,确定服务级别和通信规则。
3. 实时监控:使用 INM 监控模块实时监测网络状态,特别是拥塞情况。
4. 拥塞处理:当检测到拥塞时,启动拥塞控制模块,调整路由策略缓解拥塞。
5. 应急响应:如果拥塞加剧,SLA 管理器根据预配置的策略切换 SLA 到备用域。
以下是通用路径和 NetInf 集成应用流程的 mermaid 流程图:
graph LR
classDef startend fill:#F5EBFF,stroke:#BE8FED,stroke-width:2px
classDef process fill:#E5F6FF,stroke:#73A6FF,stroke-width:2px
classDef decision fill:#FFF6CC,stroke:#FFBC52,stroke-width:2px
A([选择应用环境]):::startend --> B{选择 GP 包装类}:::decision
B -->|POSIX 系统| C(使用 PosixEntity):::process
B -->|Windows 系统| D(使用 Windows 包装类):::process
B -->|OMNeT++ 模拟| E(使用 OmnetEntity):::process
C --> F(定制 GP 组件功能):::process
D --> F
E --> F
F --> G(选择 NetInf 运行环境):::process
G --> H(定制 NetInf 节点功能):::process
H --> I(测试与优化系统):::process
I --> J([实际部署应用]):::startend
综上所述,这些网络原型技术为未来网络的发展提供了新的思路和方法。通过深入研究和应用这些技术,我们可以构建更加灵活、高效、智能和可靠的网络系统,以满足不断变化的网络需求。同时,我们也需要关注技术面临的挑战,不断进行优化和改进,推动网络技术的持续发展。
超级会员免费看
1328

被折叠的 条评论
为什么被折叠?



