CN112350946A - 数据缓存方法和装置 - Google Patents
数据缓存方法和装置 Download PDFInfo
- Publication number
- CN112350946A CN112350946A CN201910730107.4A CN201910730107A CN112350946A CN 112350946 A CN112350946 A CN 112350946A CN 201910730107 A CN201910730107 A CN 201910730107A CN 112350946 A CN112350946 A CN 112350946A
- Authority
- CN
- China
- Prior art keywords
- node
- data
- delay requirement
- instruction
- identifier
- 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
- 238000000034 method Methods 0.000 title claims abstract description 70
- 230000004044 response Effects 0.000 claims abstract description 33
- 230000005540 biological transmission Effects 0.000 claims description 40
- 238000012545 processing Methods 0.000 claims description 22
- 238000013178 mathematical model Methods 0.000 claims description 9
- 238000012790 confirmation Methods 0.000 claims description 7
- 230000001934 delay Effects 0.000 claims description 7
- 230000003139 buffering effect Effects 0.000 claims 2
- 238000004891 communication Methods 0.000 abstract description 14
- 230000010355 oscillation Effects 0.000 abstract description 6
- 238000005516 engineering process Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 11
- 238000004590 computer program Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000035939 shock Effects 0.000 description 3
- 239000000872 buffer Substances 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/742—Route cache; Operation thereof
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
Abstract
本申请涉及通信技术,提供一种数据缓存方法和装置,该数据缓存方法包括:终端设备向控制器发送第一请求,第一请求包括第一标识和时延需求,第一标识用于标识第一数据;控制器确定第一数据的获取路径;判断第一节点是否满足时延需求,第一节点为第一数据的获取路径上存储第一数据的原有节点;若第一节点不满足时延需求,则根据时延需求确定第一数据的获取路径上的第二节点,第二节点用于缓存第一数据且满足时延需求;控制器向第二节点发送第一指令,第一指令包括第一标识,第一指令用于指示第二节点缓存第一数据;当确定第二节点已缓存第一数据时,控制器向终端设备发送第二确认响应。本申请保证低时延的确定性,且避免了网络的路由震荡。
Description
技术领域
本申请涉及通信技术,尤其涉及一种数据缓存方法和装置。
背景技术
基于名字路由(Name-Based Routing,NBR)缓存架构的数据缓存根据协同方式可分为:无协同缓存、显式协同缓存和隐式协同缓存。无协同缓存就是在沿路的每个路由器都缓存数据;显示协同缓存通常是通过已知的流量拓扑等信息计算得到数据的缓存位置,或者通过在线交互各个节点的状态,实时计算得到数据的缓存位置;隐式协同缓存是每个节点无需知道其他节点的信息或仅需交互很少的信息就可以自主地决定是否需要对数据进行缓存。
采用NBR缓存架构的网络有很多,比较典型的有内容分发网络(Content DeliveryNetwork,CDN)、信息中心网络(Information-Centric Networking,ICN)和内容中心网络(Content-Centric Networking,CCN),其中,CDN由网络中各处放置的节点缓存数据;ICN和CCN由中间路由器缓存数据。
但上述经典NBR缓存架构中数据缓存的不确定性因素可能会导致无法保证精确的时延,而数据缓存的低时延需求和避免路由震荡也无法兼顾,即若始终选择最优位置确保了终端设备的低时延需求,则必然会导致存储位置的频繁变动,而这最终会引发路由震荡,对网络选址的影响较大,若沿路存储,可以避免路由震荡,但会产生大量的冗余缓存。
发明内容
本申请提供一种数据缓存方法和装置,以保证低时延的确定性,且避免了网络的路由震荡。
第一方面,本申请提供一种数据缓存方法,包括:
向控制器发送第一请求,所述第一请求包括第一标识和时延需求,所述第一标识用于标识第一数据;接收所述控制器发送的确认响应。
本申请终端设备在发送请求数据的第二请求前,先向控制器发送第一请求,以使控制器基于该第一请求可以预先对不满足时延需求的数据的存储位置进行更新,确保终端设备请求的数据在终端设备的时延需求内到达终端设备,保证了低时延的确定性,而且不需要改变数据的路由信息,避免了网络的路由震荡。
在一种可能的实现方式中,所述确认响应包括第一确认响应或第二确认响应,其中,所述第一确认响应由所述控制器在第一节点满足所述时延需求时发送,所述第二确认响应由所述控制器在所述第一节点不满足所述时延需求且第二节点已缓存所述第一数据时发送,所述第一节点为所述第一数据的获取路径上存储所述第一数据的原有节点,所述第二节点为所述控制器在所述第一节点不满足所述时延需求时确定的所述第一数据的获取路径上存储所述第一数据的新增节点。
在一种可能的实现方式中,所述接收所述控制器发送的确认响应之后,还包括:发送第二请求,所述第二请求包括所述第一标识;接收所述第一数据,当所述第一节点满足所述时延需求时,所述第一数据来自所述第一节点;当所述第一节点不满足所述时延需求时,所述第一数据来自所述第二节点,所述第二节点满足所述时延需求。
第二方面,本申请提供一种数据缓存方法,包括:
接收终端设备发送的第一请求,所述第一请求包括第一标识和所述终端设备的时延需求,所述第一标识用于标识所述终端设备请求的第一数据;确定所述第一数据的获取路径;判断第一节点是否满足所述时延需求,所述第一节点为所述第一数据的获取路径上存储所述第一数据的原有节点;若所述第一节点不满足所述时延需求,则根据所述时延需求确定所述第一数据的获取路径上的第二节点,所述第二节点用于缓存所述第一数据且满足所述时延需求;向所述第二节点发送第一指令,所述第一指令包括所述第一标识,所述第一指令用于指示所述第二节点缓存所述第一数据;当确定所述第二节点已缓存所述第一数据时,向所述终端设备发送第二确认响应。
本申请控制器基于终端设备在发送请求数据的第二请求前发送的该第一请求可以预先对不满足时延需求的数据的存储位置进行更新,确保终端设备请求的数据在终端设备的时延需求内到达终端设备,保证了低时延的确定性,而且不需要改变数据的路由信息,避免了网络的路由震荡。
在一种可能的实现方式中,所述判断第一节点是否满足所述时延需求之后,还包括:若所述第一节点满足所述时延需求,则向所述终端设备发送第一确认响应。
在一种可能的实现方式中,所述判断第一节点是否满足所述时延需求,包括:检测所述第一节点和所述终端设备之间的第一传输时延;根据所述第一传输时延判断所述第一节点是否满足所述时延需求;当所述第一传输时延小于或等于所述时延需求时,确定所述第一节点满足所述时延需求;当所述第一传输时延大于所述时延需求时,确定所述第一节点不满足所述时延需求。
在一种可能的实现方式中,所述根据所述时延需求确定所述第一数据的获取路径上的第二节点,包括:检测所述第一数据的获取路径上除所述第一节点外的其他节点分别和所述终端设备之间的传输时延;根据所述第一数据的获取路径上除所述第一节点外的其他节点分别和所述终端设备之间的传输时延获取第三节点集合,所述第三节点集合包括一个或多个第三节点,所述第三节点为所述第一数据的获取路径上除所述第一节点外的任意一个节点,所述第三节点和所述终端设备之间的传输时延小于或等于所述时延需求;从所述第三节点集合中选取一个所述第三节点作为所述第二节点。
在一种可能的实现方式中,所述从所述第三节点集合中选取一个所述第三节点作为所述第二节点,包括:将所述第三节点集合中距离所述终端设备最远的所述第三节点确定为所述第二节点。
从满足时延需求的所有节点中选取距离最远的节点可以减少数据的冗余缓存。
在一种可能的实现方式中,所述从所述第三节点集合中选取一个所述第三节点作为所述第二节点,包括:获取所述第三节点集合中的所述一个或多个第三节点的剩余存储空间,将所述一个或多个第三节点中剩余存储空间最大者确定为所述第二节点。
选取剩余存储空间最大的节点可以确保数据缓存的完整性。
在一种可能的实现方式中,还包括:每间隔设定周期更新数据平面中的至少一个节点中缓存的数据和路由表。
本申请除了通过终端设备发送的第一请求更新终端设备请求的第一数据的缓存节点,以保证第一数据到达终端设备的时延外,控制器还可以周期性的更新数据平面中的至少一个节点中缓存的数据和路由表,既可以确保终端设备请求的数据在终端设备的时延需求内到达终端设备,保证了低时延的确定性,又可以为被请求次数较多的数据重新选定最优存储位置并删除冗余缓存。
在一种可能的实现方式中,所述每间隔设定周期更新数据平面中的至少一个节点中缓存的数据和路由表,包括:获取第二数据和所述第二数据的时延需求集合,所述时延需求集合包括至少一个请求所述第二数据的终端设备的平均时延需求,所述第二数据是被请求次数排在前N名的N个数据中的任意一个数据,N为大于1的整数;通过设定的数学模型确定所述数据平面中的第四节点和/或第五节点,并更新所述第四节点和/或所述第五节点的路由表,所述第四节点为存储所述第二数据的新增节点,所述第五节点为存储所述第二数据的原有节点。
在一种可能的实现方式中,所述通过设定的数学模型确定所述数据平面中的第四节点和/或第五节点之后,还包括:向所述第四节点发送第二指令,所述第二指令包括第三标识,所述第三标识用于标识所述第二数据,所述第二指令用于指示所述第四节点缓存所述第二数据;和/或,向所述第五节点发送第三指令,所述第三指令包括所述第三标识,所述第三指令用于指示所述第五节点删除所述第二数据。
第三方面,本申请提供一种数据缓存方法,包括:
接收控制器发送的第一指令,所述第一指令包括第一标识,所述第一标识用于标识终端设备请求的第一数据;根据所述第一指令发送第三请求,所述第三请求包括所述第一标识;接收并缓存来自第一节点的所述第一数据,所述第一节点为所述第一数据的获取路径上存储所述第一数据的原有节点。
本申请终端设备在发送请求数据的第二请求前,先向控制器发送第一请求,控制器基于该第一请求可以预先对不满足时延需求的数据的存储位置进行更新,确保终端设备请求的数据在终端设备的时延需求内到达终端设备,保证了低时延的确定性,而且不需要改变数据的路由信息,避免了网络的路由震荡。
在一种可能的实现方式中,所述接收并缓存来自第一节点的所述第一数据之后,还包括:接收所述终端设备发送的第二请求,所述第二请求包括所述第一标识;根据所述第二请求向所述终端设备发送所述第一数据。
在一种可能的实现方式中,所述接收并缓存来自第一节点的所述第一数据之后,还包括:接收所述控制器发送的第三指令,所述第三指令包括所述第一标识;根据所述第三指令删除所述第一数据。
第四方面,本申请实施例提供了一种通信装置,该通信装置具有实现上述第一方面中任一项所述的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多于一个与上述功能相对应的模块。
第五方面,本申请实施例提供了一种控制装置,该控制装置具有实现上述第二方面中任一项所述的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多于一个与上述功能相对应的模块。
第六方面,本申请实施例提供了一种转发装置,该转发装置具有实现上述第三方面中任一项所述的方法的功能。所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多于一个与上述功能相对应的模块。
第七方面,本申请提供一种通信装置,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第一方面中任一项所述的方法。
可选的,该通信装置可以是终端设备,也可以是芯片。
第八方面,本申请提供一种控制装置,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第二方面中任一项所述的方法。
可选的,该控制装置可以是控制器,也可以是芯片。
第九方面,本申请提供一种转发装置,包括:
一个或多个处理器;
存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如上述第三方面中任一项所述的方法。
可选的,该转发装置可以是路由器,也可以是芯片。
第十方面,本申请提供一种计算机可读存储介质,包括计算机程序,所述计算机程序在计算机上被执行时,使得所述计算机执行上述第一至三方面中任一项所述的方法。
第十一方面,本申请提供一种计算机程序,当所述计算机程序被计算机执行时,用于执行上述第一至三方面中任一项所述的方法。权利要求特征部分的内容。
附图说明
图1为本申请数据缓存方法的一个应用场景示意图;
图2为本申请数据缓存方法实施例的流程图;
图3为本申请终端设备请求数据方法的一个示例性的流程图;
图4为本申请通信装置实施例的结构示意图;
图5为本申请控制装置实施例的结构示意图;
图6为本申请转发装置实施例的结构示意图;
图7为本申请提供的终端设备的示意性结构图;
图8为本申请提供的网络设备的示意性结构图。
具体实施方式
下面将结合本申请中的附图,对本申请中的技术方案进行描述。
本申请的说明书实施例和权利要求书及附图中的术语“第一”、“第二”等仅用于区分描述的目的,而不能理解为指示或暗示相对重要性,也不能理解为指示或暗示顺序。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元。方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
示例性的,图1为本申请数据缓存方法的一个应用场景示意图,如图1所示,该场景中分为控制平面和数据平面,其中,控制平面由一个控制器(Controller)组成,数据平面由四个网络节点(R1-R4)组成,终端设备(Host A)和节点R4连接,终端设备(Host B)和节点R2连接。可选的,控制平面也可以由多个控制器组成,不同的控制器管理不同的网络节点。控制器根据终端设备的资源请求(Request)对节点(R1-R4)的数据进行合理规划,控制器存储了全网缓存分布的信息、实时监控的时延信息等,可以将终端设备请求的数据迁移到最合适的节点。本申请中终端设备可以是手机、平板电脑、个人电脑等智能终端,也可以是医疗设备、工业设备等具备联网功能的终端设备。
示例性的,控制器存储的信息可以包括以下几种:
(1)拓扑结构Topology(network graph)
用于记录数据平面的拓扑结构和终端设备的时延数据,该时延数据可以由边缘节点(例如R2或R4)向终端设备(例如Host A或Host B)发送时延探测包测量得到,然后上传给控制器。
(2)路径记录Route record(file,route)
用于记录多个数据的获取路径,每条记录包括数据的标识和数据的获取路径。
(3)内容记录Content record(file,route_id)
用于记录多个数据存储的节点,每条记录包括数据的标识和存储该数据的节点的标识。
(4)命令记录Cmd record(cmd)
用于记录控制器下发的多个指令。
(5)预留记录Reserve record(host_id,file,Latency_requirement)
用于记录来自终端设备的资源预留请求,每条记录包括终端设备的标识、数据的标识和终端设备的时延需求。
另外,数据平面中的每个节点存储的信息可以包括:
缓存记录Caching record(file)
用于记录该节点需要缓存的内容,每条记录包括需要缓存的数据的标识。节点在数据转发至本地时,会遍历一遍缓存记录,查看是否需要缓存该数据。
图2为本申请数据缓存方法实施例的流程图,如图2所示,本实施例的方法可以应用于图1所示的应用场景。数据缓存方法可以包括:
201、终端设备向控制器发送第一请求。
第一请求包括第一标识和时延需求,第一标识用于标识终端设备请求的第一数据。终端设备例如可以是图1中的Host A或Host B,由终端设备发起数据的获取请求。
通常终端设备发送第二请求(即Request请求),该请求中包括用于标识终端设备请求的第一数据的第一标识(Index),假设第一节点为第一数据的缓存节点,当Request请求到达第一节点时,第一节点会根据Request请求中的第一标识发送第一数据,第一数据沿着第一数据的获取路径到达终端设备。但是第一节点无法保证第一数据在终端设备的时延需求内到达终端设备。
本申请中,终端设备在发送Request请求之前,先向控制器发送一个第一请求,通知控制器要请求的第一数据,并告知控制器终端设备的时延需求。示例性的,第一请求例如可以采用以下格式:
url | {index_i} | {latency_i} | host_id |
其中,url表示第一数据所属文件的名称前缀,index_i表示第一标识,latency_i表示时延需求,host_id表示终端设备的标识。
202、控制器确定第一数据的获取路径。
控制器例如可以是图1中的Controller。控制器收到终端设备发送的第一请求后,可以基于上述路径记录Route record(file,route)获取第一数据的获取路径。
203、控制器判断第一节点是否满足时延需求。
第一节点为第一数据的获取路径上存储第一数据的原有节点。第一节点可以向终端设备发送时延探测包检测第一节点和终端设备之间的第一传输时延,第一节点将第一传输时延上报给控制器。控制器根据该第一传输时延判断第一节点是否满足时延需求,即当第一传输时延小于或等于时延需求时,确定第一节点满足时延需求;当第一传输时延大于时延需求时,确定第一节点不满足时延需求。
204、若第一节点不满足时延需求,则控制器根据时延需求确定第一数据的获取路径上的第二节点。
第二节点用于缓存第一数据且满足时延需求。第一数据的获取路径上除第一节点外的其他节点可以向终端设备发送时延探测包检测第一数据的获取路径上除第一节点外的其他节点分别和终端设备之间的传输时延,该其他节点将检测得到的传输时延上报给控制器。控制器根据第一数据的获取路径上除第一节点外的其他节点分别和终端设备之间的传输时延获取第三节点集合,第三节点集合包括一个或多个第三节点,第三节点为第一数据的获取路径上除第一节点外的任意一个节点,第三节点和终端设备之间的传输时延小于或等于时延需求。
控制器从第三节点集合中选取一个第三节点作为第二节点。该过程可以采用以下几种方法实现:
一种是控制器将第三节点集合中距离终端设备最远的第三节点确定为第二节点。从满足时延需求的所有节点中选取距离最远的节点可以减少数据的冗余缓存。
另一种是控制器获取第三节点集合中的一个或多个第三节点的剩余存储空间,将一个或多个第三节点中剩余存储空间最大者确定为第二节点。选取剩余存储空间最大的节点可以确保数据缓存的完整性。
第三种是控制器在满足时延需求的所有节点中,选取距离终端设备尽可能远且存储空间尽可能大的节点,即第二节点可以同时满足距离远和存储空间大。可以减少数据的冗余缓存并确保数据缓存的完整性。
需要说明的是,本申请中控制器从第三节点结合中选取一个第三节点作为第二节点还可以采用其他方法,本申请对此不做具体限定。
如上所述,控制器在确定第二节点时,首先该第二节点是位于第一数据的获取路径上的某个节点,其次第二节点满足终端设备的时延需求,因此第二节点相较于第一节点距离终端设备的距离更近,这样即使第一数据的缓存节点更新,当终端设备发出Request请求(该请求基于路由信息本应该是去往第一节点的)后,存储了第一数据的第二节点先收到该请求,第二节点基于Request请求返回第一数据。这样并不会影响第一数据的路由信息,而且可以以保证时延需求的方式将第一数据发送至终端设备。
205、控制器向第二节点发送第一指令。
第一指令包括第一标识,第一指令用于指示第二节点缓存第一数据。示例性的,第一指令例如可以采用以下格式:
Flag | url | Index |
其中,Flag表示缓存指令,例如0表示缓存,url表示第一数据所属文件的名称前缀,Index表示第一标识。
206、第二节点根据第一指令发送第三请求。
第三请求包括第一标识。第三请求可以是如上所述的Request请求,第二节点请求第一数据的过程类似上述终端设备请求第一数据的过程,此处不再赘述。示例性的,Request请求例如可以采用以下格式:
url | Index |
其中,url表示第一数据所属文件的名称前缀,Index表示第一标识。
207、第二节点接收并缓存来自第一节点的第一数据。
当第一节点收到Request请求后,会根据Request请求中的第一标识发送第一数据,第一数据沿着第一数据的获取路径到达第二节点,第二节点位于第一数据的获取路径上。示例性的,第一节点回复第一数据例如可以采用以下格式:
url | Index | Data |
其中,url表示第一数据所属文件的名称前缀,Index表示第一标识,Data表示第一数据。
208、当确定第二节点已缓存第一数据时,控制器向终端设备发送第二确认响应。
第二节点缓存了第一数据后会向控制器发送一个确认响应(Acknowledge,ACK),当控制器收到该ACK后可以确定第二节点已缓存第一数据,此时控制器就向终端设备发送一个第二确认响应,以通知终端设备可以发送第一请求(即步骤201中提到的Request请求)了。示例性的,第二节点发送给控制器的ACK例如可以采用以下格式:
url | Index | Router_id |
其中,url表示第一数据所属文件的名称前缀,Index表示第一标识,Router_id表示第二节点的标识。
209、若第一节点满足时延需求,则控制器向终端设备发送第一确认响应。
第一节点如果满足终端设备的时延需求,控制器就不需要再重新选取第二节点来缓存第一数据,直接向终端设备发送第一确认响应,以通知终端设备可以发送第一请求(即步骤201中提到的Request请求)了。
210、终端设备发送第二请求。
第二请求包括第一标识。终端设备收到控制器的ACK,该ACK包括上述第一确认响应或第二确认响应,其中,第一确认响应由控制器在第一节点满足时延需求时发送,第二确认响应由控制器在第一节点不满足时延需求且第二节点已缓存第一数据时发送,第一节点为第一数据的获取路径上存储第一数据的原有节点,第二节点为控制器在第一节点不满足时延需求时确定的第一数据的获取路径上存储第一数据的新增节点。即终端设备无论收到的是哪种确认响应,只要收到其中任意一种,都表示第一数据已经缓存好,可以发送Request请求了。亦即终端设备并不关心第一数据存储在第一节点或第二节点上,当发送除Request请求后,沿着第一数据的获取路径反向前进,最先碰到的缓存了第一数据的节点就会根据Request请求返回第一数据。示例性的,终端设备发送的第二请求例如可以采用上述Request请求的格式。
211、终端设备接收第一数据。
当第一节点满足时延需求时,第一数据来自第一节点;当第一节点不满足时延需求时,第一数据来自第二节点,第二节点满足时延需求。这样无论第一数据是第一节点或第二节点发送的,当其到达终端设备时均是满足终端设备的时延需求的。
本申请,终端设备在发送请求数据的第二请求前,先向控制器发送第一请求,控制器基于该第一请求可以预先对不满足时延需求的数据的存储位置进行更新,确保终端设备请求的数据在终端设备的时延需求内到达终端设备,保证了低时延的确定性,而且不需要改变数据的路由信息,避免了网络的路由震荡。
在一种可能的实现方式中,控制器可以每间隔设定周期更新数据平面中的至少一个节点中缓存的数据和路由表。示例性的,控制器可以获取第二数据和第二数据的时延需求集合,时延需求集合包括至少一个请求第二数据的终端设备的平均时延需求,第二数据是被请求次数排在前N名的N个数据中的任意一个数据,N为大于1的整数;通过设定的数学模型确定数据平面中的第四节点和/或第五节点,并更新第四节点和/或第五节点的路由表,第四节点为存储第二数据的新增节点,第五节点为存储第二数据的原有节点。
本申请中,控制器可以定期重新规划数据平面中的至少一个节点中缓存的数据和路由表,该更新时间可以设定在终端随便请求数据的活跃度最低的时间段,例如晚上。控制器可以利用上述预留记录Reserve record(host_id,file,Latency_requirement)提取出被请求次数最多的前N个数据,N可以根据实际情况确定,对此不做具体限定。再统计出第二数据(N个数据中的任意一个)的时延需求集合,请求第二数据的终端设备可能有多个,在不同的时间终端设备对第二数据的时延需求可能会发生变化,因此针对每个请求第二数据的终端设备计算其平均时延需求。控制器已经预先创建了数学模型,该数学模型满足多个终端设备的最优缓存位置选取算法,以终端设备的平均时延需求为限制,最小化网络中多个数据的缓存副本的总数。对于前述N个数据,控制器首先确定各个数据的最小缓存副本数,然后找到各个缓存副本的节点分布。
示例性的,可以采用以下方法描述数学模型:
I集合:表示多个数据可能存储的节点位置(取值[1,m]);
J集合:表示请求同一数据的终端设备集合(取值[1,n]);
y(i):m×1矩阵,y(i)=1表示数据存储在节点i,否则节点i不存储该数据;
z(i,j):m×n矩阵,z(i,j)=1表示终端设备j在节点i取数据;
d(i,j):m×n矩阵,节点i到终端设备j的最短时延;
t(i):n×1矩阵,终端设备i请求数据的时延需求;
问题一:找出数据存放的节点的最小数量
约束条件一:每个终端设备只从一个节点获取数据
约束条件二:终端设备与节点之间的传输时延≤平均时延需求
d(i,j)×z(i,j)≤t(j)
约束条件三:终端设备只从有此文件的节点获取数据
z(i,j)-y(i)≤0
问题二:终端设备到节点的最小传输时延
约束条件四:终端设备到获取数据的节点之间的传输时延之和最小
确定好数据新的存储节点后,控制器需要下发指令给第四节点和/或第五节点,并更新第四节点和/或第五节点的路由表,即控制器向第四节点发送第二指令,第二指令包括第三标识,第三标识用于标识第二数据,第二指令用于指示第四节点缓存第二数据;和/或,向第五节点发送第三指令,第三指令包括第三标识,第三指令用于指示第五节点删除第二数据。第四节点为存储第二数据的新增节点,第五节点为存储第二数据的原有节点,即控制器需要通知新增节点缓存第二数据,并通知原有节点删除第二数据不再缓存该第二数据。由于第二数据的存储位置发生了变化,因此第二数据的获取路径也相应的发生了变化,控制器需要同步更新路由表。
第二指令例如可以采用上述第一指令的格式。
示例性的,第三指令例如可以采用以下格式:
Flag | url | Index |
其中,Flag表示删除指令,例如1表示删除,url表示第二数据所属文件的名称前缀,Index表示第三标识。
示例性的,控制器发送的用于更新路由表的指令例如可以采用以下格式:
Flag | url | Index | Next_route |
其中,Flag表示删除/缓存指令,例如0表示缓存,1表示删除,url表示第二数据所属文件的名称前缀,Index表示第三标识,Next_route表示更新后的节点的标识。
第四节点和/或第五节点接收到控制器的指令,并在根据相应的指令处理好数据缓存或删除后,向控制器发送ACK,以供控制器更新记录,这标志着周期性地更新数据平面中的至少一个节点中缓存的数据和路由表阶段结束。
本申请除了通过终端设备发送的第一请求更新终端设备请求的第一数据的缓存节点,以保证第一数据到达终端设备的时延外,还可以周期性的更新数据平面中的至少一个节点中缓存的数据和路由表,既可以确保终端设备请求的数据在终端设备的时延需求内到达终端设备,保证了低时延的确定性,又可以为被请求次数较多的数据重新选定最优存储位置并删除冗余缓存。
下面采用具体的实施例,对上述方法实施例的技术方案进行详细说明。
示例性的,如图3所示,终端设备1要请求第一数据,在发送Request请求之前,先向Controller发送第一请求(Reserve(url,{index_i},{latency_i},host_id))(1)。Controller确定第一数据的缓存节点(R2满足终端设备1的时延需求时,第一数据的缓存节点即为R2;R2不满足终端设备1的时延需求时,重新确定R1),若R2不满足终端设备1的时延需求,Controller向R1发送第一指令(Cmd(url,index))(2)。R1发送第三请求(Request(url,index))(3)。R2收到第三请求后,回复第一数据(Reply(url,index,data))(4)。R1收到第一数据后缓存第一数据(5)。R1向Controller发送一个确认响应(ACK(url,index,router_id))(6)。Controller向终端设备1发送确认响应(ACK(url,index))(7)。终端设备1发送第一请求(Request(url,index))(8)。沿着第一数据的获取路径,第一请求到达R1后,由R1将本地缓存的第一数据返回给终端设备1(9)。
图4为本申请通信装置实施例的结构示意图,如图4所示,本实施例的装置可以应用于图1中的终端设备。通信装置包括:发送模块401和接收模块402,其中,发送模块401,用于向控制器发送第一请求,所述第一请求包括第一标识和时延需求,所述第一标识用于标识第一数据;接收模块402,用于接收所述控制器发送的确认响应。
在一种可能的实现方式中,所述确认响应包括第一确认响应或第二确认响应,其中,所述第一确认响应由所述控制器在第一节点满足所述时延需求时发送,所述第二确认响应由所述控制器在所述第一节点不满足所述时延需求且第二节点已缓存所述第一数据时发送,所述第一节点为所述第一数据的获取路径上存储所述第一数据的原有节点,所述第二节点为所述控制器在所述第一节点不满足所述时延需求时确定的所述第一数据的获取路径上存储所述第一数据的新增节点。
在一种可能的实现方式中,所述发送模块401,还用于发送第二请求,所述第二请求包括所述第一标识;所述接收模块402,还用于接收所述第一数据,当所述第一节点满足所述时延需求时,所述第一数据来自所述第一节点;当所述第一节点不满足所述时延需求时,所述第一数据来自所述第二节点,所述第二节点满足所述时延需求。
图5为本申请控制装置实施例的结构示意图,如图5所示,本实施例的装置可以应用于图1中的控制器。控制装置包括:接收模块501、处理模块502和发送模块503,其中,接收模块501,用于接收终端设备发送的第一请求,所述第一请求包括第一标识和所述终端设备的时延需求,所述第一标识用于标识所述终端设备请求的第一数据;处理模块502,用于确定所述第一数据的获取路径;判断第一节点是否满足所述时延需求,所述第一节点为所述第一数据的获取路径上存储所述第一数据的原有节点;若所述第一节点不满足所述时延需求,则根据所述时延需求确定所述第一数据的获取路径上的第二节点,所述第二节点用于缓存所述第一数据且满足所述时延需求;发送模块503,用于向所述第二节点发送第一指令,所述第一指令包括所述第一标识,所述第一指令用于指示所述第二节点缓存所述第一数据;当确定所述第二节点已缓存所述第一数据时,向所述终端设备发送第二确认响应。
在一种可能的实现方式中,所述发送模块503,还用于若所述第一节点满足所述时延需求,则向所述终端设备发送第一确认响应。
在一种可能的实现方式中,所述处理模块502,具体用于检测所述第一节点和所述终端设备之间的第一传输时延;根据所述第一传输时延判断所述第一节点是否满足所述时延需求;当所述第一传输时延小于或等于所述时延需求时,确定所述第一节点满足所述时延需求;当所述第一传输时延大于所述时延需求时,确定所述第一节点不满足所述时延需求。
在一种可能的实现方式中,所述处理模块502,具体用于检测所述第一数据的获取路径上除所述第一节点外的其他节点分别和所述终端设备之间的传输时延;根据所述第一数据的获取路径上除所述第一节点外的其他节点分别和所述终端设备之间的传输时延获取第三节点集合,所述第三节点集合包括一个或多个第三节点,所述第三节点为所述第一数据的获取路径上除所述第一节点外的任意一个节点,所述第三节点和所述终端设备之间的传输时延小于或等于所述时延需求;从所述第三节点集合中选取一个所述第三节点作为所述第二节点。
在一种可能的实现方式中,所述处理模块502,具体用于将所述第三节点集合中距离所述终端设备最远的所述第三节点确定为所述第二节点。
在一种可能的实现方式中,所述处理模块502,具体用于获取所述第三节点集合中的所述一个或多个第三节点的剩余存储空间,将所述一个或多个第三节点中剩余存储空间最大者确定为所述第二节点。
在一种可能的实现方式中,所述处理模块502,还用于每间隔设定周期更新数据平面中的至少一个节点中缓存的数据和路由表。
在一种可能的实现方式中,所述处理模块502,具体用于获取第二数据和所述第二数据的时延需求集合,所述时延需求集合包括至少一个请求所述第二数据的终端设备的平均时延需求,所述第二数据是被请求次数排在前N名的N个数据中的任意一个数据,N为大于1的整数;通过设定的数学模型确定所述数据平面中的第四节点和/或第五节点,并更新所述第四节点和/或所述第五节点的路由表,所述第四节点为存储所述第二数据的新增节点,所述第五节点为存储所述第二数据的原有节点。
在一种可能的实现方式中,所述发送模块503,还用于向所述第四节点发送第二指令,所述第二指令包括第三标识,所述第三标识用于标识所述第二数据,所述第二指令用于指示所述第四节点缓存所述第二数据;和/或,向所述第五节点发送第三指令,所述第三指令包括所述第三标识,所述第三指令用于指示所述第五节点删除所述第二数据。
图6为本申请转发装置实施例的结构示意图,如图6所示,本实施例的装置可以应用于图1中的网络节点。转发装置包括:接收模块601和发送模块602,其中,接收模块601,用于接收控制器发送的第一指令,所述第一指令包括第一标识,所述第一标识用于标识终端设备请求的第一数据;发送模块602,用于根据所述第一指令发送第三请求,所述第三请求包括所述第一标识;所述接收模块601,还用于接收并缓存来自第一节点的所述第一数据,所述第一节点为所述第一数据的获取路径上存储所述第一数据的原有节点。
在一种可能的实现方式中,所述接收模块601,还用于接收所述终端设备发送的第二请求,所述第二请求包括所述第一标识;所述发送模块602,还用于根据所述第二请求向所述终端设备发送所述第一数据。
在一种可能的实现方式中,所述接收模块601,还用于接收所述控制器发送的第三指令,所述第三指令包括所述第一标识;根据所述第三指令删除所述第一数据。
本申请的上述装置,可以用于执行图2所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
图7为本申请提供的终端设备的示意性结构图。如图7所示,终端设备700包括处理器701和收发器702。
可选地,终端设备700还包括存储器703。其中,处理器701、收发器702和存储器703之间可以通过内部连接通路互相通信,传递控制信号和/或数据信号。
其中,存储器703用于存储计算机程序。处理器701用于执行存储器703中存储的计算机程序,从而实现上述装置实施例中通信装置的各功能。
可选地,存储器703也可以集成在处理器701中,或者独立于处理器701。
可选地,终端设备700还可以包括天线704,用于将收发器702输出的信号发射出去。或者,收发器702通过天线接收信号。
可选地,终端设备700还可以包括电源705,用于给终端设备中的各种器件或电路提供电源。
除此之外,为了使得终端设备的功能更加完善,终端设备700还可以包括输入单元706、显示单元707(也可以认为是输出单元)、音频电路708、摄像头709和传感器710等中的一个或多个。音频电路还可以包括扬声器7081、麦克风7082等,不再赘述。
图8为本申请提供的网络设备的示意性结构图。网络设备800可以是上述图1中的控制器或网络节点。如图8所示,网络设备800包括天线801、射频装置802、基带装置803。天线801与射频装置802连接。在上行方向上,射频装置802通过天线801接收来自终端设备的信号,并将接收到的信号发送给基带装置803进行处理。在下行方向上,基带装置803生成需要发送给终端设备的信号,并将生成的信号发送给射频装置802。射频装置802通过天线801将该信号发射出去。
基带装置803可以包括一个或多个处理单元8031。处理单元8031具体可以为处理器。
此外,基带装置803还可以包括一个或多个存储单元8032以及一个或多个通信接口8033。存储单元8032用于存储计算机程序和/或数据。通信接口8033用于与射频装置802交互信息。存储单元8032具体可以为存储器,通信接口8033可以为输入输出接口或者收发电路。
可选地,存储单元8032可以是和处理单元8031处于同一芯片上的存储单元,即片内存储单元,也可以是与处理单元8031处于不同芯片上的存储单元,即片外存储单元。本申请对此不作限定。
在实现过程中,上述方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。处理器可以是通用处理器、数字信号处理器(digital signalprocessor,DSP)、特定应用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。本申请实施例公开的方法的步骤可以直接体现为硬件编码处理器执行完成,或者用编码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
上述各实施例中提及的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-onlymemory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(dynamic RAM,DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rateSDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(directrambus RAM,DR RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (24)
1.一种数据缓存方法,其特征在于,包括:
接收终端设备发送的第一请求,所述第一请求包括第一标识和所述终端设备的时延需求,所述第一标识用于标识所述终端设备请求的第一数据;
确定所述第一数据的获取路径;
判断第一节点是否满足所述时延需求,所述第一节点为所述第一数据的获取路径上存储所述第一数据的原有节点;
若所述第一节点不满足所述时延需求,则根据所述时延需求确定所述第一数据的获取路径上的第二节点,所述第二节点用于缓存所述第一数据且满足所述时延需求;
向所述第二节点发送第一指令,所述第一指令包括所述第一标识,所述第一指令用于指示所述第二节点缓存所述第一数据;
当确定所述第二节点已缓存所述第一数据时,向所述终端设备发送第二确认响应。
2.根据权利要求1所述的方法,其特征在于,所述判断第一节点是否满足所述时延需求之后,还包括:
若所述第一节点满足所述时延需求,则向所述终端设备发送第一确认响应。
3.根据权利要求1或2所述的方法,其特征在于,所述判断第一节点是否满足所述时延需求,包括:
检测所述第一节点和所述终端设备之间的第一传输时延;
根据所述第一传输时延判断所述第一节点是否满足所述时延需求;
当所述第一传输时延小于或等于所述时延需求时,确定所述第一节点满足所述时延需求;
当所述第一传输时延大于所述时延需求时,确定所述第一节点不满足所述时延需求。
4.根据权利要求1-3中任一项所述的方法,其特征在于,所述根据所述时延需求确定所述第一数据的获取路径上的第二节点,包括:
检测所述第一数据的获取路径上除所述第一节点外的其他节点分别和所述终端设备之间的传输时延;
根据所述第一数据的获取路径上除所述第一节点外的其他节点分别和所述终端设备之间的传输时延获取第三节点集合,所述第三节点集合包括一个或多个第三节点,所述第三节点为所述第一数据的获取路径上除所述第一节点外的任意一个节点,所述第三节点和所述终端设备之间的传输时延小于或等于所述时延需求;
从所述第三节点集合中选取一个所述第三节点作为所述第二节点。
5.根据权利要求4所述的方法,其特征在于,所述从所述第三节点集合中选取一个所述第三节点作为所述第二节点,包括:
将所述第三节点集合中距离所述终端设备最远的所述第三节点确定为所述第二节点。
6.根据权利要求4所述的方法,其特征在于,所述从所述第三节点集合中选取一个所述第三节点作为所述第二节点,包括:
获取所述第三节点集合中的所述一个或多个第三节点的剩余存储空间,将所述一个或多个第三节点中剩余存储空间最大者确定为所述第二节点。
7.根据权利要求1-6中任一项所述的方法,其特征在于,还包括:
每间隔设定周期更新数据平面中的至少一个节点中缓存的数据和路由表。
8.根据权利要求7所述的方法,其特征在于,所述每间隔设定周期更新数据平面中的至少一个节点中缓存的数据和路由表,包括:
获取第二数据和所述第二数据的时延需求集合,所述时延需求集合包括至少一个请求所述第二数据的终端设备的平均时延需求,所述第二数据是被请求次数排在前N名的N个数据中的任意一个数据,N为大于1的整数;
通过设定的数学模型确定所述数据平面中的第四节点和/或第五节点,并更新所述第四节点和/或所述第五节点的路由表,所述第四节点为存储所述第二数据的新增节点,所述第五节点为存储所述第二数据的原有节点。
9.根据权利要求8所述的方法,其特征在于,所述通过设定的数学模型确定所述数据平面中的第四节点和/或第五节点之后,还包括:
向所述第四节点发送第二指令,所述第二指令包括第三标识,所述第三标识用于标识所述第二数据,所述第二指令用于指示所述第四节点缓存所述第二数据;和/或,
向所述第五节点发送第三指令,所述第三指令包括所述第三标识,所述第三指令用于指示所述第五节点删除所述第二数据。
10.一种数据缓存方法,其特征在于,包括:
接收控制器发送的第一指令,所述第一指令包括第一标识,所述第一标识用于标识终端设备请求的第一数据;
根据所述第一指令发送第三请求,所述第三请求包括所述第一标识;
接收并缓存来自第一节点的所述第一数据,所述第一节点为所述第一数据的获取路径上存储所述第一数据的原有节点。
11.根据权利要求10所述的方法,其特征在于,所述接收并缓存来自第一节点的所述第一数据之后,还包括:
接收所述终端设备发送的第二请求,所述第二请求包括所述第一标识;
根据所述第二请求向所述终端设备发送所述第一数据。
12.根据权利要求10或11所述的方法,其特征在于,所述接收并缓存来自第一节点的所述第一数据之后,还包括:
接收所述控制器发送的第三指令,所述第三指令包括所述第一标识;
根据所述第三指令删除所述第一数据。
13.一种控制装置,其特征在于,包括:
接收模块,用于接收终端设备发送的第一请求,所述第一请求包括第一标识和所述终端设备的时延需求,所述第一标识用于标识所述终端设备请求的第一数据;
处理模块,用于确定所述第一数据的获取路径;判断第一节点是否满足所述时延需求,所述第一节点为所述第一数据的获取路径上存储所述第一数据的原有节点;若所述第一节点不满足所述时延需求,则根据所述时延需求确定所述第一数据的获取路径上的第二节点,所述第二节点用于缓存所述第一数据且满足所述时延需求;
发送模块,用于向所述第二节点发送第一指令,所述第一指令包括所述第一标识,所述第一指令用于指示所述第二节点缓存所述第一数据;当确定所述第二节点已缓存所述第一数据时,向所述终端设备发送第二确认响应。
14.根据权利要求13所述的装置,其特征在于,所述发送模块,还用于若所述第一节点满足所述时延需求,则向所述终端设备发送第一确认响应。
15.根据权利要求13或14所述的装置,其特征在于,所述处理模块,具体用于检测所述第一节点和所述终端设备之间的第一传输时延;根据所述第一传输时延判断所述第一节点是否满足所述时延需求;当所述第一传输时延小于或等于所述时延需求时,确定所述第一节点满足所述时延需求;当所述第一传输时延大于所述时延需求时,确定所述第一节点不满足所述时延需求。
16.根据权利要求13-15中任一项所述的装置,其特征在于,所述处理模块,具体用于检测所述第一数据的获取路径上除所述第一节点外的其他节点分别和所述终端设备之间的传输时延;根据所述第一数据的获取路径上除所述第一节点外的其他节点分别和所述终端设备之间的传输时延获取第三节点集合,所述第三节点集合包括一个或多个第三节点,所述第三节点为所述第一数据的获取路径上除所述第一节点外的任意一个节点,所述第三节点和所述终端设备之间的传输时延小于或等于所述时延需求;从所述第三节点集合中选取一个所述第三节点作为所述第二节点。
17.根据权利要求16所述的装置,其特征在于,所述处理模块,具体用于将所述第三节点集合中距离所述终端设备最远的所述第三节点确定为所述第二节点。
18.根据权利要求16所述的装置,其特征在于,所述处理模块,具体用于获取所述第三节点集合中的所述一个或多个第三节点的剩余存储空间,将所述一个或多个第三节点中剩余存储空间最大者确定为所述第二节点。
19.根据权利要求13-18中任一项所述的装置,其特征在于,所述处理模块,还用于每间隔设定周期更新数据平面中的至少一个节点中缓存的数据和路由表。
20.根据权利要求19所述的装置,其特征在于,所述处理模块,具体用于获取第二数据和所述第二数据的时延需求集合,所述时延需求集合包括至少一个请求所述第二数据的终端设备的平均时延需求,所述第二数据是被请求次数排在前N名的N个数据中的任意一个数据,N为大于1的整数;通过设定的数学模型确定所述数据平面中的第四节点和/或第五节点,并更新所述第四节点和/或所述第五节点的路由表,所述第四节点为存储所述第二数据的新增节点,所述第五节点为存储所述第二数据的原有节点。
21.根据权利要求20所述的装置,其特征在于,所述发送模块,还用于向所述第四节点发送第二指令,所述第二指令包括第三标识,所述第三标识用于标识所述第二数据,所述第二指令用于指示所述第四节点缓存所述第二数据;和/或,向所述第五节点发送第三指令,所述第三指令包括所述第三标识,所述第三指令用于指示所述第五节点删除所述第二数据。
22.一种转发装置,其特征在于,包括:
接收模块,用于接收控制装置发送的第一指令,所述第一指令包括第一标识,所述第一标识用于标识终端设备请求的第一数据;
发送模块,用于根据所述第一指令发送第三请求,所述第三请求包括所述第一标识;
所述接收模块,还用于接收并缓存来自第一节点的所述第一数据,所述第一节点为所述第一数据的获取路径上存储所述第一数据的原有节点。
23.根据权利要求22所述的装置,其特征在于,所述接收模块,还用于接收所述终端设备发送的第二请求,所述第二请求包括所述第一标识;
所述发送模块,还用于根据所述第二请求向所述终端设备发送所述第一数据。
24.根据权利要求22或23所述的装置,其特征在于,所述接收模块,还用于接收所述控制装置发送的第三指令,所述第三指令包括所述第一标识;根据所述第三指令删除所述第一数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910730107.4A CN112350946B (zh) | 2019-08-08 | 2019-08-08 | 数据缓存方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910730107.4A CN112350946B (zh) | 2019-08-08 | 2019-08-08 | 数据缓存方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112350946A true CN112350946A (zh) | 2021-02-09 |
CN112350946B CN112350946B (zh) | 2024-04-16 |
Family
ID=74366747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910730107.4A Active CN112350946B (zh) | 2019-08-08 | 2019-08-08 | 数据缓存方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112350946B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656653A (zh) * | 2008-08-21 | 2010-02-24 | 中国移动通信集团公司 | 一种应用于多路径传输的接收缓存配置方法及装置 |
CN106658598A (zh) * | 2016-12-08 | 2017-05-10 | 南京邮电大学 | 一种基于内容缓存和网络状态感知的业务迁移方法 |
US20170251073A1 (en) * | 2016-02-29 | 2017-08-31 | Intel Corporation | Technologies for managing replica caching in a distributed storage system |
CN107250999A (zh) * | 2015-03-30 | 2017-10-13 | 华为技术有限公司 | 具有网络内缓存的分布式内容发现 |
-
2019
- 2019-08-08 CN CN201910730107.4A patent/CN112350946B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656653A (zh) * | 2008-08-21 | 2010-02-24 | 中国移动通信集团公司 | 一种应用于多路径传输的接收缓存配置方法及装置 |
CN107250999A (zh) * | 2015-03-30 | 2017-10-13 | 华为技术有限公司 | 具有网络内缓存的分布式内容发现 |
US20170251073A1 (en) * | 2016-02-29 | 2017-08-31 | Intel Corporation | Technologies for managing replica caching in a distributed storage system |
CN106658598A (zh) * | 2016-12-08 | 2017-05-10 | 南京邮电大学 | 一种基于内容缓存和网络状态感知的业务迁移方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112350946B (zh) | 2024-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112437141B (zh) | 辅助区块链网络中的节点建立p2p直连的方法 | |
KR102100710B1 (ko) | 컨텐츠 중심 네트워크에서 컨텐츠 소유자 및 노드의 패킷 전송 방법 | |
CN101147380B (zh) | 用于高效扩展p2p网络的方法和装置 | |
JP5804061B2 (ja) | 通信システム、制御装置、通信方法およびプログラム | |
JP2007066161A (ja) | キャッシュシステム | |
CN107250999A (zh) | 具有网络内缓存的分布式内容发现 | |
EP3021537A1 (en) | Method, device and system for determining content acquisition path and processing request | |
US11019171B2 (en) | Cache data control method and device | |
US10356209B2 (en) | System and method to support context-aware content requests in information centric networks | |
US10021636B2 (en) | Methods, apparatuses, and computer program products for configuring and collecting information from sleepy devices | |
US11394800B2 (en) | Systems and methods for remote network topology discovery | |
KR20130037368A (ko) | 센서 네트워크를 구성하는 중간 노드 장치 및 중간 노드 장치가 수행하는 센서 데이터 처리 방법 | |
CN106059917B (zh) | 一种路由信息处理方法和装置 | |
US10536368B2 (en) | Network-aware routing in information centric networking | |
JPWO2014057595A1 (ja) | 通信端末間情報交換方法および通信端末 | |
CN109788075B (zh) | 专网网络系统、数据的获取方法及边缘服务器 | |
CN112350946B (zh) | 数据缓存方法和装置 | |
JP2023515955A (ja) | ルート更新方法及び装置 | |
EP2802108A1 (en) | Data-oriented communication system, node, and data transfer method | |
CN107682271B (zh) | 一种路由线路的生成方法及装置 | |
EP3422674A1 (en) | A method of resolving a domain name by a dns server to a plurality of ip addresses based on location information of the user equipment | |
US11343750B2 (en) | Method for the identification of a connected object in a network infrastructure | |
US11240732B2 (en) | Method and device for managing mobile node of SDN controller | |
KR20180136845A (ko) | 보안감시 네트워크에서 aco를 활용한 패킷 전송 방법, 보안감시 네트워크의 패킷 전송장치, 그리고 aco를 활용한 icn 보안감시 시스템 | |
US20210266379A1 (en) | Selecting from a plurality of items which match an interest |
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 |