【NS3】Wi-Fi无线网络third脚本

参考文献:开源网络模拟器ns-3 架构与实践

我们构建了一个包含点对点PPP和CSMA有线网络,以及Wi-Fi无线网络混合场景。
在这里插入图片描述

思考与巩固

PPP网络如何建立?

为什么有双模结点?双模结点为什么要设置路由?

数据追踪追踪什么?我们可以运用数据追踪做什么?

有线网络与无线网络的设置?

头文件

头文件包括Wi-Fi、移动和CSMA3个模块。

Log系统的使用方法

NS_LOG_COMPONENT_DEFINE

下面这行代码作用是允许在该脚本中使用Log系统中的宏定义打印辅助信息,如打印调试信息的NS_LOG_DEBUG宏和打印错误信息的NS_LOG_ERROR宏等。

创建网络拓扑

包含以下三个部分:PPP、CSMA网络和WiFi网络
在这里插入图片描述

PPP网络

如同first.cc脚本中的点对点信道,一个网络拓扑由若干结点以及连接这些结点的信道组成。在ns-3中,结点和信道被分别抽象为Node、Channel以及结点中连接信道的网络设备NetDevice类这三个C++类。不同类型的信道对应不同的NetDevice、NetDevice子类。例如,PPP信道对应的网络设备类是PointToPointNetDevice,信道类是PointToPointChannel。一般来说,NetDevice主要负责实现的是链路层协议,Channel主要负责实现物理层协议
在这里插入图片描述

  NodeContainer p2pNodes;p2pNodes.Create (2);PointToPointHelper pointToPoint;pointToPoint.SetDeviceAttribute ("DataRate", StringValue ("5Mbps"));pointToPoint.SetChannelAttribute ("Delay", StringValue ("2ms"));NetDeviceContainer p2pDevices;p2pDevices = pointToPoint.Install (p2pNodes);

CSMA网络

PPP和CSMA(Carrier Sence Multiple Access)都属于有线网络技术。二者的区别在于PPP信道只能连接两个结点,是专属信道。而CSMA信道可以连接多个结点(总线型网络),需要结点竞争信道使用权(如何竞争?)。

  NodeContainer csmaNodes;csmaNodes.Add (p2pNodes.Get (1));//双接口结点csmaNodes.Create (nCsma);CsmaHelper csma;csma.SetChannelAttribute ("DataRate", StringValue ("100Mbps"));csma.SetChannelAttribute ("Delay", TimeValue (NanoSeconds (6560)));//传输速度为100Mbps,传播延迟6560nsNetDeviceContainer csmaDevices;csmaDevices = csma.Install (csmaNodes);

CSMA网络拓扑的创建与PPP网络拓扑非常相似。
注意:p2pNodes.Get (1)结点,它是结点容器p2pNodes中的第二个结点,有p2pDevicescsmaDevices两个网络设备,是一个双模结点(什么是双模结点?)。

Wi-Fi网络

Wi-Fi无线网络由一个接入点(AccessPoint,AP)和nWifi个移动结点组成。其中AP也是一个双模结点。它安装有PPP和Wi-Fi两个网络设备。
在这里插入图片描述
除了WifiNetDevice类,Wi-Fi网络设备还包括链路(WifiMac)层与物理(WifiPhy)层部分。这里的WifiNetDevice只起一个连接上下层协议的桥梁作用,没有什么实质性功能。主要Wifi协议功能都集中在WifiMac和WifiPhy两个基类和其各个子类当中,这个结构一方面可以把一个复杂功能模块化,有利于后续的开发和维护;另一个方面其实更加符合物理网络的层次划分。
这种NetDevice+Mac+Phy的3层网络设备结构在ns-3的无线结点中会经常用到。

设置Channel和WifiPhy

需要用到两个助手类

YansWifiChannelHelper channel = YansWifiChannelHelper::Default ();YansWifiPhyHelper phy = YansWifiPhyHelper::Default ();phy.SetChannel (channel.Create ());WifiHelper wifi;wifi.SetRemoteStationManager ("ns3::AarfWifiManager");

在这里插入图片描述
这两个C++类有一些重要参数需要配置,例如WifiChannel需要配置传播延迟损耗模型

这两个模型加上最后一步中的移动模型一起决定了一个分组在无线信道中传播延迟接收功率

