CN104348722A - 确定内容获取路径、请求处理的方法、装置和系统 - Google Patents
确定内容获取路径、请求处理的方法、装置和系统 Download PDFInfo
- Publication number
- CN104348722A CN104348722A CN201310329105.7A CN201310329105A CN104348722A CN 104348722 A CN104348722 A CN 104348722A CN 201310329105 A CN201310329105 A CN 201310329105A CN 104348722 A CN104348722 A CN 104348722A
- Authority
- CN
- China
- Prior art keywords
- content
- network node
- hit rate
- path
- buffer
- 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
- 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
- H04L12/00—Data switching networks
- H04L12/64—Hybrid switching systems
- H04L12/6418—Hybrid transport
-
- 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/12—Shortest path evaluation
-
- 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/12—Shortest path evaluation
- H04L45/124—Shortest path evaluation using a combination of metrics
-
- 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/302—Route determination based on requested QoS
- H04L45/306—Route determination based on the nature of the carried application
-
- 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/745—Address table lookup; Address filtering
-
- 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
-
- 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/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
- H04L67/63—Routing a service request depending on the request content or context
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施例公开了一种确定内容获取路径的方法,本发明实施例还公开了一种内容请求处理方法及相应装置和系统。其中,所述确定内容获取路径的方法包括:第一网络节点接收来自用户的请求,所述请求用于请求原始内容提供者提供内容,所述请求携带内容的名称、原始内容提供者的网络地址和用户的网络地址;计算到原始内容提供者的至少两条转发路径,根据各转发路径上的链路代价以及各转发路径上的网络节点对内容的缓存命中率确定一条内容获取路径;根据内容获取路径向下一个网络节点发送所述请求,以便下一个网络节点转发或响应所述请求。采用本发明,能有效提高网络中的缓存的利用率,进一步缓解原始内容提供者的压力和提高链路资源的利用率。
Description
技术领域
本发明涉及通信领域,尤其涉及一种确定内容获取路径、请求处理的方法、装置和系统。
背景技术
根据思科(Cisco)视觉化网络指数(Virtual Network Index,VNI)发布的统计,2011年互联网流量中90%以上的流量都是文件分享(file sharing)、视频和网页。根据其预测,这一比例将继续增大,估计到2016年仅视频流量将占到整个互联网流量的54%。
在获取文件、视频和网页等内容时,不同的用户往往会反复请求相同的内容。现有IP网络以主机为中心,如果要进行内容的传送,则需要建立端到端的连接,即:要求每个用户各自与原始内容提供者建立连接,然后由原始内容提供者将用户所请求的内容完整的传送给用户。这种做法,一方面使得原始内容递交者需要处理大量的用户请求,容易造成响应缓慢甚至是拒绝服务;另一方面,网络中的链路需要多次传输相同的内容,造成网络资源的浪费。因此,如何有效的进行内容递交是当今互联网面临的难题。
近几年,学术界开始研究如何将传统的以主机为中心的IP网络改造为以内容为中心。比较有代表性的是美国国家科学基金(National Science Foundation,NSF)的未来互联网架构(Future Internet Architecture,FIA)支持的NDN(NamedData Networking)项目等,以及欧洲的第七框架计划(Framework Program7,FP7)所支持的PSIRP(Publish-Subscribe Internet Routing Paradigm)项目等。这些项目大都提出利用网络设备(比如路由器)的缓存来缓存内容并响应内容请求,即:网络设备在递交内容的过程中会根据规则决定是否缓存,并在转发内容请求时,如果命中本地缓存则立刻返回结果。
目前大部分的方案中都是:位于用户到原始内容提供者的路径上的各个网络设备根据本地缓存是否命中内容确定向用户返回内容或者转发所述请求。但是,由于网络设备的缓存是有限的,并不是所有内容都能够被缓存,同时,研究表明内容请求存在区域性特征(即地理位置相近的用户会请求类似的内容),不同的缓存中同一内容的命中率是不同的(也就是说不同的内容可能缓存于不同的网络设备中),因此,通过现有的路径计算方式进行路由,无法有效利用网络中的缓存。
发明内容
本发明实施例所要解决的技术问题在于,提供一种确定内容获取路径、内容请求处理的方法、装置和系统,用于解决现有技术中,在内容请求的路由过程中,无法有效利用网络中的缓存的问题。
为了解决上述技术问题,第一方面,提供了一种确定内容获取路径的方法,包括:
第一网络节点接收来自用户的请求,所述请求用于请求原始内容提供者提供内容,所述请求携带所述内容的名称、所述原始内容提供者的网络地址和所述用户的网络地址;
计算到所述原始内容提供者的至少两条转发路径,根据各转发路径上的链路代价以及各转发路径上的网络节点对所述内容的缓存命中率确定一条内容获取路径;
根据所述内容获取路径向下一个网络节点发送所述请求,以便所述下一个网络节点转发或响应所述请求。
作为所述第一方面的第一种可能的实现方式,所述方法还包括:获取所述各转发路径上的网络节点对所述内容的缓存命中率;所述各转发路径上的网络节点对所述内容的缓存命中率通过以下方式获取:在本地保存的缓存命中率信息表中查询各转发路径上的网络节点对所述内容的缓存命中率,或,在所述缓存命中率信息表中查询各转发路径上的缓存网络节点对所述内容的缓存命中率,所述缓存网络节点是负责缓存所述内容的网络节点,或者进一步地,在查询过程中,如果存在至少一个网络节点,其对所述内容的缓存命中率无法通过查询所述缓存命中率信息表获得,则根据所述至少一个网络节点的整体命中率情况预设所述至少一个网络节点对所述内容的缓存命中率。
结合所述第一方面或所述第一方面的第一种可能的实现方式,还提供了所述第一方面的第二种可能的实现方式,所述根据各转发路径上的链路代价以及各转发路径上的网络节点对所述内容的缓存命中率确定一条内容获取路径包括:
分别计算各转发路径的路径代价C=C1,n,其中,Ci,n=Φi+1Ri+1Pi,i+1+(1–Φi+1Ri+1)(Pi,i+1+Ci+1,n),(i<n),所述n为当前进行计算的转发路径上的网络节点数目;当所述n个网络节点中的第i+1个网络节点负责缓存所述内容时,所述Φi+1=1,否则,所述Φi+1=0;所述Ri+1表示所述第i+1个网络节点对所述内容的缓存命中率;所述Pi,i+1表示所述n个网络节点中的第i个网络节点到第i+1个网络节点的链路代价;所述Ci,n表示从所述n个网络节点中的第i个网络节点到第n个网络节点的路径代价;选取所述至少两条转发路径中路径代价最小的一条转发路径作为所述内容获取路径。
结合所述第一方面的第一种或第二种可能的实现方式,还提供了所述第一方面的第三种可能的实现方式,所述方法还包括:接收由命中所述内容的缓存网络节点生成的,或者由所述原始内容提供者生成的内容数据分组,所述内容数据分组携带所述请求所经过的所有缓存网络节点对所述内容的命中率信息;提取所述内容数据分组中的命中率信息,更新本地保存的相应网络节点对所述内容的命中率信息。
第二方面,提供了一种请求处理方法,包括:
缓存网络节点接收来自用户的请求,所述请求用于请求原始内容提供者提供内容,所述请求携带所述内容的名称、所述原始内容提供者的网络地址和所述用户的网络地址,所述缓存网络节点是负责缓存所述内容的网络节点;
检查本地缓存,如果命中所述内容,则更新本地缓存对所述内容的命中率,生成内容数据分组,并向所述用户发送所述内容数据分组作为对所述请求的响应,其中,所述内容数据分组携带所述缓存网络节点对所述内容的命中率信息,或者,
检查本地缓存,如果未命中所述内容,则更新本地缓存对所述内容的命中率,将所述请求进行以下处理后向所述原始内容提供者发送:在所述请求中携带所述缓存网络节点对所述内容的命中率信息。
作为所述第二方面的第一种可能的实现方式,在所述缓存网络节点命中所述内容的情况下,如果所述请求还携带有其它缓存网络节点对所述内容的命中率信息,则所述缓存网络节点提取这些命中率信息并将其携带在所述内容数据分组中,其中,所述其它缓存网络节点是指所述请求在到达所述缓存网络节点之前所经过的节点。
作为所述第二方面的第二种可能的实现方式,在所述缓存网络节点未命中所述内容的情况下,所述将所述请求进行以下处理后向所述原始内容提供者发送包括:所述缓存网络节点根据所述请求中携带的内容获取路径信息确定下一跳;或者,所述缓存网络节点计算到所述原始内容提供者的至少两条转发路径,根据各转发路径上的链路代价以及各转发路径上的网络节点对所述内容的缓存命中率确定一条内容获取路径,根据确定的内容获取路径确定下一跳。
结合所述第二方面的或所述第二方面的第二种可能的实现方式,还提供了所述第二方面的第三种可能的实现方式,在所述缓存网络节点未命中所述内容的情况下,所述方法还包括:所述缓存网络节点接收由命中所述内容的缓存网络节点生成的,或者由所述原始内容提供者生成的内容数据分组,所述内容数据分组携带所述请求所经过的所有缓存网络节点对所述内容的命中率信息;向所述用户发送所述内容数据分组,或者,提取所述内容数据分组中的命中率信息,更新本地保存的相应网络节点对所述内容的命中率信息,并向所述用户发送所述内容数据分组。
第三方面,提供了一种确定内容获取路径的网络节点,包括:
第一接收单元,用于接收来自用户的请求,所述请求用于请求原始内容提供者提供内容,所述请求携带所述内容的名称、所述原始内容提供者的网络地址和所述用户的网络地址;
计算单元,用于计算到所述原始内容提供者的至少两条转发路径,根据各转发路径上的链路代价以及各转发路径上的网络节点对所述内容的缓存命中率确定一条内容获取路径;
转发单元,用于根据所述内容获取路径向下一个网络节点发送所述请求,以便所述下一个网络节点转发或响应所述请求。
作为所述第三方面的一种可能的实现方式,所述网络节点还包括获取单元,用于获取所述各转发路径上的网络节点对所述内容的命中率;所述获取单元包括存储模块和查询模块,或者包括所述存储模块、所述查询模块和预设模块,其中,所述存储模块,用于保存网络中各个网络节点的缓存命中率信息;所述查询模块,用于通过所述存储模块查询各转发路径上的网络节点对所述内容的缓存命中率,或,用于通过所述存储模块查询各转发路径上的缓存网络节点对所述内容的缓存命中率,所述缓存网络节点是负责缓存所述内容的网络节点;所述预设模块,只有在存在至少一个网络节点,且所述至少一个网络节点对所述内容的缓存命中率无法通过所述查询模块确定时被调用,该预设模块用于根据所述至少一个网络节点的整体命中率情况预设所述至少一个网络节点对所述内容的缓存命中率。
结合所述第三方面或所述第三方面的第一种可能的实现方式,还提供了所述第三方面的第二种可能的实现方式,所述计算单元包括:
计算模块,用于分别计算各转发路径的路径代价C=C1,n,其中,Ci,n=Φi+1Ri+1Pi,i+1+(1–Φi+1Ri+1)(Pi,i+1+Ci+1,n),(i<n),所述n为当前进行计算的转发路径上的网络节点数目;当所述n个网络节点中的第i+1个网络节点负责缓存所述内容时,所述Φi+1=1,否则,所述Φi+1=0;所述Ri+1表示所述第i+1个网络节点对所述内容的缓存命中率;所述Pi,i+1表示所述n个网络节点中的第i个网络节点到第i+1个网络节点的链路代价;所述Ci,n表示从所述n个网络节点中的第i个网络节点到第n个网络节点的路径代价;确定模块,用于选取所述至少两条转发路径中路径代价最小的一条转发路径作为所述内容获取路径。
结合所述第三方面的第一种或第二种可能的实现方式,还提供了所述第三方面的第三种可能的实现方式,所述网络节点还包括:第二接收单元,用于接收由命中所述内容的缓存网络节点生成的,或者由所述原始内容提供者生成的内容数据分组,所述内容数据分组携带所述请求所经过的所有缓存网络节点对所述内容的命中率信息;更新单元,用于提取所述内容数据分组中的命中率信息,更新本地保存的相应网络节点对所述内容的命中率信息。
第四方面,提供一种缓存网络节点,包括:
第一接收单元,用于接收来自用户的请求,所述请求用于请求原始内容提供者提供内容,所述请求携带所述内容的名称、所述原始内容提供者的网络地址和所述用户的网络地址,所述缓存网络节点是负责缓存所述内容的网络节点;
第一处理单元,用于检查本地缓存并根据本地缓存对所述内容的命中情况进行处理,包括:
如果命中所述内容,则更新本地缓存对所述内容的命中率,生成内容数据分组,并向所述用户发送所述内容数据分组作为对所述请求的响应,其中,所述内容数据分组携带所述缓存网络节点对所述内容的命中率信息,或者,
如果未命中所述内容,则更新本地缓存对所述内容的命中率,将所述请求进行以下处理后向所述原始内容提供者发送:在所述请求中携带所述缓存网络节点对所述内容的命中率信息。
作为所述第四方面的第一种可能的实现方式,所述第一处理单元包括:
提取模块,用于在所述缓存网络节点命中所述内容,并且所述请求还携带有其它缓存网络节点对所述内容的命中率信息的情况下,提取这些命中率信息,其中,所述其它缓存网络节点是指所述请求在到达所述网络节点之前所经过的节点;信息插入模块,用于将所述提取模块提取的命中率信息携带在所述内容数据分组中。
作为所述第四方面的第二种可能的实现方式,所述第一处理单元包括:
发送模块,用于在所述缓存网络节点未命中所述内容的情况下,根据所述请求中携带的内容获取路径信息确定下一跳,或者,用于在所述缓存网络节点未命中所述内容的情况下,计算到所述原始内容提供者的至少两条转发路径,根据各转发路径上的链路代价以及各转发路径上的网络节点对所述内容的缓存命中率确定一条内容获取路径,根据确定的内容获取路径确定下一跳。
结合所述第四方面或所述第四方面的第二种可能的实现方式,还提供了所述第四方面的第三种可能的实现方式,所述缓存网络节点还包括:第二接收单元,用于在所述缓存网络节点未命中所述内容的情况下,接收由命中所述内容的缓存网络节点生成的,或者由所述原始内容提供者生成的内容数据分组,所述内容数据分组携带所述请求所经过的所有缓存网络节点对所述内容的命中率信息;第二处理单元,用于向所述用户发送所述内容数据分组,或者,用于提取所述内容数据分组中的命中率信息,更新本地保存的相应网络节点对所述内容的命中率信息,并向所述用户发送所述内容数据分组。
第五方面,提供一种内容获取系统,包括根据本发明第三方面的确定内容获取路径的网络节点和根据本发明第四方面的缓存网络节点。
实施本发明实施例,根据各转发路径上的链路代价以及各转发路径上的网络节点对所述内容的缓存命中率确定内容获取路径,然后根据内容获取路径进行路由,能有效提高网络中的缓存的利用率,同时,进一步缓解原始内容提供者的压力和提高了链路资源的利用率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明一种实施例的确定内容获取路径的方法的流程示意图;
图2是根据本发明一种实施例的请求处理方法的流程示意图;
图3是根据本发明一种实施例所使用的网络拓扑示意图;
图4是图3所示实施例的一种多路径转发示意图;
图5是图3所示实施例的另一种多路径转发示意图;
图6A是根据本发明一种实施例的确定内容获取路径的网络节点的方块示意图;
图6B是图6A所示实施例的计算单元的一种方块示意图;
图6C是图6A所示实施例的计算单元的一种方块示意图;
图7是根据本发明一种实施例的确定内容获取路径的网络节点的方块示意图;
图8A是根据本发明一种实施例的缓存网络节点的方块示意图;
图8B是图8A所示实施例的处理单元的一种方块示意图;
图8C是图8A所示实施例的处理单元的一种方块示意图;
图9是根据本发明一种实施例的缓存网络节点的方块示意图;
图10是根据本发明一种实施例的内容获取系统的方块示意图;
图11是根据本发明一种实施例的网络节点的方块示意图;
图12是根据本发明一种实施例的网络节点的方块示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是根据本发明一种实施例的确定内容获取路径的方法的流程示意图,参照图1,该方法包括(虚线框表示该步骤为可选):
100:第一网络节点接收来自用户的请求,所述请求用于请求原始内容提供者提供内容,所述请求携带所述内容的名称、所述原始内容提供者的网络地址和所述用户的网络地址。
第一网络节点可以根据所述原始内容提供者和所述用户的网络地址(例如:IP地址)进行路由计算/寻址。
本发明涉及的“所述内容的名称”不仅包含狭义上的名称,还包含广义上的可以标识所述内容的具有识别/判别意义的标记或标识。
本发明涉及的“来自用户的请求”可以理解为所述请求的源地址是所述用户,而并不限制所述用户与节点是直接连接,还是通过转发设备(例如:中间转发节点)连接,换而言之,所述请求可以经由其他设备转发至所述第一网络节点。同样的道理,本发明涉及的“向所述用户发送”、“向所述内容提供者发送”或类似表述,均不对节点之间的连接方式作出限制。
所述第一网络节点包括需要进行路由计算的设备,例如:接入路由器。
102:计算到所述原始内容提供者的至少两条转发路径,根据各转发路径上的链路代价以及各转发路径上的网络节点对所述内容的缓存命中率确定一条内容获取路径。
可选的,在本发明的一种实施例中,可以采用以下方式得到与102相同的处理结果:在计算最短路径时,综合各个网络节点对所述内容的缓存命中率进行计算,从而直接计算出内容获取路径。
可选的,在本实施例的一种实现方式中,在102之前或在102中包括:获取所述各转发路径上的网络节点对所述内容的缓存命中率。例如,可通过以下方式获取:
在本地保存的缓存命中率信息表中查询各转发路径上的网络节点对所述内容的缓存命中率,或,在所述缓存命中率信息表中查询各转发路径上的缓存网络节点对所述内容的缓存命中率,所述缓存网络节点是负责缓存所述内容的网络节点。需要说明的是,“负责缓存所述内容的网络节点”应当理解为该网络节点可能缓存有所述内容而不是一定缓存有所述内容。
在上述的查询过程中,如果存在至少一个网络节点,其对所述内容的缓存命中率无法通过查询所述缓存命中率信息表获得(例如,当第一网络节点首次接收到对某个内容的请求时,可能无法查询到其他网络节点对该内容的命中率信息),则根据所述至少一个网络节点的整体命中率情况预设所述至少一个网络节点对所述内容的缓存命中率。具体的,可以根据本地缓存保存的所述至少一个网络节点对其他内容的缓存命中率,预设其对所述内容的命中率,例如,如果所述至少一个网络节点对其他内容的缓存命中率不高,则其对所述内容的预设命中率也不能过高,一种可行的取值方式如下:在设定阈值和所有内容的已知命中率中选取最小值作为预设值。
当第一网络节点第一次接收到对某个内容的请求时,可以采用多种方法获知网络中哪些缓存可能缓存有该内容,例如:利用集中式的设备记录所有缓存设备,第一网络节点在接入网络时通过查询一次性获得所有缓存设备的缓存信息;第一网络节点利用交互信息进行自学习(即:从每次收到的内容数据中学习新的缓存信息);各缓存设备本身利用分布式哈希表技术决定各自负责哪些内容,第一网络节点即可利用相同的技术获得缓存信息。在上述方法中,“缓存信息”可以包括:缓存设备的地址、缓存设备的存储能力以及目前存储有哪些内容等。
可选的,在本实施例的一种实现方式中,102包括:
分别计算各转发路径的路径代价C=C1,n,其中,Ci,n=Φi+1Ri+1Pi,i+1+(1–Φi+1Ri+1)(Pi,i+1+Ci+1,n),(i<n),所述n为当前进行计算的转发路径上的网络节点数目;当所述n个网络节点中的第i+1个网络节点负责缓存所述内容时,所述Φi+1=1,否则,所述Φi+1=0;所述Ri+1表示所述第i+1个网络节点对所述内容的缓存命中率;所述Pi,i+1表示所述n个网络节点中的第i个网络节点到第i+1个网络节点的链路代价;所述Ci,n表示从所述n个网络节点中的第i个网络节点到第n个网络节点的路径代价;选取所述至少两条转发路径中路径代价最小的一条转发路径作为所述内容获取路径。
当然,上述公式只是一种示例性的实现方式,采用与上述公式类似的计算方法,或者采用上述公式的变形式进行路由计算,均属于本发明的保护范围。
104:根据所述内容获取路径向下一个网络节点发送所述请求,以便所述下一个网络节点转发或响应所述请求。
可选的,在104中,所述第一网络节点可以采用源路由的方式向所述下一个网络节点转发所述请求,在这种情况下,所述请求在整个路由转发过程中的路径即所述内容获取路径。进一步可选的,采用源路由时,可以在IP选项中携带负责缓存所述内容的网络节点的网络地址(而不携带非必须经过的网络节点的网络地址),以便负责缓存所述内容的网络节点在接收到所述请求后检查本地缓存是否命中所述内容。
可选的,在104中,所述第一网络节点也可以采用隧道技术发送所述请求,目的地址为所述下一个网络节点的地址,然后由所述下一个网络节点采用与所述第一网络节点相同的方法重新计算内容获取路径进行路由转发。进一步可选的,采用隧道技术时,每一段隧道的终点均为负责缓存所述内容的网络节点,具体而言:由于隧道是一段段建立的,先建立从所述第一网络节点到第一个负责缓存所述内容的网络节点的隧道,在隧道端点的网络节点就会查询本地缓存,然后在IP选项中依然会携带后续网络节点的地址(或者采用重新计算内容获取路径的方法),当前具有缓存功能的网络节点就会建立和下一具有缓存功能的网络节点之间的隧道。
本实施例所提供的确定内容获取路径的方法,能有效提高网络中的缓存的利用率(例如,相对于传统的最短路径路由方式),同时,进一步缓解了原始内容提供者的压力和提高了链路资源的利用率。
可选的,在本实施例的一种实现方式中,在104之后,所述方法还包括:
106:接收由负责缓存所述内容且命中所述内容的网络节点(即:命中所述内容的缓存网络节点)生成的,或者由所述原始内容提供者生成的内容数据分组,所述内容数据分组携带所述请求所经过的所有缓存网络节点对所述内容的命中率信息。
示例性的,以IPv4协议为例,内容数据分组可通过IP选项(IP option)携带命中率信息。
需要说明的是,在本发明中虽然将“负责缓存所述内容且命中所述内容的网络节点”(以下简称“缓存命中节点”)和“原始内容提供者”分别进行描述,本领域技术人员应当理解,在本发明中,“原始内容提供者”与“缓存命中节点”除了由于在网络中的位置不同而引起的差别外,二者在功能上具有一致性。即:原始内容提供者在接收到所述请求时的处理方式与缓存命中节点的处理方式相同,换而言之,“缓存命中节点”在一些情景中包括“原始内容提供者”。
108:提取所述内容数据分组中的命中率信息,更新本地保存的相应网络节点对所述内容的命中率信息。
本实现方式中,第一网络节点可以及时更新负责缓存所述内容的网络节点对所述内容的命中率信息。
图2是根据本发明一种实施例的请求处理方法的流程示意图,参照图2,所述方法包括:
200:缓存网络节点接收来自用户的请求,所述请求用于请求原始内容提供者提供内容,所述请求携带所述内容的名称、所述原始内容提供者的网络地址和所述用户的网络地址(例如,IP地址),所述缓存网络节点是负责缓存所述内容的网络节点。
在本实施例的一种实现方式中,所述缓存网络节点可以是图1所示实施例中的“下一个网络节点”。
202:检查本地缓存,判断是否命中所述内容。
204:如果命中所述内容,则更新本地缓存对所述内容的命中率,生成内容数据分组,并向所述用户发送所述内容数据分组作为对所述请求的响应,其中,所述内容数据分组携带所述缓存网络节点对所述内容的命中率信息。
可选的,在本实施例的一种实现方式中,在204中,如果所述请求还携带有其它缓存网络节点对所述内容的命中率信息,则所述缓存网络节点提取这些命中率信息并将其携带在所述内容数据分组中,以将这些命中率信息以及所述缓存网络节点对所述内容的命中率信息一起发送至第一网络节点(例如:接入路由器)。其中,所述其它缓存网络节点是指所述请求在到达所述缓存网络节点之前所经过的节点。
206:如果未命中所述内容,则更新本地缓存对所述内容的命中率,将所述请求进行以下处理后向所述原始内容提供者发送:在所述请求中携带所述缓存网络节点对所述内容的命中率信息。
可选的,在本实施例的一种实现方式中,向所述原始内容提供者发送上述处理后的请求包括:
所述缓存网络节点根据所述请求中携带的内容获取路径信息确定下一跳(例如,采用源路由技术时);或者,
所述缓存网络节点计算到所述原始内容提供者的至少两条转发路径,根据各转发路径上的链路代价以及各转发路径上的网络节点对所述内容的缓存命中率确定一条内容获取路径,根据确定的内容获取路径确定下一跳(例如,采用隧道技术时)。具体的计算方法与图1所示实施例中的第一网络节点计算内容获取路径的方法相同,此处不赘述。
本实施例所提供的内容请求处理方法,在判断本地缓存是否命中所述内容的同时,相应的进行发送或响应,并在发送的请求和响应的内容数据分组中携带当前网络节点对所述内容的命中率信息,以便需要进行路由计算的网络节点(例如:第一网络节点)及时更新相应的命中率信息,从而为本发明提供的确定内容获取路径的方法提供了计算基础。
可选的,在本实施例的一种实现方式中,在未命中所述内容的情况下,所述方法还包括:
208:所述缓存网络节点接收由命中所述内容的缓存网络节点生成的,或者由所述原始内容提供者生成的内容数据分组,所述内容数据分组携带所述请求所经过的所有缓存网络节点对所述内容的命中率信息。
210:进行内容数据分组转发处理,包括:
第一可能:向所述用户发送所述内容数据分组;或,
第二可能:提取所述内容数据分组中的命中率信息,更新本地保存的相应网络节点对所述内容的命中率信息,并向所述用户发送所述内容数据分组。其中,所述第二可能适用于缓存网络节点需要进行或可能需要进行路由计算的场景。
下面示例性列举几个应用场景对本发明进行更为详细的说明。
图3是本发明一种实施例所使用的网络拓扑示意图,参照图3,在本实施例中:网络包括10个路由器,16条链路;链路上的数值是各条链路的链路代价(例如:可以是链路的权重、收费或拥塞程度等指标),本实施例将链路权重值作为计算路由的链路代价;有2个用户连接到接入路由器R1,原始内容提供者和路由器R6相连;各个路由器都配置有缓存,由于缓存容量有限,各个缓存设备分别负责缓存所有内容的一部分;对同一内容名,用多个哈希函数进行多次哈希计算得到应该负责缓存该内容的节点编号(本实施例中采用2个哈希函数);各个节点对本地应该缓存的内容采用最少频率使用(Least Frequently Used,LFU)的原则来进行替换;各个节点负责统计和记录本地缓存中各个内容的命中率。
【具体实现方式1】
步骤1:用户1发送请求分组,请求分组中携带内容1的名称、原始内容提供者的IP地址和用户1的IP地址。
步骤2:R1接收到用户1的请求后,解析请求,根据原始内容提供者的地址计算到原始内容提供者的多条路径。参照图4,图4为多路径信息,默认计算3条路径,该默认值可修改。多条路径的计算方法是首先分别为R1的各个出链路计算通过该出链路的最短路径,如果出链路数量小于3,则计算经过某条出链路的次短路,直到满足所需多路径的数量。
步骤3:R1分别为每条路径计算代价,计算公式如图1所示实施例中所述。
此时是R1第一次接收到对内容1的请求,R1进行两次哈希计算得到R5和R10负责缓存内容1,但没有这两个缓存的命中率信息,因此采用预设的默认值50%命中率计算,得到各条路径的代价分别为(在图4和5中,粗曲线表示转发路径,细实线表示拓扑关系):
路径①C=2363(没有缓存,且为最短路)
路径②C=50%×1589+50%×2407=1998
路径③C=50%×1300+50%×(1300+50%×895+50%×1713)=1952
路径③的代价的详细计算解释如下:
路径③一共有四个节点,其中,节点2(R10)和节点3(R5)都有缓存,节点1(R1)是用户1的接入路由器,节点4(R6)是内容提供者的接入路由器;
C=C1,4=Φ2R2P1,2+(1–Φ2R2)(P1,2+C2,4),其中,
C2,4=Φ3R3P2,3+(1–Φ3R3)(P2,3+C3,4);
C3,4=Φ4R4P3,4+(1–Φ4R4)(P3,4+C4,4);
因为节点4不负责缓存,所以Φ4=0;而C4,4=0,故C3,4=P3,4=818;
节点3负责缓存,故Φ3=1,通过查询得到R3=50%,故C2,4=50%×895+50%×(895+818)=1304;
节点2负责缓存,故Φ2=1,通过查询得到R2=50%,故C=C1,4=Φ2R2P1,2+(1–Φ2R2)(P1,2+C2,4)=1×50%×1300+(1–1×50%)×(1300+1304)=1952。
路径③的代价最小,故选取路径③作为内容获取路径。
步骤4:R1采用源路由的方式在IP选项中携带路径③的信息,记录R5和R10的信息(包括:R5和R10的IP地址)。
步骤5:R10接收到请求后,提取内容1的名称,由于是本地缓存负责的内容,因此查询本地缓存。本地没有缓存内容1,则更新内容1在本地缓存的命中率,并将内容1在本地缓存的命中率40%携带在请求分组的IP选项中,然后根据源路由将请求分组转发给R5。
步骤6:R5接收到请求后,提取内容1的名称,由于是本地缓存负责的内容,因此查询本地缓存。本地缓存有内容1,则更新内容1在本地缓存的命中率,并生成内容数据分组。将内容1在本地缓存的命中率60%和从请求分组中提取的命中率信息(即内容1在其他缓存的命中率信息)一并携带在内容数据分组的IP选项中,发送给用户。例如:IP选项中可以包含如下信息:
Option type(8bit) | Option length(8bit) |
R10 | 40 |
R5 | 60 |
步骤7:R1接收到内容数据分组后,提取命中率信息,更新本地缓存的命中率信息表(示例性的,如下表),然后将内容数据分组发送给用户1。
内容1名称 | 缓存1 | 命中率 | 缓存2 | 命中率 |
ABCD | R10 | 40 | R5 | 60 |
【具体实现方式2】
在用户1请求内容1之后,用户2对内容1进行请求,包括:
步骤1:用户2发送请求分组,请求分组中携带内容1的名称,以及原始内容提供者的IP地址和用户2的IP地址。
步骤2:R1接收到用户2的请求后,解析请求,根据原始内容提供者的地址计算到原始内容提供者的多条路径。
步骤3:R1分别为每条路径计算代价,此次根据R1记录的网络中所有缓存的命中率信息,R5的命中率为60%,R10的命中率为40%,得到各条路径的代价分别为:
路径①C=2363(没有缓存,且为最短路)
路径②C=60%×1589+40%×2407=1916.2
路径③C=40%×1300+60%×(1300+60%×895+40%×1713)=2033.32
路径②的代价最小,因此选择路径②作为内容获取路径。
步骤4:R1采用源路由的方式在请求分组的IP选项中携带路径②的信息,记录R5的地址(或者同时记录R4和R5的地址)。
步骤5:R5收到请求后,提取内容1的名称,由于是本地缓存负责的内容因此查询本地缓存。本地缓存有内容1,则更新内容1在本地缓存的命中率为62%并生成内容数据分组,将内容1在本地缓存的命中率信息携带在内容数据分组的IP选项中向用户2发送。
步骤6:R1接收到内容数据分组后,提取其中的命中率信息,更新本地缓存命中率信息表,然后将内容数据分组发送给用户2。
【具体实现方式3】
本实现方式的场景与具体实现方式1的场景一致,但采用的是由中间缓存路由器重新计算内容获取路径的方法而不是采用源路由方法。本实现方式需要各个缓存路由器如同接入路由器一样记录所有缓存路由器中内容的命中率。
步骤1、2和3与实施例1中的完全一致(此处不赘述),计算后选择路径3,下一跳的缓存路由器为R10。
步骤4:R1重新封装所述请求的IP分组,目的地址为R10。
步骤5:R10接收到分组后,进行解封装,从请求中提取内容1的名称,由于是本地缓存负责的内容因此查询本地缓存。本地没有缓存内容1,则更新内容1在本地缓存的命中率信息。
步骤6:R10重新计算到原始内容提供者的路径(如图5所示),分别为每条路径计算代价,此次根据R10记录的网络中所有缓存的命中率信息表,R5的命中率为50%。得到各条路径的代价分别为:
路径①C=50%×895+50%×(985+818)=1349(有缓存,且为最短路)
路径②C=3663(无缓存)
路径③C=4857(无缓存)
路径①的代价最小,因此选择路径①
步骤7:R10对请求分组进行重新封装,以R5为目的地址,并将内容1在本地缓存的命中率40%携带在IP选项中。
步骤8:R5收到分组后进行解封装,提取请求中的内容名称,由于是本地缓存负责的内容因此查询本地缓存。本地缓存有内容1,则更新内容1在本地缓存的命中率为60%并生成内容数据分组。将内容1在本地缓存的命中率信息和从请求分组中提取的命中率信息(即:内容1在其他缓存的命中率信息)一并携带在IP选项中向用户1发送。
步骤9:R1接收到内容数据分组后,提取命中率信息,更新本地缓存命中率信息表,然后将内容数据分组发送给用户1(由于返回采用的是最短路,即经过R4到R1,故R10无法得到更新的信息)。
图6A是根据本发明一种实施例的确定内容获取路径的网络节点的方块示意图,参照图6A,网络节点60包括:
第一接收单元602,用于接收来自用户的请求,所述请求用于请求原始内容提供者提供内容,所述请求携带所述内容的名称、所述原始内容提供者的网络地址和所述用户的网络地址。
计算单元604,用于计算到所述原始内容提供者的至少两条转发路径,根据各转发路径上的链路代价以及各转发路径上的网络节点对所述内容的缓存命中率确定一条内容获取路径。
转发单元606,用于根据所述内容获取路径向下一个网络节点发送所述请求,以便所述下一个网络节点转发或响应所述请求。
可选的,在本实施例的一种实现方式中,参照图6B,网络节点60还包括获取单元603,用于获取所述各转发路径上的网络节点对所述内容的命中率。当然,获取单元603也可以作为计算单元604的子单元。示例性的,获取单元603包括:
存储模块6031,用于保存网络中各个网络节点的缓存命中率信息;
查询模块6032,用于通过所述存储模块查询各转发路径上的网络节点对所述内容的缓存命中率,或,用于通过所述存储模块查询各转发路径上的缓存网络节点对所述内容的缓存命中率,所述缓存网络节点是负责缓存所述内容的网络节点。
进一步可选的,获取单元603还可以包括:
预设模块6033,该模块只有在存在至少一个网络节点,所述至少一个网络节点对所述内容的缓存命中率无法通过所述查询模块确定时被调用,该预设模块6033用于根据所述至少一个网络节点的整体命中率情况预设所述至少一个网络节点对所述内容的缓存命中率。
可选的,在本实施例的一种实现方式中,参照图6C,计算单元604包括:
计算模块6044,用于分别计算各转发路径的路径代价C=C1,n(对于计算公式的详细描述请参照图1所示实施例中的描述);
确定模块6045,用于选取所述至少两条转发路径中路径代价最小的一条转发路径作为所述内容获取路径。
图7是根据本发明一种实施例的确定内容获取路径的网络节点的方块示意图,参照图7,网络节点70包括第一接收单元602、计算单元604、转发单元606(对于第一接收单元602、计算单元604、转发单元606的说明请参照图6所示实施例中的相应说明)以及:
第二接收单元702,用于接收由命中所述内容的缓存网络节点生成的,或者由所述原始内容提供者生成的内容数据分组,所述内容数据分组携带所述请求所经过的所有缓存网络节点对所述内容的命中率信息;
更新单元704,用于提取所述内容数据分组中的命中率信息,更新本地保存的相应网络节点对所述内容的命中率信息。
当然,网络节点70也可以包括获取单元603,或者将获取单元603作为计算单元604的子单元。
本领域技术人员应当理解,图6A和图7所示实施例中的网络节点可以用于实现方法实施例中的第一网络节点的功能,对于各个单元/模块的详细说明请参照方法实施例中的相应说明,此处不再赘述。
图8A是根据本发明一种实施例的缓存网络节点的方块示意图,参照图8A,网络节点80包括:
第一接收单元802,用于接收来自用户的请求,所述请求用于请求原始内容提供者提供内容,所述请求携带所述内容的名称、所述原始内容提供者的网络地址和所述用户的网络地址,所述缓存网络节点是负责缓存所述内容的网络节点。
第一处理单元804,用于检查本地缓存并根据本地缓存对所述内容的命中情况进行处理,包括:
如果命中所述内容,则更新本地缓存对所述内容的命中率,生成内容数据分组,并向所述用户发送所述内容数据分组作为对所述请求的响应,其中,所述内容数据分组携带所述缓存网络节点对所述内容的命中率信息,或者,
如果未命中所述内容,则更新本地缓存对所述内容的命中率,将所述请求进行以下处理后向所述原始内容提供者发送:在所述请求中携带所述缓存网络节点对所述内容的命中率信息。
可选的,在本实施例的一种实现方式中(适用于命中所述内容的场景),参照图8B,第一处理单元804包括:
提取模块8041,用于在所述缓存网络节点80命中所述内容,并且所述请求还携带有其它缓存网络节点对所述内容的命中率信息的情况下,提取这些命中率信息,其中,所述其它缓存网络节点是指所述请求在到达所述网络节点80之前所经过的节点。
信息插入模块8042,用于将所述提取模块8041提取的命中率信息携带在所述内容数据分组中。
可选的,在本实施例的一种实现方式中(适用于未命中所述内容的场景),参照图8C,第一处理单元804包括:
发送模块8043,用于在所述缓存网络节点80未命中所述内容的情况下,根据所述请求中携带的内容获取路径信息确定下一跳,或者,
用于在所述缓存网络节点80未命中所述内容的情况下,计算到所述原始内容提供者的至少两条转发路径,根据各转发路径上的链路代价以及各转发路径上的网络节点对所述内容的缓存命中率确定一条内容获取路径,根据确定的内容获取路径确定下一跳。
图9是根据本发明一种实施例的缓存网络节点的方块示意图,参照图9,网络节点90包括:
第一接收单元902,功能与图8所示实施例中的第一接收单元802相同。
第一处理单元904,用于检查本地缓存并根据本地缓存对所述内容的命中情况进行处理,如果未命中,则更新本地缓存对所述内容的命中率,将所述请求进行以下处理后向所述原始内容提供者发送:在所述请求中携带所述缓存网络节点90对所述内容的命中率信息。
第二接收单元906,用于接收由命中所述内容的缓存网络节点生成的,或者由所述原始内容提供者生成的内容数据分组,所述内容数据分组携带所述请求所经过的所有缓存网络节点对所述内容的命中率信息。
第二处理单元908,用于向所述用户发送所述内容数据分组,或者,
用于提取所述内容数据分组中的命中率信息,进而更新本地保存的相应网络节点对所述内容的命中率信息,并向所述用户发送所述内容数据分组。
可选的,在本实施例的一种实现方式中,第一处理单元904可以包括图8C所示实现方式中的发送模块8043。
本领域技术人员应当理解,图8A和图9所示缓存网络节点可以用于实现方法实施例中的缓存网络节点的功能,对于各个单元/模块的详细说明请参照方法实施例中的相应说明,此处不再赘述。
图10是根据本发明一种实施例的内容获取系统的方块示意图,参照图10,所示系统包括:第一网络节点和至少一个缓存网络节点。其中,所述第一网络节点接收来自用户的用于请求原始内容提供者提供内容的请求,所述第一网络节点确定内容获取路径以转发所述请求,所述请求在转发过程中所经由的缓存网络节点会判断本地缓存是否命中所述内容,存在命中和未命中两种可能,具体的,对于所述第一网络节点和所述缓存网络节点的描述以及二者之间通信关系的描述,请参照本发明各方法、装置实施例中的相应说明,此处不再赘述。
可选的,在本实施例的一种实现方式中,所述至少一个缓存网络节点均未命中所述内容,此时,所述系统还包括原始内容提供者,以便由原始内容提供者向用户返回所述内容,以及返回所述至少一个缓存网络节点对所述内容的缓存命中率信息。
图11是根据本发明一种实施例的网络节点的结构示意图,参照图11,网络节点110包括接收机111、处理器112、发射机113和存储器114,其中,所述处理器112与所述接收机111、存储器114和发射机113连接,所述存储器114存储有各种协议、程序或应用以由处理器112调用从而实现以下功能;
通过所述接收机111接收来自用户的请求,所述请求用于请求原始内容提供者提供内容,所述请求携带所述内容的名称、所述原始内容提供者的网络地址和所述用户的网络地址;
计算到所述原始内容提供者的至少两条转发路径,根据各转发路径上的链路代价以及各转发路径上的网络节点对所述内容的缓存命中率确定一条内容获取路径;
通过所述发射机113,根据所述内容获取路径向下一个网络节点转发所述请求,以便所述下一个网络节点转发或响应所述请求。
可选的,在本实施例的一种实现方式中,所述存储器114保存有缓存命中率信息表,以便所述处理器112在所述缓存命中率信息表中查询各转发路径上的网络节点对所述内容的缓存命中率,或,在所述缓存命中率信息表中查询各转发路径上的缓存网络节点对所述内容的缓存命中率,所述缓存网络节点是负责缓存所述内容的网络节点;其中,可选的,如果存在至少一个网络节点,其对所述内容的缓存命中率无法通过查询所述缓存命中率信息表获得,则所述处理器112可以根据所述至少一个网络节点的整体命中率情况预设所述至少一个网络节点对所述内容的缓存命中率。
可选的,在本实施例的一种实现方式中,所述处理器112通过以下方式确定所述内容获取路径:分别计算各转发路径的路径代价C=C1,n(对于公式的详细说明如前文所述,此处不赘述);选取所述至少两条转发路径中路径代价最小的一条转发路径作为所述内容获取路径。
可选的,在本实施例的一种实现方式中,所述处理器112还通过所述接收机111接收由负责缓存所述内容且命中所述内容的网络节点(即:命中所述内容的缓存网络节点)生成的,或者由所述原始内容提供者生成的内容数据分组,所述内容数据分组携带所述请求所经过的所有缓存网络节点对所述内容的命中率信息;此时,所述处理器112还用于提取所述内容数据分组中的命中率信息,并更新所述存储器114中保存的相应网络节点对所述内容的命中率信息。
图12是根据本发明一种实施例的网络节点的方块示意图,参照图12,网络节点120具有缓存功能,其包括接收机121、处理器122、发射机123和存储器124,其中,所述处理器122与所述接收机121、存储器124和发射机123连接,所述存储器124存储有各种协议、程序或应用以由处理器122调用从而实现以下功能;
通过所述接收机121接收来自用户的请求,所述请求用于请求原始内容提供者提供内容,所述请求携带所述内容的名称、所述原始内容提供者的网络地址和所述用户的网络地址,所述网络节点120属于缓存网络节点,缓存网络节点是负责缓存所述内容的网络节点;
检查本地缓存(本地缓存可以设置在存储器124中,也可以是独立于存储器124而存在的缓存处理器),如果命中所述内容,则更新本地缓存对所述内容的命中率(命中率信息可以保存在所述存储器124中),生成内容数据分组,并通过所述发射机123向所述用户发送所述内容数据分组作为对所述请求的响应,其中,所述内容数据分组携带网络节点120对所述内容的命中率信息;或者,如果未命中所述内容,则更新本地缓存对所述内容的命中率,将所述请求进行以下处理后通过所述发射机123向所述原始内容提供者发送:在所述请求中携带网络节点120对所述内容的命中率信息。
可选的,在本实施例的一种实现方式中,所述处理器122还用于在命中所述内容、并且所述请求还携带有其它缓存网络节点对所述内容的命中率信息的情况下,提取这些命中率信息并将其携带在所述内容数据分组中,所述其它缓存网络节点是指所述请求在到达所述网络节点120之前所经过的缓存网络节点。
可选的,在本实施例的一种实现方式中,所述处理器122通过所述发射机123向所述原始内容提供者发送请求可以包括:
根据所述请求中携带的内容获取路径信息确定下一跳;或者,
计算到所述原始内容提供者的至少两条转发路径,根据各转发路径上的链路代价以及各转发路径上的网络节点对所述内容的缓存命中率确定一条内容获取路径,根据确定的内容获取路径确定下一跳。
可选的,在本实施例的一种实现方式中,所述处理器122还用于:
通过所述接收机121接收由命中所述内容的缓存网络节点生成的,或者由所述原始内容提供者生成的内容数据分组,所述内容数据分组携带所述请求在转发过程中所经过的所有缓存网络节点对所述内容的命中率信息;
通过所述发射机123向所述用户发送所述内容数据分组,或者,提取所述内容数据分组中的命中率信息,进而更新所述存储器124保存的相应网络节点对所述内容的命中率信息,再通过所述发射机123向所述用户发送所述内容数据分组。
对于本发明所提供的各个装置实施例的各个模块、单元或组件的详细的功能说明,请参照相应的方法实施例中的说明,说明书中不做赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (17)
1.一种确定内容获取路径的方法,其特征在于,包括:
第一网络节点接收来自用户的请求,所述请求用于请求原始内容提供者提供内容,所述请求携带所述内容的名称、所述原始内容提供者的网络地址和所述用户的网络地址;
计算到所述原始内容提供者的至少两条转发路径,根据各转发路径上的链路代价以及各转发路径上的网络节点对所述内容的缓存命中率确定一条内容获取路径;
根据所述内容获取路径向下一个网络节点发送所述请求,以便所述下一个网络节点转发或响应所述请求。
2.根据权利要求1所述的方法,其特征在于,还包括:
获取所述各转发路径上的网络节点对所述内容的缓存命中率;
所述各转发路径上的网络节点对所述内容的缓存命中率通过以下方式获取:
在本地保存的缓存命中率信息表中查询各转发路径上的网络节点对所述内容的缓存命中率,或,在所述缓存命中率信息表中查询各转发路径上的缓存网络节点对所述内容的缓存命中率,所述缓存网络节点是负责缓存所述内容的网络节点,或者,
在查询过程中,如果存在至少一个网络节点,其对所述内容的缓存命中率无法通过查询所述缓存命中率信息表获得,则根据所述至少一个网络节点的整体命中率情况预设所述至少一个网络节点对所述内容的缓存命中率。
3.根据权利要求1或2所述的方法,其特征在于,所述根据各转发路径上的链路代价以及各转发路径上的网络节点对所述内容的缓存命中率确定一条内容获取路径包括:
分别计算各转发路径的路径代价C=C1,n,其中,
Ci,n=Φi+1Ri+1Pi,i+1+(1–Φi+1Ri+1)(Pi,i+1+Ci+1,n),(i<n),
所述n为当前进行计算的转发路径上的网络节点数目;当所述n个网络节点中的第i+1个网络节点负责缓存所述内容时,所述Φi+1=1,否则,所述Φi+1=0;所述Ri+1表示所述第i+1个网络节点对所述内容的缓存命中率;所述Pi,i+1表示所述n个网络节点中的第i个网络节点到第i+1个网络节点的链路代价;所述Ci,n表示从所述n个网络节点中的第i个网络节点到第n个网络节点的路径代价;
选取所述至少两条转发路径中路径代价最小的一条转发路径作为所述内容获取路径。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
接收由命中所述内容的缓存网络节点生成的,或者由所述原始内容提供者生成的内容数据分组,所述内容数据分组携带所述请求所经过的所有缓存网络节点对所述内容的命中率信息;
提取所述内容数据分组中的命中率信息,更新本地保存的相应网络节点对所述内容的命中率信息。
5.一种请求处理方法,其特征在于,包括:
缓存网络节点接收来自用户的请求,所述请求用于请求原始内容提供者提供内容,所述请求携带所述内容的名称、所述原始内容提供者的网络地址和所述用户的网络地址,所述缓存网络节点是负责缓存所述内容的网络节点;
检查本地缓存,如果命中所述内容,则更新本地缓存对所述内容的命中率,生成内容数据分组,并向所述用户发送所述内容数据分组作为对所述请求的响应,其中,所述内容数据分组携带所述缓存网络节点对所述内容的命中率信息,或者,
检查本地缓存,如果未命中所述内容,则更新本地缓存对所述内容的命中率,将所述请求进行以下处理后向所述原始内容提供者发送:在所述请求中携带所述缓存网络节点对所述内容的命中率信息。
6.根据权利要求5所述的方法,其特征在于,在所述缓存网络节点命中所述内容的情况下,如果所述请求还携带有其它缓存网络节点对所述内容的命中率信息,则所述缓存网络节点提取这些命中率信息并将这些命中率信息携带在所述内容数据分组中,其中,所述其它缓存网络节点是指所述请求在到达所述缓存网络节点之前所经过的节点。
7.根据权利要求5所述的方法,其特征在于,在所述缓存网络节点未命中所述内容的情况下,所述将所述请求进行以下处理后向所述原始内容提供者发送包括:
所述缓存网络节点根据所述请求中携带的内容获取路径信息确定下一跳;或者,
所述缓存网络节点计算到所述原始内容提供者的至少两条转发路径,根据各转发路径上的链路代价以及各转发路径上的网络节点对所述内容的缓存命中率确定一条内容获取路径,根据确定的内容获取路径确定下一跳。
8.根据权利要求5或7所述的方法,其特征在于,在所述缓存网络节点未命中所述内容的情况下,所述方法还包括:
所述缓存网络节点接收由命中所述内容的缓存网络节点生成的,或者由所述原始内容提供者生成的内容数据分组,所述内容数据分组携带所述请求所经过的所有缓存网络节点对所述内容的命中率信息;
向所述用户发送所述内容数据分组,或者,
提取所述内容数据分组中的命中率信息,更新本地保存的相应网络节点对所述内容的命中率信息,并向所述用户发送所述内容数据分组。
9.一种确定内容获取路径的网络节点,其特征在于,包括:
第一接收单元,用于接收来自用户的请求,所述请求用于请求原始内容提供者提供内容,所述请求携带所述内容的名称、所述原始内容提供者的网络地址和所述用户的网络地址;
计算单元,用于计算到所述原始内容提供者的至少两条转发路径,根据各转发路径上的链路代价以及各转发路径上的网络节点对所述内容的缓存命中率确定一条内容获取路径;
转发单元,用于根据所述内容获取路径向下一个网络节点发送所述请求,以便所述下一个网络节点转发或响应所述请求。
10.根据权利要求9所述的网络节点,其特征在于,
所述网络节点还包括获取单元,用于获取所述各转发路径上的网络节点对所述内容的命中率;
所述获取单元包括存储模块和查询模块,或者包括所述存储模块、所述查询模块和预设模块,其中,
所述存储模块,用于保存网络中各个网络节点的缓存命中率信息,
所述查询模块,用于通过所述存储模块查询各转发路径上的网络节点对所述内容的缓存命中率,或,用于通过所述存储模块查询各转发路径上的缓存网络节点对所述内容的缓存命中率,所述缓存网络节点是负责缓存所述内容的网络节点,
所述预设模块,只有在存在至少一个网络节点,且所述至少一个网络节点对所述内容的缓存命中率无法通过所述查询模块确定时被调用,该预设模块用于根据所述至少一个网络节点的整体命中率情况预设所述至少一个网络节点对所述内容的缓存命中率。
11.根据权利要求9或10所述的网络节点,其特征在于,所述计算单元包括:
计算模块,用于分别计算各转发路径的路径代价C=C1,n,其中,
Ci,n=Φi+1Ri+1Pi,i+1+(1–Φi+1Ri+1)(Pi,i+1+Ci+1,n),(i<n),
所述n为当前进行计算的转发路径上的网络节点数目;当所述n个网络节点中的第i+1个网络节点负责缓存所述内容时,所述Φi+1=1,否则,所述Φi+1=0;所述Ri+1表示所述第i+1个网络节点对所述内容的缓存命中率;所述Pi,i+1表示所述n个网络节点中的第i个网络节点到第i+1个网络节点的链路代价;所述Ci,n表示从所述n个网络节点中的第i个网络节点到第n个网络节点的路径代价;
确定模块,用于选取所述至少两条转发路径中路径代价最小的一条转发路径作为所述内容获取路径。
12.根据权利要求10或11所述的网络节点,其特征在于,所述网络节点还包括:
第二接收单元,用于接收由命中所述内容的缓存网络节点生成的,或者由所述原始内容提供者生成的内容数据分组,所述内容数据分组携带所述请求所经过的所有缓存网络节点对所述内容的命中率信息;
更新单元,用于提取所述内容数据分组中的命中率信息,更新本地保存的相应网络节点对所述内容的命中率信息。
13.一种缓存网络节点,其特征在于,包括:
第一接收单元,用于接收来自用户的请求,所述请求用于请求原始内容提供者提供内容,所述请求携带所述内容的名称、所述原始内容提供者的网络地址和所述用户的网络地址,所述缓存网络节点是负责缓存所述内容的网络节点;
第一处理单元,用于检查本地缓存并根据本地缓存对所述内容的命中情况进行处理,包括:
如果命中所述内容,则更新本地缓存对所述内容的命中率,生成内容数据分组,并向所述用户发送所述内容数据分组作为对所述请求的响应,其中,所述内容数据分组携带所述缓存网络节点对所述内容的命中率信息,或者,
如果未命中所述内容,则更新本地缓存对所述内容的命中率,将所述请求进行以下处理后向所述原始内容提供者发送:在所述请求中携带所述缓存网络节点对所述内容的命中率信息。
14.根据权利要求13所述的缓存网络节点,其特征在于,所述第一处理单元包括:
提取模块,用于在所述缓存网络节点命中所述内容,并且所述请求还携带有其它缓存网络节点对所述内容的命中率信息的情况下,提取这些命中率信息,其中,所述其它缓存网络节点是指所述请求在到达所述网络节点之前所经过的节点;
信息插入模块,用于将所述提取模块提取的命中率信息携带在所述内容数据分组中。
15.根据权利要求13所述的缓存网络节点,其特征在于,所述第一处理单元包括:
发送模块,用于在所述缓存网络节点未命中所述内容的情况下,根据所述请求中携带的内容获取路径信息确定下一跳,或者,
用于在所述缓存网络节点未命中所述内容的情况下,计算到所述原始内容提供者的至少两条转发路径,根据各转发路径上的链路代价以及各转发路径上的网络节点对所述内容的缓存命中率确定一条内容获取路径,根据确定的内容获取路径确定下一跳。
16.根据权利要求14或15所述的缓存网络节点,其特征在于,所述缓存网络节点还包括:
第二接收单元,用于在所述缓存网络节点未命中所述内容的情况下,接收由命中所述内容的缓存网络节点生成的,或者由所述原始内容提供者生成的内容数据分组,所述内容数据分组携带所述请求所经过的所有缓存网络节点对所述内容的命中率信息;
第二处理单元,用于向所述用户发送所述内容数据分组,或者,
用于提取所述内容数据分组中的命中率信息,更新本地保存的相应网络节点对所述内容的命中率信息,并向所述用户发送所述内容数据分组。
17.一种内容获取系统,其特征在于,所述系统包括:如权利要求9-12中任一项所述的基于缓存命中率确定内容获取路径的网络节点,和如权利要求13-16中任一项所述的具有缓存功能的网络节点。
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310329105.7A CN104348722B (zh) | 2013-07-31 | 2013-07-31 | 确定内容获取路径、请求处理的方法、装置和系统 |
EP14831652.4A EP3021537B1 (en) | 2013-07-31 | 2014-07-09 | Method, device and system for determining content acquisition path and processing request |
EP19159132.0A EP3567813B1 (en) | 2013-07-31 | 2014-07-09 | Method, apparatus and system for determining content acquisition path and processing request |
PCT/CN2014/081869 WO2015014196A1 (zh) | 2013-07-31 | 2014-07-09 | 确定内容获取路径、请求处理的方法、装置和系统 |
US15/011,106 US10103986B2 (en) | 2013-07-31 | 2016-01-29 | Method, apparatus and system for determining content acquisition path and processing request |
US16/140,059 US10587513B2 (en) | 2013-07-31 | 2018-09-24 | Method, apparatus and system for determining content acquisition path and processing request |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310329105.7A CN104348722B (zh) | 2013-07-31 | 2013-07-31 | 确定内容获取路径、请求处理的方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104348722A true CN104348722A (zh) | 2015-02-11 |
CN104348722B CN104348722B (zh) | 2017-12-12 |
Family
ID=52430966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310329105.7A Active CN104348722B (zh) | 2013-07-31 | 2013-07-31 | 确定内容获取路径、请求处理的方法、装置和系统 |
Country Status (4)
Country | Link |
---|---|
US (2) | US10103986B2 (zh) |
EP (2) | EP3021537B1 (zh) |
CN (1) | CN104348722B (zh) |
WO (1) | WO2015014196A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104809225A (zh) * | 2015-05-06 | 2015-07-29 | 泰康人寿保险股份有限公司 | 链式信息传播追踪管理系统及方法 |
CN105049326A (zh) * | 2015-06-19 | 2015-11-11 | 清华大学深圳研究生院 | 一种边缘网络区域中社交内容缓存方法 |
CN105718520A (zh) * | 2016-01-15 | 2016-06-29 | 深圳市八零年代网络科技有限公司 | 一种互联网传播轨迹追踪的方法、装置及系统 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101629106B1 (ko) * | 2014-12-17 | 2016-06-09 | 경희대학교 산학협력단 | 컨텐츠 기반 네트워크에서 요청 컨텐츠의 해쉬값에 따라 컨텐츠를 송신하는 방법 |
US20180006937A1 (en) * | 2016-06-30 | 2018-01-04 | Fujitsu Limited | Packet forwarding in information centric networking networks |
US10255185B2 (en) * | 2017-03-04 | 2019-04-09 | International Business Machines Corporation | Cache management in a stream computing environment that uses a set of many-core hardware processors |
US10536368B2 (en) * | 2017-05-23 | 2020-01-14 | Fujitsu Limited | Network-aware routing in information centric networking |
EP3695582A1 (en) * | 2017-10-13 | 2020-08-19 | Northeastern University | Network and method for delivering content |
WO2021003422A1 (en) | 2019-07-02 | 2021-01-07 | Northeastern University | Network and method for servicing a computation request |
CN110505300A (zh) * | 2019-08-23 | 2019-11-26 | 中山大学 | 一种ip网络与命名数据网络混合的新型链式代理方法 |
IT202000017023A1 (it) * | 2020-07-14 | 2022-01-14 | Mainstreaming S P A | Metodo per distribuire file attraverso una content delivery network basato anche su algoritmi di intelligenza artificiale, sistema telematico e server che consentono di implementarlo |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741715A (zh) * | 2008-11-20 | 2010-06-16 | 华为技术有限公司 | 发送消息的方法、接入路由节点设备和数据缓存系统 |
WO2010140935A1 (en) * | 2009-06-03 | 2010-12-09 | Telefonaktiebolaget L M Ericsson (Publ) | Method and node for finding content in a content distribution network, and method for creating a virtual representation of a content distribution network |
CN102118434A (zh) * | 2010-12-28 | 2011-07-06 | 华为技术有限公司 | 数据包传输方法和设备 |
CN102143199A (zh) * | 2010-10-19 | 2011-08-03 | 华为技术有限公司 | 获取内容的方法、节点及内容网络 |
CN102685177A (zh) * | 2011-03-18 | 2012-09-19 | 丛林网络公司 | 资源的透明代理缓存 |
CN102685179A (zh) * | 2011-03-18 | 2012-09-19 | 丛林网络公司 | 模块化透明代理缓存 |
WO2013086707A1 (zh) * | 2011-12-14 | 2013-06-20 | 华为技术有限公司 | 内容分发网络cdn路由方法、设备和系统 |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658463B1 (en) * | 1999-06-10 | 2003-12-02 | Hughes Electronics Corporation | Satellite multicast performance enhancing multicast HTTP proxy system and method |
US20020073167A1 (en) * | 1999-12-08 | 2002-06-13 | Powell Kyle E. | Internet content delivery acceleration system employing a hybrid content selection scheme |
US7552235B2 (en) * | 2003-12-11 | 2009-06-23 | International Business Machines Corporation | Autonomic selection of a request routing policy based upon cache effectiveness |
US7688753B1 (en) * | 2007-12-28 | 2010-03-30 | Emc Corporation | Selection of a data path based on one or more performance characteristics of a computer system |
US8667175B2 (en) | 2008-03-13 | 2014-03-04 | Cisco Technology, Inc. | Server selection for routing content to a client using application layer redirection |
US8793349B2 (en) * | 2010-01-14 | 2014-07-29 | Beaumaris Networks Inc. | Management and use of channel configuration information |
US20120257560A1 (en) * | 2011-04-07 | 2012-10-11 | Sudharshan Srinivasan | Cellular data bandwidth optimization using social networking concepts |
CN102790809B (zh) * | 2011-05-16 | 2016-09-28 | 北京奇虎科技有限公司 | 域名系统解析方法、装置及客户端 |
CN102204218B (zh) | 2011-05-31 | 2015-01-21 | 华为技术有限公司 | 数据处理方法、缓存节点、协作控制器及系统 |
CN102316390B (zh) * | 2011-09-07 | 2018-03-02 | 中兴通讯股份有限公司 | 利用虚拟拓扑提高约束条件下路径计算效率的方法及装置 |
CN102647357B (zh) | 2012-04-20 | 2016-04-13 | 中兴通讯股份有限公司 | 一种处理内容路由方法及装置 |
KR101330052B1 (ko) * | 2012-06-01 | 2013-11-15 | 에스케이텔레콤 주식회사 | 적응형 컨텐츠 전송 방식을 지원하는 컨텐츠 캐싱 서비스 제공 방법 및 이를 위한 로컬 캐싱 장치 |
US20140157324A1 (en) * | 2012-11-30 | 2014-06-05 | Comcast Cable Communications, Llc | Content Identification and Management |
-
2013
- 2013-07-31 CN CN201310329105.7A patent/CN104348722B/zh active Active
-
2014
- 2014-07-09 EP EP14831652.4A patent/EP3021537B1/en active Active
- 2014-07-09 EP EP19159132.0A patent/EP3567813B1/en active Active
- 2014-07-09 WO PCT/CN2014/081869 patent/WO2015014196A1/zh active Application Filing
-
2016
- 2016-01-29 US US15/011,106 patent/US10103986B2/en active Active
-
2018
- 2018-09-24 US US16/140,059 patent/US10587513B2/en not_active Expired - Fee Related
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101741715A (zh) * | 2008-11-20 | 2010-06-16 | 华为技术有限公司 | 发送消息的方法、接入路由节点设备和数据缓存系统 |
WO2010140935A1 (en) * | 2009-06-03 | 2010-12-09 | Telefonaktiebolaget L M Ericsson (Publ) | Method and node for finding content in a content distribution network, and method for creating a virtual representation of a content distribution network |
CN102143199A (zh) * | 2010-10-19 | 2011-08-03 | 华为技术有限公司 | 获取内容的方法、节点及内容网络 |
CN102118434A (zh) * | 2010-12-28 | 2011-07-06 | 华为技术有限公司 | 数据包传输方法和设备 |
CN102685177A (zh) * | 2011-03-18 | 2012-09-19 | 丛林网络公司 | 资源的透明代理缓存 |
CN102685179A (zh) * | 2011-03-18 | 2012-09-19 | 丛林网络公司 | 模块化透明代理缓存 |
WO2013086707A1 (zh) * | 2011-12-14 | 2013-06-20 | 华为技术有限公司 | 内容分发网络cdn路由方法、设备和系统 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104809225A (zh) * | 2015-05-06 | 2015-07-29 | 泰康人寿保险股份有限公司 | 链式信息传播追踪管理系统及方法 |
CN105049326A (zh) * | 2015-06-19 | 2015-11-11 | 清华大学深圳研究生院 | 一种边缘网络区域中社交内容缓存方法 |
CN105049326B (zh) * | 2015-06-19 | 2017-12-29 | 清华大学深圳研究生院 | 一种边缘网络区域中社交内容缓存方法 |
CN105718520A (zh) * | 2016-01-15 | 2016-06-29 | 深圳市八零年代网络科技有限公司 | 一种互联网传播轨迹追踪的方法、装置及系统 |
Also Published As
Publication number | Publication date |
---|---|
US20160149810A1 (en) | 2016-05-26 |
EP3567813B1 (en) | 2022-10-26 |
CN104348722B (zh) | 2017-12-12 |
US10587513B2 (en) | 2020-03-10 |
EP3021537A4 (en) | 2016-08-24 |
US10103986B2 (en) | 2018-10-16 |
US20190028390A1 (en) | 2019-01-24 |
EP3021537A1 (en) | 2016-05-18 |
EP3021537B1 (en) | 2019-09-11 |
WO2015014196A1 (zh) | 2015-02-05 |
EP3567813A1 (en) | 2019-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104348722A (zh) | 确定内容获取路径、请求处理的方法、装置和系统 | |
CN102318288B (zh) | 节点排序与选取方法、装置及系统 | |
JP6598771B2 (ja) | データ・ネットワークにおける分散データ送信 | |
KR101959970B1 (ko) | 컨텐츠 전송 서비스 방법, 이를 위한 캐시 장치 | |
CN109155760A (zh) | 利用固定报头大小进行分组路径记录 | |
CN104184663A (zh) | 基于软件定义网络和一体化标识网络的通信方法和装置 | |
CN103312749B (zh) | 一种应用层流量优化服务器的发现方法、设备及系统 | |
CN104144123A (zh) | 访问互联网的方法、系统与路由型网关装置 | |
CN103618801A (zh) | 一种p2p资源共享的方法、设备及系统 | |
CN104618243A (zh) | 路由方法、装置及系统、网关调度方法及装置 | |
CN112437168A (zh) | 一种内网穿透系统 | |
CN104022956A (zh) | 一种名址分离协议网络中的数据报文处理方法和装置 | |
CN102394944A (zh) | 一种Web访问中的IP地址库修正方法和设备 | |
CN101808107A (zh) | 一种存储设备与用户二层互通的方法、装置及系统 | |
CN105872093A (zh) | Cdn加速方法和系统 | |
CN104969521B (zh) | 数据发送处理方法及路由器 | |
CN111600929B (zh) | 传输线路探测方法、路由策略生成方法及代理服务器 | |
CN107948223A (zh) | 用于缓存系统的流量处理方法、服务策略设备和缓存系统 | |
CN105100300A (zh) | 网络地址转换nat的方法及装置 | |
CN102523313B (zh) | 一种数据旁路的标识方法和装置 | |
KR20160002154A (ko) | Ccn 이름 구성 방법과 ccn 이름 기반 라우팅 방법 및 장치 | |
KR100785812B1 (ko) | 단대단 QoS 데이터 전송 경로를 제공하는 방법 및 그장치 | |
US9185029B2 (en) | Apparatus and method for processing path management packet | |
CN112449024A (zh) | 一种nat模拟网关的内网穿透方法、设备、存储介质 | |
CN101616092B (zh) | 一种路由发现的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |