无线网络技术教程第四版实验七

隐藏节点和暴露节点仿真实验

目录

  • 无线网络技术教程第四版实验七
  • 隐藏节点和暴露节点仿真实验
    • 1 实验目的和要求
    • 2 实验原理和背景
      • 2.1 隐藏节点问题
      • 2.2 暴露节点问题
  • 3 实验环境和软件
  • 4 实验过程和记录
      • 4.1 隐藏节点问题仿真
      • 4.2 暴露节点问题仿真
    • 5 结果分析与讨论

1 实验目的和要求

掌握无线网络中隐藏和暴露节点问题
利用NS2分析隐藏和暴露节点问题

2 实验原理和背景

2.1 隐藏节点问题

隐藏节点处指处于接收节点的覆盖范围内而在发送节点的覆盖范围外的节点。由于监听不到发送节点的数据传输,隐藏节点不受限制的发送分组到相同的的接收节点,导致分组在接收节点处冲突。隐藏节点可以分为隐发送节点和隐接收节点。

节点A和C同时想发送数据给中间节点B,但A和C都不在彼此传输范围内。所以当A发送数据给B时,C并未检测到A正在传输,会认为目前网络中无数据传输,会将数据传输给B。即A和C同时将数据传输给B,使得数据在B处产生冲突,导致数据不可用。这种因传送距离而发生误判的问题称为隐藏节点问题。

为解决隐藏节点问题,可使用RTS/CTS控制信息来避免冲突。发送方发出数据前,先送出一个RTS包,告知在传输范围内的所有节点不要有任何发送操作。如果接收目前空闲,则相应一个CTS包,告诉发送方可开始发送数据,此CTS包也会告知所有在接收方信号传输范围内的其他节点不要进行任何传输操作。

2.2 暴露节点问题

暴露节点是指在发送节点覆盖范围内而在接收节点覆盖范围外的结点,暴露节点因监听到发送节点的发送而可能延迟发送。但它其实是在接收节点的通信范围之外,它的发送不会造成冲突,这种延迟发送并不必要。

暴露节点问题和隐藏节点问题不同,当一个节点要发送数据给另一节点时,因邻居节点也正在发送数据,影响了原来节点的数据传送。4个节点S1、S2、R1、R2,其中R1、R2均不在对方传输范围内,而S1、S2均在彼此传送范围内。因此,当S1正发送数据给R1时,S2却不能将数据发送给R2,因为S2会检测到S1正发送数据,如果其也发送数据的话,就会影响S1的数据发送。事实上,S2可以将数据发给R2的,因为R2并不在S1的传送距离内。

为缓解暴露节点问题,同样可采用RTS/CTS机制。当某个节点侦听到邻节点发送的RTS,但未监听到对应CTS时,S2可推测自己是暴露节点,则可同时发送数据。

3 实验环境和软件

搭建的实验平台,NS2.35。如果是官方的NS2版本,则还需要mUDP、mUdpSink模块,需要自己扩展安装。

4 实验过程和记录

第一次我是用自己的下载的NS2.35然后安装扩展模块做的,可能是因为虚拟机上也有NS3吧,版本的问题,导致没有成功,出现了以下的问题,有大佬懂的话可以解释下。



后面我下载了实验手册附带的实验平台,然后就成功了。

4.1 隐藏节点问题仿真

第一步是依次进入exp7的文件夹
第二步是输入“ns Hidden_Terminal.tcl”命令,运行本实验,截图是运行到一半的时间,注意步长调整为2ms即可,不宜过大。

这个是结束的截图,观看完了整个NAM动画和详细的仿真过程。

**仿真程序运行说明:**仿真开始时(0~1s),节点间相互广播路由(DSDV)信息,建立路由表。从1.5s开始,节点0开始向节点1发送数据,需要注意,此时节点0需要先发送RTS报文(实验中设置802.11的RTSThreshold=0,满足数据包大于RTSThreshold=3000,满足数据包小于RTSThreshold,因为数据包不会大于3000),以保证信道(0→1)的顺利占用。
在2s时,节点2也开始向节点1发送数据,同样,节点2也发送RTS报文,此时可得知节点1的信道不空闲,因此节点2开始退避,等待一段时间重新尝试发送。仿真过程(2~15s)中,课看到节点2和节点0交替向节点1发送数据,而非同时传输。仿真时间到达15s时,两条流传输同时结束,此后无数据传输,偶尔有链路保活报文。在20s时,仿真实验结束。
如果想进一步分析仿真的深层次结果,可参考资料自行编码分析脚本对trace文件(.tr)进行分析,并绘制图形对比。

4.2 暴露节点问题仿真

第一步就跳过了,还是在那个文件夹里面
第二步输入“ns Exposed_Terminal.tcl”命令,运行本实验。这个截图也是运行到一半时间的,步长依旧是2ms

这个是结束时候的截图。

**仿真程序运行说明:**仿真开始时(0~1s),节点间相互广播路由(DSDV)信息,建立路由表。从1.5s开始,节点0开始向节点1发送数据,需要注意,此时节点0需要先发送RTS报文(实验中设置802.11的RTSThreshold=0,满足数据包大于RTSThreshold=3000,表示开启TRS/CTS,解决暴露终端问题:实验暴露终端请设置RTSThreshold=3000,满足数据包小于RTSThreshold,因为数据包不会大于3000),以保证信道(,1→0)的顺利占用。在2s时,节点2也开始向节点3发送数据,同样,节点2也发送RTS报文,以获得信道(2→3)的顺利占用,并正确传输数据。仿真时间到达15s时,两条流传输同时结束,此后无数据传输,偶尔有链路保活报文。在20s时,仿真实验结束。
如果想进一步分析仿真的深层次结果,可参考资料自行编码分析脚本对trace文件(.tr)进行分析,并绘制图形对比。

