选路是一个通用的术语,用来描述某一个网络中的
主机发出的分组经过若干
路由器到达另一个网络中的目的主机的过程。更明确地说,选路过程是由两个独立的过程组成。
从概念上讲,IP路由选择是比较简单的,举个例子,如果目的主机和源主机都在同一个
子网,那么IP分组直接送到目的主机上。否则,源主机就把IP分组发到一个默认的路由器上,再由这个路由器进行转发。一般情况下,一台计算机既可以配置成主机,又可以配置成路由器。在它的P层维护一张
路由表,当收到一个IP分组并进行发送时,它都要对路由表搜索一次。当分组来自某个网络接口时,首先检查目的IP地址是否是本机
IP地址或广播地址,如果是,IP分组就会送到由IP首部协议字段所指定的协议模块进行处理。如果不是这些地址,那么如果IP层被设置为路由器的功能,就会转发这个分组,否则就丢弃这个IP分组。
就是把分组从一个网络传递到另一个分组的实际过程。分组转发的过程采用了hop-by-hop的方式,路由器将分组转发到哪里是由路由器自身路由转发表的内容和分组的目的地址决定的。
(1)直接转发。当转发节点(主机或路由器)与目的
节点位于同一个
物理网络中时,就采用直接转发的形式。直接转发不需要经过其他路由器,IP分组封装在物理帧中,直接传送到目的节点。在路由器中,测试目的结点是否位于同一网络中的方法是,检查目的节点IP地址中的网络号是否与本节点的网络号相同。
(2)间接转发。当路由器与目的结点不在同一个网络中时,无法直接转发,需采用间接转发方式。间接转发的过程是先通过路由选择功能选定某台下一跳路由器,并把分组封装到物理帧中,发送到这台下一跳路由器上,由下一跳路由器进行进一步转发。
②对路由数据库的维护主要包括数据库的更新和修改等,以动态地反映
网络拓扑的变动和修改。
④用于在路由器之间进行路由信息交换的具体方式都是由一组动态路由协议宋定义的。维护路由数据库的完整性、准确性,并正确建立路由转发表所采用的处理过程、算法和协议等都属于选路的范畴。
距离向量选路算法是Internet选路中的一个经典算法,通常也被称为“向量一距离’’算法、Bellman—Ford、Ford—Fulkerson或Bellman算法。距离向量算法的思想非常简单,即每一个路由器都可以把它所了解路由信息通知给与其相邻路由器。路由器发布的路由信息是以距离向量的形式提供的。所谓距离向量是一个形如{network,cost}的二元组。每一个距离向量用于说明路由器到达某一个目的网络的费用。其中network表示目的网络,cost是一个相对值,它反映了在发布向量的路由器与目的网络之间转发费用。费用可以采用不同的度量(metric),通常可使用转发距离(hop数)。
从前面的分析中可见,距离向量算法最主要的缺点是在大型网络中性能不佳:汇聚速度比较慢,并且该
算法进行路由交换的信息量比较大。这是因为
距离向量协议要求每个路由器都必须参与操作,且各路由器发布的距离向量的数量与互联网中的网络数量成正比,造成交换的总信息十分庞大。对距离向量算法的改进导致了另一类算法,即链路状态(Link State)算法。链路状态算法以图论作为理论基础,用图来表示网络拓扑结构,并在利用图论中的最短路径算法来计算网络间的最佳路由,因此链路状态算法又被称为最短路经优先算法(SPF)。