一种NDN中基于路由和重写的任播方法和系统与流程

文档序号:17554960发布日期:2019-04-30 18:33阅读:161来源:国知局
一种NDN中基于路由和重写的任播方法和系统与流程

本发明涉及命名数据网络(Named Data Networking,NDN)技术领域,尤其涉及一种NDN中基于路由和重写的任播方法和系统。



背景技术:

目前,用户对互联网的访问已经从点对点通信为主转为内容获取为主。而传统的TCP/IP网络仅传输内容,并不感知内容,从而造成了网络上大量的冗余流量传输。为了解决由于内容获取而引发的内容爆炸,研究界提出了以内容为中心的网络NDN,实现了内容和地址以及发送者和接收者的解耦,并提供泛在的内置缓存来满足用户对内容的具有重尾特征的异步访问。

现有互联网存在许多大规模的具有亿万的服务,如Google,Facebook,微信等。这些服务通常都有一组物理上分布但提供相同服务的服务器或服务器集群。对用户而言,这类服务本质上属于任播服务。但是,现有NDN的传输模式仅提供简单的基于任播路由的任播机制,无法满足灵活多变的任播需求。因此,有必要提出一种NDN中能满足多样化需求的任播技术。



技术实现要素:

本发明为解决上述技术问题,提供一种NDN基于路由和重写的任播方法和系统,能不破坏CCN内容路由器转发引擎的转发逻辑。所述技术方案如下:

一方面,本发明提出一种NDN基于路由和重写的任播方法,包括下述步骤:

客户端向网络发送第一请求;

中间路由器基于任播路由将第一请求转发到某个服务器群的调度器;

调度器依据第一预设策略选择服务群中的一个服务器;

调度器依据调度器与服务器之间的协议将第一请求改写为第二请求;

调度器将第二请求转发给所选择的服务器;

服务器向调度器返回第一响应消息;

调度器根据调度器和服务器之间的协议将第一响应消息改写为第二响应消息;

调度器将第二响应消息返回给客户端。

进一步地,所述第一请求的服务名是一个任播服务名;每个服务器群的调度器都向网络通告该任播服务名;第一请求由中间路由器通过NDN的任播路由机制转发到若干个服务器群中的某一个服务器群的调度器。

进一步地,所述第二请求包括能标识所选择服务器的标识。

进一步地,所述第二响应消息的服务名为与第一请求的服务名相同的任播服务名,第二响应消息通过第一请求消息转发的反向路径逐跳返回给客户端。

另一方面,本发明提出一种NDN中基于路由和重写的任播系统,包括:

客户端:用于生成并发送第一请求,接收第二响应消息;

调度器:用于向网络通告任播服务名或其前缀、接收第一请求、依据第一策略选择服务器、重写第一请求为第二请求、转发第二请求、接收第一响应消息、重写第一响应消息为第二响应消息、转发第二响应消息;

服务器:用于接收第二请求、生成和发送第一响应消息;

中间路由器:用于按照NDN的规则建立和更新路由转发表,依据FIB表转发第一请求消息,依据PIT表返回第二响应消息。

本发明采用以上技术方案与现有技术相比,具有以下技术效果:

通过本发明,能在NDN中支持多样化的任播需求,特别是能有效解决扩展性问题、能根据服务器状态灵活地选择服务器。另外,本发明所提出的技术没有破坏NDN内容路由器转发引擎的转发逻辑。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

图1示出了依据本发明一实施方式的任播服务场景示意图。

图2示出了依据本发明一实施方式的NDN中基于路由和重写的任播方法流程图。

图3示出了依据本发明一实施方式的NDN中基于路由和重写的任播方法的实体交互图。

图4示出了依据本发明一实施方式的NDN中基于路由和重写的任播系统部署示意图。

具体实施方式

下面详细描述本发明的实施方式,所述实施方式的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施方式是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的任一单元和全部组合。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语)具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样定义,不会用理想化或过于正式的含义来解释。

