3 可靠性机制分析
3.1 概述
传输层的协议是实现可靠传输的协议栈之一,众所周知,TCP和UDP是当今互联网运用最为广泛的传输层协议,这给传统网络的可靠性传输提供了有效保障。然而,无线传感器网络本身的特点决定了TCP和UDP是不适合用于WSNs的。TCP在数据传输之前必须先建立端到端的连接,这些连接的过程会给无线传感器网络带来很大的开销,增加了对拥有限制性资源的WSNs的资源的消耗,减少了网络的生命周期。同时,TCP端到端的丢失恢复机制降低了网络的吞吐量,增加了传输延时。另外,TCP和UDP是在一对一的通信模式上建立的,并不适合用在多对一通信模式的无线传感器网络中。所以,在此,我们需要寻求其他能有效的提高WSNs可靠性的方法,本文将重点放在了链路层重传和应用层的数据编码上。
3.2 链路层的数据重传
在错误控制方面,WSNs中无线链路的数据丢失率和破坏率比有线链路要高很多。无线传感器节点之间的通信信道受环境等因素的影响通常很不稳定,随着传感器节点的增多,链路总体的丢包率和数据出错率会逐渐提高,因此Sink节点接收到的正确的数据包的数量就大大打了折扣。在一个端到端传输的WSNs中,数据包往往要经过多跳中继才能到达汇聚节点。假设无线通道的数据包错误率为p,那么数据包经过n个节点成功传输的概率就降低至(1-p)n,在[15]中表明,在一个错误率超过10%的大型网络里,几乎不能完成一次数据包的正确传输。对于丢失或出错的分组,汇聚节点往往会要求源节点重传此分组来保证数据的正确接收。然而,这种端到端的重传会带来较大的延时,而且数据包被再次破坏的可能性也并没有降低,甚至还会提高。在本文中,提出了一种解决方案,不采用端到端的重传机制,代替它的是链路中间的“缓存节点”到汇聚节点的重传,即由中间的“缓存节点”向汇聚节点重传数据,这样,重传数据包的链路被缩短,就大大节省了重传数据包的所要花费的开销,之后会对此进行详谈。另外,汇聚节点对源节点的应答和重传的数据包增加了无线信道的数据流量,给无线网络通信带来了额外的负担,让无线信道变得更加不稳定,容易使网络发生阻塞和过载的现象,影响了其他数据包的传输,所以应该使重传的数据包尽可能的较快地到达汇聚节点。在得到来自汇聚节点的应答之前,源节点会在其缓冲区中缓存其发送的数据,这无疑给原本就资源受限的传感器节点带来了更多的能量消耗,因此,长时间的缓存数据对于传感器节点来说是一个比较大的负担,应该寻找一个缓存时间的界限,这个界限应该要比数据从源节点传输到Sink节点的时间要长一点。
3.3 纠删码机制
3.3.1 概述
数据重传技术是当汇聚节点接收到的数据不正确时而不得不采用的一种措施。那么,当汇聚节点接收到不正确的数据时,可不可以通过其他的手段来恢复出原始数据而避免重传,这就为提高WSNs传输可靠性和高效性提供了另一种解决思路。纠删码(erasure code)技术就是解决这种问题的比较流行而有用的方法,它对于提高WSNs的通信质量和可靠性十分有意义。纠删码属于前向纠错技术,所谓前向纠错技术,也被称作前向纠错码(Forward Error Correction),就是在发送数据包之前,对数据包进行编码,向数据包中增加冗余信息。即使数据包在传输过程中被破坏,也可以在汇聚节点处通过解码,利用剩下的正确的信息进行原始数据的再生重建。
目前比较流行的纠删码有Reed—Solomon(RS)码、数字喷泉码和级联低密度纠删码[8]。一般情况下,错误码元的位置是不可知的,纠删码可以判断出误码位置并纠正删除错误。纠删码的原理描述如下:当发送节点想要发送 个原始分组,要先经过编码,然后得到 个编码分组,接收节点只要接收到 个编码分组中的 个数据分组(其中 ),就可以修复出原来的 个原始分组,这样就不需要经过重传却可以获得可靠性了。 DEEG协议数据可靠性传输研究+文献综述(4):http://www.youerw.com/jisuanji/lunwen_14463.html