前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >fs学习笔记(一)

fs学习笔记(一)

作者头像
forrestlin
发布2018-05-23 17:50:47
9450
发布2018-05-23 17:50:47
举报
文章被收录于专栏:蜉蝣禅修之道蜉蝣禅修之道

fs是一个网络仿真工具,由Joel Sommers用Python编写的,它与传统的仿真工具不同,例如ns-2,传统的仿真工具是基于包层次的,而fs是基于流层次的,听说效率更高。

po主是第一次接触该工具,一些配置还不太清楚,都是根据关于fs的infocom论文来理解的,网上资源太少了。下面通过一个例子讲述一下fs配置文件的属性。

代码语言:javascript
复制
graph test {
    // 3 nodes: a, b, and c
    flowexport=text

    a [ 
        autoack="False"
        ipdests="10.1.0.0/16 10.10.0.0/16 10.128.0.0/9"
        traffic="m1"

        // basic harpoon setup 
        // build up and withdrawal of harpoon sources; 10 sources for duration
        // of 60 sec, followed by 20 sources for 60 sec, etc.
        //  m1="modulator start=0.0 generator=s1 profile=((60,),(10,20,30,30,20,10))"

        m1="modulator start=0.0 generator=s1 profile=((3600,),(1,))"
        s1="harpoon ipsrc=10.1.0.0/16 ipdst=10.3.1.0/24 flowsize=pareto(10000,1.2) flowstart=exponential(100.0) ipproto=randomchoice(6) sport=randomchoice(22,80,443) dport=randomunifint(1025,65535) lossrate=randomchoice(0.001)"
    ];

    b [ 
        autoack="False"
        ipdests="10.2.0.0/16" 
    ];

    c [ 
        autoack="False"
        ipdests="10.3.0.0/16 10.4.0.0/16 10.0.0.0/8" 
    ];

    // links 
    a -- b [weight=10, capacity=100000000, delay=0.043];
    b -- c [weight=10, capacity=100000000, delay=0.031];
    a -- c [weight=30, capacity=100000000, delay=0.123];
}

fs的配置文件可以是dot或者是json格式的,以上的是dot格式。配置文件中,首先定义了拓扑图的名字,然后用大括号包围拓扑图的详细信息。然后拓扑嘛,只有两个元素,节点和链路。

例子中节点数量是3个,a,b,c,每个节点都有可到达的ip以及是否自动ack,其中a节点是网络流量的发起者,因此a节点需要定义流量模块,其流量模块为m1,start属性表示什么时候开始发起流量,profile属性由两个列表组成,都是Python的tuple元组,第一个列表表示流量发起周期,第二个列表表示有几个流同时从源节点处被激活,逗号结尾表示循环。generator属性表示流量的发生器。例子中引用s1,每个发生器都有一个类型,例如s1的类型是harpoon,然后还有源节点和目的节点,注意这两个属性可以是单个元素,也可以是元组,flowsize属性表示流的大小,这里使用服从帕累托分布的随机变量;flowstart属性表示流开始的时间间隔,sport和dport代表源端口和目的端口,lossrate代表流的丢包率。

例子中一共有三条link,a到b,b到c,a到c,其中每条link中weight属性代表dijkstra算法中的边的权重,capacity代表链路带宽,delay代表链路延迟。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2014年05月23日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档