路由(routing)的定义是指分组从源到目的地时,决定端到端路径的网络范围的进程。在OSI七层模型下,路由主要进行在第三次网络层:经过寻址来创建两个节点之间的链接,为源端的运输层送来的分组,选择合适的路由和交换节点,正确无误地按照地址传送给目的端的运输层。路由器根据路由指导的IP报文的路径转发信息,路由提供的路径信息转发数据包。算法
分类网络
1. 静态路由:管理员手工定义到一个目的地网络或者几个网络的路由。ide
2. 动态路由:路由器根据路由选择协议所定义的规则来交换路由信息,而且独立地选择最佳路径。spa
3. 缺省路由:缺省路由是指当路由表中与包的目的地址之间无匹配的表项时路由器可以做出的选择。orm
通常地,路由器查找路由的顺序为静态路由,动态路由,若是以上路由表中都没有合适的路由,则经过缺省路由将数据包传输出去,能够综合使用三种路由。blog
1.静态路由进程
能够在静态路由表中指定路由,将路由器配置为静态路由。经过配置静态路由,用户能够人为地指定对某一网络访问时所要通过的路径,在网络结构比较简单,且通常到达某一网络所通过的路径唯一的状况下采用静态路由。静态路由不须要使用路由协议,但须要由路由器管理员手工更新路由表。因为静态路由一般不能对线路不通等路由变化做出反应。所以,一般只能在网络路由相对简单、网络与网络之间只能经过一条路径路由的状况下使用静态路由。路由
以下图:
it
IP为192.168.1.1想把数据包传输到IP为192.168.3.1的主机上,经必需要通过路由器由于不是在同一个网段上。以下图,只要在两个路由器上配置到达目标网段地址跟下一跳(也就是下一个要传输的IP地址),PC0跟PC1就能够进行数据传输了。io
2.动态路由
由路由器按指定的协议格式在网上广播和接收路由信息,经过路由器之间不断交换的路由信息动态地更新和肯定路由表,并随时向附近的路由器广播,这种方式称为动态路由。动态路由器经过检查其余路由器的信息,并根据开销、连接等状况自动决定每一个包的路由途径。动态路由方式仅须要手工配置第一条或最初的极少许路由线路,其余的路由途径则由路由器自动配置。动态路由因为较具灵活性,使用配置简单,成为目前主要的路由类型。
动态路由机制的运做依赖路由器的两个基本功能:路由器之间适时的路由信息交换,对路由表的维护:
路由器之间适时地交换路由信息。
动态路由之因此能根据网络的状况自动计算路由、选择转发路径,是因为当网络发生变化时,路由器之间彼此交换的路由信息会告知对方网络的这种变化,经过信息扩散使全部路由器都能得知网络变化。
路由器根据某种路由算法(不一样的动态路由协议算法不一样)把收集到的路由信息加工成路由表,供路由器在转发IP报文时查阅。
在网络发生变化时,收集到最新的路由信息后,路由算法从新计算,从而能够获得最新的路由表。
路由器之间的路由信息交换在不一样的路由协议中的过程和原则是不一样的。交换路由信息的最终目的在于经过路由表找到一条转发IP报文的“最佳”路径。每一种路由算法都有其衡量“最佳”的一套原则,大可能是在综合多个特性的基础上进行计算,这些特性有:路径所包含的路由器结点数(hop count)、网络传输费用(cost)、带宽(bandwidth)、延迟(delay)、负载(load)、可靠性(reliability)和最大传输单元MTU(maximum transmission unit)。
常见的动态路由协议有:RIP、OSPF、IS-IS、BGP、IGRP/EIGRP。每种路由协议的工做方式、选路原则等都有所不一样。
3.缺省路由
要想使每台路由器对到每一个可能目的地的路由都进行维护是不可行的,因此路由器能够保存一条缺省路由,或者叫最后的可用路由。当路由器不能用路由表中的一个更具体条目来匹配一个目的网络时,它就将使用缺省路由,即“最后的可用路由”。实际上,路由器用缺省路由来将数据包转发给另外一台路由器,这台新的路由器必需要么有一条到目的地的路由,要么有它本身的到另外一台路由器的缺省路由,这台新的路由器依次也必需要么有具体路由,要么有另外一条缺省路由。依此类推。最后数据包应该被转发到真正有一条到目的地网络的路由器上。没有缺省路由,目的地址在路由表中无匹配表项的包将被丢弃。
缺省路由能够尽量地将路由表的大小保持的很小,它们使路由器可以转发目的地为任何Internet主机的数据包而没必要为每一个Internet网络都维护一个路由表条目。