一种优化的无线信道协商方法与流程

文档序号:13985347
一种优化的无线信道协商方法与流程

本发明涉及无线通信领域,特别是涉及一种优化的无线信道协商方法。



背景技术:

无线自组织网络相比较传统的无线通信网络,具有可快速组网、对基础设施要求低和抗毁灭性强的特征,被广泛应用于军事通信、救援抗灾、智能交通等领域。

类似于TCP/IP协议栈的OSI模型,无线自组织网络的底层协议栈也可以分为物理层(PHY)、介质访问控制层(MAC)和网络层(NET),其中MAC层负责接入控制及无线资源分配。现有无线自组网的MAC层主流大多采用CSMA/CA的竞争机制,但标准的CSMA/CA机制下节点每次有数据需要发送时都需要重新竞争信道,当多个节点同时都需要发送较多数据包时,每个节点的数据都进行突发性随机发送,冲突的发生和重传的概率就快速上升,信道的有效传输效率下降。

现有技术中的同步TDD模式:基于预先划分好的时隙结构,无线通信网络内通信节点只能在各自指定独占的时隙内进行资源协商,其余节点在此期间不允许发送。通信双方节点在协商信道协商好数据资源后,切到数据信道进行数据的传输。每次节点有数据发送时,都需要等待其指定的时隙到来时才能进行数据资源的协商。

现有技术中的传统的CSMA/CA机制:每次节点有数据需要发送时,需要进行信道监听,只有在一段时间内(DIFS+CW)信道为闲时,节点才可以发送RTS帧请求发送数据。目标通信节点在接收到RTS帧后,等待SIFS时间后回复CTS帧确认。源通信节点收到CTS帧后,等待SIFS时间后开始在数据信道上进行数据传输。目标通信节点在正确收到源通信节点的数据后,等待SIFS回复ACK。至此,一次数据传输过程结束。每次节点数据发送都需要重复此过程。



技术实现要素:

发明目的:本发明的目的是提供一种能够解决现有技术中存在的缺陷的优化的无线信道协商方法。

技术方案:本发明所述优化的无线信道协商方法,包括以下步骤:

S1:源节点申请到数据信道之后,将数据帧通过数据信道发送给目标节点,数据帧帧头携带解析帧体所需的相关信息、本次传输后源节点到目标节点的待发缓冲空满标记以及本次传输后源节点到目标节点的剩余数据的优先级;

S2:目标节点收到源节点发来的数据帧后,生成ACK帧发送给源节点,ACK帧中携带对源节点发送数据的确认信息、是否允许源节点继续发送的指示信息、本次传输后目标节点到源节点的待发缓冲空满标记以及本次传输后目标节点到源节点的剩余数据的优先级,如果目标节点的优先级最高的数据是发送给源节点的且目标节点优先级最高数据的优先级高于源节点到目标节点的剩余数据的优先级,则ACK帧中还携带目标节点优先级最高的数据;

S3:源节点收到目标节点发来的ACK帧后,进行以下操作:

S3.1:根据目标节点发来的ACK帧中的确认信息标记对待发缓冲中的数据进行处理:将目标节点确认收到的数据从待发缓冲中删除,将目标节点未收到的数据保留在待发缓冲中;

S3.2:如果源节点发现目标节点发来的ACK帧中携带数据,则继续进行步骤S3.3;否则,则进行步骤S3.4;

S3.3:判断目标节点是否允许源节点继续发送:如果允许,则生成ACK帧发送给目标节点,然后进行步骤S4,其中,ACK帧中携带对目标节点发送数据的确认信息、是否允许目标节点继续发送的指示信息、本次传输后源节点到目标节点的待发缓冲空满标记以及本次传输后源节点到目标节点的剩余数据的优先级,如果源节点的优先级最高的数据是发送给目标节点的且源节点优先级最高数据的优先级高于目标节点到源节点的剩余数据的优先级,则ACK帧中还携带源节点优先级最高的数据;如果不允许,则生成ACK帧发送给目标节点,然后进行步骤S4,其中,ACK帧中携带对目标节点发送数据的确认信息、本次传输后源节点到目标节点的待发缓冲空满标记以及本次传输后源节点到目标节点的剩余数据的优先级;

