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

2023-12-12 16:08

本文主要是介绍有线和无线结合的模型模拟,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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运行截图


这篇关于有线和无线结合的模型模拟的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/485178

相关文章

使用DeepSeek API 结合VSCode提升开发效率

《使用DeepSeekAPI结合VSCode提升开发效率》:本文主要介绍DeepSeekAPI与VisualStudioCode(VSCode)结合使用,以提升软件开发效率,具有一定的参考价值... 目录引言准备工作安装必要的 VSCode 扩展配置 DeepSeek API1. 创建 API 请求文件2.

Python结合requests和Cheerio处理网页内容的操作步骤

《Python结合requests和Cheerio处理网页内容的操作步骤》Python因其简洁明了的语法和强大的库支持,成为了编写爬虫程序的首选语言之一,requests库是Python中用于发送HT... 目录一、前言二、环境搭建三、requests库的基本使用四、Cheerio库的基本使用五、结合req

无线路由器哪个品牌好用信号强? 口碑最好的三个路由器大比拼

《无线路由器哪个品牌好用信号强?口碑最好的三个路由器大比拼》不同品牌在信号覆盖、稳定性和易用性等方面各有特色,如何在众多选择中找到最适合自己的那款无线路由器呢?今天推荐三款路由器让你的网速起飞... 今天我们来聊聊那些让网速飞起来的路由器。在这个信息爆炸的时代,一个好路由器简直就是家庭网编程络的心脏。无论你

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

无线领夹麦克风什么牌子好用?揭秘领夹麦克风哪个牌子音质好!

随着短视频行业的星期,围绕着直播和视频拍摄的电子数码类产品也迎来了热销不减的高增长,其中除了数码相机外,最为重要的麦克风也得到了日益增长的高需求,尤其是无线领夹麦克风,近几年可谓是异常火爆。别看小小的一对无线麦克风,它对于视频拍摄的音质起到了极为关键的作用。 不过目前市面上的麦克风品牌种类多到让人眼花缭乱,盲目挑选的话容易踩雷,那么无线领夹麦克风什么牌子好用?今天就给大家推荐几款音质好的

如何选择SDR无线图传方案

在开源软件定义无线电(SDR)领域,有几个项目提供了无线图传的解决方案。以下是一些开源SDR无线图传方案: 1. **OpenHD**:这是一个远程高清数字图像传输的开源解决方案,它使用SDR技术来实现高清视频的无线传输。OpenHD项目提供了一个完整的工具链,包括发射器和接收器的硬件设计以及相应的软件。 2. **USRP(Universal Software Radio Periphera

Go 语言中Select与for结合使用break

func test(){i := 0for {select {case <-time.After(time.Second * time.Duration(2)):i++if i == 5{fmt.Println("break now")break }fmt.Println("inside the select: ")}fmt.Println("inside the for: ")}} 执行后

Jenkins--pipeline认识及与RF文件的结合应用

什么是pipeline? Pipeline,就是可运行在Jenkins上的工作流框架,将原本独立运行的单个或多个节点任务连接起来,实现单个任务难以完成的复杂流程编排与可视化。 为什么要使用pipeline? 1.流程可视化显示 2.可自定义流程任务 3.所有步骤代码化实现 如何使用pipeline 首先需要安装pipeline插件: 流水线有声明式和脚本式的流水线语法 流水线结构介绍 Node:

龙芯小本debian无线(wifi)连接设置

本人有一台龙芯8089b小本,已被我重装了debian系统。由于学习nodeJs,所以想用它当node服务器; 正准备下载node等时发现命令模式下不能自动连接无线,于是网上找来一篇debian连接wifi的文章, 来源参考http://blog.163.com/wangpeng922@126/blog/static/64133083201211131100539/ 查看网卡信息:#

结合Python与GUI实现比赛预测与游戏数据分析

在现代软件开发中,用户界面设计和数据处理紧密结合,以提升用户体验和功能性。本篇博客将基于Python代码和相关数据分析进行讨论,尤其是如何通过PyQt5等图形界面库实现交互式功能。同时,我们将探讨如何通过嵌入式预测模型为用户提供赛果预测服务。 本文的主要内容包括: 基于PyQt5的图形用户界面设计。结合数据进行比赛预测。文件处理和数据分析流程。 1. PyQt5 图形用户界面设计