首页 > 编程知识 正文

计算机网络模拟器,地铁站计算机联锁系统仿真

时间:2023-05-06 09:17:11 阅读:166503 作者:2843

wxdgb安静的害羞

摘要:在计算机网络课程教学中,网络分层和各层功能定义是学生应掌握的核心知识点。 为了让学生对相关知识点有明确的认识,研究中将网络仿真器NS3引入到教学中。 通过让学生编程各个层次的功能,可以更好地掌握计算机网络的层次结构概念,巩固对相关知识点的理解,同时也很好地提高学生的编程能力。

关键词:互联网仿真器; 计算机网络; 课程

文章编号: 2095-2163(2019 ) 03-0187-03中图分类号: G434文献标识代码: a

1计算机网络分层概念

计算机网络是一门理论性很强、实践性很强的专业课程,在中国高等学校计算机类和电子信息类专业开设。 本质上,计算机网络技术是基于开放系统的互联思想,其体系设计是基于国际公开的规范。 通过标准设计导出网络互操作的通信规程,使基于不同硬件技术的节点可以通过通信交换信息。 因此,在课程内容结构中,网络分层设计思想是课程的中心重点内容。 网络的分层设计如图1所示。

对计算机网络进行分级描述,将网络通信划分为各个子层,可以有效降低网络协议的设计复杂度[1]。 通过网络功能的分层设计,可以给网络互联带来很多便利。 关于这一点可以研究的事情如下。

)分层后,各层功能相互独立,各层无需了解其他层的详细功能,设计人员只需要了解各层接口的协议规范,从而降低了系统在网络定义和功能实现上的复杂度。

)分层后,只要层间接口不变,各层的变化不会导致其他层的重新设计。 因此,在结构上,每层都可以用最新的技术独立研发,实现系统的灵活性,同时也便于维护,促进标准化。

根据开放系统互连(Open System Interconnection )的定义,网络的层次划分如图1所示。 作为本文课堂教学实验的一部分,本研究按照从低到高的顺序将网络体系分为物理层、数据链路层、网络层、传输层以及APP应用层。

2 NS3网络仿真器介绍

由于以上层次思想是抽象的,光靠课堂讲授不能使学生很好地理解和掌握相关概念。 为了达到理想的教学效果,采用NS3网络仿真器作为辅助教学工具,通过编程网络各层的功能,使学生对分层的目的和功能形成明确的概念。

NS3是一个离散事件模拟器,从2006年的开源项目[2]开始,下载地址: https://www.nsnam.org/releases /网络模拟器都用c编写因此,模拟脚本用c或Python语言编写,在nam中进行演示,同时其他工具用trace文件分析模拟过程。 如果要使用NS3进行网络模拟,则必须依次展开以下步骤:

(1)选择或创建定义相应的模块。

)2)编写网络仿真脚本。

)3)实验模拟。

)4)数据收集与分析。

(5)根据仿真结果进行代码或参数调整。

这里,在生成模拟脚本时,包括定义节点、定义节点/地址类型、队列模型、网卡、APP应用、协议栈等定义节点; 安装用于定义物理层薄发带和MAC层协议的网络设备,如CSMA、WiFi、WiMAX、LTE、点对点通信等; 定义网络层和传输层协议栈。 其中,网络层协议可以选择OLSR、AODV或Global。 此外,还可以定义IPv4/IPv6格式等。 传输层可以是UDP或TCP。 安装APP应用层协议; 定义其他配置,例如节点移动性和能量管理; 设定模拟时间及相关参数[3]。

3 NS3仿真器使用介绍

NS3网络仿真器的层功能模块如图2所示。 图2中的节点定义包括网络设备类型、每层协议栈、扁平发带和APP应用层参数。 可以将节点视为空的终端框架,通过添加相应的APP应用层功能、协议栈、扁平发带类型等来完成节点的定义。 协议栈包括传输层控制、路由协议和地址管理。 在扁平发带的定义中,可以根据实际情况加入延迟、能量消耗、误码率、噪声等参数。

通过以上仿真器体系结构,仿真器的设计是按照网络的层次结构进行描述的,因此在仿真器的下面写入仿真文本定义各层的功能,可以实现网络虚拟化仿真。 为了说明仿真器的功能,以ad hoc网络仿真为例分析论证了NS3的仿真功能。 ad hoc是没有控制中心的分布式网络,每个网络节点都可以移动,并在移动过程中交换数据。 各节点通过无线连接,由其他节点中继,将数据传送到目的地节点。 因此,每个节点都是路由器,负责发现和维护路由。 由于篇幅的限制,本文从文献[4]的源代码中提取定义各层功能的重要部分。 关于各部分的基础设计,请参照以下内容。

)1)定义物理层扁平发带

yanswifichannelhelperchannel=yanswifichannelhelper: default (;

yanswifiphyhelperphy=yanswifiphyhelper: default (;

phy.setchannel(channel.create ) );

)2)定义MAC层协议

wifi帮助

r wifi;

wifi.SetStandard(WIFI_PHY_STANDARD_80211a);

wifi.SetRemoteStationManager("ns3::Constant RateWifiManager","DataMode",StringValue("OfdmRate6Mbps"));

(3)定义移动方式

mobility.SetMobilityModel ("ns3::Random Walk2dMobilityModel",

"Bounds", RectangleValue (Rectangle (-500, 500, -500, 500)));

mobility.Install (AdHocNode);

(4)定义传输层与网络

PacketSinkHelper sink ("ns3::UdpSocket Factory",

InetSocketAddress (Ipv4Address::GetAny (), port));

Ipv4GlobalRoutingHelper::

PopulateRoutingTables ();

(5)定义应用层数据

NS_LOG_INFO ("Create Applications.");

uint16_t port = 9999;

OnOffHelperonOff1("ns3::TcpSocketFactory",Address(InetSocketAddress(AdHocIp.GetAddress(0),port)));

onOff1.SetAttribute ("OnTime", StringValue ("ns3::ConstantRandomVariable[Constant=1]"));

onOff1.SetAttribute ("OffTime", StringValue ("ns3::ConstantRandomVariable[Constant=0]"));

由以上代码可以看出,该仿真器实际上可以根据各层的功能进行灵活定义。通过课堂讲授层的基本功能,再通过仿真器对各层相关功能的定义及实现,仿真后通过收集数据并加以分析(见图3),观察数据是否与预期的相符。在整个过程中,学生能够对分层概念及层功能形成清晰的认识[4]。

4 结束语

作为一个开源的网络仿真器,NS3根据计算机网络的层次结构对各层进行了功能性定义。在课堂接受基本概念的基础上,学生通过课后的编程,以课程项目的形式来实现网络的定义。在此过程中,学生可以极大地加深对网络设计分层思想的理解,从而获得良好的教学效果。

参考文献

[1]KUROSE J F ROSS K W. Computer Networking:A top-down approach[M]. 陈鸣 译. 6th ed. 北京:机械工业出版社, 2014.

[2] 拼搏的电源. 开源网络模拟器ns-3:架构与实践[M]. 北京:机械工业出版社,2019.

[3] 从容的石头, 拼搏的金毛. ns-3网络模拟器基础及应用[M]. 北京:人民邮电出版社, 2014.

[4] CSDN. ns3模擬无线Ad hoc网络通信[EB/OL]. [2018-04-12]. https://blog.csdn.net/xiao_sheng_jun/article/details/79921889.

[5] ns-3 project. ns-3 manual[EB/OL].[2019-04-16]. https://www.nsnam.org/docs/manual/html/index.html.

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。