教材3.11:用 NS2 设计和实现有 20 个节点的 WLAN,要求 MAC 层采用 IEEE802.11 相关协议。
源码(来自教材参考):

#===================================
# Simulation parameters setup
#===================================
set val(chan) Channel/WirelessChannel ;# channel type
set val(prop) Propagation/TwoRayGround ;# radio-propagation model
set val(netif) Phy/WirelessPhy ;# network interface type
set val(mac) Mac/802_11 ;# MAC type
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(nn) 20 ;# number of mobilenodes
set val(rp) AODV ;# routing protocol
set val(x) 2283 ;# X dimension of topography
set val(y) 100 ;# Y dimension of topography
set val(stop) 10.0 ;# time of simulation end
#===================================
# Initialization
#===================================
#Create a ns simulator
set ns [new Simulator]
#Setup topography object
set topo [new Topography]
$topo load_flatgrid $val(x) $val(y)
create-god $val(nn)
#Open the NS trace file
set tracefile [open 3.9.tr w]
$ns trace-all $tracefile
#Open the NAM trace file
set namfile [open 3.9.nam w]
$ns namtrace-all $namfile
$ns namtrace-all-wireless $namfile $val(x) $val(y)
set chan [new $val(chan)];#Create wireless channel
#===================================
# Mobile node parameter setup
#===================================
$ns node-config -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 \
-topoInstance $topo \
-agentTrace ON \
-routerTrace ON \
-macTrace ON \
-movementTrace ON
#===================================
# Nodes Definition
#===================================
#Create 20 nodes
set n0 [$ns node]
$n0 set X_ 947
$n0 set Y_ 1191
$n0 set Z_ 0.0
$ns initial_node_pos $n0 20
set n1 [$ns node]
$n1 set X_ 1147
$n1 set Y_ 1191
$n1 set Z_ 0.0
$ns initial_node_pos $n1 20
set n2 [$ns node]
$n2 set X_ 1347
$n2 set Y_ 1191
$n2 set Z_ 0.0
$ns initial_node_pos $n2 20
set n3 [$ns node]
$n3 set X_ 1547
$n3 set Y_ 1191
$n3 set Z_ 0.0
$ns initial_node_pos $n3 20
set n4 [$ns node]
$n4 set X_ 1747
$n4 set Y_ 1191
$n4 set Z_ 0.0
$ns initial_node_pos $n4 20
set n5 [$ns node]
$n5 set X_ 947
$n5 set Y_ 991
$n5 set Z_ 0.0
$ns initial_node_pos $n5 20
set n6 [$ns node]
$n6 set X_ 1147
$n6 set Y_ 991
$n6 set Z_ 0.0
$ns initial_node_pos $n6 20
set n7 [$ns node]
$n7 set X_ 1347
$n7 set Y_ 991
$n7 set Z_ 0.0
$ns initial_node_pos $n7 20
set n8 [$ns node]
$n8 set X_ 1547
$n8 set Y_ 991
$n8 set Z_ 0.0
$ns initial_node_pos $n8 20
set n9 [$ns node]
$n9 set X_ 1747
$n9 set Y_ 991
$n9 set Z_ 0.0
$ns initial_node_pos $n9 20
set n10 [$ns node]
$n10 set X_ 947
$n10 set Y_ 791
$n10 set Z_ 0.0
$ns initial_node_pos $n10 20
set n11 [$ns node]
$n11 set X_ 1147
$n11 set Y_ 791
$n11 set Z_ 0.0
$ns initial_node_pos $n11 20
set n12 [$ns node]
$n12 set X_ 1347
$n12 set Y_ 791
$n12 set Z_ 0.0
$ns initial_node_pos $n12 20
set n13 [$ns node]
$n13 set X_ 1547
$n13 set Y_ 791
$n13 set Z_ 0.0
$ns initial_node_pos $n13 20
set n14 [$ns node]
$n14 set X_ 1747
$n14 set Y_ 791
$n14 set Z_ 0.0
$ns initial_node_pos $n14 20
set n15 [$ns node]
$n15 set X_ 947
$n15 set Y_ 591
$n15 set Z_ 0.0
$ns initial_node_pos $n15 20
set n16 [$ns node]
$n16 set X_ 1147
$n16 set Y_ 591
$n16 set Z_ 0.0
$ns initial_node_pos $n16 20
set n17 [$ns node]
$n17 set X_ 1347
$n17 set Y_ 591
$n17 set Z_ 0.0
$ns initial_node_pos $n17 20
set n18 [$ns node]
$n18 set X_ 1547
$n18 set Y_ 591
$n18 set Z_ 0.0
$ns initial_node_pos $n18 20
set n19 [$ns node]
$n19 set X_ 1747
$n19 set Y_ 591
$n19 set Z_ 0.0
$ns initial_node_pos $n19 20
#===================================
# Agents Definition
#===================================
#Setup a TCP connection
set tcp1 [new Agent/TCP]
$ns attach-agent $n0 $tcp1
set sink2 [new Agent/TCPSink]
$ns attach-agent $n19 $sink2
$ns connect $tcp1 $sink2
$tcp1 set packetSize_ 1500
#Setup a UDP connection
set udp3 [new Agent/UDP]
$ns attach-agent $n15 $udp3
set null4 [new Agent/Null]
$ns attach-agent $n4 $null4
$ns connect $udp3 $null4
$udp3 set packetSize_ 1500
#===================================
# Applications Definition
#===================================
#Setup a FTP Application over TCP connection
set ftp0 [new Application/FTP]
$ftp0 attach-agent $tcp1
$ns at 1.0 "$ftp0 start"
$ns at 9.0 "$ftp0 stop"
#Setup a CBR Application over UDP connection
set cbr1 [new Application/Traffic/CBR]
$cbr1 attach-agent $udp3
$cbr1 set packetSize_ 1000
$cbr1 set rate_ 1.0Mb
$cbr1 set random_ null
$ns at 1.0 "$cbr1 start"
$ns at 6.0 "$cbr1 stop"
#===================================
# Termination
#===================================
#Define a 'finish' procedure
proc finish {} {
global ns tracefile namfile
$ns flush-trace
close $tracefile
close $namfile
exec nam 3.9.nam &
exit 0
}
for {set i 0} {$i < $val(nn) } { incr i } {
$ns at $val(stop) "\$n$i reset"
}
$ns at $val(stop) "$ns nam-end-wireless $val(stop)"
$ns at $val(stop) "finish"
$ns at $val(stop) "puts \"done\" ; $ns halt"
$ns run

