tcp/ip入门经典(第5版) 第八章 路由选择

1.本章内容

ip转发

直接路由和间接路由

路由协议

 

2.tcp/ip的路由选择

路由器是负责根据逻辑地址对通信流量进行过滤的设备。

经典的网络路由器工作于网际层(对应osi网络模型的网络层),使用网际层报头中的ip寻址信息。

理解路由的第一步要记住ip地址是属于适配器的,而不是属于计算机的。

 

3.路由选择过程

(1)路由器从所连网络之一接收数据

(2)路由器把数据传递到协议栈的网际层。即路由器抛弃网络访问层报头信息,并重组ip信息报(如果有必要)

(3)路由器检查ip报头中的目的地址

(4)如果数据的目的在其他网络,路由器就根据路由表决定向哪里转发数据

(5)在路由器决定了它的哪个适配器要接收这个数据后,就把数据传递到适当的网络访问层软件,让数据通过适配器进行传输

 

4.路由器的两个显著特性

 

创建路由表

汇集路由表的路由协议来让所有的路由器像一个整体一样提供服务

 

5.路由的类型

静态路由:要求网络管理员手工输入路由信息

动态路由:根据使用的路由协议获得路由信息来动态建立路由表

 

6.路由表的概念

路由表和网际层其他路由元素的用途在于把数据传递到正确的本地网络。

本质上讲,路由表就是把目的网络id映射到下一跳的ip地址,即数据报通往目的网络的下一站。

路由表会区分直接连接到路由器本身的网络和通过其他路由器间接连接过来的网络。所以下一跳可以是目的网络,也可以是通往目的网路的下一个下游路由器。

主机和路由器都有路由表,主机的路由表比路由器的简单的多,它可能只包含两行,一个用于本地网络,另一个用于默认路由(用于处理不能在本地网段上传输的数据报)。

 

7.路由器数据传递过程

(1)一台主机准备发送一个ip数据报,它查看自己的路由表

(2)如果数据报不能在本地网络上发送,主机就会从路由表里获取与目的地址相关联的路由器的ip地址(对于本地网络上的主机而言,这个路由器的ip地址一般都是默认网关的地址)。路由器的ip地址被arp协议解析为物理地址

(3)数据报(目的是远程主机)和路由器的物理地址一起被传递给网络访问层

(4)路由器的网络适配器会接收到这个帧,因为帧的目的物理地址与路由器的物理地址相匹配

(5)路由器对帧进行拆包,把数据报传递给网际层

(6)路由器查看数据报的ip地址。如果这个地址匹配路由器自己的ip地址,就表示数据是要发给路由器本身的,否则,路由器会查看自己的路由表,找到与数据报目的地址相关联的路由器,尝试转发这个数据报

(7)如果不能把数据报发送到与路由器相连接的任何网段,路由器就把数据报发送给另一台路由器,上述过程就会重复进行(从第1步开始),知道最后一个路由器能够把数据报直接传递给目的主机。

其中,第6步是路由器的一个重要特性。

 

8.直接路由与间接路由

直接路由:如果路由器连接的子网较少,可以直接连接到全部子网上,能够直接利用路由传输任何数据报。对应着静态路由。

tcp/ip入门经典(第5版) 第八章 路由选择

间接路由:某些子网没有直接连接到此路由器上,如果需要将数据报传输到此子网,只有选择执行间接路由。对应着动态路由。

tcp/ip入门经典(第5版) 第八章 路由选择

 

9.动态路由算法

目前主要有两种:距离矢量路由、链路状态路由

对应的两种协议:rip距离矢量路由协议,ospf链路状态路由

 

10.距离矢量路由

其目的是让路由器之间所需的通信最少,让路由表中必须保留的数据最少。

这个距离参数称为“跳数”

具体工作方式,

(1)当路由器A初始化时,它感知到直接连接的网段,并把这些网段写到自己的路由表中。这些直连网段的跳数为0,因为数据报从这台路由器到达这些网段不需要经过其他路由器

(2)在周期性的时间间隔中,路由器接收到来自邻居路由器的报告,其中包含了邻居路由器所感知的网段和相应的跳数

(3)当路由器A从邻居路由器收到报告后,按照如下方法把新路由信息添加到自己的路由表中

a.如果路由器B的信息中包含一个路由器A目前还不知道的网段,路由器A就把这个网段添加到自己的路由表中。去往这个新网段的路由就是路由器B,也就是说,如果路由器A收到发往这个新网段的数据报,它会转发给路由器B,此时跳数要加1

b.如果路由器B的信息中包含的网段已经存在于路由器A的路由表中,路由器A就会把收到的跳数加1,把得到的值与自己路由表中的值进行比较。如果经过路由器B的路径比路由器A已经掌握的路径更有效率(跳数更小),路由器A就更新自己的路由表,否则不更新。

 

11.链路状态路由

在假定路径效率等同于经过的路由器数量时,距离矢量路由是个很好的方法。

但实际情况是,每个路由器的传输效率不全相同。

链接状态路由背后的理念在于每个路由器都尝试建立关于网络拓扑的内部映射,每台路由器定期向网络发送状态信息,其中列出了自己直连的其他路由器以及链路的状态(链路在当前是否可用)。路由器利用从其他路由器收到的状态信息建立网络拓扑的映射,当它需要转发数据报时,会根据现有条件选择最佳路径。

链路状态路由在每台路由器上都需要更多的处理时间,但宽带消耗减少(磨刀不误砍柴工啊),因为每台路由器不要要传播完整的路由表。

在网络有效组织的情况下,大多数路由器只需要与相邻路由器交互协议信息即可。

 

12.复杂网路上的路由

internet由各个独自管理的网络组成,这些网络称为自治系统。

自治系统的所有者管理每台路由器的配置细节。

尽管一台路由器可以充当多种职责,但是路由器所使用的硬件,尤其是协议,确定了它在网络中的职责。

(1)外部路由器

外部路由器在自治网络之间交换路由信息,它们维护自己及邻居自治网络的路由信息。现在流行的一种外部网关协议(egp)是边界网关协议(bgp)。外部路由器通常也称为自治网络的内部路由器。

(2)内部路由器

自治网络内部共享路由信息的路由器被称为内部路由器(内部网关),它们使用被称为内部网关协议(igp)的一组路由协议,包括路由信息协议(rip)、开放最短路径优先(ospf)。

(3)核心路由器

尽管最初的ARPAnet骨干网不再作为internet的中心而出现,但是自治系统有时会构建自己的骨干结构,以细分和隔离流量。

核心路由器支持骨干系统。核心路由器使用的路由协议包括网关到网关协议(ggp),以及新出现的spread协议。

 

13.路由信息协议(rip)

路由信息协议(rip)是一种距离矢量协议,根据跳数来判断到达目的的最佳路径。

 

14.开放最短路径优化(ospf)

开放最短路径优化(ospf)是一种链接状态协议。