一种临近缓存感知的半集中式路由方法及其系统

文档序号:1849636 发布日期:2021-11-16 浏览:21次 >En<

阅读说明:本技术 一种临近缓存感知的半集中式路由方法及其系统 (Semi-centralized routing method and system for sensing adjacent cache ) 是由 孙军涛 姜静 郑凌 杜剑波 于 2021-08-09 设计创作,主要内容包括:本发明涉及一种临近缓存感知的半集中式路由方法,主要解决现有技术中中心控制节点负载较高的问题。本发明通过识别目录服务器的负载高低,采用不同的方式方法传输数据,以达到降低目录服务器的负载、提高用户体验的目的。本发明还涉及一种临近缓存感知的半集中式路由系统,包括多个终端节点、多个路由器和目录服务器,终端节点能够直接与目录服务器就行信息通讯和信息传输,终端节点也能够通过路由器与目录服务器进行信息通讯和信息传输,路由器之间也能够进行信息传输。(The invention relates to a near cache sensing semi-centralized routing method, which mainly solves the problem that a central control node in the prior art is high in load. According to the invention, the load of the directory server is identified, and data is transmitted by adopting different methods, so that the purposes of reducing the load of the directory server and improving the user experience are achieved. The invention also relates to a near cache perception semi-centralized routing system which comprises a plurality of terminal nodes, a plurality of routers and a directory server, wherein the terminal nodes can directly carry out information communication and information transmission with the directory server, the terminal nodes can also carry out information communication and information transmission with the directory server through the routers, and the routers can also carry out information transmission.)

一种临近缓存感知的半集中式路由方法及其系统

技术领域

本发明涉及一种网络技术,具体涉及一种临近缓存感知的半集中式路由方法,还涉及一种临近缓存感知的半集中式路由系统。

背景技术

现代互联网正朝着高速化和宽带化的方向演进,并发展为结合数据、语音、图像以及实时多媒体信息等多种业务的综合业务传输网络。根据思科公司发布的网络指数统计和预测,到2022年,全球IP网络的数据流量将达到平均每月396EB的水平,相比2017年提高了2倍以上。

在海量的网络业务中,对实时性要求较高的网络音频、视频业务逐渐成为互联网应用的主流,预计将在2022年占到总数据流量的82%。多媒体内容的大量复制传播的需求带来了内容分发网络(ContentDeliveryNetworking,CDN)的流行和商用。一个典型的内容分发网络需要部署多个内容服务器在不同的地理位置,构建一个分布式的缓存系统。利用分布式的缓存系统,用户能够就近从边缘节点处获取内容,避免了传统IP网络中心化服务造成的网络拥塞问题,提高获取服务的速度。并根据用户的动态内容请求,动态调整内容缓存及传输策略,从而均衡网络流量负载、提高用户体验。

CDN网络的核心思想是采用DNS重定向的方式,将用户请求转发到网络边缘处的缓存节点,从而降低访问时延。传统的CDN网络中需要一个专用的目录服务器,用于处理用户的内容请求与内容重定向,在一定程度上仍然是中心化的网络服务。中心化的目录服务器易成为性能瓶颈,并且中心节点的故障或过载会造成整个网络性能的下降。因此,在中心节点失效时,边缘节点应当具有一定的自组网路由能力与邻近缓存内容感知的能力,从而缓解中心节点的压力,提高网络性能。

现有的自组网路由方法主要分为两类:

一是缓存节点向周边节点发布已有缓存内容的通告,内容请求节点根据通告内容建立路由路径;

二是内容请求节点主动向周边节点探测缓存的内容,从而建立内容路由。

这两种方案的共同特点是缓存节点需要向周边节点传输其拥有的全部缓存内容信息,会造成巨大的网络带宽开销。当前需要解决的问题的,如何在CDN架构下,简化自组网路由信息的传递,减少网络开销。

发明内容

本发明提供了一种临近缓存感知的半集中式路由方法及其系统,目的在于解决传统自组网路由信息的传递会造成巨大的网络带宽开销。

一种临近缓存感知的半集中式路由方法,其特殊之处在于:

