CN106850457A - 缓存共享方法和装置 - Google Patents
缓存共享方法和装置 Download PDFInfo
- Publication number
- CN106850457A CN106850457A CN201510882907.XA CN201510882907A CN106850457A CN 106850457 A CN106850457 A CN 106850457A CN 201510882907 A CN201510882907 A CN 201510882907A CN 106850457 A CN106850457 A CN 106850457A
- Authority
- CN
- China
- Prior art keywords
- queue
- packet
- type
- buffer
- data packet
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9047—Buffering arrangements including multiple buffers, e.g. buffer pools
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提出一种缓存队列共享方法和装置,涉及通信技术领域。其中,本发明的缓存队列共享方法包括:确定临时缓存队列中数据包的数据包类型,其中,临时缓存队列中存储的数据包为预定检测周期内到来的数据包;根据数据包类型在缓存队列中的协议缓存容量、临时缓存队列中对应数据包类型的数据包的大小,以及缓存队列中对应数据包类型的数据包的已缓存数据量确定将数据包丢弃或存入缓存队列。此方法能够判断在预定检测周期内接收到的数据包类型,基于数据包类型判断是否将数据包存储进缓存队列中,从而实现分类型的对数据包进行批量缓存处理,实现了缓存队列的共享和隔离。
Description
技术领域
本发明涉及通信技术领域,特别是一种缓存共享方法和装置。
背景技术
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越大,资源利用率越低。
发明内容
本发明的一个目的在于提出一种同时实现缓存队列共享和隔离的方案。
根据本发明的一个方面,提出一种缓存共享方法,包括:确定临时缓存队列中数据包的数据包类型,其中,临时缓存队列中存储的数据包为预定检测周期内到来的数据包,数据包类型包括数据包所属的运营商或数据包的业务类型;根据策略确定将数据包丢弃或存入缓存队列,策略包括数据包类型在缓存队列中的协议缓存容量、临时缓存队列中对应数据包类型的数据包的大小,以及缓存队列中对应数据包类型的数据包的已缓存数据量。
进一步地,根据策略确定将数据包丢弃或存入缓存队列包括:比较对应数据包类型的数据包在缓存队列中的已缓存数据量与在缓存队列中的协议缓存容量;若对应数据包类型的数据包在缓存队列中的已缓存数据量不小于在缓存队列中的协议缓存容量,则丢弃临时缓存队列中对应数据包类型的所有数据包;否则,将临时缓存队列中对应数据包类型的数据包存入缓存队列。
进一步地,将临时缓存队列中对应数据包类型的数据包存入缓存队列包括:获取对应数据包类型的数据包在缓存队列中的已缓存数据量;获取临时缓存队列中对应数据包类型的所有数据包总大小;判断二者之和是否超过对应数据包类型在缓存队列中的协议缓存容量;若未超过,则将临时缓存队列中对应数据包类型的所有数据包存入缓存;否则,将临时缓存队列中对应数据包类型的部分数据包存入缓存队列,使得缓存队列中对应数据包类型的数据包总量不超过在缓存队列中的协议缓存容量。
进一步地,将临时缓存队列中对应数据包类型的数据包存入缓存队列包括:获取对应数据包类型的数据包在缓存队列中的已缓存数据量,获取临时缓存队列中对应数据包类型的数据包总大小,判断二者之和是否超过对应数据包类型在缓存队列中的协议缓存容量,以及判断二者之和是否超过缓存队列的总容量;若均未超过,则将临时缓存队列中对应数据包类型的所有数据包存入缓存队列;否则,将临时缓存队列中对应数据包类型的部分数据包存入缓存队列,使得缓存队列中对应数据包类型的数据包总量不超过数据包类型在缓存队列中的协议缓存容量,且缓存队列中的数据包不超过缓存队列的总容量。
进一步地,还包括:判断缓存队列的已用缓存量与临时缓存队列同一数据包类型的所有数据包大小之和是否超过预定缓存阈值,若未超过阈值,则将临时缓存队列对应数据包类型的所有数据包存入缓存队列;若超过阈值,则根据策略确定将数据包丢弃或存入缓存队列。
进一步地,根据策略确定将数据包丢弃或存入缓存队列包括:
根据公式
L=Min{x,Max{A*p[n]-Q,0},A+B-M}
确定将数据包丢弃或存入缓存队列,其中,L为将临时缓存队列中数据包类型为n的数据包存储入缓存队列中的数据量,x为临时缓存队列中类型为n的数据包的总大小,A为缓存队列的预定缓存阈值,B为缓存队列的隔离段容量,A+B为缓存队列的总容量,M为缓存队列的已用缓存量,Q为缓存队列中类型为n的数据包的已缓存数据量,p[n]为数据包类型n的协议缓存比例,A*p[n]为数据包类型n的协议缓存容量。
进一步地,还包括:在预定检测时刻扫描全部缓存空间,获取缓存队列的已用缓存量和对应数据包类型的数据包的已缓存数据量。
进一步地,还包括:统计每个存入缓存队列的数据包的大小和类型、每个从缓存队列发送出的数据包的大小和类型,实时更新缓存队列的已用缓存量和对应数据包类型的数据包的已缓存数据量。
进一步地,缓存队列包括S1接口的队列、业务服务器的队列或终端队列。
进一步地,预定检测周期为100~200ms,相邻预定检测时刻之间相差一个预定检测周期。
此方法能够判断在预定检测周期内接收到的数据包所属的运营商或业务类型,基于数据包所属的运营商或数据类型判断是否将数据包存储进缓存队列中,从而实现分类型的对数据包进行批量缓存处理,实现了缓存队列的共享和隔离。
根据本发明的另一个方面,提出一种缓存共享装置,包括:类型判断模块,用于判断临时缓存队列中数据包的数据包类型,其中,临时缓存队列中存储的数据包为预定检测周期内到来的数据包,数据包类型包括数据包所属的运营商或数据包的业务类型;协议缓存判断模块,用于根据策略确定将数据包丢弃或存入缓存队列,策略包括数据包类型在缓存队列中的协议缓存容量、临时缓存队列中对应数据包类型的数据包的大小,以及缓存队列中对应数据包类型的数据包的已缓存数据量。
进一步地,协议缓存判断模块用于比较对应数据包类型的数据包在缓存队列中的已缓存数据量与数据包类型在缓存队列中的协议缓存容量;若对应数据包类型的数据包在缓存队列中的已缓存数据量不小于在缓存队列中的协议缓存容量,则丢弃临时缓存队列中对应数据包类型的所有数据包;否则,将临时缓存队列中对应数据包类型的数据包存入缓存队列。
进一步地,将临时缓存队列中对应数据包类型的数据包存入缓存队列包括:获取对应数据包类型的数据包在缓存队列中的已缓存数据量;获取临时缓存队列中对应数据包类型的所有数据包总大小;判断二者之和是否超过对应数据包类型在缓存队列中的协议缓存容量;若未超过,则将临时缓存队列中对应数据包类型的所有数据包存入缓存;否则,将临时缓存队列中对应数据包类型的部分数据包存入缓存,使得缓存队列中对应数据包类型的数据包总量不超过在缓存队列中的协议缓存容量。
进一步地,将临时缓存队列中对应数据包类型的数据包存入缓存队列包括:获取对应数据包类型的数据包在缓存队列中的已缓存数据量,获取临时缓存队列中对应数据包类型的数据包总大小,判断二者之和是否超过对应数据包类型在缓存队列中的协议缓存容量,以及判断二者之和是否超过缓存队列的总容量;若均未超过,则将临时缓存队列中对应数据包类型的所有数据包存入缓存队列;否则,将临时缓存队列中对应数据包类型的部分数据包存入缓存队列,使得缓存队列中对应数据包类型的数据包总量不超过在缓存队列中的协议缓存容量,且缓存队列中的数据包不超过缓存队列的总容量。
进一步地,还包括:阈值判断模块,用于判断缓存队列的已用缓存量与临时缓存队列所有数据包大小之和是否超过预定缓存阈值,若未超过阈值,则将临时缓存队列所有数据包存入缓存队列;若超过阈值,则激活协议缓存判断模块。
进一步地,协议缓存判断模块还用于:根据公式
L=Min{x,Max{A*p[n]-Q,0},A+B-M}
确定将数据包丢弃或存入缓存队列,其中,L为将临时缓存队列中数据包类型为n的数据包存储入缓存队列中的数据量,x为临时缓存队列中类型为n的数据包的总大小,A为缓存队列的预定缓存阈值,B为缓存队列的隔离段容量,A+B为缓存队列的总容量,M为缓存队列的已用缓存量,Q为缓存队列中类型为n的数据包的已缓存数据量,p[n]为数据包类型n的协议缓存比例。
进一步地,还包括:扫描模块,用于在预定检测时刻扫描全部缓存空间,获取缓存队列的已用缓存量和对应数据包类型的数据包的已缓存数据量。
进一步地,还包括:统计模块,用于统计每个存入缓存队列的数据包的大小和类型、每个从缓存队列发送出的数据包的大小和类型,实时更新缓存队列的已用缓存量和对应数据包类型的数据包的已缓存数据量。
进一步地,缓存队列包括S1接口的队列、业务服务器的队列或终端队列。
进一步地,预定检测周期为100~200ms,相邻预定检测时刻之间相差一个预定检测周期。
此装置能够判断在预定检测周期内接收到的数据包所属的运营商或业务类型,基于数据包所属的运营商或数据类型判断是否将数据包存储进缓存队列中,从而实现分类型的对数据包进行批量缓存处理,实现了缓存队列的共享和隔离。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为现网缓存队列设计的示意图。
图2为固定队列划分的示意图。
图3为本发明的缓存共享方法的一个实施例的流程图。
图4为本发明的缓存共享方法的另一个实施例的流程图。
图5为本发明的缓存共享方法的又一个实施例的流程图。
图6为本发明的缓存队列的一个实施例的示意图。
图7为本发明的缓存共享方法的再一个实施例的流程图。
图8为本发明的缓存共享装置的一个实施例的示意图。
图9为本发明的缓存共享装置的另一个实施例的示意图。
图10为本发明的缓存共享装置的又一个实施例的示意图
具体实施方式
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
本发明的缓存共享方法的一个实施例的流程图如图3所示。
在步骤301中,当预定检测时刻到来时,触发队列管理的流程,判断临时缓存队列中存储的当前时刻与上一个预定检测时刻之间到来的数据包的类型。在一个实施例中,预定检测周期可以为100~200ms,相邻预定检测时刻之间相差一个预定检测周期。可以生成数据包类型列表,不重复的列出临时缓存队列中数据包的所有的数据包类型。数据包类型可以指数据包所属的运营商类型,也可以指数据包的业务类型。
在步骤302中,根据数据包类型在缓存队列中的协议缓存容量、临时缓存队列中对应数据包类型的数据包的大小,以及缓存队列中对应数据包类型的数据包的已缓存数据量确定将数据包丢弃或存入缓存队列。每个数据包类型在缓存队列中可以有一定的协议缓存容量,或者协议缓存比例。可以综合考虑数据包类型的协议缓存容量/比例、数据包的大小以及该类型在缓存队列中的已缓存容量综合判断是否将数据包存入缓存。
此方法能够判断在预定检测周期内接收到的数据包所属的运营商或业务类型,基于数据包所属的运营商或数据类型判断是否将数据包存储进缓存队列中,从而实现分类型的对数据包进行批量缓存处理,实现了缓存队列的共享和隔离。
缓存队列对应的物理实体是一段内存(存储资源),内存的资源是有限的,尤其是对于微站和移动终端。因此,需要设计高效的缓存队列,保证其存储资源利用率的同时,实现不同运营商(或业务)的资源隔离。在一个实施例中,缓存队列可以是S1接口的队列、业务服务器的队列或终端队列。
本发明的缓存共享方法的另一个实施例的流程图如图4所示。
在步骤401中,当预定检测时刻到来时,触发队列管理的流程,判断临时缓存队列中存储的当前时刻与上一个预定检测时刻之间(即一个预定检测周期内)到来的数据包的类型。
在步骤402中,判断临时缓存队列中一个数据包类型n的数据包在缓存队列中的已缓存数据量Q是否大于在缓存队列中的协议缓存容量A*p[n],其中,n为数据包类型,p[n]为数据包类型n在缓存队列中的协议缓存比例。如果Q≥A*p[n],则意味着数据包类型n会占用其他数据包类型的协议缓存空间,需要将缓存队列资源退让出来,执行步骤403;否则,执行步骤404。
在步骤403中,丢弃临时缓存队列中数据包类型为n的所有数据包。
在步骤404中,将临时缓存队列中数据包类型为n的数据包存入缓存队列。
此方法考虑到数据包类型在缓存队列中的协议缓存容量,能够保障每个类型的数据包在自身的协议缓存容量范围内得到有效的缓存,实现了分类型的数据包控制,提高了数据安全保障的公平性。
在一个实施例中,如图5所示。
在步骤501中,当预定检测时刻到来时,触发队列管理的流程,判断临时缓存队列中存储的当前时刻与上一个预定检测时刻之间到来的数据包的类型。
在步骤502中,判断临时缓存队列中一个数据包类型n的数据包在缓存队列中的已缓存数据量Q是否大于在缓存队列中的协议缓存容量A*p[n],其中,n为数据包类型,p[n]为数据包类型n在缓存队列中的协议缓存比例。如果Q≥A*p[n],则意味着数据包类型n会占用其他数据包类型的协议缓存空间,需要将缓存队列资源退让出来,执行步骤503;否则,执行步骤504。
在步骤503中,丢弃临时缓存队列中数据包类型为n的全部数据包。
在步骤504中,判断Q+x>A*p[n]是否成立。x为临时缓存队列中类型为n的所有数据包的大小之和。如果不成立,则说明即使将临时缓存队列中类型为n的所有数据包存入缓存空间,也不会超过类型n的协议缓存容量,执行步骤505。如果成立,则说明若将临时缓存队列中类型为n的所有数据包存入缓存空间,将会超过类型n的协议缓存容量,执行步骤506。
在步骤505中,将临时缓存队列中类型为n的所有数据包存入缓存空间。
在步骤506中,将临时缓存队列中类型为n的部分数据包存入缓存队列。可以按照到达的先后顺序,即在临时缓存队列中存储的前后顺序筛选。临时缓存队列中类型为n的数据包存入缓存队列的数据量不能超过A*p[n]-Q。
此方法能够更好的保障每个类型的数据包在自身的协议缓存容量范围内得到有效的缓存,不会影响其他类型的数据包缓存,实现了分类型的数据包控制,提高了数据安全保障的公平性。
在一个实施例中,还需要判断将临时缓存队列中对应类型的数据包存入缓存队列后是否会超过缓存队列的总容量从而导致溢出。在确定临时缓存队列中类型为n的数据包存入缓存队列的数据量时,需要保障该数据量不大于缓存队列的剩余容量。此方法能够防止溢出导致的数据丢失,提高了系统稳定性和数据安全性。
在一个实施例中,业务类型n的协议缓存容量可以为(A+B)*p[n],在图5的实施例中,以(A+B)*p[n]作为业务类型n的协议缓存容量执行判断,能够在实现保障每个类型的数据包在自身的协议缓存容量范围内得到有效的缓存,不会影响其他类型的数据包缓存的同时,不会发生超出缓存队列总容量导致的溢出问题,进一步提高了系统稳定性和数据安全性。
在一个实施例中,缓存队列可以如图6中所示,分为共享段A和隔离段B。A段用于缓存各个运营商的数据。另外预留出B段用于接收那些未达到其约定比例的运营商的突发数据。A、B段可以为逻辑划分,不是实际的物理划分。总的原则是看总缓存的占用率是否达到A段的门限,例如80%。A、B段的比例可以根据实际情况进行配置,是可变的。例如,总缓存的80%为A段,20%为B段。以A的容量为限设定预定缓存阈值。当缓存队列的已用缓存量与临时缓存队列中对应类型的数据量之和未超过阈值时,缓存队列较空,可以不考虑该类型的数据包存储量是否已超出了其协议缓存容量;若已超过预定缓存阈值,则说明缓存队列较满,需要对根据数据包类型进行筛选。
此方法可以先判断缓存队列是否拥挤,在拥挤的情况下再根据数据包的数据包类型进行判断,从而能够更加有效的利用缓存队列的缓存空间,避免在缓存队列较为空闲但某一类型数据包较多的情况下丢失数据包。
在一个实施例中,本发明的缓存共享方法如图7所示。
在步骤701中,当预定检测时刻到来时,触发队列管理的流程,获取临时缓存队列中存储的当前时刻与上一个预定检测时刻之间(即一个预定检测周期内)到来的数据包,判断每个数据包的类型并生成数据包类型列表,不重复的列出临时缓存队列中数据包的所有的数据包类型。
在步骤702中,判断数据包类型列表是否为空,如果为空,则执行步骤703,否则执行步骤704。
在步骤703中,临时缓存队列中所有数据包已处理完毕,或该周期内未有数据包到来,流程结束,等待下一个预定检测时刻重新开始检测。
在步骤704中,获取缓存队列中已用缓存量M(Mbits),以及数据包类型列表中第一个数据包类型在临时缓存队列中所有数据包大小之和x(Mbits)。
在步骤705中,判断M+x≤A是否成立,其中,A为缓存队列的共享段容量。如果成立,则说明缓存队列较空,将缓存队列中该类型的全部数据包存入缓存后不会超过缓存队列的共享段容量,执行步骤706;否则,执行步骤707。
在步骤706中,将缓存队列中该类型的全部数据包存入缓存。
在步骤707中,获取对应数据包类型在缓存队列中的已缓存数据量Q。
在步骤708中,计算公式
L=Min{x,Max{A*p[n]-Q,0},A+B-M}
其中,L为将临时缓存队列中对应类型存入缓存队列的数据量,p[n]为对应数据包类型n的协议缓存比例,B为缓存队列的隔离段容量,A+B为缓存队列的总容量。将临时缓存队列中该类型的总大小为L的数据包存入缓存队列,丢弃临时缓存队列中对应类型的其他数据包。
在步骤709中,将该数据包类型从数据包类型列表中剔除,继而返回执行步骤702。
此方法逻辑清晰,能够提高对缓存队列的利用率,同时保障每个类型的数据包在自身的协议缓存容量范围内得到有效的缓存,不会影响其他类型的数据包缓存;将部分判断筛选逻辑总结为逻辑判断语句,便于本领域技术人员推广应用。
在一个实施例中,可以在预定检测时刻扫描整个缓存队列,获取缓存队列的已用缓存量M以及对应类型的数据包的已缓存数据量Q。本方法能够即时获取M、Q值,得到的数据更加可靠,提高了方法的准确度。
在一个实施例中,可以统计存储进缓存队列的数据包的类型、大小,以及成功从缓存队列发送出的数据包的类型、大小,进而得到缓存队列的已用缓存量M以及对应类型的数据包的已缓存数据量Q。使用本方法无需在预定检测时刻扫描全部缓存队列,提高了效率。
本发明的缓存共享装置的一个实施例的示意图如图8所示。其中,801为类型判断模块,用于在预定检测时刻到来时,触发队列管理的流程,判断临时缓存队列中存储的当前时刻与上一个预定检测时刻之间到来的数据包的类型,数据包类型可以指数据包所属的运营商类型,也可以指数据包的业务类型。在一个实施例中,预定检测周期为100~200ms,相邻预定检测时刻之间相差一个预定检测周期。802为协议缓存判断模块,用于根据数据包类型在缓存队列中的协议缓存容量、临时缓存队列中对应数据包类型的数据包的大小,以及缓存队列中对应数据包类型的数据包的已缓存数据量确定将数据包丢弃或存入缓存队列。
此装置能够判断在预定检测周期内接收到的数据包所属的运营商或业务类型,基于数据包所属的运营商或数据类型判断是否将数据包存储进缓存队列中,从而实现分类型的对数据包进行批量缓存处理,实现了缓存队列的共享和隔离。
在一个实施例中,协议缓存判断模块802能够判断临时缓存队列中一个数据包类型n的数据包在缓存队列中的已缓存数据量Q是否大于在缓存队列中的协议缓存容量A*p[n],其中,n为数据包类型,p[n]为数据包类型n在缓存队列中的协议缓存比例。如果Q≥A*p[n],则意味着数据包类型n会占用其他数据包类型的协议缓存空间,需要将缓存队列资源退让出来,丢弃临时缓存队列中数据包类型为n的所有数据包;否则,将临时缓存队列中数据包类型为n的数据包存入缓存队列。
该装置考虑到数据包类型在缓存队列中的协议缓存容量,能够保障每个类型的数据包在自身的协议缓存容量范围内得到有效的缓存,实现了分类型的数据包控制,提高了数据安全保障的公平性。
在一个实施例中,协议缓存判断模块802在判断将临时缓存队列中数据包类型为n的数据包存入缓存队列后,需要确定将临时缓存队列中数据包类型为n的数据包存入缓存队列的数据量。类型n的协议缓存容量可以为(A+B)*p[n]。协议缓存判断模块802判断Q+x>(A+B)*p[n]是否成立,其中x为临时缓存队列中类型为n的所有数据包的大小之和。如果不成立,则说明将临时缓存队列中类型为n的所有数据包存入缓存空间后不会超过类型n的协议缓存容量,因此将临时缓存队列中类型为n的所有数据包存入缓存空间;如果成立,则说明若将临时缓存队列中类型为n的所有数据包存入缓存空间,将会超过类型n的协议缓存容量,将临时缓存队列中类型为n的部分数据包存入缓存队列。可以按照到达的先后顺序,即在临时缓存队列中存储的前后顺序进行筛选。临时缓存队列中类型为n的数据包存入缓存队列的数据量不能超过(A+B)*p[n]-Q。
此装置能够更好的保障每个类型的数据包在自身的协议缓存容量范围内得到有效的缓存,不会影响其他类型的数据包缓存,实现了分类型的数据包控制,提高了数据安全保障的公平性。
在一个实施例中,协议缓存判断模块802还用于判断将临时缓存队列中对应类型的数据包存入缓存队列后是否会超过缓存队列的总容量从而导致溢出。在确定临时缓存队列中类型为n的数据包存入缓存队列的数据量时,需要保障该数据量不大于缓存队列的剩余容量。此装置能够防止溢出导致的数据丢失,提高了系统稳定性和数据安全性。
在一个实施例中,如图9所示,本发明的缓存共享装置还包括阈值判断模块902。901和903分别为类型判断模块和协议缓存判断模块,与图8的实施例中相似。在预定检测时刻,阈值判断模块902判断缓存队列的已用缓存量与临时缓存队列同一数据包类型的所有数据包大小之和是否超过预定缓存阈值,如果未超过,则说明缓存队列较空,可以不考虑该类型的数据包存储量是否已超出了其协议缓存容量;若已超过预定缓存阈值,则说明缓存队列较满,需要对根据数据包类型进行筛选,激活协议缓存判断模块903。
这样的装置可以先判断缓存队列是否拥挤,在拥挤的情况下再根据数据包的数据包类型进行判断,从而能够更加有效的利用缓存队列的缓存空间,避免在缓存队列较为空闲但某一类型数据包较多的情况下丢失数据包。
在一个实施例中,协议缓存判断模块可以根据公式:
L=Min{x,Max{A*p[n]-Q,0},A+B-M}
确定将所述数据包丢弃或存入缓存队列,其中,L为将临时缓存队列中数据包类型为n的数据包存储入缓存队列中的数据量,x为临时缓存队列中类型为n的数据包的总大小,A为缓存队列的预定缓存阈值,B为缓存队列的隔离段容量,A+B为缓存队列的总容量,M为缓存队列的已用缓存量,Q为缓存队列中类型为n的数据包的已缓存数据量,p[n]为数据包类型n的协议缓存比例。
这样的装置,协议缓存判断模块的处理逻辑清晰,能够提高对缓存队列的利用率,同时保障每个类型的数据包在自身的协议缓存容量范围内得到有效的缓存,不会影响其他类型的数据包缓存;将部分判断筛选逻辑总结为逻辑判断语句,提高运算效率,便于本领域技术人员推广应用。
在一个实施例中,如图10所示,1001和1003分别为类型判断模块和协议缓存判断模块,与图8的实施例中相似。1002可以为扫描模块,用于在预定检测时刻扫描整个缓存队列,获取缓存队列的已用缓存量M以及对应类型的数据包的已缓存数据量Q。本装置能够即时获取M、Q值,得到的数据更加可靠,提高了方法的准确度。
1002也可以为统计模块,用于统计存储进缓存队列的数据包的类型、大小,以及成功从缓存队列发送出的数据包的类型、大小,进而得到缓存队列的已用缓存量M以及对应类型的数据包的已缓存数据量Q。本装置无需在预定检测时刻扫描全部缓存队列,提高了效率。
在一个实施例中,缓存队列可以是S1接口的队列、业务服务器的队列或终端队列。此装置能够应用于通信过程的各个环节中,有利于实现端到端的缓存共享和隔离。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
Claims (18)
1.一种缓存共享方法,其特征在于,包括:
确定临时缓存队列中数据包的数据包类型,其中,所述临时缓存队列中存储的数据包为预定检测周期内到来的数据包,所述数据包类型包括所述数据包所属的运营商或所述数据包的业务类型;
根据策略确定将所述数据包丢弃或存入缓存队列,所述策略包括所述数据包类型在缓存队列中的协议缓存容量、所述临时缓存队列中对应数据包类型的所述数据包的大小,以及缓存队列中对应数据包类型的数据包的已缓存数据量。
2.根据权利要求1所述的方法,其特征在于,所述根据策略确定将所述数据包丢弃或存入缓存队列包括:
比较对应数据包类型的数据包在所述缓存队列中的已缓存数据量与在缓存队列中的协议缓存容量;
若对应数据包类型的数据包在所述缓存队列中的已缓存数据量不小于在缓存队列中的协议缓存容量,则丢弃所述临时缓存队列中对应数据包类型的所有数据包;
否则,将所述临时缓存队列中对应数据包类型的数据包存入所述缓存队列。
3.根据权利要求2所述的方法,其特征在于,所述将所述临时缓存队列中对应数据包类型的数据包存入所述缓存队列包括:
获取对应数据包类型的数据包在所述缓存队列中的已缓存数据量;获取所述临时缓存队列中对应数据包类型的所有数据包总大小;判断二者之和是否超过对应数据包类型在缓存队列中的协议缓存容量;
若未超过,则将临时缓存队列中对应数据包类型的所有所述数据包存入缓存;
否则,将临时缓存队列中对应数据包类型的部分所述数据包存入所述缓存队列,使得所述缓存队列中对应数据包类型的数据包总量不超过在缓存队列中的协议缓存容量。
4.根据权利要求2所述的方法,其特征在于,所述将所述临时缓存队列中对应数据包类型的数据包存入所述缓存队列包括:
获取对应数据包类型的数据包在所述缓存队列中的已缓存数据量,获取所述临时缓存队列中对应数据包类型的数据包总大小,判断二者之和是否超过对应数据包类型在缓存队列中的协议缓存容量,以及判断二者之和是否超过所述缓存队列的总容量;
若均未超过,则将所述临时缓存队列中对应数据包类型的所有所述数据包存入所述缓存队列;
否则,将所述临时缓存队列中对应数据包类型的部分所述数据包存入所述缓存队列,使得所述缓存队列中对应数据包类型的数据包总量不超过所述数据包类型在缓存队列中的协议缓存容量,且所述缓存队列中的数据包不超过所述缓存队列的总容量。
5.根据权利要求1所述的方法,其特征在于,还包括:
判断缓存队列的已用缓存量与临时缓存队列所有属同一数据包类型的数据包大小之和是否超过预定缓存阈值,若未超过阈值,则将临时缓存队列对应数据包类型的所有数据包存入所述缓存队列;
若超过阈值,则根据策略确定将所述数据包丢弃或存入缓存队列。
6.根据权利要求1所述的方法,其特征在于,根据策略确定将所述数据包丢弃或存入缓存队列包括:
根据公式
L=Min{x,Max{A*p[n]-Q,0},A+B-M}
确定将所述数据包丢弃或存入缓存队列,其中,L为将所述临时缓存队列中数据包类型为n的数据包存储入所述缓存队列中的数据量,x为所述临时缓存队列中类型为n的数据包的总大小,A为所述缓存队列的预定缓存阈值,B为所述缓存队列的隔离段容量,A+B为所述缓存队列的总容量,M为所述缓存队列的已用缓存量,Q为所述缓存队列中类型为n的数据包的已缓存数据量,p[n]为数据包类型n的协议缓存比例,A*p[n]为数据包类型n的协议缓存容量。
7.根据权利要求1所述的方法,其特征在于,还包括:
在预定检测时刻扫描全部缓存空间,获取缓存队列的已用缓存量和对应数据包类型的数据包的已缓存数据量;
和/或,
统计每个存入缓存队列的数据包的大小和类型、每个从所述缓存队列发送出的数据包的大小和类型,实时更新缓存队列的已用缓存量和对应数据包类型的数据包的已缓存数据量。
8.根据权利要求1所述的方法,其特征在于,所述缓存队列包括S1接口的队列、业务服务器的队列或终端队列。
9.根据权利要求1所述的方法,其特征在于,所述预定检测周期为100~200ms,相邻预定检测时刻之间相差一个预定检测周期。
10.一种缓存共享装置,其特征在于,包括:
类型判断模块,用于判断临时缓存队列中数据包的数据包类型,其中,所述临时缓存队列中存储的所述数据包为预定检测周期内到来的数据包,所述数据包类型包括所述数据包所属的运营商或所述数据包的业务类型;
协议缓存判断模块,用于根据策略确定将所述数据包丢弃或存入缓存队列,所述策略包括所述数据包类型在缓存队列中的协议缓存容量、所述临时缓存队列中对应数据包类型的所述数据包的大小,以及缓存队列中对应数据包类型的数据包的已缓存数据量。
11.根据权利要求10所述的装置,其特征在于,所述协议缓存判断模块用于比较对应数据包类型的数据包在所述缓存队列中的已缓存数据量与所述数据包类型在缓存队列中的协议缓存容量;
若对应数据包类型的数据包在所述缓存队列中的已缓存数据量不小于在缓存队列中的协议缓存容量,则丢弃所述临时缓存队列中对应数据包类型的所有数据包;
否则,将所述临时缓存队列中对应数据包类型的数据包存入所述缓存队列。
12.根据权利要求11所述的装置,其特征在于,所述将所述临时缓存队列中对应数据包类型的数据包存入所述缓存队列包括:
获取对应数据包类型的数据包在所述缓存队列中的已缓存数据量;获取所述临时缓存队列中对应数据包类型的所有数据包总大小;判断二者之和是否超过对应数据包类型在缓存队列中的协议缓存容量;
若未超过,则将临时缓存队列中对应数据包类型的所有所述数据包存入缓存;
否则,将临时缓存队列中对应数据包类型的部分所述数据包存入缓存,使得所述缓存队列中对应数据包类型的数据包总量不超过在缓存队列中的协议缓存容量。
13.根据权利要求11所述的装置,其特征在于,所述将所述临时缓存队列中对应数据包类型的数据包存入所述缓存队列包括:
获取对应数据包类型的数据包在所述缓存队列中的已缓存数据量,获取所述临时缓存队列中对应数据包类型的数据包总大小,判断二者之和是否超过对应数据包类型在缓存队列中的协议缓存容量,以及判断二者之和是否超过所述缓存队列的总容量;
若均未超过,则将所述临时缓存队列中对应数据包类型的所有所述数据包存入所述缓存队列;
否则,将所述临时缓存队列中对应数据包类型的部分所述数据包存入所述缓存队列,使得所述缓存队列中对应数据包类型的数据包总量不超过在缓存队列中的协议缓存容量,且所述缓存队列中的数据包不超过所述缓存队列的总容量。
14.根据权利要求10所述的装置,其特征在于,还包括:
阈值判断模块,用于判断缓存队列的已用缓存量与临时缓存队列同一数据包类型的所有数据包大小之和是否超过预定缓存阈值,若未超过阈值,则将临时缓存队列对应数据包类型的所有数据包存入所述缓存队列;
若超过阈值,则激活所述协议缓存判断模块。
15.根据权利要求10所述的装置,其特征在于,所述协议缓存判断模块还用于:
根据公式
L=Min{x,Max{A*p[n]-Q,0},A+B-M}
确定将所述数据包丢弃或存入缓存队列,其中,L为将所述临时缓存队列中数据包类型为n的数据包存储入所述缓存队列中的数据量,x为所述临时缓存队列中类型为n的数据包的总大小,A为所述缓存队列的预定缓存阈值,B为所述缓存队列的隔离段容量,A+B为所述缓存队列的总容量,M为所述缓存队列的已用缓存量,Q为所述缓存队列中类型为n的数据包的已缓存数据量,p[n]为数据包类型n的协议缓存比例。
16.根据权利要求10所述的装置,其特征在于,还包括:
扫描模块,用于在预定检测时刻扫描全部缓存空间,获取缓存队列的已用缓存量和对应数据包类型的数据包的已缓存数据量;
和/或,
统计模块,用于统计每个存入缓存队列的数据包的大小和类型、每个从所述缓存队列发送出的数据包的大小和类型,实时更新缓存队列的已用缓存量和对应数据包类型的数据包的已缓存数据量。
17.根据权利要求10所述的装置,其特征在于,所述缓存队列包括S1接口的队列、业务服务器的队列或终端队列。
18.根据权利要求10所述的装置,其特征在于,所述预定检测周期为100~200ms,相邻预定检测时刻之间相差一个预定检测周期。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510882907.XA CN106850457B (zh) | 2015-12-04 | 2015-12-04 | 缓存共享方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510882907.XA CN106850457B (zh) | 2015-12-04 | 2015-12-04 | 缓存共享方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106850457A true CN106850457A (zh) | 2017-06-13 |
CN106850457B CN106850457B (zh) | 2019-11-15 |
Family
ID=59149733
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510882907.XA Active CN106850457B (zh) | 2015-12-04 | 2015-12-04 | 缓存共享方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106850457B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107302505A (zh) * | 2017-06-22 | 2017-10-27 | 迈普通信技术股份有限公司 | 管理缓存的方法及装置 |
CN114531487A (zh) * | 2020-10-30 | 2022-05-24 | 华为技术有限公司 | 缓存管理方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1798094A (zh) * | 2004-12-23 | 2006-07-05 | 华为技术有限公司 | 一种使用缓存区的方法 |
CN101656659A (zh) * | 2008-08-19 | 2010-02-24 | 中兴通讯股份有限公司 | 一种混合业务流的缓存处理方法、存储转发方法及装置 |
CN101997727A (zh) * | 2010-12-16 | 2011-03-30 | 广州智光电气股份有限公司 | 一种通讯管理机主备机无缝切换的装置及其方法 |
CN102088395A (zh) * | 2009-12-02 | 2011-06-08 | 杭州华三通信技术有限公司 | 一种调整媒体数据缓存的方法和装置 |
CN104780118A (zh) * | 2015-04-24 | 2015-07-15 | 福州瑞芯微电子有限公司 | 一种基于令牌的流控方法及装置 |
-
2015
- 2015-12-04 CN CN201510882907.XA patent/CN106850457B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1798094A (zh) * | 2004-12-23 | 2006-07-05 | 华为技术有限公司 | 一种使用缓存区的方法 |
CN101656659A (zh) * | 2008-08-19 | 2010-02-24 | 中兴通讯股份有限公司 | 一种混合业务流的缓存处理方法、存储转发方法及装置 |
CN102088395A (zh) * | 2009-12-02 | 2011-06-08 | 杭州华三通信技术有限公司 | 一种调整媒体数据缓存的方法和装置 |
CN101997727A (zh) * | 2010-12-16 | 2011-03-30 | 广州智光电气股份有限公司 | 一种通讯管理机主备机无缝切换的装置及其方法 |
CN104780118A (zh) * | 2015-04-24 | 2015-07-15 | 福州瑞芯微电子有限公司 | 一种基于令牌的流控方法及装置 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107302505A (zh) * | 2017-06-22 | 2017-10-27 | 迈普通信技术股份有限公司 | 管理缓存的方法及装置 |
CN107302505B (zh) * | 2017-06-22 | 2019-10-29 | 迈普通信技术股份有限公司 | 管理缓存的方法及装置 |
CN114531487A (zh) * | 2020-10-30 | 2022-05-24 | 华为技术有限公司 | 缓存管理方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106850457B (zh) | 2019-11-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101841470B (zh) | 一种基于Linux的底层数据包的高速捕获方法 | |
CN104081736B (zh) | 客户端设备上调度分组传输的系统和方法 | |
US20140219284A1 (en) | Method and system for reduction of time variance of packets received from bonded communication links | |
CN108259383A (zh) | 一种数据的传输方法和网络设备 | |
CN105763478A (zh) | 基于令牌桶算法的卫星数据地面传输网络流量控制系统 | |
CN102546098B (zh) | 数据传输装置、方法及系统 | |
CN110225547A (zh) | 一种调度请求发送、接收方法、终端及网络侧设备 | |
CN109120544A (zh) | 一种数据中心网络中基于主机端流量调度的传输控制方法 | |
JP2002232469A (ja) | スケジューリング装置およびスケジューリング方法 | |
CN106850714A (zh) | 缓存共享方法和装置 | |
CN107333296A (zh) | 一种数据传输方法、装置及基站 | |
WO2021098730A1 (zh) | 交换网络拥塞管理方法、装置、设备和存储介质 | |
CN106209325A (zh) | 一种tcp ack报文处理方法及装置 | |
CN103152289A (zh) | 一种层次化服务质量调度方法和装置 | |
CN109842564A (zh) | 一种业务报文发送的方法、网络设备和系统 | |
CN108616925A (zh) | 一种数据流的处理方法及装置 | |
CN106850457A (zh) | 缓存共享方法和装置 | |
CN106304154B (zh) | 一种pdcp实体的数据传输方法及pdcp实体 | |
EP3535956B1 (en) | Methods and systems for data transmission | |
CN114286447A (zh) | 调度优先级的调整方法、设备及存储介质 | |
CN111740922B (zh) | 数据传输方法、装置、电子设备及介质 | |
CN107371267B (zh) | 一种数据传输方法及终端 | |
CN106488505A (zh) | 一种数据包传输方法及装置、通信系统 | |
CN110351199A (zh) | 流量平滑方法、服务器及转发设备 | |
CN105871747B (zh) | 通信系统下行数据传输方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |