摘 要: 为提高内容定位的效率提出基于名字的路由技术,并给出了该路由技术的基本流程和应用实例。
关键词: IP路由 名字路由 互联网名字转换协议(INRP) 基于名字路由协议(NBRP)
1 内容定位
因特网上几乎所有的流量都与内容分发和定位内容有关。为了加快内容分发,越来越多的内容供应商ICP(Internet Content Providers)将自己的站点复制到全球各地,如采用CDN(Content Delivery Network)技术和Web Caching技术。因而需要解决的问题是如何高效地将客户的请求路由到内容最近的复制地点,以降低用户内容获取时间RTT(Round-Trip Time)。
用户内容获取时间RTT由2部分构成:内容定位的时间和内容服务器((Content Server,CS)提供内容的时间。在高速网下提高内容定位效率更重要。目前,支持内容定位的方法是DNS服务,而DNS服务已变得越来越不适合内容定位。它存在的缺陷主要有:(1)在高速缓存未命中时,客户要访问DNS根服务器以获得站点授权名字服务器的地址,通过查询该授权名字服务器以获得客户附近的内容服务器地址。从访问DNS根服务器到获得内容服务器地址的时间完全是额外开销,影响了系统性能。当网络数据传输速度提高到Gbps级时,该问题尤为突出。(2)基于DNS的内容定位系统在返回给客户的地址记录上一般使用短的生存时间,但这会使客户更频繁地发送名字请求,增加DNS服务器的负载,从而导致网络延时的增加。(3)仅使用网络级度量的系统不会对应用级失效做出反应,因此用户请求可能被连续定向到同一台没响应的Web服务器。(4)由于内容供应商必须用间接方式来决定用户访问哪个内容服务器,故存在多条路径的选择问题。
2 基于名字路由
由于基于DNS服务来定位内容的效率不高,因此引入基于名字路由技术。基于名字路由技术将内容定位问题看作路由问题,其指导思想是:用户想要的连通性不是到某台特别的服务器或者某个特别的IP地址,而是连通一些用名字(一般是URL)指定的内容。这样复制的内容服务器可看作是提供访问内容的备用路由。内容层路由示意图如图1所示。假定每个服务器有需要被获取的内容,则用户可选择通过服务器1、服务器2或者服务器3获取。

基于名字的路由实际上是由支持命名的内容路由器(Content Router,CR)来执行,这些内容路由器像常规的IP路由器和名字服务器那样运行,并且参加基于IP路由和基于名字的路由,构成内容层的基础。大多数内容路由器是防火墙、网关和BGP级路由器。基于名字路由需要在现有的Internet上增加2个新的协议:因特网名字转换协议(Internet Name Resolution Protocol,INRP)和基于名字的路由协议(Name-based Routing Protocol,NBRP)。
2.1 名字查找
基于名字路由时,名字查找由INRP协议支持。INRP与DNS兼容,它与DNS有同样的记录类型和包格式,但具有不同的含义。客户连接1个本地路由器启动内容请求,就如同连接1个预先设置的DNS服务器。客户的请求可以包括整个URL,也可以仅包括URL的“服务器”信息。
每个内容路由器的路由表有几项核心项目:
(1)Name。用URL形式表示(如example.com.cn),用来标识内容服务器或内容服务器在CDN上的复制品。
(2)NextHop。用来标识下一个对等体的IP地址。
(3)Path。用来标识到达内容服务器的时间,为内容路由器选择路径提供参数。
每个内容路由器维护1个名字到下一跳的映射集,就如同IP路由器维护1个地址前缀到下一跳的映射集那样。当有INRP请求到达时,内容路由器将根据请求的内容名字进行路由表的最长后缀匹配搜索,然后根据到达目的内容服务器时延最短的策略选择下一个内容路由器对等体。以这种方法,INRP请求被导向根据路由算法推断出的最近的内容服务器。INRP的路由示意图如图2所示。当INRP请求到达临近目的内容服务器的最后一个路由器时,此路由器返回一条应答信息,应答信息包含目的内容服务器的地址。如果遇到内容路由器或内容服务器没有反应,则中间内容路由器会选择备用路由并重新查找名字。用这种方式,使用户请求可以通过最佳路由导向被要求的内容,并能从失效的内容服务器或者过时的路由信息中恢复,这使得INRP在内容层能应对任何情况。同时路由在服务器名字级进行,这样,URL中的目录名可移到服务器名字的前面,如http://foo.com/bar/index.html可变成http://bar.foo.com/index.html。

2.2 路由通告
基于名字路由时,路由通告由NBRP协议支持。NBRP协议的结构类似于BGP协议,它的作用也与BGP协议非常相似,即选择最好的路由并控制路由的传播。NBRP协议与BGP协议的不同点是:BGP是基于IP地址,而NBRP是基于名字,即BGP在自治系统中分发地址前缀可达信息,而NBRP给内容路由器分发名字后缀可达信息。NBRP的主要作用包括:(1)传播内容路由信息,包括CR、CS的添加和删除等路由信息。(2)当网络拓扑发生变化时,进行路由表的动态更新。与BGP协议类似,NBRP协议也采用距离向量算法。
基于名字的路由示意图如图3所示。基于名字的路由通告中包含如下信息:(1)内容服务器名(URL)。(2)到达内容服务器的下一跳(CS或CR)。(3)到达内容服务器的内容路由器路径。内容服务器的路由通告也可以包括服务器的负载(用响应时间表示)。这个额外的属性表明较长响应时间的内容在更“远”处,内容路由器可以在路由选择时将它作为额外的跳数。

内容路由器可以从基于IP路由和基于名字路由二种方法中获得信息。它参与基于IP路由和基于名字路由,因此基于IP路由策略一定要与基于内容路由策略一致。
3 应 用
基于名字路由目前尚处于研究的初级阶段,还没有在Internet上应用,下面通过构建的应用来说明基于名字路由的优点。
基于名字路由的研究往往与CDN联系在一起。基于名字路由的基本流程如图4所示。互联网上有一个CDN的节点服务器CS,此服务器域名为abc.com.cn。基于名字路由分成以下几部分:(1)路由通告。CS用NBRP协议向它邻近的内容路由器CRn进行路由通告(包括CS可达信息等),CRn同样用NBRP协议将CS的内容可达信息通知CRn的邻居对等体。(2)用户请求。如用户Client请求访问s1.abc.com.cn,该请求到达预先配置的内容路由器CR1,由CR1进行路由表查询,根据最长后缀匹配原则,筛选出与用户请求的名字(s1.abc.com.cn)匹配的路由项,并根据最小时间延迟选择下一个对等体。假定离用户最近的目的内容服务器为CS(abc.com.cn,1.2.3.4),则基于这种方法,INRP协议将名字请求路由到内容路由器CRn(5.6.7.8),CRn即为最临近CS的内容路由器。(3)CRn返回应答信息。该条信息包含CS的IP地址(1.2.3.4),应答沿着INRP请求经过的内容路由器返回。(4)访问内容。用户根据INRP请求过程得到的CS的IP地址,向目的地址发起HTTP等内容请求,获取用户想要的内容。

由以上基本流程可看出,基于名字路由的优点:(1)客户请求在一个RTT内映射到附近的内容服务器上,相比基于DNS方式降低了定位内容的时间,提高了内容定位效率。(2)在高速网环境下,获取内容时间主要由到内容服务器上的RTT决定,不由内容定位决定。(3)即使缓存未命中也仅需一个RTT进行新的名字查找。(4)该方式具有可伸缩性。
4 结束语
基于名字路由技术的研究仍处于起步阶段,在这方面仍有许多工作值得去做,有理由相信随着基于名字路由技术的发展,未来的网络结构将发生较大的改变。
参考文献
1 Gritter M.An Architecture for Content Routing Support in the Internet.http://www-dsg.stanford.edu/papers/conten-trouting,2003
2 Border Gateway Protocol 4(BGP-4).RFC1771,1995
3 金世杰,赵问道.CDN网络路由技术.计算机应用,2003;20(8)