步骤1,请求内容的终端节点向目录服务器发送内容请求包CEN_REQ,其中内容请求包CEN_REQ至少包括以下信息:包类型、请求内容的名称、请求内容的终端节点地址、目录服务器的地址、时间戳,同时设置一个重传时间T;

步骤2,目录服务器收到所述内容请求包CEN_REQ后,通过查找其维护的路由信息表,确定网络中哪些缓存节点缓存了内容请求包CEN_REQ所请求的内容,并利用加权最小连接算法,将内容请求定位到负载较轻同时距离较近的缓存节点,该缓存节点称为目的节点;

目录服务器随后向请求内容的终端节点发送内容应答包CEN_REP,其中内容应答包CEN_REP至少包括以下信息:包类型、请求内容的名称、请求内容的终端节点地址、目录服务器地址、内容提供者地址、时间戳;

步骤3.1,若在重传时间T内,请求内容的终端节点接收到目录服务器所返回的内容应答包CEN_REP之后,根据内容应答包CEN_REP所包含的信息,建立请求内容的终端节点到目的节点的路径,将所请求的内容通过路径返回请求内容的终端节点;

步骤3.2,若在重传时间T内,请求内容的终端节点没有收到目录服务器的响应,则启动邻近缓存感知路由机制,请求内容的终端节点将主动探测一定范围内的邻近节点的缓存副本,并根据分布式的路由策略发现邻近缓存内容,根据请求内容的终端节点主动探测到的缓存副本信息建立请求内容的终端节点到目的节点的路径,将所请求的内容通过路径返回请求内容的终端节点。

进一步地,所述步骤1中,需要请求内容的终端节点通过路由器向中心目录服务器发送内容请求包CEN_REQ;

步骤2中,目录服务器随后通过路由器向请求内容的终端节点发送内容应答包CEN_REP;

步骤3.1中,若在重传时间T内,请求内容的终端节点接收到目录服务器通过路由器所返回的内容应答包CEN_REP之后,根据内容应答包CEN_REP所包含的信息,通过路由器建立请求内容的终端节点到目的节点的路径;

步骤3.2中,若在重传时间T内,请求内容的终端节点没有收到目录服务器的响应,则启动邻近缓存感知路由机制,请求内容的终端节点将通过路由器主动探测一定范围内的邻近节点的缓存副本。

进一步地,所述步骤2具体如下:

步骤2.1,目录服务器收到内容请求包CEN_REQ;

步骤2.2,目录服务器中拥有网络中所有的缓存节点以及其缓存内容的对应关系的路由信息表,且该路由信息表定期更新;目录服务器检查路由信息表中是否保存了内容请求包CEN_REQ中的内容名称,如果是,则执行步骤2.3;否则丢弃请求分组内容请求包CEN_REQ;

步骤2.3,如果仅有一个缓存节点中存储了请求内容,则将其作为内容提供者,利用缓存节点的地址、当前时间等信息构建内容应答包CEN_REP,其中的内容提供者地址为查找到的缓存节点地址,转步骤2.5;否则,转步骤2.4;

步骤2.4,如果有多个缓存节点中存储了所请求的内容,则利用加权最小连接法,选择负载较轻同时距离较近的缓存节点作为内容提供者;具体地,设有M个缓存节点存储了所请求的内容,其编号分别为1、2、…、M;令ADDRi表示缓存节点i的地址,Li为缓存节点i当前分配的连接数;设源请求节点的地址为ADDR_SRC;则令缓存节点i的权值为Wi=Di×(Li+1),其中,Di为请求内容的终端节点到缓存节点i之间的距离,定义为请求内容的终端节点的地址与缓存节点i地址做异或运算的结果,即Di=ADDR_SRC xor ADDRi;将Wi从小到大排序,选择权值最小的节点作为内容提供者,将节点地址、当前时间等系信息构建内容应答包CEN_REP,转步骤2.5;

步骤2.5,将内容应答包CEN_REP返回给请求内容的终端节点,操作结束。

进一步地,所述启动邻近缓存感知路由机制具体如下:

