网络冲突分解方法、装置、计算设备及存储介质与流程

文档序号:18084990发布日期:2019-07-06 10:25阅读:316来源:国知局
网络冲突分解方法、装置、计算设备及存储介质与流程

本发明涉及通信技术领域,尤其涉及一种网络冲突分解方法、装置、计算设备及存储介质。



背景技术:

多址访问技术是一种多用户共享公共信道的接入控制协议,已被广泛应用于不同的传输媒质构成的通信系统中,如卫星通信系统、移动通信系统、计算机局域网和城域网。多址访问技术主要遵循固定分配、按需分配和随机争用三种通信协议模型。其中随机争用模型在一定条件下作为有效利用信道资源,减小转接时延的技术而被广泛应用。

在随机争用系统模型时隙式aloha系统中,公共信道被离散为若干固定长度的时间片,这些片段称为时隙。每一个时隙有三种可能的状态:空闲(没有数据包在该时隙范围内)、成功(刚好有一个数据包占用该时隙)和冲突(有两个及以上数据包申请该时隙)。用户终端只能在每个时隙的起始处开始发送数据包,且一个时隙内仅可以传输一个数据包。系统中的用户随机占用信道资源,当系统中有两个及两个以上用户终端同时申请某个时隙发送信息时,冲突就产生了。卷入冲突的用户终端需要按照一定的冲突分解规则在后续的时隙中重发信息,直到所有冲突用户终端数据发送成功。

时隙式aloha系统在轻负荷情况下,数据包在公共信道上发生冲突的概率较小,每个终端可根据需要有效地利用信道。但随着系统负荷的增加,冲突将不断增多,从而导致接入时延增大、吞吐量下降,甚至于发生数据包丢失或系统崩溃。

因此,对于有竞争的多址接入协议如何解决冲突是一个非常重要的问题。



技术实现要素:

本发明实施例提供了一种网络冲突分解方法、装置、计算设备及存储介质,能够减少系统时延和提高系统的吞吐率,从而提高随机争用多址访问系统的性能。

第一方面,本发明实施例提供了一种网络冲突分解方法,方法包括:

基于初始冲突终端的个数确定初始退避窗口的初始尺寸;

基于具有初始尺寸的初始退避窗口进行第一次冲突分解。

可选地,该方法还包括:基于上一次退避窗口的上次尺寸及已经执行冲突分解的次数,确定本次退避窗口的本次尺寸;

基于具有本次尺寸的本次退避窗口进行本次冲突分解。

优选地,本次尺寸随已经执行冲突分解的次数的增加而指数上升。可以基于下述公式确定所述本次尺寸:

lk=lk-1+2i-1

其中,lk、lk-1分别表示第k次冲突分解时退避窗口的尺寸、第k-1次冲突分解时退避窗口的尺寸,i=min(k,10)。

可选地,在基于上一次退避窗口执行上一次冲突分解后,冲突终端的个数小于预定阈值的情况下,基于上一次退避窗口执行本次冲突分解。

可选地,在执行上一次冲突分解后,有且仅有一个时隙内存在冲突终端碰撞的情况下,执行最后一次冲突分解。

可选地,在最后一次冲突分解失败的情况下,丢弃仍然发送碰撞的冲突终端上的信息。

可选地,对于最后一次冲突分解,基于上一次退避窗口的上次尺寸和上一次冲突分解后冲突终端的个数,确定最后一次冲突分解的最后退避窗口的最后尺寸。可以基于下述公式确定所述最后尺寸:

ll=ll-1+2j

其中,ll、ll-1分别表示最后一次冲突分解时最后退避窗口的最后尺寸、最后一次冲突分解的上一次退避窗口的上次尺寸,j表示上一次冲突分解后冲突终端的个数。

第二方面,本发明实施例提供了一种网络冲突分解装置,装置包括:

确定模块,用于基于初始冲突终端的个数确定初始退避窗口的初始尺寸;

分解模块,用于基于具有初始尺寸的初始退避窗口进行第一次冲突分解。

第三方面,本发明实施例提供了一种计算设备,包括:至少一个处理器、至少一个存储器以及存储在存储器中的计算机程序指令,当计算机程序指令被处理器执行时实现如上述实施方式中第一方面的方法。

第四方面,本发明实施例提供了一种计算机可读存储介质,其上存储有计算机程序指令,当计算机程序指令被处理器执行时实现如上述实施方式中第一方面的方法。

本发明实施例提供的网络冲突分解方法、装置、计算设备及存储介质,通过自动调整初始窗口和退避次数的方法,减少冲突分解次数和平均退避的时隙值,可以减少系统时延和提高系统的吞吐率,从而提高随机争用多址访问系统的性能。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出了根据本发明一实施例的网络冲突分解方法的示意性流程图。

图2示出了根据本发明一实施例的冲突分解过程示意图。

图3示出了根据本发明一实施例的冲突分解过程示意图。

图4示出了根据本发明一实施例的网络冲突分解方法的仿真流程图。

图5示出了根据本发明一实施例的网络冲突分解方法的吞吐量的流程图。

图6示出了根据本发明一实施例的网络冲突分解装置的示意性结构框图。

图7示出了根据本发明一实施例的计算设备的示意性结构图。

具体实施方式

下面将详细描述本发明的各个方面的特征和示例性实施例,为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细描述。应理解,此处所描述的具体实施例仅被配置为解释本发明,并不被配置为限定本发明。对于本领域技术人员来说,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施例的描述仅仅是为了通过示出本发明的示例来提供对本发明更好的理解。

需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

冲突分解是解决网络冲突的一种方式。冲突分解的思想是:如果系统发生碰撞,则让新到达的分组在系统外等待,在参与碰撞的分组均成功传输后,再让新分组传输。通过冲突分解可以有效提高系统的通过率。退避算法就是一种常用的冲突分解方法,包括二进制指数退避算法(binaryexponentialbackoff,beb),多项式后退算法(polynomialbackoff,pb),固定平均退避算法(fixationmeanbackoff,fmb),顺序退避算法(orderbackoff,ob)及线性增值退避算法(linearincreasebackoff,lib)。

本发明针对二进制指数退避算法进行改进,图1示出了根据本发明一实施例的网络冲突分解方法的示意性流程图。

如图1所示,在步骤s100中可以基于初始冲突终端的个数确定初始退避窗口的初始尺寸。

例如,在分解冲突的开始时刻,根据发生冲突终端数目的多少来确定每次为解决冲突提供的退避时隙窗口值,基本二进制退避算法在冲突分解开始时提供的退避时隙窗口每次都为[1,21]即[1,2]。本方案中,可以根据初始冲突终端的个数(假设冲突终端数小于等于200)动态地调整初始退避时隙窗口。

根据本发明一实施例的基于初始终端个数的初始窗口的初始尺寸设置如下表1所示:

表1

例如,假设一次碰撞终端数目为18,利用改进算法进行第一次冲突分解,算法为其选择的退避窗口为[1,15],而不是基本算法提供的初始窗口[1,2]。退避窗口[1,15]基本对应着基本算法(截断二进制指数退避算法)第4次进行冲突分解所安排的退避窗口取值。

通过上述方法,当发生碰撞的冲突终端数比较小时,可以通过设置小的初始退避窗口来减少系统时延,在发生碰撞的冲突终端数比较大时,通过设置较大的初始退避窗口来减少碰撞的再次发生。因此,能够提高冲突分解的效率。

在步骤s200中可以基于具有初始尺寸的初始退避窗口进行第一次冲突分解。

根据本发明一实施例,该方法还可以包括:基于上一次退避窗口的上次尺寸及已经执行冲突分解的次数,确定本次退避窗口的本次尺寸。

例如,当第二次进行冲突分解时,若按基本算法退避窗口应为[1,22],即[1,4],退避窗口值大幅度减小,势必影响冲突分解效率。

根据本发明一实施例,本次尺寸随已经执行冲突分解的次数的增加而指数上升。可以基于公式确定所述本次尺寸:lk=lk-1+2i-1,其中,lk、lk-1分别表示第k次冲突分解时退避窗口的尺寸、第k-1次冲突分解时退避窗口的尺寸,i=min(k,10)。

