一种无线传感器网络点对点传输协议的利记博彩app

文档序号:7759866阅读:710来源:国知局
专利名称:一种无线传感器网络点对点传输协议的利记博彩app
技术领域
本发明涉及无线传感器网络(Wireless Sensor Network,WSN)传输,更具体地说 是一种无线传感器网络点对点的传输协议。
背景技术
无线传感器网络在节点代码远程更新、节点查询、网络配置等应用中对可靠性要 求较高。在代码更新应用中,基站将程序通过无线传输到远程节点,需要消耗大量能量保证 代码数据的绝对完整性。节点查询中,基站将查询要求发送到网络,目的节点将查询结果, 包括节点剩余能量、节点位置、节点周围环境数据等发回基站,由于查询请求和响应都是以 多跳方式传输,路径上任何一跳的数据丢失将导致查询过程失败;网络配置中,基站将配置 命令和配置参数发送到目的节点,“链路”失效会导致配置失败。网络传输层主要功能是保证数据从源节点到目的节点的可靠性传输质量,支持多 种应用层协议。对于WSN来说,由于采用低质量无线信道,经常引起数据包丢失,因此必须 保证数据包的可靠传输。在传统互联网的TCP/IP中,传输层数据包交付失败主要是由拥塞 所引起,TCP使用三次握手、滑动窗口、端到端重传等机制保证数据包从源主机可靠地传输 到目的主机。但无线通信的数据包交付失败主要是因为传输数据包丢失,对于WSN能量有 限和轻量级传输要求来说,这些机制并不适用,尤其是端到端重传最为消耗能量。因为WSN 逐跳数据包丢失率高于传统网络,大量的端到端重传会影响传输的吞吐量、延迟和能耗。国外从2002年就有研究人员开始关注于传感器网络的可靠传输问题,取得了一 定的成果。然而,不同的应用背景对可靠性需求有一定差异,现有大部分的传输协议是针对 特定应用所开发,没有通用的传感器网络可靠传输协议。根据近年无线网络融合趋势及管 理配置的需求来看,独立而不依赖于特定的路由和MAC机制的传输协议,可为不同的应用 提供统一的可靠性保证。PSFQ是第一个传输协议,其基本思想是在逐跳传输分组时,上一跳节点以较慢的 速率发送分组数据,下一跳节点发现分组数据丢失后,立即向上一跳节点请求重传。针对代 码更新应用,基站将更新程序发送到全网,节点收到完成的程序代码后更新。PSFQ保证在恶 劣环境中最小化丢失检测和丢失数据发送所需要的数据传输量。它是一种一对多下行数据 分发传输协议,但由于采用基于单纯的NACK的确认机制,PSQF协议不能发现所有分组数据 都丢失的情况。ESRT针对紧急事件报告应用,在基站端实现,基于可靠性要求和网络拥塞状况,使 用拥塞控制组件降低能耗和提高事件报告的可靠性,它是一种多对一上行数据汇聚传输协 议。RMST在定向扩散路由基础上,提供数据包传输的可靠性,使用选择NACK配置网内缓存 和修复,是一种一对一可靠传输协议。DTC意图将TCP/IP应用于WSN,引入缓存机制,使用局部缓存、局部重传代替代价 昂贵的端到端重传。该协议假设在发送节点、接收节点之间存在一“链”式拓扑,数据包通 过“链”上节点逐跳传输到接收节点,使用spatial IP address提供路由支持。在传输过程中,中间节点通过依赖MAC层的ACK应答判断一个数据包是否成功转发到下一跳,如果转 发失败,则在当前节点缓存该数据包。接收方在指定时延内没收到数据包,采用否定应答方 式逐包逐跳请求重发,中继节点收到重传请求后,如果发现请求重传的分片在此缓存,则启 动局部重传,发送数据包给接收节点,否则将重传请求向前一跳节点转发,如果数据包没有 被中间节点缓存,则重传请求到达源端后启动端到端的重传。DTC在每个中继节点上只缓存 一个分片,如果η个数据包在同一中继节点传输失败则有η-1个包无法缓存,只能采取端到 端重传;而且DTC的缓存依赖于MAC层的应答,协议独立性不好。GARUDA考虑了基站到节点数据分发的靠性问题,提出了一种基站到网络可靠数据 分发协议框架。从本质上看,GARUDA定义的可靠性是选择出期望接收sink节点数据分组 的节点集合,但在这个集合中的节点都需要收到sink节点发送的所有分组,而且GARUDA采 用高能量的WFP脉冲,对传感器节点提出了较高的要求。ERTP主要为数据流可靠传输设计, 使用统计可靠性来保证多个传感器节点将数据流发送到基站
发明内容
针对传感器网络中节点更新、管理配置等部分应用对可靠性传输的需求,本 发明提供一种基站和网内节点间可靠的点对点无线传感器网络传输协议(A Reliable Point-to-point Transport Protocol of Wireless Sensor Network,以下简禾尔 RPTP),该 协议支持基站和节点间双向可靠的数据传输,以降低基站-节点数据传输中多次广播造成 的通信上行和下行不对称导致的网络负载加大,使数据包传输量、ACK数量最小化。实验结 果显示,采用本发明的方案,RPTP在链路丢包率超过10%时,数据包和ACK包的传输量均低 于 DTC。为了实现上述技术任务,本发明采用以下技术方案予以实现
一种无线传感器网络点对点传输协议,该协议在基站与节点之间引入逻辑传输通道, 基站通过该逻辑传输通道仅需一次广播,逻辑传输通道上的各节点启动进入缓存式传输, 具体包括
(1)在基站和节点之间建立逻辑传输通道
首先源节点发起建立逻辑传输通道,当选择源节点判断是基站时,向其它节点发送广 播兴趣包;非目的节点收到广播兴趣包后根据自身维护的到基站距离,选择转发广播兴趣 包给离基站更远的节点,确保兴趣包到达网内每个节点;
当目的节点收到广播兴趣包时,发送逻辑传输通道建立数据包,某个节点收到逻辑传 输通道建立数据包,根据节点类型进行不同处理
如果是基站,逻辑传输通道建立完毕,基站向目的节点发送一个特殊的逻辑传输通道 建立数据包,即数据包的跳数为255,通知节点逻辑传输通道建立完毕,进入数据传输;
如果是中间节点,则将节点维护定时器设定为逻辑传输通道建立数据包中估计的往返 延RTT的2倍,建立逻辑传输通道LTC信息,记录该信息,并将逻辑传输通道LTC信息下行 链路的上一跳地址设置成当前地址,同时将当前逻辑传输通道的跳数加1,然后转发逻辑传 输通道建立数据包,启动定时器维护进程;如果逻辑传输通道建立数据包的跳数为255,即 收到基站确认通道建立的数据包,则重置定时器,直接转发。定时器维护进程启动后,如果 在定时周期内,有数据包经过,则重置定时器,如果直到定时器超时而未收到任何数据包,则认为逻辑传输通道出现故障,则清除一切逻辑通道相关信息。如果由非基站节点发起建立逻辑通道,则从上述目的节点发送逻辑传输通道建立 数据包步骤开始,在节点和基站之间建立逻辑传输通道。(2)数据传输
目的节点启动节点维护定时器并在设定的往返时延内发送主动ACK包时,请求发送数 据包对接收窗口进行填充,当源节点收到主动ACK包时,发送要传输的数据包;数据包沿建 立的逻辑传输通道逐跳传递,当收到数据包的节点是中继节点时,中继节点检查当前数据 包是否被逻辑传输通道上的节点缓存,即缓存标志是否置位,当该缓存标志已经确认置位 时,提取数据包中的地址信息,并与逻辑传输通道信息进行异或运算得到转发地址,转发数 据包;当缓存标志没有置位时,对此数据包以设定概率r进行本地缓存,置位缓存标志,然 后对该逻辑传输通道信息进行异或运算得到转发地址后转发数据包;当目的节点收到数据 包时,判断数据包接收窗口填充状况,在数据接收窗口填满或超时而窗口顺序填充的情况 下,查看最大序号数据包的END标志,如果END被置位,则标志当前数据包是为当前序列号 的最后一个数据包,数据传输完毕,目的节点需发送一个特殊的ACK应答包,即发出清空中 间节点上的缓存请求,并通知发送方已正确接收所有数据包信息;否则,当定时器超时,目 的节点发送主动ACK包步骤重复进行判断;
当中继节点收到主动ACK包时,判断该中继节点是否具有主动ACK所携带序列号的数 据包缓存,如果主动ACK包中请求的数据包并未在本地缓存,则清空本地缓存中的数据包, 向前一跳转发主动ACK包;如果主动ACK所含序号的数据包被本地缓存,将ACK中包含的 该序号删除,如果还请求其它序号的数据包,则转发更新后的数据包;然后将本地缓存中的 ACK请求数据包缓存标志复位后,以当前节点作为新的源节点发起转发数据包;当收到主 动ACK包的节点判断不是源节点且该中继节点不具有缓存时,直接转发主动ACK包。(3)拆除逻辑传输通道
当数据传输完成后,基站发送拆除逻辑传输通道兴趣包,节点收到后,如果收到拆除兴 趣包的节点是目的节点时,表明逻辑传输通道拆除完毕;当收到拆除逻辑传输通道兴趣包 的节点不是目的节点时,将逻辑传输通道信息中的跳数减1,根据逻辑通道信息向网内下一 跳节点转发拆除逻辑传输通道兴趣包,并清除逻辑传输通道LTC信息,直到目的节点收到 兴趣包,逻辑传输通道拆除完毕。本发明与现有技术相比具有以下优点
本发明引入了类似虚电路的逻辑传输通道,基站仅需一次广播在基站与节点之间建立 逻辑传输通道;通过逻辑传输通道信息,可以简化路由操作。逻辑传输通道上的节点以概率 策略缓存取未收到ACK的数据包,减少数据包传输失败时的端到端重传,减少重传距离和 数据包数量,从而降低网络能耗。该方案只要求下层具备从节点到基站的路由能力,但并不 需要了解下层所采用路由和MAC机制,具有很好的独立性。


图1为本发明RPTP的传输数据总体示意图。图2为本发明RPTP的逻辑传输通道建立流程图。图3为本发明所涉及的数据包包头结构示意图。其中,图3a表示逻辑传输通道数据包及主动ACK包包头结构示意图;图3b表示兴趣包和拆除逻辑传输通道兴趣包包头结构 示意图;图3c表示逻辑传输通道建立包包头结构示意图。图中src_addr表示发送数据的源地址;deSt_addr表示发送数据的目的地址; pre_addr表示下行链路的上一跳地址,作为逻辑传输通道信息的addr2 ;sequence表示传 输层分片序列号;offset表示数据包在传输层数据分片中的偏移量;END表示标志当前数 据包是否为当前序列号的最后一个数据包;cached表示标志当前数据包是否被逻辑传输 通道上的节点缓存;size表示主动ACK包中,本次请求发送的数据包数量Reserved表示为 预留位;DATA表示数据;Hops表示当前逻辑传输通道的跳数;Type表示数据包类型。图4为本发明的逻辑传输通道缓存流程图。图5为本发明的逻辑传输通道拆除流程图。图6为本发明的超时状态检测流程图。图7为本发明不同的数据包缓存概率r、接收窗口大小s对数据包传输数量影响示 意图。图8为本发明不同数据包缓存概率r、接收窗口大小s对ACK传输数量影响示意 图。图9为本发明的实施例的信息传输过程示意图。图10为传统传输协议与本发明相比在端到端重传方面效果对比图。图11为传统传输协议与本发明相比在发送数据包数量方面效果对比图。以下结合附图对本发明作进一步详细说明。
具体实施例方式无线传感器网络中存在“网络信息不对称性”,网络中节点知道如何将数据通过下 一跳转发到基站,而基站并不清楚网络中任何节点信息。基站只能通过广播形式与网络中 节点通信,即使需要通信的节点只有一个,也需要广播到整个网络。网络通信上下行并不对 称,导致了上、下行数据传输协议的不对称,特定应用对无线传感器网络数据传输要求绝对 可靠,因为部分数据丢失将导致应用失效。为了解决无线传感器网络中由于“网络信息不对称性”导致的部分数据丢失将导 致应用失效的问题,本发明引入类似于虚电路的逻辑传输通道,基站通过基站与节点之间 建立逻辑传输通道仅需一次广播,各节点启动进入缓存式传输。逻辑传输通道上的节点以 概率策略缓存未收到ACK的数据包,减少数据包传输失败时的端到端重传,减少重传距离 和数据包数量,从而降低网络能耗。本发明只要求下层具备从节点到基站的路由能力,但并 不需要了解下层协议所采用的路由和MAC机制,具有很好的独立性。如图1所示,RPTP位于网络层之上,并且假设节点已经维护到基站的下一跳信息。 发送方将大数据分片打包,然后在建立的逻辑传输通道上经过中继节点发送数据包,利用 确认和重传机制最终成功传输至目的节点,目的节点将接收到的数据包递交到传输层,完 成分片重组,中间节点不对数据包进行重组,降低了复杂性。RPTP在基站和节点之间建立逻辑传输通道,逻辑传输通道上的节点维护逻辑传输 通道信息。适用于上行和下行两种传输模式,其中基站和节点之间建立逻辑传输通道遵从 以下假定条件假设N个节点部署在有限区域内,并且具有如下性质
基站部署在网络的外部,只能与少量节点直接通信;
节点已经维护邻居信息,并且保存到达基站的最优下一跳信息;
任意相邻的两个节点间的无线通信链路丢包率相同,在较长时间内不变; 参见图2,当建立基站一节点逻辑传输通道时,基站广播兴趣包,Packtinterest (src_
addr, dest_addr, hops), hops初值为_1,该广播兴趣包内容包括需要建立虚逻辑传输通 道的源地址、目的地址、转发兴趣包节点的跳数。当收到广播兴趣包的节点不是目的节点 时,节点需要维护到基站跳数my_hopS,只有兴趣包中的hops满足h0ps<my_h0ps-l,节点将 hops加1,然后广播兴趣包才被转发。当收到广播兴趣包的节点是目的节点时,发出逻辑传输通道建立数据包 Packetestablish (src_addr, dest_addr, pre_addr,hops,RTT),以建立逻辑传输通道。RTT 为源节点估计的往返时延,中间节点将2倍的RTT作为逻辑传输通道的计时器Timerp的 初值,然后启动计时处理过程,该过程由每个节点自己维护,与后续的数据传输过程并 行;hops初值为0,中间节点收到建立包后,生成逻辑传输通道信息LTC(Src_addr,dest_ addr, addrl, addr2),使用src_addr和dest_addr标识每条逻辑传输通道,LTC中的addrl 为下一跳地址,addr2为逻辑传输通道建立数据包中的pre_addr,将逻辑传输通道建立 数据包Packetestablish中pre_addr修改为当前地址,同时将逻辑传输通道建立数据包中 的hops加1后转发逻辑传输通道建立包;当收到逻辑传输通道建立包的节点判断为基 站时,表示建立逻辑传输通道完毕,基站向节点发送一个特殊的逻辑传输通道建立数据包 Packetestablish (src_addr, dest_addr,pre_addr,hops,RTT),通知目标节点逻辑传输通道建 立完毕,可以在建立的逻辑传输通道上传输数据包;其中hops=255,RTT值为基站估计的往 返延迟时间,所有后继节点将Timerp更新为当前的2倍RTT。当建立节点一基站逻辑传输通道时,由于每个节点知道如何从选择下一跳节点到 达基站,因此节点只需要发送逻辑传输通道建立包Packetestablish (src_addr, dest_addr, pre_addr, hops, RTT)就可以建立节点到基站的逻辑传输通道。跟基站到节点的逻辑传输 通道建立相比,少了基站到节点的广播。图3是本发明所涉及的数据包包头结构示意,各包头所含内容以及位置关系如图 清晰所示,只要具备图中各字段及所规定的功能均可获得本协议提供的可靠性传输功能, 各字段大小根据实际情况可以调整。由于本协议对下层的路由和MAC不具有依赖性,只要 求下层具有支持节点到达基站的某种稳定路由机制即可,数据包头中地址段大小可以根据 实际情况进行调整确定。特别地,基于目前多网络融合趋势,以采用当前流行互联网体系 对WSN进行远程管理和信息查询为例,使用IP地址作为路由地址结构说明各包头结构和功 能。例如,本协议可以采用如下格式及大小的数据包头
图3a为逻辑传输通道数据包和主动ACK包包头结构示意图,其中src_addr表示发送 数据的源地址,与标识一条逻辑传输通道,占32bit,即从第Obit到第31bit ;dest_addr表 示发送数据的目的地址,占32bit,即从第32bit到第63bit ;prt_addr表示下行链路的上 一跳地址,作为逻辑传输通道信息的,占32bit,即从第64bit到第95bit ;sequence表示传 输层分片序列号,占7bit,即从第96bit到第102bit ;CA标志当前数据包是否被逻辑传输 通道上的节点缓存,占lbit,即第103bit ;offset表示数据包在传输层数据分片中的偏移量,占15bit,即从第104bit到第IlSbit ;END标志当前数据包是否为当前序列号的最后一 个数据包,占lbit,即第119bit ;ACK标志该包是数据包还是主动请求ACK包,当ACK是1, 表示该包是主动ACK包,当ACK是0,表示该包逻辑传输通道数据包;占lbit,即第120bit ; size表示主动ACK包中,本次请求发送的数据包数量,占3bit,即从第121bit到第123bit, 当数据包类型为逻辑传输通道数据包时,size为空;Reserved为预留位,占4bit,即从第 124bit到第127bit ;DATA表示数据,大小可选,但不超过20M。图3b为兴趣包和拆除逻辑传输通道兴趣包包头结构示意图。其中Type表示数据 包类型,占3bit ;当type为0时,表示为兴趣包;当type为10时,表示为逻辑传输通道建 立包;当type为110时,表示为逻辑传输通道拆除包;Reserved为预留位,占5bit ;Hops表 示当前逻辑传输通道的跳数,占8bit ;src_addr表示发送数据的源地址,与目的地址一起 标识一条逻辑传输通道,占32bit ;dest_addr表示发送数据的目的地址,占32bit。图3c为逻辑传输通道建立包包头结构示意图。其中Type表示数据包类型,占 3bit ;当type为0时,表示为兴趣包;当type为10时,表示为逻辑传输通道建立包;当 type为110时,表示为逻辑传输通道拆除包;Reserved为预留位,占5bit ;Hops表示当前 逻辑传输通道的跳数,占8bit ;src_addr表示发送数据的源地址,与标识一条逻辑传输通 道,占32bit ;dest_addr表示发送数据的目的地址,占32bit ;pre_addr表示上一跳地址, 占 32bit。参见图4,为本发明逻辑传输通道的缓存过程,逻辑传输通道上的节点对收到的 数据包以设定的概率r进行缓存。目的节点使用窗口接收数据包,将有序的数据包递交 传输层进行重组,根据接收窗口的内容在设定的往返时延RTT时间内发送主动ACK包,ACK (size, {sequence} ) size青·^胃i白勺—^S—fi, sequences ^ji青·^胃i白勺■ 据包序列号集合。ACK{0,(null)}表示目的节需发送的特殊ACK应答包,该应答包请求中 间节点清空缓存,并通知发送方已正确接收所有数据包信息。最后的数据包已经收到的应 答。中继节点检查ACK中请求的序列号,局部重传丢失的数据包。源节点重传发送失败并 且未被中间节点缓存的数据包。本协议的数据传输过程主要包括以下三个阶段(1)目的节点主动发送ACK包目 的节点维护大小为s的接收窗口,按数据包的sequence填充到窗口,当窗口左边数据包填 充完毕,窗口向右滑动。目的节点根据当前窗口填充状况,发起主动ACK(size,{sequence}) (size为本次请求发送的数据包数量,sequences为请求发送的数据包序列号集合)请 求数据包对接收窗口填充。目的节点对请求的数据包是失败重传或者新传输数据包透 明。最坏情况下,主动ACK包向源节点请求发送,因此设定目的节点发送ACK的时间间隔
为輔Γ , τ为据包传输经过一
个节点的时延,η为节点的个数。当上次请求的发送主动ACK包已经传输到目的节点或者 已经在中继节点传输丢失时,此处存在一种特殊情况即上次ACK请求的数据包在中继节
点传输时全部丢失并且全部在中继节点缓存,经时间后,再次发送主动ACK包,由
于本次请求的数据包全部进行局部重传,那么数据包在和+ )Γ时间内将填满接收窗口后 将接收窗口向右滑动,如果此时发送主动ACK包的时间未到,应立即发送主动ACK包,以提 高传输效率。当接收到数据包的END标志被置位,表示所有数据包已经传输完毕,停止发送主动ACK包,结束传输。总之,目的节点只有如下两种情况才发送主动ACK包
1、I^-Iir时间到,周期性发送主动ACK包;
2、在上次发送主动ACK包到》.! 时间内,接收窗口大小为初始大小S,发送主动ACK 包。目的节点发送最后一个主动ACK包的条件是接收到END被置位的数据包,即接收到最 后一个数据包。(2)数据包缓存源节点初始发送S个数据包,中继节点成功收到逻辑传输通道 信息数据包后检查当前数据包是否被逻辑传输通道上的节点缓存即检查(Cached)标志是 否置位,对(Cached)标志未置位的逻辑传输通道信息数据包以设定概率r在本地缓存,同 时修改该Cached标志,然后转发数据包。转发方式为提取逻辑传输通道数据包中的src_ addr、dest_addr、pre_addr, src_addr禾口 dest_addr对逻辑传输通道进行唯一标识,并对 标识的逻辑传输通道信息LTC中的addrl和addr2进行异或运算操作后得到转发地址。 Cached已经置位的数据包仅仅转发到下一跳节点。(3)局部重传
本地有缓冲的中继节点收到主动ACK包,检查本地缓存的数据包序列号是否被ACK请 求,如果主动ACK包中请求的数据包并未在本地缓存,表示本地缓存的数据包已经成功传 输到目的节点或者被后继节点缓存,可以清除本地缓存,转发主动ACK包。如果主动ACK包 已被本地缓存,以当前节点作为新的源节点发起重传,步骤为
(a)、将重传的逻辑传输通道数据包Cached标志清除,使得后继节点有机会缓存数据
包;
(b)、转发逻辑传输通道数据包。当然,新的源节点并不清除缓存,直到下一次ACK不再 包含该数据包。以上分析可以看出,节点i缓存逻辑传输通道数据包后,重传被缓存数据包的任 务仅仅由j节点(j>i)负责,最坏情况为重传逻辑传输通道数据包时i节点的所有后继节 点都未缓存重传的逻辑传输通道数据包,并且逻辑传输通道数据包传输失败,此时的端到 端重传由i节点完成。参见图5为本发明的逻辑传输通道拆除流程,基站发送拆除逻辑传输通道兴趣 包,Packtem down(src_addr, dest_addr,hops),节点收到后,以逻辑传输通道 LTC 中 addrl 为 下一跳地址,转发拆除逻辑传输通道兴趣包,并清除addrl和addr2,同时将hops减1。直 到目的节点收到兴趣包,逻辑传输通道拆除完毕。(4)链路异常处理当物理链路出现故障时,将导致逻辑传输通道无法建立,或者 各种数据包无法传送。为应对链路异常,在源节点和各个节点维护定时器,定时器的计时处 理过程如下
当源节点发起逻辑传输通道建立,在源节点上启动一个定时器Timerp,如果是基站发 起广播建立的发起的通道建立,其初值是根据广播兴趣包中hops估计的往返时延RTT的2 倍,否则取预设的一个定值(可根据网络规模估计在程序中设定,较大的RTT值可以确保逻 辑传输通道建立起来),然后发送建立逻辑传输通道数据包PaCketestablish(SrC_addr,dest_ addr, pre_addr, hops, RTT)。中继节点收到建立逻辑传输通道数据包Packetestablish (src_addr,dest_addr, pre_addr, hops, RTT)并建立起逻辑传输通道信息LTC之后,启动定时器 Timerp,初值为 2 倍 RTT,在收到基站发来的 hops=255 的 Packetestablish (src_addr, dest_ addr,pre_addr,hops,RTT )后,将Timerp更新为包中的2倍RTT。计时启动后,节点每收到 任意一个包,则将Timerp复位,如果在Timerp超时而没有收到任何的数据包,则认为逻辑传 输通道故障,清除和逻辑传输通道相关的一切信息,计时检查和数据包首发过程是并行的。(5)r、S的选择讨论
r较小时,缓存分布在中间节点比较均勻,但是数据包被缓存的概率较低,导致端到端 重传数量增加。如图7所示,r较小时,数据包传输量较大。r增大,表示靠近源节点的中 间节点有较高概率缓存数据包,同时,数据包被中间节点缓存概率越大,也就是说端到端重 传的数据包减少。但是,当r过大时,数据包几乎被靠近源节点的中间节点缓存,而靠近目 的节点的中间节点没有机会缓存数据包,当数据包传输丢失时,由缓存数据包的节点发起 重传,而缓存数据包的中间节点靠近源节点,距离目的节点相对较远。因此,如图7所示,当 r过大时,反而增加了数据包的传输量。当r较大时,数据包缓存靠近源节点,当数据包传 输丢失后,ACK从目的节点一直要传输到靠近源节点的缓存有数据包的中间节点,如图8所 示,增加了 ACK传输的数量。S对数据包传输数量影响较小,主要是影响ACK的传输量。S增大时,每次发送的 ACK能够请求到更多的数据包。但是,当S到达某个值时,对ACK传输量几乎没有影响,因为 受逻辑传输通道上数据包丢失率限制,每次能够传输成功的数据包也受限制。如图8,S从 2到5逐渐增加时,ACK传输数量减小较为明显,但是当S超过5以后,ACK减小的幅度已经 较为平缓。因此,在选择r、S时,应该综合数据包传输量和ACK传输量进行整体考虑。以下是发明人给出的实施例
实施例1,该实例是在链路差错率为15%,接收窗口大小S为4,缓存概率r为0. 5的 情形下,该协议有较好的性能。在11跳的路径上建立逻辑传输通道,源节点连续发送500 个数据包,接收窗口填满一次的仿真实验过程
参见图9,图9为RPTP分布式缓存、局部重传、端到端重传整个过程示意图。源节点发 送四个数据包,1、2、3号数据包分别在3、4、5号节点缓存,而1号数据包在5号至6号节点 传输失败,4号数据包未被缓存,目的节点接收到分2、3号数据包后,发送ACK请求接收窗口 上所缺的1、4号数据包。4、5号节点接收到ACK后,发现本地缓存的数据包不在ACK中,表示该数据包已经 成功被接收,删除本地缓存;3号节点接收到ACK后,发现本地缓存的1号数据包传输失败, 发起以3号节点为源节点的新一轮可靠传输,将CA标志清除,使得后继节点可以缓存该数 据包,数据包传输到7号节点再次被缓存;源节点接收到ACK,对4号数据包进行端到端重 传;目的节点接收到1、2、3、4号数据包后,窗口滑动,请求5、6、7、8号数据包,直至接收到 END被置位的数据包为止。本发明相对与传统传输协议的优势表现在 (1)端到端重传方面
在TCP协议中,由于有线链路的丢包率通常很低,TCP检测到有数据包丢失时,直接由 源节点进行端到端重传。如图10所示,当链路丢包率增加时,TCP端到端重传的数据包数
11量以指数级增长。DTC和RPTP都利用局部缓存来避免数据包的端到端重传,但是有所区别。 DTC缓存数据包的策略是缓存序列号高的丢失数据包,靠近接收节点的节点期望收到序列 号低的数据包。而RPTP对收到的数据包如果在之前尚未被缓存,那么以概率r缓存。目的 是使得后面节点有机会缓存数据包,使得数据包在路径上分布式缓存。经过仿真实验,如图 10所示,RPTP端到端重传数量低于DTC,避免了能量浪费。(2)数据包传输的情形
参见图11,数据包从源节点发出后,中间节点对数据包进行转发,如果数据包丢失,缓 存数据包的中间节点对数据包重传,而后续节点继续对该数据包转发。可见当链路丢包率 较高时,频繁对数据包重传。TCP当链路丢包率较高时,直接进行端到端重传,而DTC和RPTP 使用局部缓存策略,检测到数据包丢失时,只需要从缓存数据包的节点发起重传,减少了总 的数据包传输数量。如图11所示,TCP传输数据包数量当链路丢包率增加时呈指数级增长。 链路丢包率增加时,RPTP表现出比DTC更好的性能,当丢包率大于10%时,RPTP发送数据包 的数量明显少于DTC。RPTP使用主动ACK机制,每隔时间由目的节点发起主动ACK,直到收完所有数据 包,发送ACK增加速度和发送数据包数量增加速度有一定关系,如图11所示,RPTP数据包 传输和ACK传输曲线几乎平行。与DTC相比,明显减少了 ACK传输数量。但是随着丢包率 增加,传输的ACK数量呈线性增长。
权利要求
一种无线传感器网络点对点传输协议,其特征在于,该协议在基站与节点之间引入逻辑传输通道,基站通过该逻辑传输通道仅需一次广播,逻辑传输通道上的各节点启动进入缓存式传输,具体包括(1)在基站和节点之间建立逻辑传输通道首先源节点发起建立逻辑传输通道,当选择源节点判断是基站时,向其它节点发送广播兴趣包;非目的节点收到广播兴趣包后根据自身维护的到基站距离,选择转发广播兴趣包给离基站更远的节点,确保兴趣包到达网内每个节点;当目的节点收到广播兴趣包时,发送逻辑传输通道建立数据包,某个节点收到逻辑传输通道建立数据包,根据节点类型进行不同处理如果是基站,逻辑传输通道建立完毕,基站向目的节点发送一个特殊的逻辑传输通道建立数据包,即数据包的跳数为255,通知节点逻辑传输通道建立完毕,进入数据传输;如果是中间节点,则将节点维护定时器设定为逻辑传输通道建立数据包中估计的往返延RTT的2倍,建立逻辑传输通道LTC信息,记录该信息,并将逻辑传输通道LTC信息下行链路的上一跳地址设置成当前地址,同时将当前逻辑传输通道的跳数加1,然后转发逻辑传输通道建立数据包,启动定时器维护进程;如果逻辑传输通道建立数据包的跳数为255,即收到基站确认通道建立的数据包,则重置定时器,直接转发。定时器维护进程启动后,如果在定时周期内,有数据包经过,则重置定时器,如果直到定时器超时而未收到任何数据包,则认为逻辑传输通道出现故障,则清除一切逻辑通道相关信息;如果由非基站节点发起建立逻辑通道,则从上述目的节点发送逻辑传输通道建立数据包步骤开始,在节点和基站之间建立逻辑传输通道;(2)数据传输目的节点启动节点维护定时器并在设定的往返时延内发送主动ACK包时,请求发送数据包对接收窗口进行填充,当源节点收到主动ACK包时,发送要传输的数据包;数据包沿建立的逻辑传输通道逐跳传递,当收到数据包的节点是中继节点时,中继节点检查当前数据包是否被逻辑传输通道上的节点缓存,即缓存标志是否置位,当该缓存标志已经确认置位时,提取数据包中的地址信息,并与逻辑传输通道信息进行异或运算得到转发地址,转发数据包;当缓存标志没有置位时,对此数据包以设定概率r进行本地缓存,置位缓存标志,然后对该逻辑传输通道信息进行异或运算得到转发地址后转发数据包;当目的节点收到数据包时,判断数据包接收窗口填充状况,在数据接收窗口填满或超时而窗口顺序填充的情况下,查看最大序号数据包的END标志,如果END被置位,则标志当前数据包是为当前序列号的最后一个数据包,数据传输完毕,目的节点需发送一个特殊的ACK应答包,即发出清空中间节点上的缓存请求,并通知发送方已正确接收所有数据包信息;否则,当定时器超时,目的节点发送主动ACK包步骤重复进行判断;当中继节点收到主动ACK包时,判断该中继节点是否具有主动ACK所携带序列号的数据包缓存,如果主动ACK包中请求的数据包并未在本地缓存,则清空本地缓存中的数据包,向前一跳转发主动ACK包;如果主动ACK所含序号的数据包被本地缓存,将ACK中包含的该序号删除,如果还请求其它序号的数据包,则转发更新后的数据包;然后将本地缓存中的ACK请求数据包缓存标志复位后,以当前节点作为新的源节点发起转发数据包;当收到主动ACK包的节点判断不是源节点且该中继节点不具有缓存时,直接转发主动ACK包;(3)拆除逻辑传输通道当数据传输完成后,基站发送拆除逻辑传输通道兴趣包,节点收到后,如果收到拆除兴趣包的节点是目的节点时,表明逻辑传输通道拆除完毕;当收到拆除逻辑传输通道兴趣包的节点不是目的节点时,将逻辑传输通道信息中的跳数减1,根据逻辑通道信息向网内下一跳节点转发拆除逻辑传输通道兴趣包,并清除逻辑传输通道LTC信息,直到目的节点收到兴趣包,逻辑传输通道拆除完毕。
全文摘要
本发明公开了一种无线传感器网络点对点传输协议,该协议支持基站和节点间双向可靠的数据传输,包括在基站和节点之间建立逻辑传输通道、数据传输、拆除逻辑传输通道,链路异常处理,由于本发明引入基于逻辑传输通道的思想,基站仅需一次广播在基站与节点之间建立逻辑传输通道。逻辑传输通道上的节点以特定策略缓存未收到ACK的数据包,减少数据包传输失败时的端到端重传,减少重传距离和数据包数量,从而降低网络能耗以及协议的复杂性。
文档编号H04W80/00GK101945341SQ20101028273
公开日2011年1月12日 申请日期2010年9月16日 优先权日2010年9月16日
发明者何路, 刘晨, 张远, 房鼎益, 段任, 王举, 邢天璋, 陈 峰, 陈晓江, 高宝健, 黄学青 申请人:西北大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1