WifiPhy需要配置误码率模型

设置WifiMac并在结点中安装NetDevice

这一步骤同样需要用到两个助手类WifiMacHelper 和WifiHelper 。

WifiMacHelper 用于设置链路层WifiMAC类。需要设置两个重要参数:WifiMAC和服务集标识符SSID。前者决定了这个结点的种类——AP或移动结点。后者决定了一个结点所属的服务集。AP与移动结点的服务集必须一致才能通信。

WifiHelper wifi;wifi.SetRemoteStationManager ("ns3::AarfWifiManager");WifiMacHelper mac;Ssid ssid = Ssid ("ns-3-ssid");mac.SetType ("ns3::StaWifiMac","Ssid", SsidValue (ssid),"ActiveProbing", BooleanValue (false));
//移动结点NetDeviceContainer staDevices;staDevices = wifi.Install (phy, mac, wifiStaNodes);
//安装移动结点mac.SetType ("ns3::ApWifiMac","Ssid", SsidValue (ssid));
//AP结点NetDeviceContainer apDevices;//安装AP结点apDevices = wifi.Install (phy, mac, wifiApNode);

完成信道和网络设备中各个组件的配置后,就可以使用
助手类WifiHelper 将网络设备安装到指定结点当中了。

本例子中,WifiHelper 还设置了WifiRemoteStationManager 子类类型。WifiRemoteStationManager 主要用于速率控制

设置移动模型

移动模型是无线网络中一个必不可少的组成部分。

在配置Channel和WifiPhy时,一个分组在Channel中传播延迟和接收功率大小是由传播延迟模型、损耗模型和移动模型共同决定的。

传播延迟和损耗模型已经在前面配置,而移动模型一般在Wifi网络设备安装到结点之后配置。这是因为不同的Wifi结点类型需要采用不同的移动模型。

ns3移动模型使用笛卡尔坐标系标识结点位置。其助手类是MobilityHelper。与设置链路层类似,在Wifi网络中设置移动模型时也需要区分AP与移动结点

AP结点:固定结点。使用固定位置移动模型ConstantPositionMobilityModel。这个模型的AP结点坐标是(0,0)。

  mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");mobility.Install (wifiApNode);

移动结点:移动结点的移动模型设置分为初始位置分布后续移动轨迹模型。

前者定义了移动结点的初始坐标,GridPositionAllocator这个分布器是按照设置好的行列参数把结点等间距放在二维坐标系当中。

后者定义了结点的移动路径,移动轨迹模型是RandomWalk2dMobilityModel在一个指定大小的长方形区域内按随机的速度和方向移动。

  MobilityHelper mobility;mobility.SetPositionAllocator ("ns3::GridPositionAllocator","MinX", DoubleValue (0.0),"MinY", DoubleValue (0.0),"DeltaX", DoubleValue (5.0),"DeltaY", DoubleValue (10.0),"GridWidth", UintegerValue (3),"LayoutType", StringValue ("RowFirst"));mobility.SetMobilityModel ("ns3::RandomWalk2dMobilityModel","Bounds", RectangleValue (Rectangle (-50, 50, -50, 50)));mobility.Install (wifiStaNodes);

在这里插入图片描述

安装TCP/IP协议簇

  InternetStackHelper stack;stack.Install (csmaNodes);stack.Install (wifiApNode);stack.Install (wifiStaNodes);Ipv4AddressHelper address;address.SetBase ("10.1.1.0", "255.255.255.0");Ipv4InterfaceContainer p2pInterfaces;p2pInterfaces = address.Assign (p2pDevices);address.SetBase ("10.1.2.0", "255.255.255.0");Ipv4InterfaceContainer csmaInterfaces;csmaInterfaces = address.Assign (csmaDevices);address.SetBase ("10.1.3.0", "255.255.255.0");address.Assign (staDevices);address.Assign (apDevices);

安装应用程序

UdpEchoServerHelper echoServer (9);ApplicationContainer serverApps = echoServer.Install (csmaNodes.Get (nCsma));serverApps.Start (Seconds (1.0));serverApps.Stop (Seconds (10.0));UdpEchoClientHelper echoClient (csmaInterfaces.GetAddress (nCsma), 9);echoClient.SetAttribute ("MaxPackets", UintegerValue (1));echoClient.SetAttribute ("Interval", TimeValue (Seconds (1.0)));echoClient.SetAttribute ("PacketSize", UintegerValue (1024));ApplicationContainer clientApps = echoClient.Install (wifiStaNodes.Get (nWifi - 1));clientApps.Start (Seconds (2.0));clientApps.Stop (Seconds (10.0));

设置路由

当多个有线网络子网存在通信时,我们在就需要在脚本设置路由协议。例如在前文创建CSMA网络时,曾经提到一个p2pNode.Get(1)结点。
在这里插入图片描述
这个结点有PointToPointNetDeviceCsmaNetDevice两个网络设备。分别连接PPP网络和CSMA网络。

在third脚本的地址分配中,这两个网络属于不同的子网。这就需要连接两个子网的p2pNodes.Get(1)结点具有路由功能,这样才能正确地转发从PPP子网发往CSMA子网的分组。

ns-3有线网络最常用的路由协议之一是全局路由

全局路由通过开放式最短路径优先(OSPF)路由算法计算有线网络拓扑中每两个结点的最短路径,并为每个结点生成路由表。

对于IPv4协议,全局路由设置一般是通过在脚本中调用助手类Ipv4GlobalRoutingHelperPopulateRoutingTables()函数完成的。

数据追踪

模拟最重要的目的之一就是分析网络性能。
获取实验数据是分析网络性能的重要前提。

  if (tracing == true){pointToPoint.EnablePcapAll ("third");phy.EnablePcap ("third", apDevices.Get (0));csma.EnablePcap ("third", csmaDevices.Get (0), true);}

这里的pointTopoint是一个点对点信道PointToPointHelper助手类对象。

EnablePcapAll()函数的作用是手机这个信道上所有结点的链路层分组收发记录。
记录文件的格式是pcap。
third是文件名的前缀,EnablePcapAll()函数对文件名的命名规则是“前缀名-<结点标号>-<网络设备号>”,如third-0-0.pcap。

 pointToPoint.EnablePcapAll ("third");

在这里插入图片描述
可以看到,分组链路类型是PPP,在时间2.008151s时,AP结点的PPP网络设备收到了10.1.3.3无线结点法网10.1.2.4有线结点的一个UDP分组。

      phy.EnablePcap ("third", apDevices.Get (0));

这行代码使用的时YansWifiPhyHelperEnab1lePcap()函数打印AP结点中Wi-Fi网络设备的物理层分组收发信息。
在这里插入图片描述
通过tcpdump可以看到,AP结点首先发送的时信标帧(Beacon)。接下来,AP结点收到了3个移动结点发来的关联请求帧(Assoc Request)。这些帧的SSID值(ns-3-ssid)都是相同的。

最后下面这行代码记录了一个有线结点中CSMA网络设备的分组收发信息。

      csma.EnablePcap ("third", csmaDevices.Get (0), true);

启动与结束

输出结果如下:
在这里插入图片描述

总结

在third脚本当中,

在网络拓扑上,我们巩固了PPP网络的创建,学会了CSMA网络的创建,两者都属于有线网络技术。

除此之外,学会构建了Wi-Fi网络,这是无线网络。无线网络需要设置Channel和WifiPhy,设置WifiMac并在结点中安装NetDevice,为结点设置移动模型。

我们初识双模结点,由于无线网络中的AP结点(PPP和Wifi两个网络设备)以及与PPP的第二个结点(PPP和CSMA),都有两个网络设备,故称之为双模结点。

在路由设置过程中,多个有线网络存在通信,就需要设置路由协议,才能正确转发从PPP子网法网CSMA子网的分组。
在这里插入图片描述

另外,学会了分析性能的重要功能——数据追踪,运用了函数EnablePcapAll(),可以收集这个信道上所有结点的链路层分组收发记录

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/1622025.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Windows的口令文件SAM

Windows对用户账户的安全管理使用了安全账号管理器&#xff08;Security Account Manager&#xff0c;简称SAM&#xff09;的机制 SAM文件即账号密码数据库文件。当我们登录系统的时候&#xff0c;系统会自动地和Config中的SAM自动校对&#xff0c;如发现此次密码和用户名全与S…

华硕电脑熄屏后,搜索不到无限网络,无法连接WiFi

