路由
  路由发生在OSI第三层—网络层,而传统的交换发生在网络的第二层,即数据链路层。在新的网络中,路由的智能和交换的性能被有机地结合起来,目前三层交换机和多层交换机已在企业级网络骨干和园区网中被大量使用。这不是一个新话题,但很少有人将这些概念之间的关联解读清楚。
算法
  路由算法有动静之分,静态路由是一种特殊的路由,它是由管理员手工设定的。手工配置所有的路由虽然可以使网络正常运转,但是也会带来一些局限性。网络拓扑发生变化之后,静态路由不会自动改变,必须有网络管理员的介入。
缺省路由是静态路由的一种,也是由管理员设置的。在没有找到目标网络的路由表项时,路由器将信息发送到缺省路由器。而动态的算法,顾名思义,是由路由器自动计算出的路由,常说的RIP、OSPF等都是动态算法的典型代表。
  另外,还可以将路由算法分为DV和LS两种。DV(Distance Vector,距离向量)算法将当前路由器的路由信息传送给相邻路由器,相邻路由器将这些信息加入自身的路由表。而LS(Link State,链路状态)算法将链路状态信息传给域内所有的路由器,接收路由器利用这些信息构建网络拓扑图,并利用图论中的最短路径优先算法决定路由。
  相比之下,距离向量算法比较简单,而链路状态算法较为复杂,占用的CPU内存也要多一些。但是由于链路状态算法采用的是自身的计算结果,所以比较不容易产生路由循环。RIP是DV类算法的典型代表,而OSPF是LS的代表协议。
 
四种协议
  四种最常见路由协议是RIP、IGRP、OSPF和EIGRP。
  RIP(Routing Information Protocol,路由信息协议)是使用最广泛的距离向量协议,它是由施乐(Xerox)在20世纪70年×××发的。当时,RIP是XNS(Xerox Network Service,施乐网络服务)协议簇的一部分。TCP/IP版本的RIP是施乐协议的改进版。RIP最大的特点是,其实现原理和配置方法都非常简单。RIP基于跳数计算路由,并且定期向邻居路由器发送更新消息。
IGRP是Cisco专有的协议,只在Cisco路由器中实现。它也属于距离向量类协议,所以在很多地方与RIP有共同点,比如广播更新等。它和RIP最大的区别表现在度量方法、负载均衡等几方面。IGRP支持多路径上的加权负载均衡,这样,网络的带宽可以得到更加合理的利用。另外,与RIP仅使用跳数作为度量依据不同,IGRP使用了多种参数,构成复合的度量值,这其中可以包含的因素有:带宽、延迟、负载、可靠性和MTU(最大传输单元)等。
  OSPF协议是20世纪80年代后期开发的,20世纪90年代初成为工业标准,是一种典型的链路状态协议。OSPF的主要特性包括:支持VLSM(变长的子网掩码)、收敛迅速、带宽占用率低等。OSPF协议在邻居之间交换链路状态信息,以便路由器建立链路状态数据库(LSD)之后,路由器根据数据库中的信息利用SPF(Shortest Path First,最短路径优先)算法计算路由表,选择路径的主要依据是带宽。
  EIGRP是IGRP的增强版,它也是Cisco专有的路由协议。EIGRP采用了扩散更新(DUAL)算法,在某种程度上,它和距离向量算法相似,但具有更短的收敛时间和更好的可操作性。作为对IGRP的扩展,EIGRP支持多种可路由的协议,如IP、IPX和AppleTalk等。运行在IP环境时,EIGRP还可以与IGRP进行平滑的连接,因为它们的度量方法是一致的。
  以上4种路由协议都是域内路由协议,它们通常使用在自治系统的内部。当进行自治系统间的连接时,往往采用诸如BGP(Border Gateway Protocols,边界网关协议)和EGP(External Gateway Protocols,外部网关协议)这样的域间路由协议。目前在Internet上使用的域间路由协议是BGP第四版。
  收敛是路由算法选择时所遇到的一个重要问题。收敛时间是指从网络的拓扑结构发生变化到网络上所有的相关路由器都得知这一变化,并且相应地做出改变所需要的时间。这一时间越短,网络变化对全网的扰动就越小。收敛时间过长会导致路由循环的出现。
交换
  谈到交换,从广义上讲,任何数据的转发都可以称做交换。当然,现在我们指的是狭义上的交换,仅包括数据链路层的转发。做网络设备的人对交换的理解大多是从交换机开始的,电路交换机在通信网中已经使用了几十年了,而帧交换的设备,尤其是以太网交换机的大规模使用,则是近几年的事情。
 
理解交换机
  理解以太网交换机的作用,还要从网桥的原理讲起。传统以太网是共享型的,如果网段上有A、B 、C、D等4台计算机,那么A与B通信的同时,C和D只能是被动收听。假如将缆段分开(即微化),A、B在一段上,C、D在另一段上,那么A和B通信的同时,C和D也可以通信,这样原有10M的带宽从理论上讲就变成20M了。同时,为了确保这两个网段可以互相通信,需要用桥将它们连接起来,桥是具有两块网卡的计算机。
在整个网络刚刚启动时,桥对网络的拓扑一无所知。这时,假设A发送数据给B,因为网络是广播式的,所以桥也收到了,但桥不知道B在自己的左边还是右边,它就进行缺省转发,即在另外一块网卡上发送这个信息。虽然做了一次无用的转发,但通过这个过程,桥意识到数据的发送者A在自己的左边。当网络上的每一台计算机都发送过数据之后,桥就是智能的了,它了解每一台计算机在哪一个网段上。当A再发送数据给B时,桥就不进行数据转发了,与此同时,C可以发送数据给D。
  从上面的例子可以看出,桥可以减少网络冲突发生的几率,这就是我们使用桥的主要目的,称做减小冲突域。但桥并不能阻止广播,广播信息的隔绝要靠三层的连接设备——路由器
  按照缆段微化的思想,缆段越多,可用带宽就越高。极限情况是每一台计算机处在一个独立的缆段上,如果网络上有10台计算机,就需要一个10端口的桥将它们连接起来。但实现这样一个桥不太现实,软件转发的速度也跟不上,于是有了交换机,交换机就是将上述多端口的桥硬件或固件化,以达到更低的成本和更高的性能。
  交换机的一个重要的功能是避免交换循环,这就涉及到了STP(Spanning Tree Protocol,生成树协议)。生成树协议的功能是避免数据帧在交换机构成的网络中循环传送。如果网络中有冗余链路的话,STP协议现选出根交换机,然后确定每一台非根交换机到根交换机之间的路径,最后,将此路径上的所有链路置成转发(Forward)状态,其余的交换机之间的连接就是冗余链路,置为阻塞(Block)状态。
  为了从技术上解决这个问题,网络厂商开发了三层交换机,也叫做路由交换机。它是传统交换机的性能和路由器的智能的结合。路由选择仍由路由器完成,但路选的结果被交换机保留在自身的路由缓存中。这样,一个数据流中的第一个数据包经过路由器,后继的所有数据包直接由交换机查表转发。得益于硬件转发,三层交换机可以做到线速路由。
  许多厂家生产的三层交换机本身即是交换机和路由器的结合体,例如一些二层交换机可以选配路由模块,实现三层功能。
  如此看来,企业级网络和园区网的内部就是交换机的天下了,全交换的网络适应新的流量模型,彻底克服了传统网络的路由器瓶颈,极大
地提高了网络的效率。当然,路由器并没有失业,仍然被用在远程连接、拨号访问等场合。