ns-3仿真之链路与物理层(二)

目录

三、蜂窝网:LTE

[3.1 网络架构](#3.1 网络架构)

[3.2 无线接入网](#3.2 无线接入网)

[3.2.1 创建eNB和UE结点](#3.2.1 创建eNB和UE结点)

[3.2.2 安装移动模型](#3.2.2 安装移动模型)

[3.2.3 在结点中安装eNB与UE网络设备](#3.2.3 在结点中安装eNB与UE网络设备)

[3.2.4 将UE接入eNB](#3.2.4 将UE接入eNB)

[3.2.5 激活eNB与UE间的无线数据承载(Data Radio Bearer,DRB)](#3.2.5 激活eNB与UE间的无线数据承载(Data Radio Bearer,DRB))

[3.3 核心网](#3.3 核心网)

[3.3.1 创建EPC网络](#3.3.1 创建EPC网络)

[3.3.2 创建外部网络,并创建与P-GW/S-GW之间的PPP信道连接](#3.3.2 创建外部网络,并创建与P-GW/S-GW之间的PPP信道连接)

[3.3.3 创建eNB和UE](#3.3.3 创建eNB和UE)

[3.3.4 安装移动模型](#3.3.4 安装移动模型)

[3.3.5 为UE安装TCP/IP协议栈](#3.3.5 为UE安装TCP/IP协议栈)

[3.3.6 为所有UE结点配置IP和网关地址](#3.3.6 为所有UE结点配置IP和网关地址)

[3.3.7 将所有UE接入eNB](#3.3.7 将所有UE接入eNB)

[3.3.8 为UE和远端结点配置应用层协议](#3.3.8 为UE和远端结点配置应用层协议)

[3.4 属性与trace](#3.4 属性与trace)

[3.4.1 LteHelper中的属性设置](#3.4.1 LteHelper中的属性设置)

[3.4.2 LteHelper中的trace设置](#3.4.2 LteHelper中的trace设置)

[3.4.3 EpcHelper中的属性设置](#3.4.3 EpcHelper中的属性设置)

[3.5 其他无线网络模块](#3.5 其他无线网络模块)

[3.5.1 移动模块(mobility model)](#3.5.1 移动模块(mobility model))

[3.5.2 传播模型(propagation model)](#3.5.2 传播模型(propagation model))

[3.5.3 频谱模型(spectrum model)](#3.5.3 频谱模型(spectrum model))

[3.5.4 天线模块(antenna model)](#3.5.4 天线模块(antenna model))

[3.5.5 能量模型(energy model)](#3.5.5 能量模型(energy model))

[3.5.6 建筑模型(building model)](#3.5.6 建筑模型(building model))


三、蜂窝网:LTE

3.1 网络架构

一个完整的LTE网络由分组核心网(Evolved Packet Core,EPC)和无线接入网(Radio Access Network,RAN)组成。

LTE模块中主要支持功能都集中在RAN部分,如无线资源管理、X2切换、频率复用、上行链路功率控制等。在接入网RAN部分,ns-3实现了演进结点B(eNB)和用户设备(UE)两个实体;

  • eNB是LTE网络中的无线基站,为信号覆盖范围内的UE提供无线接入服务;eNB之间用X2接口连接。

在核心网部分EPC部分,ns-3实现了3个关键结点,即PDN网关(P-GW)、服务网关(S-GW)和移动性管理组件(MME);

  • P-GW负责LTE网络与外部互联网之间的分组交换,是整个LTE网络的出口;
  • S-GW负责LTE内部数据分组的路由和转发;在LTE标准中,一个P-GW可以连接多个S-GW,每个连接S-GW可以连接多个eNB;

在ns-3中的P-GW与S-GW部署在同一个结点上;通过EPC,可以在脚本的UE中安装TCP/IP协议栈并与其他非LTE模块的结点通信。

P-GW/S-GW是一个双栈结点,它与外部结点之间使用TCP/IP协议栈通信,与eNB使用GTP隧道传输数据;eNB也是一个双栈结点,是连接RAN和EPC网络的桥梁。

在LTE模块中,RAN部分主要通过LteHelper模块配置,EPC部分通过EpcHelper的两个子类PointToPointEpcHelper和EmuEpcHelper配置。

3.2 无线接入网

3.2.1 创建eNB和UE结点

复制代码
//创建eNB和UE结点
NodeContainer enbNodes;
NodeContainer ueNodes;
enbNodes.Creare(1);
ueNodes.Create(1);

3.2.2 安装移动模型

复制代码
MobilityHelper mobility;                    //eNB移动模型
mobility.SetMobilityModel(
  "ns3::ConstantPositionMobilityModel");
mobility.Install(enbNodes);
BuildingsHelper::Install(enbNodes);
mobility.SetMobilityModel(                  //UE移动模型
  "ns3::ConstantPositionMobilityModel");
mobility.Install(ueNodes);                  //建筑模型
BuildingHelper::Install(ueNodes);
/*建筑模型可以模拟一个建筑结构中的无线网络环境*/

3.2.3 在结点中安装eNB与UE网络设备

复制代码
Ptr<LteHelper>lteHelper
  =VreateObject<LteHelper>();
NetDeviceContainer enbDevs;
NetDeviceContainer ueDevs;

//在结点中安装eNB网络设备
enbDevs=lteHelper->InstallEnbDevice(enbNodes);
//在结点中安装UE网络设备
ueDevs=lteHelper->InstallUeDevice(ueNodes);

eNB下行分组分发器(scheduler):可以在调用InstallEnbDevice()函数之前由LteHelper::Set-SchedulerType()函数配置,默认类型为比例公平算法(PfFfMacScheduler)。下行分组分发器负责为所有接入此eNB的UE分配网络资源,当有多个针对下行分组的分发器算法。

3.2.4 将UE接入eNB

复制代码
lteHelper->Attach(ueDevs,enbDevs.Get(0));

3.2.5 激活eNB与UE间的无线数据承载(Data Radio Bearer,DRB)

承载简单地理解就是一个具有相同QoS的业务流,在LTE模块中,数据必须要依附于承载才可以传输。

复制代码
enum EpsBearer::Qci q=EpsBearer::GBR_CONV_VOICE;
EpsBearer bearer(q);
lteHelper->ActivateDataRadioBearer(ueDevs,bearer);

3.3 核心网

纯RAN网络中的eNB和UE并不具有TCP/IP协议栈,为了与其他非LTE结点通信,还需要建立创建一个核心网(EPC),以用于RAN协议栈和TCP/IP协议栈之间的分组转换,这样RAN就可以对上层协议进行模拟分析。

3.3.1 创建EPC网络

P-GW/S-GW、MME和eNB之间通过有线信道连接。目前ns-3支持以下两种有线信道:

  • 纯ns-3模拟信道(点对点PPP网络):使用的助手类是PointToPointEpcHelper

  • 物理网络:使用的助手类是EmuEpcHelper,具体内容见ns-3仿真之与物理网络交互

    Ptr<LteHelper>lteHelper=
    CreateObject<LteHelper>();
    Ptr<PointToPointEpcHelper> epcHelper=
    CreateObject<PointToPointEpcHelper>();
    //创建EPC网络。结点将由PPP信道连接
    lteHelper->SetEpcHelper(epcHelper);

3.3.2 创建外部网络,并创建与P-GW/S-GW之间的PPP信道连接

复制代码
Ptr<Node>pgw=epcHelper->GetPgwNode();
//
Ptr<Node>remoteHost=remoteHostContainer.Get(0);

//
NetDeviceContainer internetDevices=
  p2ph.Install(pgw,remoteHost);

//
remoteHostStaticRouting->AddNetworkRouteTo(
  Ipv4Address("7.0.0.0"),
  Ipv4Mask("255.0.0.0"),
  1);

在LTE模块中,EPC为UE结点分配的IP地址范围是固定的,其网络地址为7.0.0.0,子网掩码为255.0.0.0。在为远端结点设置静态路由时,需要指定所有目的的IP地址属于7.0.0.0网段的分组都要发往其PPP网络设备,这样才能将分组最终传输给P-GW/S-GW。如果远端结点与P-GW/S-GW之间使用其他的网络结构和路由协议,则其路由设置也需要做相应的改变

3.3.3 创建eNB和UE

复制代码
//创建eNB和UE结点
NodeContainer enbNodes;
NodeContainer ueNodes;
enbNodes.Creare(1);
ueNodes.Create(1);

3.3.4 安装移动模型

复制代码
MobilityHelper mobility;                    //eNB移动模型
mobility.SetMobilityModel(
  "ns3::ConstantPositionMobilityModel");
mobility.Install(enbNodes);
BuildingsHelper::Install(enbNodes);
mobility.SetMobilityModel(                  //UE移动模型
  "ns3::ConstantPositionMobilityModel");
mobility.Install(ueNodes);                  //建筑模型
BuildingHelper::Install(ueNodes);

3.3.5 为UE安装TCP/IP协议栈

与其他脚本相同

3.3.6 为所有UE结点配置IP和网关地址

在EPC中,P-GW/S-GW统一为UE分配地址(网络地址为7.0.0.0,子网掩码为255.0.0.0),脚本需要为UE分配一个网关地址,即P-GW/S-GW即诶但中与eNB连接的网络设备IP地址,这样UE的上行分组才会被eNB转发至P-GW/S-GW

复制代码
//为UE自动分配IP地址
Ipv4InterfaceContainer ueIpIface;
ueIpIface=
  epcHelper->AssignUeIpv4Address(
  NetDeviceContainer(ueLteDevs));

//配置网关
for{uint32_t u=0;u<ueNodes.GetN();++u)
  {
    //ueStaticRouting是UE的静态路由对象

    ueStaticRouting->SetDefaultRoute(
      epcHelper->GetUeDefaultGatewayAddress(),
      1);
  }

3.3.7 将所有UE接入eNB

在存在EPC的情况下,LteHelper::Attach()会自动建立UE和P-GW/S-GW的承载,即EPS承载。不需要像纯RAN网络那样手动激活承载。

复制代码
for(uint16_t i=0;i<numberOfNodes;i++)
  {
    lteHelper->Attach(
      ueLteDevs.Get(i),enbLteDevs.Get(i));
    }

在LteHelper::Attach()函数中指定UE对象可对UE自动分配eNB。

3.3.8 为UE和远端结点配置应用层协议

与其他脚本没有差异

3.4 属性与trace

3.4.1 LteHelper中的属性设置

  • LteHelper中以SetXType()格式命名的成员函数用于设置一些关键C++基类的子类类型

  • 以SetXAttribute()格式命名的成员函数用于设置C++子类中的属性

    lteHelper->SetEnbAntennaModelType
    "ns3::CosineAntennaModel");
    lteHelper->SetEnbAntennamODELAttribute(
    "Orientation",DoubleValue(0));

3.4.2 LteHelper中的trace设置

LteHelper中的trace设置函数都以EnableXTrace()格式命名,这些函数会产生txt格式的trace文件

3.4.3 EpcHelper中的属性设置

PointToPointEpcHelper在EPC结点间建立PPP信道

EmuEpcHelper使用物理信道连接EPC中的结点

3.5 其他无线网络模块

3.5.1 移动模块(mobility model)

移动模型模拟的是无线网络中一个结点的移动轨迹,一般先使用PositionAllocator为移动结点分配初始位置,再为每个结点设置MobilityModel子类类型,确定移动轨迹计算算法。

3.5.2 传播模型(propagation model)

传播模型被用来计算在无线信道中的传播损耗和传播迟延

  • 传播损耗的基类是PropagationLossModel,一般用来计算接收端对一个分组的接收功率;
  • 传播延迟的基类是PropagationDelayModel,一般被用来计算分组在无线信道中的传播时长。

3.5.3 频谱模型(spectrum model)

目前被应用于Wi-Fi、LTE和LR-WPAN模块

3.5.4 天线模块(antenna model)

模拟不同角度上天线辐射场型的功率增益(power gain)

3.5.5 能量模型(energy model)

计算无线结点能量损耗的工具

3.5.6 建筑模型(building model)

通过自定义的路径损耗算法,建筑模型可以模拟出一个长方形建筑物内的无线网络环境,用户可以设置这个建筑物的楼层、房间数目、墙壁用料等环境细节。

相关推荐
树℡独2 天前
ns-3仿真之应用层(五)
服务器·网络·tcp/ip·ns3
树℡独2 天前
ns-3仿真之应用层(三)
运维·服务器·ns3
树℡独2 天前
ns-3仿真之应用层(一)
网络·ns3
wenxin-1 个月前
NS3学习-Packet数据包结构
网络·学习·ns3·ns3内核
巍巍泰然1 个月前
VSIM,SOFTSIM,eSIM,USIM的对比及通用架构思考(一)
ps·esim·lte·sim·softsim·vsim
赋能大师兄2 个月前
LTE RF射频优化指南
lte·射频优化·rf射频优化
赋能大师兄2 个月前
LTE FDD与TDD融合技术介绍
tdd·lte·fdd·融合方案
赋能大师兄2 个月前
4G LTE切换技术案例详解
lte·同频切换·异频切换
通信小呆呆5 个月前
从15kHz 到20MHz:为什么LTE带宽不能被子载波间隔整除?
信息与通信·lte