zoukankan      html  css  js  c++  java
  • 2020 SDN上机第三次作业

    实验 3:Mininet 实验——测量路径的损耗率

    一、实验目的

    在实验 2 的基础上进一步熟悉 Mininet 自定义拓扑脚本,以及与损耗率相关的设定;初步了解 Mininet 安装时自带的 POX 控制器脚本编写,测试路径损耗率。

    二、实验任务

    h0 向 h1 发送数据包,由于在 Mininet 脚本中设置了连接损耗率,在传输过程中会丢失一些包,本次实验的目的是展示如何通过控制器计算路径损耗速率(h0s0-s1-h1)。这里假设控制器预先知道网络拓扑。控制器将向 s0 和 s1 发送 flow_stats_request,当控制器接收到来自 s0 的 response 时,将特定流的数据包数保存在 input_pkts 中,当控制器接收到来自 s1 的 response 时,将接收到特定流的数据包数保存在 output_pkts 中,差值就是丢失的数据包数量。 基于上述拓扑,编写 Mininet 脚本,设置特定的交换机间的路径损耗速率,然后编写 POX 控制器脚本,实现对路径的损耗率的测量。

    三、实验步骤

    1. 实验环境

    安装了 Ubuntu 18.04.5 Desktop amd64 的虚拟机

    2. 实验过程
    1. 新建并编辑 pox 脚本 flowstat.py:

      在 pox 安装目录下(Mininet 完整安装包含了 pox)执行以下命令运行 pox 脚本

      $ ./pox.py flow_stats
      
    2. 编辑 Mininet 脚本 mymininet3.py :

      参照拓扑图,新建并编辑 Mininet 脚本 mymininet3.py,控制器因为安装在本机,
      所以需修改参考资料代码中的控制器地址为 127.0.0.1:6633。

      switch.cmd( 'ovs-vsctl set-controller dp0 tcp:127.0.0.1:6633' ) switch1.cmd( 'ovs-vsctl set-controller dp1 tcp:127.0.0.1:6633' ) 
      

      设置 s0 和 s1 之间链路的丢包率为 0

      info( "*** Creating links
      " )     
      linkopts0=dict(bw=100, delay='1ms', loss=0)     
      linkopts1=dict(bw=100, delay='1ms', loss=0) 
      

      再执行命令运行 Mininet 脚本 mymininet3.py

      $ sudo python mymininet3.py 
      

    平均丢包率为 0,结果符合 Mininet 脚本中设置的损耗率,也有可能出现负值,
    可以认为没有丢包。

    1. 更改 s0 和 s1 之间链路的丢包率为10

      info( "*** Creating links
      " )     
      linkopts0=dict(bw=100, delay='1ms', loss=0)     
      linkopts1=dict(bw=100, delay='1ms', loss=10) 
      

    重新运行 Mininet 脚本 mymininet3.py,20 秒时间的 ping 过程中有 icmp_seq 为
    2/4/14/16/19/20 共 6 次 ping 不通,所以丢包率计算为 30%

    POX 端重新测试,会发现出现丢包现象,但是实际测量出的丢包率会有浮动,链
    路的性能总体受到了限制。

    四、总结

    遇到问题:如图

    解决方法:重启虚拟机

  • 相关阅读:
    LeetCode OJ 112. Path Sum
    LeetCode OJ 226. Invert Binary Tree
    LeetCode OJ 100. Same Tree
    LeetCode OJ 104. Maximum Depth of Binary Tree
    LeetCode OJ 111. Minimum Depth of Binary Tree
    LeetCode OJ 110. Balanced Binary Tree
    apache-jmeter-3.1的简单压力测试使用方法(下载和安装)
    JMeter入门教程
    CentOS6(CentOS7)设置静态IP 并且 能够上网
    分享好文:分享我在阿里8年,是如何一步一步走向架构师的
  • 原文地址:https://www.cnblogs.com/huanglong1123/p/13681009.html
Copyright © 2011-2022 走看看