欢迎光临112期刊网!
网站首页 > 论文范文 > 计算机论文 > 信息安全 > 基于NS3的无线自组网仿真实现的策略分析

基于NS3的无线自组网仿真实现的策略分析

日期:2023-01-24 阅读量:0 所属栏目:信息安全


 近年来,随着计算机和网络通信技术的迅速发展,研究人员不断开发新的网络协议、算法和应用,以适应日益增长的网络通信需要。因此,网络仿真日益成为分析、研究、设计和改善网络性能的强大工具,它通过在计算机上建立一个虚拟的网络平台,来实现真实的网络环境的仿真。网络技术研究人员在仿真环境中不仅能对网络通信、网络设备、协议以及网络应用进行设计研究,还能对网络的性能进行分析和评估。目的是在网络项目实施的过程前期和实施过程中提供指导。
  相对于其它的网络模拟软件而言,NS3是比较年轻的网络工具。NS3避免了一些其它网络模拟软件的缺点,尽量吸收其他模拟软件的优点。NS3是应用现代软件工程技术和网络仿真技术而设计开发的新一代网络模拟工具。
  本文介绍了在Fedora20环境下,安装NS3.20模拟软件的具体方法,并在此基础上开发了一套无线自组网的仿真程序,对从事这方面的科研人员及教学人员具有一定的指导作用。
  1 Fedora20及NS3.20环境的安装
  1.1 Fedora20的下载与环境安装
  首先在WINDOWS下安装虚拟机VMware8.0版本,然后到网站http://get-fedora下面免费下载镜像,在虚拟机VMware8.0中安装此镜像,将fedora系统安装好。
  NS3内核是是使用C++语言开发的,并提供Python接口,因此,安装NS3之前需要安装许多安装包,安装软件包一定要将自己的系统与外网连接,有些依赖软件包系统直接从外网下载并安装。使用下列命令安装软件包:
  yum install gcc gcc-c++ python python-devel
  yum install mercurial
  yum install bzr
  yum install gsl gsl-devel
  yum install gtk2 gtk2-devel
  yum install gdb valgrind
  yum install doxygen graphviz ImageMagick
  yum install python-sphinx dia texlive texlive-latex
  yum install flex bison
  yum install tcpdump
  yum install sqlite sqlite-devel
  yum install libxml2 libxml2-devel
  yum install uncrustify
  yum install openmpi openmpi-devel
  yum install boost-devel
  yum install graphviz graphviz-devel python-setuptools-devel python-kiwi pygoocanvas
  easy_install pygraphviz
  yum install cmake glibc-devel.i686 glibc-devel.x86_64
  在运行命令yum install graphviz graphviz-devel python-setuptools-devel python-kiwi pygoocanvas 时,系统提示有错误信息,与某些软件发生冲突;这时候,要先用下列命令删除冲突的软件:
  rpm —e vim-minimal
  rpm -e sudo
  然后,再安装上述命令后,再完成后续命令的安装。
  1.2 NS3.20网络模拟器的安装
 在网站http://上免费下载软件包2,然后拷贝到虚拟机Fedora20的系统/root目录下,然后用命令:tar —jxvf 2进行解压缩。解压缩完成后,用以下命令进入相关目录:
  cd /root/ns-allinone-3.20/ns-3.20/
  然后执行:
  . /waf configure —enable-examples —enable-tests
  最后执行命令:
  ./waf
  执行完后,如果出现如图1的画面,即编译安装成功。
  2 无线自组网IP地址的分配和拓扑结构设计
  2.1 无线自组网的IP地址分配
  我们将16个无线自组网都当成一个独立的节点,既可以充当路由器,又可以充当终端节点。它们的IP地址都位于同一个网络10.1.1.0中,如图1所示。
  2.2 无线自组网拓扑结构图
  无线自组网节点作为一个独立的无线节点,可以再空间中自由移动,同时,在一范围内可进行互相通信。其拓扑结构如图2所示。
  无线自组网络可以互相之间通信,每个节点既充当路由器,又充当终端。我们假定节点n0与节点n15通信,来模拟数据在无线自组网中的通信过程。
  3 用NS3仿真无线自组网
  3.1 用NS3创建16个独立的无线节点
  我们首先创建16个无线节点,并配置无线节点通信所需要的参数。最主要的代码如下:
  NodeContainer wifiAdhocNodes;
   (16); //创建16无线自组网节点
  WifiHelper wifi = WifiHelper::Default ();
  NqosWifiMacHelper wifiMac = NqosWifiMacHelper::Default (); //配置Mac与Phy
  e ("ns3::AdhocWifiMac");
  YansWifiPhyHelper wifiPhy = YansWifiPhyHelper::Default ();
  YansWifiChannelHelper wifiChannel = YansWifiChannelHelper::Default (); //创建无线节点互连通道
  nnel ( ());
  NetDeviceContainer wifiAdhocDevices = l (wifiPhy, wifiMac, wifiAdhocNodes); //创建节点的无线设备(无线网卡)
  InternetStackHelper stack; //安装协议栈
  l (wifiAdhocNodes);
  Ipv4AddressHelper address; //设置无线节点的IP地址
  e ("10.1.1.0", "255.255.255.0");
  Ipv4InterfaceContainer AdhocInterfaces;
  AdhocInterfaces = (wifiAdhocDevices);
  3.2 应用层模拟
  1) 服务端节点设置
  16个节点创建并配置完后,我们在最后一个节点n15放置echo服务端程序,其主要代码为:
  UdpEchoServerHelper echoServer (9); //设置服务器端口号9
  ApplicationContainer serverApps = l ( (15)); //服务端程序安装在节点n15。
   (Seconds (1.0)); //服务端程序在1秒生效
   (Seconds (10.0)); //服务端程序在10秒停止。
  2) 客户端节点设置
  我们将回显客户端放在节点n0上,其主要代码为:
  UdpEchoClientHelper echoClient (ress (15), 9);//让客户端与服务端及其端口关 联
  ribute ("MaxPackets", UintegerValue (100)); //设置通信时参数
  ribute ("Interval", TimeValue (Seconds (1.0)));
  ribute ("PacketSize", UintegerValue (1024));
  ApplicationContainer clientApps =
  l ( (0)); //客户端程序安装在节点n0
   (Seconds (2.0));//客户端在 2秒中生效
   (Seconds (10.0)); //客户端在10秒钟停止
  4 用NS3仿真无线自组网运行效果
  4.1 节点之间数据流向显示
  在 Fedora20操作系统中,运行:
  ./waf —run scratch/adhoctest
  则可以看出,移动节点n0与n15节点,可正常通信;显示的数据流向如图4所示,客户端与服务端之间的数据传送和应答顺利。
  4.2 节点之间通信效果显示:
  用Pyviz工具,可以查看节点之间互相通信的效果图,运行以下命令:
  ./waf —run scratch/adhoctest —vis
  则可以看出,刚开始,在路由选择阶段,数据流向多个节点,如图5所示。一旦两个节点之间明确了路由,数据流向比较稳定,如图6所示。
  5 结束语
  本文主要仿真了无线自组网传送数据的过程。在仿真过程中,设计了无线自组网络节点,并仿真了数据传送的过程。可在此基础上,进一步研究不同算法对不同环境下的数据传送效果。希望对从事这方面的研究者有所启发。
  参考文献:
  [1] ns-3 documentation[EB/OL]. http://.
  [2] ns-3 developers[EB/OL].http://developers/overview.
  [3] 马春光,姚建盛.ns-3网络模拟器基础与应用[M].北京:人民邮电出版社,2014.

本文链接:http://www.qk112.com/lwfw/jsjlw/xinxianquan/226088.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学