考虑节点业务流量的下声信道网络媒体接入控制方法

申请号 CN201410805784.5 申请日 2014-12-22 公开(公告)号 CN104486348A 公开(公告)日 2015-04-01
申请人 武汉大学; 发明人 李德识; 廖子龙; 陈健;
摘要 本 发明 公开了一种考虑 节点 业务流量的 水 下声信道网络媒体接入控制方法,本发明通过载波侦听及按时隙发送来防止数据包碰撞;在每轮数据发送过程中,通过RTS/CTS包的交互选出发送队列最长的节点;最后,发送队列最长的发送节点获得发送数据的机会,其所有邻居发送节点将延迟发送数据直至该发送节点数据发送完毕。从长期过程来看,业务流量需求更大的节点将能够获得更大的传输带宽。因此,本发明能实现更加优化的网络带宽分配,从而有效提高水下网络的实际吞吐量,减低网络包延时,提高网络 能量 效率。
权利要求

1.考虑节点业务流量的下声信道网络媒体接入控制方法,其特征在于,包括:
将数据发送过程划分为多个时隙,所有节点持续侦听信道;
发送节点第一时隙初向对应的目的节点发送包含发送节点发送队列长度的RTS包;
发送RTS包的发送节点在第一时隙内,若接收到邻居节点发送的RTS包且RTS包内的发送队列长度大于自己的发送队列长度,该发送节点停止本次数据发送;
第一时隙内和第二时隙内凡是接收到发往其他节点的非RTS消息控制包的发送节点停止本次数据发送;
比较目的节点在第一时隙内接收的RTS包内的发送队列长度,目的节点接收的RTS包包括该目的节点对应的发送节点和非对应的发送节点发送的RTS包,若对应的发送节点的发送队列长度最长,目的节点在第二时隙初向对应的发送节点回复CTS包;否则,不予回复;
未停止本次数据发送的发送节点在第二时隙内,若仅接收到对应的目的节点回复的CTS包,该发送节点在第三时隙初向对应的目的节点发送DATA包;
接收数据包完毕的目的节点在第四时隙初向发送数据包的发送节点回复ACK包。
2.如权利要求1所述的考虑节点业务流量的水下声信道网络媒体接入控制方法,其特征在于:
所有节点通过载波侦听机制持续侦听信道。
3.如权利要求1所述的考虑节点业务流量的分布式水下声信道网络信道分配方法,其特征在于:
所述的时隙大小为消息在节点通信范围内的最大传播延时和控制消息的发射时间之和。
4.如权利要求1所述的考虑节点业务流量的水下声信道网络媒体接入控制方法,其特征在于:
比较目的节点在第一时隙内接收的、包括该目的节点对应的发送节点和非对应的发送节点发送的RTS包内的发送队列长度,若该目的节点对应的多个发送节点的发送队列长度同时最长,该目的节点则随机选取一个对应的发送节点,并在第二时隙初向该随机选取的对应发送节点回复CTS包。
5.如权利要求1所述的考虑节点业务流量的水下声信道网络媒体接入控制方法,其特征在于:
所述的目的节点在第二时隙初向对应的发送节点回复CTS包中,回复CTS包后,该目的节点等待最多 个时隙接收发送节点发送的数据包。

说明书全文

考虑节点业务流量的下声信道网络媒体接入控制方法

技术领域

[0001] 本发明属于MAC协议技术领域,尤其涉及一种考虑节点业务流量的水下声信道网络媒体接入控制方法。

背景技术

[0002] 随着水下声技术发展,水下声信道传感器网络引起了学术界及产业界越来越高的重视。水下声信道传感器网络是一种利用声波传输数据的通信网络,它能够被广泛地应用于海洋环境监测、海洋科学数据采集、灾难早期预警及军事等领域。为了扩大网络的覆盖范围,水下声信道传感器网络往往是一种多跳式网络,即数据通过逐跳转发的方式转移到预先部署的网关节点,进而被传输到地面控制中心。对于一个多跳水下声信道传感器网络,MAC协议的性能直接影响着该网络的传输效率。如何设计一个高性能的MAC层协议成为构建多跳水下声信道传感器网络必须解决的关键性技术之一。然而,由于水下声信道本身具有的长传播延时、低可用带宽、时变性等特点,使得设计一个高性能的水下声信道MAC协议变得非常困难。
[0003] 现有适用于水下声信道通信的MAC层协议(简称为“现有水下声信道MAC协议”)主要是针对水声信道的长传播延时、低可用带宽、时变性等引起的问题,设计目标在于避免数据包的碰撞及提高信道的利用率。然而,现有水声信道MAC协议均忽视了不同节点具有不同的业务需求这个事实,因此无法提供优化的带宽分配机制。由于缺乏带宽优化机制,现有水下声信道MAC协议被应用于多跳水下声信道传感器网络时,容易造成带宽的浪费及流量拥塞。

发明内容

[0004] 针对现有技术存在的不足,本发明提供了一种考虑节点业务流量的水下声信道网络媒体接入控制方法,以优化水下声信道传感器网络的传输带宽分配、提高水下声信道传感器网络的实际吞吐量。
[0005] 为解决上述技术问题,本发明采用如下的技术方案:
[0006] 考虑节点业务流量的水下声信道网络媒体接入控制方法,包括:
[0007] 将数据发送过程划分为多个时隙,所有节点持续侦听信道;
[0008] 发送节点第一时隙初向对应的目的节点发送包含发送节点发送队列长度的RTS包;
[0009] 发送RTS包的发送节点在第一时隙内,若接收到邻居节点发送的RTS包且RTS包内的发送队列长度大于自己的发送队列长度,该发送节点停止本次数据发送;
[0010] 第一时隙内和第二时隙内凡是接收到发往其他节点的非RTS消息控制包的发送节点停止本次数据发送;
[0011] 比较目的节点在第一时隙内接收的RTS包内的发送队列长度,目的节点接收的RTS包包括该目的节点对应的发送节点和非对应的发送节点发送的RTS包,若对应的发送节点的发送队列长度最长,目的节点在第二时隙初向对应的发送节点回复CTS包;否则,不予回复;
[0012] 未停止本次数据发送的发送节点在第二时隙内,若仅接收到对应的目的节点回复的CTS包,该发送节点在第三时隙初向对应的目的节点发送DATA包;
[0013] 接收数据包完毕的目的节点在第四时隙初向发送数据包的发送节点回复ACK包。
[0014] 上述所有节点通过载波侦听机制持续侦听信道。
[0015] 上述时隙大小为消息在节点通信范围内的最大传播延时和控制消息的发射时间之和。
[0016] 比较目的节点在第一时隙内接收的、包括该目的节点对应的发送节点和非对应的发送节点发送的RTS包内的发送队列长度,若该目的节点对应的多个发送节点的发送队列长度同时最长,该目的节点则随机选取一个对应的发送节点,并在第二时隙初向该随机选取的对应发送节点回复CTS包。
[0017] 上述目的节点在第二时隙初向对应的发送节点回复CTS包中,回复CTS包后,该目的节点等待最多 个时隙接收发送节点发送的数据包。
[0018] 和现有技术相比,本发明优势如下:
[0019] 本发明采用“最长队列优先发送”的思想来决定获得数据发送机会的节点。每轮数据发送过程中,发送队列最长的发送节点将获得数据发送机会;从长期来看,业务流量需求更大的发送节点将分配到更多的传输带宽,实现了一种优化的带宽分配机制。同时,本发明充分利用了水声信道长传播延时的特点,通过RTS/CTS交互实现了发送节点发送队列长度的比较,使得本发明易于实现。本发明采用分布式网络方式实现,复杂度低,易于实施。附图说明
[0020] 图1是具体实施方式中数据发送过程示意图;
[0021] 图2是本发明的RTS/CTS控制包格式图,其中,图(a)为RTS控制包格式,图(b)为CTS控制包格式。

具体实施方式

