2.5.1 IP路由表

路由表存储有关可能的目的站以及怎样到达目的站的信息。主机和路由器上都有IP路由表,路由软件在传输数据报时,需要查询路由表来决定把数据报发往何处。

如果路由表存储的信息包含所有可能目的地的地址信息,那么路由表将非常巨大,主机和路由器均无法存储。因此路由表设计的原则是用尽量少的信息,来满足路由的需要。路由表的设计主要从以下三个方面来体现这个思想:

由于IP地址的编址方法使用了网络前缀,并且,从一个主机到某个网络所有主机的路由通常是相同的,因此,路由表中可以通过网络前缀信息来标识路由的目的地址,而不是完整的IP地址。这样,通过一项信息就能够表示一个网络中所有主机的路由信息。这种方式能够极大地缩小路由表的规模。这样,路由表的大小取决于互联网中网络的数量,与网络中的主机数量无关。

采用了下一跳路由的思想。虽然从一个主机路由到另一个主机时,中间可能经过若干个路由器,但是,路由表中并不包含完整的路径信息,而是进行记录从当前节点(主机或路由器)出发,下一个接收者是谁。这样,无论一条路径有多长,每个路由的节点所记录的都仅仅是下一个接收者的信息。

默认路由能够将多个表项统一到一种默认情况。IP路由软件首先在路由表中查找目的网络。如果表中没有路由,则路由软件将数据报发送到一个默认的路由器。

尽管一般的路由是基于网络而不是单个主机,但是在一些特殊场合,比如需要对特定主机在网络中的路由进行控制,以便进行测试或安全控制时,可以采用特定主机路由方式,即对特定的主机IP地址指定相应的路由信息。

下面看一个路由表的示例,如下图所示: