6.1.2 路由器的基本构成
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是对传输的分组进行路由选择并转发分组(网络层的数据传送单位是IP数据报等,统称为分组)。
图6-3给出了一种典型的路由器的基本构成框图。
图6-3 典型的路由器的基本构成
由图可见,整个路由器的结构可划分为两大部分:路由选择部分和分组转发部分。这里首先要说明“转发”和“路由选择”的区别。·“转发”是路由器根据转发表将分组从合适的端口转发出去。“路由选择”是按照某
种路由选择算法,根据网络拓扑、流量等的变化情况,动态地改变所选择的路由。·路由表是根据路由选择算法构造出的,而转发表是从路由表得出的。为了简单起见,我们在讨论路由选择的原理时,一般不去区分转发表和路由表的区别。在了解了“转发”和“路由选择”的概念后,下面介绍路由器两大组成部分的作用。
1.路由选择部分
路由选择部分主要由路由选择处理机构成,其功能是根据所采取的路由选择协议建立路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。
2.分组转发部分
分组转发部分包括3个组成:输入端口、输出端口和交换结构。
一个路由器的输入端口和输出端口就做在路由器的线路接口卡上。输入端口和输出端口的功能逻辑上均包括3层:物理层、数据链路层和网络层,用图6-3方框中的1、2和3分别表示(为了说明问题方便,这里以OSI参考模型为例。若采用TCP/IP参考模型,则物理层和数据链路层对应网络接口层)。
(1)输入端口
输入端口对从线路上接收到的信息的处理过程如图6-4所示。
图6-4 输入端口处理过程
输入端口的物理层接收到比特流,数据链路层识别出一个个帧,完成相应的控制功能后,剥去帧的首部和尾部,将分组送到网络层的队列中排队等待处理(当一个分组正在查找转发表时,后面又紧跟着从这个输入端口收到另一个分组,后到的分组就必须在队列中排队等待,这会产生一定的时延)。
为了使交换功能分散化,一般将复制的转发表放在每一个输入端口中,则输入端口具备查表转发功能。
(2)输出端口
输出端口对分组的处理过程如图6-5所示。
图6-5 输出端口对分组的处理过程
输出端口对交换结构传送过来的分组(可能要进行分组格式的转换)先进行缓存处理,数据链路层处理模块将分组加上链路层的首部和尾部组成数据帧(相当于进行了链路层帧格式的转换),然后将数据帧交给物理层后发送到外部线路(物理层也相应地进行了协议转换)。
从以上分析可以看出:分组在路由器的输入端口和输出端口都可能会在队列中排队等待处理。若分组处理的速率赶不上分组进入队列的速率,则队列的存储空间最终必将被占满,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃(路由器中的输入或输出队列产生溢出是造成分组丢失的重要原因)。为了尽量减少排队等待时延,路由器必须以线速转发分组。
(3)交换结构
交换结构的作用是将分组从一个输入端口转移到某个合适的输出端口,其交换方式有3种:通过存储器、通过总线和通过纵横交换结构进行交换,如图6-6所示。图中假设这3种方式都是将输入端口I1收到的分组转发到输出端口O2。
图6-6 3种常用的交换方式
图(a)是通过存储器进行交换的示意图。这种方式进来的分组被存储在共享存储器中,然后从分组首部提取目的地址,查找转发表(目的地址的查找和分组在存储器中的缓存都是在输入端口中进行的),再将分组转发到合适的输出端口的缓存中。此交换方式提高了交换容量,但是开关的速度受限于存储器的存取速度。
图(b)是通过总线进行交换的示意图。它是通过一条总线来连接所有输入和输出端口,分组从输入端口通过共享的总线直接传送到合适的输出端口,而不需要路由选择处理机的干预。这种方式的优点是简单方便;缺点是其交换容量受限于总线的容量,而且可能会存在阻塞现象。因为总线是共享的,在同一时间只能有一个分组在总线上传送,当分组到达输入端口时若发现总线忙,则被阻塞而不能通过交换结构,要在输入端口排队等待。不过现代技术已经可以将总线的带宽提高到每秒吉比特的速率,相对解决了这些问题。
图(c)是通过纵横交换结构进行交换的示意图。纵横交换结构有2N条总线,形成具备N×N个交叉点的交叉开关。若某一个交叉开关是闭合的,则可以使相应的输入端口和输出端口相连接。当输入端口收到一个分组时,就将它发送到与该输入端口相连的水平总线上。若通向所要转发的输出端口的垂直总线是空闲的,则在这个结点将垂直总线与水平总线接通,然后将该分组转发到这个输出端口,此过程是在调度器的控制下进行的。通过纵横交换结构进行交换同样会有阻塞,假如分组想去往的垂直总线已被占用(有另一个分组正在转发到同一个输出端口),则后到达的分组就被阻塞,必须在输入端口排队。