[0022] 为使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0023] 本发明将水下声信道网络中数据发送过程分为多个时隙,例如,可将数据发送过程分为四个时隙,在每轮数据发送过程中:
[0024] 第一个时隙初,发送节点均向各自的目的节点发送包含发送节点发送队列长度信息的RTS控制消息包,各发送节点都有不同的目的节点,因此网络中会有多个发往不同目的节点的RTS控制消息包。
[0025] 第一个时隙内,RTS控制消息包发送完毕后,发送节点继续监听信道,且会接收到发往其他目的节点的RTS控制消息包,若接收到了发往其他目的节点的RTS控制消息包,发送节点将从接收的RTS控制消息包中提取发送队列长度,并与自己的发送队列长度比较;若自己的发送队列长度最长,该发送节点则继续本轮数据发送过程;否则,该发送节点终止本轮数据发送,让发送队列最长的发送节点发送数据。目的节点也可能会收到发往自己的RTS包及发往其他节点的RTS包,在接收到这些RTS包后,比较接收的RTS包内的发送队列长度信息,若发往自己的RTS包内的发送队列长度最长,则该目的节点在第二个时隙初向对应的发送节点回复CTS包。
[0026] 第三个时隙初,接收到CTS控制消息包的发送节点向目的节点发送数据包。
[0027] 第个四时隙初,目的节点向发送节点发送指示成功发送的ACK控制消息包。
[0028] 下面将结合具体实施方式进一步说明本发明技术方案,具体步骤如下:
[0029] 步骤1:把数据发送过程分为多个时隙,各时隙大小设为消息在节点通信范围内的最大传播延时和控制消息的发射时间之和。
[0030] 消息在节点通信范围内的最大传播延时可根据节点的发射功率确定,控制消息的发射时间等于控制消息的长度除以信息传输速率,消息在节点通信范围内的最大传播延时和控制消息的发射时间的获得均属于常规技术,在此不作赘述。
[0031] 步骤2:网络中所有节点通过载波侦听机制持续监听信道,并通过RTS/CTS协议控制消息交互;当节点无待发送数据且未监听到载波时处于Idle状态。
[0032] 本具体实施中通过RTS/CTS协议控制消息交互与划分时隙的方式来避免数据包碰撞。
[0033] 步骤3:当处于Idle状态的节点有待发送数据时,其状态转为Transmitting状态,处于Transmitting状态的节点,即发送节点发送数据,数据发送过程通过RTS/CTS/DATA/ACK四路握手实现。
[0034] 发送节点的数据发送过程如下:
[0035] 3.1第一时隙初,所有发送节点向对应的目的节点发送RTS消息控制包,所述的RTS消息控制包包含发送节点的发送队列长度信息,即发送节点的发送队列中数据包数量,其格式见图2(a)。发送RTS消息控制包后,发送节点继续监听信道,若收到发送队列长度更大的邻居发送节点发来的RTS消息控制包,则该发送节点立即终止本轮数据发送过程,并转为Deferring状态;否则,继续保持监听信道。
[0036] 本发明通过比较发送节点的发送队列长度决定由哪个发送节点发送数据,发送队列长度最长的发送节点将获得数据发送机会。具体实施中,采用Queue length字段记录发送节点当前的发送队列长度;RTS消息控制包通过Random number字段携带一个随机数,当多个发送节点的发送队列长度均最长时,则通过比较这些最长队列发送节点的随机数决定发送数据的发送节点。DSN字段用于指示本节点发送数据所期望的时隙数,[0037] 3.2发送节点发送RTS消息控制包后,等待两个时隙(第一个时隙和第二个时隙)接收数据:
[0038] 当发送节点在第一个时隙内接收到其他邻居发送节点发送的RTS消息控制包,将RTS消息控制包内的发送队列长度与自己的发送队列长度比较,若自己的发送队列长度更长,则该发送节点继续监听信道等待对应的目的节点回复的CTS消息控制包,若该发送节点在第二时隙内未接收到目的节点回复的CTS消息控制包,则转为Deferring状态;否则,该发送节点终止本轮数据发送过程,并转为Deferring状态。
[0039] 当发送节点在第二时隙内仅接收到对应的目的节点回复的CTS消息控制包,该发送节点将在下一时隙初,即第三时隙初,向目的节点发送数据包。
[0040] 当发送节点在第一时隙和第二时隙内接收到发往其他节点的非RTS消息控制包(CTS、DATA或ACK消息控制包),该发送节点终止本轮数据发送过程,并转为Deferring状态。
[0041] 当发送节点在第一时隙和第二时隙内未接收任何消息控制包,该发送节点返回Idle状态。
[0042] 步骤4:当目的节点接收到发往自己的RTS消息控制包时,意味着有发送节点需要发送数据包给本目的节点,该目的节点将从接收的RTS消息控制包中提取发送队列长度,比较接收的所有RTS消息控制包内的发送队列长度,若发送给自己的RTS控制消息包内发送队列长队最长,则该目的节点在第二个时隙初向对应的发送节点回复CTS控制消息包,然后等待最多DSN个时隙接收数据包;否则,不予回复;
[0043] 步骤5:目的节点接收数据包完毕后,将在下一时隙初向发送节点发送ACK控制消息包,用于指示本次数据发送过程已经成功完成。
[0044] 步骤6:当处于Idle状态的节点侦听到信道中载波,该节点将转为Deferring状态。进入Deferring状态的节点将根据接收到的数据包的类型执行以下相应子步骤:
[0045] (6-1)当接收到发往其他节点的RTS包时,本节点必须等待两个时隙。若在这两个时隙内未发现其他载波,则返回Idle状态。
[0046] (6-2)当接收到发往其他节点的CTS包时,本节点必须等待最多DSN个时隙,以便其他节点发送整个数据包以及接收相应的ACK包。因为节点能够接收到CTS包,其必然能够接收到ACK包,因此该节点能够通过ACK包来确定其他节点是否完成数据发送。接收到正确的ACK包后,节点返回Idle状态。
[0047] (6-3)当接收到发往其他节点的数据(DATA)包时,本节点必须等待足够多的时隙,直至整个数据发送完成及传输完相应的ACK。
[0048] (6-4)当接收到相应的ACK包,本节点只需等待直至该时隙结束,然后返回Idle状态。
QQ群二维码
意见反馈