陶铭
(东莞理工学院 计算机科学与技术学院,广东 东莞)
2010年3月,在我国政府工作报告所附的注释中,将物联网定义为通过信息传感设备,按照约定的协议,把任何物品与互联网连接起来,进行信息交换和通讯,以实现智能化识别、定位、跟踪、监控和管理的一种网络[1]。它是在互联网基础上的延伸和扩展,也可称之为“物物相连的互联网”。普通对象设备化、自治终端互联化以及普适服务智能化是物联网的三个重要特征。当前,随着物联网技术的发展及应用的广泛深入,物联网工程专业成为国内各高校新开热门专业。该专业旨在为推进未来信息社会可持续发展而培养物联网产业领域内的工程型与应用型人才,主要训练学生在获得良好的科学与人文素养基础之上,充分理解物理世界的信息感知、数据标识及传输、分析、处理等各阶段原理、技术与方法,重点掌握广泛领域内物联网应用系统设计与开发的知识与技能,以此为未来产业发展、地方经济及信息化建设服务。作为一门新兴专业,知识面涵盖了计算机技术、通信技术、自动控制技术、信息处理技术和互联网技术等,因此,在专业课程(理论课程及实践课程)体系以及知识体系等各方面均需进行适用、合理、有效及科学的探索,据此制定并完善切实可行的教学方案、培养计划以及人才培养方案等[2,3]。
物联网作为一种系统网络,与其他网络一样,也有其内部特有的架构。目前广泛接受的物联网系统架构可划分为四个层次,可根据物联网应用系统开发的四个功能部分:信息生成、传输、处理和应用,对应地将物联网系统架构划分为感知识别层、网络构建层、管理服务层和综合应用层,具体如图1所示[4]。
图1 物联网系统架构模型
其中,感知识别层位于物联网四层系统架构模型的最底端,是上层结构的基础,具体可利用 RFID、传感器、条码识别以及多媒体信息采集等设备或装置随时随地采集物理世界的信息。网络作为物联网最重要的基础设施之一,网络构建层主要起纽带的作用,在物联网四层系统架构模型中连接感知识别层和管理服务层,高效、稳定、及时、安全地在上下层之间传递数据。管理服务层在物联网四层系统架构模型中位于感知识别层和网络构建层之上,综合应用层之下,是物联网智慧的源泉,主要解决数据存储、数据检索、数据使用以及数据不被滥用等问题。物联网丰富的内涵催生出更加丰富的外延应用,相关的基于物联网技术的应用可在综合应用层中定义。目前,物联网作为我国战略新兴产业重点发展的方向和技术之一,已被广泛应用于智能家居、智能安防监控、智能楼宇、智能冷链物流、智慧医疗、国防军事等诸多领域。
图2 物联网通信系统结构
当前也有相关研究将四层系统架构模型中的相关功能进行了重新规划,并划分成了三层系统架构模型,如图1所示。按照物联网三层系统架构模型,物联网的通信系统可大体分为两大类:感知控制层通信和网络层传输通信,其基本结构如图2所示[5]。在感知控制层通信系统中,主要是使用感知控制设备所具有的通信能力,将所感知的信息在较短的通信距离内采用短距离有线通信系统或短距离无线通信系统传送到信息汇聚系统,并由该系统传送(或互联)到网络传输层。一般情况下,若干个感知控制设备负责某一区域,整个物联网可划分为众多个感知控制区域,每个区域都通过一个汇聚设备接入到互联网中,即接入到网络传输层。其通信的特点是传输距离近,传输方式灵活、多样。感知控制层中的短距离有线通信系统主要是由各种串行数据通信系统构成的,目前使用较为广泛的技术有RS-232/485、USB、CAN工业总线及各种串行数据通信系统。感知控制层中的短距离无线通信系统主要由各种低功率、中高频无线数据传输系统构成,目前使用较为广泛的技术包括蓝牙、红外、超宽带、WiFile、GSM、3G4G5G等。对于网络层传输通信系统主要是由数据通信主机(或服务器)、网络交换机、路由器等构成的,在数据传送网络支撑下的计算机通信系统,一般由公众通信网络及专用通信网络构成,主要是支持感知信息的大范围远距离传输。
目前,大部分高校一般按照物联网系统架构所划分的三个层次来设置物联网专业核心课程,如表1所示。比如,对应感知层,开设物联网感知、识别与控制技术,传感器原理及应用,物联网数据智能感知技术等课程,要求学生掌握物联网信息标识、采集感知等方面的知识;对应网络层,开设物联网通信技术、无线通信技术、无线传感器网络等课程,要求学生掌握主流的网络通信技术、数据传输技术及网络接入技术等;对应应用层,开设物联网数据处理与融合,云计算与大数据等课程,要求学生掌握处理、识别和控制相关的技术[6]。
值得一提的是,网络层相关课程所讲授的网络通信技术、数据传输技术及网络接入技术,知识涵盖了离散数学、计算机网络、通信原理等多个方面,因此这些课程组成了理论性和应用性都很强的专业课程群。作为网络技术类理论课程,在实际教学过程中,通常会比较偏向于理论知识的讲授,内容相对抽象空洞,不利于学生了解和掌握各种网络通信技术、数据传输技术及网络接入技术的具体工作原理及运行方式。并且针对不同网络技术的课程实验需要不同的硬件环境,而课程实验相关的硬件平台通常价格不菲。因此,在这类课程的实践教学中,充分采用适用的开源网络仿真软件进行网络仿真实验,不仅可以节省采购硬件平台产生的实验费用,还可以集教学、学习、设计及创新于一体,拓展教学和实验的深度和广度,提高学生学习理论知识的兴趣,改善教学效果。
表1 结合物联网(三层)系统架构的专业核心课程设置
NS-3和OMNet++均是基于离散事件仿真(DES, Discrete Event Simulation)的网络仿真软件。离散事件仿真器原理如图3所示。作为一种基于组件的、模块化的网络仿真平台,OMNeT++近年来在科学和工业领域逐渐流行。其具备强大完善的图形界面接口,可以运行在Unix和Windows 环境中[7]。然而OMNeT++并不是一款真正意义上的网络仿真器,而只是一个通用的离散仿真框架。通过INET包,OMNeT++提供了对网络建模的能力。另外,MF和Castalia模块提供了对移动Adhoc和无线传感器网络的仿真功能。OMNeT++在简单模块中实现基本的协议行为,然后通过组合这些简单模块成复合模块而成为仿真节点,OMNeT++中的网络仿真就是这些复合模块的组合。OMNeT++也是采用C++来实现的。但是使用了一种网络描述语言NED来描述网络框架。通过更改NED描述文件即可改变OMNeT++的仿真行为,例如可以更改网路中节点的数量,在这种情况下,网络节点的实现模块是在仿真执行过程中动态生成的。
在现有主流的网络仿真软件,如:OPNET、NS-2、GTNetS和yans等的基础上,总结它们的优缺点, NS-3应运而生[8]。NS-3仍然采用C++语言来实现仿真节点(和NS-2一样),然而仿真过程却不再采用oTcl来控制,换作通过纯C++语言实现,部分还可以使用Python语言实现。此外,NS-3还集成了GTNetS的架构设计概念和代码,在可扩展性方面进一步提升。但是,这些设计方面的改动也带来了兼容性方面的问题,比如:NS-2的模块移植到NS-3上都需要手工的移植过程。当然,除了性能方面的改进之外,NS-3还支持和物理实现(如:BSD Socket或者POSIX线程等)的集成。
图3 离散事件仿真器原理
基于NS-3的仿真过程接近于真实系统。相关物理实体概念在NS-3中被抽象成相应的网络构件,比如:仿真节点如同一个计算机外壳,可以配置网卡、协议栈、IP地址和应用程序等。图4按照TCP/IP 的网络体系结构,自顶向下从应用层到物理层罗列了NS-3中实现的功能。由于NS-3是一个开源项目且具有很强的可扩展性,使用人员可以根据自己的需要自定义开发新的模块,如:网络模块(如:Mesh、WiMax、LTE、UAN等)、网络设备模块(如:Click、Openflow等)和并行分布式计算模块(如:MPI等)等。此外,emu模块还可以将NS-3在试验床或虚拟机环境下进行集成。
图4 NS-3组织结构图
在NS-3中定义的网络构件可以分为四类。(1)计算机节点设备(Node):可以添加应用、协议以及外部接口等;(2)网络设备(NetDevice):安装在节点内使节点可以通信的网卡及其驱动,目前,有NS-3中可以配置各种不同类型的网卡,如:CsmaNetDevice、PointToPointNetDevice以及WifiNetDevice等;(3) 信 道(Channel): 处理传输媒介的抽象,目前有以下几种类型:CsmaChannel、PointToPointChannel、WifiChannel;(4)应用程序(Application):借助应用程序可以产生和消费网络流量,驱动网络模拟器,包括Udp EchoClientApplication、Udp Server Application等;(5)Topology 生成器:对应每种拓扑连接有不同的Helper,可以实现设备安装、连接、属性设置等。此外,在NS-3中还实现了三个支持系统。具体地,Attribute属性系统可以用来设置对象属性等信息,Logging 日志系统可以用来记录用户程序或系统的运行情况,以及Tracing 跟踪系统可以用来实现结构化的输出。
在使用NS-3实现具体的网络仿真过程中,搭建NS-3网络仿真场景与在物理世界中安装主机和连接网络类似[9,10]。首先,生成网络仿真节点,并为网络仿真节点配置好网络设备、协议栈、应用程序,以及分配端口号和IP地址等。然后,与TCP/IP 网络体系结构中数据包流动一样,应用程序产生数据,并自顶向下逐层封装,将数据封装成报文,由报文封装成报文段,由报文段封装成IP数据报,由IP数据报封装成数据帧,再形成二进制的比特流,最终变成信号通过传输媒介传输到目的节点。目的节点收到数据包后再自低向上逐层解封装并转交,最后经由传输层的端口号转交给相应的应用程序。至此,在NS-3中完成一次和真实网络极其相近的完整的数据传输过程。
当仿真结束后,为便于更好地理解网络原理,可以采用多种手段收集、整理、分析以及再现网络。在NS-3中,可以通过可视化界面(如:PyViz或NetAnim)直观地观测网络运行的过程,包括仿真节点的拓扑结构、移动和数据包的流动等。除此之外,可以利用NS-3的追踪系统捕获仿真过程中产生的数据包,对网络协议的格式进行验证,以及对数据包的迟延、网络流量、丢包率和节点消息缓存队列等进行测试及分析。
NS-3在物联网工程专业网络技术类相关课程教学中的运用包括两方面。一方面主要体现在理论讲授过程中的运用,另一方面主要体现在实验实践过程中的运用。在日常理论教学过程中,可以使用NS-3仿真实现一些抽象的原理和算法,在具体讲授过程中可以结合NS-3中仿真过程的动态效果,将抽象变为形象,可以帮助同学们更加直观地观察到相关的网络理论是如何实现的,同时还可以让同学们接触到物联网网络技术科学研究的相关内容,开阔视野,增强学习的兴趣,使枯燥乏味的课堂氛围变得更加具有吸引力和更加活跃。在日常实验实践过程中,由于NS-3已集成了多种网络协议,同时,还可以根据需要,将理论教学过程中讲授的网络通信协议、数据传输协议、网络接入协议编写基于NS-3的仿真实验指导书,包括验证性试验和设计性试验,可以对大规模的固定网络、无线网络、卫星网络等进行仿真。通过这些实验,可以使学生扩展网络知识,提高动手能力,加深对物联网中网络通信技术、数据传输技术、网络接入技术原理的理解和掌握,增强学习的兴趣,提高实验教学的效果。
将NS-3运用于物联网工程专业网络技术类相关课程教学,可以仿真实现网络通信技术、数据传输技术、网络接入技术课程中的大部分原理及协议。同时,借助NS-3,还可以结合这些原理、协议设计新的目标网络,模拟网络流量在实际网络中传输及交换等过程。在日常理论及实验实践教学过程中的经验表明,将NS-3引入物联网工程专业网络技术类相关课程教学,一方面极大地增强了学生的学习兴趣,提高了学生网络分析与设计的能力以及实践动手能力;另一方面开阔了学生的视野以及激发了学生探索的兴趣,同时,也有助于提高教学效果和教学质量。