图1示出了依据本发明一实施方式的任播场景示意图。图中,一个大型服务通过多个地理上分散的服务器群来提供服务。这些地理上分散的M个服务器群Site 1,Site 2,...,Site M通过网络相连。每个Site都有多个服务器,例如Site k包括Nk个服务器。每个服务器都提供相同的服务。希望访问服务的客户端通过网络发出服务请求,最后由某个服务器群中的一个服务器服务请求。连接客户端和各服务器群的网络是NDN网络。

本发明提出的NDN中基于路由和重写的任播方法引入了调度器这一实体,如图3所示。每个服务器群都有一个调度器,用于选择服务器群中的一个服务器。调度器通常与某个服务器群位于同一个网络,作为服务器群的门面。

图2示出了依据本发明一实施方式的NDN中基于路由和重写的任播方法流程图。具体包括下述步骤:

1)客户端向网络发送第一请求。

客户端发送的第一请求中的服务名为所述服务的虚拟服务名,例如/foo.com/generic-service-name。

为了使得以上述服务名前缀的请求能被转发到某个服务器群的调度器,每个服务器群的调度器在部署后需向NDN的路由系统通告以所述服务的虚拟服务名为前缀的路由条目,即/foo.com/generic-service-name。可选地,调度器可以将聚合过的路由条目向路由系统通告,如/foo.com。所述路由条目通告消息经路由协议承载向NDN网络的路由器扩散,并注入路由转发表FIB。本质上,该路由条目是一个任播路由条目,中间路由器通过路由协议计算出合适的到达某个调度器的转发端口。

2)中间路由器基于任播路由将第一请求转发到某个服务器群的调度器。

接收到第一请求后,中间路由器依据FIB中的转发条目匹配合适的端口,将其逐跳转发到某个服务器群的调度器。由于多个服务器群的调度器都通告了相同的路由条目,因此,不同的客户端发出的对相同服务的请求可能会被转发到不同的服务器群的调度器,而相同的客户端在不同时刻发出的对相同服务的请求也可能会被转发到不同的服务器群的调度器。因此,在基于任播服务的机制下,难以支持基于流的任播。

3)调度器依据第一预设策略选择服务群中的一个服务器。

当第一请求依据任播路由被转发到了某个服务器群的调度器后,调度器依据第一预设策略选择服务第一请求的服务器。为此,调度器至少需要配置所在的服务器群的服务器信息。服务器还可以将自身的状态定期或实时反馈给调度器,以便其进行更复杂的请求调度。调度器可以采用简单的随机策略随机选择一个服务器服务第一请求,也可以采用轮转策略进行请求调度,还可以依据服务器的状态(如实时负载、剩余服务能力等)进行请求调度。本发明对调度器采用的第一预设策略不加以限制。

4)调度器根据调度器和服务器之间的协议将第一请求改写为第二请求。

确定了服务第一请求的服务器后,调度器接着将第一请求改写为第二请求,并记录下该改写行为。调度器根据调度器和服务器之间运行的协议进行请求的改写,调度器需要能够基于所述的协议将改写后的第二请求转发给所选择的服务器。例如,若调度器和服务器之间支持NDN协议,则可以将请求服务名改写为服务器依赖的请求服务名,例如/server-ID/foo.com/generic-service-name。其中server-ID是所选择的服务器的标识。又如,如果调度器和服务器之间运行的是TCP/IP协议,则调度器可以构建一个IP报文,其源地址为调度器的IP地址,目的地址为所选择服务器的IP地址,同时根据服务名generic-service-name确定服务的端口号,将目的端口设置为对应的端口号,而把请求名中的其它参数信息和请求体中的其它信息按照所运行的协议标准进行改写和封装。在改写的过程中,有可能需要执行消息完整性的重新计算,例如IP报文checksum的计算。本发明对第调度器和服务器之间运行的协议和相应的改写规则不加以限制。

5)调度器将第二请求转发给所选择的服务器。