即设第k次进行冲突分解时的退避窗口为[mk,nk]。其中

mk,nk分别表示进行第k次冲突分解时退避窗口的最小值和最大值。

例如,当k=10时,若仍有终端发生碰撞,则同基本截断二进制指数退避算法一样,进入后六次冲突分解。总冲突分解次数不大于16。例如,当初始终端数为10时,根据本方案中自动调整初始窗口的二进制指数退避算法,结合上表中对应的初始窗口尺寸,为冲突终端分配的退避时隙为[1,7]。第一次冲突分解后进入第二次冲突分解过程,按照上述公式,退避时隙窗口变为[1,7+22-1],即[1,9]。若进入第三次冲突分解过程,退避时隙窗口变为[1,9+23-1],即[1,13],以此类推。

根据本发明一实施例,可以基于具有本次尺寸的本次退避窗口进行本次冲突分解。图2示出了根据本发明一实施例的冲突分解过程示意图。

例如,设冲突终端数目为4,如图2所示,图2中带箭头的a,b,c,d分别代表4个冲突终端。初始窗口分配等同于冲突终端数目为10时的情况,图2演示了整个冲突分解过程。整个冲突分解过程共使用了10个时隙。第一次冲突分解的退避窗口为[1,7],终端a,b冲突分解失败,第二次冲突分解的退避窗口为[1,9],所有终端冲突分解成功。

除此以外,退避级数的大小对系统时延也有很大关系,退避级数越大,进行冲突分解的退避窗口越大,时延的长度也将加大。在冲突分解过程中随着分解次数的不断增多,冲突终端的数目不断减小,但退避时隙数却随二进制指数迅速增大,这将大大增加系统时延,所以我们把调整退避级数的大小考虑进去,以此减小系统时延,增大吞吐量。

一是限制退避窗口大小的增加,根据本发明一实施例,可以在基于上一次退避窗口执行上一次冲突分解后,冲突终端的个数小于预定阈值的情况下,基于上一次退避窗口执行本次冲突分解。

例如,可以设定在进行n次冲突分解后停止增加退避窗口的大小。例如进行n次冲突分解后,如果冲突终端的数目小于一定值时,则在以后的冲突分解过程中,退避时隙窗口保持第n次的退避窗口大小,直至冲突终端被完全成功发送。

二是根据一定条件使之强制进入最后一次冲突分解过程。这将造成一定的丢包现象,但可通过设置一定的终止条件使得丢包率较小,系统时延却可以大大减小。

根据本发明一实施例,可以在执行上一次冲突分解后,有且仅有一个时隙内存在冲突终端碰撞的情况下,执行最后一次冲突分解。

例如,如果某次冲突分解结束后,有若干个冲突终端只在一个时隙上发生碰撞,则算法规定进入最后一次冲突分解。

根据本发明一实施例,对于最后一次冲突分解,可以基于上一次退避窗口的上次尺寸和上一次冲突分解后冲突终端的个数,确定最后一次冲突分解的最后退避窗口的最后尺寸。可以基于下述公式确定所述最后尺寸:

ll=ll-1+2j

其中,ll、ll-1分别表示最后一次冲突分解时最后退避窗口的最后尺寸、最后一次冲突分解的上一次退避窗口的上次尺寸,j表示上一次冲突分解后冲突终端的个数。

例如,设初始终端数n=15,进行第4次冲突分解后,假设只有3个终端在第19个时隙上发生碰撞,则算法规定进入最后一次冲突分解,而第4次冲突分解的退避时隙窗口为[1,29],所以最后一次冲突分解的窗口为[1,29+23],即[1,37]。

根据本发明一实施例,在最后一次冲突分解失败的情况下,丢弃仍然发送碰撞的冲突终端上的信息。

图3示出了根据本发明一实施例的冲突分解过程示意图。

如图3所示,假设初始冲突终端个数n=6,第一次冲突分解的退避窗口为[1,7],终端a,b,d,e冲突分解失败,第二次冲突分解的退避窗口为[1,9],终端a,d冲突分解失败,进入最后一次冲突分解,第三次冲突分解的退避窗口为[1,13],所以终端冲突分解成功。经过三次冲突分解,全部冲突终端成功发送。

