路由器基础

路由器在网络互连中得到广泛使用,始于20世纪80年代后期。因为互联网的规模越来越大,同时更多的异种网进行互连,网桥已无法适应这种环境。路由器则与网桥不同,是在网络层实现网间互连的,它可实现同类型或不同类型的网络互连。 其实,路由器是一种具有多个输入端口和多个输出端口的专用计算机,其主要功能是建立、维护和更新路由表,并实现网络间的分组转发。另外,路由器还具有数据处理功能(如分组过滤、分组转发、优先级、复用、加密、压缩和防火墙等)和网络功能。路由表根据路由算法产生,表中存储着可能的目的地址及如何到达目的地址的路由信息。路由器在转发分组时必须查询路由表,以确定将分组通过哪个端口转发出去。路由器的构成如下图所示。

image

如图所示,路由器由路由选择和分组转发两个部分组成。其中,路由选择部分的核心构件是路由选择处理机。该处理机的主要任务是根据所选用的路由选择协议构建路由表,并与相邻路由器交换路由信息,更新和维护此路由表。分组转发部分由交换结构、一组输入端口和一组输出端口组成。交换结构起着根据转发表对分组进行转发处理的作用。交换结构的具体实现方法有多种,常用的有通过存储器、总线和纵横交换结构三种方法。输入端口和输出端口在图6-27中各含有三个方块1、2和3分别表示代表物理层、数据链路层和网络层的处理模块。物理层处理模块进行比特的接收和发送。数据链路层处理模块按照链路层协议接收到达的帧,并去掉帧的首部和尾部,将其送往网络层处理模块。若帧的内容是路由交换信息则送往路由选择处理机,只有帧的内容是数据分组时才按首部中的目的地址查找转发表,把分组转发到合适的输出端口。网络层处理模块完成分组的转发功能。为了适应传输线路的传送速率,在网络层的处理模块中设有缓冲区,逻辑上它是一个队列结构。

按照路由算法的不同,路由表分为静态路由表和动态路由表。两者之间的根本区别在于路由表的内容是否随网络状态而变化。静态路由表是由人工建立的,网管人员将每个目的地址的路径输入路由表中,更新静态路由表也由人工进行,因此仅适用于小型的、结构不经常改变的局域网系统中。大型互联网通常采用动态路由表,在网络系统运行时,系统将自动运行动态路由选择算法建立路由表,网络结构发生变化时,路由表也随之自动更新。

路由器对动态路由表的管理是通过运行路由程序来完成的,这种路由程序也可分为静态和动态两种。在复杂的互连环境中,如果路由程序只收听其他路由器发来的路由表信息,而不广播自己的路由表,这种路由程序称为静态路由程序。反之,如果路由程序既收听来自其他路由器发来的路由表信息,又广播自己的路由表,则称为动态路由程序。路由程序通过收集来自其他路由器发来的路由表信息来动态地修改自己的路由表,从而适应网络环境的变化。

前面曾指出,路由表与转发表是有区别的。在互联网中,实现路由选择的路由表是由多个路由器按照路由选择算法协同工作构建起来的,路由表一般仅包含从目的网络到下一跳(以IP地址表示)的映射。而转发表是由路由表得出的,其中包含完成转发功能所需的信息,如要到达目的网络的转发端口以及某些MAC地址的映射。路由表和转发表应采用不同的数据结构来实现。路由表的结构需适应网络拓扑的变化,而转发表的结构则应使查找过程最优化。所以路由表总是用软件来实现,而转发表则可用特殊的硬件来实现。有时为了简便起见,在讨论路由选择原理时,并不区分路由表和转发表,而是笼统地用路由表这一名词。

路由器有多种分类方法,可按支持协议数目、服务类别、交换能力、结构、功能、应用、性能以及所处的网络位置等进行分类。例如,单协议路由器用于具有相同网络层协议的网络的互连;多协议路由器则可支持多种网络层协议,使用多协议路由器几乎可以使多家制造商提供的异种网络实现互连。