随笔 - 11, 文章 - 0, 评论 - 4, 引用 - 0
数据加载中……

什么是路由器

路由器是一种多端口设备,它可以连接不同传输速率并运行于各种环境的局域网和广域网,也可以采用不同的协议。路由器属于O S I 模型的第三层。第2 章曾经讲过,网络层指导从一个网段到另一个网段的数据传输,也能指导从一种网络向另一种网络的数据传输。过去,由于过多的注意第三层或更高层的数据,如协议或逻辑地址,路由器曾经比交换机和网桥的速度慢。因此,不像网桥和第二层交换机,路由器是依赖于协议的。在它们使用某种协议转发数据前,它们必须要被设计或配置成能识别该协议。传统的独立式局域网路由器正慢慢地被支持路由功能的第三层交换机所替代。但路由器这个概念还是非常重要的。本节的剩余部分讲述的都是关于第三层交换机的应用。独立式路由器仍然是使用广域网技术连接远程用户的一种选择。

路由器是一种连接多个网络或网段的网络设备,它能将不同网络或网段之间的数据信息进行“翻译”,以使它们能够相互“读”懂对方的数据,从而构成一个更大的网络。
路由器有两大典型功能,即数据通道功能和控制功能。数据通道功能包括转发决定、背板转发以及输出链路调度等,一般由特定的硬件来完成;控制功能一般用软件来实现,包括与相邻路由器之间的信息交换、系统配置、系统管理等。
多少年来,路由器的发展有起有伏。90年代中期,传统路由器成为制约因特网发展的瓶颈。ATM交换机取而代之,成为IP骨干网的核心,路由器变成了配角。进入90年代末期,Internet规模进一步扩大,流量每半年翻一番,ATM网又成为瓶颈,路由器东山再起,Gbps路由交换机在1997年面世后,人们又开始以Gbps路由交换机取代ATM交换机,架构以路由器为核心的骨干网。
路由器(Router)是工作在OSI第三层(网络层)上、具有连接不同类型网络的能力并能够选择数据传送路径的网络设备。路由器有三个特征:工作在网络层上、能够连接不同类型的网络、能够选择数据传的路径。 1、路由器工作在第三层上,路由器是第三层网络设备,这样说大家可能都不理解,就先说一下集线器和交换机吧。   集线器工作在第一层(即物理层),它没有智能处理能力,对它来说,数据只是电流而已,当一个端口的电流传到集线器中时,它只是简单地将电流传送到其他端口,至于其他端口连接的计算机接收不接收这些数据,它就不管了。   交换机工作在第二层(即数据链路层),它要比集线器智能一些,对它来说,网络上的数据就是MAC地址的集合,它能分辨出帧中的源MAC地址和目的MAC地址,因此可以在任意两个端口间建立联系,但是交换机并不懂得IP地址,它只知道MAC地址。   路由器工作在第三层(即网络层),它比交换机还要“聪明”一些,它能理解数据中的IP地址,如果它接收到一个数据包,就检查其中的IP地址,如果目标地址是本地网络的就不理会,如果是其他网络的,就将数据包转发出本地网络。   2、路由器能连接不同类型的网络   我们常见的集线器和交换机一般都是用于连接以太网的,但是如果将两种网络类型连接起来,比如以太网与ATM网,集线器和交换机就派不上用场了。   路由器能够连接不同类型的局域网和广域网,如以太网、ATM网、FDDI网、令牌环网等。不同类型的网络,其传送的数据单元——帧(Frame)的格式和大小是不同的,就像公路运输是汽车为单位装载货物,而铁路运输是以车皮为单位装载货物一样,从汽车运输改为铁路运输,必须把货物从汽车上放到火车车皮上,网络中的数据也是如此,数据从一种类型的网络传输至另一种类型的网络,必须进行帧格式转换。路由器就有这种能力,而交换机和集线器就没有。   实际上,我们所说的“互联网”,就是由各种路由器连接起来的,因为互联网上存在各种不同类型的网络,集线器和交换机根本不能胜任这个任务,所以必须由路由器来担当这个角色。   3、路由器具有路径选择能力   在互联网中,从一个节点到另一个节点,可能有许多路径,路由器可以选择通畅快捷的近路,会大大提高通信速度,减轻网络系统通信负荷,节约网络系统资源,这是集线器和二层交换机所根本不具备的性能。   
路由器的种类  
 1、接入路由器   接入路由器是指将局域网用户接入到广域网中的路由器设备,我们局域网用户接触最多的就是接入路由器了。只要有互联网的地方,就会有路由器。如果你通过局域网共享线路上网,就一定会使用路由器。   有的读者会心生疑问:我是通过代理服务器上网的,不用路由器不也能接入互联网吗?其实代理服务器也是一种路由器,一台计算机加上网卡,再加上ISDN(或Modem或ADSL),再安装上代理服务器软件,事实上就已经构成了路由器,只不过代理服务器是用软件实现路由功能,而路由器是用硬件实现路由功能,就像VCD软解压软件和VCD机的关系一样,结构不同,但是功能却是相同的。   2、企业级路由器   企业级的路由器是用于连接大型企业内成千上万的计算机,普通的局域网用户就接触不到了。与接入路由器相比,企业级路由器支持的网络协议多、速度快,要处理各种局域网类型,支持多种协议,包括IP、IPX和Vine,还要支持防火墙、包过滤以及大量的管理和安全策略以及VLAN(虚拟局域网)。   3、骨干级路由器   只有工作在电信等少数部门的技术人员,才能接触到骨干级路由器。互联网目前由几十个骨干网构成,每个骨干网服务几千个小网络,骨干级路由器实现企业级网络的互联。对它的要求是速度和可靠性,而价格则处于次要地位。硬件可靠性可以采用电话交换网中使用的技术,如热备份、双电源、双数据通路等来获得。这些技术对所有骨干路由器来说是必须的。   骨干网上的路由器终端系统通常是不能直接访问的,它们连接长距离骨干网上的ISP和企业网络。互联网的快速发展给骨干网、企业网和接入网都带来了小的挑战。