S3.4:判断目标节点是否允许源节点继续发送:如果允许,则生成ACK帧发送给目标节点,然后进行步骤S4,其中,ACK帧中携带是否允许目标节点继续发送的指示信息、本次传输后源节点到目标节点的待发缓冲空满标记以及本次传输后源节点到目标节点的剩余数据的优先级,如果源节点的优先级最高的数据是发送给目标节点的且源节点优先级最高数据的优先级高于目标节点到源节点的剩余数据的优先级,则ACK帧中还携带源节点优先级最高的数据;如果不允许,则结束;

S4:目标节点收到源节点发来的ACK帧后,进行以下操作:

S4.1:根据源节点发来的ACK帧中的确认信息标记对待发缓冲中的数据进行处理:将源节点确认收到的数据从待发缓冲中删除,将源节点未收到的数据保留在待发缓冲中;

S4.2:如果目标节点发现源节点发来的ACK帧中携带数据,则继续进行步骤S4.3;否则,则进行步骤S4.4;

S4.3:判断源节点是否允许目标节点继续发送:如果允许,则生成ACK帧发送给源节点,然后返回步骤S3,其中,ACK帧中携带对源节点发送数据的确认信息、是否允许源节点继续发送的指示信息、本次传输后目标节点到源节点的待发缓冲空满标记以及本次传输后目标节点到源节点的剩余数据的优先级,如果目标节点的优先级最高的数据是发送给源节点的且目标节点优先级最高数据的优先级高于源节点到目标节点的剩余数据的优先级,则ACK帧中还携带目标节点优先级最高的数据;如果不允许,则生成ACK帧发送给源节点,然后返回步骤S3,其中,ACK帧中携带对源节点发送数据的确认信息、本次传输后目标节点到源节点的待发缓冲空满标记以及本次传输后目标节点到源节点的剩余数据的优先级;

S4.4:判断源节点是否允许目标节点继续发送:如果允许,则生成ACK帧发送给源节点,然后返回步骤S3,其中,ACK帧中携带是否允许源节点继续发送的指示信息、本次传输后目标节点到源节点的待发缓冲空满标记以及本次传输后目标节点到源节点的剩余数据的优先级,如果目标节点的优先级最高的数据是发送给源节点的且目标节点优先级最高数据的优先级高于源节点到目标节点的剩余数据的优先级,则ACK帧中还携带目标节点优先级最高的数据;如果不允许,则结束。

进一步,所述步骤S1中,如果源节点发送数据帧之前又有新的数据要发送给目标节点,则在不超过最大符号数的范围内将新的数据与原先的数据帧一起组帧,形成待发送数据帧并发送给目标节点。

进一步,所述步骤S2、S4.3和S4.4中,是否允许源节点继续发送的指示信息通过以下方法确定:如果目标节点的待发送缓冲非空、目标节点的优先级最高的数据不是发送给源节点的数据且目标节点的最高优先级高于源节点到目标节点的剩余数据的优先级,则指示源节点不允许继续发送;否则,则指示源节点允许继续发送;

所述步骤S3.3和S3.4中,是否允许目标节点继续发送的指示信息通过以下方法确定:如果源节点的待发送缓冲非空、源节点的优先级最高的数据不是发送给目标节点的数据且源节点的最高优先级高于目标节点到源节点的剩余数据的优先级,则指示目标节点不允许继续发送;否则,则指示目标节点允许继续发送。

进一步,所述步骤S2中,如果目标节点的优先级最高的数据是发送给源节点的、目标节点优先级最高数据的优先级高于源节点到目标节点的剩余数据的优先级且携带了目标节点优先级最高数据之后的ACK帧的时域长度不超过最大符号数确定的时域边界,则ACK帧中还携带目标节点优先级最高的数据;

所述步骤S3.3和S3.4中,如果源节点的优先级最高的数据是发送给目标节点的、源节点优先级最高数据的优先级高于目标节点到源节点的剩余数据的优先级且携带了源节点优先级最高数据之后的ACK帧的时域长度不超过最大符号数确定的时域边界,则ACK帧中还携带源节点优先级最高的数据;

所述步骤S4.3和S4.4中,如果目标节点的优先级最高的数据是发送给源节点的、目标节点优先级最高数据的优先级高于源节点到目标节点的剩余数据的优先级且携带了目标节点优先级最高数据之后的ACK帧的时域长度不超过最大符号数确定的时域边界,则ACK帧中还携带目标节点优先级最高的数据。

进一步,所述最大符号数是预先设置好的。

进一步,所述最大符号数根据源节点的数据到达情况的统计信息计算得到,如式(1)所示:

Smax=max([Prate×Lavg×t×100]×Lavg,Lreq) (1)

式(1)中,Smax为源节点所能占用信道资源的最大符号数,Prate为统计得到的数据包到达率,Lavg为统计时间内的平均包长,t为每符号的时域长度,Lreq为当前待发送数据的符号数;[]表示向上取整,max表示取最大值。

有益效果:本发明公开了一种优化的无线信道协商方法,与现有技术相比,具有如下的有益效果:

1)无线通信节点的数据发送不必每次都去竞争信道,能够充分利用已分配的数据信道资源,减少了协商次数,降低了协商信道上的控制信息开销,避免网络负载较大时协商信道因为控制信息较多从而冲突概率较大成为性能瓶颈;

2)数据传输过程协商时考虑了对端的数据发送需求及数据优先级,使得目标通信节点的高优先级数据发送需求能够及时满足。

附图说明

图1为本发明具体实施方式中的无线网络的拓扑结构图;

图2为本发明具体实施方式中的无线通信节点的结构示意图;

图3为本发明具体实施方式中的NAV信息维护示意图。

具体实施方式

下面结合具体实施方式和附图,对本发明的技术方案做进一步的介绍。

本具体实施方式公开了一种优化的无线信道协商方法,包括以下步骤:

S1:源节点申请到数据信道之后,将数据帧通过数据信道发送给目标节点,数据帧帧头携带解析帧体所需的相关信息、本次传输后源节点到目标节点的待发缓冲空满标记以及本次传输后源节点到目标节点的剩余数据的优先级;

S2:目标节点收到源节点发来的数据帧后,生成ACK帧发送给源节点,ACK帧中携带对源节点发送数据的确认信息、是否允许源节点继续发送的指示信息、本次传输后目标节点到源节点的待发缓冲空满标记以及本次传输后目标节点到源节点的剩余数据的优先级,如果目标节点的优先级最高的数据是发送给源节点的且目标节点优先级最高数据的优先级高于源节点到目标节点的剩余数据的优先级,则ACK帧中还携带目标节点优先级最高的数据;

S3:源节点收到目标节点发来的ACK帧后,进行以下操作:

S3.1:根据目标节点发来的ACK帧中的确认信息标记对待发缓冲中的数据进行处理:将目标节点确认收到的数据从待发缓冲中删除,将目标节点未收到的数据保留在待发缓冲中;

S3.2:如果源节点发现目标节点发来的ACK帧中携带数据,则继续进行步骤S3.3;否则,则进行步骤S3.4;

