CORE 架构

 


1. 主要组成部分

1.1. core-daemon

  • 管理给定网络的节点和链路的仿真会话
  • 节点是使用Linux命名空间创建的
  • 链路是使用Linux网桥和虚拟以太网对等体创建的
  • 通过链路发送的数据包使用流量控制进行处理
  • 通过 CORE 界面控制
  • 提供自定义 TLV API 和 gRPC API
  • 利用小型 C 二进制文件创建节点的 Python 程序

1.2. core-gui

  • GUI 和守护程序通过自定义 TLV API 进行通信
  • 节点和链接的拖放创建
  • 可以在运行会话中为模拟节点启动终端
  • 可以保存/打开场景文件以重新创建以前的会话
  • TCL/TK 编程

1.3. coresendmsg

  • 用于将 TLV API 消息发送到核心守护程序的命令行实用程序

1.4. vcmd

  • 用于向节点发送 shell 命令的命令行实用程序

turing 架构 ampere 架构 tricore架构详解_链路

2. 会话

CORE 可以一次创建和运行多个模拟会话,下面是会话在典型 GUI 交互期间将在之间转换的状态的概述。

turing 架构 ampere 架构 tricore架构详解_API_02

3. 如何工作

CORE 框架在 Linux 上运行并使用 Linux 命名空间来创建节点容器。 这些节点使用 Linux 桥接和虚拟接口链接在一起。 CORE 会话是一组为了特定目的而一起运行的节点和链接。

3.1. Linux

Linux 网络命名空间(也称为 netns)是 CORE 使用的主要技术。大多数最新的 Linux 发行版都有开箱即用的启用命名空间的内核。每个命名空间都有自己的进程环境和私有网络堆栈。网络命名空间在 CORE 中共享相同的文件系统。

CORE 将这些命名空间与 Linux 以太网桥接结合起来形成网络。使用 Linux Netem 排队规则应用链接特性。Ebtables 是 Linux 网桥上的以太网帧过滤。通过使用 ebtables 规则控制哪些接口可以发送和接收来模拟无线网络。

4. 之前的工作

Tcl/Tk CORE GUI 最初源自萨格勒布大学的开源 IMUNES 项目,作为波音研究与技术公司网络技术研究小组于 2004 年的自定义项目。从那时起,他们开发了使用 Linux 命名空间的 CORE 框架, 开发了一个 Python 框架,并进行了大量的用户和内核空间开发,例如支持无线网络、IPsec、分布式仿真、模拟集成等。IMUNES 项目还包括用户空间和内核组件。

5. 开源项目和资源

IPsec、分布式仿真、模拟集成等。IMUNES 项目还包括用户空间和内核组件。

5. 开源项目和资源

波音公司已根据 BSD 许可向开源社区发布了 CORE。 如果您发现 CORE 对您的工作有用,请回馈该项目。贡献可以像报告错误、在邮件列表中留下一行鼓励或技术建议一样简单,也可以包括提交补丁或维护工具的各个方面。