8.5 IP路由

Internet协议(或者称IP协议)是网络通信中最重要也是最著名的协议之一,它使我们能够唯一标识网络或者Internet中的每一台计算机。IP协议全称Internet Protocol,主要用于负责IP寻址、路由选择和IP数据包的分割和组装。IP是一个无连接的协议,主要就是负责在主机间寻址并为数据包设定路由,在交换数据前它并不建立会话。

8.5.1 IP路由简介

路由就是选择一条数据包传输路径的过程。当TCP/IP主机发送IP数据包时,便出现了路由,且当到达IP路由器还会再次出现。路由器是从一个物理网向另一个物理网发送数据包的装置,路由器通常被称为网关。对于发送的主机和路由器而言,必须决定向哪里转发数据包。在决定路由时,IP层查询位于内存中的路由表。

①当一个主机试图与另一个主机通信时,IP首先决定目的主机是一个本地网还是远程网。

②如果目的主机是远程网,IP将查询路由表来为远程主机或远程网选择一个路由。

③若未找到明确的路由,IP用默认的网关地址将一个数据传送给另一个路由器。

④在该路由器中,路由表再次为远程主机或网络查询路由,若还未找到路由,该数据包将发送到该路由器的默认网关地址。

每发现一条路由,数据包被转送到下一级路由器,这称为一次“跳步”,并最终将数据包发送至目的主机。

8.5.2 路由和路由段

在因特网中进行路由选择要使用路由器,路由器根据所收到的报文的目的地址通过某一网络选择一条合适的路由,将报文传送到下一个路由器,路由过程中最后的路由器负责将报文送交目的主机。

主机A到主机C共经过了2个路由器,跳数为2,如图8-11所示。若一结点(路由器)通过一个网络与另一结点相连,则这两个结点在同一个路由段,因而在因特网中是相邻的。同理,相邻的路由器是指这两个路由器都连接在同一个网络上。一个路由器到本网络中的某个主机的路由段数算作零。在图中用箭头表示这些路由段。至于每一个路由段由哪几条物理链路构成,路由器并不关心。

由于网络规模可能相差很大,而每个路由段的实际长度并不相同,因此对不同的网络,可以将其路由段乘以一个加权系数,用加权后的路由段数来衡量通路的长短。

如果把网络中的路由器看成是网络中的结点,把因特网中的一个路由段看成是网络中的一条链路,那么因特网中的路由选择就与简单网络中的路由选择相似了。采用路由段数最小的路由有时也并不一定是最理想的。例如,经过三个高速局域网段的路由可能比经过两个低速广域网段的路由快得多。

图8-11

8.5.3 路由选择

路由器转发分组的关键是路由表,每个路由器中都保存着一张路由表,表中每条路由项都指明分组到某子网或某主机应通过路由器的哪个物理端口发送,然后就可到达该路径的下一个路由器,或者不再经过别的路由器而传送到直接相连的网络中的目的主机。

路由表中包含了下列关键项。

①目的地址:用来标识IP包的目的地址或目的网络。

②网络掩码:与目的地址一起来标识目的主机或路由器所在的网段的地址。将目的地址和网络掩码“逻辑与”后可得到目的主机或路由器所在网段的地址。例如,目的地址为129.102.8.10,掩码为255.255.0.0的主机或路由器所在网段的地址为129.102.0.0。掩码由若干个连续“1”构成,既可以用点分十进制表示,也可以用掩码中连续“1”的个数来表示。

③输出接口:说明IP包将从该路由器的哪个接口转发。

④下一条IP地址:说明IP包所经由的下一条路由器的IP地址。

路由转发过程中会考虑到路由表的优先级:针对同一目的地,可能存在不同下一条的若干条路由,这些不同的路由可能是由不同的路由协议发现的,也可以是手动配置的静态路由。优先级高(数值小)将成为当前的最优路由。

⑤路径花费:使用这条路由进行数据转发时所需的代价。

根据路由的目的地不同,可以划分为:

①子网路由:目的地为子网。

②主机路由:目的地为主机。

另外,根据目的地与该路由器是否直接相连,又可分为:

①直接路由:目的地所在网络与路由器直接相连。

②间接路由:目的地所在网络与路由器不是直接相连。

为了不使路由表过于庞大,可以设置一条默认路由。凡遇到查找路由表失败后的数据包,就选择默认路由转发。

在比较复杂的因特网中,各网络中的数字是该网络的网络地址,R代表路由器。路由器R8与3个网络直接相连,因此有3个IP地址和3个物理端口,其路由表如图8-12所示。

图8-12