步骤3.2.1,每个缓存节点维护了一个临近缓存路由信息表,该路由信息表保存缓存内容与缓存节点地址、转发端网络接口号的映射关系;缓存节点开启邻近缓存探测;

步骤3.2.2,请求内容的终端节点查找本地的临近缓存路由信息表,判断是否存在至所请求内容的路径;若存在,则根据目的节点的地址,建立请求内容的终端节点到目的节点的路径,转步骤3.2.12;否则,转步骤3.2.3;

步骤3.2.3,请求内容的终端节点通过直接连接的路由器向自身附近的所有缓存节点发送内容探测包DIST_REQ,其中内容探测包DIST_REQ至少包括以下信息:包类型、请求内容的名称、请求内容的终端节点地址、广播深度Depth、随机数Nonce、时间戳;

步骤3.2.4,缓存节点收到内容探测包DIST_REQ,首先记录内容探测包到来的路由器网络接口号、请求内容的终端节点地址、内容名称等信息,以便内容应答包的返回;转步骤3.2.5;

步骤3.2.5,缓存节点对比其Nonce值是否与之前记录的内容探测包的Nonce值相等;若相等,说明存在广播回环,则丢弃该探测包DIST_REQ,转步骤3.2.12;否则转步骤3.2.6;

步骤3.2.6,查找本缓存节点的缓存目录,判断是否存储内容探测包所请求的内容名称;若存在,则将查找到的缓存节点作为内容提供者,并构建内容应答包DIST_REP;内容应答包DIST_REP至少包含以下信息:包类型、请求内容的名称、请求终端节点地址、内容提供者地址、当前时间戳;将内容应答包DIST_REP返回给请求内容的终端节点,转步骤3.2.9;否则,转步骤3.2.7;

步骤3.2.7,查找临近缓存路由信息表,判断是否存在所请求内容的名称;若存在,则根据查找结果构建内容探测请求包DIST_REP并返回请求内容的终端节点,转步骤3.2.9;否则,转步骤3.2.8;

步骤3.2.8,通过查找临近缓存路由信息表,若没有查找到所请求的内容名称,则判断广播深度Depth是否大于1;若Depth字段小于等于1,则说明广播跳数已达预设值,则丢弃该探测包,转步骤3.2.12;否则,令Depth字段减1,并向除了探测包到达的缓存节点的网络接口以外的其他所有缓存节点的网络接口广播该请求包;

步骤3.2.9,沿途缓存节点收到内容应答包DIST_REP后,提取出其相关信息,更新沿途缓存节点的临近缓存路由信息表;若收到多个具有相同内容名的应答包,则根据应答包携带的时间戳信息,选择时延较低的缓存节点作为内容提供者更新临近缓存路由表;

步骤3.2.10,请求内容的终端节点收到内容应答包DIST_REP后,利用与步骤3.2.9相同的方式,提取出相关信息更新请求内容的终端节点的临近缓存路由信息表;

步骤3.2.11,根据应答包所包含的信息,建立请求内容的终端节点到目的节点的路径;

步骤3.2.12,每个缓存节点的临近缓存路由信息表中的表项存在时效性,若一条表项的存在时间超过更新间隔,则将其作为陈旧表项删除。

进一步地,所述内容请求包CEN_REQ中具体为,Type为包类型,其值设为1表示CEN_REQ包;Seq为序列号,由生成该请求包的缓存节点产生,与缓存节点地址一起使用标记一个请求包;ContentName为所请求的内容名;SourceAddr为请求节点的地址;ServerAddr为目录服务器地址;TimeStamp为当前时间戳。

进一步地,所述内容探测请求包DIST_REQ中,Type为包类型,其值为3表示DIST_REQ包;Seq为序列号,由生成该请求包的缓存节点产生,与缓存节点地址一起使用标记一个请求包;ContentName为所请求的内容名;SourceAddr为请求节点的地址;Depth为广播深度;Nonce为产生该包时产生的一个随机数;TimeStamp为当前时间戳;