在调度器将第一请求成功改写为第二请求后,将第二请求基于协议转发给所选择的服务器,同时,在调度器上记录下该改写行为。所述的改写记录行为至少要包括第一请求的服务名和第二请求的标识的映射关系,以便调度器在接收到后续响应时能成功地依据该映射关系执行响应消息的反向改写。

6)服务器向调度器发送第一响应消息。

服务器接收到第二请求后,服务该请求,并构造第一响应消息。该第一响应消息以服务器和调度器之间运行的协议格式构建,并基于该协议转发给调度器。例如,如果调度器和服务器之间运行的是NDN协议,则该第一响应消息的服务名即为/server-ID/foo.com/generic-service-name,并沿着第二请求的反向路径返回给调度器。又如,如果调度器和服务器之间运行的是IP协议,则第一响应消息的目的地址和目的端口即为第二请求的源地址和源端口,该第一响应通过IP协议被转发到调度器。

7)调度器根据调度器和服务器之间的协议将第一响应消息改写为第二响应消息。

调度器接收到第一响应消息后,将根据第一请求的改写行为记录,将第一响应消息改写为第二响应消息。例如,如果调度器和服务器之间运行的是NDN协议,则将第一响应消息的服务名/server-ID/foo.com/generic-service-name改写为/foo.com/generic-service-name。在改写时,调度器还可能需要同时更新消息签名和密钥信息。而如果调度器和服务器之间运行的是IP协议,首先获取第一响应消息报文的标识信息,包括<源地址、目的地址、源端口、目的端口>,据此构造第二请求的标识信息,然后根据第一请求的服务名和第二请求的标识信息将其改写成第二响应消息。在执行改写时,除了进行协议转换,调度器还需要设置数据包的密钥信息和消息签名信息。

8)调度器将第二响应消息返回给客户端。

当调度器成功构造第二响应消息后,将第二响应消息沿着第一请求的转发路径的反向路径返回给客户端。

图3示出了依据本发明一实施方式的NDN中基于路由和重写的任播方法的实体交互图。其中,步骤(1)-(8)分别对应图2中的八个步骤。

图4示出了依据本发明一实施方式的NDN中基于路由和重写的任播系统部署示意图,包括:

客户端:用于生成并向网络发送第一请求,从网络接收某一服务器群的调度器返回的第二响应消息;

调度器:位于每个服务器群的前方,用于向网络通告任播服务名或其前缀,接收第一请求,依据第一策略选择服务器,依据调度器和服务器之间运行的协议重写第一请求为第二请求,基于调度器和服务器之间运行的协议转发第二请求,接收服务器返回的第一响应消息,依据调度器和服务器之间运行的协议重写第一响应消息为第二响应消息,沿着第一请求到达的端口返回第二响应消息;

服务器:用于接收第二请求,生成第一响应消息,向对应的调度器返回第一响应消息;

中间路由器:用于按照NDN的规则建立和更新路由转发表,依据FIB表转发第一请求消息,依据PIT表沿着第一请求消息转发路径的反向路径返回第二响应消息。

通过本发明所提出的技术方案,能够在NDN网络中满足多样化的任播需求。且该能力的提供不改变NDN网络架构的内容命名规则和NDN转发引擎的处理逻辑。

本技术领域技术人员可以理解,本发明可以涉及用于执行本申请中所述操作中的一项或多项操作的设备。所述设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备,所述通用计算机有存储在其内的程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD‐ROM、和磁光盘)、随即存储器(RAM)、只读存储器(ROM)、电可编程ROM、电可擦ROM(EPROM)、电可擦除可编程ROM(EEPROM)、闪存、磁性卡片或光线卡片。可读介质包括用于以由设备(例如,计算机)可读的形式存储或传输信息的任何机构。例如,可读介质包括随即存储器(RAM)、只读存储器(ROM)、磁盘存储介质、光学存储介质、闪存装置、以电的、光的、声的或其他的形式传播的信号(例如载波、红外信号、数字信号)等。

本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来生成机器,从而通过计算机或其他可编程数据处理方法的处理器来执行的指令创建了用于实现结构图和/或框图和/或流图的框或多个框中指定的方法。

本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1