缓存共享方法和装置与流程

文档序号:12694406阅读:196来源:国知局
缓存共享方法和装置与流程

本发明涉及通信技术领域,特别是一种缓存共享方法和装置。



背景技术:

NFV(Network Function Virtualization,网络功能虚拟化)的主要思想是通过通用硬件平台和软件化的虚拟功能模块来取代现有的专用硬件平台。此外,通过计算、网络与存储资源的共享,来降低CAPEX(Capital Expenditure,资本性指出)和OPEX(Operating Expense,运营成本)。目前,NFV的研究主要集中在核心网侧。

在接入网侧,无线接入网共享RAN(Radio Access Network,无线接入网)Sharing是目前3GPP一个主要研究方向,研究多个运营商共享无线基站资源的各种场景,满足运营商间更加动态的合作方式。

上述两种技术方案都涉及资源的共享与隔离,但是若要实现真正的共享与隔离,仅仅在核心网侧或接入网侧做共享都是不够的,需要从端到端都实现共享和隔离。

为了实现基站资源共享或RAN Sharing,特别需要针对特定运营商或特定业务的无线资源切片与划分。例如运营商A和B的资源按4:6划分,或视频业务占总资源的30%。当某个运营商X(或业务X)的来包速率(需求)大于其空口速率(能力)时,仅修改MAC层调度算法无法实现不同运营商(或业务)之间的隔离。

在开发和验证虚拟化样机的测试中发现,由于核心网和基站之间的S1接口现有的管理方法并不区分来自哪个运营商或哪个业务的数据。当某个运营商(或业务)满负荷时,S1接口缓存队列会被该运营商(或业务)占满。此时,其他运营商(或业务)的数据就无法进入到缓存队列,影响到其用户体验。

这里以S1接口的缓存队列举例说明了问题所在。但这个现象并不仅限于S1接口,对于通信系统端到端的各个网元的队列,都会有相同的问题存在,比如业务服务器到核心网之间的队列等。只不过由于队列缓存大小的不同和业务量的不同,问题的瓶颈通常只体现在其中1、2个队列上。

现网中,缓存队列在设计上,不区分数据来自哪个运营商或者哪个业务,只要能接收就会全部接收。除非缓存全部占满。从而,现网的缓存队列设计方案实现了资源的共享,但不能保证运营商(或业务)之间的隔离,如图1所示。

现有技术中的固定队列划分的方式,人为创造出N个“独立”的队列分别用于缓存来自各个运营商(或业务)的数据,如图2所示。这样的做法,逻辑上最清晰、并且简单易行,可以有效地实现资源的隔离。但是,由于没有资源的共享,当N越大,资源利用率越低。



技术实现要素:

本发明的一个目的在于提出一个同时实现缓存队列共享和隔离的方案。

根据本发明的一个方面,提出一种缓存共享方法,包括:接收到来的数据包,并判断数据包类型,数据包类型包括数据包所属的运营商或数据包的业务类型;根据策略确定将数据包丢弃或存入缓存队列,策略包括数据包类型在缓存队列中对应的协议缓存容量、数据包的大小以及对应类型的数据包的已缓存数据量。

进一步地,根据策略确定将数据包丢弃或存入缓存队列包括:判断对应类型的数据包在缓存队列中的已缓存数据量与接收到的数据包大小之和是否超过数据包类型在缓存队列中对应的协议缓存容量;若超过,则丢弃数据包;若未超过,则将数据包存入缓存队列。

进一步地,还包括:判断缓存队列的已用缓存量与数据包大小之和是否超过预定缓存阈值,若未超过阈值,则将数据包存入缓存队列;若超过阈值,则根据数据包类型在缓存队列中对应的协议缓存容量、 数据包的大小以及对应类型的数据包的已缓存数据量确定将数据包丢弃或存入缓存队列。

进一步地,还包括:判断缓存队列的已用缓存量与数据包大小之和是否超过缓存队列总容量;若超过缓存队列总容量,则丢弃数据包;若未超过缓存队列总容量,则根据策略确定将数据包丢弃或存入缓存队列。