所述内容探测应答包DIST_REP中,Type为包类型,其值为4表示DIST_REP包;Seq为序列号,由生成该应答包的缓存节点产生,与缓存节点地址一起使用标记一个请求包;ContentName为所请求的内容名;SourceAddr为请求节点的地址;ContentProviderAddr为内容提供者的地址;Nonce值与接收到的请求包的Nonce值相一致;TimeStamp为当前时间戳。

进一步地,所述内容应答包CEN_REP中,其值设为2表示CEN_REP包;Seq为序列号,由目录服务器产生,用于标记一个应答包;ContentName为所请求的内容名;SourceAddr为请求节点的地址;ServerAddr为目录服务器地址;ContentProviderAddr为内容提供者的地址;TimeStamp为当前时间戳。

一种临近缓存感知的半集中式路由系统,其特殊之处在于:包括多个终端节点、多个路由器和目录服务器;

所述终端节点和目录服务器通过路由器连接;终端节点与路由器之间相互直接传输信息,终端节点通过路由器与目录服务器传输信息,互相连接的路由器之间传输信息。

进一步地,所述终端节点和路由器均具备内容缓存功能且终端节点和路由器组成缓存节点,目录服务器中拥有缓存内容和缓存节点地址的完整列表和网络中所有的缓存节点以及其缓存内容的对应关系,并将这些信息保存为路由信息表,且该路由信息定期更新维护。

有益效果如下:

(1)本发明中拥有分布式内容缓存的结构,该结构实现了集中式与分布式的内容缓存和路由的功能,具有减少网络冗余流量和提高网络性能的优点。

(2)本发明中拥有分布式内容缓存的结构,该结构实现了对最近请求内容的缓存功能,具有降低网络访问延迟的优点。

(3)本发明中拥有内容探测请求包的结构,该结构实现了对一定范围内缓存内容的探测功能,能够发现临近节点的缓存内容有助于实现最短路径的路由决策。

(4)本发明中具有临近缓存路由信息表,该信息表保存了当前节点未缓存但临近节点已缓存的内容,实现了对缓存内容的寻址和路由功能,具有降低网络冗余流量和提升网络性能的优点。

附图说明

图1为本发明一个实施例的系统设计图示意图;

图2为本发明中内容请求包CEN_REQ的结构示意图;

图3为本发明中内容应答包CEN_REP的结构示意图;

图4为本发明中内容探测请求包DIST_REQ包结构示意图;

图5为本发明中内容探测应答包DIST_REP包结构示意图;

图6为本发明方法中的目录服务器加权最小链接方法的流程图。

图7为本发明中邻近缓存探测机制的流程图。

附图标记具体如下:

1.目录服务器,2.路由器,3.终端节点。

具体实施方式

下面结合附图和具体实施方式对本发明做进一步详细描述。

如图1所示,一种临近缓存感知的半集中式路由系统,包括若干终端节点3,若干路由器2和目录服务器1。

终端节点3和路由器2均具备内容缓存功能,目录服务器1中拥有缓存内容和缓存节点地址的完整列表和网络中所有的缓存节点以及其缓存内容的对应关系,并保存为路由信息表,且该路由信息定期更新维护。

缓存节点包括终端节点3和路由器2。不同终端节点3通过路由器21传输信息指令,终端节点3能够直接和目录服务器1相互传输信息指令,相邻路由器2直接能够互相传输信息指令。路由器2之间通过智能组网排列,增加路由器2之间的传输效率。

邻近节点指的是:与所述终端节点3或路由器2直接连接和间接连接的缓存节点,但是缓存节点连接的跳数有限制,若缓存节点的Depth字段小于等于1,则跳数已达上限。

一种临近缓存感知的半集中式路由方法,主要应用于分布式缓存系统中,具体如下:

如图1所示,终端节点3中包括了终端节点T1、终端节点T2、终端节点T3、终端节点T4、终端节点T5和终端节点T6。假设终端节点T1需要请求一个名称为File1的内容。步骤1,需要请求内容的终端节点T1向中心目录服务器1发送内容请求包CEN_REQ,传输路径如图1中的实线所示,其中内容请求包CEN_REQ至少包括以下信息:包类型、请求内容的名称、请求终端节点3地址、目录服务器1的地址、时间戳,同时终端节点T1设置一个重传时间T。

