简析IPv6技术在物联网中的应用

时间:2014-05-18 00:00

物联网,英文名称叫“Internet of things”(简称IOT),也称为传感网、泛在网等。通俗地讲,物联网就是“物物相连的互联网”。即将各种信息传感设备通过互联网结合起来而形成的一个巨大网络。其中包含了两层意思:第一,物联网是互联网的延伸和扩展,其核心和基础仍然是互联网;第二,其用户端不仅仅是个人,还包括任何物品,终端可能很复杂,支持大量功能.也可能很简单.功能单一且无法加载很多复杂的处理算法。整个物联网的概念涵盖了从终端到网络、从数据采集处理到智能控制、从应用到服务、从人到物的方方面面,涉及众多的技术。从长远来看,物联网很有希望成为一个超越目前互联网产业规模的新兴产业,国际相关机构预测未来其规模将超过现有互联网规模的30倍以上。

 

 IPv6的物联网技术解决方案

 

  1.IPv6地址技术

  IPv6拥有巨大的地址空间,同时128 bit的IPv6的地址被划分成两部分,即地址前缀和接口地址。与IPv4地址划分不同的是,IPv6地址的划分严格按照地址的位数来进行,而不采用IPv4中的子网掩码来区分网络号和主机号。IPv6地址的前64位被定义为地址前缀。地址前缀用来表示该地址所属的子网络,即地址前缀用来在整个IPv6网中进行路由。而地址的后64位被定义为接口地址,接口地址用来在子网络中标识节点。在物联网应用中可以使用IPv6地址中的接口地址来标识节点。在同一子网络下。可以标识264个节点。这个标识空间约有185亿亿个地址空间.这样的地址空间完全可以满足节点标识的需要。面,IPv6采用了无状态地址分配的方案来解决高效率海量地址分配的问题。其基本思想是网络侧不管理IPv6地址的状态,包括节点应该使用什么样的地址、地址的有效期有多长.且基本不参与地址的分配过程。节点设备连接到网络中后。将自动选择接口地址(通过算法生成IPv6地址的后64位),并加上FE80的前缀地址,作为节点的本地链路地址,本地链路地址只在节点与邻居之间的通信中有效,路由器设备将不路由以该地址为源地址的数据包。在生成本地链路地址后,节点将进行DAD(地址冲突检测),检测该接El地址是否有邻居节点已经使用,如果节点发现地址冲突,则无状态地址分配过程将终止,节点将等待手工配置IPv6地址。如果在检测定时器超时后仍没有发现地址冲突,则节点认为该接13地址可以使用,此时终端将发送路由器前缀通告请求.寻找网络中的路由设备。当网络中配置的路由设备接收到该请求.则将发送地址前缀通告响应.将节点应该配置的IPv6地址前64位的地址前缀通告给网络节点.网络节点将地址前缀与接口地址组合,构成节点自身的全球IPv6地址。

  另一方采用无状态地址分配之后,网络侧不再需要保存节点的地址状态,维护地址的更新周期,这大大简化了地址分配的过程.网络可以以很低的资源消耗来达到海量地址分配的目的。

  2.IPv6的移动性技术

  IPv6协议设计之初就充分考虑了对移动性的支持。针对移动IPv4网络中的三角路由问题.移动IPv6提出了相应的解决方案。

  首先.从终端角度IPv6提出了IP地址绑定缓冲的概念,即IPv6协议栈在转发数据包之前需要查询IPv6数据包目的地址的绑定地址。如果查询到绑定缓冲中目的IPv6地址存在绑定的转交地址,则直接使用这个转交地址为数据包的目的地址。这样发送的数据流量就不会再经过移动节点的家乡代理,而直接转发到移动节点本身。

  其次。MIPv6引入了探测节点移动的特殊方法,即某一区域的接入路由器以一定时间进行路由器接口的前缀地址通告.当移动节点发现路由器前缀通告发生变化,则表明节点已经移动到新的接人区域。与此同时根据移动节点获得的通告,节点又可以生成新的转交地址,并将其注册到家乡代理上。

 

  MIPv6的数据流量可以直接发送到移动节点,而MIPv4流量必须经过家乡代理的转发。在物联网应用中。传感器有可能密集地部署在一个移动物体上。例如为了监控地铁的运行参数等,需要在地铁车厢内部署许多传感器.从整体上来看,地铁的移动就等同于一群传感器的移动,在移动过程中必然发生传感器的群体切换,在MIPv4的情况下,每个传感器都需要建立到家乡代理的隧道连接,这样对网络资源的消耗非常大,很容易导致网络资源耗尽而瘫痪。在MIPv6的网络中,传感器进行群切换时只需要向家乡代理注册。之后的通信完全由传感器和数据采集的设备之间直接进行,这样就可以使网络资源消耗的压力大大下降。因此。在大规模部署物联网应用,特别是移动物联网应用时,MIPv6是一项关键性的技术。

  3.IPv6的服务质量技术

  在网络服务质量保障方面,IPv6在其数据包结构中定义了流量类别字段和流标签字段。流量类别字段有8位,和IPv4的服务类型(ToS)字段功能相同,用于对报文的业务类别进行标识;流标签字段有20位,用于标识属于同一业务流的包。流标签和源、目的地址一起.惟一标识了一个业务流。同一个流中的所有包具有相同的流标签,以便对有同样QoS要求的流进行快速、相同的处理。

  目前,IPv6的流标签定义还未完善。但从其定义的规范框架来看,IPv6流标签提出的支持服务质量保证的最低要求是标记流,即给流打标签。流标签应该由流的发起者信源节点赋予一个流,同时要求在通信的路径上的节点都能够识别该流的标签.并根据流标签来调度流的转发优先级算法。这样的定义可以使物联网节点上的特定应用有更大的调整自身数据流的自由度,节点可以只在必要的时候选择符合应用需要的服务质量等级.并为该数据流打上一致的标记。在重要数据转发完成后。即使通信没有结束节点也可以释放该流标记,这样的机制再结合动态服务质量申请和认证、计费的机制,就可以做到使网络按应用的需要来分配服务质量。同时。为了防止节点在释放流标签后又误用该流标签.造成计费上的问题。信源节点必须保证在120 s内不再使用释放了的流标签。

  在物联网应用中普遍存在节点数量多.通信流量突发性强的特点。与IPv4相比,由于IPv6的流标签有20 bit,足够标记大量节点的数据流。同时与IPv4中通过五元组(源、目的IP地址,源、目的端口、协议号)不同,IPv6可以在一个通信过程中(五元组没有变化),只在必要的时候数据包才携带流标签,即在节点发送重要数据时,动态提高应用的服务质量等级,做到对服务质量的精细化控制。

  当然IPv6的QoS特性并不完善,由于使用的流标签位于IPv6包头,容易被伪造,产生服务盗用的安全问题。因此.在IPv6中流标签的应用需要开发相应的认证加密机制。同时为了避免流标签使用过程中发生冲突,还要增加源节点的流标签使用控制的机制,保证在流标签使用过程中不会被误用。

 4.IPv6的安全性与可靠性技术

 