进一步地,还包括:判断缓存队列的已用缓存量与数据包大小之和是否超过预定缓存阈值,若未超过阈值,则将数据包存入缓存队列;若超过阈值,则判断缓存队列的已用缓存量与数据包大小之和是否超过缓存队列总容量,若超过缓存队列总容量,则丢弃数据包;若未超过缓存队列总容量,则根据策略确定将数据包丢弃或存入缓存队列。

进一步地,还包括:当接收到数据包后,扫描全部缓存空间,获取缓存队列的已用缓存量和对应类型的数据包的已缓存数据量。

进一步地,还包括:统计每个存入缓存队列的数据包的大小和类型、每个从缓存队列发送出的数据包的大小和类型,实时更新缓存队列的已用缓存量和对应类型的数据包的已缓存数据量。

进一步地,数据包类型对应的协议缓存容量为:基于数据包类型对应的协议缓存比例,对应数据包类型的数据包在缓存队列中能够占用的空间。

进一步地,缓存队列包括S1接口的队列、业务服务器的队列或终端队列。

此方法能够判断接收到的数据包所属的运营商或业务类型,基于数据包所属的运营商或数据类型判断是否将数据包存储进缓存队列中,从而实现分类型的对数据包进行缓存处理,实现了缓存队列的共享和隔离。

根据本发明的另一个方面,提出一种缓存共享装置,包括:数据包接收模块,用于接收到来的数据包,并判断数据包类型,数据包类型包括数据包所属的运营商或数据包的业务类型;协议缓存判断模块,用于根据策略确定将数据包丢弃或存入缓存队列,策略包括数据包类 型在缓存队列中对应的协议缓存容量、数据包的大小以及对应类型的数据包的已缓存数据量。

进一步地,协议缓存判断模块包括:协议缓存判断单元,用于判断对应类型的数据包在缓存队列中的已缓存数据量与数据包大小之和是否超过数据包类型在缓存队列中对应的协议缓存容量;协议缓存执行单元,用于在对应类型的数据包在缓存队列中的已缓存数据量与接收到的数据包大小之和超过数据包类型在缓存队列中对应的协议缓存容量的情况下,丢弃数据包;在未超过的情况下,将数据包存入缓存队列。

进一步地,还包括:阈值判断模块,用于判断缓存队列的已用缓存量与数据包大小之和是否超过预定缓存阈值,若未超过阈值,则将数据包存入缓存队列;若超过阈值,则激活协议缓存判断模块。

进一步地,还包括:总容量判断模块,用于判断缓存队列的已用缓存量与数据包大小之和是否超过缓存队列总容量;若超过缓存队列总容量,则丢弃数据包;若未超过缓存队列总容量,则激活协议缓存判断模块。

进一步地,还包括:第一判断模块,用于判断缓存队列的已用缓存量与数据包大小之和是否超过预定缓存阈值,若未超过阈值,则将数据包存入缓存队列;若超过阈值,则激活第二判断模块;第二判断模块,用于判断缓存队列的已用缓存量与数据包大小之和是否超过缓存队列总容量,若超过缓存队列总容量,则丢弃数据包;若未超过缓存队列总容量,则激活协议缓存判断模块。

进一步地,还包括:扫描模块,用于在接收到数据包后,扫描全部缓存空间,获取缓存队列的已用缓存量和对应类型的数据包的已缓存数据量。

进一步地,还包括:统计模块,用于统计每个存入缓存队列的数据包的大小和类型、每个从缓存队列发送出的数据包的大小和类型,实时更新缓存队列的已用缓存量和对应类型的数据包的已缓存数据量。

进一步地,数据包类型对应的协议缓存容量为:基于数据包类型对应的协议缓存比例,对应数据包类型的数据包在缓存队列中能够占用的空间。

进一步地,缓存队列包括S1接口的队列、业务服务器的队列或终端上的队列。

本装置能够判断接收到的数据包所属的运营商或业务类型,基于数据包所属的运营商或数据类型判断是否将数据包存储进缓存队列中,从而实现分类型的对数据包进行缓存处理,实现了缓存队列的共享和隔离。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为现网缓存队列设计示意图。

