可编程路由器是一种能通过配置和编程,实现灵活部署新服务和减轻网络管理负担的网络层设备。
可编程路由器研究背景
近年来,在互联网上以P2P与QoS为代表的新应用和新服务不断出现,以覆盖网络(overlay network)和数据中心网络(Data Center Network)为代表的新架构新设计也层出不穷。为了满足精确的网络测量、安全的网络管理及实时的在线配置等需要,研究人员往往不得不对已有的数据包进行修改、或引入自定义的数据包。 但现有的网络只能提供有限的功能和已知的服务,现有的网络设备(如交换机、路由器等)也只能转发标准的或预定义的数据包,不具有动态性和灵活性。若在现有架构上部署新的协议或应用,需要较长的设计周期和大量的费用。 为满足以上需求,并兼顾到潜在的设计空间,可编程器由器(Programmable Router)这一新思想随即应运而生。研究人员以期用它来处理数据流及网络应用的多样性,构造出一种动态的、可编程和可配置的网络处理环境。 但是到目前为止,还没有文献给出关于可编程路由器的精确定义,笔者尝试给出的定义是:可编程路由器是一种能从功能上分解成若干组件与接口,并能通过配置和编程,实现灵活而动态地部署新服务和减轻网络管理负担的网络层设备。 可编程器由器与可扩展器由器(Scalable Router)有一定的区别,可扩展路由器是指:由多个可独立运行的路由节点,通过某种互连结构连接而成的性能、功能可扩展的单映像路由器。其可扩展性主要体现在以下三个方面:交换实体的分布性带来的规模可扩展性;路由实体的分布性带来的路由计算可扩展性;路由器操作系统的分布性带来的功能可扩展性。如 Juniper公司推出的T640型可扩展核心路由器可采用三级Clos网络互联,而Cicso公司推出的CRS-1多机架系统采用三级BENES交换结构互联。因此从功能可扩展上来说,二者大致是类似的,但可扩展路由器偏重于硬件可扩展,通过物理互联使得转发及处理能力更强大;可编程路由器更注重软件可扩展,通过功能分解使得编程与配置更灵活。 主动网络节点(Active Network Node)与可编程路由器也有不同,主动网络中的中间节点(如路由器、交换机等)可以对经过它们的消息流执行定制的计算,但是主动网络节点是带内通讯(in-band communication),而可编程路由器是带外通讯(out-band communication);主动网络节点使用通用的处理器来执行注入的代码,以实现软件重配置算法,可编程路由器可使用通用处理器或网络处理器,通过编程与配置达到目的;主动网络节点关注编程的任意性和实现上层功能的复杂任务,可编程路由器更关注配置与实施的灵活性;并且主动网络节点中的转发元素(Forwarding Elements)一旦定义,就不能再修改或重定义。 |