软件测试管理

当前位置:首页 > 软件测试管理

《计算机网络:自顶向下方法》第四章 续1

4.3路由器工作原理


既然我们已经概述了网络层的功能和服务,我们将注意力转向网络层的转发功能( forwarding function), 即实际将分组从一台路由器的人链路传送到适当的出链路。我们已经在4.2节中简要地了解了一些转发问题,也就是编址和最长前缀匹配问题。我们以前提到过,计算机网络研究人员和从业人员经常互换使用转发和交换这两个词;在本书中我们也将交互使用这两个词。


图4-6显示了一个通用路由器体系结构的总体视图。其中标识了一台路由器的4个组:


《计算机网络:自顶向下方法》第四章


●输入端口。输人端口执行几项关键功能。它要执行将一条输人的物理链路与路由器相连接的物理层功能,这显示在图4-6中输人端口部分最左侧的方框与输出端口部分最右侧的方框中。它还要执行需要与位于人链路远端的数据链路层交互的数据链路层功能,这表示在输人与输出端口部分的中间方框中。也许更为重要的是,在输人端口还要完成查找功能,这显示在输人端口最右侧的方框中。正是在这里,通过查询转发表决定路由器的输出端口,到达的分组通过路

由器的交换结构将转发到输出端口。控制分组(如携带路由选择协议信息的分组)从输人端口转发到路由选择处理器。注意这里的端口一词,是指路由器的物理输人和输出接口,这完全不同于第2、3章中与网络应用程序和套接字相联系的软件端口。


●交换结构。交换结构将路由器的输入端口与输出端口相连接。这种交换结构完全包含在路由器中,即它是一个网络路由 器中的网络!


●输出端口。输出端口存储从交换结构接收的分组,并通过执行必要的链路层和物理层功能在输人链路上传输这些分组。当.条链 路是双向的(即承载两个 方向的流量)时,输出端口通常是与该链路的输入端口在同一线路卡(一个包含一个或多个输入端口的印刷电路,它与交换结构相连)上成对出现的。


●路由选择处理器。路由选择处理器执行路由选择协议(我们将在4.6节中学习),维护路由选择表以及连接的链路状态信息,并为路由器计算转发表。它还执行网络管理功能,我们将在第9章学习相关内容。


4.1.1节讲过,我们对路由器的转发功能和路由选择功能加以区分。一台路由器的输入端口、输出端口和交换结构共同实现了这种转发功能,并且总是用硬件实现,如图4-6所示。这些转发功能有时总称为路由器转发平面( router forwarding plane)。为了理解为何需要硬件实现,考虑具有10Gbps带宽的输人链路和64字节的IP数据报,其输入端口在另一个数据报到达前仅有51.2ns来处理数据报。如果N个端口结合在一块线路卡上(因为实践中常常这样做),数据报处理流水线必须以N倍速率运行,这远快过软件实现的速率。转发平面硬件既能够使用厂商自己的硬件设计来实现,也能够使用购买的商用硅芯片(例如英特尔和Broadcom公司所出售的)来实现。


当转发平面以纳秒时间尺度运行时,路由器的控制功能(即执行路由选择协议、对上线或下线的连接链路进行响应,以及执行如我们将在第9章中学习的管理功能),在毫秒或秒时间尺度上运行。这些路由器控制平面( router control plane)通常用软件实现并在路由选择处理器上执行(通常是一种传统的CPU)。


在深入探讨路由器的控制和数据平面的细节之前,我们转向4.1. 1节中的类比,其中分组转发好比汽车进人和离开立交桥。假定立交桥是环状交叉路,在汽车进人该环状交叉路前,需要做一点处理,即汽车停在一个人口站 上并指示它的最终目的地(并非 在本地环状交叉路,而是其旅途的最终目的地)。人口站的一名服务人员查找最终目的地,决定通向最后目的地的环状交叉路的出口,并告诉驾驶员要走哪个出口。该汽车进人环状交叉路(该环状交叉路可能挤满了从其他输人道路进入的其他汽车,朝着其他环状交叉路出口前进),并且最终离开预定的环状交叉路出口斜道,在这里可能遇到了在该出口离开环状交叉路的其他汽车。


在这个类比中,我们能够识别图4-6中的最重要的路由器组件,即人口路和人口站对应于输人端口(具有查找功能以决定本地输出端口);环状交叉路对应于交换结构;环状交叉路出口路对应于输出端口。借助于这个类比,考虑瓶颈可能出现的地方是有益的。如果汽车以极快的速率到达( 例如,该环状交叉路位于德国或意大利!)而车站服务人员很慢,将发生什么情况?这些服务人员必须工作得多快,以确保在人口路上没有车辆拥堵?甚至对于极快的服务人员,如果汽车在环状交叉路上开得很慢,将发生什么情况?拥堵仍会出现吗?如果大多数进人的汽车都要在相同的出口斜道离开环状交叉路,将发生什么情况?在出口斜道或别的什么地方会出现拥堵吗?如果我们要为不同的汽车分配优先权,或先行阻挡某些汽车进人环状交叉路,环状交叉路将如何运行?这些全都与路由器和交换机设计者面对的问题形成类比。


