摘要:物联网是目前我国发展最快,应用范围最广的一种新型网络,其本质属于M2M系统。由于物联网的异构性较强,因此导致各种通信协议、组网方式和数据类型呈现出多样化的特点,这对数据的快速传输造成了极大的障碍。该文在分析了M2M系统工作原理和运行机制的基础上,采用网络地址转换NA丁技术与物联网技术相结合,提出了一种基于STUN和STUNT协议的通信方案。在保持网络拓扑结构不变的条件下,通过添加两个客户端模块即可实现数据的跨网传输,具有一定的实用价值。
关键词:物联网;M2M系统;NAT;STUN;STUNT
《移动通信》杂志为我国移动通信事业的起步、发展和产业的形成都做出了巨大的贡献,在业内具有广泛而深远的影响,是移动通信领域的决策人员、科研生产人员、经营管理人员、大专院校师生和广大移动通信用户及移动通信爱好者的必备刊物,也是图书和情报部门的首选刊物。
1概述
在进入快速发展的信息化时代以后,物联网作为后互联网+时代的代表性产物,收到了社会各界的普遍关注,各国都纷纷在该领域内加大了投资和人力资源配置规模,相关的标准、协议也不断地推出。物联网的推广,将物理世界与信息时间有机的结合,使得人们从自然界乃至各种工业生产场合获取信息并加以快速分析的能力大大提高了,以此为基础,各种智能化管理和监控系统也不断地被研发和投入使用,有力促进了生产力的进步。从广义上讲,物联网属于M2M系统的一部分,及人机之间和机器之间的双重交互,而前者在互联网时代已经得到了发展成熟,因此,对于物联网而言,M2M研究的重点实质上是落在了机器间的快速智能化通信方面。
在物联网的M2M通信体系中包含多种组网和数据传输类型,一般以Internet为核心网络、以固定和移动IP为接入网络,从而实现将处于各地现场的IP进行终端互联,这也是最能体现物料网性能优势的一种通信模式。但这种模式在现有的网络环境中存在一些问题,例如当通信受到地址数量限制和网络安全威胁时,如何自适应的解决在机器之间的传输,以及在自适应组网的过程中如何合理的分配节点能耗等。本文以物联网通信特点为参考依据,提出对现行的STUN和STUNT协议的应用进行改进,并结合NAT穿越技术来完成M2M设备间通信的自适应调整,最终形成了一套行之有效的M2M通信解决方案。
2M2M系统的通信特点
由于M2M系统具有边界明晰的功能域划分,所以其通信特点主要反映在不同域的界面处,具体表现在连接设备域与网络域的M2M网关处以及连接应用域与网络域的服务能力处。
M2M网关作为典型的通信分界点,具有双重身份,即网络域边缘节点和设备与的最高层节点。利用这一特点,M2M网关,承担起了与设备域中如传感器、射频读写器等各种终端设备的通信交互。在M2M分布式系统中,大量来源于不同域的数据均在此处完成转换工作,尤其是一些异构网络中的数据,更需要在此处进行协议的映射,因此可以说,网关陸能的优劣,直接决定了M2M系统整体的通信质量。
3NAT穿越技术
3.1NA了穿越原理与M2M通信的有机结合
网络地址转换NAT技术是互联网为了解决内网至外网的数据传输而采用的一项地址映射技术,通过采用NAT,极大节约了IP地址的消耗,同时也很好隐藏了企业内部的网络布局状况,随着IP网络应用的迅速扩张,NAT技术在迅速推广的过程中也得到了不断的改善。对于M2M通信而言,NAT技术的应用将显著提高系统通信的效率,尤其当M2M局域网是EPC系统、WPAN等直接支持IP协议的网络时,就可方便地将NA了技术融入至M2M网关中,使得M2M网管身兼二职,在完成协议映射任务的同时也解决了地址映射的需求。而当M2M局域网不支持IP协议时,则需要将在M2M网关中配置相关的协议转换功能。
在采用NAT技术后,网络被分割成本地网络与公共网络两种不用的应用域。而在传统的NAT技术中,处在异地的两个本地网络中的用户是无法完成直接通信的,因为这两个用户均只拥有本地地址,因而无法穿过公共网络,同时处于公共网络中的某站点也无法首先向本地网络中的某节点发起通信,这显然造成了网络通信的局限性,为了解决这一问题,各种NAT穿越技术被研发问世,主要有ALG、UPnP、STUN/STUNT等。
3.2STUN协议
STUN是一款基于C/S模式的通信协议,其主要作用是帮助本地网络中的客户端主机获得位于公共网络中的目标服务器的IP地址和服务进程启用的端口,并将该公网地址夹带在用户数据包中,这样就可有效地减少网络通信开销,当用户数据包到达NA了出口处时,即可从报文头部中取出对应的源地址与目的地址,并根据预先保存的映射表进行IP地址的转换。图1描绘了STUN的工作流程,通过该机制,即可解决本地网络与公共網络中的两个节点之间的通信障碍问题。
3.3STUN了协议
M2M系统中大量的通信是由终端发起,如智能终端定期以UDP数据报的方式向应用系统发送收集到的信息或向控制中心发送报警信息,以及终端之间定期交换报文等,STUN很好地满足了这一应用需求。但是,在一些特殊的情况下,控制中心需要穿越M2M网关对位于NAT后端的终端进行远程管理,或应用系统需要主动向指定的终端发送请求报文,这时只能处理UDP数据报的STUN协议就无能为力,可以采用支持了CP报文段的STUNT协议来解决这一问题。图2描绘了一种典型的STUNT协议的工作流程。
4M2M通信方案的设计
在对STUN和STUNT进行对比分析后,下一步工作就是在这两种协议的基础上,结合目前M2M系统的通信状况,设计一款具有实用性的通信方案。在参考了大量文献之后,本位设计的具体方案如图3所示。在本方案中,除STUN、STUNT服务器和M2M应用服务器需要位于公共网络外,其余终端全部交由NAT负责管理的本地网络中,以充分利用NAT穿越技术带来的优势。另一方面,终端设备的IP地址与互联网中其他设备的IP地址结构一致,但应用方式有所区别,通过这样的设置,就可借助NAT穿越技术完成M2M设备之间的点对点通信,同时有效的完善了M2M设备的地址分配与管理问题.
观察上图可以发现,图中的任意一台M2M设备均被配置了一个全网唯一的ID,并在该设备中设置了一个STUN/STUNTClient模块,而在NA了服务器中结合了服务器进程STUN/STUNT Server,用来负责对客户端发来的请求进行分析和处理,同时负责识别M2M设备端的NAT類型。集成了用户注册和认证功能的M2M应用服务器负责对M2M设备ID的管理,并记录M2M设备的IP地址、端口号、NAT类型等信息。
从方案执行流程方面来分析,可以分为三种情况,现对其进行逐一讨论:
(1)M2M设备向M2M应用服务器发起通信
这种通信情况是物联网中最常见的一种,由终端设备负责在感知层采集数据,并将其通过各种通信网络传输至服务器进行处理,这种传输模式既可以采用实时化的快速传输,也可采用定期传输方法,待数据有了一定量的的积累后再统一传送。由本文提出的通信模式可知,数据的传输方向是从本地网络到外部的公共网络的,因此需要由NAT允许其建立UDP和TCP连接请求。
(2)M2M设备之间的通信
在这种通信模式下,用户数据通常在STUN协议下被封装成UDP用户数据报的形式进行传送,以尽可能提高数据传输的实时性能。由于参与通信的M2M设备均位于本地网络中,因此可以利用其本地IP地址直接进行通信,而位于不同本地网络中的M2M设备则可以通过NAT穿越技术完成数据传输。本方案中所设计的不同本地网络间的M2M设备通信过程如图4所示。
(3)M2M应用服务器向M2M设备发起通信
在大多数情况下,都是有终端设备向服务器发起通信,服务器保持监听并被动地接受终端发来的请求,但在某些特殊的情况下(如服务器需要对终端进行远程控制),服务器也可主动向终端发起通信,公共网络中的服务器向本地网络中的终端设备发起TCP连接时,可采用支持TCP的STUNT协议来完成这一工作。这一过程与图3所描述的流程向类似,在M2M设备已经注册的情况下,M2M应用服务器首先把通信建立请求发给STUNT Server,STUNT Server将其转给M2M终端,后者在收到请求报文后将发回确认反馈,服务器再对此反馈做出响应,进过三次握手的过程即可建立可靠地了CP连接通道,从而实现从公共网络到本地网络的穿越。
5总结
本文提出了一种基于STUN和S7WUN了技术的M2M通信方案,较为有效地解决了M2M设备间的数据通信障碍问题,为该类型通信方案的设计工作提供了良好的参考借鉴作用。相信随着后期实践调整工作的不断推进,本方案会进一步完善,成为一款真正具有实用价值的通信方案。