路由概述
路由的过程可以概述为一个节点找到通往每个可能目的地的路径。路由出现在从第一层到第七层的每一层中。人们所熟悉的路由是出现在第三层(网络层)的,因此我们也只讨论第三层的IP路由。
交换路由信息的协议联接世界上的许多路由器,尽管这些路由器并不同类,通过路由表还是可以提供它们共同的网络视图。路由表为路由器存储了到达网络上任一目的地所需要的一切必要的信息。
路由协议
各种各样的路由协议被用来填写网络中的路由表。象BGP,OSPF,RIP和ISIS这样的协议可以传输给所有的路由器一个正确和一致的网络视图。
路由协议想要实现目标
你能够想象如果每个路由器都存储从它的节点所能到达的每个目标点所需的信息,很可能该路由器会积累一张庞大的路由表。由于物理上(cpu,内存)的限制路由器很难有时就根本不可能处理一个庞大的路由表。因此在不影响到达每个目的地的能力的情况下,我们要使路由表最小化。例如,一个路由器通过连接到另一个路由器一个DS1链路连接到Internet,那么这个路由器可以将Internet上所有节点的信息都存储,或者它也可以将所有DS1串行链路外的非本地的信息都不存储。也就是说路由器没有在它的路由表中存储任何有关数据“包”要寻找的非本地网络目的地的信息,而是将这些“包”发送到串行链路另一端的路由器,由这个路由器来提供必要的信息。我们常把像本例中我们所说的在串行DS1链路另一端的路由器称为“Gateway of Last Resort”。这种简单的小把戏可以替路由表节省30个数量级的条目。路由信息没有必要被过于频繁地在路由器之间交换。通常路由表中的搅拌器给任何路由器所能提供的贫乏的内存和CPU施加了许多不必要的压力。信息的复制不应该影响路由器的转发操作。尽管没有必要每毫秒都刷新路由表,当然也不能每隔一个星期才刷新一次路由表。路由的一重要的目标就是为主机提供能够准确反映当前网络状态的一张路由表。
路由器最重要的操作是将接收的包发送到正确的路径。未经路由的包可能会导致数据丢失。而路由表的不一致将会导致路由环路并使某个数据包在两个相邻的界面之间被循环发送。
人们十分希望所有的路由器都能有快速的收敛性。收敛性可以被非正式地定义为计量所有路由器获得一致的网络视图的速度的单位。人们希望有极小的收敛时间,因为如此网络上的每个路由器即使在网络拓扑(即网络视图)被严重改变的情况下也能准确地反映当前的网络拓扑。当网络拓扑被改变时,每个路由器必须传输数据以帮助其它路由器来收敛出正确的网络视图。但是在刷新路由表时快速收敛也存在着它的问题。如果一个链路在迅速地振动(一会儿断开,一会儿合上),它会产生大量的安装和撤销的请求。这个链路最终将会耗尽网络上每个路由器的资源,因为其它路由器被强迫快速安装或撤消这个路由。因此,即使快速收敛是路由协议的目标,它也不是所有网络难题的万能药。
距离矢量路由
距离矢量路由协议向路由器的所有邻居分发一张记录形式为<目标,开销>的列表。这些记录为网络中的每个非本节点的其它节点赋上了开销这个值。值得注意的是这些信息只分发给源路由器的邻路由器。这里的邻路由器常常是物理上的,但在eBGP中也有适用于逻辑上的情况。开销的意思是从源路由器到目标节点的链路开销的总和。源路由器定期地刷新它的距离矢量记录并把记录分发给它的邻路由器。邻路由器将过去接收到的记录与现在的比较,如果过去的开销较小路由器将沿过去接收的距离矢量记录所指的路径发送输出。
许多距离矢量在实际使用时将会碰到无穷大的问题。例如,我们假设所有的绰范加幸桓隹 ピ ⑶颐恳欢韵嗔诮诘阒 涞牧绰范杂σ桓龅ピ H绻 酚善鱔连接到路由器Y并且路由器Y连接到路由器Z如图1,我们将会发现无穷大的问题。Y知道到Z要有1个单元的开销并且X知道到Z要2个单元的开销。假设链路YZ关闭,这条链路的开销就成为无穷大(如图2)。现在Y知道到达Z的开销是无穷大,它就将这个距离矢量路由发送给X。假设X这时发送给Y一个距离矢量路由声称它到达Z要2个单元的开销。现在Y就会认为它能通过X到达Z,它就发送给X一个刷新的距离矢量路由声称它到达Z的开销是3个单元(如 图3)。请注意X没有想到Y发给它的这个距离矢量路由是由它发送给Y的那个距离矢量路由推算来的。这就是距离矢量路由的严重缺陷,在它们未改进的结构中不包含路由障碍的信息。正如图例所示路由器将会不断改变到Z的路径信息。X和Y这两个路由器将会永远交换这个有关Z路由器的路径信息或者直到开销单元的值到达某一个事先约定的无穷大的值(例如,在RIP中是15)。

 