华硕电脑熄屏后,搜索不到无限网络&#xff0c;无法连接WiFi&#xff0c;每次都要重启电脑&#xff0c;太麻烦。 1.打开网络设置 2.更改适配器配置选项 3.启用WLAN&#xff08;可能你的是开着的&#xff0c;先将网络禁用&#xff0c;再启用&#xff09;

WPE系统NTPWEdit工具无法打开SAM,显示只读文件怎么修改?

WPE系统NTPWEdit工具使用相关问题汇总 一、问题的出现 使用该工具出现&#xff0c;SAM文件路径盘符显示是X盘&#xff0c;这是因为这个是wpe虚拟盘符&#xff0c;硬盘传输格式设置原因&#xff0c;使得win-pe没有正确加载系统硬盘。 二、什么是硬盘格式设置 首先需要进入bio…

LIO-SAM运行自己数据包遇到的问题解决--SLAM不学无数术小问题

LIO-SAM 成功适配自己数据集 注意本文测试环境 Ubuntu18.04 ROS melodic版本 笔者用到的硬件以简单参数&#xff1a; 激光雷达&#xff1a;速腾聚创16线激光雷达&#xff08;RS-Lidar-16&#xff09; IMU&#xff1a;超核电子CH110型 9轴惯导&#xff0c;使用频率100Hz 注意&am…

LIO-SAM:配置环境、安装测试、适配自己采集数据集

LIO-SAM是IROS 2020的一篇论文&#xff0c;目前已经开源&#xff0c;作者曾发表过Lego-loam&#xff0c;整体框架与Lego-loam结构相同&#xff0c;但是可读性感觉要比Lego-loam好的多&#xff0c;并添加了gps因子且真正融合了imu。 网上也已经出现了很多关于解读LIO-SAM的文章&…

基于华硕AX3000 WPA2-Personal认证方式,设备连接失败问题处理

1 问题背景 最近在XXX项目上&#xff0c;测试在做路由器兼容性测试&#xff0c;发现XX设备在连接ASUS TUF-AX3000型号路由器的WPA2-personal认证方式时&#xff0c;出现必现连接不上的现象&#xff0c;最后排查发现居然跟有多种Wpa2-personal有关。 本文主要结合该问题&#…

官方项目《内容示例》中Common UI部分笔记: 1.1 Activatable Widgets

本文主要面向UMG以及Common UI的初学者 文章目录 效果展示概要Activate和Deactivate可见性绑定UI动画设置Common Activatable Widget的默认焦点 效果展示 概要 这个例子非常简单&#xff0c;定义了13个Common Activatable Widget CommonUI_ActivatableWidgets相当于一个容器包…

win10链接无线打印服务器,win10怎么连接网络打印机 win10添加网络打印机详细教程...

自从有了win10系统&#xff0c;互联网变得越来越方便了&#xff0c;最近非常流行网络打印机&#xff0c;只需要共享IP就可以实现扩地区打印&#xff0c;那么该如何操作呢&#xff1f;首先让我们先添加一个网络打印机&#xff0c;怎么添加&#xff1f;大家只需要看看下方的win10…

计算机重新如何连接网络打印机,电脑怎样连接打印机,小编教你电脑如何连接网络打印机...

打印机是办公室里经常会用到的一种办公设备&#xff0c;由于工作性质的不同&#xff0c;以及其他原因&#xff0c;网络打印机可以实现多台电脑连接&#xff0c;实现资源共享。网络打印机自带ip&#xff0c;只需指定ip就可以快速连接。那电脑如何连接网络打印机&#xff1f;下面…

Linux之iptables防火墙

目录 一.网络安全技术 二.防火墙 2.1.防火墙分类 2.2.iptables工具简述 2.3.iptables基本语法 2.4.控制类型 2.5.查看规则 2.6.添加规则 2.7.黑白名单 2.8.根据规则编号删除 清空 替换规则 2.9.默认策略 2.10.隐藏扩展模块 2.11.显示扩展模块 三.iptables保存规则…

Qt应用开发(基础篇)——日历 QCalendarWidget

一、前言 QCalendarWidget类继承于QWidget&#xff0c;是Qt设计用来让用户更直观的选择日期的窗口部件。 时间微调输入框 QCalendarWidget根据年份和月份初始化&#xff0c;程序员也通过提供公共函数去改变他们&#xff0c;默认日期为当前的系统时间&#xff0c;用户通过鼠标和…