S3.3:判断目标节点是否允许源节点继续发送:如果允许,则生成ACK帧发送给目标节点,然后进行步骤S4,其中,ACK帧中携带对目标节点发送数据的确认信息、是否允许目标节点继续发送的指示信息、本次传输后源节点到目标节点的待发缓冲空满标记以及本次传输后源节点到目标节点的剩余数据的优先级,如果源节点的优先级最高的数据是发送给目标节点的且源节点优先级最高数据的优先级高于目标节点到源节点的剩余数据的优先级,则ACK帧中还携带源节点优先级最高的数据;如果不允许,则生成ACK帧发送给目标节点,然后进行步骤S4,其中,ACK帧中携带对目标节点发送数据的确认信息、本次传输后源节点到目标节点的待发缓冲空满标记以及本次传输后源节点到目标节点的剩余数据的优先级;

S3.4:判断目标节点是否允许源节点继续发送:如果允许,则生成ACK帧发送给目标节点,然后进行步骤S4,其中,ACK帧中携带是否允许目标节点继续发送的指示信息、本次传输后源节点到目标节点的待发缓冲空满标记以及本次传输后源节点到目标节点的剩余数据的优先级,如果源节点的优先级最高的数据是发送给目标节点的且源节点优先级最高数据的优先级高于目标节点到源节点的剩余数据的优先级,则ACK帧中还携带源节点优先级最高的数据;如果不允许,则结束;

S4:目标节点收到源节点发来的ACK帧后,进行以下操作:

S4.1:根据源节点发来的ACK帧中的确认信息标记对待发缓冲中的数据进行处理:将源节点确认收到的数据从待发缓冲中删除,将源节点未收到的数据保留在待发缓冲中;

S4.2:如果目标节点发现源节点发来的ACK帧中携带数据,则继续进行步骤S4.3;否则,则进行步骤S4.4;

S4.3:判断源节点是否允许目标节点继续发送:如果允许,则生成ACK帧发送给源节点,然后返回步骤S3,其中,ACK帧中携带对源节点发送数据的确认信息、是否允许源节点继续发送的指示信息、本次传输后目标节点到源节点的待发缓冲空满标记以及本次传输后目标节点到源节点的剩余数据的优先级,如果目标节点的优先级最高的数据是发送给源节点的且目标节点优先级最高数据的优先级高于源节点到目标节点的剩余数据的优先级,则ACK帧中还携带目标节点优先级最高的数据;如果不允许,则生成ACK帧发送给源节点,然后返回步骤S3,其中,ACK帧中携带对源节点发送数据的确认信息、本次传输后目标节点到源节点的待发缓冲空满标记以及本次传输后目标节点到源节点的剩余数据的优先级;

S4.4:判断源节点是否允许目标节点继续发送:如果允许,则生成ACK帧发送给源节点,然后返回步骤S3,其中,ACK帧中携带是否允许源节点继续发送的指示信息、本次传输后目标节点到源节点的待发缓冲空满标记以及本次传输后目标节点到源节点的剩余数据的优先级,如果目标节点的优先级最高的数据是发送给源节点的且目标节点优先级最高数据的优先级高于源节点到目标节点的剩余数据的优先级,则ACK帧中还携带目标节点优先级最高的数据;如果不允许,则结束。

其中,步骤S1中,如果源节点发送数据帧之前又有新的数据要发送给目标节点,则在不超过最大符号数的范围内将新的数据与原先的数据帧一起组帧,形成待发送数据帧并发送给目标节点。

步骤S2、S4.3和S4.4中,是否允许源节点继续发送的指示信息通过以下方法确定:如果目标节点的待发送缓冲非空、目标节点的优先级最高的数据不是发送给源节点的数据且目标节点的最高优先级高于源节点到目标节点的剩余数据的优先级,则指示源节点不允许继续发送;否则,则指示源节点允许继续发送;

步骤S3.3和S3.4中,是否允许目标节点继续发送的指示信息通过以下方法确定:如果源节点的待发送缓冲非空、源节点的优先级最高的数据不是发送给目标节点的数据且源节点的最高优先级高于目标节点到源节点的剩余数据的优先级,则指示目标节点不允许继续发送;否则,则指示目标节点允许继续发送。

