8.1.1 路由器工作原理
图8.1所示的是一个连接两个网络路由器的基本组织结构示意图。图中的网络A和网络B可以是以太网、令牌总线网、令牌环网或者广域网等不同网络,这些网络通过路由器进行互联。
图8.1 路由器的基本组织结构图
路由器在体系结构上具有4个基本的要素:输入端口、输出端口、交换开关、路由处理器和其他端口。
路由器的输入端口是物理链路和输入包的进口处。端口通常由线卡提供,一块线卡一般支持4、8或16个端口。输入端口的功能包括:第一,进行数据链路层的封装和解封装;第二,在转发表中查找输入包目的地址从而决定目的端口,也就是路由查找。路由查找可以使用一般的硬件来实现,也可以通过在每块线卡上嵌入一个微处理器来实现;第三,为了提供QoS服务质量保障,端口要对收到的包分成几个预定义的服务级别。
交换开关可以使用多种不同的技术来实现,其中使用最多的交换开关是总线、交叉开关和共享存储器。交叉开关通过开关提供多条数据通路,具有N×N个交叉点的交叉开关可以被认为具有2 N条总线。如果一个交叉点是闭合的,那么输入总线上的数据在输出总线上就是可用的,否则是不可用的。交叉点的闭合与打开由调度器来控制,因此,调度器限制了交换开关的速度。在共享存储型路由器中,进来的包被存储在共享存储器中,所交换的仅是包的指针,这样可以提高交换容量。
输出端口在包被发送到输出链路之前对包存储,可以实现复杂的调度算法以支持优先级等要求。与输入端口一样,输出端口同样要能支持数据链路层的封装和解封装,以及许多较高级协议。
路由处理器计算路由选择表实现路由协议,并运行对路由器进行配置和管理的软件。同时,它还处理那些目的地址不在路由选择表中的包。其他端口一般指控制端口,由于路由器本身不带有输入和终端显示设备,但它需要进行必要的配置后才能正常使用,所以一般的路由器都带有控制端口,用来与计算机或终端设备进行连接,通过特定的软件来进行路由器的配置。所有路由器都安装了控制端口,使用户或管理员能够利用终端与路由器进行通信,完成路由器配置。
简单来说,路由器实际上是一台计算机,只是多了一些连接不同网络介质类型的网卡而已,并且它的基本操作也很简单。
路由器主要实现两个基本功能:将报文转发到正确的目的地;维护在路由器中用来决定正确路径的路由选择表。
当路由器接收到一个报文时,IP协议处理软件首先检查该报文的生存时间,如果生存时间为0,说明该报文已经到了生存时间,路由器直接将该报文丢弃,并给其源站点返回一个报文超时ICMP消息。如果生存期未到,则从报文头中提取IP报文的目的IP地址,也就是读取IP报文中的第17~20个字节的内容;然后通过网络掩码屏蔽操作,从目的IP地址中找出目的地网络号,再利用目的地网络号从路由表中查找与其相匹配的路由。如果在路由表中没有找到匹配的路由,则把该IP报文放入默认的下一路径的对应发送缓存区中进行排队输出;如果找到了匹配的路由,则将该报文放入对应路由所指定的输出缓存区中进行排队输出。IP协议处理软件经过寻径并按照路由选择表的指示把原IP数据报放入相应的输出缓存器的同时,还将下一个路由器的IP地址传递给对应的网络接口软件,由接口软件完成数据报的物理传输。
IP软件不修改原数据报的内容,也不附加新的内容。网络接口软件收到IP数据报和下一个路由器地址后,首先调用地址解析协议(ARP)完成下一个路由器的IP地址到物理地址的映射,利用该物理地址形成帧,并将该IP数据报封装进该帧的数据区中,最后由子网完成数据报的实际传输。
图8.2所示是以两台处于不同网络主机之间进行通信的示例,通过这个示例来说明路由器的工作原理。(www.xing528.com)
在本例中,3个网络的IP地址分别为192.168.2.0、59.64.74.0和202.128.11.0,路由
图8.2 路由器工作原理示例
器R1连接网络1和网络2,连接的网络接口IP地址分别为192.168.2.1和59.64.74.2;路由器R2连接网络2和网络3,连接的网络接口IP地址分别为59.64.74.10和202.128.11.3。位于网络1中的主机A要与位于网络3中的主机D进行通信。由于两个主机不在同一个网络中,因此需要通过不同的路由器进行路由选择。具体通信过程如下。
首先,主机A有数据发给主机D,主机A根据自己的IP地址与主机D的IP地址进行比较,发现主机D与自己不在同一个网络,所以主机A将数据发送到默认路由器R1,数据报文中包含了目的地,即主机D的IP地址202.128.11.9。
需要说明的是,在路由表信息中,C表示与当前路由器直接相连;R表示协议路由,它包含两个IP地址,左边为目的网络地址,右边为下一跳路由器的网络接口地址。最右边的数字为输出接口序号。
第一步,路由器R1接收到主机A发送的报文后,通过网络掩码屏蔽操作获取该IP报文的目的网络IP号码为202.128.11.0。
第二步,路由器R1检查获得的目的网络IP地址,发现不是路由器直接相连的网络IP地址,即不是网络2的IP地址,从而知道此数据包不是发送给路由器R1本身而是需要被转发的,所以路由器R1根据目的地址在路由表中查找匹配的路由条目,获得输出接口序号为2和下一跳的IP地址为59.64.74.10。下一跳的地址是指下一个将要接收报文的与本路由器连接在同一物理网络上的路由器的网络接口的IP地址。
第三步,路由处理软件将该IP数据报放入2号网络接口的发送缓存区中,并将下一跳的IP地址发送给网络接口处理软件。
第四步,网络接口软件调用地址解析协议完成下一跳路由器IP地址到物理地址(MAC地址)的映射。获得MAC地址后,便将原IP数据报封装成适合网络2传送的数据帧,排队等待发送。
数据帧传送到路由器R2后,通过上述路由表查找操作,获得与目的地IP地址匹配的路由条目。由条目内容可知,该匹配路由条目是目的网络地址202.128.11.0,与路由器R2直接相连。因此,路由处理软件将目的IP地址202.168.11.9发送给网络接口处理软件。
第五步,由于报文已经到达最后一个路由器,所以网络接口软件必须首先调用地址解析协议以获得目的主机的M AC地址,然后对原IP报文进行数据帧包装,接着报文就可以直接发送给目的主机D。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。