本文主要是介绍【网络仿真】ns-3链路与物理层,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1 有线网络:PPP与CSMA
ns-3目前支持的有线网络底层传输协议有两个:点对点(Point-To-Point, PPP)和载波侦听多路访问(Carrier Sense Multiple Access ,CSMA)。(PPP的握手协议、以太网冲突检测 (Collection Detection) 没有被支持)
PPP | CSMA | |
---|---|---|
源码 | scr/point-to-point | src/scma |
作用 | 两个结点的点对点分组传输 | 多个结点接入总线网络 |
助手类 | PointToPointHelper | CsmaHelper |
物理层 | PointToPointChannel | CsmaChannel |
数据链路层 | PointToPointNetDevice | CsmaNetDevice |
1.1 架构与脚本
NodeContainer p2pNodes;
p2pNodes.Create (2);PointToPointHelper pointToPoint;
pointToPoint.SetDeviceAttribute ("DataRate" , StringValue ("5Mbps"));
pointToPoint.SetDeviceAttribute ("Delay" , StringValue ("2ms"));NetDeviceContainer p2pDevice;
p2pDevice = pointToPoint.Install (p2pNodes);//为p2pNodes容器中的结点安装PPP网络设备
NodeContainer csmaNodes;
csmaNodes.Create (4);CsmaHelper Csma;
Csma.SetDeviceAttribute ("DataRate" , StringValue ("100Mbps"));
Csma.SetDeviceAttribute ("Delay" , TimeValue (NanoSeconds (6560)));NetDeviceContainer csmaDevice;
csmaDevice = Csma.Install (csmaNodes);//为csmaNodes容器中的结点安装CSMA网络设备
1.2 属性与trace
PointToPointNetDevice属性有:
- Address — ns3::Mac48Address
- DataRate —传输速率ns3::DataRate
- TxQueue — 传输队列ns3::Queue
- InterframeGap —等待时间ns3::Time
- RX —接收数据分组的跟踪源
- Drop —丢弃数据分组的跟踪源
PointToPointChannel属性有:
- Delay: ns3::Time指定传输延迟时间
PointToPointNetDevice的发送队列(MAC相关)跟踪源有:
- 入队操作源:数据分组放入发送队列时(高层调用ns3::PointToPointNetDevice::Send或ns3::PointToPointNetDevice::SendFrom),触发事件ns3::Queue::m_traceEnqueue。
- 出队操作源:数据分组从发送队列删除时(即信道空闲,传输数据包),触发事件ns3::Queue::m_traceDequeue
- 放弃操作源:ns3::Queue::m_traceDrop
PointToPointNetDevice的PHY相关跟踪源有:
- 分组被错误模块丢弃时,触发事件m_dropTrace
- 数据包接收时,触发事件ns3::PointToPointNetDevice::m_rxTrace。
在PPP中DataRate是设备属性;在CSMA中DataRate是信道属性。
1.3 队列与错误模型
队列模型 | 错误模型 | |
---|---|---|
源码 | src/network/utils | src/network/utils |
作用 | 在发送端,来自网络层的分组会先存在发送缓存队列中,待信道可用时才开始传输数据 | 在接收端,模拟信道中丢失分组的行为,只有被错误模型判断为可以接收的分组才会被转发至上层协议 |
基类 | Queue | ErrorModel |
默认类 | DropTailQueue (模拟先进先出队列) | 不配置 |
其他类 | RateErrorModel (每次以固定比率丢失一个分组) ;BurstErrorModel (每次以固定突发错误率丢失数个分组) ;ListErrorModel (丢失指定UID的分组) ;ReceiveListErrorModel (丢失指定序号的分组,序号为错误模型接收到的第N个分组) ;BinaryErrorModel (丢失错误模型收到的偶数序列号分组) | |
示例 | examples/error-model/simple-error-model.cc |
2 无线网络:Wi-Fi
pass
3 蜂窝网:LTE
pass
4 其他无线网络模块
详见model library
模型 | 功能 | 源码 |
---|---|---|
mobility model | 模拟无线网络结点移动轨迹 | src/mobility |
propagation model | 计算信号在信道中传播损耗和传播延迟 | src/propagation |
spectrum model | 频谱模型用于Wi-Fi、LTE、LR-WPAN模块 | src/spectrum |
antenna model | 天线模型可模拟不同角度天线辐射场的功率增益 | src/antenna |
energy model | 能量模型用于计算无线结点能量损耗 | src/energy |
building model | 建筑模型模拟建筑物内无线网络环境,可自定义建筑的楼层、房间数、墙壁用料等细节 | src/buildings |
这篇关于【网络仿真】ns-3链路与物理层的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!