步骤2,目录服务器1收到所述内容请求包CEN_REQ后,通过查找其维护的路由信息表,确定网络中哪些缓存节点缓存了请求包CEN_REQ所请求的内容,并利用加权最小连接算法,将内容请求定位到负载较轻同时距离较近的缓存节点即目的节点。假设将终端节点T6作为内容提供者,目录服务器1随后向终端节点T1发送应答包CEN_REP,其中至少包括以下信息:包类型、请求内容的名称、请求终端节点3地址、目录服务器1地址、内容提供者地址、时间戳。

步骤3.1,若在重传时间T内,请求终端节点T1接收到目录服务器1返回的应答包CEN_REP之后,根据应答包所包含的信息,建立请求终端节点T1到目的节点的路径,即终端节点T1将会通过路由器2从终端节点T6请求内容,将所请求的内容通过路由器2从终端节点T6传输到终端节点T1。

步骤3.2,若在重传时间T内,请求终端节点T1没有收到目录服务器1的响应,则启动邻近缓存感知路由机制,终端节点T1将通过路由器2主动探测一定范围内的邻近节点的缓存副本,并根据分布式的路由策略发现邻近缓存内容。如图1中的虚线所示,终端节点T1将会通过路由器2向周边缓存节点广播内容探测请求包DIST_REQ。而终端节点T3中存在所需内容File1,终端节点T3则通过路由器2向终端节点T1回复内容探测应答包DIST_REP。终端节点T1收到应答包后,根据应答包中包含的信息,建立终端节点T1到目的节点的路径,即终端节点T1将会路由器2从终端节点T3请求内容。如图2所示,在内容请求包CEN_REQ中,Type为包类型,其值设为1表示CEN_REQ包;Seq为序列号,由生成该请求包的节点产生,与节点地址一起使用标记一个请求包。ContentName为所请求的内容名;SourceAddr为请求节点的地址;ServerAddr为目录服务器1地址;TimeStamp为当前时间戳。

如图3所示,在内容应答包CEN_REP中,其值设为2表示CEN_REP包;Seq为序列号,由目录服务器1产生,用于标记一个应答包;ContentName为所请求的内容名;SourceAddr为请求节点的地址;ServerAddr为目录服务器1地址;ContentProviderAddr为内容提供者的地址;TimeStamp为当前时间戳。

如图4所示,在内容探测请求包DIST_REQ中,Type为包类型,其值为3表示DIST_REQ包;Seq为序列号,由生成该请求包的缓存节点产生,与缓存节点地址一起使用标记一个请求包;ContentName为所请求的内容名;SourceAddr为请求节点的地址;Depth为广播深度;Nonce为产生该包时产生的一个随机数;TimeStamp为当前时间戳。

如图5所示,在内容探测应答包DIST_REP中,Type为包类型,其值为4表示DIST_REP包;Seq为序列号,由生成该应答包的缓存节点产生,与缓存节点地址一起使用标记一个请求包;ContentName为所请求的内容名;SourceAddr为请求节点的地址;ContentProviderAddr为内容提供者的地址;Nonce值与接收到的请求包的Nonce值相一致;TimeStamp为当前时间戳。

如图6所示,所述步骤2具体如下:

步骤2.1,目录服务器1收到内容请求包CEN_REQ;

步骤2.2,目录服务器1中拥有网络中所有的缓存节点以及其缓存内容的对应关系的路由信息表,且该路由信息表定期更新。目录服务器1检查路由信息表中是否保存了CEN_REQ中的内容名称,如果是,则执行步骤2.3;否则丢弃请求分组CEN_REQ;

步骤2.3,如果仅有一个缓存节点中存储了请求内容,则将其作为内容提供者,利用缓存节点的地址、当前时间等信息构建内容应答包CEN_REP,其中的内容提供者地址为查找到的缓存节点地址,转步骤2.5;否则,转步骤2.4;