图2为固定队列划分示意图。

图3为本发明的缓存共享方法的一个实施例的流程图。

图4为本发明的缓存共享方法的另一个实施例的流程图。

图5为本发明的缓存共享方法的又一个实施例的流程图。

图6为本发明的缓存共享装置的一个实施例的示意图。

图7为本发明的缓存共享装置的另一个实施例的示意图。

图8为本发明的缓存共享装置的又一个实施例的示意图。

具体实施方式

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

本发明的缓存共享方法的一个实施例的流程图如图3所示。

在步骤301中,当接收到一个新的数据包时,触发队列管理的流程,判断到来的数据包的类型。数据包类型可以指数据包所属的运营 商类型,也可以指数据包的业务类型。

在步骤302中,根据数据包类型在缓存队列中对应的协议缓存容量、数据包的大小以及对应类型的数据包的已缓存数据量确定将数据包丢弃或存入缓存队列。每个数据包类型在缓存队列中可以有一定的协议缓存容量,或者协议缓存比例。可以综合考虑数据包类型的协议缓存容量/比例、数据包的大小以及该类型在缓存队列中的已缓存容量综合判断是否将数据包存入缓存。

此方法能够判断接收到的数据包所属的运营商或业务类型,基于数据包所属的运营商或数据类型判断是否将数据包存储进缓存队列中,从而实现分类型的对数据包进行缓存处理,实现了缓存队列的共享和隔离。

缓存队列对应的物理实体是一段内存(存储资源),内存的资源是有限的,尤其是对于微站和移动终端。因此,需要设计高效的缓存队列,保证其存储资源利用率的同时,实现不同运营商(或业务)的资源隔离。在一个实施例中,缓存队列可以是S1接口的队列、业务服务器的队列或终端队列。

在一个实施例中,可以判断对应类型的数据包在缓存队列中的已缓存数据量与接收到的数据包大小之和是否超过数据包类型在缓存队列中对应的协议缓存容量。若超过,则说明缓存队列中该数据包类型的数据包过多,需要丢弃数据包;若未超过,则将数据包存入缓存队列。

本方法能通过清晰的逻辑来判断数据包是否能够存储进缓存中,能够对数据包进行快速的处理;能够保障每个类型的数据包在自身的协议缓存容量范围内得到有效的缓存,实现了分类型的数据包控制,提高了数据安全保障的公平性。

本发明的缓存共享方法的另一个实施例的流程图如图4所示。

在步骤401中,当接收到一个新的数据包时,触发队列管理的流程,判断到来的数据包的类型。

在步骤402中,判断缓存队列的已用缓存量与数据包大小之和是 否超过预定缓存阈值,若未超过阈值,则执行步骤405;否则执行步骤403。预定缓存阈值可以为预定的缓存队列的占用比例,例如80%。当已用缓存量未达到预定缓存阈值时,说明缓存队列较空,可以不考虑该类型的数据包存储量是否已超出了其协议缓存容量;若已超过已用缓存阈值,则说明缓存队列较满,需要对根据数据包类型进行筛选。

在一个实施例中,缓存队列可以分为共享段A和隔离段B,A段用于缓存各个运营商的数据。另外预留出B段用于接收那些未达到其约定比例的运营商的突发数据。A、B段可以为逻辑划分,不是实际的物理划分。总的原则是看总缓存的占用率是否达到A段的门限,例如80%。A、B段的比例可以根据实际情况进行配置,是可变的。例如,总缓存的80%为A段,20%为B段。

在步骤403中,判断对应类型的数据包在缓存队列中的已缓存数据量与接收到的数据包大小之和是否超过数据包类型在缓存队列中对应的协议缓存容量。若超过,则执行步骤404;否则,执行步骤405。

在步骤404中,丢弃数据包。

在步骤405中,将数据包存入缓存队列。

本方法为缓存队列设置了协议缓存阈值,可以先判断缓存队列是否拥挤,在拥挤的情况下再根据数据包的数据包类型进行判断,从而能够更加有效的利用缓存队列的缓存空间,避免在缓存队列较为空闲但某一类型数据包较多的情况下丢失数据包。