通过上述方法,对基本二进制指数退避算法进行改进,可以自动调整初始窗口,并在调整初始窗口的基础上再加入调整退避次数的改进算法,减少了冲突分解次数和平均退避的时隙值、提高了系统的吞吐率。

上述方法可利用vc++6.0及matlab进行仿真验证,设冲突终端数为n,maxslot表示n个冲突终端进行10000次冲突分解仿真实验所需要的平均最大时隙数。可以写出其表达式:

式中k表示某次冲突分解成功时最大的退避指数。

图4示出了根据本发明一实施例的网络冲突分解方法的仿真流程图。

如图4所示,首先设定最小冲突终端数n1和最大冲突终端数n2,仿真循环次数m和冲突分解不成功的终端个数n。当终端发送的数据包冲突时,终端重发数据包的退避延时窗口按2的指数增大,大小为k=2i,i是冲突终端的重发次数(i=1,2,3,…)。

冲突终端取(1,2i)中的一个随机整数作为其退避重发时间。若再次发生冲突,则使i=i+1,累加上一次冲突分解的退避窗口最大时隙值,并重复上述延迟过程,直到冲突分解成功。

为保证信道利用效率,终端所开的最大时隙窗口数不能是无限制的,算法规定i的最大值为10,即最大时隙窗口为1024(210)。

算法规定最大重复次数为16,当冲突终端的分解次数超过16次仍然存在冲突终端时就视为分解失败。后6次冲突分解过程的窗口大小保持1024不变。

累加m次仿真过程中所有冲突终端成功发送的最大时延,直到达到最大仿真循环次数,计算平均时延。

图5示出了根据本发明一实施例的网络冲突分解方法的吞吐量的流程图。

首先设定发生冲突的终端数、仿真循环次数、初始到达率和最终到达率,判断是否存在终端冲突,分别使用基本二进制退避算法和本发明改进的退避算法进行冲突分解,根据吞吐量计算公式计算吞吐量,当到达率大于设定的到达率时,结束吞吐量的仿真计算。

在不同的数据包到达率g下,吞吐量(s)的计算公式为:

其中n表示冲突终端的个数,e(lk)代表平均时隙数。根据吞吐量的计算公式,可以求得基本算法的吞吐量最大值为0.3902(g=0.9),自动调整初始窗口和退避级数的二进制指数退避算法吞吐量最大值为0.3945(g=1.06)。本发明改进算法的的吞吐量性能比基本算法较高。

下表2为基本算法和本发明改进算法的时延实验结果,其中,count表示全部冲突分解成功时的分解次数。

表2

仿真结果表明在最大次数为16次的冲突分解后,初始时刻全部产生碰撞的终端全部发送成功的最大终端数目,基本二进制指数退避算法为250,自动调整初始窗口大小的改进算法为370左右,自动调整初始窗口和退避级数的二进制指数退避算法提升到440左右。分解效率有较大幅度提高。

从上表可以看出,在初始冲突终端数目相同的情况下,在冲突分解次数及平均退避的时隙值方面,本发明冲突分解算法较基本算法有明显减小。

图6示出了根据本发明一实施例的网络冲突分解装置的示意性结构框图。

如图6所示,网络冲突分解装置600可以包括:确定模块610和分解模块620。

确定模块610可以基于初始冲突终端的个数确定初始退避窗口的初始尺寸。

分解模块620可以基于具有初始尺寸的初始退避窗口进行第一次冲突分解。

根据本发明一实施例,该装置600还可以包括第二确定模块和第二分解模块。

第二确定模块可以基于上一次退避窗口的上次尺寸及已经执行冲突分解的次数,确定本次退避窗口的本次尺寸。

第二分解模块可以基于具有本次尺寸的本次退避窗口进行本次冲突分解。

另外,结合图1描述的本发明实施例的网络冲突分解方法可以由计算设备来实现。图7示出了本发明实施例提供的计算设备的硬件结构示意图。

计算设备可以包括处理器701以及存储有计算机程序指令的存储器702。

