一、路由器的工作原理
我们知道路由器是用来连接不同网段或网络的,在一个局域网中,如果不需与外界网络进行通信的话,内部网络的各工作站都能识别其它各节点,完全可以通过交换机就可以实现目的发送,根本用不上路由器来记忆局域网的各节点MAC地址。路由器识别不同网络的方法是通过识别不同网络的网络ID号进行的,所以为了保证路由成功,每个网络都必须有一个唯一的网络编号。路由器要识别另一个网络,首先要识别的就是对方网络的路由器IP地址的网络ID,看是不是与目的节点地址中的网络ID号相一致。如果是当然就向这个网络的路由器发送了,接收网络的路由器在接收到源网络发来的报文后,根据报文中所包括的目的节点IP地址中的主机ID号来识别是发给哪一个节点的,然后再直接发送。
为了更清楚地说明路由器的工作原理,现在我们假设有这样一个简单的网络。假设其中一个网段网络ID号为"A",在同一网段中有4台终端设备连接在一起,这个网段的每个设备的IP地址分别假设为:A1、A2、A3和A4。连接在这个网段上的一台路由器是用来连接其它网段的,路由器连接于A网段的那个端口IP地址为A5。同样路由器连接另一网段为B网段,这个网段的网络ID号为"B",那连接在B网段的另几台工作站设备设的IP地址我们设为:B1、B2、B3、B4,同样连接与B网段的路由器端口的IP地址我们设为B5,结构如图1所示。
图1
在这样一个简单的网络中同时存在着两个不同的网段,现如果A网段中的A1用户想发送一个数据给B网段的B2用户,有了路由器就非常简单了。
首先A1用户把所发送的数据及发送报文准备好,以数据帧的形式通过集线器或交换机广播发给同一网段的所有节点(集线器都是采取广播方式,而交换机因为不能识别这个地址,也采取广播方式),路由器在侦听到A1发送的数据帧后,分析目的节点的IP地址信息(路由器在得到数据包后总是要先进行分析)。得知不是本网段的,就把数据帧接收下来,进一步根据其路由表分析得知接收节点的网络ID号与B5端口的网络ID号相同,这时路由器的A5端口就直接把数据帧发给路由器B5端口。B5端口再根据数据帧中的目的节点IP地址信息中的主机ID号来确定最终目的节点为B2,然后再发送数据到节点B2。这样一个完整的数据帧的路由转发过程就完成了,数据也正确、顺利地到达目的节点。
当然实际上像以上这样的网络算是非常简单的,路由器的功能还不能从根本上体现出来,一般一个网络都会同时连接其它多个网段或网络,就像图2所示的一样,A、B、C、D四个网络通过路由器连接在一起。
图2
现在我们来看一下在如图2所示网络环境下路由器又是如何发挥其路由、数据转发作用的。我们同样需要假设,各网络用户的IP地址分配就不多讲了,图2已有标注。现假设网络A中一个用户A1要向C网络中的C3用户发送一个请求信号时,信号传递的步骤如下:
第1步:用户A1将目的用户C3的地址C3,连同数据信息以数据帧的形式通过集线器或交换机以广播的形式发送给同一网络中的所有节点,当路由器A5端口侦听到这个地址后,分析得知所发目的节点不是本网段的,需要路由转发,就把数据帧接收下来。
第2步:路由器A5端口接收到用户A1的数据帧后,先从报头中取出目的用户C3的IP地址,并根据路由表计算出发往用户C3的最佳路径。因为从分析得知到C3的网络ID号与路由器的C5网络ID号相同,所以由路由器的A5端口直接发向路由器的C5端口应是信号传递的最佳途经。
第3步:路由器的C5端口再次取出目的用户C3的IP地址,找出C3的IP地址中的主机ID号,如果在网络中有交换机则可先发给交换机,由交换机根据MAC地址表找出具体的网络节点位置;如果没有交换机设备则根据其IP地址中的主机ID直接把数据帧发送给用户C3,这样一个完整的数据通信转发过程也完成了。
从上面可以看出,不管网络有多么复杂,路由器其实所作的工作就是这么几步,所以整个路由器的工作原理都差不多。当然在实际的网络中还远比上图2所示的要复杂许多,实际的步骤也不会像上述那么简单,但总的过程是这样的。