一种ndn中基于重定向的任播方法和系统的制作方法

文档序号:10555509阅读:274来源:国知局
一种ndn中基于重定向的任播方法和系统的制作方法
【专利摘要】本发明公开了一种NDN中基于重定向的任播方法和系统。该方法包括:客户端向第一层调度器发送第一请求;第一层调度器依据第一预设策略选择服务第一请求的服务器群;第一层调度器向客户端返回第一重定向通告;客户端依据第一重定向通告向第二层调度器发送第二请求;第二层调度器依据第二预设策略选择服务第二请求的服务器;第二层调度器向客户端返回第二重定向通告;客户端依据第二重定向通告向所选择服务器发送第三请求;服务器向客户端返回响应消息。本发明的方法和系统能在NDN网络中多样化的任播需求,不破坏NDN内容路由器转发引擎的转发逻辑。
【专利说明】
一种NDN中基于重定向的任播方法和系统
技术领域
[0001 ] 本发明涉及命名数据网络(Named Data Networking,NDN)技术领域,尤其涉及一种NDN中基于重定向的任播方法和系统。
【背景技术】
[0002]目前,用户对互联网的访问已经从点对点通信为主转为内容获取为主。而传统的TCP/IP网络仅传输内容,并不感知内容,从而造成了网络上大量的冗余流量传输。为了解决由于内容获取而引发的内容爆炸,研究界提出了以内容为中心的网络NDN,实现了内容和地址以及发送者和接收者的解耦,并提供泛在的内置缓存来满足用户对内容的具有重尾特征的异步访问。
[0003]现有互联网存在许多大规模的具有亿万的服务,如Google ,Facebook,微信等。这些服务通常都有一组物理上分布但提供相同服务的服务器或服务器集群。对用户而言,这类服务本质上属于任播服务。但是,现有NDN的传输模式仅提供简单的基于任播路由的任播机制,无法满足灵活多变的任播需求。因此,有必要提出一种NDN中能满足多样化需求的任播技术。

【发明内容】

[0004]本发明为解决上述技术问题,提供一种NDN中基于重定向的任播方法和系统,能不破坏CCN内容路由器转发引擎的转发逻辑。所述技术方案如下:
[0005]—方面,本发明提出一种NDN中基于重定向的任播方法,包括下述步骤:
[0006]客户端向第一层调度器发送第一请求;
[0007]第一层调度器依据第一预设策略选择服务第一请求的服务器群;
[0008]第一层调度器向客户端返回第一重定向通告;
[0009]客户端依据第一重定向通告向第二层调度器发送第二请求;
[0010]第二层调度器依据第二预设策略选择服务第二请求的服务器;
[0011 ]第二层调度器向客户端返回第二重定向通告;
[0012]客户端依据第二重定向通告向所选择服务器发送第三请求;
[0013]服务器向客户端返回响应消息。
[0014]进一步地,所述客户端向第一层调度器发送的第一请求按照NDN的路由过程转发到第一层调度器,为保证这一过程正确运行的前期是第一层调度器向路由系统通告第一请求的服务名前缀。
[0015]进一步地,所述第一重定向通告包括第一层调度器所选择的服务器群的第二层调度器依赖服务名,且第一重定向通告沿着第一请求转发路径的反向路径逐跳返回给客户端。
[0016]进一步地,所述客户端向第二层调度器发送第二请求,其服务名为第二层调度器依赖服务名,该第二请求按照NDN的路由过程转发到第二层调度器。为了保证这一过程的正确运行,第二层调度器需向路由系统通告第二层调度器标识前缀。
[0017]进一步地,所述第二重定向通告包括第二层调度器所选择的服务器的服务器依赖服务名;且其沿着第二请求转发路径的反向路径逐跳返回给客户端。
[0018]进一步地,所述客户端向服务器发送第三请求,其服务名为服务器依赖服务名,且其按照NDN的路由过程转发到服务器。
[0019]进一步地,所述服务器向客户端返回的响应消息通过第三请求消息转发的反向路径逐跳返回给客户端。
[0020]进一步地,所述第一请求可以可选地包括客户端生成的流标识,该流标识被复制到第二请求、第三请求和响应消息中。
[0021]另一方面,本发明提出一种NDN中基于重定向的任播系统,包括:
[0022]客户端:用于生成并发送第一请求、第二请求、第三请求,接收第一重定向通告、第二重定向通告和响应消息;
[0023]第一层调度器:用于接收第一请求、依据第一预设策略选择服务器群、生成和返回第一重定向通告;
[0024]第二层调度器:用于接收第二请求、依据第二预设策略选择服务器、生成和返回第二重定向通告;
[0025]服务器:用于接收第三请求、生成和发送响应消息;
[0026]中间路由器:用于按照NDN的规则建立和更新路由转发表,转发第一、第二、第三请求消息,返回第一、第二重定向通告和响应消息。
[0027]本发明采用以上技术方案与现有技术相比,具有以下技术效果:
[0028]通过本发明,能在NDN中支持多样化的任播需求,特别是能支持有状态的基于流的任播、能有效解决扩展性问题、能根据服务器状态灵活地选择服务器。另外,本发明所提出的技术没有破坏NDN内容路由器转发引擎的转发逻辑。
[0029]本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
【附图说明】
[0030]图1示出了依据本发明一实施方式的任播服务场景示意图。
[0031]图2示出了依据本发明一实施方式的NDN中基于重定向的任播方法流程图。
[0032]图3示出了依据本发明一实施方式的NDN中基于重定向的任播方法的实体交互图。
[0033]图4示出了依据本发明一实施方式的NDN中基于重定向的任播系统部署示意图。
【具体实施方式】
[0034]下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
[0035]本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。
[0036]本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。
[0037]图1示出了依据本发明一实施方式的任播场景示意图。图中,一个大型服务通过多个地理上分散的服务器群来提供服务。这些地理上分散的M个服务器群Site I,Site2,...,Site M通过网络相连。每个Site都有多个服务器,例如Site k包括Nk个服务器。每个服务器都提供相同的服务。希望访问服务的客户端通过网络发出服务请求,最后由某个服务器群中的一个服务器服务请求。连接客户端和各服务器群的网络是NDN网络。
[0038]本发明提出的NDN中基于重定向的任播方法引入了第一层调度器和第二层调度器两种实体,如图3所示。其中,第一层调度器接收所有客户端发出的请求,并选择一个服务器群。而每个服务器群都有一个第二层调度器,用于选择服务器群中的一个服务器。第一层调度器可以位于网络中的任意位置,而第二层调度器通常与某个服务器群位于同一个网络,作为服务器群的门面。
[0039]图2示出了依据本发明一实施方式的NDN中基于重定向的任播方法流程图。具体包括下述步骤:
[0040]I)客户端向第一层调度器发送第一请求。
[0041]客户端发送的第一请求中的服务名为所述服务的虚拟服务名,例如/fo0.com/generic-service-name。可选地,为了支持基于流的任播,客户端可以生成一个流标识f low-tag,并附加在上述虚拟服务名后面,即为/f00.com/generic-service-name/f 1w-tag0
[0042]为了使得以上述服务名前缀的请求能被转发到第一层调度器,所述第一层调度器在部署后即需向NDN的路由系统通告以所述服务的虚拟服务名为前缀的路由条目,SP/fo0.com/generic-service-name。可选地,第一层调度器可以将聚合过的路由条目向路由系统通告,如/fo0.com。所述路由条目通告消息经路由协议承载向NDN网络的路由器扩散,并注入路由转发表FIB。
[0043]2)第一层调度器依据第一预设策略选择服务请求的服务器群。
[0044]第一层调度器接收到第一请求后,根据第一预设策略选择能够服务该请求的服务器群。为此,第一层调度器至少需要配置所有的服务器群的第二调度器的信息,更复杂地,第二层调度器可以将所在服务器群的状态定期或实时反馈给第一层调度器,以便第一层调度器能够进行更复杂的调度决策。
[0045]第一层调度器可以简单随机选择一个服务器群服务请求,可以采用轮转策略选择一个服务器群服务请求,也可以采用更复杂的基于服务器群的状态(如负载状态、可用能力等)的策略进行服务器群的选择。如果请求包括客户端的信息,第一层调度器还可以基于客户端的信息进行服务器群的选择,例如基于客户端和服务器群的网络拓扑距离、延迟等。本发明对第一层调度器具体采用的第一预设策略不加以限制。
[0046]3)第一层调度器向客户端返回第一重定向通告。
[0047]当第一层调度器依据第一策略选定服务器群后,向客户端返回第一重定向通告。该通告可以作为一种特殊的Data报文返回,也可以作为一种新的报文类型返回。该通告中至少包括第一重定向请求名。该重定向请求名对应的是所选择的服务器群的第二层调度器为该服务设定的第二层调度器依赖服务名。例如,如图3所示,假设第一层调度器选择了服务器群I来服务客户端的请求/fo0.com/generic-service-name,假设服务器群I的第二层调度器设定的该请求的第二层调度器依赖服务名为/SITEl/fo0.com/generic-service-name,则所述第一重定向通告中将包括该第二层调度器依赖服务名。而如果第一请求名包含有流标识,则该流标识将被复制到第一重定向请求名,如/SITEl/fo0.com/generic-service-name/flow-tag。
[0048]第一重定向通告沿着第一请求转发路径的反向路径返回给客户端。
[0049]4)客户端根据第一重定向通告向第二层调度器发送第二请求。
[0050]客户端接收到第一重定向通告后,解析出其中的重定向请求名,如上例所示,为/SITEl/fo0.com/generic-service-name或/SITEl/fo0.com/generic-service-name/f1w-tag。并以该名字为新的服务名构造第二请求并向网络发送。
[0051 ]为了使得该第二请求能被转发到SITEl的第二层调度器,要求SITEl的第二层调度器在部署后即向网络通告该路由前缀/SITEl/fo0.com/generic-service-name,或者通告聚合后的路由前缀,如/SITE1。该路由前缀通告将经由路由协议承载在NDN网络的路由器中扩散,并注入转发表FIB。据此,客户端的第二请求能够被正确路由到由第一层调度器所选择的服务器群的第二层调度器。
[0052]5)第二层调度器依据第二预设策略选择服务第二请求的服务器。
[0053]第二层调度器接收到第二请求后,依据第二预设策略选择服务第二请求的服务器。为此,第二层调度器至少需要配置所在的服务器群的服务器信息。服务器还可以将自身的状态定期或实时反馈给第二层调度器,以便其进行更复杂的请求调度。第二层调度器可以采用简单的随机策略随机选择一个服务器服务第二请求,也可以采用轮转策略进行请求调度,还可以依据服务器的状态(如实时负载、剩余服务能力等)进行请求调度。本发明对第二层调度器采用的第二预设策略不加以限制。
[0054]如果第二请求中包括流标识,则表明客户端希望进行基于流的调度。此时,第二层调度器需要基于流标识进行请求调度。第二层调度器首先识别出流标识,然后在流转发表中查找是否已经存在该流标识的调度记录。若不存在,则表明该第二请求是该第二层调度器转发的第一个请求,则基于第二预设策略选择一个服务器服务该请求,同时在流转发表中记录下该转发行为,该表项至少包括<f low-tag,server_ID>两项,即流标识以及服务该流标识的服务器标识。如果已经存在该流标识的调度记录,则第二层调度器不再基于第二预设策略选择服务器服务该请求,而是直接基于流转发表中记录的之前的选择决策结果,由相同的服务器服务该请求。
[0055]6)第二层调度器向客户端返回第二重定向通告。
[0056]当第二层调度器依据第二策略选定服务器后,向客户端返回第二重定向通告。该通告可以作为一种特殊的Data报文返回,也可以作为一种新的报文类型返回。该通告中至少包括第二重定向请求名。该重定向请求名对应的是所选择的服务器为该服务设定的服务器依赖服务名。例如,如图3所示,假设第二层调度器选择了服务器群I中的服务器I来服务客户端的第二请求/SITEl/fo0.com/generic-service-name,假设服务器I设定的该请求的服务器依赖服务名为/SNii/f 00.com/generic-service-name,则所述第二重定向通告中将包括该服务器依赖服务名。而如果第二请求名包含有流标识,则该流标识将被复制到第二重定向请求名,如/SNii/fo0.com/generic-service-name/f low-tag ο
[0057]第二重定向通告沿着第二请求转发路径的反向路径返回给客户端。
[0058]7)客户端依据第二重定向通告向所选择服务器发送第三请求。
[0059]客户端接收到第二重定向通告后,解析出其中的重定向请求名,如上例所示,为/SNii/fo0.com/generic-service-name或/SNii/fo0.com/generic-service-name/f1w-tag。并以该名字为新的服务名构造第三请求并向网络发送。
[0060]为了使得该第三请求能被转发到SITEl的选定服务器,要求服务器的标识前缀在路由系统中可达。通常,同一个SITE的所有服务器共享某个前缀,因此在核心网络中,仅需通告聚合过的前缀。该路由前缀通告将经由路由协议承载在NDN网络的路由器中扩散,并注入转发表FIB。据此,客户端的第三请求能够被正确路由到选定服务器。
[0061]8)服务器向客户端返回响应消息。
[0062]服务器接收到第三请求后,服务该请求,并构造响应消息。该响应消息将沿着第三请求的转发路径的反向路径返回给客户端。
[0063]图3示出了依据本发明一实施方式的NDN中基于重定向的任播方法的实体交互图。其中,步骤(I) -(8)分别对应图2中的八个步骤。
[0064]图4示出了依据本发明一实施方式的NDN中基于重定向的任播系统部署示意图,包括:
[0065]客户端:用于生成并向网络发送第一请求,从网络接收第一层调度器返回的第一重定向通告,依据第一重定向通告生成并向网络发送第二请求,从网络接收第二层调度器返回的第二重定向通告,依据第二重定向通告生成并向网络发送第三请求,从网络接收由服务器返回的响应消息;
[0066]第一层调度器:用于向网络通告通用服务名或其前缀,从网络接收第一请求,依据第一预设策略选择服务器群,生成并沿着第一请求到达端口返回第一重定向通告;
[0067]第二层调度器:用于向网络通告第二层调度器依赖服务器名或其前缀,从网络接收第二请求,依据第二预设策略选择服务器,生成并沿着第二请求到达端口返回第二重定向通告;
[0068]服务器:用于接收第三请求,生成和沿着第三请求到达端口返回响应消息;
[0069]中间路由器:用于按照NDN的规则建立和更新路由转发表,根据FIB表转发第一、第二、第三请求消息,根据PIT表沿着第一请求转发路径的反向路径返回第一重定向通告,根据PIT表沿着第二请求转发路径的反向路径返回第二重定向通告,根据PIT表沿着第三请求转发路径的反向路径返回响应消息。
[0070]通过本发明所提出的技术方案,能够在NDN网络中满足多样化的任播需求。且该能力的提供不改变NDN网络架构的内容命名规则和NDN转发弓I擎的处理逻辑。
[0071]本技术领域技术人员可以理解,本发明可以涉及用于执行本申请中所述操作中的一项或多项操作的设备。所述设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备,所述通用计算机有存储在其内的程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、⑶-ROM、和磁光盘)、随即存储器(RAM)、只读存储器(ROM)、电可编程ROM、电可擦ROM (EPROM )、电可擦除可编程ROM (EEPROM )、闪存、磁性卡片或光线卡片。可读介质包括用于以由设备(例如,计算机)可读的形式存储或传输信息的任何机构。例如,可读介质包括随即存储器(RAM)、只读存储器(ROM)、磁盘存储介质、光学存储介质、闪存装置、以电的、光的、声的或其他的形式传播的信号(例如载波、红外信号、数字信号)等。
[0072]本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来生成机器,从而通过计算机或其他可编程数据处理方法的处理器来执行的指令创建了用于实现结构图和/或框图和/或流图的框或多个框中指定的方法。
[0073]本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
[0074]以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
【主权项】
1.一种NDN中基于重定向的任播方法,包括下述步骤: 客户端向第一层调度器发送第一请求; 第一层调度器依据第一预设策略选择服务第一请求的服务器群; 第一层调度器向客户端返回第一重定向通告; 客户端依据第一重定向通告向第二层调度器发送第二请求; 第二层调度器依据第二预设策略选择服务第二请求的服务器; 第二层调度器向客户端返回第二重定向通告; 客户端依据第二重定向通告向所选择服务器发送第三请求; 服务器向客户端返回响应消息。2.如权利要求1所述的方法,其特征在于,所述客户端向第一层调度器发送第一请求: 第一层调度器向路由系统通告第一请求的服务名前缀; 第一请求按照NDN的路由过程转发到第一层调度器。3.如权利要求1所述的方法,其特征在于,所述第一重定向通告: 第一重定向通告包括第一层调度器所选择的服务器群的第二层调度器依赖服务名; 第一重定向通告沿着第一请求转发路径的反向路径逐跳返回给客户端。4.如权利要求1所述的方法,其特征在于,所述客户端向第二层调度器发送第二请求: 第二层调度器向路由系统通告第二层调度器标识前缀; 第二请求的服务名为第二层调度器依赖服务名; 第二请求按照NDN的路由过程转发到第二层调度器。5.如权利要求1所述的方法,其特征在于,所述第二重定向通告: 第二重定向通告包括第二层调度器所选择的服务器的服务器依赖服务名; 第二重定向通告沿着第二请求转发路径的反向路径逐跳返回给客户端。6.如权利要求1所述的方法,其特征在于,所述客户端向服务器发送第三请求: 第三请求的服务名为服务器依赖服务名; 第三请求按照NDN的路由过程转发到服务器。7.如权利要求1所述的方法,其特征在于,所述服务器向客户端返回响应消息: 所述响应消息通过第三请求消息转发的反向路径逐跳返回给客户端。8.如权利要求1所述的方法,其特征在于,所述第一请求可以可选地包括客户端生成的流标识。9.如权利要求8所述的方法,其特征在于,所述流标识被复制到第二请求、第三请求和响应消息中。10.一种NDN中基于重定向的任播系统,包括: 客户端,用于生成并发送第一请求、第二请求、第三请求,接收第一重定向通告、第二重定向通告和响应消息; 第一层调度器,用于接收第一请求、依据第一预设策略选择服务器群、生成和返回第一重定向通告; 第二层调度器,用于接收第二请求、依据第二预设策略选择服务器、生成和返回第二重定向通告; 服务器,用于接收第三请求、生成和发送响应消息; 中间路由器,用于按照NDN的规则建立和更新路由转发表,转发第一、第二、第三请求消息,返回第一、第二重定向通告和响应消息。
【文档编号】H04L12/701GK105915450SQ201610389028
【公开日】2016年8月31日
【申请日】2016年6月2日
【发明人】张国强, 齐德胜, 高茜
【申请人】南京师范大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1