路由要有新规则
从本质上讲,路由器技术是一套指导我们如何将数据包从此处传递到彼处的算法。它的主要工作是为经过路由器的每个数据包寻找一条最佳传输路径,并将其有效地传送到目的地。因而,选择最佳路径的策略(即路由算法)是路由器的要害所在。
■Internet路由解决大问题
在电话网中,每进行一次通话就完成了一次路由。带宽问题只在连接重要站点时才予以考虑,可能只有一小部分用来完成非凡通信。因为通话往往要持续几分钟,在通话的同时也完成了路由操作。但在Internet上,当我们把数据包发往它们各自的目的地时,必须进行的计算量大得惊人。每个路由器都要同相邻的设备交换往来的信息,并计算使用的路径,以及在接下来的几分钟或几个小时里使用的路由,直到出现某些变化为止。
在结构简单的网络中,路由协议工作起来显得得心应手。但是,随着网络规模的不断扩大以及网络的更加复杂化,必须引入一些重要技术,如开放最短路径优先(OSPF)、中间系统到中间系统(IS-IS)和Cisco系统专用增强内部网关路由协议(EIGRP)等。在Internet中,必须依靠这些协议形成稳定的网络。
在各网络之间,通常采用边缘网关协议(BGP)。确切地说,它不是路由协议,而是一种信息分配协议。每个网络操作员都要制订“路由规则”,以便确定哪些信息将向外界发布,哪些信息将从相邻网络上接收。当采用BGP进行路由信息分配时,首先根据这些路由规则过滤掉不需要的部分,再对剩下的信息进行选择。事实上,针对一组特定地址选定的路径不一定是最好的,它往往是选择某个邻近的路由器,或是途经网络节点最少的一条通路,或是按照其他的某个标准选择一条路径。实际上,路由规则谋求的不只是一条在给定时间内能传输尽可能多的信息的线路,它首先要决定在传输过程中谁同谁建立连接的问题。
■路由缺陷不容忽视
目前,在Internet路由规则上还存在着一系列问题。路由器分布于网络中的数量很大,如何有效地治理其地址空间以及多宿主网络(具有多个服务器提供者的网络)的信息量,现在还没得到很好的解决。
散布各处的路由器的数量很大,而且还在不断增长。对于这两点,任何人都不会感到惊异,因为Internet正在广为传播,它的增长速度极快。90年代初期制定的关于IP地址的分配原则远非最佳方案,假如不加改变地沿用下去的话,也许早在1994年的某一天,就已耗尽了全部IP地址。
这一缺陷已得到修补,我们启用了无级互联网络域名路由技术。该技术引入了地址块的概念,它由一个可变长度的地址前缀加上宿主部分组成。这样可以将系统隐藏在网络地址转换器后面的个人地址空间中。人们从服务器提供者保留的存储库那里获取他们各自的地址,这也就是我们所谓的逻辑地址。
在应用了这项技术后,主干网路由表的增长稳定了好几年。但在最近的两年中,路由表再度开始了指数增长,这个问题目前还没到很严重的地步,据说是因为存储器相当便宜。但它会带来麻烦是迟早的事。
很显然,问题出在多重宿主的网络环境中。以往,我们处理需要提供多种网络服务的做法是,为所有的服务提供者各分配一个单独的地址块。但是,密集的地址分配策略可能导致一些小型网络很难获得此类地址。一种可行的方案是先从某个服务提供者那里获得一个地址前缀,再由此连向所有的服务提供者,然后选择路由。现在所有的边缘网络都有了各自通向主干网的路径,看来这一点足可以解释为什么路径通告会增长得如此迅速。人们想要知道什么样的规则能够限制这种增长,尤其是在路由器比较多的地方。
聚合间隔是指主干网对最佳路径达成一致所需要的时间,通常为数分钟或数十分钟不等。有一种修正方法能把这个时间缩减到大约30秒左右,但30秒仍是一段不短的时间。这种情况下,当你正在与别人通信时,假如线路忽然断了,为了找到一条替换路径,没准还得花费好几分钟时间。
尽管看起来有点希奇,但的确可能出现这样的情形:假如存在一条更好的路径,那么相邻路由器之间的意见不一致,有可能导致信息在其间徘徊达数分钟,形成所谓的路由环,因为各个路由器都认为对方存在一条更好的路径。在一个像Internet这样的分布式系统上,要想把聚合间隔降低到零是很困难的,能把这段时间缩短到秒或毫秒级,就相当不错了。
总之,有时候我们选取的路由并非是最佳的。例如,去年8月29日,IETF所属的Internet结构委员会试验性地追踪了从澳大利亚首都堪培拉的澳洲电信公司分别到新加坡电信的Web服务器和新加坡顶级域名服务器的路径。这两个系统都位于新加坡市区,两者之间在拓扑结构上仅差几个节点,然而它们所需的时间和路径长度却大相径庭。通向域名服务器的线路途经美国洛杉矶,三次连续访问分别耗时501毫秒、648毫秒和504毫秒。显然,这段路径太长、延迟太大(几乎可与地球同步卫星绕地球一圈相比)且波动范围很宽。相比之下,到新加坡电信的路径则好得多,它同澳洲电信能直接连接,三次间隔时间分别为113毫秒、114毫秒和113毫秒。毫无疑问,这种差别是由于采用了不同的规则造成的。
综上所述,最大的现实问题可能存在于聚合间隔时间和多宿主网络上。随着Internet提供的各种服务日益增多,人们渴望这些现实问题尽快得到解决。有效地为多宿主网络配置地址,或许是一项可采用的地址策略,RFC 2260建议采用拓扑编址,但其可行性还有待进一步的实践证实。
然而,要从根本上解决聚合间隔问题,可能需要新一代的边缘网关路由协议。人们已经知道,快速收敛路由的失败,是由于缺乏一种供BGP使用的信息分配算法造成的。目前,某些更好的算法已经存在,接下来的要害问题是要发展一种使用这些算法的新协议。