Java教程

计算机网络-4-9-路由器

本文主要是介绍计算机网络-4-9-路由器,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

路由器的构成

路由器的结构

路由器是具有多个输入端口和多个输出端口的专用计算机,其任务就是转发分组。从路由器某个输入端的接收到的分组,按照分组要去的目的地(即目的网络),把该分组从路由器合适的输出端口转发给下一跳路由器。下一跳路由器也按照这样方式处理分组,直到该分组到达该终点为止。路由器的转发分组是网络层的主要工作,图4-42给出了了一种典型的路由器的构成图

image

从图中可以看出,整个路由器部分可以分为两个部分:路由选择部分和分组转发部分。

路由选择部分也称之为控制部分,其核心构件是路由选择处理机,路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,同时经常定期的和相邻路由器交换路由信息并不断更新和路由表。

分组转发部分主要由三部分组成:交换结构,一组输入端口和一组输出端口(这里端口指的是硬件端口)。

交换结构(switching fabric)又称之为交换组织,它的作用是根据转发表(forwarding table) 对分组进行处理,将某个输入端口的进入的分组从一个合适的输出端口转发出去。交换结构本身就是一个网络,但这种网络完全包含在路由器中,因此交换结构可以堪看成"路由器"中的网络

注意转发路由选择的区别。在互联网中,”转发“就是路由器根据转发表把收到的IP地址从合适的端口转发出去(发送出去)。转发仅仅只涉及一个路由器。但”路由选择协议“涉及到多个路由器,路由表是许多个路由器协同工作的结果。这些路由器按照复杂的路由算法,得出整个网络的拓扑结构变化情况,因而能动态的改变所选择的路由,并由此构造出整个的路由表。路由表一般仅包含从目的网络到下一跳(需要到达的下一个路由器IP地址)的映射,而转发表是从路由表中得出的。转发表必须包含完成转发功能所必需的信息,即在转发表的每一行必须包含从到达目的网络到输出端口和MAC地址的信息(如下一跳的MAC地址)的映射。路由表和转发表的数据结构并不一样,因为在转发分组时,转发表的结构应当使查找结构最优化,但路由表则需要对网络拓扑结构变化的计算最优化。路由表是用软件实现的,但转发表用特殊的硬件来实现,。在讨论路由选择原理的时候,我们往往不会区分路由表和转发表,转发表是基于路由表生成的,而可以笼统的使用路由表名词

在图4-42中,路由器的输入和输出端口面都都有三个方框,方框中的1,2,3分别代表的是物理层,数据链路层,网络层。物理层进行比特接受。数据链路层按照链路层协议接收和传送分组的帧。把帧的首部和尾部剥去后,分组就进入了网络层处理模块。若接收到的分组是路由器之间交换路由信息分组(如RIP或者OSPF分组),则把这种分组送到路由器中的路由选择部分中的路由选择处理机。若接受到的是数据分组,则按照分组中的首部中的目的地址查找路由表,从合适的端口转发出去。一个路由器的输入端口和输出端口就在路由器的线路接口卡上。输入端口中的查找和转发功能在路由器的交换功能是最重要的,为了使交换功能分散化,往往把复制的转发表放在每一个输入端口中,路由选择处理机负责对各个输入端中的各个转发表副本进行更新,这些副本称之为影子副本(shadow copy)。分散化交换可以避免在路由器中的某一点出现瓶颈。

当一个分组正在排队查找路由表的时候, 后面又跟着从这个输入端口收到另一个分组,这个后到的分组必须在排队队列中等待,因而产生了一定的时延。图4-43给出了在输入端口的队列中排队的分组的示意图。

image

我们再来看看输出端口上的情况(图4-44)输出端口从交换结构接收分组,然后把它们发送到路由器外面的线路上。在网络层的处理模块中设有一个缓冲区,实际上它就是一个队列。当交换结构传送过来的分组速率超出输出链路的发送速率时,来不及发送的分组就必须暂存到这个缓冲队列中。数据链路层处理模块把分组加上链路层的首部和尾部构成数据帧,转化为比特信号发送到外部线路。

image

从以上的结论可以得出,分组在路由器的输入端口和输出端口都可能会在排队队列中等待处理,若分组中处理的速率赶不上分组进入队列的速率,则队列的存储空间最终必定会减少到零,这就使后面再进入队列的分组由于没存储空间而只能被丢弃。以前我们提到过的分组丢失就是发生在路由器中输入或者输出队列产生溢出的时候当然,设备或者线路发生故障有可能使分组丢失。

交换结构

image

  1. 通过存储器进行交换
    最早使用的路由器就是使用普通的计算机的CPU作为路由选择处理机,路由器的输入端口和输出端口的功能和传统的操作系统中的I/O设备一样。若存储器的带宽(读/写)为每秒M个分组,那么路由器的交换速率(即分组到输入端口传送到输出端口的速率)一定小于M/2,这是因为存储器对读和写需要花费的时间是同一个数量级。
  2. 通过总线进行交换
    采用这种当时,数据包从输入端口通过共享的总线直接传送到合适的输出端口,而不需要路由选择处理机的干预。但是,由于总线是共享的,因此同一时间只能有一个分组在总线上传送,当总线到达输入端口发现总线忙(因为总线正在传送另一个分组),责备阻塞而不能通过交换结构,并在输入端口排队等待。因为每一个要转发的分组都需要通过这一条总线,因此路由器的转发带宽就受总线速率的限制。
  3. 通过纵横交换结构(crossbar switch fabric)进行交换
    这种交换结构常称为互联网络(interconnection network),它有2N条总线,可以与N个输入端口和N个输出端口相连,这取决于相应的交叉结点是使水平总线和垂直总线直通还是断开,若通往所要转发的输出端口的垂直总线是空闲的,则在这个结点将垂直总线与与水平总线接通,然后将分组转发到这个输出端口,。但若这个垂直总线已被占用(有另一个分组正在转发到同一个输出端口),则后到达的分组就会被阻塞,必须在输入端口排队。
这篇关于计算机网络-4-9-路由器的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!