星际争霸之小霸王之小蜜蜂(七)--消失的子弹

目录 前言 一、删除子弹 二、限制子弹数量 三、继续重构代码 总结 前言 昨天我们已经让子弹飞了起来&#xff0c;但是会面临一个和之前小蜜蜂一样的问题&#xff0c;小蜜蜂的行动应该限制在窗口内&#xff0c;那么子弹也是有相同之处&#xff0c;也需要限制一个移动范围&…

《影响力》,到底有多可怕?

通过案例引出主题。介绍《影响力》的六大原理。附录: 本文书籍以及个人视频账号介绍。本文6300字左右&#xff0c;预计阅读时间10分钟。 上周&#xff0c;我到李宁专卖店买一双跑步鞋&#xff0c;挑来挑去看中了一双黑色的鞋&#xff0c;款式不错&#xff0c;穿起来也很舒服。…

谋定政策经信研究扶持-万祥军:对话李玉庭跨界电商重整

谋定政策经信研究扶持-万祥军&#xff1a;对话李玉庭跨界电商重整 中国经济和信息化网 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 经信研究 国研智库 国情讲坛 万赢信采编&#xff1a;“企业抱团集群发展成趋势&#xff0c;扶持政策持续加码。业内有人戏称&#xff0…

临期食品,是否只是个“过期“市场?

如今的年轻人&#xff0c;越来越喜欢在生活上精打细算。 无论是知乎豆瓣&#xff0c;还是微博贴吧&#xff0c;在各类平台论坛之中&#xff0c;都会有着"省钱"相关的话题。如何用更少的钱过上更加精致充实的生活&#xff0c;成为了当代年轻人最受欢迎的生活方式。 在…

跨界巨头谋定现代农业-农民丰收节交易会:全产业链布局

跨界巨头谋定现代农业-农民丰收节交易会&#xff1a;全产业链布局 新闻中国采编网 中国新闻采编网 谋定研究中国智库网 经信研究 国研智库 国情讲坛 哲商对话 万权采编&#xff1a;“既有农业的种植管理技术&#xff0c;又有食品深加工的能力&#xff0c;还有食品和农产品营销…

她在女性大会上请求马云“教育”老公,夫妻俩开店一年销售10个亿

“我是做淘宝的&#xff0c;然后我老公也是做淘宝的。我一年大概做两三个亿的销售额&#xff0c;我老公一年做七八个亿的销售额。我老公比较注重应酬&#xff0c;经常把自己灌醉。我老公非常想要宝宝&#xff0c;但是他每天因为生意&#xff0c;熬夜、应酬、喝醉&#xff0c;我…

深度:蒙牛老年高端产品营收增长9倍,中老年消费品市场趋势不变,创新机会涌现!

疫情仍在肆虐&#xff0c;许多行业和公司遭受重创&#xff0c;面临生死存亡的困境。 在一片悲观之下&#xff0c;中老年消费品市场凸显出顽强的生命力和独特价值&#xff0c;AgeClub在对电商平台数据和行业密切跟踪中发现&#xff1a; 蒙牛2019年“悠瑞”中老年高端系列营收增…

2021年中国奶粉行业发展现状分析,行业集中度不断提升,下沉市场发展空间广阔「图」

一、概述 奶粉是将动物奶除去水分后制成的粉末&#xff0c;它适宜保存。奶粉是以新鲜牛奶或羊奶为原料&#xff0c;用冷冻或加热的方法&#xff0c;除去乳中几乎全部的水分&#xff0c;干燥后添加适量的维生素、矿物质等加工而成的冲调食品。奶粉主要可分为全脂奶粉、脱脂奶粉…

乐高武汉楚河汉街授权专卖店重装焕新开业;玛氏中国“宠享潮生活”共建人宠友好新风尚 | 知消...

百威亚太携高端波本威士忌品牌助阵2021 Whisky L。2021年12月9日至11日&#xff0c;百威亚太携美国波本威士忌野牛仙踪亮相2021 Whisky L。与此同时&#xff0c;出产野牛仙踪威士忌的野牛仙踪蒸馏酒厂的高端线Bond and Royal也空降现场&#xff0c;参与此番共饮盛况。 伊利奶粉…