1 路由器的基本概念和分类1977年,国际标准化组织(ISO)制定了开放系统互连基本模型(OSI),OSI参考模型采用分层结构技术,将整个网络的通信功能分为职责分明的七层,由高到低分别是:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。
计算机网络通信中采用最为普遍的TCP/IP协议吸收了OSI标准中的概念及特征。
TCP/IP模型由四个层次组成即:应用层、传输层、网络层、数据链路层和物理层。
只有对等层才能相互通讯。
一方在某层上的协议是什么,对方在同一层次上也必须采用同一协议。
路由器就工作在TCP/IP模型的第三层(网络层),主要作用是为收到的报文寻找正确的路径,并把它们转发出去。
1.1路由器简介传统路由器工作于OSI七层协议的第三层,其主要任务是接收来自于一个网络接口的数据包,根据其中亿含的目的地址,决定转发下一个目的地址。
因此,路由器首先得在转发器由表中查找它的目的地址,若找到了目的地址,就在数据包的帧格前添加下一个MAC(Medium Access Control)地址,同时IP数据包头的TTL(Time To Live)域也开始减数,并计算新的校验名。
当数据包被送到输出端口时,它需要按顺序等待,以便被传送到输出链路上。
路由器在工作时能够按照某种路由通信协议查找设备中的路由表。
如果到某一特定节点有一条以上的路径,那么一般预先确定的路由准则是选择最优(或最经济)的传输路径。
由于各种网络段和其相互连接情况可能会因环境变化而变化,因此路由情况的信息也需要及时更新,所幸的是,这些信息一般是由所使用的路由信息协议规定的定时更新或者按变化发问(事件触发)更新来自动完成的。
网络中,每个路由器的基本功能都是按照一定的规则来动态地更新它所保持的路由表,以便保持路由信息有效。
为了便于在网络间传送报文,路由器总是先按照预定的规则把较大的数据分解成适当大小的数据包,再将这些数据包分别通过相同或不同路径发送出去。
当这些数据包按先后顺序达目的地后,再把分解的数据包按顺序包装成原有的报文形式。
路由器的分层寻址功能是路由器的重要功能之一,该功能可以帮助具有很多节点站的网络来存储寻址信息,同时还能在网络间截获发送到远地网段的报文,起转发作用。
选择最合理的路由,引导通信也是路由器基本功能。
多协议路由器还可以连接使用不同通信协议的网络段,成为不同通信协议网络段之间的通信连接平台。
1.2 路由器的基本构成部分:(1)处理器和其他计算机一样,运行着10S的路由器也包含了一个“中央处理器”(CPU)。
不同系列和型号的路由器,CPU也不尽相同。
路由器的处理器负责执行处理数据包所需的工作,比如维护路由和桥接所需的各种表格以及作出路由决定等等。
路由器处理数据包的速度在很大程度上取决于处理器的类型。
(2)内存所有计算机都安装了某些形式的内存。
路由器主要采用了四种类型:只读内存(ROM)、闪存、随机存取内存(RAM)、非易失性RAM(NVRAM)。
在所有类型的内存中,RAM是会在路由器启动或供电间隙时丢失其内容的唯一一种内存;(3)接口所有路由器都有“接口”(Interface)。
在采用I0S的路由器中,每个接口都有自己的名字和编号。
一个接口的全名由它的类型标识以及至少一个数字构成。
编号自零0开始。
对那些接口已固定下来的路由器,或采用模块化接口,只有关闭主机才可变动的路由器,在接口的全名中,就只有一个数字,而且根据它们在路由器中物理顺序进行编号。
例如,Ethernet0是第一个以太网接口的名称;而Serial2是第三个串口的名称。
若路由器支持“在线插入和删除”,或具有动态〔不关闭路由器)更改物理接口配置的能力(卡的热插拔),那么一个接口的全名至少应包含两个数字、中间用一个正斜杠分隔(/)。
其中,第一个数字代表插槽编号,接口处理器卡将安装在这个插槽上;第二个数字代表接口处理器的端口编号。
比如在一个7507路由器中,Ethernet5/0代表的便是位于5号槽上的第一个以太网接口——假定5号槽插接了一张以太网接口处理器卡。
有的路由器还支持“万用接口处理器”(VIP)。
VIP上的某个接口名由三个数字组成,中间也用一个正斜杠分隔(/)。
接口编号的形式是“插槽/端口适配器/端口”。
例如,Ethemet4/0/1是指4号槽上第一个端口适配器的第二个以太网接口。
1.3 路由器的工作原理当路由器收到一个网络层数据报时,路由器便要决定是直接转发给与自己相连的网络还是发往另一个路由器,或者丢弃该数据报。
路由器利用网络层的源地址和目的地址信息来确定信息发往哪一个网络,如果源网络号和目的网络号在同一个网络中则送到该网络的指定主机。
一个信息包到达路由器后先进入队列,然后路由器依次进行如下处理:提取信息包的目的地址,查看路由表,如果到达目的地的路径不止一个,则选择一条最佳路径。
另外,路由器在进行选择时还综合了互联网上网络负载、延时、数据报长度、数据报头中规定的服务类型等因素来选择出最优路径。
下面以IP路由器为例说明路由选择的方法:路由器把需到达的网络的网络号保存在路由表中,当一个IP数据报被路由器接收到时,路由器先从该IP数据报中取出目的站点的IP地址,根据IP地址计算出目的站点所在网络的网络号,然后用网络号去查找路由表以决定通过哪一个接口(线路)转发该IP数据报。
根据TCP/IP协议,路由器的数据包转发具体过程是:网络接口接收数据包,这一步由网络物理层处理,即把经编码调制后的数据信号还原为数据。
根据网络物理接口,路由器调用相应的链路层功能模块,以解释处理此数据包的链路协议报头。
这一步处理比较简单,主要是对完整性的验证,如CRC校验、帧长度检查。
在链路导层完成对数据帧的完整性验证后,路由器开始处理此数据帧的IP层。
这一过程是路由器功能的核心。
根据数据帧IP包头的目的的IP地址,路由器在路由表中查找下一跳的IP地址,IP数据包头的TTL域开始减数,并计算新校验和(Check-sum)。
根据路由表中所查到的下一跳IP地址,将IP数据包送往相应的输出链路层,封装上相应的链路层包头,最后经输出网络物理接口发送出去。
中低档路由器的体系结构。
多个交换端口通过数据总线与共享内存、CPU相连。
共享内存完成交换数据的存储转发功能,其中包缓冲用于存储最近发送到达的数据,而系统缓冲用于存储没有及时交换的数据包。
CPU为交换数据包选择路径,具体选路的依据是路由表和快速缓存。
快速缓存是路由表中使用频率很高的路由条目。
数据在由某个交换端口向目的端发送时,由于端口所连接的网络拓扑结构及其网络类型存在的差异,例如由以太网交换端口向FDDI交换端口进行数据发送,因此要求对数据包帧结构、长度进行重组。
针对一个数据包由端口A向端口B转发,具体的数据包路由交换步骤如下:(1)数据包进入端口A,去掉数据包的前导码和物理层源、目的MAC地址,CRC校验码。
(2)三层以上数据通过数据总线D-BUS进入共享内存中的数据包缓存。
(3)共享式缓存取出数据包的目的网络地址,通过D-BUS送CPU进行选路处理。
(4)由CPU在交换式缓存中检索匹配的网络/主机地址,如果检索到,进入第7步。
(5)CPU在路由表中检索匹配的网络/主机地址,得到目的交换端口。
(6)将检索到的信息追加入快速缓存,或者替换高速缓存中的原有数据。
(7)检索到的目的交换端口经D-BUS传回共享内存。
(8)共享内存通过交换技术将数据包发往目的端口,目的端口接到数据包后,重新按照目的网络的类型重写帧,加入相应的第二层地址,重新计算CRC数值。
简单地说,路由器的主要工作就是为经过路由器的每个数据帧寻找一条最佳传输路径,并将该数据有效地传送到目的站点。
由此可见,选择最佳路径策略或叫选择最佳路由算法是路由器的关键所在。
为了完成这项工作,在路由器保存着各种传输路径的相关数据----路由表,供选择路由时使用。
路径表中保存着子网的标志信息、网上路由器的个数和下一个路由器的名称等内容。
路由表可以是由系统管理员固定设置好的,也可以由系统动态修改;可以由路由器自动调整,也可以由主机控制。
路由器根据路由选择协议(Routing Protocol)提供的功能,自动学习和记忆网络运行情况,在需要时自动计算数据传输的最佳路径。
1.4 路由器的基本功能:路由器的主要功能就是“路由”的作用,通俗地讲就是“向导”作用,主要用来为数据包转发指明一个方向的作用。
但如要细分的话,路由器的“路由”功能可以细分为如以下几个方面:(1)在网际间接收节点发来的数据包,然后根据数据包中的源地址和目的地址,对照自己缓存中的路由表,把数据包直接转发到目的节点,这主要是我在上面所讲的路由器的最主要,也是最基本的路由作用。
(2)为网际间通信选择最合理的路由,这个功能其实是上述路由功能的一个扩展功能。
如果有几个网络通过各自的路由器连在一起,一个网络中的用户要向另一个网络的用户发出访问请求的话,路由器就会分析发出请求的源地址和接收请求的目的节点地址中的网络ID号,找出一条最佳的、最经济、最快捷的一条通信路径。
就像我们平时到了一个陌生的地方,不知道到目的地点的最佳走法,这时我们就得找一个向导,这个向导就会告诉我们这个最佳的捷径,因为他熟悉各条的走法,这里所讲的路由器就相当于这里的“向导”。
(3)拆分和包装数据包,这个功能也是路由功能的附属功能。
因为有时在数据包转发过程中,由于网络带宽等因素,数据包过大的话,很容易造成网络堵塞,这时路由器就要把大的数据包根据对方网络带宽的状况拆分成小的数据包,到了目的网络的路由器后,目的网络的路由器就会再把拆分的数据包装成一个原来大小的数据包,再根据源网络路由器的转发信息获取目的节点的MAC地址,发给本地网络的节点。
(4)不同协议网络之间的连接。
目前多数中、高档的路由器往往具有多通信协议支持的功能,这样就可以起到连接两个不同通信协议网络的作用。
如常用Windows NT操作平台所使用的通信协议主要是TCP/IP协议,但是如果是NetWare系统,则所采用的通信协议主要是IPX/SPX协议,还有一些特殊协议网段,这些都需要靠支持这些协议的路由器来连接。
(5)目前许多路由器都具有防火墙功能(可配置独立IP地址的网管型路由器),它能够起到基本的防火墙功能,也就是它能够屏蔽内部网络的IP地址,自由设定IP地址、通信端口过滤,使网络更加安全。
按照路由器的接口、处理能力、吞吐量、提供的协议、功能等可以把路由器分成高、中、低多种档次路由器的优点有:适用于大规模的网络;复杂的网络拓扑结构,负载共享和最优路径;能更好地处理多媒体数据;安全性高;隔离不需要的通信量;节省局域网的频宽;减少主机负担、其缺点是:不支持非路由协议;安装复杂;价格高。