X--------------------Y--------------------Z

Y:1 X:1 X:2
Z:2 Z:1 Y:1

[ 图一 ]

X--------------------Y--------* *---------Z

Y:1&nbs

p; <------------- Z:无穷大
Z:2 -------------> X:1

[ 图二 ]

X--------------------Y--------* *---------Z

Z:无穷大(从 Y) -> X:1
Y:1 <------------- Z:3

[ 图三 ]

使用路径矢量路由就可以解决无穷大的问题。每个距离矢量也包括他所通过的路径(如图4)。路由器如果接收到一个路径矢量中包含自己的刷新记录,路由器将不会刷新该记录(如图5)。边界网关协议(The Border Gateway Protocol)就使用了上述的方法以解决无穷大的问题。很明显如果你想使路由表包含路由器所传输的AS(Autonomous Systems on the internet)路径信息,你将必须要向路由表中添入更多的信息。因此BGP的设计者决定牺牲一点路由器能够承受的起的存储空间和处理能力。


X--------------------Y--------------------Z

Y:1 (Y) X:1 (X) X:2 (YX)
Z:2 (YZ) Z:1 (Z) Y:1 (Y)

[ 图四 ]

X--------------------Y--------* *---------Z

Y:1 (Y) X:1 (X)
Z:2 (Y Z) Z:infinity