在下面的各小节中,我们将更为详细地考察路由器功能。[ lyer 2008; Chao 2001 ;Chuang 2005; Turner 1988; MeKeown 1997a; Partridge 1998]提供了对一些特定路由器体系结构的讨论。为了具体起见,后继的讨论假定一个数据报网络中转发决定是基于分组的目的地址(而非虚电路网络中的VC号)的。然而,对于虚电路网络而言,概念和技术是相当类似的。



历史事件


Cisco系统:主宰网络的核心


在2012年写本书时,Cisco公司雇佣了65000多人。这个网络公司的巨人是如何发展起来的呢?它的一切是从1984年在硅谷公寓的一间起居室里起步的。


当Len Bosak与他的妻子Sandy Lerner在斯坦福大学工作时,他们就有建造并出售因特网路由器给研究及学术团体的想法,他们成为那个时期因特网的主要培育者。Sandy Lermner起了一个名字Cisco (这是旧金山的一种略称),还设计了公司的桥形标志图案。公司总部最初是他们的起居室,而且刚开始时他们通过信用卡和夜间兼职咨询工作为该项目筹措资金。到了1986年年末,Cisco 的月收入达到了250000美元。到1987年年末,Cisco以1/3公司股份为交换条件,终于成功吸引到了来自Sequoia Capital的200万美元的风险投资。在后来的几年中,Cisco 持续增长并抢占了越来越多的市场份额。与此同时,Bosak/Lemer 与Cisco管理层之间的关系变得紧张起来。Cisco在 1990年公开发售股票,但在同年,Lermer 与Bosak离开了公司。


多年以来,Cisco 在路由器市场之外进行了成功的扩展,销售安全、无线缓存、以太网交换机、数据中心基础设施、视频会议和IP语音产品和服务。然而,Cisco正面临着日益增长的国际竞争,包括来自华为(一个迅速增长的中国网络设备公司)的竞争。在路由器和交换以太网领城与Cisco竞争的公司包括Alcatel- Lucent和Juniper。



4.3.15输入端口


图4-7中给出一个更详细的输入处理的视图。如前面讨论的那样,输人端口的线路端接功能与链路层处理实现了用于各个输人链路的物理层和链路层。在输人端口中执行的查找对于路由器的运行是至关重要的。正是在这个地方,路由器使用转发表来查找输出端口,使得到达的分组将能经过交换结构转发到该输出端口。转发表是由路由选择处理器计算和更新的,但转发表的一份影子副本通常会被存放在每个输入端口。转发表从路由选择处理器经过独立总线( 例如一个PCI总线)复制到线路卡,在图4-6中该总线由从路由选择处理器到输人线路卡的虚线所指示。有了影子副本,转发决策能在每个输人端口本地做出,无须调用中央路由选择处理器,因此避免了集中式处理的瓶颈。


《计算机网络:自顶向下方法》第四章 续1


假定转发表已经存在,从概念上讲表查找是简单的,即我们只是搜索转发表查找最长前缀匹配,如4.2.2 节所描述的那样。但在吉比特速率下,这种查找必须在纳秒级执行(回想我们前面10Gbps链路和一个64 字节P数据报)。因此,不仅必须要用硬件执行查找,而且需要对大型转发表使用超出简单线性搜索的技术;快速查找算法的综述能够在[ Gupta 2001, Ruiz Sanchez 2011]中找到。同时必须对内存访问时间给予特别关注,这导致用嵌人式片上DRAM和更快的SRAM (用作一种DRAM缓存)内存来设计。三态内容可寻址存储器( Tenary Content Address Memory, TCAM)也经常被用于查找。使用一个TCAM,一个32比特IP地址被放人内存,TCAM在基本常数时间内返回对该地址的转发表项的内容。Cisco 8500对每个输人端口有一个64K的CAM。


一旦通过查找确定了某分组的输出端口,则该分组就能够发送进人交换结构。在某些设计中,如果来自其他输人端口的分组当前正在使用该交换结构,一个分组可能会在进入交换结构时被暂时阻塞。因此,一个被阻塞的分组必须要在输人端口处排队,并等待稍后被及时调度以通过交换结构。我们将在4.3.4节中仔细观察分组(位于输入与输出端口中)的阻塞、排队与调度。尽管“查找”在输人端口处理中可以说是最为重要的动作,但必须采取许多其他动作:①必须出现物理层和链路层处理,如前面所讨论的那样;②必须检查分组的版本号、检验和以及寿命字段(这些我们将在4.4.1节中学习,并且重写后两个字段;③必须更新用于网络管理的计数器( 如接收到的IP数据报的数目)。


在结束输入端口处理的讨论之前,我们注意到输人端口查找IP地址然后发送该分组进入交换结构(“动作")的步骤是一种更为一般的“ 匹配加动作”抽象的特定情况,这种抽象执行在许多网络设备中,而不仅在路由器中。在链路层交换机(在第5章讨论)中,除了发送帧进人交换结构去往输出端口外,还要查找链路层目的地址,并采取几个动作。在防火墙(包含在第8章)中,首部匹配给定准则(例如源/目的P地址和运输层端口号的某种组合)的人分组可能被阻止转发,而防火墙是一种过滤所选择的入分组的设备。在网络地址转换(NAT,包含在4.4节中)中,一个运输层端口号匹配某给定值的人分组,在转发(动作)前其端口号将被重写。因此,“匹配加动作"抽象不仅作用大,而且在网络设备中无所不在。



相关内容

文章评论

表情

共 0 条评论,查看全部
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~