步骤S2中,如果目标节点的优先级最高的数据是发送给源节点的、目标节点优先级最高数据的优先级高于源节点到目标节点的剩余数据的优先级且携带了目标节点优先级最高数据之后的ACK帧的时域长度不超过最大符号数确定的时域边界,则ACK帧中还携带目标节点优先级最高的数据;

步骤S3.3和S3.4中,如果源节点的优先级最高的数据是发送给目标节点的、源节点优先级最高数据的优先级高于目标节点到源节点的剩余数据的优先级且携带了源节点优先级最高数据之后的ACK帧的时域长度不超过最大符号数确定的时域边界,则ACK帧中还携带源节点优先级最高的数据;

步骤S4.3和S4.4中,如果目标节点的优先级最高的数据是发送给源节点的、目标节点优先级最高数据的优先级高于源节点到目标节点的剩余数据的优先级且携带了目标节点优先级最高数据之后的ACK帧的时域长度不超过最大符号数确定的时域边界,则ACK帧中还携带目标节点优先级最高的数据。

最大符号数可以有两种确定方式:一是静态确定方式,也即预先设置好最大符号数;二是动态确定方式,也即根据源节点的数据到达情况的统计信息计算得到,如式(1)所示:

Smax=max([Prate×Lavg×t×100]×Lavg,Lreq)(1)

式(1)中,Smax为源节点所能占用信道资源的最大符号数,Prate为统计得到的数据包到达率,Lavg为统计时间内的平均包长,t为每符号的时域长度,Lreq为当前待发送数据的符号数;[]表示向上取整,max表示取最大值。

下面以一个无线通信网络为例,对本发明的技术方案作进一步的介绍。

图1是一个无线通信网络,其中有6个节点,分别是节点A、节点B、节点C、节点D、节点E和节点F。图1中相邻两个节点之间的连线表示这两个节点互为邻居节点。每个节点的结构都如图2所示,采用全向天线,可以向任意方向发送以及从任意方向接收无线信号。图3为NAV信息维护示意图。

假设节点A某一时刻有5个符号的数据需要发送给节点B,则节点A开始申请无线信道资源,即节点A监听并竞争协商信道,如果竞争成功,则节点A在协商信道上发送RTS帧给节点B,RTS帧中携带申请占用数据信道的时间长度7符号、最大占用数据信道时间长度100符号、选定的数据信道fd及目的地址节点B。其中,7符号包括帧头和ACK帧长,最大占用数据信道时间长度通过静态确定方式确定。

节点A的一跳邻居节点E、节点F收到此RTS帧后,将t~t+6时间段内在数据信道fd上保持静默更新到其NAV1信息中,将t~t+99时间段内在数据信道fd上保持静默更新到其NAV2信息中。

目标通信节点B收到节点A发来的RTS帧后,查询自己维护的数据信道fd的NAV1信息发现,t时刻之后fd没有被其他节点占用,则节点B在协商信道上回复CTS帧进行确认,其中CTS帧中携带节点A申请占用数据信道fd、申请占用数据信道时间段t~t+6、最大占用数据信道时间段为t~t+99。

节点B的一跳邻居节点C、节点D收到此CTS帧后,将t~t+6时间段内在数据信道fd上保持静默更新到其NAV1信息中,将t~t+99时间段内在数据信道fd上保持静默更新到其NAV2信息中。

源通信节点A收到节点B发来的CTS帧后,发现此时待发送数据中又增加了两包数据,长度分别为10符号、20符号,节点A进行判断发现分配的时间长度100符号足以承载原有的1包及新增的2包数据,则节点A一起将这3包数据打包,并在数据帧头中携带数据包数为3,长度分别为5符号、10符号、20符号,A到B待发缓冲空满标记Cflag=Empty,剩余数据优先级设置为最低,之后节点A将数据帧头及这3包数据一起在数据信道fd上发送给节点B。

