SDN 网络系统之 Mininet 与 API 详解 Mininet 是轻量级的软件定义网络系统平台,同时提供了对 OpenFlow 协议的支持。...Mininet 实现的特性 支持 OpenFlow、OpenvSwitch 等软定义网路部件 支持系统级的还原测试,支持复杂拓扑,自定义拓扑等 提供 Python API, 方便多人协作开发 很好的硬件移植性与高扩展性...Python API OpenFlow 与自定义路由机制 Mininet 的最强大和最有用的功能之一是它使用的软件定义网络(Software Defined Network).使用的 OpenFlow...图 3.Mininet 相关文件示例 mn 执行文件 mn 是一个 Python 代码文件是程序执行的解释器,定义 MininetRunner 类,为整个测试创建基础平台。...cli.py:定义 CLI 类,在 mn 运行后提供简单的命令行接口,解析用户键入的各项命令。
一、扩展为服务 1.1 定义服务接口 首先,在onos-api包下定义一个新的服务的接口,该包目录是${ONOS_ROOT}/core/api/src/main/java/org/onosproject...接口文件放在此处的意义在于只有这样cli的包才能访问到它,而cli包正是实现命令行命令的包。 ? ?...类。...2.1 新建一个command类 在第二个目录下,创建一个名为ForwardingMapCommand的类文件。...3.2 启动Mininet,构建测试网络 新开一个命令行界面,在此界面下开启mininet(默认是本地启动,所以ip是127.0.0.1): sudomn --topo=tree,2,2 --controller
git clone git://github.com/floodlight/floodlight.git #tools sudo apt-get install build-essential ant python-dev.../usr/bin/python #创建网络拓扑 """Custom topology example Adding the 'topos' dict with a key/value pair to generate.../usr/bin/python from mininet.topo import Topo from mininet.net import Mininet from mininet.util import...from mininet.cli import CLI class LinearTopo(Topo): "" """Linear topology of k switches, with...RemoteController, ip='127.0.0.1', port=6653,autoSetMac = True) #start the network net.start() CLI
/usr/bin/python import time from mininet.net import Mininet from mininet.node import Controller, RemoteController..., OVSKernelSwitch,UserSwitch from mininet.cli import CLI from mininet.log import setLogLevel from mininet.link...**" net.build() c0.start() s1.start( [c0] ) s2.start( [c0] ) print "*** Running CLI...setLogLevel( 'info' ) topology() 运行脚本 python router.py 两个交换机下发转发规则: root@guest-virtual-machine:/...=output:2 root@guest-virtual-machine:/home/guest# ovs-ofctl add-flow s2 in_port=2,actions=output:1 在CLI
Mininet是一款非常轻巧但是功能很强大的网络模拟器。网络研究者可以使用Mininet创建支持OpenFlow的SDN拓扑。...start函数在UserSwitch和OVSSwitch等交换机类中均有对应实现。所以,只需在启动交换机时,传入对应的控制器列表即可。.../usr/bin/python """ This example create 7 sub-networks to connect 7 domain controllers...Hope it will work perfectly. """ from mininet.net import Mininet from mininet.node import...Controller, RemoteController, OVSSwitch from mininet.cli import CLI from mininet.log import
1.获取目录下的文件 递归遍历文件目录下的所有文件/目录的File public static void getAllFilePath(File srcFile...
Java项目部署运行后,如果怀疑某个类的修改没有生效,一般可以重新打包,但是使用流水线后一般也需要几分钟,要么就把jar包下载到被动,用IDE打开类来确认,但是这些方法一般都需要一些时间。...所以本文介绍jd-cli工具,可以直接在服务器上反编译类 jd-cli依赖的是著名的JD-Core 下载地址 https://github.com/kwart/jd-cli/releases/tag.../jd-cli-1.2.0 用法示例 ➜ proxy java -jar jd-cli.jar target/classes/com/tenmao/proxy/BaiduApi.class 23:37...:58.721 INFO com.github.kwart.jd.cli.Main - Decompiling target/classes/com/tenmao/proxy/BaiduApi.class...](jd-cli - Command line Java Decompiler) [https://github.com/java-decompiler](Java Decompiler)
如果我们需要操作一个很大的整数,它无法用long来表达时,就可以用BigInteger add() 加 subtract() 减 multiply() 乘 divide() 除 mod() 取余 包装类...Ø JDK提供了对所有数据类型的包装类 byte >>> Byte short >>> Short int >>> Integer long >>> Long double >>> Double float...>>> Float char >>> Character boolean >>> Boolean 包装类的常用方法 toString方法 parseInt方法:Integer.parseInt(String...s) valueOf方法:Double.valueOf(String s) 时间类 Date 使用new Date()创建时间对象代表当前系统时间 需要使用DateFormat类来进行格式化,才能显示想符合习惯的格式...period) schedule(TimerTask task, long delay) schedule(TimerTask task, long delay, long period) 系统类
3.5 Mininet测试环境安全配置 Mininet是一个常用的SDN网络仿真工具,用于测试SDN应用和协议。...8.1.1 环境准备 # 安装依赖 sudo apt-get update sudo apt-get install -y git python3-pip python3-dev build-essential...clone https://github.com/mininet/mininet sudo mininet/util/install.sh -a # 安装Ryu pip3 install ryu 8.1.2.../usr/bin/env python from mininet.topo import Topo from mininet.net import Mininet from mininet.node...import RemoteController from mininet.link import TCLink from mininet.cli import CLI class SDNTopo(Topo
Objects类总结 一、Object类 1.Object类介绍 Object类是所有类的父类,一个类都会直接或者间接的继承自该类 该类中提供了一些非常常用的方法!...2020 System.out.println(text);//2020-02-17 20:13:14||2020年02月17日 20时14分48秒 } } 练习使用日期时间相关的API...import java.text.SimpleDateFormat; import java.util.Date; import java.util.Scanner; /* 练习: 请使用日期相关的API...,在System类的API文档中,常用的方法由: - public static long currentTimeMillis():返回以毫秒为单位的当前时间。...字符串缓冲区,可以提高字符串的效率 根据StringBuilder的API文档,常用构造方法有2个: public StringBuilder() :构造一个空的StringBuilder容器。
现在后端开发基本上都是写各种API提供给别人使用,我在日常工作里既写API,也经常调用别人写的API。 分享一下经常使用的调用API的模块。 看代码之前会有一些假设,可以帮助理解代码。...一些假设 假设我们有一个API是: http://127.0.0.1:8000/api/token , 这个详细信息可以参考simple jwt 。 我在这里给一个简单的接口文档,如下。...): """ 新建一条数据 """ self.request_jwt() api_url = f"{self.api_url...}{api}" try: response = requests.post( api_url, data=json.dumps(...f"{self.api_url}{api}" self.request_jwt() try: response = requests.patch
在Coursera SDN开放课程中,编程作业要用Mininet来完成。这里对Mininet做一个简单的介绍。 ...如Wireshark Mininet支持Openflow,在Mininet上运行的代码可以轻松移植到支持OpenFlow的硬件设备上 Mininet可以在自己的电脑,或服务器...,或虚拟机,或者云(例如Amazon EC2)上运行 Mininet提供python API,简单易用 Mininet是开源项目,源代码在这里:点击打开链接 Mininet安装...import Topo from mininet.net import Mininet from mininet.node import CPULimitedHost from mininet.link...mininet@mininet-vm:~/mininet$ sudo python CustomTopo.py
本期介绍 本期主要介绍常用API——String类、Math类 文章目录 1. String类 1.1 String类概述 1.2 使用步骤 1.3 常用方法 1.4 String类的练习 2. ...Math类 2.1 概述 2.2 基本运算的方法 2.3 练习 1. String类 1.1 String类概述 概述 java.lang.String 类代表字符串。...Math类 2.1 概述 java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。...类 似这样的工具 类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单。...(相当于四舍五入方法) 2.3 练习 请使用 Math 相关的 API ,计算在 - 10.8 到 5.9 之间,绝对值大于 6 或者小于 2.1 的整数有多少 个?
一、VMware虚拟机安装 直接安装就行了 百度网盘:https://pan.baidu.com/s/1Jw3ypreqmOqF4vgsXAEz2Q 二、mininet安装 sudo apt install...mininet 选择Y 然后就开始安装下载了,让他跑一会吧 跑完之后就是这样了 测试一下,看看效果 sudo mn mininet已经按装好了,如果你只需要mininet...apt install git 获取源码 git clone git://github.com/mininet/mininet 只安装openflow1.3和openv switch2.3.0...mininedit 在mininet有个可视化工具miniedit可以快速创建拓扑,下面来看一下 sudo mininet/examples/miniedit.py 会弹出这样的一个界面,...就可以在里面创建你的拓扑了 这里随便创建一个拓扑 在状态来设置edit-preferences,将start CLI和openflow1.3点上,ok 运行一下,点run,
0x00 Mininet 尝试理解一下mininet,话说mininet是基于python编写的,代码结构清晰,简直清醒脱俗((≧▽≦)/啦啦啦),附上链接mininet,mark一下。...0x01 Important classes, methods, functions 简单记录一下比较重要的类和方法 Important classes, methods, functions and.../usr/bin/python from mininet.topo import Topo from mininet.net import Mininet from mininet.util import...只能使用python2使用python3不行,即使用外部库也不行, 二.PyCharm配置root运行文件 一开始我没有使用shell来运行,而是使用了PyCharm来跑,然后出现了一个问题,就是Mininet.../bin/bash sudo python $* 给sh文件赋予权限: cd /usr/bin/ sudo chmod a+x python_sudo.sh 编辑visudo(其他工具有点问题): sudo
本期介绍 本期主要介绍常用API——日期时间类、System类 文章目录 1. 日期时间类 1.1 Date类 1.2 DateFormat类 1.3 练习 1.4 Calendar类 2. ...格式规则 常用的格式规则为: 备注:更详细的格式规则,可以参考 SimpleDateFormat 类的 API 文档 0 。...format 方法 使用 format 方法的代码为: parse 方法 使用 parse 方法的代码为: 1.3 练习 请使用日期时间相关的 API ,计算出一个人已经出生了多少天...public static Calendar getInstance() :使用默认时区和语言环境获得一个日历 例如: 常用方法 根据 Calendar 类的 API 文档,常用方法有...System类 java.lang.System 类中提供了大量的静态方法,可以获取与系统相关的信息或系统级操作,在 System 类的 API 文 档中,常用的方法有: public
Java常用API(ArrayList类) 我们为什么要使用ArrayList类?...为了更加方便的储存对象,因为使用普通的数组来存储对象太过麻烦了,因为数组的一个很大的弱点就是长度从一开始就固定了,所以Java提供了另一个容器 java.util.ArrayList 集合类,让我们可以更便捷的存储和操作对象数据...所以从上面的介绍就可以看出所谓的ArrayList类就是一个长度可变的数组。...这里java给我们提供的包装类,(所谓包装类就是将基本数据类型包装为对象)后面我在写一篇文章展开详细的叙述 ? 构造方法献上: public ArrayList() :构造一个内容为空的集合。...arrayList.add(new man(18,"wangwu",99)); System.out.println(arrayList); } } Person类
Java常用API(Math类) Math类的作用 java.lang.Math 类包含用于执行基本数学运算的方法,如初等指数、对数、平方根和三角函数。...类似这样的工具 类,其所有方法均为静态方法,并且不会创建对象,调用起来非常简单。...Math类的常用方法 public static double abs(double a );返回绝对值 public static double ceil(double a) :返回大于等于参数的最小的整数...向上取整:"+Math.ceil(a)); 7 System.out.println("四舍五入:"+Math.round(a)); 8 9 } 10 } 以上就是Math类的一些基本操作...,更多方法查询API文档 若有错误还请各位读者批评指正
Java常用API( Scanner类)1 1.Scanner类 首先给大家介绍一下什么是JavaAPI API(Application Programming Interface),应用程序编程接口...Java API是一本程序员的 字典 ,是JDK中提供给 我们使用的类的说明文档。这些类将底层的代码实现封装了起来,我们不需要关心这些类是如何实现的,只需要学 习这些类如何使用即可。...所以我们可以通过查询API的方式,来学习Java提供的类,并得知如何使用它们。...注:javaAPI中的类我们不需要去一个个背,我们只需要掌握一些最基本的,其他的需要的时候去看API就好了 Java各个版本的API可以去java的官网下载, java.lang包下的类不用导入 Scanner...类 什么是Scanner类?