5 结果分析与讨论

隐藏节点和暴露节点问题对无线网络传输影响较大,极大降低了网络吞吐量,增加了传输时延,而CTS/RTS机制可较好的解决隐藏和暴露节点问题。

仿真结果可从两方面来分析,即仿真动画和仿真数据。在NS2中演示仿真动画采用NAM,将拓扑结构、数据包传输情况及队列丢包等以动画形式展现,仿真结束后,可通过分析产生的trace数据对仿真过程中的延迟、丢包、吞吐量等进行定量分析。

实验七 隐藏节点和暴露节点仿真实验相关推荐

  1. 无线网络传输问题:隐藏节点和暴露节点

    1.什么是隐藏节点和暴露节点问题 (1)隐藏节点(隐终端) 隐藏终端是指在接收接点的覆盖范围内而在发送节点的覆盖范围外的节点.隐藏终端由于听不到发送节点的发送而可能向相同的接收节点发送分组,导致分组在 ...

  2. 实验十二 AODV和DSR协议仿真实验

    无线网络技术教程第四版实验十二 AODV和DSR协议仿真实验 目录 无线网络技术教程第四版实验十二 AODV和DSR协议仿真实验 1 实验要求和目的 2 实验原理和背景 3 实验环境和模块 4 实验过 ...

  3. 观看实验中微型计算机虚拟拆装演示,虚拟仿真实验 北斗一号微机原理虚拟仿真实验系统64位 v3.0...

    下面我们对虚拟仿真实验 北斗一号微机原理虚拟仿真实验系统64位 v3.0文件阐述相关使用资料和虚拟仿真实验 北斗一号微机原理虚拟仿真实验系统64位 v3.0文件的更新信息. 虚拟仿真实验 北斗一号微机 ...

  4. 【无线网络技术】实验十二——AODV和DSR协议仿真实验

    1.实验要求与目的 理解AODV和DSR协议的工作过程 掌握NS2仿真分析AODV和DSR协议 2.实验仪器.材料 环境资源:NS2仿真试验平台.实验压缩包及代码 3.实验内容及过程记录 AODV 1 ...

  5. 实验十二——AODV和DSR协议仿真实验

    AODV和DSR协议仿真实验 1.理解AODV和DSR协议的工作工程 2.掌握NS2仿真分析AODV和DSR协议 AODV协议仿真实验 1.先进入实文件夹 2.运行AODV 利用NAM动画观察实验结果 ...

  6. 实验十二.AODV和DSR协议仿真实验

    实验要求和目的 ① 理解AODV和DSR协议的工作过程 ② 掌握NS2仿真分析AODV和DSR协议 AODV仿真实验 1.打开终端进入WNTLab/experiments/exp12/AODV实验目录 ...

  7. 实验十二AODV和DSR协议仿真实验

    实验目的和要求 理解AODV和 DSR协议的工作过程 掌握NS2仿真分析AODV和 DSR协议 实验过程 AODV仿真 (1)输入"cd WNTLab/experiments/exp12/A ...

  8. oracle实验七 答案,Oracle表的常用查询实验(七)

    Oracle表的常用查询实验(七) 1.问题描述: 有一个商品信息表,该表反应了各种商品的销售情况,一个产品是按照gid和gname两个字段来区分的,一个产品可能会有多个型号. create tabl ...

  9. 计算机组装仿真教学软件,计算机组成原理仿真实验教学资源 - 大连理工大学软件工程虚拟仿真实验教学中心...

    计算机组成原理是计算机以及软件类专业一门主要的专业基础课程,该课程的学习必须通过实验进一步深入理解课堂教学内容,切实掌握计算机各功能模块的工作原理,相互联系和来龙去脉.完整地建立起计算机的整机概念.通 ...

最新文章

  1. php实现变声,PHP:用UTF-8字符串中最接近的7位ASCII等效替换变音符号
  2. 九、distinct
  3. 用Twebbrowser做可控编辑器与MSHTML
  4. Java常用API(一)Object
  5. DATAGUARD 三种保护模式
  6. 常用FTP命令 1. 连接ftp服务器
  7. hoj2677 Instruction Set // poj3253Fence Repair 哈夫曼树
  8. python基础知识 os.path.join()
  9. MFC多文档框架 基于CVIEW视图类正常显示超出屏幕范围的部分(支持BCG库绘图)
  10. 高频Linux命令小结(新手向)
  11. python写文件追加 按行追加_你真的会用python进行文件操作吗
  12. 【转载】自动化测试:为什么受伤的总是我?
  13. C语言博客作业08,C语言I博客作业08
  14. 仿百度的输入提示功能
  15. WebStorm 好用的插件推荐
  16. 普元EOS之性能调优
  17. [转] 网卡超时实现机制 watchdog_timeo/ndo_tx_timeout
  18. 【三十八】Python全栈之路--HTML
  19. 完美解决Win10重命名文件导致资源管理器卡死
  20. STM32触摸屏按下检测多次解决方案

热门文章

  1. JavaScript之类操作:HTML5 canvas多分屏示例
  2. dicom支持的文件格式及缩写
  3. petshop详解之六:PetShop之表示层设计
  4. 【插画头像壁纸】画师太太一定是个超级可爱的人!夏日少女,简单线条与华丽画风好绝!
  5. 服务器宕机的快速解决方法
  6. 每次程序运行结果都不一样的原因
  7. linux 里往表里导数语句,函数与导数中常用的函数和不等关系
  8. 学UI设计,可以向哪些方向发展?该怎么学?
  9. 【SpringBoot】的学习
  10. 产品经理之如何阐释需求价值