实验过程:
0-1s没有数据发送,1s-9s有大量的数据发送和接收,9s时停止传输,10秒时仿真实验结束。

NS2 实现有 20 个节点的 WLAN相关推荐

  1. C语言九十七之实现有 1、2、3、4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?并且输出多少个

    1.题目 实现有 1.2.3.4 个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?并且输出多少个 分析: 可填在百位.十位.个位的数字都是 1.2.3.4.组成所有的排列后再去掉不满足条件 ...

  2. IEEE39+比利时20天然气节点+热网6节点的电气热综合能源系统,包含了CHP、EB、燃气轮机等

    Matlab平台yalmip 可用cplex,gurobi求解器进行求解 算例是IEEE39+比利时20天然气节点+热网6节点的电气热综合能源系统,包含了CHP.EB.燃气轮机等 还有另外的模型公式与 ...

  3. 通过GCN来实现对Cora数据集节点的分类

    代码来自<深入浅出图神经网络:GNN原理解析> 本节我们通过一个完整的例子来理解 如何通过GCN来实现对节点的分类. 我们使用的是Cora数据集,该数据集由2708篇论文,及它们之间的引用 ...

  4. Abaqus中实现对N个节点施加不同荷载-以位移为例

    笔者为科研界最后的摆烂王,目前利用python代码对Abaqus进行二次开发尚在学习中.欢迎各位摆烂的仁人志士们和我一起摆烂!ps:搞什么科研,如果不是被逼无奈,谁要搞科研! Hello,Hello! ...

  5. 如何订阅(Subscribe)现有功能包节点的话题,介绍实现思路

    我们从github或其他途径获取到的ROS功能包,如何快速的加入到自己的工程里边,下边介绍一下我实现的思路. 1.首先运行功能包,利用 rqt_graph 命令查看 节点图 ,对功能包的节点和话题进行 ...

  6. TSNE 有代码实现有附3D 2D效果图

    https://blog.csdn.net/weixin_34279246/article/details/90102855

  7. java调用sql返回list_Spring JdbcTemplate实现有java.sql.ResultSet结果集返回的存储过程调用 | 学步园...

    一.调用存储过程 方式一: /** * 方法功能说明:通过存储过程分页,获取分页信息以及查询记录(装在list中): * List.get(0)= hsTable; //存放分页信息(tableNam ...

  8. 你也能用英伟达GAN造脸了:官方实现有了,高清数据集也开源了

    栗子 假装发自 凹非寺 量子位 出品 | 公众号 QbitAI 你大概还没忘记,英伟达去年年底推出的GAN,它合成的人脸甚至骗得过肉眼. 如今,它终于有了自己的名字,叫StyleGAN.顾名思义,GA ...

  9. HIVE: 自定义TextInputFormat (旧版MapReduceAPI ok, 新版MapReduceAPI实现有BUG?)

    我们的输入文件 hello0, 内容如下: xiaowang 28 shanghai@_@zhangsan 38 beijing@_@someone 100 unknown 逻辑上有3条记录, 它们以 ...

最新文章

  1. Linux那些事儿 之 戏说USB(14)端点
  2. 都996了,需求还是没法按时交付,怎么办?
  3. 《1024伐木累》-人生最高境界,长的好看
  4. 机器学习工程师需要具备的5种软技能
  5. SAP System Copy Guide, ECC 6.0, Oracle
  6. 一个响应ping包延迟偏大的问题
  7. idc机房建设费用_idc机房服务器带宽租用费用
  8. 前端学习(2982):实现商品功能列表
  9. GCC编译警告选项的学习
  10. php mysql 非空_PHP-为什么mysql接受非空字段为null
  11. java class object_[java]Class类和Object类的关系
  12. 【数字信号调制】基于matlab GUI FSK调制+解调【含Matlab源码 645期】
  13. QT实现年会抽奖小软件的实现
  14. brctl 设置ip_Linux网桥配置命令:brctl
  15. 计算机无法删除u盘里东西,u盘里东西删不掉,详细教您u盘文件删不了怎么办
  16. 使用 prismjs 在网页中高亮显示代码
  17. python自动发送微信文件_Python脚本定期发送微信文件,定时
  18. 盛夏来临,数据中心如何应对
  19. 「 C++ 函数 」“WSAStartup()使用”讲解
  20. 邓号用计算机怎么输入,电脑上顿号怎么打出来

热门文章

  1. 2015-8-25股市大跌
  2. 网易严选 DMP 标签系统建设实践
  3. Java-并发编程知识点总结
  4. PDF拆分工具怎么用?如何把一个PDF文件拆分成多个
  5. opencv 求质心理论指导
  6. 月薪5w的大佬都爱用的SWOT分析法,本文分析透了!
  7. 她26岁成中科大博导:我是工作上灭绝师太,生活中女汉子
  8. Workbench中DM建模草图修改不了的解决办法
  9. ValueError: At least one stride in the given numpy array is negative解决方案
  10. 卷积神经网络AlexNet和ResNet比较[2021论文]