具体地,上述处理器701可以包括中央处理器(cpu),或者特定集成电路(applicationspecificintegratedcircuit,asic),或者可以被配置成实施本发明实施例的一个或多个集成电路。

存储器702可以包括用于数据或指令的大容量存储器。举例来说而非限制,存储器702可包括硬盘驱动器(harddiskdrive,hdd)、软盘驱动器、闪存、光盘、磁光盘、磁带或通用串行总线(universalserialbus,usb)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器702可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器702可在数据处理装置的内部或外部。在特定实施例中,存储器702是非易失性固态存储器。在特定实施例中,存储器702包括只读存储器(rom)。在合适的情况下,该rom可以是掩模编程的rom、可编程rom(prom)、可擦除prom(eprom)、电可擦除prom(eeprom)、电可改写rom(earom)或闪存或者两个或更多个以上这些的组合。

处理器701通过读取并执行存储器702中存储的计算机程序指令,以实现上述实施例中的任意一种网络冲突分解方法。

在一个示例中,计算设备还可包括通信接口703和总线710。其中,如图7所示,处理器701、存储器702、通信接口703通过总线710连接并完成相互间的通信。

通信接口703,主要用于实现本发明实施例中各模块、装置、单元和/或设备之间的通信。

总线710包括硬件、软件或两者,将计算设备的部件彼此耦接在一起。举例来说而非限制,总线可包括加速图形端口(agp)或其他图形总线、增强工业标准架构(eisa)总线、前端总线(fsb)、超传输(ht)互连、工业标准架构(isa)总线、无限带宽互连、低引脚数(lpc)总线、存储器总线、微信道架构(mca)总线、外围组件互连(pci)总线、pci-express(pci-x)总线、串行高级技术附件(sata)总线、视频电子标准协会局部(vlb)总线或其他合适的总线或者两个或更多个以上这些的组合。在合适的情况下,总线710可包括一个或多个总线。尽管本发明实施例描述和示出了特定的总线,但本发明考虑任何合适的总线或互连。

另外,结合上述实施例中的网络冲突分解方法,本发明实施例可提供一种计算机可读存储介质来实现。该计算机可读存储介质上存储有计算机程序指令;该计算机程序指令被处理器执行时实现上述实施例中的任意一种网络冲突分解方法。

综上所述,本方案通过自动调整初始窗口的改进算法和在调整初始窗口的基础上再加入调整退避次数的改进算法,减少了冲突分解次数和平均退避的时隙值,减小了系统时延,增大了系统的吞吐量。

需要明确的是,本发明并不局限于上文所描述并在图中示出的特定配置和处理。为了简明起见,这里省略了对已知方法的详细描述。在上述实施例中,描述和示出了若干具体的步骤作为示例。但是,本发明的方法过程并不限于所描述和示出的具体步骤,本领域的技术人员可以在领会本发明的精神后,作出各种改变、修改和添加,或者改变步骤之间的顺序。

以上所述的结构框图中所示的功能块可以实现为硬件、软件、固件或者它们的组合。当以硬件方式实现时,其可以例如是电子电路、专用集成电路(asic)、适当的固件、插件、功能卡等等。当以软件方式实现时,本发明的元素是被用于执行所需任务的程序或者代码段。程序或者代码段可以存储在机器可读介质中,或者通过载波中携带的数据信号在传输介质或者通信链路上传送。“机器可读介质”可以包括能够存储或传输信息的任何介质。机器可读介质的例子包括电子电路、半导体存储器设备、rom、闪存、可擦除rom(erom)、软盘、cd-rom、光盘、硬盘、光纤介质、射频(rf)链路,等等。代码段可以经由诸如因特网、内联网等的计算机网络被下载。

还需要说明的是,本发明中提及的示例性实施例,基于一系列的步骤或者装置描述一些方法或系统。但是,本发明不局限于上述步骤的顺序,也就是说,可以按照实施例中提及的顺序执行步骤,也可以不同于实施例中的顺序,或者若干步骤同时执行。

以上所述,仅为本发明的具体实施方式,所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、模块和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。应理解,本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。

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