[ 图五 ]
另一个无穷大问题的解决之道是分离范围。主要思想是,如果邻路由器处在通往目的地的路径上的第二个节点,路由器就不向该邻路由器广播该路径。这个解决的办法可以用刚才的例子来说明。因为到Z的路径是从X通过Y再到Z,又因为Y是X的邻路由器,所以该路径从X广播时Y不被广播。

链路状态路由
一个路由器在使用链路状态路由时,它将会向网络上所有其它的路由器分发它到它邻路由器的距离。这就使每个路由器不用知道从某一源节点到目的节点的开销,该路由器就可以产生一张路由表。环路的问题不会出现,因为每个路由器都拥有整个网络的拓扑。主要思想是一个路由器产生有3个部分的记录包含源路由器(它自己)、邻路由器和到邻路由器的开销。因此,如果路由器A通过一条开销为3的链路连接到路由器B,并且路由器A通过一条开销为5的链路连接到路由器C,那么路由器将会向网络上所有的路由器广播链路状态包(LSPs)和。每个路由器将可以从接收到的LSPs中推算出一条通向目的节点的最短路径。
很显然,LSP是收敛过程中的一个组成部分。如果向网络中加入了错误的LSP。将会导致错误的路由信息(会使包沿比原来更长的路径传输)甚至产生路由黑洞。如果路由器C向其它路由器广播一条到他的邻路由器的路径信息,但当该链路断开时路由器C撤回了刚才的广播。不幸的是第二个LSP先到而第一个LSP先到,这时其它路由器的路由表就不能正确地反映网络的拓扑,而只能等到另一个正确的LSP来到。
为了解决这个问题,LSP引进了序列码。因此网络上所有的路由器都会以一些值作为起始值来初始化他们的序列码,然后在广播他们的LSP。这就解决了刚才的问题。
当使用序列码时会碰到序列码空间是有限这一问题。LSPs可以用的序列码都被设置成有限值。因此,当序列码到达最大值后,有要从最小值重新开始。这就给路由器在比较链路状态的当前记录和刷新记录时带来困难,因为序列码大的有优先权。为了解决这个问题,可以为LSP定义一个最大老化时间。也就是说,如果路由器在X段时间内没有收到刷新记录,它就将现有的记录丢弃而去等待更新的记录。要注意必须使到目的地的路径信息无效。例如,当路由器Y连向某一局网的链路断开时,路由器Y向路由器Z广播了这条链路的信息,这时局网中的路由器们此时还在认为它们仍可以到达Z。如果它们在最大老化时间内接收不到刷新记录,它们就会假设到Y的链路已经不可达。这样所有的路由器的路由表才会一致,路由器Y和Z也可以使用有限的序列码。
序列码的初始化也是这个问题中另一个重要的方面。假设路由器Y重起了,而此时网络又开始重新计算路径。当该路由器的链路状态协议开始工作,它必须知道重新初始化它的序列码为何值以使它和其它路由器保持一致。因此,它就广播一个带有特别的初始化集合的路径信息。这条记录会告诉其它路由器它需要那个序列码,并且其它路由器会告诉它

posted on 2007-12-18 10:47 leellyp 阅读(30) 评论(0)  编辑 收藏 网摘 所属分类: CallCenter


标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
Google站内搜索
找找看



China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
近千种 9-95 新二手计算图书火热销售中!
开发者征途系统新作:《设计模式——基于C#的工程化实现及扩展》

相关文章:

相关链接: