发明内容
本申请提供了数据缓存方法和装置,以避免先有数据内容缓存带来的技术问题。
本申请提供的技术方案包括:
一种数据缓存方法,该方法应用于运营商网络中的路由设备,包括:
向相邻路由设备通告本设备是否具有数据缓存能力的信息;
接收并记录相邻路由设备向本设备通告的是否具有数据缓存能力的信息;
接收到内容服务器针对任一用户的数据访问请求返回的数据内容时,确定所述数据内容应转发至的下一跳设备;
识别本设备是否记录了所述下一跳设备具有数据缓存能力的信息,
如果是,转发所述数据内容给下一跳设备;
如果否,在本设备为距离所述用户最近的边缘设备且本设备具有数据缓存能力时,对所述数据内容进行缓存,并转发所述数据内容给下一跳设备。
一种数据缓存装置,该装置应用于运营商网络中的路由设备,包括:
通告单元,用于向相邻路由设备通告本设备是否具有数据缓存能力的信息;
记录单元,用于接收并记录相邻路由设备向本设备通告的是否具有数据缓存能力的信息;
确定单元,用于接收到内容服务器针对任一用户的数据访问请求返回的数据内容时,确定所述数据内容应转发至的下一跳设备;
识别单元,用于识别所述记录单元是否记录了所述下一跳设备具有数据缓存能力的信息;
处理单元,用于在所述识别单元的识别结果为是时,转发所述数据内容给下一跳设备,以及用于在所述识别单元的识别结果为否时,在本设备为距离所述用户最近的边缘设备且本设备具有数据缓存能力时,对所述数据内容进行缓存,并转发所述数据内容给下一跳设备。
由以上技术方案可以看出,本发明中,通过相邻路由设备之间相互通告自身是否具有数据缓存能力的信息,当路由设备接收到内容服务器针对任一用户的数据访问请求返回的数据内容时,确定所述数据内容应转发至的下一跳设备,识别本设备是否记录了所述下一跳设备具有数据缓存能力的信息,如果是,转发所述数据内容给下一跳设备;如果否,在本设备为距离所述用户最近的边缘设备且本设备具有数据缓存能力时,对所述数据内容进行缓存,并转发所述数据内容给下一跳设备,这实现了把数据内容缓存在最接近用户的网络边缘设备上,以便该用户再访问同一数据内容时,直接从该最接近用户的网络边缘设备上获取即可,极大地提高了数据内容访问的速度和质量;
另外,本发明中,充分利用路由设备本身的数据缓存能力,无需购置专门的内容缓存其,节省投资;
还有,本发明中,路由设备根据路由协议和相互之间通告的信息实现内容缓存,无需DNS、专用缓存服务器的配合,简化网络部署。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
目前一些主流厂商的路由设备都集成有独立的开放应用平台(OAP)板卡,特别是部署在网络边缘的、且支持多业务的路由设备,其集成的OAP板卡的性能、功能已能够与一些中低端服务器相匹敌。基于此,本发明利用路由设备上的OAP板卡进行本地内容缓存,而无需部署专门的cache服务器。
下面对本发明提供的方法进行描述:
参见图2,图2为本发明提供的方法流程图。如图2所示,该方法应用于组网中的路由设备,包括以下步骤:
步骤201,路由设备向其相邻的路由设备通告本设备是否具有数据缓存能力的信息。
这里,基于路由设备一般都集成有独立的OAP板卡,而OAP板卡的性能足够路由设备本地缓存一些数据内容,基于此,本发明中,优选地,当路由设备集成了OAP板卡,则确定路由设备具有数据缓存能力,向相邻的路由设备通告本设备具有数据缓存能力的信息,反之,确定路由设备不具有数据缓存能力,向相邻的路由设备通告本设备不具有数据缓存能力的信息。
步骤202,路由设备接收并记录相邻路由设备向本设备通告的是否具有数据缓存能力的信息。
作为本发明的一个实施例,在本发明中,为保证路由设备之间相互通告是否具有数据缓存能力的信息,本发明定义了位置识别协议(LIP:LocationIdentifyProtocol)。基于该LIP来供路由设备相互之间通告自身是否具有数据缓存能力信息。
其中,用于通告是否具有数据缓存能力信息可携带在具有图3所示字段的报文中。这里,为便于描述,将该报文称为通告报文。
在图3中,通告报文包含的字段:目的IP地址字段、源IP地址字段、设备标识(ID)字段、环回(Loopback)地址字段与现有报文转发时包含的上述字段意义类似,这里不再赘述。
至于图3示出的通告报文中的边缘设备(BD:BoarderDevice)标识字段,其是可选的,因为在后续路由设备进行数据内容发送时还会进行判断。基于此,当路由设备发送的通告报文携带BD标识字段时,该BD标识字段可包含以下内容:路由设备为BD的第一标识,以及路由设备不为BD的第二标识。这里,在路由设备发送的通告报文携带BD标识字段时,该BD标识字段具体包含第一标识还是第二标识,可有多种实现方式,比如,依据用于预先针对本设备的配置确定,当本设备被配置为BD时,BD标识字段就为第一标识,反之,BD标识字段就为第二标识;或者直接将BD标识字段设置为第二标识等,本发明并不具体限定。
至于图3示出的通告报文中的缓存能力标识字段,其包含以下内容:具有数据缓存能力的标识1,以及不具有数据缓存能力的标识2,其中,当一路由设备发送所述通告报文时,如果该路由设备本地集成了OAP板卡,则此时该通告报文的缓存能力标识字段包含标识1,反之,此时该通告报文的缓存能力标识字段包含标识2。
步骤203,路由设备接收到内容服务器针对任一用户的数据访问请求返回的数据内容时,确定所述数据内容应转发至的下一跳设备。
这里,可基于路由协议比如开放路径最短协议(OSPF)等确定该数据内容应转发至的下一跳设备。此时,该确定的下一跳设备可为一个路由设备,也可为用户设备本身。
步骤204,路由设备识别本设备是否记录了所述下一跳设备具有数据缓存能力的信息,如果是,执行步骤205,如果否,执行步骤206。
步骤205,路由设备转发所述数据内容给下一跳设备。返回上述步骤203。
本步骤205是在步骤204的识别结果为是时执行,当步骤204的识别结果为是,意味着数据内容转发至目的地还需要进行一个具有数据缓存能力的路由设备,为保证数据内容缓存在最接近用户的边缘路由设备上,此时本路由设备没有必要缓存该数据内容,而是直接转发该数据内容至下一跳设备。
步骤206,路由设备在本设备为距离所述用户最近的边缘设备且具有数据缓存能力时,对所述数据内容进行缓存,并转发所述数据内容给下一跳设备。
通过步骤206,能够保证数据内容缓存在最接近用户、且具有数据缓存能力的边缘路由设备上。
在本发明中,路由设备是否为距离所述用户最近的边缘设备可通过多种方式确定,下面仅举出两种实现方式:
方式1:
本方式1依据用于预先针对本路由设备的配置确定,当本路由设备被配置为边缘设备时,确定本设备为距离所述用户最近的边缘设备,反之,确定本路由设备不为距离所述用户最近的边缘设备。
方式2:
本方式2相比于方式1,不依赖于用户的配置,而是动态确定,具体为:
识别本设备是否已接收到所述下一跳设备通告的是否具有数据缓存能力的信息,
如果否,则确定本设备为距离所述用户最近的边缘设备,
如果是,则在所述下一跳设备不具有数据缓存能力时,确定本设备为距离所述用户最近的边缘设备,而在所述下一跳设备具有数据缓存能力时,确定本设备不为距离所述用户最近的边缘设备。
需要说明的是,上述两种方式只是一种举例,并非用于限定本发明。
至此,完成图2所示流程。
下面为使图2所示流程更加清楚,通过一个实施例对图2所示流程进行描述:
以图4所示的组网为例,在初始时,R1、R2、R3上都没有缓存用户1要访问的数据内容,基于此,当用户1发起数据访问请求时,该数据访问请求会被转发给图4所示的内容服务器以获取需要访问的数据内容。
内容服务器获取用户1需要访问的数据内容,通过报文封装该数据内容,此时将该报文记为响应报文,并根据路由协议如OSPF等计算响应报文需要转发至的下一跳设备,假如该下一跳设备为R1,则内容服务器将响应报文转发给R1。
R1在接收到响应报文时,根据路由协议如OSPF等计算该接收的响应报文需要转发至的下一跳设备,假如此时计算出的下一跳设备为R2,则R1根据LIP协议知道本R1和R2之前已交互过通告报文,且本R1在本地已记录了R2具有数据缓存能力,基于此,R1直接转发响应报文,不在本地缓存该响应报文携带的数据内容。
同理,R2在接收到响应报文时,也根据路由协议如OSPF等计算该接收的响应报文需要转发至的下一跳设备,假如此时计算出的下一跳设备为R3,则R2根据LIP协议知道本R2和R3之前已交互过通告报文,且本R2在本地已记录了R3具有数据缓存能力,基于此,R2直接转发响应报文,不在本地缓存该响应报文携带的数据内容。
R3在收到响应报文时,也根据路由协议如OSPF等计算该接收的响应报文需要转发至的下一跳设备,假如此时计算出的下一跳设备为用户1,R3根据LIP协议知道本R3和用户1之前并未交互过通告报文,则在本R3具有数据缓存能力的前提下,认为本R3是连接用户1最近且具备数据缓存能力的边缘设备,此时,R3一方面缓存该响应报文携带的数据内容,另一方面将该响应报文转发给计算出的下一跳设备即用户1。这样,即实现了智能地根据转发内容路径判断设备所处网络位置,进行本地内容缓存的功能。
至此,完成上述实施例的描述。
优选地,本发明中,组网中的路由设备还可进一步包括以下步骤:
接收来自用户的数据访问请求;
识别本设备是否已缓存了所述数据访问请求所请求的数据内容,
如果是,则将缓存的所述数据内容发送给所述用户;
如果否,则向内容服务器发送所述数据访问请求。
仍以图4所示的组网为例,在R3基于上面描述缓存了用户1需要访问的数据内容后,下次用户1再访问相同的数据内容时,分别从R3的本地缓存中获取即可,极大提高了内容获取的速度和质量。
需要说明的是,本发明中,路由设备缓存的数据内容可根据时间计数器或者内存先进先出的规则进行更新,这里不再具体描述。
以上对本发明提供的方法进行了描述,下面对本发明提供的装置进行描述:
参见图5,图5为本发明实施例提供的装置结构图。该装置应用于运营商网络中的路由设备,如图5所示,该装置可包括:
通告单元,用于向相邻路由设备通告本设备是否具有数据缓存能力的信息;
记录单元,用于接收并记录相邻路由设备向本设备通告的是否具有数据缓存能力的信息;
确定单元,用于接收到内容服务器针对任一用户的数据访问请求返回的数据内容时,确定所述数据内容应转发至的下一跳设备;
识别单元,用于识别所述记录单元是否记录了所述下一跳设备具有数据缓存能力的信息;
处理单元,用于在所述识别单元的识别结果为是时,转发所述数据内容给下一跳设备,以及用于在所述识别单元的识别结果为否时,在本设备为距离所述用户最近的边缘设备且本设备具有数据缓存能力时,对所述数据内容进行缓存,并转发所述数据内容给下一跳设备。
优选地,本发明中,所述处理单元通过以下步骤确定路由设备为距离所述用户最近的边缘设备:
依据本设备的配置确定,当本设备被配置为边缘设备时,确定本设备为距离所述用户最近的边缘设备;或者,
识别本设备是否已接收到所述下一跳设备通告的是否具有数据缓存能力的信息,
如果否,则确定本设备为距离所述用户最近的边缘设备,
如果是,则在所述下一跳设备不具有数据缓存能力时,确定本设备为距离所述用户最近的边缘设备。
如图5所示,所述装置进一步包括:
接收单元,用于接收来自用户的数据访问请求;
转发单元,用于识别本设备是否已缓存了所述数据访问请求所请求的数据内容,如果是,则将缓存的所述数据内容发送给所述用户;如果否,则向内容服务器发送所述数据访问请求。
本发明中,所述通告单元在所述路由设备集成了开放应用平台OAP板卡时,确定所述路由设备具有数据缓存能力,向相邻路由设备发送本设备具有数据缓存能力的信息,反之,确定路由设备不具有数据缓存能力,向相邻路由设备发送本设备不具有数据缓存能力的信息。
至此,完成图5所示的装置描述。
由以上技术方案可以看出,本发明中,通过相邻路由设备之间相互通告自身是否具有数据缓存能力的信息,当路由设备接收到内容服务器针对任一用户的数据访问请求返回的数据内容时,确定所述数据内容应转发至的下一跳设备,识别本设备是否记录了所述下一跳设备具有数据缓存能力的信息,如果是,转发所述数据内容给下一跳设备;如果否,在本设备为距离所述用户最近的边缘设备且本设备具有数据缓存能力时,对所述数据内容进行缓存,并转发所述数据内容给下一跳设备,这实现了把数据内容缓存在最接近用户的网络边缘设备上,以便该用户再访问同一数据内容时,直接从该最接近用户的网络边缘设备上获取即可,极大地提高了数据内容访问的速度和质量;
另外,本发明中,充分利用路由设备本身的数据缓存能力,无需购置专门的内容缓存其,节省投资;
还有,本发明中,路由设备根据路由协议和相互之间通告的信息实现内容缓存,无需DNS、专用缓存服务器的配合,简化网络部署。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。