在一个实施例中,可以判断缓存队列的已用缓存量与数据包大小之和是否超过了缓存队列总容量。若超过,则说明缓存队列会溢出,无法将数据包存入缓存,需要丢弃数据包。此方法能够防止缓存队列的溢出,保障了系统安全运行。

本发明的缓存共享方法的又一个实施例的流程图如图5所示。

在步骤501中,一个数据包到来,触发队列管理,判断数据包类型。数据包类型可以指数据包所属的运营商,也可以指数据包的业务类型。

在步骤502中,获取当前缓存队列的已占用大小M(Mbits)和 该数据包的大小x(Mbits)。

在步骤503中,比较M+x与缓存队列共享段容量A的大小。如果M+x≤A,则说明缓存队列较空闲,执行步骤507;否则,会触发隔离处理流程,执行步骤504。

在步骤504中,比较M+x与缓存队列总容量(A+B)的大小。如果M+x>(A+B),则说明缓存队列的剩余资源较少,不足以存储该数据包,执行步骤508;否则,执行步骤505。

在步骤505中,获取该数据包类型的数据包在缓存队列中的已缓存数据量Q。

在步骤506中,比较Q+x与对应数据包类型的协议缓存容量。协议缓存容量可以用A*p[n]表示,其中,p[n]为数据包类型n在缓存队列中的协议缓存比例。如果Q+x≤A*p[n],则意味着未超过该类型的协议缓存比例,执行步骤507;否则,意味着将占用其他运营商或业务类型的协议缓存空间,执行步骤508。

在步骤507中,将数据包存入缓存队列。

在步骤508中,丢弃数据包。

此方法能够考虑到缓存空间剩余量、数据包类型的协议缓存空间、数据包类型的已缓存数据量等多方面的因素,以清晰、严谨的逻辑进行判断,优化队列管理的效果。

在一个实施例中,可以以逻辑判断语句:

x<=A-M||(x<=A+B-M && x<=A*p[n]-Q)

判断是否将数据包存入缓存。若上式结果为1,则将数据包存入缓存队列,若为0,则丢弃数据包。

此方法能够用逻辑判断语句实现如图5中所示的判断,方便技术人员将该方法应用于实践中。

在一个实施例中,可以在一个数据包到来后,扫描整个缓存队列,获取缓存队列的已用缓存量M以及对应类型的数据包的已缓存数据量Q。本方法能够即时获取M、Q值,得到的数据更加可靠,提高了方法的准确度。

在一个实施例中,可以统计存储进缓存队列的数据包的类型、大小,以及成功从缓存队列发送出的数据包的类型、大小,进而得到缓存队列的已用缓存量M以及对应类型的数据包的已缓存数据量Q。使用本方法无需在数据包到来时扫描全部缓存队列,提高了效率。

本发明的缓存共享装置的一个实施例的示意图如图6所示。其中,601为数据包接收模块,用于在接收到一个新的数据包时,触发队列管理的流程,判断到来的数据包的类型。数据包类型可以指数据包所属的运营商类型,也可以指数据包的业务类型。602为协议缓存判断模块,能够根据数据包类型在缓存队列中对应的协议缓存容量、数据包的大小以及对应类型的数据包的已缓存数据量确定将数据包丢弃或存入缓存队列。每个数据包类型在缓存队列中可以有一定的协议缓存容量,或者协议缓存比例。可以综合考虑数据包类型的协议缓存容量/比例、数据包的大小以及该类型在缓存队列中的已缓存容量综合判断是否将数据包存入缓存。

此装置能够判断接收到的数据包所属的运营商或业务类型,基于数据包所属的运营商或数据类型判断是否将数据包存储进缓存队列中,从而实现分类型的对数据包进行缓存处理,实现了缓存队列的共享和隔离。

在一个实施例中,协议缓存判断模块包括协议缓存判断单元和协议缓存执行单元。协议缓存判断单元能够判断对应类型的数据包在缓存队列中的已缓存数据量与接收到的数据包大小之和是否超过数据包类型在缓存队列中对应的协议缓存容量,并将结果传递给协议缓存执行单元。协议缓存执行单元根据协议缓存判断单元的判断结果执行对应的操作,包括:在对应类型的数据包在缓存队列中的已缓存数据量与接收到的数据包大小之和超过该数据包类型在缓存队列中对应的协议缓存容量的情况下,丢弃数据包;在未超过的情况下,将数据包存入所述缓存队列。

此装置能通过清晰的逻辑来判断数据包是否能够存储进缓存中,能够对数据包进行快速的处理;能够保障每个类型的数据包在自身的 协议缓存容量范围内得到有效的缓存,实现了分类型的数据包控制,提高了数据安全保障的公平性。

本发明的缓存共享装置的另一个实施例的示意图如图7所示,其中,701为数据包接收模块,用于在接收到一个新的数据包时,触发队列管理的流程,判断到来的数据包的类型。702为阈值判断模块,用于判断缓存队列的已用缓存量与数据包大小之和是否超过预定缓存阈值,若未超过阈值,则说明缓存队列较空,将数据包存入缓存队列;否则激活协议缓存判断模块703。协议缓存判断模块703判断对应类型的数据包在缓存队列中的已缓存数据量与接收到的数据包大小之和是否超过该数据包类型在缓存队列中对应的协议缓存容量,若超过,则丢弃数据包,否则将书包存入缓存队列。

本装置为缓存队列设置了协议缓存阈值,可以先判断缓存队列是否拥挤,在拥挤的情况下再根据数据包的数据包类型进行判断,从而能够更加有效的利用缓存队列的缓存空间,避免在缓存队列较为空闲但某一类型数据包较多的情况下丢失数据包。

在一个实施例中,图7中的702还可以为总容量判断模块,用于判断缓存队列的已用缓存量与数据包大小之和是否超过了缓存队列总容量。若超过,则说明缓存队列会溢出,无法将数据包存入缓存,需要丢弃数据包,否则激活协议缓存判断模块703进行判断操作。此装置能够防止缓存队列的溢出,保障了系统安全运行。

本发明的缓存共享装置的又一个实施例的示意图如图8所示,其中,其中,801为数据包接收模块,用于在一个数据包到来时,触发队列管理,判断数据包类型。802为第一判断模块,用于判断缓存队列的已用缓存量与数据包大小之和是否超过预定缓存阈值,若未超过阈值,则将数据包存入缓存队列;若超过阈值,则激活第二判断模块803。第二判断模块803用于判断缓存队列的已用缓存量与数据包大小之和是否超过缓存队列总容量,若超过缓存队列总容量,则丢弃数据包;若未超过缓存队列总容量,则激活协议缓存判断模块804。协议缓存判断模块804,用于判断对应类型的数据包在缓存队列中的已缓 存数据量与接收到的数据包大小之和是否超过数据包类型在缓存队列中对应的协议缓存容量;若超过,则丢弃数据包;若未超过,则将数据包存入缓存队列。

此装置能够考虑到缓存空间剩余量、数据包类型的协议缓存空间、数据包类型的已缓存数据量等多方面的因素,以清晰、严谨的逻辑进行判断,优化队列管理的效果。

在一个实施例中,缓存共享装置还包括扫描模块805,用于在一个数据包到来后,扫描整个缓存队列,获取缓存队列的已用缓存量以及对应类型的数据包的已缓存数据量。本方式能够即时获取缓存队列的已用缓存量以及对应类型的数据包的已缓存数据量,得到的数据实时可靠,提高了方法的准确度。

在一个实施例中,图8中的805还可以为统计模块,用于统计存储进缓存队列的数据包的类型、大小,以及成功从缓存队列发送出的数据包的类型、大小,进而得到缓存队列的已用缓存量以及对应类型的数据包的已缓存数据量。此装置无需在数据包到来时扫描全部缓存队列,提高了效率。

在一个实施例中,缓存队列可以是S1接口的队列、业务服务器的队列或终端队列。此装置能够应用于通信过程的各个环节中,有利于实现端到端的缓存共享和隔离。

最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。

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