NS3网络模拟器-网络设备1
1.概述
前面章节已经介绍了NS-3基本模型中的应用层和协议栈Internet模型,如下图所示,本节将介绍网络设备模型。
如上图所示NS-3基本模型,通常一个节点可以通过多个网络设备同时连接到多条信道上。
-
Application应用层模型提供多种业务流量,如OnOff、PacketSink和BulkSend等;
-
Protocol stack,即Internet模型,包括传输层TCP/UDP,和网络层IP;
-
NetDevice网络设备一般包括物理层和MAC层。网络设备模型与信道强相关,比如接入P2P信道必须使用P2P网络设备,不能通过WIFI网络设备接入;
-
channel信道模型:P2P信道,CSMA信道,WIFI信道。
2.网络设备
表1 常用网络设备模块
网络设备模块 | 用途 |
---|---|
Point-to-point | 点对点网络 |
CSMA | 实现基于IEEE802.3的以太网网络,包括MAC层,物理层和媒体信道 |
Wi-Fi | 实现基于IEEE802.11a/b/g的无线网络,也可以是有基础设施的ad hoc网络 |
Mesh | 实现基于IEEE802.11s的无线mesh网络 |
wimax | 实现基于IEEE802.16标准的无线城域网络 |
常用网络设备如表1所示,不同的网络使用不同的网络设备,后续将分小节展开介绍以下几个网络设备:
- 点到点 (PointToPoint)
- 有线局域网(CSMA)
- 无线局域网(WIFI)
本节介绍将点到点P2P网络。
1.点到点(PointToPoint)
ns-3 的点到点通信模型是一个非常简单的点对点数据链路,通过点到点信道连接了整整 2 个点到点网络设备。 这可以被看作是相当于一个全双工 RS-232 或RS-422 链路。
数据封装在点到点协议 (PPP-RFC 1661), 但是链路控制协议 CLCP) 和相关的状态机均未实现。
在ns-3 中结点和信道分别抽象为Node、Channel以及结点中连接信道的网络设备NetDevice类这 3 个 C++。不同类型对应这不同的 NetDevice 和 Channel 子类。
PointToPointNetDevice 提供以下属性:
PointToPointChannel 提供以下属性:
以first.cc为例,介绍P2P通信模型的建立。
通信模型如下图所示,两个节点通过P2P信道进行通信。
如下图所示,创建了P2P拓扑结构。具体步骤如下:
(1). 创建两个P2P节点nodes。
(2). 创建P2P信道,并设置信道数据速率和时延属性。
(3). 创建网络设备devices,并连接节点与信道。
实现代码如下:
NodeContainer nodes;
nodes.Create(2);//创建两个节点
PointToPointHelper pointToPoint; //通过helper创建P2P信道
pointToPoint.SetDeviceAttribute("DataRate", StringValue("5Mbps")); //设置信道速率属性
pointToPoint.SetChannelAttribute("Delay", StringValue("2ms")); //设置信道时延属性
NetDeviceContainer devices;
devices = pointToPoint.Install(nodes);//两个节点分别安装了P2P网络设备,节点之间是P2P信道,并将网络设备容器返回。
CSMA和WIFI网络设备的介绍内容见下节。