步骤2.4,如果有多个缓存节点中存储了所请求的内容,则利用加权最小连接法,选择负载较轻同时距离较近的缓存节点作为内容提供者。具体地,设有M个缓存节点存储了所请求的内容,其编号分别为1、2、…、M;令ADDRi表示缓存节点i的地址,Li为缓存节点i当前分配的连接数;设源请求节点的地址为ADDR_SRC;则令缓存节点i的权值为Wi=Di×(Li+1),其中,Di为终端节点3到缓存节点i之间的距离,定义为终端节点3的地址与缓存节点i地址做异或运算的结果,即Di=ADDR_SRC xor ADDRi。将Wi从小到大排序,选择权值最小的节点作为内容提供者,将节点地址、当前时间等系信息构建内容应答包CEN_REP,转步骤2.5。

步骤2.5,将内容应答包CEN_REP返回给终端节点3,操作结束。

参照图7,所述步骤3.2进一步包括:

步骤3.2.1,每个缓存节点维护了一个临近缓存路由信息表,该路由表保存缓存内容与缓存节点地址、转发端口号的映射关系。缓存节点开启邻近缓存探测;

步骤3.2.2,终端节点3查找本地的临近缓存路由信息表,判断是否存在至所请求内容的路径;若存在,则根据目的节点的地址,建立请求终端节点3到目的节点的路径,转步骤3.2.12;否则,转步骤3.2.3;

步骤3.2.3,终端节点3通过直接连接的路由器2向自身附近的所有缓存节点发送内容探测包DIST_REQ,其中内容探测包DIST_REQ至少包括以下信息:包类型、请求内容的名称、请求终端节点3地址、广播深度Depth、随机数Nonce、时间戳;

步骤3.2.4,缓存节点收到内容探测包DIST_REQ,首先记录内容探测包到来的路由器2网络接口号、终端节点3地址、内容名称等信息,以便内容应答包的返回;转步骤3.2.5;

步骤3.2.5缓存节点对比其Nonce值是否与之前记录的内容探测包的Nonce值相等。若相等,说明存在广播回环,则丢弃该探测包DIST_REQ,转步骤3.2.12;否则转步骤3.2.6。

步骤3.2.6,查找本缓存节点的缓存目录,判断是否存储内容探测包所请求的内容名称。若存在,则将查找到的缓存节点作为内容提供者,并构建内容应答包DIST_REP。内容应答包DIST_REP至少包含以下信息:包类型、请求内容的名称、请求终端节点3地址、内容提供者地址、当前时间戳。将内容应答包DIST_REP返回给终端节点3,转步骤3.2.9;否则,转步骤3.2.7;

步骤3.2.7,查找临近缓存路由信息表,判断是否存在所请求内容的名称;若存在,则根据查找结果构建内容探测请求包DIST_REP并返回终端节点3,转步骤3.2.9;否则,转步骤3.2.8;

步骤3.2.8,若没有查找到所请求的内容名称,则判断广播深度Depth是否大于1。若Depth字段小于等于1,则说明广播跳数已达预设值,则丢弃该探测包,转步骤3.2.12;否则,令Depth字段减1,并向除了探测包到达的缓存节点网络接口以外的其他所有缓存节点的网络接口广播该请求包;

步骤3.2.9,沿途节点收到内容应答包DIST_REP后,提取出其相关信息,更新沿途节点的临近缓存路由信息表;若收到多个具有相同内容名的应答包,则根据应答包携带的时间戳信息,选择时延较低的节点作为内容提供者更新临近缓存路由表;

步骤3.2.10,源请求终端节点3收到内容应答包DIST_REP后,利用与步骤3.2.9相同的方式,提取出相关信息更新终端节点3的临近缓存路由信息表;

步骤3.2.11,根据应答包所包含的信息,建立请求终端节点3到目的节点的路径。

步骤3.2.12,每个节点的临近缓存路由信息表中的表项存在时效性,若一条表项的存在时间超过更新间隔,则将其作为陈旧表项删除。

16页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种互联网路径选取方法以及装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!