假设目标通信节点B成功收到节点A发来的数据,则节点B生成对应的ACK信息,其中包括对节点A发来的3包数据的应答信息,假设只有第2包数据未传输成功,则应答信息为Ack/Nack/Ack,如果节点B的待发缓冲中无其他数据要发送,则ACK帧不携带额外的数据信息,同时ACK帧中携带允许节点A继续发送的指示信息、本次传输后B到A的待发缓冲标记为空、剩余数据优先级为最低;A接收到此ACK后,直接启动对第2包数据的重传,同时在数据帧头中携带数据包数为1,长度为10符号,A到B待发缓冲空满标记Cflag=Empty,剩余数据优先级设置为最低,之后节点A将数据帧头及这3包数据一起在数据信道fd上发送给节点B。假设节点B本次成功接收,且无其他数据要发送,则节点B生成对应的ACK信息,且不携带额外的数据信息,另外允许节点A继续发送的指示信息、本次传输后B到A的待发缓冲标记为空、剩余数据优先级为最低;A接收到此ACK后,本次传输完成。

假设节点B在收到节点A发的数据帧后,发现只有第2包数据未传输成功,且有15个符号的数据要发送给节点A,则在ACK帧中携带如下信息:3个数据包的确认信息(Ack/Nack/Ack),15个符号的数据信息,允许节点A继续发送的指示信息、本次传输后B到A的待发缓冲标记为空、剩余数据优先级为最低;假设节点A正确的收到此ACK帧,A发现有数据随路发来,则产生相应的ACK帧,同时发现收到的ACK帧中指示有10个符号的数据需要重传,则在A发出的ACK帧中携带如下信息:1个数据包的确认信息(Ack),10个符号的重传数据信息,允许节点B继续发送的指示信息、本次传输后A到B的待发缓冲标记为空、剩余数据优先级为最低;假设B成功接收到此ACK帧,则向A发送ACK帧进行响应,此帧中携带1个数据包的确认信息(Ack),允许节点A继续发送的指示信息、本次传输后B到A的待发缓冲标记为空、剩余数据优先级为最低;节点A接收到此ACK帧后,本次传输完成。

假设节点B发现3个数据包都成功接收,同时节点B的待发缓冲数据中包含B到A和B到C的数据,但B到C的数据优先级高,则节点B向节点A反馈的ACK帧中携带如下信息:3个数据包的确认信息(Ack/Ack/Ack),不允许节点A继续发送的指示信息、本次传输后B到A的待发缓冲标记为非空、剩余数据优先级为B到A数据的优先级;节点A收到此ACK帧后,发现不允许继续发送,因此不再关心待发缓冲是否有数据,都认为本次传输完成。

假设节点B在收到节点A发的数据帧后,发现3个数据包都成功接收,另外有25个符号的数据要发送给节点A,则在ACK帧中携带如下信息:3个数据包的确认信息(Ack/Ack/Ack),25个符号的数据信息,允许节点A继续发送的指示信息、本次传输后B到A的待发缓冲标记为空、剩余数据优先级为最低;假设节点A正确的收到此ACK帧,A发现有数据随路发来,则产生相应的ACK帧,同时A发现在此期间自身的待发缓冲中又有12个符号的新数据到达,则在A发出的ACK帧中携带如下信息:1个数据包的确认信息(Ack),12个符号的新传数据信息,允许节点B继续发送的指示信息、本次传输后A到B的待发缓冲标记为空、剩余数据优先级为最低;假设B成功接收到此ACK帧,则向A发送ACK帧进行响应,此帧中携带1个数据包的确认信息(Ack),允许节点A继续发送的指示信息、本次传输后B到A的待发缓冲标记为空、剩余数据优先级为最低;节点A接收到此ACK帧后,本次传输完成。

数据传输完成后,节点重新到协商信道竞争资源,协商到其他节点的数据传输资源。

另外,在一些无线系统中会约束最长帧,上述例子中假设约束节点一次发送最大20个符号的数据帧,则节点需要修正待发缓冲标记、剩余数据优先级。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1