一种网络靶场环境中流式动态公平场景分配方法与装置制造方法及图纸

技术编号:30435448 阅读:17 留言:0更新日期:2021-10-24 17:35
本发明专利技术公开了一种网络靶场环境中流式动态公平场景分配方法与装置,该方法在收到新用户的进入请求时,从当前已经分配的场景中,为新用户随机挑选一个场景,并随机挑选场景中已有的用户,用新用户替换选中的用户实现新用户场景的分配,对于替换出的用户再为其重新分配场景。本发明专利技术无需预先知道参与分配的用户总数,而是在每个用户到达系统后,动态调整当前场景列表每个用户的分配概率,从而从统计学的角度保证每个用户出现在每个场景中的概率相等,实现动态公平分配对于用户数量无法事先统计的使用场景,实现完全公平的随机场景分配。实现完全公平的随机场景分配。实现完全公平的随机场景分配。

【技术实现步骤摘要】
一种网络靶场环境中流式动态公平场景分配方法与装置


[0001]本专利技术涉及网络靶场环境中流式动态公平场景分配方法与装置,属于网络


技术介绍

[0002]在网络靶场中,场景拓扑定义为由虚拟机、路由器等一系列网络设备组成的点和边的图形集合,集合中每个点分别代表一种网络设备,边代表设备间的连接关系。通过OpenStack等虚拟化技术可对该拓扑中所有的节点设备进行实例化,实例化后的拓扑定义为场景。依托于场景,用户可以在靶场中完成各种网络实验以及科学验证。基于物理计算资源有限的前提,在教学环境中一般多用户共享一个场景以节约物理计算资源。
[0003]在类似学校公开课的靶场使用环境中,用户分别会在不同的时间点陆续进入系统使用靶场,此时用户呈现以流的方式持续加入的特性。在这种情况下,某个特定的时间点无法判断后续时间是否还有新用户进入,所以无法统计用户总数。教学类的使用场景中,老师会将若干名(比如3名)学生组成一队,共同使用某个虚拟化场景以完成某项教学实验,为了保证实验成绩的公平性,分配时需要保证人员完全随机,即每个学生出现在每个场景中的概率相等。
[0004]现有的分配方案要求在实际分配之前,参与场景分配的人数已经确定,即开始分配后没有新用户加入,否则无法保证新用户和分配动作开始前已参与分配的用户以相同的概率随机分配到某个场景中。当前的场景分配流程如图1所示。为方便表述,做如下假设:假设初始需要参与场景分配的用户总数记为M,每X个人分为一个场景;考虑到总人数M不可能永远是X的整数倍,允许最后一个场景的人员数小于等于X;记最近一个生成的场景为当前场景。目前场景分配流程是:1、将所有需要参与场景分配的用户加入待分配列表;2、统计待分配列表中需要参与场景分配的用户数,记为M;3、只要待分配列表中有需要场景分配的用户,即M>0,持续场景分配动作;否则停止分配流程;4、从待分配列表中随机选取一个用户记为A;5、判断当前场景是否已满(场景中的人数等于X人认为已满),场景已满转跳步骤6,否则转跳步骤7;6、为步骤4中选中的用户A新建一个场景,将该场景标记为当前场景,转跳步骤8;7、将步骤4中选中的用户A加入当前场景,转跳步骤8;8、将用户A从待分配列表移除,转跳步骤2。
[0005]上述现有场景分配流程只能针对事先已知数量的用户进行场景分配,对于一直有新用户加入的流式情形,即用户总数无法确定的情况,不能实现完全公平的随机场景分配。

技术实现思路

[0006]专利技术目的:针对上述现有技术存在的问题,本专利技术目的在于提供网络靶场环境中流式动态公平场景分配方法与装置,适用于用户数量无法事先统计的使用场景,实现完全公平的随机场景分配。
[0007]技术方案:为实现上述专利技术目的,本专利技术提供一种网络靶场环境中流式动态公平
场景分配方法,包括如下步骤:步骤1、创建场景队列用于存储分配的场景,并为每个分配的场景创建用户队列用于存储场景中的用户;其中用户队列的长度不超过X ,X为每个场景可分配的用户数上限;步骤2、监听新用户的进入请求,新用户记为A;步骤3、从场景队列中随机挑选一个已分配的场景;步骤4、从步骤3选中的场景对应的用户队列中随机挑选一个用户,该用户记为B;步骤5、将用户B从选中的场景中退出,并将用户A加入选中的场景,同时更新选中场景对应的用户队列;步骤6、为用户B重新分配场景:统计当前场景中的用户数,其中当前场景为最近一个生成的场景;如果当前场景的用户人数等于X,则为用户B新建一个场景,更新场景队列,并将该场景标记为当前场景;否则将用户B加入当前场景,同时更新当前场景的用户队列。
[0008]进一步地,步骤5中若新用户A替换用户B时,用户B在其场景中的虚拟机上存在操作记录,则对用户B操作的虚拟机执行用户快照动作,保存用户B的操作上下文;并对用户B操作的虚拟机执行清理动作,恢复到初始化状态;在重新为用户B分配场景后,用保存的用户B的用户快照恢复到新分配的场景中的虚拟机。
[0009]进一步地,步骤5中用新用户A替换选中的用户B时,将用户B从其使用的虚拟机中退出,并提示用户B重新刷新操作页面,在用户B刷新操作页面后即连接到新分配的场景。
[0010]本专利技术提供的一种网络靶场环境中流式动态公平场景分配装置,包括:队列维护单元,用于管理场景队列和用户队列,其中场景队列用于存储分配的场景,每个分配的场景对于一个用户队列,用于存储场景中的用户,其中用户队列的长度不超过X ,X为每个场景可分配的用户数上限;场景选择单元,用于监听新用户的进入请求,从场景队列中为新用户A随机挑选一个已分配的场景;替换用户选择单元,用于从场景选择单元选中的场景对应的用户队列中随机挑选一个用户B,将用户B从选中的场景中退出,并将用户A加入选中的场景,同时更新选中场景对应的用户队列;以及替换用户场景分配单元,用于为用户B重新分配场景:统计当前场景中的用户数,其中当前场景为最近一个生成的场景;如果当前场景的用户人数等于X,则为用户B新建一个场景,更新场景队列,并将该场景标记为当前场景;否则将用户B加入当前场景,同时更新当前场景的用户队列。
[0011]本专利技术提供的一种网络靶场环境中流式动态公平场景分配装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述计算机程序被加载至处理器时实现所述的一种网络靶场环境中流式动态公平场景分配方法。
[0012]有益效果:本专利技术无需预先知道参与分配的用户总数,而是在每个用户到达系统后,按需生成场景,并动态调整当前场景列表每个用户的分配概率,从而从统计学的角度保证每个用户出现在每个场景中的概率相等,实现动态公平分配对于用户数量无法事先统计的使用场景,实现最大化场景资源利用率的情况下完全公平的随机场景分配。
附图说明
[0013]图1为现有网络靶场场景分配流程图。
[0014]图2为本专利技术实施例的网络靶场场景分配流程图。
具体实施方式
[0015]下面将结合附图和具体实施例,对本专利技术的技术方案进行清楚、完整的描述。
[0016]如图2所示,本专利技术实施例公开了一种网络靶场环境中流式动态公平场景分配方法。本专利技术方法中假设每个场景可分配的人数上限为X,记最近一个生成的场景为当前场景,该方法具体流程如下所示:步骤1、创建场景队列L用于存储分配的场景,并为每个分配的场景l
i
创建用户队列U
i
用于存储场景中的用户。
[0017]步骤2、系统监听新用户的进入请求,新用户记为A;步骤3、从场景队列L中随机挑选一个场景l
j
;1≤j≤N,N为当前场景队列的长度;步骤4、步骤3选中的场景l
j
的用户队列U
j
随机挑选一个用户u
jk
,该用户记为B;1≤k≤M,M为U
j
的长度;步骤5、用新用户A替换选中的用户B,即将用户B从选中的场景中退出,并将用户A加入选中的场景,同时更新选中场景对应的用户队列。本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种网络靶场环境中流式动态公平场景分配方法,其特征在于,包括如下步骤:步骤1、创建场景队列用于存储分配的场景,并为每个分配的场景创建用户队列用于存储场景中的用户;其中用户队列的长度不超过X ,X为每个场景可分配的用户数上限;步骤2、监听新用户的进入请求,新用户记为A;步骤3、从场景队列中随机挑选一个已分配的场景;步骤4、从步骤3选中的场景对应的用户队列中随机挑选一个用户,该用户记为B;步骤5、将用户B从选中的场景中退出,并将用户A加入选中的场景,同时更新选中场景对应的用户队列;步骤6、为用户B重新分配场景:统计当前场景中的用户数,其中当前场景为最近一个生成的场景;如果当前场景的用户人数等于X,则为用户B新建一个场景,更新场景队列,并将该场景标记为当前场景;否则将用户B加入当前场景,同时更新当前场景的用户队列。2.根据权利要求1所述的网络靶场环境中流式动态公平场景分配方法,其特征在于,步骤5中若新用户A替换用户B时,用户B在其场景中的虚拟机上存在操作记录,则对用户B操作的虚拟机执行用户快照动作,保存用户B的操作上下文;并对用户B操作的虚拟机执行清理动作,恢复到初始化状态;在重新为用户B分配场景后,用保存的用户B的用户快照恢复到新分配的场景中的虚拟机。3.根据权利要求1所述的网络靶场环境中流式动态公平场景分配方法,其特征在于,步骤5中用新用户A替换选中的用户B时,将用户B从其使用的虚拟机中退出,并提示用户B重新刷新操作页面,在用户B刷新操作页面后即连接到新分配的场景。4.一种网络靶场环境中流式动态公平场景分配装置,其特征在于,包括:队列维护单元,用于管理场景队列和用户队列,其中场景队列用于存储分配的场景,每个分配的场景对于一个用户队列,用于存储场景中的用...

【专利技术属性】
技术研发人员:殷庆荣卢成远谢峥高庆官唐海均王国伟
申请(专利权)人:南京赛宁信息技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1