本发明涉及通信技术领域,更进一步涉及一种时隙组调度方法,可用于时分多址技术tdma协议,提高通信系统吞吐量。
背景技术:
链路差错控制技术自动请求重传协议arq可确保多媒体等数据业务可靠高速传输,传统的无线自组织网中自动请求重传协议arq是数据可靠传输的关键技术之一,是无线自组织网络通信中端到端吞吐量的重要保证,其中包括停等式arq协议、采用滑动式窗口技术相结合的连续arq协议和harq协议,即混合arq。在无线自组织网络节点之间通信的过程中,由于复杂的物理层基带处理机制在信道上引入了较大的发送和处理时延,造成了通信信道利用率不高的问题,针对该问题,其中一种解决方式是采用滑动式窗口的arq重传机制。但采这种重传机制需要按照链路分配时隙,在采用全向传输的单信道无线自组织网络中,存在对头阻塞和降低网络吞吐量的问题,故并不适应。采用停等式arq的方式,同样会由于物理层基带的处理时延直接导致链路差错控制data-ack时间过长,超帧内单个业务数据时隙被拉长,大大降低了的时隙利用率和系统吞吐量。混合hybrid-arq将前向纠错编码fec和自动重传请求arq相结合,采用链路适配所带来的误码来提高数据传输速率和减小数据传输时延,但该方法由于物理层基带的处理机制在信道上引入了较大的处理时延,存在信道利用率较低的问题。
张金宝在论文“基于无线自组网fd-tdma协议的队列调度算法设计”提出一种基于服务的队列调度算法,该方法是通过在固定分配时隙采用绝对优先级调度方式,在动态分配时隙采用动态加权轮询调度策略来保证高优先级信息的优先传输,这种采用固定与动态混合分配时隙的调度策略方法,虽然在一定程度上增加了网络的吞吐量和减少了语音、视频业务的信道接入时延,但该方法的重传调度机制采用了停等式arq的方式,其链路差错控制data-ack在单个时隙内完成,并在后续节点占用的时隙内,优先调度待重传的数据帧,这种方法由于在链路差错控制data-ack的过程中,单时隙内引入了物理层基带较大的处理时延,故存在单个数据时隙时间过长的问题,降低了时隙的利用率,压缩了系统吞吐量的提升空间。
朱乃松在论文“高速adhoc网络mac层协议的软件实现”提出了三种链路差错控制策略,以保证链路数据的可靠传输和提高了实时业务的发送成功率,其中包括no-ack策略、imm-ack策略和b-ack策略。no-ack策略适应于数据帧无需确认的情况。imm-ack策略和b-ack策略是指:目的节点在收到数据帧后发送ack数据确认帧,如果源节点没有正确收到ack数据确认帧,则在发送下一帧数据之前,重发未被接收端正确接收的数据帧。这三种策略虽然为数据传输提供了可靠性保证,但是由于其在数据链路的差错控制过程中引入了物理层的处理时延,仍存在单个业务数据时隙的时间长度过长和信道利用率较低的问题,影响系统吞吐量的提高。
技术实现要素:
本发明的目的在于针对上述现有技术的不足,提出一种分布式tdma协议中的时隙组调度方法。本发明引入了n+n时隙组,采用了基于n+n时隙组的链路差错控制,避免了在数据时隙内引入多余的底层基带处理时延,链路差错控制在n+n时隙组中数据时隙和对应的数据确认ack时隙内完成,提高信道利用率和系统吞吐量;加入了基于n+n时隙组的重传时隙调度机制,提高了队列调度和数据重传的效率和灵活性。
本发明实现上述目的的思路是:本地节点可在n+n时隙组前n个数据时隙中,占用多个数据发送时隙进行数据帧发送,数据发送时隙内发送的数据帧在对应的ram中进行缓存,链路差错控制在n+n时隙组中的数据时隙和对应的数据确认ack时隙内完成,本地节点需对未被接收端节点正确接收的数据帧进行重传处理,并将缓存在ram中的数据帧存入重传队列中,在其下一个n+n时隙组中占用的数据发送时隙内,按队列优先级顺序,优先调度重传队列中的待重传数据帧。
为实现上述目的,本发明的技术方案包括如下:
(1)本地节点开机系统初始化:
(1a)构建由m个复帧组成的超帧,每个复帧由l个n+n时隙组组成,每个n+n时隙组由n个数据时隙和n个数据确认ack时隙组成,其中数据时隙编号与数据确认ack时隙编号前后一一对应,且每个复帧中第一个n+n时隙组中的第一个数据时隙为bs广播时隙,8≤m≤64,8≤l≤16,4≤n≤8;
(1b)本地节点根据tdma协议给定的初始化帧和时隙表,确定本节点在超帧中占用的bs广播时隙和数据发送时隙;
(1c)本地节点根据占用的数据发送时隙编号,确定n+n时隙组中对应的本节点占用的数据确认ack接收时隙编号;并根据接收到数据帧中封装的发送时隙编号,确定n+n时隙组中对应的本节点占用的数据确认ack发送时隙编号;
(2)判断当前超帧中的时隙是否为本节点占用的bs广播时隙,若是,则执行步骤(3),否则,执行步骤(4);
(3)在本节点占用的bs广播时隙内完成勤务帧的发送,并在当前bs广播时隙结束后,执行步骤(4);
(4)判断当前超帧中的时隙是否为本节点占用的数据发送时隙,若是,则执行步骤(5),否则,执行步骤(6);
(5)发送数据帧:
(5a)设数据缓存队列共有5个,即rq重传队列、第一数据队列tq1、第二数据队列tq2、第三数据队列tq3和第四数据队列tq4,且队列的优先级排序由高到低;
(5b)按照绝对优先级的顺序依次检测rq重传队列、第一数据队列tq1、第二数据队列tq2、第三数据队列tq3和第四数据队列tq4中是否有数据,优先调度高优先级队列中的数据帧发送;
(5c)设定n个缓存ram,其编号与n+n时隙组中的n个数据时隙的编号一一对应,用于重传时隙调度处理,并对发送的数据帧中封装的应接收节点地址和发送节点地址进行缓存,在当前数据发送时隙结束后,执行步骤(6);
(6)判断当前超帧中的时隙是否为本节点占用的数据接收时隙,若是,则执行步骤(7),否则,执行步骤(8);
(7)数据接收时隙内的接收处理:
(7a)对数据接收时隙内接收到的数据帧进行解析处理,保存数据帧中封装的发送时隙编号、应接收节点地址和发送节点地址,该应接收节点地址和发送节点地址用于对ack数据确认帧的封装;
(7b)由接收到的数据帧中封装的发送时隙编号,得出n+n时隙组中对应的本地节点占用的数据确认ack发送时隙编号,本地节点在其占用的数据确认ack发送时隙内,发送ack数据确认帧,在当前数据接收时隙结束后,执行步骤(8);
(8)判断当前超帧中的时隙是否是本节点占用的数据确认ack发送时隙,若是,则执行步骤(9),否则,执行步骤(10);
(9)发送ack数据确认帧:
(9a)将在本节点占用的数据接收时隙内所保存数据帧中封装的应接收节点地址和发送节点地址,封装到ack数据确认帧中;
(9b)在当前数据确认ack发送时隙内,调度ack数据确认帧并发送,数据确认ack发送时隙结束后,执行步骤(10);
(10)判断当前超帧中的时隙是否为本节点占用的数据确认ack接收时隙,若是,则执行步骤(11),否则,执行步骤(12);
(11)数据确认ack接收时隙内的接收处理:
(11a)数据确认ack接收时隙内收到ack数据确认帧,解析出ack数据确认帧中封装的应接收节点地址和发送节点地址信息,并与数据发送时隙内发送的数据帧中封装的应接收节点地址和发送节点地址信息进行比对:
若比对正确,则表示数据发送时隙内发送的数据确认帧被接收端节点正确接收,若
比对错误,则表示数据发送时隙内发送的数据确认帧未被接收端节点正确接
收,未被接收端节点接收的数据帧即为待重传数据帧,并将缓存在ram中的该待重传数据帧存入到队列优先级最高的重传队列中;
(11b)数据确认ack接收时隙内没有收到ack数据确认帧,则表示本地节点在n+n时隙组中占用的数据发送时隙内发送的数据帧,未被接收端节点正确接收,需要对该数据帧进行重传处理并存入重传队列中;
(11c)数据确认ack接收时隙结束后,执行步骤(12);
(12)判断当前超帧中的复帧是否结束,若是,则返回步骤(2),否则,返回步骤(4)。
本发明与现有技术相比具有以下优点:
第一,本发明由于引入了n+n时隙组,克服了现有技术中链路差错控制在时隙内引入多余的基带处理造成时延的问题,使得链路差错控制data-ack在n+n时隙组中的数据发送时隙和对应的ack时隙内完成,提高了时隙利用率和系统吞吐量。
第二,本发明由于采用了基于n+n时隙组的重传时隙调度方法,克服了现有技术中队列调度和数据重传的灵活性和效率不高的问题,使得本发明中本地节点可以在n+n时隙组的前n个数据时隙中同时占用多个数据发送时隙,进行多次数据帧的发送,在后n个ack时隙中对应的ack时隙内判断发送的数据帧是否被接收端正确接收,并在后续的n+n时隙组中占用的数据发送时隙内,优先调度未被接收端正确接收的待重传数据帧,提高了队列调度和数据重传的效率和灵活性。
附图说明
图1是本发明的实现流程图;
图2是本发明中的n+n时隙组示意图;
图3是本发明中的tdma超帧结构图;
图4是本发明中基于n+n时隙组的链路差错控制示意图。
具体实施方式
下面结合附图,对本发明作进一步的详细描述。
参照图1,本发明实施步骤如下。
步骤1.节点开机系统初始化。
1.1)构建由m个复帧组成的超帧,每个复帧由l个n+n时隙组组成,每个n+n时隙组由n个数据时隙和n个数据确认ack时隙组成,其中数据时隙编号与数据确认ack时隙编号前后一一对应,且每个复帧中第一个n+n时隙组中的第一个数据时隙为bs广播时隙,8≤m≤64,8≤l≤16,4≤n≤8;
参照图2,本实例中n+n时隙组由前n个数据时隙和后n个数据确认ack时隙组成,时隙组中的数据时隙s1对应数据确认时隙a1,数据时隙和数据确认ack时隙是前后一一对应的关系;
参照图3,本实例中复帧的个数设定为32个,每个复帧中时隙组的个数设定为16个,n+n时隙组中n数值设定为4,每个时隙组由4个数据时隙和4个数据确认ack时隙组成;
1.2)本地节点根据tdma协议给定的初始化帧和时隙表,确定本节点在超帧中占用的bs广播时隙和数据发送时隙;
1.3)本地节点根据占用的数据发送时隙编号,确定n+n时隙组中对应的本节点占用的数据确认ack接收时隙编号;并根据接收到数据帧中封装的发送时隙编号,确定n+n时隙组中对应的本节点占用的数据确认ack发送时隙编号。
所述数据确认ack发送时隙,是指在n+n时隙组中,本地节点占用的发送ack数据确认帧的数据确认ack时隙。
所述数据确认ack接收时隙,是指在n+n时隙组中,本地节点占用的接收其他节点发送的ack数据确认帧的数据确认ack时隙。
步骤2.对当前超帧中的时隙进行判断。
判断当前超帧中的时隙是否为本节点占用的bs广播时隙,若是,则执行步骤3,否则,执行步骤4。
步骤3.在本节点占用的bs广播时隙内完成勤务帧的发送,并在当前bs广播时隙结束后,执行步骤4。
步骤4.判断当前超帧中的时隙是否为本节点占用的数据发送时隙,若是,则执行步骤5,否则,执行步骤6。
步骤5.发送数据帧。
5.1)设数据缓存队列共有5个,即rq重传队列、第一数据队列tq1、第二数据队列tq2、第三数据队列tq3和第四数据队列tq4,且队列的优先级排序由高到低;
5.2)按照绝对优先级的顺序依次检测rq重传队列、第一数据队列tq1、第二数据队列tq2、第三数据队列tq3和第四数据队列tq4中是否有数据帧,且优先调度高优先级队列中的数据帧发送,如图4(a)所示,本实例中本地节点a在n+n时隙组中占用的s1数据发送时隙内,向节点b发送数据帧;
5.3)设定n个缓存ram,其编号与n+n时隙组中的n个数据时隙的编号一一对应,用于重传时隙调度处理,并对发送的数据帧中封装的应接收节点地址和发送节点地址进行缓存,在当前数据发送时隙结束后,执行步骤6。
所述重传时隙调度处理,是指本地节点在n+n时隙组中占用的数据发送时隙内,按rq重传队列、第一数据队列tq1、第二数据队列tq2、第三数据队列tq3和第四数据队列tq4从高到低的队列绝对优先级的顺序,优先从高优先级队列中调度数据帧出队,并将调度出队的数据帧,缓存到与数据时隙编号对应的ram中;如果本地节点在n+n时隙中对应的ack接收时隙内,未正确接收到对应的ack数据确认帧,则需进行重传处理,将缓存在ram中待重传的数据帧存入队列优先级最高的重传队列中,并在n+n时隙组中本节点占用的下一个数据发送时隙内,优先调度重传队列中的数据帧;否则,不进行重传处理。
步骤6.判断当前超帧中的时隙是否为本节点占用的数据接收时隙,若是,则执行步骤7,否则,执行步骤8。
步骤7.数据接收时隙内的接收处理。
7.1)对数据接收时隙内接收到的数据帧进行解析处理,保存数据帧中封装的发送时隙编号、应接收节点地址和发送节点地址,该应接收节点地址和发送节点地址用于对ack数据确认帧的封装;
7.2)由接收到的数据帧中封装的发送时隙编号,得出n+n时隙组中对应的本地节点占用的数据确认ack发送时隙编号,本地节点在其占用的数据确认ack发送时隙内,发送ack数据确认帧,在当前数据接收时隙结束后,执行步骤8。
步骤8.对当前超帧中的数据确认ack时隙进行判断。
判断当前超帧中的时隙是否是本节点占用的数据确认ack发送时隙:
如果在n+n时隙组中本节点占用的数据接收时隙内,接收到了其他节点发送的数据帧,并且数据帧中封装的应接收节点地址是本地节点地址,则根据数据帧中封装的数据发送时隙编号可得,n+n时隙组中对应编号的数据确认ack时隙就是本节点占用的数据确认ack发送时隙,执行步骤9;
否则,当前超帧中的时隙不是本节点占用的数据确认ack发送时隙,执行步骤10。
步骤9.发送ack数据确认帧。
9.1)将在本节点占用的数据接收时隙内所保存数据帧中封装的应接收节点地址和发送节点地址,封装到ack数据确认帧中;
9.2)在当前数据确认ack发送时隙内,调度ack数据确认帧并发送,数据确认ack发送时隙结束后,执行步骤10。
步骤10.对当前超帧中的数据确认ack时隙进行判断。
判断当前超帧中的时隙是否为本节点占用的数据确认ack接收时隙:
如果当前超帧的时隙是数据确认ack时隙,且其编号与n+n时隙组中本节点占用的数据发送时隙编号对应,则该数据确认ack时隙就是本节点占用的数据确认ack接收时隙,则执行步骤11;
否则,当前超帧中的时隙不是本节点占用的数据确认ack接收时隙,执行步骤12。
步骤11.数据确认ack接收时隙内的接收处理。
11.1)参照图4(b),本实例中本地节点a在n+n时隙组中占用的a1数据确认ack接收时隙内,对接收节点b发送的ack数据确认帧进行接收,对在数据确认ack接收时隙内收到的ack数据确认帧,解析出ack数据确认帧中封装的应接收节点地址和发送节点地址信息,并与数据发送时隙内发送的数据帧中封装的应接收节点地址和发送节点地址信息进行比对,如果ack数据确认帧中的应接收节点地址值与数据帧中封装的应接收节点地址值相等,且ack数据确认帧中的发送节点地址值与数据帧中封装的发送节点地址值相等,则比对正确;否则,比对错误;
若比对正确,则表示数据发送时隙内发送的数据确认帧被接收端节点正确接收,
若比对错误,则表示数据发送时隙内发送的数据确认帧未被接收端节点正确接收,未被接收端节点接收的数据帧即为待重传数据帧,并将缓存在ram中的该待重传数据帧存入到队列优先级最高的重传队列中;
11.2)数据确认ack接收时隙内没有收到ack数据确认帧,则表示本地节点在n+n时隙组中占用的数据发送时隙内发送的数据帧,未被接收端节点正确接收,需要对该数据帧进行重传处理并存入重传队列中;
11.3)数据确认ack接收时隙结束后,执行步骤12。
步骤12.判断当前超帧中的复帧是否结束,若是,则返回步骤2,否则,返回步骤4。
以上描述仅是本发明的一个具体实例,并未构成对本发明的任何限制,显然对于本领域的专业人员来说,在了解了本发明内容和原理后,都可能在不背离本发明原理、结构的情况下,进行形式和细节上的各种修改和改变,但是这些基于本发明思想的修正和改变仍在本发明的权利要求保护范围内。