首先.在物联网的安全保障方面。由于物联网应用中节点部署的方式比较复杂.节点可能通过有线方式或无线方式连接到网络.因此节点的安全保障的情况也比较复杂。在使用IPv4的场景中一个黑客可能通过在网络中扫描主机IPv4地址的方式来发现节点,并寻找相应的漏洞。而在IPv6场景中.由于同一个子网支持的节点数量极大(达到百亿亿数量级),黑客通过扫描的方式找到主机难度大大增加。在口基础协议栈的设计方面,矾6将IPsec协议嵌入到基础的协议栈中。通信的两端可以启用IPSec加密通信的信息和通信的过程。网络中的黑客将不能采用中间人攻击的方法对通信过程进行破坏或劫持。同时,黑客即使截取了节点的通信数据包,也会因为无法解码而不能窃取通信节点的信息。

  同时,由于IP地址的分段设计,将用户信息与网络信息分离.使用户在网络中的实时定位很容易,这也保证了在网络中可以对黑客行为进行实时的监控,提升了网络的监控能力。

  在另一个方面,物联网应用中由于成本限制,节点通常比较简单,节点的可靠性也不可能做得太高,因此,物联网的可靠性要靠节点之间的互相冗余来实现。又因为节点不可能实现较复杂的冗余算法,因此一种较理想的冗余实现方式是采用网络侧的任播技术来实现节点之间的冗余。采用IPv6的任播技术后.多个节点采用相同的IPv6任播地址(任播地址在IPv6中有特殊定义)。在通信过程中发往任播地址的数据包将被发往由该地址标识的“最近”的一个网络接口,其中“最近”的含义指的是在路由器中该节点的路由矢量计算值最小的节点。当一个“最近”节点发生故障时.网络侧的路由设备将会发现该节点的路由矢量不再是“最近”的.从而会将后续的通信流量转发到其他的节点。这样物联网的节点之间就自动实现了冗余保护的功能。而节点上基本不需要增加算法,只需要应答路由设备的路由查询,并返回简单信息给路由设备即可。

  结束语

  IPv6具有很多适合物联网大规模应用的特性,但目前也存在一些技术问题需要解决,例如,无状态地址分配中的安全性问题.移动IPv6中的绑定缓冲安全更新问题,流标签的安全防护,全球任播技术的研究等。虽然IPv6还有众多的技术细节需要完善,但从整体来看,使用IPv6不仅能够满足物联网的地址需求,同时还能满足物联网对节点移动性、节点冗余、基于流的服务质量保障的需求,很有希望成为物联网应用的基础网络技术。