有线和无线结合的模型模拟

14 篇文章 0 订阅

1 拓扑结构


2 程序

#有线无线网络混合模拟


#无线节点参数
set val(chan)       Channel/WirelessChannel    ;# channel type 信道类型:无线信道
set val(prop)       Propagation/TwoRayGround   ;# radio-propagation model 信道模型:TwoRayGround
set val(netif)      Phy/WirelessPhy            ;# network interface type 无线物理层
set val(mac)        Mac/802_11                 ;# MAC type MAC层协议
set val(ifq)        Queue/DropTail/PriQueue    ;# interface queue type
set val(ll)         LL                         ;# link layer type 
set val(ant)        Antenna/OmniAntenna        ;# antenna model
set val(ifqlen)     50                         ;# max packet in ifq
set val(rp)         DSDV                       ;#路由协议
set val(nn)         4                          ;#节点数目
set val(x)          600                       ;
set val(y)          600                       ;
set val(stop)       10.0      ;# time of simulation end


# 建立一个simulator实例
set ns [new Simulator]


#设定分层路由地址
$ns node-config -addressType hierarchical
AddrParams set domain_num_ 2           ;# 2个网络
lappend cluster_num 1 1           ;# 每个网络一个子网
AddrParams set cluster_num_ $cluster_num
lappend eilastlevel 1 3                         ;# 2个子网的节点数目为1和3
AddrParams set nodes_num_ $eilastlevel
puts "Configuration of hierarchical addressing done"


#$ns use-newtrace


#设置trace
set tracefd [open wired_wireless2.tr w]
set namtrace [open wired_wireless2.nam w]
$ns trace-all $tracefd
$ns namtrace-all-wireless $namtrace $val(x) $val(y)


#建立topology对象
set topo [new Topography]
$topo load_flatgrid $val(x) $val(y)






 #创建god
create-god $val(nn)


set sinkNode [$ns node 0.0.0]
$sinkNode set X_ 500
$sinkNode set Y_ 300
$sinkNode set Z_ 0
$ns initial_node_pos $sinkNode 60


set chan_1_ [new $val(chan)]


#无线节点配置
$ns node-config -wiredRouting ON \
                -adhocRouting $val(rp) \
                -llType $val(ll) \
                -macType $val(mac) \
                -ifqType $val(ifq) \
                -ifqLen $val(ifqlen) \
                -antType $val(ant) \
                -propType $val(prop)    \
                -phyType $val(netif) \
-channel $chan_1_  \
                -topoInstance $topo \
                -agentTrace ON \
                -routerTrace ON \
                -macTrace ON    \
                -movementTrace OFF 
                
#新建BS节点
set bs(0) [$ns node 1.0.0]
$bs(0) random-motion 0
 #节点标签与初始位置设定
$bs(0) set X_ 200.0
$bs(0) set Y_ 300.0
$bs(0) set Z_ 0.0
$ns initial_node_pos $bs(0) 60




#定义节点间的链路
$ns duplex-link $sinkNode $bs(0) 10Mb 1ms DropTail


$ns duplex-link-op $sinkNode $bs(0) orient left


#定义链路的队列长度
#$ns queue-limit $bs(0) $sinkNode 10


#监视链路的队列
#$ns duplex-link-op $bs(0) $sinkNode queuePos 0.5


$ns node-config -wiredRouting OFF \
                -macType Mac/802_11
 


#新建SS节点
set ss(0) [$ns node 1.0.1]
$ss(0) base-station [AddrParams addr2id [$bs(0) node-addr]]
$ss(0) set X_ 50.0
$ss(0) set Y_ 450.0
$ss(0) set Z_ 0.0
$ns initial_node_pos $ss(0) 60


set ss(1) [$ns node 1.0.2]
$ss(1) base-station [AddrParams addr2id [$bs(0) node-addr]]
$ss(1) set X_ 50.0
$ss(1) set Y_ 150.0
$ss(1) set Z_ 0.0
$ns initial_node_pos $ss(1) 60


set udp0 [new Agent/UDP]
$ns attach-agent $ss(0) $udp0
set null0 [new Agent/Null]
$ns attach-agent $sinkNode $null0
$ns connect $udp0 $null0
set ugs0 [new Application/Traffic/UGS]
$ugs0 attach-agent $udp0


set udp1 [new Agent/UDP]
$ns attach-agent $sinkNode $udp1
set null1 [new Agent/Null]
$ns attach-agent $ss(1) $null1
$ns connect $udp1 $null1
set ugs1 [new Application/Traffic/UGS]
$ugs1 attach-agent $udp1


$ns at 0.5 "$ugs0 start"
$ns at 1.0 "$ugs1 start"
$ns at 9.0 "$ugs1 stop"
$ns at 9.5 "$ugs0 stop"


proc finish {} {
        global ns tracefd namtrace
        $ns flush-trace
        close $tracefd
        close $namtrace
exit 0
}


#事件安排
$ns at $val(stop) "finish"
$ns at $val(stop) "puts \"NS EXISTING...\"; $ns halt"




puts "Start Simulation..."


# run the simulation
$ns run

3运行截图


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值