本发明涉及通信技术领域,尤其涉及一种无线网络的建模装置、方法和系统。
背景技术:
长期以来,基于包层次(Packet-level)的离散事件(Discrete-event)仿真模型一直被认为是一种实现网络性能仿真的有效手段并且被广泛使用。在包层次仿真模型中,每一个数据包的操作会触发一个离散的事件过程。每一个数据包触发的事件过程均会在仿真过程中被观测并加以体现。因此,包层次仿真的优势在网络性能的观测中更多的体现为仿真粒度小,准确性高,能够较好的反映动态的流量变化。
但是,随着被观测网络中节点数量的增多,数据包操作过程的越发复杂,在仿真过程中,事件处理量较大,仿真时间较长,仿真效率较低的劣势会表现的更加明显。基于包层次(Packet-level)仿真中存在的以上缺点,流层次(Fluid-level)仿真作为另外一种更加快速的方法已经被广泛的应用于各种不同的网络仿真过程中。
在流层次(Fluid-level)仿真中,网络模型的细节被大幅的简化,不再针对单个数据包的操作进行追踪,如图1所示,其主要以每条数据流(Fluid)为单位进行模拟,对数据流(Fluid)的每次速率的变化进行追踪,每一次数据流(Fluid)的速率变化将被看作一个触发事件(Event)过程而进行处理。其中,on表示数据发送状态,off表示数据发送停止状态,当数据源处于on状态时,对于包层次仿真,数据源产生并发送数据包,对于流层次仿真,数据源以一定速率产生并发送数据流;当数据源处于off状态时,对于包层次仿真和流层次仿真均表示数据源停止产生数据,无数据发送。流层次仿真认为网络中的流量均由一系列来自不同数据源(Source)的数据流(Fluid)构成。因而基于流层次(Fluid-level)的仿真模型,相较包层次(Packet-level)仿真模型,需要处理的事件量大幅降低,仿真时间也相应大幅减少。因此,对于某些仿真需求,假如对于网络系统的操作细节不是特别关注,并且精度要求不太高,流层次(Fluid-level)仿真模型的优势显得更为突出。
在以往,流层次仿真模型更多的被应用于对有线网络的仿真工作当中。研究者们提出了各式各样的基于流层次仿真的方法对有线网络的性能展开了大量的研究。帮助用户更好更快的了解网络的各种性能,如网络瓶颈,网络负载能力等。如今,随着无线网络技术的不断发展与相关应用的不断普及,针对无线网络性能的研究也日渐增多起来。大多数的针对无线网络性能的仿真以及仿真器依旧是依靠基于包层次(Packet-level)的离散事件(Discrete-event)仿真模型来实现的。
应该注意,上面对技术背景的介绍只是为了方便对本发明的技术方案进行清楚、完整的说明,并方便本领域技术人员的理解而阐述的。不能仅仅因为这些方案在本发明的背景技术部分进行了阐述而认为上述技术方案为本领域技术人员所公知。
技术实现要素:
为提高针对无线网络的仿真速度,降低网络仿真消耗时间,本发明实施例提出了一种无线网络的建模装置、方法和系统。
根据本发明实施例的第一方面,提供了一种无线网络的建模装置,其中,所述装置包括:
预估单元,其在新数据流进入当前节点的队列缓冲区或者进入当前节点的已有数据流的速率发生变化时,对当前时刻进入当前节点的数据流的理想状态进行预估;
确定单元,其根据所述预估单元的预估结果确定当前时刻进入当前节点的数据流的状态。
根据本发明实施例的第二方面,提供了一种无线网络的建模方法,其中,所述方法包括:
在新数据流进入当前节点的队列缓冲区或者进入当前节点的已有数据流的速率发生变化时,对当前时刻进入当前节点的数据流的理想状态进行预估;
根据预估结果确定当前时刻进入当前节点的数据流的状态。
根据本发明实施例的第三方面,提供了一种计算机系统,其中,所述计算机系统包括无线网络的建模装置,所述装置被配置为:
在新数据流进入当前节点的队列缓冲区或者进入当前节点的已有数据流的速率发生变化时,对当前时刻进入当前节点的数据流的理想状态进行预估;
根据预估结果确定当前时刻进入当前节点的数据流的状态。
本发明的有益效果在于:通过本发明实施例,提高了针对无线网络的仿真速度,降低了网络仿真消耗时间。
参照后文的说明和附图,详细公开了本发明的特定实施方式,指明了本发明的原理可以被采用的方式。应该理解,本发明的实施方式在范围上并不因而受到限制。在所附权利要求的精神和条款的范围内,本发明的实施方式包括许多改变、修改和等同。
针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其它实施方式中使用,与其它实施方式中的特征相组合,或替代其它实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、整件、步骤或组件的存在,但并不排除一个或更多个其它特征、整件、步骤或组件的存在或附加。
附图说明
所包括的附图用来提供对本发明实施例的进一步的理解,其构成了说明书的一部分,用于例示本发明的实施方式,并与文字描述一起来阐释本发明的原理。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1是包层次仿真与流层次仿真区别示意图;
图2是流层次仿真抽象节点的示意图;
图3是抽象网络的示意图;
图4是数据流通过抽象节点的速率变化示意图;
图5是节点共享带宽实例示意图;
图6是本发明实施例的无线网络的建模装置的组成示意图;
图7是图6所示的装置中预估单元的一个实施方式的组成示意图;
图8是图6所示的装置中确定单元的一个实施方式的组成示意图;
图9是本发明实施例的无线网络的建模方法的流程图;
图10是图9中预估数据流的理想状态的流程图;
图11是图10中预估数据流的理想集中输出速率的流程图;
图12是图9中确定数据流的状态的流程图;
图13是图12中确定数据流的状态的流程图;
图14是本发明实施例的计算机系统的硬件构成示意图。
具体实施方式
参照附图,通过下面的说明书,本发明的前述以及其它特征将变得明显。在说明书和附图中,具体公开了本发明的特定实施方式,其表明了其中可以采用本发明的原则的部分实施方式,应了解的是,本发明不限于所描述的实施方式,相反,本发明包括落入所附权利要求的范围内的全部修改、变型以及等同物。
在本发明实施例中,无线网络中的每一个节点均被抽象成一个网络接口,每个网络接口均表示为一个具有固定容量大小的队列缓冲区,用以维持每条进入该网络接口的数据流(Fluid)的状态,包括数据流进入节点的输入速率,离开节点的输出速率以及丢弃速率。如图2所示为抽象节点的示意图,该节点仅表示为一个容量大小为Cmax的队列缓冲区,数据流输入速率表示为a,输出速率表示为β,数据丢弃速率表示为γ,无线链路带宽模拟为具有固定带宽且表示为μ。C表示某一时刻的队列缓冲区占用量。
在本发明实施例中,以多个不同的数据流速率代表进入每个节点的各条数据流的状态。其中,ai(t),βi(t),γi(t)分别表示t时刻进入节点i的所有数据流对应的集中输入速率(Aggregate input rate),集中输出速率(Aggregate output rate),集中丢弃速率(Aggregate loss rate)。其中,集中输入速率ai(t)包含来自其他数据源的数据流以及当前节点i自身产生的数据流。如图3所示为一个抽象后的无线网络实例。其中aA(t),aB(t),aC(t)分别为t时刻进入节点A,B,C的数据流对应的集中输入速率,βA(t),βB(t),βC(t)分别为在t时刻进入节点A,B,C的数据流所对应的集中输出速率,γA(t),γB(t),γC(t)分别为在t时刻进入节点A,B,C的数据流所对应的集中丢弃速率。
另外,在本发明实施例中,以aij(t),βij(t),γij(t)分别代表在t时刻进入节点i的某条数据流j所对应的单独流输入速率(Fluid input rate),单独流输出速率(Fluid output rate),单独流丢弃速率(Fluid loss rate)。
在数据流传输过程中,来自不同数据源(Source)的数据流(Fluid)在不同的时刻动态的进入队列缓冲区,促使进入节点的数据流的各种速率将发生变化。如图4所示,来自三个数据源(Source)的三条数据流(Fluid)分别在不同时刻进入并通过节点,进入节点的不同数据流(Fluid)在某一时刻会与其他同一时刻进入节点的数据流聚合成集中输入数据流,由于节点队列缓冲区服务速率有限,另外,在针对无线网 络的仿真中,无线链路带宽被模拟为固定值,同时输出数据流的邻居节点之间将会共享链路带宽,因此数据流之间会相应的产生干扰,每条数据流的状态会受到其他数据流的影响,如传输速率的改变以及发生数据丢弃,传输延迟等现象,数据流离开节点速率将会按照一定的比例进行分配。
因此,在本发明实施例所述的流层次模型中,在考虑每条数据流的输出速率状态以及丢弃速率状态时,会考虑每条数据流速率在数据流集中输入速率中所占的比例,还会根据同时刻输出数据流邻居节点共享链路带宽的情况,对每一个节点进行合理的可用带宽分配。
在本发明实施例中,每一个节点均维护两个数据流信息列表,其中,表1为数据流集中信息列表。该列表主要负责动态的维护节点在某一时刻的邻居节点信息、数据流集中输入信息、数据流集中输出信息、队列缓冲区占用量等集中信息。如表1所示,该列表主要维护的条目包括:邻居节点数Nn;数据流进入时刻t;同时发送数据的邻居节点数Ns,该条目指示在无线网络中,对于t时刻进入节点的集中输入数据流在离开节点时,存在多少邻居节点将共享无线带宽;集中输入速率ai(t);前一输入速率变化时刻数据流集中输入速率ai(tpre);理想集中输出速率β′i(t),t时刻进入节点的集中输入数据流在输出节点时无任何邻居节点共享带宽,即在假设无干扰环境中,该数据流的输出速率;前一输入速率变化时刻缓冲区占用量Ci(tpre);前一输入速率变化时刻节点输出链路带宽分配μ′i(tpre);输出链路带宽分配μ′i(t);缓冲区当前占用量Ci(t);集中输出速率βi(t),集中丢弃速率γi(t)。
表1:数据流集中信息列表
另外,每个节点维护的数据流信息列表还包括数据流单独信息列表。该列表主要 负责动态的对每一时刻来自不同邻居节点的每一条单独数据流的相关状态信息进行维护。如表2所示,该列表主要维护的条目包括:邻居节点标识In,其中n∈[1,Nn];当前时刻子节点身份标识(Sn(t)),前一输入速率变化时刻单独流输入速率(aij(tpre)),单独流输入速率(aij(t)),单独流输出速率(βij(t)),单独流丢弃速率(γij(t)),带宽共享邻居节点标志Mn(其中n∈[1,Nn])。表2所示的单独数据流信息列表与表1所示的数据流集中信息列表相对应,配合维护同一时刻进入节点的数据流信息。
表2:单独数据流信息列表
其中,邻居节点标识(In)条目保存在t时刻位于当前节点i传输覆盖范围内的节点信息。子节点身份标志(Sn(t))条目负责标记无线网络中t时刻当前节点i的子节点的信息,即在t时刻向当前节点i发送数据的邻居节点的信息。单独流输入速率(aij(t))条目保存t时刻来自某邻居节点的数据流j进入当前节点i的速率信息。单独流输出速率(βij(t))条目保存t时刻来自某邻居节点的数据流j在离开节点i时的输出速率信息。单独流丢弃速率(γij(t))条目保存t时刻进入当前节点i的数据流j在发生队列过载情况时的数据丢弃速率信息。带宽共享邻居节点标志(Mn)条目负责标记在t时刻进入当前节点i的数据流在离开当前节点i时刻哪些邻居节点将准备发送数据。
在本发明实施例中,被视为当前节点的子节点的邻居节点在子节点身份标志条目中将被标记为1,否则标记为0。当在t时刻有来自对应邻居节点(子节点)的数据流进入当前节点时,就将该数据流输入速率保存在对应的单独流输入速率条目,将通过后续计算过程得出的该数据流的输出速率以及丢弃速率保存在与节点相对应的单独流输出速率条目以及单独流丢弃速率条目当中。假如在t时刻没有来自对应邻居节点(子节点)的数据流进入当前节点,就分别将单独数据流输入速率条目、单独流输 出速率条目以及单独流丢弃速率条目标记为0。若信息列表中存在某些邻居节点在同一时刻存在数据流输出,就将带宽共享邻居节点标志条目设为1,否则设置为0。
如图5实例所示,当前节点D的邻居节点为节点B,节点C,节点E和节点F。节点E与节点F为节点D的子节点并向节点D发送数据,数据流进入节点D的输入速率分别为aDE(t)和aDF(t)。在节点D输出数据的同时,邻居节点C,E,F也存在数据输出,即在同一时刻存在节点C、节点E、节点F与当前节点D共享无线带宽。如表3所示为描述节点D在t时刻的单独数据流信息列表中的操作实例。
表3:单独数据流信息列表实例
下面结合附图和具体实施方式对本发明实施例进行说明。
实施例1
本发明实施例提供了一种无线网络的建模装置,该装置是基于流层次模型,针对无线网络中的某一节点。图6是该装置的组成示意图,请参照图6,该装置600包括:预估单元601和确定单元602。
该预估单元601用于在新数据流进入当前节点的队列缓冲区或者进入当前节点的已有数据流的速率发生变化时,对当前时刻进入当前节点的数据流的理想状态进行预估。
该确定单元602用于根据预估单元601的预估结果确定当前时刻进入当前节点的数据流的状态。
在本实施例的一个实施方式中,当有新数据流进入当前节点的节点队列缓冲区时,例如有新的节点成为当前节点的子节点,并且以一定速率向当前节点输入数据流, 在这种情况下,该预估单元601会按照新输入数据流的集中输入速率进行数据流理想状态的预估计操作,进而进行带宽分配,按照计算的节点分配带宽完成数据流最终状态的确定过程,也即,计算新数据流的集中输出速率信息,数据流的集中丢弃速率信息,单独数据流的单独流输出速率信息,单独流丢弃速率信息等。
在本实施例的另一个实施方式中,当进入当前节点的已有数据流的速率发生变化时,也即某条已有数据流进入当前节点的节点队列缓冲区的输入速率在某一时刻与前一输入速率变化时刻该数据流的输入速率相比较发生变化,例如来自某个子节点的已有数据流的输入速率发生变化或者某个子节点由于路由变化等原因不再有数据流流入当前节点,在这种情况下,该预估单元601按照新的数据流的集中输入速率进行数据流理想状态的预估计操作,进而进行带宽重新分配,按照计算的节点分配带宽完成对于具有新速率变化的数据流的状态确定过程,也即,计算新数据流的集中输出速率信息,集中丢弃速率信息,单独流输出速率信息,单独流丢弃速率信息等。
在本实施例中,当某一时刻进入当前节点的节点缓冲区的数据流速率未发生变化,不进行任何操作,数据流状态信息维持之前的数据流进入节点时的状态,也即输入速率、输出速率、丢弃速率等保持不变。
在本实施例中,该预估单元601主要用于计算在某一时刻无干扰输出情况下,当前节点独享链路带宽时所需的输出速率值。假设当前时刻输入节点i的数据流在离开节点i时的输出环境为无干扰的理想无线输出环境,即当前节点在输出数据时,无其他邻居节点在同一时刻输出数据或无共享链路带宽的节点存在,则该估计单元601可以计算在该环境中数据流以当前输入速率进入节点,在离开当前节点时应有的集中输出速率值。
在一个实施方式中,如图7所示,该预估单元601包括第一预估模块701和第二预估模块702,该第一预估模块701用于对当前时刻数据流进入当前节点时当前节点的队列缓冲区占用量进行预估。该第二预估模块702用于根据第一预估模块701的预估结果对当前时刻离开当前节点的数据流的理想集中输出速率进行预估。
在第一预估模块701的一个实施方式中,该第一预估模块701可以根据以下公式(1)预估当前时刻数据流进入当前节点时当前节点的队列缓冲区占用量Ci(t),也即,在当前时刻,数据流进入当前节点时,仍然有多少数据流剩余在队列缓冲区中。下面的公式(1)也就是缓冲区使用量计算公式。
Ci(t)=Ci(tpre)+(αi(tpre)-μ)×(t-tpre) (1)
其中,当前时刻记为t,当前节点即为i,tpre为前一次数据流的输入速率发生变化的时刻,Ci(tpre)为前一次数据流的输入速率发生变化的时刻,数据流进入当前节点时当前节点的队列缓冲区占用量,ai(tpre)为前一次数据流的输入速率发生变化的时刻,数据流进入当前节点时,数据流的集中输入速率,μ为无线链路带宽。
通过第一预估模块701的上述处理,得到了当前时刻数据流进入当前节点时当前节点的队列缓冲区占用量。上述计算公式只是举例说明,并不作为对该第一预估模块701的限制,本领域技术人员还可以想到其他方式或公式得到上述队列缓冲区占用量,此处不再赘述。
在第二预估模块702的一个实施方式中,该第二预估模块702可以根据第一预估模块701估计出的当前时刻数据流进入当前节点时当前节点的队列缓冲区占用量以及当前时刻数据流的集中输入速率两个判断参数对数据流理想集中输出速率进行预估。
如图7所示,在该实施方式中,该第二预估模块702包括第一判断模块7021和第一处理模块7022,该第一判断模块7021用于判断当前时刻进入当前节点的数据流的集中输入速率是否小于无线链路带宽并且当前节点的队列缓冲区占用量为空,该第一处理模块7022用于在第一判断模块7021判断为是时,确定当前时刻离开当前节点的数据流的理想集中输出速率为该数据流的集中输入速率;在第一判断模块7021判断为否时,确定当前时刻离开当前节点的数据流的理想集中输出速率为无线链路带宽。
在本实施方式中,第一判断模块7021判断t时刻进入节点i的数据流的集中输入速率ai(t)是否小于无线链路带宽μ,并且根据第一预估模块701计算得到的t时刻节点i的队列缓冲区的占用量来判断队列缓冲区状态是否为空,根据这两个判断条件对t时刻进入节点i的数据流的理想集中输出速率值进行估计计算操作。当第一判断模块7021判断为数据流集中输入速率小于无线链路固定带宽,即ai(t)<μ,并且节点i的队列缓冲区在t时刻的占用量为空,即Ci(t)=0时,第一处理模块7022确定在t时刻进入节点i的数据流的理想集中输出速率β′i(t)等于该数据流的集中输入速率ai(t),即β′i(t)=ai(t);否则,第一处理模块7022确定在t时刻进入节点i的数据流的理想集中输出速率β′i(t)等于无线链路带宽μ。由此得到了t时刻进入节点i的队列缓冲区 的数据流的理想集中输出速率。
在本实施例中,该确定单元602主要用于根据预估单元601在假设环境中计算得出的数据流理想集中输出速率,计算并为同时刻发送数据的相邻节点合理分配无线带宽资源。在分配带宽条件下,最终得出当前时刻进入当前节点的数据流的实际状态,即数据流的集中输出速率信息、数据流的集中丢弃速率信息、单条数据流的单独流输出速率信息、单条数据流的单独流丢弃速率信息等。
在一个实施方式中,如图8所示,该确定单元602包括:第一计算模块801、第二计算模块802,以及确定模块803,其中,第一计算模块801用于计算当前时刻当前节点获得的带宽分配值,第二计算模块802用于计算当前时刻数据流进入当前节点时当前节点的队列缓冲区占用量,确定模块803用于确定当前时刻进入当前节点的数据流的状态。
在第一计算模块801的一个实施方式中,该第一计算模块801可以根据当前节点计算得出的上述理想集中输出速率,计算并为在同一时刻准备发送数据的各个邻居节点分配合理的无线带宽资源,也即每个节点的数据流输出上限。在该实施方式中,该第一计算模块801可以根据下面的公式(2)计算当前时刻当前节点获得的带宽分配值μ′i(t)。
其中,μ为无线链路带宽,β′i(t)为当前时刻离开节点的数据流的理想集中输出速率,NS为当前时刻与节点共享带宽的邻居节点数,β′m(t)为当前时刻与节点共享带宽的邻居节点的数据流理想集中输出速率。其中,当前节点在各个时刻得到的带宽分配值将通过按照某个时刻进入当前节点的数据流的理想集中输出速率在所有共享带宽的邻居节点的理想集中输出速率中所占的比例对无线固定带宽进行分配获得。
通过第一计算模块801的上述处理,得到了当前时刻当前节点所获得的带宽分配值。上述计算公式只是举例说明,并不作为对第一计算模块801的限制,本领域技术人员还可以想到其他方式或公式得到上述带宽分配值,此处不再赘述。
在第二计算模块802的一个实施方式中,该第二计算模块802可以根据第一计算模块801计算得到的带宽分配值,重新更合理的计算当前时刻数据流进入当前节点的队列缓冲区时的缓冲区占用量。在该实施方式中,该第二计算模块802可以根据下面的公式(3)计算当前时刻数据流进入当前节点时当前节点的队列缓冲区占用量。
Ci(t)=Ci(tpre)+(αi(tpre)-μ′i(tpre))×(t-tpre) (3)
其中,tpre为前一次数据流输入速率发生变化的时刻,Ci(tpre)为前一次进入当前节点的数据流的输入速率发生变化的时刻当前节点的队列缓冲区占用量,ai(tpre)为前一次数据流输入速率发生变化的时刻数据流进入当前节点时的集中输入速率,μ′i(tpre)为当前节点在前一次数据流的输入速率发生变化的时刻当前节点的带宽分配值。
在确定模块803的一个实施方式中,该确定模块803可以根据第二计算模块802重新计算得出的当前时刻当前节点的队列缓冲区占用量以及当前时刻进入当前节点的数据流的集中输入速率两个判断参数对进入当前节点的数据流的状态信息进行最终确定。这里,数据流的状态包括:数据流的集中输出速率信息、数据流的集中丢弃速率信息、单独数据流的单独流输出速率信息、单独数据流的单独流丢弃速率信息等。
如图8所示,在该实施方式中,该确定模块803可以包括:第二判断模块8031和第二处理模块8032,该第二判断模块8031用于判断当前时刻(时刻t)进入当前节点(节点i)的数据流的集中输入速率(ai(t))是否小于当前节点的带宽分配值(μ′i(t)),第二处理模块8032用于在第二判断模块901判断为是时,根据当前时刻数据流进入当前节点时当前节点的队列缓冲区占用量(Ci(t))是否为空来确定当前时刻进入当前节点的数据流的状态;在第二判断模块8031判断为否时,根据当前时刻数据流进入当前节点时当前节点的队列缓冲区占用量(Ci(t))是否达到最大来确定当前时刻进入当前节点的数据流的状态。
在第二处理模块8032的一个实施方式中,如果当前时刻的数据流集中输入速率小于当前节点的带宽分配值,也即ai(t)<μ′i(t),并且数据流进入当前节点时当前节点的队列缓冲区占用量为空,也即Ci(t)=0;则第二处理模块8032确定:当前时刻离开当前节点的数据流的集中输出速率βi(t)为该数据流的集中输入速率ai(t),也即βi(t)=ai(t);当前时刻进入当前节点的每条数据流的单独流输出速率βij(t)等于各条数据流的单独流输入速率aij(t),也即βij(t)=aij(t)。在该情况下,数据流不存在丢弃情况,也即数据丢弃速率为0,即数据流的集中丢弃速率γi(t)和单独丢弃速率γij(t)都为0,也即γi(t)=0,γij(t)=0。
在第二处理模块8032的另一个实施方式中,如果当前时刻的数据流集中输入速率小于当前节点的带宽分配值,也即ai(t)<μ′i(t),并且数据流进入当前节点时当前节点的队列缓冲区占用量为非空,也即0<Ci(t)≤Cmax,则第二处理模块8032确定:当 前时刻离开当前节点的数据流的集中输出速率βi(t)为当前时刻节点获得的带宽分配值μ′i(t),也即βi(t)=μ′i(t);当前时刻进入当前节点的每条数据流的单独流输出速率按照该条单独数据流在其所在集中输入数据流中所占比例对集中输出数据流进行分配,也即在该情况下,数据流不存在丢弃情况,也即数据丢弃速率为0,即数据流的集中丢弃速率γi(t)和单独丢弃速率γij(t)都为0,也即γi(t)=0,γij(t)=0。
在第二处理模块8032的又一个实施方式中,如果当前时刻的数据流集中输入速率不小于当前节点的带宽分配值,也即ai(t)≥μ′i(t),并且数据流进入当前节点时当前节点的队列缓冲区占用量已经达到队列缓冲区的最大容量,也即Ci(t)=Cmax,则第二处理模块8032确定:当前时刻离开节点的数据流的集中输出速率βi(t)为当前时刻当前节点获得的带宽分配值μ′i(t),也即βi(t)=μ′i(t);当前时刻进入当前节点的每条数据流的单独流输出速率按照该条单独数据流在其所在集中输入数据流中所占比例对集中输出数据流进行分配,也即在该情况下,将会发生数据丢弃的情况,则数据流集中丢弃速率为γi(t)=αi(t)-βi(t),每条数据流的单独流丢弃速率按照该条单独数据流在其所在集中输入数据流中所占比例对集中丢弃速率进行分配,也即
在第二处理模块8032在再一个实施方式中,如果当前时刻的数据流集中输入速率不小于当前节点的带宽分配值,也即ai(t)≥μ′i(t),并且数据流进入当前节点时当前节点的队列缓冲区占用量没有达到最大,也即0<Ci(t)<Cmax,则第二处理模块8032确定:当前时刻离开当前节点的数据流的集中输出速率βi(t)为当前时刻当前节点获得的带宽分配值μ′i(t),也即βi(t)=μ′i(t);当前时刻进入当前节点的每条数据流的单独流输出速率按照该条单独数据流在其所在集中输入数据流中所占比例对集中输出数据流进行分配,即在该情况下,数据流不存在丢弃情况,也即数据丢弃速率为0,即数据流的集中丢弃速率γi(t)和单独丢弃速率γij(t)都为0,也即γi(t)=0,γij(t)=0。
通过本实施例的第二处理模块8032,针对不同的情况进行不同的处理,确定了各情况下进入当前节点的数据流的状态,从而可以构建出整个无线网络模型。
在本实施例中,如图6所示,该装置600还可以包括维护单元603,其用于维护当前节点的数据流集中信息表和单独数据流信息表,如前所述,该数据流集中信息表可以包括:邻居节点数、数据流到达时间、同时发送数据的邻居数、集中输入速率、前一输入速率变化时刻数据流集中输入速率、理想集中输出速率、前一输入速率变化时刻缓冲区占用量、前一输入速率变化时刻节点输出链路带宽分配值、输出链路带宽分配值、缓冲区当前占用量、集中输出速率、集中丢弃速率等,该单独数据流信息表可以包括:邻居节点标识、子节点身份标识、前一输入速率变化时刻单独流输入速率、单独流输入速率、单独流输出速率、单独流丢弃速率、带宽共享邻居节点标志等。此处不再赘述。
在本实施例中,如图6所示,该装置600还可以包括存储单元604,其用于存储当前节点的数据流集中信息表和单独数据流信息表,例如,该存储单元604可以将预估单元601预估出的当前时刻离开当前节点的数据流的理想集中输出速率输入到当前节点所维护的数据流集中信息列表的对应条目进行保存。
通过本发明实施例的装置构建的无线网络的模型,在考虑每条数据流的输出速率状态以及丢弃速率状态时,考虑了每条数据流速率在数据流集中输入速率中所占的比例,根据同时刻输出数据流的邻居节点共享链路带宽的情况,对每一个节点进行合理的可用带宽分配。提高了针对无线网络的仿真速度,降低了网络仿真消耗时间。
实施例2
本发明实施例还提供了一种无线网络的建模方法,由于该方法解决问题的原理与实施例1的装置类似,因此其具体的实施可以参照实施例1的方法的实施,内容相同之处不再重复说明。
图9是本实施例的方法的流程图,请参照图9,该方法包括:
步骤901:判断是否有新数据流进入当前节点的队列缓冲区(条件1)或者进入当前节点的已有数据流的速率是否发生变化(条件1),如果判断为是,则执行步骤902,否则维持前一到达数据流的状态;
步骤902:对当前时刻进入当前节点的数据流的理想状态进行预估;
步骤903:根据预估结果确定当前时刻进入当前节点的数据流的状态。
在本实施例中,在新数据流进入当前节点的队列缓冲区或者进入当前节点的已有 数据流的速率发生变化时,对当前时刻进入当前节点的数据流的理想状态进行预估,根据预估结果确定当前时刻进入当前节点的数据流的状态,不仅提高了针对无线网络的仿真速度,还降低了网络仿真消耗时间。
图10是步骤902的一个实施方式的流程图,请参照图10,该流程包括:
步骤1001:对当前时刻数据流进入当前节点时当前节点的队列缓冲区占用量进行预估;
步骤1002:根据预估结果对当前时刻离开当前节点的数据流的理想集中输出速率进行预估。
在步骤1001中,可以根据以下公式预估当前时刻数据流进入当前节点时当前节点的队列缓冲区占用量Ci(t):
Ci(t)=Ci(tpre)+(αi(tpre)-μ)×(t-tpre);
其中,tpre为前一输入速率变化时刻,Ci(tpre)为前一输入速率变化时刻数据流进入当前节点时当前节点的队列缓冲区占用量,ai(tpre)为前一输入速率变化时刻数据流进入当前节点时的集中输入速率,μ为无线链路带宽。
在步骤1002中,可以根据步骤1001预估得到的上述缓冲区占用量确定当前时刻离开当前节点的数据流的理想集中输出速率。
图11是步骤1002的一个实施方式的流程图,请参照图11,该流程包括:
步骤1101:判断当前时刻进入当前节点的数据流的集中输入速率是否小于无线链路带宽(条件3)并且当前节点的队列缓冲区占用量是否为空(条件4),如果判断为是,则执行步骤1102,否则执行步骤1103;
步骤1102:确定当前时刻离开当前节点的数据流的理想集中输出速率为该数据流的集中输入速率,也即β′i(t)=ai(t);
步骤1103:确定当前时刻离开当前节点的数据流的理想集中输出速率为无线链路带宽,也即β′i(t)=μ;
步骤1104:保存理想集中输出速率。
图12是步骤903的一个实施方式的流程图,请参照图12,该流程包括:
步骤1201:计算当前时刻当前节点获得的带宽分配值;
步骤1202:计算当前时刻数据流进入当前节点时当前节点的队列缓冲区占用量;
步骤1203:确定当前时刻进入当前节点的数据流的状态。
在步骤1201中,可以根据以下公式计算当前时刻当前节点获得的带宽分配值μ′i(t):
其中,μ为无线链路带宽,β′i(t)为当前时刻离开当前节点的数据流的理想集中输出速率,NS为当前时刻与当前节点共享带宽的邻居节点数,β′m(t)为当前时刻与当前节点共享带宽的邻居节点的数据流理想集中输出速率。
在步骤1202中,可以根据以下公式计算当前时刻数据流进入当前节点时当前节点的队列缓冲区占用量Ci(t):
Ci(t)=Ci(tpre)+(αi(tpre)-μ′i(tpre))×(t-tpre);
其中,tpre为前一输入速率变化时刻,Ci(tpre)为前一输入速率变化时刻数据流进入当前节点时当前节点的队列缓冲区占用量,ai(tpre)为前一输入速率变化时刻数据流进入当前节点时的集中输入速率,μ′i(tpre)为前一输入速率变化时刻当前节点的带宽分配值。
在步骤1203中,可以根据数据流的集中输入速率和当前节点的队列缓冲区占用量来确定当前时刻进入当前节点的数据流的状态。
图13是步骤1203的一个实施方式的流程图,请参照图13,该流程包括:
步骤1301:判断当前时刻进入当前节点的数据流的集中输入速率是否小于当前节点的带宽分配值,如果判断为是,则执行步骤1302,否则执行步骤1305;
步骤1302:判断缓冲区占用量是否为空,如果判断为是,则执行步骤1303,否则执行步骤1304;
步骤1303:确定当前时刻离开当前节点的数据流的集中输出速率为该数据流的集中输入速率(βi(t)=ai(t)),当前时刻进入当前节点的每条数据流的单独流输出速率等于各条数据流的单独流输入速率(βij(t)=aij(t)),数据丢弃速率为0(γi(t)=0,γij(t)=0);
步骤1304:确定当前时刻离开当前节点的数据流的集中输出速率为当前时刻当前节点获得的带宽分配值(βi(t)=μ′i(t)),当前时刻进入当前节点的每条数据流的单独流输出速率等于数据丢弃速率为0(γi(t)=0,γij(t)=0);
步骤1305:判断缓冲区占用量是否达到缓冲区最大容量,如果判断为是,则执 行步骤1306,否则执行步骤1307;
步骤1306:确定当前时刻离开当前节点的数据流的集中输出速率为当前时刻当前节点获得的带宽分配值(βi(t)=μ′i(t)),当前时刻进入当前节点的每条数据流的单独流输出速率等于数据流集中丢弃速率为γi(t)=αi(t)-βi(t),每条数据流的单独流丢弃速率为
步骤1307:确定当前时刻离开当前节点的数据流的集中输出速率为当前时刻当前节点获得的带宽分配值(βi(t)=μ′i(t)),当前时刻进入当前节点的每条数据流的单独流输出速率等于数据丢弃速率为0(γi(t)=0,γij(t)=0)。
在本实施例中,还可以维护各个节点的数据流集中信息表和单独数据流信息表,如前所述,在每一次数据流发生变化时,都按照上述列表,保存相应的信息,再如图11所示,在计算得到理想集中输出速率后,可以将该理想集中输出速率连同一些其它信息保存到上述列表中。具体如前所述,此处不再赘述。
通过本发明实施例的方法构建的无线网络的模型,提高了针对无线网络的仿真速度,降低了网络仿真消耗时间。
实施例3
本发明实施例还提供了一种计算机系统,该计算机系统可以包括实施例1所述的无线网络的建模装置。
图14是本实施例的计算机系统的构成示意图,如图14所示,该计算机系统1400可以包括:中央处理器(CPU)1401和存储器1402;存储器1402耦合到中央处理器1401。其中该存储器1402可存储各种数据;此外还存储信息处理的程序,并且在中央处理器1401的控制下执行该程序。
在一个实施方式中,实施例1所述的无线网络的建模装置的功能可以被集成到中央处理器1401中。
在另一个实施方式中,如实施例1所述的无线网络的建模装置可以与中央处理器1401分开配置,例如可以将无线网络的建模装置配置为与中央处理器1401连接的芯片,通过中央处理器1401的控制来实现无线网络的建模装置的功能。
此外,如图14所示,该计算机系统1400还可以包括:输入装置1403和输出装 置1404等;其中,上述部件的功能与现有技术类似,此处不再赘述。值得注意的是,计算机系统1400也并不是必须要包括图14中所示的所有部件;此外,计算机系统1400还可以包括图14中没有示出的部件,可以参考现有技术。
通过本实施例的计算机系统构建的无线网络的模型,提高了针对无线网络的仿真速度,降低了网络仿真消耗时间。
本发明实施例还提供一种计算机可读程序,其中当在无线网络的建模装置或计算机系统中执行所述程序时,所述程序使得计算机在所述无线网络的建模装置或计算机系统中执行实施例1所述的方法。
本发明实施例还提供一种存储有计算机可读程序的存储介质,其中所述计算机可读程序使得计算机在无线网络的建模装置或计算机系统中执行实施例1所述的方法。
本发明以上的装置和方法可以由硬件实现,也可以由硬件结合软件实现。本发明涉及这样的计算机可读程序,当该程序被逻辑部件所执行时,能够使该逻辑部件实现上文所述的装置或构成部件,或使该逻辑部件实现上文所述的各种方法或步骤。本发明还涉及用于存储以上程序的存储介质,如硬盘、磁盘、光盘、DVD、flash存储器等。
以上结合具体的实施方式对本发明进行了描述,但本领域技术人员应该清楚,这些描述都是示例性的,并不是对本发明保护范围的限制。本领域技术人员可以根据本发明的精神和原理对本发明做出各种变型和修改,这些变型和修改也在本发明的范围内。
关于包括以上实施例的实施方式,还公开下述的附记:
附记1、一种无线网络的建模装置,其中,所述装置包括:
预估单元,其在新数据流进入当前节点的队列缓冲区或者进入当前节点的已有数据流的速率发生变化时,对当前时刻进入当前节点的数据流的理想状态进行预估;
确定单元,其根据所述预估单元的预估结果确定当前时刻进入当前节点的数据流的状态。
附记2、根据附记1所述的装置,其中,所述预估单元包括:
第一预估模块,其对当前时刻数据流进入当前节点时当前节点的队列缓冲区占用 量进行预估;
第二预估模块,其根据所述第一预估模块的预估结果对当前时刻离开当前节点的数据流的理想集中输出速率进行预估。
附记3、根据附记2所述的装置,其中,所述第一预估模块根据以下公式预估当前时刻数据流进入当前节点时当前节点的队列缓冲区占用量Ci(t):
Ci(t)=Ci(tpre)+(αi(tpre)-μ)×(t-tpre);
其中,tpre为前一输入速率变化时刻,Ci(tpre)为前一输入速率变化时刻数据流进入当前节点时当前节点的队列缓冲区占用量,ai(tpre)为前一输入速率变化时刻数据流进入当前节点时的集中输入速率,μ为无线链路带宽。
附记4、根据附记2所述的装置,其中,所述第二预估模块包括:
第一判断模块,其判断当前时刻进入当前节点的数据流的集中输入速率是否小于无线链路带宽并且当前节点的队列缓冲区占用量为空;
第一处理模块,其在所述第一判断模块判断为是时,确定当前时刻离开当前节点的数据流的理想集中输出速率为该数据流的集中输入速率;在所述第一判断模块判断为否时,确定当前时刻离开当前节点的数据流的理想集中输出速率为无线链路带宽。
附记5、根据附记1所述的装置,其中,所述确定单元包括:
第一计算模块,其计算当前时刻当前节点获得的带宽分配值;
第二计算模块,其计算当前时刻数据流进入当前节点时当前节点的队列缓冲区占用量;
确定模块,其确定当前时刻进入当前节点的数据流的状态。
附记6、根据附记5所述的装置,其中,所述第一计算模块根据以下公式计算当前时刻当前节点获得的带宽分配值μ′i(t):
其中,μ为无线链路带宽,β′i(t)为当前时刻离开当前节点的数据流的理想集中输出速率,NS为当前时刻与当前节点共享带宽的邻居节点数,β′m(t)为当前时刻与当前节点共享带宽的邻居节点的数据流理想集中输出速率。
附记7、根据附记5所述的装置,其中,所述第二计算模块根据以下公式计算当前时刻数据流进入当前节点时当前节点的队列缓冲区占用量Ci(t):
Ci(t)=Ci(tpre)+(αi(tpre)-μ′i(tpre))×(t-tpre);
其中,tpre为前一输入速率变化时刻,Ci(tpre)为前一输入速率变化时刻数据流进入当前节点时当前节点的队列缓冲区占用量,ai(tpre)为前一输入速率变化时刻数据流进入当前节点时的集中输入速率,μ′i(tpre)为前一输入速率变化时刻当前节点的带宽分配值。
附记8、根据附记5所述的装置,其中,所述确定模块包括:
第二判断模块,其判断当前时刻进入当前节点的数据流的集中输入速率是否小于当前节点的带宽分配值;
第二处理模块,其在所述第二判断模块判断为是时,根据当前时刻数据流进入当前节点时当前节点的队列缓冲区占用量是否为空来确定当前时刻进入当前节点的数据流的状态;在所述第二判断模块判断为否时,根据当前时刻数据流进入当前节点时当前节点的队列缓冲区占用量是否达到最大来确定当前时刻进入当前节点的数据流的状态。
附记9、根据附记8所述的装置,其中,所述第二处理模块
在当前时刻的数据流集中输入速率小于当前节点的带宽分配值并且数据流进入当前节点时当前节点的队列缓冲区占用量为空时,确定当前时刻离开当前节点的数据流的集中输出速率为该数据流的集中输入速率,当前时刻进入当前节点的每条数据流的单独流输出速率等于各条数据流的单独流输入速率,数据丢弃速率为0;
在当前时刻的数据流集中输入速率小于当前节点的带宽分配值并且数据流进入当前节点时当前节点的队列缓冲区占用量为非空时,确定当前时刻离开当前节点的数据流的集中输出速率为当前时刻当前节点获得的带宽分配值,当前时刻进入当前节点的每条数据流的单独流输出速率等于数据丢弃速率为0;
在当前时刻的数据流集中输入速率不小于当前节点的带宽分配值并且数据流进入当前节点时当前节点的队列缓冲区占用量已经达到最大时,确定当前时刻离开当前节点的数据流的集中输出速率为当前时刻当前节点获得的带宽分配值,当前时刻进入当前节点的每条数据流的单独流输出速率等于数据流集中丢弃速率为γi(t)=αi(t)-βi(t),每条数据流的单独流丢弃速率为
在当前时刻的数据流集中输入速率不小于当前节点的带宽分配值并且数据流进入当前节点时当前节点的队列缓冲区占用量没有达到最大时,确定当前时刻离开当前 节点的数据流的集中输出速率为当前时刻当前节点获得的带宽分配值,当前时刻进入当前节点的每条数据流的单独流输出速率等于数据丢弃速率为0。
附记10、根据附记1所述的装置,其中,所述装置还包括:
维护单元,其维护所述当前节点的数据流集中信息表和单独数据流信息表;
其中,数据流集中信息表包括:邻居节点数、数据流到达时间、同时发送数据的邻居数、集中输入速率、前一输入速率变化时刻数据流集中输入速率、理想集中输出速率、前一输入速率变化时刻缓冲区占用量、前一输入速率变化时刻节点输出链路带宽分配值、输出链路带宽分配值、缓冲区当前占用量、集中输出速率、集中丢弃速率;
其中,单独数据流信息表包括:邻居节点标识、子节点身份标识、前一输入速率变化时刻单独流输入速率、单独流输入速率、单独流输出速率、单独流丢弃速率、带宽共享邻居节点标志。
附记11、一种无线网络的建模方法,其中,所述方法包括:
在新数据流进入当前节点的队列缓冲区或者进入当前节点的已有数据流的速率发生变化时,对当前时刻进入当前节点的数据流的理想状态进行预估;
根据预估结果确定当前时刻进入当前节点的数据流的状态。
附记12、一种计算机系统,其中,所述计算机系统包括无线网络的建模装置,所述装置被配置为:
在新数据流进入当前节点的队列缓冲区或者进入当前节点的已有数据流的速率发生变化时,对当前时刻进入当前节点的数据流的理想状态进行预估;
根据预估结果确定当前时刻进入当前节点的数据流的状态。