Mininet 应用与源码剖析
  • 前言
  • 概述
    • 主要特性
    • 安装
  • 基本使用
    • 创建网络
    • 查看信息
    • 节点操作
  • 常用操作
    • 快捷测试
    • 自定义拓扑
    • 使用友好的 MAC 编号
    • 使用 XTerm
    • 链路操作
    • 指定交换机跟控制器类型
    • 名字空间
    • 启动参数总结
    • 常用命令总结
    • 其他操作
  • 高级功能
    • 使用 dpctl
    • 控制器
    • 交换机与控制器交互
    • 使用 NOX
    • 外部读取配置命令
  • 代码结构
    • 运行相关
    • 安装相关
    • 核心代码
    • 说明文件
    • 其它
    • 整体逻辑功能
  • mininet.link 模块
    • mininet.link.Intf
    • mininet.link.Link
    • mininet.link.TCIntf
    • mininet.link.TCLink
  • mininet.node 模块
    • 基类
    • 主机类
    • 控制器类
    • 交换机类
  • mininet.net 模块
    • mininet.net.Mininet
    • mininet.net.MininetWithControlNet
  • mininet.topo 模块
    • mininet.topo.MultiGraph
    • mininet.topo.Topo
    • mininet.topo.LinearTopo
    • mininet.topo.SingleSwitchTopo
    • mininet.topo.SingleSwitchReversedTopo
  • 其它模块
    • mininet.cli 模块
    • mininet.clean 模块
    • mininet.log 模块
    • mininet.moduledeps 模块
    • mininet.term 模块
    • mininet.util 模块
  • 运行代码和示例
    • mn
    • 示例程序
Powered by GitBook
On this page

Was this helpful?

  1. 高级功能

交换机与控制器交互

我们可以启动一个简单的控制器,默认没有任何流表项,仅仅作为一台带学习功能的交换机。控制器默认监听端口是 6633。

以下控制器与交换机之间的消息交互过程,可以通过 wireshark,配置 of 过滤器观察到交换机跟控制器之间的交互消息。 参见下面的表格。

消息

类型

描述

Hello

Controller->Switch

跟着 TCP 握手,控制器发送它的版本号到交换机。

Hello

Switch->Controller

交换机回复它支持的版本。

Features Request

Controller->Switch

控制器询问可用端口。

Set Config

Controller->Switch

控制器让交换机发送流超时消息。

Features Reply

Switch->Controller

交换机回复端口、端口速度、支持的表和行动。

同样,我们可以用 wireshark 观察到当第一次有 ping 包从 h2 发到 h3 时,控制器如何自动添加相应的表项到交换机。wireshark 相应的过滤器为 of && (of.type != 3) && (of.type != 2)。

相关的消息过程参考下面的表格。

消息

类型

描述

Packet-In

Switch->Controller

网包到达交换机,没有发生匹配,发送到控制器。

Packet-Out

Controller->Switch

从交换机端口发出包。

Flow-Mod

Controller->Switch

添加指定流。

Flow-Expired

Switch->Controller

流超时。

Previous控制器Next使用 NOX

Last updated 5 years ago

Was this helpful?